public class java.security.CodeSource implements java.io.Serializable
  minor version: 0
  major version: 59
  flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
  this_class: java.security.CodeSource
  super_class: java.lang.Object
{
  private static final long serialVersionUID;
    descriptor: J
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: 4977541819976013951

  private java.net.URL location;
    descriptor: Ljava/net/URL;
    flags: (0x0002) ACC_PRIVATE

  private transient java.security.CodeSigner[] signers;
    descriptor: [Ljava/security/CodeSigner;
    flags: (0x0082) ACC_PRIVATE, ACC_TRANSIENT

  private transient java.security.cert.Certificate[] certs;
    descriptor: [Ljava/security/cert/Certificate;
    flags: (0x0082) ACC_PRIVATE, ACC_TRANSIENT

  private transient java.net.SocketPermission sp;
    descriptor: Ljava/net/SocketPermission;
    flags: (0x0082) ACC_PRIVATE, ACC_TRANSIENT

  private transient java.security.cert.CertificateFactory factory;
    descriptor: Ljava/security/cert/CertificateFactory;
    flags: (0x0082) ACC_PRIVATE, ACC_TRANSIENT

  public void <init>(java.net.URL, java.security.cert.Certificate[]);
    descriptor: (Ljava/net/URL;[Ljava/security/cert/Certificate;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=3, args_size=3
        start local 0 // java.security.CodeSource this
        start local 1 // java.net.URL url
        start local 2 // java.security.cert.Certificate[] certs
         0: .line 85
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
         1: .line 63
            aload 0 /* this */
            aconst_null
            putfield java.security.CodeSource.signers:[Ljava/security/CodeSigner;
         2: .line 68
            aload 0 /* this */
            aconst_null
            putfield java.security.CodeSource.certs:[Ljava/security/cert/Certificate;
         3: .line 74
            aload 0 /* this */
            aconst_null
            putfield java.security.CodeSource.factory:Ljava/security/cert/CertificateFactory;
         4: .line 86
            aload 0 /* this */
            aload 1 /* url */
            putfield java.security.CodeSource.location:Ljava/net/URL;
         5: .line 89
            aload 2 /* certs */
            ifnull 7
         6: .line 90
            aload 0 /* this */
            aload 2 /* certs */
            invokevirtual java.security.cert.Certificate[].clone:()Ljava/lang/Object;
            checkcast java.security.cert.Certificate[]
            putfield java.security.CodeSource.certs:[Ljava/security/cert/Certificate;
         7: .line 92
      StackMap locals: java.security.CodeSource java.net.URL java.security.cert.Certificate[]
      StackMap stack:
            return
        end local 2 // java.security.cert.Certificate[] certs
        end local 1 // java.net.URL url
        end local 0 // java.security.CodeSource this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    8     0   this  Ljava/security/CodeSource;
            0    8     1    url  Ljava/net/URL;
            0    8     2  certs  [Ljava/security/cert/Certificate;
    MethodParameters:
       Name  Flags
      url    
      certs  

  public void <init>(java.net.URL, java.security.CodeSigner[]);
    descriptor: (Ljava/net/URL;[Ljava/security/CodeSigner;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=3, args_size=3
        start local 0 // java.security.CodeSource this
        start local 1 // java.net.URL url
        start local 2 // java.security.CodeSigner[] signers
         0: .line 104
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
         1: .line 63
            aload 0 /* this */
            aconst_null
            putfield java.security.CodeSource.signers:[Ljava/security/CodeSigner;
         2: .line 68
            aload 0 /* this */
            aconst_null
            putfield java.security.CodeSource.certs:[Ljava/security/cert/Certificate;
         3: .line 74
            aload 0 /* this */
            aconst_null
            putfield java.security.CodeSource.factory:Ljava/security/cert/CertificateFactory;
         4: .line 105
            aload 0 /* this */
            aload 1 /* url */
            putfield java.security.CodeSource.location:Ljava/net/URL;
         5: .line 108
            aload 2 /* signers */
            ifnull 7
         6: .line 109
            aload 0 /* this */
            aload 2 /* signers */
            invokevirtual java.security.CodeSigner[].clone:()Ljava/lang/Object;
            checkcast java.security.CodeSigner[]
            putfield java.security.CodeSource.signers:[Ljava/security/CodeSigner;
         7: .line 111
      StackMap locals: java.security.CodeSource java.net.URL java.security.CodeSigner[]
      StackMap stack:
            return
        end local 2 // java.security.CodeSigner[] signers
        end local 1 // java.net.URL url
        end local 0 // java.security.CodeSource this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    8     0     this  Ljava/security/CodeSource;
            0    8     1      url  Ljava/net/URL;
            0    8     2  signers  [Ljava/security/CodeSigner;
    MethodParameters:
         Name  Flags
      url      
      signers  

  public int hashCode();
    descriptor: ()I
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // java.security.CodeSource this
         0: .line 120
            aload 0 /* this */
            getfield java.security.CodeSource.location:Ljava/net/URL;
            ifnull 2
         1: .line 121
            aload 0 /* this */
            getfield java.security.CodeSource.location:Ljava/net/URL;
            invokevirtual java.net.URL.hashCode:()I
            ireturn
         2: .line 123
      StackMap locals:
      StackMap stack:
            iconst_0
            ireturn
        end local 0 // java.security.CodeSource this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    3     0  this  Ljava/security/CodeSource;

  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.security.CodeSource this
        start local 1 // java.lang.Object obj
         0: .line 138
            aload 1 /* obj */
            aload 0 /* this */
            if_acmpne 2
         1: .line 139
            iconst_1
            ireturn
         2: .line 142
      StackMap locals:
      StackMap stack:
            aload 1 /* obj */
            instanceof java.security.CodeSource
            ifne 4
         3: .line 143
            iconst_0
            ireturn
         4: .line 145
      StackMap locals:
      StackMap stack:
            aload 1 /* obj */
            checkcast java.security.CodeSource
            astore 2 /* cs */
        start local 2 // java.security.CodeSource cs
         5: .line 148
            aload 0 /* this */
            getfield java.security.CodeSource.location:Ljava/net/URL;
            ifnonnull 7
         6: .line 150
            aload 2 /* cs */
            getfield java.security.CodeSource.location:Ljava/net/URL;
            ifnull 8
            iconst_0
            ireturn
         7: .line 153
      StackMap locals: java.security.CodeSource
      StackMap stack:
            aload 0 /* this */
            getfield java.security.CodeSource.location:Ljava/net/URL;
            aload 2 /* cs */
            getfield java.security.CodeSource.location:Ljava/net/URL;
            invokevirtual java.net.URL.equals:(Ljava/lang/Object;)Z
            ifne 8
            iconst_0
            ireturn
         8: .line 157
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 2 /* cs */
            iconst_1
            invokevirtual java.security.CodeSource.matchCerts:(Ljava/security/CodeSource;Z)Z
            ireturn
        end local 2 // java.security.CodeSource cs
        end local 1 // java.lang.Object obj
        end local 0 // java.security.CodeSource this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    9     0  this  Ljava/security/CodeSource;
            0    9     1   obj  Ljava/lang/Object;
            5    9     2    cs  Ljava/security/CodeSource;
    MethodParameters:
      Name  Flags
      obj   

  public final java.net.URL getLocation();
    descriptor: ()Ljava/net/URL;
    flags: (0x0011) ACC_PUBLIC, ACC_FINAL
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // java.security.CodeSource this
         0: .line 168
            aload 0 /* this */
            getfield java.security.CodeSource.location:Ljava/net/URL;
            areturn
        end local 0 // java.security.CodeSource this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Ljava/security/CodeSource;

  public final java.security.cert.Certificate[] getCertificates();
    descriptor: ()[Ljava/security/cert/Certificate;
    flags: (0x0011) ACC_PUBLIC, ACC_FINAL
    Code:
      stack=3, locals=3, args_size=1
        start local 0 // java.security.CodeSource this
         0: .line 186
            aload 0 /* this */
            getfield java.security.CodeSource.certs:[Ljava/security/cert/Certificate;
            ifnull 2
         1: .line 187
            aload 0 /* this */
            getfield java.security.CodeSource.certs:[Ljava/security/cert/Certificate;
            invokevirtual java.security.cert.Certificate[].clone:()Ljava/lang/Object;
            checkcast java.security.cert.Certificate[]
            areturn
         2: .line 189
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield java.security.CodeSource.signers:[Ljava/security/CodeSigner;
            ifnull 16
         3: .line 192
            new java.util.ArrayList
            dup
            invokespecial java.util.ArrayList.<init>:()V
         4: .line 191
            astore 1 /* certChains */
        start local 1 // java.util.ArrayList certChains
         5: .line 193
            iconst_0
            istore 2 /* i */
        start local 2 // int i
         6: goto 11
         7: .line 194
      StackMap locals: java.util.ArrayList int
      StackMap stack:
            aload 1 /* certChains */
         8: .line 195
            aload 0 /* this */
            getfield java.security.CodeSource.signers:[Ljava/security/CodeSigner;
            iload 2 /* i */
            aaload
            invokevirtual java.security.CodeSigner.getSignerCertPath:()Ljava/security/cert/CertPath;
            invokevirtual java.security.cert.CertPath.getCertificates:()Ljava/util/List;
         9: .line 194
            invokevirtual java.util.ArrayList.addAll:(Ljava/util/Collection;)Z
            pop
        10: .line 193
            iinc 2 /* i */ 1
      StackMap locals:
      StackMap stack:
        11: iload 2 /* i */
            aload 0 /* this */
            getfield java.security.CodeSource.signers:[Ljava/security/CodeSigner;
            arraylength
            if_icmplt 7
        end local 2 // int i
        12: .line 197
            aload 0 /* this */
            aload 1 /* certChains */
        13: .line 198
            aload 1 /* certChains */
            invokevirtual java.util.ArrayList.size:()I
            anewarray java.security.cert.Certificate
        14: .line 197
            invokevirtual java.util.ArrayList.toArray:([Ljava/lang/Object;)[Ljava/lang/Object;
            checkcast java.security.cert.Certificate[]
            putfield java.security.CodeSource.certs:[Ljava/security/cert/Certificate;
        15: .line 199
            aload 0 /* this */
            getfield java.security.CodeSource.certs:[Ljava/security/cert/Certificate;
            invokevirtual java.security.cert.Certificate[].clone:()Ljava/lang/Object;
            checkcast java.security.cert.Certificate[]
            areturn
        end local 1 // java.util.ArrayList certChains
        16: .line 202
      StackMap locals:
      StackMap stack:
            aconst_null
            areturn
        end local 0 // java.security.CodeSource this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0   17     0        this  Ljava/security/CodeSource;
            5   16     1  certChains  Ljava/util/ArrayList<Ljava/security/cert/Certificate;>;
            6   12     2           i  I

  public final java.security.CodeSigner[] getCodeSigners();
    descriptor: ()[Ljava/security/CodeSigner;
    flags: (0x0011) ACC_PUBLIC, ACC_FINAL
    Code:
      stack=3, locals=1, args_size=1
        start local 0 // java.security.CodeSource this
         0: .line 220
            aload 0 /* this */
            getfield java.security.CodeSource.signers:[Ljava/security/CodeSigner;
            ifnull 2
         1: .line 221
            aload 0 /* this */
            getfield java.security.CodeSource.signers:[Ljava/security/CodeSigner;
            invokevirtual java.security.CodeSigner[].clone:()Ljava/lang/Object;
            checkcast java.security.CodeSigner[]
            areturn
         2: .line 223
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield java.security.CodeSource.certs:[Ljava/security/cert/Certificate;
            ifnull 5
         3: .line 225
            aload 0 /* this */
            aload 0 /* this */
            aload 0 /* this */
            getfield java.security.CodeSource.certs:[Ljava/security/cert/Certificate;
            invokevirtual java.security.CodeSource.convertCertArrayToSignerArray:([Ljava/security/cert/Certificate;)[Ljava/security/CodeSigner;
            putfield java.security.CodeSource.signers:[Ljava/security/CodeSigner;
         4: .line 226
            aload 0 /* this */
            getfield java.security.CodeSource.signers:[Ljava/security/CodeSigner;
            invokevirtual java.security.CodeSigner[].clone:()Ljava/lang/Object;
            checkcast java.security.CodeSigner[]
            areturn
         5: .line 229
      StackMap locals:
      StackMap stack:
            aconst_null
            areturn
        end local 0 // java.security.CodeSource this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    6     0  this  Ljava/security/CodeSource;

  public boolean implies(java.security.CodeSource);
    descriptor: (Ljava/security/CodeSource;)Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=2, args_size=2
        start local 0 // java.security.CodeSource this
        start local 1 // java.security.CodeSource codesource
         0: .line 304
            aload 1 /* codesource */
            ifnonnull 2
         1: .line 305
            iconst_0
            ireturn
         2: .line 307
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 1 /* codesource */
            iconst_0
            invokevirtual java.security.CodeSource.matchCerts:(Ljava/security/CodeSource;Z)Z
            ifeq 3
            aload 0 /* this */
            aload 1 /* codesource */
            invokevirtual java.security.CodeSource.matchLocation:(Ljava/security/CodeSource;)Z
            ifeq 3
            iconst_1
            ireturn
      StackMap locals:
      StackMap stack:
         3: iconst_0
            ireturn
        end local 1 // java.security.CodeSource codesource
        end local 0 // java.security.CodeSource this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0    4     0        this  Ljava/security/CodeSource;
            0    4     1  codesource  Ljava/security/CodeSource;
    MethodParameters:
            Name  Flags
      codesource  

  private boolean matchCerts(java.security.CodeSource, boolean);
    descriptor: (Ljava/security/CodeSource;Z)Z
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=3, locals=6, args_size=3
        start local 0 // java.security.CodeSource this
        start local 1 // java.security.CodeSource that
        start local 2 // boolean strict
         0: .line 323
            aload 0 /* this */
            getfield java.security.CodeSource.certs:[Ljava/security/cert/Certificate;
            ifnonnull 5
            aload 0 /* this */
            getfield java.security.CodeSource.signers:[Ljava/security/CodeSigner;
            ifnonnull 5
         1: .line 324
            iload 2 /* strict */
            ifeq 4
         2: .line 325
            aload 1 /* that */
            getfield java.security.CodeSource.certs:[Ljava/security/cert/Certificate;
            ifnonnull 3
            aload 1 /* that */
            getfield java.security.CodeSource.signers:[Ljava/security/CodeSigner;
            ifnonnull 3
            iconst_1
            ireturn
      StackMap locals:
      StackMap stack:
         3: iconst_0
            ireturn
         4: .line 327
      StackMap locals:
      StackMap stack:
            iconst_1
            ireturn
         5: .line 330
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield java.security.CodeSource.signers:[Ljava/security/CodeSigner;
            ifnull 22
            aload 1 /* that */
            getfield java.security.CodeSource.signers:[Ljava/security/CodeSigner;
            ifnull 22
         6: .line 331
            iload 2 /* strict */
            ifeq 8
            aload 0 /* this */
            getfield java.security.CodeSource.signers:[Ljava/security/CodeSigner;
            arraylength
            aload 1 /* that */
            getfield java.security.CodeSource.signers:[Ljava/security/CodeSigner;
            arraylength
            if_icmpeq 8
         7: .line 332
            iconst_0
            ireturn
         8: .line 334
      StackMap locals:
      StackMap stack:
            iconst_0
            istore 4 /* i */
        start local 4 // int i
         9: goto 20
        10: .line 335
      StackMap locals: java.security.CodeSource java.security.CodeSource int top int
      StackMap stack:
            iconst_0
            istore 3 /* match */
        start local 3 // boolean match
        11: .line 336
            iconst_0
            istore 5 /* j */
        start local 5 // int j
        12: goto 17
        13: .line 337
      StackMap locals: java.security.CodeSource java.security.CodeSource int int int int
      StackMap stack:
            aload 0 /* this */
            getfield java.security.CodeSource.signers:[Ljava/security/CodeSigner;
            iload 4 /* i */
            aaload
            aload 1 /* that */
            getfield java.security.CodeSource.signers:[Ljava/security/CodeSigner;
            iload 5 /* j */
            aaload
            invokevirtual java.security.CodeSigner.equals:(Ljava/lang/Object;)Z
            ifeq 16
        14: .line 338
            iconst_1
            istore 3 /* match */
        15: .line 339
            goto 18
        16: .line 336
      StackMap locals:
      StackMap stack:
            iinc 5 /* j */ 1
      StackMap locals:
      StackMap stack:
        17: iload 5 /* j */
            aload 1 /* that */
            getfield java.security.CodeSource.signers:[Ljava/security/CodeSigner;
            arraylength
            if_icmplt 13
        end local 5 // int j
        18: .line 342
      StackMap locals:
      StackMap stack:
            iload 3 /* match */
            ifne 19
            iconst_0
            ireturn
        19: .line 334
      StackMap locals:
      StackMap stack:
            iinc 4 /* i */ 1
        end local 3 // boolean match
      StackMap locals: java.security.CodeSource java.security.CodeSource int top int
      StackMap stack:
        20: iload 4 /* i */
            aload 0 /* this */
            getfield java.security.CodeSource.signers:[Ljava/security/CodeSigner;
            arraylength
            if_icmplt 10
        end local 4 // int i
        21: .line 344
            iconst_1
            ireturn
        22: .line 347
      StackMap locals: java.security.CodeSource java.security.CodeSource int
      StackMap stack:
            aload 0 /* this */
            getfield java.security.CodeSource.certs:[Ljava/security/cert/Certificate;
            ifnull 39
            aload 1 /* that */
            getfield java.security.CodeSource.certs:[Ljava/security/cert/Certificate;
            ifnull 39
        23: .line 348
            iload 2 /* strict */
            ifeq 25
            aload 0 /* this */
            getfield java.security.CodeSource.certs:[Ljava/security/cert/Certificate;
            arraylength
            aload 1 /* that */
            getfield java.security.CodeSource.certs:[Ljava/security/cert/Certificate;
            arraylength
            if_icmpeq 25
        24: .line 349
            iconst_0
            ireturn
        25: .line 351
      StackMap locals:
      StackMap stack:
            iconst_0
            istore 4 /* i */
        start local 4 // int i
        26: goto 37
        27: .line 352
      StackMap locals: java.security.CodeSource java.security.CodeSource int top int
      StackMap stack:
            iconst_0
            istore 3 /* match */
        start local 3 // boolean match
        28: .line 353
            iconst_0
            istore 5 /* j */
        start local 5 // int j
        29: goto 34
        30: .line 354
      StackMap locals: java.security.CodeSource java.security.CodeSource int int int int
      StackMap stack:
            aload 0 /* this */
            getfield java.security.CodeSource.certs:[Ljava/security/cert/Certificate;
            iload 4 /* i */
            aaload
            aload 1 /* that */
            getfield java.security.CodeSource.certs:[Ljava/security/cert/Certificate;
            iload 5 /* j */
            aaload
            invokevirtual java.security.cert.Certificate.equals:(Ljava/lang/Object;)Z
            ifeq 33
        31: .line 355
            iconst_1
            istore 3 /* match */
        32: .line 356
            goto 35
        33: .line 353
      StackMap locals:
      StackMap stack:
            iinc 5 /* j */ 1
      StackMap locals:
      StackMap stack:
        34: iload 5 /* j */
            aload 1 /* that */
            getfield java.security.CodeSource.certs:[Ljava/security/cert/Certificate;
            arraylength
            if_icmplt 30
        end local 5 // int j
        35: .line 359
      StackMap locals:
      StackMap stack:
            iload 3 /* match */
            ifne 36
            iconst_0
            ireturn
        36: .line 351
      StackMap locals:
      StackMap stack:
            iinc 4 /* i */ 1
        end local 3 // boolean match
      StackMap locals: java.security.CodeSource java.security.CodeSource int top int
      StackMap stack:
        37: iload 4 /* i */
            aload 0 /* this */
            getfield java.security.CodeSource.certs:[Ljava/security/cert/Certificate;
            arraylength
            if_icmplt 27
        end local 4 // int i
        38: .line 361
            iconst_1
            ireturn
        39: .line 364
      StackMap locals: java.security.CodeSource java.security.CodeSource int
      StackMap stack:
            iconst_0
            ireturn
        end local 2 // boolean strict
        end local 1 // java.security.CodeSource that
        end local 0 // java.security.CodeSource this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0   40     0    this  Ljava/security/CodeSource;
            0   40     1    that  Ljava/security/CodeSource;
            0   40     2  strict  Z
           11   20     3   match  Z
           28   37     3   match  Z
            9   21     4       i  I
           12   18     5       j  I
           26   38     4       i  I
           29   35     5       j  I
    MethodParameters:
        Name  Flags
      that    
      strict  

  private boolean matchLocation(java.security.CodeSource);
    descriptor: (Ljava/security/CodeSource;)Z
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=5, locals=7, args_size=2
        start local 0 // java.security.CodeSource this
        start local 1 // java.security.CodeSource that
         0: .line 375
            aload 0 /* this */
            getfield java.security.CodeSource.location:Ljava/net/URL;
            ifnonnull 2
         1: .line 376
            iconst_1
            ireturn
         2: .line 379
      StackMap locals:
      StackMap stack:
            aload 1 /* that */
            ifnull 3
            aload 1 /* that */
            getfield java.security.CodeSource.location:Ljava/net/URL;
            ifnonnull 4
         3: .line 380
      StackMap locals:
      StackMap stack:
            iconst_0
            ireturn
         4: .line 382
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield java.security.CodeSource.location:Ljava/net/URL;
            aload 1 /* that */
            getfield java.security.CodeSource.location:Ljava/net/URL;
            invokevirtual java.net.URL.equals:(Ljava/lang/Object;)Z
            ifeq 6
         5: .line 383
            iconst_1
            ireturn
         6: .line 385
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield java.security.CodeSource.location:Ljava/net/URL;
            invokevirtual java.net.URL.getProtocol:()Ljava/lang/String;
            aload 1 /* that */
            getfield java.security.CodeSource.location:Ljava/net/URL;
            invokevirtual java.net.URL.getProtocol:()Ljava/lang/String;
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifne 8
         7: .line 386
            iconst_0
            ireturn
         8: .line 388
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield java.security.CodeSource.location:Ljava/net/URL;
            invokevirtual java.net.URL.getHost:()Ljava/lang/String;
            astore 2 /* thisHost */
        start local 2 // java.lang.String thisHost
         9: .line 389
            aload 1 /* that */
            getfield java.security.CodeSource.location:Ljava/net/URL;
            invokevirtual java.net.URL.getHost:()Ljava/lang/String;
            astore 3 /* thatHost */
        start local 3 // java.lang.String thatHost
        10: .line 391
            aload 2 /* thisHost */
            ifnull 22
        11: .line 392
            ldc ""
            aload 2 /* thisHost */
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifne 12
            ldc "localhost"
            aload 2 /* thisHost */
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifeq 13
        12: .line 393
      StackMap locals: java.lang.String java.lang.String
      StackMap stack:
            ldc ""
            aload 3 /* thatHost */
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifne 22
            ldc "localhost"
            aload 3 /* thatHost */
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifne 22
        13: .line 395
      StackMap locals:
      StackMap stack:
            aload 2 /* thisHost */
            aload 3 /* thatHost */
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifne 22
        14: .line 396
            aload 3 /* thatHost */
            ifnonnull 16
        15: .line 397
            iconst_0
            ireturn
        16: .line 399
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield java.security.CodeSource.sp:Ljava/net/SocketPermission;
            ifnonnull 18
        17: .line 400
            aload 0 /* this */
            new java.net.SocketPermission
            dup
            aload 2 /* thisHost */
            ldc "resolve"
            invokespecial java.net.SocketPermission.<init>:(Ljava/lang/String;Ljava/lang/String;)V
            putfield java.security.CodeSource.sp:Ljava/net/SocketPermission;
        18: .line 402
      StackMap locals:
      StackMap stack:
            aload 1 /* that */
            getfield java.security.CodeSource.sp:Ljava/net/SocketPermission;
            ifnonnull 20
        19: .line 403
            aload 1 /* that */
            new java.net.SocketPermission
            dup
            aload 3 /* thatHost */
            ldc "resolve"
            invokespecial java.net.SocketPermission.<init>:(Ljava/lang/String;Ljava/lang/String;)V
            putfield java.security.CodeSource.sp:Ljava/net/SocketPermission;
        20: .line 405
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield java.security.CodeSource.sp:Ljava/net/SocketPermission;
            aload 1 /* that */
            getfield java.security.CodeSource.sp:Ljava/net/SocketPermission;
            invokevirtual java.net.SocketPermission.implies:(Ljava/security/Permission;)Z
            ifne 22
        21: .line 406
            iconst_0
            ireturn
        22: .line 411
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield java.security.CodeSource.location:Ljava/net/URL;
            invokevirtual java.net.URL.getPort:()I
            iconst_m1
            if_icmpeq 25
        23: .line 412
            aload 0 /* this */
            getfield java.security.CodeSource.location:Ljava/net/URL;
            invokevirtual java.net.URL.getPort:()I
            aload 1 /* that */
            getfield java.security.CodeSource.location:Ljava/net/URL;
            invokevirtual java.net.URL.getPort:()I
            if_icmpeq 25
        24: .line 413
            iconst_0
            ireturn
        25: .line 416
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield java.security.CodeSource.location:Ljava/net/URL;
            invokevirtual java.net.URL.getFile:()Ljava/lang/String;
            ldc "/-"
            invokevirtual java.lang.String.endsWith:(Ljava/lang/String;)Z
            ifeq 31
        26: .line 421
            aload 0 /* this */
            getfield java.security.CodeSource.location:Ljava/net/URL;
            invokevirtual java.net.URL.getFile:()Ljava/lang/String;
            iconst_0
        27: .line 422
            aload 0 /* this */
            getfield java.security.CodeSource.location:Ljava/net/URL;
            invokevirtual java.net.URL.getFile:()Ljava/lang/String;
            invokevirtual java.lang.String.length:()I
            iconst_1
            isub
        28: .line 421
            invokevirtual java.lang.String.substring:(II)Ljava/lang/String;
            astore 4 /* thisPath */
        start local 4 // java.lang.String thisPath
        29: .line 423
            aload 1 /* that */
            getfield java.security.CodeSource.location:Ljava/net/URL;
            invokevirtual java.net.URL.getFile:()Ljava/lang/String;
            aload 4 /* thisPath */
            invokevirtual java.lang.String.startsWith:(Ljava/lang/String;)Z
            ifne 44
        30: .line 424
            iconst_0
            ireturn
        end local 4 // java.lang.String thisPath
        31: .line 425
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield java.security.CodeSource.location:Ljava/net/URL;
            invokevirtual java.net.URL.getFile:()Ljava/lang/String;
            ldc "/*"
            invokevirtual java.lang.String.endsWith:(Ljava/lang/String;)Z
            ifeq 41
        32: .line 430
            aload 1 /* that */
            getfield java.security.CodeSource.location:Ljava/net/URL;
            invokevirtual java.net.URL.getFile:()Ljava/lang/String;
            bipush 47
            invokevirtual java.lang.String.lastIndexOf:(I)I
            istore 4 /* last */
        start local 4 // int last
        33: .line 431
            iload 4 /* last */
            iconst_m1
            if_icmpne 35
        34: .line 432
            iconst_0
            ireturn
        35: .line 433
      StackMap locals: int
      StackMap stack:
            aload 0 /* this */
            getfield java.security.CodeSource.location:Ljava/net/URL;
            invokevirtual java.net.URL.getFile:()Ljava/lang/String;
            iconst_0
        36: .line 434
            aload 0 /* this */
            getfield java.security.CodeSource.location:Ljava/net/URL;
            invokevirtual java.net.URL.getFile:()Ljava/lang/String;
            invokevirtual java.lang.String.length:()I
            iconst_1
            isub
        37: .line 433
            invokevirtual java.lang.String.substring:(II)Ljava/lang/String;
            astore 5 /* thisPath */
        start local 5 // java.lang.String thisPath
        38: .line 435
            aload 1 /* that */
            getfield java.security.CodeSource.location:Ljava/net/URL;
            invokevirtual java.net.URL.getFile:()Ljava/lang/String;
            iconst_0
            iload 4 /* last */
            iconst_1
            iadd
            invokevirtual java.lang.String.substring:(II)Ljava/lang/String;
            astore 6 /* thatPath */
        start local 6 // java.lang.String thatPath
        39: .line 436
            aload 6 /* thatPath */
            aload 5 /* thisPath */
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifne 44
        40: .line 437
            iconst_0
            ireturn
        end local 6 // java.lang.String thatPath
        end local 5 // java.lang.String thisPath
        end local 4 // int last
        41: .line 441
      StackMap locals:
      StackMap stack:
            aload 1 /* that */
            getfield java.security.CodeSource.location:Ljava/net/URL;
            invokevirtual java.net.URL.getFile:()Ljava/lang/String;
            aload 0 /* this */
            getfield java.security.CodeSource.location:Ljava/net/URL;
            invokevirtual java.net.URL.getFile:()Ljava/lang/String;
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifne 44
        42: .line 442
            aload 1 /* that */
            getfield java.security.CodeSource.location:Ljava/net/URL;
            invokevirtual java.net.URL.getFile:()Ljava/lang/String;
            new java.lang.StringBuilder
            dup
            aload 0 /* this */
            getfield java.security.CodeSource.location:Ljava/net/URL;
            invokevirtual java.net.URL.getFile:()Ljava/lang/String;
            invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            ldc "/"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifne 44
        43: .line 443
            iconst_0
            ireturn
        44: .line 447
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield java.security.CodeSource.location:Ljava/net/URL;
            invokevirtual java.net.URL.getRef:()Ljava/lang/String;
            ifnonnull 46
        45: .line 448
            iconst_1
            ireturn
        46: .line 450
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield java.security.CodeSource.location:Ljava/net/URL;
            invokevirtual java.net.URL.getRef:()Ljava/lang/String;
            aload 1 /* that */
            getfield java.security.CodeSource.location:Ljava/net/URL;
            invokevirtual java.net.URL.getRef:()Ljava/lang/String;
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ireturn
        end local 3 // java.lang.String thatHost
        end local 2 // java.lang.String thisHost
        end local 1 // java.security.CodeSource that
        end local 0 // java.security.CodeSource this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0   47     0      this  Ljava/security/CodeSource;
            0   47     1      that  Ljava/security/CodeSource;
            9   47     2  thisHost  Ljava/lang/String;
           10   47     3  thatHost  Ljava/lang/String;
           29   31     4  thisPath  Ljava/lang/String;
           33   41     4      last  I
           38   41     5  thisPath  Ljava/lang/String;
           39   41     6  thatPath  Ljava/lang/String;
    MethodParameters:
      Name  Flags
      that  

  public java.lang.String toString();
    descriptor: ()Ljava/lang/String;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=3, args_size=1
        start local 0 // java.security.CodeSource this
         0: .line 460
            new java.lang.StringBuilder
            dup
            invokespecial java.lang.StringBuilder.<init>:()V
            astore 1 /* sb */
        start local 1 // java.lang.StringBuilder sb
         1: .line 461
            aload 1 /* sb */
            ldc "("
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            pop
         2: .line 462
            aload 1 /* sb */
            aload 0 /* this */
            getfield java.security.CodeSource.location:Ljava/net/URL;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
            pop
         3: .line 464
            aload 0 /* this */
            getfield java.security.CodeSource.certs:[Ljava/security/cert/Certificate;
            ifnull 10
            aload 0 /* this */
            getfield java.security.CodeSource.certs:[Ljava/security/cert/Certificate;
            arraylength
            ifle 10
         4: .line 465
            iconst_0
            istore 2 /* i */
        start local 2 // int i
         5: goto 8
         6: .line 466
      StackMap locals: java.lang.StringBuilder int
      StackMap stack:
            aload 1 /* sb */
            new java.lang.StringBuilder
            dup
            ldc " "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 0 /* this */
            getfield java.security.CodeSource.certs:[Ljava/security/cert/Certificate;
            iload 2 /* i */
            aaload
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            pop
         7: .line 465
            iinc 2 /* i */ 1
      StackMap locals:
      StackMap stack:
         8: iload 2 /* i */
            aload 0 /* this */
            getfield java.security.CodeSource.certs:[Ljava/security/cert/Certificate;
            arraylength
            if_icmplt 6
        end local 2 // int i
         9: .line 469
            goto 18
      StackMap locals:
      StackMap stack:
        10: aload 0 /* this */
            getfield java.security.CodeSource.signers:[Ljava/security/CodeSigner;
            ifnull 17
            aload 0 /* this */
            getfield java.security.CodeSource.signers:[Ljava/security/CodeSigner;
            arraylength
            ifle 17
        11: .line 470
            iconst_0
            istore 2 /* i */
        start local 2 // int i
        12: goto 15
        13: .line 471
      StackMap locals: int
      StackMap stack:
            aload 1 /* sb */
            new java.lang.StringBuilder
            dup
            ldc " "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 0 /* this */
            getfield java.security.CodeSource.signers:[Ljava/security/CodeSigner;
            iload 2 /* i */
            aaload
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            pop
        14: .line 470
            iinc 2 /* i */ 1
      StackMap locals:
      StackMap stack:
        15: iload 2 /* i */
            aload 0 /* this */
            getfield java.security.CodeSource.signers:[Ljava/security/CodeSigner;
            arraylength
            if_icmplt 13
        end local 2 // int i
        16: .line 473
            goto 18
        17: .line 474
      StackMap locals:
      StackMap stack:
            aload 1 /* sb */
            ldc " <no signer certificates>"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            pop
        18: .line 476
      StackMap locals:
      StackMap stack:
            aload 1 /* sb */
            ldc ")"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            pop
        19: .line 477
            aload 1 /* sb */
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            areturn
        end local 1 // java.lang.StringBuilder sb
        end local 0 // java.security.CodeSource this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0   20     0  this  Ljava/security/CodeSource;
            1   20     1    sb  Ljava/lang/StringBuilder;
            5    9     2     i  I
           12   16     2     i  I

  private void writeObject(java.io.ObjectOutputStream);
    descriptor: (Ljava/io/ObjectOutputStream;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=3, locals=5, args_size=2
        start local 0 // java.security.CodeSource this
        start local 1 // java.io.ObjectOutputStream oos
         0: .line 497
            aload 1 /* oos */
            invokevirtual java.io.ObjectOutputStream.defaultWriteObject:()V
         1: .line 500
            aload 0 /* this */
            getfield java.security.CodeSource.certs:[Ljava/security/cert/Certificate;
            ifnull 2
            aload 0 /* this */
            getfield java.security.CodeSource.certs:[Ljava/security/cert/Certificate;
            arraylength
            ifne 4
         2: .line 501
      StackMap locals:
      StackMap stack:
            aload 1 /* oos */
            iconst_0
            invokevirtual java.io.ObjectOutputStream.writeInt:(I)V
         3: .line 502
            goto 17
         4: .line 504
      StackMap locals:
      StackMap stack:
            aload 1 /* oos */
            aload 0 /* this */
            getfield java.security.CodeSource.certs:[Ljava/security/cert/Certificate;
            arraylength
            invokevirtual java.io.ObjectOutputStream.writeInt:(I)V
         5: .line 506
            iconst_0
            istore 2 /* i */
        start local 2 // int i
         6: goto 16
         7: .line 507
      StackMap locals: int
      StackMap stack:
            aload 0 /* this */
            getfield java.security.CodeSource.certs:[Ljava/security/cert/Certificate;
            iload 2 /* i */
            aaload
            astore 3 /* cert */
        start local 3 // java.security.cert.Certificate cert
         8: .line 509
            aload 1 /* oos */
            aload 3 /* cert */
            invokevirtual java.security.cert.Certificate.getType:()Ljava/lang/String;
            invokevirtual java.io.ObjectOutputStream.writeUTF:(Ljava/lang/String;)V
         9: .line 510
            aload 3 /* cert */
            invokevirtual java.security.cert.Certificate.getEncoded:()[B
            astore 4 /* encoded */
        start local 4 // byte[] encoded
        10: .line 511
            aload 1 /* oos */
            aload 4 /* encoded */
            arraylength
            invokevirtual java.io.ObjectOutputStream.writeInt:(I)V
        11: .line 512
            aload 1 /* oos */
            aload 4 /* encoded */
            invokevirtual java.io.ObjectOutputStream.write:([B)V
        end local 4 // byte[] encoded
        12: .line 513
            goto 15
      StackMap locals: java.security.CodeSource java.io.ObjectOutputStream int java.security.cert.Certificate
      StackMap stack: java.security.cert.CertificateEncodingException
        13: astore 4 /* cee */
        start local 4 // java.security.cert.CertificateEncodingException cee
        14: .line 514
            new java.io.IOException
            dup
            aload 4 /* cee */
            invokevirtual java.security.cert.CertificateEncodingException.getMessage:()Ljava/lang/String;
            invokespecial java.io.IOException.<init>:(Ljava/lang/String;)V
            athrow
        end local 4 // java.security.cert.CertificateEncodingException cee
        end local 3 // java.security.cert.Certificate cert
        15: .line 506
      StackMap locals:
      StackMap stack:
            iinc 2 /* i */ 1
      StackMap locals:
      StackMap stack:
        16: iload 2 /* i */
            aload 0 /* this */
            getfield java.security.CodeSource.certs:[Ljava/security/cert/Certificate;
            arraylength
            if_icmplt 7
        end local 2 // int i
        17: .line 520
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield java.security.CodeSource.signers:[Ljava/security/CodeSigner;
            ifnull 19
            aload 0 /* this */
            getfield java.security.CodeSource.signers:[Ljava/security/CodeSigner;
            arraylength
            ifle 19
        18: .line 521
            aload 1 /* oos */
            aload 0 /* this */
            getfield java.security.CodeSource.signers:[Ljava/security/CodeSigner;
            invokevirtual java.io.ObjectOutputStream.writeObject:(Ljava/lang/Object;)V
        19: .line 523
      StackMap locals:
      StackMap stack:
            return
        end local 1 // java.io.ObjectOutputStream oos
        end local 0 // java.security.CodeSource this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0   20     0     this  Ljava/security/CodeSource;
            0   20     1      oos  Ljava/io/ObjectOutputStream;
            6   17     2        i  I
            8   15     3     cert  Ljava/security/cert/Certificate;
           10   12     4  encoded  [B
           14   15     4      cee  Ljava/security/cert/CertificateEncodingException;
      Exception table:
        from    to  target  type
           8    12      13  Class java.security.cert.CertificateEncodingException
    Exceptions:
      throws java.io.IOException
    MethodParameters:
      Name  Flags
      oos   

  private void readObject(java.io.ObjectInputStream);
    descriptor: (Ljava/io/ObjectInputStream;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=5, locals=11, args_size=2
        start local 0 // java.security.CodeSource this
        start local 1 // java.io.ObjectInputStream ois
         0: .line 532
            aconst_null
            astore 3 /* cfs */
        start local 3 // java.util.Hashtable cfs
         1: .line 533
            aconst_null
            astore 4 /* certList */
        start local 4 // java.util.List certList
         2: .line 535
            aload 1 /* ois */
            invokevirtual java.io.ObjectInputStream.defaultReadObject:()V
         3: .line 538
            aload 1 /* ois */
            invokevirtual java.io.ObjectInputStream.readInt:()I
            istore 5 /* size */
        start local 5 // int size
         4: .line 539
            iload 5 /* size */
            ifle 10
         5: .line 542
            new java.util.Hashtable
            dup
            iconst_3
            invokespecial java.util.Hashtable.<init>:(I)V
            astore 3 /* cfs */
         6: .line 543
            new java.util.ArrayList
            dup
            iload 5 /* size */
            bipush 20
            if_icmple 7
            bipush 20
            goto 8
      StackMap locals: java.security.CodeSource java.io.ObjectInputStream top java.util.Hashtable java.util.List int
      StackMap stack: new 6 new 6
         7: iload 5 /* size */
      StackMap locals: java.security.CodeSource java.io.ObjectInputStream top java.util.Hashtable java.util.List int
      StackMap stack: new 6 new 6 int
         8: invokespecial java.util.ArrayList.<init>:(I)V
            astore 4 /* certList */
         9: .line 544
            goto 12
      StackMap locals:
      StackMap stack:
        10: iload 5 /* size */
            ifge 12
        11: .line 545
            new java.io.IOException
            dup
            ldc "size cannot be negative"
            invokespecial java.io.IOException.<init>:(Ljava/lang/String;)V
            athrow
        12: .line 548
      StackMap locals:
      StackMap stack:
            iconst_0
            istore 6 /* i */
        start local 6 // int i
        13: goto 33
        14: .line 551
      StackMap locals: int
      StackMap stack:
            aload 1 /* ois */
            invokevirtual java.io.ObjectInputStream.readUTF:()Ljava/lang/String;
            astore 7 /* certType */
        start local 7 // java.lang.String certType
        15: .line 552
            aload 3 /* cfs */
            aload 7 /* certType */
            invokevirtual java.util.Hashtable.containsKey:(Ljava/lang/Object;)Z
            ifeq 18
        16: .line 554
            aload 3 /* cfs */
            aload 7 /* certType */
            invokevirtual java.util.Hashtable.get:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast java.security.cert.CertificateFactory
            astore 2 /* cf */
        start local 2 // java.security.cert.CertificateFactory cf
        17: .line 555
            goto 25
        end local 2 // java.security.cert.CertificateFactory cf
        18: .line 558
      StackMap locals: java.lang.String
      StackMap stack:
            aload 7 /* certType */
            invokestatic java.security.cert.CertificateFactory.getInstance:(Ljava/lang/String;)Ljava/security/cert/CertificateFactory;
            astore 2 /* cf */
        start local 2 // java.security.cert.CertificateFactory cf
        19: .line 559
            goto 24
        end local 2 // java.security.cert.CertificateFactory cf
      StackMap locals:
      StackMap stack: java.security.cert.CertificateException
        20: pop
        21: .line 560
            new java.lang.ClassNotFoundException
            dup
        22: .line 561
            new java.lang.StringBuilder
            dup
            ldc "Certificate factory for "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 7 /* certType */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            ldc " not found"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
        23: .line 560
            invokespecial java.lang.ClassNotFoundException.<init>:(Ljava/lang/String;)V
            athrow
        start local 2 // java.security.cert.CertificateFactory cf
        24: .line 564
      StackMap locals: java.security.CodeSource java.io.ObjectInputStream java.security.cert.CertificateFactory java.util.Hashtable java.util.List int int java.lang.String
      StackMap stack:
            aload 3 /* cfs */
            aload 7 /* certType */
            aload 2 /* cf */
            invokevirtual java.util.Hashtable.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
        25: .line 567
      StackMap locals:
      StackMap stack:
            aload 1 /* ois */
            aload 1 /* ois */
            invokevirtual java.io.ObjectInputStream.readInt:()I
            invokestatic sun.misc.IOUtils.readNBytes:(Ljava/io/InputStream;I)[B
            astore 8 /* encoded */
        start local 8 // byte[] encoded
        26: .line 568
            new java.io.ByteArrayInputStream
            dup
            aload 8 /* encoded */
            invokespecial java.io.ByteArrayInputStream.<init>:([B)V
            astore 9 /* bais */
        start local 9 // java.io.ByteArrayInputStream bais
        27: .line 570
            aload 4 /* certList */
            aload 2 /* cf */
            aload 9 /* bais */
            invokevirtual java.security.cert.CertificateFactory.generateCertificate:(Ljava/io/InputStream;)Ljava/security/cert/Certificate;
            invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
            pop
        28: .line 571
            goto 31
      StackMap locals: java.security.CodeSource java.io.ObjectInputStream java.security.cert.CertificateFactory java.util.Hashtable java.util.List int int java.lang.String byte[] java.io.ByteArrayInputStream
      StackMap stack: java.security.cert.CertificateException
        29: astore 10 /* ce */
        start local 10 // java.security.cert.CertificateException ce
        30: .line 572
            new java.io.IOException
            dup
            aload 10 /* ce */
            invokevirtual java.security.cert.CertificateException.getMessage:()Ljava/lang/String;
            invokespecial java.io.IOException.<init>:(Ljava/lang/String;)V
            athrow
        end local 10 // java.security.cert.CertificateException ce
        31: .line 574
      StackMap locals:
      StackMap stack:
            aload 9 /* bais */
            invokevirtual java.io.ByteArrayInputStream.close:()V
        end local 9 // java.io.ByteArrayInputStream bais
        end local 8 // byte[] encoded
        end local 7 // java.lang.String certType
        32: .line 548
            iinc 6 /* i */ 1
        end local 2 // java.security.cert.CertificateFactory cf
      StackMap locals: java.security.CodeSource java.io.ObjectInputStream top java.util.Hashtable java.util.List int int
      StackMap stack:
        33: iload 6 /* i */
            iload 5 /* size */
            if_icmplt 14
        end local 6 // int i
        34: .line 577
            aload 4 /* certList */
            ifnull 38
        35: .line 578
            aload 0 /* this */
            aload 4 /* certList */
        36: .line 579
            iload 5 /* size */
            anewarray java.security.cert.Certificate
        37: .line 578
            invokeinterface java.util.List.toArray:([Ljava/lang/Object;)[Ljava/lang/Object;
            checkcast java.security.cert.Certificate[]
            putfield java.security.CodeSource.certs:[Ljava/security/cert/Certificate;
        38: .line 583
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 1 /* ois */
            invokevirtual java.io.ObjectInputStream.readObject:()Ljava/lang/Object;
            checkcast java.security.CodeSigner[]
            putfield java.security.CodeSource.signers:[Ljava/security/CodeSigner;
        39: .line 584
            goto 41
      StackMap locals:
      StackMap stack: java.io.IOException
        40: pop
        41: .line 587
      StackMap locals:
      StackMap stack:
            return
        end local 5 // int size
        end local 4 // java.util.List certList
        end local 3 // java.util.Hashtable cfs
        end local 1 // java.io.ObjectInputStream ois
        end local 0 // java.security.CodeSource this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0   42     0      this  Ljava/security/CodeSource;
            0   42     1       ois  Ljava/io/ObjectInputStream;
           17   18     2        cf  Ljava/security/cert/CertificateFactory;
           19   20     2        cf  Ljava/security/cert/CertificateFactory;
           24   33     2        cf  Ljava/security/cert/CertificateFactory;
            1   42     3       cfs  Ljava/util/Hashtable<Ljava/lang/String;Ljava/security/cert/CertificateFactory;>;
            2   42     4  certList  Ljava/util/List<Ljava/security/cert/Certificate;>;
            4   42     5      size  I
           13   34     6         i  I
           15   32     7  certType  Ljava/lang/String;
           26   32     8   encoded  [B
           27   32     9      bais  Ljava/io/ByteArrayInputStream;
           30   31    10        ce  Ljava/security/cert/CertificateException;
      Exception table:
        from    to  target  type
          18    19      20  Class java.security.cert.CertificateException
          27    28      29  Class java.security.cert.CertificateException
          38    39      40  Class java.io.IOException
    Exceptions:
      throws java.io.IOException, java.lang.ClassNotFoundException
    MethodParameters:
      Name  Flags
      ois   

  private java.security.CodeSigner[] convertCertArrayToSignerArray(java.security.cert.Certificate[]);
    descriptor: ([Ljava/security/cert/Certificate;)[Ljava/security/CodeSigner;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=5, locals=7, args_size=2
        start local 0 // java.security.CodeSource this
        start local 1 // java.security.cert.Certificate[] certs
         0: .line 599
            aload 1 /* certs */
            ifnonnull 2
         1: .line 600
            aconst_null
            areturn
         2: .line 605
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield java.security.CodeSource.factory:Ljava/security/cert/CertificateFactory;
            ifnonnull 4
         3: .line 606
            aload 0 /* this */
            ldc "X.509"
            invokestatic java.security.cert.CertificateFactory.getInstance:(Ljava/lang/String;)Ljava/security/cert/CertificateFactory;
            putfield java.security.CodeSource.factory:Ljava/security/cert/CertificateFactory;
         4: .line 610
      StackMap locals:
      StackMap stack:
            iconst_0
            istore 2 /* i */
        start local 2 // int i
         5: .line 611
            new java.util.ArrayList
            dup
            invokespecial java.util.ArrayList.<init>:()V
            astore 3 /* signers */
        start local 3 // java.util.List signers
         6: .line 612
            goto 20
         7: .line 614
      StackMap locals: int java.util.List
      StackMap stack:
            new java.util.ArrayList
            dup
            invokespecial java.util.ArrayList.<init>:()V
         8: .line 613
            astore 4 /* certChain */
        start local 4 // java.util.List certChain
         9: .line 615
            aload 4 /* certChain */
            aload 1 /* certs */
            iload 2 /* i */
            iinc 2 /* i */ 1
            aaload
            invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
            pop
        10: .line 616
            iload 2 /* i */
            istore 5 /* j */
        start local 5 // int j
        11: .line 620
            goto 14
        12: .line 623
      StackMap locals: java.util.List int
      StackMap stack:
            aload 4 /* certChain */
            aload 1 /* certs */
            iload 5 /* j */
            aaload
            invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
            pop
        13: .line 624
            iinc 5 /* j */ 1
        14: .line 620
      StackMap locals:
      StackMap stack:
            iload 5 /* j */
            aload 1 /* certs */
            arraylength
            if_icmpge 17
        15: .line 621
            aload 1 /* certs */
            iload 5 /* j */
            aaload
            instanceof java.security.cert.X509Certificate
            ifeq 17
        16: .line 622
            aload 1 /* certs */
            iload 5 /* j */
            aaload
            checkcast java.security.cert.X509Certificate
            invokevirtual java.security.cert.X509Certificate.getBasicConstraints:()I
            iconst_m1
            if_icmpne 12
        17: .line 626
      StackMap locals:
      StackMap stack:
            iload 5 /* j */
            istore 2 /* i */
        18: .line 627
            aload 0 /* this */
            getfield java.security.CodeSource.factory:Ljava/security/cert/CertificateFactory;
            aload 4 /* certChain */
            invokevirtual java.security.cert.CertificateFactory.generateCertPath:(Ljava/util/List;)Ljava/security/cert/CertPath;
            astore 6 /* certPath */
        start local 6 // java.security.cert.CertPath certPath
        19: .line 628
            aload 3 /* signers */
            new java.security.CodeSigner
            dup
            aload 6 /* certPath */
            aconst_null
            invokespecial java.security.CodeSigner.<init>:(Ljava/security/cert/CertPath;Ljava/security/Timestamp;)V
            invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
            pop
        end local 6 // java.security.cert.CertPath certPath
        end local 5 // int j
        end local 4 // java.util.List certChain
        20: .line 612
      StackMap locals:
      StackMap stack:
            iload 2 /* i */
            aload 1 /* certs */
            arraylength
            if_icmplt 7
        21: .line 631
            aload 3 /* signers */
            invokeinterface java.util.List.isEmpty:()Z
            ifeq 23
        22: .line 632
            aconst_null
            areturn
        23: .line 634
      StackMap locals:
      StackMap stack:
            aload 3 /* signers */
            aload 3 /* signers */
            invokeinterface java.util.List.size:()I
            anewarray java.security.CodeSigner
            invokeinterface java.util.List.toArray:([Ljava/lang/Object;)[Ljava/lang/Object;
            checkcast java.security.CodeSigner[]
        24: areturn
        end local 3 // java.util.List signers
        end local 2 // int i
        25: .line 637
      StackMap locals: java.security.CodeSource java.security.cert.Certificate[]
      StackMap stack: java.security.cert.CertificateException
            pop
        26: .line 638
            aconst_null
            areturn
        end local 1 // java.security.cert.Certificate[] certs
        end local 0 // java.security.CodeSource this
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0   27     0       this  Ljava/security/CodeSource;
            0   27     1      certs  [Ljava/security/cert/Certificate;
            5   25     2          i  I
            6   25     3    signers  Ljava/util/List<Ljava/security/CodeSigner;>;
            9   20     4  certChain  Ljava/util/List<Ljava/security/cert/Certificate;>;
           11   20     5          j  I
           19   20     6   certPath  Ljava/security/cert/CertPath;
      Exception table:
        from    to  target  type
           2    22      25  Class java.security.cert.CertificateException
          23    24      25  Class java.security.cert.CertificateException
    MethodParameters:
       Name  Flags
      certs  
}
SourceFile: "CodeSource.java"