summary refs log tree commit diff
diff options
context:
space:
mode:
-rw-r--r--crypto/BouncyCastle.Android.csproj5
-rw-r--r--crypto/BouncyCastle.csproj5
-rw-r--r--crypto/BouncyCastle.iOS.csproj5
-rw-r--r--crypto/crypto.csproj57
-rw-r--r--crypto/src/asn1/nist/KMACwithSHAKE128_params.cs103
-rw-r--r--crypto/src/asn1/nist/KMACwithSHAKE256_params.cs102
-rw-r--r--crypto/src/crypto/digests/CSHAKEDigest.cs26
-rw-r--r--crypto/src/crypto/digests/XofUtils.cs9
-rw-r--r--crypto/src/crypto/macs/KMac.cs44
-rw-r--r--crypto/src/math/raw/Mod.cs165
-rw-r--r--crypto/test/UnitTests.csproj6
-rw-r--r--crypto/test/data/crypto/nist_ecc.txt3180
-rw-r--r--crypto/test/src/asn1/test/KMacParamsTest.cs90
-rw-r--r--crypto/test/src/asn1/test/RegressionTest.cs45
-rw-r--r--crypto/test/src/crypto/test/CSHAKETest.cs69
-rw-r--r--crypto/test/src/crypto/test/KMACTest.cs39
-rw-r--r--crypto/test/src/crypto/test/NistEccTest.cs106
-rw-r--r--crypto/test/src/crypto/test/Poly1305Test.cs3
-rw-r--r--crypto/test/src/crypto/test/RegressionTest.cs4
-rw-r--r--crypto/test/src/tsp/test/NewTspTest.cs60
-rw-r--r--crypto/test/src/tsp/test/TSPTest.cs35
-rw-r--r--crypto/test/src/tsp/test/TSPTestUtil.cs219
22 files changed, 4165 insertions, 212 deletions
diff --git a/crypto/BouncyCastle.Android.csproj b/crypto/BouncyCastle.Android.csproj
index 7b40965f7..11ff7d951 100644
--- a/crypto/BouncyCastle.Android.csproj
+++ b/crypto/BouncyCastle.Android.csproj
@@ -325,6 +325,8 @@
     <Compile Include="src\asn1\misc\NetscapeRevocationURL.cs" />
     <Compile Include="src\asn1\misc\VerisignCzagExtension.cs" />
     <Compile Include="src\asn1\mozilla\PublicKeyAndChallenge.cs" />
+    <Compile Include="src\asn1\nist\KMACwithSHAKE128_params.cs" />
+    <Compile Include="src\asn1\nist\KMACwithSHAKE256_params.cs" />
     <Compile Include="src\asn1\nist\NISTNamedCurves.cs" />
     <Compile Include="src\asn1\nist\NISTObjectIdentifiers.cs" />
     <Compile Include="src\asn1\ntt\NTTObjectIdentifiers.cs" />
@@ -748,6 +750,7 @@
     <Compile Include="src\crypto\agreement\srp\SRP6VerifierGenerator.cs" />
     <Compile Include="src\crypto\digests\Blake2bDigest.cs" />
     <Compile Include="src\crypto\digests\Blake2sDigest.cs" />
+    <Compile Include="src\crypto\digests\CSHAKEDigest.cs" />
     <Compile Include="src\crypto\digests\DSTU7564Digest.cs" />
     <Compile Include="src\crypto\digests\GeneralDigest.cs" />
     <Compile Include="src\crypto\digests\GOST3411Digest.cs" />
@@ -778,6 +781,7 @@
     <Compile Include="src\crypto\digests\SkeinEngine.cs" />
     <Compile Include="src\crypto\digests\TigerDigest.cs" />
     <Compile Include="src\crypto\digests\WhirlpoolDigest.cs" />
+    <Compile Include="src\crypto\digests\XofUtils.cs" />
     <Compile Include="src\crypto\ec\CustomNamedCurves.cs" />
     <Compile Include="src\crypto\encodings\ISO9796d1Encoding.cs" />
     <Compile Include="src\crypto\encodings\OaepEncoding.cs" />
@@ -886,6 +890,7 @@
     <Compile Include="src\crypto\macs\GOST28147Mac.cs" />
     <Compile Include="src\crypto\macs\HMac.cs" />
     <Compile Include="src\crypto\macs\ISO9797Alg3Mac.cs" />
+    <Compile Include="src\crypto\macs\KMac.cs" />
     <Compile Include="src\crypto\macs\Poly1305.cs" />
     <Compile Include="src\crypto\macs\SipHash.cs" />
     <Compile Include="src\crypto\macs\SkeinMac.cs" />
diff --git a/crypto/BouncyCastle.csproj b/crypto/BouncyCastle.csproj
index 099c57d87..30077e1ef 100644
--- a/crypto/BouncyCastle.csproj
+++ b/crypto/BouncyCastle.csproj
@@ -319,6 +319,8 @@
     <Compile Include="src\asn1\misc\NetscapeRevocationURL.cs" />
     <Compile Include="src\asn1\misc\VerisignCzagExtension.cs" />
     <Compile Include="src\asn1\mozilla\PublicKeyAndChallenge.cs" />
+    <Compile Include="src\asn1\nist\KMACwithSHAKE128_params.cs" />
+    <Compile Include="src\asn1\nist\KMACwithSHAKE256_params.cs" />
     <Compile Include="src\asn1\nist\NISTNamedCurves.cs" />
     <Compile Include="src\asn1\nist\NISTObjectIdentifiers.cs" />
     <Compile Include="src\asn1\ntt\NTTObjectIdentifiers.cs" />
@@ -742,6 +744,7 @@
     <Compile Include="src\crypto\agreement\srp\SRP6VerifierGenerator.cs" />
     <Compile Include="src\crypto\digests\Blake2bDigest.cs" />
     <Compile Include="src\crypto\digests\Blake2sDigest.cs" />
+    <Compile Include="src\crypto\digests\CSHAKEDigest.cs" />
     <Compile Include="src\crypto\digests\DSTU7564Digest.cs" />
     <Compile Include="src\crypto\digests\GeneralDigest.cs" />
     <Compile Include="src\crypto\digests\GOST3411Digest.cs" />
@@ -772,6 +775,7 @@
     <Compile Include="src\crypto\digests\SkeinEngine.cs" />
     <Compile Include="src\crypto\digests\TigerDigest.cs" />
     <Compile Include="src\crypto\digests\WhirlpoolDigest.cs" />
+    <Compile Include="src\crypto\digests\XofUtils.cs" />
     <Compile Include="src\crypto\ec\CustomNamedCurves.cs" />
     <Compile Include="src\crypto\encodings\ISO9796d1Encoding.cs" />
     <Compile Include="src\crypto\encodings\OaepEncoding.cs" />
@@ -880,6 +884,7 @@
     <Compile Include="src\crypto\macs\GOST28147Mac.cs" />
     <Compile Include="src\crypto\macs\HMac.cs" />
     <Compile Include="src\crypto\macs\ISO9797Alg3Mac.cs" />
+    <Compile Include="src\crypto\macs\KMac.cs" />
     <Compile Include="src\crypto\macs\Poly1305.cs" />
     <Compile Include="src\crypto\macs\SipHash.cs" />
     <Compile Include="src\crypto\macs\SkeinMac.cs" />
diff --git a/crypto/BouncyCastle.iOS.csproj b/crypto/BouncyCastle.iOS.csproj
index 95d9a0a14..451411bb2 100644
--- a/crypto/BouncyCastle.iOS.csproj
+++ b/crypto/BouncyCastle.iOS.csproj
@@ -320,6 +320,8 @@
     <Compile Include="src\asn1\misc\NetscapeRevocationURL.cs" />
     <Compile Include="src\asn1\misc\VerisignCzagExtension.cs" />
     <Compile Include="src\asn1\mozilla\PublicKeyAndChallenge.cs" />
+    <Compile Include="src\asn1\nist\KMACwithSHAKE128_params.cs" />
+    <Compile Include="src\asn1\nist\KMACwithSHAKE256_params.cs" />
     <Compile Include="src\asn1\nist\NISTNamedCurves.cs" />
     <Compile Include="src\asn1\nist\NISTObjectIdentifiers.cs" />
     <Compile Include="src\asn1\ntt\NTTObjectIdentifiers.cs" />
@@ -743,6 +745,7 @@
     <Compile Include="src\crypto\agreement\srp\SRP6VerifierGenerator.cs" />
     <Compile Include="src\crypto\digests\Blake2bDigest.cs" />
     <Compile Include="src\crypto\digests\Blake2sDigest.cs" />
+    <Compile Include="src\crypto\digests\CSHAKEDigest.cs" />
     <Compile Include="src\crypto\digests\DSTU7564Digest.cs" />
     <Compile Include="src\crypto\digests\GeneralDigest.cs" />
     <Compile Include="src\crypto\digests\GOST3411Digest.cs" />
@@ -773,6 +776,7 @@
     <Compile Include="src\crypto\digests\SkeinEngine.cs" />
     <Compile Include="src\crypto\digests\TigerDigest.cs" />
     <Compile Include="src\crypto\digests\WhirlpoolDigest.cs" />
+    <Compile Include="src\crypto\digests\XofUtils.cs" />
     <Compile Include="src\crypto\ec\CustomNamedCurves.cs" />
     <Compile Include="src\crypto\encodings\ISO9796d1Encoding.cs" />
     <Compile Include="src\crypto\encodings\OaepEncoding.cs" />
@@ -881,6 +885,7 @@
     <Compile Include="src\crypto\macs\GOST28147Mac.cs" />
     <Compile Include="src\crypto\macs\HMac.cs" />
     <Compile Include="src\crypto\macs\ISO9797Alg3Mac.cs" />
+    <Compile Include="src\crypto\macs\KMac.cs" />
     <Compile Include="src\crypto\macs\Poly1305.cs" />
     <Compile Include="src\crypto\macs\SipHash.cs" />
     <Compile Include="src\crypto\macs\SkeinMac.cs" />
diff --git a/crypto/crypto.csproj b/crypto/crypto.csproj
index 0ae1681fc..d3afdafe3 100644
--- a/crypto/crypto.csproj
+++ b/crypto/crypto.csproj
@@ -1484,6 +1484,16 @@
                     BuildAction = "Compile"
                 />
                 <File
+                    RelPath = "src\asn1\nist\KMACwithSHAKE128_params.cs"
+                    SubType = "Code"
+                    BuildAction = "Compile"
+                />
+                <File
+                    RelPath = "src\asn1\nist\KMACwithSHAKE256_params.cs"
+                    SubType = "Code"
+                    BuildAction = "Compile"
+                />
+                <File
                     RelPath = "src\asn1\nist\NISTNamedCurves.cs"
                     SubType = "Code"
                     BuildAction = "Compile"
@@ -3564,6 +3574,11 @@
                     BuildAction = "Compile"
                 />
                 <File
+                    RelPath = "src\crypto\digests\CSHAKEDigest.cs"
+                    SubType = "Code"
+                    BuildAction = "Compile"
+                />
+                <File
                     RelPath = "src\crypto\digests\DSTU7564Digest.cs"
                     SubType = "Code"
                     BuildAction = "Compile"
@@ -3719,6 +3734,11 @@
                     BuildAction = "Compile"
                 />
                 <File
+                    RelPath = "src\crypto\digests\XofUtils.cs"
+                    SubType = "Code"
+                    BuildAction = "Compile"
+                />
+                <File
                     RelPath = "src\crypto\ec\CustomNamedCurves.cs"
                     SubType = "Code"
                     BuildAction = "Compile"
@@ -4279,22 +4299,27 @@
                     BuildAction = "Compile"
                 />
                 <File
-                    RelPath = "src\crypto\macs\Poly1305.cs"
+                    RelPath = "src\crypto\macs\ISO9797Alg3Mac.cs"
                     SubType = "Code"
                     BuildAction = "Compile"
                 />
                 <File
-                    RelPath = "src\crypto\macs\SipHash.cs"
+                    RelPath = "src\crypto\macs\KMac.cs"
                     SubType = "Code"
                     BuildAction = "Compile"
                 />
                 <File
-                    RelPath = "src\crypto\macs\SkeinMac.cs"
+                    RelPath = "src\crypto\macs\Poly1305.cs"
                     SubType = "Code"
                     BuildAction = "Compile"
                 />
                 <File
-                    RelPath = "src\crypto\macs\ISO9797Alg3Mac.cs"
+                    RelPath = "src\crypto\macs\SipHash.cs"
+                    SubType = "Code"
+                    BuildAction = "Compile"
+                />
+                <File
+                    RelPath = "src\crypto\macs\SkeinMac.cs"
                     SubType = "Code"
                     BuildAction = "Compile"
                 />
@@ -8250,6 +8275,10 @@
                     BuildAction = "EmbeddedResource"
                 />
                 <File
+                    RelPath = "test\data\crypto\nist_ecc.txt"
+                    BuildAction = "EmbeddedResource"
+                />
+                <File
                     RelPath = "test\data\crypto\SHA3TestVectors.txt"
                     BuildAction = "EmbeddedResource"
                 />
@@ -11763,6 +11792,11 @@
                     BuildAction = "Compile"
                 />
                 <File
+                    RelPath = "test\src\asn1\test\KMacParamsTest.cs"
+                    SubType = "Code"
+                    BuildAction = "Compile"
+                />
+                <File
                     RelPath = "test\src\asn1\test\LDSSecurityObjectUnitTest.cs"
                     SubType = "Code"
                     BuildAction = "Compile"
@@ -12218,6 +12252,11 @@
                     BuildAction = "Compile"
                 />
                 <File
+                    RelPath = "test\src\crypto\test\CSHAKETest.cs"
+                    SubType = "Code"
+                    BuildAction = "Compile"
+                />
+                <File
                     RelPath = "test\src\crypto\test\CTSTest.cs"
                     SubType = "Code"
                     BuildAction = "Compile"
@@ -12343,6 +12382,16 @@
                     BuildAction = "Compile"
                 />
                 <File
+                    RelPath = "test\src\crypto\test\KMACTest.cs"
+                    SubType = "Code"
+                    BuildAction = "Compile"
+                />
+                <File
+                    RelPath = "test\src\crypto\test\NistEccTest.cs"
+                    SubType = "Code"
+                    BuildAction = "Compile"
+                />
+                <File
                     RelPath = "test\src\crypto\test\OCBTest.cs"
                     SubType = "Code"
                     BuildAction = "Compile"
diff --git a/crypto/src/asn1/nist/KMACwithSHAKE128_params.cs b/crypto/src/asn1/nist/KMACwithSHAKE128_params.cs
new file mode 100644
index 000000000..a1fd8f403
--- /dev/null
+++ b/crypto/src/asn1/nist/KMACwithSHAKE128_params.cs
@@ -0,0 +1,103 @@
+using Org.BouncyCastle.Utilities;
+using System;
+
+
+namespace Org.BouncyCastle.Asn1.Nist
+{
+    /// <summary>
+    /// KMACwithSHAKE128-params ::= SEQUENCE {
+    ///     kMACOutputLength     INTEGER DEFAULT 256, -- Output length in bits
+    ///     customizationString  OCTET STRING DEFAULT ''H
+    /// } 
+    /// </summary>
+public class KMacWithShake128Params : Asn1Encodable
+{
+    private static readonly byte[] EMPTY_STRING = new byte[0];
+    private static readonly int DEF_LENGTH = 256;
+
+    private readonly int outputLength;
+    private readonly byte[] customizationString;
+
+    public KMacWithShake128Params(int outputLength)
+    {
+        this.outputLength = outputLength;
+        this.customizationString = EMPTY_STRING;
+    }
+
+    public KMacWithShake128Params(int outputLength, byte[] customizationString)
+    {
+        this.outputLength = outputLength;
+        this.customizationString = Arrays.Clone(customizationString);
+    }
+
+    public static KMacWithShake128Params GetInstance(object o)
+    {
+        if (o is KMacWithShake128Params)
+        {
+            return (KMacWithShake128Params)o;
+        }
+        else if (o != null)
+        {
+            return new KMacWithShake128Params(Asn1Sequence.GetInstance(o));
+        }
+
+        return null;
+    }
+
+    private KMacWithShake128Params(Asn1Sequence seq)
+    {
+        if (seq.Count > 2)
+            throw new InvalidOperationException("sequence size greater than 2");
+
+        if (seq.Count == 2)
+        {
+            this.outputLength = DerInteger.GetInstance(seq[0]).IntValueExact;
+            this.customizationString = Arrays.Clone(Asn1OctetString.GetInstance(seq[1]).GetOctets());
+        }
+        else if (seq.Count == 1)
+        {
+            if (seq[0] is DerInteger)
+            {
+                this.outputLength = DerInteger.GetInstance(seq[0]).IntValueExact;
+                this.customizationString = EMPTY_STRING;
+            }
+            else
+            {
+                this.outputLength = DEF_LENGTH;
+                this.customizationString = Arrays.Clone(Asn1OctetString.GetInstance(seq[0]).GetOctets());
+            }
+        }
+        else
+        {
+            this.outputLength = DEF_LENGTH;
+            this.customizationString = EMPTY_STRING;
+        }
+    }
+
+    public int OutputLength
+    {
+        get { return outputLength; }
+    }
+
+    public byte[] CustomizationString
+    {
+        get { return Arrays.Clone(customizationString); }
+    }
+
+    public override Asn1Object ToAsn1Object()
+    {
+        Asn1EncodableVector v = new Asn1EncodableVector();
+        if (outputLength != DEF_LENGTH)
+        {
+            v.Add(new DerInteger(outputLength));
+        }
+
+        if (customizationString.Length != 0)
+        {
+            v.Add(new DerOctetString(CustomizationString));
+        }
+
+        return new DerSequence(v);
+    }
+}
+}
diff --git a/crypto/src/asn1/nist/KMACwithSHAKE256_params.cs b/crypto/src/asn1/nist/KMACwithSHAKE256_params.cs
new file mode 100644
index 000000000..fa7471913
--- /dev/null
+++ b/crypto/src/asn1/nist/KMACwithSHAKE256_params.cs
@@ -0,0 +1,102 @@
+using Org.BouncyCastle.Utilities;
+using System;
+
+namespace Org.BouncyCastle.Asn1.Nist
+{
+    /// <summary>
+    /// KMACwithSHAKE256-params ::= SEQUENCE {
+    ///     kMACOutputLength     INTEGER DEFAULT 512, -- Output length in bits
+    ///     customizationString  OCTET STRING DEFAULT ''H
+    /// } 
+    /// </summary>
+public class KMacWithShake256Params : Asn1Encodable
+{
+    private static readonly byte[] EMPTY_STRING = new byte[0];
+    private static readonly int DEF_LENGTH = 512;
+
+    private readonly int outputLength;
+    private readonly byte[] customizationString;
+
+    public KMacWithShake256Params(int outputLength)
+    {
+        this.outputLength = outputLength;
+        this.customizationString = EMPTY_STRING;
+    }
+
+    public KMacWithShake256Params(int outputLength, byte[] customizationString)
+    {
+        this.outputLength = outputLength;
+        this.customizationString = Arrays.Clone(customizationString);
+    }
+
+    public static KMacWithShake256Params GetInstance(Object o)
+    {
+        if (o is KMacWithShake256Params)
+        {
+            return (KMacWithShake256Params)o;
+        }
+        else if (o != null)
+        {
+            return new KMacWithShake256Params(Asn1Sequence.GetInstance(o));
+        }
+
+        return null;
+    }
+
+    private KMacWithShake256Params(Asn1Sequence seq)
+    {
+        if (seq.Count > 2)
+            throw new InvalidOperationException("sequence size greater than 2");
+
+        if (seq.Count == 2)
+        {
+            this.outputLength = DerInteger.GetInstance(seq[0]).IntValueExact;
+            this.customizationString = Arrays.Clone(Asn1OctetString.GetInstance(seq[1]).GetOctets());
+        }
+        else if (seq.Count == 1)
+        {
+            if (seq[0] is DerInteger)
+            {
+                this.outputLength = DerInteger.GetInstance(seq[0]).IntValueExact;
+                this.customizationString = EMPTY_STRING;
+            }
+            else
+            {
+                this.outputLength = DEF_LENGTH;
+                this.customizationString = Arrays.Clone(Asn1OctetString.GetInstance(seq[0]).GetOctets());
+            }
+        }
+        else
+        {
+            this.outputLength = DEF_LENGTH;
+            this.customizationString = EMPTY_STRING;
+        }
+    }
+
+    public int OutputLength
+    {
+        get { return outputLength; }
+    }
+
+    public byte[] CustomizationString
+    {
+        get { return Arrays.Clone(customizationString); }
+    }
+
+    public override Asn1Object ToAsn1Object()
+    {
+        Asn1EncodableVector v = new Asn1EncodableVector();
+        if (outputLength != DEF_LENGTH)
+        {
+            v.Add(new DerInteger(outputLength));
+        }
+
+        if (customizationString.Length != 0)
+        {
+            v.Add(new DerOctetString(CustomizationString));
+        }
+
+        return new DerSequence(v);
+    }
+}
+}
diff --git a/crypto/src/crypto/digests/CSHAKEDigest.cs b/crypto/src/crypto/digests/CSHAKEDigest.cs
index 5c42b4171..c070a47c2 100644
--- a/crypto/src/crypto/digests/CSHAKEDigest.cs
+++ b/crypto/src/crypto/digests/CSHAKEDigest.cs
@@ -1,15 +1,13 @@
-using Org.BouncyCastle.Utilities;
-using System;
-using System.Collections.Generic;
-using System.Linq;
-using System.Text;
+using System;
+
+using Org.BouncyCastle.Utilities;
 
 namespace Org.BouncyCastle.Crypto.Digests
 {
     /// <summary>
     /// Customizable SHAKE function.
     /// </summary>
-    public class CSHAKEDigest : ShakeDigest
+    public class CShakeDigest : ShakeDigest
     {
         private static readonly byte[] padding = new byte[100];
         private readonly byte[] diff;
@@ -20,7 +18,7 @@ namespace Org.BouncyCastle.Crypto.Digests
         /// <param name="bitLength">bit length of the underlying SHAKE function, 128 or 256.</param>
         /// <param name="N">the function name string, note this is reserved for use by NIST. Avoid using it if not required.</param>
         /// <param name="S">the customization string - available for local use.</param>
-        public CSHAKEDigest(int bitLength, byte[] N, byte[] S) : base(bitLength)
+        public CShakeDigest(int bitLength, byte[] N, byte[] S) : base(bitLength)
         {
             if ((N == null || N.Length == 0) && (S == null || S.Length == 0))
             {
@@ -28,12 +26,11 @@ namespace Org.BouncyCastle.Crypto.Digests
             }
             else
             {
-                diff = Arrays.ConcatenateAll(XofUtils.leftEncode(rate / 8), encodeString(N), encodeString(S));
+                diff = Arrays.ConcatenateAll(XofUtilities.LeftEncode(rate / 8), encodeString(N), encodeString(S));
                 DiffPadAndAbsorb();
             }
         }
 
-
         // bytepad in SP 800-185
         private void DiffPadAndAbsorb()
         {
@@ -61,13 +58,16 @@ namespace Org.BouncyCastle.Crypto.Digests
         {
             if (str == null || str.Length == 0)
             {
-                return XofUtils.leftEncode(0);
+                return XofUtilities.LeftEncode(0);
             }
 
-            return Arrays.Concatenate(XofUtils.leftEncode(str.Length * 8L), str);
+            return Arrays.Concatenate(XofUtilities.LeftEncode(str.Length * 8L), str);
         }
 
-        public override string AlgorithmName => "CSHAKE" + fixedOutputLength;
+        public override string AlgorithmName
+        {
+            get { return "CSHAKE" + fixedOutputLength; }
+        }
 
         public override int DoFinal(byte[] output, int outOff)
         {           
@@ -102,7 +102,7 @@ namespace Org.BouncyCastle.Crypto.Digests
             }
         }
 
-        public void Reset()
+        public override void Reset()
         {
             base.Reset();
 
diff --git a/crypto/src/crypto/digests/XofUtils.cs b/crypto/src/crypto/digests/XofUtils.cs
index e4c893e01..5c197e0e6 100644
--- a/crypto/src/crypto/digests/XofUtils.cs
+++ b/crypto/src/crypto/digests/XofUtils.cs
@@ -1,13 +1,10 @@
 using System;
-using System.Collections.Generic;
-using System.Linq;
-using System.Text;
 
 namespace Org.BouncyCastle.Crypto.Digests
 {
-    public class XofUtils
+    internal class XofUtilities
     {
-        public static byte[] leftEncode(long strLen)
+        internal static byte[] LeftEncode(long strLen)
         {
             byte n = 1;
 
@@ -29,7 +26,7 @@ namespace Org.BouncyCastle.Crypto.Digests
             return b;
         }
 
-        public static byte[] rightEncode(long strLen)
+        internal static byte[] RightEncode(long strLen)
         {
             byte n = 1;
 
diff --git a/crypto/src/crypto/macs/KMac.cs b/crypto/src/crypto/macs/KMac.cs
index 38697a9a9..889131d8c 100644
--- a/crypto/src/crypto/macs/KMac.cs
+++ b/crypto/src/crypto/macs/KMac.cs
@@ -1,19 +1,18 @@
-using Org.BouncyCastle.Crypto.Digests;
+using System;
+using System.Text;
+
+using Org.BouncyCastle.Crypto.Digests;
 using Org.BouncyCastle.Crypto.Parameters;
 using Org.BouncyCastle.Utilities;
-using System;
-using System.Collections.Generic;
-using System.Linq;
-using System.Text;
 
 namespace Org.BouncyCastle.Crypto.Macs
 {
-    public class KMac : IMac, IXof
+    public class KMac
+        : IMac, IXof
     {
-
         private static readonly byte[] padding = new byte[100];
 
-        private readonly CSHAKEDigest cshake;
+        private readonly CShakeDigest cshake;
         private readonly int bitLength;
         private readonly int outputLength;
 
@@ -21,23 +20,22 @@ namespace Org.BouncyCastle.Crypto.Macs
         private bool initialised;
         private bool firstOutput;
 
-
         public KMac(int bitLength, byte[] S)
         {
-            this.cshake = new CSHAKEDigest(bitLength, Encoding.ASCII.GetBytes("KMAC"),S);
+            this.cshake = new CShakeDigest(bitLength, Encoding.ASCII.GetBytes("KMAC"), S);
             this.bitLength = bitLength;
             this.outputLength = bitLength * 2 / 8;
         }
 
-
-        public string AlgorithmName => "KMAC" + cshake.AlgorithmName.Substring(6);
+        public string AlgorithmName
+        {
+            get { return "KMAC" + cshake.AlgorithmName.Substring(6); }
+        }
 
         public void BlockUpdate(byte[] input, int inOff, int len)
         {
             if (!initialised)
-            {
                 throw new InvalidOperationException("KMAC not initialized");
-            }
 
             cshake.BlockUpdate(input, inOff, len);
         }
@@ -47,11 +45,9 @@ namespace Org.BouncyCastle.Crypto.Macs
             if (firstOutput)
             {
                 if (!initialised)
-                {
                     throw new InvalidOperationException("KMAC not initialized");
-                }
 
-                byte[] encOut = XofUtils.rightEncode(GetMacSize() * 8);
+                byte[] encOut = XofUtilities.RightEncode(GetMacSize() * 8);
 
                 cshake.BlockUpdate(encOut, 0, encOut.Length);
             }
@@ -68,11 +64,9 @@ namespace Org.BouncyCastle.Crypto.Macs
             if (firstOutput)
             {
                 if (!initialised)
-                {
                     throw new InvalidOperationException("KMAC not initialized");
-                }
 
-                byte[] encOut = XofUtils.rightEncode(outLen * 8);
+                byte[] encOut = XofUtilities.RightEncode(outLen * 8);
 
                 cshake.BlockUpdate(encOut, 0, encOut.Length);
             }
@@ -89,11 +83,9 @@ namespace Org.BouncyCastle.Crypto.Macs
             if (firstOutput)
             {
                 if (!initialised)
-                {
                     throw new InvalidOperationException("KMAC not initialized");
-                }
 
-                byte[] encOut = XofUtils.rightEncode(0);
+                byte[] encOut = XofUtilities.RightEncode(0);
 
                 cshake.BlockUpdate(encOut, 0, encOut.Length);
 
@@ -147,7 +139,7 @@ namespace Org.BouncyCastle.Crypto.Macs
 
         private void bytePad(byte[] X, int w)
         {
-            byte[] bytes = XofUtils.leftEncode(w);
+            byte[] bytes = XofUtilities.LeftEncode(w);
             BlockUpdate(bytes, 0, bytes.Length);
             byte[] encX = encode(X);
             BlockUpdate(encX, 0, encX.Length);
@@ -168,15 +160,13 @@ namespace Org.BouncyCastle.Crypto.Macs
 
         private static byte[] encode(byte[] X)
         {
-            return Arrays.Concatenate(XofUtils.leftEncode(X.Length * 8), X);
+            return Arrays.Concatenate(XofUtilities.LeftEncode(X.Length * 8), X);
         }
 
         public void Update(byte input)
         {
             if (!initialised)
-            {
                 throw new InvalidOperationException("KMAC not initialized");
-            }
 
             cshake.Update(input);
         }
diff --git a/crypto/src/math/raw/Mod.cs b/crypto/src/math/raw/Mod.cs
index 41977f9d8..a3435ea80 100644
--- a/crypto/src/math/raw/Mod.cs
+++ b/crypto/src/math/raw/Mod.cs
@@ -82,15 +82,18 @@ namespace Org.BouncyCastle.Math.Raw
             Debug.Assert(-1 == signF | 0 == signF);
 
             CNegate30(len30, signF, F);
-            CNegate30(len30, signF, D);
 
-            Decode30(bits, D, 0, z, 0);
-
-            int signD = D[len30 - 1] >> 31;
+            int signD = CNegate30(len30, signF, D);
             Debug.Assert(-1 == signD | 0 == signD);
 
-            signD += (int)Nat.CAdd(len32, signD, z, m, z);
-            Debug.Assert(0 == signD & 0 != Nat.LessThan(len32, z, m));
+            // TODO 'D' should already be in [P, -P), but absent a proof we support [-2P, 2P)  
+            signD = CSub30(len30, ~signD, D, M);
+            signD = CAdd30(len30,  signD, D, M);
+            signD = CAdd30(len30,  signD, D, M);
+            Debug.Assert(0 == signD);
+
+            Decode30(bits, D, 0, z, 0);
+            Debug.Assert(0 != Nat.LessThan(len32, z, m));
 
             return (uint)(EqualTo(len30, F, 1) & EqualToZero(len30, G));
         }
@@ -162,16 +165,26 @@ namespace Org.BouncyCastle.Math.Raw
             if (!IsOne(lenFG, F))
                 return false;
 
-            Decode30(bits, D, 0, z, 0);
-
             int signD = D[lenDE - 1] >> 31;
             Debug.Assert(-1 == signD | 0 == signD);
 
+            // TODO 'D' should already be in [P, -P), but absent a proof we support [-2P, 2P)  
+            if (signD < 0)
+            {
+                signD = Add30(len30, D, M);
+            }
+            else
+            {
+                signD = Sub30(len30, D, M);
+            }
             if (signD < 0)
             {
-                signD += (int)Nat.AddTo(len32, m, z);
+                signD = Add30(len30, D, M);
             }
-            Debug.Assert(0 == signD && !Nat.Gte(len32, z, m));
+            Debug.Assert(0 == signD);
+
+            Decode30(bits, D, 0, z, 0);
+            Debug.Assert(!Nat.Gte(len32, z, m));
 
             return true;
         }
@@ -200,22 +213,71 @@ namespace Org.BouncyCastle.Math.Raw
             return s;
         }
 
-        private static void CNegate30(int len, int cond, int[] D)
+        private static int Add30(int len30, int[] D, int[] M)
         {
-            Debug.Assert(len > 0);
-            Debug.Assert(D.Length >= len);
+            Debug.Assert(len30 > 0);
+            Debug.Assert(D.Length >= len30);
+            Debug.Assert(M.Length >= len30);
+
+            int c = 0, last = len30 - 1;
+            for (int i = 0; i < last; ++i)
+            {
+                c += D[i] + M[i];
+                D[i] = c & M30; c >>= 30;
+            }
+            c += D[last] + M[last];
+            D[last] = c; c >>= 30;
+            return c;
+        }
 
-            int last = len - 1;
-            long cd = 0L;
+        private static int CAdd30(int len30, int cond, int[] D, int[] M)
+        {
+            Debug.Assert(len30 > 0);
+            Debug.Assert(D.Length >= len30);
+            Debug.Assert(M.Length >= len30);
 
+            int c = 0, last = len30 - 1;
             for (int i = 0; i < last; ++i)
             {
-                cd += (D[i] ^ cond) - cond;
-                D[i] = (int)cd & M30; cd >>= 30;
+                c += D[i] + (M[i] & cond);
+                D[i] = c & M30; c >>= 30;
             }
+            c += D[last] + (M[last] & cond);
+            D[last] = c; c >>= 30;
+            return c;
+        }
 
-            cd += (D[last] ^ cond) - cond;
-            D[last] = (int)cd;
+        private static int CNegate30(int len30, int cond, int[] D)
+        {
+            Debug.Assert(len30 > 0);
+            Debug.Assert(D.Length >= len30);
+
+            int c = 0, last = len30 - 1;
+            for (int i = 0; i < last; ++i)
+            {
+                c += (D[i] ^ cond) - cond;
+                D[i] = c & M30; c >>= 30;
+            }
+            c += (D[last] ^ cond) - cond;
+            D[last] = c; c >>= 30;
+            return c;
+        }
+
+        private static int CSub30(int len30, int cond, int[] D, int[] M)
+        {
+            Debug.Assert(len30 > 0);
+            Debug.Assert(D.Length >= len30);
+            Debug.Assert(M.Length >= len30);
+
+            int c = 0, last = len30 - 1;
+            for (int i = 0; i < last; ++i)
+            {
+                c += D[i] - (M[i] & cond);
+                D[i] = c & M30; c >>= 30;
+            }
+            c += D[last] - (M[last] & cond);
+            D[last] = c; c >>= 30;
+            return c;
         }
 
         private static void Decode30(int bits, int[] x, int xOff, uint[] z, int zOff)
@@ -424,30 +486,45 @@ namespace Org.BouncyCastle.Math.Raw
             return true;
         }
 
-        private static void Negate30(int len, int[] D)
+        private static int Negate30(int len30, int[] D)
         {
-            Debug.Assert(len > 0);
-            Debug.Assert(D.Length >= len);
-
-            int last = len - 1;
-            long cd = 0L;
+            Debug.Assert(len30 > 0);
+            Debug.Assert(D.Length >= len30);
 
+            int c = 0, last = len30 - 1;
             for (int i = 0; i < last; ++i)
             {
-                cd -= D[i];
-                D[i] = (int)cd & M30; cd >>= 30;
+                c -= D[i];
+                D[i] = c & M30; c >>= 30;
             }
+            c -= D[last];
+            D[last] = c; c >>= 30;
+            return c;
+        }
 
-            cd -= D[last];
-            D[last] = (int)cd;
+        private static int Sub30(int len30, int[] D, int[] M)
+        {
+            Debug.Assert(len30 > 0);
+            Debug.Assert(D.Length >= len30);
+            Debug.Assert(M.Length >= len30);
+
+            int c = 0, last = len30 - 1;
+            for (int i = 0; i < last; ++i)
+            {
+                c += D[i] - M[i];
+                D[i] = c & M30; c >>= 30;
+            }
+            c += D[last] - M[last];
+            D[last] = c; c >>= 30;
+            return c;
         }
 
-        private static void UpdateDE30(int len, int[] D, int[] E, int[] t, int m0Inv30x4, int[] M)
+        private static void UpdateDE30(int len30, int[] D, int[] E, int[] t, int m0Inv30x4, int[] M)
         {
-            Debug.Assert(len > 0);
-            Debug.Assert(D.Length >= len);
-            Debug.Assert(E.Length >= len);
-            Debug.Assert(M.Length >= len);
+            Debug.Assert(len30 > 0);
+            Debug.Assert(D.Length >= len30);
+            Debug.Assert(E.Length >= len30);
+            Debug.Assert(M.Length >= len30);
             Debug.Assert(m0Inv30x4 * M[0] == -1 << 2);
 
             int u = t[0], v = t[1], q = t[2], r = t[3];
@@ -472,7 +549,7 @@ namespace Org.BouncyCastle.Math.Raw
             cd >>= 30;
             ce >>= 30;
 
-            for (i = 1; i < len; ++i)
+            for (i = 1; i < len30; ++i)
             {
                 di = D[i];
                 ei = E[i];
@@ -487,15 +564,15 @@ namespace Org.BouncyCastle.Math.Raw
                 E[i - 1] = (int)ce & M30; ce >>= 30;
             }
 
-            D[len - 1] = (int)cd;
-            E[len - 1] = (int)ce;
+            D[len30 - 1] = (int)cd;
+            E[len30 - 1] = (int)ce;
         }
 
-        private static void UpdateFG30(int len, int[] F, int[] G, int[] t)
+        private static void UpdateFG30(int len30, int[] F, int[] G, int[] t)
         {
-            Debug.Assert(len > 0);
-            Debug.Assert(F.Length >= len);
-            Debug.Assert(G.Length >= len);
+            Debug.Assert(len30 > 0);
+            Debug.Assert(F.Length >= len30);
+            Debug.Assert(G.Length >= len30);
 
             int u = t[0], v = t[1], q = t[2], r = t[3];
             int fi, gi, i;
@@ -513,7 +590,7 @@ namespace Org.BouncyCastle.Math.Raw
             cf >>= 30;
             cg >>= 30;
 
-            for (i = 1; i < len; ++i)
+            for (i = 1; i < len30; ++i)
             {
                 fi = F[i];
                 gi = G[i];
@@ -525,8 +602,8 @@ namespace Org.BouncyCastle.Math.Raw
                 G[i - 1] = (int)cg & M30; cg >>= 30;
             }
 
-            F[len - 1] = (int)cf;
-            G[len - 1] = (int)cg;
+            F[len30 - 1] = (int)cf;
+            G[len30 - 1] = (int)cg;
         }
     }
 }
diff --git a/crypto/test/UnitTests.csproj b/crypto/test/UnitTests.csproj
index 8023884bb..eca33fae5 100644
--- a/crypto/test/UnitTests.csproj
+++ b/crypto/test/UnitTests.csproj
@@ -26,6 +26,7 @@
     <DebugType>full</DebugType>
     <Optimize>true</Optimize>
     <OutputPath>bin\Release</OutputPath>
+    <DefineConstants>SEPARATE_UNIT_TESTS</DefineConstants>
     <ErrorReport>prompt</ErrorReport>
     <WarningLevel>4</WarningLevel>
     <ConsolePause>false</ConsolePause>
@@ -84,6 +85,7 @@
     <Compile Include="src\asn1\test\Iso4217CurrencyCodeUnitTest.cs" />
     <Compile Include="src\asn1\test\IssuingDistributionPointTest.cs" />
     <Compile Include="src\asn1\test\KeyUsageTest.cs" />
+    <Compile Include="src\asn1\test\KMacParamsTest.cs" />
     <Compile Include="src\asn1\test\LDSSecurityObjectUnitTest.cs" />
     <Compile Include="src\asn1\test\LinkedCertificateTest.cs" />
     <Compile Include="src\asn1\test\MiscTest.cs" />
@@ -171,6 +173,7 @@
     <Compile Include="src\crypto\test\ChaCha20Poly1305Test.cs" />
     <Compile Include="src\crypto\test\ChaChaTest.cs" />
     <Compile Include="src\crypto\test\CMacTest.cs" />
+    <Compile Include="src\crypto\test\CSHAKETest.cs" />
     <Compile Include="src\crypto\test\CTSTest.cs" />
     <Compile Include="src\crypto\test\CamelliaLightTest.cs" />
     <Compile Include="src\crypto\test\CamelliaTest.cs" />
@@ -216,6 +219,7 @@
     <Compile Include="src\crypto\test\KDF1GeneratorTest.cs" />
     <Compile Include="src\crypto\test\KDF2GeneratorTest.cs" />
     <Compile Include="src\crypto\test\KeccakDigestTest.cs" />
+    <Compile Include="src\crypto\test\KMACTest.cs" />
     <Compile Include="src\crypto\test\MD2DigestTest.cs" />
     <Compile Include="src\crypto\test\MD4DigestTest.cs" />
     <Compile Include="src\crypto\test\MD5DigestTest.cs" />
@@ -224,6 +228,7 @@
     <Compile Include="src\crypto\test\MacTest.cs" />
     <Compile Include="src\crypto\test\ModeTest.cs" />
     <Compile Include="src\crypto\test\NaccacheSternTest.cs" />
+    <Compile Include="src\crypto\test\NistEccTest.cs" />
     <Compile Include="src\crypto\test\NoekeonTest.cs" />
     <Compile Include="src\crypto\test\NonMemoableDigestTest.cs" />
     <Compile Include="src\crypto\test\NullTest.cs" />
@@ -485,6 +490,7 @@
     <EmbeddedResource Include="data\suvaRoot1.crt" />
     <EmbeddedResource Include="data\ThawteSGCCA.cer" />
     <EmbeddedResource Include="data\ThawteSGCCA.crl" />
+    <EmbeddedResource Include="data\crypto\nist_ecc.txt" />
     <EmbeddedResource Include="data\crypto\SHA3TestVectors.txt" />
     <EmbeddedResource Include="data\crypto\SHAKETestVectors.txt" />
     <EmbeddedResource Include="data\crypto\cavp\original_KDFCTR_gen.rsp" />
diff --git a/crypto/test/data/crypto/nist_ecc.txt b/crypto/test/data/crypto/nist_ecc.txt
new file mode 100644
index 000000000..da3c17bc3
--- /dev/null
+++ b/crypto/test/data/crypto/nist_ecc.txt
@@ -0,0 +1,3180 @@
+
+              http://point-at-infinity.org/ecc/nisttv
+
+Test vectors for the NIST elliptic curves P192, P224, P256, P384, P521,
+B163, B233, B283, B409, B571, K163, K233, K283, K409 and K571. For more
+information about the curves see
+      http://csrc.nist.gov/encryption/dss/ecdsa/NISTReCur.pdf
+
+For a given curve and a given base point P the point Q = kP was calcaluted for
+several values k. The x and y coordinates of Q are given in the table below.
+
+Keywords: elliptic curve cryptography ECC test vector
+          prime binary field point multiplication ANSI X9 FIPS182
+
+
+ Curve: P192
+-------------
+k = 1
+x = 188DA80EB03090F67CBF20EB43A18800F4FF0AFD82FF1012
+y = 07192B95FFC8DA78631011ED6B24CDD573F977A11E794811
+
+k = 2
+x = DAFEBF5828783F2AD35534631588A3F629A70FB16982A888
+y = DD6BDA0D993DA0FA46B27BBC141B868F59331AFA5C7E93AB
+
+k = 3
+x = 76E32A2557599E6EDCD283201FB2B9AADFD0D359CBB263DA
+y = 782C37E372BA4520AA62E0FED121D49EF3B543660CFD05FD
+
+k = 4
+x = 35433907297CC378B0015703374729D7A4FE46647084E4BA
+y = A2649984F2135C301EA3ACB0776CD4F125389B311DB3BE32
+
+k = 5
+x = 10BB8E9840049B183E078D9C300E1605590118EBDD7FF590
+y = 31361008476F917BADC9F836E62762BE312B72543CCEAEA1
+
+k = 6
+x = A37ABC6C431F9AC398BF5BD1AA6678320ACE8ECB93D23F2A
+y = 851B3CAEC99908DBFED7040A1BBDA90E081F7C5710BC68F0
+
+k = 7
+x = 8DA75A1F75DDCD7660F923243060EDCE5DE37F007011FCFD
+y = 57CB5FCF6860B35418240DB8FDB3C01DD4B702F96409FFB5
+
+k = 8
+x = 2FA1F92D1ECCE92014771993CC14899D4B5977883397EDDE
+y = A338AFDEF78B7214273B8B5978EF733FF2DD8A8E9738F6C0
+
+k = 9
+x = 818A4D308B1CABB74E9E8F2BA8D27C9E1D9D375AB980388F
+y = 01D1AA5E208D87CD7C292F7CBB457CDF30EA542176C8E739
+
+k = 10
+x = AA7C4F9EF99E3E96D1AEDE2BD9238842859BB150D1FE9D85
+y = 3212A36547EDC62901EE3658B2F4859460EB5EB2491397B0
+
+k = 11
+x = 1C995995EB76324F1844F7164D22B652280940370628A2AA
+y = EF1765CE37E9EB73029F556400FA77BDB34CB8611AAA9C04
+
+k = 12
+x = 1061343F3D456D0ECA013877F8C9E7B28FCCDCDA67EEB8AB
+y = 5A064CAA2EA6B03798FEF8E3E7A48648681EAC020B27293F
+
+k = 13
+x = 112AF141D33EFB9F2F68821E051E4EA004144A363C4A090A
+y = 6E0CBE3BFC5293F72A2C1726E081E09E7F10A094432B1C1E
+
+k = 14
+x = 13B9310646EBC93B591746B3F7C64E05DEE08843DE1081C1
+y = 1EDCEA63B44142DD15F3B427EC41A1EC4FBACA95E186E6B4
+
+k = 15
+x = 8C9595E63B56B633BA3546B2B5414DE736DE4A9E7578B1E7
+y = 266B762A934F00C17CF387993AA566B6AD7537CDD98FC7B1
+
+k = 16
+x = B7310B4548FBFDBD29005092A5355BFCD99473733048AFDF
+y = FF9EAE9EDCD27C1E42D8585C4546D9491845C56629CF2290
+
+k = 17
+x = 44275CD2E1F46DC3F9F57636C2B4213B8BB445930510FF8A
+y = EFAD8348FDE30C87DE438612A818E98D9B76A67AD25DDFD0
+
+k = 18
+x = C1B4DB0227210613A6CA15C428024E40B6513365D72591A3
+y = 1E26B286BCA1D08F4FE8F801267DF9FD7782EC3EC3F47F53
+
+k = 19
+x = C0626BCF247DE5D307FD839238D72688774FC97A1CF8AD1B
+y = 9CDC99D753973DC197E12778E829C804EC1A6B4E71FAA20A
+
+k = 20
+x = BB6F082321D34DBD786A1566915C6DD5EDF879AB0F5ADD67
+y = 91E4DD8A77C4531C8B76DEF2E5339B5EB95D5D9479DF4C8D
+
+k = 112233445566778899
+x = 81E6E0F14C9302C8A8DCA8A038B73165E9687D0490CD9F85
+y = F58067119EED8579388C4281DC645A27DB7764750E812477
+
+k = 112233445566778899112233445566778899
+x = B357B10AC985C891B29FB37DA56661CCCF50CEC21128D4F6
+y = BA20DC2FA1CC228D3C2D8B538C2177C2921884C6B7F0D96F
+
+k = 1618292094200346491064154703205151664562462359653015613567
+x = 74FEC215F253C6BD845831E059B318C87F727B136A700B91
+y = 4B702B15B126A703E7A7CEC3E0EC81F8DFCA73A59F5D88B9
+
+k = 1484605055214526729816930749766694384906446681761906688
+x = 0C40230F9C4B8C0FD91F2C604FCBA9B87C2DFA153F010B4F
+y = 5FC4F5771F467971B2C82752413833A68CE00F4A9A692B02
+
+k = 1569275434166462877105627261392580354519833538813866540831
+x = 28783BBF6208E1FF0F965FD8DC0C26FF1D8E02B433EDF2F7
+y = A5852BBC44FD8164C1ABA9A3EC7A88E461D5D77ABD743E87
+
+k = 3138550867681922400546388175470823984762234518836963313664
+x = 45DAF0A306121BDB3B82E734CB44FDF65C9930F0E4FD2068
+y = F039FACE58EB7DE34E3374ADB28DF81F019C4548BAA75B64
+
+k = 3138550119404545973088374812479323842475901485681169401600
+x = 1D5EC85004EA2ABA905CEF98A818A8C3516D7CB69A6FD575
+y = 4008F35F5820F66C902195644162E5AA231DD69C9E1ECC97
+
+k = 24519928471166604179655321383971467003990211439919824896
+x = F063727C2EA4D358AB02F6B0BEEB14DBEAF2E8A1DB3208EE
+y = 427418C015553361769B6A0C42923C4CA103740B6DCD9703
+
+k = 46756768218837031708063422466358611246556475572231
+x = DC81D33CA6604B1EFE49386CD492979EF807B8BAEB8566E3
+y = D454247FF478514556333B3901C9F1CCC18DBC9AB938CFA0
+
+k = 3138502977207688322901699644928655553044791844086883549215
+x = D932741DF6AA0E1EED24279150436C752AA5ADCFD0698D72
+y = 9759B6D2EF21D885E94CDFF219F17004D8763401DAB021B5
+
+k = 47890485652059026491391979477371914515865621847605503
+x = 571477E9D9F2A628780742257F7250C4224C483B30F3A97E
+y = 1AD35EE3177D22DD5F01B5A46FFDEC547B6A41786EBB8C8F
+
+k = 3138549376958826959341570842566593375326996431013993775615
+x = 4C69939642792776C826DB8B4EBF4BD8C03FC9DFA2AEC822
+y = 29BF35BE52A6036E07EBA5741CFEB4C143310216EF1B9A2E
+
+k = 6277101735386680763835789423176059013767194773182842284061
+x = BB6F082321D34DBD786A1566915C6DD5EDF879AB0F5ADD67
+y = 6E1B2275883BACE37489210D1ACC64A046A2A26B8620B372
+
+k = 6277101735386680763835789423176059013767194773182842284062
+x = C0626BCF247DE5D307FD839238D72688774FC97A1CF8AD1B
+y = 63236628AC68C23E681ED88717D637FA13E594B18E055DF5
+
+k = 6277101735386680763835789423176059013767194773182842284063
+x = C1B4DB0227210613A6CA15C428024E40B6513365D72591A3
+y = E1D94D79435E2F70B01707FED9820601887D13C13C0B80AC
+
+k = 6277101735386680763835789423176059013767194773182842284064
+x = 44275CD2E1F46DC3F9F57636C2B4213B8BB445930510FF8A
+y = 10527CB7021CF37821BC79ED57E71671648959852DA2202F
+
+k = 6277101735386680763835789423176059013767194773182842284065
+x = B7310B4548FBFDBD29005092A5355BFCD99473733048AFDF
+y = 00615161232D83E1BD27A7A3BAB926B5E7BA3A99D630DD6F
+
+k = 6277101735386680763835789423176059013767194773182842284066
+x = 8C9595E63B56B633BA3546B2B5414DE736DE4A9E7578B1E7
+y = D99489D56CB0FF3E830C7866C55A9948528AC8322670384E
+
+k = 6277101735386680763835789423176059013767194773182842284067
+x = 13B9310646EBC93B591746B3F7C64E05DEE08843DE1081C1
+y = E123159C4BBEBD22EA0C4BD813BE5E12B045356A1E79194B
+
+k = 6277101735386680763835789423176059013767194773182842284068
+x = 112AF141D33EFB9F2F68821E051E4EA004144A363C4A090A
+y = 91F341C403AD6C08D5D3E8D91F7E1F6080EF5F6BBCD4E3E1
+
+k = 6277101735386680763835789423176059013767194773182842284069
+x = 1061343F3D456D0ECA013877F8C9E7B28FCCDCDA67EEB8AB
+y = A5F9B355D1594FC86701071C185B79B697E153FDF4D8D6C0
+
+k = 6277101735386680763835789423176059013767194773182842284070
+x = 1C995995EB76324F1844F7164D22B652280940370628A2AA
+y = 10E89A31C816148CFD60AA9BFF0588414CB3479EE55563FB
+
+k = 6277101735386680763835789423176059013767194773182842284071
+x = AA7C4F9EF99E3E96D1AEDE2BD9238842859BB150D1FE9D85
+y = CDED5C9AB81239D6FE11C9A74D0B7A6A9F14A14DB6EC684F
+
+k = 6277101735386680763835789423176059013767194773182842284072
+x = 818A4D308B1CABB74E9E8F2BA8D27C9E1D9D375AB980388F
+y = FE2E55A1DF72783283D6D08344BA831FCF15ABDE893718C6
+
+k = 6277101735386680763835789423176059013767194773182842284073
+x = 2FA1F92D1ECCE92014771993CC14899D4B5977883397EDDE
+y = 5CC7502108748DEBD8C474A687108CBF0D22757168C7093F
+
+k = 6277101735386680763835789423176059013767194773182842284074
+x = 8DA75A1F75DDCD7660F923243060EDCE5DE37F007011FCFD
+y = A834A030979F4CABE7DBF247024C3FE12B48FD069BF6004A
+
+k = 6277101735386680763835789423176059013767194773182842284075
+x = A37ABC6C431F9AC398BF5BD1AA6678320ACE8ECB93D23F2A
+y = 7AE4C3513666F7240128FBF5E44256F0F7E083A8EF43970F
+
+k = 6277101735386680763835789423176059013767194773182842284076
+x = 10BB8E9840049B183E078D9C300E1605590118EBDD7FF590
+y = CEC9EFF7B8906E84523607C919D89D40CED48DABC331515E
+
+k = 6277101735386680763835789423176059013767194773182842284077
+x = 35433907297CC378B0015703374729D7A4FE46647084E4BA
+y = 5D9B667B0DECA3CFE15C534F88932B0DDAC764CEE24C41CD
+
+k = 6277101735386680763835789423176059013767194773182842284078
+x = 76E32A2557599E6EDCD283201FB2B9AADFD0D359CBB263DA
+y = 87D3C81C8D45BADF559D1F012EDE2B600C4ABC99F302FA02
+
+k = 6277101735386680763835789423176059013767194773182842284079
+x = DAFEBF5828783F2AD35534631588A3F629A70FB16982A888
+y = 229425F266C25F05B94D8443EBE4796FA6CCE505A3816C54
+
+k = 6277101735386680763835789423176059013767194773182842284080
+x = 188DA80EB03090F67CBF20EB43A18800F4FF0AFD82FF1012
+y = F8E6D46A003725879CEFEE1294DB32298C06885EE186B7EE
+
+
+ Curve: P224
+-------------
+k = 1
+x = B70E0CBD6BB4BF7F321390B94A03C1D356C21122343280D6115C1D21
+y = BD376388B5F723FB4C22DFE6CD4375A05A07476444D5819985007E34
+
+k = 2
+x = 706A46DC76DCB76798E60E6D89474788D16DC18032D268FD1A704FA6
+y = 1C2B76A7BC25E7702A704FA986892849FCA629487ACF3709D2E4E8BB
+
+k = 3
+x = DF1B1D66A551D0D31EFF822558B9D2CC75C2180279FE0D08FD896D04
+y = A3F7F03CADD0BE444C0AA56830130DDF77D317344E1AF3591981A925
+
+k = 4
+x = AE99FEEBB5D26945B54892092A8AEE02912930FA41CD114E40447301
+y = 0482580A0EC5BC47E88BC8C378632CD196CB3FA058A7114EB03054C9
+
+k = 5
+x = 31C49AE75BCE7807CDFF22055D94EE9021FEDBB5AB51C57526F011AA
+y = 27E8BFF1745635EC5BA0C9F1C2EDE15414C6507D29FFE37E790A079B
+
+k = 6
+x = 1F2483F82572251FCA975FEA40DB821DF8AD82A3C002EE6C57112408
+y = 89FAF0CCB750D99B553C574FAD7ECFB0438586EB3952AF5B4B153C7E
+
+k = 7
+x = DB2F6BE630E246A5CF7D99B85194B123D487E2D466B94B24A03C3E28
+y = 0F3A30085497F2F611EE2517B163EF8C53B715D18BB4E4808D02B963
+
+k = 8
+x = 858E6F9CC6C12C31F5DF124AA77767B05C8BC021BD683D2B55571550
+y = 046DCD3EA5C43898C5C5FC4FDAC7DB39C2F02EBEE4E3541D1E78047A
+
+k = 9
+x = 2FDCCCFEE720A77EF6CB3BFBB447F9383117E3DAA4A07E36ED15F78D
+y = 371732E4F41BF4F7883035E6A79FCEDC0E196EB07B48171697517463
+
+k = 10
+x = AEA9E17A306517EB89152AA7096D2C381EC813C51AA880E7BEE2C0FD
+y = 39BB30EAB337E0A521B6CBA1ABE4B2B3A3E524C14A3FE3EB116B655F
+
+k = 11
+x = EF53B6294ACA431F0F3C22DC82EB9050324F1D88D377E716448E507C
+y = 20B510004092E96636CFB7E32EFDED8265C266DFB754FA6D6491A6DA
+
+k = 12
+x = 6E31EE1DC137F81B056752E4DEAB1443A481033E9B4C93A3044F4F7A
+y = 207DDDF0385BFDEAB6E9ACDA8DA06B3BBEF224A93AB1E9E036109D13
+
+k = 13
+x = 34E8E17A430E43289793C383FAC9774247B40E9EBD3366981FCFAECA
+y = 252819F71C7FB7FBCB159BE337D37D3336D7FEB963724FDFB0ECB767
+
+k = 14
+x = A53640C83DC208603DED83E4ECF758F24C357D7CF48088B2CE01E9FA
+y = D5814CD724199C4A5B974A43685FBF5B8BAC69459C9469BC8F23CCAF
+
+k = 15
+x = BAA4D8635511A7D288AEBEEDD12CE529FF102C91F97F867E21916BF9
+y = 979A5F4759F80F4FB4EC2E34F5566D595680A11735E7B61046127989
+
+k = 16
+x = 0B6EC4FE1777382404EF679997BA8D1CC5CD8E85349259F590C4C66D
+y = 3399D464345906B11B00E363EF429221F2EC720D2F665D7DEAD5B482
+
+k = 17
+x = B8357C3A6CEEF288310E17B8BFEFF9200846CA8C1942497C484403BC
+y = FF149EFA6606A6BD20EF7D1B06BD92F6904639DCE5174DB6CC554A26
+
+k = 18
+x = C9FF61B040874C0568479216824A15EAB1A838A797D189746226E4CC
+y = EA98D60E5FFC9B8FCF999FAB1DF7E7EF7084F20DDB61BB045A6CE002
+
+k = 19
+x = A1E81C04F30CE201C7C9ACE785ED44CC33B455A022F2ACDBC6CAE83C
+y = DCF1F6C3DB09C70ACC25391D492FE25B4A180BABD6CEA356C04719CD
+
+k = 20
+x = FCC7F2B45DF1CD5A3C0C0731CA47A8AF75CFB0347E8354EEFE782455
+y = 0D5D7110274CBA7CDEE90E1A8B0D394C376A5573DB6BE0BF2747F530
+
+k = 112233445566778899
+x = 61F077C6F62ED802DAD7C2F38F5C67F2CC453601E61BD076BB46179E
+y = 2272F9E9F5933E70388EE652513443B5E289DD135DCC0D0299B225E4
+
+k = 112233445566778899112233445566778899
+x = 029895F0AF496BFC62B6EF8D8A65C88C613949B03668AAB4F0429E35
+y = 3EA6E53F9A841F2019EC24BDE1A75677AA9B5902E61081C01064DE93
+
+k = 6950511619965839450988900688150712778015737983940691968051900319680
+x = AB689930BCAE4A4AA5F5CB085E823E8AE30FD365EB1DA4ABA9CF0379
+y = 3345A121BBD233548AF0D210654EB40BAB788A03666419BE6FBD34E7
+
+k = 13479972933410060327035789020509431695094902435494295338570602119423
+x = BDB6A8817C1F89DA1C2F3DD8E97FEB4494F2ED302A4CE2BC7F5F4025
+y = 4C7020D57C00411889462D77A5438BB4E97D177700BF7243A07F1680
+
+k = 13479971751745682581351455311314208093898607229429740618390390702079
+x = D58B61AA41C32DD5EBA462647DBA75C5D67C83606C0AF2BD928446A9
+y = D24BA6A837BE0460DD107AE77725696D211446C5609B4595976B16BD
+
+k = 13479972931865328106486971546324465392952975980343228160962702868479
+x = DC9FA77978A005510980E929A1485F63716DF695D7A0C18BB518DF03
+y = EDE2B016F2DDFFC2A8C015B134928275CE09E5661B7AB14CE0D1D403
+
+k = 11795773708834916026404142434151065506931607341523388140225443265536
+x = 499D8B2829CFB879C901F7D85D357045EDAB55028824D0F05BA279BA
+y = BF929537B06E4015919639D94F57838FA33FC3D952598DCDBB44D638
+
+k = 784254593043826236572847595991346435467177662189391577090
+x = 8246C999137186632C5F9EDDF3B1B0E1764C5E8BD0E0D8A554B9CB77
+y = E80ED8660BC1CB17AC7D845BE40A7A022D3306F116AE9F81FEA65947
+
+k = 13479767645505654746623887797783387853576174193480695826442858012671
+x = 6670C20AFCCEAEA672C97F75E2E9DD5C8460E54BB38538EBB4BD30EB
+y = F280D8008D07A4CAF54271F993527D46FF3FF46FD1190A3F1FAA4F74
+
+k = 205688069665150753842126177372015544874550518966168735589597183
+x = 000ECA934247425CFD949B795CB5CE1EFF401550386E28D1A4C5A8EB
+y = D4C01040DBA19628931BC8855370317C722CBD9CA6156985F1C2E9CE
+
+k = 13479966930919337728895168462090683249159702977113823384618282123295
+x = EF353BF5C73CD551B96D596FBC9A67F16D61DD9FE56AF19DE1FBA9CD
+y = 21771B9CDCE3E8430C09B3838BE70B48C21E15BC09EE1F2D7945B91F
+
+k = 50210731791415612487756441341851895584393717453129007497216
+x = 4036052A3091EB481046AD3289C95D3AC905CA0023DE2C03ECD451CF
+y = D768165A38A2B96F812586A9D59D4136035D9C853A5BF2E1C86A4993
+
+k = 26959946667150639794667015087019625940457807714424391721682722368041
+x = FCC7F2B45DF1CD5A3C0C0731CA47A8AF75CFB0347E8354EEFE782455
+y = F2A28EEFD8B345832116F1E574F2C6B2C895AA8C24941F40D8B80AD1
+
+k = 26959946667150639794667015087019625940457807714424391721682722368042
+x = A1E81C04F30CE201C7C9ACE785ED44CC33B455A022F2ACDBC6CAE83C
+y = 230E093C24F638F533DAC6E2B6D01DA3B5E7F45429315CA93FB8E634
+
+k = 26959946667150639794667015087019625940457807714424391721682722368043
+x = C9FF61B040874C0568479216824A15EAB1A838A797D189746226E4CC
+y = 156729F1A003647030666054E208180F8F7B0DF2249E44FBA5931FFF
+
+k = 26959946667150639794667015087019625940457807714424391721682722368044
+x = B8357C3A6CEEF288310E17B8BFEFF9200846CA8C1942497C484403BC
+y = 00EB610599F95942DF1082E4F9426D086FB9C6231AE8B24933AAB5DB
+
+k = 26959946667150639794667015087019625940457807714424391721682722368045
+x = 0B6EC4FE1777382404EF679997BA8D1CC5CD8E85349259F590C4C66D
+y = CC662B9BCBA6F94EE4FF1C9C10BD6DDD0D138DF2D099A282152A4B7F
+
+k = 26959946667150639794667015087019625940457807714424391721682722368046
+x = BAA4D8635511A7D288AEBEEDD12CE529FF102C91F97F867E21916BF9
+y = 6865A0B8A607F0B04B13D1CB0AA992A5A97F5EE8CA1849EFB9ED8678
+
+k = 26959946667150639794667015087019625940457807714424391721682722368047
+x = A53640C83DC208603DED83E4ECF758F24C357D7CF48088B2CE01E9FA
+y = 2A7EB328DBE663B5A468B5BC97A040A3745396BA636B964370DC3352
+
+k = 26959946667150639794667015087019625940457807714424391721682722368048
+x = 34E8E17A430E43289793C383FAC9774247B40E9EBD3366981FCFAECA
+y = DAD7E608E380480434EA641CC82C82CBC92801469C8DB0204F13489A
+
+k = 26959946667150639794667015087019625940457807714424391721682722368049
+x = 6E31EE1DC137F81B056752E4DEAB1443A481033E9B4C93A3044F4F7A
+y = DF82220FC7A4021549165325725F94C3410DDB56C54E161FC9EF62EE
+
+k = 26959946667150639794667015087019625940457807714424391721682722368050
+x = EF53B6294ACA431F0F3C22DC82EB9050324F1D88D377E716448E507C
+y = DF4AEFFFBF6D1699C930481CD102127C9A3D992048AB05929B6E5927
+
+k = 26959946667150639794667015087019625940457807714424391721682722368051
+x = AEA9E17A306517EB89152AA7096D2C381EC813C51AA880E7BEE2C0FD
+y = C644CF154CC81F5ADE49345E541B4D4B5C1ADB3EB5C01C14EE949AA2
+
+k = 26959946667150639794667015087019625940457807714424391721682722368052
+x = 2FDCCCFEE720A77EF6CB3BFBB447F9383117E3DAA4A07E36ED15F78D
+y = C8E8CD1B0BE40B0877CFCA1958603122F1E6914F84B7E8E968AE8B9E
+
+k = 26959946667150639794667015087019625940457807714424391721682722368053
+x = 858E6F9CC6C12C31F5DF124AA77767B05C8BC021BD683D2B55571550
+y = FB9232C15A3BC7673A3A03B0253824C53D0FD1411B1CABE2E187FB87
+
+k = 26959946667150639794667015087019625940457807714424391721682722368054
+x = DB2F6BE630E246A5CF7D99B85194B123D487E2D466B94B24A03C3E28
+y = F0C5CFF7AB680D09EE11DAE84E9C1072AC48EA2E744B1B7F72FD469E
+
+k = 26959946667150639794667015087019625940457807714424391721682722368055
+x = 1F2483F82572251FCA975FEA40DB821DF8AD82A3C002EE6C57112408
+y = 76050F3348AF2664AAC3A8B05281304EBC7A7914C6AD50A4B4EAC383
+
+k = 26959946667150639794667015087019625940457807714424391721682722368056
+x = 31C49AE75BCE7807CDFF22055D94EE9021FEDBB5AB51C57526F011AA
+y = D817400E8BA9CA13A45F360E3D121EAAEB39AF82D6001C8186F5F866
+
+k = 26959946667150639794667015087019625940457807714424391721682722368057
+x = AE99FEEBB5D26945B54892092A8AEE02912930FA41CD114E40447301
+y = FB7DA7F5F13A43B81774373C879CD32D6934C05FA758EEB14FCFAB38
+
+k = 26959946667150639794667015087019625940457807714424391721682722368058
+x = DF1B1D66A551D0D31EFF822558B9D2CC75C2180279FE0D08FD896D04
+y = 5C080FC3522F41BBB3F55A97CFECF21F882CE8CBB1E50CA6E67E56DC
+
+k = 26959946667150639794667015087019625940457807714424391721682722368059
+x = 706A46DC76DCB76798E60E6D89474788D16DC18032D268FD1A704FA6
+y = E3D4895843DA188FD58FB0567976D7B50359D6B78530C8F62D1B1746
+
+k = 26959946667150639794667015087019625940457807714424391721682722368060
+x = B70E0CBD6BB4BF7F321390B94A03C1D356C21122343280D6115C1D21
+y = 42C89C774A08DC04B3DD201932BC8A5EA5F8B89BBB2A7E667AFF81CD
+
+
+ Curve: P256
+-------------
+k = 1
+x = 6B17D1F2E12C4247F8BCE6E563A440F277037D812DEB33A0F4A13945D898C296
+y = 4FE342E2FE1A7F9B8EE7EB4A7C0F9E162BCE33576B315ECECBB6406837BF51F5
+
+k = 2
+x = 7CF27B188D034F7E8A52380304B51AC3C08969E277F21B35A60B48FC47669978
+y = 07775510DB8ED040293D9AC69F7430DBBA7DADE63CE982299E04B79D227873D1
+
+k = 3
+x = 5ECBE4D1A6330A44C8F7EF951D4BF165E6C6B721EFADA985FB41661BC6E7FD6C
+y = 8734640C4998FF7E374B06CE1A64A2ECD82AB036384FB83D9A79B127A27D5032
+
+k = 4
+x = E2534A3532D08FBBA02DDE659EE62BD0031FE2DB785596EF509302446B030852
+y = E0F1575A4C633CC719DFEE5FDA862D764EFC96C3F30EE0055C42C23F184ED8C6
+
+k = 5
+x = 51590B7A515140D2D784C85608668FDFEF8C82FD1F5BE52421554A0DC3D033ED
+y = E0C17DA8904A727D8AE1BF36BF8A79260D012F00D4D80888D1D0BB44FDA16DA4
+
+k = 6
+x = B01A172A76A4602C92D3242CB897DDE3024C740DEBB215B4C6B0AAE93C2291A9
+y = E85C10743237DAD56FEC0E2DFBA703791C00F7701C7E16BDFD7C48538FC77FE2
+
+k = 7
+x = 8E533B6FA0BF7B4625BB30667C01FB607EF9F8B8A80FEF5B300628703187B2A3
+y = 73EB1DBDE03318366D069F83A6F5900053C73633CB041B21C55E1A86C1F400B4
+
+k = 8
+x = 62D9779DBEE9B0534042742D3AB54CADC1D238980FCE97DBB4DD9DC1DB6FB393
+y = AD5ACCBD91E9D8244FF15D771167CEE0A2ED51F6BBE76A78DA540A6A0F09957E
+
+k = 9
+x = EA68D7B6FEDF0B71878938D51D71F8729E0ACB8C2C6DF8B3D79E8A4B90949EE0
+y = 2A2744C972C9FCE787014A964A8EA0C84D714FEAA4DE823FE85A224A4DD048FA
+
+k = 10
+x = CEF66D6B2A3A993E591214D1EA223FB545CA6C471C48306E4C36069404C5723F
+y = 878662A229AAAE906E123CDD9D3B4C10590DED29FE751EEECA34BBAA44AF0773
+
+k = 11
+x = 3ED113B7883B4C590638379DB0C21CDA16742ED0255048BF433391D374BC21D1
+y = 9099209ACCC4C8A224C843AFA4F4C68A090D04DA5E9889DAE2F8EEFCE82A3740
+
+k = 12
+x = 741DD5BDA817D95E4626537320E5D55179983028B2F82C99D500C5EE8624E3C4
+y = 0770B46A9C385FDC567383554887B1548EEB912C35BA5CA71995FF22CD4481D3
+
+k = 13
+x = 177C837AE0AC495A61805DF2D85EE2FC792E284B65EAD58A98E15D9D46072C01
+y = 63BB58CD4EBEA558A24091ADB40F4E7226EE14C3A1FB4DF39C43BBE2EFC7BFD8
+
+k = 14
+x = 54E77A001C3862B97A76647F4336DF3CF126ACBE7A069C5E5709277324D2920B
+y = F599F1BB29F4317542121F8C05A2E7C37171EA77735090081BA7C82F60D0B375
+
+k = 15
+x = F0454DC6971ABAE7ADFB378999888265AE03AF92DE3A0EF163668C63E59B9D5F
+y = B5B93EE3592E2D1F4E6594E51F9643E62A3B21CE75B5FA3F47E59CDE0D034F36
+
+k = 16
+x = 76A94D138A6B41858B821C629836315FCD28392EFF6CA038A5EB4787E1277C6E
+y = A985FE61341F260E6CB0A1B5E11E87208599A0040FC78BAA0E9DDD724B8C5110
+
+k = 17
+x = 47776904C0F1CC3A9C0984B66F75301A5FA68678F0D64AF8BA1ABCE34738A73E
+y = AA005EE6B5B957286231856577648E8381B2804428D5733F32F787FF71F1FCDC
+
+k = 18
+x = 1057E0AB5780F470DEFC9378D1C7C87437BB4C6F9EA55C63D936266DBD781FDA
+y = F6F1645A15CBE5DC9FA9B7DFD96EE5A7DCC11B5C5EF4F1F78D83B3393C6A45A2
+
+k = 19
+x = CB6D2861102C0C25CE39B7C17108C507782C452257884895C1FC7B74AB03ED83
+y = 58D7614B24D9EF515C35E7100D6D6CE4A496716E30FA3E03E39150752BCECDAA
+
+k = 20
+x = 83A01A9378395BAB9BCD6A0AD03CC56D56E6B19250465A94A234DC4C6B28DA9A
+
+y = 76E49B6DE2F73234AE6A5EB9D612B75C9F2202BB6923F54FF8240AAA86F640B8
+
+k = 112233445566778899
+x = 339150844EC15234807FE862A86BE77977DBFB3AE3D96F4C22795513AEAAB82F
+y = B1C14DDFDC8EC1B2583F51E85A5EB3A155840F2034730E9B5ADA38B674336A21
+
+k = 112233445566778899112233445566778899
+x = 1B7E046A076CC25E6D7FA5003F6729F665CC3241B5ADAB12B498CD32F2803264
+y = BFEA79BE2B666B073DB69A2A241ADAB0738FE9D2DD28B5604EB8C8CF097C457B
+
+k = 29852220098221261079183923314599206100666902414330245206392788703677545185283
+x = 9EACE8F4B071E677C5350B02F2BB2B384AAE89D58AA72CA97A170572E0FB222F
+y = 1BBDAEC2430B09B93F7CB08678636CE12EAAFD58390699B5FD2F6E1188FC2A78
+
+k = 57896042899961394862005778464643882389978449576758748073725983489954366354431
+x = 878F22CC6DB6048D2B767268F22FFAD8E56AB8E2DC615F7BD89F1E350500DD8D
+y = 714A5D7BB901C9C5853400D12341A892EF45D87FC553786756C4F0C9391D763E
+
+k = 1766845392945710151501889105729049882997660004824848915955419660366636031
+x = 659A379625AB122F2512B8DADA02C6348D53B54452DFF67AC7ACE4E8856295CA
+y = 49D81AB97B648464D0B4A288BD7818FAB41A16426E943527C4FED8736C53D0F6
+
+k = 28948025760307534517734791687894775804466072615242963443097661355606862201087
+x = CBCEAAA8A4DD44BBCE58E8DB7740A5510EC2CB7EA8DA8D8F036B3FB04CDA4DE4
+y = 4BD7AA301A80D7F59FD983FEDBE59BB7B2863FE46494935E3745B360E32332FA
+
+k = 113078210460870548944811695960290644973229224625838436424477095834645696384
+x = F0C4A0576154FF3A33A3460D42EAED806E854DFA37125221D37935124BA462A4
+y = 5B392FA964434D29EEC6C9DBC261CF116796864AA2FAADB984A2DF38D1AEF7A3
+
+k = 12078056106883488161242983286051341125085761470677906721917479268909056
+x = 5E6C8524B6369530B12C62D31EC53E0288173BD662BDF680B53A41ECBCAD00CC
+y = 447FE742C2BFEF4D0DB14B5B83A2682309B5618E0064A94804E9282179FE089F
+
+k = 57782969857385448082319957860328652998540760998293976083718804450708503920639
+x = 03792E541BC209076A3D7920A915021ECD396A6EB5C3960024BE5575F3223484
+y = FC774AE092403101563B712F68170312304F20C80B40C06282063DB25F268DE4
+
+k = 57896017119460046759583662757090100341435943767777707906455551163257755533312
+x = 2379FF85AB693CDF901D6CE6F2473F39C04A2FE3DCD842CE7AAB0E002095BCF8
+y = F8B476530A634589D5129E46F322B02FBC610A703D80875EE70D7CE1877436A1
+
+k = 452312848374287284681282171017647412726433684238464212999305864837160993279
+x = C1E4072C529BF2F44DA769EFC934472848003B3AF2C0F5AA8F8DDBD53E12ED7C
+y = 39A6EE77812BB37E8079CD01ED649D3830FCA46F718C1D3993E4A591824ABCDB
+
+k = 904571339174065134293634407946054000774746055866917729876676367558469746684
+x = 34DFBC09404C21E250A9B40FA8772897AC63A094877DB65862B61BD1507B34F3
+y = CF6F8A876C6F99CEAEC87148F18C7E1E0DA6E165FFC8ED82ABB65955215F77D3
+
+k = 115792089210356248762697446949407573529996955224135760342422259061068512044349
+x = 83A01A9378395BAB9BCD6A0AD03CC56D56E6B19250465A94A234DC4C6B28DA9A
+y = 891B64911D08CDCC5195A14629ED48A360DDFD4596DC0AB007DBF5557909BF47
+
+k = 115792089210356248762697446949407573529996955224135760342422259061068512044350
+x = CB6D2861102C0C25CE39B7C17108C507782C452257884895C1FC7B74AB03ED83
+y = A7289EB3DB2610AFA3CA18EFF292931B5B698E92CF05C1FC1C6EAF8AD4313255
+
+k = 115792089210356248762697446949407573529996955224135760342422259061068512044351
+x = 1057E0AB5780F470DEFC9378D1C7C87437BB4C6F9EA55C63D936266DBD781FDA
+y = 090E9BA4EA341A246056482026911A58233EE4A4A10B0E08727C4CC6C395BA5D
+
+k = 115792089210356248762697446949407573529996955224135760342422259061068512044352
+x = 47776904C0F1CC3A9C0984B66F75301A5FA68678F0D64AF8BA1ABCE34738A73E
+y = 55FFA1184A46A8D89DCE7A9A889B717C7E4D7FBCD72A8CC0CD0878008E0E0323
+
+k = 115792089210356248762697446949407573529996955224135760342422259061068512044353
+x = 76A94D138A6B41858B821C629836315FCD28392EFF6CA038A5EB4787E1277C6E
+y = 567A019DCBE0D9F2934F5E4A1EE178DF7A665FFCF0387455F162228DB473AEEF
+
+k = 115792089210356248762697446949407573529996955224135760342422259061068512044354
+x = F0454DC6971ABAE7ADFB378999888265AE03AF92DE3A0EF163668C63E59B9D5F
+y = 4A46C11BA6D1D2E1B19A6B1AE069BC19D5C4DE328A4A05C0B81A6321F2FCB0C9
+
+k = 115792089210356248762697446949407573529996955224135760342422259061068512044355
+x = 54E77A001C3862B97A76647F4336DF3CF126ACBE7A069C5E5709277324D2920B
+y = 0A660E43D60BCE8BBDEDE073FA5D183C8E8E15898CAF6FF7E45837D09F2F4C8A
+
+k = 115792089210356248762697446949407573529996955224135760342422259061068512044356
+x = 177C837AE0AC495A61805DF2D85EE2FC792E284B65EAD58A98E15D9D46072C01
+y = 9C44A731B1415AA85DBF6E524BF0B18DD911EB3D5E04B20C63BC441D10384027
+
+k = 115792089210356248762697446949407573529996955224135760342422259061068512044357
+x = 741DD5BDA817D95E4626537320E5D55179983028B2F82C99D500C5EE8624E3C4
+y = F88F4B9463C7A024A98C7CAAB7784EAB71146ED4CA45A358E66A00DD32BB7E2C
+
+k = 115792089210356248762697446949407573529996955224135760342422259061068512044358
+x = 3ED113B7883B4C590638379DB0C21CDA16742ED0255048BF433391D374BC21D1
+y = 6F66DF64333B375EDB37BC505B0B3975F6F2FB26A16776251D07110317D5C8BF
+
+k = 115792089210356248762697446949407573529996955224135760342422259061068512044359
+x = CEF66D6B2A3A993E591214D1EA223FB545CA6C471C48306E4C36069404C5723F
+y = 78799D5CD655517091EDC32262C4B3EFA6F212D7018AE11135CB4455BB50F88C
+
+k = 115792089210356248762697446949407573529996955224135760342422259061068512044360
+x = EA68D7B6FEDF0B71878938D51D71F8729E0ACB8C2C6DF8B3D79E8A4B90949EE0
+y = D5D8BB358D36031978FEB569B5715F37B28EB0165B217DC017A5DDB5B22FB705
+
+k = 115792089210356248762697446949407573529996955224135760342422259061068512044361
+x = 62D9779DBEE9B0534042742D3AB54CADC1D238980FCE97DBB4DD9DC1DB6FB393
+y = 52A533416E1627DCB00EA288EE98311F5D12AE0A4418958725ABF595F0F66A81
+
+k = 115792089210356248762697446949407573529996955224135760342422259061068512044362
+x = 8E533B6FA0BF7B4625BB30667C01FB607EF9F8B8A80FEF5B300628703187B2A3
+y = 8C14E2411FCCE7CA92F9607C590A6FFFAC38C9CD34FBE4DE3AA1E5793E0BFF4B
+
+k = 115792089210356248762697446949407573529996955224135760342422259061068512044363
+x = B01A172A76A4602C92D3242CB897DDE3024C740DEBB215B4C6B0AAE93C2291A9
+y = 17A3EF8ACDC8252B9013F1D20458FC86E3FF0890E381E9420283B7AC7038801D
+
+k = 115792089210356248762697446949407573529996955224135760342422259061068512044364
+x = 51590B7A515140D2D784C85608668FDFEF8C82FD1F5BE52421554A0DC3D033ED
+y = 1F3E82566FB58D83751E40C9407586D9F2FED1002B27F7772E2F44BB025E925B
+
+k = 115792089210356248762697446949407573529996955224135760342422259061068512044365
+x = E2534A3532D08FBBA02DDE659EE62BD0031FE2DB785596EF509302446B030852
+y = 1F0EA8A4B39CC339E62011A02579D289B103693D0CF11FFAA3BD3DC0E7B12739
+
+k = 115792089210356248762697446949407573529996955224135760342422259061068512044366
+x = 5ECBE4D1A6330A44C8F7EF951D4BF165E6C6B721EFADA985FB41661BC6E7FD6C
+y = 78CB9BF2B6670082C8B4F931E59B5D1327D54FCAC7B047C265864ED85D82AFCD
+
+k = 115792089210356248762697446949407573529996955224135760342422259061068512044367
+x = 7CF27B188D034F7E8A52380304B51AC3C08969E277F21B35A60B48FC47669978
+y = F888AAEE24712FC0D6C26539608BCF244582521AC3167DD661FB4862DD878C2E
+
+k = 115792089210356248762697446949407573529996955224135760342422259061068512044368
+x = 6B17D1F2E12C4247F8BCE6E563A440F277037D812DEB33A0F4A13945D898C296
+y = B01CBD1C01E58065711814B583F061E9D431CCA994CEA1313449BF97C840AE0A
+
+
+ Curve: P384
+-------------
+k = 1
+x = AA87CA22BE8B05378EB1C71EF320AD746E1D3B628BA79B9859F741E082542A385502F25DBF55296C3A545E3872760AB7
+y = 3617DE4A96262C6F5D9E98BF9292DC29F8F41DBD289A147CE9DA3113B5F0B8C00A60B1CE1D7E819D7A431D7C90EA0E5F
+
+k = 2
+x = 08D999057BA3D2D969260045C55B97F089025959A6F434D651D207D19FB96E9E4FE0E86EBE0E64F85B96A9C75295DF61
+y = 8E80F1FA5B1B3CEDB7BFE8DFFD6DBA74B275D875BC6CC43E904E505F256AB4255FFD43E94D39E22D61501E700A940E80
+
+k = 3
+x = 077A41D4606FFA1464793C7E5FDC7D98CB9D3910202DCD06BEA4F240D3566DA6B408BBAE5026580D02D7E5C70500C831
+y = C995F7CA0B0C42837D0BBE9602A9FC998520B41C85115AA5F7684C0EDC111EACC24ABD6BE4B5D298B65F28600A2F1DF1
+
+k = 4
+x = 138251CD52AC9298C1C8AAD977321DEB97E709BD0B4CA0ACA55DC8AD51DCFC9D1589A1597E3A5120E1EFD631C63E1835
+y = CACAE29869A62E1631E8A28181AB56616DC45D918ABC09F3AB0E63CF792AA4DCED7387BE37BBA569549F1C02B270ED67
+
+k = 5
+x = 11DE24A2C251C777573CAC5EA025E467F208E51DBFF98FC54F6661CBE56583B037882F4A1CA297E60ABCDBC3836D84BC
+y = 8FA696C77440F92D0F5837E90A00E7C5284B447754D5DEE88C986533B6901AEB3177686D0AE8FB33184414ABE6C1713A
+
+k = 6
+x = 627BE1ACD064D2B2226FE0D26F2D15D3C33EBCBB7F0F5DA51CBD41F26257383021317D7202FF30E50937F0854E35C5DF
+y = 09766A4CB3F8B1C21BE6DDA6C14F1575B2C95352644F774C99864F613715441604C45B8D84E165311733A408D3F0F934
+
+k = 7
+x = 283C1D7365CE4788F29F8EBF234EDFFEAD6FE997FBEA5FFA2D58CC9DFA7B1C508B05526F55B9EBB2040F05B48FB6D0E1
+y = 9475C99061E41B88BA52EFDB8C1690471A61D867ED799729D9C92CD01DBD225630D84EDE32A78F9E64664CDAC512EF8C
+
+k = 8
+x = 1692778EA596E0BE75114297A6FA383445BF227FBE58190A900C3C73256F11FB5A3258D6F403D5ECE6E9B269D822C87D
+y = DCD2365700D4106A835388BA3DB8FD0E22554ADC6D521CD4BD1C30C2EC0EEC196BADE1E9CDD1708D6F6ABFA4022B0AD2
+
+k = 9
+x = 8F0A39A4049BCB3EF1BF29B8B025B78F2216F7291E6FD3BAC6CB1EE285FB6E21C388528BFEE2B9535C55E4461079118B
+y = 62C77E1438B601D6452C4A5322C3A9799A9B3D7CA3C400C6B7678854AED9B3029E743EFEDFD51B68262DA4F9AC664AF8
+
+k = 10
+x = A669C5563BD67EEC678D29D6EF4FDE864F372D90B79B9E88931D5C29291238CCED8E85AB507BF91AA9CB2D13186658FB
+y = A988B72AE7C1279F22D9083DB5F0ECDDF70119550C183C31C502DF78C3B705A8296D8195248288D997784F6AB73A21DD
+
+k = 11
+x = 099056E27DA7B998DA1EEEC2904816C57FE935ED5837C37456C9FD14892D3F8C4749B66E3AFB81D626356F3B55B4DDD8
+y = 2E4C0C234E30AB96688505544AC5E0396FC4EED8DFC363FD43FF93F41B52A3255466D51263AAFF357D5DBA8138C5E0BB
+
+k = 12
+x = 952A7A349BD49289AB3AC421DCF683D08C2ED5E41F6D0E21648AF2691A481406DA4A5E22DA817CB466DA2EA77D2A7022
+y = A0320FAF84B5BC0563052DEAE6F66F2E09FB8036CE18A0EBB9028B096196B50D031AA64589743E229EF6BACCE21BD16E
+
+k = 13
+x = A567BA97B67AEA5BAFDAF5002FFCC6AB9632BFF9F01F873F6267BCD1F0F11C139EE5F441ABD99F1BAAF1CA1E3B5CBCE7
+y = DE1B38B3989F3318644E4147AF164ECC5185595046932EC086329BE057857D66776BCB8272218A7D6423A12736F429CC
+
+k = 14
+x = E8C8F94D44FBC2396BBEAC481B89D2B0877B1DFFD23E7DC95DE541EB651CCA2C41ABA24DBC02DE6637209ACCF0F59EA0
+y = 891AE44356FC8AE0932BCBF6DE52C8A933B86191E7728D79C8319413A09D0F48FC468BA05509DE22D7EE5C9E1B67B888
+
+k = 15
+x = B3D13FC8B32B01058CC15C11D813525522A94156FFF01C205B21F9F7DA7C4E9CA849557A10B6383B4B88701A9606860B
+y = 152919E7DF9162A61B049B2536164B1BEEBAC4A11D749AF484D1114373DFBFD9838D24F8B284AF50985D588D33F7BD62
+
+k = 16
+x = D5D89C3B5282369C5FBD88E2B231511A6B80DFF0E5152CF6A464FA9428A8583BAC8EBC773D157811A462B892401DAFCF
+y = D815229DE12906D241816D5E9A9448F1D41D4FC40E2A3BDB9CABA57E440A7ABAD1210CB8F49BF2236822B755EBAB3673
+
+k = 17
+x = 4099952208B4889600A5EBBCB13E1A32692BEFB0733B41E6DCC614E42E5805F817012A991AF1F486CAF3A9ADD9FFCC03
+y = 5ECF94777833059839474594AF603598163AD3F8008AD0CD9B797D277F2388B304DA4D2FAA9680ECFA650EF5E23B09A0
+
+k = 18
+x = DFB1FE3A40F7AC9B64C41D39360A7423828B97CB088A4903315E402A7089FA0F8B6C2355169CC9C99DFB44692A9B93DD
+y = 453ACA1243B5EC6B423A68A25587E1613A634C1C42D2EE7E6C57F449A1C91DC89168B7036EC0A7F37A366185233EC522
+
+k = 19
+x = 8D481DAB912BC8AB16858A211D750B77E07DBECCA86CD9B012390B430467AABF59C8651060801C0E9599E68713F5D41B
+y = A1592FF0121460857BE99F2A60669050B2291B68A1039AA0594B32FD7ADC0E8C11FFBA5608004E646995B07E75E52245
+
+k = 20
+x = 605508EC02C534BCEEE9484C86086D2139849E2B11C1A9CA1E2808DEC2EAF161AC8A105D70D4F85C50599BE5800A623F
+y = 5158EE87962AC6B81F00A103B8543A07381B7639A3A65F1353AEF11B733106DDE92E99B78DE367B48E238C38DAD8EEDD
+
+k = 112233445566778899
+x = A499EFE48839BC3ABCD1C5CEDBDD51904F9514DB44F4686DB918983B0C9DC3AEE05A88B72433E9515F91A329F5F4FA60
+y = 3B7CA28EF31F809C2F1BA24AAED847D0F8B406A4B8968542DE139DB5828CA410E615D1182E25B91B1131E230B727D36A
+
+k = 112233445566778899112233445566778899
+x = 90A0B1CAC601676B083F21E07BC7090A3390FE1B9C7F61D842D27FA315FB38D83667A11A71438773E483F2A114836B24
+y = 3197D3C6123F0D6CD65D5F0DE106FEF36656CB16DC7CD1A6817EB1D51510135A8F492F72665CFD1053F75ED03A7D04C9
+
+k = 10158184112867540819754776755819761756724522948540419979637868435924061464745859402573149498125806098880003248619520
+x = F2A066BD332DC59BBC3D01DA1B124C687D8BB44611186422DE94C1DA4ECF150E664D353CCDB5CB2652685F8EB4D2CD49
+y = D6ED0BF75FDD8E53D87765FA746835B673881D6D1907163A2C43990D75B454294F942EC571AD5AAE1806CAF2BB8E9A4A
+
+k = 9850501551105991028245052605056992139810094908912799254115847683881357749738726091734403950439157209401153690566655
+x = 5C7F9845D1C4AA44747F9137B6F9C39B36B26B8A62E8AF97290434D5F3B214F5A0131550ADB19058DC4C8780C4165C4A
+y = 712F7FCCC86F647E70DB8798228CB16344AF3D00B139B6F8502939C2A965AF0EB4E39E2E16AB8F597B8D5630A50C9D85
+
+k = 9850502723405747097317271194763310482462751455185699630571661657946308788426092983270628740691202018691293898608608
+x = DD5838F7EC3B8ACF1BECFD746F8B668C577107E93548ED93ED0D254C112E76B10F053109EF8428BFCD50D38C4C030C57
+y = 33244F479CDAC34F160D9E4CE2D19D2FF0E3305B5BF0EEF29E91E9DE6E28F678C61B773AA7E3C03740E1A49D1AA2493C
+
+k = 1146189371817832990947611400450889406070215735255370280811736587845016396640969656447803207438173695115264
+x = CB8ED893530BFBA04B4CA655923AAAD109A62BC8411D5925316C32D33602459C33057A1FBCB5F70AEB295D90F9165FBC
+y = 426AEE3E91B08420F9B357B66D5AFCBCF3956590BF5564DBF9086042EB880493D19DA39AAA6436C6B5FC66CE5596B43F
+
+k = 9619341438217097641865390297189708858938017986426152622639500179774624579127744608993294698873437325090751520764
+x = 67F714012B6B070182122DDD435CC1C2262A1AB88939BC6A2906CB2B4137C5E82B4582160F6403CAB887ACDF5786A268
+y = 90E31CF398CE2F8C5897C7380BF541075D1B4D3CB70547262B7095731252F181AC0597C66AF8311C7780DB39DEC0BD32
+
+k = 1231307996623833742387400352380172566077927415136813282735641918395585376659282194317590461518639141730493780722175
+x = 55A79DF7B53A99D31462C7E1A5ED5623970715BB1021098CB973A7520CBD6365E613E4B2467486FB37E86E01CEE09B8F
+y = B95AEB71693189911661B709A886A1867F056A0EFE401EE11C06030E46F7A87731DA4575863178012208707DD666727C
+
+k = 587118838854683800942906722504810343086699021451906946003274128973058942197377013128840514404789143516741631
+x = 9539A968CF819A0E52E10EEA3BACA1B6480D7E4DF69BC07002C568569047110EE4FE72FCA423FDD5179D6E0E19C44844
+y = A7728F37A0AE0DF2716061900D83A4DA149144129F89A214A8260464BAB609BB322E4E67DE5E4C4C6CB8D25983EC19B0
+
+k = 153914077530671739663795070876894766451466019374644150541452557147890542143280855693795882295846834387672681660416
+x = 933FC13276672AB360D909161CD02D830B1628935DF0D800C6ED602C59D575A86A8A97E3A2D697E3ED06BE741C0097D6
+y = F35296BD7A6B4C6C025ED6D84338CCCC7522A45C5D4FBDB1442556CAEFB598128FA188793ADA510EB5F44E90A4E4BEF1
+
+k = 75148784606135150476268171850082176256856776750560539466196504390587921789283134009866871754361028131485122560
+x = 0CE31E1C4A937071E6EBACA026A93D783848BCC0C1585DAF639518125FCD1F1629D63041ABFB11FFC8F03FA8B6FCF6BF
+y = A69EA55BE4BEAB2D5224050FEBFFBDFCFD614624C3B4F228909EB80012F003756D1C377E52F04FA539237F24DD080E2E
+
+k = 19691383761310193665095292424754807745686799029814707849273381514021788371252213000473497648851202400395528761229312
+x = 6842CFE3589AC268818291F31D44177A9168DCBC19F321ED66D81ECF59E31B54CCA0DDFD4C4136780171748D69A91C54
+y = E3A5ECD5AC725F13DBC631F358C6E817EDCF3A613B83832741A9DB591A0BAE767FC714F70C2E7EA891E4312047DECCC0
+
+k = 39402006196394479212279040100143613805079739270465446667946905279627659399113263569398956308152294913554433653942623
+x = 605508EC02C534BCEEE9484C86086D2139849E2B11C1A9CA1E2808DEC2EAF161AC8A105D70D4F85C50599BE5800A623F
+y = AEA7117869D53947E0FF5EFC47ABC5F8C7E489C65C59A0ECAC510EE48CCEF92116D16647721C984B71DC73C825271122
+
+k = 39402006196394479212279040100143613805079739270465446667946905279627659399113263569398956308152294913554433653942624
+x = 8D481DAB912BC8AB16858A211D750B77E07DBECCA86CD9B012390B430467AABF59C8651060801C0E9599E68713F5D41B
+y = 5EA6D00FEDEB9F7A841660D59F996FAF4DD6E4975EFC655FA6B4CD028523F172EE0045A8F7FFB19B966A4F828A1ADDBA
+
+k = 39402006196394479212279040100143613805079739270465446667946905279627659399113263569398956308152294913554433653942625
+x = DFB1FE3A40F7AC9B64C41D39360A7423828B97CB088A4903315E402A7089FA0F8B6C2355169CC9C99DFB44692A9B93DD
+y = BAC535EDBC4A1394BDC5975DAA781E9EC59CB3E3BD2D118193A80BB65E36E2366E9748FB913F580C85C99E7BDCC13ADD
+
+k = 39402006196394479212279040100143613805079739270465446667946905279627659399113263569398956308152294913554433653942626
+x = 4099952208B4889600A5EBBCB13E1A32692BEFB0733B41E6DCC614E42E5805F817012A991AF1F486CAF3A9ADD9FFCC03
+y = A1306B8887CCFA67C6B8BA6B509FCA67E9C52C07FF752F32648682D880DC774BFB25B2CF55697F13059AF10B1DC4F65F
+
+k = 39402006196394479212279040100143613805079739270465446667946905279627659399113263569398956308152294913554433653942627
+x = D5D89C3B5282369C5FBD88E2B231511A6B80DFF0E5152CF6A464FA9428A8583BAC8EBC773D157811A462B892401DAFCF
+y = 27EADD621ED6F92DBE7E92A1656BB70E2BE2B03BF1D5C42463545A81BBF585442EDEF3460B640DDC97DD48AB1454C98C
+
+k = 39402006196394479212279040100143613805079739270465446667946905279627659399113263569398956308152294913554433653942628
+x = B3D13FC8B32B01058CC15C11D813525522A94156FFF01C205B21F9F7DA7C4E9CA849557A10B6383B4B88701A9606860B
+y = EAD6E618206E9D59E4FB64DAC9E9B4E411453B5EE28B650B7B2EEEBC8C2040257C72DB064D7B50AF67A2A773CC08429D
+
+k = 39402006196394479212279040100143613805079739270465446667946905279627659399113263569398956308152294913554433653942629
+x = E8C8F94D44FBC2396BBEAC481B89D2B0877B1DFFD23E7DC95DE541EB651CCA2C41ABA24DBC02DE6637209ACCF0F59EA0
+y = 76E51BBCA903751F6CD4340921AD3756CC479E6E188D728637CE6BEC5F62F0B603B9745EAAF621DD2811A362E4984777
+
+k = 39402006196394479212279040100143613805079739270465446667946905279627659399113263569398956308152294913554433653942630
+x = A567BA97B67AEA5BAFDAF5002FFCC6AB9632BFF9F01F873F6267BCD1F0F11C139EE5F441ABD99F1BAAF1CA1E3B5CBCE7
+y = 21E4C74C6760CCE79BB1BEB850E9B133AE7AA6AFB96CD13F79CD641FA87A82988894347C8DDE75829BDC5ED9C90BD633
+
+k = 39402006196394479212279040100143613805079739270465446667946905279627659399113263569398956308152294913554433653942631
+x = 952A7A349BD49289AB3AC421DCF683D08C2ED5E41F6D0E21648AF2691A481406DA4A5E22DA817CB466DA2EA77D2A7022
+y = 5FCDF0507B4A43FA9CFAD215190990D1F6047FC931E75F1446FD74F69E694AF1FCE559B9768BC1DD610945341DE42E91
+
+k = 39402006196394479212279040100143613805079739270465446667946905279627659399113263569398956308152294913554433653942632
+x = 099056E27DA7B998DA1EEEC2904816C57FE935ED5837C37456C9FD14892D3F8C4749B66E3AFB81D626356F3B55B4DDD8
+y = D1B3F3DCB1CF5469977AFAABB53A1FC6903B1127203C9C02BC006C0BE4AD5CD9AB992AEC9C5500CA82A2457FC73A1F44
+
+k = 39402006196394479212279040100143613805079739270465446667946905279627659399113263569398956308152294913554433653942633
+x = A669C5563BD67EEC678D29D6EF4FDE864F372D90B79B9E88931D5C29291238CCED8E85AB507BF91AA9CB2D13186658FB
+y = 567748D5183ED860DD26F7C24A0F132208FEE6AAF3E7C3CE3AFD20873C48FA56D6927E69DB7D77266887B09648C5DE22
+
+k = 39402006196394479212279040100143613805079739270465446667946905279627659399113263569398956308152294913554433653942634
+x = 8F0A39A4049BCB3EF1BF29B8B025B78F2216F7291E6FD3BAC6CB1EE285FB6E21C388528BFEE2B9535C55E4461079118B
+y = 9D3881EBC749FE29BAD3B5ACDD3C56866564C2835C3BFF39489877AB51264CFC618BC100202AE497D9D25B075399B507
+
+k = 39402006196394479212279040100143613805079739270465446667946905279627659399113263569398956308152294913554433653942635
+x = 1692778EA596E0BE75114297A6FA383445BF227FBE58190A900C3C73256F11FB5A3258D6F403D5ECE6E9B269D822C87D
+y = 232DC9A8FF2BEF957CAC7745C24702F1DDAAB52392ADE32B42E3CF3D13F113E594521E15322E8F729095405CFDD4F52D
+
+k = 39402006196394479212279040100143613805079739270465446667946905279627659399113263569398956308152294913554433653942636
+x = 283C1D7365CE4788F29F8EBF234EDFFEAD6FE997FBEA5FFA2D58CC9DFA7B1C508B05526F55B9EBB2040F05B48FB6D0E1
+y = 6B8A366F9E1BE47745AD102473E96FB8E59E2798128668D62636D32FE242DDA8CF27B120CD5870619B99B3263AED1073
+
+k = 39402006196394479212279040100143613805079739270465446667946905279627659399113263569398956308152294913554433653942637
+x = 627BE1ACD064D2B2226FE0D26F2D15D3C33EBCBB7F0F5DA51CBD41F26257383021317D7202FF30E50937F0854E35C5DF
+y = F68995B34C074E3DE41922593EB0EA8A4D36ACAD9BB088B36679B09EC8EABBE8FB3BA4717B1E9ACEE8CC5BF82C0F06CB
+
+k = 39402006196394479212279040100143613805079739270465446667946905279627659399113263569398956308152294913554433653942638
+x = 11DE24A2C251C777573CAC5EA025E467F208E51DBFF98FC54F6661CBE56583B037882F4A1CA297E60ABCDBC3836D84BC
+y = 705969388BBF06D2F0A7C816F5FF183AD7B4BB88AB2A211773679ACC496FE513CE889791F51704CCE7BBEB55193E8EC5
+
+k = 39402006196394479212279040100143613805079739270465446667946905279627659399113263569398956308152294913554433653942639
+x = 138251CD52AC9298C1C8AAD977321DEB97E709BD0B4CA0ACA55DC8AD51DCFC9D1589A1597E3A5120E1EFD631C63E1835
+y = 35351D679659D1E9CE175D7E7E54A99E923BA26E7543F60C54F19C3086D55B22128C7840C8445A96AB60E3FE4D8F1298
+
+k = 39402006196394479212279040100143613805079739270465446667946905279627659399113263569398956308152294913554433653942640
+x = 077A41D4606FFA1464793C7E5FDC7D98CB9D3910202DCD06BEA4F240D3566DA6B408BBAE5026580D02D7E5C70500C831
+y = 366A0835F4F3BD7C82F44169FD5603667ADF4BE37AEEA55A0897B3F123EEE1523DB542931B4A2D6749A0D7A0F5D0E20E
+
+k = 39402006196394479212279040100143613805079739270465446667946905279627659399113263569398956308152294913554433653942641
+x = 08D999057BA3D2D969260045C55B97F089025959A6F434D651D207D19FB96E9E4FE0E86EBE0E64F85B96A9C75295DF61
+y = 717F0E05A4E4C312484017200292458B4D8A278A43933BC16FB1AFA0DA954BD9A002BC15B2C61DD29EAFE190F56BF17F
+
+k = 39402006196394479212279040100143613805079739270465446667946905279627659399113263569398956308152294913554433653942642
+x = AA87CA22BE8B05378EB1C71EF320AD746E1D3B628BA79B9859F741E082542A385502F25DBF55296C3A545E3872760AB7
+y = C9E821B569D9D390A26167406D6D23D6070BE242D765EB831625CEEC4A0F473EF59F4E30E2817E6285BCE2846F15F1A0
+
+
+ Curve: P521
+-------------
+k = 1
+x = 00C6858E06B70404E9CD9E3ECB662395B4429C648139053FB521F828AF606B4D3DBAA14B5E77EFE75928FE1DC127A2FFA8DE3348B3C1856A429BF97E7E31C2E5BD66
+y = 011839296A789A3BC0045C8A5FB42C7D1BD998F54449579B446817AFBD17273E662C97EE72995EF42640C550B9013FAD0761353C7086A272C24088BE94769FD16650
+
+k = 2
+x = 00433C219024277E7E682FCB288148C282747403279B1CCC06352C6E5505D769BE97B3B204DA6EF55507AA104A3A35C5AF41CF2FA364D60FD967F43E3933BA6D783D
+y = 00F4BB8CC7F86DB26700A7F3ECEEEED3F0B5C6B5107C4DA97740AB21A29906C42DBBB3E377DE9F251F6B93937FA99A3248F4EAFCBE95EDC0F4F71BE356D661F41B02
+
+k = 3
+x = 01A73D352443DE29195DD91D6A64B5959479B52A6E5B123D9AB9E5AD7A112D7A8DD1AD3F164A3A4832051DA6BD16B59FE21BAEB490862C32EA05A5919D2EDE37AD7D
+y = 013E9B03B97DFA62DDD9979F86C6CAB814F2F1557FA82A9D0317D2F8AB1FA355CEEC2E2DD4CF8DC575B02D5ACED1DEC3C70CF105C9BC93A590425F588CA1EE86C0E5
+
+k = 4
+x = 0035B5DF64AE2AC204C354B483487C9070CDC61C891C5FF39AFC06C5D55541D3CEAC8659E24AFE3D0750E8B88E9F078AF066A1D5025B08E5A5E2FBC87412871902F3
+y = 0082096F84261279D2B673E0178EB0B4ABB65521AEF6E6E32E1B5AE63FE2F19907F279F283E54BA385405224F750A95B85EEBB7FAEF04699D1D9E21F47FC346E4D0D
+
+k = 5
+x = 00652BF3C52927A432C73DBC3391C04EB0BF7A596EFDB53F0D24CF03DAB8F177ACE4383C0C6D5E3014237112FEAF137E79A329D7E1E6D8931738D5AB5096EC8F3078
+y = 015BE6EF1BDD6601D6EC8A2B73114A8112911CD8FE8E872E0051EDD817C9A0347087BB6897C9072CF374311540211CF5FF79D1F007257354F7F8173CC3E8DEB090CB
+
+k = 6
+x = 01EE4569D6CDB59219532EFF34F94480D195623D30977FD71CF3981506ADE4AB01525FBCCA16153F7394E0727A239531BE8C2F66E95657F380AE23731BEDF79206B9
+y = 01DE0255AD0CC64F586AE2DD270546E3B1112AABBB73DA5A808E7240A926201A8A96CAB72D0E56648C9DF96C984DE274F2203DC7B8B55CA0DADE1EACCD7858D44F17
+
+k = 7
+x = 0056D5D1D99D5B7F6346EEB65FDA0B073A0C5F22E0E8F5483228F018D2C2F7114C5D8C308D0ABFC698D8C9A6DF30DCE3BBC46F953F50FDC2619A01CEAD882816ECD4
+y = 003D2D1B7D9BAAA2A110D1D8317A39D68478B5C582D02824F0DD71DBD98A26CBDE556BD0F293CDEC9E2B9523A34591CE1A5F9E76712A5DDEFC7B5C6B8BC90525251B
+
+k = 8
+x = 000822C40FB6301F7262A8348396B010E25BD4E29D8A9B003E0A8B8A3B05F826298F5BFEA5B8579F49F08B598C1BC8D79E1AB56289B5A6F4040586F9EA54AA78CE68
+y = 016331911D5542FC482048FDAB6E78853B9A44F8EDE9E2C0715B5083DE610677A8F189E9C0AA5911B4BFF0BA0DF065C578699F3BA940094713538AD642F11F17801C
+
+k = 9
+x = 01585389E359E1E21826A2F5BF157156D488ED34541B988746992C4AB145B8C6B6657429E1396134DA35F3C556DF725A318F4F50BABD85CD28661F45627967CBE207
+y = 002A2E618C9A8AEDF39F0B55557A27AE938E3088A654EE1CEBB6C825BA263DDB446E0D69E5756057AC840FF56ECF4ABFD87D736C2AE928880F343AA0EA86B9AD2A4E
+
+k = 10
+x = 0190EB8F22BDA61F281DFCFE7BB6721EC4CD901D879AC09AC7C34A9246B11ADA8910A2C7C178FCC263299DAA4DA9842093F37C2E411F1A8E819A87FF09A04F2F3320
+y = 01EB5D96B8491614BA9DBAEAB3B0CA2BA760C2EEB2144251B20BA97FD78A62EF62D2BF5349D44D9864BB536F6163DC57EBEFF3689639739FAA172954BC98135EC759
+
+k = 11
+x = 008A75841259FDEDFF546F1A39573B4315CFED5DC7ED7C17849543EF2C54F2991652F3DBC5332663DA1BD19B1AEBE3191085015C024FA4C9A902ECC0E02DDA0CDB9A
+y = 0096FB303FCBBA2129849D0CA877054FB2293ADD566210BD0493ED2E95D4E0B9B82B1BC8A90E8B42A4AB3892331914A95336DCAC80E3F4819B5D58874F92CE48C808
+
+k = 12
+x = 01C0D9DCEC93F8221C5DE4FAE9749C7FDE1E81874157958457B6107CF7A5967713A644E90B7C3FB81B31477FEE9A60E938013774C75C530928B17BE69571BF842D8C
+y = 014048B5946A4927C0FE3CE1D103A682CA4763FE65AB71494DA45E404ABF6A17C097D6D18843D86FCDB6CC10A6F951B9B630884BA72224F5AE6C79E7B1A3281B17F0
+
+k = 13
+x = 007E3E98F984C396AD9CD7865D2B4924861A93F736CDE1B4C2384EEDD2BEAF5B866132C45908E03C996A3550A5E79AB88EE94BEC3B00AB38EFF81887848D32FBCDA7
+y = 0108EE58EB6D781FEDA91A1926DAA3ED5A08CED50A386D5421C69C7A67AE5C1E212AC1BD5D5838BC763F26DFDD351CBFBBC36199EAAF9117E9F7291A01FB022A71C9
+
+k = 14
+x = 01875BC7DC551B1B65A9E1B8CCFAAF84DED1958B401494116A2FD4FB0BABE0B3199974FC06C8B897222D79DF3E4B7BC744AA6767F6B812EFBF5D2C9E682DD3432D74
+y = 005CA4923575DACB5BD2D66290BBABB4BDFB8470122B8E51826A0847CE9B86D7ED62D07781B1B4F3584C11E89BF1D133DC0D5B690F53A87C84BE41669F852700D54A
+
+k = 15
+x = 006B6AD89ABCB92465F041558FC546D4300FB8FBCC30B40A0852D697B532DF128E11B91CCE27DBD00FFE7875BD1C8FC0331D9B8D96981E3F92BDE9AFE337BCB8DB55
+y = 01B468DA271571391D6A7CE64D2333EDBF63DF0496A9BAD20CBA4B62106997485ED57E9062C899470A802148E2232C96C99246FD90CC446ABDD956343480A1475465
+
+k = 16
+x = 01D17D10D8A89C8AD05DDA97DA26AC743B0B2A87F66192FD3F3DD632F8D20B188A52943FF18861CA00A0E5965DA7985630DF0DBF5C8007DCDC533A6C508F81A8402F
+y = 007A37343C582D77001FC714B18D3D3E69721335E4C3B800D50EC7CA30C94B6B82C1C182E1398DB547AA0B3075AC9D9988529E3004D28D18633352E272F89BC73ABE
+
+k = 17
+x = 01B00DDB707F130EDA13A0B874645923906A99EE9E269FA2B3B4D66524F269250858760A69E674FE0287DF4E799B5681380FF8C3042AF0D1A41076F817A853110AE0
+y = 0085683F1D7DB16576DBC111D4E4AEDDD106B799534CF69910A98D68AC2B22A1323DF9DA564EF6DD0BF0D2F6757F16ADF420E6905594C2B755F535B9CB7C70E64647
+
+k = 18
+x = 01BC33425E72A12779EACB2EDCC5B63D1281F7E86DBC7BF99A7ABD0CFE367DE4666D6EDBB8525BFFE5222F0702C3096DEC0884CE572F5A15C423FDF44D01DD99C61D
+y = 010D06E999885B63535DE3E74D33D9E63D024FB07CE0D196F2552C8E4A00AC84C044234AEB201F7A9133915D1B4B45209B9DA79FE15B19F84FD135D841E2D8F9A86A
+
+k = 19
+x = 00998DCCE486419C3487C0F948C2D5A1A07245B77E0755DF547EFFF0ACDB3790E7F1FA3B3096362669679232557D7A45970DFECF431E725BBDE478FF0B2418D6A19B
+y = 0137D5DA0626A021ED5CC3942497535B245D67D28AEE2B7BCF4ACC50EEE36545772773AD963FF2EB8CF9B0EC39991631C377F5A4D89EA9FBFE44A9091A695BFD0575
+
+k = 20
+x = 018BDD7F1B889598A4653DEEAE39CC6F8CC2BD767C2AB0D93FB12E968FBED342B51709506339CB1049CB11DD48B9BDB3CD5CAD792E43B74E16D8E2603BFB11B0344F
+y = 00C5AADBE63F68CA5B6B6908296959BF0AF89EE7F52B410B9444546C550952D311204DA3BDDDC6D4EAE7EDFAEC1030DA8EF837CCB22EEE9CFC94DD3287FED0990F94
+
+k = 112233445566778899
+x = 01650048FBD63E8C30B305BF36BD7643B91448EF2206E8A0CA84A140789A99B0423A0A2533EA079CA7E049843E69E5FA2C25A163819110CEC1A30ACBBB3A422A40D8
+y = 010C9C64A0E0DB6052DBC5646687D06DECE5E9E0703153EFE9CB816FE025E85354D3C5F869D6DB3F4C0C01B5F97919A5E72CEEBE03042E5AA99112691CFFC2724828
+
+k = 112233445566778899112233445566778899
+x = 017E1370D39C9C63925DAEEAC571E21CAAF60BD169191BAEE8352E0F54674443B29786243564ABB705F6FC0FE5FC5D3F98086B67CA0BE7AC8A9DEC421D9F1BC6B37F
+y = 01CD559605EAD19FBD99E83600A6A81A0489E6F20306EE0789AE00CE16A6EFEA2F42F7534186CF1C60DF230BD9BCF8CB95E5028AD9820B2B1C0E15597EE54C4614A6
+
+k = 1769805277975163035253775930842367129093741786725376786007349332653323812656658291413435033257677579095366632521448854141275926144187294499863933403633025023
+x = 00B45CB84651C9D4F08858B867F82D816E84E94FE4CAE3DA5F65E420B08398D0C5BF019253A6C26D20671BDEF0B8E6C1D348A4B0734687F73AC6A4CBB2E085C68B3F
+y = 01C84942BBF538903062170A4BA8B3410D385719BA2037D29CA5248BFCBC8478220FEC79244DCD45D31885A1764DEE479CE20B12CEAB62F9001C7AA4282CE4BE7F56
+
+k = 104748400337157462316262627929132596317243790506798133267698218707528750292682889221414310155907963824712114916552440160880550666043997030661040721887239
+x = 01CCEF4CDA108CEBE6568820B54A3CA3A3997E4EF0EDA6C350E7ED3DBB1861EDD80181C650CEBE5440FEBA880F9C8A7A86F8B82659794F6F5B88E501E5DD84E65D7E
+y = 01026565F8B195D03C3F6139C3A63EAA1C29F7090AB2A8F75027939EC05109035F1B38E6C508E0C14CE53AB7E2DA33AA28140EDBF3964862FB157119517454E60F07
+
+k = 6703903865078345888141381651430168039496664077350965054288133126549307058741788671148197429777343936466127575938031786147409472627479702469884214509568000
+x = 00C1002DC2884EEDADB3F9B468BBEBD55980799852C506D37271FFCD006919DB3A96DF8FE91EF6ED4B9081B1809E8F2C2B28AF5FCBF524147C73CB0B913D6FAB0995
+y = 01614E8A62C8293DD2AA6EF27D30974A4FD185019FA8EF4F982DA48698CECF706581F69EE9ED67A9C231EC9D0934D0F674646153273BCBB345E923B1EC1386A1A4AD
+
+k = 1675925643682395305404517165643562251880026958780896531698856737024179880343339878336382412050263431942974939646683480906434632963478257639757341102436352
+x = 010ED3E085ECDE1E66874286B5D5642B9D37853A026A0A025C7B84936E2ECEEC5F342E14C80C79CCF814D5AD085C5303F2823251F2B9276F88C9D7A43E387EBD87AC
+y = 01BE399A7666B29E79BBF3D277531A97CE05CAC0B49BECE4781E7AEE0D6E80FEE883C76E9F08453DC1ADE4E49300F3D56FEE6A1510DA1B1F12EEAA39A05AA0508119
+
+k = 12785133382149415221402495202586701798620696169446772599038235721862338692190156163951558963856959059232381602864743924427451786769515154396810706943
+x = 013070A29B059D317AF37089E40FCB135868F52290EFF3E9F3E32CDADCA18EA234D8589C665A4B8E3D0714DE004A419DEA7091A3BBA97263C438FE9413AA598FD4A5
+y = 00238A27FD9E5E7324C8B538EF2E334B71AC2611A95F42F4F2544D8C4A65D2A32A8BAFA15EFD4FC2BD8AB2B0C51F65B680879589F4D5FE8A84CEB17A2E8D3587F011
+
+k = 214524875832249255872206855495734426889477529336261655255492425273322727861341825677722947375406711676372335314043071600934941615185418540320233184489636351
+x = 01A3D88799878EC74E66FF1AD8C7DFA9A9B4445A17F0810FF8189DD27AE3B6C580D352476DBDAEB08D7DA0DE3866F7C7FDBEBB8418E19710F1F7AFA88C22280B1404
+y = 00B39703D2053EC7B8812BDFEBFD81B4CB76F245FE535A1F1E46801C35DE03C15063A99A203981529C146132863CA0E68544D0F0A638D8A2859D82B4DD266F27C3AE
+
+k = 51140486275567859131139077890835526884648461857823088348651153840508287621366854506831244746531272246620295123104269565867055949378266395604768784399
+x = 01D16B4365DEFE6FD356DC1F31727AF2A32C7E86C5AE87ED2950A08BC8653F203C7F7860E80F95AA27C93EA76E8CD094127B15ED42CC5F96DC0A0F9A1C1E31D0D526
+y = 006E3710A0F9366E0BB8A14FFE8EBC2722EECF4A123EC9BA98DCCCA335D6FAFD289DC69FD90903C9AC982FEB46DF93F03A7C8C9549D32C1C386D17F37340E63822A8
+
+k = 6651529716025206881035279952881520627841152247212784520914425039312606120198879080839643311347169019249080198239408356563413447402270445462102068592377843
+x = 01B1220F67C985E9FC9C588C0C86BB16E6FE4CC11E168A98D701AE4670724B3D030ED9965FADF4207C7A1BE9BE0F40DEF2BBFFF0C7EABCB5B42526CE1D3CAA468F52
+y = 006CDAD2860F6D2C37159A5A866D11605F2E7D87430DCFE6E6816AB6423CD9003CA6F2527B9C2A2483C541D456C963D18A0D2A46E158CB2A44C0BF42D562881FB748
+
+k = 3224551824613232232537680077946818660156835288778087344805370397811379731631671254853846826682273677870214778462237171365140390183770226853329363961324241919
+x = 00F25E545213C8C074BE38A0612EA9B66336B14A874372548D9716392DFA31CD0D13E94F86CD48B8D43B80B5299144E01245C873B39F6AC6C4FB397746AF034AD67C
+y = 01733ABB21147CC27E35F41FAF40290AFD1EEB221D983FFABBD88E5DC8776450A409EACDC1BCA2B9F517289C68645BB96781808FEAE42573C2BB289F16E2AECECE17
+
+k = 12486613128442885430380874043991285080254917488396284953815149251315412600634581539066663092297612040669978017623587752845409653167277021864132608
+x = 0172CD22CBE0634B6BFEE24BB1D350F384A945ED618ECAD48AADC6C1BC0DCC107F0FFE9FE14DC929F90153F390C25BE5D3A73A56F9ACCB0C72C768753869732D0DC4
+y = 00D249CFB570DA4CC48FB5426A928B43D7922F787373B6182408FBC71706E7527E8414C79167F3C999FF58DE352D238F1FE7168C658D338F72696F2F889A97DE23C5
+
+k = 6864797660130609714981900799081393217269435300143305409394463459185543183397655394245057746333217197532963996371363321113864768612440380340372808892707005429
+x = 018BDD7F1B889598A4653DEEAE39CC6F8CC2BD767C2AB0D93FB12E968FBED342B51709506339CB1049CB11DD48B9BDB3CD5CAD792E43B74E16D8E2603BFB11B0344F
+y = 013A552419C09735A49496F7D696A640F50761180AD4BEF46BBBAB93AAF6AD2CEEDFB25C4222392B1518120513EFCF257107C8334DD11163036B22CD78012F66F06B
+
+k = 6864797660130609714981900799081393217269435300143305409394463459185543183397655394245057746333217197532963996371363321113864768612440380340372808892707005430
+x = 00998DCCE486419C3487C0F948C2D5A1A07245B77E0755DF547EFFF0ACDB3790E7F1FA3B3096362669679232557D7A45970DFECF431E725BBDE478FF0B2418D6A19B
+y = 00C82A25F9D95FDE12A33C6BDB68ACA4DBA2982D7511D48430B533AF111C9ABA88D88C5269C00D1473064F13C666E9CE3C880A5B2761560401BB56F6E596A402FA8A
+
+k = 6864797660130609714981900799081393217269435300143305409394463459185543183397655394245057746333217197532963996371363321113864768612440380340372808892707005431
+x = 01BC33425E72A12779EACB2EDCC5B63D1281F7E86DBC7BF99A7ABD0CFE367DE4666D6EDBB8525BFFE5222F0702C3096DEC0884CE572F5A15C423FDF44D01DD99C61D
+y = 00F2F9166677A49CACA21C18B2CC2619C2FDB04F831F2E690DAAD371B5FF537B3FBBDCB514DFE0856ECC6EA2E4B4BADF646258601EA4E607B02ECA27BE1D27065795
+
+k = 6864797660130609714981900799081393217269435300143305409394463459185543183397655394245057746333217197532963996371363321113864768612440380340372808892707005432
+x = 01B00DDB707F130EDA13A0B874645923906A99EE9E269FA2B3B4D66524F269250858760A69E674FE0287DF4E799B5681380FF8C3042AF0D1A41076F817A853110AE0
+y = 017A97C0E2824E9A89243EEE2B1B51222EF94866ACB30966EF56729753D4DD5ECDC20625A9B10922F40F2D098A80E9520BDF196FAA6B3D48AA0ACA4634838F19B9B8
+
+k = 6864797660130609714981900799081393217269435300143305409394463459185543183397655394245057746333217197532963996371363321113864768612440380340372808892707005433
+x = 01D17D10D8A89C8AD05DDA97DA26AC743B0B2A87F66192FD3F3DD632F8D20B188A52943FF18861CA00A0E5965DA7985630DF0DBF5C8007DCDC533A6C508F81A8402F
+y = 0185C8CBC3A7D288FFE038EB4E72C2C1968DECCA1B3C47FF2AF13835CF36B4947D3E3E7D1EC6724AB855F4CF8A53626677AD61CFFB2D72E79CCCAD1D8D076438C541
+
+k = 6864797660130609714981900799081393217269435300143305409394463459185543183397655394245057746333217197532963996371363321113864768612440380340372808892707005434
+x = 006B6AD89ABCB92465F041558FC546D4300FB8FBCC30B40A0852D697B532DF128E11B91CCE27DBD00FFE7875BD1C8FC0331D9B8D96981E3F92BDE9AFE337BCB8DB55
+y = 004B9725D8EA8EC6E2958319B2DCCC12409C20FB6956452DF345B49DEF9668B7A12A816F9D3766B8F57FDEB71DDCD369366DB9026F33BB954226A9CBCB7F5EB8AB9A
+
+k = 6864797660130609714981900799081393217269435300143305409394463459185543183397655394245057746333217197532963996371363321113864768612440380340372808892707005435
+x = 01875BC7DC551B1B65A9E1B8CCFAAF84DED1958B401494116A2FD4FB0BABE0B3199974FC06C8B897222D79DF3E4B7BC744AA6767F6B812EFBF5D2C9E682DD3432D74
+y = 01A35B6DCA8A2534A42D299D6F44544B42047B8FEDD471AE7D95F7B831647928129D2F887E4E4B0CA7B3EE17640E2ECC23F2A496F0AC57837B41BE99607AD8FF2AB5
+
+k = 6864797660130609714981900799081393217269435300143305409394463459185543183397655394245057746333217197532963996371363321113864768612440380340372808892707005436
+x = 007E3E98F984C396AD9CD7865D2B4924861A93F736CDE1B4C2384EEDD2BEAF5B866132C45908E03C996A3550A5E79AB88EE94BEC3B00AB38EFF81887848D32FBCDA7
+y = 00F711A7149287E01256E5E6D9255C12A5F7312AF5C792ABDE3963859851A3E1DED53E42A2A7C74389C0D92022CAE340443C9E6615506EE81608D6E5FE04FDD58E36
+
+k = 6864797660130609714981900799081393217269435300143305409394463459185543183397655394245057746333217197532963996371363321113864768612440380340372808892707005437
+x = 01C0D9DCEC93F8221C5DE4FAE9749C7FDE1E81874157958457B6107CF7A5967713A644E90B7C3FB81B31477FEE9A60E938013774C75C530928B17BE69571BF842D8C
+y = 00BFB74A6B95B6D83F01C31E2EFC597D35B89C019A548EB6B25BA1BFB54095E83F68292E77BC2790324933EF5906AE4649CF77B458DDDB0A519386184E5CD7E4E80F
+
+k = 6864797660130609714981900799081393217269435300143305409394463459185543183397655394245057746333217197532963996371363321113864768612440380340372808892707005438
+x = 008A75841259FDEDFF546F1A39573B4315CFED5DC7ED7C17849543EF2C54F2991652F3DBC5332663DA1BD19B1AEBE3191085015C024FA4C9A902ECC0E02DDA0CDB9A
+y = 016904CFC03445DED67B62F35788FAB04DD6C522A99DEF42FB6C12D16A2B1F4647D4E43756F174BD5B54C76DCCE6EB56ACC923537F1C0B7E64A2A778B06D31B737F7
+
+k = 6864797660130609714981900799081393217269435300143305409394463459185543183397655394245057746333217197532963996371363321113864768612440380340372808892707005439
+x = 0190EB8F22BDA61F281DFCFE7BB6721EC4CD901D879AC09AC7C34A9246B11ADA8910A2C7C178FCC263299DAA4DA9842093F37C2E411F1A8E819A87FF09A04F2F3320
+y = 0014A26947B6E9EB456245154C4F35D4589F3D114DEBBDAE4DF4568028759D109D2D40ACB62BB2679B44AC909E9C23A814100C9769C68C6055E8D6AB4367ECA138A6
+
+k = 6864797660130609714981900799081393217269435300143305409394463459185543183397655394245057746333217197532963996371363321113864768612440380340372808892707005440
+x = 01585389E359E1E21826A2F5BF157156D488ED34541B988746992C4AB145B8C6B6657429E1396134DA35F3C556DF725A318F4F50BABD85CD28661F45627967CBE207
+y = 01D5D19E736575120C60F4AAAA85D8516C71CF7759AB11E3144937DA45D9C224BB91F2961A8A9FA8537BF00A9130B54027828C93D516D777F0CBC55F15794652D5B1
+
+k = 6864797660130609714981900799081393217269435300143305409394463459185543183397655394245057746333217197532963996371363321113864768612440380340372808892707005441
+x = 000822C40FB6301F7262A8348396B010E25BD4E29D8A9B003E0A8B8A3B05F826298F5BFEA5B8579F49F08B598C1BC8D79E1AB56289B5A6F4040586F9EA54AA78CE68
+y = 009CCE6EE2AABD03B7DFB7025491877AC465BB0712161D3F8EA4AF7C219EF988570E76163F55A6EE4B400F45F20F9A3A879660C456BFF6B8ECAC7529BD0EE0E87FE3
+
+k = 6864797660130609714981900799081393217269435300143305409394463459185543183397655394245057746333217197532963996371363321113864768612440380340372808892707005442
+x = 0056D5D1D99D5B7F6346EEB65FDA0B073A0C5F22E0E8F5483228F018D2C2F7114C5D8C308D0ABFC698D8C9A6DF30DCE3BBC46F953F50FDC2619A01CEAD882816ECD4
+y = 01C2D2E48264555D5EEF2E27CE85C6297B874A3A7D2FD7DB0F228E242675D93421AA942F0D6C321361D46ADC5CBA6E31E5A061898ED5A2210384A3947436FADADAE4
+
+k = 6864797660130609714981900799081393217269435300143305409394463459185543183397655394245057746333217197532963996371363321113864768612440380340372808892707005443
+x = 01EE4569D6CDB59219532EFF34F94480D195623D30977FD71CF3981506ADE4AB01525FBCCA16153F7394E0727A239531BE8C2F66E95657F380AE23731BEDF79206B9
+y = 0021FDAA52F339B0A7951D22D8FAB91C4EEED554448C25A57F718DBF56D9DFE575693548D2F1A99B7362069367B21D8B0DDFC238474AA35F2521E1533287A72BB0E8
+
+k = 6864797660130609714981900799081393217269435300143305409394463459185543183397655394245057746333217197532963996371363321113864768612440380340372808892707005444
+x = 00652BF3C52927A432C73DBC3391C04EB0BF7A596EFDB53F0D24CF03DAB8F177ACE4383C0C6D5E3014237112FEAF137E79A329D7E1E6D8931738D5AB5096EC8F3078
+y = 00A41910E42299FE291375D48CEEB57EED6EE327017178D1FFAE1227E8365FCB8F7844976836F8D30C8BCEEABFDEE30A00862E0FF8DA8CAB0807E8C33C17214F6F34
+
+k = 6864797660130609714981900799081393217269435300143305409394463459185543183397655394245057746333217197532963996371363321113864768612440380340372808892707005445
+x = 0035B5DF64AE2AC204C354B483487C9070CDC61C891C5FF39AFC06C5D55541D3CEAC8659E24AFE3D0750E8B88E9F078AF066A1D5025B08E5A5E2FBC87412871902F3
+y = 017DF6907BD9ED862D498C1FE8714F4B5449AADE5109191CD1E4A519C01D0E66F80D860D7C1AB45C7ABFADDB08AF56A47A114480510FB9662E261DE0B803CB91B2F2
+
+k = 6864797660130609714981900799081393217269435300143305409394463459185543183397655394245057746333217197532963996371363321113864768612440380340372808892707005446
+x = 01A73D352443DE29195DD91D6A64B5959479B52A6E5B123D9AB9E5AD7A112D7A8DD1AD3F164A3A4832051DA6BD16B59FE21BAEB490862C32EA05A5919D2EDE37AD7D
+y = 00C164FC4682059D2226686079393547EB0D0EAA8057D562FCE82D0754E05CAA3113D1D22B30723A8A4FD2A5312E213C38F30EFA36436C5A6FBDA0A7735E11793F1A
+
+k = 6864797660130609714981900799081393217269435300143305409394463459185543183397655394245057746333217197532963996371363321113864768612440380340372808892707005447
+x = 00433C219024277E7E682FCB288148C282747403279B1CCC06352C6E5505D769BE97B3B204DA6EF55507AA104A3A35C5AF41CF2FA364D60FD967F43E3933BA6D783D
+y = 010B44733807924D98FF580C1311112C0F4A394AEF83B25688BF54DE5D66F93BD2444C1C882160DAE0946C6C805665CDB70B1503416A123F0B08E41CA9299E0BE4FD
+
+k = 6864797660130609714981900799081393217269435300143305409394463459185543183397655394245057746333217197532963996371363321113864768612440380340372808892707005448
+x = 00C6858E06B70404E9CD9E3ECB662395B4429C648139053FB521F828AF606B4D3DBAA14B5E77EFE75928FE1DC127A2FFA8DE3348B3C1856A429BF97E7E31C2E5BD66
+y = 00E7C6D6958765C43FFBA375A04BD382E426670ABBB6A864BB97E85042E8D8C199D368118D66A10BD9BF3AAF46FEC052F89ECAC38F795D8D3DBF77416B89602E99AF
+
+
+ Curve: B163
+-------------
+k = 1
+x = 03F0EBA16286A2D57EA0991168D4994637E8343E36
+y = 00D51FBC6C71A0094FA2CDD545B11C5C0C797324F1
+
+k = 2
+x = 01AEB33FED9C49E0200A0C561EA66D5AB85BD4C2D4
+y = 0530608192CD47D0C24C20076475FD625CC82895E8
+
+k = 3
+x = 0634000577F86AA315009D6F9B906691F6EDD691FE
+y = 0401A3DE0D6C2EC014E6FBA5653587BD45DC2230BE
+
+k = 4
+x = 04053748C8CCD84AF888D3E7623F4FF3B75D153F39
+y = 064B0908949B6A838153953B06CD169CC311F5FDA7
+
+k = 5
+x = 07205899683630522F4C657BB52764867DA449F864
+y = 0302537FF55DADA096DB01CA79007AF3013550CB9C
+
+k = 6
+x = 065AD02C42180EA317348FFE342FB1CF2A3E896195
+y = 0054D6F924A2880B5507C59B5B768ABDD6883CC94F
+
+k = 7
+x = 043EAAAF4BEA5A8C0A3EB105B31A0CF6ABAD87B13A
+y = 05FAD8CE53A9D7FD436C988C7A932B0BD27289A17F
+
+k = 8
+x = 04547BD66270DF7A9601351A616FEF080D44528B03
+y = 019303302D63359036B047497DC2F1BB94BB3D93C4
+
+k = 9
+x = 04802FB7306AE7CAA87F08815BABDFEEBBA9E7A7D3
+y = 051887A199573D8C5E2E54FA7FB6859C9F5ABA0256
+
+k = 10
+x = 0507E541410F581B0D6914C2183C9313E7CAA10915
+y = 0303C6D2DE69D3EFDBD20961BB97E25F1B22748341
+
+k = 11
+x = 0696E27054D49E19B15ED4240AA2F5942A06F25BB5
+y = 0213B6F9C3F5E68EFCAF26248A008FF6009343C77C
+
+k = 12
+x = 05AA3CAE634590B66A3F18A64E47B1C9B3B509E80C
+y = 0258234401076C0E16379AA32DF09503285A1EEBE6
+
+k = 13
+x = 07C565F87A02BFBAD2E0F3517F74392AC60036A5EB
+y = 02C556E1E3BD22E6A623BF4033B3E3551409365955
+
+k = 14
+x = 03566B99AE5EEEB921C9618E514A8AD50506A73F75
+y = 04A1B9E316EF87FF578DF5FB8514BEBDDD270CD91B
+
+k = 15
+x = 01880F725B918ABA057E6DE329ABDFEEF475AE9483
+y = 0220415EF494AAD1C937EB6143B18090BF4A2E0516
+
+k = 16
+x = 041FBD3ADBAB2C4349F5518C8BC4BD531F079DC92B
+y = 00611E336597E3A9C3AB428144731DC459A5500F1E
+
+k = 17
+x = 0714E4DADA0AB682D036AF06DDBA3CCAD123E5734B
+y = 06491E8A4DAC775E8E35B3B78172795D6D10EE5200
+
+k = 18
+x = 01F2DC4C1A649043F1622F611986E84074EBE3F692
+y = 03F9DC4F698E25F11F007F5176C2E9822346425217
+
+k = 19
+x = 01A55C68CE800F55118C74751EE8F99770A65B14F6
+y = 01B16D316F36C3491D4AE8B3AFC1DCCCE4141754E2
+
+k = 20
+x = 00AED08C6DDCF8E345006BD2F6989C3F92CB508A82
+y = 0253947FD52A1D327DCAF5224172C24E81BE22C2B3
+
+k = 112233445566778899
+x = 04B78128BD2F1E46147BA6AE8A2E96679C6082CBFE
+y = 0369576EAA212EE4A82F9113139B242ECA44824065
+
+k = 112233445566778899112233445566778899
+x = 04CCFB0246A0B44EDBBA64C3CFBFA5EFE0175B254B
+y = 00C7686F7DBB7A03A655A6200FD00F9289027069D5
+
+k = 3014303919301082363471676974008142323349532409856
+x = 0206CA58241AD954F6B6499349210DE70DF6D41C69
+y = 04B4A47F3360FC8B33C0FC52B924F140ED51DE761E
+
+k = 5845660887092509954614822264108743716794242435071
+x = 03F9A8E75A930CE4BD76B1E083B7C59AF3559E2332
+y = 0321A42923F23C7EBFC6215FFBE3736A424BD67EE1
+
+k = 37218388952580046387530102177743765472
+x = 059CDB14182D8CC0D721FAE32685C56E26F8941349
+y = 060CD9BA37CC91B795716275F2559722B652AB2052
+
+k = 178405792776285083668453598138797165866123391
+x = 01CA424374AD787A77880627B101FD5A03983BCD93
+y = 034DE28FD18358F0ABC44399FB3A95506A00725048
+
+k = 5846006375109673349306752832313931793753188073472
+x = 006AC93B0829A7F27E89AD517C94DE9D76AA012228
+y = 05706AE6A918E2C4D3D7014C4E3A2D1571BBD15B5C
+
+k = 5754662784102716162046055105144722111089719902208
+x = 063DEEACAD43ECB57FD95FE22577203D893003F524
+y = 016429B4458C1B81EAF791DA58F430C0F8BE7BD4B0
+
+k = 11417981371511606755217326180000330384402284544
+x = 00C69951B883CA6B9716931DF7478E6F400CE1614D
+y = 0792D0662006CA484AA33865037BB579FD98A7CECD
+
+k = 87091267516532971911250469212156927672320
+x = 049DBF57D4CFEC9B141CB7CDC177405C147BF436A1
+y = 056C13C2827701030573BB9DC074DB66A90E085D05
+
+k = 2809981007300141238972830272943674589706190848
+x = 038DEB7A7E42FB8295E9481DFE05FFBA469CD0B391
+y = 07B31564545FFF632486977C41871D18D78667ACEA
+
+k = 2854409634255779570371480294187805694377328639
+x = 0215294902A8129A363003B2AC87E1FED210EE2BFF
+y = 03FDE9AF1734A1C84F53A44169D4750B59FD5ABE41
+
+k = 5846006549323611672814742442876390689256843201567
+x = 00AED08C6DDCF8E345006BD2F6989C3F92CB508A82
+y = 02FD44F3B8F6E5D138CA9EF0B7EA5E711375724831
+
+k = 5846006549323611672814742442876390689256843201568
+x = 01A55C68CE800F55118C74751EE8F99770A65B14F6
+y = 00143159A1B6CC1C0CC69CC6B129255B94B24C4014
+
+k = 5846006549323611672814742442876390689256843201569
+x = 01F2DC4C1A649043F1622F611986E84074EBE3F692
+y = 020B000373EAB5B2EE6250306F4401C257ADA1A485
+
+k = 5846006549323611672814742442876390689256843201570
+x = 0714E4DADA0AB682D036AF06DDBA3CCAD123E5734B
+y = 015DFA5097A6C1DC5E031CB15CC84597BC330B214B
+
+k = 5846006549323611672814742442876390689256843201571
+x = 041FBD3ADBAB2C4349F5518C8BC4BD531F079DC92B
+y = 047EA309BE3CCFEA8A5E130DCFB7A09746A2CDC635
+
+k = 5846006549323611672814742442876390689256843201572
+x = 01880F725B918ABA057E6DE329ABDFEEF475AE9483
+y = 03A84E2CAF05206BCC4986826A1A5F7E4B3F809195
+
+k = 5846006549323611672814742442876390689256843201573
+x = 03566B99AE5EEEB921C9618E514A8AD50506A73F75
+y = 07F7D27AB8B1694676449475D45E3468D821ABE66E
+
+k = 5846006549323611672814742442876390689256843201574
+x = 07C565F87A02BFBAD2E0F3517F74392AC60036A5EB
+y = 0500331999BF9D5C74C34C114CC7DA7FD20900FCBE
+
+k = 5846006549323611672814742442876390689256843201575
+x = 05AA3CAE634590B66A3F18A64E47B1C9B3B509E80C
+y = 07F21FEA6242FCB87C08820563B724CA9BEF1703EA
+
+k = 5846006549323611672814742442876390689256843201576
+x = 0696E27054D49E19B15ED4240AA2F5942A06F25BB5
+y = 04855489972178974DF1F20080A27A622A95B19CC9
+
+k = 5846006549323611672814742442876390689256843201577
+x = 0507E541410F581B0D6914C2183C9313E7CAA10915
+y = 060423939F668BF4D6BB1DA3A3AB714CFCE8D58A54
+
+k = 5846006549323611672814742442876390689256843201578
+x = 04802FB7306AE7CAA87F08815BABDFEEBBA9E7A7D3
+y = 0198A816A93DDA46F6515C7B241D5A7224F35DA585
+
+k = 5846006549323611672814742442876390689256843201579
+x = 04547BD66270DF7A9601351A616FEF080D44528B03
+y = 05C778E64F13EAEAA0B172531CAD1EB399FF6F18C7
+
+k = 5846006549323611672814742442876390689256843201580
+x = 043EAAAF4BEA5A8C0A3EB105B31A0CF6ABAD87B13A
+y = 01C4726118438D7149522989C98927FD79DF0E1045
+
+k = 5846006549323611672814742442876390689256843201581
+x = 065AD02C42180EA317348FFE342FB1CF2A3E896195
+y = 060E06D566BA86A842334A656F593B72FCB6B5A8DA
+
+k = 5846006549323611672814742442876390689256843201582
+x = 07205899683630522F4C657BB52764867DA449F864
+y = 04220BE69D6B9DF2B99764B1CC271E757C911933F8
+
+k = 5846006549323611672814742442876390689256843201583
+x = 04053748C8CCD84AF888D3E7623F4FF3B75D153F39
+y = 024E3E405C57B2C979DB46DC64F2596F744CE0C29E
+
+k = 5846006549323611672814742442876390689256843201584
+x = 0634000577F86AA315009D6F9B906691F6EDD691FE
+y = 0235A3DB7A94446301E666CAFEA5E12CB331F4A140
+
+k = 5846006549323611672814742442876390689256843201585
+x = 01AEB33FED9C49E0200A0C561EA66D5AB85BD4C2D4
+y = 049ED3BE7F510E30E2462C517AD39038E493FC573C
+
+k = 5846006549323611672814742442876390689256843201586
+x = 03F0EBA16286A2D57EA0991168D4994637E8343E36
+y = 0325F41D0EF702DC310254C42D65851A3B91471AC7
+
+
+ Curve: B233
+-------------
+k = 1
+x = 00FAC9DFCBAC8313BB2139F1BB755FEF65BC391F8B36F8F8EB7371FD558B
+y = 01006A08A41903350678E58528BEBF8A0BEFF867A7CA36716F7E01F81052
+
+k = 2
+x = 00845FD61638BAC7D9E109A67A1F7047DC0FD9A5488A8468364BDC592AAD
+y = 001B1420774ABBA2587C83900984765A8A85D776325FC39CC7823D734660
+
+k = 3
+x = 0080F50A330911BD753A76364595B9F0158C4D02A85CC0E3FB6EA0AEF9FF
+y = 017A49033F12EB52675E98E6432CC27104BD5C42BCBE3DAF76901C9B8743
+
+k = 4
+x = 0063A1BAAAC9B4861CB6AAC5B38889A57A9629C7B04E7825CEB3FB4428A8
+y = 0132A03FAE14E34053D6CCEACC117BFF8EFAF5F008D32AB626CBF9012209
+
+k = 5
+x = 0194ED0CA60C85E59E7C4B69F30C6304A9F485F45032B871C4A23FFEC8C1
+y = 00A52F9459C2FAB39C214061E272E1E115E1E01A98E4F09CD5A85D2698C6
+
+k = 6
+x = 002EEDA3493C16230768A46AB073F6A5433FE5617BD4AFE57CC825D27276
+y = 00C0C4C68F81C3BD0202A4EC28FFD13E208F4271701CD96887A5806028FC
+
+k = 7
+x = 01F7D14C8236367ED87EB63873C754BD8B7EC794D966B02E26C932B29F9C
+y = 008F7C01DF764B179486CFC7B5658C1829BAF50AF0DD42E822556F72CEEA
+
+k = 8
+x = 001113FA420BBE57886A2FC590E99666864D0889BAE81DFA59EF439DD177
+y = 00FBBEE98D579FEFEA0E811284146297E14321159B46700CDF49FFD07354
+
+k = 9
+x = 015A95110DBF1D69EC0E724D01D2ACE71A521E9B327B29174E7B457E3D3D
+y = 016878BA13BC5F4AD3E2BD7F577BA81A6F2F8622CD99A4DB6773737440B7
+
+k = 10
+x = 01729FAFD85626066AF106C12194BAF099E7D8E602418BA81ADE075A2D6F
+y = 00819FCB6BCC636E67C36E5EBF48BAFDE6AC5D2997FDEA23FD573A4A0E0A
+
+k = 11
+x = 01BAB3A411AF6331F6A00C8FF0BD477D597FAD3B400F970432315955C643
+y = 0133DB88896A90825A1D2E4406BC939805C8DF75E210A1AEDB58CFD8420C
+
+k = 12
+x = 0013C872DC451063747ACCEDE848447DFCE495DE73867EF6E79F79670426
+y = 008F1DCC98B8C4F3EEC9E3C064D5CA816C994D58C250EA3A618AA543D1F5
+
+k = 13
+x = 0109164D2F7954F7B787F81801B8F54E45E094B5C3443D8EC38C04F12C5E
+y = 0166A9A8F96CBF61332A380119A0249B5652F513ECC1C0225E81C98B60A1
+
+k = 14
+x = 0096A33E366B8A983099CBB14A44726048C39E4AE1A5D99BC77A0EEADF18
+y = 006C8ACD9CC4B4304599CAAEF7F7DF596D072F73F88DB0C54BA0B22BC33E
+
+k = 15
+x = 012D3A4EC04D1665E12062DF52E95902F94B20DEBAB7DCB54E9374563493
+y = 00CD64A68A05153692511BF856A643731097057BEA8CC4A4ADFC3D6E624A
+
+k = 16
+x = 0089F30BF08A0B5C3535F4F4F6EA289515C7EA63E80162F0770CEBB2C33C
+y = 00C2C3140E26FD866B9FBCBF12F97F40B163ECE32394CB6C5FE054B03B77
+
+k = 17
+x = 00171F523C8C1F3B27BEF910A1BD799ED5A9F9ACC2DCC32C730E921256A0
+y = 01A7DFF4194648DD9F464304B1FE129F20B8EC6F4E7C0CDC047D66D34196
+
+k = 18
+x = 0142D69CBD05F9B5D408AFC974DC2A5D4BB388A0DC8BBFCE5092B2BAC7AC
+y = 0102295224C54B2F346029A002554F398E57A7721741E834203F25EB28AC
+
+k = 19
+x = 00AB5E13DDE6BB314864DFB92B35A000D226C3B57A1B219FB61DEA094864
+y = 006BCCE0C83D40828EA046BA35547595DB8D2B43D2588423DA34427641E2
+
+k = 20
+x = 00E585234F3B0284BA0837C16B6A6E3BCA7ECC5F92A58CE32E6BF652D68D
+y = 01C230115E504B216FB5759257C9B21A7D7B2743C3A812900BA73452B399
+
+k = 112233445566778899
+x = 00D8FF9B2861C3F14D6DE7671BF76F5A9D337F7D4E9D5781627FED6454B2
+y = 01B24217964482CF5052199CDC3B74713BABF38CC5D6E2F39EB2DBF44B2D
+
+k = 112233445566778899112233445566778899
+x = 00C662895E03F6C21E3E72AABDB69DCBE1750B837D3EFEEDD6C7BD495EAB
+y = 014CE29C2C56514912BA013EA43426E3286C881D695206E0ABA84B97189B
+
+k = 3558661949422509798906317152333164942344057847777634287642572963676160
+x = 01EFF84AE1FAAF5FDD8DBF7D3A3AC5E8E7E0E74F83141827DF523CDB0B76
+y = 00D2B7790F13A233202861A99DCD917A6DDC688326E23417AD2E908353DD
+
+k = 6901746141905950887442323978500829027888590046973079213348148285145087
+x = 01CB432732150FEC7DBF5BF6F4A1FF8253E8143E7A5FF199D12CD75DCD25
+y = 004FE1FAB0F9CADB1FB5627B13B3646A4B5F876ECBE95D9A72FB4E9AB767
+
+k = 6901745536893789481651945119392874544076086901468027196615880039464832
+x = 01875BECAA4CDD6DF9CDE8BFF39290E14D6DE6FE99EEFB6E5573E65672D6
+y = 008CB2F0B77EC049CC2EA2F13A3A826CE6486402C8B2C46EA5085E458EC1
+
+k = 6901746141115047990521329431718126281191923701935732818412903868661696
+x = 004A28049F7A26F71CCE4FF837F88634D74F6DC3C57D0990BC7A8046EEDF
+y = 00486D68C623B17215F7C834E6F964911B68281E124F49030EAC1426BDD2
+
+k = 6039436138923477005518920926285345539548982958859974727795426951954435
+x = 014D82B98E53FB7B06723EB1ACC5FF06EA4B9318E22455AC04AA3B5B1411
+y = 012120B361607A1B59C182D846F31939C96A7A7D8C4FF3E2C4F118235BE4
+
+k = 401538351638439033125297969147569374959194963040968487470080
+x = 0070491B062CE6129801070F462172C97F6728861FD888CD3F4106196DD9
+y = 001E7D2A033402DB043A140343B36888334A5ACD4BAFFE389F5936C4A96E
+
+k = 6901641034498895230271430552465094581031001187062116263138743302488063
+x = 00A3DAD986BD06437E22700630C7C25E568C8DC34E5E1C10A543C24BD50B
+y = 000D84CD5CD26316388D26AE5E84BE564DBE55FDAFEC55E7B4827FA0B2EF
+
+k = 105312291668557185967168602814471958975769865710678392621873758207
+x = 00C3566098C8FEA5BC0B6753698F46C71086788547EB6ACC201A5F06731D
+y = 00C727A9D46799F93A2813F1F4E01A76537D1E05AF5B7EFC296E8A285813
+
+k = 6901743068630700917194326252590429823569767924282277572924560447127551
+x = 01011E05ECBE460525FB673CFCD11BD83416C09422EC4B551F76A46FC93D
+y = 01DBA310ABB91BF9FE38B2B8BCFED269FC0EFB4EE2A8235C98B4893F2393
+
+k = 25707894677204793593731297967028170539209583336002051838574592
+x = 00B09FDBCD8C972C345BF345FA44A3707F2622855B229B0B94D227BA1D06
+y = 000D7F3D64D1B962284066B024D18477941DBB04550E139542462C75D2C9
+
+k = 6901746346790563787434755862277025555839812737345013555379383634485443
+x = 00E585234F3B0284BA0837C16B6A6E3BCA7ECC5F92A58CE32E6BF652D68D
+y = 0127B532116B49A5D5BD42533CA3DC21B705EB1C510D9E7325CCC2006514
+
+k = 6901746346790563787434755862277025555839812737345013555379383634485444
+x = 00AB5E13DDE6BB314864DFB92B35A000D226C3B57A1B219FB61DEA094864
+y = 00C092F315DBFBB3C6C499031E61D59509ABE8F6A843A5BC6C29A87F0986
+
+k = 6901746346790563787434755862277025555839812737345013555379383634485445
+x = 0142D69CBD05F9B5D408AFC974DC2A5D4BB388A0DC8BBFCE5092B2BAC7AC
+y = 0040FFCE99C0B29AE068866976896564C5E42FD2CBCA57FA70AD9751EF00
+
+k = 6901746346790563787434755862277025555839812737345013555379383634485446
+x = 00171F523C8C1F3B27BEF910A1BD799ED5A9F9ACC2DCC32C730E921256A0
+y = 01B0C0A625CA57E6B8F8BA1410436B01F51115C38CA0CFF07773F4C11736
+
+k = 6901746346790563787434755862277025555839812737345013555379383634485447
+x = 0089F30BF08A0B5C3535F4F4F6EA289515C7EA63E80162F0770CEBB2C33C
+y = 004B301FFEACF6DA5EAA484BE41357D5A4A40680CB95A99C28ECBF02F84B
+
+k = 6901746346790563787434755862277025555839812737345013555379383634485448
+x = 012D3A4EC04D1665E12062DF52E95902F94B20DEBAB7DCB54E9374563493
+y = 01E05EE84A48035373717927044F1A71E9DC25A5503B1811E36F493856D9
+
+k = 6901746346790563787434755862277025555839812737345013555379383634485449
+x = 0096A33E366B8A983099CBB14A44726048C39E4AE1A5D99BC77A0EEADF18
+y = 00FA29F3AAAF3EA87500011FBDB3AD3925C4B1391928695E8CDABCC11C26
+
+k = 6901746346790563787434755862277025555839812737345013555379383634485450
+x = 0109164D2F7954F7B787F81801B8F54E45E094B5C3443D8EC38C04F12C5E
+y = 006FBFE5D615EB9684ADC0191818D1D513B261A62F85FDAC9D0DCD7A4CFF
+
+k = 6901746346790563787434755862277025555839812737345013555379383634485451
+x = 0013C872DC451063747ACCEDE848447DFCE495DE73867EF6E79F79670426
+y = 009CD5BE44FDD4909AB32F2D8C9D8EFC907DD886B1D694CC8615DC24D5D3
+
+k = 6901746346790563787434755862277025555839812737345013555379383634485452
+x = 01BAB3A411AF6331F6A00C8FF0BD477D597FAD3B400F970432315955C643
+y = 0089682C98C5F3B3ACBD22CBF601D4E55CB7724EA21F36AAE969968D844F
+
+k = 6901746346790563787434755862277025555839812737345013555379383634485453
+x = 01729FAFD85626066AF106C12194BAF099E7D8E602418BA81ADE075A2D6F
+y = 01F30064B39A45680D32689F9EDC000D7F4B85CF95BC618BE7893D102365
+
+k = 6901746346790563787434755862277025555839812737345013555379383634485454
+x = 015A95110DBF1D69EC0E724D01D2ACE71A521E9B327B29174E7B457E3D3D
+y = 0032EDAB1E0342233FECCF3256A904FD757D98B9FFE28DCC2908360A7D8A
+
+k = 6901746346790563787434755862277025555839812737345013555379383634485455
+x = 001113FA420BBE57886A2FC590E99666864D0889BAE81DFA59EF439DD177
+y = 00EAAD13CF5C21B86264AED714FDF4F1670E299C21AE6DF686A6BC4DA223
+
+k = 6901746346790563787434755862277025555839812737345013555379383634485456
+x = 01F7D14C8236367ED87EB63873C754BD8B7EC794D966B02E26C932B29F9C
+y = 0178AD4D5D407D694CF879FFC6A2D8A5A2C4329E29BBF2C6049C5DC05176
+
+k = 6901746346790563787434755862277025555839812737345013555379383634485457
+x = 002EEDA3493C16230768A46AB073F6A5433FE5617BD4AFE57CC825D27276
+y = 00EE2965C6BDD59E056A0086988C279B63B0A7100BC8768DFB6DA5B25A8A
+
+k = 6901746346790563787434755862277025555839812737345013555379383634485458
+x = 0194ED0CA60C85E59E7C4B69F30C6304A9F485F45032B871C4A23FFEC8C1
+y = 0131C298FFCE7F56025D0B08117E82E5BC1565EEC8D648ED110A62D85007
+
+k = 6901746346790563787434755862277025555839812737345013555379383634485459
+x = 0063A1BAAAC9B4861CB6AAC5B38889A57A9629C7B04E7825CEB3FB4428A8
+y = 0151018504DD57C64F60662F7F99F25AF46CDC37B89D5293E87802450AA1
+
+k = 6901746346790563787434755862277025555839812737345013555379383634485460
+x = 0080F50A330911BD753A76364595B9F0158C4D02A85CC0E3FB6EA0AEF9FF
+y = 01FABC090C1BFAEF1264EED006B97B811131114014E2FD4C8DFEBC357EBC
+
+k = 6901746346790563787434755862277025555839812737345013555379383634485461
+x = 00845FD61638BAC7D9E109A67A1F7047DC0FD9A5488A8468364BDC592AAD
+y = 009F4BF661720165819D8A36739B061D568A0ED37AD547F4F1C9E12A6CCD
+
+k = 6901746346790563787434755862277025555839812737345013555379383634485462
+x = 00FAC9DFCBAC8313BB2139F1BB755FEF65BC391F8B36F8F8EB7371FD558B
+y = 01FAA3D76FB58026BD59DC7493CBE0656E53C1782CFCCE89840D700545D9
+
+
+ Curve: B283
+-------------
+k = 1
+x = 05F939258DB7DD90E1934F8C70B0DFEC2EED25B8557EAC9C80E2E198F8CDBECD86B12053
+y = 03676854FE24141CB98FE6D4B20D02B4516FF702350EDDB0826779C813F0DF45BE8112F4
+
+k = 2
+x = 032A728C1F40082AE632CB3814635D8BBD48627F0E88E4B3768C8C8D27BE75237D7499D5
+y = 052D072775B39FE97B97BA764BFEFF90500024077D37A2FD4620E95E89CDA072A45BE1C0
+
+k = 3
+x = 00D257A925BA8BBF1A490A06A80D8338453A9A00EED2C51A90467A4283B3A4DF9DE2BC0B
+y = 022A7592959069FBBC245BEE792106E995513D5F6837B90F291FEB732B1CBE3427C8E585
+
+k = 4
+x = 03CB18F293B4334E75B1ABAE9F52A4CF5EFD216F6DD2601D1E5FDAE28B49040C221B795F
+y = 03FF2A5FBD208F68CB1664E4B33BF462CE9954598DF0A7EE3584E14A6CF0C83AA879FC06
+
+k = 5
+x = 01953364BD3C81790A86E65FF6E875D73F3CB9FCC149B5A6BEBABB04F00B1693048A7EB7
+y = 05C852E3D437FD874DD2A7553DCF495FDE66A9EEC8DE42A991EE73909C075D0BD7AA7B8B
+
+k = 6
+x = 01C2637EC3B28939848CA7D5AF774362A3F6E4EED51DAE8AC03A035BE400899876C6D1C7
+y = 07F24D75C77A5BB392C92311F5BBB4FF9D4102D2258A9CD5A271979E6965A7F30B5AE371
+
+k = 7
+x = 0118E9555319F8D324705749751EBF36FF59CE017FC226D513D0506DAAC1BBAA1054C3AE
+y = 061D6F17AB7A75114B9640077679D259EC5EA2E2101900A4B1B037D5061126ABD80F6D48
+
+k = 8
+x = 016EB43667CAA03A1D4E0D216EEE8DC344F96DC64DA7388A6CBD67EC37A6216E519DC49A
+y = 00E97D1BF0F0B489E96FB3E621C55D3956FD8B1BB0668265D0EECC2CB17A17C1293659D7
+
+k = 9
+x = 0522E9E9F563873EE65D780ADF8594C32224F8B82D603EC4985A2827BF60C7809DF92E56
+y = 054776DCFA6F8C715AE30B70C50A782451E96B6E79D02F32A6C04E8B9F6DA59C67E77439
+
+k = 10
+x = 02370154BA926F2E6C255D3066C46044E5956EBC061E5BB9568B59BBE2A1DD26848E8123
+y = 047F96B6AB3F248FBD7A5248EB81EB962C72A7342074AD2B87008E2418F2D49B1DD7FBCF
+
+k = 11
+x = 02BAA70F624C6B40322D2BCC36555264B0CE79CF6CAD2B7B3640244FA474FBD67ABCD526
+y = 02C53C732A62984D55D73DC96813B4171C2DD4CCAA5C6874E21708DCE310996CEA0C057C
+
+k = 12
+x = 06352767C28FA14CC1610A4E0AD3181E6DD880AD622E20A2D57AD39C3F9949537FEEC21D
+y = 00203A29EEAFE8C0B414B740FFCADF97E67CA8388F5E99C078343C134B65B42A9F56BB4E
+
+k = 13
+x = 0571A1C5E8E7C03FD9EDF08AC849398269DD6CC126920A7F89482E96E599C2C1CB9CD1B0
+y = 0511ECC1FC4D757F5C2C07B8B4D8E6F369DFE1CDD7D16D56B1F994A359C4066319D7A000
+
+k = 14
+x = 02AA2E4B4DBE202B748D055CECB4F553A8014EA60DB2C81A226F3542FC9F406841A52E9B
+y = 045E0BC64AF85F3E94054FCDF085F25DD4732688F984CF45FEFA517AB24CD4F59A9A838F
+
+k = 15
+x = 032DEC6EA13A2E1E01BE27BD6799D8B609EB46B0805FFAE9D01A1CC74F61A3C310EE9AFC
+y = 0344D5DA3795D9D6DE0CACD217E114D3D945D30F8452C141AE08F8626E05E9F53F83D6FC
+
+k = 16
+x = 004E779F8C4EBCFB81CB6B66AD8097CC55FDBE4FDA1DE1818F3274A94C2E1F6F891EE4F1
+y = 026B299CA594A3D9FE9F70153585ECDE48BBD1D1A4892FD549495B91C17A6DED788444C7
+
+k = 17
+x = 0267EA0500BCFF3A206EF2ED6672CD5721DB270B91B1D61FC596E72657DD21F9AD481268
+y = 0058E72525619BDD07BF756E224D6451EDDE3FC484395FE79E6D0F11BF79F5E1590280C4
+
+k = 18
+x = 00205086EE98F746CA70D508D4B9DEBF0275D0CB68A4B5B998B8D8E9DD1E9DA3F76E2B4B
+y = 00D63203F15C6B6B6989836852029DAD3BB104B0777D9A2F34B5DF470EBB6C7A48BDAA66
+
+k = 19
+x = 03B147AAC7171AF8C595689059DC16C7AC4AA78A65C2AF0122E6764F2BBFB804862406B7
+y = 006003C0EF95B7F81920A064428FCD8DC227F7F07C3FA7AA312199AE4139A97B13321950
+
+k = 20
+x = 01B832A79FCC5DC9D133865CF37CF0C4057A6D901B468DDCB0B5CB8E1E08BCE036AB9B03
+y = 011DF51ED06859622647D22E00FBE361E33F25E994A04087F77980FED1CA7728A6DD65BE
+
+k = 112233445566778899
+x = 062654F8DCF40FEA1DEB2C08BAD1CAF9EC52071198F983F3C5234224FFF92144374CCB71
+y = 06DE87072927F58683E5ABEF87D8410D35D84D0AF972D6DB37A9AE78B250E1565CFC5E46
+
+k = 112233445566778899112233445566778899
+x = 050787A736D78B0D0328035E472B8EEDF1DCFAC9D8984D285F8DC0E58970C7E1C10BA388
+y = 0207F6D8DC78490D39ED7192A9CF520E3B8D07EE33DD6950B4E0375A809FBB26A3428B14
+
+k = 4006697157339194503342894281411734673435250926849120153284931175391665359386157514748
+x = 0427C7B017F0805B55B8136F177ED50FA3E79B776181A0240293A443C782EED3B5D8612C
+y = 02080DB91CEFD02B19F8562F4DC739EE8FC8EEFB75C9F2A1C59C02DA38EBBCCAA5C112BA
+
+k = 1897137477041188685780847749163263762493823317937072569701292427936569263076147192
+x = 051207E5D524114F27093266283F21C033A2D57B3E908734DC2D78EB23C38AA88B9AC973
+y = 02DDDCD4BA8DF8AF4591500E01541A6A9F951732B2925981C1178B1E11CD89479C7D69E9
+
+k = 7764035583722722529230891178898148230636432433813358844568148142348598093833159311358
+x = 06AC16FB52935575023BF59A012C5B1508370B76B98DACEEF0FDBBC7B22BB3343CA1F28D
+y = 020131B520A37C72627F42B8403CCAA2BB60A048084557631E64EAEC967A1CCBBA5BFACE
+
+k = 7649258878930897440581608972776484934236261044824524284888654125566359589787365539840
+x = 05A3CF48977E995E4FD16184A0879CD82FE319F76C5CCC0B138BD936F847CF6855332738
+y = 0360E835C05360A72A027D47366B10509B11B84A7CE6232FF5509C50B5D15F4C21703BED
+
+k = 59285493150399819161419024911358234107491260682045488767089861937964072610856975
+x = 005CA303BB029E142D9698FF92F68B31245BF86D7580702F37B0880023A995D53FD6C48A
+y = 0620A56110AC05DB932E140A350B3DBAC59059951A6521D70561181420311C8DCD8BF943
+
+k = 7770556997803537271920049108018211954904261475845791461076011003340461251441727635455
+x = 000C1C6EB3B70FDC41132CEDB1996517DED810BF170D194618FACB8B617EFE43A3F1EF03
+y = 03DC3B75CD1DF20E696A67E43CD4DAFFA745A447C96AE63A310441924106339F707FF3C3
+
+k = 7755498497130418398573564733681070126312906004361358653553648764252660570647949213440
+x = 0206736F807F841D0D08ECA8FC7708865967B8A769E376949AA3327495F58CE0C90E176B
+y = 05BB5A5FAD0A75F759CE0A0EF97E06BE871630B53860B172D6C006FC2B89DAE2E2F10920
+
+k = 5828065962223343887212851096157116541334667450204325651735176424594932791638008725504
+x = 04A62EDA72AC7BF389F0A672689BE6B59AF7CAD8230FF6FCD0DB5E4C5D66F6FAD0877B33
+y = 039AD76B67D3528931ACE089BC3FBEF93FAB7828E9054ECA696C07265BC590EEEC92998B
+
+k = 231577549345607610633586323584257699244475830982963489394538169576810040522752
+x = 02AC3980E5D4FF584C5E46BC740E595F2D57CEF18CB3C673281C22766B832F1D8A1C939F
+y = 074E1F85AB033BD8D480A19A15B36830DA847F5C2AA3A7A953D32C6D13A04716AA9EC83B
+
+k = 7770675453110840849851061203488010045905215474231849876581153515345956681115092647935
+x = 056C0EB667AE76A627836AFCAADFBAE14A01111D5DD2BAD21463C4EB7C936B305D0A61D9
+y = 077B5AAB22011E63FBCD8F92CBFC0C19B2166B4B2889142EBB6B1B4F58CC51C586C8692F
+
+k = 7770675568902916283677847627294075626569625924376904889109196526770044277787378692851
+x = 01B832A79FCC5DC9D133865CF37CF0C4057A6D901B468DDCB0B5CB8E1E08BCE036AB9B03
+y = 00A5C7B94FA404ABF7745472F38713A5E64548798FE6CD5B47CC4B70CFC2CBC89076FEBD
+
+k = 7770675568902916283677847627294075626569625924376904889109196526770044277787378692852
+x = 03B147AAC7171AF8C595689059DC16C7AC4AA78A65C2AF0122E6764F2BBFB804862406B7
+y = 03D1446A2882AD00DCB5C8F41B53DB4A6E6D507A19FD08AB13C7EFE16A86117F95161FE7
+
+k = 7770675568902916283677847627294075626569625924376904889109196526770044277787378692853
+x = 00205086EE98F746CA70D508D4B9DEBF0275D0CB68A4B5B998B8D8E9DD1E9DA3F76E2B4B
+y = 00F662851FC49C2DA3F9566086BB431239C4D47B1FD92F96AC0D07AED3A5F1D9BFD3812D
+
+k = 7770675568902916283677847627294075626569625924376904889109196526770044277787378692854
+x = 0267EA0500BCFF3A206EF2ED6672CD5721DB270B91B1D61FC596E72657DD21F9AD481268
+y = 023F0D2025DD64E727D18783443FA906CC0518CF158889F85BFBE837E8A4D418F44A92AC
+
+k = 7770675568902916283677847627294075626569625924376904889109196526770044277787378692855
+x = 004E779F8C4EBCFB81CB6B66AD8097CC55FDBE4FDA1DE1818F3274A94C2E1F6F891EE4F1
+y = 02255E0329DA1F227F541B7398057B121D466F9E7E94CE54C67B2F388D547282F19AA036
+
+k = 7770675568902916283677847627294075626569625924376904889109196526770044277787378692856
+x = 032DEC6EA13A2E1E01BE27BD6799D8B609EB46B0805FFAE9D01A1CC74F61A3C310EE9AFC
+y = 006939B496AFF7C8DFB28B6F7078CC65D0AE95BF040D3BA87E12E4A521644A362F6D4C00
+
+k = 7770675568902916283677847627294075626569625924376904889109196526770044277787378692857
+x = 02AA2E4B4DBE202B748D055CECB4F553A8014EA60DB2C81A226F3542FC9F406841A52E9B
+y = 06F4258D07467F15E0884A911C31070E7C72682EF436075FDC9564384ED3949DDB3FAD14
+
+k = 7770675568902916283677847627294075626569625924376904889109196526770044277787378692858
+x = 0571A1C5E8E7C03FD9EDF08AC849398269DD6CC126920A7F89482E96E599C2C1CB9CD1B0
+y = 00604D0414AAB54085C1F7327C91DF7100028D0CF143672938B1BA35BC5DC4A2D24B71B0
+
+k = 7770675568902916283677847627294075626569625924376904889109196526770044277787378692859
+x = 06352767C28FA14CC1610A4E0AD3181E6DD880AD622E20A2D57AD39C3F9949537FEEC21D
+y = 06151D4E2C20498C7575BD0EF519C7898BA42895ED70B962AD4EEF8F74FCFD79E0B87953
+
+k = 7770675568902916283677847627294075626569625924376904889109196526770044277787378692860
+x = 02BAA70F624C6B40322D2BCC36555264B0CE79CF6CAD2B7B3640244FA474FBD67ABCD526
+y = 007F9B7C482EF30D67FA16055E46E673ACE3AD03C6F1430FD4572C93476462BA90B0D05A
+
+k = 7770675568902916283677847627294075626569625924376904889109196526770044277787378692861
+x = 02370154BA926F2E6C255D3066C46044E5956EBC061E5BB9568B59BBE2A1DD26848E8123
+y = 064897E211AD4BA1D15F0F788D458BD2C9E7C988266AF692D18BD79FFA5309BD99597AEC
+
+k = 7770675568902916283677847627294075626569625924376904889109196526770044277787378692862
+x = 0522E9E9F563873EE65D780ADF8594C32224F8B82D603EC4985A2827BF60C7809DF92E56
+y = 00659F350F0C0B4FBCBE737A1A8FECE773CD93D654B011F63E9A66AC200D621CFA1E5A6F
+
+k = 7770675568902916283677847627294075626569625924376904889109196526770044277787378692863
+x = 016EB43667CAA03A1D4E0D216EEE8DC344F96DC64DA7388A6CBD67EC37A6216E519DC49A
+y = 0187C92D973A14B3F421BEC74F2BD0FA1204E6DDFDC1BAEFBC53ABC086DC36AF78AB9D4D
+
+k = 7770675568902916283677847627294075626569625924376904889109196526770044277787378692864
+x = 0118E9555319F8D324705749751EBF36FF59CE017FC226D513D0506DAAC1BBAA1054C3AE
+y = 07058642F8638DC26FE6174E03676D6F13076CE36FDB2671A26067B8ACD09D01C85BAEE6
+
+k = 7770675568902916283677847627294075626569625924376904889109196526770044277787378692865
+x = 01C2637EC3B28939848CA7D5AF774362A3F6E4EED51DAE8AC03A035BE400899876C6D1C7
+y = 06302E0B04C8D28A164584C45ACCF79D3EB7E63CF097325F624B94C58D652E6B7D9C32B6
+
+k = 7770675568902916283677847627294075626569625924376904889109196526770044277787378692866
+x = 01953364BD3C81790A86E65FF6E875D73F3CB9FCC149B5A6BEBABB04F00B1693048A7EB7
+y = 045D6187690B7CFE4754410ACB273C88E15A10120997F70F2F54C8946C0C4B98D320053C
+
+k = 7770675568902916283677847627294075626569625924376904889109196526770044277787378692867
+x = 03CB18F293B4334E75B1ABAE9F52A4CF5EFD216F6DD2601D1E5FDAE28B49040C221B795F
+y = 003432AD2E94BC26BEA7CF4A2C6950AD90647536E022C7F32BDB3BA8E7B9CC368A628559
+
+k = 7770675568902916283677847627294075626569625924376904889109196526770044277787378692868
+x = 00D257A925BA8BBF1A490A06A80D8338453A9A00EED2C51A90467A4283B3A4DF9DE2BC0B
+y = 02F8223BB02AE244A66D51E8D12C85D1D06BA75F86E57C15B9599131A8AF1AEBBA2A598E
+
+k = 7770675568902916283677847627294075626569625924376904889109196526770044277787378692869
+x = 032A728C1F40082AE632CB3814635D8BBD48627F0E88E4B3768C8C8D27BE75237D7499D5
+y = 060775AB6AF397C39DA5714E5F9DA21BED48467873BF464E30AC65D3AE73D551D92F7815
+
+k = 7770675568902916283677847627294075626569625924376904889109196526770044277787378692870
+x = 05F939258DB7DD90E1934F8C70B0DFEC2EED25B8557EAC9C80E2E198F8CDBECD86B12053
+y = 069E51717393C98C581CA958C2BDDD587F82D2BA6070712C02859850EB3D6188383032A7
+
+
+ Curve: B409
+-------------
+k = 1
+x = 015D4860D088DDB3496B0C6064756260441CDE4AF1771D4DB01FFE5B34E59703DC255A868A1180515603AEAB60794E54BB7996A7
+y = 0061B1CFAB6BE5F32BBFA78324ED106A7636B9C5A7BD198D0158AA4F5488D08F38514F1FDF4B4F40D2181B3681C364BA0273C706
+
+k = 2
+x = 001EB8E16DA624068B00C1E75B0C176E7FAD804795C9CCDA32EE3F5947F71F86638D81EB398C8E1CE4024249CDD45D1AA3876171
+y = 0105BEA9950494E2BA93939D280CCD110E82F700722DC06967E6A2ABF2876D267A60628FC0C01560D62DE46C3EB733C06A8F14B2
+
+k = 3
+x = 000D5F0E8B27D12D7A9DCEA13A5CFB9DEE62D63376E31F7666BA2AC2BF314B91420749EF549A17E5DC6815A7B044FF458C40C415
+y = 01DB5B78D491E45CC58E9E44BD7E42537597B9ABA85E2E3589F02D466ED31B816235F6D22679690002FCEF2B5390F0DE885E90BE
+
+k = 4
+x = 017F83AD07F6DCC7C2064E74FEE189D88BAE4437B159A90E449FC23AB79D43C16D1B95E9B3BB35E32450D02419ABA40B18318C17
+y = 009088328FB9A24F7D9ED1BAE65DFC4CD7558BE314A925D7046A11CD8E196D878169352C50DFF0DEAD68DD369E1BEF916EEFA36C
+
+k = 5
+x = 0004654FED823C1DD4869E734045CBE81C2B2490ECF7FDD4A5282DEB135B35340B9E607BB43552C3982B03ACE3DA8E257964A66D
+y = 00A2900F935DF4B06371EFC32572C40C3A85AABDFF94B7050E5C5223AD6A56413C2D5CE9C95832B1B68F59BA29FF878F571DAEE9
+
+k = 6
+x = 003A39CD20D0B1865197CE0C3B051C64E19631A9F4E13230E15B1CAB68B3060E26ED6AA0AA8D495C2413DD2EE60BDBE035A0CF7D
+y = 012488FE8BB58879DAE5F3F798EF2795BAF09A969AE778912ED228FD7D8830D1CE0542782937AAA34F593B2E5A7120A74F705D7B
+
+k = 7
+x = 01374FDE9C26F1DA72FE4AC3BAAE876EB15B248A9307F87C5359BFAE5CF1893AAF34B22B46903F022759FF34E6DE38A979768E5F
+y = 0187476EE32346BD72D2C3172B1C7F395B101EFB396E4BBCC3600251B18DAAE556F69929F52003FBC7117A42C03548F6E1CF4208
+
+k = 8
+x = 01BD32BC1E109875EB9E6842F4E41CE5164E7CB3813FA4EC9D8817282178BA7931B1909513DAE3FC72054BCD951BF7E0AC340CC7
+y = 00D3AA451E8CC0DAEED8CFFB6DD5A9E734017754658F4F8B59D123DC038172770A9E51106A05CD32EC0D562600A870F104104324
+
+k = 9
+x = 01C3333293FADF1B3CA15AF5D739B1FE62A5BAC5F6B082DB90D26408B4A9A3D55A6362DF0A13D809E21854C5348D5BD66CC9F20D
+y = 019CA85D72C3629DF4985C961DE9033858E3C606B9E1C53C0F2B53A09EBC7CB1E1C56BE258885EEC2B1C17456456D85F408684BE
+
+k = 10
+x = 00D232B1AFF9D349C4D3232C38503CC46112920BDCD2EC2CE9C89B97B379245F031B910F70462957128244264BCD0AF0D108BB21
+y = 017FC02E234AFFEB0D2113D3CB75255E32266FF7DEAEAB2CF045901BA36975C9DA2515CF956A06728A18E1A542871DB8340F40AA
+
+k = 11
+x = 00E64395847482748B5A831EDD0D9DAB993FEB112A0476D3DFD44DCABEC97D5599B92671F5A453F2F28E7876E7A0739FEDB90665
+y = 01E130F55A0380571E62871A719B4B7510DA97E7785A134BDDA9DAD295864CBC0E449B90D99BACF1780AAB780804FFBCEC5430AC
+
+k = 12
+x = 0118F9E535DA270B724E3C9475E80728FBC0CA7E78567426F772FE66B387E56FF98837EB8303967811E7939B5F0FAED35FA17D57
+y = 00DEDCF1E7F0D32E41DFD95B48AFD2AF5CFA4AAE7C922C1A978B2F79D767F4239806A5AA7F505244E47BC62FA30695311FC2C480
+
+k = 13
+x = 0116A5CE23B6E636B3F2166058FBA3B6D52CE189769BEA6C16099A307AE37B985293673DE0DACF7426563C3275C900134EDC65BB
+y = 01FE36623B4B46D4992A80BDB7BC2DBAF5273AAB6F5EEEB08079BCEC5BEBA103646CC579D504EB7D091F2760D0D91CF5D4CB009C
+
+k = 14
+x = 01A25B1DD787D5C0D32E43F4E511E3D6E62A9DDDBF3053CDFB5EFFC8C633818D834AEB5D3287F25C92CD3DAB6A3960FE1A994A0B
+y = 01FD2478A64C5C3A83C56312804BD15293BCAFCB4738C2A2680A0ABF2E304BFC4E9EAD51077F9E6AD0B578A397453F80F526735D
+
+k = 15
+x = 01CB32DD79FB8E1615419BFF1FA79F8CA9BB6D22AF3041FF3D1B24F52369BB5367EDB062F3BDCF6FB9431B0FD5CF97D8531D89E3
+y = 00194915A8E85889E0963078739B62D4DD7521933E37C229589D2061A107F7F7F246A18C03AE709D1CE435DDED33595B050CD985
+
+k = 16
+x = 01DE233330A9275CD4EAAA1DC60232EB9D2DAC2D2BA136F439DA6D34813A44C1BCF4730AA6646AE666696753F293D72F71E81B27
+y = 01AC8A2ECBCB17B7FB4D46E9ABF41B692F5BAAA310FC9D8D943512DD7D66A09C288EF003981007101223FFE5874962D1A488BF4D
+
+k = 17
+x = 00D3D98908A5E460E98B2E06E3F83901AB27119750AF4EAECD2554392EC52DBA4CFF28D771B8C58BF9D94E25A318A031975B51ED
+y = 00270792F2D0C591F6957E7462D57D844716783D8DE66862BCF4C1D8014809D3651F776C21CCB4C3485200918AECB3E2BD52A942
+
+k = 18
+x = 00BB3C76D93DF702567CD3410169ADC8E790E6E5513E9A2028A6B9D016213FD1898AAA3C4470E659B550A8235DB30BF95687B375
+y = 0011BD9845F356B66EF85B19E7A2ABEAC3FA960BE23F0197269040F6C00E3148BD540DEE52EE589EF2975461B1090577AEECD469
+
+k = 19
+x = 01AD4299FF100FD54F45B6FE5DBBA9AFE38C70A533BC5E6C38D498E69F8BE88841B8E78B508C694A676F523F94C8B5CC16A024A3
+y = 00A075D6F4A43615515018C73C7568918CC67E265A21C89A01DE0F8DF3D81546C1FAD87730D37E84B07581788FB912B9C34CECD7
+
+k = 20
+x = 0160EC836C3BABF524A48E92DD3B78341E3F675978C789101A1FE656C8533D2671A261A763C34242AD51E9BA25AD8403E530007B
+y = 00874BEBABDBBF69FEAF7F8CCCC9390DFDB5DEA14B55B36086898152CC0649E6C9CF8343A0551DD9698C58C19C72950DE0FEF29A
+
+k = 112233445566778899
+x = 01653E7A3C9A0068DF594CADFC75725E625A0611FE8B5D20CD3036E7522AB4CB9BA06548C0F4A047B2D21813E281D1A4EAB79775
+y = 001C16DEC11A6C78894C3D5B640B1652DD39960DC3848E7DF9308A0B0F4D0CB5FD18161A8C6C30ADDEC5B536DD78B6D5F749FE82
+
+k = 112233445566778899112233445566778899
+x = 01F4FEE008B9CC92E3E2620E660212EC000D562792D92F424A952497ACA54F4596AD990BE57B921FD1972D0ADEA0E2E59750BD8D
+y = 00192B088C6CDF8853D61AE55252385ECC5C84DAA3E5B3899D5601BEAB2FA1A06F524EF2166B36704D6DF4BC1A6CB9CAB3A58FA4
+
+k = 340852098058694223443685913328334800122213548009239021458200241058160277582635336605201369860696488190054345165582777712668
+x = 01A3E80ECC8212AA2F1A72D4CAEA8FDEF704CA66E5F757B216FD791FB39E96D693763DCD1CD9FD7B58E9125146DD753DEC2609C3
+y = 00338918172D4975AAF8DBF44499112249DB77986B5F3B911D20A773A7FA77E39D91500B5E6191EDE72AECFA214F7FD766AEFBC5
+
+k = 330527984462480500749858696972807698879792322534660716501880931231154514681281102411727819415542070720160772231667899187200
+x = 009CB2064E475AA4255EDFE2FA9C28FC7C835D907AE760E85C5FEC4C9942E0B24782A1C58456474C4651B04C6CA601859D842757
+y = 00A7927E583821224E16D11D296870FDCA88F064CDEB8967D167D03CFBE19D78AB77B2C5DE164B7BDD61DF9E5CB46F3ED38A9384
+
+k = 661055811182233060760558114931315270565948285499910728913604948249436316759152571933881271051664002768892246823601969299456
+x = 00136C4713B8E15F4FCDDF4D4263C2F384C588EAA8058CC295EB2AC753D1E5FC980D042DF8BCFAE56C1A1C5640BB68697E752EA7
+y = 0014657C97BC6BF7ADD702AB161EF76E338B1E553DF1109D75BEA53B8862803E3E6FF6C43555F5D64485CC0E82A2F0CB76BD87E9
+
+k = 9848124824282581168576223521444032715651745942136631983412404219039088589242936931984329344164443981460845877002495
+x = 01545408F5A8A5F928FC2367D9427A3E8EE2A6835A13CE7BA748994FF2B7FB89DC702DC502B3E30A1949CA59DC961479730E012F
+y = 00BB3C942AA1C098273759E3B63F88242FFEDE92CA1E9C96F99F1F6A0D4D196E9CFCE1FF305D81833BADCCA61BBF99A8F54C110A
+
+k = 10086913586276986608351544571739294570403084902407898531660086380507213803361623017381183141858728018599612953950945152
+x = 00321C5DA47F9FF824B971FC676BC8F5D58427AAFCCC5C5639B73F5E86E77BCD5FE6910BAF9850370FEA30B5D073A8A827910BA9
+y = 00EE3F7A9E00DF8F3800105D60258D7889B0630BB314D7B38AADF841B721A440010DDF8736DAF9A0C62E14D5598EB3888BFD8532
+
+k = 2462327122366641588865954442609565192323453982972635204584341326839476766120163136790911611828808243123690150100864
+x = 01CC0FB950804313DB12EC6DA9AE7EED4B67A4E8D1AEFD02EFC4EC08757B94C857769542E127C189C7A9D62852C4963B8C3D7D95
+y = 00488CB558CAF656232247DC6C77FDC51225B2F44447BAEA27DBBB163E365CEF0A3CF833F20325D83DEC278FEA88398A066C1847
+
+k = 640710742885930785676298350239571030548930032145759293806080358426382941034832651516667471974860265874548899151847253606399
+x = 0092D2B6B1B182CE11CAAD954012943B9FFC74D5054FCB7C09F70496F210C92543D593A4A526E35CDF704F9884AA3E8360FC4201
+y = 01C94A5F5F01DF1621C4EFEA6E4EAD0BAF026E99280D4413171CF61BC64BB2463490B558B6B0BE12307E85FEABDD8BAB85B6600D
+
+k = 80537710134754009256181717406251064703843282159661943483089437132405343392699382920096119401995500134444902384941138431
+x = 01741CAEC4DCC03BA602701641682AE9CFE540030DFAC49C4D50BE79925158ACDEBE26F1708E38BA0FB2288B91D77F7DBA339025
+y = 011A8048C3A957F9FCA1E97ADE605CC866DF19D81C4E7C47295EABB193BA6804D5F32B498449793B6445129C0127DC09E468AD96
+
+k = 660894893388914215505901749466264478395628661112655794576010620318625406955160868500641531501789507648565583805566905479168
+x = 007E11B9E9314DFF8B2EBB028E3C59BE5F888D7C52E8E0057F44D498E053D2DD4353EF645F884643C1ED4762507EAC203184F103
+y = 01EE8A49805A85F27698CD21A1588A2E3C2E39E42AE8DF61B8CC069AD7FBB3161AF242E4C380680EA6BED19E12BAFD7767AFD5CB
+
+k = 1291085613994301823816623782127171770656741175318840446952350041399253681237969932398948453917311285196155902941114400767
+x = 01EB416C69C9D03D6705C1B76D08A9F2893525A22B3648DA51C1841E4866A2EE52F01888E917B0870C76C26A82854DFF700F63C9
+y = 00C8A3A6DBFDCBA03F85005FC30EB1E72F71F8EE386827F55ED5098B13014C40567B7966CB377D9703D062C996D71DB39CE27ACE
+
+k = 661055968790248598951915308032771039828404682964281219284648798304157774827374805208143723762179110965979867288366567526751
+x = 0160EC836C3BABF524A48E92DD3B78341E3F675978C789101A1FE656C8533D2671A261A763C34242AD51E9BA25AD8403E530007B
+y = 01E7A768C7E0149CDA0BF11E11F24139E38AB9F833923A709C966704045574C0B86DE2E4C3965F9BC4DDB17BB9DF110E05CEF2E1
+
+k = 661055968790248598951915308032771039828404682964281219284648798304157774827374805208143723762179110965979867288366567526752
+x = 01AD4299FF100FD54F45B6FE5DBBA9AFE38C70A533BC5E6C38D498E69F8BE88841B8E78B508C694A676F523F94C8B5CC16A024A3
+y = 010D374F0BB439C01E15AE3961CEC13E6F4A0E83699D96F6390A976B6C53FDCE80423FFC605F17CED71AD3471B71A775D5ECC874
+
+k = 661055968790248598951915308032771039828404682964281219284648798304157774827374805208143723762179110965979867288366567526753
+x = 00BB3C76D93DF702567CD3410169ADC8E790E6E5513E9A2028A6B9D016213FD1898AAA3C4470E659B550A8235DB30BF95687B375
+y = 00AA81EE9CCEA1B438848858E6CB0622246A70EEB3019BB70E36F926D62F0E9934DEA7D2169EBEC747C7FC42ECBA0E8EF86B671C
+
+k = 661055968790248598951915308032771039828404682964281219284648798304157774827374805208143723762179110965979867288366567526754
+x = 00D3D98908A5E460E98B2E06E3F83901AB27119750AF4EAECD2554392EC52DBA4CFF28D771B8C58BF9D94E25A318A031975B51ED
+y = 00F4DE1BFA7521F11F1E5072812D4485EC3169AADD4926CC71D195E12F8D246929E05FBB50747148B18B4EB429F413D32A09F8AF
+
+k = 661055968790248598951915308032771039828404682964281219284648798304157774827374805208143723762179110965979867288366567526755
+x = 01DE233330A9275CD4EAAA1DC60232EB9D2DAC2D2BA136F439DA6D34813A44C1BCF4730AA6646AE666696753F293D72F71E81B27
+y = 0072A91DFB6230EB2FA7ECF46DF62982B276068E3B5DAB79ADEF7FE9FC5CE45D947A83093E746DF6744A98B675DAB5FED560A46A
+
+k = 661055968790248598951915308032771039828404682964281219284648798304157774827374805208143723762179110965979867288366567526756
+x = 01CB32DD79FB8E1615419BFF1FA79F8CA9BB6D22AF3041FF3D1B24F52369BB5367EDB062F3BDCF6FB9431B0FD5CF97D8531D89E3
+y = 01D27BC8D113D69FF5D7AB876C3CFD5874CE4CB1910783D665860494826E4CA495AB11EEF013BFF2A5A72ED238FCCE8356115066
+
+k = 661055968790248598951915308032771039828404682964281219284648798304157774827374805208143723762179110965979867288366567526757
+x = 01A25B1DD787D5C0D32E43F4E511E3D6E62A9DDDBF3053CDFB5EFFC8C633818D834AEB5D3287F25C92CD3DAB6A3960FE1A994A0B
+y = 005F7F6571CB89FA50EB20E6655A328475963216F808916F9354F577E803CA71CDD4460C35F86C3642784508FD7C5F7EEFBF3956
+
+k = 661055968790248598951915308032771039828404682964281219284648798304157774827374805208143723762179110965979867288366567526758
+x = 0116A5CE23B6E636B3F2166058FBA3B6D52CE189769BEA6C16099A307AE37B985293673DE0DACF7426563C3275C900134EDC65BB
+y = 00E893AC18FDA0E22AD896DDEF478E0C200BDB2219C504DC967026DC2108DA9B36FFA24435DE24092F491B52A5101CE69A176527
+
+k = 661055968790248598951915308032771039828404682964281219284648798304157774827374805208143723762179110965979867288366567526759
+x = 0118F9E535DA270B724E3C9475E80728FBC0CA7E78567426F772FE66B387E56FF98837EB8303967811E7939B5F0FAED35FA17D57
+y = 01C62514D22AF4253391E5CF3D47D587A73A80D004C4583C60F9D11F64E0114C618E9241FC53C43CF59C55B4FC093BE24063B9D7
+
+k = 661055968790248598951915308032771039828404682964281219284648798304157774827374805208143723762179110965979867288366567526760
+x = 00E64395847482748B5A831EDD0D9DAB993FEB112A0476D3DFD44DCABEC97D5599B92671F5A453F2F28E7876E7A0739FEDB90665
+y = 01077360DE77022395380404AC96D6DE89E57CF6525E6598027D97182B4F31E997FDBDE12C3FFF038A84D30EEFA48C2301ED36C9
+
+k = 661055968790248598951915308032771039828404682964281219284648798304157774827374805208143723762179110965979867288366567526761
+x = 00D232B1AFF9D349C4D3232C38503CC46112920BDCD2EC2CE9C89B97B379245F031B910F70462957128244264BCD0AF0D108BB21
+y = 01ADF29F8CB32CA2C9F230FFF325199A5334FDFC027C4700198D0B8C10105196D93E84C0E52C2F25989AA583094A1748E507FB8B
+
+k = 661055968790248598951915308032771039828404682964281219284648798304157774827374805208143723762179110965979867288366567526762
+x = 01C3333293FADF1B3CA15AF5D739B1FE62A5BAC5F6B082DB90D26408B4A9A3D55A6362DF0A13D809E21854C5348D5BD66CC9F20D
+y = 005F9B6FE139BD86C8390663CAD0B2C63A467CC34F5147E79FF937A82A15DF64BBA6093D529B86E5C904438050DB83892C4F76B3
+
+k = 661055968790248598951915308032771039828404682964281219284648798304157774827374805208143723762179110965979867288366567526763
+x = 01BD32BC1E109875EB9E6842F4E41CE5164E7CB3813FA4EC9D8817282178BA7931B1909513DAE3FC72054BCD951BF7E0AC340CC7
+y = 016E98F9009C58AF0546A7B99931B502224F0BE7E4B0EB67C45934F422F9C80E3B2FC18579DF2ECE9E081DEB95B38711A8244FE3
+
+k = 661055968790248598951915308032771039828404682964281219284648798304157774827374805208143723762179110965979867288366567526764
+x = 01374FDE9C26F1DA72FE4AC3BAAE876EB15B248A9307F87C5359BFAE5CF1893AAF34B22B46903F022759FF34E6DE38A979768E5F
+y = 00B008B07F05B767002C89D491B2F857EA4B3A71AA69B3C09039BDFFED7C23DFF9C22B02B3B03CF9E048857626EB705F98B9CC57
+
+k = 661055968790248598951915308032771039828404682964281219284648798304157774827374805208143723762179110965979867288366567526765
+x = 003A39CD20D0B1865197CE0C3B051C64E19631A9F4E13230E15B1CAB68B3060E26ED6AA0AA8D495C2413DD2EE60BDBE035A0CF7D
+y = 011EB133AB6539FF8B723DFBA3EA3BF15B66AB3F6E064AA1CF893456153B36DFE8E828D883BAE3FF6B4AE600BC7AFB477AD09206
+
+k = 661055968790248598951915308032771039828404682964281219284648798304157774827374805208143723762179110965979867288366567526766
+x = 0004654FED823C1DD4869E734045CBE81C2B2490ECF7FDD4A5282DEB135B35340B9E607BB43552C3982B03ACE3DA8E257964A66D
+y = 00A6F5407EDFC8ADB7F771B065370FE426AE8E2D13634AD1AB747FC8BE31637537B33C927D6D60722EA45A16CA2509AA2E790884
+
+k = 661055968790248598951915308032771039828404682964281219284648798304157774827374805208143723762179110965979867288366567526767
+x = 017F83AD07F6DCC7C2064E74FEE189D88BAE4437B159A90E449FC23AB79D43C16D1B95E9B3BB35E32450D02419ABA40B18318C17
+y = 01EF0B9F884F7E88BF989FCE18BC75945CFBCFD4A5F08CD940F5D3F739842E46EC72A0C5E364C53D89380D1287B04B9A76DE2F7B
+
+k = 661055968790248598951915308032771039828404682964281219284648798304157774827374805208143723762179110965979867288366567526768
+x = 000D5F0E8B27D12D7A9DCEA13A5CFB9DEE62D63376E31F7666BA2AC2BF314B91420749EF549A17E5DC6815A7B044FF458C40C415
+y = 01D604765FB63571BF1350E58722B9CE9BF56F98DEBD3143EF4A0784D1E250102032BF3D72E37EE5DE94FA8CE3D40F9B041E54AB
+
+k = 661055968790248598951915308032771039828404682964281219284648798304157774827374805208143723762179110965979867288366567526769
+x = 001EB8E16DA624068B00C1E75B0C176E7FAD804795C9CCDA32EE3F5947F71F86638D81EB398C8E1CE4024249CDD45D1AA3876171
+y = 011B0648F8A2B0E43193527A7300DA7F712F7747E7E40CB355089DF2B57072A019EDE364F94C9B7C322FA625F3636EDAC90875C3
+
+k = 661055968790248598951915308032771039828404682964281219284648798304157774827374805208143723762179110965979867288366567526770
+x = 015D4860D088DDB3496B0C6064756260441CDE4AF1771D4DB01FFE5B34E59703DC255A868A1180515603AEAB60794E54BB7996A7
+y = 013CF9AF7BE3384062D4ABE34098720A322A678F56CA04C0B1475414606D478CE4741599555ACF11841BB59DE1BA2AEEB90A51A1
+
+
+ Curve: B571
+-------------
+k = 1
+x = 0303001D34B856296C16C0D40D3CD7750A93D1D2955FA80AA5F40FC8DB7B2ABDBDE53950F4C0D293CDD711A35B67FB1499AE60038614F1394ABFA3B4C850D927E1E7769C8EEC2D19
+y = 037BF27342DA639B6DCCFFFEB73D69D78C6C27A6009CBBCA1980F8533921E8A684423E43BAB08A576291AF8F461BB2A8B3531D2F0485C19B16E2F1516E23DD3C1A4827AF1B8AC15B
+
+k = 2
+x = 01F8BD0B0C77369F3C5A1943C01215CAD8C7018C4AF1A588E6EFE81C0A39E0A50DB8E55BB371D956B15DBCB13AB12AF532B1FC6B7DDF0A13D12DFAA76051132B84020BEC72D2F265
+y = 044A9E41F77686550649D5D124021AA477516211625BED15762A0729A0D052C71E99CDCDDE7D245C0AB279CD4FD5B554D1F5F5E4CA912C0051DF85DE732DBC5F672C49F12215103F
+
+k = 3
+x = 072D033E612CA6DD14C28F1F6689AF9A97BBA7FD88A25BAE969DD1C91E75A9F680442DEA747EAB06E73B746911780505DAB0E03149DE396B1020FBAF55580CF4D6EB9738CE0D26F8
+y = 0494BA50070CA0FC97E89F3EA55DE5AED4D5BD139B3725618DFEB90152230AA53FA37B6E39BAAD54A77771F0DF01BFFEE82FBB0BAD45F2D5C89F704C6EBA6722B1E4433638D87DDA
+
+k = 4
+x = 01717E2A5C3EE28FE6DB3F13B087FB3E9EFBE38772FFC1F1B03E0F2BBCCC016EDE33153D46B7BA33618C056CB2F35EDA083AF75B17115E138483DC59AD83FE1077A2829E20BFFE5F
+y = 00C2A90DA370B1B8963DFE950C975806F6DE5A01E5152B4850B2FF99D1F8B0726D5D2F0BB850ABA987ACAFC99B70C581ABE9DD39E7BFA4ACFB303E76738ED001DEC5032359C3AD2C
+
+k = 5
+x = 077AAC79DC0D8891F8C383A000B6457A6E29ADB61B6AA83C32F3815F4D0173085599A42D9DD5529022EEDAA849397809B8CE613CD800E1676559AD2DAB43338E7E10C1C768C8D209
+y = 0131F402BF46187D38270BBEA69AC9673A66116E11DD7A08FBC222BF513871A7D58798FC0EA22336961C76BEB380A7299904DBFD62C1D534D232D6DF42795EFA601152D2B57C5A7E
+
+k = 6
+x = 0557287AC0922872935C3971223112A6345B8DE8C112D37061F6643DE94D758CE34552FDD6B0F21992F06E2E5DD6B3A69028D35C5C8F1C934177D64506EC14212727C6C1FA11EDDA
+y = 0295FD54014C36DA83518A23C15F00037200697B8CB38B2F81AFE4843E7954C00DD125AE7D6CCCEBE9EEFA2B2653D8999421E9969544A2A5C534CE63037D44B77C01209AB18C04A8
+
+k = 7
+x = 055323D3EE8D3D62CC94055288C2D30DA13F2E74908678C1927A607A0B03AC847B909E3612E916601E3A9B00D69E6DD5FD2CB6A7987F7CC485C277ECCBD2C2EE345B0CDE067075E8
+y = 04E1A011452C7A543B3FD3969720C6B88E92FB1F2A71A8B8BB25B959B8CBD2106C20FAF7C847A038EBBA6BA145C24A4CA0FCF4DBEABB3CE744153F64FFCC2F8894B73EFC11A2A662
+
+k = 8
+x = 00D9BAE2A98471270CD81EEC78D6C906D5DB35CDF049F56822B5910FA9B03BFBB07BFF09CCEC3831C4E4B04485FE70A460EF8E0A88F6BE4957822BF3C997F34DBA2864C6CD47E0B1
+y = 05C08664F55B7DDCE2277F251725BC76EA968EF0C4E4A8522EF920D9DCD36D68704B1C7F03DD54154FE741E1970C4CF3BCB055B4938CA787179AEADA021E2D7795F52484CF504837
+
+k = 9
+x = 02E28EB85C4DB405E6AF8722219BFC7E0DEE5F63973A8538D539B851F6DF2E141B51043BAC7D67C57A33C159C07D6310403DB2C5AB647673C41EB3A5FE84A85E2795D2D15EA19671
+y = 0639755A25DC91FFF9DD128EEB7945EA9135BA288747D302C1CF2056B2B26E22C31B345F9C83DFB68F2910D6DE27BD07F305A082ABF9B62AEDE66B7EC459AAFEA8C1817E10A4524D
+
+k = 10
+x = 02E7F80713D6620DFD571EF392E231940FDDF15DA67AD31FCE4808D4C54F955A566BFC1E8A10E481CF0EC353560A7997D1B562B518585D6DB8EC99131A9209D6126A5B6FC54BE8FD
+y = 0095B4A8879821FF2B54F9B3ED927DD3A04DB637AA5CD40C727C6EDE3030E07B1B7ACA812118BF9F377CA98A1336CDF6B83A7122BAA1BEE70AC221948FA5E54674A072AF86025952
+
+k = 11
+x = 020F60EE1C635708BDEC8F0BD8767372D145402CDC614CECEF0C3033E804E5E5A042D6DC0DD31F93078C883727B711D748FD71B6D60088192DDA285763C0B2F9B2EC2C8EC8E0476D
+y = 0050B43DDCAE16670D10B22547810642F38CCE90623CB3A9DD95EA575867C092FF77E17B4216B11CCDF4100D529951B99C6E0C8742BF376B8DCF521961C2A5819D5C579A33A8C025
+
+k = 12
+x = 0219AE0B766B17D3B310E1EB4AEBF6C135C39BBAC05C20EED04158A7B39E69CBA55CA9A3F5BD3131B208AC253D693E138941FB391022776B7C0E520AF96AA527CC503ABF2F399C86
+y = 01D2217DAD1F83C99B4C9C1AE426E1CF8A415AE10C9DFC930A0EF13AE9185CDA2DAFF3916988CF247DB6D4215B6DF23F109077D952A6FD60EA17B82095604EC9849934C6D365867A
+
+k = 13
+x = 0554EF00BC8894C9D60751D6510D6706636C252A8F4B31391AE95B8438FC927B1069C6ECA2C309DB6072A80116F2781FE03DD064DCD0F199FD43F3997B21CB74B21E094A6C3CE7EF
+y = 01199F942E4DA8CD55127D8CC18ADEC221FC53E4B94570BABD6C22696520E79A7135727DBBC4DEE1B7162ECBF261427550919E78B555867C007ED8E7001C4CA77ECCCA4E4BD38C63
+
+k = 14
+x = 02929E07DB1229E3906CE242C56A9A02208DBB4D6397BBB3CC1C3E53C311CB99BE470ED8B6191B59B5071E84C000428E7B74A456775836C3B58930B4FA20751E6266411F3BEFF3A5
+y = 0343B10B2B39A9905683ABDCF1470DCBA7F76A3F237DC89792E6EB2EFDD1549CF6973ABD69B98BFFB0D4FBB88AF7A644928BE60C2AAF2F690D5945C1792398028EE58F977A8F2BE2
+
+k = 15
+x = 038CCBEFC042385C751E02DDAD50ECC57F23FA4235F8A27CCC31C1290380B7478A7976C7395DD21035251AAB28355D665D3545CEC6739F500C739CED2E1FD87277FD5FC7E92ED19A
+y = 07C7B76EAE12A050F9C54489AD3F33E6428E5EA5D8AB627E93C805DD805F80210E9FD41B20EA2B6FABA178EA17D22FF1C3011FC57B3800D2EBC59E1DB84A841C99FD299721EA21C8
+
+k = 16
+x = 068989557C872F0F3B33EAF57E55F7D5853A2B61C368AE0B602B587B6ED600856DAD98D83FC0FE370FF6F229B3A0AA3A5FC9CE9D05EBF7F8F531071479C643F0F914226DF4A875DA
+y = 00069C79079321474FAB6BC7D302EAF60EC2DDE78023A2865F2D428BE48C8C24FCDEF0C049D2C9D6E4F67D37A00B6542813D485D3B3C04A6292513775D4F86D8A288741074D5C88A
+
+k = 17
+x = 056DB896DA3370648244B873AF7EE95003F9AEA515DD00632EF513EC3C4251428A6FD6BD6A74307060B422957DB1E7E27474E0CAD8397FAAC618EB19D6EF0DF6CA293E1DE7B539A7
+y = 05F79F9D736F7C7E6C21B05486006B51D19D05CA0BA7658AC51811165035DC074454CE7575C37B2CBAC0F27C1D6CB75818AE258DC3D0EBD99821C444BB9EA4B3CEBA3762A80E8413
+
+k = 18
+x = 03DA1431DE0ACBD3F4276109E9A4ED3A748245A14EFA7F1DA84FE917073959D8AC6FDFB5DE3F90EF77FB76E133FFCCFABF64309521C84F7529C765FCA9D02D4268219616D8BA712B
+y = 00AA944AB72CD18C65866A69D4A70431B40350B2468BFFD2E761BC74C80CF5B0E0EF646FE6E9F7A300DCC098999375ED5DB310C37355656E99A13FB9CE1446395B0DD30E2200646E
+
+k = 19
+x = 02232CDB414DF19ED46D9EB492B4ED4FAB0AB96918783D44503526598EC6786597CB824412D93B5DF55FA475AAE122AF56FEAEBBE41FD111103AACD235C7E5C055DD1CE0780067C9
+y = 041C3844CE19D15F08E745F62542D9BB31D1E8E6AD0D874CF188753CC1CE8B104BE05B9600A5F74C8B1B5C6398C9F8AB5C79FBB73118FE270FE257F4ED5408E2865E22999F372B10
+
+k = 20
+x = 040F4A06EDBF702E8F868A157D6D04C76B47CF1CD637CCA94DA858B2EE52C1FE290880CD513A93E60D16CE2E58C855F9882C259493254162D731A239ADE99FC785FB97FDFC72A4F4
+y = 04802390FDAC1D9B59EC4937F6443EF938EE44CFE96F34987CBBD822226325625A5AF3C629591F2EEB8541BAE72FCCD657F00737FBF80D82C401F8A39B915E160688CFE5AC6F3CCA
+
+k = 112233445566778899
+x = 077F5D821A238B7AF9C23B5D447E2393D28A308AA3433355B0E73BD23A3A72FAB81FE9FD5A6C8F8891DDD9A7056BB205E6DA1AE42D9713651AD1207678D64D56BF50F5D05F72E085
+y = 0200A5258D53C3A756BFEE3E8DCBEAFD7F781D7C05FCEAFFCE2117E69B4272E92636D23239BB74AEDA63E708F94C3D777E175FFE346C98AF11397F4B462A38C0164D06C438023555
+
+k = 112233445566778899112233445566778899
+x = 04BD101FF2D6F621E53D1D63F7011C53E9956D840DB2510E667890AF2B85112B6FB427B5918F5AEA4CB68F4D5AA532A89EA1CC1C22F3EC5D98226F5AABFCBDE5AC3FEBF1F621040F
+y = 02164396DAFB6B61FB6957E433782AAA75124BD4280F6458B17B3B07D109FB92EC859C6F09B75B01145F1CCE6974FD6C3CB7DA6DAE5F41402837E8EFE1DDA3E279992B4FB7B7EAD6
+
+k = 1992623597601820334275444784098161341414252502647858850477940617876196735335367504892511147225880341545498168999090021223223595237741903315110794472594029953181583356723327
+x = 04FD746F4265664E038357FA540A1517DAF2F71BB8097BDAD93CC9010F25D84C2F0FE9234D6E3AA79A60932892D3CE574A5FB4D4788071E5F21586C5357908EE4839544F1B8D2285
+y = 0728E938B6D100C3A67FE2738C41F9802692E847A1E4FEECAA7D7F21F9DB0596C85A00AEEDA069162C9D96F31B577B047E139342FDBFB93FBF2ED8ED29379A6B41DB637FE8D71ED9
+
+k = 3861235304097731366395849020295506793580025501573752466082694720823659889999449120687268962697352252653604400025856795876469657119139444635908785358460460317088877788544768
+x = 04435FC297946D031A28AAB3DA06915A6C5AE07DC1E71B58AF7167358A0629E95A95D795592514C5371A007A6AFB9CE1D87069BD181CFD1457972FA7FA781C4CA008633EABD28AA2
+y = 01FE909CB108F22AD29DC1570606B173085E1FF5710736224E6CB0024A141B9B297665D2ACC15B11E899A5EAC43DC16C71619634BDF6BAC3E7C0009F9C5CAB3AAE803992812515D7
+
+k = 29484053325707075925799971880648520225129267203907309744947579482621481989803910526623412325649301163282163977203931103437234275639190412051242172756191821780639287295
+x = 07620AEC44028C64CE94E567A147FAB0E840482EADC69E9AD2764CD396E72A141215167F82934286867A723B1D2B2AC92730276B20247EAF85CE2A77EBE6189188AC89342D13133D
+y = 072EF9C9248B5105C4F5182DA464F413408B6C7767C7633DD6858756A885E08FCCA425F84EAF579F58D42CB9CF1AD3DB39DBF1F2BEE88DC927ABE3E7C07C3732EE2F560F21FC6828
+
+k = 3856989612564136079392730580999641434043086815740351063506109991771247389759040179364506010801907655119601519159801507707836288138946973600108373332732886149272671889129479
+x = 067C4061E0450C221ECCFEB6FE02B893DB383161904059550BF241FCCFF3F75147E2BDF4A9A2D9D5CB70EB22296E8D012DE972A7776430293A5C70392B62264C4C0C5A104B21B17E
+y = 00DD71F5F2FD56B3F686019E390222A5FF45E996859B6222C50FEC153E4D21017792DA948BA4D397F43E68356611C7635BF27F12364922A7A96FE059F8734841379E2EB3861E40E6
+
+k = 115168896320404645651432041179098839414378138206812196561404436546770474625174718418325552238695410399889241880699884998980722656882424204062175554372303917066223615
+x = 0729CEFEE07A890F0F44DE052F1E777B54E9BA32125C8824B32F8E1DB97F8637B5EA4B30722F49C7F91BA7D349FC59604E782515C245EBBCF0C32D937ACFE21CBDCE73C6D6A2291C
+y = 03C737F717C113818813CA3756E13C2B437ECE0822D9B03A4152D693FCD69CEA3045E07D1156D643EFC4C47255C78E72C0F20D59538A60929C8328CDC9139875EC3724A60CD721CD
+
+k = 3864537523003199239087417163945278577471667133170388636024057769266287662208867993319214525206175292032772076860100999103054058369004034553550030668101507007173144516497376
+x = 06CFE40EBD84A2497D4DAC409C8C34EB290A26265C1FFA6B4BDDC0C66235D72D23E1804D6E8B516DAE4CD0CAF88D96593510A6870CF507868A0FF447590B76F0867691D8FCDF5E95
+y = 02FA9B7B50184638A15183FC77DA1F1D8FCDC08BDA171084142EA3DF9148878D22D30F692F9D5F53D63B16AB29D4B27C004588D32AB15AA46DA03D7B2EDE6C55DE8104A33F23C629
+
+k = 230121197121011964829492956410962317332440724987436349361278165103269765744684971897427792562867723805262067593176384089090183615361873148246784747143625214720344064
+x = 049B52AD292175C56C6DD0A2131E53745E18392249B583D477A2A224A3085C634E540C6AAE202F4A72BF07E0E77AE93C90A20FD11F9590B15D628C4A079EF216FD3111844FE9002E
+y = 028832D22775E3124716723417F51DBA494BB8958B217BD169B9C8A76AD5E3AEFA5DF4AA651A02BE35EEF27BF695E506D4808D8A4AF11560B81B004923489BB21C9EDECDE6798B5C
+
+k = 3864522781876319144444990411489928498745425588762374758896440897920023110585946263236417010936645116291777139009696600304790060614733522620138525597803759712486299307872239
+x = 01E1552C7C69C3525DA7DDBA7DB7715BB847ABC2E0AADA92600E518C17820A51B8EAA322CCE4C090C51C40DA4BCB3F4C5D277E25B1CC1E863D432DF78DFCAD1EA2A75D3745103B17
+y = 0623DD4A4920ED76A5A6615D0DD94BCFBC7196D15DA871BE597FBF99CB62A51705169C2BBA37ED077FE82A3944307AC2F8A021067B97F6CCF4AFAEFA37CE7F6AB3146BCE61BAE852
+
+k = 1815275926114215700701028333874259168175794556292427843778276145855757450023893249648446870539448899577350096228970948933440013595519109366285051171291091396578474272488967
+x = 0624C5EF23046534905D62544290F0B3E33D1624BF11EFBE11F46CA1EFCB07019389E6F7BA16CA54AD2D92B4D1C2F2CE4EC230661838D2C14418DE64540F2FB4EB95E0526EFCDA04
+y = 05751A95A70169C074B4FF7670CB2E9EF7C742474C35417D5613CE37183BB2A7E86094C91CF89B20B5E5A2C677CBB6EBF968F8770285E20FDAA6C68A9B3D9F108C642028C1EFC11E
+
+k = 1287149561276048671542980749585292895031172887885203268478243566010436807420646737938361337191803564987388184003920857755944740028427123811551562332234582015
+x = 0363C4953279AEABA18705B01A9E5254BA7099294ECC1C102DE0AF6042C2DBC1DC958764974D8D23E740E945238772FB0DAA5446F42011C1434BC81899D9BBE58BC85F7E3FB18BF5
+y = 002B9EB340C7ED992F0C23727176ABF49DF09E278EBD66BB80C0BEF98BCB741AFC0F927378CA29167F2999544EBA44E2DB769F86ABCB785B9A1BF0DF0D91D9E65419F8CB5FC8FB79
+
+k = 3864537523017258344695351890931987344298927329706434998657235251451519142289560424536143999389415773083133881121926944486246872462816813070234528288303332411393191105285683
+x = 040F4A06EDBF702E8F868A157D6D04C76B47CF1CD637CCA94DA858B2EE52C1FE290880CD513A93E60D16CE2E58C855F9882C259493254162D731A239ADE99FC785FB97FDFC72A4F4
+y = 008F699610136DB5D66AC3228B293A3E53A98BD33F58F83131138090CC31E49C7352730B78638CC8E6938F94BFE7992FDFDC22A368DD4CE013305A9A3678C1D183735818501D983E
+
+k = 3864537523017258344695351890931987344298927329706434998657235251451519142289560424536143999389415773083133881121926944486246872462816813070234528288303332411393191105285684
+x = 02232CDB414DF19ED46D9EB492B4ED4FAB0AB96918783D44503526598EC6786597CB824412D93B5DF55FA475AAE122AF56FEAEBBE41FD111103AACD235C7E5C055DD1CE0780067C9
+y = 063F149F8F5420C1DC8ADB42B7F634F49ADB518FB575BA08A1BD53654F08F375DC2BD9D2127CCC117E44F8163228DA040A87550CD5072F361FD8FB26D893ED22D3833E79E7374CD9
+
+k = 3864537523017258344695351890931987344298927329706434998657235251451519142289560424536143999389415773083133881121926944486246872462816813070234528288303332411393191105285685
+x = 03DA1431DE0ACBD3F4276109E9A4ED3A748245A14EFA7F1DA84FE917073959D8AC6FDFB5DE3F90EF77FB76E133FFCCFABF64309521C84F7529C765FCA9D02D4268219616D8BA712B
+y = 0370807B69261A5F91A10B603D03E90BC0811513087180CF4F2E5563CF35AC684C80BBDA38D6674C7727B679AA6CB917E2D72056529D2A1BB0665A4567C46B7B332C4518FABA1545
+
+k = 3864537523017258344695351890931987344298927329706434998657235251451519142289560424536143999389415773083133881121926944486246872462816813070234528288303332411393191105285686
+x = 056DB896DA3370648244B873AF7EE95003F9AEA515DD00632EF513EC3C4251428A6FD6BD6A74307060B422957DB1E7E27474E0CAD8397FAAC618EB19D6EF0DF6CA293E1DE7B539A7
+y = 009A270BA95C0C1AEE650827297E8201D264AB6F1E7A65E9EBED02FA6C778D45CE3B18C81FB74B5CDA74D0E960DD50BA6CDAC5471BE994735E392F5D6D71A9450493097F4FBBBDB4
+
+k = 3864537523017258344695351890931987344298927329706434998657235251451519142289560424536143999389415773083133881121926944486246872462816813070234528288303332411393191105285687
+x = 068989557C872F0F3B33EAF57E55F7D5853A2B61C368AE0B602B587B6ED600856DAD98D83FC0FE370FF6F229B3A0AA3A5FC9CE9D05EBF7F8F531071479C643F0F914226DF4A875DA
+y = 068F152C7B140E4874988132AD571D238BF8F686434B0C8D3F061AF08A5A8CA191736818761237E1EB008F1E13ABCF78DEF486C03ED7F35EDC1414632489C5285B9C567D807DBD50
+
+k = 3864537523017258344695351890931987344298927329706434998657235251451519142289560424536143999389415773083133881121926944486246872462816813070234528288303332411393191105285688
+x = 038CCBEFC042385C751E02DDAD50ECC57F23FA4235F8A27CCC31C1290380B7478A7976C7395DD21035251AAB28355D665D3545CEC6739F500C739CED2E1FD87277FD5FC7E92ED19A
+y = 044B7C816E50980C8CDB4654006FDF233DADA4E7ED53C0025FF9C4F483DF376684E6A2DC19B7F97F9E8462413FE772979E345A0BBD4B9F82E7B602F096555C6EEE007650C8C4F052
+
+k = 3864537523017258344695351890931987344298927329706434998657235251451519142289560424536143999389415773083133881121926944486246872462816813070234528288303332411393191105285689
+x = 02929E07DB1229E3906CE242C56A9A02208DBB4D6397BBB3CC1C3E53C311CB99BE470ED8B6191B59B5071E84C000428E7B74A456775836C3B58930B4FA20751E6266411F3BEFF3A5
+y = 01D12F0CF02B8073C6EF499E342D97C9877AD17240EA73245EFAD57D3EC09F0548D03465DFA090A605D3E53C4AF7E4CAE9FF425A5DF719AAB8D075758303ED1CEC83CE884160D847
+
+k = 3864537523017258344695351890931987344298927329706434998657235251451519142289560424536143999389415773083133881121926944486246872462816813070234528288303332411393191105285690
+x = 0554EF00BC8894C9D60751D6510D6706636C252A8F4B31391AE95B8438FC927B1069C6ECA2C309DB6072A80116F2781FE03DD064DCD0F199FD43F3997B21CB74B21E094A6C3CE7EF
+y = 044D709492C53C0483152C5A9087B9C4429076CE360E4183A78579ED5DDC75E1615CB4911907D73AD76486CAE4933A6AB0AC4E1C698577E5FD3D2B7E7B3D87D3CCD2C30427EF6B8C
+
+k = 3864537523017258344695351890931987344298927329706434998657235251451519142289560424536143999389415773083133881121926944486246872462816813070234528288303332411393191105285691
+x = 0219AE0B766B17D3B310E1EB4AEBF6C135C39BBAC05C20EED04158A7B39E69CBA55CA9A3F5BD3131B208AC253D693E138941FB391022776B7C0E520AF96AA527CC503ABF2F399C86
+y = 03CB8F76DB74941A285C7DF1AECD170EBF82C15BCCC1DC7DDA4FA99D5A86351188F35A329C35FE15CFBE78046604CC2C99D18CE042848A0B9619EA2A6C0AEBEE48C90E79FC5C1AFC
+
+k = 3864537523017258344695351890931987344298927329706434998657235251451519142289560424536143999389415773083133881121926944486246872462816813070234528288303332411393191105285692
+x = 020F60EE1C635708BDEC8F0BD8767372D145402CDC614CECEF0C3033E804E5E5A042D6DC0DD31F93078C883727B711D748FD71B6D60088192DDA285763C0B2F9B2EC2C8EC8E0476D
+y = 025FD4D3C0CD416FB0FC3D2E9FF7753022C98EBCBE5DFF453299DA64B06325775F3537A74FC5AE8FCA78983A752E406ED4937D3194BFBF72A0157A4E020217782FB07B14FB488748
+
+k = 3864537523017258344695351890931987344298927329706434998657235251451519142289560424536143999389415773083133881121926944486246872462816813070234528288303332411393191105285693
+x = 02E7F80713D6620DFD571EF392E231940FDDF15DA67AD31FCE4808D4C54F955A566BFC1E8A10E481CF0EC353560A7997D1B562B518585D6DB8EC99131A9209D6126A5B6FC54BE8FD
+y = 02724CAF944E43F2D603E7407F704C47AF90476A0C260713BC34660AF57F75214D11369FAB085B1EF8726AD9453CB461698F1397A2F9E38AB22EB8879537EC9066CA29C04349B1AF
+
+k = 3864537523017258344695351890931987344298927329706434998657235251451519142289560424536143999389415773083133881121926944486246872462816813070234528288303332411393191105285694
+x = 02E28EB85C4DB405E6AF8722219BFC7E0DEE5F63973A8538D539B851F6DF2E141B51043BAC7D67C57A33C159C07D6310403DB2C5AB647673C41EB3A5FE84A85E2795D2D15EA19671
+y = 04DBFBE2799125FA1F7295ACCAE2B9949CDBE54B107D563A14F69807446D4036D84A306430FEB873F51AD18F1E5ADE17B3381247009DC05929F8D8DB3ADD02A08F5453AF4E05C43C
+
+k = 3864537523017258344695351890931987344298927329706434998657235251451519142289560424536143999389415773083133881121926944486246872462816813070234528288303332411393191105285695
+x = 00D9BAE2A98471270CD81EEC78D6C906D5DB35CDF049F56822B5910FA9B03BFBB07BFF09CCEC3831C4E4B04485FE70A460EF8E0A88F6BE4957822BF3C997F34DBA2864C6CD47E0B1
+y = 05193C865CDF0CFBEEFF61C96FF375703F4DBB3D34AD5D3A0C4CB1D675635693C030E376CF316C248B03F1A512F23C57DC5FDBBE1B7A19CE4018C129CB89DE3A2FDD40420217A886
+
+k = 3864537523017258344695351890931987344298927329706434998657235251451519142289560424536143999389415773083133881121926944486246872462816813070234528288303332411393191105285696
+x = 055323D3EE8D3D62CC94055288C2D30DA13F2E74908678C1927A607A0B03AC847B909E3612E916601E3A9B00D69E6DD5FD2CB6A7987F7CC485C277ECCBD2C2EE345B0CDE067075E8
+y = 01B283C2ABA14736F7ABD6C41FE215B52FADD56BBAF7D079295FD923B3C87E9417B064C1DAAEB658F580F0A1935C27995DD0427C72C44023C1D74888341EED66A0EC322217D2D38A
+
+k = 3864537523017258344695351890931987344298927329706434998657235251451519142289560424536143999389415773083133881121926944486246872462816813070234528288303332411393191105285697
+x = 0557287AC0922872935C3971223112A6345B8DE8C112D37061F6643DE94D758CE34552FDD6B0F21992F06E2E5DD6B3A69028D35C5C8F1C934177D64506EC14212727C6C1FA11EDDA
+y = 07C2D52EC1DE1EA8100DB352E36E12A5465BE4934DA1585FE05980B9D734214CEE947753ABDC3EF27B1E94057B856B3F04093ACAC9CBBE3684431826059150965B26E65B4B9DE972
+
+k = 3864537523017258344695351890931987344298927329706434998657235251451519142289560424536143999389415773083133881121926944486246872462816813070234528288303332411393191105285698
+x = 077AAC79DC0D8891F8C383A000B6457A6E29ADB61B6AA83C32F3815F4D0173085599A42D9DD5529022EEDAA849397809B8CE613CD800E1676559AD2DAB43338E7E10C1C768C8D209
+y = 064B587B634B90ECC0E4881EA62C8C1D544FBCD80AB7D234C931A3E01C3902AF801E3CD1937771A6B4F2AC16FAB9DF2021CABAC1BAC13453B76B7BF2E93A6D741E019315DDB48877
+
+k = 3864537523017258344695351890931987344298927329706434998657235251451519142289560424536143999389415773083133881121926944486246872462816813070234528288303332411393191105285699
+x = 01717E2A5C3EE28FE6DB3F13B087FB3E9EFBE38772FFC1F1B03E0F2BBCCC016EDE33153D46B7BA33618C056CB2F35EDA083AF75B17115E138483DC59AD83FE1077A2829E20BFFE5F
+y = 01B3D727FF4E533770E6C186BC10A3386825B98697EAEAB9E08CF0B26D34B11CB36E3A36FEE7119AE620AAA529839B5BA3D32A62F0AEFABF7FB3E22FDE0D2E11A96781BD797C5373
+
+k = 3864537523017258344695351890931987344298927329706434998657235251451519142289560424536143999389415773083133881121926944486246872462816813070234528288303332411393191105285700
+x = 072D033E612CA6DD14C28F1F6689AF9A97BBA7FD88A25BAE969DD1C91E75A9F680442DEA747EAB06E73B746911780505DAB0E03149DE396B1020FBAF55580CF4D6EB9738CE0D26F8
+y = 03B9B96E66200621832A1021C3D44A34436E1AEE13957ECF1B6368C84C56A353BFE756844DC40652404C0599CE79BAFB329F5B3AE49BCBBED8BF8BE33BE26BD6670FD40EF6D55B22
+
+k = 3864537523017258344695351890931987344298927329706434998657235251451519142289560424536143999389415773083133881121926944486246872462816813070234528288303332411393191105285701
+x = 01F8BD0B0C77369F3C5A1943C01215CAD8C7018C4AF1A588E6EFE81C0A39E0A50DB8E55BB371D956B15DBCB13AB12AF532B1FC6B7DDF0A13D12DFAA76051132B84020BEC72D2F265
+y = 05B2234AFB01B0CA3A13CC92E4100F6EAF96639D28AA489D90C5EF35AAE9B262132128966D0CFD0ABBEFC57C75649FA1E344098FB74E261380F27F79137CAF74E32E421D50C7E25A
+
+k = 3864537523017258344695351890931987344298927329706434998657235251451519142289560424536143999389415773083133881121926944486246872462816813070234528288303332411393191105285702
+x = 0303001D34B856296C16C0D40D3CD7750A93D1D2955FA80AA5F40FC8DB7B2ABDBDE53950F4C0D293CDD711A35B67FB1499AE60038614F1394ABFA3B4C850D927E1E7769C8EEC2D19
+y = 0078F26E766235B201DA3F2ABA01BEA286FFF67495C313C0BC74F79BE25AC21B39A707134E7058C4AF46BE2C1D7C49BC2AFD7D2C829130A25C5D52E5A673041BFBAF51339566EC42
+
+
+ Curve: K163
+-------------
+k = 1
+x = 02FE13C0537BBC11ACAA07D793DE4E6D5E5C94EEE8
+y = 0289070FB05D38FF58321F2E800536D538CCDAA3D9
+
+k = 2
+x = 00CB5CA2738FE300AACFB00B42A77B828D8A5C41EB
+y = 0229C79E9AB85F90ACD3D5FA3A696664515EFEFA6B
+
+k = 3
+x = 02ACFCFCC9A2AF8E3F2828024F820033DB20F69520
+y = 05729C47F915BADC7B4C17DF14E5804109FFECDFE4
+
+k = 4
+x = 00BA8C7E6E2523EF94CBC1E56FACFEDE24F3F91578
+y = 0510F96CBC41CF3BDFA0157E9E8FEE2C605791DB0D
+
+k = 5
+x = 03799F22E9423EDFF60294E8288884A04E107B6B6C
+y = 0682C9197F934512CE56E7D77CA4CC4B30D471EAD8
+
+k = 6
+x = 0765470BC65E9AB8C40B297C983B1000BCF021426E
+y = 00A58BA7C589659F870A0CB121F76D61122D8741B6
+
+k = 7
+x = 07BE052CCAD05B617B11464326A51B7D385C6BA200
+y = 04520CE8604F8021100F0BB33B56C319DDCAFF804E
+
+k = 8
+x = 03A11E19CC4C0B15CD4C7D5A5CF2D5A8C383287DA8
+y = 0204041306C461A237C8E5D1644D0ACA7D738A1257
+
+k = 9
+x = 016576D3F87AAD87D368FBC781E06B8962B642970C
+y = 00B640E3E6603226313845E0B99B64F38BA2F52736
+
+k = 10
+x = 06CCE478962E01FAFC11E28A80B0E09F15081D3B85
+y = 065DEEB37540F2ACFFB7F2CD28703E31163FD45B16
+
+k = 11
+x = 05E9FB531D228B4A54255735DC40CA04D2F7657C5E
+y = 029F47B64659C5DCDE8B925DF6C5D7C626B4F94C5D
+
+k = 12
+x = 06577AF126F23E034E92C90B3859AF99F5A8546BB5
+y = 00AEB4378F9A4C9F3BA900EC563DF5DFBF9C37C12A
+
+k = 13
+x = 06EDCE85EA33E0710BE697577590C7D87F7698EE48
+y = 01B39439847AA85845C729FDFDD73CDD6A59D9DEC0
+
+k = 14
+x = 0515522C9915F782E104D4C6F546B82913773B34F5
+y = 0723ACCE6FE24B0701DB659E760A003758D9B5E9AB
+
+k = 15
+x = 0661A293E9DF7FA7172DD2A57A7640142A14BAABB6
+y = 02309B696493E3F7A42BA36FA4D99CB69B31071153
+
+k = 16
+x = 02E8D15536960EB926E78D9E15CE721DFAE4FE3134
+y = 055FA396B49D7BA95580F552A7613CA5F7CD41594B
+
+k = 17
+x = 068874B508754AE920DE9A7729F8947CF628A9D461
+y = 05E284A18A1ACFF4CACCE361342B99F1FF1DF8B15F
+
+k = 18
+x = 00E4DD8B305AEDB5016CE3588057F912B3C76752CA
+y = 07329CA3995F6732BD3C089BEBE2C04A206BD7509E
+
+k = 19
+x = 062975F3C3A8FCFA1FC637258E3D66ADADB190B82C
+y = 012E2AAD4E2E1119651C1965649C0607A57BC7C045
+
+k = 20
+x = 002B9D67C977D6F6119124A7C9B1689A0B1AB77358
+y = 02CC8ADDF1036CCA6415D17523AC2F22685706E125
+
+k = 112233445566778899
+x = 025E375998A309D04E13D0DEDCCB41C4092E10AA09
+y = 0294931E03634C0372A5FD6CA8B5FC8653F05F3BA9
+
+k = 112233445566778899112233445566778899
+x = 021F532838BC0DB241EA9E68049601C6876A2C051D
+y = 06E1A392C87EBE0AC9FB883919297EAAEE437A09DC
+
+k = 3014303919301082363471676974008142323349532409856
+x = 05B7FFF5A06250EBC5F615BD6B4B844DE05E0244A4
+y = 02193CA5AC7FA701F6B4A0D9E7E273C8C37615227C
+
+k = 5845660887092509954614822264108743716794242435071
+x = 03C2E7B8E45F96A866013E695BC46AC4ECB5320E83
+y = 05FCFEC52C7F1275BDA7541EDACD337CBADDDF9454
+
+k = 37218388952580046387530102177743765472
+x = 07164DEB48BFF55BFF286C2C30F17816D80B54DECB
+y = 0306EA19A4A3E0FA95670AE8C1A01EDA89FF88BB10
+
+k = 178405792776285083668453598138797165866123391
+x = 00BB951AFE8422DE591F1CE0BE37AC8B5F8CC6AE94
+y = 00A649E56DF69EF13743190C3B7173BA97500B852A
+
+k = 5846006375109673349306752832313931793753188073472
+x = 03277C00F7562E1B1C51AA5E0E53B3E7B094B8D822
+y = 04670BC9BC4BBBB7BABF80AF2D72086F5F310F8764
+
+k = 5754662784102716162046055105144722111089719902208
+x = 076006FBAA0F3EE615955E01879009C85E7CB6ED28
+y = 00EA137DD20C92494B857B4E209CDA29AC59166D16
+
+k = 11417981371511606755217326180000330384402284544
+x = 005122FC1C274735CCFC40380C49785403053D94D3
+y = 046D805F77DA6ECE61D478A60DD169F87923CD8CFB
+
+k = 87091267516532971911250469212156927672320
+x = 01C14DDAB12BC0D98BF83CE0022F305039F64FC205
+y = 006F9B20200EB3CEA80D1DB6C0FB8E6DED4A3C665C
+
+k = 2809981007300141238972830272943674589706190848
+x = 01076D1DC455E40137D38EE4F0B2DE2FD489FF24A1
+y = 031D7DAB2611818D11EFC4516E38AF88FE49F8E91E
+
+k = 2854409634255779570371480294187805694377328639
+x = 05C0DFC924AC5A547D8D8C915376F00EF03A65437D
+y = 0590175D02EAD03843AB5D2974874B4AB22D9C5FD4
+
+k = 5846006549323611672814741753598448348329118574043
+x = 002B9D67C977D6F6119124A7C9B1689A0B1AB77358
+y = 02E717BA3874BA3C7584F5D2EA1D47B8634DB1927D
+
+k = 5846006549323611672814741753598448348329118574044
+x = 062975F3C3A8FCFA1FC637258E3D66ADADB190B82C
+y = 07075F5E8D86EDE37ADA2E40EAA160AA08CA577869
+
+k = 5846006549323611672814741753598448348329118574045
+x = 00E4DD8B305AEDB5016CE3588057F912B3C76752CA
+y = 07D64128A9058A87BC50EBC36BB5395893ACB00254
+
+k = 5846006549323611672814741753598448348329118574046
+x = 068874B508754AE920DE9A7729F8947CF628A9D461
+y = 036AF014826F851DEA1279161DD30D8D093551653E
+
+k = 5846006549323611672814741753598448348329118574047
+x = 02E8D15536960EB926E78D9E15CE721DFAE4FE3134
+y = 07B772C3820B7510736778CCB2AF4EB80D29BF687F
+
+k = 5846006549323611672814741753598448348329118574048
+x = 0661A293E9DF7FA7172DD2A57A7640142A14BAABB6
+y = 045139FA8D4C9C50B30671CADEAFDCA2B125BDBAE5
+
+k = 5846006549323611672814741753598448348329118574049
+x = 0515522C9915F782E104D4C6F546B82913773B34F5
+y = 0236FEE2F6F7BC85E0DFB158834CB81E4BAE8EDD5E
+
+k = 5846006549323611672814741753598448348329118574050
+x = 06EDCE85EA33E0710BE697577590C7D87F7698EE48
+y = 075E5ABC6E4948294E21BEAA8847FB05152F413088
+
+k = 5846006549323611672814741753598448348329118574051
+x = 06577AF126F23E034E92C90B3859AF99F5A8546BB5
+y = 06F9CEC6A968729C753BC9E76E645A464A3463AA9F
+
+k = 5846006549323611672814741753598448348329118574052
+x = 05E9FB531D228B4A54255735DC40CA04D2F7657C5E
+y = 0776BCE55B7B4E968AAEC5682A851DC2F4439C3003
+
+k = 5846006549323611672814741753598448348329118574053
+x = 06CCE478962E01FAFC11E28A80B0E09F15081D3B85
+y = 00910ACBE36EF35603A61047A8C0DEAE0337C96093
+
+k = 5846006549323611672814741753598448348329118574054
+x = 016576D3F87AAD87D368FBC781E06B8962B642970C
+y = 01D336301E1A9FA1E250BE27387B0F7AE914B7B03A
+
+k = 5846006549323611672814741753598448348329118574055
+x = 03A11E19CC4C0B15CD4C7D5A5CF2D5A8C383287DA8
+y = 01A51A0ACA886AB7FA84988B38BFDF62BEF0A26FFF
+
+k = 5846006549323611672814741753598448348329118574056
+x = 07BE052CCAD05B617B11464326A51B7D385C6BA200
+y = 03EC09C4AA9FDB406B1E4DF01DF3D864E59694224E
+
+k = 5846006549323611672814741753598448348329118574057
+x = 0765470BC65E9AB8C40B297C983B1000BCF021426E
+y = 07C0CCAC03D7FF27430125CDB9CC7D61AEDDA603D8
+
+k = 5846006549323611672814741753598448348329118574058
+x = 03799F22E9423EDFF60294E8288884A04E107B6B6C
+y = 05FB563B96D17BCD3854733F542C48EB7EC40A81B4
+
+k = 5846006549323611672814741753598448348329118574059
+x = 00BA8C7E6E2523EF94CBC1E56FACFEDE24F3F91578
+y = 05AA7512D264ECD44B6BD49BF12310F244A468CE75
+
+k = 5846006549323611672814741753598448348329118574060
+x = 02ACFCFCC9A2AF8E3F2828024F820033DB20F69520
+y = 07DE60BB30B7155244643FDD5B678072D2DF1A4AC4
+
+k = 5846006549323611672814741753598448348329118574061
+x = 00CB5CA2738FE300AACFB00B42A77B828D8A5C41EB
+y = 02E29B3CE937BC90061C65F178CE1DE6DCD4A2BB80
+
+k = 5846006549323611672814741753598448348329118574062
+x = 02FE13C0537BBC11ACAA07D793DE4E6D5E5C94EEE8
+y = 007714CFE32684EEF49818F913DB78B866904E4D31
+
+
+ Curve: K233
+-------------
+k = 1
+x = 017232BA853A7E731AF129F22FF4149563A419C26BF50A4C9D6EEFAD6126
+y = 01DB537DECE819B7F70F555A67C427A8CD9BF18AEB9B56E0C11056FAE6A3
+
+k = 2
+x = 01A96A52534C02824C92539163F2ED13243FEB57B45ADBE4CF7EC61957F6
+y = 01F9D11CCD5FF37C021BB64DFF8DF25AF3EBC5C3F9BFC5CB17B2203703A8
+
+k = 3
+x = 004656E0AABBE341407715CA4A7FAC287B41BAA1F789C29BFA27E53A7A46
+y = 00F79A7245FBA513DF787A64C618E97EBCC078638EBAAA562E9862BC00CE
+
+k = 4
+x = 00C127A0AAB6AE3AE1E4206B54830E8D1DACC79AD742ED00E8FD6C9849E6
+y = 00D9599A0FD42868D6E2FFB9D526B337AA86FCB5134970782F7A901C3D83
+
+k = 5
+x = 01E6203D117FFE2C1FACB632DCB11D665F96701728B7854D4D562AEC4C81
+y = 013BF8EF521FA23771C693F0EA1FF0742D0DD725E5F5B89EE35C54D396F8
+
+k = 6
+x = 00E15AE1D3E035C8D4653CE24CB569E01A62C9CDA208CC698C4EB3F3C87A
+y = 0160F13EC3651671F230B4F0BDAAEF51BFAC70D8E28BAC49D2CB0ED2B9A8
+
+k = 7
+x = 01F6A2C4D6B9252EBC579D4082068DF31F4C2BFE28011AE0DC23C5AFEB2D
+y = 00A3410A3BB6A0AFD7741D70C26D9C0C423E43A21484A936E640EDB96E76
+
+k = 8
+x = 006951B1ED1A11EF7B9D34FE2FD37FEA9384F48B22DAEBBF13D9472B9990
+y = 0170A30301FF57869DAAB42AFE63D82A20C397C1ABBA894455A5D173F6B3
+
+k = 9
+x = 00127A261BCB46F13CF46ACB3234867AEC806BFFDBA395AD3531043C4008
+y = 0096BC73AB4DB07A8E7C05C55421403E89E0091A6D04A1DD78780FBAAF41
+
+k = 10
+x = 01B1D74DE9D09B478F809E1711B06B5EBBF1AAC472E4797E14C056F9D371
+y = 01936BD4AF0501B6CCCE5A991E7538928445923651F85826EC8F0BF4F76D
+
+k = 11
+x = 000FCB44858CDAC776F160DA456DF864773043F15FD4C451CE3D89B8AE9E
+y = 01247083BCDD8301F4468336368451C651AFAAB038F6A2CFAE21FA4044F9
+
+k = 12
+x = 018875E167A6E1733C50A126A3FB319AE6E810B72189256E11930989FF65
+y = 0056D4836F65D58F784A78CB979FE93F9DE1F65086A30E3D91AA586499BC
+
+k = 13
+x = 01DE706E8A45EA895BFFEA3898E920F39B9D96EC9897888D5CEA206057B5
+y = 01F4BF62B2C6EAFCD07F8D1C2B376DDB6C4BF0D2EED6E069C2E74804BC96
+
+k = 14
+x = 01ECE27FDEAFCE970E8DCB068E809D69A3D049E625C5B94C69737766DC1F
+y = 01FF2C99937CDCB84DC9646C02F3A29E821FEA38B273299AC0EB0DF503EB
+
+k = 15
+x = 01F21D16DEA9C7A8B52B949143DB1ADC22BADCD3D1B63998F9C5C6701CB5
+y = 0045CE28219F28504D309C13BF9FAEE3A6E9E30E4AD6D09C4697E1B15C39
+
+k = 16
+x = 0007FC2380BC305BB18B43564726E6B677FA2F77C510660D3D22C69FB71E
+y = 01BFED5822059BFF93DF5534657E3DD69675577F0CF7AFBE4155F1051EDD
+
+k = 17
+x = 01371ED41646E84929F618AD015F2C87CA734A16FA67AC223FC36414101C
+y = 01D375644CA4CA18197BB6C1F785FF572321D25074A7B2F324F89C803A60
+
+k = 18
+x = 00C036E2C561BADCE984CB2DFDDE9A105A3046A6DBFAA9705535A92ED4CB
+y = 01F292EB3C8AFBA0242DE3AA3BD0305AC142A82403A0F519EFF1DA2A8C3D
+
+k = 19
+x = 00AFC9BEC0CE6046B8E0EE79D09A6EFED497D70B952FAF8BD66B4612B261
+y = 005EBE1A3172F3E965FF168931EEE3F21EBC4DC55DCA73648B3768D8B99E
+
+k = 20
+x = 01112DBC0A613B981F29128690DD072BA01063991B08FC5706B6BAA234FA
+y = 0116E0B82E315B89C20601887EDAC58460022C7DE1663E959EBD318168F6
+
+k = 112233445566778899
+x = 008DB2F6D27ED0B39866937FE5795DCFAA398AAD7854865170086AADF6C3
+y = 0129DE55EAB34FF9E234C702FBF9C9157041B91E8990489BD32067CBDFF7
+
+k = 112233445566778899112233445566778899
+x = 01F39265FDB8D6EF6582321E8344010B94309BD455C46F3FA5B563BDD376
+y = 015E2FD633470552BCB60D4E98A0C74214C0263EBF486F46C6CBCBB4E34C
+
+k = 3558661949422509798906317152333164942344057847777634287642572963676160
+x = 010366314240212520BA041C60923662C6F367F4A32ED2C0AAA137E74008
+y = 01EAF69135F989A04C79F28BCD8243496B0520115C1FA5683CE1707CBED6
+
+k = 6901746141905950887442323978500829027888590046973079213348148285145087
+x = 01D4468AE343D141D7EBB1641548E2FEE0E7A6CED207F70511E47E2D4FBB
+y = 00456004EAA3DEF43D3A80CDDB4DCE069AB979659C3132B28377B4277402
+
+k = 6901745536893789481651945119392874544076086901468027196615880039464832
+x = 00E0732B911F7298C3E07C641A2CBA2498FDFCE695B79B7552EEBB2602A4
+y = 005942C3A960435FE37A31740C287B0F075E43BAFCB5B6CFE3B190AD0516
+
+k = 6901746141115047990521329431718126281191923701935732818412903868661696
+x = 00A643FE1B242FEEBC5D854B95940E946A014F0918A05C2193D9D7EDE983
+y = 01E25CF7D3BDD809BAD7F190760A043FEE592D31653E98DE6BDCA2D10DC8
+
+k = 6039436138923477005518920926285345539548982958859974727795426951954435
+x = 003DD85F1556D9DF88466305325F02745B4FA3E807B654DEB31519D6B0F8
+y = 004C4BA5E518A9664716E7E1119BC8A8CDD1A95F59B17FC66B57F461B471
+
+k = 401538351638439033125297969147569374959194963040968487470080
+x = 005FD169722577E768280D2C431B0A64872404BC0B5B1138274002C79552
+y = 00E6373687AA36A047134360AABD7B096B3CA5649D23BBC3B5DEED34BAAD
+
+k = 6901641034498895230271430552465094581031001187062116263138743302488063
+x = 01205DB92118A1B761C598B5D7745152918EA170CC58D3720A8D930591B7
+y = 01177C00C2C28918E1BD41A0D2BD28CA6F894702B7324AEB717CED1D524E
+
+k = 105312291668557185967168602814471958975769865710678392621873758207
+x = 00CC79976927A04CB606E78302A2AE0A67AE8DFE6D920F1A75D9FC0B75F3
+y = 01F6ADFB186FBE0306A201821762973EB554055427D9A5BF8049DA21D053
+
+k = 6901743068630700917194326252590429823569767924282277572924560447127551
+x = 013AF297944FE9394F8965ED5EE5BBCE3847560AD0E19ED2BD04974906C4
+y = 015A927A7E5EA376F9882988387506D3FF7271C4B9E16DD418DCF73002E6
+
+k = 25707894677204793593731297967028170539209583336002051838574592
+x = 01202A81324C8376CA51081CE476D5C27953BFEDB2B7F6B79DA3DD60F560
+y = 0173606D643977BBC294839A7E9A65F9E80EF5FCE807E4317A814C4C92EA
+
+k = 3450873173395281893717377931138512760570940988862252126328087024741323
+x = 01112DBC0A613B981F29128690DD072BA01063991B08FC5706B6BAA234FA
+y = 0007CD0424506011DD2F130EEE07C2AFC0124FE4FA6EC2C2980B8B235C0C
+
+k = 3450873173395281893717377931138512760570940988862252126328087024741324
+x = 00AFC9BEC0CE6046B8E0EE79D09A6EFED497D70B952FAF8BD66B4612B261
+y = 00F177A4F1BC93AFDD1FF8F0E1748D0CCA2B9ACEC8E5DCEF5D5C2ECA0BFF
+
+k = 3450873173395281893717377931138512760570940988862252126328087024741325
+x = 00C036E2C561BADCE984CB2DFDDE9A105A3046A6DBFAA9705535A92ED4CB
+y = 0132A409F9EB417CCDA92887C60EAA4A9B72EE82D85A5C69BAC4730458F6
+
+k = 3450873173395281893717377931138512760570940988862252126328087024741326
+x = 01371ED41646E84929F618AD015F2C87CA734A16FA67AC223FC36414101C
+y = 00E46BB05AE22251308DAE6CF6DAD3D0E95298468EC01ED11B3BF8942A7C
+
+k = 3450873173395281893717377931138512760570940988862252126328087024741327
+x = 0007FC2380BC305BB18B43564726E6B677FA2F77C510660D3D22C69FB71E
+y = 01B8117BA2B9ABA4225416622258DB60E18F7808C9E7C9B37C77379AA9C3
+
+k = 3450873173395281893717377931138512760570940988862252126328087024741328
+x = 01F21D16DEA9C7A8B52B949143DB1ADC22BADCD3D1B63998F9C5C6701CB5
+y = 01B7D33EFF36EFF8F81B0882FC44B43F84533FDD9B60E904BF5227C1408C
+
+k = 3450873173395281893717377931138512760570940988862252126328087024741329
+x = 01ECE27FDEAFCE970E8DCB068E809D69A3D049E625C5B94C69737766DC1F
+y = 0013CEE64DD3122F4344AF6A8C733FF721CFA3DE97B690D6A9987A93DFF4
+
+k = 3450873173395281893717377931138512760570940988862252126328087024741330
+x = 01DE706E8A45EA895BFFEA3898E920F39B9D96EC9897888D5CEA206057B5
+y = 002ACF0C388300758B806724B3DE4D28F7D6663E764168E49E0D6864EB23
+
+k = 3450873173395281893717377931138512760570940988862252126328087024741331
+x = 018875E167A6E1733C50A126A3FB319AE6E810B72189256E11930989FF65
+y = 01DEA16208C334FC441AD9ED3464D8A57B09E6E7A72A2B53803951ED66D9
+
+k = 3450873173395281893717377931138512760570940988862252126328087024741332
+x = 000FCB44858CDAC776F160DA456DF864773043F15FD4C451CE3D89B8AE9E
+y = 012BBBC7395159C682B7E3EC73E9A9A2269FE9416722669E601C73F8EA67
+
+k = 3450873173395281893717377931138512760570940988862252126328087024741333
+x = 01B1D74DE9D09B478F809E1711B06B5EBBF1AAC472E4797E14C056F9D371
+y = 0022BC9946D59AF1434EC48E0FC553CC3FB438F2231C2158F84F5D0D241C
+
+k = 3450873173395281893717377931138512760570940988862252126328087024741334
+x = 00127A261BCB46F13CF46ACB3234867AEC806BFFDBA395AD3531043C4008
+y = 0084C655B086F68BB2886F0E6615C644656062E5B6A734704D490B86EF49
+
+k = 3450873173395281893717377931138512760570940988862252126328087024741335
+x = 006951B1ED1A11EF7B9D34FE2FD37FEA9384F48B22DAEBBF13D9472B9990
+y = 0119F2B2ECE54669E63780D4D1B0A7C0B347634A896062FB467C96586F23
+
+k = 3450873173395281893717377931138512760570940988862252126328087024741336
+x = 01F6A2C4D6B9252EBC579D4082068DF31F4C2BFE28011AE0DC23C5AFEB2D
+y = 0155E3CEED0F85816B238030406B11FF5D72685C3C85B3D63A632816855B
+
+k = 3450873173395281893717377931138512760570940988862252126328087024741337
+x = 00E15AE1D3E035C8D4653CE24CB569E01A62C9CDA208CC698C4EB3F3C87A
+y = 0181ABDF108523B926558812F11F86B1A5CEB915408360205E85BD2171D2
+
+k = 3450873173395281893717377931138512760570940988862252126328087024741338
+x = 01E6203D117FFE2C1FACB632DCB11D665F96701728B7854D4D562AEC4C81
+y = 00DDD8D243605C1B6E6A25C236AEED12729BA732CD423DD3AE0A7E3FDA79
+
+k = 3450873173395281893717377931138512760570940988862252126328087024741339
+x = 00C127A0AAB6AE3AE1E4206B54830E8D1DACC79AD742ED00E8FD6C9849E6
+y = 00187E3AA56286523706DFD281A5BDBAB72A3B2FC40B9D78C787FC847465
+
+k = 3450873173395281893717377931138512760570940988862252126328087024741340
+x = 004656E0AABBE341407715CA4A7FAC287B41BAA1F789C29BFA27E53A7A46
+y = 00B1CC92EF4046529F0F6FAE8C674556C781C2C2793368CDD4BF87867A88
+
+k = 3450873173395281893717377931138512760570940988862252126328087024741341
+x = 01A96A52534C02824C92539163F2ED13243FEB57B45ADBE4CF7EC61957F6
+y = 0050BB4E9E13F1FE4E89E5DC9C7F1F49D7D42E944DE51E2FD8CCE62E545E
+
+k = 3450873173395281893717377931138512760570940988862252126328087024741342
+x = 017232BA853A7E731AF129F22FF4149563A419C26BF50A4C9D6EEFAD6126
+y = 00A961C769D267C4EDFE7CA84830333DAE3FE848806E5CAC5C7EB9578785
+
+
+ Curve: K283
+-------------
+k = 1
+x = 0503213F78CA44883F1A3B8162F188E553CD265F23C1567A16876913B0C2AC2458492836
+y = 01CCDA380F1C9E318D90F95D07E5426FE87E45C0E8184698E45962364E34116177DD2259
+
+k = 2
+x = 030AE969B9792D44BFDAE086DC6FA1039E52A459A545E78B57A1C9D749C1DC6FAEAF80CF
+y = 059D726AA1B70C5E9FFA46D6A1F912B31480BC3D8E0CAB1666497F16B970256427B2FC02
+
+k = 3
+x = 015DCCC30A8B1F5146412D51FEC337741090321408AAC521391AD36C5912E280124FE3B5
+y = 053FC9BED137312952AD97F6A98C4C7AC1B421635FBAFE28898E9213D979D5B4D279F192
+
+k = 4
+x = 03949AFAEDDDE457A6B7F17129776A4EA5C5C671594A553C5F1DFC1C2C6C5D36CC6F7B91
+y = 0286EE1883F14F990BD23310F6212E0CB2578DE1DC43C6B52729D57A5FE072317C1AFB8E
+
+k = 5
+x = 07879D57C3BD1A1A0F42683ACFC15E85022BAD17D02FF0AB922348199EC2E8F524A2B90D
+y = 0745950630769FB467205FC95653FBB4FC2487E22EE749AEB9F1B0ACB848691ABD2D7DF8
+
+k = 6
+x = 024C13AB84AD4DAA481ECE8B2C5264EB0E14E66FB919EEEE7CDF66B00A99DD7D749CD1EC
+y = 066A9E12C943F9EDD1354B283F88161927C9FA53C38183C8004E8DD69BA1DADE5DA6D837
+
+k = 7
+x = 016316C84BE2D17E2A4B035B4DFEE6EB538535B215EDF4C189B5EB2B4C72DD4D641474BE
+y = 02119B23FE3B6B8A8F32928F855B4028A3FAA8F6A81488B2B177F000F81CEFD51FA1096A
+
+k = 8
+x = 0709EA1B81C8627D967299BD1A5A4120645CE3E3104F137D55BA5BD08C89488DBA3A7635
+y = 0080F27925956E3D468C49305268509E2BAAA30CCB1FC63DB8D19396E5FFE7F3A646FDDC
+
+k = 9
+x = 018C2E3A736C15821EF55E388315456D96D0E33A42142A1272AC4C4CBC4158D78D2FF4A2
+y = 03131B758D00F0B5A682CD161B68B4F66F7BBEC3DC06930E2B8D14D7AFC9EE2836F48398
+
+k = 10
+x = 0036DB823B2876225049151ACD1AFA2B63C2254CCD6614987C66048D8BAEF3C63D5D5DF7
+y = 0392286030D0B6022C5D0C2943AB1A101629FA9F8950374D1AA6CEA058513FCA918A78C2
+
+k = 11
+x = 04C8AB19D923D855677CB0DA7D5B082D122718469F0C09416749CC2A5F1AC1F398203B03
+y = 079E758DAD4DE2D102ED15B452569F8D2D2B1C7AEEDC5BFAA810597883B9044B65A9F8F2
+
+k = 12
+x = 018F481C67C25803E87CAE136B25FF2CDFAAFAF7A43A9599A8CC74321E73BCF8BF6BBD12
+y = 072E578E4B3F8AE3AD2A8F36A3A56B244FBD8C631195FFA0A588066504A0AD074195E8C6
+
+k = 13
+x = 0532ADA51C7CEB27A034ADF695130F2266E8D5A1C0939333B6A4320E563C2BD1110BB8BF
+y = 01A4ADDB963D2BB943F3CE0754983287B3C40578800DCA0B85955C35BCD048105F37BC32
+
+k = 14
+x = 03514B5324B8367A7E8B94BEA0DE5E7A31A4DE34E45D9BC701E42D352845A86C5B7CD6F0
+y = 07AB56889FE5F25D2925DA10E6F9FF10D0C27F389B6C0FE9E5FDEEF27A6236043853643D
+
+k = 15
+x = 058EEE5D234DB4EAF633A7D4036C5A03B29A53C3100045B074B9C346DCD84E613D99FDE1
+y = 048D3971F5A91831E3940AFA95611D4AB17CC141184ECEA98EEE00B5DDDB986D5948FCC7
+
+k = 16
+x = 03534D6AC6CEAA96F2086CA8A59836AC07920F15DE658F0D4CC240952876C3C15E96D070
+y = 0420D2F8F21BECBCD67CCB4B20F9CD68DFA9428D6225ED9831F5357E82838709DC5ED1ED
+
+k = 17
+x = 005683EAA46E9D63444E253FA3683BB0180B6AF72A341A46C03EEBB52F615D5DAE242D8F
+y = 01DE56C49B8387F14F3363E44DBC5A382A78D4924E351454423718366B8B141329355BBE
+
+k = 18
+x = 0263CFB22159DC7A77286F28EB7D36776189A9E209F652C42339DFABBBC58F0071847E73
+y = 03CBBB814E8E71F0DD584C1F0641AE97E67ECCFB3B4D7AAC7E95E46398013BD3F4DAE46E
+
+k = 19
+x = 005CA7D76BB258230D85C5E2BFD6A7323DE344312E77A34C7D6143C5227DF7C6C5EC96AD
+y = 057532CBE36D2CFD98F6CB321B248E336409AC6C1B2227377FC8494A87C405A0E3023697
+
+k = 20
+x = 057E47BE7D0563398E3425AF49106A240FBD5EEC163FC750319CC6908FE57C5C22BA3862
+y = 0018A0BC6BB5E1D23CEBFF554C034C0C038A945934A10A868962D3AEF56719636B3F84FB
+
+k = 112233445566778899
+x = 02A97071496676C2FF9F345FA007C678FC9D86B423C8AB17AD9A1374936847AFE60611F4
+y = 0034DA6E836869547366E006FDDACBB27ABD7DD5C8EFA4F17CFDCF92C033DAF9D2812FCB
+
+k = 112233445566778899112233445566778899
+x = 03DBA514F6F36E810554D57421702FF39441B578B211DB49031644B356BD41A49674E4A3
+y = 0055C0FA28CBD642438FB0D2B04C773EDEA14138A41AF9E547E0D6C3283B3F5F22BD6050
+
+k = 4006697157339194503342894281411734673435250926849120153284931175391665359386157514748
+x = 01F8E1A18FA7BEA426D38CAA78CB4071E1CC6920E78D4BDC27A78908EEF9E28CC394FA4B
+y = 079760B826058C3EB6E9A858ABD05261F497863A921DAB913CE9FC5E032E2049CF8001FD
+
+k = 1897137477041188685780847749163263762493823317937072569701292427936569263076147192
+x = 054CAB0254358DCBC6578841D875F0C6CAAB6D05A9A726897D6B77984D8139A6BEB78C69
+y = 066EA5D32D0E814E48F0562E09A2AF44D25021894501F2EB25C13D42D60A5E76AF690B53
+
+k = 7764035583722722529230891178898148230636432433813358844568148142348598093833159311358
+x = 068400A20022A5BD60B1EDAFFD2BF0E44BF9F338C62BCA19EC4FCD68DA6B43F47F6B5EEC
+y = 029B90B64E6E14D6F293590513B0F476FE4A7CDF9143D7F6897FAAA1887DEAF3E9F2C5CC
+
+k = 7649258878930897440581608972776484934236261044824524284888654125566359589787365539840
+x = 078AE3D89F80FF177573EA7988587EF6E39D6F0D8A367E0A90A52C2B38A29CB2E49F2B43
+y = 00F074EEBBFA613BCA47F853ADCAEE29B924382D7FC7F177ADCA7D35B8C7F61336084FC0
+
+k = 59285493150399819161419024911358234107491260682045488767089861937964072610856975
+x = 054C2E62D2C79FF853CB9EC75D113CB064C4186BD620789F045A22633F57FA88D69D5160
+y = 05B86AC2612F9F0F06E0D5EDA9A2524F178D34194DDDFDC8EAA19BC21A1439071CDA218D
+
+k = 7770556997803537271920049108018211954904261475845791461076011003340461251441727635455
+x = 07D839C077C0028F4E517274E0437C3278D4B7D43F0091F300D6111B498D30235B037F72
+y = 05AFC66A24814D0019809B0CFC77A5EBA4D96070695D6D19A80CD5F134C2BE5673798BA0
+
+k = 7755498497130418398573564733681070126312906004361358653553648764252660570647949213440
+x = 00FE2229CD6C51C91D0D747A8F1D09CBA1E23177057CA53EECE7418C410BFF5AD9551A6C
+y = 020C2DC8F10779806BCDA219111C78B9B05AFC2E75CB86E0E2903835A1C69428F051946C
+
+k = 5828065962223343887212851096157116541334667450204325651735176424594932791638008725504
+x = 033A9967DB566008D6B9E7CE2085F07412FFF303F511A64D20F76E927EB5756FAEB0A713
+y = 054869131DF7C1BDA8A44F392907425FEFC856262BD6B6D614ED9CB886475532E0C780D5
+
+k = 231577549345607610633586323584257699244475830982963489394538169576810040522752
+x = 079F6B5B3F5CFA420DB708B99A2B84F78EDC7E46B1063E66F8C352262C082EA7D21CDE46
+y = 041D65D1CD1848E0F367A7E1E9CE76AB1BA3DEB4196BE4083273B3C8686CF1B00ADCDDCE
+
+k = 7770675453110840849851061203488010045905215474231849876581153515345956681115092647935
+x = 066E65F2E6BCBF80BB8DA5E37C3874A13211CF3BBC3C2F368A5639B5A1632C066F0717B4
+y = 0383F15EF61E964AC0ADB59A537EC783BA40F3A1E18462AE2B204629E80A5E30DB43A831
+
+k = 3885337784451458141838923813647037813284811733793061324295874997529815829704422603853
+x = 057E47BE7D0563398E3425AF49106A240FBD5EEC163FC750319CC6908FE57C5C22BA3862
+
+y = 0566E70216B082EBB2DFDAFA051326280C37CAB5229ECDD6B8FE153E7A82653F4985BC99
+
+k = 3885337784451458141838923813647037813284811733793061324295874997529815829704422603854
+x = 005CA7D76BB258230D85C5E2BFD6A7323DE344312E77A34C7D6143C5227DF7C6C5EC96AD
+y = 0529951C88DF74DE95730ED0A4F2290159EAE85D3555847B02A90A8FA5B9F26626EEA03A
+
+k = 3885337784451458141838923813647037813284811733793061324295874997529815829704422603855
+x = 0263CFB22159DC7A77286F28EB7D36776189A9E209F652C42339DFABBBC58F0071847E73
+y = 01A874336FD7AD8AAA702337ED3C98E087F7651932BB28685DAC3BC823C4B4D3855E9A1D
+
+k = 3885337784451458141838923813647037813284811733793061324295874997529815829704422603856
+x = 005683EAA46E9D63444E253FA3683BB0180B6AF72A341A46C03EEBB52F615D5DAE242D8F
+y = 0188D52E3FED1A920B7D46DBEED461883273BE6564010E128209F38344EA494E87117631
+
+k = 3885337784451458141838923813647037813284811733793061324295874997529815829704422603857
+x = 03534D6AC6CEAA96F2086CA8A59836AC07920F15DE658F0D4CC240952876C3C15E96D070
+y = 07739F9234D5462A2474A7E38561FBC4D83B4D98BC4062957D3775EBAAF544C882C8019D
+
+k = 3885337784451458141838923813647037813284811733793061324295874997529815829704422603858
+x = 058EEE5D234DB4EAF633A7D4036C5A03B29A53C3100045B074B9C346DCD84E613D99FDE1
+y = 0103D72CD6E4ACDB15A7AD2E960D474903E69282084E8B19FA57C3F30103D60C64D10126
+
+k = 3885337784451458141838923813647037813284811733793061324295874997529815829704422603859
+x = 03514B5324B8367A7E8B94BEA0DE5E7A31A4DE34E45D9BC701E42D352845A86C5B7CD6F0
+y = 04FA1DDBBB5DC42757AE4EAE4627A16AE166A10C7F31942EE419C3C752279E68632FB2CD
+
+k = 3885337784451458141838923813647037813284811733793061324295874997529815829704422603860
+x = 0532ADA51C7CEB27A034ADF695130F2266E8D5A1C0939333B6A4320E563C2BD1110BB8BF
+y = 0496007E8A41C09EE3C763F1C18B3DA5D52CD0D9409E593833316E3BEAEC63C14E3C048D
+
+k = 3885337784451458141838923813647037813284811733793061324295874997529815829704422603861
+x = 018F481C67C25803E87CAE136B25FF2CDFAAFAF7A43A9599A8CC74321E73BCF8BF6BBD12
+y = 06A11F922CFDD2E045562125C880940890177694B5AF6A390D4472571AD311FFFEFE55D4
+
+k = 3885337784451458141838923813647037813284811733793061324295874997529815829704422603862
+x = 04C8AB19D923D855677CB0DA7D5B082D122718469F0C09416749CC2A5F1AC1F398203B03
+y = 0356DE94746E3A846591A56E2F0D97A03F0C043C71D052BBCF599552DCA3C5B8FD89C3F1
+
+k = 3885337784451458141838923813647037813284811733793061324295874997529815829704422603863
+x = 0036DB823B2876225049151ACD1AFA2B63C2254CCD6614987C66048D8BAEF3C63D5D5DF7
+y = 03A4F3E20BF8C0207C1419338EB1E03B75EBDFD3443623D566C0CA2DD3FFCC0CACD72535
+
+k = 3885337784451458141838923813647037813284811733793061324295874997529815829704422603864
+x = 018C2E3A736C15821EF55E388315456D96D0E33A42142A1272AC4C4CBC4158D78D2FF4A2
+y = 029F354FFE6CE537B877932E987DF19BF9AB5DF99E12B91C5921589B1388B6FFBBDB773A
+
+k = 3885337784451458141838923813647037813284811733793061324295874997529815829704422603865
+x = 0709EA1B81C8627D967299BD1A5A4120645CE3E3104F137D55BA5BD08C89488DBA3A7635
+y = 07891862A45D0C40D0FED08D483211BE4FF640EFDB50D540ED6BC8466976AF7E1C7C8BE9
+
+k = 3885337784451458141838923813647037813284811733793061324295874997529815829704422603866
+x = 016316C84BE2D17E2A4B035B4DFEE6EB538535B215EDF4C189B5EB2B4C72DD4D641474BE
+y = 03728DEBB5D9BAF4A57991D4C8A5A6C3F07F9D44BDF97C7338C21B2BB46E32987BB57DD4
+
+k = 3885337784451458141838923813647037813284811733793061324295874997529815829704422603867
+x = 024C13AB84AD4DAA481ECE8B2C5264EB0E14E66FB919EEEE7CDF66B00A99DD7D749CD1EC
+y = 04268DB94DEEB447992B85A313DA72F229DD1C3C7A986D267C91EB66913807A3293A09DB
+
+k = 3885337784451458141838923813647037813284811733793061324295874997529815829704422603868
+x = 07879D57C3BD1A1A0F42683ACFC15E85022BAD17D02FF0AB922348199EC2E8F524A2B90D
+y = 00C20851F3CB85AE686237F39992A531FE0F2AF5FEC8B9052BD2F8B5268A81EF998FC4F5
+
+k = 3885337784451458141838923813647037813284811733793061324295874997529815829704422603869
+x = 03949AFAEDDDE457A6B7F17129776A4EA5C5C671594A553C5F1DFC1C2C6C5D36CC6F7B91
+y = 011274E26E2CABCEAD65C261DF56444217924B908509938978342966738C2F07B075801F
+
+k = 3885337784451458141838923813647037813284811733793061324295874997529815829704422603870
+x = 015DCCC30A8B1F5146412D51FEC337741090321408AAC521391AD36C5912E280124FE3B5
+y = 0462057DDBBC2E7814ECBAA7574F7B0ED124137757103B09B094417F806B3734C0361227
+
+k = 3885337784451458141838923813647037813284811733793061324295874997529815829704422603871
+x = 030AE969B9792D44BFDAE086DC6FA1039E52A459A545E78B57A1C9D749C1DC6FAEAF80CF
+y = 06979B0318CE211A2020A6507D96B3B08AD218642B494C9D31E8B6C1F0B1F90B891D7CCD
+
+k = 3885337784451458141838923813647037813284811733793061324295874997529815829704422603872
+x = 0503213F78CA44883F1A3B8162F188E553CD265F23C1567A16876913B0C2AC2458492836
+y = 04CFFB0777D6DAB9B28AC2DC6514CA8ABBB3639FCBD910E2F2DE0B25FEF6BD452F940A6F
+
+
+ Curve: K409
+-------------
+k = 1
+x = 0060F05F658F49C1AD3AB1890F7184210EFD0987E307C84C27ACCFB8F9F67CC2C460189EB5AAAA62EE222EB1B35540CFE9023746
+y = 01E369050B7C4E42ACBA1DACBF04299C3460782F918EA427E6325165E9EA10E3DA5F6C42E9C55215AA9CA27A5863EC48D8E0286B
+
+k = 2
+x = 00DFABB8A338BBB9E94BAEA1EA8FDA3B268FB10ECB0B79C69DF095960C307D9425A244E5661E92871D6E0DFD6521C91C4199F1F6
+y = 0004B7712EB49880C1F24E06D37D2727CB43F0DE154458427F51B2CDD548AB08A92AE5A75DF06E7D4ADF958BCE46CAB045FF835C
+
+k = 3
+x = 015CDEE83FC75049ADC9AC4B259A4973FC82FE6C27AD22796B0992521EEBFBAE63AACD6CC7DECD27453215A5C92A2ECA614F2FA2
+y = 00973314E9C9E2EB4CF9D70CFC9127619D5D190131A8C8638F96E859976D3B34DB7ED3651BDE3779A5D833A9D05952A7D4D06D16
+
+k = 4
+x = 0110264DEC7BB098D84B3A33205704685ADEEEB9902246DDBF5D65C1F01411BAFC4D5B4993B004302E5B4310B743445EF556B3DC
+y = 00D1DD621F4AA697C0B3139D18537E8027AF29C10EB978860E1337FE6800EAA6DDD8F03B4A623A3AEA15E1C469434AE83AF118AB
+
+k = 5
+x = 00147F228D081B0855A5EC01FEDA37A92EC82523D87156646871D5D0E7F5EA482A3347D86DA151B685CBBA54DE273F98E0AB18B2
+y = 00240F7A1C8D15EADCCC1ECB60C311E3E8530509E51D5F23A8E01DB00C2D3F1EED954F618C6D11E7D49160BBA00B8FD3B6A4103A
+
+k = 6
+x = 00E42A69B5FC9921D3F9801152B140367A40A3D2EEB7DB9AF8DC99AC08DA48BA5D4D914FDD07A80FCD4CDF586B9A9C7D2F077D68
+y = 01258FB34C814C2623DD580B755834D68A7D2ECCEDAF5D10E642346B7A5FDD14B44EE895CE2CD912C211DF49AD92C739B9F0D86E
+
+k = 7
+x = 00561576845AB818F713128A1248C312C108871456FB0744691A0E9C40E8273D286597832A7F47775F5AF3F38950559385C18CA0
+y = 01C9491C3EBCE20F99FAEDB147FD4EC31809D501EF12A20A6506DC7A449FC5EDA7EDEA999A0284175040E612987826A8D4E54A9F
+
+k = 8
+x = 002AF2A63B96390026A1231B134B6CDBD1FD35B73A23964F20071B9F3B075A1D6D8458457C26F05F6407CB32A55BC59E40520634
+y = 01F761C6836F85123D9E5A42A4407AEC923F1776D75A0E0CA84B888B149D31BF5DEC38AA399278E394E9B473DFAD0BE071388A6A
+
+k = 9
+x = 01D0A22CB2908D856092A6357E4D6D7AE1BF0729A268D5369787DCABA3A88580661413CDE71DF6E39F0C40C319A829D91F4480B0
+y = 00F9DEDEA658750557E9B733CF46A1081CE7521348E44B8EAD2899FD854C4B6122EA51473C5AEB9530BBDD3B6B7EB4CEA1FD410B
+
+k = 10
+x = 01E7723186511F85E669B9B0DCC3B95D8761BCCF3B3925DC4BEF8A2536C1DB362018642226FB2317927559CD78314FD043F84E84
+y = 00106D1D9B6C7AF42E5BD604577BE2E16995CEEDFD367F4D6C7F735BEA24D02818B52252ADA068D8116E60F846D0BBAA94EAD1C7
+
+k = 11
+x = 013D94C9C3C6773A595494C0B5D3515B42D06C17FECA2052A5EB78D6E264D2EE7AA174C3E8D9B4B1FDF20B0934CF47AEA5F44502
+y = 0000EAB63E92195036932F3799881355478D676B646FB3BB801E6426E7DFD6AD39346B2CF757A02CEBCE25932E33E2ADFF3E0AD7
+
+k = 12
+x = 018626DA37E5E0B5F20C24415B29ABA94200FDDA4CC188AEA42E0808B870D295AC9E6FD7C722C3FCCCAAA178FCABCCCA194FB6FC
+y = 01097E5EC35B213148FFA2FA60605137D76A5824DBCFF475C7BFB6B287B697E4413D0A6AC24BEC20539A81B3C3E478FA72E2C711
+
+k = 13
+x = 0079B538A232DCEC4E512BBA975578373DA53C9792AAC1BE6AD81A0628816E6BDCF02D698B23CDBF3208F8E9BB181951FCB0294C
+y = 0063DB5655808EB579577072D63F874D472EF379CF3A003DB233B97CE4CD38E4F6C9A8FD185772377418F046C0C2E68899605301
+
+k = 14
+x = 00D30C7A91F1A6CCBEC3B4498A74673725E267D9AADAB3DB3DFF399BA9099695291D755A4B264334EC829B616C524A2765915918
+y = 01EE93A589CFA2174187F8FE8395E667E77ECEFFDD5FEB9A1E2C09F3084C58A7D7CC86FFF89ABD31D4C7907B90BD72BB9A05CD30
+
+k = 15
+x = 00A371773C4D2A8741FEC5C19ED167712DCC9222974BEB4183528CCC35CFB9356C4333D493B3F1BB819408AC856E5C332897A716
+y = 01E26C437D9004544F45D0087201BB3C0213B1123EFA58864C081A48DC12B5025D0962A402AB0303F7159AFA215809778C1AC0DC
+
+k = 16
+x = 00716CAEAE64067E984CB002EC20C7642320C06F518D24A0B497C6875A84B8B17E61E82CB92037165843B83F07A36CC072CC043E
+y = 00AC360F3E5AAEB5E2DBFAD8F25B35780A8B076F1C8DCA6D6D6AAA8A0FCA9B0806572F38721A2382784B76D3AE13ED2E95163A59
+
+k = 17
+x = 0189F0F84D70A66B594199C1AFF3B4D5B47059B82ED4F205BED54BAC3D03D984FC14F8920210B0098F04DCDA927CE8AF75484CD2
+y = 00E380EFA6342257B69E59FE8EE086E7CA829C8C09901A54B8540DB05E1E8D98201A23128E11F1529FB147ED535856CABF65B7C7
+
+k = 18
+x = 018A87F20927B09566DF736D90249FCE25153E047885F7610249B3A207BFCB16E8AAFE92EF1798F3F662B7D55BCBC557748B929E
+y = 00E551373EC47CE245950F9B6E11CFA399A39F031F21A6474E58F67416ED8D2559A717AD782192B9A561F8B5351FA1055629740C
+
+k = 19
+x = 0152DD675E204D228A750F93C2F619E36EECD0A149E8745A33611CFE0CF22601CF7146D033E107E55F81F00059A52F9034851826
+y = 005D9AA1AE22A343BEC87932428A1CAB9A1C8914D4989CB65E6357E22CE26159D1C299E60579F83211CED2461D2DFCB5AECFF925
+
+k = 20
+x = 00F79BC91B04311AB1261B48A0B851E879169086407C6912257268CF00628A34C4B7F634BCD1ACE31BF156D0A78DE97FD514E55E
+y = 0068B52478AF93153175490E7C551C12199D4134E90F1286FA3C9A702CD72D0BF6662F143840C3BC1E90CC56358E45A30D42978C
+
+k = 112233445566778899
+x = 014095C1160FD3A5C72857F05D194EF5A32339344B4EEB7FEA1D121A5356A598E54C9FC05AF64586F655326B74822E78674E57B2
+y = 00533DBCFD4A670D148BD6407096B94013053EDD3B3DC80DC17821B6E49CB97185992E400FA6F112BF6A7E8A06E88F506CA68260
+
+k = 112233445566778899112233445566778899
+x = 016F4501DBF46640F21F886D03B4E6F1C58E76DD8CD700AE495661ACA269EC44A4C0431D4F95ECAEF54E06FFF8C17D76387F9F1C
+y = 016B0E3D97748527461B94D65C562310C60DDFE939A68C287AA7BDF67CA284DF6B61502BDD5C69E20E942151B12C1BDFAD3AF0F1
+
+k = 340852098058694223443685913328334800122213548009239021458200241058160277582635336605201369860696488190054345165582777712668
+x = 006C73887FA13E92EA59FD588F30F4B9B8D1B6D07A6ABC13493DAA6BCA83432164FB13A0EEE07CB1F78D58F4785AFDFD214045B4
+y = 005B6A07C373BD130CC51ABFC263EF97AE2F9B750C6760EDE5616675AA06578BB53166DDDF4B5A9F7AAC2314587EB24979626AFF
+
+k = 330527984462480500749858696972807698879792322534660716501880931231154514681281102411727819415542070720160772231667899187200
+x = 01C09427E8240BD5631E8883E0536AC1ADEEE9BAE2D6F5FC94DE4DE4CF8627C1D59899050771DA2DEDD29C9B41AFA2760001B154
+y = 019E0710D988E9B280F95531AC758D4FB329B66D5DEB26CC8D9DD2B278A47604F61376578081E256CBFDA69CE96F050453410536
+
+k = 661055811182233060760558114931315270565948285499910728913604948249436316759152571933881271051664002768892246823601969299456
+x = 000EA8CDA32914565AF08C785B895075DDC333BD3F17A3F5D91B3D6BD923DF85AB8E03F11E8C767B1113273BC35F7E02F7F60BC0
+y = 01E2F0EA8AC9D84F98FB6F46FAA7509C6F3D16CC9D9E24F390B7A6B3F7EB71069DE4114863CE29B431804119AC4B9DD4A3FFD038
+
+k = 9848124824282581168576223521444032715651745942136631983412404219039088589242936931984329344164443981460845877002495
+x = 00128D746936AD2BC08D0C941FFCC4181DB91F8CEDFACC99532D379B6B7B8D7F8545411ABD25D20ECF9448CEE969856D48B9DF28
+y = 00DCA33F5DBF50450C16557A98BF682B4DB66F5FCD244BF29DEF3EA21563B64B543B0A114559BE0024760E0894847F8FBAAEA5A9
+
+k = 10086913586276986608351544571739294570403084902407898531660086380507213803361623017381183141858728018599612953950945152
+x = 0171948D8165C3244A5C90D95A17F062A94BBE6D9867BD0F0710B37672819F1D5F105E0BA6A4ADEC643A8F7496CE475D1FB300F8
+y = 0156B0282BC30117EAAFB3F79C1A2286905A46D236FC301D2DD41C9CAE8A4669F8D1FDA7902D4CD61C141B6D84D4CC387C0E2FF6
+
+k = 2462327122366641588865954442609565192323453982972635204584341326839476766120163136790911611828808243123690150100864
+x = 009089352DC5AFB05EB464A3F56A9B982FF6A0AAC301CA40A4CE90C5BF2E4B8B8ECDFE1B170D7F09762AFEFAE5CC4343D1C79C00
+y = 01E43E03B559BFC754D04A7C3F5BEDDE4CAE3C5A076F7C9676ED9071900184542A0EF222D2712D73FB3A80F0284C6A7DE4F662EB
+
+k = 640710742885930785676298350239571030548930032145759293806080358426382941034832651516667471974860265874548899151847253606399
+x = 00A2B68AD0863746320EEF96840CBD40CF49B1420E8E455162EFA90298D3C9367EC496D687AD79050287BD286AE283488DF95D38
+y = 000EDC09DDA90860EC2ECED250BD85C89175FB55E79209B7000C093CB7F445C02D0C2FEC6099DE6BA7957995671526A490A281EB
+
+k = 80537710134754009256181717406251064703843282159661943483089437132405343392699382920096119401995500134444902384941138431
+x = 01845FDF7BACC88FE5B49775E7B6A69E97E958FAA2FDE4F34DAD1245A57FB6D684065991E3F6E4CB5B0CF0DC37C977A8B5FBD0D4
+y = 007814FF723E49FB8570AAD3F16CADFD45C42C315F17F262E3546AED50E44509A4F6B4FD3206D44C52926E1C5CF9D31775B1182F
+
+k = 660894893388914215505901749466264478395628661112655794576010620318625406955160868500641531501789507648565583805566905479168
+x = 011C20C431A3D2EE93385469AA4344448E2E3874E98BE57F0657CD9E7039BD1CF608D9508218CAA626B242A671D14C86F420223E
+y = 007338EF94D232E6D43530970F645F963B7827B4AF5265015C243D875F9325FB57687CD159ACCD193C0D70459F354D22A247DFD0
+
+k = 1291085613994301823816623782127171770656741175318840446952350041399253681237969932398948453917311285196155902941114400767
+x = 012C4BC20276CB898DDA81DB68D854696BCE99A2ADA696DD097284B429EA80CF524CDF1932C2C7CF3DE87F885A63B32866C54CE2
+y = 00FF425D0597E69DB15E96F11475F3C47E02D15F9E6F4E39B881BB9061FAB3A3CBEAD12067A5B6C544FA77F6DDE3B7AC143F9EE7
+
+k = 330527984395124299475957654016385519914202341482140609642324395022880711289249191050673258457777458014096366590617731358651
+x = 00F79BC91B04311AB1261B48A0B851E879169086407C6912257268CF00628A34C4B7F634BCD1ACE31BF156D0A78DE97FD514E55E
+y = 009F2EED63ABA20F80535246DCED4DFA608BD1B2A9737B94DF4EF2BF2CB5A73F32D1D92084916F5F05619A869203ACDCD85672D2
+
+k = 330527984395124299475957654016385519914202341482140609642324395022880711289249191050673258457777458014096366590617731358652
+x = 0152DD675E204D228A750F93C2F619E36EECD0A149E8745A33611CFE0CF22601CF7146D033E107E55F81F00059A52F9034851826
+y = 010F47C6F002EE6134BD76A1807C0548F4F059B59D70E8EC6D024B1C201047581EB3DF363698FFD74E4F22464488D3259A4AE103
+
+k = 330527984395124299475957654016385519914202341482140609642324395022880711289249191050673258457777458014096366590617731358653
+x = 018A87F20927B09566DF736D90249FCE25153E047885F7610249B3A207BFCB16E8AAFE92EF1798F3F662B7D55BCBC557748B929E
+y = 016FD6C537E3CC77234A7CF6FE35506DBCB6A10767A451264C1145D611524633B10DE93F97360A4A53034F606ED4645222A2E692
+
+k = 330527984395124299475957654016385519914202341482140609642324395022880711289249191050673258457777458014096366590617731358654
+x = 0189F0F84D70A66B594199C1AFF3B4D5B47059B82ED4F205BED54BAC3D03D984FC14F8920210B0098F04DCDA927CE8AF75484CD2
+y = 016A7017EB44843CEFDFC03F211332327EF2C5342744E8510681461C631D541CDC0EDB808C01415B10B59B37C124BE65CA2DFB15
+
+k = 330527984395124299475957654016385519914202341482140609642324395022880711289249191050673258457777458014096366590617731358655
+x = 00716CAEAE64067E984CB002EC20C7642320C06F518D24A0B497C6875A84B8B17E61E82CB92037165843B83F07A36CC072CC043E
+y = 00DD5AA1903EA8CB7A974ADA1E7BF21C29ABC7004D00EECDD9FD6C0D554E23B97836C714CB3A14942008CEECA9B081EEE7DA3E67
+
+k = 330527984395124299475957654016385519914202341482140609642324395022880711289249191050673258457777458014096366590617731358656
+x = 00A371773C4D2A8741FEC5C19ED167712DCC9222974BEB4183528CCC35CFB9356C4333D493B3F1BB819408AC856E5C332897A716
+y = 01411D3441DD2ED30EBB15C9ECD0DC4D2FDF2330A9B1B3C7CF5A9684E9DD0C37314A51709118F2B876819256A4365544A48D67CA
+
+k = 330527984395124299475957654016385519914202341482140609642324395022880711289249191050673258457777458014096366590617731358657
+x = 00D30C7A91F1A6CCBEC3B4498A74673725E267D9AADAB3DB3DFF399BA9099695291D755A4B264334EC829B616C524A2765915918
+y = 013D9FDF183E04DBFF444CB709E18150C29CA9267785584123D33068A145CE32FED1F3A5B3BCFE0538450B1AFCEF389CFF949428
+
+k = 330527984395124299475957654016385519914202341482140609642324395022880711289249191050673258457777458014096366590617731358658
+x = 0079B538A232DCEC4E512BBA975578373DA53C9792AAC1BE6AD81A0628816E6BDCF02D698B23CDBF3208F8E9BB181951FCB0294C
+y = 001A6E6EF7B2525937065BC8416AFF7A7A8BCFEE5D90C183D8EBA37ACC4C568F2A3985949374BF88461008AF7BDAFFD965D07A4D
+
+k = 330527984395124299475957654016385519914202341482140609642324395022880711289249191050673258457777458014096366590617731358659
+x = 018626DA37E5E0B5F20C24415B29ABA94200FDDA4CC188AEA42E0808B870D295AC9E6FD7C722C3FCCCAAA178FCABCCCA194FB6FC
+y = 008F5884F4BEC184BAF386BB3B49FA9E956AA5FE970E7CDB6391BEBA3FC64571EDA365BD05692FDC9F3020CB3F4FB4306BAD71ED
+
+k = 330527984395124299475957654016385519914202341482140609642324395022880711289249191050673258457777458014096366590617731358660
+x = 013D94C9C3C6773A595494C0B5D3515B42D06C17FECA2052A5EB78D6E264D2EE7AA174C3E8D9B4B1FDF20B0934CF47AEA5F44502
+y = 013D7E7FFD546E6A6FC7BBF72C5B420E055D0B7C9AA593E925F51CF005BB044343951FEF1F8E149D163C2E9A1AFCA5035ACA4FD5
+
+k = 330527984395124299475957654016385519914202341482140609642324395022880711289249191050673258457777458014096366590617731358661
+x = 01E7723186511F85E669B9B0DCC3B95D8761BCCF3B3925DC4BEF8A2536C1DB362018642226FB2317927559CD78314FD043F84E84
+y = 01F71F2C1D3D6571C8326FB48BB85BBCEEF47222C60F5A912790F97EDCE50B1E38AD46708B5B4BCF831B39353EE1F47AD7129F43
+
+k = 330527984395124299475957654016385519914202341482140609642324395022880711289249191050673258457777458014096366590617731358662
+x = 01D0A22CB2908D856092A6357E4D6D7AE1BF0729A268D5369787DCABA3A88580661413CDE71DF6E39F0C40C319A829D91F4480B0
+y = 01297CF214C8F880377B1106B10BCC72FD58553AEA8C9EB83AAF455626E4CEE144FE428ADB471D76AFB79DF872D69D17BEB9C1BB
+
+k = 330527984395124299475957654016385519914202341482140609642324395022880711289249191050673258457777458014096366590617731358663
+x = 002AF2A63B96390026A1231B134B6CDBD1FD35B73A23964F20071B9F3B075A1D6D8458457C26F05F6407CB32A55BC59E40520634
+y = 01DD9360B8F9BC121B3F7959B70B163743C222C1ED799843884C93142F9A6BA2306860EF45B488BCF0EE7F417AF6CE7E316A8C5E
+
+k = 330527984395124299475957654016385519914202341482140609642324395022880711289249191050673258457777458014096366590617731358664
+x = 00561576845AB818F713128A1248C312C108871456FB0744691A0E9C40E8273D286597832A7F47775F5AF3F38950559385C18CA0
+y = 019F5C6ABAE65A176EE9FF3B55B58DD1D9015215B9E9A54E0C1CD2E60477E2D08F887D1AB07DC3600F1A15E11128733B5124C63F
+
+k = 330527984395124299475957654016385519914202341482140609642324395022880711289249191050673258457777458014096366590617731358665
+x = 00E42A69B5FC9921D3F9801152B140367A40A3D2EEB7DB9AF8DC99AC08DA48BA5D4D914FDD07A80FCD4CDF586B9A9C7D2F077D68
+y = 01C1A5DAF97DD507F024D81A27E974E0F03D8D1E0318868A1E9EADC7728595AEE90379DA132B711D0F5D0011C6085B4496F7A506
+
+k = 330527984395124299475957654016385519914202341482140609642324395022880711289249191050673258457777458014096366590617731358666
+x = 00147F228D081B0855A5EC01FEDA37A92EC82523D87156646871D5D0E7F5EA482A3347D86DA151B685CBBA54DE273F98E0AB18B2
+y = 0030705891850EE28969F2CA9E19264AC69B202A3D6C0947C091C860EBD8D556C7A608B9E1CC4051515ADAEF7E2CB04B560F0888
+
+k = 330527984395124299475957654016385519914202341482140609642324395022880711289249191050673258457777458014096366590617731358667
+x = 0110264DEC7BB098D84B3A33205704685ADEEEB9902246DDBF5D65C1F01411BAFC4D5B4993B004302E5B4310B743445EF556B3DC
+y = 01C1FB2FF331160F18F829AE38047AE87D71C7789E9B3E5BB14E523F9814FB1C2195AB72D9D23E0AC44EA2D4DE000EB6CFA7AB77
+
+k = 330527984395124299475957654016385519914202341482140609642324395022880711289249191050673258457777458014096366590617731358668
+x = 015CDEE83FC75049ADC9AC4B259A4973FC82FE6C27AD22796B0992521EEBFBAE63AACD6CC7DECD27453215A5C92A2ECA614F2FA2
+y = 01CBEDFCD60EB2A2E1307B47D90B6E1261DFE76D1605EA1AE49F7A0B8986C09AB8D41E09DC00FA5EE0EA260C19737C6DB59F42B4
+
+k = 330527984395124299475957654016385519914202341482140609642324395022880711289249191050673258457777458014096366590617731358669
+x = 00DFABB8A338BBB9E94BAEA1EA8FDA3B268FB10ECB0B79C69DF095960C307D9425A244E5661E92871D6E0DFD6521C91C4199F1F6
+y = 00DB1CC98D8C233928B9E0A739F2FD1CEDCC41D0DE4F2184E2A1275BD978D69C8C88A1423BEEFCFA57B19876AB6703AC046672AA
+
+k = 330527984395124299475957654016385519914202341482140609642324395022880711289249191050673258457777458014096366590617731358670
+x = 0060F05F658F49C1AD3AB1890F7184210EFD0987E307C84C27ACCFB8F9F67CC2C460189EB5AAAA62EE222EB1B35540CFE9023746
+y = 0183995A6EF307830180AC25B075ADBD3A9D71A872896C6BC19E9EDD101C6C211E3F74DC5C6FF87744BE8CCBEB36AC8731E21F2D
+
+
+ Curve: K571
+-------------
+k = 1
+x = 026EB7A859923FBC82189631F8103FE4AC9CA2970012D5D46024804801841CA44370958493B205E647DA304DB4CEB08CBBD1BA39494776FB988B47174DCA88C7E2945283A01C8972
+y = 0349DC807F4FBF374F4AEADE3BCA95314DD58CEC9F307A54FFC61EFC006D8A2C9D4979C0AC44AEA74FBEBBB9F772AEDCB620B01A7BA7AF1B320430C8591984F601CD4C143EF1C7A3
+
+k = 2
+x = 01C09F99BDC4EA3FB131DDBFF6E417B20BBB9E90D5611E2CF7A80EE25BB63A23F48CDC08E7570CD9619FB54764E49751198F9EA19564EC87A5DA9ED849504BB73A6931F5C76365F2
+y = 00E2A8B1D841CE2AA5B20CD6EA9D97BE3EA98B322B093BB2418BD8C295B9CF1841AB4CC969EFBA3EBF31AC16BA9434220975542FC5518EBB6AEE65ACAFFA2DF0DDB005F37200594C
+
+k = 3
+x = 0287B0CCBB649860CCB56F10AFEA9090C8A05A351D2B70671084C563D37C6536B8BE7B6130BFCD60E2111CD8A1283EDF48970333C3906A61809D10BBFD4E016650AD4A749A68199A
+y = 02264FC0CB1B83968FF3F8F5689AEACD2B3CC9CE59EF83F0007E2DA3045AC8AB2C0B43F4A2C9D2F29710CCCEE24286C3E4224614EBA64F2F1629FD79168094130F31D6CE787CBD41
+
+k = 4
+x = 03A9D929CDF49B600D7658B46EE4106E7ED45E08E45BF893A3C51FABFEF323777611B8CBAB294498F7F1B645F56D11CDE12CDB00B9DD1F245DEF47FD44776C0EF9ACFBF0A493E9E7
+y = 027B63DE81B7A591AB54B6C7A9CB3BC43F6608327019BC1721A420FE00281CA753C735872FFFC907C2EA624304D0B20E7C0BEF2F317E96F13B1354868015A27E897907AD10E51D8E
+
+k = 5
+x = 02541A1C26F233F751C400F4CFD93E17F77CD429AC196E3E484BEF21FC4D8CC690C372F624913BF302299F5AAF99DF5EA83F15AE6A61DD7E804B5081CC5F4B47C4C0C9BF2B03F581
+y = 04F83758585F9D7FF683E0B7DF6657D72FFB3EC40DAA4378AE0C497A09AA702C82F7D2BF54E7BC50D90A4B9B7D5BF7D514080BC2D0AA060477FFB9EA5E2CC5970508889D4983EC59
+
+k = 6
+x = 006E8AAEAA55AD0261CD73AB384BF9D32342BBBBA2A2617F2712291F21AA517AFB18F994B97FA4E22BE78DED410A49F3CEE2A0247A55EA8325971B9A1E0C697A45BBB818100D0541
+y = 04AFE420548ADBDBA0C81CCC2D89BBE416CF6A05E0DC8370BE8EDB7469DABA2020B22BD791E77A97C44CEFFFA72D5532BFA40EE264E45A14707FCD1A28FFFE52CDF83B9F884AC722
+
+k = 7
+x = 025CBB972B6DCA6F2D0272B3AD51CB993AB9F7494EE9C9D14010489C7C6E368E2CF648B6D6B3BEE9B2A4283A7E7C574142F75F4B1CF1FEC0AF2CCFEA125B488C9BF415772F9325AB
+y = 05755E3F910A7AE060ECEE4D501D0E5BA05A519C0F51409BDF20B976C6ECF2C793B6AEFAABF25A339637E55354550992CF455FA7FDCE9AD7CDEB97004001D19A8B89B11E04320FD1
+
+k = 8
+x = 04FE7C86A25F57E351C10E88934B73A0FFB95EB99C4C782779544A73625891B8F048DD85B76763A221AD94CE60207863E1E8F66B89845DB3F8817764BAF7B53634CFDD67B5D96BE7
+y = 07401D8DA83258CF393A028D8420D2C9722837D171B13DFCFEFE41AA68D2084A812F4516C2624B830F74FD1F80C8418018810FC77278FBA01DDD293F520FC90F92ADC888D2B3559C
+
+k = 9
+x = 00EE7006D88130D14E1CBBC69250EBB26CD8C8201CF04AEEAB89E7894520B06FADC9458CFC68DBE1614B9F3A50C88372725C6BE620D15ED9E0AAC637A12469FEBC9C6148575D66B7
+y = 0644696F86562048E18C8F9C902B48D1425C336DA09E70B8869CE7860788F87E6750F5637BC4F66C61D60DD5A5DE4DD2FF190938440D9D5B2CCC971024253D5AFAEF54E5B759234C
+
+k = 10
+x = 05B69AD9CDE7519731ADC3E68C5DC5B5C910E672E2FD96E1D7F0969035E3BDB3C2FE412B51DF6D0503D2E61D5444DAE97CCF1A48F138EFF62AEF3A4420CC0676D98ED6035FB70DFD
+y = 01ACF04391D73B06BE816D8AA8AAC4BCFB08E57FE5C7B952854E0D8FA6F5EC0DE6523E38EC8015B4D17D910E37531365DD0CCB2429D8DDF5911341487A66F63A164F2B98CF854A5B
+
+k = 11
+x = 067BE688698D011721580D00BE9A194D3147FBCADDDE8443BDAB8593137CA9CE6CBE7F953C8BCF898025A3A79E90C74372EE242DA16B9EB6572063CE7110F2BEFFDD3C1929EF58A8
+y = 05BE5F3029ADEA31155C604F4335CE77C04FF0FD7FA683F5A4126F16DD3AB4A5283D5B8E5497C7288312857EDA456EFE32D730B0675E515D0FAFE0AB754A345037A2C49390693BA5
+
+k = 12
+x = 05A822AB944CB3FEF7D03F34037BF5BEA88DB16FB830E2357C3F4CE0EBE480F65AEA523D7D6F63001582B203B448B8C82372165E98CD4348BE2CD87C2F922ACB0B79DC829F078532
+y = 054512A6C4AEF3C282645F3D506E5DC21B7D1FE99A36B5B7C8175F48AD4425D1CA3745B4DD98DB41422B30CBE9303E139FC3858FD77EE0902AF0B258CBD9938C53042D5BD6364718
+
+k = 13
+x = 01A3C1F431D854759F712774FB257158DC5FCDAF0364B00D60AAE6209A3011A0EA16C00E47F5EE61D4A9C11446759B4C624280B58A20D070574293A8CAF96122D4F2780A2039D42D
+y = 003A7D03E8D80C59B14BB79384E795030ABF204F4C8FF57A37A8AE8C16815E423562511D0C55A5F5E8D0B1B9FE179C4CF26ADFBCCC4D9255611CD9CFDC1244B5C05ADE4ECC56410A
+
+k = 14
+x = 02F16CC4BC7EB0B534DB3A39CDC87CEA2FDE36479568C75477155FD48CD610C9AD6A41793C6A19115AD0B290715072CDA91F8CB7553656A86F7BA798951E737FE0043813E42D20DB
+y = 06EC7583F8C75B31F11494498A5BB6FB7C95DE8FDA1CE5C9C7A00BA6B55EF429FBBFC0866FB92A1BDE7B10684FC55ADE5FB6609073F968AF3E5CCCBAD90B7587A9E4B31714BD4447
+
+k = 15
+x = 000F29804FB396BBD95B2A4A839DD09C9FDE3FC231DEC8EBF7AB020E9A543F6404902F5CECAFB1DA9706A80E58E6458A1CB75024787A9697209D378F4B53669440B8A8775EC4A811
+y = 0675D6B5D5E408FAE3D3C888EBE6C5090D07511B3D5F81C0106EBBC26DC5555AE1A3D772D1003AF206BCF5CA1B0B84224303C3A005298560B5FF51B74D031FE37C864422175BB9AF
+
+k = 16
+x = 03B2A87BC62D5126EDDC7A6213847323AC5BA9391F49A45E99B643DE45DCEA9F3E5B78B8F20602594116DEB01A5A7070BFA1226ECFFB188AF8E665450A56C10D2166FEA01243D056
+y = 05FE32A9FEB9568A9757C02A30480D7E577F8FE9637EAF3DE90FFAC6780E1D29049D0119FCAF240968AB72F0EE71E20A1CB83CBF2051373F63A9D34EF96C732A37EE8EC924BB201D
+
+k = 17
+x = 05B8B14B3EC5502E82460B0F2ECF5B8DABE3FB6DE4DED11F53AEFB4F6EE1BCD9C7E51FC43D8DE6C544C23120BE4A67CF0745ADD6DE00A3DA90EC5B2EBA2908A3CE3B33E841438A7A
+y = 069569936CBB105E18ED72073F62D852BE8AA7FCA514CF6487AF4FDE453834AD04F0BFDAE2A90E5F1A5F9E8495089A2E7A6F45E184D468304B8632F0163B7C60DD6CD9F864F17C4C
+
+k = 18
+x = 049F44712BE7CD58CBD8606E38A546C397522C6E1FF1958404DA02C548E83BD9ABDB414595C4BA39E360E8E550081A97700862A1503B58539A4A699029E2079F4126D0120C29CEE7
+y = 0346CF05EC13F66A2A62AF97920CE7E38E23186386DF7612E2D01E88467490A2E55B074DD0A240A162E8943FAE7E7850C2191E269F918DF4073F2E52F2139A53CE2A75236CD18B12
+
+k = 19
+x = 04132288CA1000D047390A4F819251393D2E134FCA49B55D124E9DA11081833C21032F705BA1AB110FFB17858D4C55B19012D55994EE6B862C0CB1761295DBE6FD33C7F07B5F4055
+y = 047CD3DD39ACCC310E9C9997A0A6425F0AC3E4AF124FB138FE6DB3D69CFC1CC7EF35F9E7DC8D593C3EA863F82012B8B39BB744C82BA670A2E332FF54EB60B1D8AEE15ED5B9AAF012
+
+k = 20
+x = 005E200B536A9964B2E46C7849B7F4A0A8FA41D887838866089F1A572604469CCB7B5F000EDC152EFA0D193AAD39E1E1852B168C46D877D3C64AF3560D264157A8F06CF216C76C1B
+y = 044F4CAE6C2D7243842299A214C837C997F833571F460EA005D6722C7F2F83474251FDAB47014E33006A7334DEB84B14B9FA8537FAA5B8C0C32EC9A9F49AED6FC0AEC476745EEFBA
+
+k = 112233445566778899
+x = 02FEEE38A60E619892830024E4AC47B7992D475E64ACFE57141F7887D11C5D6AD236DD58660CB261140EABB940EED748182439D431C2871CBEA0ACF9165B798A34ABB8C75CDB981C
+y = 0123D8ECB239E56172FB6EF2D0E9D7EEADC42C0534400DA569165A31B74FBED26717D1DC535E383864D96FCB2D7583B18DAD9951C3549E36468E0D1D707ACA29F548902A73F6121C
+
+k = 112233445566778899112233445566778899
+x = 06C22BB855C704F0826450A0F720012569F67BCE3CD4B547801629D27D672ECECD558A5483ACBF831943704463303DFACFAE2C4CCB2C2667E72CEED77FA405301FABA53536DB776E
+y = 07700EC8CC827B5A4C391F95FEAB1BA0A105858445F6B3642C670BEC422129CFF52BB4618E399582DB1C46FBA2C22CEADED3B4E15D2E268093AC229335E6FEEAF23FD734A539640C
+
+k = 1992623597601820334275444784098161341414252502647858850477940617876196735335367504892511147225880341545498168999090021223223595237741903315110794472594029953181583356723327
+x = 03F4A2769B8AD68269A13F6BB1603054E12A18D84D558D0850EBDED4B078BC8841CBA8200882C8538C0D5C7E4365660517A45DB4B500E3C9E8AF5F158386EE254E25A4B12012ADD3
+y = 0643821BC61F91449F815A529C4152A571ED6675DEB0719678FDEB7D0EC41D24B868B7945DF70C276E830FED07FBAEA5F65A4FD8A20471D8381560FC66F96455121BB9D25297C12A
+
+k = 3861235304097731366395849020295506793580025501573752466082694720823659889999449120687268962697352252653604400025856795876469657119139444635908785358460460317088877788544768
+x = 032BA60C8312D1F5594669DC1DB1163C76A2235433C4D14340C007F37980FC68807021FC55A2295D647CD68CB8FAF5C0ED8F6E4BBFB512A1BB4647618A25C971F1183914FC6BE5F4
+y = 02771822380C0DADB70588467E186BBC83DE1F3E57FC6A6795FCD9C75F93731B176DD8B1B8A4F7ED08444493F3C9FDAA3BB9E6C07B7B9FB8990F69F679AEA3AF14E15691BCC84C53
+
+k = 29484053325707075925799971880648520225129267203907309744947579482621481989803910526623412325649301163282163977203931103437234275639190412051242172756191821780639287295
+x = 0084D258DDD36501D0F3226981F73362F8FF31C0DB5256B8BC0669F9BE0274E9D7FA5CAF9132DCE2DEE94093DAF16763AFD8DB6BACA3C22514BCEF6BA32C9C1EE6C364184B0002B8
+y = 031008F9724E0F5E53554C0CF3C88C21B64BEA57DCC1C4F1E6BC4F35E35255B9DCFFA65633669B6548F5739299FB0CE709F27D71CDC4DD0B1D73F511EC5ADF2EFB4C1CC1115AEDE0
+
+k = 3856989612564136079392730580999641434043086815740351063506109991771247389759040179364506010801907655119601519159801507707836288138946973600108373332732886149272671889129479
+x = 05299CF8A12FFCB3BBE1FFD804AAA2B0BA30A4F23B4F74CF5059465B1FCD12323260BA20A68A96796599F09B6F0C56EF978C1579B8BBBBFD9B7819396127E2989A5083D7AEDA7ABA
+y = 00A741DB87AC6BFD1D37E24B76CA64A84EF0E3C1F54A2D79D810173A7B40AAE17075D648267128B2E82EA2032700D047C5D25DD2F0E6F7C43F5F83824538BBB4133008A56A9CB87D
+
+k = 115168896320404645651432041179098839414378138206812196561404436546770474625174718418325552238695410399889241880699884998980722656882424204062175554372303917066223615
+x = 07B2F3388543EC3D9272A31B59A708AA3E71214187E0B117B1A9B7AEE4AC0BF5E8A74399EFDC77C5E37FB958434B499EC3DE3035E3398160C3A272071F1953F4825BA3E70C8FB214
+y = 0178AA5EA704297D3B4DE01E39BEEB2FB3F3CC8A2CFE0F2E5DD9275DDAACB90A111B170EB0666CAB41597C30AD1A49F0B75D7DD28B6975B59A60740AA9595594697541E5D6139BD1
+
+k = 3864537523003199239087417163945278577471667133170388636024057769266287662208867993319214525206175292032772076860100999103054058369004034553550030668101507007173144516497376
+x = 05FA03062DFF71299A4B2CC23D91AEB60E4283397216460A10854F6F5CCA8A346C77FCD3EBD5F10CE9FFA131C4B07DF6B6CD3C0D25E4EF65B7F163E16A3D031F45F39370C9B94ED5
+y = 04CBF73EFCFF14A120358E286F71B008C7168688C7D6A2DE13A0B6AC2C8399556844AAF20405453DE12170239305C351CDD2D03A74F4DA2063B95D7769DC2958B4E3311CBA997A91
+
+k = 230121197121011964829492956410962317332440724987436349361278165103269765744684971897427792562867723805262067593176384089090183615361873148246784747143625214720344064
+x = 04AAC818AC25D49BD64613E9B83A3CAA23CEAA144DCC4EB8B97150B02CF6A87B2D472C45528522DED254FAE4297DFDB413E4F4D3B135AE6E38ADA5C70D8ABF8EDBDE541AA2BA24A9
+y = 02D0488ECCB1944F76EAEED27647FBDB5CC5BDF7451DECEED5DBB706839CE3FE79C6A1799EC79CA600F65D7FF1C355AE37DC055A557EC17D3AB32B437135B6A75286EDE7544EC98C
+
+k = 3864522781876319144444990411489928498745425588762374758896440897920023110585946263236417010936645116291777139009696600304790060614733522620138525597803759712486299307872239
+x = 01959205027954C735345C8643490346F6BE72E55C0D7FC28192A9C1C0BCF1AD74CA28E2071547AFCC4B665F24DE0F3485E544D173FBAC9D16F0026DD4DC518A303E6F814DC5A7D2
+y = 00A9C8B9B0D15B756261FDFCC20B20F10793124011846079C4482F5A7216DE432D637683D69F8DAD0B7126E2108F5361630879D4005FE9596A4C6C8A7E114C1ED7D9AC50BCF21CC4
+
+k = 1815275926114215700701028333874259168175794556292427843778276145855757450023893249648446870539448899577350096228970948933440013595519109366285051171291091396578474272488967
+x = 037E95DA8EE613495B4ED15B77F1C22AD2458B580B3E5BDE4EA637F1068B296E686C8D42519C23DE6EC96CFF6C265CC3177F5623D14191EAE8990BF9EE3F8D25A8D0540923EDDD4C
+y = 03EE786A0854C81AAC92F28FCA6ACDAE82B296893EADCBC2B2D1CD7DEC2B40AF53E1744C5E4620DAE97BC4C7AF334C2FD468D8DA9A00ED0745374CABB7403BF0DCFCDF42789F5B43
+
+k = 1287149561276048671542980749585292895031172887885203268478243566010436807420646737938361337191803564987388184003920857755944740028427123811551562332234582015
+x = 02D19058B78824936E068AA47953EB524921CA9F1E49E94D3BF1778DE0D1DB86DC071A1A24AA4A84201CCAA4B5913B9A2589B6EBDE31FC64B7BDB038E84CC80439D92F71C1DE75D1
+y = 008139B9243B812661E4299F21E37CA7A9A384DCB391A089F5F3F0A5B9BEF7797D618397386BCF342AFB749260B6684D15DF07F831079E14AF100DCD4319944F7FDED17324A1D6C1
+
+k = 1932268761508629172347675945465993672149463664853217499328617625725759571144780212268133978522706711834706712800825351461273674974066617311929682421617092503555733685276653
+x = 005E200B536A9964B2E46C7849B7F4A0A8FA41D887838866089F1A572604469CCB7B5F000EDC152EFA0D193AAD39E1E1852B168C46D877D3C64AF3560D264157A8F06CF216C76C1B
+y = 04116CA53F47EB2736C6F5DA5D7FC3693F02728F98C586C60D49687B592BC5DB892AA2AB49DD5B1DFA676A0E7381AAF53CD193BBBC7DCF1305643AFFF9BCAC38685EA884629983A1
+
+k = 1932268761508629172347675945465993672149463664853217499328617625725759571144780212268133978522706711834706712800825351461273674974066617311929682421617092503555733685276654
+x = 04132288CA1000D047390A4F819251393D2E134FCA49B55D124E9DA11081833C21032F705BA1AB110FFB17858D4C55B19012D55994EE6B862C0CB1761295DBE6FD33C7F07B5F4055
+y = 006FF155F3BCCCE149A593D82134136637EDF7E0D8060465EC232E778C7D9FFBCE36D697872CF22D3153747DAD5EED020BA59191BF481B24CF3E4E22F9F56A3E53D29925C2F5B047
+
+k = 1932268761508629172347675945465993672149463664853217499328617625725759571144780212268133978522706711834706712800825351461273674974066617311929682421617092503555733685276655
+x = 049F44712BE7CD58CBD8606E38A546C397522C6E1FF1958404DA02C548E83BD9ABDB414595C4BA39E360E8E550081A97700862A1503B58539A4A699029E2079F4126D0120C29CEE7
+y = 07D98B74C7F43B32E1BACFF9AAA9A1201971340D992EE396E60A1C4D0E9CAB7B4E8046084566FA9881887CDAFE7662C7B2117C87CFAAD5A79D7547C2DBF19DCC8F0CA53160F845F5
+
+k = 1932268761508629172347675945465993672149463664853217499328617625725759571144780212268133978522706711834706712800825351461273674974066617311929682421617092503555733685276656
+x = 05B8B14B3EC5502E82460B0F2ECF5B8DABE3FB6DE4DED11F53AEFB4F6EE1BCD9C7E51FC43D8DE6C544C23120BE4A67CF0745ADD6DE00A3DA90EC5B2EBA2908A3CE3B33E841438A7A
+y = 032DD8D8527E40709AAB790811AD83DF15695C9141CA1E7BD401B4912BD98874C315A01EDF24E89A5E9DAFA42B42FDE17D2AE8375AD4CBEADB6A69DEAC1274C31357EA1025B2F636
+
+k = 1932268761508629172347675945465993672149463664853217499328617625725759571144780212268133978522706711834706712800825351461273674974066617311929682421617092503555733685276657
+x = 03B2A87BC62D5126EDDC7A6213847323AC5BA9391F49A45E99B643DE45DCEA9F3E5B78B8F20602594116DEB01A5A7070BFA1226ECFFB188AF8E665450A56C10D2166FEA01243D056
+y = 064C9AD2389407AC7A8BBA4823CC7E5DFB2426D07C370B6370B9B9183DD2F7B63AC679A10EA9265029BDAC40F42B927AA3191ED1EFAA2FB59B4FB60BF33AB2271688706936F8F04B
+
+k = 1932268761508629172347675945465993672149463664853217499328617625725759571144780212268133978522706711834706712800825351461273674974066617311929682421617092503555733685276658
+x = 000F29804FB396BBD95B2A4A839DD09C9FDE3FC231DEC8EBF7AB020E9A543F6404902F5CECAFB1DA9706A80E58E6458A1CB75024787A9697209D378F4B53669440B8A8775EC4A811
+y = 067AFF359A579E413A88E2C2687B159592D96ED90C81492BE7C5B9CCF7916A3EE533F82E3DAF8B2891BA5DC443EDC1A85FB493847D5313F795626638065079773C3EEC55499F11BE
+
+k = 1932268761508629172347675945465993672149463664853217499328617625725759571144780212268133978522706711834706712800825351461273674974066617311929682421617092503555733685276659
+x = 02F16CC4BC7EB0B534DB3A39CDC87CEA2FDE36479568C75477155FD48CD610C9AD6A41793C6A19115AD0B290715072CDA91F8CB7553656A86F7BA798951E737FE0043813E42D20DB
+y = 041D194744B9EB84C5CFAE704793CA11534BE8C84F74229DB0B554723988E4E056D581FF53D3330A84ABA2F83E952813F6A9EC2726CF3E0751276B224C1506F849E08B04F090649C
+
+k = 1932268761508629172347675945465993672149463664853217499328617625725759571144780212268133978522706711834706712800825351461273674974066617311929682421617092503555733685276660
+x = 01A3C1F431D854759F712774FB257158DC5FCDAF0364B00D60AAE6209A3011A0EA16C00E47F5EE61D4A9C11446759B4C624280B58A20D070574293A8CAF96122D4F2780A2039D42D
+y = 0199BCF7D900582C2E3A90E77FC2E45BD6E0EDE04FEB4577570248AC8CB14FE2DF7491134BA04B943C7970ADB862070090285F09466D4225365E4A6716EB259714A8A644EC6F9527
+
+k = 1932268761508629172347675945465993672149463664853217499328617625725759571144780212268133978522706711834706712800825351461273674974066617311929682421617092503555733685276661
+x = 05A822AB944CB3FEF7D03F34037BF5BEA88DB16FB830E2357C3F4CE0EBE480F65AEA523D7D6F63001582B203B448B8C82372165E98CD4348BE2CD87C2F922ACB0B79DC829F078532
+y = 00ED300D50E2403C75B460095315A87CB3F0AE8622065782B42813A846A0A52790DD1789A0F7B84157A982C85D7886DBBCB193D14FB3A3D894DC6A24E44BB947587DF1D94931C22A
+
+k = 1932268761508629172347675945465993672149463664853217499328617625725759571144780212268133978522706711834706712800825351461273674974066617311929682421617092503555733685276662
+x = 067BE688698D011721580D00BE9A194D3147FBCADDDE8443BDAB8593137CA9CE6CBE7F953C8BCF898025A3A79E90C74372EE242DA16B9EB6572063CE7110F2BEFFDD3C1929EF58A8
+y = 03C5B9B84020EB2634046D4FFDAFD73AF1080B37A27807B619B9EA85CE461D6B4483241B681C08A1033726D944D5A9BD4039149DC635CFEB588F8365045AC6EEC87FF88AB986630D
+
+k = 1932268761508629172347675945465993672149463664853217499328617625725759571144780212268133978522706711834706712800825351461273674974066617311929682421617092503555733685276663
+x = 05B69AD9CDE7519731ADC3E68C5DC5B5C910E672E2FD96E1D7F0969035E3BDB3C2FE412B51DF6D0503D2E61D5444DAE97CCF1A48F138EFF62AEF3A4420CC0676D98ED6035FB70DFD
+y = 041A6A9A5C306A918F2CAE6C24F701093218030D073A2FB352BE9B1F931651BE24AC7F13BD5F78B1D2AF77136317C98CA1C3D16CD8E03203BBFC7B0C5AAAF04CCFC1FD9B903247A6
+
+k = 1932268761508629172347675945465993672149463664853217499328617625725759571144780212268133978522706711834706712800825351461273674974066617311929682421617092503555733685276664
+x = 00EE7006D88130D14E1CBBC69250EBB26CD8C8201CF04AEEAB89E7894520B06FADC9458CFC68DBE1614B9F3A50C88372725C6BE620D15ED9E0AAC637A12469FEBC9C6148575D66B7
+y = 06AA19695ED71099AF90345A027BA3632E84FB4DBC6E3A562D15000F42A84811CA99B0EF87AC2D8D009D92EFF516CEA08D4562DE64DCC382CC665127850154A4467335ADE00445FB
+
+k = 1932268761508629172347675945465993672149463664853217499328617625725759571144780212268133978522706711834706712800825351461273674974066617311929682421617092503555733685276665
+x = 04FE7C86A25F57E351C10E88934B73A0FFB95EB99C4C782779544A73625891B8F048DD85B76763A221AD94CE60207863E1E8F66B89845DB3F8817764BAF7B53634CFDD67B5D96BE7
+y = 03BE610B0A6D0F2C68FB0C05176BA1698D916968EDFD45DB87AA0BD90A8A99F271679893750528212ED969D1E0E839E3F969F9ACFBFCA613E55C5E5BE8F87C39A66215EF676A3E7B
+
+k = 1932268761508629172347675945465993672149463664853217499328617625725759571144780212268133978522706711834706712800825351461273674974066617311929682421617092503555733685276666
+x = 025CBB972B6DCA6F2D0272B3AD51CB993AB9F7494EE9C9D14010489C7C6E368E2CF648B6D6B3BEE9B2A4283A7E7C574142F75F4B1CF1FEC0AF2CCFEA125B488C9BF415772F9325AB
+y = 0729E5A8BA67B08F4DEE9CFEFD4CC5C29AE3A6D541B8894A9F30F1EABA82C449BF40E64C7D41E4DA2493CD692A295ED38DB200ECE13F641762C758EA525A9916107DA4692BA12A7A
+
+k = 1932268761508629172347675945465993672149463664853217499328617625725759571144780212268133978522706711834706712800825351461273674974066617311929682421617092503555733685276667
+x = 006E8AAEAA55AD0261CD73AB384BF9D32342BBBBA2A2617F2712291F21AA517AFB18F994B97FA4E22BE78DED410A49F3CEE2A0247A55EA8325971B9A1E0C697A45BBB818100D0541
+y = 04C16E8EFEDF76D9C1056F6715C24237358DD1BE427EE20F999CF26B4870EB5ADBAAD2432898DE75EFAB6212E6271CC17146AEC61EB1B09755E8D68036F39728884383879847C263
+
+k = 1932268761508629172347675945465993672149463664853217499328617625725759571144780212268133978522706711834706712800825351461273674974066617311929682421617092503555733685276668
+x = 02541A1C26F233F751C400F4CFD93E17F77CD429AC196E3E484BEF21FC4D8CC690C372F624913BF302299F5AAF99DF5EA83F15AE6A61DD7E804B5081CC5F4B47C4C0C9BF2B03F581
+y = 06AC2D447EADAE88A747E04310BF69C0D887EAEDA1B32D46E647A65BF5E7FCEA1234A049707687A3DB23D4C1D2C2288BBC371E6CBACBDB7AF7B4E96B92738ED0C1C84122628019D8
+
+k = 1932268761508629172347675945465993672149463664853217499328617625725759571144780212268133978522706711834706712800825351461273674974066617311929682421617092503555733685276669
+x = 03A9D929CDF49B600D7658B46EE4106E7ED45E08E45BF893A3C51FABFEF323777611B8CBAB294498F7F1B645F56D11CDE12CDB00B9DD1F245DEF47FD44776C0EF9ACFBF0A493E9E7
+y = 01D2BAF74C433EF1A622EE73C72F2BAA41B2563A9442448482613F55FEDB3FD025D68D4C84D68D9F351BD406F1BDA3C39D27342F88A389D566FC137BC462CE7070D5FC5DB476F469
+
+k = 1932268761508629172347675945465993672149463664853217499328617625725759571144780212268133978522706711834706712800825351461273674974066617311929682421617092503555733685276670
+x = 0287B0CCBB649860CCB56F10AFEA9090C8A05A351D2B70671084C563D37C6536B8BE7B6130BFCD60E2111CD8A1283EDF48970333C3906A61809D10BBFD4E016650AD4A749A68199A
+y = 00A1FF0C707F1BF6434697E5C7707A5DE39C93FB44C4F39710FAE8C0D726AD9D94B5389592761F927501D016436AB81CACB545272836254E96B4EDC2EBCE95755F9C9CBAE214A4DB
+
+k = 1932268761508629172347675945465993672149463664853217499328617625725759571144780212268133978522706711834706712800825351461273674974066617311929682421617092503555733685276671
+x = 01C09F99BDC4EA3FB131DDBFF6E417B20BBB9E90D5611E2CF7A80EE25BB63A23F48CDC08E7570CD9619FB54764E49751198F9EA19564EC87A5DA9ED849504BB73A6931F5C76365F2
+y = 01223728658524151483D1691C79800C351215A2FE68259EB623D620CE0FF53BB52790C18EB8B6E7DEAE1951DE70A37310FACA8E5035623CCF34FB74E6AA6647E7D93406B5633CBE
+
+k = 1932268761508629172347675945465993672149463664853217499328617625725759571144780212268133978522706711834706712800825351461273674974066617311929682421617092503555733685276672
+x = 026EB7A859923FBC82189631F8103FE4AC9CA2970012D5D46024804801841CA44370958493B205E647DA304DB4CEB08CBBD1BA39494776FB988B47174DCA88C7E2945283A01C8972
+y = 01276B2826DD808BCD527CEFC3DAAAD5E1492E7B9F22AF809FE29EB401E99688DE39EC443FF6AB4108648BF443BC1E500DF10A2332E0D9E0AA8F77DF14D30C31E3591E979EED4ED1
diff --git a/crypto/test/src/asn1/test/KMacParamsTest.cs b/crypto/test/src/asn1/test/KMacParamsTest.cs
new file mode 100644
index 000000000..a3d82694b
--- /dev/null
+++ b/crypto/test/src/asn1/test/KMacParamsTest.cs
@@ -0,0 +1,90 @@
+using System;
+
+using NUnit.Framework;
+
+using Org.BouncyCastle.Asn1.Nist;
+using Org.BouncyCastle.Utilities;
+using Org.BouncyCastle.Utilities.Test;
+
+namespace Org.BouncyCastle.Asn1.Tests
+{
+    [TestFixture]
+    public class KMacParamsTest
+        : SimpleTest
+    {
+        public override string Name
+        {
+            get { return "KMacParamsTest"; }
+        }
+
+        public override void PerformTest()
+        {
+            Assert.IsTrue(Arrays.AreEqual(new KMacWithShake128Params(256).GetEncoded(), new DerSequence().GetEncoded()));
+            Assert.IsTrue(Arrays.AreEqual(new KMacWithShake256Params(512).GetEncoded(), new DerSequence().GetEncoded()));
+
+            Assert.IsTrue(Arrays.AreEqual(new KMacWithShake128Params(512).GetEncoded(), new DerSequence(new DerInteger(512)).GetEncoded()));
+            Assert.IsTrue(Arrays.AreEqual(new KMacWithShake256Params(256).GetEncoded(), new DerSequence(new DerInteger(256)).GetEncoded()));
+
+            Assert.IsTrue(Arrays.AreEqual(new KMacWithShake128Params(512).GetEncoded(), KMacWithShake128Params.GetInstance(new DerSequence(new DerInteger(512))).GetEncoded()));
+            Assert.IsTrue(Arrays.AreEqual(new KMacWithShake256Params(256).GetEncoded(), KMacWithShake256Params.GetInstance(new DerSequence(new DerInteger(256))).GetEncoded()));
+
+            byte[] customizationString = Strings.ToByteArray("hello, world!");
+
+            Assert.IsTrue(Arrays.AreEqual(new KMacWithShake128Params(512, customizationString).GetEncoded(), new DerSequence(
+                new Asn1Encodable[] { new DerInteger(512), new DerOctetString(customizationString) }).GetEncoded()));
+            Assert.IsTrue(Arrays.AreEqual(new KMacWithShake256Params(256, customizationString).GetEncoded(), new DerSequence(
+                new Asn1Encodable[] { new DerInteger(256), new DerOctetString(customizationString) }).GetEncoded()));
+
+            Assert.IsTrue(Arrays.AreEqual(new KMacWithShake128Params(512, customizationString).GetEncoded(),
+                KMacWithShake128Params.GetInstance(
+                    new DerSequence(new Asn1Encodable[] { new DerInteger(512), new DerOctetString(customizationString) })).GetEncoded()));
+            Assert.IsTrue(Arrays.AreEqual(new KMacWithShake256Params(256, customizationString).GetEncoded(),
+                KMacWithShake256Params.GetInstance(new DerSequence(
+                new Asn1Encodable[] { new DerInteger(256), new DerOctetString(customizationString) })).GetEncoded()));
+
+            Assert.IsTrue(Arrays.AreEqual(new KMacWithShake128Params(256, customizationString).GetEncoded(), new DerSequence(
+                new Asn1Encodable[] { new DerOctetString(customizationString) }).GetEncoded()));
+            Assert.IsTrue(Arrays.AreEqual(new KMacWithShake256Params(512, customizationString).GetEncoded(), new DerSequence(
+                new Asn1Encodable[] { new DerOctetString(customizationString) }).GetEncoded()));
+
+            Assert.IsTrue(Arrays.AreEqual(new KMacWithShake128Params(256, customizationString).GetEncoded(),
+                KMacWithShake128Params.GetInstance(
+                    new DerSequence(new Asn1Encodable[] { new DerOctetString(customizationString) })).GetEncoded()));
+            Assert.IsTrue(Arrays.AreEqual(new KMacWithShake256Params(512, customizationString).GetEncoded(),
+                KMacWithShake256Params.GetInstance(new DerSequence(
+                new Asn1Encodable[] { new DerOctetString(customizationString) })).GetEncoded()));
+
+            KMacWithShake128Params p128 = new KMacWithShake128Params(256, customizationString);
+            Assert.AreEqual(256, p128.OutputLength);
+            Assert.IsTrue(Arrays.AreEqual(customizationString, p128.CustomizationString));
+            Assert.IsTrue(p128 == KMacWithShake128Params.GetInstance(p128));
+
+            KMacWithShake256Params p256 = new KMacWithShake256Params(512, customizationString);
+            Assert.AreEqual(512, p256.OutputLength);
+            Assert.IsTrue(Arrays.AreEqual(customizationString, p256.CustomizationString));
+            Assert.IsTrue(p256 == KMacWithShake256Params.GetInstance(p256));
+
+            p128 = new KMacWithShake128Params(512);
+            Assert.AreEqual(512, p128.OutputLength);
+            Assert.IsTrue(Arrays.AreEqual(new byte[0], p128.CustomizationString));
+
+            p256 = new KMacWithShake256Params(256);
+            Assert.AreEqual(256, p256.OutputLength);
+            Assert.IsTrue(Arrays.AreEqual(new byte[0], p256.CustomizationString));
+        }
+
+        public static void Main(
+            string[] args)
+        {
+            RunTest(new KMacParamsTest());
+        }
+
+        [Test]
+        public void TestFunction()
+        {
+            string resultText = Perform().ToString();
+
+            Assert.AreEqual(resultText, Name + ": Okay", resultText);
+        }
+    }
+}
diff --git a/crypto/test/src/asn1/test/RegressionTest.cs b/crypto/test/src/asn1/test/RegressionTest.cs
index 67860ccd7..cf10c6c3b 100644
--- a/crypto/test/src/asn1/test/RegressionTest.cs
+++ b/crypto/test/src/asn1/test/RegressionTest.cs
@@ -6,20 +6,20 @@ namespace Org.BouncyCastle.Asn1.Tests
 {
     public class RegressionTest
     {
-        public static readonly ITest[] tests =
-        {
+		public static readonly ITest[] tests =
+		{
 			new AdditionalInformationSyntaxUnitTest(),
 			new AdmissionSyntaxUnitTest(),
 			new AdmissionsUnitTest(),
-            new Asn1IntegerTest(),
+			new Asn1IntegerTest(),
 			new AttributeTableUnitTest(),
-            new BiometricDataUnitTest(),
-            new BitStringTest(),
+			new BiometricDataUnitTest(),
+			new BitStringTest(),
 			new CertHashUnitTest(),
 			new CertificateTest(),
-            new CmsTest(),
-            new CommitmentTypeIndicationUnitTest(),
-            new CommitmentTypeQualifierUnitTest(),
+			new CmsTest(),
+			new CommitmentTypeIndicationUnitTest(),
+			new CommitmentTypeQualifierUnitTest(),
 			new ContentHintsUnitTest(),
 			new CscaMasterListTest(),
 			new DataGroupHashUnitTest(),
@@ -27,33 +27,33 @@ namespace Org.BouncyCastle.Asn1.Tests
 			new DerApplicationSpecificTest(),
 			new DerUtf8StringTest(),
 			new EncryptedPrivateKeyInfoTest(),
-            new EqualsAndHashCodeTest(),
+			new EqualsAndHashCodeTest(),
 			new EssCertIDv2UnitTest(),
-            new GeneralizedTimeTest(),
+			new GeneralizedTimeTest(),
 			new GeneralNameTest(),
 			new GenerationTest(),
 			new InputStreamTest(),
-            new Iso4217CurrencyCodeUnitTest(),
+			new Iso4217CurrencyCodeUnitTest(),
 			new IssuingDistributionPointUnitTest(),
 			new KeyUsageTest(),
-            new LDSSecurityObjectUnitTest(),
-            new LinkedCertificateTest(),
-            new MiscTest(),
+			new LDSSecurityObjectUnitTest(),
+			new LinkedCertificateTest(),
+			new MiscTest(),
 			new MonetaryLimitUnitTest(),
 			new MonetaryValueUnitTest(),
 			new NameOrPseudonymUnitTest(),
 			new NamingAuthorityUnitTest(),
 			new NetscapeCertTypeTest(),
-            new OcspTest(),
-            new OidTest(),
+			new OcspTest(),
+			new OidTest(),
 			new OtherCertIDUnitTest(),
 			new OtherSigningCertificateUnitTest(),
 			new ParsingTest(),
 			new PersonalDataUnitTest(),
 			new Pkcs10Test(),
-            new Pkcs12Test(),
+			new Pkcs12Test(),
 			new PkiFailureInfoTest(),
-            new PrivateKeyInfoTest(),
+			new PrivateKeyInfoTest(),
 			new ProcurationSyntaxUnitTest(),
 			new ProfessionInfoUnitTest(),
 			new QCStatementUnitTest(),
@@ -61,9 +61,9 @@ namespace Org.BouncyCastle.Asn1.Tests
 			new RequestedCertificateUnitTest(),
 			new RestrictionUnitTest(),
 			new SemanticsInformationUnitTest(),
-            new SetTest(),
-            new SignerLocationUnitTest(),
-            new SmimeTest(),
+			new SetTest(),
+			new SignerLocationUnitTest(),
+			new SmimeTest(),
 			new StringTest(),
 			new SubjectKeyIdentifierTest(),
 			new TagTest(),
@@ -72,7 +72,8 @@ namespace Org.BouncyCastle.Asn1.Tests
 			new UtcTimeTest(),
 			new X509ExtensionsTest(),
 			new X509NameTest(),
-            new X9Test(),
+			new X9Test(),
+			new KMacParamsTest()
         };
 
         public static void Main(
diff --git a/crypto/test/src/crypto/test/CSHAKETest.cs b/crypto/test/src/crypto/test/CSHAKETest.cs
index 80f0eb1f7..e7c6ce9e0 100644
--- a/crypto/test/src/crypto/test/CSHAKETest.cs
+++ b/crypto/test/src/crypto/test/CSHAKETest.cs
@@ -1,20 +1,26 @@
-using NUnit.Framework;
+using System;
+
+using NUnit.Framework;
+
 using Org.BouncyCastle.Crypto.Digests;
 using Org.BouncyCastle.Utilities;
 using Org.BouncyCastle.Utilities.Encoders;
-using System;
-using System.Collections.Generic;
-using System.Linq;
-using System.Text;
+using Org.BouncyCastle.Utilities.Test;
 
 namespace Org.BouncyCastle.Crypto.Tests
 {
-    public class CSHAKETest
+    [TestFixture]
+    public class CShakeTest
+        : SimpleTest
     {
-        [Test]
-        public void PerformTest()
+        public override string Name
         {
-            CSHAKEDigest cshake = new CSHAKEDigest(128, new byte[0], Strings.ToByteArray("Email Signature"));
+            get { return "CSHAKE"; }
+        }
+
+        public override void PerformTest()
+        {
+            CShakeDigest cshake = new CShakeDigest(128, new byte[0], Strings.ToByteArray("Email Signature"));
            
             cshake.BlockUpdate(Hex.Decode("00010203"), 0, 4);
 
@@ -24,7 +30,7 @@ namespace Org.BouncyCastle.Crypto.Tests
 
             Assert.IsTrue(Arrays.AreEqual(Hex.Decode("c1c36925b6409a04f1b504fcbca9d82b4017277cb5ed2b2065fc1d3814d5aaf5"), res));
 
-            cshake = new CSHAKEDigest(128, new byte[0], Strings.ToByteArray("Email Signature"));
+            cshake = new CShakeDigest(128, new byte[0], Strings.ToByteArray("Email Signature"));
 
             cshake.BlockUpdate(Hex.Decode(
           "000102030405060708090A0B0C0D0E0F" +
@@ -47,7 +53,7 @@ namespace Org.BouncyCastle.Crypto.Tests
 
             Assert.IsTrue(Arrays.AreEqual(Hex.Decode("C5221D50E4F822D96A2E8881A961420F294B7B24FE3D2094BAED2C6524CC166B "), res));
 
-            cshake = new CSHAKEDigest(256, new byte[0], Strings.ToByteArray("Email Signature"));
+            cshake = new CShakeDigest(256, new byte[0], Strings.ToByteArray("Email Signature"));
 
             cshake.BlockUpdate(Hex.Decode("00010203"), 0, 4);
 
@@ -61,7 +67,7 @@ namespace Org.BouncyCastle.Crypto.Tests
            "64020E2BE0560858D9C00C037E34A969" +
            "37C561A74C412BB4C746469527281C8C"), res));
 
-            cshake = new CSHAKEDigest(256, new byte[0], Strings.ToByteArray("Email Signature"));
+            cshake = new CShakeDigest(256, new byte[0], Strings.ToByteArray("Email Signature"));
 
             cshake.BlockUpdate(Hex.Decode(
                 "000102030405060708090A0B0C0D0E0F" +
@@ -92,33 +98,33 @@ namespace Org.BouncyCastle.Crypto.Tests
             longBlockTest();
             checkZeroPadZ();
 
-            checkSHAKE(128, new CSHAKEDigest(128, new byte[0], new byte[0]), Hex.Decode("eeaabeef"));
-            checkSHAKE(256, new CSHAKEDigest(256, new byte[0], null), Hex.Decode("eeaabeef"));
-            checkSHAKE(128, new CSHAKEDigest(128, null, new byte[0]), Hex.Decode("eeaabeef"));
-            checkSHAKE(128, new CSHAKEDigest(128, null, null), Hex.Decode("eeaabeef"));
-            checkSHAKE(256, new CSHAKEDigest(256, null, null), Hex.Decode("eeaabeef"));
+            checkSHAKE(128, new CShakeDigest(128, new byte[0], new byte[0]), Hex.Decode("eeaabeef"));
+            checkSHAKE(256, new CShakeDigest(256, new byte[0], null), Hex.Decode("eeaabeef"));
+            checkSHAKE(128, new CShakeDigest(128, null, new byte[0]), Hex.Decode("eeaabeef"));
+            checkSHAKE(128, new CShakeDigest(128, null, null), Hex.Decode("eeaabeef"));
+            checkSHAKE(256, new CShakeDigest(256, null, null), Hex.Decode("eeaabeef"));
         }
 
         private void checkZeroPadZ()
         {
             byte[] buf = new byte[20];
 
-            CSHAKEDigest cshake1 = new CSHAKEDigest(256, new byte[0], new byte[265]);
+            CShakeDigest cshake1 = new CShakeDigest(256, new byte[0], new byte[265]);
             cshake1.DoOutput(buf, 0, buf.Length);
             Assert.IsTrue(Arrays.AreEqual(Hex.Decode("6e393540387004f087c4180db008acf6825190cf"), buf));
 
-            CSHAKEDigest cshake2 = new CSHAKEDigest(128, new byte[0], new byte[329]);
+            CShakeDigest cshake2 = new CShakeDigest(128, new byte[0], new byte[329]);
             cshake2.DoOutput(buf, 0, buf.Length);
             Assert.IsTrue(Arrays.AreEqual(Hex.Decode("309bd7c285fcf8b839c9686b2cc00bd578947bee"), buf));
 
-            cshake2 = new CSHAKEDigest(128, new byte[29], new byte[300]);
+            cshake2 = new CShakeDigest(128, new byte[29], new byte[300]);
             cshake2.DoOutput(buf, 0, buf.Length);
             Assert.IsTrue(Arrays.AreEqual(Hex.Decode("ff6aafd83b8d22fc3e2e9b9948b581967ed9c5e7"), buf));
         }
 
         private void doFinalTest()
         {
-            CSHAKEDigest cshake = new CSHAKEDigest(128, new byte[0], Strings.ToByteArray("Email Signature"));
+            CShakeDigest cshake = new CShakeDigest(128, new byte[0], Strings.ToByteArray("Email Signature"));
 
             cshake.BlockUpdate(Hex.Decode("00010203"), 0, 4);
 
@@ -138,7 +144,7 @@ namespace Org.BouncyCastle.Crypto.Tests
 
             cshake.DoFinal(res, 0, res.Length);
 
-            var s = Hex.ToHexString(res);
+            string s = Hex.ToHexString(res);
 
             Console.WriteLine(s);
 
@@ -167,7 +173,7 @@ namespace Org.BouncyCastle.Crypto.Tests
             
                 for (int i = 10000; i != data.Length; i++)
                 {
-                    CSHAKEDigest cshake_ = new CSHAKEDigest(128, new byte[0], Arrays.CopyOfRange(data, 0, i));
+                    CShakeDigest cshake_ = new CShakeDigest(128, new byte[0], Arrays.CopyOfRange(data, 0, i));
 
                     cshake_.BlockUpdate(Hex.Decode("00010203"), 0, 4);
 
@@ -175,7 +181,7 @@ namespace Org.BouncyCastle.Crypto.Tests
                 }
             
 
-            CSHAKEDigest cshake = new CSHAKEDigest(256, new byte[0], new byte[200]);
+            CShakeDigest cshake = new CShakeDigest(256, new byte[0], new byte[200]);
 
             cshake.BlockUpdate(Arrays.CopyOfRange(data, 0, 200), 0, 200);
 
@@ -184,7 +190,7 @@ namespace Org.BouncyCastle.Crypto.Tests
             Assert.IsTrue(Arrays.AreEqual(Hex.Decode("4a899b5be460d85a9789215bc17f88b8f8ac049bd3b519f561e7b5d3870dafa3"), res));
         }
 
-        private void checkSHAKE(int bitSize, CSHAKEDigest cshake, byte[] msg)
+        private void checkSHAKE(int bitSize, CShakeDigest cshake, byte[] msg)
         {
             
             ShakeDigest ref_ = new ShakeDigest(bitSize);
@@ -201,5 +207,18 @@ namespace Org.BouncyCastle.Crypto.Tests
             Assert.IsTrue(Arrays.AreEqual(res1, res2));
         }
 
+        public static void Main(
+            string[] args)
+        {
+            RunTest(new CShakeTest());
+        }
+
+        [Test]
+        public void TestFunction()
+        {
+            string resultText = Perform().ToString();
+
+            Assert.AreEqual(Name + ": Okay", resultText);
+        }
     }
 }
diff --git a/crypto/test/src/crypto/test/KMACTest.cs b/crypto/test/src/crypto/test/KMACTest.cs
index c7f3843c1..bf9c7d034 100644
--- a/crypto/test/src/crypto/test/KMACTest.cs
+++ b/crypto/test/src/crypto/test/KMACTest.cs
@@ -1,19 +1,26 @@
-using NUnit.Framework;
+using System;
+using System.Text;
+
+using NUnit.Framework;
+
 using Org.BouncyCastle.Crypto.Macs;
 using Org.BouncyCastle.Crypto.Parameters;
 using Org.BouncyCastle.Utilities;
 using Org.BouncyCastle.Utilities.Encoders;
-using System;
-using System.Collections.Generic;
-using System.Linq;
-using System.Text;
+using Org.BouncyCastle.Utilities.Test;
 
 namespace Org.BouncyCastle.Crypto.Tests
 {
-    public class KMACTest
+    [TestFixture]
+    public class KMacTest
+        : SimpleTest
     {
-        [Test]
-        public void performTest()
+        public override string Name
+        {
+            get { return "KMAC"; }
+        }
+
+        public override void PerformTest()
         {
             KMac kmac = new KMac(128,  new byte[0] { });
 
@@ -133,7 +140,7 @@ namespace Org.BouncyCastle.Crypto.Tests
 
         }
 
-        public void doFinalTest()
+        private void doFinalTest()
         {
             KMac kmac = new KMac(128, Encoding.ASCII.GetBytes("My Tagged Application"));
 
@@ -241,5 +248,19 @@ namespace Org.BouncyCastle.Crypto.Tests
 
             Assert.IsTrue(Arrays.AreEqual(res1, res2));
         }
+
+        public static void Main(
+            string[] args)
+        {
+            RunTest(new KMacTest());
+        }
+
+        [Test]
+        public void TestFunction()
+        {
+            string resultText = Perform().ToString();
+
+            Assert.AreEqual(Name + ": Okay", resultText);
+        }
     }
 }
diff --git a/crypto/test/src/crypto/test/NistEccTest.cs b/crypto/test/src/crypto/test/NistEccTest.cs
new file mode 100644
index 000000000..2b0edb63d
--- /dev/null
+++ b/crypto/test/src/crypto/test/NistEccTest.cs
@@ -0,0 +1,106 @@
+using System;
+using System.Collections;
+using System.IO;
+using System.Text.RegularExpressions;
+using NUnit.Framework;
+using Org.BouncyCastle.Asn1.X9;
+using Org.BouncyCastle.Math;
+using Org.BouncyCastle.Math.EC;
+using Org.BouncyCastle.Utilities.Test;
+
+namespace Org.BouncyCastle.Crypto.Tests
+{
+    [TestFixture]
+    public class NistEccTest : SimpleTest
+    {
+        public override string Name { get; } = "NistEcc";
+
+        public override void PerformTest()
+        {
+            foreach (object[] testVector in CollectTestVectors())
+            {
+                TestMultiply(
+                    testVector[0] as string,
+                    testVector[1] as BigInteger,
+                    testVector[2] as BigInteger,
+                    testVector[3] as BigInteger
+                    );
+            }
+        }
+
+        public IEnumerable CollectTestVectors()
+        {
+            ArrayList testVectors = new ArrayList();
+            string curve = null;
+            BigInteger k = null;
+            BigInteger x = null;
+            BigInteger y = null;
+
+            using (StreamReader r = new StreamReader(SimpleTest.GetTestDataAsStream("crypto.nist_ecc.txt")))
+            {
+                string line;
+                while (null != (line = r.ReadLine()))
+                {
+                    Regex capture = new Regex(@"^ ?(\w+):? =? ?(\w+)", RegexOptions.Compiled);
+                    Match data = capture.Match(line);
+
+                    if (!data.Success) continue;
+                    string nistKey = data.Groups[1].Value;
+                    string nistValue = data.Groups[2].Value;
+                    switch (nistKey)
+                    {
+                        case "Curve":
+                            // Change curve name from LNNN to L-NNN ie: P256 to P-256
+                            curve = $"{nistValue.Substring(0, 1)}-{nistValue.Substring(1)}";
+                            break;
+                        case "k":
+                            k = new BigInteger(nistValue, 10);
+                            break;
+                        case "x":
+                            x = new BigInteger(nistValue, radix: 16);
+                            break;
+                        case "y":
+                            y = new BigInteger(nistValue, radix: 16);
+                            break;
+                    }
+
+                    if (null != curve && null != k && null != x && null != y)
+                    {
+                        testVectors.Add(new object[] {curve, k, x, y});
+                        k = null;
+                        x = null;
+                        y = null;
+                    }
+                }
+            }
+
+            return testVectors;
+        }
+
+        public void TestMultiply(string curve, BigInteger k, BigInteger expectedX, BigInteger expectedY)
+        {
+            // Arrange
+            X9ECParameters x9EcParameters = Asn1.Nist.NistNamedCurves.GetByName(curve);
+
+            // Act
+            ECPoint ecPoint = x9EcParameters.G.Multiply(k).Normalize();
+
+            // Assert
+            IsEquals("Unexpected X Coordinate", expectedX, ecPoint.AffineXCoord.ToBigInteger());
+            IsEquals("Unexpected Y Coordinate", expectedY, ecPoint.AffineYCoord.ToBigInteger());
+        }
+
+        public static void Main(string[] args)
+        {
+            RunTest(new NistEccTest());
+        }
+
+        [Test]
+        public void TestFunction()
+        {
+            string resultText = Perform().ToString();
+
+            Assert.AreEqual(Name + ": Okay", resultText);
+        }
+    }
+}
\ No newline at end of file
diff --git a/crypto/test/src/crypto/test/Poly1305Test.cs b/crypto/test/src/crypto/test/Poly1305Test.cs
index 7aaceb99e..fd4053cd4 100644
--- a/crypto/test/src/crypto/test/Poly1305Test.cs
+++ b/crypto/test/src/crypto/test/Poly1305Test.cs
@@ -13,8 +13,7 @@ using Org.BouncyCastle.Security;
 
 namespace Org.BouncyCastle.Crypto.Tests
 {
-	/*
-	 */
+	[TestFixture]
 	public class Poly1305Test
 		: SimpleTest
 	{
diff --git a/crypto/test/src/crypto/test/RegressionTest.cs b/crypto/test/src/crypto/test/RegressionTest.cs
index aa9cd0483..4b7b11651 100644
--- a/crypto/test/src/crypto/test/RegressionTest.cs
+++ b/crypto/test/src/crypto/test/RegressionTest.cs
@@ -143,7 +143,9 @@ namespace Org.BouncyCastle.Crypto.Tests
             new Ed448Test(),
             new KdfCounterTests(), 
             new KdfDoublePipelineTests(), 
-            new KdfFeedbackCounterTests()
+            new KdfFeedbackCounterTests(),
+            new CShakeTest(),
+            new KMacTest()
         };
 
         public static void Main(string[] args)
diff --git a/crypto/test/src/tsp/test/NewTspTest.cs b/crypto/test/src/tsp/test/NewTspTest.cs
index dd2f084f2..74b3222ce 100644
--- a/crypto/test/src/tsp/test/NewTspTest.cs
+++ b/crypto/test/src/tsp/test/NewTspTest.cs
@@ -1,7 +1,11 @@
-using NUnit.Framework;
+using System;
+using System.Collections;
+using System.IO;
+
+using NUnit.Framework;
+
 using Org.BouncyCastle.Asn1;
 using Org.BouncyCastle.Asn1.Cmp;
-using Org.BouncyCastle.Asn1.Cms;
 using Org.BouncyCastle.Asn1.Ess;
 using Org.BouncyCastle.Asn1.Nist;
 using Org.BouncyCastle.Asn1.Oiw;
@@ -15,20 +19,13 @@ using Org.BouncyCastle.Utilities;
 using Org.BouncyCastle.Utilities.Date;
 using Org.BouncyCastle.X509;
 using Org.BouncyCastle.X509.Store;
-using System;
-using System.Collections;
-using System.IO;
-
 
 namespace Org.BouncyCastle.Tsp.Tests
 {
-
-
 	public class NewTspTest
 	{
 		private static DateTime UnixEpoch = new DateTime(1970, 1, 1, 0, 0, 0);
 
-
 		[Test]
 		public void TestGeneral()
 		{
@@ -38,19 +35,18 @@ namespace Org.BouncyCastle.Tsp.Tests
 
 			string origDN = "CN=Eric H. Echidna, E=eric@bouncycastle.org, O=Bouncy Castle, C=AU";
 			AsymmetricCipherKeyPair origKP = TspTestUtil.MakeKeyPair();
-			var privateKey = origKP.Private;
+			AsymmetricKeyParameter privateKey = origKP.Private;
 
-			var cert = TspTestUtil.MakeCertificate(origKP, origDN, signKP, signDN);
+			X509Certificate cert = TspTestUtil.MakeCertificate(origKP, origDN, signKP, signDN);
 
 			IList certList = new ArrayList();
 			certList.Add(cert);
 			certList.Add(signCert);
 
-			var certs = X509StoreFactory.Create(
+			IX509Store certs = X509StoreFactory.Create(
 				"Certificate/Collection",
 				new X509CollectionStoreParameters(certList));
 
-
 			basicTest(origKP.Private, cert, certs);
 			resolutionTest(origKP.Private, cert, certs, Resolution.R_SECONDS, "19700101000009Z");
 			resolutionTest(origKP.Private, cert, certs, Resolution.R_TENTHS_OF_SECONDS, "19700101000009.9Z");
@@ -71,7 +67,6 @@ namespace Org.BouncyCastle.Tsp.Tests
 			testNoNonse(origKP.Private, cert, certs);
 			extensionTest(origKP.Private, cert, certs);
 			additionalExtensionTest(origKP.Private, cert, certs);
-
 		}
 
         private void additionalExtensionTest(AsymmetricKeyParameter privateKey, X509Certificate cert, IX509Store certs)
@@ -378,15 +373,15 @@ namespace Org.BouncyCastle.Tsp.Tests
 			{
 				tsToken.Validate(cert);
 			}
-			catch (TspValidationException e)
+			catch (TspValidationException)
 			{
 				Assert.Fail("certReq(false) verification of token failed.");
 			}
 
-			var store = tsToken.GetCertificates();
-			var certsColl = store.GetMatches(null);
+			IX509Store store = tsToken.GetCertificates();
+			ICollection certsColl = store.GetMatches(null);
 
-			if (certsColl.Count >0)
+			if (certsColl.Count > 0)
 			{
 				Assert.Fail("certReq(false) found certificates in response.");
 			}
@@ -654,7 +649,7 @@ namespace Org.BouncyCastle.Tsp.Tests
 				IStreamCalculator calc = digCalc.CreateCalculator();
 				using (Stream s = calc.Stream)
 				{
-					var crt = cert.GetEncoded();
+					byte[] crt = cert.GetEncoded();
 					s.Write(crt, 0, crt.Length);
 				}
 
@@ -667,7 +662,7 @@ namespace Org.BouncyCastle.Tsp.Tests
 				IStreamCalculator calc = digCalc.CreateCalculator();
 				using (Stream s = calc.Stream)
 				{
-					var crt = cert.GetEncoded();
+					byte[] crt = cert.GetEncoded();
 					s.Write(crt, 0, crt.Length);
 				}
 
@@ -761,13 +756,12 @@ namespace Org.BouncyCastle.Tsp.Tests
 
 		private void basicSha256Test(AsymmetricKeyParameter privateKey, X509Certificate cert, IX509Store certs)
 		{
-			var sInfoGenerator = makeInfoGenerator(privateKey, cert, TspAlgorithms.Sha256, null, null);
-			TimeStampTokenGenerator tsTokenGen = new TimeStampTokenGenerator(
-				sInfoGenerator,
-				Asn1DigestFactory.Get(NistObjectIdentifiers.IdSha256), new DerObjectIdentifier("1.2"), true);
-
+			SignerInfoGenerator sInfoGenerator = makeInfoGenerator(privateKey, cert, TspAlgorithms.Sha256, null, null);
+            TimeStampTokenGenerator tsTokenGen = new TimeStampTokenGenerator(
+                sInfoGenerator,
+                Asn1DigestFactory.Get(NistObjectIdentifiers.IdSha256), new DerObjectIdentifier("1.2"), true);
 
-			tsTokenGen.SetCertificates(certs);
+            tsTokenGen.SetCertificates(certs);
 
 			TimeStampRequestGenerator reqGen = new TimeStampRequestGenerator();
 			TimeStampRequest request = reqGen.Generate(TspAlgorithms.Sha256, new byte[32], BigInteger.ValueOf(100));
@@ -792,7 +786,7 @@ namespace Org.BouncyCastle.Tsp.Tests
 			IStreamCalculator calc = digCalc.CreateCalculator();
 			using (Stream s = calc.Stream)
 			{
-				var crt = cert.GetEncoded();
+				byte[] crt = cert.GetEncoded();
 				s.Write(crt, 0, crt.Length);
 			}
 
@@ -803,7 +797,6 @@ namespace Org.BouncyCastle.Tsp.Tests
 			Assert.IsTrue(Arrays.AreEqual(certHash, sigCertV2.GetCerts()[0].GetCertHash()));
 		}
 
-
 		private void resolutionTest(AsymmetricKeyParameter privateKey, X509.X509Certificate cert, IX509Store certs, Resolution resoution, string timeString)
 		{
 			TimeStampTokenGenerator tsTokenGen = new TimeStampTokenGenerator(
@@ -882,8 +875,6 @@ namespace Org.BouncyCastle.Tsp.Tests
 		 Asn1.Cms.AttributeTable signedAttr,
 		 Asn1.Cms.AttributeTable unsignedAttr)
 		{
-
-
 			TspUtil.ValidateCertificate(cert);
 
 			//
@@ -896,13 +887,12 @@ namespace Org.BouncyCastle.Tsp.Tests
 			}
 			else
 			{
-				signedAttrs = Platform.CreateHashtable();
+				signedAttrs = new Hashtable();
 			}
 
-
-
-			string digestName = CmsSignedHelper.Instance.GetDigestAlgName(digestOID);
-			string signatureName = digestName + "with" + CmsSignedHelper.Instance.GetEncryptionAlgName(CmsSignedHelper.Instance.GetEncOid(key, digestOID));
+            string digestName = TspTestUtil.GetDigestAlgName(digestOID);
+            string signatureName = digestName + "with" + TspTestUtil.GetEncryptionAlgName(
+				TspTestUtil.GetEncOid(key, digestOID));
 
 			Asn1SignatureFactory sigfact = new Asn1SignatureFactory(signatureName, key);
 			return new SignerInfoGeneratorBuilder()
diff --git a/crypto/test/src/tsp/test/TSPTest.cs b/crypto/test/src/tsp/test/TSPTest.cs
index cb72f967b..968929b6d 100644
--- a/crypto/test/src/tsp/test/TSPTest.cs
+++ b/crypto/test/src/tsp/test/TSPTest.cs
@@ -558,8 +558,7 @@ namespace Org.BouncyCastle.Tsp.Tests
 		[Test]
 		public void TestBasicSha256()
         {
-
-			var sInfoGenerator = makeInfoGenerator(privateKey, cert, TspAlgorithms.Sha256, null, null);
+			SignerInfoGenerator sInfoGenerator = MakeInfoGenerator(privateKey, cert, TspAlgorithms.Sha256, null, null);
 			TimeStampTokenGenerator tsTokenGen = new TimeStampTokenGenerator(
 				sInfoGenerator,
 				Asn1DigestFactory.Get(NistObjectIdentifiers.IdSha256),new DerObjectIdentifier("1.2"),true);
@@ -586,29 +585,21 @@ namespace Org.BouncyCastle.Tsp.Tests
 
 			AttributeTable table = tsToken.SignedAttributes;
 
-			var r = table.Get(PkcsObjectIdentifiers.IdAASigningCertificateV2);
+			Asn1.Cms.Attribute r = table[PkcsObjectIdentifiers.IdAASigningCertificateV2];
 			Assert.NotNull(r);
 			Assert.AreEqual(PkcsObjectIdentifiers.IdAASigningCertificateV2, r.AttrType);
-			var set = r.AttrValues;
+			Asn1Set set = r.AttrValues;
 			SigningCertificateV2 sCert = SigningCertificateV2.GetInstance(set[0]);
 
-			var issSerNum = sCert.GetCerts()[0].IssuerSerial;
+			Asn1.X509.IssuerSerial issSerNum = sCert.GetCerts()[0].IssuerSerial;
 
 			Assert.AreEqual(cert.SerialNumber, issSerNum.Serial.Value);	
-
 		}
 
-		internal static SignerInfoGenerator makeInfoGenerator(
-		 AsymmetricKeyParameter key,
-		 X509Certificate cert,
-		 string digestOID,
-
-		 Asn1.Cms.AttributeTable signedAttr,
-		 Asn1.Cms.AttributeTable unsignedAttr)
-		{
-
-
-			TspUtil.ValidateCertificate(cert);
+        internal static SignerInfoGenerator MakeInfoGenerator(AsymmetricKeyParameter key, X509Certificate cert,
+			string digestOID, Asn1.Cms.AttributeTable signedAttr, Asn1.Cms.AttributeTable unsignedAttr)
+        {
+            TspUtil.ValidateCertificate(cert);
 
 			//
 			// Add the ESSCertID attribute
@@ -620,13 +611,12 @@ namespace Org.BouncyCastle.Tsp.Tests
 			}
 			else
 			{
-				signedAttrs = Platform.CreateHashtable();
+				signedAttrs = new Hashtable();
 			}
 
-	
-
-			string digestName = CmsSignedHelper.Instance.GetDigestAlgName(digestOID);
-			string signatureName = digestName + "with" + CmsSignedHelper.Instance.GetEncryptionAlgName(CmsSignedHelper.Instance.GetEncOid(key, digestOID));
+			string digestName = TspTestUtil.GetDigestAlgName(digestOID);
+			string signatureName = digestName + "with" + TspTestUtil.GetEncryptionAlgName(
+				TspTestUtil.GetEncOid(key, digestOID));
 
 			Asn1SignatureFactory sigfact = new Asn1SignatureFactory(signatureName, key);
 			return new SignerInfoGeneratorBuilder()
@@ -637,6 +627,5 @@ namespace Org.BouncyCastle.Tsp.Tests
 				new SimpleAttributeTableGenerator(unsignedAttr))
 				.Build(sigfact, cert);
 		}
-
 	}
 }
diff --git a/crypto/test/src/tsp/test/TSPTestUtil.cs b/crypto/test/src/tsp/test/TSPTestUtil.cs
index f7b0c833a..c8c6a63c0 100644
--- a/crypto/test/src/tsp/test/TSPTestUtil.cs
+++ b/crypto/test/src/tsp/test/TSPTestUtil.cs
@@ -1,13 +1,21 @@
 using System;
+using System.Collections;
 using System.Text;
 
 using Org.BouncyCastle.Asn1;
+using Org.BouncyCastle.Asn1.CryptoPro;
+using Org.BouncyCastle.Asn1.Eac;
+using Org.BouncyCastle.Asn1.Nist;
+using Org.BouncyCastle.Asn1.Oiw;
+using Org.BouncyCastle.Asn1.Pkcs;
+using Org.BouncyCastle.Asn1.TeleTrust;
 using Org.BouncyCastle.Asn1.X509;
+using Org.BouncyCastle.Asn1.X9;
 using Org.BouncyCastle.Crypto;
-using Org.BouncyCastle.Crypto.Generators;
 using Org.BouncyCastle.Crypto.Parameters;
 using Org.BouncyCastle.Math;
 using Org.BouncyCastle.Security;
+using Org.BouncyCastle.Utilities.Collections;
 using Org.BouncyCastle.Utilities.Encoders;
 using Org.BouncyCastle.X509;
 
@@ -26,6 +34,44 @@ namespace Org.BouncyCastle.Tsp.Tests
 		public static readonly bool Debug = true;
 		public static DerObjectIdentifier EuroPkiTsaTestPolicy = new DerObjectIdentifier("1.3.6.1.4.1.5255.5.1");
 
+		private static readonly string EncryptionECDsaWithSha1 = X9ObjectIdentifiers.ECDsaWithSha1.Id;
+		private static readonly string EncryptionECDsaWithSha224 = X9ObjectIdentifiers.ECDsaWithSha224.Id;
+		private static readonly string EncryptionECDsaWithSha256 = X9ObjectIdentifiers.ECDsaWithSha256.Id;
+		private static readonly string EncryptionECDsaWithSha384 = X9ObjectIdentifiers.ECDsaWithSha384.Id;
+		private static readonly string EncryptionECDsaWithSha512 = X9ObjectIdentifiers.ECDsaWithSha512.Id;
+
+		public static readonly string DigestSha1 = OiwObjectIdentifiers.IdSha1.Id;
+		public static readonly string DigestSha224 = NistObjectIdentifiers.IdSha224.Id;
+		public static readonly string DigestSha256 = NistObjectIdentifiers.IdSha256.Id;
+		public static readonly string DigestSha384 = NistObjectIdentifiers.IdSha384.Id;
+		public static readonly string DigestSha512 = NistObjectIdentifiers.IdSha512.Id;
+		public static readonly string DigestMD5 = PkcsObjectIdentifiers.MD5.Id;
+		public static readonly string DigestGost3411 = CryptoProObjectIdentifiers.GostR3411.Id;
+		public static readonly string DigestRipeMD128 = TeleTrusTObjectIdentifiers.RipeMD128.Id;
+		public static readonly string DigestRipeMD160 = TeleTrusTObjectIdentifiers.RipeMD160.Id;
+		public static readonly string DigestRipeMD256 = TeleTrusTObjectIdentifiers.RipeMD256.Id;
+
+		public static readonly string EncryptionRsa = PkcsObjectIdentifiers.RsaEncryption.Id;
+		public static readonly string EncryptionDsa = X9ObjectIdentifiers.IdDsaWithSha1.Id;
+		public static readonly string EncryptionECDsa = X9ObjectIdentifiers.ECDsaWithSha1.Id;
+		public static readonly string EncryptionRsaPss = PkcsObjectIdentifiers.IdRsassaPss.Id;
+		public static readonly string EncryptionGost3410 = CryptoProObjectIdentifiers.GostR3410x94.Id;
+		public static readonly string EncryptionECGost3410 = CryptoProObjectIdentifiers.GostR3410x2001.Id;
+
+		private static readonly IDictionary encryptionAlgs = new Hashtable();
+		private static readonly IDictionary digestAlgs = new Hashtable();
+		private static readonly IDictionary digestAliases = new Hashtable();
+
+		private static readonly ISet noParams = new HashSet();
+		private static readonly IDictionary ecAlgorithms = new Hashtable();
+
+		private static void AddEntries(DerObjectIdentifier oid, string digest, string encryption)
+		{
+			string alias = oid.Id;
+			digestAlgs.Add(alias, digest);
+			encryptionAlgs.Add(alias, encryption);
+		}
+
 		static TspTestUtil()
 		{
 			rand = new SecureRandom();
@@ -50,6 +96,83 @@ namespace Org.BouncyCastle.Tsp.Tests
 			rc2128kg.Init(new KeyGenerationParameters(rand, 128));
 
 			serialNumber = BigInteger.One;
+
+			AddEntries(NistObjectIdentifiers.DsaWithSha224, "SHA224", "DSA");
+			AddEntries(NistObjectIdentifiers.DsaWithSha256, "SHA256", "DSA");
+			AddEntries(NistObjectIdentifiers.DsaWithSha384, "SHA384", "DSA");
+			AddEntries(NistObjectIdentifiers.DsaWithSha512, "SHA512", "DSA");
+			AddEntries(OiwObjectIdentifiers.DsaWithSha1, "SHA1", "DSA");
+			AddEntries(OiwObjectIdentifiers.MD4WithRsa, "MD4", "RSA");
+			AddEntries(OiwObjectIdentifiers.MD4WithRsaEncryption, "MD4", "RSA");
+			AddEntries(OiwObjectIdentifiers.MD5WithRsa, "MD5", "RSA");
+			AddEntries(OiwObjectIdentifiers.Sha1WithRsa, "SHA1", "RSA");
+			AddEntries(PkcsObjectIdentifiers.MD2WithRsaEncryption, "MD2", "RSA");
+			AddEntries(PkcsObjectIdentifiers.MD4WithRsaEncryption, "MD4", "RSA");
+			AddEntries(PkcsObjectIdentifiers.MD5WithRsaEncryption, "MD5", "RSA");
+			AddEntries(PkcsObjectIdentifiers.Sha1WithRsaEncryption, "SHA1", "RSA");
+			AddEntries(PkcsObjectIdentifiers.Sha224WithRsaEncryption, "SHA224", "RSA");
+			AddEntries(PkcsObjectIdentifiers.Sha256WithRsaEncryption, "SHA256", "RSA");
+			AddEntries(PkcsObjectIdentifiers.Sha384WithRsaEncryption, "SHA384", "RSA");
+			AddEntries(PkcsObjectIdentifiers.Sha512WithRsaEncryption, "SHA512", "RSA");
+			AddEntries(X9ObjectIdentifiers.ECDsaWithSha1, "SHA1", "ECDSA");
+			AddEntries(X9ObjectIdentifiers.ECDsaWithSha224, "SHA224", "ECDSA");
+			AddEntries(X9ObjectIdentifiers.ECDsaWithSha256, "SHA256", "ECDSA");
+			AddEntries(X9ObjectIdentifiers.ECDsaWithSha384, "SHA384", "ECDSA");
+			AddEntries(X9ObjectIdentifiers.ECDsaWithSha512, "SHA512", "ECDSA");
+			AddEntries(X9ObjectIdentifiers.IdDsaWithSha1, "SHA1", "DSA");
+			AddEntries(EacObjectIdentifiers.id_TA_ECDSA_SHA_1, "SHA1", "ECDSA");
+			AddEntries(EacObjectIdentifiers.id_TA_ECDSA_SHA_224, "SHA224", "ECDSA");
+			AddEntries(EacObjectIdentifiers.id_TA_ECDSA_SHA_256, "SHA256", "ECDSA");
+			AddEntries(EacObjectIdentifiers.id_TA_ECDSA_SHA_384, "SHA384", "ECDSA");
+			AddEntries(EacObjectIdentifiers.id_TA_ECDSA_SHA_512, "SHA512", "ECDSA");
+			AddEntries(EacObjectIdentifiers.id_TA_RSA_v1_5_SHA_1, "SHA1", "RSA");
+			AddEntries(EacObjectIdentifiers.id_TA_RSA_v1_5_SHA_256, "SHA256", "RSA");
+			AddEntries(EacObjectIdentifiers.id_TA_RSA_PSS_SHA_1, "SHA1", "RSAandMGF1");
+			AddEntries(EacObjectIdentifiers.id_TA_RSA_PSS_SHA_256, "SHA256", "RSAandMGF1");
+
+			encryptionAlgs.Add(X9ObjectIdentifiers.IdDsa.Id, "DSA");
+			encryptionAlgs.Add(PkcsObjectIdentifiers.RsaEncryption.Id, "RSA");
+			encryptionAlgs.Add(TeleTrusTObjectIdentifiers.TeleTrusTRsaSignatureAlgorithm.Id, "RSA");
+			encryptionAlgs.Add(X509ObjectIdentifiers.IdEARsa.Id, "RSA");
+			encryptionAlgs.Add(EncryptionRsaPss, "RSAandMGF1");
+			encryptionAlgs.Add(CryptoProObjectIdentifiers.GostR3410x94.Id, "GOST3410");
+			encryptionAlgs.Add(CryptoProObjectIdentifiers.GostR3410x2001.Id, "ECGOST3410");
+			encryptionAlgs.Add("1.3.6.1.4.1.5849.1.6.2", "ECGOST3410");
+			encryptionAlgs.Add("1.3.6.1.4.1.5849.1.1.5", "GOST3410");
+
+			digestAlgs.Add(PkcsObjectIdentifiers.MD2.Id, "MD2");
+			digestAlgs.Add(PkcsObjectIdentifiers.MD4.Id, "MD4");
+			digestAlgs.Add(PkcsObjectIdentifiers.MD5.Id, "MD5");
+			digestAlgs.Add(OiwObjectIdentifiers.IdSha1.Id, "SHA1");
+			digestAlgs.Add(NistObjectIdentifiers.IdSha224.Id, "SHA224");
+			digestAlgs.Add(NistObjectIdentifiers.IdSha256.Id, "SHA256");
+			digestAlgs.Add(NistObjectIdentifiers.IdSha384.Id, "SHA384");
+			digestAlgs.Add(NistObjectIdentifiers.IdSha512.Id, "SHA512");
+			digestAlgs.Add(TeleTrusTObjectIdentifiers.RipeMD128.Id, "RIPEMD128");
+			digestAlgs.Add(TeleTrusTObjectIdentifiers.RipeMD160.Id, "RIPEMD160");
+			digestAlgs.Add(TeleTrusTObjectIdentifiers.RipeMD256.Id, "RIPEMD256");
+			digestAlgs.Add(CryptoProObjectIdentifiers.GostR3411.Id, "GOST3411");
+			digestAlgs.Add("1.3.6.1.4.1.5849.1.2.1", "GOST3411");
+
+			digestAliases.Add("SHA1", new string[] { "SHA-1" });
+			digestAliases.Add("SHA224", new string[] { "SHA-224" });
+			digestAliases.Add("SHA256", new string[] { "SHA-256" });
+			digestAliases.Add("SHA384", new string[] { "SHA-384" });
+			digestAliases.Add("SHA512", new string[] { "SHA-512" });
+
+			noParams.Add(EncryptionDsa);
+			//noParams.Add(EncryptionECDsa);
+			noParams.Add(EncryptionECDsaWithSha1);
+			noParams.Add(EncryptionECDsaWithSha224);
+			noParams.Add(EncryptionECDsaWithSha256);
+			noParams.Add(EncryptionECDsaWithSha384);
+			noParams.Add(EncryptionECDsaWithSha512);
+
+			ecAlgorithms.Add(DigestSha1, EncryptionECDsaWithSha1);
+			ecAlgorithms.Add(DigestSha224, EncryptionECDsaWithSha224);
+			ecAlgorithms.Add(DigestSha256, EncryptionECDsaWithSha256);
+			ecAlgorithms.Add(DigestSha384, EncryptionECDsaWithSha384);
+			ecAlgorithms.Add(DigestSha512, EncryptionECDsaWithSha512);
 		}
 
 		public static string DumpBase64(
@@ -75,6 +198,100 @@ namespace Org.BouncyCastle.Tsp.Tests
 			return buf.ToString();
 		}
 
+		public static string GetDigestAlgName(string digestAlgOid)
+		{
+			string algName = (string)digestAlgs[digestAlgOid];
+
+			if (algName != null)
+			{
+				return algName;
+			}
+
+			return digestAlgOid;
+		}
+
+		public static string GetEncryptionAlgName(string encryptionAlgOid)
+		{
+			string algName = (string)encryptionAlgs[encryptionAlgOid];
+
+			if (algName != null)
+			{
+				return algName;
+			}
+
+			return encryptionAlgOid;
+		}
+
+		internal static string GetEncOid(
+			AsymmetricKeyParameter key,
+			string digestOID)
+		{
+			string encOID = null;
+
+			if (key is RsaKeyParameters)
+			{
+				if (!((RsaKeyParameters)key).IsPrivate)
+					throw new ArgumentException("Expected RSA private key");
+
+				encOID = EncryptionRsa;
+			}
+			else if (key is DsaPrivateKeyParameters)
+			{
+				if (digestOID.Equals(DigestSha1))
+				{
+					encOID = EncryptionDsa;
+				}
+				else if (digestOID.Equals(DigestSha224))
+				{
+					encOID = NistObjectIdentifiers.DsaWithSha224.Id;
+				}
+				else if (digestOID.Equals(DigestSha256))
+				{
+					encOID = NistObjectIdentifiers.DsaWithSha256.Id;
+				}
+				else if (digestOID.Equals(DigestSha384))
+				{
+					encOID = NistObjectIdentifiers.DsaWithSha384.Id;
+				}
+				else if (digestOID.Equals(DigestSha512))
+				{
+					encOID = NistObjectIdentifiers.DsaWithSha512.Id;
+				}
+				else
+				{
+					throw new ArgumentException("can't mix DSA with anything but SHA1/SHA2");
+				}
+			}
+			else if (key is ECPrivateKeyParameters)
+			{
+				ECPrivateKeyParameters ecPrivKey = (ECPrivateKeyParameters)key;
+				string algName = ecPrivKey.AlgorithmName;
+
+				if (algName == "ECGOST3410")
+				{
+					encOID = EncryptionECGost3410;
+				}
+				else
+				{
+					// TODO Should we insist on algName being one of "EC" or "ECDSA", as Java does?
+					encOID = (string)ecAlgorithms[digestOID];
+
+					if (encOID == null)
+						throw new ArgumentException("can't mix ECDSA with anything but SHA family digests");
+				}
+			}
+			else if (key is Gost3410PrivateKeyParameters)
+			{
+				encOID = EncryptionGost3410;
+			}
+			else
+			{
+				throw new ArgumentException("Unknown algorithm in CmsSignedGenerator.GetEncOid");
+			}
+
+			return encOID;
+		}
+
 		public static AsymmetricCipherKeyPair MakeKeyPair()
 		{
 			return kpg.GenerateKeyPair();