public class java.math.BigDecimal extends java.lang.Number implements java.lang.Comparable<java.math.BigDecimal>
  minor version: 0
  major version: 59
  flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
  this_class: java.math.BigDecimal
  super_class: java.lang.Number
{
  private final java.math.BigInteger intVal;
    descriptor: Ljava/math/BigInteger;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private final int scale;
    descriptor: I
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private transient int precision;
    descriptor: I
    flags: (0x0082) ACC_PRIVATE, ACC_TRANSIENT

  private transient java.lang.String stringCache;
    descriptor: Ljava/lang/String;
    flags: (0x0082) ACC_PRIVATE, ACC_TRANSIENT

  static final long INFLATED;
    descriptor: J
    flags: (0x0018) ACC_STATIC, ACC_FINAL
    ConstantValue: -9223372036854775808

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

  private final transient long intCompact;
    descriptor: J
    flags: (0x0092) ACC_PRIVATE, ACC_FINAL, ACC_TRANSIENT

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

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

  private static final java.lang.ThreadLocal<java.math.BigDecimal$StringBuilderHelper> threadLocalStringBuilderHelper;
    descriptor: Ljava/lang/ThreadLocal;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    Signature: Ljava/lang/ThreadLocal<Ljava/math/BigDecimal$StringBuilderHelper;>;

  private static final java.math.BigDecimal[] zeroThroughTen;
    descriptor: [Ljava/math/BigDecimal;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL

  private static final java.math.BigDecimal[] ZERO_SCALED_BY;
    descriptor: [Ljava/math/BigDecimal;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL

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

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

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

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

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

  public static final int ROUND_UP;
    descriptor: I
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
    ConstantValue: 0

  public static final int ROUND_DOWN;
    descriptor: I
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
    ConstantValue: 1

  public static final int ROUND_CEILING;
    descriptor: I
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
    ConstantValue: 2

  public static final int ROUND_FLOOR;
    descriptor: I
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
    ConstantValue: 3

  public static final int ROUND_HALF_UP;
    descriptor: I
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
    ConstantValue: 4

  public static final int ROUND_HALF_DOWN;
    descriptor: I
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
    ConstantValue: 5

  public static final int ROUND_HALF_EVEN;
    descriptor: I
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
    ConstantValue: 6

  public static final int ROUND_UNNECESSARY;
    descriptor: I
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
    ConstantValue: 7

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

  private static final float[] float10pow;
    descriptor: [F
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL

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

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

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

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

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

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

  private static final long[][] LONGLONG_TEN_POWERS_TABLE;
    descriptor: [[J
    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=10, locals=0, args_size=0
         0: .line 220
            ldc Ljava/math/BigDecimal;
            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.BigDecimal.$assertionsDisabled:Z
         3: .line 261
            ldc -9223372036854775808
            invokestatic java.math.BigInteger.valueOf:(J)Ljava/math/BigInteger;
            putstatic java.math.BigDecimal.INFLATED_BIGINT:Ljava/math/BigInteger;
         4: .line 278
            new java.math.BigDecimal$1
            dup
            invokespecial java.math.BigDecimal$1.<init>:()V
            putstatic java.math.BigDecimal.threadLocalStringBuilderHelper:Ljava/lang/ThreadLocal;
         5: .line 286
            bipush 11
            anewarray java.math.BigDecimal
            dup
            iconst_0
         6: .line 287
            new java.math.BigDecimal
            dup
            getstatic java.math.BigInteger.ZERO:Ljava/math/BigInteger;
            lconst_0
            iconst_0
            iconst_1
            invokespecial java.math.BigDecimal.<init>:(Ljava/math/BigInteger;JII)V
            aastore
            dup
            iconst_1
         7: .line 288
            new java.math.BigDecimal
            dup
            getstatic java.math.BigInteger.ONE:Ljava/math/BigInteger;
            lconst_1
            iconst_0
            iconst_1
            invokespecial java.math.BigDecimal.<init>:(Ljava/math/BigInteger;JII)V
            aastore
            dup
            iconst_2
         8: .line 289
            new java.math.BigDecimal
            dup
            ldc 2
            invokestatic java.math.BigInteger.valueOf:(J)Ljava/math/BigInteger;
            ldc 2
            iconst_0
            iconst_1
            invokespecial java.math.BigDecimal.<init>:(Ljava/math/BigInteger;JII)V
            aastore
            dup
            iconst_3
         9: .line 290
            new java.math.BigDecimal
            dup
            ldc 3
            invokestatic java.math.BigInteger.valueOf:(J)Ljava/math/BigInteger;
            ldc 3
            iconst_0
            iconst_1
            invokespecial java.math.BigDecimal.<init>:(Ljava/math/BigInteger;JII)V
            aastore
            dup
            iconst_4
        10: .line 291
            new java.math.BigDecimal
            dup
            ldc 4
            invokestatic java.math.BigInteger.valueOf:(J)Ljava/math/BigInteger;
            ldc 4
            iconst_0
            iconst_1
            invokespecial java.math.BigDecimal.<init>:(Ljava/math/BigInteger;JII)V
            aastore
            dup
            iconst_5
        11: .line 292
            new java.math.BigDecimal
            dup
            ldc 5
            invokestatic java.math.BigInteger.valueOf:(J)Ljava/math/BigInteger;
            ldc 5
            iconst_0
            iconst_1
            invokespecial java.math.BigDecimal.<init>:(Ljava/math/BigInteger;JII)V
            aastore
            dup
            bipush 6
        12: .line 293
            new java.math.BigDecimal
            dup
            ldc 6
            invokestatic java.math.BigInteger.valueOf:(J)Ljava/math/BigInteger;
            ldc 6
            iconst_0
            iconst_1
            invokespecial java.math.BigDecimal.<init>:(Ljava/math/BigInteger;JII)V
            aastore
            dup
            bipush 7
        13: .line 294
            new java.math.BigDecimal
            dup
            ldc 7
            invokestatic java.math.BigInteger.valueOf:(J)Ljava/math/BigInteger;
            ldc 7
            iconst_0
            iconst_1
            invokespecial java.math.BigDecimal.<init>:(Ljava/math/BigInteger;JII)V
            aastore
            dup
            bipush 8
        14: .line 295
            new java.math.BigDecimal
            dup
            ldc 8
            invokestatic java.math.BigInteger.valueOf:(J)Ljava/math/BigInteger;
            ldc 8
            iconst_0
            iconst_1
            invokespecial java.math.BigDecimal.<init>:(Ljava/math/BigInteger;JII)V
            aastore
            dup
            bipush 9
        15: .line 296
            new java.math.BigDecimal
            dup
            ldc 9
            invokestatic java.math.BigInteger.valueOf:(J)Ljava/math/BigInteger;
            ldc 9
            iconst_0
            iconst_1
            invokespecial java.math.BigDecimal.<init>:(Ljava/math/BigInteger;JII)V
            aastore
            dup
            bipush 10
        16: .line 297
            new java.math.BigDecimal
            dup
            getstatic java.math.BigInteger.TEN:Ljava/math/BigInteger;
            ldc 10
            iconst_0
            iconst_2
            invokespecial java.math.BigDecimal.<init>:(Ljava/math/BigInteger;JII)V
            aastore
        17: .line 286
            putstatic java.math.BigDecimal.zeroThroughTen:[Ljava/math/BigDecimal;
        18: .line 301
            bipush 16
            anewarray java.math.BigDecimal
            dup
            iconst_0
        19: .line 302
            getstatic java.math.BigDecimal.zeroThroughTen:[Ljava/math/BigDecimal;
            iconst_0
            aaload
            aastore
            dup
            iconst_1
        20: .line 303
            new java.math.BigDecimal
            dup
            getstatic java.math.BigInteger.ZERO:Ljava/math/BigInteger;
            lconst_0
            iconst_1
            iconst_1
            invokespecial java.math.BigDecimal.<init>:(Ljava/math/BigInteger;JII)V
            aastore
            dup
            iconst_2
        21: .line 304
            new java.math.BigDecimal
            dup
            getstatic java.math.BigInteger.ZERO:Ljava/math/BigInteger;
            lconst_0
            iconst_2
            iconst_1
            invokespecial java.math.BigDecimal.<init>:(Ljava/math/BigInteger;JII)V
            aastore
            dup
            iconst_3
        22: .line 305
            new java.math.BigDecimal
            dup
            getstatic java.math.BigInteger.ZERO:Ljava/math/BigInteger;
            lconst_0
            iconst_3
            iconst_1
            invokespecial java.math.BigDecimal.<init>:(Ljava/math/BigInteger;JII)V
            aastore
            dup
            iconst_4
        23: .line 306
            new java.math.BigDecimal
            dup
            getstatic java.math.BigInteger.ZERO:Ljava/math/BigInteger;
            lconst_0
            iconst_4
            iconst_1
            invokespecial java.math.BigDecimal.<init>:(Ljava/math/BigInteger;JII)V
            aastore
            dup
            iconst_5
        24: .line 307
            new java.math.BigDecimal
            dup
            getstatic java.math.BigInteger.ZERO:Ljava/math/BigInteger;
            lconst_0
            iconst_5
            iconst_1
            invokespecial java.math.BigDecimal.<init>:(Ljava/math/BigInteger;JII)V
            aastore
            dup
            bipush 6
        25: .line 308
            new java.math.BigDecimal
            dup
            getstatic java.math.BigInteger.ZERO:Ljava/math/BigInteger;
            lconst_0
            bipush 6
            iconst_1
            invokespecial java.math.BigDecimal.<init>:(Ljava/math/BigInteger;JII)V
            aastore
            dup
            bipush 7
        26: .line 309
            new java.math.BigDecimal
            dup
            getstatic java.math.BigInteger.ZERO:Ljava/math/BigInteger;
            lconst_0
            bipush 7
            iconst_1
            invokespecial java.math.BigDecimal.<init>:(Ljava/math/BigInteger;JII)V
            aastore
            dup
            bipush 8
        27: .line 310
            new java.math.BigDecimal
            dup
            getstatic java.math.BigInteger.ZERO:Ljava/math/BigInteger;
            lconst_0
            bipush 8
            iconst_1
            invokespecial java.math.BigDecimal.<init>:(Ljava/math/BigInteger;JII)V
            aastore
            dup
            bipush 9
        28: .line 311
            new java.math.BigDecimal
            dup
            getstatic java.math.BigInteger.ZERO:Ljava/math/BigInteger;
            lconst_0
            bipush 9
            iconst_1
            invokespecial java.math.BigDecimal.<init>:(Ljava/math/BigInteger;JII)V
            aastore
            dup
            bipush 10
        29: .line 312
            new java.math.BigDecimal
            dup
            getstatic java.math.BigInteger.ZERO:Ljava/math/BigInteger;
            lconst_0
            bipush 10
            iconst_1
            invokespecial java.math.BigDecimal.<init>:(Ljava/math/BigInteger;JII)V
            aastore
            dup
            bipush 11
        30: .line 313
            new java.math.BigDecimal
            dup
            getstatic java.math.BigInteger.ZERO:Ljava/math/BigInteger;
            lconst_0
            bipush 11
            iconst_1
            invokespecial java.math.BigDecimal.<init>:(Ljava/math/BigInteger;JII)V
            aastore
            dup
            bipush 12
        31: .line 314
            new java.math.BigDecimal
            dup
            getstatic java.math.BigInteger.ZERO:Ljava/math/BigInteger;
            lconst_0
            bipush 12
            iconst_1
            invokespecial java.math.BigDecimal.<init>:(Ljava/math/BigInteger;JII)V
            aastore
            dup
            bipush 13
        32: .line 315
            new java.math.BigDecimal
            dup
            getstatic java.math.BigInteger.ZERO:Ljava/math/BigInteger;
            lconst_0
            bipush 13
            iconst_1
            invokespecial java.math.BigDecimal.<init>:(Ljava/math/BigInteger;JII)V
            aastore
            dup
            bipush 14
        33: .line 316
            new java.math.BigDecimal
            dup
            getstatic java.math.BigInteger.ZERO:Ljava/math/BigInteger;
            lconst_0
            bipush 14
            iconst_1
            invokespecial java.math.BigDecimal.<init>:(Ljava/math/BigInteger;JII)V
            aastore
            dup
            bipush 15
        34: .line 317
            new java.math.BigDecimal
            dup
            getstatic java.math.BigInteger.ZERO:Ljava/math/BigInteger;
            lconst_0
            bipush 15
            iconst_1
            invokespecial java.math.BigDecimal.<init>:(Ljava/math/BigInteger;JII)V
            aastore
        35: .line 301
            putstatic java.math.BigDecimal.ZERO_SCALED_BY:[Ljava/math/BigDecimal;
        36: .line 331
            getstatic java.math.BigDecimal.zeroThroughTen:[Ljava/math/BigDecimal;
            iconst_0
            aaload
        37: .line 330
            putstatic java.math.BigDecimal.ZERO:Ljava/math/BigDecimal;
        38: .line 339
            getstatic java.math.BigDecimal.zeroThroughTen:[Ljava/math/BigDecimal;
            iconst_1
            aaload
        39: .line 338
            putstatic java.math.BigDecimal.ONE:Ljava/math/BigDecimal;
        40: .line 347
            getstatic java.math.BigDecimal.zeroThroughTen:[Ljava/math/BigDecimal;
            bipush 10
            aaload
        41: .line 346
            putstatic java.math.BigDecimal.TEN:Ljava/math/BigDecimal;
        42: .line 3314
            bipush 23
            newarray 7
            dup
            iconst_0
        43: .line 3315
            dconst_1
            dastore
            dup
            iconst_1
            ldc 10.0
            dastore
            dup
            iconst_2
            ldc 100.0
            dastore
            dup
            iconst_3
            ldc 1000.0
            dastore
            dup
            iconst_4
            ldc 10000.0
            dastore
            dup
            iconst_5
            ldc 100000.0
            dastore
            dup
            bipush 6
        44: .line 3316
            ldc 1000000.0
            dastore
            dup
            bipush 7
            ldc 1.0E7
            dastore
            dup
            bipush 8
            ldc 1.0E8
            dastore
            dup
            bipush 9
            ldc 1.0E9
            dastore
            dup
            bipush 10
            ldc 1.0E10
            dastore
            dup
            bipush 11
            ldc 1.0E11
            dastore
            dup
            bipush 12
        45: .line 3317
            ldc 1.0E12
            dastore
            dup
            bipush 13
            ldc 1.0E13
            dastore
            dup
            bipush 14
            ldc 1.0E14
            dastore
            dup
            bipush 15
            ldc 1.0E15
            dastore
            dup
            bipush 16
            ldc 1.0E16
            dastore
            dup
            bipush 17
            ldc 1.0E17
            dastore
            dup
            bipush 18
        46: .line 3318
            ldc 1.0E18
            dastore
            dup
            bipush 19
            ldc 1.0E19
            dastore
            dup
            bipush 20
            ldc 1.0E20
            dastore
            dup
            bipush 21
            ldc 1.0E21
            dastore
            dup
            bipush 22
            ldc 1.0E22
            dastore
        47: .line 3314
            putstatic java.math.BigDecimal.double10pow:[D
        48: .line 3325
            bipush 11
            newarray 6
            dup
            iconst_0
        49: .line 3326
            fconst_1
            fastore
            dup
            iconst_1
            ldc 10.0
            fastore
            dup
            iconst_2
            ldc 100.0
            fastore
            dup
            iconst_3
            ldc 1000.0
            fastore
            dup
            iconst_4
            ldc 10000.0
            fastore
            dup
            iconst_5
            ldc 100000.0
            fastore
            dup
            bipush 6
        50: .line 3327
            ldc 1000000.0
            fastore
            dup
            bipush 7
            ldc 1.0E7
            fastore
            dup
            bipush 8
            ldc 1.0E8
            fastore
            dup
            bipush 9
            ldc 1.0E9
            fastore
            dup
            bipush 10
            ldc 1.0E10
            fastore
        51: .line 3325
            putstatic java.math.BigDecimal.float10pow:[F
        52: .line 3608
            bipush 19
            newarray 11
            dup
            iconst_0
        53: .line 3609
            lconst_1
            lastore
            dup
            iconst_1
        54: .line 3610
            ldc 10
            lastore
            dup
            iconst_2
        55: .line 3611
            ldc 100
            lastore
            dup
            iconst_3
        56: .line 3612
            ldc 1000
            lastore
            dup
            iconst_4
        57: .line 3613
            ldc 10000
            lastore
            dup
            iconst_5
        58: .line 3614
            ldc 100000
            lastore
            dup
            bipush 6
        59: .line 3615
            ldc 1000000
            lastore
            dup
            bipush 7
        60: .line 3616
            ldc 10000000
            lastore
            dup
            bipush 8
        61: .line 3617
            ldc 100000000
            lastore
            dup
            bipush 9
        62: .line 3618
            ldc 1000000000
            lastore
            dup
            bipush 10
        63: .line 3619
            ldc 10000000000
            lastore
            dup
            bipush 11
        64: .line 3620
            ldc 100000000000
            lastore
            dup
            bipush 12
        65: .line 3621
            ldc 1000000000000
            lastore
            dup
            bipush 13
        66: .line 3622
            ldc 10000000000000
            lastore
            dup
            bipush 14
        67: .line 3623
            ldc 100000000000000
            lastore
            dup
            bipush 15
        68: .line 3624
            ldc 1000000000000000
            lastore
            dup
            bipush 16
        69: .line 3625
            ldc 10000000000000000
            lastore
            dup
            bipush 17
        70: .line 3626
            ldc 100000000000000000
            lastore
            dup
            bipush 18
        71: .line 3627
            ldc 1000000000000000000
            lastore
        72: .line 3608
            putstatic java.math.BigDecimal.LONG_TEN_POWERS_TABLE:[J
        73: .line 3630
            bipush 19
            anewarray java.math.BigInteger
            dup
            iconst_0
        74: .line 3631
            getstatic java.math.BigInteger.ONE:Ljava/math/BigInteger;
            aastore
            dup
            iconst_1
        75: .line 3632
            ldc 10
            invokestatic java.math.BigInteger.valueOf:(J)Ljava/math/BigInteger;
            aastore
            dup
            iconst_2
        76: .line 3633
            ldc 100
            invokestatic java.math.BigInteger.valueOf:(J)Ljava/math/BigInteger;
            aastore
            dup
            iconst_3
        77: .line 3634
            ldc 1000
            invokestatic java.math.BigInteger.valueOf:(J)Ljava/math/BigInteger;
            aastore
            dup
            iconst_4
        78: .line 3635
            ldc 10000
            invokestatic java.math.BigInteger.valueOf:(J)Ljava/math/BigInteger;
            aastore
            dup
            iconst_5
        79: .line 3636
            ldc 100000
            invokestatic java.math.BigInteger.valueOf:(J)Ljava/math/BigInteger;
            aastore
            dup
            bipush 6
        80: .line 3637
            ldc 1000000
            invokestatic java.math.BigInteger.valueOf:(J)Ljava/math/BigInteger;
            aastore
            dup
            bipush 7
        81: .line 3638
            ldc 10000000
            invokestatic java.math.BigInteger.valueOf:(J)Ljava/math/BigInteger;
            aastore
            dup
            bipush 8
        82: .line 3639
            ldc 100000000
            invokestatic java.math.BigInteger.valueOf:(J)Ljava/math/BigInteger;
            aastore
            dup
            bipush 9
        83: .line 3640
            ldc 1000000000
            invokestatic java.math.BigInteger.valueOf:(J)Ljava/math/BigInteger;
            aastore
            dup
            bipush 10
        84: .line 3641
            ldc 10000000000
            invokestatic java.math.BigInteger.valueOf:(J)Ljava/math/BigInteger;
            aastore
            dup
            bipush 11
        85: .line 3642
            ldc 100000000000
            invokestatic java.math.BigInteger.valueOf:(J)Ljava/math/BigInteger;
            aastore
            dup
            bipush 12
        86: .line 3643
            ldc 1000000000000
            invokestatic java.math.BigInteger.valueOf:(J)Ljava/math/BigInteger;
            aastore
            dup
            bipush 13
        87: .line 3644
            ldc 10000000000000
            invokestatic java.math.BigInteger.valueOf:(J)Ljava/math/BigInteger;
            aastore
            dup
            bipush 14
        88: .line 3645
            ldc 100000000000000
            invokestatic java.math.BigInteger.valueOf:(J)Ljava/math/BigInteger;
            aastore
            dup
            bipush 15
        89: .line 3646
            ldc 1000000000000000
            invokestatic java.math.BigInteger.valueOf:(J)Ljava/math/BigInteger;
            aastore
            dup
            bipush 16
        90: .line 3647
            ldc 10000000000000000
            invokestatic java.math.BigInteger.valueOf:(J)Ljava/math/BigInteger;
            aastore
            dup
            bipush 17
        91: .line 3648
            ldc 100000000000000000
            invokestatic java.math.BigInteger.valueOf:(J)Ljava/math/BigInteger;
            aastore
            dup
            bipush 18
        92: .line 3649
            ldc 1000000000000000000
            invokestatic java.math.BigInteger.valueOf:(J)Ljava/math/BigInteger;
            aastore
        93: .line 3630
            putstatic java.math.BigDecimal.BIG_TEN_POWERS_TABLE:[Ljava/math/BigInteger;
        94: .line 3653
            getstatic java.math.BigDecimal.BIG_TEN_POWERS_TABLE:[Ljava/math/BigInteger;
            arraylength
        95: .line 3652
            putstatic java.math.BigDecimal.BIG_TEN_POWERS_TABLE_INITLEN:I
        96: .line 3655
            bipush 16
            getstatic java.math.BigDecimal.BIG_TEN_POWERS_TABLE_INITLEN:I
            imul
        97: .line 3654
            putstatic java.math.BigDecimal.BIG_TEN_POWERS_TABLE_MAX:I
        98: .line 3657
            bipush 19
            newarray 11
            dup
            iconst_0
        99: .line 3658
            ldc 9223372036854775807
            lastore
            dup
            iconst_1
       100: .line 3659
            ldc 922337203685477580
            lastore
            dup
            iconst_2
       101: .line 3660
            ldc 92233720368547758
            lastore
            dup
            iconst_3
       102: .line 3661
            ldc 9223372036854775
            lastore
            dup
            iconst_4
       103: .line 3662
            ldc 922337203685477
            lastore
            dup
            iconst_5
       104: .line 3663
            ldc 92233720368547
            lastore
            dup
            bipush 6
       105: .line 3664
            ldc 9223372036854
            lastore
            dup
            bipush 7
       106: .line 3665
            ldc 922337203685
            lastore
            dup
            bipush 8
       107: .line 3666
            ldc 92233720368
            lastore
            dup
            bipush 9
       108: .line 3667
            ldc 9223372036
            lastore
            dup
            bipush 10
       109: .line 3668
            ldc 922337203
            lastore
            dup
            bipush 11
       110: .line 3669
            ldc 92233720
            lastore
            dup
            bipush 12
       111: .line 3670
            ldc 9223372
            lastore
            dup
            bipush 13
       112: .line 3671
            ldc 922337
            lastore
            dup
            bipush 14
       113: .line 3672
            ldc 92233
            lastore
            dup
            bipush 15
       114: .line 3673
            ldc 9223
            lastore
            dup
            bipush 16
       115: .line 3674
            ldc 922
            lastore
            dup
            bipush 17
       116: .line 3675
            ldc 92
            lastore
            dup
            bipush 18
       117: .line 3676
            ldc 9
            lastore
       118: .line 3657
            putstatic java.math.BigDecimal.THRESHOLDS_TABLE:[J
       119: .line 5156
            bipush 20
            anewarray long[]
            dup
            iconst_0
       120: .line 5157
            iconst_2
            newarray 11
            dup
            iconst_1
            ldc -8446744073709551616
            lastore
            aastore
            dup
            iconst_1
       121: .line 5158
            iconst_2
            newarray 11
            dup
            iconst_0
            ldc 5
            lastore
            dup
            iconst_1
            ldc 7766279631452241920
            lastore
            aastore
            dup
            iconst_2
       122: .line 5159
            iconst_2
            newarray 11
            dup
            iconst_0
            ldc 54
            lastore
            dup
            iconst_1
            ldc 3875820019684212736
            lastore
            aastore
            dup
            iconst_3
       123: .line 5160
            iconst_2
            newarray 11
            dup
            iconst_0
            ldc 542
            lastore
            dup
            iconst_1
            ldc 1864712049423024128
            lastore
            aastore
            dup
            iconst_4
       124: .line 5161
            iconst_2
            newarray 11
            dup
            iconst_0
            ldc 5421
            lastore
            dup
            iconst_1
            ldc 200376420520689664
            lastore
            aastore
            dup
            iconst_5
       125: .line 5162
            iconst_2
            newarray 11
            dup
            iconst_0
            ldc 54210
            lastore
            dup
            iconst_1
            ldc 2003764205206896640
            lastore
            aastore
            dup
            bipush 6
       126: .line 5163
            iconst_2
            newarray 11
            dup
            iconst_0
            ldc 542101
            lastore
            dup
            iconst_1
            ldc 1590897978359414784
            lastore
            aastore
            dup
            bipush 7
       127: .line 5164
            iconst_2
            newarray 11
            dup
            iconst_0
            ldc 5421010
            lastore
            dup
            iconst_1
            ldc -2537764290115403776
            lastore
            aastore
            dup
            bipush 8
       128: .line 5165
            iconst_2
            newarray 11
            dup
            iconst_0
            ldc 54210108
            lastore
            dup
            iconst_1
            ldc -6930898827444486144
            lastore
            aastore
            dup
            bipush 9
       129: .line 5166
            iconst_2
            newarray 11
            dup
            iconst_0
            ldc 542101086
            lastore
            dup
            iconst_1
            ldc 4477988020393345024
            lastore
            aastore
            dup
            bipush 10
       130: .line 5167
            iconst_2
            newarray 11
            dup
            iconst_0
            ldc 5421010862
            lastore
            dup
            iconst_1
            ldc 7886392056514347008
            lastore
            aastore
            dup
            bipush 11
       131: .line 5168
            iconst_2
            newarray 11
            dup
            iconst_0
            ldc 54210108624
            lastore
            dup
            iconst_1
            ldc 5076944270305263616
            lastore
            aastore
            dup
            bipush 12
       132: .line 5169
            iconst_2
            newarray 11
            dup
            iconst_0
            ldc 542101086242
            lastore
            dup
            iconst_1
            ldc -4570789518076018688
            lastore
            aastore
            dup
            bipush 13
       133: .line 5170
            iconst_2
            newarray 11
            dup
            iconst_0
            ldc 5421010862427
            lastore
            dup
            iconst_1
            ldc -8814407033341083648
            lastore
            aastore
            dup
            bipush 14
       134: .line 5171
            iconst_2
            newarray 11
            dup
            iconst_0
            ldc 54210108624275
            lastore
            dup
            iconst_1
            ldc 4089650035136921600
            lastore
            aastore
            dup
            bipush 15
       135: .line 5172
            iconst_2
            newarray 11
            dup
            iconst_0
            ldc 542101086242752
            lastore
            dup
            iconst_1
            ldc 4003012203950112768
            lastore
            aastore
            dup
            bipush 16
       136: .line 5173
            iconst_2
            newarray 11
            dup
            iconst_0
            ldc 5421010862427522
            lastore
            dup
            iconst_1
            ldc 3136633892082024448
            lastore
            aastore
            dup
            bipush 17
       137: .line 5174
            iconst_2
            newarray 11
            dup
            iconst_0
            ldc 54210108624275221
            lastore
            dup
            iconst_1
            ldc -5527149226598858752
            lastore
            aastore
            dup
            bipush 18
       138: .line 5175
            iconst_2
            newarray 11
            dup
            iconst_0
            ldc 542101086242752217
            lastore
            dup
            iconst_1
            ldc 68739955140067328
            lastore
            aastore
            dup
            bipush 19
       139: .line 5176
            iconst_2
            newarray 11
            dup
            iconst_0
            ldc 5421010862427522170
            lastore
            dup
            iconst_1
            ldc 687399551400673280
            lastore
            aastore
       140: .line 5156
            putstatic java.math.BigDecimal.LONGLONG_TEN_POWERS_TABLE:[[J
       141: .line 5177
            return
      LocalVariableTable:
        Start  End  Slot  Name  Signature

  void <init>(java.math.BigInteger, long, int, int);
    descriptor: (Ljava/math/BigInteger;JII)V
    flags: (0x0000) 
    Code:
      stack=3, locals=6, args_size=5
        start local 0 // java.math.BigDecimal this
        start local 1 // java.math.BigInteger intVal
        start local 2 // long val
        start local 4 // int scale
        start local 5 // int prec
         0: .line 356
            aload 0 /* this */
            invokespecial java.lang.Number.<init>:()V
         1: .line 357
            aload 0 /* this */
            iload 4 /* scale */
            putfield java.math.BigDecimal.scale:I
         2: .line 358
            aload 0 /* this */
            iload 5 /* prec */
            putfield java.math.BigDecimal.precision:I
         3: .line 359
            aload 0 /* this */
            lload 2 /* val */
            putfield java.math.BigDecimal.intCompact:J
         4: .line 360
            aload 0 /* this */
            aload 1 /* intVal */
            putfield java.math.BigDecimal.intVal:Ljava/math/BigInteger;
         5: .line 361
            return
        end local 5 // int prec
        end local 4 // int scale
        end local 2 // long val
        end local 1 // java.math.BigInteger intVal
        end local 0 // java.math.BigDecimal this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    6     0    this  Ljava/math/BigDecimal;
            0    6     1  intVal  Ljava/math/BigInteger;
            0    6     2     val  J
            0    6     4   scale  I
            0    6     5    prec  I
    MethodParameters:
        Name  Flags
      intVal  
      val     
      scale   
      prec    

  public void <init>(char[], int, int);
    descriptor: ([CII)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=4, args_size=4
        start local 0 // java.math.BigDecimal this
        start local 1 // char[] in
        start local 2 // int offset
        start local 3 // int len
         0: .line 383
            aload 0 /* this */
            aload 1 /* in */
            iload 2 /* offset */
            iload 3 /* len */
            getstatic java.math.MathContext.UNLIMITED:Ljava/math/MathContext;
            invokespecial java.math.BigDecimal.<init>:([CIILjava/math/MathContext;)V
         1: .line 384
            return
        end local 3 // int len
        end local 2 // int offset
        end local 1 // char[] in
        end local 0 // java.math.BigDecimal this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    2     0    this  Ljava/math/BigDecimal;
            0    2     1      in  [C
            0    2     2  offset  I
            0    2     3     len  I
    MethodParameters:
        Name  Flags
      in      
      offset  
      len     

  public void <init>(char[], int, int, java.math.MathContext);
    descriptor: ([CIILjava/math/MathContext;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=20, args_size=5
        start local 0 // java.math.BigDecimal this
        start local 1 // char[] in
        start local 2 // int offset
        start local 3 // int len
        start local 4 // java.math.MathContext mc
         0: .line 409
            aload 0 /* this */
            invokespecial java.lang.Number.<init>:()V
         1: .line 411
            aload 1 /* in */
            arraylength
            iload 3 /* len */
            ior
            iload 2 /* offset */
            ior
            iflt 2
            iload 3 /* len */
            aload 1 /* in */
            arraylength
            iload 2 /* offset */
            isub
            if_icmple 5
         2: .line 412
      StackMap locals: java.math.BigDecimal char[] int int java.math.MathContext
      StackMap stack:
            new java.lang.NumberFormatException
            dup
         3: .line 413
            ldc "Bad offset or len arguments for char[] input."
         4: .line 412
            invokespecial java.lang.NumberFormatException.<init>:(Ljava/lang/String;)V
            athrow
         5: .line 422
      StackMap locals:
      StackMap stack:
            iconst_0
            istore 5 /* prec */
        start local 5 // int prec
         6: .line 423
            iconst_0
            istore 6 /* scl */
        start local 6 // int scl
         7: .line 424
            lconst_0
            lstore 7 /* rs */
        start local 7 // long rs
         8: .line 425
            aconst_null
            astore 9 /* rb */
        start local 9 // java.math.BigInteger rb
         9: .line 430
            iconst_0
            istore 10 /* isneg */
        start local 10 // boolean isneg
        10: .line 431
            aload 1 /* in */
            iload 2 /* offset */
            caload
            bipush 45
            if_icmpne 15
        11: .line 432
            iconst_1
            istore 10 /* isneg */
        12: .line 433
            iinc 2 /* offset */ 1
        13: .line 434
            iinc 3 /* len */ -1
        14: .line 435
            goto 18
      StackMap locals: java.math.BigDecimal char[] int int java.math.MathContext int int long java.math.BigInteger int
      StackMap stack:
        15: aload 1 /* in */
            iload 2 /* offset */
            caload
            bipush 43
            if_icmpne 18
        16: .line 436
            iinc 2 /* offset */ 1
        17: .line 437
            iinc 3 /* len */ -1
        18: .line 441
      StackMap locals:
      StackMap stack:
            iconst_0
            istore 11 /* dot */
        start local 11 // boolean dot
        19: .line 442
            lconst_0
            lstore 12 /* exp */
        start local 12 // long exp
        20: .line 444
            iload 3 /* len */
            bipush 18
            if_icmpgt 21
            iconst_1
            goto 22
      StackMap locals: int long
      StackMap stack:
        21: iconst_0
      StackMap locals:
      StackMap stack: int
        22: istore 15 /* isCompact */
        start local 15 // boolean isCompact
        23: .line 447
            iconst_0
            istore 16 /* idx */
        start local 16 // int idx
        24: .line 448
            iload 15 /* isCompact */
            ifeq 88
        25: .line 451
            goto 70
        26: .line 452
      StackMap locals: java.math.BigDecimal char[] int int java.math.MathContext int int long java.math.BigInteger int int long top int int
      StackMap stack:
            aload 1 /* in */
            iload 2 /* offset */
            caload
            istore 14 /* c */
        start local 14 // char c
        27: .line 453
            iload 14 /* c */
            bipush 48
            if_icmpne 36
        28: .line 454
            iload 5 /* prec */
            ifne 30
        29: .line 455
            iconst_1
            istore 5 /* prec */
            goto 33
        30: .line 456
      StackMap locals: java.math.BigDecimal char[] int int java.math.MathContext int int long java.math.BigInteger int int long int int int
      StackMap stack:
            lload 7 /* rs */
            lconst_0
            lcmp
            ifeq 33
        31: .line 457
            lload 7 /* rs */
            ldc 10
            lmul
            lstore 7 /* rs */
        32: .line 458
            iinc 5 /* prec */ 1
        33: .line 460
      StackMap locals:
      StackMap stack:
            iload 11 /* dot */
            ifeq 69
        34: .line 461
            iinc 6 /* scl */ 1
        35: .line 462
            goto 69
      StackMap locals:
      StackMap stack:
        36: iload 14 /* c */
            bipush 49
            if_icmplt 44
            iload 14 /* c */
            bipush 57
            if_icmpgt 44
        37: .line 463
            iload 14 /* c */
            bipush 48
            isub
            istore 17 /* digit */
        start local 17 // int digit
        38: .line 464
            iload 5 /* prec */
            iconst_1
            if_icmpne 39
            lload 7 /* rs */
            lconst_0
            lcmp
            ifeq 40
        39: .line 465
      StackMap locals: int
      StackMap stack:
            iinc 5 /* prec */ 1
        40: .line 466
      StackMap locals:
      StackMap stack:
            lload 7 /* rs */
            ldc 10
            lmul
            iload 17 /* digit */
            i2l
            ladd
            lstore 7 /* rs */
        41: .line 467
            iload 11 /* dot */
            ifeq 69
        42: .line 468
            iinc 6 /* scl */ 1
        end local 17 // int digit
        43: .line 469
            goto 69
      StackMap locals:
      StackMap stack:
        44: iload 14 /* c */
            bipush 46
            if_icmpne 49
        45: .line 471
            iload 11 /* dot */
            ifeq 47
        46: .line 472
            new java.lang.NumberFormatException
            dup
            invokespecial java.lang.NumberFormatException.<init>:()V
            athrow
        47: .line 473
      StackMap locals:
      StackMap stack:
            iconst_1
            istore 11 /* dot */
        48: .line 474
            goto 69
      StackMap locals:
      StackMap stack:
        49: iload 14 /* c */
            invokestatic java.lang.Character.isDigit:(C)Z
            ifeq 64
        50: .line 475
            iload 14 /* c */
            bipush 10
            invokestatic java.lang.Character.digit:(CI)I
            istore 17 /* digit */
        start local 17 // int digit
        51: .line 476
            iload 17 /* digit */
            ifne 58
        52: .line 477
            iload 5 /* prec */
            ifne 54
        53: .line 478
            iconst_1
            istore 5 /* prec */
            goto 61
        54: .line 479
      StackMap locals: int
      StackMap stack:
            lload 7 /* rs */
            lconst_0
            lcmp
            ifeq 61
        55: .line 480
            lload 7 /* rs */
            ldc 10
            lmul
            lstore 7 /* rs */
        56: .line 481
            iinc 5 /* prec */ 1
        57: .line 483
            goto 61
        58: .line 484
      StackMap locals:
      StackMap stack:
            iload 5 /* prec */
            iconst_1
            if_icmpne 59
            lload 7 /* rs */
            lconst_0
            lcmp
            ifeq 60
        59: .line 485
      StackMap locals:
      StackMap stack:
            iinc 5 /* prec */ 1
        60: .line 486
      StackMap locals:
      StackMap stack:
            lload 7 /* rs */
            ldc 10
            lmul
            iload 17 /* digit */
            i2l
            ladd
            lstore 7 /* rs */
        61: .line 488
      StackMap locals:
      StackMap stack:
            iload 11 /* dot */
            ifeq 69
        62: .line 489
            iinc 6 /* scl */ 1
        end local 17 // int digit
        63: .line 490
            goto 69
      StackMap locals:
      StackMap stack:
        64: iload 14 /* c */
            bipush 101
            if_icmpeq 65
            iload 14 /* c */
            bipush 69
            if_icmpne 68
        65: .line 491
      StackMap locals:
      StackMap stack:
            aload 1 /* in */
            iload 2 /* offset */
            iload 3 /* len */
            invokestatic java.math.BigDecimal.parseExp:([CII)J
            lstore 12 /* exp */
        66: .line 493
            lload 12 /* exp */
            l2i
            i2l
            lload 12 /* exp */
            lcmp
            ifeq 71
        67: .line 494
            new java.lang.NumberFormatException
            dup
            invokespecial java.lang.NumberFormatException.<init>:()V
            athrow
        68: .line 497
      StackMap locals:
      StackMap stack:
            new java.lang.NumberFormatException
            dup
            invokespecial java.lang.NumberFormatException.<init>:()V
            athrow
        69: .line 451
      StackMap locals:
      StackMap stack:
            iinc 2 /* offset */ 1
            iinc 3 /* len */ -1
        end local 14 // char c
      StackMap locals: java.math.BigDecimal char[] int int java.math.MathContext int int long java.math.BigInteger int int long top int int
      StackMap stack:
        70: iload 3 /* len */
            ifgt 26
        71: .line 500
      StackMap locals:
      StackMap stack:
            iload 5 /* prec */
            ifne 73
        72: .line 501
            new java.lang.NumberFormatException
            dup
            invokespecial java.lang.NumberFormatException.<init>:()V
            athrow
        73: .line 503
      StackMap locals:
      StackMap stack:
            lload 12 /* exp */
            lconst_0
            lcmp
            ifeq 75
        74: .line 504
            aload 0 /* this */
            iload 6 /* scl */
            lload 12 /* exp */
            invokevirtual java.math.BigDecimal.adjustScale:(IJ)I
            istore 6 /* scl */
        75: .line 506
      StackMap locals:
      StackMap stack:
            iload 10 /* isneg */
            ifeq 76
            lload 7 /* rs */
            lneg
            goto 77
      StackMap locals:
      StackMap stack:
        76: lload 7 /* rs */
      StackMap locals:
      StackMap stack: long
        77: lstore 7 /* rs */
        78: .line 507
            aload 4 /* mc */
            getfield java.math.MathContext.precision:I
            istore 17 /* mcp */
        start local 17 // int mcp
        79: .line 508
            iload 5 /* prec */
            iload 17 /* mcp */
            isub
            istore 18 /* drop */
        start local 18 // int drop
        80: .line 510
            iload 17 /* mcp */
            ifle 156
            iload 18 /* drop */
            ifle 156
        81: .line 511
            goto 86
        82: .line 512
      StackMap locals: int int
      StackMap stack:
            iload 6 /* scl */
            i2l
            iload 18 /* drop */
            i2l
            lsub
            invokestatic java.math.BigDecimal.checkScaleNonZero:(J)I
            istore 6 /* scl */
        83: .line 513
            lload 7 /* rs */
            getstatic java.math.BigDecimal.LONG_TEN_POWERS_TABLE:[J
            iload 18 /* drop */
            laload
            aload 4 /* mc */
            getfield java.math.MathContext.roundingMode:Ljava/math/RoundingMode;
            getfield java.math.RoundingMode.oldMode:I
            invokestatic java.math.BigDecimal.divideAndRound:(JJI)J
            lstore 7 /* rs */
        84: .line 514
            lload 7 /* rs */
            invokestatic java.math.BigDecimal.longDigitLength:(J)I
            istore 5 /* prec */
        85: .line 515
            iload 5 /* prec */
            iload 17 /* mcp */
            isub
            istore 18 /* drop */
        86: .line 511
      StackMap locals:
      StackMap stack:
            iload 18 /* drop */
            ifgt 82
        end local 18 // int drop
        end local 17 // int mcp
        87: .line 518
            goto 156
        88: .line 519
      StackMap locals:
      StackMap stack:
            iload 3 /* len */
            newarray 5
            astore 17 /* coeff */
        start local 17 // char[] coeff
        89: .line 520
            goto 119
        90: .line 521
      StackMap locals: char[]
      StackMap stack:
            aload 1 /* in */
            iload 2 /* offset */
            caload
            istore 14 /* c */
        start local 14 // char c
        91: .line 523
            iload 14 /* c */
            bipush 48
            if_icmplt 92
            iload 14 /* c */
            bipush 57
            if_icmple 93
      StackMap locals: java.math.BigDecimal char[] int int java.math.MathContext int int long java.math.BigInteger int int long int int int char[]
      StackMap stack:
        92: iload 14 /* c */
            invokestatic java.lang.Character.isDigit:(C)Z
            ifeq 108
        93: .line 526
      StackMap locals:
      StackMap stack:
            iload 14 /* c */
            bipush 48
            if_icmpeq 94
            iload 14 /* c */
            bipush 10
            invokestatic java.lang.Character.digit:(CI)I
            ifne 102
        94: .line 527
      StackMap locals:
      StackMap stack:
            iload 5 /* prec */
            ifne 98
        95: .line 528
            aload 17 /* coeff */
            iload 16 /* idx */
            iload 14 /* c */
            castore
        96: .line 529
            iconst_1
            istore 5 /* prec */
        97: .line 530
            goto 105
      StackMap locals:
      StackMap stack:
        98: iload 16 /* idx */
            ifeq 105
        99: .line 531
            aload 17 /* coeff */
            iload 16 /* idx */
            iinc 16 /* idx */ 1
            iload 14 /* c */
            castore
       100: .line 532
            iinc 5 /* prec */ 1
       101: .line 534
            goto 105
       102: .line 535
      StackMap locals:
      StackMap stack:
            iload 5 /* prec */
            iconst_1
            if_icmpne 103
            iload 16 /* idx */
            ifeq 104
       103: .line 536
      StackMap locals:
      StackMap stack:
            iinc 5 /* prec */ 1
       104: .line 537
      StackMap locals:
      StackMap stack:
            aload 17 /* coeff */
            iload 16 /* idx */
            iinc 16 /* idx */ 1
            iload 14 /* c */
            castore
       105: .line 539
      StackMap locals:
      StackMap stack:
            iload 11 /* dot */
            ifeq 118
       106: .line 540
            iinc 6 /* scl */ 1
       107: .line 541
            goto 118
       108: .line 544
      StackMap locals:
      StackMap stack:
            iload 14 /* c */
            bipush 46
            if_icmpne 113
       109: .line 546
            iload 11 /* dot */
            ifeq 111
       110: .line 547
            new java.lang.NumberFormatException
            dup
            invokespecial java.lang.NumberFormatException.<init>:()V
            athrow
       111: .line 548
      StackMap locals:
      StackMap stack:
            iconst_1
            istore 11 /* dot */
       112: .line 549
            goto 118
       113: .line 552
      StackMap locals:
      StackMap stack:
            iload 14 /* c */
            bipush 101
            if_icmpeq 115
            iload 14 /* c */
            bipush 69
            if_icmpeq 115
       114: .line 553
            new java.lang.NumberFormatException
            dup
            invokespecial java.lang.NumberFormatException.<init>:()V
            athrow
       115: .line 554
      StackMap locals:
      StackMap stack:
            aload 1 /* in */
            iload 2 /* offset */
            iload 3 /* len */
            invokestatic java.math.BigDecimal.parseExp:([CII)J
            lstore 12 /* exp */
       116: .line 556
            lload 12 /* exp */
            l2i
            i2l
            lload 12 /* exp */
            lcmp
            ifeq 120
       117: .line 557
            new java.lang.NumberFormatException
            dup
            invokespecial java.lang.NumberFormatException.<init>:()V
            athrow
       118: .line 520
      StackMap locals:
      StackMap stack:
            iinc 2 /* offset */ 1
            iinc 3 /* len */ -1
        end local 14 // char c
      StackMap locals: java.math.BigDecimal char[] int int java.math.MathContext int int long java.math.BigInteger int int long top int int char[]
      StackMap stack:
       119: iload 3 /* len */
            ifgt 90
       120: .line 561
      StackMap locals:
      StackMap stack:
            iload 5 /* prec */
            ifne 122
       121: .line 562
            new java.lang.NumberFormatException
            dup
            invokespecial java.lang.NumberFormatException.<init>:()V
            athrow
       122: .line 564
      StackMap locals:
      StackMap stack:
            lload 12 /* exp */
            lconst_0
            lcmp
            ifeq 124
       123: .line 565
            aload 0 /* this */
            iload 6 /* scl */
            lload 12 /* exp */
            invokevirtual java.math.BigDecimal.adjustScale:(IJ)I
            istore 6 /* scl */
       124: .line 568
      StackMap locals:
      StackMap stack:
            new java.math.BigInteger
            dup
            aload 17 /* coeff */
            iload 10 /* isneg */
            ifeq 125
            iconst_m1
            goto 126
      StackMap locals: java.math.BigDecimal char[] int int java.math.MathContext int int long java.math.BigInteger int int long top int int char[]
      StackMap stack: new 124 new 124 char[]
       125: iconst_1
      StackMap locals: java.math.BigDecimal char[] int int java.math.MathContext int int long java.math.BigInteger int int long top int int char[]
      StackMap stack: new 124 new 124 char[] int
       126: iload 5 /* prec */
            invokespecial java.math.BigInteger.<init>:([CII)V
            astore 9 /* rb */
       127: .line 569
            aload 9 /* rb */
            invokestatic java.math.BigDecimal.compactValFor:(Ljava/math/BigInteger;)J
            lstore 7 /* rs */
       128: .line 570
            aload 4 /* mc */
            getfield java.math.MathContext.precision:I
            istore 18 /* mcp */
        start local 18 // int mcp
       129: .line 571
            iload 18 /* mcp */
            ifle 156
            iload 5 /* prec */
            iload 18 /* mcp */
            if_icmple 156
       130: .line 572
            lload 7 /* rs */
            ldc -9223372036854775808
            lcmp
            ifne 142
       131: .line 573
            iload 5 /* prec */
            iload 18 /* mcp */
            isub
            istore 19 /* drop */
        start local 19 // int drop
       132: .line 574
            goto 141
       133: .line 575
      StackMap locals: int int
      StackMap stack:
            iload 6 /* scl */
            i2l
            iload 19 /* drop */
            i2l
            lsub
            invokestatic java.math.BigDecimal.checkScaleNonZero:(J)I
            istore 6 /* scl */
       134: .line 576
            aload 9 /* rb */
            iload 19 /* drop */
            aload 4 /* mc */
            getfield java.math.MathContext.roundingMode:Ljava/math/RoundingMode;
            getfield java.math.RoundingMode.oldMode:I
            invokestatic java.math.BigDecimal.divideAndRoundByTenPow:(Ljava/math/BigInteger;II)Ljava/math/BigInteger;
            astore 9 /* rb */
       135: .line 577
            aload 9 /* rb */
            invokestatic java.math.BigDecimal.compactValFor:(Ljava/math/BigInteger;)J
            lstore 7 /* rs */
       136: .line 578
            lload 7 /* rs */
            ldc -9223372036854775808
            lcmp
            ifeq 139
       137: .line 579
            lload 7 /* rs */
            invokestatic java.math.BigDecimal.longDigitLength:(J)I
            istore 5 /* prec */
       138: .line 580
            goto 142
       139: .line 582
      StackMap locals:
      StackMap stack:
            aload 9 /* rb */
            invokestatic java.math.BigDecimal.bigDigitLength:(Ljava/math/BigInteger;)I
            istore 5 /* prec */
       140: .line 583
            iload 5 /* prec */
            iload 18 /* mcp */
            isub
            istore 19 /* drop */
       141: .line 574
      StackMap locals:
      StackMap stack:
            iload 19 /* drop */
            ifgt 133
        end local 19 // int drop
       142: .line 586
      StackMap locals:
      StackMap stack:
            lload 7 /* rs */
            ldc -9223372036854775808
            lcmp
            ifeq 156
       143: .line 587
            iload 5 /* prec */
            iload 18 /* mcp */
            isub
            istore 19 /* drop */
        start local 19 // int drop
       144: .line 588
            goto 149
       145: .line 589
      StackMap locals: int
      StackMap stack:
            iload 6 /* scl */
            i2l
            iload 19 /* drop */
            i2l
            lsub
            invokestatic java.math.BigDecimal.checkScaleNonZero:(J)I
            istore 6 /* scl */
       146: .line 590
            lload 7 /* rs */
            getstatic java.math.BigDecimal.LONG_TEN_POWERS_TABLE:[J
            iload 19 /* drop */
            laload
            aload 4 /* mc */
            getfield java.math.MathContext.roundingMode:Ljava/math/RoundingMode;
            getfield java.math.RoundingMode.oldMode:I
            invokestatic java.math.BigDecimal.divideAndRound:(JJI)J
            lstore 7 /* rs */
       147: .line 591
            lload 7 /* rs */
            invokestatic java.math.BigDecimal.longDigitLength:(J)I
            istore 5 /* prec */
       148: .line 592
            iload 5 /* prec */
            iload 18 /* mcp */
            isub
            istore 19 /* drop */
       149: .line 588
      StackMap locals:
      StackMap stack:
            iload 19 /* drop */
            ifgt 145
       150: .line 594
            aconst_null
            astore 9 /* rb */
        end local 19 // int drop
        end local 18 // int mcp
        end local 17 // char[] coeff
        end local 16 // int idx
        end local 15 // boolean isCompact
        end local 12 // long exp
        end local 11 // boolean dot
        end local 10 // boolean isneg
       151: .line 598
            goto 156
      StackMap locals: java.math.BigDecimal char[] int int java.math.MathContext int int long java.math.BigInteger
      StackMap stack: java.lang.ArrayIndexOutOfBoundsException
       152: pop
       153: .line 599
            new java.lang.NumberFormatException
            dup
            invokespecial java.lang.NumberFormatException.<init>:()V
            athrow
       154: .line 600
      StackMap locals:
      StackMap stack: java.lang.NegativeArraySizeException
            pop
       155: .line 601
            new java.lang.NumberFormatException
            dup
            invokespecial java.lang.NumberFormatException.<init>:()V
            athrow
       156: .line 603
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            iload 6 /* scl */
            putfield java.math.BigDecimal.scale:I
       157: .line 604
            aload 0 /* this */
            iload 5 /* prec */
            putfield java.math.BigDecimal.precision:I
       158: .line 605
            aload 0 /* this */
            lload 7 /* rs */
            putfield java.math.BigDecimal.intCompact:J
       159: .line 606
            aload 0 /* this */
            aload 9 /* rb */
            putfield java.math.BigDecimal.intVal:Ljava/math/BigInteger;
       160: .line 607
            return
        end local 9 // java.math.BigInteger rb
        end local 7 // long rs
        end local 6 // int scl
        end local 5 // int prec
        end local 4 // java.math.MathContext mc
        end local 3 // int len
        end local 2 // int offset
        end local 1 // char[] in
        end local 0 // java.math.BigDecimal this
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0  161     0       this  Ljava/math/BigDecimal;
            0  161     1         in  [C
            0  161     2     offset  I
            0  161     3        len  I
            0  161     4         mc  Ljava/math/MathContext;
            6  161     5       prec  I
            7  161     6        scl  I
            8  161     7         rs  J
            9  161     9         rb  Ljava/math/BigInteger;
           10  151    10      isneg  Z
           19  151    11        dot  Z
           20  151    12        exp  J
           27   70    14          c  C
           91  119    14          c  C
           23  151    15  isCompact  Z
           24  151    16        idx  I
           38   43    17      digit  I
           51   63    17      digit  I
           79   87    17        mcp  I
           80   87    18       drop  I
           89  151    17      coeff  [C
          129  151    18        mcp  I
          132  142    19       drop  I
          144  151    19       drop  I
      Exception table:
        from    to  target  type
           9   151     152  Class java.lang.ArrayIndexOutOfBoundsException
           9   151     154  Class java.lang.NegativeArraySizeException
    MethodParameters:
        Name  Flags
      in      
      offset  
      len     
      mc      

  private int adjustScale(int, long);
    descriptor: (IJ)I
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=4, locals=6, args_size=3
        start local 0 // java.math.BigDecimal this
        start local 1 // int scl
        start local 2 // long exp
         0: .line 610
            iload 1 /* scl */
            i2l
            lload 2 /* exp */
            lsub
            lstore 4 /* adjustedScale */
        start local 4 // long adjustedScale
         1: .line 611
            lload 4 /* adjustedScale */
            ldc 2147483647
            lcmp
            ifgt 2
            lload 4 /* adjustedScale */
            ldc -2147483648
            lcmp
            ifge 3
         2: .line 612
      StackMap locals: long
      StackMap stack:
            new java.lang.NumberFormatException
            dup
            ldc "Scale out of range."
            invokespecial java.lang.NumberFormatException.<init>:(Ljava/lang/String;)V
            athrow
         3: .line 613
      StackMap locals:
      StackMap stack:
            lload 4 /* adjustedScale */
            l2i
            istore 1 /* scl */
         4: .line 614
            iload 1 /* scl */
            ireturn
        end local 4 // long adjustedScale
        end local 2 // long exp
        end local 1 // int scl
        end local 0 // java.math.BigDecimal this
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0    5     0           this  Ljava/math/BigDecimal;
            0    5     1            scl  I
            0    5     2            exp  J
            1    5     4  adjustedScale  J
    MethodParameters:
      Name  Flags
      scl   
      exp   

  private static long parseExp(char[], int, int);
    descriptor: ([CII)J
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=4, locals=8, args_size=3
        start local 0 // char[] in
        start local 1 // int offset
        start local 2 // int len
         0: .line 621
            lconst_0
            lstore 3 /* exp */
        start local 3 // long exp
         1: .line 622
            iinc 1 /* offset */ 1
         2: .line 623
            aload 0 /* in */
            iload 1 /* offset */
            caload
            istore 5 /* c */
        start local 5 // char c
         3: .line 624
            iinc 2 /* len */ -1
         4: .line 625
            iload 5 /* c */
            bipush 45
            if_icmpne 5
            iconst_1
            goto 6
      StackMap locals: long int
      StackMap stack:
         5: iconst_0
      StackMap locals:
      StackMap stack: int
         6: istore 6 /* negexp */
        start local 6 // boolean negexp
         7: .line 627
            iload 6 /* negexp */
            ifne 8
            iload 5 /* c */
            bipush 43
            if_icmpne 11
         8: .line 628
      StackMap locals: int
      StackMap stack:
            iinc 1 /* offset */ 1
         9: .line 629
            aload 0 /* in */
            iload 1 /* offset */
            caload
            istore 5 /* c */
        10: .line 630
            iinc 2 /* len */ -1
        11: .line 632
      StackMap locals:
      StackMap stack:
            iload 2 /* len */
            ifgt 16
        12: .line 633
            new java.lang.NumberFormatException
            dup
            invokespecial java.lang.NumberFormatException.<init>:()V
            athrow
        13: .line 636
      StackMap locals:
      StackMap stack:
            iinc 1 /* offset */ 1
        14: .line 637
            aload 0 /* in */
            iload 1 /* offset */
            caload
            istore 5 /* c */
        15: .line 638
            iinc 2 /* len */ -1
        16: .line 635
      StackMap locals:
      StackMap stack:
            iload 2 /* len */
            bipush 10
            if_icmple 17
            iload 5 /* c */
            bipush 48
            if_icmpeq 13
            iload 5 /* c */
            bipush 10
            invokestatic java.lang.Character.digit:(CI)I
            ifeq 13
        17: .line 640
      StackMap locals:
      StackMap stack:
            iload 2 /* len */
            bipush 10
            if_icmple 19
        18: .line 641
            new java.lang.NumberFormatException
            dup
            invokespecial java.lang.NumberFormatException.<init>:()V
            athrow
        19: .line 645
      StackMap locals:
      StackMap stack:
            iload 5 /* c */
            bipush 48
            if_icmplt 22
            iload 5 /* c */
            bipush 57
            if_icmpgt 22
        20: .line 646
            iload 5 /* c */
            bipush 48
            isub
            istore 7 /* v */
        start local 7 // int v
        21: .line 647
            goto 25
        end local 7 // int v
        22: .line 648
      StackMap locals:
      StackMap stack:
            iload 5 /* c */
            bipush 10
            invokestatic java.lang.Character.digit:(CI)I
            istore 7 /* v */
        start local 7 // int v
        23: .line 649
            iload 7 /* v */
            ifge 25
        24: .line 650
            new java.lang.NumberFormatException
            dup
            invokespecial java.lang.NumberFormatException.<init>:()V
            athrow
        25: .line 652
      StackMap locals: int
      StackMap stack:
            lload 3 /* exp */
            ldc 10
            lmul
            iload 7 /* v */
            i2l
            ladd
            lstore 3 /* exp */
        26: .line 653
            iload 2 /* len */
            iconst_1
            if_icmpne 28
        27: .line 654
            goto 31
        28: .line 655
      StackMap locals:
      StackMap stack:
            iinc 1 /* offset */ 1
        29: .line 656
            aload 0 /* in */
            iload 1 /* offset */
            caload
            istore 5 /* c */
        end local 7 // int v
        30: .line 643
            iinc 2 /* len */ -1
            goto 19
        31: .line 658
      StackMap locals:
      StackMap stack:
            iload 6 /* negexp */
            ifeq 33
        32: .line 659
            lload 3 /* exp */
            lneg
            lstore 3 /* exp */
        33: .line 660
      StackMap locals:
      StackMap stack:
            lload 3 /* exp */
            lreturn
        end local 6 // boolean negexp
        end local 5 // char c
        end local 3 // long exp
        end local 2 // int len
        end local 1 // int offset
        end local 0 // char[] in
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0   34     0      in  [C
            0   34     1  offset  I
            0   34     2     len  I
            1   34     3     exp  J
            3   34     5       c  C
            7   34     6  negexp  Z
           21   22     7       v  I
           23   30     7       v  I
    MethodParameters:
        Name  Flags
      in      
      offset  
      len     

  public void <init>(char[]);
    descriptor: ([C)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=2, args_size=2
        start local 0 // java.math.BigDecimal this
        start local 1 // char[] in
         0: .line 680
            aload 0 /* this */
            aload 1 /* in */
            iconst_0
            aload 1 /* in */
            arraylength
            invokespecial java.math.BigDecimal.<init>:([CII)V
         1: .line 681
            return
        end local 1 // char[] in
        end local 0 // java.math.BigDecimal this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Ljava/math/BigDecimal;
            0    2     1    in  [C
    MethodParameters:
      Name  Flags
      in    

  public void <init>(char[], java.math.MathContext);
    descriptor: ([CLjava/math/MathContext;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=3, args_size=3
        start local 0 // java.math.BigDecimal this
        start local 1 // char[] in
        start local 2 // java.math.MathContext mc
         0: .line 704
            aload 0 /* this */
            aload 1 /* in */
            iconst_0
            aload 1 /* in */
            arraylength
            aload 2 /* mc */
            invokespecial java.math.BigDecimal.<init>:([CIILjava/math/MathContext;)V
         1: .line 705
            return
        end local 2 // java.math.MathContext mc
        end local 1 // char[] in
        end local 0 // java.math.BigDecimal this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Ljava/math/BigDecimal;
            0    2     1    in  [C
            0    2     2    mc  Ljava/math/MathContext;
    MethodParameters:
      Name  Flags
      in    
      mc    

  public void <init>(java.lang.String);
    descriptor: (Ljava/lang/String;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=2, args_size=2
        start local 0 // java.math.BigDecimal this
        start local 1 // java.lang.String val
         0: .line 809
            aload 0 /* this */
            aload 1 /* val */
            invokevirtual java.lang.String.toCharArray:()[C
            iconst_0
            aload 1 /* val */
            invokevirtual java.lang.String.length:()I
            invokespecial java.math.BigDecimal.<init>:([CII)V
         1: .line 810
            return
        end local 1 // java.lang.String val
        end local 0 // java.math.BigDecimal this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Ljava/math/BigDecimal;
            0    2     1   val  Ljava/lang/String;
    MethodParameters:
      Name  Flags
      val   

  public void <init>(java.lang.String, java.math.MathContext);
    descriptor: (Ljava/lang/String;Ljava/math/MathContext;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=3, args_size=3
        start local 0 // java.math.BigDecimal this
        start local 1 // java.lang.String val
        start local 2 // java.math.MathContext mc
         0: .line 827
            aload 0 /* this */
            aload 1 /* val */
            invokevirtual java.lang.String.toCharArray:()[C
            iconst_0
            aload 1 /* val */
            invokevirtual java.lang.String.length:()I
            aload 2 /* mc */
            invokespecial java.math.BigDecimal.<init>:([CIILjava/math/MathContext;)V
         1: .line 828
            return
        end local 2 // java.math.MathContext mc
        end local 1 // java.lang.String val
        end local 0 // java.math.BigDecimal this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Ljava/math/BigDecimal;
            0    2     1   val  Ljava/lang/String;
            0    2     2    mc  Ljava/math/MathContext;
    MethodParameters:
      Name  Flags
      val   
      mc    

  public void <init>(double);
    descriptor: (D)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=3, args_size=2
        start local 0 // java.math.BigDecimal this
        start local 1 // double val
         0: .line 875
            aload 0 /* this */
            dload 1 /* val */
            getstatic java.math.MathContext.UNLIMITED:Ljava/math/MathContext;
            invokespecial java.math.BigDecimal.<init>:(DLjava/math/MathContext;)V
         1: .line 876
            return
        end local 1 // double val
        end local 0 // java.math.BigDecimal this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Ljava/math/BigDecimal;
            0    2     1   val  D
    MethodParameters:
      Name  Flags
      val   

  public void <init>(double, java.math.MathContext);
    descriptor: (DLjava/math/MathContext;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=18, args_size=3
        start local 0 // java.math.BigDecimal this
        start local 1 // double val
        start local 3 // java.math.MathContext mc
         0: .line 896
            aload 0 /* this */
            invokespecial java.lang.Number.<init>:()V
         1: .line 897
            dload 1 /* val */
            invokestatic java.lang.Double.isInfinite:(D)Z
            ifne 2
            dload 1 /* val */
            invokestatic java.lang.Double.isNaN:(D)Z
            ifeq 3
         2: .line 898
      StackMap locals: java.math.BigDecimal double java.math.MathContext
      StackMap stack:
            new java.lang.NumberFormatException
            dup
            ldc "Infinite or NaN"
            invokespecial java.lang.NumberFormatException.<init>:(Ljava/lang/String;)V
            athrow
         3: .line 901
      StackMap locals:
      StackMap stack:
            dload 1 /* val */
            invokestatic java.lang.Double.doubleToLongBits:(D)J
            lstore 4 /* valBits */
        start local 4 // long valBits
         4: .line 902
            lload 4 /* valBits */
            bipush 63
            lshr
            lconst_0
            lcmp
            ifne 5
            iconst_1
            goto 6
      StackMap locals: long
      StackMap stack:
         5: iconst_m1
      StackMap locals:
      StackMap stack: int
         6: istore 6 /* sign */
        start local 6 // int sign
         7: .line 903
            lload 4 /* valBits */
            bipush 52
            lshr
            ldc 2047
            land
            l2i
            istore 7 /* exponent */
        start local 7 // int exponent
         8: .line 904
            iload 7 /* exponent */
            ifne 10
         9: .line 905
            lload 4 /* valBits */
            ldc 4503599627370495
            land
            iconst_1
            lshl
            goto 11
        10: .line 906
      StackMap locals: int int
      StackMap stack:
            lload 4 /* valBits */
            ldc 4503599627370495
            land
            ldc 4503599627370496
            lor
        11: .line 904
      StackMap locals:
      StackMap stack: long
            lstore 8 /* significand */
        start local 8 // long significand
        12: .line 907
            iinc 7 /* exponent */ -1075
        13: .line 914
            lload 8 /* significand */
            lconst_0
            lcmp
            ifne 21
        14: .line 915
            aload 0 /* this */
            getstatic java.math.BigInteger.ZERO:Ljava/math/BigInteger;
            putfield java.math.BigDecimal.intVal:Ljava/math/BigInteger;
        15: .line 916
            aload 0 /* this */
            iconst_0
            putfield java.math.BigDecimal.scale:I
        16: .line 917
            aload 0 /* this */
            lconst_0
            putfield java.math.BigDecimal.intCompact:J
        17: .line 918
            aload 0 /* this */
            iconst_1
            putfield java.math.BigDecimal.precision:I
        18: .line 919
            return
        19: .line 923
      StackMap locals: long
      StackMap stack:
            lload 8 /* significand */
            iconst_1
            lshr
            lstore 8 /* significand */
        20: .line 924
            iinc 7 /* exponent */ 1
        21: .line 922
      StackMap locals:
      StackMap stack:
            lload 8 /* significand */
            lconst_1
            land
            lconst_0
            lcmp
            ifeq 19
        22: .line 926
            iconst_0
            istore 10 /* scale */
        start local 10 // int scale
        23: .line 929
            iload 6 /* sign */
            i2l
            lload 8 /* significand */
            lmul
            lstore 12 /* compactVal */
        start local 12 // long compactVal
        24: .line 930
            iload 7 /* exponent */
            ifne 29
        25: .line 931
            lload 12 /* compactVal */
            ldc -9223372036854775808
            lcmp
            ifne 26
            getstatic java.math.BigDecimal.INFLATED_BIGINT:Ljava/math/BigInteger;
            goto 27
      StackMap locals: java.math.BigDecimal double java.math.MathContext long int int long int top long
      StackMap stack:
        26: aconst_null
      StackMap locals:
      StackMap stack: java.math.BigInteger
        27: astore 11 /* intVal */
        start local 11 // java.math.BigInteger intVal
        28: .line 932
            goto 35
        end local 11 // java.math.BigInteger intVal
        29: .line 933
      StackMap locals:
      StackMap stack:
            iload 7 /* exponent */
            ifge 33
        30: .line 934
            ldc 5
            invokestatic java.math.BigInteger.valueOf:(J)Ljava/math/BigInteger;
            iload 7 /* exponent */
            ineg
            invokevirtual java.math.BigInteger.pow:(I)Ljava/math/BigInteger;
            lload 12 /* compactVal */
            invokevirtual java.math.BigInteger.multiply:(J)Ljava/math/BigInteger;
            astore 11 /* intVal */
        start local 11 // java.math.BigInteger intVal
        31: .line 935
            iload 7 /* exponent */
            ineg
            istore 10 /* scale */
        32: .line 936
            goto 34
        end local 11 // java.math.BigInteger intVal
        33: .line 937
      StackMap locals:
      StackMap stack:
            ldc 2
            invokestatic java.math.BigInteger.valueOf:(J)Ljava/math/BigInteger;
            iload 7 /* exponent */
            invokevirtual java.math.BigInteger.pow:(I)Ljava/math/BigInteger;
            lload 12 /* compactVal */
            invokevirtual java.math.BigInteger.multiply:(J)Ljava/math/BigInteger;
            astore 11 /* intVal */
        start local 11 // java.math.BigInteger intVal
        34: .line 939
      StackMap locals: java.math.BigDecimal double java.math.MathContext long int int long int java.math.BigInteger long
      StackMap stack:
            aload 11 /* intVal */
            invokestatic java.math.BigDecimal.compactValFor:(Ljava/math/BigInteger;)J
            lstore 12 /* compactVal */
        35: .line 941
      StackMap locals:
      StackMap stack:
            iconst_0
            istore 14 /* prec */
        start local 14 // int prec
        36: .line 942
            aload 3 /* mc */
            getfield java.math.MathContext.precision:I
            istore 15 /* mcp */
        start local 15 // int mcp
        37: .line 943
            iload 15 /* mcp */
            ifle 61
        38: .line 944
            aload 3 /* mc */
            getfield java.math.MathContext.roundingMode:Ljava/math/RoundingMode;
            getfield java.math.RoundingMode.oldMode:I
            istore 16 /* mode */
        start local 16 // int mode
        39: .line 946
            lload 12 /* compactVal */
            ldc -9223372036854775808
            lcmp
            ifne 51
        40: .line 947
            aload 11 /* intVal */
            invokestatic java.math.BigDecimal.bigDigitLength:(Ljava/math/BigInteger;)I
            istore 14 /* prec */
        41: .line 948
            iload 14 /* prec */
            iload 15 /* mcp */
            isub
            istore 17 /* drop */
        start local 17 // int drop
        42: .line 949
            goto 50
        43: .line 950
      StackMap locals: java.math.BigDecimal double java.math.MathContext long int int long int java.math.BigInteger long int int int int
      StackMap stack:
            iload 10 /* scale */
            i2l
            iload 17 /* drop */
            i2l
            lsub
            invokestatic java.math.BigDecimal.checkScaleNonZero:(J)I
            istore 10 /* scale */
        44: .line 951
            aload 11 /* intVal */
            iload 17 /* drop */
            iload 16 /* mode */
            invokestatic java.math.BigDecimal.divideAndRoundByTenPow:(Ljava/math/BigInteger;II)Ljava/math/BigInteger;
            astore 11 /* intVal */
        45: .line 952
            aload 11 /* intVal */
            invokestatic java.math.BigDecimal.compactValFor:(Ljava/math/BigInteger;)J
            lstore 12 /* compactVal */
        46: .line 953
            lload 12 /* compactVal */
            ldc -9223372036854775808
            lcmp
            ifeq 48
        47: .line 954
            goto 51
        48: .line 956
      StackMap locals:
      StackMap stack:
            aload 11 /* intVal */
            invokestatic java.math.BigDecimal.bigDigitLength:(Ljava/math/BigInteger;)I
            istore 14 /* prec */
        49: .line 957
            iload 14 /* prec */
            iload 15 /* mcp */
            isub
            istore 17 /* drop */
        50: .line 949
      StackMap locals:
      StackMap stack:
            iload 17 /* drop */
            ifgt 43
        end local 17 // int drop
        51: .line 960
      StackMap locals:
      StackMap stack:
            lload 12 /* compactVal */
            ldc -9223372036854775808
            lcmp
            ifeq 61
        52: .line 961
            lload 12 /* compactVal */
            invokestatic java.math.BigDecimal.longDigitLength:(J)I
            istore 14 /* prec */
        53: .line 962
            iload 14 /* prec */
            iload 15 /* mcp */
            isub
            istore 17 /* drop */
        start local 17 // int drop
        54: .line 963
            goto 59
        55: .line 964
      StackMap locals: int
      StackMap stack:
            iload 10 /* scale */
            i2l
            iload 17 /* drop */
            i2l
            lsub
            invokestatic java.math.BigDecimal.checkScaleNonZero:(J)I
            istore 10 /* scale */
        56: .line 965
            lload 12 /* compactVal */
            getstatic java.math.BigDecimal.LONG_TEN_POWERS_TABLE:[J
            iload 17 /* drop */
            laload
            aload 3 /* mc */
            getfield java.math.MathContext.roundingMode:Ljava/math/RoundingMode;
            getfield java.math.RoundingMode.oldMode:I
            invokestatic java.math.BigDecimal.divideAndRound:(JJI)J
            lstore 12 /* compactVal */
        57: .line 966
            lload 12 /* compactVal */
            invokestatic java.math.BigDecimal.longDigitLength:(J)I
            istore 14 /* prec */
        58: .line 967
            iload 14 /* prec */
            iload 15 /* mcp */
            isub
            istore 17 /* drop */
        59: .line 963
      StackMap locals:
      StackMap stack:
            iload 17 /* drop */
            ifgt 55
        60: .line 969
            aconst_null
            astore 11 /* intVal */
        end local 17 // int drop
        end local 16 // int mode
        61: .line 972
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 11 /* intVal */
            putfield java.math.BigDecimal.intVal:Ljava/math/BigInteger;
        62: .line 973
            aload 0 /* this */
            lload 12 /* compactVal */
            putfield java.math.BigDecimal.intCompact:J
        63: .line 974
            aload 0 /* this */
            iload 10 /* scale */
            putfield java.math.BigDecimal.scale:I
        64: .line 975
            aload 0 /* this */
            iload 14 /* prec */
            putfield java.math.BigDecimal.precision:I
        65: .line 976
            return
        end local 15 // int mcp
        end local 14 // int prec
        end local 12 // long compactVal
        end local 11 // java.math.BigInteger intVal
        end local 10 // int scale
        end local 8 // long significand
        end local 7 // int exponent
        end local 6 // int sign
        end local 4 // long valBits
        end local 3 // java.math.MathContext mc
        end local 1 // double val
        end local 0 // java.math.BigDecimal this
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0   66     0         this  Ljava/math/BigDecimal;
            0   66     1          val  D
            0   66     3           mc  Ljava/math/MathContext;
            4   66     4      valBits  J
            7   66     6         sign  I
            8   66     7     exponent  I
           12   66     8  significand  J
           23   66    10        scale  I
           28   29    11       intVal  Ljava/math/BigInteger;
           31   33    11       intVal  Ljava/math/BigInteger;
           34   66    11       intVal  Ljava/math/BigInteger;
           24   66    12   compactVal  J
           36   66    14         prec  I
           37   66    15          mcp  I
           39   61    16         mode  I
           42   51    17         drop  I
           54   61    17         drop  I
    MethodParameters:
      Name  Flags
      val   
      mc    

  public void <init>(java.math.BigInteger);
    descriptor: (Ljava/math/BigInteger;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=2, args_size=2
        start local 0 // java.math.BigDecimal this
        start local 1 // java.math.BigInteger val
         0: .line 985
            aload 0 /* this */
            invokespecial java.lang.Number.<init>:()V
         1: .line 986
            aload 0 /* this */
            iconst_0
            putfield java.math.BigDecimal.scale:I
         2: .line 987
            aload 0 /* this */
            aload 1 /* val */
            putfield java.math.BigDecimal.intVal:Ljava/math/BigInteger;
         3: .line 988
            aload 0 /* this */
            aload 1 /* val */
            invokestatic java.math.BigDecimal.compactValFor:(Ljava/math/BigInteger;)J
            putfield java.math.BigDecimal.intCompact:J
         4: .line 989
            return
        end local 1 // java.math.BigInteger val
        end local 0 // java.math.BigDecimal this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    5     0  this  Ljava/math/BigDecimal;
            0    5     1   val  Ljava/math/BigInteger;
    MethodParameters:
      Name  Flags
      val   

  public void <init>(java.math.BigInteger, java.math.MathContext);
    descriptor: (Ljava/math/BigInteger;Ljava/math/MathContext;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=3, args_size=3
        start local 0 // java.math.BigDecimal this
        start local 1 // java.math.BigInteger val
        start local 2 // java.math.MathContext mc
         0: .line 1004
            aload 0 /* this */
            aload 1 /* val */
            iconst_0
            aload 2 /* mc */
            invokespecial java.math.BigDecimal.<init>:(Ljava/math/BigInteger;ILjava/math/MathContext;)V
         1: .line 1005
            return
        end local 2 // java.math.MathContext mc
        end local 1 // java.math.BigInteger val
        end local 0 // java.math.BigDecimal this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Ljava/math/BigDecimal;
            0    2     1   val  Ljava/math/BigInteger;
            0    2     2    mc  Ljava/math/MathContext;
    MethodParameters:
      Name  Flags
      val   
      mc    

  public void <init>(java.math.BigInteger, int);
    descriptor: (Ljava/math/BigInteger;I)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=3, args_size=3
        start local 0 // java.math.BigDecimal this
        start local 1 // java.math.BigInteger unscaledVal
        start local 2 // int scale
         0: .line 1016
            aload 0 /* this */
            invokespecial java.lang.Number.<init>:()V
         1: .line 1018
            aload 0 /* this */
            aload 1 /* unscaledVal */
            putfield java.math.BigDecimal.intVal:Ljava/math/BigInteger;
         2: .line 1019
            aload 0 /* this */
            aload 1 /* unscaledVal */
            invokestatic java.math.BigDecimal.compactValFor:(Ljava/math/BigInteger;)J
            putfield java.math.BigDecimal.intCompact:J
         3: .line 1020
            aload 0 /* this */
            iload 2 /* scale */
            putfield java.math.BigDecimal.scale:I
         4: .line 1021
            return
        end local 2 // int scale
        end local 1 // java.math.BigInteger unscaledVal
        end local 0 // java.math.BigDecimal this
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0    5     0         this  Ljava/math/BigDecimal;
            0    5     1  unscaledVal  Ljava/math/BigInteger;
            0    5     2        scale  I
    MethodParameters:
             Name  Flags
      unscaledVal  
      scale        

  public void <init>(java.math.BigInteger, int, java.math.MathContext);
    descriptor: (Ljava/math/BigInteger;ILjava/math/MathContext;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=10, args_size=4
        start local 0 // java.math.BigDecimal this
        start local 1 // java.math.BigInteger unscaledVal
        start local 2 // int scale
        start local 3 // java.math.MathContext mc
         0: .line 1038
            aload 0 /* this */
            invokespecial java.lang.Number.<init>:()V
         1: .line 1039
            aload 1 /* unscaledVal */
            invokestatic java.math.BigDecimal.compactValFor:(Ljava/math/BigInteger;)J
            lstore 4 /* compactVal */
        start local 4 // long compactVal
         2: .line 1040
            aload 3 /* mc */
            getfield java.math.MathContext.precision:I
            istore 6 /* mcp */
        start local 6 // int mcp
         3: .line 1041
            iconst_0
            istore 7 /* prec */
        start local 7 // int prec
         4: .line 1042
            iload 6 /* mcp */
            ifle 28
         5: .line 1043
            aload 3 /* mc */
            getfield java.math.MathContext.roundingMode:Ljava/math/RoundingMode;
            getfield java.math.RoundingMode.oldMode:I
            istore 8 /* mode */
        start local 8 // int mode
         6: .line 1044
            lload 4 /* compactVal */
            ldc -9223372036854775808
            lcmp
            ifne 18
         7: .line 1045
            aload 1 /* unscaledVal */
            invokestatic java.math.BigDecimal.bigDigitLength:(Ljava/math/BigInteger;)I
            istore 7 /* prec */
         8: .line 1046
            iload 7 /* prec */
            iload 6 /* mcp */
            isub
            istore 9 /* drop */
        start local 9 // int drop
         9: .line 1047
            goto 17
        10: .line 1048
      StackMap locals: java.math.BigDecimal java.math.BigInteger int java.math.MathContext long int int int int
      StackMap stack:
            iload 2 /* scale */
            i2l
            iload 9 /* drop */
            i2l
            lsub
            invokestatic java.math.BigDecimal.checkScaleNonZero:(J)I
            istore 2 /* scale */
        11: .line 1049
            aload 1 /* unscaledVal */
            iload 9 /* drop */
            iload 8 /* mode */
            invokestatic java.math.BigDecimal.divideAndRoundByTenPow:(Ljava/math/BigInteger;II)Ljava/math/BigInteger;
            astore 1 /* unscaledVal */
        12: .line 1050
            aload 1 /* unscaledVal */
            invokestatic java.math.BigDecimal.compactValFor:(Ljava/math/BigInteger;)J
            lstore 4 /* compactVal */
        13: .line 1051
            lload 4 /* compactVal */
            ldc -9223372036854775808
            lcmp
            ifeq 15
        14: .line 1052
            goto 18
        15: .line 1054
      StackMap locals:
      StackMap stack:
            aload 1 /* unscaledVal */
            invokestatic java.math.BigDecimal.bigDigitLength:(Ljava/math/BigInteger;)I
            istore 7 /* prec */
        16: .line 1055
            iload 7 /* prec */
            iload 6 /* mcp */
            isub
            istore 9 /* drop */
        17: .line 1047
      StackMap locals:
      StackMap stack:
            iload 9 /* drop */
            ifgt 10
        end local 9 // int drop
        18: .line 1058
      StackMap locals:
      StackMap stack:
            lload 4 /* compactVal */
            ldc -9223372036854775808
            lcmp
            ifeq 28
        19: .line 1059
            lload 4 /* compactVal */
            invokestatic java.math.BigDecimal.longDigitLength:(J)I
            istore 7 /* prec */
        20: .line 1060
            iload 7 /* prec */
            iload 6 /* mcp */
            isub
            istore 9 /* drop */
        start local 9 // int drop
        21: .line 1061
            goto 26
        22: .line 1062
      StackMap locals: int
      StackMap stack:
            iload 2 /* scale */
            i2l
            iload 9 /* drop */
            i2l
            lsub
            invokestatic java.math.BigDecimal.checkScaleNonZero:(J)I
            istore 2 /* scale */
        23: .line 1063
            lload 4 /* compactVal */
            getstatic java.math.BigDecimal.LONG_TEN_POWERS_TABLE:[J
            iload 9 /* drop */
            laload
            iload 8 /* mode */
            invokestatic java.math.BigDecimal.divideAndRound:(JJI)J
            lstore 4 /* compactVal */
        24: .line 1064
            lload 4 /* compactVal */
            invokestatic java.math.BigDecimal.longDigitLength:(J)I
            istore 7 /* prec */
        25: .line 1065
            iload 7 /* prec */
            iload 6 /* mcp */
            isub
            istore 9 /* drop */
        26: .line 1061
      StackMap locals:
      StackMap stack:
            iload 9 /* drop */
            ifgt 22
        27: .line 1067
            aconst_null
            astore 1 /* unscaledVal */
        end local 9 // int drop
        end local 8 // int mode
        28: .line 1070
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 1 /* unscaledVal */
            putfield java.math.BigDecimal.intVal:Ljava/math/BigInteger;
        29: .line 1071
            aload 0 /* this */
            lload 4 /* compactVal */
            putfield java.math.BigDecimal.intCompact:J
        30: .line 1072
            aload 0 /* this */
            iload 2 /* scale */
            putfield java.math.BigDecimal.scale:I
        31: .line 1073
            aload 0 /* this */
            iload 7 /* prec */
            putfield java.math.BigDecimal.precision:I
        32: .line 1074
            return
        end local 7 // int prec
        end local 6 // int mcp
        end local 4 // long compactVal
        end local 3 // java.math.MathContext mc
        end local 2 // int scale
        end local 1 // java.math.BigInteger unscaledVal
        end local 0 // java.math.BigDecimal this
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0   33     0         this  Ljava/math/BigDecimal;
            0   33     1  unscaledVal  Ljava/math/BigInteger;
            0   33     2        scale  I
            0   33     3           mc  Ljava/math/MathContext;
            2   33     4   compactVal  J
            3   33     6          mcp  I
            4   33     7         prec  I
            6   28     8         mode  I
            9   18     9         drop  I
           21   28     9         drop  I
    MethodParameters:
             Name  Flags
      unscaledVal  
      scale        
      mc           

  public void <init>(int);
    descriptor: (I)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=2, args_size=2
        start local 0 // java.math.BigDecimal this
        start local 1 // int val
         0: .line 1084
            aload 0 /* this */
            invokespecial java.lang.Number.<init>:()V
         1: .line 1085
            aload 0 /* this */
            iload 1 /* val */
            i2l
            putfield java.math.BigDecimal.intCompact:J
         2: .line 1086
            aload 0 /* this */
            iconst_0
            putfield java.math.BigDecimal.scale:I
         3: .line 1087
            aload 0 /* this */
            aconst_null
            putfield java.math.BigDecimal.intVal:Ljava/math/BigInteger;
         4: .line 1088
            return
        end local 1 // int val
        end local 0 // java.math.BigDecimal this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    5     0  this  Ljava/math/BigDecimal;
            0    5     1   val  I
    MethodParameters:
      Name  Flags
      val   

  public void <init>(int, java.math.MathContext);
    descriptor: (ILjava/math/MathContext;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=9, args_size=3
        start local 0 // java.math.BigDecimal this
        start local 1 // int val
        start local 2 // java.math.MathContext mc
         0: .line 1101
            aload 0 /* this */
            invokespecial java.lang.Number.<init>:()V
         1: .line 1102
            aload 2 /* mc */
            getfield java.math.MathContext.precision:I
            istore 3 /* mcp */
        start local 3 // int mcp
         2: .line 1103
            iload 1 /* val */
            i2l
            lstore 4 /* compactVal */
        start local 4 // long compactVal
         3: .line 1104
            iconst_0
            istore 6 /* scale */
        start local 6 // int scale
         4: .line 1105
            iconst_0
            istore 7 /* prec */
        start local 7 // int prec
         5: .line 1106
            iload 3 /* mcp */
            ifle 14
         6: .line 1107
            lload 4 /* compactVal */
            invokestatic java.math.BigDecimal.longDigitLength:(J)I
            istore 7 /* prec */
         7: .line 1108
            iload 7 /* prec */
            iload 3 /* mcp */
            isub
            istore 8 /* drop */
        start local 8 // int drop
         8: .line 1109
            goto 13
         9: .line 1110
      StackMap locals: java.math.BigDecimal int java.math.MathContext int long int int int
      StackMap stack:
            iload 6 /* scale */
            i2l
            iload 8 /* drop */
            i2l
            lsub
            invokestatic java.math.BigDecimal.checkScaleNonZero:(J)I
            istore 6 /* scale */
        10: .line 1111
            lload 4 /* compactVal */
            getstatic java.math.BigDecimal.LONG_TEN_POWERS_TABLE:[J
            iload 8 /* drop */
            laload
            aload 2 /* mc */
            getfield java.math.MathContext.roundingMode:Ljava/math/RoundingMode;
            getfield java.math.RoundingMode.oldMode:I
            invokestatic java.math.BigDecimal.divideAndRound:(JJI)J
            lstore 4 /* compactVal */
        11: .line 1112
            lload 4 /* compactVal */
            invokestatic java.math.BigDecimal.longDigitLength:(J)I
            istore 7 /* prec */
        12: .line 1113
            iload 7 /* prec */
            iload 3 /* mcp */
            isub
            istore 8 /* drop */
        13: .line 1109
      StackMap locals:
      StackMap stack:
            iload 8 /* drop */
            ifgt 9
        end local 8 // int drop
        14: .line 1116
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aconst_null
            putfield java.math.BigDecimal.intVal:Ljava/math/BigInteger;
        15: .line 1117
            aload 0 /* this */
            lload 4 /* compactVal */
            putfield java.math.BigDecimal.intCompact:J
        16: .line 1118
            aload 0 /* this */
            iload 6 /* scale */
            putfield java.math.BigDecimal.scale:I
        17: .line 1119
            aload 0 /* this */
            iload 7 /* prec */
            putfield java.math.BigDecimal.precision:I
        18: .line 1120
            return
        end local 7 // int prec
        end local 6 // int scale
        end local 4 // long compactVal
        end local 3 // int mcp
        end local 2 // java.math.MathContext mc
        end local 1 // int val
        end local 0 // java.math.BigDecimal this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0   19     0        this  Ljava/math/BigDecimal;
            0   19     1         val  I
            0   19     2          mc  Ljava/math/MathContext;
            2   19     3         mcp  I
            3   19     4  compactVal  J
            4   19     6       scale  I
            5   19     7        prec  I
            8   14     8        drop  I
    MethodParameters:
      Name  Flags
      val   
      mc    

  public void <init>(long);
    descriptor: (J)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=3, args_size=2
        start local 0 // java.math.BigDecimal this
        start local 1 // long val
         0: .line 1129
            aload 0 /* this */
            invokespecial java.lang.Number.<init>:()V
         1: .line 1130
            aload 0 /* this */
            lload 1 /* val */
            putfield java.math.BigDecimal.intCompact:J
         2: .line 1131
            aload 0 /* this */
            lload 1 /* val */
            ldc -9223372036854775808
            lcmp
            ifne 3
            getstatic java.math.BigDecimal.INFLATED_BIGINT:Ljava/math/BigInteger;
            goto 4
      StackMap locals: java.math.BigDecimal long
      StackMap stack: java.math.BigDecimal
         3: aconst_null
      StackMap locals: java.math.BigDecimal long
      StackMap stack: java.math.BigDecimal java.math.BigInteger
         4: putfield java.math.BigDecimal.intVal:Ljava/math/BigInteger;
         5: .line 1132
            aload 0 /* this */
            iconst_0
            putfield java.math.BigDecimal.scale:I
         6: .line 1133
            return
        end local 1 // long val
        end local 0 // java.math.BigDecimal this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    7     0  this  Ljava/math/BigDecimal;
            0    7     1   val  J
    MethodParameters:
      Name  Flags
      val   

  public void <init>(long, java.math.MathContext);
    descriptor: (JLjava/math/MathContext;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=10, args_size=3
        start local 0 // java.math.BigDecimal this
        start local 1 // long val
        start local 3 // java.math.MathContext mc
         0: .line 1146
            aload 0 /* this */
            invokespecial java.lang.Number.<init>:()V
         1: .line 1147
            aload 3 /* mc */
            getfield java.math.MathContext.precision:I
            istore 4 /* mcp */
        start local 4 // int mcp
         2: .line 1148
            aload 3 /* mc */
            getfield java.math.MathContext.roundingMode:Ljava/math/RoundingMode;
            getfield java.math.RoundingMode.oldMode:I
            istore 5 /* mode */
        start local 5 // int mode
         3: .line 1149
            iconst_0
            istore 6 /* prec */
        start local 6 // int prec
         4: .line 1150
            iconst_0
            istore 7 /* scale */
        start local 7 // int scale
         5: .line 1151
            lload 1 /* val */
            ldc -9223372036854775808
            lcmp
            ifne 6
            getstatic java.math.BigDecimal.INFLATED_BIGINT:Ljava/math/BigInteger;
            goto 7
      StackMap locals: java.math.BigDecimal long java.math.MathContext int int int int
      StackMap stack:
         6: aconst_null
      StackMap locals:
      StackMap stack: java.math.BigInteger
         7: astore 8 /* intVal */
        start local 8 // java.math.BigInteger intVal
         8: .line 1152
            iload 4 /* mcp */
            ifle 31
         9: .line 1153
            lload 1 /* val */
            ldc -9223372036854775808
            lcmp
            ifne 21
        10: .line 1154
            bipush 19
            istore 6 /* prec */
        11: .line 1155
            iload 6 /* prec */
            iload 4 /* mcp */
            isub
            istore 9 /* drop */
        start local 9 // int drop
        12: .line 1156
            goto 20
        13: .line 1157
      StackMap locals: java.math.BigInteger int
      StackMap stack:
            iload 7 /* scale */
            i2l
            iload 9 /* drop */
            i2l
            lsub
            invokestatic java.math.BigDecimal.checkScaleNonZero:(J)I
            istore 7 /* scale */
        14: .line 1158
            aload 8 /* intVal */
            iload 9 /* drop */
            iload 5 /* mode */
            invokestatic java.math.BigDecimal.divideAndRoundByTenPow:(Ljava/math/BigInteger;II)Ljava/math/BigInteger;
            astore 8 /* intVal */
        15: .line 1159
            aload 8 /* intVal */
            invokestatic java.math.BigDecimal.compactValFor:(Ljava/math/BigInteger;)J
            lstore 1 /* val */
        16: .line 1160
            lload 1 /* val */
            ldc -9223372036854775808
            lcmp
            ifeq 18
        17: .line 1161
            goto 21
        18: .line 1163
      StackMap locals:
      StackMap stack:
            aload 8 /* intVal */
            invokestatic java.math.BigDecimal.bigDigitLength:(Ljava/math/BigInteger;)I
            istore 6 /* prec */
        19: .line 1164
            iload 6 /* prec */
            iload 4 /* mcp */
            isub
            istore 9 /* drop */
        20: .line 1156
      StackMap locals:
      StackMap stack:
            iload 9 /* drop */
            ifgt 13
        end local 9 // int drop
        21: .line 1167
      StackMap locals:
      StackMap stack:
            lload 1 /* val */
            ldc -9223372036854775808
            lcmp
            ifeq 31
        22: .line 1168
            lload 1 /* val */
            invokestatic java.math.BigDecimal.longDigitLength:(J)I
            istore 6 /* prec */
        23: .line 1169
            iload 6 /* prec */
            iload 4 /* mcp */
            isub
            istore 9 /* drop */
        start local 9 // int drop
        24: .line 1170
            goto 29
        25: .line 1171
      StackMap locals: int
      StackMap stack:
            iload 7 /* scale */
            i2l
            iload 9 /* drop */
            i2l
            lsub
            invokestatic java.math.BigDecimal.checkScaleNonZero:(J)I
            istore 7 /* scale */
        26: .line 1172
            lload 1 /* val */
            getstatic java.math.BigDecimal.LONG_TEN_POWERS_TABLE:[J
            iload 9 /* drop */
            laload
            aload 3 /* mc */
            getfield java.math.MathContext.roundingMode:Ljava/math/RoundingMode;
            getfield java.math.RoundingMode.oldMode:I
            invokestatic java.math.BigDecimal.divideAndRound:(JJI)J
            lstore 1 /* val */
        27: .line 1173
            lload 1 /* val */
            invokestatic java.math.BigDecimal.longDigitLength:(J)I
            istore 6 /* prec */
        28: .line 1174
            iload 6 /* prec */
            iload 4 /* mcp */
            isub
            istore 9 /* drop */
        29: .line 1170
      StackMap locals:
      StackMap stack:
            iload 9 /* drop */
            ifgt 25
        30: .line 1176
            aconst_null
            astore 8 /* intVal */
        end local 9 // int drop
        31: .line 1179
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 8 /* intVal */
            putfield java.math.BigDecimal.intVal:Ljava/math/BigInteger;
        32: .line 1180
            aload 0 /* this */
            lload 1 /* val */
            putfield java.math.BigDecimal.intCompact:J
        33: .line 1181
            aload 0 /* this */
            iload 7 /* scale */
            putfield java.math.BigDecimal.scale:I
        34: .line 1182
            aload 0 /* this */
            iload 6 /* prec */
            putfield java.math.BigDecimal.precision:I
        35: .line 1183
            return
        end local 8 // java.math.BigInteger intVal
        end local 7 // int scale
        end local 6 // int prec
        end local 5 // int mode
        end local 4 // int mcp
        end local 3 // java.math.MathContext mc
        end local 1 // long val
        end local 0 // java.math.BigDecimal this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0   36     0    this  Ljava/math/BigDecimal;
            0   36     1     val  J
            0   36     3      mc  Ljava/math/MathContext;
            2   36     4     mcp  I
            3   36     5    mode  I
            4   36     6    prec  I
            5   36     7   scale  I
            8   36     8  intVal  Ljava/math/BigInteger;
           12   21     9    drop  I
           24   31     9    drop  I
    MethodParameters:
      Name  Flags
      val   
      mc    

  public static java.math.BigDecimal valueOf(long, int);
    descriptor: (JI)Ljava/math/BigDecimal;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=7, locals=3, args_size=2
        start local 0 // long unscaledVal
        start local 2 // int scale
         0: .line 1200
            iload 2 /* scale */
            ifne 2
         1: .line 1201
            lload 0 /* unscaledVal */
            invokestatic java.math.BigDecimal.valueOf:(J)Ljava/math/BigDecimal;
            areturn
         2: .line 1202
      StackMap locals:
      StackMap stack:
            lload 0 /* unscaledVal */
            lconst_0
            lcmp
            ifne 4
         3: .line 1203
            iload 2 /* scale */
            invokestatic java.math.BigDecimal.zeroValueOf:(I)Ljava/math/BigDecimal;
            areturn
         4: .line 1205
      StackMap locals:
      StackMap stack:
            new java.math.BigDecimal
            dup
            lload 0 /* unscaledVal */
            ldc -9223372036854775808
            lcmp
            ifne 6
         5: .line 1206
            getstatic java.math.BigDecimal.INFLATED_BIGINT:Ljava/math/BigInteger;
            goto 7
      StackMap locals: long int
      StackMap stack: new 4 new 4
         6: aconst_null
         7: .line 1207
      StackMap locals: long int
      StackMap stack: new 4 new 4 java.math.BigInteger
            lload 0 /* unscaledVal */
            iload 2 /* scale */
            iconst_0
         8: .line 1205
            invokespecial java.math.BigDecimal.<init>:(Ljava/math/BigInteger;JII)V
            areturn
        end local 2 // int scale
        end local 0 // long unscaledVal
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0    9     0  unscaledVal  J
            0    9     2        scale  I
    MethodParameters:
             Name  Flags
      unscaledVal  
      scale        

  public static java.math.BigDecimal valueOf(long);
    descriptor: (J)Ljava/math/BigDecimal;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=7, locals=2, args_size=1
        start local 0 // long val
         0: .line 1221
            lload 0 /* val */
            lconst_0
            lcmp
            iflt 2
            lload 0 /* val */
            getstatic java.math.BigDecimal.zeroThroughTen:[Ljava/math/BigDecimal;
            arraylength
            i2l
            lcmp
            ifge 2
         1: .line 1222
            getstatic java.math.BigDecimal.zeroThroughTen:[Ljava/math/BigDecimal;
            lload 0 /* val */
            l2i
            aaload
            areturn
         2: .line 1223
      StackMap locals:
      StackMap stack:
            lload 0 /* val */
            ldc -9223372036854775808
            lcmp
            ifeq 4
         3: .line 1224
            new java.math.BigDecimal
            dup
            aconst_null
            lload 0 /* val */
            iconst_0
            iconst_0
            invokespecial java.math.BigDecimal.<init>:(Ljava/math/BigInteger;JII)V
            areturn
         4: .line 1225
      StackMap locals:
      StackMap stack:
            new java.math.BigDecimal
            dup
            getstatic java.math.BigDecimal.INFLATED_BIGINT:Ljava/math/BigInteger;
            lload 0 /* val */
            iconst_0
            iconst_0
            invokespecial java.math.BigDecimal.<init>:(Ljava/math/BigInteger;JII)V
            areturn
        end local 0 // long val
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    5     0   val  J
    MethodParameters:
      Name  Flags
      val   

  static java.math.BigDecimal valueOf(long, int, int);
    descriptor: (JII)Ljava/math/BigDecimal;
    flags: (0x0008) ACC_STATIC
    Code:
      stack=7, locals=4, args_size=3
        start local 0 // long unscaledVal
        start local 2 // int scale
        start local 3 // int prec
         0: .line 1229
            iload 2 /* scale */
            ifne 2
            lload 0 /* unscaledVal */
            lconst_0
            lcmp
            iflt 2
            lload 0 /* unscaledVal */
            getstatic java.math.BigDecimal.zeroThroughTen:[Ljava/math/BigDecimal;
            arraylength
            i2l
            lcmp
            ifge 2
         1: .line 1230
            getstatic java.math.BigDecimal.zeroThroughTen:[Ljava/math/BigDecimal;
            lload 0 /* unscaledVal */
            l2i
            aaload
            areturn
         2: .line 1231
      StackMap locals:
      StackMap stack:
            lload 0 /* unscaledVal */
            lconst_0
            lcmp
            ifne 4
         3: .line 1232
            iload 2 /* scale */
            invokestatic java.math.BigDecimal.zeroValueOf:(I)Ljava/math/BigDecimal;
            areturn
         4: .line 1234
      StackMap locals:
      StackMap stack:
            new java.math.BigDecimal
            dup
            lload 0 /* unscaledVal */
            ldc -9223372036854775808
            lcmp
            ifne 5
            getstatic java.math.BigDecimal.INFLATED_BIGINT:Ljava/math/BigInteger;
            goto 6
      StackMap locals: long int int
      StackMap stack: new 4 new 4
         5: aconst_null
         6: .line 1235
      StackMap locals: long int int
      StackMap stack: new 4 new 4 java.math.BigInteger
            lload 0 /* unscaledVal */
            iload 2 /* scale */
            iload 3 /* prec */
         7: .line 1234
            invokespecial java.math.BigDecimal.<init>:(Ljava/math/BigInteger;JII)V
            areturn
        end local 3 // int prec
        end local 2 // int scale
        end local 0 // long unscaledVal
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0    8     0  unscaledVal  J
            0    8     2        scale  I
            0    8     3         prec  I
    MethodParameters:
             Name  Flags
      unscaledVal  
      scale        
      prec         

  static java.math.BigDecimal valueOf(java.math.BigInteger, int, int);
    descriptor: (Ljava/math/BigInteger;II)Ljava/math/BigDecimal;
    flags: (0x0008) ACC_STATIC
    Code:
      stack=7, locals=5, args_size=3
        start local 0 // java.math.BigInteger intVal
        start local 1 // int scale
        start local 2 // int prec
         0: .line 1239
            aload 0 /* intVal */
            invokestatic java.math.BigDecimal.compactValFor:(Ljava/math/BigInteger;)J
            lstore 3 /* val */
        start local 3 // long val
         1: .line 1240
            lload 3 /* val */
            lconst_0
            lcmp
            ifne 3
         2: .line 1241
            iload 1 /* scale */
            invokestatic java.math.BigDecimal.zeroValueOf:(I)Ljava/math/BigDecimal;
            areturn
         3: .line 1242
      StackMap locals: long
      StackMap stack:
            iload 1 /* scale */
            ifne 5
            lload 3 /* val */
            lconst_0
            lcmp
            iflt 5
            lload 3 /* val */
            getstatic java.math.BigDecimal.zeroThroughTen:[Ljava/math/BigDecimal;
            arraylength
            i2l
            lcmp
            ifge 5
         4: .line 1243
            getstatic java.math.BigDecimal.zeroThroughTen:[Ljava/math/BigDecimal;
            lload 3 /* val */
            l2i
            aaload
            areturn
         5: .line 1245
      StackMap locals:
      StackMap stack:
            new java.math.BigDecimal
            dup
            aload 0 /* intVal */
            lload 3 /* val */
            iload 1 /* scale */
            iload 2 /* prec */
            invokespecial java.math.BigDecimal.<init>:(Ljava/math/BigInteger;JII)V
            areturn
        end local 3 // long val
        end local 2 // int prec
        end local 1 // int scale
        end local 0 // java.math.BigInteger intVal
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    6     0  intVal  Ljava/math/BigInteger;
            0    6     1   scale  I
            0    6     2    prec  I
            1    6     3     val  J
    MethodParameters:
        Name  Flags
      intVal  
      scale   
      prec    

  static java.math.BigDecimal zeroValueOf(int);
    descriptor: (I)Ljava/math/BigDecimal;
    flags: (0x0008) ACC_STATIC
    Code:
      stack=7, locals=1, args_size=1
        start local 0 // int scale
         0: .line 1249
            iload 0 /* scale */
            iflt 2
            iload 0 /* scale */
            getstatic java.math.BigDecimal.ZERO_SCALED_BY:[Ljava/math/BigDecimal;
            arraylength
            if_icmpge 2
         1: .line 1250
            getstatic java.math.BigDecimal.ZERO_SCALED_BY:[Ljava/math/BigDecimal;
            iload 0 /* scale */
            aaload
            areturn
         2: .line 1252
      StackMap locals:
      StackMap stack:
            new java.math.BigDecimal
            dup
            getstatic java.math.BigInteger.ZERO:Ljava/math/BigInteger;
            lconst_0
            iload 0 /* scale */
            iconst_1
            invokespecial java.math.BigDecimal.<init>:(Ljava/math/BigInteger;JII)V
            areturn
        end local 0 // int scale
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    3     0  scale  I
    MethodParameters:
       Name  Flags
      scale  

  public static java.math.BigDecimal valueOf(double);
    descriptor: (D)Ljava/math/BigDecimal;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=4, locals=2, args_size=1
        start local 0 // double val
         0: .line 1277
            new java.math.BigDecimal
            dup
            dload 0 /* val */
            invokestatic java.lang.Double.toString:(D)Ljava/lang/String;
            invokespecial java.math.BigDecimal.<init>:(Ljava/lang/String;)V
            areturn
        end local 0 // double val
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0   val  D
    MethodParameters:
      Name  Flags
      val   

  public java.math.BigDecimal add(java.math.BigDecimal);
    descriptor: (Ljava/math/BigDecimal;)Ljava/math/BigDecimal;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=6, locals=2, args_size=2
        start local 0 // java.math.BigDecimal this
        start local 1 // java.math.BigDecimal augend
         0: .line 1290
            aload 0 /* this */
            getfield java.math.BigDecimal.intCompact:J
            ldc -9223372036854775808
            lcmp
            ifeq 4
         1: .line 1291
            aload 1 /* augend */
            getfield java.math.BigDecimal.intCompact:J
            ldc -9223372036854775808
            lcmp
            ifeq 3
         2: .line 1292
            aload 0 /* this */
            getfield java.math.BigDecimal.intCompact:J
            aload 0 /* this */
            getfield java.math.BigDecimal.scale:I
            aload 1 /* augend */
            getfield java.math.BigDecimal.intCompact:J
            aload 1 /* augend */
            getfield java.math.BigDecimal.scale:I
            invokestatic java.math.BigDecimal.add:(JIJI)Ljava/math/BigDecimal;
            areturn
         3: .line 1294
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield java.math.BigDecimal.intCompact:J
            aload 0 /* this */
            getfield java.math.BigDecimal.scale:I
            aload 1 /* augend */
            getfield java.math.BigDecimal.intVal:Ljava/math/BigInteger;
            aload 1 /* augend */
            getfield java.math.BigDecimal.scale:I
            invokestatic java.math.BigDecimal.add:(JILjava/math/BigInteger;I)Ljava/math/BigDecimal;
            areturn
         4: .line 1297
      StackMap locals:
      StackMap stack:
            aload 1 /* augend */
            getfield java.math.BigDecimal.intCompact:J
            ldc -9223372036854775808
            lcmp
            ifeq 6
         5: .line 1298
            aload 1 /* augend */
            getfield java.math.BigDecimal.intCompact:J
            aload 1 /* augend */
            getfield java.math.BigDecimal.scale:I
            aload 0 /* this */
            getfield java.math.BigDecimal.intVal:Ljava/math/BigInteger;
            aload 0 /* this */
            getfield java.math.BigDecimal.scale:I
            invokestatic java.math.BigDecimal.add:(JILjava/math/BigInteger;I)Ljava/math/BigDecimal;
            areturn
         6: .line 1300
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield java.math.BigDecimal.intVal:Ljava/math/BigInteger;
            aload 0 /* this */
            getfield java.math.BigDecimal.scale:I
            aload 1 /* augend */
            getfield java.math.BigDecimal.intVal:Ljava/math/BigInteger;
            aload 1 /* augend */
            getfield java.math.BigDecimal.scale:I
            invokestatic java.math.BigDecimal.add:(Ljava/math/BigInteger;ILjava/math/BigInteger;I)Ljava/math/BigDecimal;
            areturn
        end local 1 // java.math.BigDecimal augend
        end local 0 // java.math.BigDecimal this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    7     0    this  Ljava/math/BigDecimal;
            0    7     1  augend  Ljava/math/BigDecimal;
    MethodParameters:
        Name  Flags
      augend  

  public java.math.BigDecimal add(java.math.BigDecimal, java.math.MathContext);
    descriptor: (Ljava/math/BigDecimal;Ljava/math/MathContext;)Ljava/math/BigDecimal;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=6, locals=10, args_size=3
        start local 0 // java.math.BigDecimal this
        start local 1 // java.math.BigDecimal augend
        start local 2 // java.math.MathContext mc
         0: .line 1320
            aload 2 /* mc */
            getfield java.math.MathContext.precision:I
            ifne 2
         1: .line 1321
            aload 0 /* this */
            aload 1 /* augend */
            invokevirtual java.math.BigDecimal.add:(Ljava/math/BigDecimal;)Ljava/math/BigDecimal;
            areturn
         2: .line 1322
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            astore 3 /* lhs */
        start local 3 // java.math.BigDecimal lhs
         3: .line 1327
            aload 3 /* lhs */
            invokevirtual java.math.BigDecimal.signum:()I
            ifne 4
            iconst_1
            goto 5
      StackMap locals: java.math.BigDecimal
      StackMap stack:
         4: iconst_0
      StackMap locals:
      StackMap stack: int
         5: istore 4 /* lhsIsZero */
        start local 4 // boolean lhsIsZero
         6: .line 1328
            aload 1 /* augend */
            invokevirtual java.math.BigDecimal.signum:()I
            ifne 7
            iconst_1
            goto 8
      StackMap locals: int
      StackMap stack:
         7: iconst_0
      StackMap locals:
      StackMap stack: int
         8: istore 5 /* augendIsZero */
        start local 5 // boolean augendIsZero
         9: .line 1330
            iload 4 /* lhsIsZero */
            ifne 10
            iload 5 /* augendIsZero */
            ifeq 25
        10: .line 1331
      StackMap locals: int
      StackMap stack:
            aload 3 /* lhs */
            invokevirtual java.math.BigDecimal.scale:()I
            aload 1 /* augend */
            invokevirtual java.math.BigDecimal.scale:()I
            invokestatic java.lang.Math.max:(II)I
            istore 6 /* preferredScale */
        start local 6 // int preferredScale
        11: .line 1334
            iload 4 /* lhsIsZero */
            ifeq 13
            iload 5 /* augendIsZero */
            ifeq 13
        12: .line 1335
            iload 6 /* preferredScale */
            invokestatic java.math.BigDecimal.zeroValueOf:(I)Ljava/math/BigDecimal;
            areturn
        13: .line 1336
      StackMap locals: int
      StackMap stack:
            iload 4 /* lhsIsZero */
            ifeq 14
            aload 1 /* augend */
            aload 2 /* mc */
            invokestatic java.math.BigDecimal.doRound:(Ljava/math/BigDecimal;Ljava/math/MathContext;)Ljava/math/BigDecimal;
            goto 15
      StackMap locals:
      StackMap stack:
        14: aload 3 /* lhs */
            aload 2 /* mc */
            invokestatic java.math.BigDecimal.doRound:(Ljava/math/BigDecimal;Ljava/math/MathContext;)Ljava/math/BigDecimal;
      StackMap locals:
      StackMap stack: java.math.BigDecimal
        15: astore 7 /* result */
        start local 7 // java.math.BigDecimal result
        16: .line 1338
            aload 7 /* result */
            invokevirtual java.math.BigDecimal.scale:()I
            iload 6 /* preferredScale */
            if_icmpne 18
        17: .line 1339
            aload 7 /* result */
            areturn
        18: .line 1340
      StackMap locals: java.math.BigDecimal
      StackMap stack:
            aload 7 /* result */
            invokevirtual java.math.BigDecimal.scale:()I
            iload 6 /* preferredScale */
            if_icmple 20
        19: .line 1341
            aload 7 /* result */
            getfield java.math.BigDecimal.intVal:Ljava/math/BigInteger;
            aload 7 /* result */
            getfield java.math.BigDecimal.intCompact:J
            aload 7 /* result */
            getfield java.math.BigDecimal.scale:I
            iload 6 /* preferredScale */
            invokestatic java.math.BigDecimal.stripZerosToMatchScale:(Ljava/math/BigInteger;JII)Ljava/math/BigDecimal;
            areturn
        20: .line 1343
      StackMap locals:
      StackMap stack:
            aload 2 /* mc */
            getfield java.math.MathContext.precision:I
            aload 7 /* result */
            invokevirtual java.math.BigDecimal.precision:()I
            isub
            istore 8 /* precisionDiff */
        start local 8 // int precisionDiff
        21: .line 1344
            iload 6 /* preferredScale */
            aload 7 /* result */
            invokevirtual java.math.BigDecimal.scale:()I
            isub
            istore 9 /* scaleDiff */
        start local 9 // int scaleDiff
        22: .line 1346
            iload 8 /* precisionDiff */
            iload 9 /* scaleDiff */
            if_icmplt 24
        23: .line 1347
            aload 7 /* result */
            iload 6 /* preferredScale */
            invokevirtual java.math.BigDecimal.setScale:(I)Ljava/math/BigDecimal;
            areturn
        24: .line 1349
      StackMap locals: int int
      StackMap stack:
            aload 7 /* result */
            aload 7 /* result */
            invokevirtual java.math.BigDecimal.scale:()I
            iload 8 /* precisionDiff */
            iadd
            invokevirtual java.math.BigDecimal.setScale:(I)Ljava/math/BigDecimal;
            areturn
        end local 9 // int scaleDiff
        end local 8 // int precisionDiff
        end local 7 // java.math.BigDecimal result
        end local 6 // int preferredScale
        end local 5 // boolean augendIsZero
        end local 4 // boolean lhsIsZero
        25: .line 1354
      StackMap locals: java.math.BigDecimal java.math.BigDecimal java.math.MathContext java.math.BigDecimal
      StackMap stack:
            aload 3 /* lhs */
            getfield java.math.BigDecimal.scale:I
            i2l
            aload 1 /* augend */
            getfield java.math.BigDecimal.scale:I
            i2l
            lsub
            lstore 4 /* padding */
        start local 4 // long padding
        26: .line 1355
            lload 4 /* padding */
            lconst_0
            lcmp
            ifeq 31
        27: .line 1356
            aload 0 /* this */
            aload 3 /* lhs */
            aload 1 /* augend */
            lload 4 /* padding */
            aload 2 /* mc */
            invokevirtual java.math.BigDecimal.preAlign:(Ljava/math/BigDecimal;Ljava/math/BigDecimal;JLjava/math/MathContext;)[Ljava/math/BigDecimal;
            astore 6 /* arg */
        start local 6 // java.math.BigDecimal[] arg
        28: .line 1357
            aload 6 /* arg */
            invokestatic java.math.BigDecimal.matchScale:([Ljava/math/BigDecimal;)V
        29: .line 1358
            aload 6 /* arg */
            iconst_0
            aaload
            astore 3 /* lhs */
        30: .line 1359
            aload 6 /* arg */
            iconst_1
            aaload
            astore 1 /* augend */
        end local 6 // java.math.BigDecimal[] arg
        31: .line 1361
      StackMap locals: long
      StackMap stack:
            aload 3 /* lhs */
            invokevirtual java.math.BigDecimal.inflated:()Ljava/math/BigInteger;
            aload 1 /* augend */
            invokevirtual java.math.BigDecimal.inflated:()Ljava/math/BigInteger;
            invokevirtual java.math.BigInteger.add:(Ljava/math/BigInteger;)Ljava/math/BigInteger;
            aload 3 /* lhs */
            getfield java.math.BigDecimal.scale:I
            aload 2 /* mc */
            invokestatic java.math.BigDecimal.doRound:(Ljava/math/BigInteger;ILjava/math/MathContext;)Ljava/math/BigDecimal;
            areturn
        end local 4 // long padding
        end local 3 // java.math.BigDecimal lhs
        end local 2 // java.math.MathContext mc
        end local 1 // java.math.BigDecimal augend
        end local 0 // java.math.BigDecimal this
      LocalVariableTable:
        Start  End  Slot            Name  Signature
            0   32     0            this  Ljava/math/BigDecimal;
            0   32     1          augend  Ljava/math/BigDecimal;
            0   32     2              mc  Ljava/math/MathContext;
            3   32     3             lhs  Ljava/math/BigDecimal;
            6   25     4       lhsIsZero  Z
            9   25     5    augendIsZero  Z
           11   25     6  preferredScale  I
           16   25     7          result  Ljava/math/BigDecimal;
           21   25     8   precisionDiff  I
           22   25     9       scaleDiff  I
           26   32     4         padding  J
           28   31     6             arg  [Ljava/math/BigDecimal;
    MethodParameters:
        Name  Flags
      augend  
      mc      

  private java.math.BigDecimal[] preAlign(java.math.BigDecimal, java.math.BigDecimal, long, java.math.MathContext);
    descriptor: (Ljava/math/BigDecimal;Ljava/math/BigDecimal;JLjava/math/MathContext;)[Ljava/math/BigDecimal;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=7, locals=13, args_size=5
        start local 0 // java.math.BigDecimal this
        start local 1 // java.math.BigDecimal lhs
        start local 2 // java.math.BigDecimal augend
        start local 3 // long padding
        start local 5 // java.math.MathContext mc
         0: .line 1387
            getstatic java.math.BigDecimal.$assertionsDisabled:Z
            ifne 1
            lload 3 /* padding */
            lconst_0
            lcmp
            ifne 1
            new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
         1: .line 1391
      StackMap locals:
      StackMap stack:
            lload 3 /* padding */
            lconst_0
            lcmp
            ifge 5
         2: .line 1392
            aload 1 /* lhs */
            astore 6 /* big */
        start local 6 // java.math.BigDecimal big
         3: .line 1393
            aload 2 /* augend */
            astore 7 /* small */
        start local 7 // java.math.BigDecimal small
         4: .line 1394
            goto 7
        end local 7 // java.math.BigDecimal small
        end local 6 // java.math.BigDecimal big
         5: .line 1395
      StackMap locals:
      StackMap stack:
            aload 2 /* augend */
            astore 6 /* big */
        start local 6 // java.math.BigDecimal big
         6: .line 1396
            aload 1 /* lhs */
            astore 7 /* small */
        start local 7 // java.math.BigDecimal small
         7: .line 1405
      StackMap locals: java.math.BigDecimal java.math.BigDecimal
      StackMap stack:
            aload 6 /* big */
            getfield java.math.BigDecimal.scale:I
            i2l
            aload 6 /* big */
            invokevirtual java.math.BigDecimal.precision:()I
            i2l
            lsub
            aload 5 /* mc */
            getfield java.math.MathContext.precision:I
            i2l
            ladd
            lstore 8 /* estResultUlpScale */
        start local 8 // long estResultUlpScale
         8: .line 1416
            aload 7 /* small */
            getfield java.math.BigDecimal.scale:I
            i2l
            aload 7 /* small */
            invokevirtual java.math.BigDecimal.precision:()I
            i2l
            lsub
            lconst_1
            ladd
            lstore 10 /* smallHighDigitPos */
        start local 10 // long smallHighDigitPos
         9: .line 1417
            lload 10 /* smallHighDigitPos */
            aload 6 /* big */
            getfield java.math.BigDecimal.scale:I
            iconst_2
            iadd
            i2l
            lcmp
            ifle 12
        10: .line 1418
            lload 10 /* smallHighDigitPos */
            lload 8 /* estResultUlpScale */
            ldc 2
            ladd
            lcmp
            ifle 12
        11: .line 1419
            aload 7 /* small */
            invokevirtual java.math.BigDecimal.signum:()I
            i2l
            aload 0 /* this */
            aload 6 /* big */
            getfield java.math.BigDecimal.scale:I
            i2l
            lload 8 /* estResultUlpScale */
            invokestatic java.lang.Math.max:(JJ)J
            ldc 3
            ladd
            invokevirtual java.math.BigDecimal.checkScale:(J)I
            invokestatic java.math.BigDecimal.valueOf:(JI)Ljava/math/BigDecimal;
            astore 7 /* small */
        12: .line 1424
      StackMap locals: long long
      StackMap stack:
            iconst_2
            anewarray java.math.BigDecimal
            dup
            iconst_0
            aload 6 /* big */
            aastore
            dup
            iconst_1
            aload 7 /* small */
            aastore
            astore 12 /* result */
        start local 12 // java.math.BigDecimal[] result
        13: .line 1425
            aload 12 /* result */
            areturn
        end local 12 // java.math.BigDecimal[] result
        end local 10 // long smallHighDigitPos
        end local 8 // long estResultUlpScale
        end local 7 // java.math.BigDecimal small
        end local 6 // java.math.BigDecimal big
        end local 5 // java.math.MathContext mc
        end local 3 // long padding
        end local 2 // java.math.BigDecimal augend
        end local 1 // java.math.BigDecimal lhs
        end local 0 // java.math.BigDecimal this
      LocalVariableTable:
        Start  End  Slot               Name  Signature
            0   14     0               this  Ljava/math/BigDecimal;
            0   14     1                lhs  Ljava/math/BigDecimal;
            0   14     2             augend  Ljava/math/BigDecimal;
            0   14     3            padding  J
            0   14     5                 mc  Ljava/math/MathContext;
            3    5     6                big  Ljava/math/BigDecimal;
            6   14     6                big  Ljava/math/BigDecimal;
            4    5     7              small  Ljava/math/BigDecimal;
            7   14     7              small  Ljava/math/BigDecimal;
            8   14     8  estResultUlpScale  J
            9   14    10  smallHighDigitPos  J
           13   14    12             result  [Ljava/math/BigDecimal;
    MethodParameters:
         Name  Flags
      lhs      
      augend   
      padding  
      mc       

  public java.math.BigDecimal subtract(java.math.BigDecimal);
    descriptor: (Ljava/math/BigDecimal;)Ljava/math/BigDecimal;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=6, locals=2, args_size=2
        start local 0 // java.math.BigDecimal this
        start local 1 // java.math.BigDecimal subtrahend
         0: .line 1437
            aload 0 /* this */
            getfield java.math.BigDecimal.intCompact:J
            ldc -9223372036854775808
            lcmp
            ifeq 4
         1: .line 1438
            aload 1 /* subtrahend */
            getfield java.math.BigDecimal.intCompact:J
            ldc -9223372036854775808
            lcmp
            ifeq 3
         2: .line 1439
            aload 0 /* this */
            getfield java.math.BigDecimal.intCompact:J
            aload 0 /* this */
            getfield java.math.BigDecimal.scale:I
            aload 1 /* subtrahend */
            getfield java.math.BigDecimal.intCompact:J
            lneg
            aload 1 /* subtrahend */
            getfield java.math.BigDecimal.scale:I
            invokestatic java.math.BigDecimal.add:(JIJI)Ljava/math/BigDecimal;
            areturn
         3: .line 1441
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield java.math.BigDecimal.intCompact:J
            aload 0 /* this */
            getfield java.math.BigDecimal.scale:I
            aload 1 /* subtrahend */
            getfield java.math.BigDecimal.intVal:Ljava/math/BigInteger;
            invokevirtual java.math.BigInteger.negate:()Ljava/math/BigInteger;
            aload 1 /* subtrahend */
            getfield java.math.BigDecimal.scale:I
            invokestatic java.math.BigDecimal.add:(JILjava/math/BigInteger;I)Ljava/math/BigDecimal;
            areturn
         4: .line 1444
      StackMap locals:
      StackMap stack:
            aload 1 /* subtrahend */
            getfield java.math.BigDecimal.intCompact:J
            ldc -9223372036854775808
            lcmp
            ifeq 6
         5: .line 1448
            aload 1 /* subtrahend */
            getfield java.math.BigDecimal.intCompact:J
            lneg
            aload 1 /* subtrahend */
            getfield java.math.BigDecimal.scale:I
            aload 0 /* this */
            getfield java.math.BigDecimal.intVal:Ljava/math/BigInteger;
            aload 0 /* this */
            getfield java.math.BigDecimal.scale:I
            invokestatic java.math.BigDecimal.add:(JILjava/math/BigInteger;I)Ljava/math/BigDecimal;
            areturn
         6: .line 1450
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield java.math.BigDecimal.intVal:Ljava/math/BigInteger;
            aload 0 /* this */
            getfield java.math.BigDecimal.scale:I
            aload 1 /* subtrahend */
            getfield java.math.BigDecimal.intVal:Ljava/math/BigInteger;
            invokevirtual java.math.BigInteger.negate:()Ljava/math/BigInteger;
            aload 1 /* subtrahend */
            getfield java.math.BigDecimal.scale:I
            invokestatic java.math.BigDecimal.add:(Ljava/math/BigInteger;ILjava/math/BigInteger;I)Ljava/math/BigDecimal;
            areturn
        end local 1 // java.math.BigDecimal subtrahend
        end local 0 // java.math.BigDecimal this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0    7     0        this  Ljava/math/BigDecimal;
            0    7     1  subtrahend  Ljava/math/BigDecimal;
    MethodParameters:
            Name  Flags
      subtrahend  

  public java.math.BigDecimal subtract(java.math.BigDecimal, java.math.MathContext);
    descriptor: (Ljava/math/BigDecimal;Ljava/math/MathContext;)Ljava/math/BigDecimal;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=3, args_size=3
        start local 0 // java.math.BigDecimal this
        start local 1 // java.math.BigDecimal subtrahend
        start local 2 // java.math.MathContext mc
         0: .line 1470
            aload 2 /* mc */
            getfield java.math.MathContext.precision:I
            ifne 2
         1: .line 1471
            aload 0 /* this */
            aload 1 /* subtrahend */
            invokevirtual java.math.BigDecimal.subtract:(Ljava/math/BigDecimal;)Ljava/math/BigDecimal;
            areturn
         2: .line 1473
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 1 /* subtrahend */
            invokevirtual java.math.BigDecimal.negate:()Ljava/math/BigDecimal;
            aload 2 /* mc */
            invokevirtual java.math.BigDecimal.add:(Ljava/math/BigDecimal;Ljava/math/MathContext;)Ljava/math/BigDecimal;
            areturn
        end local 2 // java.math.MathContext mc
        end local 1 // java.math.BigDecimal subtrahend
        end local 0 // java.math.BigDecimal this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0    3     0        this  Ljava/math/BigDecimal;
            0    3     1  subtrahend  Ljava/math/BigDecimal;
            0    3     2          mc  Ljava/math/MathContext;
    MethodParameters:
            Name  Flags
      subtrahend  
      mc          

  public java.math.BigDecimal multiply(java.math.BigDecimal);
    descriptor: (Ljava/math/BigDecimal;)Ljava/math/BigDecimal;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=3, args_size=2
        start local 0 // java.math.BigDecimal this
        start local 1 // java.math.BigDecimal multiplicand
         0: .line 1485
            aload 0 /* this */
            aload 0 /* this */
            getfield java.math.BigDecimal.scale:I
            i2l
            aload 1 /* multiplicand */
            getfield java.math.BigDecimal.scale:I
            i2l
            ladd
            invokevirtual java.math.BigDecimal.checkScale:(J)I
            istore 2 /* productScale */
        start local 2 // int productScale
         1: .line 1486
            aload 0 /* this */
            getfield java.math.BigDecimal.intCompact:J
            ldc -9223372036854775808
            lcmp
            ifeq 5
         2: .line 1487
            aload 1 /* multiplicand */
            getfield java.math.BigDecimal.intCompact:J
            ldc -9223372036854775808
            lcmp
            ifeq 4
         3: .line 1488
            aload 0 /* this */
            getfield java.math.BigDecimal.intCompact:J
            aload 1 /* multiplicand */
            getfield java.math.BigDecimal.intCompact:J
            iload 2 /* productScale */
            invokestatic java.math.BigDecimal.multiply:(JJI)Ljava/math/BigDecimal;
            areturn
         4: .line 1490
      StackMap locals: int
      StackMap stack:
            aload 0 /* this */
            getfield java.math.BigDecimal.intCompact:J
            aload 1 /* multiplicand */
            getfield java.math.BigDecimal.intVal:Ljava/math/BigInteger;
            iload 2 /* productScale */
            invokestatic java.math.BigDecimal.multiply:(JLjava/math/BigInteger;I)Ljava/math/BigDecimal;
            areturn
         5: .line 1493
      StackMap locals:
      StackMap stack:
            aload 1 /* multiplicand */
            getfield java.math.BigDecimal.intCompact:J
            ldc -9223372036854775808
            lcmp
            ifeq 7
         6: .line 1494
            aload 1 /* multiplicand */
            getfield java.math.BigDecimal.intCompact:J
            aload 0 /* this */
            getfield java.math.BigDecimal.intVal:Ljava/math/BigInteger;
            iload 2 /* productScale */
            invokestatic java.math.BigDecimal.multiply:(JLjava/math/BigInteger;I)Ljava/math/BigDecimal;
            areturn
         7: .line 1496
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield java.math.BigDecimal.intVal:Ljava/math/BigInteger;
            aload 1 /* multiplicand */
            getfield java.math.BigDecimal.intVal:Ljava/math/BigInteger;
            iload 2 /* productScale */
            invokestatic java.math.BigDecimal.multiply:(Ljava/math/BigInteger;Ljava/math/BigInteger;I)Ljava/math/BigDecimal;
            areturn
        end local 2 // int productScale
        end local 1 // java.math.BigDecimal multiplicand
        end local 0 // java.math.BigDecimal this
      LocalVariableTable:
        Start  End  Slot          Name  Signature
            0    8     0          this  Ljava/math/BigDecimal;
            0    8     1  multiplicand  Ljava/math/BigDecimal;
            1    8     2  productScale  I
    MethodParameters:
              Name  Flags
      multiplicand  

  public java.math.BigDecimal multiply(java.math.BigDecimal, java.math.MathContext);
    descriptor: (Ljava/math/BigDecimal;Ljava/math/MathContext;)Ljava/math/BigDecimal;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=6, locals=4, args_size=3
        start local 0 // java.math.BigDecimal this
        start local 1 // java.math.BigDecimal multiplicand
        start local 2 // java.math.MathContext mc
         0: .line 1513
            aload 2 /* mc */
            getfield java.math.MathContext.precision:I
            ifne 2
         1: .line 1514
            aload 0 /* this */
            aload 1 /* multiplicand */
            invokevirtual java.math.BigDecimal.multiply:(Ljava/math/BigDecimal;)Ljava/math/BigDecimal;
            areturn
         2: .line 1515
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 0 /* this */
            getfield java.math.BigDecimal.scale:I
            i2l
            aload 1 /* multiplicand */
            getfield java.math.BigDecimal.scale:I
            i2l
            ladd
            invokevirtual java.math.BigDecimal.checkScale:(J)I
            istore 3 /* productScale */
        start local 3 // int productScale
         3: .line 1516
            aload 0 /* this */
            getfield java.math.BigDecimal.intCompact:J
            ldc -9223372036854775808
            lcmp
            ifeq 7
         4: .line 1517
            aload 1 /* multiplicand */
            getfield java.math.BigDecimal.intCompact:J
            ldc -9223372036854775808
            lcmp
            ifeq 6
         5: .line 1518
            aload 0 /* this */
            getfield java.math.BigDecimal.intCompact:J
            aload 1 /* multiplicand */
            getfield java.math.BigDecimal.intCompact:J
            iload 3 /* productScale */
            aload 2 /* mc */
            invokestatic java.math.BigDecimal.multiplyAndRound:(JJILjava/math/MathContext;)Ljava/math/BigDecimal;
            areturn
         6: .line 1520
      StackMap locals: int
      StackMap stack:
            aload 0 /* this */
            getfield java.math.BigDecimal.intCompact:J
            aload 1 /* multiplicand */
            getfield java.math.BigDecimal.intVal:Ljava/math/BigInteger;
            iload 3 /* productScale */
            aload 2 /* mc */
            invokestatic java.math.BigDecimal.multiplyAndRound:(JLjava/math/BigInteger;ILjava/math/MathContext;)Ljava/math/BigDecimal;
            areturn
         7: .line 1523
      StackMap locals:
      StackMap stack:
            aload 1 /* multiplicand */
            getfield java.math.BigDecimal.intCompact:J
            ldc -9223372036854775808
            lcmp
            ifeq 9
         8: .line 1524
            aload 1 /* multiplicand */
            getfield java.math.BigDecimal.intCompact:J
            aload 0 /* this */
            getfield java.math.BigDecimal.intVal:Ljava/math/BigInteger;
            iload 3 /* productScale */
            aload 2 /* mc */
            invokestatic java.math.BigDecimal.multiplyAndRound:(JLjava/math/BigInteger;ILjava/math/MathContext;)Ljava/math/BigDecimal;
            areturn
         9: .line 1526
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield java.math.BigDecimal.intVal:Ljava/math/BigInteger;
            aload 1 /* multiplicand */
            getfield java.math.BigDecimal.intVal:Ljava/math/BigInteger;
            iload 3 /* productScale */
            aload 2 /* mc */
            invokestatic java.math.BigDecimal.multiplyAndRound:(Ljava/math/BigInteger;Ljava/math/BigInteger;ILjava/math/MathContext;)Ljava/math/BigDecimal;
            areturn
        end local 3 // int productScale
        end local 2 // java.math.MathContext mc
        end local 1 // java.math.BigDecimal multiplicand
        end local 0 // java.math.BigDecimal this
      LocalVariableTable:
        Start  End  Slot          Name  Signature
            0   10     0          this  Ljava/math/BigDecimal;
            0   10     1  multiplicand  Ljava/math/BigDecimal;
            0   10     2            mc  Ljava/math/MathContext;
            3   10     3  productScale  I
    MethodParameters:
              Name  Flags
      multiplicand  
      mc            

  public java.math.BigDecimal divide(java.math.BigDecimal, int, int);
    descriptor: (Ljava/math/BigDecimal;II)Ljava/math/BigDecimal;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=8, locals=4, args_size=4
        start local 0 // java.math.BigDecimal this
        start local 1 // java.math.BigDecimal divisor
        start local 2 // int scale
        start local 3 // int roundingMode
         0: .line 1560
            iload 3 /* roundingMode */
            iflt 1
            iload 3 /* roundingMode */
            bipush 7
            if_icmple 2
         1: .line 1561
      StackMap locals:
      StackMap stack:
            new java.lang.IllegalArgumentException
            dup
            ldc "Invalid rounding mode"
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
            athrow
         2: .line 1562
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield java.math.BigDecimal.intCompact:J
            ldc -9223372036854775808
            lcmp
            ifeq 6
         3: .line 1563
            aload 1 /* divisor */
            getfield java.math.BigDecimal.intCompact:J
            ldc -9223372036854775808
            lcmp
            ifeq 5
         4: .line 1564
            aload 0 /* this */
            getfield java.math.BigDecimal.intCompact:J
            aload 0 /* this */
            getfield java.math.BigDecimal.scale:I
            aload 1 /* divisor */
            getfield java.math.BigDecimal.intCompact:J
            aload 1 /* divisor */
            getfield java.math.BigDecimal.scale:I
            iload 2 /* scale */
            iload 3 /* roundingMode */
            invokestatic java.math.BigDecimal.divide:(JIJIII)Ljava/math/BigDecimal;
            areturn
         5: .line 1566
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield java.math.BigDecimal.intCompact:J
            aload 0 /* this */
            getfield java.math.BigDecimal.scale:I
            aload 1 /* divisor */
            getfield java.math.BigDecimal.intVal:Ljava/math/BigInteger;
            aload 1 /* divisor */
            getfield java.math.BigDecimal.scale:I
            iload 2 /* scale */
            iload 3 /* roundingMode */
            invokestatic java.math.BigDecimal.divide:(JILjava/math/BigInteger;III)Ljava/math/BigDecimal;
            areturn
         6: .line 1569
      StackMap locals:
      StackMap stack:
            aload 1 /* divisor */
            getfield java.math.BigDecimal.intCompact:J
            ldc -9223372036854775808
            lcmp
            ifeq 8
         7: .line 1570
            aload 0 /* this */
            getfield java.math.BigDecimal.intVal:Ljava/math/BigInteger;
            aload 0 /* this */
            getfield java.math.BigDecimal.scale:I
            aload 1 /* divisor */
            getfield java.math.BigDecimal.intCompact:J
            aload 1 /* divisor */
            getfield java.math.BigDecimal.scale:I
            iload 2 /* scale */
            iload 3 /* roundingMode */
            invokestatic java.math.BigDecimal.divide:(Ljava/math/BigInteger;IJIII)Ljava/math/BigDecimal;
            areturn
         8: .line 1572
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield java.math.BigDecimal.intVal:Ljava/math/BigInteger;
            aload 0 /* this */
            getfield java.math.BigDecimal.scale:I
            aload 1 /* divisor */
            getfield java.math.BigDecimal.intVal:Ljava/math/BigInteger;
            aload 1 /* divisor */
            getfield java.math.BigDecimal.scale:I
            iload 2 /* scale */
            iload 3 /* roundingMode */
            invokestatic java.math.BigDecimal.divide:(Ljava/math/BigInteger;ILjava/math/BigInteger;III)Ljava/math/BigDecimal;
            areturn
        end local 3 // int roundingMode
        end local 2 // int scale
        end local 1 // java.math.BigDecimal divisor
        end local 0 // java.math.BigDecimal this
      LocalVariableTable:
        Start  End  Slot          Name  Signature
            0    9     0          this  Ljava/math/BigDecimal;
            0    9     1       divisor  Ljava/math/BigDecimal;
            0    9     2         scale  I
            0    9     3  roundingMode  I
    MethodParameters:
              Name  Flags
      divisor       
      scale         
      roundingMode  

  public java.math.BigDecimal divide(java.math.BigDecimal, int, java.math.RoundingMode);
    descriptor: (Ljava/math/BigDecimal;ILjava/math/RoundingMode;)Ljava/math/BigDecimal;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=4, args_size=4
        start local 0 // java.math.BigDecimal this
        start local 1 // java.math.BigDecimal divisor
        start local 2 // int scale
        start local 3 // java.math.RoundingMode roundingMode
         0: .line 1594
            aload 0 /* this */
            aload 1 /* divisor */
            iload 2 /* scale */
            aload 3 /* roundingMode */
            getfield java.math.RoundingMode.oldMode:I
            invokevirtual java.math.BigDecimal.divide:(Ljava/math/BigDecimal;II)Ljava/math/BigDecimal;
            areturn
        end local 3 // java.math.RoundingMode roundingMode
        end local 2 // int scale
        end local 1 // java.math.BigDecimal divisor
        end local 0 // java.math.BigDecimal this
      LocalVariableTable:
        Start  End  Slot          Name  Signature
            0    1     0          this  Ljava/math/BigDecimal;
            0    1     1       divisor  Ljava/math/BigDecimal;
            0    1     2         scale  I
            0    1     3  roundingMode  Ljava/math/RoundingMode;
    MethodParameters:
              Name  Flags
      divisor       
      scale         
      roundingMode  

  public java.math.BigDecimal divide(java.math.BigDecimal, int);
    descriptor: (Ljava/math/BigDecimal;I)Ljava/math/BigDecimal;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=3, args_size=3
        start local 0 // java.math.BigDecimal this
        start local 1 // java.math.BigDecimal divisor
        start local 2 // int roundingMode
         0: .line 1625
            aload 0 /* this */
            aload 1 /* divisor */
            aload 0 /* this */
            getfield java.math.BigDecimal.scale:I
            iload 2 /* roundingMode */
            invokevirtual java.math.BigDecimal.divide:(Ljava/math/BigDecimal;II)Ljava/math/BigDecimal;
            areturn
        end local 2 // int roundingMode
        end local 1 // java.math.BigDecimal divisor
        end local 0 // java.math.BigDecimal this
      LocalVariableTable:
        Start  End  Slot          Name  Signature
            0    1     0          this  Ljava/math/BigDecimal;
            0    1     1       divisor  Ljava/math/BigDecimal;
            0    1     2  roundingMode  I
    MethodParameters:
              Name  Flags
      divisor       
      roundingMode  

  public java.math.BigDecimal divide(java.math.BigDecimal, java.math.RoundingMode);
    descriptor: (Ljava/math/BigDecimal;Ljava/math/RoundingMode;)Ljava/math/BigDecimal;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=3, args_size=3
        start local 0 // java.math.BigDecimal this
        start local 1 // java.math.BigDecimal divisor
        start local 2 // java.math.RoundingMode roundingMode
         0: .line 1644
            aload 0 /* this */
            aload 1 /* divisor */
            aload 0 /* this */
            getfield java.math.BigDecimal.scale:I
            aload 2 /* roundingMode */
            getfield java.math.RoundingMode.oldMode:I
            invokevirtual java.math.BigDecimal.divide:(Ljava/math/BigDecimal;II)Ljava/math/BigDecimal;
            areturn
        end local 2 // java.math.RoundingMode roundingMode
        end local 1 // java.math.BigDecimal divisor
        end local 0 // java.math.BigDecimal this
      LocalVariableTable:
        Start  End  Slot          Name  Signature
            0    1     0          this  Ljava/math/BigDecimal;
            0    1     1       divisor  Ljava/math/BigDecimal;
            0    1     2  roundingMode  Ljava/math/RoundingMode;
    MethodParameters:
              Name  Flags
      divisor       
      roundingMode  

  public java.math.BigDecimal divide(java.math.BigDecimal);
    descriptor: (Ljava/math/BigDecimal;)Ljava/math/BigDecimal;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=8, locals=6, args_size=2
        start local 0 // java.math.BigDecimal this
        start local 1 // java.math.BigDecimal divisor
         0: .line 1665
            aload 1 /* divisor */
            invokevirtual java.math.BigDecimal.signum:()I
            ifne 4
         1: .line 1666
            aload 0 /* this */
            invokevirtual java.math.BigDecimal.signum:()I
            ifne 3
         2: .line 1667
            new java.lang.ArithmeticException
            dup
            ldc "Division undefined"
            invokespecial java.lang.ArithmeticException.<init>:(Ljava/lang/String;)V
            athrow
         3: .line 1668
      StackMap locals:
      StackMap stack:
            new java.lang.ArithmeticException
            dup
            ldc "Division by zero"
            invokespecial java.lang.ArithmeticException.<init>:(Ljava/lang/String;)V
            athrow
         4: .line 1672
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield java.math.BigDecimal.scale:I
            i2l
            aload 1 /* divisor */
            getfield java.math.BigDecimal.scale:I
            i2l
            lsub
            invokestatic java.math.BigDecimal.saturateLong:(J)I
            istore 2 /* preferredScale */
        start local 2 // int preferredScale
         5: .line 1674
            aload 0 /* this */
            invokevirtual java.math.BigDecimal.signum:()I
            ifne 7
         6: .line 1675
            iload 2 /* preferredScale */
            invokestatic java.math.BigDecimal.zeroValueOf:(I)Ljava/math/BigDecimal;
            areturn
         7: .line 1685
      StackMap locals: int
      StackMap stack:
            new java.math.MathContext
            dup
            aload 0 /* this */
            invokevirtual java.math.BigDecimal.precision:()I
            i2l
         8: .line 1686
            ldc 10.0
            aload 1 /* divisor */
            invokevirtual java.math.BigDecimal.precision:()I
            i2d
            dmul
            ldc 3.0
            ddiv
            invokestatic java.lang.Math.ceil:(D)D
            d2l
            ladd
         9: .line 1687
            ldc 2147483647
        10: .line 1685
            invokestatic java.lang.Math.min:(JJ)J
            l2i
        11: .line 1688
            getstatic java.math.RoundingMode.UNNECESSARY:Ljava/math/RoundingMode;
        12: .line 1685
            invokespecial java.math.MathContext.<init>:(ILjava/math/RoundingMode;)V
            astore 3 /* mc */
        start local 3 // java.math.MathContext mc
        13: .line 1691
            aload 0 /* this */
            aload 1 /* divisor */
            aload 3 /* mc */
            invokevirtual java.math.BigDecimal.divide:(Ljava/math/BigDecimal;Ljava/math/MathContext;)Ljava/math/BigDecimal;
            astore 4 /* quotient */
        start local 4 // java.math.BigDecimal quotient
        14: .line 1692
            goto 17
        end local 4 // java.math.BigDecimal quotient
      StackMap locals: java.math.BigDecimal java.math.BigDecimal int java.math.MathContext
      StackMap stack: java.lang.ArithmeticException
        15: pop
        16: .line 1693
            new java.lang.ArithmeticException
            dup
            ldc "Non-terminating decimal expansion; no exact representable decimal result."
            invokespecial java.lang.ArithmeticException.<init>:(Ljava/lang/String;)V
            athrow
        start local 4 // java.math.BigDecimal quotient
        17: .line 1697
      StackMap locals: java.math.BigDecimal
      StackMap stack:
            aload 4 /* quotient */
            invokevirtual java.math.BigDecimal.scale:()I
            istore 5 /* quotientScale */
        start local 5 // int quotientScale
        18: .line 1703
            iload 2 /* preferredScale */
            iload 5 /* quotientScale */
            if_icmple 20
        19: .line 1704
            aload 4 /* quotient */
            iload 2 /* preferredScale */
            bipush 7
            invokevirtual java.math.BigDecimal.setScale:(II)Ljava/math/BigDecimal;
            areturn
        20: .line 1706
      StackMap locals: int
      StackMap stack:
            aload 4 /* quotient */
            areturn
        end local 5 // int quotientScale
        end local 4 // java.math.BigDecimal quotient
        end local 3 // java.math.MathContext mc
        end local 2 // int preferredScale
        end local 1 // java.math.BigDecimal divisor
        end local 0 // java.math.BigDecimal this
      LocalVariableTable:
        Start  End  Slot            Name  Signature
            0   21     0            this  Ljava/math/BigDecimal;
            0   21     1         divisor  Ljava/math/BigDecimal;
            5   21     2  preferredScale  I
           13   21     3              mc  Ljava/math/MathContext;
           14   15     4        quotient  Ljava/math/BigDecimal;
           17   21     4        quotient  Ljava/math/BigDecimal;
           18   21     5   quotientScale  I
      Exception table:
        from    to  target  type
          13    14      15  Class java.lang.ArithmeticException
    MethodParameters:
         Name  Flags
      divisor  

  public java.math.BigDecimal divide(java.math.BigDecimal, java.math.MathContext);
    descriptor: (Ljava/math/BigDecimal;Ljava/math/MathContext;)Ljava/math/BigDecimal;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=9, locals=9, args_size=3
        start local 0 // java.math.BigDecimal this
        start local 1 // java.math.BigDecimal divisor
        start local 2 // java.math.MathContext mc
         0: .line 1724
            aload 2 /* mc */
            getfield java.math.MathContext.precision:I
            istore 3 /* mcp */
        start local 3 // int mcp
         1: .line 1725
            iload 3 /* mcp */
            ifne 3
         2: .line 1726
            aload 0 /* this */
            aload 1 /* divisor */
            invokevirtual java.math.BigDecimal.divide:(Ljava/math/BigDecimal;)Ljava/math/BigDecimal;
            areturn
         3: .line 1728
      StackMap locals: int
      StackMap stack:
            aload 0 /* this */
            astore 4 /* dividend */
        start local 4 // java.math.BigDecimal dividend
         4: .line 1729
            aload 4 /* dividend */
            getfield java.math.BigDecimal.scale:I
            i2l
            aload 1 /* divisor */
            getfield java.math.BigDecimal.scale:I
            i2l
            lsub
            lstore 5 /* preferredScale */
        start local 5 // long preferredScale
         5: .line 1742
            aload 1 /* divisor */
            invokevirtual java.math.BigDecimal.signum:()I
            ifne 9
         6: .line 1743
            aload 4 /* dividend */
            invokevirtual java.math.BigDecimal.signum:()I
            ifne 8
         7: .line 1744
            new java.lang.ArithmeticException
            dup
            ldc "Division undefined"
            invokespecial java.lang.ArithmeticException.<init>:(Ljava/lang/String;)V
            athrow
         8: .line 1745
      StackMap locals: java.math.BigDecimal long
      StackMap stack:
            new java.lang.ArithmeticException
            dup
            ldc "Division by zero"
            invokespecial java.lang.ArithmeticException.<init>:(Ljava/lang/String;)V
            athrow
         9: .line 1747
      StackMap locals:
      StackMap stack:
            aload 4 /* dividend */
            invokevirtual java.math.BigDecimal.signum:()I
            ifne 11
        10: .line 1748
            lload 5 /* preferredScale */
            invokestatic java.math.BigDecimal.saturateLong:(J)I
            invokestatic java.math.BigDecimal.zeroValueOf:(I)Ljava/math/BigDecimal;
            areturn
        11: .line 1749
      StackMap locals:
      StackMap stack:
            aload 4 /* dividend */
            invokevirtual java.math.BigDecimal.precision:()I
            istore 7 /* xscale */
        start local 7 // int xscale
        12: .line 1750
            aload 1 /* divisor */
            invokevirtual java.math.BigDecimal.precision:()I
            istore 8 /* yscale */
        start local 8 // int yscale
        13: .line 1751
            aload 4 /* dividend */
            getfield java.math.BigDecimal.intCompact:J
            ldc -9223372036854775808
            lcmp
            ifeq 17
        14: .line 1752
            aload 1 /* divisor */
            getfield java.math.BigDecimal.intCompact:J
            ldc -9223372036854775808
            lcmp
            ifeq 16
        15: .line 1753
            aload 4 /* dividend */
            getfield java.math.BigDecimal.intCompact:J
            iload 7 /* xscale */
            aload 1 /* divisor */
            getfield java.math.BigDecimal.intCompact:J
            iload 8 /* yscale */
            lload 5 /* preferredScale */
            aload 2 /* mc */
            invokestatic java.math.BigDecimal.divide:(JIJIJLjava/math/MathContext;)Ljava/math/BigDecimal;
            areturn
        16: .line 1755
      StackMap locals: int int
      StackMap stack:
            aload 4 /* dividend */
            getfield java.math.BigDecimal.intCompact:J
            iload 7 /* xscale */
            aload 1 /* divisor */
            getfield java.math.BigDecimal.intVal:Ljava/math/BigInteger;
            iload 8 /* yscale */
            lload 5 /* preferredScale */
            aload 2 /* mc */
            invokestatic java.math.BigDecimal.divide:(JILjava/math/BigInteger;IJLjava/math/MathContext;)Ljava/math/BigDecimal;
            areturn
        17: .line 1758
      StackMap locals:
      StackMap stack:
            aload 1 /* divisor */
            getfield java.math.BigDecimal.intCompact:J
            ldc -9223372036854775808
            lcmp
            ifeq 19
        18: .line 1759
            aload 4 /* dividend */
            getfield java.math.BigDecimal.intVal:Ljava/math/BigInteger;
            iload 7 /* xscale */
            aload 1 /* divisor */
            getfield java.math.BigDecimal.intCompact:J
            iload 8 /* yscale */
            lload 5 /* preferredScale */
            aload 2 /* mc */
            invokestatic java.math.BigDecimal.divide:(Ljava/math/BigInteger;IJIJLjava/math/MathContext;)Ljava/math/BigDecimal;
            areturn
        19: .line 1761
      StackMap locals:
      StackMap stack:
            aload 4 /* dividend */
            getfield java.math.BigDecimal.intVal:Ljava/math/BigInteger;
            iload 7 /* xscale */
            aload 1 /* divisor */
            getfield java.math.BigDecimal.intVal:Ljava/math/BigInteger;
            iload 8 /* yscale */
            lload 5 /* preferredScale */
            aload 2 /* mc */
            invokestatic java.math.BigDecimal.divide:(Ljava/math/BigInteger;ILjava/math/BigInteger;IJLjava/math/MathContext;)Ljava/math/BigDecimal;
            areturn
        end local 8 // int yscale
        end local 7 // int xscale
        end local 5 // long preferredScale
        end local 4 // java.math.BigDecimal dividend
        end local 3 // int mcp
        end local 2 // java.math.MathContext mc
        end local 1 // java.math.BigDecimal divisor
        end local 0 // java.math.BigDecimal this
      LocalVariableTable:
        Start  End  Slot            Name  Signature
            0   20     0            this  Ljava/math/BigDecimal;
            0   20     1         divisor  Ljava/math/BigDecimal;
            0   20     2              mc  Ljava/math/MathContext;
            1   20     3             mcp  I
            4   20     4        dividend  Ljava/math/BigDecimal;
            5   20     5  preferredScale  J
           12   20     7          xscale  I
           13   20     8          yscale  I
    MethodParameters:
         Name  Flags
      divisor  
      mc       

  public java.math.BigDecimal divideToIntegralValue(java.math.BigDecimal);
    descriptor: (Ljava/math/BigDecimal;)Ljava/math/BigDecimal;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=6, locals=5, args_size=2
        start local 0 // java.math.BigDecimal this
        start local 1 // java.math.BigDecimal divisor
         0: .line 1779
            aload 0 /* this */
            getfield java.math.BigDecimal.scale:I
            i2l
            aload 1 /* divisor */
            getfield java.math.BigDecimal.scale:I
            i2l
            lsub
            invokestatic java.math.BigDecimal.saturateLong:(J)I
            istore 2 /* preferredScale */
        start local 2 // int preferredScale
         1: .line 1780
            aload 0 /* this */
            aload 1 /* divisor */
            invokevirtual java.math.BigDecimal.compareMagnitude:(Ljava/math/BigDecimal;)I
            ifge 3
         2: .line 1782
            iload 2 /* preferredScale */
            invokestatic java.math.BigDecimal.zeroValueOf:(I)Ljava/math/BigDecimal;
            areturn
         3: .line 1785
      StackMap locals: int
      StackMap stack:
            aload 0 /* this */
            invokevirtual java.math.BigDecimal.signum:()I
            ifne 5
            aload 1 /* divisor */
            invokevirtual java.math.BigDecimal.signum:()I
            ifeq 5
         4: .line 1786
            aload 0 /* this */
            iload 2 /* preferredScale */
            bipush 7
            invokevirtual java.math.BigDecimal.setScale:(II)Ljava/math/BigDecimal;
            areturn
         5: .line 1791
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokevirtual java.math.BigDecimal.precision:()I
            i2l
         6: .line 1792
            ldc 10.0
            aload 1 /* divisor */
            invokevirtual java.math.BigDecimal.precision:()I
            i2d
            dmul
            ldc 3.0
            ddiv
            invokestatic java.lang.Math.ceil:(D)D
            d2l
         7: .line 1791
            ladd
         8: .line 1793
            aload 0 /* this */
            invokevirtual java.math.BigDecimal.scale:()I
            i2l
            aload 1 /* divisor */
            invokevirtual java.math.BigDecimal.scale:()I
            i2l
            lsub
            invokestatic java.lang.Math.abs:(J)J
         9: .line 1791
            ladd
        10: .line 1793
            ldc 2
        11: .line 1791
            ladd
        12: .line 1794
            ldc 2147483647
        13: .line 1791
            invokestatic java.lang.Math.min:(JJ)J
            l2i
            istore 3 /* maxDigits */
        start local 3 // int maxDigits
        14: .line 1795
            aload 0 /* this */
            aload 1 /* divisor */
            new java.math.MathContext
            dup
            iload 3 /* maxDigits */
        15: .line 1796
            getstatic java.math.RoundingMode.DOWN:Ljava/math/RoundingMode;
            invokespecial java.math.MathContext.<init>:(ILjava/math/RoundingMode;)V
        16: .line 1795
            invokevirtual java.math.BigDecimal.divide:(Ljava/math/BigDecimal;Ljava/math/MathContext;)Ljava/math/BigDecimal;
            astore 4 /* quotient */
        start local 4 // java.math.BigDecimal quotient
        17: .line 1797
            aload 4 /* quotient */
            getfield java.math.BigDecimal.scale:I
            ifle 20
        18: .line 1798
            aload 4 /* quotient */
            iconst_0
            getstatic java.math.RoundingMode.DOWN:Ljava/math/RoundingMode;
            invokevirtual java.math.BigDecimal.setScale:(ILjava/math/RoundingMode;)Ljava/math/BigDecimal;
            astore 4 /* quotient */
        19: .line 1799
            aload 4 /* quotient */
            getfield java.math.BigDecimal.intVal:Ljava/math/BigInteger;
            aload 4 /* quotient */
            getfield java.math.BigDecimal.intCompact:J
            aload 4 /* quotient */
            getfield java.math.BigDecimal.scale:I
            iload 2 /* preferredScale */
            invokestatic java.math.BigDecimal.stripZerosToMatchScale:(Ljava/math/BigInteger;JII)Ljava/math/BigDecimal;
            astore 4 /* quotient */
        20: .line 1802
      StackMap locals: int java.math.BigDecimal
      StackMap stack:
            aload 4 /* quotient */
            getfield java.math.BigDecimal.scale:I
            iload 2 /* preferredScale */
            if_icmpge 22
        21: .line 1804
            aload 4 /* quotient */
            iload 2 /* preferredScale */
            bipush 7
            invokevirtual java.math.BigDecimal.setScale:(II)Ljava/math/BigDecimal;
            astore 4 /* quotient */
        22: .line 1807
      StackMap locals:
      StackMap stack:
            aload 4 /* quotient */
            areturn
        end local 4 // java.math.BigDecimal quotient
        end local 3 // int maxDigits
        end local 2 // int preferredScale
        end local 1 // java.math.BigDecimal divisor
        end local 0 // java.math.BigDecimal this
      LocalVariableTable:
        Start  End  Slot            Name  Signature
            0   23     0            this  Ljava/math/BigDecimal;
            0   23     1         divisor  Ljava/math/BigDecimal;
            1   23     2  preferredScale  I
           14   23     3       maxDigits  I
           17   23     4        quotient  Ljava/math/BigDecimal;
    MethodParameters:
         Name  Flags
      divisor  

  public java.math.BigDecimal divideToIntegralValue(java.math.BigDecimal, java.math.MathContext);
    descriptor: (Ljava/math/BigDecimal;Ljava/math/MathContext;)Ljava/math/BigDecimal;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=6, locals=6, args_size=3
        start local 0 // java.math.BigDecimal this
        start local 1 // java.math.BigDecimal divisor
        start local 2 // java.math.MathContext mc
         0: .line 1831
            aload 2 /* mc */
            getfield java.math.MathContext.precision:I
            ifeq 2
         1: .line 1832
            aload 0 /* this */
            aload 1 /* divisor */
            invokevirtual java.math.BigDecimal.compareMagnitude:(Ljava/math/BigDecimal;)I
            ifge 3
         2: .line 1833
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 1 /* divisor */
            invokevirtual java.math.BigDecimal.divideToIntegralValue:(Ljava/math/BigDecimal;)Ljava/math/BigDecimal;
            areturn
         3: .line 1836
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield java.math.BigDecimal.scale:I
            i2l
            aload 1 /* divisor */
            getfield java.math.BigDecimal.scale:I
            i2l
            lsub
            invokestatic java.math.BigDecimal.saturateLong:(J)I
            istore 3 /* preferredScale */
        start local 3 // int preferredScale
         4: .line 1845
            aload 0 /* this */
            aload 1 /* divisor */
            new java.math.MathContext
            dup
            aload 2 /* mc */
            getfield java.math.MathContext.precision:I
            getstatic java.math.RoundingMode.DOWN:Ljava/math/RoundingMode;
            invokespecial java.math.MathContext.<init>:(ILjava/math/RoundingMode;)V
            invokevirtual java.math.BigDecimal.divide:(Ljava/math/BigDecimal;Ljava/math/MathContext;)Ljava/math/BigDecimal;
            astore 4 /* result */
        start local 4 // java.math.BigDecimal result
         5: .line 1847
            aload 4 /* result */
            invokevirtual java.math.BigDecimal.scale:()I
            ifge 9
         6: .line 1853
            aload 4 /* result */
            aload 1 /* divisor */
            invokevirtual java.math.BigDecimal.multiply:(Ljava/math/BigDecimal;)Ljava/math/BigDecimal;
            astore 5 /* product */
        start local 5 // java.math.BigDecimal product
         7: .line 1856
            aload 0 /* this */
            aload 5 /* product */
            invokevirtual java.math.BigDecimal.subtract:(Ljava/math/BigDecimal;)Ljava/math/BigDecimal;
            aload 1 /* divisor */
            invokevirtual java.math.BigDecimal.compareMagnitude:(Ljava/math/BigDecimal;)I
            iflt 11
         8: .line 1857
            new java.lang.ArithmeticException
            dup
            ldc "Division impossible"
            invokespecial java.lang.ArithmeticException.<init>:(Ljava/lang/String;)V
            athrow
        end local 5 // java.math.BigDecimal product
         9: .line 1859
      StackMap locals: int java.math.BigDecimal
      StackMap stack:
            aload 4 /* result */
            invokevirtual java.math.BigDecimal.scale:()I
            ifle 11
        10: .line 1865
            aload 4 /* result */
            iconst_0
            getstatic java.math.RoundingMode.DOWN:Ljava/math/RoundingMode;
            invokevirtual java.math.BigDecimal.setScale:(ILjava/math/RoundingMode;)Ljava/math/BigDecimal;
            astore 4 /* result */
        11: .line 1870
      StackMap locals:
      StackMap stack:
            iload 3 /* preferredScale */
            aload 4 /* result */
            invokevirtual java.math.BigDecimal.scale:()I
            if_icmple 17
        12: .line 1871
            aload 2 /* mc */
            getfield java.math.MathContext.precision:I
            aload 4 /* result */
            invokevirtual java.math.BigDecimal.precision:()I
            isub
            dup
            istore 5 /* precisionDiff */
        start local 5 // int precisionDiff
        13: ifle 17
        14: .line 1872
            aload 4 /* result */
            aload 4 /* result */
            invokevirtual java.math.BigDecimal.scale:()I
        15: .line 1873
            iload 5 /* precisionDiff */
            iload 3 /* preferredScale */
            aload 4 /* result */
            getfield java.math.BigDecimal.scale:I
            isub
            invokestatic java.lang.Math.min:(II)I
            iadd
        16: .line 1872
            invokevirtual java.math.BigDecimal.setScale:(I)Ljava/math/BigDecimal;
            areturn
        end local 5 // int precisionDiff
        17: .line 1875
      StackMap locals:
      StackMap stack:
            aload 4 /* result */
            getfield java.math.BigDecimal.intVal:Ljava/math/BigInteger;
            aload 4 /* result */
            getfield java.math.BigDecimal.intCompact:J
            aload 4 /* result */
            getfield java.math.BigDecimal.scale:I
            iload 3 /* preferredScale */
            invokestatic java.math.BigDecimal.stripZerosToMatchScale:(Ljava/math/BigInteger;JII)Ljava/math/BigDecimal;
            areturn
        end local 4 // java.math.BigDecimal result
        end local 3 // int preferredScale
        end local 2 // java.math.MathContext mc
        end local 1 // java.math.BigDecimal divisor
        end local 0 // java.math.BigDecimal this
      LocalVariableTable:
        Start  End  Slot            Name  Signature
            0   18     0            this  Ljava/math/BigDecimal;
            0   18     1         divisor  Ljava/math/BigDecimal;
            0   18     2              mc  Ljava/math/MathContext;
            4   18     3  preferredScale  I
            5   18     4          result  Ljava/math/BigDecimal;
            7    9     5         product  Ljava/math/BigDecimal;
           13   17     5   precisionDiff  I
    MethodParameters:
         Name  Flags
      divisor  
      mc       

  public java.math.BigDecimal remainder(java.math.BigDecimal);
    descriptor: (Ljava/math/BigDecimal;)Ljava/math/BigDecimal;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=3, args_size=2
        start local 0 // java.math.BigDecimal this
        start local 1 // java.math.BigDecimal divisor
         0: .line 1893
            aload 0 /* this */
            aload 1 /* divisor */
            invokevirtual java.math.BigDecimal.divideAndRemainder:(Ljava/math/BigDecimal;)[Ljava/math/BigDecimal;
            astore 2 /* divrem */
        start local 2 // java.math.BigDecimal[] divrem
         1: .line 1894
            aload 2 /* divrem */
            iconst_1
            aaload
            areturn
        end local 2 // java.math.BigDecimal[] divrem
        end local 1 // java.math.BigDecimal divisor
        end local 0 // java.math.BigDecimal this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    2     0     this  Ljava/math/BigDecimal;
            0    2     1  divisor  Ljava/math/BigDecimal;
            1    2     2   divrem  [Ljava/math/BigDecimal;
    MethodParameters:
         Name  Flags
      divisor  

  public java.math.BigDecimal remainder(java.math.BigDecimal, java.math.MathContext);
    descriptor: (Ljava/math/BigDecimal;Ljava/math/MathContext;)Ljava/math/BigDecimal;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=4, args_size=3
        start local 0 // java.math.BigDecimal this
        start local 1 // java.math.BigDecimal divisor
        start local 2 // java.math.MathContext mc
         0: .line 1923
            aload 0 /* this */
            aload 1 /* divisor */
            aload 2 /* mc */
            invokevirtual java.math.BigDecimal.divideAndRemainder:(Ljava/math/BigDecimal;Ljava/math/MathContext;)[Ljava/math/BigDecimal;
            astore 3 /* divrem */
        start local 3 // java.math.BigDecimal[] divrem
         1: .line 1924
            aload 3 /* divrem */
            iconst_1
            aaload
            areturn
        end local 3 // java.math.BigDecimal[] divrem
        end local 2 // java.math.MathContext mc
        end local 1 // java.math.BigDecimal divisor
        end local 0 // java.math.BigDecimal this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    2     0     this  Ljava/math/BigDecimal;
            0    2     1  divisor  Ljava/math/BigDecimal;
            0    2     2       mc  Ljava/math/MathContext;
            1    2     3   divrem  [Ljava/math/BigDecimal;
    MethodParameters:
         Name  Flags
      divisor  
      mc       

  public java.math.BigDecimal[] divideAndRemainder(java.math.BigDecimal);
    descriptor: (Ljava/math/BigDecimal;)[Ljava/math/BigDecimal;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=3, args_size=2
        start local 0 // java.math.BigDecimal this
        start local 1 // java.math.BigDecimal divisor
         0: .line 1949
            iconst_2
            anewarray java.math.BigDecimal
            astore 2 /* result */
        start local 2 // java.math.BigDecimal[] result
         1: .line 1951
            aload 2 /* result */
            iconst_0
            aload 0 /* this */
            aload 1 /* divisor */
            invokevirtual java.math.BigDecimal.divideToIntegralValue:(Ljava/math/BigDecimal;)Ljava/math/BigDecimal;
            aastore
         2: .line 1952
            aload 2 /* result */
            iconst_1
            aload 0 /* this */
            aload 2 /* result */
            iconst_0
            aaload
            aload 1 /* divisor */
            invokevirtual java.math.BigDecimal.multiply:(Ljava/math/BigDecimal;)Ljava/math/BigDecimal;
            invokevirtual java.math.BigDecimal.subtract:(Ljava/math/BigDecimal;)Ljava/math/BigDecimal;
            aastore
         3: .line 1953
            aload 2 /* result */
            areturn
        end local 2 // java.math.BigDecimal[] result
        end local 1 // java.math.BigDecimal divisor
        end local 0 // java.math.BigDecimal this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    4     0     this  Ljava/math/BigDecimal;
            0    4     1  divisor  Ljava/math/BigDecimal;
            1    4     2   result  [Ljava/math/BigDecimal;
    MethodParameters:
         Name  Flags
      divisor  

  public java.math.BigDecimal[] divideAndRemainder(java.math.BigDecimal, java.math.MathContext);
    descriptor: (Ljava/math/BigDecimal;Ljava/math/MathContext;)[Ljava/math/BigDecimal;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=5, args_size=3
        start local 0 // java.math.BigDecimal this
        start local 1 // java.math.BigDecimal divisor
        start local 2 // java.math.MathContext mc
         0: .line 1983
            aload 2 /* mc */
            getfield java.math.MathContext.precision:I
            ifne 2
         1: .line 1984
            aload 0 /* this */
            aload 1 /* divisor */
            invokevirtual java.math.BigDecimal.divideAndRemainder:(Ljava/math/BigDecimal;)[Ljava/math/BigDecimal;
            areturn
         2: .line 1986
      StackMap locals:
      StackMap stack:
            iconst_2
            anewarray java.math.BigDecimal
            astore 3 /* result */
        start local 3 // java.math.BigDecimal[] result
         3: .line 1987
            aload 0 /* this */
            astore 4 /* lhs */
        start local 4 // java.math.BigDecimal lhs
         4: .line 1989
            aload 3 /* result */
            iconst_0
            aload 4 /* lhs */
            aload 1 /* divisor */
            aload 2 /* mc */
            invokevirtual java.math.BigDecimal.divideToIntegralValue:(Ljava/math/BigDecimal;Ljava/math/MathContext;)Ljava/math/BigDecimal;
            aastore
         5: .line 1990
            aload 3 /* result */
            iconst_1
            aload 4 /* lhs */
            aload 3 /* result */
            iconst_0
            aaload
            aload 1 /* divisor */
            invokevirtual java.math.BigDecimal.multiply:(Ljava/math/BigDecimal;)Ljava/math/BigDecimal;
            invokevirtual java.math.BigDecimal.subtract:(Ljava/math/BigDecimal;)Ljava/math/BigDecimal;
            aastore
         6: .line 1991
            aload 3 /* result */
            areturn
        end local 4 // java.math.BigDecimal lhs
        end local 3 // java.math.BigDecimal[] result
        end local 2 // java.math.MathContext mc
        end local 1 // java.math.BigDecimal divisor
        end local 0 // java.math.BigDecimal this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    7     0     this  Ljava/math/BigDecimal;
            0    7     1  divisor  Ljava/math/BigDecimal;
            0    7     2       mc  Ljava/math/MathContext;
            3    7     3   result  [Ljava/math/BigDecimal;
            4    7     4      lhs  Ljava/math/BigDecimal;
    MethodParameters:
         Name  Flags
      divisor  
      mc       

  public java.math.BigDecimal pow(int);
    descriptor: (I)Ljava/math/BigDecimal;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=3, args_size=2
        start local 0 // java.math.BigDecimal this
        start local 1 // int n
         0: .line 2012
            iload 1 /* n */
            iflt 1
            iload 1 /* n */
            ldc 999999999
            if_icmple 2
         1: .line 2013
      StackMap locals:
      StackMap stack:
            new java.lang.ArithmeticException
            dup
            ldc "Invalid operation"
            invokespecial java.lang.ArithmeticException.<init>:(Ljava/lang/String;)V
            athrow
         2: .line 2016
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 0 /* this */
            getfield java.math.BigDecimal.scale:I
            i2l
            iload 1 /* n */
            i2l
            lmul
            invokevirtual java.math.BigDecimal.checkScale:(J)I
            istore 2 /* newScale */
        start local 2 // int newScale
         3: .line 2017
            new java.math.BigDecimal
            dup
            aload 0 /* this */
            invokevirtual java.math.BigDecimal.inflated:()Ljava/math/BigInteger;
            iload 1 /* n */
            invokevirtual java.math.BigInteger.pow:(I)Ljava/math/BigInteger;
            iload 2 /* newScale */
            invokespecial java.math.BigDecimal.<init>:(Ljava/math/BigInteger;I)V
            areturn
        end local 2 // int newScale
        end local 1 // int n
        end local 0 // java.math.BigDecimal this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    4     0      this  Ljava/math/BigDecimal;
            0    4     1         n  I
            3    4     2  newScale  I
    MethodParameters:
      Name  Flags
      n     

  public java.math.BigDecimal pow(int, java.math.MathContext);
    descriptor: (ILjava/math/MathContext;)Ljava/math/BigDecimal;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=9, args_size=3
        start local 0 // java.math.BigDecimal this
        start local 1 // int n
        start local 2 // java.math.MathContext mc
         0: .line 2072
            aload 2 /* mc */
            getfield java.math.MathContext.precision:I
            ifne 2
         1: .line 2073
            aload 0 /* this */
            iload 1 /* n */
            invokevirtual java.math.BigDecimal.pow:(I)Ljava/math/BigDecimal;
            areturn
         2: .line 2074
      StackMap locals:
      StackMap stack:
            iload 1 /* n */
            ldc -999999999
            if_icmplt 3
            iload 1 /* n */
            ldc 999999999
            if_icmple 4
         3: .line 2075
      StackMap locals:
      StackMap stack:
            new java.lang.ArithmeticException
            dup
            ldc "Invalid operation"
            invokespecial java.lang.ArithmeticException.<init>:(Ljava/lang/String;)V
            athrow
         4: .line 2076
      StackMap locals:
      StackMap stack:
            iload 1 /* n */
            ifne 6
         5: .line 2077
            getstatic java.math.BigDecimal.ONE:Ljava/math/BigDecimal;
            areturn
         6: .line 2078
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            astore 3 /* lhs */
        start local 3 // java.math.BigDecimal lhs
         7: .line 2079
            aload 2 /* mc */
            astore 4 /* workmc */
        start local 4 // java.math.MathContext workmc
         8: .line 2080
            iload 1 /* n */
            invokestatic java.lang.Math.abs:(I)I
            istore 5 /* mag */
        start local 5 // int mag
         9: .line 2081
            aload 2 /* mc */
            getfield java.math.MathContext.precision:I
            ifle 16
        10: .line 2082
            iload 5 /* mag */
            i2l
            invokestatic java.math.BigDecimal.longDigitLength:(J)I
            istore 6 /* elength */
        start local 6 // int elength
        11: .line 2083
            iload 6 /* elength */
            aload 2 /* mc */
            getfield java.math.MathContext.precision:I
            if_icmple 13
        12: .line 2084
            new java.lang.ArithmeticException
            dup
            ldc "Invalid operation"
            invokespecial java.lang.ArithmeticException.<init>:(Ljava/lang/String;)V
            athrow
        13: .line 2085
      StackMap locals: java.math.BigDecimal int java.math.MathContext java.math.BigDecimal java.math.MathContext int int
      StackMap stack:
            new java.math.MathContext
            dup
            aload 2 /* mc */
            getfield java.math.MathContext.precision:I
            iload 6 /* elength */
            iadd
            iconst_1
            iadd
        14: .line 2086
            aload 2 /* mc */
            getfield java.math.MathContext.roundingMode:Ljava/math/RoundingMode;
        15: .line 2085
            invokespecial java.math.MathContext.<init>:(ILjava/math/RoundingMode;)V
            astore 4 /* workmc */
        end local 6 // int elength
        16: .line 2089
      StackMap locals:
      StackMap stack:
            getstatic java.math.BigDecimal.ONE:Ljava/math/BigDecimal;
            astore 6 /* acc */
        start local 6 // java.math.BigDecimal acc
        17: .line 2090
            iconst_0
            istore 7 /* seenbit */
        start local 7 // boolean seenbit
        18: .line 2091
            iconst_1
            istore 8 /* i */
        start local 8 // int i
        19: .line 2092
      StackMap locals: java.math.BigDecimal int int
      StackMap stack:
            iload 5 /* mag */
            iload 5 /* mag */
            iadd
            istore 5 /* mag */
        20: .line 2093
            iload 5 /* mag */
            ifge 23
        21: .line 2094
            iconst_1
            istore 7 /* seenbit */
        22: .line 2095
            aload 6 /* acc */
            aload 3 /* lhs */
            aload 4 /* workmc */
            invokevirtual java.math.BigDecimal.multiply:(Ljava/math/BigDecimal;Ljava/math/MathContext;)Ljava/math/BigDecimal;
            astore 6 /* acc */
        23: .line 2097
      StackMap locals:
      StackMap stack:
            iload 8 /* i */
            bipush 31
            if_icmpne 25
        24: .line 2098
            goto 28
        25: .line 2099
      StackMap locals:
      StackMap stack:
            iload 7 /* seenbit */
            ifeq 27
        26: .line 2100
            aload 6 /* acc */
            aload 6 /* acc */
            aload 4 /* workmc */
            invokevirtual java.math.BigDecimal.multiply:(Ljava/math/BigDecimal;Ljava/math/MathContext;)Ljava/math/BigDecimal;
            astore 6 /* acc */
        27: .line 2091
      StackMap locals:
      StackMap stack:
            iinc 8 /* i */ 1
            goto 19
        end local 8 // int i
        28: .line 2104
      StackMap locals:
      StackMap stack:
            iload 1 /* n */
            ifge 30
        29: .line 2105
            getstatic java.math.BigDecimal.ONE:Ljava/math/BigDecimal;
            aload 6 /* acc */
            aload 4 /* workmc */
            invokevirtual java.math.BigDecimal.divide:(Ljava/math/BigDecimal;Ljava/math/MathContext;)Ljava/math/BigDecimal;
            astore 6 /* acc */
        30: .line 2107
      StackMap locals:
      StackMap stack:
            aload 6 /* acc */
            aload 2 /* mc */
            invokestatic java.math.BigDecimal.doRound:(Ljava/math/BigDecimal;Ljava/math/MathContext;)Ljava/math/BigDecimal;
            areturn
        end local 7 // boolean seenbit
        end local 6 // java.math.BigDecimal acc
        end local 5 // int mag
        end local 4 // java.math.MathContext workmc
        end local 3 // java.math.BigDecimal lhs
        end local 2 // java.math.MathContext mc
        end local 1 // int n
        end local 0 // java.math.BigDecimal this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0   31     0     this  Ljava/math/BigDecimal;
            0   31     1        n  I
            0   31     2       mc  Ljava/math/MathContext;
            7   31     3      lhs  Ljava/math/BigDecimal;
            8   31     4   workmc  Ljava/math/MathContext;
            9   31     5      mag  I
           11   16     6  elength  I
           17   31     6      acc  Ljava/math/BigDecimal;
           18   31     7  seenbit  Z
           19   28     8        i  I
    MethodParameters:
      Name  Flags
      n     
      mc    

  public java.math.BigDecimal abs();
    descriptor: ()Ljava/math/BigDecimal;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // java.math.BigDecimal this
         0: .line 2118
            aload 0 /* this */
            invokevirtual java.math.BigDecimal.signum:()I
            ifge 1
            aload 0 /* this */
            invokevirtual java.math.BigDecimal.negate:()Ljava/math/BigDecimal;
            goto 2
      StackMap locals:
      StackMap stack:
         1: aload 0 /* this */
      StackMap locals:
      StackMap stack: java.math.BigDecimal
         2: areturn
        end local 0 // java.math.BigDecimal this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    3     0  this  Ljava/math/BigDecimal;

  public java.math.BigDecimal abs(java.math.MathContext);
    descriptor: (Ljava/math/MathContext;)Ljava/math/BigDecimal;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // java.math.BigDecimal this
        start local 1 // java.math.MathContext mc
         0: .line 2133
            aload 0 /* this */
            invokevirtual java.math.BigDecimal.signum:()I
            ifge 1
            aload 0 /* this */
            aload 1 /* mc */
            invokevirtual java.math.BigDecimal.negate:(Ljava/math/MathContext;)Ljava/math/BigDecimal;
            goto 2
      StackMap locals:
      StackMap stack:
         1: aload 0 /* this */
            aload 1 /* mc */
            invokevirtual java.math.BigDecimal.plus:(Ljava/math/MathContext;)Ljava/math/BigDecimal;
      StackMap locals:
      StackMap stack: java.math.BigDecimal
         2: areturn
        end local 1 // java.math.MathContext mc
        end local 0 // java.math.BigDecimal this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    3     0  this  Ljava/math/BigDecimal;
            0    3     1    mc  Ljava/math/MathContext;
    MethodParameters:
      Name  Flags
      mc    

  public java.math.BigDecimal negate();
    descriptor: ()Ljava/math/BigDecimal;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=7, locals=1, args_size=1
        start local 0 // java.math.BigDecimal this
         0: .line 2143
            aload 0 /* this */
            getfield java.math.BigDecimal.intCompact:J
            ldc -9223372036854775808
            lcmp
            ifne 2
         1: .line 2144
            new java.math.BigDecimal
            dup
            aload 0 /* this */
            getfield java.math.BigDecimal.intVal:Ljava/math/BigInteger;
            invokevirtual java.math.BigInteger.negate:()Ljava/math/BigInteger;
            ldc -9223372036854775808
            aload 0 /* this */
            getfield java.math.BigDecimal.scale:I
            aload 0 /* this */
            getfield java.math.BigDecimal.precision:I
            invokespecial java.math.BigDecimal.<init>:(Ljava/math/BigInteger;JII)V
            areturn
         2: .line 2146
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield java.math.BigDecimal.intCompact:J
            lneg
            aload 0 /* this */
            getfield java.math.BigDecimal.scale:I
            aload 0 /* this */
            getfield java.math.BigDecimal.precision:I
            invokestatic java.math.BigDecimal.valueOf:(JII)Ljava/math/BigDecimal;
            areturn
        end local 0 // java.math.BigDecimal this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    3     0  this  Ljava/math/BigDecimal;

  public java.math.BigDecimal negate(java.math.MathContext);
    descriptor: (Ljava/math/MathContext;)Ljava/math/BigDecimal;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // java.math.BigDecimal this
        start local 1 // java.math.MathContext mc
         0: .line 2161
            aload 0 /* this */
            invokevirtual java.math.BigDecimal.negate:()Ljava/math/BigDecimal;
            aload 1 /* mc */
            invokevirtual java.math.BigDecimal.plus:(Ljava/math/MathContext;)Ljava/math/BigDecimal;
            areturn
        end local 1 // java.math.MathContext mc
        end local 0 // java.math.BigDecimal this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Ljava/math/BigDecimal;
            0    1     1    mc  Ljava/math/MathContext;
    MethodParameters:
      Name  Flags
      mc    

  public java.math.BigDecimal plus();
    descriptor: ()Ljava/math/BigDecimal;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // java.math.BigDecimal this
         0: .line 2177
            aload 0 /* this */
            areturn
        end local 0 // java.math.BigDecimal this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Ljava/math/BigDecimal;

  public java.math.BigDecimal plus(java.math.MathContext);
    descriptor: (Ljava/math/MathContext;)Ljava/math/BigDecimal;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // java.math.BigDecimal this
        start local 1 // java.math.MathContext mc
         0: .line 2196
            aload 1 /* mc */
            getfield java.math.MathContext.precision:I
            ifne 2
         1: .line 2197
            aload 0 /* this */
            areturn
         2: .line 2198
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 1 /* mc */
            invokestatic java.math.BigDecimal.doRound:(Ljava/math/BigDecimal;Ljava/math/MathContext;)Ljava/math/BigDecimal;
            areturn
        end local 1 // java.math.MathContext mc
        end local 0 // java.math.BigDecimal this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    3     0  this  Ljava/math/BigDecimal;
            0    3     1    mc  Ljava/math/MathContext;
    MethodParameters:
      Name  Flags
      mc    

  public int signum();
    descriptor: ()I
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=1, args_size=1
        start local 0 // java.math.BigDecimal this
         0: .line 2208
            aload 0 /* this */
            getfield java.math.BigDecimal.intCompact:J
            ldc -9223372036854775808
            lcmp
            ifeq 2
         1: .line 2209
            aload 0 /* this */
            getfield java.math.BigDecimal.intCompact:J
            invokestatic java.lang.Long.signum:(J)I
            goto 3
         2: .line 2210
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield java.math.BigDecimal.intVal:Ljava/math/BigInteger;
            invokevirtual java.math.BigInteger.signum:()I
         3: .line 2208
      StackMap locals:
      StackMap stack: int
            ireturn
        end local 0 // java.math.BigDecimal this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    4     0  this  Ljava/math/BigDecimal;

  public int scale();
    descriptor: ()I
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // java.math.BigDecimal this
         0: .line 2224
            aload 0 /* this */
            getfield java.math.BigDecimal.scale:I
            ireturn
        end local 0 // java.math.BigDecimal this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Ljava/math/BigDecimal;

  public int precision();
    descriptor: ()I
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=4, args_size=1
        start local 0 // java.math.BigDecimal this
         0: .line 2237
            aload 0 /* this */
            getfield java.math.BigDecimal.precision:I
            istore 1 /* result */
        start local 1 // int result
         1: .line 2238
            iload 1 /* result */
            ifne 7
         2: .line 2239
            aload 0 /* this */
            getfield java.math.BigDecimal.intCompact:J
            lstore 2 /* s */
        start local 2 // long s
         3: .line 2240
            lload 2 /* s */
            ldc -9223372036854775808
            lcmp
            ifeq 5
         4: .line 2241
            lload 2 /* s */
            invokestatic java.math.BigDecimal.longDigitLength:(J)I
            istore 1 /* result */
            goto 6
         5: .line 2243
      StackMap locals: int long
      StackMap stack:
            aload 0 /* this */
            getfield java.math.BigDecimal.intVal:Ljava/math/BigInteger;
            invokestatic java.math.BigDecimal.bigDigitLength:(Ljava/math/BigInteger;)I
            istore 1 /* result */
         6: .line 2244
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            iload 1 /* result */
            putfield java.math.BigDecimal.precision:I
        end local 2 // long s
         7: .line 2246
      StackMap locals:
      StackMap stack:
            iload 1 /* result */
            ireturn
        end local 1 // int result
        end local 0 // java.math.BigDecimal this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    8     0    this  Ljava/math/BigDecimal;
            1    8     1  result  I
            3    7     2       s  J

  public java.math.BigInteger unscaledValue();
    descriptor: ()Ljava/math/BigInteger;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // java.math.BigDecimal this
         0: .line 2259
            aload 0 /* this */
            invokevirtual java.math.BigDecimal.inflated:()Ljava/math/BigInteger;
            areturn
        end local 0 // java.math.BigDecimal this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Ljava/math/BigDecimal;

  public java.math.BigDecimal round(java.math.MathContext);
    descriptor: (Ljava/math/MathContext;)Ljava/math/BigDecimal;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // java.math.BigDecimal this
        start local 1 // java.math.MathContext mc
         0: .line 2356
            aload 0 /* this */
            aload 1 /* mc */
            invokevirtual java.math.BigDecimal.plus:(Ljava/math/MathContext;)Ljava/math/BigDecimal;
            areturn
        end local 1 // java.math.MathContext mc
        end local 0 // java.math.BigDecimal this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Ljava/math/BigDecimal;
            0    1     1    mc  Ljava/math/MathContext;
    MethodParameters:
      Name  Flags
      mc    

  public java.math.BigDecimal setScale(int, java.math.RoundingMode);
    descriptor: (ILjava/math/RoundingMode;)Ljava/math/BigDecimal;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=3, args_size=3
        start local 0 // java.math.BigDecimal this
        start local 1 // int newScale
        start local 2 // java.math.RoundingMode roundingMode
         0: .line 2389
            aload 0 /* this */
            iload 1 /* newScale */
            aload 2 /* roundingMode */
            getfield java.math.RoundingMode.oldMode:I
            invokevirtual java.math.BigDecimal.setScale:(II)Ljava/math/BigDecimal;
            areturn
        end local 2 // java.math.RoundingMode roundingMode
        end local 1 // int newScale
        end local 0 // java.math.BigDecimal this
      LocalVariableTable:
        Start  End  Slot          Name  Signature
            0    1     0          this  Ljava/math/BigDecimal;
            0    1     1      newScale  I
            0    1     2  roundingMode  Ljava/math/RoundingMode;
    MethodParameters:
              Name  Flags
      newScale      
      roundingMode  

  public java.math.BigDecimal setScale(int, int);
    descriptor: (II)Ljava/math/BigDecimal;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=8, locals=8, args_size=3
        start local 0 // java.math.BigDecimal this
        start local 1 // int newScale
        start local 2 // int roundingMode
         0: .line 2433
            iload 2 /* roundingMode */
            iflt 1
            iload 2 /* roundingMode */
            bipush 7
            if_icmple 2
         1: .line 2434
      StackMap locals:
      StackMap stack:
            new java.lang.IllegalArgumentException
            dup
            ldc "Invalid rounding mode"
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
            athrow
         2: .line 2436
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield java.math.BigDecimal.scale:I
            istore 3 /* oldScale */
        start local 3 // int oldScale
         3: .line 2437
            iload 1 /* newScale */
            iload 3 /* oldScale */
            if_icmpne 5
         4: .line 2438
            aload 0 /* this */
            areturn
         5: .line 2439
      StackMap locals: int
      StackMap stack:
            aload 0 /* this */
            invokevirtual java.math.BigDecimal.signum:()I
            ifne 7
         6: .line 2440
            iload 1 /* newScale */
            invokestatic java.math.BigDecimal.zeroValueOf:(I)Ljava/math/BigDecimal;
            areturn
         7: .line 2441
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield java.math.BigDecimal.intCompact:J
            ldc -9223372036854775808
            lcmp
            ifeq 21
         8: .line 2442
            aload 0 /* this */
            getfield java.math.BigDecimal.intCompact:J
            lstore 4 /* rs */
        start local 4 // long rs
         9: .line 2443
            iload 1 /* newScale */
            iload 3 /* oldScale */
            if_icmple 17
        10: .line 2444
            aload 0 /* this */
            iload 1 /* newScale */
            i2l
            iload 3 /* oldScale */
            i2l
            lsub
            invokevirtual java.math.BigDecimal.checkScale:(J)I
            istore 6 /* raise */
        start local 6 // int raise
        11: .line 2445
            lload 4 /* rs */
            iload 6 /* raise */
            invokestatic java.math.BigDecimal.longMultiplyPowerTen:(JI)J
            dup2
            lstore 4 /* rs */
            ldc -9223372036854775808
            lcmp
            ifeq 13
        12: .line 2446
            lload 4 /* rs */
            iload 1 /* newScale */
            invokestatic java.math.BigDecimal.valueOf:(JI)Ljava/math/BigDecimal;
            areturn
        13: .line 2448
      StackMap locals: long int
      StackMap stack:
            aload 0 /* this */
            iload 6 /* raise */
            invokevirtual java.math.BigDecimal.bigMultiplyPowerTen:(I)Ljava/math/BigInteger;
            astore 7 /* rb */
        start local 7 // java.math.BigInteger rb
        14: .line 2449
            new java.math.BigDecimal
            dup
            aload 7 /* rb */
            ldc -9223372036854775808
            iload 1 /* newScale */
            aload 0 /* this */
            getfield java.math.BigDecimal.precision:I
            ifle 15
            aload 0 /* this */
            getfield java.math.BigDecimal.precision:I
            iload 6 /* raise */
            iadd
            goto 16
      StackMap locals: java.math.BigDecimal int int int long int java.math.BigInteger
      StackMap stack: new 14 new 14 java.math.BigInteger long int
        15: iconst_0
      StackMap locals: java.math.BigDecimal int int int long int java.math.BigInteger
      StackMap stack: new 14 new 14 java.math.BigInteger long int int
        16: invokespecial java.math.BigDecimal.<init>:(Ljava/math/BigInteger;JII)V
            areturn
        end local 7 // java.math.BigInteger rb
        end local 6 // int raise
        17: .line 2453
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            iload 3 /* oldScale */
            i2l
            iload 1 /* newScale */
            i2l
            lsub
            invokevirtual java.math.BigDecimal.checkScale:(J)I
            istore 6 /* drop */
        start local 6 // int drop
        18: .line 2454
            iload 6 /* drop */
            getstatic java.math.BigDecimal.LONG_TEN_POWERS_TABLE:[J
            arraylength
            if_icmpge 20
        19: .line 2455
            lload 4 /* rs */
            getstatic java.math.BigDecimal.LONG_TEN_POWERS_TABLE:[J
            iload 6 /* drop */
            laload
            iload 1 /* newScale */
            iload 2 /* roundingMode */
            iload 1 /* newScale */
            invokestatic java.math.BigDecimal.divideAndRound:(JJIII)Ljava/math/BigDecimal;
            areturn
        20: .line 2457
      StackMap locals: int
      StackMap stack:
            aload 0 /* this */
            invokevirtual java.math.BigDecimal.inflated:()Ljava/math/BigInteger;
            iload 6 /* drop */
            invokestatic java.math.BigDecimal.bigTenToThe:(I)Ljava/math/BigInteger;
            iload 1 /* newScale */
            iload 2 /* roundingMode */
            iload 1 /* newScale */
            invokestatic java.math.BigDecimal.divideAndRound:(Ljava/math/BigInteger;Ljava/math/BigInteger;III)Ljava/math/BigDecimal;
            areturn
        end local 6 // int drop
        end local 4 // long rs
        21: .line 2461
      StackMap locals:
      StackMap stack:
            iload 1 /* newScale */
            iload 3 /* oldScale */
            if_icmple 27
        22: .line 2462
            aload 0 /* this */
            iload 1 /* newScale */
            i2l
            iload 3 /* oldScale */
            i2l
            lsub
            invokevirtual java.math.BigDecimal.checkScale:(J)I
            istore 4 /* raise */
        start local 4 // int raise
        23: .line 2463
            aload 0 /* this */
            getfield java.math.BigDecimal.intVal:Ljava/math/BigInteger;
            iload 4 /* raise */
            invokestatic java.math.BigDecimal.bigMultiplyPowerTen:(Ljava/math/BigInteger;I)Ljava/math/BigInteger;
            astore 5 /* rb */
        start local 5 // java.math.BigInteger rb
        24: .line 2464
            new java.math.BigDecimal
            dup
            aload 5 /* rb */
            ldc -9223372036854775808
            iload 1 /* newScale */
            aload 0 /* this */
            getfield java.math.BigDecimal.precision:I
            ifle 25
            aload 0 /* this */
            getfield java.math.BigDecimal.precision:I
            iload 4 /* raise */
            iadd
            goto 26
      StackMap locals: java.math.BigDecimal int int int int java.math.BigInteger
      StackMap stack: new 24 new 24 java.math.BigInteger long int
        25: iconst_0
      StackMap locals: java.math.BigDecimal int int int int java.math.BigInteger
      StackMap stack: new 24 new 24 java.math.BigInteger long int int
        26: invokespecial java.math.BigDecimal.<init>:(Ljava/math/BigInteger;JII)V
            areturn
        end local 5 // java.math.BigInteger rb
        end local 4 // int raise
        27: .line 2468
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            iload 3 /* oldScale */
            i2l
            iload 1 /* newScale */
            i2l
            lsub
            invokevirtual java.math.BigDecimal.checkScale:(J)I
            istore 4 /* drop */
        start local 4 // int drop
        28: .line 2469
            iload 4 /* drop */
            getstatic java.math.BigDecimal.LONG_TEN_POWERS_TABLE:[J
            arraylength
            if_icmpge 32
        29: .line 2470
            aload 0 /* this */
            getfield java.math.BigDecimal.intVal:Ljava/math/BigInteger;
            getstatic java.math.BigDecimal.LONG_TEN_POWERS_TABLE:[J
            iload 4 /* drop */
            laload
            iload 1 /* newScale */
            iload 2 /* roundingMode */
        30: .line 2471
            iload 1 /* newScale */
        31: .line 2470
            invokestatic java.math.BigDecimal.divideAndRound:(Ljava/math/BigInteger;JIII)Ljava/math/BigDecimal;
            areturn
        32: .line 2473
      StackMap locals: int
      StackMap stack:
            aload 0 /* this */
            getfield java.math.BigDecimal.intVal:Ljava/math/BigInteger;
            iload 4 /* drop */
            invokestatic java.math.BigDecimal.bigTenToThe:(I)Ljava/math/BigInteger;
            iload 1 /* newScale */
            iload 2 /* roundingMode */
            iload 1 /* newScale */
            invokestatic java.math.BigDecimal.divideAndRound:(Ljava/math/BigInteger;Ljava/math/BigInteger;III)Ljava/math/BigDecimal;
            areturn
        end local 4 // int drop
        end local 3 // int oldScale
        end local 2 // int roundingMode
        end local 1 // int newScale
        end local 0 // java.math.BigDecimal this
      LocalVariableTable:
        Start  End  Slot          Name  Signature
            0   33     0          this  Ljava/math/BigDecimal;
            0   33     1      newScale  I
            0   33     2  roundingMode  I
            3   33     3      oldScale  I
            9   21     4            rs  J
           11   17     6         raise  I
           14   17     7            rb  Ljava/math/BigInteger;
           18   21     6          drop  I
           23   27     4         raise  I
           24   27     5            rb  Ljava/math/BigInteger;
           28   33     4          drop  I
    MethodParameters:
              Name  Flags
      newScale      
      roundingMode  

  public java.math.BigDecimal setScale(int);
    descriptor: (I)Ljava/math/BigDecimal;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=2, args_size=2
        start local 0 // java.math.BigDecimal this
        start local 1 // int newScale
         0: .line 2515
            aload 0 /* this */
            iload 1 /* newScale */
            bipush 7
            invokevirtual java.math.BigDecimal.setScale:(II)Ljava/math/BigDecimal;
            areturn
        end local 1 // int newScale
        end local 0 // java.math.BigDecimal this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    1     0      this  Ljava/math/BigDecimal;
            0    1     1  newScale  I
    MethodParameters:
          Name  Flags
      newScale  

  public java.math.BigDecimal movePointLeft(int);
    descriptor: (I)Ljava/math/BigDecimal;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=7, locals=4, args_size=2
        start local 0 // java.math.BigDecimal this
        start local 1 // int n
         0: .line 2537
            aload 0 /* this */
            aload 0 /* this */
            getfield java.math.BigDecimal.scale:I
            i2l
            iload 1 /* n */
            i2l
            ladd
            invokevirtual java.math.BigDecimal.checkScale:(J)I
            istore 2 /* newScale */
        start local 2 // int newScale
         1: .line 2538
            new java.math.BigDecimal
            dup
            aload 0 /* this */
            getfield java.math.BigDecimal.intVal:Ljava/math/BigInteger;
            aload 0 /* this */
            getfield java.math.BigDecimal.intCompact:J
            iload 2 /* newScale */
            iconst_0
            invokespecial java.math.BigDecimal.<init>:(Ljava/math/BigInteger;JII)V
            astore 3 /* num */
        start local 3 // java.math.BigDecimal num
         2: .line 2539
            aload 3 /* num */
            getfield java.math.BigDecimal.scale:I
            ifge 3
            aload 3 /* num */
            iconst_0
            bipush 7
            invokevirtual java.math.BigDecimal.setScale:(II)Ljava/math/BigDecimal;
            goto 4
      StackMap locals: int java.math.BigDecimal
      StackMap stack:
         3: aload 3 /* num */
      StackMap locals:
      StackMap stack: java.math.BigDecimal
         4: areturn
        end local 3 // java.math.BigDecimal num
        end local 2 // int newScale
        end local 1 // int n
        end local 0 // java.math.BigDecimal this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    5     0      this  Ljava/math/BigDecimal;
            0    5     1         n  I
            1    5     2  newScale  I
            2    5     3       num  Ljava/math/BigDecimal;
    MethodParameters:
      Name  Flags
      n     

  public java.math.BigDecimal movePointRight(int);
    descriptor: (I)Ljava/math/BigDecimal;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=7, locals=4, args_size=2
        start local 0 // java.math.BigDecimal this
        start local 1 // int n
         0: .line 2559
            aload 0 /* this */
            aload 0 /* this */
            getfield java.math.BigDecimal.scale:I
            i2l
            iload 1 /* n */
            i2l
            lsub
            invokevirtual java.math.BigDecimal.checkScale:(J)I
            istore 2 /* newScale */
        start local 2 // int newScale
         1: .line 2560
            new java.math.BigDecimal
            dup
            aload 0 /* this */
            getfield java.math.BigDecimal.intVal:Ljava/math/BigInteger;
            aload 0 /* this */
            getfield java.math.BigDecimal.intCompact:J
            iload 2 /* newScale */
            iconst_0
            invokespecial java.math.BigDecimal.<init>:(Ljava/math/BigInteger;JII)V
            astore 3 /* num */
        start local 3 // java.math.BigDecimal num
         2: .line 2561
            aload 3 /* num */
            getfield java.math.BigDecimal.scale:I
            ifge 3
            aload 3 /* num */
            iconst_0
            bipush 7
            invokevirtual java.math.BigDecimal.setScale:(II)Ljava/math/BigDecimal;
            goto 4
      StackMap locals: int java.math.BigDecimal
      StackMap stack:
         3: aload 3 /* num */
      StackMap locals:
      StackMap stack: java.math.BigDecimal
         4: areturn
        end local 3 // java.math.BigDecimal num
        end local 2 // int newScale
        end local 1 // int n
        end local 0 // java.math.BigDecimal this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    5     0      this  Ljava/math/BigDecimal;
            0    5     1         n  I
            1    5     2  newScale  I
            2    5     3       num  Ljava/math/BigDecimal;
    MethodParameters:
      Name  Flags
      n     

  public java.math.BigDecimal scaleByPowerOfTen(int);
    descriptor: (I)Ljava/math/BigDecimal;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=10, locals=2, args_size=2
        start local 0 // java.math.BigDecimal this
        start local 1 // int n
         0: .line 2578
            new java.math.BigDecimal
            dup
            aload 0 /* this */
            getfield java.math.BigDecimal.intVal:Ljava/math/BigInteger;
            aload 0 /* this */
            getfield java.math.BigDecimal.intCompact:J
         1: .line 2579
            aload 0 /* this */
            aload 0 /* this */
            getfield java.math.BigDecimal.scale:I
            i2l
            iload 1 /* n */
            i2l
            lsub
            invokevirtual java.math.BigDecimal.checkScale:(J)I
            aload 0 /* this */
            getfield java.math.BigDecimal.precision:I
         2: .line 2578
            invokespecial java.math.BigDecimal.<init>:(Ljava/math/BigInteger;JII)V
            areturn
        end local 1 // int n
        end local 0 // java.math.BigDecimal this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    3     0  this  Ljava/math/BigDecimal;
            0    3     1     n  I
    MethodParameters:
      Name  Flags
      n     

  public java.math.BigDecimal stripTrailingZeros();
    descriptor: ()Ljava/math/BigDecimal;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=1, args_size=1
        start local 0 // java.math.BigDecimal this
         0: .line 2598
            aload 0 /* this */
            getfield java.math.BigDecimal.intCompact:J
            lconst_0
            lcmp
            ifeq 1
            aload 0 /* this */
            getfield java.math.BigDecimal.intVal:Ljava/math/BigInteger;
            ifnull 2
            aload 0 /* this */
            getfield java.math.BigDecimal.intVal:Ljava/math/BigInteger;
            invokevirtual java.math.BigInteger.signum:()I
            ifne 2
         1: .line 2599
      StackMap locals:
      StackMap stack:
            getstatic java.math.BigDecimal.ZERO:Ljava/math/BigDecimal;
            areturn
         2: .line 2600
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield java.math.BigDecimal.intCompact:J
            ldc -9223372036854775808
            lcmp
            ifeq 4
         3: .line 2601
            aload 0 /* this */
            getfield java.math.BigDecimal.intCompact:J
            aload 0 /* this */
            getfield java.math.BigDecimal.scale:I
            ldc -9223372036854775808
            invokestatic java.math.BigDecimal.createAndStripZerosToMatchScale:(JIJ)Ljava/math/BigDecimal;
            areturn
         4: .line 2603
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield java.math.BigDecimal.intVal:Ljava/math/BigInteger;
            aload 0 /* this */
            getfield java.math.BigDecimal.scale:I
            ldc -9223372036854775808
            invokestatic java.math.BigDecimal.createAndStripZerosToMatchScale:(Ljava/math/BigInteger;IJ)Ljava/math/BigDecimal;
            areturn
        end local 0 // java.math.BigDecimal this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    5     0  this  Ljava/math/BigDecimal;

  public int compareTo(java.math.BigDecimal);
    descriptor: (Ljava/math/BigDecimal;)I
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=6, args_size=2
        start local 0 // java.math.BigDecimal this
        start local 1 // java.math.BigDecimal val
         0: .line 2628
            aload 0 /* this */
            getfield java.math.BigDecimal.scale:I
            aload 1 /* val */
            getfield java.math.BigDecimal.scale:I
            if_icmpne 8
         1: .line 2629
            aload 0 /* this */
            getfield java.math.BigDecimal.intCompact:J
            lstore 2 /* xs */
        start local 2 // long xs
         2: .line 2630
            aload 1 /* val */
            getfield java.math.BigDecimal.intCompact:J
            lstore 4 /* ys */
        start local 4 // long ys
         3: .line 2631
            lload 2 /* xs */
            ldc -9223372036854775808
            lcmp
            ifeq 8
            lload 4 /* ys */
            ldc -9223372036854775808
            lcmp
            ifeq 8
         4: .line 2632
            lload 2 /* xs */
            lload 4 /* ys */
            lcmp
            ifeq 6
            lload 2 /* xs */
            lload 4 /* ys */
            lcmp
            ifle 5
            iconst_1
            goto 7
      StackMap locals: long long
      StackMap stack:
         5: iconst_m1
            goto 7
      StackMap locals:
      StackMap stack:
         6: iconst_0
      StackMap locals:
      StackMap stack: int
         7: ireturn
        end local 4 // long ys
        end local 2 // long xs
         8: .line 2634
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokevirtual java.math.BigDecimal.signum:()I
            istore 2 /* xsign */
        start local 2 // int xsign
         9: .line 2635
            aload 1 /* val */
            invokevirtual java.math.BigDecimal.signum:()I
            istore 3 /* ysign */
        start local 3 // int ysign
        10: .line 2636
            iload 2 /* xsign */
            iload 3 /* ysign */
            if_icmpeq 14
        11: .line 2637
            iload 2 /* xsign */
            iload 3 /* ysign */
            if_icmple 12
            iconst_1
            goto 13
      StackMap locals: int int
      StackMap stack:
        12: iconst_m1
      StackMap locals:
      StackMap stack: int
        13: ireturn
        14: .line 2638
      StackMap locals:
      StackMap stack:
            iload 2 /* xsign */
            ifne 16
        15: .line 2639
            iconst_0
            ireturn
        16: .line 2640
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 1 /* val */
            invokevirtual java.math.BigDecimal.compareMagnitude:(Ljava/math/BigDecimal;)I
            istore 4 /* cmp */
        start local 4 // int cmp
        17: .line 2641
            iload 2 /* xsign */
            ifle 18
            iload 4 /* cmp */
            goto 19
      StackMap locals: int
      StackMap stack:
        18: iload 4 /* cmp */
            ineg
      StackMap locals:
      StackMap stack: int
        19: ireturn
        end local 4 // int cmp
        end local 3 // int ysign
        end local 2 // int xsign
        end local 1 // java.math.BigDecimal val
        end local 0 // java.math.BigDecimal this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0   20     0   this  Ljava/math/BigDecimal;
            0   20     1    val  Ljava/math/BigDecimal;
            2    8     2     xs  J
            3    8     4     ys  J
            9   20     2  xsign  I
           10   20     3  ysign  I
           17   20     4    cmp  I
    MethodParameters:
      Name  Flags
      val   

  private int compareMagnitude(java.math.BigDecimal);
    descriptor: (Ljava/math/BigDecimal;)I
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=4, locals=13, args_size=2
        start local 0 // java.math.BigDecimal this
        start local 1 // java.math.BigDecimal val
         0: .line 2649
            aload 1 /* val */
            getfield java.math.BigDecimal.intCompact:J
            lstore 2 /* ys */
        start local 2 // long ys
         1: .line 2650
            aload 0 /* this */
            getfield java.math.BigDecimal.intCompact:J
            lstore 4 /* xs */
        start local 4 // long xs
         2: .line 2651
            lload 4 /* xs */
            lconst_0
            lcmp
            ifne 6
         3: .line 2652
            lload 2 /* ys */
            lconst_0
            lcmp
            ifne 4
            iconst_0
            goto 5
      StackMap locals: long long
      StackMap stack:
         4: iconst_m1
      StackMap locals:
      StackMap stack: int
         5: ireturn
         6: .line 2653
      StackMap locals:
      StackMap stack:
            lload 2 /* ys */
            lconst_0
            lcmp
            ifne 8
         7: .line 2654
            iconst_1
            ireturn
         8: .line 2656
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield java.math.BigDecimal.scale:I
            i2l
            aload 1 /* val */
            getfield java.math.BigDecimal.scale:I
            i2l
            lsub
            lstore 6 /* sdiff */
        start local 6 // long sdiff
         9: .line 2657
            lload 6 /* sdiff */
            lconst_0
            lcmp
            ifeq 30
        10: .line 2659
            aload 0 /* this */
            invokevirtual java.math.BigDecimal.precision:()I
            i2l
            aload 0 /* this */
            getfield java.math.BigDecimal.scale:I
            i2l
            lsub
            lstore 8 /* xae */
        start local 8 // long xae
        11: .line 2660
            aload 1 /* val */
            invokevirtual java.math.BigDecimal.precision:()I
            i2l
            aload 1 /* val */
            getfield java.math.BigDecimal.scale:I
            i2l
            lsub
            lstore 10 /* yae */
        start local 10 // long yae
        12: .line 2661
            lload 8 /* xae */
            lload 10 /* yae */
            lcmp
            ifge 14
        13: .line 2662
            iconst_m1
            ireturn
        14: .line 2663
      StackMap locals: long long long
      StackMap stack:
            lload 8 /* xae */
            lload 10 /* yae */
            lcmp
            ifle 16
        15: .line 2664
            iconst_1
            ireturn
        16: .line 2665
      StackMap locals:
      StackMap stack:
            aconst_null
            astore 12 /* rb */
        start local 12 // java.math.BigInteger rb
        17: .line 2666
            lload 6 /* sdiff */
            lconst_0
            lcmp
            ifge 24
        18: .line 2668
            lload 6 /* sdiff */
            ldc -2147483648
            lcmp
            ifle 30
        19: .line 2669
            lload 4 /* xs */
            ldc -9223372036854775808
            lcmp
            ifeq 21
        20: .line 2670
            lload 4 /* xs */
            lload 6 /* sdiff */
            lneg
            l2i
            invokestatic java.math.BigDecimal.longMultiplyPowerTen:(JI)J
            dup2
            lstore 4 /* xs */
            ldc -9223372036854775808
            lcmp
            ifne 30
        21: .line 2671
      StackMap locals: java.math.BigInteger
      StackMap stack:
            lload 2 /* ys */
            ldc -9223372036854775808
            lcmp
            ifne 30
        22: .line 2672
            aload 0 /* this */
            lload 6 /* sdiff */
            lneg
            l2i
            invokevirtual java.math.BigDecimal.bigMultiplyPowerTen:(I)Ljava/math/BigInteger;
            astore 12 /* rb */
        23: .line 2673
            aload 12 /* rb */
            aload 1 /* val */
            getfield java.math.BigDecimal.intVal:Ljava/math/BigInteger;
            invokevirtual java.math.BigInteger.compareMagnitude:(Ljava/math/BigInteger;)I
            ireturn
        24: .line 2677
      StackMap locals:
      StackMap stack:
            lload 6 /* sdiff */
            ldc 2147483647
            lcmp
            ifgt 30
        25: .line 2678
            lload 2 /* ys */
            ldc -9223372036854775808
            lcmp
            ifeq 27
        26: .line 2679
            lload 2 /* ys */
            lload 6 /* sdiff */
            l2i
            invokestatic java.math.BigDecimal.longMultiplyPowerTen:(JI)J
            dup2
            lstore 2 /* ys */
            ldc -9223372036854775808
            lcmp
            ifne 30
        27: .line 2680
      StackMap locals:
      StackMap stack:
            lload 4 /* xs */
            ldc -9223372036854775808
            lcmp
            ifne 30
        28: .line 2681
            aload 1 /* val */
            lload 6 /* sdiff */
            l2i
            invokevirtual java.math.BigDecimal.bigMultiplyPowerTen:(I)Ljava/math/BigInteger;
            astore 12 /* rb */
        29: .line 2682
            aload 0 /* this */
            getfield java.math.BigDecimal.intVal:Ljava/math/BigInteger;
            aload 12 /* rb */
            invokevirtual java.math.BigInteger.compareMagnitude:(Ljava/math/BigInteger;)I
            ireturn
        end local 12 // java.math.BigInteger rb
        end local 10 // long yae
        end local 8 // long xae
        30: .line 2686
      StackMap locals:
      StackMap stack:
            lload 4 /* xs */
            ldc -9223372036854775808
            lcmp
            ifeq 34
        31: .line 2687
            lload 2 /* ys */
            ldc -9223372036854775808
            lcmp
            ifeq 32
            lload 4 /* xs */
            lload 2 /* ys */
            invokestatic java.math.BigDecimal.longCompareMagnitude:(JJ)I
            goto 33
      StackMap locals:
      StackMap stack:
        32: iconst_m1
      StackMap locals:
      StackMap stack: int
        33: ireturn
        34: .line 2688
      StackMap locals:
      StackMap stack:
            lload 2 /* ys */
            ldc -9223372036854775808
            lcmp
            ifeq 36
        35: .line 2689
            iconst_1
            ireturn
        36: .line 2691
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield java.math.BigDecimal.intVal:Ljava/math/BigInteger;
            aload 1 /* val */
            getfield java.math.BigDecimal.intVal:Ljava/math/BigInteger;
            invokevirtual java.math.BigInteger.compareMagnitude:(Ljava/math/BigInteger;)I
            ireturn
        end local 6 // long sdiff
        end local 4 // long xs
        end local 2 // long ys
        end local 1 // java.math.BigDecimal val
        end local 0 // java.math.BigDecimal this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0   37     0   this  Ljava/math/BigDecimal;
            0   37     1    val  Ljava/math/BigDecimal;
            1   37     2     ys  J
            2   37     4     xs  J
            9   37     6  sdiff  J
           11   30     8    xae  J
           12   30    10    yae  J
           17   30    12     rb  Ljava/math/BigInteger;
    MethodParameters:
      Name  Flags
      val   

  public boolean equals(java.lang.Object);
    descriptor: (Ljava/lang/Object;)Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=7, args_size=2
        start local 0 // java.math.BigDecimal this
        start local 1 // java.lang.Object x
         0: .line 2712
            aload 1 /* x */
            instanceof java.math.BigDecimal
            ifne 2
         1: .line 2713
            iconst_0
            ireturn
         2: .line 2714
      StackMap locals:
      StackMap stack:
            aload 1 /* x */
            checkcast java.math.BigDecimal
            astore 2 /* xDec */
        start local 2 // java.math.BigDecimal xDec
         3: .line 2715
            aload 1 /* x */
            aload 0 /* this */
            if_acmpne 5
         4: .line 2716
            iconst_1
            ireturn
         5: .line 2717
      StackMap locals: java.math.BigDecimal
      StackMap stack:
            aload 0 /* this */
            getfield java.math.BigDecimal.scale:I
            aload 2 /* xDec */
            getfield java.math.BigDecimal.scale:I
            if_icmpeq 7
         6: .line 2718
            iconst_0
            ireturn
         7: .line 2719
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield java.math.BigDecimal.intCompact:J
            lstore 3 /* s */
        start local 3 // long s
         8: .line 2720
            aload 2 /* xDec */
            getfield java.math.BigDecimal.intCompact:J
            lstore 5 /* xs */
        start local 5 // long xs
         9: .line 2721
            lload 3 /* s */
            ldc -9223372036854775808
            lcmp
            ifeq 14
        10: .line 2722
            lload 5 /* xs */
            ldc -9223372036854775808
            lcmp
            ifne 12
        11: .line 2723
            aload 2 /* xDec */
            getfield java.math.BigDecimal.intVal:Ljava/math/BigInteger;
            invokestatic java.math.BigDecimal.compactValFor:(Ljava/math/BigInteger;)J
            lstore 5 /* xs */
        12: .line 2724
      StackMap locals: long long
      StackMap stack:
            lload 5 /* xs */
            lload 3 /* s */
            lcmp
            ifne 13
            iconst_1
            ireturn
      StackMap locals:
      StackMap stack:
        13: iconst_0
            ireturn
        14: .line 2725
      StackMap locals:
      StackMap stack:
            lload 5 /* xs */
            ldc -9223372036854775808
            lcmp
            ifeq 17
        15: .line 2726
            lload 5 /* xs */
            aload 0 /* this */
            getfield java.math.BigDecimal.intVal:Ljava/math/BigInteger;
            invokestatic java.math.BigDecimal.compactValFor:(Ljava/math/BigInteger;)J
            lcmp
            ifne 16
            iconst_1
            ireturn
      StackMap locals:
      StackMap stack:
        16: iconst_0
            ireturn
        17: .line 2728
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokevirtual java.math.BigDecimal.inflated:()Ljava/math/BigInteger;
            aload 2 /* xDec */
            invokevirtual java.math.BigDecimal.inflated:()Ljava/math/BigInteger;
            invokevirtual java.math.BigInteger.equals:(Ljava/lang/Object;)Z
            ireturn
        end local 5 // long xs
        end local 3 // long s
        end local 2 // java.math.BigDecimal xDec
        end local 1 // java.lang.Object x
        end local 0 // java.math.BigDecimal this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0   18     0  this  Ljava/math/BigDecimal;
            0   18     1     x  Ljava/lang/Object;
            3   18     2  xDec  Ljava/math/BigDecimal;
            8   18     3     s  J
            9   18     5    xs  J
    MethodParameters:
      Name  Flags
      x     

  public java.math.BigDecimal min(java.math.BigDecimal);
    descriptor: (Ljava/math/BigDecimal;)Ljava/math/BigDecimal;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // java.math.BigDecimal this
        start local 1 // java.math.BigDecimal val
         0: .line 2743
            aload 0 /* this */
            aload 1 /* val */
            invokevirtual java.math.BigDecimal.compareTo:(Ljava/math/BigDecimal;)I
            ifgt 1
            aload 0 /* this */
            goto 2
      StackMap locals:
      StackMap stack:
         1: aload 1 /* val */
      StackMap locals:
      StackMap stack: java.math.BigDecimal
         2: areturn
        end local 1 // java.math.BigDecimal val
        end local 0 // java.math.BigDecimal this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    3     0  this  Ljava/math/BigDecimal;
            0    3     1   val  Ljava/math/BigDecimal;
    MethodParameters:
      Name  Flags
      val   

  public java.math.BigDecimal max(java.math.BigDecimal);
    descriptor: (Ljava/math/BigDecimal;)Ljava/math/BigDecimal;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // java.math.BigDecimal this
        start local 1 // java.math.BigDecimal val
         0: .line 2757
            aload 0 /* this */
            aload 1 /* val */
            invokevirtual java.math.BigDecimal.compareTo:(Ljava/math/BigDecimal;)I
            iflt 1
            aload 0 /* this */
            goto 2
      StackMap locals:
      StackMap stack:
         1: aload 1 /* val */
      StackMap locals:
      StackMap stack: java.math.BigDecimal
         2: areturn
        end local 1 // java.math.BigDecimal val
        end local 0 // java.math.BigDecimal this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    3     0  this  Ljava/math/BigDecimal;
            0    3     1   val  Ljava/math/BigDecimal;
    MethodParameters:
      Name  Flags
      val   

  public int hashCode();
    descriptor: ()I
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=6, locals=4, args_size=1
        start local 0 // java.math.BigDecimal this
         0: .line 2773
            aload 0 /* this */
            getfield java.math.BigDecimal.intCompact:J
            ldc -9223372036854775808
            lcmp
            ifeq 10
         1: .line 2774
            aload 0 /* this */
            getfield java.math.BigDecimal.intCompact:J
            lconst_0
            lcmp
            ifge 2
            aload 0 /* this */
            getfield java.math.BigDecimal.intCompact:J
            lneg
            goto 3
      StackMap locals:
      StackMap stack:
         2: aload 0 /* this */
            getfield java.math.BigDecimal.intCompact:J
      StackMap locals:
      StackMap stack: long
         3: lstore 1 /* val2 */
        start local 1 // long val2
         4: .line 2775
            lload 1 /* val2 */
            bipush 32
            lushr
            l2i
            bipush 31
            imul
            i2l
         5: .line 2776
            lload 1 /* val2 */
            ldc 4294967295
            land
         6: .line 2775
            ladd
            l2i
            istore 3 /* temp */
        start local 3 // int temp
         7: .line 2777
            bipush 31
            aload 0 /* this */
            getfield java.math.BigDecimal.intCompact:J
            lconst_0
            lcmp
            ifge 8
            iload 3 /* temp */
            ineg
            goto 9
      StackMap locals: java.math.BigDecimal long int
      StackMap stack: int
         8: iload 3 /* temp */
      StackMap locals: java.math.BigDecimal long int
      StackMap stack: int int
         9: imul
            aload 0 /* this */
            getfield java.math.BigDecimal.scale:I
            iadd
            ireturn
        end local 3 // int temp
        end local 1 // long val2
        10: .line 2779
      StackMap locals:
      StackMap stack:
            bipush 31
            aload 0 /* this */
            getfield java.math.BigDecimal.intVal:Ljava/math/BigInteger;
            invokevirtual java.math.BigInteger.hashCode:()I
            imul
            aload 0 /* this */
            getfield java.math.BigDecimal.scale:I
            iadd
            ireturn
        end local 0 // java.math.BigDecimal this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0   11     0  this  Ljava/math/BigDecimal;
            4   10     1  val2  J
            7   10     3  temp  I

  public java.lang.String toString();
    descriptor: ()Ljava/lang/String;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=2, args_size=1
        start local 0 // java.math.BigDecimal this
         0: .line 2885
            aload 0 /* this */
            getfield java.math.BigDecimal.stringCache:Ljava/lang/String;
            astore 1 /* sc */
        start local 1 // java.lang.String sc
         1: .line 2886
            aload 1 /* sc */
            ifnonnull 3
         2: .line 2887
            aload 0 /* this */
            aload 0 /* this */
            iconst_1
            invokevirtual java.math.BigDecimal.layoutChars:(Z)Ljava/lang/String;
            dup
            astore 1 /* sc */
            putfield java.math.BigDecimal.stringCache:Ljava/lang/String;
         3: .line 2888
      StackMap locals: java.lang.String
      StackMap stack:
            aload 1 /* sc */
            areturn
        end local 1 // java.lang.String sc
        end local 0 // java.math.BigDecimal this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    4     0  this  Ljava/math/BigDecimal;
            1    4     1    sc  Ljava/lang/String;

  public java.lang.String toEngineeringString();
    descriptor: ()Ljava/lang/String;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // java.math.BigDecimal this
         0: .line 2916
            aload 0 /* this */
            iconst_0
            invokevirtual java.math.BigDecimal.layoutChars:(Z)Ljava/lang/String;
            areturn
        end local 0 // java.math.BigDecimal this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Ljava/math/BigDecimal;

  public java.lang.String toPlainString();
    descriptor: ()Ljava/lang/String;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=4, args_size=1
        start local 0 // java.math.BigDecimal this
         0: .line 2953
            aload 0 /* this */
            getfield java.math.BigDecimal.scale:I
            ifne 4
         1: .line 2954
            aload 0 /* this */
            getfield java.math.BigDecimal.intCompact:J
            ldc -9223372036854775808
            lcmp
            ifeq 3
         2: .line 2955
            aload 0 /* this */
            getfield java.math.BigDecimal.intCompact:J
            invokestatic java.lang.Long.toString:(J)Ljava/lang/String;
            areturn
         3: .line 2957
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield java.math.BigDecimal.intVal:Ljava/math/BigInteger;
            invokevirtual java.math.BigInteger.toString:()Ljava/lang/String;
            areturn
         4: .line 2960
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield java.math.BigDecimal.scale:I
            ifge 21
         5: .line 2961
            aload 0 /* this */
            invokevirtual java.math.BigDecimal.signum:()I
            ifne 7
         6: .line 2962
            ldc "0"
            areturn
         7: .line 2964
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield java.math.BigDecimal.scale:I
            i2l
            lneg
            invokestatic java.math.BigDecimal.checkScaleNonZero:(J)I
            istore 1 /* tailingZeros */
        start local 1 // int tailingZeros
         8: .line 2966
            aload 0 /* this */
            getfield java.math.BigDecimal.intCompact:J
            ldc -9223372036854775808
            lcmp
            ifeq 12
         9: .line 2967
            new java.lang.StringBuilder
            dup
            bipush 20
            iload 1 /* tailingZeros */
            iadd
            invokespecial java.lang.StringBuilder.<init>:(I)V
            astore 2 /* buf */
        start local 2 // java.lang.StringBuilder buf
        10: .line 2968
            aload 2 /* buf */
            aload 0 /* this */
            getfield java.math.BigDecimal.intCompact:J
            invokevirtual java.lang.StringBuilder.append:(J)Ljava/lang/StringBuilder;
            pop
        11: .line 2969
            goto 15
        end local 2 // java.lang.StringBuilder buf
        12: .line 2970
      StackMap locals: int
      StackMap stack:
            aload 0 /* this */
            getfield java.math.BigDecimal.intVal:Ljava/math/BigInteger;
            invokevirtual java.math.BigInteger.toString:()Ljava/lang/String;
            astore 3 /* str */
        start local 3 // java.lang.String str
        13: .line 2971
            new java.lang.StringBuilder
            dup
            aload 3 /* str */
            invokevirtual java.lang.String.length:()I
            iload 1 /* tailingZeros */
            iadd
            invokespecial java.lang.StringBuilder.<init>:(I)V
            astore 2 /* buf */
        start local 2 // java.lang.StringBuilder buf
        14: .line 2972
            aload 2 /* buf */
            aload 3 /* str */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            pop
        end local 3 // java.lang.String str
        15: .line 2974
      StackMap locals: java.lang.StringBuilder
      StackMap stack:
            iconst_0
            istore 3 /* i */
        start local 3 // int i
        16: goto 19
        17: .line 2975
      StackMap locals: int
      StackMap stack:
            aload 2 /* buf */
            bipush 48
            invokevirtual java.lang.StringBuilder.append:(C)Ljava/lang/StringBuilder;
            pop
        18: .line 2974
            iinc 3 /* i */ 1
      StackMap locals:
      StackMap stack:
        19: iload 3 /* i */
            iload 1 /* tailingZeros */
            if_icmplt 17
        end local 3 // int i
        20: .line 2976
            aload 2 /* buf */
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            areturn
        end local 2 // java.lang.StringBuilder buf
        end local 1 // int tailingZeros
        21: .line 2979
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield java.math.BigDecimal.intCompact:J
            ldc -9223372036854775808
            lcmp
            ifeq 24
        22: .line 2980
            aload 0 /* this */
            getfield java.math.BigDecimal.intCompact:J
            invokestatic java.lang.Math.abs:(J)J
            invokestatic java.lang.Long.toString:(J)Ljava/lang/String;
            astore 1 /* str */
        start local 1 // java.lang.String str
        23: .line 2981
            goto 25
        end local 1 // java.lang.String str
        24: .line 2982
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield java.math.BigDecimal.intVal:Ljava/math/BigInteger;
            invokevirtual java.math.BigInteger.abs:()Ljava/math/BigInteger;
            invokevirtual java.math.BigInteger.toString:()Ljava/lang/String;
            astore 1 /* str */
        start local 1 // java.lang.String str
        25: .line 2984
      StackMap locals: java.lang.String
      StackMap stack:
            aload 0 /* this */
            aload 0 /* this */
            invokevirtual java.math.BigDecimal.signum:()I
            aload 1 /* str */
            aload 0 /* this */
            getfield java.math.BigDecimal.scale:I
            invokevirtual java.math.BigDecimal.getValueString:(ILjava/lang/String;I)Ljava/lang/String;
            areturn
        end local 1 // java.lang.String str
        end local 0 // java.math.BigDecimal this
      LocalVariableTable:
        Start  End  Slot          Name  Signature
            0   26     0          this  Ljava/math/BigDecimal;
            8   21     1  tailingZeros  I
           10   12     2           buf  Ljava/lang/StringBuilder;
           14   21     2           buf  Ljava/lang/StringBuilder;
           13   15     3           str  Ljava/lang/String;
           16   20     3             i  I
           23   24     1           str  Ljava/lang/String;
           25   26     1           str  Ljava/lang/String;

  private java.lang.String getValueString(int, java.lang.String, int);
    descriptor: (ILjava/lang/String;I)Ljava/lang/String;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=4, locals=7, args_size=4
        start local 0 // java.math.BigDecimal this
        start local 1 // int signum
        start local 2 // java.lang.String intString
        start local 3 // int scale
         0: .line 2991
            aload 2 /* intString */
            invokevirtual java.lang.String.length:()I
            iload 3 /* scale */
            isub
            istore 5 /* insertionPoint */
        start local 5 // int insertionPoint
         1: .line 2992
            iload 5 /* insertionPoint */
            ifne 5
         2: .line 2993
            new java.lang.StringBuilder
            dup
            iload 1 /* signum */
            ifge 3
            ldc "-0."
            goto 4
      StackMap locals: java.math.BigDecimal int java.lang.String int top int
      StackMap stack: new 2 new 2
         3: ldc "0."
      StackMap locals: java.math.BigDecimal int java.lang.String int top int
      StackMap stack: new 2 new 2 java.lang.String
         4: invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 2 /* intString */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            areturn
         5: .line 2994
      StackMap locals:
      StackMap stack:
            iload 5 /* insertionPoint */
            ifle 11
         6: .line 2995
            new java.lang.StringBuilder
            dup
            aload 2 /* intString */
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            astore 4 /* buf */
        start local 4 // java.lang.StringBuilder buf
         7: .line 2996
            aload 4 /* buf */
            iload 5 /* insertionPoint */
            bipush 46
            invokevirtual java.lang.StringBuilder.insert:(IC)Ljava/lang/StringBuilder;
            pop
         8: .line 2997
            iload 1 /* signum */
            ifge 21
         9: .line 2998
            aload 4 /* buf */
            iconst_0
            bipush 45
            invokevirtual java.lang.StringBuilder.insert:(IC)Ljava/lang/StringBuilder;
            pop
        10: .line 2999
            goto 21
        end local 4 // java.lang.StringBuilder buf
        11: .line 3000
      StackMap locals:
      StackMap stack:
            new java.lang.StringBuilder
            dup
            iconst_3
            iload 5 /* insertionPoint */
            isub
            aload 2 /* intString */
            invokevirtual java.lang.String.length:()I
            iadd
            invokespecial java.lang.StringBuilder.<init>:(I)V
            astore 4 /* buf */
        start local 4 // java.lang.StringBuilder buf
        12: .line 3001
            aload 4 /* buf */
            iload 1 /* signum */
            ifge 13
            ldc "-0."
            goto 14
      StackMap locals: java.math.BigDecimal int java.lang.String int java.lang.StringBuilder int
      StackMap stack: java.lang.StringBuilder
        13: ldc "0."
      StackMap locals: java.math.BigDecimal int java.lang.String int java.lang.StringBuilder int
      StackMap stack: java.lang.StringBuilder java.lang.String
        14: invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            pop
        15: .line 3002
            iconst_0
            istore 6 /* i */
        start local 6 // int i
        16: goto 19
        17: .line 3003
      StackMap locals: int
      StackMap stack:
            aload 4 /* buf */
            bipush 48
            invokevirtual java.lang.StringBuilder.append:(C)Ljava/lang/StringBuilder;
            pop
        18: .line 3002
            iinc 6 /* i */ 1
      StackMap locals:
      StackMap stack:
        19: iload 6 /* i */
            iload 5 /* insertionPoint */
            ineg
            if_icmplt 17
        end local 6 // int i
        20: .line 3004
            aload 4 /* buf */
            aload 2 /* intString */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            pop
        21: .line 3006
      StackMap locals:
      StackMap stack:
            aload 4 /* buf */
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            areturn
        end local 5 // int insertionPoint
        end local 4 // java.lang.StringBuilder buf
        end local 3 // int scale
        end local 2 // java.lang.String intString
        end local 1 // int signum
        end local 0 // java.math.BigDecimal this
      LocalVariableTable:
        Start  End  Slot            Name  Signature
            0   22     0            this  Ljava/math/BigDecimal;
            0   22     1          signum  I
            0   22     2       intString  Ljava/lang/String;
            0   22     3           scale  I
            7   11     4             buf  Ljava/lang/StringBuilder;
           12   22     4             buf  Ljava/lang/StringBuilder;
            1   22     5  insertionPoint  I
           16   20     6               i  I
    MethodParameters:
           Name  Flags
      signum     
      intString  
      scale      

  public java.math.BigInteger toBigInteger();
    descriptor: ()Ljava/math/BigInteger;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=1, args_size=1
        start local 0 // java.math.BigDecimal this
         0: .line 3028
            aload 0 /* this */
            iconst_0
            iconst_1
            invokevirtual java.math.BigDecimal.setScale:(II)Ljava/math/BigDecimal;
            invokevirtual java.math.BigDecimal.inflated:()Ljava/math/BigInteger;
            areturn
        end local 0 // java.math.BigDecimal this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Ljava/math/BigDecimal;

  public java.math.BigInteger toBigIntegerExact();
    descriptor: ()Ljava/math/BigInteger;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=1, args_size=1
        start local 0 // java.math.BigDecimal this
         0: .line 3043
            aload 0 /* this */
            iconst_0
            bipush 7
            invokevirtual java.math.BigDecimal.setScale:(II)Ljava/math/BigDecimal;
            invokevirtual java.math.BigDecimal.inflated:()Ljava/math/BigInteger;
            areturn
        end local 0 // java.math.BigDecimal this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Ljava/math/BigDecimal;

  public long longValue();
    descriptor: ()J
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=1, args_size=1
        start local 0 // java.math.BigDecimal this
         0: .line 3063
            aload 0 /* this */
            getfield java.math.BigDecimal.intCompact:J
            ldc -9223372036854775808
            lcmp
            ifeq 2
            aload 0 /* this */
            getfield java.math.BigDecimal.scale:I
            ifne 2
         1: .line 3064
            aload 0 /* this */
            getfield java.math.BigDecimal.intCompact:J
            lreturn
         2: .line 3067
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokevirtual java.math.BigDecimal.signum:()I
            ifeq 4
            aload 0 /* this */
            invokevirtual java.math.BigDecimal.fractionOnly:()Z
            ifne 4
         3: .line 3074
            aload 0 /* this */
            getfield java.math.BigDecimal.scale:I
            bipush -64
            if_icmpgt 5
         4: .line 3075
      StackMap locals:
      StackMap stack:
            lconst_0
            lreturn
         5: .line 3077
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokevirtual java.math.BigDecimal.toBigInteger:()Ljava/math/BigInteger;
            invokevirtual java.math.BigInteger.longValue:()J
            lreturn
        end local 0 // java.math.BigDecimal this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    6     0  this  Ljava/math/BigDecimal;

  private boolean fractionOnly();
    descriptor: ()Z
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // java.math.BigDecimal this
         0: .line 3087
            getstatic java.math.BigDecimal.$assertionsDisabled:Z
            ifne 1
            aload 0 /* this */
            invokevirtual java.math.BigDecimal.signum:()I
            ifne 1
            new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
         1: .line 3088
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokevirtual java.math.BigDecimal.precision:()I
            aload 0 /* this */
            getfield java.math.BigDecimal.scale:I
            isub
            ifgt 2
            iconst_1
            ireturn
      StackMap locals:
      StackMap stack:
         2: iconst_0
            ireturn
        end local 0 // java.math.BigDecimal this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    3     0  this  Ljava/math/BigDecimal;

  public long longValueExact();
    descriptor: ()J
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=2, args_size=1
        start local 0 // java.math.BigDecimal this
         0: .line 3104
            aload 0 /* this */
            getfield java.math.BigDecimal.intCompact:J
            ldc -9223372036854775808
            lcmp
            ifeq 2
            aload 0 /* this */
            getfield java.math.BigDecimal.scale:I
            ifne 2
         1: .line 3105
            aload 0 /* this */
            getfield java.math.BigDecimal.intCompact:J
            lreturn
         2: .line 3108
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokevirtual java.math.BigDecimal.signum:()I
            ifne 4
         3: .line 3109
            lconst_0
            lreturn
         4: .line 3113
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokevirtual java.math.BigDecimal.fractionOnly:()Z
            ifeq 6
         5: .line 3114
            new java.lang.ArithmeticException
            dup
            ldc "Rounding necessary"
            invokespecial java.lang.ArithmeticException.<init>:(Ljava/lang/String;)V
            athrow
         6: .line 3117
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokevirtual java.math.BigDecimal.precision:()I
            aload 0 /* this */
            getfield java.math.BigDecimal.scale:I
            isub
            bipush 19
            if_icmple 8
         7: .line 3118
            new java.lang.ArithmeticException
            dup
            ldc "Overflow"
            invokespecial java.lang.ArithmeticException.<init>:(Ljava/lang/String;)V
            athrow
         8: .line 3121
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            iconst_0
            bipush 7
            invokevirtual java.math.BigDecimal.setScale:(II)Ljava/math/BigDecimal;
            astore 1 /* num */
        start local 1 // java.math.BigDecimal num
         9: .line 3122
            aload 1 /* num */
            invokevirtual java.math.BigDecimal.precision:()I
            bipush 19
            if_icmplt 11
        10: .line 3123
            aload 1 /* num */
            invokestatic java.math.BigDecimal$LongOverflow.check:(Ljava/math/BigDecimal;)V
        11: .line 3124
      StackMap locals: java.math.BigDecimal
      StackMap stack:
            aload 1 /* num */
            invokevirtual java.math.BigDecimal.inflated:()Ljava/math/BigInteger;
            invokevirtual java.math.BigInteger.longValue:()J
            lreturn
        end local 1 // java.math.BigDecimal num
        end local 0 // java.math.BigDecimal this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0   12     0  this  Ljava/math/BigDecimal;
            9   12     1   num  Ljava/math/BigDecimal;

  public int intValue();
    descriptor: ()I
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=1, args_size=1
        start local 0 // java.math.BigDecimal this
         0: .line 3159
            aload 0 /* this */
            getfield java.math.BigDecimal.intCompact:J
            ldc -9223372036854775808
            lcmp
            ifeq 2
            aload 0 /* this */
            getfield java.math.BigDecimal.scale:I
            ifne 2
         1: .line 3160
            aload 0 /* this */
            getfield java.math.BigDecimal.intCompact:J
            l2i
            goto 3
         2: .line 3161
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokevirtual java.math.BigDecimal.longValue:()J
            l2i
         3: .line 3159
      StackMap locals:
      StackMap stack: int
            ireturn
        end local 0 // java.math.BigDecimal this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    4     0  this  Ljava/math/BigDecimal;

  public int intValueExact();
    descriptor: ()I
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=3, args_size=1
        start local 0 // java.math.BigDecimal this
         0: .line 3178
            aload 0 /* this */
            invokevirtual java.math.BigDecimal.longValueExact:()J
            lstore 1 /* num */
        start local 1 // long num
         1: .line 3179
            lload 1 /* num */
            l2i
            i2l
            lload 1 /* num */
            lcmp
            ifeq 3
         2: .line 3180
            new java.lang.ArithmeticException
            dup
            ldc "Overflow"
            invokespecial java.lang.ArithmeticException.<init>:(Ljava/lang/String;)V
            athrow
         3: .line 3181
      StackMap locals: long
      StackMap stack:
            lload 1 /* num */
            l2i
            ireturn
        end local 1 // long num
        end local 0 // java.math.BigDecimal this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    4     0  this  Ljava/math/BigDecimal;
            1    4     1   num  J

  public short shortValueExact();
    descriptor: ()S
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=3, args_size=1
        start local 0 // java.math.BigDecimal this
         0: .line 3198
            aload 0 /* this */
            invokevirtual java.math.BigDecimal.longValueExact:()J
            lstore 1 /* num */
        start local 1 // long num
         1: .line 3199
            lload 1 /* num */
            l2i
            i2s
            i2l
            lload 1 /* num */
            lcmp
            ifeq 3
         2: .line 3200
            new java.lang.ArithmeticException
            dup
            ldc "Overflow"
            invokespecial java.lang.ArithmeticException.<init>:(Ljava/lang/String;)V
            athrow
         3: .line 3201
      StackMap locals: long
      StackMap stack:
            lload 1 /* num */
            l2i
            i2s
            ireturn
        end local 1 // long num
        end local 0 // java.math.BigDecimal this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    4     0  this  Ljava/math/BigDecimal;
            1    4     1   num  J

  public byte byteValueExact();
    descriptor: ()B
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=3, args_size=1
        start local 0 // java.math.BigDecimal this
         0: .line 3218
            aload 0 /* this */
            invokevirtual java.math.BigDecimal.longValueExact:()J
            lstore 1 /* num */
        start local 1 // long num
         1: .line 3219
            lload 1 /* num */
            l2i
            i2b
            i2l
            lload 1 /* num */
            lcmp
            ifeq 3
         2: .line 3220
            new java.lang.ArithmeticException
            dup
            ldc "Overflow"
            invokespecial java.lang.ArithmeticException.<init>:(Ljava/lang/String;)V
            athrow
         3: .line 3221
      StackMap locals: long
      StackMap stack:
            lload 1 /* num */
            l2i
            i2b
            ireturn
        end local 1 // long num
        end local 0 // java.math.BigDecimal this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    4     0  this  Ljava/math/BigDecimal;
            1    4     1   num  J

  public float floatValue();
    descriptor: ()F
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=1, args_size=1
        start local 0 // java.math.BigDecimal this
         0: .line 3241
            aload 0 /* this */
            getfield java.math.BigDecimal.intCompact:J
            ldc -9223372036854775808
            lcmp
            ifeq 8
         1: .line 3242
            aload 0 /* this */
            getfield java.math.BigDecimal.scale:I
            ifne 3
         2: .line 3243
            aload 0 /* this */
            getfield java.math.BigDecimal.intCompact:J
            l2f
            freturn
         3: .line 3251
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield java.math.BigDecimal.intCompact:J
            invokestatic java.lang.Math.abs:(J)J
            ldc 4194304
            lcmp
            ifge 8
         4: .line 3255
            aload 0 /* this */
            getfield java.math.BigDecimal.scale:I
            ifle 6
            aload 0 /* this */
            getfield java.math.BigDecimal.scale:I
            getstatic java.math.BigDecimal.float10pow:[F
            arraylength
            if_icmpge 6
         5: .line 3256
            aload 0 /* this */
            getfield java.math.BigDecimal.intCompact:J
            l2f
            getstatic java.math.BigDecimal.float10pow:[F
            aload 0 /* this */
            getfield java.math.BigDecimal.scale:I
            faload
            fdiv
            freturn
         6: .line 3257
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield java.math.BigDecimal.scale:I
            ifge 8
            aload 0 /* this */
            getfield java.math.BigDecimal.scale:I
            getstatic java.math.BigDecimal.float10pow:[F
            arraylength
            ineg
            if_icmple 8
         7: .line 3258
            aload 0 /* this */
            getfield java.math.BigDecimal.intCompact:J
            l2f
            getstatic java.math.BigDecimal.float10pow:[F
            aload 0 /* this */
            getfield java.math.BigDecimal.scale:I
            ineg
            faload
            fmul
            freturn
         8: .line 3264
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokevirtual java.math.BigDecimal.toString:()Ljava/lang/String;
            invokestatic java.lang.Float.parseFloat:(Ljava/lang/String;)F
            freturn
        end local 0 // java.math.BigDecimal this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    9     0  this  Ljava/math/BigDecimal;

  public double doubleValue();
    descriptor: ()D
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=1, args_size=1
        start local 0 // java.math.BigDecimal this
         0: .line 3284
            aload 0 /* this */
            getfield java.math.BigDecimal.intCompact:J
            ldc -9223372036854775808
            lcmp
            ifeq 8
         1: .line 3285
            aload 0 /* this */
            getfield java.math.BigDecimal.scale:I
            ifne 3
         2: .line 3286
            aload 0 /* this */
            getfield java.math.BigDecimal.intCompact:J
            l2d
            dreturn
         3: .line 3294
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield java.math.BigDecimal.intCompact:J
            invokestatic java.lang.Math.abs:(J)J
            ldc 4503599627370496
            lcmp
            ifge 8
         4: .line 3298
            aload 0 /* this */
            getfield java.math.BigDecimal.scale:I
            ifle 6
            aload 0 /* this */
            getfield java.math.BigDecimal.scale:I
            getstatic java.math.BigDecimal.double10pow:[D
            arraylength
            if_icmpge 6
         5: .line 3299
            aload 0 /* this */
            getfield java.math.BigDecimal.intCompact:J
            l2d
            getstatic java.math.BigDecimal.double10pow:[D
            aload 0 /* this */
            getfield java.math.BigDecimal.scale:I
            daload
            ddiv
            dreturn
         6: .line 3300
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield java.math.BigDecimal.scale:I
            ifge 8
            aload 0 /* this */
            getfield java.math.BigDecimal.scale:I
            getstatic java.math.BigDecimal.double10pow:[D
            arraylength
            ineg
            if_icmple 8
         7: .line 3301
            aload 0 /* this */
            getfield java.math.BigDecimal.intCompact:J
            l2d
            getstatic java.math.BigDecimal.double10pow:[D
            aload 0 /* this */
            getfield java.math.BigDecimal.scale:I
            ineg
            daload
            dmul
            dreturn
         8: .line 3307
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokevirtual java.math.BigDecimal.toString:()Ljava/lang/String;
            invokestatic java.lang.Double.parseDouble:(Ljava/lang/String;)D
            dreturn
        end local 0 // java.math.BigDecimal this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    9     0  this  Ljava/math/BigDecimal;

  public java.math.BigDecimal ulp();
    descriptor: ()Ljava/math/BigDecimal;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=1, args_size=1
        start local 0 // java.math.BigDecimal this
         0: .line 3345
            lconst_1
            aload 0 /* this */
            invokevirtual java.math.BigDecimal.scale:()I
            iconst_1
            invokestatic java.math.BigDecimal.valueOf:(JII)Ljava/math/BigDecimal;
            areturn
        end local 0 // java.math.BigDecimal this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Ljava/math/BigDecimal;

  private java.lang.String layoutChars(boolean);
    descriptor: (Z)Ljava/lang/String;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=5, locals=11, args_size=2
        start local 0 // java.math.BigDecimal this
        start local 1 // boolean sci
         0: .line 3457
            aload 0 /* this */
            getfield java.math.BigDecimal.scale:I
            ifne 5
         1: .line 3458
            aload 0 /* this */
            getfield java.math.BigDecimal.intCompact:J
            ldc -9223372036854775808
            lcmp
            ifeq 3
         2: .line 3459
            aload 0 /* this */
            getfield java.math.BigDecimal.intCompact:J
            invokestatic java.lang.Long.toString:(J)Ljava/lang/String;
            goto 4
         3: .line 3460
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield java.math.BigDecimal.intVal:Ljava/math/BigInteger;
            invokevirtual java.math.BigInteger.toString:()Ljava/lang/String;
         4: .line 3458
      StackMap locals:
      StackMap stack: java.lang.String
            areturn
         5: .line 3461
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield java.math.BigDecimal.scale:I
            iconst_2
            if_icmpne 13
         6: .line 3462
            aload 0 /* this */
            getfield java.math.BigDecimal.intCompact:J
            lconst_0
            lcmp
            iflt 13
            aload 0 /* this */
            getfield java.math.BigDecimal.intCompact:J
            ldc 2147483647
            lcmp
            ifge 13
         7: .line 3464
            aload 0 /* this */
            getfield java.math.BigDecimal.intCompact:J
            l2i
            bipush 100
            irem
            istore 2 /* lowInt */
        start local 2 // int lowInt
         8: .line 3465
            aload 0 /* this */
            getfield java.math.BigDecimal.intCompact:J
            l2i
            bipush 100
            idiv
            istore 3 /* highInt */
        start local 3 // int highInt
         9: .line 3466
            new java.lang.StringBuilder
            dup
            iload 3 /* highInt */
            invokestatic java.lang.Integer.toString:(I)Ljava/lang/String;
            invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            bipush 46
            invokevirtual java.lang.StringBuilder.append:(C)Ljava/lang/StringBuilder;
        10: .line 3467
            getstatic java.math.BigDecimal$StringBuilderHelper.DIGIT_TENS:[C
            iload 2 /* lowInt */
            caload
            invokevirtual java.lang.StringBuilder.append:(C)Ljava/lang/StringBuilder;
        11: .line 3468
            getstatic java.math.BigDecimal$StringBuilderHelper.DIGIT_ONES:[C
            iload 2 /* lowInt */
            caload
            invokevirtual java.lang.StringBuilder.append:(C)Ljava/lang/StringBuilder;
        12: .line 3466
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            areturn
        end local 3 // int highInt
        end local 2 // int lowInt
        13: .line 3471
      StackMap locals:
      StackMap stack:
            getstatic java.math.BigDecimal.threadLocalStringBuilderHelper:Ljava/lang/ThreadLocal;
            invokevirtual java.lang.ThreadLocal.get:()Ljava/lang/Object;
            checkcast java.math.BigDecimal$StringBuilderHelper
            astore 2 /* sbHelper */
        start local 2 // java.math.BigDecimal$StringBuilderHelper sbHelper
        14: .line 3475
            aload 0 /* this */
            getfield java.math.BigDecimal.intCompact:J
            ldc -9223372036854775808
            lcmp
            ifeq 18
        15: .line 3476
            aload 2 /* sbHelper */
            aload 0 /* this */
            getfield java.math.BigDecimal.intCompact:J
            invokestatic java.lang.Math.abs:(J)J
            invokevirtual java.math.BigDecimal$StringBuilderHelper.putIntCompact:(J)I
            istore 4 /* offset */
        start local 4 // int offset
        16: .line 3477
            aload 2 /* sbHelper */
            invokevirtual java.math.BigDecimal$StringBuilderHelper.getCompactCharArray:()[C
            astore 3 /* coeff */
        start local 3 // char[] coeff
        17: .line 3478
            goto 20
        end local 4 // int offset
        end local 3 // char[] coeff
        18: .line 3479
      StackMap locals: java.math.BigDecimal$StringBuilderHelper
      StackMap stack:
            iconst_0
            istore 4 /* offset */
        start local 4 // int offset
        19: .line 3480
            aload 0 /* this */
            getfield java.math.BigDecimal.intVal:Ljava/math/BigInteger;
            invokevirtual java.math.BigInteger.abs:()Ljava/math/BigInteger;
            invokevirtual java.math.BigInteger.toString:()Ljava/lang/String;
            invokevirtual java.lang.String.toCharArray:()[C
            astore 3 /* coeff */
        start local 3 // char[] coeff
        20: .line 3487
      StackMap locals: char[] int
      StackMap stack:
            aload 2 /* sbHelper */
            invokevirtual java.math.BigDecimal$StringBuilderHelper.getStringBuilder:()Ljava/lang/StringBuilder;
            astore 5 /* buf */
        start local 5 // java.lang.StringBuilder buf
        21: .line 3488
            aload 0 /* this */
            invokevirtual java.math.BigDecimal.signum:()I
            ifge 23
        22: .line 3489
            aload 5 /* buf */
            bipush 45
            invokevirtual java.lang.StringBuilder.append:(C)Ljava/lang/StringBuilder;
            pop
        23: .line 3490
      StackMap locals: java.lang.StringBuilder
      StackMap stack:
            aload 3 /* coeff */
            arraylength
            iload 4 /* offset */
            isub
            istore 6 /* coeffLen */
        start local 6 // int coeffLen
        24: .line 3491
            aload 0 /* this */
            getfield java.math.BigDecimal.scale:I
            i2l
            lneg
            iload 6 /* coeffLen */
            iconst_1
            isub
            i2l
            ladd
            lstore 7 /* adjusted */
        start local 7 // long adjusted
        25: .line 3492
            aload 0 /* this */
            getfield java.math.BigDecimal.scale:I
            iflt 40
            lload 7 /* adjusted */
            ldc -6
            lcmp
            iflt 40
        26: .line 3493
            aload 0 /* this */
            getfield java.math.BigDecimal.scale:I
            iload 6 /* coeffLen */
            isub
            istore 9 /* pad */
        start local 9 // int pad
        27: .line 3494
            iload 9 /* pad */
            iflt 36
        28: .line 3495
            aload 5 /* buf */
            bipush 48
            invokevirtual java.lang.StringBuilder.append:(C)Ljava/lang/StringBuilder;
            pop
        29: .line 3496
            aload 5 /* buf */
            bipush 46
            invokevirtual java.lang.StringBuilder.append:(C)Ljava/lang/StringBuilder;
            pop
        30: .line 3497
            goto 33
        31: .line 3498
      StackMap locals: int long int
      StackMap stack:
            aload 5 /* buf */
            bipush 48
            invokevirtual java.lang.StringBuilder.append:(C)Ljava/lang/StringBuilder;
            pop
        32: .line 3497
            iinc 9 /* pad */ -1
      StackMap locals:
      StackMap stack:
        33: iload 9 /* pad */
            ifgt 31
        34: .line 3500
            aload 5 /* buf */
            aload 3 /* coeff */
            iload 4 /* offset */
            iload 6 /* coeffLen */
            invokevirtual java.lang.StringBuilder.append:([CII)Ljava/lang/StringBuilder;
            pop
        35: .line 3501
            goto 79
        36: .line 3502
      StackMap locals:
      StackMap stack:
            aload 5 /* buf */
            aload 3 /* coeff */
            iload 4 /* offset */
            iload 9 /* pad */
            ineg
            invokevirtual java.lang.StringBuilder.append:([CII)Ljava/lang/StringBuilder;
            pop
        37: .line 3503
            aload 5 /* buf */
            bipush 46
            invokevirtual java.lang.StringBuilder.append:(C)Ljava/lang/StringBuilder;
            pop
        38: .line 3504
            aload 5 /* buf */
            aload 3 /* coeff */
            iload 9 /* pad */
            ineg
            iload 4 /* offset */
            iadd
            aload 0 /* this */
            getfield java.math.BigDecimal.scale:I
            invokevirtual java.lang.StringBuilder.append:([CII)Ljava/lang/StringBuilder;
            pop
        end local 9 // int pad
        39: .line 3506
            goto 79
        40: .line 3507
      StackMap locals:
      StackMap stack:
            iload 1 /* sci */
            ifeq 46
        41: .line 3508
            aload 5 /* buf */
            aload 3 /* coeff */
            iload 4 /* offset */
            caload
            invokevirtual java.lang.StringBuilder.append:(C)Ljava/lang/StringBuilder;
            pop
        42: .line 3509
            iload 6 /* coeffLen */
            iconst_1
            if_icmple 74
        43: .line 3510
            aload 5 /* buf */
            bipush 46
            invokevirtual java.lang.StringBuilder.append:(C)Ljava/lang/StringBuilder;
            pop
        44: .line 3511
            aload 5 /* buf */
            aload 3 /* coeff */
            iload 4 /* offset */
            iconst_1
            iadd
            iload 6 /* coeffLen */
            iconst_1
            isub
            invokevirtual java.lang.StringBuilder.append:([CII)Ljava/lang/StringBuilder;
            pop
        45: .line 3513
            goto 74
        46: .line 3514
      StackMap locals:
      StackMap stack:
            lload 7 /* adjusted */
            ldc 3
            lrem
            l2i
            istore 9 /* sig */
        start local 9 // int sig
        47: .line 3515
            iload 9 /* sig */
            ifge 49
        48: .line 3516
            iinc 9 /* sig */ 3
        49: .line 3517
      StackMap locals: int
      StackMap stack:
            lload 7 /* adjusted */
            iload 9 /* sig */
            i2l
            lsub
            lstore 7 /* adjusted */
        50: .line 3518
            iinc 9 /* sig */ 1
        51: .line 3519
            aload 0 /* this */
            invokevirtual java.math.BigDecimal.signum:()I
            ifne 63
        52: .line 3520
            iload 9 /* sig */
            tableswitch { // 1 - 3
                    1: 53
                    2: 55
                    3: 58
              default: 61
          }
        53: .line 3522
      StackMap locals:
      StackMap stack:
            aload 5 /* buf */
            bipush 48
            invokevirtual java.lang.StringBuilder.append:(C)Ljava/lang/StringBuilder;
            pop
        54: .line 3523
            goto 74
        55: .line 3525
      StackMap locals:
      StackMap stack:
            aload 5 /* buf */
            ldc "0.00"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            pop
        56: .line 3526
            lload 7 /* adjusted */
            ldc 3
            ladd
            lstore 7 /* adjusted */
        57: .line 3527
            goto 74
        58: .line 3529
      StackMap locals:
      StackMap stack:
            aload 5 /* buf */
            ldc "0.0"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            pop
        59: .line 3530
            lload 7 /* adjusted */
            ldc 3
            ladd
            lstore 7 /* adjusted */
        60: .line 3531
            goto 74
        61: .line 3533
      StackMap locals:
      StackMap stack:
            new java.lang.AssertionError
            dup
            new java.lang.StringBuilder
            dup
            ldc "Unexpected sig value "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            iload 9 /* sig */
            invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokespecial java.lang.AssertionError.<init>:(Ljava/lang/Object;)V
            athrow
        62: .line 3535
      StackMap locals:
      StackMap stack:
            goto 74
      StackMap locals:
      StackMap stack:
        63: iload 9 /* sig */
            iload 6 /* coeffLen */
            if_icmplt 71
        64: .line 3536
            aload 5 /* buf */
            aload 3 /* coeff */
            iload 4 /* offset */
            iload 6 /* coeffLen */
            invokevirtual java.lang.StringBuilder.append:([CII)Ljava/lang/StringBuilder;
            pop
        65: .line 3538
            iload 9 /* sig */
            iload 6 /* coeffLen */
            isub
            istore 10 /* i */
        start local 10 // int i
        66: goto 69
        67: .line 3539
      StackMap locals: int
      StackMap stack:
            aload 5 /* buf */
            bipush 48
            invokevirtual java.lang.StringBuilder.append:(C)Ljava/lang/StringBuilder;
            pop
        68: .line 3538
            iinc 10 /* i */ -1
      StackMap locals:
      StackMap stack:
        69: iload 10 /* i */
            ifgt 67
        end local 10 // int i
        70: .line 3540
            goto 74
        71: .line 3541
      StackMap locals:
      StackMap stack:
            aload 5 /* buf */
            aload 3 /* coeff */
            iload 4 /* offset */
            iload 9 /* sig */
            invokevirtual java.lang.StringBuilder.append:([CII)Ljava/lang/StringBuilder;
            pop
        72: .line 3542
            aload 5 /* buf */
            bipush 46
            invokevirtual java.lang.StringBuilder.append:(C)Ljava/lang/StringBuilder;
            pop
        73: .line 3543
            aload 5 /* buf */
            aload 3 /* coeff */
            iload 4 /* offset */
            iload 9 /* sig */
            iadd
            iload 6 /* coeffLen */
            iload 9 /* sig */
            isub
            invokevirtual java.lang.StringBuilder.append:([CII)Ljava/lang/StringBuilder;
            pop
        end local 9 // int sig
        74: .line 3546
      StackMap locals:
      StackMap stack:
            lload 7 /* adjusted */
            lconst_0
            lcmp
            ifeq 79
        75: .line 3547
            aload 5 /* buf */
            bipush 69
            invokevirtual java.lang.StringBuilder.append:(C)Ljava/lang/StringBuilder;
            pop
        76: .line 3548
            lload 7 /* adjusted */
            lconst_0
            lcmp
            ifle 78
        77: .line 3549
            aload 5 /* buf */
            bipush 43
            invokevirtual java.lang.StringBuilder.append:(C)Ljava/lang/StringBuilder;
            pop
        78: .line 3550
      StackMap locals:
      StackMap stack:
            aload 5 /* buf */
            lload 7 /* adjusted */
            invokevirtual java.lang.StringBuilder.append:(J)Ljava/lang/StringBuilder;
            pop
        79: .line 3553
      StackMap locals:
      StackMap stack:
            aload 5 /* buf */
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            areturn
        end local 7 // long adjusted
        end local 6 // int coeffLen
        end local 5 // java.lang.StringBuilder buf
        end local 4 // int offset
        end local 3 // char[] coeff
        end local 2 // java.math.BigDecimal$StringBuilderHelper sbHelper
        end local 1 // boolean sci
        end local 0 // java.math.BigDecimal this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0   80     0      this  Ljava/math/BigDecimal;
            0   80     1       sci  Z
            8   13     2    lowInt  I
            9   13     3   highInt  I
           14   80     2  sbHelper  Ljava/math/BigDecimal$StringBuilderHelper;
           17   18     3     coeff  [C
           20   80     3     coeff  [C
           16   18     4    offset  I
           19   80     4    offset  I
           21   80     5       buf  Ljava/lang/StringBuilder;
           24   80     6  coeffLen  I
           25   80     7  adjusted  J
           27   39     9       pad  I
           47   74     9       sig  I
           66   70    10         i  I
    MethodParameters:
      Name  Flags
      sci   

  private static java.math.BigInteger bigTenToThe(int);
    descriptor: (I)Ljava/math/BigInteger;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=2, locals=2, args_size=1
        start local 0 // int n
         0: .line 3563
            iload 0 /* n */
            ifge 2
         1: .line 3564
            getstatic java.math.BigInteger.ZERO:Ljava/math/BigInteger;
            areturn
         2: .line 3566
      StackMap locals:
      StackMap stack:
            iload 0 /* n */
            getstatic java.math.BigDecimal.BIG_TEN_POWERS_TABLE_MAX:I
            if_icmpge 7
         3: .line 3567
            getstatic java.math.BigDecimal.BIG_TEN_POWERS_TABLE:[Ljava/math/BigInteger;
            astore 1 /* pows */
        start local 1 // java.math.BigInteger[] pows
         4: .line 3568
            iload 0 /* n */
            aload 1 /* pows */
            arraylength
            if_icmpge 6
         5: .line 3569
            aload 1 /* pows */
            iload 0 /* n */
            aaload
            areturn
         6: .line 3571
      StackMap locals: java.math.BigInteger[]
      StackMap stack:
            iload 0 /* n */
            invokestatic java.math.BigDecimal.expandBigIntegerTenPowers:(I)Ljava/math/BigInteger;
            areturn
        end local 1 // java.math.BigInteger[] pows
         7: .line 3574
      StackMap locals:
      StackMap stack:
            getstatic java.math.BigInteger.TEN:Ljava/math/BigInteger;
            iload 0 /* n */
            invokevirtual java.math.BigInteger.pow:(I)Ljava/math/BigInteger;
            areturn
        end local 0 // int n
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    8     0     n  I
            4    7     1  pows  [Ljava/math/BigInteger;
    MethodParameters:
      Name  Flags
      n     

  private static java.math.BigInteger expandBigIntegerTenPowers(int);
    descriptor: (I)Ljava/math/BigInteger;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=5, locals=6, args_size=1
        start local 0 // int n
         0: .line 3586
            ldc Ljava/math/BigDecimal;
            dup
            astore 1
            monitorenter
         1: .line 3587
            getstatic java.math.BigDecimal.BIG_TEN_POWERS_TABLE:[Ljava/math/BigInteger;
            astore 2 /* pows */
        start local 2 // java.math.BigInteger[] pows
         2: .line 3588
            aload 2 /* pows */
            arraylength
            istore 3 /* curLen */
        start local 3 // int curLen
         3: .line 3591
            iload 3 /* curLen */
            iload 0 /* n */
            if_icmpgt 15
         4: .line 3592
            iload 3 /* curLen */
            iconst_1
            ishl
            istore 4 /* newLen */
        start local 4 // int newLen
         5: .line 3593
            goto 7
         6: .line 3594
      StackMap locals: int java.lang.Class java.math.BigInteger[] int int
      StackMap stack:
            iload 4 /* newLen */
            iconst_1
            ishl
            istore 4 /* newLen */
         7: .line 3593
      StackMap locals:
      StackMap stack:
            iload 4 /* newLen */
            iload 0 /* n */
            if_icmple 6
         8: .line 3595
            aload 2 /* pows */
            iload 4 /* newLen */
            invokestatic java.util.Arrays.copyOf:([Ljava/lang/Object;I)[Ljava/lang/Object;
            checkcast java.math.BigInteger[]
            astore 2 /* pows */
         9: .line 3596
            iload 3 /* curLen */
            istore 5 /* i */
        start local 5 // int i
        10: goto 13
        11: .line 3597
      StackMap locals: int
      StackMap stack:
            aload 2 /* pows */
            iload 5 /* i */
            aload 2 /* pows */
            iload 5 /* i */
            iconst_1
            isub
            aaload
            getstatic java.math.BigInteger.TEN:Ljava/math/BigInteger;
            invokevirtual java.math.BigInteger.multiply:(Ljava/math/BigInteger;)Ljava/math/BigInteger;
            aastore
        12: .line 3596
            iinc 5 /* i */ 1
      StackMap locals:
      StackMap stack:
        13: iload 5 /* i */
            iload 4 /* newLen */
            if_icmplt 11
        end local 5 // int i
        14: .line 3602
            aload 2 /* pows */
            putstatic java.math.BigDecimal.BIG_TEN_POWERS_TABLE:[Ljava/math/BigInteger;
        end local 4 // int newLen
        15: .line 3604
      StackMap locals:
      StackMap stack:
            aload 2 /* pows */
            iload 0 /* n */
            aaload
            aload 1
            monitorexit
        16: areturn
        end local 3 // int curLen
        end local 2 // java.math.BigInteger[] pows
        17: .line 3586
      StackMap locals: int java.lang.Class
      StackMap stack: java.lang.Throwable
            aload 1
            monitorexit
        18: athrow
        end local 0 // int n
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0   19     0       n  I
            2   17     2    pows  [Ljava/math/BigInteger;
            3   17     3  curLen  I
            5   15     4  newLen  I
           10   14     5       i  I
      Exception table:
        from    to  target  type
           1    16      17  any
          17    18      17  any
    MethodParameters:
      Name  Flags
      n     

  private static long longMultiplyPowerTen(long, int);
    descriptor: (JI)J
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=4, locals=7, args_size=2
        start local 0 // long val
        start local 2 // int n
         0: .line 3684
            lload 0 /* val */
            lconst_0
            lcmp
            ifeq 1
            iload 2 /* n */
            ifgt 2
         1: .line 3685
      StackMap locals:
      StackMap stack:
            lload 0 /* val */
            lreturn
         2: .line 3686
      StackMap locals:
      StackMap stack:
            getstatic java.math.BigDecimal.LONG_TEN_POWERS_TABLE:[J
            astore 3 /* tab */
        start local 3 // long[] tab
         3: .line 3687
            getstatic java.math.BigDecimal.THRESHOLDS_TABLE:[J
            astore 4 /* bounds */
        start local 4 // long[] bounds
         4: .line 3688
            iload 2 /* n */
            aload 3 /* tab */
            arraylength
            if_icmpge 10
            iload 2 /* n */
            aload 4 /* bounds */
            arraylength
            if_icmpge 10
         5: .line 3689
            aload 3 /* tab */
            iload 2 /* n */
            laload
            lstore 5 /* tenpower */
        start local 5 // long tenpower
         6: .line 3690
            lload 0 /* val */
            lconst_1
            lcmp
            ifne 8
         7: .line 3691
            lload 5 /* tenpower */
            lreturn
         8: .line 3692
      StackMap locals: long[] long[] long
      StackMap stack:
            lload 0 /* val */
            invokestatic java.lang.Math.abs:(J)J
            aload 4 /* bounds */
            iload 2 /* n */
            laload
            lcmp
            ifgt 10
         9: .line 3693
            lload 0 /* val */
            lload 5 /* tenpower */
            lmul
            lreturn
        end local 5 // long tenpower
        10: .line 3695
      StackMap locals:
      StackMap stack:
            ldc -9223372036854775808
            lreturn
        end local 4 // long[] bounds
        end local 3 // long[] tab
        end local 2 // int n
        end local 0 // long val
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0   11     0       val  J
            0   11     2         n  I
            3   11     3       tab  [J
            4   11     4    bounds  [J
            6   10     5  tenpower  J
    MethodParameters:
      Name  Flags
      val   
      n     

  private java.math.BigInteger bigMultiplyPowerTen(int);
    descriptor: (I)Ljava/math/BigInteger;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=4, locals=2, args_size=2
        start local 0 // java.math.BigDecimal this
        start local 1 // int n
         0: .line 3703
            iload 1 /* n */
            ifgt 2
         1: .line 3704
            aload 0 /* this */
            invokevirtual java.math.BigDecimal.inflated:()Ljava/math/BigInteger;
            areturn
         2: .line 3706
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield java.math.BigDecimal.intCompact:J
            ldc -9223372036854775808
            lcmp
            ifeq 4
         3: .line 3707
            iload 1 /* n */
            invokestatic java.math.BigDecimal.bigTenToThe:(I)Ljava/math/BigInteger;
            aload 0 /* this */
            getfield java.math.BigDecimal.intCompact:J
            invokevirtual java.math.BigInteger.multiply:(J)Ljava/math/BigInteger;
            areturn
         4: .line 3709
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield java.math.BigDecimal.intVal:Ljava/math/BigInteger;
            iload 1 /* n */
            invokestatic java.math.BigDecimal.bigTenToThe:(I)Ljava/math/BigInteger;
            invokevirtual java.math.BigInteger.multiply:(Ljava/math/BigInteger;)Ljava/math/BigInteger;
            areturn
        end local 1 // int n
        end local 0 // java.math.BigDecimal this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    5     0  this  Ljava/math/BigDecimal;
            0    5     1     n  I
    MethodParameters:
      Name  Flags
      n     

  private java.math.BigInteger inflated();
    descriptor: ()Ljava/math/BigInteger;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // java.math.BigDecimal this
         0: .line 3717
            aload 0 /* this */
            getfield java.math.BigDecimal.intVal:Ljava/math/BigInteger;
            ifnonnull 2
         1: .line 3718
            aload 0 /* this */
            getfield java.math.BigDecimal.intCompact:J
            invokestatic java.math.BigInteger.valueOf:(J)Ljava/math/BigInteger;
            areturn
         2: .line 3720
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield java.math.BigDecimal.intVal:Ljava/math/BigInteger;
            areturn
        end local 0 // java.math.BigDecimal this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    3     0  this  Ljava/math/BigDecimal;

  private static void matchScale(java.math.BigDecimal[]);
    descriptor: ([Ljava/math/BigDecimal;)V
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=5, locals=1, args_size=1
        start local 0 // java.math.BigDecimal[] val
         0: .line 3737
            aload 0 /* val */
            iconst_0
            aaload
            getfield java.math.BigDecimal.scale:I
            aload 0 /* val */
            iconst_1
            aaload
            getfield java.math.BigDecimal.scale:I
            if_icmpne 2
         1: .line 3738
            return
         2: .line 3739
      StackMap locals:
      StackMap stack:
            aload 0 /* val */
            iconst_0
            aaload
            getfield java.math.BigDecimal.scale:I
            aload 0 /* val */
            iconst_1
            aaload
            getfield java.math.BigDecimal.scale:I
            if_icmpge 5
         3: .line 3740
            aload 0 /* val */
            iconst_0
            aload 0 /* val */
            iconst_0
            aaload
            aload 0 /* val */
            iconst_1
            aaload
            getfield java.math.BigDecimal.scale:I
            bipush 7
            invokevirtual java.math.BigDecimal.setScale:(II)Ljava/math/BigDecimal;
            aastore
         4: .line 3741
            goto 7
      StackMap locals:
      StackMap stack:
         5: aload 0 /* val */
            iconst_1
            aaload
            getfield java.math.BigDecimal.scale:I
            aload 0 /* val */
            iconst_0
            aaload
            getfield java.math.BigDecimal.scale:I
            if_icmpge 7
         6: .line 3742
            aload 0 /* val */
            iconst_1
            aload 0 /* val */
            iconst_1
            aaload
            aload 0 /* val */
            iconst_0
            aaload
            getfield java.math.BigDecimal.scale:I
            bipush 7
            invokevirtual java.math.BigDecimal.setScale:(II)Ljava/math/BigDecimal;
            aastore
         7: .line 3744
      StackMap locals:
      StackMap stack:
            return
        end local 0 // java.math.BigDecimal[] val
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    8     0   val  [Ljava/math/BigDecimal;
    MethodParameters:
      Name  Flags
      val   

  private void readObject(java.io.ObjectInputStream);
    descriptor: (Ljava/io/ObjectInputStream;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=3, locals=3, args_size=2
        start local 0 // java.math.BigDecimal this
        start local 1 // java.io.ObjectInputStream s
         0: .line 3779
            aload 1 /* s */
            invokevirtual java.io.ObjectInputStream.defaultReadObject:()V
         1: .line 3781
            aload 0 /* this */
            getfield java.math.BigDecimal.intVal:Ljava/math/BigInteger;
            ifnonnull 4
         2: .line 3782
            ldc "BigDecimal: null intVal in stream"
            astore 2 /* message */
        start local 2 // java.lang.String message
         3: .line 3783
            new java.io.StreamCorruptedException
            dup
            aload 2 /* message */
            invokespecial java.io.StreamCorruptedException.<init>:(Ljava/lang/String;)V
            athrow
        end local 2 // java.lang.String message
         4: .line 3786
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 0 /* this */
            getfield java.math.BigDecimal.intVal:Ljava/math/BigInteger;
            invokestatic java.math.BigDecimal.compactValFor:(Ljava/math/BigInteger;)J
            invokestatic java.math.BigDecimal$UnsafeHolder.setIntCompactVolatile:(Ljava/math/BigDecimal;J)V
         5: .line 3787
            return
        end local 1 // java.io.ObjectInputStream s
        end local 0 // java.math.BigDecimal this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    6     0     this  Ljava/math/BigDecimal;
            0    6     1        s  Ljava/io/ObjectInputStream;
            3    4     2  message  Ljava/lang/String;
    Exceptions:
      throws java.io.IOException, java.lang.ClassNotFoundException
    MethodParameters:
      Name  Flags
      s     

  private void writeObject(java.io.ObjectOutputStream);
    descriptor: (Ljava/io/ObjectOutputStream;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=3, locals=2, args_size=2
        start local 0 // java.math.BigDecimal this
        start local 1 // java.io.ObjectOutputStream s
         0: .line 3797
            aload 0 /* this */
            getfield java.math.BigDecimal.intVal:Ljava/math/BigInteger;
            ifnonnull 2
         1: .line 3798
            aload 0 /* this */
            aload 0 /* this */
            getfield java.math.BigDecimal.intCompact:J
            invokestatic java.math.BigInteger.valueOf:(J)Ljava/math/BigInteger;
            invokestatic java.math.BigDecimal$UnsafeHolder.setIntValVolatile:(Ljava/math/BigDecimal;Ljava/math/BigInteger;)V
         2: .line 3800
      StackMap locals:
      StackMap stack:
            aload 1 /* s */
            invokevirtual java.io.ObjectOutputStream.defaultWriteObject:()V
         3: .line 3801
            return
        end local 1 // java.io.ObjectOutputStream s
        end local 0 // java.math.BigDecimal this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    4     0  this  Ljava/math/BigDecimal;
            0    4     1     s  Ljava/io/ObjectOutputStream;
    Exceptions:
      throws java.io.IOException
    MethodParameters:
      Name  Flags
      s     

  static int longDigitLength(long);
    descriptor: (J)I
    flags: (0x0008) ACC_STATIC
    Code:
      stack=4, locals=4, args_size=1
        start local 0 // long x
         0: .line 3824
            getstatic java.math.BigDecimal.$assertionsDisabled:Z
            ifne 1
            lload 0 /* x */
            ldc -9223372036854775808
            lcmp
            ifne 1
            new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
         1: .line 3825
      StackMap locals:
      StackMap stack:
            lload 0 /* x */
            lconst_0
            lcmp
            ifge 3
         2: .line 3826
            lload 0 /* x */
            lneg
            lstore 0 /* x */
         3: .line 3827
      StackMap locals:
      StackMap stack:
            lload 0 /* x */
            ldc 10
            lcmp
            ifge 5
         4: .line 3828
            iconst_1
            ireturn
         5: .line 3829
      StackMap locals:
      StackMap stack:
            bipush 64
            lload 0 /* x */
            invokestatic java.lang.Long.numberOfLeadingZeros:(J)I
            isub
            iconst_1
            iadd
            sipush 1233
            imul
            bipush 12
            iushr
            istore 2 /* r */
        start local 2 // int r
         6: .line 3830
            getstatic java.math.BigDecimal.LONG_TEN_POWERS_TABLE:[J
            astore 3 /* tab */
        start local 3 // long[] tab
         7: .line 3832
            iload 2 /* r */
            aload 3 /* tab */
            arraylength
            if_icmpge 8
            lload 0 /* x */
            aload 3 /* tab */
            iload 2 /* r */
            laload
            lcmp
            ifge 9
      StackMap locals: int long[]
      StackMap stack:
         8: iload 2 /* r */
            goto 10
      StackMap locals:
      StackMap stack:
         9: iload 2 /* r */
            iconst_1
            iadd
      StackMap locals:
      StackMap stack: int
        10: ireturn
        end local 3 // long[] tab
        end local 2 // int r
        end local 0 // long x
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0   11     0     x  J
            6   11     2     r  I
            7   11     3   tab  [J
    MethodParameters:
      Name  Flags
      x     

  private static int bigDigitLength(java.math.BigInteger);
    descriptor: (Ljava/math/BigInteger;)I
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=4, locals=2, args_size=1
        start local 0 // java.math.BigInteger b
         0: .line 3848
            aload 0 /* b */
            getfield java.math.BigInteger.signum:I
            ifne 2
         1: .line 3849
            iconst_1
            ireturn
         2: .line 3850
      StackMap locals:
      StackMap stack:
            aload 0 /* b */
            invokevirtual java.math.BigInteger.bitLength:()I
            i2l
            lconst_1
            ladd
            ldc 646456993
            lmul
            bipush 31
            lushr
            l2i
            istore 1 /* r */
        start local 1 // int r
         3: .line 3851
            aload 0 /* b */
            iload 1 /* r */
            invokestatic java.math.BigDecimal.bigTenToThe:(I)Ljava/math/BigInteger;
            invokevirtual java.math.BigInteger.compareMagnitude:(Ljava/math/BigInteger;)I
            ifge 4
            iload 1 /* r */
            goto 5
      StackMap locals: int
      StackMap stack:
         4: iload 1 /* r */
            iconst_1
            iadd
      StackMap locals:
      StackMap stack: int
         5: ireturn
        end local 1 // int r
        end local 0 // java.math.BigInteger b
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    6     0     b  Ljava/math/BigInteger;
            3    6     1     r  I
    MethodParameters:
      Name  Flags
      b     

  private int checkScale(long);
    descriptor: (J)I
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=4, locals=5, args_size=2
        start local 0 // java.math.BigDecimal this
        start local 1 // long val
         0: .line 3866
            lload 1 /* val */
            l2i
            istore 3 /* asInt */
        start local 3 // int asInt
         1: .line 3867
            iload 3 /* asInt */
            i2l
            lload 1 /* val */
            lcmp
            ifeq 11
         2: .line 3868
            lload 1 /* val */
            ldc 2147483647
            lcmp
            ifle 3
            ldc 2147483647
            goto 4
      StackMap locals: int
      StackMap stack:
         3: ldc -2147483648
      StackMap locals:
      StackMap stack: int
         4: istore 3 /* asInt */
         5: .line 3870
            aload 0 /* this */
            getfield java.math.BigDecimal.intCompact:J
            lconst_0
            lcmp
            ifeq 11
         6: .line 3871
            aload 0 /* this */
            getfield java.math.BigDecimal.intVal:Ljava/math/BigInteger;
            dup
            astore 4 /* b */
        start local 4 // java.math.BigInteger b
         7: ifnull 8
            aload 4 /* b */
            invokevirtual java.math.BigInteger.signum:()I
            ifeq 11
         8: .line 3872
      StackMap locals: java.math.BigInteger
      StackMap stack:
            new java.lang.ArithmeticException
            dup
            iload 3 /* asInt */
            ifle 9
            ldc "Underflow"
            goto 10
      StackMap locals: java.math.BigDecimal long int java.math.BigInteger
      StackMap stack: new 8 new 8
         9: ldc "Overflow"
      StackMap locals: java.math.BigDecimal long int java.math.BigInteger
      StackMap stack: new 8 new 8 java.lang.String
        10: invokespecial java.lang.ArithmeticException.<init>:(Ljava/lang/String;)V
            athrow
        end local 4 // java.math.BigInteger b
        11: .line 3874
      StackMap locals:
      StackMap stack:
            iload 3 /* asInt */
            ireturn
        end local 3 // int asInt
        end local 1 // long val
        end local 0 // java.math.BigDecimal this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0   12     0   this  Ljava/math/BigDecimal;
            0   12     1    val  J
            1   12     3  asInt  I
            7   11     4      b  Ljava/math/BigInteger;
    MethodParameters:
      Name  Flags
      val   

  private static long compactValFor(java.math.BigInteger);
    descriptor: (Ljava/math/BigInteger;)J
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=5, locals=6, args_size=1
        start local 0 // java.math.BigInteger b
         0: .line 3883
            aload 0 /* b */
            getfield java.math.BigInteger.mag:[I
            astore 1 /* m */
        start local 1 // int[] m
         1: .line 3884
            aload 1 /* m */
            arraylength
            istore 2 /* len */
        start local 2 // int len
         2: .line 3885
            iload 2 /* len */
            ifne 4
         3: .line 3886
            lconst_0
            lreturn
         4: .line 3887
      StackMap locals: int[] int
      StackMap stack:
            aload 1 /* m */
            iconst_0
            iaload
            istore 3 /* d */
        start local 3 // int d
         5: .line 3888
            iload 2 /* len */
            iconst_2
            if_icmpgt 6
            iload 2 /* len */
            iconst_2
            if_icmpne 7
            iload 3 /* d */
            ifge 7
         6: .line 3889
      StackMap locals: int
      StackMap stack:
            ldc -9223372036854775808
            lreturn
         7: .line 3891
      StackMap locals:
      StackMap stack:
            iload 2 /* len */
            iconst_2
            if_icmpne 9
         8: .line 3892
            aload 1 /* m */
            iconst_1
            iaload
            i2l
            ldc 4294967295
            land
            iload 3 /* d */
            i2l
            bipush 32
            lshl
            ladd
            goto 10
         9: .line 3893
      StackMap locals:
      StackMap stack:
            iload 3 /* d */
            i2l
            ldc 4294967295
            land
        10: .line 3891
      StackMap locals:
      StackMap stack: long
            lstore 4 /* u */
        start local 4 // long u
        11: .line 3894
            aload 0 /* b */
            getfield java.math.BigInteger.signum:I
            ifge 12
            lload 4 /* u */
            lneg
            goto 13
      StackMap locals: long
      StackMap stack:
        12: lload 4 /* u */
      StackMap locals:
      StackMap stack: long
        13: lreturn
        end local 4 // long u
        end local 3 // int d
        end local 2 // int len
        end local 1 // int[] m
        end local 0 // java.math.BigInteger b
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0   14     0     b  Ljava/math/BigInteger;
            1   14     1     m  [I
            2   14     2   len  I
            5   14     3     d  I
           11   14     4     u  J
    MethodParameters:
      Name  Flags
      b     

  private static int longCompareMagnitude(long, long);
    descriptor: (JJ)I
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=4, locals=4, args_size=2
        start local 0 // long x
        start local 2 // long y
         0: .line 3898
            lload 0 /* x */
            lconst_0
            lcmp
            ifge 2
         1: .line 3899
            lload 0 /* x */
            lneg
            lstore 0 /* x */
         2: .line 3900
      StackMap locals:
      StackMap stack:
            lload 2 /* y */
            lconst_0
            lcmp
            ifge 4
         3: .line 3901
            lload 2 /* y */
            lneg
            lstore 2 /* y */
         4: .line 3902
      StackMap locals:
      StackMap stack:
            lload 0 /* x */
            lload 2 /* y */
            lcmp
            ifge 5
            iconst_m1
            goto 7
      StackMap locals:
      StackMap stack:
         5: lload 0 /* x */
            lload 2 /* y */
            lcmp
            ifne 6
            iconst_0
            goto 7
      StackMap locals:
      StackMap stack:
         6: iconst_1
      StackMap locals:
      StackMap stack: int
         7: ireturn
        end local 2 // long y
        end local 0 // long x
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    8     0     x  J
            0    8     2     y  J
    MethodParameters:
      Name  Flags
      x     
      y     

  private static int saturateLong(long);
    descriptor: (J)I
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=4, locals=3, args_size=1
        start local 0 // long s
         0: .line 3906
            lload 0 /* s */
            l2i
            istore 2 /* i */
        start local 2 // int i
         1: .line 3907
            lload 0 /* s */
            iload 2 /* i */
            i2l
            lcmp
            ifne 2
            iload 2 /* i */
            goto 4
      StackMap locals: int
      StackMap stack:
         2: lload 0 /* s */
            lconst_0
            lcmp
            ifge 3
            ldc -2147483648
            goto 4
      StackMap locals:
      StackMap stack:
         3: ldc 2147483647
      StackMap locals:
      StackMap stack: int
         4: ireturn
        end local 2 // int i
        end local 0 // long s
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    5     0     s  J
            1    5     2     i  I
    MethodParameters:
      Name  Flags
      s     

  private static void print(java.lang.String, java.math.BigDecimal);
    descriptor: (Ljava/lang/String;Ljava/math/BigDecimal;)V
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=7, locals=2, args_size=2
        start local 0 // java.lang.String name
        start local 1 // java.math.BigDecimal bd
         0: .line 3914
            getstatic java.lang.System.err:Ljava/io/PrintStream;
            ldc "%s:\tintCompact %d\tintVal %d\tscale %d\tprecision %d%n"
            iconst_5
            anewarray java.lang.Object
            dup
            iconst_0
         1: .line 3915
            aload 0 /* name */
            aastore
            dup
            iconst_1
         2: .line 3916
            aload 1 /* bd */
            getfield java.math.BigDecimal.intCompact:J
            invokestatic java.lang.Long.valueOf:(J)Ljava/lang/Long;
            aastore
            dup
            iconst_2
         3: .line 3917
            aload 1 /* bd */
            getfield java.math.BigDecimal.intVal:Ljava/math/BigInteger;
            aastore
            dup
            iconst_3
         4: .line 3918
            aload 1 /* bd */
            getfield java.math.BigDecimal.scale:I
            invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
            aastore
            dup
            iconst_4
         5: .line 3919
            aload 1 /* bd */
            getfield java.math.BigDecimal.precision:I
            invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
            aastore
         6: .line 3914
            invokevirtual java.io.PrintStream.format:(Ljava/lang/String;[Ljava/lang/Object;)Ljava/io/PrintStream;
            pop
         7: .line 3920
            return
        end local 1 // java.math.BigDecimal bd
        end local 0 // java.lang.String name
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    8     0  name  Ljava/lang/String;
            0    8     1    bd  Ljava/math/BigDecimal;
    MethodParameters:
      Name  Flags
      name  
      bd    

  private java.math.BigDecimal audit();
    descriptor: ()Ljava/math/BigDecimal;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=5, locals=3, args_size=1
        start local 0 // java.math.BigDecimal this
         0: .line 3942
            aload 0 /* this */
            getfield java.math.BigDecimal.intCompact:J
            ldc -9223372036854775808
            lcmp
            ifne 7
         1: .line 3943
            aload 0 /* this */
            getfield java.math.BigDecimal.intVal:Ljava/math/BigInteger;
            ifnonnull 4
         2: .line 3944
            ldc "audit"
            aload 0 /* this */
            invokestatic java.math.BigDecimal.print:(Ljava/lang/String;Ljava/math/BigDecimal;)V
         3: .line 3945
            new java.lang.AssertionError
            dup
            ldc "null intVal"
            invokespecial java.lang.AssertionError.<init>:(Ljava/lang/Object;)V
            athrow
         4: .line 3948
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield java.math.BigDecimal.precision:I
            ifle 17
            aload 0 /* this */
            getfield java.math.BigDecimal.precision:I
            aload 0 /* this */
            getfield java.math.BigDecimal.intVal:Ljava/math/BigInteger;
            invokestatic java.math.BigDecimal.bigDigitLength:(Ljava/math/BigInteger;)I
            if_icmpeq 17
         5: .line 3949
            ldc "audit"
            aload 0 /* this */
            invokestatic java.math.BigDecimal.print:(Ljava/lang/String;Ljava/math/BigDecimal;)V
         6: .line 3950
            new java.lang.AssertionError
            dup
            ldc "precision mismatch"
            invokespecial java.lang.AssertionError.<init>:(Ljava/lang/Object;)V
            athrow
         7: .line 3953
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield java.math.BigDecimal.intVal:Ljava/math/BigInteger;
            ifnull 14
         8: .line 3954
            aload 0 /* this */
            getfield java.math.BigDecimal.intVal:Ljava/math/BigInteger;
            invokevirtual java.math.BigInteger.longValue:()J
            lstore 1 /* val */
        start local 1 // long val
         9: .line 3955
            lload 1 /* val */
            aload 0 /* this */
            getfield java.math.BigDecimal.intCompact:J
            lcmp
            ifeq 14
        10: .line 3956
            ldc "audit"
            aload 0 /* this */
            invokestatic java.math.BigDecimal.print:(Ljava/lang/String;Ljava/math/BigDecimal;)V
        11: .line 3957
            new java.lang.AssertionError
            dup
            new java.lang.StringBuilder
            dup
            ldc "Inconsistent state, intCompact="
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
        12: .line 3958
            aload 0 /* this */
            getfield java.math.BigDecimal.intCompact:J
            invokevirtual java.lang.StringBuilder.append:(J)Ljava/lang/StringBuilder;
            ldc "\t intVal="
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            lload 1 /* val */
            invokevirtual java.lang.StringBuilder.append:(J)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
        13: .line 3957
            invokespecial java.lang.AssertionError.<init>:(Ljava/lang/Object;)V
            athrow
        end local 1 // long val
        14: .line 3962
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield java.math.BigDecimal.precision:I
            ifle 17
            aload 0 /* this */
            getfield java.math.BigDecimal.precision:I
            aload 0 /* this */
            getfield java.math.BigDecimal.intCompact:J
            invokestatic java.math.BigDecimal.longDigitLength:(J)I
            if_icmpeq 17
        15: .line 3963
            ldc "audit"
            aload 0 /* this */
            invokestatic java.math.BigDecimal.print:(Ljava/lang/String;Ljava/math/BigDecimal;)V
        16: .line 3964
            new java.lang.AssertionError
            dup
            ldc "precision mismatch"
            invokespecial java.lang.AssertionError.<init>:(Ljava/lang/Object;)V
            athrow
        17: .line 3967
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            areturn
        end local 0 // java.math.BigDecimal this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0   18     0  this  Ljava/math/BigDecimal;
            9   14     1   val  J

  private static int checkScaleNonZero(long);
    descriptor: (J)I
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=4, locals=3, args_size=1
        start local 0 // long val
         0: .line 3972
            lload 0 /* val */
            l2i
            istore 2 /* asInt */
        start local 2 // int asInt
         1: .line 3973
            iload 2 /* asInt */
            i2l
            lload 0 /* val */
            lcmp
            ifeq 5
         2: .line 3974
            new java.lang.ArithmeticException
            dup
            iload 2 /* asInt */
            ifle 3
            ldc "Underflow"
            goto 4
      StackMap locals: long int
      StackMap stack: new 2 new 2
         3: ldc "Overflow"
      StackMap locals: long int
      StackMap stack: new 2 new 2 java.lang.String
         4: invokespecial java.lang.ArithmeticException.<init>:(Ljava/lang/String;)V
            athrow
         5: .line 3976
      StackMap locals:
      StackMap stack:
            iload 2 /* asInt */
            ireturn
        end local 2 // int asInt
        end local 0 // long val
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    6     0    val  J
            1    6     2  asInt  I
    MethodParameters:
      Name  Flags
      val   

  private static int checkScale(long, long);
    descriptor: (JJ)I
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=4, locals=5, args_size=2
        start local 0 // long intCompact
        start local 2 // long val
         0: .line 3980
            lload 2 /* val */
            l2i
            istore 4 /* asInt */
        start local 4 // int asInt
         1: .line 3981
            iload 4 /* asInt */
            i2l
            lload 2 /* val */
            lcmp
            ifeq 9
         2: .line 3982
            lload 2 /* val */
            ldc 2147483647
            lcmp
            ifle 3
            ldc 2147483647
            goto 4
      StackMap locals: int
      StackMap stack:
         3: ldc -2147483648
      StackMap locals:
      StackMap stack: int
         4: istore 4 /* asInt */
         5: .line 3983
            lload 0 /* intCompact */
            lconst_0
            lcmp
            ifeq 9
         6: .line 3984
            new java.lang.ArithmeticException
            dup
            iload 4 /* asInt */
            ifle 7
            ldc "Underflow"
            goto 8
      StackMap locals: long long int
      StackMap stack: new 6 new 6
         7: ldc "Overflow"
      StackMap locals: long long int
      StackMap stack: new 6 new 6 java.lang.String
         8: invokespecial java.lang.ArithmeticException.<init>:(Ljava/lang/String;)V
            athrow
         9: .line 3986
      StackMap locals:
      StackMap stack:
            iload 4 /* asInt */
            ireturn
        end local 4 // int asInt
        end local 2 // long val
        end local 0 // long intCompact
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0   10     0  intCompact  J
            0   10     2         val  J
            1   10     4       asInt  I
    MethodParameters:
            Name  Flags
      intCompact  
      val         

  private static int checkScale(java.math.BigInteger, long);
    descriptor: (Ljava/math/BigInteger;J)I
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=4, locals=4, args_size=2
        start local 0 // java.math.BigInteger intVal
        start local 1 // long val
         0: .line 3990
            lload 1 /* val */
            l2i
            istore 3 /* asInt */
        start local 3 // int asInt
         1: .line 3991
            iload 3 /* asInt */
            i2l
            lload 1 /* val */
            lcmp
            ifeq 9
         2: .line 3992
            lload 1 /* val */
            ldc 2147483647
            lcmp
            ifle 3
            ldc 2147483647
            goto 4
      StackMap locals: int
      StackMap stack:
         3: ldc -2147483648
      StackMap locals:
      StackMap stack: int
         4: istore 3 /* asInt */
         5: .line 3993
            aload 0 /* intVal */
            invokevirtual java.math.BigInteger.signum:()I
            ifeq 9
         6: .line 3994
            new java.lang.ArithmeticException
            dup
            iload 3 /* asInt */
            ifle 7
            ldc "Underflow"
            goto 8
      StackMap locals: java.math.BigInteger long int
      StackMap stack: new 6 new 6
         7: ldc "Overflow"
      StackMap locals: java.math.BigInteger long int
      StackMap stack: new 6 new 6 java.lang.String
         8: invokespecial java.lang.ArithmeticException.<init>:(Ljava/lang/String;)V
            athrow
         9: .line 3996
      StackMap locals:
      StackMap stack:
            iload 3 /* asInt */
            ireturn
        end local 3 // int asInt
        end local 1 // long val
        end local 0 // java.math.BigInteger intVal
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0   10     0  intVal  Ljava/math/BigInteger;
            0   10     1     val  J
            1   10     3   asInt  I
    MethodParameters:
        Name  Flags
      intVal  
      val     

  private static java.math.BigDecimal doRound(java.math.BigDecimal, java.math.MathContext);
    descriptor: (Ljava/math/BigDecimal;Ljava/math/MathContext;)Ljava/math/BigDecimal;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=7, locals=11, args_size=2
        start local 0 // java.math.BigDecimal val
        start local 1 // java.math.MathContext mc
         0: .line 4013
            aload 1 /* mc */
            getfield java.math.MathContext.precision:I
            istore 2 /* mcp */
        start local 2 // int mcp
         1: .line 4014
            iconst_0
            istore 3 /* wasDivided */
        start local 3 // boolean wasDivided
         2: .line 4015
            iload 2 /* mcp */
            ifle 34
         3: .line 4016
            aload 0 /* val */
            getfield java.math.BigDecimal.intVal:Ljava/math/BigInteger;
            astore 4 /* intVal */
        start local 4 // java.math.BigInteger intVal
         4: .line 4017
            aload 0 /* val */
            getfield java.math.BigDecimal.intCompact:J
            lstore 5 /* compactVal */
        start local 5 // long compactVal
         5: .line 4018
            aload 0 /* val */
            getfield java.math.BigDecimal.scale:I
            istore 7 /* scale */
        start local 7 // int scale
         6: .line 4019
            aload 0 /* val */
            invokevirtual java.math.BigDecimal.precision:()I
            istore 8 /* prec */
        start local 8 // int prec
         7: .line 4020
            aload 1 /* mc */
            getfield java.math.MathContext.roundingMode:Ljava/math/RoundingMode;
            getfield java.math.RoundingMode.oldMode:I
            istore 9 /* mode */
        start local 9 // int mode
         8: .line 4022
            lload 5 /* compactVal */
            ldc -9223372036854775808
            lcmp
            ifne 21
         9: .line 4023
            iload 8 /* prec */
            iload 2 /* mcp */
            isub
            istore 10 /* drop */
        start local 10 // int drop
        10: .line 4024
            goto 20
        11: .line 4025
      StackMap locals: java.math.BigDecimal java.math.MathContext int int java.math.BigInteger long int int int int
      StackMap stack:
            iload 7 /* scale */
            i2l
            iload 10 /* drop */
            i2l
            lsub
            invokestatic java.math.BigDecimal.checkScaleNonZero:(J)I
            istore 7 /* scale */
        12: .line 4026
            aload 4 /* intVal */
            iload 10 /* drop */
            iload 9 /* mode */
            invokestatic java.math.BigDecimal.divideAndRoundByTenPow:(Ljava/math/BigInteger;II)Ljava/math/BigInteger;
            astore 4 /* intVal */
        13: .line 4027
            iconst_1
            istore 3 /* wasDivided */
        14: .line 4028
            aload 4 /* intVal */
            invokestatic java.math.BigDecimal.compactValFor:(Ljava/math/BigInteger;)J
            lstore 5 /* compactVal */
        15: .line 4029
            lload 5 /* compactVal */
            ldc -9223372036854775808
            lcmp
            ifeq 18
        16: .line 4030
            lload 5 /* compactVal */
            invokestatic java.math.BigDecimal.longDigitLength:(J)I
            istore 8 /* prec */
        17: .line 4031
            goto 21
        18: .line 4033
      StackMap locals:
      StackMap stack:
            aload 4 /* intVal */
            invokestatic java.math.BigDecimal.bigDigitLength:(Ljava/math/BigInteger;)I
            istore 8 /* prec */
        19: .line 4034
            iload 8 /* prec */
            iload 2 /* mcp */
            isub
            istore 10 /* drop */
        20: .line 4024
      StackMap locals:
      StackMap stack:
            iload 10 /* drop */
            ifgt 11
        end local 10 // int drop
        21: .line 4037
      StackMap locals:
      StackMap stack:
            lload 5 /* compactVal */
            ldc -9223372036854775808
            lcmp
            ifeq 31
        22: .line 4038
            iload 8 /* prec */
            iload 2 /* mcp */
            isub
            istore 10 /* drop */
        start local 10 // int drop
        23: .line 4039
            goto 30
        24: .line 4040
      StackMap locals: int
      StackMap stack:
            iload 7 /* scale */
            i2l
            iload 10 /* drop */
            i2l
            lsub
            invokestatic java.math.BigDecimal.checkScaleNonZero:(J)I
            istore 7 /* scale */
        25: .line 4041
            lload 5 /* compactVal */
            getstatic java.math.BigDecimal.LONG_TEN_POWERS_TABLE:[J
            iload 10 /* drop */
            laload
            aload 1 /* mc */
            getfield java.math.MathContext.roundingMode:Ljava/math/RoundingMode;
            getfield java.math.RoundingMode.oldMode:I
            invokestatic java.math.BigDecimal.divideAndRound:(JJI)J
            lstore 5 /* compactVal */
        26: .line 4042
            iconst_1
            istore 3 /* wasDivided */
        27: .line 4043
            lload 5 /* compactVal */
            invokestatic java.math.BigDecimal.longDigitLength:(J)I
            istore 8 /* prec */
        28: .line 4044
            iload 8 /* prec */
            iload 2 /* mcp */
            isub
            istore 10 /* drop */
        29: .line 4045
            aconst_null
            astore 4 /* intVal */
        30: .line 4039
      StackMap locals:
      StackMap stack:
            iload 10 /* drop */
            ifgt 24
        end local 10 // int drop
        31: .line 4048
      StackMap locals:
      StackMap stack:
            iload 3 /* wasDivided */
            ifeq 32
            new java.math.BigDecimal
            dup
            aload 4 /* intVal */
            lload 5 /* compactVal */
            iload 7 /* scale */
            iload 8 /* prec */
            invokespecial java.math.BigDecimal.<init>:(Ljava/math/BigInteger;JII)V
            goto 33
      StackMap locals:
      StackMap stack:
        32: aload 0 /* val */
      StackMap locals:
      StackMap stack: java.math.BigDecimal
        33: areturn
        end local 9 // int mode
        end local 8 // int prec
        end local 7 // int scale
        end local 5 // long compactVal
        end local 4 // java.math.BigInteger intVal
        34: .line 4050
      StackMap locals: java.math.BigDecimal java.math.MathContext int int
      StackMap stack:
            aload 0 /* val */
            areturn
        end local 3 // boolean wasDivided
        end local 2 // int mcp
        end local 1 // java.math.MathContext mc
        end local 0 // java.math.BigDecimal val
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0   35     0         val  Ljava/math/BigDecimal;
            0   35     1          mc  Ljava/math/MathContext;
            1   35     2         mcp  I
            2   35     3  wasDivided  Z
            4   34     4      intVal  Ljava/math/BigInteger;
            5   34     5  compactVal  J
            6   34     7       scale  I
            7   34     8        prec  I
            8   34     9        mode  I
           10   21    10        drop  I
           23   31    10        drop  I
    MethodParameters:
      Name  Flags
      val   
      mc    

  private static java.math.BigDecimal doRound(long, int, java.math.MathContext);
    descriptor: (JILjava/math/MathContext;)Ljava/math/BigDecimal;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=5, locals=7, args_size=3
        start local 0 // long compactVal
        start local 2 // int scale
        start local 3 // java.math.MathContext mc
         0: .line 4058
            aload 3 /* mc */
            getfield java.math.MathContext.precision:I
            istore 4 /* mcp */
        start local 4 // int mcp
         1: .line 4059
            iload 4 /* mcp */
            ifle 11
            iload 4 /* mcp */
            bipush 19
            if_icmpge 11
         2: .line 4060
            lload 0 /* compactVal */
            invokestatic java.math.BigDecimal.longDigitLength:(J)I
            istore 5 /* prec */
        start local 5 // int prec
         3: .line 4061
            iload 5 /* prec */
            iload 4 /* mcp */
            isub
            istore 6 /* drop */
        start local 6 // int drop
         4: .line 4062
            goto 9
         5: .line 4063
      StackMap locals: int int int
      StackMap stack:
            iload 2 /* scale */
            i2l
            iload 6 /* drop */
            i2l
            lsub
            invokestatic java.math.BigDecimal.checkScaleNonZero:(J)I
            istore 2 /* scale */
         6: .line 4064
            lload 0 /* compactVal */
            getstatic java.math.BigDecimal.LONG_TEN_POWERS_TABLE:[J
            iload 6 /* drop */
            laload
            aload 3 /* mc */
            getfield java.math.MathContext.roundingMode:Ljava/math/RoundingMode;
            getfield java.math.RoundingMode.oldMode:I
            invokestatic java.math.BigDecimal.divideAndRound:(JJI)J
            lstore 0 /* compactVal */
         7: .line 4065
            lload 0 /* compactVal */
            invokestatic java.math.BigDecimal.longDigitLength:(J)I
            istore 5 /* prec */
         8: .line 4066
            iload 5 /* prec */
            iload 4 /* mcp */
            isub
            istore 6 /* drop */
         9: .line 4062
      StackMap locals:
      StackMap stack:
            iload 6 /* drop */
            ifgt 5
        10: .line 4068
            lload 0 /* compactVal */
            iload 2 /* scale */
            iload 5 /* prec */
            invokestatic java.math.BigDecimal.valueOf:(JII)Ljava/math/BigDecimal;
            areturn
        end local 6 // int drop
        end local 5 // int prec
        11: .line 4070
      StackMap locals:
      StackMap stack:
            lload 0 /* compactVal */
            iload 2 /* scale */
            invokestatic java.math.BigDecimal.valueOf:(JI)Ljava/math/BigDecimal;
            areturn
        end local 4 // int mcp
        end local 3 // java.math.MathContext mc
        end local 2 // int scale
        end local 0 // long compactVal
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0   12     0  compactVal  J
            0   12     2       scale  I
            0   12     3          mc  Ljava/math/MathContext;
            1   12     4         mcp  I
            3   11     5        prec  I
            4   11     6        drop  I
    MethodParameters:
            Name  Flags
      compactVal  
      scale       
      mc          

  private static java.math.BigDecimal doRound(java.math.BigInteger, int, java.math.MathContext);
    descriptor: (Ljava/math/BigInteger;ILjava/math/MathContext;)Ljava/math/BigDecimal;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=7, locals=9, args_size=3
        start local 0 // java.math.BigInteger intVal
        start local 1 // int scale
        start local 2 // java.math.MathContext mc
         0: .line 4078
            aload 2 /* mc */
            getfield java.math.MathContext.precision:I
            istore 3 /* mcp */
        start local 3 // int mcp
         1: .line 4079
            iconst_0
            istore 4 /* prec */
        start local 4 // int prec
         2: .line 4080
            iload 3 /* mcp */
            ifle 27
         3: .line 4081
            aload 0 /* intVal */
            invokestatic java.math.BigDecimal.compactValFor:(Ljava/math/BigInteger;)J
            lstore 5 /* compactVal */
        start local 5 // long compactVal
         4: .line 4082
            aload 2 /* mc */
            getfield java.math.MathContext.roundingMode:Ljava/math/RoundingMode;
            getfield java.math.RoundingMode.oldMode:I
            istore 7 /* mode */
        start local 7 // int mode
         5: .line 4084
            lload 5 /* compactVal */
            ldc -9223372036854775808
            lcmp
            ifne 17
         6: .line 4085
            aload 0 /* intVal */
            invokestatic java.math.BigDecimal.bigDigitLength:(Ljava/math/BigInteger;)I
            istore 4 /* prec */
         7: .line 4086
            iload 4 /* prec */
            iload 3 /* mcp */
            isub
            istore 8 /* drop */
        start local 8 // int drop
         8: .line 4087
            goto 16
         9: .line 4088
      StackMap locals: java.math.BigInteger int java.math.MathContext int int long int int
      StackMap stack:
            iload 1 /* scale */
            i2l
            iload 8 /* drop */
            i2l
            lsub
            invokestatic java.math.BigDecimal.checkScaleNonZero:(J)I
            istore 1 /* scale */
        10: .line 4089
            aload 0 /* intVal */
            iload 8 /* drop */
            iload 7 /* mode */
            invokestatic java.math.BigDecimal.divideAndRoundByTenPow:(Ljava/math/BigInteger;II)Ljava/math/BigInteger;
            astore 0 /* intVal */
        11: .line 4090
            aload 0 /* intVal */
            invokestatic java.math.BigDecimal.compactValFor:(Ljava/math/BigInteger;)J
            lstore 5 /* compactVal */
        12: .line 4091
            lload 5 /* compactVal */
            ldc -9223372036854775808
            lcmp
            ifeq 14
        13: .line 4092
            goto 17
        14: .line 4094
      StackMap locals:
      StackMap stack:
            aload 0 /* intVal */
            invokestatic java.math.BigDecimal.bigDigitLength:(Ljava/math/BigInteger;)I
            istore 4 /* prec */
        15: .line 4095
            iload 4 /* prec */
            iload 3 /* mcp */
            isub
            istore 8 /* drop */
        16: .line 4087
      StackMap locals:
      StackMap stack:
            iload 8 /* drop */
            ifgt 9
        end local 8 // int drop
        17: .line 4098
      StackMap locals:
      StackMap stack:
            lload 5 /* compactVal */
            ldc -9223372036854775808
            lcmp
            ifeq 27
        18: .line 4099
            lload 5 /* compactVal */
            invokestatic java.math.BigDecimal.longDigitLength:(J)I
            istore 4 /* prec */
        19: .line 4100
            iload 4 /* prec */
            iload 3 /* mcp */
            isub
            istore 8 /* drop */
        start local 8 // int drop
        20: .line 4101
            goto 25
        21: .line 4102
      StackMap locals: int
      StackMap stack:
            iload 1 /* scale */
            i2l
            iload 8 /* drop */
            i2l
            lsub
            invokestatic java.math.BigDecimal.checkScaleNonZero:(J)I
            istore 1 /* scale */
        22: .line 4103
            lload 5 /* compactVal */
            getstatic java.math.BigDecimal.LONG_TEN_POWERS_TABLE:[J
            iload 8 /* drop */
            laload
            aload 2 /* mc */
            getfield java.math.MathContext.roundingMode:Ljava/math/RoundingMode;
            getfield java.math.RoundingMode.oldMode:I
            invokestatic java.math.BigDecimal.divideAndRound:(JJI)J
            lstore 5 /* compactVal */
        23: .line 4104
            lload 5 /* compactVal */
            invokestatic java.math.BigDecimal.longDigitLength:(J)I
            istore 4 /* prec */
        24: .line 4105
            iload 4 /* prec */
            iload 3 /* mcp */
            isub
            istore 8 /* drop */
        25: .line 4101
      StackMap locals:
      StackMap stack:
            iload 8 /* drop */
            ifgt 21
        26: .line 4107
            lload 5 /* compactVal */
            iload 1 /* scale */
            iload 4 /* prec */
            invokestatic java.math.BigDecimal.valueOf:(JII)Ljava/math/BigDecimal;
            areturn
        end local 8 // int drop
        end local 7 // int mode
        end local 5 // long compactVal
        27: .line 4110
      StackMap locals:
      StackMap stack:
            new java.math.BigDecimal
            dup
            aload 0 /* intVal */
            ldc -9223372036854775808
            iload 1 /* scale */
            iload 4 /* prec */
            invokespecial java.math.BigDecimal.<init>:(Ljava/math/BigInteger;JII)V
            areturn
        end local 4 // int prec
        end local 3 // int mcp
        end local 2 // java.math.MathContext mc
        end local 1 // int scale
        end local 0 // java.math.BigInteger intVal
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0   28     0      intVal  Ljava/math/BigInteger;
            0   28     1       scale  I
            0   28     2          mc  Ljava/math/MathContext;
            1   28     3         mcp  I
            2   28     4        prec  I
            4   27     5  compactVal  J
            5   27     7        mode  I
            8   17     8        drop  I
           20   27     8        drop  I
    MethodParameters:
        Name  Flags
      intVal  
      scale   
      mc      

  private static java.math.BigInteger divideAndRoundByTenPow(java.math.BigInteger, int, int);
    descriptor: (Ljava/math/BigInteger;II)Ljava/math/BigInteger;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=4, locals=3, args_size=3
        start local 0 // java.math.BigInteger intVal
        start local 1 // int tenPow
        start local 2 // int roundingMode
         0: .line 4117
            iload 1 /* tenPow */
            getstatic java.math.BigDecimal.LONG_TEN_POWERS_TABLE:[J
            arraylength
            if_icmpge 2
         1: .line 4118
            aload 0 /* intVal */
            getstatic java.math.BigDecimal.LONG_TEN_POWERS_TABLE:[J
            iload 1 /* tenPow */
            laload
            iload 2 /* roundingMode */
            invokestatic java.math.BigDecimal.divideAndRound:(Ljava/math/BigInteger;JI)Ljava/math/BigInteger;
            astore 0 /* intVal */
            goto 3
         2: .line 4120
      StackMap locals:
      StackMap stack:
            aload 0 /* intVal */
            iload 1 /* tenPow */
            invokestatic java.math.BigDecimal.bigTenToThe:(I)Ljava/math/BigInteger;
            iload 2 /* roundingMode */
            invokestatic java.math.BigDecimal.divideAndRound:(Ljava/math/BigInteger;Ljava/math/BigInteger;I)Ljava/math/BigInteger;
            astore 0 /* intVal */
         3: .line 4121
      StackMap locals:
      StackMap stack:
            aload 0 /* intVal */
            areturn
        end local 2 // int roundingMode
        end local 1 // int tenPow
        end local 0 // java.math.BigInteger intVal
      LocalVariableTable:
        Start  End  Slot          Name  Signature
            0    4     0        intVal  Ljava/math/BigInteger;
            0    4     1        tenPow  I
            0    4     2  roundingMode  I
    MethodParameters:
              Name  Flags
      intVal        
      tenPow        
      roundingMode  

  private static java.math.BigDecimal divideAndRound(long, long, int, int, int);
    descriptor: (JJIII)Ljava/math/BigDecimal;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=8, locals=13, args_size=5
        start local 0 // long ldividend
        start local 2 // long ldivisor
        start local 4 // int scale
        start local 5 // int roundingMode
        start local 6 // int preferredScale
         0: .line 4137
            lload 0 /* ldividend */
            lload 2 /* ldivisor */
            ldiv
            lstore 8 /* q */
        start local 8 // long q
         1: .line 4138
            iload 5 /* roundingMode */
            iconst_1
            if_icmpne 3
            iload 4 /* scale */
            iload 6 /* preferredScale */
            if_icmpne 3
         2: .line 4139
            lload 8 /* q */
            iload 4 /* scale */
            invokestatic java.math.BigDecimal.valueOf:(JI)Ljava/math/BigDecimal;
            areturn
         3: .line 4140
      StackMap locals: long long int int int top long
      StackMap stack:
            lload 0 /* ldividend */
            lload 2 /* ldivisor */
            lrem
            lstore 10 /* r */
        start local 10 // long r
         4: .line 4141
            lload 0 /* ldividend */
            lconst_0
            lcmp
            ifge 5
            iconst_1
            goto 6
      StackMap locals: long
      StackMap stack:
         5: iconst_0
      StackMap locals:
      StackMap stack: int
         6: lload 2 /* ldivisor */
            lconst_0
            lcmp
            ifge 7
            iconst_1
            goto 8
      StackMap locals:
      StackMap stack: int
         7: iconst_0
      StackMap locals: long long int int int top long long
      StackMap stack: int int
         8: if_icmpne 9
            iconst_1
            goto 10
      StackMap locals:
      StackMap stack:
         9: iconst_m1
      StackMap locals:
      StackMap stack: int
        10: istore 7 /* qsign */
        start local 7 // int qsign
        11: .line 4142
            lload 10 /* r */
            lconst_0
            lcmp
            ifeq 16
        12: .line 4143
            lload 2 /* ldivisor */
            iload 5 /* roundingMode */
            iload 7 /* qsign */
            lload 8 /* q */
            lload 10 /* r */
            invokestatic java.math.BigDecimal.needIncrement:(JIIJJ)Z
            istore 12 /* increment */
        start local 12 // boolean increment
        13: .line 4144
            iload 12 /* increment */
            ifeq 14
            lload 8 /* q */
            iload 7 /* qsign */
            i2l
            ladd
            goto 15
      StackMap locals: long long int int int int long long int
      StackMap stack:
        14: lload 8 /* q */
      StackMap locals:
      StackMap stack: long
        15: iload 4 /* scale */
            invokestatic java.math.BigDecimal.valueOf:(JI)Ljava/math/BigDecimal;
            areturn
        end local 12 // boolean increment
        16: .line 4146
      StackMap locals:
      StackMap stack:
            iload 6 /* preferredScale */
            iload 4 /* scale */
            if_icmpeq 18
        17: .line 4147
            lload 8 /* q */
            iload 4 /* scale */
            iload 6 /* preferredScale */
            i2l
            invokestatic java.math.BigDecimal.createAndStripZerosToMatchScale:(JIJ)Ljava/math/BigDecimal;
            areturn
        18: .line 4149
      StackMap locals:
      StackMap stack:
            lload 8 /* q */
            iload 4 /* scale */
            invokestatic java.math.BigDecimal.valueOf:(JI)Ljava/math/BigDecimal;
            areturn
        end local 10 // long r
        end local 8 // long q
        end local 7 // int qsign
        end local 6 // int preferredScale
        end local 5 // int roundingMode
        end local 4 // int scale
        end local 2 // long ldivisor
        end local 0 // long ldividend
      LocalVariableTable:
        Start  End  Slot            Name  Signature
            0   19     0       ldividend  J
            0   19     2        ldivisor  J
            0   19     4           scale  I
            0   19     5    roundingMode  I
            0   19     6  preferredScale  I
           11   19     7           qsign  I
            1   19     8               q  J
            4   19    10               r  J
           13   16    12       increment  Z
    MethodParameters:
                Name  Flags
      ldividend       
      ldivisor        
      scale           
      roundingMode    
      preferredScale  

  private static long divideAndRound(long, long, int);
    descriptor: (JJI)J
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=8, locals=11, args_size=3
        start local 0 // long ldividend
        start local 2 // long ldivisor
        start local 4 // int roundingMode
         0: .line 4159
            lload 0 /* ldividend */
            lload 2 /* ldivisor */
            ldiv
            lstore 6 /* q */
        start local 6 // long q
         1: .line 4160
            iload 4 /* roundingMode */
            iconst_1
            if_icmpne 3
         2: .line 4161
            lload 6 /* q */
            lreturn
         3: .line 4162
      StackMap locals: long long int top long
      StackMap stack:
            lload 0 /* ldividend */
            lload 2 /* ldivisor */
            lrem
            lstore 8 /* r */
        start local 8 // long r
         4: .line 4163
            lload 0 /* ldividend */
            lconst_0
            lcmp
            ifge 5
            iconst_1
            goto 6
      StackMap locals: long
      StackMap stack:
         5: iconst_0
      StackMap locals:
      StackMap stack: int
         6: lload 2 /* ldivisor */
            lconst_0
            lcmp
            ifge 7
            iconst_1
            goto 8
      StackMap locals:
      StackMap stack: int
         7: iconst_0
      StackMap locals: long long int top long long
      StackMap stack: int int
         8: if_icmpne 9
            iconst_1
            goto 10
      StackMap locals:
      StackMap stack:
         9: iconst_m1
      StackMap locals:
      StackMap stack: int
        10: istore 5 /* qsign */
        start local 5 // int qsign
        11: .line 4164
            lload 8 /* r */
            lconst_0
            lcmp
            ifeq 16
        12: .line 4165
            lload 2 /* ldivisor */
            iload 4 /* roundingMode */
            iload 5 /* qsign */
            lload 6 /* q */
            lload 8 /* r */
            invokestatic java.math.BigDecimal.needIncrement:(JIIJJ)Z
            istore 10 /* increment */
        start local 10 // boolean increment
        13: .line 4166
            iload 10 /* increment */
            ifeq 14
            lload 6 /* q */
            iload 5 /* qsign */
            i2l
            ladd
            goto 15
      StackMap locals: long long int int long long int
      StackMap stack:
        14: lload 6 /* q */
      StackMap locals:
      StackMap stack: long
        15: lreturn
        end local 10 // boolean increment
        16: .line 4168
      StackMap locals:
      StackMap stack:
            lload 6 /* q */
            lreturn
        end local 8 // long r
        end local 6 // long q
        end local 5 // int qsign
        end local 4 // int roundingMode
        end local 2 // long ldivisor
        end local 0 // long ldividend
      LocalVariableTable:
        Start  End  Slot          Name  Signature
            0   17     0     ldividend  J
            0   17     2      ldivisor  J
            0   17     4  roundingMode  I
           11   17     5         qsign  I
            1   17     6             q  J
            4   17     8             r  J
           13   16    10     increment  Z
    MethodParameters:
              Name  Flags
      ldividend     
      ldivisor      
      roundingMode  

  private static boolean commonNeedIncrement(int, int, int, boolean);
    descriptor: (IIIZ)Z
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=5, locals=4, args_size=4
        start local 0 // int roundingMode
        start local 1 // int qsign
        start local 2 // int cmpFracHalf
        start local 3 // boolean oddQuot
         0: .line 4177
            iload 0 /* roundingMode */
            tableswitch { // 0 - 7
                    0: 2
                    1: 3
                    2: 4
                    3: 6
                    4: 8
                    5: 8
                    6: 8
                    7: 1
              default: 8
          }
         1: .line 4179
      StackMap locals:
      StackMap stack:
            new java.lang.ArithmeticException
            dup
            ldc "Rounding necessary"
            invokespecial java.lang.ArithmeticException.<init>:(Ljava/lang/String;)V
            athrow
         2: .line 4182
      StackMap locals:
      StackMap stack:
            iconst_1
            ireturn
         3: .line 4185
      StackMap locals:
      StackMap stack:
            iconst_0
            ireturn
         4: .line 4188
      StackMap locals:
      StackMap stack:
            iload 1 /* qsign */
            ifle 5
            iconst_1
            ireturn
      StackMap locals:
      StackMap stack:
         5: iconst_0
            ireturn
         6: .line 4191
      StackMap locals:
      StackMap stack:
            iload 1 /* qsign */
            ifge 7
            iconst_1
            ireturn
      StackMap locals:
      StackMap stack:
         7: iconst_0
            ireturn
         8: .line 4194
      StackMap locals:
      StackMap stack:
            getstatic java.math.BigDecimal.$assertionsDisabled:Z
            ifne 11
            iload 0 /* roundingMode */
            iconst_4
            if_icmplt 10
         9: .line 4195
            iload 0 /* roundingMode */
            bipush 6
            if_icmple 11
      StackMap locals:
      StackMap stack:
        10: new java.lang.AssertionError
            dup
            new java.lang.StringBuilder
            dup
            ldc "Unexpected rounding mode"
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            iload 0 /* roundingMode */
            invokestatic java.math.RoundingMode.valueOf:(I)Ljava/math/RoundingMode;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokespecial java.lang.AssertionError.<init>:(Ljava/lang/Object;)V
            athrow
        11: .line 4197
      StackMap locals:
      StackMap stack:
            iload 2 /* cmpFracHalf */
            ifge 13
        12: .line 4198
            iconst_0
            ireturn
        13: .line 4199
      StackMap locals:
      StackMap stack:
            iload 2 /* cmpFracHalf */
            ifle 15
        14: .line 4200
            iconst_1
            ireturn
        15: .line 4202
      StackMap locals:
      StackMap stack:
            getstatic java.math.BigDecimal.$assertionsDisabled:Z
            ifne 16
            iload 2 /* cmpFracHalf */
            ifeq 16
            new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
        16: .line 4204
      StackMap locals:
      StackMap stack:
            iload 0 /* roundingMode */
            tableswitch { // 4 - 6
                    4: 18
                    5: 17
                    6: 19
              default: 20
          }
        17: .line 4206
      StackMap locals:
      StackMap stack:
            iconst_0
            ireturn
        18: .line 4209
      StackMap locals:
      StackMap stack:
            iconst_1
            ireturn
        19: .line 4212
      StackMap locals:
      StackMap stack:
            iload 3 /* oddQuot */
            ireturn
        20: .line 4215
      StackMap locals:
      StackMap stack:
            new java.lang.AssertionError
            dup
            new java.lang.StringBuilder
            dup
            ldc "Unexpected rounding mode"
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            iload 0 /* roundingMode */
            invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokespecial java.lang.AssertionError.<init>:(Ljava/lang/Object;)V
            athrow
        end local 3 // boolean oddQuot
        end local 2 // int cmpFracHalf
        end local 1 // int qsign
        end local 0 // int roundingMode
      LocalVariableTable:
        Start  End  Slot          Name  Signature
            0   21     0  roundingMode  I
            0   21     1         qsign  I
            0   21     2   cmpFracHalf  I
            0   21     3       oddQuot  Z
    MethodParameters:
              Name  Flags
      roundingMode  
      qsign         
      cmpFracHalf   
      oddQuot       

  private static boolean needIncrement(long, int, int, long, long);
    descriptor: (JIIJJ)Z
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=7, locals=9, args_size=5
        start local 0 // long ldivisor
        start local 2 // int roundingMode
        start local 3 // int qsign
        start local 4 // long q
        start local 6 // long r
         0: .line 4226
            getstatic java.math.BigDecimal.$assertionsDisabled:Z
            ifne 1
            lload 6 /* r */
            lconst_0
            lcmp
            ifne 1
            new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
         1: .line 4229
      StackMap locals:
      StackMap stack:
            lload 6 /* r */
            ldc -4611686018427387904
            lcmp
            ifle 2
            lload 6 /* r */
            ldc 4611686018427387903
            lcmp
            ifle 4
         2: .line 4230
      StackMap locals:
      StackMap stack:
            iconst_1
            istore 8 /* cmpFracHalf */
        start local 8 // int cmpFracHalf
         3: .line 4231
            goto 5
        end local 8 // int cmpFracHalf
         4: .line 4232
      StackMap locals:
      StackMap stack:
            ldc 2
            lload 6 /* r */
            lmul
            lload 0 /* ldivisor */
            invokestatic java.math.BigDecimal.longCompareMagnitude:(JJ)I
            istore 8 /* cmpFracHalf */
        start local 8 // int cmpFracHalf
         5: .line 4235
      StackMap locals: int
      StackMap stack:
            iload 2 /* roundingMode */
            iload 3 /* qsign */
            iload 8 /* cmpFracHalf */
            lload 4 /* q */
            lconst_1
            land
            lconst_0
            lcmp
            ifeq 6
            iconst_1
            goto 7
      StackMap locals: long int int long long int
      StackMap stack: int int int
         6: iconst_0
      StackMap locals: long int int long long int
      StackMap stack: int int int int
         7: invokestatic java.math.BigDecimal.commonNeedIncrement:(IIIZ)Z
            ireturn
        end local 8 // int cmpFracHalf
        end local 6 // long r
        end local 4 // long q
        end local 3 // int qsign
        end local 2 // int roundingMode
        end local 0 // long ldivisor
      LocalVariableTable:
        Start  End  Slot          Name  Signature
            0    8     0      ldivisor  J
            0    8     2  roundingMode  I
            0    8     3         qsign  I
            0    8     4             q  J
            0    8     6             r  J
            3    4     8   cmpFracHalf  I
            5    8     8   cmpFracHalf  I
    MethodParameters:
              Name  Flags
      ldivisor      
      roundingMode  
      qsign         
      q             
      r             

  private static java.math.BigInteger divideAndRound(java.math.BigInteger, long, int);
    descriptor: (Ljava/math/BigInteger;JI)Ljava/math/BigInteger;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=7, locals=10, args_size=3
        start local 0 // java.math.BigInteger bdividend
        start local 1 // long ldivisor
        start local 3 // int roundingMode
         0: .line 4245
            lconst_0
            lstore 6 /* r */
        start local 6 // long r
         1: .line 4246
            aconst_null
            astore 8 /* mq */
        start local 8 // java.math.MutableBigInteger mq
         2: .line 4248
            new java.math.MutableBigInteger
            dup
            aload 0 /* bdividend */
            getfield java.math.BigInteger.mag:[I
            invokespecial java.math.MutableBigInteger.<init>:([I)V
            astore 9 /* mdividend */
        start local 9 // java.math.MutableBigInteger mdividend
         3: .line 4249
            new java.math.MutableBigInteger
            dup
            invokespecial java.math.MutableBigInteger.<init>:()V
            astore 8 /* mq */
         4: .line 4250
            aload 9 /* mdividend */
            lload 1 /* ldivisor */
            aload 8 /* mq */
            invokevirtual java.math.MutableBigInteger.divide:(JLjava/math/MutableBigInteger;)J
            lstore 6 /* r */
         5: .line 4251
            lload 6 /* r */
            lconst_0
            lcmp
            ifne 6
            iconst_1
            goto 7
      StackMap locals: java.math.BigInteger long int top top long java.math.MutableBigInteger java.math.MutableBigInteger
      StackMap stack:
         6: iconst_0
      StackMap locals:
      StackMap stack: int
         7: istore 4 /* isRemainderZero */
        start local 4 // boolean isRemainderZero
         8: .line 4252
            lload 1 /* ldivisor */
            lconst_0
            lcmp
            ifge 9
            aload 0 /* bdividend */
            getfield java.math.BigInteger.signum:I
            ineg
            goto 10
      StackMap locals: java.math.BigInteger long int int top long java.math.MutableBigInteger java.math.MutableBigInteger
      StackMap stack:
         9: aload 0 /* bdividend */
            getfield java.math.BigInteger.signum:I
      StackMap locals:
      StackMap stack: int
        10: istore 5 /* qsign */
        start local 5 // int qsign
        11: .line 4253
            iload 4 /* isRemainderZero */
            ifne 14
        12: .line 4254
            lload 1 /* ldivisor */
            iload 3 /* roundingMode */
            iload 5 /* qsign */
            aload 8 /* mq */
            lload 6 /* r */
            invokestatic java.math.BigDecimal.needIncrement:(JIILjava/math/MutableBigInteger;J)Z
            ifeq 14
        13: .line 4255
            aload 8 /* mq */
            getstatic java.math.MutableBigInteger.ONE:Ljava/math/MutableBigInteger;
            invokevirtual java.math.MutableBigInteger.add:(Ljava/math/MutableBigInteger;)V
        14: .line 4258
      StackMap locals: java.math.BigInteger long int int int long java.math.MutableBigInteger java.math.MutableBigInteger
      StackMap stack:
            aload 8 /* mq */
            iload 5 /* qsign */
            invokevirtual java.math.MutableBigInteger.toBigInteger:(I)Ljava/math/BigInteger;
            areturn
        end local 9 // java.math.MutableBigInteger mdividend
        end local 8 // java.math.MutableBigInteger mq
        end local 6 // long r
        end local 5 // int qsign
        end local 4 // boolean isRemainderZero
        end local 3 // int roundingMode
        end local 1 // long ldivisor
        end local 0 // java.math.BigInteger bdividend
      LocalVariableTable:
        Start  End  Slot             Name  Signature
            0   15     0        bdividend  Ljava/math/BigInteger;
            0   15     1         ldivisor  J
            0   15     3     roundingMode  I
            8   15     4  isRemainderZero  Z
           11   15     5            qsign  I
            1   15     6                r  J
            2   15     8               mq  Ljava/math/MutableBigInteger;
            3   15     9        mdividend  Ljava/math/MutableBigInteger;
    MethodParameters:
              Name  Flags
      bdividend     
      ldivisor      
      roundingMode  

  private static java.math.BigDecimal divideAndRound(java.math.BigInteger, long, int, int, int);
    descriptor: (Ljava/math/BigInteger;JIII)Ljava/math/BigDecimal;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=7, locals=15, args_size=5
        start local 0 // java.math.BigInteger bdividend
        start local 1 // long ldivisor
        start local 3 // int scale
        start local 4 // int roundingMode
        start local 5 // int preferredScale
         0: .line 4274
            lconst_0
            lstore 8 /* r */
        start local 8 // long r
         1: .line 4275
            aconst_null
            astore 10 /* mq */
        start local 10 // java.math.MutableBigInteger mq
         2: .line 4277
            new java.math.MutableBigInteger
            dup
            aload 0 /* bdividend */
            getfield java.math.BigInteger.mag:[I
            invokespecial java.math.MutableBigInteger.<init>:([I)V
            astore 11 /* mdividend */
        start local 11 // java.math.MutableBigInteger mdividend
         3: .line 4278
            new java.math.MutableBigInteger
            dup
            invokespecial java.math.MutableBigInteger.<init>:()V
            astore 10 /* mq */
         4: .line 4279
            aload 11 /* mdividend */
            lload 1 /* ldivisor */
            aload 10 /* mq */
            invokevirtual java.math.MutableBigInteger.divide:(JLjava/math/MutableBigInteger;)J
            lstore 8 /* r */
         5: .line 4280
            lload 8 /* r */
            lconst_0
            lcmp
            ifne 6
            iconst_1
            goto 7
      StackMap locals: java.math.BigInteger long int int int top top long java.math.MutableBigInteger java.math.MutableBigInteger
      StackMap stack:
         6: iconst_0
      StackMap locals:
      StackMap stack: int
         7: istore 6 /* isRemainderZero */
        start local 6 // boolean isRemainderZero
         8: .line 4281
            lload 1 /* ldivisor */
            lconst_0
            lcmp
            ifge 9
            aload 0 /* bdividend */
            getfield java.math.BigInteger.signum:I
            ineg
            goto 10
      StackMap locals: java.math.BigInteger long int int int int top long java.math.MutableBigInteger java.math.MutableBigInteger
      StackMap stack:
         9: aload 0 /* bdividend */
            getfield java.math.BigInteger.signum:I
      StackMap locals:
      StackMap stack: int
        10: istore 7 /* qsign */
        start local 7 // int qsign
        11: .line 4282
            iload 6 /* isRemainderZero */
            ifne 15
        12: .line 4283
            lload 1 /* ldivisor */
            iload 4 /* roundingMode */
            iload 7 /* qsign */
            aload 10 /* mq */
            lload 8 /* r */
            invokestatic java.math.BigDecimal.needIncrement:(JIILjava/math/MutableBigInteger;J)Z
            ifeq 14
        13: .line 4284
            aload 10 /* mq */
            getstatic java.math.MutableBigInteger.ONE:Ljava/math/MutableBigInteger;
            invokevirtual java.math.MutableBigInteger.add:(Ljava/math/MutableBigInteger;)V
        14: .line 4286
      StackMap locals: java.math.BigInteger long int int int int int long java.math.MutableBigInteger java.math.MutableBigInteger
      StackMap stack:
            aload 10 /* mq */
            iload 7 /* qsign */
            iload 3 /* scale */
            invokevirtual java.math.MutableBigInteger.toBigDecimal:(II)Ljava/math/BigDecimal;
            areturn
        15: .line 4288
      StackMap locals:
      StackMap stack:
            iload 5 /* preferredScale */
            iload 3 /* scale */
            if_icmpeq 21
        16: .line 4289
            aload 10 /* mq */
            iload 7 /* qsign */
            invokevirtual java.math.MutableBigInteger.toCompactValue:(I)J
            lstore 12 /* compactVal */
        start local 12 // long compactVal
        17: .line 4290
            lload 12 /* compactVal */
            ldc -9223372036854775808
            lcmp
            ifeq 19
        18: .line 4291
            lload 12 /* compactVal */
            iload 3 /* scale */
            iload 5 /* preferredScale */
            i2l
            invokestatic java.math.BigDecimal.createAndStripZerosToMatchScale:(JIJ)Ljava/math/BigDecimal;
            areturn
        19: .line 4293
      StackMap locals: long
      StackMap stack:
            aload 10 /* mq */
            iload 7 /* qsign */
            invokevirtual java.math.MutableBigInteger.toBigInteger:(I)Ljava/math/BigInteger;
            astore 14 /* intVal */
        start local 14 // java.math.BigInteger intVal
        20: .line 4294
            aload 14 /* intVal */
            iload 3 /* scale */
            iload 5 /* preferredScale */
            i2l
            invokestatic java.math.BigDecimal.createAndStripZerosToMatchScale:(Ljava/math/BigInteger;IJ)Ljava/math/BigDecimal;
            areturn
        end local 14 // java.math.BigInteger intVal
        end local 12 // long compactVal
        21: .line 4296
      StackMap locals:
      StackMap stack:
            aload 10 /* mq */
            iload 7 /* qsign */
            iload 3 /* scale */
            invokevirtual java.math.MutableBigInteger.toBigDecimal:(II)Ljava/math/BigDecimal;
            areturn
        end local 11 // java.math.MutableBigInteger mdividend
        end local 10 // java.math.MutableBigInteger mq
        end local 8 // long r
        end local 7 // int qsign
        end local 6 // boolean isRemainderZero
        end local 5 // int preferredScale
        end local 4 // int roundingMode
        end local 3 // int scale
        end local 1 // long ldivisor
        end local 0 // java.math.BigInteger bdividend
      LocalVariableTable:
        Start  End  Slot             Name  Signature
            0   22     0        bdividend  Ljava/math/BigInteger;
            0   22     1         ldivisor  J
            0   22     3            scale  I
            0   22     4     roundingMode  I
            0   22     5   preferredScale  I
            8   22     6  isRemainderZero  Z
           11   22     7            qsign  I
            1   22     8                r  J
            2   22    10               mq  Ljava/math/MutableBigInteger;
            3   22    11        mdividend  Ljava/math/MutableBigInteger;
           17   21    12       compactVal  J
           20   21    14           intVal  Ljava/math/BigInteger;
    MethodParameters:
                Name  Flags
      bdividend       
      ldivisor        
      scale           
      roundingMode    
      preferredScale  

  private static boolean needIncrement(long, int, int, java.math.MutableBigInteger, long);
    descriptor: (JIILjava/math/MutableBigInteger;J)Z
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=4, locals=8, args_size=5
        start local 0 // long ldivisor
        start local 2 // int roundingMode
        start local 3 // int qsign
        start local 4 // java.math.MutableBigInteger mq
        start local 5 // long r
         0: .line 4306
            getstatic java.math.BigDecimal.$assertionsDisabled:Z
            ifne 1
            lload 5 /* r */
            lconst_0
            lcmp
            ifne 1
            new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
         1: .line 4309
      StackMap locals:
      StackMap stack:
            lload 5 /* r */
            ldc -4611686018427387904
            lcmp
            ifle 2
            lload 5 /* r */
            ldc 4611686018427387903
            lcmp
            ifle 4
         2: .line 4310
      StackMap locals:
      StackMap stack:
            iconst_1
            istore 7 /* cmpFracHalf */
        start local 7 // int cmpFracHalf
         3: .line 4311
            goto 5
        end local 7 // int cmpFracHalf
         4: .line 4312
      StackMap locals:
      StackMap stack:
            ldc 2
            lload 5 /* r */
            lmul
            lload 0 /* ldivisor */
            invokestatic java.math.BigDecimal.longCompareMagnitude:(JJ)I
            istore 7 /* cmpFracHalf */
        start local 7 // int cmpFracHalf
         5: .line 4315
      StackMap locals: int
      StackMap stack:
            iload 2 /* roundingMode */
            iload 3 /* qsign */
            iload 7 /* cmpFracHalf */
            aload 4 /* mq */
            invokevirtual java.math.MutableBigInteger.isOdd:()Z
            invokestatic java.math.BigDecimal.commonNeedIncrement:(IIIZ)Z
            ireturn
        end local 7 // int cmpFracHalf
        end local 5 // long r
        end local 4 // java.math.MutableBigInteger mq
        end local 3 // int qsign
        end local 2 // int roundingMode
        end local 0 // long ldivisor
      LocalVariableTable:
        Start  End  Slot          Name  Signature
            0    6     0      ldivisor  J
            0    6     2  roundingMode  I
            0    6     3         qsign  I
            0    6     4            mq  Ljava/math/MutableBigInteger;
            0    6     5             r  J
            3    4     7   cmpFracHalf  I
            5    6     7   cmpFracHalf  I
    MethodParameters:
              Name  Flags
      ldivisor      
      roundingMode  
      qsign         
      mq            
      r             

  private static java.math.BigInteger divideAndRound(java.math.BigInteger, java.math.BigInteger, int);
    descriptor: (Ljava/math/BigInteger;Ljava/math/BigInteger;I)Ljava/math/BigInteger;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=5, locals=9, args_size=3
        start local 0 // java.math.BigInteger bdividend
        start local 1 // java.math.BigInteger bdivisor
        start local 2 // int roundingMode
         0: .line 4326
            new java.math.MutableBigInteger
            dup
            aload 0 /* bdividend */
            getfield java.math.BigInteger.mag:[I
            invokespecial java.math.MutableBigInteger.<init>:([I)V
            astore 5 /* mdividend */
        start local 5 // java.math.MutableBigInteger mdividend
         1: .line 4327
            new java.math.MutableBigInteger
            dup
            invokespecial java.math.MutableBigInteger.<init>:()V
            astore 6 /* mq */
        start local 6 // java.math.MutableBigInteger mq
         2: .line 4328
            new java.math.MutableBigInteger
            dup
            aload 1 /* bdivisor */
            getfield java.math.BigInteger.mag:[I
            invokespecial java.math.MutableBigInteger.<init>:([I)V
            astore 7 /* mdivisor */
        start local 7 // java.math.MutableBigInteger mdivisor
         3: .line 4329
            aload 5 /* mdividend */
            aload 7 /* mdivisor */
            aload 6 /* mq */
            invokevirtual java.math.MutableBigInteger.divide:(Ljava/math/MutableBigInteger;Ljava/math/MutableBigInteger;)Ljava/math/MutableBigInteger;
            astore 8 /* mr */
        start local 8 // java.math.MutableBigInteger mr
         4: .line 4330
            aload 8 /* mr */
            invokevirtual java.math.MutableBigInteger.isZero:()Z
            istore 3 /* isRemainderZero */
        start local 3 // boolean isRemainderZero
         5: .line 4331
            aload 0 /* bdividend */
            getfield java.math.BigInteger.signum:I
            aload 1 /* bdivisor */
            getfield java.math.BigInteger.signum:I
            if_icmpeq 6
            iconst_m1
            goto 7
      StackMap locals: java.math.BigInteger java.math.BigInteger int int top java.math.MutableBigInteger java.math.MutableBigInteger java.math.MutableBigInteger java.math.MutableBigInteger
      StackMap stack:
         6: iconst_1
      StackMap locals:
      StackMap stack: int
         7: istore 4 /* qsign */
        start local 4 // int qsign
         8: .line 4332
            iload 3 /* isRemainderZero */
            ifne 11
         9: .line 4333
            aload 7 /* mdivisor */
            iload 2 /* roundingMode */
            iload 4 /* qsign */
            aload 6 /* mq */
            aload 8 /* mr */
            invokestatic java.math.BigDecimal.needIncrement:(Ljava/math/MutableBigInteger;IILjava/math/MutableBigInteger;Ljava/math/MutableBigInteger;)Z
            ifeq 11
        10: .line 4334
            aload 6 /* mq */
            getstatic java.math.MutableBigInteger.ONE:Ljava/math/MutableBigInteger;
            invokevirtual java.math.MutableBigInteger.add:(Ljava/math/MutableBigInteger;)V
        11: .line 4337
      StackMap locals: java.math.BigInteger java.math.BigInteger int int int java.math.MutableBigInteger java.math.MutableBigInteger java.math.MutableBigInteger java.math.MutableBigInteger
      StackMap stack:
            aload 6 /* mq */
            iload 4 /* qsign */
            invokevirtual java.math.MutableBigInteger.toBigInteger:(I)Ljava/math/BigInteger;
            areturn
        end local 8 // java.math.MutableBigInteger mr
        end local 7 // java.math.MutableBigInteger mdivisor
        end local 6 // java.math.MutableBigInteger mq
        end local 5 // java.math.MutableBigInteger mdividend
        end local 4 // int qsign
        end local 3 // boolean isRemainderZero
        end local 2 // int roundingMode
        end local 1 // java.math.BigInteger bdivisor
        end local 0 // java.math.BigInteger bdividend
      LocalVariableTable:
        Start  End  Slot             Name  Signature
            0   12     0        bdividend  Ljava/math/BigInteger;
            0   12     1         bdivisor  Ljava/math/BigInteger;
            0   12     2     roundingMode  I
            5   12     3  isRemainderZero  Z
            8   12     4            qsign  I
            1   12     5        mdividend  Ljava/math/MutableBigInteger;
            2   12     6               mq  Ljava/math/MutableBigInteger;
            3   12     7         mdivisor  Ljava/math/MutableBigInteger;
            4   12     8               mr  Ljava/math/MutableBigInteger;
    MethodParameters:
              Name  Flags
      bdividend     
      bdivisor      
      roundingMode  

  private static java.math.BigDecimal divideAndRound(java.math.BigInteger, java.math.BigInteger, int, int, int);
    descriptor: (Ljava/math/BigInteger;Ljava/math/BigInteger;III)Ljava/math/BigDecimal;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=5, locals=14, args_size=5
        start local 0 // java.math.BigInteger bdividend
        start local 1 // java.math.BigInteger bdivisor
        start local 2 // int scale
        start local 3 // int roundingMode
        start local 4 // int preferredScale
         0: .line 4354
            new java.math.MutableBigInteger
            dup
            aload 0 /* bdividend */
            getfield java.math.BigInteger.mag:[I
            invokespecial java.math.MutableBigInteger.<init>:([I)V
            astore 7 /* mdividend */
        start local 7 // java.math.MutableBigInteger mdividend
         1: .line 4355
            new java.math.MutableBigInteger
            dup
            invokespecial java.math.MutableBigInteger.<init>:()V
            astore 8 /* mq */
        start local 8 // java.math.MutableBigInteger mq
         2: .line 4356
            new java.math.MutableBigInteger
            dup
            aload 1 /* bdivisor */
            getfield java.math.BigInteger.mag:[I
            invokespecial java.math.MutableBigInteger.<init>:([I)V
            astore 9 /* mdivisor */
        start local 9 // java.math.MutableBigInteger mdivisor
         3: .line 4357
            aload 7 /* mdividend */
            aload 9 /* mdivisor */
            aload 8 /* mq */
            invokevirtual java.math.MutableBigInteger.divide:(Ljava/math/MutableBigInteger;Ljava/math/MutableBigInteger;)Ljava/math/MutableBigInteger;
            astore 10 /* mr */
        start local 10 // java.math.MutableBigInteger mr
         4: .line 4358
            aload 10 /* mr */
            invokevirtual java.math.MutableBigInteger.isZero:()Z
            istore 5 /* isRemainderZero */
        start local 5 // boolean isRemainderZero
         5: .line 4359
            aload 0 /* bdividend */
            getfield java.math.BigInteger.signum:I
            aload 1 /* bdivisor */
            getfield java.math.BigInteger.signum:I
            if_icmpeq 6
            iconst_m1
            goto 7
      StackMap locals: java.math.BigInteger java.math.BigInteger int int int int top java.math.MutableBigInteger java.math.MutableBigInteger java.math.MutableBigInteger java.math.MutableBigInteger
      StackMap stack:
         6: iconst_1
      StackMap locals:
      StackMap stack: int
         7: istore 6 /* qsign */
        start local 6 // int qsign
         8: .line 4360
            iload 5 /* isRemainderZero */
            ifne 12
         9: .line 4361
            aload 9 /* mdivisor */
            iload 3 /* roundingMode */
            iload 6 /* qsign */
            aload 8 /* mq */
            aload 10 /* mr */
            invokestatic java.math.BigDecimal.needIncrement:(Ljava/math/MutableBigInteger;IILjava/math/MutableBigInteger;Ljava/math/MutableBigInteger;)Z
            ifeq 11
        10: .line 4362
            aload 8 /* mq */
            getstatic java.math.MutableBigInteger.ONE:Ljava/math/MutableBigInteger;
            invokevirtual java.math.MutableBigInteger.add:(Ljava/math/MutableBigInteger;)V
        11: .line 4364
      StackMap locals: java.math.BigInteger java.math.BigInteger int int int int int java.math.MutableBigInteger java.math.MutableBigInteger java.math.MutableBigInteger java.math.MutableBigInteger
      StackMap stack:
            aload 8 /* mq */
            iload 6 /* qsign */
            iload 2 /* scale */
            invokevirtual java.math.MutableBigInteger.toBigDecimal:(II)Ljava/math/BigDecimal;
            areturn
        12: .line 4366
      StackMap locals:
      StackMap stack:
            iload 4 /* preferredScale */
            iload 2 /* scale */
            if_icmpeq 18
        13: .line 4367
            aload 8 /* mq */
            iload 6 /* qsign */
            invokevirtual java.math.MutableBigInteger.toCompactValue:(I)J
            lstore 11 /* compactVal */
        start local 11 // long compactVal
        14: .line 4368
            lload 11 /* compactVal */
            ldc -9223372036854775808
            lcmp
            ifeq 16
        15: .line 4369
            lload 11 /* compactVal */
            iload 2 /* scale */
            iload 4 /* preferredScale */
            i2l
            invokestatic java.math.BigDecimal.createAndStripZerosToMatchScale:(JIJ)Ljava/math/BigDecimal;
            areturn
        16: .line 4371
      StackMap locals: long
      StackMap stack:
            aload 8 /* mq */
            iload 6 /* qsign */
            invokevirtual java.math.MutableBigInteger.toBigInteger:(I)Ljava/math/BigInteger;
            astore 13 /* intVal */
        start local 13 // java.math.BigInteger intVal
        17: .line 4372
            aload 13 /* intVal */
            iload 2 /* scale */
            iload 4 /* preferredScale */
            i2l
            invokestatic java.math.BigDecimal.createAndStripZerosToMatchScale:(Ljava/math/BigInteger;IJ)Ljava/math/BigDecimal;
            areturn
        end local 13 // java.math.BigInteger intVal
        end local 11 // long compactVal
        18: .line 4374
      StackMap locals:
      StackMap stack:
            aload 8 /* mq */
            iload 6 /* qsign */
            iload 2 /* scale */
            invokevirtual java.math.MutableBigInteger.toBigDecimal:(II)Ljava/math/BigDecimal;
            areturn
        end local 10 // java.math.MutableBigInteger mr
        end local 9 // java.math.MutableBigInteger mdivisor
        end local 8 // java.math.MutableBigInteger mq
        end local 7 // java.math.MutableBigInteger mdividend
        end local 6 // int qsign
        end local 5 // boolean isRemainderZero
        end local 4 // int preferredScale
        end local 3 // int roundingMode
        end local 2 // int scale
        end local 1 // java.math.BigInteger bdivisor
        end local 0 // java.math.BigInteger bdividend
      LocalVariableTable:
        Start  End  Slot             Name  Signature
            0   19     0        bdividend  Ljava/math/BigInteger;
            0   19     1         bdivisor  Ljava/math/BigInteger;
            0   19     2            scale  I
            0   19     3     roundingMode  I
            0   19     4   preferredScale  I
            5   19     5  isRemainderZero  Z
            8   19     6            qsign  I
            1   19     7        mdividend  Ljava/math/MutableBigInteger;
            2   19     8               mq  Ljava/math/MutableBigInteger;
            3   19     9         mdivisor  Ljava/math/MutableBigInteger;
            4   19    10               mr  Ljava/math/MutableBigInteger;
           14   18    11       compactVal  J
           17   18    13           intVal  Ljava/math/BigInteger;
    MethodParameters:
                Name  Flags
      bdividend       
      bdivisor        
      scale           
      roundingMode    
      preferredScale  

  private static boolean needIncrement(java.math.MutableBigInteger, int, int, java.math.MutableBigInteger, java.math.MutableBigInteger);
    descriptor: (Ljava/math/MutableBigInteger;IILjava/math/MutableBigInteger;Ljava/math/MutableBigInteger;)Z
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=4, locals=6, args_size=5
        start local 0 // java.math.MutableBigInteger mdivisor
        start local 1 // int roundingMode
        start local 2 // int qsign
        start local 3 // java.math.MutableBigInteger mq
        start local 4 // java.math.MutableBigInteger mr
         0: .line 4384
            getstatic java.math.BigDecimal.$assertionsDisabled:Z
            ifne 1
            aload 4 /* mr */
            invokevirtual java.math.MutableBigInteger.isZero:()Z
            ifeq 1
            new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
         1: .line 4385
      StackMap locals:
      StackMap stack:
            aload 4 /* mr */
            aload 0 /* mdivisor */
            invokevirtual java.math.MutableBigInteger.compareHalf:(Ljava/math/MutableBigInteger;)I
            istore 5 /* cmpFracHalf */
        start local 5 // int cmpFracHalf
         2: .line 4386
            iload 1 /* roundingMode */
            iload 2 /* qsign */
            iload 5 /* cmpFracHalf */
            aload 3 /* mq */
            invokevirtual java.math.MutableBigInteger.isOdd:()Z
            invokestatic java.math.BigDecimal.commonNeedIncrement:(IIIZ)Z
            ireturn
        end local 5 // int cmpFracHalf
        end local 4 // java.math.MutableBigInteger mr
        end local 3 // java.math.MutableBigInteger mq
        end local 2 // int qsign
        end local 1 // int roundingMode
        end local 0 // java.math.MutableBigInteger mdivisor
      LocalVariableTable:
        Start  End  Slot          Name  Signature
            0    3     0      mdivisor  Ljava/math/MutableBigInteger;
            0    3     1  roundingMode  I
            0    3     2         qsign  I
            0    3     3            mq  Ljava/math/MutableBigInteger;
            0    3     4            mr  Ljava/math/MutableBigInteger;
            2    3     5   cmpFracHalf  I
    MethodParameters:
              Name  Flags
      mdivisor      
      roundingMode  
      qsign         
      mq            
      mr            

  private static java.math.BigDecimal createAndStripZerosToMatchScale(java.math.BigInteger, int, long);
    descriptor: (Ljava/math/BigInteger;IJ)Ljava/math/BigDecimal;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=5, locals=5, args_size=3
        start local 0 // java.math.BigInteger intVal
        start local 1 // int scale
        start local 2 // long preferredScale
         0: .line 4400
            goto 8
         1: .line 4402
      StackMap locals:
      StackMap stack:
            aload 0 /* intVal */
            iconst_0
            invokevirtual java.math.BigInteger.testBit:(I)Z
            ifeq 3
         2: .line 4403
            goto 11
         3: .line 4404
      StackMap locals:
      StackMap stack:
            aload 0 /* intVal */
            getstatic java.math.BigInteger.TEN:Ljava/math/BigInteger;
            invokevirtual java.math.BigInteger.divideAndRemainder:(Ljava/math/BigInteger;)[Ljava/math/BigInteger;
            astore 4 /* qr */
        start local 4 // java.math.BigInteger[] qr
         4: .line 4405
            aload 4 /* qr */
            iconst_1
            aaload
            invokevirtual java.math.BigInteger.signum:()I
            ifeq 6
         5: .line 4406
            goto 11
         6: .line 4407
      StackMap locals: java.math.BigInteger[]
      StackMap stack:
            aload 4 /* qr */
            iconst_0
            aaload
            astore 0 /* intVal */
         7: .line 4408
            aload 0 /* intVal */
            iload 1 /* scale */
            i2l
            lconst_1
            lsub
            invokestatic java.math.BigDecimal.checkScale:(Ljava/math/BigInteger;J)I
            istore 1 /* scale */
        end local 4 // java.math.BigInteger[] qr
         8: .line 4400
      StackMap locals:
      StackMap stack:
            aload 0 /* intVal */
            getstatic java.math.BigInteger.TEN:Ljava/math/BigInteger;
            invokevirtual java.math.BigInteger.compareMagnitude:(Ljava/math/BigInteger;)I
            iflt 11
         9: .line 4401
            iload 1 /* scale */
            i2l
            lload 2 /* preferredScale */
        10: .line 4400
            lcmp
            ifgt 1
        11: .line 4410
      StackMap locals:
      StackMap stack:
            aload 0 /* intVal */
            iload 1 /* scale */
            iconst_0
            invokestatic java.math.BigDecimal.valueOf:(Ljava/math/BigInteger;II)Ljava/math/BigDecimal;
            areturn
        end local 2 // long preferredScale
        end local 1 // int scale
        end local 0 // java.math.BigInteger intVal
      LocalVariableTable:
        Start  End  Slot            Name  Signature
            0   12     0          intVal  Ljava/math/BigInteger;
            0   12     1           scale  I
            0   12     2  preferredScale  J
            4    8     4              qr  [Ljava/math/BigInteger;
    MethodParameters:
                Name  Flags
      intVal          
      scale           
      preferredScale  

  private static java.math.BigDecimal createAndStripZerosToMatchScale(long, int, long);
    descriptor: (JIJ)Ljava/math/BigDecimal;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=6, locals=7, args_size=3
        start local 0 // long compactVal
        start local 2 // int scale
        start local 3 // long preferredScale
         0: .line 4423
            goto 8
         1: .line 4424
      StackMap locals:
      StackMap stack:
            lload 0 /* compactVal */
            lconst_1
            land
            lconst_0
            lcmp
            ifeq 3
         2: .line 4425
            goto 9
         3: .line 4426
      StackMap locals:
      StackMap stack:
            lload 0 /* compactVal */
            ldc 10
            lrem
            lstore 5 /* r */
        start local 5 // long r
         4: .line 4427
            lload 5 /* r */
            lconst_0
            lcmp
            ifeq 6
         5: .line 4428
            goto 9
         6: .line 4429
      StackMap locals: long
      StackMap stack:
            lload 0 /* compactVal */
            ldc 10
            ldiv
            lstore 0 /* compactVal */
         7: .line 4430
            lload 0 /* compactVal */
            iload 2 /* scale */
            i2l
            lconst_1
            lsub
            invokestatic java.math.BigDecimal.checkScale:(JJ)I
            istore 2 /* scale */
        end local 5 // long r
         8: .line 4423
      StackMap locals:
      StackMap stack:
            lload 0 /* compactVal */
            invokestatic java.lang.Math.abs:(J)J
            ldc 10
            lcmp
            iflt 9
            iload 2 /* scale */
            i2l
            lload 3 /* preferredScale */
            lcmp
            ifgt 1
         9: .line 4432
      StackMap locals:
      StackMap stack:
            lload 0 /* compactVal */
            iload 2 /* scale */
            invokestatic java.math.BigDecimal.valueOf:(JI)Ljava/math/BigDecimal;
            areturn
        end local 3 // long preferredScale
        end local 2 // int scale
        end local 0 // long compactVal
      LocalVariableTable:
        Start  End  Slot            Name  Signature
            0   10     0      compactVal  J
            0   10     2           scale  I
            0   10     3  preferredScale  J
            4    8     5               r  J
    MethodParameters:
                Name  Flags
      compactVal      
      scale           
      preferredScale  

  private static java.math.BigDecimal stripZerosToMatchScale(java.math.BigInteger, long, int, int);
    descriptor: (Ljava/math/BigInteger;JII)Ljava/math/BigDecimal;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=5, locals=5, args_size=4
        start local 0 // java.math.BigInteger intVal
        start local 1 // long intCompact
        start local 3 // int scale
        start local 4 // int preferredScale
         0: .line 4436
            lload 1 /* intCompact */
            ldc -9223372036854775808
            lcmp
            ifeq 2
         1: .line 4437
            lload 1 /* intCompact */
            iload 3 /* scale */
            iload 4 /* preferredScale */
            i2l
            invokestatic java.math.BigDecimal.createAndStripZerosToMatchScale:(JIJ)Ljava/math/BigDecimal;
            areturn
         2: .line 4439
      StackMap locals:
      StackMap stack:
            aload 0 /* intVal */
            ifnonnull 3
            getstatic java.math.BigDecimal.INFLATED_BIGINT:Ljava/math/BigInteger;
            goto 4
      StackMap locals:
      StackMap stack:
         3: aload 0 /* intVal */
         4: .line 4440
      StackMap locals:
      StackMap stack: java.math.BigInteger
            iload 3 /* scale */
            iload 4 /* preferredScale */
            i2l
         5: .line 4439
            invokestatic java.math.BigDecimal.createAndStripZerosToMatchScale:(Ljava/math/BigInteger;IJ)Ljava/math/BigDecimal;
            areturn
        end local 4 // int preferredScale
        end local 3 // int scale
        end local 1 // long intCompact
        end local 0 // java.math.BigInteger intVal
      LocalVariableTable:
        Start  End  Slot            Name  Signature
            0    6     0          intVal  Ljava/math/BigInteger;
            0    6     1      intCompact  J
            0    6     3           scale  I
            0    6     4  preferredScale  I
    MethodParameters:
                Name  Flags
      intVal          
      intCompact      
      scale           
      preferredScale  

  private static long add(long, long);
    descriptor: (JJ)J
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=6, locals=6, args_size=2
        start local 0 // long xs
        start local 2 // long ys
         0: .line 4448
            lload 0 /* xs */
            lload 2 /* ys */
            ladd
            lstore 4 /* sum */
        start local 4 // long sum
         1: .line 4451
            lload 4 /* sum */
            lload 0 /* xs */
            lxor
            lload 4 /* sum */
            lload 2 /* ys */
            lxor
            land
            lconst_0
            lcmp
            iflt 3
         2: .line 4452
            lload 4 /* sum */
            lreturn
         3: .line 4454
      StackMap locals: long
      StackMap stack:
            ldc -9223372036854775808
            lreturn
        end local 4 // long sum
        end local 2 // long ys
        end local 0 // long xs
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    4     0    xs  J
            0    4     2    ys  J
            1    4     4   sum  J
    MethodParameters:
      Name  Flags
      xs    
      ys    

  private static java.math.BigDecimal add(long, long, int);
    descriptor: (JJI)Ljava/math/BigDecimal;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=5, locals=7, args_size=3
        start local 0 // long xs
        start local 2 // long ys
        start local 4 // int scale
         0: .line 4458
            lload 0 /* xs */
            lload 2 /* ys */
            invokestatic java.math.BigDecimal.add:(JJ)J
            lstore 5 /* sum */
        start local 5 // long sum
         1: .line 4459
            lload 5 /* sum */
            ldc -9223372036854775808
            lcmp
            ifeq 3
         2: .line 4460
            lload 5 /* sum */
            iload 4 /* scale */
            invokestatic java.math.BigDecimal.valueOf:(JI)Ljava/math/BigDecimal;
            areturn
         3: .line 4461
      StackMap locals: long
      StackMap stack:
            new java.math.BigDecimal
            dup
            lload 0 /* xs */
            invokestatic java.math.BigInteger.valueOf:(J)Ljava/math/BigInteger;
            lload 2 /* ys */
            invokevirtual java.math.BigInteger.add:(J)Ljava/math/BigInteger;
            iload 4 /* scale */
            invokespecial java.math.BigDecimal.<init>:(Ljava/math/BigInteger;I)V
            areturn
        end local 5 // long sum
        end local 4 // int scale
        end local 2 // long ys
        end local 0 // long xs
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    4     0     xs  J
            0    4     2     ys  J
            0    4     4  scale  I
            1    4     5    sum  J
    MethodParameters:
       Name  Flags
      xs     
      ys     
      scale  

  private static java.math.BigDecimal add(long, int, long, int);
    descriptor: (JIJI)Ljava/math/BigDecimal;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=7, locals=12, args_size=4
        start local 0 // long xs
        start local 2 // int scale1
        start local 3 // long ys
        start local 5 // int scale2
         0: .line 4465
            iload 2 /* scale1 */
            i2l
            iload 5 /* scale2 */
            i2l
            lsub
            lstore 6 /* sdiff */
        start local 6 // long sdiff
         1: .line 4466
            lload 6 /* sdiff */
            lconst_0
            lcmp
            ifne 3
         2: .line 4467
            lload 0 /* xs */
            lload 3 /* ys */
            iload 2 /* scale1 */
            invokestatic java.math.BigDecimal.add:(JJI)Ljava/math/BigDecimal;
            areturn
         3: .line 4468
      StackMap locals: long
      StackMap stack:
            lload 6 /* sdiff */
            lconst_0
            lcmp
            ifge 13
         4: .line 4469
            lload 0 /* xs */
            lload 6 /* sdiff */
            lneg
            invokestatic java.math.BigDecimal.checkScale:(JJ)I
            istore 8 /* raise */
        start local 8 // int raise
         5: .line 4470
            lload 0 /* xs */
            iload 8 /* raise */
            invokestatic java.math.BigDecimal.longMultiplyPowerTen:(JI)J
            lstore 9 /* scaledX */
        start local 9 // long scaledX
         6: .line 4471
            lload 9 /* scaledX */
            ldc -9223372036854775808
            lcmp
            ifeq 8
         7: .line 4472
            lload 9 /* scaledX */
            lload 3 /* ys */
            iload 5 /* scale2 */
            invokestatic java.math.BigDecimal.add:(JJI)Ljava/math/BigDecimal;
            areturn
         8: .line 4474
      StackMap locals: int long
      StackMap stack:
            lload 0 /* xs */
            iload 8 /* raise */
            invokestatic java.math.BigDecimal.bigMultiplyPowerTen:(JI)Ljava/math/BigInteger;
            lload 3 /* ys */
            invokevirtual java.math.BigInteger.add:(J)Ljava/math/BigInteger;
            astore 11 /* bigsum */
        start local 11 // java.math.BigInteger bigsum
         9: .line 4475
            lload 0 /* xs */
            lload 3 /* ys */
            lxor
            lconst_0
            lcmp
            iflt 11
        10: .line 4476
            new java.math.BigDecimal
            dup
            aload 11 /* bigsum */
            ldc -9223372036854775808
            iload 5 /* scale2 */
            iconst_0
            invokespecial java.math.BigDecimal.<init>:(Ljava/math/BigInteger;JII)V
            goto 12
        11: .line 4477
      StackMap locals: java.math.BigInteger
      StackMap stack:
            aload 11 /* bigsum */
            iload 5 /* scale2 */
            iconst_0
            invokestatic java.math.BigDecimal.valueOf:(Ljava/math/BigInteger;II)Ljava/math/BigDecimal;
        12: .line 4475
      StackMap locals:
      StackMap stack: java.math.BigDecimal
            areturn
        end local 11 // java.math.BigInteger bigsum
        end local 9 // long scaledX
        end local 8 // int raise
        13: .line 4480
      StackMap locals:
      StackMap stack:
            lload 3 /* ys */
            lload 6 /* sdiff */
            invokestatic java.math.BigDecimal.checkScale:(JJ)I
            istore 8 /* raise */
        start local 8 // int raise
        14: .line 4481
            lload 3 /* ys */
            iload 8 /* raise */
            invokestatic java.math.BigDecimal.longMultiplyPowerTen:(JI)J
            lstore 9 /* scaledY */
        start local 9 // long scaledY
        15: .line 4482
            lload 9 /* scaledY */
            ldc -9223372036854775808
            lcmp
            ifeq 17
        16: .line 4483
            lload 0 /* xs */
            lload 9 /* scaledY */
            iload 2 /* scale1 */
            invokestatic java.math.BigDecimal.add:(JJI)Ljava/math/BigDecimal;
            areturn
        17: .line 4485
      StackMap locals: int long
      StackMap stack:
            lload 3 /* ys */
            iload 8 /* raise */
            invokestatic java.math.BigDecimal.bigMultiplyPowerTen:(JI)Ljava/math/BigInteger;
            lload 0 /* xs */
            invokevirtual java.math.BigInteger.add:(J)Ljava/math/BigInteger;
            astore 11 /* bigsum */
        start local 11 // java.math.BigInteger bigsum
        18: .line 4486
            lload 0 /* xs */
            lload 3 /* ys */
            lxor
            lconst_0
            lcmp
            iflt 20
        19: .line 4487
            new java.math.BigDecimal
            dup
            aload 11 /* bigsum */
            ldc -9223372036854775808
            iload 2 /* scale1 */
            iconst_0
            invokespecial java.math.BigDecimal.<init>:(Ljava/math/BigInteger;JII)V
            goto 21
        20: .line 4488
      StackMap locals: java.math.BigInteger
      StackMap stack:
            aload 11 /* bigsum */
            iload 2 /* scale1 */
            iconst_0
            invokestatic java.math.BigDecimal.valueOf:(Ljava/math/BigInteger;II)Ljava/math/BigDecimal;
        21: .line 4486
      StackMap locals:
      StackMap stack: java.math.BigDecimal
            areturn
        end local 11 // java.math.BigInteger bigsum
        end local 9 // long scaledY
        end local 8 // int raise
        end local 6 // long sdiff
        end local 5 // int scale2
        end local 3 // long ys
        end local 2 // int scale1
        end local 0 // long xs
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0   22     0       xs  J
            0   22     2   scale1  I
            0   22     3       ys  J
            0   22     5   scale2  I
            1   22     6    sdiff  J
            5   13     8    raise  I
            6   13     9  scaledX  J
            9   13    11   bigsum  Ljava/math/BigInteger;
           14   22     8    raise  I
           15   22     9  scaledY  J
           18   22    11   bigsum  Ljava/math/BigInteger;
    MethodParameters:
        Name  Flags
      xs      final
      scale1  
      ys      final
      scale2  

  private static java.math.BigDecimal add(long, int, java.math.BigInteger, int);
    descriptor: (JILjava/math/BigInteger;I)Ljava/math/BigDecimal;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=7, locals=13, args_size=4
        start local 0 // long xs
        start local 2 // int scale1
        start local 3 // java.math.BigInteger snd
        start local 4 // int scale2
         0: .line 4494
            iload 2 /* scale1 */
            istore 5 /* rscale */
        start local 5 // int rscale
         1: .line 4495
            iload 5 /* rscale */
            i2l
            iload 4 /* scale2 */
            i2l
            lsub
            lstore 6 /* sdiff */
        start local 6 // long sdiff
         2: .line 4496
            lload 0 /* xs */
            invokestatic java.lang.Long.signum:(J)I
            aload 3 /* snd */
            getfield java.math.BigInteger.signum:I
            if_icmpne 3
            iconst_1
            goto 4
      StackMap locals: int long
      StackMap stack:
         3: iconst_0
      StackMap locals:
      StackMap stack: int
         4: istore 8 /* sameSigns */
        start local 8 // boolean sameSigns
         5: .line 4498
            lload 6 /* sdiff */
            lconst_0
            lcmp
            ifge 14
         6: .line 4499
            lload 0 /* xs */
            lload 6 /* sdiff */
            lneg
            invokestatic java.math.BigDecimal.checkScale:(JJ)I
            istore 10 /* raise */
        start local 10 // int raise
         7: .line 4500
            iload 4 /* scale2 */
            istore 5 /* rscale */
         8: .line 4501
            lload 0 /* xs */
            iload 10 /* raise */
            invokestatic java.math.BigDecimal.longMultiplyPowerTen:(JI)J
            lstore 11 /* scaledX */
        start local 11 // long scaledX
         9: .line 4502
            lload 11 /* scaledX */
            ldc -9223372036854775808
            lcmp
            ifne 12
        10: .line 4503
            aload 3 /* snd */
            lload 0 /* xs */
            iload 10 /* raise */
            invokestatic java.math.BigDecimal.bigMultiplyPowerTen:(JI)Ljava/math/BigInteger;
            invokevirtual java.math.BigInteger.add:(Ljava/math/BigInteger;)Ljava/math/BigInteger;
            astore 9 /* sum */
        start local 9 // java.math.BigInteger sum
        11: .line 4504
            goto 17
        end local 9 // java.math.BigInteger sum
        12: .line 4505
      StackMap locals: long int java.math.BigInteger int int long int top int long
      StackMap stack:
            aload 3 /* snd */
            lload 11 /* scaledX */
            invokevirtual java.math.BigInteger.add:(J)Ljava/math/BigInteger;
            astore 9 /* sum */
        end local 11 // long scaledX
        end local 10 // int raise
        start local 9 // java.math.BigInteger sum
        13: .line 4507
            goto 17
        end local 9 // java.math.BigInteger sum
        14: .line 4508
      StackMap locals: long int java.math.BigInteger int int long int
      StackMap stack:
            aload 3 /* snd */
            lload 6 /* sdiff */
            invokestatic java.math.BigDecimal.checkScale:(Ljava/math/BigInteger;J)I
            istore 10 /* raise */
        start local 10 // int raise
        15: .line 4509
            aload 3 /* snd */
            iload 10 /* raise */
            invokestatic java.math.BigDecimal.bigMultiplyPowerTen:(Ljava/math/BigInteger;I)Ljava/math/BigInteger;
            astore 3 /* snd */
        16: .line 4510
            aload 3 /* snd */
            lload 0 /* xs */
            invokevirtual java.math.BigInteger.add:(J)Ljava/math/BigInteger;
            astore 9 /* sum */
        end local 10 // int raise
        start local 9 // java.math.BigInteger sum
        17: .line 4512
      StackMap locals: java.math.BigInteger
      StackMap stack:
            iload 8 /* sameSigns */
            ifeq 19
        18: .line 4513
            new java.math.BigDecimal
            dup
            aload 9 /* sum */
            ldc -9223372036854775808
            iload 5 /* rscale */
            iconst_0
            invokespecial java.math.BigDecimal.<init>:(Ljava/math/BigInteger;JII)V
            goto 20
        19: .line 4514
      StackMap locals:
      StackMap stack:
            aload 9 /* sum */
            iload 5 /* rscale */
            iconst_0
            invokestatic java.math.BigDecimal.valueOf:(Ljava/math/BigInteger;II)Ljava/math/BigDecimal;
        20: .line 4512
      StackMap locals:
      StackMap stack: java.math.BigDecimal
            areturn
        end local 9 // java.math.BigInteger sum
        end local 8 // boolean sameSigns
        end local 6 // long sdiff
        end local 5 // int rscale
        end local 4 // int scale2
        end local 3 // java.math.BigInteger snd
        end local 2 // int scale1
        end local 0 // long xs
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0   21     0         xs  J
            0   21     2     scale1  I
            0   21     3        snd  Ljava/math/BigInteger;
            0   21     4     scale2  I
            1   21     5     rscale  I
            2   21     6      sdiff  J
            5   21     8  sameSigns  Z
           11   12     9        sum  Ljava/math/BigInteger;
           13   14     9        sum  Ljava/math/BigInteger;
           17   21     9        sum  Ljava/math/BigInteger;
            7   13    10      raise  I
            9   13    11    scaledX  J
           15   17    10      raise  I
    MethodParameters:
        Name  Flags
      xs      final
      scale1  
      snd     
      scale2  

  private static java.math.BigDecimal add(java.math.BigInteger, int, java.math.BigInteger, int);
    descriptor: (Ljava/math/BigInteger;ILjava/math/BigInteger;I)Ljava/math/BigDecimal;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=7, locals=8, args_size=4
        start local 0 // java.math.BigInteger fst
        start local 1 // int scale1
        start local 2 // java.math.BigInteger snd
        start local 3 // int scale2
         0: .line 4518
            iload 1 /* scale1 */
            istore 4 /* rscale */
        start local 4 // int rscale
         1: .line 4519
            iload 4 /* rscale */
            i2l
            iload 3 /* scale2 */
            i2l
            lsub
            lstore 5 /* sdiff */
        start local 5 // long sdiff
         2: .line 4520
            lload 5 /* sdiff */
            lconst_0
            lcmp
            ifeq 10
         3: .line 4521
            lload 5 /* sdiff */
            lconst_0
            lcmp
            ifge 8
         4: .line 4522
            aload 0 /* fst */
            lload 5 /* sdiff */
            lneg
            invokestatic java.math.BigDecimal.checkScale:(Ljava/math/BigInteger;J)I
            istore 7 /* raise */
        start local 7 // int raise
         5: .line 4523
            iload 3 /* scale2 */
            istore 4 /* rscale */
         6: .line 4524
            aload 0 /* fst */
            iload 7 /* raise */
            invokestatic java.math.BigDecimal.bigMultiplyPowerTen:(Ljava/math/BigInteger;I)Ljava/math/BigInteger;
            astore 0 /* fst */
        end local 7 // int raise
         7: .line 4525
            goto 10
         8: .line 4526
      StackMap locals: int long
      StackMap stack:
            aload 2 /* snd */
            lload 5 /* sdiff */
            invokestatic java.math.BigDecimal.checkScale:(Ljava/math/BigInteger;J)I
            istore 7 /* raise */
        start local 7 // int raise
         9: .line 4527
            aload 2 /* snd */
            iload 7 /* raise */
            invokestatic java.math.BigDecimal.bigMultiplyPowerTen:(Ljava/math/BigInteger;I)Ljava/math/BigInteger;
            astore 2 /* snd */
        end local 7 // int raise
        10: .line 4530
      StackMap locals:
      StackMap stack:
            aload 0 /* fst */
            aload 2 /* snd */
            invokevirtual java.math.BigInteger.add:(Ljava/math/BigInteger;)Ljava/math/BigInteger;
            astore 7 /* sum */
        start local 7 // java.math.BigInteger sum
        11: .line 4531
            aload 0 /* fst */
            getfield java.math.BigInteger.signum:I
            aload 2 /* snd */
            getfield java.math.BigInteger.signum:I
            if_icmpne 13
        12: .line 4532
            new java.math.BigDecimal
            dup
            aload 7 /* sum */
            ldc -9223372036854775808
            iload 4 /* rscale */
            iconst_0
            invokespecial java.math.BigDecimal.<init>:(Ljava/math/BigInteger;JII)V
            goto 14
        13: .line 4533
      StackMap locals: java.math.BigInteger
      StackMap stack:
            aload 7 /* sum */
            iload 4 /* rscale */
            iconst_0
            invokestatic java.math.BigDecimal.valueOf:(Ljava/math/BigInteger;II)Ljava/math/BigDecimal;
        14: .line 4531
      StackMap locals:
      StackMap stack: java.math.BigDecimal
            areturn
        end local 7 // java.math.BigInteger sum
        end local 5 // long sdiff
        end local 4 // int rscale
        end local 3 // int scale2
        end local 2 // java.math.BigInteger snd
        end local 1 // int scale1
        end local 0 // java.math.BigInteger fst
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0   15     0     fst  Ljava/math/BigInteger;
            0   15     1  scale1  I
            0   15     2     snd  Ljava/math/BigInteger;
            0   15     3  scale2  I
            1   15     4  rscale  I
            2   15     5   sdiff  J
            5    7     7   raise  I
            9   10     7   raise  I
           11   15     7     sum  Ljava/math/BigInteger;
    MethodParameters:
        Name  Flags
      fst     
      scale1  
      snd     
      scale2  

  private static java.math.BigInteger bigMultiplyPowerTen(long, int);
    descriptor: (JI)Ljava/math/BigInteger;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=3, locals=3, args_size=2
        start local 0 // long value
        start local 2 // int n
         0: .line 4537
            iload 2 /* n */
            ifgt 2
         1: .line 4538
            lload 0 /* value */
            invokestatic java.math.BigInteger.valueOf:(J)Ljava/math/BigInteger;
            areturn
         2: .line 4539
      StackMap locals:
      StackMap stack:
            iload 2 /* n */
            invokestatic java.math.BigDecimal.bigTenToThe:(I)Ljava/math/BigInteger;
            lload 0 /* value */
            invokevirtual java.math.BigInteger.multiply:(J)Ljava/math/BigInteger;
            areturn
        end local 2 // int n
        end local 0 // long value
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    3     0  value  J
            0    3     2      n  I
    MethodParameters:
       Name  Flags
      value  
      n      

  private static java.math.BigInteger bigMultiplyPowerTen(java.math.BigInteger, int);
    descriptor: (Ljava/math/BigInteger;I)Ljava/math/BigInteger;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=3, locals=2, args_size=2
        start local 0 // java.math.BigInteger value
        start local 1 // int n
         0: .line 4543
            iload 1 /* n */
            ifgt 2
         1: .line 4544
            aload 0 /* value */
            areturn
         2: .line 4545
      StackMap locals:
      StackMap stack:
            iload 1 /* n */
            getstatic java.math.BigDecimal.LONG_TEN_POWERS_TABLE:[J
            arraylength
            if_icmpge 4
         3: .line 4546
            aload 0 /* value */
            getstatic java.math.BigDecimal.LONG_TEN_POWERS_TABLE:[J
            iload 1 /* n */
            laload
            invokevirtual java.math.BigInteger.multiply:(J)Ljava/math/BigInteger;
            areturn
         4: .line 4548
      StackMap locals:
      StackMap stack:
            aload 0 /* value */
            iload 1 /* n */
            invokestatic java.math.BigDecimal.bigTenToThe:(I)Ljava/math/BigInteger;
            invokevirtual java.math.BigInteger.multiply:(Ljava/math/BigInteger;)Ljava/math/BigInteger;
            areturn
        end local 1 // int n
        end local 0 // java.math.BigInteger value
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    5     0  value  Ljava/math/BigInteger;
            0    5     1      n  I
    MethodParameters:
       Name  Flags
      value  
      n      

  private static java.math.BigDecimal divideSmallFastPath(long, int, long, int, long, java.math.MathContext);
    descriptor: (JIJIJLjava/math/MathContext;)Ljava/math/BigDecimal;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=10, locals=22, args_size=6
        start local 0 // long xs
        start local 2 // int xscale
        start local 3 // long ys
        start local 5 // int yscale
        start local 6 // long preferredScale
        start local 8 // java.math.MathContext mc
         0: .line 4561
            aload 8 /* mc */
            getfield java.math.MathContext.precision:I
            istore 9 /* mcp */
        start local 9 // int mcp
         1: .line 4562
            aload 8 /* mc */
            getfield java.math.MathContext.roundingMode:Ljava/math/RoundingMode;
            getfield java.math.RoundingMode.oldMode:I
            istore 10 /* roundingMode */
        start local 10 // int roundingMode
         2: .line 4564
            getstatic java.math.BigDecimal.$assertionsDisabled:Z
            ifne 4
            iload 2 /* xscale */
            iload 5 /* yscale */
            if_icmpgt 3
            iload 5 /* yscale */
            bipush 18
            if_icmpge 3
            iload 9 /* mcp */
            bipush 18
            if_icmplt 4
      StackMap locals: int int
      StackMap stack:
         3: new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
         4: .line 4565
      StackMap locals:
      StackMap stack:
            iload 5 /* yscale */
            iload 2 /* xscale */
            isub
            istore 11 /* xraise */
        start local 11 // int xraise
         5: .line 4566
            iload 11 /* xraise */
            ifne 6
            lload 0 /* xs */
            goto 7
         6: .line 4567
      StackMap locals: int
      StackMap stack:
            lload 0 /* xs */
            iload 11 /* xraise */
            invokestatic java.math.BigDecimal.longMultiplyPowerTen:(JI)J
         7: .line 4566
      StackMap locals:
      StackMap stack: long
            lstore 12 /* scaledX */
        start local 12 // long scaledX
         8: .line 4570
            lload 12 /* scaledX */
            lload 3 /* ys */
            invokestatic java.math.BigDecimal.longCompareMagnitude:(JJ)I
            istore 15 /* cmp */
        start local 15 // int cmp
         9: .line 4571
            iload 15 /* cmp */
            ifle 41
        10: .line 4572
            iinc 5 /* yscale */ -1
        11: .line 4573
            lload 6 /* preferredScale */
            iload 5 /* yscale */
            i2l
            ladd
            iload 2 /* xscale */
            i2l
            lsub
            iload 9 /* mcp */
            i2l
            ladd
            invokestatic java.math.BigDecimal.checkScaleNonZero:(J)I
            istore 16 /* scl */
        start local 16 // int scl
        12: .line 4574
            iload 9 /* mcp */
            i2l
            iload 5 /* yscale */
            i2l
            ladd
            iload 2 /* xscale */
            i2l
            lsub
            invokestatic java.math.BigDecimal.checkScaleNonZero:(J)I
            ifle 27
        13: .line 4576
            iload 9 /* mcp */
            i2l
            iload 5 /* yscale */
            i2l
            ladd
            iload 2 /* xscale */
            i2l
            lsub
            invokestatic java.math.BigDecimal.checkScaleNonZero:(J)I
            istore 17 /* raise */
        start local 17 // int raise
        14: .line 4578
            lload 0 /* xs */
            iload 17 /* raise */
            invokestatic java.math.BigDecimal.longMultiplyPowerTen:(JI)J
            dup2
            lstore 18 /* scaledXs */
        start local 18 // long scaledXs
        15: ldc -9223372036854775808
            lcmp
            ifne 25
        16: .line 4579
            aconst_null
            astore 14 /* quotient */
        start local 14 // java.math.BigDecimal quotient
        17: .line 4580
            iload 9 /* mcp */
            iconst_1
            isub
            iflt 19
            iload 9 /* mcp */
            iconst_1
            isub
            getstatic java.math.BigDecimal.LONG_TEN_POWERS_TABLE:[J
            arraylength
            if_icmpge 19
        18: .line 4581
            getstatic java.math.BigDecimal.LONG_TEN_POWERS_TABLE:[J
            iload 9 /* mcp */
            iconst_1
            isub
            laload
            lload 12 /* scaledX */
            lload 3 /* ys */
            iload 16 /* scl */
            iload 10 /* roundingMode */
            lload 6 /* preferredScale */
            invokestatic java.math.BigDecimal.checkScaleNonZero:(J)I
            invokestatic java.math.BigDecimal.multiplyDivideAndRound:(JJJIII)Ljava/math/BigDecimal;
            astore 14 /* quotient */
        19: .line 4583
      StackMap locals: long int long int long java.math.MathContext int int int long java.math.BigDecimal int int int long
      StackMap stack:
            aload 14 /* quotient */
            ifnonnull 63
        20: .line 4584
            lload 12 /* scaledX */
            iload 9 /* mcp */
            iconst_1
            isub
            invokestatic java.math.BigDecimal.bigMultiplyPowerTen:(JI)Ljava/math/BigInteger;
            astore 20 /* rb */
        start local 20 // java.math.BigInteger rb
        21: .line 4585
            aload 20 /* rb */
            lload 3 /* ys */
        22: .line 4586
            iload 16 /* scl */
            iload 10 /* roundingMode */
            lload 6 /* preferredScale */
            invokestatic java.math.BigDecimal.checkScaleNonZero:(J)I
        23: .line 4585
            invokestatic java.math.BigDecimal.divideAndRound:(Ljava/math/BigInteger;JIII)Ljava/math/BigDecimal;
            astore 14 /* quotient */
        end local 20 // java.math.BigInteger rb
        24: .line 4588
            goto 63
        end local 14 // java.math.BigDecimal quotient
        25: .line 4589
      StackMap locals: long int long int long java.math.MathContext int int int long top int int int long
      StackMap stack:
            lload 18 /* scaledXs */
            lload 3 /* ys */
            iload 16 /* scl */
            iload 10 /* roundingMode */
            lload 6 /* preferredScale */
            invokestatic java.math.BigDecimal.checkScaleNonZero:(J)I
            invokestatic java.math.BigDecimal.divideAndRound:(JJIII)Ljava/math/BigDecimal;
            astore 14 /* quotient */
        end local 18 // long scaledXs
        end local 17 // int raise
        start local 14 // java.math.BigDecimal quotient
        26: .line 4591
            goto 63
        end local 14 // java.math.BigDecimal quotient
        27: .line 4592
      StackMap locals:
      StackMap stack:
            iload 2 /* xscale */
            i2l
            iload 9 /* mcp */
            i2l
            lsub
            invokestatic java.math.BigDecimal.checkScaleNonZero:(J)I
            istore 17 /* newScale */
        start local 17 // int newScale
        28: .line 4594
            iload 17 /* newScale */
            iload 5 /* yscale */
            if_icmpne 31
        29: .line 4595
            lload 0 /* xs */
            lload 3 /* ys */
            iload 16 /* scl */
            iload 10 /* roundingMode */
            lload 6 /* preferredScale */
            invokestatic java.math.BigDecimal.checkScaleNonZero:(J)I
            invokestatic java.math.BigDecimal.divideAndRound:(JJIII)Ljava/math/BigDecimal;
            astore 14 /* quotient */
        start local 14 // java.math.BigDecimal quotient
        30: .line 4596
            goto 63
        end local 14 // java.math.BigDecimal quotient
        31: .line 4597
      StackMap locals: int
      StackMap stack:
            iload 17 /* newScale */
            i2l
            iload 5 /* yscale */
            i2l
            lsub
            invokestatic java.math.BigDecimal.checkScaleNonZero:(J)I
            istore 18 /* raise */
        start local 18 // int raise
        32: .line 4599
            lload 3 /* ys */
            iload 18 /* raise */
            invokestatic java.math.BigDecimal.longMultiplyPowerTen:(JI)J
            dup2
            lstore 19 /* scaledYs */
        start local 19 // long scaledYs
        33: ldc -9223372036854775808
            lcmp
            ifne 39
        34: .line 4600
            lload 3 /* ys */
            iload 18 /* raise */
            invokestatic java.math.BigDecimal.bigMultiplyPowerTen:(JI)Ljava/math/BigInteger;
            astore 21 /* rb */
        start local 21 // java.math.BigInteger rb
        35: .line 4601
            lload 0 /* xs */
            invokestatic java.math.BigInteger.valueOf:(J)Ljava/math/BigInteger;
        36: .line 4602
            aload 21 /* rb */
            iload 16 /* scl */
            iload 10 /* roundingMode */
            lload 6 /* preferredScale */
            invokestatic java.math.BigDecimal.checkScaleNonZero:(J)I
        37: .line 4601
            invokestatic java.math.BigDecimal.divideAndRound:(Ljava/math/BigInteger;Ljava/math/BigInteger;III)Ljava/math/BigDecimal;
            astore 14 /* quotient */
        end local 21 // java.math.BigInteger rb
        start local 14 // java.math.BigDecimal quotient
        38: .line 4603
            goto 63
        end local 14 // java.math.BigDecimal quotient
        39: .line 4604
      StackMap locals: int long
      StackMap stack:
            lload 0 /* xs */
            lload 19 /* scaledYs */
            iload 16 /* scl */
            iload 10 /* roundingMode */
            lload 6 /* preferredScale */
            invokestatic java.math.BigDecimal.checkScaleNonZero:(J)I
            invokestatic java.math.BigDecimal.divideAndRound:(JJIII)Ljava/math/BigDecimal;
            astore 14 /* quotient */
        end local 19 // long scaledYs
        end local 18 // int raise
        end local 17 // int newScale
        end local 16 // int scl
        start local 14 // java.math.BigDecimal quotient
        40: .line 4608
            goto 63
        end local 14 // java.math.BigDecimal quotient
        41: .line 4611
      StackMap locals: long int long int long java.math.MathContext int int int long top int
      StackMap stack:
            lload 6 /* preferredScale */
            iload 5 /* yscale */
            i2l
            ladd
            iload 2 /* xscale */
            i2l
            lsub
            iload 9 /* mcp */
            i2l
            ladd
            invokestatic java.math.BigDecimal.checkScaleNonZero:(J)I
            istore 16 /* scl */
        start local 16 // int scl
        42: .line 4612
            iload 15 /* cmp */
            ifne 51
        43: .line 4614
            lload 12 /* scaledX */
            lconst_0
            lcmp
            ifge 44
            iconst_1
            goto 45
      StackMap locals: int
      StackMap stack:
        44: iconst_0
      StackMap locals:
      StackMap stack: int
        45: lload 3 /* ys */
            lconst_0
            lcmp
            ifge 46
            iconst_1
            goto 47
      StackMap locals:
      StackMap stack: int
        46: iconst_0
      StackMap locals: long int long int long java.math.MathContext int int int long top int int
      StackMap stack: int int
        47: if_icmpne 48
            iconst_1
            goto 49
      StackMap locals:
      StackMap stack:
        48: iconst_m1
      StackMap locals:
      StackMap stack: int
        49: iload 9 /* mcp */
            iload 16 /* scl */
            lload 6 /* preferredScale */
            invokestatic java.math.BigDecimal.checkScaleNonZero:(J)I
            invokestatic java.math.BigDecimal.roundedTenPower:(IIII)Ljava/math/BigDecimal;
            astore 14 /* quotient */
        start local 14 // java.math.BigDecimal quotient
        50: .line 4615
            goto 63
        end local 14 // java.math.BigDecimal quotient
        51: .line 4618
      StackMap locals:
      StackMap stack:
            lload 12 /* scaledX */
            iload 9 /* mcp */
            invokestatic java.math.BigDecimal.longMultiplyPowerTen:(JI)J
            dup2
            lstore 17 /* scaledXs */
        start local 17 // long scaledXs
        52: ldc -9223372036854775808
            lcmp
            ifne 62
        53: .line 4619
            aconst_null
            astore 14 /* quotient */
        start local 14 // java.math.BigDecimal quotient
        54: .line 4620
            iload 9 /* mcp */
            getstatic java.math.BigDecimal.LONG_TEN_POWERS_TABLE:[J
            arraylength
            if_icmpge 56
        55: .line 4621
            getstatic java.math.BigDecimal.LONG_TEN_POWERS_TABLE:[J
            iload 9 /* mcp */
            laload
            lload 12 /* scaledX */
            lload 3 /* ys */
            iload 16 /* scl */
            iload 10 /* roundingMode */
            lload 6 /* preferredScale */
            invokestatic java.math.BigDecimal.checkScaleNonZero:(J)I
            invokestatic java.math.BigDecimal.multiplyDivideAndRound:(JJJIII)Ljava/math/BigDecimal;
            astore 14 /* quotient */
        56: .line 4623
      StackMap locals: long int long int long java.math.MathContext int int int long java.math.BigDecimal int int long
      StackMap stack:
            aload 14 /* quotient */
            ifnonnull 63
        57: .line 4624
            lload 12 /* scaledX */
            iload 9 /* mcp */
            invokestatic java.math.BigDecimal.bigMultiplyPowerTen:(JI)Ljava/math/BigInteger;
            astore 19 /* rb */
        start local 19 // java.math.BigInteger rb
        58: .line 4625
            aload 19 /* rb */
            lload 3 /* ys */
        59: .line 4626
            iload 16 /* scl */
            iload 10 /* roundingMode */
            lload 6 /* preferredScale */
            invokestatic java.math.BigDecimal.checkScaleNonZero:(J)I
        60: .line 4625
            invokestatic java.math.BigDecimal.divideAndRound:(Ljava/math/BigInteger;JIII)Ljava/math/BigDecimal;
            astore 14 /* quotient */
        end local 19 // java.math.BigInteger rb
        61: .line 4628
            goto 63
        end local 14 // java.math.BigDecimal quotient
        62: .line 4629
      StackMap locals: long int long int long java.math.MathContext int int int long top int int long
      StackMap stack:
            lload 17 /* scaledXs */
            lload 3 /* ys */
            iload 16 /* scl */
            iload 10 /* roundingMode */
            lload 6 /* preferredScale */
            invokestatic java.math.BigDecimal.checkScaleNonZero:(J)I
            invokestatic java.math.BigDecimal.divideAndRound:(JJIII)Ljava/math/BigDecimal;
            astore 14 /* quotient */
        end local 17 // long scaledXs
        end local 16 // int scl
        start local 14 // java.math.BigDecimal quotient
        63: .line 4634
      StackMap locals: long int long int long java.math.MathContext int int int long java.math.BigDecimal int
      StackMap stack:
            aload 14 /* quotient */
            aload 8 /* mc */
            invokestatic java.math.BigDecimal.doRound:(Ljava/math/BigDecimal;Ljava/math/MathContext;)Ljava/math/BigDecimal;
            areturn
        end local 15 // int cmp
        end local 14 // java.math.BigDecimal quotient
        end local 12 // long scaledX
        end local 11 // int xraise
        end local 10 // int roundingMode
        end local 9 // int mcp
        end local 8 // java.math.MathContext mc
        end local 6 // long preferredScale
        end local 5 // int yscale
        end local 3 // long ys
        end local 2 // int xscale
        end local 0 // long xs
      LocalVariableTable:
        Start  End  Slot            Name  Signature
            0   64     0              xs  J
            0   64     2          xscale  I
            0   64     3              ys  J
            0   64     5          yscale  I
            0   64     6  preferredScale  J
            0   64     8              mc  Ljava/math/MathContext;
            1   64     9             mcp  I
            2   64    10    roundingMode  I
            5   64    11          xraise  I
            8   64    12         scaledX  J
           17   25    14        quotient  Ljava/math/BigDecimal;
           26   27    14        quotient  Ljava/math/BigDecimal;
           30   31    14        quotient  Ljava/math/BigDecimal;
           38   39    14        quotient  Ljava/math/BigDecimal;
           40   41    14        quotient  Ljava/math/BigDecimal;
           50   51    14        quotient  Ljava/math/BigDecimal;
           54   62    14        quotient  Ljava/math/BigDecimal;
           63   64    14        quotient  Ljava/math/BigDecimal;
            9   64    15             cmp  I
           12   40    16             scl  I
           14   26    17           raise  I
           15   26    18        scaledXs  J
           21   24    20              rb  Ljava/math/BigInteger;
           28   40    17        newScale  I
           32   40    18           raise  I
           33   40    19        scaledYs  J
           35   38    21              rb  Ljava/math/BigInteger;
           42   63    16             scl  I
           52   63    17        scaledXs  J
           58   61    19              rb  Ljava/math/BigInteger;
    MethodParameters:
                Name  Flags
      xs              final
      xscale          
      ys              final
      yscale          
      preferredScale  
      mc              

  private static java.math.BigDecimal divide(long, int, long, int, long, java.math.MathContext);
    descriptor: (JIJIJLjava/math/MathContext;)Ljava/math/BigDecimal;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=9, locals=18, args_size=6
        start local 0 // long xs
        start local 2 // int xscale
        start local 3 // long ys
        start local 5 // int yscale
        start local 6 // long preferredScale
        start local 8 // java.math.MathContext mc
         0: .line 4642
            aload 8 /* mc */
            getfield java.math.MathContext.precision:I
            istore 9 /* mcp */
        start local 9 // int mcp
         1: .line 4643
            iload 2 /* xscale */
            iload 5 /* yscale */
            if_icmpgt 3
            iload 5 /* yscale */
            bipush 18
            if_icmpge 3
            iload 9 /* mcp */
            bipush 18
            if_icmpge 3
         2: .line 4644
            lload 0 /* xs */
            iload 2 /* xscale */
            lload 3 /* ys */
            iload 5 /* yscale */
            lload 6 /* preferredScale */
            aload 8 /* mc */
            invokestatic java.math.BigDecimal.divideSmallFastPath:(JIJIJLjava/math/MathContext;)Ljava/math/BigDecimal;
            areturn
         3: .line 4646
      StackMap locals: int
      StackMap stack:
            lload 0 /* xs */
            iload 2 /* xscale */
            lload 3 /* ys */
            iload 5 /* yscale */
            invokestatic java.math.BigDecimal.compareMagnitudeNormalized:(JIJI)I
            ifle 5
         4: .line 4647
            iinc 5 /* yscale */ -1
         5: .line 4649
      StackMap locals:
      StackMap stack:
            aload 8 /* mc */
            getfield java.math.MathContext.roundingMode:Ljava/math/RoundingMode;
            getfield java.math.RoundingMode.oldMode:I
            istore 10 /* roundingMode */
        start local 10 // int roundingMode
         6: .line 4653
            lload 6 /* preferredScale */
            iload 5 /* yscale */
            i2l
            ladd
            iload 2 /* xscale */
            i2l
            lsub
            iload 9 /* mcp */
            i2l
            ladd
            invokestatic java.math.BigDecimal.checkScaleNonZero:(J)I
            istore 11 /* scl */
        start local 11 // int scl
         7: .line 4655
            iload 9 /* mcp */
            i2l
            iload 5 /* yscale */
            i2l
            ladd
            iload 2 /* xscale */
            i2l
            lsub
            invokestatic java.math.BigDecimal.checkScaleNonZero:(J)I
            ifle 16
         8: .line 4656
            iload 9 /* mcp */
            i2l
            iload 5 /* yscale */
            i2l
            ladd
            iload 2 /* xscale */
            i2l
            lsub
            invokestatic java.math.BigDecimal.checkScaleNonZero:(J)I
            istore 13 /* raise */
        start local 13 // int raise
         9: .line 4658
            lload 0 /* xs */
            iload 13 /* raise */
            invokestatic java.math.BigDecimal.longMultiplyPowerTen:(JI)J
            dup2
            lstore 14 /* scaledXs */
        start local 14 // long scaledXs
        10: ldc -9223372036854775808
            lcmp
            ifne 14
        11: .line 4659
            lload 0 /* xs */
            iload 13 /* raise */
            invokestatic java.math.BigDecimal.bigMultiplyPowerTen:(JI)Ljava/math/BigInteger;
            astore 16 /* rb */
        start local 16 // java.math.BigInteger rb
        12: .line 4660
            aload 16 /* rb */
            lload 3 /* ys */
            iload 11 /* scl */
            iload 10 /* roundingMode */
            lload 6 /* preferredScale */
            invokestatic java.math.BigDecimal.checkScaleNonZero:(J)I
            invokestatic java.math.BigDecimal.divideAndRound:(Ljava/math/BigInteger;JIII)Ljava/math/BigDecimal;
            astore 12 /* quotient */
        end local 16 // java.math.BigInteger rb
        start local 12 // java.math.BigDecimal quotient
        13: .line 4661
            goto 29
        end local 12 // java.math.BigDecimal quotient
        14: .line 4662
      StackMap locals: long int long int long java.math.MathContext int int int top int long
      StackMap stack:
            lload 14 /* scaledXs */
            lload 3 /* ys */
            iload 11 /* scl */
            iload 10 /* roundingMode */
            lload 6 /* preferredScale */
            invokestatic java.math.BigDecimal.checkScaleNonZero:(J)I
            invokestatic java.math.BigDecimal.divideAndRound:(JJIII)Ljava/math/BigDecimal;
            astore 12 /* quotient */
        end local 14 // long scaledXs
        end local 13 // int raise
        start local 12 // java.math.BigDecimal quotient
        15: .line 4664
            goto 29
        end local 12 // java.math.BigDecimal quotient
        16: .line 4665
      StackMap locals: long int long int long java.math.MathContext int int int
      StackMap stack:
            iload 2 /* xscale */
            i2l
            iload 9 /* mcp */
            i2l
            lsub
            invokestatic java.math.BigDecimal.checkScaleNonZero:(J)I
            istore 13 /* newScale */
        start local 13 // int newScale
        17: .line 4667
            iload 13 /* newScale */
            iload 5 /* yscale */
            if_icmpne 20
        18: .line 4668
            lload 0 /* xs */
            lload 3 /* ys */
            iload 11 /* scl */
            iload 10 /* roundingMode */
            lload 6 /* preferredScale */
            invokestatic java.math.BigDecimal.checkScaleNonZero:(J)I
            invokestatic java.math.BigDecimal.divideAndRound:(JJIII)Ljava/math/BigDecimal;
            astore 12 /* quotient */
        start local 12 // java.math.BigDecimal quotient
        19: .line 4669
            goto 29
        end local 12 // java.math.BigDecimal quotient
        20: .line 4670
      StackMap locals: long int long int long java.math.MathContext int int int top int
      StackMap stack:
            iload 13 /* newScale */
            i2l
            iload 5 /* yscale */
            i2l
            lsub
            invokestatic java.math.BigDecimal.checkScaleNonZero:(J)I
            istore 14 /* raise */
        start local 14 // int raise
        21: .line 4672
            lload 3 /* ys */
            iload 14 /* raise */
            invokestatic java.math.BigDecimal.longMultiplyPowerTen:(JI)J
            dup2
            lstore 15 /* scaledYs */
        start local 15 // long scaledYs
        22: ldc -9223372036854775808
            lcmp
            ifne 28
        23: .line 4673
            lload 3 /* ys */
            iload 14 /* raise */
            invokestatic java.math.BigDecimal.bigMultiplyPowerTen:(JI)Ljava/math/BigInteger;
            astore 17 /* rb */
        start local 17 // java.math.BigInteger rb
        24: .line 4674
            lload 0 /* xs */
            invokestatic java.math.BigInteger.valueOf:(J)Ljava/math/BigInteger;
        25: .line 4675
            aload 17 /* rb */
            iload 11 /* scl */
            iload 10 /* roundingMode */
            lload 6 /* preferredScale */
            invokestatic java.math.BigDecimal.checkScaleNonZero:(J)I
        26: .line 4674
            invokestatic java.math.BigDecimal.divideAndRound:(Ljava/math/BigInteger;Ljava/math/BigInteger;III)Ljava/math/BigDecimal;
            astore 12 /* quotient */
        end local 17 // java.math.BigInteger rb
        start local 12 // java.math.BigDecimal quotient
        27: .line 4676
            goto 29
        end local 12 // java.math.BigDecimal quotient
        28: .line 4677
      StackMap locals: int long
      StackMap stack:
            lload 0 /* xs */
            lload 15 /* scaledYs */
            iload 11 /* scl */
            iload 10 /* roundingMode */
            lload 6 /* preferredScale */
            invokestatic java.math.BigDecimal.checkScaleNonZero:(J)I
            invokestatic java.math.BigDecimal.divideAndRound:(JJIII)Ljava/math/BigDecimal;
            astore 12 /* quotient */
        end local 15 // long scaledYs
        end local 14 // int raise
        end local 13 // int newScale
        start local 12 // java.math.BigDecimal quotient
        29: .line 4682
      StackMap locals: long int long int long java.math.MathContext int int int java.math.BigDecimal
      StackMap stack:
            aload 12 /* quotient */
            aload 8 /* mc */
            invokestatic java.math.BigDecimal.doRound:(Ljava/math/BigDecimal;Ljava/math/MathContext;)Ljava/math/BigDecimal;
            areturn
        end local 12 // java.math.BigDecimal quotient
        end local 11 // int scl
        end local 10 // int roundingMode
        end local 9 // int mcp
        end local 8 // java.math.MathContext mc
        end local 6 // long preferredScale
        end local 5 // int yscale
        end local 3 // long ys
        end local 2 // int xscale
        end local 0 // long xs
      LocalVariableTable:
        Start  End  Slot            Name  Signature
            0   30     0              xs  J
            0   30     2          xscale  I
            0   30     3              ys  J
            0   30     5          yscale  I
            0   30     6  preferredScale  J
            0   30     8              mc  Ljava/math/MathContext;
            1   30     9             mcp  I
            6   30    10    roundingMode  I
            7   30    11             scl  I
           13   14    12        quotient  Ljava/math/BigDecimal;
           15   16    12        quotient  Ljava/math/BigDecimal;
           19   20    12        quotient  Ljava/math/BigDecimal;
           27   28    12        quotient  Ljava/math/BigDecimal;
           29   30    12        quotient  Ljava/math/BigDecimal;
            9   15    13           raise  I
           10   15    14        scaledXs  J
           12   13    16              rb  Ljava/math/BigInteger;
           17   29    13        newScale  I
           21   29    14           raise  I
           22   29    15        scaledYs  J
           24   27    17              rb  Ljava/math/BigInteger;
    MethodParameters:
                Name  Flags
      xs              final
      xscale          
      ys              final
      yscale          
      preferredScale  
      mc              

  private static java.math.BigDecimal divide(java.math.BigInteger, int, long, int, long, java.math.MathContext);
    descriptor: (Ljava/math/BigInteger;IJIJLjava/math/MathContext;)Ljava/math/BigDecimal;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=7, locals=17, args_size=6
        start local 0 // java.math.BigInteger xs
        start local 1 // int xscale
        start local 2 // long ys
        start local 4 // int yscale
        start local 5 // long preferredScale
        start local 7 // java.math.MathContext mc
         0: .line 4691
            lload 2 /* ys */
            iload 4 /* yscale */
            aload 0 /* xs */
            iload 1 /* xscale */
            invokestatic java.math.BigDecimal.compareMagnitudeNormalized:(JILjava/math/BigInteger;I)I
            ineg
            ifle 2
         1: .line 4692
            iinc 4 /* yscale */ -1
         2: .line 4694
      StackMap locals:
      StackMap stack:
            aload 7 /* mc */
            getfield java.math.MathContext.precision:I
            istore 8 /* mcp */
        start local 8 // int mcp
         3: .line 4695
            aload 7 /* mc */
            getfield java.math.MathContext.roundingMode:Ljava/math/RoundingMode;
            getfield java.math.RoundingMode.oldMode:I
            istore 9 /* roundingMode */
        start local 9 // int roundingMode
         4: .line 4701
            lload 5 /* preferredScale */
            iload 4 /* yscale */
            i2l
            ladd
            iload 1 /* xscale */
            i2l
            lsub
            iload 8 /* mcp */
            i2l
            ladd
            invokestatic java.math.BigDecimal.checkScaleNonZero:(J)I
            istore 11 /* scl */
        start local 11 // int scl
         5: .line 4702
            iload 8 /* mcp */
            i2l
            iload 4 /* yscale */
            i2l
            ladd
            iload 1 /* xscale */
            i2l
            lsub
            invokestatic java.math.BigDecimal.checkScaleNonZero:(J)I
            ifle 10
         6: .line 4703
            iload 8 /* mcp */
            i2l
            iload 4 /* yscale */
            i2l
            ladd
            iload 1 /* xscale */
            i2l
            lsub
            invokestatic java.math.BigDecimal.checkScaleNonZero:(J)I
            istore 12 /* raise */
        start local 12 // int raise
         7: .line 4704
            aload 0 /* xs */
            iload 12 /* raise */
            invokestatic java.math.BigDecimal.bigMultiplyPowerTen:(Ljava/math/BigInteger;I)Ljava/math/BigInteger;
            astore 13 /* rb */
        start local 13 // java.math.BigInteger rb
         8: .line 4705
            aload 13 /* rb */
            lload 2 /* ys */
            iload 11 /* scl */
            iload 9 /* roundingMode */
            lload 5 /* preferredScale */
            invokestatic java.math.BigDecimal.checkScaleNonZero:(J)I
            invokestatic java.math.BigDecimal.divideAndRound:(Ljava/math/BigInteger;JIII)Ljava/math/BigDecimal;
            astore 10 /* quotient */
        end local 13 // java.math.BigInteger rb
        end local 12 // int raise
        start local 10 // java.math.BigDecimal quotient
         9: .line 4706
            goto 21
        end local 10 // java.math.BigDecimal quotient
        10: .line 4707
      StackMap locals: java.math.BigInteger int long int long java.math.MathContext int int top int
      StackMap stack:
            iload 1 /* xscale */
            i2l
            iload 8 /* mcp */
            i2l
            lsub
            invokestatic java.math.BigDecimal.checkScaleNonZero:(J)I
            istore 12 /* newScale */
        start local 12 // int newScale
        11: .line 4709
            iload 12 /* newScale */
            iload 4 /* yscale */
            if_icmpne 14
        12: .line 4710
            aload 0 /* xs */
            lload 2 /* ys */
            iload 11 /* scl */
            iload 9 /* roundingMode */
            lload 5 /* preferredScale */
            invokestatic java.math.BigDecimal.checkScaleNonZero:(J)I
            invokestatic java.math.BigDecimal.divideAndRound:(Ljava/math/BigInteger;JIII)Ljava/math/BigDecimal;
            astore 10 /* quotient */
        start local 10 // java.math.BigDecimal quotient
        13: .line 4711
            goto 21
        end local 10 // java.math.BigDecimal quotient
        14: .line 4712
      StackMap locals: int
      StackMap stack:
            iload 12 /* newScale */
            i2l
            iload 4 /* yscale */
            i2l
            lsub
            invokestatic java.math.BigDecimal.checkScaleNonZero:(J)I
            istore 13 /* raise */
        start local 13 // int raise
        15: .line 4714
            lload 2 /* ys */
            iload 13 /* raise */
            invokestatic java.math.BigDecimal.longMultiplyPowerTen:(JI)J
            dup2
            lstore 14 /* scaledYs */
        start local 14 // long scaledYs
        16: ldc -9223372036854775808
            lcmp
            ifne 20
        17: .line 4715
            lload 2 /* ys */
            iload 13 /* raise */
            invokestatic java.math.BigDecimal.bigMultiplyPowerTen:(JI)Ljava/math/BigInteger;
            astore 16 /* rb */
        start local 16 // java.math.BigInteger rb
        18: .line 4716
            aload 0 /* xs */
            aload 16 /* rb */
            iload 11 /* scl */
            iload 9 /* roundingMode */
            lload 5 /* preferredScale */
            invokestatic java.math.BigDecimal.checkScaleNonZero:(J)I
            invokestatic java.math.BigDecimal.divideAndRound:(Ljava/math/BigInteger;Ljava/math/BigInteger;III)Ljava/math/BigDecimal;
            astore 10 /* quotient */
        end local 16 // java.math.BigInteger rb
        start local 10 // java.math.BigDecimal quotient
        19: .line 4717
            goto 21
        end local 10 // java.math.BigDecimal quotient
        20: .line 4718
      StackMap locals: int long
      StackMap stack:
            aload 0 /* xs */
            lload 14 /* scaledYs */
            iload 11 /* scl */
            iload 9 /* roundingMode */
            lload 5 /* preferredScale */
            invokestatic java.math.BigDecimal.checkScaleNonZero:(J)I
            invokestatic java.math.BigDecimal.divideAndRound:(Ljava/math/BigInteger;JIII)Ljava/math/BigDecimal;
            astore 10 /* quotient */
        end local 14 // long scaledYs
        end local 13 // int raise
        end local 12 // int newScale
        start local 10 // java.math.BigDecimal quotient
        21: .line 4723
      StackMap locals: java.math.BigInteger int long int long java.math.MathContext int int java.math.BigDecimal int
      StackMap stack:
            aload 10 /* quotient */
            aload 7 /* mc */
            invokestatic java.math.BigDecimal.doRound:(Ljava/math/BigDecimal;Ljava/math/MathContext;)Ljava/math/BigDecimal;
            areturn
        end local 11 // int scl
        end local 10 // java.math.BigDecimal quotient
        end local 9 // int roundingMode
        end local 8 // int mcp
        end local 7 // java.math.MathContext mc
        end local 5 // long preferredScale
        end local 4 // int yscale
        end local 2 // long ys
        end local 1 // int xscale
        end local 0 // java.math.BigInteger xs
      LocalVariableTable:
        Start  End  Slot            Name  Signature
            0   22     0              xs  Ljava/math/BigInteger;
            0   22     1          xscale  I
            0   22     2              ys  J
            0   22     4          yscale  I
            0   22     5  preferredScale  J
            0   22     7              mc  Ljava/math/MathContext;
            3   22     8             mcp  I
            4   22     9    roundingMode  I
            9   10    10        quotient  Ljava/math/BigDecimal;
           13   14    10        quotient  Ljava/math/BigDecimal;
           19   20    10        quotient  Ljava/math/BigDecimal;
           21   22    10        quotient  Ljava/math/BigDecimal;
            5   22    11             scl  I
            7    9    12           raise  I
            8    9    13              rb  Ljava/math/BigInteger;
           11   21    12        newScale  I
           15   21    13           raise  I
           16   21    14        scaledYs  J
           18   19    16              rb  Ljava/math/BigInteger;
    MethodParameters:
                Name  Flags
      xs              
      xscale          
      ys              
      yscale          
      preferredScale  
      mc              

  private static java.math.BigDecimal divide(long, int, java.math.BigInteger, int, long, java.math.MathContext);
    descriptor: (JILjava/math/BigInteger;IJLjava/math/MathContext;)Ljava/math/BigDecimal;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=6, locals=15, args_size=6
        start local 0 // long xs
        start local 2 // int xscale
        start local 3 // java.math.BigInteger ys
        start local 4 // int yscale
        start local 5 // long preferredScale
        start local 7 // java.math.MathContext mc
         0: .line 4732
            lload 0 /* xs */
            iload 2 /* xscale */
            aload 3 /* ys */
            iload 4 /* yscale */
            invokestatic java.math.BigDecimal.compareMagnitudeNormalized:(JILjava/math/BigInteger;I)I
            ifle 2
         1: .line 4733
            iinc 4 /* yscale */ -1
         2: .line 4735
      StackMap locals:
      StackMap stack:
            aload 7 /* mc */
            getfield java.math.MathContext.precision:I
            istore 8 /* mcp */
        start local 8 // int mcp
         3: .line 4736
            aload 7 /* mc */
            getfield java.math.MathContext.roundingMode:Ljava/math/RoundingMode;
            getfield java.math.RoundingMode.oldMode:I
            istore 9 /* roundingMode */
        start local 9 // int roundingMode
         4: .line 4742
            lload 5 /* preferredScale */
            iload 4 /* yscale */
            i2l
            ladd
            iload 2 /* xscale */
            i2l
            lsub
            iload 8 /* mcp */
            i2l
            ladd
            invokestatic java.math.BigDecimal.checkScaleNonZero:(J)I
            istore 11 /* scl */
        start local 11 // int scl
         5: .line 4743
            iload 8 /* mcp */
            i2l
            iload 4 /* yscale */
            i2l
            ladd
            iload 2 /* xscale */
            i2l
            lsub
            invokestatic java.math.BigDecimal.checkScaleNonZero:(J)I
            ifle 10
         6: .line 4744
            iload 8 /* mcp */
            i2l
            iload 4 /* yscale */
            i2l
            ladd
            iload 2 /* xscale */
            i2l
            lsub
            invokestatic java.math.BigDecimal.checkScaleNonZero:(J)I
            istore 12 /* raise */
        start local 12 // int raise
         7: .line 4745
            lload 0 /* xs */
            iload 12 /* raise */
            invokestatic java.math.BigDecimal.bigMultiplyPowerTen:(JI)Ljava/math/BigInteger;
            astore 13 /* rb */
        start local 13 // java.math.BigInteger rb
         8: .line 4746
            aload 13 /* rb */
            aload 3 /* ys */
            iload 11 /* scl */
            iload 9 /* roundingMode */
            lload 5 /* preferredScale */
            invokestatic java.math.BigDecimal.checkScaleNonZero:(J)I
            invokestatic java.math.BigDecimal.divideAndRound:(Ljava/math/BigInteger;Ljava/math/BigInteger;III)Ljava/math/BigDecimal;
            astore 10 /* quotient */
        end local 13 // java.math.BigInteger rb
        end local 12 // int raise
        start local 10 // java.math.BigDecimal quotient
         9: .line 4747
            goto 14
        end local 10 // java.math.BigDecimal quotient
        10: .line 4748
      StackMap locals: long int java.math.BigInteger int long java.math.MathContext int int top int
      StackMap stack:
            iload 2 /* xscale */
            i2l
            iload 8 /* mcp */
            i2l
            lsub
            invokestatic java.math.BigDecimal.checkScaleNonZero:(J)I
            istore 12 /* newScale */
        start local 12 // int newScale
        11: .line 4749
            iload 12 /* newScale */
            i2l
            iload 4 /* yscale */
            i2l
            lsub
            invokestatic java.math.BigDecimal.checkScaleNonZero:(J)I
            istore 13 /* raise */
        start local 13 // int raise
        12: .line 4750
            aload 3 /* ys */
            iload 13 /* raise */
            invokestatic java.math.BigDecimal.bigMultiplyPowerTen:(Ljava/math/BigInteger;I)Ljava/math/BigInteger;
            astore 14 /* rb */
        start local 14 // java.math.BigInteger rb
        13: .line 4751
            lload 0 /* xs */
            invokestatic java.math.BigInteger.valueOf:(J)Ljava/math/BigInteger;
            aload 14 /* rb */
            iload 11 /* scl */
            iload 9 /* roundingMode */
            lload 5 /* preferredScale */
            invokestatic java.math.BigDecimal.checkScaleNonZero:(J)I
            invokestatic java.math.BigDecimal.divideAndRound:(Ljava/math/BigInteger;Ljava/math/BigInteger;III)Ljava/math/BigDecimal;
            astore 10 /* quotient */
        end local 14 // java.math.BigInteger rb
        end local 13 // int raise
        end local 12 // int newScale
        start local 10 // java.math.BigDecimal quotient
        14: .line 4754
      StackMap locals: long int java.math.BigInteger int long java.math.MathContext int int java.math.BigDecimal int
      StackMap stack:
            aload 10 /* quotient */
            aload 7 /* mc */
            invokestatic java.math.BigDecimal.doRound:(Ljava/math/BigDecimal;Ljava/math/MathContext;)Ljava/math/BigDecimal;
            areturn
        end local 11 // int scl
        end local 10 // java.math.BigDecimal quotient
        end local 9 // int roundingMode
        end local 8 // int mcp
        end local 7 // java.math.MathContext mc
        end local 5 // long preferredScale
        end local 4 // int yscale
        end local 3 // java.math.BigInteger ys
        end local 2 // int xscale
        end local 0 // long xs
      LocalVariableTable:
        Start  End  Slot            Name  Signature
            0   15     0              xs  J
            0   15     2          xscale  I
            0   15     3              ys  Ljava/math/BigInteger;
            0   15     4          yscale  I
            0   15     5  preferredScale  J
            0   15     7              mc  Ljava/math/MathContext;
            3   15     8             mcp  I
            4   15     9    roundingMode  I
            9   10    10        quotient  Ljava/math/BigDecimal;
           14   15    10        quotient  Ljava/math/BigDecimal;
            5   15    11             scl  I
            7    9    12           raise  I
            8    9    13              rb  Ljava/math/BigInteger;
           11   14    12        newScale  I
           12   14    13           raise  I
           13   14    14              rb  Ljava/math/BigInteger;
    MethodParameters:
                Name  Flags
      xs              
      xscale          
      ys              
      yscale          
      preferredScale  
      mc              

  private static java.math.BigDecimal divide(java.math.BigInteger, int, java.math.BigInteger, int, long, java.math.MathContext);
    descriptor: (Ljava/math/BigInteger;ILjava/math/BigInteger;IJLjava/math/MathContext;)Ljava/math/BigDecimal;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=6, locals=14, args_size=6
        start local 0 // java.math.BigInteger xs
        start local 1 // int xscale
        start local 2 // java.math.BigInteger ys
        start local 3 // int yscale
        start local 4 // long preferredScale
        start local 6 // java.math.MathContext mc
         0: .line 4763
            aload 0 /* xs */
            iload 1 /* xscale */
            aload 2 /* ys */
            iload 3 /* yscale */
            invokestatic java.math.BigDecimal.compareMagnitudeNormalized:(Ljava/math/BigInteger;ILjava/math/BigInteger;I)I
            ifle 2
         1: .line 4764
            iinc 3 /* yscale */ -1
         2: .line 4766
      StackMap locals:
      StackMap stack:
            aload 6 /* mc */
            getfield java.math.MathContext.precision:I
            istore 7 /* mcp */
        start local 7 // int mcp
         3: .line 4767
            aload 6 /* mc */
            getfield java.math.MathContext.roundingMode:Ljava/math/RoundingMode;
            getfield java.math.RoundingMode.oldMode:I
            istore 8 /* roundingMode */
        start local 8 // int roundingMode
         4: .line 4773
            lload 4 /* preferredScale */
            iload 3 /* yscale */
            i2l
            ladd
            iload 1 /* xscale */
            i2l
            lsub
            iload 7 /* mcp */
            i2l
            ladd
            invokestatic java.math.BigDecimal.checkScaleNonZero:(J)I
            istore 10 /* scl */
        start local 10 // int scl
         5: .line 4774
            iload 7 /* mcp */
            i2l
            iload 3 /* yscale */
            i2l
            ladd
            iload 1 /* xscale */
            i2l
            lsub
            invokestatic java.math.BigDecimal.checkScaleNonZero:(J)I
            ifle 10
         6: .line 4775
            iload 7 /* mcp */
            i2l
            iload 3 /* yscale */
            i2l
            ladd
            iload 1 /* xscale */
            i2l
            lsub
            invokestatic java.math.BigDecimal.checkScaleNonZero:(J)I
            istore 11 /* raise */
        start local 11 // int raise
         7: .line 4776
            aload 0 /* xs */
            iload 11 /* raise */
            invokestatic java.math.BigDecimal.bigMultiplyPowerTen:(Ljava/math/BigInteger;I)Ljava/math/BigInteger;
            astore 12 /* rb */
        start local 12 // java.math.BigInteger rb
         8: .line 4777
            aload 12 /* rb */
            aload 2 /* ys */
            iload 10 /* scl */
            iload 8 /* roundingMode */
            lload 4 /* preferredScale */
            invokestatic java.math.BigDecimal.checkScaleNonZero:(J)I
            invokestatic java.math.BigDecimal.divideAndRound:(Ljava/math/BigInteger;Ljava/math/BigInteger;III)Ljava/math/BigDecimal;
            astore 9 /* quotient */
        end local 12 // java.math.BigInteger rb
        end local 11 // int raise
        start local 9 // java.math.BigDecimal quotient
         9: .line 4778
            goto 14
        end local 9 // java.math.BigDecimal quotient
        10: .line 4779
      StackMap locals: java.math.BigInteger int java.math.BigInteger int long java.math.MathContext int int top int
      StackMap stack:
            iload 1 /* xscale */
            i2l
            iload 7 /* mcp */
            i2l
            lsub
            invokestatic java.math.BigDecimal.checkScaleNonZero:(J)I
            istore 11 /* newScale */
        start local 11 // int newScale
        11: .line 4780
            iload 11 /* newScale */
            i2l
            iload 3 /* yscale */
            i2l
            lsub
            invokestatic java.math.BigDecimal.checkScaleNonZero:(J)I
            istore 12 /* raise */
        start local 12 // int raise
        12: .line 4781
            aload 2 /* ys */
            iload 12 /* raise */
            invokestatic java.math.BigDecimal.bigMultiplyPowerTen:(Ljava/math/BigInteger;I)Ljava/math/BigInteger;
            astore 13 /* rb */
        start local 13 // java.math.BigInteger rb
        13: .line 4782
            aload 0 /* xs */
            aload 13 /* rb */
            iload 10 /* scl */
            iload 8 /* roundingMode */
            lload 4 /* preferredScale */
            invokestatic java.math.BigDecimal.checkScaleNonZero:(J)I
            invokestatic java.math.BigDecimal.divideAndRound:(Ljava/math/BigInteger;Ljava/math/BigInteger;III)Ljava/math/BigDecimal;
            astore 9 /* quotient */
        end local 13 // java.math.BigInteger rb
        end local 12 // int raise
        end local 11 // int newScale
        start local 9 // java.math.BigDecimal quotient
        14: .line 4785
      StackMap locals: java.math.BigInteger int java.math.BigInteger int long java.math.MathContext int int java.math.BigDecimal int
      StackMap stack:
            aload 9 /* quotient */
            aload 6 /* mc */
            invokestatic java.math.BigDecimal.doRound:(Ljava/math/BigDecimal;Ljava/math/MathContext;)Ljava/math/BigDecimal;
            areturn
        end local 10 // int scl
        end local 9 // java.math.BigDecimal quotient
        end local 8 // int roundingMode
        end local 7 // int mcp
        end local 6 // java.math.MathContext mc
        end local 4 // long preferredScale
        end local 3 // int yscale
        end local 2 // java.math.BigInteger ys
        end local 1 // int xscale
        end local 0 // java.math.BigInteger xs
      LocalVariableTable:
        Start  End  Slot            Name  Signature
            0   15     0              xs  Ljava/math/BigInteger;
            0   15     1          xscale  I
            0   15     2              ys  Ljava/math/BigInteger;
            0   15     3          yscale  I
            0   15     4  preferredScale  J
            0   15     6              mc  Ljava/math/MathContext;
            3   15     7             mcp  I
            4   15     8    roundingMode  I
            9   10     9        quotient  Ljava/math/BigDecimal;
           14   15     9        quotient  Ljava/math/BigDecimal;
            5   15    10             scl  I
            7    9    11           raise  I
            8    9    12              rb  Ljava/math/BigInteger;
           11   14    11        newScale  I
           12   14    12           raise  I
           13   14    13              rb  Ljava/math/BigInteger;
    MethodParameters:
                Name  Flags
      xs              
      xscale          
      ys              
      yscale          
      preferredScale  
      mc              

  private static java.math.BigDecimal multiplyDivideAndRound(long, long, long, int, int, int);
    descriptor: (JJJIII)Ljava/math/BigDecimal;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=10, locals=32, args_size=6
        start local 0 // long dividend0
        start local 2 // long dividend1
        start local 4 // long divisor
        start local 6 // int scale
        start local 7 // int roundingMode
        start local 8 // int preferredScale
         0: .line 4794
            lload 0 /* dividend0 */
            invokestatic java.lang.Long.signum:(J)I
            lload 2 /* dividend1 */
            invokestatic java.lang.Long.signum:(J)I
            imul
            lload 4 /* divisor */
            invokestatic java.lang.Long.signum:(J)I
            imul
            istore 9 /* qsign */
        start local 9 // int qsign
         1: .line 4795
            lload 0 /* dividend0 */
            invokestatic java.lang.Math.abs:(J)J
            lstore 0 /* dividend0 */
         2: .line 4796
            lload 2 /* dividend1 */
            invokestatic java.lang.Math.abs:(J)J
            lstore 2 /* dividend1 */
         3: .line 4797
            lload 4 /* divisor */
            invokestatic java.lang.Math.abs:(J)J
            lstore 4 /* divisor */
         4: .line 4799
            lload 0 /* dividend0 */
            bipush 32
            lushr
            lstore 10 /* d0_hi */
        start local 10 // long d0_hi
         5: .line 4800
            lload 0 /* dividend0 */
            ldc 4294967295
            land
            lstore 12 /* d0_lo */
        start local 12 // long d0_lo
         6: .line 4801
            lload 2 /* dividend1 */
            bipush 32
            lushr
            lstore 14 /* d1_hi */
        start local 14 // long d1_hi
         7: .line 4802
            lload 2 /* dividend1 */
            ldc 4294967295
            land
            lstore 16 /* d1_lo */
        start local 16 // long d1_lo
         8: .line 4803
            lload 12 /* d0_lo */
            lload 16 /* d1_lo */
            lmul
            lstore 18 /* product */
        start local 18 // long product
         9: .line 4804
            lload 18 /* product */
            ldc 4294967295
            land
            lstore 20 /* d0 */
        start local 20 // long d0
        10: .line 4805
            lload 18 /* product */
            bipush 32
            lushr
            lstore 22 /* d1 */
        start local 22 // long d1
        11: .line 4806
            lload 10 /* d0_hi */
            lload 16 /* d1_lo */
            lmul
            lload 22 /* d1 */
            ladd
            lstore 18 /* product */
        12: .line 4807
            lload 18 /* product */
            ldc 4294967295
            land
            lstore 22 /* d1 */
        13: .line 4808
            lload 18 /* product */
            bipush 32
            lushr
            lstore 24 /* d2 */
        start local 24 // long d2
        14: .line 4809
            lload 12 /* d0_lo */
            lload 14 /* d1_hi */
            lmul
            lload 22 /* d1 */
            ladd
            lstore 18 /* product */
        15: .line 4810
            lload 18 /* product */
            ldc 4294967295
            land
            lstore 22 /* d1 */
        16: .line 4811
            lload 24 /* d2 */
            lload 18 /* product */
            bipush 32
            lushr
            ladd
            lstore 24 /* d2 */
        17: .line 4812
            lload 24 /* d2 */
            bipush 32
            lushr
            lstore 26 /* d3 */
        start local 26 // long d3
        18: .line 4813
            lload 24 /* d2 */
            ldc 4294967295
            land
            lstore 24 /* d2 */
        19: .line 4814
            lload 10 /* d0_hi */
            lload 14 /* d1_hi */
            lmul
            lload 24 /* d2 */
            ladd
            lstore 18 /* product */
        20: .line 4815
            lload 18 /* product */
            ldc 4294967295
            land
            lstore 24 /* d2 */
        21: .line 4816
            lload 18 /* product */
            bipush 32
            lushr
            lload 26 /* d3 */
            ladd
            ldc 4294967295
            land
            lstore 26 /* d3 */
        22: .line 4817
            lload 26 /* d3 */
            lload 24 /* d2 */
            invokestatic java.math.BigDecimal.make64:(JJ)J
            lstore 28 /* dividendHi */
        start local 28 // long dividendHi
        23: .line 4818
            lload 22 /* d1 */
            lload 20 /* d0 */
            invokestatic java.math.BigDecimal.make64:(JJ)J
            lstore 30 /* dividendLo */
        start local 30 // long dividendLo
        24: .line 4820
            lload 28 /* dividendHi */
            lload 30 /* dividendLo */
            lload 4 /* divisor */
            iload 9 /* qsign */
            iload 6 /* scale */
            iload 7 /* roundingMode */
            iload 8 /* preferredScale */
            invokestatic java.math.BigDecimal.divideAndRound128:(JJJIIII)Ljava/math/BigDecimal;
            areturn
        end local 30 // long dividendLo
        end local 28 // long dividendHi
        end local 26 // long d3
        end local 24 // long d2
        end local 22 // long d1
        end local 20 // long d0
        end local 18 // long product
        end local 16 // long d1_lo
        end local 14 // long d1_hi
        end local 12 // long d0_lo
        end local 10 // long d0_hi
        end local 9 // int qsign
        end local 8 // int preferredScale
        end local 7 // int roundingMode
        end local 6 // int scale
        end local 4 // long divisor
        end local 2 // long dividend1
        end local 0 // long dividend0
      LocalVariableTable:
        Start  End  Slot            Name  Signature
            0   25     0       dividend0  J
            0   25     2       dividend1  J
            0   25     4         divisor  J
            0   25     6           scale  I
            0   25     7    roundingMode  I
            0   25     8  preferredScale  I
            1   25     9           qsign  I
            5   25    10           d0_hi  J
            6   25    12           d0_lo  J
            7   25    14           d1_hi  J
            8   25    16           d1_lo  J
            9   25    18         product  J
           10   25    20              d0  J
           11   25    22              d1  J
           14   25    24              d2  J
           18   25    26              d3  J
           23   25    28      dividendHi  J
           24   25    30      dividendLo  J
    MethodParameters:
                Name  Flags
      dividend0       
      dividend1       
      divisor         
      scale           
      roundingMode    
      preferredScale  

  private static java.math.BigDecimal divideAndRound128(long, long, long, int, int, int, int);
    descriptor: (JJJIIII)Ljava/math/BigDecimal;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=10, locals=34, args_size=7
        start local 0 // long dividendHi
        start local 2 // long dividendLo
        start local 4 // long divisor
        start local 6 // int sign
        start local 7 // int scale
        start local 8 // int roundingMode
        start local 9 // int preferredScale
         0: .line 4832
            lload 0 /* dividendHi */
            lload 4 /* divisor */
            lcmp
            iflt 2
         1: .line 4833
            aconst_null
            areturn
         2: .line 4836
      StackMap locals:
      StackMap stack:
            lload 4 /* divisor */
            invokestatic java.lang.Long.numberOfLeadingZeros:(J)I
            istore 10 /* shift */
        start local 10 // int shift
         3: .line 4837
            lload 4 /* divisor */
            iload 10 /* shift */
            lshl
            lstore 4 /* divisor */
         4: .line 4839
            lload 4 /* divisor */
            bipush 32
            lushr
            lstore 11 /* v1 */
        start local 11 // long v1
         5: .line 4840
            lload 4 /* divisor */
            ldc 4294967295
            land
            lstore 13 /* v0 */
        start local 13 // long v0
         6: .line 4842
            lload 2 /* dividendLo */
            iload 10 /* shift */
            lshl
            lstore 15 /* tmp */
        start local 15 // long tmp
         7: .line 4843
            lload 15 /* tmp */
            bipush 32
            lushr
            lstore 17 /* u1 */
        start local 17 // long u1
         8: .line 4844
            lload 15 /* tmp */
            ldc 4294967295
            land
            lstore 19 /* u0 */
        start local 19 // long u0
         9: .line 4846
            lload 0 /* dividendHi */
            iload 10 /* shift */
            lshl
            lload 2 /* dividendLo */
            bipush 64
            iload 10 /* shift */
            isub
            lushr
            lor
            lstore 15 /* tmp */
        10: .line 4847
            lload 15 /* tmp */
            ldc 4294967295
            land
            lstore 21 /* u2 */
        start local 21 // long u2
        11: .line 4849
            lload 11 /* v1 */
            lconst_1
            lcmp
            ifne 15
        12: .line 4850
            lload 15 /* tmp */
            lstore 23 /* q1 */
        start local 23 // long q1
        13: .line 4851
            lconst_0
            lstore 25 /* r_tmp */
        start local 25 // long r_tmp
        14: .line 4852
            goto 27
        end local 25 // long r_tmp
        end local 23 // long q1
      StackMap locals: long long long int int int int int long long long long long long
      StackMap stack:
        15: lload 15 /* tmp */
            lconst_0
            lcmp
            iflt 19
        16: .line 4853
            lload 15 /* tmp */
            lload 11 /* v1 */
            ldiv
            lstore 23 /* q1 */
        start local 23 // long q1
        17: .line 4854
            lload 15 /* tmp */
            lload 23 /* q1 */
            lload 11 /* v1 */
            lmul
            lsub
            lstore 25 /* r_tmp */
        start local 25 // long r_tmp
        18: .line 4855
            goto 27
        end local 25 // long r_tmp
        end local 23 // long q1
        19: .line 4856
      StackMap locals:
      StackMap stack:
            lload 15 /* tmp */
            lload 11 /* v1 */
            invokestatic java.math.BigDecimal.divRemNegativeLong:(JJ)[J
            astore 27 /* rq */
        start local 27 // long[] rq
        20: .line 4857
            aload 27 /* rq */
            iconst_1
            laload
            lstore 23 /* q1 */
        start local 23 // long q1
        21: .line 4858
            aload 27 /* rq */
            iconst_0
            laload
            lstore 25 /* r_tmp */
        end local 27 // long[] rq
        start local 25 // long r_tmp
        22: .line 4861
            goto 27
        23: .line 4862
      StackMap locals: long long
      StackMap stack:
            lload 23 /* q1 */
            lconst_1
            lsub
            lstore 23 /* q1 */
        24: .line 4863
            lload 25 /* r_tmp */
            lload 11 /* v1 */
            ladd
            lstore 25 /* r_tmp */
        25: .line 4864
            lload 25 /* r_tmp */
            ldc 4294967296
            lcmp
            iflt 27
        26: .line 4865
            goto 28
        27: .line 4861
      StackMap locals:
      StackMap stack:
            lload 23 /* q1 */
            ldc 4294967296
            lcmp
            ifge 23
            lload 23 /* q1 */
            lload 13 /* v0 */
            lmul
            lload 25 /* r_tmp */
            lload 17 /* u1 */
            invokestatic java.math.BigDecimal.make64:(JJ)J
            invokestatic java.math.BigDecimal.unsignedLongCompare:(JJ)Z
            ifne 23
        28: .line 4868
      StackMap locals:
      StackMap stack:
            lload 21 /* u2 */
            lload 17 /* u1 */
            lload 11 /* v1 */
            lload 13 /* v0 */
            lload 23 /* q1 */
            invokestatic java.math.BigDecimal.mulsub:(JJJJJ)J
            lstore 15 /* tmp */
        29: .line 4869
            lload 15 /* tmp */
            ldc 4294967295
            land
            lstore 17 /* u1 */
        30: .line 4871
            lload 11 /* v1 */
            lconst_1
            lcmp
            ifne 34
        31: .line 4872
            lload 15 /* tmp */
            lstore 27 /* q0 */
        start local 27 // long q0
        32: .line 4873
            lconst_0
            lstore 25 /* r_tmp */
        33: .line 4874
            goto 46
        end local 27 // long q0
      StackMap locals:
      StackMap stack:
        34: lload 15 /* tmp */
            lconst_0
            lcmp
            iflt 38
        35: .line 4875
            lload 15 /* tmp */
            lload 11 /* v1 */
            ldiv
            lstore 27 /* q0 */
        start local 27 // long q0
        36: .line 4876
            lload 15 /* tmp */
            lload 27 /* q0 */
            lload 11 /* v1 */
            lmul
            lsub
            lstore 25 /* r_tmp */
        37: .line 4877
            goto 46
        end local 27 // long q0
        38: .line 4878
      StackMap locals:
      StackMap stack:
            lload 15 /* tmp */
            lload 11 /* v1 */
            invokestatic java.math.BigDecimal.divRemNegativeLong:(JJ)[J
            astore 29 /* rq */
        start local 29 // long[] rq
        39: .line 4879
            aload 29 /* rq */
            iconst_1
            laload
            lstore 27 /* q0 */
        start local 27 // long q0
        40: .line 4880
            aload 29 /* rq */
            iconst_0
            laload
            lstore 25 /* r_tmp */
        end local 29 // long[] rq
        41: .line 4883
            goto 46
        42: .line 4884
      StackMap locals: long
      StackMap stack:
            lload 27 /* q0 */
            lconst_1
            lsub
            lstore 27 /* q0 */
        43: .line 4885
            lload 25 /* r_tmp */
            lload 11 /* v1 */
            ladd
            lstore 25 /* r_tmp */
        44: .line 4886
            lload 25 /* r_tmp */
            ldc 4294967296
            lcmp
            iflt 46
        45: .line 4887
            goto 47
        46: .line 4883
      StackMap locals:
      StackMap stack:
            lload 27 /* q0 */
            ldc 4294967296
            lcmp
            ifge 42
            lload 27 /* q0 */
            lload 13 /* v0 */
            lmul
            lload 25 /* r_tmp */
            lload 19 /* u0 */
            invokestatic java.math.BigDecimal.make64:(JJ)J
            invokestatic java.math.BigDecimal.unsignedLongCompare:(JJ)Z
            ifne 42
        47: .line 4890
      StackMap locals:
      StackMap stack:
            lload 23 /* q1 */
            l2i
            ifge 60
        48: .line 4893
            new java.math.MutableBigInteger
            dup
            iconst_2
            newarray 10
            dup
            iconst_0
            lload 23 /* q1 */
            l2i
            iastore
            dup
            iconst_1
            lload 27 /* q0 */
            l2i
            iastore
            invokespecial java.math.MutableBigInteger.<init>:([I)V
            astore 29 /* mq */
        start local 29 // java.math.MutableBigInteger mq
        49: .line 4894
            iload 8 /* roundingMode */
            iconst_1
            if_icmpne 51
            iload 7 /* scale */
            iload 9 /* preferredScale */
            if_icmpne 51
        50: .line 4895
            aload 29 /* mq */
            iload 6 /* sign */
            iload 7 /* scale */
            invokevirtual java.math.MutableBigInteger.toBigDecimal:(II)Ljava/math/BigDecimal;
            areturn
        51: .line 4897
      StackMap locals: java.math.MutableBigInteger
      StackMap stack:
            lload 17 /* u1 */
            lload 19 /* u0 */
            lload 11 /* v1 */
            lload 13 /* v0 */
            lload 27 /* q0 */
            invokestatic java.math.BigDecimal.mulsub:(JJJJJ)J
            iload 10 /* shift */
            lushr
            lstore 30 /* r */
        start local 30 // long r
        52: .line 4898
            lload 30 /* r */
            lconst_0
            lcmp
            ifeq 56
        53: .line 4899
            lload 4 /* divisor */
            iload 10 /* shift */
            lushr
            iload 8 /* roundingMode */
            iload 6 /* sign */
            aload 29 /* mq */
            lload 30 /* r */
            invokestatic java.math.BigDecimal.needIncrement:(JIILjava/math/MutableBigInteger;J)Z
            ifeq 55
        54: .line 4900
            aload 29 /* mq */
            getstatic java.math.MutableBigInteger.ONE:Ljava/math/MutableBigInteger;
            invokevirtual java.math.MutableBigInteger.add:(Ljava/math/MutableBigInteger;)V
        55: .line 4902
      StackMap locals: long
      StackMap stack:
            aload 29 /* mq */
            iload 6 /* sign */
            iload 7 /* scale */
            invokevirtual java.math.MutableBigInteger.toBigDecimal:(II)Ljava/math/BigDecimal;
            areturn
        56: .line 4904
      StackMap locals:
      StackMap stack:
            iload 9 /* preferredScale */
            iload 7 /* scale */
            if_icmpeq 59
        57: .line 4905
            aload 29 /* mq */
            iload 6 /* sign */
            invokevirtual java.math.MutableBigInteger.toBigInteger:(I)Ljava/math/BigInteger;
            astore 32 /* intVal */
        start local 32 // java.math.BigInteger intVal
        58: .line 4906
            aload 32 /* intVal */
            iload 7 /* scale */
            iload 9 /* preferredScale */
            i2l
            invokestatic java.math.BigDecimal.createAndStripZerosToMatchScale:(Ljava/math/BigInteger;IJ)Ljava/math/BigDecimal;
            areturn
        end local 32 // java.math.BigInteger intVal
        59: .line 4908
      StackMap locals:
      StackMap stack:
            aload 29 /* mq */
            iload 6 /* sign */
            iload 7 /* scale */
            invokevirtual java.math.MutableBigInteger.toBigDecimal:(II)Ljava/math/BigDecimal;
            areturn
        end local 30 // long r
        end local 29 // java.math.MutableBigInteger mq
        60: .line 4913
      StackMap locals:
      StackMap stack:
            lload 23 /* q1 */
            lload 27 /* q0 */
            invokestatic java.math.BigDecimal.make64:(JJ)J
            lstore 29 /* q */
        start local 29 // long q
        61: .line 4914
            lload 29 /* q */
            iload 6 /* sign */
            i2l
            lmul
            lstore 29 /* q */
        62: .line 4916
            iload 8 /* roundingMode */
            iconst_1
            if_icmpne 64
            iload 7 /* scale */
            iload 9 /* preferredScale */
            if_icmpne 64
        63: .line 4917
            lload 29 /* q */
            iload 7 /* scale */
            invokestatic java.math.BigDecimal.valueOf:(JI)Ljava/math/BigDecimal;
            areturn
        64: .line 4919
      StackMap locals: long
      StackMap stack:
            lload 17 /* u1 */
            lload 19 /* u0 */
            lload 11 /* v1 */
            lload 13 /* v0 */
            lload 27 /* q0 */
            invokestatic java.math.BigDecimal.mulsub:(JJJJJ)J
            iload 10 /* shift */
            lushr
            lstore 31 /* r */
        start local 31 // long r
        65: .line 4920
            lload 31 /* r */
            lconst_0
            lcmp
            ifeq 70
        66: .line 4921
            lload 4 /* divisor */
            iload 10 /* shift */
            lushr
            iload 8 /* roundingMode */
            iload 6 /* sign */
            lload 29 /* q */
            lload 31 /* r */
            invokestatic java.math.BigDecimal.needIncrement:(JIIJJ)Z
            istore 33 /* increment */
        start local 33 // boolean increment
        67: .line 4922
            iload 33 /* increment */
            ifeq 68
            lload 29 /* q */
            iload 6 /* sign */
            i2l
            ladd
            goto 69
      StackMap locals: long int
      StackMap stack:
        68: lload 29 /* q */
      StackMap locals:
      StackMap stack: long
        69: iload 7 /* scale */
            invokestatic java.math.BigDecimal.valueOf:(JI)Ljava/math/BigDecimal;
            areturn
        end local 33 // boolean increment
        70: .line 4924
      StackMap locals:
      StackMap stack:
            iload 9 /* preferredScale */
            iload 7 /* scale */
            if_icmpeq 72
        71: .line 4925
            lload 29 /* q */
            iload 7 /* scale */
            iload 9 /* preferredScale */
            i2l
            invokestatic java.math.BigDecimal.createAndStripZerosToMatchScale:(JIJ)Ljava/math/BigDecimal;
            areturn
        72: .line 4927
      StackMap locals:
      StackMap stack:
            lload 29 /* q */
            iload 7 /* scale */
            invokestatic java.math.BigDecimal.valueOf:(JI)Ljava/math/BigDecimal;
            areturn
        end local 31 // long r
        end local 29 // long q
        end local 27 // long q0
        end local 25 // long r_tmp
        end local 23 // long q1
        end local 21 // long u2
        end local 19 // long u0
        end local 17 // long u1
        end local 15 // long tmp
        end local 13 // long v0
        end local 11 // long v1
        end local 10 // int shift
        end local 9 // int preferredScale
        end local 8 // int roundingMode
        end local 7 // int scale
        end local 6 // int sign
        end local 4 // long divisor
        end local 2 // long dividendLo
        end local 0 // long dividendHi
      LocalVariableTable:
        Start  End  Slot            Name  Signature
            0   73     0      dividendHi  J
            0   73     2      dividendLo  J
            0   73     4         divisor  J
            0   73     6            sign  I
            0   73     7           scale  I
            0   73     8    roundingMode  I
            0   73     9  preferredScale  I
            3   73    10           shift  I
            5   73    11              v1  J
            6   73    13              v0  J
            7   73    15             tmp  J
            8   73    17              u1  J
            9   73    19              u0  J
           11   73    21              u2  J
           13   15    23              q1  J
           17   19    23              q1  J
           21   73    23              q1  J
           14   15    25           r_tmp  J
           18   19    25           r_tmp  J
           22   73    25           r_tmp  J
           20   22    27              rq  [J
           32   34    27              q0  J
           36   38    27              q0  J
           40   73    27              q0  J
           39   41    29              rq  [J
           49   60    29              mq  Ljava/math/MutableBigInteger;
           52   60    30               r  J
           58   59    32          intVal  Ljava/math/BigInteger;
           61   73    29               q  J
           65   73    31               r  J
           67   70    33       increment  Z
    MethodParameters:
                Name  Flags
      dividendHi      final
      dividendLo      final
      divisor         
      sign            
      scale           
      roundingMode    
      preferredScale  

  private static java.math.BigDecimal roundedTenPower(int, int, int, int);
    descriptor: (IIII)Ljava/math/BigDecimal;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=4, locals=5, args_size=4
        start local 0 // int qsign
        start local 1 // int raise
        start local 2 // int scale
        start local 3 // int preferredScale
         0: .line 4937
            iload 2 /* scale */
            iload 3 /* preferredScale */
            if_icmple 5
         1: .line 4938
            iload 2 /* scale */
            iload 3 /* preferredScale */
            isub
            istore 4 /* diff */
        start local 4 // int diff
         2: .line 4939
            iload 4 /* diff */
            iload 1 /* raise */
            if_icmpge 4
         3: .line 4940
            iload 1 /* raise */
            iload 4 /* diff */
            isub
            iload 0 /* qsign */
            iload 3 /* preferredScale */
            invokestatic java.math.BigDecimal.scaledTenPow:(III)Ljava/math/BigDecimal;
            areturn
         4: .line 4942
      StackMap locals: int
      StackMap stack:
            iload 0 /* qsign */
            i2l
            iload 2 /* scale */
            iload 1 /* raise */
            isub
            invokestatic java.math.BigDecimal.valueOf:(JI)Ljava/math/BigDecimal;
            areturn
        end local 4 // int diff
         5: .line 4945
      StackMap locals:
      StackMap stack:
            iload 1 /* raise */
            iload 0 /* qsign */
            iload 2 /* scale */
            invokestatic java.math.BigDecimal.scaledTenPow:(III)Ljava/math/BigDecimal;
            areturn
        end local 3 // int preferredScale
        end local 2 // int scale
        end local 1 // int raise
        end local 0 // int qsign
      LocalVariableTable:
        Start  End  Slot            Name  Signature
            0    6     0           qsign  I
            0    6     1           raise  I
            0    6     2           scale  I
            0    6     3  preferredScale  I
            2    5     4            diff  I
    MethodParameters:
                Name  Flags
      qsign           
      raise           
      scale           
      preferredScale  

  static java.math.BigDecimal scaledTenPow(int, int, int);
    descriptor: (III)Ljava/math/BigDecimal;
    flags: (0x0008) ACC_STATIC
    Code:
      stack=8, locals=4, args_size=3
        start local 0 // int n
        start local 1 // int sign
        start local 2 // int scale
         0: .line 4950
            iload 0 /* n */
            getstatic java.math.BigDecimal.LONG_TEN_POWERS_TABLE:[J
            arraylength
            if_icmpge 2
         1: .line 4951
            iload 1 /* sign */
            i2l
            getstatic java.math.BigDecimal.LONG_TEN_POWERS_TABLE:[J
            iload 0 /* n */
            laload
            lmul
            iload 2 /* scale */
            invokestatic java.math.BigDecimal.valueOf:(JI)Ljava/math/BigDecimal;
            areturn
         2: .line 4953
      StackMap locals:
      StackMap stack:
            iload 0 /* n */
            invokestatic java.math.BigDecimal.bigTenToThe:(I)Ljava/math/BigInteger;
            astore 3 /* unscaledVal */
        start local 3 // java.math.BigInteger unscaledVal
         3: .line 4954
            iload 1 /* sign */
            iconst_m1
            if_icmpne 5
         4: .line 4955
            aload 3 /* unscaledVal */
            invokevirtual java.math.BigInteger.negate:()Ljava/math/BigInteger;
            astore 3 /* unscaledVal */
         5: .line 4957
      StackMap locals: java.math.BigInteger
      StackMap stack:
            new java.math.BigDecimal
            dup
            aload 3 /* unscaledVal */
            ldc -9223372036854775808
            iload 2 /* scale */
            iload 0 /* n */
            iconst_1
            iadd
            invokespecial java.math.BigDecimal.<init>:(Ljava/math/BigInteger;JII)V
            areturn
        end local 3 // java.math.BigInteger unscaledVal
        end local 2 // int scale
        end local 1 // int sign
        end local 0 // int n
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0    6     0            n  I
            0    6     1         sign  I
            0    6     2        scale  I
            3    6     3  unscaledVal  Ljava/math/BigInteger;
    MethodParameters:
       Name  Flags
      n      
      sign   
      scale  

  private static long[] divRemNegativeLong(long, long);
    descriptor: (JJ)[J
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=6, locals=8, args_size=2
        start local 0 // long n
        start local 2 // long d
         0: .line 4971
            getstatic java.math.BigDecimal.$assertionsDisabled:Z
            ifne 1
            lload 0 /* n */
            lconst_0
            lcmp
            iflt 1
            new java.lang.AssertionError
            dup
            new java.lang.StringBuilder
            dup
            ldc "Non-negative numerator "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            lload 0 /* n */
            invokevirtual java.lang.StringBuilder.append:(J)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokespecial java.lang.AssertionError.<init>:(Ljava/lang/Object;)V
            athrow
         1: .line 4972
      StackMap locals:
      StackMap stack:
            getstatic java.math.BigDecimal.$assertionsDisabled:Z
            ifne 2
            lload 2 /* d */
            lconst_1
            lcmp
            ifne 2
            new java.lang.AssertionError
            dup
            ldc "Unity denominator"
            invokespecial java.lang.AssertionError.<init>:(Ljava/lang/Object;)V
            athrow
         2: .line 4975
      StackMap locals:
      StackMap stack:
            lload 0 /* n */
            iconst_1
            lushr
            lload 2 /* d */
            iconst_1
            lushr
            ldiv
            lstore 4 /* q */
        start local 4 // long q
         3: .line 4976
            lload 0 /* n */
            lload 4 /* q */
            lload 2 /* d */
            lmul
            lsub
            lstore 6 /* r */
        start local 6 // long r
         4: .line 4979
            goto 7
         5: .line 4980
      StackMap locals: long long
      StackMap stack:
            lload 6 /* r */
            lload 2 /* d */
            ladd
            lstore 6 /* r */
         6: .line 4981
            lload 4 /* q */
            lconst_1
            lsub
            lstore 4 /* q */
         7: .line 4979
      StackMap locals:
      StackMap stack:
            lload 6 /* r */
            lconst_0
            lcmp
            iflt 5
         8: .line 4983
            goto 11
         9: .line 4984
      StackMap locals:
      StackMap stack:
            lload 6 /* r */
            lload 2 /* d */
            lsub
            lstore 6 /* r */
        10: .line 4985
            lload 4 /* q */
            lconst_1
            ladd
            lstore 4 /* q */
        11: .line 4983
      StackMap locals:
      StackMap stack:
            lload 6 /* r */
            lload 2 /* d */
            lcmp
            ifge 9
        12: .line 4989
            iconst_2
            newarray 11
            dup
            iconst_0
            lload 6 /* r */
            lastore
            dup
            iconst_1
            lload 4 /* q */
            lastore
            areturn
        end local 6 // long r
        end local 4 // long q
        end local 2 // long d
        end local 0 // long n
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0   13     0     n  J
            0   13     2     d  J
            3   13     4     q  J
            4   13     6     r  J
    MethodParameters:
      Name  Flags
      n     
      d     

  private static long make64(long, long);
    descriptor: (JJ)J
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=4, locals=4, args_size=2
        start local 0 // long hi
        start local 2 // long lo
         0: .line 4993
            lload 0 /* hi */
            bipush 32
            lshl
            lload 2 /* lo */
            lor
            lreturn
        end local 2 // long lo
        end local 0 // long hi
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0    hi  J
            0    1     2    lo  J
    MethodParameters:
      Name  Flags
      hi    
      lo    

  private static long mulsub(long, long, long, long, long);
    descriptor: (JJJJJ)J
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=6, locals=12, args_size=5
        start local 0 // long u1
        start local 2 // long u0
        start local 4 // long v1
        start local 6 // long v0
        start local 8 // long q0
         0: .line 4997
            lload 2 /* u0 */
            lload 8 /* q0 */
            lload 6 /* v0 */
            lmul
            lsub
            lstore 10 /* tmp */
        start local 10 // long tmp
         1: .line 4998
            lload 0 /* u1 */
            lload 10 /* tmp */
            bipush 32
            lushr
            ladd
            lload 8 /* q0 */
            lload 4 /* v1 */
            lmul
            lsub
            lload 10 /* tmp */
            ldc 4294967295
            land
            invokestatic java.math.BigDecimal.make64:(JJ)J
            lreturn
        end local 10 // long tmp
        end local 8 // long q0
        end local 6 // long v0
        end local 4 // long v1
        end local 2 // long u0
        end local 0 // long u1
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0    u1  J
            0    2     2    u0  J
            0    2     4    v1  J
            0    2     6    v0  J
            0    2     8    q0  J
            1    2    10   tmp  J
    MethodParameters:
      Name  Flags
      u1    
      u0    
      v1    final
      v0    final
      q0    

  private static boolean unsignedLongCompare(long, long);
    descriptor: (JJ)Z
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=6, locals=4, args_size=2
        start local 0 // long one
        start local 2 // long two
         0: .line 5002
            lload 0 /* one */
            ldc -9223372036854775808
            ladd
            lload 2 /* two */
            ldc -9223372036854775808
            ladd
            lcmp
            ifle 1
            iconst_1
            ireturn
      StackMap locals:
      StackMap stack:
         1: iconst_0
            ireturn
        end local 2 // long two
        end local 0 // long one
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0   one  J
            0    2     2   two  J
    MethodParameters:
      Name  Flags
      one   
      two   

  private static boolean unsignedLongCompareEq(long, long);
    descriptor: (JJ)Z
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=6, locals=4, args_size=2
        start local 0 // long one
        start local 2 // long two
         0: .line 5006
            lload 0 /* one */
            ldc -9223372036854775808
            ladd
            lload 2 /* two */
            ldc -9223372036854775808
            ladd
            lcmp
            iflt 1
            iconst_1
            ireturn
      StackMap locals:
      StackMap stack:
         1: iconst_0
            ireturn
        end local 2 // long two
        end local 0 // long one
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0   one  J
            0    2     2   two  J
    MethodParameters:
      Name  Flags
      one   
      two   

  private static int compareMagnitudeNormalized(long, int, long, int);
    descriptor: (JIJI)I
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=4, locals=7, args_size=4
        start local 0 // long xs
        start local 2 // int xscale
        start local 3 // long ys
        start local 5 // int yscale
         0: .line 5013
            iload 2 /* xscale */
            iload 5 /* yscale */
            isub
            istore 6 /* sdiff */
        start local 6 // int sdiff
         1: .line 5014
            iload 6 /* sdiff */
            ifeq 6
         2: .line 5015
            iload 6 /* sdiff */
            ifge 5
         3: .line 5016
            lload 0 /* xs */
            iload 6 /* sdiff */
            ineg
            invokestatic java.math.BigDecimal.longMultiplyPowerTen:(JI)J
            lstore 0 /* xs */
         4: .line 5017
            goto 6
         5: .line 5018
      StackMap locals: int
      StackMap stack:
            lload 3 /* ys */
            iload 6 /* sdiff */
            invokestatic java.math.BigDecimal.longMultiplyPowerTen:(JI)J
            lstore 3 /* ys */
         6: .line 5021
      StackMap locals:
      StackMap stack:
            lload 0 /* xs */
            ldc -9223372036854775808
            lcmp
            ifeq 10
         7: .line 5022
            lload 3 /* ys */
            ldc -9223372036854775808
            lcmp
            ifeq 8
            lload 0 /* xs */
            lload 3 /* ys */
            invokestatic java.math.BigDecimal.longCompareMagnitude:(JJ)I
            goto 9
      StackMap locals:
      StackMap stack:
         8: iconst_m1
      StackMap locals:
      StackMap stack: int
         9: ireturn
        10: .line 5024
      StackMap locals:
      StackMap stack:
            iconst_1
            ireturn
        end local 6 // int sdiff
        end local 5 // int yscale
        end local 3 // long ys
        end local 2 // int xscale
        end local 0 // long xs
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0   11     0      xs  J
            0   11     2  xscale  I
            0   11     3      ys  J
            0   11     5  yscale  I
            1   11     6   sdiff  I
    MethodParameters:
        Name  Flags
      xs      
      xscale  
      ys      
      yscale  

  private static int compareMagnitudeNormalized(long, int, java.math.BigInteger, int);
    descriptor: (JILjava/math/BigInteger;I)I
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=4, locals=6, args_size=4
        start local 0 // long xs
        start local 2 // int xscale
        start local 3 // java.math.BigInteger ys
        start local 4 // int yscale
         0: .line 5030
            lload 0 /* xs */
            lconst_0
            lcmp
            ifne 2
         1: .line 5031
            iconst_m1
            ireturn
         2: .line 5032
      StackMap locals:
      StackMap stack:
            iload 2 /* xscale */
            iload 4 /* yscale */
            isub
            istore 5 /* sdiff */
        start local 5 // int sdiff
         3: .line 5033
            iload 5 /* sdiff */
            ifge 6
         4: .line 5034
            lload 0 /* xs */
            iload 5 /* sdiff */
            ineg
            invokestatic java.math.BigDecimal.longMultiplyPowerTen:(JI)J
            ldc -9223372036854775808
            lcmp
            ifne 6
         5: .line 5035
            lload 0 /* xs */
            iload 5 /* sdiff */
            ineg
            invokestatic java.math.BigDecimal.bigMultiplyPowerTen:(JI)Ljava/math/BigInteger;
            aload 3 /* ys */
            invokevirtual java.math.BigInteger.compareMagnitude:(Ljava/math/BigInteger;)I
            ireturn
         6: .line 5038
      StackMap locals: int
      StackMap stack:
            iconst_m1
            ireturn
        end local 5 // int sdiff
        end local 4 // int yscale
        end local 3 // java.math.BigInteger ys
        end local 2 // int xscale
        end local 0 // long xs
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    7     0      xs  J
            0    7     2  xscale  I
            0    7     3      ys  Ljava/math/BigInteger;
            0    7     4  yscale  I
            3    7     5   sdiff  I
    MethodParameters:
        Name  Flags
      xs      
      xscale  
      ys      
      yscale  

  private static int compareMagnitudeNormalized(java.math.BigInteger, int, java.math.BigInteger, int);
    descriptor: (Ljava/math/BigInteger;ILjava/math/BigInteger;I)I
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=3, locals=5, args_size=4
        start local 0 // java.math.BigInteger xs
        start local 1 // int xscale
        start local 2 // java.math.BigInteger ys
        start local 3 // int yscale
         0: .line 5043
            iload 1 /* xscale */
            iload 3 /* yscale */
            isub
            istore 4 /* sdiff */
        start local 4 // int sdiff
         1: .line 5044
            iload 4 /* sdiff */
            ifge 3
         2: .line 5045
            aload 0 /* xs */
            iload 4 /* sdiff */
            ineg
            invokestatic java.math.BigDecimal.bigMultiplyPowerTen:(Ljava/math/BigInteger;I)Ljava/math/BigInteger;
            aload 2 /* ys */
            invokevirtual java.math.BigInteger.compareMagnitude:(Ljava/math/BigInteger;)I
            ireturn
         3: .line 5047
      StackMap locals: int
      StackMap stack:
            aload 0 /* xs */
            aload 2 /* ys */
            iload 4 /* sdiff */
            invokestatic java.math.BigDecimal.bigMultiplyPowerTen:(Ljava/math/BigInteger;I)Ljava/math/BigInteger;
            invokevirtual java.math.BigInteger.compareMagnitude:(Ljava/math/BigInteger;)I
            ireturn
        end local 4 // int sdiff
        end local 3 // int yscale
        end local 2 // java.math.BigInteger ys
        end local 1 // int xscale
        end local 0 // java.math.BigInteger xs
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    4     0      xs  Ljava/math/BigInteger;
            0    4     1  xscale  I
            0    4     2      ys  Ljava/math/BigInteger;
            0    4     3  yscale  I
            1    4     4   sdiff  I
    MethodParameters:
        Name  Flags
      xs      
      xscale  
      ys      
      yscale  

  private static long multiply(long, long);
    descriptor: (JJ)J
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=4, locals=10, args_size=2
        start local 0 // long x
        start local 2 // long y
         0: .line 5052
            lload 0 /* x */
            lload 2 /* y */
            lmul
            lstore 4 /* product */
        start local 4 // long product
         1: .line 5053
            lload 0 /* x */
            invokestatic java.lang.Math.abs:(J)J
            lstore 6 /* ax */
        start local 6 // long ax
         2: .line 5054
            lload 2 /* y */
            invokestatic java.lang.Math.abs:(J)J
            lstore 8 /* ay */
        start local 8 // long ay
         3: .line 5055
            lload 6 /* ax */
            lload 8 /* ay */
            lor
            bipush 31
            lushr
            lconst_0
            lcmp
            ifeq 4
            lload 2 /* y */
            lconst_0
            lcmp
            ifeq 4
            lload 4 /* product */
            lload 2 /* y */
            ldiv
            lload 0 /* x */
            lcmp
            ifne 5
         4: .line 5056
      StackMap locals: long long long
      StackMap stack:
            lload 4 /* product */
            lreturn
         5: .line 5058
      StackMap locals:
      StackMap stack:
            ldc -9223372036854775808
            lreturn
        end local 8 // long ay
        end local 6 // long ax
        end local 4 // long product
        end local 2 // long y
        end local 0 // long x
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    6     0        x  J
            0    6     2        y  J
            1    6     4  product  J
            2    6     6       ax  J
            3    6     8       ay  J
    MethodParameters:
      Name  Flags
      x     
      y     

  private static java.math.BigDecimal multiply(long, long, int);
    descriptor: (JJI)Ljava/math/BigDecimal;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=7, locals=7, args_size=3
        start local 0 // long x
        start local 2 // long y
        start local 4 // int scale
         0: .line 5062
            lload 0 /* x */
            lload 2 /* y */
            invokestatic java.math.BigDecimal.multiply:(JJ)J
            lstore 5 /* product */
        start local 5 // long product
         1: .line 5063
            lload 5 /* product */
            ldc -9223372036854775808
            lcmp
            ifeq 3
         2: .line 5064
            lload 5 /* product */
            iload 4 /* scale */
            invokestatic java.math.BigDecimal.valueOf:(JI)Ljava/math/BigDecimal;
            areturn
         3: .line 5066
      StackMap locals: long
      StackMap stack:
            new java.math.BigDecimal
            dup
            lload 0 /* x */
            invokestatic java.math.BigInteger.valueOf:(J)Ljava/math/BigInteger;
            lload 2 /* y */
            invokevirtual java.math.BigInteger.multiply:(J)Ljava/math/BigInteger;
            ldc -9223372036854775808
            iload 4 /* scale */
            iconst_0
            invokespecial java.math.BigDecimal.<init>:(Ljava/math/BigInteger;JII)V
            areturn
        end local 5 // long product
        end local 4 // int scale
        end local 2 // long y
        end local 0 // long x
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    4     0        x  J
            0    4     2        y  J
            0    4     4    scale  I
            1    4     5  product  J
    MethodParameters:
       Name  Flags
      x      
      y      
      scale  

  private static java.math.BigDecimal multiply(long, java.math.BigInteger, int);
    descriptor: (JLjava/math/BigInteger;I)Ljava/math/BigDecimal;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=7, locals=4, args_size=3
        start local 0 // long x
        start local 2 // java.math.BigInteger y
        start local 3 // int scale
         0: .line 5070
            lload 0 /* x */
            lconst_0
            lcmp
            ifne 2
         1: .line 5071
            iload 3 /* scale */
            invokestatic java.math.BigDecimal.zeroValueOf:(I)Ljava/math/BigDecimal;
            areturn
         2: .line 5073
      StackMap locals:
      StackMap stack:
            new java.math.BigDecimal
            dup
            aload 2 /* y */
            lload 0 /* x */
            invokevirtual java.math.BigInteger.multiply:(J)Ljava/math/BigInteger;
            ldc -9223372036854775808
            iload 3 /* scale */
            iconst_0
            invokespecial java.math.BigDecimal.<init>:(Ljava/math/BigInteger;JII)V
            areturn
        end local 3 // int scale
        end local 2 // java.math.BigInteger y
        end local 0 // long x
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    3     0      x  J
            0    3     2      y  Ljava/math/BigInteger;
            0    3     3  scale  I
    MethodParameters:
       Name  Flags
      x      
      y      
      scale  

  private static java.math.BigDecimal multiply(java.math.BigInteger, java.math.BigInteger, int);
    descriptor: (Ljava/math/BigInteger;Ljava/math/BigInteger;I)Ljava/math/BigDecimal;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=7, locals=3, args_size=3
        start local 0 // java.math.BigInteger x
        start local 1 // java.math.BigInteger y
        start local 2 // int scale
         0: .line 5077
            new java.math.BigDecimal
            dup
            aload 0 /* x */
            aload 1 /* y */
            invokevirtual java.math.BigInteger.multiply:(Ljava/math/BigInteger;)Ljava/math/BigInteger;
            ldc -9223372036854775808
            iload 2 /* scale */
            iconst_0
            invokespecial java.math.BigDecimal.<init>:(Ljava/math/BigInteger;JII)V
            areturn
        end local 2 // int scale
        end local 1 // java.math.BigInteger y
        end local 0 // java.math.BigInteger x
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    1     0      x  Ljava/math/BigInteger;
            0    1     1      y  Ljava/math/BigInteger;
            0    1     2  scale  I
    MethodParameters:
       Name  Flags
      x      
      y      
      scale  

  private static java.math.BigDecimal multiplyAndRound(long, long, int, java.math.MathContext);
    descriptor: (JJILjava/math/MathContext;)Ljava/math/BigDecimal;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=7, locals=30, args_size=4
        start local 0 // long x
        start local 2 // long y
        start local 4 // int scale
        start local 5 // java.math.MathContext mc
         0: .line 5084
            lload 0 /* x */
            lload 2 /* y */
            invokestatic java.math.BigDecimal.multiply:(JJ)J
            lstore 6 /* product */
        start local 6 // long product
         1: .line 5085
            lload 6 /* product */
            ldc -9223372036854775808
            lcmp
            ifeq 3
         2: .line 5086
            lload 6 /* product */
            iload 4 /* scale */
            aload 5 /* mc */
            invokestatic java.math.BigDecimal.doRound:(JILjava/math/MathContext;)Ljava/math/BigDecimal;
            areturn
         3: .line 5089
      StackMap locals: long
      StackMap stack:
            iconst_1
            istore 8 /* rsign */
        start local 8 // int rsign
         4: .line 5090
            lload 0 /* x */
            lconst_0
            lcmp
            ifge 7
         5: .line 5091
            lload 0 /* x */
            lneg
            lstore 0 /* x */
         6: .line 5092
            iconst_m1
            istore 8 /* rsign */
         7: .line 5094
      StackMap locals: int
      StackMap stack:
            lload 2 /* y */
            lconst_0
            lcmp
            ifge 10
         8: .line 5095
            lload 2 /* y */
            lneg
            lstore 2 /* y */
         9: .line 5096
            iload 8 /* rsign */
            iconst_m1
            imul
            istore 8 /* rsign */
        10: .line 5099
      StackMap locals:
      StackMap stack:
            lload 0 /* x */
            bipush 32
            lushr
            lstore 9 /* m0_hi */
        start local 9 // long m0_hi
        11: .line 5100
            lload 0 /* x */
            ldc 4294967295
            land
            lstore 11 /* m0_lo */
        start local 11 // long m0_lo
        12: .line 5101
            lload 2 /* y */
            bipush 32
            lushr
            lstore 13 /* m1_hi */
        start local 13 // long m1_hi
        13: .line 5102
            lload 2 /* y */
            ldc 4294967295
            land
            lstore 15 /* m1_lo */
        start local 15 // long m1_lo
        14: .line 5103
            lload 11 /* m0_lo */
            lload 15 /* m1_lo */
            lmul
            lstore 6 /* product */
        15: .line 5104
            lload 6 /* product */
            ldc 4294967295
            land
            lstore 17 /* m0 */
        start local 17 // long m0
        16: .line 5105
            lload 6 /* product */
            bipush 32
            lushr
            lstore 19 /* m1 */
        start local 19 // long m1
        17: .line 5106
            lload 9 /* m0_hi */
            lload 15 /* m1_lo */
            lmul
            lload 19 /* m1 */
            ladd
            lstore 6 /* product */
        18: .line 5107
            lload 6 /* product */
            ldc 4294967295
            land
            lstore 19 /* m1 */
        19: .line 5108
            lload 6 /* product */
            bipush 32
            lushr
            lstore 21 /* m2 */
        start local 21 // long m2
        20: .line 5109
            lload 11 /* m0_lo */
            lload 13 /* m1_hi */
            lmul
            lload 19 /* m1 */
            ladd
            lstore 6 /* product */
        21: .line 5110
            lload 6 /* product */
            ldc 4294967295
            land
            lstore 19 /* m1 */
        22: .line 5111
            lload 21 /* m2 */
            lload 6 /* product */
            bipush 32
            lushr
            ladd
            lstore 21 /* m2 */
        23: .line 5112
            lload 21 /* m2 */
            bipush 32
            lushr
            lstore 23 /* m3 */
        start local 23 // long m3
        24: .line 5113
            lload 21 /* m2 */
            ldc 4294967295
            land
            lstore 21 /* m2 */
        25: .line 5114
            lload 9 /* m0_hi */
            lload 13 /* m1_hi */
            lmul
            lload 21 /* m2 */
            ladd
            lstore 6 /* product */
        26: .line 5115
            lload 6 /* product */
            ldc 4294967295
            land
            lstore 21 /* m2 */
        27: .line 5116
            lload 6 /* product */
            bipush 32
            lushr
            lload 23 /* m3 */
            ladd
            ldc 4294967295
            land
            lstore 23 /* m3 */
        28: .line 5117
            lload 23 /* m3 */
            lload 21 /* m2 */
            invokestatic java.math.BigDecimal.make64:(JJ)J
            lstore 25 /* mHi */
        start local 25 // long mHi
        29: .line 5118
            lload 19 /* m1 */
            lload 17 /* m0 */
            invokestatic java.math.BigDecimal.make64:(JJ)J
            lstore 27 /* mLo */
        start local 27 // long mLo
        30: .line 5119
            lload 25 /* mHi */
            lload 27 /* mLo */
            iload 8 /* rsign */
            iload 4 /* scale */
            aload 5 /* mc */
            invokestatic java.math.BigDecimal.doRound128:(JJIILjava/math/MathContext;)Ljava/math/BigDecimal;
            astore 29 /* res */
        start local 29 // java.math.BigDecimal res
        31: .line 5120
            aload 29 /* res */
            ifnull 33
        32: .line 5121
            aload 29 /* res */
            areturn
        33: .line 5123
      StackMap locals: long long int java.math.MathContext long int long long long long long long long long long long java.math.BigDecimal
      StackMap stack:
            new java.math.BigDecimal
            dup
            lload 0 /* x */
            invokestatic java.math.BigInteger.valueOf:(J)Ljava/math/BigInteger;
            lload 2 /* y */
            iload 8 /* rsign */
            i2l
            lmul
            invokevirtual java.math.BigInteger.multiply:(J)Ljava/math/BigInteger;
            ldc -9223372036854775808
            iload 4 /* scale */
            iconst_0
            invokespecial java.math.BigDecimal.<init>:(Ljava/math/BigInteger;JII)V
            astore 29 /* res */
        34: .line 5124
            aload 29 /* res */
            aload 5 /* mc */
            invokestatic java.math.BigDecimal.doRound:(Ljava/math/BigDecimal;Ljava/math/MathContext;)Ljava/math/BigDecimal;
            areturn
        end local 29 // java.math.BigDecimal res
        end local 27 // long mLo
        end local 25 // long mHi
        end local 23 // long m3
        end local 21 // long m2
        end local 19 // long m1
        end local 17 // long m0
        end local 15 // long m1_lo
        end local 13 // long m1_hi
        end local 11 // long m0_lo
        end local 9 // long m0_hi
        end local 8 // int rsign
        end local 6 // long product
        end local 5 // java.math.MathContext mc
        end local 4 // int scale
        end local 2 // long y
        end local 0 // long x
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0   35     0        x  J
            0   35     2        y  J
            0   35     4    scale  I
            0   35     5       mc  Ljava/math/MathContext;
            1   35     6  product  J
            4   35     8    rsign  I
           11   35     9    m0_hi  J
           12   35    11    m0_lo  J
           13   35    13    m1_hi  J
           14   35    15    m1_lo  J
           16   35    17       m0  J
           17   35    19       m1  J
           20   35    21       m2  J
           24   35    23       m3  J
           29   35    25      mHi  J
           30   35    27      mLo  J
           31   35    29      res  Ljava/math/BigDecimal;
    MethodParameters:
       Name  Flags
      x      
      y      
      scale  
      mc     

  private static java.math.BigDecimal multiplyAndRound(long, java.math.BigInteger, int, java.math.MathContext);
    descriptor: (JLjava/math/BigInteger;ILjava/math/MathContext;)Ljava/math/BigDecimal;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=4, locals=5, args_size=4
        start local 0 // long x
        start local 2 // java.math.BigInteger y
        start local 3 // int scale
        start local 4 // java.math.MathContext mc
         0: .line 5128
            lload 0 /* x */
            lconst_0
            lcmp
            ifne 2
         1: .line 5129
            iload 3 /* scale */
            invokestatic java.math.BigDecimal.zeroValueOf:(I)Ljava/math/BigDecimal;
            areturn
         2: .line 5131
      StackMap locals:
      StackMap stack:
            aload 2 /* y */
            lload 0 /* x */
            invokevirtual java.math.BigInteger.multiply:(J)Ljava/math/BigInteger;
            iload 3 /* scale */
            aload 4 /* mc */
            invokestatic java.math.BigDecimal.doRound:(Ljava/math/BigInteger;ILjava/math/MathContext;)Ljava/math/BigDecimal;
            areturn
        end local 4 // java.math.MathContext mc
        end local 3 // int scale
        end local 2 // java.math.BigInteger y
        end local 0 // long x
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    3     0      x  J
            0    3     2      y  Ljava/math/BigInteger;
            0    3     3  scale  I
            0    3     4     mc  Ljava/math/MathContext;
    MethodParameters:
       Name  Flags
      x      
      y      
      scale  
      mc     

  private static java.math.BigDecimal multiplyAndRound(java.math.BigInteger, java.math.BigInteger, int, java.math.MathContext);
    descriptor: (Ljava/math/BigInteger;Ljava/math/BigInteger;ILjava/math/MathContext;)Ljava/math/BigDecimal;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=3, locals=4, args_size=4
        start local 0 // java.math.BigInteger x
        start local 1 // java.math.BigInteger y
        start local 2 // int scale
        start local 3 // java.math.MathContext mc
         0: .line 5135
            aload 0 /* x */
            aload 1 /* y */
            invokevirtual java.math.BigInteger.multiply:(Ljava/math/BigInteger;)Ljava/math/BigInteger;
            iload 2 /* scale */
            aload 3 /* mc */
            invokestatic java.math.BigDecimal.doRound:(Ljava/math/BigInteger;ILjava/math/MathContext;)Ljava/math/BigDecimal;
            areturn
        end local 3 // java.math.MathContext mc
        end local 2 // int scale
        end local 1 // java.math.BigInteger y
        end local 0 // java.math.BigInteger x
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    1     0      x  Ljava/math/BigInteger;
            0    1     1      y  Ljava/math/BigInteger;
            0    1     2  scale  I
            0    1     3     mc  Ljava/math/MathContext;
    MethodParameters:
       Name  Flags
      x      
      y      
      scale  
      mc     

  private static java.math.BigDecimal doRound128(long, long, int, int, java.math.MathContext);
    descriptor: (JJIILjava/math/MathContext;)Ljava/math/BigDecimal;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=10, locals=10, args_size=5
        start local 0 // long hi
        start local 2 // long lo
        start local 4 // int sign
        start local 5 // int scale
        start local 6 // java.math.MathContext mc
         0: .line 5143
            aload 6 /* mc */
            getfield java.math.MathContext.precision:I
            istore 7 /* mcp */
        start local 7 // int mcp
         1: .line 5145
            aconst_null
            astore 9 /* res */
        start local 9 // java.math.BigDecimal res
         2: .line 5146
            lload 0 /* hi */
            lload 2 /* lo */
            invokestatic java.math.BigDecimal.precision:(JJ)I
            iload 7 /* mcp */
            isub
            dup
            istore 8 /* drop */
        start local 8 // int drop
         3: ifle 6
            iload 8 /* drop */
            getstatic java.math.BigDecimal.LONG_TEN_POWERS_TABLE:[J
            arraylength
            if_icmpge 6
         4: .line 5147
            iload 5 /* scale */
            i2l
            iload 8 /* drop */
            i2l
            lsub
            invokestatic java.math.BigDecimal.checkScaleNonZero:(J)I
            istore 5 /* scale */
         5: .line 5148
            lload 0 /* hi */
            lload 2 /* lo */
            getstatic java.math.BigDecimal.LONG_TEN_POWERS_TABLE:[J
            iload 8 /* drop */
            laload
            iload 4 /* sign */
            iload 5 /* scale */
            aload 6 /* mc */
            getfield java.math.MathContext.roundingMode:Ljava/math/RoundingMode;
            getfield java.math.RoundingMode.oldMode:I
            iload 5 /* scale */
            invokestatic java.math.BigDecimal.divideAndRound128:(JJJIIII)Ljava/math/BigDecimal;
            astore 9 /* res */
         6: .line 5150
      StackMap locals: int int java.math.BigDecimal
      StackMap stack:
            aload 9 /* res */
            ifnull 8
         7: .line 5151
            aload 9 /* res */
            aload 6 /* mc */
            invokestatic java.math.BigDecimal.doRound:(Ljava/math/BigDecimal;Ljava/math/MathContext;)Ljava/math/BigDecimal;
            areturn
         8: .line 5153
      StackMap locals:
      StackMap stack:
            aconst_null
            areturn
        end local 9 // java.math.BigDecimal res
        end local 8 // int drop
        end local 7 // int mcp
        end local 6 // java.math.MathContext mc
        end local 5 // int scale
        end local 4 // int sign
        end local 2 // long lo
        end local 0 // long hi
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    9     0     hi  J
            0    9     2     lo  J
            0    9     4   sign  I
            0    9     5  scale  I
            0    9     6     mc  Ljava/math/MathContext;
            1    9     7    mcp  I
            3    9     8   drop  I
            2    9     9    res  Ljava/math/BigDecimal;
    MethodParameters:
       Name  Flags
      hi     
      lo     
      sign   
      scale  
      mc     

  private static int precision(long, long);
    descriptor: (JJ)I
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=8, locals=6, args_size=2
        start local 0 // long hi
        start local 2 // long lo
         0: .line 5183
            lload 0 /* hi */
            lconst_0
            lcmp
            ifne 6
         1: .line 5184
            lload 2 /* lo */
            lconst_0
            lcmp
            iflt 3
         2: .line 5185
            lload 2 /* lo */
            invokestatic java.math.BigDecimal.longDigitLength:(J)I
            ireturn
         3: .line 5187
      StackMap locals:
      StackMap stack:
            lload 2 /* lo */
            getstatic java.math.BigDecimal.LONGLONG_TEN_POWERS_TABLE:[[J
            iconst_0
            aaload
            iconst_1
            laload
            invokestatic java.math.BigDecimal.unsignedLongCompareEq:(JJ)Z
            ifeq 4
            bipush 20
            goto 5
      StackMap locals:
      StackMap stack:
         4: bipush 19
      StackMap locals:
      StackMap stack: int
         5: ireturn
         6: .line 5190
      StackMap locals:
      StackMap stack:
            sipush 128
            lload 0 /* hi */
            invokestatic java.lang.Long.numberOfLeadingZeros:(J)I
            isub
            iconst_1
            iadd
            sipush 1233
            imul
            bipush 12
            iushr
            istore 4 /* r */
        start local 4 // int r
         7: .line 5191
            iload 4 /* r */
            bipush 19
            isub
            istore 5 /* idx */
        start local 5 // int idx
         8: .line 5192
            iload 5 /* idx */
            getstatic java.math.BigDecimal.LONGLONG_TEN_POWERS_TABLE:[[J
            arraylength
            if_icmpge 12
            lload 0 /* hi */
            lload 2 /* lo */
         9: .line 5193
            getstatic java.math.BigDecimal.LONGLONG_TEN_POWERS_TABLE:[[J
            iload 5 /* idx */
            aaload
            iconst_0
            laload
            getstatic java.math.BigDecimal.LONGLONG_TEN_POWERS_TABLE:[[J
            iload 5 /* idx */
            aaload
            iconst_1
            laload
        10: .line 5192
            invokestatic java.math.BigDecimal.longLongCompareMagnitude:(JJJJ)Z
        11: .line 5193
            ifeq 13
      StackMap locals: int int
      StackMap stack:
        12: iload 4 /* r */
            goto 14
      StackMap locals:
      StackMap stack:
        13: iload 4 /* r */
            iconst_1
            iadd
        14: .line 5192
      StackMap locals:
      StackMap stack: int
            ireturn
        end local 5 // int idx
        end local 4 // int r
        end local 2 // long lo
        end local 0 // long hi
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0   15     0    hi  J
            0   15     2    lo  J
            7   15     4     r  I
            8   15     5   idx  I
    MethodParameters:
      Name  Flags
      hi    
      lo    

  private static boolean longLongCompareMagnitude(long, long, long, long);
    descriptor: (JJJJ)Z
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=6, locals=8, args_size=4
        start local 0 // long hi0
        start local 2 // long lo0
        start local 4 // long hi1
        start local 6 // long lo1
         0: .line 5201
            lload 0 /* hi0 */
            lload 4 /* hi1 */
            lcmp
            ifeq 3
         1: .line 5202
            lload 0 /* hi0 */
            lload 4 /* hi1 */
            lcmp
            ifge 2
            iconst_1
            ireturn
      StackMap locals:
      StackMap stack:
         2: iconst_0
            ireturn
         3: .line 5204
      StackMap locals:
      StackMap stack:
            lload 2 /* lo0 */
            ldc -9223372036854775808
            ladd
            lload 6 /* lo1 */
            ldc -9223372036854775808
            ladd
            lcmp
            ifge 4
            iconst_1
            ireturn
      StackMap locals:
      StackMap stack:
         4: iconst_0
            ireturn
        end local 6 // long lo1
        end local 4 // long hi1
        end local 2 // long lo0
        end local 0 // long hi0
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    5     0   hi0  J
            0    5     2   lo0  J
            0    5     4   hi1  J
            0    5     6   lo1  J
    MethodParameters:
      Name  Flags
      hi0   
      lo0   
      hi1   
      lo1   

  private static java.math.BigDecimal divide(long, int, long, int, int, int);
    descriptor: (JIJIII)Ljava/math/BigDecimal;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=9, locals=13, args_size=6
        start local 0 // long dividend
        start local 2 // int dividendScale
        start local 3 // long divisor
        start local 5 // int divisorScale
        start local 6 // int scale
        start local 7 // int roundingMode
         0: .line 5208
            lload 0 /* dividend */
            iload 6 /* scale */
            i2l
            iload 5 /* divisorScale */
            i2l
            ladd
            invokestatic java.math.BigDecimal.checkScale:(JJ)I
            iload 2 /* dividendScale */
            if_icmple 12
         1: .line 5209
            iload 6 /* scale */
            iload 5 /* divisorScale */
            iadd
            istore 8 /* newScale */
        start local 8 // int newScale
         2: .line 5210
            iload 8 /* newScale */
            iload 2 /* dividendScale */
            isub
            istore 9 /* raise */
        start local 9 // int raise
         3: .line 5211
            iload 9 /* raise */
            getstatic java.math.BigDecimal.LONG_TEN_POWERS_TABLE:[J
            arraylength
            if_icmpge 10
         4: .line 5212
            lload 0 /* dividend */
            lstore 10 /* xs */
        start local 10 // long xs
         5: .line 5213
            lload 10 /* xs */
            iload 9 /* raise */
            invokestatic java.math.BigDecimal.longMultiplyPowerTen:(JI)J
            dup2
            lstore 10 /* xs */
            ldc -9223372036854775808
            lcmp
            ifeq 7
         6: .line 5214
            lload 10 /* xs */
            lload 3 /* divisor */
            iload 6 /* scale */
            iload 7 /* roundingMode */
            iload 6 /* scale */
            invokestatic java.math.BigDecimal.divideAndRound:(JJIII)Ljava/math/BigDecimal;
            areturn
         7: .line 5216
      StackMap locals: int int long
      StackMap stack:
            getstatic java.math.BigDecimal.LONG_TEN_POWERS_TABLE:[J
            iload 9 /* raise */
            laload
            lload 0 /* dividend */
            lload 3 /* divisor */
            iload 6 /* scale */
            iload 7 /* roundingMode */
            iload 6 /* scale */
            invokestatic java.math.BigDecimal.multiplyDivideAndRound:(JJJIII)Ljava/math/BigDecimal;
            astore 12 /* q */
        start local 12 // java.math.BigDecimal q
         8: .line 5217
            aload 12 /* q */
            ifnull 10
         9: .line 5218
            aload 12 /* q */
            areturn
        end local 12 // java.math.BigDecimal q
        end local 10 // long xs
        10: .line 5221
      StackMap locals:
      StackMap stack:
            lload 0 /* dividend */
            iload 9 /* raise */
            invokestatic java.math.BigDecimal.bigMultiplyPowerTen:(JI)Ljava/math/BigInteger;
            astore 10 /* scaledDividend */
        start local 10 // java.math.BigInteger scaledDividend
        11: .line 5222
            aload 10 /* scaledDividend */
            lload 3 /* divisor */
            iload 6 /* scale */
            iload 7 /* roundingMode */
            iload 6 /* scale */
            invokestatic java.math.BigDecimal.divideAndRound:(Ljava/math/BigInteger;JIII)Ljava/math/BigDecimal;
            areturn
        end local 10 // java.math.BigInteger scaledDividend
        end local 9 // int raise
        end local 8 // int newScale
        12: .line 5224
      StackMap locals:
      StackMap stack:
            lload 3 /* divisor */
            iload 2 /* dividendScale */
            i2l
            iload 6 /* scale */
            i2l
            lsub
            invokestatic java.math.BigDecimal.checkScale:(JJ)I
            istore 8 /* newScale */
        start local 8 // int newScale
        13: .line 5225
            iload 8 /* newScale */
            iload 5 /* divisorScale */
            isub
            istore 9 /* raise */
        start local 9 // int raise
        14: .line 5226
            iload 9 /* raise */
            getstatic java.math.BigDecimal.LONG_TEN_POWERS_TABLE:[J
            arraylength
            if_icmpge 18
        15: .line 5227
            lload 3 /* divisor */
            lstore 10 /* ys */
        start local 10 // long ys
        16: .line 5228
            lload 10 /* ys */
            iload 9 /* raise */
            invokestatic java.math.BigDecimal.longMultiplyPowerTen:(JI)J
            dup2
            lstore 10 /* ys */
            ldc -9223372036854775808
            lcmp
            ifeq 18
        17: .line 5229
            lload 0 /* dividend */
            lload 10 /* ys */
            iload 6 /* scale */
            iload 7 /* roundingMode */
            iload 6 /* scale */
            invokestatic java.math.BigDecimal.divideAndRound:(JJIII)Ljava/math/BigDecimal;
            areturn
        end local 10 // long ys
        18: .line 5232
      StackMap locals: int int
      StackMap stack:
            lload 3 /* divisor */
            iload 9 /* raise */
            invokestatic java.math.BigDecimal.bigMultiplyPowerTen:(JI)Ljava/math/BigInteger;
            astore 10 /* scaledDivisor */
        start local 10 // java.math.BigInteger scaledDivisor
        19: .line 5233
            lload 0 /* dividend */
            invokestatic java.math.BigInteger.valueOf:(J)Ljava/math/BigInteger;
            aload 10 /* scaledDivisor */
            iload 6 /* scale */
            iload 7 /* roundingMode */
            iload 6 /* scale */
            invokestatic java.math.BigDecimal.divideAndRound:(Ljava/math/BigInteger;Ljava/math/BigInteger;III)Ljava/math/BigDecimal;
            areturn
        end local 10 // java.math.BigInteger scaledDivisor
        end local 9 // int raise
        end local 8 // int newScale
        end local 7 // int roundingMode
        end local 6 // int scale
        end local 5 // int divisorScale
        end local 3 // long divisor
        end local 2 // int dividendScale
        end local 0 // long dividend
      LocalVariableTable:
        Start  End  Slot            Name  Signature
            0   20     0        dividend  J
            0   20     2   dividendScale  I
            0   20     3         divisor  J
            0   20     5    divisorScale  I
            0   20     6           scale  I
            0   20     7    roundingMode  I
            2   12     8        newScale  I
            3   12     9           raise  I
            5   10    10              xs  J
            8   10    12               q  Ljava/math/BigDecimal;
           11   12    10  scaledDividend  Ljava/math/BigInteger;
           13   20     8        newScale  I
           14   20     9           raise  I
           16   18    10              ys  J
           19   20    10   scaledDivisor  Ljava/math/BigInteger;
    MethodParameters:
               Name  Flags
      dividend       
      dividendScale  
      divisor        
      divisorScale   
      scale          
      roundingMode   

  private static java.math.BigDecimal divide(java.math.BigInteger, int, long, int, int, int);
    descriptor: (Ljava/math/BigInteger;IJIII)Ljava/math/BigDecimal;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=6, locals=11, args_size=6
        start local 0 // java.math.BigInteger dividend
        start local 1 // int dividendScale
        start local 2 // long divisor
        start local 4 // int divisorScale
        start local 5 // int scale
        start local 6 // int roundingMode
         0: .line 5238
            aload 0 /* dividend */
            iload 5 /* scale */
            i2l
            iload 4 /* divisorScale */
            i2l
            ladd
            invokestatic java.math.BigDecimal.checkScale:(Ljava/math/BigInteger;J)I
            iload 1 /* dividendScale */
            if_icmple 5
         1: .line 5239
            iload 5 /* scale */
            iload 4 /* divisorScale */
            iadd
            istore 7 /* newScale */
        start local 7 // int newScale
         2: .line 5240
            iload 7 /* newScale */
            iload 1 /* dividendScale */
            isub
            istore 8 /* raise */
        start local 8 // int raise
         3: .line 5241
            aload 0 /* dividend */
            iload 8 /* raise */
            invokestatic java.math.BigDecimal.bigMultiplyPowerTen:(Ljava/math/BigInteger;I)Ljava/math/BigInteger;
            astore 9 /* scaledDividend */
        start local 9 // java.math.BigInteger scaledDividend
         4: .line 5242
            aload 9 /* scaledDividend */
            lload 2 /* divisor */
            iload 5 /* scale */
            iload 6 /* roundingMode */
            iload 5 /* scale */
            invokestatic java.math.BigDecimal.divideAndRound:(Ljava/math/BigInteger;JIII)Ljava/math/BigDecimal;
            areturn
        end local 9 // java.math.BigInteger scaledDividend
        end local 8 // int raise
        end local 7 // int newScale
         5: .line 5244
      StackMap locals:
      StackMap stack:
            lload 2 /* divisor */
            iload 1 /* dividendScale */
            i2l
            iload 5 /* scale */
            i2l
            lsub
            invokestatic java.math.BigDecimal.checkScale:(JJ)I
            istore 7 /* newScale */
        start local 7 // int newScale
         6: .line 5245
            iload 7 /* newScale */
            iload 4 /* divisorScale */
            isub
            istore 8 /* raise */
        start local 8 // int raise
         7: .line 5246
            iload 8 /* raise */
            getstatic java.math.BigDecimal.LONG_TEN_POWERS_TABLE:[J
            arraylength
            if_icmpge 11
         8: .line 5247
            lload 2 /* divisor */
            lstore 9 /* ys */
        start local 9 // long ys
         9: .line 5248
            lload 9 /* ys */
            iload 8 /* raise */
            invokestatic java.math.BigDecimal.longMultiplyPowerTen:(JI)J
            dup2
            lstore 9 /* ys */
            ldc -9223372036854775808
            lcmp
            ifeq 11
        10: .line 5249
            aload 0 /* dividend */
            lload 9 /* ys */
            iload 5 /* scale */
            iload 6 /* roundingMode */
            iload 5 /* scale */
            invokestatic java.math.BigDecimal.divideAndRound:(Ljava/math/BigInteger;JIII)Ljava/math/BigDecimal;
            areturn
        end local 9 // long ys
        11: .line 5252
      StackMap locals: int int
      StackMap stack:
            lload 2 /* divisor */
            iload 8 /* raise */
            invokestatic java.math.BigDecimal.bigMultiplyPowerTen:(JI)Ljava/math/BigInteger;
            astore 9 /* scaledDivisor */
        start local 9 // java.math.BigInteger scaledDivisor
        12: .line 5253
            aload 0 /* dividend */
            aload 9 /* scaledDivisor */
            iload 5 /* scale */
            iload 6 /* roundingMode */
            iload 5 /* scale */
            invokestatic java.math.BigDecimal.divideAndRound:(Ljava/math/BigInteger;Ljava/math/BigInteger;III)Ljava/math/BigDecimal;
            areturn
        end local 9 // java.math.BigInteger scaledDivisor
        end local 8 // int raise
        end local 7 // int newScale
        end local 6 // int roundingMode
        end local 5 // int scale
        end local 4 // int divisorScale
        end local 2 // long divisor
        end local 1 // int dividendScale
        end local 0 // java.math.BigInteger dividend
      LocalVariableTable:
        Start  End  Slot            Name  Signature
            0   13     0        dividend  Ljava/math/BigInteger;
            0   13     1   dividendScale  I
            0   13     2         divisor  J
            0   13     4    divisorScale  I
            0   13     5           scale  I
            0   13     6    roundingMode  I
            2    5     7        newScale  I
            3    5     8           raise  I
            4    5     9  scaledDividend  Ljava/math/BigInteger;
            6   13     7        newScale  I
            7   13     8           raise  I
            9   11     9              ys  J
           12   13     9   scaledDivisor  Ljava/math/BigInteger;
    MethodParameters:
               Name  Flags
      dividend       
      dividendScale  
      divisor        
      divisorScale   
      scale          
      roundingMode   

  private static java.math.BigDecimal divide(long, int, java.math.BigInteger, int, int, int);
    descriptor: (JILjava/math/BigInteger;III)Ljava/math/BigDecimal;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=6, locals=10, args_size=6
        start local 0 // long dividend
        start local 2 // int dividendScale
        start local 3 // java.math.BigInteger divisor
        start local 4 // int divisorScale
        start local 5 // int scale
        start local 6 // int roundingMode
         0: .line 5258
            lload 0 /* dividend */
            iload 5 /* scale */
            i2l
            iload 4 /* divisorScale */
            i2l
            ladd
            invokestatic java.math.BigDecimal.checkScale:(JJ)I
            iload 2 /* dividendScale */
            if_icmple 5
         1: .line 5259
            iload 5 /* scale */
            iload 4 /* divisorScale */
            iadd
            istore 7 /* newScale */
        start local 7 // int newScale
         2: .line 5260
            iload 7 /* newScale */
            iload 2 /* dividendScale */
            isub
            istore 8 /* raise */
        start local 8 // int raise
         3: .line 5261
            lload 0 /* dividend */
            iload 8 /* raise */
            invokestatic java.math.BigDecimal.bigMultiplyPowerTen:(JI)Ljava/math/BigInteger;
            astore 9 /* scaledDividend */
        start local 9 // java.math.BigInteger scaledDividend
         4: .line 5262
            aload 9 /* scaledDividend */
            aload 3 /* divisor */
            iload 5 /* scale */
            iload 6 /* roundingMode */
            iload 5 /* scale */
            invokestatic java.math.BigDecimal.divideAndRound:(Ljava/math/BigInteger;Ljava/math/BigInteger;III)Ljava/math/BigDecimal;
            areturn
        end local 9 // java.math.BigInteger scaledDividend
        end local 8 // int raise
        end local 7 // int newScale
         5: .line 5264
      StackMap locals:
      StackMap stack:
            aload 3 /* divisor */
            iload 2 /* dividendScale */
            i2l
            iload 5 /* scale */
            i2l
            lsub
            invokestatic java.math.BigDecimal.checkScale:(Ljava/math/BigInteger;J)I
            istore 7 /* newScale */
        start local 7 // int newScale
         6: .line 5265
            iload 7 /* newScale */
            iload 4 /* divisorScale */
            isub
            istore 8 /* raise */
        start local 8 // int raise
         7: .line 5266
            aload 3 /* divisor */
            iload 8 /* raise */
            invokestatic java.math.BigDecimal.bigMultiplyPowerTen:(Ljava/math/BigInteger;I)Ljava/math/BigInteger;
            astore 9 /* scaledDivisor */
        start local 9 // java.math.BigInteger scaledDivisor
         8: .line 5267
            lload 0 /* dividend */
            invokestatic java.math.BigInteger.valueOf:(J)Ljava/math/BigInteger;
            aload 9 /* scaledDivisor */
            iload 5 /* scale */
            iload 6 /* roundingMode */
            iload 5 /* scale */
            invokestatic java.math.BigDecimal.divideAndRound:(Ljava/math/BigInteger;Ljava/math/BigInteger;III)Ljava/math/BigDecimal;
            areturn
        end local 9 // java.math.BigInteger scaledDivisor
        end local 8 // int raise
        end local 7 // int newScale
        end local 6 // int roundingMode
        end local 5 // int scale
        end local 4 // int divisorScale
        end local 3 // java.math.BigInteger divisor
        end local 2 // int dividendScale
        end local 0 // long dividend
      LocalVariableTable:
        Start  End  Slot            Name  Signature
            0    9     0        dividend  J
            0    9     2   dividendScale  I
            0    9     3         divisor  Ljava/math/BigInteger;
            0    9     4    divisorScale  I
            0    9     5           scale  I
            0    9     6    roundingMode  I
            2    5     7        newScale  I
            3    5     8           raise  I
            4    5     9  scaledDividend  Ljava/math/BigInteger;
            6    9     7        newScale  I
            7    9     8           raise  I
            8    9     9   scaledDivisor  Ljava/math/BigInteger;
    MethodParameters:
               Name  Flags
      dividend       
      dividendScale  
      divisor        
      divisorScale   
      scale          
      roundingMode   

  private static java.math.BigDecimal divide(java.math.BigInteger, int, java.math.BigInteger, int, int, int);
    descriptor: (Ljava/math/BigInteger;ILjava/math/BigInteger;III)Ljava/math/BigDecimal;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=5, locals=9, args_size=6
        start local 0 // java.math.BigInteger dividend
        start local 1 // int dividendScale
        start local 2 // java.math.BigInteger divisor
        start local 3 // int divisorScale
        start local 4 // int scale
        start local 5 // int roundingMode
         0: .line 5272
            aload 0 /* dividend */
            iload 4 /* scale */
            i2l
            iload 3 /* divisorScale */
            i2l
            ladd
            invokestatic java.math.BigDecimal.checkScale:(Ljava/math/BigInteger;J)I
            iload 1 /* dividendScale */
            if_icmple 5
         1: .line 5273
            iload 4 /* scale */
            iload 3 /* divisorScale */
            iadd
            istore 6 /* newScale */
        start local 6 // int newScale
         2: .line 5274
            iload 6 /* newScale */
            iload 1 /* dividendScale */
            isub
            istore 7 /* raise */
        start local 7 // int raise
         3: .line 5275
            aload 0 /* dividend */
            iload 7 /* raise */
            invokestatic java.math.BigDecimal.bigMultiplyPowerTen:(Ljava/math/BigInteger;I)Ljava/math/BigInteger;
            astore 8 /* scaledDividend */
        start local 8 // java.math.BigInteger scaledDividend
         4: .line 5276
            aload 8 /* scaledDividend */
            aload 2 /* divisor */
            iload 4 /* scale */
            iload 5 /* roundingMode */
            iload 4 /* scale */
            invokestatic java.math.BigDecimal.divideAndRound:(Ljava/math/BigInteger;Ljava/math/BigInteger;III)Ljava/math/BigDecimal;
            areturn
        end local 8 // java.math.BigInteger scaledDividend
        end local 7 // int raise
        end local 6 // int newScale
         5: .line 5278
      StackMap locals:
      StackMap stack:
            aload 2 /* divisor */
            iload 1 /* dividendScale */
            i2l
            iload 4 /* scale */
            i2l
            lsub
            invokestatic java.math.BigDecimal.checkScale:(Ljava/math/BigInteger;J)I
            istore 6 /* newScale */
        start local 6 // int newScale
         6: .line 5279
            iload 6 /* newScale */
            iload 3 /* divisorScale */
            isub
            istore 7 /* raise */
        start local 7 // int raise
         7: .line 5280
            aload 2 /* divisor */
            iload 7 /* raise */
            invokestatic java.math.BigDecimal.bigMultiplyPowerTen:(Ljava/math/BigInteger;I)Ljava/math/BigInteger;
            astore 8 /* scaledDivisor */
        start local 8 // java.math.BigInteger scaledDivisor
         8: .line 5281
            aload 0 /* dividend */
            aload 8 /* scaledDivisor */
            iload 4 /* scale */
            iload 5 /* roundingMode */
            iload 4 /* scale */
            invokestatic java.math.BigDecimal.divideAndRound:(Ljava/math/BigInteger;Ljava/math/BigInteger;III)Ljava/math/BigDecimal;
            areturn
        end local 8 // java.math.BigInteger scaledDivisor
        end local 7 // int raise
        end local 6 // int newScale
        end local 5 // int roundingMode
        end local 4 // int scale
        end local 3 // int divisorScale
        end local 2 // java.math.BigInteger divisor
        end local 1 // int dividendScale
        end local 0 // java.math.BigInteger dividend
      LocalVariableTable:
        Start  End  Slot            Name  Signature
            0    9     0        dividend  Ljava/math/BigInteger;
            0    9     1   dividendScale  I
            0    9     2         divisor  Ljava/math/BigInteger;
            0    9     3    divisorScale  I
            0    9     4           scale  I
            0    9     5    roundingMode  I
            2    5     6        newScale  I
            3    5     7           raise  I
            4    5     8  scaledDividend  Ljava/math/BigInteger;
            6    9     6        newScale  I
            7    9     7           raise  I
            8    9     8   scaledDivisor  Ljava/math/BigInteger;
    MethodParameters:
               Name  Flags
      dividend       
      dividendScale  
      divisor        
      divisorScale   
      scale          
      roundingMode   

  public int compareTo(java.lang.Object);
    descriptor: (Ljava/lang/Object;)I
    flags: (0x1041) ACC_PUBLIC, ACC_BRIDGE, ACC_SYNTHETIC
    Code:
      stack=2, locals=2, args_size=2
         0: .line 1
            aload 0
            aload 1
            checkcast java.math.BigDecimal
            invokevirtual java.math.BigDecimal.compareTo:(Ljava/math/BigDecimal;)I
            ireturn
      LocalVariableTable:
        Start  End  Slot  Name  Signature
}
Signature: Ljava/lang/Number;Ljava/lang/Comparable<Ljava/math/BigDecimal;>;
SourceFile: "BigDecimal.java"
NestMembers:
  java.math.BigDecimal$1  java.math.BigDecimal$LongOverflow  java.math.BigDecimal$StringBuilderHelper  java.math.BigDecimal$UnsafeHolder
InnerClasses:
  java.math.BigDecimal$1
  private LongOverflow = java.math.BigDecimal$LongOverflow of java.math.BigDecimal
  StringBuilderHelper = java.math.BigDecimal$StringBuilderHelper of java.math.BigDecimal
  private UnsafeHolder = java.math.BigDecimal$UnsafeHolder of java.math.BigDecimal