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

  private final java.lang.String currencyCode;
    descriptor: Ljava/lang/String;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private final transient int defaultFractionDigits;
    descriptor: I
    flags: (0x0092) ACC_PRIVATE, ACC_FINAL, ACC_TRANSIENT

  private final transient int numericCode;
    descriptor: I
    flags: (0x0092) ACC_PRIVATE, ACC_FINAL, ACC_TRANSIENT

  private static java.util.concurrent.ConcurrentMap<java.lang.String, java.util.Currency> instances;
    descriptor: Ljava/util/concurrent/ConcurrentMap;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Signature: Ljava/util/concurrent/ConcurrentMap<Ljava/lang/String;Ljava/util/Currency;>;

  private static java.util.HashSet<java.util.Currency> available;
    descriptor: Ljava/util/HashSet;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Signature: Ljava/util/HashSet<Ljava/util/Currency;>;

  static int formatVersion;
    descriptor: I
    flags: (0x0008) ACC_STATIC

  static int dataVersion;
    descriptor: I
    flags: (0x0008) ACC_STATIC

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

  static long[] scCutOverTimes;
    descriptor: [J
    flags: (0x0008) ACC_STATIC

  static java.lang.String[] scOldCurrencies;
    descriptor: [Ljava/lang/String;
    flags: (0x0008) ACC_STATIC

  static java.lang.String[] scNewCurrencies;
    descriptor: [Ljava/lang/String;
    flags: (0x0008) ACC_STATIC

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

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

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

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

  static java.lang.String otherCurrencies;
    descriptor: Ljava/lang/String;
    flags: (0x0008) ACC_STATIC

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

  static void <clinit>();
    descriptor: ()V
    flags: (0x0008) ACC_STATIC
    Code:
      stack=3, locals=0, args_size=0
         0: .line 123
            new java.util.concurrent.ConcurrentHashMap
            dup
            bipush 7
            invokespecial java.util.concurrent.ConcurrentHashMap.<init>:(I)V
            putstatic java.util.Currency.instances:Ljava/util/concurrent/ConcurrentMap;
         1: .line 214
            new java.util.Currency$1
            dup
            invokespecial java.util.Currency$1.<init>:()V
            invokestatic java.security.AccessController.doPrivileged:(Ljava/security/PrivilegedAction;)Ljava/lang/Object;
            pop
         2: .line 286
            return
      LocalVariableTable:
        Start  End  Slot  Name  Signature

  private void <init>(java.lang.String, int, int);
    descriptor: (Ljava/lang/String;II)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=2, locals=4, args_size=4
        start local 0 // java.util.Currency this
        start local 1 // java.lang.String currencyCode
        start local 2 // int defaultFractionDigits
        start local 3 // int numericCode
         0: .line 294
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
         1: .line 295
            aload 0 /* this */
            aload 1 /* currencyCode */
            putfield java.util.Currency.currencyCode:Ljava/lang/String;
         2: .line 296
            aload 0 /* this */
            iload 2 /* defaultFractionDigits */
            putfield java.util.Currency.defaultFractionDigits:I
         3: .line 297
            aload 0 /* this */
            iload 3 /* numericCode */
            putfield java.util.Currency.numericCode:I
         4: .line 298
            return
        end local 3 // int numericCode
        end local 2 // int defaultFractionDigits
        end local 1 // java.lang.String currencyCode
        end local 0 // java.util.Currency this
      LocalVariableTable:
        Start  End  Slot                   Name  Signature
            0    5     0                   this  Ljava/util/Currency;
            0    5     1           currencyCode  Ljava/lang/String;
            0    5     2  defaultFractionDigits  I
            0    5     3            numericCode  I
    MethodParameters:
                       Name  Flags
      currencyCode           
      defaultFractionDigits  
      numericCode            

  public static java.util.Currency getInstance(java.lang.String);
    descriptor: (Ljava/lang/String;)Ljava/util/Currency;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=3, locals=1, args_size=1
        start local 0 // java.lang.String currencyCode
         0: .line 310
            aload 0 /* currencyCode */
            ldc -2147483648
            iconst_0
            invokestatic java.util.Currency.getInstance:(Ljava/lang/String;II)Ljava/util/Currency;
            areturn
        end local 0 // java.lang.String currencyCode
      LocalVariableTable:
        Start  End  Slot          Name  Signature
            0    1     0  currencyCode  Ljava/lang/String;
    MethodParameters:
              Name  Flags
      currencyCode  

  private static java.util.Currency getInstance(java.lang.String, int, int);
    descriptor: (Ljava/lang/String;II)Ljava/util/Currency;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=5, locals=8, args_size=3
        start local 0 // java.lang.String currencyCode
        start local 1 // int defaultFractionDigits
        start local 2 // int numericCode
         0: .line 318
            getstatic java.util.Currency.instances:Ljava/util/concurrent/ConcurrentMap;
            aload 0 /* currencyCode */
            invokeinterface java.util.concurrent.ConcurrentMap.get:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast java.util.Currency
            astore 3 /* instance */
        start local 3 // java.util.Currency instance
         1: .line 319
            aload 3 /* instance */
            ifnull 3
         2: .line 320
            aload 3 /* instance */
            areturn
         3: .line 323
      StackMap locals: java.util.Currency
      StackMap stack:
            iload 1 /* defaultFractionDigits */
            ldc -2147483648
            if_icmpne 22
         4: .line 327
            aload 0 /* currencyCode */
            invokevirtual java.lang.String.length:()I
            iconst_3
            if_icmpeq 6
         5: .line 328
            new java.lang.IllegalArgumentException
            dup
            invokespecial java.lang.IllegalArgumentException.<init>:()V
            athrow
         6: .line 330
      StackMap locals:
      StackMap stack:
            aload 0 /* currencyCode */
            iconst_0
            invokevirtual java.lang.String.charAt:(I)C
            istore 4 /* char1 */
        start local 4 // char char1
         7: .line 331
            aload 0 /* currencyCode */
            iconst_1
            invokevirtual java.lang.String.charAt:(I)C
            istore 5 /* char2 */
        start local 5 // char char2
         8: .line 332
            iload 4 /* char1 */
            iload 5 /* char2 */
            invokestatic java.util.Currency.getMainTableEntry:(CC)I
            istore 6 /* tableEntry */
        start local 6 // int tableEntry
         9: .line 333
            iload 6 /* tableEntry */
            sipush 512
            iand
            ifne 15
        10: .line 334
            iload 6 /* tableEntry */
            bipush 127
            if_icmpeq 15
        11: .line 335
            aload 0 /* currencyCode */
            iconst_2
            invokevirtual java.lang.String.charAt:(I)C
            bipush 65
            isub
            iload 6 /* tableEntry */
            bipush 31
            iand
            if_icmpne 15
        12: .line 336
            iload 6 /* tableEntry */
            sipush 480
            iand
            iconst_5
            ishr
            istore 1 /* defaultFractionDigits */
        13: .line 337
            iload 6 /* tableEntry */
            ldc 1047552
            iand
            bipush 10
            ishr
            istore 2 /* numericCode */
        14: .line 338
            goto 22
        15: .line 340
      StackMap locals: int int int
      StackMap stack:
            aload 0 /* currencyCode */
            iconst_2
            invokevirtual java.lang.String.charAt:(I)C
            bipush 45
            if_icmpne 17
        16: .line 341
            new java.lang.IllegalArgumentException
            dup
            invokespecial java.lang.IllegalArgumentException.<init>:()V
            athrow
        17: .line 343
      StackMap locals:
      StackMap stack:
            getstatic java.util.Currency.otherCurrencies:Ljava/lang/String;
            aload 0 /* currencyCode */
            invokevirtual java.lang.String.indexOf:(Ljava/lang/String;)I
            istore 7 /* index */
        start local 7 // int index
        18: .line 344
            iload 7 /* index */
            iconst_m1
            if_icmpne 20
        19: .line 345
            new java.lang.IllegalArgumentException
            dup
            invokespecial java.lang.IllegalArgumentException.<init>:()V
            athrow
        20: .line 347
      StackMap locals: int
      StackMap stack:
            getstatic java.util.Currency.otherCurrenciesDFD:[I
            iload 7 /* index */
            iconst_4
            idiv
            iaload
            istore 1 /* defaultFractionDigits */
        21: .line 348
            getstatic java.util.Currency.otherCurrenciesNumericCode:[I
            iload 7 /* index */
            iconst_4
            idiv
            iaload
            istore 2 /* numericCode */
        end local 7 // int index
        end local 6 // int tableEntry
        end local 5 // char char2
        end local 4 // char char1
        22: .line 353
      StackMap locals: java.lang.String int int java.util.Currency
      StackMap stack:
            new java.util.Currency
            dup
            aload 0 /* currencyCode */
            iload 1 /* defaultFractionDigits */
            iload 2 /* numericCode */
            invokespecial java.util.Currency.<init>:(Ljava/lang/String;II)V
        23: .line 352
            astore 4 /* currencyVal */
        start local 4 // java.util.Currency currencyVal
        24: .line 354
            getstatic java.util.Currency.instances:Ljava/util/concurrent/ConcurrentMap;
            aload 0 /* currencyCode */
            aload 4 /* currencyVal */
            invokeinterface java.util.concurrent.ConcurrentMap.putIfAbsent:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            checkcast java.util.Currency
            astore 3 /* instance */
        25: .line 355
            aload 3 /* instance */
            ifnull 26
            aload 3 /* instance */
            goto 27
      StackMap locals: java.util.Currency
      StackMap stack:
        26: aload 4 /* currencyVal */
      StackMap locals:
      StackMap stack: java.util.Currency
        27: areturn
        end local 4 // java.util.Currency currencyVal
        end local 3 // java.util.Currency instance
        end local 2 // int numericCode
        end local 1 // int defaultFractionDigits
        end local 0 // java.lang.String currencyCode
      LocalVariableTable:
        Start  End  Slot                   Name  Signature
            0   28     0           currencyCode  Ljava/lang/String;
            0   28     1  defaultFractionDigits  I
            0   28     2            numericCode  I
            1   28     3               instance  Ljava/util/Currency;
            7   22     4                  char1  C
            8   22     5                  char2  C
            9   22     6             tableEntry  I
           18   22     7                  index  I
           24   28     4            currencyVal  Ljava/util/Currency;
    MethodParameters:
                       Name  Flags
      currencyCode           
      defaultFractionDigits  
      numericCode            

  public static java.util.Currency getInstance(java.util.Locale);
    descriptor: (Ljava/util/Locale;)Ljava/util/Currency;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=4, locals=9, args_size=1
        start local 0 // java.util.Locale locale
         0: .line 380
            aload 0 /* locale */
            invokevirtual java.util.Locale.getCountry:()Ljava/lang/String;
            astore 1 /* country */
        start local 1 // java.lang.String country
         1: .line 381
            aload 1 /* country */
            ifnonnull 3
         2: .line 382
            new java.lang.NullPointerException
            dup
            invokespecial java.lang.NullPointerException.<init>:()V
            athrow
         3: .line 385
      StackMap locals: java.lang.String
      StackMap stack:
            aload 1 /* country */
            invokevirtual java.lang.String.length:()I
            iconst_2
            if_icmpeq 5
         4: .line 386
            new java.lang.IllegalArgumentException
            dup
            invokespecial java.lang.IllegalArgumentException.<init>:()V
            athrow
         5: .line 389
      StackMap locals:
      StackMap stack:
            aload 1 /* country */
            iconst_0
            invokevirtual java.lang.String.charAt:(I)C
            istore 2 /* char1 */
        start local 2 // char char1
         6: .line 390
            aload 1 /* country */
            iconst_1
            invokevirtual java.lang.String.charAt:(I)C
            istore 3 /* char2 */
        start local 3 // char char2
         7: .line 391
            iload 2 /* char1 */
            iload 3 /* char2 */
            invokestatic java.util.Currency.getMainTableEntry:(CC)I
            istore 4 /* tableEntry */
        start local 4 // int tableEntry
         8: .line 392
            iload 4 /* tableEntry */
            sipush 512
            iand
            ifne 16
         9: .line 393
            iload 4 /* tableEntry */
            bipush 127
            if_icmpeq 16
        10: .line 394
            iload 4 /* tableEntry */
            bipush 31
            iand
            bipush 65
            iadd
            i2c
            istore 5 /* finalChar */
        start local 5 // char finalChar
        11: .line 395
            iload 4 /* tableEntry */
            sipush 480
            iand
            iconst_5
            ishr
            istore 6 /* defaultFractionDigits */
        start local 6 // int defaultFractionDigits
        12: .line 396
            iload 4 /* tableEntry */
            ldc 1047552
            iand
            bipush 10
            ishr
            istore 7 /* numericCode */
        start local 7 // int numericCode
        13: .line 397
            new java.lang.StringBuilder
            dup
            aload 1 /* country */
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            astore 8 /* sb */
        start local 8 // java.lang.StringBuilder sb
        14: .line 398
            aload 8 /* sb */
            iload 5 /* finalChar */
            invokevirtual java.lang.StringBuilder.append:(C)Ljava/lang/StringBuilder;
            pop
        15: .line 399
            aload 8 /* sb */
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            iload 6 /* defaultFractionDigits */
            iload 7 /* numericCode */
            invokestatic java.util.Currency.getInstance:(Ljava/lang/String;II)Ljava/util/Currency;
            areturn
        end local 8 // java.lang.StringBuilder sb
        end local 7 // int numericCode
        end local 6 // int defaultFractionDigits
        end local 5 // char finalChar
        16: .line 402
      StackMap locals: int int int
      StackMap stack:
            iload 4 /* tableEntry */
            bipush 127
            if_icmpne 18
        17: .line 403
            new java.lang.IllegalArgumentException
            dup
            invokespecial java.lang.IllegalArgumentException.<init>:()V
            athrow
        18: .line 405
      StackMap locals:
      StackMap stack:
            iload 4 /* tableEntry */
            sipush 512
            if_icmpne 20
        19: .line 406
            aconst_null
            areturn
        20: .line 408
      StackMap locals:
      StackMap stack:
            iload 4 /* tableEntry */
            bipush 31
            iand
            iconst_1
            isub
            istore 5 /* index */
        start local 5 // int index
        21: .line 409
            getstatic java.util.Currency.scCutOverTimes:[J
            iload 5 /* index */
            laload
            ldc 9223372036854775807
            lcmp
            ifeq 22
            invokestatic java.lang.System.currentTimeMillis:()J
            getstatic java.util.Currency.scCutOverTimes:[J
            iload 5 /* index */
            laload
            lcmp
            ifge 25
        22: .line 410
      StackMap locals: int
      StackMap stack:
            getstatic java.util.Currency.scOldCurrencies:[Ljava/lang/String;
            iload 5 /* index */
            aaload
            getstatic java.util.Currency.scOldCurrenciesDFD:[I
            iload 5 /* index */
            iaload
        23: .line 411
            getstatic java.util.Currency.scOldCurrenciesNumericCode:[I
            iload 5 /* index */
            iaload
        24: .line 410
            invokestatic java.util.Currency.getInstance:(Ljava/lang/String;II)Ljava/util/Currency;
            areturn
        25: .line 413
      StackMap locals:
      StackMap stack:
            getstatic java.util.Currency.scNewCurrencies:[Ljava/lang/String;
            iload 5 /* index */
            aaload
            getstatic java.util.Currency.scNewCurrenciesDFD:[I
            iload 5 /* index */
            iaload
        26: .line 414
            getstatic java.util.Currency.scNewCurrenciesNumericCode:[I
            iload 5 /* index */
            iaload
        27: .line 413
            invokestatic java.util.Currency.getInstance:(Ljava/lang/String;II)Ljava/util/Currency;
            areturn
        end local 5 // int index
        end local 4 // int tableEntry
        end local 3 // char char2
        end local 2 // char char1
        end local 1 // java.lang.String country
        end local 0 // java.util.Locale locale
      LocalVariableTable:
        Start  End  Slot                   Name  Signature
            0   28     0                 locale  Ljava/util/Locale;
            1   28     1                country  Ljava/lang/String;
            6   28     2                  char1  C
            7   28     3                  char2  C
            8   28     4             tableEntry  I
           11   16     5              finalChar  C
           12   16     6  defaultFractionDigits  I
           13   16     7            numericCode  I
           14   16     8                     sb  Ljava/lang/StringBuilder;
           21   28     5                  index  I
    MethodParameters:
        Name  Flags
      locale  

  public static java.util.Set<java.util.Currency> getAvailableCurrencies();
    descriptor: ()Ljava/util/Set;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=4, locals=8, args_size=0
         0: .line 431
            ldc Ljava/util/Currency;
            dup
            astore 0
            monitorenter
         1: .line 432
            getstatic java.util.Currency.available:Ljava/util/HashSet;
            ifnonnull 26
         2: .line 433
            new java.util.HashSet
            dup
            sipush 256
            invokespecial java.util.HashSet.<init>:(I)V
            putstatic java.util.Currency.available:Ljava/util/HashSet;
         3: .line 436
            bipush 65
            istore 1 /* c1 */
        start local 1 // char c1
         4: goto 21
         5: .line 437
      StackMap locals: java.lang.Class int
      StackMap stack:
            bipush 65
            istore 2 /* c2 */
        start local 2 // char c2
         6: goto 19
         7: .line 438
      StackMap locals: int
      StackMap stack:
            iload 1 /* c1 */
            iload 2 /* c2 */
            invokestatic java.util.Currency.getMainTableEntry:(CC)I
            istore 3 /* tableEntry */
        start local 3 // int tableEntry
         8: .line 439
            iload 3 /* tableEntry */
            sipush 512
            iand
            ifne 18
         9: .line 440
            iload 3 /* tableEntry */
            bipush 127
            if_icmpeq 18
        10: .line 441
            iload 3 /* tableEntry */
            bipush 31
            iand
            bipush 65
            iadd
            i2c
            istore 4 /* finalChar */
        start local 4 // char finalChar
        11: .line 442
            iload 3 /* tableEntry */
            sipush 480
            iand
            iconst_5
            ishr
            istore 5 /* defaultFractionDigits */
        start local 5 // int defaultFractionDigits
        12: .line 443
            iload 3 /* tableEntry */
            ldc 1047552
            iand
            bipush 10
            ishr
            istore 6 /* numericCode */
        start local 6 // int numericCode
        13: .line 444
            new java.lang.StringBuilder
            dup
            invokespecial java.lang.StringBuilder.<init>:()V
            astore 7 /* sb */
        start local 7 // java.lang.StringBuilder sb
        14: .line 445
            aload 7 /* sb */
            iload 1 /* c1 */
            invokevirtual java.lang.StringBuilder.append:(C)Ljava/lang/StringBuilder;
            pop
        15: .line 446
            aload 7 /* sb */
            iload 2 /* c2 */
            invokevirtual java.lang.StringBuilder.append:(C)Ljava/lang/StringBuilder;
            pop
        16: .line 447
            aload 7 /* sb */
            iload 4 /* finalChar */
            invokevirtual java.lang.StringBuilder.append:(C)Ljava/lang/StringBuilder;
            pop
        17: .line 448
            getstatic java.util.Currency.available:Ljava/util/HashSet;
            aload 7 /* sb */
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            iload 5 /* defaultFractionDigits */
            iload 6 /* numericCode */
            invokestatic java.util.Currency.getInstance:(Ljava/lang/String;II)Ljava/util/Currency;
            invokevirtual java.util.HashSet.add:(Ljava/lang/Object;)Z
            pop
        end local 7 // java.lang.StringBuilder sb
        end local 6 // int numericCode
        end local 5 // int defaultFractionDigits
        end local 4 // char finalChar
        end local 3 // int tableEntry
        18: .line 437
      StackMap locals:
      StackMap stack:
            iload 2 /* c2 */
            iconst_1
            iadd
            i2c
            istore 2 /* c2 */
      StackMap locals:
      StackMap stack:
        19: iload 2 /* c2 */
            bipush 90
            if_icmple 7
        end local 2 // char c2
        20: .line 436
            iload 1 /* c1 */
            iconst_1
            iadd
            i2c
            istore 1 /* c1 */
      StackMap locals:
      StackMap stack:
        21: iload 1 /* c1 */
            bipush 90
            if_icmple 5
        end local 1 // char c1
        22: .line 454
            new java.util.StringTokenizer
            dup
            getstatic java.util.Currency.otherCurrencies:Ljava/lang/String;
            ldc "-"
            invokespecial java.util.StringTokenizer.<init>:(Ljava/lang/String;Ljava/lang/String;)V
            astore 1 /* st */
        start local 1 // java.util.StringTokenizer st
        23: .line 455
            goto 25
        24: .line 456
      StackMap locals: java.lang.Class java.util.StringTokenizer
      StackMap stack:
            getstatic java.util.Currency.available:Ljava/util/HashSet;
            aload 1 /* st */
            invokevirtual java.util.StringTokenizer.nextElement:()Ljava/lang/Object;
            checkcast java.lang.String
            invokestatic java.util.Currency.getInstance:(Ljava/lang/String;)Ljava/util/Currency;
            invokevirtual java.util.HashSet.add:(Ljava/lang/Object;)Z
            pop
        25: .line 455
      StackMap locals:
      StackMap stack:
            aload 1 /* st */
            invokevirtual java.util.StringTokenizer.hasMoreElements:()Z
            ifne 24
        end local 1 // java.util.StringTokenizer st
        26: .line 431
      StackMap locals:
      StackMap stack:
            aload 0
            monitorexit
        27: goto 30
      StackMap locals:
      StackMap stack: java.lang.Throwable
        28: aload 0
            monitorexit
        29: athrow
        30: .line 462
      StackMap locals:
      StackMap stack:
            getstatic java.util.Currency.available:Ljava/util/HashSet;
            invokevirtual java.util.HashSet.clone:()Ljava/lang/Object;
            checkcast java.util.Set
            astore 0 /* result */
        start local 0 // java.util.Set result
        31: .line 463
            aload 0 /* result */
            areturn
        end local 0 // java.util.Set result
      LocalVariableTable:
        Start  End  Slot                   Name  Signature
            4   22     1                     c1  C
            6   20     2                     c2  C
            8   18     3             tableEntry  I
           11   18     4              finalChar  C
           12   18     5  defaultFractionDigits  I
           13   18     6            numericCode  I
           14   18     7                     sb  Ljava/lang/StringBuilder;
           23   26     1                     st  Ljava/util/StringTokenizer;
           31   32     0                 result  Ljava/util/Set<Ljava/util/Currency;>;
      Exception table:
        from    to  target  type
           1    27      28  any
          28    29      28  any
    Signature: ()Ljava/util/Set<Ljava/util/Currency;>;

  public java.lang.String getCurrencyCode();
    descriptor: ()Ljava/lang/String;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // java.util.Currency this
         0: .line 472
            aload 0 /* this */
            getfield java.util.Currency.currencyCode:Ljava/lang/String;
            areturn
        end local 0 // java.util.Currency this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Ljava/util/Currency;

  public java.lang.String getSymbol();
    descriptor: ()Ljava/lang/String;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // java.util.Currency this
         0: .line 490
            aload 0 /* this */
            getstatic java.util.Locale$Category.DISPLAY:Ljava/util/Locale$Category;
            invokestatic java.util.Locale.getDefault:(Ljava/util/Locale$Category;)Ljava/util/Locale;
            invokevirtual java.util.Currency.getSymbol:(Ljava/util/Locale;)Ljava/lang/String;
            areturn
        end local 0 // java.util.Currency this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Ljava/util/Currency;

  public java.lang.String getSymbol(java.util.Locale);
    descriptor: (Ljava/util/Locale;)Ljava/lang/String;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=8, locals=4, args_size=2
        start local 0 // java.util.Currency this
        start local 1 // java.util.Locale locale
         0: .line 506
            ldc Ljava/util/spi/CurrencyNameProvider;
            invokestatic sun.util.locale.provider.LocaleServiceProviderPool.getPool:(Ljava/lang/Class;)Lsun/util/locale/provider/LocaleServiceProviderPool;
         1: .line 505
            astore 2 /* pool */
        start local 2 // sun.util.locale.provider.LocaleServiceProviderPool pool
         2: .line 507
            aload 2 /* pool */
         3: .line 508
            getstatic java.util.Currency$CurrencyNameGetter.INSTANCE:Ljava/util/Currency$CurrencyNameGetter;
         4: .line 509
            aload 1 /* locale */
            aload 0 /* this */
            getfield java.util.Currency.currencyCode:Ljava/lang/String;
            iconst_1
            anewarray java.lang.Object
            dup
            iconst_0
            iconst_0
            invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
            aastore
         5: .line 507
            invokevirtual sun.util.locale.provider.LocaleServiceProviderPool.getLocalizedObject:(Lsun/util/locale/provider/LocaleServiceProviderPool$LocalizedObjectGetter;Ljava/util/Locale;Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/Object;
            checkcast java.lang.String
            astore 3 /* symbol */
        start local 3 // java.lang.String symbol
         6: .line 510
            aload 3 /* symbol */
            ifnull 8
         7: .line 511
            aload 3 /* symbol */
            areturn
         8: .line 515
      StackMap locals: sun.util.locale.provider.LocaleServiceProviderPool java.lang.String
      StackMap stack:
            aload 0 /* this */
            getfield java.util.Currency.currencyCode:Ljava/lang/String;
            areturn
        end local 3 // java.lang.String symbol
        end local 2 // sun.util.locale.provider.LocaleServiceProviderPool pool
        end local 1 // java.util.Locale locale
        end local 0 // java.util.Currency this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    9     0    this  Ljava/util/Currency;
            0    9     1  locale  Ljava/util/Locale;
            2    9     2    pool  Lsun/util/locale/provider/LocaleServiceProviderPool;
            6    9     3  symbol  Ljava/lang/String;
    MethodParameters:
        Name  Flags
      locale  

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

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

  public java.lang.String getDisplayName();
    descriptor: ()Ljava/lang/String;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // java.util.Currency this
         0: .line 556
            aload 0 /* this */
            getstatic java.util.Locale$Category.DISPLAY:Ljava/util/Locale$Category;
            invokestatic java.util.Locale.getDefault:(Ljava/util/Locale$Category;)Ljava/util/Locale;
            invokevirtual java.util.Currency.getDisplayName:(Ljava/util/Locale;)Ljava/lang/String;
            areturn
        end local 0 // java.util.Currency this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Ljava/util/Currency;

  public java.lang.String getDisplayName(java.util.Locale);
    descriptor: (Ljava/util/Locale;)Ljava/lang/String;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=8, locals=4, args_size=2
        start local 0 // java.util.Currency this
        start local 1 // java.util.Locale locale
         0: .line 572
            ldc Ljava/util/spi/CurrencyNameProvider;
            invokestatic sun.util.locale.provider.LocaleServiceProviderPool.getPool:(Ljava/lang/Class;)Lsun/util/locale/provider/LocaleServiceProviderPool;
         1: .line 571
            astore 2 /* pool */
        start local 2 // sun.util.locale.provider.LocaleServiceProviderPool pool
         2: .line 573
            aload 2 /* pool */
         3: .line 574
            getstatic java.util.Currency$CurrencyNameGetter.INSTANCE:Ljava/util/Currency$CurrencyNameGetter;
         4: .line 575
            aload 1 /* locale */
            aload 0 /* this */
            getfield java.util.Currency.currencyCode:Ljava/lang/String;
            iconst_1
            anewarray java.lang.Object
            dup
            iconst_0
            iconst_1
            invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
            aastore
         5: .line 573
            invokevirtual sun.util.locale.provider.LocaleServiceProviderPool.getLocalizedObject:(Lsun/util/locale/provider/LocaleServiceProviderPool$LocalizedObjectGetter;Ljava/util/Locale;Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/Object;
            checkcast java.lang.String
            astore 3 /* result */
        start local 3 // java.lang.String result
         6: .line 576
            aload 3 /* result */
            ifnull 8
         7: .line 577
            aload 3 /* result */
            areturn
         8: .line 581
      StackMap locals: sun.util.locale.provider.LocaleServiceProviderPool java.lang.String
      StackMap stack:
            aload 0 /* this */
            getfield java.util.Currency.currencyCode:Ljava/lang/String;
            areturn
        end local 3 // java.lang.String result
        end local 2 // sun.util.locale.provider.LocaleServiceProviderPool pool
        end local 1 // java.util.Locale locale
        end local 0 // java.util.Currency this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    9     0    this  Ljava/util/Currency;
            0    9     1  locale  Ljava/util/Locale;
            2    9     2    pool  Lsun/util/locale/provider/LocaleServiceProviderPool;
            6    9     3  result  Ljava/lang/String;
    MethodParameters:
        Name  Flags
      locale  

  public java.lang.String toString();
    descriptor: ()Ljava/lang/String;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // java.util.Currency this
         0: .line 591
            aload 0 /* this */
            getfield java.util.Currency.currencyCode:Ljava/lang/String;
            areturn
        end local 0 // java.util.Currency this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Ljava/util/Currency;

  private java.lang.Object readResolve();
    descriptor: ()Ljava/lang/Object;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // java.util.Currency this
         0: .line 598
            aload 0 /* this */
            getfield java.util.Currency.currencyCode:Ljava/lang/String;
            invokestatic java.util.Currency.getInstance:(Ljava/lang/String;)Ljava/util/Currency;
            areturn
        end local 0 // java.util.Currency this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Ljava/util/Currency;

  private static int getMainTableEntry(char, char);
    descriptor: (CC)I
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=4, locals=2, args_size=2
        start local 0 // char char1
        start local 1 // char char2
         0: .line 606
            iload 0 /* char1 */
            bipush 65
            if_icmplt 1
            iload 0 /* char1 */
            bipush 90
            if_icmpgt 1
            iload 1 /* char2 */
            bipush 65
            if_icmplt 1
            iload 1 /* char2 */
            bipush 90
            if_icmple 2
         1: .line 607
      StackMap locals:
      StackMap stack:
            new java.lang.IllegalArgumentException
            dup
            invokespecial java.lang.IllegalArgumentException.<init>:()V
            athrow
         2: .line 609
      StackMap locals:
      StackMap stack:
            getstatic java.util.Currency.mainTable:[I
            iload 0 /* char1 */
            bipush 65
            isub
            bipush 26
            imul
            iload 1 /* char2 */
            bipush 65
            isub
            iadd
            iaload
            ireturn
        end local 1 // char char2
        end local 0 // char char1
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    3     0  char1  C
            0    3     1  char2  C
    MethodParameters:
       Name  Flags
      char1  
      char2  

  private static void setMainTableEntry(char, char, int);
    descriptor: (CCI)V
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=4, locals=3, args_size=3
        start local 0 // char char1
        start local 1 // char char2
        start local 2 // int entry
         0: .line 617
            iload 0 /* char1 */
            bipush 65
            if_icmplt 1
            iload 0 /* char1 */
            bipush 90
            if_icmpgt 1
            iload 1 /* char2 */
            bipush 65
            if_icmplt 1
            iload 1 /* char2 */
            bipush 90
            if_icmple 2
         1: .line 618
      StackMap locals:
      StackMap stack:
            new java.lang.IllegalArgumentException
            dup
            invokespecial java.lang.IllegalArgumentException.<init>:()V
            athrow
         2: .line 620
      StackMap locals:
      StackMap stack:
            getstatic java.util.Currency.mainTable:[I
            iload 0 /* char1 */
            bipush 65
            isub
            bipush 26
            imul
            iload 1 /* char2 */
            bipush 65
            isub
            iadd
            iload 2 /* entry */
            iastore
         3: .line 621
            return
        end local 2 // int entry
        end local 1 // char char2
        end local 0 // char char1
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    4     0  char1  C
            0    4     1  char2  C
            0    4     2  entry  I
    MethodParameters:
       Name  Flags
      char1  
      char2  
      entry  

  private static int[] readIntArray(java.io.DataInputStream, int);
    descriptor: (Ljava/io/DataInputStream;I)[I
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=3, locals=4, args_size=2
        start local 0 // java.io.DataInputStream dis
        start local 1 // int count
         0: .line 654
            iload 1 /* count */
            newarray 10
            astore 2 /* ret */
        start local 2 // int[] ret
         1: .line 655
            iconst_0
            istore 3 /* i */
        start local 3 // int i
         2: goto 5
         3: .line 656
      StackMap locals: int[] int
      StackMap stack:
            aload 2 /* ret */
            iload 3 /* i */
            aload 0 /* dis */
            invokevirtual java.io.DataInputStream.readInt:()I
            iastore
         4: .line 655
            iinc 3 /* i */ 1
      StackMap locals:
      StackMap stack:
         5: iload 3 /* i */
            iload 1 /* count */
            if_icmplt 3
        end local 3 // int i
         6: .line 659
            aload 2 /* ret */
            areturn
        end local 2 // int[] ret
        end local 1 // int count
        end local 0 // java.io.DataInputStream dis
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    7     0    dis  Ljava/io/DataInputStream;
            0    7     1  count  I
            1    7     2    ret  [I
            2    6     3      i  I
    Exceptions:
      throws java.io.IOException
    MethodParameters:
       Name  Flags
      dis    
      count  

  private static long[] readLongArray(java.io.DataInputStream, int);
    descriptor: (Ljava/io/DataInputStream;I)[J
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=4, locals=4, args_size=2
        start local 0 // java.io.DataInputStream dis
        start local 1 // int count
         0: .line 663
            iload 1 /* count */
            newarray 11
            astore 2 /* ret */
        start local 2 // long[] ret
         1: .line 664
            iconst_0
            istore 3 /* i */
        start local 3 // int i
         2: goto 5
         3: .line 665
      StackMap locals: long[] int
      StackMap stack:
            aload 2 /* ret */
            iload 3 /* i */
            aload 0 /* dis */
            invokevirtual java.io.DataInputStream.readLong:()J
            lastore
         4: .line 664
            iinc 3 /* i */ 1
      StackMap locals:
      StackMap stack:
         5: iload 3 /* i */
            iload 1 /* count */
            if_icmplt 3
        end local 3 // int i
         6: .line 668
            aload 2 /* ret */
            areturn
        end local 2 // long[] ret
        end local 1 // int count
        end local 0 // java.io.DataInputStream dis
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    7     0    dis  Ljava/io/DataInputStream;
            0    7     1  count  I
            1    7     2    ret  [J
            2    6     3      i  I
    Exceptions:
      throws java.io.IOException
    MethodParameters:
       Name  Flags
      dis    
      count  

  private static java.lang.String[] readStringArray(java.io.DataInputStream, int);
    descriptor: (Ljava/io/DataInputStream;I)[Ljava/lang/String;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=3, locals=4, args_size=2
        start local 0 // java.io.DataInputStream dis
        start local 1 // int count
         0: .line 672
            iload 1 /* count */
            anewarray java.lang.String
            astore 2 /* ret */
        start local 2 // java.lang.String[] ret
         1: .line 673
            iconst_0
            istore 3 /* i */
        start local 3 // int i
         2: goto 5
         3: .line 674
      StackMap locals: java.lang.String[] int
      StackMap stack:
            aload 2 /* ret */
            iload 3 /* i */
            aload 0 /* dis */
            invokevirtual java.io.DataInputStream.readUTF:()Ljava/lang/String;
            aastore
         4: .line 673
            iinc 3 /* i */ 1
      StackMap locals:
      StackMap stack:
         5: iload 3 /* i */
            iload 1 /* count */
            if_icmplt 3
        end local 3 // int i
         6: .line 677
            aload 2 /* ret */
            areturn
        end local 2 // java.lang.String[] ret
        end local 1 // int count
        end local 0 // java.io.DataInputStream dis
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    7     0    dis  Ljava/io/DataInputStream;
            0    7     1  count  I
            1    7     2    ret  [Ljava/lang/String;
            2    6     3      i  I
    Exceptions:
      throws java.io.IOException
    MethodParameters:
       Name  Flags
      dis    
      count  

  private static void replaceCurrencyData(java.util.regex.Pattern, java.lang.String, java.lang.String);
    descriptor: (Ljava/util/regex/Pattern;Ljava/lang/String;Ljava/lang/String;)V
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=4, locals=9, args_size=3
        start local 0 // java.util.regex.Pattern pattern
        start local 1 // java.lang.String ctry
        start local 2 // java.lang.String curdata
         0: .line 696
            aload 1 /* ctry */
            invokevirtual java.lang.String.length:()I
            iconst_2
            if_icmpeq 7
         1: .line 698
            new java.lang.StringBuilder
            dup
            ldc "currency.properties entry for "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 1 /* ctry */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
         2: .line 699
            ldc " is ignored because of the invalid country code."
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
         3: .line 698
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
         4: .line 699
            aconst_null
         5: .line 698
            invokestatic java.util.Currency.info:(Ljava/lang/String;Ljava/lang/Throwable;)V
         6: .line 700
            return
         7: .line 703
      StackMap locals:
      StackMap stack:
            aload 0 /* pattern */
            aload 2 /* curdata */
            invokevirtual java.util.regex.Pattern.matcher:(Ljava/lang/CharSequence;)Ljava/util/regex/Matcher;
            astore 3 /* m */
        start local 3 // java.util.regex.Matcher m
         8: .line 704
            aload 3 /* m */
            invokevirtual java.util.regex.Matcher.find:()Z
            ifeq 9
            aload 3 /* m */
            iconst_4
            invokevirtual java.util.regex.Matcher.group:(I)Ljava/lang/String;
            ifnonnull 15
            aload 2 /* curdata */
            bipush 44
            invokestatic java.util.Currency.countOccurrences:(Ljava/lang/String;C)I
            iconst_3
            if_icmplt 15
         9: .line 707
      StackMap locals: java.util.regex.Matcher
      StackMap stack:
            new java.lang.StringBuilder
            dup
            ldc "currency.properties entry for "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 1 /* ctry */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
        10: .line 708
            ldc " ignored because the value format is not recognized."
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
        11: .line 707
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
        12: .line 708
            aconst_null
        13: .line 707
            invokestatic java.util.Currency.info:(Ljava/lang/String;Ljava/lang/Throwable;)V
        14: .line 709
            return
        15: .line 713
      StackMap locals:
      StackMap stack:
            aload 3 /* m */
            iconst_4
            invokevirtual java.util.regex.Matcher.group:(I)Ljava/lang/String;
            ifnull 29
            aload 3 /* m */
            iconst_4
            invokevirtual java.util.regex.Matcher.group:(I)Ljava/lang/String;
            invokestatic java.util.Currency.isPastCutoverDate:(Ljava/lang/String;)Z
            ifne 29
        16: .line 714
            new java.lang.StringBuilder
            dup
            ldc "currency.properties entry for "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 1 /* ctry */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
        17: .line 715
            ldc " ignored since cutover date has not passed :"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 2 /* curdata */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
        18: .line 714
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
        19: .line 715
            aconst_null
        20: .line 714
            invokestatic java.util.Currency.info:(Ljava/lang/String;Ljava/lang/Throwable;)V
        21: .line 716
            return
        22: .line 718
      StackMap locals:
      StackMap stack: java.text.ParseException
            astore 4 /* ex */
        start local 4 // java.text.ParseException ex
        23: .line 719
            new java.lang.StringBuilder
            dup
            ldc "currency.properties entry for "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 1 /* ctry */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
        24: .line 720
            ldc " ignored since exception encountered :"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 4 /* ex */
            invokevirtual java.text.ParseException.getMessage:()Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
        25: .line 719
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
        26: .line 720
            aconst_null
        27: .line 719
            invokestatic java.util.Currency.info:(Ljava/lang/String;Ljava/lang/Throwable;)V
        28: .line 721
            return
        end local 4 // java.text.ParseException ex
        29: .line 724
      StackMap locals:
      StackMap stack:
            aload 3 /* m */
            iconst_1
            invokevirtual java.util.regex.Matcher.group:(I)Ljava/lang/String;
            astore 4 /* code */
        start local 4 // java.lang.String code
        30: .line 725
            aload 3 /* m */
            iconst_2
            invokevirtual java.util.regex.Matcher.group:(I)Ljava/lang/String;
            invokestatic java.lang.Integer.parseInt:(Ljava/lang/String;)I
            istore 5 /* numeric */
        start local 5 // int numeric
        31: .line 726
            iload 5 /* numeric */
            bipush 10
            ishl
            istore 6 /* entry */
        start local 6 // int entry
        32: .line 727
            aload 3 /* m */
            iconst_3
            invokevirtual java.util.regex.Matcher.group:(I)Ljava/lang/String;
            invokestatic java.lang.Integer.parseInt:(Ljava/lang/String;)I
            istore 7 /* fraction */
        start local 7 // int fraction
        33: .line 728
            iload 7 /* fraction */
            bipush 9
            if_icmple 41
        34: .line 729
            new java.lang.StringBuilder
            dup
            ldc "currency.properties entry for "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 1 /* ctry */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
        35: .line 730
            ldc " ignored since the fraction is more than "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
        36: .line 731
            bipush 9
            invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
            ldc ":"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 2 /* curdata */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
        37: .line 729
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
        38: .line 731
            aconst_null
        39: .line 729
            invokestatic java.util.Currency.info:(Ljava/lang/String;Ljava/lang/Throwable;)V
        40: .line 732
            return
        41: .line 736
      StackMap locals: java.util.regex.Pattern java.lang.String java.lang.String java.util.regex.Matcher java.lang.String int int int
      StackMap stack:
            iconst_0
            istore 8 /* index */
        start local 8 // int index
        42: goto 46
        43: .line 737
      StackMap locals: int
      StackMap stack:
            getstatic java.util.Currency.scOldCurrencies:[Ljava/lang/String;
            iload 8 /* index */
            aaload
            aload 4 /* code */
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifeq 45
        44: .line 738
            goto 47
        45: .line 736
      StackMap locals:
      StackMap stack:
            iinc 8 /* index */ 1
      StackMap locals:
      StackMap stack:
        46: iload 8 /* index */
            getstatic java.util.Currency.scOldCurrencies:[Ljava/lang/String;
            arraylength
            if_icmplt 43
        47: .line 742
      StackMap locals:
      StackMap stack:
            iload 8 /* index */
            getstatic java.util.Currency.scOldCurrencies:[Ljava/lang/String;
            arraylength
            if_icmpne 52
        48: .line 744
            iload 6 /* entry */
            iload 7 /* fraction */
            iconst_5
            ishl
        49: .line 745
            aload 4 /* code */
            iconst_2
            invokevirtual java.lang.String.charAt:(I)C
            bipush 65
            isub
        50: .line 744
            ior
            ior
            istore 6 /* entry */
        51: .line 746
            goto 55
        52: .line 748
      StackMap locals:
      StackMap stack:
            iload 6 /* entry */
            sipush 512
        53: .line 749
            iload 8 /* index */
            iconst_1
            iadd
        54: .line 748
            ior
            ior
            istore 6 /* entry */
        55: .line 751
      StackMap locals:
      StackMap stack:
            aload 1 /* ctry */
            iconst_0
            invokevirtual java.lang.String.charAt:(I)C
            aload 1 /* ctry */
            iconst_1
            invokevirtual java.lang.String.charAt:(I)C
            iload 6 /* entry */
            invokestatic java.util.Currency.setMainTableEntry:(CCI)V
        56: .line 752
            return
        end local 8 // int index
        end local 7 // int fraction
        end local 6 // int entry
        end local 5 // int numeric
        end local 4 // java.lang.String code
        end local 3 // java.util.regex.Matcher m
        end local 2 // java.lang.String curdata
        end local 1 // java.lang.String ctry
        end local 0 // java.util.regex.Pattern pattern
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0   57     0   pattern  Ljava/util/regex/Pattern;
            0   57     1      ctry  Ljava/lang/String;
            0   57     2   curdata  Ljava/lang/String;
            8   57     3         m  Ljava/util/regex/Matcher;
           23   29     4        ex  Ljava/text/ParseException;
           30   57     4      code  Ljava/lang/String;
           31   57     5   numeric  I
           32   57     6     entry  I
           33   57     7  fraction  I
           42   57     8     index  I
      Exception table:
        from    to  target  type
          15    21      22  Class java.text.ParseException
    MethodParameters:
         Name  Flags
      pattern  
      ctry     
      curdata  

  private static boolean isPastCutoverDate(java.lang.String);
    descriptor: (Ljava/lang/String;)Z
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=4, locals=4, args_size=1
        start local 0 // java.lang.String s
         0: .line 755
            new java.text.SimpleDateFormat
            dup
            ldc "yyyy-MM-dd'T'HH:mm:ss"
            getstatic java.util.Locale.ROOT:Ljava/util/Locale;
            invokespecial java.text.SimpleDateFormat.<init>:(Ljava/lang/String;Ljava/util/Locale;)V
            astore 1 /* format */
        start local 1 // java.text.SimpleDateFormat format
         1: .line 756
            aload 1 /* format */
            ldc "UTC"
            invokestatic java.util.TimeZone.getTimeZone:(Ljava/lang/String;)Ljava/util/TimeZone;
            invokevirtual java.text.SimpleDateFormat.setTimeZone:(Ljava/util/TimeZone;)V
         2: .line 757
            aload 1 /* format */
            iconst_0
            invokevirtual java.text.SimpleDateFormat.setLenient:(Z)V
         3: .line 758
            aload 1 /* format */
            aload 0 /* s */
            invokevirtual java.lang.String.trim:()Ljava/lang/String;
            invokevirtual java.text.SimpleDateFormat.parse:(Ljava/lang/String;)Ljava/util/Date;
            invokevirtual java.util.Date.getTime:()J
            lstore 2 /* time */
        start local 2 // long time
         4: .line 759
            invokestatic java.lang.System.currentTimeMillis:()J
            lload 2 /* time */
            lcmp
            ifle 5
            iconst_1
            ireturn
      StackMap locals: java.text.SimpleDateFormat long
      StackMap stack:
         5: iconst_0
            ireturn
        end local 2 // long time
        end local 1 // java.text.SimpleDateFormat format
        end local 0 // java.lang.String s
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    6     0       s  Ljava/lang/String;
            1    6     1  format  Ljava/text/SimpleDateFormat;
            4    6     2    time  J
    Exceptions:
      throws java.text.ParseException
    MethodParameters:
      Name  Flags
      s     

  private static int countOccurrences(java.lang.String, char);
    descriptor: (Ljava/lang/String;C)I
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=2, locals=7, args_size=2
        start local 0 // java.lang.String value
        start local 1 // char match
         0: .line 764
            iconst_0
            istore 2 /* count */
        start local 2 // int count
         1: .line 765
            aload 0 /* value */
            invokevirtual java.lang.String.toCharArray:()[C
            dup
            astore 6
            arraylength
            istore 5
            iconst_0
            istore 4
            goto 6
      StackMap locals: java.lang.String int int top int int char[]
      StackMap stack:
         2: aload 6
            iload 4
            caload
            istore 3 /* c */
        start local 3 // char c
         3: .line 766
            iload 3 /* c */
            iload 1 /* match */
            if_icmpne 5
         4: .line 767
            iinc 2 /* count */ 1
        end local 3 // char c
         5: .line 765
      StackMap locals:
      StackMap stack:
            iinc 4 1
      StackMap locals:
      StackMap stack:
         6: iload 4
            iload 5
            if_icmplt 2
         7: .line 770
            iload 2 /* count */
            ireturn
        end local 2 // int count
        end local 1 // char match
        end local 0 // java.lang.String value
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    8     0  value  Ljava/lang/String;
            0    8     1  match  C
            1    8     2  count  I
            3    5     3      c  C
    MethodParameters:
       Name  Flags
      value  
      match  

  private static void info(java.lang.String, java.lang.Throwable);
    descriptor: (Ljava/lang/String;Ljava/lang/Throwable;)V
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=3, locals=3, args_size=2
        start local 0 // java.lang.String message
        start local 1 // java.lang.Throwable t
         0: .line 774
            ldc "java.util.Currency"
            invokestatic sun.util.logging.PlatformLogger.getLogger:(Ljava/lang/String;)Lsun/util/logging/PlatformLogger;
            astore 2 /* logger */
        start local 2 // sun.util.logging.PlatformLogger logger
         1: .line 775
            aload 2 /* logger */
            getstatic sun.util.logging.PlatformLogger$Level.INFO:Lsun/util/logging/PlatformLogger$Level;
            invokevirtual sun.util.logging.PlatformLogger.isLoggable:(Lsun/util/logging/PlatformLogger$Level;)Z
            ifeq 6
         2: .line 776
            aload 1 /* t */
            ifnull 5
         3: .line 777
            aload 2 /* logger */
            aload 0 /* message */
            aload 1 /* t */
            invokevirtual sun.util.logging.PlatformLogger.info:(Ljava/lang/String;Ljava/lang/Throwable;)V
         4: .line 778
            goto 6
         5: .line 779
      StackMap locals: sun.util.logging.PlatformLogger
      StackMap stack:
            aload 2 /* logger */
            aload 0 /* message */
            invokevirtual sun.util.logging.PlatformLogger.info:(Ljava/lang/String;)V
         6: .line 782
      StackMap locals:
      StackMap stack:
            return
        end local 2 // sun.util.logging.PlatformLogger logger
        end local 1 // java.lang.Throwable t
        end local 0 // java.lang.String message
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    7     0  message  Ljava/lang/String;
            0    7     1        t  Ljava/lang/Throwable;
            1    7     2   logger  Lsun/util/logging/PlatformLogger;
    MethodParameters:
         Name  Flags
      message  
      t        
}
SourceFile: "Currency.java"
NestMembers:
  java.util.Currency$1  java.util.Currency$CurrencyNameGetter
InnerClasses:
  java.util.Currency$1
  private CurrencyNameGetter = java.util.Currency$CurrencyNameGetter of java.util.Currency
  public final Category = java.util.Locale$Category of java.util.Locale
  public abstract LocalizedObjectGetter = sun.util.locale.provider.LocaleServiceProviderPool$LocalizedObjectGetter of sun.util.locale.provider.LocaleServiceProviderPool
  public final Level = sun.util.logging.PlatformLogger$Level of sun.util.logging.PlatformLogger