public final class org.apache.commons.lang.math.JVMRandom extends java.util.Random
  minor version: 0
  major version: 59
  flags: flags: (0x0031) ACC_PUBLIC, ACC_FINAL, ACC_SUPER
  this_class: org.apache.commons.lang.math.JVMRandom
  super_class: java.util.Random
{
  private static final long serialVersionUID;
    descriptor: J
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: 1

  private static final java.util.Random SHARED_RANDOM;
    descriptor: Ljava/util/Random;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL

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

  static void <clinit>();
    descriptor: ()V
    flags: (0x0008) ACC_STATIC
    Code:
      stack=2, locals=0, args_size=0
         0: .line 49
            new java.util.Random
            dup
            invokespecial java.util.Random.<init>:()V
            putstatic org.apache.commons.lang.math.JVMRandom.SHARED_RANDOM:Ljava/util/Random;
            return
      LocalVariableTable:
        Start  End  Slot  Name  Signature

  public void <init>();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // org.apache.commons.lang.math.JVMRandom this
         0: .line 59
            aload 0 /* this */
            invokespecial java.util.Random.<init>:()V
         1: .line 54
            aload 0 /* this */
            iconst_0
            putfield org.apache.commons.lang.math.JVMRandom.constructed:Z
         2: .line 60
            aload 0 /* this */
            iconst_1
            putfield org.apache.commons.lang.math.JVMRandom.constructed:Z
         3: .line 61
            return
        end local 0 // org.apache.commons.lang.math.JVMRandom this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    4     0  this  Lorg/apache/commons/lang/math/JVMRandom;

  public synchronized void setSeed(long);
    descriptor: (J)V
    flags: (0x0021) ACC_PUBLIC, ACC_SYNCHRONIZED
    Code:
      stack=2, locals=3, args_size=2
        start local 0 // org.apache.commons.lang.math.JVMRandom this
        start local 1 // long seed
         0: .line 70
            aload 0 /* this */
            getfield org.apache.commons.lang.math.JVMRandom.constructed:Z
            ifeq 2
         1: .line 71
            new java.lang.UnsupportedOperationException
            dup
            invokespecial java.lang.UnsupportedOperationException.<init>:()V
            athrow
         2: .line 73
      StackMap locals:
      StackMap stack:
            return
        end local 1 // long seed
        end local 0 // org.apache.commons.lang.math.JVMRandom this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    3     0  this  Lorg/apache/commons/lang/math/JVMRandom;
            0    3     1  seed  J
    MethodParameters:
      Name  Flags
      seed  

  public synchronized double nextGaussian();
    descriptor: ()D
    flags: (0x0021) ACC_PUBLIC, ACC_SYNCHRONIZED
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // org.apache.commons.lang.math.JVMRandom this
         0: .line 82
            new java.lang.UnsupportedOperationException
            dup
            invokespecial java.lang.UnsupportedOperationException.<init>:()V
            athrow
        end local 0 // org.apache.commons.lang.math.JVMRandom this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/apache/commons/lang/math/JVMRandom;

  public void nextBytes(byte[]);
    descriptor: ([B)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // org.apache.commons.lang.math.JVMRandom this
        start local 1 // byte[] byteArray
         0: .line 92
            new java.lang.UnsupportedOperationException
            dup
            invokespecial java.lang.UnsupportedOperationException.<init>:()V
            athrow
        end local 1 // byte[] byteArray
        end local 0 // org.apache.commons.lang.math.JVMRandom this
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0    1     0       this  Lorg/apache/commons/lang/math/JVMRandom;
            0    1     1  byteArray  [B
    MethodParameters:
           Name  Flags
      byteArray  

  public int nextInt();
    descriptor: ()I
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // org.apache.commons.lang.math.JVMRandom this
         0: .line 105
            aload 0 /* this */
            ldc 2147483647
            invokevirtual org.apache.commons.lang.math.JVMRandom.nextInt:(I)I
            ireturn
        end local 0 // org.apache.commons.lang.math.JVMRandom this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/apache/commons/lang/math/JVMRandom;

  public int nextInt(int);
    descriptor: (I)I
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // org.apache.commons.lang.math.JVMRandom this
        start local 1 // int n
         0: .line 118
            getstatic org.apache.commons.lang.math.JVMRandom.SHARED_RANDOM:Ljava/util/Random;
            iload 1 /* n */
            invokevirtual java.util.Random.nextInt:(I)I
            ireturn
        end local 1 // int n
        end local 0 // org.apache.commons.lang.math.JVMRandom this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/apache/commons/lang/math/JVMRandom;
            0    1     1     n  I
    MethodParameters:
      Name  Flags
      n     

  public long nextLong();
    descriptor: ()J
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // org.apache.commons.lang.math.JVMRandom this
         0: .line 131
            ldc 9223372036854775807
            invokestatic org.apache.commons.lang.math.JVMRandom.nextLong:(J)J
            lreturn
        end local 0 // org.apache.commons.lang.math.JVMRandom this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/apache/commons/lang/math/JVMRandom;

  public static long nextLong(long);
    descriptor: (J)J
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=7, locals=6, args_size=1
        start local 0 // long n
         0: .line 145
            lload 0 /* n */
            lconst_0
            lcmp
            ifgt 4
         1: .line 146
            new java.lang.IllegalArgumentException
            dup
         2: .line 147
            ldc "Upper bound for nextInt must be positive"
         3: .line 146
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
            athrow
         4: .line 151
      StackMap locals:
      StackMap stack:
            lload 0 /* n */
            lload 0 /* n */
            lneg
            land
            lload 0 /* n */
            lcmp
            ifne 8
         5: .line 153
            invokestatic org.apache.commons.lang.math.JVMRandom.next63bits:()J
            bipush 63
         6: .line 154
            lload 0 /* n */
            lconst_1
            lsub
            invokestatic org.apache.commons.lang.math.JVMRandom.bitsRequired:(J)I
            isub
         7: .line 153
            lshr
            lreturn
         8: .line 160
      StackMap locals:
      StackMap stack:
            invokestatic org.apache.commons.lang.math.JVMRandom.next63bits:()J
            lstore 4 /* bits */
        start local 4 // long bits
         9: .line 161
            lload 4 /* bits */
            lload 0 /* n */
            lrem
            lstore 2 /* val */
        start local 2 // long val
        10: .line 162
            lload 4 /* bits */
            lload 2 /* val */
            lsub
            lload 0 /* n */
            lconst_1
            lsub
            ladd
            lconst_0
        11: .line 159
            lcmp
            iflt 8
        12: .line 163
            lload 2 /* val */
            lreturn
        end local 4 // long bits
        end local 2 // long val
        end local 0 // long n
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0   13     0     n  J
           10   13     2   val  J
            9   13     4  bits  J
    MethodParameters:
      Name  Flags
      n     

  public boolean nextBoolean();
    descriptor: ()Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.apache.commons.lang.math.JVMRandom this
         0: .line 173
            getstatic org.apache.commons.lang.math.JVMRandom.SHARED_RANDOM:Ljava/util/Random;
            invokevirtual java.util.Random.nextBoolean:()Z
            ireturn
        end local 0 // org.apache.commons.lang.math.JVMRandom this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/apache/commons/lang/math/JVMRandom;

  public float nextFloat();
    descriptor: ()F
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.apache.commons.lang.math.JVMRandom this
         0: .line 184
            getstatic org.apache.commons.lang.math.JVMRandom.SHARED_RANDOM:Ljava/util/Random;
            invokevirtual java.util.Random.nextFloat:()F
            freturn
        end local 0 // org.apache.commons.lang.math.JVMRandom this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/apache/commons/lang/math/JVMRandom;

  public double nextDouble();
    descriptor: ()D
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // org.apache.commons.lang.math.JVMRandom this
         0: .line 193
            getstatic org.apache.commons.lang.math.JVMRandom.SHARED_RANDOM:Ljava/util/Random;
            invokevirtual java.util.Random.nextDouble:()D
            dreturn
        end local 0 // org.apache.commons.lang.math.JVMRandom this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/apache/commons/lang/math/JVMRandom;

  private static long next63bits();
    descriptor: ()J
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=4, locals=0, args_size=0
         0: .line 202
            getstatic org.apache.commons.lang.math.JVMRandom.SHARED_RANDOM:Ljava/util/Random;
            invokevirtual java.util.Random.nextLong:()J
            ldc 9223372036854775807
            land
            lreturn
      LocalVariableTable:
        Start  End  Slot  Name  Signature

  private static int bitsRequired(long);
    descriptor: (J)I
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=4, locals=5, args_size=1
        start local 0 // long num
         0: .line 213
            lload 0 /* num */
            lstore 2 /* y */
        start local 2 // long y
         1: .line 214
            iconst_0
            istore 4 /* n */
        start local 4 // int n
         2: .line 217
      StackMap locals: long int
      StackMap stack:
            lload 0 /* num */
            lconst_0
            lcmp
            ifge 4
         3: .line 218
            bipush 64
            iload 4 /* n */
            isub
            ireturn
         4: .line 220
      StackMap locals:
      StackMap stack:
            lload 2 /* y */
            lconst_0
            lcmp
            ifne 6
         5: .line 221
            iload 4 /* n */
            ireturn
         6: .line 223
      StackMap locals:
      StackMap stack:
            iinc 4 /* n */ 1
         7: .line 224
            lload 0 /* num */
            iconst_1
            lshl
            lstore 0 /* num */
         8: .line 225
            lload 2 /* y */
            iconst_1
            lshr
            lstore 2 /* y */
         9: .line 215
            goto 2
        end local 4 // int n
        end local 2 // long y
        end local 0 // long num
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0   10     0   num  J
            1   10     2     y  J
            2   10     4     n  I
    MethodParameters:
      Name  Flags
      num   
}
SourceFile: "JVMRandom.java"