public class java.math.BigInteger extends java.lang.Number implements java.lang.Comparable<java.math.BigInteger>
  minor version: 0
  major version: 59
  flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
  this_class: java.math.BigInteger
  super_class: java.lang.Number
{
  final int signum;
    descriptor: I
    flags: (0x0010) ACC_FINAL

  final int[] mag;
    descriptor: [I
    flags: (0x0010) ACC_FINAL

  private int bitCountPlusOne;
    descriptor: I
    flags: (0x0002) ACC_PRIVATE

  private int bitLengthPlusOne;
    descriptor: I
    flags: (0x0002) ACC_PRIVATE

  private int lowestSetBitPlusTwo;
    descriptor: I
    flags: (0x0002) ACC_PRIVATE

  private int firstNonzeroIntNumPlusTwo;
    descriptor: I
    flags: (0x0002) ACC_PRIVATE

  static final long LONG_MASK;
    descriptor: J
    flags: (0x0018) ACC_STATIC, ACC_FINAL
    ConstantValue: 4294967295

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

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

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

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

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

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

  static final int BURNIKEL_ZIEGLER_THRESHOLD;
    descriptor: I
    flags: (0x0018) ACC_STATIC, ACC_FINAL
    ConstantValue: 80

  static final int BURNIKEL_ZIEGLER_OFFSET;
    descriptor: I
    flags: (0x0018) ACC_STATIC, ACC_FINAL
    ConstantValue: 40

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

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

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

  private static long[] bitsPerDigit;
    descriptor: [J
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC

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

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

  private static final java.math.BigInteger SMALL_PRIME_PRODUCT;
    descriptor: Ljava/math/BigInteger;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL

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

  private static java.math.BigInteger[] posConst;
    descriptor: [Ljava/math/BigInteger;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC

  private static java.math.BigInteger[] negConst;
    descriptor: [Ljava/math/BigInteger;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC

  private static volatile java.math.BigInteger[][] powerCache;
    descriptor: [[Ljava/math/BigInteger;
    flags: (0x004a) ACC_PRIVATE, ACC_STATIC, ACC_VOLATILE

  private static final double[] logCache;
    descriptor: [D
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL

  private static final double LOG_TWO;
    descriptor: D
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL

  public static final java.math.BigInteger ZERO;
    descriptor: Ljava/math/BigInteger;
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL

  public static final java.math.BigInteger ONE;
    descriptor: Ljava/math/BigInteger;
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL

  public static final java.math.BigInteger TWO;
    descriptor: Ljava/math/BigInteger;
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL

  private static final java.math.BigInteger NEGATIVE_ONE;
    descriptor: Ljava/math/BigInteger;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL

  public static final java.math.BigInteger TEN;
    descriptor: Ljava/math/BigInteger;
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL

  static int[] bnExpModThreshTable;
    descriptor: [I
    flags: (0x0008) ACC_STATIC

  private static java.lang.String[] zeros;
    descriptor: [Ljava/lang/String;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC

  private static int[] digitsPerLong;
    descriptor: [I
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC

  private static java.math.BigInteger[] longRadix;
    descriptor: [Ljava/math/BigInteger;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC

  private static int[] digitsPerInt;
    descriptor: [I
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC

  private static int[] intRadix;
    descriptor: [I
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC

  private static final long serialVersionUID;
    descriptor: J
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: -8287574255936472291

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

  static final boolean $assertionsDisabled;
    descriptor: Z
    flags: (0x1018) ACC_STATIC, ACC_FINAL, ACC_SYNTHETIC

  static void <clinit>();
    descriptor: ()V
    flags: (0x0008) ACC_STATIC
    Code:
      stack=7, locals=2, args_size=0
         0: .line 130
            ldc Ljava/math/BigInteger;
            invokevirtual java.lang.Class.desiredAssertionStatus:()Z
            ifne 1
            iconst_1
            goto 2
      StackMap locals:
      StackMap stack:
         1: iconst_0
      StackMap locals:
      StackMap stack: int
         2: putstatic java.math.BigInteger.$assertionsDisabled:Z
         3: .line 626
            bipush 37
            newarray 11
            dup
            iconst_2
         4: .line 627
            ldc 1024
            lastore
            dup
            iconst_3
            ldc 1624
            lastore
            dup
            iconst_4
            ldc 2048
            lastore
            dup
            iconst_5
            ldc 2378
            lastore
            dup
            bipush 6
            ldc 2648
            lastore
            dup
            bipush 7
            ldc 2875
            lastore
            dup
            bipush 8
            ldc 3072
            lastore
            dup
            bipush 9
            ldc 3247
            lastore
            dup
            bipush 10
            ldc 3402
            lastore
            dup
            bipush 11
            ldc 3543
            lastore
            dup
            bipush 12
            ldc 3672
            lastore
            dup
            bipush 13
         5: .line 628
            ldc 3790
            lastore
            dup
            bipush 14
            ldc 3899
            lastore
            dup
            bipush 15
            ldc 4001
            lastore
            dup
            bipush 16
            ldc 4096
            lastore
            dup
            bipush 17
            ldc 4186
            lastore
            dup
            bipush 18
            ldc 4271
            lastore
            dup
            bipush 19
            ldc 4350
            lastore
            dup
            bipush 20
            ldc 4426
            lastore
            dup
            bipush 21
            ldc 4498
            lastore
            dup
            bipush 22
            ldc 4567
            lastore
            dup
            bipush 23
            ldc 4633
            lastore
            dup
            bipush 24
         6: .line 629
            ldc 4696
            lastore
            dup
            bipush 25
            ldc 4756
            lastore
            dup
            bipush 26
            ldc 4814
            lastore
            dup
            bipush 27
            ldc 4870
            lastore
            dup
            bipush 28
            ldc 4923
            lastore
            dup
            bipush 29
            ldc 4975
            lastore
            dup
            bipush 30
            ldc 5025
            lastore
            dup
            bipush 31
            ldc 5074
            lastore
            dup
            bipush 32
            ldc 5120
            lastore
            dup
            bipush 33
            ldc 5166
            lastore
            dup
            bipush 34
            ldc 5210
            lastore
            dup
            bipush 35
         7: .line 630
            ldc 5253
            lastore
            dup
            bipush 36
            ldc 5295
            lastore
         8: .line 626
            putstatic java.math.BigInteger.bitsPerDigit:[J
         9: .line 811
            ldc 152125131763605
            invokestatic java.math.BigInteger.valueOf:(J)Ljava/math/BigInteger;
        10: .line 810
            putstatic java.math.BigInteger.SMALL_PRIME_PRODUCT:Ljava/math/BigInteger;
        11: .line 1216
            bipush 17
            anewarray java.math.BigInteger
            putstatic java.math.BigInteger.posConst:[Ljava/math/BigInteger;
        12: .line 1217
            bipush 17
            anewarray java.math.BigInteger
            putstatic java.math.BigInteger.negConst:[Ljava/math/BigInteger;
        13: .line 1230
            ldc 2.0
            invokestatic java.lang.Math.log:(D)D
            putstatic java.math.BigInteger.LOG_TWO:D
        14: .line 1241
            iconst_1
            istore 0 /* i */
        start local 0 // int i
        15: goto 21
        16: .line 1242
      StackMap locals: int
      StackMap stack:
            iconst_1
            newarray 10
            astore 1 /* magnitude */
        start local 1 // int[] magnitude
        17: .line 1243
            aload 1 /* magnitude */
            iconst_0
            iload 0 /* i */
            iastore
        18: .line 1244
            getstatic java.math.BigInteger.posConst:[Ljava/math/BigInteger;
            iload 0 /* i */
            new java.math.BigInteger
            dup
            aload 1 /* magnitude */
            iconst_1
            invokespecial java.math.BigInteger.<init>:([II)V
            aastore
        19: .line 1245
            getstatic java.math.BigInteger.negConst:[Ljava/math/BigInteger;
            iload 0 /* i */
            new java.math.BigInteger
            dup
            aload 1 /* magnitude */
            iconst_m1
            invokespecial java.math.BigInteger.<init>:([II)V
            aastore
        end local 1 // int[] magnitude
        20: .line 1241
            iinc 0 /* i */ 1
      StackMap locals:
      StackMap stack:
        21: iload 0 /* i */
            bipush 16
            if_icmple 16
        end local 0 // int i
        22: .line 1253
            bipush 37
            anewarray java.math.BigInteger[]
            putstatic java.math.BigInteger.powerCache:[[Ljava/math/BigInteger;
        23: .line 1254
            bipush 37
            newarray 7
            putstatic java.math.BigInteger.logCache:[D
        24: .line 1256
            iconst_2
            istore 0 /* i */
        start local 0 // int i
        25: goto 29
        26: .line 1257
      StackMap locals:
      StackMap stack:
            getstatic java.math.BigInteger.powerCache:[[Ljava/math/BigInteger;
            iload 0 /* i */
            iconst_1
            anewarray java.math.BigInteger
            dup
            iconst_0
            iload 0 /* i */
            i2l
            invokestatic java.math.BigInteger.valueOf:(J)Ljava/math/BigInteger;
            aastore
            aastore
        27: .line 1258
            getstatic java.math.BigInteger.logCache:[D
            iload 0 /* i */
            iload 0 /* i */
            i2d
            invokestatic java.lang.Math.log:(D)D
            dastore
        28: .line 1256
            iinc 0 /* i */ 1
      StackMap locals:
      StackMap stack:
        29: iload 0 /* i */
            bipush 36
            if_icmple 26
        end local 0 // int i
        30: .line 1267
            new java.math.BigInteger
            dup
            iconst_0
            newarray 10
            iconst_0
            invokespecial java.math.BigInteger.<init>:([II)V
            putstatic java.math.BigInteger.ZERO:Ljava/math/BigInteger;
        31: .line 1274
            lconst_1
            invokestatic java.math.BigInteger.valueOf:(J)Ljava/math/BigInteger;
            putstatic java.math.BigInteger.ONE:Ljava/math/BigInteger;
        32: .line 1281
            ldc 2
            invokestatic java.math.BigInteger.valueOf:(J)Ljava/math/BigInteger;
            putstatic java.math.BigInteger.TWO:Ljava/math/BigInteger;
        33: .line 1286
            ldc -1
            invokestatic java.math.BigInteger.valueOf:(J)Ljava/math/BigInteger;
            putstatic java.math.BigInteger.NEGATIVE_ONE:Ljava/math/BigInteger;
        34: .line 1293
            ldc 10
            invokestatic java.math.BigInteger.valueOf:(J)Ljava/math/BigInteger;
            putstatic java.math.BigInteger.TEN:Ljava/math/BigInteger;
        35: .line 2857
            bipush 7
            newarray 10
            dup
            iconst_0
            bipush 7
            iastore
            dup
            iconst_1
            bipush 25
            iastore
            dup
            iconst_2
            bipush 81
            iastore
            dup
            iconst_3
            sipush 241
            iastore
            dup
            iconst_4
            sipush 673
            iastore
            dup
            iconst_5
            sipush 1793
            iastore
            dup
            bipush 6
        36: .line 2858
            ldc 2147483647
            iastore
        37: .line 2857
            putstatic java.math.BigInteger.bnExpModThreshTable:[I
        38: .line 4079
            bipush 64
            anewarray java.lang.String
            putstatic java.math.BigInteger.zeros:[Ljava/lang/String;
        39: .line 4081
            getstatic java.math.BigInteger.zeros:[Ljava/lang/String;
            bipush 63
        40: .line 4082
            ldc "000000000000000000000000000000000000000000000000000000000000000"
        41: .line 4081
            aastore
        42: .line 4083
            iconst_0
            istore 0 /* i */
        start local 0 // int i
        43: goto 46
        44: .line 4084
      StackMap locals:
      StackMap stack:
            getstatic java.math.BigInteger.zeros:[Ljava/lang/String;
            iload 0 /* i */
            getstatic java.math.BigInteger.zeros:[Ljava/lang/String;
            bipush 63
            aaload
            iconst_0
            iload 0 /* i */
            invokevirtual java.lang.String.substring:(II)Ljava/lang/String;
            aastore
        45: .line 4083
            iinc 0 /* i */ 1
      StackMap locals:
      StackMap stack:
        46: iload 0 /* i */
            bipush 63
            if_icmplt 44
        end local 0 // int i
        47: .line 4499
            bipush 37
            newarray 10
            dup
            iconst_2
        48: .line 4500
            bipush 62
            iastore
            dup
            iconst_3
            bipush 39
            iastore
            dup
            iconst_4
            bipush 31
            iastore
            dup
            iconst_5
            bipush 27
            iastore
            dup
            bipush 6
            bipush 24
            iastore
            dup
            bipush 7
            bipush 22
            iastore
            dup
            bipush 8
            bipush 20
            iastore
            dup
            bipush 9
            bipush 19
            iastore
            dup
            bipush 10
            bipush 18
            iastore
            dup
            bipush 11
            bipush 18
            iastore
            dup
            bipush 12
            bipush 17
            iastore
            dup
            bipush 13
            bipush 17
            iastore
            dup
            bipush 14
            bipush 16
            iastore
            dup
            bipush 15
            bipush 16
            iastore
            dup
            bipush 16
            bipush 15
            iastore
            dup
            bipush 17
            bipush 15
            iastore
            dup
            bipush 18
            bipush 15
            iastore
            dup
            bipush 19
            bipush 14
            iastore
            dup
            bipush 20
        49: .line 4501
            bipush 14
            iastore
            dup
            bipush 21
            bipush 14
            iastore
            dup
            bipush 22
            bipush 14
            iastore
            dup
            bipush 23
            bipush 13
            iastore
            dup
            bipush 24
            bipush 13
            iastore
            dup
            bipush 25
            bipush 13
            iastore
            dup
            bipush 26
            bipush 13
            iastore
            dup
            bipush 27
            bipush 13
            iastore
            dup
            bipush 28
            bipush 13
            iastore
            dup
            bipush 29
            bipush 12
            iastore
            dup
            bipush 30
            bipush 12
            iastore
            dup
            bipush 31
            bipush 12
            iastore
            dup
            bipush 32
            bipush 12
            iastore
            dup
            bipush 33
            bipush 12
            iastore
            dup
            bipush 34
            bipush 12
            iastore
            dup
            bipush 35
            bipush 12
            iastore
            dup
            bipush 36
            bipush 12
            iastore
        50: .line 4499
            putstatic java.math.BigInteger.digitsPerLong:[I
        51: .line 4503
            bipush 37
            anewarray java.math.BigInteger
            dup
            iconst_2
        52: .line 4504
            ldc 4611686018427387904
            invokestatic java.math.BigInteger.valueOf:(J)Ljava/math/BigInteger;
            aastore
            dup
            iconst_3
            ldc 4052555153018976267
            invokestatic java.math.BigInteger.valueOf:(J)Ljava/math/BigInteger;
            aastore
            dup
            iconst_4
        53: .line 4505
            ldc 4611686018427387904
            invokestatic java.math.BigInteger.valueOf:(J)Ljava/math/BigInteger;
            aastore
            dup
            iconst_5
            ldc 7450580596923828125
            invokestatic java.math.BigInteger.valueOf:(J)Ljava/math/BigInteger;
            aastore
            dup
            bipush 6
        54: .line 4506
            ldc 4738381338321616896
            invokestatic java.math.BigInteger.valueOf:(J)Ljava/math/BigInteger;
            aastore
            dup
            bipush 7
            ldc 3909821048582988049
            invokestatic java.math.BigInteger.valueOf:(J)Ljava/math/BigInteger;
            aastore
            dup
            bipush 8
        55: .line 4507
            ldc 1152921504606846976
            invokestatic java.math.BigInteger.valueOf:(J)Ljava/math/BigInteger;
            aastore
            dup
            bipush 9
            ldc 1350851717672992089
            invokestatic java.math.BigInteger.valueOf:(J)Ljava/math/BigInteger;
            aastore
            dup
            bipush 10
        56: .line 4508
            ldc 1000000000000000000
            invokestatic java.math.BigInteger.valueOf:(J)Ljava/math/BigInteger;
            aastore
            dup
            bipush 11
            ldc 5559917313492231481
            invokestatic java.math.BigInteger.valueOf:(J)Ljava/math/BigInteger;
            aastore
            dup
            bipush 12
        57: .line 4509
            ldc 2218611106740436992
            invokestatic java.math.BigInteger.valueOf:(J)Ljava/math/BigInteger;
            aastore
            dup
            bipush 13
            ldc 8650415919381337933
            invokestatic java.math.BigInteger.valueOf:(J)Ljava/math/BigInteger;
            aastore
            dup
            bipush 14
        58: .line 4510
            ldc 2177953337809371136
            invokestatic java.math.BigInteger.valueOf:(J)Ljava/math/BigInteger;
            aastore
            dup
            bipush 15
            ldc 6568408355712890625
            invokestatic java.math.BigInteger.valueOf:(J)Ljava/math/BigInteger;
            aastore
            dup
            bipush 16
        59: .line 4511
            ldc 1152921504606846976
            invokestatic java.math.BigInteger.valueOf:(J)Ljava/math/BigInteger;
            aastore
            dup
            bipush 17
            ldc 2862423051509815793
            invokestatic java.math.BigInteger.valueOf:(J)Ljava/math/BigInteger;
            aastore
            dup
            bipush 18
        60: .line 4512
            ldc 6746640616477458432
            invokestatic java.math.BigInteger.valueOf:(J)Ljava/math/BigInteger;
            aastore
            dup
            bipush 19
            ldc 799006685782884121
            invokestatic java.math.BigInteger.valueOf:(J)Ljava/math/BigInteger;
            aastore
            dup
            bipush 20
        61: .line 4513
            ldc 1638400000000000000
            invokestatic java.math.BigInteger.valueOf:(J)Ljava/math/BigInteger;
            aastore
            dup
            bipush 21
            ldc 3243919932521508681
            invokestatic java.math.BigInteger.valueOf:(J)Ljava/math/BigInteger;
            aastore
            dup
            bipush 22
        62: .line 4514
            ldc 6221821273427820544
            invokestatic java.math.BigInteger.valueOf:(J)Ljava/math/BigInteger;
            aastore
            dup
            bipush 23
            ldc 504036361936467383
            invokestatic java.math.BigInteger.valueOf:(J)Ljava/math/BigInteger;
            aastore
            dup
            bipush 24
        63: .line 4515
            ldc 876488338465357824
            invokestatic java.math.BigInteger.valueOf:(J)Ljava/math/BigInteger;
            aastore
            dup
            bipush 25
            ldc 1490116119384765625
            invokestatic java.math.BigInteger.valueOf:(J)Ljava/math/BigInteger;
            aastore
            dup
            bipush 26
        64: .line 4516
            ldc 2481152873203736576
            invokestatic java.math.BigInteger.valueOf:(J)Ljava/math/BigInteger;
            aastore
            dup
            bipush 27
            ldc 4052555153018976267
            invokestatic java.math.BigInteger.valueOf:(J)Ljava/math/BigInteger;
            aastore
            dup
            bipush 28
        65: .line 4517
            ldc 6502111422497947648
            invokestatic java.math.BigInteger.valueOf:(J)Ljava/math/BigInteger;
            aastore
            dup
            bipush 29
            ldc 353814783205469041
            invokestatic java.math.BigInteger.valueOf:(J)Ljava/math/BigInteger;
            aastore
            dup
            bipush 30
        66: .line 4518
            ldc 531441000000000000
            invokestatic java.math.BigInteger.valueOf:(J)Ljava/math/BigInteger;
            aastore
            dup
            bipush 31
            ldc 787662783788549761
            invokestatic java.math.BigInteger.valueOf:(J)Ljava/math/BigInteger;
            aastore
            dup
            bipush 32
        67: .line 4519
            ldc 1152921504606846976
            invokestatic java.math.BigInteger.valueOf:(J)Ljava/math/BigInteger;
            aastore
            dup
            bipush 33
            ldc 1667889514952984961
            invokestatic java.math.BigInteger.valueOf:(J)Ljava/math/BigInteger;
            aastore
            dup
            bipush 34
        68: .line 4520
            ldc 2386420683693101056
            invokestatic java.math.BigInteger.valueOf:(J)Ljava/math/BigInteger;
            aastore
            dup
            bipush 35
            ldc 3379220508056640625
            invokestatic java.math.BigInteger.valueOf:(J)Ljava/math/BigInteger;
            aastore
            dup
            bipush 36
        69: .line 4521
            ldc 4738381338321616896
            invokestatic java.math.BigInteger.valueOf:(J)Ljava/math/BigInteger;
            aastore
        70: .line 4503
            putstatic java.math.BigInteger.longRadix:[Ljava/math/BigInteger;
        71: .line 4526
            bipush 37
            newarray 10
            dup
            iconst_2
            bipush 30
            iastore
            dup
            iconst_3
            bipush 19
            iastore
            dup
            iconst_4
            bipush 15
            iastore
            dup
            iconst_5
            bipush 13
            iastore
            dup
            bipush 6
            bipush 11
            iastore
            dup
            bipush 7
        72: .line 4527
            bipush 11
            iastore
            dup
            bipush 8
            bipush 10
            iastore
            dup
            bipush 9
            bipush 9
            iastore
            dup
            bipush 10
            bipush 9
            iastore
            dup
            bipush 11
            bipush 8
            iastore
            dup
            bipush 12
            bipush 8
            iastore
            dup
            bipush 13
            bipush 8
            iastore
            dup
            bipush 14
            bipush 8
            iastore
            dup
            bipush 15
            bipush 7
            iastore
            dup
            bipush 16
            bipush 7
            iastore
            dup
            bipush 17
            bipush 7
            iastore
            dup
            bipush 18
            bipush 7
            iastore
            dup
            bipush 19
            bipush 7
            iastore
            dup
            bipush 20
            bipush 7
            iastore
            dup
            bipush 21
            bipush 7
            iastore
            dup
            bipush 22
            bipush 6
            iastore
            dup
            bipush 23
            bipush 6
            iastore
            dup
            bipush 24
            bipush 6
            iastore
            dup
            bipush 25
            bipush 6
            iastore
            dup
            bipush 26
        73: .line 4528
            bipush 6
            iastore
            dup
            bipush 27
            bipush 6
            iastore
            dup
            bipush 28
            bipush 6
            iastore
            dup
            bipush 29
            bipush 6
            iastore
            dup
            bipush 30
            bipush 6
            iastore
            dup
            bipush 31
            bipush 6
            iastore
            dup
            bipush 32
            bipush 6
            iastore
            dup
            bipush 33
            bipush 6
            iastore
            dup
            bipush 34
            bipush 6
            iastore
            dup
            bipush 35
            bipush 6
            iastore
            dup
            bipush 36
            iconst_5
            iastore
        74: .line 4526
            putstatic java.math.BigInteger.digitsPerInt:[I
        75: .line 4530
            bipush 37
            newarray 10
            dup
            iconst_2
        76: .line 4531
            ldc 1073741824
            iastore
            dup
            iconst_3
            ldc 1162261467
            iastore
            dup
            iconst_4
            ldc 1073741824
            iastore
            dup
            iconst_5
            ldc 1220703125
            iastore
            dup
            bipush 6
            ldc 362797056
            iastore
            dup
            bipush 7
        77: .line 4532
            ldc 1977326743
            iastore
            dup
            bipush 8
            ldc 1073741824
            iastore
            dup
            bipush 9
            ldc 387420489
            iastore
            dup
            bipush 10
            ldc 1000000000
            iastore
            dup
            bipush 11
            ldc 214358881
            iastore
            dup
            bipush 12
        78: .line 4533
            ldc 429981696
            iastore
            dup
            bipush 13
            ldc 815730721
            iastore
            dup
            bipush 14
            ldc 1475789056
            iastore
            dup
            bipush 15
            ldc 170859375
            iastore
            dup
            bipush 16
            ldc 268435456
            iastore
            dup
            bipush 17
        79: .line 4534
            ldc 410338673
            iastore
            dup
            bipush 18
            ldc 612220032
            iastore
            dup
            bipush 19
            ldc 893871739
            iastore
            dup
            bipush 20
            ldc 1280000000
            iastore
            dup
            bipush 21
            ldc 1801088541
            iastore
            dup
            bipush 22
        80: .line 4535
            ldc 113379904
            iastore
            dup
            bipush 23
            ldc 148035889
            iastore
            dup
            bipush 24
            ldc 191102976
            iastore
            dup
            bipush 25
            ldc 244140625
            iastore
            dup
            bipush 26
            ldc 308915776
            iastore
            dup
            bipush 27
        81: .line 4536
            ldc 387420489
            iastore
            dup
            bipush 28
            ldc 481890304
            iastore
            dup
            bipush 29
            ldc 594823321
            iastore
            dup
            bipush 30
            ldc 729000000
            iastore
            dup
            bipush 31
            ldc 887503681
            iastore
            dup
            bipush 32
        82: .line 4537
            ldc 1073741824
            iastore
            dup
            bipush 33
            ldc 1291467969
            iastore
            dup
            bipush 34
            ldc 1544804416
            iastore
            dup
            bipush 35
            ldc 1838265625
            iastore
            dup
            bipush 36
            ldc 60466176
            iastore
        83: .line 4530
            putstatic java.math.BigInteger.intRadix:[I
        84: .line 4622
            bipush 6
            anewarray java.io.ObjectStreamField
            dup
            iconst_0
        85: .line 4623
            new java.io.ObjectStreamField
            dup
            ldc "signum"
            getstatic java.lang.Integer.TYPE:Ljava/lang/Class;
            invokespecial java.io.ObjectStreamField.<init>:(Ljava/lang/String;Ljava/lang/Class;)V
            aastore
            dup
            iconst_1
        86: .line 4624
            new java.io.ObjectStreamField
            dup
            ldc "magnitude"
            ldc [B
            invokespecial java.io.ObjectStreamField.<init>:(Ljava/lang/String;Ljava/lang/Class;)V
            aastore
            dup
            iconst_2
        87: .line 4625
            new java.io.ObjectStreamField
            dup
            ldc "bitCount"
            getstatic java.lang.Integer.TYPE:Ljava/lang/Class;
            invokespecial java.io.ObjectStreamField.<init>:(Ljava/lang/String;Ljava/lang/Class;)V
            aastore
            dup
            iconst_3
        88: .line 4626
            new java.io.ObjectStreamField
            dup
            ldc "bitLength"
            getstatic java.lang.Integer.TYPE:Ljava/lang/Class;
            invokespecial java.io.ObjectStreamField.<init>:(Ljava/lang/String;Ljava/lang/Class;)V
            aastore
            dup
            iconst_4
        89: .line 4627
            new java.io.ObjectStreamField
            dup
            ldc "firstNonzeroByteNum"
            getstatic java.lang.Integer.TYPE:Ljava/lang/Class;
            invokespecial java.io.ObjectStreamField.<init>:(Ljava/lang/String;Ljava/lang/Class;)V
            aastore
            dup
            iconst_5
        90: .line 4628
            new java.io.ObjectStreamField
            dup
            ldc "lowestSetBit"
            getstatic java.lang.Integer.TYPE:Ljava/lang/Class;
            invokespecial java.io.ObjectStreamField.<init>:(Ljava/lang/String;Ljava/lang/Class;)V
            aastore
        91: .line 4622
            putstatic java.math.BigInteger.serialPersistentFields:[Ljava/io/ObjectStreamField;
        92: .line 4629
            return
      LocalVariableTable:
        Start  End  Slot       Name  Signature
           15   22     0          i  I
           17   20     1  magnitude  [I
           25   30     0          i  I
           43   47     0          i  I

  public void <init>(byte[], int, int);
    descriptor: ([BII)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=4, args_size=4
        start local 0 // java.math.BigInteger this
        start local 1 // byte[] val
        start local 2 // int off
        start local 3 // int len
         0: .line 306
            aload 0 /* this */
            invokespecial java.lang.Number.<init>:()V
         1: .line 307
            aload 1 /* val */
            arraylength
            ifne 3
         2: .line 308
            new java.lang.NumberFormatException
            dup
            ldc "Zero length BigInteger"
            invokespecial java.lang.NumberFormatException.<init>:(Ljava/lang/String;)V
            athrow
         3: .line 310
      StackMap locals: java.math.BigInteger byte[] int int
      StackMap stack:
            iload 2 /* off */
            iload 3 /* len */
            aload 1 /* val */
            arraylength
            invokestatic java.util.Objects.checkFromIndexSize:(III)I
            pop
         4: .line 312
            aload 1 /* val */
            iload 2 /* off */
            baload
            ifge 8
         5: .line 313
            aload 0 /* this */
            aload 1 /* val */
            iload 2 /* off */
            iload 3 /* len */
            invokestatic java.math.BigInteger.makePositive:([BII)[I
            putfield java.math.BigInteger.mag:[I
         6: .line 314
            aload 0 /* this */
            iconst_m1
            putfield java.math.BigInteger.signum:I
         7: .line 315
            goto 12
         8: .line 316
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 1 /* val */
            iload 2 /* off */
            iload 3 /* len */
            invokestatic java.math.BigInteger.stripLeadingZeroBytes:([BII)[I
            putfield java.math.BigInteger.mag:[I
         9: .line 317
            aload 0 /* this */
            aload 0 /* this */
            getfield java.math.BigInteger.mag:[I
            arraylength
            ifne 10
            iconst_0
            goto 11
      StackMap locals:
      StackMap stack: java.math.BigInteger
        10: iconst_1
      StackMap locals: java.math.BigInteger byte[] int int
      StackMap stack: java.math.BigInteger int
        11: putfield java.math.BigInteger.signum:I
        12: .line 319
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield java.math.BigInteger.mag:[I
            arraylength
            ldc 67108864
            if_icmplt 14
        13: .line 320
            aload 0 /* this */
            invokevirtual java.math.BigInteger.checkRange:()V
        14: .line 322
      StackMap locals:
      StackMap stack:
            return
        end local 3 // int len
        end local 2 // int off
        end local 1 // byte[] val
        end local 0 // java.math.BigInteger this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0   15     0  this  Ljava/math/BigInteger;
            0   15     1   val  [B
            0   15     2   off  I
            0   15     3   len  I
    MethodParameters:
      Name  Flags
      val   
      off   
      len   

  public void <init>(byte[]);
    descriptor: ([B)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=2, args_size=2
        start local 0 // java.math.BigInteger this
        start local 1 // byte[] val
         0: .line 336
            aload 0 /* this */
            aload 1 /* val */
            iconst_0
            aload 1 /* val */
            arraylength
            invokespecial java.math.BigInteger.<init>:([BII)V
         1: .line 337
            return
        end local 1 // byte[] val
        end local 0 // java.math.BigInteger this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Ljava/math/BigInteger;
            0    2     1   val  [B
    MethodParameters:
      Name  Flags
      val   

  private void <init>(int[]);
    descriptor: ([I)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=3, locals=2, args_size=2
        start local 0 // java.math.BigInteger this
        start local 1 // int[] val
         0: .line 347
            aload 0 /* this */
            invokespecial java.lang.Number.<init>:()V
         1: .line 348
            aload 1 /* val */
            arraylength
            ifne 3
         2: .line 349
            new java.lang.NumberFormatException
            dup
            ldc "Zero length BigInteger"
            invokespecial java.lang.NumberFormatException.<init>:(Ljava/lang/String;)V
            athrow
         3: .line 351
      StackMap locals: java.math.BigInteger int[]
      StackMap stack:
            aload 1 /* val */
            iconst_0
            iaload
            ifge 7
         4: .line 352
            aload 0 /* this */
            aload 1 /* val */
            invokestatic java.math.BigInteger.makePositive:([I)[I
            putfield java.math.BigInteger.mag:[I
         5: .line 353
            aload 0 /* this */
            iconst_m1
            putfield java.math.BigInteger.signum:I
         6: .line 354
            goto 11
         7: .line 355
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 1 /* val */
            invokestatic java.math.BigInteger.trustedStripLeadingZeroInts:([I)[I
            putfield java.math.BigInteger.mag:[I
         8: .line 356
            aload 0 /* this */
            aload 0 /* this */
            getfield java.math.BigInteger.mag:[I
            arraylength
            ifne 9
            iconst_0
            goto 10
      StackMap locals:
      StackMap stack: java.math.BigInteger
         9: iconst_1
      StackMap locals: java.math.BigInteger int[]
      StackMap stack: java.math.BigInteger int
        10: putfield java.math.BigInteger.signum:I
        11: .line 358
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield java.math.BigInteger.mag:[I
            arraylength
            ldc 67108864
            if_icmplt 13
        12: .line 359
            aload 0 /* this */
            invokevirtual java.math.BigInteger.checkRange:()V
        13: .line 361
      StackMap locals:
      StackMap stack:
            return
        end local 1 // int[] val
        end local 0 // java.math.BigInteger this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0   14     0  this  Ljava/math/BigInteger;
            0   14     1   val  [I
    MethodParameters:
      Name  Flags
      val   

  public void <init>(int, byte[], int, int);
    descriptor: (I[BII)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=5, args_size=5
        start local 0 // java.math.BigInteger this
        start local 1 // int signum
        start local 2 // byte[] magnitude
        start local 3 // int off
        start local 4 // int len
         0: .line 392
            aload 0 /* this */
            invokespecial java.lang.Number.<init>:()V
         1: .line 393
            iload 1 /* signum */
            iconst_m1
            if_icmplt 2
            iload 1 /* signum */
            iconst_1
            if_icmple 3
         2: .line 394
      StackMap locals: java.math.BigInteger int byte[] int int
      StackMap stack:
            new java.lang.NumberFormatException
            dup
            ldc "Invalid signum value"
            invokespecial java.lang.NumberFormatException.<init>:(Ljava/lang/String;)V
            athrow
         3: .line 396
      StackMap locals:
      StackMap stack:
            iload 3 /* off */
            iload 4 /* len */
            aload 2 /* magnitude */
            arraylength
            invokestatic java.util.Objects.checkFromIndexSize:(III)I
            pop
         4: .line 399
            aload 0 /* this */
            aload 2 /* magnitude */
            iload 3 /* off */
            iload 4 /* len */
            invokestatic java.math.BigInteger.stripLeadingZeroBytes:([BII)[I
            putfield java.math.BigInteger.mag:[I
         5: .line 401
            aload 0 /* this */
            getfield java.math.BigInteger.mag:[I
            arraylength
            ifne 8
         6: .line 402
            aload 0 /* this */
            iconst_0
            putfield java.math.BigInteger.signum:I
         7: .line 403
            goto 11
         8: .line 404
      StackMap locals:
      StackMap stack:
            iload 1 /* signum */
            ifne 10
         9: .line 405
            new java.lang.NumberFormatException
            dup
            ldc "signum-magnitude mismatch"
            invokespecial java.lang.NumberFormatException.<init>:(Ljava/lang/String;)V
            athrow
        10: .line 406
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            iload 1 /* signum */
            putfield java.math.BigInteger.signum:I
        11: .line 408
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield java.math.BigInteger.mag:[I
            arraylength
            ldc 67108864
            if_icmplt 13
        12: .line 409
            aload 0 /* this */
            invokevirtual java.math.BigInteger.checkRange:()V
        13: .line 411
      StackMap locals:
      StackMap stack:
            return
        end local 4 // int len
        end local 3 // int off
        end local 2 // byte[] magnitude
        end local 1 // int signum
        end local 0 // java.math.BigInteger this
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0   14     0       this  Ljava/math/BigInteger;
            0   14     1     signum  I
            0   14     2  magnitude  [B
            0   14     3        off  I
            0   14     4        len  I
    MethodParameters:
           Name  Flags
      signum     
      magnitude  
      off        
      len        

  public void <init>(int, byte[]);
    descriptor: (I[B)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=3, args_size=3
        start local 0 // java.math.BigInteger this
        start local 1 // int signum
        start local 2 // byte[] magnitude
         0: .line 432
            aload 0 /* this */
            iload 1 /* signum */
            aload 2 /* magnitude */
            iconst_0
            aload 2 /* magnitude */
            arraylength
            invokespecial java.math.BigInteger.<init>:(I[BII)V
         1: .line 433
            return
        end local 2 // byte[] magnitude
        end local 1 // int signum
        end local 0 // java.math.BigInteger this
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0    2     0       this  Ljava/math/BigInteger;
            0    2     1     signum  I
            0    2     2  magnitude  [B
    MethodParameters:
           Name  Flags
      signum     
      magnitude  

  private void <init>(int, int[]);
    descriptor: (I[I)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=3, locals=3, args_size=3
        start local 0 // java.math.BigInteger this
        start local 1 // int signum
        start local 2 // int[] magnitude
         0: .line 442
            aload 0 /* this */
            invokespecial java.lang.Number.<init>:()V
         1: .line 443
            aload 0 /* this */
            aload 2 /* magnitude */
            invokestatic java.math.BigInteger.stripLeadingZeroInts:([I)[I
            putfield java.math.BigInteger.mag:[I
         2: .line 445
            iload 1 /* signum */
            iconst_m1
            if_icmplt 3
            iload 1 /* signum */
            iconst_1
            if_icmple 4
         3: .line 446
      StackMap locals: java.math.BigInteger int int[]
      StackMap stack:
            new java.lang.NumberFormatException
            dup
            ldc "Invalid signum value"
            invokespecial java.lang.NumberFormatException.<init>:(Ljava/lang/String;)V
            athrow
         4: .line 448
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield java.math.BigInteger.mag:[I
            arraylength
            ifne 7
         5: .line 449
            aload 0 /* this */
            iconst_0
            putfield java.math.BigInteger.signum:I
         6: .line 450
            goto 10
         7: .line 451
      StackMap locals:
      StackMap stack:
            iload 1 /* signum */
            ifne 9
         8: .line 452
            new java.lang.NumberFormatException
            dup
            ldc "signum-magnitude mismatch"
            invokespecial java.lang.NumberFormatException.<init>:(Ljava/lang/String;)V
            athrow
         9: .line 453
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            iload 1 /* signum */
            putfield java.math.BigInteger.signum:I
        10: .line 455
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield java.math.BigInteger.mag:[I
            arraylength
            ldc 67108864
            if_icmplt 12
        11: .line 456
            aload 0 /* this */
            invokevirtual java.math.BigInteger.checkRange:()V
        12: .line 458
      StackMap locals:
      StackMap stack:
            return
        end local 2 // int[] magnitude
        end local 1 // int signum
        end local 0 // java.math.BigInteger this
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0   13     0       this  Ljava/math/BigInteger;
            0   13     1     signum  I
            0   13     2  magnitude  [I
    MethodParameters:
           Name  Flags
      signum     
      magnitude  

  public void <init>(java.lang.String, int);
    descriptor: (Ljava/lang/String;I)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=17, args_size=3
        start local 0 // java.math.BigInteger this
        start local 1 // java.lang.String val
        start local 2 // int radix
         0: .line 477
            aload 0 /* this */
            invokespecial java.lang.Number.<init>:()V
         1: .line 478
            iconst_0
            istore 3 /* cursor */
        start local 3 // int cursor
         2: .line 479
            aload 1 /* val */
            invokevirtual java.lang.String.length:()I
            istore 5 /* len */
        start local 5 // int len
         3: .line 481
            iload 2 /* radix */
            iconst_2
            if_icmplt 4
            iload 2 /* radix */
            bipush 36
            if_icmple 5
         4: .line 482
      StackMap locals: java.math.BigInteger java.lang.String int int top int
      StackMap stack:
            new java.lang.NumberFormatException
            dup
            ldc "Radix out of range"
            invokespecial java.lang.NumberFormatException.<init>:(Ljava/lang/String;)V
            athrow
         5: .line 483
      StackMap locals:
      StackMap stack:
            iload 5 /* len */
            ifne 7
         6: .line 484
            new java.lang.NumberFormatException
            dup
            ldc "Zero length BigInteger"
            invokespecial java.lang.NumberFormatException.<init>:(Ljava/lang/String;)V
            athrow
         7: .line 487
      StackMap locals:
      StackMap stack:
            iconst_1
            istore 6 /* sign */
        start local 6 // int sign
         8: .line 488
            aload 1 /* val */
            bipush 45
            invokevirtual java.lang.String.lastIndexOf:(I)I
            istore 7 /* index1 */
        start local 7 // int index1
         9: .line 489
            aload 1 /* val */
            bipush 43
            invokevirtual java.lang.String.lastIndexOf:(I)I
            istore 8 /* index2 */
        start local 8 // int index2
        10: .line 490
            iload 7 /* index1 */
            iflt 16
        11: .line 491
            iload 7 /* index1 */
            ifne 12
            iload 8 /* index2 */
            iflt 13
        12: .line 492
      StackMap locals: int int int
      StackMap stack:
            new java.lang.NumberFormatException
            dup
            ldc "Illegal embedded sign character"
            invokespecial java.lang.NumberFormatException.<init>:(Ljava/lang/String;)V
            athrow
        13: .line 494
      StackMap locals:
      StackMap stack:
            iconst_m1
            istore 6 /* sign */
        14: .line 495
            iconst_1
            istore 3 /* cursor */
        15: .line 496
            goto 20
      StackMap locals:
      StackMap stack:
        16: iload 8 /* index2 */
            iflt 20
        17: .line 497
            iload 8 /* index2 */
            ifeq 19
        18: .line 498
            new java.lang.NumberFormatException
            dup
            ldc "Illegal embedded sign character"
            invokespecial java.lang.NumberFormatException.<init>:(Ljava/lang/String;)V
            athrow
        19: .line 500
      StackMap locals:
      StackMap stack:
            iconst_1
            istore 3 /* cursor */
        20: .line 502
      StackMap locals:
      StackMap stack:
            iload 3 /* cursor */
            iload 5 /* len */
            if_icmpne 23
        21: .line 503
            new java.lang.NumberFormatException
            dup
            ldc "Zero length BigInteger"
            invokespecial java.lang.NumberFormatException.<init>:(Ljava/lang/String;)V
            athrow
        22: .line 508
      StackMap locals:
      StackMap stack:
            iinc 3 /* cursor */ 1
        23: .line 506
      StackMap locals:
      StackMap stack:
            iload 3 /* cursor */
            iload 5 /* len */
            if_icmpge 25
        24: .line 507
            aload 1 /* val */
            iload 3 /* cursor */
            invokevirtual java.lang.String.charAt:(I)C
            iload 2 /* radix */
            invokestatic java.lang.Character.digit:(CI)I
            ifeq 22
        25: .line 511
      StackMap locals:
      StackMap stack:
            iload 3 /* cursor */
            iload 5 /* len */
            if_icmpne 29
        26: .line 512
            aload 0 /* this */
            iconst_0
            putfield java.math.BigInteger.signum:I
        27: .line 513
            aload 0 /* this */
            getstatic java.math.BigInteger.ZERO:Ljava/math/BigInteger;
            getfield java.math.BigInteger.mag:[I
            putfield java.math.BigInteger.mag:[I
        28: .line 514
            return
        29: .line 517
      StackMap locals:
      StackMap stack:
            iload 5 /* len */
            iload 3 /* cursor */
            isub
            istore 4 /* numDigits */
        start local 4 // int numDigits
        30: .line 518
            aload 0 /* this */
            iload 6 /* sign */
            putfield java.math.BigInteger.signum:I
        31: .line 522
            iload 4 /* numDigits */
            i2l
            getstatic java.math.BigInteger.bitsPerDigit:[J
            iload 2 /* radix */
            laload
            lmul
            bipush 10
            lushr
            lconst_1
            ladd
            lstore 9 /* numBits */
        start local 9 // long numBits
        32: .line 523
            lload 9 /* numBits */
            ldc 31
            ladd
            ldc 4294967296
            lcmp
            iflt 34
        33: .line 524
            invokestatic java.math.BigInteger.reportOverflow:()V
        34: .line 526
      StackMap locals: java.math.BigInteger java.lang.String int int int int int int int long
      StackMap stack:
            lload 9 /* numBits */
            ldc 31
            ladd
            l2i
            iconst_5
            iushr
            istore 11 /* numWords */
        start local 11 // int numWords
        35: .line 527
            iload 11 /* numWords */
            newarray 10
            astore 12 /* magnitude */
        start local 12 // int[] magnitude
        36: .line 530
            iload 4 /* numDigits */
            getstatic java.math.BigInteger.digitsPerInt:[I
            iload 2 /* radix */
            iaload
            irem
            istore 13 /* firstGroupLen */
        start local 13 // int firstGroupLen
        37: .line 531
            iload 13 /* firstGroupLen */
            ifne 39
        38: .line 532
            getstatic java.math.BigInteger.digitsPerInt:[I
            iload 2 /* radix */
            iaload
            istore 13 /* firstGroupLen */
        39: .line 533
      StackMap locals: int int[] int
      StackMap stack:
            aload 1 /* val */
            iload 3 /* cursor */
            iload 3 /* cursor */
            iload 13 /* firstGroupLen */
            iadd
            dup
            istore 3 /* cursor */
            invokevirtual java.lang.String.substring:(II)Ljava/lang/String;
            astore 14 /* group */
        start local 14 // java.lang.String group
        40: .line 534
            aload 12 /* magnitude */
            iload 11 /* numWords */
            iconst_1
            isub
            aload 14 /* group */
            iload 2 /* radix */
            invokestatic java.lang.Integer.parseInt:(Ljava/lang/String;I)I
            iastore
        41: .line 535
            aload 12 /* magnitude */
            iload 11 /* numWords */
            iconst_1
            isub
            iaload
            ifge 43
        42: .line 536
            new java.lang.NumberFormatException
            dup
            ldc "Illegal digit"
            invokespecial java.lang.NumberFormatException.<init>:(Ljava/lang/String;)V
            athrow
        43: .line 539
      StackMap locals: java.lang.String
      StackMap stack:
            getstatic java.math.BigInteger.intRadix:[I
            iload 2 /* radix */
            iaload
            istore 15 /* superRadix */
        start local 15 // int superRadix
        44: .line 540
            iconst_0
            istore 16 /* groupVal */
        start local 16 // int groupVal
        45: .line 541
            goto 51
        46: .line 542
      StackMap locals: int int
      StackMap stack:
            aload 1 /* val */
            iload 3 /* cursor */
            iload 3 /* cursor */
            getstatic java.math.BigInteger.digitsPerInt:[I
            iload 2 /* radix */
            iaload
            iadd
            dup
            istore 3 /* cursor */
            invokevirtual java.lang.String.substring:(II)Ljava/lang/String;
            astore 14 /* group */
        47: .line 543
            aload 14 /* group */
            iload 2 /* radix */
            invokestatic java.lang.Integer.parseInt:(Ljava/lang/String;I)I
            istore 16 /* groupVal */
        48: .line 544
            iload 16 /* groupVal */
            ifge 50
        49: .line 545
            new java.lang.NumberFormatException
            dup
            ldc "Illegal digit"
            invokespecial java.lang.NumberFormatException.<init>:(Ljava/lang/String;)V
            athrow
        50: .line 546
      StackMap locals:
      StackMap stack:
            aload 12 /* magnitude */
            iload 15 /* superRadix */
            iload 16 /* groupVal */
            invokestatic java.math.BigInteger.destructiveMulAdd:([III)V
        51: .line 541
      StackMap locals:
      StackMap stack:
            iload 3 /* cursor */
            iload 5 /* len */
            if_icmplt 46
        52: .line 549
            aload 0 /* this */
            aload 12 /* magnitude */
            invokestatic java.math.BigInteger.trustedStripLeadingZeroInts:([I)[I
            putfield java.math.BigInteger.mag:[I
        53: .line 550
            aload 0 /* this */
            getfield java.math.BigInteger.mag:[I
            arraylength
            ldc 67108864
            if_icmplt 55
        54: .line 551
            aload 0 /* this */
            invokevirtual java.math.BigInteger.checkRange:()V
        55: .line 553
      StackMap locals:
      StackMap stack:
            return
        end local 16 // int groupVal
        end local 15 // int superRadix
        end local 14 // java.lang.String group
        end local 13 // int firstGroupLen
        end local 12 // int[] magnitude
        end local 11 // int numWords
        end local 9 // long numBits
        end local 8 // int index2
        end local 7 // int index1
        end local 6 // int sign
        end local 5 // int len
        end local 4 // int numDigits
        end local 3 // int cursor
        end local 2 // int radix
        end local 1 // java.lang.String val
        end local 0 // java.math.BigInteger this
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0   56     0           this  Ljava/math/BigInteger;
            0   56     1            val  Ljava/lang/String;
            0   56     2          radix  I
            2   56     3         cursor  I
           30   56     4      numDigits  I
            3   56     5            len  I
            8   56     6           sign  I
            9   56     7         index1  I
           10   56     8         index2  I
           32   56     9        numBits  J
           35   56    11       numWords  I
           36   56    12      magnitude  [I
           37   56    13  firstGroupLen  I
           40   56    14          group  Ljava/lang/String;
           44   56    15     superRadix  I
           45   56    16       groupVal  I
    MethodParameters:
       Name  Flags
      val    
      radix  

  void <init>(char[], int, int);
    descriptor: ([CII)V
    flags: (0x0000) 
    Code:
      stack=7, locals=10, args_size=4
        start local 0 // java.math.BigInteger this
        start local 1 // char[] val
        start local 2 // int sign
        start local 3 // int len
         0: .line 561
            aload 0 /* this */
            invokespecial java.lang.Number.<init>:()V
         1: .line 562
            iconst_0
            istore 4 /* cursor */
        start local 4 // int cursor
         2: .line 565
            goto 4
         3: .line 566
      StackMap locals: java.math.BigInteger char[] int int int
      StackMap stack:
            iinc 4 /* cursor */ 1
         4: .line 565
      StackMap locals:
      StackMap stack:
            iload 4 /* cursor */
            iload 3 /* len */
            if_icmpge 5
            aload 1 /* val */
            iload 4 /* cursor */
            caload
            bipush 10
            invokestatic java.lang.Character.digit:(CI)I
            ifeq 3
         5: .line 568
      StackMap locals:
      StackMap stack:
            iload 4 /* cursor */
            iload 3 /* len */
            if_icmpne 9
         6: .line 569
            aload 0 /* this */
            iconst_0
            putfield java.math.BigInteger.signum:I
         7: .line 570
            aload 0 /* this */
            getstatic java.math.BigInteger.ZERO:Ljava/math/BigInteger;
            getfield java.math.BigInteger.mag:[I
            putfield java.math.BigInteger.mag:[I
         8: .line 571
            return
         9: .line 574
      StackMap locals:
      StackMap stack:
            iload 3 /* len */
            iload 4 /* cursor */
            isub
            istore 5 /* numDigits */
        start local 5 // int numDigits
        10: .line 575
            aload 0 /* this */
            iload 2 /* sign */
            putfield java.math.BigInteger.signum:I
        11: .line 578
            iload 3 /* len */
            bipush 10
            if_icmpge 14
        12: .line 579
            iconst_1
            istore 6 /* numWords */
        start local 6 // int numWords
        13: .line 580
            goto 18
        end local 6 // int numWords
        14: .line 581
      StackMap locals: int
      StackMap stack:
            iload 5 /* numDigits */
            i2l
            getstatic java.math.BigInteger.bitsPerDigit:[J
            bipush 10
            laload
            lmul
            bipush 10
            lushr
            lconst_1
            ladd
            lstore 7 /* numBits */
        start local 7 // long numBits
        15: .line 582
            lload 7 /* numBits */
            ldc 31
            ladd
            ldc 4294967296
            lcmp
            iflt 17
        16: .line 583
            invokestatic java.math.BigInteger.reportOverflow:()V
        17: .line 585
      StackMap locals: java.math.BigInteger char[] int int int int top long
      StackMap stack:
            lload 7 /* numBits */
            ldc 31
            ladd
            l2i
            iconst_5
            iushr
            istore 6 /* numWords */
        end local 7 // long numBits
        start local 6 // int numWords
        18: .line 587
      StackMap locals: java.math.BigInteger char[] int int int int int
      StackMap stack:
            iload 6 /* numWords */
            newarray 10
            astore 7 /* magnitude */
        start local 7 // int[] magnitude
        19: .line 590
            iload 5 /* numDigits */
            getstatic java.math.BigInteger.digitsPerInt:[I
            bipush 10
            iaload
            irem
            istore 8 /* firstGroupLen */
        start local 8 // int firstGroupLen
        20: .line 591
            iload 8 /* firstGroupLen */
            ifne 22
        21: .line 592
            getstatic java.math.BigInteger.digitsPerInt:[I
            bipush 10
            iaload
            istore 8 /* firstGroupLen */
        22: .line 593
      StackMap locals: int[] int
      StackMap stack:
            aload 7 /* magnitude */
            iload 6 /* numWords */
            iconst_1
            isub
            aload 0 /* this */
            aload 1 /* val */
            iload 4 /* cursor */
            iload 4 /* cursor */
            iload 8 /* firstGroupLen */
            iadd
            dup
            istore 4 /* cursor */
            invokevirtual java.math.BigInteger.parseInt:([CII)I
            iastore
        23: .line 596
            goto 26
        24: .line 597
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 1 /* val */
            iload 4 /* cursor */
            iload 4 /* cursor */
            getstatic java.math.BigInteger.digitsPerInt:[I
            bipush 10
            iaload
            iadd
            dup
            istore 4 /* cursor */
            invokevirtual java.math.BigInteger.parseInt:([CII)I
            istore 9 /* groupVal */
        start local 9 // int groupVal
        25: .line 598
            aload 7 /* magnitude */
            getstatic java.math.BigInteger.intRadix:[I
            bipush 10
            iaload
            iload 9 /* groupVal */
            invokestatic java.math.BigInteger.destructiveMulAdd:([III)V
        end local 9 // int groupVal
        26: .line 596
      StackMap locals:
      StackMap stack:
            iload 4 /* cursor */
            iload 3 /* len */
            if_icmplt 24
        27: .line 600
            aload 0 /* this */
            aload 7 /* magnitude */
            invokestatic java.math.BigInteger.trustedStripLeadingZeroInts:([I)[I
            putfield java.math.BigInteger.mag:[I
        28: .line 601
            aload 0 /* this */
            getfield java.math.BigInteger.mag:[I
            arraylength
            ldc 67108864
            if_icmplt 30
        29: .line 602
            aload 0 /* this */
            invokevirtual java.math.BigInteger.checkRange:()V
        30: .line 604
      StackMap locals:
      StackMap stack:
            return
        end local 8 // int firstGroupLen
        end local 7 // int[] magnitude
        end local 6 // int numWords
        end local 5 // int numDigits
        end local 4 // int cursor
        end local 3 // int len
        end local 2 // int sign
        end local 1 // char[] val
        end local 0 // java.math.BigInteger this
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0   31     0           this  Ljava/math/BigInteger;
            0   31     1            val  [C
            0   31     2           sign  I
            0   31     3            len  I
            2   31     4         cursor  I
           10   31     5      numDigits  I
           13   14     6       numWords  I
           18   31     6       numWords  I
           15   18     7        numBits  J
           19   31     7      magnitude  [I
           20   31     8  firstGroupLen  I
           25   26     9       groupVal  I
    MethodParameters:
      Name  Flags
      val   
      sign  
      len   

  private int parseInt(char[], int, int);
    descriptor: ([CII)I
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=5, locals=7, args_size=4
        start local 0 // java.math.BigInteger this
        start local 1 // char[] source
        start local 2 // int start
        start local 3 // int end
         0: .line 610
            aload 1 /* source */
            iload 2 /* start */
            iinc 2 /* start */ 1
            caload
            bipush 10
            invokestatic java.lang.Character.digit:(CI)I
            istore 4 /* result */
        start local 4 // int result
         1: .line 611
            iload 4 /* result */
            iconst_m1
            if_icmpne 3
         2: .line 612
            new java.lang.NumberFormatException
            dup
            new java.lang.String
            dup
            aload 1 /* source */
            invokespecial java.lang.String.<init>:([C)V
            invokespecial java.lang.NumberFormatException.<init>:(Ljava/lang/String;)V
            athrow
         3: .line 614
      StackMap locals: int
      StackMap stack:
            iload 2 /* start */
            istore 5 /* index */
        start local 5 // int index
         4: goto 10
         5: .line 615
      StackMap locals: int
      StackMap stack:
            aload 1 /* source */
            iload 5 /* index */
            caload
            bipush 10
            invokestatic java.lang.Character.digit:(CI)I
            istore 6 /* nextVal */
        start local 6 // int nextVal
         6: .line 616
            iload 6 /* nextVal */
            iconst_m1
            if_icmpne 8
         7: .line 617
            new java.lang.NumberFormatException
            dup
            new java.lang.String
            dup
            aload 1 /* source */
            invokespecial java.lang.String.<init>:([C)V
            invokespecial java.lang.NumberFormatException.<init>:(Ljava/lang/String;)V
            athrow
         8: .line 618
      StackMap locals: int
      StackMap stack:
            bipush 10
            iload 4 /* result */
            imul
            iload 6 /* nextVal */
            iadd
            istore 4 /* result */
        end local 6 // int nextVal
         9: .line 614
            iinc 5 /* index */ 1
      StackMap locals:
      StackMap stack:
        10: iload 5 /* index */
            iload 3 /* end */
            if_icmplt 5
        end local 5 // int index
        11: .line 621
            iload 4 /* result */
            ireturn
        end local 4 // int result
        end local 3 // int end
        end local 2 // int start
        end local 1 // char[] source
        end local 0 // java.math.BigInteger this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0   12     0     this  Ljava/math/BigInteger;
            0   12     1   source  [C
            0   12     2    start  I
            0   12     3      end  I
            1   12     4   result  I
            4   11     5    index  I
            6    9     6  nextVal  I
    MethodParameters:
        Name  Flags
      source  
      start   
      end     

  private static void destructiveMulAdd(int[], int, int);
    descriptor: ([III)V
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=6, locals=15, args_size=3
        start local 0 // int[] x
        start local 1 // int y
        start local 2 // int z
         0: .line 635
            iload 1 /* y */
            i2l
            ldc 4294967295
            land
            lstore 3 /* ylong */
        start local 3 // long ylong
         1: .line 636
            iload 2 /* z */
            i2l
            ldc 4294967295
            land
            lstore 5 /* zlong */
        start local 5 // long zlong
         2: .line 637
            aload 0 /* x */
            arraylength
            istore 7 /* len */
        start local 7 // int len
         3: .line 639
            lconst_0
            lstore 8 /* product */
        start local 8 // long product
         4: .line 640
            lconst_0
            lstore 10 /* carry */
        start local 10 // long carry
         5: .line 641
            iload 7 /* len */
            iconst_1
            isub
            istore 12 /* i */
        start local 12 // int i
         6: goto 11
         7: .line 642
      StackMap locals: int[] int int long long int long long int
      StackMap stack:
            lload 3 /* ylong */
            aload 0 /* x */
            iload 12 /* i */
            iaload
            i2l
            ldc 4294967295
            land
            lmul
            lload 10 /* carry */
            ladd
            lstore 8 /* product */
         8: .line 643
            aload 0 /* x */
            iload 12 /* i */
            lload 8 /* product */
            l2i
            iastore
         9: .line 644
            lload 8 /* product */
            bipush 32
            lushr
            lstore 10 /* carry */
        10: .line 641
            iinc 12 /* i */ -1
      StackMap locals:
      StackMap stack:
        11: iload 12 /* i */
            ifge 7
        end local 12 // int i
        12: .line 648
            aload 0 /* x */
            iload 7 /* len */
            iconst_1
            isub
            iaload
            i2l
            ldc 4294967295
            land
            lload 5 /* zlong */
            ladd
            lstore 12 /* sum */
        start local 12 // long sum
        13: .line 649
            aload 0 /* x */
            iload 7 /* len */
            iconst_1
            isub
            lload 12 /* sum */
            l2i
            iastore
        14: .line 650
            lload 12 /* sum */
            bipush 32
            lushr
            lstore 10 /* carry */
        15: .line 651
            iload 7 /* len */
            iconst_2
            isub
            istore 14 /* i */
        start local 14 // int i
        16: goto 21
        17: .line 652
      StackMap locals: int[] int int long long int long long long int
      StackMap stack:
            aload 0 /* x */
            iload 14 /* i */
            iaload
            i2l
            ldc 4294967295
            land
            lload 10 /* carry */
            ladd
            lstore 12 /* sum */
        18: .line 653
            aload 0 /* x */
            iload 14 /* i */
            lload 12 /* sum */
            l2i
            iastore
        19: .line 654
            lload 12 /* sum */
            bipush 32
            lushr
            lstore 10 /* carry */
        20: .line 651
            iinc 14 /* i */ -1
      StackMap locals:
      StackMap stack:
        21: iload 14 /* i */
            ifge 17
        end local 14 // int i
        22: .line 656
            return
        end local 12 // long sum
        end local 10 // long carry
        end local 8 // long product
        end local 7 // int len
        end local 5 // long zlong
        end local 3 // long ylong
        end local 2 // int z
        end local 1 // int y
        end local 0 // int[] x
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0   23     0        x  [I
            0   23     1        y  I
            0   23     2        z  I
            1   23     3    ylong  J
            2   23     5    zlong  J
            3   23     7      len  I
            4   23     8  product  J
            5   23    10    carry  J
            6   12    12        i  I
           13   23    12      sum  J
           16   22    14        i  I
    MethodParameters:
      Name  Flags
      x     
      y     
      z     

  public void <init>(java.lang.String);
    descriptor: (Ljava/lang/String;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=2, args_size=2
        start local 0 // java.math.BigInteger this
        start local 1 // java.lang.String val
         0: .line 672
            aload 0 /* this */
            aload 1 /* val */
            bipush 10
            invokespecial java.math.BigInteger.<init>:(Ljava/lang/String;I)V
         1: .line 673
            return
        end local 1 // java.lang.String val
        end local 0 // java.math.BigInteger this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Ljava/math/BigInteger;
            0    2     1   val  Ljava/lang/String;
    MethodParameters:
      Name  Flags
      val   

  public void <init>(int, java.util.Random);
    descriptor: (ILjava/util/Random;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=3, args_size=3
        start local 0 // java.math.BigInteger this
        start local 1 // int numBits
        start local 2 // java.util.Random rnd
         0: .line 689
            aload 0 /* this */
            iconst_1
            iload 1 /* numBits */
            aload 2 /* rnd */
            invokestatic java.math.BigInteger.randomBits:(ILjava/util/Random;)[B
            invokespecial java.math.BigInteger.<init>:(I[B)V
         1: .line 690
            return
        end local 2 // java.util.Random rnd
        end local 1 // int numBits
        end local 0 // java.math.BigInteger this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    2     0     this  Ljava/math/BigInteger;
            0    2     1  numBits  I
            0    2     2      rnd  Ljava/util/Random;
    MethodParameters:
         Name  Flags
      numBits  
      rnd      

  private static byte[] randomBits(int, java.util.Random);
    descriptor: (ILjava/util/Random;)[B
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=6, locals=5, args_size=2
        start local 0 // int numBits
        start local 1 // java.util.Random rnd
         0: .line 693
            iload 0 /* numBits */
            ifge 2
         1: .line 694
            new java.lang.IllegalArgumentException
            dup
            ldc "numBits must be non-negative"
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
            athrow
         2: .line 695
      StackMap locals:
      StackMap stack:
            iload 0 /* numBits */
            i2l
            ldc 7
            ladd
            ldc 8
            ldiv
            l2i
            istore 2 /* numBytes */
        start local 2 // int numBytes
         3: .line 696
            iload 2 /* numBytes */
            newarray 8
            astore 3 /* randomBits */
        start local 3 // byte[] randomBits
         4: .line 699
            iload 2 /* numBytes */
            ifle 8
         5: .line 700
            aload 1 /* rnd */
            aload 3 /* randomBits */
            invokevirtual java.util.Random.nextBytes:([B)V
         6: .line 701
            bipush 8
            iload 2 /* numBytes */
            imul
            iload 0 /* numBits */
            isub
            istore 4 /* excessBits */
        start local 4 // int excessBits
         7: .line 702
            aload 3 /* randomBits */
            iconst_0
            dup2
            baload
            iconst_1
            bipush 8
            iload 4 /* excessBits */
            isub
            ishl
            iconst_1
            isub
            iand
            i2b
            bastore
        end local 4 // int excessBits
         8: .line 704
      StackMap locals: int byte[]
      StackMap stack:
            aload 3 /* randomBits */
            areturn
        end local 3 // byte[] randomBits
        end local 2 // int numBytes
        end local 1 // java.util.Random rnd
        end local 0 // int numBits
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0    9     0     numBits  I
            0    9     1         rnd  Ljava/util/Random;
            3    9     2    numBytes  I
            4    9     3  randomBits  [B
            7    8     4  excessBits  I
    MethodParameters:
         Name  Flags
      numBits  
      rnd      

  public void <init>(int, int, java.util.Random);
    descriptor: (IILjava/util/Random;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=5, args_size=4
        start local 0 // java.math.BigInteger this
        start local 1 // int bitLength
        start local 2 // int certainty
        start local 3 // java.util.Random rnd
         0: .line 726
            aload 0 /* this */
            invokespecial java.lang.Number.<init>:()V
         1: .line 729
            iload 1 /* bitLength */
            iconst_2
            if_icmpge 3
         2: .line 730
            new java.lang.ArithmeticException
            dup
            ldc "bitLength < 2"
            invokespecial java.lang.ArithmeticException.<init>:(Ljava/lang/String;)V
            athrow
         3: .line 731
      StackMap locals: java.math.BigInteger int int java.util.Random
      StackMap stack:
            iload 1 /* bitLength */
            bipush 95
            if_icmpge 5
         4: .line 732
            iload 1 /* bitLength */
            iload 2 /* certainty */
            aload 3 /* rnd */
            invokestatic java.math.BigInteger.smallPrime:(IILjava/util/Random;)Ljava/math/BigInteger;
            goto 6
         5: .line 733
      StackMap locals:
      StackMap stack:
            iload 1 /* bitLength */
            iload 2 /* certainty */
            aload 3 /* rnd */
            invokestatic java.math.BigInteger.largePrime:(IILjava/util/Random;)Ljava/math/BigInteger;
         6: .line 731
      StackMap locals:
      StackMap stack: java.math.BigInteger
            astore 4 /* prime */
        start local 4 // java.math.BigInteger prime
         7: .line 734
            aload 0 /* this */
            iconst_1
            putfield java.math.BigInteger.signum:I
         8: .line 735
            aload 0 /* this */
            aload 4 /* prime */
            getfield java.math.BigInteger.mag:[I
            putfield java.math.BigInteger.mag:[I
         9: .line 736
            return
        end local 4 // java.math.BigInteger prime
        end local 3 // java.util.Random rnd
        end local 2 // int certainty
        end local 1 // int bitLength
        end local 0 // java.math.BigInteger this
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0   10     0       this  Ljava/math/BigInteger;
            0   10     1  bitLength  I
            0   10     2  certainty  I
            0   10     3        rnd  Ljava/util/Random;
            7   10     4      prime  Ljava/math/BigInteger;
    MethodParameters:
           Name  Flags
      bitLength  
      certainty  
      rnd        

  public static java.math.BigInteger probablePrime(int, java.util.Random);
    descriptor: (ILjava/util/Random;)Ljava/math/BigInteger;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=3, locals=2, args_size=2
        start local 0 // int bitLength
        start local 1 // java.util.Random rnd
         0: .line 760
            iload 0 /* bitLength */
            iconst_2
            if_icmpge 2
         1: .line 761
            new java.lang.ArithmeticException
            dup
            ldc "bitLength < 2"
            invokespecial java.lang.ArithmeticException.<init>:(Ljava/lang/String;)V
            athrow
         2: .line 763
      StackMap locals:
      StackMap stack:
            iload 0 /* bitLength */
            bipush 95
            if_icmpge 4
         3: .line 764
            iload 0 /* bitLength */
            bipush 100
            aload 1 /* rnd */
            invokestatic java.math.BigInteger.smallPrime:(IILjava/util/Random;)Ljava/math/BigInteger;
            goto 5
         4: .line 765
      StackMap locals:
      StackMap stack:
            iload 0 /* bitLength */
            bipush 100
            aload 1 /* rnd */
            invokestatic java.math.BigInteger.largePrime:(IILjava/util/Random;)Ljava/math/BigInteger;
         5: .line 763
      StackMap locals:
      StackMap stack: java.math.BigInteger
            areturn
        end local 1 // java.util.Random rnd
        end local 0 // int bitLength
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0    6     0  bitLength  I
            0    6     1        rnd  Ljava/util/Random;
    MethodParameters:
           Name  Flags
      bitLength  
      rnd        

  private static java.math.BigInteger smallPrime(int, int, java.util.Random);
    descriptor: (IILjava/util/Random;)Ljava/math/BigInteger;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=4, locals=10, args_size=3
        start local 0 // int bitLength
        start local 1 // int certainty
        start local 2 // java.util.Random rnd
         0: .line 776
            iload 0 /* bitLength */
            bipush 31
            iadd
            iconst_5
            iushr
            istore 3 /* magLen */
        start local 3 // int magLen
         1: .line 777
            iload 3 /* magLen */
            newarray 10
            astore 4 /* temp */
        start local 4 // int[] temp
         2: .line 778
            iconst_1
            iload 0 /* bitLength */
            bipush 31
            iadd
            bipush 31
            iand
            ishl
            istore 5 /* highBit */
        start local 5 // int highBit
         3: .line 779
            iload 5 /* highBit */
            iconst_1
            ishl
            iconst_1
            isub
            istore 6 /* highMask */
        start local 6 // int highMask
         4: .line 783
      StackMap locals: int int java.util.Random int int[] int int
      StackMap stack:
            iconst_0
            istore 7 /* i */
        start local 7 // int i
         5: goto 8
         6: .line 784
      StackMap locals: int
      StackMap stack:
            aload 4 /* temp */
            iload 7 /* i */
            aload 2 /* rnd */
            invokevirtual java.util.Random.nextInt:()I
            iastore
         7: .line 783
            iinc 7 /* i */ 1
      StackMap locals:
      StackMap stack:
         8: iload 7 /* i */
            iload 3 /* magLen */
            if_icmplt 6
        end local 7 // int i
         9: .line 785
            aload 4 /* temp */
            iconst_0
            aload 4 /* temp */
            iconst_0
            iaload
            iload 6 /* highMask */
            iand
            iload 5 /* highBit */
            ior
            iastore
        10: .line 786
            iload 0 /* bitLength */
            iconst_2
            if_icmple 12
        11: .line 787
            aload 4 /* temp */
            iload 3 /* magLen */
            iconst_1
            isub
            dup2
            iaload
            iconst_1
            ior
            iastore
        12: .line 789
      StackMap locals:
      StackMap stack:
            new java.math.BigInteger
            dup
            aload 4 /* temp */
            iconst_1
            invokespecial java.math.BigInteger.<init>:([II)V
            astore 7 /* p */
        start local 7 // java.math.BigInteger p
        13: .line 792
            iload 0 /* bitLength */
            bipush 6
            if_icmple 19
        14: .line 793
            aload 7 /* p */
            getstatic java.math.BigInteger.SMALL_PRIME_PRODUCT:Ljava/math/BigInteger;
            invokevirtual java.math.BigInteger.remainder:(Ljava/math/BigInteger;)Ljava/math/BigInteger;
            invokevirtual java.math.BigInteger.longValue:()J
            lstore 8 /* r */
        start local 8 // long r
        15: .line 794
            lload 8 /* r */
            ldc 3
            lrem
            lconst_0
            lcmp
            ifeq 4
            lload 8 /* r */
            ldc 5
            lrem
            lconst_0
            lcmp
            ifeq 4
            lload 8 /* r */
            ldc 7
            lrem
            lconst_0
            lcmp
            ifeq 4
            lload 8 /* r */
            ldc 11
            lrem
            lconst_0
            lcmp
            ifeq 4
        16: .line 795
            lload 8 /* r */
            ldc 13
            lrem
            lconst_0
            lcmp
            ifeq 4
            lload 8 /* r */
            ldc 17
            lrem
            lconst_0
            lcmp
            ifeq 4
            lload 8 /* r */
            ldc 19
            lrem
            lconst_0
            lcmp
            ifeq 4
            lload 8 /* r */
            ldc 23
            lrem
            lconst_0
            lcmp
            ifeq 4
        17: .line 796
            lload 8 /* r */
            ldc 29
            lrem
            lconst_0
            lcmp
            ifeq 4
            lload 8 /* r */
            ldc 31
            lrem
            lconst_0
            lcmp
            ifeq 4
            lload 8 /* r */
            ldc 37
            lrem
            lconst_0
            lcmp
            ifeq 4
            lload 8 /* r */
            ldc 41
            lrem
            lconst_0
            lcmp
            ifne 19
        18: .line 797
            goto 4
        end local 8 // long r
        19: .line 801
      StackMap locals: java.math.BigInteger
      StackMap stack:
            iload 0 /* bitLength */
            iconst_4
            if_icmpge 21
        20: .line 802
            aload 7 /* p */
            areturn
        21: .line 805
      StackMap locals:
      StackMap stack:
            aload 7 /* p */
            iload 1 /* certainty */
            aload 2 /* rnd */
            invokevirtual java.math.BigInteger.primeToCertainty:(ILjava/util/Random;)Z
            ifeq 4
        22: .line 806
            aload 7 /* p */
            areturn
        end local 7 // java.math.BigInteger p
        end local 6 // int highMask
        end local 5 // int highBit
        end local 4 // int[] temp
        end local 3 // int magLen
        end local 2 // java.util.Random rnd
        end local 1 // int certainty
        end local 0 // int bitLength
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0   23     0  bitLength  I
            0   23     1  certainty  I
            0   23     2        rnd  Ljava/util/Random;
            1   23     3     magLen  I
            2   23     4       temp  [I
            3   23     5    highBit  I
            4   23     6   highMask  I
            5    9     7          i  I
           13   23     7          p  Ljava/math/BigInteger;
           15   19     8          r  J
    MethodParameters:
           Name  Flags
      bitLength  
      certainty  
      rnd        

  private static java.math.BigInteger largePrime(int, int, java.util.Random);
    descriptor: (IILjava/util/Random;)Ljava/math/BigInteger;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=4, locals=7, args_size=3
        start local 0 // int bitLength
        start local 1 // int certainty
        start local 2 // java.util.Random rnd
         0: .line 821
            new java.math.BigInteger
            dup
            iload 0 /* bitLength */
            aload 2 /* rnd */
            invokespecial java.math.BigInteger.<init>:(ILjava/util/Random;)V
            iload 0 /* bitLength */
            iconst_1
            isub
            invokevirtual java.math.BigInteger.setBit:(I)Ljava/math/BigInteger;
            astore 3 /* p */
        start local 3 // java.math.BigInteger p
         1: .line 822
            aload 3 /* p */
            getfield java.math.BigInteger.mag:[I
            aload 3 /* p */
            getfield java.math.BigInteger.mag:[I
            arraylength
            iconst_1
            isub
            dup2
            iaload
            bipush -2
            iand
            iastore
         2: .line 825
            iload 0 /* bitLength */
            invokestatic java.math.BigInteger.getPrimeSearchLen:(I)I
            istore 4 /* searchLen */
        start local 4 // int searchLen
         3: .line 826
            new java.math.BitSieve
            dup
            aload 3 /* p */
            iload 4 /* searchLen */
            invokespecial java.math.BitSieve.<init>:(Ljava/math/BigInteger;I)V
            astore 5 /* searchSieve */
        start local 5 // java.math.BitSieve searchSieve
         4: .line 827
            aload 5 /* searchSieve */
            aload 3 /* p */
            iload 1 /* certainty */
            aload 2 /* rnd */
            invokevirtual java.math.BitSieve.retrieve:(Ljava/math/BigInteger;ILjava/util/Random;)Ljava/math/BigInteger;
            astore 6 /* candidate */
        start local 6 // java.math.BigInteger candidate
         5: .line 829
            goto 12
         6: .line 830
      StackMap locals: int int java.util.Random java.math.BigInteger int java.math.BitSieve java.math.BigInteger
      StackMap stack:
            aload 3 /* p */
            iconst_2
            iload 4 /* searchLen */
            imul
            i2l
            invokestatic java.math.BigInteger.valueOf:(J)Ljava/math/BigInteger;
            invokevirtual java.math.BigInteger.add:(Ljava/math/BigInteger;)Ljava/math/BigInteger;
            astore 3 /* p */
         7: .line 831
            aload 3 /* p */
            invokevirtual java.math.BigInteger.bitLength:()I
            iload 0 /* bitLength */
            if_icmpeq 9
         8: .line 832
            new java.math.BigInteger
            dup
            iload 0 /* bitLength */
            aload 2 /* rnd */
            invokespecial java.math.BigInteger.<init>:(ILjava/util/Random;)V
            iload 0 /* bitLength */
            iconst_1
            isub
            invokevirtual java.math.BigInteger.setBit:(I)Ljava/math/BigInteger;
            astore 3 /* p */
         9: .line 833
      StackMap locals:
      StackMap stack:
            aload 3 /* p */
            getfield java.math.BigInteger.mag:[I
            aload 3 /* p */
            getfield java.math.BigInteger.mag:[I
            arraylength
            iconst_1
            isub
            dup2
            iaload
            bipush -2
            iand
            iastore
        10: .line 834
            new java.math.BitSieve
            dup
            aload 3 /* p */
            iload 4 /* searchLen */
            invokespecial java.math.BitSieve.<init>:(Ljava/math/BigInteger;I)V
            astore 5 /* searchSieve */
        11: .line 835
            aload 5 /* searchSieve */
            aload 3 /* p */
            iload 1 /* certainty */
            aload 2 /* rnd */
            invokevirtual java.math.BitSieve.retrieve:(Ljava/math/BigInteger;ILjava/util/Random;)Ljava/math/BigInteger;
            astore 6 /* candidate */
        12: .line 829
      StackMap locals:
      StackMap stack:
            aload 6 /* candidate */
            ifnull 6
            aload 6 /* candidate */
            invokevirtual java.math.BigInteger.bitLength:()I
            iload 0 /* bitLength */
            if_icmpne 6
        13: .line 837
            aload 6 /* candidate */
            areturn
        end local 6 // java.math.BigInteger candidate
        end local 5 // java.math.BitSieve searchSieve
        end local 4 // int searchLen
        end local 3 // java.math.BigInteger p
        end local 2 // java.util.Random rnd
        end local 1 // int certainty
        end local 0 // int bitLength
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0   14     0    bitLength  I
            0   14     1    certainty  I
            0   14     2          rnd  Ljava/util/Random;
            1   14     3            p  Ljava/math/BigInteger;
            3   14     4    searchLen  I
            4   14     5  searchSieve  Ljava/math/BitSieve;
            5   14     6    candidate  Ljava/math/BigInteger;
    MethodParameters:
           Name  Flags
      bitLength  
      certainty  
      rnd        

  public java.math.BigInteger nextProbablePrime();
    descriptor: ()Ljava/math/BigInteger;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=5, args_size=1
        start local 0 // java.math.BigInteger this
         0: .line 853
            aload 0 /* this */
            getfield java.math.BigInteger.signum:I
            ifge 2
         1: .line 854
            new java.lang.ArithmeticException
            dup
            new java.lang.StringBuilder
            dup
            ldc "start < 0: "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 0 /* this */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokespecial java.lang.ArithmeticException.<init>:(Ljava/lang/String;)V
            athrow
         2: .line 857
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield java.math.BigInteger.signum:I
            ifeq 3
            aload 0 /* this */
            getstatic java.math.BigInteger.ONE:Ljava/math/BigInteger;
            invokevirtual java.math.BigInteger.equals:(Ljava/lang/Object;)Z
            ifeq 4
         3: .line 858
      StackMap locals:
      StackMap stack:
            getstatic java.math.BigInteger.TWO:Ljava/math/BigInteger;
            areturn
         4: .line 860
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getstatic java.math.BigInteger.ONE:Ljava/math/BigInteger;
            invokevirtual java.math.BigInteger.add:(Ljava/math/BigInteger;)Ljava/math/BigInteger;
            astore 1 /* result */
        start local 1 // java.math.BigInteger result
         5: .line 863
            aload 1 /* result */
            invokevirtual java.math.BigInteger.bitLength:()I
            bipush 95
            if_icmpge 21
         6: .line 866
            aload 1 /* result */
            iconst_0
            invokevirtual java.math.BigInteger.testBit:(I)Z
            ifne 8
         7: .line 867
            aload 1 /* result */
            getstatic java.math.BigInteger.ONE:Ljava/math/BigInteger;
            invokevirtual java.math.BigInteger.add:(Ljava/math/BigInteger;)Ljava/math/BigInteger;
            astore 1 /* result */
         8: .line 871
      StackMap locals: java.math.BigInteger
      StackMap stack:
            aload 1 /* result */
            invokevirtual java.math.BigInteger.bitLength:()I
            bipush 6
            if_icmple 15
         9: .line 872
            aload 1 /* result */
            getstatic java.math.BigInteger.SMALL_PRIME_PRODUCT:Ljava/math/BigInteger;
            invokevirtual java.math.BigInteger.remainder:(Ljava/math/BigInteger;)Ljava/math/BigInteger;
            invokevirtual java.math.BigInteger.longValue:()J
            lstore 2 /* r */
        start local 2 // long r
        10: .line 873
            lload 2 /* r */
            ldc 3
            lrem
            lconst_0
            lcmp
            ifeq 13
            lload 2 /* r */
            ldc 5
            lrem
            lconst_0
            lcmp
            ifeq 13
            lload 2 /* r */
            ldc 7
            lrem
            lconst_0
            lcmp
            ifeq 13
            lload 2 /* r */
            ldc 11
            lrem
            lconst_0
            lcmp
            ifeq 13
        11: .line 874
            lload 2 /* r */
            ldc 13
            lrem
            lconst_0
            lcmp
            ifeq 13
            lload 2 /* r */
            ldc 17
            lrem
            lconst_0
            lcmp
            ifeq 13
            lload 2 /* r */
            ldc 19
            lrem
            lconst_0
            lcmp
            ifeq 13
            lload 2 /* r */
            ldc 23
            lrem
            lconst_0
            lcmp
            ifeq 13
        12: .line 875
            lload 2 /* r */
            ldc 29
            lrem
            lconst_0
            lcmp
            ifeq 13
            lload 2 /* r */
            ldc 31
            lrem
            lconst_0
            lcmp
            ifeq 13
            lload 2 /* r */
            ldc 37
            lrem
            lconst_0
            lcmp
            ifeq 13
            lload 2 /* r */
            ldc 41
            lrem
            lconst_0
            lcmp
            ifne 15
        13: .line 876
      StackMap locals: long
      StackMap stack:
            aload 1 /* result */
            getstatic java.math.BigInteger.TWO:Ljava/math/BigInteger;
            invokevirtual java.math.BigInteger.add:(Ljava/math/BigInteger;)Ljava/math/BigInteger;
            astore 1 /* result */
        14: .line 877
            goto 8
        end local 2 // long r
        15: .line 882
      StackMap locals:
      StackMap stack:
            aload 1 /* result */
            invokevirtual java.math.BigInteger.bitLength:()I
            iconst_4
            if_icmpge 17
        16: .line 883
            aload 1 /* result */
            areturn
        17: .line 886
      StackMap locals:
      StackMap stack:
            aload 1 /* result */
            bipush 100
            aconst_null
            invokevirtual java.math.BigInteger.primeToCertainty:(ILjava/util/Random;)Z
            ifeq 19
        18: .line 887
            aload 1 /* result */
            areturn
        19: .line 889
      StackMap locals:
      StackMap stack:
            aload 1 /* result */
            getstatic java.math.BigInteger.TWO:Ljava/math/BigInteger;
            invokevirtual java.math.BigInteger.add:(Ljava/math/BigInteger;)Ljava/math/BigInteger;
            astore 1 /* result */
        20: .line 869
            goto 8
        21: .line 894
      StackMap locals:
      StackMap stack:
            aload 1 /* result */
            iconst_0
            invokevirtual java.math.BigInteger.testBit:(I)Z
            ifeq 23
        22: .line 895
            aload 1 /* result */
            getstatic java.math.BigInteger.ONE:Ljava/math/BigInteger;
            invokevirtual java.math.BigInteger.subtract:(Ljava/math/BigInteger;)Ljava/math/BigInteger;
            astore 1 /* result */
        23: .line 898
      StackMap locals:
      StackMap stack:
            aload 1 /* result */
            invokevirtual java.math.BigInteger.bitLength:()I
            invokestatic java.math.BigInteger.getPrimeSearchLen:(I)I
            istore 2 /* searchLen */
        start local 2 // int searchLen
        24: .line 901
      StackMap locals: int
      StackMap stack:
            new java.math.BitSieve
            dup
            aload 1 /* result */
            iload 2 /* searchLen */
            invokespecial java.math.BitSieve.<init>:(Ljava/math/BigInteger;I)V
            astore 3 /* searchSieve */
        start local 3 // java.math.BitSieve searchSieve
        25: .line 902
            aload 3 /* searchSieve */
            aload 1 /* result */
        26: .line 903
            bipush 100
            aconst_null
        27: .line 902
            invokevirtual java.math.BitSieve.retrieve:(Ljava/math/BigInteger;ILjava/util/Random;)Ljava/math/BigInteger;
            astore 4 /* candidate */
        start local 4 // java.math.BigInteger candidate
        28: .line 904
            aload 4 /* candidate */
            ifnull 30
        29: .line 905
            aload 4 /* candidate */
            areturn
        30: .line 906
      StackMap locals: java.math.BitSieve java.math.BigInteger
      StackMap stack:
            aload 1 /* result */
            iconst_2
            iload 2 /* searchLen */
            imul
            i2l
            invokestatic java.math.BigInteger.valueOf:(J)Ljava/math/BigInteger;
            invokevirtual java.math.BigInteger.add:(Ljava/math/BigInteger;)Ljava/math/BigInteger;
            astore 1 /* result */
        end local 4 // java.math.BigInteger candidate
        end local 3 // java.math.BitSieve searchSieve
        31: .line 900
            goto 24
        end local 2 // int searchLen
        end local 1 // java.math.BigInteger result
        end local 0 // java.math.BigInteger this
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0   32     0         this  Ljava/math/BigInteger;
            5   32     1       result  Ljava/math/BigInteger;
           10   15     2            r  J
           24   32     2    searchLen  I
           25   31     3  searchSieve  Ljava/math/BitSieve;
           28   31     4    candidate  Ljava/math/BigInteger;

  private static int getPrimeSearchLen(int);
    descriptor: (I)I
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=3, locals=1, args_size=1
        start local 0 // int bitLength
         0: .line 911
            iload 0 /* bitLength */
            ldc 500000001
            if_icmple 2
         1: .line 912
            new java.lang.ArithmeticException
            dup
            ldc "Prime search implementation restriction on bitLength"
            invokespecial java.lang.ArithmeticException.<init>:(Ljava/lang/String;)V
            athrow
         2: .line 914
      StackMap locals:
      StackMap stack:
            iload 0 /* bitLength */
            bipush 20
            idiv
            bipush 64
            imul
            ireturn
        end local 0 // int bitLength
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0    3     0  bitLength  I
    MethodParameters:
           Name  Flags
      bitLength  

  boolean primeToCertainty(int, java.util.Random);
    descriptor: (ILjava/util/Random;)Z
    flags: (0x0000) 
    Code:
      stack=3, locals=6, args_size=3
        start local 0 // java.math.BigInteger this
        start local 1 // int certainty
        start local 2 // java.util.Random random
         0: .line 932
            iconst_0
            istore 3 /* rounds */
        start local 3 // int rounds
         1: .line 933
            iload 1 /* certainty */
            ldc 2147483646
            invokestatic java.lang.Math.min:(II)I
            iconst_1
            iadd
            iconst_2
            idiv
            istore 4 /* n */
        start local 4 // int n
         2: .line 938
            aload 0 /* this */
            invokevirtual java.math.BigInteger.bitLength:()I
            istore 5 /* sizeInBits */
        start local 5 // int sizeInBits
         3: .line 939
            iload 5 /* sizeInBits */
            bipush 100
            if_icmpge 9
         4: .line 940
            bipush 50
            istore 3 /* rounds */
         5: .line 941
            iload 4 /* n */
            iload 3 /* rounds */
            if_icmpge 6
            iload 4 /* n */
            goto 7
      StackMap locals: int int int
      StackMap stack:
         6: iload 3 /* rounds */
      StackMap locals:
      StackMap stack: int
         7: istore 3 /* rounds */
         8: .line 942
            aload 0 /* this */
            iload 3 /* rounds */
            aload 2 /* random */
            invokevirtual java.math.BigInteger.passesMillerRabin:(ILjava/util/Random;)Z
            ireturn
         9: .line 945
      StackMap locals:
      StackMap stack:
            iload 5 /* sizeInBits */
            sipush 256
            if_icmpge 12
        10: .line 946
            bipush 27
            istore 3 /* rounds */
        11: .line 947
            goto 22
      StackMap locals:
      StackMap stack:
        12: iload 5 /* sizeInBits */
            sipush 512
            if_icmpge 15
        13: .line 948
            bipush 15
            istore 3 /* rounds */
        14: .line 949
            goto 22
      StackMap locals:
      StackMap stack:
        15: iload 5 /* sizeInBits */
            sipush 768
            if_icmpge 18
        16: .line 950
            bipush 8
            istore 3 /* rounds */
        17: .line 951
            goto 22
      StackMap locals:
      StackMap stack:
        18: iload 5 /* sizeInBits */
            sipush 1024
            if_icmpge 21
        19: .line 952
            iconst_4
            istore 3 /* rounds */
        20: .line 953
            goto 22
        21: .line 954
      StackMap locals:
      StackMap stack:
            iconst_2
            istore 3 /* rounds */
        22: .line 956
      StackMap locals:
      StackMap stack:
            iload 4 /* n */
            iload 3 /* rounds */
            if_icmpge 23
            iload 4 /* n */
            goto 24
      StackMap locals:
      StackMap stack:
        23: iload 3 /* rounds */
      StackMap locals:
      StackMap stack: int
        24: istore 3 /* rounds */
        25: .line 958
            aload 0 /* this */
            iload 3 /* rounds */
            aload 2 /* random */
            invokevirtual java.math.BigInteger.passesMillerRabin:(ILjava/util/Random;)Z
            ifeq 26
            aload 0 /* this */
            invokevirtual java.math.BigInteger.passesLucasLehmer:()Z
            ifeq 26
            iconst_1
            ireturn
      StackMap locals:
      StackMap stack:
        26: iconst_0
            ireturn
        end local 5 // int sizeInBits
        end local 4 // int n
        end local 3 // int rounds
        end local 2 // java.util.Random random
        end local 1 // int certainty
        end local 0 // java.math.BigInteger this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0   27     0        this  Ljava/math/BigInteger;
            0   27     1   certainty  I
            0   27     2      random  Ljava/util/Random;
            1   27     3      rounds  I
            2   27     4           n  I
            3   27     5  sizeInBits  I
    MethodParameters:
           Name  Flags
      certainty  
      random     

  private boolean passesLucasLehmer();
    descriptor: ()Z
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=3, locals=4, args_size=1
        start local 0 // java.math.BigInteger this
         0: .line 968
            aload 0 /* this */
            getstatic java.math.BigInteger.ONE:Ljava/math/BigInteger;
            invokevirtual java.math.BigInteger.add:(Ljava/math/BigInteger;)Ljava/math/BigInteger;
            astore 1 /* thisPlusOne */
        start local 1 // java.math.BigInteger thisPlusOne
         1: .line 971
            iconst_5
            istore 2 /* d */
        start local 2 // int d
         2: .line 972
            goto 6
         3: .line 974
      StackMap locals: java.math.BigInteger int
      StackMap stack:
            iload 2 /* d */
            ifge 4
            iload 2 /* d */
            invokestatic java.lang.Math.abs:(I)I
            iconst_2
            iadd
            goto 5
      StackMap locals:
      StackMap stack:
         4: iload 2 /* d */
            iconst_2
            iadd
            ineg
      StackMap locals:
      StackMap stack: int
         5: istore 2 /* d */
         6: .line 972
      StackMap locals:
      StackMap stack:
            iload 2 /* d */
            aload 0 /* this */
            invokestatic java.math.BigInteger.jacobiSymbol:(ILjava/math/BigInteger;)I
            iconst_m1
            if_icmpne 3
         7: .line 978
            iload 2 /* d */
            aload 1 /* thisPlusOne */
            aload 0 /* this */
            invokestatic java.math.BigInteger.lucasLehmerSequence:(ILjava/math/BigInteger;Ljava/math/BigInteger;)Ljava/math/BigInteger;
            astore 3 /* u */
        start local 3 // java.math.BigInteger u
         8: .line 981
            aload 3 /* u */
            aload 0 /* this */
            invokevirtual java.math.BigInteger.mod:(Ljava/math/BigInteger;)Ljava/math/BigInteger;
            getstatic java.math.BigInteger.ZERO:Ljava/math/BigInteger;
            invokevirtual java.math.BigInteger.equals:(Ljava/lang/Object;)Z
            ireturn
        end local 3 // java.math.BigInteger u
        end local 2 // int d
        end local 1 // java.math.BigInteger thisPlusOne
        end local 0 // java.math.BigInteger this
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0    9     0         this  Ljava/math/BigInteger;
            1    9     1  thisPlusOne  Ljava/math/BigInteger;
            2    9     2            d  I
            8    9     3            u  Ljava/math/BigInteger;

  private static int jacobiSymbol(int, java.math.BigInteger);
    descriptor: (ILjava/math/BigInteger;)I
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=3, locals=5, args_size=2
        start local 0 // int p
        start local 1 // java.math.BigInteger n
         0: .line 989
            iload 0 /* p */
            ifne 2
         1: .line 990
            iconst_0
            ireturn
         2: .line 993
      StackMap locals:
      StackMap stack:
            iconst_1
            istore 2 /* j */
        start local 2 // int j
         3: .line 994
            aload 1 /* n */
            getfield java.math.BigInteger.mag:[I
            aload 1 /* n */
            getfield java.math.BigInteger.mag:[I
            arraylength
            iconst_1
            isub
            iaload
            istore 3 /* u */
        start local 3 // int u
         4: .line 997
            iload 0 /* p */
            ifge 11
         5: .line 998
            iload 0 /* p */
            ineg
            istore 0 /* p */
         6: .line 999
            iload 3 /* u */
            bipush 7
            iand
            istore 4 /* n8 */
        start local 4 // int n8
         7: .line 1000
            iload 4 /* n8 */
            iconst_3
            if_icmpeq 8
            iload 4 /* n8 */
            bipush 7
            if_icmpne 11
         8: .line 1001
      StackMap locals: int int int
      StackMap stack:
            iload 2 /* j */
            ineg
            istore 2 /* j */
        end local 4 // int n8
         9: .line 1005
            goto 11
        10: .line 1006
      StackMap locals:
      StackMap stack:
            iload 0 /* p */
            iconst_2
            ishr
            istore 0 /* p */
        11: .line 1005
      StackMap locals:
      StackMap stack:
            iload 0 /* p */
            iconst_3
            iand
            ifeq 10
        12: .line 1007
            iload 0 /* p */
            iconst_1
            iand
            ifne 16
        13: .line 1008
            iload 0 /* p */
            iconst_1
            ishr
            istore 0 /* p */
        14: .line 1009
            iload 3 /* u */
            iload 3 /* u */
            iconst_1
            ishr
            ixor
            iconst_2
            iand
            ifeq 16
        15: .line 1010
            iload 2 /* j */
            ineg
            istore 2 /* j */
        16: .line 1012
      StackMap locals:
      StackMap stack:
            iload 0 /* p */
            iconst_1
            if_icmpne 18
        17: .line 1013
            iload 2 /* j */
            ireturn
        18: .line 1015
      StackMap locals:
      StackMap stack:
            iload 0 /* p */
            iload 3 /* u */
            iand
            iconst_2
            iand
            ifeq 20
        19: .line 1016
            iload 2 /* j */
            ineg
            istore 2 /* j */
        20: .line 1018
      StackMap locals:
      StackMap stack:
            aload 1 /* n */
            iload 0 /* p */
            i2l
            invokestatic java.math.BigInteger.valueOf:(J)Ljava/math/BigInteger;
            invokevirtual java.math.BigInteger.mod:(Ljava/math/BigInteger;)Ljava/math/BigInteger;
            invokevirtual java.math.BigInteger.intValue:()I
            istore 3 /* u */
        21: .line 1021
            goto 36
        22: .line 1023
      StackMap locals:
      StackMap stack:
            iload 3 /* u */
            iconst_2
            ishr
            istore 3 /* u */
        23: .line 1022
      StackMap locals:
      StackMap stack:
            iload 3 /* u */
            iconst_3
            iand
            ifeq 22
        24: .line 1024
            iload 3 /* u */
            iconst_1
            iand
            ifne 28
        25: .line 1025
            iload 3 /* u */
            iconst_1
            ishr
            istore 3 /* u */
        26: .line 1026
            iload 0 /* p */
            iload 0 /* p */
            iconst_1
            ishr
            ixor
            iconst_2
            iand
            ifeq 28
        27: .line 1027
            iload 2 /* j */
            ineg
            istore 2 /* j */
        28: .line 1029
      StackMap locals:
      StackMap stack:
            iload 3 /* u */
            iconst_1
            if_icmpne 30
        29: .line 1030
            iload 2 /* j */
            ireturn
        30: .line 1032
      StackMap locals:
      StackMap stack:
            getstatic java.math.BigInteger.$assertionsDisabled:Z
            ifne 31
            iload 3 /* u */
            iload 0 /* p */
            if_icmplt 31
            new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
        31: .line 1033
      StackMap locals:
      StackMap stack:
            iload 3 /* u */
            istore 4 /* t */
        start local 4 // int t
        32: iload 0 /* p */
            istore 3 /* u */
            iload 4 /* t */
            istore 0 /* p */
        33: .line 1034
            iload 3 /* u */
            iload 0 /* p */
            iand
            iconst_2
            iand
            ifeq 35
        34: .line 1035
            iload 2 /* j */
            ineg
            istore 2 /* j */
        35: .line 1037
      StackMap locals: int
      StackMap stack:
            iload 3 /* u */
            iload 0 /* p */
            irem
            istore 3 /* u */
        end local 4 // int t
        36: .line 1021
      StackMap locals:
      StackMap stack:
            iload 3 /* u */
            ifne 23
        37: .line 1039
            iconst_0
            ireturn
        end local 3 // int u
        end local 2 // int j
        end local 1 // java.math.BigInteger n
        end local 0 // int p
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0   38     0     p  I
            0   38     1     n  Ljava/math/BigInteger;
            3   38     2     j  I
            4   38     3     u  I
            7    9     4    n8  I
           32   36     4     t  I
    MethodParameters:
      Name  Flags
      p     
      n     

  private static java.math.BigInteger lucasLehmerSequence(int, java.math.BigInteger, java.math.BigInteger);
    descriptor: (ILjava/math/BigInteger;Ljava/math/BigInteger;)Ljava/math/BigInteger;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=3, locals=9, args_size=3
        start local 0 // int z
        start local 1 // java.math.BigInteger k
        start local 2 // java.math.BigInteger n
         0: .line 1043
            iload 0 /* z */
            i2l
            invokestatic java.math.BigInteger.valueOf:(J)Ljava/math/BigInteger;
            astore 3 /* d */
        start local 3 // java.math.BigInteger d
         1: .line 1044
            getstatic java.math.BigInteger.ONE:Ljava/math/BigInteger;
            astore 4 /* u */
        start local 4 // java.math.BigInteger u
         2: .line 1045
            getstatic java.math.BigInteger.ONE:Ljava/math/BigInteger;
            astore 6 /* v */
        start local 6 // java.math.BigInteger v
         3: .line 1047
            aload 1 /* k */
            invokevirtual java.math.BigInteger.bitLength:()I
            iconst_2
            isub
            istore 8 /* i */
        start local 8 // int i
         4: goto 22
         5: .line 1048
      StackMap locals: int java.math.BigInteger java.math.BigInteger java.math.BigInteger java.math.BigInteger top java.math.BigInteger top int
      StackMap stack:
            aload 4 /* u */
            aload 6 /* v */
            invokevirtual java.math.BigInteger.multiply:(Ljava/math/BigInteger;)Ljava/math/BigInteger;
            aload 2 /* n */
            invokevirtual java.math.BigInteger.mod:(Ljava/math/BigInteger;)Ljava/math/BigInteger;
            astore 5 /* u2 */
        start local 5 // java.math.BigInteger u2
         6: .line 1050
            aload 6 /* v */
            invokevirtual java.math.BigInteger.square:()Ljava/math/BigInteger;
            aload 3 /* d */
            aload 4 /* u */
            invokevirtual java.math.BigInteger.square:()Ljava/math/BigInteger;
            invokevirtual java.math.BigInteger.multiply:(Ljava/math/BigInteger;)Ljava/math/BigInteger;
            invokevirtual java.math.BigInteger.add:(Ljava/math/BigInteger;)Ljava/math/BigInteger;
            aload 2 /* n */
            invokevirtual java.math.BigInteger.mod:(Ljava/math/BigInteger;)Ljava/math/BigInteger;
            astore 7 /* v2 */
        start local 7 // java.math.BigInteger v2
         7: .line 1051
            aload 7 /* v2 */
            iconst_0
            invokevirtual java.math.BigInteger.testBit:(I)Z
            ifeq 9
         8: .line 1052
            aload 7 /* v2 */
            aload 2 /* n */
            invokevirtual java.math.BigInteger.subtract:(Ljava/math/BigInteger;)Ljava/math/BigInteger;
            astore 7 /* v2 */
         9: .line 1054
      StackMap locals: int java.math.BigInteger java.math.BigInteger java.math.BigInteger java.math.BigInteger java.math.BigInteger java.math.BigInteger java.math.BigInteger int
      StackMap stack:
            aload 7 /* v2 */
            iconst_1
            invokevirtual java.math.BigInteger.shiftRight:(I)Ljava/math/BigInteger;
            astore 7 /* v2 */
        10: .line 1056
            aload 5 /* u2 */
            astore 4 /* u */
            aload 7 /* v2 */
            astore 6 /* v */
        11: .line 1057
            aload 1 /* k */
            iload 8 /* i */
            invokevirtual java.math.BigInteger.testBit:(I)Z
            ifeq 21
        12: .line 1058
            aload 4 /* u */
            aload 6 /* v */
            invokevirtual java.math.BigInteger.add:(Ljava/math/BigInteger;)Ljava/math/BigInteger;
            aload 2 /* n */
            invokevirtual java.math.BigInteger.mod:(Ljava/math/BigInteger;)Ljava/math/BigInteger;
            astore 5 /* u2 */
        13: .line 1059
            aload 5 /* u2 */
            iconst_0
            invokevirtual java.math.BigInteger.testBit:(I)Z
            ifeq 15
        14: .line 1060
            aload 5 /* u2 */
            aload 2 /* n */
            invokevirtual java.math.BigInteger.subtract:(Ljava/math/BigInteger;)Ljava/math/BigInteger;
            astore 5 /* u2 */
        15: .line 1062
      StackMap locals:
      StackMap stack:
            aload 5 /* u2 */
            iconst_1
            invokevirtual java.math.BigInteger.shiftRight:(I)Ljava/math/BigInteger;
            astore 5 /* u2 */
        16: .line 1063
            aload 6 /* v */
            aload 3 /* d */
            aload 4 /* u */
            invokevirtual java.math.BigInteger.multiply:(Ljava/math/BigInteger;)Ljava/math/BigInteger;
            invokevirtual java.math.BigInteger.add:(Ljava/math/BigInteger;)Ljava/math/BigInteger;
            aload 2 /* n */
            invokevirtual java.math.BigInteger.mod:(Ljava/math/BigInteger;)Ljava/math/BigInteger;
            astore 7 /* v2 */
        17: .line 1064
            aload 7 /* v2 */
            iconst_0
            invokevirtual java.math.BigInteger.testBit:(I)Z
            ifeq 19
        18: .line 1065
            aload 7 /* v2 */
            aload 2 /* n */
            invokevirtual java.math.BigInteger.subtract:(Ljava/math/BigInteger;)Ljava/math/BigInteger;
            astore 7 /* v2 */
        19: .line 1066
      StackMap locals:
      StackMap stack:
            aload 7 /* v2 */
            iconst_1
            invokevirtual java.math.BigInteger.shiftRight:(I)Ljava/math/BigInteger;
            astore 7 /* v2 */
        20: .line 1068
            aload 5 /* u2 */
            astore 4 /* u */
            aload 7 /* v2 */
            astore 6 /* v */
        21: .line 1047
      StackMap locals:
      StackMap stack:
            iinc 8 /* i */ -1
        end local 7 // java.math.BigInteger v2
        end local 5 // java.math.BigInteger u2
      StackMap locals: int java.math.BigInteger java.math.BigInteger java.math.BigInteger java.math.BigInteger top java.math.BigInteger top int
      StackMap stack:
        22: iload 8 /* i */
            ifge 5
        end local 8 // int i
        23: .line 1071
            aload 4 /* u */
            areturn
        end local 6 // java.math.BigInteger v
        end local 4 // java.math.BigInteger u
        end local 3 // java.math.BigInteger d
        end local 2 // java.math.BigInteger n
        end local 1 // java.math.BigInteger k
        end local 0 // int z
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0   24     0     z  I
            0   24     1     k  Ljava/math/BigInteger;
            0   24     2     n  Ljava/math/BigInteger;
            1   24     3     d  Ljava/math/BigInteger;
            2   24     4     u  Ljava/math/BigInteger;
            6   22     5    u2  Ljava/math/BigInteger;
            3   24     6     v  Ljava/math/BigInteger;
            7   22     7    v2  Ljava/math/BigInteger;
            4   23     8     i  I
    MethodParameters:
      Name  Flags
      z     
      k     
      n     

  private boolean passesMillerRabin(int, java.util.Random);
    descriptor: (ILjava/util/Random;)Z
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=4, locals=10, args_size=3
        start local 0 // java.math.BigInteger this
        start local 1 // int iterations
        start local 2 // java.util.Random rnd
         0: .line 1085
            aload 0 /* this */
            getstatic java.math.BigInteger.ONE:Ljava/math/BigInteger;
            invokevirtual java.math.BigInteger.subtract:(Ljava/math/BigInteger;)Ljava/math/BigInteger;
            astore 3 /* thisMinusOne */
        start local 3 // java.math.BigInteger thisMinusOne
         1: .line 1086
            aload 3 /* thisMinusOne */
            astore 4 /* m */
        start local 4 // java.math.BigInteger m
         2: .line 1087
            aload 4 /* m */
            invokevirtual java.math.BigInteger.getLowestSetBit:()I
            istore 5 /* a */
        start local 5 // int a
         3: .line 1088
            aload 4 /* m */
            iload 5 /* a */
            invokevirtual java.math.BigInteger.shiftRight:(I)Ljava/math/BigInteger;
            astore 4 /* m */
         4: .line 1091
            aload 2 /* rnd */
            ifnonnull 6
         5: .line 1092
            invokestatic java.util.concurrent.ThreadLocalRandom.current:()Ljava/util/concurrent/ThreadLocalRandom;
            astore 2 /* rnd */
         6: .line 1094
      StackMap locals: java.math.BigInteger java.math.BigInteger int
      StackMap stack:
            iconst_0
            istore 6 /* i */
        start local 6 // int i
         7: goto 21
         8: .line 1098
      StackMap locals: int
      StackMap stack:
            new java.math.BigInteger
            dup
            aload 0 /* this */
            invokevirtual java.math.BigInteger.bitLength:()I
            aload 2 /* rnd */
            invokespecial java.math.BigInteger.<init>:(ILjava/util/Random;)V
            astore 7 /* b */
        start local 7 // java.math.BigInteger b
         9: .line 1099
            aload 7 /* b */
            getstatic java.math.BigInteger.ONE:Ljava/math/BigInteger;
            invokevirtual java.math.BigInteger.compareTo:(Ljava/math/BigInteger;)I
            ifle 8
            aload 7 /* b */
            aload 0 /* this */
            invokevirtual java.math.BigInteger.compareTo:(Ljava/math/BigInteger;)I
        10: .line 1097
            ifge 8
        11: .line 1101
            iconst_0
            istore 8 /* j */
        start local 8 // int j
        12: .line 1102
            aload 7 /* b */
            aload 4 /* m */
            aload