public class java.util.Random implements java.io.Serializable
  minor version: 0
  major version: 59
  flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
  this_class: java.util.Random
  super_class: java.lang.Object
{
  static final long serialVersionUID;
    descriptor: J
    flags: (0x0018) ACC_STATIC, ACC_FINAL
    ConstantValue: 3905348978240129619

  private final java.util.concurrent.atomic.AtomicLong seed;
    descriptor: Ljava/util/concurrent/atomic/AtomicLong;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private static final long multiplier;
    descriptor: J
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: 25214903917

  private static final long addend;
    descriptor: J
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: 11

  private static final long mask;
    descriptor: J
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: 281474976710655

  private static final double DOUBLE_UNIT;
    descriptor: D
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: 1.1102230246251565E-16

  static final java.lang.String BadBound;
    descriptor: Ljava/lang/String;
    flags: (0x0018) ACC_STATIC, ACC_FINAL
    ConstantValue: "bound must be positive"

  static final java.lang.String BadRange;
    descriptor: Ljava/lang/String;
    flags: (0x0018) ACC_STATIC, ACC_FINAL
    ConstantValue: "bound must be greater than origin"

  static final java.lang.String BadSize;
    descriptor: Ljava/lang/String;
    flags: (0x0018) ACC_STATIC, ACC_FINAL
    ConstantValue: "size must be non-negative"

  private static final java.util.concurrent.atomic.AtomicLong seedUniquifier;
    descriptor: Ljava/util/concurrent/atomic/AtomicLong;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL

  private double nextNextGaussian;
    descriptor: D
    flags: (0x0002) ACC_PRIVATE

  private boolean haveNextNextGaussian;
    descriptor: Z
    flags: (0x0002) ACC_PRIVATE

  private static final java.io.ObjectStreamField[] serialPersistentFields;
    descriptor: [Ljava/io/ObjectStreamField;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL

  private static final jdk.internal.misc.Unsafe unsafe;
    descriptor: Ljdk/internal/misc/Unsafe;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL

  private static final long seedOffset;
    descriptor: J
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL

  static void <clinit>();
    descriptor: ()V
    flags: (0x0008) ACC_STATIC
    Code:
      stack=7, locals=1, args_size=0
         0: .line 120
            new java.util.concurrent.atomic.AtomicLong
            dup
            ldc 8682522807148012
            invokespecial java.util.concurrent.atomic.AtomicLong.<init>:(J)V
         1: .line 119
            putstatic java.util.Random.seedUniquifier:Ljava/util/concurrent/atomic/AtomicLong;
         2: .line 1171
            iconst_3
            anewarray java.io.ObjectStreamField
            dup
            iconst_0
         3: .line 1172
            new java.io.ObjectStreamField
            dup
            ldc "seed"
            getstatic java.lang.Long.TYPE:Ljava/lang/Class;
            invokespecial java.io.ObjectStreamField.<init>:(Ljava/lang/String;Ljava/lang/Class;)V
            aastore
            dup
            iconst_1
         4: .line 1173
            new java.io.ObjectStreamField
            dup
            ldc "nextNextGaussian"
            getstatic java.lang.Double.TYPE:Ljava/lang/Class;
            invokespecial java.io.ObjectStreamField.<init>:(Ljava/lang/String;Ljava/lang/Class;)V
            aastore
            dup
            iconst_2
         5: .line 1174
            new java.io.ObjectStreamField
            dup
            ldc "haveNextNextGaussian"
            getstatic java.lang.Boolean.TYPE:Ljava/lang/Class;
            invokespecial java.io.ObjectStreamField.<init>:(Ljava/lang/String;Ljava/lang/Class;)V
            aastore
         6: .line 1171
            putstatic java.util.Random.serialPersistentFields:[Ljava/io/ObjectStreamField;
         7: .line 1216
            invokestatic jdk.internal.misc.Unsafe.getUnsafe:()Ljdk/internal/misc/Unsafe;
            putstatic java.util.Random.unsafe:Ljdk/internal/misc/Unsafe;
         8: .line 1220
            getstatic java.util.Random.unsafe:Ljdk/internal/misc/Unsafe;
         9: .line 1221
            ldc Ljava/util/Random;
            ldc "seed"
            invokevirtual java.lang.Class.getDeclaredField:(Ljava/lang/String;)Ljava/lang/reflect/Field;
        10: .line 1220
            invokevirtual jdk.internal.misc.Unsafe.objectFieldOffset:(Ljava/lang/reflect/Field;)J
            putstatic java.util.Random.seedOffset:J
        11: .line 1222
            goto 14
      StackMap locals:
      StackMap stack: java.lang.Exception
        12: astore 0 /* ex */
        start local 0 // java.lang.Exception ex
        13: new java.lang.Error
            dup
            aload 0 /* ex */
            invokespecial java.lang.Error.<init>:(Ljava/lang/Throwable;)V
            athrow
        end local 0 // java.lang.Exception ex
        14: .line 1223
      StackMap locals:
      StackMap stack:
            return
      LocalVariableTable:
        Start  End  Slot  Name  Signature
           13   14     0    ex  Ljava/lang/Exception;
      Exception table:
        from    to  target  type
           8    11      12  Class java.lang.Exception

  public void <init>();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=1, args_size=1
        start local 0 // java.util.Random this
         0: .line 105
            aload 0 /* this */
            invokestatic java.util.Random.seedUniquifier:()J
            invokestatic java.lang.System.nanoTime:()J
            lxor
            invokespecial java.util.Random.<init>:(J)V
         1: .line 106
            return
        end local 0 // java.util.Random this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Ljava/util/Random;

  private static long seedUniquifier();
    descriptor: ()J
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=5, locals=4, args_size=0
         0: .line 112
      StackMap locals:
      StackMap stack:
            getstatic java.util.Random.seedUniquifier:Ljava/util/concurrent/atomic/AtomicLong;
            invokevirtual java.util.concurrent.atomic.AtomicLong.get:()J
            lstore 0 /* current */
        start local 0 // long current
         1: .line 113
            lload 0 /* current */
            ldc 1181783497276652981
            lmul
            lstore 2 /* next */
        start local 2 // long next
         2: .line 114
            getstatic java.util.Random.seedUniquifier:Ljava/util/concurrent/atomic/AtomicLong;
            lload 0 /* current */
            lload 2 /* next */
            invokevirtual java.util.concurrent.atomic.AtomicLong.compareAndSet:(JJ)Z
            ifeq 0
         3: .line 115
            lload 2 /* next */
            lreturn
        end local 2 // long next
        end local 0 // long current
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            1    4     0  current  J
            2    4     2     next  J

  public void <init>(long);
    descriptor: (J)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=3, args_size=2
        start local 0 // java.util.Random this
        start local 1 // long seed
         0: .line 135
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
         1: .line 536
            aload 0 /* this */
            iconst_0
            putfield java.util.Random.haveNextNextGaussian:Z
         2: .line 136
            aload 0 /* this */
            invokevirtual java.lang.Object.getClass:()Ljava/lang/Class;
            ldc Ljava/util/Random;
            if_acmpne 4
         3: .line 137
            aload 0 /* this */
            new java.util.concurrent.atomic.AtomicLong
            dup
            lload 1 /* seed */
            invokestatic java.util.Random.initialScramble:(J)J
            invokespecial java.util.concurrent.atomic.AtomicLong.<init>:(J)V
            putfield java.util.Random.seed:Ljava/util/concurrent/atomic/AtomicLong;
            goto 6
         4: .line 140
      StackMap locals: java.util.Random long
      StackMap stack:
            aload 0 /* this */
            new java.util.concurrent.atomic.AtomicLong
            dup
            invokespecial java.util.concurrent.atomic.AtomicLong.<init>:()V
            putfield java.util.Random.seed:Ljava/util/concurrent/atomic/AtomicLong;
         5: .line 141
            aload 0 /* this */
            lload 1 /* seed */
            invokevirtual java.util.Random.setSeed:(J)V
         6: .line 143
      StackMap locals:
      StackMap stack:
            return
        end local 1 // long seed
        end local 0 // java.util.Random this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    7     0  this  Ljava/util/Random;
            0    7     1  seed  J
    MethodParameters:
      Name  Flags
      seed  

  private static long initialScramble(long);
    descriptor: (J)J
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=4, locals=2, args_size=1
        start local 0 // long seed
         0: .line 146
            lload 0 /* seed */
            ldc 25214903917
            lxor
            ldc 281474976710655
            land
            lreturn
        end local 0 // long seed
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  seed  J
    MethodParameters:
      Name  Flags
      seed  

  public synchronized void setSeed(long);
    descriptor: (J)V
    flags: (0x0021) ACC_PUBLIC, ACC_SYNCHRONIZED
    Code:
      stack=3, locals=3, args_size=2
        start local 0 // java.util.Random this
        start local 1 // long seed
         0: .line 169
            aload 0 /* this */
            getfield java.util.Random.seed:Ljava/util/concurrent/atomic/AtomicLong;
            lload 1 /* seed */
            invokestatic java.util.Random.initialScramble:(J)J
            invokevirtual java.util.concurrent.atomic.AtomicLong.set:(J)V
         1: .line 170
            aload 0 /* this */
            iconst_0
            putfield java.util.Random.haveNextNextGaussian:Z
         2: .line 171
            return
        end local 1 // long seed
        end local 0 // java.util.Random this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    3     0  this  Ljava/util/Random;
            0    3     1  seed  J
    MethodParameters:
      Name  Flags
      seed  

  protected int next(int);
    descriptor: (I)I
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=5, locals=7, args_size=2
        start local 0 // java.util.Random this
        start local 1 // int bits
         0: .line 200
            aload 0 /* this */
            getfield java.util.Random.seed:Ljava/util/concurrent/atomic/AtomicLong;
            astore 6 /* seed */
        start local 6 // java.util.concurrent.atomic.AtomicLong seed
         1: .line 202
      StackMap locals: java.util.Random int top top top top java.util.concurrent.atomic.AtomicLong
      StackMap stack:
            aload 6 /* seed */
            invokevirtual java.util.concurrent.atomic.AtomicLong.get:()J
            lstore 2 /* oldseed */
        start local 2 // long oldseed
         2: .line 203
            lload 2 /* oldseed */
            ldc 25214903917
            lmul
            ldc 11
            ladd
            ldc 281474976710655
            land
            lstore 4 /* nextseed */
        start local 4 // long nextseed
         3: .line 204
            aload 6 /* seed */
            lload 2 /* oldseed */
            lload 4 /* nextseed */
            invokevirtual java.util.concurrent.atomic.AtomicLong.compareAndSet:(JJ)Z
            ifeq 1
         4: .line 205
            lload 4 /* nextseed */
            bipush 48
            iload 1 /* bits */
            isub
            lushr
            l2i
            ireturn
        end local 6 // java.util.concurrent.atomic.AtomicLong seed
        end local 4 // long nextseed
        end local 2 // long oldseed
        end local 1 // int bits
        end local 0 // java.util.Random this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    5     0      this  Ljava/util/Random;
            0    5     1      bits  I
            2    5     2   oldseed  J
            3    5     4  nextseed  J
            1    5     6      seed  Ljava/util/concurrent/atomic/AtomicLong;
    MethodParameters:
      Name  Flags
      bits  

  public void nextBytes(byte[]);
    descriptor: ([B)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=6, args_size=2
        start local 0 // java.util.Random this
        start local 1 // byte[] bytes
         0: .line 228
            iconst_0
            istore 2 /* i */
        start local 2 // int i
         1: aload 1 /* bytes */
            arraylength
            istore 3 /* len */
        start local 3 // int len
         2: goto 10
         3: .line 229
      StackMap locals: int int
      StackMap stack:
            aload 0 /* this */
            invokevirtual java.util.Random.nextInt:()I
            istore 4 /* rnd */
        start local 4 // int rnd
         4: .line 230
            iload 3 /* len */
            iload 2 /* i */
            isub
            iconst_4
            invokestatic java.lang.Math.min:(II)I
            istore 5 /* n */
        start local 5 // int n
         5: .line 231
            goto 8
         6: .line 232
      StackMap locals: int int
      StackMap stack:
            aload 1 /* bytes */
            iload 2 /* i */
            iinc 2 /* i */ 1
            iload 4 /* rnd */
            i2b
            bastore
         7: .line 231
            iload 4 /* rnd */
            bipush 8
            ishr
            istore 4 /* rnd */
      StackMap locals:
      StackMap stack:
         8: iload 5 /* n */
            iinc 5 /* n */ -1
         9: .line 229
            ifgt 6
        end local 5 // int n
        end local 4 // int rnd
        10: .line 228
      StackMap locals:
      StackMap stack:
            iload 2 /* i */
            iload 3 /* len */
            if_icmplt 3
        end local 3 // int len
        end local 2 // int i
        11: .line 233
            return
        end local 1 // byte[] bytes
        end local 0 // java.util.Random this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0   12     0   this  Ljava/util/Random;
            0   12     1  bytes  [B
            1   11     2      i  I
            2   11     3    len  I
            4   10     4    rnd  I
            5   10     5      n  I
    MethodParameters:
       Name  Flags
      bytes  

  final long internalNextLong(long, long);
    descriptor: (JJ)J
    flags: (0x0010) ACC_FINAL
    Code:
      stack=6, locals=13, args_size=3
        start local 0 // java.util.Random this
        start local 1 // long origin
        start local 3 // long bound
         0: .line 245
            aload 0 /* this */
            invokevirtual java.util.Random.nextLong:()J
            lstore 5 /* r */
        start local 5 // long r
         1: .line 246
            lload 1 /* origin */
            lload 3 /* bound */
            lcmp
            ifge 16
         2: .line 247
            lload 3 /* bound */
            lload 1 /* origin */
            lsub
            lstore 7 /* n */
        start local 7 // long n
         3: lload 7 /* n */
            lconst_1
            lsub
            lstore 9 /* m */
        start local 9 // long m
         4: .line 248
            lload 7 /* n */
            lload 9 /* m */
            land
            lconst_0
            lcmp
            ifne 6
         5: .line 249
            lload 5 /* r */
            lload 9 /* m */
            land
            lload 1 /* origin */
            ladd
            lstore 5 /* r */
            goto 16
         6: .line 250
      StackMap locals: long long long
      StackMap stack:
            lload 7 /* n */
            lconst_0
            lcmp
            ifle 15
         7: .line 251
            lload 5 /* r */
            iconst_1
            lushr
            lstore 11 /* u */
        start local 11 // long u
         8: .line 252
            goto 10
         9: .line 253
      StackMap locals: long
      StackMap stack:
            aload 0 /* this */
            invokevirtual java.util.Random.nextLong:()J
            iconst_1
            lushr
            lstore 11 /* u */
        10: .line 252
      StackMap locals:
      StackMap stack:
            lload 11 /* u */
            lload 9 /* m */
            ladd
            lload 11 /* u */
            lload 7 /* n */
            lrem
            dup2
            lstore 5 /* r */
            lsub
            lconst_0
        11: .line 251
            lcmp
            iflt 9
        end local 11 // long u
        12: .line 255
            lload 5 /* r */
            lload 1 /* origin */
            ladd
            lstore 5 /* r */
        13: .line 256
            goto 16
        14: .line 259
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokevirtual java.util.Random.nextLong:()J
            lstore 5 /* r */
        15: .line 258
      StackMap locals:
      StackMap stack:
            lload 5 /* r */
            lload 1 /* origin */
            lcmp
            iflt 14
            lload 5 /* r */
            lload 3 /* bound */
            lcmp
            ifge 14
        end local 9 // long m
        end local 7 // long n
        16: .line 262
      StackMap locals:
      StackMap stack:
            lload 5 /* r */
            lreturn
        end local 5 // long r
        end local 3 // long bound
        end local 1 // long origin
        end local 0 // java.util.Random this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0   17     0    this  Ljava/util/Random;
            0   17     1  origin  J
            0   17     3   bound  J
            1   17     5       r  J
            3   16     7       n  J
            4   16     9       m  J
            8   12    11       u  J
    MethodParameters:
        Name  Flags
      origin  
      bound   

  final int internalNextInt(int, int);
    descriptor: (II)I
    flags: (0x0010) ACC_FINAL
    Code:
      stack=2, locals=5, args_size=3
        start local 0 // java.util.Random this
        start local 1 // int origin
        start local 2 // int bound
         0: .line 276
            iload 1 /* origin */
            iload 2 /* bound */
            if_icmpge 8
         1: .line 277
            iload 2 /* bound */
            iload 1 /* origin */
            isub
            istore 3 /* n */
        start local 3 // int n
         2: .line 278
            iload 3 /* n */
            ifle 4
         3: .line 279
            aload 0 /* this */
            iload 3 /* n */
            invokevirtual java.util.Random.nextInt:(I)I
            iload 1 /* origin */
            iadd
            ireturn
         4: .line 284
      StackMap locals: int
      StackMap stack:
            aload 0 /* this */
            invokevirtual java.util.Random.nextInt:()I
            istore 4 /* r */
        start local 4 // int r
         5: .line 285
            iload 4 /* r */
            iload 1 /* origin */
            if_icmplt 4
            iload 4 /* r */
            iload 2 /* bound */
         6: .line 283
            if_icmpge 4
         7: .line 286
            iload 4 /* r */
            ireturn
        end local 4 // int r
        end local 3 // int n
         8: .line 290
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokevirtual java.util.Random.nextInt:()I
            ireturn
        end local 2 // int bound
        end local 1 // int origin
        end local 0 // java.util.Random this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    9     0    this  Ljava/util/Random;
            0    9     1  origin  I
            0    9     2   bound  I
            2    8     3       n  I
            5    8     4       r  I
    MethodParameters:
        Name  Flags
      origin  
      bound   

  final double internalNextDouble(double, double);
    descriptor: (DD)D
    flags: (0x0010) ACC_FINAL
    Code:
      stack=6, locals=7, args_size=3
        start local 0 // java.util.Random this
        start local 1 // double origin
        start local 3 // double bound
         0: .line 302
            aload 0 /* this */
            invokevirtual java.util.Random.nextDouble:()D
            dstore 5 /* r */
        start local 5 // double r
         1: .line 303
            dload 1 /* origin */
            dload 3 /* bound */
            dcmpg
            ifge 5
         2: .line 304
            dload 5 /* r */
            dload 3 /* bound */
            dload 1 /* origin */
            dsub
            dmul
            dload 1 /* origin */
            dadd
            dstore 5 /* r */
         3: .line 305
            dload 5 /* r */
            dload 3 /* bound */
            dcmpl
            iflt 5
         4: .line 306
            dload 3 /* bound */
            invokestatic java.lang.Double.doubleToLongBits:(D)J
            lconst_1
            lsub
            invokestatic java.lang.Double.longBitsToDouble:(J)D
            dstore 5 /* r */
         5: .line 308
      StackMap locals: double
      StackMap stack:
            dload 5 /* r */
            dreturn
        end local 5 // double r
        end local 3 // double bound
        end local 1 // double origin
        end local 0 // java.util.Random this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    6     0    this  Ljava/util/Random;
            0    6     1  origin  D
            0    6     3   bound  D
            1    6     5       r  D
    MethodParameters:
        Name  Flags
      origin  
      bound   

  public int nextInt();
    descriptor: ()I
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // java.util.Random this
         0: .line 329
            aload 0 /* this */
            bipush 32
            invokevirtual java.util.Random.next:(I)I
            ireturn
        end local 0 // java.util.Random this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Ljava/util/Random;

  public int nextInt(int);
    descriptor: (I)I
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=5, args_size=2
        start local 0 // java.util.Random this
        start local 1 // int bound
         0: .line 387
            iload 1 /* bound */
            ifgt 2
         1: .line 388
            new java.lang.IllegalArgumentException
            dup
            ldc "bound must be positive"
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
            athrow
         2: .line 390
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            bipush 31
            invokevirtual java.util.Random.next:(I)I
            istore 2 /* r */
        start local 2 // int r
         3: .line 391
            iload 1 /* bound */
            iconst_1
            isub
            istore 3 /* m */
        start local 3 // int m
         4: .line 392
            iload 1 /* bound */
            iload 3 /* m */
            iand
            ifne 6
         5: .line 393
            iload 1 /* bound */
            i2l
            iload 2 /* r */
            i2l
            lmul
            bipush 31
            lshr
            l2i
            istore 2 /* r */
            goto 11
         6: .line 395
      StackMap locals: int int
      StackMap stack:
            iload 2 /* r */
            istore 4 /* u */
        start local 4 // int u
         7: .line 396
            goto 9
         8: .line 397
      StackMap locals: int
      StackMap stack:
            aload 0 /* this */
            bipush 31
            invokevirtual java.util.Random.next:(I)I
            istore 4 /* u */
         9: .line 396
      StackMap locals:
      StackMap stack:
            iload 4 /* u */
            iload 4 /* u */
            iload 1 /* bound */
            irem
            dup
            istore 2 /* r */
            isub
            iload 3 /* m */
            iadd
        10: .line 395
            iflt 8
        end local 4 // int u
        11: .line 400
      StackMap locals:
      StackMap stack:
            iload 2 /* r */
            ireturn
        end local 3 // int m
        end local 2 // int r
        end local 1 // int bound
        end local 0 // java.util.Random this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0   12     0   this  Ljava/util/Random;
            0   12     1  bound  I
            3   12     2      r  I
            4   12     3      m  I
            7   11     4      u  I
    MethodParameters:
       Name  Flags
      bound  

  public long nextLong();
    descriptor: ()J
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=1, args_size=1
        start local 0 // java.util.Random this
         0: .line 424
            aload 0 /* this */
            bipush 32
            invokevirtual java.util.Random.next:(I)I
            i2l
            bipush 32
            lshl
            aload 0 /* this */
            bipush 32
            invokevirtual java.util.Random.next:(I)I
            i2l
            ladd
            lreturn
        end local 0 // java.util.Random this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Ljava/util/Random;

  public boolean nextBoolean();
    descriptor: ()Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // java.util.Random this
         0: .line 448
            aload 0 /* this */
            iconst_1
            invokevirtual java.util.Random.next:(I)I
            ifeq 1
            iconst_1
            ireturn
      StackMap locals:
      StackMap stack:
         1: iconst_0
            ireturn
        end local 0 // java.util.Random this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Ljava/util/Random;

  public float nextFloat();
    descriptor: ()F
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // java.util.Random this
         0: .line 489
            aload 0 /* this */
            bipush 24
            invokevirtual java.util.Random.next:(I)I
            i2f
            ldc 1.6777216E7
            fdiv
            freturn
        end local 0 // java.util.Random this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Ljava/util/Random;

  public double nextDouble();
    descriptor: ()D
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=1, args_size=1
        start local 0 // java.util.Random this
         0: .line 532
            aload 0 /* this */
            bipush 26
            invokevirtual java.util.Random.next:(I)I
            i2l
            bipush 27
            lshl
            aload 0 /* this */
            bipush 27
            invokevirtual java.util.Random.next:(I)I
            i2l
            ladd
            l2d
            ldc 1.1102230246251565E-16
            dmul
            dreturn
        end local 0 // java.util.Random this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Ljava/util/Random;

  public synchronized double nextGaussian();
    descriptor: ()D
    flags: (0x0021) ACC_PUBLIC, ACC_SYNCHRONIZED
    Code:
      stack=6, locals=9, args_size=1
        start local 0 // java.util.Random this
         0: .line 585
            aload 0 /* this */
            getfield java.util.Random.haveNextNextGaussian:Z
            ifeq 3
         1: .line 586
            aload 0 /* this */
            iconst_0
            putfield java.util.Random.haveNextNextGaussian:Z
         2: .line 587
            aload 0 /* this */
            getfield java.util.Random.nextNextGaussian:D
            dreturn
         3: .line 591
      StackMap locals:
      StackMap stack:
            ldc 2.0
            aload 0 /* this */
            invokevirtual java.util.Random.nextDouble:()D
            dmul
            dconst_1
            dsub
            dstore 1 /* v1 */
        start local 1 // double v1
         4: .line 592
            ldc 2.0
            aload 0 /* this */
            invokevirtual java.util.Random.nextDouble:()D
            dmul
            dconst_1
            dsub
            dstore 3 /* v2 */
        start local 3 // double v2
         5: .line 593
            dload 1 /* v1 */
            dload 1 /* v1 */
            dmul
            dload 3 /* v2 */
            dload 3 /* v2 */
            dmul
            dadd
            dstore 5 /* s */
        start local 5 // double s
         6: .line 594
            dload 5 /* s */
            dconst_1
            dcmpl
            ifge 3
            dload 5 /* s */
            dconst_0
            dcmpl
            ifeq 3
         7: .line 595
            ldc -2.0
            dload 5 /* s */
            invokestatic java.lang.StrictMath.log:(D)D
            dmul
            dload 5 /* s */
            ddiv
            invokestatic java.lang.StrictMath.sqrt:(D)D
            dstore 7 /* multiplier */
        start local 7 // double multiplier
         8: .line 596
            aload 0 /* this */
            dload 3 /* v2 */
            dload 7 /* multiplier */
            dmul
            putfield java.util.Random.nextNextGaussian:D
         9: .line 597
            aload 0 /* this */
            iconst_1
            putfield java.util.Random.haveNextNextGaussian:Z
        10: .line 598
            dload 1 /* v1 */
            dload 7 /* multiplier */
            dmul
            dreturn
        end local 7 // double multiplier
        end local 5 // double s
        end local 3 // double v2
        end local 1 // double v1
        end local 0 // java.util.Random this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0   11     0        this  Ljava/util/Random;
            4   11     1          v1  D
            5   11     3          v2  D
            6   11     5           s  D
            8   11     7  multiplier  D

  public java.util.stream.IntStream ints(long);
    descriptor: (J)Ljava/util/stream/IntStream;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=9, locals=3, args_size=2
        start local 0 // java.util.Random this
        start local 1 // long streamSize
         0: .line 619
            lload 1 /* streamSize */
            lconst_0
            lcmp
            ifge 2
         1: .line 620
            new java.lang.IllegalArgumentException
            dup
            ldc "size must be non-negative"
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
            athrow
         2: .line 622
      StackMap locals:
      StackMap stack:
            new java.util.Random$RandomIntsSpliterator
            dup
         3: .line 623
            aload 0 /* this */
            lconst_0
            lload 1 /* streamSize */
            ldc 2147483647
            iconst_0
         4: .line 622
            invokespecial java.util.Random$RandomIntsSpliterator.<init>:(Ljava/util/Random;JJII)V
         5: .line 624
            iconst_0
         6: .line 621
            invokestatic java.util.stream.StreamSupport.intStream:(Ljava/util/Spliterator$OfInt;Z)Ljava/util/stream/IntStream;
            areturn
        end local 1 // long streamSize
        end local 0 // java.util.Random this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0    7     0        this  Ljava/util/Random;
            0    7     1  streamSize  J
    MethodParameters:
            Name  Flags
      streamSize  

  public java.util.stream.IntStream ints();
    descriptor: ()Ljava/util/stream/IntStream;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=9, locals=1, args_size=1
        start local 0 // java.util.Random this
         0: .line 642
            new java.util.Random$RandomIntsSpliterator
            dup
         1: .line 643
            aload 0 /* this */
            lconst_0
            ldc 9223372036854775807
            ldc 2147483647
            iconst_0
         2: .line 642
            invokespecial java.util.Random$RandomIntsSpliterator.<init>:(Ljava/util/Random;JJII)V
         3: .line 644
            iconst_0
         4: .line 641
            invokestatic java.util.stream.StreamSupport.intStream:(Ljava/util/Spliterator$OfInt;Z)Ljava/util/stream/IntStream;
            areturn
        end local 0 // java.util.Random this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    5     0  this  Ljava/util/Random;

  public java.util.stream.IntStream ints(long, int, int);
    descriptor: (JII)Ljava/util/stream/IntStream;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=9, locals=5, args_size=4
        start local 0 // java.util.Random this
        start local 1 // long streamSize
        start local 3 // int randomNumberOrigin
        start local 4 // int randomNumberBound
         0: .line 681
            lload 1 /* streamSize */
            lconst_0
            lcmp
            ifge 2
         1: .line 682
            new java.lang.IllegalArgumentException
            dup
            ldc "size must be non-negative"
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
            athrow
         2: .line 683
      StackMap locals:
      StackMap stack:
            iload 3 /* randomNumberOrigin */
            iload 4 /* randomNumberBound */
            if_icmplt 4
         3: .line 684
            new java.lang.IllegalArgumentException
            dup
            ldc "bound must be greater than origin"
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
            athrow
         4: .line 686
      StackMap locals:
      StackMap stack:
            new java.util.Random$RandomIntsSpliterator
            dup
         5: .line 687
            aload 0 /* this */
            lconst_0
            lload 1 /* streamSize */
            iload 3 /* randomNumberOrigin */
            iload 4 /* randomNumberBound */
         6: .line 686
            invokespecial java.util.Random$RandomIntsSpliterator.<init>:(Ljava/util/Random;JJII)V
         7: .line 688
            iconst_0
         8: .line 685
            invokestatic java.util.stream.StreamSupport.intStream:(Ljava/util/Spliterator$OfInt;Z)Ljava/util/stream/IntStream;
            areturn
        end local 4 // int randomNumberBound
        end local 3 // int randomNumberOrigin
        end local 1 // long streamSize
        end local 0 // java.util.Random this
      LocalVariableTable:
        Start  End  Slot                Name  Signature
            0    9     0                this  Ljava/util/Random;
            0    9     1          streamSize  J
            0    9     3  randomNumberOrigin  I
            0    9     4   randomNumberBound  I
    MethodParameters:
                    Name  Flags
      streamSize          
      randomNumberOrigin  
      randomNumberBound   

  public java.util.stream.IntStream ints(int, int);
    descriptor: (II)Ljava/util/stream/IntStream;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=9, locals=3, args_size=3
        start local 0 // java.util.Random this
        start local 1 // int randomNumberOrigin
        start local 2 // int randomNumberBound
         0: .line 725
            iload 1 /* randomNumberOrigin */
            iload 2 /* randomNumberBound */
            if_icmplt 2
         1: .line 726
            new java.lang.IllegalArgumentException
            dup
            ldc "bound must be greater than origin"
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
            athrow
         2: .line 728
      StackMap locals:
      StackMap stack:
            new java.util.Random$RandomIntsSpliterator
            dup
         3: .line 729
            aload 0 /* this */
            lconst_0
            ldc 9223372036854775807
            iload 1 /* randomNumberOrigin */
            iload 2 /* randomNumberBound */
         4: .line 728
            invokespecial java.util.Random$RandomIntsSpliterator.<init>:(Ljava/util/Random;JJII)V
         5: .line 730
            iconst_0
         6: .line 727
            invokestatic java.util.stream.StreamSupport.intStream:(Ljava/util/Spliterator$OfInt;Z)Ljava/util/stream/IntStream;
            areturn
        end local 2 // int randomNumberBound
        end local 1 // int randomNumberOrigin
        end local 0 // java.util.Random this
      LocalVariableTable:
        Start  End  Slot                Name  Signature
            0    7     0                this  Ljava/util/Random;
            0    7     1  randomNumberOrigin  I
            0    7     2   randomNumberBound  I
    MethodParameters:
                    Name  Flags
      randomNumberOrigin  
      randomNumberBound   

  public java.util.stream.LongStream longs(long);
    descriptor: (J)Ljava/util/stream/LongStream;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=11, locals=3, args_size=2
        start local 0 // java.util.Random this
        start local 1 // long streamSize
         0: .line 747
            lload 1 /* streamSize */
            lconst_0
            lcmp
            ifge 2
         1: .line 748
            new java.lang.IllegalArgumentException
            dup
            ldc "size must be non-negative"
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
            athrow
         2: .line 750
      StackMap locals:
      StackMap stack:
            new java.util.Random$RandomLongsSpliterator
            dup
         3: .line 751
            aload 0 /* this */
            lconst_0
            lload 1 /* streamSize */
            ldc 9223372036854775807
            lconst_0
         4: .line 750
            invokespecial java.util.Random$RandomLongsSpliterator.<init>:(Ljava/util/Random;JJJJ)V
         5: .line 752
            iconst_0
         6: .line 749
            invokestatic java.util.stream.StreamSupport.longStream:(Ljava/util/Spliterator$OfLong;Z)Ljava/util/stream/LongStream;
            areturn
        end local 1 // long streamSize
        end local 0 // java.util.Random this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0    7     0        this  Ljava/util/Random;
            0    7     1  streamSize  J
    MethodParameters:
            Name  Flags
      streamSize  

  public java.util.stream.LongStream longs();
    descriptor: ()Ljava/util/stream/LongStream;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=11, locals=1, args_size=1
        start local 0 // java.util.Random this
         0: .line 770
            new java.util.Random$RandomLongsSpliterator
            dup
         1: .line 771
            aload 0 /* this */
            lconst_0
            ldc 9223372036854775807
            ldc 9223372036854775807
            lconst_0
         2: .line 770
            invokespecial java.util.Random$RandomLongsSpliterator.<init>:(Ljava/util/Random;JJJJ)V
         3: .line 772
            iconst_0
         4: .line 769
            invokestatic java.util.stream.StreamSupport.longStream:(Ljava/util/Spliterator$OfLong;Z)Ljava/util/stream/LongStream;
            areturn
        end local 0 // java.util.Random this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    5     0  this  Ljava/util/Random;

  public java.util.stream.LongStream longs(long, long, long);
    descriptor: (JJJ)Ljava/util/stream/LongStream;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=11, locals=7, args_size=4
        start local 0 // java.util.Random this
        start local 1 // long streamSize
        start local 3 // long randomNumberOrigin
        start local 5 // long randomNumberBound
         0: .line 814
            lload 1 /* streamSize */
            lconst_0
            lcmp
            ifge 2
         1: .line 815
            new java.lang.IllegalArgumentException
            dup
            ldc "size must be non-negative"
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
            athrow
         2: .line 816
      StackMap locals:
      StackMap stack:
            lload 3 /* randomNumberOrigin */
            lload 5 /* randomNumberBound */
            lcmp
            iflt 4
         3: .line 817
            new java.lang.IllegalArgumentException
            dup
            ldc "bound must be greater than origin"
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
            athrow
         4: .line 819
      StackMap locals:
      StackMap stack:
            new java.util.Random$RandomLongsSpliterator
            dup
         5: .line 820
            aload 0 /* this */
            lconst_0
            lload 1 /* streamSize */
            lload 3 /* randomNumberOrigin */
            lload 5 /* randomNumberBound */
         6: .line 819
            invokespecial java.util.Random$RandomLongsSpliterator.<init>:(Ljava/util/Random;JJJJ)V
         7: .line 821
            iconst_0
         8: .line 818
            invokestatic java.util.stream.StreamSupport.longStream:(Ljava/util/Spliterator$OfLong;Z)Ljava/util/stream/LongStream;
            areturn
        end local 5 // long randomNumberBound
        end local 3 // long randomNumberOrigin
        end local 1 // long streamSize
        end local 0 // java.util.Random this
      LocalVariableTable:
        Start  End  Slot                Name  Signature
            0    9     0                this  Ljava/util/Random;
            0    9     1          streamSize  J
            0    9     3  randomNumberOrigin  J
            0    9     5   randomNumberBound  J
    MethodParameters:
                    Name  Flags
      streamSize          
      randomNumberOrigin  
      randomNumberBound   

  public java.util.stream.LongStream longs(long, long);
    descriptor: (JJ)Ljava/util/stream/LongStream;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=11, locals=5, args_size=3
        start local 0 // java.util.Random this
        start local 1 // long randomNumberOrigin
        start local 3 // long randomNumberBound
         0: .line 863
            lload 1 /* randomNumberOrigin */
            lload 3 /* randomNumberBound */
            lcmp
            iflt 2
         1: .line 864
            new java.lang.IllegalArgumentException
            dup
            ldc "bound must be greater than origin"
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
            athrow
         2: .line 866
      StackMap locals:
      StackMap stack:
            new java.util.Random$RandomLongsSpliterator
            dup
         3: .line 867
            aload 0 /* this */
            lconst_0
            ldc 9223372036854775807
            lload 1 /* randomNumberOrigin */
            lload 3 /* randomNumberBound */
         4: .line 866
            invokespecial java.util.Random$RandomLongsSpliterator.<init>:(Ljava/util/Random;JJJJ)V
         5: .line 868
            iconst_0
         6: .line 865
            invokestatic java.util.stream.StreamSupport.longStream:(Ljava/util/Spliterator$OfLong;Z)Ljava/util/stream/LongStream;
            areturn
        end local 3 // long randomNumberBound
        end local 1 // long randomNumberOrigin
        end local 0 // java.util.Random this
      LocalVariableTable:
        Start  End  Slot                Name  Signature
            0    7     0                this  Ljava/util/Random;
            0    7     1  randomNumberOrigin  J
            0    7     3   randomNumberBound  J
    MethodParameters:
                    Name  Flags
      randomNumberOrigin  
      randomNumberBound   

  public java.util.stream.DoubleStream doubles(long);
    descriptor: (J)Ljava/util/stream/DoubleStream;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=11, locals=3, args_size=2
        start local 0 // java.util.Random this
        start local 1 // long streamSize
         0: .line 886
            lload 1 /* streamSize */
            lconst_0
            lcmp
            ifge 2
         1: .line 887
            new java.lang.IllegalArgumentException
            dup
            ldc "size must be non-negative"
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
            athrow
         2: .line 889
      StackMap locals:
      StackMap stack:
            new java.util.Random$RandomDoublesSpliterator
            dup
         3: .line 890
            aload 0 /* this */
            lconst_0
            lload 1 /* streamSize */
            ldc 1.7976931348623157E308
            dconst_0
         4: .line 889
            invokespecial java.util.Random$RandomDoublesSpliterator.<init>:(Ljava/util/Random;JJDD)V
         5: .line 891
            iconst_0
         6: .line 888
            invokestatic java.util.stream.StreamSupport.doubleStream:(Ljava/util/Spliterator$OfDouble;Z)Ljava/util/stream/DoubleStream;
            areturn
        end local 1 // long streamSize
        end local 0 // java.util.Random this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0    7     0        this  Ljava/util/Random;
            0    7     1  streamSize  J
    MethodParameters:
            Name  Flags
      streamSize  

  public java.util.stream.DoubleStream doubles();
    descriptor: ()Ljava/util/stream/DoubleStream;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=11, locals=1, args_size=1
        start local 0 // java.util.Random this
         0: .line 910
            new java.util.Random$RandomDoublesSpliterator
            dup
         1: .line 911
            aload 0 /* this */
            lconst_0
            ldc 9223372036854775807
            ldc 1.7976931348623157E308
            dconst_0
         2: .line 910
            invokespecial java.util.Random$RandomDoublesSpliterator.<init>:(Ljava/util/Random;JJDD)V
         3: .line 912
            iconst_0
         4: .line 909
            invokestatic java.util.stream.StreamSupport.doubleStream:(Ljava/util/Spliterator$OfDouble;Z)Ljava/util/stream/DoubleStream;
            areturn
        end local 0 // java.util.Random this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    5     0  this  Ljava/util/Random;

  public java.util.stream.DoubleStream doubles(long, double, double);
    descriptor: (JDD)Ljava/util/stream/DoubleStream;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=11, locals=7, args_size=4
        start local 0 // java.util.Random this
        start local 1 // long streamSize
        start local 3 // double randomNumberOrigin
        start local 5 // double randomNumberBound
         0: .line 944
            lload 1 /* streamSize */
            lconst_0
            lcmp
            ifge 2
         1: .line 945
            new java.lang.IllegalArgumentException
            dup
            ldc "size must be non-negative"
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
            athrow
         2: .line 946
      StackMap locals:
      StackMap stack:
            dload 3 /* randomNumberOrigin */
            dload 5 /* randomNumberBound */
            dcmpg
            iflt 4
         3: .line 947
            new java.lang.IllegalArgumentException
            dup
            ldc "bound must be greater than origin"
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
            athrow
         4: .line 949
      StackMap locals:
      StackMap stack:
            new java.util.Random$RandomDoublesSpliterator
            dup
         5: .line 950
            aload 0 /* this */
            lconst_0
            lload 1 /* streamSize */
            dload 3 /* randomNumberOrigin */
            dload 5 /* randomNumberBound */
         6: .line 949
            invokespecial java.util.Random$RandomDoublesSpliterator.<init>:(Ljava/util/Random;JJDD)V
         7: .line 951
            iconst_0
         8: .line 948
            invokestatic java.util.stream.StreamSupport.doubleStream:(Ljava/util/Spliterator$OfDouble;Z)Ljava/util/stream/DoubleStream;
            areturn
        end local 5 // double randomNumberBound
        end local 3 // double randomNumberOrigin
        end local 1 // long streamSize
        end local 0 // java.util.Random this
      LocalVariableTable:
        Start  End  Slot                Name  Signature
            0    9     0                this  Ljava/util/Random;
            0    9     1          streamSize  J
            0    9     3  randomNumberOrigin  D
            0    9     5   randomNumberBound  D
    MethodParameters:
                    Name  Flags
      streamSize          
      randomNumberOrigin  
      randomNumberBound   

  public java.util.stream.DoubleStream doubles(double, double);
    descriptor: (DD)Ljava/util/stream/DoubleStream;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=11, locals=5, args_size=3
        start local 0 // java.util.Random this
        start local 1 // double randomNumberOrigin
        start local 3 // double randomNumberBound
         0: .line 982
            dload 1 /* randomNumberOrigin */
            dload 3 /* randomNumberBound */
            dcmpg
            iflt 2
         1: .line 983
            new java.lang.IllegalArgumentException
            dup
            ldc "bound must be greater than origin"
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
            athrow
         2: .line 985
      StackMap locals:
      StackMap stack:
            new java.util.Random$RandomDoublesSpliterator
            dup
         3: .line 986
            aload 0 /* this */
            lconst_0
            ldc 9223372036854775807
            dload 1 /* randomNumberOrigin */
            dload 3 /* randomNumberBound */
         4: .line 985
            invokespecial java.util.Random$RandomDoublesSpliterator.<init>:(Ljava/util/Random;JJDD)V
         5: .line 987
            iconst_0
         6: .line 984
            invokestatic java.util.stream.StreamSupport.doubleStream:(Ljava/util/Spliterator$OfDouble;Z)Ljava/util/stream/DoubleStream;
            areturn
        end local 3 // double randomNumberBound
        end local 1 // double randomNumberOrigin
        end local 0 // java.util.Random this
      LocalVariableTable:
        Start  End  Slot                Name  Signature
            0    7     0                this  Ljava/util/Random;
            0    7     1  randomNumberOrigin  D
            0    7     3   randomNumberBound  D
    MethodParameters:
                    Name  Flags
      randomNumberOrigin  
      randomNumberBound   

  private void readObject(java.io.ObjectInputStream);
    descriptor: (Ljava/io/ObjectInputStream;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=5, locals=5, args_size=2
        start local 0 // java.util.Random this
        start local 1 // java.io.ObjectInputStream s
         0: .line 1184
            aload 1 /* s */
            invokevirtual java.io.ObjectInputStream.readFields:()Ljava/io/ObjectInputStream$GetField;
            astore 2 /* fields */
        start local 2 // java.io.ObjectInputStream$GetField fields
         1: .line 1188
            aload 2 /* fields */
            ldc "seed"
            ldc -1
            invokevirtual java.io.ObjectInputStream$GetField.get:(Ljava/lang/String;J)J
            lstore 3 /* seedVal */
        start local 3 // long seedVal
         2: .line 1189
            lload 3 /* seedVal */
            lconst_0
            lcmp
            ifge 6
         3: .line 1190
            new java.io.StreamCorruptedException
            dup
         4: .line 1191
            ldc "Random: invalid seed"
         5: .line 1190
            invokespecial java.io.StreamCorruptedException.<init>:(Ljava/lang/String;)V
            athrow
         6: .line 1192
      StackMap locals: java.io.ObjectInputStream$GetField long
      StackMap stack:
            aload 0 /* this */
            lload 3 /* seedVal */
            invokevirtual java.util.Random.resetSeed:(J)V
         7: .line 1193
            aload 0 /* this */
            aload 2 /* fields */
            ldc "nextNextGaussian"
            dconst_0
            invokevirtual java.io.ObjectInputStream$GetField.get:(Ljava/lang/String;D)D
            putfield java.util.Random.nextNextGaussian:D
         8: .line 1194
            aload 0 /* this */
            aload 2 /* fields */
            ldc "haveNextNextGaussian"
            iconst_0
            invokevirtual java.io.ObjectInputStream$GetField.get:(Ljava/lang/String;Z)Z
            putfield java.util.Random.haveNextNextGaussian:Z
         9: .line 1195
            return
        end local 3 // long seedVal
        end local 2 // java.io.ObjectInputStream$GetField fields
        end local 1 // java.io.ObjectInputStream s
        end local 0 // java.util.Random this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0   10     0     this  Ljava/util/Random;
            0   10     1        s  Ljava/io/ObjectInputStream;
            1   10     2   fields  Ljava/io/ObjectInputStream$GetField;
            2   10     3  seedVal  J
    Exceptions:
      throws java.io.IOException, java.lang.ClassNotFoundException
    MethodParameters:
      Name  Flags
      s     

  private synchronized void writeObject(java.io.ObjectOutputStream);
    descriptor: (Ljava/io/ObjectOutputStream;)V
    flags: (0x0022) ACC_PRIVATE, ACC_SYNCHRONIZED
    Code:
      stack=4, locals=3, args_size=2
        start local 0 // java.util.Random this
        start local 1 // java.io.ObjectOutputStream s
         0: .line 1204
            aload 1 /* s */
            invokevirtual java.io.ObjectOutputStream.putFields:()Ljava/io/ObjectOutputStream$PutField;
            astore 2 /* fields */
        start local 2 // java.io.ObjectOutputStream$PutField fields
         1: .line 1207
            aload 2 /* fields */
            ldc "seed"
            aload 0 /* this */
            getfield java.util.Random.seed:Ljava/util/concurrent/atomic/AtomicLong;
            invokevirtual java.util.concurrent.atomic.AtomicLong.get:()J
            invokevirtual java.io.ObjectOutputStream$PutField.put:(Ljava/lang/String;J)V
         2: .line 1208
            aload 2 /* fields */
            ldc "nextNextGaussian"
            aload 0 /* this */
            getfield java.util.Random.nextNextGaussian:D
            invokevirtual java.io.ObjectOutputStream$PutField.put:(Ljava/lang/String;D)V
         3: .line 1209
            aload 2 /* fields */
            ldc "haveNextNextGaussian"
            aload 0 /* this */
            getfield java.util.Random.haveNextNextGaussian:Z
            invokevirtual java.io.ObjectOutputStream$PutField.put:(Ljava/lang/String;Z)V
         4: .line 1212
            aload 1 /* s */
            invokevirtual java.io.ObjectOutputStream.writeFields:()V
         5: .line 1213
            return
        end local 2 // java.io.ObjectOutputStream$PutField fields
        end local 1 // java.io.ObjectOutputStream s
        end local 0 // java.util.Random this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    6     0    this  Ljava/util/Random;
            0    6     1       s  Ljava/io/ObjectOutputStream;
            1    6     2  fields  Ljava/io/ObjectOutputStream$PutField;
    Exceptions:
      throws java.io.IOException
    MethodParameters:
      Name  Flags
      s     

  private void resetSeed(long);
    descriptor: (J)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=8, locals=3, args_size=2
        start local 0 // java.util.Random this
        start local 1 // long seedVal
         0: .line 1225
            getstatic java.util.Random.unsafe:Ljdk/internal/misc/Unsafe;
            aload 0 /* this */
            getstatic java.util.Random.seedOffset:J
            new java.util.concurrent.atomic.AtomicLong
            dup
            lload 1 /* seedVal */
            invokespecial java.util.concurrent.atomic.AtomicLong.<init>:(J)V
            invokevirtual jdk.internal.misc.Unsafe.putObjectVolatile:(Ljava/lang/Object;JLjava/lang/Object;)V
         1: .line 1226
            return
        end local 1 // long seedVal
        end local 0 // java.util.Random this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    2     0     this  Ljava/util/Random;
            0    2     1  seedVal  J
    MethodParameters:
         Name  Flags
      seedVal  
}
SourceFile: "Random.java"
NestMembers:
  java.util.Random$RandomDoublesSpliterator  java.util.Random$RandomIntsSpliterator  java.util.Random$RandomLongsSpliterator
InnerClasses:
  public abstract GetField = java.io.ObjectInputStream$GetField of java.io.ObjectInputStream
  public abstract PutField = java.io.ObjectOutputStream$PutField of java.io.ObjectOutputStream
  final RandomDoublesSpliterator = java.util.Random$RandomDoublesSpliterator of java.util.Random
  final RandomIntsSpliterator = java.util.Random$RandomIntsSpliterator of java.util.Random
  final RandomLongsSpliterator = java.util.Random$RandomLongsSpliterator of java.util.Random
  public abstract OfDouble = java.util.Spliterator$OfDouble of java.util.Spliterator
  public abstract OfInt = java.util.Spliterator$OfInt of java.util.Spliterator
  public abstract OfLong = java.util.Spliterator$OfLong of java.util.Spliterator