public abstract class org.bouncycastle.math.ec.ECCurve
  minor version: 0
  major version: 59
  flags: flags: (0x0421) ACC_PUBLIC, ACC_SUPER, ACC_ABSTRACT
  this_class: org.bouncycastle.math.ec.ECCurve
  super_class: java.lang.Object
{
  public static final int COORD_AFFINE;
    descriptor: I
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
    ConstantValue: 0

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

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

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

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

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

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

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

  protected org.bouncycastle.math.field.FiniteField field;
    descriptor: Lorg/bouncycastle/math/field/FiniteField;
    flags: (0x0004) ACC_PROTECTED

  protected org.bouncycastle.math.ec.ECFieldElement a;
    descriptor: Lorg/bouncycastle/math/ec/ECFieldElement;
    flags: (0x0004) ACC_PROTECTED

  protected org.bouncycastle.math.ec.ECFieldElement b;
    descriptor: Lorg/bouncycastle/math/ec/ECFieldElement;
    flags: (0x0004) ACC_PROTECTED

  protected java.math.BigInteger order;
    descriptor: Ljava/math/BigInteger;
    flags: (0x0004) ACC_PROTECTED

  protected java.math.BigInteger cofactor;
    descriptor: Ljava/math/BigInteger;
    flags: (0x0004) ACC_PROTECTED

  protected int coord;
    descriptor: I
    flags: (0x0004) ACC_PROTECTED

  protected org.bouncycastle.math.ec.endo.ECEndomorphism endomorphism;
    descriptor: Lorg/bouncycastle/math/ec/endo/ECEndomorphism;
    flags: (0x0004) ACC_PROTECTED

  protected org.bouncycastle.math.ec.ECMultiplier multiplier;
    descriptor: Lorg/bouncycastle/math/ec/ECMultiplier;
    flags: (0x0004) ACC_PROTECTED

  public static int[] getAllCoordinateSystems();
    descriptor: ()[I
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=4, locals=0, args_size=0
         0: .line 31
            bipush 8
            newarray 10
            dup
            iconst_1
            iconst_1
            iastore
            dup
            iconst_2
            iconst_2
            iastore
            dup
            iconst_3
            iconst_3
            iastore
            dup
            iconst_4
         1: .line 32
            iconst_4
            iastore
            dup
            iconst_5
            iconst_5
            iastore
            dup
            bipush 6
            bipush 6
            iastore
            dup
            bipush 7
            bipush 7
            iastore
         2: .line 31
            areturn
      LocalVariableTable:
        Start  End  Slot  Name  Signature

  protected void <init>(org.bouncycastle.math.field.FiniteField);
    descriptor: (Lorg/bouncycastle/math/field/FiniteField;)V
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // org.bouncycastle.math.ec.ECCurve this
        start local 1 // org.bouncycastle.math.field.FiniteField field
         0: .line 99
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
         1: .line 95
            aload 0 /* this */
            iconst_0
            putfield org.bouncycastle.math.ec.ECCurve.coord:I
         2: .line 96
            aload 0 /* this */
            aconst_null
            putfield org.bouncycastle.math.ec.ECCurve.endomorphism:Lorg/bouncycastle/math/ec/endo/ECEndomorphism;
         3: .line 97
            aload 0 /* this */
            aconst_null
            putfield org.bouncycastle.math.ec.ECCurve.multiplier:Lorg/bouncycastle/math/ec/ECMultiplier;
         4: .line 101
            aload 0 /* this */
            aload 1 /* field */
            putfield org.bouncycastle.math.ec.ECCurve.field:Lorg/bouncycastle/math/field/FiniteField;
         5: .line 102
            return
        end local 1 // org.bouncycastle.math.field.FiniteField field
        end local 0 // org.bouncycastle.math.ec.ECCurve this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    6     0   this  Lorg/bouncycastle/math/ec/ECCurve;
            0    6     1  field  Lorg/bouncycastle/math/field/FiniteField;
    MethodParameters:
       Name  Flags
      field  

  public abstract int getFieldSize();
    descriptor: ()I
    flags: (0x0401) ACC_PUBLIC, ACC_ABSTRACT

  public abstract org.bouncycastle.math.ec.ECFieldElement fromBigInteger(java.math.BigInteger);
    descriptor: (Ljava/math/BigInteger;)Lorg/bouncycastle/math/ec/ECFieldElement;
    flags: (0x0401) ACC_PUBLIC, ACC_ABSTRACT
    MethodParameters:
      Name  Flags
      x     

  public abstract boolean isValidFieldElement(java.math.BigInteger);
    descriptor: (Ljava/math/BigInteger;)Z
    flags: (0x0401) ACC_PUBLIC, ACC_ABSTRACT
    MethodParameters:
      Name  Flags
      x     

  public synchronized org.bouncycastle.math.ec.ECCurve$Config configure();
    descriptor: ()Lorg/bouncycastle/math/ec/ECCurve$Config;
    flags: (0x0021) ACC_PUBLIC, ACC_SYNCHRONIZED
    Code:
      stack=6, locals=1, args_size=1
        start local 0 // org.bouncycastle.math.ec.ECCurve this
         0: .line 112
            new org.bouncycastle.math.ec.ECCurve$Config
            dup
            aload 0 /* this */
            aload 0 /* this */
            getfield org.bouncycastle.math.ec.ECCurve.coord:I
            aload 0 /* this */
            getfield org.bouncycastle.math.ec.ECCurve.endomorphism:Lorg/bouncycastle/math/ec/endo/ECEndomorphism;
            aload 0 /* this */
            getfield org.bouncycastle.math.ec.ECCurve.multiplier:Lorg/bouncycastle/math/ec/ECMultiplier;
            invokespecial org.bouncycastle.math.ec.ECCurve$Config.<init>:(Lorg/bouncycastle/math/ec/ECCurve;ILorg/bouncycastle/math/ec/endo/ECEndomorphism;Lorg/bouncycastle/math/ec/ECMultiplier;)V
            areturn
        end local 0 // org.bouncycastle.math.ec.ECCurve this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/bouncycastle/math/ec/ECCurve;

  public org.bouncycastle.math.ec.ECPoint validatePoint(java.math.BigInteger, java.math.BigInteger);
    descriptor: (Ljava/math/BigInteger;Ljava/math/BigInteger;)Lorg/bouncycastle/math/ec/ECPoint;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=4, args_size=3
        start local 0 // org.bouncycastle.math.ec.ECCurve this
        start local 1 // java.math.BigInteger x
        start local 2 // java.math.BigInteger y
         0: .line 117
            aload 0 /* this */
            aload 1 /* x */
            aload 2 /* y */
            invokevirtual org.bouncycastle.math.ec.ECCurve.createPoint:(Ljava/math/BigInteger;Ljava/math/BigInteger;)Lorg/bouncycastle/math/ec/ECPoint;
            astore 3 /* p */
        start local 3 // org.bouncycastle.math.ec.ECPoint p
         1: .line 118
            aload 3 /* p */
            invokevirtual org.bouncycastle.math.ec.ECPoint.isValid:()Z
            ifne 3
         2: .line 120
            new java.lang.IllegalArgumentException
            dup
            ldc "Invalid point coordinates"
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
            athrow
         3: .line 122
      StackMap locals: org.bouncycastle.math.ec.ECPoint
      StackMap stack:
            aload 3 /* p */
            areturn
        end local 3 // org.bouncycastle.math.ec.ECPoint p
        end local 2 // java.math.BigInteger y
        end local 1 // java.math.BigInteger x
        end local 0 // org.bouncycastle.math.ec.ECCurve this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    4     0  this  Lorg/bouncycastle/math/ec/ECCurve;
            0    4     1     x  Ljava/math/BigInteger;
            0    4     2     y  Ljava/math/BigInteger;
            1    4     3     p  Lorg/bouncycastle/math/ec/ECPoint;
    MethodParameters:
      Name  Flags
      x     
      y     

  public org.bouncycastle.math.ec.ECPoint validatePoint(java.math.BigInteger, java.math.BigInteger, boolean);
    descriptor: (Ljava/math/BigInteger;Ljava/math/BigInteger;Z)Lorg/bouncycastle/math/ec/ECPoint;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=5, args_size=4
        start local 0 // org.bouncycastle.math.ec.ECCurve this
        start local 1 // java.math.BigInteger x
        start local 2 // java.math.BigInteger y
        start local 3 // boolean withCompression
         0: .line 131
            aload 0 /* this */
            aload 1 /* x */
            aload 2 /* y */
            iload 3 /* withCompression */
            invokevirtual org.bouncycastle.math.ec.ECCurve.createPoint:(Ljava/math/BigInteger;Ljava/math/BigInteger;Z)Lorg/bouncycastle/math/ec/ECPoint;
            astore 4 /* p */
        start local 4 // org.bouncycastle.math.ec.ECPoint p
         1: .line 132
            aload 4 /* p */
            invokevirtual org.bouncycastle.math.ec.ECPoint.isValid:()Z
            ifne 3
         2: .line 134
            new java.lang.IllegalArgumentException
            dup
            ldc "Invalid point coordinates"
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
            athrow
         3: .line 136
      StackMap locals: org.bouncycastle.math.ec.ECPoint
      StackMap stack:
            aload 4 /* p */
            areturn
        end local 4 // org.bouncycastle.math.ec.ECPoint p
        end local 3 // boolean withCompression
        end local 2 // java.math.BigInteger y
        end local 1 // java.math.BigInteger x
        end local 0 // org.bouncycastle.math.ec.ECCurve this
      LocalVariableTable:
        Start  End  Slot             Name  Signature
            0    4     0             this  Lorg/bouncycastle/math/ec/ECCurve;
            0    4     1                x  Ljava/math/BigInteger;
            0    4     2                y  Ljava/math/BigInteger;
            0    4     3  withCompression  Z
            1    4     4                p  Lorg/bouncycastle/math/ec/ECPoint;
    MethodParameters:
                 Name  Flags
      x                
      y                
      withCompression  

  public org.bouncycastle.math.ec.ECPoint createPoint(java.math.BigInteger, java.math.BigInteger);
    descriptor: (Ljava/math/BigInteger;Ljava/math/BigInteger;)Lorg/bouncycastle/math/ec/ECPoint;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=3, args_size=3
        start local 0 // org.bouncycastle.math.ec.ECCurve this
        start local 1 // java.math.BigInteger x
        start local 2 // java.math.BigInteger y
         0: .line 141
            aload 0 /* this */
            aload 1 /* x */
            aload 2 /* y */
            iconst_0
            invokevirtual org.bouncycastle.math.ec.ECCurve.createPoint:(Ljava/math/BigInteger;Ljava/math/BigInteger;Z)Lorg/bouncycastle/math/ec/ECPoint;
            areturn
        end local 2 // java.math.BigInteger y
        end local 1 // java.math.BigInteger x
        end local 0 // org.bouncycastle.math.ec.ECCurve this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/bouncycastle/math/ec/ECCurve;
            0    1     1     x  Ljava/math/BigInteger;
            0    1     2     y  Ljava/math/BigInteger;
    MethodParameters:
      Name  Flags
      x     
      y     

  public org.bouncycastle.math.ec.ECPoint createPoint(java.math.BigInteger, java.math.BigInteger, boolean);
    descriptor: (Ljava/math/BigInteger;Ljava/math/BigInteger;Z)Lorg/bouncycastle/math/ec/ECPoint;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=4, args_size=4
        start local 0 // org.bouncycastle.math.ec.ECCurve this
        start local 1 // java.math.BigInteger x
        start local 2 // java.math.BigInteger y
        start local 3 // boolean withCompression
         0: .line 150
            aload 0 /* this */
            aload 0 /* this */
            aload 1 /* x */
            invokevirtual org.bouncycastle.math.ec.ECCurve.fromBigInteger:(Ljava/math/BigInteger;)Lorg/bouncycastle/math/ec/ECFieldElement;
            aload 0 /* this */
            aload 2 /* y */
            invokevirtual org.bouncycastle.math.ec.ECCurve.fromBigInteger:(Ljava/math/BigInteger;)Lorg/bouncycastle/math/ec/ECFieldElement;
            iload 3 /* withCompression */
            invokevirtual org.bouncycastle.math.ec.ECCurve.createRawPoint:(Lorg/bouncycastle/math/ec/ECFieldElement;Lorg/bouncycastle/math/ec/ECFieldElement;Z)Lorg/bouncycastle/math/ec/ECPoint;
            areturn
        end local 3 // boolean withCompression
        end local 2 // java.math.BigInteger y
        end local 1 // java.math.BigInteger x
        end local 0 // org.bouncycastle.math.ec.ECCurve this
      LocalVariableTable:
        Start  End  Slot             Name  Signature
            0    1     0             this  Lorg/bouncycastle/math/ec/ECCurve;
            0    1     1                x  Ljava/math/BigInteger;
            0    1     2                y  Ljava/math/BigInteger;
            0    1     3  withCompression  Z
    MethodParameters:
                 Name  Flags
      x                
      y                
      withCompression  

  protected abstract org.bouncycastle.math.ec.ECCurve cloneCurve();
    descriptor: ()Lorg/bouncycastle/math/ec/ECCurve;
    flags: (0x0404) ACC_PROTECTED, ACC_ABSTRACT

  protected abstract org.bouncycastle.math.ec.ECPoint createRawPoint(org.bouncycastle.math.ec.ECFieldElement, org.bouncycastle.math.ec.ECFieldElement, boolean);
    descriptor: (Lorg/bouncycastle/math/ec/ECFieldElement;Lorg/bouncycastle/math/ec/ECFieldElement;Z)Lorg/bouncycastle/math/ec/ECPoint;
    flags: (0x0404) ACC_PROTECTED, ACC_ABSTRACT
    MethodParameters:
                 Name  Flags
      x                
      y                
      withCompression  

  protected abstract org.bouncycastle.math.ec.ECPoint createRawPoint(org.bouncycastle.math.ec.ECFieldElement, org.bouncycastle.math.ec.ECFieldElement, org.bouncycastle.math.ec.ECFieldElement[], boolean);
    descriptor: (Lorg/bouncycastle/math/ec/ECFieldElement;Lorg/bouncycastle/math/ec/ECFieldElement;[Lorg/bouncycastle/math/ec/ECFieldElement;Z)Lorg/bouncycastle/math/ec/ECPoint;
    flags: (0x0404) ACC_PROTECTED, ACC_ABSTRACT
    MethodParameters:
                 Name  Flags
      x                
      y                
      zs               
      withCompression  

  protected org.bouncycastle.math.ec.ECMultiplier createDefaultMultiplier();
    descriptor: ()Lorg/bouncycastle/math/ec/ECMultiplier;
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=4, locals=1, args_size=1
        start local 0 // org.bouncycastle.math.ec.ECCurve this
         0: .line 161
            aload 0 /* this */
            getfield org.bouncycastle.math.ec.ECCurve.endomorphism:Lorg/bouncycastle/math/ec/endo/ECEndomorphism;
            instanceof org.bouncycastle.math.ec.endo.GLVEndomorphism
            ifeq 2
         1: .line 163
            new org.bouncycastle.math.ec.GLVMultiplier
            dup
            aload 0 /* this */
            aload 0 /* this */
            getfield org.bouncycastle.math.ec.ECCurve.endomorphism:Lorg/bouncycastle/math/ec/endo/ECEndomorphism;
            checkcast org.bouncycastle.math.ec.endo.GLVEndomorphism
            invokespecial org.bouncycastle.math.ec.GLVMultiplier.<init>:(Lorg/bouncycastle/math/ec/ECCurve;Lorg/bouncycastle/math/ec/endo/GLVEndomorphism;)V
            areturn
         2: .line 166
      StackMap locals:
      StackMap stack:
            new org.bouncycastle.math.ec.WNafL2RMultiplier
            dup
            invokespecial org.bouncycastle.math.ec.WNafL2RMultiplier.<init>:()V
            areturn
        end local 0 // org.bouncycastle.math.ec.ECCurve this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    3     0  this  Lorg/bouncycastle/math/ec/ECCurve;

  public boolean supportsCoordinateSystem(int);
    descriptor: (I)Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=2, args_size=2
        start local 0 // org.bouncycastle.math.ec.ECCurve this
        start local 1 // int coord
         0: .line 171
            iload 1 /* coord */
            ifne 1
            iconst_1
            ireturn
      StackMap locals:
      StackMap stack:
         1: iconst_0
            ireturn
        end local 1 // int coord
        end local 0 // org.bouncycastle.math.ec.ECCurve this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    2     0   this  Lorg/bouncycastle/math/ec/ECCurve;
            0    2     1  coord  I
    MethodParameters:
       Name  Flags
      coord  

  public org.bouncycastle.math.ec.PreCompInfo getPreCompInfo(org.bouncycastle.math.ec.ECPoint, java.lang.String);
    descriptor: (Lorg/bouncycastle/math/ec/ECPoint;Ljava/lang/String;)Lorg/bouncycastle/math/ec/PreCompInfo;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=5, args_size=3
        start local 0 // org.bouncycastle.math.ec.ECCurve this
        start local 1 // org.bouncycastle.math.ec.ECPoint point
        start local 2 // java.lang.String name
         0: .line 176
            aload 0 /* this */
            aload 1 /* point */
            invokevirtual org.bouncycastle.math.ec.ECCurve.checkPoint:(Lorg/bouncycastle/math/ec/ECPoint;)V
         1: .line 179
            aload 1 /* point */
            dup
            astore 4
            monitorenter
         2: .line 181
            aload 1 /* point */
            getfield org.bouncycastle.math.ec.ECPoint.preCompTable:Ljava/util/Hashtable;
            astore 3 /* table */
        start local 3 // java.util.Hashtable table
         3: .line 179
            aload 4
            monitorexit
         4: goto 7
        end local 3 // java.util.Hashtable table
      StackMap locals: org.bouncycastle.math.ec.ECCurve org.bouncycastle.math.ec.ECPoint java.lang.String top org.bouncycastle.math.ec.ECPoint
      StackMap stack: java.lang.Throwable
         5: aload 4
            monitorexit
         6: athrow
        start local 3 // java.util.Hashtable table
         7: .line 184
      StackMap locals: org.bouncycastle.math.ec.ECCurve org.bouncycastle.math.ec.ECPoint java.lang.String java.util.Hashtable
      StackMap stack:
            aload 3 /* table */
            ifnonnull 9
         8: .line 186
            aconst_null
            areturn
         9: .line 189
      StackMap locals:
      StackMap stack:
            aload 3 /* table */
            dup
            astore 4
            monitorenter
        10: .line 191
            aload 3 /* table */
            aload 2 /* name */
            invokevirtual java.util.Hashtable.get:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast org.bouncycastle.math.ec.PreCompInfo
            aload 4
            monitorexit
        11: areturn
        12: .line 189
      StackMap locals: org.bouncycastle.math.ec.ECCurve org.bouncycastle.math.ec.ECPoint java.lang.String java.util.Hashtable java.util.Hashtable
      StackMap stack: java.lang.Throwable
            aload 4
            monitorexit
        13: athrow
        end local 3 // java.util.Hashtable table
        end local 2 // java.lang.String name
        end local 1 // org.bouncycastle.math.ec.ECPoint point
        end local 0 // org.bouncycastle.math.ec.ECCurve this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0   14     0   this  Lorg/bouncycastle/math/ec/ECCurve;
            0   14     1  point  Lorg/bouncycastle/math/ec/ECPoint;
            0   14     2   name  Ljava/lang/String;
            3    5     3  table  Ljava/util/Hashtable;
            7   14     3  table  Ljava/util/Hashtable;
      Exception table:
        from    to  target  type
           2     4       5  any
           5     6       5  any
          10    11      12  any
          12    13      12  any
    MethodParameters:
       Name  Flags
      point  
      name   

  public org.bouncycastle.math.ec.PreCompInfo precompute(org.bouncycastle.math.ec.ECPoint, java.lang.String, org.bouncycastle.math.ec.PreCompCallback);
    descriptor: (Lorg/bouncycastle/math/ec/ECPoint;Ljava/lang/String;Lorg/bouncycastle/math/ec/PreCompCallback;)Lorg/bouncycastle/math/ec/PreCompInfo;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=8, args_size=4
        start local 0 // org.bouncycastle.math.ec.ECCurve this
        start local 1 // org.bouncycastle.math.ec.ECPoint point
        start local 2 // java.lang.String name
        start local 3 // org.bouncycastle.math.ec.PreCompCallback callback
         0: .line 209
            aload 0 /* this */
            aload 1 /* point */
            invokevirtual org.bouncycastle.math.ec.ECCurve.checkPoint:(Lorg/bouncycastle/math/ec/ECPoint;)V
         1: .line 212
            aload 1 /* point */
            dup
            astore 5
            monitorenter
         2: .line 214
            aload 1 /* point */
            getfield org.bouncycastle.math.ec.ECPoint.preCompTable:Ljava/util/Hashtable;
            astore 4 /* table */
        start local 4 // java.util.Hashtable table
         3: .line 215
            aload 4 /* table */
            ifnonnull 5
         4: .line 217
            aload 1 /* point */
            new java.util.Hashtable
            dup
            iconst_4
            invokespecial java.util.Hashtable.<init>:(I)V
            dup
            astore 4 /* table */
            putfield org.bouncycastle.math.ec.ECPoint.preCompTable:Ljava/util/Hashtable;
         5: .line 212
      StackMap locals: java.util.Hashtable org.bouncycastle.math.ec.ECPoint
      StackMap stack:
            aload 5
            monitorexit
         6: goto 9
        end local 4 // java.util.Hashtable table
      StackMap locals: org.bouncycastle.math.ec.ECCurve org.bouncycastle.math.ec.ECPoint java.lang.String org.bouncycastle.math.ec.PreCompCallback top org.bouncycastle.math.ec.ECPoint
      StackMap stack: java.lang.Throwable
         7: aload 5
            monitorexit
         8: athrow
        start local 4 // java.util.Hashtable table
         9: .line 221
      StackMap locals: org.bouncycastle.math.ec.ECCurve org.bouncycastle.math.ec.ECPoint java.lang.String org.bouncycastle.math.ec.PreCompCallback java.util.Hashtable
      StackMap stack:
            aload 4 /* table */
            dup
            astore 5
            monitorenter
        10: .line 223
            aload 4 /* table */
            aload 2 /* name */
            invokevirtual java.util.Hashtable.get:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast org.bouncycastle.math.ec.PreCompInfo
            astore 6 /* existing */
        start local 6 // org.bouncycastle.math.ec.PreCompInfo existing
        11: .line 224
            aload 3 /* callback */
            aload 6 /* existing */
            invokeinterface org.bouncycastle.math.ec.PreCompCallback.precompute:(Lorg/bouncycastle/math/ec/PreCompInfo;)Lorg/bouncycastle/math/ec/PreCompInfo;
            astore 7 /* result */
        start local 7 // org.bouncycastle.math.ec.PreCompInfo result
        12: .line 226
            aload 7 /* result */
            aload 6 /* existing */
            if_acmpeq 14
        13: .line 228
            aload 4 /* table */
            aload 2 /* name */
            aload 7 /* result */
            invokevirtual java.util.Hashtable.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
        14: .line 231
      StackMap locals: java.util.Hashtable org.bouncycastle.math.ec.PreCompInfo org.bouncycastle.math.ec.PreCompInfo
      StackMap stack:
            aload 7 /* result */
            aload 5
            monitorexit
        15: areturn
        end local 7 // org.bouncycastle.math.ec.PreCompInfo result
        end local 6 // org.bouncycastle.math.ec.PreCompInfo existing
        16: .line 221
      StackMap locals: org.bouncycastle.math.ec.ECCurve org.bouncycastle.math.ec.ECPoint java.lang.String org.bouncycastle.math.ec.PreCompCallback java.util.Hashtable java.util.Hashtable
      StackMap stack: java.lang.Throwable
            aload 5
            monitorexit
        17: athrow
        end local 4 // java.util.Hashtable table
        end local 3 // org.bouncycastle.math.ec.PreCompCallback callback
        end local 2 // java.lang.String name
        end local 1 // org.bouncycastle.math.ec.ECPoint point
        end local 0 // org.bouncycastle.math.ec.ECCurve this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0   18     0      this  Lorg/bouncycastle/math/ec/ECCurve;
            0   18     1     point  Lorg/bouncycastle/math/ec/ECPoint;
            0   18     2      name  Ljava/lang/String;
            0   18     3  callback  Lorg/bouncycastle/math/ec/PreCompCallback;
            3    7     4     table  Ljava/util/Hashtable;
            9   18     4     table  Ljava/util/Hashtable;
           11   16     6  existing  Lorg/bouncycastle/math/ec/PreCompInfo;
           12   16     7    result  Lorg/bouncycastle/math/ec/PreCompInfo;
      Exception table:
        from    to  target  type
           2     6       7  any
           7     8       7  any
          10    15      16  any
          16    17      16  any
    MethodParameters:
          Name  Flags
      point     
      name      
      callback  

  public org.bouncycastle.math.ec.ECPoint importPoint(org.bouncycastle.math.ec.ECPoint);
    descriptor: (Lorg/bouncycastle/math/ec/ECPoint;)Lorg/bouncycastle/math/ec/ECPoint;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=2, args_size=2
        start local 0 // org.bouncycastle.math.ec.ECCurve this
        start local 1 // org.bouncycastle.math.ec.ECPoint p
         0: .line 237
            aload 0 /* this */
            aload 1 /* p */
            invokevirtual org.bouncycastle.math.ec.ECPoint.getCurve:()Lorg/bouncycastle/math/ec/ECCurve;
            if_acmpne 2
         1: .line 239
            aload 1 /* p */
            areturn
         2: .line 241
      StackMap locals:
      StackMap stack:
            aload 1 /* p */
            invokevirtual org.bouncycastle.math.ec.ECPoint.isInfinity:()Z
            ifeq 4
         3: .line 243
            aload 0 /* this */
            invokevirtual org.bouncycastle.math.ec.ECCurve.getInfinity:()Lorg/bouncycastle/math/ec/ECPoint;
            areturn
         4: .line 247
      StackMap locals:
      StackMap stack:
            aload 1 /* p */
            invokevirtual org.bouncycastle.math.ec.ECPoint.normalize:()Lorg/bouncycastle/math/ec/ECPoint;
            astore 1 /* p */
         5: .line 249
            aload 0 /* this */
            aload 1 /* p */
            invokevirtual org.bouncycastle.math.ec.ECPoint.getXCoord:()Lorg/bouncycastle/math/ec/ECFieldElement;
            invokevirtual org.bouncycastle.math.ec.ECFieldElement.toBigInteger:()Ljava/math/BigInteger;
            aload 1 /* p */
            invokevirtual org.bouncycastle.math.ec.ECPoint.getYCoord:()Lorg/bouncycastle/math/ec/ECFieldElement;
            invokevirtual org.bouncycastle.math.ec.ECFieldElement.toBigInteger:()Ljava/math/BigInteger;
            aload 1 /* p */
            getfield org.bouncycastle.math.ec.ECPoint.withCompression:Z
            invokevirtual org.bouncycastle.math.ec.ECCurve.createPoint:(Ljava/math/BigInteger;Ljava/math/BigInteger;Z)Lorg/bouncycastle/math/ec/ECPoint;
            areturn
        end local 1 // org.bouncycastle.math.ec.ECPoint p
        end local 0 // org.bouncycastle.math.ec.ECCurve this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    6     0  this  Lorg/bouncycastle/math/ec/ECCurve;
            0    6     1     p  Lorg/bouncycastle/math/ec/ECPoint;
    MethodParameters:
      Name  Flags
      p     

  public void normalizeAll(org.bouncycastle.math.ec.ECPoint[]);
    descriptor: ([Lorg/bouncycastle/math/ec/ECPoint;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=2, args_size=2
        start local 0 // org.bouncycastle.math.ec.ECCurve this
        start local 1 // org.bouncycastle.math.ec.ECPoint[] points
         0: .line 264
            aload 0 /* this */
            aload 1 /* points */
            iconst_0
            aload 1 /* points */
            arraylength
            aconst_null
            invokevirtual org.bouncycastle.math.ec.ECCurve.normalizeAll:([Lorg/bouncycastle/math/ec/ECPoint;IILorg/bouncycastle/math/ec/ECFieldElement;)V
         1: .line 265
            return
        end local 1 // org.bouncycastle.math.ec.ECPoint[] points
        end local 0 // org.bouncycastle.math.ec.ECCurve this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    2     0    this  Lorg/bouncycastle/math/ec/ECCurve;
            0    2     1  points  [Lorg/bouncycastle/math/ec/ECPoint;
    MethodParameters:
        Name  Flags
      points  

  public void normalizeAll(org.bouncycastle.math.ec.ECPoint[], int, int, org.bouncycastle.math.ec.ECFieldElement);
    descriptor: ([Lorg/bouncycastle/math/ec/ECPoint;IILorg/bouncycastle/math/ec/ECFieldElement;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=10, args_size=5
        start local 0 // org.bouncycastle.math.ec.ECCurve this
        start local 1 // org.bouncycastle.math.ec.ECPoint[] points
        start local 2 // int off
        start local 3 // int len
        start local 4 // org.bouncycastle.math.ec.ECFieldElement iso
         0: .line 287
            aload 0 /* this */
            aload 1 /* points */
            iload 2 /* off */
            iload 3 /* len */
            invokevirtual org.bouncycastle.math.ec.ECCurve.checkPoints:([Lorg/bouncycastle/math/ec/ECPoint;II)V
         1: .line 289
            aload 0 /* this */
            invokevirtual org.bouncycastle.math.ec.ECCurve.getCoordinateSystem:()I
            lookupswitch { // 2
                    0: 2
                    5: 2
              default: 5
          }
         2: .line 294
      StackMap locals:
      StackMap stack:
            aload 4 /* iso */
            ifnull 4
         3: .line 296
            new java.lang.IllegalArgumentException
            dup
            ldc "'iso' not valid for affine coordinates"
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
            athrow
         4: .line 298
      StackMap locals:
      StackMap stack:
            return
         5: .line 305
      StackMap locals:
      StackMap stack:
            iload 3 /* len */
            anewarray org.bouncycastle.math.ec.ECFieldElement
            astore 5 /* zs */
        start local 5 // org.bouncycastle.math.ec.ECFieldElement[] zs
         6: .line 306
            iload 3 /* len */
            newarray 10
            astore 6 /* indices */
        start local 6 // int[] indices
         7: .line 307
            iconst_0
            istore 7 /* count */
        start local 7 // int count
         8: .line 308
            iconst_0
            istore 8 /* i */
        start local 8 // int i
         9: goto 15
        10: .line 310
      StackMap locals: org.bouncycastle.math.ec.ECCurve org.bouncycastle.math.ec.ECPoint[] int int org.bouncycastle.math.ec.ECFieldElement org.bouncycastle.math.ec.ECFieldElement[] int[] int int
      StackMap stack:
            aload 1 /* points */
            iload 2 /* off */
            iload 8 /* i */
            iadd
            aaload
            astore 9 /* p */
        start local 9 // org.bouncycastle.math.ec.ECPoint p
        11: .line 311
            aload 9 /* p */
            ifnull 14
            aload 4 /* iso */
            ifnonnull 12
            aload 9 /* p */
            invokevirtual org.bouncycastle.math.ec.ECPoint.isNormalized:()Z
            ifne 14
        12: .line 313
      StackMap locals: org.bouncycastle.math.ec.ECPoint
      StackMap stack:
            aload 5 /* zs */
            iload 7 /* count */
            aload 9 /* p */
            iconst_0
            invokevirtual org.bouncycastle.math.ec.ECPoint.getZCoord:(I)Lorg/bouncycastle/math/ec/ECFieldElement;
            aastore
        13: .line 314
            aload 6 /* indices */
            iload 7 /* count */
            iinc 7 /* count */ 1
            iload 2 /* off */
            iload 8 /* i */
            iadd
            iastore
        end local 9 // org.bouncycastle.math.ec.ECPoint p
        14: .line 308
      StackMap locals:
      StackMap stack:
            iinc 8 /* i */ 1
      StackMap locals:
      StackMap stack:
        15: iload 8 /* i */
            iload 3 /* len */
            if_icmplt 10
        end local 8 // int i
        16: .line 318
            iload 7 /* count */
            ifne 18
        17: .line 320
            return
        18: .line 323
      StackMap locals:
      StackMap stack:
            aload 5 /* zs */
            iconst_0
            iload 7 /* count */
            aload 4 /* iso */
            invokestatic org.bouncycastle.math.ec.ECAlgorithms.montgomeryTrick:([Lorg/bouncycastle/math/ec/ECFieldElement;IILorg/bouncycastle/math/ec/ECFieldElement;)V
        19: .line 325
            iconst_0
            istore 8 /* j */
        start local 8 // int j
        20: goto 24
        21: .line 327
      StackMap locals: int
      StackMap stack:
            aload 6 /* indices */
            iload 8 /* j */
            iaload
            istore 9 /* index */
        start local 9 // int index
        22: .line 328
            aload 1 /* points */
            iload 9 /* index */
            aload 1 /* points */
            iload 9 /* index */
            aaload
            aload 5 /* zs */
            iload 8 /* j */
            aaload
            invokevirtual org.bouncycastle.math.ec.ECPoint.normalize:(Lorg/bouncycastle/math/ec/ECFieldElement;)Lorg/bouncycastle/math/ec/ECPoint;
            aastore
        end local 9 // int index
        23: .line 325
            iinc 8 /* j */ 1
      StackMap locals:
      StackMap stack:
        24: iload 8 /* j */
            iload 7 /* count */
            if_icmplt 21
        end local 8 // int j
        25: .line 330
            return
        end local 7 // int count
        end local 6 // int[] indices
        end local 5 // org.bouncycastle.math.ec.ECFieldElement[] zs
        end local 4 // org.bouncycastle.math.ec.ECFieldElement iso
        end local 3 // int len
        end local 2 // int off
        end local 1 // org.bouncycastle.math.ec.ECPoint[] points
        end local 0 // org.bouncycastle.math.ec.ECCurve this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0   26     0     this  Lorg/bouncycastle/math/ec/ECCurve;
            0   26     1   points  [Lorg/bouncycastle/math/ec/ECPoint;
            0   26     2      off  I
            0   26     3      len  I
            0   26     4      iso  Lorg/bouncycastle/math/ec/ECFieldElement;
            6   26     5       zs  [Lorg/bouncycastle/math/ec/ECFieldElement;
            7   26     6  indices  [I
            8   26     7    count  I
            9   16     8        i  I
           11   14     9        p  Lorg/bouncycastle/math/ec/ECPoint;
           20   25     8        j  I
           22   23     9    index  I
    MethodParameters:
        Name  Flags
      points  
      off     
      len     
      iso     

  public abstract org.bouncycastle.math.ec.ECPoint getInfinity();
    descriptor: ()Lorg/bouncycastle/math/ec/ECPoint;
    flags: (0x0401) ACC_PUBLIC, ACC_ABSTRACT

  public org.bouncycastle.math.field.FiniteField getField();
    descriptor: ()Lorg/bouncycastle/math/field/FiniteField;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.bouncycastle.math.ec.ECCurve this
         0: .line 336
            aload 0 /* this */
            getfield org.bouncycastle.math.ec.ECCurve.field:Lorg/bouncycastle/math/field/FiniteField;
            areturn
        end local 0 // org.bouncycastle.math.ec.ECCurve this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/bouncycastle/math/ec/ECCurve;

  public org.bouncycastle.math.ec.ECFieldElement getA();
    descriptor: ()Lorg/bouncycastle/math/ec/ECFieldElement;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.bouncycastle.math.ec.ECCurve this
         0: .line 341
            aload 0 /* this */
            getfield org.bouncycastle.math.ec.ECCurve.a:Lorg/bouncycastle/math/ec/ECFieldElement;
            areturn
        end local 0 // org.bouncycastle.math.ec.ECCurve this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/bouncycastle/math/ec/ECCurve;

  public org.bouncycastle.math.ec.ECFieldElement getB();
    descriptor: ()Lorg/bouncycastle/math/ec/ECFieldElement;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.bouncycastle.math.ec.ECCurve this
         0: .line 346
            aload 0 /* this */
            getfield org.bouncycastle.math.ec.ECCurve.b:Lorg/bouncycastle/math/ec/ECFieldElement;
            areturn
        end local 0 // org.bouncycastle.math.ec.ECCurve this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/bouncycastle/math/ec/ECCurve;

  public java.math.BigInteger getOrder();
    descriptor: ()Ljava/math/BigInteger;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.bouncycastle.math.ec.ECCurve this
         0: .line 351
            aload 0 /* this */
            getfield org.bouncycastle.math.ec.ECCurve.order:Ljava/math/BigInteger;
            areturn
        end local 0 // org.bouncycastle.math.ec.ECCurve this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/bouncycastle/math/ec/ECCurve;

  public java.math.BigInteger getCofactor();
    descriptor: ()Ljava/math/BigInteger;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.bouncycastle.math.ec.ECCurve this
         0: .line 356
            aload 0 /* this */
            getfield org.bouncycastle.math.ec.ECCurve.cofactor:Ljava/math/BigInteger;
            areturn
        end local 0 // org.bouncycastle.math.ec.ECCurve this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/bouncycastle/math/ec/ECCurve;

  public int getCoordinateSystem();
    descriptor: ()I
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.bouncycastle.math.ec.ECCurve this
         0: .line 361
            aload 0 /* this */
            getfield org.bouncycastle.math.ec.ECCurve.coord:I
            ireturn
        end local 0 // org.bouncycastle.math.ec.ECCurve this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/bouncycastle/math/ec/ECCurve;

  protected abstract org.bouncycastle.math.ec.ECPoint decompressPoint(int, java.math.BigInteger);
    descriptor: (ILjava/math/BigInteger;)Lorg/bouncycastle/math/ec/ECPoint;
    flags: (0x0404) ACC_PROTECTED, ACC_ABSTRACT
    MethodParameters:
        Name  Flags
      yTilde  
      X1      

  public org.bouncycastle.math.ec.endo.ECEndomorphism getEndomorphism();
    descriptor: ()Lorg/bouncycastle/math/ec/endo/ECEndomorphism;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.bouncycastle.math.ec.ECCurve this
         0: .line 368
            aload 0 /* this */
            getfield org.bouncycastle.math.ec.ECCurve.endomorphism:Lorg/bouncycastle/math/ec/endo/ECEndomorphism;
            areturn
        end local 0 // org.bouncycastle.math.ec.ECCurve this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/bouncycastle/math/ec/ECCurve;

  public synchronized org.bouncycastle.math.ec.ECMultiplier getMultiplier();
    descriptor: ()Lorg/bouncycastle/math/ec/ECMultiplier;
    flags: (0x0021) ACC_PUBLIC, ACC_SYNCHRONIZED
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // org.bouncycastle.math.ec.ECCurve this
         0: .line 376
            aload 0 /* this */
            getfield org.bouncycastle.math.ec.ECCurve.multiplier:Lorg/bouncycastle/math/ec/ECMultiplier;
            ifnonnull 2
         1: .line 378
            aload 0 /* this */
            aload 0 /* this */
            invokevirtual org.bouncycastle.math.ec.ECCurve.createDefaultMultiplier:()Lorg/bouncycastle/math/ec/ECMultiplier;
            putfield org.bouncycastle.math.ec.ECCurve.multiplier:Lorg/bouncycastle/math/ec/ECMultiplier;
         2: .line 380
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.bouncycastle.math.ec.ECCurve.multiplier:Lorg/bouncycastle/math/ec/ECMultiplier;
            areturn
        end local 0 // org.bouncycastle.math.ec.ECCurve this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    3     0  this  Lorg/bouncycastle/math/ec/ECCurve;

  public org.bouncycastle.math.ec.ECPoint decodePoint(byte[]);
    descriptor: ([B)Lorg/bouncycastle/math/ec/ECPoint;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=7, args_size=2
        start local 0 // org.bouncycastle.math.ec.ECCurve this
        start local 1 // byte[] encoded
         0: .line 391
            aconst_null
            astore 2 /* p */
        start local 2 // org.bouncycastle.math.ec.ECPoint p
         1: .line 392
            aload 0 /* this */
            invokevirtual org.bouncycastle.math.ec.ECCurve.getFieldSize:()I
            bipush 7
            iadd
            bipush 8
            idiv
            istore 3 /* expectedLength */
        start local 3 // int expectedLength
         2: .line 394
            aload 1 /* encoded */
            iconst_0
            baload
            istore 4 /* type */
        start local 4 // byte type
         3: .line 395
            iload 4 /* type */
            tableswitch { // 0 - 7
                    0: 4
                    1: 31
                    2: 8
                    3: 8
                    4: 15
                    5: 31
                    6: 21
                    7: 21
              default: 31
          }
         4: .line 399
      StackMap locals: org.bouncycastle.math.ec.ECPoint int int
      StackMap stack:
            aload 1 /* encoded */
            arraylength
            iconst_1
            if_icmpeq 6
         5: .line 401
            new java.lang.IllegalArgumentException
            dup
            ldc "Incorrect length for infinity encoding"
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
            athrow
         6: .line 404
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokevirtual org.bouncycastle.math.ec.ECCurve.getInfinity:()Lorg/bouncycastle/math/ec/ECPoint;
            astore 2 /* p */
         7: .line 405
            goto 32
         8: .line 410
      StackMap locals:
      StackMap stack:
            aload 1 /* encoded */
            arraylength
            iload 3 /* expectedLength */
            iconst_1
            iadd
            if_icmpeq 10
         9: .line 412
            new java.lang.IllegalArgumentException
            dup
            ldc "Incorrect length for compressed encoding"
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
            athrow
        10: .line 415
      StackMap locals:
      StackMap stack:
            iload 4 /* type */
            iconst_1
            iand
            istore 5 /* yTilde */
        start local 5 // int yTilde
        11: .line 416
            aload 1 /* encoded */
            iconst_1
            iload 3 /* expectedLength */
            invokestatic org.bouncycastle.util.BigIntegers.fromUnsignedByteArray:([BII)Ljava/math/BigInteger;
            astore 6 /* X */
        start local 6 // java.math.BigInteger X
        12: .line 418
            aload 0 /* this */
            iload 5 /* yTilde */
            aload 6 /* X */
            invokevirtual org.bouncycastle.math.ec.ECCurve.decompressPoint:(ILjava/math/BigInteger;)Lorg/bouncycastle/math/ec/ECPoint;
            astore 2 /* p */
        13: .line 419
            aload 2 /* p */
            iconst_1
            iconst_1
            invokevirtual org.bouncycastle.math.ec.ECPoint.implIsValid:(ZZ)Z
            ifne 32
        14: .line 421
            new java.lang.IllegalArgumentException
            dup
            ldc "Invalid point"
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
            athrow
        end local 6 // java.math.BigInteger X
        end local 5 // int yTilde
        15: .line 428
      StackMap locals:
      StackMap stack:
            aload 1 /* encoded */
            arraylength
            iconst_2
            iload 3 /* expectedLength */
            imul
            iconst_1
            iadd
            if_icmpeq 17
        16: .line 430
            new java.lang.IllegalArgumentException
            dup
            ldc "Incorrect length for uncompressed encoding"
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
            athrow
        17: .line 433
      StackMap locals:
      StackMap stack:
            aload 1 /* encoded */
            iconst_1
            iload 3 /* expectedLength */
            invokestatic org.bouncycastle.util.BigIntegers.fromUnsignedByteArray:([BII)Ljava/math/BigInteger;
            astore 5 /* X */
        start local 5 // java.math.BigInteger X
        18: .line 434
            aload 1 /* encoded */
            iconst_1
            iload 3 /* expectedLength */
            iadd
            iload 3 /* expectedLength */
            invokestatic org.bouncycastle.util.BigIntegers.fromUnsignedByteArray:([BII)Ljava/math/BigInteger;
            astore 6 /* Y */
        start local 6 // java.math.BigInteger Y
        19: .line 436
            aload 0 /* this */
            aload 5 /* X */
            aload 6 /* Y */
            invokevirtual org.bouncycastle.math.ec.ECCurve.validatePoint:(Ljava/math/BigInteger;Ljava/math/BigInteger;)Lorg/bouncycastle/math/ec/ECPoint;
            astore 2 /* p */
        20: .line 437
            goto 32
        end local 6 // java.math.BigInteger Y
        end local 5 // java.math.BigInteger X
        21: .line 442
      StackMap locals:
      StackMap stack:
            aload 1 /* encoded */
            arraylength
            iconst_2
            iload 3 /* expectedLength */
            imul
            iconst_1
            iadd
            if_icmpeq 23
        22: .line 444
            new java.lang.IllegalArgumentException
            dup
            ldc "Incorrect length for hybrid encoding"
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
            athrow
        23: .line 447
      StackMap locals:
      StackMap stack:
            aload 1 /* encoded */
            iconst_1
            iload 3 /* expectedLength */
            invokestatic org.bouncycastle.util.BigIntegers.fromUnsignedByteArray:([BII)Ljava/math/BigInteger;
            astore 5 /* X */
        start local 5 // java.math.BigInteger X
        24: .line 448
            aload 1 /* encoded */
            iconst_1
            iload 3 /* expectedLength */
            iadd
            iload 3 /* expectedLength */
            invokestatic org.bouncycastle.util.BigIntegers.fromUnsignedByteArray:([BII)Ljava/math/BigInteger;
            astore 6 /* Y */
        start local 6 // java.math.BigInteger Y
        25: .line 450
            aload 6 /* Y */
            iconst_0
            invokevirtual java.math.BigInteger.testBit:(I)Z
            iload 4 /* type */
            bipush 7
            if_icmpne 26
            iconst_1
            goto 27
      StackMap locals: org.bouncycastle.math.ec.ECCurve byte[] org.bouncycastle.math.ec.ECPoint int int java.math.BigInteger java.math.BigInteger
      StackMap stack: int
        26: iconst_0
      StackMap locals: org.bouncycastle.math.ec.ECCurve byte[] org.bouncycastle.math.ec.ECPoint int int java.math.BigInteger java.math.BigInteger
      StackMap stack: int int
        27: if_icmpeq 29
        28: .line 452
            new java.lang.IllegalArgumentException
            dup
            ldc "Inconsistent Y coordinate in hybrid encoding"
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
            athrow
        29: .line 455
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 5 /* X */
            aload 6 /* Y */
            invokevirtual org.bouncycastle.math.ec.ECCurve.validatePoint:(Ljava/math/BigInteger;Ljava/math/BigInteger;)Lorg/bouncycastle/math/ec/ECPoint;
            astore 2 /* p */
        30: .line 456
            goto 32
        end local 6 // java.math.BigInteger Y
        end local 5 // java.math.BigInteger X
        31: .line 459
      StackMap locals:
      StackMap stack:
            new java.lang.IllegalArgumentException
            dup
            new java.lang.StringBuilder
            dup
            ldc "Invalid point encoding 0x"
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            iload 4 /* type */
            bipush 16
            invokestatic java.lang.Integer.toString:(II)Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
            athrow
        32: .line 462
      StackMap locals:
      StackMap stack:
            iload 4 /* type */
            ifeq 34
            aload 2 /* p */
            invokevirtual org.bouncycastle.math.ec.ECPoint.isInfinity:()Z
            ifeq 34
        33: .line 464
            new java.lang.IllegalArgumentException
            dup
            ldc "Invalid infinity encoding"
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
            athrow
        34: .line 467
      StackMap locals:
      StackMap stack:
            aload 2 /* p */
            areturn
        end local 4 // byte type
        end local 3 // int expectedLength
        end local 2 // org.bouncycastle.math.ec.ECPoint p
        end local 1 // byte[] encoded
        end local 0 // org.bouncycastle.math.ec.ECCurve this
      LocalVariableTable:
        Start  End  Slot            Name  Signature
            0   35     0            this  Lorg/bouncycastle/math/ec/ECCurve;
            0   35     1         encoded  [B
            1   35     2               p  Lorg/bouncycastle/math/ec/ECPoint;
            2   35     3  expectedLength  I
            3   35     4            type  B
           11   15     5          yTilde  I
           12   15     6               X  Ljava/math/BigInteger;
           18   21     5               X  Ljava/math/BigInteger;
           19   21     6               Y  Ljava/math/BigInteger;
           24   31     5               X  Ljava/math/BigInteger;
           25   31     6               Y  Ljava/math/BigInteger;
    MethodParameters:
         Name  Flags
      encoded  

  public org.bouncycastle.math.ec.ECLookupTable createCacheSafeLookupTable(org.bouncycastle.math.ec.ECPoint[], int, int);
    descriptor: ([Lorg/bouncycastle/math/ec/ECPoint;II)Lorg/bouncycastle/math/ec/ECLookupTable;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=6, locals=15, args_size=4
        start local 0 // org.bouncycastle.math.ec.ECCurve this
        start local 1 // org.bouncycastle.math.ec.ECPoint[] points
        start local 2 // int off
        start local 3 // int len
         0: .line 476
            aload 0 /* this */
            invokevirtual org.bouncycastle.math.ec.ECCurve.getFieldSize:()I
            bipush 7
            iadd
            iconst_3
            iushr
            istore 4 /* FE_BYTES */
        start local 4 // int FE_BYTES
         1: .line 478
            iload 3 /* len */
            iload 4 /* FE_BYTES */
            imul
            iconst_2
            imul
            newarray 8
            astore 5 /* table */
        start local 5 // byte[] table
         2: .line 480
            iconst_0
            istore 6 /* pos */
        start local 6 // int pos
         3: .line 481
            iconst_0
            istore 7 /* i */
        start local 7 // int i
         4: goto 19
         5: .line 483
      StackMap locals: org.bouncycastle.math.ec.ECCurve org.bouncycastle.math.ec.ECPoint[] int int int byte[] int int
      StackMap stack:
            aload 1 /* points */
            iload 2 /* off */
            iload 7 /* i */
            iadd
            aaload
            astore 8 /* p */
        start local 8 // org.bouncycastle.math.ec.ECPoint p
         6: .line 484
            aload 8 /* p */
            invokevirtual org.bouncycastle.math.ec.ECPoint.getRawXCoord:()Lorg/bouncycastle/math/ec/ECFieldElement;
            invokevirtual org.bouncycastle.math.ec.ECFieldElement.toBigInteger:()Ljava/math/BigInteger;
            invokevirtual java.math.BigInteger.toByteArray:()[B
            astore 9 /* px */
        start local 9 // byte[] px
         7: .line 485
            aload 8 /* p */
            invokevirtual org.bouncycastle.math.ec.ECPoint.getRawYCoord:()Lorg/bouncycastle/math/ec/ECFieldElement;
            invokevirtual org.bouncycastle.math.ec.ECFieldElement.toBigInteger:()Ljava/math/BigInteger;
            invokevirtual java.math.BigInteger.toByteArray:()[B
            astore 10 /* py */
        start local 10 // byte[] py
         8: .line 487
            aload 9 /* px */
            arraylength
            iload 4 /* FE_BYTES */
            if_icmple 9
            iconst_1
            goto 10
      StackMap locals: org.bouncycastle.math.ec.ECPoint byte[] byte[]
      StackMap stack:
         9: iconst_0
      StackMap locals:
      StackMap stack: int
        10: istore 11 /* pxStart */
        start local 11 // int pxStart
        11: aload 9 /* px */
            arraylength
            iload 11 /* pxStart */
            isub
            istore 12 /* pxLen */
        start local 12 // int pxLen
        12: .line 488
            aload 10 /* py */
            arraylength
            iload 4 /* FE_BYTES */
            if_icmple 13
            iconst_1
            goto 14
      StackMap locals: int int
      StackMap stack:
        13: iconst_0
      StackMap locals:
      StackMap stack: int
        14: istore 13 /* pyStart */
        start local 13 // int pyStart
        15: aload 10 /* py */
            arraylength
            iload 13 /* pyStart */
            isub
            istore 14 /* pyLen */
        start local 14 // int pyLen
        16: .line 490
            aload 9 /* px */
            iload 11 /* pxStart */
            aload 5 /* table */
            iload 6 /* pos */
            iload 4 /* FE_BYTES */
            iadd
            iload 12 /* pxLen */
            isub
            iload 12 /* pxLen */
            invokestatic java.lang.System.arraycopy:(Ljava/lang/Object;ILjava/lang/Object;II)V
            iload 6 /* pos */
            iload 4 /* FE_BYTES */
            iadd
            istore 6 /* pos */
        17: .line 491
            aload 10 /* py */
            iload 13 /* pyStart */
            aload 5 /* table */
            iload 6 /* pos */
            iload 4 /* FE_BYTES */
            iadd
            iload 14 /* pyLen */
            isub
            iload 14 /* pyLen */
            invokestatic java.lang.System.arraycopy:(Ljava/lang/Object;ILjava/lang/Object;II)V
            iload 6 /* pos */
            iload 4 /* FE_BYTES */
            iadd
            istore 6 /* pos */
        end local 14 // int pyLen
        end local 13 // int pyStart
        end local 12 // int pxLen
        end local 11 // int pxStart
        end local 10 // byte[] py
        end local 9 // byte[] px
        end local 8 // org.bouncycastle.math.ec.ECPoint p
        18: .line 481
            iinc 7 /* i */ 1
      StackMap locals: org.bouncycastle.math.ec.ECCurve org.bouncycastle.math.ec.ECPoint[] int int int byte[] int int
      StackMap stack:
        19: iload 7 /* i */
            iload 3 /* len */
            if_icmplt 5
        end local 7 // int i
        end local 6 // int pos
        20: .line 495
            new org.bouncycastle.math.ec.ECCurve$1
            dup
            aload 0 /* this */
            iload 3 /* len */
            iload 4 /* FE_BYTES */
            aload 5 /* table */
            invokespecial org.bouncycastle.math.ec.ECCurve$1.<init>:(Lorg/bouncycastle/math/ec/ECCurve;II[B)V
            areturn
        end local 5 // byte[] table
        end local 4 // int FE_BYTES
        end local 3 // int len
        end local 2 // int off
        end local 1 // org.bouncycastle.math.ec.ECPoint[] points
        end local 0 // org.bouncycastle.math.ec.ECCurve this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0   21     0      this  Lorg/bouncycastle/math/ec/ECCurve;
            0   21     1    points  [Lorg/bouncycastle/math/ec/ECPoint;
            0   21     2       off  I
            0   21     3       len  I
            1   21     4  FE_BYTES  I
            2   21     5     table  [B
            3   20     6       pos  I
            4   20     7         i  I
            6   18     8         p  Lorg/bouncycastle/math/ec/ECPoint;
            7   18     9        px  [B
            8   18    10        py  [B
           11   18    11   pxStart  I
           12   18    12     pxLen  I
           15   18    13   pyStart  I
           16   18    14     pyLen  I
    MethodParameters:
        Name  Flags
      points  final
      off     
      len     final

  protected void checkPoint(org.bouncycastle.math.ec.ECPoint);
    descriptor: (Lorg/bouncycastle/math/ec/ECPoint;)V
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=3, locals=2, args_size=2
        start local 0 // org.bouncycastle.math.ec.ECCurve this
        start local 1 // org.bouncycastle.math.ec.ECPoint point
         0: .line 527
            aload 1 /* point */
            ifnull 1
            aload 0 /* this */
            aload 1 /* point */
            invokevirtual org.bouncycastle.math.ec.ECPoint.getCurve:()Lorg/bouncycastle/math/ec/ECCurve;
            if_acmpeq 2
         1: .line 529
      StackMap locals:
      StackMap stack:
            new java.lang.IllegalArgumentException
            dup
            ldc "'point' must be non-null and on this curve"
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
            athrow
         2: .line 531
      StackMap locals:
      StackMap stack:
            return
        end local 1 // org.bouncycastle.math.ec.ECPoint point
        end local 0 // org.bouncycastle.math.ec.ECCurve this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    3     0   this  Lorg/bouncycastle/math/ec/ECCurve;
            0    3     1  point  Lorg/bouncycastle/math/ec/ECPoint;
    MethodParameters:
       Name  Flags
      point  

  protected void checkPoints(org.bouncycastle.math.ec.ECPoint[]);
    descriptor: ([Lorg/bouncycastle/math/ec/ECPoint;)V
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=4, locals=2, args_size=2
        start local 0 // org.bouncycastle.math.ec.ECCurve this
        start local 1 // org.bouncycastle.math.ec.ECPoint[] points
         0: .line 535
            aload 0 /* this */
            aload 1 /* points */
            iconst_0
            aload 1 /* points */
            arraylength
            invokevirtual org.bouncycastle.math.ec.ECCurve.checkPoints:([Lorg/bouncycastle/math/ec/ECPoint;II)V
         1: .line 536
            return
        end local 1 // org.bouncycastle.math.ec.ECPoint[] points
        end local 0 // org.bouncycastle.math.ec.ECCurve this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    2     0    this  Lorg/bouncycastle/math/ec/ECCurve;
            0    2     1  points  [Lorg/bouncycastle/math/ec/ECPoint;
    MethodParameters:
        Name  Flags
      points  

  protected void checkPoints(org.bouncycastle.math.ec.ECPoint[], int, int);
    descriptor: ([Lorg/bouncycastle/math/ec/ECPoint;II)V
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=3, locals=6, args_size=4
        start local 0 // org.bouncycastle.math.ec.ECCurve this
        start local 1 // org.bouncycastle.math.ec.ECPoint[] points
        start local 2 // int off
        start local 3 // int len
         0: .line 540
            aload 1 /* points */
            ifnonnull 2
         1: .line 542
            new java.lang.IllegalArgumentException
            dup
            ldc "'points' cannot be null"
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
            athrow
         2: .line 544
      StackMap locals:
      StackMap stack:
            iload 2 /* off */
            iflt 3
            iload 3 /* len */
            iflt 3
            iload 2 /* off */
            aload 1 /* points */
            arraylength
            iload 3 /* len */
            isub
            if_icmple 4
         3: .line 546
      StackMap locals:
      StackMap stack:
            new java.lang.IllegalArgumentException
            dup
            ldc "invalid range specified for 'points'"
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
            athrow
         4: .line 549
      StackMap locals:
      StackMap stack:
            iconst_0
            istore 4 /* i */
        start local 4 // int i
         5: goto 10
         6: .line 551
      StackMap locals: int
      StackMap stack:
            aload 1 /* points */
            iload 2 /* off */
            iload 4 /* i */
            iadd
            aaload
            astore 5 /* point */
        start local 5 // org.bouncycastle.math.ec.ECPoint point
         7: .line 552
            aload 5 /* point */
            ifnull 9
            aload 0 /* this */
            aload 5 /* point */
            invokevirtual org.bouncycastle.math.ec.ECPoint.getCurve:()Lorg/bouncycastle/math/ec/ECCurve;
            if_acmpeq 9
         8: .line 554
            new java.lang.IllegalArgumentException
            dup
            ldc "'points' entries must be null or on this curve"
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
            athrow
        end local 5 // org.bouncycastle.math.ec.ECPoint point
         9: .line 549
      StackMap locals:
      StackMap stack:
            iinc 4 /* i */ 1
      StackMap locals:
      StackMap stack:
        10: iload 4 /* i */
            iload 3 /* len */
            if_icmplt 6
        end local 4 // int i
        11: .line 557
            return
        end local 3 // int len
        end local 2 // int off
        end local 1 // org.bouncycastle.math.ec.ECPoint[] points
        end local 0 // org.bouncycastle.math.ec.ECCurve this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0   12     0    this  Lorg/bouncycastle/math/ec/ECCurve;
            0   12     1  points  [Lorg/bouncycastle/math/ec/ECPoint;
            0   12     2     off  I
            0   12     3     len  I
            5   11     4       i  I
            7    9     5   point  Lorg/bouncycastle/math/ec/ECPoint;
    MethodParameters:
        Name  Flags
      points  
      off     
      len     

  public boolean equals(org.bouncycastle.math.ec.ECCurve);
    descriptor: (Lorg/bouncycastle/math/ec/ECCurve;)Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // org.bouncycastle.math.ec.ECCurve this
        start local 1 // org.bouncycastle.math.ec.ECCurve other
         0: .line 561
            aload 0 /* this */
            aload 1 /* other */
            if_acmpeq 6
         1: .line 562
            aload 1 /* other */
            ifnull 5
         2: .line 563
            aload 0 /* this */
            invokevirtual org.bouncycastle.math.ec.ECCurve.getField:()Lorg/bouncycastle/math/field/FiniteField;
            aload 1 /* other */
            invokevirtual org.bouncycastle.math.ec.ECCurve.getField:()Lorg/bouncycastle/math/field/FiniteField;
            invokevirtual java.lang.Object.equals:(Ljava/lang/Object;)Z
            ifeq 5
         3: .line 564
            aload 0 /* this */
            invokevirtual org.bouncycastle.math.ec.ECCurve.getA:()Lorg/bouncycastle/math/ec/ECFieldElement;
            invokevirtual org.bouncycastle.math.ec.ECFieldElement.toBigInteger:()Ljava/math/BigInteger;
            aload 1 /* other */
            invokevirtual org.bouncycastle.math.ec.ECCurve.getA:()Lorg/bouncycastle/math/ec/ECFieldElement;
            invokevirtual org.bouncycastle.math.ec.ECFieldElement.toBigInteger:()Ljava/math/BigInteger;
            invokevirtual java.math.BigInteger.equals:(Ljava/lang/Object;)Z
            ifeq 5
         4: .line 565
            aload 0 /* this */
            invokevirtual org.bouncycastle.math.ec.ECCurve.getB:()Lorg/bouncycastle/math/ec/ECFieldElement;
            invokevirtual org.bouncycastle.math.ec.ECFieldElement.toBigInteger:()Ljava/math/BigInteger;
            aload 1 /* other */
            invokevirtual org.bouncycastle.math.ec.ECCurve.getB:()Lorg/bouncycastle/math/ec/ECFieldElement;
            invokevirtual org.bouncycastle.math.ec.ECFieldElement.toBigInteger:()Ljava/math/BigInteger;
            invokevirtual java.math.BigInteger.equals:(Ljava/lang/Object;)Z
            ifne 6
         5: .line 561
      StackMap locals:
      StackMap stack:
            iconst_0
            ireturn
      StackMap locals:
      StackMap stack:
         6: iconst_1
            ireturn
        end local 1 // org.bouncycastle.math.ec.ECCurve other
        end local 0 // org.bouncycastle.math.ec.ECCurve this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    7     0   this  Lorg/bouncycastle/math/ec/ECCurve;
            0    7     1  other  Lorg/bouncycastle/math/ec/ECCurve;
    MethodParameters:
       Name  Flags
      other  

  public boolean equals(java.lang.Object);
    descriptor: (Ljava/lang/Object;)Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // org.bouncycastle.math.ec.ECCurve this
        start local 1 // java.lang.Object obj
         0: .line 570
            aload 0 /* this */
            aload 1 /* obj */
            if_acmpeq 2
            aload 1 /* obj */
            instanceof org.bouncycastle.math.ec.ECCurve
            ifeq 1
            aload 0 /* this */
            aload 1 /* obj */
            checkcast org.bouncycastle.math.ec.ECCurve
            invokevirtual org.bouncycastle.math.ec.ECCurve.equals:(Lorg/bouncycastle/math/ec/ECCurve;)Z
            ifne 2
      StackMap locals:
      StackMap stack:
         1: iconst_0
            ireturn
      StackMap locals:
      StackMap stack:
         2: iconst_1
            ireturn
        end local 1 // java.lang.Object obj
        end local 0 // org.bouncycastle.math.ec.ECCurve this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    3     0  this  Lorg/bouncycastle/math/ec/ECCurve;
            0    3     1   obj  Ljava/lang/Object;
    MethodParameters:
      Name  Flags
      obj   

  public int hashCode();
    descriptor: ()I
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=1, args_size=1
        start local 0 // org.bouncycastle.math.ec.ECCurve this
         0: .line 575
            aload 0 /* this */
            invokevirtual org.bouncycastle.math.ec.ECCurve.getField:()Lorg/bouncycastle/math/field/FiniteField;
            invokevirtual java.lang.Object.hashCode:()I
         1: .line 576
            aload 0 /* this */
            invokevirtual org.bouncycastle.math.ec.ECCurve.getA:()Lorg/bouncycastle/math/ec/ECFieldElement;
            invokevirtual org.bouncycastle.math.ec.ECFieldElement.toBigInteger:()Ljava/math/BigInteger;
            invokevirtual java.math.BigInteger.hashCode:()I
            bipush 8
            invokestatic org.bouncycastle.util.Integers.rotateLeft:(II)I
         2: .line 575
            ixor
         3: .line 577
            aload 0 /* this */
            invokevirtual org.bouncycastle.math.ec.ECCurve.getB:()Lorg/bouncycastle/math/ec/ECFieldElement;
            invokevirtual org.bouncycastle.math.ec.ECFieldElement.toBigInteger:()Ljava/math/BigInteger;
            invokevirtual java.math.BigInteger.hashCode:()I
            bipush 16
            invokestatic org.bouncycastle.util.Integers.rotateLeft:(II)I
         4: .line 575
            ixor
            ireturn
        end local 0 // org.bouncycastle.math.ec.ECCurve this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    5     0  this  Lorg/bouncycastle/math/ec/ECCurve;
}
SourceFile: "ECCurve.java"
NestMembers:
  org.bouncycastle.math.ec.ECCurve$1  org.bouncycastle.math.ec.ECCurve$AbstractF2m  org.bouncycastle.math.ec.ECCurve$AbstractFp  org.bouncycastle.math.ec.ECCurve$Config  org.bouncycastle.math.ec.ECCurve$F2m  org.bouncycastle.math.ec.ECCurve$F2m$1  org.bouncycastle.math.ec.ECCurve$Fp
InnerClasses:
  org.bouncycastle.math.ec.ECCurve$1
  public abstract AbstractF2m = org.bouncycastle.math.ec.ECCurve$AbstractF2m of org.bouncycastle.math.ec.ECCurve
  public abstract AbstractFp = org.bouncycastle.math.ec.ECCurve$AbstractFp of org.bouncycastle.math.ec.ECCurve
  public Config = org.bouncycastle.math.ec.ECCurve$Config of org.bouncycastle.math.ec.ECCurve
  public F2m = org.bouncycastle.math.ec.ECCurve$F2m of org.bouncycastle.math.ec.ECCurve
  public Fp = org.bouncycastle.math.ec.ECCurve$Fp of org.bouncycastle.math.ec.ECCurve