[PATCH gnupg 1/1] added kyber

Falko Strenzke falko.strenzke at mtg.de
Wed Sep 27 15:54:19 CEST 2023


---
 .gitignore               |  16 +
 cipher/Makefile.am       |   9 +-
 cipher/consttime.c       |  28 ++
 cipher/consttime.h       |  36 ++
 cipher/dsa.c             |   1 +
 cipher/ecc.c             |   1 +
 cipher/elgamal.c         |   1 +
 cipher/mlkem-aux.c       |  72 ++++
 cipher/mlkem-aux.h       |  34 ++
 cipher/mlkem-cbd.c       | 154 +++++++++
 cipher/mlkem-cbd.h       |  38 ++
 cipher/mlkem-common.c    | 727 +++++++++++++++++++++++++++++++++++++++
 cipher/mlkem-common.h    |  60 ++++
 cipher/mlkem-ntt.c       | 181 ++++++++++
 cipher/mlkem-ntt.h       |  35 ++
 cipher/mlkem-params.h    |  79 +++++
 cipher/mlkem-poly.c      | 436 +++++++++++++++++++++++
 cipher/mlkem-poly.h      |  95 +++++
 cipher/mlkem-polyvec.c   | 409 ++++++++++++++++++++++
 cipher/mlkem-polyvec.h   |  84 +++++
 cipher/mlkem-symmetric.c |  85 +++++
 cipher/mlkem-symmetric.h |  66 ++++
 cipher/mlkem.c           | 479 ++++++++++++++++++++++++++
 cipher/pubkey.c          |  51 +++
 cipher/rsa.c             |   1 +
 configure.ac             |   9 +-
 doc/gcrypt.texi          |  28 ++
 src/cipher-proto.h       |   7 +
 src/cipher.h             |   1 +
 src/gcrypt-int.h         |   1 +
 src/gcrypt.h.in          |  11 +-
 src/global.c             |   4 +
 src/libgcrypt.def        |   1 +
 src/libgcrypt.vers       |   2 +-
 src/secmem.c             |  18 +-
 src/secmem.h             |   1 +
 src/visibility.c         |  12 +
 src/visibility.h         |   2 +
 tests/Makefile.am        |   7 +-
 tests/keygen.c           |  28 ++
 tests/mlkem-1024_ref.inp | 495 ++++++++++++++++++++++++++
 tests/mlkem-512_ref.inp  | 495 ++++++++++++++++++++++++++
 tests/mlkem-768_ref.inp  | 495 ++++++++++++++++++++++++++
 tests/mlkem-test.c       | 565 ++++++++++++++++++++++++++++++
 tests/test-utils.h       | 168 +++++++++
 45 files changed, 5519 insertions(+), 9 deletions(-)
 create mode 100644 cipher/consttime.c
 create mode 100644 cipher/consttime.h
 create mode 100644 cipher/mlkem-aux.c
 create mode 100644 cipher/mlkem-aux.h
 create mode 100644 cipher/mlkem-cbd.c
 create mode 100644 cipher/mlkem-cbd.h
 create mode 100644 cipher/mlkem-common.c
 create mode 100644 cipher/mlkem-common.h
 create mode 100644 cipher/mlkem-ntt.c
 create mode 100644 cipher/mlkem-ntt.h
 create mode 100644 cipher/mlkem-params.h
 create mode 100644 cipher/mlkem-poly.c
 create mode 100644 cipher/mlkem-poly.h
 create mode 100644 cipher/mlkem-polyvec.c
 create mode 100644 cipher/mlkem-polyvec.h
 create mode 100644 cipher/mlkem-symmetric.c
 create mode 100644 cipher/mlkem-symmetric.h
 create mode 100644 cipher/mlkem.c
 create mode 100644 tests/mlkem-1024_ref.inp
 create mode 100644 tests/mlkem-512_ref.inp
 create mode 100644 tests/mlkem-768_ref.inp
 create mode 100644 tests/mlkem-test.c
 create mode 100644 tests/test-utils.h

diff --git a/.gitignore b/.gitignore
index b5b65d83..c886efe2 100644
--- a/.gitignore
+++ b/.gitignore
@@ -112,3 +112,19 @@ tests/t-x448
 tests/tsexp
 tests/version
 tests/*.exe
+
+src/libgcrypt.la.done
+tags
+tests/t-dsa
+tests/t-ecdsa
+tests/t-ed448
+tests/t-rsa-15
+tests/t-rsa-pss
+tests/t-rsa-testparm
+tests/mlkem-test
+tests/cshake
+tests/testdrv
+
+.ycm_extra_conf.py
+cscope.out
+config.h.in~
diff --git a/cipher/Makefile.am b/cipher/Makefile.am
index ada89418..d999f871 100644
--- a/cipher/Makefile.am
+++ b/cipher/Makefile.am
@@ -67,7 +67,8 @@ libcipher_la_SOURCES = \
 	primegen.c \
 	hash-common.c hash-common.h \
 	dsa-common.c rsa-common.c \
-	sha1.h
+	sha1.h \
+	consttime.c consttime.h
 
 EXTRA_libcipher_la_SOURCES = \
 	asm-common-aarch64.h \
@@ -154,7 +155,11 @@ EXTRA_libcipher_la_SOURCES = \
 	camellia-simd128.h camellia-ppc8le.c camellia-ppc9le.c \
 	blake2.c \
 	blake2b-amd64-avx2.S blake2b-amd64-avx512.S \
-	blake2s-amd64-avx.S blake2s-amd64-avx512.S
+	blake2s-amd64-avx.S blake2s-amd64-avx512.S \
+	mlkem.c mlkem-common.c \
+	mlkem.h mlkem-common.h \
+	mlkem-ntt.c mlkem-poly.c mlkem-polyvec.c mlkem-randombytes.c mlkem-symmetric.c \
+	mlkem-ntt.h mlkem-poly.h mlkem-polyvec.h mlkem-randombytes.h mlkem-symmetric.h
 
 gost28147.lo: gost-sb.h
 gost-sb.h: gost-s-box$(EXEEXT_FOR_BUILD)
diff --git a/cipher/consttime.c b/cipher/consttime.c
new file mode 100644
index 00000000..9f7fe13a
--- /dev/null
+++ b/cipher/consttime.c
@@ -0,0 +1,28 @@
+
+#include <stddef.h>
+#include <stdint.h>
+#include <consttime.h>
+
+int _gcry_consttime_bytes_differ(const uint8_t *a, const uint8_t *b, size_t len)
+{
+  size_t i;
+  uint8_t r = 0;
+
+  for (i = 0; i < len; i++)
+    {
+      r |= a[i] ^ b[i];
+    }
+
+  return (-(uint64_t)r) >> 63;
+}
+
+void _gcry_consttime_cmov(uint8_t *r, const uint8_t *x, size_t len, uint8_t b)
+{
+  size_t i;
+
+  b = -b;
+  for (i = 0; i < len; i++)
+    {
+      r[i] ^= b & (r[i] ^ x[i]);
+    }
+}
diff --git a/cipher/consttime.h b/cipher/consttime.h
new file mode 100644
index 00000000..c3d3894b
--- /dev/null
+++ b/cipher/consttime.h
@@ -0,0 +1,36 @@
+#ifndef CONSTTIME_H
+#define CONSTTIME_H
+
+#include <stddef.h>
+#include <stdint.h>
+
+/*************************************************
+ * Name:        _gcry_constime_bytes_differ
+ *
+ * Description: Compare two arrays for equality in constant time.
+ *
+ * Arguments:   const uint8_t *a: pointer to first byte array
+ *              const uint8_t *b: pointer to second byte array
+ *              size_t len:       length of the byte arrays
+ *
+ * Returns 0 if the byte arrays are equal, 1 otherwise
+ **************************************************/
+int _gcry_consttime_bytes_differ(const uint8_t *a, const uint8_t *b, size_t len);
+
+/*************************************************
+ * Name:        _gcry_consttime_cmov
+ *
+ * Description: Copy len bytes from x to r if b is 1;
+ *              don't modify x if b is 0. Requires b to be in {0,1};
+ *              assumes two's complement representation of negative integers.
+ *              Runs in constant time.
+ *
+ * Arguments:   uint8_t *r:       pointer to output byte array
+ *              const uint8_t *x: pointer to input byte array
+ *              size_t len:       Amount of bytes to be copied
+ *              uint8_t b:        Condition bit; has to be in {0,1}
+ **************************************************/
+void _gcry_consttime_cmov(uint8_t *r, const uint8_t *x, size_t len, uint8_t b);
+
+
+#endif /* CIPHER_CONSTTIME_H */
diff --git a/cipher/dsa.c b/cipher/dsa.c
index e559f9f5..91b7210b 100644
--- a/cipher/dsa.c
+++ b/cipher/dsa.c
@@ -1449,6 +1449,7 @@ gcry_pk_spec_t _gcry_pubkey_spec_dsa =
     dsa_check_secret_key,
     NULL,
     NULL,
+    NULL,
     dsa_sign,
     dsa_verify,
     dsa_get_nbits,
diff --git a/cipher/ecc.c b/cipher/ecc.c
index 65525207..b3f02631 100644
--- a/cipher/ecc.c
+++ b/cipher/ecc.c
@@ -2370,6 +2370,7 @@ gcry_pk_spec_t _gcry_pubkey_spec_ecc =
     ecc_generate,
     ecc_check_secret_key,
     ecc_encrypt_raw,
+    NULL,
     ecc_decrypt_raw,
     ecc_sign,
     ecc_verify,
diff --git a/cipher/elgamal.c b/cipher/elgamal.c
index eead4502..4f4340ec 100644
--- a/cipher/elgamal.c
+++ b/cipher/elgamal.c
@@ -1144,6 +1144,7 @@ gcry_pk_spec_t _gcry_pubkey_spec_elg =
     elg_generate,
     elg_check_secret_key,
     elg_encrypt,
+    NULL,
     elg_decrypt,
     elg_sign,
     elg_verify,
diff --git a/cipher/mlkem-aux.c b/cipher/mlkem-aux.c
new file mode 100644
index 00000000..fe4e0e1e
--- /dev/null
+++ b/cipher/mlkem-aux.c
@@ -0,0 +1,72 @@
+/* mlkem-aux.c - Auxiliary functions for ML-KEM
+ * Copyright (C) 2023 MTG AG
+ * The code was created based on the reference implementation that is part of the ML-KEM NIST submission.
+ *
+ * This file is part of Libgcrypt.
+ *
+ * Libgcrypt is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License as
+ * published by the Free Software Foundation; either version 2.1 of
+ * the License, or (at your option) any later version.
+ *
+ * Libgcrypt is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this program; if not, see <http://www.gnu.org/licenses/>.
+ */
+
+#include <stddef.h>
+#include <stdint.h>
+#include "mlkem-aux.h"
+#include "mlkem-params.h"
+
+
+#define MONT -1044 // 2^16 mod q
+#define QINV -3327 // q^-1 mod 2^16
+
+
+/*************************************************
+ * Name:        _gcry_mlkem_montgomery_reduce
+ *
+ * Description: Montgomery reduction; given a 32-bit integer a, computes
+ *              16-bit integer congruent to a * R^-1 mod q, where R=2^16
+ *
+ * Arguments:   - int32_t a: input integer to be reduced;
+ *                           has to be in {-q2^15,...,q2^15-1}
+ *
+ * Returns:     integer in {-q+1,...,q-1} congruent to a * R^-1 modulo q.
+ **************************************************/
+int16_t
+_gcry_mlkem_montgomery_reduce (int32_t a)
+{
+  int16_t t;
+
+  t = (int16_t)a * QINV;
+  t = (a - (int32_t)t * GCRY_MLKEM_Q) >> 16;
+  return t;
+}
+
+/*************************************************
+ * Name:        barrett_reduce
+ *
+ * Description: Barrett reduction; given a 16-bit integer a, computes
+ *              centered representative congruent to a mod q in
+ *{-(q-1)/2,...,(q-1)/2}
+ *
+ * Arguments:   - int16_t a: input integer to be reduced
+ *
+ * Returns:     integer in {-(q-1)/2,...,(q-1)/2} congruent to a modulo q.
+ **************************************************/
+int16_t
+_gcry_mlkem_barrett_reduce (int16_t a)
+{
+  int16_t t;
+  const int16_t v = ((1 << 26) + GCRY_MLKEM_Q / 2) / GCRY_MLKEM_Q;
+
+  t = ((int32_t)v * a + (1 << 25)) >> 26;
+  t *= GCRY_MLKEM_Q;
+  return a - t;
+}
diff --git a/cipher/mlkem-aux.h b/cipher/mlkem-aux.h
new file mode 100644
index 00000000..33c77afe
--- /dev/null
+++ b/cipher/mlkem-aux.h
@@ -0,0 +1,34 @@
+/* mlkem-aux.h - Auxiliary functions for ML-KEM
+ * Copyright (C) 2023 MTG AG
+ * The code was created based on the reference implementation that is part of the ML-KEM NIST submission.
+ *
+ * This file is part of Libgcrypt.
+ *
+ * Libgcrypt is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License as
+ * published by the Free Software Foundation; either version 2.1 of
+ * the License, or (at your option) any later version.
+ *
+ * Libgcrypt is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this program; if not, see <http://www.gnu.org/licenses/>.
+ */
+
+#ifndef GCRYPT_MLKEM_AUX_H
+#define GCRYPT_MLKEM_AUX_H
+
+#include <stddef.h>
+#include <stdint.h>
+#include "mlkem-params.h"
+
+int16_t _gcry_mlkem_montgomery_reduce (int32_t a);
+
+int16_t _gcry_mlkem_barrett_reduce (int16_t a);
+
+typedef void *(*xtry_alloc_func_t) (size_t);
+
+#endif /* GCRYPT_MLKEM_AUX_H */
diff --git a/cipher/mlkem-cbd.c b/cipher/mlkem-cbd.c
new file mode 100644
index 00000000..4ffe7d7e
--- /dev/null
+++ b/cipher/mlkem-cbd.c
@@ -0,0 +1,154 @@
+/* mlkem-cbd.c - centered binomial distribution functions for ML-KEM
+ * Copyright (C) 2023 MTG AG
+ * The code was created based on the reference implementation that is part of the ML-KEM NIST submission.
+ *
+ * This file is part of Libgcrypt.
+ *
+ * Libgcrypt is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License as
+ * published by the Free Software Foundation; either version 2.1 of
+ * the License, or (at your option) any later version.
+ *
+ * Libgcrypt is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this program; if not, see <http://www.gnu.org/licenses/>.
+ */
+
+#include <stdint.h>
+#include "mlkem-params.h"
+#include "mlkem-cbd.h"
+
+/*************************************************
+ * Name:        load32_littleendian
+ *
+ * Description: load 4 bytes into a 32-bit integer
+ *              in little-endian order
+ *
+ * Arguments:   - const uint8_t *x: pointer to input byte array
+ *
+ * Returns 32-bit unsigned integer loaded from x
+ **************************************************/
+static uint32_t
+load32_littleendian (const uint8_t x[4])
+{
+  uint32_t r;
+  r = (uint32_t)x[0];
+  r |= (uint32_t)x[1] << 8;
+  r |= (uint32_t)x[2] << 16;
+  r |= (uint32_t)x[3] << 24;
+  return r;
+}
+
+/*************************************************
+ * Name:        load24_littleendian
+ *
+ * Description: load 3 bytes into a 32-bit integer
+ *              in little-endian order.
+ *              This function is only needed for ML-KEM-512
+ *
+ * Arguments:   - const uint8_t *x: pointer to input byte array
+ *
+ * Returns 32-bit unsigned integer loaded from x (most significant byte is zero)
+ **************************************************/
+static uint32_t
+load24_littleendian (const uint8_t x[3])
+{
+  uint32_t r;
+  r = (uint32_t)x[0];
+  r |= (uint32_t)x[1] << 8;
+  r |= (uint32_t)x[2] << 16;
+  return r;
+}
+
+
+/*************************************************
+ * Name:        cbd2
+ *
+ * Description: Given an array of uniformly random bytes, compute
+ *              polynomial with coefficients distributed according to
+ *              a centered binomial distribution with parameter eta=2
+ *
+ * Arguments:   - gcry_mlkem_poly *r: pointer to output polynomial
+ *              - const uint8_t *buf: pointer to input byte array
+ **************************************************/
+static void
+cbd2 (gcry_mlkem_poly *r, const uint8_t buf[2 * GCRY_MLKEM_N / 4])
+{
+  unsigned int i, j;
+  uint32_t t, d;
+  int16_t a, b;
+
+  for (i = 0; i < GCRY_MLKEM_N / 8; i++)
+    {
+      t = load32_littleendian (buf + 4 * i);
+      d = t & 0x55555555;
+      d += (t >> 1) & 0x55555555;
+
+      for (j = 0; j < 8; j++)
+        {
+          a                    = (d >> (4 * j + 0)) & 0x3;
+          b                    = (d >> (4 * j + 2)) & 0x3;
+          r->coeffs[8 * i + j] = a - b;
+        }
+    }
+}
+
+/*************************************************
+ * Name:        cbd3
+ *
+ * Description: Given an array of uniformly random bytes, compute
+ *              polynomial with coefficients distributed according to
+ *              a centered binomial distribution with parameter eta=3.
+ *              This function is only needed for ML-KEM-512
+ *
+ * Arguments:   - gcry_mlkem_poly *r: pointer to output polynomial
+ *              - const uint8_t *buf: pointer to input byte array
+ **************************************************/
+static void
+cbd3 (gcry_mlkem_poly *r, const uint8_t buf[3 * GCRY_MLKEM_N / 4])
+{
+  unsigned int i, j;
+  uint32_t t, d;
+  int16_t a, b;
+
+  for (i = 0; i < GCRY_MLKEM_N / 4; i++)
+    {
+      t = load24_littleendian (buf + 3 * i);
+      d = t & 0x00249249;
+      d += (t >> 1) & 0x00249249;
+      d += (t >> 2) & 0x00249249;
+
+      for (j = 0; j < 4; j++)
+        {
+          a                    = (d >> (6 * j + 0)) & 0x7;
+          b                    = (d >> (6 * j + 3)) & 0x7;
+          r->coeffs[4 * i + j] = a - b;
+        }
+    }
+}
+
+void
+_gcry_mlkem_poly_cbd_eta1 (gcry_mlkem_poly *r,
+                           const uint8_t *buf,
+                           gcry_mlkem_param_t const *param)
+{
+  if (param->eta1 == 2)
+    {
+      cbd2 (r, buf);
+    }
+  else // eta1 = 3
+    {
+      cbd3 (r, buf);
+    }
+}
+
+void
+_gcry_mlkem_poly_cbd_eta2 (
+    gcry_mlkem_poly *r, const uint8_t buf[GCRY_MLKEM_ETA2 * GCRY_MLKEM_N / 4])
+{
+  cbd2 (r, buf);
+}
diff --git a/cipher/mlkem-cbd.h b/cipher/mlkem-cbd.h
new file mode 100644
index 00000000..abc4799b
--- /dev/null
+++ b/cipher/mlkem-cbd.h
@@ -0,0 +1,38 @@
+/* mlkem-cbd.h - centered binomial distribution functions for ML-KEM
+ * Copyright (C) 2023 MTG AG
+ * The code was created based on the reference implementation that is part of the ML-KEM NIST submission.
+ *
+ * This file is part of Libgcrypt.
+ *
+ * Libgcrypt is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License as
+ * published by the Free Software Foundation; either version 2.1 of
+ * the License, or (at your option) any later version.
+ *
+ * Libgcrypt is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this program; if not, see <http://www.gnu.org/licenses/>.
+ */
+
+#ifndef GCRYPT_MLKEM_CBD_H
+#define GCRYPT_MLKEM_CBD_H
+
+#include <stdint.h>
+#include "mlkem-params.h"
+#include "mlkem-poly.h"
+
+/**
+ * buf has length MLKEM_ETA1*GCRY_MLKEM_N/4
+ */
+void _gcry_mlkem_poly_cbd_eta1 (gcry_mlkem_poly *r,
+                                const uint8_t *buf,
+                                gcry_mlkem_param_t const *param);
+
+void _gcry_mlkem_poly_cbd_eta2 (
+    gcry_mlkem_poly *r, const uint8_t buf[GCRY_MLKEM_ETA2 * GCRY_MLKEM_N / 4]);
+
+#endif /* GCRYPT_MLKEM_CBD_H */
diff --git a/cipher/mlkem-common.c b/cipher/mlkem-common.c
new file mode 100644
index 00000000..3cbad5f8
--- /dev/null
+++ b/cipher/mlkem-common.c
@@ -0,0 +1,727 @@
+/* mlkem-common.c - general functions for ML-KEM
+ * Copyright (C) 2023 MTG AG
+ * The code was created based on the reference implementation that is part of the ML-KEM NIST submission.
+ *
+ * This file is part of Libgcrypt.
+ *
+ * Libgcrypt is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License as
+ * published by the Free Software Foundation; either version 2.1 of
+ * the License, or (at your option) any later version.
+ *
+ * Libgcrypt is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this program; if not, see <http://www.gnu.org/licenses/>.
+ */
+
+#include <stddef.h>
+#include <stdint.h>
+// #include <config.h>
+#include "mlkem-common.h"
+#include "mlkem-params.h"
+#include "mlkem-polyvec.h"
+#include "mlkem-poly.h"
+#include "mlkem-ntt.h"
+#include "mlkem-aux.h"
+#include "consttime.h"
+#include "mlkem-symmetric.h"
+#include "gcrypt.h"
+
+#include "g10lib.h"
+
+#define GEN_MATRIX_NBLOCKS                                                    \
+  ((12 * GCRY_MLKEM_N / 8 * (1 << 12) / GCRY_MLKEM_Q                          \
+    + GCRY_MLKEM_XOF_BLOCKBYTES)                                              \
+   / GCRY_MLKEM_XOF_BLOCKBYTES)
+
+
+/*************************************************
+ * Name:        _gcry_mlkem_pack_pk
+ *
+ * Description: Serialize the public key as concatenation of the
+ *              serialized vector of polynomials pk
+ *              and the public seed used to generate the matrix A.
+ *
+ * Arguments:   uint8_t *r: pointer to the output serialized public key
+ *              gcry_mlkem_polyvec *pk: pointer to the input public-key
+ *              gcry_mlkem_polyvec const uint8_t *seed: pointer to the input
+ *public seed gcry_mlkem_param_t const *param: mlkem parameters
+ *
+ **************************************************/
+static void
+_gcry_mlkem_pack_pk (uint8_t *r,
+                     gcry_mlkem_polyvec *pk,
+                     const uint8_t seed[GCRY_MLKEM_SYMBYTES],
+                     gcry_mlkem_param_t const *param)
+{
+  _gcry_mlkem_polyvec_tobytes (r, pk, param);
+  memcpy (r + param->polyvec_bytes, seed, GCRY_MLKEM_SYMBYTES);
+}
+
+/*************************************************
+ * Name:        unpack_pk
+ *
+ * Description: De-serialize public key from a byte array;
+ *              approximate inverse of _gcry_mlkem_pack_pk
+ *
+ * Arguments:   - gcry_mlkem_polyvec *pk: pointer to output public-key
+ *polynomial vector
+ *              - uint8_t *seed: pointer to output seed to generate matrix A
+ *              - const uint8_t *packedpk: pointer to input serialized public
+ *              - gcry_mlkem_param_t const *param: mlkem parameters
+ *key
+ **************************************************/
+static void
+_gcry_mlkem_unpack_pk (gcry_mlkem_polyvec *pk,
+                       uint8_t seed[GCRY_MLKEM_SYMBYTES],
+                       const uint8_t *packedpk,
+                       gcry_mlkem_param_t const *param)
+{
+  _gcry_mlkem_polyvec_frombytes (pk, packedpk, param);
+  memcpy (seed, packedpk + param->polyvec_bytes, GCRY_MLKEM_SYMBYTES);
+}
+
+/*************************************************
+ * Name:        _gcry_mlkem_pack_sk
+ *
+ * Description: Serialize the secret key
+ *
+ * Arguments:   - uint8_t *r: pointer to output serialized secret key
+ *              - gcry_mlkem_polyvec *sk: pointer to input vector of
+ *              - gcry_mlkem_param_t const *param: mlkem parameters
+ *polynomials (secret key)
+ **************************************************/
+static void
+_gcry_mlkem_pack_sk (uint8_t *r,
+                     gcry_mlkem_polyvec *sk,
+                     gcry_mlkem_param_t const *param)
+{
+  _gcry_mlkem_polyvec_tobytes (r, sk, param);
+}
+
+/*************************************************
+ * Name:        _gcry_mlkem_unpack_sk
+ *
+ * Description: De-serialize the secret key; inverse of _gcry_mlkem_pack_sk
+ *
+ * Arguments:   - gcry_mlkem_polyvec *sk: pointer to output vector of
+ *polynomials (secret key)
+ *              - const uint8_t *packedsk: pointer to input serialized secret
+ *              - gcry_mlkem_param_t const *param: mlkem parameters
+ *key
+ **************************************************/
+static void
+_gcry_mlkem_unpack_sk (gcry_mlkem_polyvec *sk,
+                       const uint8_t *packedsk,
+                       gcry_mlkem_param_t const *param)
+{
+  _gcry_mlkem_polyvec_frombytes (sk, packedsk, param);
+}
+
+/*************************************************
+ * Name:        _gcry_mlkem_pack_ciphertext
+ *
+ * Description: Serialize the ciphertext as concatenation of the
+ *              compressed and serialized vector of polynomials b
+ *              and the compressed and serialized polynomial v
+ *
+ * Arguments:   uint8_t *r: pointer to the output serialized ciphertext
+ *              poly *pk: pointer to the input vector of polynomials b
+ *              poly *v: pointer to the input polynomial v
+ *              gcry_mlkem_param_t const *param: mlkem parameters
+ **************************************************/
+static void
+_gcry_mlkem_pack_ciphertext (uint8_t *r,
+                             gcry_mlkem_polyvec *b,
+                             gcry_mlkem_poly *v,
+                             gcry_mlkem_param_t const *param)
+{
+  _gcry_mlkem_polyvec_compress (r, b, param);
+  _gcry_mlkem_poly_compress (r + param->polyvec_compressed_bytes, v, param);
+}
+
+/*************************************************
+ * Name:        _gcry_mlkem_unpack_ciphertext
+ *
+ * Description: De-serialize and decompress ciphertext from a byte array;
+ *              approximate inverse of pack_ciphertext
+ *
+ * Arguments:   - gcry_mlkem_polyvec *b: pointer to the output vector of
+ *polynomials b
+ *              - poly *v: pointer to the output polynomial v
+ *              - const uint8_t *c: pointer to the input serialized ciphertext
+ *              - gcry_mlkem_param_t const *param: mlkem parameters
+ **************************************************/
+static void
+_gcry_mlkem_unpack_ciphertext (gcry_mlkem_polyvec *b,
+                               gcry_mlkem_poly *v,
+                               const uint8_t *c,
+                               gcry_mlkem_param_t const *param)
+{
+  _gcry_mlkem_polyvec_decompress (b, c, param);
+  _gcry_mlkem_poly_decompress (v, c + param->polyvec_compressed_bytes, param);
+}
+
+/*************************************************
+ * Name:        rej_uniform
+ *
+ * Description: Run rejection sampling on uniform random bytes to generate
+ *              uniform random integers mod q
+ *
+ * Arguments:   - int16_t *r: pointer to output buffer
+ *              - unsigned int len: requested number of 16-bit integers
+ *(uniform mod q)
+ *              - const uint8_t *buf: pointer to input buffer (assumed to be
+ *uniformly random bytes)
+ *              - unsigned int buflen: length of input buffer in bytes
+ *
+ * Returns number of sampled 16-bit integers (at most len)
+ **************************************************/
+static unsigned int
+_gcry_mlkem_rej_uniform (int16_t *r,
+                         unsigned int len,
+                         const uint8_t *buf,
+                         unsigned int buflen)
+{
+  unsigned int ctr, pos;
+  uint16_t val0, val1;
+
+  ctr = pos = 0;
+  while (ctr < len && pos + 3 <= buflen)
+    {
+      val0 = ((buf[pos + 0] >> 0) | ((uint16_t)buf[pos + 1] << 8)) & 0xFFF;
+      val1 = ((buf[pos + 1] >> 4) | ((uint16_t)buf[pos + 2] << 4)) & 0xFFF;
+      pos += 3;
+
+      if (val0 < GCRY_MLKEM_Q)
+        {
+          r[ctr++] = val0;
+        }
+      if (ctr < len && val1 < GCRY_MLKEM_Q)
+        {
+          r[ctr++] = val1;
+        }
+    }
+
+  return ctr;
+}
+
+
+/*************************************************
+ * Name:        gen_matrix
+ *
+ * Description: Deterministically generate matrix A (or the transpose of A)
+ *              from a seed. Entries of the matrix are polynomials that look
+ *              uniformly random. Performs rejection sampling on output of
+ *              a XOF
+ *
+ * Arguments:   - gcry_mlkem_polyvec *a: pointer to ouptput matrix A
+ *              - const uint8_t *seed: pointer to input seed
+ *              - int transposed: boolean deciding whether A or A^T is
+ *              - gcry_mlkem_param_t const *param: mlkem parameters
+ *generated
+ **************************************************/
+static gcry_err_code_t
+_gcry_mlkem_gen_matrix (gcry_mlkem_polyvec *a,
+                        const uint8_t seed[GCRY_MLKEM_SYMBYTES],
+                        int transposed,
+                        gcry_mlkem_param_t const *param)
+{
+  unsigned int ctr, i, j, k;
+  unsigned int buflen, off;
+  uint8_t buf[GEN_MATRIX_NBLOCKS * GCRY_MLKEM_XOF_BLOCKBYTES + 2];
+  gcry_err_code_t ec = 0;
+
+  for (i = 0; i < param->k; i++)
+    {
+      for (j = 0; j < param->k; j++)
+        {
+
+          gcry_md_hd_t h;
+          ec = _gcry_md_open (&h, GCRY_MD_SHAKE128, GCRY_MD_FLAG_SECURE);
+          if (ec)
+            {
+              return ec;
+            }
+          if (transposed)
+            {
+              _gcry_mlkem_shake128_absorb (h, seed, i, j);
+            }
+          else
+            {
+              _gcry_mlkem_shake128_absorb (h, seed, j, i);
+            }
+
+          _gcry_mlkem_shake128_squeezeblocks (h, buf, GEN_MATRIX_NBLOCKS);
+          buflen = GEN_MATRIX_NBLOCKS * GCRY_MLKEM_XOF_BLOCKBYTES;
+
+          ctr = _gcry_mlkem_rej_uniform (
+              a[i].vec[j].coeffs, GCRY_MLKEM_N, buf, buflen);
+
+          while (ctr < GCRY_MLKEM_N)
+            {
+              off = buflen % 3;
+              for (k = 0; k < off; k++)
+                {
+                  buf[k] = buf[buflen - off + k];
+                }
+
+              _gcry_mlkem_shake128_squeezeblocks (h, buf + off, 1);
+              buflen = off + GCRY_MLKEM_XOF_BLOCKBYTES;
+              ctr += _gcry_mlkem_rej_uniform (
+                  a[i].vec[j].coeffs + ctr, GCRY_MLKEM_N - ctr, buf, buflen);
+            }
+
+          _gcry_md_close (h);
+        }
+    }
+  return 0;
+}
+
+/*************************************************
+ * Name:        indcpa_keypair
+ *
+ * Description: Generates public and private key for the CPA-secure
+ *              public-key encryption scheme underlying ML-KEM
+ *
+ * Arguments:   - uint8_t *pk: pointer to output public key
+ *                             (of length MLKEM_INDCPA_PUBLICKEYBYTES bytes)
+ *              - uint8_t *sk: pointer to output private key
+ *                             (of length MLKEM_INDCPA_SECRETKEYBYTES bytes)
+ *              - gcry_mlkem_param_t const *param: mlkem parameters
+ *              - uint8_t *coins: random bytes of length GCRY_MLKEM_SYMBYTES
+ **************************************************/
+static gcry_error_t
+_gcry_mlkem_indcpa_keypair (uint8_t *pk,
+                            uint8_t *sk,
+                            gcry_mlkem_param_t const *param,
+                            uint8_t *coins)
+{
+  unsigned int i;
+  uint8_t buf[2 * GCRY_MLKEM_SYMBYTES];
+  const uint8_t *publicseed = buf;
+  const uint8_t *noiseseed  = buf + GCRY_MLKEM_SYMBYTES;
+  uint8_t nonce             = 0;
+  gcry_mlkem_polyvec *a = NULL, e = {.vec = NULL}, pkpv = {.vec = NULL},
+                     skpv = {.vec = NULL};
+  gcry_error_t ec         = 0;
+
+  ec = _gcry_mlkem_polymatrix_create (&a, param);
+  if (ec)
+    {
+      goto leave;
+    }
+  ec = _gcry_mlkem_polyvec_create (&e, param);
+  if (ec)
+    {
+      goto leave;
+    }
+  ec = _gcry_mlkem_polyvec_create (&pkpv, param);
+  if (ec)
+    {
+      goto leave;
+    }
+  ec = _gcry_mlkem_polyvec_create (&skpv, param);
+  if (ec)
+    {
+      goto leave;
+    }
+
+
+  _gcry_md_hash_buffer (GCRY_MD_SHA3_512, buf, coins, GCRY_MLKEM_SYMBYTES);
+  ec = _gcry_mlkem_gen_matrix (a, publicseed, 0, param);
+  if (ec)
+    {
+      goto leave;
+    }
+
+  for (i = 0; i < param->k; i++)
+    {
+      _gcry_mlkem_poly_getnoise_eta1 (&skpv.vec[i], noiseseed, nonce++, param);
+    }
+  for (i = 0; i < param->k; i++)
+    {
+      _gcry_mlkem_poly_getnoise_eta1 (&e.vec[i], noiseseed, nonce++, param);
+    }
+
+  _gcry_mlkem_polyvec_ntt (&skpv, param);
+  _gcry_mlkem_polyvec_ntt (&e, param);
+
+  // matrix-vector multiplication
+  for (i = 0; i < param->k; i++)
+    {
+      ec = _gcry_mlkem_polyvec_basemul_acc_montgomery (
+          &pkpv.vec[i], &a[i], &skpv, param);
+      if (ec)
+        {
+          goto leave;
+        }
+      _gcry_mlkem_poly_tomont (&pkpv.vec[i]);
+    }
+
+  _gcry_mlkem_polyvec_add (&pkpv, &pkpv, &e, param);
+  _gcry_mlkem_polyvec_reduce (&pkpv, param);
+
+  _gcry_mlkem_pack_sk (sk, &skpv, param);
+  _gcry_mlkem_pack_pk (pk, &pkpv, publicseed, param);
+leave:
+  _gcry_mlkem_polymatrix_destroy (&a, param);
+  _gcry_mlkem_polyvec_destroy (&e);
+  _gcry_mlkem_polyvec_destroy (&pkpv);
+  _gcry_mlkem_polyvec_destroy (&skpv);
+
+  return ec;
+}
+
+/*************************************************
+ * Name:        indcpa_enc
+ *
+ * Description: Encryption function of the CPA-secure
+ *              public-key encryption scheme underlying ML-KEM.
+ *
+ * Arguments:   - uint8_t *c: pointer to output ciphertext
+ *                            (of length MLKEM_INDCPA_BYTES bytes)
+ *              - const uint8_t *m: pointer to input message
+ *                                  (of length GCRY_MLKEM_INDCPA_MSGBYTES
+ *bytes)
+ *              - const uint8_t *pk: pointer to input public key
+ *                                   (of length MLKEM_INDCPA_PUBLICKEYBYTES)
+ *              - const uint8_t *coins: pointer to input random coins used as
+ *seed (of length GCRY_MLKEM_SYMBYTES) to deterministically generate all
+ *randomness
+ **************************************************/
+static gcry_error_t
+_gcry_mlkem_indcpa_enc (uint8_t *c,
+                        const uint8_t *m,
+                        const uint8_t *pk,
+                        const uint8_t coins[GCRY_MLKEM_SYMBYTES],
+                        gcry_mlkem_param_t const *param)
+{
+  unsigned int i;
+  uint8_t seed[GCRY_MLKEM_SYMBYTES];
+  uint8_t nonce         = 0;
+  gcry_mlkem_polyvec sp = {.vec = NULL}, pkpv = {.vec = NULL},
+                     ep = {.vec = NULL}, *at = NULL, b = {.vec = NULL};
+  gcry_error_t ec = 0;
+  gcry_mlkem_poly v, k, epp;
+
+  ec = _gcry_mlkem_polyvec_create (&sp, param);
+  if (ec)
+    {
+      goto leave;
+    }
+  ec = _gcry_mlkem_polyvec_create (&pkpv, param);
+  if (ec)
+    {
+      goto leave;
+    }
+  ec = _gcry_mlkem_polyvec_create (&ep, param);
+  if (ec)
+    {
+      goto leave;
+    }
+  ec = _gcry_mlkem_polyvec_create (&b, param);
+  if (ec)
+    {
+      goto leave;
+    }
+  ec = _gcry_mlkem_polymatrix_create (&at, param);
+  if (ec)
+    {
+      goto leave;
+    }
+
+  _gcry_mlkem_unpack_pk (&pkpv, seed, pk, param);
+  _gcry_mlkem_poly_frommsg (&k, m);
+  ec = _gcry_mlkem_gen_matrix (at, seed, 1, param);
+  if (ec)
+    {
+      goto leave;
+    }
+
+  for (i = 0; i < param->k; i++)
+    {
+      _gcry_mlkem_poly_getnoise_eta1 (sp.vec + i, coins, nonce++, param);
+    }
+  for (i = 0; i < param->k; i++)
+    {
+      _gcry_mlkem_poly_getnoise_eta2 (ep.vec + i, coins, nonce++);
+    }
+  _gcry_mlkem_poly_getnoise_eta2 (&epp, coins, nonce++);
+
+  _gcry_mlkem_polyvec_ntt (&sp, param);
+
+  // matrix-vector multiplication
+  for (i = 0; i < param->k; i++)
+    {
+      ec = _gcry_mlkem_polyvec_basemul_acc_montgomery (
+          &b.vec[i], &at[i], &sp, param);
+      if (ec)
+        {
+          goto leave;
+        }
+    }
+
+  ec = _gcry_mlkem_polyvec_basemul_acc_montgomery (&v, &pkpv, &sp, param);
+  if (ec)
+    {
+      goto leave;
+    }
+
+  _gcry_mlkem_polyvec_invntt_tomont (&b, param);
+  _gcry_mlkem_poly_invntt_tomont (&v);
+
+  _gcry_mlkem_polyvec_add (&b, &b, &ep, param);
+  _gcry_mlkem_poly_add (&v, &v, &epp);
+  _gcry_mlkem_poly_add (&v, &v, &k);
+  _gcry_mlkem_polyvec_reduce (&b, param);
+  _gcry_mlkem_poly_reduce (&v);
+
+  _gcry_mlkem_pack_ciphertext (c, &b, &v, param);
+leave:
+
+  _gcry_mlkem_polyvec_destroy (&sp);
+  _gcry_mlkem_polyvec_destroy (&pkpv);
+  _gcry_mlkem_polyvec_destroy (&ep);
+  _gcry_mlkem_polyvec_destroy (&b);
+  _gcry_mlkem_polymatrix_destroy (&at, param);
+
+  return ec;
+}
+
+/*************************************************
+ * Name:        indcpa_dec
+ *
+ * Description: Decryption function of the CPA-secure
+ *              public-key encryption scheme underlying ML-KEM.
+ *
+ * Arguments:   - uint8_t *m: pointer to output decrypted message
+ *                            (of length GCRY_MLKEM_INDCPA_MSGBYTES)
+ *              - const uint8_t *c: pointer to input ciphertext
+ *                                  (of length MLKEM_INDCPA_BYTES)
+ *              - const uint8_t *sk: pointer to input secret key
+ *                                   (of length MLKEM_INDCPA_SECRETKEYBYTES)
+ *              - gcry_mlkem_param_t const *param: mlkem parameters
+ **************************************************/
+static gcry_error_t
+_gcry_mlkem_indcpa_dec (uint8_t *m,
+                        const uint8_t *c,
+                        const uint8_t *sk,
+                        gcry_mlkem_param_t const *param)
+{
+  gcry_mlkem_polyvec b = {.vec = NULL}, skpv = {.vec = NULL};
+  gcry_mlkem_poly v, mp;
+  gcry_error_t ec = 0;
+
+  ec = _gcry_mlkem_polyvec_create (&b, param);
+  if (ec)
+    {
+      ec = gpg_error_from_syserror ();
+      goto leave;
+    }
+  ec = _gcry_mlkem_polyvec_create (&skpv, param);
+  if (ec)
+    {
+      ec = gpg_error_from_syserror ();
+      goto leave;
+    }
+
+  _gcry_mlkem_unpack_ciphertext (&b, &v, c, param);
+  _gcry_mlkem_unpack_sk (&skpv, sk, param);
+
+  _gcry_mlkem_polyvec_ntt (&b, param);
+  ec = _gcry_mlkem_polyvec_basemul_acc_montgomery (&mp, &skpv, &b, param);
+  if (ec)
+    {
+      goto leave;
+    }
+  _gcry_mlkem_poly_invntt_tomont (&mp);
+
+  _gcry_mlkem_poly_sub (&mp, &v, &mp);
+  _gcry_mlkem_poly_reduce (&mp);
+
+  _gcry_mlkem_poly_tomsg (m, &mp);
+leave:
+  _gcry_mlkem_polyvec_destroy (&skpv);
+  _gcry_mlkem_polyvec_destroy (&b);
+  return ec;
+}
+
+
+gcry_err_code_t
+_gcry_mlkem_kem_keypair_derand (uint8_t *pk,
+                                uint8_t *sk,
+                                gcry_mlkem_param_t *param,
+                                uint8_t *coins)
+{
+  gpg_err_code_t ec = 0;
+  ec                = _gcry_mlkem_indcpa_keypair (pk, sk, param, coins);
+  if (ec)
+    {
+      return ec;
+    }
+  memcpy (&sk[param->indcpa_secret_key_bytes], pk, param->public_key_bytes);
+  _gcry_md_hash_buffer (GCRY_MD_SHA3_256,
+                        sk + param->secret_key_bytes - 2 * GCRY_MLKEM_SYMBYTES,
+                        pk,
+                        param->public_key_bytes);
+  /* Value z for pseudo-random output on reject */
+  memcpy (sk + param->secret_key_bytes - GCRY_MLKEM_SYMBYTES,
+          coins + GCRY_MLKEM_SYMBYTES,
+          GCRY_MLKEM_SYMBYTES);
+  return ec;
+}
+
+static gcry_err_code_t
+_gcry_mlkem_mlkem_shake256_rkprf (uint8_t out[GCRY_MLKEM_SSBYTES],
+                                  const uint8_t key[GCRY_MLKEM_SYMBYTES],
+                                  const uint8_t *input,
+                                  size_t input_length)
+{
+  gcry_md_hd_t h;
+  gcry_err_code_t ec = 0;
+  ec = _gcry_md_open (&h, GCRY_MD_SHAKE256, GCRY_MD_FLAG_SECURE);
+  if (ec)
+    {
+      return ec;
+    }
+  _gcry_md_write (h, key, GCRY_MLKEM_SYMBYTES);
+  _gcry_md_write (h, input, input_length);
+  ec = _gcry_md_extract (h, GCRY_MD_SHAKE256, out, GCRY_MLKEM_SSBYTES);
+  _gcry_md_close (h);
+  return ec;
+}
+
+
+gcry_err_code_t
+_gcry_mlkem_kem_keypair (uint8_t *pk, uint8_t *sk, gcry_mlkem_param_t *param)
+{
+  gcry_err_code_t ec = 0;
+  uint8_t *coins     = NULL;
+  coins              = xtrymalloc_secure (GCRY_MLKEM_COINS_SIZE);
+  if (!coins)
+    {
+      ec = gpg_err_code_from_syserror ();
+      goto leave;
+    }
+  _gcry_randomize (coins, GCRY_MLKEM_COINS_SIZE, GCRY_VERY_STRONG_RANDOM);
+  ec = _gcry_mlkem_kem_keypair_derand (pk, sk, param, coins);
+leave:
+  xfree (coins);
+  return ec;
+}
+
+gcry_err_code_t
+_gcry_mlkem_kem_dec (uint8_t *ss,
+                     const uint8_t *ct,
+                     const uint8_t *sk,
+                     gcry_mlkem_param_t *param)
+{
+  gcry_err_code_t ec = 0;
+  int fail;
+  uint8_t buf[2 * GCRY_MLKEM_SYMBYTES];
+  /* Will contain key, coins */
+  uint8_t kr[2 * GCRY_MLKEM_SYMBYTES];
+
+  uint8_t *cmp = NULL;
+
+  const uint8_t *pk = sk + param->indcpa_secret_key_bytes;
+
+  ec = _gcry_mlkem_indcpa_dec (buf, ct, sk, param);
+  if (ec)
+    {
+      goto end;
+    }
+
+  /* Multitarget countermeasure for coins + contributory KEM */
+  memcpy (buf + GCRY_MLKEM_SYMBYTES,
+          sk + param->secret_key_bytes - 2 * GCRY_MLKEM_SYMBYTES,
+          GCRY_MLKEM_SYMBYTES);
+  _gcry_md_hash_buffer (GCRY_MD_SHA3_512, kr, buf, 2 * GCRY_MLKEM_SYMBYTES);
+
+
+  cmp = xtrymalloc_secure (param->ciphertext_bytes);
+  if (!cmp)
+    {
+      ec = gpg_err_code_from_syserror ();
+      goto end;
+    }
+  ec = _gcry_mlkem_indcpa_enc (cmp, buf, pk, kr + GCRY_MLKEM_SYMBYTES, param);
+  /* coins are in kr+GCRY_MLKEM_SYMBYTES */
+  if (ec)
+    {
+      goto end;
+    }
+
+  fail = _gcry_consttime_bytes_differ (ct, cmp, param->ciphertext_bytes);
+
+  ec = _gcry_mlkem_mlkem_shake256_rkprf (ss,
+                                         sk + param->secret_key_bytes
+                                             - GCRY_MLKEM_SYMBYTES,
+                                         ct,
+                                         param->ciphertext_bytes);
+  /* Compute rejection key */
+  if (ec)
+    {
+      goto end;
+    }
+
+  /* Copy true key to return buffer if fail is false */
+  _gcry_consttime_cmov (ss, kr, GCRY_MLKEM_SYMBYTES, !fail);
+
+end:
+  xfree (cmp);
+  return ec;
+}
+
+gcry_err_code_t
+_gcry_mlkem_kem_enc (uint8_t *ct,
+                     uint8_t *ss,
+                     const uint8_t *pk,
+                     gcry_mlkem_param_t *param)
+{
+  uint8_t coins[GCRY_MLKEM_SYMBYTES];
+  _gcry_randomize (coins, GCRY_MLKEM_SYMBYTES, GCRY_VERY_STRONG_RANDOM);
+  return _gcry_mlkem_kem_enc_derand (ct, ss, pk, param, coins);
+}
+
+gcry_err_code_t
+_gcry_mlkem_kem_enc_derand (uint8_t *ct,
+                            uint8_t *ss,
+                            const uint8_t *pk,
+                            gcry_mlkem_param_t *param,
+                            uint8_t *coins)
+{
+  gpg_err_code_t ec = 0;
+  uint8_t buf[2 * GCRY_MLKEM_SYMBYTES];
+  /* Will contain key, coins */
+  uint8_t kr[2 * GCRY_MLKEM_SYMBYTES];
+
+  /* Don't release system RNG output */
+  _gcry_md_hash_buffer (GCRY_MD_SHA3_256, buf, coins, GCRY_MLKEM_SYMBYTES);
+
+  /* Multitarget countermeasure for coins + contributory KEM */
+
+  _gcry_md_hash_buffer (GCRY_MD_SHA3_256,
+                        buf + GCRY_MLKEM_SYMBYTES,
+                        pk,
+                        param->public_key_bytes);
+
+  _gcry_md_hash_buffer (GCRY_MD_SHA3_512, kr, buf, 2 * GCRY_MLKEM_SYMBYTES);
+
+  /* coins are in kr+GCRY_MLKEM_SYMBYTES */
+  ec = _gcry_mlkem_indcpa_enc (ct, buf, pk, kr + GCRY_MLKEM_SYMBYTES, param);
+  if (ec)
+    {
+      goto end;
+    }
+
+
+  memcpy (ss, kr, GCRY_MLKEM_SYMBYTES);
+end:
+  return ec;
+}
diff --git a/cipher/mlkem-common.h b/cipher/mlkem-common.h
new file mode 100644
index 00000000..f1b5fae5
--- /dev/null
+++ b/cipher/mlkem-common.h
@@ -0,0 +1,60 @@
+/* mlkem-common.h - general functions for ML-KEM
+ * Copyright (C) 2023 MTG AG
+ * The code was created based on the reference implementation that is part of the ML-KEM NIST submission.
+ *
+ * This file is part of Libgcrypt.
+ *
+ * Libgcrypt is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License as
+ * published by the Free Software Foundation; either version 2.1 of
+ * the License, or (at your option) any later version.
+ *
+ * Libgcrypt is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this program; if not, see <http://www.gnu.org/licenses/>.
+ */
+
+#ifndef GCRYPT_MLKEM_COMMON_H
+#define GCRYPT_MLKEM_COMMON_H
+
+
+#include <stdint.h>
+#include "mlkem-params.h"
+
+#include <config.h>
+#include "g10lib.h"
+
+
+gcry_err_code_t _gcry_mlkem_kem_keypair_derand (uint8_t *pk,
+                                                uint8_t *sk,
+                                                gcry_mlkem_param_t *param,
+                                                uint8_t *coins);
+
+
+gcry_err_code_t _gcry_mlkem_kem_keypair (uint8_t *pk,
+                                         uint8_t *sk,
+                                         gcry_mlkem_param_t *param);
+
+
+gcry_err_code_t _gcry_mlkem_kem_enc_derand (uint8_t *ct,
+                                            uint8_t *ss,
+                                            const uint8_t *pk,
+                                            gcry_mlkem_param_t *param,
+                                            uint8_t *coins);
+
+gcry_err_code_t _gcry_mlkem_kem_enc (uint8_t *ct,
+                                     uint8_t *ss,
+                                     const uint8_t *pk,
+                                     gcry_mlkem_param_t *param);
+
+gcry_err_code_t _gcry_mlkem_kem_dec (uint8_t *ss,
+                                     const uint8_t *ct,
+                                     const uint8_t *sk,
+                                     gcry_mlkem_param_t *param);
+
+
+#endif /* GCRYPT_MLKEM_COMMON_H */
diff --git a/cipher/mlkem-ntt.c b/cipher/mlkem-ntt.c
new file mode 100644
index 00000000..42de8041
--- /dev/null
+++ b/cipher/mlkem-ntt.c
@@ -0,0 +1,181 @@
+/* mlkem-ntt.c - number-theoretic transform functions for ML-KEM
+ * Copyright (C) 2023 MTG AG
+ * The code was created based on the reference implementation that is part of the ML-KEM NIST submission.
+ *
+ * This file is part of Libgcrypt.
+ *
+ * Libgcrypt is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License as
+ * published by the Free Software Foundation; either version 2.1 of
+ * the License, or (at your option) any later version.
+ *
+ * Libgcrypt is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this program; if not, see <http://www.gnu.org/licenses/>.
+ */
+
+#include <stdint.h>
+#include "mlkem-params.h"
+#include "mlkem-ntt.h"
+#include "mlkem-aux.h"
+
+/* For reference: code to generate zetas and zetas_inv used in the number-theoretic transform:
+
+#define MLKEM_ROOT_OF_UNITY 17
+
+static const uint8_t tree[128] = {
+  0, 64, 32, 96, 16, 80, 48, 112, 8, 72, 40, 104, 24, 88, 56, 120,
+  4, 68, 36, 100, 20, 84, 52, 116, 12, 76, 44, 108, 28, 92, 60, 124,
+  2, 66, 34, 98, 18, 82, 50, 114, 10, 74, 42, 106, 26, 90, 58, 122,
+  6, 70, 38, 102, 22, 86, 54, 118, 14, 78, 46, 110, 30, 94, 62, 126,
+  1, 65, 33, 97, 17, 81, 49, 113, 9, 73, 41, 105, 25, 89, 57, 121,
+  5, 69, 37, 101, 21, 85, 53, 117, 13, 77, 45, 109, 29, 93, 61, 125,
+  3, 67, 35, 99, 19, 83, 51, 115, 11, 75, 43, 107, 27, 91, 59, 123,
+  7, 71, 39, 103, 23, 87, 55, 119, 15, 79, 47, 111, 31, 95, 63, 127
+};
+
+void init_ntt() {
+  unsigned int i;
+  int16_t tmp[128];
+
+  tmp[0] = MONT;
+  for(i=1;i<128;i++)
+    tmp[i] = fqmul(tmp[i-1],MONT*MLKEM_ROOT_OF_UNITY % GCRY_MLKEM_Q);
+
+  for(i=0;i<128;i++) {
+    zetas[i] = tmp[tree[i]];
+    if(zetas[i] > GCRY_MLKEM_Q/2)
+      zetas[i] -= GCRY_MLKEM_Q;
+    if(zetas[i] < -GCRY_MLKEM_Q/2)
+      zetas[i] += GCRY_MLKEM_Q;
+  }
+}
+*/
+
+static const int16_t zetas[128] = {
+    -1044, -758,  -359,  -1517, 1493,  1422,  287,   202,  -171,  622,   1577,
+    182,   962,   -1202, -1474, 1468,  573,   -1325, 264,  383,   -829,  1458,
+    -1602, -130,  -681,  1017,  732,   608,   -1542, 411,  -205,  -1571, 1223,
+    652,   -552,  1015,  -1293, 1491,  -282,  -1544, 516,  -8,    -320,  -666,
+    -1618, -1162, 126,   1469,  -853,  -90,   -271,  830,  107,   -1421, -247,
+    -951,  -398,  961,   -1508, -725,  448,   -1065, 677,  -1275, -1103, 430,
+    555,   843,   -1251, 871,   1550,  105,   422,   587,  177,   -235,  -291,
+    -460,  1574,  1653,  -246,  778,   1159,  -147,  -777, 1483,  -602,  1119,
+    -1590, 644,   -872,  349,   418,   329,   -156,  -75,  817,   1097,  603,
+    610,   1322,  -1285, -1465, 384,   -1215, -136,  1218, -1335, -874,  220,
+    -1187, -1659, -1185, -1530, -1278, 794,   -1510, -854, -870,  478,   -108,
+    -308,  996,   991,   958,   -1460, 1522,  1628};
+
+/*************************************************
+ * Name:        fqmul
+ *
+ * Description: Multiplication followed by Montgomery reduction
+ *
+ * Arguments:   - int16_t a: first factor
+ *              - int16_t b: second factor
+ *
+ * Returns 16-bit integer congruent to a*b*R^{-1} mod q
+ **************************************************/
+static int16_t
+fqmul (int16_t a, int16_t b)
+{
+  return _gcry_mlkem_montgomery_reduce ((int32_t)a * b);
+}
+
+/*************************************************
+ * Name:        ntt
+ *
+ * Description: Inplace number-theoretic transform (NTT) in Rq.
+ *              input is in standard order, output is in bitreversed order
+ *
+ * Arguments:   - int16_t r[256]: pointer to input/output vector of elements of
+ *Zq
+ **************************************************/
+void
+_gcry_mlkem_ntt (int16_t r[256])
+{
+  unsigned int len, start, j, k;
+  int16_t t, zeta;
+
+  k = 1;
+  for (len = 128; len >= 2; len >>= 1)
+    {
+      for (start = 0; start < 256; start = j + len)
+        {
+          zeta = zetas[k++];
+          for (j = start; j < start + len; j++)
+            {
+              t          = fqmul (zeta, r[j + len]);
+              r[j + len] = r[j] - t;
+              r[j]       = r[j] + t;
+            }
+        }
+    }
+}
+
+/*************************************************
+ * Name:        invntt_tomont
+ *
+ * Description: Inplace inverse number-theoretic transform in Rq and
+ *              multiplication by Montgomery factor 2^16.
+ *              Input is in bitreversed order, output is in standard order
+ *
+ * Arguments:   - int16_t r[256]: pointer to input/output vector of elements of Zq
+ **************************************************/
+void
+_gcry_mlkem_invntt (int16_t r[256])
+{
+  unsigned int start, len, j, k;
+  int16_t t, zeta;
+  const int16_t f = 1441; // mont^2/128
+
+  k = 127;
+  for (len = 2; len <= 128; len <<= 1)
+    {
+      for (start = 0; start < 256; start = j + len)
+        {
+          zeta = zetas[k--];
+          for (j = start; j < start + len; j++)
+            {
+              t          = r[j];
+              r[j]       = _gcry_mlkem_barrett_reduce (t + r[j + len]);
+              r[j + len] = r[j + len] - t;
+              r[j + len] = fqmul (zeta, r[j + len]);
+            }
+        }
+    }
+
+  for (j = 0; j < 256; j++)
+    r[j] = fqmul (r[j], f);
+}
+
+/*************************************************
+ * Name:        basemul
+ *
+ * Description: Multiplication of polynomials in Zq[X]/(X^2-zeta)
+ *              used for multiplication of elements in Rq in NTT domain
+ *
+ * Arguments:   - int16_t r[2]: pointer to the output polynomial
+ *              - const int16_t a[2]: pointer to the first factor
+ *              - const int16_t b[2]: pointer to the second factor
+ *              - int zeta: integer defining the reduction polynomial as an offset into the zeta table
+ *              - int sign: sign to apply to the zeta value
+ **************************************************/
+void
+_gcry_mlkem_basemul (int16_t r[2],
+                     const int16_t a[2],
+                     const int16_t b[2],
+                     int zeta_offs,
+                     int sign)
+{
+  uint16_t zeta = zetas[zeta_offs] * sign;
+  r[0]          = fqmul (a[1], b[1]);
+  r[0]          = fqmul (r[0], zeta);
+  r[0] += fqmul (a[0], b[0]);
+  r[1] = fqmul (a[0], b[1]);
+  r[1] += fqmul (a[1], b[0]);
+}
diff --git a/cipher/mlkem-ntt.h b/cipher/mlkem-ntt.h
new file mode 100644
index 00000000..6bccbc00
--- /dev/null
+++ b/cipher/mlkem-ntt.h
@@ -0,0 +1,35 @@
+/* mlkem-ntt.h - number-theoretic transform functions for ML-KEM
+ * Copyright (C) 2023 MTG AG
+ * The code was created based on the reference implementation that is part of the ML-KEM NIST submission.
+ *
+ * This file is part of Libgcrypt.
+ *
+ * Libgcrypt is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License as
+ * published by the Free Software Foundation; either version 2.1 of
+ * the License, or (at your option) any later version.
+ *
+ * Libgcrypt is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this program; if not, see <http://www.gnu.org/licenses/>.
+ */
+
+#ifndef GCRYPT_MLKEM_NTT_H
+#define GCRYPT_MLKEM_NTT_H
+
+#include <stdint.h>
+#include "mlkem-params.h"
+
+
+void _gcry_mlkem_ntt (int16_t poly[256]);
+
+void _gcry_mlkem_invntt (int16_t poly[256]);
+
+void _gcry_mlkem_basemul (
+    int16_t r[2], const int16_t a[2], const int16_t b[2], int zeta, int sign);
+
+#endif /* GCRYPT_MLKEM_NTT_H */
diff --git a/cipher/mlkem-params.h b/cipher/mlkem-params.h
new file mode 100644
index 00000000..19c2c5bc
--- /dev/null
+++ b/cipher/mlkem-params.h
@@ -0,0 +1,79 @@
+/* mlkem-params.h - parameter definitions for ML-KEM
+ * Copyright (C) 2023 MTG AG
+ * The code was created based on the reference implementation that is part of the ML-KEM NIST submission.
+ *
+ * This file is part of Libgcrypt.
+ *
+ * Libgcrypt is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License as
+ * published by the Free Software Foundation; either version 2.1 of
+ * the License, or (at your option) any later version.
+ *
+ * Libgcrypt is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this program; if not, see <http://www.gnu.org/licenses/>.
+ */
+
+#ifndef GCRYPT_MLKEM_PARAMS_H
+#define GCRYPT_MLKEM_PARAMS_H
+
+#include <stdint.h>
+
+typedef enum
+{
+  GCRY_MLKEM_512,
+  GCRY_MLKEM_768,
+  GCRY_MLKEM_1024
+} gcry_mlkem_param_id;
+
+typedef struct
+{
+  gcry_mlkem_param_id id;
+  uint8_t k;
+  uint8_t eta1;
+  uint16_t polyvec_bytes;
+  uint8_t poly_compressed_bytes;
+  uint16_t polyvec_compressed_bytes;
+  uint16_t public_key_bytes;
+  uint16_t indcpa_secret_key_bytes;
+  uint16_t secret_key_bytes;
+  uint16_t ciphertext_bytes;
+
+} gcry_mlkem_param_t;
+
+
+#define GCRY_MLKEM_N 256
+#define GCRY_MLKEM_Q 3329
+
+#define GCRY_MLKEM_SYMBYTES 32 /* size in bytes of hashes, and seeds */
+#define GCRY_MLKEM_SSBYTES 32  /* size in bytes of shared key */
+
+#define GCRY_MLKEM_POLYBYTES 384
+#define GCRY_MLKEM_POLYVECBYTES (MLKEM_K * GCRY_MLKEM_POLYBYTES)
+
+
+#define GCRY_MLKEM_ETA1_MAX 3
+#define GCRY_MLKEM_ETA2 2
+
+#define GCRY_MLKEM_INDCPA_MSGBYTES (GCRY_MLKEM_SYMBYTES)
+#if (GCRY_MLKEM_INDCPA_MSGBYTES != GCRY_MLKEM_N / 8)
+#error "GCRY_MLKEM_INDCPA_MSGBYTES must be equal to GCRY_MLKEM_N/8 bytes!"
+#endif
+
+
+#define GCRY_MLKEM_COINS_SIZE (2 * GCRY_MLKEM_SYMBYTES)
+
+
+#define GCRY_SHAKE128_RATE 168
+#define GCRY_SHAKE256_RATE 136
+#define GCRY_SHA3_256_RATE 136
+#define GCRY_SHA3_512_RATE 72
+
+
+#define GCRY_MLKEM_XOF_BLOCKBYTES GCRY_SHAKE128_RATE
+
+#endif /* GCRYPT_MLKEM_PARAMS_H */
diff --git a/cipher/mlkem-poly.c b/cipher/mlkem-poly.c
new file mode 100644
index 00000000..9ac3d8ec
--- /dev/null
+++ b/cipher/mlkem-poly.c
@@ -0,0 +1,436 @@
+/* mlkem-poly.c - functions related to polynomials for ML-KEM
+ * Copyright (C) 2023 MTG AG
+ * The code was created based on the reference implementation that is part of the ML-KEM NIST submission.
+ *
+ * This file is part of Libgcrypt.
+ *
+ * Libgcrypt is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License as
+ * published by the Free Software Foundation; either version 2.1 of
+ * the License, or (at your option) any later version.
+ *
+ * Libgcrypt is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this program; if not, see <http://www.gnu.org/licenses/>.
+ */
+
+#include <stdint.h>
+#include "mlkem-params.h"
+#include "mlkem-poly.h"
+#include "mlkem-ntt.h"
+#include "mlkem-aux.h"
+#include "mlkem-cbd.h"
+#include "mlkem-symmetric.h"
+
+/*************************************************
+ * Name:        poly_compress
+ *
+ * Description: Compression and subsequent serialization of a polynomial
+ *
+ * Arguments:   - unsigned char *r: pointer to output byte array
+ *                            (of length MLKEM_POLYCOMPRESSEDBYTES)
+ *              - const poly *a: pointer to input polynomial
+ *              - gcry_mlkem_param_t const *param: mlkem parameters
+ **************************************************/
+void
+_gcry_mlkem_poly_compress (unsigned char *r,
+                           const gcry_mlkem_poly *a,
+                           gcry_mlkem_param_t const *param)
+{
+  unsigned int i, j;
+  int16_t u;
+  unsigned char t[8];
+
+  if (param->id != GCRY_MLKEM_1024)
+    {
+      for (i = 0; i < GCRY_MLKEM_N / 8; i++)
+        {
+          for (j = 0; j < 8; j++)
+            {
+              // map to positive standard representatives
+              u = a->coeffs[8 * i + j];
+              u += (u >> 15) & GCRY_MLKEM_Q;
+              t[j] = ((((uint16_t)u << 4) + GCRY_MLKEM_Q / 2) / GCRY_MLKEM_Q)
+                     & 15;
+            }
+
+          r[0] = t[0] | (t[1] << 4);
+          r[1] = t[2] | (t[3] << 4);
+          r[2] = t[4] | (t[5] << 4);
+          r[3] = t[6] | (t[7] << 4);
+          r += 4;
+        }
+    }
+  else
+    {
+      for (i = 0; i < GCRY_MLKEM_N / 8; i++)
+        {
+          for (j = 0; j < 8; j++)
+            {
+              // map to positive standard representatives
+              u = a->coeffs[8 * i + j];
+              u += (u >> 15) & GCRY_MLKEM_Q;
+              t[j] = ((((uint32_t)u << 5) + GCRY_MLKEM_Q / 2) / GCRY_MLKEM_Q)
+                     & 31;
+            }
+
+          r[0] = (t[0] >> 0) | (t[1] << 5);
+          r[1] = (t[1] >> 3) | (t[2] << 2) | (t[3] << 7);
+          r[2] = (t[3] >> 1) | (t[4] << 4);
+          r[3] = (t[4] >> 4) | (t[5] << 1) | (t[6] << 6);
+          r[4] = (t[6] >> 2) | (t[7] << 3);
+          r += 5;
+        }
+    }
+}
+
+/*************************************************
+ * Name:        gcry_mlkem_poly_decompress
+ *
+ * Description: De-serialization and subsequent decompression of a
+ *gcry_mlkem_polynomial; approximate inverse of gcry_mlkem_poly_compress
+ *
+ * Arguments:   - gcry_mlkem_poly *r: pointer to output gcry_mlkem_polynomial
+ *              - const unsigned char *a: pointer to input byte array
+ *                                  (of length MLKEM_POLYCOMPRESSEDBYTES bytes)
+ *              - gcry_mlkem_param_t const *param: mlkem parameters
+ **************************************************/
+void
+_gcry_mlkem_poly_decompress (gcry_mlkem_poly *r,
+                             const unsigned char *a,
+                             gcry_mlkem_param_t const *param)
+{
+  unsigned int i;
+
+  if (param->id != GCRY_MLKEM_1024)
+    {
+      for (i = 0; i < GCRY_MLKEM_N / 2; i++)
+        {
+          r->coeffs[2 * i + 0]
+              = (((uint16_t)(a[0] & 15) * GCRY_MLKEM_Q) + 8) >> 4;
+          r->coeffs[2 * i + 1]
+              = (((uint16_t)(a[0] >> 4) * GCRY_MLKEM_Q) + 8) >> 4;
+          a += 1;
+        }
+    }
+  else
+    {
+      unsigned int j;
+      unsigned char t[8];
+      for (i = 0; i < GCRY_MLKEM_N / 8; i++)
+        {
+          t[0] = (a[0] >> 0);
+          t[1] = (a[0] >> 5) | (a[1] << 3);
+          t[2] = (a[1] >> 2);
+          t[3] = (a[1] >> 7) | (a[2] << 1);
+          t[4] = (a[2] >> 4) | (a[3] << 4);
+          t[5] = (a[3] >> 1);
+          t[6] = (a[3] >> 6) | (a[4] << 2);
+          t[7] = (a[4] >> 3);
+          a += 5;
+
+          for (j = 0; j < 8; j++)
+            {
+              r->coeffs[8 * i + j]
+                  = ((uint32_t)(t[j] & 31) * GCRY_MLKEM_Q + 16) >> 5;
+            }
+        }
+    }
+}
+
+/*************************************************
+ * Name:        gcry_mlkem_poly_tobytes
+ *
+ * Description: Serialization of a gcry_mlkem_polynomial
+ *
+ * Arguments:   - unsigned char *r: pointer to output byte array
+ *                            (needs space for GCRY_MLKEM_POLYBYTES bytes)
+ *              - const gcry_mlkem_poly *a: pointer to input polynomial
+ **************************************************/
+void
+_gcry_mlkem_poly_tobytes (unsigned char r[GCRY_MLKEM_POLYBYTES],
+                          const gcry_mlkem_poly *a)
+{
+  unsigned int i;
+  uint16_t t0, t1;
+
+  for (i = 0; i < GCRY_MLKEM_N / 2; i++)
+    {
+      // map to positive standard representatives
+      t0 = a->coeffs[2 * i];
+      t0 += ((int16_t)t0 >> 15) & GCRY_MLKEM_Q;
+      t1 = a->coeffs[2 * i + 1];
+      t1 += ((int16_t)t1 >> 15) & GCRY_MLKEM_Q;
+      r[3 * i + 0] = (t0 >> 0);
+      r[3 * i + 1] = (t0 >> 8) | (t1 << 4);
+      r[3 * i + 2] = (t1 >> 4);
+    }
+}
+
+/*************************************************
+ * Name:        gcry_mlkem_poly_frombytes
+ *
+ * Description: De-serialization of a polynomial;
+ *              inverse of gcry_mlkem_poly_tobytes
+ *
+ * Arguments:   - gcry_mlkem_poly *r: pointer to output polynomial
+ *              - const unsigned char *a: pointer to input byte array
+ *                                  (of GCRY_MLKEM_POLYBYTES bytes)
+ **************************************************/
+void
+_gcry_mlkem_poly_frombytes (gcry_mlkem_poly *r,
+                            const unsigned char a[GCRY_MLKEM_POLYBYTES])
+{
+  unsigned int i;
+  for (i = 0; i < GCRY_MLKEM_N / 2; i++)
+    {
+      r->coeffs[2 * i]
+          = ((a[3 * i + 0] >> 0) | ((uint16_t)a[3 * i + 1] << 8)) & 0xFFF;
+      r->coeffs[2 * i + 1]
+          = ((a[3 * i + 1] >> 4) | ((uint16_t)a[3 * i + 2] << 4)) & 0xFFF;
+    }
+}
+
+/*************************************************
+ * Name:        gcry_mlkem_poly_frommsg
+ *
+ * Description: Convert 32-byte message to polynomial
+ *
+ * Arguments:   - poly *r: pointer to output polynomial
+ *              - const unsigned char *msg: pointer to input message
+ **************************************************/
+void
+_gcry_mlkem_poly_frommsg (gcry_mlkem_poly *r,
+                          const unsigned char msg[GCRY_MLKEM_INDCPA_MSGBYTES])
+{
+  unsigned int i, j;
+  int16_t mask;
+
+
+  for (i = 0; i < GCRY_MLKEM_N / 8; i++)
+    {
+      for (j = 0; j < 8; j++)
+        {
+          mask                 = -(int16_t)((msg[i] >> j) & 1);
+          r->coeffs[8 * i + j] = mask & ((GCRY_MLKEM_Q + 1) / 2);
+        }
+    }
+}
+
+/*************************************************
+ * Name:        gcry_mlkem_poly_tomsg
+ *
+ * Description: Convert polynomial to 32-byte message
+ *
+ * Arguments:   - unsigned char *msg: pointer to output message
+ *              - const gcry_mlkem_poly *a: pointer to input polynomial
+ **************************************************/
+void
+_gcry_mlkem_poly_tomsg (unsigned char msg[GCRY_MLKEM_INDCPA_MSGBYTES],
+                        const gcry_mlkem_poly *a)
+{
+  unsigned int i, j;
+  uint16_t t;
+
+  for (i = 0; i < GCRY_MLKEM_N / 8; i++)
+    {
+      msg[i] = 0;
+      for (j = 0; j < 8; j++)
+        {
+          t = a->coeffs[8 * i + j];
+          t += ((int16_t)t >> 15) & GCRY_MLKEM_Q;
+          t = (((t << 1) + GCRY_MLKEM_Q / 2) / GCRY_MLKEM_Q) & 1;
+          msg[i] |= t << j;
+        }
+    }
+}
+
+/*************************************************
+ * Name:        gcry_mlkem_poly_getnoise_eta1
+ *
+ * Description: Sample a polynomial deterministically from a seed and a nonce,
+ *              with output polynomial close to centered binomial distribution
+ *              with parameter MLKEM_ETA1
+ *
+ * Arguments:   - gcry_mlkem_poly *r: pointer to output polynomial
+ *              - const unsigned char *seed: pointer to input seed
+ *                                     (of length GCRY_MLKEM_SYMBYTES bytes)
+ *              - unsigned char nonce: one-byte input nonce
+ *              - gcry_mlkem_param_t const *param: mlkem parameters
+ **************************************************/
+void
+_gcry_mlkem_poly_getnoise_eta1 (gcry_mlkem_poly *r,
+                                const unsigned char seed[GCRY_MLKEM_SYMBYTES],
+                                unsigned char nonce,
+                                gcry_mlkem_param_t const *param)
+{
+  unsigned char buf[GCRY_MLKEM_ETA1_MAX * GCRY_MLKEM_N / 4];
+  _gcry_mlkem_prf (buf, sizeof (buf), seed, nonce);
+  _gcry_mlkem_poly_cbd_eta1 (r, buf, param);
+}
+
+/*************************************************
+ * Name:        gcry_mlkem_poly_getnoise_eta2
+ *
+ * Description: Sample a polynomial deterministically from a seed and a nonce,
+ *              with output polynomial close to centered binomial distribution
+ *              with parameter GCRY_MLKEM_ETA2
+ *
+ * Arguments:   - gcry_mlkem_poly *r: pointer to output polynomial
+ *              - const unsigned char *seed: pointer to input seed
+ *                                     (of length GCRY_MLKEM_SYMBYTES bytes)
+ *              - unsigned char nonce: one-byte input nonce
+ **************************************************/
+void
+_gcry_mlkem_poly_getnoise_eta2 (gcry_mlkem_poly *r,
+                                const unsigned char seed[GCRY_MLKEM_SYMBYTES],
+                                unsigned char nonce)
+{
+  unsigned char buf[GCRY_MLKEM_ETA2 * GCRY_MLKEM_N / 4];
+  _gcry_mlkem_prf (buf, sizeof (buf), seed, nonce);
+  _gcry_mlkem_poly_cbd_eta2 (r, buf);
+}
+
+
+/*************************************************
+ * Name:        gcry_mlkem_poly_ntt
+ *
+ * Description: Computes negacyclic number-theoretic transform (NTT) of
+ *              a polynomial in place;
+ *              inputs assumed to be in normal order, output in bitreversed
+ *order
+ *
+ * Arguments:   - uint16_t *r: pointer to in/output polynomial
+ **************************************************/
+void
+_gcry_mlkem_poly_ntt (gcry_mlkem_poly *r)
+{
+  _gcry_mlkem_ntt (r->coeffs);
+  _gcry_mlkem_poly_reduce (r);
+}
+
+/*************************************************
+ * Name:        poly_invntt_tomont
+ *
+ * Description: Computes inverse of negacyclic number-theoretic transform (NTT)
+ *              of a polynomial in place;
+ *              inputs assumed to be in bitreversed order, output in normal
+ *order
+ *
+ * Arguments:   - uint16_t *a: pointer to in/output polynomial
+ **************************************************/
+void
+_gcry_mlkem_poly_invntt_tomont (gcry_mlkem_poly *r)
+{
+  _gcry_mlkem_invntt (r->coeffs);
+}
+
+/*************************************************
+ * Name:        poly_basemul_montgomery
+ *
+ * Description: Multiplication of two polynomials in NTT domain
+ *
+ * Arguments:   - gcry_mlkem_poly *r: pointer to output polynomial
+ *              - const gcry_mlkem_poly *a: pointer to first input polynomial
+ *              - const gcry_mlkem_poly *b: pointer to second input polynomial
+ **************************************************/
+void
+_gcry_mlkem_poly_basemul_montgomery (gcry_mlkem_poly *r,
+                                     const gcry_mlkem_poly *a,
+                                     const gcry_mlkem_poly *b)
+{
+  unsigned int i;
+  for (i = 0; i < GCRY_MLKEM_N / 4; i++)
+    {
+      _gcry_mlkem_basemul (
+          &r->coeffs[4 * i], &a->coeffs[4 * i], &b->coeffs[4 * i], 64 + i, 1);
+      _gcry_mlkem_basemul (&r->coeffs[4 * i + 2],
+                           &a->coeffs[4 * i + 2],
+                           &b->coeffs[4 * i + 2],
+                           64 + i,
+                           -1);
+    }
+}
+
+/*************************************************
+ * Name:        poly_tomont
+ *
+ * Description: Inplace conversion of all coefficients of a polynomial
+ *              from normal domain to Montgomery domain
+ *
+ * Arguments:   - gcry_mlkem_poly *r: pointer to input/output polynomial
+ **************************************************/
+void
+_gcry_mlkem_poly_tomont (gcry_mlkem_poly *r)
+{
+  unsigned int i;
+  const int16_t f = (1ULL << 32) % GCRY_MLKEM_Q;
+  for (i = 0; i < GCRY_MLKEM_N; i++)
+    {
+      r->coeffs[i] = _gcry_mlkem_montgomery_reduce ((int32_t)r->coeffs[i] * f);
+    }
+}
+
+/*************************************************
+ * Name:        poly_reduce
+ *
+ * Description: Applies Barrett reduction to all coefficients of a polynomial
+ *              for details of the Barrett reduction see comments in reduce.c
+ *
+ * Arguments:   - gcry_mlkem_poly *r: pointer to input/output polynomial
+ **************************************************/
+void
+_gcry_mlkem_poly_reduce (gcry_mlkem_poly *r)
+{
+  unsigned int i;
+  for (i = 0; i < GCRY_MLKEM_N; i++)
+    {
+      r->coeffs[i] = _gcry_mlkem_barrett_reduce (r->coeffs[i]);
+    }
+}
+
+/*************************************************
+ * Name:        poly_add
+ *
+ * Description: Add two polynomials; no modular reduction is performed
+ *
+ * Arguments: - gcry_mlkem_poly *r: pointer to output polynomial
+ *            - const gcry_mlkem_poly *a: pointer to first input polynomial
+ *            - const gcry_mlkem_poly *b: pointer to second input polynomial
+ **************************************************/
+void
+_gcry_mlkem_poly_add (gcry_mlkem_poly *r,
+                      const gcry_mlkem_poly *a,
+                      const gcry_mlkem_poly *b)
+{
+  unsigned int i;
+  for (i = 0; i < GCRY_MLKEM_N; i++)
+    {
+      r->coeffs[i] = a->coeffs[i] + b->coeffs[i];
+    }
+}
+
+/*************************************************
+ * Name:        poly_sub
+ *
+ * Description: Subtract two polynomials; no modular reduction is performed
+ *
+ * Arguments: - gcry_mlkem_poly *r:       pointer to output polynomial
+ *            - const gcry_mlkem_poly *a: pointer to first input polynomial
+ *            - const gcry_mlkem_poly *b: pointer to second input polynomial
+ **************************************************/
+void
+_gcry_mlkem_poly_sub (gcry_mlkem_poly *r,
+                      const gcry_mlkem_poly *a,
+                      const gcry_mlkem_poly *b)
+{
+  unsigned int i;
+  for (i = 0; i < GCRY_MLKEM_N; i++)
+    {
+      r->coeffs[i] = a->coeffs[i] - b->coeffs[i];
+    }
+}
diff --git a/cipher/mlkem-poly.h b/cipher/mlkem-poly.h
new file mode 100644
index 00000000..4b761986
--- /dev/null
+++ b/cipher/mlkem-poly.h
@@ -0,0 +1,95 @@
+/* mlkem-poly.h - functions related to polynomials for ML-KEM
+ * Copyright (C) 2023 MTG AG
+ * The code was created based on the reference implementation that is part of the ML-KEM NIST submission.
+ *
+ * This file is part of Libgcrypt.
+ *
+ * Libgcrypt is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License as
+ * published by the Free Software Foundation; either version 2.1 of
+ * the License, or (at your option) any later version.
+ *
+ * Libgcrypt is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this program; if not, see <http://www.gnu.org/licenses/>.
+ */
+
+#ifndef GCRYPT_MLKEM_POLY_H
+#define GCRYPT_MLKEM_POLY_H
+
+#include <stdint.h>
+#include "mlkem-params.h"
+
+/*
+ * Elements of R_q = Z_q[X]/(X^n + 1). Represents polynomial
+ * coeffs[0] + X*coeffs[1] + X^2*coeffs[2] + ... + X^{n-1}*coeffs[n-1]
+ */
+typedef struct
+{
+  int16_t coeffs[GCRY_MLKEM_N];
+} gcry_mlkem_poly;
+
+
+void _gcry_mlkem_poly_compress (unsigned char *r,
+                                const gcry_mlkem_poly *a,
+                                gcry_mlkem_param_t const *param);
+
+void _gcry_mlkem_poly_decompress (gcry_mlkem_poly *r,
+                                  const unsigned char *a,
+                                  gcry_mlkem_param_t const *param);
+
+
+void _gcry_mlkem_poly_tobytes (unsigned char r[GCRY_MLKEM_POLYBYTES],
+                               const gcry_mlkem_poly *a);
+
+void _gcry_mlkem_poly_frombytes (gcry_mlkem_poly *r,
+                                 const unsigned char a[GCRY_MLKEM_POLYBYTES]);
+
+
+void _gcry_mlkem_poly_frommsg (
+    gcry_mlkem_poly *r, const unsigned char msg[GCRY_MLKEM_INDCPA_MSGBYTES]);
+
+void _gcry_mlkem_poly_tomsg (unsigned char msg[GCRY_MLKEM_INDCPA_MSGBYTES],
+                             const gcry_mlkem_poly *r);
+
+
+void _gcry_mlkem_poly_getnoise_eta1 (
+    gcry_mlkem_poly *r,
+    const unsigned char seed[GCRY_MLKEM_SYMBYTES],
+    unsigned char nonce,
+    gcry_mlkem_param_t const *param);
+
+
+void _gcry_mlkem_poly_getnoise_eta2 (
+    gcry_mlkem_poly *r,
+    const unsigned char seed[GCRY_MLKEM_SYMBYTES],
+    unsigned char nonce);
+
+
+void _gcry_mlkem_poly_ntt (gcry_mlkem_poly *r);
+
+void _gcry_mlkem_poly_invntt_tomont (gcry_mlkem_poly *r);
+
+void _gcry_mlkem_poly_basemul_montgomery (gcry_mlkem_poly *r,
+                                          const gcry_mlkem_poly *a,
+                                          const gcry_mlkem_poly *b);
+
+void _gcry_mlkem_poly_tomont (gcry_mlkem_poly *r);
+
+
+void _gcry_mlkem_poly_reduce (gcry_mlkem_poly *r);
+
+
+void _gcry_mlkem_poly_add (gcry_mlkem_poly *r,
+                           const gcry_mlkem_poly *a,
+                           const gcry_mlkem_poly *b);
+
+void _gcry_mlkem_poly_sub (gcry_mlkem_poly *r,
+                           const gcry_mlkem_poly *a,
+                           const gcry_mlkem_poly *b);
+
+#endif /* GCRYPT_MLKEM_POLY_H */
diff --git a/cipher/mlkem-polyvec.c b/cipher/mlkem-polyvec.c
new file mode 100644
index 00000000..1841684e
--- /dev/null
+++ b/cipher/mlkem-polyvec.c
@@ -0,0 +1,409 @@
+/* mlkem-polyvec.c - functions related to vectors of polynomials for ML-KEM
+ * Copyright (C) 2023 MTG AG
+ * The code was created based on the reference implementation that is part of the ML-KEM NIST submission.
+ *
+ * This file is part of Libgcrypt.
+ *
+ * Libgcrypt is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License as
+ * published by the Free Software Foundation; either version 2.1 of
+ * the License, or (at your option) any later version.
+ *
+ * Libgcrypt is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this program; if not, see <http://www.gnu.org/licenses/>.
+ */
+
+#include <stdint.h>
+#include "mlkem-params.h"
+#include "mlkem-poly.h"
+#include "mlkem-polyvec.h"
+
+gcry_error_t
+_gcry_mlkem_polymatrix_create (gcry_mlkem_polyvec **polymat,
+                               gcry_mlkem_param_t const *param)
+{
+  gcry_error_t ec = 0;
+  unsigned i;
+  *polymat = xtrymalloc (sizeof (**polymat) * param->k);
+  if (!polymat)
+    {
+      ec = gpg_error_from_syserror ();
+      goto leave;
+    }
+  memset ((polymat)[0], 0, sizeof (**polymat) * param->k);
+
+  for (i = 0; i < param->k; i++)
+    {
+      ec = _gcry_mlkem_polyvec_create (&(*polymat)[i], param);
+      if (ec)
+        {
+          goto leave;
+        }
+    }
+leave:
+  return ec;
+}
+
+
+void
+_gcry_mlkem_polymatrix_destroy (gcry_mlkem_polyvec **polymat,
+                                gcry_mlkem_param_t const *param)
+{
+  unsigned i;
+  if (polymat == NULL)
+    {
+      return;
+    }
+  for (i = 0; i < param->k; i++)
+    {
+      _gcry_mlkem_polyvec_destroy (&(*polymat)[i]);
+    }
+  xfree (*polymat);
+  *polymat = NULL;
+}
+
+gcry_error_t
+_gcry_mlkem_polyvec_create (gcry_mlkem_polyvec *polyvec,
+                            gcry_mlkem_param_t const *param)
+{
+
+  polyvec->vec = xtrymalloc_secure (sizeof (*polyvec->vec) * param->k);
+  if (polyvec->vec == NULL)
+    {
+      return gpg_err_code_from_syserror ();
+    }
+  return 0;
+}
+
+void
+_gcry_mlkem_polyvec_destroy (gcry_mlkem_polyvec *polyvec)
+{
+  xfree (polyvec->vec);
+}
+
+/*************************************************
+ * Name:        gcry_mlkem_polyvec_compress
+ *
+ * Description: Compress and serialize vector of polynomials
+ *
+ * Arguments:   - uint8_t *r: pointer to output byte array
+ *                            (needs space for MLKEM_POLYVECCOMPRESSEDBYTES)
+ *              - const gcry_mlkem_polyvec *a: pointer to input vector of polynomials
+ *              - gcry_mlkem_param_t const *param: mlkem parameters
+ **************************************************/
+void
+_gcry_mlkem_polyvec_compress (uint8_t *r,
+                              const gcry_mlkem_polyvec *a,
+                              gcry_mlkem_param_t const *param)
+{
+  unsigned int i, j, k;
+  switch (param->id)
+    {
+    case GCRY_MLKEM_1024:
+      {
+        uint16_t t[8];
+        for (i = 0; i < param->k; i++)
+          {
+            for (j = 0; j < GCRY_MLKEM_N / 8; j++)
+              {
+                for (k = 0; k < 8; k++)
+                  {
+                    t[k] = a->vec[i].coeffs[8 * j + k];
+                    t[k] += ((int16_t)t[k] >> 15) & GCRY_MLKEM_Q;
+                    t[k] = ((((uint32_t)t[k] << 11) + GCRY_MLKEM_Q / 2)
+                            / GCRY_MLKEM_Q)
+                           & 0x7ff;
+                  }
+
+                r[0]  = (t[0] >> 0);
+                r[1]  = (t[0] >> 8) | (t[1] << 3);
+                r[2]  = (t[1] >> 5) | (t[2] << 6);
+                r[3]  = (t[2] >> 2);
+                r[4]  = (t[2] >> 10) | (t[3] << 1);
+                r[5]  = (t[3] >> 7) | (t[4] << 4);
+                r[6]  = (t[4] >> 4) | (t[5] << 7);
+                r[7]  = (t[5] >> 1);
+                r[8]  = (t[5] >> 9) | (t[6] << 2);
+                r[9]  = (t[6] >> 6) | (t[7] << 5);
+                r[10] = (t[7] >> 3);
+                r += 11;
+              }
+          }
+        break;
+      }
+    case GCRY_MLKEM_512:
+    case GCRY_MLKEM_768:
+      {
+
+        uint16_t t[4];
+        for (i = 0; i < param->k; i++)
+          {
+            for (j = 0; j < GCRY_MLKEM_N / 4; j++)
+              {
+                for (k = 0; k < 4; k++)
+                  {
+                    t[k] = a->vec[i].coeffs[4 * j + k];
+                    t[k] += ((int16_t)t[k] >> 15) & GCRY_MLKEM_Q;
+                    t[k] = ((((uint32_t)t[k] << 10) + GCRY_MLKEM_Q / 2)
+                            / GCRY_MLKEM_Q)
+                           & 0x3ff;
+                  }
+
+                r[0] = (t[0] >> 0);
+                r[1] = (t[0] >> 8) | (t[1] << 2);
+                r[2] = (t[1] >> 6) | (t[2] << 4);
+                r[3] = (t[2] >> 4) | (t[3] << 6);
+                r[4] = (t[3] >> 2);
+                r += 5;
+              }
+          }
+        break;
+      }
+    }
+}
+
+/*************************************************
+ * Name:        gcry_mlkem_polyvec_decompress
+ *
+ * Description: De-serialize and decompress vector of polynomials;
+ *              approximate inverse of gcry_mlkem_polyvec_compress
+ *
+ * Arguments:   - gcry_mlkem_polyvec *r:       pointer to output vector of
+ *polynomials
+ *              - const uint8_t *a: pointer to input byte array
+ *                                  (of length MLKEM_POLYVECCOMPRESSEDBYTES)
+ *              - gcry_mlkem_param_t const *param: mlkem parameters
+ **************************************************/
+void
+_gcry_mlkem_polyvec_decompress (gcry_mlkem_polyvec *r,
+                                const uint8_t *a,
+                                gcry_mlkem_param_t const *param)
+{
+  unsigned int i, j, k;
+  switch (param->id)
+    {
+    case GCRY_MLKEM_1024:
+      {
+        uint16_t t[8];
+        for (i = 0; i < param->k; i++)
+          {
+            for (j = 0; j < GCRY_MLKEM_N / 8; j++)
+              {
+                t[0] = (a[0] >> 0) | ((uint16_t)a[1] << 8);
+                t[1] = (a[1] >> 3) | ((uint16_t)a[2] << 5);
+                t[2] = (a[2] >> 6) | ((uint16_t)a[3] << 2)
+                       | ((uint16_t)a[4] << 10);
+                t[3] = (a[4] >> 1) | ((uint16_t)a[5] << 7);
+                t[4] = (a[5] >> 4) | ((uint16_t)a[6] << 4);
+                t[5] = (a[6] >> 7) | ((uint16_t)a[7] << 1)
+                       | ((uint16_t)a[8] << 9);
+                t[6] = (a[8] >> 2) | ((uint16_t)a[9] << 6);
+                t[7] = (a[9] >> 5) | ((uint16_t)a[10] << 3);
+                a += 11;
+
+                for (k = 0; k < 8; k++)
+                  r->vec[i].coeffs[8 * j + k]
+                      = ((uint32_t)(t[k] & 0x7FF) * GCRY_MLKEM_Q + 1024) >> 11;
+              }
+          }
+        break;
+      }
+    case GCRY_MLKEM_768:
+    case GCRY_MLKEM_512:
+      {
+        uint16_t t[4];
+        for (i = 0; i < param->k; i++)
+          {
+            for (j = 0; j < GCRY_MLKEM_N / 4; j++)
+              {
+                t[0] = (a[0] >> 0) | ((uint16_t)a[1] << 8);
+                t[1] = (a[1] >> 2) | ((uint16_t)a[2] << 6);
+                t[2] = (a[2] >> 4) | ((uint16_t)a[3] << 4);
+                t[3] = (a[3] >> 6) | ((uint16_t)a[4] << 2);
+                a += 5;
+
+                for (k = 0; k < 4; k++)
+                  {
+                    r->vec[i].coeffs[4 * j + k]
+                        = ((uint32_t)(t[k] & 0x3FF) * GCRY_MLKEM_Q + 512)
+                          >> 10;
+                  }
+              }
+          }
+        break;
+      }
+    }
+}
+
+/*************************************************
+ * Name:        gcry_mlkem_polyvec_tobytes
+ *
+ * Description: Serialize vector of polynomials
+ *
+ * Arguments:   - uint8_t *r: pointer to output byte array
+ *                            (needs space for GCRY_MLKEM_POLYVECBYTES)
+ *              - const gcry_mlkem_polyvec *a: pointer to input vector of polynomials
+ *              - gcry_mlkem_param_t const *param: mlkem parameters
+ **************************************************/
+void
+_gcry_mlkem_polyvec_tobytes (uint8_t *r,
+                             const gcry_mlkem_polyvec *a,
+                             gcry_mlkem_param_t const *param)
+{
+  unsigned int i;
+  for (i = 0; i < param->k; i++)
+    {
+      _gcry_mlkem_poly_tobytes (r + i * GCRY_MLKEM_POLYBYTES, &a->vec[i]);
+    }
+}
+
+/*************************************************
+ * Name:        gcry_mlkem_polyvec_frombytes
+ *
+ * Description: De-serialize vector of polynomials;
+ *              inverse of gcry_mlkem_polyvec_tobytes
+ *
+ * Arguments:   - uint8_t *r:       pointer to output byte array
+ *              - const gcry_mlkem_polyvec *a: pointer to input vector of polynomials (of length GCRY_MLKEM_POLYVECBYTES)
+ *              - gcry_mlkem_param_t const *param: mlkem parameters
+ **************************************************/
+void
+_gcry_mlkem_polyvec_frombytes (gcry_mlkem_polyvec *r,
+                               const uint8_t *a,
+                               gcry_mlkem_param_t const *param)
+{
+  unsigned int i;
+  for (i = 0; i < param->k; i++)
+    {
+      _gcry_mlkem_poly_frombytes (&r->vec[i], a + i * GCRY_MLKEM_POLYBYTES);
+    }
+}
+
+/*************************************************
+ * Name:        gcry_mlkem_polyvec_ntt
+ *
+ * Description: Apply forward NTT to all elements of a vector of polynomials
+ *
+ * Arguments:   - gcry_mlkem_polyvec *r: pointer to in/output vector of polynomials
+ *              - gcry_mlkem_param_t const *param: mlkem parameters
+ **************************************************/
+void
+_gcry_mlkem_polyvec_ntt (gcry_mlkem_polyvec *r,
+                         gcry_mlkem_param_t const *param)
+{
+  unsigned int i;
+  for (i = 0; i < param->k; i++)
+    {
+      _gcry_mlkem_poly_ntt (&r->vec[i]);
+    }
+}
+
+/*************************************************
+ * Name:        gcry_mlkem_polyvec_invntt_tomont
+ *
+ * Description: Apply inverse NTT to all elements of a vector of polynomials
+ *              and multiply by Montgomery factor 2^16
+ *
+ * Arguments:   - gcry_mlkem_polyvec *r: pointer to in/output vector of polynomials
+ *              - gcry_mlkem_param_t const *param: mlkem parameters
+ **************************************************/
+void
+_gcry_mlkem_polyvec_invntt_tomont (gcry_mlkem_polyvec *r,
+                                   gcry_mlkem_param_t const *param)
+{
+  unsigned int i;
+  for (i = 0; i < param->k; i++)
+    {
+      _gcry_mlkem_poly_invntt_tomont (&r->vec[i]);
+    }
+}
+
+/*************************************************
+ * Name:        gcry_mlkem_polyvec_basemul_acc_montgomery
+ *
+ * Description: Multiply elements of a and b in NTT domain, accumulate into r,
+ *              and multiply by 2^-16.
+ *
+ * Arguments: - poly *r: pointer to output polynomial
+ *            - const gcry_mlkem_polyvec *a: pointer to first input vector of polynomials
+ *            - const gcry_mlkem_polyvec *b: pointer to second input vector of polynomials
+ *            - gcry_mlkem_param_t const *param: mlkem parameters
+ **************************************************/
+gcry_err_code_t
+_gcry_mlkem_polyvec_basemul_acc_montgomery (gcry_mlkem_poly *r,
+                                            const gcry_mlkem_polyvec *a,
+                                            const gcry_mlkem_polyvec *b,
+                                            gcry_mlkem_param_t const *param)
+{
+  gcry_err_code_t ec = 0;
+  unsigned int i;
+  gcry_mlkem_poly *t = NULL;
+  t                  = (gcry_mlkem_poly *)xtrymalloc_secure (sizeof (*t));
+  if (!t)
+    {
+      ec = gpg_err_code_from_syserror ();
+      goto leave;
+    }
+
+
+  _gcry_mlkem_poly_basemul_montgomery (r, &a->vec[0], &b->vec[0]);
+  for (i = 1; i < param->k; i++)
+    {
+      _gcry_mlkem_poly_basemul_montgomery (t, &a->vec[i], &b->vec[i]);
+      _gcry_mlkem_poly_add (r, r, t);
+    }
+
+  _gcry_mlkem_poly_reduce (r);
+leave:
+  xfree (t);
+  return ec;
+}
+
+/*************************************************
+ * Name:        gcry_mlkem_polyvec_reduce
+ *
+ * Description: Applies Barrett reduction to each coefficient
+ *              of each element of a vector of polynomials;
+ *              for details of the Barrett reduction see comments in reduce.c
+ *
+ * Arguments:   - gcry_mlkem_polyvec *r: pointer to input/output polynomial
+ *              - gcry_mlkem_param_t const *param: mlkem parameters
+ **************************************************/
+void
+_gcry_mlkem_polyvec_reduce (gcry_mlkem_polyvec *r,
+                            gcry_mlkem_param_t const *param)
+{
+  unsigned int i;
+  for (i = 0; i < param->k; i++)
+    {
+      _gcry_mlkem_poly_reduce (&r->vec[i]);
+    }
+}
+
+/*************************************************
+ * Name:        gcry_mlkem_polyvec_add
+ *
+ * Description: Add vectors of polynomials
+ *
+ * Arguments: - gcry_mlkem_polyvec *r: pointer to output vector of polynomials
+ *            - const gcry_mlkem_polyvec *a: pointer to first input vector of polynomials
+ *            - const gcry_mlkem_polyvec *b: pointer to second input vector of polynomials
+ *            - gcry_mlkem_param_t const *param: mlkem parameters
+ **************************************************/
+void
+_gcry_mlkem_polyvec_add (gcry_mlkem_polyvec *r,
+                         const gcry_mlkem_polyvec *a,
+                         const gcry_mlkem_polyvec *b,
+                         gcry_mlkem_param_t const *param)
+{
+  unsigned int i;
+  for (i = 0; i < param->k; i++)
+    {
+      _gcry_mlkem_poly_add (&r->vec[i], &a->vec[i], &b->vec[i]);
+    }
+}
diff --git a/cipher/mlkem-polyvec.h b/cipher/mlkem-polyvec.h
new file mode 100644
index 00000000..abbfd94b
--- /dev/null
+++ b/cipher/mlkem-polyvec.h
@@ -0,0 +1,84 @@
+/* mlkem-polyvec.h - functions related to vectors of polynomials for ML-KEM
+ * Copyright (C) 2023 MTG AG
+ * The code was created based on the reference implementation that is part of the ML-KEM NIST submission.
+ *
+ * This file is part of Libgcrypt.
+ *
+ * Libgcrypt is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License as
+ * published by the Free Software Foundation; either version 2.1 of
+ * the License, or (at your option) any later version.
+ *
+ * Libgcrypt is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this program; if not, see <http://www.gnu.org/licenses/>.
+ */
+
+#ifndef GCRYPT_MLKEM_POLYVEC_H
+#define GCRYPT_MLKEM_POLYVEC_H
+
+#include <config.h>
+#include <stdint.h>
+#include "mlkem-params.h"
+#include "mlkem-poly.h"
+#include "g10lib.h"
+#include "mlkem-aux.h"
+
+typedef struct
+{
+  gcry_mlkem_poly *vec;
+} gcry_mlkem_polyvec;
+
+
+gcry_error_t _gcry_mlkem_polymatrix_create (gcry_mlkem_polyvec **polymat,
+                                            gcry_mlkem_param_t const *param);
+
+void _gcry_mlkem_polymatrix_destroy (gcry_mlkem_polyvec **polymat,
+                                     gcry_mlkem_param_t const *param);
+
+gcry_error_t _gcry_mlkem_polyvec_create (gcry_mlkem_polyvec *polyvec,
+                                         gcry_mlkem_param_t const *param);
+
+void _gcry_mlkem_polyvec_destroy (gcry_mlkem_polyvec *polyvec);
+
+void _gcry_mlkem_polyvec_compress (uint8_t *r,
+                                   const gcry_mlkem_polyvec *a,
+                                   gcry_mlkem_param_t const *param);
+
+void _gcry_mlkem_polyvec_decompress (gcry_mlkem_polyvec *r,
+                                     const uint8_t *a,
+                                     gcry_mlkem_param_t const *param);
+
+void _gcry_mlkem_polyvec_tobytes (uint8_t *r,
+                                  const gcry_mlkem_polyvec *a,
+                                  gcry_mlkem_param_t const *param);
+
+void _gcry_mlkem_polyvec_frombytes (gcry_mlkem_polyvec *r,
+                                    const uint8_t *a,
+                                    gcry_mlkem_param_t const *param);
+
+void _gcry_mlkem_polyvec_ntt (gcry_mlkem_polyvec *r,
+                              gcry_mlkem_param_t const *param);
+
+void _gcry_mlkem_polyvec_invntt_tomont (gcry_mlkem_polyvec *r,
+                                        gcry_mlkem_param_t const *param);
+
+gcry_err_code_t _gcry_mlkem_polyvec_basemul_acc_montgomery (
+    gcry_mlkem_poly *r,
+    const gcry_mlkem_polyvec *a,
+    const gcry_mlkem_polyvec *b,
+    gcry_mlkem_param_t const *param);
+
+void _gcry_mlkem_polyvec_reduce (gcry_mlkem_polyvec *r,
+                                 gcry_mlkem_param_t const *param);
+
+void _gcry_mlkem_polyvec_add (gcry_mlkem_polyvec *r,
+                              const gcry_mlkem_polyvec *a,
+                              const gcry_mlkem_polyvec *b,
+                              gcry_mlkem_param_t const *param);
+
+#endif /* GCRYPT_MLKEM_POLYVEC_H */
diff --git a/cipher/mlkem-symmetric.c b/cipher/mlkem-symmetric.c
new file mode 100644
index 00000000..22d81982
--- /dev/null
+++ b/cipher/mlkem-symmetric.c
@@ -0,0 +1,85 @@
+/* mlkem-symmetric.c - functions wrapping symmetric primitives for ML-KEM
+ * Copyright (C) 2023 MTG AG
+ * The code was created based on the reference implementation that is part of the ML-KEM NIST submission.
+ *
+ * This file is part of Libgcrypt.
+ *
+ * Libgcrypt is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License as
+ * published by the Free Software Foundation; either version 2.1 of
+ * the License, or (at your option) any later version.
+ *
+ * Libgcrypt is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this program; if not, see <http://www.gnu.org/licenses/>.
+ */
+
+#include <stddef.h>
+#include <stdint.h>
+#include <string.h>
+#include "mlkem-params.h"
+#include "mlkem-symmetric.h"
+
+#include "gcrypt.h"
+
+
+void
+_gcry_mlkem_shake128_absorb (gcry_md_hd_t h,
+                             const unsigned char seed[GCRY_MLKEM_SYMBYTES],
+                             unsigned char x,
+                             unsigned char y)
+{
+  unsigned char extseed[GCRY_MLKEM_SYMBYTES + 2];
+
+  memcpy (extseed, seed, GCRY_MLKEM_SYMBYTES);
+  extseed[GCRY_MLKEM_SYMBYTES + 0] = x;
+  extseed[GCRY_MLKEM_SYMBYTES + 1] = y;
+
+  _gcry_md_write (h, extseed, sizeof (extseed));
+}
+
+
+gcry_err_code_t
+_gcry_mlkem_shake128_squeezeblocks (gcry_md_hd_t h,
+                                    uint8_t *out,
+                                    size_t nblocks)
+{
+  return _gcry_md_extract (
+      h, GCRY_MD_SHAKE128, out, GCRY_SHAKE128_RATE * nblocks);
+}
+
+gcry_err_code_t
+_gcry_mlkem_shake256_prf (unsigned char *out,
+                          size_t outlen,
+                          const unsigned char key[GCRY_MLKEM_SYMBYTES],
+                          unsigned char nonce)
+{
+  unsigned char extkey[GCRY_MLKEM_SYMBYTES + 1];
+  gcry_err_code_t ec = 0;
+  gcry_md_hd_t h;
+
+  memcpy (extkey, key, GCRY_MLKEM_SYMBYTES);
+  extkey[GCRY_MLKEM_SYMBYTES] = nonce;
+  ec = _gcry_md_open (&h, GCRY_MD_SHAKE256, GCRY_MD_FLAG_SECURE);
+  if (ec)
+    {
+      return ec;
+    }
+  _gcry_md_write (h, extkey, sizeof (extkey));
+  ec = _gcry_md_extract (h, GCRY_MD_SHAKE256, out, outlen);
+  _gcry_md_close (h);
+  return ec;
+}
+
+gcry_err_code_t
+_gcry_mlkem_prf (unsigned char *out,
+                 size_t outlen,
+                 const unsigned char key[GCRY_MLKEM_SYMBYTES],
+                 unsigned char nonce)
+{
+  return _gcry_mlkem_shake256_prf (out, outlen, key, nonce);
+}
diff --git a/cipher/mlkem-symmetric.h b/cipher/mlkem-symmetric.h
new file mode 100644
index 00000000..d872d784
--- /dev/null
+++ b/cipher/mlkem-symmetric.h
@@ -0,0 +1,66 @@
+/* mlkem-symmetric.h - functions wrapping symmetric primitives for ML-KEM
+ * Copyright (C) 2023 MTG AG
+ * The code was created based on the reference implementation that is part of the ML-KEM NIST submission.
+ *
+ * This file is part of Libgcrypt.
+ *
+ * Libgcrypt is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License as
+ * published by the Free Software Foundation; either version 2.1 of
+ * the License, or (at your option) any later version.
+ *
+ * Libgcrypt is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this program; if not, see <http://www.gnu.org/licenses/>.
+ */
+
+#ifndef GCRYPT_MLKEM_SYMMETRIC_H
+#define GCRYPT_MLKEM_SYMMETRIC_H
+
+#include <config.h>
+#include <stddef.h>
+#include <stdint.h>
+#include "mlkem-params.h"
+
+
+#include "g10lib.h"
+
+
+void _gcry_mlkem_shake128_absorb (
+    gcry_md_hd_t h,
+    const unsigned char seed[GCRY_MLKEM_SYMBYTES],
+    unsigned char x,
+    unsigned char y);
+
+/*************************************************
+ * Name:        mlkem_shake256_prf
+ *
+ * Description: Usage of SHAKE256 as a PRF, concatenates secret and public
+ *input and then generates outlen bytes of SHAKE256 output
+ *
+ * Arguments:   - unsigned char *out: pointer to output
+ *              - size_t outlen: number of requested output bytes
+ *              - const unsigned char *key: pointer to the key (of length GCRY_MLKEM_SYMBYTES)
+ *              - unsigned char nonce: single-byte nonce (public PRF input)
+ **************************************************/
+gcry_err_code_t _gcry_mlkem_shake256_prf (
+    uint8_t *out,
+    size_t outlen,
+    const uint8_t key[GCRY_MLKEM_SYMBYTES],
+    uint8_t nonce);
+
+gcry_err_code_t _gcry_mlkem_shake128_squeezeblocks (gcry_md_hd_t h,
+                                                    uint8_t *out,
+                                                    size_t nblocks);
+
+gcry_err_code_t _gcry_mlkem_prf (uint8_t *out,
+                                 size_t outlen,
+                                 const uint8_t key[GCRY_MLKEM_SYMBYTES],
+                                 uint8_t nonce);
+
+
+#endif /* GCRYPT_MLKEM_SYMMETRIC_H */
diff --git a/cipher/mlkem.c b/cipher/mlkem.c
new file mode 100644
index 00000000..083d32f5
--- /dev/null
+++ b/cipher/mlkem.c
@@ -0,0 +1,479 @@
+/* mlkem.c - API functions for ML-KEM
+ * Copyright (C) 2023 MTG AG
+ * The code was created based on the reference implementation that is part of the ML-KEM NIST submission.
+ *
+ * This file is part of Libgcrypt.
+ *
+ * Libgcrypt is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License as
+ * published by the Free Software Foundation; either version 2.1 of
+ * the License, or (at your option) any later version.
+ *
+ * Libgcrypt is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this program; if not, see <http://www.gnu.org/licenses/>.
+ */
+
+#include <config.h>
+#include <stdio.h>
+
+
+#include "mlkem-common.h"
+
+#include "g10lib.h"
+
+#include "cipher.h"
+#include "pubkey-internal.h"
+#include "mlkem-aux.h"
+
+
+static gcry_err_code_t
+_gcry_mlkem_get_param_from_bit_size (size_t nbits, gcry_mlkem_param_t *param)
+{
+  switch (nbits)
+    {
+    case 128:
+      param->id                       = GCRY_MLKEM_512;
+      param->k                        = 2;
+      param->eta1                     = 3;
+      param->poly_compressed_bytes    = 128;
+      param->polyvec_compressed_bytes = param->k * 320;
+      break;
+    case 192:
+      param->id                       = GCRY_MLKEM_768;
+      param->k                        = 3;
+      param->eta1                     = 2;
+      param->poly_compressed_bytes    = 128;
+      param->polyvec_compressed_bytes = param->k * 320;
+      break;
+    case 256:
+      param->id                       = GCRY_MLKEM_1024;
+      param->k                        = 4;
+      param->eta1                     = 2;
+      param->poly_compressed_bytes    = 160;
+      param->polyvec_compressed_bytes = param->k * 352;
+      break;
+    default:
+      return GPG_ERR_INV_ARG;
+    }
+
+  param->polyvec_bytes           = param->k * GCRY_MLKEM_POLYBYTES;
+  param->public_key_bytes        = param->polyvec_bytes + GCRY_MLKEM_SYMBYTES;
+  param->indcpa_secret_key_bytes = param->polyvec_bytes;
+  param->ciphertext_bytes
+      = param->poly_compressed_bytes + param->polyvec_compressed_bytes;
+  param->secret_key_bytes = param->indcpa_secret_key_bytes
+                            + param->public_key_bytes
+                            + 2 * GCRY_MLKEM_SYMBYTES;
+
+  return 0;
+}
+
+static gcry_err_code_t
+mlkem_params_from_key_param (const gcry_sexp_t keyparms,
+                             gcry_mlkem_param_t *param,
+                             unsigned int *nbits_p)
+{
+  gpg_err_code_t ec = 0;
+
+  unsigned int nbits;
+  ec = _gcry_pk_util_get_nbits (keyparms, &nbits);
+  if (ec)
+    {
+      return ec;
+    }
+  ec = _gcry_mlkem_get_param_from_bit_size (nbits, param);
+  if (ec)
+    {
+      return ec;
+    }
+  if (nbits_p != NULL)
+    {
+      switch (param->id)
+        {
+        case GCRY_MLKEM_512:
+          {
+            *nbits_p = 128;
+            break;
+          }
+        case GCRY_MLKEM_768:
+          {
+            *nbits_p = 192;
+            break;
+          }
+        case GCRY_MLKEM_1024:
+          {
+            *nbits_p = 256;
+            break;
+          }
+        default:
+          {
+            ec = GPG_ERR_INV_ARG;
+          }
+        }
+    }
+
+  return ec;
+}
+
+static gcry_err_code_t
+extract_opaque_mpi_from_sexp (const gcry_sexp_t keyparms,
+                              const char *label,
+                              unsigned char **data_p,
+                              size_t exp_len,
+                              xtry_alloc_func_t alloc_func)
+{
+  gcry_mpi_t sk     = NULL;
+  gpg_err_code_t ec = 0;
+  size_t nwritten   = 0;
+
+  *data_p = 0;
+
+
+  ec = sexp_extract_param (keyparms, NULL, label, &sk, NULL);
+  if (ec)
+    {
+      printf ("error from sexp_extract_param (keyparms)\n");
+      goto leave;
+    }
+  if (mpi_get_nbits (sk) != exp_len * 8)
+    {
+      ec = GPG_ERR_INV_ARG;
+      goto leave;
+    }
+  *data_p = alloc_func (exp_len);
+  if (*data_p == NULL)
+    {
+      ec = gpg_err_code_from_syserror ();
+      goto leave;
+    }
+  _gcry_mpi_print (GCRYMPI_FMT_USG, *data_p, exp_len, &nwritten, sk);
+
+  if (exp_len != nwritten)
+    {
+      ec = GPG_ERR_INV_ARG;
+      goto leave;
+    }
+
+leave:
+  if (sk != NULL)
+    {
+      _gcry_mpi_release (sk);
+    }
+  if (ec)
+    {
+      xfree (*data_p);
+      *data_p = 0;
+    }
+  return ec;
+}
+
+
+static gcry_err_code_t
+private_key_from_sexp (const gcry_sexp_t keyparms,
+                       const gcry_mlkem_param_t param,
+                       unsigned char **sk_p)
+{
+  return extract_opaque_mpi_from_sexp (
+      keyparms, "/s", sk_p, param.secret_key_bytes, _gcry_malloc_secure);
+}
+
+
+static gcry_err_code_t
+ciphertext_from_sexp (const gcry_sexp_t keyparms,
+                      const gcry_mlkem_param_t param,
+                      unsigned char **ct_p)
+{
+  return extract_opaque_mpi_from_sexp (
+      keyparms, "/c", ct_p, param.ciphertext_bytes, _gcry_malloc);
+}
+
+
+static gcry_err_code_t
+public_key_from_sexp (const gcry_sexp_t keyparms,
+                      const gcry_mlkem_param_t param,
+                      unsigned char **pk_p)
+{
+  return extract_opaque_mpi_from_sexp (
+      keyparms, "/p", pk_p, param.public_key_bytes, _gcry_malloc);
+}
+
+
+static gcry_err_code_t
+mlkem_check_secret_key (gcry_sexp_t keyparms)
+{
+
+  gpg_err_code_t ec = 0;
+  unsigned char shared_secret_1[GCRY_MLKEM_SSBYTES],
+      shared_secret_2[GCRY_MLKEM_SSBYTES];
+  unsigned char *private_key = NULL, *ciphertext = NULL;
+  unsigned char *public_key = NULL;
+
+  gcry_mlkem_param_t param;
+  ec = mlkem_params_from_key_param (keyparms, &param, NULL);
+  if (ec)
+    {
+      goto leave;
+    }
+
+  ciphertext = xtrymalloc (param.ciphertext_bytes);
+  if (!ciphertext)
+    {
+      ec = GPG_ERR_SELFTEST_FAILED;
+      goto leave;
+    }
+
+  /* Extract the key MPI from the SEXP.  */
+  ec = private_key_from_sexp (keyparms, param, &private_key);
+  if (ec)
+    {
+      goto leave;
+    }
+  public_key
+      = private_key
+        + param.indcpa_secret_key_bytes; // offset of public key in private key
+  ec = _gcry_mlkem_kem_enc (ciphertext, shared_secret_1, public_key, &param);
+  if (ec)
+    {
+      goto leave;
+    }
+  ec = _gcry_mlkem_kem_dec (shared_secret_2, ciphertext, private_key, &param);
+  if (ec)
+    {
+      goto leave;
+    }
+
+  if (memcmp (shared_secret_1, shared_secret_2, sizeof (shared_secret_1)))
+    {
+      ec = GPG_ERR_BAD_SECKEY;
+      goto leave;
+    }
+
+leave:
+
+  xfree (ciphertext);
+  xfree (private_key);
+  return ec;
+}
+
+
+static gcry_err_code_t
+mlkem_generate (const gcry_sexp_t genparms, gcry_sexp_t *r_skey)
+{
+  gpg_err_code_t ec = 0;
+
+  uint8_t *pk = 0, *sk = 0;
+  unsigned int nbits;
+  gcry_mlkem_param_t param;
+  gcry_mpi_t sk_mpi = NULL, pk_mpi = NULL;
+
+  ec = mlkem_params_from_key_param (genparms, &param, &nbits);
+  if (ec)
+    {
+      goto leave;
+    }
+  ec = _gcry_pk_util_get_nbits (genparms, &nbits);
+  if (!(sk = xtrymalloc_secure (param.secret_key_bytes))
+      || !(pk = xtrymalloc (param.public_key_bytes)))
+    {
+      ec = gpg_err_code_from_syserror ();
+      goto leave;
+    }
+  _gcry_mlkem_kem_keypair (pk, sk, &param);
+
+  sk_mpi = _gcry_mpi_set_opaque_copy (sk_mpi, sk, param.secret_key_bytes * 8);
+  pk_mpi = _gcry_mpi_set_opaque_copy (pk_mpi, pk, param.public_key_bytes * 8);
+
+  if (!ec)
+    {
+      ec = sexp_build (r_skey,
+                       NULL,
+                       "(key-data"
+                       " (public-key"
+                       "  (mlkem(p%m) (nbits%u)))"
+                       " (private-key"
+                       "  (mlkem(s%m) (nbits%u))))",
+                       pk_mpi,
+                       nbits,
+                       sk_mpi,
+                       nbits,
+                       NULL);
+    }
+  /* call the key check function for now so that we know that it is working: */
+  ec = mlkem_check_secret_key (*r_skey);
+  if (ec)
+    {
+      goto leave;
+    }
+leave:
+  _gcry_mpi_release (sk_mpi);
+  _gcry_mpi_release (pk_mpi);
+  xfree (sk);
+  xfree (pk);
+  return ec;
+}
+
+
+static gcry_err_code_t
+mlkem_encap (gcry_sexp_t *r_ciph,
+             gcry_sexp_t *r_shared_key,
+             gcry_sexp_t keyparms)
+{
+
+  gpg_err_code_t ec         = 0;
+  unsigned char *ciphertext = NULL, *public_key = NULL, *shared_secret = NULL;
+
+  gcry_mlkem_param_t param;
+
+  shared_secret = xtrymalloc_secure (GCRY_MLKEM_SSBYTES);
+
+  if (!shared_secret)
+    {
+      ec = gpg_err_code_from_syserror ();
+      goto leave;
+    }
+  ec = mlkem_params_from_key_param (keyparms, &param, NULL);
+  if (ec)
+    {
+      goto leave;
+    }
+
+  ciphertext = xtrymalloc (param.ciphertext_bytes);
+
+  /* Extract the public key MPI from the SEXP.  */
+  ec = public_key_from_sexp (keyparms, param, &public_key);
+  if (ec)
+    {
+      goto leave;
+    }
+  ec = _gcry_mlkem_kem_enc (ciphertext, shared_secret, public_key, &param);
+  if (ec)
+    {
+      goto leave;
+    }
+
+
+  ec = sexp_build (r_shared_key,
+                   NULL,
+                   "(value %b)",
+                   (int)GCRY_MLKEM_SSBYTES,
+                   shared_secret);
+  if (ec)
+    {
+      goto leave;
+    }
+
+  ec = sexp_build (r_ciph,
+                   NULL,
+                   "(ciphertext (mlkem(c %b)))",
+                   (int)param.ciphertext_bytes,
+                   ciphertext);
+
+leave:
+  xfree (shared_secret);
+  xfree (public_key);
+  xfree (ciphertext);
+  return ec;
+}
+
+
+static gcry_err_code_t
+mlkem_decrypt (gcry_sexp_t *r_plain, gcry_sexp_t s_data, gcry_sexp_t keyparms)
+{
+  gcry_mlkem_param_t param;
+  gpg_err_code_t ec          = 0;
+  unsigned char *private_key = NULL, *ciphertext = NULL, *shared_secret = NULL;
+
+  shared_secret = xtrymalloc_secure (GCRY_MLKEM_SSBYTES);
+
+  if (!shared_secret)
+    {
+      ec = gpg_err_code_from_syserror ();
+      goto leave;
+    }
+
+  ec = mlkem_params_from_key_param (keyparms, &param, NULL);
+  if (ec)
+    {
+      goto leave;
+    }
+
+  /* Extract the key MPI from the SEXP.  */
+  ec = private_key_from_sexp (keyparms, param, &private_key);
+  if (ec)
+    {
+      goto leave;
+    }
+
+  /* Extract the key Ciphertext from the SEXP.  */
+  ec = ciphertext_from_sexp (s_data, param, &ciphertext);
+  if (ec)
+    {
+      goto leave;
+    }
+
+  /* perform the decryption */
+  ec = _gcry_mlkem_kem_dec (shared_secret, ciphertext, private_key, &param);
+  if (ec)
+    {
+      goto leave;
+    }
+
+  ec = sexp_build (
+      r_plain, NULL, "(value %b)", (int)GCRY_MLKEM_SSBYTES, shared_secret);
+leave:
+  xfree (shared_secret);
+  xfree (ciphertext);
+  xfree (private_key);
+  return ec;
+}
+
+
+static unsigned int
+mlkem_get_nbits (gcry_sexp_t parms)
+{
+  gpg_err_code_t ec;
+  unsigned int nbits;
+  ec = _gcry_pk_util_get_nbits (parms, &nbits);
+  if (ec)
+    {
+      return 0;
+    }
+  return nbits;
+}
+
+
+static const char *mlkem_names[] = {
+    "mlkem",
+    "openpgp-mlkem", // ? leave?
+    NULL,
+};
+
+gcry_pk_spec_t _gcry_pubkey_spec_mlkem = {
+    GCRY_PK_MLKEM,
+    {0, 1},
+    (GCRY_PK_USAGE_ENCAP),
+    "ML-KEM",
+    mlkem_names,
+    "p",
+    "s",
+    "a",
+    "",
+    "", // elements of pub-key, sec-key, ciphertext, signature, key-grip
+    mlkem_generate,
+    mlkem_check_secret_key,
+    NULL, // encrypt
+    mlkem_encap,
+    mlkem_decrypt,
+    NULL, // sign
+    NULL, // verify
+    mlkem_get_nbits,
+    NULL, // run_selftests
+    NULL, // compute_keygrip
+    NULL, // get_curve
+    NULL  // get_curve_param
+};
diff --git a/cipher/pubkey.c b/cipher/pubkey.c
index d8f68a08..dc1ebbbe 100644
--- a/cipher/pubkey.c
+++ b/cipher/pubkey.c
@@ -47,6 +47,9 @@ static gcry_pk_spec_t * const pubkey_list[] =
 #endif
 #if USE_ELGAMAL
     &_gcry_pubkey_spec_elg,
+#endif
+#if USE_MLKEM
+    &_gcry_pubkey_spec_mlkem,
 #endif
     NULL
   };
@@ -339,6 +342,54 @@ _gcry_pk_encrypt (gcry_sexp_t *r_ciph, gcry_sexp_t s_data, gcry_sexp_t s_pkey)
 }
 
 
+/*
+   Do a PK encapsulate operation
+
+     The function returns a sexp which may be
+   passed to to pk_decrypt.
+
+   Returns: 0 or an errorcode.
+
+// TODOMTG:
+   s_data = See comment for _gcry_pk_util_data_to_mpi
+   s_pkey = <key-as-defined-in-sexp_to_key>
+   r_ciph = (enc-val
+               (<algo>
+                 (<param_name1> <mpi>)
+                 ...
+                 (<param_namen> <mpi>)
+               ))
+
+*/
+gcry_err_code_t
+_gcry_pk_encap(gcry_sexp_t *r_ciph, gcry_sexp_t* r_shared_key, gcry_sexp_t s_pkey)
+{
+  gcry_err_code_t rc;
+  gcry_pk_spec_t *spec;
+  gcry_sexp_t keyparms;
+
+  *r_ciph = NULL;
+  *r_shared_key = NULL;
+
+  rc = spec_from_sexp (s_pkey, 0, &spec, &keyparms);
+  if (rc)
+    goto leave;
+
+  if (spec->flags.disabled)
+    rc = GPG_ERR_PUBKEY_ALGO;
+  else if (!spec->flags.fips && fips_mode ())
+    rc = GPG_ERR_PUBKEY_ALGO;
+  else if (spec->encap)
+    rc = spec->encap(r_ciph, r_shared_key, keyparms);
+  else
+    rc = GPG_ERR_NOT_IMPLEMENTED;
+
+ leave:
+  sexp_release (keyparms);
+  return rc;
+}
+
+
 /*
    Do a PK decrypt operation
 
diff --git a/cipher/rsa.c b/cipher/rsa.c
index 45523e6b..9fda53c4 100644
--- a/cipher/rsa.c
+++ b/cipher/rsa.c
@@ -2226,6 +2226,7 @@ gcry_pk_spec_t _gcry_pubkey_spec_rsa =
     rsa_generate,
     rsa_check_secret_key,
     rsa_encrypt,
+    NULL,
     rsa_decrypt,
     rsa_sign,
     rsa_verify,
diff --git a/configure.ac b/configure.ac
index 4f7c3a52..557b014d 100644
--- a/configure.ac
+++ b/configure.ac
@@ -216,7 +216,7 @@ available_ciphers="$available_ciphers sm4 aria"
 enabled_ciphers=""
 
 # Definitions for public-key ciphers.
-available_pubkey_ciphers="dsa elgamal rsa ecc"
+available_pubkey_ciphers="dsa elgamal rsa ecc mlkem"
 enabled_pubkey_ciphers=""
 
 # Definitions for message digests.
@@ -3339,6 +3339,13 @@ if test "$found" = "1" ; then
    AC_DEFINE(USE_RSA, 1, [Defined if this module should be included])
 fi
 
+LIST_MEMBER(mlkem, $enabled_pubkey_ciphers)
+AM_CONDITIONAL(USE_MLKEM, [test "$found" = "1"])
+if test "$found" = "1" ; then
+  GCRYPT_PUBKEY_CIPHERS="$GCRYPT_PUBKEY_CIPHERS mlkem.lo mlkem-common.lo mlkem-ntt.lo mlkem-poly.lo mlkem-polyvec.lo  mlkem-symmetric.lo  mlkem-cbd.lo mlkem-aux.lo"
+   AC_DEFINE(USE_MLKEM, 1, [Defined if this module should be included])
+fi
+
 LIST_MEMBER(elgamal, $enabled_pubkey_ciphers)
 AM_CONDITIONAL(USE_ELGAMAL, [test "$found" = "1"])
 if test "$found" = "1" ; then
diff --git a/doc/gcrypt.texi b/doc/gcrypt.texi
index e31c9019..8fdaf781 100644
--- a/doc/gcrypt.texi
+++ b/doc/gcrypt.texi
@@ -2881,7 +2881,35 @@ Where @var{a-mpi} and @var{b-mpi} are MPIs with the result of the
 Elgamal encryption operation.
 @end deftypefun
 @c end gcry_pk_encrypt
+ at deftypefun gcry_error_t gcry_pk_encap (@w{gcry_sexp_t *@var{r_ciph},} @w{gcry_sexp_t* @var{r_shared_key},} @w{gcry_sexp_t @var{pkey}})
 
+
+
+This function performs KEM encapsulation which accepts a public
+key (PKEY) and outputs the ciphertext (R_CIPH) and the shared key
+(R_SHARED_KEY) that is encrypted by it. It is expected as an
+appropriate S-expression (see above) in PKEY.
+
+If the function could successfully perform the encryption, the
+return value will be 0 and a new S-expression with the encrypted
+result and the shared key are allocated and assigned to the variable
+at the address of R_CIPH.  The caller is responsible to release these
+values using 'gcry_sexp_release'. In case of an error, an error code
+is returned and R_CIPH and R_SHARED_KEY will be set to 'NULL'.
+
+The returned S-expression for the ciphertext has this format when used with ML-KEM:
+ at example
+  (value @var{mpi}))
+ at end example
+
+
+The returned S-expression for the shared key has this format when used with ML-KEM:
+ at example
+  (value @var{mpi}))
+ at end example
+
+ at end deftypefun
+ at c end gcry_pk_encap
 @deftypefun gcry_error_t gcry_pk_decrypt (@w{gcry_sexp_t *@var{r_plain},} @w{gcry_sexp_t @var{data},} @w{gcry_sexp_t @var{skey}})
 
 Obviously a private key must be provided for decryption.  It is expected
diff --git a/src/cipher-proto.h b/src/cipher-proto.h
index 2d03ed7d..bd377471 100644
--- a/src/cipher-proto.h
+++ b/src/cipher-proto.h
@@ -58,6 +58,12 @@ typedef gcry_err_code_t (*gcry_pk_encrypt_t) (gcry_sexp_t *r_ciph,
                                               gcry_sexp_t s_data,
                                               gcry_sexp_t keyparms);
 
+
+/* Type for the pk_encap function for KEM encapsulation.  */
+typedef gcry_err_code_t (*gcry_pk_encap_t) (gcry_sexp_t *r_ciph,
+                                              gcry_sexp_t* shared_key,
+                                              gcry_sexp_t keyparms);
+
 /* Type for the pk_decrypt function.  */
 typedef gcry_err_code_t (*gcry_pk_decrypt_t) (gcry_sexp_t *r_plain,
                                               gcry_sexp_t s_data,
@@ -108,6 +114,7 @@ typedef struct gcry_pk_spec
   gcry_pk_generate_t generate;
   gcry_pk_check_secret_key_t check_secret_key;
   gcry_pk_encrypt_t encrypt;
+  gcry_pk_encap_t encap;
   gcry_pk_decrypt_t decrypt;
   gcry_pk_sign_t sign;
   gcry_pk_verify_t verify;
diff --git a/src/cipher.h b/src/cipher.h
index 3c48c2c5..e13dc735 100644
--- a/src/cipher.h
+++ b/src/cipher.h
@@ -220,6 +220,7 @@ extern gcry_pk_spec_t _gcry_pubkey_spec_elg;
 extern gcry_pk_spec_t _gcry_pubkey_spec_elg_e;
 extern gcry_pk_spec_t _gcry_pubkey_spec_dsa;
 extern gcry_pk_spec_t _gcry_pubkey_spec_ecc;
+extern gcry_pk_spec_t _gcry_pubkey_spec_mlkem;
 
 
 #endif /*G10_CIPHER_H*/
diff --git a/src/gcrypt-int.h b/src/gcrypt-int.h
index ba52fa8e..7e99957e 100644
--- a/src/gcrypt-int.h
+++ b/src/gcrypt-int.h
@@ -95,6 +95,7 @@ size_t _gcry_cipher_get_algo_blklen (int algo);
 
 gpg_err_code_t _gcry_pk_encrypt (gcry_sexp_t *result,
                                  gcry_sexp_t data, gcry_sexp_t pkey);
+gpg_err_code_t _gcry_pk_encap(gcry_sexp_t *r_ciph, gcry_sexp_t* shared_key, gcry_sexp_t s_pkey);
 gpg_err_code_t _gcry_pk_decrypt (gcry_sexp_t *result,
                                  gcry_sexp_t data, gcry_sexp_t skey);
 gpg_err_code_t _gcry_pk_sign (gcry_sexp_t *result,
diff --git a/src/gcrypt.h.in b/src/gcrypt.h.in
index 7dc1196b..85beeaf2 100644
--- a/src/gcrypt.h.in
+++ b/src/gcrypt.h.in
@@ -277,6 +277,7 @@ enum gcry_ctl_cmds
     GCRYCTL_DUMP_MEMORY_STATS = 23,
     GCRYCTL_INIT_SECMEM       = 24,
     GCRYCTL_TERM_SECMEM       = 25,
+    GCRYCTL_RST_SECMEM_PEAK_USG = 26,
     GCRYCTL_DISABLE_SECMEM_WARN = 27,
     GCRYCTL_SUSPEND_SECMEM_WARN = 28,
     GCRYCTL_RESUME_SECMEM_WARN  = 29,
@@ -1056,6 +1057,7 @@ gcry_error_t gcry_cipher_encrypt (gcry_cipher_hd_t h,
                                   void *out, size_t outsize,
                                   const void *in, size_t inlen);
 
+
 /* The counterpart to gcry_cipher_encrypt.  */
 gcry_error_t gcry_cipher_decrypt (gcry_cipher_hd_t h,
                                   void *out, size_t outsize,
@@ -1150,7 +1152,8 @@ enum gcry_pk_algos
     GCRY_PK_ELG   = 20,     /* Elgamal       */
     GCRY_PK_ECDSA = 301,    /* (only for external use).  */
     GCRY_PK_ECDH  = 302,    /* (only for external use).  */
-    GCRY_PK_EDDSA = 303     /* (only for external use).  */
+    GCRY_PK_EDDSA = 303,    /* (only for external use).  */
+    GCRY_PK_MLKEM = 401     /* ML-KEM (Crystals-Kyber) */
   };
 
 /* Flags describing usage capabilities of a PK algorithm. */
@@ -1158,6 +1161,7 @@ enum gcry_pk_algos
 #define GCRY_PK_USAGE_ENCR 2   /* Good for encryption. */
 #define GCRY_PK_USAGE_CERT 4   /* Good to certify other keys. */
 #define GCRY_PK_USAGE_AUTH 8   /* Good for authentication. */
+#define GCRY_PK_USAGE_ENCAP 16   /* Good for KEM encapsulation. */
 #define GCRY_PK_USAGE_UNKN 128 /* Unknown usage flag. */
 
 /* Modes used with gcry_pubkey_get_sexp.  */
@@ -1169,6 +1173,11 @@ enum gcry_pk_algos
 gcry_error_t gcry_pk_encrypt (gcry_sexp_t *result,
                               gcry_sexp_t data, gcry_sexp_t pkey);
 
+/* Encrypt a newly generated random SHARED_KEY to the ciphertext CIPH using the public key PKEY. */
+gcry_error_t gcry_pk_encap(gcry_sexp_t *r_ciph,
+                           gcry_sexp_t* r_shared_key, gcry_sexp_t pkey);
+
+
 /* Decrypt the DATA using the private key SKEY and store the result as
    a newly created S-expression at RESULT. */
 gcry_error_t gcry_pk_decrypt (gcry_sexp_t *result,
diff --git a/src/global.c b/src/global.c
index ca35cf6d..ac943a6b 100644
--- a/src/global.c
+++ b/src/global.c
@@ -550,6 +550,10 @@ _gcry_vcontrol (enum gcry_ctl_cmds cmd, va_list arg_ptr)
       _gcry_secmem_dump_stats (0);
       break;
 
+    case GCRYCTL_RST_SECMEM_PEAK_USG:
+      _gcry_secmem_reset_peak();
+      break;
+
     case GCRYCTL_DROP_PRIVS:
       global_init ();
       _gcry_secmem_init (0);
diff --git a/src/libgcrypt.def b/src/libgcrypt.def
index 8fc5767d..83afca39 100644
--- a/src/libgcrypt.def
+++ b/src/libgcrypt.def
@@ -147,6 +147,7 @@ EXPORTS
       gcry_pk_map_name  @114
       gcry_pk_get_nbits  @115
       gcry_pk_get_keygrip  @116
+      gcry_pk_encap  @117
 
 ;; @117 used to be part of the module register interface
 
diff --git a/src/libgcrypt.vers b/src/libgcrypt.vers
index 8927d48d..4b5014a8 100644
--- a/src/libgcrypt.vers
+++ b/src/libgcrypt.vers
@@ -59,7 +59,7 @@ GCRYPT_1.6 {
     gcry_mac_write; gcry_mac_read; gcry_mac_verify; gcry_mac_ctl;
 
     gcry_pk_algo_info; gcry_pk_algo_name; gcry_pk_ctl;
-    gcry_pk_decrypt; gcry_pk_encrypt; gcry_pk_genkey;
+    gcry_pk_decrypt; gcry_pk_encrypt; gcry_pk_genkey; gcry_pk_encap;
     gcry_pk_get_keygrip; gcry_pk_get_nbits;
     gcry_pk_map_name; gcry_pk_register; gcry_pk_sign;
     gcry_pk_testkey; gcry_pk_verify;
diff --git a/src/secmem.c b/src/secmem.c
index d15b6c3b..ea148c09 100644
--- a/src/secmem.c
+++ b/src/secmem.c
@@ -45,7 +45,7 @@
 #endif
 
 #define MINIMUM_POOL_SIZE 16384
-#define STANDARD_POOL_SIZE 32768
+#define STANDARD_POOL_SIZE 65536
 #define DEFAULT_PAGE_SIZE 4096
 
 typedef struct memblock
@@ -82,6 +82,8 @@ typedef struct pooldesc_s
   /* The number of allocated bytes and the number of used blocks in
    * this pool.  */
   unsigned int cur_alloced, cur_blocks;
+
+  unsigned int peak_alloced;
 } pooldesc_t;
 
 
@@ -176,6 +178,7 @@ stats_update (pooldesc_t *pool, size_t add, size_t sub)
       pool->cur_alloced -= sub;
       pool->cur_blocks--;
     }
+  pool->peak_alloced = pool->cur_alloced > pool->peak_alloced ? pool->cur_alloced : pool->peak_alloced;
 }
 
 /* Return the block following MB or NULL, if MB is the last block.  */
@@ -869,6 +872,15 @@ _gcry_secmem_dump_stats (int extended)
 }
 
 
+void
+_gcry_secmem_reset_peak()
+{
+  SECMEM_LOCK;
+  mainpool.peak_alloced = mainpool.cur_alloced;
+  SECMEM_UNLOCK;
+}
+
+
 static void
 secmem_dump_stats_internal (int extended)
 {
@@ -881,10 +893,10 @@ secmem_dump_stats_internal (int extended)
       if (!extended)
         {
           if (pool->okay)
-            log_info ("%-13s %u/%lu bytes in %u blocks\n",
+            log_info ("%-13s %u/%lu bytes in %u blocks, peak usage was %u bytes\n",
                       pool == &mainpool? "secmem usage:":"",
                       pool->cur_alloced, (unsigned long)pool->size,
-                      pool->cur_blocks);
+                      pool->cur_blocks, pool->peak_alloced);
         }
       else
         {
diff --git a/src/secmem.h b/src/secmem.h
index 4dd5c318..0a7ba5e6 100644
--- a/src/secmem.h
+++ b/src/secmem.h
@@ -31,6 +31,7 @@ void _gcry_secmem_set_auto_expand (unsigned int chunksize);
 void _gcry_secmem_set_flags (unsigned flags);
 unsigned _gcry_secmem_get_flags(void);
 int _gcry_private_is_secure (const void *p);
+void _gcry_secmem_reset_peak(void);
 
 /* Flags for _gcry_secmem_{set,get}_flags.  */
 #define GCRY_SECMEM_FLAG_NO_WARNING      (1 << 0)
diff --git a/src/visibility.c b/src/visibility.c
index 9b29c4f1..23c1e8c9 100644
--- a/src/visibility.c
+++ b/src/visibility.c
@@ -1024,6 +1024,18 @@ gcry_pk_encrypt (gcry_sexp_t *result, gcry_sexp_t data, gcry_sexp_t pkey)
   return gpg_error (_gcry_pk_encrypt (result, data, pkey));
 }
 
+gcry_error_t
+gcry_pk_encap(gcry_sexp_t *r_ciph, gcry_sexp_t* r_shared_key, gcry_sexp_t pkey)
+{
+  if (!fips_is_operational ())
+    {
+      *r_ciph = NULL;
+      *r_shared_key = NULL;
+      return gpg_error (fips_not_operational ());
+    }
+  return gpg_error (_gcry_pk_encap(r_ciph, r_shared_key, pkey));
+}
+
 gcry_error_t
 gcry_pk_decrypt (gcry_sexp_t *result, gcry_sexp_t data, gcry_sexp_t skey)
 {
diff --git a/src/visibility.h b/src/visibility.h
index 6aef3278..5bf6d838 100644
--- a/src/visibility.h
+++ b/src/visibility.h
@@ -157,6 +157,7 @@ MARK_VISIBLEX (gcry_pk_algo_name)
 MARK_VISIBLEX (gcry_pk_ctl)
 MARK_VISIBLEX (gcry_pk_decrypt)
 MARK_VISIBLEX (gcry_pk_encrypt)
+MARK_VISIBLEX (gcry_pk_encap)
 MARK_VISIBLEX (gcry_pk_genkey)
 MARK_VISIBLEX (gcry_pk_get_keygrip)
 MARK_VISIBLEX (gcry_pk_get_curve)
@@ -365,6 +366,7 @@ MARK_VISIBLEX (_gcry_mpi_get_const)
 #define gcry_pk_ctl                 _gcry_USE_THE_UNDERSCORED_FUNCTION
 #define gcry_pk_decrypt             _gcry_USE_THE_UNDERSCORED_FUNCTION
 #define gcry_pk_encrypt             _gcry_USE_THE_UNDERSCORED_FUNCTION
+#define gcry_pk_encap               _gcry_USE_THE_UNDERSCORED_FUNCTION
 #define gcry_pk_genkey              _gcry_USE_THE_UNDERSCORED_FUNCTION
 #define gcry_pk_get_keygrip         _gcry_USE_THE_UNDERSCORED_FUNCTION
 #define gcry_pk_get_curve           _gcry_USE_THE_UNDERSCORED_FUNCTION
diff --git a/tests/Makefile.am b/tests/Makefile.am
index 9920bae8..5599cb6a 100644
--- a/tests/Makefile.am
+++ b/tests/Makefile.am
@@ -31,6 +31,10 @@ if USE_RSA
 tests_bin += pkcs1v2 t-rsa-pss t-rsa-15 t-rsa-testparm
 endif
 
+if USE_MLKEM
+tests_bin += mlkem-test
+endif
+
 if USE_DSA
 tests_bin += fips186-dsa dsa-rfc6979 t-dsa
 endif
@@ -83,7 +87,8 @@ EXTRA_DIST = README rsa-16k.key \
 	     t-ed25519.inp t-ed448.inp t-dsa.inp t-ecdsa.inp t-rsa-15.inp \
 	     t-rsa-pss.inp stopwatch.h hashtest-6g.in hashtest-256g.in \
 	     sha3-224.h sha3-256.h sha3-384.h sha3-512.h blake2b.h blake2s.h \
-	     basic-disable-all-hwf.in basic_all_hwfeature_combinations.sh
+	     basic-disable-all-hwf.in basic_all_hwfeature_combinations.sh \
+	     test-utils.h
 
 LDADD = $(standard_ldadd) $(GPG_ERROR_LIBS) @LDADD_FOR_TESTS_KLUDGE@
 pkbench_LDADD = $(standard_ldadd) @LDADD_FOR_TESTS_KLUDGE@
diff --git a/tests/keygen.c b/tests/keygen.c
index eb388374..56786a67 100644
--- a/tests/keygen.c
+++ b/tests/keygen.c
@@ -256,6 +256,31 @@ check_rsa_keys (void)
 }
 
 
+static void
+check_mlkem_keys (void)
+{
+#if USE_MLKEM
+  gcry_sexp_t keyparm, key;
+  int rc;
+
+  if (verbose)
+    info ("creating ML-KEM-768 key\n");
+  rc = gcry_sexp_new (&keyparm,
+                      "(genkey\n"
+                      " (mlkem\n"
+                      "  (nbits 3:192)\n"
+                      " ))", 0, 1);
+  if (rc)
+    die ("error creating S-expression: %s\n", gpg_strerror (rc));
+  rc = gcry_pk_genkey (&key, keyparm);
+  gcry_sexp_release (keyparm);
+  if (rc)
+    die ("error generating ML-KEM key: %s\n", gpg_strerror (rc));
+
+#endif /* USE_MLKEM */
+}
+
+
 static void
 check_elg_keys (void)
 {
@@ -758,6 +783,7 @@ main (int argc, char **argv)
       check_elg_keys ();
       check_dsa_keys ();
       check_ecc_keys ();
+      check_mlkem_keys ();
       check_nonce ();
     }
   else
@@ -771,6 +797,8 @@ main (int argc, char **argv)
           check_dsa_keys ();
         else if (!strcmp (*argv, "ecc"))
           check_ecc_keys ();
+        else if (!strcmp (*argv, "mlkem"))
+          check_mlkem_keys ();
         else if (!strcmp (*argv, "nonce"))
           check_nonce ();
         else
diff --git a/tests/mlkem-1024_ref.inp b/tests/mlkem-1024_ref.inp
new file mode 100644
index 00000000..b1fab113
--- /dev/null
+++ b/tests/mlkem-1024_ref.inp
@@ -0,0 +1,495 @@
+7f9c2ba4e88f827d616045507605853ed73b8093f6efbc88eb1a6eacfa66ef263cb1eea988004b93103cfb0aeefd2a686e01fa4a58e8a3639ca8a1e3f9ae57e2
+Public Key: 780c725a25151f1b09e9c71d26975dd65220e059ca526b6e6f874aa5e8b62297ce0f037da312a86a05131f2923d49928b7450ecbe996d8aa21ae6a25a9e44d4b8c991bccc59d6313a61c652bf904790a063cb84b1d870b11828c6c8c7df7632dcf717d5ae33e4d487a25637e4d030e0a76b21a2142eac1024fc5a4603ca08d1081c954c8a9368e7011169a00a4994a56f9fbaecccb022775c9a2679dca6453eb7b90db61354980c03cf17a7405140497b23aa996d637a4cc027c5e3911de634e3ea65ab49455efc253261ab85efc5a55ba703a8a0c1c789d94bcadec88b319bb6918354eb33498d6680d2197206c35820b7b193952b4c6e81d7222844ba31bf446a93e817be86b7b406165ad9b45bff86304d3546092cdd1113e49a1be90e388d0a0155de603b906ccb8870ae162b231fa3ee4f20163cb0322d23a2b217fccfacf4a6324eee4b853b42209e44786ccae52571282d238a85b838d4787a1852cc28561384b201b13a2df710c7c4c3aaaeb7fded4620afb43fcc8167914c7d9a3176222007975c4b378ce7cd47135c072ddf03cc69b7bbcc3bbc737433ee05090c324835a5c5b9162b8cb2bc8c409b0682322f45d36626fbc58c0ee34054343507b20b79b2a00c929213487bd84072303023f65b8c68f3c5c6ffca1f7a77a3d1a0da8a237a30518ecc8a5b73c20c8354fe0167bd39c64f0720503f711fe1839445768504548b3b87a0deab387507dd80a4cce69994a652a362366be86a2f75182f278796f672525e23c83271be4265cd6288035b49e365224ed1405b1214f45db48dd28c8f3138224ea177dcc56720bbf754c2d5304148a95c4e724760e0166b9104bb0970e90f20f32aa75c838c6f29321bf161a0cb518903ba3b53a9caf5234d2b24ecef2cfb560201f738908099ec4ca90bf2551c7449215b32b8816bedbf69d816b583854ce85dc729e820accf15efe9c7fad724a654338d3a36eb1a116c20aad05046d2bfa4481d0a5e1c29315e94d85e16d344892c73a66a0d10e924c2e3c650648da8751465aa5913a92884fd3873491db5b9e108360cc8d33e08e508375ad36a90df865cdb11a617cb82bb0940b6063331200c0185f7ff8515d554bd9c71a3b97706268a14c60382dd169f7762969681d0d759c497b86baca5082a31d3db4978887172bab9573fab18b4198cb71cfc25c9396a0976863348d13287f36bb016a7cc031169f629eb3d447521b7d9b3b22e68ab8f4089077e35c874843bc55556f2508502c8aeaa931c9d3519d1355bce3ad87d719a3030c5441b498e4779261ca64fa24e4fb04fb98751c8848fe847a84704333700516a349f00ccf90506e725a5dd9e46d9bd83f8a2b8c89f957a316a9f6bc21a0e69c1ea42f975756580a8b5c378b8332127f6a5d94b639ead24fa0c80b0ff1bde9294111c1c0eab00f796a9d6882164d246de3f91c83583e551970e633cd3fd00fe2624ff0bb9e2d461e0aa760e8f7b9935b7fadda8e14a2024238578b34b0ef7c9f8178ba90b4cc73d90fdcf2b65102a7f6abcba83492f109500c4b166538099045c5d50bd0c7d73e9046317ea19819b34002cc0ec6691f36f064a6880cfbe450887b38498932402561222325d1e808e804aa544444407c944461b326f78f66399d920b2271f357299472e0f41ad7c727722413095978afb80e889b2d52873ce1747b98f29b75b103838b84ebaa979bab1cbb8317a5d36251073ab5ba0047b9bddd75b38bb01459d6210eb613ee260425045e2ebaadb95884c5a20cb6fa73a6f4280ae51ff9dc5b8492c21af36fbd49a70b06a698aa032763464886aeac2170fd4bb8080355c6a5abfa8345aeb72e0df67ce01835b294408231b7ae4581a5d82b58b631d041939d04b31ff0add36a4f00a7adde9b27f6f1c154400a2f8854865c5005fc2158226cc263532005c9b7165bf52c72ec372ebc15bb5621003d16791f6671f4f9cbc463171e101009e4bbc5d1aa54634e73c77b00684209d49c3a616969231dec430e5989aa6800185ab7b6e14080740617456ab7b9dbce4ac1017d2c6f823cce5df3a0bc3585cbc97d771437d01b485fa40ea04871ba59b89b22b59de2ae7c9648ef3206dbdb9502856868635a224239a1db01e9076e15882baa050943921d241297f172694cfa93f56ee922c7d660937b5937c3074d62968f006d1211c60296685953e5de
+Secret Key: 24c59d1c7603e7b74bc7aa1bc2cb3a214b3cfaebb63bd85b65408427c498ba394371bb271f92a3b506b81d54a95a7c0ddfbaa1519553d6f3cd5a601b7db6b0e91a5149468f1f68ad26478bf3c6670e093ac4c49e7a90ba46595de94c50e04129a811a841b39534a87f0ae7b1116553e20c9a566b9b8ff7c7e728b8b201893403a4f252a55230874c256b897834cda349807b25cbd75a30867bfb80328200017f1cb70b56cc546b65d3dc9cdb45107cf10dba349619043ac35c0b9546309a239039813ed5c40f353a5e8e42193564496112bda56cb38c081df252ae9c2c7e441a062e92a7c8da7a240c9952d86b5f1bb6a53b38a5ac0a54a84b43f12da1d0525655684a12090b60b28b0c628db092015547d1070af5d6192e639636615d03c654bb90008ca15b784119f6178a00d7bef4a54a274ac922e55c61a3a8840aa258639484a3bce2e43b6c969b11275631daa129a61ea0e2939f0877e1a110c8a44b24c54fbb07a958db9feeca1eb52b086c87bf43a9b02a5b2c4762117c3a99ae4c4e2eaa7a33b9a714737215c10317514f6c4299ef92acd64c4858e85ce737a801890022d7381f3540230c0c8ef50a848a28b09ba0bf8b50619c905751601d7629767449c9c0b2bae321f438a77f412a55e45ecab4b39053c6561801c639be6495be8fa144ef6029af663407ca9181946de5f3aec7236343ab3bc5a38a09c01b412baf0afb23f9e9b8f2b40810f2ce4ffbcdbfd87972323e98065160bcba34b3afd6c25b664745fca99a9ea75cef019d768485ec23336d9b39e4d05d8d587b30633d4f69ade5753a39680235e44f27995da96798f3a85e184a9fad19320829629f4140417bb7dbf5851ab79258134146d088452774991a087a1c2beaea89f218087ba774ae253b494c27750b1de04b44d953c5e47ab10f65205ee212f9c30391e5299553954916873a0b41164543e801c0b099cb44f48995675823c10b40f4bbac9177a558ca0c30765c2aabfd6a4da54c8413e33902d63f064330f0464982429de2604cd03b4de84a9f821a5470423a40a964dcc41863363d77b02c3127304f942ee71c98c643a427533ef300104948b825277953aaabfd855588f75a77d199a213ad348116e9e539f6d37068a551c710548b7a2c7ee95f9cd9b3483332673cc44bcb18a778a49455c768e0b340f81102ac6b76b064057151ef101ae143787f548553558df8035a3ce00c9c43cda43142cca39034b09a7e6089867b4c64980a69ecab2e6818724c35cb909d5d45bc6a349c71b306567664adc0cc8ef698049b4b4b432dd0f69fac07580f77c4f79b22bb90cb97b341880716853431694c9120f6724ad58d57127fced999ff6229a5d4c3c240129cc812acc73698f949d8e73661f2528262bfccfa5cdf5a2104649806e295ea161217083365aa26cee6ae2f1356e8e1c5cefcc85703447ef1160a1b4a0e8c017b173802c66c88ab70d39a6c96c1569d5a86245a7eeb087d682219080768745b44bf244f65b567b2658dbae6962ba52b322118e214cfadd7cf3502582dc9cafba952a9637ad3600710259778d99d23f8235da90791604b4f0a4f7640680f59b633d93dfb84282ba54c674b115684a4ac1461a4c880e305116c5354ffdbbaebe0c067b63240b96c47f27e9c8129c6183ad904785c486999b7aa8c1c8029153ae73bae6997558990998b809a25f86092b1267e70983aa7cd0fe8c19091c0b780c95f2632f5eaaf49fb4abd60c976942b4e0cd0ef17711ac5388beab01da0883b8c4c9a286701e36e54c46aeee0847a2308909b8ddb3c7b37b9ceb0334bbd3b4000db0980b81cfe7857dd543b09d71c98c0aa12d658ddd93948bb7f4c874e449ba6ee0c4fc94a70ee353580b19a04693cc6f480abf96db4305ecc031906c9b4cc167c9c932ad5203ddf143111e6463739c337a2426a01c88340785638b05df5b81084885c8103289142e4bc6bb89598f85b852ca72594e732010860bca635418984fe8631b6d5b514f38128800f7feac7effb1e072a4d0ce336ec9769690c80c9579e1ff3893daa1c5b11552aec0ca3b37ab3927674778b4b3367542926d70bbba796b409330f06acc913b04b45c81ed5dc8abc2629eef92c712c0b9b22a6f8252e7ca148c955cfab8017b9077fdd18a2780c725a25151f1b09e9c71d26975dd65220e059ca526b6e6f874aa5e8b62297ce0f037da312a86a05131f2923d49928b7450ecbe996d8aa21ae6a25a9e44d4b8c991bccc59d6313a61c652bf904790a063cb84b1d870b11828c6c8c7df7632dcf717d5ae33e4d487a25637e4d030e0a76b21a2142eac1024fc5a4603ca08d1081c954c8a9368e7011169a00a4994a56f9fbaecccb022775c9a2679dca6453eb7b90db61354980c03cf17a7405140497b23aa996d637a4cc027c5e3911de634e3ea65ab49455efc253261ab85efc5a55ba703a8a0c1c789d94bcadec88b319bb6918354eb33498d6680d2197206c35820b7b193952b4c6e81d7222844ba31bf446a93e817be86b7b406165ad9b45bff86304d3546092cdd1113e49a1be90e388d0a0155de603b906ccb8870ae162b231fa3ee4f20163cb0322d23a2b217fccfacf4a6324eee4b853b42209e44786ccae52571282d238a85b838d4787a1852cc28561384b201b13a2df710c7c4c3aaaeb7fded4620afb43fcc8167914c7d9a3176222007975c4b378ce7cd47135c072ddf03cc69b7bbcc3bbc737433ee05090c324835a5c5b9162b8cb2bc8c409b0682322f45d36626fbc58c0ee34054343507b20b79b2a00c929213487bd84072303023f65b8c68f3c5c6ffca1f7a77a3d1a0da8a237a30518ecc8a5b73c20c8354fe0167bd39c64f0720503f711fe1839445768504548b3b87a0deab387507dd80a4cce69994a652a362366be86a2f75182f278796f672525e23c83271be4265cd6288035b49e365224ed1405b1214f45db48dd28c8f3138224ea177dcc56720bbf754c2d5304148a95c4e724760e0166b9104bb0970e90f20f32aa75c838c6f29321bf161a0cb518903ba3b53a9caf5234d2b24ecef2cfb560201f738908099ec4ca90bf2551c7449215b32b8816bedbf69d816b583854ce85dc729e820accf15efe9c7fad724a654338d3a36eb1a116c20aad05046d2bfa4481d0a5e1c29315e94d85e16d344892c73a66a0d10e924c2e3c650648da8751465aa5913a92884fd3873491db5b9e108360cc8d33e08e508375ad36a90df865cdb11a617cb82bb0940b6063331200c0185f7ff8515d554bd9c71a3b97706268a14c60382dd169f7762969681d0d759c497b86baca5082a31d3db4978887172bab9573fab18b4198cb71cfc25c9396a0976863348d13287f36bb016a7cc031169f629eb3d447521b7d9b3b22e68ab8f4089077e35c874843bc55556f2508502c8aeaa931c9d3519d1355bce3ad87d719a3030c5441b498e4779261ca64fa24e4fb04fb98751c8848fe847a84704333700516a349f00ccf90506e725a5dd9e46d9bd83f8a2b8c89f957a316a9f6bc21a0e69c1ea42f975756580a8b5c378b8332127f6a5d94b639ead24fa0c80b0ff1bde9294111c1c0eab00f796a9d6882164d246de3f91c83583e551970e633cd3fd00fe2624ff0bb9e2d461e0aa760e8f7b9935b7fadda8e14a2024238578b34b0ef7c9f8178ba90b4cc73d90fdcf2b65102a7f6abcba83492f109500c4b166538099045c5d50bd0c7d73e9046317ea19819b34002cc0ec6691f36f064a6880cfbe450887b38498932402561222325d1e808e804aa544444407c944461b326f78f66399d920b2271f357299472e0f41ad7c727722413095978afb80e889b2d52873ce1747b98f29b75b103838b84ebaa979bab1cbb8317a5d36251073ab5ba0047b9bddd75b38bb01459d6210eb613ee260425045e2ebaadb95884c5a20cb6fa73a6f4280ae51ff9dc5b8492c21af36fbd49a70b06a698aa032763464886aeac2170fd4bb8080355c6a5abfa8345aeb72e0df67ce01835b294408231b7ae4581a5d82b58b631d041939d04b31ff0add36a4f00a7adde9b27f6f1c154400a2f8854865c5005fc2158226cc263532005c9b7165bf52c72ec372ebc15bb5621003d16791f6671f4f9cbc463171e101009e4bbc5d1aa54634e73c77b00684209d49c3a616969231dec430e5989aa6800185ab7b6e14080740617456ab7b9dbce4ac1017d2c6f823cce5df3a0bc3585cbc97d771437d01b485fa40ea04871ba59b89b22b59de2ae7c9648ef3206dbdb9502856868635a224239a1db01e9076e15882baa050943921d241297f172694cfa93f56ee922c7d660937b5937c3074d62968f006d1211c60296685953e5dee3f8c83144b3bac8b5a5c98197832b44c8912900853f84b20f8af5fa6fd852543cb1eea988004b93103cfb0aeefd2a686e01fa4a58e8a3639ca8a1e3f9ae57e2
+35b8cc873c23dc62b8d260169afa2f75ab916a58d974918835d25e6a435085b2
+Ciphertext: c4bf255e0cf98925c2b41f9dc08d77171ac5f36328e92e738f5acc24992aedf2e13f316ba7387c9c452f3b99e354c53861eb3b24cd9144662f0cf9adc05be928e15547d05f75e23129a8cba035ad4b877f69f9b5373ad5befdfb1b38275ae4e52faf1dbee305e598e33aaf7ef5335cbe5770c1c3057f8b2ef08dfcc147c0a60d630b8e35a9f9ff1a73645e9f2bde04e2d11fc032cb06a9fdaa3d1ad30e2f38f892ed8eb55264c47a0e5efd62ecba4bb28ce141234370834b733bffa7dceac61aee88a9f1cbcb96447803d22ec303a599ee9e6e676dfce0f973b4b5392cb79e0ff4c5db83c7a279f2f15b3d75c635585ea01ec115d83a3b5e153278142ee3ac136f95b99867b72f2e579b8f376dfeb8def15d3d67b878e065bfe6e89a37f22d9bda53562c3a2e80175df0976cd61bb8db5880256537ac4f0a29a126c733f0567ff0a128f39d2dd479d2b4bc100c7d2d8df4cc8245856ab1854ec0cc78089289f3a4e30be309bb536f44f31b26cfb90f1464f3f887c4dbe465ea15087e7686f91fc68c063c14fd8c0d220dfb245b57c4dde6d72779ad34416b26fd4b8a36a7396efddd41a6284090cf3c2e8680f7b20bd27cf5b46f3ecd1c6d26035749ae22fbcc11dbf239d817bf79a581513752fa73be0c72bec3e09f6be795292c139ad05a147959c9de697025561235d1a522823fdcd874a2e1c027b984621fa63583058af7218670bf6b644699ad4f30eee1d4ab3bf64efb4fac3c94102fec52e453501315d02396eead1e3af7a51791c17165fc6c7ed6d2d5dae1da127fb247ea323804d81d086d23937e89d80455e6a1867be6ce2fb2bcde6a532ecea5265f916042d46f528bf20d92152db2abf509511bb98d54212f74f431fb5e109bd4856555bf13858af941b8bd4f07dc7edf0ffcdd54e09a5f7ddc40e92e8872cd70b9677d46c06dadeafc64756e3cf39b374f8f8ad1f26d8ea857e6dd71f0be3cb20ff9b74f1275a06d96e68528376f9d387449d31fe5416a84808e5941847c8f601def82eb67a7a68a8fae76d24b73dc144252e709ae5edca93341b5292e3f8614ee8810ecf6bda92eefa611943df036e3a5776d4bb5333f80aa4d831bee5ccf71839f484ede07994d5d797474b0a7598f6753476fc9b4df5f602545d3eb713074283f9560c9c7f7593a72452915475b77a885449bedf97d463a396a4122b9753a8396c6b53236a8a4a416851a1751142c6f5a6797b26774acc08767ca6f5610dbf5b2e1fc1daad22c6730ad71d93d9401c84d3e01b9f0cea5d3641f495213adbb31ae70ac07aec735ca493eab5265d4719424d0c5cd6aedaa9f7243656c97d6337c9642f0091e223560e6100c2ce0f4c3aee7ae8d1e7ea3b76141a959b7c49f301c611f7dd544ed87173b87bf9c4092d3ad8987092e8db3af33305cc2211046711701fbbfb913b48052b61fea890e9d459fd6cddc44e48c3e5160bc2b73aade1028e1ecc822b166b3aa95533bd4609acfe9a48b05a99ed707772efa1ca1c2258d525be27bcb68ea28ee9af8f71e0c84d65347bd191d1d78ac1a0c43342efa128cc3c13a3db4f4f74cbb52207b49d1833e715934e41099890d90ac35fe09c2895c9a1d8911831aa6dc2d0ae4f4f2ae719a85ae91d98100252b219c2d25d5ee0ac9d347db36caea693f5540cd3853ddb8cd41e82a756746f486626d04bbab82c60ec711c72484a125622aa1336012e055ff664ce4a525e5dba75adef8238ebda754613420bce2e56ff765254055dd39b8d0cab192dd318f40e520d8358c03986b4c0f726c81cc77d427be7ca0780da03d8b8d9fd0526c4c121641f8935ed84e1c18bd641a8c7cdb45e6aaf66f40ccbeaf9358731ed4c9b93ee3ffaa773467d174283bd5c9b219de9622a0e85206108e1fc580685ce6e5e68a7dbbc013ccfaf99ccd3409eed2f7470b09628bf3f1f2a395601afc582314333012ca51f64ac8b16590c11b7ce15240490b7c44d923b51bc733733f3f390d9dd3ab41725446c522e3320a54483978dc26e9967fb84b24558200126fb05e10410418fb77cdc5a188245b48b6b2f6ffbd519572b00094965172ff7dd4cff1784ae201383df721b36a80d4ef70d2010b7fd3d78f398b193340ea6aee06a86bff4a58fd86c08f6e15f3f37a7209de5d2cec28df1b99f8a5997339de9c23bc05243ff953ffeaab7ca3a079ae03c3ecf5719c
+Shared Secret B: e2bfb012335c40301e970524feb1575e1b561ab5a6ec79b53f7199bbd45abd8e
+Shared Secret A: e2bfb012335c40301e970524feb1575e1b561ab5a6ec79b53f7199bbd45abd8e
+badfd6dfaac359a5efbb7bcc4b59d538df9a04302e10c8bc1cbf1a0b3a5120ea17cda7cfad765f5623474d368ccca8af0007cd9f5e4c849f167a580b14aabdefaee7eef47cb0fca9767be1fda69419dfb927e9df07348b196691abaeb580b32def58538b8d23f87732ea63b02b4fa0f4873360e2841928cd60dd4cee8cc0d4c922a96188d032675c8ac850933c7aff1533b94c834adbb69c6115bad4692d8619f90b0cdf8a7b9c264029ac185b70b83f2801f2f4b3f70c593ea3aeeb613a7f1b1de33fd75081f592305f2e4526edc09631b10958f464d889f31ba010250fda7f1368ec2967fc84ef2ae9aff268e0b1700affc6820b523a3d917135f2dff2ee06bfe72b3124721d4a26c04e53a75e30e73a7a9c4a95d91c55d495e9f51dd0b5e9d83c6d5e8ce803aa62b8d654db53d09b8dcff273cdfeb573fad8bcd45578bec2e770d01efde86e721a3f7c6cce275dabe6e2143f1af18da7efddc4c7b70b5e345db93cc936bea323491ccb38a388f546a9ff00dd4e1300b9b2153d2041d205b443e41b45a653f2a5c4492c1add544512dda2529833462b71a41a45be97290b6f4cffda2cf990051634a4b1edf6114fb49083c1fa3b302ee097f051266be69dc716fdeef91b0d4ab2de525550bf80dc8a684bc3b5a4d46b7efae7afdc6292988dc9acae03f8634486c1abe2781aae4c02f3460d2cd4e6a463a2ba9562ee623cf0e9f82ab4d0b5c9d040a269366479dff0038abfaf2e0ff21f36968972e3f104ddcbe1eb831a87c213162e29b34adfa564d121e9f6e7729f4203fc5c6c22fa7a7350afddb620923a4a129b8acb19ea10f818c30e3b5b1c571fa79e57ee304388316a02fcd93a0d8ee02bb85701ee4ff097534b502c1b12fbb95c8ccb2f548921d99cc7c9fe17ac991b675e631144423eef7a5869168da63d1f4c21f650c02923bfd396ca6a5db541068624cbc5ffe208c0d1a74e1a29618d0bb60036f5249abfa88898e393718d6efab05bb41279efcd4c5a0cc837ccfc22be4f725c081f6aa090749dba7077bae8d41af3fec5a6ee1b8adcd25e72de36434584ef567c643d344294e8b2086b87f69c3bdc0d5969857082987ca1c63b7182e86898fb9b8039e75eda219e289331610369271867b145b2908293963cd677c9a1ae6ceb28289b254cdeb76b12f33ce5cf3743131bfb550f0197bfe16aff92367227adc5074fe3dc0d8d116253980a38636bc9d29f799bbb2d76a0a5f138b8c73ba484d6588764e331d70c378c0641f2d9b6fd7c090df5a74604a1324ba0cc5c447b2dca644a50f1ad0477a701b9052ee9bef28833476343c82af29ff3a9b1c4cf12de559cb9d9411f62bec838121fd74bc1fa712d8add51505c55e89a35deaf7a69dc0a18ad27396029cbf89f513e1b8f48bc01783d6849fb32f211a4c87e16bcce0c41240a223ba6d69e0c51569f73cb107ead84d14dee92702e3a95eb844c716aec9829d06591ebd2501a3283cc0ffc0fdcc031fe8d865e77fae5d6bb73815d9ae376006d0ae3200c24d84c6b14a8471845a7522e7c3d0db9aea0cfce467be633d4d46a5086814da467dc73403c987d8fda5f6e568291dda40d7681a07eb9f80d8765c734bded79fcadcdacf4816800fad2888f935ef77e72aaf288ce1ee12edb5ec1a6506e0b5fd2e4395863c29b6125a26f639f25018ebc147a306ab05eb4d4804327c9216d59ca328d5f5f1ce0eebcb35dda72c85332c6cae642c1c539498fac7d0d2ab2fd3e0e1d90ab9e451ac914c664f1ae34209d96ebb92d7d93ba3e99699827a8fd4835d79d93683c52087dca88d0cd4b33aae8e01023ffdb6633dd049518a7e9ab679039a691dd6a1d5c825580a07a686d43e85f716d87918bb6c0a6fab7c8fb8a41c70d61963fcd3579a69b863b8b9607c5b288e775b9411d3a2d8dfe973db3911b2a83b4f5d6873c6a13af1ccaa460f00bb555d5e9672885d877c1d867230cb56137df134b7304b281b99995024cc942a1a081cdd7040ec432db72fc41f77b637b1ceba3a6b0c8bc96466e4f5d725b698e65d8f4d1c1488147cee888ca0d9be1f86af926abd878b253b450daf33c721cf9edde455879f53407656b28a87f4b571d222e93909d8437b7ba57609f3987b2779fe89dd63ec52ed496b81f0e1362c6554fa93a347fb54b08058b64ca9b7d08254a564614e39566584e4f9bcea365b9dfae
+Pseudorandom shared Secret A: c91f344f49fe943509991ef30392fc3d25cf65be3c3baf6d0d1487bf95d59f42
+2086c3374f5ea5adf8bdf5a3c6833efec934d4fc23a7d81c4aa217707ec114a1f4999f8e6038b6b6b7dc806a23ceb21c757ca6c46071154f20b46d2f2fd2cd7c
+Public Key: 4595ceac1b0dd1aac964e755ce455bc11a5859b91e6b14b403b52f15eb76e71794c9b1020fbbb6e8618566cc5ec451424d410e5f3bcd0eec84f8e7b95ff553bba6139e012e19a21378386db3e5ac04a36c9bf65cd485554fba6e3aa8ca9007aafd306c3a703cf10503b916743d6455afd39e6a32058f069a23c2196f075d17c62e23b296fa837fe570c2c6c4b5bb87116920b14291646ffb9bb2e2c5b925114d06323fb1665f3c6da5e06980e8c5e0d6c9fbb02e88f57cf480a6c990a473d04fd9fa9244989b30490b3569ce54c96c01730c8d117d34aac685164f9aaa81141b571c69ba28b2b5fac8074367ccdb7271265caec2833dc2bc9de6c70e3fc49a3a17b35fd64eeba0c472d947b05702345928bd28411602aea0344eda194857661adbe45a1a460a4fc1677cea57baf2b21c9b402008b5a2e0cdbd98433f213654a5cf65c79fbd7c1e843c340242446bbbaaf8f82681f26227386a29d92200034ea1babb6e079c05f201b4a3b28950ab32406eb3351c99c2a9c6575242e7c8c83a07c20a91037c8ca85618cab98ba0732bc9f43f559a0458a066e8b194a7305565152951a1819e0bc91e6bc9b870445f9791cb056d4e176302c139d2e070ba18384e19986a39bdd936c8dba6b2db6a9aa39b71f6f35da0e9a146d0caa02c41eea6674e382b53128772f2553b3b860912a76e13875f762bca83c1c78756dd67542b3b97b0e65cedd39d74151a681a0a987183414591e780237212ca074794e8e029a4baa1e5b3a69b49b6b21b287ba4a33cbc6c736b674886a71f437f383c2fd6051694791b2c657039b92396127287b51373e3bf4f725067508965919ec77a7b313c33e7d1ae55bb3f74d381ee0a9c85a6889cf89e777444657ac9e10697b7570d67322b85c02088f80c96a2ae8eacb0820cad5f07195ab99353ebb794013d0edb8483ac83c7098e41510118e3482b698254296148a87fe11b39ca059bb456a553b9437650aca293a4b7a6c2f02989bbd55e5a83cfff1831479346cd34443b674ea0883a7a1a1ccd2010150c99b91850727c8c0b99196ba468ed374adbeb7bc958a839d08498b75d62a1891b122c7d8930ffd723eee87eea3421da7b2e2e830400e71dca623b0c177de97c0a2fe041f14a9e1b431e28da9699a262f2a8a16af781f6102e20e02dd373658f61609d9a1a38100186581c45f99ab520c157cb6c52d6375e5688ce9161f674b2d422b499f9189cf1b7ecab416c3c93d61727b75c6052b78e7150ca97404393c04dd6b67d398c9a1da2cf29b243a003d0c9b6a459a7c15ebcbeee703d52f40927789bb2462bd9968982ea774206bb87566a4b22b3c060451f0722d3a61f3f526b779bcd69f460aa432f7d59ccc38219b39177efdb8fbc439a86e769140508f65098b9527f59e75b937cb7bdcb6395270ee489be46f5357b63ca64656071b720cf5b2cbc3072cf4b2571fc4e49a30143a269abf33b00485a59da0b1919aad18ab54dac157fc6b902c472576cbf2a19cca20991b3d5087277b7eab8b01eab373dc56bb3577c8857be76b5402e90ac6dcab1db856258d53479987cb611a421c359d00bb1f03b9e3457c8be32212283b7664a1489faa6c21419c118c62042a8c0fc61dfb386360461d461b8eb16717d3216390548bee70c1430abd1e0792e899d4413913274ba0ba787a5a45146b00c32c66a29aa71b4e77327a2b8c7d3579ec06530f827ca550410f21ef7111d52831fe52871f4aa3c14536dc845cb7ac84160bb4a74f2a203001238c6a1efd527e0c65ac6d24adfa35bba5328c918482305828bf187c62654a1c7bd4282a2141c8a2f11c27f959143eac5b4338f4f808de2348637702ec0069ebd0b11c524b44d766b0c55770b401c30545bd4c331d9fb9185f2554482b7127ac0d066cb884808d6a8278afb29e6e76ef335aee4c64c9a2aaf3923c91081529a00890f3a7d2e9b5088199321c0c8ec9b127a9108742b4a76e038cb340330c6bded19937c192eea808fc98022c9ecb86cf46b65e93c6d8c0b661a7edc56226eb1862c267c20227e8e833414e734bac983a5572002f4b2fa0a107b453e9ab1403508c5c7db2299071b70e01c06732279739c57a484c055a2df466dc98c4a51d66b43f584abf0cadad501dc7928b2cb48bbd0af14678e709e03b07a96eaa90b631986dc386f389a21f799c3851bb772b215dea1
+Secret Key: 304a67a96cc9d6f78d0c0341e577052ba6542f262e9d230c08e35fcfa06ee8dc09af39cfb9742d2171c8ccd04e5e31066e863ba4f10990f0821ac0b0fb2c4157b49f9224c2adb3270a60b54e57893e3b346c19a0ae164746406d3ed5a6e5faccb3b3a5bc75bf9a12b494b2158e3743f381b2fc04083a65a3cd12273526801325bb69b30a77803c8f66a4db72b3a5993837e28bc1739306eace218c335cb713a461cb39702226a92726cb0686e60f6751c89d5b147afbc137f328b1cac1238310b92ba2dec1186d63c26c16c8a71079a1755a0e698be1304e886099140b0ac0f95867a0309d179f2c5086de251addb68abfeb4fca6b259b8379cfb4a76550007f93962d5009bd70c81ed091064c451ec01eb64c47ba862397e5223b1b3751e19103764c1ef8a129e089806aaff172259dea83595997e42b436d424a9247bcbe391ab9bb9cea4c491e37aa4de8b2aeac40222856a091255c47b94d787f826c528d90be487598d4253fbae04e935b3dacd8351f81a2f41430b47a158e7397ca18a750511055ca5763182e19627343d4b26d082dfcc2193d064ef903850e27c206a11a78d745c54aa53d186b6ee3baeb0c60d8c914cc3755d9e1c0f27b9d225485b5d9367d459144202c91a429b75a0d6bc78c5fd000540856ab085804bbaa234c7aeb81af28613b89c511012cbf8560a46f822e6dc91ce0b5c53c96000ef651b967b7ae3b55a0e61d9d92c4fbda42cdd078196ba1599b93ef655a6d95179e2b65f2b64190b05cbf482a9f628c798570feb329fc30ae2f524fc3703a2de19ce4e28ed407aeb6f9cafb8479f65ab75ec608d10057b458972c38799331cf3787b4b6e614ec34a54ac2775a39ad02257952b3a6fe8404656c653ea32363606d6637006482164fc505f0d7154c31b6ab361c1743bcf1297c11278dbabc29b7469a31830bc50795a0a38d7503be475bb89f44921cc4669f6b485f561ebb169d45ec218b23a442848513e45cb5d37325757d9e183c057881cbd7b625a41f1b42613b002a7f7477b51ac05e39500ca6b267783533a509355c1c84725e7361a21c3cc313d45890d72770ac6e2263a26ea730f65119a96725b9c043a42077f3925fdcb5064f0775204c02695b201f25877f4c2730fa0940d9276d617965f406ed340fc771b3764318f7028f27e344c922aa052461d3a1c9bb5c01b14c5c3d269b0131490ef662e55c6132e00b61f3bfb3fc6d911876a2301c0c326629bac672425305e19df6264c9529aedf231c64396d114733293ab30ac845a6112f16c77c3b9754a05150b1659132315912839ab160078dd698acb31a03687e24b942e87299e5bc2f6032ba9f27702635809d961b7ec453c7977e058b68b9fcaffc5073725543b5242c70a0b93ff44547d5c60b357fdd47b23414c7b0d0286018b8d1e73a75a27e0c6677682386bd5bc4841664eed3a34e55000082100ea44fb7c179153b88bcea67320a0da2568fd6963d705b50f9e49be6cac6ad1c22ee151139572f5a650956b8762d7316d275bd1a29a8d57aa403e9bd6be6024748466db1a1464b3dab08c4acb2b53e0567d436b19ad2241ae178eba2a37b3b2947879f4fe9b1c81768cda28e2a7619abac212dcc00cceb24806b5ce53a387bc38fa0668d5b620c93dba2071685db23a98988294f383466aa912eaa8d982697e6dac82f29c568363076aa7948b967d961a3dd3cc86ee54b42db23cc309575b18ff969c34510c07bd43948513a3721c9bdf4762212aed6f686d2a02d9483b368859f68298f3ba6a9b9e98e2f52bd021603b48aa1bb678542cacc307bb6d67ac1a5aacaede0688b02591c55743d3cb9a4950aa95750f3312b02da96ffb8b6acca5cff0a5259b37eaba91e14b128d05ba5b92a02325a9abca0b0589c2b60884d655966634886d3d0497c1a574f478ea7a941c3665b1ddaad73e23b80a6160c7c665940bc6b2a69fe83863037998ff066a844801c73246ebb7f500146bdb4b9cae32a246572fc363039fc29f27876f1198703f939f6c82093c45c72064d8ca518948823f9a007e082a6b0332a136bb630eb6e258a1056442d6ac0bd994b74b37a3849e3a9eacb4f1591029b8a02839576f48a253fd4ae6eecae41eb370dca9568040b961b8cf3721bcb57546a81767ba1bd4595ceac1b0dd1aac964e755ce455bc11a5859b91e6b14b403b52f15eb76e71794c9b1020fbbb6e8618566cc5ec451424d410e5f3bcd0eec84f8e7b95ff553bba6139e012e19a21378386db3e5ac04a36c9bf65cd485554fba6e3aa8ca9007aafd306c3a703cf10503b916743d6455afd39e6a32058f069a23c2196f075d17c62e23b296fa837fe570c2c6c4b5bb87116920b14291646ffb9bb2e2c5b925114d06323fb1665f3c6da5e06980e8c5e0d6c9fbb02e88f57cf480a6c990a473d04fd9fa9244989b30490b3569ce54c96c01730c8d117d34aac685164f9aaa81141b571c69ba28b2b5fac8074367ccdb7271265caec2833dc2bc9de6c70e3fc49a3a17b35fd64eeba0c472d947b05702345928bd28411602aea0344eda194857661adbe45a1a460a4fc1677cea57baf2b21c9b402008b5a2e0cdbd98433f213654a5cf65c79fbd7c1e843c340242446bbbaaf8f82681f26227386a29d92200034ea1babb6e079c05f201b4a3b28950ab32406eb3351c99c2a9c6575242e7c8c83a07c20a91037c8ca85618cab98ba0732bc9f43f559a0458a066e8b194a7305565152951a1819e0bc91e6bc9b870445f9791cb056d4e176302c139d2e070ba18384e19986a39bdd936c8dba6b2db6a9aa39b71f6f35da0e9a146d0caa02c41eea6674e382b53128772f2553b3b860912a76e13875f762bca83c1c78756dd67542b3b97b0e65cedd39d74151a681a0a987183414591e780237212ca074794e8e029a4baa1e5b3a69b49b6b21b287ba4a33cbc6c736b674886a71f437f383c2fd6051694791b2c657039b92396127287b51373e3bf4f725067508965919ec77a7b313c33e7d1ae55bb3f74d381ee0a9c85a6889cf89e777444657ac9e10697b7570d67322b85c02088f80c96a2ae8eacb0820cad5f07195ab99353ebb794013d0edb8483ac83c7098e41510118e3482b698254296148a87fe11b39ca059bb456a553b9437650aca293a4b7a6c2f02989bbd55e5a83cfff1831479346cd34443b674ea0883a7a1a1ccd2010150c99b91850727c8c0b99196ba468ed374adbeb7bc958a839d08498b75d62a1891b122c7d8930ffd723eee87eea3421da7b2e2e830400e71dca623b0c177de97c0a2fe041f14a9e1b431e28da9699a262f2a8a16af781f6102e20e02dd373658f61609d9a1a38100186581c45f99ab520c157cb6c52d6375e5688ce9161f674b2d422b499f9189cf1b7ecab416c3c93d61727b75c6052b78e7150ca97404393c04dd6b67d398c9a1da2cf29b243a003d0c9b6a459a7c15ebcbeee703d52f40927789bb2462bd9968982ea774206bb87566a4b22b3c060451f0722d3a61f3f526b779bcd69f460aa432f7d59ccc38219b39177efdb8fbc439a86e769140508f65098b9527f59e75b937cb7bdcb6395270ee489be46f5357b63ca64656071b720cf5b2cbc3072cf4b2571fc4e49a30143a269abf33b00485a59da0b1919aad18ab54dac157fc6b902c472576cbf2a19cca20991b3d5087277b7eab8b01eab373dc56bb3577c8857be76b5402e90ac6dcab1db856258d53479987cb611a421c359d00bb1f03b9e3457c8be32212283b7664a1489faa6c21419c118c62042a8c0fc61dfb386360461d461b8eb16717d3216390548bee70c1430abd1e0792e899d4413913274ba0ba787a5a45146b00c32c66a29aa71b4e77327a2b8c7d3579ec06530f827ca550410f21ef7111d52831fe52871f4aa3c14536dc845cb7ac84160bb4a74f2a203001238c6a1efd527e0c65ac6d24adfa35bba5328c918482305828bf187c62654a1c7bd4282a2141c8a2f11c27f959143eac5b4338f4f808de2348637702ec0069ebd0b11c524b44d766b0c55770b401c30545bd4c331d9fb9185f2554482b7127ac0d066cb884808d6a8278afb29e6e76ef335aee4c64c9a2aaf3923c91081529a00890f3a7d2e9b5088199321c0c8ec9b127a9108742b4a76e038cb340330c6bded19937c192eea808fc98022c9ecb86cf46b65e93c6d8c0b661a7edc56226eb1862c267c20227e8e833414e734bac983a5572002f4b2fa0a107b453e9ab1403508c5c7db2299071b70e01c06732279739c57a484c055a2df466dc98c4a51d66b43f584abf0cadad501dc7928b2cb48bbd0af14678e709e03b07a96eaa90b631986dc386f389a21f799c3851bb772b215dea1cf6aa0bb38a7d9761c15752cfb881447ea78dc4ee7bee98a1c872551e7c17b0df4999f8e6038b6b6b7dc806a23ceb21c757ca6c46071154f20b46d2f2fd2cd7c
+b6c397d7c76cc8b0068ff8f1002de8a73f7f1a7bd6e39135236852b464fb98c3
+Ciphertext: e206e5841bd855cbca1f67cf88f67b5552464e68e0385e64f2d4b2fe624e5d775062843bf29b88df6226f6f8309402b3e192df72a272ef8d1cc81711f400a2ec69d3bb82169e2a5a29a16daccfe7ae0780a08f38fdf7ced37f002040817818ada791b27d7c54293325801007b49c82daebde0e94d5453951398d70f9496ad0777df24125a3e87b3b6d40233221f854e777dd38d21962bbcf38bde7d28df29199e28b3cd07d46c18fa785d2c961f39bda78287267cc531cb9fca049f5da64b3ce2e8db5179fb0edb357941730b6676ce4259fda38fb1c1f5de2b2193ba6be8a2c80157f1f44cd0cbcbfbdbd0da3eb102c90e86fe7bb124fc7574f3a92f42147c352c1b3cad1f856719b91b08daedd4999ac752068ab6a90ee7efee1e5f76faa0598e8be55c665d64f811479ecb10fe9ed903b80eaf8919d888b3888be8c2b1d6979c25b74aa2eb3329b27b5577bd92a4932aecef13b42552f62c4b2b48fe927ad676f32b9db6d71db7562e5c28727888dcf8a372aef3c8d0a88764c5f45cb4599221ef78f0de840792a788e406ff0567b705670358d166fe6a3b3973f85d5d09490c5b4be5b20e64d931b68fcb28725008f870d21f17e135479a143bdcb0ab791d87e7c79aa16817fac5fb0811d8539f46b17c11fd8585493b93df9d09af5ef3cac7eefe6941dd6ebb1626936c0cc8996c98c887c6c0a14f2faf706680502de5079795cbb339dfca7a46452b456106748738676acd74cbd04cae1db999c5c608bc3a0543a7664e5e509ce6bd446bc4c6f100985ab07dd1fe614f7f5f17a513e49e4333c5a63be0936eaa44caad2ee354803eac312ec92ee6e76810851cf2ec9b7cab8400be3378ed7c3a91b1c511317f3bb5c412ecb081c75d89134339e169935ad289215c948fc05bcb5b3f0e688853a2df1b04e0da1d091284b087c5f5d86e3dd710e82189c90285f6de819d8d8dc289a64e3baaf6c68aff89b313e9154aa94154dbf618f4138c16999d36e0e49607d3fccff574e0459bafa6fcf86d802012fade96ccb2e012efc8410c897d0948a7a9ebea9044f7783a9bc270b8574ab2cbbd102f72203ef0d6a6955b123bd06dc2e257235aad1e29df1d90578d5528bedb133d55e3ef6b38dc569c0a576fa4fbe0dedf8d06b80403394da7e70ab29c17be4c4b6bdbe95502d07aa2464fc92f2fa3e4dbac333a4b6c3d7a47e8016947bcf4ee2c90eb3d0e83b96ce2fedd72e5f1d406437146414c0f6ffe0f6f40c6204645e603ef2867436cce10377a3c618d06c9ade6cffb94f3dee0588d35dfe29992ee4dedc89f0b626f1c70081e65a194dc0ea9fc45fc1b01a690da4adff2c6848a095accc8b243433598dc6c5b727d3ea144757e0f76a6e51d42f8ccc20443f7d3d8ce5b7deaa5da7b053779caf4a2ebc3a5fc851ffd82fc8f141b420ff49c5d190616924563a93cc94768b094a729e243f51b7600ae4090a4cdd83388c3291d41dbca44d81fe7abad6aeca13c4e541cd204fd9efe18f4df30f66c8b8e67c6f480564f4bcc71fffedf0d07efc28a582d9778f24bf439dcfa2621dada2ac8e6e4d1aeca2db377c357e3a447096dffd4e95b84221aff520774f110401b3733f6844744954d036d3db67a65d1a99eaad7210805cd6f9722e6be1f28c43598a87d4960c274ffe95d709bd1074c3a2af98fe6f05ee34cce38c7a45e47b617fe791970c13e66a96d2843e0e9ee3338c786cd139bdcb13e57973bffc9354d887e69cd4d3300e8435010b9c427f203d2a07854efa60ed45acbf3df83b65a1829961231a55d0b75054898adcbf51c7862042772d80d56d03742608016f67db036967a68d01d1e599133ff771ca6c6b8b923ea5b350c1cc837117a615e039c4b0d761ffe3bc07b2fdab8c81204f8abf38948fb55e679c7abedfc9fc56aa49220d1c592bb11c239d50edf6425b12d7977db85e420f0b554862cd533f96f06919bd87f2376fe231b69c41c7a50773a1d60ed3fc9e851a30f5cec87c70510e5cb8dc77532d0fad863e03393cad05c9c40620088f22f212653cf402cf700df4d875279840b6c1a194db50c94fa5f78a8b7894a72ee07ce80921ffbda2aa622b50ac09ad7f6553c917077a169ca4c20d6435b2e967c55ab767555394f8b5159ca26ca2b7b142bfae13c6150f663fb593ae19b6cd3192573568d3ecbbe2a91a4de1ac14e25d5c18ef48db
+Shared Secret B: bb52107a9bc9d343f6f4fba05746d027aca71dd6936320e12080c74d8ac42aa5
+Shared Secret A: bb52107a9bc9d343f6f4fba05746d027aca71dd6936320e12080c74d8ac42aa5
+87e1c43616d983a7ead5abbdd6a173b273bf206e4cb454a4610d1a995bfdf8c15f1c9dbed07ed397efb8dc87ef42fabf6f705c23ce083b92d40c5772e14027cf62f2f77376ed43035464b6553849a3c69903271a4da9215a3a8a699774325effe316afab4aaf5da34790fce0b70263913095e7656ecfe1efd3484818e3278e2b216c9c6fd2949415adfeffbe9d78e92f87bb604da298b930d642e7dcef466e6ed57edc976b82e6600635178972a821842195ecb9ad10c6c6f531226fb849544e3a243f68d1252bca4af90fad9f052c97e49a0023cba500e31c9d23699298ab57ec6dfa57cc4d76143609df285f2d5d2c96a9ca2c861e5cbc30f46581ee493cc888ce97c1dbf239e4c4a6b95b9588e68510e7e33816e581d85fc48a77254c23bbd43f2ed13c42c76404ff89a9e02348c7e17fa1e25d4b80ef0d7e33cb059da8060b9ab4c248504e3c181ddcb010d446698bb09f66392624ff75d2be6af8fb112f747f136ff7f1cf696cb48c9eef6f0188d596c215e83544d42c13ffb662007f876b63552513f63e996b0e13be363c8b495ebe659b26dbe8f697700a3c19dacc9c1b5186f6af281ab44bb74b892a3fd596a7628adcf94489a1aaf805d9051241af1612e2f945559d5b822ffe72bac8c8206985997c73f9f2dc0b4c68edd6b35525edaa4b5b4d29fdf09e3fbc000af2da709f0370da3cdbe2f2764759fb32170a901ac2167d5ff4a6192fde39e024646a0de21b9c7c9e59f6f254e6d6ea1c4d72471759c2dea53126fcb7dc9300e7eb80dc62502c18d071cb066f81c3902942683b9a37b0409234aaea9482a25199ea657f10cfece030589103c75b815fb98e500b4105efe4325ddf1437c4deb8f4bdc35ff742353ef693fa535cb1cc003cab6fb06ba7881736f2fc4bde18ec531d0b7b75d22a460533a65ac12de5f1c4b57fbc0c7b6751da0403cd9ccb8f146afb8921c4b59778de724e7c4482461eb80e48e6a68a12b4226449f84a764312cf703b7b4aa999c4494c8f5087911abe44ebeeff0b7dd1f37cf96399c8ac37f5c9dce23bf274c642255bef83720d0c9cae54ab770d9801703e0191e0d332f5351a038377bca92dc972a5a9bd727d8404829688f9d1725fc63da04f076a49df561d82f999bc82d492d303ad3ebefab9d6c8bec2428388afd9d236b14d67d042ad3c5efb9bd9c673b60c00e3cd14743c376a820e76ed18c022eb826812bc213adfa8837d2d76670708477afaaee146d024f7ffce8c2e741c1f1fad389caa2b1d3cb7f35e4944959163768fb98b489817c28bfa30503b6cf78c0b88f460c7227af72d5d050f6f12407ea0bce09649deefd72b524ac0fcb349fc8aef948bb83b46905fa4876aa5e14a7b5b681a2a672aafa7f641cfc7cdd6b257cfd43ca031f901bf28de17510a0e472e72f0b5ae7dc460f685c4889c8e421e71e14d351153ce7cf599483869974ca4be77203ca8230be0e93b5cf6e2dc45bb2b04da20dbb5b7d3ef71cdd3458701b0727f8f83089fa4ef121d5239650f80a94b97df9b875bb1fea5c91b9c081f8fdfff79338131aa8948db6fd1ba086b507c19fada31fcffddfacd028196305bbb895b5b43ad6a2cb43cdd467e8a1cbe72785f607a07aea93c88c847219c8acedb40776bd379b723962c7c90d8990aabbba33b1475ead038700519330d032ad1206fa09d8190a45cf807863f786220028938527ef92f90ecd8f092055c31f25ec4351afd8a6bcefe17623ca52fa9faee6a970e51a98799481129812742cecd1bd9bb8b5147f43325a070808de138233e2de3dfe9bfef4d30045b32071516b08352f253ebc0b59e6c534a05b2a62bd870a70fd6fb5830698d4d30941c8cacc5f3336bfe8c295e4b69220885968a207e5dcdb2533fccdcea0b3b4a47cbf7d166e5ad1b405ddebca5bd442cc533d8cd4703feda00d27229e9c12e79d587f5298370962e2b769bd6a058f1029a12f70c00a98fd60584cd392c8af8978e306d699ed82147636b2f0a2bb991fa9cdb643518a2644b5126ccfdb6e3ff8fffa508321c62030f5672f59ab00827b952762a4ea34272d4f82e96f3f1224c8dcf71d742d6ad8e7b90022bff72b845074a6d58398947b00593bf3be44b865933238ae3165a7bee4c153c9851ff8dd5265266a6e74d2f29f689a3d5069873a3f75631f1c5988e40083fc4300e8c1bb95c19a6bf895c9e
+Pseudorandom shared Secret A: fc3f5bcf7449dbaad42a59644dea8e0d58603ed8ee0080707140823ec4df832f
+279d0f933a23c1df0d2ad6e0eb394baf14e416e32ba2d41df4f016c5aebd9b9d6cf3c13f459d34acac62c2b8999ee364e92f3e8ad5c6f39944611478cd059176
+Public Key: b42744685ace38d673844acea83c7bbd9170f414c7e5c322420184a217b4107aaabe4386a8f99f52b7c5b0d9a60cc33a68e32113216a381a2835d499e19947fe0512a0113dd0415549138ee6138a0c05a5d308bbc0143ccc513d59c935e820afd93529343163ffb9cd91e9b0f0945bde3c38fbe80385c25b189a12215341dc973c3b5b07c803a2bc882702e151f3c71ac8173c5b975b2b75b25703b094ac9cd1a63a6391800505b3ba09b771a6b84faa8f744ab336b2ac97274aed1bc11e2960e4b6b8be5908f9d283f2f7cc46d05e703438c97b53f9b06ae3690c9b7acda5a9b359f9c1a1d0823d4c9fb7a35f8129348b38574ad832f744ae606826cd5ab1e3aaaacfc9053e90bff14923457b9991d66c9dba558d862efe49b90750081d61c0b8ab323bd10da60c370d2804b3f20b94165bfbeb11dfa159617a9ab837664fa1b3e3b17b3d63c9f382888cc3bd4ee8bf02da42da407daecc356ab2a09e80b59ab40719dc23f0622f5112bc697041cbe3b2acab03732370b736b94cacadd2e0a614726bf8b866870987eb67c8c6bc7143670d84d9bf640cb8baf77b08720a54d215c984219c2ab474a10adbd38596f1b81518b930fac994e611a1791d735bc9e420284cc49d84b95e09f34b45f273af0a081584a5f03ac8ae3c0f8a5c0466e98db08a0160e2c452d24a29157c7e9a4e41d731f41971d603bea51805286a4130d258f063adaa4a6a46740d011892ed9aa77b37adde05a52afba7442547313b26a71c5cd23377c5c5813e968ca4d490271a7d60a0cd5587737c300ac296ae3ae149ce8a81708470e859809c025e25a94bac2062777397dec4ab699158c13cc709c42d35206d1c305a111b55d0c09b6ee471b4e445cca2c86a1496d5d30ab04a7887e28b4f3aa4e1639b43bcca8c9747f50307928b0d36a5194fe7a159d81a1b81053e55b7d158255f958e4b7a47ba7b632e1a5a12893a89530dcc2a176a5ccaa69c6ed5b58513b27df078719083905ec9892ad2b72f84b10943564e90434e0a6c5c152cd7a55843623b6541cd70c940856ac36fd07d223a1ebe21ccb92ca53a62a996197cbf289ec3cca39b2248519840a33825151330e9b881097aa7ee7c8a4b5ac74778bfd5d9b69903714fe64dd2f181505a450b821c0fd9cab00067ff33c9174972bc742d586965b4a5b1c883c6afba89dbcc60edb991de540ee6fb9c7c32a8cd962a3fd003c9a99e7a4c44876915c9c32cf23ba596091d87033402caa1e3178577a8bdabb61ba1ab8f6736531e68a2757a37a5fc053671507e697d60c33097897ed827c087395454d8399cd9b26fa7386fb4a4f445cb36a23021ec92b8322ddb82ba50f6ab3cb15fcf124ad9d7554861241e8822931c0ab3d7610dd86fee470f66b645f89589ec748313bb6d852a320bf517c87b8431eb64f6760dc3c646b10478d9837e781a5a83628dda740cd39739c8e5c557c72696cacb506b4e6ba1897d293ab6a25b962b7dfe4457af964e3f4792470bbc51161dfa4ca6e5d23eb0b09aabb20b2a7740ea20814283bacfe39ea82a852af229faec9f162462646a3923681661612f0803c2fe15c2179299aff7896a5a4f8a254c7f61726ddc35bc89b64cd9b462d176c277959cfc8f3cb892d0e854af1b3071c6c37d7576e205a5cceb7fb06bc9bca48656c3498aba977af1a91d4a61383ba97385c55669be0374b63ba40b5ffca11a230c703903a9a56c0b693702d45333843b3b5cb29f12af0eb036c85ab5d8db30a3692a10ccc03d307d6b97ae1e097aa5f9ae8b8754a92105f7a72bb97074988064312109f0ab07ce1bb25ce9b4a6bc237e5740df587fffb4c89847b2e2b74995b96df477795bf1232d31a73a30c1a0512ad5192c2a162127e164746ca57ea222f94c671ffb43f7ba49b9ec3c915111df3b009d40463693c92a8098f9f3289e13776718c7f546bcbf7ccdf9f1a6e0384da5f2825d111b26a11cc4b250461148bfc17152e40eba73063d096896f6bac014b9e4aac49241998334b6678158e0c29e05433316d64688fb4bb7f07857f641cb90c4efe928505b108a3201191216810b9e21643a2ff1cd4ad66f5f757432654a4e328352938f1e4b7e4dfa5274e601202aabbba78aab3546fd9935eaa99986bbbb839954258c2fa7a87ea97c77f4c7aeb5889722dcf6f13ec43c01ebbcf9de78eabfb29718dbe3e2d430
+Secret Key: a3292e7c922ccf1a4f3d6c38e6013163d8c8b2163b4c193b8bd82b755cc237198ec1a8480b788a8e0b4c1263812816283ca98d64e2a33f8246d7953898d5b0e9a71aa16a755429672770b77afb38b3d60043dc14b5a816ecc39814a5b2e7c559ac4c6679406878131f023cab5bf64c56f3a8b95273ccac4c26f3c5748541aa5b89e7ca86b2e62ec6700c4b78c370dac3dbe520d8dc9768e038dc4cbec2101582c94c7ea62c73c776a554943602717b9846a8119753091f24d165d664aabd5231cfeb943fe49f11647bf2c1775123123f2c94245bba7e64c1da931c1c1901d1d7ab508857fd0a3c3d15af4f91bd6458b3633666bd01acc8b7a7fc83adbde990f062576af8619b0c0e3b9517ccf0ae75fb7ffaa2609d21cbd72ccb6236695dd24eae0c551bf47d96cbc0bc8ac5d59b9b92a83a84c90dd36cadf1357ab8299eaf154ae7b69e1b47c8831388a3c5385f382ef7718205185567a1ae73d77869e64dd53c5b8605b6515c195317368dc407b11b3b56148547a11fb1d08d714abfc8d8a9a14a0fbb0994f0b24feef9b927665173f89417988f0d5baa5dd37fc3a775f88c126750550d04a5682732e9436d819a2d304a5ff036ce1ceb2b5aa1a021c6cc0f9876ee66b072c4057827089dc347f00b5fddaa354d0628036827f8f33bc40b8606994fbc99a80bd3870d000ccf955352b2030f2a64ec1b3c015138aa944ad7ab96ce1ab47aab266fb882d36cca31067970e67b8b3406793c0c33502a90e2a695c74b7a6cbf66fa2f6c6c4320553422126cc516005bda656fa9433195864e711c3930494c509ef72b1b69784000927fcfd5350338023b412e73a95914900c0450acc0b52fef98be0f310929b4788ae8350721120e4ac8fd50068aa45c3f499b5ec91080ea0db71ac0389c07fed76cb63670f3b67db3d96e9ea26f5539143cca27d0ec618df46726a619a06a1954c5ca4e251bfa260ceda0c0fd767bdc56b63f17ae92867f41b6b9bb3b9c3f8c66b531cc9f28c48dc0a659757002d68575c82f00ab1642bb9adaab4ccd76271d75bf13f1697e058567978816e10413c4cab691c4742241e6c3ca69ea94c9694b663c3be31cc9fe4ac39d38359101871c94c27323046720b485b85950195a4e1cbabb93bb14174534c36a1d9012f86284c396ab097aa50438264d316247524091d8c9ea2046a97888d1d089d6350a8724a8d03856bba40fb9bb7cc232ac235cc323941a38385e9c33cc23a0bf42884dc7d9b527500c43725cdee3963af688c960371c580e9f978169c368f5a546e9500e681008eca90195f062695c36a3d32b95250cbcd140c5866bfb440683f06d1bf555185a2c15552e53d15b894b3756155f485c8f892abc47f80c7e45071d457b9d934bdf17b51509134d18612c06262eea8b441aade3160129d425757b87e2c2b00bccb62cb33ab807a3bd9541fcd5259496a328980247047cca35bc4a1b6c6a6200d764ba24a9072d4434fbe63c99bc53f6495dd6646c80a1843801a01e1bcbeac2ce3c1bb1dd670d2a915a02d34eadc85fbe9432a8c64837f0490fb0a7741a0c6cdbae864a440ac8445c2a7c0d41a091d2323ff79cce9394a1c23717352b9d463dcb3741a275b2e7d6a55db9438d9265cf795838e36e46541190d30b472047e4b8949e254e1ab7c050e39105e7053e2a7a19d97fa5096d43d3abe93b8f3118416e0ab04c519b7eb01dce9b6c953ba884349f7ac4326a5463fa3964760120550b01d0857d1d1c96fbda7f693457fa465ebb49a82c42aa9d59240aec2b1674bab8b603b329beb2ac31a85331b49b991f575402611606026a40273a7a8cb235c0826002b3f01ab1791086e1d8c1f9e0b20ca6c1bd7094b45055d7d1004f8839a8cba2ac158f2b565e866c076ee161b743b7e9bc358011218cb928e9969bb6d38234111503573498d4cf695ab9f0806927a8418e32b797546aab502e7aa20687107360c49338009b277115a1475c2efbab91da4247bc84046a1e82c9c554e4b2f0752fdcf5c238443717674d25240016accfc84cc768f23028c30bd1087dcb690575bc07aec442efe6b1d45c9e58886be9d72f89948187876bd59b7287b569ce538c1a47741d82ae2882410612632e3683647331a357703647a354399a701615301b65c5e526b42744685ace38d673844acea83c7bbd9170f414c7e5c322420184a217b4107aaabe4386a8f99f52b7c5b0d9a60cc33a68e32113216a381a2835d499e19947fe0512a0113dd0415549138ee6138a0c05a5d308bbc0143ccc513d59c935e820afd93529343163ffb9cd91e9b0f0945bde3c38fbe80385c25b189a12215341dc973c3b5b07c803a2bc882702e151f3c71ac8173c5b975b2b75b25703b094ac9cd1a63a6391800505b3ba09b771a6b84faa8f744ab336b2ac97274aed1bc11e2960e4b6b8be5908f9d283f2f7cc46d05e703438c97b53f9b06ae3690c9b7acda5a9b359f9c1a1d0823d4c9fb7a35f8129348b38574ad832f744ae606826cd5ab1e3aaaacfc9053e90bff14923457b9991d66c9dba558d862efe49b90750081d61c0b8ab323bd10da60c370d2804b3f20b94165bfbeb11dfa159617a9ab837664fa1b3e3b17b3d63c9f382888cc3bd4ee8bf02da42da407daecc356ab2a09e80b59ab40719dc23f0622f5112bc697041cbe3b2acab03732370b736b94cacadd2e0a614726bf8b866870987eb67c8c6bc7143670d84d9bf640cb8baf77b08720a54d215c984219c2ab474a10adbd38596f1b81518b930fac994e611a1791d735bc9e420284cc49d84b95e09f34b45f273af0a081584a5f03ac8ae3c0f8a5c0466e98db08a0160e2c452d24a29157c7e9a4e41d731f41971d603bea51805286a4130d258f063adaa4a6a46740d011892ed9aa77b37adde05a52afba7442547313b26a71c5cd23377c5c5813e968ca4d490271a7d60a0cd5587737c300ac296ae3ae149ce8a81708470e859809c025e25a94bac2062777397dec4ab699158c13cc709c42d35206d1c305a111b55d0c09b6ee471b4e445cca2c86a1496d5d30ab04a7887e28b4f3aa4e1639b43bcca8c9747f50307928b0d36a5194fe7a159d81a1b81053e55b7d158255f958e4b7a47ba7b632e1a5a12893a89530dcc2a176a5ccaa69c6ed5b58513b27df078719083905ec9892ad2b72f84b10943564e90434e0a6c5c152cd7a55843623b6541cd70c940856ac36fd07d223a1ebe21ccb92ca53a62a996197cbf289ec3cca39b2248519840a33825151330e9b881097aa7ee7c8a4b5ac74778bfd5d9b69903714fe64dd2f181505a450b821c0fd9cab00067ff33c9174972bc742d586965b4a5b1c883c6afba89dbcc60edb991de540ee6fb9c7c32a8cd962a3fd003c9a99e7a4c44876915c9c32cf23ba596091d87033402caa1e3178577a8bdabb61ba1ab8f6736531e68a2757a37a5fc053671507e697d60c33097897ed827c087395454d8399cd9b26fa7386fb4a4f445cb36a23021ec92b8322ddb82ba50f6ab3cb15fcf124ad9d7554861241e8822931c0ab3d7610dd86fee470f66b645f89589ec748313bb6d852a320bf517c87b8431eb64f6760dc3c646b10478d9837e781a5a83628dda740cd39739c8e5c557c72696cacb506b4e6ba1897d293ab6a25b962b7dfe4457af964e3f4792470bbc51161dfa4ca6e5d23eb0b09aabb20b2a7740ea20814283bacfe39ea82a852af229faec9f162462646a3923681661612f0803c2fe15c2179299aff7896a5a4f8a254c7f61726ddc35bc89b64cd9b462d176c277959cfc8f3cb892d0e854af1b3071c6c37d7576e205a5cceb7fb06bc9bca48656c3498aba977af1a91d4a61383ba97385c55669be0374b63ba40b5ffca11a230c703903a9a56c0b693702d45333843b3b5cb29f12af0eb036c85ab5d8db30a3692a10ccc03d307d6b97ae1e097aa5f9ae8b8754a92105f7a72bb97074988064312109f0ab07ce1bb25ce9b4a6bc237e5740df587fffb4c89847b2e2b74995b96df477795bf1232d31a73a30c1a0512ad5192c2a162127e164746ca57ea222f94c671ffb43f7ba49b9ec3c915111df3b009d40463693c92a8098f9f3289e13776718c7f546bcbf7ccdf9f1a6e0384da5f2825d111b26a11cc4b250461148bfc17152e40eba73063d096896f6bac014b9e4aac49241998334b6678158e0c29e05433316d64688fb4bb7f07857f641cb90c4efe928505b108a3201191216810b9e21643a2ff1cd4ad66f5f757432654a4e328352938f1e4b7e4dfa5274e601202aabbba78aab3546fd9935eaa99986bbbb839954258c2fa7a87ea97c77f4c7aeb5889722dcf6f13ec43c01ebbcf9de78eabfb29718dbe3e2d43037ce1262753670aaad84e69accd1380f84acd48b9d76fbb843c5452ee351e12a6cf3c13f459d34acac62c2b8999ee364e92f3e8ad5c6f39944611478cd059176
+4589d2ad9c50e154157a587d466b3a2122944afebb709de3289100f76c2c19ba
+Ciphertext: 8ac92dabd54271301fc1f24f83a8ffe44dd9b483058f00780db2a41f0d41dd363011d7924a1c507df8ce7a710392dc86c7f9771aff05a26fe7126d48a0341c18be28dd730309893b0c7fbf9bccad3d3664a93f35b75f517c92a57e8752b0ded010773b4f8b701725200a9e70a90cacfef5c367cd160c67f48d322b17e13eabcfadeee8acfc0c1ecfcdd9bf47d466c2301c51545fce15556de814669f3602cb0f267f2330e96a92732fbf8ade7071d7708726d481e65c94fb847604f429ba7014236bbd1a1cb285d8319aafe0d478a841e64b28ccfcfd6442abeaac9473bc199dd0715c3993483423e6f487042697c31aa3f55e1877a60f6681aa1d547b0e8537bdb1e67807f612588024c90460be6aa8ba7080b81a920a3f70ba95b6afc6e70885d40e67e77262ab04e3fc096a442808aa4702a7aeb67230503b5df95f1b95a606757a1c37d406ae4f1cd43dba7fb6f81536b58d30d86d29ecdf1ca217a5e033faff189f45368be5c61bc977cb61033e45e35a84a4f70a605be307d58ace3051080abc4657131cefc525f3b10460313065784a064cf4d5af0785f6dd3e752b101c65ee80ae6ea030aa806677c5c83acbecfc76782f2b643918cc89c0596fd0e66f6e786df7ffef6e9fe7266a8f2965997c070fbb50d55bbd1675376ffcce607e260f5c45f60f2a1df4efad9fc7f38e62ad6586a3797a7e316907b82459f365ab8974d7657af8aa2a9e6cc400f7166b69d5ea0c84bb3a4c1634965be416bc9876d5fc4292ff47ac0a41aba6d97c237641ec347467c904c4de002797384a8418a723aee5e6bdc19205494127ae8a0db1389adc4486682a7b15686cfd660c2cd19d2c27178093937ce2e3bd01f21a40df71de0b084ec6d9d9c26b7be2bf87056e4b8db8e86fa87cc86048cbf2c26a128ccf620e82c9ce0b832736f6bce5c329d2f46deafb73b49c3427a09cc5a5f45f55d1ab42a2a12f4d097d015ba875e43c63764ceafc6e36bf0ae11f0149c31fe998a1600127152d5964d13fcbedaba84d67f626c257bedb978025e129ec434b2e16e9fff325e608998c0ee5f8e280598192539c04ea2d0967cb634d73b8fe971226128e60fc93bc22505dc2ec457f8c5f6121cd473623b404367ccec35076b5eecfbfad8d73b1ca97a56aa338bacaea961a6cdfbbac3440842eab315752243fff08e7d960ef903427160029f406744c3601b3cfa771432cafeb6525ba8716785d935dba04099414258fa423cec4c2319ebd692d27636328734407f3daad283aba60961842209da6e4e1f4a5ff5a8b9a80d232375b4ce6c5ae469295c0a9f7450acface7fb992e19350ccf1144c0f71471f9a55d17ff0e9585f8d7a5d3d6f490b55b81151397ccce39fa488dcbe433c28c8f4522eaadb5735005e3c37ccf4b177f28ad44cf79de28cb3b6ee8deadf27f3c01e91ad4b684519eb7b99c2a88358203dde5df0f6601c53bbcc7f1a9485b68b3d63e15531bc04a79ad256adf1f31b4648c2697781c6304c8bc0a3c09f6e24c763b5020512f0ff4909569b16e6bc930b54b64b9c1616482f720b83a4cdb4f23b88a529edcf3fdbef77913866e63bb5ed94d8054b24a63ac6c1fc119c660d0ec31535126d69d7bce2b6ac2e038665e4b4b4eb077d221b568856baa859377db3aa24df3f6058d0ee8047252e6ce3ae558d80b9718a72d67354765416c665f3a06a208162f6ff260cc0ccaba916f4219087bcafff043f0de61363db383f5e100eeef4d55425efb0f9be1d0949f885c5f5fce5fe0b1968c76a45a738e4d0576cd4c776bece19361329d510dcaa0f457ef980a191294140456149e15ff062726f4920966121e0e5f1291cce9063e2dd1633ae2be7146db8e76926a8b18d74dcc0fdf3b6cd54bbb400dd48d1c264f23bb755498bc5d6db9a59d771bd530e9e3c40578c8a12aba46964748fba616269bc368d0957d4e9af06a50019145a68bc388e6acd9d5ba065688ccf76435279af3aa876602cb1ce4a230225c767773301865e71ece97805cff6673d04dbf7a36f0df9b31f631836557bcb01af253ede2d0985629561775f5f76b899472ab64f03f66deee5052f3b26c6cdea7286f80227bcb9d11e02fad1fa4db4f41899e932d1fa29cbd59fbd54998c71a4b2319957dceba3ebcfc14f30f9627f61e37e0b4c43c15461e937178a3232a935d71951bdc08e90d995f9709
+Shared Secret B: 915b06e2921e25916a5bce805f36c648ab89d348e73ddcd53879bf6ca7ae2e44
+Shared Secret A: 915b06e2921e25916a5bce805f36c648ab89d348e73ddcd53879bf6ca7ae2e44
+263c4d8b6c80e029a67b2e685f8c7c101b6d84c19f483436a41146e14925d18143a00f5a307493d081f00d0a823117b25b2f2eb82306280505a087696e2a46c877012f0da937e970dcc22b3ed70dbdf9941ef3063a231e0d09c2abfec7dd70d5669fe2b0d7fdb1327a2146d91fcdff617518af48443f3ae7845bf6e20b5c7d85faca855853ec0eefbdee6380072a8fbc3410b06a28a73d7932f180ccc23e4935a25f247b01b41c215a285569b1496f1b528727b526f67cb8a967134c7c4bebf946626741e80b53cc7e2dd511f1c42c850f5df4d5ff208e817e0090d13156f7ad22ef2185785e621571091457d051a96eb1dc069e2ff878687967ecadb1dd794cbe7e1a25ff082f7ea568e37b0157249aaec67243e6117af13200bfe0d0032d0261e66cb8d0a0dfbd0e2fc077535bd1fd27569bd731bea63306f187a11872f95df6ea921e45ff8d3fc1babf066800e31964edadf9e3fdf86dd9a7f0d83ecbbd5e0a83936afa2a403f292c61d2190db1147a2165f1383030091f41255377de4d6dd65f43d37dab01a9860fad130e8240807b12896d87488d0b1ad61290623472d61564d5ec5e9517a8f98a97e4881f604cf72495e17f9583f6e2984286cf8a13f67b27febaf73422fb164c107c55c661ff412711b7ab9aa922c2435f436cae6acdb3476ee7a9946e78da1d5f96c6c893f9d510fc564e3aba376e832fb7a8e9412f317c3b4f2f32e5433b932b241252bbd4bf4a99d1e7ff6da376c32a90ce8658db5a7a68f09777bde2d400985a851b8c006bfb25211d6ad0cfd0ef292e083834c142e1cc4cee41d57ab8dc938287e137c3fe55242d7e44ba6f332ee5dc94697cb333894f0e079721ad0cf1d1980248aaf52e8797f86271c16941dc033672ae76b6945efc27f3f31960fb94f8bad99f407a6520bf1c63ae6c9ae2ff8c066d392230366a18cd9e855ff397b5381329f2f6788e429b0216ff28cde414dbb24688c9baca819a8134f4f8ab2dec30178fb800914fcf200fa211c0079338e6a4303b0b53e2602fc99b5f5e65cbfcf708dad3a97387a6eb0360576288854e2db33da9fe86204ebe8d8fed8d75523c2c9226ac321e441818a112eba198f8c65f97f57a1b66be324b82e57d46979a517c7eccd00c7fab3418434d64aba4958ee74aaf7ab6f25ad87d9e16fbe1e675b8383b48d3cd3ae0c714ab8211a457555b56d1f2cc3efa84dc4394c44ce09c11c3162f7fe577d559c1aa6ee883cc4ef75a39d2c1bcd2caccd8429d27a12bf0f27d5ee0ea6da208f8363e59e50d39b65691435de9703724b0f26cc365aa65dd03be98ee2b7694ab417522c26b7c4b558f66ebfd660713f633a18b78a8f6bcd7d484e019e64b04856c6eb8b00f403ebc6875cf7af78adf23b2ddc3bb506b5ba83878b15c9d7dd4f75d3bf08413e14cdbb2f3bd2401ea286fa1c11da46abbd66c87ba0ea47d08e48eb242acaae1aa8c9b0f614ec7a18851c0f9b6dec061f54b1aee5a3f1fb04b58faaa5c2be7df04b3f0cbace5c11e63240bf3533f08b1b5ec9dcbe90cf8addc67780ae99335fcbb95d26d93df3d779a6bdf240d9f3aaf47bb28892cb5b52260fdde73343c9210f419a073a65292bf172a112414cb6557183031346dbf9a1b8d3b4666200ddbfda1f5aab2ed566c5f9201c5c3fba9602635da75d7210019b77fd6137c2e657315ffb95f7321a3bc4a919d101b414e2ddfebf373cd155cf7e5062ccc8bf04305f5d9be277819b27f52b464ef7855146d9ccf9c4aee4fa38d9b8af9f1d62d1044fba99a690ff813471cdde7f0e79cb2eb4526c193ffe87a5a1ee29b4387fc64fc6061ade9160c334d5b867afa7f021e70393bbad3b00fbb439ea793b28642fd3b8a285befe98d07c7bcf62ef74b55603ce096f17606978ff74ccee68a3a010e01cc7d5fa855d9fccc994f87000a311c32257b54aab0a15425ab5b7e759a4994c6c5d103911c37c614390aefbc5f4c7e78387fb2b9ee0d7b2833d7521a3eef19aae87de6b69b17dfc19e30003f85e629555b4e1b2cfa76efdf8ff1ab781236cab5fddafab8bdc3f5ec16c6adfabeedb421c846a5a61b1fd66cfe4b8f19b0fcba3c022fce3d4672a3d457bea36e43c574e9473761835f9d61983e9e78e08e28991156113763b51ddfdd3a7c21a341a60c1235dae83e72f6b9e19cd74c6b7a631c7abcb3be2a8bb9d614240ba437
+Pseudorandom shared Secret A: f7f9462b50e493bb6a6c36aa187b278fb753125749ef3b96780d9a1173df5a6e
+6d08d35e423281a6812d1c6e9eeee33147b52142b8664e05594db6e79bbbea925b5ca733950b6973c249e642de1c151111c1787616e68e4a1e6b897566546d9b
+Public Key: 93ea84d5989ab22652de9067e3339820039d80e44a24945a6c154c730a83457976aa29a354cccfe7fcad5023362fa80422faa2fea1ce16b05aa43b581f8c8f648940f6bb4a5a87b6f15940804603e23880ee5028af5b4c1f040832d56841a4b981c80288b65f6f8278f33a16f912a0a36161435b61857b65fa20bcb9f7beef8b3902359c66e25a766614118c5caab32055783103593e0c76426f36c394f391de6712efe1c6e101b42e3251de5135c91089307bc03712ad85b33e9e8b5bc21309b4ccbe49a022da5a983a6679c5b4c84620a88124276ff83d8a0383ab84223362173c740c8241b74d7032410ccf59ebb158b59823b45def1532d4097361371697dca44bdcac57360b58912ac43a0c12e34b234753d8682ae881b5c9a314fc2ac58d465b4569552d2477531a66df4c4cb2b18491c161aaa8294ef1cf4643611d70a2bf585044db640deaa6b00b81c3cb889bb547f5ac154c383824239dcd45787024cd388130a53c4791bbae643c7447fccc57b91ef6812a3cbc97e3c691b7b18d781912f88a39aad39779e54610d4430a1c76fafa0ad7bbaa47a45b4a44244e63862bf8347bf465e830be276803d412b205183c3f59a50fc47eec27225ca9888c7a4c510304d5ca5ed5792656d15b63a30bd526b1b3bc820f8336497baa81669f0bea2bc220ba31275455d09028e119e1c0b4513b3cd4438ca52abc496b5b2e731c9acb5889757200371d003c7efc4c2923896cb5fb48ff2a581335bbb7a4c5bb68107eb6146e4375f43a43ae678a833c773dd2c460607a4a40cb5e8a5251514c0c692d2ac21dfa2c296755543601bcced30f656a4ccc82340ebca175c4191102446275a1d9f669d405014e881e98b676afc82a1c5a6e7fcb482a1a13ca311fa6765eaf474ed2ca8ee2e056cbc469bef18668405023926309710cd1d4a2ffc42af54a8c3fb499781579812007fd4a63929a1d945a38d88b205a51035e31710007c218f23e06e83408507f76ab6e382c1c52940f3d0b0d67a6c478a69a2835a82c3674c0e29d430806d2097fb2b35c5de1940041cb13c910db779b64f9a2af01718235a3382b19eb853cc1999998c00090881cb45c89c770c79d5a8772230a9d22791ffb14ea53aa96b66cca4acd8fbb03d642174552682d98c8089801a1376c72ab743db20e7c62977e4c9232cc44f3c95d6761062f9b73456228fc935264059fe476bab4f0a920917acc7989afb69126f5c2d105780da3a3c4a38ffb932ee7daa6fdb8c5ffb0577c367845f75f2eb545db05ab7d20c9bfc57788ba8725c62a06c728b84b5b3ea39fbfd7af0967703ee7b64e26050a741f69fc70b0bac44396a7be3a90018734ae0a76b5239ff92945babaa880d3907f347b86d8a834e02f660764ae88cb300c3f6e77634409249d471f64938c7e70b08492c66372753af46d71691c95a00b86124d552b482266b6f463620a510f823bb406f509bfd7987cfbb113e0104cb04b5861698599b8aff57180e898d494adbb15897efa3fb7c76c86c21a37013f61e635f5bc422865a585c9c6ad34a804facf6b035bec34a65f645b564a3aac7597b6911b4c90006f66cbf338a802714e7567b30c0770c82b6cb9f042f8614cc25a0348f9599fe5c65638737157cc11eb0d80866c51634ca6b3435ba6ca918557ff4c3174eb8e85449cff2b798e054cbb32531e633e1a9810f61988a0d60cecf62918257769941ed9c1618cf45e78c028f24bc1ff2a0b745665fba04869f38e597bb0007d511d90abac794ca3cbba9aeb391b846cb702b0ec0c8ac23a318798c31851710b572feda34f00362d36d623db678254e32662b6a5fd326e9697010ef4078ef25c099990dc082e2100ca83f36cfe8b9052320bcda70a2f641bbb65bbcbb5647fd0cbd6c0af7c1bb55761785e9716e2480519714e6a12bb2283aa49b3743b3965286b45f6709890953719385a656ca270e902805771ca087dc4e9c504656aba35834db581cf578efbfab089498724a34af043468c517e754489149051a1e77a1332231970c9f43c1fdc513e902364efd60e42f965ec0018259276f8c2b9ca503188d8a612b5a1fefb013f17a97dc0cf6e2a37a06261f4f42f4daa556493231f81a915a2734b7922929b6d15a6b9c6383c77715ba6610ce9b416dd44a424940c88db7808334323ed107046a705c670bff4311280840de3e264f3
+Secret Key: 5f4a2b7dc30c06841640ca3cc90140d4f010004b112c0b085d0b4e7e245ef6c51eeaa18c09b054887343c2f5394577a379c6806aa005b1b64d8b585bb6f42e27494c5b4c42d1a555a5295e1e050e54c1731704b0bb174e7dbb68d69a51189854d2432cd9f5bb32456276c8a42bec6aea78a784396ac3a9355514b7d419ab2bbaa0e8d428a1a014f2535941d416ab6a39f81a85e71429e59b70e51241c33558e0a50651073f41f62d6f044b6f80a1f5f80b526cb5776ca1cf13af009119d59893e9c77372278661484aeb090e86cb7481421a22c7618e99226df73e30891856e5721500afaf56c22c539e59954f56317934b43d8a84b8d61cce7738264be010c5db91bb14c21db23ef1ca4ab6f5b3d08bc3fd3548408acb6a95ba1c046af149b9e7915f05e80501f73f183384a3e45366215f2d0b357127adc217cd58e3b5bebc370d9a00d04b4147383c73f504d9eb3081bbc11a13b9c4da162c65b41d32c55bf25ad41c7160778ec1c11138a3816a9c23881bc804420873bc13d9f4630deac4bb399e1990986ac63de176c11a1b1dc2fa3008f82685b021012ab9c7ab5a8bd320aecb7a46989f6ba510a3b038059a67b5098cae282fcf4045638c6ef7210db232a43ee09ccc7252dfe7ba480bc7bb7119351991d42965bbc64172c572bf1b3f6d8906ccbc4f7000412171ca06890405198597211644b0717e16899c36bdae6c88acb0725bd9aaaae989fef280bfb72c6ab9b51a4423a39004fa3292eaf2ad9a2b001be06fc55c32803b96ba75c779ca182a707eecec8d3ba79583ba1f0f65a2c4aa3379223e972729f3a7304ea8566990b8479c86d6742edbda25585849ffea962eba334cd018b839a27f30200679a65de727da18cfdb138eeed80a450c635d82161756354e7b6d197782efe6b3437510a705aef84b5867f56a10dc33ce214a7cd80fe6a474f0babf1377400959aba9d6140f0a6464b69487902337c40de796431f23340e1342e9629d2e7b86442a5700d27d9967a8f3da1da755c008f909c518c05d2439697065148cce4b0ba107c3003597bc43cc8edb0b51bfd77e937631f395b469c22a3d252d99bc3ba59ca47a54cc40e0a8f61796aaa0cb703caf00f29b5b61cd54e3619d4b03ff315720ba58c7168208da6a7bb1886cb04b8a21936218ba231ccd392a9ebb19ba23f3733a08a76e6a81536a383076871af98af2541558a83edd117e4b896704a3910aeac63dfc80a90170d9036e133a0ef7f2459f4964ef0923b1e02338b24339bc39fe66ba3fdc42810232c39380d136c019dc504e770136736f7c543caf8a6493a9b190782b86036ff5983221dc029c6861a574a908ba50722c82a7712ee751c144d27b04a754a3d62f0273b4781bb56574bd2c0b5d113b8ae97968abdc763a6324a72734bc59a9780783678a2c11896998836165a41f295a8a5e38c55de7c707d449c7a991bd17954ac29cb043048616037f97b044bb312eca07a15354f569174c1956bef673046231ae774e738bc7a2d9c130d8573997baa907bb65f722de59b9988c992d2b6258e3b5dc6b83aac06e9a71c2e20761f2419ee1065dc7715b41bc78d9e36d4ab92d91dba378c4a4a246aa7406a52c8413c0717840071bc06558b0d780e5f98608b216aa995c2429bc353270ffe14f40057b42fa004265696d8333b3016abdc80065a4770c2a2da21c1c3fd802fb0ac1cd302781d37c26601fccfa8ebb1a6518436bdd68c7b9f197f45c33189352b6338af430bc01962f614686b60713391a050628a3bdf1a06b695a69e07c164ac6f331517e13b27e4cb0abf7a348f122ac72726ec76f74d98ee708b82c67968e106077050ecce329b030335a6a69dee6520be6c4f0a8040b39c7d2ab65725716b1c847693c9ecc122da9d7326584a281f3cefefc82da1b1f3b1634dcc323dd695d72d0342f5750c847b03c969974c2b8ef606110c60467cb9840d47833d49d3a02c8521a38d9c90eb6109f7bd4295263b2124a224054bade4c87d0511bd699a21b9c52b650907b8c5f0334ac8a54c2b87146166647064088e73b65b75a5b9243bf2f9c3b357988e809c87fa542eb4197883067020091b92560637599b086c7b13953e3a448ad3042c4015c12668df13a5e92cc564879a475495724866d8d585f93ea84d5989ab22652de9067e3339820039d80e44a24945a6c154c730a83457976aa29a354cccfe7fcad5023362fa80422faa2fea1ce16b05aa43b581f8c8f648940f6bb4a5a87b6f15940804603e23880ee5028af5b4c1f040832d56841a4b981c80288b65f6f8278f33a16f912a0a36161435b61857b65fa20bcb9f7beef8b3902359c66e25a766614118c5caab32055783103593e0c76426f36c394f391de6712efe1c6e101b42e3251de5135c91089307bc03712ad85b33e9e8b5bc21309b4ccbe49a022da5a983a6679c5b4c84620a88124276ff83d8a0383ab84223362173c740c8241b74d7032410ccf59ebb158b59823b45def1532d4097361371697dca44bdcac57360b58912ac43a0c12e34b234753d8682ae881b5c9a314fc2ac58d465b4569552d2477531a66df4c4cb2b18491c161aaa8294ef1cf4643611d70a2bf585044db640deaa6b00b81c3cb889bb547f5ac154c383824239dcd45787024cd388130a53c4791bbae643c7447fccc57b91ef6812a3cbc97e3c691b7b18d781912f88a39aad39779e54610d4430a1c76fafa0ad7bbaa47a45b4a44244e63862bf8347bf465e830be276803d412b205183c3f59a50fc47eec27225ca9888c7a4c510304d5ca5ed5792656d15b63a30bd526b1b3bc820f8336497baa81669f0bea2bc220ba31275455d09028e119e1c0b4513b3cd4438ca52abc496b5b2e731c9acb5889757200371d003c7efc4c2923896cb5fb48ff2a581335bbb7a4c5bb68107eb6146e4375f43a43ae678a833c773dd2c460607a4a40cb5e8a5251514c0c692d2ac21dfa2c296755543601bcced30f656a4ccc82340ebca175c4191102446275a1d9f669d405014e881e98b676afc82a1c5a6e7fcb482a1a13ca311fa6765eaf474ed2ca8ee2e056cbc469bef18668405023926309710cd1d4a2ffc42af54a8c3fb499781579812007fd4a63929a1d945a38d88b205a51035e31710007c218f23e06e83408507f76ab6e382c1c52940f3d0b0d67a6c478a69a2835a82c3674c0e29d430806d2097fb2b35c5de1940041cb13c910db779b64f9a2af01718235a3382b19eb853cc1999998c00090881cb45c89c770c79d5a8772230a9d22791ffb14ea53aa96b66cca4acd8fbb03d642174552682d98c8089801a1376c72ab743db20e7c62977e4c9232cc44f3c95d6761062f9b73456228fc935264059fe476bab4f0a920917acc7989afb69126f5c2d105780da3a3c4a38ffb932ee7daa6fdb8c5ffb0577c367845f75f2eb545db05ab7d20c9bfc57788ba8725c62a06c728b84b5b3ea39fbfd7af0967703ee7b64e26050a741f69fc70b0bac44396a7be3a90018734ae0a76b5239ff92945babaa880d3907f347b86d8a834e02f660764ae88cb300c3f6e77634409249d471f64938c7e70b08492c66372753af46d71691c95a00b86124d552b482266b6f463620a510f823bb406f509bfd7987cfbb113e0104cb04b5861698599b8aff57180e898d494adbb15897efa3fb7c76c86c21a37013f61e635f5bc422865a585c9c6ad34a804facf6b035bec34a65f645b564a3aac7597b6911b4c90006f66cbf338a802714e7567b30c0770c82b6cb9f042f8614cc25a0348f9599fe5c65638737157cc11eb0d80866c51634ca6b3435ba6ca918557ff4c3174eb8e85449cff2b798e054cbb32531e633e1a9810f61988a0d60cecf62918257769941ed9c1618cf45e78c028f24bc1ff2a0b745665fba04869f38e597bb0007d511d90abac794ca3cbba9aeb391b846cb702b0ec0c8ac23a318798c31851710b572feda34f00362d36d623db678254e32662b6a5fd326e9697010ef4078ef25c099990dc082e2100ca83f36cfe8b9052320bcda70a2f641bbb65bbcbb5647fd0cbd6c0af7c1bb55761785e9716e2480519714e6a12bb2283aa49b3743b3965286b45f6709890953719385a656ca270e902805771ca087dc4e9c504656aba35834db581cf578efbfab089498724a34af043468c517e754489149051a1e77a1332231970c9f43c1fdc513e902364efd60e42f965ec0018259276f8c2b9ca503188d8a612b5a1fefb013f17a97dc0cf6e2a37a06261f4f42f4daa556493231f81a915a2734b7922929b6d15a6b9c6383c77715ba6610ce9b416dd44a424940c88db7808334323ed107046a705c670bff4311280840de3e264f3dfd30b29a24513331df9c6a913e0b56efde554779cda1279fa6a9c35e27229bb5b5ca733950b6973c249e642de1c151111c1787616e68e4a1e6b897566546d9b
+5fb31bd6bf7c1b7595592ed9e590eb2ff125f1a2510b15b9a0587b813084bc88
+Ciphertext: 7c01232c2bfa412a5b0ff40024fc9fc94e493868326eca7cd4fe0689408e6f2027f2c55c42e7ae10321ba154cb1402b03c620148ed71c0d77fbe447d5a9f732f3eca7afdba0c41cadb07f4f3f18d11bc2a480fe39f01c4078b53c8c75bc684f63730272396dbad4ff1414117e039ee2b0841fba96c18d7843b5a011049e2a036f7e74425b4e4bee9f5e51072185e9f12f2193ce7d8f1fdff2a7190923c878cc7d4024f782a5c47176d3e41bef0c7fd535945273617f41e03b3fbdb54d03d3de244e3eb5b60cb9e95dae8772d8ec3c93aa54f439883c57ade3bf46cc57b2efa3b6bc79d22f70d55e04c8135a7285aab63893e4f5de5cc5add41d7b5a8c1790db9c26cac89ccf408a9c0db74a461c68b4d33dd745a7e3a9ffc47d483b10314c3941b3f4083e69d2f0fbc82e3a56b13c5bc4e0c2298bdf06acdb1b891eaaefb299e0ac58d3eee8b12edf66c0ad1fea3e20a45a16cedf2554d22b16ce545e56d7f7977c2dde29b75b6aaa6c2dac8db7a374c074c95fde1415b9a0db1c93be34a854f6bb12896863500d4053cdd004e5bf2d94bac12c923f54c52cbc975cd34ef7159bb1fb162b5e508d02d7ef726917d3b9706a73cdb9752f80db9d774664abed271dd2520359788835bdb568631a7395a1f7f2ee8a6fc962a70bea93e1961788d82dd95210e248628c89d79fa7cae33a50d1e59ac6d74a5efa809e77bf2297a1686b4e45a73d33de790ab9576a7848e97e58c4c8823f85512e84573be131eeebc7efb010c420662d6ec175d49edfc26a1a8772e14ca9690557b096923f673e81f3d7c2412dfeae71908803a634bc91a8d38834f1aec4637e5c6209c2c8db904d2dc43ce0088e4385805ee7df9e6842a1f3ff8557230a61aa7b9a1ea78dc0153b2b0402434f87438fd1a33b80946b6b90c6593833db1921b02d198713eedc85c2d05af9b945e86ee322a1cfb8491e518d78680ecab20a07b45a7691459feeded3b062259f90cc90db68b3dcd00a4785e069532ee01bfa1e41155407b62a4c3bdf303e003e58037bdf632305aed792daf96e4f73a7530185013d408eb455e656026a08ceef03a34cdcb01b538a768834f8b155f4a88d6e36b2ff96c976fec97973baca10ab889e713f2f8bf6bdc37ea572b2eeea1f66f129266d3a9e8aac92b0ac8bb4824f514864462b246574b5cd0e6a5967d12b7b097c84fbab5c90033faab5219d066e6932955e5a3607f25801b178fb2cc2507bc1068c09d23b2067bb4fbd1b0938c2cb8025946a4e6b3ba3a370c4a2f2002ab5136da8834b99cbd15802c6feff21ca8281cacca48d48c93ec9a8592a9bf0b7327c7c372fd2bcb4eaf9f23824929a501a29795872527cc1427460ee09b85246c95947128d5812f7c7a962b6661bef85a29d91bc9eacd3b4d2a7b3591e04734b34fa05126d717ad0cbdf225bc6a5b4f6ca729df8a9fa685d57042f01512ae5f175e7e7d163fefb10b4d17feea11167e78d613af0541bc6da0122fcd6f241806393875eaa6791266106a9bafb8ac10c4e670fd1e0cb07bf70920d26f1a9d830e6932f858c5f3efbac545d47c68f14925933c43c0bdfd37a6ebeeb69dbd7c55a5526d227056b4933209302f86d647c136a88bf476bbfafa739aa863164d2d21624ac8ddec360d0912efd473361379144d933239b9392b94a7a6b3162233c3bbd3758c40251b66097a8436b69b2178476d012e6d116e5bbc5c42fcafc16e951450bd2c8b5f3dddc9ba37d2025ef882caaea866958210c3a210690fc8424afe306c9ff0dec66434558e6a3306fc732dbe334445feb194e0a40692ff19425b2a28bf28cb3c19afed80304f7dd17a3cc5e90eef8037b3bc124e4602a2dc9dd6f0bab9151a6fbc49a99c06f7eb8762ff39d3d829db2e6e3992ddc9861d7374f7abd4a1f094258cf03f505dfc22119df3bc4838bfd3d9b1a8e987f13f1d7fba911a11fb1bbd82ff0fd2b38991be1557952d7248e9966fd9c0b38b2b10b66a9b99dd2158e747bde9b56d0f45dd85d1e725caab5028ef3c236587b7d0e81a3cfff50aeced8e58c063c16ac9b266ae847b85d3217a2969c6537945ccb3587805f5fe40f4a9b9010ee587c902b3665deec73d9c6d2b0b0183cba745693a4bfd5632f16e88f1e42191374a898796e2198fed39a5b1ac39e140ab0d5ff495f698669f2ca449f19791c52b01f636376dbd3a5b0f61
+Shared Secret B: 23409df6197cd89a8feca3977d0c7fe20434883cbe8b3f887083bf227a7ba527
+Shared Secret A: 23409df6197cd89a8feca3977d0c7fe20434883cbe8b3f887083bf227a7ba527
+e033a180206cea50e15e2870b37dd84ccc5b5c723b85d52d3aeb6f7b049ba8942072d88dc103c035cf13f57e2771cf3fc9668f271c502e83daf1d1ed773dc66ce18d46e4c4320017d8599668152e4273d0dbebf15499675746d02cbc3c715d49f46b8b59fb08506505782023a6ebaed03241cac1c66edd932d20ed52000188a7e259d98c355d79a617d33094c565315fcb98fe2171009621d085febc8ca7f72b739ee24dbdba18904f0aae1b322734fd4b5ff1606462cb9d639c8e9134b5c0af3e35b190d75c76a01e783bf1245d29606a63d926bcf2224f7e9ef7199fa1203e0d8627b8719c79cc25da3e616ded0d01c0e4af204ab7a781b3854acd350b9d20e42b03a44a3d0bbb40281b756f478a4f02ad7be1bf850b1ceaba5fa735f60f44cc3ebe49feba4331990eec12ae5de20990161eeb02930352c89ad3896faf41ff4a4306479b3a5a75beb96215b7ad65afc04dbcae4657422b626452fbe33d708991f27f2262c92a223dc0a9262a3374aa775bc9400dd61d68a4554b36943e2c33028b57cc90c5945ba78540bfa0974ad2f1616196b5e3c6b10de0bf45e61c8afb66255e865c4c700805b21a725ae5eab1bf2ef4a5be7ec052512f3aaeb605213e7a17bee43a8c9f2ffcf6a1f151629ecf44b0af0f19dab78fbea043ab3bfe32337d24130b9ff309c3254af226cc30373b601cfa9118710549a7a074c032f26c4201003eb6719b2d114a90b758f60523bf9747703ae33aa6d53921d7615f6383f87756b19d65a9c3b805f4a5423ba30c1a0b00eafbbf4c664e247cda362cfe937970e0ea11e82761c15127c51bc6a9b9acc96dca85483e41b80a60dbb6888e8e22beb08256deb0af4734d059a0328ddc1ba0b432d8484c0b103db1c2e66d01e54fd7d4a5ac4ce7f97f3c881f29b12dac452f3b8faef51489c23139d33773f2dcaa8a09159d46dc251121b18acf0ab4a53550588b78715dc2ae75e5df4a653c06b69d55befc5811bfd63f9cfa31511900abf0654d231cb22f7a27a7585e0d725e40654a2313cad95bd08d7f4222e1acb272531a0c50445c82a35044d4d2b9891322bc9bc62a09c7b299dc74054b992b54535c954a81f8aae8bec2c4f88820d293bbcd5e56db34e7fd6f66791be45d7bb18d51077b77e78a550b7f4776eeee21c516e19025361736a397c9984d46dc0e4b71b210fd3fee8e7ef5851bea53b5f2c7b2e54cc37a9f2e94b014fc7f5b3889c88f53ccb545726b162b3a5a9e366b17c6ccda0529a1c6a027c3b0729a564ea2f22b5df0f87f96557428eb5972170c7848134c04136b8892c27640ff57d88f17d296165b89f35f6790351c1cfb6fcd8f64d0341995d538ee93cdc650a125aeae3b2cff5646440521647678d962b31beffe03b23e49444957aed4a91fe7c694807b97072fa9ca9ebcd2a7979e395f4bfed32622514145cb7f9a40b62dc8e0c1cbaa4539add7372e4d26e120d3fcd8cb2231712af56dc4ef40701680562ab054f23a4a3f3d1e4eea384255a7587ca0db3a5e7e8e3007bf67a71af318029c309c0f27d031ea2daf29610eec96f0ffe620fa8135cdbe72538ea1d4424d9266ee26db26ea49319701c71d44d686eb8ff43bf12e3bc3b4fe582edc852be9fdb6293ee8d3259d0ee3c65271348b415ab291e9c3435165f2b03c696193476f7148df450d11c6588909f9bb5cff965fe015cf93a35e47d8c72e60b61ce81287f684d197762b17b73f064d853bfb6670e06baaf06ce9ef7befc36e3e079134e39fe39a0f592e2144d29f77e842ed07511b530b4f547da6f4fa3a440b6cd3d24c3cfa89168f2f72b173a1c459bbce7fc8563d8b7f860f392fc737d109fc9c3a5d8d7558d4482bc031208cfe4533e9979c71ac59fd6f5f8ee08155871ceb49a8b20f6f687ac11b3ec1adc66f2b76582996b6c738451099ead977adfc575ec89bbe7dd58a3b5056a6b0a6862de78352ff7be2061017edf9810891cf57a3d9af31ee7e2916510600b712895fc0ff028a1d7bdefe45647837780a135bb8d871e828d3f78d89500ed4a466b5140f31c4f2bed35393f7022c01f0a2ddea2f781f4ea65d50f6447f97194ada7154317ff678e67c5ecc05328d7179e4ba0c7017909f71864a7bf31fadd1f9585f0cf2ddfe71ce6a6e232a0d853102272be58fb5db95cff939d29e1425298496c278494d648849bd4b40a1be3504cc
+Pseudorandom shared Secret A: 9a4bc1b2cb506e8e51b61a3d3ed76dd3449df2b443d6c288c100f1cfc03b1ce6
+a9acfdfd4926942f364361bbc88c6fb099dfba48502ac87348cd12d556924c4f49e0aba620d52322f200540658c370ae5ada496969200b6c2cdc179acd2c49d7
+Public Key: 36c22505c463e8c513b2f146da7c6f5cb72168d39f11e8b428361b40eb4d48187000e59e6a082a7ec6770093ce2558b14d131edb865e47f799559ac0d95a25f2a25b3e09325fd4621a8743b04cb0cb81864d345b3d6c6186c703395c783a8abe6d10b0bf96815ed17435a29f48e59ade23a56ff44825e3647b7407eaa9454d522303873c24b503d742ba851bcd1177c4dc3880991230df0b20976c5cc673231073a5e202287c58ccee800c52bcc647709de9203620183c0f817a4cb85ee71a017b196704052d0bb99faac375e1099e43257b456ca5ea2a3ff263a7ede58e1e807718730218e19750fb0cec1b67e29b33762229984691d01b7cac0225f323a86b316a69907b2b0c4c2d0a19c4eb9788a58df734c4ace16667e138c31b4e5de96a5f34301a7069d70274f3153ef3d560d426024dabc23327b8938ba18a089e3538bfc6c48478484757804507dc460d479712810a04557b7ab8c5ac95b3c57120d9b6c64f25299d243da43c121571a2e71b28d1b5a424c10b76004e35a422e21a3723d996d4895683ea56b240468e0cc3a2e2686558ccf6c6164f6a4ebfab3b242b437dbb8812578303b7058bdcb2f8e785355c37e70737b60864d330153e0657af7676aef87fb8027f3d17a7fcb53a470b4f18120a6047a599c92fbf00a7db1b752cb45581dcaa3e8acc454a2ecd0a38f5c59d7451b778828ab93b8c13fb440aecad8da62d808950a5564dbcb5889b4c829d41824776bcf4029576f2249bd16747f620b91639f0fa1ed62b659f75afa342b4ff2c7fa9859e59a6124ee90b6546595a0b875841660a61c0e3a43d45009ade81b1abf576857b9c7e94447c8abd719b32f836629e8b6115901585c815b18476d014824c5b5df7c7c27461a7d72630a17c852b7516174a5cef2903081037a5689bd3060906406612bbba150bbe2755263ff7492a201e80559000b453b77246a7f70b03ac0fb5042002ac76754742e3eb5d4cb090c8ab41a8290dc9936ee6dc9a703366046755ea7b3d8b105c01e59905e47a20e4758a3a7fc630b36a4b4b8de11be3f84fa0648c7263a5eb2b736673ae1b619f28ac1087ca36d1c51d11b7c071bb1b8283c59db64bce9b2755b62f531582c1740421c5640c69cac7206f9cc95c14490d5da8905df287cdb58e30e8a6495565a2d32436c55fe074b297c16cc0794788629f45c66a0439ab06a88c0e57536c265bdab290a8f80ebd7447a11665c851aa3940cb9aa6be7cf936e8f070a39b8c2f892ffdd192939031108085b1569785503c2d7503c98a6f141c016d853c1621bef53224b892c552207d7a5255179b0ff88aa98b79b0db39386f929cfea3176aa82314a038056cc7899537f79c9055c438f43a680b6671e670848f199635f65b1aa38fa4b55ba6c7a9d13a75120c5ff2141e2397cad37366cb14cd67fa5bc3f474ae219c740c6392c1225f52bb2eb61a5e3340964128d5e22444d149535313067c11f2a95c8ec89ed5158fc1569fefa68cec8b285e473d9d0a783f736ab427adfe508ded57af03dc468e59aa9d486f0e45572d5807be512b5bccc1805105cf240c6b8313ccaaa55065712d012bdc13c6472730b9d098cf7b9aa4e63fac7a0c5559aae0578db146074c472142153f53c43ca2ea561e0c44d1eb77d86960c13a08a52bc200e3253052bab7f34215bc06bbd74e618281093527df911c692c5fca1b9072234494a9cba47296d2c946174a341c2675161559d2c5404d26bcd92234ea516be46b40ef208c82c079c645cd60e51b06129cf207b47dda8d394887e78292a7032840144a31e37cf5cb0f172a6e5537188dcc1c7e858020a601001caa40d0c078e1916d9b78f8e40cbf0c5dc05b599463aeb65ab4758cbb84a7cdc98458da5a8bdfa6bb27f44b6a38722553b3fdc1a163c28eeebbadcac491d48ba1f9736cd942b5220bb2d22ac12b236c5a9baeede0b2cdf29beb137a90965773071eab457886e2a61148502c5c39cd27cc4ff2690b9728a609ba7c142c4fdb6989b76e8308922683ae2bf47780f06308b260c095a3b4c0348d273fd24ca281b842f2a981bcc85f325869fd3cb96b94928e180262b55ebd3caa895ccc784983eac8a35bcb0cbf948101f6af67e02a52377783e67c2a01bf6ff79803f483efe6635e94639227a11ba34c4133572f1bf0aa4cf2d2f10893bc8ee5e4fbb5dfd2555e66adee
+Secret Key: 4f7888df201f71bc8d79fa3be946a5b71b9cbc577789d87f1f0b3dbd16089711b7b2ac33e3822fdff485bddc4b1f1639c619369cdc21d0398204410f260801c1c84a0cb0b52187b1f6f00f46d57b3f2ccf0e02485e63458b15c48d688890ba2377d081da70bd5f4c1669c2bd2ce96f2ba238b0b5b78aa02c6e1189147893cee09982c75820486e3c6598def52cf7da46038640c343a1a4d15aed66342034721eb0938749137d30716ca36325b576b63563641a13f4029d10f0befff250d050392a6947260638ecf81e480373e3b11191b2cab2d55b5ec069400c2c4ad79909cc8206237f887bc870c128ab0b680cc7bd27c98ce4a586445b42072aa62ccab0363344cb160bba3473b320b4d653be1c054ef3d3838e20b88e07235846839739563e643ef8c6ac904322ae10523ea952d1615f080545c66033e692a720d895b4d03084d9cb2b28bfad0b42e6cb24fe57a783193cab99661bbb0339283e42d89731d023cac14ac98722d5916e66c3b4658a6026eb965e8889b114687c617c0b897f4d920d065c963852c298f54b4b380cb8077c22719d17998b626cca22e89d3ad8186b5663ce8741f3f38d01f8ba01c00489469af3e3ca285678171ba6995baff974a86620be58e85f64198e360b40db2979c7d36972db1299c6a59517c3ff044fb6c6ba6ef29460c095ad217d997c6db28902d094127b29198fd9291cf08200104a253a71a0dc387d92653f82cef9416e6a3254a71444280276dca4373517c98595b2a5c070af482f9d5a39f74144b76247c357b08eea7fb0e6beed3b87e6767a17c88f2aa4c83f781eb902b38af2a6ce72aa2ee2670d8134c7f30d27bc930640b958ea17588c3f9f55c1de103745b849caa929c36194e1521bffa6494d396a2ad08199423872eb1dc5b588c7792c87b2b53a757c7c55a764d66e1b2976c5a7bb75028d5aac84f2e6ac5cf0808d49cbc5255dcc75195a4915e3728492d8604d76ca5fc239b68a1da05a303029ae8df3b4ac73ad22b5564d0a53a3a3c34c9517caa43ab30172e859932af50b4d0b174b23cfbe1104a3084c72b78d8d2c07d61686553683fb0c672720c285ca7797d9696e48742d058cadb50c1c1347c23b6b21b17cf8e988a238c7fd2871f2b8b10498a823f37f1918b205dc627234416c697d1b394b001ac2ddd8c7a6772c5954bd309c0c6f4637a0036d75ca2204155ecfaca64b35bf4ffca1a820cd6e0820e26381b115b2846ab687d21a9dab97d63a787096c744768c20d596efd6a12a9acd9f122494da8d1c588b9324660d7644f3e478c4fba40de1241dca8e4b871c7ac961cc4acfdf87696f1cb590c60420b280f517152a9b2fa82ccb2fb700e4196c54b2b62889cf61f1c9c4f6642cdc5dd6104e0bf9a91c03b85d6aa1ba0315a2819ed70825696750e0203e25da891fb37c08401aaa728a279ca0b33b47328290b6c63ab0e034a8b9b2f44c87c0f924d0f04b6b1c5d5741462ebcc59cf6186e306396c5cc157cbed7d39e7d1576580189bd901923368da92b3909758f1ac4c8cb4806b7123cba60376be4a3b1c0837908b132f8c25da1cd2e7c123f7441dbc769a0704719898cadc20ddb886c24787b0778b510e6716a39a1c9830e76e81ef08467eae06728115293ab012b2768dcb8a0d562739ae49916e1979fcb76bb99a2f3fc66a781061bcb05210425d29679104a15c398766e329582a71f0c10ac73826b9ae918f9928a4ec61b859c67ee4cbe57244a3700b0c2dc7c24a338f832a8ec8c39df9387c3dba627b94a66034431f12da8e0b2ee18229d42698cd415a4f450248952ed46ac9d8b521b2a4835d5991192bddfb36c4dd98b7e77769499adef753c6540a03353c2c2ac4dee307edb4a211faca5e5286c9a49878ee2ba6e5ba0c4697fe79791414caae6a44207732d59862ec67c09ed0bbe0dc7666232b49b066218134b882c48ddaa747d35b6f41c4a6244cc3f6b9057589fd58071b63591fcc6c635947b48e86fe2ab095556859ec40e5c0371b981355113491099c90b4b38e05293e665639e3174b1610f504c80ea9c62082063d28287e34a6d2a2c7bae818509f5265d928fab436179062dabbb1fa1c8b1b92589cfb24a812a061f511548f654a1c8c508157a909596ecaa7158e0c171d48604fa6e36c22505c463e8c513b2f146da7c6f5cb72168d39f11e8b428361b40eb4d48187000e59e6a082a7ec6770093ce2558b14d131edb865e47f799559ac0d95a25f2a25b3e09325fd4621a8743b04cb0cb81864d345b3d6c6186c703395c783a8abe6d10b0bf96815ed17435a29f48e59ade23a56ff44825e3647b7407eaa9454d522303873c24b503d742ba851bcd1177c4dc3880991230df0b20976c5cc673231073a5e202287c58ccee800c52bcc647709de9203620183c0f817a4cb85ee71a017b196704052d0bb99faac375e1099e43257b456ca5ea2a3ff263a7ede58e1e807718730218e19750fb0cec1b67e29b33762229984691d01b7cac0225f323a86b316a69907b2b0c4c2d0a19c4eb9788a58df734c4ace16667e138c31b4e5de96a5f34301a7069d70274f3153ef3d560d426024dabc23327b8938ba18a089e3538bfc6c48478484757804507dc460d479712810a04557b7ab8c5ac95b3c57120d9b6c64f25299d243da43c121571a2e71b28d1b5a424c10b76004e35a422e21a3723d996d4895683ea56b240468e0cc3a2e2686558ccf6c6164f6a4ebfab3b242b437dbb8812578303b7058bdcb2f8e785355c37e70737b60864d330153e0657af7676aef87fb8027f3d17a7fcb53a470b4f18120a6047a599c92fbf00a7db1b752cb45581dcaa3e8acc454a2ecd0a38f5c59d7451b778828ab93b8c13fb440aecad8da62d808950a5564dbcb5889b4c829d41824776bcf4029576f2249bd16747f620b91639f0fa1ed62b659f75afa342b4ff2c7fa9859e59a6124ee90b6546595a0b875841660a61c0e3a43d45009ade81b1abf576857b9c7e94447c8abd719b32f836629e8b6115901585c815b18476d014824c5b5df7c7c27461a7d72630a17c852b7516174a5cef2903081037a5689bd3060906406612bbba150bbe2755263ff7492a201e80559000b453b77246a7f70b03ac0fb5042002ac76754742e3eb5d4cb090c8ab41a8290dc9936ee6dc9a703366046755ea7b3d8b105c01e59905e47a20e4758a3a7fc630b36a4b4b8de11be3f84fa0648c7263a5eb2b736673ae1b619f28ac1087ca36d1c51d11b7c071bb1b8283c59db64bce9b2755b62f531582c1740421c5640c69cac7206f9cc95c14490d5da8905df287cdb58e30e8a6495565a2d32436c55fe074b297c16cc0794788629f45c66a0439ab06a88c0e57536c265bdab290a8f80ebd7447a11665c851aa3940cb9aa6be7cf936e8f070a39b8c2f892ffdd192939031108085b1569785503c2d7503c98a6f141c016d853c1621bef53224b892c552207d7a5255179b0ff88aa98b79b0db39386f929cfea3176aa82314a038056cc7899537f79c9055c438f43a680b6671e670848f199635f65b1aa38fa4b55ba6c7a9d13a75120c5ff2141e2397cad37366cb14cd67fa5bc3f474ae219c740c6392c1225f52bb2eb61a5e3340964128d5e22444d149535313067c11f2a95c8ec89ed5158fc1569fefa68cec8b285e473d9d0a783f736ab427adfe508ded57af03dc468e59aa9d486f0e45572d5807be512b5bccc1805105cf240c6b8313ccaaa55065712d012bdc13c6472730b9d098cf7b9aa4e63fac7a0c5559aae0578db146074c472142153f53c43ca2ea561e0c44d1eb77d86960c13a08a52bc200e3253052bab7f34215bc06bbd74e618281093527df911c692c5fca1b9072234494a9cba47296d2c946174a341c2675161559d2c5404d26bcd92234ea516be46b40ef208c82c079c645cd60e51b06129cf207b47dda8d394887e78292a7032840144a31e37cf5cb0f172a6e5537188dcc1c7e858020a601001caa40d0c078e1916d9b78f8e40cbf0c5dc05b599463aeb65ab4758cbb84a7cdc98458da5a8bdfa6bb27f44b6a38722553b3fdc1a163c28eeebbadcac491d48ba1f9736cd942b5220bb2d22ac12b236c5a9baeede0b2cdf29beb137a90965773071eab457886e2a61148502c5c39cd27cc4ff2690b9728a609ba7c142c4fdb6989b76e8308922683ae2bf47780f06308b260c095a3b4c0348d273fd24ca281b842f2a981bcc85f325869fd3cb96b94928e180262b55ebd3caa895ccc784983eac8a35bcb0cbf948101f6af67e02a52377783e67c2a01bf6ff79803f483efe6635e94639227a11ba34c4133572f1bf0aa4cf2d2f10893bc8ee5e4fbb5dfd2555e66adee1dd8471a5b03a297ee48a09fc8d43ad0afaf6aebaa9f1d2f73abf7701f51cf5349e0aba620d52322f200540658c370ae5ada496969200b6c2cdc179acd2c49d7
+5460e65834cd4555a88cdf41922331ad67d56afa39c076dd5a89e64d9221ff79
+Ciphertext: 1b3b17ffb92835076bc3aeb0597028a27a9e0feba930f05ca3ec7ca943d309e7dc6abb9cb652ff9bb80ad1cc62a8cefcbbf80cfc5c0ab27c51ea3695d814f00b75ba70d21bc69e84d9e6a83246fbffd5d3c87e25be1e401727a00938db674abcb278885de2cd09ee2e589f4bd52ae2c0de4dd4504ebd6c3a434834ed119cd979f774e3d4b7ffeeb34ccc968dad126d2e1238be570bb8c24c40f02c895641d0f9831d8ab33806923e962660cd9ba1d0c0c5e3985f12ab8fdec01481f9684402b09a0a339917ae63fa7d0ee653f6adb3e968dfe64ba8ac559eafbd7f8fae9f24d291b3d8be07c7bc576492284bcb7200939e04e9e54366156ef4a6d9cd640a298fc61c7197ad886103d14f0a431648727bea43e59af1068d59d414095a446c05a9a77d42ae834ef6c1ad26fb9172760c84730fb486e4b8191766fcc35b2b0547bd3b37a545f0635b15167c2a15ca50759f93847cfe19cc4a62d778ce669627ae67fb9cf8ea2c954043deead5faa841b14962144932d76445e910f352dff761135a2591d6477771c25a776e94e99d5829ce024377510ee5fc031ce173ee5eb1623a541791076aa32e9db90e58408cf5203e6c3a53df291c8c35d68d884b977c72f3f391b2696076f2822bb02631f6db2f75297ed8c221fa26d9b5aec5ec7cfedfd4859a4c5bb760fe0c2b195cc0d671474c89e9d5328f034dd832d9c628c69488508e2395aa2ffeeb51231b1896ffa05f67ea8feaa6510e60f150fb4b702ae2c3b53d722f152a13c7924be586c8d95b3f3857a7897e81107c09eb950a61ebb4608b96d98896ad709fec0b0164023619495773c2a0899e82921cb0c047edab790144986530d816c28c5fe7211b16bc2ad97959b0f94515e9a39b1cde6094899b26e5e571f28240a350646191f59c268d8d4f0f6be6d80100dd669717ccd76f137cf53d85d20ff526ee867795b4a4da97536ae7acd36fb37d97cfe974184f6db08b30d6a4717b4830cb194e2cfb92437240d42fbbf3355aac690c73fd4cb43c1eb724c2a5b282b2fb178672c38c17bbf12ef838cdf58dcacfdb50131943f40044fca28b664dcab7f2e137f9163097e8fc8c7747982566212584887814bd0bf90ca0d8c1ef33907bb65db2e9f83ce68ba92d6a61619b5991db7ceed0ae68de99f88469313417c5fc90dbaa5c20b7776029430707ec1a1430d304ed8a2e0448f77877a88d60b7a9e047e90652332146ef5662c5289ace556475f675ca27f8adc25b87a6a2dd37f2f25b793fc77542fefb281e751d6074632f5078539dec9dc6e9ddeceb98d9362eda107c222b57f9cd4b8afc9124bf7035661c8bc3e6c077a9102cf2d7175b5aaf5868aea8fd77f9457c3cef0e576c059163cfbda5950e3c95758ac58dae102a9281c1a2f033a519f14b15b8d325fe5b2edd8856435be954d256257ddee3e8956c6783b7f4ddd0348618709e490e46506cdee08b5e92c532a9260cb694ac4f06a59c46551f58cc932fbf147202c1dcf7f77dc42b7f1a300513211930c70ab68ff9e9caaa3eedc465e2e90f6bfb1d3a20bf8331f99aacd7cbfa42eebb3d32cfdff0713635b2deae207fa28c7d155a01c5f4ceecfdf1c47ae4a8774e88c09edde00f974c0a90d3d0fd91517483b6809504f7df2d87f93a7ce9480eb990748c6e24b52cfeabd3a852c0f07e96f42218acaab2d1108e7bec43ed33a0da368a328c6f3a549154f1aa528dacc8b11284791b37b0bd28eeb40b0f6316fe8b493c6d9e8b0cb3143db4579f625fd7b0d9027a20bd823c17327552a2d7419428d0e5ffb52a5f60d2fa336f30f1f73e02eeedff3e4f12754322c7eb79226e788abbf988afa65f28f682084c6495ddbf9809c9f5a455d6c4cca62a45bd4f4b7eb1db45f30fac535bc624c41f6fbaa5ff6bb54747fad0e38c85af0fa506cef2d4518050f6cd4b808bdc6add2aaa0fa94e6acb0d65d88581d53c59b644ac3eacdfdbd7cc611e376ef508aa8d50fcd06f361ff1c89cc82665b1e0dc2598956ce5ec91a789150292f320700ffa1557599a560cd090cb40e0cf68aeddc515914840daeb68eb89513027acaa0c5efbfc87d912524fdebd0e0c175a06e91f36f5c25be27db70c51f9ec9fba37e580e594860c6d1d8e173e038769cfada3932dc8c5cc86379b79b95b8c9637827f1cf85a957edc68bf5e9deb9c2d0768970b55b5c27dc632e455
+Shared Secret B: e9e4f6ac37f49cf2820a96749fe7450f721503d04113b1d6e87142cd2cc114b5
+Shared Secret A: e9e4f6ac37f49cf2820a96749fe7450f721503d04113b1d6e87142cd2cc114b5
+9987e191a1931c95884b65f8ad40cf3e4dd5e7de349ad6cebc11e27737efd083a15d0c5d8c60545b627719ed9633c651a9a56fb555c87814592394fe084d896ba6cdacf58169ff9926e495eb85a5efd2c20eeba3df81231254685c8801e7e5ff6b370aec3b979b88e2dcc6c51cfea293deab0e6f7552bc9051912fdff20f1ff8cf8b43519971b6b74444816a661047f997c422e5d371d96b00ae0839948a3be32aa7b4a4a6ad9f00e6e6e6b2e5d6b60431d7f2c8eb27b093c2baa55c565015fc70c1bfc6cf1c8312b6a74ad242466d09c84c5769719e04dab40bfc9e883a5645d1f53fb38557e8c144081fcfcfaa64b72d482d5076cb82dba1fb227935c0558a669cbc151c20d55ce913a9374f866716ef1c1bb532d193faffc025e2456932b359f060ca2f0f7687e3a6fbcb3542b5a0a6fb8eddba6cc20a2bc62bca63be2b37d6118542f858cf44de81f40fbeb33451bc0f9478d5b89d6d76357e45051c18bb33f250e006f1b76094d5c2577e981b3a45d5c8c7342990af97bb74a3b4ed400e7a09d13a37330db4d7dc10605a823595b3a3a784d530e2e1e11c315527ec2bcfa4c0f952a45e691448c92eb44f3da199823a2a9a6a4e3f2a7f1720f487baf883e6d9d5a69ca9d529c70a831134074eedea45f3b53f2004871d7e680a777deb3c17e714a4ac53fc3ffedf08acdf1eccbaf246a2afd830ac34658e6822ee03faec79b7de8023e0e5072fbab9e8a8d9b3848ba2068392208288a50aa8cc3f7c13c7cf4fa9824c29f77a760f0c295206cf5a41d4870af4ee9553b9a37ca8798c7f476f16001724517f50bbb0a7605e83a5660dc177908a11c41c43a1550e75ebf4e8e17dc50e55015a31e5eb731831cbb2ed541fbc3a340170292f2ea5e62ce8b88c94430e6ec304c4e20522ad0a0a7a8ba8cef5c00c3e995a433cb6b59ff8f7aa9b32449291039e62eead1f21393822c92dd7f8a83827a2376797d1bfcd5b698527707bdd4f220b9d92e7496eef569ac9109f4439a40f5450523de9ecf5f8ef4b472649a6f3d2c62e4a7cc72ee4f36e15d5f3eec39a8b7c2db2bc4b36528c0e63958729b689ea4c8ee8a36f6d6afbfb98a50e97b75e7e85482ce08e61c35a6af4f609d746ba083b0c156ef4cd567bcf2105b5c6d90e34deb36fda161cf64a1c4cf7a39658d91cae7d9234345d719e70d3e3bd21cd52f7a6a0db17bfdcc15d85cc292fd344674795b81c8fb7132386eb8af0e5e3159f3e2b9d57309a082dec317a05bd3df9658775e977508f5ec1b0e3ea2424c79bfd283dce48efa99a920ee8540c554f18faae0ddf2a07abdad49503503b8039074085cd0e0337b7d03cd16c4a72383bd736a2de6938f9107c75af6464b18cbd91255c502ac70d66b28c1f813837b8a9d715fce514da78a77f1fe5127d7cd981da296462b3095107a7a9c9f3c9e463603f5b664cbc9aafd07f875952f792e15eaa4c1ab1b6cf9fc9b3ee83e54d9d0f5c9fda1a33552db907c11a770e2074c9f262fa7affb6803c422e21b0924f74bf5826e61ded73942b7e8e7632939ded9e10bc71a9ab05d85adb66c7ff0febe812a7b6f7d8765589a9b6149afe62d69cd20c30f38aadad911362101c370706202e2dbfc37a38a74e6879038e374ab09d8a1e77a871ae0672b45e6c7df6493c10a62b608c1dc1972e6686a44268402a51227dad2ab9ba9db01e14b184dcc4a98d6bfb5a0d1179198049eff88257cdedbc2396e75e3af26fb6d16050d460683d5cf79cea43e0e20163d993acbb0b188eb7d39f6b304712400df23aabf97db252a874304f2decea932eb85237f2eb4995e537cf149226cad3c37f9b6e822a7da69c22987503f166440340d9ad6e255982d57bbfa79664509b718e9bd2d1f22b64f0495fbc2c82801c83056e45528651bd58f2ed84830df98d094d19d1c457ff287a8dab62ed7cfbd02c79c1fe02975bbff38ea5691312567e9dca83b76ecb3f068896dea338b8bbb89004d1159d563827d2aa32333146951c912d4407fa155cfcfa058b1c79518c62ea49ee99fd76c9ef74344e9d2f9ad828a84e693a471a5cd4d144d5b2c4f24dbd5d15b628dbd906d1bc2c07d4d4776ff4df1591adbb58f2e68649cfb76e4eb513c7155a4600808b31eb123908a168cc491145ffc3b177e6ef125a0a7b9cdec4c5ff8dd23b9363bfe36024538834628b2c51d4006b2e1c1a8237
+Pseudorandom shared Secret A: b0a109bedfe12344070b38264b1d2ffd1551f06d77463a3b93e19497d7d8749f
+f012556160316f659cab6895d02c47deda1ac4ae347cc23c51d8ce6d6a8d29e7c70fcca770dd361562b612bd2731a4738c9b7af62e7dbf290b1f530c6984148a
+Public Key: a7030074a0c54bea09e8b7a3b2cba68d411ad908b991a0ad34b26f378c820b74b6e8a4bebe4b2f6eb7cf4d435c390555de44b4b8a5a60030aa66b84178d9b85f34a7ed03b9891097e09057d3220ce4f07f11cc603149877fb02eb09155dbb0c040b2668cc1661272cb1a80903ac72abf128e564496d465058d601220f0850c1390cc662149b0cbbaa7885bf18ec49335befbc04da7c310161a3f6170dac0176e707f00e45aa945ba99b93eb65703f6f733b7b462809b6c33770b2adc4898f6b55e5a08b83113ee55be00a5a5198539fcf0387ea38cc897b474f7a345bc7907b9cb9bdb0ad1d103eec1c16c27a20a497398644cc7228644c0201e549b9933a443f218a8c5bc3342ca65a707c7e70a73148a9b924f8b8b65f914947681950b8126c80356c8f51e5445132c43c53252ceb643676e75c5f3b1c4d0d844d8f513e266070777005295cc34a0447d7c4bdeb56da426a5ce52800c3a2d4b9515f019cf86b1ce5f95abc759009db18398488d89640c38b0081d22488fa4caef2206b58280fbd9a859a94099d503f66066d0f86baee19a462cc36c7b6ce4617e87020571a3a8c61554f38307ac8141857a80fa2c8ac1e08aea819009046fd6b901ac3c2d54e91ff35cab0d76358f6ab6c3a0011fc186615501b5533c9351cfa23510f222bff803b202012eb3e790bf4555f9bb0022f424f660c5db05bec4b0c403b7b43928a8f327ace3399acec7985bc89fae1caad269c688a77d1f32b4537b9466809526161b26bcb07e0b212f093a98caaff3336b21b2078dc632e1bc5d70c5c6e2c3006697997aa64ee0905081872b42e168b5a10c76883776a0075ac697423a17e502c685ba64d59801dc06586c141fc73a28cd535cdb009e59607c1124002d7bb44c2671b3a57f6f4067de425fbc5528004a5d68e89e0804b417853f19711bb6d32230324155030bc2c30e4c8687921505ac446b7deb6383cc66f0c169ca812576f5394d03c8a6c1305890842412a0255c361926765c46bb0ab6b61a79ae5275cdd0e449c7880494f977742c92961228e68c30f2e172aec61bd7034ece85811e10aa10254335368c05d5ad1c1490f73a0ae8498e49025d2f5cb06e825682518f554735b68807e1c1bd8c229acc8c30a9a3a7cb01a93382ab47fcb9c30969c79c9ff406badafb650b74c6eafa6c9696a043b17f57184125d9734a2c2fcae10602b74fecdba04ae285c031153f905037c87ee9c07540ba3468b8afc0c1b69f55bfacbb69c9323200e63ff0ca7e6023233cab0f88456f07035e6d3b8b3e0a1ed608977f2890d85778f164392b209d47c003f6f398fb5b4686e2389433247d10026531245ac3126ed862609493a31ab7a9154a30561477d6b628e569ad3bc4aa34b54e419619e3622d9904bd2c74496509db1102fa575f8b048193d41cbbe4686ec00fcc76c2af856ff016c046a863f4845f7e737f02d508bfe3b46bf1bd36c664f16a747d191d1f83726c577e554badc52b7e1b7c9a4668afdae8523ef641b2538a9d114f1ef6272af55a8b6a5d65174432ec6884c88646e0b282d7b112216848c44cc5b9805fcc77fa44b685dacb49e664e525c04dc692fa018d6ce51822c85840e6b26319b518cab182f7692cc24db098b3e689ac418c590a606fdc720f89f08f11d3062c67957ae6bb9e8124288a59b4b236d030522361460848213409b15557385678adc6892aa6945e06b9bd5a919477710562cc3a58f42a2aca7427396968d35bba7b6d1cf40097eb26e1966cdc403c25fc5a45011ff578cd52825ffac89e935366ddf644856878bbc400f53cab49291ff3631e9f2a2f6991cc264b6d1d583b2f84ada6458796d5a836b845000454acb1202aa4329c41421b002827a675b16ac90bc400d9257404d7206ca7b18b873fea71794a580221f07e7dec443fd83998ab3a3e573df5e7be29c8cdb5b933b2943e0dd64b88db90d01cb068101f48f8404e7a9aaf073b21e98ace354430c7a86cd6cc751ab57589a6f957ca23a4a9962b9eaf429ffc24c35d06a24070cd6cc16c8b380278996938225891689488e59e8e605e72269a4767c9514670621cbeedf0a7be34a91656c5c2688595b2a30ea59d178831c819100aa1b1e1c75d3ba45265607bd771650a42abaa622a6608bbf72a34b4da7ea7a373ef3a1af4d11a642c57f5915637ca7fb88ad8d405c0d22683f250
+Secret Key: 6b1352aca0519505bdc79ccbd4a24a7b381f62f63e30e2748bd4112e0c4490db4449794fdc1c63c4c0affc560eceb6afd4d95491755496519e121a48b12a1480da455c8c0c44cc712d3467912222d8317d0ee1c1d36c9610620b17328775165247ca1bd8c7b38a4a86fd4683f66420e5a45ba6533341510e45439b29f948a15a440947749cf592b33c13d8c9afe6919910d73d651a5920a93dcacbad14c818f301570d8c6f69e465d3b53f19954391803fd3e0687c8bce40190c04a421c8f09d5f3104eb9372bc1b58b9e83b1c169a3ad34c3c53546f05bd1314078f476fce805a9dbabd67551a3f10580f00b64298683eb82f1349554917b83915bd0f439db6610f40699bc627969de5b254bab335f256a2812ee94c1532b263787bcfa12b5369873f99455b31c5a6e7780c797855771532f5770d36087fa0412a45f7c4aa459980283e331612ba3c04520834c65c60275c899cd56b60601375f9807a91afb5d005fc86cc17cb56dd83a6f7957dd0f89166aa0ce3969ceef1c5161ba24dbcb552908b04955a71526b3e093401e96217c280ff06184e9540c4d395396c36af91818c7b672d6bad12c14ecadbbc377c4885076ae5bc2b4d2b25ac90b76ebc1b071390201b6768e29398b9798ee448498889f952b8450b6f53ec4212a01a46f41fe1025f94317e32474936b707f0417ba87c2ac3632158a9c640046511047179b81202d42a07a10ba4831ef34a0585930659c6c86e98b8f80281e7082b7fb8976ae4a4e4049a2ea976c6507eca8329ba260f43b5adec82396c2c93821298dfc492b8219b5487c52aa09296db6b96132ebf759f33257d0edc92573269cc9088666bc22be4c43cab58ce9602ca34357a2bacb8f60460f0914bcbb6fae34d44e06607c9099c8618a24cb5d52063e6e188779c2194e4a5521b89c1e80c0de00a87e67e2fa59b29794a0617c295a88f42d998918caaf1a9a2ea85a39461ca945c6959e353d5f9222074393d02906397016b558d04fb67bf609242403587bc71506820b6256a092c7f7a22993091169f51aec26c0a06ab90c03104493589d1e840e00bc982f83bd5f48a1ed25842c6c0a2daba2bf06db4098373f24b7e6a6ecc3020148c9710e53525fc5dd8b75c2bc6bbe4d9a5a312260c30c83e35172a75c61b699421252e4371ba3bf4105f19a0bc9a5c8d58cc40c60d02b80768437c8ce4cd5c8a7bed967eea029d154b4c5a5c3c2c46cd412c423ac8be6622cf5ae36c8540b001f67db2a367ee522ef6827e672430c028cc0d9c06f072533ae7a9b3186eb25435d3a6cd3eb7213743241bf1421ac20bd254b1f8239fbf498fafea06fc6552f1902427852fc7e383f5f3c678d48e47fc0348338e71b85b3844630bfbcf1ab15daadc73a0b17e193cc4d6fa1a2cdc2bcadc6c4ba3bafcd54156427ac3852a18a45bf1c1030a876e03b34bf2a2ae47d8b85de935c1c9742ae857eb647f6ca70162519949dc90ecc670c5064f69a8aa1eb6c362da7e4c8a59d309cbdaf4c02bb449dca5908ea120126bbff7561f67f61ba3809e438a18cec0afd9f6abb5422190ba731a95404a29cf59a62a05599a37912de4d126e8093a1dd8ca0e92b0ae7c8a78f1470aa2986c396c3220c2b69818b854cbd68193b775826b2502020c6b29dca52f997cb949099fb9036435052999235d889fda40a185dac3f514c97d415992c78bde52ab50cc14e64278aac9c5727b7c4215aac24a12da495beebc9f908006bfc6b86ec100c839676f0b61ec2a2425b50918a0807ed829882c4ec2da22615ba3f68227d2bb1da56b02c0614e681b6e6e720074411e43b99136e1b292974d599712f01767b4853bbfbb0c927a349ac70304801c467c8813347c9e22b78c26b9a0a37627da8deb4b98af370ec46bbaa40709d48979420283852b1a03b009a472bee8fb4112c484a211c158305806271654680d0ba859bbe92433476a932cb8719b8e04d8b280f0cdeba8289a98c9d0782dba7a7bdf49b34ec6014b2a4ede5ac3e4056e49d5a114b7b6e3052de96879d9318bee74b7ccd5b303e0230bdb7428f640cadbc04beca13d3b2a5a4aa973db98b895c1acc3bd182618525bcc33c260df038a16556ed924ca0ce3a2c12b5c8e7474cbc66efa0546b6a900c7c89b961114d0451fa7030074a0c54bea09e8b7a3b2cba68d411ad908b991a0ad34b26f378c820b74b6e8a4bebe4b2f6eb7cf4d435c390555de44b4b8a5a60030aa66b84178d9b85f34a7ed03b9891097e09057d3220ce4f07f11cc603149877fb02eb09155dbb0c040b2668cc1661272cb1a80903ac72abf128e564496d465058d601220f0850c1390cc662149b0cbbaa7885bf18ec49335befbc04da7c310161a3f6170dac0176e707f00e45aa945ba99b93eb65703f6f733b7b462809b6c33770b2adc4898f6b55e5a08b83113ee55be00a5a5198539fcf0387ea38cc897b474f7a345bc7907b9cb9bdb0ad1d103eec1c16c27a20a497398644cc7228644c0201e549b9933a443f218a8c5bc3342ca65a707c7e70a73148a9b924f8b8b65f914947681950b8126c80356c8f51e5445132c43c53252ceb643676e75c5f3b1c4d0d844d8f513e266070777005295cc34a0447d7c4bdeb56da426a5ce52800c3a2d4b9515f019cf86b1ce5f95abc759009db18398488d89640c38b0081d22488fa4caef2206b58280fbd9a859a94099d503f66066d0f86baee19a462cc36c7b6ce4617e87020571a3a8c61554f38307ac8141857a80fa2c8ac1e08aea819009046fd6b901ac3c2d54e91ff35cab0d76358f6ab6c3a0011fc186615501b5533c9351cfa23510f222bff803b202012eb3e790bf4555f9bb0022f424f660c5db05bec4b0c403b7b43928a8f327ace3399acec7985bc89fae1caad269c688a77d1f32b4537b9466809526161b26bcb07e0b212f093a98caaff3336b21b2078dc632e1bc5d70c5c6e2c3006697997aa64ee0905081872b42e168b5a10c76883776a0075ac697423a17e502c685ba64d59801dc06586c141fc73a28cd535cdb009e59607c1124002d7bb44c2671b3a57f6f4067de425fbc5528004a5d68e89e0804b417853f19711bb6d32230324155030bc2c30e4c8687921505ac446b7deb6383cc66f0c169ca812576f5394d03c8a6c1305890842412a0255c361926765c46bb0ab6b61a79ae5275cdd0e449c7880494f977742c92961228e68c30f2e172aec61bd7034ece85811e10aa10254335368c05d5ad1c1490f73a0ae8498e49025d2f5cb06e825682518f554735b68807e1c1bd8c229acc8c30a9a3a7cb01a93382ab47fcb9c30969c79c9ff406badafb650b74c6eafa6c9696a043b17f57184125d9734a2c2fcae10602b74fecdba04ae285c031153f905037c87ee9c07540ba3468b8afc0c1b69f55bfacbb69c9323200e63ff0ca7e6023233cab0f88456f07035e6d3b8b3e0a1ed608977f2890d85778f164392b209d47c003f6f398fb5b4686e2389433247d10026531245ac3126ed862609493a31ab7a9154a30561477d6b628e569ad3bc4aa34b54e419619e3622d9904bd2c74496509db1102fa575f8b048193d41cbbe4686ec00fcc76c2af856ff016c046a863f4845f7e737f02d508bfe3b46bf1bd36c664f16a747d191d1f83726c577e554badc52b7e1b7c9a4668afdae8523ef641b2538a9d114f1ef6272af55a8b6a5d65174432ec6884c88646e0b282d7b112216848c44cc5b9805fcc77fa44b685dacb49e664e525c04dc692fa018d6ce51822c85840e6b26319b518cab182f7692cc24db098b3e689ac418c590a606fdc720f89f08f11d3062c67957ae6bb9e8124288a59b4b236d030522361460848213409b15557385678adc6892aa6945e06b9bd5a919477710562cc3a58f42a2aca7427396968d35bba7b6d1cf40097eb26e1966cdc403c25fc5a45011ff578cd52825ffac89e935366ddf644856878bbc400f53cab49291ff3631e9f2a2f6991cc264b6d1d583b2f84ada6458796d5a836b845000454acb1202aa4329c41421b002827a675b16ac90bc400d9257404d7206ca7b18b873fea71794a580221f07e7dec443fd83998ab3a3e573df5e7be29c8cdb5b933b2943e0dd64b88db90d01cb068101f48f8404e7a9aaf073b21e98ace354430c7a86cd6cc751ab57589a6f957ca23a4a9962b9eaf429ffc24c35d06a24070cd6cc16c8b380278996938225891689488e59e8e605e72269a4767c9514670621cbeedf0a7be34a91656c5c2688595b2a30ea59d178831c819100aa1b1e1c75d3ba45265607bd771650a42abaa622a6608bbf72a34b4da7ea7a373ef3a1af4d11a642c57f5915637ca7fb88ad8d405c0d22683f25040b3c378e0150b87b451e2680a442e3d47500a8e8b953373b426e32f46c19f82c70fcca770dd361562b612bd2731a4738c9b7af62e7dbf290b1f530c6984148a
+cf14b53c0633b0fe2af12d74888ee7ca43b2655c11a76532a73cdb8824fefda9
+Ciphertext: 9c51085509ae2888b11ecdec39d14eab0ea3d91204d1c5a1bf0d69dfffb23dea73784a862cfd7da493c6393371ca404931952e1553624e6293394bb3c2016541b327f238d72f9cefc5d5a11832225fc895202b485049266ed7499b1032dd94527845ae6011a137edf9f35748fa8cf2097d45ef000bc8c4889eaecde44ac4bf02e997ac306616d8b4225147f7a9e1d78de56cce39eddccf4863e502ca8b63601399d82f6c9174f1d5ec4c8126e6b0a40140607fc21f89d43f21980e4d8a64c3c352c39cdf7dd5c3accb43ca423714bf86c8d5dbedd30e8254dd1f58441721756743fbff36dd548fb8dcaccb21a937aa5be129d92960a4818b26e30006cffe05fb573f33979dcfcfaab12fbd3f673d36f3a018df68d3bd832357b9a5d3de7a15c590adb48443e5997e85e8c1116559599764d269a970da9aa189f0216b46e1329d39d3238c25c43b69ff1df6a38e03424d7c896b2c088ee8de07f6229e98feb31e6c566c998597ca8ba0a762f445e2ac2aabfd28efb60602d84e5f0de1812fc5a6968e214cd2237e27cd996fe3106338398605290544d7b2edf94e2107c31c075936a28504e71bddd8ca396e6a6d48a5096223cebfb2c7c65cd297253c010be6f65076784db2cae501284679a82c0cbcef5e90b725a9142556a566174e25364cd9117b0d5a4b8f61c087bd9a44eea60ce5ef19559b41fb97302625e8ac8ceb8201ec9604791892752c9aa52ee2c2ade8c9137e5940cda7189b58cf0d49e92b6f40a79e1754300c09e7ef3325c5cdea1848fb0bc55587ef1470e68e4fc35c1c49bea7b95ac6298dec285bdb1c2862cfce49478228dbf8d5c8e76618c495a9bca2cc12efc0f1a2e88dfb7e24c6fee4555897715b76e32c1655969690f0177197953b66575b8f7d99686a610b939db3117528e39f83c6c91d669a636e5cb3125c2417f3d15f584f9a2a19316035f9bd1cfdb6860a6108600f130635c9b0ab9cb6d3a7401f2b06b95f214b3b666a27b34302714f0ef4a486ee0341f54c8b00da4affb36042f9efbf11b29ce319e5e06430f7961f31e9ac7f40a69703eb641b314420259fc4f1c2aa830d4bb23d612168dd277d96ea3265f6cfc3f6e73c85112504607f838f8a1ce57c595f742b235ddcd3d21e2a865d9df979150b9808c263d079bfd75effc48ee6788a4803ea3b0df7cdc250aade59a2407a5314dfe17a5319dc691fc65790982c3ae1b32ececda1d3eb88bfc9a0c2a6e5d15192557377b02ab23ae4e17065f07bbc0ce3f515602e225c40adf34700586986b8a2c77cc6508dd50ab1de344a43b8c39a3cc858bb74d5e9ff3fc3abae58187e257fef9002fd15899d997ba9c99119e0054b81303eba98b0752e7a7a3b454aae5ecc1e3a37bec92258e5b10ba89d5e2e31fbc19503170a37e055c0d809f770285811ff74fa13756523a43e79fede5a515589ccc088ec8d535529b2e321beaddf07d12e1708b2d340521e707c8d6ac20d67ed022d49ddcbf7a7732ffdfb546d32424058d9e7fd86591ec09365a52d9a8e1dbacb47403a5eceab1f520068156c2ce47bd638f2b835c7a06b82358b74192c053546059a5a0d39694e1d75f029a49c93a41b0dab78ee02553f8a42487b8e6a4bb3488f9e02595c03b209a0773b08c073b854551ddbca094d80fa6e943a55fd7dd5df71f519ca4b3f6d0d399fa75115361b1a952a394658df262cbe04b467b8bab47cb683d4988cc2f92f434ce67e543adaabfd0021b994663dba5bc1f6e438d93cca294559cc37d95722350ceb31549a66e180048841c02806862dbdc35489887fbbde2c941dffef95fc898654915f57200ee8903fd53161be24fc4604ad5e2d260a2f5677aea628edc5f8e7d8dab2334a21fe19e70575f08b24a10fa775a6a40828175a79c6684c2ecdcab1ff3a389a08d38cd61581f85ae248d8ec977f91aea07a7694dc6be12b84546198a09805898da24d6cc9f97edeaf11be8747666d39937bd5a091c35e7ef0dc3ef06a001b6a2c24b87e3a640bca6eed4a53e79ad3bd22e9334129648ad7af841a3cbc9bd95a11d0ece608afeab8ae6ef8b6386928d643ac771e980d1d7d750bdf027279f36f5cf395f08d152babedd77bb571c430b51efb565704dd2fb9ce56967f9d63b1dab6d8a5c9a2ad593f193b269025c29147ea070663701e03009c04c7857100947631d3fb8c4c2f28483b
+Shared Secret B: 62c9667f2bc371b26bd4f31e48647ce094b7c907607946c4ead525a24de24fb2
+Shared Secret A: 62c9667f2bc371b26bd4f31e48647ce094b7c907607946c4ead525a24de24fb2
+73e0e91561e852107e7fbc3f2baa10b320ca15d2d5f1091c3111878d481274805bc6d128f44d3b8d169e2fcf0ef94b87c8609ee095f35d24bc1bc64f40416ba133ce505ee09dd05be55e9b99e03c6b7298c9be0b4535236488e5746b2fa1db2bf33025c4386a68abdd41e2493e10b941153146887284ffaedfb90c814b0142ce7bae311a0feb2a8dc01301b6ab4dadc1ab81f8bcd5cf70ccebd71ab8bf373eabc68f9a4a8f5f2177434353b4abd8407af92ec6a1ca0653c9f20b561f0f5fdf2a746226ba82bd0ccb7b03932524ab5b3ee6c79a90d46afd30fc0445ce537a0766686e3fcf1a3617cb6176521b901775d915811488f51568b0edceed2e945209ce8070f1fa593cd531426a30f0e46d7167521be18d3412d0b51c5004518abece7c7d1aaf031e699336520c6854cb3ecd994dbbc0a41b17f91f58e66253dd225d649cb3001598a6198d1e704c9e829216270363654211ea52317c1e067a52456b24d85d455821a6ec90f73b5764b95a47f591f0d7af3796cada20f3002ee71dbba4d21027b7905c44a2cc83a0f057197aefdc0fe486bdf7ed9767c41e524762df17b07fb9b81156a28c71b3907d1542f215e442626c6ed4e86d14d5c6bfada09d8759423870f5551fc1fdf87461f8d283c6b1c7ac3fef2d8d119600663db2ab90bc93b3b1462df9a52394789c4b718ddd9d7b62156bcb07ce87d92a87ee6095748ca2054dc2c9926b87dba44eaba546befaf419fa258ac2962b23ae579edeac6d294bc399fe53b422668f77918515dc5c411b7a20747c2f5efe5fe0676031d09724fc2c5d818614c567310a9ba4f7d794c2abdda2dda116a95172eecf456b1b985998c317e0a3f8c4798f706e4545a0473b46bd853e18eba053def4b1b2a232a057e6aab590d6703ef93f3faa563062ab818e7cd93d6ba2d2a733df68e28148bec26d24404f5c9a3e7592259b4e7633845826014794414ce453f9b843259e369f22b55f36547a8bb94cd5a45b27b91f212b5cc69e5daa3d3cfe7962d5c519fd7931a3128e4021f38628d5ecdab25ede1f5d038ce8597083524200b9ad8ed5455f025280a41fd32109daf07ce44e22d33c589e987da7a9b8979a76c8cd9d04b23197511cf382357cf96326ace00df56fee7cb53c422a3faef8d0f992ec3def1bff9e6ee46436fa393d53712d63c4b67c1998d182b1f65f2f3600a028b88434a7a7212529382977384ba9732ae2e92bfc5ae8c6d605bbd1445495d3b2f89e30bef8486f90ccd6e5fbf2c77400e73913aa5ec0f11fe9fad2376f9a6c45bab6c699d0e4f9e6ac9f52120d3e5f75cf8f92159960c8e1208cd5f1cabf31f4ce8c6d9384269474d3385ad5657a42185016c714ea7b0454c0963e7e77060d8b178c59f25a5775f1ecd6dfb7ae41f1042435470511d00adae1cd11e24175b2a5bd666ec3a24e36fc4cd61fb7f591da29b28f88e23f2eb304c6fa2b63fbfde7a36329b899a0c4bb1fada617ec172deb03478e87abb75b9000e7cae48fe40adb983e3a30a83f4296cefab1f18f92ae2b79365c284ca5f3a6db2d987fac3e983bc8ee0c06c59b55dc0319e048706301ce51438920bf386ad72db2ab92f0bb9b6b36e452bc5870de5d93cd8c45b04317c32543d20640529c075e84eb9c57023ab6890e328c69af3340c62ae0f39f32387d0c906b4c32a40e84dd40d10e321fcc396d04cc1231effb2b887a3a28434a76637214e04e74733ce8774096e6cb67d7a212adb468a54ded1f599b995611d2b6a4868d3e4bab0183622eee1aa3f62b86ec60f13baea91fdfa56b4194df169f902a31ae56c8cb19f75b83075112d6853e89a811b462fb53a2b4292c468d7a14e671475fec24cc3cb38a2e19af1fa5a123d1f7204d63c2bf59fde90b6fdcfb14f03b86c263d6d991703ad05876d25fbcca6d34735d95b0caab4e6c1b3f75682c4900c011692fc53291b8b1c0b7f5937c449e202c656cf45a53ace83ce770771b2a05ba7915fac5983eafadfcd05bca3e888b4902cfd3beca418a53a9f96ace52abb470e3b77f9dfc8f79d702f251c9f63e6b9bc19c4fc67d099eefc463073bcc49908ab27b67a4cdb79d01695f6e521b1e43ab6024605a3064304dba71dff13a8307a4c5de593d4da7cbae2ac6953690150edccf35b1719a7c3ff8014627c3392d4a498734ceea111c55062d2e63c83ee802d38846ac7adf2d
+Pseudorandom shared Secret A: 9e21f9365d560462b18f0481dcd4abc62ab264f8b9764962258ec8752c90f1bf
+d2285aa3f4b56b9fa5644a82ee19e3d685d34876d1b94077236f3eaa93390b60b9d1a594d9245ba3201545235146f9a25134a46ca3fb04ab0230724055bb7998
+Public Key: 750414aecb5889f845a9361729742cc27cc5937361fcd60826f510bd4b2f29950373fbad8fb3c5e8724e46fc5a01513dc48c1cf2959a49f07897220fd095c0e43bc02ce19b4a985adf543a54983214e36b5d7958c6569f3a98809439b5c9a580c8347526105f91317c6ca16c58e406f8176443030853d92ef357c194837333ac8e4338008968296d558404c0487823623d87c4efc029515ac150500ae5c723991b2ec72750e1a4b87530673c29c4873c70af26605aa22d1450895eec579c985e2d24c0cdf0b7a8444a0764a87f9758d4e64df088946ff39887081429336be020aa0461b7b19257c4d3be2ac86918b27cff9932031bb96bd27833c203de871762f52b8a269059dba553677be6db75eaa615683356a4372d445ab25c6b3bc32a86f5c5cc3fea88053a1fa228268f98c92f7a92d1548230b8aae1054b82c290258b183817ac5670768ebc80d30668b3179fb8d5af00233f22d6c9ebd33ae4318491c4349c712e6675a103b969e72072ed5811fedc61188b93993078a7ba4219fa1baf982dd655430408aac622abee33b0a6878e7f9b906d67cf11650543d07e39a4cfa20a660063b9bb40974e39a3978c8718e413abe99e8774c3e3b13ddcf64d25a9cb89eb5aab5165156556679b5be7b4136282b655393ff9e792e92670d9a93ce65714daf7716199cc6ad7c6774914688c3e7db13bfd525b01c567b72853d1a23d9864b059401e24aa85e8d7178c020275450f97829a50e234251097bc2691362829ebb7482b309b1b10acff00af75569eb43a94731a5a40eaaf9505a3992935064cbffd34c88e6415f605010d585fb666c9a3282308cc891cb3b9ada1075a6514f0d1b816970d3b425234f0af024b1f8e3a108d5a724357a1e625970631554c32453b7b17b1e9905683a61c323019c6b641f916df67aee03ab9f664460521b72b51b247bc5a64c032645a8e8fd6218771a32ad001d7854386615c50a57d28a04ed29a93e9138c5ec46e54e31cd5f04b930b881ba7b88290b1de741269b912f90c612488319c3467d413cf8d895383e09bc7d1a13cf80176c505ef51941691ad9db6205a871338b532e873612fc929ac710d8c4334ff7692345b8ffb066ccc69b2ac5084e43466f31c6104964e1b61928b4743155a4a681c906aa8034bb432edd68b121758eea472eb6426d4415f3c46170361546b17776596c8f5f9842af35e21a882aa912af924a404a6187dd0b8fcfa5bf678c224a10deab865328caa2e352b90c20c2ee38c3003a5423c055fb0261cb61ea27c4a0a30a40ca75998c470e2575bc6147fdd4492cefb45cc0192d20129294b345c0823442576037aa26b6528c090844eb820000b709f985a750178c28b7bd7a63092b5712bcc5e94c72b09cb95be183623324d102156cca67f73493f64b9c5e2da19215c9fae3154afc93702e41102432fc454a2e6fb3475c61ab234ad6c403580aab7654cbf301516eed866f84719ebca8279188709a74ce228755859a48b13002ff100e4fa5e2611a57df524c31a57ef125a41935925c6434d956e63934b4a0267a29b1c1da23988aa7b1c97cc466c4aa88651f1ecbc090ba2f56b9a70089fcad9238cf0ad4012abe4659e99f0926f948f114c20025746bf2a7482730a2254c340257b42469fc126786fe91f19dc3887c8714ae130be6620df977881606dcfd3ae63c70723a5bcfc95531a175da633a197e73c2ad3941fe85513d1786df77039fb142f55ca11d2ab92003453dc8773233bd0ab1eb1119f15e853fab5204c7c538d31032fcc968658812e173299e374a6e99faa40605485cebf4c454c99c5339918a0c74b1d30c05f9b3216b68dc96c7e9e256f0512a16a3b0f76e43782789e0b856de1b05e81e90dc82c0260a3b28f510af2f5300a4731ac064669f58119630813acb3d06b738b01af77d116f6468730aa277b62a00ab60038cb1acea20419e6c117fb132e271f57f84ae53ca09b508bfe1ac49e6a5b63b6000f1b6e73d96406a91700448e292c3c86d076aae9482b4188a069445e10cd2afa7d6dd496b1951e7de38ec9069a65b94042171df75c420184326e324192653d2aa843080694edb17720029960a8bfd53a4181145fa877be04811b02f8af5611366a2c1bb9306ae4c1a524aa191430a21b2949629be7527f1ef217a6aaaacd33828090352c6f812462a01cb808c7f3ba81b6ce
+Secret Key: f1216dc25ca478557ecf35c6f854157446339ce408f2519e5ebb41b2f59442b26f92c196d1ea0f9b410006e37d5db97a7e263679b211ffbb630fd8bfb4127e68d3a1b59b26515a9e41c4300ddb87eb119671eb87f4f9626e1c7925e70b780579fe060fc3545ae2062f65857741c148c17439aa0c4189008ec6227c77754d7808278e72b92bdc3054d7159dd22a5b7b75fa92ba2cc7791ab2c1dd65114a298d8181a7a6a15596c0552335a311730ffe131b646312abe935cb0cbe74548d0c5a08a5aa097a65bd494613dafc51167893c45468454569148784a4033e5edb24dde89cff4561fc2bc05e313315db040da608792c26884212c6981d56913ea6709ce729baa8e10502f8418536c318da648558c9fb92c22d765722aaaad5ea04478ac318306a29e04679d2399b6588e0fc2af25b44f119c2ef9118798b75f702186f5b5c202cb230e25969b1c34c9c3ed52bbea5779fcf399cf0d1112f88a3cfb45a17245769a790825152a5111d4a1a71b6c973c3471412b8a72fc85d67ea9d442bc34925c9a8494035eb645e655f622421b9e17800077d5ef9a5dec91fce4b7ecd09ccc59598b5ba4cea09559f269e5018983603874f604c1cb6ba406846f262bd77b1132d9119523371f2845a9cc3b67a0c79f3da536c20732127704a435543c7cbd70b00c0dbc24ac45d21c2a47cc37b1a52383c14512959935f072f0e1945224a5d4975c81c63694b9169dfc7b477f08319a5bf6555a3b8bc14dd58b297d789843501b3018050400e419c88afa450dff2a5db8b185dac974a43150fc038b3016777d7494869c8575a6966a85d9c0a9b8a2c6cb2b0768c246484cc0a7b7aa29292040f33878cf03fbb302e7ad4b91d0c5591087b6dbc1582398cf4155dae3309f7b5857093c62e9b7de170b6a2e765f21956bc3a47ac8bc545843499fccf21b03f5a44bd57cc2c0f909f321b2d1edabbde1b6b8b26b4e4b02ea2558f648655d8611d12f699a029399c036c195297e86b1f6595bffe8a116cd54e9c902404639ad308a42a78c6ea80ca55948188c52d70303b40043e7056a8e6dc23bbd249d39c465506a6b422512b50bab0195e9abc29fbf948d31458a0c3626a69b3ad2bc8116a1f05a7401ce50da66b8b2b416d22d96a88512f1e07433c63923c26b036c6cc8fc0b16c8865fd8c0d16210996ba1859d3879e2b7237b54a5a068c644188d53b2a460849df766dbf818e8d475a79c6681f632df3849279e2c96c88c4b19386252b3728db9eead3644e035cd9361f42109cd8bb63139a2a3b927da3da48fc7ccbc1c23a6dcaa980c480d37b37fcc896e0e49d3a006fc95aaa4e57c0665b35d621a6dab3c9670404df97261bec5187b35aa340ab6bda2cfa5277ba713a198a20e368b9643c7b06594e39dc673861b1b9c6c776caa47a2079e0f04956f6c89a74a9e960b4f4795ded59113ec95b935b4e36fa587870be6b28275972a8d456754aa275b317a4d48b97cc88bb38d8666ff55093c2c77df311db50b5edc110bb522893b769741b9e03b80213dc0313a205252065719469ac04b1fef9b72f921a34c91b62919e1121cc74972c7ca9539bc21a7d846a2e92007f618927f77a52b8b1fc8592b59bb782618cdc489a1b71b5b3a5b0d8369b2ccc0a7ea93809282efde2a9ceb9097f3807e96004ba375ad7547ece870a7b8b4b63e1935165509a9c5fc17cc155aa8a80875f37229a1eec6fca02ac99348aaf3c095b9b4f2853681f668f6dfbb9d44452cbabcd7c3916c9c00d11d8caffd17256392835e483c52634f0b4640a52ca6915127a1a03d81a92d5c950a64316c2f1515b21076d6b8bd2ac17e8234eac2402588817702c16dff77b7e3038bfa057e61b8024d329c93166c68a6ef05148b8222b26a21bdb389a53d59c73b78debb804de05aa52549f6cc81f7f02b1fec747a7094e4ba9925790bfaa5a0c8085953a55373eaa8b78282c48726c2cb6c087e07cea8aa44d609b7488b6d5c8195cc415687a6d5ec20744466956aa9d8aa56e8fa6b7a320b604a9671f7c864feb2616a45c0b362b4d186d2cd3742e3382b8a7c6f3f720d91c30e75972b5340d6f97cf43339535d81340e37675753cea6cc376bb4178111c1ffba9b506ac5632bab5d984213c4e2b95bb6d865848949b971295750414aecb5889f845a9361729742cc27cc5937361fcd60826f510bd4b2f29950373fbad8fb3c5e8724e46fc5a01513dc48c1cf2959a49f07897220fd095c0e43bc02ce19b4a985adf543a54983214e36b5d7958c6569f3a98809439b5c9a580c8347526105f91317c6ca16c58e406f8176443030853d92ef357c194837333ac8e4338008968296d558404c0487823623d87c4efc029515ac150500ae5c723991b2ec72750e1a4b87530673c29c4873c70af26605aa22d1450895eec579c985e2d24c0cdf0b7a8444a0764a87f9758d4e64df088946ff39887081429336be020aa0461b7b19257c4d3be2ac86918b27cff9932031bb96bd27833c203de871762f52b8a269059dba553677be6db75eaa615683356a4372d445ab25c6b3bc32a86f5c5cc3fea88053a1fa228268f98c92f7a92d1548230b8aae1054b82c290258b183817ac5670768ebc80d30668b3179fb8d5af00233f22d6c9ebd33ae4318491c4349c712e6675a103b969e72072ed5811fedc61188b93993078a7ba4219fa1baf982dd655430408aac622abee33b0a6878e7f9b906d67cf11650543d07e39a4cfa20a660063b9bb40974e39a3978c8718e413abe99e8774c3e3b13ddcf64d25a9cb89eb5aab5165156556679b5be7b4136282b655393ff9e792e92670d9a93ce65714daf7716199cc6ad7c6774914688c3e7db13bfd525b01c567b72853d1a23d9864b059401e24aa85e8d7178c020275450f97829a50e234251097bc2691362829ebb7482b309b1b10acff00af75569eb43a94731a5a40eaaf9505a3992935064cbffd34c88e6415f605010d585fb666c9a3282308cc891cb3b9ada1075a6514f0d1b816970d3b425234f0af024b1f8e3a108d5a724357a1e625970631554c32453b7b17b1e9905683a61c323019c6b641f916df67aee03ab9f664460521b72b51b247bc5a64c032645a8e8fd6218771a32ad001d7854386615c50a57d28a04ed29a93e9138c5ec46e54e31cd5f04b930b881ba7b88290b1de741269b912f90c612488319c3467d413cf8d895383e09bc7d1a13cf80176c505ef51941691ad9db6205a871338b532e873612fc929ac710d8c4334ff7692345b8ffb066ccc69b2ac5084e43466f31c6104964e1b61928b4743155a4a681c906aa8034bb432edd68b121758eea472eb6426d4415f3c46170361546b17776596c8f5f9842af35e21a882aa912af924a404a6187dd0b8fcfa5bf678c224a10deab865328caa2e352b90c20c2ee38c3003a5423c055fb0261cb61ea27c4a0a30a40ca75998c470e2575bc6147fdd4492cefb45cc0192d20129294b345c0823442576037aa26b6528c090844eb820000b709f985a750178c28b7bd7a63092b5712bcc5e94c72b09cb95be183623324d102156cca67f73493f64b9c5e2da19215c9fae3154afc93702e41102432fc454a2e6fb3475c61ab234ad6c403580aab7654cbf301516eed866f84719ebca8279188709a74ce228755859a48b13002ff100e4fa5e2611a57df524c31a57ef125a41935925c6434d956e63934b4a0267a29b1c1da23988aa7b1c97cc466c4aa88651f1ecbc090ba2f56b9a70089fcad9238cf0ad4012abe4659e99f0926f948f114c20025746bf2a7482730a2254c340257b42469fc126786fe91f19dc3887c8714ae130be6620df977881606dcfd3ae63c70723a5bcfc95531a175da633a197e73c2ad3941fe85513d1786df77039fb142f55ca11d2ab92003453dc8773233bd0ab1eb1119f15e853fab5204c7c538d31032fcc968658812e173299e374a6e99faa40605485cebf4c454c99c5339918a0c74b1d30c05f9b3216b68dc96c7e9e256f0512a16a3b0f76e43782789e0b856de1b05e81e90dc82c0260a3b28f510af2f5300a4731ac064669f58119630813acb3d06b738b01af77d116f6468730aa277b62a00ab60038cb1acea20419e6c117fb132e271f57f84ae53ca09b508bfe1ac49e6a5b63b6000f1b6e73d96406a91700448e292c3c86d076aae9482b4188a069445e10cd2afa7d6dd496b1951e7de38ec9069a65b94042171df75c420184326e324192653d2aa843080694edb17720029960a8bfd53a4181145fa877be04811b02f8af5611366a2c1bb9306ae4c1a524aa191430a21b2949629be7527f1ef217a6aaaacd33828090352c6f812462a01cb808c7f3ba81b6cec1d84fe9136f889118e8bccb10175bde58ba45ead34e9535264ec0b43ba0f10ab9d1a594d9245ba3201545235146f9a25134a46ca3fb04ab0230724055bb7998
+14d903b9607c73a8de7128b816f60a7a740449256229df050389a5bce85bb7dd
+Ciphertext: 7958d96a71a5db5595454c445735644ad957ccac8e366cdddeca5c8c888a3185ae09fbc9bd7e5f556115074ca6f160e15d5da1ea90e52646d40fac183a3ee40a9adf44289f3b6bf2ed19baf1e5792290a58f6db3a221dcce3120be061f817f1ef564dfca93b6eab37c8754d3439eb1d0cef163a4581922168a7cea2e64b13122d1806bcc33cdb18260c8dd4bafbc6f211d297a946814197a6ff0b2fac66b7e1d822bf412b113d47d208ab6e78b022bddb2284776a251c739bd83853bf889ceeeffda2f2ac53b6d16881e3a71f4acbc8a4ee108757a6a1937a4ed6a78a5f1598e6139becf1358fd9ac3dda9ae30e3a7e636fa0381661a0b62b40451ccbe555ab51e32a1b7f8a2f46f75eb8f936f854cc6de975099ad4985b80b74970256335064b1514a5d3e628438eebd404641e35ccfeda13863d422b4f934607076939716bb7a3de840250cdd7fc44b24ef33d2acdb733a921fbab1c4d3ca99f38b0dece41382c7464aa47c9ab1a7fa071c45adfd30f6d5ca4d587ab4c9a7444bac7864e3cd67e68fc4f5f565b1fccc5dac4ed9430541fabf771c69788d18f8bc8909486bf2a73545e34fe180466586e80a868b163530521a8f793a786f04af9f9b0381e2432c5419a1a58d1a80ffbd8c23b11dfb9c88f15af2f8e13538947120b952ec41f1718ee305d7fa05a4f63839aa198c538ad38c78d6c9846832fa551228053871f98eb3a1588d2b88a5db4fe1e2de4afe19bc05ee5744373f0247c6dc59b313f7e0541311f0864d3aaa0eba0b0ef85222a262be249cf79f5e50ac39bb2711c8214e8a8a60dc4d77f96354d8f5c0979ec13f85c98ccce7f1035eaa1ab8ddaa92f96506f254117a18b226b8132880ac118d33bd296eae628ae70f4253b258d51ff821b1c3cd1d2f64a0e04fb62d7038e3bb78cdc50e99edb1977e293d4a59109f3f7ed523d5dd20182c2aa13d6e40026d0a63cac8d3da6f079d4c567ee5f97fa3d25181e4e54717f8165ff1169fa41dda583919bd90486ea77c18defb88ac8aa6ed6a2170c603ff8013e0e2f16390a41417ea58e179d53bb36202826099745a337633d71010bcedf14164066214f5fd5996a20ff8b80d983a06037ce6d8f376ce0997aaed1e857c366dfc2dabecd3fd5e84037955d1dc2991fd4a088864ffbb129940c50db46758e63674f6fd2485ab4004f1e0c6ab0f663edffcccf809c2ead39177ae57a369300343701c00d65a258be3f220844de10e16632fd107ac5f05510d236c60dc419ee0121f14e2d65b5d3fb4fdc88c9702a06c4832a8a65d380b5405f4ece116e9c08b6e488bf82e7915a75ad568ffd27975138f8eb5fcb63e29ea88ca39730fa1c35d2e1abb638e416679a4928dabfad908cf714a206f77a24d32eda20241b86e986a0f718752627f32304b0d897d091a6ae0ef26f54b477d8655a0066e0860ea4d46041bdf25ce6f54e9a5982413907dd50df95c13beb4ed14c766479bc0dbcb77456ff4bf28f6be82f8fbde2294d7c105b1e1260826866e1f6a1d6d8453ad14390d9b5fbfcd6bee4e1d2a63185ca148e213e255691238e53ad84b7bfb246f7c09cf0141088f67fffda164498fa96e5dc4d2c15f4593eaf3ede0ebad9aa6b1923fd827470a2755e254a161e6fc4495ff568b9fb812032cba764a52ac4c479dbdc8271333ce407a3e9081d1af995fb7da345f14f82f1c30daa012886329be5490389d08fcf9d0002b2e0714e92db9f40f9f2ed3e847c271d2d76959f3531d279a5a89edf0f4fe88bceb47a03ff60ea46e089bfbf48d2deff43be5f9dc224b3a06cc364e6e8ded71eb41166f4a021cf54ad9b13018ab6a081636e03d32ab9ea415ff9992057f1ecf7ba5237c4345df8b983ef5bd384d33d2734f11cb1a0627b56d712ef7552d68958ffe87ad0903750f8c16f7e9b1495120f6140d5fa3401f254f9830d05a891639e266239aa63e9491e35b4eecc97c9cf737220570831f5a40fd60696a701852b792a7991f409b8009870b9d8dcf4aeea5f008970cc176c32b25ee9b969f5dce5c8a1c7a7132d7403093bf65f8598dbda0b2a6f74b5bc1e09cc1b64d40627b69803baf2047222a33e7352f718ae8c08a6e040d304699eb05bf3d5a660c66919b49937f40b44a58286cd944b1b4c0e1426446401f3ccffc9459f6434db4dd80dcd52fe24380ea7a41fb2d3e5327c7cab9a69fde2cee2e
+Shared Secret B: ddd5d31d26f9da19296f223b3c16171c0aaef2ab0ab02012162e4a72ffd62551
+Shared Secret A: ddd5d31d26f9da19296f223b3c16171c0aaef2ab0ab02012162e4a72ffd62551
+ed2c333c26e3bfb816fdf90c5bf4edc6a77a75b19f24a54f95030f063497740fa92a263a925b2d6ab0990de10ab8236728bd43c9fe15bcc2cc505393fafe13c918d895ca0cd032889bfc64bfcf6706e71f3f975d81be9f7d18450e9a83eabc32a6eb436ee6a7e8e81146bce41a8297ee07a24b041d187f86f154d212a1f377bddb976cf33c77abdca03ad46114e8e3a2114c4fe6405686473c74e86094326ed78d2abc386407096df8043b5eb33c8dff2ea81b3ff147e615f782fd7ce4f512ee70545412e44e652eb9bc6f2f99e013099553257b98cbc8a1f83af0b77f7e6860a04f68a8b9232b7ab66b734ef893659e927a4ac5a8c5753ed480966f67bae7790664345ff7f2fc929167737fc37ab4faf1dc3060ab7ee57c9792af718db4027a46359951bc21c626eb5c78731bd2bd31414fe493381be0f616b732fa1954217f3c6f3ff0913a98079bcf085a1fa575e45cd0a49abbe56f49225a0b4e91277e15c34bfcd5158c4f42fc4c6dd42ecd82fe1cb5921d140eb29e459fa1929cba0b605f82375dfea869725981fc3da6f122425c00b13c2d4c05e8a3dbe03fd9e9dc5edae2707828b4dcfd960cb8a60374ec2bb86005d51462116c6b91965459662dbd2091a340ca9c232e64d9026dfaccefa19197c21258d97830413b5c401877b5df4727fd406b192e949e62eabc1bff7a1e2663ff0d0388d5d21862295df645deb7174f305c7a87c596708649c978a95dd5c43915feb7cea013f28a44196f9158acc99e61dc78dbc55c437f3d807f24a3e48d8f9cf36f85a4e7386f75f57d84b778a76fa7f0480f213d3555237c6556caa4545ede312a8d763d4c16169a04528c39538cf628c175047f13a1690ef6f389506bfbf7c0260fc69afe912d45c70f4b4671f9af525dc3325e9d64f1d96c59390a9d0909cd607e4072e62e751a3987fc8668e1900cc9e25b38cb32bcf017f9db5082fb7aa7569f81d96b7b305b2a102121e1cca279bf42db23f2924c0c6b97d495858ecd0d12fe71504f9aea00cfe7016c6fabd7e7ff81dd095c3481eba22c123cc03ac435ea9a2f28a85e1b5a2dbf8c1fddced2d906d27d98252496773b5c156a4f7e3f26bb63650e84a5876a8a4641a7a4b7f147162160ceba992c7246577fdb537e86c13d97701f1cd10c2c532539dfd28af1ceeedd3bedf3455c3afba39454f1e3a3f14e661dc72abe932fad20ad31fa9692c322de551daf5d9bd6f972d81189e44396f76504e66a4eab8178805d05d76c17605a74af4120540a7d9396ac472f0bfe4bbf0cb511536be4f44d45765a69dc2367d1003e7eb42349d24064aba4280c494355934469092d489bd57b6f076d04d5e3b5588b0c1e2b2761b87d01c6db5faf8d3ea6b2f7854ae318477e17b069e240edb4af37565f13c3695d30e46902f6804ed4e094f7292027aaeae4646ffeda9d253124c65b95deba24bd96316dd1db37bd15c7b9b55d1ba77c3a5bfd2ffaed9f34e24cfca5a122cabdc5128646c4240f714bd063d438e6abd72dfcd34433bd6da011abbd00710ac44e907907e674b899e80c3ef1ec79c2cc1d4cd41a490cf686c6a51982b6fb270ac94eee7409d2083360066de6bb5c2ffadb3744155a8199bb035c47d9a7c4cf6dcf8a565428af4a3b7f0a8e53604457c9ef0b885daf90c13a53daf16ec497e50ef8b3bd119046065670bfdc11f612b324da722d4939816d6dcae30dd58d319b5911324a2702e471a2a4da605f503fe379b01031cdbdf6de4f8c78dc4b555cbcd9e11bae900c3d5d870fd8efa9a400ef6a7d50acc71ddf43907c235d19e63ac1e2d90f35e324300e2cd41aa753d6e715ca852617953d35abcf07307c8c55df1b53937d7245ea820686d7b1b865d7cba299de068146dee9eaaf69125fadf3ab36506e26fb7e9ef722cd806f5cfa0b695c0f52b05450be7afb41d0a1011346b7eac53439608b346b64504a690481f390d483cf268de86f3142aeed8cf8d298ea25a33a9502928256b469fa8da460c36c8abe876927d00ac52f92658372d4f2876f34fd67dd54502e14437dedfdf244ab337cdbcf3349e3bc2b77f0d5045062a62df65597ef907338de9a83de97ff24a5b4533d87d119a304607a5d46b698851c95b3570c98974d53c9ba2edc4ce10d24ef4dea539173f974a1dca14dfa57932f15d9e4d3e5a2274e0080a186fec22bae7b1c9807a20466
+Pseudorandom shared Secret A: 97d889eb6ed005097b2a8657a2ba280f0a538d06bc164840f0c6957ab50ac4a9
+afe4bd0e1cdc6cff09e4f32d68b38236f198e7ac5dec6d05d25b773d4d5cd11aecabb7746192ee9fea9bc1b717b7a7cf39b784554ea65847053a4970dda754bf
+Public Key: 7b021071172f7d9795b1b519c37474ac2a618331b89fc36e0ea7131cb69e23c6158e430c9d7c2f2da595c5970166c16e21150689262302ea3661e7601c881805f679c71545c797379310766cf96cd2e17a65f9168c2ccde530a5cdac335d88622d667610821848362384e7c7256232c3000083179e3a73c9c10a324698cbe401484fb262a3773536d35c5186ce511b4be17c3dfa4c609e7b0370e40f6bb0811e5043b6ac22eac68ec1d12359011bc0514a81730cf93b1b164332f0735c6c6827cb08bfe6901de255c15dc728ed3635046087f70462e3832fe6e9bc11a5a1390847d36286dae81085c51e2719cc66f1146f1b92ce079034d083065c2df90c1caf15ab99336690d0994ad83602518cac742b4128442e221c971a48d89c78c88b5380cc10325ab82f22564ca85c85c8c6cb421013c9b7007542e4c2b4203bb2bdf8abb8ec9f42b57e022c728c108d22b27aea556a84b29d26265a1dda788dacc54ae55c9ffb949b7778462706e867abcf48838b2630a1597c46d841c61740ebf39d26d0a15ca88270a19af024b101a16350c0a974d4ae52ab35d0bba2a334ceb45836ac9cbf63055d6af575a53bb96dab7f2fb82d3cb2676498a8a50160dae1522be33341321ca69185c66aad0f741cf1a59d36493aa61476176574c6aca50271046496bee6fa1bdc4526255baf0c06c24c450785161a0fc36c7519aec7c74149c638e512bfeb190fb1c7653a017572992f71d2bf054391c28b01be219bc1b1b667f6bbe1c6c4764b4d95628602f6bf61fc5e6d89669851802194069ed774ba115d17e80cecda151f408b6999528df701d95064e22917af766a33f2352293063be7842640b93a19895ad7a5fff76bbb94ad4138b4a3997ad8166684b51a1a7450b6b84cd8b12b6ad62ae1f22a49e980e524286f24a93117444c8643d5d13bbfb54fac3a95b3ba20cbb55a054686f0e2cb0955b84d6a9c77410178f13d1319a981f0b95e16a0b9b17707a718176ca5acf6211bf0974689c306c1a01f0bc03558674cb008ac2200f502a8149a2c11fb75e6aa1436da642f82b0fe68382646b8c833140ee634104213b5f8502cba0c119c02f7b10c3d2c8d5cd01618941bc378026f07cf728c0714c458e7b38e36bcb47557992c9697ba41bef1811784d1ca7f92a622b88236f9a3ab4c802eecabf1505dfdc956a8ca24008b050c54ae4efc65af9b1fe40b703a56a990a55b6ee97800b6b3fbd7624b4c768990060fc476beb7ad888181a608c5a09200345379f3dbc5df4831f4320c7fb3a47d1ac3de893fd8935211970393e0258cf21bb797040ac5854aa30bcc7005ae209e09a564f50703c6094a06f9494f8b15f7681428f1b781a72700847ac9f568de67c8962284ca4b78b5bcaf343c43d69396deb6bccdd92e0e8c6e42a89e421b971e25679d7464b87a15149778294768a7cc893d924369a59550f1bb4f8846ea2882e9b9014f33312902071fcb1642d69ba114c6f247bd68ec9f88821687468ebab91123d9b618cc75ad1b43285cc7db89b0c0e68200d396a52077adda2b8d747358f743d3d34c1580b3a32496a4cc5cc3abb8cfc75f8c6627a7fbacaf8856019080b9203b5f811516f383d661cf3fa767ff22afc2c71f1b1310daa03faf235ee8b57dae7a8ec35bcf1e422a7d861e01d93044e4873e84a94208255a7b9bb0511cfe719a1fa06faf3345e2e0114189207537b51761024f849298ab7b49b36976552de2640da6049ccc8c6701c78fbe6865aa8b6cf5c03ae07ba486c215a42180e05714c3340b53d17e0a8cc0387291d394135c271b47b71c5a1353a963bf71116bbf10991e1858cbc729d94b8cfb3c46ed181782667efc6606aad58795915ddee3140e566d839c1ba67abea7acced4c4608ad8c8cd5c3ea6685601676edb81a152fa5fe3929a31a6656d6a1d922405e03ab813b2248f396b9904ae3ac10c025068df4871485c7b0b6219d23b81fff03594ca76cef375ba6b17dc2c9550ab7fe372140444971b461f65468f0255616f2ba2d009289224a943e930abb7558e72cefd237cf1e20514793395d47491fa97b1d5ccc0c6448ba9c17c18985a302d63ba425a6876b856957ea99643b77529a44350763038482003eb5537b2cf00f4368ef0c738562ecbb46119153a67bfbc9cbc68af16a983991c9d051e71eb543c4f785adfac913f646270f63f71
+Secret Key: 08454c00dd757409a928f91868977ea3ba8ac207a70e157f3b2004fa22aa14b9196cd4346977439ca42bfba8247c7b21b79581d2d97656501da8044d804c69ac5302b4004d1b7597173b2181da173d22a36fa49f30d0a6f9d8836b4c9190dbba1f0805668655c9bb3df0a1206a57a35ec5a0de36cbb15917f816b8ee9140a2c87e93dccb3445ce65468b7d87b030329981d0cfa9142142a95ff94b108b1445f7431f56625aa3949a26e9450945295b43abb645aeeb486dee7b124b99782ef11ca75b3e93fba9a8d117500046bb76a5cab01513247d98f0bd0a192f79ab8eeee15e879ca885374ba5b18fb16a27d8c5473d53b43df13f20f110c6d518a615944dc00a6d22ba1957ac91469de5623c0002b236e92f7bdb9e50acc1c3e2ab964cc5703a0c89e6ce2849c95d751b7fd439ea943c5454ad5385238c71351645887d1b5eabba1fff174d6f08a108f7c3bfa96f7308942618cbbb3117ffc111ff31c60b36955af3913579037d7345632a464ed0b83fc3b095c2b09d83558839b2e648be3c87b73e1272ec39a5f781b34f615bc8b00befe4ce8319884a909868b7834177a87ad595b18518011350b9a9ac96b80d3005607ac879fa2a7f322817ab909d67219807fa5e07cb4271d40e110c7cdf622bdcb5317f120de298b961a89a96e58332d0ccd0b38b8072364cb271950ccf990a6d0bc4b3554b77eac2c61cd7984b1560f1f07f5ca6226dc79978134b5d8ac768abc6121a6b749852eee9bfaf307b14aa146446192173cf7ce0195be05adfe52d57d108d3b49dbe805d25970ebc291a6a097052d6b5a731885454b68bfa86949c9fa4a86a1790c4585553d682426bb25014680f4728cadf7468b29255b19b68a40693ae020cc4e166a95c434d84764896924a4a5325ba1c33d0a23ba44d5fd529a50ba7c7f4830f34930f1744b680ca45dca960425f8a558bdb3582376a469a51b205541977d693344cb823798cfe49568b1498135353c3f37b3080632f7725aad64f5c042347d842ed944983f15bfc7a2ee7502bfdb41c1ff32790ab827b70703ea4a6e79c09cfa789a802539683956d0c53c4b3a6c75b1c83307761438039041ce9ec873eb43b55307ddf651eaac9987477b71e5c70a50c05de594856bc13d6a35a4505c6b125261f5acf2dd93557a8a7a9e524081328d246ccd2160f24d36e17eb4714c548fa569937bb7959aa076858b2053a1365850d01b1a278a3212132a8784cc676ca45b0e8ba8fdb65269a9c2bd5bbe7b0b1e17b4d1738a7f079ba1c92bce0b1bf6693c665aac17f929ddc4a75ef151eba741a4094bad948726dc57dab56b41a354da6805b0b4bc2a26c8158049d7a8b585d8aba2d4b2dcb399d977a0586d23d41658eaa9192829c143de545c783b32edc73ead50599fcb5ba866eba2a82580311d8c962fefc9a3b1c2d6de66634031a9837ce14847fcc8a111bea8badd82310899a5c543ddcf9b0090b1da98830455c93a968068af322537153d9e083a09295e0ab5c5c989906578ed2da9c30a4871bb06e86a086ec541129a6c845293f25da11f5b31a42a9c76a8881d4d2638a56790e4c346d03448a685e36067acc4a433a7a864a603bc461906ee233fbb951ca3649de598c9004c873738fdea337d688046c388ba3aac6ea24768581b02b1732b5f906cd53cecf938c19e8146127adb8b28be2517e77e245db7072c0f08f5dab71697bbbdd92042a40bc7e46822af051154742e6ac7a7ffc41701b898f31521621cdf8e91260563c15a521a2007f6039208b714346a06d0c81a66f02142f1077f6188791e5c0d73a5fe413679f319d043814df101dd23a2ab736322259029da074ad23c023517f24a1c95e3a751d88631b6901d6b61714d08494536dc65b151e099284b7a967014cb4a1658b596a14d0c147db2010190e04e46aef47b8dd599a47a7780740537a1756d264bae0133093e352dec249cf88a4b855b0ee509623334eb94869be828cc1123fa3ca45ae0207fc177e3e9009d684bc5f576761d3c400618c913b56224b50a1221611c366c508ad67e06a1d628a55ba700a427994309d0d18634ad4bc75fa49ad2793a6f60ab4243698d949c6e330f2dc4b78a05311394119ecc6925339a39660758c8e1e1471e9676db809877be20e4dd7727b021071172f7d9795b1b519c37474ac2a618331b89fc36e0ea7131cb69e23c6158e430c9d7c2f2da595c5970166c16e21150689262302ea3661e7601c881805f679c71545c797379310766cf96cd2e17a65f9168c2ccde530a5cdac335d88622d667610821848362384e7c7256232c3000083179e3a73c9c10a324698cbe401484fb262a3773536d35c5186ce511b4be17c3dfa4c609e7b0370e40f6bb0811e5043b6ac22eac68ec1d12359011bc0514a81730cf93b1b164332f0735c6c6827cb08bfe6901de255c15dc728ed3635046087f70462e3832fe6e9bc11a5a1390847d36286dae81085c51e2719cc66f1146f1b92ce079034d083065c2df90c1caf15ab99336690d0994ad83602518cac742b4128442e221c971a48d89c78c88b5380cc10325ab82f22564ca85c85c8c6cb421013c9b7007542e4c2b4203bb2bdf8abb8ec9f42b57e022c728c108d22b27aea556a84b29d26265a1dda788dacc54ae55c9ffb949b7778462706e867abcf48838b2630a1597c46d841c61740ebf39d26d0a15ca88270a19af024b101a16350c0a974d4ae52ab35d0bba2a334ceb45836ac9cbf63055d6af575a53bb96dab7f2fb82d3cb2676498a8a50160dae1522be33341321ca69185c66aad0f741cf1a59d36493aa61476176574c6aca50271046496bee6fa1bdc4526255baf0c06c24c450785161a0fc36c7519aec7c74149c638e512bfeb190fb1c7653a017572992f71d2bf054391c28b01be219bc1b1b667f6bbe1c6c4764b4d95628602f6bf61fc5e6d89669851802194069ed774ba115d17e80cecda151f408b6999528df701d95064e22917af766a33f2352293063be7842640b93a19895ad7a5fff76bbb94ad4138b4a3997ad8166684b51a1a7450b6b84cd8b12b6ad62ae1f22a49e980e524286f24a93117444c8643d5d13bbfb54fac3a95b3ba20cbb55a054686f0e2cb0955b84d6a9c77410178f13d1319a981f0b95e16a0b9b17707a718176ca5acf6211bf0974689c306c1a01f0bc03558674cb008ac2200f502a8149a2c11fb75e6aa1436da642f82b0fe68382646b8c833140ee634104213b5f8502cba0c119c02f7b10c3d2c8d5cd01618941bc378026f07cf728c0714c458e7b38e36bcb47557992c9697ba41bef1811784d1ca7f92a622b88236f9a3ab4c802eecabf1505dfdc956a8ca24008b050c54ae4efc65af9b1fe40b703a56a990a55b6ee97800b6b3fbd7624b4c768990060fc476beb7ad888181a608c5a09200345379f3dbc5df4831f4320c7fb3a47d1ac3de893fd8935211970393e0258cf21bb797040ac5854aa30bcc7005ae209e09a564f50703c6094a06f9494f8b15f7681428f1b781a72700847ac9f568de67c8962284ca4b78b5bcaf343c43d69396deb6bccdd92e0e8c6e42a89e421b971e25679d7464b87a15149778294768a7cc893d924369a59550f1bb4f8846ea2882e9b9014f33312902071fcb1642d69ba114c6f247bd68ec9f88821687468ebab91123d9b618cc75ad1b43285cc7db89b0c0e68200d396a52077adda2b8d747358f743d3d34c1580b3a32496a4cc5cc3abb8cfc75f8c6627a7fbacaf8856019080b9203b5f811516f383d661cf3fa767ff22afc2c71f1b1310daa03faf235ee8b57dae7a8ec35bcf1e422a7d861e01d93044e4873e84a94208255a7b9bb0511cfe719a1fa06faf3345e2e0114189207537b51761024f849298ab7b49b36976552de2640da6049ccc8c6701c78fbe6865aa8b6cf5c03ae07ba486c215a42180e05714c3340b53d17e0a8cc0387291d394135c271b47b71c5a1353a963bf71116bbf10991e1858cbc729d94b8cfb3c46ed181782667efc6606aad58795915ddee3140e566d839c1ba67abea7acced4c4608ad8c8cd5c3ea6685601676edb81a152fa5fe3929a31a6656d6a1d922405e03ab813b2248f396b9904ae3ac10c025068df4871485c7b0b6219d23b81fff03594ca76cef375ba6b17dc2c9550ab7fe372140444971b461f65468f0255616f2ba2d009289224a943e930abb7558e72cefd237cf1e20514793395d47491fa97b1d5ccc0c6448ba9c17c18985a302d63ba425a6876b856957ea99643b77529a44350763038482003eb5537b2cf00f4368ef0c738562ecbb46119153a67bfbc9cbc68af16a983991c9d051e71eb543c4f785adfac913f646270f63f719f2c8cee3a0501d1c3f41a94f08e50639987c952f238cc6f04db25fb41341b2decabb7746192ee9fea9bc1b717b7a7cf39b784554ea65847053a4970dda754bf
+494b48739ab6efd1d17c7b0cec19fa822d1789076efd8f7c2900593e278e1ae1
+Ciphertext: 8b2a109f58e6d8878f48304c01d2159e5d9c8d6801bcae3b18e5ae35733d30c60b4d255d7abd105272dcb82500827f8d2c5bab1c1e0a4575bad4ba10c47c838a03ac3ac4048f6a4883bb7e4e79a21d76d98675eb0b54c48f3f97a028bae585517c7372884a6ef416b38c2901b2fb18b4ff36f75717d645ff20ffe1f843f083aa9297067bf2b7b61cdbc67d079afc65459561c44444181b4190802190ca1e3fe77f07bc963c76b0f7c02c8d5b62a0f843d23343205b86dd3402163e7bcc678c3fb55411c49aed44508ac18d3f1ba602ac71fc35a8c5b3d0d50116a99b5b2d1cd1b75bc2d0dfbe27170627c5d4d31f3cb3dccdffb6bb0c5bea4172ebb68f71c1e1e2c8ccde071ca950ffe2a86b179a09232d6aae7d93fe9588c413d4a9a0b0d53d7fcd37a80ec46a87eccacd33cc7c0e10feb27e6c7beb9fde9e89bd35025163c9b48db250c7088e2b0d3b511f1a67bb5fe8464691c4b116fbc8e1ce48c3f1d0c6d790d60fa890176a6a096fee6b57d010f9041dca971be3cf0473b6cc1af396362c66e7c868c717aa1b293a9b807ac8fa515f6a46412f623eacd97944b9584c8a7685658aad0507b45ef1a9a21f4e470f69cd4944a6e3a6905ad361399bf55e2ee66b04e336340ac1d32a8d584265b5a1fd79f6be75336295b51aa116e49615ca21ffc3eaf02966efaae8e62e516a3539c97ed0196a91b01282e185c18c06ac8448a6169c980274219a6b85b689be8ccf6e68b03a26184111778b2d6244ce2c21a7ee530050086457da468627014a77898d6eb6c283dc42b842f4da735c119d39c533413d71165686575621d9a93f6a083ec7f81a66262fb45c44418badefff96d03a37b35e66d9f44ac2ea3fa036337430bd4fe37e2e5cbf6321df1bb8823886173515cd0be0b820d997c64eb6796e49f5e84496a5541ab0caa446c5adf471f3362937362b19310cb3a7ba02f7b82e4cf355ae5a5cab131bd55954a15529a760c8cb47483cea49add2840806487f6852cb1f396cecca00556644222d05c90f8762ec4035c69c53fd26052547cffb5423cd1453aeaadae3f3ff1159e0041a79cdce645e26514315a58406ff5c48cf256c43b6823a219c677ad5eb51474c3c711ffc1d7b05a81535861dde9970ba1336bd71ce0f21b780c87a1e38f4eef565072406d34a3b9e2d4e4c471de2c383c7cbbd24b07043fa0b5107fb197b8c3b84ac6c047d7a820a21591673b586649a646c8251f0a5e2b4acd585db2eb9310f533d9dedeee9d4e516eac09859a34cf03b39729f4c142a103e0c0a28fe531a7c9707ad788425cd0efac2b467e5d54b0a71b68f31a9fcad450bfb81c7aae5fb141ceae10138006ef224ccd1fc31a3be5a5cdcfcabfc9026e6c43931c82a95e462c3c66edd96e9df727e66340c50a2030a2a112db6b71052cba6fa32d44007b0c0832c96799df89aa4955e90a3f488cb5489e9e12405fd1a90364bb9e366af98413d03871b6f5d2256279c06e60d5c94e15029c63e4860fe1f96a8a1d5fca6f9afe76c47f215f85c0eaae3e9d4a364be9d13e3a792bf52287e7cfa3ade68b942780eff3f165431a309e5cae3169d412693bab7b87c2d48cf97a5bb2ee89addbd5ccf8721248893418e532747d7bb21aacd5a6b5db2942a22db4f34b3e2146fa4ffc3e3422297f258e4c466e59814e8151267dda39ab73e18070a45364d7f7550d2e55915ad586c361bef86d493bac28ab6cd6fb1360d667a17ce47c600eaaba19ca5f646ea6632798d14d8d547b1f455212688b59731c065459770a6a921b598e12e69e2f3f18a76e32ac856a8e3f72f00f0ef8540f3c233a83675c7547204df819f9ed773be2a972659e24f56d49c9ce6b9ac0cf4115f0c2c1ac771c97e760333b9b7e73f9c3f1783960cb6d00263a331e98bfdb2ed0e49af9ab2a315f609648413e37e10259aaa07450c67c2a63e85a25c4209f157e90a07b38e25585b28ed79a3d53aeb9f2f1c280ab859bd0b2e1534ab966129198eafadcb2eb54ca8463a59c321f79da7e62e69de579aa99b82fb5e9696f0ddd5386551f3616e0505fe2395d70bfd09bf43e7add3aa350e10541050bbe59ceae537e20b8f731bfd0f353af18d361512960ccc58745940935cffb3e633133d7a3be0240b1629feb36b01745a9a9289acff7d82ef58a32cee596447a96950bedca72752825ac3bab80322dd3d6e0e39
+Shared Secret B: 82a147ef4610c91a34eb84b462b1f6212b42b63980e19277b19025c7fe234870
+Shared Secret A: 82a147ef4610c91a34eb84b462b1f6212b42b63980e19277b19025c7fe234870
+aec82777cb64d4a25ae3bb3aecd1602bdf418db55ce5b9de560addb8fb75dd872a292a6f34204531457f0a610091fd67a44d42ec4c2710bd1ca8c5e7df6fc2e38b726cbf22fda368d0c59a6e77ba700504e5985f2eb32207ad65336b1c611463a0ee89c9af55bb4f78512e339a6ba2a329cac9d9ccdeb73146c18dad2ce91feed76c6de5b3a5b407e339f61e5d622797bc5156b1403818f8fdce74d4f1ee4bc072990fe0ae395706edd6d24cc07425aa513fdda353c716c41e682309da645cf37d7a128ae352e32cc60ca981890570466e54aa9ad4b9197f32d39bdf190255c9a7d62ca2aa618b658b6c6d0b0a254a36495d87c8ce0576e679217e2b343fd75df3a73442c0d90527616abd11d89780df42bebc8148449d006843bef28206783b02e4e50ecbc1e27c7b00640029aaa8908734b0110e9f719c519ef91f46d16ed79075b4189a0e09f29073ddc287f7e660572fe07363f4bd94e83801da766887a94ff3b5187beb413e5f62861cd61c05dc0ef70e3a6b84d3aa25814c45c0ef0ebfe6d2ef1648885d5d0cb43e7f369fbd313c8f8c3eefc6b9a30f18a0e451f2636d4d2412baeae594fbc7a8fed0e5e839ff17f746f1c81bb87fd35d464b464ad12d560f35f84c956ce5b0da653d494e5e7294dad347b48099e2feca60d2329e5006ebc1020b21e6d2f59f8b43047514048fe51eea0d1865c0227bb7065c62b12173bba3b3fb28ca234ee0441b8c83c200fe3a3a221acbc199664ce775d2521e64f82504d4dc4e1f40ec1915c321fdbb9d9982d6dece9df55e89ca63656360fca6ce105936ac6f768029d4d20316d8d70844eca3c0f8f262fa972b70c55fef5fd25e702cbec4c09c5fcf5c333fa1780cffe1007d089e88e86d1c1ec98235acd742055ce1a3eb0ad83c3bdbb1b75fad0033ccd0bb706e1505280367768b7f41d7c6fdbaa96c2eb17ab92447fad94120a74e24306ce5e3e2366431c8fec980ca8531a1c70cc4b3937781d93cf5b5fceeafc74ddd1e7eb6e3de92555f33310278608670144a314ba3416aff9d84877a4fb321ebdc935406962c6be6c6ba31f0bfbfa16c6c2d0ca47107578a8f02b2c8238def34e51e575f7a64653cfd797ea3f4c922b25ad6989e0d70d175fc05ae34c9acdc40619e2e4785c73686eb2eb41367fbee5639468e59a3355f6cc49aac35f73234eb4af37386e419d428392c2318f90fc619faa1f3119b70a9069e396ed7497b99b9cbba4ba372734a739e498419338d2685e806311b6bcc42d8142ca194a40843827d031cc14292fc8ddb1fd1862fada74a6a8a0ee40ca0c7546e8e2f2e4d942b426bf82f0a9b48be645a653e4a6f56100363abf9f24f1ef3e3619bbf1bd57aa4f69e0e16fd54f2bb9aa3cc2fcc304af147840bc5e66d2062a8274c01a91d316021cfc87c2b0159d719de4255a3472680b9e5d2c03ee3d68b40fc1843334303e1ff16fa0a0ba721430f6c609b64aa10e2ccf2a5d9a02aa40c5a1cbdb4cc957fdde8d40b7d83af9f5f7ec790f6612dfc941e4c853a39b4962e1e8d967e701c571664ee24aff3e7dd2ff1e38274ffc2f6c99a80aac290dcb8fb833ee67f6adfa515e0b59c5e14554b449e9ec8be5704ec9f242c978da8fcaffdb91ac9c1e9a238d9f51cc1e576e26dc9cd23d6359642c883d054417a7ac71b0f82946431412a54b005f31e0f2ef3a72c9eb147bdd6176cc0dfdae71d838ea41be04314fa4cb72ec2aa1beaf254fe18d52f0b991d8ec0b00f7f21ffecde233fbbbe47856dc6c742d8abccb1a3686fa3f9fcbd05823100b2305436d93ade5921fbcd09257b6f02d56385f99cc972d0908b091039a55086fcb4743f961fac5da9f39757d3cb5cbde2bc3b7ea068d3b6a6f4b388d4987dd516da26ce021225851c4a47169f40e6ff3da59e5def9365baf8a4f9ed52537506390669c79ebbffb290c9a3bd058d77426a75dd9dc49161c6cb26acfd5f1d55614a46647beee5ec6b9bd60bfdc539e8f353807751af43daac61939c22fabc2064061d0a5861cf3c699e73b48d6b29550e18e084f5c88c65cd8c5e9ff54467a86d6aa6755dc93fff6a5075916710e7490582dba9eb2d450498624eb4939cfefd0958518cb555d423bee60d539fade6071308ed68e202763e2c1cf123f346d0a41556afc3a35813b4f7aaf5ee97181ccd3b57573eb4bf46450109f32eee98bc78b67bdf7a
+Pseudorandom shared Secret A: 7755f20ee19646dbf3911cc0e9abdee69059cfbbf7dade97f2ca42e71c3b0e0d
+48e52ab8268ea338e3fc71e60f7a4d3300c05ae6077a2fc3ab1f513e93c88c8a8981bceb10ca7c4c3f749091e8fa6c33559493a7d179fdf23157c14c9f1ff900
+Public Key: 60b4343108ab2751bac766285e63a324b301aa3c246f053b8f60288e6a2af162285c8aacea785bd967c9b89a994cc7a3b9f57f5b52865b441e1bd988fa00727a54281e6768c1ac4876b0655798b7e8c31b15d6bfc4961567517284313dc49724def79b1fc4a34261237da8b049f407bd03191712b30c01209aa13fb050699d8920c656566d9119fde057e34625498153c53c3f4d905a2698544a7076cd56c1fd5111c4299147a6745ea235bc6086b3600e1053557f432ef79a2eda30a808f2061fd898954269af775256c030fd600fd02b814b0160e6579e05c815e1cc8f7f3ccc8b017166848b6dda56a1e775cef20fafb126641a8a1de6b0cbcc944b4826fa770b0b9b9e0317b914866daa217662874879900490a4295f3a5a9d577127558abcab8a3a510d72597379a835e542ccdac127061764b9ea2b18c2c02dfa14f532945a685322cc3c52c78cd3c79ddda20f576298bc150742f3ca8d436995e311d5a14a394b017ab982296a2933d4a7504b01b24491bea3b07b753800a234a0873e30e855b2117e526c784cfaac5951672676b1ddd65bd37993078467014ac0f3b26fed66a29c07936a480854d445e06014f96876d55050ce3a824fb6056aa0c18f850f3641343cdc5eec1ccbf3d97b05222c65079e2e62c0758c241d729b28479977891541dc41454755ee177faf33b641f331edd739e862cfc7f39b67316e14e24ff509cb15f49e409ac146f2830283b5ea98c5e1eb437163984d27c76706287a44314e7955822810aca92f339b1808437a1cc92d27e24aa92a6eb19804a4160eaf6739bd71729ef3904fc8bbe203a0d573ce099478e0952bf8f1712e63cc53a41834142595648a22c915eeb798f27b0f796327aa091c52fb7d2492a19c46705edc4368540592010370b10c7214542de10a9f78a4c83aa9c5d55d20aabaf927b86cd0708f979f69c152a5f439b4281888f5505af98f9360326d7c8e9a6397d2813cd63cc56049628a54b4f22c9c680c070c8b7a5ba4805122449ce65ef4973c27955c89d700bfdb64e47c1c76c01797cac924792945da3a06c7be7f6856ee070072cbc7bce5331ac09fe7f4cc2b66498fc53c0afb4f824abf1a3b08549ac3e6408deaa446a223966dc817495a8dfa3217aa57727671289b263725299305a468a4b7394b25c94ea701d403800679283d11c50796604a5174c7545104a5bc7da243406bbb0298460f548befd90a64f14c8758c1d62c4cc092cf629286fbf43cc04cb6822247fd1263a97c3383aaaf0dd5b39ff2c661a0c1d108a708749e32bb41343795e0193634d28e3831bd32922ea690457328690e957e4e869dd51128944760095062c754cd127bbbeec3012d7786cc78afa022a5f2393ea4496a834b6dca553373378818750dceb26d761012e3787437a0c07027a8f41c03fdd841d20ad02bf1858f9c2ce71558bdc08302c5155d7a1740206ae12c7ddf1421a18194724c0fe580684462c02f32a71ebc40125abf1de897cf646fd676a6b1bb8e9b8b8f15822eb6e5a4c4c96fa30c811bb430711808b616046e777f3564a4191bb42d160ad434a5dfd47c3d496cf07c7a88802b2cf9cd5b5b4b7b301294c28acdb8633378ca7231cbf0a484a85366015773de67398d343e6a432017d9897cd16d9aa0bc186649f5389551604080b48705a9bc0cd58036826a1ce5b1ede108a73322bc56a196608497cac224c3974b00c05515942bc2696c1b4132a12d1d365d8116bfa4e66f00c7cf3026afc0e31336b00c39ba5a01a557a37bb54d9798b56a0c61d59b06b3b55531424af74350fc9d8bf2ccd983ca6c885cd3f0036d83c1df549660064e8ed6b0afc41cdd11b54196abade450a3388d149a1c004dc8d3804e9184b378c02d5d7b445fb60b765929ab97c1b2c60b22185828776d89b94438c1557d37a99088a5feb04b3274c70110917b642e74b427a4f3baa6217310a35b2e7b16e53545c078b728bac496e1958216b4b9bc1c9b5570fb32a760c4584da375c7a7ce1ae24c1a49792d4b45e34a991ea37ac19c7c1cd6ae20fc24cee859b1fa7ff5d7061f74209ed308eea90509fa268b93c078386a30b0c3da0401428083b0361d04e1041c6a097e19b36a3ca868ac9b1169971eb45ec4f6cd9144519b968ad121a83a712fa492cd7933b0b8334ee77a46942b03b50e59f287fae2abb52b4762f16827301d
+Secret Key: 31d570552c952913b86b92bfd810b56bc512fed756deb711f37849c27b76bc98ae9416bc84b06e1509278d5998117ba2ff69088001c49dd0b6cad40358fb5476f6254736b30af8871b317e07a84fdeda96855abde55c37e6f452f1a0371e79090b0578c3552d2dcbaaa3313b7f7bbc5db390fe513f02e18b48c9894d71ceb4a5961cab6578727473a808fe45a66ab420789a820fb6286f455406467b769167db5b5d496379a6e483b6e3abb9a06224fab05ee72863c7359d76bc24f43622c8480068407cb958f8a317ad9badf77bbd005c51faea1f2ae2892c5a2282c97707c9c6892c8887ca7aa45416ae80c537ac51225918d491500c7a288445b60b6057da89bb6c936b6eb3cb02e9b74e4ca6c59c00c0c9a5931b34a42347aef11a9ae02ec2ca785e5a627cc7c153d27391b3af20d533ccc1c2f5dca08c982375046404221d3fc82ba8691f7c10655c38021edbc878b8cb2749b7e0941466f23616527703320f89e2ba6325cd6b7b30f5351a62db9d040143194957d565cb17d5a728b18868416612bbcb3f208f53355f372b5c243c3f421bc3b01a9f610a7fbddb10aea2b9d64c753d0b8cfc719c2cfc4e36f196337a83f18693e24ac8d7a58ad6d6ac72567aead06712c8c3e09740f04c6274d0c53257cec7294ec0c46e5f3a4208a9bcda6a729835768ad90b71e5491f04242df447eb26b1e1ab39f3309d5e177f1f49271ff602804745b9e74ccb5ab50023b73032954e025a8f1622109765b5e8224cb11194d096a000256893a010d886e2cac75ba54934e2b909d08d2d5766c08baeb3784ac029ab96d80a70743cfabb7a9711305bf78c967a66a0c30f1db699cf341c187879ab833cbff75e9a600ce795487eebace2b43dea609c52f1b3e40019a0d63c39cc1a0ca25a57f6b0fedb1a7e72119b2c3051263df329c477798670e55e7bf387054593f9b867a7f16939cabb97d17e0dc5cb20cb28d6a7cf2881545f1159e10b4d88325e5c757f968384ae273477b0a4ddf2b7a4c5ca9026a2dbf0b63b3884006d5675e2091659cc2854cc5f50aae49492b6c7a43f8bbf3c199e0cfc7e7e2957d6a7170964a369c017c152cf0e01215e663f6d6b17a98a3fbaf2809fc67e1b83ade742c72b2c38b17b6f95097f18177e7440c955a863fa52cc595555d0a9268f975dedd41d07d60fd3f7afc5dc7ca9dc4169a49ac691211ecb10ada45eebb63567e0cd44f31e15c4ae53eaa8d1d116fe5a5230123ebe708c9b31800c399c3e05c543e75ebb878cb5e4839f16a93eba3f6b7345a7348065ab582f2cc3b52c83532aa9ea2ca439a8382b894db561ca809c92b58c6075f1694b1a64f4b1c9ce6a58c5294bc469cc9593c989680373e78f4cd019ee2b63dc2b9017b81fa9924d501a82e717cbd3fc9d20c098b421accd162077785a3e6684fd5aabb984b83a8621911ac998f3612b4b848bc21e9c649e1af6497c032527ac91d8caadadd5b200731c1276401e9abeaafa7a4c52c1085c9d012c942f92b45b5816fca3756f673bcee624c8c43e60f441663a3519945c69a4a4d309403ce59aa8144e382861439113df875f406168e77824535419d3dc1266b21477c793b526a67673612e809416a24a08b865b8c3b20c242b2431ae5081a56c3b2200d0b8857c8680034207453a97066c16b67fa0925002db28ba228a83b159aaf77c04256a7b44a3dbb2afa121232169a90d0c6d9d4aa8a4c022a9c3b24586329939550c8c39a4cb305af13e36540b0d52068b0b33708cb551d82f94da33eeccb5a180b1c8962e2245ab15e44b4be687c6bb524f5638a2023a8182b964f2b5b7403ba0650554e96191f8a0de214d36c3cc58001d32e98c50844ce976c7b73c6dc0f29e8c728d435c4d0e712e9f969c5e69672c92347df5a9ca01c3a0819630507f61e480d20169e6f4ca93725f866bb43a644b40952d87446fed2a1f07372761b8a435fa3bc4c9b497352a91779350a0889b08189fcb5c7c1775e673798e91428db32814c236151b716cbb4cfacb3a08952d777b45290936f9164f2a8795f3f91a33f88f635630bb216127395b5cd85f88e9439efcc00034127f52302a02c8c1433738864db47ca70766b1c3087cc252aaecb849d7ca66605790da89a344d9cae3560886d9c694515ee8b00160b4343108ab2751bac766285e63a324b301aa3c246f053b8f60288e6a2af162285c8aacea785bd967c9b89a994cc7a3b9f57f5b52865b441e1bd988fa00727a54281e6768c1ac4876b0655798b7e8c31b15d6bfc4961567517284313dc49724def79b1fc4a34261237da8b049f407bd03191712b30c01209aa13fb050699d8920c656566d9119fde057e34625498153c53c3f4d905a2698544a7076cd56c1fd5111c4299147a6745ea235bc6086b3600e1053557f432ef79a2eda30a808f2061fd898954269af775256c030fd600fd02b814b0160e6579e05c815e1cc8f7f3ccc8b017166848b6dda56a1e775cef20fafb126641a8a1de6b0cbcc944b4826fa770b0b9b9e0317b914866daa217662874879900490a4295f3a5a9d577127558abcab8a3a510d72597379a835e542ccdac127061764b9ea2b18c2c02dfa14f532945a685322cc3c52c78cd3c79ddda20f576298bc150742f3ca8d436995e311d5a14a394b017ab982296a2933d4a7504b01b24491bea3b07b753800a234a0873e30e855b2117e526c784cfaac5951672676b1ddd65bd37993078467014ac0f3b26fed66a29c07936a480854d445e06014f96876d55050ce3a824fb6056aa0c18f850f3641343cdc5eec1ccbf3d97b05222c65079e2e62c0758c241d729b28479977891541dc41454755ee177faf33b641f331edd739e862cfc7f39b67316e14e24ff509cb15f49e409ac146f2830283b5ea98c5e1eb437163984d27c76706287a44314e7955822810aca92f339b1808437a1cc92d27e24aa92a6eb19804a4160eaf6739bd71729ef3904fc8bbe203a0d573ce099478e0952bf8f1712e63cc53a41834142595648a22c915eeb798f27b0f796327aa091c52fb7d2492a19c46705edc4368540592010370b10c7214542de10a9f78a4c83aa9c5d55d20aabaf927b86cd0708f979f69c152a5f439b4281888f5505af98f9360326d7c8e9a6397d2813cd63cc56049628a54b4f22c9c680c070c8b7a5ba4805122449ce65ef4973c27955c89d700bfdb64e47c1c76c01797cac924792945da3a06c7be7f6856ee070072cbc7bce5331ac09fe7f4cc2b66498fc53c0afb4f824abf1a3b08549ac3e6408deaa446a223966dc817495a8dfa3217aa57727671289b263725299305a468a4b7394b25c94ea701d403800679283d11c50796604a5174c7545104a5bc7da243406bbb0298460f548befd90a64f14c8758c1d62c4cc092cf629286fbf43cc04cb6822247fd1263a97c3383aaaf0dd5b39ff2c661a0c1d108a708749e32bb41343795e0193634d28e3831bd32922ea690457328690e957e4e869dd51128944760095062c754cd127bbbeec3012d7786cc78afa022a5f2393ea4496a834b6dca553373378818750dceb26d761012e3787437a0c07027a8f41c03fdd841d20ad02bf1858f9c2ce71558bdc08302c5155d7a1740206ae12c7ddf1421a18194724c0fe580684462c02f32a71ebc40125abf1de897cf646fd676a6b1bb8e9b8b8f15822eb6e5a4c4c96fa30c811bb430711808b616046e777f3564a4191bb42d160ad434a5dfd47c3d496cf07c7a88802b2cf9cd5b5b4b7b301294c28acdb8633378ca7231cbf0a484a85366015773de67398d343e6a432017d9897cd16d9aa0bc186649f5389551604080b48705a9bc0cd58036826a1ce5b1ede108a73322bc56a196608497cac224c3974b00c05515942bc2696c1b4132a12d1d365d8116bfa4e66f00c7cf3026afc0e31336b00c39ba5a01a557a37bb54d9798b56a0c61d59b06b3b55531424af74350fc9d8bf2ccd983ca6c885cd3f0036d83c1df549660064e8ed6b0afc41cdd11b54196abade450a3388d149a1c004dc8d3804e9184b378c02d5d7b445fb60b765929ab97c1b2c60b22185828776d89b94438c1557d37a99088a5feb04b3274c70110917b642e74b427a4f3baa6217310a35b2e7b16e53545c078b728bac496e1958216b4b9bc1c9b5570fb32a760c4584da375c7a7ce1ae24c1a49792d4b45e34a991ea37ac19c7c1cd6ae20fc24cee859b1fa7ff5d7061f74209ed308eea90509fa268b93c078386a30b0c3da0401428083b0361d04e1041c6a097e19b36a3ca868ac9b1169971eb45ec4f6cd9144519b968ad121a83a712fa492cd7933b0b8334ee77a46942b03b50e59f287fae2abb52b4762f16827301d84c680df57b110cc1286418e7f9c757eb249a7cb2de2bbd3ea87bbcde1e73b768981bceb10ca7c4c3f749091e8fa6c33559493a7d179fdf23157c14c9f1ff900
+602ccc0e1e5192c19a7f0ff1cf1201db3c4e0dabce73816bb0a219b1bf61b3c6
+Ciphertext: edd4fc89afcf8e312afc4709f3f24eb6cd8b624c1c3b66b6fb5f2806da4c045ded051253569fc11cd388ecd1124811a14d0c3bd08571cb314e9e5947f51282ac4d27a71e750245a3396fe309c9c046ebf1ade57795dcc205b5071e5776023e2dcb22f877c2ef7f4668a2f2810c1ffc525307d33cf14b45d483b26abf843cb4c7bfe7b8ab759a3023f4b34d02f0cf062b26af073d32a3dc679cdf14c0e5349b24352c582048d616839fd12f2b3dda8c744fd14d2991475dc19763ce057a2856c9dac3d43526269441cc10167b83ccca69b2f12eae8062b01acd466e6b66ceaa26c90d9b22a8e8d7fca9c4be71d685d3a60cc463bbe7f046fb082b618f2a1dde5254767cff445d5f6986b08966faa289138dbe11f3a2d79401683ddd4d3b0f4b4729b80e659bb81f8ad01e27f95af5457a2626ba1bcf504026963b750ce12ca031b0ebc41abc81b18663e982dfd7a70b656efe986b792e3bb25487573295154d5426b56378bdbcdb762d57b4659e1a9008e66b387a70041fba016f47f32e74daac2160a3a40fe0bde258f7485830c4fba805d8c94ad74f5e1e3231d6a0d0a3cd6be24c004daee28cdbba71a6c72677674a57d7274917432d8ebc295e68aaa783531a0a6396c7aaae2453976375117175600fcb4b309924d1ed046c0485c41df840c38ecc9f3696e3e04c605e7e6d9971fe856f4f53ff26b87e9efb210b70d834b4c976680389c393c9186503297650f846f882d8b6e8db9af68ca1806272e040344720134ac590cee07bc5adf0f4ad1223b46697de0c0d5cfa61bfa0136abcf5204e83c003e14951ae006f7e96777bf1b9d0c8e9d34180370040acba1952f486ebce47c2a692aac2e17e0f4947ffb360fc7ddcf36184a7b16479f9975ef62149f90bbca8b580aa99169aa44b05cf6afa228a9886de999aaccfd0406d82aefe3a80b4802f30232e81096152fd9361259622295cb2a96928021001b23fa60c6e3e20d621baad182681c508addf319d6749988005762f9c44892a099241e0e0e65fe4190e5c1660b81c11bd8b5cecfa46e341f3f01fabb019ce4e56efcef6a994fabf8465616059abbbf5f96192a588383417cc820e24827cea1398f5a7eb850ec99a904c2f5e39a0ea1051d33ad5b1aad7f5d3e2da5f8e62752f8c59f14085e5a5d78ff006c03ec87fd9eeea351b43808026c7ae8e02b270f002f8dec10f254be66ffb3dcbc7794cc4ef4ad61ccfb02bf990d7f7005942d0b47110a919d18f8711b1c3e6f16db8f65ea5ef5adbe2cf38e89f406324fcbd8def32f563196fa82ad39538de941e01ba76d2c7e4f1f19877cfe7afaa32df32412e8f9971a3ae5ba67bc9bca55107f322850c9d11a6cd3991941e84203148017e7d98ebd670429670e8b4ca1ab9d701793ba151c990ae9a64a18061c4d5961d9b8cec37d80e60b3c6ca469b79eadae3b8d4b57ba8a29c0125b822ce1611767983c82ab04e1f3deea633d29c10ad5fb6f60cc0496690cbd2aa8987378378cc05fd07a2056a57f92ae7cb1f6b9a8f108be582b6526c6c767ca1e518fb624bfc3a0fb0956a455f2582e15c405367e52171587564b01955c60ec3bfcca0e5253d04408a0550201fb9e96ef05f2681b5f4826d9aa6fdf9a49337c4132d73ae4f771ec3cf49137505e8acf0fb75eea8bf67df270a0d8e708bf9723afa06f5dfab9e2e38188a4cc7cdbea59183f0f9b44f0e5764f6caf7a97e332aa7894aad582326e30a7d15bf74ebf33ea0b5bdaea63655944673fec8dcc487fd215d7ecd41095c2d7f5d4736cb4633d96f92f50bb8e1e770293d7f514b60d6386d458b38ea6f95f2014be7683e5ee92f40bcc0a911ea866887655e70e763e55e23c7bc28b8dee1435637dfb6e53d5b984c4de90389dfe6d92f7ae1c87bdd5458428e5273a4176d4177add999e00c21333bd85f90190a154556e5a8e324c0e14f925bda9fcd0e301300bc9aa630a6c57370785884cad18cf1a7b85d866541b8f8169f0810064e88a0bf73216eae1e5e2beb20fb20a0a68e3c340c629e6e77459e80bc7fafc5022e5e495dcfe12124297fc0d266a338751788b3077ccc583900ce0510c9b39fb9cec39cf260effb0aae2738abe0fc6d2d8bb44369d0429fc7899c9defc5ca290233a2158c56d02992779177e0c69e8fb13878051dd3b8eaa863c030ae348fef740f90aa3875ec15469be233e4b4
+Shared Secret B: 538656ac6f786af52cec54a47491605f291eb80246e916c93ead4872ba4ee6ba
+Shared Secret A: 538656ac6f786af52cec54a47491605f291eb80246e916c93ead4872ba4ee6ba
+6c6a232a2985b349f53d375964abed029eb8d3759f1a5493f77c317d81acb795c1989d483788733606ebcda04b20985337874a056b344925bb04424715464a6814bed3dabee1d2549c662eae687aeba1d88eb839a5211887ad6c3752b643cdc266d97874f5110b1c5ac5fce293f57d912841a5376c83207baadb5724c1f73547464c7ef0e9f9004ef772cf6a5c8c7875e0caa9f1a8fb423affcfcec60c869ca1f0682e221ac5bf92409ef60d2ed190f026d28378efb6e2ae6f2c86b357f1088843393f6fe8f12f8b2a7dfc44d281341af7e997ed457737273f21cf1f231a2a4dce928c76196e85f9c9eda9760b3d87e9c44eee482901717726c22e590f64a1d40bfc75c5eca4b9c3d3586b1fb7696eb60cca7bb10fe7368ac4ab047b0596abe5c83f59264bd46b6d72b8cee26f42ed7a5211e595bf71686f802f858655c71e21d2d3f0e512c4faa00e0d14a131482ce2265c50b2d5763ba2bc0f6d3cb142631c8cbdb2c28970758ed322859088164640877aad25adc53576eaf71a4712a35255c97f7d4aa03d3cf04bf0d7262aaac22f48a17d7405b2df910f8eecb21c15456df068cb4e11581e43313370046a10705e01aa0f9b0a79de854950b89f7a5d9267a80e77288e5d78cb2590e15b22705c90955dbf87f3f50054ce3577221d04a889e0c8962a2c4ce303ecbf50e5beb350bbf9991ce95f4aac43caf4a9e4204b0979a23cbd2d50a27a7f525379c2c549c6ada66e4fc90680ceccb3e59a74ba9655fc72c7c3222c9c8f0c80059604d53ef3fe1d5ee9cf64cc177873f560a06e3b1c24a1b697fa049be79d749c5e1d69b8fcb63d0f37ffa67e467f60911e79efb5048d6edfe0df8d889db09ea68e1b18843f5239b9801562e46126a1730a9dd3654ed80734427d59162ce01417d1e18b694728a24fa26a1a19581a09f513c4b4ef56c1bd0d8b68f2659d02bce21630a75bafcffc95f6837e2543047b8fe8fe081f863f8e2915f679e317f98e05f8a027800a590aefc0c136317e809c89ad28a7d5a565a66e4ea743f8cf21a75549e8525fa8a0bbbc822a5567a966bc74646b447d64e0d433f12359578c5cae6497b49f5d125992e75bf3f5cb3cd3249818127c4d9264e3842cf0be81489e3c2c319e7065f8807d821711c1880a774fad78eee604b33e0bdd08ab53c069fbaa66c47b2d97e64546dfc1a96b9230c9f2d25a0a96b43dfb9f9f1987799290441d72c63edcbcc04ea8924e0658241122703f19614ae5f379ac2b2af9aebf4ce6f583ab524c22053ac21dd9e34dc0be5ec3ef6349b3c1d7da6a127609684466e8f713fa0310b70672c1f3a4ecad1a8419541435a47829e3b7dfc7ff6c53e013f9e4f1bebb297e61841f299f2d1dc657a147db021580f2bc3bd67c91cb0505943d7c25b211780c197e68c5f83bfbe7d504d8e414b9b28fddfeb3c23fcb1c7c1e34ff233f884bb3518bfe3730a86df26e6f9f5ff01734d9eb7c81387e4e600f1cbf501f0864b90f1bb0f32ab7dc6804fa0efc28d8661bb62ccf0b9f581d68d938872bce83f9b0ec994d489c4322755c1bacf083cccdcd2ee091e112f19f70f95233db5c9534315203646e78617d0c015ee5c3781b79a26c28c7be454dc6d21f682805ca66a328663b9782a1728984143e9137099732434e73201f9d0e12fac3078af26226d308a6c05ca866a4ae87ed219d5ff3ab1a79371cc6e5053a037f5ca5c5b7dee4185f22caafe2eacef007175c8069957e347f428f26a899648c29ed4ec9aa697a55e13296838e5a7e619aa725087a3bee2af43fc4e8469ce4f17712f6b87ff2e6fe1843c301de7073f41cf93e152dee5588498fca5cc055fff76feffb66002eb44f13e01b497b54ddb94727d89982a6c0cc0edb7f45a5ad6f192d569955eb82b149a5b99a64f10c7e45ad1c52d0e8befe7834cceff8f421acfcd6b217e6b9faf407c3ba2110ad62ef17dfb60f1068c6e8b44f2d9c3b61f9a4288ca66dc797338f9ca5bcaf2df052c14287654a17e2756d1910bf23522fe2ffb654ae6a43989ce8541b862218e5fc6aa29003778cec789cb5370fbc354f0231505f99e7bc90a2af24f0d5700e5970d08249eaef70d6156f542ae6dba7126014a16e4f922eb8c2cf2080611804fcb37ff9ffefee42469257f83a39b0c2878bde945112d919dd61368c61a062210182d00ca4065b2868650ccb1d9f6b1d
+Pseudorandom shared Secret A: 55f4b50a369cab449018f5c68a9c53be7303b72d1c3613d594633fd68e014f4d
+75386a5d590783f596747389c5c2a42b647692a3c25f52dc611cb7d5ef2fff2fec5d3df80fa00039d70206d0a30483b1253212ac2f0177c5168a36d5245ef30c
+Public Key: bf0c06ba3711922729dc720ec8207efec1132b39c5d75646ed5059fb636d1f206788087e2c7b0a9ef247e58567208192fe1b6fb5b67eecb91a935a67d40a35d1cc8b2893a598616695933629369dcc655e061c244ac8216b1b0b0cb41afc1918b9ea0125434d7045ac6dc50777db3829c246fc469cf33a8daea012a9e555f721945cb2679f0839ee36a85f25a53517c6c813c450b32238c7858bf8afb71c5c62910ed3da3f2c769034aa4a34e163de049a81a265bf835837ac5cc5377420f6a8654111852c59d69687b45041e4f04b8f6944cc876e4fe77322e5bca5093a6cf1913b4a3937253e5cd825b6e04d97211024b47255981dfc669122359249cb77c8f2a5f699400aa939bde5a121e17700982ba99b2a221a8a766a1e561a10829685b94a78a93cb79d15bcd2016de2132481289fe3899008c29a1944c5ed900c04f8a5f4978502670edf939b79c77d37f412f561a9a1174aead3ca08f22bf22033e283a54f12c66cb28aec754ac12cc5d73c07df2cc50b660b6b426e0d58a9d6f33d82b593305bc95d7b1377c00638f294b0983c98f242370c54dba65fccf93acc31c2f0709017ba8f0ac0b9eaf983d0432905e32c18d83ca04b0c4e0c7e4ecc7f6a285786d23f13e9680a4462cf90180ed816480666fcf613262440a517ca4fa702a425992667a5989c8ed3f935cd52b6456a6aab903634d50a1ceb484059c1ebfc729db451abd26444826270c4645d852ede38aa9df531fa649623f3ad90fb5a19957f5ba7556124630e39b723d114058b8b602763d2996c2e106c7aa623f01b6b3a154bf1123df956a3f4a319855722ea8856bdc342f6c0cd1a2bbc0ff697dce97c5fc341f87a4d6a92c312f689171972bacba9b42538b3c6bf055c841e5067c79921008c5527539435b221680654e7ea9894fa0ca1c10e21043109446885e1213bdb747e288db0d4af204bba169684a68a5c6e7010732caf169cce7f81421cd90100d0b90097393b7390eada62ff076a1b216860fc4f656a35979489e9f60a0a85623e04b085d2ce05f05a7335a18b9498c51083fac2c898c630afc5b34ae8175fb92fcfd90018d45ead23c00714620fd05d8d8607abe817f919363752119aa431b1235c4f37ca6fd06b4b959ad84c922af275ad71a770cc480cd77edc501d2692523a29bce78886e8f78c7dba5dfa322529ab9b2c11928d095326cb33f80620aa61519d08b4dd326fc83554f7dbb3073206e251b3c3cc3ddfaa02cea940b7f52c7c6c0bbf9a0bf5476eeec64e59a0190229a65e082c4f354cc52029a15abe62c372a6c1a136c621c0c00b607ace31a23b3fc602ec96769fca73a3b9641c7164bc309a1c85906d8539a6ac018c02455718597da441bc977b4a651d64eba74fa66672f3280b3737ca65c905380b65f814025abaef68c13230b2a4d4b28a31a29333ac5ac001c3c753964529b1574507c72a024c2f1928c28ec56689a76daa401f4300733e65a54c6386799871c472448ae4b2a49b5884bcb62ae7610df67edfdac08c361b719b2a17746b67fb778bfcb5578a7da8875920c297c4e876e0d03a244cb38ecb7ddbc58f18204ab12b8e3bc394fe15c2eb208cf50b0e2f8c144e5ca74bd165531b6a9d048f57cb05c7a4982e1a2324c33438b1a9e7a9c92f07b90ef389869b25673971ccf50906b7ba40da3af4f75ed4a6018d9368277816ac6cc6dbe7257530c5c88baa1c908917c08695899198bcab62808f1ec977da0c036b3c5c6b5b6c810b638532b6b19ab6103a2066d6487341a63a83205311a4550a5aa5553d3041bc5fa779a1a118f5831e28c473622b0013a351d8eba3ba4a6493b83a7737c1cf827732d65bc1d29eca4c1382f97216b81ac4996a90d025f1fa76e1aca81ee917c8c3939ce1b54a26b9bc4162424c3bc0f642f3f82df958891b8b76a76248d4d8549de9844d7aaeced7aa8c8485bd5759a0194040c671f4fcbbd1b416871307b12304fd000287a30635293dfa203184d996d71751be729245b60f5673b333bc4599b36b0fa705b0c15f63da3597616d600374ac0491f64b940b36618df7c84784cdebf3297b101b9771c68df5477f712b722918ebe11e13d494128c57c5914dd3257353146000e07f12a1c08fa35a9c60aff5b84f8396c8a97b65f9eb819bfa5dd7bccce0556a7e45a60bb22ca41ba2a0a889815c375edf5f6ed3e1b2a5
+Secret Key: bb996bafe2a8ac962dbb7a294cb85eee1ccf17222512f495fb151970b032cac8a9c1da4e39948462aa5fec999a2caa616b421c566ac995b5609b36ae8b7678c86624a9c4204416af525490ec95cdb5d033763a136cd75dbbd00b0948bcf32aab324babbfd9256c37badfe41f0db795f0c8268de2973a8312464350474c250c4651999a43ae651ef699a76c30bad6038fb8640ed7f474b7e502c6140a1c00bfcdb7c2844c3c49538c575172e913a108927f687943aa5cb4a6ecbcbee4b3d0ccae5434c45b819829e1559c950254b96debe5b04713b9d38949a8db25b56b02d9f80c0a058980363cdcb06e12b267f8fbb874251cbfdcc9001302bce1b2c32b3d4fb8ac5a832a8807cff8b22d5e5728742709f9c177a3f75a92c74b11e846c09b5e92426cfe809e2d3a7987076407d71c6d668daef969c48c9d8f1083d5b5985af85d9107766c678bdd2b169359b24b57b08c941b47b1758ec7be0f043e8ae428de57775e83a009079fbfe4a85dd23ccd503bc440aa2d8b3fa8ca095a78946403275c4c1f36d42168a85272e46e6d77bae8f62175b7c2ea191db082189bfbc7f25a8b175c3689d14b2fb39c5da084aa1c25014717c42a017066b392177721b19c2a595dbc895fa4ca93a2247a758a8d491242d577095cf764aed8a5d0710e3f9156ac41be8e97103d6559d93b3418e0b6f104b7a90966958b5bb669151959c93c950ef91a2f740a3d69f634b45b2298a1b69cd1289043ccdb0c3c5d26925637941e82a073893ecaa09008e444b72508eaa582e513c5e9d797ee8757a92c8aa9f5bd5b85b20b5cbbb2343d7930a836c4483b0141c6387affcbc5a1b76b74697ed89c4fd45649cdf67fed040c31693616f8af3437cafc0b6cdd0842f2aa4da2966e4c4ac198d728019604052533b3924abbdc031e12ac6bbc1805e887d14131999c4f89f22a09c767e0aa9d02b4626f1350ade2aff290b25e26cfa44aaecee25883a3bea8922912274f761bc9b858104bb6b521468d097b9d21aa35ae62a4f5d50d6201cd47076319556131936f2408a66f962f2d4023e44aa16409cf07391a4e727b87328353b66860d7776e24a1c61b09a76a6f8e62a2df17c0b8349710a9a7c8b82f6ed5cfa7a05db4d34a408a9395bb97f9570f480214354127edf20aa3899d176ab55a38ac0074290e6aa292738a108932b97b410c928e8a1b58349a340d81a380c8c65ff602e6c5235a8732c7e0c0b7269cef081a6975ca3e5061bb074088dc0010d8b4ad4c86b7552c50ec0bec41c1f00b2c0f2225f2b7cf8494b66bb122e22acf8ff818a5570214fc7dda426bedd479a1f41d3777a361c42af1113d775186f641cda0178f8d1c0e9a7799df260a9292744daa6c41c63f2a10424c470ffbf35c734967df3431ee073ed405521d0075e1563b51484eb32b8e58b8b9bd04770ba6b04e633343146688705cb4e1088ef80b1b5853b043cb450a7299f97a7933a5a527998a57ca8715189cc54878fb9dd26162591359c3c195b1ac01623a2916a13eb4e84be38c40459343e2723c52d2a60c2b001a6b4a561a23c02420333c572744babdb99e0be7c4ef76c216ec21f7308555f09e956c43e9b0912fc4a5941aa9b60902f5400933b4a66540c770e184e47c5c2697c3eab94dd3542a23f5051cf3378fd7590aac3f62664ba793531d09d0b4c3a84016ce49173a02aac440aa685f0bcaade1898f6043f9029f91a7808b22015fb11927e6066e96750f392a53b1a262c00a7f5c3afae8751eb2588dd21e0d592b29f35129427a305bacaf198aa606bf7f73cfc9816b7e17621de59bae349ae0a60b55b261a2479ffbc4cef3db7c8b0a802bf893984423454c434622bdddb67d462c723bc5208072cdfe792c8b266cde8914ca409dd45b03d9f7bbb459c119b36b7618aa0d14382727b19364907389aa588775e5b075ecc6059827040a9c4dd189a73c7724160288a4774b8fa23553b43d330538200721d28b8368fb154fc9b16d9a694119a7da5409a884b2c2fb7cbef43bdf20caddb6b788043767f1789eab19f1675285e566a6599331dc44a1e274bc0661a0b637742076224436136b1aaa419751b9a9d4e993d7b5b5f2bc0ef3b97bda939be596c72eb460f1585767c9369ed39402c52f29903bdc52a43fd356bf0c06ba3711922729dc720ec8207efec1132b39c5d75646ed5059fb636d1f206788087e2c7b0a9ef247e58567208192fe1b6fb5b67eecb91a935a67d40a35d1cc8b2893a598616695933629369dcc655e061c244ac8216b1b0b0cb41afc1918b9ea0125434d7045ac6dc50777db3829c246fc469cf33a8daea012a9e555f721945cb2679f0839ee36a85f25a53517c6c813c450b32238c7858bf8afb71c5c62910ed3da3f2c769034aa4a34e163de049a81a265bf835837ac5cc5377420f6a8654111852c59d69687b45041e4f04b8f6944cc876e4fe77322e5bca5093a6cf1913b4a3937253e5cd825b6e04d97211024b47255981dfc669122359249cb77c8f2a5f699400aa939bde5a121e17700982ba99b2a221a8a766a1e561a10829685b94a78a93cb79d15bcd2016de2132481289fe3899008c29a1944c5ed900c04f8a5f4978502670edf939b79c77d37f412f561a9a1174aead3ca08f22bf22033e283a54f12c66cb28aec754ac12cc5d73c07df2cc50b660b6b426e0d58a9d6f33d82b593305bc95d7b1377c00638f294b0983c98f242370c54dba65fccf93acc31c2f0709017ba8f0ac0b9eaf983d0432905e32c18d83ca04b0c4e0c7e4ecc7f6a285786d23f13e9680a4462cf90180ed816480666fcf613262440a517ca4fa702a425992667a5989c8ed3f935cd52b6456a6aab903634d50a1ceb484059c1ebfc729db451abd26444826270c4645d852ede38aa9df531fa649623f3ad90fb5a19957f5ba7556124630e39b723d114058b8b602763d2996c2e106c7aa623f01b6b3a154bf1123df956a3f4a319855722ea8856bdc342f6c0cd1a2bbc0ff697dce97c5fc341f87a4d6a92c312f689171972bacba9b42538b3c6bf055c841e5067c79921008c5527539435b221680654e7ea9894fa0ca1c10e21043109446885e1213bdb747e288db0d4af204bba169684a68a5c6e7010732caf169cce7f81421cd90100d0b90097393b7390eada62ff076a1b216860fc4f656a35979489e9f60a0a85623e04b085d2ce05f05a7335a18b9498c51083fac2c898c630afc5b34ae8175fb92fcfd90018d45ead23c00714620fd05d8d8607abe817f919363752119aa431b1235c4f37ca6fd06b4b959ad84c922af275ad71a770cc480cd77edc501d2692523a29bce78886e8f78c7dba5dfa322529ab9b2c11928d095326cb33f80620aa61519d08b4dd326fc83554f7dbb3073206e251b3c3cc3ddfaa02cea940b7f52c7c6c0bbf9a0bf5476eeec64e59a0190229a65e082c4f354cc52029a15abe62c372a6c1a136c621c0c00b607ace31a23b3fc602ec96769fca73a3b9641c7164bc309a1c85906d8539a6ac018c02455718597da441bc977b4a651d64eba74fa66672f3280b3737ca65c905380b65f814025abaef68c13230b2a4d4b28a31a29333ac5ac001c3c753964529b1574507c72a024c2f1928c28ec56689a76daa401f4300733e65a54c6386799871c472448ae4b2a49b5884bcb62ae7610df67edfdac08c361b719b2a17746b67fb778bfcb5578a7da8875920c297c4e876e0d03a244cb38ecb7ddbc58f18204ab12b8e3bc394fe15c2eb208cf50b0e2f8c144e5ca74bd165531b6a9d048f57cb05c7a4982e1a2324c33438b1a9e7a9c92f07b90ef389869b25673971ccf50906b7ba40da3af4f75ed4a6018d9368277816ac6cc6dbe7257530c5c88baa1c908917c08695899198bcab62808f1ec977da0c036b3c5c6b5b6c810b638532b6b19ab6103a2066d6487341a63a83205311a4550a5aa5553d3041bc5fa779a1a118f5831e28c473622b0013a351d8eba3ba4a6493b83a7737c1cf827732d65bc1d29eca4c1382f97216b81ac4996a90d025f1fa76e1aca81ee917c8c3939ce1b54a26b9bc4162424c3bc0f642f3f82df958891b8b76a76248d4d8549de9844d7aaeced7aa8c8485bd5759a0194040c671f4fcbbd1b416871307b12304fd000287a30635293dfa203184d996d71751be729245b60f5673b333bc4599b36b0fa705b0c15f63da3597616d600374ac0491f64b940b36618df7c84784cdebf3297b101b9771c68df5477f712b722918ebe11e13d494128c57c5914dd3257353146000e07f12a1c08fa35a9c60aff5b84f8396c8a97b65f9eb819bfa5dd7bccce0556a7e45a60bb22ca41ba2a0a889815c375edf5f6ed3e1b2a54925fc9825ab6619e9f3d54ea33b67a9efddbea0413199642d0a8eaac27fc0c8ec5d3df80fa00039d70206d0a30483b1253212ac2f0177c5168a36d5245ef30c
+61b5a6d459d56e6db1d3367f25a91828c6b430b42d1f50981aec6cd86d9d41e3
+Ciphertext: eebb72004b77c1701cff1bc2f77950d1e2ce81fb1f79762e0175fb1adf27429e1079b06c4b2a69cfe99159522a0c2b8bce20a0f1b8b4c74ee1f358dabb3d2496ace2c71784a8f756f3e13c0862b67e48cf08f825771a4334c2efb35548095fcd9b2760f2bc7486c1388a289bb620fa0202a77ea4b55e809f406814d34a589d4e0d82b04c90329dd79be3773a6d3a24561036bec6f311c754309ffbb0bbf674b0f97985f23bf5f9a3fcfe600a566c17433e75ee9ffc1e31e052f11a4db3f737e6becf9fde3b777fa10ba50d7c41680db14db3ad1540b14becae6bd4c08a6805d97ed50b8220c2077d8431b7b3fbc50539efa1650b22bcc1f0a9230c1a56ade0c8dad0b2530b5764b8a9ddde4d703b54174613f32e084d8bc4f4fbc552469718084f11919c08a19872f1bfde72c65824cda597f8aeb695118dc85f5a4dd5ed60f187954e06b6a2cc025c7f6283d32dbb8f04e09c62cc7b5712a5f4ea654236b54ef2b5a54469a10a479a6b76a6e57a29359f13fb651d2e8a77728e5d0da13615f0be539553a2af610cf4a38885c882a8c9ef24b0622d2127252344a307591d9055700f121d21293a0e66252eede23ab913385810fae51b932eafc0f076f0c764b7af06a9c2923ee6a8a47abad4b289781661a0eb8a34100232c4619148752c76227f0afdfce17e843b9823f46b31a1c9254fc04d26ee887d24ffcc3d7d468a5cbf61d018b021d7c70ba84c8a60a1ad28a9e3bd4030b81cdbe166ac997a712d2fa90cd244e5ef09e2a8765501a7e799c182ecac60e826c2f22b1f23c6be2d4b1d23069cf09baf44530488713dd89c19947de3c3a1263a9d368847767594ef9492293251ae9afeb170568f0e384d74017f464bd513f782098eca684c0be7572a07223fda822968010ffa1588d2542347156afe6b48eb5728cdfec69d119aa4f5670c1f9568e70e995223fefa17fe1903b289ded33e4aadbcf94bdc3619d6b224c16dea8b9a7e4ea138aa386796826ea6e144bf8a59e2c45362356394990a0d8d1c8bd8ed115b790c279b6a73ce6ad8e21129adaa1e5ef008d12038dd89be35fef2504a418bddeabc7f506e099a0491cc85de6d5201649d73312aee46e1ecaef9d4a3e006740f48ec3ac93b69e1c1a69bfc8b989b51fb0f9d3ea212b05637d5a18797da53299a4c795e628415d52e97b2d9327ce54d24d39139c92f9a47d3173cd92ec6fdc52628fef4893d46d7c279aecb59af2961a665b14c36e78ae1bb182876c877efbbbd53c34f473f09ba32b376bd5e2b069b53b932751cb5f9c6e15b515b2bfa9b995243f54404aed1b69ce9f7058608c6622695e13357305194ddb53c5072759ce74047255b4318b200c70c6c9da1a8963b815c728d38dc3c52a7b83ed76a981ec22715a94e0378698cf2babf20aacc379b1970acd6743557b1f7393c4fb0afbe952dbcf7ad329c341e870582781306eab5b3bd5d0907fcb4641bc24b848827a2b17037b75964bb3fb98e2c37381b148664151296665db8c3271640629c4d74d6f7f3cbb08d9e428ae25f8e80c4aedf98fb3d2b9ed4ac264769795f91c3f008b6b7ec6e5118d1dc7313dc645b5cb0fc7b6dd623191e57eb5a604a37e8638707f4dd0b5ff7d6e3de8a9d608ad9728b766279d5b9710ac0fc6cd64b553b2eb86193bb989bb3266ce27109a42ecdb3b022c4fd2ee26fc15cdeeb3fff1425abf1c59e304c500b26495d5fb23370a6b89e0fa25cf4c2ddc3f02826b6ef991ef32804e7beec196c2344dfa2f05bb27bf14f2190b3b98144469b70b7b51414c2ba57cba752e464a7f834be8277e11103d67f833861aba29b08166d3da281018571aec4124ff5cf6eece3cbab02234037bf0dc8b681f5c9294e34c16a516a49c6ecc7dba24e4c1b31bb4c9bcdc4ad1f41eb895effe256e7f81334e243e1b37935ae17db25af62809988d09ac6a59356e0dcc6e400a0e96ff8c9c94c17bcac954e54ff75d37d917e1a3c2c359e6c763a7bbe6ccc21bc95518ce1accc736a94f42b9a798d708d29be99570bf02fa17da6901494999347738657ca8a1fa0d5dc3efa66689e18705c81c6839c8f48bfdc39800497d0a93c56d8755e797f7a88c0af643398cc0792b085d5a1a928b73b852278744afbf689016258555410340dbd616b3919b06fd2a31c7444b12765ceff7106f00a47a46166f21a818c847f68432ba91dd5
+Shared Secret B: 68d5a4e72c0474e055b5534fed11387b0cd864d8681a2ae0a4e70cec2cf3cb2a
+Shared Secret A: 68d5a4e72c0474e055b5534fed11387b0cd864d8681a2ae0a4e70cec2cf3cb2a
+55ef3d371a97ce7693c7778f2b08451269bf4630dad769bc375bdb76a335f1e1d89c125367d68297e463bd9cbe4dabc91d511a1367cb119e337eddb218c9d3c4155c2599c6c3af6343a5b38d40cd5609a1053330da51a40459d40ddcb280e6a4aa0bdb7bf68123b83ac1a9e9817be0b69a48c61b65d72b5804b931c2121bff05e666d899153b134babb8d16a36d695380c23bc24fac7028bb2180e06d8d5f3fb1c71f89163190b61c34353c40131b606d386aeb5832785cc2619ca38a5fcd7d8e897ae2b0021fd4daf38737a3dcb07dd05712aab5ddaff1495bc550ce8abf44b5577c18b41823947d3c98662ddad7407c3837c0aebb277c6f5c5325566ad924750ed5fe4beb9bd7828c06d18ae429bec9e7990fbbf1fd037cc9724c804593f23795e3a20c0d4f5a8d57e85b5e7824fb2d23d747871efd434fc2b77c8286c1e40553a9d259f418aeeee2f77a8cf04d2cb6f48579ee5d2a2d26d51cfd444ddb13639870529932ff366135e7e14e90a9d5a17bf4030a13568f95373f5bd40ad5e9a5a0e09a119210cd1c246a7bd00500ac5ff969222bbb629ae116ef9f1dba1dd9edf42deac0a89b7451a553ecee4bddffa28d4ec9bfaf60d8601a94d44d0a454f4391cc668d08f76a287c43f46f2a8c32232a8687455554c3a5eab4c06f97652e1bbd431c4dca16a6f6e4c2e21ee2e1400a2892ee1b471d2968734d5147141b54127b202751b0070f099e6862983b7e8ceb581169f0f18d165e88e85870cf588dcae721587a2dcb97fcea1c19794022841d72ceeffd970876ef32f2c7e7ae014a6468eaa83b1c9dbc02dc1c0316806ff1e1ce715a92257f7e7f4ae80df3511f687a5ffb2e8c9dae33f79a2e83af7b2da6e438db29c0ce8c28f3b0847c6e09dde534f50139cc5c737126d9af8c11add76551e4bf7425ea7cdedf5b8e854e1f11ebf6347a2a024ef49bc058818f37b2b4b2d7d0eb2b3f43e17815d29785c38f6a8bb22c5e8d988df6142e92f86f4abba3e95144d9ef8873b46ff5d52bcc45033f1b5aa047c1f370b782f23e687544651c4ff26efdb35a198ff5883684fbf098f46b348ae7298703495f9b00b204cd9146a5253b3ceef95fcbd0dc0cf9113be5ac8242f2a0accfbac50abda2309c31234b5aaf639c305a168df23130935a35f650a27ef12e884be86c8999c861c45bf8455caccc7b63e6e71aa64021a1a40dc3e9d38d94b9995d951337382da30535d5878475f7db002460453b7c2a4106fde9e01a7f0bb7480ce86231f50408c152990189d47e5faec3f24d7649a7ff28edc61c359ceeff236634a39dd729306c06bc30f82e2171256fcc9a751c9a3846e007c964d7bf353d056046e9a21cca12c3bfa4751131e34e25fe112ced20fec5ad64296555eb47d5d30755a9d2ce227020a5c49cd7801b48718faf2d8443d8c0ae45feb46b3d56caae7f8b453c7ad4150e58ac9e366705784cd42ff42ff0b07f25019e414f7782c18f09b81d9a361d1ea4e771c8c08b83aeae3a6102800068c2e390a374f4d77659c5517ad228f688ebb73d41f9b7dd2b53be8b6137f82d5392dd237e771ca630ecd8050468c7c976381372e47d6d546418bcabe005f96d72164cec81232dd9efb3d2bd58c3f83fbf8b0eb9ca2d1dda9e6a43982a3c6dcb5db5a93dba679defa44d233cf713c957914389be29c46dceb803f394d4c361004a3823d57ba17a0040aa3ed39c66d679edbb4c0d37e72f3ab73ec3d6575dbcb67ee4f76aca80b0bcc4b120ee953302358d9f05cfabd8baf79ce17f2ef5963e15577d353b4872ef1cb733ca4975b101850351699f0ce45ca452c48ef6cad2dff81caa1f5e294fcc120221db2254b75665a7b65f2632ed219acdaaf354e7f771b4b361e3775c1b1ae7378f7dedc5349e0c457c02b22c4b2342462ab12ae857eb28f212ba6d0ef1d7cfd172e910b9a2f5f1759ce9f6ebd82ab6ca130080b2cb7539ec8cb8553c6aa91cf742bbe0870e0e4d07191bfd0f61e5da688d25d69e50dcec1ba587d7c1998d7fbec2271c2a5020c0cf3700f1bd0897143f993324b174f94f77cdaa2c5ccf41af152015adf033f596a956b141a4621b27d9d7a6695642c66b8e72bf53abba62575eaa8993f8497e969f8208adb0ede5c56c8178ddfff56152ae41ed1a31401b6173d8b793b53138bffea90ca7a65004b45c3ad2f1738b3bb1e427b6da290c7
+Pseudorandom shared Secret A: 290d2e3c41f3706a8a4a9fb7d7b136708e32ec01b22964f75a64c905e0227aba
+1a74405d99bedf9eb6f3d7984f05bb529be44b76c7c24c3b0372c62376774c5464299b1e04e282963cdd64bc8ab917f2f1686d4da590368074c81f52366d5c3b
+Public Key: 1da80aa8880b7a0048a428800691c5a4159abd4962c28a6580a171ea69ba64767448fb8bc5028a09ec60bbc826e477a028f88ed35bca2c2333e48694391404506725af312c58a1c812ea7660eb188ba12bc83ca028b27a46635ea2433919ea68c18305dabaab4ef3a9da168c552c7eb5e02a3458a15ba72f7cba3874f1060ed313688b460ee2c00aa1a1b81cb4e1cbc58eb46ca5162707e57ed4623ccd207fe9600ea0fc7e865358fe878b95522b5d329d069710ed4a4328a91748359124229643446d5d5b788e3218987586230baf37278532c2090091afe6f2949e3b78bae47c69c321367bb29755cba83425c97c93d948300b820fc5e265ef38758d74cc6c787b0504cd7b709debc1af3358248a58b3d153a9456829219ac95606932d923d67188c42ca7040d31e62367d95f0c387a84680931505f05729a3a590532dd3f11cd61730acca48d3296400f3b5e5c742908091b3577244c86ea4b39f0c0672f3c550a87b57477b9f00773a9e74b716f563b525934b29bcd6e5458aca290ecac67f938aa52042844c0ffbc2aa27e27da866463ea003426364b38010e6406e89b300e3663d111883c18cb85ad25428672b7f20173e147d4715c0b6432028cb0802e225a7dcc90f143bc847c18e498e52a0b33f9cb3b5665cf33c9bdcd2bdd2f496d1b6b777a2a7c3858597c97427c060825906f914099c6143ed19c96a010710f917d145535f36793e73827b6c07d5271abca98fa417afc0a1a61d4b0379013a0c064e7b110087482353c7af6296996e68c9422c6ea9112112412a5482878a0cbc8f708649fc78e492a28f5c46c503c14023421f6a10094a46c46a9844fcb73cc8a1f7f93bf3cc026ffc38783543fcc9992d273ae450802e62081d18048eda1c334476ca6cad222895d6254246437dd8603188778efcd5294f97842dcc5094581f52121dd59c192233106ac817eaaa6c5845a40e4c9b79f98e275b8a39073616ca8dc6085588d28f81c94985660a9188190b69cd28c4743e24cf78574be7a0a9de404ae1b98812a73a5bbb4a89d8c6a337bb7bf94450041173d71c93c4ba5c16a8b91b84731cb8297787b13250e2cb082ce6ac3ad744128327efc17cf0e2083a90505364177c3c05a825394cf257526151eeac489f139c05e85160522623244ca2f6805c5218caebcd7b644579f7c851c03897042ff3fc9d06e767d4d87abd69a853b833c0931ed8d027af77c236771f33b7bda941a76507887ef064d6991e6bca0a0872a77b26557078677093594b120dd2245763c66f782bbfec7a79e449bf25b4c676b6bb95310a3eebbefbd398f7d0165fbb056beb80b4c8444cb252aefc23ff9abe64b9c30f3334885aba7070741fd51095474217b19895d5208e58456718aa76e08c8084a0d911b210d62d01ab6a68da5bb038627cc565475b3c72cb24de86cda0d5942f536983701aae52a0fd243975749c4aa9cbff74241572bb4363190ea532a2219893430714c56bee038ec308808817c96e28959d775a65623d7074310cc28ca5c58c486ccfa07070dde8acdc560ed5a5b18a533532758683113bc5ca79b3b93d8e708f8f93aae99a0b09e549d4c06e395abacde158c4558bf034325a97618ce13b778071871961263842488243bb5777b3d179cd811891d567070b65dd01b04f409474e07f18f15cf6db90144b0241d62a13933c7d960f6a846bdc59377c660950e865c6f04030f71630b9772212409917111015375bb2502fc5ba076ccd9f7c264823083889b02182b83ef0ce160826a2ec5cf1cb2d2e8687d3c3b536c633452282209a5c2e960bf95a448f4c0ad35a047ee507447a8a23a2b6ea47398417a46e0a12998326068501b378af2fc870792140b7c9516a394d24b4a8fd274238b1244db313ede896e8150396499e8f5b1378abca6921bc94e5757c30a1dc717efc7cb5af624eeda8ca60664f02b62ccd7c26797324033053a74381925239a51a6ac514c57f306ac7c25a777113c2866b0b45995979afde53bd9a789b86444fab4a0bdec5c024e9288e39cea3739ce50b257cc71660403571471919e10df66869ba9b6d156739dd222deeb117d9169822f66258cc5c62215a2468557f6b988e39ae4fe4ccdbb67cf78085ed0733cc3ccecb8a2c86f33d64fb74c791229f62315daff82a8090085a5247ac9e21c8930531826780ebeb60eea5c7a5d555
+Secret Key: a0ea24ad5aa2930360d3b097de2ca430b1b355cc7eb4e42d4deb9012960479370422e5479c6894ce5436df617d055359ed17c4aa6737e0ea1314d44cf3c32f21e4ad80847fcf7b7f115770cbf96cb1894098f290ff2b6e82c52d7096a835e239cacc345cd6af6c273544a57247bc181e021e90061d9298056e949a95aa0ecbb23b9bf2b64269c8119232d11b78463bcc52808869b84265426b5122213155c0d2ba8209fa6cf4440d7b326b7ed593eb0314c1cc4392e7442aa3870875160e06a3f4a820f3060f18890bcc804c1b49889b455da5126eeaf5afb7a301c6a42a679986bbd7c7803613562812d4507fca41af5067a878661b048a22a308049fbc9349f5bf90c2425b486c51e440f9b79df5653d9474c0af762cd7c58310949b87572076163d7e7241058206893c359175369b5829d277024c173d9c81743358cdfc951361e99624f8111c5b7dcfd74d426b7b0ba59ddb0a6e6eb8b518f51578639664b256573a7f9be95d19219169fa93b4564bd2b136b995c57c51b1bf158a096417e7c163b78b53ff5768bd8829806986167a2b63dbb5c75c1d96f22a5b04ac7be7b3c2404d069b4d36cc176cc0c35f458339a39a94441cf46327cf447754411a897791323ab70bb38593239fba3ccaf2d407bf7974b1f35dfb49cc5063588280a9ace7b4428242b05b157b517b3ebabbe48140eac86a77a84c53e39af05a0e35240a89b0247996a42567ca5b7ba19b9503eb691a2ceabf4d7c0f5da3b1a530755f288957a47274b6c6585354e26160847980b7d2b95a50989e298dbf190dbb48b64455cbd0baaab320c5c4425a09c806676291fadb7e8aebb0bc17a6ba426c3578215d0c5e942a4519c48e23ca51325187de4278e2865fc95610b61888a5817fdb1c36063c30f321819b487044d47f9bb65b2b7a9243cc495dd6154b495d34b99fc2916e881715dda060c8f4c7ca800099574e5fc4aad8db29aa7c3bc592c9a500b21fda0242eb2690a464969049a681bd9759351d02c4f11b94c4a2b7d4f204a4075ec205ac75d5b0e6665670d9501930b58dbb85cee04fae060693eb1db1ec1373373c27656be0a969dd006ce1ac3187e660d5cb8bf7c9a0754c6dd705a2b6c8611b9878a952239917471351c5d4247c67e6cf935269c6160cd1b7bfa55c38be8387804b4b9d1305132878af52724783bfbe2b995152185edbc824d961e574b075e511bd456dbd150442381cd53a720e7546bcf5247a091be282060593408e799b4fc07016ab95931657901466f12b1aeb29c578e22332dc9492e590a4e18e026890c08b0bfb07bc033513518c1af4695f396714646b8344a3c2b76749c19b8e28f9cb73a687806b461bc874a554a585e993426c57048764fefa410f39548e771c3de0397c5c8113917c04a704f7fac545d7211f98b8a8c4323f889b718ca57b156c19861855576a4c3010509a04d16046ff3196cdec2faea35ffc320d19d302784c9bbe814f6d916947eb6274252b853b96bc780ad04051d469af56c297829675dc387eff3ba7d13ab0ce0c5c628602c3e654298a3d75e91cff1c63ea7856399964dc9ac05b9720e226ba81133255cb6e9509c66400093027636e27aedde9243e48364fec481bbb7a6b95501e45399af677ba763b6d3c1eef67cf0cec5ec7fb62488ca1e0b8c56825032c655e71819f7056bcb0d827e86999d9a191e1b310fc7570599c9d57a83b9e76c2a3815d3f727e639c76e7ab6f9718c7bb3bb4ead3c0bc30231dbc73c3476eff2678b0fc6979010c809953814c6f4c28b01413c1f1f2b0d5093f2f965dccc45060b94a1399a35a843e34907e53f31e374b792197046b5ab5cff9857ddca274d73bc20acb2e73c81c91384ba1b5b0102937db30f5c3c8e8491f41e599f9d6bb0cf6c3ff786a20377759a1cc6d95739716355f60ac9ca51d948833063486bdf08a4ca7750889692544635f7c3910667714a4174e6caa1f139651c8ce0b3921fe2b82a30691597019da45a35ab7c5edc21a8a335c719bc4b1067fb7f71c0e6acb0536b29d54b9d6a00b9d2852e2ba003503233d86763a4c44c391653272ce0b9c8b2f658a2d09981ad540a37549c03b404335af23e191b5197ae40558b0a7bf546416f974318473360f338ab972714651a672430fb4f76f1da80aa8880b7a0048a428800691c5a4159abd4962c28a6580a171ea69ba64767448fb8bc5028a09ec60bbc826e477a028f88ed35bca2c2333e48694391404506725af312c58a1c812ea7660eb188ba12bc83ca028b27a46635ea2433919ea68c18305dabaab4ef3a9da168c552c7eb5e02a3458a15ba72f7cba3874f1060ed313688b460ee2c00aa1a1b81cb4e1cbc58eb46ca5162707e57ed4623ccd207fe9600ea0fc7e865358fe878b95522b5d329d069710ed4a4328a91748359124229643446d5d5b788e3218987586230baf37278532c2090091afe6f2949e3b78bae47c69c321367bb29755cba83425c97c93d948300b820fc5e265ef38758d74cc6c787b0504cd7b709debc1af3358248a58b3d153a9456829219ac95606932d923d67188c42ca7040d31e62367d95f0c387a84680931505f05729a3a590532dd3f11cd61730acca48d3296400f3b5e5c742908091b3577244c86ea4b39f0c0672f3c550a87b57477b9f00773a9e74b716f563b525934b29bcd6e5458aca290ecac67f938aa52042844c0ffbc2aa27e27da866463ea003426364b38010e6406e89b300e3663d111883c18cb85ad25428672b7f20173e147d4715c0b6432028cb0802e225a7dcc90f143bc847c18e498e52a0b33f9cb3b5665cf33c9bdcd2bdd2f496d1b6b777a2a7c3858597c97427c060825906f914099c6143ed19c96a010710f917d145535f36793e73827b6c07d5271abca98fa417afc0a1a61d4b0379013a0c064e7b110087482353c7af6296996e68c9422c6ea9112112412a5482878a0cbc8f708649fc78e492a28f5c46c503c14023421f6a10094a46c46a9844fcb73cc8a1f7f93bf3cc026ffc38783543fcc9992d273ae450802e62081d18048eda1c334476ca6cad222895d6254246437dd8603188778efcd5294f97842dcc5094581f52121dd59c192233106ac817eaaa6c5845a40e4c9b79f98e275b8a39073616ca8dc6085588d28f81c94985660a9188190b69cd28c4743e24cf78574be7a0a9de404ae1b98812a73a5bbb4a89d8c6a337bb7bf94450041173d71c93c4ba5c16a8b91b84731cb8297787b13250e2cb082ce6ac3ad744128327efc17cf0e2083a90505364177c3c05a825394cf257526151eeac489f139c05e85160522623244ca2f6805c5218caebcd7b644579f7c851c03897042ff3fc9d06e767d4d87abd69a853b833c0931ed8d027af77c236771f33b7bda941a76507887ef064d6991e6bca0a0872a77b26557078677093594b120dd2245763c66f782bbfec7a79e449bf25b4c676b6bb95310a3eebbefbd398f7d0165fbb056beb80b4c8444cb252aefc23ff9abe64b9c30f3334885aba7070741fd51095474217b19895d5208e58456718aa76e08c8084a0d911b210d62d01ab6a68da5bb038627cc565475b3c72cb24de86cda0d5942f536983701aae52a0fd243975749c4aa9cbff74241572bb4363190ea532a2219893430714c56bee038ec308808817c96e28959d775a65623d7074310cc28ca5c58c486ccfa07070dde8acdc560ed5a5b18a533532758683113bc5ca79b3b93d8e708f8f93aae99a0b09e549d4c06e395abacde158c4558bf034325a97618ce13b778071871961263842488243bb5777b3d179cd811891d567070b65dd01b04f409474e07f18f15cf6db90144b0241d62a13933c7d960f6a846bdc59377c660950e865c6f04030f71630b9772212409917111015375bb2502fc5ba076ccd9f7c264823083889b02182b83ef0ce160826a2ec5cf1cb2d2e8687d3c3b536c633452282209a5c2e960bf95a448f4c0ad35a047ee507447a8a23a2b6ea47398417a46e0a12998326068501b378af2fc870792140b7c9516a394d24b4a8fd274238b1244db313ede896e8150396499e8f5b1378abca6921bc94e5757c30a1dc717efc7cb5af624eeda8ca60664f02b62ccd7c26797324033053a74381925239a51a6ac514c57f306ac7c25a777113c2866b0b45995979afde53bd9a789b86444fab4a0bdec5c024e9288e39cea3739ce50b257cc71660403571471919e10df66869ba9b6d156739dd222deeb117d9169822f66258cc5c62215a2468557f6b988e39ae4fe4ccdbb67cf78085ed0733cc3ccecb8a2c86f33d64fb74c791229f62315daff82a8090085a5247ac9e21c8930531826780ebeb60eea5c7a5d555563b6f6ebbd1e388103e09cf66d4a3dad394780163d6bdba7a708ba580e941c264299b1e04e282963cdd64bc8ab917f2f1686d4da590368074c81f52366d5c3b
+81f44165048e2c5415aeb9a398129c79a0fce7149efa4b5d12991a3b3cdf3261
+Ciphertext: fea7d1084f12c822a65f77e06ef5019c995908f937fe034713be4af96df1bbda2db80780c7f95ea6a9e525aa0b15da7f881f3297c810cd704e682d6d0a6f4a17b17c1fefb718d2de9f5c5a91f6d9817e313885c8fe0425acb18e7f7e25dc44151c22821571cf1d3349d9918b2fdfa7de2021d610433723a6e91fc87d109b3b5957b723c1afe5ccb2a50870b0e6b19100fd837ee6affb8dc5ec1ab3c648228089459cf5a9050d7a689bc29f06866a2d84c132913089d4d0cfdf461d2c8a4679b871fab628a1106a931976c352ef670540c513a68dd5078cd70c1338bfce6d17bb1b18a5be853d1926de53db7f50ad56ea75ad9fa2ce6e8c8a9384cc8d6891a572039fbd60de1b25f3f7e188e3329751ff02f2f37ad5a656895353304cd5f1efc89b002c57cf65f318bf84ac2e9d2108f8aef9ec22f0b22d99210666d4d01d3d1432423bbf5355801daa31f6741fe6012fcfb85a75c87d93d1d09138b912a3a54af30b2eb4167dad503996dd455d181d78a97ec47183d5190ecfb1294d9fc7d6999ff7f8a3091c36bcd622af3e14b3f46c7669867fc9f0019d536e2a3898d919893ed039dd5f3c0b6a9d269c84bbb42ce57dab8d452639352a6d6e7d2d3f3f413fc77bfc833a7d97fcdf4062cfee16e059f1a6bea93d9d2abc139c1ae17ffc428494505f9241d84975ecf038554c50306a9dfd9a12d21b30a7b83409e3532d169433d9918738494197873450d767b599000344ef53d4133be7875925b14d265e8b6a283aa023a1df13bba0693332e114ed645d693dc727267f2f8be935c0953efae52322c28e9c321a78d35182ab971a520b72f20d669340051540279ff793ba88c440da0eede81493bb96243c19ae760fdcc7acdff734a02bca1df8d9616a8acba628c4c16c3f674579de5da1f62dcf81bd0ae046824af576cc4485eed12d2bd4aec9cbca68a93b5cd39ebaf72c1160aba2accad7c96c3f359d0280342514d302b83031b1a057f77c24a416a76c4acd3ae0f3f2ec97cf1ba30c3f328ce5c0b6b11b610d2b8383e06680366b13af3036b13bf175bffd7ed4a1f88ea27869ca4bd95d13fbadab92c89607d89a5b761d5ab65537a4be81fd0589327062646224624d08b9120ae4807e18669c771a76c818d6f3c41b4aeba88ccc312df11fc3973129afdafe4d40aac548ec40f53304ac8945556f5a96c3ba7a3ceefd3cb138decd1fc95f5eae4dff7dd7d8c5b3b3fb6bcd2a0bd51dde82194c7b8516aa1c5ff3a1256344fdae8be139673966f30f388c5f5b8f822bc77801752b26adfd94ad592385f1270817974e40cd49ea41bc8d61cb275445b5f56909298b502728d091c8c199c45ac32d22f25983d151c6c19e82cee983ebe9983f8837cdbedb8fa781b06702e05e553928d7b01a9fc05e79f8dd6141bca1668b9785eb0c94098a648be86664709ff5e412e23c09d6098c1453722bbd716769df64a69d1a96bfa6e2ee3d5e6cf2dbdf105ff66d62e557c16e205f3c7a88a2a0699b64a7d6caf30b156567542b1ae0ea663e7831904ecc8bd8f69df5a680875dc8de7234f1add572f72ec4ff52dd243fe740dae53647812f6b1849b889a0c17787d6fce82c1b9f446d12a6a3c65d3ce7a3f2c1112d7719a7b453028bdc97f90ec6a16fa173537a3a7429965aa6fa9230fd3106e9653e6300f436c79d15caab13553579e57bdf7c2a193236f0c66972d9f54b57c8634c7370004ed6ee4e82ddba9b38fc71397b340604e37a4db712e56c1ab50a5e013217afe62dfe443eb691be1fd8e8ac7e752308d79ac2f9e296f415b4b5b889546030987c3988321d06ae7d84d2f80c2dce73c84affc50d2ec5ff4fd0b63934090b8f22cd2e5457f6fde56226907e30d555c76386e648d01c2b8cd4cff78221b3a3d11787245c259196ee339948d219c240fb4ed3634e59635d9b06d0de8f869deaa7bed203d59bb6552411460323777ad5ded3bfc6cd51316c209560bedbd5010b9c47535a100d5e5adb516b150dabf0d51362df07acb4ef81355d9f843e73f843da12afd23d2f99832acb767e8b15609e6bab4bbd1cbc0cf90569510802d310636e3539d0a5da299076fa80c167a69c3c486e3ec0d5f19c7a7bf52b8d2feb297e0b6a027c2b9b64118f39052d7944ec8c18dcbacda75923e1f24e3e58da432eb05ae74bc87a056738e3054f08b5101457b587ac01f6d308
+Shared Secret B: 670409c3670efd8e3ef40a614038522bf4e2de7a262e01834bb08e94f27ade7c
+Shared Secret A: 670409c3670efd8e3ef40a614038522bf4e2de7a262e01834bb08e94f27ade7c
+ba03374e136b7d4978bb41b8fc1b29d718057ec8d0b4609319cd54af91522d0b732034740403c9987a3d152cd1c3d3d786644f12c8b0e34ea4c1d86c2f9f755154b45b5f921bfc3f54453533346d22e6ed290493656873a6f3ca3fdf310e2760ce429eb1173590641a56f695c2652bd92ef5ed6a9c6ad853f82745b1282cd6417f961acc458a94a07c4cbfad4e959652b7c24781bf79b20b1d7c439663a0f2ceba023f638544720eaae3153033f9b6e5c55e1aff970f263182e5729696c4820653e96d087ccf6577fb6f9296685d492c2241e174f8c14ac88d9e0c9d2c85d52838139de412ae966676a21cdfd4828273f6e38b47cac68404645520809cb167561f9be12e12e6dbe60dfbfd208881a64f66381eb05aeea9dc4b97800d97018ff0aafe9fe0766e8159980051bd54d6a3ba94382e2a03221a3144bd32a09984aa05ef427c34b9d0b20d39d3da4f9ec24314494239062c87376869a7472647af3926fbe9eff63a4887c7d853e68aa8fad5d5340d69cccc22ab2dc3235ecd4b857baf744a5c57607727e7a12a2429a188b2a5783838aaae80a3f6ffa126110a52f198277947b0897603f1fcabf8bd50d9527ec32bd6404445153eef45aee73327f4d99ff9ee7c7823675bd3e27acd5d5d24d230c24089f4e2c3a38da9b786d267ff36aa1c47752ec22b07cb8c00265ee1093c65c8d6c6447c54b53b651ecba0af2bf41aa0d658e8a6b63d95f312a58df64094461a039a8f2f5d4bc4e83f2134a5685eb26eb14556527c4aeb65eaa218a692ded871398ea705c9acf3ad06bdadfe5df5a0b22e885d47a6f1c3d6e96a66b2d37ad1142f27c6f70b7f98abc2a2e7374612fa008b1e63bfdaac48de130672701698d48863a2e55a62e25e892c73fd40d9cc891e0c691ba724e904a4950544ea23315ae37dcc34d283d4dfe77e00823391efafa3b9686c28434450e0dfdab7b548a88c50bf1ea48d96cf38d8ab3889c5c624e5f04f390ed74688d5fe010a77c11469677ee1411576797dbffa3aa83c9d061dacfff4d04b829821dfe0f628c99def63a0bacfa4e575f72636f216d414e94d379db706240eb536a2a9d1728d704c36c55ebe4867237738d654de85b46a6a433b000ceb9faf942965c1103aa9dd81721c467eea4d8d701e14932ea0bdce5edcd5d0d999ab98e2d5449833cb7ebe958a6b8f56f159bf0266ffcfa40a21082318d413c98002bd43f7cb26687d1dd30f08353ca39e0481935e1e9cb47b9fde71aa773fc30f629f7fdcc100effa4fd31908444e0e4fb0baa6320409c7b9f0654192fd44391b22c456a59acac2b7e574eb71f87123df2721b8c54a1b06d124c64cd20d4973ef24b10335f3ad3c73b3ab50d297c30ea25fdaa00c520561f9a48ad1b7bc2820f118abee5905b9ba8082e1a63f4cf9b85fa2e9f5a0e99e59faac1193502c9dc9008e5f5a4e8f485d977a9a47420221df58c874d76c8fa5450ea826798c8faba9afc02d22f5f8c295f84d8c53f308962cdf6e1759357256c22c71f7480da10970f99e4d70f08ae26920cb97b9c6f45ca90718c4acb1cc84e8abe995b6fcfb8ad4508d6c22ee594c367b2836f6d5f5493b4adeb8e2e1d526ad8ba6fbb15aa3f49e25f1c71a5ed88cd137e5c7f8f5a19ca7a676600e2a61f2c19f063a6eb59b02829c18e1dc8b2782648c68f81dabdf2ba31e27959f2abe4340b70f8b2ca3c074539ae297706f2690927d312a8c8a619ae8efa31f36ffe2796fe80ecbd70819506bed5e8ce1db7cad527e484a3676a65df4c57a670cae69dc9f4ca8a15fea1bd4038d2c2305c538bf504f87997caf20b4896388c980cdb7e54a2503ebdf73977fd7ee370a11c49e865d29f2b8fa925f53c41f3b47a86ab874114a3d555d8d4c4dec106d47c468043eff78b3f9f0578fe3a844b9f98274159d7a23ceb9b2c83ac5f9fa159bf2d5bd6aac83246a58f697168d12aef2eebbfc5ddc4751b56feff85815c632c82d2dbd02a7a3cf1ab8153eb3d3566e79ffc3d21a4309403b6f5d44a970adaeed596d1f0ec8180ec996b4b55ca37cbae8ae811ca8fdbc0770d356ce3638c17e3791caa903eec79f1a515a8d259b1e58a91a72297277a7517ce2c2dec94d9cb6edd31dae1d390d7bdb965312425c2d9743a54337a46be2ce5d881c2e61e7cfa0284e745d685e5b102f6b95916520123aa970c144dc5787475ceaa429
+Pseudorandom shared Secret A: ff437aee276e5df9354b6fd79427357b81a18b08a1c511e12111ec5e59097cb9
+bb40fe839f54b17f1f076a21d01c5d42b0291936d58010a88e6a9774021559fe840a5ff96b68bf00c178ea9b9b151a49f1beb561fb1c4c19103c4b7d974416b0
+Public Key: acb732496c727ef53a4b2a08167b4472ca5e958c7342824c9945add4649137ba70cb3b280820c0afeb8e26c458a9da96f926b4a43633fd6c997dea083281179c89ab8ceb011c5a56dbb69a5581b47fe66426896ae0acaf177198e40b22aac3c5af829e082cb5a2d077ef84b5f4f31075078639cc7b162370dc2247ee98aaa212a9828940d1d477f6a887213a3929651398ab78c5d2258b54ac1573a94270b8ca342339a81833e87e6a5691b9531fbeab15934140469506bdd5a28a353a7f7180aeea8f701b74168a8372564fc08206144b7fdb98974d36407496a42be47623113acdc4c19501b095e636f7b1a21c46cd597b7c31825954d9165e4a199d2530e7e59b99d0481b359e27bb563a8c0ca4eb72ab839d3f50b650602c1c3abd2c3a83a3a0508a2649a0965d76051a9e41a741200f2d44307fb721ae804f2f255155f8612d731ac27bc6c1f69a7e2a2497015ca6b2c417b5192b148c5eccb6fbab7ce232281a56700ca13fb815c8cbf4c4f023b3aa54a42005b8bb23835f247045c796b7da3140d5192e75901ffa81c086409f21665324b60e17921eb70e7d4081a7f39025597f930cb28035ccf9b89447fbce03f88a37432d8d611a30f8924d40b3e5c409195381f43a2b66a4c0994523296071fe4b250cb3a53560a8b58b2d66348ad62758f9d504fa89094d7c4698140052957b95388f48d6ac200a7274c324cddc8c0d0b58d0d4aae4acaf81e86310c1b78fda2f3f955875599d8fda2e6e866674395a30b5b0bb2800ed24b4cff29e3f96677914abd792c21ea48e6098587d20aa098c7767d72e1b511bcf2c7b1a950d9f544e8fb9afc6fa030f9ca8111b6ed1e71eb0a8ad5ae35208f17f4e34ad35752a57c8cf4af45524f7031261b5abf791cf27a7e31655c4855957a99f34137aaa40495cdb5171069816e090aff39a3924cfea276a27b9c2de6730cbb0c5e53122f9712c04d16fc7176801854a006901c58b37f83c8fb9ecc4c4715a4dc302836a97d8e93194304fb78087ce71a26079ccce77383ba403ad9a4c20a027628588ef78a2e54c9741859c6f500617024a9c35988e109b76c2057532585bd29c3ac9153f258036cc9dbb493d7936a063a07e0ec463e22c96bc33197a0781dc7bb326ca2c0bd042b2042a67a8ca4dcb849b2149685680ea813e98471a6cdc610f84cea0f4a80e122cc8872533e02100155cd763c2e25a9715717004097147cb76628ba7b0694a181b27707c4bd035300081444ceacf48c5078479ae0feb0529da486cd506414512a6ba905ff97204d11246376881380258f18417f980b601823d093cba98caf9db373b87c6c39429bc5c042d83c761aa46de020134011a75585e081b86f15643102621480abd5399102fc4a83a7922438cbddb3c9fa321b57dfc4ffbe5b1ff750240716e3fa097e682cd8ff3b315056d9bbb46eed149b0da73e373544fc9a582b786cc5a3769f47f886a27f5b33ab28396eaf97d81317f8ce62da5a34cd969ab9b9886eb6386aef1c100a6c9f3a1190a2405031348c6c7a720f726b4714a531b6505262087c1ce76e012b61cbcfd4576f6c45f5f3434890c60d2a90e97f6be39c539d2035f5f735396488a6a39469c3287a3e4126e5301ac41997b4ab061b38daab26a574c8072c6553be57c966a0a41361d759c074c4b0358d0a7e1e08bf170689dc98e017863b816590c47c95bc861b4d51dff753f96475bcca4bffb02bf49aa7adcf8b1c04b3136a3035dd17b50952fd928c376458d91a2c5f413bae7967f57d820d48a3bf518aeba089ed5c43a00d665c2e89c8a426c22c64be60c26de82af9db35278eab0b39cbe0f536d775abdcfd7bdc39aca1d324ca28167fdb50664aa4f7b1a22e435717ae16f1c437797a7877d75c03310342caa0a3426ce4fe4366c352e6b6b3c223c2e0c1c0b408b84627c643e910d99f675aa2484ec6a997bd89f0122390752188bf3c929e7067a683b7ed0b7b7d0a500db0a5f01bc3b8880acdb22578a35f8d89c68e47074d0a3bd4ca2772a76cbcc41401a351ba30281904f589c58de6aaa6c48b0f4bcc8dca3a371c09c47138ba05a6f65a8b175d3c4e8d85ac4a025f203a317f5271b646c97b5698e8977803c1b28f60d9cf2519dbcb786346594c9acbc32a051489e6ec05f7f8589d43be95d2b7ea4dc0f64ff2cdc1d33fe8abae5f06b4585706658022a8b
+Secret Key: 3cd392e4e176fef9bb92a29d29a597ef686dce36c5ba807c3d8136b7c357f1580fac16295846359592c3cbf1beaad73d039414db8928088b1dd2ab178f345848846c6df6068fd905d89c29415805b1e939c78809a8813e8e786e196ba92a851e2f8c4b57531edb7a4a980369e2268326646d3c9c042af7435b6954787b8103e189e73cbfcd037aec229310414dda3238a1072af7d5bf8c634c08e9820e74958c92b37bf42bf396bfb8e809937b58a184945341477ac7cf48ac91d68c25d5d4464855b808b19353038aa0f4a103d9bfd1b9922fa6755bec11a2050993c3b066b426c30a76b2c45869d44a8bc44d4cfcac255511f4ec498a384dcfb606be446aa29336c98783ff6bc7eb1843e3c0870d152b73c55f89c4aac467b3d47987278cb4d7f83b7fb232c44a9b7e5ba4d728832f828148a2bb4963685e1a0a74888e2c66ce903ba423859355cbb905da92f2473837d6aed687bef81b40e3e17b5303b59a3b09f347550ccb849127aa7cd48781069d2a5bbdace82848b80be4b50094fb23162911d159720be04a039b9f6e896ca98c2bbe646cc0fc3b1fba1992a92fa3b3b8f521b102a64873dacfe15a3190a2a96f56570826234177c07a8179ab77a81f5b86fe613af7241cfcf91854b08b41f75d7af855f3324eeb6a1fe619a6a86c62b1692809b7902a5a6c06b14a3f711e29b2526f2cbc49b411ccc77f634a77e97671b0aa101267c87ed667f7cc02a2801ef6cc65e7584c4d711b7d5b24424c39796530fbec6ee0f0642ff621e5967511ec734a38a138551656285403b9adea732525da15fb85b8af9acc419678c27c09ca2c4bcd06a0a0cccdcee24723dc0cd24bb5de42047527af807b64b1c4795ac7be99a494be8b880080b1fe6b384be92ac64cbdbf4b44ad5b356276caf654329cda4cf315c9e06c4353b61342c180c616cbffdc020df2955a741c8fd5213d159d7edccc4d5bb63c7b88cb6cbb6f5ca55dd2324399a84e7a0342f8882fe18cf2a5ad5af99580ec7202348104fb5cfb4135019c842a7ab1e1d73d7dc85f84e3100c5c9fe7cb0616d326c3e7a0e2835711a2a545a830dff65ff5446f0ee6b6befa7274a3a2a80a866fc0149b2140e3a6c7a72a4caa6b3a11557a4350b379f30438b49d1d705707087b3e969b188607c0bc487dd78f33f93cff0399fb179d3f886ca876531d762588c62d2a1cb5c1517a51e463e621c5fdfa6799f83c111a538b3a0738e54b97513335fc10b4a68b2100c6e0635d9bf3bb7e2546a3b65581d4b78465b8f614ae2636844cbc4899748aa2b51e5fea8e105b05a2b40d5e376ffacc6f1df21a23484b79284f58e6cb747502cd343fdad9868f9291f650ccb261085966a476010da439bbf86b3495d44ef9582765c0cc49c941a86243ee433e807024231a18d8da7a7bb96be1014ec5c45c5ba52a42f83d4843c85b4c178c216e1606754cf462fa32380837b1504c2b0588aee7c82a1b6191fcc80fa173b269d7774fabc60ec8cb7ff38f9e0514d37815735aa3ee9450bff159c702c4a4ec1c60205d66241b7fd2c33e5a52c8375ef4235f7d85bfdc2008a7c2a53835c989a947d415350a6281c64695fb13c43653bda4879415eb4c07b0573d4cc7be602c97e780e3e92cc1283b18152153a65844b70e25b67092c214bf8a158ed3c30f8a626c66ace35a38b9829980bc7bae81739075205aa1a080ebb61bc644ac08518d920079fb5ad88348bb3885a71c220ebbc5e6d8c2214b176f25c4cdb37689610fa7f918fd022628c1146f063127796ad843945e62678e47b1197954d7501a6e6a5cbdf4564694126ec31b26bc7a7b3514897ca7535a90d8894c11475005f30f5b71b3f95549403620676bb40d320b0de3851fa4742df39277413546113a3c9793ad70c90b997f4494ac17884e7ce8c594aaa202b8a5ae059c88298a31f6969e5475e51ab7650b26b86b996de405083a5d198bb4202c49a5945b5e4bc6f5db70aad425b8e40e314047381bb40fe571775c7ba646b57f842e77081e4f68748b5a2e151502d8400af1451d8c700c38f37b832c0d9167c3d48b3b98cb1c8415a9939296ed0aa2f3c4c0045629d44a5fba99c94c552a38ea3768f50ef8f376b5974bb9c49b87106bea3513f1bba999142c80335707975370e383acb732496c727ef53a4b2a08167b4472ca5e958c7342824c9945add4649137ba70cb3b280820c0afeb8e26c458a9da96f926b4a43633fd6c997dea083281179c89ab8ceb011c5a56dbb69a5581b47fe66426896ae0acaf177198e40b22aac3c5af829e082cb5a2d077ef84b5f4f31075078639cc7b162370dc2247ee98aaa212a9828940d1d477f6a887213a3929651398ab78c5d2258b54ac1573a94270b8ca342339a81833e87e6a5691b9531fbeab15934140469506bdd5a28a353a7f7180aeea8f701b74168a8372564fc08206144b7fdb98974d36407496a42be47623113acdc4c19501b095e636f7b1a21c46cd597b7c31825954d9165e4a199d2530e7e59b99d0481b359e27bb563a8c0ca4eb72ab839d3f50b650602c1c3abd2c3a83a3a0508a2649a0965d76051a9e41a741200f2d44307fb721ae804f2f255155f8612d731ac27bc6c1f69a7e2a2497015ca6b2c417b5192b148c5eccb6fbab7ce232281a56700ca13fb815c8cbf4c4f023b3aa54a42005b8bb23835f247045c796b7da3140d5192e75901ffa81c086409f21665324b60e17921eb70e7d4081a7f39025597f930cb28035ccf9b89447fbce03f88a37432d8d611a30f8924d40b3e5c409195381f43a2b66a4c0994523296071fe4b250cb3a53560a8b58b2d66348ad62758f9d504fa89094d7c4698140052957b95388f48d6ac200a7274c324cddc8c0d0b58d0d4aae4acaf81e86310c1b78fda2f3f955875599d8fda2e6e866674395a30b5b0bb2800ed24b4cff29e3f96677914abd792c21ea48e6098587d20aa098c7767d72e1b511bcf2c7b1a950d9f544e8fb9afc6fa030f9ca8111b6ed1e71eb0a8ad5ae35208f17f4e34ad35752a57c8cf4af45524f7031261b5abf791cf27a7e31655c4855957a99f34137aaa40495cdb5171069816e090aff39a3924cfea276a27b9c2de6730cbb0c5e53122f9712c04d16fc7176801854a006901c58b37f83c8fb9ecc4c4715a4dc302836a97d8e93194304fb78087ce71a26079ccce77383ba403ad9a4c20a027628588ef78a2e54c9741859c6f500617024a9c35988e109b76c2057532585bd29c3ac9153f258036cc9dbb493d7936a063a07e0ec463e22c96bc33197a0781dc7bb326ca2c0bd042b2042a67a8ca4dcb849b2149685680ea813e98471a6cdc610f84cea0f4a80e122cc8872533e02100155cd763c2e25a9715717004097147cb76628ba7b0694a181b27707c4bd035300081444ceacf48c5078479ae0feb0529da486cd506414512a6ba905ff97204d11246376881380258f18417f980b601823d093cba98caf9db373b87c6c39429bc5c042d83c761aa46de020134011a75585e081b86f15643102621480abd5399102fc4a83a7922438cbddb3c9fa321b57dfc4ffbe5b1ff750240716e3fa097e682cd8ff3b315056d9bbb46eed149b0da73e373544fc9a582b786cc5a3769f47f886a27f5b33ab28396eaf97d81317f8ce62da5a34cd969ab9b9886eb6386aef1c100a6c9f3a1190a2405031348c6c7a720f726b4714a531b6505262087c1ce76e012b61cbcfd4576f6c45f5f3434890c60d2a90e97f6be39c539d2035f5f735396488a6a39469c3287a3e4126e5301ac41997b4ab061b38daab26a574c8072c6553be57c966a0a41361d759c074c4b0358d0a7e1e08bf170689dc98e017863b816590c47c95bc861b4d51dff753f96475bcca4bffb02bf49aa7adcf8b1c04b3136a3035dd17b50952fd928c376458d91a2c5f413bae7967f57d820d48a3bf518aeba089ed5c43a00d665c2e89c8a426c22c64be60c26de82af9db35278eab0b39cbe0f536d775abdcfd7bdc39aca1d324ca28167fdb50664aa4f7b1a22e435717ae16f1c437797a7877d75c03310342caa0a3426ce4fe4366c352e6b6b3c223c2e0c1c0b408b84627c643e910d99f675aa2484ec6a997bd89f0122390752188bf3c929e7067a683b7ed0b7b7d0a500db0a5f01bc3b8880acdb22578a35f8d89c68e47074d0a3bd4ca2772a76cbcc41401a351ba30281904f589c58de6aaa6c48b0f4bcc8dca3a371c09c47138ba05a6f65a8b175d3c4e8d85ac4a025f203a317f5271b646c97b5698e8977803c1b28f60d9cf2519dbcb786346594c9acbc32a051489e6ec05f7f8589d43be95d2b7ea4dc0f64ff2cdc1d33fe8abae5f06b4585706658022a8bfc1d4107cf7c31dde305c8622bc5b5d6dbdc7c80aec2744daa44e8840dab893b840a5ff96b68bf00c178ea9b9b151a49f1beb561fb1c4c19103c4b7d974416b0
+a562d411d01ebd229622095dc3d89d62bef9a98495aae035103be4d3a7b94010
+Ciphertext: 5d2ad3127f061e1960f467479185ef332be3d2a6e03cf818815d473ebccacc9717ec67cbe3969bfaa348aef151ff597305cf16e0ba78a1a99d01e2b14cebb7218d9e80d5e96690c5b5cde329b55d3bc5507c9e46d51ebf4a19b382a8f200ed9c1842f39835222787a6a11badf63abb545387201b4cc2f50d8a651969ca7ca193b5fe6acc6ee152e51a217f8a288a6e29e32d077f36f807e824ca29b6ff4cb8bcb8bab4a421f144d5577841365568810bb1b8b6f1834e7c00b6614efe9a1d1d2c7a522ed7ef5d5e61700b7dcef89832fa5b91155edd5635cf9b5c84972f713783eb6b34057ce54bc701e902ad18d2f7c811f84ad1a303e67b94a7b470639b08ffcf90b573237888111d928534a21e97567ceb3d751ad09308e6d09cd6d503b6e2fb16306d0cd5e037d1d69ea15bab83dee7b9c17a5824c06c4df06a38a7cbf7ab42ad20f6fa923ea7066e9758b14e09621f045d74575374de5f4aab3522726026064426730f2f7b36bd7d32dafa81f9b2107084f1211640002922e79ec9b2f5abc73cb3a2f19d6dab77f10676100dcd24ea798d9f014c43afe10ac9dd1efaffdb71ce945cb01be3da446426d306124fb6f43410c69408abdc0088d46cdacf3e4b06f546378af3c55db6f3a85af1228d64f46a1b26b63da906b393861e612597e084f528ee9cb1e3c5d78d9eab140a8152786103ed96594e2c5c58008e733e7f22821bbe9131e3b45f84730cc30bf11d862f3c39ec0c055f73d34439026e0e0540ca0f21d388a2f10a6ac1d7d822616480bb99aa2d0826ec6ddc0852a877a928667e025273eb93ae619527f6282e54476fd0fc3ed6e73868c20a13b8212df91d20346fe539dd23662aecf1b1ef3e3eb9c39f80d0c0057e3223d58cb14e4af0ece58c08c753b32743af8b8d9bda04cebdb8e7101996b101e4971af17e384dce42c4000d4e4da8851ba076cc70dc7a5a9cdd038fa6811a4de50260655e518fb3ba73bdab4ace57a50d2175a3a9f36e8c2b3d0f2f9f0a7042b13ea3c3792483f48bc2c688ff577bee9fd5405ab21f36253339b05b3e2a39a17eddd5d4e47c237ec967891e1985d6512d2a0192db88f46fa8b16db910e9cba10251bbdd3a3bcc405ffc4d42bfd488a3e26f56ec7fb38f405fb953976403d9b43206c74f8a8cfca3d5417a686bf5cd2374e5c3586832c8792bfaaecfae76ac5e132d96a9a19855718f2da81c78db06ddb03a4baac1581eec3fc275bf592d2ed2c981e59aae1664c89de8fb16d26b193fb97021e75baaf2fbaf2462c27a80450f20426c8e2eb438e85b1f3cdc20c1ecae6f47b1d0c7033d9e6d76a724bb7663e70e2235c77762de3e4af8a743fa57f96a6cd7d6bb400d5392dd533729a86781a7e75b56948db13916fa7abc972a123b170e6a3a985f6041060c4ad8583bb8677a6155799a72c74835a5e623ef717c8dabaf6715a1cb208695fbcae2b463f9623670ae3d4e246a5b42981bfa1f4eacb23f3a33d5e34d12dd3b5d20dbab4b95d5f089e089d0acc6452679de76c906ce99baa0e50879974b6ea440e2d6d26827447b85cff33b34099f4d1f72c53543809f552ff3fc2d22ebe619f354a119bbe88e743d2f5129055e095ca8591c0c1f7b870db6d219d63bf5573009ae9fb7551f5606d8890b2f023e387315e0fdb24853d52ce6016831caa77545ccc53f8de32aa4e6a14f1a884969162ba09bbf9690ea6d430e82d41e691a79fdf2520b83e2ac8a58bfca37821b8a9f70603797541caf9af3d7bf48cec13825e694955edfaad83633ba7cb3261533e39e54e5d1b8e52ccc6b09dba7700b698ee7ee1e1780f54b7d5dad8bf55bfb210293d5068fca509174ae4158238766894c3aeabbe588d74fcd4629aaaa2c3076272d5a75b98a020aeb2cdfbac9e03edf89fa4fbcdad427e3b2d1abd98f66e3cec9d1d1062e8eec03045fef84ec1c62cacdb1b0b3a12b0a1da2816ec432a1a5bf2b0c7dbe63d1b8d9b30b7d2e66f154e9507d10f7c0544181a92ea5e89f3f1e771ba9d956c935cdb5f272c78cffbfe76f9b338291851d67d13e98fbf84f7b0b117a519b35ae306097b55dcd36f1b466d55346e48e5d49f0061eadee1c88fdb60cfa87910bf076de9dce6b6635f752913b80b0b9540696074c027f51bcd23b7122408813a74d2757c98994cce45447a8e715de183b9301492fbc77a69aa0b8ed1db833c3b1
+Shared Secret B: 67b6a2a0745b56d122f53f96f61ea1767e701e87575ef5447fd0e50627b938c4
+Shared Secret A: 67b6a2a0745b56d122f53f96f61ea1767e701e87575ef5447fd0e50627b938c4
+3c94800752af7b3904cebdb4a0167e8479f16bba8661f253e697344aec5d74f9cd4f3a5e27555a75157fff40331e89e74b0acc309cd6805add0ac64a427c04c858a1b34a51f11aa3d00519088151bffa14e38e69a9371e3eeff9a21be61e58722581ee5c4bfd6e3016d103f3bc6fa893754f34d59378b65fe539d89810b61af88ee80fcc7ee9af9350f8dd2ea3a74e18043ac4948bf11e5826acaef056caca283e2a0503d75f0c32d57c14847fe8747380b17dca1c50257f46212424e00dc49667f60c02ea6410781f1aed3b8b558ad41eb312ca6e53a17fa43ca1b2422ee34f0c5e7daef601130c32bbea2ae8607c919c1a27ffdfb54a0ac053c1467e2dc4e3bb9fb73c1337b07e6b2a6680c88008b13570bf64bf44afb5fc79746b11eb69bc77e4d70491646062b6ae88245f7953b5f8019d30ebf22a3be757dc9a551d30dd5196a0978036aa2113f0be3c36def445fa2c5699cc7daec35c4300cfcf6c547c90781b0a30e8e72435e66a5beeede980f496ba515b436032a683c5e94b843253764c432e5e99d9d70e6176ea98a127ed4d6aef8307cf387fa83b60ee91b4bec001b3fa72aecd12e598cfcb3301cd2f1552b298c46ed6cfd97b2748d4d6aadf4b7a317e21ff70d3ce207f3b537d704d8f61e7868b16091e386759b45630422030d12df3e17cd9c107797607e6a014d89bd6c5d9a6dcb51d923b7f720049a5418c5a6d70db77d38794b4f41ce03833b85e360d7d81f04e810a92be94b4404a94d8d4216aaee17846924aabf79e8a05f9986b75927edaaed606a7c8b7836441dee3c9873bf53cfdb3a7fbcb9d6a19c12d7c449ce9b2eea1bcf0077d74e0864e71c24139d26453909a7a5faf5cb7fe6fa3ef06b2db5c13fc7679e515246d0a474cea2f2dd05f16d1d043a5cb95b0d67bc7612654fde3209b32a39806b53ff7a9a986f4ddb3835465d1488352d03639baa03b0e1290c4576c6682d04532a9a2e89b4bd2212fc25dcd711d24286ada90798eb88b87dd11b4d972940339a69053fe97ea68d10e5af144758a219b1ce7701797c2a3feb50d4f11a4690a36bd99067f380fc3e821bbad65e4ffe2fe668737b3632075086f7c416f973c46dce2cde7f58e385457ec33e327800c142ca4711c6287dc728e9fb19f56efa34b966e44c2872a934d93fb5f2ac61b46232440095ba318f3c608418b7925ec5de911b154f8e0265d9e633dad78b8ccb02d23c8b4650b30e21fba7877e8d9789f5278618c0921b67d933a5f0472efb1ee598bc21d5d0d9d9d1aeaeebf02f87c9b4fd21227192198685e41299ec42c091fde9e108c1fdf659b06069eeb188535736422a81b94e4af517725ba637e8445b8b38ac34094844fb4a8fe1b8d5365102f7acbd158655547ed13dc0994e6289113eb345ff5999bac54aabb3ec27ff64369571f0cced17ec70743e0c9a5e10f2abdfddfb1181e4129ba6e4f3457b5de70ad37b8a487360eef9122421fd57aa722638d3cac0c526487b7f8604720713a121688ffc7983def4895638c7b8ccf32746e9e3f1ae082fc1183046276fc13d04aa94485d4e1ee5c72b14d9e919f7a54599326b6ae798c5015be2cb75a0901feb81798571e8f2d14671d216351df06ff1981f72e0aa82601c81bc326d0ee317cdc0d2d3a070cd9cfeed510adc0af725749cabac8bbc3fc7d276a96b01e5a73bfa98a7787e818ca5ca0de59a35e63152dd81dd50e6669013c884c9f309fdee8b39349d42ce5143fb721527f0eb8f3b87b922330327e725fbbc8ae16ec85890eede8d3267d9f364e789f6791687e4afa0046a9667fd08679f50ef7209ffccf4288563809b1cc47db801ec8b48fa4c3d953dc531ee02c28c1d3e480086ce8ef01c7e0fb08c415220da00d77f6f349af618a6421c02dd0a38ed910b0067a18e392fdac7c6dc152535bac8eb40f18ce86a95703ce848cc7aa3867259ae693a33bac9074f4c2f8935f423f2fc35d1e93abf06beacbe6b883303235cb21401478d660c64b2968529c1933bcf217feae0e8bb06b629106d3c465cdf6e220f6892b5b580c28b36b5d9326dcbfc6ae9eecc90907248e890a88ed1333c9b7b061fb2c49a26ad8a23c0f3f354029309df2a41496dfbb4c9aa3403540a7c8c92d0f45ac7ca0678654ea7c581b1607ab445ee1fffe1e7baad53eaa5627e25c317d2330d7a38579a84261037a67bcb85c48
+Pseudorandom shared Secret A: 1e039949077ac9305e3dd20a219b884df1567a29f145f53c297dfe09e8e9d0a7
+0d61b7429d926184bfebb12968a1e6a69095919c502423889031e3090a046629b8cf5df80f0aa6545882b8c761d7bc33f2662dce2b8507f517982b7e0511f8dd
+Public Key: df7278fc08be8422a4ead391e6b189a9698ab87b28c0865dba689476567655a52a9c188f31988def906deb10880d8720ab62617873178267606a22a3311414b94c7de368ab4d116f63544de728975b6459da9a56ede9cfe6b1880c8246b509b7b3e99b5f486b1ca82a455726b7f31a119147a731470ab48ddf026a9e73c32b0b8ad2820daa4658f9178622714ecd328999cb6e5547a943d0b3153b631f3b0dd97301e3580cdc4b9f91b1abfdc295913713f39c390863a74a576386ec6f23969c26391b67280406cb754fecbafaec8b217840640368b35b30d4597f081978a5778d8ec806368715539342f4c545654755b59295d13809d51bc79e345e54819c0cf080b1b45e888156fcf9313474438ed8aea296bdf889734cc034409090511702ae734144680636a6beb1a51ee53ac81eb39457c7b061927f8b7241f0b443f3d589c6450d127c5657bc55aee6b874da4d641bba03c52cb3418907d841aea0a5e92ac0be61cef3969aaef84e1f5a0cd83460981c7fc12b1fbd837a8c03ad7d8554500067168131476845167461f8eb01ef649a04b04ee25c54ef7947b2984b900326755440d768b343468b2fd8c06365cb7195ce19a00589c07da1628988b2bb48d1879900b624b278b2a903037c3238581b7b6c74d9a058880152921b7cb2c205fcb1856db5a3d9da9076e250d10c841b767b792b0d1468a935b690f9014d597851b0e00e1dcb13b6643c001dbaac0018afd845b52c161ce61694411b67eb1e4daa8004216637a19c2c372fd631bdf79a2460b325ab921822535fdc042b59b90db05ccf07cca26790bc00900626d1358544712f66140639246033a64d80b37eb916919348d6018d825a691d7c635337c5cdec385280076cf33ab29a17b80b544121c63ca00383d504c1379209d098795363f00482cd54327f150f73d067b45a8957ca603476b10e28b26698001bf59409648daac4086fc36e25f63acf71a56a2ca3d841bfb5f06d110918a2c14417491090f7526bb7254e246798f9b648553cfe5c19b288af0222422bb88bb31017ad4975b733adeeb5751d715b20d30d35eb1b450212adb72a017a30a03184e466089a8615eed8ccbb241c1f99b6fd1432e69976fd38b5b0961b7eb94f98c9aee89cb5c33a29d1521c663c510b7b2f48b1801a4475af3a7f8e9c325dba4bfa82b7227a09aac6c86f7593e198c555e2cba5994c0aab5d566937899a196a635589d666c0c17dca1b3cd587354295936019532f544bf48b9479212f87412f985cc5b0b5b0a774282fc8451be29ee43249a0eab898c53faa4183213028627057dbf250b080831b93b257f8a3ffcb4a559b9e16bb49782932c17c988f2606645bcc6ec67e3de1bf71e1cda3460facd07a82f88ce0325891f8ca9c769818b3cc046060312100b6c0aaee1c1418b2c43b142793ec5e489a94272c5d8348711b7947cf184554d63412d117e1425bd8e48f5e2941dd70040cd85efce0cf1ee4195db9a13233a01374290b908e1c2b27fc66c72d03b91ec23169e872d4036802862e3eeb472d707fac8c410f605bede8304e36bf8b280af7e250e4513ffd7a841237a6249c70101c7e1c1c4406f9249384874e84701d1b30605bb8d7819efe41958ecac218f51b3b946938224f636c2761c635a7ca33435c669e470318882e69b49f108b12bd78c48da58c9adc4746d3712f497fc221b17fb981288abf42c4beb0225f99b34ba00c8ab1719163589b96a6845ac9cb8124326b47760eec139b6c44d95a5924c1c68f8385eec086399b07647199ea1138d7806e2d073c834c21c594c81caa3be77919a4797fd20356ce63000f513dabb197981517b55ba41044be9d05285f4bbd2c29b002766fb5517a0b5004ed3c7245c4c3c0d08c10a91f7ca64bd015815ec34a66b85a030608809c6b0fe36a839c335a062678f91d037ab4bdf3ba3b3c81a6b084451a129aeb7261f04d1cf82082c043fff8778f4a249a96ad6db1378acb3743586d39028e5e06481a940a96d69aaae1866fc13b1a70c25b9047ea11603913686a2202f4dbbb9a729815fb95cf346b999723d268a76e249c22282b6cd40b4f26841287a27be3b517aa339152525ca363eb306c7343c83aa534ab0a0f39524e219b20d5667eb9cc06153bb67e60be4fc741eadd5d9fd1a3fa362698e2de7c6f3bdcb48886341b5fafb4d0a7f54e20b6190e
+Secret Key: bf9b534a87596651484f020cabe87934f93eccb3704386ad957547a2f2934173a2b0a5b25f83b9f3344a8f8697d0e541b7a442461577e2470f26521c92d27407e82dae1942de43b778d762df1366fb3169b1786e39789e43ec09f476cf65b7cc4d54368f8103cd3565cd2664c1db9b7d73aa9140ba867c2b6c2caaa369cf3a31cfb1727a0dfa0bb07a98ac28932ccbab9e669cdc5227a71066110bc056176379ba92b9bc3c5638710b6452868874dfc3c559403d81351d6595064a463df5758e657414ae91920e49793b0b9c05ea2547a0b62f0caf2404babf152c45f016ceb14ad95905bc390683907fdb6a6cd97b23ed9c1e41eaaafce6b9e6eab10ea916bf80c93bd78b70c84846344858e41e80c38aec120ee0e88ba12443b562aa2781a071972b8141b9dcfa2446979b643b3dd6520c7e9440251908082c9e28f228868acaf489411af8525861c787c35a1e6aa86621c1949c038ca148891159eb095d000290d37b9b190631fb47ab0663bf794a82da62aa28ec3f586bc1478903a6499a9e159e3403bc6e856f1502561bb1aa84f26c6b7c34f89b86ad174d96f622200469aac68f2ddc037c64007cc9cb1b45767ac10775b32a14e69248e00028f80dadf1c0431abb0e9b9939445d47669bf0d280cee4b1d3d20307e47ea3dc1c1fe482ca0c4f59051685cab3dfc24c160258684c697be375b0393cc021babf6123b7fb1418111d200a302152cf4fb89eaf05b0bdc6caa07ac3a6f3ba9468a26758586b252f15594980eb9c7f564b3329a6c7396aeb6691df16a2fdb91befeb2407946ce940898135a509964862ec71edf16fa301d018c1b9a40b9306b39c3e58c07866137592518f561500aacddd128724e4bd3433c722f1635297823c0c7b6be9a9d46c6cf33961edc2576a15a31de79606fb797fd9c51977280e0a3231b95b76acc305ba130d544d68071de5c08e6cd3316e400bece9af329bb5c66910faf207f34881df40a84e7962a8f75d728b62d9332a9d43039269271cd3569e387c02eb869210499d146298026fe583659c2278632433db9177a66637f438bd310570bac7c3d10bcd3cd329cc47858a20117f52a8e28a005b055882fbbd0641b33ffc7541e045d6e39bd9d422050b21bbc1168d6b052e7662d4a728b68932a0e858e00c01dbf9b7caa092c96b9841395df839946b1366f716582db53f76a422e164c1e2a6ad3a910906726cbee6353c7bc93eb26a2673a5a2d12459c659183760f357cbe1ba7716270472a231788848c60263928abc8a2679b239526db935472114c992c7e887afcbd7acebe60f329acd4c70944f78b45d367db8aa0f4e14b4b39c077f60b52dbaca57a8461883bfef274ad0098f93b1ac869507e2b9407036cc0ac8101f71aa184014b3444b26a243fdc158db7bbc8b8879bad980041b524f64666f596b28051314db81ac1862c0047ac3419dd37b3c7a947fca9a36ee17cd21671347b17c66375b9c75405b887042346fa2dc227649698916ac091115ac01153fe07c50e048a5b30eb9f81acb28c315bab9e353741167153f27009d077e56f6a28511cf7276b2e1543072a218bbf29c6c831140f7350f3841751a8b5a63b0798558d71295b418990b970502988a25252967ac392ad2831d3bc0b55c4624b077511abfded64cb6a862616534eaf468754aa3975905fe6a9b816510f3651d6621609d4b19f803d05f325547c3c2e0f362934255ed16845f8a95068bc4960948dce3c60e9c485c2833bd45b5b4007f1e29503af05f00189e2ce90ee61b81b9fb239bc1934cb014fd2c8968e82ff9192ad3216144b2aff2bc416e237309663664459c2e309eed36cc51550eaee4153c91ca973a9590a1c678a5478bb58c84861aef0543f2a569b616b1ac5cb4d9e91abce5678dc476fbb076c9304fa2c3bea28b53d8962716c3ba8e7505eca444783ba551c69114020622320fa7c380a679697e60082004ab74b0422c410417a737d7355cecd570dd902519e188941973e0431d463809d66c81c37423db41286c966fc8426888c1514798501cfa14aad72d998b6cb49b0b6d1646e552526f916c0a569777a634a6314bd8e70947d50f5d138fb4d9193aa2bc73c928b098031465c013163cfed69c2236b241e105292c3befa91e93c09683c007df7278fc08be8422a4ead391e6b189a9698ab87b28c0865dba689476567655a52a9c188f31988def906deb10880d8720ab62617873178267606a22a3311414b94c7de368ab4d116f63544de728975b6459da9a56ede9cfe6b1880c8246b509b7b3e99b5f486b1ca82a455726b7f31a119147a731470ab48ddf026a9e73c32b0b8ad2820daa4658f9178622714ecd328999cb6e5547a943d0b3153b631f3b0dd97301e3580cdc4b9f91b1abfdc295913713f39c390863a74a576386ec6f23969c26391b67280406cb754fecbafaec8b217840640368b35b30d4597f081978a5778d8ec806368715539342f4c545654755b59295d13809d51bc79e345e54819c0cf080b1b45e888156fcf9313474438ed8aea296bdf889734cc034409090511702ae734144680636a6beb1a51ee53ac81eb39457c7b061927f8b7241f0b443f3d589c6450d127c5657bc55aee6b874da4d641bba03c52cb3418907d841aea0a5e92ac0be61cef3969aaef84e1f5a0cd83460981c7fc12b1fbd837a8c03ad7d8554500067168131476845167461f8eb01ef649a04b04ee25c54ef7947b2984b900326755440d768b343468b2fd8c06365cb7195ce19a00589c07da1628988b2bb48d1879900b624b278b2a903037c3238581b7b6c74d9a058880152921b7cb2c205fcb1856db5a3d9da9076e250d10c841b767b792b0d1468a935b690f9014d597851b0e00e1dcb13b6643c001dbaac0018afd845b52c161ce61694411b67eb1e4daa8004216637a19c2c372fd631bdf79a2460b325ab921822535fdc042b59b90db05ccf07cca26790bc00900626d1358544712f66140639246033a64d80b37eb916919348d6018d825a691d7c635337c5cdec385280076cf33ab29a17b80b544121c63ca00383d504c1379209d098795363f00482cd54327f150f73d067b45a8957ca603476b10e28b26698001bf59409648daac4086fc36e25f63acf71a56a2ca3d841bfb5f06d110918a2c14417491090f7526bb7254e246798f9b648553cfe5c19b288af0222422bb88bb31017ad4975b733adeeb5751d715b20d30d35eb1b450212adb72a017a30a03184e466089a8615eed8ccbb241c1f99b6fd1432e69976fd38b5b0961b7eb94f98c9aee89cb5c33a29d1521c663c510b7b2f48b1801a4475af3a7f8e9c325dba4bfa82b7227a09aac6c86f7593e198c555e2cba5994c0aab5d566937899a196a635589d666c0c17dca1b3cd587354295936019532f544bf48b9479212f87412f985cc5b0b5b0a774282fc8451be29ee43249a0eab898c53faa4183213028627057dbf250b080831b93b257f8a3ffcb4a559b9e16bb49782932c17c988f2606645bcc6ec67e3de1bf71e1cda3460facd07a82f88ce0325891f8ca9c769818b3cc046060312100b6c0aaee1c1418b2c43b142793ec5e489a94272c5d8348711b7947cf184554d63412d117e1425bd8e48f5e2941dd70040cd85efce0cf1ee4195db9a13233a01374290b908e1c2b27fc66c72d03b91ec23169e872d4036802862e3eeb472d707fac8c410f605bede8304e36bf8b280af7e250e4513ffd7a841237a6249c70101c7e1c1c4406f9249384874e84701d1b30605bb8d7819efe41958ecac218f51b3b946938224f636c2761c635a7ca33435c669e470318882e69b49f108b12bd78c48da58c9adc4746d3712f497fc221b17fb981288abf42c4beb0225f99b34ba00c8ab1719163589b96a6845ac9cb8124326b47760eec139b6c44d95a5924c1c68f8385eec086399b07647199ea1138d7806e2d073c834c21c594c81caa3be77919a4797fd20356ce63000f513dabb197981517b55ba41044be9d05285f4bbd2c29b002766fb5517a0b5004ed3c7245c4c3c0d08c10a91f7ca64bd015815ec34a66b85a030608809c6b0fe36a839c335a062678f91d037ab4bdf3ba3b3c81a6b084451a129aeb7261f04d1cf82082c043fff8778f4a249a96ad6db1378acb3743586d39028e5e06481a940a96d69aaae1866fc13b1a70c25b9047ea11603913686a2202f4dbbb9a729815fb95cf346b999723d268a76e249c22282b6cd40b4f26841287a27be3b517aa339152525ca363eb306c7343c83aa534ab0a0f39524e219b20d5667eb9cc06153bb67e60be4fc741eadd5d9fd1a3fa362698e2de7c6f3bdcb48886341b5fafb4d0a7f54e20b6190e923712d5db6a80db3f27693313db4e1947749dbe50720b09dbb59fc567c0d577b8cf5df80f0aa6545882b8c761d7bc33f2662dce2b8507f517982b7e0511f8dd
+7ef2ac60a4a2392bedfffffc02bb7acad5e78700b4ca6a93e8b2e9dce54c1f06
+Ciphertext: 279b458ceb2ae434dc9dfd90331ebf3bd4d5ad27c5be422edb73bd8ce4e63d3ee8f48f8b03d7c0fd4d911aac7564206f28ae53a82e5a9650ed5161ad2930a5da721d9cd85bd3f545f58be7ddb6b2c8b2171046fdbc02d8d382702ce53b232b9c419f78ca69e0a07b28e67082f7ac3b903ddf2d481c441e8265dbcd3a224b48249dc929afd812a0eb66e99571320c9054962311e7b7b70fc18f00578aba1e6a7c579bc77d3e5d22bdee1c72113fafae95acef575600f37eee2292b5cc2101a1d18eb944fcb71c769eb863e790041c5e1e6ba8ed91059d7fbedd911c844c8bedd651e072d68b8c11e37a58ebc8ed5f3afde861d3bab6feac17fcd566273d2d3d01c8b969a145d21f2b04473dec02be78d3a0f56014a63057044dea631f8324871105c1c14539715ad8271bb0c05310f777bafbe31d7213282a3dc7cd0a669c31ed79c3c57c5a22cb62c79b43e08d99d931948d0b9e486b952590badaee642fd553c9b63f2cfbea33931461315accfe6284ba4057a0a8b1b2fcd13477a9a7945e1c73e3752ae7c80af66e58fad288ceebc1223ccfa0001d671fb220f0c8bac7228a3e52a8b736cbc5a12114f1bf668a137ecbd8fe3936ff01933d922d54c569de86d662d0ec49eead15ce222528678ed50da9120716d6a0b68b273797633e94b55ff674510c5120b03165956306bce1fa5cb84e5c156faf68f996e6a2776ce068bb14903486ee4e93dbbd5510795ec305d83270df50a2bb3a84a019c8871fbf8730f9799cd937eaefabc905d666ed1f09a455fc872fd25ecf96ffd67374f00ba61bed885263f765bb519d8de7864be0485806c5e02d1035121d44837ac7fcc2e46e180c6ead75e28e5781ea0446b1e3da451edab9b1dcccc2900f506769cc2e553cbaf806949442409516f47f1d57fddd927371e9a8d43f0d4a33ff9c4fbfe3358bcd5609428c37d478a82f2da2ebbe1bd5b502b29bb261d601aa133dc401b82fa8ffdebcbb92891740e10e12424b326b1f820041e5ddd320e1323d663e44ecf2ae9df043e939367792fcf24d65fd97330aa05d885f191067c988f6ae725abe837211f07a557fef427035bbc39f3713195d7fd60586890dc552590e1f41636f5f4040f8e8a39bf95a83f768cb67e5abe5c1877f75c67590289b0b071b7b01d69d4a1bbfe60ba7a1796003c17279f025cdbbf2f5ab44d85728cf0bb49966b79bf55fa702ae85fc6e2fd95dd295ce25efd2f15ca872b26de8631ea596c2634bf33d74a777f33a086f82b0f6199ebb8f7fc8f6ee0773c8c588cc4cc95c7386cae36f96a127b18240b8262c3a0598c5cc9079200d7dbc39870e3fa57c29760f927bbb8f514e30d7583efb31d0e3b9376776330e2f99ce550a0eeaf66bf373d49cd5dec423daa81b0e2607497375ab040899536bdbe90b683fd2ffb833dc09007cfb465c929a240755aacdbd44d6723bb15d5281640e10258d5fa03b77aee2c388b509ce9a8aee297c11aee571006734deec8057f7384dd6ccc66ede6a2685092de4cab42f179ae7b57f2059f6a8073a7288c96eaea5151ef64c9f6b4b46b5e5808d94d23fe2dc231b2617e07740a389ffb3e562e4892219aed3320b7ebfd80e29d21ebaeec9060c4ab30e74252c23abc602f23898c065a67f6cc289b3af99150a789132bfbf9b8ccb82ce015cd096a9917c3e7b66f33016a97870260584a4870975a0fb8bf04fd58a80c5281237fcf11e6d83ccae558620e4443d439e73a0124871acf46af072b8530b0ab182e0d9fabc8358cbde7f7f38a9e8a4c47f11acd2d589f03075e27f0926d53f4d63ae2f8dafc6f8888ba0afcff6aba5b96a8e098a7fb324432b705b106f67923cad7f75cc511bff82eca329c25a1e9ff37b0e3b0b71e7db3419764e5761266082f36218e63f9e43543a5c6564e335e287b4a3e84b337f3993567c5ba6f62f03b595cae5e6a7d06b8820cc423523419e9e1d10d54392d60c64fdd4047a44cc3db74a7bafbb0246e1f4ac08ab634a0a5e6b9fae4bf3ce5b2c20370974914b557ff1786873f67550a25462d8dbe4f7ea6482baeb462247c67720c07531dadcade51b7646469a72540f800ef3b4ba0e4c783ec76bcfccb2526e047b8d6ff8c98698a05ac15ac6dd38d80a96b2b62928e6ef0994e406334de18811e140762ec823d70cef0aad84f1ae8336ab455adaf354eb158c1e5237c933428d
+Shared Secret B: fa8e1b41f1ee1376c3ecd464440fd412d9f1f1be24ba5628a78b24bb872b6eba
+Shared Secret A: fa8e1b41f1ee1376c3ecd464440fd412d9f1f1be24ba5628a78b24bb872b6eba
+b19eab53585e27e8a9982ab581726c8cc7b258d30f793e1e5baa91bbabc9e87cfa934ab4feb2a76a1387653ed9a30f8ee3c54c347142641e57c12287f69db4b92e76a29b42f3739935db9bbdd2f2288ccf0de0514ac7758cd8852d3d6ca1550f29a8d39d0866447cf8f33cec0a71dc4fedd2844b5f84922735a02ca4e4f707d11b62b667b89063253e01d3d60d89316c0cf8e3ba05a8e6685be27367fa0931204c3157fa774c24bf56b82f785ae3f57e7e7072b3b435c2b9770baa6b3b4246b1db390923225586f3701633493067774a6403765dffe2f433e79534358ebb208ccb96a8c35ad5e9e2edf5f319917e6b61f63678d52ed580c0b496811ada9a9e8de26c912469c6bde079dc6bb6ce86311c2dd26c1b3c85c2ac61c83f01e9357b7b556d5658c59f04d77cecf4daf3ad3f0c0e79c80b8211165c05dd94d3cfc7bab5648979be7cd871ffc0433f38b68d30ed1b03b7a7e7f6f8713a277b17ea21a6277bd3fc5984ef592f69d4a3de852a484cead68c0c34b61b76b060fee3acf6f77933696e1be19042be017f88a768619cdbe12bd7023772aef098b6d78648fe3989bc4d3bf0881815cf0186ebd219faf4c4ebc2706edd1af9e7b3a8752e843f571acda2e183cf206af2953c1cf54d5e8cee9b0fb57be836286588c8b90c91f5948eebaf8b30c96ce217e6ccde524801a5feab755414ffabf7ffbeec398dc9c7ec15f86be155bee7242692cd3e13c2530590e814edb738e21b8a54dbd977516b72cf05991f5c8bf3d856ba77f7d78e1e686768059ceca2eb8466f8ae6ef03bf83cf4db315b3d8945ed9e255ca86a00dc3a0fda3f63510458452a0853a2de342f5f37150301f20663c7d59d594ee653ec2ecc5678322c146bb6ee8804352f74cc24d0785664c1f411f33c893c647bb12fc212aec9a45f69a21d4b3fc9a4f2eb8d9bf9d0b12f85064de1d2013212300e6dd8d5627f1c20f44d16a2917ef75727e3558a6f023f2a4ee97262ff3581b6efc81d873f7bbcd7859927c383e7ae4204934ddcc4d257a5e5261cd035fbbcb2c29eaaf49e6ea89d351097f387eb548723abe4e5fa91009cf71089f1549bea0dc661dcadd1517dace34c80a9f4d60a2069b7463cdda62bd220cb7d07be41e1acca09c567a74d70d59bc2f82e63ac4c00ead5cfdcd79722edc6afde7a0d873c59a5d9b287d5b2d2e15993fda9b811a588b4528d06fb5145c4abddfdbe73c43d8d1612fb6c0799118547d4e63effd5f048edf667be2fc524fd5515cba147d4b917b4768194db495b42788b8ea31dee852ea3d37b2d0292c746ffb5199227eccf877b8945a38f2bb665ad49e0bf792f5fc349f20dcdcbd5286949a2a9bb89847a9bd2487e1384ea06d04f9970bb518ae998695a9017dcb5c665ec1b8bfd17005e6ed507a588cedc837616f94c428261a01ffda5704f1b621e98a0b937faf55c972e14ecc3170103ef0030f78f6ff1938e53bf208915bb7d4a616604fe463782806427548a116bd5981975de4fa6b25bd20d078f82423cfc01bae7ea24e472b9bffda41d3569db010ffadc547fea9c79f03585899694ad7853047df7fcb9e6ae08e749414ace15d90db878603e551d3d65ea689a58dd8f83bea05bf38a7b29d5f1df99ca8001a934c38de48d1ea8a2b52826d6229658767c45d23a9b17443a5873264ea8c37df574e036e8d509429b5bc2cecbbfa99b8e38925357749e0c7793209987c3bb0273e19572f99909bedea449a3afa0ad9e161b9d3c13581e518a3651f150e55cf589b97efaf83d17dfbfbbdd141cbfa82cc320c47b14255a18fd390ed46653fd762cd11d95f8d57a3e4c3c5934da325f149c138b9b778252d4f8c091ec239b6cfd85d557592398746b5d4bdc1e1902d6e46a9c16f120b7c9d6db105fe58cc1bc17f92ac3950cf8ea9e4c71ca98a76222112c764b093c9c15fb595a8bd57fba13b33d4f73170e9c0ea86953f1bea7bd9bf716676fa58cab4da9f1d98f97cf7fac68ed5b1e3a4d5520da717877f2c483bd79d978a4bea11121d5a66cc64d65436c414c6e0a03e59fd42afbf3238bd170cd988086e49a738b061c0cf127f2ec655ab8fdcbc9c6af21f6bdac8ef6b422b7c1d1b526450ecd5a92b83d1c29921b668151ba776aa522d711ba5f44163b6f1db17425f0f8daa7fe4f40aff15f6992e39f7f43077c88583483af26e1a1908371d152
+Pseudorandom shared Secret A: 531145ccd8594be727b1c09a9c8bcb845e767190b39d2c3ebcd5eeb9aac836df
+f475e75c8a9a89ca2f68a4eadd5674647698ce7739f44458fd95b81b5187e59edeef3ddee4fe4a1938ef4bb1917301cfe1850e04c90938e4455fb1513d8a18c6
+Public Key: 78b34df29b9b518bbc5cd1cd0ec99a31a4aa073a7a6242630af6ad491c1b571a6e1b553a640bb144aa6938f285ffb35da59707d752a553b72a4d2062fd16a589c25c28b89a51867d726855da369d421090cb5479ca55cd8e99bad54aa7cba59d771705a0584042344491d0691cfbc4329c73df4432d1d70a755c606f96646505b89ee5c74c813a658c6688116dd70732142635c835b6f4371e61297692544fedaa89404a44fd29ca1949ad3bf722f5f76b29a4ae8c090379a0bb1001151746bfd08105282b30c5532bfe235905e8157f5a83a8a3863d213124006ccc0625b89b03bf9399c431a2de6a49b2e62a1e154b3dd909d949bbe2169ce65422702c2d9fbc3d6dc355010abde6283258d78c4890704f2402636428cad643d089695bab0b83a0210df72ab3bb4d982a37ecc005ce55357cfc946c23c4c001aa2dd5923e59589b4449cbec7eea1b88a0365f8a77724bb034bd53206b98ca24f006f19a1d7e6b6b9dcb2ceb91054de572387b485e27399769b767988b0c961cec7772ecdcbc62fc104b2a9afd04c9f4e944acd6155f19162a349927d371715029f6aa583afb23b6ab2bb14893b02c58e5981fd68022ca74a2be0a6e3349a12f663849d91b63b87ca7a53f1413623e4710e51aaaea362d2e1ca4a41bae4f85475d20ba12342645292162caae6180a12b775b8a724afc57a5043281153681adc76bdde503bff33ff01449ca15bad940475ac48e12d9cac34828febb8c42e01ad8c88e0bf569deab5876e36bb93b898e5c691e3b298a799432a19e5736150253b2b982a42df95e917b4291978e6501cb4540cdaf0522ccb46a7067c44298124ae5502df42755b4197009b7c67340e335c05a961ea7b29a44e20404848690215665130822315c8bdc3b72a7698b752ae8c14ead9040e081b46bb6b7129971e1d258a384abc8cac9c6a0485be57e66b500d4ec5699a88e92ca41635258d5292e3fe87cfe89b437210d8b8175293373dcfbbc43778dfcec43cd724e94f64fd272717ec0b329163b6386163587cba61136e03bcb80201d0fc1824942a7cde0ca6ebb0db0466e2224bf8ae74fa9f09b465a440627a5eb281b2fe86eacc099b1265d4f9a877a83415297599b3b28a53335a2b8a81c097b975596e29b4569db834cac350af848d7ca8a0b70b03f69adf2ba436e6c45f06a19325a1a91f1cd39e785efbb43b2988c836a5f97836f9af04317e7062d864fc4468d788ca8859c5f11268b79a601e4dc00df63cb72b041f99b31e9412802cc713d5703a553a57f0ac3e7f05753f28337576b1eb9331101b59ae8131af416f9e683b70336ae8811c9856982e2548a498848932d9ffc5270a3c4a0c43eab372992c270b1577ddb1873b4bcb99caa60d6d36f04c7c22854598888169f2639016a0e50f73d38d695f2b5659ed1862440bd2d313350c7992e2284eeb3c0950bcbf4e1aebc9311faa64d2f8246352aacfe990e19170b535757b3a33d52353d41028de22ab60070c053672a95092e7461a1f5502a4dab7e58227aabf52ec4d6a87c780630b16cc51baedcc235f5a8225c5a61de058111eb8f9432a49b9c4d6383905077600de23b2faa17f8048de8d16513065e65c9c20b9c0d87ca95ee5520d4186edb04cc161729b30060749468a09c190f690d65c86030401012d56c6cab71f282880518c2dd71c98f30bfc678cb8e098a92d7880163cb481583ea208504f13b8984515190631918bc9a61ac6706beea8b954dd7289845561bb062681b3c8fd922d2e8a97b449f018c99fd88355690142c128b74593047e2ac38a727c4c067d5d03c5898c53559838a9333744a50511506417353f6674c80610e0a416b1691411fb36170eb0ade0c9bbfb6c0e5c8586509b093d10b53db5366194d16d34360e744c2b880a4192c17b7815972a5acccb10ad3b33626b59ff194f27486c3089c09c763e09b6f19ea2e8c6c7aa0dc4d1931999281452454ac8a949053c579fac3af8dd9c273929260ec56051b1275a20e4b805e80795372589df5c59aa6534ad54bbb2fbb6760064929dac1715ab52e56a4b82b2527b10a9a090f145150762bb8ebcb99611041e359b3a3b9176b9a278a09bda5516fa3f649e5fc493d241d05141f31e811ac65237eeac06951a6dfb4037a10cb9a8a98ffbeb2eb494033031e1e0c2e6af56447ef6e85406b87cc35c86b8aac39ab1e5a
+Secret Key: 328c93159a05e227bc8ff1288cdbac2195a38375ad148609abfc406ee76793e46d258a24a4937062772977d43e2c7b09dfeac137ec5849d7bb53aba823241b1fb906f7b242512298d337429e2118fcb9ad64e11281a97b933258b4a427ff7bcf61e2104df5418bfcb9ab6a647a814f23b21bd321ba8ea7afc7c14eef8c99d868be8a4a738895aeae1b7a77bab42a774e0ce216d3014fba6152b69085a9404d82a1436a9967f27c26a1ab04be5382bb238a3569910b80ace03b40a5e504f2347bd0c913ee990abbc149d029666c6b1877b885267467401251c07946359091c4062cb3c7aa704a0f357c97eb43c490b345d9d4945d2808b405041fd0c9c74c58d68bbfbc2b4e24725e1bc8822edb72557ca7e799992271a0a3996c3cb1503f0bbf87c83595a06be5959a6a6c73e4076041fb59da6705e28482a3d1aaf9d4a6803bb8ddba9d78b7cce3699b77f3361eda7148a0238da259ae565081209854073f3675568ed49c8099ad8fe235f6d996db866ff1087b22b3c42216a8c394c86f4cbed463568b017d01f087cb1758d9e40be7820e849316bec9bd69737f1ad904bc70b89772ba4c106f4772890c454def76cb1fd23a02c26faecb5d2783c98bacccddd52720538c7696a9c9bc6dc319502c76166c8409d0787f80bbb820780ef445b922118eb6095bdbe8b613a192ca8a94f15305f5956a364b6157b66f9eda396a6b866e7b56e913650247c47ad22d84f7cae9428c8a15c0963026943317c5927287316ca0c661172c1547863ee841821bdba6660b79b584b7886b39297950f94542c42c100be9b0f6417a9442b8357926ff0694a4fb9a7fe03bd9f85d79e9ce59820cbbb1bda23aabfae48b327a5357216dc9f675bb7a20a317ac981ac060c417d4664b62774ba519c48751133c850fdf115e749bc5bf6c1151dc5773e41b75189e14b6573f78a7f2b787eb76277ed1455e178cd3581ad5362fb993a85d2696c186b0137208e7948d3ac745ab9956a4d7ba7fe988723107a8b2379f56a49fa25460a258e6c49d167a309d0c5c3632c4e865a4c4e15ca4670aaf4cba2369a9a838356b9c6b06e317f8c8cabb939b13d1233b53a4a3494e60284c2bb631bb779a8661ab1903359144009f3aa1960a33354536c61948a556b63cd954e0e6bce2381e67f1c593d7304a0540626b5b61420fb2e17ea0980181778242246ab295081ce8c16a1ca4b9e796abb579cc233dfce22ee290caf416322997c80d3096099c75976b429884c0385a41d3cba496617d5336751c182146268a45239624d99d59fcad73910667ac6c9903c018b183650274de76baf441be14599d58347e79b1a9dfd4a45cb52980db27298432b6449f27370ddb19af66a9003f5908dab35c22d5b1fb191764db820d80187af358373918725aa590308d9a25526cf17e09671500090b6941ca28c8775b47a83ee04e60629777337e1900598b1540a5f75765085e2b4cab7a394d668764a16181b421b3c2fc7eb8e619d65202ae96b0bad972bb123f5171c9c21993aea4c4b82c8f8311c4bcc3707a3199912c1e0ea8717522593618698d40a2dd253c4ee81ab5b84e3af1c857a13cce3b923b619357b7a49f571675b2987b6b5a53e71c7952c5d7e02237457d5a719370a51b79e35399883016412550f43417d552a33747d7155d61517a07b8ace6f0a052ec0e28c304cee6573a2a3ae6890831b3707956afb49075439237c1736d696b4e734335f2203110c72666d22bf0785f632549b7eb87d87c8fcbb099709a2d9b928230ec0d0f2c65492101c1148709797c1e002b8d498ce9b98b58bbc2b9d05d74788c33470c3d759c345c7018811affb5107ca27a05ccb2b517a4b7536247d350d4f02d2bc9ab78b7ae2f15145e99abb846b77b62ba7ae531da734834e88d023bb981d708c7623ade5cb62bf69beae1c0924b5b9e74bb91b5c20f99472eb2844a06670303a9c2b0604c0603b9f5b4ee98460d76b718615736a8adf64427bb3b2c3ca246eab58412aaa0352a4fa9048a50e6167bf807357a2a45f31ee0c168e584cbfa9677c2510dce0a5ea58c135562b3665305c408a91b572f68e382c5c387d38cb46e569d890140430613f7e2b8cf605032f1804c967f13937e2944ca4afc58f6266da2f73dd751be4189b578b34df29b9b518bbc5cd1cd0ec99a31a4aa073a7a6242630af6ad491c1b571a6e1b553a640bb144aa6938f285ffb35da59707d752a553b72a4d2062fd16a589c25c28b89a51867d726855da369d421090cb5479ca55cd8e99bad54aa7cba59d771705a0584042344491d0691cfbc4329c73df4432d1d70a755c606f96646505b89ee5c74c813a658c6688116dd70732142635c835b6f4371e61297692544fedaa89404a44fd29ca1949ad3bf722f5f76b29a4ae8c090379a0bb1001151746bfd08105282b30c5532bfe235905e8157f5a83a8a3863d213124006ccc0625b89b03bf9399c431a2de6a49b2e62a1e154b3dd909d949bbe2169ce65422702c2d9fbc3d6dc355010abde6283258d78c4890704f2402636428cad643d089695bab0b83a0210df72ab3bb4d982a37ecc005ce55357cfc946c23c4c001aa2dd5923e59589b4449cbec7eea1b88a0365f8a77724bb034bd53206b98ca24f006f19a1d7e6b6b9dcb2ceb91054de572387b485e27399769b767988b0c961cec7772ecdcbc62fc104b2a9afd04c9f4e944acd6155f19162a349927d371715029f6aa583afb23b6ab2bb14893b02c58e5981fd68022ca74a2be0a6e3349a12f663849d91b63b87ca7a53f1413623e4710e51aaaea362d2e1ca4a41bae4f85475d20ba12342645292162caae6180a12b775b8a724afc57a5043281153681adc76bdde503bff33ff01449ca15bad940475ac48e12d9cac34828febb8c42e01ad8c88e0bf569deab5876e36bb93b898e5c691e3b298a799432a19e5736150253b2b982a42df95e917b4291978e6501cb4540cdaf0522ccb46a7067c44298124ae5502df42755b4197009b7c67340e335c05a961ea7b29a44e20404848690215665130822315c8bdc3b72a7698b752ae8c14ead9040e081b46bb6b7129971e1d258a384abc8cac9c6a0485be57e66b500d4ec5699a88e92ca41635258d5292e3fe87cfe89b437210d8b8175293373dcfbbc43778dfcec43cd724e94f64fd272717ec0b329163b6386163587cba61136e03bcb80201d0fc1824942a7cde0ca6ebb0db0466e2224bf8ae74fa9f09b465a440627a5eb281b2fe86eacc099b1265d4f9a877a83415297599b3b28a53335a2b8a81c097b975596e29b4569db834cac350af848d7ca8a0b70b03f69adf2ba436e6c45f06a19325a1a91f1cd39e785efbb43b2988c836a5f97836f9af04317e7062d864fc4468d788ca8859c5f11268b79a601e4dc00df63cb72b041f99b31e9412802cc713d5703a553a57f0ac3e7f05753f28337576b1eb9331101b59ae8131af416f9e683b70336ae8811c9856982e2548a498848932d9ffc5270a3c4a0c43eab372992c270b1577ddb1873b4bcb99caa60d6d36f04c7c22854598888169f2639016a0e50f73d38d695f2b5659ed1862440bd2d313350c7992e2284eeb3c0950bcbf4e1aebc9311faa64d2f8246352aacfe990e19170b535757b3a33d52353d41028de22ab60070c053672a95092e7461a1f5502a4dab7e58227aabf52ec4d6a87c780630b16cc51baedcc235f5a8225c5a61de058111eb8f9432a49b9c4d6383905077600de23b2faa17f8048de8d16513065e65c9c20b9c0d87ca95ee5520d4186edb04cc161729b30060749468a09c190f690d65c86030401012d56c6cab71f282880518c2dd71c98f30bfc678cb8e098a92d7880163cb481583ea208504f13b8984515190631918bc9a61ac6706beea8b954dd7289845561bb062681b3c8fd922d2e8a97b449f018c99fd88355690142c128b74593047e2ac38a727c4c067d5d03c5898c53559838a9333744a50511506417353f6674c80610e0a416b1691411fb36170eb0ade0c9bbfb6c0e5c8586509b093d10b53db5366194d16d34360e744c2b880a4192c17b7815972a5acccb10ad3b33626b59ff194f27486c3089c09c763e09b6f19ea2e8c6c7aa0dc4d1931999281452454ac8a949053c579fac3af8dd9c273929260ec56051b1275a20e4b805e80795372589df5c59aa6534ad54bbb2fbb6760064929dac1715ab52e56a4b82b2527b10a9a090f145150762bb8ebcb99611041e359b3a3b9176b9a278a09bda5516fa3f649e5fc493d241d05141f31e811ac65237eeac06951a6dfb4037a10cb9a8a98ffbeb2eb494033031e1e0c2e6af56447ef6e85406b87cc35c86b8aac39ab1e5af7a16095c383912b155c2f3e6d3f86a3673811d50bc16e4d5cd08df4a115697fdeef3ddee4fe4a1938ef4bb1917301cfe1850e04c90938e4455fb1513d8a18c6
+8a4dbe45cd8090c5eaa0bb07865c2c82314a4fbdcba8b1ac0ad4d9702effc561
+Ciphertext: 635a67cc6353dbe111961f1116368bf5345bd5253c2c7751dae5e51184d89ffbad0ef79f6b812fb94b841b747cbb992212d6bb2ea538c8be9f56c0bb154da4de2f9bc5e9fb8c2171a65f91ff2c081652aa34a3c680ec8c9a4ef0abdcf4fafc61733d382023269ba296dd2131e82c0442e756c83e7a5579af45ec6193ffb8eb85a680b28ede7e012db20fb292ad4b9d80d6c41b87f0926ea082eb50a6e5b984481a322626765f8b94d0364c4a50219636e617c49e2a4911c58cc9744b8ed539d21eddf41acce9f6aa8167d0a380b43dfa624f43e39af96166c374b2ee3439d480819eaf3efb6656d7b10a63f60b7095e7728c2ce632d547673a1ffa580c2881e2e64ed4176b00d869c50026a89b949f2044e14d56472a70e8e05e7ea572ce998f7abc8f742f9ca1c3ab817a1a86ab2eac86b525d7fee24f98ba1d310cfa78c3c709a9885ef94af634a5447e0f464f309b7abdc35210ce0c7403578960b60b8af4e28f3c997de576e9a026247f3b93f2c8d329e71d8fa27e0266d76aaaba33871ea6c32c5b7ac7cee155c6d3d9140d3e8af4cb2cffa42bc9c759977aa75d3e3994445fce11e286d9bf721d072ac2ed83ae566e7fe8c0c22b1433fccf6b042095bbe51ce74aca3d3a11a47f37b3cb7cbef59c8c9a5acb0bc7b0786a9fee56dbbb6a240155658b55a4ca2c680fdb99f3ba7e77386bc07534811930a5015bcb65e88e8d62092ed930b3a6ce7b72953d846598dd40e12cb39c954e117e2f6d0cabfbb7de971048ec2a84b8bdda6c2fc46b145b89753b86b808ccf041662deee804e63333ef5ea5b297d1124bfb533f6de455a8e9523d75380c1669ba5de67aab3e16b92ef04e5c65061f3d16df8f56b32ea4c531a16d6ba6dfadc0c587830bd1ad785d26483da41dfc016e0859e7160b30470ac2b7620760be2f7171af243488d21eba8fe919225a0f35ed9c4856a10ed945c44d30d53cbc787e0b8c0c61c57bbefb905dd006e9a768c4b28d66b7be5785470bce0790d72d98541ff937204446e7311345e7717287698fc9a74ad4b7dfdaf00b1c98d13cc52174c5ae32fa20dbf50cc73a4ff11154a8c797cf7b4bf13d61c1a2315be2f102bf2cd2f6bc6cd6cb4d78f7049a0d194f0485db38eed3d330fe0e3025707ef25ba06f329c3675df5281842494822f6562d6328e3666ac7caeca07794b7c881d5c0dd0bc476f73e7a7914153c1995c89d6d67f4e2b962c79483de2cf3e58b915e373f14afa9e2f9afbbc7c3611d02df58d5d6a29aa271d2b40548c5b7a6967458c3e5890544b3f26ddca0cc6788331cbb84528a190bd77a84f88c970be537af62428a3d1d99903b243aebbb2d51766303b8c2adec8bcf8faadc07a36747472adf67e011f732d55a5c9de8353089c0784e63c7b80ab95983e0b49493dbc0ff4eb9a05716855e485c8e3977c6e60cf0fa3f0f221a1ffe74f682fce34f01ef4ebbd91c461f393d4c7398e73d2dd34bfda8f9695c10a55730c8470941a9f4eb059a4bf7bd7714f18d0f4bb558784e613c3d3c2607c7059bb7983c44782f08f2e10037c6954f8377e4aeede350ee87f94aabf75cae8ca089ebcf5867da985544f0dec6885137e0361c310e8d2a82e8b6e18fcf271ef86ffffe1a3a867e308b0fb8cd0d4c39e5f109e4f44dfd8cb58815406cf3ce8190ca5825f37d2b0573f2e2797a83d6d6b1ae1c5c8e3dcce31b5067a059ccc6223348e799fcb99af8fb38bfafd695d1ae0cc5279a9adc0083becef6751f4e79d5171c54c410a4d2e9f9e4cec94d396a960c76a962bf9d6b712b0c4666c886eb790b4d4be29cd79a5f624a3d801c934515c49e525e333516fcceab9f3548ac0f5ce4df3541cede1f137c46e377846f02431eac9e3a42f54f73fd5da9e77d9944a2422acb04b21c34e28c3a283fa4bdeef585a6dd932b9399fb92876af20ce1248a48dd6fd1f63d4fbbf138ea426bc6637e23b5da4f47dfabe03af03c97f4995a1b219bdfa2df5377f9e909338b44e09efbdb9531831a854bec29e8725c3d05f6499bd178778e0cbeb4de65eaf58043a8a4097e64a54761228afaf7598d278a87e2087fae0e58bc44d899ff7105af564266a22a13525ea9fe33b11aed4a0187bcaa80b4064fb643a23f797f27959ac0da78aeabf849bcc4a163e813bd18de0d2d1a47e1b1734b62fbf72185476897940f4383b218b9c8339387e5c
+Shared Secret B: fe6082af791a05a116659a11260564bac2cfb970ac90e025a7e29d61448c70ab
+Shared Secret A: fe6082af791a05a116659a11260564bac2cfb970ac90e025a7e29d61448c70ab
+3e06d8a296c66a8c911449875d65d7981c82335ec79089d5eff16919f93bb3c0834157bd5cac7d51025d9b0c52ec5a9574cddea7b5ee56b51e32d4b518b44f2f005c6fa44c7529f20240e8a0e44a67d72f36a1d2072bee3bba2e77321113ab7ffab2e69af2c69888ab0e2234d07874088faba3843c796d1733b33fe03964313242a95372cff3dec7863c05565b3a10f8ab9a380567d82873b1d72121b7b4d991a2fa4847823661b7acf46ee10e3fff107b70a48caf884238f437ade961defe52096f5cac4d05e8297d3444e408f1dbd7a1bc4bc7743059cfb6cdd0b986ea199448ce8e1670e5cfc34ae646fbef4cdad25fbd3f1baffd8ffe42aa96de11e35981bed96dfc82bf421f460f88926dbb37ad402257dd813a38b7c4c8ba90772f87bde81c042f6e5426a2e3eb717ef4f8e2ddc883920915a585e17e10f32ab43eaa7de5a8b0f0e9ff3df0c071b7524406ab58063335327bb3843c16750c0fa86127b15f698747c68fc56f39be4958ab180c50ef63aa5536c58e6e8ec66aec224843a5daaf0aff417a2a0b068a9fd413a028fd0940f93d0f406dd550c3aaa31ab1142c376645e152ad6ae4cdafa83395fed3c775e0b599af62b338893f1e83b2243295d613fb2efef4e413a65b6c8861094169994fc99bcf26f35a27953fb1e5bf265e77a33e01a97d628b5add7252701f1ac4b8b2f3332a17c613391230a9c587bbab2c64035582eee1b9d987d658446f66f3c451c5a4c6ef50f5e9265c1d5b9f3e2ad3457a87dc89912d33fd971b87d7851fb9e76783991ff9fe020af9a6c3d659e4e666b61e78511151dfa3de90adf758745182d3aa439f0e178e18091d35c40d529c559fabdc472286e11a0750f9371b4370b06af7c3bd49948b396a408a3a6831d9273cd534e2d26dbe807b2283cc61e63e91c4e0e618ca0c4af371838edec0d835aae368de2eb582f90483116db2753e868c6ba1de6beea69b52bd938a6afb54297de68662833c1d528b9d10c874d43f67bb247112c769ad5284f1fae8ac7c33455808d75b3c900dcc2e065e14e887a25213fc15efa338b72eaee2fdc13abc8de370a8c16434e215bc3169acb091d9e3b5d4d886547217435ba3fe667eb9d57b4533bddbc03458dcf0885c22287c8663585b80fb548101d26476746d72f804ef0d44e4bf5e61d461d5503d3a7f5b3d01d9d9dbcea43eaca46825dd781f603ebddc931079ac0f8a94a19754780d16a457b7af3394c82e1d4ab662d7421e5bb1c51705107039830c6652897631c215fe4e0df49435a7410f66e1ee671a3c9ea0bdb2bfc7b2a64d25b4f5752e3af70b0a0f038521f8017711b8a98d04171d20b22fa88f56ddb6e902abe88a05335d3cf5ee504ee38a22d784049ab54a24c9fb3cec8fb3a7508db718e04b6bcaade48dace4bcd426d24b7cb2691fa906e6e8c5f86b28a4f3243fabdd79612eb6173de1e205fceee18b3fc640ba36612ae6331d1b483985e15147d2e025628a11172df7fc07329ec85c873a28db927683cb6c477de6142deb757c817ed2fb03f62ab9c3901be16eec2e1c249ee1cdf7fe24d94668db6f540d2faca9d5fc8ad17e284c8d52aa1931efebe31fe5787571716efe8ce1edf34ab60c9ea5211657c77f301af247affaeef7ad0259c6373f21460a46b4fe7b2823ce053813fe242816afd5c2f9acb5a6898858727363b0c6dabd2e5e08c074d9558378bbb517b4e61ee3a94dd4a45193a06f50183b7aa417b0a0c5ddaf38321bec5d8445ddc352c09948de14e2e083226dd08919de3ba1e4b3c8fc6d52cc517659ba83faacabda849d3296a05861cfde26ab1023a6a70af8d9e2605612da4ab5d9eedda1b6d8b36933c28fb7d61de40521a4c071e0143a09703e951686197b004e5f960ceb35e50933a5b332ef707a64406748cd731ac635e3ed79652742c3223257eff5c34407efc00e05be558f8355d34801bfff053660cdd6613befb2b9e2e4ee449fd561266a136a48361e6dfa9aae1df0c20ec9143328e4ee6f3a161a26c417c05ea5d3aed32c222e1f81a5d01828e5d8e98ef3845f966964ab8f762f2538219f1ef58058b2985b63fa30a50d715e9ca65005df24c0b83dc6f63d316a3ebb8426f80d6a6d3561cbbffdf7c6ccd3877995f75df6aa61784bc3b2c070af999cda0f9d9a5f09460aab7a1396c9f67f5e2207cdfcf916c07ccc26ffb0bdcf
+Pseudorandom shared Secret A: c8c4e9a18789967fc2ca8ab83515abbf7f05389b8f493e958b856944e568d4b2
+cb3749f86d34ef412ccb34e75570734dd6b51226e45c647f0849f703e898b09f2eb4d0911a87ecf849fa515ef1a4e7e7567172bf9a667b7de1dcd6c7b041eecd
+Public Key: 33db83884269eb092d9e343b633a7081b1b727a134b2b606507198106ba36e89ae17eb3b6b32afc3f4ac6e12a37d1c3180845918db5532c73d5598599181283c7521b08714fa8b64d924045d95434b29500a475185927b38774f7823c0b2f415fe5c5c64eba05de236b7414d1c3b2ccfa0a0a74191f3cc2b07a036443c7b8eb898beb316d1126960c192f39940c4c91219f5a816dbab48eb36d66136ee4bac8f05adc193c09d5c082eea468acc4931aa3ec1e51a74c32897b6b55e09308fcc967dc78f1509706085796db32b16bc5d6f24592ea95185b90a34c83d55fb9a5a20048d541984642080ba09c0b3c566d554ae4c2a7ac2bf7462caa2eb9d7b31184ee65c73b9382a7386749b5102b2c56d57bc3f4a4ee6e20ddd5cc5c1d8b50a023b9cca3bda14187ce3bace06a4a047bc98da01a55847ef6096a6ec5ad162aa3fecb8250803ea9043def196173a4e7aca4bf6b00fa2b657ea83aab349966bb0ce6199b1346b5ab207b1b428b6984c987a3784ad328bce1c4b53116f18b3c1959a7d5f54ba8306ceaed5233b2935741a4da02b5975e9068b782563a00e76319958d7791ee48bc4f1ce4c64b9a015b459f5772d26bdb41b7bd3cb22d2599304c2cf0ae5afee8388cf04526732014676ad90d63dbae38d00c65b49863386725242b4c2e0e7866c44330e4375e6f0a3e3607e661b99721442a3f852e43a01ce55962bb9bfed5b0e26abba7af91ded9a3192c287459c9de1c2cc20349122d87320780046e08f7a8090312335a9fa65d5785c44ba6c6fc04d4c8c9207664686f8c7b8f731bdf52dabb5addb21a289548e3a5b584fb5c6911a478fd2c0d7a0be7f3b9f25698b78b0565093c24490792ee01f8144905b26190ea9cc9c885c7a108c6d764403c13d82d56b1ffa866345552cf93116fab696c3b858ec32dd098a495539640bbf5adb386da67f9be14bda9c179bfb5b4ebc6b559b8b5a4309268592f5046684847c1a2a4e463626228361b9199b6b4705d9d9a8ce841795a326a9a56c9deba5a7231ab385869375b76a604223793ec29abdf03480997154ac6b0f88570eed4ccbbf92810c28288234074f5c3a60ea090dd592e91aaa79d707b09b191ae837d003bb3f0c1122c61912e3049491386b6b7fe8006f70b782efb42017004cf298763984bcbaa128d1e95ea1308e4d8022e3e0aec2ab7ab963acfd312bc2cb43bd8819fcf171e47c44d8c646b9704524d2b14141c1f548ca16fc3225f63598d7c5a7788503a362d9a87e9540c837d556d3f4a044d180076bb454b08a04c3278b185ed557935c84ca24e50969e5adf9443b77dcc583510085744caa413914451f6d8705d8038de5163071176896e963e4dc159362c28331045e0941d199bd0920b16795adba09a51a88a040281520a56a7533a34d874cf34c485c89741846598f7b8c85bb0d88cb042d67aef55325b8255f822a3e74549c74426bd8bbc64fa6057f39848a3b4f89fac3ebd349cb8759da207bd30884b34865c65a0b0cb59dde701d25155916c6c276422ddba113867494e9cc4c21486d59b78bdbf2972de2b8d3e611fcd886c384102f24b48d67cabc1baea68aaf76531e62d3bc86597015a11e3e41181e27c54ab10e28c7c44a3b4dae4b5cab2b1914a504b883448be267a2438614d130da129dad64aa1fdb92ba9b35bd11593c871c9418cacbe686553749616c92ac242faac854dfec0c50830fb3315594b60296cc4aac29ab8e7b930f16379327463bf2be86f297bf162dbc24312b91882a8247cd474ba1a5bcad823b00fc868b516476903c947968ac9b825a68661fb699e4a18dc7bb7663b05012c8bf12007dbb42a663447362f9ba98ba9141f42ece73ac37d80aa9757d055772b355592687475850006c92ad1e77a2fa6a3717304b6ad4c14956a85094798b005312545303a459bc64cf14682340690826e05b8c15a91678acecd43ae1c37b207a43a0d88dce060ab9c32558a3841fd240c3042e2cf00c11c4208168065465162bdcbdb48668eb920c7591b0da89c8585b8cfee67c82987534f401f0c9a1a6e33155f70c3e607dc4a33cdb34420688939341bd7b93c794a859c2169c7df5cce62a3a3a26ac6242c65bf97638cb4cf65b9f99c46f181282a50aa382f970ffd6832dd567b4e3ae1a78d26fe6d9585fd2b74562d7b9622cfa6fb4be4b3b935b8beb7f250349846c
+Secret Key: 2a182f9d5c0927d9a8589116bc6b6ef85597c8b45911c758f8ea54b7d94688331f50352bcbd3b612564ca35086fedcb6a4709304d74290a2b3d28b1a010ac36fd581fec0c405864477b32beb6165d696be953931b7358bb158186c82ba81838bc6c7799bfb7c3f8c3079db706e7b56bec69f74c2b4011218d3bc5bc0c0cb003bb0f1c696035a8b2f8419e6a5454f37239f7932cbe935ece4ca6d0b22d2c809ad1912556525c2256704f53b4c195fbb8306ef1119f5273c9cc61ea886c97a5a0f3323a988732c904b2dcbe2729e718bdee68668e26442269efbe82a52aa46e86791480858d315b842e37f7a97a140749534c62282f85e2c93cbb75b2f0b15cdb4e34321309cb679497f164ab380133b0260c4892f98f75256e5c28d0c2d1350a7fe86c615c8a1d2c5a1b72a342ab792e4338d854646676a6cd231ad2675819195813071340bd5c779f167cf8b338735152a93307976640b78215363005e6a9acb373ace447a8c6142af661aee986908c72640e1882a772cfb1c9ab6a6163ba9381629b872662d18595b82353f769b9edb78518ba306a36b2ee167a0014a307494621cfc2284d122bb680f7825cc5a751cf6a4088408966e219323e7c24615a3e2696d87c563480394f6bc66d5077cdee2aadbf77ac750c43660b07f1ca9cb3899c639ba2016157cf04da9741426178725f3175f7811f3973d324c179be38609a0b98bb93d02323c72acc61257939cf82bdd29c122d95ac00b7e07b7ce4a3ba237f3bef876640a1bb55b198088176b4e85c09e7221d4551a77eb5a97544fcc20b68afc5c3684668da0cd5af1b8770714e5f35ef1c216025b97af3cc2a80a69e99532b5550ae1a430e84a0ae0501c15bb44ab7987694c4886f958cfdc416528a0f1566d5a0c01133b2d1fc87d5cf0515d876fd7e41dec5881d6aa6d12ba1c9b966cd2cab19710a3474c1a2d387cd1e114b23387e6f23e2a8409d8a163e1421a1095ad83624b4c868dd47ac40fe396f086a453d68be7009e8dc75380a14cb32605cee3a49fb638a80c6dac6ba362fa98f76319c8f00a7d8c11b0d61e94654e766040145670de04a456d9498ec66ce3bb85348b098c18c7c1d7538c2b289b583d0c605d62f428f1d3a25d8410fac80cf228c2d16b1474e68269f729e5218d2062517ba265b3e3842ffc7c3030840b309ca12c73dca223fde37164938a29538684b0b64d70b36a34c826b8cee740b9b5fa1c75144fb0e881f4bca60f31639e011f499b5d25d0424377a349a3ad09db75d6638063b199103654e24387eeb0a45ea66667d0a102910d0d3879f7b359aca98cd8d3a2e0da677d50b39781ba56c57ce93111bdb9a1cc595f90070c5ce9cddef86e72212fed1154e3740dd2f04ebdb356249506e94c46c86a058d44882bb45ad615526033474e236c1c43961b69b28f4092b88a7fb882abf9b35c01e16ba0d78b9973a658fb5f706b2231eb41b903a347f434e2670c6bc67baf5028eaf8b401c170b8e17e4c0b09b882caffe5c5b162bebf78cb1f3575109799da80bc46499a282c197efcc993e159d881bee6817cde3615e3323afdd4a558ba36fcc89398951d0418014df96754351dd4c396add4753d26b5c8dab04733007479ae593c4864429534988200dd840f5a2b5fc6a7b174121f3a68087482c0aa139bf6b9beb64548f9b0dde54a18478579cb1b7cea511624c77b9a0ed3e5886e4b5a60f1021f8072aa4c33cbd1105e60988516135d3b0867a276cd2bbfe26541f1e7b28338c3d48844e9924b4e1b57826c18333347f6b624b09b7dd65231717942078169ec57562b33a880f45d63891bae071ae2c31b6cc7b2580144a3c358a6395042019158e154ea7067349b51fcd18d2df7017597ad4aa67cc706beef5b566113b00c8714cca1a681f2446d83a2e5da726b373fe58a0670a79eb5d70ed0f90e597a060ed4b0e2f07c5058b07cf41f421127987691d90985b155c59e1a9cf6eb30b359b3cce9b5bf349286fc6fca4c1e9823cc8df9328c00c4d32322db3a0da7433ec34ab642d75aebf18f28c66c5265a36013927ca8cc245b126a8c429eea162910b706f7bff6c7a35cdab68c79c223679ad62b3232f76d1a651f2cb27177a9263888aabf4b3b960bbcd20a6c88246d42671007caae075c0033db83884269eb092d9e343b633a7081b1b727a134b2b606507198106ba36e89ae17eb3b6b32afc3f4ac6e12a37d1c3180845918db5532c73d5598599181283c7521b08714fa8b64d924045d95434b29500a475185927b38774f7823c0b2f415fe5c5c64eba05de236b7414d1c3b2ccfa0a0a74191f3cc2b07a036443c7b8eb898beb316d1126960c192f39940c4c91219f5a816dbab48eb36d66136ee4bac8f05adc193c09d5c082eea468acc4931aa3ec1e51a74c32897b6b55e09308fcc967dc78f1509706085796db32b16bc5d6f24592ea95185b90a34c83d55fb9a5a20048d541984642080ba09c0b3c566d554ae4c2a7ac2bf7462caa2eb9d7b31184ee65c73b9382a7386749b5102b2c56d57bc3f4a4ee6e20ddd5cc5c1d8b50a023b9cca3bda14187ce3bace06a4a047bc98da01a55847ef6096a6ec5ad162aa3fecb8250803ea9043def196173a4e7aca4bf6b00fa2b657ea83aab349966bb0ce6199b1346b5ab207b1b428b6984c987a3784ad328bce1c4b53116f18b3c1959a7d5f54ba8306ceaed5233b2935741a4da02b5975e9068b782563a00e76319958d7791ee48bc4f1ce4c64b9a015b459f5772d26bdb41b7bd3cb22d2599304c2cf0ae5afee8388cf04526732014676ad90d63dbae38d00c65b49863386725242b4c2e0e7866c44330e4375e6f0a3e3607e661b99721442a3f852e43a01ce55962bb9bfed5b0e26abba7af91ded9a3192c287459c9de1c2cc20349122d87320780046e08f7a8090312335a9fa65d5785c44ba6c6fc04d4c8c9207664686f8c7b8f731bdf52dabb5addb21a289548e3a5b584fb5c6911a478fd2c0d7a0be7f3b9f25698b78b0565093c24490792ee01f8144905b26190ea9cc9c885c7a108c6d764403c13d82d56b1ffa866345552cf93116fab696c3b858ec32dd098a495539640bbf5adb386da67f9be14bda9c179bfb5b4ebc6b559b8b5a4309268592f5046684847c1a2a4e463626228361b9199b6b4705d9d9a8ce841795a326a9a56c9deba5a7231ab385869375b76a604223793ec29abdf03480997154ac6b0f88570eed4ccbbf92810c28288234074f5c3a60ea090dd592e91aaa79d707b09b191ae837d003bb3f0c1122c61912e3049491386b6b7fe8006f70b782efb42017004cf298763984bcbaa128d1e95ea1308e4d8022e3e0aec2ab7ab963acfd312bc2cb43bd8819fcf171e47c44d8c646b9704524d2b14141c1f548ca16fc3225f63598d7c5a7788503a362d9a87e9540c837d556d3f4a044d180076bb454b08a04c3278b185ed557935c84ca24e50969e5adf9443b77dcc583510085744caa413914451f6d8705d8038de5163071176896e963e4dc159362c28331045e0941d199bd0920b16795adba09a51a88a040281520a56a7533a34d874cf34c485c89741846598f7b8c85bb0d88cb042d67aef55325b8255f822a3e74549c74426bd8bbc64fa6057f39848a3b4f89fac3ebd349cb8759da207bd30884b34865c65a0b0cb59dde701d25155916c6c276422ddba113867494e9cc4c21486d59b78bdbf2972de2b8d3e611fcd886c384102f24b48d67cabc1baea68aaf76531e62d3bc86597015a11e3e41181e27c54ab10e28c7c44a3b4dae4b5cab2b1914a504b883448be267a2438614d130da129dad64aa1fdb92ba9b35bd11593c871c9418cacbe686553749616c92ac242faac854dfec0c50830fb3315594b60296cc4aac29ab8e7b930f16379327463bf2be86f297bf162dbc24312b91882a8247cd474ba1a5bcad823b00fc868b516476903c947968ac9b825a68661fb699e4a18dc7bb7663b05012c8bf12007dbb42a663447362f9ba98ba9141f42ece73ac37d80aa9757d055772b355592687475850006c92ad1e77a2fa6a3717304b6ad4c14956a85094798b005312545303a459bc64cf14682340690826e05b8c15a91678acecd43ae1c37b207a43a0d88dce060ab9c32558a3841fd240c3042e2cf00c11c4208168065465162bdcbdb48668eb920c7591b0da89c8585b8cfee67c82987534f401f0c9a1a6e33155f70c3e607dc4a33cdb34420688939341bd7b93c794a859c2169c7df5cce62a3a3a26ac6242c65bf97638cb4cf65b9f99c46f181282a50aa382f970ffd6832dd567b4e3ae1a78d26fe6d9585fd2b74562d7b9622cfa6fb4be4b3b935b8beb7f250349846cccde553386cd5c5be4666f80c781fc81d6fff50e74eaeff3beaeb5bccdf8dc782eb4d0911a87ecf849fa515ef1a4e7e7567172bf9a667b7de1dcd6c7b041eecd
+1267423af0c106e0362f1466267dd0912e8467116af43d9ec98bd7f306860c3e
+Ciphertext: 876c118ea6377ed8e378d6241f761dc69b0754f189324708b6c10fc4b3fb4ed596acd6ce97ed6460069abf6f184c6539ccad8d7bde32b07a504b273c6bd0c5d9b2b215d095b3fd9f3eb9915c6a6b4ebdc6a159f892c06952ae6918c6e10eb27e3d02a7aa05b9bcd0379514a4ba93a62d5b760f93529238ca335ee77f95628cdc81e179cd820e6e51487d2dfd1e9acb22198dbdfb882eb77e2fd0600265e0bfdea591458f75f08d427d21c33d60fe4b74ae3f4ece95955ae2fea4706d82f14d8a34669e5935005e90014778f3a47007c46bfa3cf8bdcf2c86c7a0d59938e7863ce2f9a6de90dfe5fca8cac12b32c15bd70f3353ceefaa52c4620c30510e3eff690ed89151e2caea399c9b18617e6aac06d8deed0fdc8c7a3ff2f77b938ce898031255205054dad223a37d2293c7dd1d97a964ac8336008ec841d889597fc1fc1368ea5860f6918b4788201ea23cfda8d4385f929ad349fd395d2a02be2644a56651ebd926725b4f6a1452eee4e4659f9057f6642f7c621a56509b9428747d2df927fedd4d5b8af806da8e5fa6ff51c5b27ecd1fedfdb6b7eb4c3b2bdccf45ddfb7666bb2202afbdd2c35e5ee575a73c04d98903a17b170fef98d8c21a2013618a289499a66d4da17c0921bfbba3df7668677ef415d5c31464e58787616bccefff05a1916bc7868160fc3ec83f20144e0af886fe36b36e0eccc740290bacc95791e5bc5b1b4f0df33546aa2addcdbec95418f427fc31ca00c9d88c3482214394c1e6f39225708ea6e4192cf23b2c0d84f15353e050beb769c889670695c5264475c425bad6ae9dd6976a6056bf4bf138931fbb7712eec294758596c439fa0bd3dc7ceed3f25ae4b6409fb7bb071a58fc0ace764bc9818efa958bb6e179d7ae14f3bb632f3053c1f9c1716aecdbc6ec3ad94a4a53ae590b327a71fc2b5a90b7394abcca241101e3d70036294a83ff08f0a9ee5edd1438deb5f45ff14967908984c2f88dcb6233ea907b6314ca120b9015f09a7215e293c03f44884878e745942f69b59ca7080a7f88f1bdea06a0937e3a4642d99666bb1eccbe783d8940fb350966dd488c9d5c6bd3593d5bc49e6c4e7e5885729faad3a8e04fa6a4d31bfcfed7606f71cb99b98047172460a67e9c20571590eecd2784f354cbc4a064acb56114f51d5ce6ed3e4517868884da53f9f1aeb647cd1e70e880a7cc14b5bfd29c3e305fbeab8bc5dba80b6f3823a4ad8d7a92ff23a8e6a91d6d272c20c17c6b17851f40034173036b52b1ee615fa53daa5b7d00ce0aac48c8c372d90ce4ec451860b56933a0af012601362153e16f35b653b8b908c48051983459440366dfe8f5a2749fd860ca2315a5126967a23b473b62bcd9e8023ca9e825e59d07567b525552e95d6c2855babf560864cc119992eaade06e26a43839bc1f236fd475f75e98f6751d5bf8afc125ca2eb7c0af6966319a2f4e02817007095c07129334992212e7414a8fd82ae9fe0324d5e5a0483afb061da270eb4eaeea62680231f726d59d697a8b7095166f23fa3acf7abe35dada82de0320020727d428c72b139defcff4a73ee465bbcf1d8ff85d158ad3d0b47812195c04f9dd4ea58c04868d91bf7f78d7fd84c287d9add82639095bb69fc852761b8f0a966101d7942f77ba64c9eec9cc8f359cd817211849c5a2ee0133f6f42c88c3e9c951100d75e8a03e2fb420f31880d4f12555deeff16d3d15bf7a522dd1880979550e7f9a58c5c6991632f1abfaf1974ef8565d4b4b257bb7cc122fa4362923b0248642be87a3280ba0991eb638241dd864b832be8c9a9b08458b7fa504b03cc0c9ffe6543e0ae5524da3dba035a36a5731f3a2b309e83add080931fbbe1ba6f3bb984e104555ef6f51db6f79b0f592239c3c9d49e59a354e768e9d7b769df179aeb5306ece6a0dc304f4201c4d2a379766e7091c5f89f4cb2ccca809eb01d362d3967d6954d8f914710eb89a0db5ea483917be8398555d6b5dc30fe8622185ba0f37a4d8a835dc9baa2c0f8b613d385efefb8ca4ccaf53734ab598181da077e6d54c86f2066d8042ae549e64c4bac6a12683e923c0dca47619d720dfcb001a4bfb2bbdc3bd836895284dc66204e43ebc94f5de373ea501cdc3f8dfb78e607d55bb677e4c0453db786a191d3b44061ad970b033dde7bd9fd19fd64742037a3616bdc9f5e511c8dd2e4db3de4621383e
+Shared Secret B: bb660e00b7170e63ef5fd1f1558fa522b5c203db31f1c9d5ea792f0122ac1411
+Shared Secret A: bb660e00b7170e63ef5fd1f1558fa522b5c203db31f1c9d5ea792f0122ac1411
+b310db57069919ae93101274399fc861e15180c50bf7e6b3315f5426d54664bcface0b5016fb8b68faddf77abeb1481ccb96b96c48217716ee95827b22ee08f474663f8814d12d560fbc2f52728856104969e82ec0420d22031bc4dc36618b81ab89423060ad6a5614b8ecf559a7f9cad08c9951497fa834e08eb12a2506e25f0716683a1fb4470d6a607a243a99830d70aede6025ff7b45b0d4184a3b8ad17c4a10c8278dc26e56aa78108cf575d8f4e61c0f1a1314ba7bc301ae1df323e6c14a8da9de6dc54d24acfc5eda5d43c6315ff0b7a4303d416fb82a738b053228534f076d682c3a3cec84d16df29eefad8ad2dceca5aefc5ca7bf0c09658cb1ea91d3bc9d95164da482dcabaa6bbda4eee19f61be2da9a8831c610bd27984407a7c1e35b38d5ace61c5cedf6a6158dd514b314fa1bf51f99056a613a5bae1abdd1f4bc08e46b33d12705731b3f228550df8c1a982032ce234462e47f2fa5c254ead3106b2bcaf7b824860e36eff86a113cfe1ea4189c84b11ce2204ec9820f1686a0a06d6ab6584d4463f80a7e3b126bb59e71da53734ec14690a3414f7e83d78dd2652c90d79fddee9a00e21e5a79a4bc6b0055b9bd516503dd6559ab939947892e2f47a2ca861d7818acdb30b153b400d4698a41d552a7cb80467335f7f230ad7624bb7578aece725d33c29d6d148ef93b863ca8631050ccc40ed584d6e0d887a3f572cd1afbb91acb0088116071e855252f9806a8fdbd1c9f86ad00ccd5c2cf3b1c651dd9db8d70a148c05ea450d5dfabc55c54320a91c6f258e942eaa7d944936cda719dc25f255f8220a610cd5e25d71747b5f19dacabb27bd78858a4febd0e107021aa14bdcc7ad800e995f29e977a984e5d8500eb6d93c43c77788099a93a1aae874b2f2778047b6ca0547170b93953483abff639ec39e579a733bf2c437d737b4b14e2ec9536be0b0e964075b0445d57c6456a8e34cd6864579f664d5f5bd9af69c31b723a5dcd00b6896f420ee9a0357c734d7f9b3c9f4d0fd16c4ccf51e64f57d162db58401eb323a0d145271ab392903306a11e4488ec7da177f80f3345622955fafb12ce4185da1fc74394f38deba3417e7bd0f9eee40677914b2b837f414a9f2817c0007b32657cd81b7ecd755f1ca8180ab9d3768d40ccbb4364e2e7e9abbadf477b527463730de6294f3aab661aa0dd5fa2a12ef4958a903cb330cc34d86f31b7c4a74eb78ef0576fe6204c99904104fe724a09a4b9fdfcccd2f2d2b1622f5ec6588e2d1088f252ebf4ae193760ffaa8537ea3fe6f6a5598c2b32f1b3715ecfada7575aaebcb3d8392b270616100873b0ebe8c509da70a99760b3cec594cc9fb7f97ef7ef3d1623a0fac0ff541a11a450518cbe32e177672c8fe39cc88065964650d7da3ebb2792c088d14897ebd9a536b47b618dda79f4d587112b5ed018e7bc0de0fee8861d8ee70acaa8e18b3db032dfc36bfd040424c3bd551b37cc00295440bbbd5b55a24adab108bf1a0211269910c25b3fb255b2d45fcbdf8023ea2011adf32e7adfea7cb983bf2c242b2d4ef24b592b44302772cdd463996b043f246354b2f4dc70b93248b605776598a63aa3f2652a2600e3a29c4cbf85d97bcc9f0b2238cadff729660e0db64744cb228b46e90d58ccca4f9fe9d3517a624d62ce0e1745433059316e8342fd7db4b45b101d8f7e55aa46a7350a596095cfff29cf70239a4dccdc0c855b7f4786240ea207fe50fad58b297b09640ad401a457ad55e1e4eb9fcd6041daa132e5e96224c4a245d081512c859b3fe1540947894595ce31e5c60b7bb585312535dbddb73319a2676e6a03a802cd9eff5cd4b576c9a5d408b0fc5ec0af1b8dc399e319d14235231c637b32752f7c9b213dacf850f44e79af18094a0598d2ba1942fce0d3af94f5b9b5001e9d9b503243dd65740b7c008ab054874dea600eb69efa57e1d04bb6525bc8442d96b04cee4468c699ce0402d851e6075efb84777b1258de31f463654c6668341c0a13bc8605d74e76041c979ff9de066dc2a4e98c8fc84ae07ca4597ce6a87c92b52a041ba6022bfc009e21c60ac6bdfd97c0040fa53544eed3e5ce48a5e64ad1bb68dda63990c9cb0ff4470429add4475f9230b3e3e2774facb68fc38cdebef625afe64b28e3151eb1c84da00664319230aab240f097b942b5ccbfeb14b5eb67592cf39b32215
+Pseudorandom shared Secret A: bc308755adc1ebdbf6041725296eea7014473dd12717a13ff59c340607edec64
+dc219cd53fc0b3b75e5dfe68276d1c1014be3e9e27b36e885c7cd2215eb4ed122e94c61b53664c8b8a7283ecf9f9b93a8c08bcbb249ec22ab9813c18c06b7c64
+Public Key: 76740f953665cf7994efd72ed187b943538c67b8193f51290998cb43961cd7c749ffa937cc85541db5c6b332210748b5b4e84ec140437a2b6e17605790094fb2c457273c3383e38d23a78ff07c000cb7a5ed25c5640bcb4d57c074ea298399794f3b6a6f870ba87c4395a17a3aa604f3fb6d93d7c98a43a1a5713ba9ac03872a88267394d0ac0248149a0e900f78b300dd7764358c863bf05024a334c10b3734051106eaade7227c6dc60444e732c072208648cebb6b6c0827cba7fa153310c770162fb723b497666f79163c0b592a77d70ead83b14e900d73c88f116516a4fa2077314e836b5e807a2918a7a9a17b171c125ea2531b2ac66a7cf997e4518c96567934fc4841903f163a2e39a6c4cb110732267fc0488d225a866fc26874bcc322905f5c2308f3f209ed89726de0837b686a99656525e229a81b4827da840d44c8e4671842b81290ec432b44b03a06a6cf89ba3d378d473420ef05ac81fcbcc607306d76545c9535b7b34c09ab64134c686123257259251fd950a4069fa62c9282318451688b8b326251a5602f66c797f863aae2adcab0c136f1c394db514727571fe5a25120c0fd7063309ba06a40a6160700a486725754568fdc8b8be462b8ac23fa44a270d1ace66855dbd66c27395f13f62b79f30a9434c51f8ac93945118a9a1103c26ca574aeadf986c60752f0b17d1a78426be1bee97893f2211e204c11a852b906dc4d7bf4b0e17250dd2481b337c68a9333cbb8af59d5368d962708f69b6378af1ba1b8afd42bfd640533e7bdb425a5fae4a82e7413b79497a106ce7c6947fdcb0d3ebb9ffcf5396324603e265d52e5af04917b948200ba648d89779ae0e77ec682c454f7b3c9da163b53905a2401ab89c8fdb196bd7698c77591e7405ea5d1b588205542486e5324887d173d9e61643b4bc2f19c45ec78cad52ac35931467a253a41e861722065c5d23afc3725ebec44c3a524d0a7464dd9696573bfc0673550522e5a932651387f00c78fefa84699128ff84b15b3e678ab4215bd56a19bb4bbf274210eb064b4949fea2c1fa09555e9343db9c57bdec535c8ac079c6aad00382e909c575eab07ae24c3d92b6c31b87747e9bca279a4c77a00f0300617c42d5e3a165789aff22b688d569fdbebba2f235192c013e996607e5c62645b4202da21c7d553067752354c9c0fb5625db30e5ceb2f344828bddb6303e1493d3909ee3c65e1a8a4795b6703b9775734ae481aa947141692c6447aa762850906c162a4e55b30160830c78a17a4d5c9445ab9f2a41e00d50c751514925159f82a15c0875138a62617f35756584bc8f9b98108994c397469370f658a2378412506f90dee961e08607a56f93f21ccab28fa07d9f0a323a3297554830c0214d406519fa53a5baac451c8b96354249bb4b7af466b24f459502674ea83252300b234ca16a7d62eebba2ac2c860c639addd796799f452af6167d4b4525969406dc0bb65420d3e6a5877227f76f17eeb54cef2c69052b45d107190d7bc7bb901b36bfb3ba587abcc95c8db143bbb949b36e7025f6ab929d59e73e15e1587c8b36b9bbbf83ebf7255dcc48238620aadd29b5e9341211a2577d0c0e4786045e264021cafe1b6a132941b570a9b6e402230f680405b1afa781852070a549980efd16ba792a80d621e9bf069a89668ea28c02f6b5fefaa59852449636648d1d643773aa67dec64a72b4b13d5892aa35e6a9c4535152d95574b94582316550d3e4c9488db9ee0e14a1f05a9cac801639207351611d7e8726dc04b2c5c6e23945d0ec5bca56a01e062702a976c985061221c7deff925c82a1d80f05a5cec0049d3cdd0e38f5cd32839d78d4ee05906b83197306d0c986c9725809b251479f9298c718339996cc3a99656a20b6b7926f98cc2e0403a2998bb6c510b749a13a8384c7907083e5b44dd00c8f73aaf916ca844968a9ae16519873502ac557c5b9a7967799d715ea142636408a5750aa45f57a26b249074f1b8dbaaaa5dd30d54a9085d5c535753a5f0e4a6d33b0a72dc31cbfa9902168c68e90c11c13eb5899103207ecd3249138a24474302ee4c56194066dd9819b0527eefd3be3c176be10b93ae8b8ddfca5a42866e4a6a53e735a353651486da3f8fecaa2dd906c8380702061b06f7aedb21979f03295867571f6c99c5c6b987b02311f5120fc9fb130aa61b9b94cd11328742
+Secret Key: e5a6117460af9fab6281c339278c976e319afe125b2d12973618a842bc5a840a265d51b689aa3f401cae76d748c4787b00f7cb8735c1f706461ee720f60173d1c75ada0125946426e0362a65a097fb467de9a56c7e755cea16059bfa0a169c44f7fb34ea648ad295c3f36ca65fb903dea99fc6658099e626c0d41370db9f7ed94fa1c4ab68109779f8566889af2579b8f727aa857b9f68b2023a25b0398b8eb8117abf897d9ff6a0542c81a9b41d31dccbbda2a8fb8b2b17485d31600f4288a45936aa89124b8adaa7f78a51aa8c5f7528b0b8e3954e7b2dbff0819f989629e81d2bd167fe67a0b454b798b514914818b7bb7fda779b498b75deb3abd05420a162783f6613e9266f51e7a24ca32e96c9359ee69ae47b6c7302463676a29d394bdc46cea7433c6b59669f066f92dc17763786b059374eb81e2fc3ca42628ccb3a1af387713b0308f757b732f5859c7953620776195b27da1097c62b172685c50e25733b569d3048b295fca2b2e25fcd860a9263044a474d4e0b7da0f5a606110895e82a2f532fde883b9926a791083a55ab74e0e62d9f42882d63c9d7f93d6e7a8f5f40a665c75640036327da49e615244fd9164ea3a730d2a71798aa066c739556776f132888ac67daf51800063b8b0cc396839b60e46890244034117c78aa40968c5a797aac8724c171686765eab921985d150856c7f930a4432e22aa832d9bbdf8f8bd9e950ebea52cd6914991d5bbc492927d71c24e3c134409a836575a09594067708c135a4cba66ad26d50c2a4a843a3889708a0f0045a6d6eb1206277d50a8bdf1159193c6aea9b60ed9fc482d0a08001d65a3261681502519a86e2e756a3f322d2871600a12298fb92686039aa881223e66952ae3c806772d196611735b2d13da83cf688ee38b9728485621fa55acd590a585146964445a6c159208b7d941c02e7894f8313087477c3d95bc7ea12d36a8692a4610919860751596899a20d536b73047818f41684426088cd084bd35b703879bae028fcf62792a306b83f92363e3ce365b135ab807fa594b013836d8f5aa118978064148e3ca5458f9c6198064b063b94c48c851111721261853da6b6011926c6260d3b55026d3c8c87472b81143ba72bcc9126b36e3402c73aabf0a7ac6b0378f0544dd11201ec90a90f09d80685c8e02ce51021025b1456b507dbd82304a75270d7c16fe007df066324e76365969335ac5a627522056466385e217dca0b0818c47c8145a6fa301e157b351f65505c4a3bfa7688ab71a8522be899562224126fe18b9a983077a081455da187e7348b197269c6b0aa1725321e9755e27441c0a1dbcdb7f5070af975a57add7038016697f23888d932d6b44300421647c71cfe6a276570c42c0b54ecbb423fe44a074a40edaca85f250cbbd73bea7ecbb22fa28afcc2f46c00396222a4633687d012481bc44cb0b24d7b8279f15b5dadb1e1999964781b9f027899b21b34e9c195ce5c2676bbe99d6046b68a7d262a4a740734c16028210a062b47f8934052ee737b3f9470a7bb1de226faef97112f99163095ec8e480b39bb3f64936fbc14058639c543c1bc5b47bc372c5bcf05ab491442ba41410a210cf1ab46b375a049753d9735bfedb7abd32029e00b177207119eb23dd5025edf8cd7d1c64b4a4385e41a779acce187558262145fa28672f28ae2f6036d30663d4414653c2242347b1dd82b5c404739bc3077f38c6abd467bd98a9c1d28eff8a3d5b0a045e121fed1c5c8e5bb58ad729ae9c1dc59cc2d1a410625b75b188ac27f58256505dde944c634682af35abb3c6cbcafc6068303eae328598890b43d62c6b1b825065426b5817cd5bc65eca39f4fc2240b41627e889a2199b4ff682c261ba60b342c4dc9fe8190ef0127e054a72595080e1812dc2d9740d80168e8522cdf76b7938c2971a94a1d3339b709c15f77e05804c6f487a14c5444557094b044d8b394c2f115f8ec94ab5c4b233fcb6d2babca1c4b7292a4a0cd5c9d3213646c86471012899e138cc0b866e1a9d05bb5730166bf306124e98cc313b5137bb3e31b5569db26d84c49f48491691e47c61b88cc6738c84d14d808552252c8703f097e669cc7a7040049c2512898656a08e8bd93f920a5411348be662652d946f96ea1015b4b29c062e76740f953665cf7994efd72ed187b943538c67b8193f51290998cb43961cd7c749ffa937cc85541db5c6b332210748b5b4e84ec140437a2b6e17605790094fb2c457273c3383e38d23a78ff07c000cb7a5ed25c5640bcb4d57c074ea298399794f3b6a6f870ba87c4395a17a3aa604f3fb6d93d7c98a43a1a5713ba9ac03872a88267394d0ac0248149a0e900f78b300dd7764358c863bf05024a334c10b3734051106eaade7227c6dc60444e732c072208648cebb6b6c0827cba7fa153310c770162fb723b497666f79163c0b592a77d70ead83b14e900d73c88f116516a4fa2077314e836b5e807a2918a7a9a17b171c125ea2531b2ac66a7cf997e4518c96567934fc4841903f163a2e39a6c4cb110732267fc0488d225a866fc26874bcc322905f5c2308f3f209ed89726de0837b686a99656525e229a81b4827da840d44c8e4671842b81290ec432b44b03a06a6cf89ba3d378d473420ef05ac81fcbcc607306d76545c9535b7b34c09ab64134c686123257259251fd950a4069fa62c9282318451688b8b326251a5602f66c797f863aae2adcab0c136f1c394db514727571fe5a25120c0fd7063309ba06a40a6160700a486725754568fdc8b8be462b8ac23fa44a270d1ace66855dbd66c27395f13f62b79f30a9434c51f8ac93945118a9a1103c26ca574aeadf986c60752f0b17d1a78426be1bee97893f2211e204c11a852b906dc4d7bf4b0e17250dd2481b337c68a9333cbb8af59d5368d962708f69b6378af1ba1b8afd42bfd640533e7bdb425a5fae4a82e7413b79497a106ce7c6947fdcb0d3ebb9ffcf5396324603e265d52e5af04917b948200ba648d89779ae0e77ec682c454f7b3c9da163b53905a2401ab89c8fdb196bd7698c77591e7405ea5d1b588205542486e5324887d173d9e61643b4bc2f19c45ec78cad52ac35931467a253a41e861722065c5d23afc3725ebec44c3a524d0a7464dd9696573bfc0673550522e5a932651387f00c78fefa84699128ff84b15b3e678ab4215bd56a19bb4bbf274210eb064b4949fea2c1fa09555e9343db9c57bdec535c8ac079c6aad00382e909c575eab07ae24c3d92b6c31b87747e9bca279a4c77a00f0300617c42d5e3a165789aff22b688d569fdbebba2f235192c013e996607e5c62645b4202da21c7d553067752354c9c0fb5625db30e5ceb2f344828bddb6303e1493d3909ee3c65e1a8a4795b6703b9775734ae481aa947141692c6447aa762850906c162a4e55b30160830c78a17a4d5c9445ab9f2a41e00d50c751514925159f82a15c0875138a62617f35756584bc8f9b98108994c397469370f658a2378412506f90dee961e08607a56f93f21ccab28fa07d9f0a323a3297554830c0214d406519fa53a5baac451c8b96354249bb4b7af466b24f459502674ea83252300b234ca16a7d62eebba2ac2c860c639addd796799f452af6167d4b4525969406dc0bb65420d3e6a5877227f76f17eeb54cef2c69052b45d107190d7bc7bb901b36bfb3ba587abcc95c8db143bbb949b36e7025f6ab929d59e73e15e1587c8b36b9bbbf83ebf7255dcc48238620aadd29b5e9341211a2577d0c0e4786045e264021cafe1b6a132941b570a9b6e402230f680405b1afa781852070a549980efd16ba792a80d621e9bf069a89668ea28c02f6b5fefaa59852449636648d1d643773aa67dec64a72b4b13d5892aa35e6a9c4535152d95574b94582316550d3e4c9488db9ee0e14a1f05a9cac801639207351611d7e8726dc04b2c5c6e23945d0ec5bca56a01e062702a976c985061221c7deff925c82a1d80f05a5cec0049d3cdd0e38f5cd32839d78d4ee05906b83197306d0c986c9725809b251479f9298c718339996cc3a99656a20b6b7926f98cc2e0403a2998bb6c510b749a13a8384c7907083e5b44dd00c8f73aaf916ca844968a9ae16519873502ac557c5b9a7967799d715ea142636408a5750aa45f57a26b249074f1b8dbaaaa5dd30d54a9085d5c535753a5f0e4a6d33b0a72dc31cbfa9902168c68e90c11c13eb5899103207ecd3249138a24474302ee4c56194066dd9819b0527eefd3be3c176be10b93ae8b8ddfca5a42866e4a6a53e735a353651486da3f8fecaa2dd906c8380702061b06f7aedb21979f03295867571f6c99c5c6b987b02311f5120fc9fb130aa61b9b94cd11328742495fcdf6f0c5a5a5d0f588c965134aa0a56a662d3456d8df28ad8826265f414e2e94c61b53664c8b8a7283ecf9f9b93a8c08bcbb249ec22ab9813c18c06b7c64
+f99fbae5af504bca7d31fd28500597d6db567003010297edc80509d95edc8516
+Ciphertext: 836a26f6d6d2883acba236232827279c0f6b7d977d64f048772319d4534023549312c4278dbadb14b4a6c71e08dd9b9d656ee58b2124bc4a6121fc22d2405a68b53c1b78441e960be587d421d547a309cedffe5a85669b9b4307ec9d38beb32b1b9c7e80ae13872256d4693e8302ba198914e99385a07abc2d3863047dcee7aab3adfe42500157014b00289343f06147192a68da51f7506ba9958d49f3209621490ac739b7e19ac06dcc2e80ce98e007b34e85a0b009a900c16d712f346b469137efc9c96681cf9c9c227c8f9e94d2508c5ffc58f38772bf2d1be0016df9b58ff591752da9ebe8429a317766c023dbdd21f747832a18c24fa79f19fad4ddb1e3538e8dcdf59efbeb371b947b7c9b885925b25dd16fceac74a390d1baf97bd28d54a5086035d5dbae5c933e0803a6ea198c57188a6b03abf4c3248e7b0bf75b7ed0f58e22526bff4ad009876a646e52ea4602051492d0a3b3ec7c6e5998f34ccc3e3d7a17fe2fe59e14f05aa78791a116e8462a4958a9acbfae5dfd4920abef6d64ce91855a24d84097daf3ddb9c9dbf48e53cf8477f34ce491cabb1d9229731f298c1fde85d6ebbd818c17ae20b50f061f1379f6ab9c841651bfc90d7380415ff325f782a349c9414a9f92f85f7862a1951e182bdab993e12a683cde1948fdf8428a454afb1fde1ba8a7dfede08464a1ac69001e843fab705bef18e0eed2e3e8794b33ba34b9787c0d01bc48712e6dc7b8331f54bd06cd9b359ee5393588d2821d5e0b6aab5b83c31c92ccca9070255b6688fdb4071f5036c82417c5603bd982ef91642e5756c5a942f3e1f94aa1b640a0e422262132e4b135e32cbdad6c66ccbe1880dfa87174c75cc9344d96a3ec5d1708d6835048446952c22ef2ba5fa64a6c948f7eb6376723bee68e4142d5cdc72a1d34d508be49d2d6edff085fb0159d873d769e2335bfc73b85c59af186c74368618c153b839cf834892da5417a2e1488ba7824d7fa5bbf8df6b7511fee0ac357c5f9428fb132e637a27a185c00fdd88346914b030fecc76af94cf484e51d95d0aeac99a70bae9087444101804016248cd86e980be476998d21e7c40aeb22026b03e1d8d3b2b18abbe2c472e7b54ede87197946134fe126b7a865f8e7e96d6dedb4127d99f3b081d32b90231c2982c8ed296581317898b6a441e0631c0bbf5b441d978bf7a1c13881dccea4af8c9558b50034af085ae25e348b9a3eb07ecff7681390145d5990ac0a695bff6fdff905c07a1954931535e39ea8a9bdcec6f1cef5699177269faf2445a8cb994bf0c08f0a67b1e45ad7e40004e4d933a4233af2fd782fe8f5be0687b31abbef5d92823b4b80418e91577ca907233fff2b3fb270122018e26794b44f0635200233171a141d269175b9ddd48bf6013ae87dc2cb09342131a973d135531a992b8776e6aa67ede40fb5e3fe78baba73bf316b4d3ca4784fcf5535c59624d33ae7e8992d994fd4905837253846f5bdd6a741cd258a835bc2ca139bc177100dea7ac8816e6c967107bb99bd885c1dace2d33ca268abc5dc65f4ef6d960bc67376ceea9ad061c68add5f0a0413faee0347b71be2e9eea5e5e517443a8d7a8a94c81dc2488bd38a1995e69c7f7a14085f6fee5c0c82db253f6215ac1703f2bb6ea69e14895c40eecf4360dd31b278be76e377024ed76fd3af6fa8ffba0ad9b9a02b57e43b86e7d2a15d44b18b4b0f05e4837034090df1efce7ae47dac7e17eab063d391cc546d0687e7684794ea85438a76d4be75eada1e10cf34a298ab11703109e0423faaac74574e4950ea4277cb5d89f08823b85ca8512a9e16494204b6b06091721e93dee1e5b47fd11ba309c6e555ac159073b398dce0a727da5598b2396414a3b83cc102de3219c5668c89df5afc99561d8dfbf8df632626b6d1819f492985bbb53bb53ceedd5c487c8c9770d80adabce7057238ec1af8d4042ae720ae1a02c614346feeecba69669e47ba48671e7802286291a89c5c688cd991f0088d41fc39b94600f95d1ff1fdb39ce77f6b445d889588b0c1207e9c37e284dc45718de494641abaa58e31c567a90c84388ce7f2411791d5cc80a9f3d50f83b1b1c5fefabba0bf72983faacd7c1c2b7a029f47ec61aeb7a590222220ee55e8f6700501084d59793f314a20181bec751453c7ef4cdd78db084dd62b10bc63cae2ad4ac042d1dddddcc2
+Shared Secret B: d770f9af3c5339450c9e9ac5c6432966cf6a5d776c496e69e38db435ca8bd864
+Shared Secret A: d770f9af3c5339450c9e9ac5c6432966cf6a5d776c496e69e38db435ca8bd864
+6c0faae087e4ecb8a56f4a31d201d5563da77b6d2c3b565d544bf5fa9d78dbb7143d3fe1ab34aac497b3df5bb769801f2c9223afcdac53dfbb343c92b90f6da91f835751a7eb679d9fd304a3ccc6db2ff9919a28286a4b46f0a55c6d33e87cf5835d3c5e1c1c70a71f5e8d9a873f4fae3d731df7a66dc4e7e81dd6bc757480b2ad25e75eb2615d1e59095b43abbc68c8443910abb6a31b25f0cd658a811725a9a5093cead7f3d6081756c931dc88e7ba63afe23aef43055b542d4b098be8fef8d773bdc2860b6513ac8d22a72805d9375528816f96ff4b45c7bc61fbea2f7a41cb1df7090653f5cf29444a4b730e7c87c39fb5c07bbe8380b686b9f6cef25eb28189285651a277628fec931bbfe10623b937d8efb39573511671fa78a05c38b6b3e48debce36ca5754a8dd789f8fa172d7dca6c790cab5fd40fe351a05a3109f10dbbf925e5243017cb46a17bee6da2ff667bd645b4d293b6d2173eb4fbd99641c1a8df60941879cfe1885f04d32f0ff4f2d0408bd4c955a997002115467e20a592b31346da8d8b52186f886a3e1f937a843c6c8e802eb8143fcfc91f252e7cc223edddc980626881ae3f735d44bbe5407f9e70fa9d06fc9a9c360bb5baf821c6b015fb8a868b8b91688de2aac589fd0ad15cf6b6f5890155faf3ed7fe8fc65b3d788ddaeeb752fd104e9dd942005433e1d0e81f219894e8243c3ed60527416591e3171447a1e26f5d22e52a09f4a06996c025c0e3d685f7c007d5730bee3c514bde074cd68322ed39b973f871d074f6af5d89690ec8f8912fd19bec49aacf7872aa2290c4e8279e3ffce0ee8df8a39d1d6b25484f6762374cfbbabe078689416728b75fb58df0cbb497b43bcd38f54ddfff6b86ccb6f6cad1b9c06c9f31b3642b617564c54b53df029052ee2e888c5593e1615f397ff749a471d299bd673ec234ccd12b35421fc51c5cbb337dfb4a4f01ebf708fda9fe0209ac3357bd33acb97614399748ed57d2ecaa6763557f16758f3a09b9579e9720823a537b99662bb686cc48b6b14a4f4e55b13025cf479b7e0396acc7bb50522929d96953b99dd2043bde6e0a2f0c146009bddccf97f710a4c85207370e390a37fa485ce1baa7b35eccafe75ad756cd4d2d84a9caeedafb1d36250fd4f5fda600990f4cade2d79b04e58d6b0f1d4ca450b4b9d567a1677489575687a5cb9c91fe2ba2e194a50686450edca6aadcb2e33d71c5312b9db3386936f04866016743ab140b738176ac4b9c82e688bc707dedb531189fe5910924512c265f24cedc53878261796c99ca97062b196261db0c7ad74b484da0f69b3c2025527d65aab5cc65df6d83610b94a41e600e507733b6b4d94c695fa86b69cc4d62f4f536c23881b259907944d4b7fe899d3306a4558c54962623cff21883ce142d1e359a4b9a72283a3853733403eda2cbaacbc0835dc465d82e132b66df6ce0dffb5cdfa6942e6a53787d01971f5a8022e6ac8873309c6d027176a865d9bed254a50cfdde38cdab18ccb686ccca366a612a59b280abf5615594eedd0e73b9ec0a96e4ddb8789df226891e19c5a5c61c717ecdcd94fa8cc241e68bf7029528c09864902a78b873b34e170fb30d8e7c91d5022793e015af491997c06e9184d8d9c39a2f689df2de64d6332fe28f4fb0e05b9473d2110f91b0bea8f922bdcc7fb40d2d84acee5f8f1c209f5c8ed3c1c10c315dfa1ce53df0be8afad4a32f8d83cddcb464f924746bd08cecaaaa31984454f23d9797f5312e798eead16b3adce92eae50cd8dce9846e9b44e63e60e0186a8ae387e3ee021ab0cf6c190a7a177d78ee86e95ba4d0efd2980524ea3735f0c4c97036193b263aa02300e7cec7c6d2842b1beb86dd0029b43b7b57c52ab5fa77d91b0f66b8f9ff15d0110a4affbe6d2c54b061a95a63501e6fe2a5651347239784bbd67b1dabcead31a969b0216a7d65184bdfbc4ffdb3883678c537b4e536b933f4758f1584cd1ea2af103a95e64f9de5cc5d2b30f66a0e6aeaf0baf530ebf995df96d69056ee2969b7ca1e50afaf346d46f4a8435bc7571f74b81e026eb71f92396dfbcb7d49edf4dfb238328574d3e7ea21d42340e2e3ce81885af3b2e7d6c0c9084fa8c8d4b0c840987712d694dc0d719675d2ecb69ca55b8fe313e149594a07e1b1db44c1b951718440b641d62dbb602a1bde5b9ac4b0951f218b7b6632a
+Pseudorandom shared Secret A: 9110914f53c29dfd59ebb1bdd76ae00d1889ae60a6933ea9d82fbd45d1a906d5
+cc8856a2b6191dcb026b3beae52a2dcd701bc03f091e0ba27d1bb4de45d0c13c5432b74079268b62c0be41e0d3dd4f7ede4c403d388ff7629b0c8440afad0c0f
+Public Key: c607b833d58834e29cd5b4919255a4ddd8855837254ce870d8009601130b52a7b944ac2e41c802895097f8a9923e699cefdb6f7175c4a78252cae9036c19a9dbc4866dd3147940bc142b5921f3cd67d92b38e977cfa26e86d79682aca52d7455f1456c3f0065a0482b732b7a44eb9cb6059f60d32641b8bcf314517662c2958089ab4572f1a1bdc0691a3c52bd015364bbf0cf9ba1a6391a0c7f88177ad69bc8114e33d63f0648187434b07fb43270a7706de0cf8fdb087bfa22dc7bc0b2d2116b29c6d81805e6fac595f392b0949e0e3a50134c86320084d0f78ea25128cbc7b0bbd973f5532a5305903b4420d7526a248b30b4969c24305e6ae5b7cd88c6d243bbfe593f70a5a1e40875a1448810ac8eb4e65bd6cc671dc33b87052f76fb70ccbb16c6733d772490946c8608060dec14641cd5cea73952e1fbc6d7346adc14ace7e6b8b614aad98aa8243555cb5260dcd85572d8caa350848e3820f0f25935fa34d108b9bab45136640407cb1bc9a369c3a80dcea9adad4926d62590358aa994b95d32c84ec161794f508a891c08bfc78d86941537e0836dcb42dd6c1131d884aac0c471389ddb996d0b43a0e76c3f1089062c3825e3a07c82251a624832a49413969ab08478a02f205c75186d892a020264a4c483a33ffa20323541439770c3d95940db720ee1cee1a6588b05c41db93a0b0130a28847f9372742564b4b4435ee05cfd6f6a63f985307281a15576cabd24b9505684e2c545398524e99a7d9917cc02b01f4d713daf8946f2363ff0684e0e930d5b64136ec514b95c263da909dbaa8440cb03aa66f9ffc019cfbaaeae5811443afea1b14b8488107d78b627a27bc720a36d5b114e767c223b3b4379970c6097867bbfe00aa32e5cc48033f53115a2a175626357b72f050d3f46629e37af8a0bbd85774dc440f1cb962ba482771ac54e8d196a3c32d592c74c24aae45169725c2546be393a90b8c02287455680666636cdeb40345b428e98916259625302caf1b567274612d9c356316133adf8a4ab8c17425700baae9b93e8ca76641342a7573e3339de5fa8b145c42b4bb25ffb00943ab4835c2a395d57b4909588f08a7de967b0572504d3991b138a4f4d5579a9a11b7e99b803bc6b23952f9d0b93dea8df052ce0c8b9c88b76dd174bb0540caa25c30303a09dc7027e7977fb0dacf7f699eb12c7a54fb4ed4b5244d2c719dc34a8eda1704c43047e57ef314cfc216849d894a96060275182ee24c5280d788f0c262ac832a97378ce7ab41e10bce2b2a78579b289d9791a9c88e1f9c238126a05539a8ab088f102025cde6891ac72d86b9bffaaa81c2956d91aa0cfa36848a65b77219906966568f81afb656787f3a73228258bf2a59ae76849534c44b775b324b913d5210f0bb0cb8b828de0a44553519f4ca6bf20b30996913f798203223be18e4a75c92c32d261ede096d0a226cf9f05b57183a72984af81a8efb7c506649c3117b4553039332d816de5c860d4ac29f21054b55239f01accf263e5d683c32d295798819496c8d12906cd6f99a64c186eaa65d47547d2aebb63d4a658407ab2b9c398b3b4268071d9c173aadca19cf248c160b445bd729c0825b0517bdd8f6628c5842be460b3516302c8c2438a4a249413d4d611347436be1019f029a550f052e8a88c13f162133d5b658b0290f1000860a8ec529afb1c300b84ba71a985bf403108603c39aa1b3dd7b50e13712786ba7353960401894b8a4583bc77c9d076447ea1a987163b2c2aa44a1a7865ca6bc690afcf8a0669bc82d922f7c133d3962032a489a935a69a2db3d645c79f17a318b2129a16cb466e116e9326ea7eca43ac8048cc53a08fa3a9c18a61734bb27937de75048d2d208453068bb660cd257a9fcb52757252579932f0ef3ad59459aef44416fc8356a3a5be0d50a6ea480ed23a6e1a9629b17a98f4532a3ec494afb01eb11b1865993f6e8a6ced1c812b5a1b79c8f33364b7a09b6fc7c73984941ab94965fec939bc294eb53b3b72c3f08a2bcc07c815692691b9730ed6999ca373d3c998100fa11f32260720a97b451b82006b754c1c288935c151105819b20edd8452d449395f6342dcc37c9549df3446f81089293b2a0f752c86d7bb976308dbd74887a3b3770b8b6f53b1b3e25b8c19a8a2dead6fc89d81d879b5528b550961361d01094249404660e1fb89966a4
+Secret Key: ebaa442e999119ab0510805d5730c8eeea5ba2f7084de563025a5dc9a422be9165c5f79d45d6841da95ef924a9eb6387b5a93e24774516e10637c7903654ac538b0dac93791827a0caa7a185fbbf46b550e51cc9277c5949179efe8b5014e76eec4b8966f8c8cc2704cac2b9ad4c0696fba55b251c97b4547ac26632a9029cdc4a3e53c6a6a117900895a0199c6327c47bf11893162c464ca4fe2c1f6995a7766826dd17862ae93a31b67ffac56f90041144b515ac464dfa1318ea6cb008779b87c65b32ec75e93c55848386208a6c5cb37f1abb66171480ff444976a4ad9757535fa643b3cc1d7f0b25d501323331734caac617f9c2093c55a8a5559e4641c3d892c66c81e356502056c3541c54d108805c5262de0a2b9bb03000064963288a454934d5e4bf970c4803a06d990424fa076665c23c4d79183e0803e8e056d6cca96d9a035d85312a38c80c709937a32b63fb7bd3f8b9065a58d1fb27fa31a6214606eddc5b8b90c0153181a1eab2b61b5ce40c2101a01bb75b9dfd76a84037c57ac469a0a49f7d888eca58b09df9b3b3ea05f78ca279d598816a23f4ebb9a12468ac138bc12729a852511e3377afc1239d0cc7a4a245e3013798e09da5c33937cbcd155534e5988aa3f02dc7205950767f15c448db09176cb9c4d6d63d00401fcc00b78c0c1713ba4a36a12da30316a0349321e790d26a8ff4f8323340097c00af35283d5ed5b8d617b428ba03f3326536e66097bc708b53ba0033960c524ccfb49db0a22e235188da0a2512322cf7a704368bcc88ab389760bc53e23c37048ed4108ca2e10b13f6b3bf100435779a4ae3ae1605c5dc0863ede61d20401ec5176f7fa387162b49a7b792399077c49361c5924c9d698282b936a71a0b8b591f976c13e8322ed5e3b9d53a93ed6a905d4b0ef20983fa1a81ddf1944b8a449ec878368648529204c535059c75c2cb34b9ee5c44e1c2c1bd598fcb38cd1bf44723036003906e3935997b5b407261b6b9a872f76b7f50d56308c631bb2b34f7c82116058a77c6a0cd2096773b0d4a20c2cbf095c8a83a6562b644b66b297151b40b2193f105b5e2269b2a3b50fca3bad1540f1652f09bb1fc89178735035569c54d8208c6ac9f3f5070aa67a60f22719cbb6447b67a0334a637d7514c3b94602b30ac877a5e557fa3c20895e70b42d556fd2746afcc9590a72d1c0880d61b2c4eb3aea43c88c293a874849ecc65111bb03173c7ab3716c06198574271c4cd18b31cb39cdde82b73fa826b30355a17a245f96a8a7a8105a8a6791450f191703f6ac62f2c974f57a09787c7d150c1a8aa56a8697516a89b39e949495a19d5f6359fca4b9e71674ff8938d3cc6ca09b311186e0d9c1311902b0a91cc8bc6852969b6a0b7be9834b50d200f541798a3a696aec7821175032978a76d4012523b97bf047c84765e9f70cb79b245faa402939b814d103bff1cb991952a1675400f7c8b63909472b8ce1feb0371a7cbaed0a1571a009194c2a267b947e30037e4067e98a21d03a81dda58b54178a35606fa0a95374021c50b6869d91e5f6c61880468933c86b9f296121c0322a11329d8ba4d343a9fe95f8c6480f55379e6d4953259afc36a7e97573c680b1a6b747f4de38c6c9bce97a432fef6503514523d520ff3849e36270381a50abe3a3162d6682946c2a97012c11634da2807d53757494cc0147164c0182cb7271ecd1459b6f148e59aa9171104eaeaa5b3262d5ca23e96d2693ef01d25f67884bba7ba815a262726e543579f02068f672310c6972d56bbef891a9b2708e19a23d9a689fe3c03ecac70e099aad414c9238131a1086d9c43c660054dce186d405a10325ca8e5412b17a1542cf8cc35888ccf9a47fee93c9e54aa07b0ccc6036fd350219c55321fdc0983c66aaef0784b5b0b7125b1c8294a58d71ca19779a6da7aa241991c1701224762a6e57ef74a6527c7c45b403d6c78b58e68b9f0e517d7d50eb3a81a18f04b95d5693ed7358cb0351a78cb1ff66bee6a3d37a5156cc4ba56e1ab7d6aabdd3a06a9daa168fbc687787090eb8ff8c59853f7129b938e34f8447733cf1c7840ef690339c7486bb408e9643f537971029a24db7204c2207ddea385ed7c02da9c115dd428d69370c7069486921bfc086d12869f5fb8aec607b833d58834e29cd5b4919255a4ddd8855837254ce870d8009601130b52a7b944ac2e41c802895097f8a9923e699cefdb6f7175c4a78252cae9036c19a9dbc4866dd3147940bc142b5921f3cd67d92b38e977cfa26e86d79682aca52d7455f1456c3f0065a0482b732b7a44eb9cb6059f60d32641b8bcf314517662c2958089ab4572f1a1bdc0691a3c52bd015364bbf0cf9ba1a6391a0c7f88177ad69bc8114e33d63f0648187434b07fb43270a7706de0cf8fdb087bfa22dc7bc0b2d2116b29c6d81805e6fac595f392b0949e0e3a50134c86320084d0f78ea25128cbc7b0bbd973f5532a5305903b4420d7526a248b30b4969c24305e6ae5b7cd88c6d243bbfe593f70a5a1e40875a1448810ac8eb4e65bd6cc671dc33b87052f76fb70ccbb16c6733d772490946c8608060dec14641cd5cea73952e1fbc6d7346adc14ace7e6b8b614aad98aa8243555cb5260dcd85572d8caa350848e3820f0f25935fa34d108b9bab45136640407cb1bc9a369c3a80dcea9adad4926d62590358aa994b95d32c84ec161794f508a891c08bfc78d86941537e0836dcb42dd6c1131d884aac0c471389ddb996d0b43a0e76c3f1089062c3825e3a07c82251a624832a49413969ab08478a02f205c75186d892a020264a4c483a33ffa20323541439770c3d95940db720ee1cee1a6588b05c41db93a0b0130a28847f9372742564b4b4435ee05cfd6f6a63f985307281a15576cabd24b9505684e2c545398524e99a7d9917cc02b01f4d713daf8946f2363ff0684e0e930d5b64136ec514b95c263da909dbaa8440cb03aa66f9ffc019cfbaaeae5811443afea1b14b8488107d78b627a27bc720a36d5b114e767c223b3b4379970c6097867bbfe00aa32e5cc48033f53115a2a175626357b72f050d3f46629e37af8a0bbd85774dc440f1cb962ba482771ac54e8d196a3c32d592c74c24aae45169725c2546be393a90b8c02287455680666636cdeb40345b428e98916259625302caf1b567274612d9c356316133adf8a4ab8c17425700baae9b93e8ca76641342a7573e3339de5fa8b145c42b4bb25ffb00943ab4835c2a395d57b4909588f08a7de967b0572504d3991b138a4f4d5579a9a11b7e99b803bc6b23952f9d0b93dea8df052ce0c8b9c88b76dd174bb0540caa25c30303a09dc7027e7977fb0dacf7f699eb12c7a54fb4ed4b5244d2c719dc34a8eda1704c43047e57ef314cfc216849d894a96060275182ee24c5280d788f0c262ac832a97378ce7ab41e10bce2b2a78579b289d9791a9c88e1f9c238126a05539a8ab088f102025cde6891ac72d86b9bffaaa81c2956d91aa0cfa36848a65b77219906966568f81afb656787f3a73228258bf2a59ae76849534c44b775b324b913d5210f0bb0cb8b828de0a44553519f4ca6bf20b30996913f798203223be18e4a75c92c32d261ede096d0a226cf9f05b57183a72984af81a8efb7c506649c3117b4553039332d816de5c860d4ac29f21054b55239f01accf263e5d683c32d295798819496c8d12906cd6f99a64c186eaa65d47547d2aebb63d4a658407ab2b9c398b3b4268071d9c173aadca19cf248c160b445bd729c0825b0517bdd8f6628c5842be460b3516302c8c2438a4a249413d4d611347436be1019f029a550f052e8a88c13f162133d5b658b0290f1000860a8ec529afb1c300b84ba71a985bf403108603c39aa1b3dd7b50e13712786ba7353960401894b8a4583bc77c9d076447ea1a987163b2c2aa44a1a7865ca6bc690afcf8a0669bc82d922f7c133d3962032a489a935a69a2db3d645c79f17a318b2129a16cb466e116e9326ea7eca43ac8048cc53a08fa3a9c18a61734bb27937de75048d2d208453068bb660cd257a9fcb52757252579932f0ef3ad59459aef44416fc8356a3a5be0d50a6ea480ed23a6e1a9629b17a98f4532a3ec494afb01eb11b1865993f6e8a6ced1c812b5a1b79c8f33364b7a09b6fc7c73984941ab94965fec939bc294eb53b3b72c3f08a2bcc07c815692691b9730ed6999ca373d3c998100fa11f32260720a97b451b82006b754c1c288935c151105819b20edd8452d449395f6342dcc37c9549df3446f81089293b2a0f752c86d7bb976308dbd74887a3b3770b8b6f53b1b3e25b8c19a8a2dead6fc89d81d879b5528b550961361d01094249404660e1fb89966a4b759f026ea283d7c9bf7bfa7371183ff11fb82762e241a22a9063f26d1050a105432b74079268b62c0be41e0d3dd4f7ede4c403d388ff7629b0c8440afad0c0f
+b31ebd6800e8fe106f9539b1fa5c977c1811ce282be54c4b09f2fba4c08d24d0
+Ciphertext: d9a26d9b242e183cfadc8b52f2baeb44b26568da4d70dc009c0c6593f86a06ed1768faccc0468a39c57fed61c674cef50357b2e41e92086b774b171b62eec9cd5d702751173c0b95772a50aa270d98d34f482d2da6cb45b4d9b3403a95aabf19539b133d6b9210bab8d760ce629ac1e89f4828cf9ac52d2e2f6b4c74b9aa321796f48b1764f0dde3c8b66cdc72818b87ffd306fd373a94b8dc9d7260a767e2853bd286326470b29f38a091e3f103f10d4b8bb3ec389f63b6ce0f77cf719a58eaeaca9c3328f1ece00cc856ed03d48a88276af2e4ef5bba283b5791f73884a32c66c274e762125ce28ec7962b2a3a897886ddb4816d20175bd8463fa4c55bf27cee751b81a823cc91e59aaea8b8b10dbd09cb48e4e56d2c4e13e6cb01b3b1b90392306e543cdc944990cb98bacf1ab49286d64d8d4dfe377692f27780f2538949d0ca0197d3aaf066e418ec9e899237c801bcc38a1fb90897f61f956dbbfec30f7dabb25670937dde2b30b1ef0eccd3dab48bdf5b79b6d71fb3c8b03c739a2be52bdc01ea2e01d155913b29df1a90603992eff3f698db509106e79f15b1417657e3f60cce7df11314bb50aec38cfea2b8b97f8c8e4bb43107123a7ae4a36035e01c4e8bd259f58edbcc61dfb7287625220d0350f4e9e0886c0858f0ffa4acbe939cda4d78aba646602d7797dc6db878887500eb01786f23ec4063bd31d7a305079b3e0af9a8dbfba5fed4e49875b3e51c0115f9e24951c5e80f10573119e8af72ceccfe25411f6b0712c51b839c6ca26fab14f6f47a538ae1835960c5697de58235900eb9f47075d61db51199aae2f7a4940933ed4b2fa4f7d174322524e3d665a11c9168a69c584f624047647fb1e8cdfaf8daa54cb61e92654174746c1e72f972a6662ded769ffe8b1688c39d80dc2d2b728166bab831126818e04d821b4d7400582e3755c06fffbd5ebcc2f5fb7519a9ad4dac4015156a77385253bf1a90de94b55b23f9227f4da9c69aa595d4892a4cfbc0d7f3753ae6a7b992a9c04b3ad4e9a93c24f87e33d509f34441e4ede9c3172145269d5e5abb25691a6afa71cc5a653c96e92a4861ffa511816ae6842e7931291ad9a8fc88d139bac4df0d4da4cb2c0aef414e988e871c57374f75eee48a24eeb8505ec68ecfa7e7c41e3c449ff3955118c76a1c9b8ae29f49f5e7588e63d62c3085042dec72d782e318c5edd2b86adf89242874d02bc1095463e71a2ffab5e1cfb86d3d68b5a6a43b96d3505f5086c89d5a86daecf8b194eb346ad7f0c2ebbe93c5ecd4d24e22f40c978164435b221ded29d6f527e3b660ed66a40dfb99522d06178d12d416c2c4a12fad9b04e7ebf5594fc8ed339637915d2be65603e5330a10e7b42e4cdf87b3c25ad33c006e25562581c2510a3087a4381848b61cad0b6bf3f22be1acc9ebcf23f84e4b8818b6b92f6523aad7a45e10c306acc97fbe5ce2380a72f50ce3e4f59c8ddf421040dd62d1943bc4e21b09a84fa43d937240a061fe96d4718a7bbabf8d62703fe673da417752b732316ba965a260972b443f10c1154ca4d2d5b4607d90e3da8f5ca87fc7c1f06908c67aa3dbab2e7fd4519bb0fe947a8a7ce620ab052b6c45583e79d0098655119b4de1ee6f567e74d8510930e3ad79f35d0fc777f683dbba0386b37818126f33164650dc777e6265006b3b27b9eaf932b585b5b14c1407995fc55fca1f7d45d66e16a65c96700fc5a2d8cd95a89965e6ebea08cbc5fac89255a384447d31e94f4bbb8d2164311ff17418204a8f23a7b0f312f21c89883535928845c723ba2ff08cd460a2ddd1d9d646895323e761a02ee0becf6428290baa5fcd92fc6fa8c2a45ab873991f6bf75f1652fc493fe0564424841f5e29ef1bd060cfa85b5acf919ffdca10db7b8ec975d8a80ca507cb85f37b6b35d31c289ec35a4b9a565a9ec842e9dcc3e287f5f53d49d3a67ea3eba450a60cd6ad48d43231a2ad22ca53c0e4989b6f78b40198a7410cb2df3fcaca68d9e8d9ede4ac33dbbeac61e16c96fa3f0e7a9e32fad83c2496ad19be90cbd84b511bc03702b17fcba1e3dab996074bdede044cac002ff960f7a181acfa847f41eaf8bcf6430988ebb16c896a4280320f69ffad8fcc91794289db066afb807f27a383d11182b9561a25b202ef85a09cc20af054d21ef43d5bd514197d3396b1ccf9a0a0169e29470fe104cea6
+Shared Secret B: aa3ebae68d145c781917da14158f8c5d01e1a77507f181d1f82ed9066948f6c7
+Shared Secret A: aa3ebae68d145c781917da14158f8c5d01e1a77507f181d1f82ed9066948f6c7
+e19632d8148522dac9e751127bae1882c6cfa1afdeb49c214a31649e700435140310b0aa478d7988c878716544ce31208f96d7b0310d3291b5e21a3b94f9f550d9cc8bdafc5bafd5546d61dfb2a1e277b8cbdb3c4b354fbab431e59810a28a807814e4a466196538e49ca245f81b248dcfe0c308eb18e2d433ab36406817022b9d3b153a19ce306a1bf21a76e0e0aa89b3e86e87db142535a67f69b724e6475e13114ab308103b738cf7c783f8ee5d550d68568786055719b942b07de735e4fe17becee65c0768e23ccb6f026c2879e9b6f664036c1ffdf22e78aa0d908b2d8c4af81d0243316810b06d8347518cb104ab988048ef75b2f342008f6fc32e924b7f59066b67f2a3d9a0780b7b1dab8269d7cf7a168b0f9880b427d3648e134b6d35dfaf671994535e944441331146d99735d6795601cf4215e956a9e07406addf43021edb1a06d20c8bf50e3f7dc6ea19c027b56af1dcd4b183d6c20ca6b4fc225008233486271b698e06545c395c8e6c153efcde2309c337307c5501204ea818b3120b51b7ced64bd1218a77105a613bde716f979670bf5b9be5d81e33ff48645c06de2d7827d8358525c13967c29001075f569aa9447102869b99164bc57baf6e94f6a3ebae123afe003d188c580613dc04d918bdf7008d2f246abfc906ff871cf9cb45f703293330a4151aafc7258b6f9c8f8ea117da470293a23a4ce1625c12045c85dac0c5ef84ba724409bae342f1dc69d4fec0fce2307b2905f6a90369c0b7d47d1cf14246f6e4e18f0fa5b4d0d420387c7545df49f828c9d7118fb3123e64a849992018f942d71af061c9a1f57a7d09dc249f5dfca04eed0ec75ef2c922fb0371dd8c51de32be703a4c9a9f9c84c9defa261147b70415db3b861bd72d9393d6e057dd8a5dd6e7f07cd65980949df8f9b4d4ffcb200141f72e49ba744803ddec58630f26d6bba0fbd6a88afa6bc0b5fdbabd2994fda7dd8496284123decc902acd585381545351938b50a4ff44c2b2db999eed02803e906b0b37bad681c5482a60160c4bf74b0d599969f43e3b76c01729e78e047886a7505c3b55bb11cebcbcd4893a8bdf45baab67e94e00d99b6518008f58e0eacd0d8ee0c7b6859af378ec81ff214e8303f9da10fccb32cfcfe9e5ba200bf71eb1aeb7709d935f89c0dca256e73735a3a5e88189ebab713fac88b53283d54a2969fbbe2730424ea871523c277215bb07fdd1bda0329e88c1e8efc06ad8960e54bc15e4f77189b141c20cc5d4cb1375414c676aef85cb3f844696474f8b7180ad530aed677047ce7c4746948b21447bb7fd31a04a35d96c770a2a7e7e949836d72075455059464225bdffcb0ce902032ea59be8ac44b5f1d47fa534399ae62837ca5de822bb3a65e251619fe2b7d47d79df6118fc3d181e71468f39b8f839078ce039b79d59203974c3f3168025186dbbff1d43b0b196c156cb94451dc2eb13f24f427bc5d92c1df505c52bfa3e6872ac3298a6be9e1a847df12f98e6ac6ac16c538529a8539f215130459df232fd81453f1f1abcc437c8f661e9d53657084e48fc2647f7ff9bc12139480c80c324d885db80cec6ff3ac90ee957a09fadfaa228d3efc8954adc8b26d5216bc3d72f44c7e0e7c02f913537a131606d13e71f9b2c0c701cfddfd2b337280152cff6f9f2e2ad8775e41ff90ce6fc6eb74dd1265af2550c70a23648f68cdbf869bf7f78bd8a2817e80d3af53877a634bda4e3c878df5af3f72f7733455510e198db8884cdad21ed61bdc9dc9de0f7c8b80ed7a5c27bb5f25c536d651f2b90356365f2f10904031a67d74e5f8595404f95641453993841fa8beabbd451bfaa61919201d0dade73c8106ca78f9c422d1c5ba2457edfdd627c3ff8b34be4e88a22b2824a17ebaf09a753ed194c0bd68bb9ea4ecddd14284c03fda9ebbddc1e421768b8c25baf47ec283f29af2132427a78c6e55d81e1906ec0d6737c213642b24a5fdf33fa5699ff181047446715b80f29f561a2a587ea705142f8ca953857f765c7259eea2a372fdcbc2a82a0c8328a31df6ed4244fc63007968a0e4d6bc76220f4e194eef70f200dd09fd9c0eaa5f8eac1e18b5f4ef9f3540205d4930e5bbcc47e50c95a4a81e3e654f39533f5e9551988109c6f1edd82a8ef9b09b948c7eaabcd75e53ed7f57d19964ceef9189ece98c4838e6411fee99263a5af2ac153
+Pseudorandom shared Secret A: 2d8677713a9c60bf036495829b6ee2fd9983e73bd2987eeba4d0d2a182af5636
+a67f660eef75de943f5bbdcedb4c8edd181978028168ba1015918b30240d90e1df0c8da10bdeffeb230be6a3e8b7e367b229fbaf779d2d9801e17e2218567ce1
+Public Key: 50402953ea939f278c637cc135e19489e00ccc221541631e6482195731b9bb669382307fa9c67cda520f07469e7ef988221a314accbdbccb27a3cbbee4a741b1e4093b623f6c1820b11a92a8f94effe80c2d4cc2b3b40b085385f5f3bcc7f4840aabaa26933a8c7012dada1b5974c446dbce1ee48169f41bf8ec3e88a4536abb133e82827f86abc5c17aa64515bc675147a6204e069343ea8a0ba3a198fa5ec0f179d9a3bee06a3895e02c2be9b609c6a52ddcac38724d60ea677b20a499d41a73810ee5ec8ba550cb18f1a50af68f74d809ba5c921b7c2789ba198dd81df1c631a3ac947d0c17a3f00f5ee75cbcdc0a23b63443bcb49567caecb9a936543b0a0c0f7f614f5cc27991b8983051b7a6908fd5745f26c6ade2466786113726bbb72e617314044af47490ac03b98ac4057a9bc4d9bbca04f19fdc8794d7519b78204515463372a4c69c94720a6a35c007538cf55e45c140b119adb5b875560abed03922f4ab8831d68bcc5702696733d940b6befc8c63b926f737a864c03679bcce3ce5a187c021c2cc723fec678ec3705964301df03983876909365373207d3465a02bf63a7254cb610810c6559eca52835de969cdf16885b77d7c6656e9cc0bc18b2159f9199fd3843a4b82b712a06bf97b7ac09e02ab77c0c6805310547bda08a6e7c6d7302e72c2302fb4774844c5e9e0637b351a7a24819678324fc9a8e400633b7abe8b79336a57c9e7321979e103f0d0b744a0689dc03f1847570c676a4f7ab4ee93bebd336a2a957684046aaa0814d64c65968c0407f947060133cfeb4faef99343eb4abab77b551719652308fb110b6dd9a727862fb5b1bd1f76a1ea2c560911145f45985d8424f20c88da736041579c7f8ba740604e6de2a3bad879006553e0416bccb4a19401ac0a830ff4e056cf3bb1d43c556c0c7d74c7c23678aa01d3bde3e7bf3ee047d00213e42c4638e8c0e22b1601855b2a38bf2191c985269380e270eba82067332a1c576b3426acb780a020a55d5fac305d67143ee36c914b1d8ec11e0fe0b4c26052d78c193b133473a66635e01823222b1922bf8f627ab437a0b1d84f361790a0bb60e03a72a9f1880079b2f9c160346869106c18bde02dd2a24c87c0a5954947104c319dc949cc1b85e2c12cc9c045e85577d3274a1571b5cb738ecde4bd7e40b4896c80583ab31e13ac5867420c0c7fd45c5ea168539f330103d44e80cc6a52592aad164a14302af4857f61881027dc568e37b844da88cd8458e99651a0953ee3d92c5be4ce14b7bf2c0c644cf25c524485187a8475fc8af1462b5124c5001000feb761faf02c08a5384e59845e8b82d584a50b84c6ced4c184570d3b2014c49a7b8723377a96c2ea39406a9136fe74bff1aa7ff970337ebaadf1e6c2fc3b5577dc3891bbcc1b6b57a7b844c91402dd758258a79e59ba7217c6107cd3cbc829678001af647a3cbdc782b83b6717a20655f906d3752f57aa3662cab7d4364e0ba6037b23938cc118b12410aa89a29918604144b6dbf47698e6adb4a23063743ef190c72d6989c35587bd0078105648ff1435392b66b42b56c2749d4390712f44b4fca0068db0ce4d07514efaad633a45e7864c6dc1c14f9474ce244753b9a99aa196375041e82188c26a07ac9699d0198501aa13dfa2689c507ebebc814ad74aec0a1792168137a4bd5adb903a81b295b53fb6c74879ea9b41e681bd9aa605e91e94b22723dc01fe931d5682a04ce78cab89a19ed83554392ab3c677c621aab13aa1d2f221ac0711f04c49aa598ba2d66b9003a9ff1a6a97873a3c8b0f7520ac5fcb4abe1930f113a30a4107e3522b4730346459a42c37ba51a97096a0967ab2c3abc4646756154ce456b47510eea69bcfd228d5760b73a6b43873a731dc4659881bc4d516161b039117a8859c6c43766130580207c103b8006318fbc89083ae0a801d91b004e5ab841db60210da5ceacb2a18a41465274f24264146443e198c739ab0c49ba005aa5c0ad318bd050ca2c618cb348c0c99b8b633fa85349ccaa5c43692bb61a30bcba8b4344cc9988e9787eefb3c6448c79704848bc8ad0d469553709b2e62cdbe4471d12521658060b10bb6ca2a6c95841638f813253a6e16ab778d5592335a35d2454d730a3b0b009b4ed03ff73c4e717cddcd2020c653ad2f127425ced3dbe7bccbaf35675ac608b5c9c5ed78ab4d
+Secret Key: ba7796c28bb948942d1a6b6198cbc3cca341c92b04641c8136cc57e69c11cc03c580da068ddb144a565d30415fc66c24c31ba838a120d439839155c6df67c88970a53c1b52ea1ca6f1e4a74e2ca0bf5300d97c4cecf7b857fb3befe636287b07728aa3cd93ca196189b5b2b711c888d583222d61245188bceb696f70d0a454416fd9c30c80dc815e993c1eacb249a66859ec08931bc226a4470efbbeb17b96a902b376fc12017c5959351bf1d6b71d19385b35c3ee823e4c26730df7beec8c8cb3642e3f3a7be3a68dbec408aeecc65fb67c27a0bbbcf97f811b8e4340c852736d2b45b24f9ab2088c0abf672d0d2b535c76c843bc064659ba6f4b94aa945aa73a5cbda34b494382e3e88734a5311940cdcb6270239076f626b224632659aa6af862bdb0a0296016bd058849fc6985add513a879cafad96a08b776610961b52b44d06b7b737cc38d5b1854d023cc174ea1d5be54d7787583c1eb9a5565078216fcbf6c5548c9e68c2cd80ae4478af12828b8ccc67530025a7c545f6a8d6ff603ad8b2b568901e5c4902c60a921b744bb118de23303e8c2b4cc4c1c9cd9654e6c8e8936096cd0184ec40b5cb5c3dfa27e069bae726555724ab2a318724aec99aea2262da52921757620a47f6a088a606927575c2365741ac4a20a5aa72d12b06e45cc2f1c059175e27dbceb54b3e741279cb3ac85096e6b2580fbcae7a765dbb2557fc0641004a14d3995d7c1347de15df35970c70195b2923bcaa81b66610f3f455d8500638a1b9961c824c5a99563e2ba27ac78de81713e58a29f244b7b5032a431694a38a4ae720701725084e45d317b4fbc95640763b864f490d3211ef8501bed944db50231875c2b5bf7beca6242781499cbf5cb23a14797cb03ef2b2c650417a2c0037127bb0a075af8c909fdf009047c57511809bbd09ae5469e44377f67732e350c7f3672a564259a1231960146ac9522cada6ccbcb029eaea657b818accec65c62438a568a5d6063a1415440e5571139a55d77c8083ba472ab1451404760a178859c7a6f0f17705a8130184bc9c7dc2ad48c6d09c45c1fc8b8e446b9e09266478c90f0c84eae961bf5d37d75914e8a4394882764991bc610a5328395be3aa28932752f5a341067b96d753398d8825d3bcabc25d262fd26008ef24fb571ad5f4a091da0a7025a84c078bde338a92842c1e5a9b47b487dd3fbb133a6309994cd3be62a379a6b69ca922dd5ce1660ccfd5c1464ccb8120114ac3c22956358d692575f792c82c38aff0bbcd704cce821a88ee81cc40219eb948c8faba0da032c43e5122c254dd9003b1e57cd16f059f35397ad167ecfbc20a9c5224f1c056965b6dc5b0e26238d0d02ac1430927538a53d1a727229af57d9b897d37e5e12452a4a632c30a6fd5693b5b92a5e73aeda7c31ba4c0b1b67144e6571fb735228eba5380605a088c58be85957f31571b949c2fb664bb010838694a547c188163226406400152e22737d307b5e2cf6c5d59aa89025a95313557680b0023a6c737c401b407aa0b911a63c1ce3ba0c80f35febca26621087647964b46a6990303d8b86396f0a230b702773c50a0dc4779e43380c2b2b0d3aa6813c12a0401adab8ced571817bda742fb0070321c0ac9b30ea16406887cabe814090450f58ea0db1167782fabff260a46cfb0494c822ff4309621617d9c866b2f658e1fa5e0b352ee8b378bcd2c8a24583d4800ada01b92d502dd8d1b4ec4abd2fd33a8f7b20bf02178bc80813a2ab7a1893cba574af69cd9308936d862b45b528fc0b17a9a01af8b70143bc962d253e1a42caea6054784808c4ea094b4a28e77840fd846e1ec473f117822aa3177bf4a40682ae9e27b0364318d176a1cc4b079f222fda9a42c1969cebb0111517abe398532da35c0b3c8c89b16ed63751ec08bf31a2823b46caec909747dab2fbba8488491e1de29ffbc0bd73fc954e1923d1a790bcd00cd0636c50672057439498b46f09f231103513df891e8a4347557850752b4c64fc55bbb96c19f00e8eb88989646f70367356e86c92329ee591932cf8b3e41a4bebf9821664a1a0260020492d3fa48f9ff9c28d324638120700e8873d8742a9307d311c4dab6ccac31745e802b1d8246457120e69cc7843860b3c932bfbb1361f7b3e19713a50402953ea939f278c637cc135e19489e00ccc221541631e6482195731b9bb669382307fa9c67cda520f07469e7ef988221a314accbdbccb27a3cbbee4a741b1e4093b623f6c1820b11a92a8f94effe80c2d4cc2b3b40b085385f5f3bcc7f4840aabaa26933a8c7012dada1b5974c446dbce1ee48169f41bf8ec3e88a4536abb133e82827f86abc5c17aa64515bc675147a6204e069343ea8a0ba3a198fa5ec0f179d9a3bee06a3895e02c2be9b609c6a52ddcac38724d60ea677b20a499d41a73810ee5ec8ba550cb18f1a50af68f74d809ba5c921b7c2789ba198dd81df1c631a3ac947d0c17a3f00f5ee75cbcdc0a23b63443bcb49567caecb9a936543b0a0c0f7f614f5cc27991b8983051b7a6908fd5745f26c6ade2466786113726bbb72e617314044af47490ac03b98ac4057a9bc4d9bbca04f19fdc8794d7519b78204515463372a4c69c94720a6a35c007538cf55e45c140b119adb5b875560abed03922f4ab8831d68bcc5702696733d940b6befc8c63b926f737a864c03679bcce3ce5a187c021c2cc723fec678ec3705964301df03983876909365373207d3465a02bf63a7254cb610810c6559eca52835de969cdf16885b77d7c6656e9cc0bc18b2159f9199fd3843a4b82b712a06bf97b7ac09e02ab77c0c6805310547bda08a6e7c6d7302e72c2302fb4774844c5e9e0637b351a7a24819678324fc9a8e400633b7abe8b79336a57c9e7321979e103f0d0b744a0689dc03f1847570c676a4f7ab4ee93bebd336a2a957684046aaa0814d64c65968c0407f947060133cfeb4faef99343eb4abab77b551719652308fb110b6dd9a727862fb5b1bd1f76a1ea2c560911145f45985d8424f20c88da736041579c7f8ba740604e6de2a3bad879006553e0416bccb4a19401ac0a830ff4e056cf3bb1d43c556c0c7d74c7c23678aa01d3bde3e7bf3ee047d00213e42c4638e8c0e22b1601855b2a38bf2191c985269380e270eba82067332a1c576b3426acb780a020a55d5fac305d67143ee36c914b1d8ec11e0fe0b4c26052d78c193b133473a66635e01823222b1922bf8f627ab437a0b1d84f361790a0bb60e03a72a9f1880079b2f9c160346869106c18bde02dd2a24c87c0a5954947104c319dc949cc1b85e2c12cc9c045e85577d3274a1571b5cb738ecde4bd7e40b4896c80583ab31e13ac5867420c0c7fd45c5ea168539f330103d44e80cc6a52592aad164a14302af4857f61881027dc568e37b844da88cd8458e99651a0953ee3d92c5be4ce14b7bf2c0c644cf25c524485187a8475fc8af1462b5124c5001000feb761faf02c08a5384e59845e8b82d584a50b84c6ced4c184570d3b2014c49a7b8723377a96c2ea39406a9136fe74bff1aa7ff970337ebaadf1e6c2fc3b5577dc3891bbcc1b6b57a7b844c91402dd758258a79e59ba7217c6107cd3cbc829678001af647a3cbdc782b83b6717a20655f906d3752f57aa3662cab7d4364e0ba6037b23938cc118b12410aa89a29918604144b6dbf47698e6adb4a23063743ef190c72d6989c35587bd0078105648ff1435392b66b42b56c2749d4390712f44b4fca0068db0ce4d07514efaad633a45e7864c6dc1c14f9474ce244753b9a99aa196375041e82188c26a07ac9699d0198501aa13dfa2689c507ebebc814ad74aec0a1792168137a4bd5adb903a81b295b53fb6c74879ea9b41e681bd9aa605e91e94b22723dc01fe931d5682a04ce78cab89a19ed83554392ab3c677c621aab13aa1d2f221ac0711f04c49aa598ba2d66b9003a9ff1a6a97873a3c8b0f7520ac5fcb4abe1930f113a30a4107e3522b4730346459a42c37ba51a97096a0967ab2c3abc4646756154ce456b47510eea69bcfd228d5760b73a6b43873a731dc4659881bc4d516161b039117a8859c6c43766130580207c103b8006318fbc89083ae0a801d91b004e5ab841db60210da5ceacb2a18a41465274f24264146443e198c739ab0c49ba005aa5c0ad318bd050ca2c618cb348c0c99b8b633fa85349ccaa5c43692bb61a30bcba8b4344cc9988e9787eefb3c6448c79704848bc8ad0d469553709b2e62cdbe4471d12521658060b10bb6ca2a6c95841638f813253a6e16ab778d5592335a35d2454d730a3b0b009b4ed03ff73c4e717cddcd2020c653ad2f127425ced3dbe7bccbaf35675ac608b5c9c5ed78ab4d9ad6d5898833bfa2341272278b9935b274031eea9db0cceafcfdf8d2355895c4df0c8da10bdeffeb230be6a3e8b7e367b229fbaf779d2d9801e17e2218567ce1
+dcf37c6b65178a668b064effb5326a5857d9bdb8b496def177ccf13210992b48
+Ciphertext: 9f51e11144f78be3ff3b50b5dd39dfd31489c2006953232f0eca1686b2024acbca2a311143eab680533291007322fb7f625fb3708a887adf42df63bca83660a8d3bda5cc229788807576b099e80509bcd071c460ac249fe4713138a27f2028f359609c43d62e30bd21eeb8083f3635018ed4bba6c0c34e148de362f021ca2087d32f28183c07a6d715b1760ce860fe8cd8a66b42f24ad505efedea904a1b5b81de38b8e5305ac9b87586adde62446b97018da1a5c001c4add6bedc482aadce0818171b3e5142fa0f1e85773a0e14b921a56472fed61ad7e59cb225094d33bc8564426c057eb3893eb0edad087964bd9febcaae9780a94b526e9a40562281e6418c74c7b582db90b46bb42ac67a0301c46122a9eeb9be290fe5f540424b6e1ca541398e5d5073479429d2b1f1563d1d8af23bfa0fc5431d45d4437dabc62340f0a39e00ba06fefea3ea71e53c3c1830fe4b6a17056bd5648cf2861fbbbb2d6a5588b9b9c24cead5b8a23e91082c99108784729adc4e67034b69a48f2554299649f0d6b46cb98c382ffb10912e247fc01fa8d27df4e1a8992a971559e709202a5824a524df76bc3ff40b4c9620072ea13f6edd2c79691d6b1d3480f1eb6e814a90ac7257cb3b74521e967ad9f8b715f727f3a0da237348d0f95cf0eae23f1fade445f776ae7c799403ac3e1142b991433b07b51ac77d70eb11f3d7eddb65e0a148cbe2181a4fa439d6dc7ee4552556cd1d9400e1de4dd7cda2022c1acbe288cadb77db349368cf45a9a49926c14a4905afb1aa4f05dcbdaa8d041078ddbc9eefe73ccea29a66ea2a2573ce3d06bd9d1b14431f1b4a84e6aaea2dc13c29aed01757508b4d8656f59ad8c5d45090e6ea608b6747d79c037b49aba3de665c3ab67feb06e5407a8bd7f0fb82975f2d87f65555b8ff4f683e825c5a2907850ef96158fb66d8828f23cba6a73bcc6ed0e07cbb82389134f2478b8fb83a10c96abccd698c48b103340b168e5f42a478884bed195688c85d221069b557b6e0634a3913e1a9bc29692df868c529b6d31b5bb50aeeab2ddfe6a5ae2f2c301e33c1fd21ab82e92dc9744fc52b2478692ac369ed62dcd35e59442dcd7e43b300b22560d018509b7057c097a7b7699b68f3996f6a602cc869871aa22859dddd6cf7337f7d8b823e658cbdc7ecf94d3f93416c34c9c019cad2a69056650469993022abdc10bfc0e59b585ab623ed733c2a6a26140998977ef68ee705276ea77873c6b660a30772cfe445ab9bfc2cb416a08137b56d13bc6c173e486e73ba3fd0675f44222157546444f31ce284ae0653b0eaccbd6b798326592e306cc7605c9f681a871c9a8e00950e530ba9e3b2568cd5d49e917c7f73f606648c055b22331db7b29e3a4beb8436302de67e8a4b7bd17f64c1168a19a3cdaa7ee02e1252f1752ccfd7e53e939c19a86306ac32c9fd4fc07500f281f992b64cf4e865e90054d4ca5382556cb6a886cb4964b56053280041ba2af7f07b50094e2d2d3bf0e913cb6344ca49c0c5bd68ca47836c46cd727c38daeedb320831d7ecf720421ff20a9a5b2d7edd6c871054e4407a334f5e4a7613991417ba34ea06ba2abbb47761f01bb2089f21b58ab948e43d61e25a305fa871080c9de73454b8e613b71197aec4b2194a7cbaa0642baa89c2b6f53915a74c235f1b2258e3451e0e1de25045e595f1e54dab73296ee73cde5a879430039e5fcf24ce6b992d4d63b825aceb48fef8015a38ca71e5c7e495e913ca0e0a99cb55646de1db381bcc0cd9d00865ab52ae0db63be0e537c37a389be64ba1e432a94c04b31e31dc26e4b22ecfcbefe3a041939ec19de407bb3aceecbeb06efaf8279ef05f24214e98cdac2d6c18849d9f749659b057ab05a6e70ec0c46f44277aa3218ac538d4a4a03444fb3fa7290ca1847f64f6eb420cd3a9ba3ac4c22d2f3cf8b74d35054b8bc58d56775189ab271291c644fdead3e71e71515fd5fbf926122ad69bb961821e0387ee02da2a787c4320605cf25dc2ab160fdf242c04b245db18feecfcdc3a3212006f0a544a6e84f9ad53e76faffe48f5183f35f30bae552b6a0558822a2e82fa154911fd317a4f635fb225fda0aea8a2ae65d3bfc6dcb525a99381b8ffe7df92e73f205f415696b984112acc3560c8a5d37e408534b70659067cad770b97b3c8bca7bb8a1de290e3d045ea7382a603519dd0
+Shared Secret B: 884cd68cdd109e4066951ef9ea728750097bdd5360bbf10860d04b091e7c65e0
+Shared Secret A: 884cd68cdd109e4066951ef9ea728750097bdd5360bbf10860d04b091e7c65e0
+fbca9c394b6ea8aa5945a6247af5888bfb85226f6e7bcece666af468ee9375b1b9117b5bc018fbe744e9d6026ad385bbdedce228124afeb6f40fb82df3a6fd14bef48667a754c12bb181243a041f7f82d4f4056a4ecf0229b64b98d215989a47592c2dd23c7a95cee0e9a5446ec0e3781ed06f718f29dd84802cbc69f1c16509f1396ecb9983c6458e3b9a1c0766c00990490104a0f560147e09000229236a8b1de7bc6f84fc3069cac440aaa207f3c50b79239cbdd0f4615f1fab4ef06a372d0d2e2faa35fdb4dfe4538f573ae4bbf7bb9675d97c9b496aade7dd4e85473feeb03874f936dd2825d7a1dfeeaa2617ed7e0581c596550b6f23bb4736e996306b126362736c9a45af009ed11963416098fa65a45adbba522b6eacaa568a98aaacd3ca48e820d9b98b8631d9a00dd19a3f24fd9de1eed9c099a340dcc27880816605714806b0dfdf1d2c366db7e89f18347b30ac18db840b31eda8e2ef32dfb42529c03ac89ad1e5b99f5be2cc0173a6a9d3811a7a83ea5802e2cc081feddf15b76ab5266598b1dd4911d3a984e415bf5ec962d34a9e5c467a37645554a1feda8f2242a12fbf52ad3be6aafe1e69e0f0e40c576583890d728d363b42a92cdca2faa87762cf27e0ee36517e73e20c8eb381600fed9c49516ef46d28989a79c8f27681a3c66a4635ba093fdd55970cd158098501ba976d3c63cc702dd8557859b58995b97f1beb7d092937b1c971c1744cc34caad365bcca101bb15b0dc2c3cbcc901e616d64f9c4da8bce3505b5fb8683ceb520617b0da3ca8130eef49f92afb15cbc70fb5bf8236b283077ba964eeea2db8ff3397e549c672e9531980b4137adcb97c4d9e71e7d5fb0c3d3fc7a1c5ab5a21197667a42fe7f3b781086f2b820992c00198b341067f3954848c1eea4bedf6ae2129fe6e23ccdc113ce3cdfcf4175edc9d9e45a3c7a6a7833e3df3d5a79e236ef2f5d35f56f675ce16b879ecefec0bbb7d67ccf49a20c6b088173d5b5389a5764457c7e988335ec5bc7d17af61cc6ac733e3a71af614712a19e7d2ba365bacf8ab93c53834fee9936a0a820a6eec373c449cbaa46ad7be5832882c77eba89a3f8eef994622509df29d8c3b10c58f919b16d116ad037d69bdb628e59370887e97a9290ebe8c9d858ab8a342dd1bd2870efc1710f53fc91e584079ddc8c52bb0e71777fcb922e84fbe3cdc054f2431dc0278f52d2d1431281012dbe5fe19da83cb061753fb9c87492d046bb2d90b40ed16ec0fe4260d15bbadd5d7612cd3b78b0087054ea4140888605b30acfe6831d965bc891a7c6c03c01c2c49699a8a774d867043846b8889d6bad36214cc7c4ea2d9c5850e0b72ed003d44ca1bde4fc647f0b3fcdd1c265655034f19d428b42667e968e27562568cf05cf53adbc724b8735da074232e7a39ff9233d31c6371f095ce1dd06b0a2621624c55d3684316d332e17cdc61eb59c00e0fa812030568cbac6df242e463ff23c2490e948c6726f2f12c584f1c03b36afc595b0ea3f868ed2b39c06ad2fda6b93a8c45eb2eb9f78228a8a1b06acf2e248cd31a04e82f5a9e1ae3cc3dc38dc3e8e825620e455d91d61c9a8355402a29c386d692eada8e49430b3aebfa6df0d28ba8f945d7dbaf2c4f9866b92bc9fb87c6ca18fd5c7546d36ceb41fe10c589d8245ed9d2bbfda194f30b3143d2c207177198ff1edbd0d9edb2a5b2f8ecb691a645209a3f5df9d9d3a20b65c20db4dab407f569d75d0160de76d9c7a17372eff85c93c07da14cdafbd7081099c714f8b1de21889257861371456b4e68881e2dd77c9e969b14a9ba46ff0cc92dbd0914a341120f36bc91b9f8fbe2fc03eeaa55d5c060eb509ebb2c346586b667debd9d5d8b511ba4fb5abaa7ef995dafde093281ebb6c158dd20c071eb4425b9c9400af937aa61c012380774ff6acf97f15853780874349c78884d48c5e88fdd7cd4b521e86fd3ed92c8650962ced216a4458123fbeb51b608fc6150e303a4fafa540e23f3f66dae2fb9ef037e5fa4797c41d8597935e5dff1f96d095fa1754e989aaa75340999a0ff8a457c9b71f0b415729f7e8a67778739e24725751d37bfccf8e5bf87a14ce4e6062b87e937e24481c45d278c7d50488c0d52ecd5d4a7d3be0f561c62d0787e090b544311d8ab240ab761b162aeb9471500d747cc5299f8569abb3536be543b54425dab08b7f
+Pseudorandom shared Secret A: dbb5823e9e259fde99520b6243075e3bdf8da1fe14c3a8900cfe4a80b2102a6a
+0266fcb432b01340768e20cbdb689e15a1192e83326976d308fe22acf3f12484cfb816aac9d2fbd7aec601bbd960d4a178ff393bfe191c9a182ee2a3c80303b1
+Public Key: 5cf0506b737400ec551e466b87e98805e608268b038bea1f388679a5f24899c57b531b06bba157804aaf5b4c651716bd9e04ab1d055ec88c18ccc473e6b595dac54dfe264408044d2a062db0976302c87145a041d6aace344540f0c72ceccc679bc596f88b3a48578a30691d53c385edd848d11693691a5b8e225093c46da2aa31f0ba66054273c9bc25f19cac98e50a795804e601496316b280e616b3a22e76770c740694ae49229e140b00f5a8760b8df5c419900b3bd66710ddb402065a27cff38dfa987a5d3022763c9842277f32454ad042cdce8750e85205c13a37d4f16e80d8b5d6139610170f558b3b190c28781947a18a02e4789cfc42a56b2b99d675285e124eba48ca5d8cb223f065ac615784d1c7dd86a457c9b8d625547570b99bcab4b75250d6863cf98039d7e1aad277154bf11223101c39fa100c56344443566f1a65428c921072330b14868c0287b08c7cd06628987bc05dda8fb90540d5726677828069786abc47b1aac31db90b7a52753fcf704acf356c83083644d6863ec5107b411e9a229d1847c499175c7f710cb232ad6af3a02a39122253203cc94ed8c638683c984c5129bf90ac1eca9446f9bf96980813a51a6db85cc8817164d831dd6583093018c44785cc2c0b972a600723760d5967e45ba1a2e04dfc800754dc3b7499b829e14405121034f261650a5a45ba12ed068e650454f47309422abe5c6c95821c488488638474a74c10afa18241fa7669cdb7209a17c7398c676e0c54eff46586d1c980f240389b7458388d961745f658021261b2327c9fe5299ac9f39c0e62aee8ababe1bc09f1c8368ef1a258d7495e3914e9009ca48c899b24ac807329fa8048cb83308eb2767dbc90a87066a3979866b74b17b2496a71308483ba81a2430e29b356f208c1485980036412d977e4627dab9a528dd1911d80aa84a88615d863fc2397a418891be8a20cc226812731e80ba7bdf478a8d0aca31b6ff523a7a7809fa9699389dc844a04143dc20d0d38a116072c8a97ba5fe4827ea10351230806f935b5967dcd8487cb4b3fb5a74939015ceea4b9adc93ba85948a7d321ee4ab400c30c6056906dc3793bec6df7470c330186a96ca79303a48b6854ecda6fe3a06849903ac516111b07511f9140fa467655d56d4c888b8f619083684dfbcb51aa28aee647ad85e71573c9144c82541f6826defa0ee8715aae032163984f6a8b3c46ca5162c44800e64d8658a7270cb86d0175474913aaf13476a70fb6563999152bfcc904e00b7d0e80b26f96a603162e7fa792e24c4377e60e20e65291fab82304322d5ac3166a3a311229d8a2b50d0191902cc17b5c401d200cf83648ec5025c8c76f28cb4b26653556786a0917c47695323c064017ecbd4fa5560aa525795a62a261451a2b4b6fb86ac0e6b2b506824ce38d81fc8fc35baca9057d45f9b5dbc52d05346667614047fc8835450b574c21927715a1e95b68494e9cbc8c0061a1540c0cc543cd1f559237a947f7998829019aad906927e2ba63d77630d439f7c2bda6e52bca833b73877a6cf402344b58b1dc1b01aac85c48358d775beed15566c1337081b21bb764e4f89c6ed3a5796a4165e6a47534784bc8550f74cea87222f5062eb5aacb7cb830661a5786f75e677c7fcd721340726d83f945530249239caa4b5213cf1139b0a4b8b8a5022c6981fe61c516f1180ce68e78707e08e495a3e6b2ee5a5b220a2a2ff4346c0c4e50770a65b071632ac0ba93339bd2292da7a19b34722fba06990728973883165c2926121cddd670cf33a72d556942fcc1ca74b0c3ec10ae70a06a9165c47154923859c1f78e8baa16d410b9d1670786a15f955ca54614cb731653e878790d52b830cc21e864899d61258f3aaa36f4a2ea2ca8b7f79a21bbb84bebabfc9a7aaac20688e69231b8bbfabc60ab44b6b1926670d1b0321155d84981e3150597aaacae077b7d006f42d4c015a20b982641c7b49d75a9abe6e03689b5bbae69c1df1471cee07eed39af8df7313488078ddc847649b4e752ce312b0abaeb9a131a1ff4fb434ffc5e6f610712331d64f16b8021a9e8b7bf41caad98d42b02eb8abe2c508aa68b28544a6e0393ff95c06d070114206d77272537891b6ba59e7c8007d9d24b5c6c2596794ade811ee70a83b2c336115a1808cb2483bd3dd2136908c9974e40922192759384e7674c80a3da
+Secret Key: 4491aae7d98ee1b0b786f41e9b53198fd558a8a51a40259e2d7b27c4a4a64f35b426618530d2a21e651f860093e038ad08846b1dc847d43b55284090b549a4d4498db0f4b39fdaa453569de8e88f5503b0cc19742d4a7e842319dcc394d5833363c71e15842ded142a798c9c91a815ec372d8d8bb720364b6e73c156098d38f0b17048adfd0c7651504a7edba14fdb0dd492860638a93ce2aec3e27b9b5c1ce52643ba6045fdc88f64336971752472330905ec9c40d4b567ccac6a4596ae1624883554db098f9fc84013a78c0ff18edde60c3045c1163b64d312b6bb08a8e86c3f70b67c92f71e9ecc7a16b27ac8893c653110ccfa6bfcf7cf31145e05d62926eb7c2f744c65d3a12752b62944720d71bbb02b0d1b178f9a0b961d78c1732555acb9b5f6a28750337501770a54b840add35d7edaa0b51203422056f0336e15b414da380b8097c677f1c33b087774c997d4dc4f0b84c80d2036e4d61bd4aa4c8f34508efb7d51a9664f53111417ae7df14e72bc40dcf016f20c57c812b68e14aa03c83b64131d31c4565c4678f0138b93904263417a0b6b7fb75478ebf88bc418b746ec2766a6c255d95869d01f294348417c83814151fe663266a32fadf961dbe0a7c63456c4e2b811613f8bcb005dac2074abb8a678047df432071c00833b13e231aa05050c65240705253e94d4a5bb25a0179259398cbcb21c27551939b0c5471f78c0f6c424a237c135a7a98a1a7118418796d1ba21159f2b8c73fcf194db0002735531b7da05c6fc861bc79ab6b069a8d9b1d1e7251fc979f88213f12bb3726ab1c768869ef66de9b0b7263ba48bf156e9446685744ce9d4aaba7b02498506d15abd9a7a7e52dc86eee888d7192a0b2a7f13702248fcaff3127af064ace6659cf737a8ba21133ef959bc1463830bb1299a5cc7033e495b4bb4a4719ba927eb94c3194740082901a0c0ad125416e1e6cea2b241495a36ebb1766e537ab034be89e2378d5237fb757c6b69b72236a4a0565cd8fa2419b002c2ea3f1452262c9022d8926c38fb077bf223a3b72ecb779b9edc30c2ab1b609311ac939105c6a5c3063437658260c3c5f290ac6cb5463ec67d8559a0d90a87e2917c1385117388aea544ae5088ad971815f6667ce5695034928dc9b898a8a41cfaa2cbc763616b0abb77860a281923761319cab2310fa6acab6b7d3d388d11b284c87102adf361db693f8191148e19a19ce19a02db1e344ba9c3b39f293961a8a54f306926f7f56426a93e26cba853d65ce2b896ab941570ac8fc6f193b5e12dade65d5040b0e0a738128a7567e47b73a69a0a526deb9a81a57a3a95845e94086e5d691c786c07da2732fba13a070cb8e248c461da6bf536850583352c580d79e99c6d45b19e7c6fa89144661a7d36581673dc7a08aac1f6828a39780c33c35984260422465c9cc6c4c98637705b8841b8ac408059c1fbcde41a3e01a474a7367600d76936734e4564536ca51157c724c5115418e202ad6c5ff40b8088018e2ab8216576c5b1159ca9515105763f199023c53a35b0a3bde1f5000530002d440e1e64c0da626ee82220ce2c7d375a68fe1116f9b442eea3098ea72495809d89701cf04193940c56ddb716295127d59c681c679f9c8878e969c25e69983670ce01629261710ff99114af175c7a39657e61c808b26479d21289419f272c19bde84fbb70817363575b576828671435102796986ab19584aadca349263b0ca80705a04a1369aca36cc2727583d717c80f144cdc9ac4d732ab0bfa67a7b28920e89842719b820b74ef244c5d350d054113fe85ba63678b10e0be5ba67021433d19c267b10a26f9f8396975bd970756e5a36f79fc6cea80983e952b02a49bdd13addbf80685295a4f253d250b32c2b04232ba510ef92266631dfcf2b1ad721e11f7786006313251314cb22d13b4028a061f1163522378532fa68f76d7cf2a5904d23b1431accd134ca4d4407c71b54671ca2e656709448aaf1cd48f06628eb817427e616b4a8b9c0c549547bb4751c3758e439759fa04ec58601ed62cceb3481f697e7e77a7f8c66af6684019bac8b1bb4c68c0944fd10b8285c22002813bd2bb49693a5fa73d9984af70daa4bf804826d066e73505c623a830cab54297008079c46ae575ad88272be4355cf0506b737400ec551e466b87e98805e608268b038bea1f388679a5f24899c57b531b06bba157804aaf5b4c651716bd9e04ab1d055ec88c18ccc473e6b595dac54dfe264408044d2a062db0976302c87145a041d6aace344540f0c72ceccc679bc596f88b3a48578a30691d53c385edd848d11693691a5b8e225093c46da2aa31f0ba66054273c9bc25f19cac98e50a795804e601496316b280e616b3a22e76770c740694ae49229e140b00f5a8760b8df5c419900b3bd66710ddb402065a27cff38dfa987a5d3022763c9842277f32454ad042cdce8750e85205c13a37d4f16e80d8b5d6139610170f558b3b190c28781947a18a02e4789cfc42a56b2b99d675285e124eba48ca5d8cb223f065ac615784d1c7dd86a457c9b8d625547570b99bcab4b75250d6863cf98039d7e1aad277154bf11223101c39fa100c56344443566f1a65428c921072330b14868c0287b08c7cd06628987bc05dda8fb90540d5726677828069786abc47b1aac31db90b7a52753fcf704acf356c83083644d6863ec5107b411e9a229d1847c499175c7f710cb232ad6af3a02a39122253203cc94ed8c638683c984c5129bf90ac1eca9446f9bf96980813a51a6db85cc8817164d831dd6583093018c44785cc2c0b972a600723760d5967e45ba1a2e04dfc800754dc3b7499b829e14405121034f261650a5a45ba12ed068e650454f47309422abe5c6c95821c488488638474a74c10afa18241fa7669cdb7209a17c7398c676e0c54eff46586d1c980f240389b7458388d961745f658021261b2327c9fe5299ac9f39c0e62aee8ababe1bc09f1c8368ef1a258d7495e3914e9009ca48c899b24ac807329fa8048cb83308eb2767dbc90a87066a3979866b74b17b2496a71308483ba81a2430e29b356f208c1485980036412d977e4627dab9a528dd1911d80aa84a88615d863fc2397a418891be8a20cc226812731e80ba7bdf478a8d0aca31b6ff523a7a7809fa9699389dc844a04143dc20d0d38a116072c8a97ba5fe4827ea10351230806f935b5967dcd8487cb4b3fb5a74939015ceea4b9adc93ba85948a7d321ee4ab400c30c6056906dc3793bec6df7470c330186a96ca79303a48b6854ecda6fe3a06849903ac516111b07511f9140fa467655d56d4c888b8f619083684dfbcb51aa28aee647ad85e71573c9144c82541f6826defa0ee8715aae032163984f6a8b3c46ca5162c44800e64d8658a7270cb86d0175474913aaf13476a70fb6563999152bfcc904e00b7d0e80b26f96a603162e7fa792e24c4377e60e20e65291fab82304322d5ac3166a3a311229d8a2b50d0191902cc17b5c401d200cf83648ec5025c8c76f28cb4b26653556786a0917c47695323c064017ecbd4fa5560aa525795a62a261451a2b4b6fb86ac0e6b2b506824ce38d81fc8fc35baca9057d45f9b5dbc52d05346667614047fc8835450b574c21927715a1e95b68494e9cbc8c0061a1540c0cc543cd1f559237a947f7998829019aad906927e2ba63d77630d439f7c2bda6e52bca833b73877a6cf402344b58b1dc1b01aac85c48358d775beed15566c1337081b21bb764e4f89c6ed3a5796a4165e6a47534784bc8550f74cea87222f5062eb5aacb7cb830661a5786f75e677c7fcd721340726d83f945530249239caa4b5213cf1139b0a4b8b8a5022c6981fe61c516f1180ce68e78707e08e495a3e6b2ee5a5b220a2a2ff4346c0c4e50770a65b071632ac0ba93339bd2292da7a19b34722fba06990728973883165c2926121cddd670cf33a72d556942fcc1ca74b0c3ec10ae70a06a9165c47154923859c1f78e8baa16d410b9d1670786a15f955ca54614cb731653e878790d52b830cc21e864899d61258f3aaa36f4a2ea2ca8b7f79a21bbb84bebabfc9a7aaac20688e69231b8bbfabc60ab44b6b1926670d1b0321155d84981e3150597aaacae077b7d006f42d4c015a20b982641c7b49d75a9abe6e03689b5bbae69c1df1471cee07eed39af8df7313488078ddc847649b4e752ce312b0abaeb9a131a1ff4fb434ffc5e6f610712331d64f16b8021a9e8b7bf41caad98d42b02eb8abe2c508aa68b28544a6e0393ff95c06d070114206d77272537891b6ba59e7c8007d9d24b5c6c2596794ade811ee70a83b2c336115a1808cb2483bd3dd2136908c9974e40922192759384e7674c80a3da6ed34d7b8523475de9f14b77fb2cdd6693587cd818a4ae5bc6fb7b82eb3ecd4ccfb816aac9d2fbd7aec601bbd960d4a178ff393bfe191c9a182ee2a3c80303b1
+731fa594a7960f8b5163e47da7a0132dd209f8ca13935063a8076c9e17b27b16
+Ciphertext: 484bfcae792862c1e2cafc2dcfa102ab6f7f97344856c248fa6030e5edea57ec3c374875cc7bc358159650c577ff3594625cbc18eb4f41f191d23dc2d747f281992252390b724d6cf3fb4576fdef966038615b45a68f0a9dc849a4e698e4f124eb36844ad43cefc25953a1e86fc16e637c3ae0169232598d11089eee810dab43c57ca0050aab653e14b23167cc7c95da3ae0d7298420f3867ccba0e130f1bcd9afa4a75da5ce91590569534c736b507a12a4a211500643d19f359a06bc17ee4eb541754137df0e37b15d731e585adbc20e6f210e5ee7167ea9787c97629292c902d00cf5f713a29506915cc413b51d8b3e543bb7edb3ea095d623cc020e3d51f460f86923275c72059d1d48e51d4e557850f9a3ecf10b8822d6ae8871de13955497484c30d1fe81fb204eb3bcd5d987b40b37b6cc6546a7d87458c5417aa9b378b3dbe1a01d6415690d4d0597287a2f994716fa3812db27e4cd5cd1c408e0c35c1bad7b0e07990ecedbd816adfa05914792937a88a4201af4750e3e2eae506bb428127b611628e2437b4ded263915ac2035119637364b138df63b5b8d68ecca3d0a33a415d837e63a50889be60f80af2fe02ea55cfd5caf47cda4ecac16ae6396a1a550fc0a26d7402a4e7f717969229d99adfa2b4605aea0d097eeb54679dd466f551f64427c52419d07251a4ffdb28e8de24fc303c372f567b907fa25a33e2d6a85b938bd6ae8d037ffea580a2d5a715e239698480a832b3abeaaf427ad6e3ccfe5e1edf3cd0dc4ee29b29995b076baa6304db0da819d5ffc8f0d97cb69e5ba5a78f317a154a642923aee9afa658ceaba4827dd1b60d3cf4aed5e6a374e3edd6696ce8d48e534d9226bc56bb62781b63b867a7921694b14e03b979700029a60ca137a375e2580b8066ad887f9521b3b644d29abbea335df1054c942139ed5f2ad592e0198b54bb229cc62bfce60824793855fb63681308451b467baec185fa037db5f118ed3fea5429269adb3fb2558778aeb694125d7c4230cd4160f4a111a97ccfee4e43582a6dedd2760c4c6692cb5c84e8d2a3155db08f02f5c96c0022dce3d14aec686d88b9429d6464f052c0d7b7c842abb4c74237fb7e3d19900bcd95351f9d2d21747eb44b18505c8562d0564c27b3b0fea093d6cc7e9b0bcd69e07167c4de76d477a213c7e4b8e1da7caa232ab8ff0d280a168406a799350f6eaec80378d3c1f3791852dd2732fa0bf74dfc7f3bc6ecca51ea9cecb5a3ec4ce0e0417394621e18dc2d47eb2a11b32a8e8ce2604c455733e9bed7f3c8d9dab1e8ff54068f55210ab7c6e8aa2ee620df7b0f0b184393035e2c2935e47f078b1fdcce4231765a3efdadfac777f3c1696b03ea47e0b1ed87dc75e82c40621bbe1438cbad5230d3ea3132e12e52b8fe21168a7a6cbfa4f6ce4fb0e0f34030fd43e7de7bc766c400737cb25b609694b27aef9864736854528d4bd731fcb63cae7266c0489b1fa528361ae06967836269514ab8c6b32e837f975520170c39050718d6ce23a5d5b0ba9fcfcd095b3b932e3151bb95edaf3a073d617def84d2d74d5aac80d34f1c608866be6bc91ce472ba9e1e585716414f4417d6154fa4ee1fe8907d92b52e0dbc6220e14526257510db899db8ca3aecf085410b89acfa9b7c4326bf56328266be8c81c417872f2583f3ec20b60ee8275dbd2893e043a89f2304186da96deac41538261fc0d6a408f4009b8cea3c6092ae8bf748a141cf921004450a3695db1d292c1ec1ecfa6952394be31ff856d5d8d82ebc70844add5087c9a4391d74295016533fefeb67a9d472412fa1a6fef663f5cc3a93f9f0f3a464e5d80c905be98e74b286cb71db72b9e2189abc521f7f5995da993af6657ffa5fcabca23b9618bc62c199ac1e7c74b2e88feda25dfe8e7e60f7b5f79a33de57210100048e912711b313bda3163579eb03b74c202a163748a9438f74d415c4d613d32d30d645a48ff31395f2c40589813befcae3b44d4c45746b06e67ef4fbd99d99465ee8f406e36c70a58cbaa37343d6aa0b4d415000e4a488cf842881fe5dd786b285d9a7d0d607720614816155aa323db2e07e78c72cf5efca716a44acb93c1182becdae7b9257d8c4be6ca8e462087324ee50ba0735bb1ae63905ecfdb6ba470174c2b44eb96e485f0e1926d9dc92515a6f0b6d5ece0c82f12371181a5173b4d55b0999
+Shared Secret B: 0665d1a2b44a301c624a49765bbc6d562cb35043538056bfe4446e5be1949724
+Shared Secret A: 0665d1a2b44a301c624a49765bbc6d562cb35043538056bfe4446e5be1949724
+d5feaa5ad65226ffbf59f980fdf141b2c307a40e155e3c132f2a66ccc959e772de60fb21c3913556cbb43a909283f967caa99e8e736fe9fe8bda35502380c6206434ec3b09ce59ed9e509148d214c4bc15352c5bcce98719800385d8f2a647137e0c6160a0c6f5cea7a9d41c04f73bc82424eb66baee6141edeebf9345d0f304d06d516cffb27a3ae1e76d26baaf9035c0e1055d13c9cbb2a565c2a79120859755c45de49785f019bdbf7ea5aa92d299e5e11a59b29294a4785aee61f34a5c3c48020d5c20c7a29c8b485f24d867fa8968663210fefccf00024953eadd720707eb06bb2847a48345d50cd812f4bf17aab3fb492c2348efd1a189ab795267233cf7a67f1fb87973cd8ac9246eb2e2f2492f7ecab614039de8efa04994e5d1fe385c80683f962a3f75d9a73ac7eeb83d71c2f3697f6303d4aab74137448bc9b6cd5772227df3767db62f4ffd6d2274e9c3ff4a076d156291865a5536a54b1e5c776789a622f5484f2ba967c7bd08ac15739ce5734aa6037b7993bee59d8cb5908e857f2cc0a2ea995c8b9eb4c8948bd63b182d11f4687a15881f075059d3a4cf9740287f049caa4e73bd45f393a4686e7e49554241739e5c68636126db448ccb8a4fe7400f5c3d10155c464cc232bd8a52f8c1112711cda46de29ac8ec82617e68c50826b14e1e01c081617eea53ff6da3cd3af24edf9ea8fef91b7f539e56bd5bd3ba4bae1b76b25a9df91cca3a211bc395acbb02c3442e0b4c316d30b1956b65803b8e7cc53486c5ac5950f823881d87021f19cdcd27555bce9d06c77e40dc5d0b970618df652dd9dd9a3dd13d719c46ef19f596e1639e835452dee018d5c91840c76815313fa4a8cea5d789447716ab441fe150594266d33bfc72208f3c831c6bee61ff8b66b5510816747bd0e03202518eeea375516591eb4a353b975f10a508bdaea48115c7e3173a99fb1179cc5f3c8a31025ab5bfbbb846231ccc1e8afaeece20a00d5d78fd92d6ee0338f1922275b5029f9dbc1d148f3e216f327dd4750ec1664084b7bc2ca5604f51372eea28087d8d0fdf5d9d8a348e7db292bd6e8a8fbfa29dd28367e8edaae480e708f7f619d14c434660f9de82db9c68a5950d43467377a05cd895c49faa369b80bd5e98c27eb41b75e7a4997364accfc9f6e2be03a914297eac6c70d1fffd2df95092f91ab734d28b9c3bcb50e0574aabe24063c97c99dd6d12275a1f995f1f5634cb77356191dae8f3babd772512b27b7b5d14ac3cecd163a5f48da7660cb64b8240bfa8e1099571d6f477f06f0b19e8188fb16737926b72e8f5dc9bf23da2efc4627f2be020af663e0756c9bafe41f4577b7f724739db76deb09b6b579405ede5900ff7621dd6014d1b75c9e8de272d4f89ce6a0649a389806e738f0bc81312922d2d2570107da20070b0c77ed712e82f57345f80065cf6c9b05d6f2eebd3a50f1c8cbc34cac9d68b5e8fb9bb4ebc34cea09730fd5a0e3766e3f4aeab6cc8a27ee87ecbce18d6a815bfd154e070db44eccf3ffec80207aa8f276cd4dbf12dd29de27474e2a7758594fc5f97b65b05a6e6a094cec6bd2dd310fe4d4ddc828d89b263f550de6b61b716674492494927f70ec47b64b53749fb81fbfb7cf2ef4b21ea1986f545b7497b36acb12c05f912bb251f8a2f909aca9976e0d3218cf7fc01cdb9522a06716fca529aa69603cc8b03c350aa46f2b41a8f45a6cc7ed66a29699f84b090a75db21168efff6770196c325585dc6c326871c32ead3da52213fd7077d187437513153b98d802fa00c992ea8b96434b1258b897ad75c2602896791dd7b90d351fb820c139f68dca1abf2e8f5718b0483d7356b3393c6548686309af6e1ded5b99264619977e63d991fbd80e86e819358569dba028864c0ecee1f186899d2bf0d5292793e185df3f9f8e432ad62333d60dd60e8310d36032a76acba3adf16aa321af8583091899000b214a560e4174dbff46101a422967c51b856e24b9c7b4b9b6ade6519f00e3bac1f212221575977b8e9ef6c585d94c07824ddb673012ff9179f1e17fd7886da8ebbc948799e14454a64f045e1b42b0befcaeda46523b15106665d84b773c833b26d56920a076bfcdcf82f21a8da696476f8ebb1e4cfa6ab13b16158244a5442eef919a53197c83fc828d77433297f1faae0fa69faa721a468dcef6cfb9f0ea633c9cf73c0a41e5
+Pseudorandom shared Secret A: 231830bf3b4d9d53825e71e6148e1442cbdc0950d5a112ddf76005297116ae0c
+f5141b15c6ce73c1f2d3cee2c930067db31c5b6a2c7320c7be98db09b38e1c759a28a375f8eeb41736a7a645f36a1b38b3db87afd58fae0e5f5ac33ee0454d15
+Public Key: f89151457820b3156a869c2cabc8935f2991b155a57cc60c8de21978c86fed1c57c25c3b1749a98a9917c94179bee7c269b69e31a2c0e9cac135568d3c4c4838183119214b1b45465ed25e4e362d9ea9bbc8675eb4f120f9634864c6b486d2102d58ca2ae35dfe2aa03b8c100633bbe4c35b84f0a14f85103339065afc049bfcbc43e6289909277b333313e9a7881b87e044afd1327546b8bb0a62312e13c1c1f898e142b45a5491a95a3747b9bb72274f1b72cd52975abf75b542751d1d8c8fd413619cc4c0c91268105a2e69da1b313ccdab66016386319901070be45245e4659fe38f90e928ea1c3418699ad6e99c2deacb8896030d4b656e22417bf007c5c401fd5c839d385f4744499663cfcab7772d8b1223275696aba2de63bfb67538e3a747b4d112be2c88015265d3971ec13020f9072843bc1e2d1283a6d20c9c966c8261b4a4515e39eb84c670222675bc12e926ac2336ed0b1bb9f39f5ff3ae8de7adcb17501cc281e555c0d672ccec3c848fe80e460a24a59a770958b537b6be8dc1187017595351c889faaed291cf742c4f9de37a6ea02630d1a843347df82a090f167020fa7fab236536e83beb5b7b7cbcbc7be4b2fd051f8fc7a546b216190481ea777f3683c59fe4badc142badc26a60449da41658be46608de6bdc5f39af9c418b0225270584c0a1b195365677ad93153eb9d14a90c77b6719dd27a4c6562f37b717a1786e7999a9c8aa2042704088340be025fff1a5c7fe279de471bce57b11c7b107c68a279671125a260efe924ee27c95fb79d4d5b883c35c846e692d6ab11d6c8cde7308cf21203b27b5238e83e1833b062e84106581c0c940b15990caba42861ba194a15c8744cb82335740fa77dbcc649a1d16fe86c6e646728e9a3acecb80b2555230018907890168a44087580109392158b77299d3b6f321b84583c7d06729dc33654ee87765c22b946320a2c720572f4624eaa9535078af72c34401a921f229ee4b497101aaf6676cda4c5b88ab1561ca683a5257c04e6070b47cd1a285fcf0172e55367c84cb7f82221cfa51dabb91c4fb751573945913c7644d348c836b142c7617c97bcbbbc4bbc1645865b98189440c94933cb7c7ce12bc187aa737575a976e21285dcacce565c6af0429cab0dffba1fb2a349d237aaa3e5a0b0e0a47c187bd5057e285424b4daac730110acfa033411a9e7824d9d5acf0da522e5728ceae5202002be0ee70f901a1c0161b31e8a4c9a0bb3db8c5b32c094906101d7dab10a452998d922449b4b4d7abbc89a42d48ca1fe56885365a477808add914c98d038dda124292718c8ba8a64651017883872cc1982aa734c932651b21e96319f1625ac745044aad56cb43c06f5a7b59933b35469b8c577460d32446de309d1b11b0f763a60b62d44e0acf805007c6b5f4283313deb65de206bf7b0ac75b94b627a931959b89dfbb46258a7098830332385d4ccaec7631a1e1a06635abf948166967b02d9c088d93970977a934554ce81c8b34ac76e0aa4617a9c3fb8d62e1ee98cbd2c8a7d945111d840e19cab4bb167c9118b2f913c126a68f8470334516cd176c85bc819853a1a7ad58f7d60c657699215b18ab90611cc8343c136243d6284d3ec5495ecb0587b85a97b7542f07a34412d41d1a22686829b58c26750313567c24195c665305159057007363a1990022ae48df44a78a16c40c1f41c090b7b1efb468108ae6c70879772564c83b8c713b3480127f7594054c93252904f18f503f9525604e96816e279f03214bf14c900309bf33571c4d2a2dde642823b9723b368a49b75b4f72718757cadd595a1043f23d0cc5fd8649dfc85b7b11c59fb1b83b57f4f825c1e21a76c7bce87d46ad1eb00d8331ec60660a8e1b927a392ab966c789a17a3814dba630a59331452a0b495608cc4809d76c346a3250732808ff08532176056fce1534a454003930510984480428face30034d4cc5b1505a4e297bfc0689c836564c7c5ee02440405001ed44cabc6a0e8824eeee93861cccb20b35a60345a110986d0c094e494513e08c59ea31e0b063cc644017d21944a0ca6279bce28cc008cf5982a64743968289c781847368e382762ff2b79a09337ec0bb1353166fdb45299259b69ba238e27772e12a51cf49abc228dec815eddf601d2b55bf55c4d61d28c1a6986cc616054f2b912394ed06100926dc3b34f
+Secret Key: 38964d99376298a9a87a6a3b9ec755b2f97d33a356abf84590b091f420881a77b55f34531823708fc6bb68e2365342c267e128b969c634fbc28bb951fe7c0e0dc7560f8523254c71383914b0168c751b73335c735fc58263e9a196d35b433984af5192e6c61afbf736953a72b5284b95f79900824adedc23f02105bad17fc5e87211ccb03d5356bf546cbac009fc47699cea203754b379f64b501c6d665b225ca59d0a572f4f455f8b52c29b926b0c20a4356657c235b7f9421e1394287ca3cc37ca86727609ff5c3faa34a10e778e45b64cae181ec3b2af9507abcde7b43098b6117163a6b7c638da3924fc38456ca81ba60aded98cebcb80768a005e416aec603e847848614473962a92ce0112d539a2a0603d47618403116603cca30a7a9e51264189eb9f3adc112b686b8262057c036e2cd1c71be24d6d40422699abb4829b2fc52b4ed5586a56b4277a925acc45ca6292cf222386f56f31389e42418662d829eb9bb17f5b62822c3172c40d8da969a08a7f88bc498eb280efd34a3238af659c4a87142470948703db31ec0b4b0ad56625647bf28072e18377bc395a93a9a4c2e26643c10b27e830b4f50c45e1677c52b461b225df2957c211aaae5a2b8f05a03f5688c699b89f13ba67887da35c0dbfc68249030de7007e84472afb6578b829246a336a20e32d1e38a1a7018f7746331cb04a6ff62fc12141ee467be4f97b054802741a2aa1a451fe997e82e12e42562c4069763772456dd248290953e352214f47c34a3b562cf659dfb3539c5c8f4b492898e18b3f0a163fcc675f666700c398a0027aac91b075623134f03fcab52d79f4603a38a68155552190c20c62789b17b5b002a0b46baef64444b56c764425c5c7f8b2d5f32d419067e60aaba7d6b296aa69d8186cfb1591eda5ba60277f739abdb8193574c22a66fa3b834156f16725fff738b695aabed080a37c7be484716ba2ca367cc78c367b0745443e550d34494c6066896a6004401cc1dff67c5ed9a5fed771a0c2277fba5f09b01a600873063b2cae0c6ab8912f58342d80e33f6687a12381af0bb0b2865853cb0c5fbbd070f56711b24bc97a431c5bfbbb904541d7656773d32c125265fd660477b3548b615664394f1ecc37b43938e9da126eb79f145474d3158ac7363a7b432449b78d958aa41bfc0a820b9ef4eb0b1242172d63ccaa50ac1584773ff598353b9be34acd28270cffe498abf7229b5b1fc40039ef15b5f1aa231b3926f29293dac5566ae1620ad32da46c3b73b8ad0e62ba593123993024ecb361fb6aa2fae57f2167bda872423c5b8a003507fff31e6f64170c642b35047dd035acd0145feaba13dd4165e2f3172100acce9598c046aafbc00520f38e54174ed2d0aabac142e8d95319022581862d23c5554ae5cd8c160455714e238420fc2875baf34b6e229e30d0a3ef674af7543b47bb21f0d41cb07a1cd8c2b312fc238d0a263f723c31f72fc6316413b6a805512ceac944622656f4b9ada706c374b6b3851756dc161d99599f9732a013f86911961141d75048e076df84baf5d187f1d2c4a7e4899d229abe2088d886617f08bb7f2227b110228846ab97d5090220c0ed46201dc81ea78b15ba95315c7b9d5a470fc896710c90acd384279c5bbc40a4359e0544aa1615eaec26dcab9521bb709921cbdd56857d2a1edc7c7f4b407e2317b42840833c952839129983671d74e013ee080dc9e8370991a277d893842793035ba33f86b0d9d31782d27c32f32bcab64a7fc1c34a863a56c20278b35f0eaa0c25696c4d6a5c7970c233b425ae23c54cc7c2cda91bafccbab5d2535009295adc5cc122b605f737fba09bf6558a6a93210c0ca5d394bdacf84b414c4e1fec13d56b956825903850a45fd12149e19a717bbfc296a3c80c4dba8499ed28583121cec9156ce43b8d7ff715a74357eb876d678259fe92258f0161358a7a7955bf93da7f26c003bfd1c4de5a894025bb8611c1f36653ac39c41f53b1e0971729077e45e759afa71b7d9c102e66a96278c963ec0454ab154ea79a3ca87399b65fe1c88bb2898fc15a0828f17c1dac3798d037aa1b2a36da60377181bc247e3e32815c9343085a114d11426e242fb5302fb679a036ca45de6473c0744da8187197b4150e2ac3b48c1e27fa9df89151457820b3156a869c2cabc8935f2991b155a57cc60c8de21978c86fed1c57c25c3b1749a98a9917c94179bee7c269b69e31a2c0e9cac135568d3c4c4838183119214b1b45465ed25e4e362d9ea9bbc8675eb4f120f9634864c6b486d2102d58ca2ae35dfe2aa03b8c100633bbe4c35b84f0a14f85103339065afc049bfcbc43e6289909277b333313e9a7881b87e044afd1327546b8bb0a62312e13c1c1f898e142b45a5491a95a3747b9bb72274f1b72cd52975abf75b542751d1d8c8fd413619cc4c0c91268105a2e69da1b313ccdab66016386319901070be45245e4659fe38f90e928ea1c3418699ad6e99c2deacb8896030d4b656e22417bf007c5c401fd5c839d385f4744499663cfcab7772d8b1223275696aba2de63bfb67538e3a747b4d112be2c88015265d3971ec13020f9072843bc1e2d1283a6d20c9c966c8261b4a4515e39eb84c670222675bc12e926ac2336ed0b1bb9f39f5ff3ae8de7adcb17501cc281e555c0d672ccec3c848fe80e460a24a59a770958b537b6be8dc1187017595351c889faaed291cf742c4f9de37a6ea02630d1a843347df82a090f167020fa7fab236536e83beb5b7b7cbcbc7be4b2fd051f8fc7a546b216190481ea777f3683c59fe4badc142badc26a60449da41658be46608de6bdc5f39af9c418b0225270584c0a1b195365677ad93153eb9d14a90c77b6719dd27a4c6562f37b717a1786e7999a9c8aa2042704088340be025fff1a5c7fe279de471bce57b11c7b107c68a279671125a260efe924ee27c95fb79d4d5b883c35c846e692d6ab11d6c8cde7308cf21203b27b5238e83e1833b062e84106581c0c940b15990caba42861ba194a15c8744cb82335740fa77dbcc649a1d16fe86c6e646728e9a3acecb80b2555230018907890168a44087580109392158b77299d3b6f321b84583c7d06729dc33654ee87765c22b946320a2c720572f4624eaa9535078af72c34401a921f229ee4b497101aaf6676cda4c5b88ab1561ca683a5257c04e6070b47cd1a285fcf0172e55367c84cb7f82221cfa51dabb91c4fb751573945913c7644d348c836b142c7617c97bcbbbc4bbc1645865b98189440c94933cb7c7ce12bc187aa737575a976e21285dcacce565c6af0429cab0dffba1fb2a349d237aaa3e5a0b0e0a47c187bd5057e285424b4daac730110acfa033411a9e7824d9d5acf0da522e5728ceae5202002be0ee70f901a1c0161b31e8a4c9a0bb3db8c5b32c094906101d7dab10a452998d922449b4b4d7abbc89a42d48ca1fe56885365a477808add914c98d038dda124292718c8ba8a64651017883872cc1982aa734c932651b21e96319f1625ac745044aad56cb43c06f5a7b59933b35469b8c577460d32446de309d1b11b0f763a60b62d44e0acf805007c6b5f4283313deb65de206bf7b0ac75b94b627a931959b89dfbb46258a7098830332385d4ccaec7631a1e1a06635abf948166967b02d9c088d93970977a934554ce81c8b34ac76e0aa4617a9c3fb8d62e1ee98cbd2c8a7d945111d840e19cab4bb167c9118b2f913c126a68f8470334516cd176c85bc819853a1a7ad58f7d60c657699215b18ab90611cc8343c136243d6284d3ec5495ecb0587b85a97b7542f07a34412d41d1a22686829b58c26750313567c24195c665305159057007363a1990022ae48df44a78a16c40c1f41c090b7b1efb468108ae6c70879772564c83b8c713b3480127f7594054c93252904f18f503f9525604e96816e279f03214bf14c900309bf33571c4d2a2dde642823b9723b368a49b75b4f72718757cadd595a1043f23d0cc5fd8649dfc85b7b11c59fb1b83b57f4f825c1e21a76c7bce87d46ad1eb00d8331ec60660a8e1b927a392ab966c789a17a3814dba630a59331452a0b495608cc4809d76c346a3250732808ff08532176056fce1534a454003930510984480428face30034d4cc5b1505a4e297bfc0689c836564c7c5ee02440405001ed44cabc6a0e8824eeee93861cccb20b35a60345a110986d0c094e494513e08c59ea31e0b063cc644017d21944a0ca6279bce28cc008cf5982a64743968289c781847368e382762ff2b79a09337ec0bb1353166fdb45299259b69ba238e27772e12a51cf49abc228dec815eddf601d2b55bf55c4d61d28c1a6986cc616054f2b912394ed06100926dc3b34fcd0b06944bbe452fb8c5f22a5a2a68bc9c7a9cd8dd51977fca97a353d3c5e01f9a28a375f8eeb41736a7a645f36a1b38b3db87afd58fae0e5f5ac33ee0454d15
+9205c8247f5976b340d72604ca9c7709115d77162c94e850d9485809495bc7bd
+Ciphertext: b7a6411cffd2bbe5b4851c5955e1bce69e90e9d576d14e75f6c65a0da643d3ffdd7b324e2c3d0b0420b2c69c890745d6fa46214a0563a24a11dd4a47d87b38176bb0b92eb3fe70124ad2736383df4120b0669596e975cfc223ef1d3026c8052824d2de72d19ff3d25831eda4bf6a8ecb2cb96decc24c0327fcde07256ccb7264d415b4e48edf6a2addf0f375f08a18b440bad874269c28cd598ffd0cf61c5e2a2b8d893ef0856ed14da78d1fb9f041838a974febfe7ef893ba1a3fd8da688f44abe0393fc6460982ae1e4495af878b3372f2fb99cf7cfcad456a8acb1f682bc738124a33b0807b3fa6c0bff42c3c12b9757f0ada1eaeffabec47408a07072926faa47e7aaa7633de5ab1ff92a13c597da423764f2aae5382c018ea43a778777039006ec2dfbe9f48b7a7d9f3c152dacc8261c433ae3b30e004500dc65762634f3e3bb3a7c9772e09f92a57532b9d5daeb02fc314cf0bce0a6c3ed447a8923aa10bc1ad2b910be0b54b630340f30bd45a3ad8d8478815cd8720987b38688f8a0172172b9edc7c4c5edfbbcf705ffbcf138d09647979d0049bba1aa35d7bb08c6a0ac986dea2c9db3a4fc154fcb302d3b5640bc7c83c922bea7fe6fc7fc48b272f488cb74becd5001e5afdb77badc90818d4973871f24fb806874c564c072505985bed64aee1a6d8e331a62e1d3945a0fda0d22f28a07cbd2c174d3c5d6a09bf13bcd82a8cab4a455f70257d0da47da1256cc622651eaf9bd4825001b0452d212261f94ed126c7e3670945f8b0a0041665ffbfca9068d6ee023fbc48669ac878362487697e4275588ed7be653fd1609af09d9b69461c72bbf1245abd85b6dc97aec6824a9b74f9f05ad2e20b6fcab261e15cb85b8dec4afb07aacaa63fd997c87dc82d873267e7b36b1ab3df660c2ac9c9d3e7f8d8bcddb0d04556f061f8f2722968ee078cb4d346601886c2b85453e23289472d796afc8be7d270cba56f3adf59ad2f2742a6991700f5e258f033cdb3b3741f761eac6b26cb604072f2967494831649043d5d79c17d51f4e0f4e29b2e4da92cf840685e699fd1112e4174566181a91d1bda6930eb1b603f1b6a6530168e9e505392c3734914ec4b05d1fbf351a5245630b7277f208e3deaf75e3b3a5b032fb61e5e27bf844f9392bad948f23e0c22616edb7b7be8d4d96cfad4c771eccdbbffbb49500fa9191948fff0010867c9dffeb8d6e5622beac1d2687a7eb39bada8b18fa2f630ec453222692fb22e6dbf3a3e03389237523522670d36e40bf2f9e005de8ff78f787a3f742f37ee8568b5f9d1494ab49839e1a5df18d1e767a925369d02590446886e483821f051a2b7b57031b80ed64dfa9e19506fa21083d2dc024d90f57c226be43aea92bef39c4233f18544ce88b80fd4851113096e7a0ad1534cb8eba0c4b077a03238ba3aa1f15e8eccbccd8ceac5743300e8d913bb9d9bd66ec17b3006069ab951e5d3fff71ba944967e8998bedb6235c05139b901e6a4c7b7735aa004675861265e8ff77fbf02c261dd7fe5c0db6b5b9b7d3bcd593a798c5937ceb1e6b57e65793bcae482294a0ed19dd03a5240aaed946820db1bfdd1860d4d97352e2ade67985381bd2b93707afa850068171bccb14a569358ba95565bf9d76580f9ba40a0e4c033409a6fb0f8bb85344581c020e52f39ed81e54180c5462983e408129598a954192d21dcb8b9924abff3c1e07df4ede455ee680b912e57dc6a9b62e7ae4cdede5dcfff0ec594d03715834ac95f8eaa6e9372d22f416e09bc46c76fd438b79d9d5629a987af1b371cb0cae4a475062054228c8345ab2023b12dc4909e71409a1c5f3fb279f4cc5937399f5fe667e6f2b687134451d1a6e26fc69cba452eee695276148ceb3a77cf04f5c9d9b6ebbebc98eb0942ee2dc3a67b23933ed3d0d86dd25c9304a24ce81652f736dcec148eb175b850e58e85e0125eada79e48238cb0a8c1aaa141880deec9e272013c187d78e3bb66bf4bb42f1cc3f71b1e96aa6bdaa86be2598f679dc6c3ac4162b204272eb163be267f5eeec7342667d7eab6c6e0eda980d54a2a43cce69e239adfd17e4c9982e3dfa25ee548219fee9eef19d422fbeb52ac99e2758144245934430c87348e64e4e12e5a395b9c94243f17258f1595f1e9c8d71800a526a12a0b8fdf29327ceda9b6644a7f8fa998ae47b4e94481899f922bddd4
+Shared Secret B: 355169a83ae27f044928db0805ad7cb08f4adb7d712216925a3002b568a5e8a5
+Shared Secret A: 355169a83ae27f044928db0805ad7cb08f4adb7d712216925a3002b568a5e8a5
+b8a9ea5b6ec5505097790fd829ae1807103737197ff9d78a780632d70ce9a411ca724ea0804980d75ad5d5353fd2dc0556ef0385db1459047a3ac6acecc9de8445a4bf2d9ddd48ecd7ebc932a1e3c278c1c684c8a7dd0100b9d8ad432d8c8b672c33c137e38bbb4f05a34f48cceafecf22d0484d11f05c2077a8b1627ee3a9ae888cd791c79a9696c588f18d548a2f98ecddc37978a602455c856124f38f1a8525ff34ae483a3a593f0cb8df558ab37bf9eecf66fac4bc17ba3221bf2344da0a9886b13c048aa0b9b843659ec5d9cb2b31f37abba48201f53ffd94a90f292794c1fcec6d2d2936b87a33c257c88e829a60ae617c9b38037e05c6dd31670533d2e11d7ca9ed8a1c447e123bdfb77ab3c3ab9e699052ea24e301983010688b366f6a88f3d02c8f1c083f16c01c5c341c8239598a3bdd9cce5ec7e059f44dc2612866c1f1f9e671abadf915aa1de08bda0b4bf98d2ca3517af2d81740e3f5ba997407d6d76d78de0828138daf434ae278646dde772ecae8d16f539f88f9bc4960da304a85150778642a3f73ecb9b51075ba4ac063adb81ab3581da08da33e0ea699a776381fc0a34e1ce5492f8a0b732b967d2a23a2f08c4cc79f5af881a1e4ae36f1d679fb660bd7398e4979cfe1c5a8be268b5a101fe196306f63403472e2fe2292c410329527f71ab264e888ac2cdb3c73351475d166c40ab212522c7f5e466de89451fd2c4ee356a2f74e2cd13e5b9cc36c26575958ac87a341f0a72a35db58d1c4f3aab8b4a22699b2423f6b58fd409c73529c5bb8d5690e62ae66fe78994aa6f3b4b3724ca5d0e3629c47c54a81306377029a8123584b641a7b442a02e89ddcd2bd57f0c38e87b918596cb1cb7d7d9f12af3dba4c1de9020595985f577d56f1642a03dee0b2c6b8be6de35e39067f8b66018480696c6c334371e26ef3503b573becdfc61bbc6de9cc8ee6c9c10d0a1d1f6689bd911461c2b6fe203b4690aa68980145e0ae490d7e38dd594872947ea8e822be531ae29eac8a9e354e90eb7294a2a64e90952792201a5c25c327474541c23c16db7f7df3bbf51e6d82f3cc1ceaf19d5cebcdf649cc05f6782faca5a8a97eef382b2baf2cda8074dcc1d703c006321560ec089566173a863703789e846b21be64fa390958ad1925d993e636c4b1039c554f73ce5c6c307a8a3c3817189ec32fce34253df507db6c86415ea32a0fc705a79e606e0960afd064a0c92fa9a9409cce58a0705b03c1bf18a81b85caf0e93b0b0845e6d72605b920cd3b9915d6b67734c68ba27f53cd6a7954690b9bd3bbb8494d6649060e17fb9775e42a3e2f1233e58b90723744ed1305397f17082128539e28b4be8b582b1130a12cfc0135d4603ca5ff06edc21db7d4b77847dd2234c95468a3d668d4f17ba881fde18608a03e943d8a46effd147c7f181bcda8c86a897ad1154bda591660a1d029c612f137bbfecbe0cb868cb8601cd0fc4ef2563a96241b191c5def6bbbcc3cc62f4926ff5d3c68bddff2bf07c86f23e483083c468f7fbca2ca2c79d5467ad7157d2cb53a6ce9688ed8ee98f320a7db6328cc00a0cf80d5599bb3faeae8a5386a22ea0b68a9b85d2cecfd2417ea8f2a55cb149368faf86913c1484685de88343c7dc0280e962ab925be7c092b52fa26eb1c1ec7bbddf1f52112acbab135c1d97ebc1d4e43881e744eba02acca0ad015e3d52f069555f88811ae22cc48c9b3001855b61c9fa6753b9b410a1b61718a01b39591c9fe0a7d361889ac8052d13ce2036ff6705359e124a0c967c570aea11a339c322bb5f9c0ac448f15c19a1a1225e3df1c0f29ad84e9defe4d30d8e554889f07deff58b764ffd62f5c4a01664416e484694f3ade2d9d65762a8cee69d6cda65f9f6cb50470224434b35ce4664f431acecb93ed4175396640eccf3002c14be5a220315823a6bcde63d0a8aeda06f73c5838c61f1b7312a895ad0210869618ea595cdb8718a0d7ae7ff70eb6ce97c65f498f5cb7fdec16f70ffafc6670630a7c6f303d1c7a80d7f954319185ef880c9517a4fb79ee385927d9c55aa75536f4ebbf8b856a967b06a4facfcb1903924206487d390d4fc407019b82569dfe8ef23be27705ef6ccb978384778646995ad30f5876e5af81c70b868ceab5ef777a485828c49f9ee316f750aa9571fdc3fc6e2740be4badc0c03afc2b58678e7737e7d0a709
+Pseudorandom shared Secret A: 4bd0a9434d177cfc14bf4fd8711302628e7eede6e23b304197c773537bc82eea
+ce1b5adb8825d8a05d95d8f350ff6c931ea7faf9b27a8e7de26947017e4a8010d1bf1980541b31327b5d0d31fada3d863e1ad953a638950a7d3633603666ee90
+Public Key: 81083718a09805d5b55e6c7561ba04e7b3595fc568d5426f15f9c57582883a9988082a7fc48c8757e0000dc23e5a75758c8a44bb2c6c831a8a77a1a27b323c81b3569662c8fb9832630a2e4292b70ac703699626ff140106720bdecb68ddbb9bfadb9450b57b9f435273840c168241285788ab754e17303e481050102284601b7bc4b733db12c8f40626a956a1fad07df3512c699554ec94115be75c377a58376541e2a6764d2a1d18c8caa1ac927566ae4a862ebac3b742907316689c0986b70914afdc1359fb517dfea0987f6687f1c8b97520545a8988662a06c3da478e40445d453c99fba29a5b49281c91a552678d1780ee672b8cc080072446610670ed796031ec636e9ac820317e4f4117d14c27e7794e8c369a423337bcb3afa74c87ccfacbf4a418fa8c65251a5b8b41bd79b5927170793de6a73bac80ef7598d6900c1d3ac72bf1014ed16bc3e63a21508a8d8286e95504c1d913755487c7a270c9e81ac249509b716593bc292632bff7785d35525965a902dcfba52e772b3ae28a1927b94ec3becbb9b66f1aac7d091906864d36b2b4d8d152c0f132ed68a432d48774a29428e28c25d1c71f02886583b93d07a7d45b3982119a54cb459ba2519c4190a7a42e1ce07a58249db024b2c1a64068f2ae6807b228b190d676a99403353de1c252d91d3133c9b31721b28ac7475a300d87737b56c014d969b2c2ca9e6146ea617a2f1367420b1f5f594bb1e1b5704a968db39a79e2950b93868e26c35fc829b80977e4cb51b6a39a65798d290bbe34a5784c53afda6c40348c7b13f088d9ea9ef51c664b776b9d3b3dced39530907df06170435a613d49c0a09b71bd68aba95216ac849be43307163b60780a323216c4c5f60d7af98b6fe048b0b5930b08410dd48a2d611b9575cc867255f737b73ceb7147ec6d6870c06457cbba918c97a25b60180865186279c395f21a408cc11fea9157964aaccb0b716200c0a3fb888e7c77ea68c4e071ac56baa638a30575985022b59d950967ae17801f8a9c2d9b3ddf0427e4524048b8a869470366fac547a81a8b445ebdccc8bcf3148af0b0412208cec20f55c6c65d183e905c4ca81445f2369ef050031ba252f7fc86ae3280900704b4e797caf009d0c4554b543b381467ff879849e4b553d1ad8e281b2128c7656177dd6310d5060004162357e6a8e4f10668cb862a9cc800d974364a1293fb0986a009df388428a376a33bba26d68f1b910219235c27093ca5e906e630c98c40c7487590df397c9b2715b3e7b8e62b49b4906369a66422d08cf2337bf6272fe6316235cb81adc6b462e12376e70c2aa50b5cc25d1b36b37b35b3140bcde1010753a104058aca91869318e4a3130460053274346b9d8d80b09eb5a68d8a919dc312ce41719b343d5850ba5e96a926e5a231fabd164576ae3761aa26becc53250038036858b9b8c023eefa335161744c80b65565703538771a18664e64a5ba234800819609769e38589ed171b4236b56e6227355fbc05c9846f7b1cf901023d557be13a5630fd7a1bddcba1e145af01bb60891068d55b4f4185f2cab5e3b455d61189c73d9b592b40383d386aebca671a20e242ab6efd652d7d6a12ac9938c3c2b88475d91f445e32622d92725e236579de522072375b3d87a5476beeb05066a140612910e783c9a7c24c5dfec92e9e174e6e46e16c87a46a6691ec861c6480dea7647f0b78dc48c7f34a890ec570ee5f864e84b2c622c1732e05845d5021f6c062fa944852609e19b93def02439e4438e8661e1181c4964860ba8aec73062fc50283e16178851c45dbc08ea62a263d6ae49214fc593040ce66ed88a4404a192be50cb547357417b28ba0ba8d58a405b7cb44f1174ec053132d95a979c6806d9820313a644912e681000cee0697738cf7f4cac26e67b88f39829c41b59f63ee2926b060b874fcc0bc86b2afa844453916f5a64168fd776d219087ba6a3ec5097e63aa4a9b45d08e999b6c4978b09463512227d906f3f73ab48fc9f2684b0bc8581f2f23d3a5cae597a7779330cde498e87aa5c8484761e9273527bac0077c91cd44a0d12bc39321f42331a28c5a93447afa3b1a58977042d6270703a22558907ee35b9561694a2d518b2194a1d219778157414729fc6470fb4eaa9b8232883a4394926fae964e5f4bc6c4bbf5d0b274d8ee36f605d6a285bd9e43c3f9bf7
+Secret Key: ecd64f9475909529985e6c140fbcc537f271043b8cfdfc5190892895d056d332cc9f6436fbc523ecf6c8f5a40d7090b2f4308fd9a7b6b34011198523ac4a105fb3800641334467be084a9ba8f668e1775f70bacd74b52f8183713d199343291c044b874c7256334c71b0236a5daa25c6d04896b4450398591b726947556c13f16d46b12dc47084af865b35346f3c9cbead522399a67fcf30aa3545a4b8949d8c0c03d7751395f57ef0ea23f3e0426b10206a3b3be53a662057531b5a009f09cabf1c874ca0785b8931366785b216be0c0baab21b62d51c9633462fe7910de2697ba4ea104ffaa48415a621163fdf906f3d601423402952e58e98361a3d7b01dd25ab75d695b8977117422bdfdb92aa809d26c1ca7d0b26f1e82d9bd49ed3e524ca63ccc2d02e11e399621393bf8871470246b5aa61ed34887221b78f018474ec0cf16405da2c750b7506520907b352670b4772d89c18c785bcdac01799ba3779a60be8a4b090c33677d12220dc9bb1128a38a598205752bd218a76f96edfcc2abd60333e073cd8c4305f64a932d915b2dab1ce57978ee7c394b49df7d600b03691dd86160a0665f9980b4bcb32bf207380490765cc02fa9543e82b48a9445e185bc523868d83261bdbdc0133e27c8e17209c643018904cf65c4459b456bda104e49700d42842e728811bb38cbb2152ba7104bf7cb49e225fe75893bd3a55ca9c2cda7138f2ea4a1a496f357522ffd4a60435a7f2b82fe226c27251178947734f966748a50769ea25c1e04d4fca6317d38b3eec523451304dc270bfca8b93386815f891821a58404ca2be4b2ee5cab2ca5a01c84ab58f399e96fbc9c4481347260009067132a52fd4a309a9748d63d95959e4800138c040456961c016d269603dec7d77b325288b3ff60a5199b93e16b4b3608c67c0d9454ea77c941a6b2c7073fd0209a6295b90f4a3fff23ee025a91791c5692c69f3150cc41632077b775db4121a78c44be8b8e4e0b9fd071403aa23c0985cb83666b621b856845f7517a4a998bcf584996bf524e8bb44b0145be2ea9eb4994b64db9ca9cb41a2d4325e12605d8928e3e50b96fc79dee990f6cc092ed1aac94894aad61cd1f74f2e65b848cac76367c1d8034ee548641c9934ab8b974f43caa25625ec115d67f4453a176f06ecb4ef58b0c328ae938c16fb66c87c72893817286c9ba52e26c922da0b0f100394aac4ede66bfdd3b8a091275d2506f4e8663e0742c66b6dd20320b31157651c872b62bd63d7853fba29a9c50ed2b4162f35b4a38830d79b45dd64908e1b10ed9839bc795fe4d64776e58bc34ac17549bc2cb3751255c1e887b733ea0a3d8c1e1657398f9b404d6c282c983f6247820b442c4589c64e8b6639c86800811541d920ca169bc93762b96bc92b470706d659be3942f9bb958991606b3652025aadadd0be415b36ad62578af68586cc9a8018a77cd858945c513a1242fe575c0d5564c0984fa32889973149816952c457bdf91a107618c279c7031cba1a2bb2787b71b701766fef6988cd797f6be938e9c72f8d34b870e8227c78755c9769d4e04a96e0a06c6b606e7cc5366ac47e4a1cda9278e2e3306fb486fdc97a6fea00e4fa9215f410fd9a5f0348798f0c1a2ca49666730909c02d75ba21d2d7280c86b107f11238f2bfa482ca4841538b1744bb3a2f987716b502850774c50998162720424210411866654b7345b93ab51934bea0fabd01f0996cb9611803c79ae603606c362ae59ea7710cae1c4a323b1c7bd0a5f3d13a7212a620ea91bfd15f682200831165345411175213a098379e889a6d776444ba7eb4807841f774b4fa1083e73ff7322ae41874bd3794ad5735e6e50f05173d3ba1b66ae9a3863322c0f56f4256b66c6b39ff13b8b3815a3552a8312a62a501b2faf228c15bc614a7433071bd65a7959ddb2548a246c30b431e5c21a8180fd4d14cea346ad6b01c974b5b1870675c3c2b30926261f222e76cc43ea4407d854ad037b2392a1a28e570df990ebc626362e1829acba86043516d342ac4043a9fcbc6862b8466b251584b9eb4c512f9d054879166778089ac17c619178bc3bc34c72963ae88626e3320b87b58840b536a851bafd367e1094c1e4c154e7b84a7ec1500b09b707b849cb402136cca7c591d81083718a09805d5b55e6c7561ba04e7b3595fc568d5426f15f9c57582883a9988082a7fc48c8757e0000dc23e5a75758c8a44bb2c6c831a8a77a1a27b323c81b3569662c8fb9832630a2e4292b70ac703699626ff140106720bdecb68ddbb9bfadb9450b57b9f435273840c168241285788ab754e17303e481050102284601b7bc4b733db12c8f40626a956a1fad07df3512c699554ec94115be75c377a58376541e2a6764d2a1d18c8caa1ac927566ae4a862ebac3b742907316689c0986b70914afdc1359fb517dfea0987f6687f1c8b97520545a8988662a06c3da478e40445d453c99fba29a5b49281c91a552678d1780ee672b8cc080072446610670ed796031ec636e9ac820317e4f4117d14c27e7794e8c369a423337bcb3afa74c87ccfacbf4a418fa8c65251a5b8b41bd79b5927170793de6a73bac80ef7598d6900c1d3ac72bf1014ed16bc3e63a21508a8d8286e95504c1d913755487c7a270c9e81ac249509b716593bc292632bff7785d35525965a902dcfba52e772b3ae28a1927b94ec3becbb9b66f1aac7d091906864d36b2b4d8d152c0f132ed68a432d48774a29428e28c25d1c71f02886583b93d07a7d45b3982119a54cb459ba2519c4190a7a42e1ce07a58249db024b2c1a64068f2ae6807b228b190d676a99403353de1c252d91d3133c9b31721b28ac7475a300d87737b56c014d969b2c2ca9e6146ea617a2f1367420b1f5f594bb1e1b5704a968db39a79e2950b93868e26c35fc829b80977e4cb51b6a39a65798d290bbe34a5784c53afda6c40348c7b13f088d9ea9ef51c664b776b9d3b3dced39530907df06170435a613d49c0a09b71bd68aba95216ac849be43307163b60780a323216c4c5f60d7af98b6fe048b0b5930b08410dd48a2d611b9575cc867255f737b73ceb7147ec6d6870c06457cbba918c97a25b60180865186279c395f21a408cc11fea9157964aaccb0b716200c0a3fb888e7c77ea68c4e071ac56baa638a30575985022b59d950967ae17801f8a9c2d9b3ddf0427e4524048b8a869470366fac547a81a8b445ebdccc8bcf3148af0b0412208cec20f55c6c65d183e905c4ca81445f2369ef050031ba252f7fc86ae3280900704b4e797caf009d0c4554b543b381467ff879849e4b553d1ad8e281b2128c7656177dd6310d5060004162357e6a8e4f10668cb862a9cc800d974364a1293fb0986a009df388428a376a33bba26d68f1b910219235c27093ca5e906e630c98c40c7487590df397c9b2715b3e7b8e62b49b4906369a66422d08cf2337bf6272fe6316235cb81adc6b462e12376e70c2aa50b5cc25d1b36b37b35b3140bcde1010753a104058aca91869318e4a3130460053274346b9d8d80b09eb5a68d8a919dc312ce41719b343d5850ba5e96a926e5a231fabd164576ae3761aa26becc53250038036858b9b8c023eefa335161744c80b65565703538771a18664e64a5ba234800819609769e38589ed171b4236b56e6227355fbc05c9846f7b1cf901023d557be13a5630fd7a1bddcba1e145af01bb60891068d55b4f4185f2cab5e3b455d61189c73d9b592b40383d386aebca671a20e242ab6efd652d7d6a12ac9938c3c2b88475d91f445e32622d92725e236579de522072375b3d87a5476beeb05066a140612910e783c9a7c24c5dfec92e9e174e6e46e16c87a46a6691ec861c6480dea7647f0b78dc48c7f34a890ec570ee5f864e84b2c622c1732e05845d5021f6c062fa944852609e19b93def02439e4438e8661e1181c4964860ba8aec73062fc50283e16178851c45dbc08ea62a263d6ae49214fc593040ce66ed88a4404a192be50cb547357417b28ba0ba8d58a405b7cb44f1174ec053132d95a979c6806d9820313a644912e681000cee0697738cf7f4cac26e67b88f39829c41b59f63ee2926b060b874fcc0bc86b2afa844453916f5a64168fd776d219087ba6a3ec5097e63aa4a9b45d08e999b6c4978b09463512227d906f3f73ab48fc9f2684b0bc8581f2f23d3a5cae597a7779330cde498e87aa5c8484761e9273527bac0077c91cd44a0d12bc39321f42331a28c5a93447afa3b1a58977042d6270703a22558907ee35b9561694a2d518b2194a1d219778157414729fc6470fb4eaa9b8232883a4394926fae964e5f4bc6c4bbf5d0b274d8ee36f605d6a285bd9e43c3f9bf7b5ac2d88032f4ad34ef47c1194e46c021becfa5985c8e5626d353ff8f0fbfb4cd1bf1980541b31327b5d0d31fada3d863e1ad953a638950a7d3633603666ee90
+6158c0c574628086f46a93286ad02a565a5fd16e04389fb29fec8a1795b9f7f7
+Ciphertext: 5888291af116fd9f5b33a76f130d94d36d78ca2e75d3d3e32968449587e5a902cc5a63d1c1047cd4bbb1499c9293118fc56704342f4b1cbca7e9d76318dde31e1d0e73ac0d742a16f8df93dca88e5d2db347c96b22e56b1976d5c795bc0cd35f9bc1c12737256766dd6e24f52c12db9390f68f9405589d9b12f1264d1387eaf686f4cac4f5384013452191b573c8b4fd7f48e3cb184fdb9b0f0f06ad5c51088547cdb39e3e95d20c5ccb966bdb69ca5292fc5a28a44a5b89d574a92db91a1f39f1a24e93cd098a5200958b0900fc53ce01fad152db1a0950e2df041b8fae0c721e7315c3de4cc44f85b6937bf13632699df1c4006f0322cf15032211feb1949ce7e26d057905d06962e9feec7663f0e8f7c5c5e8c4aa6d4d2b888f6c54db4268e0fe3f24c72263cdd0f420000e4f23990642ed55b728977ab04758f7c10cbb4e57f7684b10f645cfec838a506b5fd7c7ab859760852a4b8610e084b9a42a524f7110297cff1e36e55f402e3d5513ca9dbb28a3733fc9e751b9883176febaa24e409e58644ee72cbb4df3115d6eb046411ad7bf62b458646708c9d5b15368d462b82f5384c2d1280bb4c1a06ea6ebfcb89612909ab300d30d4eeb452068cb175fa7fd518ed01f785f1d0a004685d1937b10e4ed8eeb1348e33eb3eecc7ef18a3de47edd7cd7f8789ff73d6ae5669ba3a5ce78295baa04baf46d0d91f8c1a2ec60f185698b4c0fb1ac6dbc6c829866def219cc4f6bf846e0d7e21ab25406a1a890f12160e5e5e88fcfe887263bc496ab07ce5c35f2b15c52c078a2795603bcbfd34530851cd7cde60b33aacb69315ae08a880cec66c38bcc4ddda0886ad8e4509476bc781aa6fb00a789cc44e4ab52c1ae86966b088ecb5a236f09c519e1475d707382a976b5d2c493335d19381d38c2e5a67c26a947670843c294ef4957e8b5d5d1c0ed315398c4c0079ce93d7f815de924b36b45c53c7dbd3b02f264ce3cbc234436f4831659a847d5af74dd35621d81e885496132c6d42ee362331bf6e5f5cf2a0d7dd9692e01ab73772c4d59f6696e3849aecb25759fae2241619585456526c5cd73c3718daa2148f244b35bb3fbc5c6d398b325c23708dd8b1df62880e228b7d098f2b3328ef7d3cd41cd7ad3b5f15c607b5a2988134a8732eac9b3011cfdbdbd9f3081258963ff7e994b99b42e887587fe391b098faab94a33f6d184917da692cbecadd5b835758a728bdcacbccfbf21c830871de9e56a89fc906a07321cb2e1c155b7c40729864d8719d5a97c6ea783cc1a03c5e10b2db3cd10dd8f3d70e2522b2569d2ad53cd139068562d5e643c77fc9aada3db2520a8658ce93995feabb7578daec27d8aa02a0aae7c847eca1faf1993657ea1ba28783836a35706e1c6a9b3ca13a72e0c8981c9f6b89e78fd0dda7acf9f9d82cac7a47fe853159d54879a6b5ac77d81c8c8e67b22cb88d156e10e1c459e30139a7359e6fe99ff0a3dec53d1606f8ff5b13dd2455fcfece640b0badeb57e506377ec7e286780c181b51634d3dca094ad2c3856082f0d6fd2e2ca48626a770c99bb138f98acca82b6a8ef66414b7e1dee3587a9d6273d5b0dfd57ab791b8768ca463c1c808a389bf637a0ffc5dd70880fb627aaedcf00d5b9529e9ad098fa75d22a92ce444a9bfb61a922d7952ac01c7616e787b6c8caf0207d33e0b2d5cbe166ae94fa22f141d984d4bfc727cfe2a8115709305ed18cef77e13752d7905991e27359ef8a6f648477360a68c480cbaa9b2c407902d94b479dbba6cbc924cab9846701263ce4a364f0e3e1e6231e43246f9c21475a3c74e1b11e311ee5b47f93835e4164994529f4e89cb11525f34806f468caa7a3fea612845218208aee30fef40f6c6d033fe4f936fccff5bc4069a4f2de3530047e1e2e53c94b2d107d5f5186287eb24c84d51a9f2f074ed8d437e5882199b1083bf87d7636cdff0005a7253af4eb6adc1f0895c46d009642b6ae5ca8fa49860ba2ca6e624126e67b569f246bf2f3bbc67cd93eef8cf33d09c1f1cc05806c62d278c5caa57a9e8f7d64fa31b79834a285aa8cfa87b834d83cfffedf8d033da1cf0da8f71372051bef934197c21620bdfc5c1bbfa6a98baae65b568b4954de5e9f32fd7b0eff05257767d59e63d7aa17b5c7e20a1c8f110b5383d247d7c2b2f9820d7b6b73c38371caa3fdd71790b2405c05dabb47bf
+Shared Secret B: 0909e22323953281ad3ba83592c8c787fec10f4ef5c030b7a3f7a8e3b188163a
+Shared Secret A: 0909e22323953281ad3ba83592c8c787fec10f4ef5c030b7a3f7a8e3b188163a
+8363000e2f07e3327a37f0dce4dda03a62469e2ec92e8f37785a5c678cb3db08d5220d4e630d2054f877708219077d21c7dac76c32011b17d6f520a317097050d6f5f347587f47de0dc0215ef52d9f3cfb6c709d738dcfc4610ea0f91230d5f0fbf97f7f79b559c61ca4a65894e1284ac2d5a72dde67eac0e00137df447e2e526f9ded5f31f27717065b6bf25d868efb6ca1370ca73b92879a2d302682d89794a1d378f5130267e02332eeb9794d7bf26b581e3443d5edbd1c0b3a9a7fd384fb50d539cdcca5bbeb09bf7d06331e7163a9f740aa8dda350bf1dccc81ab742a097346947aa8e83059e8098e6eea168df51e966b0b039a2b6d399dc877db261a9cc2ec5261edd9cb23ee39990ab936420b257dbdeb7bfa119bb85c9c1240dfd68b0c108353cc57af30edfb42b151e1e14870654a62e01ad7af79f62cdf19fbed0a9cd46295241675d2027f064266844421f0aa2ef65a7ad678f15f4fff91a4796e4ef3c0798d4aaffad85513e4db45db9ac7d96d4c1b6761a25be68d9176661eb8835649184422c8dccd99da978b31b34d5945ffc9019cf400dd9ae07e502f2ea21befd6ee219b75b90380a3314988298157e5f1599a9b0f0b9d8c5355be8ca6f44c25c5c6f0a55404b1ff245ded598bc03295b0ca84e9f06b007c5685a527154ebc2d402fa4cc6b960210c2ce29ed179efe194b68cc3cfa2a52d89c1cdf388c5ddfea03903ce544fc6c74aeb24dfa59af5d6c79b5236a303382ab7fccc76cfd5ba75b36e64a5dd88aa73402600ec2bdc3fae19fc2cc2412c3fe2d135392eaf217538266e84cc7e919f0faa7f2a814b0c7840f650e6dbe6bb96f24105f0aac943e86b45e8d9ee8d2f4f974cf973a3183a8d87073a50ab9671aaee2b923dbf3acb4aafab4620058020c859964c3eeac26836e5cb621f097c8a5c9bcf0bfd55b503b4ab5a5d8e13796cffa8a6b69ccdd009cad65d526fde75b8117de1a138c76dd018d8256645323fe10a70891e9af983fcc77d4384c797c00fe8951ba34a4303dee260665c94b493e93da82809cd0bd1e3abe30f0dd4672dd3b11ed16bc8a4d08a9799b618c070a48dc8e631503a10d17d80ab406f6a58d679e34a1aab75ed75f6f0eb18c08f41846836a3d31f7a8f1e6f31b4184b7b259ada3231f2b7ef17ac2eb6fa715c2a029ef95ce5123660ae695e976a7ead00ec950ee75013ce1d5980dbdb9ae6735c023fd160bba8bf42101213a85b709211ee826dbbf46b2089e951f8cd7870fa2c307a07795d842626db77d296c6e04cafc4b24b5e2179cc96c350077437bef7d4b43f2d7d042edd6f9e633acdc74a4dd9f83801515a83eba1c007fd6dc3a82244957d2bda0374892f2adaa3ba6ac27f10150c8b44c275bea085ed4d3513461654e9dcb7e8b274727a3a532c41dd92b20ee702422e7efc4105d60d6b3199f95387eac5c567c54e4cb043ba13ac9c078b4c96a5c3eb971fdbfa786585d4668de90261828ed040feb00e7fa76b12a0f9737e292026c5c1d23f391a34d768b3a3addaac4e504336423f8f62769b289e306479f0bd024d713e5d88a5d0c0c6e44eb4048413a5236e5f0619a93e11f141c1d5ee3f998f67362174d3ba714111fe57d8a1b7d5f82fadb2d6f3e72adb9b5e366778d8d378b98a531d986122072ab8df21c0859b099594f6304265b520a14efabad9c423acf74e398375f4bbfc23cb90bd1e21ba5a431412d3f3a531fe2d4505dc4e825d1d09df341dea0a13d0b7ed7d580d980a21851fa2fb24aa878e5b699b4d0108035e7e39634fdf5edb0634b559b60c5e50b0188611514858d943db57e274557858d1a7ce6e7ad03822a96ae163b79ca533fe4d7d09012cc44c42c3d5edd6409582a49e289ddda01f539328b15e4ac2ddc1bc403db2bcf71cd285e0d45ec63a60cb958fc6aa0f15a1b0001d37a13a32ea64d4e1e8bee74fe4b05ab8e11b7d3256162954b6bb1da36507b511e38e0e87cd404c55c9e5d8c6dd625c32a2872b62079986f30c1d4695434f2e0a008a21a0664eeffa7e743a785cb327c88d2bab96740b2ff2bae69642c746a5b2fe2fe27e5aec73e202e3a006c434da733c903c6551ae4772e6c9bf1038e5560fea780583400a5bf0832cd125fa23c12444bd4be8442e1d7e72e2cfe3973b6be8a3ba73becad041ac3b1e9d2e03feb32cdb398962ec8387d95d74784409054c7
+Pseudorandom shared Secret A: f3ae933089b3f470bbd11b52f2e85c9765bf47d060d6023a53c9f808e21457af
+1b282befe1187748f87371a084661adb55912d6fc5a38d407ca25e730e6bc973ad136694583317fc8677b635e7ec86d60dbde5c343f69c47fdbe1aee8fb16ed4
+Public Key: 9ab0a058018832988911564bc9ebccf6760f7418762ed41242b1958c367f4a7aaf086abebe7538833846673794f61b91e912b48165067ad64f018717cd268fd1a7a61535a199d5bf5bd7b97c51448c411a0ba93cf2158456811f8ad9a8b6a682d2712b2b053dfe283552f7bcd7358af2e70e51e643c022cc6619220994bfa68ba3c5f75acdc32a28871f0ed098fa58c48585b0f73350d94671b19314bd900c66b5abcfd04c1ee9a8672809ece2ababb414a5986f9a1b3b0f5bb0f469ac4284b46f497ea34a4801e830bf2546a23c1402008eb9758ca83731e3e5cd9cb67cd2212ccf915f3b914092022933103adbd92102131a1f43307d849e467c2a9dc4584f5b41a570b87eda69e239c47c0427a931335d848ff86986ff2c306783357566633f31596a2cb1080670a4465c82a55a9fe117887004ede4c3c1a86a2cc2a862f08fe250a7fff1584bb14401f572aeb4040cc3a0f570b7f0c0c1ae2760a31b933b2a35729ba47b73505f323d3ff9544c0c09a666b7ff380b5aa0607ddb4c95d11bd9b24e623621c90970384b68e746714de8ad0ae5cdd20a03bc513d0535ae4ddb8eb111c13d37b81ca0ca82f493d54aca5a6bc10ba01467f52dc71ca7abc1af4d2b9b88e51d1b1061e7469005e46e76829fcc25a10ffca032cc9533416abff2ce787047cbc81ec7010dc31b83fdf27be208c087c277c30351b7970474cb50f2133883f5784139ca45164ba7eb244573a3c353bf0942be5e77cbcc6c3c26fbcb667b902568282e582598924bfc779c14e109a07a52f3704a88011761dbb58962441ba927682a0911caaf3135cae79730df8484b4d7574b7b726e73c75d71289c6093d84baaf1c7826d770700822a81434e5401500c037769c01a36b8beac281a4af385276036f4d370351157cf608779ca5a5652423afa9a41830a75f3996ab0b516f63ac3d55e413a5e69ea48dc005e0e7c159a12cad9374604c385879ab84ad364b0f5a5fe5364b68a474abb2ee782af3ba6c729255d411ab67aa315176a8532a0b79cf9b4d363241c6036f857cf2af125f6d68c5034447e27cd45f67ee638c798176584a38c22e6a572d5cbe02201e3cb4e0ef9b590a916483b038020bb1dd353f1404c5d126d3e812b67444a3636bebe2096df96cda3e519351ba91acb70eb4910c711919928888a819d8137b71b994b84505292ea6b659c4ec1f72aebb80a0f9abbef0a2e94536fde7c373d40c37dc19d53e3070d679e41078f2d05772218528217bf4c0b4d604676e47a05be822c31984e306ac60430a1e4f2c49e822cd221b422290605f5c2de155afa77784aeb447653b961088158ca5e56066ce574aa2b267a2d8931dfcb2a3bcb17dc911531342a115355f315ab9b660b31cc1f1230a33df87828cb69026b5c3b7166e660747fe7c04217573cd77403c42457da67c17c4723c7695385709a646394641ad7f038001c0fd193c7b2b120eab3173783159e6419ede22c88167f851a0969010d2110c0ad406990016a23e37c5d615952d26fc21c9a46400449e4a3b752cd71b5793beca3822690cea681dd92c00d691d7ec86095068454b84fb0ec6f21ac6de18cc182b67c83605149f5368d43ce82a04448428a5bd3b4d8f52ab55865de17045621caca717013322030481f3a1473b0c707bb26581079ce6e0c885cf30b702310da8a855da272345a35233184a79c7396553e22767d5d766116a2a35937c98e7420e5bb89448435c815a9e0d739d929502c81b304774e12f2880b7303433093779681f9b7062fb11ff5e1127c816643b8007818099c6656e3867f9365c9a342bbfd6831982ba516669947a34346c46ec42c2345d47874030fc4631cb7d01d2456ac4d64b9de51a0079b72acdc2de0ec1aa8036dfe57381ebc302d433a16703d5c456d68742c63d42e18972d0a61185be26777a75c579c963a8b41a7b603e7f2a339e9c9e9d213dc234e47121ef0d026c470613ce4afffc30ce1ea969940ccb410460a105042f979f5142cadc260c804530af742a22300296028d808afa37c5a6c874915dcaf74201f0e52609aba4c4970ad1879406e191552a822caa91f24816001e20d0f96753bbb859bf4346c7b6256fa10cdb74c08ac759319924520bea335252ca0bcab077169143c2d008b78121e2c124850f473e329efff8a143c12851aad055323aead8ed47c817a0df7ddc25c
+Secret Key: 827a6f29828bac57a5a0e07755bcb7a4b791cb385163840502c05c177257e26a237bf60b81f36541fb57ebe560fff5becf550761e1c9f1c5bb2858972352ccaf4b9499e1992ae00884aa2f1a127493dc5d5fe9bf8c467098830261e0ce65274cb651527c134029285c0cc89c074742cb9c8cb7716fcee44257d5c9a198aaf2f315334c5040e2a4db6bb55218a29363bb4de44dee4287f16b1fcf335b9a10144e5491d2508e00e0cc24dc556d19091dca736c8b248fc216505879819a665d80a38ed7bf87a46b551898dc8c0077e5a89f565d236cab6a8a324b7aa5e04c9277f9a3f5163ee793bc69e56fb52041725818cd62b6af310c5f0577af0c1e87ca199ac438d1a070fd058fbb67bc90b61e47374b5a01945201319f1b79dd316af64c456d00b56a4b3945ac58ec7238c5b2276a90660b7a845db45a40677486e851b2787f5e4095e5a7cab52b15bed8bf2407079d1b905e7c47f5f63f81261abae12193e250396745b6827ace04728f1799c3811d73d78ae8227a6d2089fc69529d7683a39baa934a661ea22508c090540c2ddf10721246810ea7af13bca741166fde54b8e3e57cd1a5cc952744b020a9a8e72316d2054d5a7fea640b289c40e5ea4bd4e93616d486c0ca639dd46c9071565f5022a8d601aee2685e91a9e349bc2fdc4ada4a593fd494d2e2b89eb528393344a1dba4f02b6ba5c701fac6791048024debb2ee57504f274f8e2628f447ae2ea07506843f448056882b81cf3a5d101c496fe56eaaf0b23aa8cdcea031046907880c2a70a70b58c90375d4515f094672163912f63a7d296e8cb9082e55b22e1503339a22e4685fd032179c2304ded08d329820ef2464eb49435c738fad692f742ac4d8a58d479c24a2da124aea877cc71c083a03d83446eb8327d778579e04ad9cf8813f6167c8681621330b16732d1fd65359a087cee8aedb00a882f17b64a6215e005497d6b15510bebac216e2ac2ba875951713b9c7646f25d6461ae938689cc2da92232bba8ed5d67bb083230003089db658f5156ca6279532711f940311f65b9205861552ba119d993c696c9b4abb1375a47d9b17bd8cf989737825629ba8d7d5a8e82b5e36774f1761a38263374194084ecabb311ac8e9957bb89946aaa629bacccef1133d127a7e07a4804723bbdf25b4baf56beac71199539a0e56096d6350d340448af59c72a5c5bf5008fe744e651a39cbb76736a557af12b499444a61468ef6dac5be566d528267f7a3997f380f33dbcd588591e0017219945c494b8c1a6771820304be20cbec172abb794b43bc4444490c05d0bbb6f26813299d68435404bac2b34172f3310762483747033c30d28709b013fce3b6e60859f2aa4a9f124feda26aea09cbe49194377ac064148b225154adb84f16dc5f215930f8e5c71b89579ec9526782b4bf457e7aaba60c5172aff3a49fc255eae620cce5b60f3479e10b2c275b6c7cac27143223ff0a7f285007fe148c1b20a662c28ed0609b2f70114c444491b9b5278417d271048e7ac32a6063c1400d0df8c5bb409dcf3c1375c3bd297a1967782476dc437501c5d201a40fb5655f444b558b4b74a200bc91284334bfae2b7c02515e3ac8a2a0c1cdc0592a72194681b6390cf89982fc6d6210cad56475d2613f9bb673f2609afc3c0209c28b6d5c33021151ab571736302a8c316f30f80c963228a35a27a37476cb1a98d9a6c030cb056a9b2ee73ab74a9007866ab550e775504b7c74b98abde33675b2b2f4fb57a36c2554f73cc650b2d275375162a6e0e23ab3ac4ee9895bfde2c77b7ca1cf129936c03ea590452e3c703a8a08f41a5866a202e7a35efdf773e7c90c861ca1bad3887210084634adf8d22c38e6bdb7d51d47ca96b74a520668ba23a18e54101d19484801fa5604f635950a3df182adbd69ae16a91e1b221feda94c3ffc400ab32b6f62ca5e424e33ab18fe02b7926b4fb1db559b482c34a923408b0903f8a135552419ac86e7bbcf2aa565d216ce7c689fac530f1979cc5579452e1bc373e90efa2b8976a59575717c024b477554449c9b5c0bc860b9015bb8d5663393af93f48401db1685020ab5db38258830246b17c1bcab6f249d9cabba33c293be397cdbe5c33029c15f4309b8c41f1ac59c2dd9899f7328f2889f75e65d9ab0a058018832988911564bc9ebccf6760f7418762ed41242b1958c367f4a7aaf086abebe7538833846673794f61b91e912b48165067ad64f018717cd268fd1a7a61535a199d5bf5bd7b97c51448c411a0ba93cf2158456811f8ad9a8b6a682d2712b2b053dfe283552f7bcd7358af2e70e51e643c022cc6619220994bfa68ba3c5f75acdc32a28871f0ed098fa58c48585b0f73350d94671b19314bd900c66b5abcfd04c1ee9a8672809ece2ababb414a5986f9a1b3b0f5bb0f469ac4284b46f497ea34a4801e830bf2546a23c1402008eb9758ca83731e3e5cd9cb67cd2212ccf915f3b914092022933103adbd92102131a1f43307d849e467c2a9dc4584f5b41a570b87eda69e239c47c0427a931335d848ff86986ff2c306783357566633f31596a2cb1080670a4465c82a55a9fe117887004ede4c3c1a86a2cc2a862f08fe250a7fff1584bb14401f572aeb4040cc3a0f570b7f0c0c1ae2760a31b933b2a35729ba47b73505f323d3ff9544c0c09a666b7ff380b5aa0607ddb4c95d11bd9b24e623621c90970384b68e746714de8ad0ae5cdd20a03bc513d0535ae4ddb8eb111c13d37b81ca0ca82f493d54aca5a6bc10ba01467f52dc71ca7abc1af4d2b9b88e51d1b1061e7469005e46e76829fcc25a10ffca032cc9533416abff2ce787047cbc81ec7010dc31b83fdf27be208c087c277c30351b7970474cb50f2133883f5784139ca45164ba7eb244573a3c353bf0942be5e77cbcc6c3c26fbcb667b902568282e582598924bfc779c14e109a07a52f3704a88011761dbb58962441ba927682a0911caaf3135cae79730df8484b4d7574b7b726e73c75d71289c6093d84baaf1c7826d770700822a81434e5401500c037769c01a36b8beac281a4af385276036f4d370351157cf608779ca5a5652423afa9a41830a75f3996ab0b516f63ac3d55e413a5e69ea48dc005e0e7c159a12cad9374604c385879ab84ad364b0f5a5fe5364b68a474abb2ee782af3ba6c729255d411ab67aa315176a8532a0b79cf9b4d363241c6036f857cf2af125f6d68c5034447e27cd45f67ee638c798176584a38c22e6a572d5cbe02201e3cb4e0ef9b590a916483b038020bb1dd353f1404c5d126d3e812b67444a3636bebe2096df96cda3e519351ba91acb70eb4910c711919928888a819d8137b71b994b84505292ea6b659c4ec1f72aebb80a0f9abbef0a2e94536fde7c373d40c37dc19d53e3070d679e41078f2d05772218528217bf4c0b4d604676e47a05be822c31984e306ac60430a1e4f2c49e822cd221b422290605f5c2de155afa77784aeb447653b961088158ca5e56066ce574aa2b267a2d8931dfcb2a3bcb17dc911531342a115355f315ab9b660b31cc1f1230a33df87828cb69026b5c3b7166e660747fe7c04217573cd77403c42457da67c17c4723c7695385709a646394641ad7f038001c0fd193c7b2b120eab3173783159e6419ede22c88167f851a0969010d2110c0ad406990016a23e37c5d615952d26fc21c9a46400449e4a3b752cd71b5793beca3822690cea681dd92c00d691d7ec86095068454b84fb0ec6f21ac6de18cc182b67c83605149f5368d43ce82a04448428a5bd3b4d8f52ab55865de17045621caca717013322030481f3a1473b0c707bb26581079ce6e0c885cf30b702310da8a855da272345a35233184a79c7396553e22767d5d766116a2a35937c98e7420e5bb89448435c815a9e0d739d929502c81b304774e12f2880b7303433093779681f9b7062fb11ff5e1127c816643b8007818099c6656e3867f9365c9a342bbfd6831982ba516669947a34346c46ec42c2345d47874030fc4631cb7d01d2456ac4d64b9de51a0079b72acdc2de0ec1aa8036dfe57381ebc302d433a16703d5c456d68742c63d42e18972d0a61185be26777a75c579c963a8b41a7b603e7f2a339e9c9e9d213dc234e47121ef0d026c470613ce4afffc30ce1ea969940ccb410460a105042f979f5142cadc260c804530af742a22300296028d808afa37c5a6c874915dcaf74201f0e52609aba4c4970ad1879406e191552a822caa91f24816001e20d0f96753bbb859bf4346c7b6256fa10cdb74c08ac759319924520bea335252ca0bcab077169143c2d008b78121e2c124850f473e329efff8a143c12851aad055323aead8ed47c817a0df7ddc25c9b2c07cbef9d22a9b065d8c5f4f4e70277b6a72ec92e740866151833dabe41d5ad136694583317fc8677b635e7ec86d60dbde5c343f69c47fdbe1aee8fb16ed4
+ca348f598295b4a7f44c9354dca5ebedc1da55822ab8f83e2db8cc5d83c341a8
+Ciphertext: e900cc8355b043c0ad139a7bdceea2441bd4ec4701ab52b7ccc3bc425fa7a2852bea5b3783a33ccb3fc4bd3660fe915076a26fe4059be4b6c4752dae2192154a4570da0f6bfe47415e1417aa8fb5a2d2cc2dcfe0938a73cc68e0a1d90d7e1a8bb4eac5eea4a651b5beea7fdcfe503b6ead0eda05e8a07adb067016acc036e0f58bd8a5b8debd973e5c4c66d1b5e622462b2ac1db62da3dd59c0008416074bb694a6c09e4f660e03d26285471eff526a7ced347f3200935dc9cd2faabbd900def4e3336784dc93e9c337e40a4b94d4e334d2df2c12d24cf7048560515279251557f4deeff289114bd935dc229ba29d7a22c106677448061e0711216655b52b4b7fc1defea32360b70166512199377b5e902c87885d5a313d66648fe3fe0d319e58145e931d40e66bc60cee6b197b1efebbb645db17748f672efc4f278275d9e3209247cec6e16fa0792bd2dd1d11bf5a24225c894408534c19e42c900673be2f73ee949e65f3d01ccd42d6917b969bdc7dd75076f02d595094d808bdba6b6be9c0fd37693151b69d6cd19a3effc1eee8b41eb7c32135f463612ed717b0b448663c803286549c01afba74fdff0f427b8a2a56544d3b41cdb913638007e11b5aac526a63df322b1040568831dbb40684508e01f4fe0bf35834e6c205568288ed19e5b3af55a8791156c5d7f2e9b163e9ecd2c20aa0c7ba8faf86f553aa0f237395cb8f027acb1034f81f40099517e7610e14bd6b25e7d332f4eb5efefa6e5ef3cadfdaa10772d7f9f4b3055c74f34946062bba8431663e8069b7bb062c63007ce00689b8aaefb43436aa3009daab9f9639f20f0f9e9d353c26ff49f150355438da3f4d985424b927ed94c290cf31bc899009796f47c79534f6bdbd63b55d50dd4a17799bb8da6cc03b2ce57fd47aad1062d11fd95efe8b0f689b8a763d16fb2edc2b8f48a35028b2b3c56817c40c04ca1bc687a2d9126912ee80c61a3a378b34df0ba6e9dae16e435406701546cbfd37063117990bee21af61a3cffa36a961c7f3d50e13db8daec8c5790b50567731d5ffcb55cffb3c57f8870871a97ce6f653abd7bbc8e586aa4410ac9da5acf77f651c78ef96f96d871d442e41109b3dd8e5d0827f243ecb3f8d66e056639c0fe6f09450e8ed063bd6d2b3cbe2da7fc09b71a3b93f3968c1b16a17e712c2ce3a0334f9a595fbc1f9fef89a8df07d08a8a03cb67ec78a78da58a4fcfb972197f1c960a2b6e9ba61673fccc9202ce473908c81d5e6b614fad081f26905b30f70ebdb4bd9792ea5b0d056e88ba389cfc44b2f01f3cc14ceb13692cd40e8e8c0953230f78ae7ca619cb3a3a42a2ca6e2b217a29d3b49e34346760fad30504673f6808aa336c3b151bdbc402851be9742207b60a7604eb24010ded0df4897fe58a6ffa75392be13610da4654113ae09866205e2f20dd8a726d6111f8524cffabebefa0c84012d03ab835faccf50b891823db3fe0104fe125f20647577d5b27dee4f47c837a18a1065baeea3c4ecd5c4fcd7db230503be5d0c8b9b2225e2db42d43c38cc9eda28d73109b78c3b142aff1a87d0e668d79fc227c890b9cbb5e0e55cb404a3fe223a0ecde634969608c34fbef1ee35c912277ad831eec19341fb489388db7f8b65c227858832edaa89977b0ec91b1c5eddb516dd8ff54a4d88db49a92d68d0f585f1fa08eb3ca705d309a9cb39b5615727ca2a6f481c835de711fa5a88606a44360bfe2a6fefcbf5f8161df945fe03871bffd2cb26472ba3fa2d8672cd500e5206cce3a46de3c59cda50e32c1d62a1aee006f23b96ef83bcf2b33036f1dfc2d7c6eb849d9452790c4a416832fd290afa7bd5d7d345f11f9d8af11ee60fd5fdd565cfc66f5fe40a333f8f1e1faf567933cbf362019df7cfe669a12dcf21a78ab19c770eb7f755f3a7abb1f32058fafd5d24a71b83b6467dc9fc14d8d6fb27b4e02dd2dcf5b456fa7e78595ceb17d237c7b1c906f0f449764505ad0c278712beb0019dbc7bcc439e866ebbaf372df22c1e97975eb765a4e3f9d1a5b099fcffa59ce69f722d8a0959fdc10da18d9434baa285aa3ee79114bb2790109b94b4ec75bae3a3c4b7cb99c32e4d678c03c57e3b656858a2e5b58d3da85da7e98bf0148bfc6f3b7088f743e735c52f31b593813c025774baedad7a8217653e2aad283e115a908e4f0991ddfcbc3a9b1f00a0f89aa362e
+Shared Secret B: ccae92c22f9a874ef5701e7072153bd72540a7a6ba1957c41973dc908dce7877
+Shared Secret A: ccae92c22f9a874ef5701e7072153bd72540a7a6ba1957c41973dc908dce7877
+4880ff75a18e25c3dcd9378eeb899f63122f65d8c225144684beed6b88816151ecc0abfef154ff4651f271ad2ddd594a234e644e15ff2121788a46ac745cf4ebd926154d8fbe71c23679cee6f8067a84a8c616212bcae2a23df9730bc7164ceb166aa4ede1e2b6d8bc061880418eb206f17834ec434b23132355784efbed0d3e6822b8eaa50b7df6a909fbabe654bc85aa06009be8c71cc179d5fea6953e155dc983df18379d50e8d24bf93b796cbb11248acfb52f9fa90ba6457f355072a835d4d4e73db7a4fd8cd7db0983aa73cb4c62f7a010c09219c6f55a6e3f426afb23a26688db9b114f9029c8058908490eb7a6bd82ce3993e24ee2ea053be05db1fe98a16117b3f78d9ff59e92db7bccfbef133dcf6e182409cfe4d9a7eb5bfacf3ad3b22ea3bac1a82031859751cb817a1d84af492b93f8bad52b8ad5e26e93c915f71c7c1094c71a08b82472344b3e3572301291ca4fadade3cf10f9ea1ce65b900b9551cd4c83bf00d09fef313a7a2498ba5ec9e150a8f7263330bd10ab9424bc706ff664509bf4a352fdbb2d2790d4a55cf904ced9e156b9798aff0f6e07396d30810f5ae7e7a9fdac9d81234c5e03821a527276cf632ac1f743108217675f9a20c15bd56ba0d4d6a075ef0826ca88d1a5f5ce2aa68301c84ea5fca5569a987b4a61b3741f6062938252f8e9e4771f68c8099e024ee1766a422cc4fb29737602b5b1700b746d1db1e067caeadb59ef06064d72a56a40859c2e383f1cceead099aaa27cf609d025e2ccfef54e154a7bf1a3df8f7a75c0d915cd91a52e2dd5cfbe1d34f158eb07d45f10b309ee309f045af62c6ce87710e005993a8c51d057aa97a69551c0c91ff37e0a8ed4957f87415f29a0c80a4cabab79867a728462c84b1171f736edf727b341bce56ed429691f6489dc95a0c400e9914ad4988543f923e56c1af51a1d4232d58e727fb0f7253e63e37fa9864894926369bb4e296625f1f1949249a2d589a882f3ecb68e5a3961337d1f866ea19d67b385bc48416033e9ba90b818532217fac2ab9335215ccc9ea89c8b4d59d5997699fb8193b5b2364ca1c76e447590302daa2d699698e361caf019e637c01a0b08ad9499f62e41d2a97175520f16bf80da1b29d3b3b25a55f2fe2843053c2f4e7020c3d00aedbaf140f5cf24bc16a00c92c58f77bf26997a21b97ecbcc37c97e1416cb78da4a05cab11403f2c08726bc5bea1464873b145f4e0304b43ae3e93f280507cf4e1824a3dcdce209bd7176e60aabbf012848092d2eb52f9da8223ce6802498416f587370b7baf4f3930190c56ebd2b6d5b30851cd9bf5bf9edcd00cf4f3bb78f45b6e6dbf9e9e72e5f74e2ffeaef90286b486718806d54b41d0f918cdb19efb2a500e04d415b7836c590307850a4b607f906bfaee89f7a07f729948d489d0461530cf531c46020c8e1058e8d19e7cccf6e862d7595ff95c64516236d4853e9f8af6082318dac5f4ccf18946549e5ff717ffc84a12c94d1931e916f68288614912a0ac560840fc64e5d2faf80200a0c074eedfe961c44e0ee78193e898b7e05c2a660775aae8207053f726cca20aef157fa3a5c6c413c1b976901a9281dc29a6de84dc623664d7eff3e2d3922983f3b0363499a7a62f4f803808f7194c7d339bd7ba7d229914597751f32add5209198bbaf3fd4534f4536ca4fdbcd6450f2352c500cc4059a9c36dc6b6df7696c9f82e6697cff03344fc976879f10640a1096e228f7ff8fd6cdb36e8712bd9be8b9713d6aa0ff93a20fc700e80c0975d0be83e29a2d3bf02bdd27a070121b4becdcd01714d17d98efbbf0c72d04dacd0b32fec37a2f3c4cabc73aee17254ab03ef32e23993b9fbb6fd88c4de958d7a8ab3dd6d7c5f0b92cde98b5acc2060915a2b07fd59b2d72449c832f174f3fa5012c6be666246399e935fbec920b599b4f5868b15d936a11341345dcb50d813be50e82e5a2b868ad115002715bbd7cca2e45d131c7fbb1cbfd97a741701bdd2d6fe70018d655a7c24e9f9926c44e7d38057e650a808314c7c404300d63e77d02a255f4d53c2634e3b81c8607271322b0fb07a2917fc4b1827cc465e22f55743d750c0d063b81886faffa1269c758688b8904e3059f177ce50d35fcf0dccbe9c8ca2889b500cdf2f9ec35a2481402270d233b86468ad8713dae3f4ba7b9c781c026bedd2befe4635b0eb9fc
+Pseudorandom shared Secret A: cc6a9366efae82eb8bec3cf065acd453d2bd9228fab68ed750c63137d94a7f7d
+e68b85716493b88bdba339ccb2a3d9d3fe7ad7f4d3555b9f0dddad2f2daeb185ed73f288f9ec1043b8ecbdd458b5c7afeced103ad84dd41e611ab603dfa9a09c
+Public Key: e5672b8f46187b42b93748c7e361371c32a2b3a1b06f597396e4abbd95b9dda20d6db894dd123cecc79160d630b0683f8f2c1381f05921923bd0292caa08bdde785f1293cebdda8b72e9c492a11699c1486533a2da2213779717a7d2c9ef477ea58c8193312e2df095939c42fb004b1df75b26665e6bd692ba1499e87417ee6bc85c7914dc902d42386a83607ed5849ea828b4e87458d77b7bab211ff3a01a0d408f8989bc1beb06fdb694fd33ace248163ab82c52531131b432e76b8188447071f3801b12121b1b33116312a28c507f8b2c38aa8c63991ca01359675130b91120e3f15fc8fbabccf878d6285b34818f7795453eba91cfe970d10b19ee822f1006a8fe7b7bc8b6167cc79fb6e54864267ce41bccb7e64b1222077f7080cfd112d478a26aba0aa3c41693c5a074503e7bbb168ad81246f01a2fb80ee6032275c4ce4bf66eb1078254c248a267ae5f598870a32507f1ac64856755ab3b79b683ac6422413405bfc77af4bc6c0250c97ef69049812673d562f34c602f633ce463c7d8e061236c42f629155c506a101b82fab4852b9b492b1b025a2b80b2b52614cb3be93a470e078c66919a055018e49c1a6cc0bd0b9467ccf381757c08dde65332f2c5da819ef329af4db550c428cdf3153384483ec80bcdcaab1467c1543ee50d519b94c8621879bc92834372fe7bc41819cb4c929602ac1a58429bfd49b6cfd4611a37bc012310b65a5ba8f13039a71494370b8fc16448110749f18b63ca4209522366c5b3d6dbae88a20eb3f4bfb0d86b050492a5744c5a88c7dd392512ec2aeeeb0df4b49701485a8b16378314560b85614b11177868006e8c28b9a891a6db93d620863c8205fcb81dd70a7314c1c60e75754f17595d8aad9e9c9132cbc019a0538a48c2d1400656b4ae0b3687b2d63f8eeb5b83a580cc513921ba669f3602c7d4bbe2f5a9e264b86624c852744ae1239183d39471c58bdda5c2b7a906a76c1ae7b6cb2733c3ca3b04c38544b44bc653a0977222500a402d819564a85b4925831cd2a7963b13af916b683a966021ab44d8f37600c37f70a716da21bec7652ea8551c9f617a523180def3206935cd74a462b5f6a1870a3e9607286174af5a75a425874d9fc709c481209e04c80bbb6756fc0beb874d4622575a267782b41a465a677be62d16e15400287647809eb29423309b0e72f59d6d462d1b203748948eafd98ec1c2921f7700f4e1735e168a865c4f7c09788d4bc0ce17222019906aa6c0b609c05884b98c612896824bc944983484cd3a947658b5cab3285a38b63588323f137658f1c36e97c293d98902cf233c6b05c238c014d1142eb20a18a9a90f2579836f81ac300020cd050b7ae836ef4021b6a9ce1d89b897ea801c4b3f5f8b2f41656b5d1875ad07c200100d2c35ab58b7c86d307afd93b7568523171b231f2676d8143b15129c2d457b8ae8c39a04888892c3c599b179432cfdac6d5a774c056363edd0b0afc2b97c74377488221cb1023eb331deda9c3da06b77c11098005ab94294d4e10431c4c14d17be6341804687b68cd423560a4f42e118c95758cd652d23b3915a92638b597682e6b045d23da07c45b6b88cd6b15e8197cfd2e7c37a65251df02d629167bfc751ff3b1f8c22a0aaa60bfdc114d0971e9f3b8a96744d52b0a83a6ba668350ab67c6cf4a807c9c5299d97a1e7532c45210d8755633802a9b52ac5298b9a02ec52597772741a443ee1a6e26cbb04ba7bc4c07154ac13840892035cabcbacb63c3327db88991af2ab5a7bb1590c1eb62627975a45b312146b8ca871067ee9c985e92494f981ade9977afc0c7bc3d9a3eb7750d993459fa381eb2445a687c8aaa2901d91a5f5567964f709cd742178869152450ae46257ed7a6c1c73962ba705f1073c5925ad0a52b43d55c7c395bb9bca4e94200486cb2605938775707917588baa9b8a4e79aaac1c1868037e24570850c17ab3d2c887b063f73abf7f3a8f95d52d5ba95419c82d9f888ef3b480f6890ec7e8437b7a912d037cc4f33408e231d3501bdbbbc8d5fa3a9b06a4618215b42ab18d8a2861633894a50cde29c7faa0a6d9e8827f20874a2ac0d0d44a5b3798da15a3ae57bfd720168de48bcdf06d536c98cf8a7061524cf1b16cd9e86a2ea248d6868d9cca347d9f774f4a74dbb0e6a5d8876f461d4a6ffe2420014e1ec09448afed73f168f8
+Secret Key: 600c7d2e5362fe76ac8c64a3e109ae3a8c8e5fc8a2d64a90fe57b510964432c682ef025275e8b63531adf76170e571a837711e72324bb331a9f3f49acc0b77f13ab3b4769812154b1722baf1988f861b71316c11ca1638383491bafc88a9999e679a16f5d92d136a3a3f49b25f31a23e18c0e50a49763cc726d6929378c21f2b485683351db1276d7788f8c0553296a8f1e841683834906a4b1a625989375cdc19b473fa7a66acadef26394883550a8cadb4a57b9ba88ca008404b6a446ee30acc088b2f42a1cd3a30b616c530c1c0cfdcbcb3dc6907397579056f2902491d5b5ffb9393e41b9972023d82d49f4fa6c9719267c5925fbac84646044c0c20a4edeb80a8a18f19294d25f205f7e0a8f9124e15d0962105cefb6c764695b6696420060650a69571b04a86462aafa9c5c312dc8976627ce435abe37758745a5eea7651aa6ba682ba85246611d3858a51ac7afcc52f228b3000011bf5ac5effa0c694800afcd415286b178c237efefb1a1c9c20b3a76369c180a553418dc82ad8d3293bb3788823b63e4b20306531fc616e181bb4709a9d56d4c8ec14b204513b8d7a81f3611ca596315e05554185bc594746f817b5a519ac899342cb387399e28427d758a27058f23579a809472686b590093a1ee61d96ca6c505056ceb2197304bed67392bb4bbaa130830705ae2e5b73f8004914c041ce778862f8a42c907dbc766ea96457cabbc64ba7356de06edf79435fc534e978a88201c14b82b2399490f3d15a8e0a9f9a3a27c9a7715dbc96aed6910fa94fbcbaae4215096ec059b2580a62bb9b097011f5fb1a3ac8079e20a672780d1ab99ee49574b980bd9412b54c8a3e9fd886af784159e72665010e968747fa8b804e071b1160cf7a938cda684b3ce3809f6559716410a263bff291bdc11c27ed4b5726c39fb93c8b9c2ca755f47bb8cc61ece3b0dd76934d235750f1af5718190643753825b8c20514574238cf663222a5a5982b357062adef410b231b84a6c61ca748080a0a09d88206ad6ab054c614b270b2886303ad715a43832c0920ad58f81dc1406955363279c9be2eab7d96716a441b207087340a02c164461e4f546c415b2052736540f61584c5cc12ac47fa2a54cfa556d5e6582c762e6806408f830d7df619469b4948e420f8c37b56463135c14ec110c651f328ca83cec94160dc5a8b48128927e457efc2007fc2493af77a5b72c983658fb2f934f9fcbad1964122408290c901dbf598de152a1794ce8c9b271e395c44c61f048679779758d984298e5c15b3294ccdf18b97d0b33bb8a09440038b2886b2d11673256a10e16daa13a7a6e17af21741541b04fd0c543a0a9eee989c601a0dd2a5b6ad50963e6aa3e6ba4bc771250bdb105d6ccd5088a6c9984d67f39ef2f202c28320a1a952d132468d6801a23c9ee8a95ce00129ef38b6a57c73093a16e5f85febfbbc74ca696f6151fcaaa52f4761b10980e1a46449588438215017329776f4852a14c77eeb57da6b78c577ca810931591c64793509e10ba3e165ba741b6212d080911b6b441414e2113d307308e3c15a1413886d79940fbb40f21a88fb2bb635b0ad67824ad01a6c0c8c0c5b4c4b7aacc27feb6322ba9c715131ea91a2c7b8c5fe48368fc9686fa140f1e9c3a8517019325e0c6c167288793bc55081c183b524a04ec773991035e4c29dce1413fc08bd04058dbf9cc559d99c2b60996e7368dbd08f5967a2297665e7851864d7b710a32d7285028a330d6d3ac0d82266b73b47359caa29716dceb83330e628620a12d7fccbd0d904b4e6b427c026a1f38b85f17d5278b61b79238239c8fe5344aca90906352a48c14093037c59c56e54825a0fa52ec142901d7531af3ca99ac86933a78b0de9a20781b0b3bb2a91839ebcf432eae94d8fc60884aa931293c6a5701b965a8330a426812abd7ba224e7495c26c76991749bccc5c703566f105abaf80736b5dbb597c486398a9f74b771de883036da7011354757b87465c7abf01939f6617c402cb3bd6a02a59166ffc6a9e5814e6ac8a6d4f7296fa1260a445b0750c71837494fc7ac42394a1c255b87d15d58f80ebb324116f2201bc0cea2676e78d1cb1002c5c2232554d1b3482192520235f5a5ac9bd6aad99b032bd841e739149de149666a3be5672b8f46187b42b93748c7e361371c32a2b3a1b06f597396e4abbd95b9dda20d6db894dd123cecc79160d630b0683f8f2c1381f05921923bd0292caa08bdde785f1293cebdda8b72e9c492a11699c1486533a2da2213779717a7d2c9ef477ea58c8193312e2df095939c42fb004b1df75b26665e6bd692ba1499e87417ee6bc85c7914dc902d42386a83607ed5849ea828b4e87458d77b7bab211ff3a01a0d408f8989bc1beb06fdb694fd33ace248163ab82c52531131b432e76b8188447071f3801b12121b1b33116312a28c507f8b2c38aa8c63991ca01359675130b91120e3f15fc8fbabccf878d6285b34818f7795453eba91cfe970d10b19ee822f1006a8fe7b7bc8b6167cc79fb6e54864267ce41bccb7e64b1222077f7080cfd112d478a26aba0aa3c41693c5a074503e7bbb168ad81246f01a2fb80ee6032275c4ce4bf66eb1078254c248a267ae5f598870a32507f1ac64856755ab3b79b683ac6422413405bfc77af4bc6c0250c97ef69049812673d562f34c602f633ce463c7d8e061236c42f629155c506a101b82fab4852b9b492b1b025a2b80b2b52614cb3be93a470e078c66919a055018e49c1a6cc0bd0b9467ccf381757c08dde65332f2c5da819ef329af4db550c428cdf3153384483ec80bcdcaab1467c1543ee50d519b94c8621879bc92834372fe7bc41819cb4c929602ac1a58429bfd49b6cfd4611a37bc012310b65a5ba8f13039a71494370b8fc16448110749f18b63ca4209522366c5b3d6dbae88a20eb3f4bfb0d86b050492a5744c5a88c7dd392512ec2aeeeb0df4b49701485a8b16378314560b85614b11177868006e8c28b9a891a6db93d620863c8205fcb81dd70a7314c1c60e75754f17595d8aad9e9c9132cbc019a0538a48c2d1400656b4ae0b3687b2d63f8eeb5b83a580cc513921ba669f3602c7d4bbe2f5a9e264b86624c852744ae1239183d39471c58bdda5c2b7a906a76c1ae7b6cb2733c3ca3b04c38544b44bc653a0977222500a402d819564a85b4925831cd2a7963b13af916b683a966021ab44d8f37600c37f70a716da21bec7652ea8551c9f617a523180def3206935cd74a462b5f6a1870a3e9607286174af5a75a425874d9fc709c481209e04c80bbb6756fc0beb874d4622575a267782b41a465a677be62d16e15400287647809eb29423309b0e72f59d6d462d1b203748948eafd98ec1c2921f7700f4e1735e168a865c4f7c09788d4bc0ce17222019906aa6c0b609c05884b98c612896824bc944983484cd3a947658b5cab3285a38b63588323f137658f1c36e97c293d98902cf233c6b05c238c014d1142eb20a18a9a90f2579836f81ac300020cd050b7ae836ef4021b6a9ce1d89b897ea801c4b3f5f8b2f41656b5d1875ad07c200100d2c35ab58b7c86d307afd93b7568523171b231f2676d8143b15129c2d457b8ae8c39a04888892c3c599b179432cfdac6d5a774c056363edd0b0afc2b97c74377488221cb1023eb331deda9c3da06b77c11098005ab94294d4e10431c4c14d17be6341804687b68cd423560a4f42e118c95758cd652d23b3915a92638b597682e6b045d23da07c45b6b88cd6b15e8197cfd2e7c37a65251df02d629167bfc751ff3b1f8c22a0aaa60bfdc114d0971e9f3b8a96744d52b0a83a6ba668350ab67c6cf4a807c9c5299d97a1e7532c45210d8755633802a9b52ac5298b9a02ec52597772741a443ee1a6e26cbb04ba7bc4c07154ac13840892035cabcbacb63c3327db88991af2ab5a7bb1590c1eb62627975a45b312146b8ca871067ee9c985e92494f981ade9977afc0c7bc3d9a3eb7750d993459fa381eb2445a687c8aaa2901d91a5f5567964f709cd742178869152450ae46257ed7a6c1c73962ba705f1073c5925ad0a52b43d55c7c395bb9bca4e94200486cb2605938775707917588baa9b8a4e79aaac1c1868037e24570850c17ab3d2c887b063f73abf7f3a8f95d52d5ba95419c82d9f888ef3b480f6890ec7e8437b7a912d037cc4f33408e231d3501bdbbbc8d5fa3a9b06a4618215b42ab18d8a2861633894a50cde29c7faa0a6d9e8827f20874a2ac0d0d44a5b3798da15a3ae57bfd720168de48bcdf06d536c98cf8a7061524cf1b16cd9e86a2ea248d6868d9cca347d9f774f4a74dbb0e6a5d8876f461d4a6ffe2420014e1ec09448afed73f168f8d35c98ebfaef2b3686a0ac89815a5dd0b09a83d129580c11ecb914f7fdd153cbed73f288f9ec1043b8ecbdd458b5c7afeced103ad84dd41e611ab603dfa9a09c
+977e37983bb79f92e665428fdb8c7022739fdefd55cd456bfeba4a0ec1314051
+Ciphertext: 9c07e3f8d2ae92befa9eb3e618955c2a7e2d9a280581cbd329929cdf50bb6a1b4ef15fa0ce3478af03d56db665fe646f587ba1bbf35bca67c3a08d5f533cc7bd823a4905e8646ce92db47bb797bb6d5913a6d71a0d879c2d4efce6f3386be498bbc00d7b6c0f77041e8eb6e6b45a7acd80e91e554a855e6be0bc8c327aa5530fc1e45254a3689cd935b1934e3644593fce7270bb83f24e15cf80c90ad7ad49f23bdf2f9fcd87568922dbbad1240a0749fab2788ce62741fad03d390e3eb81bcb8d041e1c178126f7585b684ecc70b86d5d1d5249ec4c28d1fa689cb28188eec795c42866ea4b54e773e1ad377b2656332eaeb2301963997093c75e1d93edbb6f013dea6229d653694dd4e4ff27df9bc5c2a23431f7670238fb7877e096723f087059bc0e3475dabb98d1492873327f1aa634b4a47ed195ac226b83c2b189eea82c8aef0167c2dc8610747fc0e98fa62f45f45b61c750fed53d8f4288a486e4267eccbe9761a1fe593f1438b81582f9a086dd96a947b8ed6c2bd90bfe4a4e44dc0f6b7bc2dc706c5f09d8a151b70a8ee29032cd643c0c337c41e9a34809b9b32be1ba57b05ff436bba2c49668b881c52fad50743519ee34a5c59db029290068ec52647cb3b6ed032c6977cff6a5426a3f6232e959697adfad35519501be1db712ec507756d0200f79acd8900fdca4515d4137abcdd6831071a173f44945dca2ff5e6b6398e1be84d846e1558fd29438ff69a1ba1516a525f2833866353dcb44a9fc8c50dda50e717785f65ead0d5eeb6a85983dc303269dff9e6425de0aa3be149b33d5bc20dfeb36d5f84b3a39b25d17b22e8c7679f36eed2a0d85644a96be3dde6279bd0c4ba247cba007bf732f397683a1d74ed687d5e30fe02252ba2f58b26fb6bdc1ebfdd588c280fd46da6c7f130ecca355df8acabca82efe053e548d1c7b52f259994e0be4417a513600637c0f46394eee0c80935d10d498cacd0529d08d3b746b0727bf4d6e6a43267d9127066e8c0e14594162e95433110a76894cd060bfce2c841066c768f29bcf719afc642b73d49c95f80de8c61d5fa7267e109aa61db2b4a5c313af0847432ece2b45a904b23de8c133b697679eb263c8a285901ebc5f73f477469db17417bc6dcc19fe4c8d326d5ea935f0a320b7e26b7f0635fac918a4741e662df7ad140231884373aff33fd74be360d8d18745a9168703d1c9133720bfe9aecfebed773dd7c5fd682a0d31abeda27cbf37c3b76e592cddd3cd25a7a8de07cf52eb001e628b45293fa8b1dde07d7e604427f9d209a630f7ddcc0f27e722b21796e48f221abaf1793a135a7bf6e0647e7f5dedceef6b47ef94164e3561df16df08447ebb5cc46f1799637056c402f63ef80511308e687e483eb57c058672715d40677e2c26c4224118971be2ef9f1ee9a6bf95d858e929d1ce772e759418fcff778e56d7eabda95b4d78a16684faf6624d4c35e0e3543fc7622b8fcf2994c35d07c79c15567d25dd70811b53a133f369763c952f2d3017f8b03d0974ef60cf52f7ce1a76a93774fef17db4ec0ce69df79e9bea6e83e0d36f03cb1195f9c97ec830d25d3b20a6c1e3f07da415e3b10d11cf6d72292cceca6e4b72f5cd378cbd6658bfea1a52c28e159f718625f468e2eff3edfc48aa3a44a031947d63bdbf6d2394fe81c3e9693c4f391e9a5d46d55dc4aab49e28e17aed75b75cc6aa60c47c8594ad5d1a1472c3d0aa0d81e693b20a39c1e8c0ff36d18ce3723e4098321646572305c72854a5374d77e0e2d156a44011c332151ac5d013da43daa2989e6ecc4cca60b0a428419924b548dc21d78dd8b11cf061c92d55d994426764ff8d4c8a96325fbf0e7eec52c9a9ec29a5af3e98978b6a3312162dd4856dd61ad90da84ee9405c4ddf3d9c782f13d8e2f760741b4a1d24ed187658bf9f4fe37c9b898fb53c8cd00b3dae68850c6945e5416972b7a3d0b5b92208e4b0c60688585974ed60b89e332c5fe0fe639d091127281a494217d1ca4f671354b591148268fca144d7ba7ae83ad6a0274f8daebda0f5bf4cae7520506a9011c822bd88974e80ebb6f49fb5cbcd92239aaa4819e474744d3321ccf6d728ce86178e2ca1366c715fd335b25330b55f06e5ff21996541bac5e989ba100d8b038f01d8a4908e08f1337545c66997135e52444e2ca6ddc47aeeb7f736c2115951142d424fc9
+Shared Secret B: 36d614d1acf5e5dcf865f5cfd7d824128d50a900a749ab10786b29bf689bab22
+Shared Secret A: 36d614d1acf5e5dcf865f5cfd7d824128d50a900a749ab10786b29bf689bab22
+502a5c1cb848be014b7544dc3c9956033e8490d6a99b59e483a0909c6b35722dd5030464634f86873a86cc6af498c4defab54300e70f11416c8c5ece7c6a666d5d7bf12814ef37a2c5b19866fa4d1816d96edb6bbd3ac2ceaac030a509ffeb7c9ded50e33168d4379efa62ea1c910f8ef50cfe634ef695b32fc8acf5c337f6c190327da23876b7292811571dbbe70d0df28974c8a868556f2de0ee2f6ef9ce3bcd232455ec7348bd109cedf9b601b258c968d8faff8f079cd513f20276e07b0e32f81436fc9308a13ed92f3abca2fa109f8a63ab999de373510d8ef6056a5094182e83432ea57decb2c7b75f68bcc78799c396e2deb24d10fbced0206c58a2129207572b204aa82efb52b587a50f7ca8da8430b10a9e0ad20bbe3ccc15138ac4998c939d043bf223014be90812444be9bf83be3bbd35b029a1bd2005ae8227c567e767aa4b9c2eb70e05d3d8c787ac3118db1a96a94ffd44dbcfb3db04b0b478ac29e23198bb185f84e4bb77fa5646f7b9a03c4d7a03ee27dfcea1b7de2e848183a27e13d728fecc9df95b4d73b162cf0996b75e40b11949124157a5219606da568e0a44461340bb025011dea143d67ee17afb45366c8ca2a0fc1cea23f679e6132b5af823bda854e761becb2efec8257150207a03de711ae501ed5cb5f51309d5c304762cb0c29b5a2f71241e7f8172661bf7833d4f115567fb8e27e3da0202222b1579b2f8085ca8acda9594f08854dfd618e72e591717bc8ae29a4697b58aa844ce86f1b8ba7197d7ef317b6504952800d9a72672bcc3e8fe5700b2e83e040378be615f9f8473289e70214db7b61446247c9eecee601e519c7c86d6e52245e002c9aded5c095992cb9a7d94ac7024461ae345adb77265d7c4b08ca171173c7d50f549c328834dd7a6703eb37e167a849b3a3aeec2945f35c85bcdc14e84de3e6e809d4f25a139c71dd732258b93fdaef1ca66a5822453196669263e1d10520c8412f558a79fec68fa89a8c1f51109808a948669989eb5b288a706a0dc1bec874622967c770b88970723a214cc1e0c1c70ae4e0a83cf9297a0f19f97c2fba6f7aea7b1352fcbf4681340e45e064892b8060f2853ad8f4abf84ef7f2263e6d6662e1060ca1760605f4f29889e2048c86483d9c1ab961b93120468a39c22f760670cba32c1f326a1d47be1bc58d3e2574c851c4f8e2f082e5f9a16cdef572c98afa8ad8d0297e6b8b0585159b5c4c2fc32d5cc47d2a0f50e191ec06d4662ddd0bac5be40f20d2602cce37e7ccadaf2e12395b54c0aafd3b84416164cedd72543f66eaf2640929f3871749b7ae628ca29ac376444bc8d1d31dc14afd7748d2576115cf60a406e1bb44bfbe646d98c743ed837329d3bdd36921cb3456c3590576f707f12b6438e93404eb1c64042f81c40878a9e6f118b0efe719e5926b761aa3c15313027263c5e3317c1436a3fb6459b4c3941878c4321ed759a554751528b25b73805b3e587b85106152378578e3b5921f900025eac7ad66a2e3996f32a0f960fc2776e9c1ee7371b3dfc99970980195f918ce911dc4cb327b132ded6024148cd2ddd0b65d7fb8c2d762d3b8c4cbd22c5e5589cd7b342c066d426e7eaa7a6fe53ad9949fbd2785edbc2200a9129dbdcf39e109c1c750df19cb620a3af48396c8f3dfdbe813c1ee938b0e8d6d9b8157ea1b25360f453fb6add3f6495b38d3b0ee68ef4980a2028a59055cb6ffb7adff0db03ddd75c614c3e4509d45524a58bbecddcc3daeaf4adf75affe1497085f6d26aa2c8495dda5fcbbc3b18c3336feb04e683354e1b790403d63de16b73edc42a212f21420906cac35aa8afbeca09db33f611cb417f2dd676fdc71233d6ba2ce2052f1e53123e87934b573660a309b9617358442f6df5a1cfe964441ca1cba6381ac8b786d899e0bd40ebef43fa120d39848f48ce4aaee630119f5d85a74ee14571c022243471f2914db351964de09bafd3fa79b4b513c77c4cc3a8234319f51f30718aa1b5566a4f01f4757d2d56396e24aa5ad78a679f31b9ee570189f3c8d84af85373f8c79689b10868be6a1f62771c90b867e14327be2d4bcd93d8206d4baec93711e64336b2ec563d316a5f28a90e223ac639019edc3c9642ba68712b7b6e10d47d3931b753eaa87891aaa949ff8f081a647ef51449ef939393cd75bf526634769d8a1bdb67fe756924fa7e8588
+Pseudorandom shared Secret A: 327e191be1ba7db5bdea21bf054df6a6508beb7e2aad647a0a7ddf63151239ca
+f12e5319df6d1f14c11c70036777a047eeda89423fcb189ccc6730f07b517d179ba62bd9c0c78d8a4bcd6e15a75c2f7a169d3037306f4c2755757fa6278c6714
+Public Key: 8fe185df3960eb060da31795d7252fc2a0305ab89c0c674522027e377b058571a5f4bca21d2c1ea90239c9543c7292a69bb512b3017aaee85a59c17e7e9509ac6696b7a9a7be45903754340452bd43d66cdac11fba528c9837947fb77507fb114337cbb4e94344b5433abcb46763bf39f60ce2788bc4705cd895c93916787025be0da26aa12842765433a1b13416bb348892c220627b34ab2af186c0d128bf3bd79812cb88333c6bd3c56f4219714c083257d30ee9d389a3b446099c9055c93b3d6a1fa7133cc7c56b037b16f8d60b2cab26501abf4a622f96c0645173bb8974b70100c5bbb4856e09936f810e85497a299096b222b710eca499038dfa587dbb67c5648c1c1415afd42b97920a325264c71fc623d85918a54a1606a61f72144e332cca7e60686d8528ae179d9c897df570978026ba2459070dea148c0c6068cc7eab225957e4b63a9464389a5f44c59228133592f48b6a42257b6353b430925b17c8273b9ab0011dee29c48a65a430259ff3388183e58c4b8c844c6b50332651dd2270afd90fe852181c0b74dfb89bc8e682283ca6a500882045b2c6079c09a3b4425c2dba533db66ac7c47a88856b1460c1920355118d0180a1818bc2102446887dc5bbcee9bb9f65d2994853756e5068f5a1b2d924a258843174293dd5d8a5af2482221ab378d831986629cfc6cbad57ac270cbb65db8359572193a62ffc48704479c96de084e33a44309c6a720821c4d35194e55f5328a712052da9625676360e0bd6bf78f8c57ccb4b3e0088870870e99648b93a2cbf1c4c03bb50825862ea0180561b729bc217ab848aaaac7b57566bc01a938484030ddc33ac18bb8232334518cacf85a436ab1da84297916069e993141df2a19c8430a3d625d04bab9167b4373595708945d6e743a7e863c56ab6985389ba7c405233460075383811c7a5f0338649a124f51aefa47cd6b43d31064f5a315b09607a56c9c8cf78ad2c85a6c855039d74b656907b2888c9faf8a505ec50162b6d9253b39f5978bcf32a6b30b51b050b34da68ede91a96b2935dc0581c2a96f2c33378c407dd5088afe29298f02cf35a5ef7fa6e728c31dc35558ec3bfe5c8bf6c29c1f7d77c242016c319423837c71260070c48a35bf4cf69930090a76dfaca665f834725166a6fe72320a88615839cde826428506fe9427d58107544d294ca4960368c068e2a0bcf682d0146c93d37c1860a3d36b1397d712a41f97e78750f2225b229147e8e7451a112756fb9c42c5717458946d46b057a3728830ccf53a83e06b34f804264d29957bbbc6b076a94590482efc657035316e17b67f4125a17575273abbc2acb9d2bb53211696872ea5c230006d72a1ea05a52e8e52d37014dbb3c94998cb86044c3c8dc5c94bba86db2c46ad46b65759ef027c1c53a292669c18e4569ae32501dccb4b7f15b6d05cb8cc26db80cc6842b2ac795267a596238d3b315684e65c4b86996911c7a968beacf70f97ab8f0177cd76ba9797614512e371076be38691f324d01d4c9be695536a03318272a90129c844c2894b04509c54ae51309a13b1786865e2b312619a59401a845fd4c96e4bc67c19a654c13802ae8bd28738e62f694d4561ef2dc40257242ea84750d8a2e5b7a6f3ac4bac3f9bead4acd5b373cf4526253cb9da9448376caceaaf25b4003b6d6c972a7dcafd5531431f0800f231f0d03048c668732b6aea0f2051cba2a71c39110f96f43620683822f2016c93b712355851a69a5a1121192d73c4ee72c7a94d14b04e49ead8885258c59f4e80435d61a3fb30691f0247fd778cfa6644df69823350d455b4cc7b15846fc81cd729a07c526d3d54e49b02bc2d2b02062317b4c4787809d3887129a342f9920139685c3783043be129ad3c9beeaeb6ab98871a6271acff7a88b1a5464b8b2de588ec3e848f442bccdb2b089ac6a6b7552515053fc80909c3725541190295b9704586a5bf65280f812f34bb188f47ca9fcab4f944a5958ce770761271a68a4790ab7f21691c043dc2232d07ba773db3ee7675dbe2c6ab78736f1c0390b3c1324a2505afa6ddea95d7ed91545231158ca0a267303a13b8ba406561ff63fa0fbc1c7758532712ac65109e11b89056a1cd6bc252ab7ce03eb670928a24874c54526b59bd06bc9fa7afc13ce704d0d151d5acdd05aa1341dcd6288134af8b50c992c33ddfa9a5d6c36
+Secret Key: f268bea51a282a881e0ae1cf486481a7156fbb533cae55a55a3a37d3084563740575b26732b77bf3330c24a97e1a57b2582b3c929368635703eb667f62533a60c46c6a9a0588e6940e850949c93e2860c85cd97819e7b31ac512a509422d9997b58020611144ce4373f71b8603a4026c253546c2395848410dc6bfe169af22b73819d9828746554df9765d7ba77ad33fcf6470f88695ebb360639ac49a930bb92305aa42671e50a5d556b1e01733981779087834ca99ae07649391510fe5493ed031846231595ff973dc8a150da143db184c969628a0266f119346bb493a2242059356ae93cc0078ca9367d9c615dc76f29717b43b60c8d93aeb28b89f0bb8d4b725e4c33b0ba92baad90f6ad683ae60bb1f8164e7d684664b938e9192815a91e59b807c4277aec559620c278b4049133c2832d254749bc4caf11394e74776126b4737a3bfa262001c640ef27605d250836948f3a137c781b7cf746544819e9de8350cf4bc87187eed1c41ad2b0cc1a09c06836605e68edcb136935c3d5f9b68887946d9590c28bc6148479a889443fe502b89dbb29990c22221207e5666ac343266d545741958af60a755a2bfcbc47347b37c59cb7936e15a96a16bccf4389db60d0b46b290c435fe89b7821529072543d635772fd1c932747f520535ffa5bd4cebc33989347250295fba5e007232cd540afd8aba1da797850ab099732e60d0587659cc2072310917cefa978e72373a7ddbb8ba4c693ec53359058a82e3539dba683b23c5e0a10af31817a2590a0928396c2113f9134c6ac7a461261355cb20ad2b9637a84caa92b5b1002c83313540357368d8be6d6cae3a40a9dd6835a13438328101691b4fd2bc12a607289a456b46170634a48a5625595a4c585259c4cf3b8bb49a2fa4aca530b6c85da02d87654ad290c2ace17241e8252e697ca9b1cb48046e3c500be899887ff94302406863c588212592eb26b152c4b23370256e1a6c3bf43c189bbbc073b64889cd60414f0025171645cd817c377472c63256adebf770b46736c827588e320a9b8a6f88b304cf9a7d7740c29532a7c7d30254d4504b8889969a8abdc3c98cab4e4b7684f834be7e57cf40f73ae86395fd71cdf4057e385211aee805464cba9836730ce8752cca8c627bb39426b63b046ceb595ce34747faf4ca76902bb6f4a2c8f79bccb07df0348c35078247073b30262372c98e7e937894b0a0702643c1870c9a8546c99aa23b850f354022b057ae7c24b0c5585e579958871393e964c22e1a1c49d5469fcca637062de993471b376ade90a577522473692d44005875aab28a6869df3942229267a67454d7a9b79e5220b157c3e8b80d922521d4fbacbe86601ac65b2605c56d403e6a449b13fb63b5516732d9b4309148eb09a8e7432a5290adba7b27cf32c121726a7ae760c1122221423bf9f6c8874683b27a2f29393aada5ccbb59902bcb399c0cbe5190bf78343a76b23b511503e9703824c5a4082a7e685856a50485fc50b8c3573d61eacac999b9250c2a3d0b78912722cba15a103747f991b122f37145357e3cd463806029ba390840052bce2b04e45847924270f2fc268b91b3f58975232acd51d4095aec847dba1cb4964d2415af02ba7c733137332745f379c82479bddeac1a0f0334b59596fc2000d4f3a06ac902a13819a62918271327b5c95f05d7ad05b7c76000551f1a37324898e5caa0c6e7275a05b054d79524db9cfff46fad2ca7479047c4c55e7d858c05d649ecfc2f48193da38b042411356f1c7cd677574bb091f7a5b2a9c15afe864c4fd58accbc5c23d63b5087a70f4647734abee5f47d503c485f7a87add6204ae43b4493819ebb71378989a8865d8f4723c96aa94df6ac925c2f8de84db5848d4341420bcbc42c8c5c61b9a6937824d5105446593b7be06c2ad63b16f87a575a05fdd8406b9469a88479f9d9c17f38c4291278b06a6185d799dd7b26319a15547b206caa086a40be476650927a3c794ca5c17773e71b833db22e189c5e82daa981a98a070a26ddbb1d3aac054179b67ad4a48d4557ac729be264288a63aa42b1a654e38c1a609ccd4254ec094cd9e9ca1706cdc9aaa1e970138023940b9bc24947a8fce15a88bb1f01967cad4caf8f218870c53057c47f0ee77dcb9a3779e33b8fe185df3960eb060da31795d7252fc2a0305ab89c0c674522027e377b058571a5f4bca21d2c1ea90239c9543c7292a69bb512b3017aaee85a59c17e7e9509ac6696b7a9a7be45903754340452bd43d66cdac11fba528c9837947fb77507fb114337cbb4e94344b5433abcb46763bf39f60ce2788bc4705cd895c93916787025be0da26aa12842765433a1b13416bb348892c220627b34ab2af186c0d128bf3bd79812cb88333c6bd3c56f4219714c083257d30ee9d389a3b446099c9055c93b3d6a1fa7133cc7c56b037b16f8d60b2cab26501abf4a622f96c0645173bb8974b70100c5bbb4856e09936f810e85497a299096b222b710eca499038dfa587dbb67c5648c1c1415afd42b97920a325264c71fc623d85918a54a1606a61f72144e332cca7e60686d8528ae179d9c897df570978026ba2459070dea148c0c6068cc7eab225957e4b63a9464389a5f44c59228133592f48b6a42257b6353b430925b17c8273b9ab0011dee29c48a65a430259ff3388183e58c4b8c844c6b50332651dd2270afd90fe852181c0b74dfb89bc8e682283ca6a500882045b2c6079c09a3b4425c2dba533db66ac7c47a88856b1460c1920355118d0180a1818bc2102446887dc5bbcee9bb9f65d2994853756e5068f5a1b2d924a258843174293dd5d8a5af2482221ab378d831986629cfc6cbad57ac270cbb65db8359572193a62ffc48704479c96de084e33a44309c6a720821c4d35194e55f5328a712052da9625676360e0bd6bf78f8c57ccb4b3e0088870870e99648b93a2cbf1c4c03bb50825862ea0180561b729bc217ab848aaaac7b57566bc01a938484030ddc33ac18bb8232334518cacf85a436ab1da84297916069e993141df2a19c8430a3d625d04bab9167b4373595708945d6e743a7e863c56ab6985389ba7c405233460075383811c7a5f0338649a124f51aefa47cd6b43d31064f5a315b09607a56c9c8cf78ad2c85a6c855039d74b656907b2888c9faf8a505ec50162b6d9253b39f5978bcf32a6b30b51b050b34da68ede91a96b2935dc0581c2a96f2c33378c407dd5088afe29298f02cf35a5ef7fa6e728c31dc35558ec3bfe5c8bf6c29c1f7d77c242016c319423837c71260070c48a35bf4cf69930090a76dfaca665f834725166a6fe72320a88615839cde826428506fe9427d58107544d294ca4960368c068e2a0bcf682d0146c93d37c1860a3d36b1397d712a41f97e78750f2225b229147e8e7451a112756fb9c42c5717458946d46b057a3728830ccf53a83e06b34f804264d29957bbbc6b076a94590482efc657035316e17b67f4125a17575273abbc2acb9d2bb53211696872ea5c230006d72a1ea05a52e8e52d37014dbb3c94998cb86044c3c8dc5c94bba86db2c46ad46b65759ef027c1c53a292669c18e4569ae32501dccb4b7f15b6d05cb8cc26db80cc6842b2ac795267a596238d3b315684e65c4b86996911c7a968beacf70f97ab8f0177cd76ba9797614512e371076be38691f324d01d4c9be695536a03318272a90129c844c2894b04509c54ae51309a13b1786865e2b312619a59401a845fd4c96e4bc67c19a654c13802ae8bd28738e62f694d4561ef2dc40257242ea84750d8a2e5b7a6f3ac4bac3f9bead4acd5b373cf4526253cb9da9448376caceaaf25b4003b6d6c972a7dcafd5531431f0800f231f0d03048c668732b6aea0f2051cba2a71c39110f96f43620683822f2016c93b712355851a69a5a1121192d73c4ee72c7a94d14b04e49ead8885258c59f4e80435d61a3fb30691f0247fd778cfa6644df69823350d455b4cc7b15846fc81cd729a07c526d3d54e49b02bc2d2b02062317b4c4787809d3887129a342f9920139685c3783043be129ad3c9beeaeb6ab98871a6271acff7a88b1a5464b8b2de588ec3e848f442bccdb2b089ac6a6b7552515053fc80909c3725541190295b9704586a5bf65280f812f34bb188f47ca9fcab4f944a5958ce770761271a68a4790ab7f21691c043dc2232d07ba773db3ee7675dbe2c6ab78736f1c0390b3c1324a2505afa6ddea95d7ed91545231158ca0a267303a13b8ba406561ff63fa0fbc1c7758532712ac65109e11b89056a1cd6bc252ab7ce03eb670928a24874c54526b59bd06bc9fa7afc13ce704d0d151d5acdd05aa1341dcd6288134af8b50c992c33ddfa9a5d6c36ab3582ca1704681a14e81e0e8bc5e987305f213ce9ad758f01911b9ff9eb55c49ba62bd9c0c78d8a4bcd6e15a75c2f7a169d3037306f4c2755757fa6278c6714
+d73c3d8a1d505455ce7579d520eaf06158042646cbec8202ab5bdf5d841841b5
+Ciphertext: eb1ca7cd621c6f82c73840cb2cdaa231b8e7651813c849e89fe5acaa34a3e1f8fe218e44d17d670ee900cabf680f5b3cac8166a806a34d1b3b149d3af52a1c3500039d43719e0f45e980576297477f3bb692c9f81c97680971cdbaacb6f2b55fd3f8c4e3da6aca5b6cf9d3441c0f9b691ba2923d7405dc27c4fd1cb1fac5260f577d45ecb1e6f6ab6cdfe1684d75b8892d22c1e79c029cb15414362149939cc4c4d4ce920d7d70076b7a728822dd08a0b47e4020303749898d8bb76466a904d5769ba13a7b66a572af5894f8ab2ebedf5fde4337b8d4ca6b190f949bf3d45cbe4c4ccf20abaa9bb7b4a8e919cbff867c9bf8909f3b0e611089aa5406721815ca92328c9b245cf04be78fb77304a12508760957fc805f2cb974d55738d5fb9367a4565f3fe8009c267746e78241e997d8dd89af9730b46a587e1766c940153ca1d7930e597c93bc9033992564de1dbf045477e4ae582fbcf0bbf339153808346a8fc2bbacfe5614b4bc7e810b8cf3960dbcbc21fde1e35fb3afbe5ba64b564c5219d3db6714e72b7d04266faefa7a12b081dc66a03eab639a66bbbacad4a3f58bbfc44c083c8905b18d2ca129f06f8faee9d80208cdf775fbcac522a018dbb8d348e4e6a415599f8f218605d6335d24d016d4de68e62ce57b8a16f7f5a662a83e65eb55d82bbe47b9c0d1df57b1b179afb7980b2f9bf6d5d6697c398e26b6b2373b2369e5f954f8884899bc767086a165ec0527996c5be99ea885c1cb916413b983cac847424eac6db15b63cba6cd7f78a51cc531b054b582ab524040d33b0427a7b2b2434f5bd954cf43d96cbcf455fbcc0cea480268309a6496973c715a36eb91fa07dd6d58cafb093d726c8d79f621b703915f3994a277c663d5f0b0cd8b7362963bda8effd8a0e3920059502278b78f5e3ee91afc1d95385edbd6d128e1ebbbd9dc4d7b13f5492311fa5e2c5c018d611bccd7147d2ccaf79a4a9abc42b4b0fefe9c3d0986cf53080783f3befc7e37fa1a75c4528dd1569b29e76bd08f18fa9eb3be589d4ea911c8c2ffdd5f5b4ea13f79d4a2b76382cc265848d82809966f103482799c6f091f002931e68ddfd824766a01a21b32e0df4c39c1689d1014a98c88ca7b43dba43232389958fb0ba3eb31e49b999e3466d288e7e8948668e2800b24b2e3eca0f6c4f464e1c7b90dc1c331e6c810fea4390e0b203863ecb60c59bc8cbbfa1da69b8b36bed9c129a96ec44f048ca814cd7314247eb57510ab128024f0d83ba71ecb62c357bee07613aae55de5b30056ed6bd3b945e159342529b38bb6d7823abf52cefc46a813d298952af75ae81ca4439107ff748b9df21c970d8cca675b3cde052f585ca3b1fb01ca3f2093c5d178ecd6fea6058f70d65cc5b4e61afac725257c2befd6745c977a30da653c6d6092dbaaf884af84dd291db040265a9d12e90e827c1a3a85a9da2ccb9d5ab036ec413c72261868cbec6901cb7af6af0649cbb844ff7b72026a5038751387a062dd350306451c41de95f93083b731bf4a596505967c575567075d2a5ec2a465f4161652f4b5bc5365fef5b3779b8103ea347b2f44c98f1198fca7e19696703f4ce67f907dec785e03a9a880615148b697f518544881de5084a868773a54623acbe384df61db956686b8662fd1b955870de7f7df34ded1b56df6eccfd3e99ef4bf9c1ee42824e1679f1eb360487b62a872586e4f7bf20cb3ab9a438bb47f24e7919537fa2c4cb933df2e664b21a2a2d1b6c9916202eee8cd4e243a2360d0ae5650d92e0fe894303f6921ced4e3cc1d4627a074a32cd112129b24339f34533d44ce627cd4be73c7fd48b3650354a7f7c494f8d7afc3ab8217762eb3e4cff00739d3b5f05291e27e3b4a309002444c706dc3eee8883b7d30441b8b23c0b7c2412966a654e8117ae87a489129e05e6342840767cba93a0e3ad94430eb38e0e451c3ca08f8fb984a23d2824e15975052191cc3d23ac5981f7ddd245f83ec6a9a337e428f1d6daa62056418f22784c043ee045da36a2595c1f9b4274280e298cbf95286f9b7153042559f2f57e4e0ab058994cb94a840598a03995ab71c64d9ad3b1f01052bf500159ace19ad71ac0f60a20aeae44aef9380439fc88415cdc6def84cca7ed03531ed14af8ac0af6b0dc83806dfb6632168fe476e12021d4ded45e0c23ebeec79655677dcbf2a93d4771e
+Shared Secret B: dfa553a7870b46cba65cc6d814a2181898d08c914d68de826c35a3b011d680f9
+Shared Secret A: dfa553a7870b46cba65cc6d814a2181898d08c914d68de826c35a3b011d680f9
+3846d274aa363f870eb7a4dfac96105f0a78de8125d02b9d19da4af0e241cb16b0bf7177b01b1c9df1f03a99484e76c5a9de7186803ea94fe62fc5f3ef44fd921793f421a9815e83eb1be69f39baac7c532c0e0a474192b4797406ebb3cead68a4118ff721f955123ec1d678ff16dc2d8b830fd1cdcd5a7535c7e251456104562faedf73fab4351c1762fffa0383acc3de16f05243ca9e8f69caf965df8d9b17265abdc2e5de6d96555f512df47ce2292af9e733d22be3cc9e63b741640ce04e66e62d2f2ec279c9b81901103ba187d0def47f38927c47c7799edfc22a4e82c18690a304b9191816a33ce5d09a5016d9fc2d4259415d848cf60f36679a5afcda68307ce2084f8ac3238412afbcf5098d21ae0ef3533d7c338a7de5778684ef66f3174a8165e4e541649ddbb53a9bdf264e7ea9772dc1505640045fcaf9d5d2b712c762ae62f373c0bb884bb5061c53b07d920041a6e193bc57236e16e5de9b31695c318d2ca1cf5c0a029d19da195d5b0df80408b1303642288ead67276f1d8fc8b874f238368b326ec9bcb5b06718256790a6ac97be8e357385eb3925716d816999eef26a4f402d56424648b98e8c7ceea74b7748688f47e4f0587ebbe51b8fc619a15c2b25a90e9ca2328a6ec35588af25fc85489d05544077b970242824cd301b6324f4aa270131969d5536c366f8e911af3a918409f06ee0b2bf5a854032a5a076423dc10c5d57a4163edd73efd9e674c58a3a07b0c583abf365ec7b76cafee223fe7a401cabd3148905a17f33785d7466d6ab3f319bd4112102cbdc959ec08a995c984c41fe4893b9f6e502ceb2ccd6dfa60b53ce3259acd7ccf00c33331588a71308f6e382cf3a009448cb8996bca82143c1088efd1a778daa69355db9d9f289e452a74628b5f6b0423e63d3a287f32e1fcc8cbbdd7abfd743d57468681faab25c813ee4977cfa6b709d5767a9ba28c5d2c67055ad1eca108dd82d651adca12657863f52c14a949947e013b90adac75cc8284af858628ff2ce82f9550fade743e5b3eb7cf583b698dd214a77647284ae4b3b65f4725284f44d9ea4da0c3e9188264f31efe59799603ec42ae73a73f690955c53e9b679a9a71a40e932155cbf7d437ef6dd00a61cad48cc83c2cd57e4eeda4785024d599c43ae18ec6745a59524f899563ed64ba7fa7206d0d7b7fda5fb353a4246efe64482fb7db8260ae17d19da4e61ecb2f66add12de61e09ea07a144a2b9968845a3944ff6f7db054e8899abc9cedaa25e1e36a42a166aa846d141ffb482c40076e44f897d732a17489981d34b1130c97c5d09381c78d625899ebcee6bd8963d2f577c1f593dbf33d4eb97158a44cafa19ab60db608ba2f6222f6b33795930185abd709b783cd6e8bfeeabeb37cca9f59afb665d8caeab6698627223aaf9bb13f3d0930f38b5ffeb8e11ad12adfcc6d8f803ecb208c497524ed88a181d72db37b290b81fe82e82e675ef4957c3085f6fa568b0e0defd5fa8f2ccb74a9ce4def95f43744ba1e27cacc199b5518e745b89864652e1f247d5b2cafca6963008025a760b80e1557659bb376a003502536e2c2bb06dd5feef8e6f833c0569ef9791a15fac0f7ad4b4666b5a92e34ee992b65c99aa4b0b85445b58cbd8d8f486eca6ca3bbb30a046ac966fe9fbb4ccfe208be84f5e62d10ab15bb07089bad9bb6e441131e6307986d730e93d2f9bab04f4bdfb40c6cbc4167cc546cede9238efe2b863b90a9a26a3fa88e748ee86e4af25238e0a06764f63b986c464103f3617d9aaf869850955883cade46bd03ce00c6a8c89b75e074f7e69443538e5ea97866013c49cd9836b477816f095a4a98fb3faa6e438a9dd87504984c8f57d37bd9833e7a334a82bedc9ebae9eae723d7720a2b46f0da206af1493ad0f034f45f9fed592f1fd35cb6a7a4008261b839e5c8192d1f4a3decc0e7137c34d26bda5a9a0c6bbfff9a10193fca1d3176d7a3604a2c8d35c93ee32344d479368787ca7e0335835b0e58c0be9f3cf27160d66453bc5cc77f5b1ac433790f52fca64500c1e9b6f8bac859a6f43f03435b31aeaec63d1ccea6c6b34c5191cfbd19b70014ff41f3ba91ab3e19d4243eb4abfcf13b30974c89796f6da10c960c1539efc8d77ec68ba2a32445458a86188c511c26aa6c98e2bf25e2e2503ce2fda8addfa5700e737ed5b754246cc85e04013c20
+Pseudorandom shared Secret A: 42d8b786e3dcac79957f7ef4509b9f85fd0b9eafe6c8d57b8bbcd7691d7ff5db
+1a2d31fb5defc6201b477109071a0cd10aa2cccd0d97e7503106187c2e4da0a715a02fc1d8ca42479c65a9cdb4194831da191e5ad66c23125991ca115054ea77
+Public Key: 8eb888473c279f632978b1a42486220f290ba9c771cbf38884bc9c474c3016a469e091044d3c7423ca2a0cc98eabe391bb714a1d0ca19ae7497786a024278f3e73cae5875414644cfb109080c711de0b82446a8d4a1cb85565a923a152e8022dd41014f8c193dc0599e7a12c34a385f4337b136743b74b525317bb27f68a5914501ee14717a81e5a7c80efca597ec3a5a436a09877c374b3017bc5151c97bd2c359cf892839442bcb916b5d5e50a00073007a80f67071d0a9c04e7e223d07a406066c40a421bb62c84d251a690f2289923c2abcb243b32ad6fe0ab1ec36ec36a2828256be0a194e01b06b18aba71610d83b6099be66884c016512213531038dab8a76852b38b9bcae8294011258f43854a0dd6aecfc096d14a193d5220dfa0200cf099b6ba40728c723b1821c091bc79b27ffa52a271a84e40d1a95b0451b14724cc516f29bbca36f987862a3aee1c0c5086a44a5a8d1628ad305bb9e7fa49d9b24cfbb4813d53c47887498bf66c30fbb7692b4ddc4c93f17090a6f8b228338cdf7184511422098543e3355798272ea097125205d0ad10995f715ff34630ce1bab6f602f610c1fa5e4975331868bf243fb5a465be7121a0462bcea1be420521f447117227bbe730f56baadd7233c6d11aeba408c8cdccb63149b64b8aedd415a90667de4d01c17c60d1460ad5a5c0094a6cbeec2b70c4437e0f6c751a0a750cab895d9449f30a57d1781151583e0b1755c259b9264142ed3650e2286f010a083f34e346a4ba8208f2224bd71f9b64a69b3e217b2788b3ce7b82acd04694e502713664bdc79418b080712648aa0e758cd25951e00250d9661d0dcc002912fe712420696b08af1499ad2a731419d4e046cf4b575865860218a242405b932516fd302a8e2634eada52330445ab8452d765269318293f4c66a1479b87d99a48b9774b28773c069add594697686a9f12135ff18223677728e781a4fd41f02db50ae35028c8a25b57218465608ffba8349c077d6a1a43a3b6a5f3b3a5a7892db18889af795ad99c29bf2a836c07f32176f2ae4ba06ea9739580dd3ea94cd906c6d5bb1b30c0fd52b2146aa3e6130274f454c203b952c845c2775224b964c5f316dedd80345e5b625c9302e6843e1b970121c0de51b4711596dd9672141da7e122b4798b472649a5b9d6b99b81578689866a25b56632001e275081da73e667046f606a44f67907d4c86c523b36e900899621e0a6765aa97992a6b8324d997a1a22a1c90c93dfaad3168039261c0d0dc99fea5401b19778ac76ed61cbac1f003918b10b245adde672a6734436feb736d20ca14b0a803071539863cd4b17adcf6bb2ffc9bcc476f9c9586b4f92f74d3cf1cf824fe901e3de28d007222d2db7ac3fb25519236367b87b521c953251a174554f6a70bd0794e59797588c09f9de39545998be0397ea13136fee483f7f23b39d96c88f592775944790abcc3134dd8849577b56a1e8122a40385895cb3beda68a6b527d5d1afddb566f061712e33c87d067ad7b4c1f893421ec21dfc401937ebb597f6bcee6a0f5b0c8eca198626a569143224dc300f7ed460d9b2ccefaa1646a4012337aff27653e0f93a3fdb30fce801ebc074c53b319e8aaf6d646bfe92c9b4f53c3f4aa178b34555acc5f496aeeffb027f3cb85e21abeaeb1073c90c0ee868cd9c72400397881797838b077c126e9c1578a3b317bacba1313bc2817b474457792ff0c0816a8ed9b26ef6eb664ebc69ea3778631b78d73a73642544aaf83dd4c426ead52e559a964cc01ca36964bd660ac7dc3a641c0679331945bc07b08a5055c773401ac353681d3cb8ae50c226d1944134fa0df0651a65849c0c728a49852c981b1a74fc41e1c12ee76a3387c2848f7a971134b6126b437aeb4789d1317f645ddf1b18d244b8d27b956df86a5c38184d182e139c68facb1bade71952f47fe94290b5a34143733ce86cabc32358ef7b285581bde9890a5240ad323ab040e7ab08404a8fc8bc53369633eab009649e3aeb2101d73fff3c76fb6a2ae66c086c380f41835f63e6bd51198bf958ca46a247bc255f775ca512cc919ed1c760801f374923bfc809c9051dce7a4a7786bd18357fc8c653566326f5d8c7506318b335844de8c8ad0cc8927796878ab5c8c7ca11aaba9f6e470ad29fdce3eeaebd3abf19769dbd7a10913c3a185111c0610c7fd7024c
+Secret Key: 02925074fbca15057ca9cb3d7aba0563ca3bd4169f729982bf7c22d109399b2b86cb609c2185ba1d4893f5ea62d3b6217e5a2752e349b8e7b1e5c290f9069e1d93abd69baece168a85687af2c9a15ef4a0ee2947c5c00213f4931da5ae88174bca03ae55b27c768b7ec1d595d2ac007a3a5b8b5bc808f83825da04da4c6aa8f2bda6032019585e53f77a612c300cda9844999d93a49890369ba8864f78025624d7187a915758ab10a69a712bf81b8a343362209f2ad48b43805ed8a343ae16727e9248dd0241af5319b3c286cb673d78066b9e188470a2596e43b558867a09f08d7576b8ac05c61ad143cf6c8b2399cb35417cb7631347ca6352a83295cca8ea5ca439a218e2c25a48f1ae05a21e037a1784a9791d860933b46f3980b1113cb346ca92f6d497e93c9829200cc067412596470ca85c51b96f6aa37e263cc937f7417e70cf70375dbe57abd19027be0a80b53164cf786e41c81920e3ad2064c29dc026a302b93138adf91004c2231318962b4c30715a31b1e3fc52148a64ef29c92fe757c35c24bd4ac57557080ba5b68af688b4a75dbd60a6f9b4b6a8e42ebf7a65e0dcb359033d51b78071c89971f43f09dc8bdcc8630aa9bcffa15233256096215b349c2ba9c5374fba7bfc2a3ffa07059ca39c5f904eeacc3109c62975254622270608838d03622b45181b6be52357272989631c4c492b8bb44ec96983ce79bfc7c87804716e45da314d9343fc3388336318686176ac9452d1b1c6b06107fdb58e11ab0c28b75739d4ad615870dc990281b137486281f9c0308c7c7ce8fc5b046a8ddb671fb307bbf7803f882841e70acae78728bab11b0dd84478586f0ea870e5f0961a32a670f767d6d06ade731e888551398558a5bb62316b450695560e4b03663a730af92955ac76e7da5a01da3dd3ea7249cccdf679758bc45f56b9209940ad319ccadb1317aa47343995ca7ab926b2667c9625193ff66541498ac21a886fd71165a777fd468325e6bfeaa787441b00a3c51aef53b7291c0df9341425bc4cc4c59ee56a6ff38b9190d880988b9d77c06d88a7b29d82b5e602a9fc8a680f6b2cb2b350b1b6613a5536b16c347f3737fb918d099998cab3bd9ef45e94017c9e754b5ca62b31ea70b9fb13a12cc078e44d4394249727a09c78961fda133dd345c179a1ffb01c737ccc6e402a4f5ccfa64bb426248a8d71b3a9d0990bd7b861039726f6c17eb4abd3b697ec93854644cf11a57cf6575dc2a487b5b892fc463659791f991b0b2ab243e6a5080d31698489be10769cf3e82e7f5b6aa3eb1190a3780380122c884762c70c479a1037d4017486648c0c9c37ac7b4c076419f95f6e878e3155058c2a9006626279e946dd7a9c3feabb01116d498182557357e3f775bfc49c4093b41005988fd6371c1726f1a6ab9a82ca8cd50753658849a42b886800dfbca88305c7cc449aa5d4c2da45211e803cf1d9ae5c92c99f7169dbf607a8a11d991696fb836dd998ccef872c7c3a8238b9107c865a91cab1bc0b666239bb64a47d3d9810b84bcb80b7054dc16ce3e9239bdc088bd77c7934627ea9c13b1840cab56284f65f4ca4af4e470e0bec6220572911c36e757498e4720a12c087166b5d41fc7f8bc521c126c102a41d39d1042f8199b79a4a2e62acfa3b9f2d288685763c035cbb89d46c651b18c3a5912fea921baaaa5e20052516ae17229b1e16710b163cc122b3be5b35dbd32ebba6092fa9052dc9b70f6718acf8a72e538887ab287ec4cb27321b12182353613b81724a01200060cb87edea50463502b30c1ebde7879afa9d2ff26a2b45a4bc56a5c222b7516c863c5cb26c32755d2905a44543d0333f999322ce6cc6fe6a6f15e2ccc010be67c7804cd5720c579e3c2c3c76a4ac853c55ae08290d936ae706739d90acf3bb4911149de03051ceb912d332b2e08304e0426bc5e99fd8ba76d4655ab9a8c95c2b032b204a49cc9d263a5606f55c8931745f1435eed8987b39433ca3bc332a057c21ad5869c0cd407ffaa876e52aa1c8da94e6ea3aba02bdab83691f36c07012418aa3b427868881035e96684cc94a54938767899cb7b19cb85356cfdad8305b3c30b2f87306276262c45d766a70684c8d9ca1766911cb757a74f9e47a1943be1edc95f2e6334ca485b6851b8eb888473c279f632978b1a42486220f290ba9c771cbf38884bc9c474c3016a469e091044d3c7423ca2a0cc98eabe391bb714a1d0ca19ae7497786a024278f3e73cae5875414644cfb109080c711de0b82446a8d4a1cb85565a923a152e8022dd41014f8c193dc0599e7a12c34a385f4337b136743b74b525317bb27f68a5914501ee14717a81e5a7c80efca597ec3a5a436a09877c374b3017bc5151c97bd2c359cf892839442bcb916b5d5e50a00073007a80f67071d0a9c04e7e223d07a406066c40a421bb62c84d251a690f2289923c2abcb243b32ad6fe0ab1ec36ec36a2828256be0a194e01b06b18aba71610d83b6099be66884c016512213531038dab8a76852b38b9bcae8294011258f43854a0dd6aecfc096d14a193d5220dfa0200cf099b6ba40728c723b1821c091bc79b27ffa52a271a84e40d1a95b0451b14724cc516f29bbca36f987862a3aee1c0c5086a44a5a8d1628ad305bb9e7fa49d9b24cfbb4813d53c47887498bf66c30fbb7692b4ddc4c93f17090a6f8b228338cdf7184511422098543e3355798272ea097125205d0ad10995f715ff34630ce1bab6f602f610c1fa5e4975331868bf243fb5a465be7121a0462bcea1be420521f447117227bbe730f56baadd7233c6d11aeba408c8cdccb63149b64b8aedd415a90667de4d01c17c60d1460ad5a5c0094a6cbeec2b70c4437e0f6c751a0a750cab895d9449f30a57d1781151583e0b1755c259b9264142ed3650e2286f010a083f34e346a4ba8208f2224bd71f9b64a69b3e217b2788b3ce7b82acd04694e502713664bdc79418b080712648aa0e758cd25951e00250d9661d0dcc002912fe712420696b08af1499ad2a731419d4e046cf4b575865860218a242405b932516fd302a8e2634eada52330445ab8452d765269318293f4c66a1479b87d99a48b9774b28773c069add594697686a9f12135ff18223677728e781a4fd41f02db50ae35028c8a25b57218465608ffba8349c077d6a1a43a3b6a5f3b3a5a7892db18889af795ad99c29bf2a836c07f32176f2ae4ba06ea9739580dd3ea94cd906c6d5bb1b30c0fd52b2146aa3e6130274f454c203b952c845c2775224b964c5f316dedd80345e5b625c9302e6843e1b970121c0de51b4711596dd9672141da7e122b4798b472649a5b9d6b99b81578689866a25b56632001e275081da73e667046f606a44f67907d4c86c523b36e900899621e0a6765aa97992a6b8324d997a1a22a1c90c93dfaad3168039261c0d0dc99fea5401b19778ac76ed61cbac1f003918b10b245adde672a6734436feb736d20ca14b0a803071539863cd4b17adcf6bb2ffc9bcc476f9c9586b4f92f74d3cf1cf824fe901e3de28d007222d2db7ac3fb25519236367b87b521c953251a174554f6a70bd0794e59797588c09f9de39545998be0397ea13136fee483f7f23b39d96c88f592775944790abcc3134dd8849577b56a1e8122a40385895cb3beda68a6b527d5d1afddb566f061712e33c87d067ad7b4c1f893421ec21dfc401937ebb597f6bcee6a0f5b0c8eca198626a569143224dc300f7ed460d9b2ccefaa1646a4012337aff27653e0f93a3fdb30fce801ebc074c53b319e8aaf6d646bfe92c9b4f53c3f4aa178b34555acc5f496aeeffb027f3cb85e21abeaeb1073c90c0ee868cd9c72400397881797838b077c126e9c1578a3b317bacba1313bc2817b474457792ff0c0816a8ed9b26ef6eb664ebc69ea3778631b78d73a73642544aaf83dd4c426ead52e559a964cc01ca36964bd660ac7dc3a641c0679331945bc07b08a5055c773401ac353681d3cb8ae50c226d1944134fa0df0651a65849c0c728a49852c981b1a74fc41e1c12ee76a3387c2848f7a971134b6126b437aeb4789d1317f645ddf1b18d244b8d27b956df86a5c38184d182e139c68facb1bade71952f47fe94290b5a34143733ce86cabc32358ef7b285581bde9890a5240ad323ab040e7ab08404a8fc8bc53369633eab009649e3aeb2101d73fff3c76fb6a2ae66c086c380f41835f63e6bd51198bf958ca46a247bc255f775ca512cc919ed1c760801f374923bfc809c9051dce7a4a7786bd18357fc8c653566326f5d8c7506318b335844de8c8ad0cc8927796878ab5c8c7ca11aaba9f6e470ad29fdce3eeaebd3abf19769dbd7a10913c3a185111c0610c7fd7024ce5830e5927aa630eb599f3e73ae58ef8bd42f3551158a1aec568a084166fecd315a02fc1d8ca42479c65a9cdb4194831da191e5ad66c23125991ca115054ea77
+3f903f15643d833c6d67796881782993ef2cdf4ca74596ece604dff505c40127
+Ciphertext: da28531de2ad31d0659e26ce3058a40176deefd1a711950b52067d7e7dc8fa9745b66423167369008ae15f77cd3c74437f944f83f34a21b350af79170a4a8560894a34cae4cd002ba47cb3267e3f2abe26c5289087f808461fcf9bf60fb03ec5e9f5091f21b035fae67b84525f30c0dbb2f442322e60951bca43dc0292f2fe555a7318aa45ebb36b270dbf8fe84daf0b649fa87c312cf9ff87c67f39bd9d9fd23f0a127f58ceee4de2b79a54099812b38e476bf6ab56180f0c0e3311a6f2d00d5d6b1ceeefd074ab443279d72b40dee619b839fec8ba918a0f8d78928386cb70bda9713c6bff1142f32d5128efc5b2e55854392e1154c1062be67dfe2d31c564dd2e3f495a61eb19d0fd3aff628b7b72a0593559fc80bb93927f17378ba566673d91827cb237986ed6d4d5a1b8d06978778afd87c39fe91158bde9a585dd06de45e997f75a8c50339e6cbaf1383beb9afda764c53a895dd9bef38d0923d2c14e57c0374d2d684d4fe6c0706401d32a3c2bc7cdbb2fc1f462dfe7e38873d0eb7bd6266196221acd2ef72e726b2a7a8ba0445ded13cc231cb4fd7195fe946302fc5b0f47805bcae1945c45b3594d0c05bc7f2164da9f3058a822e1921dfdcdf1ecaa5d6a74efccb2b8195403a8a31e1fb3d2cd6c08c2b3cf39c0aae73117027fe02f24f84e4c45118f95f301b0757a6c70f6bdfcf7dcc3099a61a8bcad140c9293e907a5fbdec16509a056e6b3854556489fd9446de46741ff6af8412dbc3ed8c9770c5d0aedd7fa38080fc8fa7d27122524c65ba01aa974c246de065101e73e775a09c3a4a862521c1fe810122cd921257a726a5a96ffb035760da89e980c3382cab3f108f5c6cfd34ef25f20e6dcad88041d08fa68dfea16d24ebf0f98afc83921fa982b1e830f954e00a385e446c9d4640880bd38e4d78519939a00cbde0ea11bb88d2d69f119ddc0ef63eecdd47169da0726d6023c978558de18d05d03b87f6d4ae5ed133bd92921aad8318dc9c615fc0b6332c6c5f13402fce20a51c5d66233df2699c08eebff34c039c95bc3d4b085042e7236ab2bcbfd11bba2ba5ac2f0c929ef27be4bbe364fda22aef9575fa3f64b683c026c56a40dffcdcd787392a76b6b77a639832db48f9ea0e38acb584e6d3bd4d58defc69b4627aba575e685dcee5ec2a4c441bd0f61dbe6e343e83d5c367ad818f273070fbbfb404bbdf67588bbdb5d0471804eb8126779de8890a39eb231cb7dd588afe94b9f4f8f75f1d10fdf1828e538d37cc6722b7583f219ff51742afd20c7c0dc92330c66ef0e2cb4ea2da0d1689a0aac3284173126c9ad2a0a0b7060b0d499a271177d6e1dfe8580aac6758a78f65e07361561c9a0fea6fee7b9887e3b6b87e8029964531db6593cc97da3d7716fd187e40ec93e4818317b2c4855e413ad9b069a288bc2bdca95bdd1d5105616c526eedca1baefffba2e1cc6639781d3eb6ecec6f694342d11b0bf85f8bb5f50c648f4005f8bfcc014f922395c2f60cc4d1af1328e790762be626d3dc06b97d82e886e6252bbbb0f395020f4002bcab3e4f72f89e28f40238ad5453dc7d42adaf3aae22a961ddaf1315fcf61ea9b0b6e6a58aa6f30c225ff795816265fa7890835c9c5d5c5729d702df85712bce216171c0b043844b97d85c94d5cb956ccdc1f427130aafc2272f4540db4614900e0f0e361433ff0e84412744c16eab96bc92b0776ada0be4094e847f5af15b4c042e55248d83437165f3d4987b2b969fd924413671385211444b3b403cfeea8b623139f577974cff4cea482521f6cfc6c373dbb3807060e8a12605ba1f7b0a467b6ccdfff31ae6d0f51095d267ae995598942c07376dda9c3a31eb6fc2a62ac98445003654248ebeb3425b911ffbe985129b1e4cf58eed4d751503ee66a1404b63ee34809304d7c9951c67bfb4b8e7c177f6da7ad16fb014194b53b878f4ac4b6bc5c420985900feb07bf82098ef4a1efe9e3fefd240b072d02a4d9b125fd30915ecda9bbb256b807aaa35dd383905da69d4ee22d1d43bfb9eef110850cb80630fbbfc3f1d31e5f991cef6c9635cc87d5b0170c240988645736a929599f5eb547f8e88f9b6ad0019aa62d42666b3a6d74be338afb7f413e906e148688275a6ab4723caac45be8598659a65dce6e20b5ff54fa5c33cdb47b454ae889e7af38947e7565be3c0e632157fc7b4b962a0f
+Shared Secret B: 97b4298a32ad4f3f142327ac515ce8d887a14fec07ca7af4aff5fb7aad00b9f7
+Shared Secret A: 97b4298a32ad4f3f142327ac515ce8d887a14fec07ca7af4aff5fb7aad00b9f7
+641c2a7dd2ae775878a8170d2820df685207cb32e7863a1795f622bfd9ae94ec696ed6c76bbe343df2aa79bc656940b1957d4aa80cbda7a075d8df293fc33f3ab8ff6a29ef940f7677a2688b4c7f2f3de60f856077ccc7fd6404f195b70badb1a1948336a618d1317e1ce65b6f794b8371e4d7be35ee137d4243aadb7fb414be648ca1bb19c4cba1ec560b3f49cc11acfacfb5ee45d898f26dee7043e23399a7f9f4ad78afa1e594769554acb2878e6bf78ae4a0fecdb95b726cc552ac769fcf4b81767a9fd27b4786ba8e3c2266d9f3c3e6ac953ee65a7bec4cf8019b18a5358400417c567fe5df133a69ee84023fa7f82099f8a7623316ef1141a4fdcf4f9d423f7050f695d156534b78abb6084ba341bfbcc9fcf917d2b5b74a49f8d741c0a0b24b29ab598eb37e023c6e08451148e52f2737538a0c78fb92fb3fa6dc8eb2d4f9d541fc6548e50346873d02603e2c00115209bf02984ec916fd2621fb1ff413568852c912e9e98ca560e3a0475b7f48d449fb3fdc8a5eef716f280b0ab1ae0ecd4e8146820cb855cede071bdff71d815750d87aef5e94fed265a0a846628c106dab46d21ddcdc9ab53feb004c2d08701f0d59ae1454c9517b51db15a1c1458d77947de4c3293623a0f6706f0e4b9169f43587e7d916f555cef600794839a523fdfabaa885fda2e90f216d4d8dde59e73a7f6c8836b6a72970c0f34467ee9b11254b438e6f6c95f761991666685ad13e8dee9a4489305055962712810995017aa68f8e09fb0533777090992b839ce679ec77d2138a35478cff722d1cfdcb1f950192af9df3f4faa61cf8e0a077915edfadbab083f060b35b72039aa688892a2afae91cadc8ebafad278a1ccbdffab85268d424339e68b2a8f5c5f5b317f8cc7345a953edd9ec67ef289ea398762381c1ecd39bc0916b6e77de85740d3cb63bba937b13e8e3b9b29005dcaf228fcd340f13822894f96948ba178ccd28ec74011a8ac242068d2c55d73e54a0ef5aed1bad58f0838abd17338f580f83c88eee2b1be9d88a50685b38429769c68c7db0950d8ae1ed2fdcc7b424e49dbea29cb9210bfcad9659079f280b4633abbb2f6981aac76c939e953a0d687a5c49b0c88cbdc6ebb873301ccc0ac55dad26655ff07a5fa2cdc2d6bb702d84cf78cd3253b85094ea4a34df8a7b3bbb91c1b8425466d6d8276ee5fd12970bca992781a641f88d8d7a8f65506cfa5c2af18d934070111b8330334c7c356ca10518e34469fc0e5b20b90f84072fa8b0404bf2f9dd400e9cc742c71a8bc3ee03af7ad0cce8d8c39e2a1c4fc4c8df46a6b96ef97c90fd7f6888ec4134403a18cdc5f194b5ce9c4d9e54991773bca86a0f50c5f0acb67a17dbd8c8f4b3306a3d7b553020a0616b3f8bd51c535782fd736341967fdd59c59afc17e39a78d88662b7f75c2ae00444acc26d0ac2fb9f21f7e9f94d708874418b78abed389be2afb9737f50de71d559755dc70a1eba4d112ed2f8f4d81b714fe7dfc47707a7ba77d1e785c0de60bef1090b8788b447e9391791ce7a03a3877a9d9b29ffc8394cf4307a6e7e7ab54713d615e1bcbbbb204c7cc8da6e7fd2ca2baa26d852e9a74d59eb3ae35b09abc807b0515ccee60cb4332fde2595c72a4a1333a454fbb8b453b288396a7a32b57c11057cdd53bad1a3c61d6ead75f239edf020c5fc92a258d86089696714954f2a235632404e565f2dd594e43f1688b97deef4fb584a9d90040f9cd99e53d6854f84cd685f1855dc2b242482bb7d89f7e3b29d1e8a3f3c914eb98ec9deda9d500aea9f06e2d08a974cde25b0cd501e055e94f801bc44f8295c8608e3ff3cc7984e2919564aa9e4905539155d8915d777b03eebea0badf47557d166ac1a55e4c7794c9556ff0dabc2d5e38534c0b5c5b303904f3fb572a23df9293c6cebda4ea85ad1d4e131975ee461f7e55dac31e22489e568bf28b0e4b2e6ed9f62ee3bfcadae452cf6efc4296f1070ffc70564762ef51b48da2e79a1634a0e9a9a4e47d1c4082fba8ace26b5a11a2c1aeacbb690ce1f2498de9bc9917fe0dfab8d9d557843a773db7f642281145ac933a17b2a4612969f75be8d8b307ba3993417c042bf7c3d6df554367648256b5fd9b79aa6a060d25f851bfc510ebfc6b5804638e2d57ce348a395ed8d34cd0e4f53a9d3ec0566c5934e9862b4e3564d47e99aa67e0d5eb7a378ca
+Pseudorandom shared Secret A: cd97adae2ff9924dad1410a236ea843248fa76d23ebcede3f601b464be5ee10e
+c2c6f29ee354e99e622347e06f5af9b2801e788ca95580718a2b9b300d1a2dd06b05021bd2bf1bea97036dc3749adee9f7a115a58cab8f46058d54f04a86a040
+Public Key: 37128585a1428958b1417945261672a9bc0b3454bbfdc498c5128c7a30688471a393e65e8fa0aec9a9328c2cba3efa2ffa15b334722ec747a25af797f157190949a1441aaf82152cc7375780c95851208449644164cc6c42ca8ca442b5847488bccc23eaa25ef43bb58cac6253194e91d31d5095aa1027a8bf585ca5d86271583b9aa9911f5b8e19fa07f1d24ec09c13010196b2269b33b4ae706964e9e7315b897b0b9c0d12d897e3028a17e9802fa05ba5b8a47f1242163cc968aa63ac49a78267513786b6358924631c295bb7767e613b9bd57f4e56b9548414b4e8205192663fb140f26271e7e54de2a58265cb4f1eb070d4001b350908b6352791b14301808194e09d35409e24d09035698ade949ecb098f402185261c35083931fbb45a8bf76b33b50383b16caf7b44a9cb87f7eb000b7c493b36368351a1c9b2116d5a6c89bc02ff8b04356b16789c9b76e173f3f62f538623da79482d5414d8dbb268856a2e50bff7d489daa942c4c695717388f9c226f07c11f88538a537b151cc9f41a014fb7135ca81b8492c7908ba6b499b462b3a3f48e74ae1496a6b4aae631c5e2bb9654ed037b3a6ce99818f662941c1b40df01783ed6ace3904371c533124273a503c6159e7a68c9832186b38e3e822e815916e8cc28668522da2205271774440845300ad6c0b2d19d0bc1dac65174c7ff65a128a51476d96890541a8ed935e46e18c504844c2213e81789abf4c47c4830ed441a01051b0212195794140bab75ec027c12e9178f72061ddb919b9f46b79c37d79f1aa15b04c2e7336e2eba343588da7aa8216e490f4870e63505d9b59351fd5861d8689994c4b7c07a478fc551ae57b9fe058a9b8c2ec9620ed2c2d71f5879ad185a971a877e1a588b983f11273268242bb190bed6109d866077c150e432ab9b46a8f03fc8f964b7b5c6b981486a6a093578da36cb24a66c06c36a6189203d3c8d4d1c048404007c52df4f22ef88ba5b91cae7cb138896618379684601a7a096b60b9d47370d83627600177f8b5fc29af03eba459b480ae810ea7450f83c62f2738113a5b6318527de84887e19922e955bbed021987818bf4085a99fb0a3394c4bc593f508b0e97c594b6d0b4ef8a5f9246a4dafa099dd2b4c4513d5a8c4af8c96d96dc79bbfb1b48137c4e09b60fb86ff6bacd6f302b66b4875ce5c71cba461423cfada0bd1c4a6495d3c4c2691ea1009ff14297c0e9b22797288754b66809bcd8c97031b6bbaaf8c23b815a77c6c1fd90b140fcca8a8715ae99bb8e864c764850d0c5695e079e29a24ce19c7bdd561402b6126d7490b40c163d8a3ac313689be46aab6ca57e195762877ed0a124a903b4eac983a9489aa27499ac4a3287c6ada4eb14f7bcc3ca554035163626b82f4ba3995ba877e7b61919330ff8580a6f299a84a2b6a1763d61eb7cbeb765da88b15f22b6446c553d169c69cc665561ae24e625bb69cd2caaa47e76437db56bb1e993f86a4bf27622006401239846d44a1f0f695ed785280bd48b7d17486554714fa44edbd13d7a01ab5fb240d8037685e4805f3c6bef33a808bb94d69cc505a9af2c04ac8dbc494d81c3a7ab3452a172ee4168ba6147e2ca471a0b6d2e7350fb8c9b53d00e33f67e557c6d224a46c8a50664b5463de3bf29c136013a0605695bd05b3e7e8c6018a9adb153555045be46a9396a9b589220051b7b688d1acdc0b98f59d5bfd5aa2e75873952d611ba95617e955db66992422622800195c9f330206163464c1f688cb8abd1bd846b13af88958f0caff23a122160254e04c17dd77b1a1ac78a7b502f1abc0f3c037a972968f7095f61a5350b4783b51587f2a9616c3595aa7d4480b413f04c1357bb0d3129f4033dfd420717038c56318f09e20e5f4a2d14c83983855b380b2cbd76638d0751f6703fd3f7b2b90a85e0c89f9239ba4b62ba6b74c655c6142ac8a3d0490d8c195318158c30544c7c37b272f561a8dcbf64bc3e3a324b007b43215114812bbeb8611cafab18e0877d9a4364f03ab69168592daa279f147b57e1928c2450e2b72e8764719b1c9b5946491820bb84347c63087e87e064b5a9cabf9509797c8a9a89cc57023406840855d2c3175673e385b349c7b008d2b84c6c504605be0d8bc1c9b389e27371f2ba1c81d38c29cb1668bf0aaf858810d2d185ed4f8cc79c53546ff08ca8ce69abcd14f1db7b
+Secret Key: 71308f10c315e59922e8343e91e4c7c21059c7fcc8879095e95cb6a5915b04f70346f23998322c1a3737785ba5e60065d753989450b80ba6a76bf4050670ac90c862877c5b2189676fac13583483cf9aa4fe363cb3ebaa90e42e03f25c9865b9b28392a4d716b49c3837b186f5001bf129c0a31316af03046e90b9599633f2b9cff224234d01691450c060c658e57cb8939c3cbdcc626a065925535dd0d80ee0bbca7b047db91aae0bba02b10358dd61a0388753d2627bae9a429936bec29a90d71b7935cb7220d17d23100deaeaba7a09bf0ac78de512775e179dac2933aab95ee29b64dfccbf5029030a0274a88330d3e02f34014a5d8c1deae54cb5338c5b4baf15f8c837271acd4b8c4a103635b9013817c4ace4b04e194c887567e03b8076b55aa3200b45e286cf7008dc08679e5599d723cb6d88216ae1a5a945657609b8972025c7e115fb19ab9c051dd8aa01ced542dd5c202ef41a899bc279ab11393b8a48b579f0a19b987c31551c2ff976404f95063df78736a27e858755bc139db62a44f54012d1997c0a28663ba7b928a77e19a0b760c8887baa320028894a2c6488378fe497b742f129ef63b2d5706173572aebb0292fb42c0da968e1366d9b3bc989d02dfa20a97071134d7a3f4601bc967661aeb59d91e468a0f8657677544379b2a088a16b98c591655dbb83a334197a44971e0597b2afc6c94004a80c55c687db16bd357147810e89197c9acb7b71028ee2d326ed263989c7135e2c5e8873b402410dbba34c4cc3aafc640bae602851e96844b6bcd75808a8f23c88c57056d59e3b703e0f39b2b720714f938afd042d7e430e6e0acced5818d87a0c780c4147491ff5dc37d88753db3c3301526c23c72e5a397df24a6ecb744067c61e1aa71a0e900763ea0f5a4a1b27b86e4d4b46dee0c7b7d18708b5c365b253d1099c739194f115c425814534a8a6aab4156dc222d2ccbb894b67dd32941ac63db5898d49634c9178be44d935935007520cb889666728c19bfbf07d8a444b82c15da010059662a9e20b82ecf6ae3cfa1a310a66bffb5ce2186fe55bb874bb4357164f7dc0c3bf3b05ff36cd054751a6c2aabae0b5cf04c6ba11a75ce1a818165dfa4529827aa7ffba02cad56d95b20bc1d7b8a4a7370bd46f11d48dff430a6f0314d4d54800b5346914935aa7a8731b258d566ccf337c88e488e6c707f8cb81ebb515015429fcac4131e56ccc66b81e034df139b83a850d63e7a264e59cded6893d469d8dc2c4a3f05c5bd8535957674fdc4827264d9ec07b78310baa23bfe22187e527c7b305d08d018a2b2b5a7ba441f720a9c1570a0cc6936c1b41c0554fa41bc504b73b7cc782d21607a1dab83d3a09afdb5fa3537808e26a39ac6efe515995928cfa0430ac94025afb9c8fec2e61fc390fa232e73377247c045d3a0a6133017cf07b4a523fc4523bf768062e524c23591e8753ca3c5660cbc369ae34188cba9d150634629156b950b59e33063bd8a8fbb96ec41a34a7d6c12aa2a140e4573e9818a8b8cfa6a5c4ad0c4f0dc5bcab889f42747278524eabbcc17351869f0797d8d97a08125101543c91ab69b679abaa5c0de9b45dcec68403c33b72630da92838612442c6ac7371cc4d8a0a81457c8b0cacc3085690606a66ec0307cd9c589d1178f42418f15c561b679bcf8b1c7fa005bc7a4d6c099509a32e1a6561b747751ad7ca10c760c39912665133c69855eedb2a51a43ec151a7b753bb014990a22b5c198406290513d334c051887c228bba9ca2972da934aa97b056d66219d08d6a6949eb222aac7755ee117322bb9177ccccf5080d8868bdeb263e93a479a14bb35cf461720010edb55ff4ea18f0921f4e7956ae97bcb8fc5a9d8a22cc8263a91cb9d2b51f5fd5b358299bbd2c113f721b51e968754817998050c9eb14003a120c053c6c3594fc5a988a54c45bb592826c46fa3548c3b65435d60ae495161af484dba60757145846ea6b231b9335b6a7a7a475f3e156228c2b8862c3f13a1c4c17ab4da833bb198e563454c56b108d0bcaaa362c31e6aafb165ee65b81ee98302cfb0ff208c645b13cf861b0f4d20c9088cd98f7bb21446372e959c3a795baac1d8235c59b292472bc4019d780a485a0c0e224f1e76883a62c44ecb65b767e99282937128585a1428958b1417945261672a9bc0b3454bbfdc498c5128c7a30688471a393e65e8fa0aec9a9328c2cba3efa2ffa15b334722ec747a25af797f157190949a1441aaf82152cc7375780c95851208449644164cc6c42ca8ca442b5847488bccc23eaa25ef43bb58cac6253194e91d31d5095aa1027a8bf585ca5d86271583b9aa9911f5b8e19fa07f1d24ec09c13010196b2269b33b4ae706964e9e7315b897b0b9c0d12d897e3028a17e9802fa05ba5b8a47f1242163cc968aa63ac49a78267513786b6358924631c295bb7767e613b9bd57f4e56b9548414b4e8205192663fb140f26271e7e54de2a58265cb4f1eb070d4001b350908b6352791b14301808194e09d35409e24d09035698ade949ecb098f402185261c35083931fbb45a8bf76b33b50383b16caf7b44a9cb87f7eb000b7c493b36368351a1c9b2116d5a6c89bc02ff8b04356b16789c9b76e173f3f62f538623da79482d5414d8dbb268856a2e50bff7d489daa942c4c695717388f9c226f07c11f88538a537b151cc9f41a014fb7135ca81b8492c7908ba6b499b462b3a3f48e74ae1496a6b4aae631c5e2bb9654ed037b3a6ce99818f662941c1b40df01783ed6ace3904371c533124273a503c6159e7a68c9832186b38e3e822e815916e8cc28668522da2205271774440845300ad6c0b2d19d0bc1dac65174c7ff65a128a51476d96890541a8ed935e46e18c504844c2213e81789abf4c47c4830ed441a01051b0212195794140bab75ec027c12e9178f72061ddb919b9f46b79c37d79f1aa15b04c2e7336e2eba343588da7aa8216e490f4870e63505d9b59351fd5861d8689994c4b7c07a478fc551ae57b9fe058a9b8c2ec9620ed2c2d71f5879ad185a971a877e1a588b983f11273268242bb190bed6109d866077c150e432ab9b46a8f03fc8f964b7b5c6b981486a6a093578da36cb24a66c06c36a6189203d3c8d4d1c048404007c52df4f22ef88ba5b91cae7cb138896618379684601a7a096b60b9d47370d83627600177f8b5fc29af03eba459b480ae810ea7450f83c62f2738113a5b6318527de84887e19922e955bbed021987818bf4085a99fb0a3394c4bc593f508b0e97c594b6d0b4ef8a5f9246a4dafa099dd2b4c4513d5a8c4af8c96d96dc79bbfb1b48137c4e09b60fb86ff6bacd6f302b66b4875ce5c71cba461423cfada0bd1c4a6495d3c4c2691ea1009ff14297c0e9b22797288754b66809bcd8c97031b6bbaaf8c23b815a77c6c1fd90b140fcca8a8715ae99bb8e864c764850d0c5695e079e29a24ce19c7bdd561402b6126d7490b40c163d8a3ac313689be46aab6ca57e195762877ed0a124a903b4eac983a9489aa27499ac4a3287c6ada4eb14f7bcc3ca554035163626b82f4ba3995ba877e7b61919330ff8580a6f299a84a2b6a1763d61eb7cbeb765da88b15f22b6446c553d169c69cc665561ae24e625bb69cd2caaa47e76437db56bb1e993f86a4bf27622006401239846d44a1f0f695ed785280bd48b7d17486554714fa44edbd13d7a01ab5fb240d8037685e4805f3c6bef33a808bb94d69cc505a9af2c04ac8dbc494d81c3a7ab3452a172ee4168ba6147e2ca471a0b6d2e7350fb8c9b53d00e33f67e557c6d224a46c8a50664b5463de3bf29c136013a0605695bd05b3e7e8c6018a9adb153555045be46a9396a9b589220051b7b688d1acdc0b98f59d5bfd5aa2e75873952d611ba95617e955db66992422622800195c9f330206163464c1f688cb8abd1bd846b13af88958f0caff23a122160254e04c17dd77b1a1ac78a7b502f1abc0f3c037a972968f7095f61a5350b4783b51587f2a9616c3595aa7d4480b413f04c1357bb0d3129f4033dfd420717038c56318f09e20e5f4a2d14c83983855b380b2cbd76638d0751f6703fd3f7b2b90a85e0c89f9239ba4b62ba6b74c655c6142ac8a3d0490d8c195318158c30544c7c37b272f561a8dcbf64bc3e3a324b007b43215114812bbeb8611cafab18e0877d9a4364f03ab69168592daa279f147b57e1928c2450e2b72e8764719b1c9b5946491820bb84347c63087e87e064b5a9cabf9509797c8a9a89cc57023406840855d2c3175673e385b349c7b008d2b84c6c504605be0d8bc1c9b389e27371f2ba1c81d38c29cb1668bf0aaf858810d2d185ed4f8cc79c53546ff08ca8ce69abcd14f1db7bf27ee7a832686962991a10501f57143cc4b95c00c08012561fd25dfb17aa19e16b05021bd2bf1bea97036dc3749adee9f7a115a58cab8f46058d54f04a86a040
+5fdca53ff15c9b027a79f8189c0aa73659e99f88b07096c07c7f694a3b7f52a0
+Ciphertext: 05389cb01533f3cbd5467d5f63261adbe092926e9ba1da5d6e36769b6722ed43858ccecdb380654d095e48847ff03842ceea7b90fdccfa7f23912dd3f98893e392a8f18cb1bf2d4e0ea514e62e5f035ab158daa644e290593a93162d760282bcd4cdac39a6492bfc5bd3375fbcb759e9eaecc9f07a85748ff9c2e373cc9392e3ed33e9f90d11abff65084bd7def6bc5143614ef485ebefd0872dea4cdddac0792cf1affce632ad08496231f0c50514f88fcd45a67cbeb7ea9f88ad8ecb612e4d4f767601d48ca196a1f5e775fdfc6f237c9019b7b2e9b340728337bc486be9b2d125a7681ee129abd3d1d11c38d5bef8cbe25e0e2ba484dc93ce6cb815c1c3f77215cc754ecf983d1501ac14ef12cc60d07acbb917d6b5fa75720d1624ff5bebc5701667657c2eb9b24f54db9121460c3cf513cefc5d345b866e7a41b533d7710de6a1f55417833e094b437c5ffd8e5fb44367a28dba8071411c511c140135cc667ecd39bd9186b4fec19726e76051e39a1a23297ee7233a5534c972301d592bb3ba377837f742a4ebb0d22191870398e3426c7575a458617ffe2bb38fc31d99c8438a7540fcbbd1aecb13cd916fa0c65be606ea8ac4399ffd4a9d331593d396b31f697dd00adb7d7f2ea45f4019de8a67edb489d847e3e68d4f7e1a6c3158d599bd0518d5afddda92bf53c78dff5944d27f92d72fb70d4f9e4336de143b80893bf1b7e60fee7fdd531612e1ab53ee22eef6a1b7639034465345314db3f6afe57dc1b4aebf160732e2ce1ee6ccf17795eee3755c06aea4dafadd4935604c77194eb35f86178d73ff386ac37cc18199989cfc545d2591b57efd0cf03700046766f2db504ba540b25209647118be9843aa0c9bc3489c9164a2ada07c5fd1a4cc49b1b47a98773af74605c0b0a259cca75150e2ac583a3e525f117b74f37583b40b9762207dcc38d8d20a566beb725f82e9e528c623768b78b76528b636d7b1e7038d792b2ee2a0f77f8f0e2d3be176e5658f5c68a627ea94517d71fe40df2491e833842fa615c24afe613e489afc27edd905366319426b65db6aa97c6b540b2f572c06a00569b87df3710e99738724673541ffb66dd5d2bd9b537c3e7e077dcba710fc6fedbf7a3575e40011102724578346b4f8df2cac8fdd7d6bb2f5a35bf919f79303c5cb1e13276cadcd5450bda7dd142509b8f4ffc268002c432b3316c51182b510029b65a2fe940d2c2609ae5a18d0d9951bacc3ba71a21753da501f42089ef09e7d6c63f882c35a76471b440d04441e7f3811f4f6b8321acb3fb8a3f5ae9eb9e73aeeac700fa27f9a91864f7ebf24aee9897038097d739322b7ad6064418aa45b06d5574db940e2b54129e083e0506572dc569ed4d041a7ba31a5d7cac31cfc0e9f97549a9dd0b0cd5d46433951d7138010c920fea9c8af322f3ef95a54bef78f0e4112e88458f1a79d87ff65176814a8608c5f8f5468cc197e0b73c850f4573cef81ee7c47970e4a17c0f9630a6dea6fcbec246a525c48e1b5ac452df4e7065f1c145bd0b1136b474047096f82d17436c5031a6b0315326181a9ad2efe4a3c82a85771563c57806eb7653d45982ae22d9f78cfdac7a7d30849b4ebfd116f8fbbbcda62fb46bd2adef38226dbf98808e60ec7587980b6caf7e1320ef5063c0e14524c303ceef388167bd471eaf69b40597a7633ebb19018fc07f8749f38b666125da6a6860f21166de4b89285c07cf150b5a38c3a7151a4737c3170d8f1197184864270d1b5405b9f75b6471b5942d611755c299ca4276d59446573ac33014d26c02fb2608834c13851f2aa46929b99a8e09c92ed6fd2c902d44fa53471af3607bc00a08cbadc814a1531b71ca53cd7801cbab6a03292ed3f312f5c82c0f3ef5b9cefbef3d680844839e4c7261325f03feba901a376544e8c181f2ceda5501b01a20f73f17cfccc68550e6fcf1b5c2436b10bbebd187dde527dc42d72a77beb210af22e43ae56726c75848cb744dcd0ced1c7057b06549453cd4ea41607c2d3d70146d5e0421f7fe13fc3953f22232179e84efe151124152a2825bd7e20a8354d5df15a9580257c6ca137cb5f335e1006e460343bd99e98f9e84c496e1da2144a3c0943297e2829aed0c0ff463f43987c6fc28514ec894a796a1a285658736a2c329057e21f0082f0239c10dc17bc9159115450600e9f94ef5dfe2c535b
+Shared Secret B: eae80508ee93fe3e9048e289d43cbdd7fdd9c7655d714787431d27604056e5fe
+Shared Secret A: eae80508ee93fe3e9048e289d43cbdd7fdd9c7655d714787431d27604056e5fe
+7fbcedb663415025b8315b004cf0ad3c64daa21e290cf0cccc3bb2d9bed0c9e68789bbf50bef9c6c9cf94db134358992546bc26c9d9b6eaa7da7ed63ca061f2f27ed1980ecb04eb07640a13fa97b723856fa72d97ac8b1aca5c7508bfb6fbf6eb4c5c8d899aab67b8f10046922d46568fcd56223aeeb80e147352aa691417a153af5b19fc1b5dd943ceb663d2d1e2b9fa904514b99beec905bb3ca4fc05b410fe5adf5005a421cff6a88eb48bc8858692ae213fa6cb6e63bc52e934f5f959bf64395a656cdde7da77c3745ade36a37ab1c9a41950dbd35e2307ac8a04d88ee1434645f283847a87aff8f23d17e7e870bc70f8c952a1ebebd7c4e8bd953f978d9db9c31c6da9bd73d27fb915472fefac4acc36c536fe4b039b6f9ea6b4557388434360a7f87ac0a72cfaaae98969de3f08f19a6a9ae97f00dcc1a3776752db14d7c47ea1b625d41c619df7d5ce9ab9f0ad08ea8c32c31ffca681c8d111b66027e0f62051de1968538abf2e8fd305598772a268d666c26f5b070d19bc13f3f7fa4a47d492cb0664fc12b503f498aac5d6f7d2975651e715c1c2dbcbdb899208fa02011830aee8feea9766a7b8af24e2a55b0a3c45fcad4b9cc90fae2c0847cca5d4d25a60c465bc2841827de683ff6ed2790c04bd2600d6bd82e972c9d5a74283e1f0b203eb9e5e13a3f12f5095b37171408b824b9a0222c13080c1e6b36d26190a69ec8bead4993cdc54210b935e2bdff6746f68a496b05f55793b4dd9f49fa5d47f54736b239db175613427de5f7f9131536155f1aecc5cbca12d5694dafc8bc47c03da4c4eb3b85689879dc9701f27555f55f6c2378728a5e0f66b5843fd6b41843524fda6fb4f6340dd38f4d444f592215cd2a7aa8e172ecde561a300f1e3f538fd1c5678d7b6b8de88c7bf9c62c95090cad512f089687b953cf2028a5942c221265640317613ea46ce0a77a1dc8c91e658ea84d3910ff2b5297c6bc096534a6f0cf08216bce77ebcee70508770adfe233857b897d956a8dc7e1dfd36356ba1b39dda34b2422d919f2ab5c8ec25b3ba5f91cff012b4d89fba97e9ac85ac28299eef59e687ab368e85876161e3e36baf1a7d43d8c2a8dbcf4e19e2ee7e48cad4b7f493a5ca7f110e76a96077a25d6f148d23b59c238eb8068fd2f1b25df54a6f03999ae46c1e0fcf86e9149e9955cb8df09e726975533f6e4cdd914f31870e05bcd3b052ec240348b6835c710126e18f280fd2945cb406f0672b29eaecaf0c56357be3bc36ed1bf0bc94ccce64a9089addb56734eb711a4c09f0cd930468168ca961054cdad71e17565cb46b968a60d5a932424b7e958077e27c7cb47dbb5978b3339a590f13bb239c80ec64b4ce981144686a5361146fe0844434409988342f0a0e2f81ca2371fb84eda9588f0b6136de5abf4c2b0adbc46fea85879b31197fac2b23076765a00f0c7824a49b39920c16ddf53faf806d1ff12ecd029369b8ae517cb484204b4e0373dbbdae489afd7f89f94473451516290d65de0a0cef5acefab7eb079a092604a4efed5805127cc97528caf4b6bf95276420d976d6bcc61323abfae2f3b5f36b4158792912bbc4855b344db8379d6a6831640a54c14f8f5dc666a3834bd84a8d4a9f02b5a25ec835481c5270756234562821ec29aa241d9634619bb726de72844e65e0b6bc437b1a94e7874df8ed3f3c9bc6d4f358b43faa1aebeb03155db627fa4680ee1b25adeace159a220b83bf6a945c5016099a0bdce8854d61e2d1f3f4a3ae0f412c961cabc5b515ecd58aab194c827ee0eefed09661ca472c8890baf279de15fc604c191d673fc1b001c145e28298a8fdc448839ef511db44b0373c224ad780b9a5bef384d42198d12352b8caa653d0e9b34e5c05c86addbecf8d42dceb2e6df375f89a948b81f52f619bdd9ee78ef5021f34e64335af219f874acd3257b5436655c4ba898028b38e3b6a0bd056b8b69518d68126256d35f49ce28dc9a8a70a51c91fabe2e26e8ee6ef69519aee36bb45894f3c01926616d04ea7b190168435b590489f40962b5e7193dc222bdc34288e3b68f3cd47819fa5690d6d0885aacfdda1405b589b36fffb919cfaba7057de5e6f728f6a580c4f9e7f8fa3919bb902b3f286cd73e71b63e8e0e757ca3acdbdcdcb449d904028f9145916e8116747e79400aec22a678959d89bd402c0c432598b0ece62f
+Pseudorandom shared Secret A: 71a5917b515c4fabac1a33880c34cead3863aacc465e058d6cb854665ac0b639
+6d1703d1bb0ff349f0556f995d8dddd31c817524ac01173fff94e5283241f2f5ce17738e5fa5fc367a622059ffb0c6dc8f7d6e1158e7f14053dec8438ddff8fd
+Public Key: e6aa4d31f4bcfa0aa872d0386a03ab7d2a554b654b423004e68bae85eab93d4ac861a23121481fb3b162745a7d94822e3b0c8e3077320ce20b83927453076f1637537f64750838515c22a6d0ccc865b18e78ea3fb0f175cbb96b4899b33fcbcb5d5020686693986463a3a2b7bf8758c5b1cfa7a617240a6ded9c6308874aa07bc6ba218f68014a03d17b089b1c9732181b9776a63a7eaf68cda6863b32569e4c050113e1ce41510d38524652b30514555a181a946a4b037ec092d92a3ad79a552658bb02d0484e6b15edcc787bd09dbc706366e33d9a501eaaa793d40a8d96ba43df519db48884ee4428a31131bf126df8226522d310c9d97a5d7b021883007268658362535dccbfd3819f30a6c6257886da99bd5d75608cd91bc4d6ab43b7bb0e13221af067549138d9106e8a425006e406c0a6b060e7cad6c41634391e3b154767f7695c1851adb42e8972b30ae26ad37b0b27c184a6b076133279fb39c6dc211c81041d3ba58e8281484285bf912ba40da79e50ab41ff578e822b767b76359a06181d7b158c6ccf83ec0bc88b9517d09e508c782ecca2ab732b2e2c7321359a0c5169f1fb91f1dc9402b53d8017a975e19f555143461a6f3d77be0a8a9c7e370d61a069bc95a799d07d8d730db931b5d9653d5a148777319f791640ed1b24676831de92acab8665854a1a6971b17f89444e815623d30cac437116d5a18338aa6a75695dfab3cf0c1443b16137887f73639df719497f8ba48c95212a968e4e9b35ab6cb384a84288b58b17266a8199719fc9acd0a3671c103237780858943472c3a79fb472831a4343087f1d10c043c108db861987479937e828a4626914e3b6f1148e872644d54cac92ac172a056f8e603cf81ab52c7a064984c69991a4d48992815c96f9f77708a25116301f1378594ca4519223359b283bc0f64bd7104ae1378431d6a01b933541248570f039c9b29fef1b96e12632d24979953a491c36ab05479fe9f93932946a6ccac10d48bf2d63833e58723a40c13a45a336d347f02638d1c8aea672ada433a8447654d8c9c43f54c2c18ca899674cb2c7288bf1aa22e509171446ee705312c97e174a5df6fa80ff91429748bdfaa0b8b4789a2ef6cdc8848858c07443accdfc2450f2bc538906225051a4b99025d2e0a24dab7812fb002a89289086c708778c79ba2ee7348a126cc98afaabdb9a3e3f18487608a492681c0e949659446c65438a48b03253806086f62ea7f5b0cf4c8f36592075cc5f1b357a21160218ab2098c477a954af72638c4a8ab7b9c67ae74271512a517c862e556ab4b58060f02b5414f2662ab7861ab77f4bab1126f94bb760963a514df7b3064ef50f9a9bb086d7cde6186628d32f45388f530513e838cc7c7a2406bc1790426e20b15479f9404c70b7c6464f4a8743194405ff95c466708071672aa7da1fd68a16b1548871b2962b51697b6b22a55a6b8eec9cea2b2593110fca145976d691a3131ebc0c632f9a8f07caa89f34cd68d178cb85729f28b921f84e731aaa57919bf015985e620327a28a82a701e15bc5795276af0a885e78b8d3f09afe928512405de2906aac991a1e3c1be3c87ad8602f3b93bb23778ff3d0b10ab62198707d6fe932119a220d90102ac0bc7227496f580ccd03a266c917f05ba675c48a55a108ce454a3a659cd4625cfdd59367443009419d28d564b2358fd9e35db3f87749762b135b010d5a89ae111ad479468973b264dc6b47002752db880be747b5b3317f45898fc63739922d5b2b3a3953181e60a70c99be152850aa3088ebb027d81a84dae365d7e3c6542b53004a8175c16f4f9c8ef01878bdd491c10c7f0be27d90804ce2458dcd26a6ec212a2e2c02cd8714dcd3ad5515bc2253c6c0676abe59034459c244626db5e5a094dc7336989693284f3723c4b94b863eb12d5a3068a7c9c3b267ca8df35866964c9001634f88b565d281fde10e24256312693ee0a9767ea080985c8ce526442db081a6f45a94636e9bda0827a579434086099230e15c88724911ec4c0f6f770f2b0363614a1b78a3446769c58e9a9614da600fe47ffad67047192f9d3780383c0a3a36aa6177b09655477916664fcbca19224617e74880424a257bc169950858c5b39d1516d0c42cbea34dce80952440874ee9977b771a91a3ae724c3199f51f2856442b4f7d4cf0c210bf4ed16efefc5b591f46
+Secret Key: c1287e0b9048e7989809f309c2730d9b7a946bd71180412fd8f7613d50c574a0b4f2c743213a8d722c58649a5df823677e579adf3377fa118a8089569536ad16a6817ed379f0c88f2e746ca76b683c145e88b787bd34bdd9a468ed3835ede07523e79c421a4a83c583945046a3f9c5489758db6a8a2e4c18f53c88c5475e3a16bfe7630e65d72505d0093292734f11a3e198132a41522c7783a08a1502f6c86d73c4ba8a530979274e09b88933a2bf05724ce56027eb0959a1afd63455227429a4fa34c17b4085d2880e17327739c601a2cdd69835c131cc8e982f5bd80f6f89a36317351eb95d0ff4cc5c30419f3b4d0ca94800968ef6174c910cbbc21c8731e9622e6363ccc212faa86373d7c224474f5ed4701fc3b4c4f080c3e111896b2a267864b6ac6569bc7e0fb5794c34c2f582a2304c71de03a8fac47102600d11fa92d5797c754127a7006c3eaca0df97ba2133a941ab3a9cf3c39a7a27cbd3b8f335a6f2119774f2191059c9248520a4da002b1550bcc27e9096715d13179103ccfd20b4f2a5a86a303742a53d47aca3534465f579b793c44cf50a38b0265a03e8331ae68e6855c3d359c2ab2c17c49332958675b5fba7241a5903a668f1f9a0549a95545ac4c2493fb1526dc3e637a2e85805f5b60039658a84691d386f03b09bd18a04b09169068080c2e690b2d9cea2f762d63aa8f0aa31061244ac6801bb1236c99ac6af558d4b29a86fa483dce467a65a4b3ee026251358c4a91d460495ad012624d745dd7455aaf99d323598ecf0086d083629b9ca37e51a1ed41233e1c3e95c35c17a8993c45a75aa014eb068b4a1765c1977c591cc41040ebf83b5471a759b163ef6414b4e9574ace051d3fb9b47d056afa51053cba17dc956ffc98ce7151942d7a29cd0968994a9abd062e9347454a1066457369b46058af93968176a0be1bb9ab15e8bf031e78173b9637f8dd8bba40672a3211004b782ff28063a1ca39caaba0ebb932720106da947283470398c089bf43ea1177219771baddc0407bcbe3e5a0e3ae62a4fb9bccfb5461af94d7a514e9ed2b811b8879ee2549a7965e8d85ed631cf98bb8c131c8d541a1be04601b23125b94c3ce49ccef9c2cea24613d7902687a61fa02b4d5e97710bac6fc672216a85694d47060199a7d4454ee5916d7bac8c1ba56cf1a26627200f92302f50a87124815831926dabb24503001680880379304b869c2ea6b6098fe4a858a55100d6b21d212ee60aa222d219c818ae6a599c75e53f67928d9264bba9699313d7ad31fc9c553cc9d9847737307666687d4bab4cbb74c087bb6ee3ebb0630a96e1d3417927a59a391bbb905e7e2330817c31ca67c96cf76e00257c0811182fb05467b2013d1a5f49034e1e294cfc4943e9131d145b37a195869546b0b9989118726cdaaa3b0d9835772b3befbcbf6fb0ce3fa9c0a6b6b4ecf8b63ee973df4b0efeecc4c32a996df544ff28760aa28f24814c6033a58bfc7982f1bc824b5ac44c17277453ef7b2cafca6f35b96bbc411b649432731a693369c1f2e76dc948204ed0cdf541585d431c08b54395b84c86b9cf64651d54789fd2a358d89b8e58347ac3d01a50c770e539335912be8754bf7f457e9e104f85e06e70b43e0f8ccac711795c009ab5d19dbc8178888bb3596458a6009bb908c820ac61b732a1de625d62217a0b544054185f1f783bd0979fc76871e90a8b695cb14111460c12432c9aa722e8374f05728776547f32a5f176c4b8e06223261108600714608d22682d24c7b5393544e0651b3cdab9602b226461a695eca800017061b073366a0e306b4a9c0483167967531538a69ca965aa3ce1462a8c187537c3048ee6b886b496fd29a77cc14a0611a0e278b87f733f2f4c22f7d96ec085b30e16639e38c0b651cde0309ff1791ed3367246bb2180e662e67388f2d7b33b7a5597256a2f26600fcb2a57f070a9d261a50119c19c2cdf99b9a6669600481134c50eea0bb0907a5f5879467e63ccb00c96114c9835e217540c68f85096fa5494a4045b68cc62641226949cb4eee5410f191b736999d83652e4341c0b201ef5122829b00822382bee7c211c3575327b5480a72e7d114dac686f84a40bd805a68c4324360205d8bc95346095ff053b1ac7a2e00203a9b72c9f192ee6aa4d31f4bcfa0aa872d0386a03ab7d2a554b654b423004e68bae85eab93d4ac861a23121481fb3b162745a7d94822e3b0c8e3077320ce20b83927453076f1637537f64750838515c22a6d0ccc865b18e78ea3fb0f175cbb96b4899b33fcbcb5d5020686693986463a3a2b7bf8758c5b1cfa7a617240a6ded9c6308874aa07bc6ba218f68014a03d17b089b1c9732181b9776a63a7eaf68cda6863b32569e4c050113e1ce41510d38524652b30514555a181a946a4b037ec092d92a3ad79a552658bb02d0484e6b15edcc787bd09dbc706366e33d9a501eaaa793d40a8d96ba43df519db48884ee4428a31131bf126df8226522d310c9d97a5d7b021883007268658362535dccbfd3819f30a6c6257886da99bd5d75608cd91bc4d6ab43b7bb0e13221af067549138d9106e8a425006e406c0a6b060e7cad6c41634391e3b154767f7695c1851adb42e8972b30ae26ad37b0b27c184a6b076133279fb39c6dc211c81041d3ba58e8281484285bf912ba40da79e50ab41ff578e822b767b76359a06181d7b158c6ccf83ec0bc88b9517d09e508c782ecca2ab732b2e2c7321359a0c5169f1fb91f1dc9402b53d8017a975e19f555143461a6f3d77be0a8a9c7e370d61a069bc95a799d07d8d730db931b5d9653d5a148777319f791640ed1b24676831de92acab8665854a1a6971b17f89444e815623d30cac437116d5a18338aa6a75695dfab3cf0c1443b16137887f73639df719497f8ba48c95212a968e4e9b35ab6cb384a84288b58b17266a8199719fc9acd0a3671c103237780858943472c3a79fb472831a4343087f1d10c043c108db861987479937e828a4626914e3b6f1148e872644d54cac92ac172a056f8e603cf81ab52c7a064984c69991a4d48992815c96f9f77708a25116301f1378594ca4519223359b283bc0f64bd7104ae1378431d6a01b933541248570f039c9b29fef1b96e12632d24979953a491c36ab05479fe9f93932946a6ccac10d48bf2d63833e58723a40c13a45a336d347f02638d1c8aea672ada433a8447654d8c9c43f54c2c18ca899674cb2c7288bf1aa22e509171446ee705312c97e174a5df6fa80ff91429748bdfaa0b8b4789a2ef6cdc8848858c07443accdfc2450f2bc538906225051a4b99025d2e0a24dab7812fb002a89289086c708778c79ba2ee7348a126cc98afaabdb9a3e3f18487608a492681c0e949659446c65438a48b03253806086f62ea7f5b0cf4c8f36592075cc5f1b357a21160218ab2098c477a954af72638c4a8ab7b9c67ae74271512a517c862e556ab4b58060f02b5414f2662ab7861ab77f4bab1126f94bb760963a514df7b3064ef50f9a9bb086d7cde6186628d32f45388f530513e838cc7c7a2406bc1790426e20b15479f9404c70b7c6464f4a8743194405ff95c466708071672aa7da1fd68a16b1548871b2962b51697b6b22a55a6b8eec9cea2b2593110fca145976d691a3131ebc0c632f9a8f07caa89f34cd68d178cb85729f28b921f84e731aaa57919bf015985e620327a28a82a701e15bc5795276af0a885e78b8d3f09afe928512405de2906aac991a1e3c1be3c87ad8602f3b93bb23778ff3d0b10ab62198707d6fe932119a220d90102ac0bc7227496f580ccd03a266c917f05ba675c48a55a108ce454a3a659cd4625cfdd59367443009419d28d564b2358fd9e35db3f87749762b135b010d5a89ae111ad479468973b264dc6b47002752db880be747b5b3317f45898fc63739922d5b2b3a3953181e60a70c99be152850aa3088ebb027d81a84dae365d7e3c6542b53004a8175c16f4f9c8ef01878bdd491c10c7f0be27d90804ce2458dcd26a6ec212a2e2c02cd8714dcd3ad5515bc2253c6c0676abe59034459c244626db5e5a094dc7336989693284f3723c4b94b863eb12d5a3068a7c9c3b267ca8df35866964c9001634f88b565d281fde10e24256312693ee0a9767ea080985c8ce526442db081a6f45a94636e9bda0827a579434086099230e15c88724911ec4c0f6f770f2b0363614a1b78a3446769c58e9a9614da600fe47ffad67047192f9d3780383c0a3a36aa6177b09655477916664fcbca19224617e74880424a257bc169950858c5b39d1516d0c42cbea34dce80952440874ee9977b771a91a3ae724c3199f51f2856442b4f7d4cf0c210bf4ed16efefc5b591f4606b08045c587c4d0688113dabaa5cd6d61a134466a773444b5af13057c27241fce17738e5fa5fc367a622059ffb0c6dc8f7d6e1158e7f14053dec8438ddff8fd
+e2fa7775a4f04c6cc8284b90e25b90ea3a4b59eec4dfc4d54458aa9dfc47a5ff
+Ciphertext: 350ffca85821b1bce285edd69f91cec90b9a2e40d5424230ebc12dd43de070dfb24fff806d478d58d7a63ead3c96b5c20a277d3b6a5e8d7c470f297a3a86cbd71be945414068636be21d5fc29b45eb998bcdf803aaf7aa8589ef19ea86420861873604bc6da3228d4bc0a09738f296c3d7ca47db3e1fc08fffba441ccc0aa13707ba70204ee16ed96d0db6e11ee8222b43afa55b35aace90f7eed35c7ebfa3b97b35f8595f083364c1ba7aaaa5690f4413d86e4d91289a3defaf4a0f8aa4ff1eb39e83116ed3c06eddf92d797ebdb60e6b007461a4db25ef4d57649fd031d3270e150ce77a536f913e974d752e209c01cee7d439ef67494966e9d06a584b33437b07c8fa224c5969b864cbf70bd5c8e1e22f2e5d67788f3c8ea2cb25036088ad7513aa253f32f05968a2c31e67755d19cc74ab99b4b19fe71f0d60f1e338c0752d7da732ea7da3b38fecf4ce45cf46cca462ac9810b499974a43ad1a43e2475042eae2b7b628addd58b17d7a7f2b5041baed396cdf84a0b1e97013430d8945efe14868960f7df11dfe27438f96fbbf98d862dfa672b8c16f8ce67744541507333efc84e8b18a06daadb8c4f92e19199d15cab93ae9034c8d27a9a78458400d1836883d75035ec2b39e5aee190cf9b08a67e727daec4ea23230c0d59f31c8efdcbdbacd149ea1c349b991553b3983f9fdb85f44a7aac6bfef968945a7ccc0ecb53422cfeb2cab128f50412b4c2a66e0ddc213b7589cf44b40e77bd487653030ea78fbcde10c930a72554a064d661cb95cf9d8dd036762de30a43eab668d2d58f465996cd9dc162b702e0a3e66ecc2654f297b2196e034b31c87d7bf239b1331ddbf4a8cbc6ca7434cf741d320d0bfa13d2f5208bba86af500b8032aec706a06d7c2a62d891b9a4e2ab7d1e50980b913ddf70b3bbcc03d95f082a6c1c280e65ac350f1a278c2712fcb25e20b0c8cd7d428e1f19e89ebefbe6443ab97b2cc5195afeafa0e554261706df95af8a62b8bf21177c7f723a710c8abf6e3cccdd6946aadbdd8704db3307985f736719f7f30fd71ee1a80e6dfab251d21c3b0ed98a34e37ea4a15350076013c417572aad05229ae3ddf084b8ec3863be45dc3a7138ab5a191657fbcff4402549833d4109154aab87ffd094d49062f5d4ef4ff061c3f11a14e7aaf0925829b3f176c9aa32c37b9fe6770ed5e75ec20ef9977061c2455f352420c68a173c3aecc0cd5a6fc5f5c2133193f36d544515a92022606dd3418afaa968a0595d0ab44294b683be1e5e04b1d48601ee6979a0684b5c3100763ad965395019a87dfab796f0bc513820d3193aa2541457aca72f0b62ad1074721bea66e73b18f9f09a57fea628c141a7dd85c1e7c80334e3d6c23b0152ce0293f09fa46b3d56be856f4aac8c797dfe62634985bf22eaba2c876a998625f23e9dead2ff4e0d2eceae4551f62619fd4f440155d87026139a968d627b0122a03c0fac15ed2c147a5290065928cf6d15e6b0366befd9f128b27e782fd92a22c3094086c6d241d36d66f38364a30dfddcbcc4dff44d26a6e7f88bda860ed8a6da524431df8c2d287fb7c86e8707418a27505acaa106bcf37b6ac3166c428ee345234116d073d632eb0896e25bddeb76a04a7b46ad2c8a51d7e28b6fa057c875c7f033aacb599861ab043637523e98b2cfddacfea07ffb45e786e9caa130c6ad38e0be384021f80684d00c8c1208a48597408d1cb30abccbb2c2a761b6aebc0788ca977371cddae040bce5825ad1e8452ce9f4d70b9b3195dfa0d199e748eb7e55f4274accd6ebf1e9716ad6f849014eacfda965135491e5c8fd66f401fc634679b196930642de17a03ca0dff803a2f1e548b3a9f994cb694f41a1fe2b269a0a37b99caced7fe20694fc38815092cfe7bdf9f11525326284f90116c270ba50b64c34f89450906887c526b97aa0a21ab2419439613284db35934e56fab95e705864c79baffc6969b206bd1fa1bd41ec9a3230e9d7bdd2a3a66c07de3a3051cc8b1c2cd7cc110abb2a0693c0d45656b85408aec0a1e603b31abacfccf142ed46431ea0d6acdba3f50f60176ed2bb217d97ae60f285097c708afe74f96cbf16369712070416d9a898134576f056081167cad2b0037f6bd547f44e3e0718240d3aee3ff8979add3d444b6f7a1b6ceb42f61108ae6d8a672a543f9c8f75edd164cfd7f0ef0317ec4b3
+Shared Secret B: f47421c6593e82b336153d1a1a970fbbbc4da9f122b24c1789e9fc422170b5ae
+Shared Secret A: f47421c6593e82b336153d1a1a970fbbbc4da9f122b24c1789e9fc422170b5ae
+38e3bff4549304a5fc3629d2833996df5c130e9d6e6080cb0e7ef51c8682506a911c4a4186cafc4bc2c6bbc2ef0d4769f38024e075f4fc76740c22a121db358dd982717d9f9ca2a4903e81fcbdafc6a57d34ddf6843094a5c00b62f69401fc982020214c9a485e48b4ec645e88c17b45448292ffbab3ba7cf4cbf87e67a99f4be3c584832ceffe95bd58b288e3f43bf5ef15f2ce3a6af669178fbc5930975be23976c41f592d0fc325528c2bcd62251edca7ac8a675b431c343d5f4219bbf4c0044547eb403891ab50b2a95ddd06ae7f7470684f2ce5b868644fb95a3b1285cd872adf8c11137118e3ce33d61d85f04de86b8cc47604da42dff554c8492bcaa127a7388d11c484014bc6bbe64b5788dfa337ef18b2073bdc1dd900bebc09a4052bd7a699efb4d1538b59e13353ae57e403e1d94b5c6c99feff474a99836aefcd8002277201984dd3093f29a1c8c83a3129dd2cf62b499fe8d61f3f43420fc3ad36837e9cf7e9700a0e5810c6c831919c1d9cca8acffff08cb69ffa7504979b6219c4bcba66faabc88538ca00e5c98891b5e632d74d79e148ca02c767a20b401d7e1d06ca9ce7c2973e4e4d87167d46579142ada52d47703f7a6cba335344622e854df0f20d7f7e79100ff185a33a32e5092d75d5ec48976fef5d33680a488988695e0ccdff64fdd9f62abca7b030595b92ea1e400549819fdd4b2e05159d89cfe8843fa61a99fe5d967994e65939f523864d7adb1f4c62bc901f8f344c4ec7822be0e85ffc62c76d98eb3ec38f39ef58cfda9b6ce139b71e4359c6ac8cbfb03235c7e68355e13547ac031c24aa0d7830b294ccc46fddb74af9f4cd29fdfa915fcc5231cfe517af678d6cb3f18523bf4c69f9b3090bc34a22d2c359a2c26ddd4aaae72c72fe312b522434ce3b5616267e54d35795c5314101df41370146f2703d72a7124421475667fd908ce77918825609b20e4aeb204a96abb207ec51537d0d716acced6eacd21b56f04b49a91890a6870a100346575170eb2b9bd5c03c09160f2cf2abbdae47f7d36d73ffe7ba4325b100b9a1b5a8aa7b2fe914f5b6965c2f14a71a856c8783b36f6cd990dd3aafc134eabfeeae2a16acec7b8cbdc3ec214a61bac3844862ce845bc95dbe36c009a48eeb98707fcad42ff1205ccb926b3f7f547af2f88357e455849e03a78493f527f32e23fea38ad17be561073fc61ea469be43ca0b61f743a93dee53c0c9acd86f62ab66a86f69609905ff2bf77d0970ce5f6baba7c2ce03b9ac3396c4f42c99aec2d4e7546bbbc055456d0b852ed22293bb55d9840e1e88efe63a72ee80291fe859bbb1fa9de8af3441c4c8747521e0093fd9f69072f78bc1451947280c60fb66dffbcf7d1fefba79cf5323baaefe233b243f5597e0a19732b4d82a6e20e8bb9cc7faefc7c664d089dc52ad4c4e0b9983097ca36dbd149cf37de8d4b7510fc6cf78d3bb9b74298e00a5bfd4f72930090821dceb50623c99684751f66b290a836b62b636f94c2f50b063c0d0cfdaed8569d71a1aed5c2ef5b9630141396b14b71a78ee12c3751292b95abba64a3542d459d0778d2bf8244b2f6e4e2988aa50fcd6c05dd17bad6dfe4cbe3033374deff41117e17eb213920f84dcacdf788bf5cce5654650964b9b10c7d39779b7158c4a1b06f80cbfe16a82d17907f9e87cb2888ea0f4fcaa9093dc2b56390d99d390747a950a2fc8e5366389a59f4934ab88328ca7ab4fc30839065b5df0eb067ffe577ef62dce3a1290026db1e894d9795047b05c89fa626e1be73f1a420eef55834c356218cfea3a45a8957e96f3f6592310fade69bd318b0cb988f1e887df0033b5d6b0d958076db793448009c0c4a14491f8eeeccc527f20ccd718845a3964cb83995d988a2ab96619a31ddacdac891518e971df5d441eef34f56756f01fff94ffb76284d3f33ee7d65193489ce27f6ba05b9a842acc4b1cde48b990f72e02b7f2cc912a067ca09f1becff6ec17458d842b832b53ac064185f88947bc8cae0c4aee507f7323d83fcc7f38e5546da96be7a70c77a9169dfba00d63d1c1e007ca5a109d1f85a3c0f928f1a36cc0ca70f03f133bcbb3998fdb54e8dcd99055e2a35da292ae0006fc2f15cc98c2bf32c7ba03ad53b33831e11b12e7ac4be88c50f9c318ce3d9d1b1603fd489df1be75ff071991fe4549da5db1da4200254a9f274c692df
+Pseudorandom shared Secret A: f99b16eae50cf4bd8b6696d09485a13974ac38eb2e29e5d236387fc6be6e6317
+1fc6a392e4def830eebeb3b634ce01f6c59e08d8bf00c872d1a3785c78356222be7adb7aab2e2191acf1dcd79360a45fb32969661a78756c30c53ac501ef5260
+Public Key: 518913cb235cb96987db6764b1f7634e8c6ca0705b9e11b8d4173021c23f5c8135700bcd42786de34772024c09d6f7271f883529c813fa902b37c88de5073bbdf887c9e872c6040d34c072ea5633d3f158e8155b01e2b6caa895bc5b10445636b8690cda03c48fd1c5a92a054f1051e5c0919f373ea3800735f8b0228570ed6b1c1eb64de1ea0a783a4b6e255bbadbbaaa34b78ce024188596841cba52e496fd55b86fd8c412f64ceeec9fd7cc63db70312f128d1eaac5577c5c6537b17ad2af8e4326041aae50fa69ba132a1c4a8d65a8132f18639e0a733c20b0cd6c8f6dfab5cfd2430b46b5a2a64d810411cfd9b44ba016e41b665a056c139141d2a43ffe549d75806949203300a716f8249d575c306b694abdacc8c9a37fa8d64578a255188ac35b485e1ae38794b10ef0f6cfd1fb2a8b36133df3377cf11c0ef20a298079d47189675a718a0c5a65fc60cd73b13edb67af1b4135496d9ce83b94bc9a6c26194f8c1ec98c1e760b83af82165abc6988c1a214474139a7214815a9f7490ae5339742252f8d15b1203a0f5da246ff519337b88f4c3a4f7bc8a76aa6034b23a0b9a4707a9a4e3367148ddb9fae2a4ddff57ece57a3d61764c49455b772188449783b3baf0632297fa61148d087f1c606a24b368df6ccc2c5acc781c6e280b0d140093db38bd7f413b1b344f1101018a49f528c24e3f64af379cb6137380aabb7bda1516b6804681bb438db68ade7ba35c291a562ca8c3c1315c6868b909c01eaa58fe98502265fbc785291f87e94bb1334788052d682b007cba6ea7f25b4bc76509e191748e8e03443c39a705a1589519530445898969f179b59387303cef43387ec1bc228a51665327f795324fc119002586bec93083a7bc15770a1d202a5b7818954834464930c437945d2641d334c6552c32c9c81dd0cc0c684516c849ecae38190f47618b877128763dab67c0d5b8f9c06bd5574156765303866b010ab9f2480b440127cb193613084a41fd42e0846a4c5a1124ba9057a3259b8a40b25f876eec6149658ce4d4a65a50ace8be213b1c672a3a1c5e4f94e7af5939c66be173c80dc03c76a49573e720f88f149c154a21a140ea95a66c9172643516af8002da3231ca223610ffa43145419fbab5f8fb322be82aede719ea396387d7c0f43ca0a1f28571acc4c97264646c78fc19c09f453c70c853b63a1103eb524ac6090e47c61c4469757108406a772972040f0ec37d455aacda25d18f72c8a960fff765d10ab15b92657e9c289c155c6c4001bd116c05a416a97d3440d3920a83a06ff4a5a42d9b0b0e963c196496eab2d88b31cf4b925d6d20f95ea8b14ab605283c796842350b088a5b86f25a71e2244b2837b1c105045aa5ab8d064174287470782ab2a8abb591aaaebcbb49df8a2be7348e11a9ccd459dcdaa94f8f1001d31871a595efa50b17adb2f169777009b5d4e019c49ac0ff9f36f9a892deb392cdce304c0ab871d571e59bc9549eaa40037409bd999cfb06940523364c98f19fb8787b60d8ba73093dcad8ea92f9d747a0493b5c478018d4883a82505fa59211ae994938b452c026c94dc0018c75b0f2208cd767c1bdb11b85c5ec96538cfa77db636ad1dfb1290b71fa5e4b9f3b53b80d440bc00855d5c4c898ab7ace9cc8097ba8652afc4dcbd325b0c47db31b5726638510f62d72d6a9c140425bcf1b35fe1d659a74a3011b96c273a0659c5a81bb0ce8e332568ac8afac03215d90308a4957f86727047c4b410c5d1a7b29aba7331723239fcbf48b3432aeac9b1f67e8514bb9b44925f1717ef263a9a4c6a07eb29a5bb9aba9831a5630874c08b98159de7a8aedb596b06ac1541399f91034b4ec967209804267482a3355e1d988787c7a4ee700557c02bee413e61d01a74f786e02436a877995ef39a44c6718166afb06566d038003e82568df15713994ce82429f040773c103a738c04626c531831102d6b1a1d59428ba9c0ee44ac21b91a0e42c61efc1baedab130f1bb235b40e5294b9f258f4ad18212bc414b67198f27417f42381e08a7fa98aa782b13f6123aaee07cf7f8a5117b00b47b5898c7cfc759407988c38a37542678a41bd96006a4bc4f96a505e947c118bebbc171cf269722a718fe83190e292a58345d366a2685954fd081490ca8221101d856e2a370080d3e3914db9a59cb19821e1aaf5f297e17bd8857fb
+Secret Key: 2e0623b72b1208c4cdbdd3980dac2915b676862988c541b8149cb287576d0424125c593016c442af5c4c3386b5d437452d6b58f516c48eb2610ab2a1a335a803b448446919568c6f023cb8c2918b4b860c4c07582e458466652b97e5a81bdaa1ea4827ad97cb5b669b51c03f6f0503cd110846d5a158a60a07e3c3a3c3055c549a27b9693ccc6b12f60bd026a6512ca442e05eefd4a5bb5455ad5a435d35a8faf418a090ba172048bb0ab05353275519156cf1153a13356272c1f83b48e362700d0c8d115c9a20b24493847a5cc31556d02f08459d2bd538e05211c9cc0af694582782382c276ed49892264b857a284acb86951bc5a3031864b0029f37d6759ca8617da929b9941b93bb40a4b6a6e8133f249c107abc4849974f6f2c4f46b56f8cd82f0f7679f9260dec5c2cf3173dcb9ab9f52424dd5a60d234a60722a46be78a117bc41b004d5a05700339b02ea7531641c779154c699ac5aad5695ec453fec926b333790f64728fe892bde062f92121dee97447e3b57510638a4b7574b57ea1b0addd11701c2cba2fa1553ea0a31f035757584cb66248b7e882a1390332f415af2625c5004c75786ee85bcce99297cdc697d4da7621cc8c637969edb634136c493b15969de62ffbe81ef9aab86db6c9feaa4895fc96327a9a460ac1d159b742c50acf1638f558b64aa30d3704bf21342e115c2626725a0981c7e1eb2913984b758b1bed59744db6577fd581e58c9cccb14600934ef7683cd5862b0f794ed8b9340e319d65091084dcb5bc60687cc00e3956cb96b87092c22f913b7284bbcbead95e6cb087a624437c00945001099d606d31d7745d651babacc5407882a73056ff80b532e78a3b34c039b70734a206afe74a866536bb2a423ad99c97e0601cc83b3a4a1e8b56b2de409325c220e1b1567df88d5ff4c3cb43c10799ae6b941e553c0cf4660139477517142240d34fc1554008e391ac714fd1c5460ec6cd94d6b73aa081bcfa44f4289d457893c56a82d6a87f0ad9a913861f4d18612bd179615cadbdb9113085b5caebba1c7335792696304003c4dcb2201470fa1760247475f965256c770135b23e0ce1683b7a15a1faaa66b9af3cc717889a5753838defd1278c964ca0b0473f0a6ac2351057e60afd73af1fd0a4b215a1c43465cae8259b2366c4859035f87139706bdfd67f92156d37c468327117e45942a5748c99e8cbc7d61828d9b9e7b33094f59022881c0b485aabc1ba9d614935c65923c8adf7293aad5266f380644f9745c7d5316d308e5d2a2711276c4a08064259871b3437ea2aa11b713300436f2e05818f2a02285291c37b19caa539fd2280997446f4a8ca9940341bc762a5503c818a57923208500553ce699f03d645bd985e57ac535a306e2763cc753644f77a132e4c9be5a01eedf3b25c1b29224751deb981cc36aa2297369a497ce8f657bbb09d5ae8163b9b4e616534be852a05251f17c03bd2307e249b00f59ac1b8f56f9b3099b06a7f967a2e862622c221710d5b2f830658169551d9010a1e7253bee58e64d653f4b8415efc456c63b009b7590663ace24b7e501747875ac00610c04dd55329b290dfd519ecc53028eb4230fa892a054b7f8195e24524ef0a9c869056942290a7ca4f658594f1009e962ac8898910d8a41f5a167690b61b15b604e1e91e84f7456e44c7e66115c9d7473768c23299ac9b224d95f4a0dde8b33aa93c8bba444fb9ac87687d9e4413e75b2c551663b5098bf389ab12ca4d466734fc61b580158a77646d26a01f9264cc9b07c45250c20af00b44f17c5b60c1852496b4573c0a208cb8aa3e0da3420dbc04f3a1101e1100236c5749885fdf21384f7097255b1d49f14283b941d485537ad92f3d02846067bdb8c35bbbdcae7e5a5519428def197ef65064bd3ba31485492eb86e86f04756310df6fbb81f3013832b507fea48394c4108b24e2f2655e50555efb9c0270705c86162d1b23ed84b73a9e056e1cc78202c11f065a5394999ee00663b5a8ca9caa2ed91b6a8d9934c5aa45eb6c005d035c20a827538a7df97c7443cc84c1474d596248ac56468174fa0e0803e0554c4fb50b7187573964058963b60590c7371b84e436e1ec81238d2b4cfe486b505482e281c9fb658fef962632045b7f4b564ab489cb8cb518913cb235cb96987db6764b1f7634e8c6ca0705b9e11b8d4173021c23f5c8135700bcd42786de34772024c09d6f7271f883529c813fa902b37c88de5073bbdf887c9e872c6040d34c072ea5633d3f158e8155b01e2b6caa895bc5b10445636b8690cda03c48fd1c5a92a054f1051e5c0919f373ea3800735f8b0228570ed6b1c1eb64de1ea0a783a4b6e255bbadbbaaa34b78ce024188596841cba52e496fd55b86fd8c412f64ceeec9fd7cc63db70312f128d1eaac5577c5c6537b17ad2af8e4326041aae50fa69ba132a1c4a8d65a8132f18639e0a733c20b0cd6c8f6dfab5cfd2430b46b5a2a64d810411cfd9b44ba016e41b665a056c139141d2a43ffe549d75806949203300a716f8249d575c306b694abdacc8c9a37fa8d64578a255188ac35b485e1ae38794b10ef0f6cfd1fb2a8b36133df3377cf11c0ef20a298079d47189675a718a0c5a65fc60cd73b13edb67af1b4135496d9ce83b94bc9a6c26194f8c1ec98c1e760b83af82165abc6988c1a214474139a7214815a9f7490ae5339742252f8d15b1203a0f5da246ff519337b88f4c3a4f7bc8a76aa6034b23a0b9a4707a9a4e3367148ddb9fae2a4ddff57ece57a3d61764c49455b772188449783b3baf0632297fa61148d087f1c606a24b368df6ccc2c5acc781c6e280b0d140093db38bd7f413b1b344f1101018a49f528c24e3f64af379cb6137380aabb7bda1516b6804681bb438db68ade7ba35c291a562ca8c3c1315c6868b909c01eaa58fe98502265fbc785291f87e94bb1334788052d682b007cba6ea7f25b4bc76509e191748e8e03443c39a705a1589519530445898969f179b59387303cef43387ec1bc228a51665327f795324fc119002586bec93083a7bc15770a1d202a5b7818954834464930c437945d2641d334c6552c32c9c81dd0cc0c684516c849ecae38190f47618b877128763dab67c0d5b8f9c06bd5574156765303866b010ab9f2480b440127cb193613084a41fd42e0846a4c5a1124ba9057a3259b8a40b25f876eec6149658ce4d4a65a50ace8be213b1c672a3a1c5e4f94e7af5939c66be173c80dc03c76a49573e720f88f149c154a21a140ea95a66c9172643516af8002da3231ca223610ffa43145419fbab5f8fb322be82aede719ea396387d7c0f43ca0a1f28571acc4c97264646c78fc19c09f453c70c853b63a1103eb524ac6090e47c61c4469757108406a772972040f0ec37d455aacda25d18f72c8a960fff765d10ab15b92657e9c289c155c6c4001bd116c05a416a97d3440d3920a83a06ff4a5a42d9b0b0e963c196496eab2d88b31cf4b925d6d20f95ea8b14ab605283c796842350b088a5b86f25a71e2244b2837b1c105045aa5ab8d064174287470782ab2a8abb591aaaebcbb49df8a2be7348e11a9ccd459dcdaa94f8f1001d31871a595efa50b17adb2f169777009b5d4e019c49ac0ff9f36f9a892deb392cdce304c0ab871d571e59bc9549eaa40037409bd999cfb06940523364c98f19fb8787b60d8ba73093dcad8ea92f9d747a0493b5c478018d4883a82505fa59211ae994938b452c026c94dc0018c75b0f2208cd767c1bdb11b85c5ec96538cfa77db636ad1dfb1290b71fa5e4b9f3b53b80d440bc00855d5c4c898ab7ace9cc8097ba8652afc4dcbd325b0c47db31b5726638510f62d72d6a9c140425bcf1b35fe1d659a74a3011b96c273a0659c5a81bb0ce8e332568ac8afac03215d90308a4957f86727047c4b410c5d1a7b29aba7331723239fcbf48b3432aeac9b1f67e8514bb9b44925f1717ef263a9a4c6a07eb29a5bb9aba9831a5630874c08b98159de7a8aedb596b06ac1541399f91034b4ec967209804267482a3355e1d988787c7a4ee700557c02bee413e61d01a74f786e02436a877995ef39a44c6718166afb06566d038003e82568df15713994ce82429f040773c103a738c04626c531831102d6b1a1d59428ba9c0ee44ac21b91a0e42c61efc1baedab130f1bb235b40e5294b9f258f4ad18212bc414b67198f27417f42381e08a7fa98aa782b13f6123aaee07cf7f8a5117b00b47b5898c7cfc759407988c38a37542678a41bd96006a4bc4f96a505e947c118bebbc171cf269722a718fe83190e292a58345d366a2685954fd081490ca8221101d856e2a370080d3e3914db9a59cb19821e1aaf5f297e17bd8857fbb5c6ce980e7fd8c31061e5392ce202eff332056db948ac78793d6121625f8519be7adb7aab2e2191acf1dcd79360a45fb32969661a78756c30c53ac501ef5260
+731b12e1a67c69d8eb2c415bdbd02a5e19362cf95d83b0bc5273e0d53c75d239
+Ciphertext: 026f8667993d9c077cab444b8af0b4ef7cebc97068cff07b94ffe7552b28dde571627b26a96f6cb795303dcfd684a29f79928ee832382e467087c713f05a5e2cace2fecb8aad39449339e33e61e4a85e1979837903814300ff1617ef5d19affa735bc1b78ab578732c7bf1eff9efd7de5dfea2bff0dbcf5c7d59c65737bf5fc492a982dbb8c94702061ce3cb64b73d2d2479f31876c68a379a4f8df8faaf3706cc82647b73343df5690065dd9222afadd027b648de4521ef723c9270d6fbad5fc5d94e2c9341a7edda6e6fec010d017282917d36c749497b2511674926f427aa26fb0689c8eef72eeae6e222ce8b4bcc8fb52fdfabf3d0c877bc8ceec991dd2010191f300513e3005c3ad48330f9d9947abe6469c170d7e4d7bb478d956846e4a6eff22ea935ce8fe307978bb9fe205fe43f895c8d480a93a22f814c793c2189fa7448a6016802c0ff65c392c4dda586e43ded1683cbe82cf5a178f10d6b22282c0bc1f95303d74c105a450d4fd9b0dae32384c159f1a5eb0c725e41995e6e0b9facdf585e6c9c021f77a33ed4b844506745677a23af9bbd66dc629bee9041be6c9361336971f44a0dc30fa8ffb7f6c7c44085a9c9dbfa3ca46a6b2eba423195cd4d74f84135b76545ba37300832209f2aa18ff30f1a50c8afd0667c79e24dc2cc9d1dc492ef0944393d21d2c2b84f873809e914a91ce2a6decbae6d5c3555d098db6b04392b8ba780a3f04a5ff327b33d2c690a3cb240bf5bedd9441204f79a16ca9c2ab57e9c804e15736170296e5aa03b2511e416d6bae047e036583294289594d0fd1ed2d97ae2e6abc7cc9bc73658058ca1de5aefd1eb850d2d156a242c058affaf73ffc99827036ea4910945c9cb21dfa43fbd98c585499308125ec2a9e12c38c2005b2ee0a70f10f0433156ed1b842368030a54d57c6e3a35e9a5be2153b614d52b92b10328bc93f4ea65c8eaf29968bd0012101a636483935c9f963accd5c6ad06492d0ec73e0893b4bd14597297748d0345675bc90a8405afa06761c7fadee4eb577f21c2e407894ac97f3256f2fe741f5b1816d083f6b2f27d307e5014d4d6d730f3e8427c4db08623723cffdd906b472fe86a2a9aeab29aa3fc9f2f52297a2c67422af819d4eeb3dc34e25d43ff5e227245ed32a2830f8d748064bb52faf5c3058e85093c833ae2f3bbdb526d7532cd6fe3ca8c5a43253303bf10f63f1003d27403de74b99567f14b7fa7bba2ccc26612eae384be646604aaf7efb1f5915d3525e3b8f5524f9db52d8276798a5a3454e38099d41389c0c94e641cf561d6ed6e19da07cde40d7c3c0cef0e3a075754c95c5764550abd3c5deb45d905764e4f9773f3248da35e4090108baa59796a61b809970e03810f9ce83eac974910b6db1cb1e6ee8a52fb2b625d4c9a840f4f1bbbae6626fbf5133219dbc6081d3f48556606aa25087715ed3a15423c8f441c6aa6356c75ee47e87ae79acfcf91333813002c1f5a8289299593a09385072ed98154bf4b6cf1f4feeacb7efdd4dce66d3b4f3fc512b3b72333c64baf62b2ff9a6d594a0ced1fdc029ffbea4bfc16100edeb7b0e0017be214e3effb62132ef6965b586d174a3e303673fdeb5c3e42c598cd925f11bb82652ba6821133a3c58a4b48862f3195000b03d0fd9590e03e90f74a21b79e1279e3dadd026499990a6db785a9f30f90ea56ce27b75181ebc21507aaad1583bf1066202fc43bf23a9ca26a49a3c9cb615e8e09719b01f8426b792e67fc5d8ec5722a09e7fc7b191b209c464c940429cbbb25c1a0512a5d85e7e4a1d28f39bfa82110e46c80c4939832511ffe12bee51eafbc52e0ef2343ee3d3d8e5af66602ec15f59b7149e7570bf9035bc6df4f8202bf3c7313219fc67131250e4661bb3d89380b19445baa290a802d64ae150fdceb0797c72164a2b46de732738d5e47ca0b1c8772b9b9d817240fb95831001e8d0b3805ed75cf35a79b4f381837253a49fe46aa37866af2d41b914bcf317f3f36fd91bd1ec761d95d6d4dc56594bbd252f0fb6b99ee97100e62ce4f04876a40a68c407d818cbef62bbe833c6af2037b8f25f69d22649ac68e48a3aea8775f11d1cf066cc8490a87aaa9ca018219a0422d1ba738d794a1a7713a430df273278c4c6b682c2eb6dc202f0db59fa48c9960cc10a001767ec68a1e1105a59c2d770bfb5bd63620e37b4c5f8f
+Shared Secret B: 7005c853fbde1399bad72cc432b725ee1ba6d3788df3d69b40a185327af7fc24
+Shared Secret A: 7005c853fbde1399bad72cc432b725ee1ba6d3788df3d69b40a185327af7fc24
+f1975b7cc6b7a6ae433f4fa0dad0e1331cf837a45781ce714183294943996d41a8cc1e0e0847b803909e4574d83d2a15dfcd6a7f6c1f4ca1456ceb0843f490a00f9abfb275347db55e7be776ae734d2a9a578b2c7494882ef995e691a607aa2f2ca2ab617dc4e86369733951e516df2bdce9b0592acf0892b980042e51d7d2c2ee1545ca7af89b52956f8a3030023ee526cc762d729862878fe7353aefbff9a0b9127bc72f39c5077012ac178f688a18df4d3bf0dccb1532ae3235a548eda529019d4eb218cdd1fb9b65703e62112cdb8c6be58fcff061265d6783f2f999b9f46fc623508623a2776788f8c66e43ad08456da53bb615964d0f603aac3537e8dc543630e3550a1078c2c7561e0608ee72f003ca596eb2e43f9fe531d5cd143913702633ea65e9226364adee3f30129f4b8a97271f57603471b9845ee78458dc5c1c5a415a959a23726424086cd8b4a3488ed2cb5c60352349708ba47a650aeed0bb2afe79bbf9da878c40ffd21dce2b6a15fd9adb0cff1e17e9cf7c764e1a1951ff5f11d03cc83560ccce4929839f087f1021a4e2aff269d36f03b062cf073aff023e483c1b62232bfd53b5d704223934d458e455ae26a43cc0584b6cadaee1d2f6a8595d393de261fc979d1dc0c0ea207db65de2de945c2ed09c712d94139c7813f3086695aa6013cbecf5d9a95a1efdcd9435c87529d199e6c379e18daaff0588570da7a4fcf5d3f020f0491a60067ca8cbf6d94213f38a28a3f876d44b1f21cd4d306135719d1872009fd0a8f65ed267d3546b8590bd0c1cc6fc40e922e3d90b7523d0f788ed5da5fd9565119559a0cde0dcf10969352c9f14f07813d54b2514d1bdba2d43c799ce38179bb8f4b39195d27561478420e614db651bea6ff381c0f7855a2ce3ba387bafc8ddc0c2619755bbc3f3b2c4510233a75391b4b22eee8043e6ffddf2b4bf85fa97a8a25108520593af531c900ed39fa1cfc5872d8cd9f4c6f745de94dadb52ac3c7bbf08604cb126f3a9dcc268b88f3bc9b8629e7eacf4bba502c48b4f0e6f3fd5ca1ab6fc7f063a26dc26245b960c32df153e2b9bfae27bd952cda75ef6d35e16ba854946d6c5cedc9ae4a84fad9deea4d3c89fc8a37a213c3386d895793d1be41399b8a7204acd90f77ee145a50cc2a39bd5fde4a18804b1f10f5bab399b693d0c59e63594e28f0d34adae5ed00b773be005a2ac743da58ba6584588e163f78eed53fbc7aa649a6cc838951d22f4473135930834b03f29e882dbb7186e1eb8a64eb911fa916c25c121ff124160aa4015b2eff8911b6c4e517b5d02a021cbdca1021f97d5de8417dab4681a59449b1f8520dc5a7a4402e44113aac1f0c5e322183d7e6e9ba652bab8590735c6bab7b6b252874dc9b49ec6fa6310682951737ed37f05e3bea5c1ad5bba60f12946f9f40d809e756dcd549b6943c9ac3c680d5e20791bc80e50f207a54c4b43b83cae11bb4d9c7cbbdafa539fb277b9f533aa98160c34a74e50d4c55158e2a36e2e7e5a440e92a4d5cf0c75c4ae87bc1559429fcc47fb2d3e0f2e40f937226f39c3d6e5c836fe2993a0f9ce1ece9af222185d2cc881689516579d7d534169c88ba53e5c4cbc38c88668b331890c411b66d9453540979c0a3de9b09fd08a7cb28a210a496c9b0a5cb3e1b44c2f0abf30fe8ccaf6717df4084697d457e648f6f27c02ccf2354b4a0c419c1ae35273f8a03fd1101f260d89e21f7d55acb785dd0fe673cc62bbdc15ed88590fb214591e543cac1a281d8817930ded1e00f8f55b5e4f4f2f55e245d15cafd0d115878bfd14e811cf8cd640ef2ea221ece328328dc1695760db4142c495b88cbf1643aef75e53d3b92ca822cf953d6e95d9007c7a4e95a151b5e759b0b66ff16b0aade12385444fc58fe1091d1f2d5d9012893d821403e81707fae3412067407afe127340eda44d16252e6e7e0a7955933b23df0256fb09e380de309e60cf9a79cc07189ff8b2548c1791b7243f777caa2355407da6ebd4a55d4868ae63c3ddf250ca2862f975f29fceeb892b9b8ac2613b20992d20c128249493a5e8661d2235108f9e2ba1ba5c04f2431eddd3d2fb5d1782369846dd8364418fe6f281fc32ffebaa657d144a79fc6cfa424518c46617688237c976085236c80c6e1b999fa5c56dd40258522273fb615879c6a2f9727b7aae748be57ed347ad8b028efb453e
+Pseudorandom shared Secret A: ddda39e0ec9336559647bd259e1de37e5c71b4392413b3aafbf3c6c3267abad8
+2a39365a0e4f9ec3ab540ea56f3169e4f107d98bcb2d8461a6f1385f94f260b71cfcccfbcc324c19b37a9b00275c933c8da47ae2a9b504f9d9df0485eb883a0c
+Public Key: d14a3d3cc5bb4cd38019014523d06398021485605582208e4240c89c1309628b903f78a2686b1c096a81137b3d794a097e5b99d8159b70c38a14ca34be72a382dc65914984ff753e75934ada582f24e50765908ef02071a7b031058c3a0f4c9263da3f3dc44bce41cf5de5028046213dd4a9f5ccb8839a5db491a317c8273e0415e536c9e817794c2c50100591800b4e332b3af9088c7360a60b6b4892babf0cbcc2cac7a35ab9babfca634dc39614b36f12821c31dab5636334739a2659f16704256771c1bfc8d60e3496bcbad3a1deeb70f05b8627996ed3254fa5766596f010322328426207acf3bf0bd4a40ea7b23d221a891a6cc64470518c669fd88b18c63cb9a4819b1a6894389a7775cf58793e583c8c9ccbb2db0232369037a8a95d7e41057eb0a931c14a37976c2d139af483b7fb7871065a1630358ef8366df572c775a69520a017204b961401a7a1b199a691ac771aa92736b19aa107ed3acfe2448f631c95cf2b655c513d0ae6bb298c99d1dbbebe7a26a9745648fc374c343667937c53e248165343fe4463a7818f13a6368cd23ce43a67a954baf0356038e6a44db540c128bc5d9814f12651861084edb4020bf9734c1ca34bb8a46f6ac1f4088a3b9c623a49b3166a7deca176d916a23db147e252ab75d78138fc66bb1213083c956d92156618a36c97b6d58c164976409ec55a6fb48e4a8cac3e4483604989fb1058d8603360199f2211b15e4c662143b2d6ac75ded73e70c1cdf8ac790e49ad1cabbd2291960139a34c1559eb295f97a251320491a717cbc4e5202e85324edc107eb52a19059e9d328cdb17b2b0f1c9c3095f867b3fcfc7583a15ca57a7be2e084518898c64d418ae3cac7140506435cc751c050139312a73c89ac0902da5354d71bca1fa262d464a8966559f050373ac091aa358c2d81a9e31059bc63fccd59eabc01e76f264e18bc6a1883c220261c8d58f5ff5758e7185fc374dadc91391b43b5b1021cbe98900c89745ba9217db946170b2359798e9e971c8e887dfa586583544a5a05d4220b18af6bf50f5beaf71823fe4aa7a3c93d197767405a6d57b0344ac6c841bc60769088b05bdd03377484c846606c2ac34499b2315baec195bbc9b50e596b941b654b36020e34dce6a7269c27c1c79caa21aad26eb95d5295d55c75ea2e85b078794d3bc31ffa75c81355d7af1724b20b6db6a569775222cf69843b30a85cb46b6b32ad65b2e1e705d6164453545a049f898c383999eaa6b1a4bae7fb2690de96ab87c829f2aacbf437e6cf7be658ac687f95f9103ab0dac01f8115961777dd16a5cf4502f76f47ad42b1f6b35a554600cb8f72429dc9cab51a8a368c943d5c2c565a4870875ef051c33a219fd7bb905b064c975754ad9bfe3d7586a50198448c0a6ea2260d4846e6aacdfd6ceb772390e3031dc7018f776cdb6964df6ab391ab16a6fa89c5fda2b415c71a2f4adfd0a99ca4779003597b98bb7e783ce9b81471c755e53dbc806375a056912fbd3891f64126b6239c897867dda2e1a440d1708988f8a9eef22addb16bdd0777b5b6529f850053a9aadad4b965934c39eb2ce5ed81e44f961e9958f5ef0486dd4b77331536be358657488dcbba6a55904125225d44c6e96604ead5b691cc17d84e6286946ae92b96246c3b033b981030457c4e69afcf46ac625c80e06605f50cb03506653352dcf30a065613b87f061c2465f69a26ca528718fea5a83c225790a80cdfb29962b259ae86daddac9b480a5e19171cb242253a49b6a4287c584a3a08821717bcb9cb8b58e8a20be7acaa1c187ab9112aed22f02c9978d1c58a5152c66a98f388b2ea461aa03921dab4c6df4b00d0253864dd76ed2f7004ca37c6e2766c5985761573881f9445892773ccbc401697190147676949cf7b361e8c726825311d1003cdfc6bd6f543497620ecfb5a137381f9af4c0c76c9cdbe474e4c24378cb3ed527697f43163f988e9246bf7376c913b002f87a34e7d63e618b05360687c99b0130bb5b1f355c62620ed5b2ae7160b4aea145acb392455283faf46da50abd917b2d4e91baf577b560bca21d185499e75c63dc351e8451b768171a07a9ad8b56a5d3172de3bb68e763e552c79b895858e2b2a5e6aefaf4b1edb3babd40233487872a7b228ee359161b99ebc671172ec8194586a945b9a37c594944be3c2cbb64238b958168ba98
+Secret Key: 54e20c5c07811f901f974ab7a4e0609a35c31f6854b001699229bb57217e55325512aa43662a29b0e3709ab502aa16583ec7ce3ee53d24a6c2e13bb58e9cb560d80141a24e8a51c562d2a2f14c889904bcf0613e5c499885588fd79806dce5c3a7b19967f51874928fcfec253e0c0ff2dc37ed141b120cb4af59114b59cf3d08c5be285b1a42ce8aa91a29db35746453ca1279477a57e4843cd4e5a051d990965300c54271bd1abc009a64b5a61464724dfe720b2dc38654a4ac7f647a97215743e213d9e56500e2ac0873227e7c1b399145c4a71f88f704095863c60797e386359e84a299e2021ffc2222c10580771c5b2b4dfeb5cb1b2a1571028ab45ba3c4a3832ab223600b49ef4781b2c862f0e6b01b7518a6b3417529887413b965aa0ae155402326280b8371ddd368fb60aec5d1a93aa52f80065d0585bff5899f16746be43a423f34474c4233d3b461ed63271f250c0772aa2e64700fb8b03edb33da81707071b874b190ee756bec2bad62a604862b930900cca07c58ffdc751a21151ccc35ea9c9b4197319752862a424fcca00564c91e56bb9823e72bec88000c54769022a8fbb7a96fc0cd8de684c61290de183ede7a07f7190a26058e923a12987c69e1c69d7e16b65b7890ce223c0a9b4f6698ca81dcb322340bed755bd9b98df4a71b973963553c289f5b10750921ca4b045c72318558abae1b2e63155f06d45d1a49a5407894f5115e50f66e42fa4f641911a5a70cbd91cc7cc152ebb50920fabc9612bed26a828170973106ca936a25a8f5c5479105e4771b49cc1cdfe31b7da988c717a3701114e09854df848cd95265478bcd891805c3317a9c9a5f74e4a0ac091c734a69b2fb5f049968610b72cb3b55dcb4907e605ffab995e4c711b2e4a5f6f181528195328a4efac55fdb87aac6343f0ccba071472aafbb55afe8825bbc3062ec28d39c8d4990a17f4a7e09b02ac87731da6ba0dae30a478420ab4092af34a541a17804100c92f66247a79242f36c46964b6c08a95b3976c4723277791794482ed692ab6271bb23b5b064435cb56592ff90170ab96f0389875a15409bb72218c8ae78abb21497125b368f6ab90843d2424900abf517107b9150fe6298db3aba66ab0ec300a5f3645d4e0b4eb9e7c515b331efebccda19c77c706fa7a52cf6d5151b21a926792ff145b54a299d4615837249053d577a58b42c647914ca2ab39c8807bda9b20ab649b082615f823c0489cdf0948a8657c58188c869c493532b11635c1c08d14f958905f4674d35e19a541a6bb406a0bd64c167aa6a5e8612d1699e844037c5c3c859b21ef5897ca61935fceca3d0e900a0c240033b50e5557e9e482268d518c0c564898337c8131f290185eb06ba5915026d18403f13b81b2510644ab3f5248a31f27c19eba42cf0c5e703b52f2c2e3877836a077d382a01517783c6e6276431215f4509921b346e066173e7cfc04a002eb88e47fac5b1c693fd696cd16c45833444c7459f5d07837014c9604c6fc581a984757c3834a83079bacd28c826462b4fc38c4f259fa9a54167a1cf82278e0b1091b3ea22719cb63aac13fa8ba3d83b3ef095a329128b318b818d745253c82d77000169398e8703062cac10336aa796619b09513012a74934e314ae751ba26424b375aec53031c7214f03d8299726c2116c263fa718c40a868cb3456f1243987a3f1f65c0578c663542965ddb4af3124d3a9199cb87ad0b9b8c6c47b57e273e3c1b53fe8348dfdc49f09a8d5146962ba833aa727b465501a55b290fab770660c90834cce6671690321e734916eca481738caa003b309be126e5cb049f09bcf8957580dacdd61437cd81296c851c524c733d9c01a2f70bdb57166c210396192cd5fa45cd8b5a05216674b6016fea8394756d7e3b2224674470d679a6d35aa76b8ce6a025d5e77c69d17d072a215c53a561bb6a76fb059318a7035b7c01278eeaec4467575bfb06d0155b207b495c7731c103468c96c5c6beb07e332b748a941974b1ae2ceba5a7097677da7dd8db22a7d92f92e453c6f83e0432748085c3eb3c323db745f59b7e0ac736e8e43269ea5e7dac3410ec894a4981e762b89f074770635d47583bcb19b70ab7ac1d7bbe38078021881ab5c5b558d69340040e74513f84c77e767664d14a3d3cc5bb4cd38019014523d06398021485605582208e4240c89c1309628b903f78a2686b1c096a81137b3d794a097e5b99d8159b70c38a14ca34be72a382dc65914984ff753e75934ada582f24e50765908ef02071a7b031058c3a0f4c9263da3f3dc44bce41cf5de5028046213dd4a9f5ccb8839a5db491a317c8273e0415e536c9e817794c2c50100591800b4e332b3af9088c7360a60b6b4892babf0cbcc2cac7a35ab9babfca634dc39614b36f12821c31dab5636334739a2659f16704256771c1bfc8d60e3496bcbad3a1deeb70f05b8627996ed3254fa5766596f010322328426207acf3bf0bd4a40ea7b23d221a891a6cc64470518c669fd88b18c63cb9a4819b1a6894389a7775cf58793e583c8c9ccbb2db0232369037a8a95d7e41057eb0a931c14a37976c2d139af483b7fb7871065a1630358ef8366df572c775a69520a017204b961401a7a1b199a691ac771aa92736b19aa107ed3acfe2448f631c95cf2b655c513d0ae6bb298c99d1dbbebe7a26a9745648fc374c343667937c53e248165343fe4463a7818f13a6368cd23ce43a67a954baf0356038e6a44db540c128bc5d9814f12651861084edb4020bf9734c1ca34bb8a46f6ac1f4088a3b9c623a49b3166a7deca176d916a23db147e252ab75d78138fc66bb1213083c956d92156618a36c97b6d58c164976409ec55a6fb48e4a8cac3e4483604989fb1058d8603360199f2211b15e4c662143b2d6ac75ded73e70c1cdf8ac790e49ad1cabbd2291960139a34c1559eb295f97a251320491a717cbc4e5202e85324edc107eb52a19059e9d328cdb17b2b0f1c9c3095f867b3fcfc7583a15ca57a7be2e084518898c64d418ae3cac7140506435cc751c050139312a73c89ac0902da5354d71bca1fa262d464a8966559f050373ac091aa358c2d81a9e31059bc63fccd59eabc01e76f264e18bc6a1883c220261c8d58f5ff5758e7185fc374dadc91391b43b5b1021cbe98900c89745ba9217db946170b2359798e9e971c8e887dfa586583544a5a05d4220b18af6bf50f5beaf71823fe4aa7a3c93d197767405a6d57b0344ac6c841bc60769088b05bdd03377484c846606c2ac34499b2315baec195bbc9b50e596b941b654b36020e34dce6a7269c27c1c79caa21aad26eb95d5295d55c75ea2e85b078794d3bc31ffa75c81355d7af1724b20b6db6a569775222cf69843b30a85cb46b6b32ad65b2e1e705d6164453545a049f898c383999eaa6b1a4bae7fb2690de96ab87c829f2aacbf437e6cf7be658ac687f95f9103ab0dac01f8115961777dd16a5cf4502f76f47ad42b1f6b35a554600cb8f72429dc9cab51a8a368c943d5c2c565a4870875ef051c33a219fd7bb905b064c975754ad9bfe3d7586a50198448c0a6ea2260d4846e6aacdfd6ceb772390e3031dc7018f776cdb6964df6ab391ab16a6fa89c5fda2b415c71a2f4adfd0a99ca4779003597b98bb7e783ce9b81471c755e53dbc806375a056912fbd3891f64126b6239c897867dda2e1a440d1708988f8a9eef22addb16bdd0777b5b6529f850053a9aadad4b965934c39eb2ce5ed81e44f961e9958f5ef0486dd4b77331536be358657488dcbba6a55904125225d44c6e96604ead5b691cc17d84e6286946ae92b96246c3b033b981030457c4e69afcf46ac625c80e06605f50cb03506653352dcf30a065613b87f061c2465f69a26ca528718fea5a83c225790a80cdfb29962b259ae86daddac9b480a5e19171cb242253a49b6a4287c584a3a08821717bcb9cb8b58e8a20be7acaa1c187ab9112aed22f02c9978d1c58a5152c66a98f388b2ea461aa03921dab4c6df4b00d0253864dd76ed2f7004ca37c6e2766c5985761573881f9445892773ccbc401697190147676949cf7b361e8c726825311d1003cdfc6bd6f543497620ecfb5a137381f9af4c0c76c9cdbe474e4c24378cb3ed527697f43163f988e9246bf7376c913b002f87a34e7d63e618b05360687c99b0130bb5b1f355c62620ed5b2ae7160b4aea145acb392455283faf46da50abd917b2d4e91baf577b560bca21d185499e75c63dc351e8451b768171a07a9ad8b56a5d3172de3bb68e763e552c79b895858e2b2a5e6aefaf4b1edb3babd40233487872a7b228ee359161b99ebc671172ec8194586a945b9a37c594944be3c2cbb64238b958168ba98d28bf6a8ec055ce0642ee8f3ea1eb21bed2b635825db13f834f5d35ae36e1fbe1cfcccfbcc324c19b37a9b00275c933c8da47ae2a9b504f9d9df0485eb883a0c
+a87b7c005ea9220d4e0391da4441de33530b9b661018f281564b74316b63c5e8
+Ciphertext: 8556414d471fee60b778a37815a526a651b3db89914855c943bdfa32d988f9421a89d015b3d41810bae0465634579f3ee0a9dd71a2468628dd2aea61c86504cdef33c60c6f5eb4f3217b713fb7eddf7f796fc344a4842fb149505aa6cb2d9d0af786cefd48f0cc817ca6751d6d42dd394688e19c90b32ff2d7f9adf7d6756945202d165c90f0e409e01874c127948946a1d7033680e11786d6ddf5f37749f13615e544995123479748bddf75d7bb68c45a3b8e9d5855ebd6b196ec11e0ca4f0ee42b40968ece89ee48ab1d6b3f755586dbe84348b2c5cc2424b168948b3e6b6cd59f7cd105d2b60118dc08467d56e7b5b75ecce28aed93d02e31c71937043925077c572f6c0ad6cd3b56a25b03a30379b1c3703f1376856a4db7f79e3aa59ed1585e9922255ac5c14d4120472e2e7483872b6a7dd7b6c739893c82e94487689295508023974d3900a6696aef94eada16e32ff21b0a35add9d51a1e5e907a2249b4d659513139e2976bd1e0b52bac9ac8d80a5af368b32b67bb7002126ee65cc84472ebdc80b0bbd792f82aa4471095282981d3b8c49997fc5620043305d73dd189c852e41481c4d4943fb509d6afd78262e7370f1723b33b6287aa9898914b03331e77741eee619fdfa58a9001a093e48abfef01d10d877b7b7e2d434d4605ecd36e6e5dcfd2bf4ebca7873725503e28daae141b0520da3be1b18824c7f5d1b3a36c50e11e3366a6eb586df753b11866e6a30728df20b2882e3f0251af9fbdf08ba99aca6592078a4f1dbfd92afa3f8626c79e5bb8301d517f8a8617e10c8c77ea48f0080d6cd078fa85845431f31c94f2feaf8dd4d370333a1843f914a80ab1c71cdf461ce45325b6a087e1b87f5119b0dca10f4550e88124447e4f51d7175dae716026232c66f5b8e0a2c408794b27734265c5d0d23169a64f068acf8c542ff88b10a0410d18b200c0c9ccf071c14571d23cc444d82c5a485fc317deff4df7a9fd0b2273555e91c6c0d11a5760340fd012a2ae6360d53127d21a12f62ce40e1eeb93ecf4dd163bd05c07644b7f4463f89b6b0bd2cba634e1aa4ab689d317412b03d418d05d044559e7053997c6c5681c37a8536d556c81ad218ae39a86b0a2b024ab9876a123325df068c483745e142bdfcb24ed0bacb8b842f9ba546c1c6ce80decf6b198198b77dc8fbacaa5fadf707156cb292dc36a7ff8f9f53ca541e57529079411a7196eb3488a19133a1e049435fd5192d1835d1ffc0ba1a2914f71a476e81d5e6b2a53c3ef78748208a2b8653ff98ffd10c8a35d2f6d621192906105a4a71941edd68b0d1841ac6a17ae1eb4ed336779be5b4c3bddfcf9e0f74f4fcc5711e95094bdde49e937b1e48f8eb43446be6e30ec19cc3417c02198a08f62fd498e76e383e8ea037e35983909e1c5aa11d8d715cf65b764ce21783020a7ab7f8099c4c410b4e7d0e8d6e571ca2b0bfa065d8ce08bf4ff14f82c96122a2e9a32eb2369d002cb96162458183d174f821683ca754660b9fc4f17709f6a38b137c0c75e9b2b7392e233eb66e0455744aac3520e951ac8993ed4e123ee3ef13e5912793201278268dc50ba95a98bdff9b9fdddfc6904eaf18ca92c127ed7fdf5fb5f2244ab2d234baeaf4059ec380277c10d25e6d8c5c5e9962753fc99465cacc23fa9bbd905aa632a1a25b51b22db53f2eb485f7940dca4d3bcd1b3fcd810ebf7484a8737ff590f029a5331d2c1622dd8996a15338686623665977b2f87d42a47cd67a0408a91c501475ab15598b53784a4f330e05ebcbcc0b086ded3151d567a2797683dd6c240c074246e284ce93bf1e1b254f4b61b527777a74c35e9590d735fb8aec13f6213940b40e82188d0cb73acd2c46946c54980b1409c0138bf9efd86ca3e0e6bb6a1c16891c2f19343ef40e9a06c576a437693dcefe3b07c08553dc2794f63cc8cb4fde9f73771a5c0d5320b08cf22e37044f293d09ad160f2c5648e0df33f00d0389fd84ef8be44026abfa1e332af2e28cb80b632d8411d655dc4d3d5eb289dd0ee328c72adc7c0d324de1e001451965e9eb2a8c030a742736d506c4dbda519137f83715780389abe534956646761e2ee4d02c506fc806965aa4b3d843cfb0e00aeea00af2048bb99629a0ca953cafe55e697e41b2aad268e0fdf10cf04b1d97aaa2b23365fb3a05aab24af0e2b1368946458b7293dfee068ff6a
+Shared Secret B: 83ed443128ab286bd13c32ace044eaa2584553e163fef776aa296b28fcddb4d9
+Shared Secret A: 83ed443128ab286bd13c32ace044eaa2584553e163fef776aa296b28fcddb4d9
+683787f587a5cb1505de221d9e932782bd38eac42341c29884b1442145fa2b34165bf4911b4e45b809195a688434850c2f400bdeb485620796d7274f32a6430b9426e8c95d2100d30c5c11ccebddf1d8989f90d415964f7bbafa086e3e83981e72a5b09dc658b12743d35e164ed810f1606734e6c2190de7feee0c706a774bbe6569bdc6138b2a839a8354838bc1b593136e222f14967110ed479ea3f74246978ccc98c0a3e1e1c4ca415d8560ed7ea8c16a96ac2c730651c0fb1f52a75894794c1bcd5f8bbd2c8867b608f158087102f23aabbe416bb18d6a3b9b0773fb29ea8dff81dbdcf74693bea886faad621d6ea4b642b1ec4eef8787b47ce676fde9beeb148ba7f65f2feef1ef7eca94f505ab74a95d18c4fb1f2499067b37ab12732ecd0794568530e9830931b83f87d847a0118b0cfbec84b22582bd237ec94c0de6b7aa928ff653e2f91303aa2a2155a8621f5913de9ff58197e4c51db1f14d96ba043fdc7e6bd2763f416efdff5ce299154fa9ba0d39d2d4f845a0a0b4efd1fdacc8369383058e1b970d3dd2550e4ecb969792513aa179e7b7e8e150368f753d17ab87487d0ece79f718f3c53e5778649b58be14ad1852a95f9fb3d746f2b0431b6e74b000c96cef7a2436d9168c33ff5dbd7f4a76a2c33db51304253f97faa0b4d74a3553a810465265e304893f7e9a5a41fc57aa0e2c86e03110a183f4ae4c19d63e97e100e38472f6e3160316a71f94febda6ce773025d2e2909619ef805493508f124daf90b4b5d642fd1723f7e04d02389ddc497734b379ca780771d4f6a81bb98895d598ce69f803a329e9ba9fe69a07f90816bfc774787c17a862bacfa477478431dd913707109f26b11c55c4c1a6683d7d6c7afaf2804acd3107b04e2e13f21e6de9325db16f88faf8289d2264ee0f5c98fd69e2e9cdb23e2eb7b0a6603df54ef8e377725bf5e6d86e24a5af27b2119ab90adf0e8651134c28c878db43f864970018736bd6f4082e6d6523b7cb2790517cbd92792704b05b43f3835d5fc1d45c2dfc07ef59e67932a727cdbc3c426712a23fb74d7d254eed2109f1c8512f94efe439fe860223916e4b150cf14716f0af06f7c4bd4eed5c9b1f5f53ef4a030bfcb89783e99897313d4e8553e9c3cd925b333e695d54a7cc8891bf78f37a6be9c9ea9e019a3ee911ca8aa4e2042f2c49988a9749e4dfd2d2e3230b99d50a6ca2b33b202e82afb9b6ab2076e1df506d98354b45e939d091c2fac6f904068b047fb516f2e409b2a1c7d482a2a1b84b9287336d45b7e585a5c2aa55d28bcabf021809094684904ba11ecf2a0947411e8b0d70d3ae1e11da2471e8d6707bc40618496115b58920e33cd3fea727be69ec9a3ed4d47e61b20a82c7044f5337e2116f1a6c547daf4613576f1b6464d35489497f88880edfe950895c766fea9db75b7d8a9b95c3cbc245a43bb880bba57b4bb5ff29a91a68758ed12c0a0fafb9c6583db5265b81853189b6976da466a13a29c5fc5071785574c080e1d2e2418a621bf3e8617d00c499662921d65de47254ab48f722854652dee7785199631e4f9d464bced56383748b3ff16e3666e6e612da8204cb1c89d02979f4abfe35f3f1aab84d8ed75e617a89a87e23175037a46d20b9a3c9e75d4ec042ae40df2d629ac8286d7d6a9428ec432f73a12e7eb3a5223b60f4cd3f8168bc953e323e2e8a8dab0dd24c36a8c6f4f9dca833c55e725e2b0699c6915cebf962341fd0c3c2326ee981294c23f88da45d5a82f7f7a504e0d525d7f3627c29cf881a8a68ed4bcbac94f5aad69a43820048a59485fed7fc51775d2d98084e6e6df3631582c25cc8fd4f212e586fb188453dee24d61aa976c0f7e50f73677aaa86ed2145499946c5803b9a9fde587462e312850d50327d7c020b048d222c93e141cd59122af84b69b00f24a587098a6641d761d239559f79e51d3f021b71fab95df5f74444b0350c5eea02c91e54fc8b5e619b6792cc6b775c3097e0d5bf47bc40294a3e2f16e6d637a5765d24a117315f0b664d00a4eaa0f16cf3a742f5150d266a0b8596ef5f3ecd3eee066a9592799a3fcca0e434f5d9d29f851b08012ece366f4cc793f43e82259c244ed20b93f1a95784531489460d947ad5f44fb8924b0b08aefb18eebaccebd9e6d75c0042f19b0821fbc6de70544727669eeca513cd9667fe2375da1163951a14
+Pseudorandom shared Secret A: 805cb94dbfa7a8a99ce989f82d76d665845a9d35cfc8cc4581b52f73f73f8431
+72a5c3a0f6dd43337bbc0fa478a7dcb33f4ac175d2ee291e971650b20d62f5f1f705f4f138297670c2c46b02839e59bc9d513a14e343ee500d5ded2c349d3f75
+Public Key: eb0b62ca83165af81a688b9043f9bcc05127ad117f96662a9a9a0a867c8d247908cc16c61b784ca696b1018049a875a105d38996c501943904677aa5ae12196629a9338bcb102949b719bf9bd50c3fa381146648b4f771c4c7892781a902a84f85931a3331b1ab804837408d4275af7d544634265e2da8a5ddd79141d046004740b6e7a901f92ab0588118ebc258aa9176818e9ae185084a7a96dbcd45c9a009ec67b9c633bb899f4bc49b684202bfc20b302b02305713ae1a9af8238a05e5b54a7878b35312241438517a6d70a87ab2c46272d4c79550896d2726ce649bcb810ecbca5e3ae017cc7b8f9fd9af0821b18daa6e908c6591d213d8e6311e57ace2b72e1e63c6e0ac63023a424855be7f157054f6bff636711cdc9dbe35b4ab87780d15547e8aa3634581cbf417590b18f0f315f9c7be803698b51c87160896d04a0c0b7aa93c5c4fd481c9eb4aaa4f2a6c696a7c70b5aa377628bce3681805b44cdb8155b40e224555e0ab53af1c794722b25bd186c54b29b718b4c653b801989937b837cf0a4ee982cd8d80a409323a342721c5287353c24679fc2d267a2c180943fe4352eee408c649925e74804a7823ee401ec4da0bbeea768cd8b9fddb7f015aa095a5ad399064bb44643a6634ee16170210aff5fb6b1b805d6fd17dd19961a4acba9c26363b3c13ac701d82db5768626e1d372c33d490f3cb0b390c769d23a283865160e18f3a57192b643776278377ec91d10945f51aaf42058d1e711669796ffac533b743a33aac3d1c21233dd712ddcb0f0e760e0804705ee4329b9916d985a3f4a0372d5835670a0667a401739061c60745c140485dd44e0bf9bbc7a04845fb7b8c96971ddb29ca7988bd868e5d1c1715e008070544971a253f8036f4e57ab72c9319f64b9920a74191708e0848fd18a2b6f765e5a97e86c37d44c69355e7cb497b0241a898187b463961908c6787b0094450e582371785c4a381c7b3b2031ab9396cb2af576e4a4a1c7381b482ea0c694bb52023a0fc02c86aeb7e55f7b9e236bef0ec7e1cfaa971d497265443d8713d00da424b61bd830975a4602628c42182e3b2bb5b7df7ab444fd2947e329010003947cc00581793ec5c2130eb1d8af22a05ca2490534ec569574043bc4863427fe51cb60c17b224cc79f1c10f8496cfa06be897a134e91367419bccd43470072251dc87a6ba5dca861ddca60279c79c1db795f6f7a9b60b59774918e92946d0fa73fbb59a671a52a4b1392a5848676618edd8a4059b723eb83c8f149ceaf4b76144964bfc2e55087f045b7bf1a3cde1aa73789507fd9854760c7aa9db436a48364ed206f70658cc216960c72c519309ccf611b2e260c3eb3a61c7066ac05e375a7dc8d4940a3a59d5db0d24b17e2cc098379342704572608905466242554c08b2eb32e692bfd56a9c3e9678068c5c7d27cb6da7c2320a78117558b01076cbbb734ff43099eb7ea1620fd4539e8f085566312b82b4652b482d6292620f0b7ced9cad7f8943642cb504c2175a92473d467a13f00b33c645b9fa985771a3a13a5a5a8880f08b543cebc67d48cd824b267dd5790d576b88803ebc645a8097c5804c89aee046610994f50cb97bd0588f70c6d7968f37709edf5062eaaa3097ccae57d0493c441659dbc02bb102732099ac9040a3f60e47658163147cb6b33a40305accc6bc45946b83448b84c288a0e4b30fe32079d9ac4816447f2b007b5875e0d56897f160ccf51158968c37c01116e1087ff0851d43a1f78cc56aa8c7c47370405731c60483a0d927c7bc26d6004e8ee79c800c9df292c18d8c5d58ea10b01707c9f26652c0766772677ff64d5150bc523b453b8271b550762c03b0091165233bac458b86a439117390286060934fe27210394b69700b5c5628c48ac78f42c69d9c87e7e11e30676bd869c8f4ba14cefa0daf1b6427d8c7333271b7078a0827327c1270ecc17b44254330f3b075949dd34232a8f750dba68f4640cd07f03518f9137f8b9aabe0828b8cb5230cca5cdb3c9a82240e1cc03e357024c948559b77b9ac68da6a0b7f2b9b400448f7e8a6e8b326cc6408b7599d3f7c82de369eb2e7369fca33d3a77dbbf0cac8c8760b481ea8250909c0c86db476488282b792a26206c8c2223ea837344596851710cb45738bcf88e62d34d8c4c181bf22805888c3667fd318dbd1f69a41a203c7bb11
+Secret Key: f4129e13eb3b5057559e9c2b36a808e8f8ac7e7124fd8c3c7008be8c44b9b5b8375c3833e9c406b268ce1104ca623c6b7796244638c3b558286bb977638a9f3cb54499a8a052171fec75877e246972247ce7e8c557ea7d0f056400a7a109366b408c57b35022a7e80e53c11b6e220ed50a9ba4104bcfca175f2c78d58588d1cb56aada32096b76b97178a0b0028cc94be9281094015fe22758a2e1b57aec8f2db909cf523d3ca2c1ce6957d221c5d3b57f26f226d157619c619980a619c669521e8680da56991b4bc56c70886a97957546b871514977c48e00c28d377a0e38f829bf203506dbb85c17104638a3a9090ac641aa3386cc095b6e883541f4da2e48e76eb26762414b31e48117274610b388461a1b50a701312cc8179956b65fc5430f7602922327b2ab98a14284839672b08941d03584d9f689955845bbb879b6e1630f6428fdea594b1075b2b4cc9c0240a003897b9c49f030482d89a24fd566b5e658c47387b8c84abafc9b91434b30656b1fe6bbf91b6ce4128e85dbabf1a0777224461ca5377595547e3b61b2726c17aca2c6b47af5ba1b7f303222c419ba7a350eb19d1c49be25e16a5099033489625bd03204f45c811c7095167408305588405fd7b3ca91675405728196aa0f82a3639294326edb8be4452e22832e8c0b303bc0667f610a5374ac0d581e0dc63cedc91b503569aa9067fbe9a3620c97c04cac028bb359cc009c28792364a1e1c992646623eb5584da51a2ee12ac9861a145f6be91c8763a044ecb654b6acc17e4595efffa32ea4b4dd418a8dcc9abba41cd2853b40f73b56c8886ce74751409c036ca796a2c6a0977c11c8860da9120845506f696c0cfe63e625096f932572319b85bc81f4599311b9c764de5b43b9184c9c07bb7153185e7adcb8b67d4c17585f15a3267a5fe41bb174817ea1ca42f3a77aee4b92896cb963790fcac75d3d14909f83fd9e11cec472ac81c3370a0c2320369f1fac6782aaa1a857c62d166e6a76e86f549b37877b0393f11a54b26c0b3bf394ef0da5fa466264e7b6ae9c71eab64077725c991501849c010d883182c149e8e5b0528c624a00aa336411ccb763973e2c91c96b61f1baedab200c7e391142bbe054236c6182e3964ae73253612a62f595104af76a000e80d27169e6b076092b07dcc6c82b131cd4e17c8b59b9ecf5b35f5c5188bf5ab61a0997e6b61690159bbd8a05592a812c86333071281e33370189a1289c28862550af195bb4a91e9538748e904d1a6aff5f72c6b2485d5d8b97681206120cf5922aedf061337c6cc4f24050d30924882b4465b9f0ff38233832bc9eab94f75b602d1665ef67bf06b1513fb78cc2c6c0c58867fcc0433b6a174a31dbfdc30bad10c0f52300271c582f01153b72385444c2f76ca3d50471ff737a73916610a52e0668315a8a86a183ab5e6b50bc57604976a6c2b7ac970639ea270cb91b08f506a018c911d06b30a30ca2b52332aa5457f5b4240012dfce1a504896d784709a8879385fbae0e284967b5a38dec14dbe6b94e2899fdb409a0dbb7ee211dab038eb939a4c38b59c8791fc963805ed88736495f76b7830c70b2104b1509d4a78e896e40a80dc62c1a18b4412057bb8355166549414e5c7dbcea02a90897b1a7a293ea0cc019c025ab18aa83224a75ce5df87fc78c5b364b4083f15de9293abdd62d4aa823d68aacaa994573428ad48207cc1ca3811390eaf90a98448da87153eaa3cde704cef437a37bb3cc0e44ac26389be61cc13d686d2f9115dd6b1d687c386f68656f866d8cf6338c2b50d2a95b0e11b720f46d08db72403037d6793c5f874c3e88c7608c2247c59e32040ab33cac0908482df43c3c74495ddcbbc4b15731b22b8f63125bfc146deca9c8ec38091a664839183ca66c57c5a8cb4566f7a403e76967f46745adcbc917f27ff1ba8a2c85405400431366c4c3e26ef97261a873b53cf2a0d9f6adc80c587b38930d18b3c10338f0416ba9b18e093a74892a3398d62f7bfabad5ea721204253ab55a1aa17b1064bc0fe022eea97c41d713c71720e4b57523a0ae9b57139da4071dc6812b7659fce0b87fe96c1e4a06cedc5a1d6654f0807fc7fa199f21b21108c171611a7624be14a18a13914780721c5f96302de57728d95bdb3974452956eb0b62ca83165af81a688b9043f9bcc05127ad117f96662a9a9a0a867c8d247908cc16c61b784ca696b1018049a875a105d38996c501943904677aa5ae12196629a9338bcb102949b719bf9bd50c3fa381146648b4f771c4c7892781a902a84f85931a3331b1ab804837408d4275af7d544634265e2da8a5ddd79141d046004740b6e7a901f92ab0588118ebc258aa9176818e9ae185084a7a96dbcd45c9a009ec67b9c633bb899f4bc49b684202bfc20b302b02305713ae1a9af8238a05e5b54a7878b35312241438517a6d70a87ab2c46272d4c79550896d2726ce649bcb810ecbca5e3ae017cc7b8f9fd9af0821b18daa6e908c6591d213d8e6311e57ace2b72e1e63c6e0ac63023a424855be7f157054f6bff636711cdc9dbe35b4ab87780d15547e8aa3634581cbf417590b18f0f315f9c7be803698b51c87160896d04a0c0b7aa93c5c4fd481c9eb4aaa4f2a6c696a7c70b5aa377628bce3681805b44cdb8155b40e224555e0ab53af1c794722b25bd186c54b29b718b4c653b801989937b837cf0a4ee982cd8d80a409323a342721c5287353c24679fc2d267a2c180943fe4352eee408c649925e74804a7823ee401ec4da0bbeea768cd8b9fddb7f015aa095a5ad399064bb44643a6634ee16170210aff5fb6b1b805d6fd17dd19961a4acba9c26363b3c13ac701d82db5768626e1d372c33d490f3cb0b390c769d23a283865160e18f3a57192b643776278377ec91d10945f51aaf42058d1e711669796ffac533b743a33aac3d1c21233dd712ddcb0f0e760e0804705ee4329b9916d985a3f4a0372d5835670a0667a401739061c60745c140485dd44e0bf9bbc7a04845fb7b8c96971ddb29ca7988bd868e5d1c1715e008070544971a253f8036f4e57ab72c9319f64b9920a74191708e0848fd18a2b6f765e5a97e86c37d44c69355e7cb497b0241a898187b463961908c6787b0094450e582371785c4a381c7b3b2031ab9396cb2af576e4a4a1c7381b482ea0c694bb52023a0fc02c86aeb7e55f7b9e236bef0ec7e1cfaa971d497265443d8713d00da424b61bd830975a4602628c42182e3b2bb5b7df7ab444fd2947e329010003947cc00581793ec5c2130eb1d8af22a05ca2490534ec569574043bc4863427fe51cb60c17b224cc79f1c10f8496cfa06be897a134e91367419bccd43470072251dc87a6ba5dca861ddca60279c79c1db795f6f7a9b60b59774918e92946d0fa73fbb59a671a52a4b1392a5848676618edd8a4059b723eb83c8f149ceaf4b76144964bfc2e55087f045b7bf1a3cde1aa73789507fd9854760c7aa9db436a48364ed206f70658cc216960c72c519309ccf611b2e260c3eb3a61c7066ac05e375a7dc8d4940a3a59d5db0d24b17e2cc098379342704572608905466242554c08b2eb32e692bfd56a9c3e9678068c5c7d27cb6da7c2320a78117558b01076cbbb734ff43099eb7ea1620fd4539e8f085566312b82b4652b482d6292620f0b7ced9cad7f8943642cb504c2175a92473d467a13f00b33c645b9fa985771a3a13a5a5a8880f08b543cebc67d48cd824b267dd5790d576b88803ebc645a8097c5804c89aee046610994f50cb97bd0588f70c6d7968f37709edf5062eaaa3097ccae57d0493c441659dbc02bb102732099ac9040a3f60e47658163147cb6b33a40305accc6bc45946b83448b84c288a0e4b30fe32079d9ac4816447f2b007b5875e0d56897f160ccf51158968c37c01116e1087ff0851d43a1f78cc56aa8c7c47370405731c60483a0d927c7bc26d6004e8ee79c800c9df292c18d8c5d58ea10b01707c9f26652c0766772677ff64d5150bc523b453b8271b550762c03b0091165233bac458b86a439117390286060934fe27210394b69700b5c5628c48ac78f42c69d9c87e7e11e30676bd869c8f4ba14cefa0daf1b6427d8c7333271b7078a0827327c1270ecc17b44254330f3b075949dd34232a8f750dba68f4640cd07f03518f9137f8b9aabe0828b8cb5230cca5cdb3c9a82240e1cc03e357024c948559b77b9ac68da6a0b7f2b9b400448f7e8a6e8b326cc6408b7599d3f7c82de369eb2e7369fca33d3a77dbbf0cac8c8760b481ea8250909c0c86db476488282b792a26206c8c2223ea837344596851710cb45738bcf88e62d34d8c4c181bf22805888c3667fd318dbd1f69a41a203c7bb1115785dd666865479f275ae7ccc12f2a226e23ac9fc31b5b41e71beefe331ce64f705f4f138297670c2c46b02839e59bc9d513a14e343ee500d5ded2c349d3f75
+34d7a718a028e49e7065f32a40a2ecbeecfb896678fc13fdcd9abfca88ec0748
+Ciphertext: a73907ea61931757a95aa624a88c7c08b1463c05587fd15da9e218f28ae44cf49f4f80d702c86e02afc2f7e467e6526d193e1a219e22769e9be84f2bae32628bb42e043a79e64c3cc0432a851b59250ba69cbc752fbb4cd74d42857de9a82527befb8d9626f80a0be7cfcbcd38cdca7e1155bffab7f12dfa678ab23dcaa3c9d71fddb6122325efe5899b83b42287389ff79b3bab4555ca8b229223a07bfa67463e1504d6e2fa3b7a899dc6b2b66d483b1a4233333315f3ec27c186bdf3a11c3d1688abac39086290c1ffc33d8e2b2d98122d3c28033237ae1098e85281b40e80ea06a1ce719525a320986b1433f101ec94847d8595543f0cae9dcd8ee64843184cd91f8ccf13fcefff8592e539b6e72a7142ba18f00e7702ccbb1f5e2633100c8c09026fa8046333305b974f926a5a1d57166857b1784a03bf5cd267c3b6609a487bcfc66b256b3e266f71c70364a52aa22dba52e50bdcad933d1834359c03b006c0b090cd67078a622ab01dd1e4e84533eb1fa3564775fa06e8b48b278f0233f580b69964de85dbe01304923f7e49ac3dfa8b85653b01ddf27f2ccbf3fd40c0785d39313a66323dc4e39b4ae31accb5bbf9cb6ece5e9f0d3d6ccdcb231810d0298eb1fff6a78a301668db3f8e8c2f2fc5151f7409f8d6c3d75c51858dfd8e79aa3579b8b32bc01f2871b3947c2bf9de0ea9f80cf7bf2fb93196efdb0bd9976d5c7c2a329c88f42bbb2833efccecf75f3f07dd4fbe0fafc4c117e2e2e1a43f85669f2577a408d966bbd76b877913661e7ba40e0099e993e72fac59005e2d613c5bb9d11cba00d1eaf33d7d1ebd655fe64d0d9f2131af59b2e7b23d8906a0eb1f0da21d80f18e0b4993f5ad189caf9eb13b390a4a69cb242a7273e7d65e0895dab79a1077ffd67e2aaf64362d9394e83fe2ce934956ad7e509830ebf31cb192eb0be0a5784d748542eb219431838791c513dc96257532316722fa95589666c21b7edba8134adbef76970042a5ef14cbcfe3ffaad6065436f539c5ac5a52ce2c80a451bd7a7a41bd74a86e39e590fcd775131c8bb783bf4c53e718d5e6f1ef2a728fb32d79fe4083e15e1a0a1c535f8be1dbf712dffc32899ffa0389c8b6eddc4771771ae7d296d0947eea2c83235adb5c1d97f6587a57e505d03eaa1e5fb3a09a895a7a389c36a671672b78dd477681bd8a30b8703c1602ad4c24c40ca75e384de575ff27ee6edcf67182cecc686b2a098894c3d09f3b18a53ca55e1f989a0dc5a403453397d80534201aa18539169b8e0374f4a41bf19d0f3f8dce5b2092ce1f245dcba3d7495f72505cba104bc083b4709a23befec84135247f75d54db76a68abe3101f6f0b0c2349762f514e0e5a9e444506fc2a51a0be8ecd41fbe86a153b17a20b03e62e544a2daf30dfb1d2df3811cc6f64a1700d224998ecb741d0de3f1ad7e514a75bfb73fcefb89070b753a01df6ae48c13b0477b8eb66f09840cab04be0c9cc4b64551d19ce8d2820efe3b2513c977c2a12777b01c3870bbfa2bc01561c67a1fa829196c931995b93787f2b1ba6945e36ddcb6709f7ac6b40789cc2d873de6636223dfc7f63d52cb4bb2a4b7e82dc1a54cfae101d0ae628d9f24a049470989cffea91c6cfa7c258a3f25a315ead3ac7a7151b54693457f3838305af4e3a329b48e339141d34843b66ddbf4d6d5628ab29e1f5e96e2920663e7d33d428e7a64dc05a6916daf8bd2ee346d296aaea0663b72c8d9f31ae1d6f002d19e22ccd0f229d3d4d0cd27821539ac5d5f9689d9b74bdeccfac2d86456796ada9a098a4f83e5a6f474791e2bba73ec2a5832c975602620b4187b33c572db23ff9982de3be94fc9527960bfe449759c6e78bd29e230d7726da283db4fb484b40845c2daf8cdf34036d3f1f78b4f4d6a13790a457972096bd8bef2ac5073f26c6110f4aa9d6ea63554a2178c8cede371b0342c89c09f1e05828d9bb8c8c4fec5363751389ad505e512dfcc4b8151f259ff0ea9b95b31789ca986369c5cf40c8a466f7570daeb55c963e333e44352dd8a476a35bf599093589b8c21726d9ac3a1ca06e9a263365b8fbf931ffe0e9dd94fbd8bb3b152aa49b373e632930d8ae3b0165135ce1854a21055d6427e9309e9d772f4ae32f9144f17fb0fddd71128b3a69e3f1fc51658c2661b6b26f96e52d51efe28f9a9538bff55d77f31ee58ed285b5f797
+Shared Secret B: b82e0c4f677866fcfa9d6e0e7b328af7ab172ac02ac433fc9e2455016608f159
+Shared Secret A: b82e0c4f677866fcfa9d6e0e7b328af7ab172ac02ac433fc9e2455016608f159
+e911faa3c0f6722c4f13d072a02762bc1cc80689908851dfb390cdce7401c8dea69eedb6ac777c8a194aecbbaadd60ec98e351fb56a71c58fbe847566f594ae44ae3761463cae942b848f63709862c7d30d758699e99428cfb22702e29d412f36c2b033c9851286bd44cffb4622c9ff99ba7064323be2dd8e762368f28360f9a31b3fc20a4824b36bc246ccd73948ec9f79ff4ad823fbcfed6ba12770b3471be97fd4c59378816c52b44dee11c3484cb4ed6ecf1efec43c3de096656a764a96783f6cd00c886d8ed253f7b53a1e84919413faf9606a12f3a5953dfea4a4878f9d510c847c5b43111db33d1ac0f0f747674973973e55fe21b669f51f144eada52045fbe553c89e64524bc1ae1b54a1d1a37ef2362e4e99a978fd07d7fb53380542b6c61ae97da1fb57951d82abbb0b4ebb7c6b3b1ea317a66e6fff9342ad84b69f97b474ebe190dfe5bdfd0e4886b12e726a0c01c12f4662315d565f99744e67079b12bb1e58d236671bca045356c74634e2c9818d3df7876c1bca51994583dd0a01c4301b7bd251e94888474652d796c3c94ac123c7999b48d9e1e55e3caae6d873586a5295312c2800c986f403b3a48f462e42fc464dd3270c2b81f27e49cd215da880d24530105fa0ea92f0be49b62f51065d41bd2893ced0b8519a8677e098c796c38030c31f153fc5127c06928bfe38bea2b3eb4a472f5b461d9cc7dbe0e7e39b00d42dee6451f922b184da03b41078b356ff1adb4828c00db9749257342dc9dce3f9458479da0151f303e015c0597149c22d3f850c8306ebbbe0fd235a3feb629cb7b87b5c7160c9cb2db6c35cf2c1d229bf52207df727a63f86f27abb4d4283d853b850b4209f0e73bba9aefb823a8becb4e0141120d6fe954641be85f9f42079e80f69caf01cca215d052552c34257761a375e7cb76a0183c7698fbefb8563431941dda80f39da0cbaa3032460ca8c8cea158c9405849d52f30c703d4b91c4f2f5fa4dc561d2fdb664d9cbe015157f83805c7da675de4c21ffd5a241fd22ab2a84b820caed050e4e7ba1e4859d56b04b74e9a1cb978b367a832dc8cfa2d2998e6f727954a80b77c3da9756267e36cc1163414b4fbe29d1c4999c245aff60e82511850560d2af510c4889d2e7be582db24b91f6e8a1907d50f500d9424763579f613176287b03e642748ec061539a7e4fdad0ffc16455ba63e6f50f62159f9469062ef326113a5679dea2237dddf83213ef29056a353931088b054cc7055380d5ae67484c401905ba121c27e5938bcc7bf87a0b07b6aebf63c48b742ab4c44c9cd58a431b38a3d7bb9673376666f2c0691dabdfbacf4fd931451aa1ef9373497abd51a9e5ebf5d4e016bc88ac482b2b22b57b03e2f71cc652bc0f36aac3e5f59c7f8e1feeb1a64ce5df09c03e00d51a896bee91fdecc7a0130f5d0fcc572a066a84430c2cab43b0f8a6c7a556b47376819e751516447ad6d36ed27f049699e1e40b73bb597588532cefb6686c48c59586da7ba7b8493895658682f197f570eaa23d02947202f51b6e9230e92498779a9010aeaff41809f7c89106af4a154d11eca548c05c1f3869bae49bfc83f0b9bd637a1fb607e6f71a69d0951d5943342de8bd4b32bfabda86a92d3d1a23b55bc9656b0eb5e43e02f9c093dc3faba910e5a93df2bfac6aac43574fb95d9a859e050b5d5b83bdfb1dcbb2f5db54616ec18d8893c8d4c62e8a1591fd9459fab43888472ca604c24b3627b32cc462354c2a264fff2ba803a00651b32a7c1e028e073d18d6ba1f4856acacc40fbc85148265dd84ba1e03bf87dfd75d98e43e3374b92e4f4bf9d69060d1b008cc847147f35bbce2c9333dabe4728e65134e08dfb56b6597dfaf15f43b1f82022bd239e02524b3377c746ae809271a315de4e85acf9a712abd325c6eb359473febba7469d4e2ce596ff4573b475379d6001065ece23c4f3b49115f87ba015403cdd53512a45b5643e281e44c845a8f05f64d9b18f7c5aa5cc67f3926981eca72bd82a5c4342980a67eb8c495e81bf42bf5e7da80036efbe02833d9732297086b11eb480b4952d13c8669e79c859466df3aab2cda6fa09a923666431f11761d12b2a0a1d5b309ee9306992438b4b1ce12ceaefb1823e96cb31f0a991bb08426749d35fee0715cb35b0027b3b7cc5254637734cc896314ec29581b21d80f059e69b1681cc7f
+Pseudorandom shared Secret A: 2513b359b52b36ec7e9c8c8a4f7ebf34f770e31e56f20e45df242d1eeb302f0a
+996a29724df49bf311a4094d66e5b9e5c51d6dc0ade97b790834693e0f851394938cd4a60fd9e36cf3f0593b2fe2c14589a0219991d02615de876a0c54e6f576
+Public Key: 412992a81b157dbc8756f6a6354aa1a10a4f62e15c3650bb2b8264cb76b0b173bf3b47b896e717a0aca7e95a203d78bdb9c885f89443f50144b0da14d130cff7d787a841534f80682882450df9aca4e6987ca6a253b48d63eb3954d068c5ba863a3a918d3356fd749c3d0903d4cc96d5f81c25db9875e1712babc2bd20773654224c923b9e88a7cdf98fff111aca186595aa386c200132028dbd34b2324c8458605f7d52cdfb11cc6eccb7f4aa4bc9c9a902d8864c1b1a0958493bd8784083bdf4e9bc07842b03b26fc7b275c34899a04b6158f7467d288011f2059dc875f7f9b1793a52dd7bc6e300bc6af29a0fbb6241e91e5f498aa33c2f64bb1d08daaeee24329c83ab76369f3d5697a413a581b392f69b617a592418154bb96c8728db4f44698ef735776e557efe893ee507af9f3b24da8b8da0506289096bee497989a9b5f1483b5a999995a663186411466740e6975ae2e6272920bb4d1518b491c3dbe3c28f2175cee0550260704ffa69c3216df65c0c029922e37a0dd798498b08b424898350a1242efb2a0e01453aa60200514e5cf5815a69954586165ee3a3b9f511be296dd4e5cb244bb7e94b813f76ad43a679f8a6a57966180c14c51c3c058fec18eef78cd6164effe80e54055dd3199e83e92c3e76caf368879908b19d3338034015511b8a3c9063bf960e062b45885103951869f6209455ab3b10069b2b2671bfd7aad8659495aa7d5b2619d3d95974ba268f044022dc58c466afd93216870695eb0b939e669fffb3b87ba79b574c135fea500bd93177585725026a689375988c7c01a116f27284af17713cd63592fb6d96298cc2f0a644a823d5662291640ec36085f19112d245a19bd07ae6dc1cb7d28eb97aae998c4dcd594be748ab81c4acbbb99fba3b77d573b16d605afc51b00e52780d921a7a8103adb5bca352acd421ca5d537241f120337c29885a7daa4248cfbc791bf907c76154c1fa7846839ef5aab5fb3bb97fea592b3c2112059ee9f5be0ef0637ccb9f37398bbd4b3712dc7dfaf5c5dd084c475b9de79ccdf7d194ad959f986560d601be23a2241979059c62b547590440771c72e72700ac028fe055bf93a854608d96a7b631725f76d33253bb1b0f57c6177073e9b137834176db79c4a6e740fec3a7b0185124bab2549454fb289ce42844f698a58ab100ca261ca79ac998db46fcdb073f837b70bb79d46cb50db910ea465b133bb99d1363c5f6470c19ab39c89d4b19b7c6774676ab1063ab19e07266355240ee781b358a0501417d51c193cf262ee03b91da282920d1a89ee50455e60404826fe5e8a0a39061109ca555663bf13c17c3eb64eada94096a507773885ae4b99dc54007476e318187966111dcd864ad80b86b240a2d7100f41b121d8878796406a628ba596cc975564541ec5019c166dc16375c024d632aa1f9e30317eb35143060a41b6dc822968025a3c753c2d2930422541204640e3adaaf54492baf0a8d53b8b4376bafb9574fad6900b093baeddb24d7e52cde1442415717e7f099bd326d3c399a1b54c657806cbb54a511d997a07067d0d8204e252977933279e5a02e1c064849991d32c889f1af3c7301fac32843c22c21eac420593bfcb946ec6a36cd1c2a580877ef893a74c189364c8ab673292931680356cd10494ea6f2656226bcd0c28c9f251284d12160dc3383198adfa895de2746c50c0317b4408db23c5da71be3fb423e2597ac25aafa91ae4d765b391591e88ac2f8b5533fc1b1ff22a350291fea170cf90a15061a2af2d38d7728575f81b9c4811b4ae18ca4501c059bc63a90848c86ac2febb0025a4271232687f535f91002d82409114148b9312e09f8b9593912f6d73ca270acaa72b26448111270553095474f6c2b68d1acbb8b505b40ccc7394a74544c38f250eea92bb9b767347bc09658abcaaab68e1756d2939ac3895ca72abb4e423a90fa4effd736fb9c91c9d92f3279b49966ae852c789d516f4fcc20b3f025cc9819a7c553eebb129e85bad23349348531a195bbcc7c0095dc1050f574e14563c9756f09812cb9795e6f04656f9338ebebb735509189aa126013b71c383fec1b77ccf109911412a1164734d8517a24c0a5b687a5222c13d4b645da8978142924a6358c715a288826284cb0bbe76cd19e2135cb6778de0da207212c9e3cdff9f81be4e0212feef4c5b2891746f43b
+Secret Key: b0f394d2842e0fbac05d04bc6791cd5f55583743c7382b0b7fb73d06d98847105b20628ceec4889f4a2a1b6478ceea7b1ec27de14167a7e24743a18f0b914678ca06fe37ba2f5973ea8cbf311a27afc91eae93989a57cd25814bb73b5a12e824c9046cc30b5fac82728b5131af12764d239b7554708bd3aff40440bb0b1d8692401e348b6e39bbee21a76f16792264a503ba5842f4b94ff373530a9a7f68b71d6a44bdc732ddaa13311bb0700a71672cced5e9488f438db5c14f119637d2aa7e104507c24871b1b902392705c9db95765298a83864264622427903882329904405074435c03666821529f47b17375743f9954d55b433db73b9ba712c9790bbb5172e6bfc5759a1ca77fc752d8540b529a7a9629b2f14494b6a0aa7fb3bed388f6ec7020af07b6ea07721a08066e8acec04c6462831a52104ca408b819453fc063d2c813f75716a6f62b1a8e88d215c02088a99f44793befa30de474d5ed224fe631a883281124166e4fc3255430f9b9167a0113570f48dfd26a77266bc1fc518b7742b205957a858372c2767f2203c17a17079b5b3b0d3742072538e8288e52943c060cd1c4a9bc8cc0eef4169be441153232879d4961d223a7e4a5f7b9715cb0cbb40c2602d5c8e618485f5a02d14692faadc120751871cb5a3c8e76c25ea112c2b39da570574657aee2b54643babddf22dc129b7edd94afbd679615306e4fc640ef7bd14c004011c8013c2166ec697717c14a93791822c0781158933c74cdd2544bbf2afe0f0a8a8d51378ca9fc5f885a0f329c388bc648ccb74d59fe042a265219200c9afc92492eff435de308d8ea35bc7a3c323440c04b03a88ca818113b36e63118c0a50dbea2e88e986fde423e136ab9db287796c460d9a4778e576a023a25f422203810118642c9e2823db61a08afb198b80bda64cb479202b99a93f07527a22e75f9db80844c96160b96f71aaadde768f7bc01e1af5b032e06e7a8c3167e1a9f68879af29ac82ba257cfa18c507c65a532eb835c2171bbd2e7926923a0be30c4ca5c2ade0fc16fe33b525e4c8693558e4293ca44b2b90d42ccb4ac13e37c2d5635fda19014ab529e6295f6ec16385b8b7f3e83f2cb57dd90a705e4a8d367c25cc1968d141ae56b1418b97491a659c5158921ee58e615997442a80dde51859f39763e50902017002610c86b30bc7e9aa89e5448ac775d70a844c948f661b3d5c065f121010921b8d5eb3927501a6af392a367b6b45900e9e8113bf05c76b0b720291bb544b072522c5f3ecba8f885fdf97055339aa9eb15a8419042d2a8654f286f5b685282b0f4fa20b87053965678150168745db6c0f3878a1159f7e7224856bb6755c14191b074112b62ddc0041217e8d740da726639d8b2a7fac633b458accfbb295ab6aa46701bd93a4d92a2f876a5476f378dddbc3a040c45f920e26313a53904b02c58907fba91a8939de099aa7879c24b298de5874bfe08c82677ef7cc439cec8d786a2dc63369956745e1360222683c98064d2c77a5df50856e07744ccc2cc6145ca1e3bc1b6944ca4955f63933e7d7c52c28045f75574f46615127a5666783fd1927d2f7a85340250f9cbd98da001b5bc52c2a8110112013286d08895ddaf6cbb695150d1263bc11312094c2ab65b914253a4d043f2e743eeac00ab0e8ce72d552c42b52bb3b86a81841f80247dfa1b1e194c6b420709957a76a575e1201a0865bcf8968353236742a11aa00411c3e286b26814aadc5cc0191c3574a8e77f75c6b2ab2cf43453627c60bfa1783dcccb02b636804a12dd86d2ab6c43b9564084b597074929644b66659bcee3c8b65616fb034c9913c614512abac69bd183773c51490200a0d31cc2d62794b60672b0f81ca23d144704154ebf18b54828bc347ab12274b42d704c2f12ae5c3893f4473f2ca5fa59553c14335df2a3d410ad043015b47806b4fb627352c019a5946f553c2bb406e63b916a297c28b27926967497d481896ab1d1d61a4e7389b716a96bfe977fa0a23da2a8c2a44b616174aa92a7d803109e128033c23971972bb293938f29c860d852a41b8b457b07d59e1b2c650111c9bcc6386519838574bf29c67c281446c05c6c547c4064eddd60ff882c061861ec8e663178911b44b5da2c51b4f687a3cd377147bc3412992a81b157dbc8756f6a6354aa1a10a4f62e15c3650bb2b8264cb76b0b173bf3b47b896e717a0aca7e95a203d78bdb9c885f89443f50144b0da14d130cff7d787a841534f80682882450df9aca4e6987ca6a253b48d63eb3954d068c5ba863a3a918d3356fd749c3d0903d4cc96d5f81c25db9875e1712babc2bd20773654224c923b9e88a7cdf98fff111aca186595aa386c200132028dbd34b2324c8458605f7d52cdfb11cc6eccb7f4aa4bc9c9a902d8864c1b1a0958493bd8784083bdf4e9bc07842b03b26fc7b275c34899a04b6158f7467d288011f2059dc875f7f9b1793a52dd7bc6e300bc6af29a0fbb6241e91e5f498aa33c2f64bb1d08daaeee24329c83ab76369f3d5697a413a581b392f69b617a592418154bb96c8728db4f44698ef735776e557efe893ee507af9f3b24da8b8da0506289096bee497989a9b5f1483b5a999995a663186411466740e6975ae2e6272920bb4d1518b491c3dbe3c28f2175cee0550260704ffa69c3216df65c0c029922e37a0dd798498b08b424898350a1242efb2a0e01453aa60200514e5cf5815a69954586165ee3a3b9f511be296dd4e5cb244bb7e94b813f76ad43a679f8a6a57966180c14c51c3c058fec18eef78cd6164effe80e54055dd3199e83e92c3e76caf368879908b19d3338034015511b8a3c9063bf960e062b45885103951869f6209455ab3b10069b2b2671bfd7aad8659495aa7d5b2619d3d95974ba268f044022dc58c466afd93216870695eb0b939e669fffb3b87ba79b574c135fea500bd93177585725026a689375988c7c01a116f27284af17713cd63592fb6d96298cc2f0a644a823d5662291640ec36085f19112d245a19bd07ae6dc1cb7d28eb97aae998c4dcd594be748ab81c4acbbb99fba3b77d573b16d605afc51b00e52780d921a7a8103adb5bca352acd421ca5d537241f120337c29885a7daa4248cfbc791bf907c76154c1fa7846839ef5aab5fb3bb97fea592b3c2112059ee9f5be0ef0637ccb9f37398bbd4b3712dc7dfaf5c5dd084c475b9de79ccdf7d194ad959f986560d601be23a2241979059c62b547590440771c72e72700ac028fe055bf93a854608d96a7b631725f76d33253bb1b0f57c6177073e9b137834176db79c4a6e740fec3a7b0185124bab2549454fb289ce42844f698a58ab100ca261ca79ac998db46fcdb073f837b70bb79d46cb50db910ea465b133bb99d1363c5f6470c19ab39c89d4b19b7c6774676ab1063ab19e07266355240ee781b358a0501417d51c193cf262ee03b91da282920d1a89ee50455e60404826fe5e8a0a39061109ca555663bf13c17c3eb64eada94096a507773885ae4b99dc54007476e318187966111dcd864ad80b86b240a2d7100f41b121d8878796406a628ba596cc975564541ec5019c166dc16375c024d632aa1f9e30317eb35143060a41b6dc822968025a3c753c2d2930422541204640e3adaaf54492baf0a8d53b8b4376bafb9574fad6900b093baeddb24d7e52cde1442415717e7f099bd326d3c399a1b54c657806cbb54a511d997a07067d0d8204e252977933279e5a02e1c064849991d32c889f1af3c7301fac32843c22c21eac420593bfcb946ec6a36cd1c2a580877ef893a74c189364c8ab673292931680356cd10494ea6f2656226bcd0c28c9f251284d12160dc3383198adfa895de2746c50c0317b4408db23c5da71be3fb423e2597ac25aafa91ae4d765b391591e88ac2f8b5533fc1b1ff22a350291fea170cf90a15061a2af2d38d7728575f81b9c4811b4ae18ca4501c059bc63a90848c86ac2febb0025a4271232687f535f91002d82409114148b9312e09f8b9593912f6d73ca270acaa72b26448111270553095474f6c2b68d1acbb8b505b40ccc7394a74544c38f250eea92bb9b767347bc09658abcaaab68e1756d2939ac3895ca72abb4e423a90fa4effd736fb9c91c9d92f3279b49966ae852c789d516f4fcc20b3f025cc9819a7c553eebb129e85bad23349348531a195bbcc7c0095dc1050f574e14563c9756f09812cb9795e6f04656f9338ebebb735509189aa126013b71c383fec1b77ccf109911412a1164734d8517a24c0a5b687a5222c13d4b645da8978142924a6358c715a288826284cb0bbe76cd19e2135cb6778de0da207212c9e3cdff9f81be4e0212feef4c5b2891746f43baa99dac300f0c1890d32e61c09af1cd83499f4680d96c8fce5de768ad13a9707938cd4a60fd9e36cf3f0593b2fe2c14589a0219991d02615de876a0c54e6f576
+8beeead02772ee254686873e2a61664d01d0ace4c1c891a19bc8970ff2003b31
+Ciphertext: c5d3a2f358ce69995c2c2b05b9ecf218b2587b06081011b0df905bd5c756efa25d2a7265d1162f3fe8d405c13d99a71970cf920878cc8d30ee61c910f6a88d8127caf560c440efcb64225bb027ca47a0e85fa788a0c22408227f4169e067846dbe201c49d30c4958136a7a04173e51fd8db3a12fa6c3c49b889adfa4b842dda2b59c087db2adabff2deb83c2f65f1c81449f6431f880758acde56ac80c1638835497aa9090b47cd968670c79c46a158f894d1ddf0f0fb76670fb3c5d71e2bc8f825518175a79503d0d5d4475f825469f764434bae3ff413febf9c2b964e1c97efd8aa0931d9f41ae9516595ce082631819b55146f504b6ab34e2da30a3d42d88f3696d5791f8f4fc02c722a5857090a7811a804e3589d0dc07b19a3199804a391d9408bb5b945a0871dc139a670ee91f723989fbf710a967252d6a01aac0c21b86883bed57def81afbffdbc13ca6e335705d8e8ab8324c4120a14b1ba47d968c1e5e15b094ed682c79cb66703ac8ea02c2cc338522f0d1da90326db70035cccb215231f1e821bad9d79735985bc06b2119d1bd0ea5113f7c1a93f80fd77574e922df039e63dbcb9a98ab88cf8a063c758db1ef4ca69764e8a0aee905502b5e2ce0cd52383f979a1aed4bf19b9214d291dfd2028654aa7ee16b206a58f02fd255416cb2b5680ca8ecdb8d4681c6d1f9d95020714925b38280d3c6633664d3a81d8349a95e3d5285597ba3ca84ccde472d587f265ab385ebfac537c03edc93e55f4ea56a757bf7fd40c3455553a470218f3efcc763237ed31ec3cfc4e6962b4ca5ec95e830a0eb1bdf925d82c98d0c094827649466674ce9ad97ed176a4949919bbb1940d070b5cbefcba84cebee16b117b8edc7adb38bdfef712a867739f93ed81103d4cd9a54719b794e9aece36e6d049a4694bc9cdd96741665c6670f6e9b53b49de5db64d493914c449980feef995f537e5fa679b72a87078c16e3e856afa16c6b96b8976138a83b9d4f82b10b48c960e81b03cd3bd4f9c408f3f604815ce24527c48c0500b373da8fcd9aee54684f2c1693ae6569bd065343f1a8171148ea279c60ba8df404cfbec09763cab9e1520fdfaa4149c81689da8059f13d904bd2c556386665013c5a0c98e71c7c501df3a35f42bb1f4831ceed499c45d381b76694b84e1024caa95a02162c15799a258c94472d13300637327677047611926fd392e1eead3b9522d1b9530b17c484fb5635441cc24d883137e88073d1b40bbd6964a442adb8632bcd6f2dc1ebbcb685608d748547f09ebb6c05193e2b1fd1f2c692e04f04a0558cea7f8d19739c440cb02cb53e59e84ffe0a2174400bb16e54dae8436200cda1f19c73acede395de11dc918921f5c410abcf56c54985044c56dc20060a3b4a57404cb1a37d3164eb75b4f4e47d9c2e942a05e8b2ef1fa6a29e9b5ad68dbb57fe0f3188d45506996e3c21c954863ed02e3f8ca4ed9fae35c0358fb5228d8767bc768e080d81e011e469846124ecac544b620abaf7a64809e089af83eef75fb2d240fbca6bb75cd5b1d0fe40306510ac426913b9bcbb90ccc25931edf1b325a98424b2307321eec716604f46b4431b86847e0f85a30a89c18e49bffce4e4506b1dced08742268daf282d7ad836b257ce0c04c4a267aa0b5a4b0542b3bad787e8c494d4c290222053f8f13778cbddf1c6270c712f9a8d65d333303844a0fcbf3b05a68735e166323f2085470edc579be64c5ece7de72ae40b4384ae5143a643187ff1800efc010d479c9219d991745d6f90eacdb4e20e266b63ccb509a303b8d2bcadfb9041730811d793c076b2a2bc54927557fa3441f225c054d2ae8c85e49f34dec7cd31bb87cbd14b2e492f6e78e13656a12369e24ae8f997e302e3a138296e7f20e7ad3bc9abbf7b19407d2dcb439e2e77a33fa550cd338eb9dd974c76ae19376704273dfb8391d03d0efe80ce67a6d01b47499cca52cd6d180c309b2928351ee247a1aff9d661ccfad8677ca06605002d25991291c5f3343bc6af02d715b3b7b0e626072b8dfebe9f5b29798872b3692d2cf5d532f7b6abc4ec688e9f0897e5d03a68403afdd53886bdd49fc1014413586746655f7aad8637a96d1bf8b445d1c99bbb8059effb66e9365b856d6701a0cebe2c14db69cf95cf99559bd92384d618d11e53907fddfce25af852348ef3186ef2ef173e20566f9f
+Shared Secret B: c4a60cf81c3a1103580ed38f5073efd6d7db56b4bbbbd09b061aa695be185027
+Shared Secret A: c4a60cf81c3a1103580ed38f5073efd6d7db56b4bbbbd09b061aa695be185027
+7ad20b8d4bd4bb7d506df864d8554556f085495b4bacdca4853e60ecd2cb7929b6e418e899aba27cd6dda4f46468260e8d16025c72cd398543ba4243c7ed07c2318257d159f0ad2d4577ec28a6f3ab35dfdc8485d0e1b452c36169aab197e4d32a3478f7695765e0ee3b7f3aa1999862f432f40af7efa2e3b14dfabbfd5b1c2bcb4a1098b6097545d09cd8265a9b0d6cd8eba472e2a97699a35df10422b5f0c40a02907115f875b5c7a147468a32fbcd5e93d362bfaed9b1780080d4eb714be121ae8ceefc68b69754fb014fd6250f89aee7b406414d1429a998a5c4f2db3cc1709e4eec2b3c1bec536e7be2739c5c51dcb6fd0081121ebb663f65c4b8ba357b9c19c773d6dbff4b45603cb702e636eee48b4105114c87fb01b0fdfb733dcf7ebad3b8164cd934534b7759e12ae6f8c78b74a75681c577b739843e8d2f89f5f2364b4bb5a3bd7e54a7134b04ef48a7b33448fd5a6553deea41997c27a1d18733d9bab486f810a2c5baefac7d9f2405f41af96f5e0521e33887bbb5424e5fd71080e542b46bdab3e84add94aedbf8e6d39f8db8ef48e44dfd206a1f797cec4b33f140b391f6cfd4c8556f306eb3b83c7db07c448d5d5b95aab5ac7bd8e2bf40b40b905e5dbbe23c171395fd8eb3e391a23598900ccb50f48ee740199dc93a3fc0c9c961da48a9eca4b4ad1f5461fcdccfdf19370d053ff404a546ca48fd893fed2a93627fdce8a4c3f2e085225edea0da1bcde32ed09b15448be9622e378784973e80f33ecac49b4f02001f7d9595e626ddfebff957f096c48962550eb34d93c4bf36b7a9884fc0b6684b8762561c93ccf77f4a4b140928520a29ed83aef8e56317a435f3f017745bc7aa38d00767df0eb081ca031f3a82eae8c49a03bfffe116e6339b8e300420f86f2e19984a1acdf57028edb6266ce9a97e1f787ae9631061b50cf45384dffc6d5d6f30f7b83646d77fd4b7634ca5e99497bafcaeb429b79372f93f573eecbfb5abbe0d29ebaa82e3a67ee1d4ca960a1841f939e00d0826a3af2d5e049440736c32f994bad2a6eed0bae759515e4e96b36ec0c657e57841569f80c62cf33e9d1a8f74a5697e71e7ad9828780529b6b487419b133c0f38ed61a9908de1a393fc75c5f1f53409e1fe00104e7ddf579d24245418025e330a3a725a1fd7c01cc116f2841f35ba38d8e3d81cb805074b8f39e27b975fdb14fde600eeba33c967f4999f6cd6a16652b826fccecd45b099c0a7d07d074ebeea729654aa12e0ba2df23a3afa325044bb0d82ba15d341bf8e11d418d9dd8fe54251203688145e0632291828b9a68f832f5000c111a6149e5419f9e7cb90353c2c512ad6258d01c6e173e935173741d6ba0eb37189a5170181bf05e3a6ec7109b6d4fef73ef8ac68b1a1ae27112ef305d740dce54db1e3a8d061f26b2fb9145b8e8ceee5fa23f681fb4336d52f347a8b82a908fa666eeb320ef7397d6304e02f57ea5c4d3f433cfccf29cc67463ca8745f8c33bdebd2031a4a04db13155ecc93643a306625e9ac90fd6131ec38ea70205a9fcd7cac938c8d0757724bdbc5bafefc2827b6aac6a255f94cafa9f3d9b910a2c5424b9f07d669aaa158a9cc982c8b97978aa9168dbebba71e4057258e96942a52369b46dd28e0fb9a551bfea18612e3aa080f376911eaf6d38c9fedf9fbf7d907679221242b37dadff9986714f1c705ef3ab577df52a2552b6c27ba71a7f3ee3aae8820fd3c66d300d284dc213fdee0a63a8f0f8970c98ea381434cbea61de27ff88bbadf9adef4672e28a06181f274ca0e08b2a4227552f79bbbbd16ba189515f306c9f969a02927aaa97b8d7131105209beaf8235c3b9fdff3333d20a122a7e509a6fb30f130bfffdf7061c002b61f14c88d21007a792fbb06dc1079e2698d5da52ffa691c4017a1d7f06d44fd6f2e931c39abb2bec8be4d27dce4907806c282e6c641f3d45f82a7b7eba711f7b8c63f1789fe33bdc4bc498b9a55a6059978f698c35a3bde1197c611c93dc6388df10e00cc9079c9016c4e867ef9f0b73544846931ae409a42a0e57e571bfb00378f314d2f12ba146755f872257a91da150b5eff53bf1a8acd327d061fc1da81875ad10627a6124573b220cc598814184ee949abccae447a331834da3507f58fef8eca197ccbbd36c6b4bd707430b3996b2a088ebce5229abe38fb6c1b010fc3da2945104
+Pseudorandom shared Secret A: 34f69fe99aef7e6e83b1d45fe5573a3f76d200c27fd1119b0bd130ba0ca6bbc2
+c797000b72f761f40444dfe3e70e8e35aa00f8ed3fcc3dcb6e879a71a8f52a682b409fdbb47d27431af80520eecb7dbf5bc371228973e7ff6388a9d0fc5b54fc
+Public Key: 01e269ac434f2bf8917530bd7b211f4345c53b2236f349cd66b3003c552a01db40a61490aa9c6688eb4203f634d2d6a2ef1a6b3ec7b6bce73a660546e764bede0b6616b4ce78ca714ebbc449224ad04c0d2295659d7758e53318b5a32a095456227c09d16b27b4115387a116fb4043a0a067facc4986b3b02914b8c30a91d0929ee868ae55ec2596e1a49383ce4290c55ce92ae30070efb976a5a489a9aaaabcf7499b90adfd1262ec9389f1d4cb4e0c1c1b24915d96b7f2d00b0af61b7d1124fef09ad9c8cfc02aac32354a17a805c432779490639f7b436cd9723cab9c7ee77c99598fa0d600d6e5c477999d24284910accff9a91e432418fb49209d31b1af0557ef35c5eb045feee7bbcdea7a3349aee5c1c725a365f7ea1220f320ec1c8da3571f719b82547b862a70a5fe22b6e7f4cae03c806b7b9747a34ba0c40c0dc61b15bc8f32402fb54a5a671c05c996bbe8e4bac2828a2035aca3f946cbb63a45f5b8c598256cf0bc6b633b6183c462b50635442df2275327a11a21c0b532796f23ac7cd9ccb2d9c56c0878c6f86c0728fc60a32b1ed4a220bc20244c0babfc6276bacb0e55871f023c1eda599fe658169d3a69b590b29591cd3097451c387d2fc874439bc265270fb70b56f1ccbec0441ab24846f74043ed486dee328da0a37367c408111c060a8038d1e2351d76b2a2330120b8cf8001b5a9720ef8d1ae487827e3f9cf948a2d2a6b452e344d43f6c5ed90731079c26253cd9f064b3fc11ca5b07fbbd2b94712040c8b2e9d0666847b681a03a9b0181def150481390a407966b966652ce973a1274539238709ab2fba0702509cc31651a953641882d79ab7e97ce53cc480f66b1ef066e3277ae81737d839821fa5aa95cc37522b921a8c9f71d2b4f5c583e38ccb220c356a317087e51c8d9c05c67909b8568e218c42884314e4e91b87380b93445fd4132069a694ed03138f3092a97831eae9957387041930a2caa84e8e52546363620a59b8f8f73231d57a04296fa0c72e83f286ecf127a7a35ab895366f50a75531c97eb78e380451b972a3732a4323284c10f826bba47f39b55c3db2b8a7e8bfa84621a6c39aee1b9d5f9015550525e6f5b116727ebe095c605b6032f7ab58763dc6b2448012339a700268b6b5290a8846234bf0702941320f12ea4ba0253b27c321970485a937a0356b48e7da681c5bbb1bb617d2a46c821966301ccf93953d9d612d190808911608c9c02c2c3b2c58d532f6f4b95f09496d5141e6b10a73760104759eca4203e725a1926428bf086a8bcc74565507bdc00e2b110ddad069a32b4385774e063c8bd1b4166fc70c9e490441da5b0b564be41caa30363cb0333f01cc51fe9733fad51bb744b93945c6a39a6071d86dd066c3789c7be8c940aacb8af0e0003bcc9a267aa854d7002c647ab8e5a7d85451b1f5155fe2140677872a7c95b15b17b26572fcc33ef0d4ae5779a467712ea5994a0fd8cd118955acca03f4292aa2d4081dab43cb3c24f9c74c9256b572578d061b832895a0832c0e32394f93f537498452692b237251c314b18487e317ee8c0ef993cda7e7645f377ea513ae3eb56e52f284900cc675f9911502115d6132b238122841babba96b318c64dfe52c2536867800799e6918a916a9918a6a41a7680fd46c40b4cd94c9a6211b38fe3b7ec3d480b01c892aaa83f8b086bb27153e086620c97591817670169cbaa85e1ee7ada1b634889431d055a8ca9c9407027e884472676a0d94a884ff213b6963670b80a7bf79190b9b4d7a25a291223c7c998f1ebb8d3277b73a79c32b22923eb5adf9c8c631f46ee15c8689d8008ea6758d97c1f0747b80c91bc5bcc7eea6556b6cbe56919147e70a2f9565db8c8bd03b9f5530481179abe834c286fb84e46bbe3ff72f505ab3ae6481bc52baac2920d7a84cef473ea2054f2d8a795d7a1722e037aa71271096c0b08241fc570183c7ce60e5219046c404b5846b5828f62a992bc0759f04334871249fc530e1006c73aaafdc437debd62e102bbbff95af241b6e88076c3765c836112e800c8870676666f14331e927f5aaaecdbbaf07979761b0c378ec90be025fdc569f8fd3a2c5d42c3c4bb2d20904ae7988623975c932452ee72cc10483b0d6cdcf247667d20190a795b779773b3e67b29c1d1104cdc2f9e71ab830df2e3728727f5e1242ea6e51f15bd2c135
+Secret Key: aec39d0db94804c050a7339fcd92a06d9686d2d16b5bc62a9efb402707a97f584df55b3b85bc5ed8840fc15377eff55a0dd59610fb238a6a2813f8315e1ca4d099339f0b230ca719be229bdaf7aba2a42c6d4103b6f30e4111a16da19670698ad2668f57756dc310b622bcb60ca3a8dd44b9b11b19dc636084f61ebbdc9ca2419955502336658f4bb25e1d2455c288a68a34567505b695c3b64e8720baeb9433ba69a4b636d7c4a4d6f66856049c67b3ab71715db56672bd171114aab43147a147715cc5faafe70c5f42a628bfab70dc065dab35c78c0519447c8a863c19183b2db65a2e25b8bab1db0356129fd440c2e71b906b9cbaba0198c9745ec925ba41c86868847c76c4c866374d1e1697f13a5b27d25cdb1205aa8765282b090447b655fa868a0066e70a0a6ad61d967c45acc5b8765a69f83c8907aa8204a9c4aff82b9bfcaa88179220d9b862d60120f5234c1763dc26ad47abc7e9b132108801a7a59c854085919152ff3005cf94c63d769eaf17a69ffa3ca7025bd4309c811347c67c9807407b196210d7391dbfc216d1a8bfd820207401c2bd3044178120f1f51fa65c00cc9a441067ce8f9c2ff0c64672e6b4f06b25e81cc7838a1d7d460757a52f73b9a45d32065c507d9499262203afeaf203d9564df338b790f9b2208c50b8f1316cd110b35accf39754c23c0c6843ac606c4958b9b0b1378acc45bf0804993be741662a6ff3d7230b9c5f33c201002181d3877333932a3391aa84e06938b8283f835a7c8797680a2d623966a667110fe1c0ee6c35bb0cad088716984cafcf9026680ba43c029f26955fed9b5045c644765545dea44f56877f87c7bc6ad7aef6a16fe9a67a5e15a437813aa28a88af2082047184feb14406f9a6d6a92f32735ab097395b8aa85e470b5b1a7ff3390396816aa9548764a0489b24c16718bd07f3b9c43c3b79655ed8a80103809a01a4922cf21a92666a6a7a31902c15d895b544c2a7ec422981a40a139a79f6ea1fe1890a70e319774306c8f4464bc9cf15528802a388f8405a84847558949dbdb468eed21707069583cc912046bbe00b93bb7902bc20cb5cb4620663076ed26ee4395cabca6fd5986f0814be5716149099527b43adeeda5808d61b54d061854348b5f92b06979cd5053f11626aeaba76cdd9a1dfecb65c8961c58005eaa7cb4b45c58582bc55f59cc65c1d4d9c2fb284297553aef3a6a81d03078d8365f688ad5ceb65fa54616dc3bf456acfd06a05d506873f480f4be738f6e8827400b2cc3664a72a80bae86979a6900dcccfbe92a5a13b8da94294d37c5de6da9ba76204dfd63ffbab229cf7ccb28a4683ec7ea405c0fe6c63528655068a6723054b9f3462c0839a21fa86504987b8a2cbbf4810041a40d6faa23f594e3ab12336b780913b1206e50c72769b9708207fd42995427be9a86690d4315f79c65985351b0a9ea88bb1c2046f1e664c6ee4a89a4381d1435fbaa51c53c69bb6f43b03e7216c10102c293316682164308809eb3b6d402cff18aba75c0c7659449af31adcc6b1e2f28b1249c6bea888ce400293c8193718757952847e7973cb88c788817830f176567a5cf55ba8c2241a229a81877c371e1c3a83ca7e67f57bc67a060eb36641e109e55372a956c5660541f5ac697508b3d1e005ecd6cb4dc18d93f793f5281e4d840b7ec441a870aafc934b61a4850c854ef23773bcd07be1e94711e35362cb37196a522cbbc1430069b1fa8e00911e821964685cccd7d0344f9897bcf7bfe0372c3e85cd32f1a06451359f125cfd1319df56b51d6181ce36902dc304b6977671cb5abdeb9ff8823cdda9ba312614b3928b3cf09b83837574a91278002084f6797a6b3da2d882d0a252b8619e9c4c10b85490e3c837e67900a0cb7a8ab78f35953be4c3291de1552e695d6657beae145ec98340ab3c8d7457c7b98472934829c7f5c9f1dab93b5bbfdd552fe1d2cb54e236fc1862b6ca549f279362733434d1363975bf676317d6842ce2668c36343e3e288a51996773a70e6b383c696973e0151fe5fc2a19c840cc7c56ca33282e0962c82548aa25346d00b252b1276587a49cc64835e1b2b5056190a034f429c3a42a5c672a264b0611efd5a0fcb5461f9657735a2dcfd172f6d035ae8754a62ca5c487b501e269ac434f2bf8917530bd7b211f4345c53b2236f349cd66b3003c552a01db40a61490aa9c6688eb4203f634d2d6a2ef1a6b3ec7b6bce73a660546e764bede0b6616b4ce78ca714ebbc449224ad04c0d2295659d7758e53318b5a32a095456227c09d16b27b4115387a116fb4043a0a067facc4986b3b02914b8c30a91d0929ee868ae55ec2596e1a49383ce4290c55ce92ae30070efb976a5a489a9aaaabcf7499b90adfd1262ec9389f1d4cb4e0c1c1b24915d96b7f2d00b0af61b7d1124fef09ad9c8cfc02aac32354a17a805c432779490639f7b436cd9723cab9c7ee77c99598fa0d600d6e5c477999d24284910accff9a91e432418fb49209d31b1af0557ef35c5eb045feee7bbcdea7a3349aee5c1c725a365f7ea1220f320ec1c8da3571f719b82547b862a70a5fe22b6e7f4cae03c806b7b9747a34ba0c40c0dc61b15bc8f32402fb54a5a671c05c996bbe8e4bac2828a2035aca3f946cbb63a45f5b8c598256cf0bc6b633b6183c462b50635442df2275327a11a21c0b532796f23ac7cd9ccb2d9c56c0878c6f86c0728fc60a32b1ed4a220bc20244c0babfc6276bacb0e55871f023c1eda599fe658169d3a69b590b29591cd3097451c387d2fc874439bc265270fb70b56f1ccbec0441ab24846f74043ed486dee328da0a37367c408111c060a8038d1e2351d76b2a2330120b8cf8001b5a9720ef8d1ae487827e3f9cf948a2d2a6b452e344d43f6c5ed90731079c26253cd9f064b3fc11ca5b07fbbd2b94712040c8b2e9d0666847b681a03a9b0181def150481390a407966b966652ce973a1274539238709ab2fba0702509cc31651a953641882d79ab7e97ce53cc480f66b1ef066e3277ae81737d839821fa5aa95cc37522b921a8c9f71d2b4f5c583e38ccb220c356a317087e51c8d9c05c67909b8568e218c42884314e4e91b87380b93445fd4132069a694ed03138f3092a97831eae9957387041930a2caa84e8e52546363620a59b8f8f73231d57a04296fa0c72e83f286ecf127a7a35ab895366f50a75531c97eb78e380451b972a3732a4323284c10f826bba47f39b55c3db2b8a7e8bfa84621a6c39aee1b9d5f9015550525e6f5b116727ebe095c605b6032f7ab58763dc6b2448012339a700268b6b5290a8846234bf0702941320f12ea4ba0253b27c321970485a937a0356b48e7da681c5bbb1bb617d2a46c821966301ccf93953d9d612d190808911608c9c02c2c3b2c58d532f6f4b95f09496d5141e6b10a73760104759eca4203e725a1926428bf086a8bcc74565507bdc00e2b110ddad069a32b4385774e063c8bd1b4166fc70c9e490441da5b0b564be41caa30363cb0333f01cc51fe9733fad51bb744b93945c6a39a6071d86dd066c3789c7be8c940aacb8af0e0003bcc9a267aa854d7002c647ab8e5a7d85451b1f5155fe2140677872a7c95b15b17b26572fcc33ef0d4ae5779a467712ea5994a0fd8cd118955acca03f4292aa2d4081dab43cb3c24f9c74c9256b572578d061b832895a0832c0e32394f93f537498452692b237251c314b18487e317ee8c0ef993cda7e7645f377ea513ae3eb56e52f284900cc675f9911502115d6132b238122841babba96b318c64dfe52c2536867800799e6918a916a9918a6a41a7680fd46c40b4cd94c9a6211b38fe3b7ec3d480b01c892aaa83f8b086bb27153e086620c97591817670169cbaa85e1ee7ada1b634889431d055a8ca9c9407027e884472676a0d94a884ff213b6963670b80a7bf79190b9b4d7a25a291223c7c998f1ebb8d3277b73a79c32b22923eb5adf9c8c631f46ee15c8689d8008ea6758d97c1f0747b80c91bc5bcc7eea6556b6cbe56919147e70a2f9565db8c8bd03b9f5530481179abe834c286fb84e46bbe3ff72f505ab3ae6481bc52baac2920d7a84cef473ea2054f2d8a795d7a1722e037aa71271096c0b08241fc570183c7ce60e5219046c404b5846b5828f62a992bc0759f04334871249fc530e1006c73aaafdc437debd62e102bbbff95af241b6e88076c3765c836112e800c8870676666f14331e927f5aaaecdbbaf07979761b0c378ec90be025fdc569f8fd3a2c5d42c3c4bb2d20904ae7988623975c932452ee72cc10483b0d6cdcf247667d20190a795b779773b3e67b29c1d1104cdc2f9e71ab830df2e3728727f5e1242ea6e51f15bd2c135a71d59385989b98930852ac5f87c48562846cf76ca9787d4681f2335ca099fc02b409fdbb47d27431af80520eecb7dbf5bc371228973e7ff6388a9d0fc5b54fc
+0ec65ad5c6c8896a60835e660030c7dd4753b9265eef9abcbe1e882abd4ae007
+Ciphertext: 8043d2d200c45ce9f8d779f3e5861d2646b9db853cc9db7cda5522809cd985a15f0e5ab6002ee9f3ef91a209e4020f4d2ed6258a88c4aa2b5ee9c78b7a2f691d035fe2af4d0c9f0745013b7dce460f65e01c2ac5be0865a42ff2ef57ae6fcaa00e3e135bd34949e38decfd847ce98bf5dd9d791e571ade1d79f7030d0d448dc56e0c8d38b2e13da22dd52a3a05a837cc41a2b537f517f5a5d247028e3a8e41df4eb81f50640975cc96f4333aecab44869796de4cd94c7966927d828fb263d42bb66e3175049bad7c07d7e7b2f39a5d0a4cfff0f9dc7c3f0c6e0048cc2d41ebc5bd6117e87fd1c5e7ec845f2f91f633008729e759d6a7a62ed957795889719d6e72884f94bfec9392e4f642837f5cca61662024a66d7d89e40177bf23753635fdf53b261e7e10bdc0d9c310764f8a98e0be84f62a25a626571a035f90a0daf3ba704605cc9e8977801372522f1cd46c8f4b46e6135b469553a1a2110c21de5a37705fb2b87ee4bb5e5d18e486574e5c4f9b84b73d4c74ecf5bb53b300b1892bcb9e932ed49ce8530f00934b16e9da43659d551130610646fe97116cf3b14cc7d38f4244c0a2bae0df167ee010cf729c0c16ebf96c93b3361ec9467b853eb0bdfd85fe5c9d037a2298fa1ed5beb2c003152592f5f2608d36f5b4cf25aec6d28a27ebce5bfe78247f7baecc05c71e842ea5645feabf9277ae93d38fa7576eb6583f33e5049444d7b6acdc1f53d018256662bfbe0c5497e1d64f826589c646dbf2a649a39d52497bb77c2968aa773f3c1148055916e13dab317c30e69dd07036abe78b5cd3f43a57d4d7c06c5e4612f7ed671cb66e6d9c81c800a1cabf01c49427b589f7187ad3e9418453eac5d312b0ce1605b434bd2d7ac465034512b64987690db24bfb356c8347c2196d8b629bde16ef4f220a7ebbb2dc7353f1f3a68441225cff14c2965f4ffe2a452631f8245ebfbf4ecca154407c46318e77920b8601ac775482311bd10d62c5646b0b938b441e2b33e366cc40de8003e021de04a43cac3bee22321070c4179c16d4554dfd23b2e683af1df2e4bf91c0b95dd8baa1af59a5d6daa8c263c1d916f1c84871233835435cf634691cfd33f65a19db5081dce360aad6beb76287c414610b8cfd86067ecf6366e7de7f55fe2b93dc897e1dd6be4381747db7a6b53e2f3573a4525a97f0919d456f96b72ac5249fd88ef4b3f53c5dbbb93c3722e2b0eaafe26eba551da21e33ce0f1f94441755c94755de25b1b9875ff2d7937f6de3945e57b58519e90435ea2e1c5ba05c9e525dcb017ab7760e855b9de668603877e6104d35dfc76202cac731d8e78e686d29286764d2cc57826dbce1288ba975eaa9ee5d61a211f39049d2c61c2ac2b1d44f20f900e554e973585f2538241c4b75454d1f54fd43149f4cbdb0fc364ed6c925c841221306d5ffe1b3bafc15df28b6d08cb5ccd773fa1eda173d5a04a7e2751e8f0dafcbe91a9b9e2d7995b3f4d5355d918a13d3f8cd2bbcb010b325def7de5697c6f6c85163a604e8c4da157d924e7018b5bd735b7365268df60b7121513cba92cf09dc9c07f3dcbf14c76bc6f5b3410d8232db2ae099fbcb48c44abf2e48729604a8a54fd24b9e8355c79f1749f106955726b0e7233ffa3fb06938b7549f5e4ac1f9446451b821d646f6eee67fe1f1cd777d6ecbae87752dc1851da96d9c7e98aa0efc1766c507be3e577405a1c0c1f942012f00633ee9d37e765bd6e73b473f60fe8c01d2f1d126fd8c77fad300f295ae11d7ca42c93f1909c1246e551632bd3569f4c83aa33639ee8e2a5ce368c09b165c33cbf8b879b59fde947874093f49ebc531c3879b02e6288626c359e50f94c01c94e7dc6d0c0b30291f41f15b7eafac4054b46118ea5f534eed15cc5e657bdcf6aa743451b6413501a7077d43349ed1c8ae26701d65799bee78d51bd2d3325b58e2c7904f857af94e11de1a8c097fd1a3b5a287b48bd49cd2c652a7bbd8cabace7bafb63772c8c2d8858aef3be4b7f92d07e9f54febde42f4582e4a80b6699342626bcdcb1eb335b3bed7c4529fcf811485bb090fbb7837adca48bbd7d1303e08b79c7b6fb6af9a5654425d8b6740c541710802be1b6ead4e5b324ea911a792d7b4b6d2fee62b1b4d9afd2671b58d3645e1fb38ae505c95a872cc4aac3f58e09725a4bcc3885d578a628788647afb0e3a23fcea5c10
+Shared Secret B: b1891f2e045e2e17858249ff7084e9dc21ca4a524de2ed64d266d56b2ba86b60
+Shared Secret A: b1891f2e045e2e17858249ff7084e9dc21ca4a524de2ed64d266d56b2ba86b60
+91e30712e27be1c2f4d3923ac4de729f9483b980d35c3bdcc8a957c82cfe7ee00c6657798ff008060f790c965ce2814135259650bfe2a044f862a4feca0e0401aa388316de5218a3b6bc04b1d329a38310fc1b262e8054ae6e9c13ce1cd02b8d3afe9827c4e2dead50bcff399bfbb53e3455e61cd2fd1a58c74986e17afc1f1b36f5945ef2be4816ed82f1478bbab2ba24d7bb8880f26f65579ceb511075e8a2f6caee4dec9768db5701061ee314c0a12e05c23dbc5c88cd8c240e393a9109c4ba235abc17d87e105d34f90d8b3b97bb91356aee6a965c073fbe204ae30198fd1181e26b6cb1d5885667464117fa7243182f2329f04b0ee283b3a2821241dd8a0650659d42f0033d9fdcc2c24e07f7260193c7f0823318bf1d2bb16c63619bcb7c0560f482723e89bf1b2d05150bb5ed9c9890bdecfee6d00742350ec550361ce0152f0725c566d76f796dc27a520eb573d8b93e3d781a4ac3e253fbd399b8ff18a16275660ecad04d055e40f0db67f78e5cafc9da0020cac561e22b52c2b17f0dbba7871f0dd9bc38499cc4c17e6ad3064445c721eae27a406e13ef600ee92fac53b47adf5c031a94810d83947d18f2fa1b07c462c604fce0b7e075a03ca3e753a0792167015e8ebb860b49810fcb27c8d015fa45848fbaa598f972e67d334964ebbc392e4b269bbdd064356478583528d197bbc395f4b58b28703e745895708d251852d6d08a925450b1d4b0a56adc2d7bc05d9d29d626a6b61f49478e7a87a481bc71911f0131e1a75a78635174060d0126aade2ce1ec84c454b455bf719da78a4bdf138d3948b1a906cd03ec56b01bbe6e9f168e8d66905b318db89156df359e3e61aef3ede7a2e6db9a360d2e7a4845531ada38417d929f494af3b8e3d197bbf6a739fe528b79d0c6b3bc8c9f1e88a9acb57e1f9d13f934c123d5de7345fdfd2fd6f096d212b4f5a8ed0ba982a3d4d07ad7f628c36e2065b865baa69be080c76bcf8e7208a30e9a722fcc9f4b45961cbcc41931fc48a2ae967d52d90a121f092dd7911c2f0a81a3bd4813fa30de14b145284fb8ecfa9baed08386b393ceda556d879fbda1d88ccefc770ecb79f1d73a5f912d6654252a7f61d41ee3f5ab6cb1807b8829c94c044dfe4bda29b2b541cab8daed631e3605c97360bee1b60491685f28718a8625c0aa3876a5b64698189ebfc51adea72f7d434ba7c965c6044537c3504950b2b2e33733fe24ac4067055ee06f47ca00b7b48fa8dbd980cc622af4a5610eab9c5f6762c43f0d2ae1324eb93d67332ed62e6a8a6649897470d60e28f274483df6b4a9a2d015077d5eb924f57be7bb8701d418414d092932c458c6157e1229446de6b278ba5fcd27cbbe90174c756c5a00e09dcec873f32ab0e247219df80120a5e15d1d61868643964b37b448988e1ef01228d1d0b881160e33300774b98b8e18182768e593fd2f18e2efcda1ae873ddd1a9e974e9ca5f1fd1634a383d7f1241cfa77ea65826c6a5d73a93c9ced34848c76d39afbdb13b1f4ce21bea111a60c892fc059c7312d684b07e8eb12631906acaac1bb9301bb6b63c6a95fd9c05ccc301ad157c8d5fa4574e53ce623fd59758dcdcdd5a8c3c8556972e31f228328b28560afc5c8b8a9b33575bdd241095ec361f76f19c0b39e75fa2299d0c331ae661390dca7fad5e7bd4df3cc2103ebbf802f7352e704eba4406595f9bef2fe66ad6685c19170d7328bd0596a1e108abf092a275725e1f9284fbd10aed0fa8d94909cc07d2eef18ddab499179f3d867e380ac52a17b75fdf1d456dfc7deff2bf9b7eb4d89b7d6bfb85d788571d22d34008cae081af2cf32a8a3ae79605cf34cfb276447fd768f25d4442686cad0027845ef9d49e79deb1de2cff233447841d13fde2d72013e114ba555222d507e6105437d2af1c5477df9194e00ce99cdd07d3658c1545e9a257a7cdaeacc785b2ae71b440b71d7ba1959e7c02f4eb0576858773fb14317288fd7cc99720d32aae13f091dc42d4970fea5a43d9350fd9084f3f3cbbaf096e3bf97b96b74e5234a566127ec756c7f0ac3fef6a59c058b7ab840c568d23ffb8875f7d99396b0d384ffce5440cdf8d49ff1221043a4cd7b338e93dd65d409fc49e3910bd9b624cbe8915a8984cd6e46508d489be3296c02e5a983b0b7a227666a368e3eb6dfb10e00d110d362031377e325a638250133
+Pseudorandom shared Secret A: 7b9b78db7720732e0068a2cb66ced77cc3878141363eee28c2cce43e13938f5f
+de6a3bff9767739bbd1262e7ffe125b888322eab650acbcba114c4953fe3b5768e9c9a0a62c412f21e62be1aa7dfcada9f0437250a51eded7b961712f162e2c7
+Public Key: 896a76f7ba6d466ca421623b06eb8cdff009f4d8cebcb4c2b7b19064632442fa4a0bd67c55340ee5b92e323511e0d194978977d44b3ba934c723c80bc0781ff2c897ddd34ccfd6c8bf1bceb81285f033a2b1c381c32773187b48071a4b9b3510f9294bcd48b781e77ccee3726bd538cd27172530c721f11daea2b0f821525dc469bd7806cba5b9b0aba2e00930c1f036e7d42b7545c58249be3c60be3bc4b0146b6cb2246b73e2816a91348dbccec4fc7129305dc9625b432c2d804145d921adb78c08e8bb5de9d21905c8ab1ffa450ba24e40c23e27776a9a40bb7c44131e98c75a06306ab72c651b6d6c69571edca50b353f6b816d9a9a06e7a149f183c0b6904a2d47051598cba8a694001b5949103909636b16d83a7734627c5011a4f30f2585404a9b5b6671489a8512030b382b5867d89a91c743559cdb745cf6aa13b58ffba75aa084ab155b7bfcb8c3e24879f7db501f6a2298d23b9dc957bfa04449189d2a4252a1a3ae99692611f43a9ce481f0b01fbad52308409add27a5f60c9d081b888ed912aa7b780e924c276085ecaa345df247448b00beb0c8fa5b951bd635f2192b0e9cbb35c54b93e9b59a695254665db6c40b0eb814d8746454ab3033fa3111056de454c5e49461e6523b4950330ab510c420096c6a1604c73459da176c1430653b88173583adbcc7e7e42d23a91a491341fea49e96399c6cf83489a13f4058b88e5514f6848f34900c1e97a9fcca85d8689f975ccfe014a8fc0b1f63069dc3f3279dd918b988a45bb697cd1b1a32f4777d34744467a88363bddce8b4ed67b99a43590fc61c49746f7e71b030630ba3d38ef8c807998531a0a5372654764512239c38b3eaec8471fa8f57f7210ed7886115aef82c7eb88bb1f0d250c0dc0d99b4a737dc025db993cb4c54fdc0071e525cbcc31f5ec0cce3f18804f7450ad7a67af8b013f5c069f909da848f9ec83b4d021f9061a22e9baab0362bb20aa7668752f8773c43699dc0fb11932601c42ac1f138c52898a250679b247b5c0c4998ed98bc27a224e9274c787ca53a272b30616401155d3f7aa55bd4aa59d598a3c936e4bcbe19e34e81e5b5680a9b58b25c268c715bb47042ccb6b7dbc6e7ca8433b00a84c79ce3ebbfa0092acd2c793b3954e137391b11b064d9be06d5523ee842cc711282c970226a4cf3c03589c94ff2787e4ac685467ac3ff901feb969c448769f54798d814c936633d29ec1ccaf11df123444623c3a4881c66b550ea1cbde09cab7330492a14c4cd7a8f110b41c4f75d829576ea549fffa04257b4070a8462bca1bf8958373cd51acf1595bd3115a61b7f6ee3c97491989dd8c3985458060bb975e50681aa90322591f13197eef9614522ccab000d54dc46215c9e52c790eb41632c12097bbb0839d70e77dc184f8a9229c4391085b46383a514f2bd31ec4d26b79f230726a6a635acb8b9b803b2c7e2ad72a259ccf810479a872af2672e71295d643cb910a1129bc8732a5532a7225ad80f7f995b54200eb6f3c70c141bd7786760e2bbed7a99487b42c5f423d15705f47429b24a6685f51f61bbadb757451b84a143e256850521ce6390f1ac3c0fb07823ac27e2b32540f3b3570c592e49ca0e0b460805757164c236e2b1407c21946285483492fb94b024a545c25b07e23023bd3684b21c455cc7828f13c113cb679f39438e386494eb41dbc1711ff19859844f58299a3c39a92b58946488207324be77b1c6596b9cab30070c44c88b975ea7d0c48c6923d7c96dfb3392b0a109a551983f6ac84f4007c9a02227bc17ef06607f71ca1f8773aa9429cd1c2850a289eb0bc7333486adc142bb1a06cf457e07d33ea4c07493500008752af47435c88780d9a7cffae4b1c767afeb54953a87bd421723551373e77ab96a29ba72140153d0824de16192bccb4aa43e02dc195fdb181c3a40cc94cad2100c76430d700aad6bf126f643b7e7f184181b8aa53509662894478b6157589aa764973ef24a10c332f3ac947c3690d2332c7e5c7228e71e47286ad4737b31cc9b2d83b942e9516f6727ccf00b0d884e54da0bbcc0c1553391623baa01abac7832c1d8794a063bb2acf359a080c816672c30d613fb94534eb30cab799c5407109f167d28120c28a85ec9848c9fc9468ec9061c780fa6ce87e050f2c674f4249c0c787f1d27c7a3336334030163b3cd5d402d33c231
+Secret Key: 82e1102df02a226604fe59aa9b9567339128a6118b975193ec7834a6e0925967cf10bb12ecd12a4d639cfdc71016d886b23b5ddb0194b1940463f2cfbc994227051f5511a43c125fba74a2efec1e71c4b5f00b2fb2648461031ca121b119e41be8830bfb3a917790859e952e08a38b000503f78b58b1120da4ba84785cc2f6bc60ecf81b3058030eb520d8522ced80a0cefba84c9c3295d6cedb1701ea812f5e08a88d700e51d3133b061dd20c228c1037bbab0b9a712f85d9bea07312a4c81d0e9ca5b5333546310d0b92ca06232ab81419045bbf5763b65eda20d5f2414227c5db24cf4b71ca61227d6f0459584abb0fe06679b11773d65c7568a58fe80eacb7728466a6c2c433413b56c64b0bcd7a71b9533b6645637ad71e4ff64cd9a65d806a1e732a4699b989d4a128c966494c76ca992cb44b823bc43cc695cb247b4b91aa6837c581629f85983da60bfed99124b07484539476a99994d7bee866b65f60631f842dc7806fdfb736927a792cd72d29cb0da5191b2c8a38b29b520d474856787c2ca876bd0c918bc441e81b46b1d1c784d055161c0ba6f09e1b474cdd884c06f7b53ab6a8678b71c8ca62b0a618f321417c8950b035bc1a3473c79488e169462018513e050c021192d8e477628400edb44337b6a1a1b642c961506c425645712c002c8f2575302855aa44f62863d20c03970844008484837813ea7fff9a280306712a1266f4a88a5ebb62689776e692037e8677ae66b28ab2c88fec345e135cf1027eff9bba6382b8cdc547b09a2fac4096a9cba03188a957c5c8fde860166b0646f4525da0ba01c126e0b815a247274a6a9425b2a1127a1dbf7a1890430f34a13ada398e05d9812299b904297afba68271b4185dc26340293b0a8773937c79790b76dc9bb5502c841b1b1cd41585c57875ba25cc7976abfed9355642c32331cc56a34c23ca7912e6555ac935281bba8260811771ba12cb11dee3bed3209a2f857c95b1132628621f94676bc715bd06376650a52e84632e091cb3dbadb3998f66649f15dc975ae75c016487f6c24620c101c9f8145d20133732bb67292a42d7442f13528dd5c9d328607945342d492cd3b7ab1afbbb953348a2d8884c6c0792cb09ced1b909b800aa35c7110ca5b008741ca631f99254dad1c74176189cb96f7631828b1014a1cba09b10a4a56390eb296d42eb7746fc0ee354196367af8532a447bb23e1a6a0daa1acf3c4133ad42f281a816bb82aeeb53943e1a0e4377f1004280b14ba7e033760906335c07442955b774cb846b44444353af314ac98c08a57969251280c1a2b7c95a51fe3a687508a6e0feb85a902347a560b0a20552facaba514542a7863132412603747dd748bc0642faa566ac8757a8d6b7d9dd97a0d0007e190b8946380ca093a7092ce80a08bc3a3674535b475f2069f2a313e295acf8a5105928666d26c993756660459fe943679a5b488849b289a1f05f73af6a8cd63c3776f600fbd93b3d47459fc489b4d80c53fda399d20cc2e9645f868977190c528124370c79e4f77cc9152b360684fb1ecb537f5c35f03662eca866c229572e54394c9b724268991a318b8d8a066f27efd2133e48682c8716685017833a5b93f0a861955835e618156460c595a656765889ce9988fe4bf62b479c9da6e6a9913511bb270e30f99962074db2b72493abc50bf3ef7bf7d5c960e03cbf0c458f9028de8bb00385a5248f52154733b63b77adb0b5d67d30071d523b43a10a093cb9b57a1932304d2b131ce3c3227b17eb5a54b153b1e9eb47a02546a93081048677fc03c064a23ac57dbc99b4c46669a74a9824b4b43c29e4a9786f36ef1b8c67c101801d92822f18269dcb01a96c2d5189f2afba7e11b8034e60277b4904c8957bc3b1b9f75b9f0652f9074808b058ea7b66a8408470f603ea1f44841789c7f98222ff461fd274c2115543889a18e401a02c1bd3cb319522056c8f5b0e2300ea33c9fd1a53a68777ce8348737377671d6334c47a13f37064a70cbb945a900d43bc083c1d953a4b0644c5c52b7bfd961b621b458242d89ccaa3ed1b9eef88e02b03693e3736e3016566a975eeaa408d1b63a9a7dfb571ba450072b5898c93a9c72dc48e778beca2696fe051982a77877eacf75d98cf151746969412b671a896a76f7ba6d466ca421623b06eb8cdff009f4d8cebcb4c2b7b19064632442fa4a0bd67c55340ee5b92e323511e0d194978977d44b3ba934c723c80bc0781ff2c897ddd34ccfd6c8bf1bceb81285f033a2b1c381c32773187b48071a4b9b3510f9294bcd48b781e77ccee3726bd538cd27172530c721f11daea2b0f821525dc469bd7806cba5b9b0aba2e00930c1f036e7d42b7545c58249be3c60be3bc4b0146b6cb2246b73e2816a91348dbccec4fc7129305dc9625b432c2d804145d921adb78c08e8bb5de9d21905c8ab1ffa450ba24e40c23e27776a9a40bb7c44131e98c75a06306ab72c651b6d6c69571edca50b353f6b816d9a9a06e7a149f183c0b6904a2d47051598cba8a694001b5949103909636b16d83a7734627c5011a4f30f2585404a9b5b6671489a8512030b382b5867d89a91c743559cdb745cf6aa13b58ffba75aa084ab155b7bfcb8c3e24879f7db501f6a2298d23b9dc957bfa04449189d2a4252a1a3ae99692611f43a9ce481f0b01fbad52308409add27a5f60c9d081b888ed912aa7b780e924c276085ecaa345df247448b00beb0c8fa5b951bd635f2192b0e9cbb35c54b93e9b59a695254665db6c40b0eb814d8746454ab3033fa3111056de454c5e49461e6523b4950330ab510c420096c6a1604c73459da176c1430653b88173583adbcc7e7e42d23a91a491341fea49e96399c6cf83489a13f4058b88e5514f6848f34900c1e97a9fcca85d8689f975ccfe014a8fc0b1f63069dc3f3279dd918b988a45bb697cd1b1a32f4777d34744467a88363bddce8b4ed67b99a43590fc61c49746f7e71b030630ba3d38ef8c807998531a0a5372654764512239c38b3eaec8471fa8f57f7210ed7886115aef82c7eb88bb1f0d250c0dc0d99b4a737dc025db993cb4c54fdc0071e525cbcc31f5ec0cce3f18804f7450ad7a67af8b013f5c069f909da848f9ec83b4d021f9061a22e9baab0362bb20aa7668752f8773c43699dc0fb11932601c42ac1f138c52898a250679b247b5c0c4998ed98bc27a224e9274c787ca53a272b30616401155d3f7aa55bd4aa59d598a3c936e4bcbe19e34e81e5b5680a9b58b25c268c715bb47042ccb6b7dbc6e7ca8433b00a84c79ce3ebbfa0092acd2c793b3954e137391b11b064d9be06d5523ee842cc711282c970226a4cf3c03589c94ff2787e4ac685467ac3ff901feb969c448769f54798d814c936633d29ec1ccaf11df123444623c3a4881c66b550ea1cbde09cab7330492a14c4cd7a8f110b41c4f75d829576ea549fffa04257b4070a8462bca1bf8958373cd51acf1595bd3115a61b7f6ee3c97491989dd8c3985458060bb975e50681aa90322591f13197eef9614522ccab000d54dc46215c9e52c790eb41632c12097bbb0839d70e77dc184f8a9229c4391085b46383a514f2bd31ec4d26b79f230726a6a635acb8b9b803b2c7e2ad72a259ccf810479a872af2672e71295d643cb910a1129bc8732a5532a7225ad80f7f995b54200eb6f3c70c141bd7786760e2bbed7a99487b42c5f423d15705f47429b24a6685f51f61bbadb757451b84a143e256850521ce6390f1ac3c0fb07823ac27e2b32540f3b3570c592e49ca0e0b460805757164c236e2b1407c21946285483492fb94b024a545c25b07e23023bd3684b21c455cc7828f13c113cb679f39438e386494eb41dbc1711ff19859844f58299a3c39a92b58946488207324be77b1c6596b9cab30070c44c88b975ea7d0c48c6923d7c96dfb3392b0a109a551983f6ac84f4007c9a02227bc17ef06607f71ca1f8773aa9429cd1c2850a289eb0bc7333486adc142bb1a06cf457e07d33ea4c07493500008752af47435c88780d9a7cffae4b1c767afeb54953a87bd421723551373e77ab96a29ba72140153d0824de16192bccb4aa43e02dc195fdb181c3a40cc94cad2100c76430d700aad6bf126f643b7e7f184181b8aa53509662894478b6157589aa764973ef24a10c332f3ac947c3690d2332c7e5c7228e71e47286ad4737b31cc9b2d83b942e9516f6727ccf00b0d884e54da0bbcc0c1553391623baa01abac7832c1d8794a063bb2acf359a080c816672c30d613fb94534eb30cab799c5407109f167d28120c28a85ec9848c9fc9468ec9061c780fa6ce87e050f2c674f4249c0c787f1d27c7a3336334030163b3cd5d402d33c2312e625a18b3bd51006a8167c7e99e82a9903da72be811fb487633286c56031fb18e9c9a0a62c412f21e62be1aa7dfcada9f0437250a51eded7b961712f162e2c7
+8e1ffd5c73c9ba7de943d6e7eeae55f4db5edf2eb1e43b217adf87a3b2e6a063
+Ciphertext: 0a30db1a0b07e370e46fca838d923bbc992c85b37702275df9c15b2af6ea583b12421cea9bc5d1741a1fca74e64773591c228909eab5bc33b336ce6684e6927288910371d4906dbcfbb86673ab7d09651dc99a6a2ec5d952d577210051861404eaa55edc3f5b13c00617909a7aac15a163d78e7d345fafa05747070fee76010fc5a760d804298f375905cae6751ca5a552c50fa83b0afd09a56ea62e924fb542e26cc53a1413e74b015d9707966d4043814f92462c529052f1af234aff8845d59c9267a9fa0ab8f4bdccdba2aa60e380ca325204f3c037045cc813592e1495fbbaf56f20efed5f91113f8906068184da6172a6a17567a606cd0d42eb26f0c709eb3f152b5ef5ac59e60ddae155cc54cffc7a596ef5e2c2d1147571ebdde8b4d3c77a2135dfd41fcaf07f69d5dad10838c409df32d3767347714ff2f9fd07cf259930d9198d925c1a09f786736d906d1e5e8b8794daa319f3f2f26301f77ed90c1e2883d76c4bc600f1cb7203e78f53820f58bc10570a4a8cd553c8e4f273da17fc9691bb2a285ad44819a86d9fec0095bbf1f9e2ae998f6f723efabaa5725979ff1ab854b86a7c8d9147e9504424e87d9d10d8361fffcde56936c76b3e65fdab9eaa5a7d8f2ae5853ccf1aedd7220f4352f91b5a11dc9aa1421cb5bd76041bf0c076c693103eab73bf21fa763af1454eb52851122f0ad93e8531ab4139c7fab1899ddb4294410e9d527bdbd047b9b14914893e5a3f832bcc7bb78aebc4c00954e58687e0d5a0814570168e45086a68d4a058f3b0e1f434d5e575ae6e5c8162de37e51addc26d667c342cf8808323388399869996a2b261771ddd487206d38adeb987ba201313c837a2b6d77a9cbfa1c87b9726daa88db846eeeca87f61ed3896f871449668b2f44f79fcf0ff05a84e4637cbc6084a26fe7c97914895f9a094f168039e019e80081455899b5d9f3de080343f3ecbf9622a5a38507bab7b9627706046ab06c59595339540daad1f6c3bce7ba471eaae95ac4e17c2e1ac029821ab9b6cb83a65845847ea346a60047c13d59f4e64f63b7788377023a653e72fbc1abe045b393ba4d2b88911c3a29f094d595b9f51eaa612fea8928f6704049871f028a9ccc0035c34d26bd0c9361d5dd3b6fe836890fff9c48055e32a4769efbe2f3ba8232dbaeb5a695cbde506b1b79df210fc9a178c3b3b58fdf5089498b31d07b92ad6724999948d1d6c7b0d2c6d39aa11d88ff46901bcbc028b1439bdcbdab9ed582da9a393c6bf6b4f45302ccd43ed42da7b08d385624d0a6366c9575bacf6b2ee2dc47fd91ff9a7b08db2891e013104cb2c197ab45f4f2a11599ffd88fa35aa9e2dc11b21512db26b9a113181189b65d341c69cc6e6de45374bb789335a6b68598a640296f6948807d48a360dd78de40353609b76ad8dbbdabd7501098d039ddc1ab46355022ba543b5e18069a1efecf0e9c612d684ac8fdd4a1689b94f36a49e22f7f5230dd11bb03ac8cd7dc753d6e9ea6e2d18a9cd3b1894844a3e77c29cffe5e42bbe1eae4abc9f3c6050412708fc525fba3d92bc23c9ac844555b33ae0e550236e5b800768fb530a90539f785d21f90ca7eb5d18d8272666bf5e1a578aa1429a9d386b2679cb0ec5df4c99fd676c5b5345d41bfbab2490fb41dca8c7f0ab4f56eb83a58f71f2458afb26c7bff4c15d5e1eb9dcd2c1edac2ac3bb4ae7e4de79aec594af22f19b203506b5d8a6e636d561d533ed8ee14f5e0d1435fdad6eeb95a5f7f60b9cf1d469fc85414339e8f5c33c9dd906660b7c72b77e2f52552685510c7c455ee798d00065cec85fa444dd30d5c18a1f0518b71144cd4f91e41f0d95db57c704c931b79daf4bc3faa8dc7fdaa32c5a34097a1774263d973d95a7f3cd8e739b6f8a0ec2a5af25bcbe46c88cf595d003ac9d3f420dc9a01cd62df83b61f7061d63e0f743b187648e4803e3f2fccca6b878835620c5e05cc8554fe49a3fd17a4f31fb397ed12a1b6bd6fc78e1016912595947978bba7a33b917fc2a40dc036e1c90927872c4943cf624dffa8a435cf0bb90bfa878a529ad1b9011891bab670257232fdde5fb35a4b81a92a5947affb3792443729f2a82235d47ca81a7a52ca55c1a197105b5cbdb59d5dd12b02fa7171c33ea84746f2dc62a2b627cc99ec43172bea3fc4f39000b4a4c35b80c1ffd6e105e8ab6de8e1d638c75bf
+Shared Secret B: 33a00fbaf0576fe9cf2d88544c8a9a688bf437aacade4dfd60df31d8e54ae4a6
+Shared Secret A: 33a00fbaf0576fe9cf2d88544c8a9a688bf437aacade4dfd60df31d8e54ae4a6
+2621d674dc46b84ed5ec855dd027c36679561260211cc27e1c6978e0962adbb62e08da026087c36c684cd6b6bfd73733986f9d38e9064e96b02ff6e2ed418affa4db6d69094b9e09299379f9081c4bf3a163dc1b775890a6bf641ae4b08eda21521e46cc77f086251a0985ea3e96e091924d92fc914550c28acdf132c06d7d977d103f9026a0bb9afd5d1f16d86b0d9a66475ee82aaf4ad562cf086d73ad100832a26b41874dd65ec7478ee9ebe553c86d5e2263601ebd6174003f2545ab70d28628982cbaaa26bdf1cca1a8c3b3cf715bbe456a107514a2ee38e2515d79e1c579afa14032c6d3691f7ee5df438389b5854f11679eecbc29bf683f6d05dd310e6b6566ec7f12d307480d00b4528173b26ed5808138c1396f6b970b4d088ba4c4c254c7bb0cfaea8218180db2b648d5f27ac27d6429e112ff30f5080a32c09b0932c37f0be9ddee3aeb384a41209973f7142b12d3b37438cb4bf851d34b206aca3973f52293bb52b84910fc3fa2c409e54ecf62b2e2d6bad1990d5d158ef3d0a559c0ee175ccd0631da3f2e88635e404b8b44508ed98657638dccef1d4d61d6686ffa7e603280232e413faa3fb7d46710ee476567cdd06a53eb8956a3fd3aa1c190e9810860916525dad43d243916ae132859743337cde37256a77576b956fbcd5848556c6749e688ce1156c623eb0a746388ec59a6ac3fa04334fbb9b61895153ff980c8b63478cf873cb779796b9c71966ba46a17848b19269ee062a125315d764030c0608ceba4981f0a1e06d01467e4fabcdd8bcbb35a13dcc88008bfe815263618b46d2646726b6504183dde036c9d38d193b93272959629a5bd513fe008751d9b009890bc1bf6d78844471b7a4034ec747bee449bd62461de274e434c32131fc29c365a6b22530b047269920ae4cf016bf6ae9bc80e2cf0fe37000e818247875744807a9a56bae863468c3c96a4df35333cf4f2a22efd60aa1dd8798e17b01efdc2bee1531e1a5c2f0c1262cb464ed1defd4c2111764f103bd23a7c50065fce9943aec3a9a5abfefe1e2ac214b9254888fe2f6545d13c9e748042cd629cb13b73cc8d48329988b948f39450792bec2b87cf0151594df97f6d4645c6a7fb169107f5ff0d9218f2f4d4d3cdefa7cac1a3a28cf236407dfc285d60c1836f7c7a8d5da53accc8bfbc1b2f7d8658ffd72a19cc9a36228373e73550f7957cf8ae371318cf833c6c0b7d9c5cccbcf0c18dff6c74f083925f269c0a71305d44ffefad4cae307a12eaf567c8ab9623ca316adc9eff6b2f4dd8b8bcaaa98ecec3b648f3c41caf7e5091e0b50bf8d54b43efd1ac610b1b83a67aa445779f67f85dc4a88ca7299004e2e9612c6473fa3b3b04cca2531bec3c7c6328117c3406b76aa6d978069ca174157fc00a2d2880c13c7f714a47d6be21e249c19f901777b0305248557c233d9b86854224147998c875ae2d6509c91cd7ae6311e280a99c9a5d5d6c4a12054d0566d5164c3a6f31568876086fc933616cbc1beef3b68b53017c4bd5a133fd8a3a11afd09cc6b68fa9a851f0be69428e724a69f06d3b5b0aedef3cfc65e0711eb7abc4ca8aa12cb33d0b47ff5839cf5b3d97ca0037064b7b8a7609f9a695550b19c570f7c8610045d8a70694c6d517686b295508f202200b981f73288a0b959a9dd8f083efb274ab68e02bfcf675e123dfa2ab5edd8d827c6824dc4c8da5d1d4f8765e98080a99c29569f17e8bb10307d84cd57cb80b013b986377b41c089c8aee83abeac63b2a92246fb96561aa87010c821d44989be8d3bda53655a087ca7a70fca2c924941de320f58311ffb34b70d725d669db7cafe9d4e06c8ca4eaee83f98014f58f8e1b5edb34359695809e24fefab2effbc5e7ffcd89685d66f36ef1e0f7379983bfe7955edfadc65a9569f838fac34635c2a7c702459c905d471a6cb373a1e2d66955330e20ab7d99582aa65ee1215606e95812acb39503042623c92577858630a1993a23afe67c190bc354c6129618871b51380daee30a20eacb67d84a085093a582f10d744fed810996ca7d352b9cd1ea2532bdf5e32bee4d408fe7e9f523a642fcfa19e029caeef2a610a1e5e3cacba8ba88562c6eab6a999f1960bd026fc1916bf681e926821138834a2dbf687813e844a149141bca34bb715efa55f3783d02ecf1572d7c9a0f04fbbd39469cd9c0ffee45382a471d
+Pseudorandom shared Secret A: 9df0754c48978e7a9b0f3546030cf937b35ee81de6b7f5af771fae26df76d477
+0d8cb7e1f0e252a52a17842374e89efd14d2b39d672dd1a336028e28f4bf771b63a95c7cf988b4457fc9527bb631d18eafc16a2ca9f264b466c8ab6e8279bd90
+Public Key: 230524a4097ffe649ec8b91e0b8877eb0cc9a4c8adddc696b277cebdb5b4db6121e8f1748b01ab5428739de5a7f0e675ecb59e2adaa683e6b689670dc88a83d2aa6d47d6187c5a0a99324e2aa565cb127a35b756549338f6cb3f41525f32d4c271523df96823aa946633466cce0a2005a3cd4d6833b625bd600592ad707b43db320dfb1059fab9fdc6cd2ba5076107556c6bac4fe757008aad864245be659217ab1e52b9630f029e066c8454707d2487a009f20ad61679b527984960892a4797b7c6156b86650b6368eb1599ef676902752d2a7cade30983b10413bb34122690b192e1a2b7e137b2f4bbaee562d187623c556b9da7cde0a32f6a19755b03c091810b54a2822567bff2b6c7cd2a08d2a400e246cabdac6bd623913441a1f7c34c3e2763ef058ed505b577d61969e295dc290a90e6144d96b0282578b24012ccd7406123b60d080a6224a975247160e6761d930946396d57f7c0d5fccf05f35a8700b37a2908fe9b77f908cf9d84639284914a065ea186498fa5751bc36800c269f1ba13198a9fc1420603eb3b0d6744730a2d79637ee4a49924a32420c410c578ad65c4a54b223e3e683140b37f21da22ed021707a37ce8248736ecaea344bdc926189c469961e52228f24638141d638bc877b2beabd41f0326b133122848621afa9691e282bfafb3b5a11618faa54aeb3a9b5b17c242221fd47197112c66300a9bb6154e0fd32a7eec1b0d2c087736896e5c55bdd936be974efd193c65fcb9dac65c864b902b004083eab1b16c1b865144b04bbebcb99d80018d9851cb48d21e5903269ca6354be61bce90055fc38f80751655b7c207bb6a1e458a1586477a124d97961fbd0cc08f6bbea282cfe5aa9b72a23e3ae37322a798ff2952993a73042129e6398e51372a26888f37ac93333846aa6b17f3c75f4eea590709a0e2207f5aac8f41b911d0b67aa9a86aaca2955f13351b6aa3ba1534f02511c892bb3f642d5054a26c11c815702ddc4689d928bfaf43354c0cba73da0ce7381f43488483242edb343c585426117ab6d1babf5e75be74cb3c9b3771f3122613ab142dfca2b6f3563ce001246426a730a8ea338751b84305824b371b11e2b05b85da0b1c82553ab0896b305d9990c173e09651c62d0e8803c9c902d4140840881abf13aef5a41b78d5ce115ca71b72b4818011a213cca4c96689b30e018cc12cfc09b7a0a4392b50e5150f71435be3547b6a753c2148721839864ca63fb86c6e73309fc97679fd5878fa8b189b540da0d5408c6c15a0f950a5e83ea8d4267934691b52a5706b9ae279c852786e43c88a05e246adc308de2a93d7934165325c433b7022764f20a0551aac2fca5ba7036b8ba2a86d0261874f2003fc26384f2a00530738a5722c994a8feb81ba7fa60a4681674be4563eeb63eba1692c34951a61508ca94a7ff56cdf81c66c1ca14eb0ac24794a458167b9490ef056a94672877a85164df51ef6f119247099317173ae24be1aa093110c4db8dc24740838b8a894c64bb15e15b700bb973f11af693cbb0156070eebc06ab50af7470850cc0e8d5b746c04829e0c4a9107c06ef92fe0c15566785e78873794088a116123b1e1a4ebfa5bfee997479c0ac5fa5873039b290c6f3839189ba42a640b8326274cb4b8ad2af02b91b4c930d55ede83af09d546d9c7536fd07cd31034999a5fee55c72ec8bdb787b0069a6d4c67cf5f67b5a2388de4c1b7631126c00a0ed509818b8c96bb01521703c06ecbc8fa3858d7165ac50519332012829643164259bfd4a3a00c12c280c98a684815775b278878553296b4b33844257304a66781e7179d3b2c7a183e14f70c7e7157190a0cdb233ba78b6afb24af657712d8c32ae8978be2dc7c780cb45c747a96ccbefe9b628e612eab873a7410c41abb8597d553699c10b913955ce9cc702a8a06d5329ec48597b97031b5ad965a8de05c964e168183947ae9c76f74121840d15ca3a70ab05b00db0c061b48138a355380c14db0e850d9a00c9803cdeab1822ec9afd1035b15418e7a5b608437213566c5f205b920e05f3367b149ba38267a8ef26b395ae56c06e07b2177871b7b48ea3810bdbc7262e90472804698a2c27c105d24286bf8806d2e536c93b13345433069d744e2db5a984170445704a2274d098cb57d0e45452711cc97c7780da7b1ea5583c2a7c3b88b3e62ed758cc8e2b1
+Secret Key: c9774460661602a508836724acbc466a8070eef87f6c3a869eba1c4397c9d245b15714b05200bdfafcafe6133dbfd71be2f49fe51a29afa30a4feca61f6bb37722b561e530e8462ceaa55a42e4c731234f9d1c6bc0e6537ba1b381b20f25847a2fd31e2a28857156654ca56c7d607d7e3522094343509a339bf551e4987947b2217bc9c0b6627fa72897efc408d6830f759718e74192c651a244bb6c15186c3e4ba8ab4a741d59a144950f225741f56429ba245067f909621b4d668ba2d56350fa4940f38008a8a65ee75cabffda056b59c74779452f57377ac99157d747887452e46728be7c919dac4961a993b1f61b5f102a5410033338b92f5599cbf03ff89b49bed79ae98021569c266911cc9da98604996f862135439ba72a69b3a315777df348a8a79e50fa2ce2281d5082706064a2a8b476a6f9c96a9ac393cbb72d373cfa51c03feb01926c6efc9a685b689beb23cbbad33b3ef04ee3f50dc67246feb35d2f1c530eab3e61f7620cac6462a059329c1c3890011fd4cd51353138f7b7c07b78c90c9532ab1d13c2408ac9b397619c4f7a8cda936015371313f146a00bca2de24986139649480eb584c1c8f24589baa0630a8fce4a8261a057d26c7880a4193cda30e2824a64963f62253525078418c83bfa270fe8b9819a206d25a3ce297c73bd81563421aaf6613a89f1a2fe876c26c153e8600d1b3a54b846ad1bca7961354b1f618c39796a64b72cb76b71cd1c8f98b35968d90a0e0302efa6a4cf38b2e3d41895e087ff174d28dac49b4a7f5b4188be7ac03a315cc5cbb16773a8983296f9fa5b2115ab66a67ce9b76aa519476959c013a8173796ab29dcc90bcc7748c061fb229767e2b94376601584a930db22e7d0c7b8191e6300b92384680983359bc885be7aaf1b215d8e6a331e320398c558817a6ac39a5cf6d436fa1c2b848143693aa68b22a55871b11ef32a4d45c5c453bd74043009c36a61aa157fe24288c1105621743cca1839b9cce1a39c5086874ee4ba5a7524857a75767086e6dc8011461bf4a77889c58b22cb32a0453b931954394bc8f8796a4ee5abdaf51e7d09521dfb91391452b9db9caf95868a1451df5226bd971a6abb5e8fa5b5e6378eb474c8abb9a5a44b197213336e4356c9096892cc9ecb03578e8a2a1925cad5ecb5e9fb696856847d25694c82badb81781afb1f495c67d321091e81170c0947d9a0c41a4830bf2132a4b2389f5c2b03d3343d68c8dc436e95c227b6cb554f6c2a7d14550c251d9083b07b25c6cd827f9ec7417f58478807609ef64bc64289fe79718385a000d4b18c3640cfa880cd8b92bbdb28f8a0ae1a0c8ab019b410bc8e6953a12e9754f3773a10118803f47025221a6854afc098035e35b8dd9b6136c6406750ae532078098c7a09b196ec678b5825aacf4969067bcb17722580a73eee836876516fc7c0320df30128c0ab5de4546e28190f4c99467171e1067f4d87ce35c58ebf8934902949b32b4ea6a533fd20248de819c310433a07bb7c3788f326ccd05c1491380380d2214f149a148262e1f672e1e44b6f64ca4a83b10edc1690685f3be841d574cb7a9569f3eb23efe84a467b51e2804a31f0bb51ec031025482ba45c0b1a0ce29674aef34b31b69f79c67882807285e559c5f26235c62c27aa215402ad0ba0469d97888b9849ff776b57d5c89830bbe84c5c1dd961b322696fb0384f0126a0e27a59730dbcb765360927836a9416587a570794f02bbf193267426044be333c713a86fe9b19bcd15b53f362e5f29e247a1bbc64a6e8133f6e5c68df6cb2de692e9a96be2a7a1cf7352483139bc9196acc0436cd8b644550cbb23730c9b8ab68bac76f383f66684614e08280751791d96e48f330c0a13717a0be2ba1c4b2bb9001943a5062a9f01a0b36cbae1709c09b8153a23b81ab299b1f7050fd9846812c56464b4b57b603b98013796097a5fb392e007dc36c9514a42d86fc80ac2bc956497bbef45119761b00f4403a369540b1cdedc780a1053100a11dc57b2cafc98146a5a24df390c96c431d5a8a9da5c47fccc853164e00f72c440a2c54857f9134b13cb861f6c4b9f44b2558752cf6ab6acd6732dc34aa5c2375834bb870eb23263383a10852553a445913a72540c0f9e529c1d6cc7ad45613505e230524a4097ffe649ec8b91e0b8877eb0cc9a4c8adddc696b277cebdb5b4db6121e8f1748b01ab5428739de5a7f0e675ecb59e2adaa683e6b689670dc88a83d2aa6d47d6187c5a0a99324e2aa565cb127a35b756549338f6cb3f41525f32d4c271523df96823aa946633466cce0a2005a3cd4d6833b625bd600592ad707b43db320dfb1059fab9fdc6cd2ba5076107556c6bac4fe757008aad864245be659217ab1e52b9630f029e066c8454707d2487a009f20ad61679b527984960892a4797b7c6156b86650b6368eb1599ef676902752d2a7cade30983b10413bb34122690b192e1a2b7e137b2f4bbaee562d187623c556b9da7cde0a32f6a19755b03c091810b54a2822567bff2b6c7cd2a08d2a400e246cabdac6bd623913441a1f7c34c3e2763ef058ed505b577d61969e295dc290a90e6144d96b0282578b24012ccd7406123b60d080a6224a975247160e6761d930946396d57f7c0d5fccf05f35a8700b37a2908fe9b77f908cf9d84639284914a065ea186498fa5751bc36800c269f1ba13198a9fc1420603eb3b0d6744730a2d79637ee4a49924a32420c410c578ad65c4a54b223e3e683140b37f21da22ed021707a37ce8248736ecaea344bdc926189c469961e52228f24638141d638bc877b2beabd41f0326b133122848621afa9691e282bfafb3b5a11618faa54aeb3a9b5b17c242221fd47197112c66300a9bb6154e0fd32a7eec1b0d2c087736896e5c55bdd936be974efd193c65fcb9dac65c864b902b004083eab1b16c1b865144b04bbebcb99d80018d9851cb48d21e5903269ca6354be61bce90055fc38f80751655b7c207bb6a1e458a1586477a124d97961fbd0cc08f6bbea282cfe5aa9b72a23e3ae37322a798ff2952993a73042129e6398e51372a26888f37ac93333846aa6b17f3c75f4eea590709a0e2207f5aac8f41b911d0b67aa9a86aaca2955f13351b6aa3ba1534f02511c892bb3f642d5054a26c11c815702ddc4689d928bfaf43354c0cba73da0ce7381f43488483242edb343c585426117ab6d1babf5e75be74cb3c9b3771f3122613ab142dfca2b6f3563ce001246426a730a8ea338751b84305824b371b11e2b05b85da0b1c82553ab0896b305d9990c173e09651c62d0e8803c9c902d4140840881abf13aef5a41b78d5ce115ca71b72b4818011a213cca4c96689b30e018cc12cfc09b7a0a4392b50e5150f71435be3547b6a753c2148721839864ca63fb86c6e73309fc97679fd5878fa8b189b540da0d5408c6c15a0f950a5e83ea8d4267934691b52a5706b9ae279c852786e43c88a05e246adc308de2a93d7934165325c433b7022764f20a0551aac2fca5ba7036b8ba2a86d0261874f2003fc26384f2a00530738a5722c994a8feb81ba7fa60a4681674be4563eeb63eba1692c34951a61508ca94a7ff56cdf81c66c1ca14eb0ac24794a458167b9490ef056a94672877a85164df51ef6f119247099317173ae24be1aa093110c4db8dc24740838b8a894c64bb15e15b700bb973f11af693cbb0156070eebc06ab50af7470850cc0e8d5b746c04829e0c4a9107c06ef92fe0c15566785e78873794088a116123b1e1a4ebfa5bfee997479c0ac5fa5873039b290c6f3839189ba42a640b8326274cb4b8ad2af02b91b4c930d55ede83af09d546d9c7536fd07cd31034999a5fee55c72ec8bdb787b0069a6d4c67cf5f67b5a2388de4c1b7631126c00a0ed509818b8c96bb01521703c06ecbc8fa3858d7165ac50519332012829643164259bfd4a3a00c12c280c98a684815775b278878553296b4b33844257304a66781e7179d3b2c7a183e14f70c7e7157190a0cdb233ba78b6afb24af657712d8c32ae8978be2dc7c780cb45c747a96ccbefe9b628e612eab873a7410c41abb8597d553699c10b913955ce9cc702a8a06d5329ec48597b97031b5ad965a8de05c964e168183947ae9c76f74121840d15ca3a70ab05b00db0c061b48138a355380c14db0e850d9a00c9803cdeab1822ec9afd1035b15418e7a5b608437213566c5f205b920e05f3367b149ba38267a8ef26b395ae56c06e07b2177871b7b48ea3810bdbc7262e90472804698a2c27c105d24286bf8806d2e536c93b13345433069d744e2db5a984170445704a2274d098cb57d0e45452711cc97c7780da7b1ea5583c2a7c3b88b3e62ed758cc8e2b150b118b1c25c62e96383a044f985bb7615ad84d73ec5a345e2fa3e55762f447863a95c7cf988b4457fc9527bb631d18eafc16a2ca9f264b466c8ab6e8279bd90
+6842037f8a2707483041739b2451c058ddd1091c4b6e971f40370ed784a5d966
+Ciphertext: 66bc49d94f761fa2836fe3e148fcb4eac08e1badad7862d4872f5dc9f96db70d038c52eaa661ab62f63cfddce53c86b541185e8dab4c8350851af7a8aaa67dea7b645e8ed3d9d93f366d18334b881cb932d0223712db30009d13e27f175cc0862a7b00148abd9a1c3c44169dc99e863da46e808364338f29f96644714514d0952a5de8f89e5df973c852170ea777cefb87dad88892a360f20f2df2581d545932e082d6fe0c6a24befed807bc6d01c224594f3c36a84099f176e220aefcf7d106799de9455f65ebf316ce57299ec2051e49ece94ba1f486acea290a72fcf68fdcaf23e739a264858c09628f0a29e554ea4307ece954a0c1a27f841c5b2ffe5cae4cde23aa02ea4077beee544630b7d055d99de4300498a9b53ec91842d5756909ab6f6035bec27bc766d2558b164e34a9863ac0af5d9bf3ff6fe437d42bae383117ea17308ac485036fdacff7a398c47255d758202e474be0e1b78a9cfd3f0250ad644990a6ebe1619cc0bcfd85e643b1bc823f8079bfeda1e884d447bb382fd9e25ba64fed078eb01022047c87caca3d29487d2dd88284d03ad05732716df21c677935b7d55dcec1a238884584d496da9fcdef50687900b4023b1e9e58fd11f6929e20cbabc79aed237ab7af57b8b0d289465ff04e273e5418088dba652e8e1a384dd89e4b5ef838ca218341724f6f954f0ed0763866755e5b00fdc3aeb28e8a51bdb03e08dc160c9e148b5f1461531f7d501c7af2875370a2e82ac6ec27cfdd0e5bb00231cf65af5bc9329dd128eb201f84dc47b5825a14185522630dcfe91ac54514efed40feefa7c7a0c21b6e832f0638be140025448e58dea682d44ccfeacd439c53ad6c63a0037a45df1ee56a4bdb52e30b2f6cacf626c41f10113cc6cb736cb935ce6f1ea235f1271f817b31c42ae03623232be32c45e8aed8924c263dc3309deb11ce18d8db5a4092646ca2f9a78e827fa759d95cad07f2ec69fd0b96eb1e53dca08f0dfa1b7485a52226a3f9f91cccba4dffe250c5da38d434ed5f1be9d4fa609845ecea8bf193f6032a25ba31185afe8808a2211accd3477f949897e5a4213e181608fc93a64ac0c85be608c8d554a474b217a306ed7e9c29124ef8410736c01ab0194eb6d906069f749d4968b2fb66ff89bad67c9455da60781d67f0af57155f3bb743c81ef3c9323c216f0d8de4935e4f2f086f47d5136444a863f4d78b4b8c837d744ba26a2c7d0ad61d6f5c8d856504c9402c447588a312c48ce8a1044bc50b1e6df58a7547e7f314ebbe5fd6092e677fa322b65c3dbe5e2132f9ff31fc332eaa842a5fe88b1aaa1417cb979e35ac31af508bb8d7229ad6ebdd944bd103b6d11408768e6551a264294be55374b10c852a477c2280152fcac313f4c00665dd6f604bf1f64aa8a3765d06cb4aa3581c161f134af080f758e64509f446db9847b467dc625cc8a3b31413b163b0269c4e3106f1c20095fe3f69a3989562448814a199edea0282150bfc2e2de9bd9bd9757a695960c784a28c23d9490113e780fd8462853af509e4379a5e4048aebc39af0a5e8a1c78e31ef8ba9aa9237fb3d23f076430c1f6801b33fdb006e296925a700a0c083688e24c844f6e3ea985d353f8968731c8fe38ea9c10035ae70770ca6625c25fc3d14e6fa429913de410ad395895978cf641094459b9e434dff626739c2edd61603c49fe4efb66f6c5ea30e3c249f0256f2e74818b0037338108276796b870ccd05073e87bfaed97ea6f1110562e29903e766ad16b23066bf9ebed48e60b766b9dc739890a53e047e94e37018f7c75e2611cbdb0261f987b608fbfe7d7b1ee25ba92473f9371bb0b0c5556b7144d8cda6a6a6e5f5c6f0595e8ab292faba69c3e173e43b5939003c635c79f702deac8cc4330f376098d3bf570d7e1d57699787f7ceb734953a92c3a9427b28f8bd59b3630949920f915754f09291e79c7c4537cd3aa1292157593bd6dea881d62f2cd90a5cfb6faa55f5f9317b4f042ec39a6f22a5eab813e5e9aa80f655fdd31c0bf2da5ea1127d2833164813b86e37f0f6b449436ea7b15bed37e65ef39ce6a23340bb87f7a664fafed895c225f0e9a8a6808133490c541a6eaaecc31741ea240ab03d28fb4cfe38d4534c610d96481d9d76f8b549641c16d8a6fa215881124c91b88da5ea8d12e431f6095de8ef539b9111f5805c712bb7f266c
+Shared Secret B: 22eab926c7b42ad8f57efc94c512bd1b35dc879629ab22e9010ea2cd60ae1c31
+Shared Secret A: 22eab926c7b42ad8f57efc94c512bd1b35dc879629ab22e9010ea2cd60ae1c31
+acd86d95d878ac8e1d1772097bdc5353812422855a79bd8b28fd7ecbc4f3064b620719f6b1fdf5c32ccdc7ab70a199723750954850578e08f19dc8976a61d683efcacf5b356c27cb16bf32951af20cb6aebbdec2bc8969ee2019431ebd476016847e1ed792a884b74dd0ea486da1ce81371ebd1374842b7caf281a74904eaa6c7b87365eed30c834c70526deeb7f6c2331c6426c2d572f51e3ba824bddf9eebd7d869a4a20325eff715a2fcedd907b8a4fb55c869399aaed052dbf2b719ac8d006e9dc5b070e814c753c1c1c128fe0671415f55d238dac9e368560975ce1e50eed2d1744f4a4e98ddb6b879fad00af411066d388efa8b1bc0fde51a6ededd60b62b8d145b7d80d8258c741a8e872219d667e0fc2ff9807051c67f527b344898902b3fe8eb18f7d2939f13e171f403aeed9e874a475dc532125d4ab0b1140e9ffa849a6bec70a617fc4f9f8a58c28b51f98ad13bc70fdc5d0e688ac14bad096521b42abaecc4a278d79ebb4b8479700af7459c33a0275300248d29016f8b26f616fa0c07c94168fd5a660cf924bbca2dd4193df381425e0f64a735d9e990b5478bdb64ecda3f04a6479bc3f7421db2b91d5bbf59e18380a0fa0a7de8e210c34ea7dea0eb169d4dcc08ea195c69e1039140f3d7b56f51827a756800f2ef295412f56e5025516eb837564b949988706c1886c367352f5e55c5479e503a87d0b06e1b2eadbe5431bbf04866a80a394a799be281cb1cbc4db637118f68a502fed96bb940d202b73ebac8c77e7d78a2fc16a39d73615106dd8966688efde4f72be62d5acbdd19fc2f571b8452124254eca714281b44279db63568cabec1fbd0640766df81f92c64941c696522ecb2a7012ea66220c081a31ed6aa457209bf365f5b8ed82e80a4cea2d3889dfab6706a04d7e53fac0fd96bcf4b9f932198bd0da40afead526ab8c26afa5581648c0a8a8073b2fc66961669f31388e7521cc41248b66c1d673d4428cae7534f094d60b4c5b492da4966ceccabd2dc71a9a4f83609f78480a62c07f8f5ccc18f270892c55e0245564ff35a13546adf9ac0a42de3545e9b428ec8a91f7bced3f4e3310d49f12918dbe4abe1e8d203cbfda62fa49b61598ea0933cab3f8bfc2a654bf319c01ee91a3fb00d7d5627a73df7f8f60e1b00270f4bbe75634b32ad2ed369e61fd59624f27a8b16de8dc1042df9aaeac2da18070468b6a034127b64220e46a555d7b44cd62127d4a6d6aed6ffa4795f69eb911a8f477546bb4316ecba9915b24ba63a1cdaeab1ae7ae416a2c62ba197686264a9f046c97c997dcd7402bda07d0337e87a9892d15041273504ba6b23fa98092a7baee606df302f38d9abb6e585fefa390d9332563ba5a8680b4137612bd333e68f7e381478d92f86549d300e947d2f69aef7fae8a1f3fec93cf6eddb982dd1aff22d1fa1981fe15054d2b455be6814118002b12cd7672ab7977f2963c3744372ad17c69298e9d9aa298b1bf848e0518b04dba7bf503bc9c5e0c0438adc9e9ff72eb1ce965b19f3173c474bc53394645a922a876c44152a8188607d02cbe1931fde957bc6b3d80a939feb94afa6acae9fe967ede2fe3460c9fafa148049a56e741a2fb311030bb7ec8e8f77d75c9dfa7098cf538b69de9642c42388e6d12c5fc7b8048876fc49b1709eb227390948b3acc7180b051c42f80dda69d82de880de260b9468ff85f2e9534d5344ada5512639dedebd8c330eda4992875ed5f37ca20a9fb4fb9bb898255a5f6074915a451b2f5197cccc8e6a9346a03c35d4275a3cdb38f673e95f561f2decc4a935879ce809c34d98e52aa7a812af7514bd5d4b526019691158f89b45cbda29ddfe55aeb91a8def415a471d0cc475e1abd0b548bab09c89e098aee891f508b45f05a5cf144d9822b400ccdd89079ce28c0312b5585339075b6c244f126a81cd487ec81da2ba6a93016aa2ee76dad288037962beef1e86500c98c5f8de77eeaf6b96176234727a3e63103145a8a54c5d322dcc95d600ef7a1563c695222b26f92e056e628c1e5c2ff36d78a26d22fb39bc7d2393cdec6c2ce3837b0abbd103d406f90f9e67489a352843ac5cf8076551c04c4917e1ac54380f2444b90d188e431c1878af2fc7dbd632009807b228ad1b78cc262403ce8db118c895621d09e8e5f61287f59048dada68fd7182df60904ae47b71e1da7dbc18e
+Pseudorandom shared Secret A: 33113a6622bb9fd7493284b4c502d7f87bde7e32628c91bf73316035e8e7b323
+56b414d850585e9fa1cac8b7360f20dda96c8fe32a6fb416b4aeb50a6261b2a9f69783397f75638e5abeed1ae2b8a2c2e6597024161b216607c6070fdfab6c73
+Public Key: 36052f3957c69252bccc10cbdb05693562074727c4c3f436ceb455805b90e81c23fa8687e2d1154ff1113f474bd9447c287964a80394fb2257efa734bdc90dbf9c19f4c03d72c741f4ca7f7ed581b52a70df40683e11041ba750b0072b310b158f092a1047642a6ac6a1243f229977930ab8feec9d1b7c9a5e4a42910aade613b92f563e58299f1c524f3912a93b049a4639c712472082736841018099fc1e3fd8ba38fb8c6333a3468a5a1828a64ac4a0f661574ddcc199356d7e8a8f4585bbbcfb682228105ed5449876b8e9e79858a0497bb796848380ef0154c5133e8b44547ac98ca513919b8ac7bf12550b34c7da537cd7c0aea398248fc44a3be8c7ef9594e7078253f095a6743937d223fb70b325bba2459267e5f95f700a85d4c956bf31bd04765b2b1457752c549f5701ac84cfbe76b6fd6c6d629cbe0ffa702da62017d724e313c051fc8eb25b46e40b2311f8c569b1880d446a3729b8e10251631691b7f46288c58ea16789f5fb0cfadb85e02b6f5217205d43856fb0542f151ed37c3ceeb9c5cea678ad888daf84a87ef51a5e736232dab42e69b24cba5db51754988361cd8b89e80a4371a42e470b556450423df6cd7c022335b3b327ea9d2aa4079da65319b4cfb8a23c5b68b966c53a4afc0195530043732d64530fa22a0f592c672621b1c0c60181c0085739371f6632765184f21c8286822defb706ffe9597083b08d242d68d47f0208b4a86461aa015e07e39511f01e89809e385b9f16b673ae75682a9b2e1d20201874af36c608b69c5b44854dd0673a19c4837264a3332c2e2ff27696c1b15b78152cfa08cbcc624ef25d06787a0fa43211e5715f566c4f5a14aeb97492c92b5ec2a489d91486011b4f31224f4b15b125ae5ab50300466fee955d7840b13be90681ec0c92667f6a9845f66953f659ca7b2642c68120f8f0238a20968ce9b87a284254590a01ab9598ea27be4261941a1c354631a234ad9b76b4ade20b86dc394089bd02a1c331a6a9751b9987b5c0469750403c5a2ff953e105603ac29967b6a0fe77789f0aa13fc8759544105c0b370325596d7ca2ef9c3cbaa34c41c799c5e399eb449c47b7aced16b1e3eb94f8a6761aa55795214aa6e9b1ee8b677d8a7ab7b608b0b460de64121c535652c15bbcb6ca09ba435ed2477307747e40094c2087abf97a6a638bd4a77d4625a121f935cea14e8790bf3eb4bb021158c87b8a83216b4fba1b57e37776432bff3857df8a8380449b19e34d3374a99808191cc8151140935f10b365db380419794dcb76ea6b8eeba621eba25979a9b9f3e5040c417015c334df558fb64322d4c6cfba767a56e7bdbcfbcca8cc230dea3e5d0b09ae808e73571eaf227a4ed5c28e0a73d5f29a6fdc7fe1aa5751528be4b824db5c960429971fd202be817acb73cb0f08979c109f3a214eb492b0efd532cc68c62d283adf3238de229d14b982911922e97b767efa25d564265f988506d72cb1e6a1c0768a30166e2d74041769b4d6988ef66829cb3774483c9d6c716a78f156d330ae83244b38f92b95cc108642678d6919b05b3fdfcc0bb27c3572122a2684a11bbc0d1dbb76ef34c00b70c0bd103e8506bb39b80f453b096f0019579a1401c3c6889c286f168358479c15119d9d291fb8580409c10882fc755b886014c10d2a09985535be2b20422c7963f2e23ceb7388ef8735f033a596133ead29352da317ee2196fa4c40886b182ec4bd475353a4d5b497f3502182b285534a9dababd1d88add51b4bd40523618b0655988cfe813a1532be36b31b5b36efcb5b1ec3c2f2b567b25da2d1ce99d02bb1872f2cf47f7bd103057c8217ae199a1e62186a9f53cd9c84235f19277fc40a9755fd476a15842669ab636ca096f52f4c0b9098ab0c4665ce0307aa21bb04bbc26f3cd999352ce7732cae90a939c0043b21596e72f3d54849c078f4b9b46668b356cd664537c59d947330443b55a94386356ab1a6b6844570d03cb71c3c37fea36a0e2e85f165b7d45740b70523d3f12ade8b9005192a56f2373b4f42717c653bd8309ad454f934c5e8e3522a82490a8a8c86394c3ce5459e0e83d24f080ef8254e39c07acfa3fc5476f19789af1e40541f2b5bf978abe2a7d60e37881b90a9e969e121acc83b003d2da610c5a384418cfda35134388cddeebe9d54af2e5bc1f1ddf70fe0781c37b682e89a43811
+Secret Key: c9288ec93484efb6145017c65d851cdfc6a8d8c3749c1858132b613a33a9ad5988345583d67b10dd0a68019724b76c4e8d63a41b6860ea4c7efca65f69a813d07243b7cacbc0ea7f56530fb6b1c2d379b074ea6464239c0c1a3d9e1270b24142a3ec0155b194a1333e28bb59c76630c676c3d7b8211877a1b24ab7e79116f9c9cae8204d2a129aa9d18767fc069b932f21b6968de7cec05072a5dc7df5880b9e860480b045602b903bf6453e22389a2a6dc8193cb0ea69f2d0315bcb3d4dc25514343f29ca6369a27a994a8015a79dd4c78259909f3bf3576f35afedd40ccddb794937c7533b8d09c383dc2b0226a0c7848c4eee906a669c9e93ec200e303093fab14891ce2024794cbab621a91b7c7924af691ac782b8b9569252640ecda1ae1bd1564dab47078cc39ce3cde645205fa7a64aa1b9118313d7714ea3f9a2cd918074f27e3b19cf810a60d682521f7147aca71ba4624de5215d45d424b8678a2339008cb71711e72452879133643ae602078ea065d7872e8071b1c9b61a44825200cd0f8039cd4f40a92548ae4138232b4593bc010a6d9c3907926ed46770aa385c0c5875b8e13ee4a66a2be6c4184146c1c61b465409e5aa17f7abc052124ef0aa9d358b93b211cb4dcc36d06908fab4a2e198be2453bcb483915a0a3798b4cb59f6230acaafd75528115a566a92cc370417b3818a2899aecef91786da87d255560e79574d7b4866c9287179ae09362c737691aac486eea323bd99687fa33b356086d00485981733d6c091e82acc31f9ce9f141d2ce912a1d71488e3570af641f22365ebfa2c60170ee3087dd47b9a4820baae74133405132d752dd364c969a134397ca30af9bc2263ca06225fbef05434b87be5b071a7b31003322c787162dedba12fc28b6980c9c6e2889958ad3ed47d7d5b82c2355a6ee047b48c7d78b3aca9975272f4baacd8107440c4da58c0147213e6eb7e37d27b796925b2a332678c1b3010394948b4a22ca0b75156b01a244663451343443b2c756b572891830473985d4b4c63d15641d74176ac9ccf09b00f1d896d48033bbe477f69287917fa844c093bc9e81c3eb624cbc827031471442795ef5b1cd25b92f6c109367c2483e8979f77a9cf6759bea01337760a10fa1c7c304162457ca842baca5b30c4685c5c7bcf84798924d545daeac6893badb0fb953f519886bc818c75c36b093223040e1536a6eb2a91d9612bdf906db84caaae5c350db221d6725848ab55ecf53617fb3aff100190593039428c1bf49412b46420eca6046b61bda183e5053871f31c71409960cbce7a0221d0052152b90f3801072222c270db4bb277b945188fa8d96356054f8d8209f9105a4d5105097974efe60a0b09831948982b7164e36a5b03f17b8191372ff94032421ac0a47e9b22b2a7686f4f67abe2d107647911c0fcafd8135a07e6180da74dc0c4018967a7216424707a72ade8ad007183e463709092b17fb0cc40b660e2ca943c1b8ed9e45e052c4720480e2fd2adfd3b6445a6505f555edaa508e69478c8a0988c883fa35ba3d693ace5448c4c05a777b71e4ac57d37bb1a11b544a466505c42b902e84eb5e17a62924c851016bc25073a141aa3984190f2c6a33b10cc49123d054a6cbc0454eb5b66c005a833a686657eba2a66a5213351e0c39a426f48b4a04eab1087d6baa04710392b1daf429791d975e5d98b09f7ca37c0b25c851b3093b05619289235430089200c01b79aa9a1bc9322f63ca2a3394417acbb34d0a8417b0c673491de5069b7000d687b8bfcb1977933af346814b4e7251d04c5ab686bd69c1736ec05aed0cfa8c53afa568f0c8129e0d84b5c905e1754313ba476d2e493c0c2415b197a6346021ea5c621243600459cc28c6ea0ea23d04a87f17bc222bcce5b8082c67c671dcb300ab89673b09a1390761db2510f08d0aee88ffc617095075ce3e818ab157eff030381350beaa2a50214af8db10d4ce2cf56da9ca6985482e69c4dbc018fc5460ef53d0a66c9a8c331dd309f4ad42677884acd8788d6e40a9ea796160a2a5a9599b2e22d79516dfdecb323f6ae9a726e4ee108994474add4cb91684ee54256c82210bcc80f9cc9ae32536512c708fcf60b435525f1e92957e72112f167ec545c8a1151c4d91a1978b706aa0836052f3957c69252bccc10cbdb05693562074727c4c3f436ceb455805b90e81c23fa8687e2d1154ff1113f474bd9447c287964a80394fb2257efa734bdc90dbf9c19f4c03d72c741f4ca7f7ed581b52a70df40683e11041ba750b0072b310b158f092a1047642a6ac6a1243f229977930ab8feec9d1b7c9a5e4a42910aade613b92f563e58299f1c524f3912a93b049a4639c712472082736841018099fc1e3fd8ba38fb8c6333a3468a5a1828a64ac4a0f661574ddcc199356d7e8a8f4585bbbcfb682228105ed5449876b8e9e79858a0497bb796848380ef0154c5133e8b44547ac98ca513919b8ac7bf12550b34c7da537cd7c0aea398248fc44a3be8c7ef9594e7078253f095a6743937d223fb70b325bba2459267e5f95f700a85d4c956bf31bd04765b2b1457752c549f5701ac84cfbe76b6fd6c6d629cbe0ffa702da62017d724e313c051fc8eb25b46e40b2311f8c569b1880d446a3729b8e10251631691b7f46288c58ea16789f5fb0cfadb85e02b6f5217205d43856fb0542f151ed37c3ceeb9c5cea678ad888daf84a87ef51a5e736232dab42e69b24cba5db51754988361cd8b89e80a4371a42e470b556450423df6cd7c022335b3b327ea9d2aa4079da65319b4cfb8a23c5b68b966c53a4afc0195530043732d64530fa22a0f592c672621b1c0c60181c0085739371f6632765184f21c8286822defb706ffe9597083b08d242d68d47f0208b4a86461aa015e07e39511f01e89809e385b9f16b673ae75682a9b2e1d20201874af36c608b69c5b44854dd0673a19c4837264a3332c2e2ff27696c1b15b78152cfa08cbcc624ef25d06787a0fa43211e5715f566c4f5a14aeb97492c92b5ec2a489d91486011b4f31224f4b15b125ae5ab50300466fee955d7840b13be90681ec0c92667f6a9845f66953f659ca7b2642c68120f8f0238a20968ce9b87a284254590a01ab9598ea27be4261941a1c354631a234ad9b76b4ade20b86dc394089bd02a1c331a6a9751b9987b5c0469750403c5a2ff953e105603ac29967b6a0fe77789f0aa13fc8759544105c0b370325596d7ca2ef9c3cbaa34c41c799c5e399eb449c47b7aced16b1e3eb94f8a6761aa55795214aa6e9b1ee8b677d8a7ab7b608b0b460de64121c535652c15bbcb6ca09ba435ed2477307747e40094c2087abf97a6a638bd4a77d4625a121f935cea14e8790bf3eb4bb021158c87b8a83216b4fba1b57e37776432bff3857df8a8380449b19e34d3374a99808191cc8151140935f10b365db380419794dcb76ea6b8eeba621eba25979a9b9f3e5040c417015c334df558fb64322d4c6cfba767a56e7bdbcfbcca8cc230dea3e5d0b09ae808e73571eaf227a4ed5c28e0a73d5f29a6fdc7fe1aa5751528be4b824db5c960429971fd202be817acb73cb0f08979c109f3a214eb492b0efd532cc68c62d283adf3238de229d14b982911922e97b767efa25d564265f988506d72cb1e6a1c0768a30166e2d74041769b4d6988ef66829cb3774483c9d6c716a78f156d330ae83244b38f92b95cc108642678d6919b05b3fdfcc0bb27c3572122a2684a11bbc0d1dbb76ef34c00b70c0bd103e8506bb39b80f453b096f0019579a1401c3c6889c286f168358479c15119d9d291fb8580409c10882fc755b886014c10d2a09985535be2b20422c7963f2e23ceb7388ef8735f033a596133ead29352da317ee2196fa4c40886b182ec4bd475353a4d5b497f3502182b285534a9dababd1d88add51b4bd40523618b0655988cfe813a1532be36b31b5b36efcb5b1ec3c2f2b567b25da2d1ce99d02bb1872f2cf47f7bd103057c8217ae199a1e62186a9f53cd9c84235f19277fc40a9755fd476a15842669ab636ca096f52f4c0b9098ab0c4665ce0307aa21bb04bbc26f3cd999352ce7732cae90a939c0043b21596e72f3d54849c078f4b9b46668b356cd664537c59d947330443b55a94386356ab1a6b6844570d03cb71c3c37fea36a0e2e85f165b7d45740b70523d3f12ade8b9005192a56f2373b4f42717c653bd8309ad454f934c5e8e3522a82490a8a8c86394c3ce5459e0e83d24f080ef8254e39c07acfa3fc5476f19789af1e40541f2b5bf978abe2a7d60e37881b90a9e969e121acc83b003d2da610c5a384418cfda35134388cddeebe9d54af2e5bc1f1ddf70fe0781c37b682e89a438116e4ba09a61da4017d09f2e39edff6aa2f782341d3c4b5227e832c4a0a65fb5e4f69783397f75638e5abeed1ae2b8a2c2e6597024161b216607c6070fdfab6c73
+649e286ea8c9a6f13e47af0fd32c5fc4b4a61eb4ec9d35b40511fb369f475ddc
+Ciphertext: 665e74261f117cb52e23ed79ed003d0949db7ce4230e98e47630988c08879f896f71d9a6ee1e42f35aba19714a187a8813859f85011963a8ef1cbf7a7c29e5ba7d298559e056bb099303edc4de26aebb89dedeb72be0d75b5127acf6d18cbbf36b108b2a721be0dac1e68224e3e587254ee72f0d60cc3f22e439dacb11829a4ccdf4ac379ef774adb115f52423483de3f65f466ac7cadb68839aaf0842c8276e49fc30de7dcff2d78415322e92cb1ddf9634f00e42d9b3dd896857cfcae7ab3566f6cc98d3df6d8dd242f9e166e758914b6827f100511b957050f7e6bc2c129b316318a88e5339d405b7d4c47240633b53e26ba672bd4ee5d3ac5bc08698f1ba498218de6a3c20d41adb2ce54e4b2631864009fef5b2bfc8b77ab1f5431c5fd0ba161d6c06b6ab30f18a1ad5edb33b5c64c2734f61fe6c70172193c303d68280ae408ff914311118f50710caa7bc164bde82f28f4169b647156198fa6773eb5fe50c45c2ab7537173d88614c16b8b1a9f06f31b7489c627bd1c5efbf9bad27cffd663ec3a4fe8c5d5bcff28a7aeb5a5afe3cb995b32634027c177169297b5ad0c5ac441a9f861f33d8a080277030524ca983bde61dd79522c785e6ca2c3b0804417f6c741acf10d14a9fbf6370dc3be5bfafee509882e1026c8fe2d44e9f9c4a53d3e03f3363fe67a7c5b6033179a6aac8407e1582dc8a74726644719e7f33ce3a7e1c9cf82a34ac9443e15ca482ddf52df428b8668a221386fd226ac7ed9c95232831bbdfd2c3ce25043b98874e357d5470b3212c9dd76104a74bab6d8a57de49cbf8c33ef53396186d44813aec3ba75368cf7a5b9dd087d3720140b353d1cfa0cdb3617598ef879439afd7e9a49fbe5c13b0185e9b0daf0d259e9098965b931eae22def92582ac627b27f6155c99ddc976cf028f63822194c26aa01a4b7a65c742f7ad9ed8ff3f0225d43d9a2ea94e0053b6560cfcd659c1327e2e5b3be427fc488339dc2dd99b04fe3723938eed3b6e794495f75d265e789ead164b8fbbee0f8efbb6b4484f9ba543de70e5a639e02d0f3f95c6798953c3e7e99f0031b577aea6c5b66834fec07bb03779ce487564a00ad22a011265e3ba3908899b413088915b4fd00650453889f0519e28ab24a4b70eae35ee8ff1e57bafb030ca40496d2152f7899e522bd757acaf54c69bd76a7435b5a5f19e57a0b86f8374dda231aff2367e0f9bda98434ea0e48b16a6459d6fcab9c7556f501328bb8bf93765e8d2d0480e60d79bce5bbaddd2b9d10e9ae7a86510f2388dec9353f82c2cb16579823bce05e4ca72678be46b64214926d88de744b687950c8428cfadfc95d500c41c9644c9da24db5c200b939acc0e2099f60da856dd31df520568e43e0db732131b6feb02ecff1c3ce7db6c747c706d1fdee9294913f69d63fc42cdcef1ec109e07b37a777b984e91dbb8ea1bd16699c8012371d098e35dacdb1d92ea5ba27803af0e9e1bdbd78a31989e086d4e38b5679b217b77016a71db04ad2511ad7c4e142f19802b5dc5dc4eab57e9f12bb955df4ebde9fa86f1d1b4793a8b292ac46f099afc6580c3d23d9415ea3ae6004367f946938484c63837e8e883b9f5cfeee24ee8284d65aa2b3f94faf820c4f1685642ecdbe407ede577cf70efe90c89f5b1fab0bbbfb29e1655bc0fa29063aa90c6bc60cdf2c44fdfcb27942bdd93464359aaa343fede73c1793892b5a59c4845c712b574d0ca1ce94b638025a4c2e5f80568bcc89f58ac6c175eb959c6e167eb187f27ea094e64a971944405906499cebeb094b03c0a8c8d9c0e54e3a93543c1ece8abe0c78851438280c0138e376ee22235f4f4184425772b48eeb96d1de9733d69b5a9ae5345d4b430042428c479edd611f5e9d02d6a3d0615a193d9d4ff51c91149bbda5cd984ce0246f9d28d5b9ee8df59a805b4070ce04f259afc948262467d5aeb0ed531d82dd67ea12ae97f539f395be7eca331f48eb4df12200e430a799523c8f136615a50fde0f95ca868d58b6cd5e3689a5cfb10ae6e3649a0add57e92bfbf5a47b92d131a6de11b68cebfc7b35abdf1d94892481387e90c3410bc65c0c37c445cbf2b4b106f0f327eb405535621dc66db357a2dcf4e29db6ea2011d0b9a52bdd747f7c7bde23320f03a1fe19fd5a6ce02e3f21d03580639c6d29d1bd4314ef1ced39a2287292422f8021513e603
+Shared Secret B: 22b382f07c259e63658a8c3d74b4a2e9901a9e4add8bc04cab3fa4cfe5708b2a
+Shared Secret A: 22b382f07c259e63658a8c3d74b4a2e9901a9e4add8bc04cab3fa4cfe5708b2a
+b5edb426ac5f3a30d6304ab62b6287dd77c1dedcc8a818d54b0b12fae794e3471fbaa9f57a02de9a0f4208b2e1dec50bb9b20293cd611bdfa96843d1c2dcd72de3705046437d7469f243070a3122f5b4c69916cad45229d9e2edaa0a7c8c5267f4ca8281ad2bd612cf0e00a0f76669c4b12229f222fed5cb01e0c67c2848af0d0b87b24c4fb8cac87f90f7b1012f79c885e2c0c35f29148de9a4b798615553741f5dce325b22a94e6f97aa93e0cc6904e6dbf9f96a6cd3e49d33fab7fb67e01fa8a0116194e469cb3519dfdad40d0b1de2e7ecb2777a4961e785ac8bcb33794364c6b2ba17ff28a91586bf01b1c271a2bae3fa9df694737a3b40834e5bf4f0ee4ff7593df8d5bd6a6a8c6f14ab941d53d8ebcd4be18b20a97e05812c4a0b0ec278c4472f7f507039771cfbaed5de5ec55855bdc191826e045d29d36ae43b9d6c220288d2a28cf64b1b16ba44c045f5776673a181e9e8a963561c76e0f508752fbfab5b0c805aa4641551be16b151842bda11dd5f8c9f1873714aee60dc49594f6de24142254717e201bf83ffebfed177b306129a5f1976e923806b0afaee05806696123cd54f0bfd2f43c79e5725670f3ef7dbdffea3969e02b2d8c29617a2914cac2a972dd950baca743a02cef7563bdd67fa8571e924825f95ac74819ab788185fece26f4a069f678d7fc4b530b5bf7f396e73e3997e987d3271eda6e582407103d497485bce53cbf15ca47374c227470ee43954011a0dc1f20b6a49632f0a8b4ecb8352284f8d6740c440cbf048333f82783387ab842824dff92ce8253d1a295be2d10b0193ef3749394a58bad5a505e815178f13ff6c9ca03b2b466aad44cd8b9ef5607b089c604eb2598800b2f8a68b5e7bc56d3d64987e88f5256f5c71d4564457150b5f713a3dee7436e05a9c43789e22b24ff7f896f5afe8c80e294276c14c1ef714cf94e5ba11b3f99e16d0afdcd0181cdaf94f617e41417d8c5b11830dd047629bdfe31c916494f1dd3d70a15f20ded2911cd26cda23bf643720c45630b1c8afc80ea92b1de13bc6f8d7f4c0afa4de4008e02cdd5ae6eec904cc5a306c7b4494de7c4c0df71b7abce33141b60930dacce1a79e8415c3e39e8468d256b11b14b5e22645f1c8642840e2eb7bc7c98c2af5865def525a057401cac7df99912a21e141639ba53b1ebab1fc3cc1124a36a285173785a67560df3810b6097a403d5889dd3d1c3e3fe79013a6fe871bf66c3f6749701bc25d07a6497b4e5e5f854492de24c5329ef360a6b4dfc0da4061958f146d9a98610f46b2415e575fcbbaea52de3f96513866eab5ffca0729f9b5f2a75d3248aaf03a751f8917d5d952ce108527fe3fe71371e3266c0bd51c93a076678ef7d92d5ae53167e98642b7b190a93b51c015f365ce071586555b623beb3ebdd85db0eb2e6a0720d2f77c37042baefd4dd8a596df2cd0ad655a9c111983ae650d5cfb53c229f17ea56dff0723bc28db840d7cfc8be14481c11eb7c98aaf0d0eed32c96d0823ac3d2fe62a262309d0fd1de71e6fdd7fe79b5441fb877278dfd451e49e0505ffb3b0679d78df1eca1f2296035d0d643c388ca1e88617e36a56e53a1b190539e82471aedb1ed4d9a4ef3d78452409775b48cd6eeb69a25295e54bfd54373828ec5703ef813cdd64768ed159e6829386acfec714f80df38a045a04e191328ea6f176ce920e6ddfa6ebeb38de68fafd572449643e3680d6105e2bec1f870df22632e8bd0f546137f40f1ef85122cdfea96391b48746125a664359cd50bf6a3e792ef955adfe9d82e69ffcd45dfe08c25f1242dbc0df4c6b3f2489115eccf948b4a2e9ab5cbfff78755b951eb424eb952fec8f239fcc9a297c28a78dd3888c95544b17b7b1440865d86ec49185653352dc845b5985e0d2e3ee546b9e8f0de3538ac50276d5491eef6783b62cd2a8affa78d17e335c91bf052ed1c2314b44ce205ca95568f5149dd9c520d0607567f65956c506349ca58e11da6c32d655b6df818362949b62b1ab9213e187ac9509c814d447ca3f552735b51b23e1575158bcafe78f439fe2c8c2306fc55319bb4e77e16b9852c807a2e6a1b310cf8c840f8598d2cd97d9148c4da6e8ca82021960e1abf58408acb9d8d5263004e6cbb0f2674b32a407cc806183c4b29e12a79270d76a7494c1934f56fa42c1a974471beedeaca01bfe781f271cd3
+Pseudorandom shared Secret A: fc082ab24c6f74100d6166a240d2bd5c4fe232c949d8581e25b417514746755f
+061a8faf2145ae80b85a03f01ec93de56513526c2b0f80a284acf8da60bfdd4bfab0b4eaf18500c83fc8ac13de836f99dba743a46dbe115dfb06396cc232731c
+Public Key: 739991554a8e4dab63de6382a292a654b4b5ad53507ceba0de82ccdcbabff1781d8ba5a806d8c1f8072a9c662340bb826280a644214dbc933f0c552cb2a9bed4d38dc3d5a52aa088316566b5313dec12974ef3bf26803f3656889d397d57e618d7134b4ab017b1f0978518449fbb16869b11399b9f44ca39d830b306f7c0f4f027dc272af5814cb80c3519432edb769726781bf80435fd73127c13af20667e7ddb5bc3219cec5490ee4bc6ba931e18e02b0e9358490c4efa600355da3b58c89c2c60020de7a2da09702b1ac579fab16706ab2cec5e520c916f7c91706482d3096c15c5a720898bd6814597387e5687c162c50d9f22177ca8470184c111b22a2d824f6e4001d5b59d788240daf2953963c8254bb68114b7c90651e8e33a1109c402f84e818c8d9867bcf2832b18c5b5f9233f61265699415829387cb767315d459d6b718ed4d64a8c2a42a63347921207aeac2051599f0be68d299825cfe3878f53a13b2c7bcb8765d5e5ae2b04649ce8bbf4098b6adb9e26fc8c617a3fc427cca44a00b997c0ce4a2f8f3006aa57a578c3c042396205e34d696a6acd1c1a827261b9d11aeab0b920c288a6885b862002958b1304923ad4d46aaa839229f9b817759b08b60aaac4a98881319426aaba88ae3a704bb689b319d6b7b06663f713c6502388e6928348f7626ad04198305ff800296509ce9a864ba7c18476d13c4e43be5ea1c43cbc0323215607c616c40b118433a728646647b43e661a9e5970976db4a2ea261585961823771f2dc6a676177c39598472f0262042c82c956bbd3c71a0882471a01ff114bc2dd41211e32f96a8257e2b8240050318f09882e72b7dfa055242884425c7656270007b33ed511cc6b684fe521ec4c82c4944451e939f02618aceb935ec308e62a6a733f519ae0286f4ab6e59d3b451901428f72e1d64b7ef06b41d29b9b3636767ea9e57fb98cdd752f613acd32bad09ab2478ea89efd65d0a28c2c5b9bcaba8b68f18ce116b1bb6c1776d763ac72b0deb2730ea742bb31422a4d118629ca89b33a4d76ac4e2371e439b82c39b8bf6b6bb2f81ab0b857d93902e222224f14c1250dc9ac9b80c1b1b3a21044d1e67aa7d022e147b5590da52ca6408d9f80159054c8b4048e9358e1b45323f502454235abcf9897cac46065b09ed92718fa642c4f532607154176b22427458e972a5b08746af1b86676ab5c5717082e627807766e3d73082e96ec0173372f51862331a79ba3ff67a6dd4118a2b50ce88616267d110bbbb9a59b04fa4b883076918f6855321b97306089e5a6723ca2467618b44345377d1f1be715637e5c06b17989eba496f3e9b9fc7ea231ce9088402a1eed64fa3f562c1892ef33b44c462aec351ac217ac886751e97a11a79276173f69d456a11df41178eca0fd086912e7aa782e57f14a916fa35939129671f5611c856275f104d243b855030b29b705a96cba9fd12603973b66e8531da78b80dbaad33a28ba8a3afc52c78f0f93176b51592566a63a3a0c640b9d0ebc892ac50f926675d62a51a48cdb866695e20610e813522eb8312582919a10e7eb95161eb296d8276c61cad39e57d44b8c99c63b4bf64a08e30422810746b50305ab98b3d3c6365e681f3649e771210cb23c2270782d4a4b6a18c3c4abb0b4524b78503ba0078097575ac35482b4626bcfdc32d3014747c4b4f7d84c4f7b343586a25d9c77d1ba55e9b5c7f7b1a73d4b70d6da5b30a456fa460bc559c9f5212888531245195a34518047fd8ac573c94344816fa2cbcfef2bd2174c21e54280e306224a81ada17ad09d83ed3f6252201136679a820ca9c18994773057846a4afe9ca7faaa2513504ccac94675c22217c9c4880f76e6de718004686338c3c72ea732706093ed43a2abb30dc4a3c0ee02aaf241758b6858f83169e5ba515cb6a0c30336fb84d38e915897b13e3b7b99d084b5296700425c96a31b125796975e5455f9cae5fbc4688619b702c1faf248ec804058dc1ba71659696c2bbe2f26ead611dd3e9560b8024a2e42221112b19d2bc6b827d2a9b2fed8658d674617304520bda019c19623dd317fbb86492dca99ba35b72556dd368147ac50ff7b92a4edc745ce8a1633519fbe0138f16a416342f7d341beab66952b16014b08ab2e451d571cbb90f8ff51f07785ee68f6a3cd92320a6209a91286378e072c4a6af158d19d9d7
+Secret Key: 63cb2364d6bed194398c3159ad970f0948c8496a00a40739d5e30d3aa52c900624c60614450751f595c4eb532c97f16283138c0a0c4cf4b60e60fb39b1eca8f39a5b07a9886f5889f120318b08b0cac34290a1b44e9465a7f50f847527edf321e2d16ee57113db624b3c6c18ac0473160217c4206bfcf3c0c0040c60a118e621ba0df1c2a2c88d90320de384257803481b9b71b4f60bf27477e483011f206ea7ca776b7256ffcc79fe080fef62ccd769826126074a199427983946e9196c250a78152f3398a4c6a857af86cf65b2b79643096006076db098dcb489f192545e0ccc1e25072fb73ec8401745b084bfa507c39b5aa95195f7437fbd9296d9577ef71b47ac2abe49ac899c9baa0dfb3e58709a99b734026a8abcec1d6a40afc6b43690c991878bbb7959c97c6084835c9df93ac8a356b30fc6a7e58b2d09d3787ba170ac821b16a1c7f2418345477b3296ba73ab91819c2171aa8684c34562311fa4959b5d520081b922193b826ed9baf56ac9c5d4cbe39678203a4403181b87d27faa09832454abc6d865676452dc038f8739bb837b1c90c72e5da1c94a19681c52c02e8b82f11a3b5e49cf2e9144dcb723e8e8747692b8e51776c115a8ada82565862782e4b488573fb0a660dbb7c50146be3bc2622aa8cd3e2707ff235027916fdf71c529a31d4111c4d0b8c42c3bc84774ab588b15db7b96a89182cd6977325bc2de8a807806b0d2753e70e3206e2aa4d3834bf2440bfac58d70724dea82ca2745a416eb6053519e562025a0f57cf70c4cdc899d4a119622c6782efac1b81aa7ed6cbb86c0912eea959fd7c625c2270911856e0550b91a810640ae16f004c644a89df17782aba14b1167296478c6a88bafeacd2771b8ff740cc933176e17464674ad5751726f5c24324b3e0d4a8b5e3c15d1a27670f77b6d26210bc3a5f1ccaabca9887d55b7bbaab8b5d21b959557f1bb42f577b55d130f035c881c22928e780bb202c6d8775fd0c1bf9240ad30177df432a7126a80f27343940626b23862664a542444a076004c551815b67483d18c3b03194059c5cd592b6dd7824b40e684bd09cd5f0c6098abbd36e2ad651c6da5b272209b0d99101c3d32715c41c173f49e8f40473cb60298c7007b8b12e7f56b50f39111c8393536b14e1182c49c0700a52f221aa11a92b07f3bbd599bc91f1bcb3ef9643c09b02b492e4ca84a6057cd5aaa5ae79574594bb11cba269124754db2bb936c2207841f25a7c07f9409a7b07764fa5a664522e297193256167debb854871b657751a2f792f1bc5c787c6689c910a0e719d571c204c456b5f46a1d3387cc9c8af7d24a2010ad7a2055afe3ce0b83c523639826c30285603ab5447a7c654a5f12cc7c700b51c71c685a31924c1ac06b862e782eff4c501bd55604827d8d90cc25a41e07aa4dd722972953492edb5097905ca8328e7d99838f6c8178109eade3a17677943fc0779f4695bf37a0d34c5c404c00cea82a6a222e4f25b328d56be9db1c4ae9c201352ab7a8108c4b1a1fd1c8346a28a738968f7a6cd2374ea11a3159ab87d03ac8d3d3977120aa1f9a08e1063dfe782e24d2398a760ac35a8ba1c23ef1f54e2c3a9ab7754df420479a8c47fbd5346e61118b51c98285864bdc63e0197398847174d28e20a179462a4b05f53d3ba13d2df537faf24f1b939cfbdc1424693d645b209360869f43015076891ba7374b1767f75437208bbc0d3466723b623790529368b8f2c2b23be057ad271c2c2ac701249f67ecc3eb7b2fdcd4760389b8b5086cb8c0b60f67c18275420e81101afa3f2d20b06b2ac9f375ab5035a27b834b61794150d2c332c57e347a98fd6b3c6ccc9a6090351568582e42b604d56f08e763a93998e10622199306f20acdec17370ce8c44f332305f404c7eb3a8b8532180732fa417a4ef17f9da16683235e53fc7d52f9834bf170e6392d99baa9073313331007cb881794c198ec7664fc225a852c0035b6a6c8232adf4432f25292ac956147444db9c45eadb06c320994da71488789cf55d40b2c3962a1d184c9425b81c5b03c6422cfac569b4c2f823864da9515c612366b078af38c40be11cd91fa7e92789f2c4a18c971a418d532bfa63d7f505a5da1ca2f68b9b1e5adcd2a037fc0b69cc79e8e240a0c452d739991554a8e4dab63de6382a292a654b4b5ad53507ceba0de82ccdcbabff1781d8ba5a806d8c1f8072a9c662340bb826280a644214dbc933f0c552cb2a9bed4d38dc3d5a52aa088316566b5313dec12974ef3bf26803f3656889d397d57e618d7134b4ab017b1f0978518449fbb16869b11399b9f44ca39d830b306f7c0f4f027dc272af5814cb80c3519432edb769726781bf80435fd73127c13af20667e7ddb5bc3219cec5490ee4bc6ba931e18e02b0e9358490c4efa600355da3b58c89c2c60020de7a2da09702b1ac579fab16706ab2cec5e520c916f7c91706482d3096c15c5a720898bd6814597387e5687c162c50d9f22177ca8470184c111b22a2d824f6e4001d5b59d788240daf2953963c8254bb68114b7c90651e8e33a1109c402f84e818c8d9867bcf2832b18c5b5f9233f61265699415829387cb767315d459d6b718ed4d64a8c2a42a63347921207aeac2051599f0be68d299825cfe3878f53a13b2c7bcb8765d5e5ae2b04649ce8bbf4098b6adb9e26fc8c617a3fc427cca44a00b997c0ce4a2f8f3006aa57a578c3c042396205e34d696a6acd1c1a827261b9d11aeab0b920c288a6885b862002958b1304923ad4d46aaa839229f9b817759b08b60aaac4a98881319426aaba88ae3a704bb689b319d6b7b06663f713c6502388e6928348f7626ad04198305ff800296509ce9a864ba7c18476d13c4e43be5ea1c43cbc0323215607c616c40b118433a728646647b43e661a9e5970976db4a2ea261585961823771f2dc6a676177c39598472f0262042c82c956bbd3c71a0882471a01ff114bc2dd41211e32f96a8257e2b8240050318f09882e72b7dfa055242884425c7656270007b33ed511cc6b684fe521ec4c82c4944451e939f02618aceb935ec308e62a6a733f519ae0286f4ab6e59d3b451901428f72e1d64b7ef06b41d29b9b3636767ea9e57fb98cdd752f613acd32bad09ab2478ea89efd65d0a28c2c5b9bcaba8b68f18ce116b1bb6c1776d763ac72b0deb2730ea742bb31422a4d118629ca89b33a4d76ac4e2371e439b82c39b8bf6b6bb2f81ab0b857d93902e222224f14c1250dc9ac9b80c1b1b3a21044d1e67aa7d022e147b5590da52ca6408d9f80159054c8b4048e9358e1b45323f502454235abcf9897cac46065b09ed92718fa642c4f532607154176b22427458e972a5b08746af1b86676ab5c5717082e627807766e3d73082e96ec0173372f51862331a79ba3ff67a6dd4118a2b50ce88616267d110bbbb9a59b04fa4b883076918f6855321b97306089e5a6723ca2467618b44345377d1f1be715637e5c06b17989eba496f3e9b9fc7ea231ce9088402a1eed64fa3f562c1892ef33b44c462aec351ac217ac886751e97a11a79276173f69d456a11df41178eca0fd086912e7aa782e57f14a916fa35939129671f5611c856275f104d243b855030b29b705a96cba9fd12603973b66e8531da78b80dbaad33a28ba8a3afc52c78f0f93176b51592566a63a3a0c640b9d0ebc892ac50f926675d62a51a48cdb866695e20610e813522eb8312582919a10e7eb95161eb296d8276c61cad39e57d44b8c99c63b4bf64a08e30422810746b50305ab98b3d3c6365e681f3649e771210cb23c2270782d4a4b6a18c3c4abb0b4524b78503ba0078097575ac35482b4626bcfdc32d3014747c4b4f7d84c4f7b343586a25d9c77d1ba55e9b5c7f7b1a73d4b70d6da5b30a456fa460bc559c9f5212888531245195a34518047fd8ac573c94344816fa2cbcfef2bd2174c21e54280e306224a81ada17ad09d83ed3f6252201136679a820ca9c18994773057846a4afe9ca7faaa2513504ccac94675c22217c9c4880f76e6de718004686338c3c72ea732706093ed43a2abb30dc4a3c0ee02aaf241758b6858f83169e5ba515cb6a0c30336fb84d38e915897b13e3b7b99d084b5296700425c96a31b125796975e5455f9cae5fbc4688619b702c1faf248ec804058dc1ba71659696c2bbe2f26ead611dd3e9560b8024a2e42221112b19d2bc6b827d2a9b2fed8658d674617304520bda019c19623dd317fbb86492dca99ba35b72556dd368147ac50ff7b92a4edc745ce8a1633519fbe0138f16a416342f7d341beab66952b16014b08ab2e451d571cbb90f8ff51f07785ee68f6a3cd92320a6209a91286378e072c4a6af158d19d9d72c18af9e7f94b7471ae1f8f44af5281088f4484d7a28d2d50a55d11883698c52fab0b4eaf18500c83fc8ac13de836f99dba743a46dbe115dfb06396cc232731c
+ceadf7c2e46fa6298750de23bffc0872ad0f4c7adf66451f8f95b42ebcefcc06
+Ciphertext: 22bc6c516cabef2d4e2ed3c988a5e57d40eaa4475c072d3442af77f52b76f39631a9cfae8236b95b8c60a266326f7963d241132c66b4a9c2288b78dac29a64fba59764b27fba2013aa474e10a8674b3dc8d33e4aecafee113517a28b374ecabcc9d1acad1cdae5091f177dca6deb24e8d359d64e8c489786e61ad3c8aeb63bf70f7c84f179055d35da0c9b730b4ef28a1fdaa34d5dd0e5a712a2102d0c105d54085b6be7cee4699ac456d08a1ad1ec6f73773b9dcf733df4bea0928e7380a930c4753cae9ab6458a2426c74e73009a7f25c5dbf425bca3c2a1806137c08b1198d25e25004c851a133327aaf06528c58dcb81ed7c85034c7eae7cf667543665b8c2943bcd45f361d8036e67d9e62a88cdbe6f662a5e63f74e440b571babd6bce6063ccf900353e2029ebaf131f1f93d46565dbe3202fe339c660b179b83b33e468bd7b58cbea2c2ef7e07a6ac29b01abf28903ab8b60c506886e12cff6930970457c2b76f89a2662e4bd03bc42c1b687cfa732871e1e83998ad153874ed3a1ebc5791c57a08643e26f98c99f31788814d41735b39ef8cfa540f3eb88254224dfb9520580a83965e8781bbc397f0782a98d3695ab3d851181e22e780853402e825aac408ae3c0283cdbd4a246d659bc50ac87bdac75dbfc0eee57902682fc1065f8c025f41490e35ec247671cba1db649c5a2a86a908cff09162c7b44e09060f4ffc6d1ce79d81b1315cfae16028c47ae428ad39e568f1720500b90ea0d5b4b5f3633f2c758832248bac49252845d0f09bc135836169074e474e3261a8a7880a6fabf72d1f238a7924d26cee8685ff1b7b93eb2f41dcae99b23e0c9ad5078ab8ef2751a61e07870b6fa74e43e1c93c72f53c0d321be14705be0f2db37bf1e6521af0ed3356c1378d546bceb7ee035a4624584efe5e55d3c4408114cf6b467373571a2ec07c5a907b7c8789ffbfc7dd73fb071e71a0bdd9174c89dbb48fc1ae598b77aa1425a45638231565607e066cb352ed5c76f48f51230c8fae5ed78e83ba3405f8340298d1ed7049bde4c153fde0d36c554ee7801555e8ed6ba21c268d1c2849e102583c60b59e8ba490a956163f59adb7b004cf52e8edb1031f48bf82b9638f14b86072018d99a5beb9144c3b534d3d487075be77b6a08b7861dcdb49a675f5bd26571d1a78388b70d881ea555639d607f25ee0df36b22f288562be1a6614d3fe7d417b3db3e4298b66e047ea301374109b9186e8babe6de4355aab3b6cbee04acaeff4300906ca274b13b3d683b685a2aba1f17841de809745c47f258ba89ad58dfee032007d4233d4bfd51cba9b94205bf9472049444760395b4ef589788091f98f3f41fc39377da04ec3a21465200aba5e5bee01c9933ac9e1d5a411dc0b72a07669ac46b067de40549a89e8e9a32b06d849ae788116b2ff01d0dda1ede0663e8bfec54eb3bb27a0707e6d5786c238c7d5fef604e3aef860d482c6387ba71e753f04c178c8f41365d18dd6099a31f55298c425d60f3862b939bd253ab0830227cd9656ee5c72c91a1539494e519f93e84bab4f071a5102d871d8d3421bba3677a2ee28bc2e904ee0247495b859b88cbfa1554eab1f64bdd909605d8413267cd7109d68bfb17e1a5f3939d166eb6397ecca23d101372ae9dcd82443ac05fb5fa646ec24d0f9ff448e996f52341d914c2f0c6afc3063c1d28d60348510eac8b1857251fd1a79ea1a2e955e6d1d91f004503e53891bb56801a6c1bc51f6d9d2a5dbe868cecae860681c4f6bde9689df5c30002c0d7fedb229c8cb1c91387aa3d2440e0baefe1532bb0425b1b003b818352f3f256535d90b1e9b662417e5c0d6b18cb47f85e5edc203da972e9078a962f5dd832342e871c3567a5018a102915d62fb2014970776ae77fd2312722dbaa5f7a79f6e5b9be6d5027123bbdaeb4e3b5bb3a5aead2b0939a3a6568b6d417807637331a4fa7fb4a79b4972c91eaae63e72e1d5d38b37288addb6d72e863ee1e34b601ef9d2a9920870f49afa38b347c9cca72a376a30cbf7814e7e7aff0f57473520cd3a4572e460819c631e57b706444086dcee79cc90b353dd03a168f99bf2d00f3a1e4865b662a012471f645ceba18afdfae9c94a12dbfffa2c9aae45966def2a0853dd264302db8e6331b6f75d1ceda162fe91143ee3510a44f3fb1fc68337eae4e5cdef3857f86e5c84d9c95a
+Shared Secret B: 144adaecc7c4087b7ff4a90e28d3b0a0c598ee91a162babb6d3ed7156df5580c
+Shared Secret A: 144adaecc7c4087b7ff4a90e28d3b0a0c598ee91a162babb6d3ed7156df5580c
+d7b69673c93e8df11ee5f796b049618c3e8a12dda74d39996cd4db0ddb4a8610e6fa0662ace02874123a037c12fe2b3ea39889b3a2821a474e8c0999e180a91d49705a5b67b85bc05c76a17184baa5bb06b09261d2641a1cd9698015f3dba1c1449d62d9663cb703876e0cae5ec844472907c0bf6785e9ef57c422a0a7ba2be81d0c27f0b49379d8398c07d24a05020fe461a9d70ded2af78d4b3e249ee5b6af4feb3437745c2b27c002bad2d917873359598da0069f0521518f45e06d04a945a5674966db4519283aae423683f818cf6109c909946a0e2d94fe680e0a2f56adca73f756ebcde53bce1e146a59461e32e6b69567d4e371daf1512820bbde9d75aadd103e372a386c0e136dd4c547f9e7cc3a5032dac2976986cec3ad15618faa43fbbcc8e7f8bc957c02e8b84b89760036b2660f7ab8236d57275932eb8b44b54e63baf0b63389b73e06cfa71c5492ccb7d82d3676bdc2b7e8608dea05f94a8bfc3cdca87a1f68d328d35ce901b27a9d279d2e20ae45666a4845ad8058e65e3e337b735a78c6e230c8cf6d2cf0f6bb4b974fa4aa02b8fa15c496e603b58539230ded514d19278952adb5e6e5d72ce14fb866e4f25f7142597fa4cb1fb7ae2d2c826a4fc8733fc88c9e9cc01bf2b0b9050ffc10708df36297ee5877edb2ec7d5fdd4891e2d772e7b93381f20e48f441ba33739f916b6e9477df642dd2b9480a3c332a938ba2aa9d93fb385497e97ddb5b9eca7c540213f9bd8979b78dfa4ea91e1890e5bddc75144e2a4476036d5513d44eca9d6a7eefc7301fc8b4c516b7ae27064af9f4ca72dcbcd5d5d7733f3e45506b43c58deec05376b5bfb55ae33f5c4bf40f0b7e4418e10bf08d3489c1b463bdc6ec78231f99f4d97627b24c8f5695fa0573362b2ca12f11d4866111a44f56baa82c5aa5ceedc7b1bdad9a98a40329e2667de45b5fed39d35159a19a388f0fa4728f40332ef452a3fbc664bcba0fb350b110aaf7adb53945c2d8dd28054358e8d90b2766d4daa4654f9e234abd1a69549a8c1b67c43ea282bbb2238f1130f2709e078875672084e105a4d93459431bb4ddb820853322db9ec0bd7fa3a5dbf556153d6dd3091b64346809ae488ca80e7add06a892fbccb1819d2b40005bb394c87836064ba37cf393f03101a3e025de4b94856f7fa88e05fd94a50cb6ca33641ce9db354253fee715fddfe2c80fb41ac3dfa3c0e5ffe0db777ba2671a029af4016823449aa4b1b69a29e01058d2dbd6b2976bdd8695c8107dc615539a1682cf811f629aa907d123fbf59ddfb80e2166629d533d14b4dc3565ad8375911dda8be53b2be58ddf295e437979fb0dc4dca07c6c24f3975ebf32afd004c2508e435b7f596c23ef3c294c7a603c37e883592d1cf128567bec7d0f210781b48ca325b0fcfb7743bded8a531f0d65fd9ab07dbfe8ecec4e5cf187eb41c8b46f21ce794413f0659e7ecc857ea94228b710fb2a6e8e7aa33f823706faa67e187c313815b36a67396a11532a1d36187df94799e507dbaac155a80fcefa3292a9fc5bbed877f879e155e907976550c2713e4158c02b39c27f33a5ebd6fbff6ab8d86bae8a0baa439f8cf509388bab161938743df7f406fe0e7b9e249b75269c2da82bf1faa800ac7b432e643e1b8e55309aa4c09f4298c3c332a7d4393fa633b3a414794f475dcd2881dffabf1e66fdbc37eda32cd0780de4b331a07951849a17fe1f2f76f21d5574efff40570a6f8fccd47f45de4b60aaa2e239eb860576a3c5725f773b990ae71b4c5dd34bb609ba305efca50df6f5ac17f80179e9b208a5a72be2b38861ebe70925129cdc53b61e310161a5ee50d44b567205bc1bdaa2a9966381a4d780827e4dc4624438b0bd1c616a3d3bda42e9ab4125d61695e1c025559f75520b315afcec0d73b53fd35284d3cdd5cf0a23b7a91431c9a54fd91d9460f77e8ed34c09e17a12bc6e9c386e49cd76cf981adeb21e3808c01c0dec55e5ec6364a0bac8be6c8897c339d2236ecee846c0f54d856a64a0560b174b8af38e66a9367acef65f557b7c1db9c2e1a6cd841908d704e6f0ff735c34e0dd3bd18fbd6a12bee4314a81485eac6b2758968962b6af1d75076e4865c12b6d9c7a1cf4d6e4deec1befddeae70425d19762bf90f4de8588054e11380e5af75dbc7cc9a98b740d7d4cba8df11a189736a640ffdf8a585221decaab
+Pseudorandom shared Secret A: ca277fe7b4358c7b73ea7f0fd82fb5a23000efd42394d2ab9b02565a95c910b7
+26a9a5ee50ccd3d3a1439978bec30416670ebc7ae245fab10fa308ddbd4947839dba31a6f62ba55c0ef2b5cb837203add836f548e9bc9d0a3bf876e903521e1a
+Public Key: 7c272cf8b5beff6c49f021485ff8a8da107aa5b36625f93c76846168e306af365b22c743c812694ce36838868a51e623a2e1689236c63cf93d23a70b64e1c6a782be0c0a2238642f53e29295783504c543557443f275cfeec14d4642aef0638ddf6b2a120bc7251b00bbf29b0ba35596d5401392c0d703447a52ca31baac975c55c2387905e7380413857699ae318b925c4bb4b317945d2a86665661328b9982264bdb78b1b358174db69fa660a395a5044cf2cae9e0420f62084eb3260d37b41e508abac8ac995b3b81b592bbab520110406a7b748fa42330c06042d85d66a5c083e25943f7454056b02ecb268af73f54ea1ba57a8fb0e76668e60ee4ea3dcdc662fa14a05e486061c13ff82b47fad1bde27c6d58eb92364531689bb0a97954e455329f881fbd377294b4ca58b003e1c37b6121bf5aca363afb927b99a5595b94fbc817e6754ec1983d874100b1b819e60458ca7ccc55cc42422c06f61891d3005e177085b832118fe961633929d8a137ff8bc2f50290445c6bd9d307d633c136c51a4f0b1aa3501afbe05ce230035a000ee6371cbcc4c811a50afbc9913de975e428beeab41e8170a9a3db75520a6ff72012ead899dda81cb5581ebb481a6ca57ba1f5ce02e5645925b39cd707c80a298faca76928a253236c16a7558311ad0d4535686b0fe3286fde9510ff5585ffe095c6777425739a0320944612a44b40638fd49918eb24d88b63e335680c4a2650f5a1c6602d25c17eb8824609b6938863a3ce6a94d2c94d8043b56726c395b237e238662925702b3c2e04fbbb02f2b5a7e40aa7660f4a3595fa10c2f5688ee88c383eab97831972e09cac0996597087497827b8399a14aa279286d426fce94f9ec8871a1997304c00c4d10de73a125856c04d71ca29104715d6777370c8bcb2bc7853b3f6b38b6110498bf41de0f1b55a0c606c481ea718928f0b280ccb21dc5c0aa472581b0996dcf32b1b6b3dda68cdf9b4596b5c9172478ff81477b038111c3bb7afa2b0f097426e11cdd809c363f211f4a84bdff3848581ad4d0bab93901f732b9ccca5c508c94f314097c120728caa1768a6541dd4129b64accb9cc350f8b1037c5c01043c9bf9c556267507e780f6b5cf73a16ea06a42deb21c4b007900e6296eb4bfebcc5a2e1b18b691507bd9584467941a93c6794a59218020e0b4a1b79621bd1a5508f35b01c9744beab5cce12136d71b0118812cc38c73d7b99c12a34a056c1a542b2a3cc54078c9934c4998cc88e39a1e181b9a099c1912936268fb51e322af2fa6a63c806307b1690f2a68871a532812362272700e259774a605f6b8bbb42c90ae278f14c1a119904ef8c8ab90719180110f895a07ffa777820616f5e16cbdd83519d558a224885ecca53cf10cb7a91801b31952e604af90236d584a09d44e050758cb28a585f555e8492bd0c1c5e26610b8cbbb8da6486e6c08e9467c5898624386ce6a893332e5524459163b4647af673ff5397978c81cde453cf6e6ae95f8c90198334822cc1dbaaf7b709cf98687f11b7b955c3393118a3e705f0ea243aca056c6ab54371cb60c150670049cd8f619b062cce3153b24926e3c7a9e28111b4a4630e4d10cc519442043afaea62d7db8009852441694aebd33ade6590debd5162b89482b5229344922fd310a4a608cd9eb79d76408bf114d35f25b89fb12d3e8302b32035ac1086df67cfdf883cd35c4a971b9daa8886e1123bc0561ace2087198892de250f3840340656d2df4c2c155751ae6ac88bb7fd5c48ba2500b86ec522fbc4a944823e614180317c09c1b86bf72b57b52382d998cd942ad1bbab9f2a91574850334077dfd53cef495b22a909900eacb40994cc50043fad72a0d2aac3e54071a0917b751a83b2b6ff4009cee332ce2471208223f09d763fc540a8f42cba6938803925c22164d8648bf76868390118c0ea4be701c4fc0e0095501794f3b4c294aa5380131d784c9718a4ed3320f1a77a4ca832b64801ec4174920c378c41680dc52a50a56a3457663c989be5c342b48921ef3a99e2fd15926b724b2fa23c4370323d72253b0600cda6e598b938606289edc5598e3bcf555b6e3c58bc91bab289b36c2dbb7eea8b24adb9ae1ab58dbb72fb8653bc3a06fb8f2a91b13640ba87cefa78bd2247e26077c7b21d52a27b102ff401e4542ba568615e4418ab0098ce65ff5aaf23c88
+Secret Key: d4f86357c0bdab4c3018c4be652b04c21c2adc99a01941975f82967d94b15296ad652ba11ed155d50840ce324682a032a97037d70464777a8bb2794b7af60a9fc65cc78449189a5001e15084061c439c28448c196f5a71d8c7249b86b1b1b1023b750159ea1684dc820a7c3b70d0b9edc0796fc7aa3e439c1114adf42ca58647ae1c524fd10b7a83a8895ef8a3dd4b27db578a78291785e3cb6f3bc4ed997f90797341335ed202cd5ca823a3aa2d27d88f793c0d843938669936ee916e72b9217ccb4581f1bf1ad101be215357b8802faa23490caa190a846f9b1868d57cf7056c5339abfd798ff118a55fe12600647d3ec09a7f662e1717cee59a9f8ccb1c1ec22173c14d52cb85b9fb35bd46250958b3b412b167e391e4f642fe36809a1c9dd8d7c4f6c59f1cf225647783f2843af1b4af179c8663bb5112b4ab401396d4d34f7d89a0f95464888647395b3a93188239c16296b32a0e291a7fc08b6a50b2d8a4cc962a2c289414c6e03ef9826027e0a7a2c28db617a939396c3d525eec6753b70196bbb45d71b98f5fa8a4f7a2c9371943b8291aa9d0a512e70764b5b010fc7c22cb32078a08c3e96c5675929c74a12cd9caf0233c30cb521c6a74f6c4b845b076776861ec49c081485d6d104c26c9557b5351ce7426ec35cf8a15796cdcbc1cc9aace494508b0507ef6aa0cac0275f62f0d0a306982221ce44eda4756d315b39e104ada4a114a09ca0336a4bd5476a509bf826c62660476543468c7fa69496cb5f9f40a6d3913cb60702f23cbb7637876a65861f48fe9e6b6cb7631049c36c4102f26797e70c734761a608582c7f620c3711a97e8989478904cfb8b9b78ec1e46b8ad2c3a15a418cf0f0204520123a467bfa284997bf33a6d66574b4622b9b9b27a998de1e1c01665bbf2f6b5906c4dfc32c5b850583fec2dbd2938bdf4976e445945f7651c1c8c04f07b3ae73d1101960057c0ba8c8eb692998ad2c9b06b1bb3f99e4021c93831cff934a4ed838b77cc13687b08e8c25e18f94ef5a9048ff92c596c78f435037dba8e0a55914064c1098450e02952c35aaa66811b06bc4064f538f5715ba3c21f889779699aa4c0da20b01c3419e6a87775c6bc55656ff49b9631034ef74e81a034f3f8a2f2ab6798ebb236a73a9530c536701b5cab1b403638ac5909f7b32a61a67844f8b4979544e1188d47eb5a88c32302908b8e154cf8f023e77896a4b2102a60209b75266c2905b0aa4424b6ca71f65bd4a140b369013e6184d46c85ccdc7789d70c914b9b7e7a44cd653ddb05afeaa5ae8b8b6971f918750c3307076599d860b3c9447acc7024ba85d303444923c8ef3628f57ccf63aa35cd230ae388348574b6b46738ca1c23e4d77e50345957d98bbc6cae6d97bdf90a62452427ee75a099b1ca1b43b287006037fcc69ad76242604e05473686fb05bce604a668bdd452c86ac91f76d00367a413ec21c93cac2275733590e5951a57bcbb46a7e1901b0b13a45f12217798b96d977ea6d1c16699478cf642df0982d1b5c93411ac42f1c43938c0b5108697e26a82918410c2030dd28a7583709f0c55107112bae9ba77d95696bcc4fe3507cb1192e06494b6210a0fc7bb67215b22eb93861b97492b864a560b7cf89014a1a3ce090d6e4419c334897f97c4e5ac2ea0a2591325601f43483b753ef1052b046a585fe0c3c0384afec7cb1447c021e6343f3003c2577b18c0cad0910651c2200ebc8ece1a8eabc51a6188214daabc4eb9221da441803950b54215b01520ac37008b467740d28c891c019bc8823b06bdacb5cbe9fc7668630b8c58541f0c5118a2c217f6b47a705f06a978b2ec2e9ad563a8d724eaa3c5e93147c2a790b1e89aa2206979f7271f746499e52665633bf2c299379ac6b14348fd05048c2c27cbd4cefcc93b19e1a9cc90a511ea033be23c86080089fb6b17b578bfa6a13b3c3b845015c2f951bcc03acb5c818c613c283bc569d5c769c0a21d30897710a1f3f134d1d1ab0e45bf7de10518c907f355156d839829e98e8282cc8e09906301c92aa7a63a5cba26191f597737c10a20b7bb31f4038ad4f70de71b8f0120b82ea151d48084a2964ef8c49eeeb66f9e97ae2bfc66bfea65fb746e25e29818515bb1c463f7a7076b3ab18c63422f5611f61c737c272cf8b5beff6c49f021485ff8a8da107aa5b36625f93c76846168e306af365b22c743c812694ce36838868a51e623a2e1689236c63cf93d23a70b64e1c6a782be0c0a2238642f53e29295783504c543557443f275cfeec14d4642aef0638ddf6b2a120bc7251b00bbf29b0ba35596d5401392c0d703447a52ca31baac975c55c2387905e7380413857699ae318b925c4bb4b317945d2a86665661328b9982264bdb78b1b358174db69fa660a395a5044cf2cae9e0420f62084eb3260d37b41e508abac8ac995b3b81b592bbab520110406a7b748fa42330c06042d85d66a5c083e25943f7454056b02ecb268af73f54ea1ba57a8fb0e76668e60ee4ea3dcdc662fa14a05e486061c13ff82b47fad1bde27c6d58eb92364531689bb0a97954e455329f881fbd377294b4ca58b003e1c37b6121bf5aca363afb927b99a5595b94fbc817e6754ec1983d874100b1b819e60458ca7ccc55cc42422c06f61891d3005e177085b832118fe961633929d8a137ff8bc2f50290445c6bd9d307d633c136c51a4f0b1aa3501afbe05ce230035a000ee6371cbcc4c811a50afbc9913de975e428beeab41e8170a9a3db75520a6ff72012ead899dda81cb5581ebb481a6ca57ba1f5ce02e5645925b39cd707c80a298faca76928a253236c16a7558311ad0d4535686b0fe3286fde9510ff5585ffe095c6777425739a0320944612a44b40638fd49918eb24d88b63e335680c4a2650f5a1c6602d25c17eb8824609b6938863a3ce6a94d2c94d8043b56726c395b237e238662925702b3c2e04fbbb02f2b5a7e40aa7660f4a3595fa10c2f5688ee88c383eab97831972e09cac0996597087497827b8399a14aa279286d426fce94f9ec8871a1997304c00c4d10de73a125856c04d71ca29104715d6777370c8bcb2bc7853b3f6b38b6110498bf41de0f1b55a0c606c481ea718928f0b280ccb21dc5c0aa472581b0996dcf32b1b6b3dda68cdf9b4596b5c9172478ff81477b038111c3bb7afa2b0f097426e11cdd809c363f211f4a84bdff3848581ad4d0bab93901f732b9ccca5c508c94f314097c120728caa1768a6541dd4129b64accb9cc350f8b1037c5c01043c9bf9c556267507e780f6b5cf73a16ea06a42deb21c4b007900e6296eb4bfebcc5a2e1b18b691507bd9584467941a93c6794a59218020e0b4a1b79621bd1a5508f35b01c9744beab5cce12136d71b0118812cc38c73d7b99c12a34a056c1a542b2a3cc54078c9934c4998cc88e39a1e181b9a099c1912936268fb51e322af2fa6a63c806307b1690f2a68871a532812362272700e259774a605f6b8bbb42c90ae278f14c1a119904ef8c8ab90719180110f895a07ffa777820616f5e16cbdd83519d558a224885ecca53cf10cb7a91801b31952e604af90236d584a09d44e050758cb28a585f555e8492bd0c1c5e26610b8cbbb8da6486e6c08e9467c5898624386ce6a893332e5524459163b4647af673ff5397978c81cde453cf6e6ae95f8c90198334822cc1dbaaf7b709cf98687f11b7b955c3393118a3e705f0ea243aca056c6ab54371cb60c150670049cd8f619b062cce3153b24926e3c7a9e28111b4a4630e4d10cc519442043afaea62d7db8009852441694aebd33ade6590debd5162b89482b5229344922fd310a4a608cd9eb79d76408bf114d35f25b89fb12d3e8302b32035ac1086df67cfdf883cd35c4a971b9daa8886e1123bc0561ace2087198892de250f3840340656d2df4c2c155751ae6ac88bb7fd5c48ba2500b86ec522fbc4a944823e614180317c09c1b86bf72b57b52382d998cd942ad1bbab9f2a91574850334077dfd53cef495b22a909900eacb40994cc50043fad72a0d2aac3e54071a0917b751a83b2b6ff4009cee332ce2471208223f09d763fc540a8f42cba6938803925c22164d8648bf76868390118c0ea4be701c4fc0e0095501794f3b4c294aa5380131d784c9718a4ed3320f1a77a4ca832b64801ec4174920c378c41680dc52a50a56a3457663c989be5c342b48921ef3a99e2fd15926b724b2fa23c4370323d72253b0600cda6e598b938606289edc5598e3bcf555b6e3c58bc91bab289b36c2dbb7eea8b24adb9ae1ab58dbb72fb8653bc3a06fb8f2a91b13640ba87cefa78bd2247e26077c7b21d52a27b102ff401e4542ba568615e4418ab0098ce65ff5aaf23c88631bbbf9f3e68d5f9625d55bbc7060a7e8f1d42964cd7fd12f8b425c14d5e43b9dba31a6f62ba55c0ef2b5cb837203add836f548e9bc9d0a3bf876e903521e1a
+d45e5f05c34a4ab808f04ab25e6de26b2ea423fad7ecfbcab390b3489c81e1dc
+Ciphertext: 245e96ac48d43a873de22a8a7c85e3e741d3a20a621fe9028c6bac39eeed4135697c10d9c4d6c38fb8d05cd9cc8637a593a2b7a9dca8c6b9a7f1424c78b543f194f3ff5ff35aff7e1f2693fea3e08152a8f5a754973ca03bc5090b5a6ae6afcbcdb065b6d0d7c735b4696acb8607dc9108d816bca281d7c22a90ad4a6cd7fdcdd7e7658620b26a34a8ee2204fcdd0f108db2069e84ccb9877e7813ef1fc01a0a2f9ddc4b27c790961c4ed4e7fbd0969a0a34c040a3921416e576dface7c3ddac0b432931e4b6e1b05cd6145601dfb7c6e8d7ff17c6dacbe46ac819654cd877320029b9b9d825fb10551a5da0abfb1f31ff0424e738811c7cb77c121ad59e9f8f73d7240436e5d678198fae9e52e95beb1da69067402878eefbca04759f701ef7017bb71d8fff08c6fed3f8d0e9c31b6cece08498a88a0040e4d38f5d06850a5565f0a59f101ff37de4a350b5a2fc689a6b9bb11fbaffe76d55eac98b8af6a4e054230790983ca106bebac5f3a302c5c16aa8af76ae0a7bf8e056cb426e41b2a357d6a04435efadc132a6ab5e088ce7328465d56f0f7b04519054c2e009e37d60e746adbd69bc3b13b20c0bc8973ad594c2d8dddfa65417b60d8338178d4ed62025406ea85c7416010d27cf650c5d799e99a96f86182f805c5f7ca3f42f3f85e67fd06bdb9a57cfbc454ce41f2bdf72c5613e61901a005559e1b22233ff4f017791142906647f11906cee654463a970f774f8266db32589647b28faf470e805072e17ecd449f07c3e46d3934e189b2c91e87d3db50c0c1801237fea00e7c941e3d2e2c7ebf96b3c8428d607b81c4f143197b97b76217c1d6e53f94c43a5a7fb55aed99f5f8188a5c2580af7fd9ceef44477f49b763dc32bbeb7c99b14c894240e6fa2edeb26b29bd9814cc94f37073c4cda55657403ae93aa689b97b37876d2b108a332df6e6dabbbaac6cc849d7ab80e49aa8391cd5c0aff95bab2486ce8a0bd4667326d57757822210885a918c89a74ce92a5d937cc64a2beb1abedf9e0959ab28292cb7079772b0a0426a570b67738b9ab26eac8df0e7d7aa2afd6384b733ec3d2071af4ad79dda2d80cfda2344e4998225a503195f10609a997ebb0eca1f9b25cd8e5b03d209593bae4a207eb50ed18b4826241630ef862d97647278d7e3fbc12b9215fe669d72842dbf0db294aba92edb8120d2a2d5999f85efa5e86dc55458da074696b06173302a983f667a0ef9042b7c8fe9e91d8d22199daf3193bdf7118aa506af6a51294b8022e31dab0583e488c0f9b7c96c968425d5c69df9b0d41913510ff3797f69f46412bb3583485b7860bf8896642a6b3352476d9f418f9a4125a32e74b04b8a4d593484d1fd174e0ed7c183177fcf7a534636ae3e4c6fad4be225da0867bfd7c8468a501228c77f0a82fcac98f3742b531953bf7b67ed21e6b22b9bb04786f51ca68dc726614f3ad93ecf204b87b8f7dfd05aa4a013a141e7a65714600b7a6c38d329a687bdf4b6a79a2b269cef9735c8dfff017451d07912dd2464ea3326435d456f7d7c115f6439617bfb7e829bd48bc65f8e45acd875907eb575b79d00c28e14d572f6fe83c76db36e42010daebed8c00dca1db13044c1cb6fe47cfd6966843ae66fff071d08c59bb91fa4cca34c906b3c696acf0fce027767450d5db3978e4ca81ca613a6e2450ddf32d9d1c2c5365dc9fe2bbdf76ed884f75b1661be99f4c2b3f9bae0a657529d26c3fbba44650e5127e22fa9d6e9e0faad4acb8ecbd16343c5c1993659298f2381bef3ac86fffa3b4af4ad9f99a36d8976b741338f746fd3d40f62829785554f6b5287bb225248c0d576e785af9635ea6c1e47228d712b0216d39e4fcb1866d5a46a1718cf9a8a933853b05a7786902683ccded7f1a4f7f1fb2c49ac7e77a64bcaa0cffa8e4c980ed6d6ac39904d8f2778814b575f61f6c640edd67d193d1cbf90f8c48434d569dce789a30da556289b878516db6dc9df6b0a65eb510b6f59319bfd649ccd38a6dc1942a1a4340ce1fa6e17d4d10081b32b0939f561a4eddf49e0da45d6bc9e3549856e7f30886fd48a065f458b0c70e973525210551352f22cb10e7e14366505cff106ca948f8303445fa30586d3870ae8ba41547019fcb8093b918453fae10321926c3356e66e466099eb4918f05cb1d85ac242debf9c45dd0980da9dfdd3d854d56591e6b2e
+Shared Secret B: b7514ceb88ee41646411d24984bee410edcec1e549ce5734f24ac396678ccf43
+Shared Secret A: b7514ceb88ee41646411d24984bee410edcec1e549ce5734f24ac396678ccf43
+ea68dc53d9c491ee1db913429b0b67bb6052ffdb69580b44a6165c534a8b593f24b18fac2972c831beabf346576e6db1cb98f774935c6f9a6758faaa5e78241f465eaffeda4a2c6cafe68f28644b77e0cbbc6054706fe16a9e3fde8aa07934be4d3510318a18a8c83a6596671186ea8cfc220107f0af904b74a83ec11fe35d1a9a707bb5e295649dbdbe79faa7be363807a34db2b1726622ef69c00550391264453af311c1b60446854e2494094dedceb3dbc58684ee8dd5ec3121dec59466aab1959a74af579e1f72f111c7ab38eda70518caf847d068a6bd4fa48c10b89afec519bae134a08383aa9d72544ad03142b8f44205cbbf0d53490e7f4ed4ee6abc20ca9a9966bbee58834b81bac94500ab50286a1d99b8f57b5f9d1fc940f2acf34c7e36f3bbfbb3be0af80d1251cbd35db5ebd3a5bec94ae6318c6fce912d9e4a4c6de25dff2fde5f6871664372ba356dc0ee4909fae2240d4517efb8a62ac7bdcdd3d93a0f99b6c36a717b28a9a52753534b889783f9c0f7869a389c765fe025e96db53a92423221c8c5653777d9460294acfb7fb07489de3043b543502facfa03908a12cfb94a6dd5af2ea4b605d6e018a990d00723d645ab80f409c348bd455a55e8e8db68e633b70e4e6d2522f716ceaafcb74b8b1a0a49a5ac89df84eb185cc769a3f5f712d5c1e7eadcb6300e3c9bb4254b303dc18e2f28747b4d5b6776b435082c04c3daed38b9a6e369fc0c83771420850c396742dae343a3eab5f73c674280a4b7ad73e72fffa57ec336320eb5ff03c0eb0909a2fb78f0066b35e0322e0af19d7e72eeff3f06c439543230d1a0861e21a0cce5366f4f38ca91d679a3a026fb53561a43e36f278f0a7fcb72cde068f07bcd17e2db8dd9b4663430f5d64fac8c7ef67dcace9434bc1e3cd240fff5f5692b51dc8e785b0494eb80a151cacfbf3d03d6d43fbb7e94f4db12bf0723abf2b01a5c393e7229a567b929426507c5ca929944288744247dff59a2e2aac7fc09018967d19ddbff9e686d44df45746ced230c1adc112d76017391c2221b9c850de7f16423c404aa571a49452e346178749d8b1525fd94180a7b53eeaa9dc544618d605c6d51c83371c00f2756aaee224f4adfe49efd4ede92f19a41fa4e0e2edfda64dda8adbdd0011f88d67339aaa88a0b25ee1703c2ece348e3e5486e0d66b91c9b05f83cd9756f3de918baa130f97a7c8ae2aaf7cf91b9614c853b385527e27c9d87ab3f24fa3993e5c095337fc5896c841a1654f5b757eab063fa5955285521731d9635b4cd5203f77b5708a57e872f437b1e714ffcd8377e16e06bdbd65b6ce5e4ad28b7eef2545a1367699aa6843c3d16243e09491f5ab7523c1460e061e8142405cb63a1700e645734fc5095bd41e597d06c4686b3823288a6f595e9b895c2195db8fce84290562533124ede743bd76d40c818dc2f6bf7a32a617918206bda9b036e52ed97825db1907ab29fbb7fb45fd6c01a94c208db713286cd466e447ab360041c0093051d2bdc20ac6dcc9793ea1b8d688c4f7576f8b26bff878c657e35213550975bf0a4d6074dc9a347429640bd88918bed76a7e083cde7bcf2a5c2a5e4b8e45dc4252aa8722f06991754e1ed1e5173066570a3b556f7f3519da035932ae8b75ff426e926c59c7c3e897b5ac4e53ff6525cd1eb918ec100cceff48fd649676a456a8ed4b2dee0b7bbe5a41db344744bafbd6a953b285a506d0891f72b73339496da727c52ae731bfd4a94875ee155bbbbbbef3acae8e289a2465fd8714b0690d88b81a3e8e8dd5e6213c5270b1bdd681caedfe874d038c9800b155523744e2252425565bb3256d8722b862407b0d7eef15244d463ec6c040456061dda9c4d04ffddb4db524121409663c97bf7c60d82277a2ce2f1ca4cb9655235318666dd42e92050430662d0bf9f268fb761020b4417e2a5e9308091106cb14a823f1ad3fc52209cbc8792c6000dfbb8a52a5e09fabf671530f93392efb4d7fc468284c9c10bea471822deccc3e423200e51894c7c7f40ee801416fea6e5cda9ec59444645f4b2cbdda42a9779295b6c863fcf8b49592e761cf94dddd8de71196a3368c7c7db5c7f6e3cb2450a712a62e7ece831dd6c404d372f639a7d12d810efe6bb5e59ca75cbe0f9105a57ed3fcf80ed68f2a948dae1d3e257562e94dc69c17a49b49235c53f0ad6c80716
+Pseudorandom shared Secret A: e0bc53a3d63a4e06ed854a6e3c9c27446c2a0d463b6933a5d1cdc61c6eba5169
+e20169fa525d31931eb5ddf847201975aadd8396134eebb05e1d7b2f89e114a1c1551d40f09f9bdf84c08c776a279f5f16167784ec7403204718d7fc13bd0fec
+Public Key: a25caedd813cef7b4de8f32af4932601ac51eba73628da394449cefa269cc1b14a9d01078439650ffa6c04f392bda04ce6e12fb6990854f954c1f4395a8948add544412353dc404c170c036043864c94a32c64ca887189fe28c870a3b7daf29e93a34f8b012957e9852b5cb14051753007b8eeb23e1b9481234c2bc4724932c84528dc45c5f74f82e3b23c9c032b4c26a3594058135f51697a7b7963c8730a2f98b58bc73c900885f0883a93d008a48b7e2b0a11e1769b6ec1516593b80f4386e5caa9b906a17ac4aedfa867db10138698b95b83ba59071c7a5b201d1c005145b5bffc04c5cac4ee3456b3aba2dc64132a7633b29bc281ccbab9d9166617c288a937674368c21ca18928370d9752f4056820d64973f177fcf5671cc43ba2477748f27a69088a347c7121fa8c8c29ac61fb2ce68529d27112fcb084681c7599ca0db81c307107ada28c7d938068d51c68f1957b19522d6e91c027d59c97155539f76730a16765971834081e951521c9714b74eab110b2084b88af6e69876a78a50164335740be50cb3596931f82da67a6b49b03573f015b5e5cc1237920570d01a9efa72b03fba3d7f43da03192c9677bda40c3ac35564407464feabe25abb6232a905f34a16581130674a92f4b2ae04905da2091f0787ca343536bbc128c6528df4a12ebd1435b2c3f3328c993cca7b8e56a259252527795ecb86666548885ac7ebbaa1e8f5ac72eb8896ca6b354901cec105bd7c400a7bb01a6430dd275b36791c62a62a1aec097d1cb7732e053da76b9bd404757b63478e2653b7a4e5b742d40c299692ca0a3cb061317ac81b50b08bccd4a820b57602fad1b1997bb2375dc8966c6c4279cc744d1314c88632dbbc98d511748158d5d9c6aa37a7e3ed455003c98e87aa0d325a2e81ccb5a689f52f29c27426f63fb2cbc239284243ffcd9c01f7577bdf94d1dd14f4060861c78c10d82be90ac1031771f3400790c30306176c203884199a097b8a59998766d32521c8b13b0eec3961665955a326c49c9beea822bffa7bab4851607d241b9ea8c0c6b685a041b548c44c9242c7d40aa29fb9ff55bb45a79997998272d9cb87b198b829a6fda030a24d05a685252d574a5b528be9b4ba2a9b9a194a010a341895e0b66a3ac5b8f0c91535a3f7330b2ad9599e5c377d672b26f2680ee107518935baf975a25752b86eba8b7b213d4c9c7d85a877bd24282c84b6ac385344415c04296f8cc594fa64cf45112fbbb0ba82540dd6c14b942c283f1b81915c5be604e00c984625c210df80ecbf90a5d36870d3c2a7eab3279ea1d9b17666c382afd32a80f75bbae82a88e90977facb020d57ca3c707f2b5bd3c908387d412627b166e7661a4d0aa9b5863a3c17937ba4b5185b53d0429ff702b41b445f16ac3335070c0a48485a09f73140c21680b29d22b1f2640a154b5fe29bbf991b8f3e33720979123ebb1635a41501680497604f00b4fa9523dfdc4089944c132c8a3c715ba9fc726085721dab137ce90674722a0c2c9a5c06b5fd8841e52ec3bf7864496879224337c2a93280c3b8fa8262603f8c409865f80b51714fcbb05c432f8cc921648c8d46c5078857bed74b6272403e3e41870937f2349bd1bd62cb0f3271f436c1a4003dfc5645b635ef59294c752ac6e1267babcc6ce41b03713b8825c3fb56b5f5c3caf0988273dc710d5fb9397f9c257332fedabc0b2792c9425bd8f870f8838646b74c84341981df348cc00294be42b308b8896452929d917a8062ba8a275a0105873558a78d2a0c285923215754aa21b31933eda43236acba802ccba3ef393f90614900b4a4fcbb805b8b9baa12e65d5111ae5b286e7adde8ca263754b6aec5d2fe014a0c652d746aaf7c04e03b723bee690634b3e5c6a851a047f32c71cd271b424a9c488386c9ee72b1176aadcfc288ec23994c3c433e78498b77b51c247ab78680345ae281a11b8853acc67051fe8a502ea440a7c8e1cbab902d377327b930335ae700592c8893d2f57cc6e898194462360a855a8ab9b6f2b7e0a5267dd121e8b4bbd414470df275c2dc2535219587a5b87d303c1dbda6dfe8c467770360670ae19d9a8b338be95b8baca159e1623507d7c005f5198e86b645f472a46f2aa240a998b9a36e10b3cb8467b97c3504edb52a3fd30be8f4c833890f07c5a00d92c8d800cea8923fda8910bfbf1b8ca80a546
+Secret Key: 7fa61f153cb0a7b3c6ecf35c0ae18913106dd2543982f58c48803c2eb357641b3a03f08a1f1a21c2b574e3e420fe8669e7e46240c4a4fd893b1951b662785560e633a8887ea6b705ac7886cae31730624fa1b97ecd9c92fe1ca2334a560e762fe4c36884366f64f5577aa67e482a834b9a5538752ed00bbcef0487851870cad9c0ea2bc1ddc719985864ffc74f83f865310670bedb57c806701e836d5399718624ae0fb957a0376a77a5a15b64b68553b65d18114fccb80b42490cf142320b3b021a15ce6002ea16cf2f48cccb63583db26cec56b7798080c5117710136f846b4c722603205c5ba80a5aec62406b521b98b0843082453d364ffbc06754362380c97245e343a2e5cc03a37fa12748dcd5350ca0a7959440078286a7ba1cec595fde45ace65a17b183a421e84d49d49c76b66b8b2a2fefcaa8ba09ab32200928bc35a43101cd764cae6cce5e1a69b52b5ca4295086001edbeb0ecf1033d3681430674b3fc0782c719b3432b49e4ab594d39e6974400e904179434a10eb10cbc34e000cac72407eebb5ce203692a8a8bf5f6ac9b84c3a48c2758ad45cd6f01d88f57790c0cc443230ef31acea382b9338b9402b6fa60c60f161b8239724f4daa98aea4507c08a858b5b53557e6024045d2a20b5ab86f2b0bcd02c14d874383aca7da8e757fe233ae434a49dc1c455920f21d36032823119f85b8ffaab9904cca7098120677af6c01d4a4245bc91821a9a7ea7cb1f06801279c66af630cab9e485fdc9471683092164cb40a4973b4a7ff9d95a30055de6732c35268636b18e8bc56f1c0a7a78794f59c99240204ac445112426603e0316d5a41b8b5a3075711f315ba0bf417bf02a36e775aa04570649884f8c5bb1d28585c7e0a6ad8c2ad6dbcdcffc9b0488bbce86bf5aa5088edb1c54b625dab7452e43251107b08de4c302bc55a4dcc15f56563ae509748164abb05e8ee80177e34993448189d64082c9b2e9a36445f87b61fc8aa8f0281e9487174100ebaa97da52559d260d52829741c350ac2156ca5a9485915624ec933d58ba724a1db4963dfc83b32276b4072899901c153e20320c05923d3ac7e5279f37578d6b481839558f9df4b19dc11039e854d60b642e0069d396325d81546c0671c8134127a437efa7c1d7223afb1c34b6aa82e79c41da368d2233ad27cc9a44d5773a742ada308ba1861cf7d02b2c8cb6496261f8ea7dd3335a0823c1efab58750452079b2f5ae8617ee7223df1abb0b6bec4e2940adb0a77f570f2f3cb5bc79bee77cc01f4120e04cbc4c8baf8c5c6d0113fae12a94d84bfd7359e61b1a3dd078e477689ef4283305b656e764749c646e4175086e49571886b1bba98a7d1551906009a46a489191ee3880ddc9a15b084c308505ba344ab478b008bb98a2f003f490936cbe699c904781c7cba8826bd35187a487438675bb7b6d481c0da9300d963e38148a6a57bf9548592f5814e2a74e477051fe58892c8162ac0c9d1172bf9035d75fa404f5bbaa81b79337b84a641abf807bc064c4b7589751c11b88a508a38772fa420047ed38fdb2b0e98b21c3bfc86abb471fc8c2858d60e5fb04cd28b01de848b0ca00a58b526e6971c67028666ba6009aa1f21c8192b37633e840fdb0286ab2765c7ca5fb056b4ebf83a1b707647b24139b18092e84835423d4d316007a6ab0d63602d51ca38d865c5302e67fc6aa0e31e0cb1a0ff5b4b2f464491eb16a29297d0580a11180a72262d96889d7937a106e5045049bb2ae07310b0355dcb5550a1b70c782a5594a11bd02b7ed5b4272c7a146655b1756a86e3474219bd75f94c590b500231370c1326c98061c29493c8e85e501accc288727e071378babca4471b238c7f8410124034bc2e4050637763ff132fb668a77380af642275601b4f5535a4c2caab3e9c81e0458b5eb4c863306313c528b4e4c6e6280eb5f26a8aa374c7c5b9909c9c2b9a5da890bd49947fcf98528c5817648192b7485f1d1066b1b52408ab452833954307bd5610c1d1f7465a563419032828c68d8dd41da85815ae2778e10b813c988794684d7d6c94b5069fc9a33a4f14cbe683499b27300423223c985d300ba8ef1ba500e152caf12603b9b9fd602d13246c8e690eacb07ea5363b63bb82460a83ff802615139b4e9219a25caedd813cef7b4de8f32af4932601ac51eba73628da394449cefa269cc1b14a9d01078439650ffa6c04f392bda04ce6e12fb6990854f954c1f4395a8948add544412353dc404c170c036043864c94a32c64ca887189fe28c870a3b7daf29e93a34f8b012957e9852b5cb14051753007b8eeb23e1b9481234c2bc4724932c84528dc45c5f74f82e3b23c9c032b4c26a3594058135f51697a7b7963c8730a2f98b58bc73c900885f0883a93d008a48b7e2b0a11e1769b6ec1516593b80f4386e5caa9b906a17ac4aedfa867db10138698b95b83ba59071c7a5b201d1c005145b5bffc04c5cac4ee3456b3aba2dc64132a7633b29bc281ccbab9d9166617c288a937674368c21ca18928370d9752f4056820d64973f177fcf5671cc43ba2477748f27a69088a347c7121fa8c8c29ac61fb2ce68529d27112fcb084681c7599ca0db81c307107ada28c7d938068d51c68f1957b19522d6e91c027d59c97155539f76730a16765971834081e951521c9714b74eab110b2084b88af6e69876a78a50164335740be50cb3596931f82da67a6b49b03573f015b5e5cc1237920570d01a9efa72b03fba3d7f43da03192c9677bda40c3ac35564407464feabe25abb6232a905f34a16581130674a92f4b2ae04905da2091f0787ca343536bbc128c6528df4a12ebd1435b2c3f3328c993cca7b8e56a259252527795ecb86666548885ac7ebbaa1e8f5ac72eb8896ca6b354901cec105bd7c400a7bb01a6430dd275b36791c62a62a1aec097d1cb7732e053da76b9bd404757b63478e2653b7a4e5b742d40c299692ca0a3cb061317ac81b50b08bccd4a820b57602fad1b1997bb2375dc8966c6c4279cc744d1314c88632dbbc98d511748158d5d9c6aa37a7e3ed455003c98e87aa0d325a2e81ccb5a689f52f29c27426f63fb2cbc239284243ffcd9c01f7577bdf94d1dd14f4060861c78c10d82be90ac1031771f3400790c30306176c203884199a097b8a59998766d32521c8b13b0eec3961665955a326c49c9beea822bffa7bab4851607d241b9ea8c0c6b685a041b548c44c9242c7d40aa29fb9ff55bb45a79997998272d9cb87b198b829a6fda030a24d05a685252d574a5b528be9b4ba2a9b9a194a010a341895e0b66a3ac5b8f0c91535a3f7330b2ad9599e5c377d672b26f2680ee107518935baf975a25752b86eba8b7b213d4c9c7d85a877bd24282c84b6ac385344415c04296f8cc594fa64cf45112fbbb0ba82540dd6c14b942c283f1b81915c5be604e00c984625c210df80ecbf90a5d36870d3c2a7eab3279ea1d9b17666c382afd32a80f75bbae82a88e90977facb020d57ca3c707f2b5bd3c908387d412627b166e7661a4d0aa9b5863a3c17937ba4b5185b53d0429ff702b41b445f16ac3335070c0a48485a09f73140c21680b29d22b1f2640a154b5fe29bbf991b8f3e33720979123ebb1635a41501680497604f00b4fa9523dfdc4089944c132c8a3c715ba9fc726085721dab137ce90674722a0c2c9a5c06b5fd8841e52ec3bf7864496879224337c2a93280c3b8fa8262603f8c409865f80b51714fcbb05c432f8cc921648c8d46c5078857bed74b6272403e3e41870937f2349bd1bd62cb0f3271f436c1a4003dfc5645b635ef59294c752ac6e1267babcc6ce41b03713b8825c3fb56b5f5c3caf0988273dc710d5fb9397f9c257332fedabc0b2792c9425bd8f870f8838646b74c84341981df348cc00294be42b308b8896452929d917a8062ba8a275a0105873558a78d2a0c285923215754aa21b31933eda43236acba802ccba3ef393f90614900b4a4fcbb805b8b9baa12e65d5111ae5b286e7adde8ca263754b6aec5d2fe014a0c652d746aaf7c04e03b723bee690634b3e5c6a851a047f32c71cd271b424a9c488386c9ee72b1176aadcfc288ec23994c3c433e78498b77b51c247ab78680345ae281a11b8853acc67051fe8a502ea440a7c8e1cbab902d377327b930335ae700592c8893d2f57cc6e898194462360a855a8ab9b6f2b7e0a5267dd121e8b4bbd414470df275c2dc2535219587a5b87d303c1dbda6dfe8c467770360670ae19d9a8b338be95b8baca159e1623507d7c005f5198e86b645f472a46f2aa240a998b9a36e10b3cb8467b97c3504edb52a3fd30be8f4c833890f07c5a00d92c8d800cea8923fda8910bfbf1b8ca80a546da0c3c971bfb3943b84421f57386ee1e49e3133c6ee58cbb2df48e86f0eb45d7c1551d40f09f9bdf84c08c776a279f5f16167784ec7403204718d7fc13bd0fec
+74eb6e124102dcb3c69773c0337758a0e0ccaeaeed050964951e95bd210c481b
+Ciphertext: 6fc0a04b113abd1e86ddaafa7b5e3162d9982d6e9ddfc6d1f16902cd6f42df462c38f575967a0e4c709aad7970a49731ff5e9ceeb50568cc2174f665f8f6d2caf07c489a9bce484feb950b3f5c5bdfb299a78a602c365c0be30a35bb9912ed21f71fad0553432cacd7b608a785c136e72320b72b4cf2ff9e9ad2a8a09afeac39d5749076e5e683826843c6533cbd6d89b55e6132b2c4e5bebe5633af8828a6dd3983ebac93caa4e9e4f618538fd99d4a333595a0fc4de135111e4277e12aca47a2ee5a0caa5e7b3742c20f22cab1275b2a2d29b7465aa23b8a9dd9d0b99a66105cdeb664f1dae1d3632dbd9b9d0cb81a608d908b64b54826c7ccd324cd322906f554bec7a8393a5f8eec280182894c72ab095f2391c0743d80ca17d3c17687a99280b793c4a937e9def742030174385d43fafe5a85762fc08419faf844322e5a14353f250820e796c7934b178cb62d4f3e8a894b66fae816983833de661db18fb8611cae40d9b06c3e427f03bd555325579ecf2cad14003b8218a791989843d5d651fe138d25a6f84789457ab72f57376573d965a6b73892a3223092bb9557c9e5ce90fbfed787bac89ce20ccfebfd7e00f6d025a4c6605f7b2e166b304bb68d1b509e8cf1ded6958637dc614614a739c817ce6403cd94d09dcd9a567ddc203f012e6a27b36e57c9f56851bfd289d4453f9d0eb3c716ac195c6ea66c5f59e9373eb492a77628a6d4a73cce611016fc6a3dc5e3480ec0dbc1bc15b5125d866cee3b45ad2826d75cc4900eb6c77bc28be06bb93e5a93781b305abf8800e145f87ff8f2ad2f089729eca4af2c96cdc621d90f0c239a4181c624f67d21d4c760925ebc90ee469979c557aebb9710c44d9ba84863962137597ab5731772e45ffa00cb037c587341a29caba725c1d695cb4245676d1ea61956ff22b2a1e5217e4bb532e1bd0f358ba9b47bc8befa2883757969a77ef58bc61c547cc981d5b03fc9210fca51479c927adf2fb6c3744c74b477c00cdca7f3437caeece1967911bb806b8cbe22f7cdaf13995551b34b6c8640d29820a4a3f0c98941118d39951893b3df5308f39d3886801678b466d1e269f93012beda1f15f40a5bf8903d950df5e236e4781ad8f53ad7f72842a3bff3410477e13f89c174224018b908712f1ebbc70b61a2ea34ec28a64b632aec56024f3af6b9213cb8433d155bcfa694d73899552954b9d69525a0f020802df3e9f44f2c7058b53ef0dee574e2a2df2fa61eec1160cded0af8d257acd9e14a2d67690118e5714d7dea4f9d410ad6890134b1efe344551ba71aed16d8dfc439b01e59b7d814c8729c12adcaa848e0d053518d477e8d6b433725b2f2671851929611ca1d5d0d62f52ff8c7784321c58923a253a2fa6f0aa503f1b95b8fb7e271ec71fc55f012fa33a45b2d376078c9c61533bed1a90871b7a5b6198e51554c0e2a9759d45f90335a756daab049ee631e608a943d97ea093a3af728ae73de94d8221410ba90c5edacfea47b3cf758fa3b0b10d6b1813a9e9fa63a03a0833b9da32d61920283f2db27b14ed2f80f91d205f7e17eae4f1fea6ce5af07baf25b938857b1fb599482201b4cecd538408e08c021fabb28e55ad385b27abf9eb62a5a553f503a6e910b74693ea973feb7dd602f281bc964fd9d65be9f0ffea86b13f79cbe249a8b8fb020c6da1f2697babb763a9c75e9066794a4f92c07e03e28475882294389943ab13abe7fbd86ca6d7029da0607df8284cbadfcfd47b3778840247b670843b8bbd44827514c49370678bc178e8a0ac5b0e50893e0cf465e07fbe64194632ba98575928ccfd1d11787bfc11c59f66129a6b7b5f57d0db2a16f551514a5d3283e9665e2db9e0cb16de47bf9b264d2824f1fff5aedaa4d9eb4ee61791172a47494e459df9f11487c50c26b52a9e25e4d894a4fe94472d8d37f9265b15048341bdb80d1b13b557c3c2daea230708ef713d70e1e8a75083330b3445ecfcfaf9d34570a6d870c9f2cce87a17ceab73d674ce34b287607a26d96f6a1d53ae46ed2bc3d1075890e02a847fcb89f39ae22d46bd8868df47018517fb7aa664459594f181ca560608275b7902d99edaf699689cffe42f7ab38d983b174c493773ac4380f562bede2b56be502700032f2d23e73b14079b4ca6c11b61e6ad18bbd9048f1b33dd412581b0d34b644fabedb9fc0c6094db17b73
+Shared Secret B: e0843018596894e7d30c18b4f3f438e17b3fe73ab877c6aa5272bec765d4c0f3
+Shared Secret A: e0843018596894e7d30c18b4f3f438e17b3fe73ab877c6aa5272bec765d4c0f3
+c0e7c976d8cd8fcc99fe064a6f06c4f07f3f2e889224141910acd88457311f14274949bed90063e2797fbf8848938164aa708cee7a1617e6728ff2bbb696898d22546ccf669d6b759bef28ee26c64bafddd29dd48ca70207e227b8f3545456b166f2f72e98dbf9644962bbc1bb428d67e95e20ef5d6c374bf330237cb396d3a624808efa5a3f5c0fdc5003cdf109b49166b0db736a1e086a7b23302783c12fb370fb78f2ebe56c50fba3b939303bd40461a31767a361e19d4f0b0547e62ec1315fca6a538ad185d246b90f18ba866a5aa18bc4dc7a089f551f697a88b5fa75f58236bf57ec2f70c8f94a612ff0cabd8e1d993bf9ca8c742c59994b43f84937b3654a83d73620e47bf9fb35999b024a7d7c73fa348f8730855e87bde7db567f9baa29aed0b1841b46f6d78cf8d2743de486e44e39da76ad5e35d32d7bed20b7ff35dba1f6b85125d6899a6a0ec3ccbe3a83ff58ce39ff7575690def4c4195e29978b75c432521078cb2e9bd04b670120d8037a95f469e44e61f0abf427a2f90e7e086e3e9e2d0488ee955927b13edabbef440150a968800f94dfec49b4ce9612f3f82e73f7d23a801ee112fc35be00c237c589d92bce5341f864389cda9890782a64f2d5a35cdce1a54b5ac20d7cb1faabff329f11ecae822fe3f257060330b87736bebdd6a6a53679878f290e0fa2cb5f149ea089406be2bfed76c0cbddd513dece9a3f63ca969578c11eb684ab5c32ac9c39b70c03c9bbd8a4d89b445e7f893d4fe8e8d5e7b80bc2872e7c99e136158479f4d8229ed0334d88f774735bf92634b5c540a3c1fd199d0ed6c3e71c97214d1878dc593751df1b61005cbc3afd5bbcf49bf3dec3344fa18615030506206813f1d3aa829efeee31e30e3e76474dc4ff12d3dc3b74e324abbca1b2f656758b4dc77dc4ea21b83c77f36f98e64c7bb695bcf1dc4f6180aa9f62880a38cccb52785948f5dd4e41873f2a211dbd171f08094728814049eeb16e9af9f145a035a201e043b4e8c63e432ea4f13a7207b3e3bb141e7ae0a65c9811902134aaf1ed8aae5ec46d09739e9116914798b5bcb025904a6fbecc799dab3e5270b68ec068fbaa12717c6abda151a910d95f5fdc70fa5d356b3743821a89fb6808d359580413dd6657b6ac99742879a9d6a9ed61fa259deafbbbcfe9c48b88865a17e743cb1b2a43dba782502836b64e9ec1ea575ca70dc5d6caeae66811bf838cd3e16b30d124b4c1afa2bc663df3f7f970768f8ae15392386a00703bceadd3022f642fc86cb7d24452ec890276951f74a79b89a1b2c97c29f7292bdb13aea4fd335046aae8777b0ceb4c2c152acf512ae8a1dd389d66c3246b386e0376b640b931708280f3844dbdaefef0e0f19d5a8292af34424a6a63d97c5d0bd324262b8db3034c2917f304f52a7d47eb7f77585edc1300202c276d099168b176ada9ab636dac5653c4909b12ad75558a6f46a5412da48fba5e298c067717402d17f9f921d9e3786fbbdcc16bdf0701336a665f08cd33d66becc0740cf675379a19356237def5b75eaf56beec911bf8ffcb59417a69b0788964b0bafc1442f92e6c4921dcfbabf6a724ad00e5301386806ea243d002e760519e51e380fc1ceb250d7f11ff6cac5d279f7df89c42a0155a80d30cf942431c90d7dfd529d2b299c053a6c76392be9925900fc5eb650878023ef5cc59e715408078dcd43e04b8d6af6f12b78ab1ca7cf8ab306b128c6a37bd3020dff90aac395ccfd2fc2ca164155a9790cf660335064e8e810d79e344a115d2ff3f6dc19eaeb8394fca3cb4f1b9c4892c84798d10041ee79517cff067aa224ac7c307164c68f1750cde0a87ed1406f22942ff8b5baa930abca48ad5e528a6f33c7f5c9bd08b8e2580c1b735078f9691ae91d87d7ee5df03e4016ea417a05dd135859a98fb53911f599d53c709d527ad442406ed6aa64795319a237eb862c5e4f44c2aaecbb597b9dfc59f867f3f5853728f6073f5f70c6ea11fc0c33871279178c21a0754dd3355314a29082b36e6a2ffaa19fdd161f2cec180a41f01e6652c3c9c116e7e2794aaf9b0a9e1a8edb3b97ef475f70f3f90c082e6c436940df5085469bf1a0ae2f74cbc78ad612341dad839b98319e77ff71731d59d399055c43c85d3a1e071e9066258f85ff5b8d1919875f275d861680c494fbfeb09b5fe216e86f080205bac167db
+Pseudorandom shared Secret A: b7a241e133a1b5b2b34622c8524be454379dc7af757131d49ff3785b65524712
+2189938fefa52308d23c771d266a746959f169a9097471f222aef89808e46f9a82e2b1d3613eddb6b7f6230656323ace29c7e3c88b25cdf57838e8d5913f9510
+Public Key: 10bbae54e98c686a2b1712707038be8a8b577fc833a7a20c3016231a133f1ada4de83c05948491e8f0c5f0ac3c9fc347135619645917eefb008ab603cf8c79c59597b2faa681b99058eb9d8f14ccb6354111c61131499f5f50a2e55c6da6f9698e3c3ee1461e80754d63b9692ba41848ca45f431221d7b5c8e88960a299ad5053009378caac6875d34cb8c11432949cf1c7a7a9ed479a75626b4b74436a71bde093d493281f3496357bbc3f6c02d3d731413eba387341d2b3907e3e797925497933aa276f2625781282fbc3a93c0be567128bb50579e682426f11e89764042eb3e88d12cb9e63394d4b15af1322f5ab5c50825a3386394009caf792c0aca9c8c316bd16b3fec14783105b3fc19ceb850ba5a22aff947847a349932937657e0723e8a1d1fdb4332e25724f70b26e244c1d246ff65c237180d181301ffc03d81e299a2449036094ab1ec46d1e86c3d1c4b7b758e28445202d8b024d6ca7b9cc03b79200f6a7844372e3a90a4d431b5c1eb91dcb6a1316960cc25215e5a52cd9338afb03755c6c0a25295c9b5255e398167b325dfd25ef2b558cda802b5a717251b6bc7aa8e8369af1c851ef12321111cc6fed11acbd7bdf926b8287b2ca139a2c2371b95c0492055950dd39d3213c6c180c0e03c84c3c28a22504d96e17a6db0238ac92bb596771c9b3933a413935333a7271c3ae9ab0e36a1db7643edbc508315cce4828cf6833eb8f23ef37716f59b65e254caa16892d16b2ce0219c994c1b07b2be27d5cb4be678fb65aecca81e101519413324142c181643479b2aa64b98a08d34b1c2d15c6105482b18af1f76b6f437b75c42c761b108bd9b1bafa037c61002370846f7332e55e79464d029fba79389a9c1f89c3bcf29bfa2a86baac16cb0754dcac030e8f8c4f4ecbaa68b50cba5231e4381f51a26c26bce1559775807a730418f1849cbdacbb7efa891d91cbc195778be70ad1af67b029a7685771094f07aabca5b8c797aeacbce5e6ab0ef863903438ead7983f1d7814094abb35a024db54a20184db0db4ebcb738e1d69b95980080ccb504971d93716936456d13185a56a19cf35baca387c79392bd19b9620d386088f45174bb13b939b4c0e33dca702684395446313b1fc29667631ba3d1ae5aa98ec70b2590e576b7c4c76da0bb0ae72f903624214a6f918470777c43694135eeca95f94104d988488dc4a62a845f38d9cf4a6a4acd06ade4083d55093b903c91fa78576f028fa1458ae0ea13a0a19eb8450da3102b7937100bd3a64d5c39dc4451baccc9861a19b320768242a8bfccb351e763572018546b72a3ea1b6d27921061634c87be7c057e25e474893bac512cc0cdb75e03e4cfb44511c56a4ca7789390fb5d7035469e2c4676c9b518130846c2124947406f95362ec571e9f020e740622fc41a35a85e100370f728b8f2f25271b133f0e18f226430c632507c93a9fbd24c8256ad66d75e3db42feaab3943d55ac62346a2dbab816a59dbc206d3216ae7954490f56b5aa8ab00ed4532eaaf18057ea04b0e783908ce3067ecfac4e5b1b93d34b4a34010bb95bfef5c00ed115b8e9b0340286356ea11420438990218a939b6e727b4776c7171d6a990447da8c3b8a75b823be3b78bc91fbf95789a02b7bae062880a14754bc6d519c4f50aa1fbf402e1ca2d82c986e14514023126c90391055b6d4b3c5e80973416c6bdcd9332f0076e54b5491eb5b7b752ae1e418d96306f4e7986fa9a4dcb52b92856aa9df77742113093b7a899a627e6b860352c71030918dd2c1eab0942575402fbd63e09b66429a156c7c546557c3f8368abb8f0ada255732667ac928263b9e868acb01bdc845fa737bb26d15951680ef79634c6271e56b10f786b33e5d636c94caeb71c2567d22b72954f8cb3627e1c3b1fd46d6c83bdc0d746998649142953d5737db1a0abaee54d2f2a2391c6ab661348fcf5c4b535bcfe31b8979b3e08d32380d5c6ef532074e57942b45f0d6b2424535ac7a6c5a0563b5e60b4348b04e944af0fca476b5290d55ba523dc6eeac9ca826918c9d74db1c7a244dcc5f4227453d6144946bb2ada0c45039ecbcc374341b3cfb700d9625430b8b18ab279ca91b0fbf0b571cc6597295b4c221f93e383587778e985c630d700ab483b7cb277d37cb7276cd3b644c902e953955cf17bdbb3cff1628e5f125734d193dcc8d11544c453
+Secret Key: cf0021c3e391c4a17dae924bb0c756b240a5169a9e1765acd819c8cdfc6a004acc2d0015e84964ac6cc6993b913e6936f27a3cb94cba1d2abfd09abb0b3a2266f9c6c2193d6529132db231cf5a8968ea5963177f3d97069f8215330aa37ed95647c7943adb9ade293e96a8a463695e2a1b58fa0ac19d847430b8513c65b3078c16b1a7271bcb01bea2781634990abc10528cb9a5a0a3d72633d36c4b0d773cb4635475d086c6403ffa9700d69778f3b09afae27118e180cce63a1121506a698a959cb3404b78a13ccd9e2215849a5c734208fe22a6ea811a78ab6a094b9de801aa23907e27262d426566cdb322dbc8702271acd8536c1725cb6107c01c01909ff4402352927ea46475417a4e9b367ba6828d30a6f96274b5c372270b7e98d01e5f8c03e05cba1773422500ade6a88b67f6878e4a50b1a5a91892a43ec89cb47521aa7bca3c756211460eba8519cc6c54a42b77b220097c70761fb821add1c256156cf5046c47f2b9a7a16c3810a825071089161ee2150c2417bffbea4f1c88bcefeb3aebdc712f76a97d947e963340c8861300fc0f4626629bc81873479b1580016522c3e325401ba89c2200a41f8a11a3d416a3f699e90c962f357776837ec38c288af5bdb14bcd8b0a18ffd5380e4c1e6da3c26f82886fe0cc51ab790bd51be1a00e78138683a741bd32aa8563bef6aa643b4ab743c06bcbc670a127b1cd40ac924c26b6ac343d395510768f6a1b80de48ac8b6a09765591a49957433783f0cc601424897262156d1548e1c49e5869c96413ce512570c1ec88e0859fff4296c6160967d6c8af6a4f2b8b91f5d28834bbb44e4a7a4289bbd1547f3a42cc073541abdb83c31588582a3e09ec4a2fa6524b36a4e3bb059cfc9d7e03a965ebb3caf237cdd658350ca28590220e102dc8aa65e5398b58874d02939dc1e81fe51463325b19db480b13196f9508a9f0f075699a6f31a584459114b00528da6a36a444146dd92c76d93df8391b653c386eb01e19053976ac77a30385adcaaa5f90a1d5d291bafc35d083543d6ccdfc6278139064c155aca20578d461b311719227c6c247426995762fb714b2852122a234328aa38a219807c92b7ca595487e4908237662601cc4a4f54cea733e827275b9040638649284bcc302386c98782f0328c19466028195b3b41b573252b40fa6be1dc36721a89c75161306852126aaa7624a471d0a86d6c30e20d7900b259a6df530f412139e216982227ffdb23e094c8d2a08c65f571e469c0ba885773012af86cc54827b5c33092204a0c97695612868cf0f02814c07c7c1468044e101ab554c87eb0f0e323735c18f37ac39fa561db0accfad174a8c6cbcd08677cb2aa92bb58c2ed733b6c595836857a44075b5b7a93b01b97cc284d94979a395057550c4a0a0b596d7b403192e87d4b5d0570177f4156b5835d0196dca48823b40230c941e4e91498cfc14399c3fd3b01a5d963c43269dcc2b121260834aeab94ce21785977f47b54f967049d135b5f6c0aec7729cdea05275f3cee9d044c3b776f676877dd8beb5c75364da8827f876b9a1425ac22ad8b20d260c598f26133e5ab6139541462523d93243a05c0b03936a1a5092fa5c1e1ab583c0b318af98c5bff8c13ee03f5fb477bd4a4dee45598cc95c06b807f520b00bc33614521085448f4b6a9c64eb1408147a6b2bc18bd8887bd697b2e35356a865fd780a21fbc697116d62243f95819e543344fe58b96b4b14a7830c3440961813721c624d3fc04073fa2e902ca41861ab10c784d10784bfa154651400b3f3c9853bc68ea9c57a5c5bca666abd690dac55666b27858a4c1bd29bb4a5232b3f11c2daf4b7fb7052c3ccb7b1921d9003a7cd8b2297c23ab5413f758c8d1818a6bcc10ce15b71e9b3bec9471013a1ae6bb03d0b13c5df456919217af19855e724c10795473257b09dd6554677875897154b7117e049a7a0e16eeb4ab5539916f4d47bf6a080bec47d270965b6f90965c804bb06471e3b25d0f77e75f72a0227cb731acd443a0b3fbc600cd5b7ff08342b590c44e4b150c6153336406449c6295a0d89199cddd4268333cb9d1327be006337d6cbf238ba43da2d2f1c324af5cc24e6497dd55782a16ad23a23c27958db50a19f95204c54b06ae0ce282a9c7918bc10bbae54e98c686a2b1712707038be8a8b577fc833a7a20c3016231a133f1ada4de83c05948491e8f0c5f0ac3c9fc347135619645917eefb008ab603cf8c79c59597b2faa681b99058eb9d8f14ccb6354111c61131499f5f50a2e55c6da6f9698e3c3ee1461e80754d63b9692ba41848ca45f431221d7b5c8e88960a299ad5053009378caac6875d34cb8c11432949cf1c7a7a9ed479a75626b4b74436a71bde093d493281f3496357bbc3f6c02d3d731413eba387341d2b3907e3e797925497933aa276f2625781282fbc3a93c0be567128bb50579e682426f11e89764042eb3e88d12cb9e63394d4b15af1322f5ab5c50825a3386394009caf792c0aca9c8c316bd16b3fec14783105b3fc19ceb850ba5a22aff947847a349932937657e0723e8a1d1fdb4332e25724f70b26e244c1d246ff65c237180d181301ffc03d81e299a2449036094ab1ec46d1e86c3d1c4b7b758e28445202d8b024d6ca7b9cc03b79200f6a7844372e3a90a4d431b5c1eb91dcb6a1316960cc25215e5a52cd9338afb03755c6c0a25295c9b5255e398167b325dfd25ef2b558cda802b5a717251b6bc7aa8e8369af1c851ef12321111cc6fed11acbd7bdf926b8287b2ca139a2c2371b95c0492055950dd39d3213c6c180c0e03c84c3c28a22504d96e17a6db0238ac92bb596771c9b3933a413935333a7271c3ae9ab0e36a1db7643edbc508315cce4828cf6833eb8f23ef37716f59b65e254caa16892d16b2ce0219c994c1b07b2be27d5cb4be678fb65aecca81e101519413324142c181643479b2aa64b98a08d34b1c2d15c6105482b18af1f76b6f437b75c42c761b108bd9b1bafa037c61002370846f7332e55e79464d029fba79389a9c1f89c3bcf29bfa2a86baac16cb0754dcac030e8f8c4f4ecbaa68b50cba5231e4381f51a26c26bce1559775807a730418f1849cbdacbb7efa891d91cbc195778be70ad1af67b029a7685771094f07aabca5b8c797aeacbce5e6ab0ef863903438ead7983f1d7814094abb35a024db54a20184db0db4ebcb738e1d69b95980080ccb504971d93716936456d13185a56a19cf35baca387c79392bd19b9620d386088f45174bb13b939b4c0e33dca702684395446313b1fc29667631ba3d1ae5aa98ec70b2590e576b7c4c76da0bb0ae72f903624214a6f918470777c43694135eeca95f94104d988488dc4a62a845f38d9cf4a6a4acd06ade4083d55093b903c91fa78576f028fa1458ae0ea13a0a19eb8450da3102b7937100bd3a64d5c39dc4451baccc9861a19b320768242a8bfccb351e763572018546b72a3ea1b6d27921061634c87be7c057e25e474893bac512cc0cdb75e03e4cfb44511c56a4ca7789390fb5d7035469e2c4676c9b518130846c2124947406f95362ec571e9f020e740622fc41a35a85e100370f728b8f2f25271b133f0e18f226430c632507c93a9fbd24c8256ad66d75e3db42feaab3943d55ac62346a2dbab816a59dbc206d3216ae7954490f56b5aa8ab00ed4532eaaf18057ea04b0e783908ce3067ecfac4e5b1b93d34b4a34010bb95bfef5c00ed115b8e9b0340286356ea11420438990218a939b6e727b4776c7171d6a990447da8c3b8a75b823be3b78bc91fbf95789a02b7bae062880a14754bc6d519c4f50aa1fbf402e1ca2d82c986e14514023126c90391055b6d4b3c5e80973416c6bdcd9332f0076e54b5491eb5b7b752ae1e418d96306f4e7986fa9a4dcb52b92856aa9df77742113093b7a899a627e6b860352c71030918dd2c1eab0942575402fbd63e09b66429a156c7c546557c3f8368abb8f0ada255732667ac928263b9e868acb01bdc845fa737bb26d15951680ef79634c6271e56b10f786b33e5d636c94caeb71c2567d22b72954f8cb3627e1c3b1fd46d6c83bdc0d746998649142953d5737db1a0abaee54d2f2a2391c6ab661348fcf5c4b535bcfe31b8979b3e08d32380d5c6ef532074e57942b45f0d6b2424535ac7a6c5a0563b5e60b4348b04e944af0fca476b5290d55ba523dc6eeac9ca826918c9d74db1c7a244dcc5f4227453d6144946bb2ada0c45039ecbcc374341b3cfb700d9625430b8b18ab279ca91b0fbf0b571cc6597295b4c221f93e383587778e985c630d700ab483b7cb277d37cb7276cd3b644c902e953955cf17bdbb3cff1628e5f125734d193dcc8d11544c45332b4fcd137c462529e3c686f7872ac45003e99d92b952ffa3ca84b65fe43999d82e2b1d3613eddb6b7f6230656323ace29c7e3c88b25cdf57838e8d5913f9510
+c4cd71c42568d623762266a4192863a47bfccd3a8129292d88be0e0330b8e7c3
+Ciphertext: add3b91f90eba438588d42c606bc4ca5a1a3eb68a065e4c78cd6f5e06ffb21b04f7d21f5b84f157a922cef24c6dd387f7dab40819ff64a19ea6a7ac5440499b593b6f0d15232c36a81bfbf1dba0975aa108ccf92e83c8042b7d3c8bdb2b9d5fdb7cd57bfd1baeaf829a6aee9be9bef12542cfbc3f6d3ecc8f8a035f3b26d2d365af39e512cd7c41769cbce0916e7a8797eef18f56c881cc3f22c2aa22fbcad9bdfb6c579f7332ef4c9bd04ad6ec8260c130b7f6115f30f2d9acea538870110f53853462851fd6da7cd78929171dd9d86015230c978ef5425feb66c0e7d3b4674c33c76b28cac56d50bf8fb0f33accca2ecda4016f61964dca6b02f23142c335a719e80b41dd2da0fa3e4c046c60f650324383dbf0054613c0fb3a4d5d5bc079ba3a52f499400992fa551121e1c882faa1597c9c9aa56c922997e10eb7ee152b9756ac427a94459b295d7b634313485ef952da7a62f6656dc5636a9f9c9557bb24a902712804e90c2350467f5e0f98e1caa7eb607ab75d686ec02ca4484e53f47b02d0d29887f76e077d299c40c592e29869d0af88a6f492f16dacf42331237160dd13783b963e1e8575ba5b0333f08d926d4b5398ea06b958777f8eed6f871623979c60f027cf6479de6b0b264ad9444969e162ce5caa73323d7e5f975fe27a2fd6a0744060c8009de9d7485901e9f94fa534ceb574a20baf10e83fef7e6c42cf537fe31248642da27bb1ff584ecafbac4afa31b618a261ee701f6be9b4252f8a1bc5585b3325a71425e4881cdba9ba9a51dea290978d08cb27d7d66b9fadaf4201ad2809938dffabb764797eab9ab3e414e651bcfbc28150b2c24bce42b2ebe8416888c6bb5eeee303aa3cb51b4adfe85d2b10a3b210f649e876220029c214fc2515223d092e071913cf9f41333ff96a7cd4ca1b4ddd8fd131c45d9e3d131702716cb5326c16afa68f75e96f8ac640653761b1e985293ac807413097fe0171aa938c37ba24eaaf3e804a20aab1ec88d29adc30b21e64bdb9c8fa5653b329f2d35a61e0a03f606e695587e5366e4f6fc110749e8119ddcced6f3eefd7c644f23756868250ab8672c2f3d3a35a56fc4bc9d08417b123fef1ea02d85388a7ab553a75723fd95100ecdf6aedc15aa4335210fd2a2d72aef3b98a23aadcde51d2f2ac40d18db3bd81b02f24bb628da360e7e08b41007257ed2cea3a0cf7e46dae0457aaaf9f94fa3ed672f2a39c4316146b778d2dc5e112668bb03edc02ea6a87f64dfb4b87122dd5cb8db4de49673f644543386d605dc1f6a80fbb05c8818c56146245f272c25dbaabc7b9408b66eea1c39bf8eaa45bc40a75f968daffab5def8528fcd171116ec1573bcfde24058233d5de480b93c8010e1a9dd2555dd911ef1e75af9167fad115325bbf0b0fecdb48d7b1982d7bd7d8a61f8486a564e70c48abee38216769cd22d53fa19ec4b2d742bc7a4aaf8dcff8a0c7d53708453b9fdc30402c25e3c403ac2a1e0d296fe1f1808855727e290c2b6324dc81d3ccda31b5611584f320097ec5dd32e0a668d8688bdbdbfa90d1cab5752018697fb35904728e55d28906c934ce2ae3f487945baaae95dbe0f64f62643daaab96c4a8833ec5f89461d9f59c5d992a0ac73997842fb943a8c1d98ac167f5c010bb2754ab2599a5d4effabff3e4b02333102ef15fb16af1d91035ec1e7e11925a9a09466cb2d35ef0385516590186c8d8eae49f17454d199e37b97d6d4a4d381a8ae6208aabb8a12fedbe51a3db24fdcb87ebefc3322944c676df633beff00db2d2b7413367fd87c2a69cbfc792eb3a7ffda6565199997e0e5e4e8afd5004541b0086536c6ac6f666cf719cac4bbe296b8cb336f9c01b87ca90c3d082385838eb9bfbad15739c0ec6237c92bfaeea5af365bafa0d9c5564d354d5537dcefd9ce8ea6d196d2cbd370e3856d7381194461c9881fe1a5bd5cc321842947530c89643eaa66f7e3738880d494cba19b0c53499aee391fee832b469e6662145b7f9a66928baf372b9a76adf915d67f09e758888d928bd2ffb1ddf4c636a8c47ced8b07ce738f29de4f833f8e1a393c6c8408869c02a092360dcb5ec2beb0fb84f1a0d6591ba93dcbc107aeae18de691bb663ccccd4376e4e3d647d9b123735f20e821b3300d301381abf0ee83ff080094672ffdb5d7d4f1fc50e78cf30a746d35a1edf9e3fa811a5beaae0
+Shared Secret B: 2b0b937c5ec16c2a42a0173c3941a241011e8dad621d005b4c0354b3340eb3bd
+Shared Secret A: 2b0b937c5ec16c2a42a0173c3941a241011e8dad621d005b4c0354b3340eb3bd
+b3c37c40d5232f9b54f2042cc4212da1fea9d5f87981da61776b9a438b406f997f035200286c4cdb56ed3dd208ade0db940f7b5d2854d147f12b6d790496698dee36015ebff61c92a3f5fc80e0cba131717d6c23c01f680b92b0eae722e4dd94e36d40d99b248c4f0e4f67404ebf63afd0e9accbd24d2c8b3827354f2c0037736063b4e041ab65ce8611ed1d391f517d42d43add04a46b7fc3e8ae4f1fc27f16b606ea69e98d9e3a84c0db999efa55f212456e83a52de44d954f6e633e92cb2cdefe1aeef925cb2ef7906ee0f2d812fde71dbcaa6c6738632dd46a9707969a856166b74d39a55e517b1f797b663ce390db36b28ba000f5875eade3eea23c3bf6c4403dfe774258876c1883f7a1fa89f19e5e2d584fa92c2301abdc6f306e66708d85f0197f48ec85bbc020c6aeee44b5ff7c60346cedcc0d3d4491a7c8f1e0bc21baa814d543f19b0e21585322a28e110851c3585639d1ac7b070ad7e0c2777746f5f3bc6efefa9aa517ee57120dfb98508e17566b65ff6bd04685b4a08677ace592d33e821173f3fd128a48c60b886a6044eb8306b10cb3fb5fcc330a7dc83da0967b077ff3e889eb284a613d38e1db5e694a16f05d12bdd03e012794e6637ce2a71303aea34cc07799292cb1925cafbd10e11570b5a77cb5222b8490cfebf697d8eda3bb985b28181e53d514da03b435ca80c6ab5e05a24bf75097ffb75671974447e71dc2b9ec55ab483c764d887f05aff8d4e0d5a9fc572cfb02592a880d344f649c14bb0707e265f50df285de5b86a2143b29b009a27c322f8614f29bc1519703330e89d99ee4c21fbe8b1389819d9afe0e3eb4bffdce185f425938e109f678317f1bc15245304801ac06498d60cd5aaa109ed30999e2db70ae800b5ed81550e3188d2c1a11aabc8d79cc215d83e6696114603c81ae986ad7447979e61bbb59ec64620491541a667c110276e8bfe1112af2a5cc2894feac44e748e59ec27ba62601adc3386451bf794f63cceeaf4695c00672df7a9886464a5e1b81c67b14d68f93a792baafa76e9d4d1e4c36e66004cdde39cb1db5a9611ec190108ec4fa11fd722c2146cf3bdf185cd10157afff91963fe69cefacafdb69758a72ee96b1d767f2e664f60894be9f49a841d885524e1ced1fd11224fa6c9507f495fbcc8a5fb3293219cdcc398b3d6258d2995996a2417eb65bc755f2781066dd57cf3261aefc62f363a1c5879534a5a04f0586d57f18fe8bd1af6dc548238e0fb85f4fd35e4686b369a0cc22ec1851c33facba8e033d09f09fc85c5db194c967d1a61b5e6c7625b74412a3ef6272ca86125a0e01358ee9a22ad15eb19417d3499868eb086337b3b0a30202411326f4a737b54f13c2253eb37dd32a0fceca907e211c13a94008a9b78d4737ac16a593e830200138dd3fd2f2a50b14261fa8aed6726d11a14658af893d685d7d5c70dcbbebd2d3ace07ec9ef307c597a03e70b8d33ac1b72f63c1017c79a864119038ac5357aef466ae272b9e1fea08c456264c9d0d6fc24a13db59a1b203a83e5966f856c6bb182930e47828a76b170b8fb26e84bb322c33c2a468ad5278242179c8af14353dc6bf1137879b01f27eedb831466ff4f2bd24046ad1a3d9979a1749b1a0a92bd399ed87573c3a5e0462ba8a0c324082047d6d526900bdb61cfdb80052ae92c801ff23d86edd32439aee092b7e1a2c6484fb76d12860d3476b2925f7a2fd015505440a2edbcad722538b4294678d849f06785dd7a7b67e0aea2a86394b494f6a287bd8548a7318a7345fa9781ec0ee49bf922f76bcdd91e212b19fe63bc1c45937cd73757db80dcb3491bfbabf282668cd196e9c80e5e725ca1dfbb969d9f1644f77bf709d1a67ec63a008fe0c857f50d0b02b1363bb26243b645e60ae363b72046b566be9e3f74a6eecc046e7929ee741454ac8cfa789b8edd201e22cf0356fae3b6cee0978d37eee27841e177df479242122e06ac5fdde06d61f48338dca653a6360e3d33a5535918cb9586854a3ccfa59aa56dc3c27a606ca77e81f5882171ce1ea288f5c75b9f99b3d9eb22d143afd99af2f3dc53844bbd468f5a7d02940df15b3ae046ce9165d2abafd62647fdf254148586019a835a709207eab4fc309ea0e5253c590a9828a26eeebc7f0ee539d42f91bbe46710ad548111aa5f42c6a412fe3db49456caf18e2bd95ab36635bd05
+Pseudorandom shared Secret A: 3b58aa26c55940f4d6adebeb12cd308bc928ee39a17e28fa49600221cd62ba81
+0d3d4dc5fa820395088e60b5ac1d1d9ec2c09f21f878de6244cbc2dc6be1c6f2ed78e66e5449c3742f047c721f05dd635f59a4b41fc78b69938971c5dc65a842
+Public Key: 4839126ad8045103b89776b6d2935d374b93b06175fc1ba9460b07d42ca450b491f79c3f84ea2df494436cb4c7159b8c4fcc6e6fca7654d9b90ee3375ae765ce6834ad099a2d9a87c5a3cfb8b276c279739a92c76946366c5303ec5c009c4b41af0955152a09988315ce17b1172624207172cec75b9c86c9d1b76137202dc0d1041b4239bb246f13b36be602bd28f4c998e684fd98a10b411504e01808800977a64191c75dd4b437f9140665a82799562020bc91c97b7587a848816cce54d1ce32d7a304c59025e0620773192a904eeba7425852a9b93a938b745a574215ad8ca25aeb6553e68db5705ac36b3a85586862a606c715895f917b0d8c3469264880c265fd879a75e0987bda3fdcecb755b513b8b219346b2709400b481acb3673a876849ab68ab92d1aa639451a18f6942d56215643b5fde3b65868c72558b25b5b6b430ca105589f8185672470732f943918a5a2682b4fc7432e5c70a7af24c093a973fa09a0405761d1188f02739acabc613650bbc3328775f89345b391fdcc965ed23804f2778e323fa72a134b39a26feb0a531479109416ea23b86f7229ad38b6a0b390bd060c8446882f20478995ca7244a6d7b3a3e9b6aa89419d549ca4d93b65a477c8a3a62823b49f213cc357342ce556ab2a77104b6970e9868246a78dcae98b65244701baa3072ba302395d506975d01c89ca10861a1b0059a25d19e64cfc79155d80917c960723f880ba3c657ea14819b12c3d36036f5c60fc6340d589386696aaddd862639868b308bfa0fb825ce79693d10db3b0a1702a235fc790ba9c41ad30721c408a2a7131559b449d6513a1d37f5819a252c138f346842909039d2971f3f4a7c5e80b3ca21531972131196355da40f3784606889aa9a112d4a19908739c8cdbbe32caa96ea20282243311799101e7c2a7a922a193c23ee32709c6045d5c8eb258b62e3c3925584af071279bda7f00d196a693b5bcb232a223a0d2422d84557dda2c371c77b26aac7384925d77d0c5096b6ac66819854c06a9c5cf63292ef78cbfc8455c3e4cccc003a0b6d5705962b739ea5870c91a6907a09d9c91e0a09e9cc6af53a28eadec3f643461794b1dcde0b9168014a0363b51259d7652214df216fb7219f99212604a8cc7a7b60e1979cbec077bf22271d65efef40f19d800967bcb57b98216c939d4821c5fb710f2b5934077234fe5b5b0315573f275356a92370585d04893ea6a9894b755c4a5c52adb95f38744c3f047b171c7bd9ab04a5724e3b82720671f8c686f7e6603c1836fc0696b231175f2416fa317a34ad4bc9d858abcac5abf0924292a243adbad5b19a38ee3549c4739fef2290994c5b10566b0f0394d1568a07bb6e9420657c1787ff450f7d60a3e204c4b120718558f99042d0b962012203e41011c68c5cb2ff05e1fcc095b793fe0f76790ac44e5fcc88f774adb60961d681622d978b706c73a84119639819f07d074046103373d00d18fd9588c66b13fcd25a101a1b9f0f84dd35b092e5a7689045f53b383a768b13e060f712712bce37bcb06571360849223c856a270f45027d77806e2d5099a171cbdda0b43b0c4122b5922b239d4d03ca1a374dfda60e778cb71b60e5990b8ac08b819a9a140c255e2998693a80dcfab730dca167a1aa5df895621f11c51867dae49881fe27ad8ca94dc52966b813a5ae254cedb14e43343a6c560e2767a96fb79736c3f02a3379e829fb702ad378a8a61f49caee772df8c70fdb7526d576b2fa595cc067835db71ffc3333e963b62d41f122bc6b835739c876d3dd147bdf5cd93245220087484f561ed21bf4c171445b3cd4aa9ac890874744578dd2c2713f70bd9833a62955597ac935426730cd89ee603c99feb033031cc3d09373e699038eb8fe33821896ac5b218c7e57c2fc5e3cdb79ccf3fc8c7d9bc907ff708e8f57c74f6073af094ae76b807b4655486ba2f934807171f822ca41ca68a4fc80d5ce381d2c20b48476007c12ae3ab55914a694d06848dd6929c17c82f1c9ee7352275fb2cfe211eadf73bfd785b3556b7bad8258aaa6aedf0479a7455e0a87c01f43828247357d953d78b2905d325b0c1b4a77a12ce0022e4b9925b07236e45c572321cbdc530032b797232765ef293a0745e3314c8a3180129371efff34bb77de0d45d9cf2eb128256a10ccd32c2faa0b4af995b61ad5adb7abea9aec909
+Secret Key: a135265321554f92546ee70421414af86a9b90006d21a8149107c64770b53fc82a8b8b28d38573956008164a41ac310d2bd1555dc61e566c82efa58db78a87edf7c7d432b145235f9d305d5a1b06b18a8b17a6334c02349af2727b6087c453ac128356ca46b945520f67c51d7e9c57c7d011be85443c006f486353535b0a57c916edd39116b6babb304e7fa32d6f09815a7681339503115b9f8f90ab4367088e5792684057c4018da4878a9bf90267572875341c5c945e50cc0d03d1032c0bc1403080729108a60c549e3c6fe5242b02168771a388eb3665173a853841ba4665705da0069af1ceb833c960e70ee734c840942deb3ca9cfba03c55621861b1f5f892cd3ab1950674354472e4c24b3eac0ccda134c8f2773aa721bf182c77fe72778dc2e814bb25f17337989042b8860b1c5bc256b6d695b25baa14b4186bead5a7294d8bc6a0c881523264c2b8b793987597b5968537c7f75aa9c2398e4016410dbc2ee60c8d524056d702ba0d6ae62d668d82c188eea8d8216605b18b86b199e65902ac75ca27b23882f4907eb03583e407ddfa46d992b612d505d77c32d6dc504285518c02b5d6414adf03c7f56a613b696985c175b77f16ec2e5be56cbb1525983dd072c2f041ef7579bf3cbcaf773b9f08aaa8d4bc7c923a2fae9a7f67285ad349168c3b360a93262fa7d330a7f1ee34bbfc478ff623922956fc6c839f02c6dec03bb3c1b55ee3128c1005c8e987afd9bc64c4c6381c02007d8508c8b8beeb35c0f793f5df55ca2158b66a87dc4176b56b0a4475a75947449b8a8cba2359f526cca0b41ba7011b7ce4b11016b0c12443f0181c124d485130051a87b3fa7f14ef574c238b479f22513be5b531b43a09336bfe770143ee84d505bbd0510480ddc5d2642851fc91959da5f8bb2744e7bbecb5c72abd56a4460a90df2ad438c3ee3e2a205c15a296b06e47a9c6812c2ada9b9c3070d0e641af3d9260c49cea7d33d58ab87d416bc82c83fa6f370e7f2590ba2291de19cbc3460ff53ad0a2c232ad6cf64ec33c3c5cef31304ccc5437cfa7e5540167fb30a35310b9a4ccabe008d3ce2389d534656761d68a998ae783d238452af4567e3430403d585d1b401582852fea3b56da24903e1abb1f287234976ecb170d36823f545178ad4bc9a426fef31436c650327a4104fd77dfac97b8c25c8832360fc7c5a465392c3c6c0bffc717ea66159489d76d0036bb5c9bd484071131643b6018462051347c21f4738df3c7014e16049d56f06e448eff5722ef73bd68700381bb1a582a7e9e8a27161511b550d04d2679463255f924cbbd17b96bc4c13365a3d8cb9cda80511a75a04d9381d18379879127fb35932d85b36ba937b0169101b3dd2f245b43a4d2e13ab5a07c993ab9d3f7a69cd9874d7f031c651ad54fb9c11e52f57945178f85d8879c2b1e05e8f61c6a68c553910610d063e024416310c8710838eef2c469c5a5d72f647a59a1b6f75443ef3a701a854bf4c4b70b06e5f4011fd3b1e2a751a00017b0ae3988e6585073474f10564f28500b913b203126c027760c1e52305fac46c612e2e3350ff66815829c3a5576c859290a6340df6161a26b1c86d04600781bd0440805db19ee41954dcf63a4c051c6d6800e0302d3ecc21eeb97207b23362fb336df313fa00940c4360c41705b1183596e18cd3f8925e7bb1511059b031ab7e003e91d6cd879068a662873e5893d04b9a5e68b0ab4524912398cbb7340ac8c78a551178803372097bf642438358a9119a4f05aabbf6ca56f1439f964b3e43e92d8683380204c5b7373f78d3704676c281d3535d230544a79613385ec9f5c5b8f52661f74134c890ed3890e4d567c2043096f65b852408acdc7b2001718c1a94b8716c5562b20cd7c7817acf2831433e4593eca897b9941ccf657de22361b0129024293fd61b3eb8468b6f07c8b143b40c365f88c7a7ada2a9123784746b999025534408ad347a9d3e5c8154140ca723a4af70835c36b8f22cb97bcaa12d1313bb0631cd34c45495b5580122dd3693b2583948a287ce1cad2f43c64b60aca0674f2af71846901d456239755a6661874eef5c8bcec7ae168452be18784920963dd42e128266dad63497f3c6e9bac0742c30544a03cf893bb2c79efed147f0e9ae3ca85a4839126ad8045103b89776b6d2935d374b93b06175fc1ba9460b07d42ca450b491f79c3f84ea2df494436cb4c7159b8c4fcc6e6fca7654d9b90ee3375ae765ce6834ad099a2d9a87c5a3cfb8b276c279739a92c76946366c5303ec5c009c4b41af0955152a09988315ce17b1172624207172cec75b9c86c9d1b76137202dc0d1041b4239bb246f13b36be602bd28f4c998e684fd98a10b411504e01808800977a64191c75dd4b437f9140665a82799562020bc91c97b7587a848816cce54d1ce32d7a304c59025e0620773192a904eeba7425852a9b93a938b745a574215ad8ca25aeb6553e68db5705ac36b3a85586862a606c715895f917b0d8c3469264880c265fd879a75e0987bda3fdcecb755b513b8b219346b2709400b481acb3673a876849ab68ab92d1aa639451a18f6942d56215643b5fde3b65868c72558b25b5b6b430ca105589f8185672470732f943918a5a2682b4fc7432e5c70a7af24c093a973fa09a0405761d1188f02739acabc613650bbc3328775f89345b391fdcc965ed23804f2778e323fa72a134b39a26feb0a531479109416ea23b86f7229ad38b6a0b390bd060c8446882f20478995ca7244a6d7b3a3e9b6aa89419d549ca4d93b65a477c8a3a62823b49f213cc357342ce556ab2a77104b6970e9868246a78dcae98b65244701baa3072ba302395d506975d01c89ca10861a1b0059a25d19e64cfc79155d80917c960723f880ba3c657ea14819b12c3d36036f5c60fc6340d589386696aaddd862639868b308bfa0fb825ce79693d10db3b0a1702a235fc790ba9c41ad30721c408a2a7131559b449d6513a1d37f5819a252c138f346842909039d2971f3f4a7c5e80b3ca21531972131196355da40f3784606889aa9a112d4a19908739c8cdbbe32caa96ea20282243311799101e7c2a7a922a193c23ee32709c6045d5c8eb258b62e3c3925584af071279bda7f00d196a693b5bcb232a223a0d2422d84557dda2c371c77b26aac7384925d77d0c5096b6ac66819854c06a9c5cf63292ef78cbfc8455c3e4cccc003a0b6d5705962b739ea5870c91a6907a09d9c91e0a09e9cc6af53a28eadec3f643461794b1dcde0b9168014a0363b51259d7652214df216fb7219f99212604a8cc7a7b60e1979cbec077bf22271d65efef40f19d800967bcb57b98216c939d4821c5fb710f2b5934077234fe5b5b0315573f275356a92370585d04893ea6a9894b755c4a5c52adb95f38744c3f047b171c7bd9ab04a5724e3b82720671f8c686f7e6603c1836fc0696b231175f2416fa317a34ad4bc9d858abcac5abf0924292a243adbad5b19a38ee3549c4739fef2290994c5b10566b0f0394d1568a07bb6e9420657c1787ff450f7d60a3e204c4b120718558f99042d0b962012203e41011c68c5cb2ff05e1fcc095b793fe0f76790ac44e5fcc88f774adb60961d681622d978b706c73a84119639819f07d074046103373d00d18fd9588c66b13fcd25a101a1b9f0f84dd35b092e5a7689045f53b383a768b13e060f712712bce37bcb06571360849223c856a270f45027d77806e2d5099a171cbdda0b43b0c4122b5922b239d4d03ca1a374dfda60e778cb71b60e5990b8ac08b819a9a140c255e2998693a80dcfab730dca167a1aa5df895621f11c51867dae49881fe27ad8ca94dc52966b813a5ae254cedb14e43343a6c560e2767a96fb79736c3f02a3379e829fb702ad378a8a61f49caee772df8c70fdb7526d576b2fa595cc067835db71ffc3333e963b62d41f122bc6b835739c876d3dd147bdf5cd93245220087484f561ed21bf4c171445b3cd4aa9ac890874744578dd2c2713f70bd9833a62955597ac935426730cd89ee603c99feb033031cc3d09373e699038eb8fe33821896ac5b218c7e57c2fc5e3cdb79ccf3fc8c7d9bc907ff708e8f57c74f6073af094ae76b807b4655486ba2f934807171f822ca41ca68a4fc80d5ce381d2c20b48476007c12ae3ab55914a694d06848dd6929c17c82f1c9ee7352275fb2cfe211eadf73bfd785b3556b7bad8258aaa6aedf0479a7455e0a87c01f43828247357d953d78b2905d325b0c1b4a77a12ce0022e4b9925b07236e45c572321cbdc530032b797232765ef293a0745e3314c8a3180129371efff34bb77de0d45d9cf2eb128256a10ccd32c2faa0b4af995b61ad5adb7abea9aec90937f7b50e7893443d5307b0679d0a22865a0f2c7843962df7645fd58e11616587ed78e66e5449c3742f047c721f05dd635f59a4b41fc78b69938971c5dc65a842
+d0879848b4ca0ea43286671a6880b4d827da29c9095d9f60a4507e5e81900da3
+Ciphertext: ed884a23127f91323bb002ab98a5187e96d96b847c006da965b9f2e2a4879d06d32aff42ac09a9f646ec76971039148c6d12f6055a4272b9e6b8bf658cde90403715e42d6432838df465f7b896d252559e3f2be076d4ade65be5b7049116540df66ac8e35796316c7fad0f5cfd2faba3426b1c2c0a11adf666c7bccd6191a9b8065838df9b6a0e4d8a884b53d3ba743a3950e26af789a38485ace09fbb569e3f1bcf22f6b55949166bc58c163275c0e75bb8877e4013496c03c4d5b7316c36b108d6fca3af67df96675f5f516291e4659b4fcd00177aeff942193a95988b75eb4a3bf28d80effc3280c5fda1860ce56b699756d23e80f940edcb0fefd0510f7d3a01e9188e0740825e2ca923a4aab19632a6149caf8e1d851134865a641e51c2aee3d415c8b9c95729835ea5189aa6ba69837b72de4e0d5fdebeec647632a6daeb3bf6880fbdbb2bea91628c3771fc34b85aa46833df1c2880d1e9ce5210c2c95c17c0086a9bd476641bb330b5296573f32b28151d454bad14534aa77dd0b97592333ce4378b5e1fdd980d1ab0613cc3a129ff31faa17b561ea39b3426290b1c81bf6140d190f7899d4868a28ca1325f3c0ef2b5f0fb208223b142a55d384d90d5ebf9de9c37ed9f5d6aca1e551349ef922a2e417e939a20ca45c312e0edce01df1fd6f5a93ed9b1372131ff2ac69eb0bb46ea85f17273063bb16cb9eaadcee0f1c65096cc1bbe3f6aae45f937da11d20c315e22c7a9ebb637251f8f8db1fa0ca84f373728133ef70f149149db3e9e3793e0b46de827f2ed68c118ad61c1e37205106beafa78f3e697eaeccc6037c0dcfd224f4e82fe43fa89aae966c7053c5a16b4f715f7917f66453c42505cf5ed272df4f158fcad62d6ede3acfbb23bcd40d0d9a13c64936f3933db529eed405ceb9eeacb7c21a74409004715c6d04cae66fd4783c63ea5025e5da88bd3605627832e157d2910d6e789f8f8236fd50ff3a032bcb7881ad78b3bc0b8cde35c8508564bdcf1403f5bf5b6c12d8665003384fcb7cb7f683cb464d12c9f697aa74dc3d06f77a23dc8e602dc82d2df22022a9c8eebd39f3beb7ffa33a85cbacc07103c94535d2d0ce42e5b9ab1d61bfcb5a0570c4512b2d50e3ca44ed6f0b7a5f333e8ea3a5ff6a69c93912b09714750a14c5524747f1ccd0e37933946f8abefbaf250262b756fd6c8167a73cc8fbb4c5235ee2737ad691c5a3a53e17ba100273b37f55050379eb729d294faaf78fe48d22a8e13bdd524ea6bc29489f5f12bf50a38b68925ef7f163433ee6af5a287f0279ad22a9b5d16b77c79575118b6514a32aecc0e52f13929a72f57f52c32a3f194f7389a0e3cb97401b8852eb1e185968e93cfd6d2999c3748685225f1c0d3f370ec04a635847afbd8c4a117ae3a73294c85c31db664fd38d57b222a150135a1b91ec62f9e8264d89fd47345622bfbabc8292fcda9bb2c3d9bf5633f7d6f9075c02ed9b9c1a3f402d2f8698c3e3d953c3e881fcbe6a7dd7b9bc22d5778f51e4f264203fe39960326f34f0566a094bcdbc4dc6bdaa8805a37839137bf20f063b081444de4124d8d199b942704e5953fe1127449b70e4b033dd8a1e5f8e738fb43a7e9ed8f1b28f90c6a0dfd6a62dc3e44c5c84ae0c6145bc2e2c9924783476b9ccb8650e9febd11836cd224d0a2541d8889a8e82180ecf5dfc2167be1ce744aab4f52716fd966e87da0085c9bed95f51f5c9d16a9b115d54951837c0b338410d406ba69c450d510d0c37b008be68c740a53f0e496ef1d843a7cd9bfa72dd2201441918d9b830347369e47eb0b0e05769b02d8697becd646e02e667a4a8c8df51232ac4f6d2cd62daa672f72a66a5a13e430dc4f78eb7e574fb2665699da1e38d591f2bfe0cab6adf088641ad5cd05f5f617514861e9e31c4e99c03eadd7e388228a49abdc04ad56b0e884cf7b1d1e22cc472025d8a3b64032d89d721dfae5e753ce7af3140ff9da038f4634ed06b83589451dcef3f02b0b7d6862f247a25d87b3d6966a996802167bb3cd13c51e54d8b95d4eecd25a4edddff5b48c20833576ec671f83704086e47f3d707075a91807ccc8424707af1b32cf23838bfda7d3c6f6b0f81239cf0e89b334342a270e5c4344b8a70e1c81b8ad3f141348fdfd812ff622f270e638e194179a0bd87bef92896edf666976a1891434f70763b9ee7e857fe575ee8e
+Shared Secret B: 69e830ed194f88e996ed62a3075750abea5beb80ed7427fa452f45926ba06799
+Shared Secret A: 69e830ed194f88e996ed62a3075750abea5beb80ed7427fa452f45926ba06799
+15d86d853d34d0c877ecb31ca402d2b5eb2e04bf35ffcea6b231e4cfdd3a17762223365990695fa790a191bacf68f06b9af140b63d5e3d2a2d0e7db42b89daf01d506c57d3b9bc59bfbbb55fa89a3097dc208efa694f3372a04de104018e4085abab7d9de5aa0fabf61ead07ae6bed1e1a17477c12d80b783e439fd347b8587c8e8648a62f469cc3c5d264ed30413f87323011a1371b013815ccf3b77f96267ffebe0a30c97c03d35b65c88a2297011a8afb5834812d7863fa95176731ace1e4396b1a59f05f05f672283221d5811b4162cd5675bbd368cf774b588921c0e7c9e8f63981a73233f564cc26c551c65b66befd8a0696d2ff1db5f81772cc28808ce8abbb804fd250d44ea97e75502776cb907f35978158efac8267c024b180ead01388a6e30648cb6c0e14e65889a2c1b91430eab49d0d970f00e980366fa6bc52cf3e11b5d6cbe704702ccafdd56142bbf1c7a8ab0c8708cda75d8a55bb730ed8a13c18be55cd7b4e3bff184b96a174b120898a07b4692e888b6f5524fd24d832be585e4ccffebb1308be08d6da85f20650f3cfedb35cb414bb0c0834ff685ce5a9f14a8ec4ba9af02e9ab71b3017ff9d92c56e72e7fe915b00084102e691955237ed318abfdeae0ff78333a484762cd0cb6953f46d3e35cfdeba66002a5337ec8809e8bb7240cc5b7a3c87c321233f9a228bbec0c32f53b97398124628466915878e5b70b8aea4f9d3fbc179ac77b2c3e60786294e6b2f80560371ea92d382cbbfce1d95656e09a7f481aade3d88c8ec2004ff2471d2eac82cd792ef2641ad84f2806c6a2596bfd5e6c13262180c026619004c4e806451707092aadd4e3df6dd0b6d53bab2bf192aad1cbdc3c46f69c22b26e9ea4eb120cf27a49b15c4a82fe2cc4fd065f745dd86103bfa438811e060b690c68561ebcb9c8f74ca710c9e1f72a91f1c7133e9841b863903551059070e58f3d893099a016780bab018ce0408343a030d539f452d565f54d49370222f54732461556cf0835e035434c62d63f0cffb9a3d7561ace5023dba72433f245d60b68193d4a7d55dd70e4d4bfb11bcd7d4cb062a18f2b796e8f3e1f0b8df0afb9586fbaf6055807fd2316faad93867178fa47a4f9b3a53b1042132ba77051feee0d72916ba5a9ba8647339af6aea07c42fac3fd302269143e8f5e4cae50be3b77b8ade8d4ad85b5c8570f11c48eb8856e45c7bc032ef37806fdfa228a5bbcc1674299b5adf41b8eb6084390e63b800a34d85b12ac0f6d125b9ec670d2d08bc2c04f7f5a3c4f0c76369131980f6fe0b33f4b0e6b624a859eeeee32c87e0dc6c305634e28c60be5a00d2ff70528c2049919411d5659f002b2c327e3c7c6e1f08c36bd8be1040173d05a689a30b020020b3e4510caec7123bf615258d5df50845be035274a03f5ecf0c66b45179ecc72a6dc0efe2df5d5b5de50857bdf995cdb6e2d4d175388f6bcaafc7a8ec060821d7d180ad938a73e1c867eadc7f54a0ab0db828d9c483623d90b319c4873981db9088b582c0081e7be455a783937407d48117795e9139d6fe15673627465746e24430ea5c49be7e4a27fa7b2091040eb6bbb89bf2ea4d8fa1093bfa7f7ca37ff3e86364fc590c84cfaa5a46f29954a1e8642889f6f58742533bc3b07ed7a1f9f42ccb555363cc60272c12b145df022cf19866288217577ef5a379c0b11be9b52fe690d935d31e1e8b8a43bf29847bf8a30541c350e24770f81eaf07fc5646216c78a9b489826be64ecfc939e74e68e70aef04db63f776a85b5767bed76a4659f940e2819c2a9df6f54d7815e9b2fcf5eae7bc2c7c949a9af3623ab31423a660d864aa2950b0af3ff56e2ef29f0ab2a0e2dfc5ae147c76e37f4e18f70754328fd2c6d394290b9164fd71edecb631f0111736c3e7527af397eca189eee2b05ca73bd9aa0aad305ee6ceb59c60f318c488f1df4efe54bb14eec44a96d33b4af3de5cc3ea7606de871cd7e233efdcf80f8595954dda7516b0c75a51f4448ca9b12fa74cf43fcbb7a9e3019f1b01c7f39540d11ec5683f6164b4686028780c325524cc8974e9cf68092455347c24f00a8226162aa99052c82caf8e9398e9389b6d32680acb08123415b49649190107bf033296d6a761786b9f4c456de1fe448166673ba4465bfe9d33465a483b3249863a710417008d869105ea2ead8614ca690d3d90a1c803
+Pseudorandom shared Secret A: 38127746959ee5f810abd4e02595981fded729d777a223abe2f34ced1e77f6dc
+e410ade359026748ff9db03c4fded5c47f0274efc5d1617b4753101e795e591f664db2392b4fca6ab123e4979a0120129574ba3c71f48003508e7eef6dc9fc35
+Public Key: 58b09e441c7d0e00b8ef8831d0882d72cb714f932047d546a41a892fd16ae1435cde705887b291a00c6743058de1480571c33521026b031629363ac0fe6a31cb1cbcc306405a3cccefd642b0fbc1be1796fc2a3de9975f709577998065cfe9cd86eb3bf64898f04708c52c0ff762341e80a22c3c87777b5330babf42657790b97940ecc68a0634a3331f4fe83b6ba28cdc9110300a7b4acc8c0a3947095616db8a9dd827c5ebf7676555a5cd667b169ab7520990acc3ba16d51678e04ea3ec48a1773b7b1b8c570a48633554ebf646c3c58c0a0a2e54ec1cb1c8806f778bf5b8aa4f8a860e2265a4878e0a02a35cd937c5a46947d3cd636013fb855530c0660e483ef8c767b0313bde92083beacc4861624135b15bc02e3eb19bb50baf968ba348825803e42df4d8948d60b8441cb0ec33878b31be7d12a8bd50adc3e44d2d12260e748a247713fef1ce909715945461feab2c7e62ba7f1582da4696e35788fb57234f296c6a0cb56cb85f9fc8188fc28099e09b3da01018278a2118b9bb2ac21c80a043f9880f2884befa63d3b54093a66d6e870f3ea4ca60ecc913079e280c8b98d51bedaa44c905c029f8a7aa15b5a7b15d85da7b494929dc3376ae66bc62cac558884610d7b50f0636e0d317cfc9b3e3049b078b84b6c5700eb314b04bb7020129d108c93c4a930db11d173ccef8ba51efca37efb6c930b6383b29af63710d34eaad27ea5b6ad5009efc957e3bb2452247a1f523d6580d6c64646814013af193c5360444312a48ab0245132b3f438f09013c3f8813245b6a77e83dad84cf3ce832b5bc57628b3d53b49b064c77df0528cce979bc398bae0884d5852a980731c6eac0dc3805d0260ab24543d69251567215b96676fe8b212ce36916d5bbb04a36e5307b23d3ad183146ad501be40ac14ae332aab3a6919a9761e66753259cdeb84bcaccc195a49acbf858c317aee10c64dd2403bafa9ae45c230c32913e144f792c56c832afc11bc8dc872563ea319190a71ad194ebc4a3f3b94b8945baf8612af792344a027fd97439f9d01f8ef4b806850103424257a35cd8976876d953304c59dc8b28bceac5de9b9a55e15eebb246b5bc38dc743e33e1622d879ac0f6051bcc040f250f06a67961baca7066426fa306c91810e8f82c89f360c975a41da7a9d33862c8835a0e9869c0238a718b13d739c126054bd1691b7da328cfd5807ec19665134f86800ea23a435324960d9155b772340da09a22d9b5c825283d83cdfa2a31be08cb1057b61440b9dc2876b667534a859cff808967d9936649458963a34c226c6d18bd00dc39d9091a99037e73c7c6b10758d969ab82838ec5160fd63bc86d4994c1061484c9aeaab32738b8b700b1a96eccb8404c6e8e4ac860245a7d779c1d4793bc846e4480c13f386c0e4a9784b011da62c41e851b4dbb7517d92f756b73ac5059ad2b3a86e2c0c6b927e0f8b8df5c3d9b7767f5015270aa0327838d388a3269c36215bbb032116c3f759823247fe646313d7284ac55c6c9969e8c42bec6e988d27c47f17ba712852089a0c73f3c9210a3097e9a50741c8bce812239662d2657b727e03ec69c2a77d82d0e8c12cb4427feec94c4ac2d92c6273a53c3b3b87e63478262760e1a16a28fc111f72556c8f70babac7f064b827b9078a6ac7da73c7f91b67bceaa66d613756a5914ed677f067759a2051d2f412372a08af9dc0b154601c0dca6b2577ffd65a6a8270be28ca89f56b5373230ba1b93a338aedaa19e7d16a5b6629d110b6574f4ce277c7aa5fc485d7c1101088617b742be8701d6633b784b08ec7992283a7280057d923c04e523073dd23af1da0961972eee28a1f7aa02808128e07a655285706ecb6518a10a88e8afe8bbbd5beb42b78a7258774044833af2cc6d96c73a93196823056d1f76be7fe9c929c6c63881367bb35248553cf4258d95627c51c4348e5114eddca80dd13d69037cf072139e8961c485492599b3745a70d3a581f57a74e8491dc24c629c536417981ec9571cd5790525c9611ef7abc480230155c95e805824a3c621d0238997cc2127878cb91aff16cf52029f9329af3016c3a9996bf7973e025010e4730bace7be353b6ae7d87c406c83bab2cfa2c525e72ca5c8a451eb371ec362433a33098db21bc2b485b79cdbcb6b3ee105fb3b174b732af570fbaeaac345f4c97ab82f8dbb15767b5a
+Secret Key: 6149b449b50da63506218a3e18883cc3624cc62431ff2984c4777343f2403fb1bfb3324e5131a7279749163315edf0c695db38e0911cda0874415121d8831af40648b70c16ea669c3f17734ee697468c0fc292a504b665a8cb217ccc275a37008c3585874aa058f30b55ea9a61c7cfee317c1af8cb3217b68a569779478350858f22972c0ac62d1c697431acb5e7d4284d4b724cac2a6c266faf50667fa541ffd203348c0a9ff93967db4c9d74c78304b949e890f2d49734b1974d0b3513e3722c7021da01aead52c74b251aac7384095b97cf269f5b9794e9380406410edc22656ea5b820868dd7e21062913a266293a277b8810b7cb8c988085012faf28aca141132b74f9b1841e2dc5f70d3bc52cb1e11c22df0555c0b32088f948dd424155c255b9c49634d8649ce83671ed648df169d8fe802f311020987cb0f12530cdc790a99591950b8333477e231cdaf9a06061aa7a608210ffc9ec5b3b754bca602d3146d3a96bfb8aeba174d9173c1d63b74ec285d1e44887ce566bf7b6b1cd6536e92827bf4582306ca234bcb9a0969ffa1cff0b0c1a73bcdb4404cb0ba8a7cb5624a6a1fd12481efa7b7c9f39d2667c247017b332a1a5022c2e85b7bed7222e677b4e9d34e528636a2175b93eb308c893f28c76d941a0a5588a84bb626c3133d55d483f248a752739f64fa2d26da8cda230a0350bf02db08b3357ae6375cfad772b9753025f6b011b67ebcdab3affcce805a1970a80eed35633e54402dd873bdc062fed417cfea46fa197a7fb0140ffa3e6471140f3633a4fc5032411116bb8fe921a6b366caa0479d3a5621869569e6749121db2b38586047aa2426ac74e60616a1a90f58f70f70c713c1e1c96c74aeaa189aab1cb509a04885db3c06413a8ef25b59941d7811925b727d10792f86292ab8e460383615211425a499bfa757a9e98b979e56c3f6b153578367892c4748b69773141c3ca6abb72cb6b25398892ac7621c3cb48c3a799799f30c53faec3f6dd18956669dcb5901ca883e4db8c824e7501a149a5916925cb1aa9908a1d843907f3c62e57268f7f03d2d893c37f15679a53f0106b02a8a02562b26f2190a7db023d112cf59650054c3c02a2b3917a98080c104db09cf0de05df29871ff8b00054cad43b0b0c729cf29fb8cdba8cea18a339ee5989386b0cda73e93434b390ac56f4630e2da6d00171c73e0054ff53aba38650ad8b3ff7c45addc3484b74ac6d01d64684e90c59e09bbb887c10514b18c6296cddac174ab563a2b47cb84a5b087083f6435c88895ad15a8ad853957a16885acb04800eb333ae7bc7e135c0df2375b4a96cb2164781518a889bfc2514853b035ced208d3e9a6d4457c3a367caf8963b12829775a6870d20789b98781f78b80602d6beb503d0810fd294a43e983627620c56530694838c5558952588707f15be1809cc6fc7dc9e99c27639ffab7b91311278d9493536b30b09bac4284740aa63d1055c5e70bc554f15097a51b79d2b34dd79b9e52c632770f73799d7cd3c841c572498927abe48f8d100d01f4350bab8db3578139a11146f04820918690038ddb665429960cc70569ce0c7b88484069a1bfd4002ac88b40cdb2be2b3691b623bc067a9d6dd35a4730acdbe6bd9463c7af53153c029f86f5444dabaf200aac413b5469cb641e847a004a1243dc0c36e125734729854c67a2f06fe8fb4cf202bddc214966129a9ec9a68388ccaea6cb99643b950446c8eb94344aafaa2350af88a6aa6aa4c025b8996b385f17b8e223911780b247166d2449616967225b6a552280c83dbb59bc5459fc1a79056b3a3d56a22e5c8c12064f4b60635225a0901042e7008439c84ad5241ca0c6030314a0f77a3168b40602d3832e995c63a36e4ce96f7abb181898c96f0a91b8d8935f290c182502aa357a28eca4a7ab332db86caea9121a7a8e9da146daa7c3f5f28dec01c858c9554ad683ca705d089513eb1a6ef1b75a15d7cb15382c2787207b8006502011272b4c8bb96d02d9112994395b73287f068d6b491260e49ca315180315715dc02066c49f10fcbe522b5cce58a8808b6b0d79baf3e3ac1ae553f0e82aed9912426c8200e65f5d85bdaac7072d210ba9535c60583d6ada7a8c307e781b0e15717f7cd29b5dba4357175570622e58b09e441c7d0e00b8ef8831d0882d72cb714f932047d546a41a892fd16ae1435cde705887b291a00c6743058de1480571c33521026b031629363ac0fe6a31cb1cbcc306405a3cccefd642b0fbc1be1796fc2a3de9975f709577998065cfe9cd86eb3bf64898f04708c52c0ff762341e80a22c3c87777b5330babf42657790b97940ecc68a0634a3331f4fe83b6ba28cdc9110300a7b4acc8c0a3947095616db8a9dd827c5ebf7676555a5cd667b169ab7520990acc3ba16d51678e04ea3ec48a1773b7b1b8c570a48633554ebf646c3c58c0a0a2e54ec1cb1c8806f778bf5b8aa4f8a860e2265a4878e0a02a35cd937c5a46947d3cd636013fb855530c0660e483ef8c767b0313bde92083beacc4861624135b15bc02e3eb19bb50baf968ba348825803e42df4d8948d60b8441cb0ec33878b31be7d12a8bd50adc3e44d2d12260e748a247713fef1ce909715945461feab2c7e62ba7f1582da4696e35788fb57234f296c6a0cb56cb85f9fc8188fc28099e09b3da01018278a2118b9bb2ac21c80a043f9880f2884befa63d3b54093a66d6e870f3ea4ca60ecc913079e280c8b98d51bedaa44c905c029f8a7aa15b5a7b15d85da7b494929dc3376ae66bc62cac558884610d7b50f0636e0d317cfc9b3e3049b078b84b6c5700eb314b04bb7020129d108c93c4a930db11d173ccef8ba51efca37efb6c930b6383b29af63710d34eaad27ea5b6ad5009efc957e3bb2452247a1f523d6580d6c64646814013af193c5360444312a48ab0245132b3f438f09013c3f8813245b6a77e83dad84cf3ce832b5bc57628b3d53b49b064c77df0528cce979bc398bae0884d5852a980731c6eac0dc3805d0260ab24543d69251567215b96676fe8b212ce36916d5bbb04a36e5307b23d3ad183146ad501be40ac14ae332aab3a6919a9761e66753259cdeb84bcaccc195a49acbf858c317aee10c64dd2403bafa9ae45c230c32913e144f792c56c832afc11bc8dc872563ea319190a71ad194ebc4a3f3b94b8945baf8612af792344a027fd97439f9d01f8ef4b806850103424257a35cd8976876d953304c59dc8b28bceac5de9b9a55e15eebb246b5bc38dc743e33e1622d879ac0f6051bcc040f250f06a67961baca7066426fa306c91810e8f82c89f360c975a41da7a9d33862c8835a0e9869c0238a718b13d739c126054bd1691b7da328cfd5807ec19665134f86800ea23a435324960d9155b772340da09a22d9b5c825283d83cdfa2a31be08cb1057b61440b9dc2876b667534a859cff808967d9936649458963a34c226c6d18bd00dc39d9091a99037e73c7c6b10758d969ab82838ec5160fd63bc86d4994c1061484c9aeaab32738b8b700b1a96eccb8404c6e8e4ac860245a7d779c1d4793bc846e4480c13f386c0e4a9784b011da62c41e851b4dbb7517d92f756b73ac5059ad2b3a86e2c0c6b927e0f8b8df5c3d9b7767f5015270aa0327838d388a3269c36215bbb032116c3f759823247fe646313d7284ac55c6c9969e8c42bec6e988d27c47f17ba712852089a0c73f3c9210a3097e9a50741c8bce812239662d2657b727e03ec69c2a77d82d0e8c12cb4427feec94c4ac2d92c6273a53c3b3b87e63478262760e1a16a28fc111f72556c8f70babac7f064b827b9078a6ac7da73c7f91b67bceaa66d613756a5914ed677f067759a2051d2f412372a08af9dc0b154601c0dca6b2577ffd65a6a8270be28ca89f56b5373230ba1b93a338aedaa19e7d16a5b6629d110b6574f4ce277c7aa5fc485d7c1101088617b742be8701d6633b784b08ec7992283a7280057d923c04e523073dd23af1da0961972eee28a1f7aa02808128e07a655285706ecb6518a10a88e8afe8bbbd5beb42b78a7258774044833af2cc6d96c73a93196823056d1f76be7fe9c929c6c63881367bb35248553cf4258d95627c51c4348e5114eddca80dd13d69037cf072139e8961c485492599b3745a70d3a581f57a74e8491dc24c629c536417981ec9571cd5790525c9611ef7abc480230155c95e805824a3c621d0238997cc2127878cb91aff16cf52029f9329af3016c3a9996bf7973e025010e4730bace7be353b6ae7d87c406c83bab2cfa2c525e72ca5c8a451eb371ec362433a33098db21bc2b485b79cdbcb6b3ee105fb3b174b732af570fbaeaac345f4c97ab82f8dbb15767b5abe7409cfc6128f974162cd0de0d059abde3088be4568719ae68e56425458166e664db2392b4fca6ab123e4979a0120129574ba3c71f48003508e7eef6dc9fc35
+c0180da7282c909918d6582ce0dc49f88ae69111ac37c93e03f70337c602c836
+Ciphertext: 94f42e89a034ba8d0f8a5d21f81e6cfe38e7918a8925e86b151ff7e6feed52a0d2ebcaa67f56b96ac9fff71c9b8ee0ef46e61d7efa7e7b5af73d389defc55458f752512341249aa26ecad653a997a1d23a49bd21dac698f38630a178ac87de41e7d90dd34d7215bb7cc645e062efff429c325df064efd47ffa400d82107643c1c5659dac859196eb90950fc74a80bf426b890ef5e0f226991542c262fc78040f352e89a204f40c5f8f267305f4496391d90edde6d3ecc8969b606d708f2252b1232e861de5f5c6c5548effce5192ea06091c4bf0746a776b2b2f7c9e75fc1f0145188346dc8395bf49e778e538d7a5d1cdede72ff364f3585384a1b93998ce5523bde0fd9b77019c63042dfa6dd677060ccc76743e4c133118bfa1c43d17d96010d1dcc76763db965ea4cbddca601606950ff67dd4ef226867ef55b0b652574f77bb60233bcc6139175ff65dfb6b43b1f79d8a310217591e3e3d08cbddca8ac4d3d71eb3abe66ded414e86a2f13e005942762175421974614f660943e4a0bc8b321d1bcb6366d59c036d15c6cc164c3963f122cf9f6f503db7f23a39eee89d6308aba9939d93edb15c9327cb9f35578c3226a7b383567437b46d326827a64b826ad8800085303a8555f1e2a947bb426e8f307005536696f5eeda1426eb8a2934092864d5d645646e1fd16482ac169809908b679086409a17c3bed9da189f4fa9462d14ff36d6f3c3da043ce9dffbaa2bdd854f679009dbd26b423d52deba441a6024ea9468cd5935e67018eed020c0acaeffd4403fcf6a05f0d9be9f5bcd01a2482820a4efb049df4a8fba4ab9b6b690a6cbcbe09ca43e616838eaf04b0edddb164f39e822ee5b7ac04ad8767797b09bf50088f6e08115f32b2a3bae84cf8ba1a912b9a3820390862a5c01eca2b1e4ac42e93cb2f73aee37eff7a7be710646270bc8c69f8126216d3ce5f94e0b64776e7c956cfbab6a02ddac0dd5ebb628a9900d47e5bd61da821c64f65a1953f2a191e98486c2af3c9b96014ab5061e033463f7eb457394c8369fca25b3ac4d6f934ccd426406859c4de73893c38589b57409240acb86e6c863eb4232556ab9f4d2e61bf1e1d023834dc9fc781078def44845cdb2d77ff330383f81c644dafa9dd3d878e6839bd7b434a368efd6cf7385b7ec36420af4c242a36551aa2252b8b6eeaea703d3ade1257aa599295284968f37b808f566d4c60bb525c34c9b58b1a1f941f4719605770b1bdcedee62e20ba7f991488a5b4fedf62489be2d8ff42a2568bf7d49da8c73f66a478ecfa16af6a34af64b572a811874eeb57bcab5247b629a70147e61fe7e1522e2ac3f10c40bd49c165978b29917f81f812cac92b21a21351f9b596138a41589f15ad15cbb6aab4999b229b5064df8bd4f6653a487e3a73dec0c3be00aa8a03b6be249f0e39119fa12ecd78b77e76f5c5162cbb5e1453805bf21fd8a51208094f2b15a9cf4a59dbc594da5c7149f31b9ba755776203d86f19c28f38001acfdbaf43d84444d63c17bafac320b59ae6a49a322bd85061f96c02cd2ff3433c4f2a1ced71ee98af4475c566a84692a604d679390bad6ec890364b3e8bf50e0c2e55acb585d48dc85b459aa8c6f136cfe4fb987e6104a0e39bcec60ffc8597fa2a86e35058c670b2c432ab91d61e5228ef5f0b931ff2f42baf3d9f6215c2ae1b4a69002689c6fb9189d115aa8c374f92858a5b980a62ad29c463a73f1276f5ae871e458735b1d8c4126e90fc4627bbf4936c20b07e49a7995c01ab6f9adb5a8e2dad4d5b3c190f4009516fa6d77d5291471be99d5cc39b6ae007a0ffd29029905a41bd2f7f675556a9cbdecac6893771ce597068e1424bb075dd01276524cbaefe6e39eb56a0f1a0e3d1a1bea4346db1be9a74282fad3f7365c5b1a32e6f44a4ccb7821e9bc580083b8fbe0f2be46dd1c2ec28e17afae076d3e64cfb41256c48b39461e9f0da4274bfa399628c9d5b4f98901c1d321e2cc4874f0c0fbec942e575fba9b8b7494757e28f90b3363ce0bbebdc0302607088e06534bfe3320c696eadb889bcf0b895633ef71e4fbabeebad19e8ac08fc5529c7978fc972a4953441a0c67485925b3b080e7f15c2133dd43c5080a132c1d6d62d42cedbba28306b15722e56719c4fbf8767aaf45f772bc4291145609b09b8e198fba99056a9beefdbf8f8bdff713e38e06942ac1
+Shared Secret B: 729d9ed846cc4358a2ae980b083b55c132f6964ecd5ec2db8f78f7858ff8a9d8
+Shared Secret A: 729d9ed846cc4358a2ae980b083b55c132f6964ecd5ec2db8f78f7858ff8a9d8
+aef2e21262e81dbf6cf5793a7db57620fa1b0901be28ac1ff00de2d0650aa2dae76c89f7a1847d5e9eff840618f805e105b4bdc99c1f759a3f5a77edb5225cd4b9561fe3c9a94d05a6f72ad366a1bde06d92ad67f32164b63c9f83c946ec910642b133590e881aca673799b5d2f44144a91439c9a5f3489421085bcad422b08760fecf02bdbdf5c51047326f4abb50f06ecc9c0cc5ca7a6a5d9f3574f65e0b075b3d261be68f436aebad73a7d28c1230003a8ef72423358ef5aecb8c1e3eb90f2cd1e4ed92f7b5cd961975b29ca7f3d3edbf2acf2b93e5e46610196dd2aaf6654e4857d60b443239e7e90c80b7a213c1268ff807a33417490455b808b07c76ddab9a57c2439fde10426126b7d55a6bfa051e3f7cbf76e6081947bf48a659e6ff11fe4773e24927b29b4fbfaafa169ec8c54743e73f1cc7c3f33093761d13111d37169caa4455c756cad55f92b26d05636fb56c6349371bbb7f81a3e0414c0b856ace9d8e34492b056c8b63c6489d88eacd586a0d47d417ea4b09fe1e7fb832865e70734dc33118b93d71e097b90477a7c4189bf8a2557a14261609fce4fb05adb818d283d0da782e25a3f84b182904541a3540b2bb295a412e30ac50dd3a9d7f68cc6067fcada434b2c798b4a890d81f55effae01b0638af21dd791f4b65b9518e8ad563990230140116e337159b9f43252abe154479c625a3f06038940aeb82205db260038fcab8994c8b23072efb46509083c7fee0695ab01803ecad1c18b61d8e79daf3640ca48055741229e4502e5dd3e1ff614564922d84f8a250e0e4f94705d01a2cb692e3b4d8809d9b2917ba7e258a8c9c3bb95a75ad44f24c505b980bd7cb65e2e60233bfb49e0ce78df68b31044cc1db96b6631a9e36d33e6354a61458ac45fa3b74b36f0bfafac80e52a53d87540f196f8d0f8645da1527eee3ede70370473e87933413e46a302e81337ccdb3f3f57989ca58467ac5182eed938f84cc39821d0b53679129a3ffdce0559463f8fcc421f49010a19ed5216e19feb520e3766608a2078ecaf569716d1628a183e1959688605f5491310e3daed7ffa5711de0b5ea187f4715d8c4853702760be4f48f51631216b71f60285ecbc4ef1174afd7cff0a51283f1a637dc75693dbb6b39d7a02c4d86095e6ea22df9e399fb9d6b41a796ff07c73965f1e2417eb7c8f976f4004bd5c4092c9f98953ae4ab08ec9c769ca602e94497fc38a665d505cc88d1a5034bcd9edab41e07833566409565f7bf5ba7d84d85cd04736bee9ff60ce38ade05bf0ee2d5ff7f2dc49371a1791220591304092e58359c8ea9de87005b595d8d1842702e2a6ed054b1a5408871bd56bd8767349a6bec799d7a0a55437dc90a49f30a20a2ce7148a8358a4e7af10cc06b20fa4b24e26c9163abb176e7473fe6725eb2a677573f6aa6f4cd014ee52850f62673c23ec7cce7fff4c85407d721c6628231668e36fb65d4b1813a18232789e4dab7f7f9f0dcfe62eb97d4b3505e9ef04d316d597eb870425f95d7307ef5b089db2dd3b2b783590fa66bd33615d1429d555771ca8db5648eeba2a7b453774564855f3c7020633dd2da4a7d5d10e96aabbd76698b190f875f7b22f2283232335f3927c89f0b904c2b91a9c10a453bdfee24dda76bede2e509a19e2123f54fd25b07820c86197661c1c58d7db2c220294e5e1f849df714a52a1ac371d3ed38f180dd46645211af93dd0da263a2b577d5cb51054a9bf34879958794d5895fe5e26660bd8fecf4cfb0bab91e7c471f200adeb14ede2b1f5d44af820317dec039f0f44f99eff64755a11a40fbe72617387dfb6d9d4833a4f549e22bff416f6806fd8c0f5a6dab8458e5d143977d608ed6f96cc4bf508441b2bd317a0e48674faebf4fa852954ab45313134d6cbafe18335fa7eef51631670f8feab1be27e9f4c1d777715a42ade24104ff8a63201ee74bcd60a100f50f2aa5bff3f748f43c6a63aa17bf8a2e65a97fbca17163e96cdae2008d9979c040bb78e213378977d33202bebda612196a482f08926bc0eb1857d142194fc8797b19fd7bf0cc6beb58532a0af3c1d797b976ff12046b9d934e7e98e9cbba5e2353ba08ddbcff15650be4b68379bf31c0b83bab4d477fa3dd7ecef85b0ad525b5fa8a9424079269afc6bfe2f9eb14d65823176f7bf3c58ac62db7c3dff0686f6d3eabc4b1e9f241d5dffa
+Pseudorandom shared Secret A: e1bdff0fe9f94b396a0b8fbd92867ef989411fa30eefde70e008cd112223def1
+9a008d59d05033ee8785a4f7c167629464967879affb2cd07e5883bf9493a7883daf7f674447c2dcf91e1484ac8e77ac9ad2df259304f85aa474376a0599053e
+Public Key: 46b2264596c56e52932c22af709620b2f27f39c7ad0fc26c5608352a1bb754e77afb9018b763395897ad6c2c7750228283f09f268911bb06b4db4bbab167728f0b0788711ae168c84261a6d25c11fd7ba4b1446db6812563fc2250120fd2e2ce8828cadbe8a47b4c54c5a116bb9b1445e07d0ce64fcda5c86052c1eb707cda9b25ec21966b4029eb743e92e3b4daf240427991fe54ae781a17dedc6542701b493794b63089827abba99a3d26f4bc495a0749447266107eafb9832313a0abda2623dc8e6f950f2352c9a87164915c3524ca8b0379b0373c9e5423ceb2f85e9d700fbb25c525ec813d93a51412619ca41b7312675cc53a86541d50d279f6401880e4a751726201c96f4f6076668384ecd329c69b68594837d3d6a45a40195cd6af7386710e2055ef48c325203a4408c995e435f821783b213fe8b1a94bc5a347f53851b5538aa57329245911cb3265851f85970a67bb883c34508c9a8ae2a38affb7a11726ae0fd254c427580cf1b355c02e0db6a13b882984669d9df912ae8cada87498917839b6004f6c1205ed8a9ca4bac0a0953d2408c9775c83541c09cf80c85ff6ac2d9199e1f4cbad64cb6fdc076f0b00050778bfb0769ee2b40f3c1c0b17434e59618b773666d22e98863a1ae18966a51367693fb09b181b858e9c3c7eb3c7593986ab8f214fe7b06126047cc59b94eb491b10d8a7c9baaf10095daefa49bfd0113402446f0b96804b2a00726eacc17f8b474ddf0671b397865fba6d84a468671a81f6b37b55c864233ca9fca90971b2727a27bdebd953451118c0e94534656cd42073ca1834cb29a91f6c700f62a296555ad06526fe4b92b765159ed685ac2427e48262e3499d62c58600c9349163c5cb46861a0c2a8dcab0cfa30d2715447cc1c0f82086f2b4bc2ef66708d963e1c3874169a7eb807ad97717b3b8b8874c56b432c7e7f9a3825b060f78799e50c86c564a82bcc2f5433526e415ab37c594f2257baa1e6ba5554389a213c61a84700dd2fc24b79157ae58297b9b6c656cb3797785c53ca43de0c1e1579a59f23cd0807ee87614eca58edb67901ca8aa0086656e15970edca66019194287a08d241c7cf735237a85f4a540a9d13794c5811ce8107a90379f0697f53675db8745da808a49a02d3ff033c6c47321e408df74071e890466ba21924cc42b70079c5103b5da77a029794662009da93d2813abba8baad3db5c317b539fa95bac814f26d899d7d42d7979879c869480b642e62832fa8a1d0e629cc0a96d27d71bbda25505935c519a718215b8a96ba0f1d01e13071e5a85c7fc736789f75ddfb5c7db392e0f02168c2c603d0bcde1bc83f0845082c4105950190574c1ce38af46da34e8d76066a92196d774fb753231a6cd5659a1a2a67ed177582d6c88d41632acebb1265616a5ec3da5bc63c5815351375fc21a046dca6949da4745e709c927c04a6c448b1c810bd6aaa301cdbf693171d4483c383d7a728ea578c204887dee6b91aa641fa5171fe7b08faef2602870552e8689d6e7cccfe13f2de37e26133f87943b3d7346e8d1c443ec43b561610da3b095103292a943c7f6994ec29670ba2f12ab325327308738a46a08699c80276765bd644436c54929b4ba2df0043b07302ff36bb3b6f40fe24b61a5311686e5b90c738cf3757bee0224b925b812a49902739decb7b8f1ba664cc5bdd13739b96c54f92450f029185bcb7b5875368bb04f5e70a6056082f761274cd10912016133758f75499a59e9477d45639790136299280416abed0cb8d8ecb345833f25e3a08f3581bbd333f964aa302379f726b2526657bf56bfb1b606542449e4fbaa4ed35010324aa021c1ed8a79067577f86597da741324f4bfe8697501c4b3a28c26aabc02648300feac2ca2244022701e436b97e848c9f5b1673ec5364a71228738833d113fe0eaa71d38ad6375c2d7f41ed08b6738da428664a190e07a74247a1818c83a6846d3145329ca0ab3a66b87c72d180217d5dc0e00a2aec5ba0f6ed4b9d8d3171a5432bc9634a48511e94c6f22f76f04a58091d10cc6152b14614f45867ce5236ef4cba74fb8759368c619f61b029912d49b92c3eb97fb78a164970f0d23746c50354e980765972130c50d0f6a325e0c0cfdd036476ab2bd25191bb7cd89eacac31ed1df1c14a485c6b23ced8919ebf156e8c6e45ff258df983042a11657ad8f
+Secret Key: bd18974698c63eb1a757d423ed562442d2c132f77a5e6a4108562ee395abd56a0afec288058cc98058b8e2f792468a2c4a936836281129d26373e822f5d7c60007724cd173b3a1bde0629ccfe306fc105baf98684e5410d9a7a8e7fa0f9c7ab3a5aa9b253100c1ea0f3f3b717d0cc62110753b454e71c963e5082de34832779838ca2a43a95cb218a50bf5946d9b2664cb9c292f42c924b190b18062159c14f4b97b497c2cfedccecfa7289e2b3c7e603126499ae54364cb87cf11f230ab6a89401814614c097ccb46bee4b27c327b6378bde2b2a4cbf90f0d606d9ff26310277735c5c248e1a8bc1847173a2a711bc79ad9630279716a54c867e657f2ab336c708917c489114886619877802b11ee5219b823078134235e072ea0a985bc7126800b05b0c1cdf6accff421787a123878d714ad764d22d1bed1419207e080adb17633b63fdaa8319b55cd9ca316e9277100c40062fbb134d76fd9637d1d306958d3217130a68e18a0d3a93c00960357166e31cba31db43189d31dd8b43d7e472206640aa0b329218a3eb71ac362fa7725b0462f764edfa932390712a7061ccd8b7f5ee37097a36ce68711b32b2a7e9aaf92495cb9d2b053450d6ff8a8cc121ac2c891b8fb90f5db044df7958b065f6b5822a7c80de1dc850d7c7e3519bfd3545462405e37116feee38a08a545369068aa6a209d6256d4f436d8884b78751825f049a71692a2221bf867459fa75a844c1a62f71435ca94d1d8afed973ecd8ab066e72de7f124601916e415564af31be4c9139dab66c11238df4829a5e53775778cd978c706a5845f6a5a98c4cb1f0b23c9bb9b216a56f50089530a1a6e391748731317779d83e818568023a5b31f78270508bcab2cb4ce2cf910b6d8c143f5404f1837a23c0739515826c49b12d2b50fd81ac6f1528ba9ce05822bf5007dc95ab213078444c3466245cd3771b6cd9cafafa8945c75907cd73bd7506d32f457d6f6c872ac5fa4235a4e00ae39182035110bfb7c9928954a21e2b5c074c48fc8356566320731821df342da14037c7bc4c248c8c62c5e53658af166cf3252a130baac747326a9e321d72a03f62a0ac2006517e3bfb641c6b747a51768bfd294a391c9b25a126de30724c2239a74730af16660da1699351cb4fbc2aab65c9e2d62af8c6b04ed63c20a9c2290006b3088bacef3cd485aab76871fa9103ab2d998a226ca58727d5e844c50d981f14b83882a6c850388c8cc7010fa15f418232921346ba87e12d178194a53e7497b5ea2926bf951d413771bec8256264b524172c8e044be05cb535853467baf1a163046b2844853c84ed1ce79f636a2350b24e1726b3312ec214a7bd0ab8fdbaad06cb8b7dc56bbb519ca404be38894519b3adb1bcbb9f1b0236c9a292a7bb0bb33ae4540f9a367fb6a6748f05e9af1c30b4349b6e8a08534885ceb79cd027deb0a3ca6c8526e4139f3f99b15982ac3f063bfa62cb08970fc15a3470374435210c5622ca88a6fdfe0472f479bad7aae5d751f87fb23ab643b874999e314cf7522aebbf147cc3465bf011978058c6a7c9facb67f6de8b145cc6fbb9bad24e36c42ba054d39ab4d6c9897472797ec570815b22e910431b41dce87678920c82417ac55ec2b9004108f684e6ca417e6d216309642041780d4a15bd19b051d805a59600837b83c34755e13439827c810baf124e9fb8dac0c0d9b5088f7b938f672747f9562a6d36ee43b9688d6112cf2089c62b8509728790738e3112974c87eff189e2f226d41b1c4b70406a005aaedf757ed53a573e2710051cd68f5bdbada9c3a1386ae18b2e6e82d42e65abd351666e77ec8e8252a335436a3838df8284179bc32f4cab2fa01eb34cbace9b03cfcb41c23a821f984875b4d35984886e37a2b957dda0295d7061651c53a996a4d5a635abf218a5cc65c6ae3bc01179de99b2a2f16201d2954d0e7b3162c5e0063a7170613cc24bc8c3c3ff604b9ab287c2713afc4391a8fe80369e887608376045009469c4f6a592d46e457cba8a981990e881718da978b4815968664538a4262e629a33cdb6f4e711bbf11528d47a84eb2a8faa93ea25c88f2985f06e28e61198396e159c026619ff0c22820a6d0a9a3462154655052bf4a11543423473a39bdfb56e4eb8fb773c348594046b2264596c56e52932c22af709620b2f27f39c7ad0fc26c5608352a1bb754e77afb9018b763395897ad6c2c7750228283f09f268911bb06b4db4bbab167728f0b0788711ae168c84261a6d25c11fd7ba4b1446db6812563fc2250120fd2e2ce8828cadbe8a47b4c54c5a116bb9b1445e07d0ce64fcda5c86052c1eb707cda9b25ec21966b4029eb743e92e3b4daf240427991fe54ae781a17dedc6542701b493794b63089827abba99a3d26f4bc495a0749447266107eafb9832313a0abda2623dc8e6f950f2352c9a87164915c3524ca8b0379b0373c9e5423ceb2f85e9d700fbb25c525ec813d93a51412619ca41b7312675cc53a86541d50d279f6401880e4a751726201c96f4f6076668384ecd329c69b68594837d3d6a45a40195cd6af7386710e2055ef48c325203a4408c995e435f821783b213fe8b1a94bc5a347f53851b5538aa57329245911cb3265851f85970a67bb883c34508c9a8ae2a38affb7a11726ae0fd254c427580cf1b355c02e0db6a13b882984669d9df912ae8cada87498917839b6004f6c1205ed8a9ca4bac0a0953d2408c9775c83541c09cf80c85ff6ac2d9199e1f4cbad64cb6fdc076f0b00050778bfb0769ee2b40f3c1c0b17434e59618b773666d22e98863a1ae18966a51367693fb09b181b858e9c3c7eb3c7593986ab8f214fe7b06126047cc59b94eb491b10d8a7c9baaf10095daefa49bfd0113402446f0b96804b2a00726eacc17f8b474ddf0671b397865fba6d84a468671a81f6b37b55c864233ca9fca90971b2727a27bdebd953451118c0e94534656cd42073ca1834cb29a91f6c700f62a296555ad06526fe4b92b765159ed685ac2427e48262e3499d62c58600c9349163c5cb46861a0c2a8dcab0cfa30d2715447cc1c0f82086f2b4bc2ef66708d963e1c3874169a7eb807ad97717b3b8b8874c56b432c7e7f9a3825b060f78799e50c86c564a82bcc2f5433526e415ab37c594f2257baa1e6ba5554389a213c61a84700dd2fc24b79157ae58297b9b6c656cb3797785c53ca43de0c1e1579a59f23cd0807ee87614eca58edb67901ca8aa0086656e15970edca66019194287a08d241c7cf735237a85f4a540a9d13794c5811ce8107a90379f0697f53675db8745da808a49a02d3ff033c6c47321e408df74071e890466ba21924cc42b70079c5103b5da77a029794662009da93d2813abba8baad3db5c317b539fa95bac814f26d899d7d42d7979879c869480b642e62832fa8a1d0e629cc0a96d27d71bbda25505935c519a718215b8a96ba0f1d01e13071e5a85c7fc736789f75ddfb5c7db392e0f02168c2c603d0bcde1bc83f0845082c4105950190574c1ce38af46da34e8d76066a92196d774fb753231a6cd5659a1a2a67ed177582d6c88d41632acebb1265616a5ec3da5bc63c5815351375fc21a046dca6949da4745e709c927c04a6c448b1c810bd6aaa301cdbf693171d4483c383d7a728ea578c204887dee6b91aa641fa5171fe7b08faef2602870552e8689d6e7cccfe13f2de37e26133f87943b3d7346e8d1c443ec43b561610da3b095103292a943c7f6994ec29670ba2f12ab325327308738a46a08699c80276765bd644436c54929b4ba2df0043b07302ff36bb3b6f40fe24b61a5311686e5b90c738cf3757bee0224b925b812a49902739decb7b8f1ba664cc5bdd13739b96c54f92450f029185bcb7b5875368bb04f5e70a6056082f761274cd10912016133758f75499a59e9477d45639790136299280416abed0cb8d8ecb345833f25e3a08f3581bbd333f964aa302379f726b2526657bf56bfb1b606542449e4fbaa4ed35010324aa021c1ed8a79067577f86597da741324f4bfe8697501c4b3a28c26aabc02648300feac2ca2244022701e436b97e848c9f5b1673ec5364a71228738833d113fe0eaa71d38ad6375c2d7f41ed08b6738da428664a190e07a74247a1818c83a6846d3145329ca0ab3a66b87c72d180217d5dc0e00a2aec5ba0f6ed4b9d8d3171a5432bc9634a48511e94c6f22f76f04a58091d10cc6152b14614f45867ce5236ef4cba74fb8759368c619f61b029912d49b92c3eb97fb78a164970f0d23746c50354e980765972130c50d0f6a325e0c0cfdd036476ab2bd25191bb7cd89eacac31ed1df1c14a485c6b23ced8919ebf156e8c6e45ff258df983042a11657ad8f706565893e7f59ca60142d7b7956b7bbba0ef5e801a21d947fa91d4984c1e1f03daf7f674447c2dcf91e1484ac8e77ac9ad2df259304f85aa474376a0599053e
+636a1607aab812348834c740b8d13f9265ac3ea11cf869548ae61b588ea87898
+Ciphertext: 250d03e2be4109f334a814da383fed696e04fdfef551e07f5383a97c411b52c3448e224c82c882badb1332292d118edb57b96566352d21174cfccbf3ca15c2a29424a8dd9a8afdb7b200c0b28bea18f9d01fad26ff53568c91b76b29e46cfede886501336b21ad81a4ff64522693df6c451f1def83072c5f705fe094aea20113f5293231a3b496a764a996b2dcec7a245f09566dabf734de28a4234d6945d48d055a90319bcceea77434024dbea30b6a54608eca8ae650264392d0b822dd57a2dd9b2a1260d88476e8a91ee5a8ae6355129d7ff6b7d36906f322cd9adf39fb16a1ca117f5f09984f203f899cf23d9a6869890b5ffce5fe002719f62b13df278e4dbd1d8c934cfb5522a38fea0ea3f7fc0f3b152cbd9ab10bfea0e7746e93c50943c7a4882845bbf106fcda0049720d5c1af0df75eb43300ab23e44765784fa600dc6e86088bbdb4af9f6683b4665d1742ce40a6ac893004124dec9e6ef6ce2109c6d1872e6aabb463324acb0443b6b377a8db106f938f04bb72e62625d8cb17d7c286b31732035d53086b6a27eafd0fa38dd49ca3ae14744217de9a09071ce035e8a4aa60570c01416264cdcc14284d93f122afba5cd1af505c5424efe01f24a4028c76991f4ad20d2704e7ea5531edcf5a3b749af2365e33735a14ebda3b258c97724170fd107d4061e85c2213ea20739825b0c0adaf11e62833d8b9dad5f4d61399d07f1d7316ceb6c05520a0a6b3045e44853794e1c3549ae24542ef93262636ba9bc5b807330dff18775f6d93d54512340e34000d1b27e3e3a5b3b13749c8b7f69e178b9619d9844ef585a8024a3fd0b468ed35ef447619552d966a2a155bc4ed125a524a7c462904536c69f736eeb165d04b1defc629b4f5fb71dc3cdcb29a58b4e81ca0ed2ddbf5502ffa7146b889a4278ab4344633dae0caaad02468a0f798fabe8981deb9bd8a1ddd391c0e914e1aa954236a9b0411d7d7be4e5c77f6ac01d8378af8c297b38d5d83cd366f1b1c68c460aaf8e5d0b1ef852876cafabc3973142b7b61f717e4057d44e848ed63bb7b3b65fc3838a1cdfd0adfc3cd99652b37514d4eccc5080ff3f29f9420cc3c54d7747940efd5b5b5f3b972fe5c141a905462d227775316f380ef18db3b94b87f1dd3f5617507d853ecdbf4b9977fe01fbd6ba94cde6d2e196fcd0f75352e8533d1ad8b2848eab4741e991a284bec52909bae6ee882b586b812784be8d50d76aa34773260e5055ebb083b446231fefaaae9b05a2153fdb74651c0ec6a5d62f211d25c0e9530c324b41d4d179198569b00a0db0893602349055fa236256e5e1429ba4150f310d2d155f6e5a64987b388137d8d6d575173a6903a3500ea58b807a4234fbdbd5555731f3d628eb44a97ba86e254343f3ced6ea685280043d5dd10b74d4aac50596160c29296aeafd8a913abf5dc72c9749bd0043473d5086e858cb46ba6edaf4b5bacb2975b96e6a51108fd11747f41f101694b482d12cf5854a3a4ee79e34262b471566a548e3c01ec094e1908dc48ce148e765c3a635dbd19cc759717317be33305507550e8adbcafafeeab1ee0c7f4d6e7b282f8eed7676d995ca46a560c48e3793f66672359fd27e2ffd4061718c32c570f0e0cb87d05b9001fc965ee8d291b0e491cc4eff4ecf97472027c2e5f17bfce675a6243ad6c59a4bdd7e8d5443837a5502097e7aabd6eed88f28e6fb6d2f0cc26d200ba352fb30e4f6623bf20d90fbe98d109c87cdc541e9dd4099ddc7f252237181ee7d3bf3829845333ff62d574317db9fa2e2d9e9e682fbd88dd9171d87e5217f7de544ff688e6f3ce8677f692ea648eac68eca77e08a10f98c587adc5cdb7162c926364309401c37e9cf1dd0786d16cb3ccb91fdf33c4719f5833cab596f080bf243c4f61ae6fca9883c0548404d89ba32ed3dadd9ed5fcf4c41895f6498adba423b86712b6ecdc956f7327f49ba67625049dce56dc5157bb5b855fb0fd2994f189cec11db7d53538d8c82acff0fad9033e28738e76507e33cb30a2cd81f26cdd2c91606d6b9f86c610cca245b77bc7a7b8fa4f3b096ad7802896316e41a476958868fb5255f2fbcca5f1f45d1a0243e42cb3b18678d436f120c1c249a78380e65b0372a00503d0d94513234c76306980cd6842e9311776dc6fd6e99ec64dcbbb168c469fabb82392914660e1c871364690a547bde
+Shared Secret B: ff6634726b3a06e7749e20864dee9d55e10568a0cb69d2a54080830ba3080d33
+Shared Secret A: ff6634726b3a06e7749e20864dee9d55e10568a0cb69d2a54080830ba3080d33
+5c8a94009150494db4158f1c79d3225fbfbc2333c3b1e343931cc6b133ea534d92b7bc0670cd05776c98158869ade5238e28c794b9d0ecc619e6f13bd53af286831a9dc2f0dd34e3284cbe5d95188b70de12fd3d77844563c288ff7f89a50ffa580d36b6d95b26404c563fc61ecfc97029292eeab02b2f06fea2afb8a644c04476def2e172fe541a315176b92af8b0af6a7b5062de8db22c96047c4807fc09ca66b472fdc26a802fde50122c3085f2086b53fb9ce3a879164bb1a5503fcf558e1896204442090ad458869a84b33978b7d86fd5ebb4caf22df602c1272ba80b8b184841af077f371a6b558b4bcc48126178c82d7320718fef699554256e40d5da79804d295a4f4b0917a06db830a3bc5839c03895f16d071aeca097740f8ec99940ed28ad5986bd2ab5f20d809f7767b74ff12b510d51bec90cc3616e1b8f0ebda05d9ae7634e20e8f594b03a9b201fa892e5a3cbba55c8d9225df8b9ed9c919cd5ed7e470a57da953470b458a4b4f5ee358740119cf5be4de951bf6e4e194abf9fef0040e20e71e404d4943e3e68861931e5181a0ec53a5eebc062d7ee84519e6302e0635efdc8536f7dcc826a88cf52dabef465dd1efc52fb19ad067e75d65e718a188d05a9d362cce43cc9eb942dbb6d530e7826af838d0b68f565e8d7c0be2a0d52edbd4275b57f25c9e57c611cfc7c07f5c977eeac231ad83311b7b6433b754a7bb464428a472836fd8d3a6bfb956b5a7e938529dcab3ae5ef76e15a7ed51303281680f88c9603ebf0ef223246b2741014f55748abdf2dca15a96a1fafbee14d4ec9185187799654560740fd3b9120ddb21c31e6318f011039ead0faa23c73af41e1608efd3b9e67d99ec29086e79d305355d3ff1462c14025cf694d7e8a1f13dbe122746aa1b104f564845c65255923d27a0533226d6e6faf753e1b6f83ab77c9eb50149b412b71f255eb89f30e971de6c5704e6cbd5195e82a7f7dc7048eab2cea127916f5015f9e195fcd1415bfd773ea4efb545a49e4479b00bbcdc75a141159b724cf7016054dc2f69e960e307693e9e62752623417b7c8cc570de6c32153c59b318a005209d4ea2f5bfb2444a925013cb6ec505db91f2c9c1133c06e5f35af3b37e64e63e406d4929b58e94519649eec3c6f7d0fc3bbb65304b330fd2fe1900667c8fd103e0373f50c0be2970797c1d950fc2c2b6350b550bf2e469b0ea8df55affd851148f10ab5e3500b6e8e89e01ca0f3a48c26dc9f38d1c2bfb2bff42af5689c56245ebec778cb83f56023f3d982a6bfccfb0754c1b4956a586383ab06144b1e765fd96858e1813667d74f3543a823382d8894ff3f4d494fa27bba55286570646a06376a0591de383a729ba0e98a75e27699ca660fa2e2ac7855804b114951be885ec83ae938404e3db6d014e77aa114a474efb6ca8001d2b764a9619ffd011ad1673d8cba40c2729b3911c04ed9d9fb92afe2772f3845ed030c3e879ee5af8c7e5ae358b2f4633d7d78a0c3a0a5d0955d70a5793e8d67d497a5085c48a502de5d376fec7f41de688f90cd5e0cfd752969a608ba0f1ac2d972e13ed0086a174bf9c90b8a0d07c07e61781f72c74d5d2d0806e0f78b2a5497200abc84022369966a423fcc208908a7439dd66c4d0efcea2522e0b27b6df0e47f26242faef4ca4049628316f4b7701a79859a4c57e62855ae1af7af07787712f0f0884ce7e8306b9bdeedae65b9fff9a1ea987df761437f506d9ffc558f145b11ce7401d123081916b3e1d622c7ddbc824e809ac3f20bb968ad2451a78ad073880742df172b7844e4399208b0ebd388dbf423d81904c7cd2ed9e1cb59162c3f7c8fb9318eb4b13205b71ac6cd7eaa465f6f37942ba34f798c0deb2a178cb55480ed1999de56911cb37ac62e725db70cf5f125a16583412961fb59086ea9b8ea49f6cce5bb1f6e9249e4629dd13c1fe72f65c8c393a623ebb509271669357844c5ae826cd5fc110bd5049beedcd1d325a1978510c312be437059e970e99e75bc44a96e985bddce2ace5ebdef1b4d6ec516326136407315140a52f3065d6ef49401376b5542a41b72679d92d8070695fb7cb9d885cfe0026148f09039d16cb51a9b7acf2d6850cf0dfca892ea8ad1e86ecce0ed0140e9e08588d407a523749256ed01f8c9a232036ab1d1fb3ee2878101a5a65788ac89069f2e913c8b5b78ac2032
+Pseudorandom shared Secret A: a53d4e0a37e2976472e15e5397d8b869000bed09e7098a3e04952de9566a2734
+647d337a1890ad97465580086be63bd029bdafc527f65b309c2da30ae89631824aa75ac89c9b3bc9e068aa6f56c83e6b58a095aa27b26c7986b209b5802f0039
+Public Key: d8b309edf942dd81caab89aa476ba001b39d147309c0578a8a44920a5bca936b9fe770693b03b9edd91773050ff1070b3037c91c3078e72ca86030a8ae26b8d31a2bd577c5361b585762a924957d2e7b7d89bb81129829f48242e70c4b1f36ad01a4c14b83446de61e149c9cb16ab3a6f38dc379cece409d506763894917d6fccbe5254d95751e26e3a837a2c9b125aef03997dbeb1de32c5b11f60341b70fef91a7c6f088722c8af1779844929e81bcbffef19eacb58788f135d759780498b2f749131280233d55c17137a23f953741e1c195ac46b5eb0f3889cf9527771409892335a2f392623e085047951274c92bde050a34c090888cb356227f9c89c07db915edb3294904921daac58a170a8f7ab0dc4abed1a5281e1025dc7a0ad5a26fc671ccdaa77fb06368c2f0be2b1a3844a2617cb92ab8d6bf239b169a69a07fc50fc0f83e9372a61edaba40046367f79153431505618cd69a505428a2ac7a174e7a86852668e5b371e02b06c6c8008ee424a66820175a9a27b04271515328a28d3485b2eb93886bd8656fec8533c296c6614b23644a62c5baf88b9696160a4189c8b42a0501b0bf777c77ee742b42dc6b4a3406bdd897b8312b9dea5cb0d45b2c6368caa20cac0c5f9e330f7bb7a9ecc3179c9c1e3f1631a5c0456bb81949b48f981343df980330318dc04c2ef5001ca1470ec3b41e35f194bfd537032983219163bb6b92cad48b3db6253af55542f8936ec8ba415459794578ae6356ebfb54fcd96c8a8635c419cb14a357894a48eeb91c58653c1d285ad5ea230779abf5611be0e4567cab18cec92dce80c9ccdbaefef89b9a4181a2153bc6db7d49a9af49492ddffba3ba65ba1c7878b8788f3e56b23f433f0f8a1b3b46b699a1b62bdc534a23862da446ef262bb26a0c1310b004185098f689d9baa8d7e89520fc6fff1ab27a17b84f477085518939942d980a8d81a987f8d4891f0c4e89b63e2244cfe343ad15469d37e0174218b8c4c3a6e1577942501709b4ae1650b26256094d59352727554ac871ee30944da24cedc7cf35136181c00c7e80b5c110b9f7bb966e5b5012cb48d99c85880386d41793edd8b34fa8a2ad51a8bf366a7358978ad1290ed54db2425c7bf78ac07327e537644304616ad91463164ba7caa5475a4439fc200d2499ada833767b93f2f1324792c5c9732ff84a8f894a6e0d95c9551a75888b270cf42311db4b2f2419f6963f5c31660a61288f7284b6148e8496c0a6689fd91a805d1bb20340378da5ccd4a52a03f48019305903c63e2d798f1149078e1a6b4159409cbc1389bbc4f42074d7185d0c3888970c29d181a1176a9ef1aa5533b553ffc1624023b83adcb4c4c08612593cf332c07b680346c3c3c26659ce08a83e188eb18c893d09246b804ae3a15f51b1506080460c5a2e3bb7b0a9ab7d04b70848a58c52c66273362b7ca2080c6bc65489524e2c1f1ad5aba9582f2805668b1a9d56a5465fac1b787022fb248feadb71f7db07f98a31565172b2cb336b2191b9b35f88821308870adbd2b14199ca62266296c9221bf181ef6530951a7bd3707999f943af636d8410426580a15debad3ca012d92a28cdd9656e635ff8d09244056b9a838899b951c3ca32d581a63a1c4d0bd5205fb661065b372c1593fd86c69622546040c41644a7c2878eea78b8b6c656a2eac5788690ba790bee315c4f208e2b6c4e552228aeabb450bcb18945190d2cb35a4c2c2748b44e6126cc83613e16a46060252a8876f583382124a25ca1a9bbf01cd9d9bcf8bb8c99e7b649743caf865bb2250b868ac02a8aadc359cfd6b560651538301072e8834fff1567f0f19ece641564ca013bd9997fc424a7174748f7488f9360c4bcc146d78b9d532a8beb2392cb82b937182ad012970426f9db971a924a5be4c1c24a301556146b5035f05bcacaf2140cc63ae4128572962f8fb869ebb99c0d969c27855e5828a5a5ca7a8c6145116ab3e3eaad525760d2e472163b6d40ca8198451330d5bc25f5163b326ecf798966b1bcafca0ccd1a90b0096b0fc4486bf68ef3a8aefa48879eeba9877ba5850132fd7a0869cc7a6d8abe5b752a67d6863677be303545770c813050842a271c263690e8fa3f6e92906efc54a76abce7e825ef2767a4fcb569643bc9818570a8a99e3e6fe870e290d2d9642b20f3ed6623bfd0f3ac1d432a4ca7a7b3b7e2
+Secret Key: 74d7618de5a115628f22a76bc3b7a58b4079bb58051b28c6974aab8dca8bf7e43436911a7ab8a5953624d36a1c9c1306d3651637110bb415bf3f22c2d88281fa21821d04aa200c968db0a33d55c4cc465246cb774bccbfd221296002876fc6156fe8c76fd15c6c1ca8f036537f0994fd46a35310216cfa2663d26b9bf4cfe877505d812b6b317e30e0cddb074504f417445c96c96ccb6e3c61bf385d35a26a72acceed0a44f14bc376963a84807f1c0c293a63a087b5c94fb2989a953650d7990e4c903211a1c3e47f8f28420c305a5d7cb16790beafe0c7a7945bc488b871b26af41361b52a5e1e8a0e78112993124abf30873cab98e142107106a12c3bbac259999a7a75619448c04643eab8a503daae53256cf570b8eea2ce4b3137fbfb5e5fb74bbf7763da711d8fa5427ad008b5882935f0af833ac61d5316aec35fb6d146bf8144927888e4d8b050f95b7fb84f2eaa5db6006c83f557f5198d3a1a39bc80acf4f0a4f0a5bac0b3b3a6b0816dc4b484993e060a72e2b913e5c8c6d1da54f68774b5653684bc4fa6c197e76b4ce1091919c28f8fd93c3aa27fcea52fb8e90b5b8ac41ac92d79454959d4b60d186caf8bb8ed968d6cebc1fae8705542009c63a94cc430349a62d01b282fc66a7f3b34f5d69395866d29e9a37768847ed22e061275a4d61ffe2236dda66e77844df8a859e3202f70a8b5a3caa9df81cb0464cb91075609011a3a71be1ab59943b75cd1b831295542f8d14e019287b75a8fdf938dc750a74bd81d4b23bb049465a14a9a4f05653df335e021c161e97697e49df423cb7e013177567cdae1cbe683cb0e1364a21b738e81b2922a9f469ba27f7a95e4751a4de71437543cdccab0ae2b6d82655a56d3137f565b01e1629425cec08b128dbb940077188fa5caccba263e011850e7cb64d183b09c708569cb9ea34ff33088e515bf3a077e3083c1b2c358bb753ae80901d8618b738011b7111f89f920567c4419a82ea1879989bbb0bb946792758702241bef462afe0010d8948ec17b5b69d84c1b3866f810ae205804447448ba4b2ca5c813f3d72f306a7b65f8887465710e57308c22c43b13c060c9378f463d740a1cbc958af0b9ab09ab142e2c99d1009126833398468e2b5412ea4b5ce1711244f888cfba03fec83e57fb216f5426d241466637a9f051b0a75081636895b7f345348c89be7486696cbf218a8949a6415bc8512e5cbf52ac9bed53b2f09691981c2fa80564f254c8a9808964210e073849407452fcf8bcd8a92bca35402d595e4cd8952adc9b1b316a45a0c68ed29e1b11052de243f343853469b0ca6b3a8c5988241c0da140201e8676f070cc6994c6297b39f137ccd132143a384652424afceb62c4b259dc42abc559535403608251a4e1c51c309660f07b69b47b44ec363cae0337c3f47e3c2b93abc54a272ace061526457c48cab3c8b85c67eb8996903039b63b16c3f136762b7f0c0c7d3dc3c9ff2cc32d98081c9c0ef9e82b05e69a5ef27e9d8b1f2cf26b3524244c83c1ad158f6ba31a71050ebf7c39acd5b60cf790e722b878743b73064d67f388bd900e686c56fdac39db292200f4101744c0c8a90eacb177dbdb51b4d0402ff7a8d5c8703e31044db830b547c1fa5bbf11370e92e6191877575a863434a82943136b3f8559a65ba6a8905450a21708d0c7c42a074cf571db021fd1ec75dfe8723e64ae19542f8ce6c3c689439ac4c2141775dd631d6a706be8e8b91d6b4e331c85bf458542d399596724f110b5c23768842aad32311baf16990ff467d2362f569a360534295d6531ea9273850b44f0d1317d188bffabb94e841d0d893c0125b87b855773a2a40c9bc4b291be404cc22346653d618a5c8379a5d0abb86326a949cc0b87948980b86abcb026fbbd46d77a79b62aff82865585b13b570a20a8b1ca4a5d45ab2c77e030e571c43a9cccf360c6953243077c467158382f7aa72d7127a1c1b2b2e5075c13a4281883ea33748e2367827abb41f5ac8b085f0898938f31ad7846934eb28dc8673c30fabdd1648a23e09fa1024239f48264235b06707ed18bc070db0891f512472a365bfcb7ba25ad052847ae66be28ab31989132c5f05607fa51de930a1374caf4e59670b7458c641d842308ddf44f552833dd3634beb8b0d8b309edf942dd81caab89aa476ba001b39d147309c0578a8a44920a5bca936b9fe770693b03b9edd91773050ff1070b3037c91c3078e72ca86030a8ae26b8d31a2bd577c5361b585762a924957d2e7b7d89bb81129829f48242e70c4b1f36ad01a4c14b83446de61e149c9cb16ab3a6f38dc379cece409d506763894917d6fccbe5254d95751e26e3a837a2c9b125aef03997dbeb1de32c5b11f60341b70fef91a7c6f088722c8af1779844929e81bcbffef19eacb58788f135d759780498b2f749131280233d55c17137a23f953741e1c195ac46b5eb0f3889cf9527771409892335a2f392623e085047951274c92bde050a34c090888cb356227f9c89c07db915edb3294904921daac58a170a8f7ab0dc4abed1a5281e1025dc7a0ad5a26fc671ccdaa77fb06368c2f0be2b1a3844a2617cb92ab8d6bf239b169a69a07fc50fc0f83e9372a61edaba40046367f79153431505618cd69a505428a2ac7a174e7a86852668e5b371e02b06c6c8008ee424a66820175a9a27b04271515328a28d3485b2eb93886bd8656fec8533c296c6614b23644a62c5baf88b9696160a4189c8b42a0501b0bf777c77ee742b42dc6b4a3406bdd897b8312b9dea5cb0d45b2c6368caa20cac0c5f9e330f7bb7a9ecc3179c9c1e3f1631a5c0456bb81949b48f981343df980330318dc04c2ef5001ca1470ec3b41e35f194bfd537032983219163bb6b92cad48b3db6253af55542f8936ec8ba415459794578ae6356ebfb54fcd96c8a8635c419cb14a357894a48eeb91c58653c1d285ad5ea230779abf5611be0e4567cab18cec92dce80c9ccdbaefef89b9a4181a2153bc6db7d49a9af49492ddffba3ba65ba1c7878b8788f3e56b23f433f0f8a1b3b46b699a1b62bdc534a23862da446ef262bb26a0c1310b004185098f689d9baa8d7e89520fc6fff1ab27a17b84f477085518939942d980a8d81a987f8d4891f0c4e89b63e2244cfe343ad15469d37e0174218b8c4c3a6e1577942501709b4ae1650b26256094d59352727554ac871ee30944da24cedc7cf35136181c00c7e80b5c110b9f7bb966e5b5012cb48d99c85880386d41793edd8b34fa8a2ad51a8bf366a7358978ad1290ed54db2425c7bf78ac07327e537644304616ad91463164ba7caa5475a4439fc200d2499ada833767b93f2f1324792c5c9732ff84a8f894a6e0d95c9551a75888b270cf42311db4b2f2419f6963f5c31660a61288f7284b6148e8496c0a6689fd91a805d1bb20340378da5ccd4a52a03f48019305903c63e2d798f1149078e1a6b4159409cbc1389bbc4f42074d7185d0c3888970c29d181a1176a9ef1aa5533b553ffc1624023b83adcb4c4c08612593cf332c07b680346c3c3c26659ce08a83e188eb18c893d09246b804ae3a15f51b1506080460c5a2e3bb7b0a9ab7d04b70848a58c52c66273362b7ca2080c6bc65489524e2c1f1ad5aba9582f2805668b1a9d56a5465fac1b787022fb248feadb71f7db07f98a31565172b2cb336b2191b9b35f88821308870adbd2b14199ca62266296c9221bf181ef6530951a7bd3707999f943af636d8410426580a15debad3ca012d92a28cdd9656e635ff8d09244056b9a838899b951c3ca32d581a63a1c4d0bd5205fb661065b372c1593fd86c69622546040c41644a7c2878eea78b8b6c656a2eac5788690ba790bee315c4f208e2b6c4e552228aeabb450bcb18945190d2cb35a4c2c2748b44e6126cc83613e16a46060252a8876f583382124a25ca1a9bbf01cd9d9bcf8bb8c99e7b649743caf865bb2250b868ac02a8aadc359cfd6b560651538301072e8834fff1567f0f19ece641564ca013bd9997fc424a7174748f7488f9360c4bcc146d78b9d532a8beb2392cb82b937182ad012970426f9db971a924a5be4c1c24a301556146b5035f05bcacaf2140cc63ae4128572962f8fb869ebb99c0d969c27855e5828a5a5ca7a8c6145116ab3e3eaad525760d2e472163b6d40ca8198451330d5bc25f5163b326ecf798966b1bcafca0ccd1a90b0096b0fc4486bf68ef3a8aefa48879eeba9877ba5850132fd7a0869cc7a6d8abe5b752a67d6863677be303545770c813050842a271c263690e8fa3f6e92906efc54a76abce7e825ef2767a4fcb569643bc9818570a8a99e3e6fe870e290d2d9642b20f3ed6623bfd0f3ac1d432a4ca7a7b3b7e252c21edfe380868b0e34c1f379e7efb77579dbc9d691c9a7a38187fc8d7a40954aa75ac89c9b3bc9e068aa6f56c83e6b58a095aa27b26c7986b209b5802f0039
+63c5c2eebd40af0a8ece280c697cb8a0d0095392f7e90d6378571016c34776df
+Ciphertext: 75772721d746627d72c108de1994275f42f2b732479be4a57364824e1651341d315733a853ee325efb1f31e643b0c27fb658329d0513c1f6c91b11652c68b35b3e5b6fee498873de0836593c6864a68274cc7e1836b6b2ada9beabff3c08b588a9c027fb266b1cc4933671f0f5d7a7c273353f4fac56dd67f346c75449567a5df109a8a60db011491c0eb0569e07ca1286c08e61f4a8fa29b7a2e9586d687bf28e23bc9dbd2729f1b94c55345fa49687ebe1425217ab7eb9d21e75bda84caaef54cb8703eb22acfd56a8d48afcfd85c896891ae0c1d9c129618688437c0e75721db5a953340ad0cc4fe8e84a337ce117c6dc836fd64cc77b392f6049ced9f7ce20e88256bf0c32baa8e07a579cdc17296ed58b7b4eef23187fe6a56d73c48a181791daa1b510da402ebafdcc57fbb7a0ad422bfa28551ae9ed1c9445090d142f171d788bf8b04c843a81aa62743bfe276d1760ab531e117eae55e768462d9a89dd95c4be172aa44137d0e071974e61a272e5827bb1630fb50e9a35f0c83997b2487a4dbec1439b15f07fba5b1bfd8cd3b9fca1a26071528967c1eb375e7992eedbc0c5a80b5e68a49a05b249269bb333d98b45d1d36a8bc789f7786ffc55983a3a4f035ee711522b26327be04bbb22414bfb821a21a87d1c2c831559f300afc42eda2e614ec582fa9df068106f7857ac794c8ff8bdbf51a2d9fb23dd756f2e11e90bc995ba3f8fb0679eee5d899c1c63c8d9bb2a507a930dc6beef5c39d3ce5f6ecad2affe11ca2ab58df60acb7e60920987daf0c3d4e0c0ae5a0dc84ab14853eb204245894a7151f1a0ca26562d5ee054acdc7babc700276a653ce9269e6ea959ee6e1d59f98897d90f040dd4b4cb2c5e2021c4d54968531a96a76ccbe92cfa3d35f163f5ff9066ce43f74a7dd870f24eb8c4bf3573f31b785373be6dce55138728e97c2014fcc598d227b2a479fe73c97341596182e3f24b48613ae8a9b2920d0bf9c67da394750abc229e8e922a3fe0ac7db682beff80e659fb77b76d9ab8f4fcd917f66892c83f131683183cf9155031bf599262961f3719aae8a560153cb1a971d130c91faeeb3b979340be67d3d9a2010cf14469848c5d701f27b5403adc87295bff042d34b095b4f2fd0e41207c822f96af75fea357640bb8e3f6dbb2039f5b7429a191393bf9022cdb0f2af91dd6639f094031ce354e9c4b4328ba11072171539b5c77b6d7f67d56bab464e6785594ac5c0aae7a921f6d10ac9703f245d284ac24b7c195d4c9239794453624b3cdbb9c3c00f36963f6503d443848e9e4988dc7b08c4fffb66c1bf87c5c63a3f212454428bd9093a7c6b19fe3151af04fe470f81ed693ee4f0dbf3b097c729eb8be3efc9c3152b1bd2af9d0ad5d0afa616a8aca62e8251f6790839a989be1110106006caffc8f42c3522dc05a1f3fdd6a20043ee45838ed74dee13779d64a383a6cb894b98b6e066fa5e70378f25f6eaca17b558c593fb7037b14b45eb3f1185ed21d817456fb2700927faf190cf4a49874a74deb271d747d94cdde11ede5178864667295cae1246cf86b2a895e6a089ff0fc31b151e13caeaeb19bbd78fcc869a4397628cfb95b51be030c0af07b312962a799a1c2a91639bf1025c651bcb33152e7298706a4a1a06700e61cdfd129486b726119f1d689fa1033900da21893e57593a5c12188ac139a3c4fc61e97760a6eb3d620ff90322609a23ab31b0f9200b1de38b82259eb70c79970e9d5fe0b16e5b87256cbc14f42507a10a7376033d535d46adfac67edafe6d2e5a106e8c4f041957a65be4338951a7e251c6de1623973c98c78e7724ffe0b63cff04bfde333a88f29c2e41a681c4a8e14c52521cb0116c5af91f53e1fae82d08774954bed82df1b358cf1c680e5111da3245ee36b9466cdd615b09ea3ea3acb0000e00f1e55480d71b73ab5ac192d09dbda381f241c5b7d0ecd227375806f950a651e0a3f78575101a3ea004a20cfb277c1e1cbc23b7646986f172ab817372020c7ca287a3d5324230c9bff4cd567ec9b59df89e5e2875f04584f7594f0eed40acb70c0527cf7a266aefd9805d89d00cd809de35fc4a11f21c6424a23d7acbe7736a908d99304f29b70d2bcfaca9e33ec38826092efeb69714d49edaf1ffc1e5ae55665681c361763317ec74332458895b70fe6d84929b0b3e699316a4c2eac2c83d9a909
+Shared Secret B: 626f2c3c8305dc0804da431b28a365f2915ffe0e625561870c1abbe1fee881ae
+Shared Secret A: 626f2c3c8305dc0804da431b28a365f2915ffe0e625561870c1abbe1fee881ae
+88401429a05c6d95e54051263f0670e8870ddc8b7b3a4cb53a15a5e9f7591d3fa6e47aaac104778d6109d56cd940d33d0ed6485adb271f666e18c26289a2b5cfc2909dae5ae840c3075b1d35a05c9f0a9596d77166e96cc24feaf610e2619c3f7665fb2c409564b65af2fdcb2fe3e6e00acd447aee1263fae91ec2541148b68783aa363ac22a29e8ce6a9602f676ebcf3d33f079b51ed250a60de1fa671d82ca2f0378388d184b8afe685a1fe5c9360d72266a8c45f5fb7c7f6a4a2f2a9a04280a105aa067792129f31db3aedd287bbc0c3b0844f0f44787d346e94d1fb04b3256f6f52a0c53c1c2d2eba8ba8469ceb969f34b582fc4331560d98316ff7dd5a66e4b509a141a4aec5a04ab11084bd5e6301557200ab7127781fe04d6e789e2d595e7d60c366fc506d0197a705b3a1b142620b9fbe278a46ad96f3d30d162b13a275632f1e63375d334c32e83e187c69a2d4e01970bc8cbd5d9b3ef2a48f0f4a05f84bc0c2554ab835559fe268faad24606347af82b37657784e2a9c77c53922553eccd3e0a820f555015ee9943b0b15a452623fd6cb72220366312a7485a4dc196acf3e0c40f52485e008f483f6267845506440b85d5f8219fe98142de40089caae525d3b02529b451d7f3603884c734a761e1aa74b79201cb01aec4911b058b103288e442ee40d7b2d923cae32c453b7d830809d94ae16515f8639f8f735144c98923fc7d00096df10347819221bcfd982756a5b4ecfc973a9669a315e5c7949a002d9009c7e9f1c1d2d17084e65aff4aa769c41ce96189022778a6828b665a8e0cc5100cd5a5036ab4c47e16baf2ef1c31c47219aec76b2191edd150eae8e5a7c5316b8d61d8ab1b46e28c2b4e09858b07d0953be4a69e30fa3f170e81e4baadf97ef1466889678d1c55d2d5fd39c09641244220215efeb57cf44a4d9fbbd6562ee379396ae46ef6fcd8e3d26981a712727da79ce39181d0cf49979ebbb062507da716caea42b9e279abfc1f9ba4edd701f54f98083d581544b1740e7de78be16f90ec9b854edf2c70ad7be807291d56cb4d62abbf614991f293688ee09d15ea167300f1cff71c7b8c987daddf62193e1c2e3f3c9c5b1e74fef1e559c3fec69b4d92554b1fad1bd59b18bea5c575200d29c4e126ad2bfbc98d2f3c621d60c81d3f394e7c5bb1dfe0204e43d7b1044e033e1af1aadb5dc0c0b5d1e91f49be3c9a867dda5a5a33dc75f9168ffe4ad10293b4516edeb029a391c2b0790e0338bc87641b90b1a7855fff57a656893a0e9493475f11d78e0ba5ac00807ded08ad2de4ba653173cd0227c0cd281d51fdc33fde3d27efa2e2f6e488bf80ee2e3e8c25ca3ad2fe391071f8a50e0e581751cba59421c52575ab41744c574c2de280560faaf51625f4b586629578562ae1a3d9b7ef401563d4c866a62873f4835368fa12d7fae213a0fc5ed2f4f20851233f35e8dd07618745d511dc2055dd9a25c01a6361cae7a60869bf4167f070a45ba1740ac1ccffac78691cc2839d7394fa48a58df9caab3e9a9b2cfe217520d5be52c735f489b8d08a1b34e7b806b23f4da04ede4dad36f26b5b8a88131c09d4805d59143be4bebd78c3d764d580708b77187d44f971324989e51d63780c42b0aa7120bfb13ca1708e05f6034f314ff7a561350be709ae81148b58f268c9740297d23e1096f6252d4b2371bd6c343f482b7d30d191ea8f607862e6df298d0c784f376b246c0f566afd004fdc261a9a7c4bf95685c9fbba72d9a17e5303accc1202f6774387f57eaf96a21a1def8f025368b93cab5223536fd4efab5ff6ec17f11e25fcf71b27805a4da93edb331139d9b22e8139ba08e66bd7a66a4eaee6484dca349d727e3f97e4fbdff1809de9f9a34c00329f0cdc8b90b70a84e23eb55c9a0adec45585705be07fb39d82e0b01b7dd1661fa3beb202abda57ac64fdfa975ae40333d88285231c293df309e7b8c258734700a625ca64e4e17e7072d293ff51e4f80b6f5a1aefa29f77eca94075970544e24c6b8599ef1d8464d44a1d780aa557077c2bad3bf61913fd110a5769e97cfa2e4f8eaa438875218a89c6a9a812dabdcd109fcff8523826e2bc162b9bc6d4ae8e3711f25c69606edc6f69e1eccc83886e83cd292f50e4f8e9c15f081f78adf736944173f94b2f78b02e659ed685b57b01a6a033186826faaa7d24250225cbd8e1e729
+Pseudorandom shared Secret A: 68e706f37a3a7df48c05a30ece6e4335b13d02568f57bed093398532237c3f40
+3ee7137e3fac01b7b1b8d69d9f1ab324191626aaf735a6e9cebb09d65dc2ac651235d85a55038580213c2cf28a86665578da08d461b5584c3648ebec4721af8a
+Public Key: b3da6542706e4999a1744c4f05b46b774b0d7965a0cc61a2aa0bcae39028159b3a646b967f8b582341c0c16a038ee43be7fa900911144cba75ed99357068c00196825c485cfe75a81c071609785f122b6db8da86218b23bb3aa00bfb5833802678d574fb7563fea45dfa57a6a84598ca6acddbfbb64e314270766e1163784a475280a2866fb09a8d596809f74006cc2c825467af6c3897288328c7b62ea3789b998b3dd61e198cbbb2b5ab371b4029093d6e76c625d61649e28b30368de316a18e008431b96690a56952203ef17842add681858385014b3e105199180b4e168b094d28380a081121050ecbb8bcf5f6880f7591c262639c73b54cc5a3c01a590eb88d1c6bcee948686ef0547b41c8d617a966d235ba845d65a172dc67a33211c1bcb5ad2e00c0f6f87952b086439cba768abbc8fb9a5f9c272f062c3f426b9dd8c06f2648d98bc79633311f8c0ca1e663b0740d5807a31fc28cbbd83f48b9a86dac4b51196da807032cdcb66754c37de70ef06bbe2f035e84e17b2475b51658419067761e264b4788b89bc702de60319cf8bcd064cc8f645363c786d186987b76802637cd561056e7260f01250e547695b0e0100fcc6879a2801b7019fab658ab42ad9ccb99dac86aafb2b1bc9aca36443765e0778ad15a35909521e625c3e45c508215f115b5f3e94d743b196df5090310aa5311107be28793447b0e103a7159b578d60910155e602b9f9057c15be507462203c8721df1e5c6af5c390ce7b8b00b0c44f52f99bbcfeca1362de80f95b39d4704b106f2915c19a4f5661515e001bc0a2f6fb653b20627c1fc4ce20b77fcc5497cb785928047a981932f9a1de9da9a7462b57390c7550c5d8b6b999e738a1133a50fb903cb8999655208ad9ab19721a6c5ea204f080d38a75b33500be482a4161c356b8ace241298fc09b95df06c5634acee4b8d09491a5792c0de87233d3a9ab28442e5892ec0fa3e07652873880b618542143accffaa91c34483977737eb99aba9f16b93918a73e694d3d95cf9a5011949c153ac1ffd6965e7bb8281782c45c4104e72ba9da3a6d4b83e0d8b855ad59a1f0254406ca5b9f539347274bc4ca5ae5520b7f45e1fa38d8a69c38b44b31a2990fb8b375b50a434e323f2832eeee304dc0b4b63d262a859c6c3d1cbaea61d69f94d0f6c2c42c49fbda44e52d55dd661182b546cfceb02b90bb7897874ce15a946c51c311c17680773dcdb1c7759938454631854cca6947f15f91b75350d24e3511f3750daf22906036e36ecc9c9a1adb28028b0980814851b9c87a9fbaba83851ab960c253dcc54a1f0b1f4917b9e7280f09946b3391f0fd796f1a3bc2d735ec6530edc4129520b091e4a0e3c5bb19ea309eb6a8fca0441d46a2feba7907e37c3faf845f7cb774dca920e2507126a7fc4038c795b12a12669d6fc255d056e89a3c7d35b12e9ac7832361b78a73827124b6dd18c55c2b89f1501488abb05a4a4ad6161f6351e9f79cf615b58e4f6afedc38eee037dd95b5bc603352846bcefab3499193df16a9a566b40e7614a5137877c7a00816b3fe4241896ab4dbeb88a5821709e716739973537715b0cb9074887a182373c503b7f6d2b3ee584b59d0976846735520139dc324ef9ec7ebe7256b252a750772afd0574e0cb74d565ae7f238aef42397d7a0ad8d8282ed3915e563447ebc063c682ff601a383564281652e766796ca30bb75088e6084b5bb24d12a1c86b340e56cb8d3a731c4ab75d96230416414bcf3a988b6914f6662c998967e0f12d1ba6c36bc919a1f12b9d90be47f1a1264723e942a88759a33abb7e151aa74d4790408b62c6016375296870fac14abacd41182434c2547df8263433050632becfab061f5435435a5da0901d92a8319793c9b94b7d2154b23b259b97fa8263c2ab0fa3af055c7b6715425895af8d78747cf4721f223a7136c295dc8213fbc74a244917ca5a11e792bd26c22a4bbae6539726a99bd33001614762d36cba2056273b653be9eb26db1895fd067c165321cad6bf5421724cab3c15a0baf51b6256694907f0ac638c64c2145e17780ac49b1bd3568b12ebbee486ac792101e207c6dae59055fc64f6d573d9cb00ede81649f584f101140820aaa64154b5d834f78193a9d48073f81b5a8b4e39c73ca2bf42e100164121849ea17e7b0dcb9ea5ef339f9c994c14497c5791569bf49c
+Secret Key: 37722d744ba3fdd95c41b718b0d095d4a431ff7608b4447f5dd76041a7a5f6ec8e43d5ac74e1941bd31b22614f5bbc85a4735cb549a21b7839509b62c79a6280e72022762e915b120291282f088acbe60358891dc8e00625f65ad0698e0e296706454efc354d47c7a586072229676068f68b3f457273a6b6210cccb4ba7556d75d00803da636072b90095ca16c65e36fcf501dbdf8372188264ef64f8753261ddc675c40581eac02ac9ca2a5b6805d718262683a9e213ff2f39924635f93a1ca60eb0876ab039419163377b8bad35f2ae40ce4964861db9d93488ab68a25dad6b6f474c78cf07e9fec699be231e69877e91c6c6d8c739d93cd7311542e550719569545f597b3758fdb361eb673a4ed536d654ab4196833bb4b4a8b6c3a71c0377cf1badd7293a8ba3b4eac1031a2627ee1af924a03c6378e9d2a7943c9587c031377d8bcc4a71392cc7bf4a71698734d01901e094b39f4d623c66ab8c7c5b8cc8910c526470644618efb8b02c6c3a6ecbad3601fc04a9fc838b0c2c68dc30a2aee1c76e82414674b2c26a10ee02b6cfb90c4570102d60338c5e00f46b41a5922a2ea395551f3bde0230c3787c38e4a8d084a4916b7a866aa9ac9957d00f7349f36941fd39baab5be66b002f08b4419254b88d071641a9f3608701513a915f133565a81e89468edbcb012265c320aaa84e876e6fac8206c61ef047570109773e1247fd6517b00d028e78c8698725409a325a429cf36641ac145fd800c5ed23099985816db00dc3b3263241833379ff77a5201b1cf4c7c6820349ec7a61ca5540db9eb29d75425ad20093d1523ddd1afcc236a6c2ab912b7b336e082e8972b606c7fa2a417c63c04213062eb778fada2a27a7711ad0648cea849da4108c7bc6a1ee360e3e97df5531d55bc2f34c7642a091038780107e2bc10683a9e250ed3812438225ea2ea10e8d5c060464a09fc961498734df651c8e9121fb554018554c3b1226c59a9fb446ed0b34193d681ba1b94db0cbef6fb58501a49792b19359521fc745d98f9840d01b2cf7b2f7a0b6d179cc44b4bc2e6b5045dc36c67d918c30c0156146bc5d300435bb1b04ba67c50a3d8aa2c59005357b44a5f8170b8b9913f9a1331249552bab0767013d6657b082a2dba9305db055cdd486d29b387529b999c8456b6d5c06fc1c2b27306e284a94bb37b6bac3b53c53b64702cd6333b8a24b8a2a314d3e8993ce50050ac4b3694b56c843bd3b7b9ba2b0a2a8892a3da4a1feb11b7f0084ee5a2ff2312f8b684e75ab57d04013a6472d38923e9810a465666af65bf0acc849ac04e93856f0cc0c9e0f368af201203cabfbeea63976521bf9a5d0f85765fa2b153841c594971fed0817263bfb9cb9b5e21cd22f59d87c675c6265528d6438cb18dcc7b8e20f954a1662e2a206ddf859abb08445f0c940a74a44114a1b5e9648da4bdc732b272d83fc25c680be2a81ac8093c5c70a2410a5015a4b8551848d87ac5155ff04c7f29d5b68ad60136c25a1f069309b7c702f88882611fd53917dbe281d5f8233c91b605f4188508c1b3127c017545a735b0a6b78282c8843ac8a88bb7b409b6210874b293e54d42725d015906e5f137c3592ce326b98401628df924ea4326ede88d3b072ce794a92f2a9302594e16b24ffe92951ca42c242bae9048360432249968a0eeda1f22e2bc7f21785d4b13c3d99ce908143cb313bdcb594b4ca0ad34581cc493b3981edc1a0c3a025aae605c77a569d1dc036d266dfbb90246cc846f322cb1b1c8062c8d791998070928ca2cb2a8f90f83751c45d0229215a7c2930a40d4ac4f82b9ce70ac54d202d6b1685380bb2fe527e578454dc480989c55700c9c9ed48a9306c4d177712502cd87d7be6c511adfb3141fb923d803958025580747660fe296d7ba036d70b913809e92317f29d1260bc465909185b0276b22e137f640a76f79754c0ac727049480b3c7c0e2a7503c12ed093e4ae30248d37b2cd4718603a0581a9fe108c94ea71cba5cc0c90bce506c7309a66a27a8a05c4ccb980a935e835e78220f28d49a019953d6b9511277b3df700243408041902fb8874dd9b78b5aeb5d104673b1ab8b0d315275660b0e44a03c335ea338c8632369f341b29cb76cb93564ef03212df087f9404791d03624d761b3da6542706e4999a1744c4f05b46b774b0d7965a0cc61a2aa0bcae39028159b3a646b967f8b582341c0c16a038ee43be7fa900911144cba75ed99357068c00196825c485cfe75a81c071609785f122b6db8da86218b23bb3aa00bfb5833802678d574fb7563fea45dfa57a6a84598ca6acddbfbb64e314270766e1163784a475280a2866fb09a8d596809f74006cc2c825467af6c3897288328c7b62ea3789b998b3dd61e198cbbb2b5ab371b4029093d6e76c625d61649e28b30368de316a18e008431b96690a56952203ef17842add681858385014b3e105199180b4e168b094d28380a081121050ecbb8bcf5f6880f7591c262639c73b54cc5a3c01a590eb88d1c6bcee948686ef0547b41c8d617a966d235ba845d65a172dc67a33211c1bcb5ad2e00c0f6f87952b086439cba768abbc8fb9a5f9c272f062c3f426b9dd8c06f2648d98bc79633311f8c0ca1e663b0740d5807a31fc28cbbd83f48b9a86dac4b51196da807032cdcb66754c37de70ef06bbe2f035e84e17b2475b51658419067761e264b4788b89bc702de60319cf8bcd064cc8f645363c786d186987b76802637cd561056e7260f01250e547695b0e0100fcc6879a2801b7019fab658ab42ad9ccb99dac86aafb2b1bc9aca36443765e0778ad15a35909521e625c3e45c508215f115b5f3e94d743b196df5090310aa5311107be28793447b0e103a7159b578d60910155e602b9f9057c15be507462203c8721df1e5c6af5c390ce7b8b00b0c44f52f99bbcfeca1362de80f95b39d4704b106f2915c19a4f5661515e001bc0a2f6fb653b20627c1fc4ce20b77fcc5497cb785928047a981932f9a1de9da9a7462b57390c7550c5d8b6b999e738a1133a50fb903cb8999655208ad9ab19721a6c5ea204f080d38a75b33500be482a4161c356b8ace241298fc09b95df06c5634acee4b8d09491a5792c0de87233d3a9ab28442e5892ec0fa3e07652873880b618542143accffaa91c34483977737eb99aba9f16b93918a73e694d3d95cf9a5011949c153ac1ffd6965e7bb8281782c45c4104e72ba9da3a6d4b83e0d8b855ad59a1f0254406ca5b9f539347274bc4ca5ae5520b7f45e1fa38d8a69c38b44b31a2990fb8b375b50a434e323f2832eeee304dc0b4b63d262a859c6c3d1cbaea61d69f94d0f6c2c42c49fbda44e52d55dd661182b546cfceb02b90bb7897874ce15a946c51c311c17680773dcdb1c7759938454631854cca6947f15f91b75350d24e3511f3750daf22906036e36ecc9c9a1adb28028b0980814851b9c87a9fbaba83851ab960c253dcc54a1f0b1f4917b9e7280f09946b3391f0fd796f1a3bc2d735ec6530edc4129520b091e4a0e3c5bb19ea309eb6a8fca0441d46a2feba7907e37c3faf845f7cb774dca920e2507126a7fc4038c795b12a12669d6fc255d056e89a3c7d35b12e9ac7832361b78a73827124b6dd18c55c2b89f1501488abb05a4a4ad6161f6351e9f79cf615b58e4f6afedc38eee037dd95b5bc603352846bcefab3499193df16a9a566b40e7614a5137877c7a00816b3fe4241896ab4dbeb88a5821709e716739973537715b0cb9074887a182373c503b7f6d2b3ee584b59d0976846735520139dc324ef9ec7ebe7256b252a750772afd0574e0cb74d565ae7f238aef42397d7a0ad8d8282ed3915e563447ebc063c682ff601a383564281652e766796ca30bb75088e6084b5bb24d12a1c86b340e56cb8d3a731c4ab75d96230416414bcf3a988b6914f6662c998967e0f12d1ba6c36bc919a1f12b9d90be47f1a1264723e942a88759a33abb7e151aa74d4790408b62c6016375296870fac14abacd41182434c2547df8263433050632becfab061f5435435a5da0901d92a8319793c9b94b7d2154b23b259b97fa8263c2ab0fa3af055c7b6715425895af8d78747cf4721f223a7136c295dc8213fbc74a244917ca5a11e792bd26c22a4bbae6539726a99bd33001614762d36cba2056273b653be9eb26db1895fd067c165321cad6bf5421724cab3c15a0baf51b6256694907f0ac638c64c2145e17780ac49b1bd3568b12ebbee486ac792101e207c6dae59055fc64f6d573d9cb00ede81649f584f101140820aaa64154b5d834f78193a9d48073f81b5a8b4e39c73ca2bf42e100164121849ea17e7b0dcb9ea5ef339f9c994c14497c5791569bf49ceb562edb77fdd97cf3502a24fd6f28610df818fcf49175ec20ff3e25372fbc3d1235d85a55038580213c2cf28a86665578da08d461b5584c3648ebec4721af8a
+dc5587e3a4bfbe7e26b9f874afaedec4fac86d3fff166378603e5bc69b54fed3
+Ciphertext: 82a1c651e61c716e1a9e19089401a20c4f8f679f895d08844c443e7acabc621963d6c3c514f952fd91c32c04c96e1099e6993e48acd3ad32446d4baa06d734f4ea723689b67cf6ce8149957abdf07a2f499811d9e873e6e76e9ee2ed7d3b1b978f19d450f65d75cc585bc23cadd964c9f6298e6dcb7893e5dc3bfb8987c36f4460b2a2521733eeb5ef2110af2f34018b8d84f3033a3af44efd7aef383d8efcbbe0347366759886b0561484a3b65b556eab0ecd17ae24a21834f5e64fabb3b0ba53af35da9abea20987822c6c84862d1f7c9c39ebab21a911ac65e0d82d723d5c546de06f148751c351b7c7dc826dd6a38215eff67f578e6d12e6235b1e47822c45025188172900a0979455eb34d046c19874c995835585788338127b5b9ff3963b6a61ecc44d28164e112f10ce3f155688f54d943abbf44a45324c85dcf70aa0fab401463ab7bf3c812e372030325b82e586ac05bf263a7766b1065ce3353a0a545c4c55f422468164350f49ce89df918927493d37927b87d7f2bf19ad81e3b7609ff9a71ff0a45133934144a33fd8a012a01d0de8b496536fa7705619f5400f4bf95213a40c6df9f566b5365bbf4c492fafff908323d497752a7bc52a884316b749dd2105f83e82925744a031ada19e224b6932590b184a41d2104ac6f0833a6e87d0b5fdf3b254b1e17d81f066ae7fd846c8b4500c100dbb75edcc2766c99fde938df25b1fcab8d9b0165c07f0f91d8163430e448fa29738a0114e0d7e77bf71ac4fb87b2e84c0567aaf002b12c326ab95b028de6f502c10c3238415216241acab4352c81071b1e81fd8582003bb176dde824fc493d900a2753b9fd3c005c129389b03e5ccf99ff56059ae49f793d3bf424bb1c9b70708fdd4e03ee3d101164d2cc37898b9bc78471a62f512085c35e682115aaeefc412bac82067afd69ed6e24a59d5c62f6ffbc4cd585d328e9034079b570bce28923e55c043886ae5cc08fd2b4730eaf0999d05db9f7f4d1d91448ca93ee1a2747f99584a48640a28e600313fc8e6a581ddf7aff73f70e6b239e5700b3990e987bc9164d6ca3a8a357d5bf91cf1e6592d38b4dd8d8e855230b39acdc92cd71ac9672f1b99553515844f2acc564e14ca80cd81f7f01ba3be14e8b552be6ac49f647cdb38b63e98e460b9c6a1043864c8c1d2ef6dbc21d86cb853506c94f4c4772326484515da1cd4d950968e8d6269e004b6f4c9b860826fcf50dd359d57df3448f3548620d247a17ade65707b6111db759cdd10adeff93baa364a61b3647a254720a988f5055a48cf6859ac0f3ce424a8a46e8c94e3081b2e523d6ae3b47b47c5f68ccb508014e249eed7c2ffbf3e149669a46f0cc02098739a717d1083f1acd25b888f023b76d0a20f331d157035d92cb871723b23919bce3a4127b32096b244e082f15edbe6cc589aa5b08806407c950417c72e91fcc7eb1688c6ba7b6eebb0b5c3afe0e71166989631f84ecac1ab01cf367b5daaff4486b7f675a9dda1f66dc1369fd39e8230353d2007664039b3c47a05475623e1cca20881afdf1a1e5bb91117ebd7c8f31b62e5490e95b1c60be1858a5ee337e53b121905dfd86ade0c0961686c29a589a0766c9e8be82bcd94f895ace564f37bb598c8fa9947b0130e5071e8af3bd3cd83a99f11641dc78196bd38a63b696249853ca617d92d883968c43dd2b0e86920b6e13b92129c2fcafd095f2b7909894b525c665051c92849c722465bb769c22e7a0ac78d0930990fc1c119568ee04b072882410324528d5988a1a8b59605836e229153e0ead91bfdc11549d559b67a9ae75cfad8dab35825c685b1c25e3b6eeb966ee6330a3d33589de02c05d1504c9176a7354fbfcba1d1adf7554f841802d51df6f0dab88b7fff7107d5d32617914e1dc1588cd75be64f92c4adaa02ee72813bed487b9df7e70d2b1ae69650fb07db8ba3995fb448c751acfc0d1d4e5feb40f4e5ec3f512e44dea48ec9262dcf9f78cf9d34b99ae9acbb09ada314aef75667d31ae26d4847ddce1ffbfd46e1412ea9d36d4298a565c436bc343dead63a7fb8d3998b0c62588ab688f053498b825ba29c159d1112ce1f2c320f1520f441391a01b8344a938903d92104cdf890690d6d665225e3a59731d3fe1d4b48c28d4e7c8aa5cac46dd8f5ce82ed5a426d7db9e75731baedb5f0ee7cd67a86a7c907274ec2ac898a
+Shared Secret B: a5d095d58b423b6bcf19752f6dcf1255e554266244237b36e9b6975d06228502
+Shared Secret A: a5d095d58b423b6bcf19752f6dcf1255e554266244237b36e9b6975d06228502
+bb9377e747a48908fd53488fbd980d79dcf7f5bfa4967b77565b79d73cdd4aa05e3d4eb19ad3b7b093c899acc92dde304e2c19ed99f6b7e05beb3b401e014389fe63b9d248013580ef29455934587545c3f56ab6b9f1b4abac478340e483377a5234f444efb0731578d06f864bef779e683b3951d30cc4fdf85f2e56c6412d4c8062b2a721e3b1334235cabf06e5cb5aa9b48b7d052ce27abb861afa14e67f2bfb444b922cea80b66b5e75a5f119dd793dc4cedcba8846e4cb79669ef7139d7538292ebceb61552bf84539c810b4dfcb987d38f0985b77e1d0fbabb0619325fa238c492fdd68886c2101f83239fe1c264c331aa2eae1ba13540a2de7304f0324b32ce224e59a9034107519646e07a643513c6e1b0fc6c03ae4a72aafce35546fae5e006ddbc5b994d49a6ce310ff327e01c8f1766aa37ff37c6cd09ae1f945583f06b5f6ee90814bd9d69588dec0669efa2fb9d924707c67984c48354f3946158c46b8283bd59d3e0c55871ca2a4f25dfed8da2abcb6832c2ab7090f657069868b02311d1cc606cf848f9d484a875295e41ead8af6de1200e976dba74f226109ee6901ba5bb136d4935ee017dc4c904944730b0923ec267f4a467da55f370fd3c5b310c777fb190223231a29cbac4484e8a00046746f996a99d9c907b940cd50b36d2f0e66710baa2b484d83d38af8ee0d2e43b02795fc1b864e8ebdace8a86e5947d94c1aa7edc4784df6c5be34a0fb433bcde71cdb9701543015198a25dca470012db175cda10ff9b1d80d3578e912c7135daf38431d593426d8412e641def1eb74af26ed5a8eb7ac0775a9d523fc1f6484a5fa164631860cc26e6b3e13126b3eca6b7b2864fe5d175ae4ef81caebeb94a96185a8861bdac946f5fcfc25b7d2b57f24737f59f372a5627d0ae49434a4226e73a66c9d7403e3838b2aec544a33f1da8c31db27e0596bd36af93e3dcab3c1cf05cfa588bae72dee7a707a2051d3ff040839ba475aa42a0782f0d143bc2414c74b52793689641f9396726d6bc0a101e7f3be822d9297d9aaae3b933350c05f3093e56eac8ab0f426b6abfe7d90d73c303b6734867b840ae126fcad379fb82d32753ac9f274e8b5039be852f2d82ef6b3fc089dbd88d070ef1b5c66e84e7922a853fa6b25c4cfcbc83a637352fc5dea840fde22bb75d7569adf3f0c9113e9ee77efbd98eaf618b84425bae19aa1772beb4c1f40ca641b203798ef0b0a45edc1dc02b78efeafe2e0c6dfae213f1270aa882387dacbab2eebf9541dda5b7efd3ea597d128d6deaf9c31fbb1ac2b3d7f84ecf8b76d369b437fa77dc2ed3044d82fbebbf6be2211d9252fce9de77fa081c1721f393afa36945afb2ec50a2158afbcc6682fde77f6b51dae30b43aa654664102abf4e133983f7ea28724428cac3b9fb8e07cc4f20673e4feaf50743c6458672ed6ce54f2db9ab15558fac76bf6f1f2a7af5672cbece432d492f16bf0548f6eb9b30a486aeb76176c392ded8f4ed14ca2df0acffdc15aafd83e9469079737982c6b7bd854b69e997f52cb29180d881d9be19e8ec91acb25c16222528bdb4d38aebeb8ed36846673d13035c014359666f77703e0370c2a150e79e02cfac8696824dba05a3d97404d1194d935c99b2024f48c84dc708784df5ddc23f4694410950ba4ad24ba5f5118e1933de4053e75b0bca892ac597a09b5ee4af405477f76bb1a38a631f10672e4c9f5986eacde383e7f950fbcfce69430d433ab91f9269d6396b916a796946e1697729f2355241921e7e43007e37107f0d5ee62bda5ca065bf7b9faaaa903b3f5f792de26e9283602b0ea94c7c9fab6f4ce041387bfc74d082d9dd7dcb8bf39213bd1fd6a44580654e679204f9a013a181cd2912086d44259a3c8d15bfd9478e3c6a72e2b6cd35b29bec49a601e5cd9cfe4a92d265ba1f9632ad6876bcdca008e8e662e8188ad9f38fd51937bc2f33449128e4115e363bd42246dfa737c672d038205f9c42763824880d45f0273f933838a716a1e155573155df17882a5f23a8d60dcc8202caa403582d7a5d0039a7721d8bd5ce82dc7b3bdd5067a5d492f7de0bbc90a86d7eb9752b35daea8e23c97988662fd96d44b28e01037bc12575b7209decbba00e309207f7871d9b5ba78b79979a06b442672d13205e1a5a84e8e46f2cd4659eaa546a1c0aad548cb8f8aeef7d3bbff07dc713
+Pseudorandom shared Secret A: e9ec39109dba27b3b5b4dd487e6573f904958670dff2873018df55756e6f2828
+922b1a2252dd8047f8cf68c812c791edcb34e532d032c29d36cbd92ca78f0298199faf8cb3ff2e1bf3320a79f1f1559d58034f698edc7b76c3f5bdd6b945bace
+Public Key: 3c868fb442ad6f74c47211bf094b70d277bae2818502b55e0071434d3a4bf3906a7bc817fab69399864899ea472048c20535523a406cd22b5241b15756591ca7e9bda90676e891b225fb12d12138b254ce952b3cc9018db0c59b7de368d199817e55823f00136a784eaee87f323118eb576bf9c639f5971b88db6c01952153e65c0cb6c5f70790ab91832454334fababa5e41e571bbf59059dc018901a0c6db0b6b57040782da3a6b6833c36208018c98af5627c606a4f05372c612b85651236f4bba383d274dfeb0c41997528caaf72d50e2c73b14597425616c369f05cadb892cc72312e757f7f5726f3266faac7c7a0c8bdd3a81a6703a23af36d17707b14d2c37aa39c76c48ecee93a83ab365e74a6684951c6e2532ff5862ff0c2a7815238316989d708a1811b140b2e9aeb6fb50aaf9798bec806c6f3614ab6f05d117908ec027f627a7d9fec8184a1bbb8d4109e00ba5cba3d3bd6884961665e78c2bbbcb0dba92dc187b985eb83805861f9c715244817a9ac78ecbac1659b7e2e09bf4ad75c6a6b48c2882b6ce32bda2508bc8371f38214ffa30af8315524c0b5b2b965edb49a1759ac12e6ce85763a1e010beb0850b8540b9bd21d810aa210906426168d0b54bbc68a138a55a68f86b7e2c31ce5b18b79e924effa168f62c57dc6820075be93839ce17c38837279a6724f5a607ab7d9a5d42699cda22706821f387ba48d124731544aaf488d99457197724603c27468a6778c128afa47a6c234ca72797268c2055e03a581b291fd91cd19d9becf303d45cc0de889188b5698f4e29d7d4480ab3848e1740d750c6bb7d497903ba21b86876ca09b97377992ec90a3b026da75093574870e102064009ae738b490865285b4c9f0f043f16a2924610a9fc7c575e295edda3928880b5718518e62a23302c0e22c13f6a9270e8010baa1845c103907f848d89811fe4048c37250dd4925e13a366662662f562219f7313e50bc0b27435ae96cbcf77991727c7844459472bbca8409c7a9715100524a8c1e91150c076822c917429ea4a7996aa4be87326c41ba77e87d22871d9a3121c298b2342879fd868bfb67be5a31641b4c80e7ca392784b8b9e4013a53bef80214da27b6015b955baa087611427c3c9b0e2262fe02719b932cd5729b768836d4ea913f0a238914adbf9b15d1d66ceaa3c49216744782cdb0574a58e081f56058b4e5a59f688544c94d45d45f1b21a0cf76b6c673442f443439f779c2d13f8d490342167130553a964700d0ec9f19246501fbbddb1a641b4322a679b79d778411c9b8063510746913e06549f193592387471f6b4dbffc6e49606b053455c8038397ec3df0f2c3a66655cda314388a07e87c14d97623b460aa2e3054897387ce85ab4f4c405eeace095b796ec1c972d18202352d3136778f48cbaf30cf2edb68a9c73027278f2f4a67b5d5414e2ab730809aec973fdcb758b3b3c2e674242e88a5b2bc1f53f1359a1778363ca6bc90bd2d55456701b2b411b1f547cea9236599195307251f35d58cb3d065845a0bbee7b4940ac89944c5f72614348809a79c9066a570f5347c2574897134155f0543451ba4f084065776c2c43a4f6b393d29655081d3ac52b846673a258c640ea69c2eebc2731f3943e3246a319c0d69a11d42b9022489025e098c901caea548b848f79fd1b57c4454577dfa853f6210759619ad7a057a31958fe407732c787956109ed753d723bc487749c1d991eac93d166a28abe72a175733425b9b61758e5c9284e5f465f1fb274e3c0da8e5c8eea306cbd5bbed1259d3c884dca8c758c057730c50fe565c51001518762c2c386879e0b71efa284e333ab049957ff17069a4a166d7bb736c60ff67157219419d6ccae2020c6a1c1dc813c221facb3a7232208a774d804f0c8b1626e55a77f9a62c16a8e2446b3e88c75724797de93a9c7a59b84bb4a9f30275897134409fabdb555385a92014167cf41ba79c0809fab31cc3212a714145426e44aa19a168303ff48c32a3165588725a264a4edb03ca17039d8b8522d549a25a2f93d1353e6c70491c3482e664df12bfe1c8c5a65c78dd21ac99e37ee4617ca80c4063d4284a579fa21709cb667b225c6747c409f49298216a544f722a88a3321cca64d06bcea5d43ec0b9a940bb81b442a63a85649fbd40f71db5a91bdf7204174c1c99f30801c1921062cf401d07
+Secret Key: 3ce561d33ab6a12b98a23c7eb43530bafb35e81a4b64bb15c214626a122869c1882a13ac0d8a6c00339da5821d5ff959a2e01fa10b9b18646ea1c922906159598acde382453949b416a52a677621020b7a211a7aa2dac5acc0addd194c79e357664a4f6ea0284f1664f2850b4349711cca9828f9c8a5a200896c62f318a5a3e6ae3ed291c9e0282a34639ca39bce9b0b742c7deb9c2d189736a4e426efe7762d47b78b6b8a328ac6901a0d095a0ab70c7eb0b572d8ecb7b727198199c1246c7ef0588fe4c7821653c51a32b4e243bce40b2c1da861ddf243e31100d99c41836cb8bc07a5b464cedf1cbd33e80637b0a3e3d17b9b09a8b2cbb725f74273f8af82650de26662a1830fa8c459f9858ea7ebc1214137e9036a4d6171d9130a66c0c8c3978ea196a91e8c0375317b92644e1a705d10897855e61e7801a6a63716b3890257591250e123874b0485516820b1c2aec390193c4bd3c3c215727d1a1674fbd91e61945955872a83669ec27895ffba67b7e01a01bc96b5293dcda86cf5532095b2994f30b82d0c96a53a08ec0818cd9a2b560b08d8045662ac4f5a2446425b51d86cc395d2270de79f37c99e75c94e5b5b2c88c5ced3a06c07139633f955c4062670d130f2d0598cf51288baaa9a862bdd07630d9b9b3717c5a7605fc65b33755c8e9ed10dd5ca4c45a6c61b45752b77433b2a114fac701a718737715b2037a37390c5f3e12dcb3989354114a4932354a7c28c002f8e6296c3a21e09f49637f6bcef37c44980313b566386305314e75bf6552a48310349e1ac8463960c2397c8c13b63d324ba20b809463692f74286c2be987c29446b485e8137b6035a51ecafb1babe99381b44eb8b66005e6fe706d1b28dc3268f18881032f873dc9c5d66560c72eb208ae41293b05cd2cac37d31834e2b34bb56c9d08a44255999aacac32300d0b680c59fe981734c102c747e0139234c41925976bbc869b52f69caa07384d67131ec061e823983f6ba4f0e133c26b22cce6848329c76bd83caf93ac05f88cbbf35499ae8677fb650cd301c012a7a825c71eb879f7c923e08bb3be1c071bef7bf3932266a56829db431f4805bec711efa6408b2a3c3362a120f9712d591c3e41358bb2a0b0e42264b510a5ebcbf129367d62a70acc45dac576742e053e21c009ab9cde39113add629eaf29370b1542f401299e873bb430c4730736fac60b42438d3731f7657b4c991273ea614186821c4745e449352a77acaf434783c71c99f17686c7431ba97372df500f61859ccd5c5ff7c1bf07a6a633ac43d9363e0e105d0016bd6fb5bba1454a1c715f4e9bc53bb0033a8bd3e178507c4b6a4e57654355c0cf6217bb36643ca4f3cca38d6f6522e3622ecb04c05312e5b09914af4049e2670598090686b8956d005c4195e1d53126159869f871b1ff3aceff01fd7e23d6244a0ac961bd36b735fe5206cfa4d7ed7962a0203fd3a80b63107720769d2106975e94d3b4b1fe2070b947755c331a0f2757586217327f8bb23e883951244d784b4632b33b781869a6c13c2e4435133299ae6c41d1449f8f2c58c0875e78727befca970255f81b7935d3b5c23c9458d38030b6b60cbc45e5e6cb7f6eb005031aa01c69ca436a20b5987e7f15616443f29e3390e2b299ed1bd5c9ab3b39acb8e1c230bd5590da593653452a186a446151a24e03116eb51b840b273c2255c008b4ae089f2d24318e62faa1a3c5f1bc96b3073778cbd08dbaf54f43ddf7755394c95672621a784520beba948241b9620b67f535eb694a3a171afb0c2ac01338256a942e04b4c34dcc765179757089d045c5b9c8754ef3c5e3d31a0ebd391e3329dbda8bcf8ca15334c0832c1762627c22c772bd2d79490e421246959a8d263cb6c173021b6f2a6504feb262ae99478d9b338e8c8d6f2a47e3ab93389bac5c359bf549706c4afe2e815a1698fd9a555e74920dd1b682aaa7ba0000b4ee6321587ab5d73140a825aa5f654c49437718ac9127741b94cc53f2497d139171b8ba7b5391373c74b2dd87e774c0ce730b26cd01f5dfbc62d8acb9c14cdf9f53355d47fd351b7abda0b9eea2548851f870524bd64add9f3a01a33aec62a6d75638b7407ca048353fad5a973d324a2b5b522a6741e1893d16551c04305c3170af3ac5b3c868fb442ad6f74c47211bf094b70d277bae2818502b55e0071434d3a4bf3906a7bc817fab69399864899ea472048c20535523a406cd22b5241b15756591ca7e9bda90676e891b225fb12d12138b254ce952b3cc9018db0c59b7de368d199817e55823f00136a784eaee87f323118eb576bf9c639f5971b88db6c01952153e65c0cb6c5f70790ab91832454334fababa5e41e571bbf59059dc018901a0c6db0b6b57040782da3a6b6833c36208018c98af5627c606a4f05372c612b85651236f4bba383d274dfeb0c41997528caaf72d50e2c73b14597425616c369f05cadb892cc72312e757f7f5726f3266faac7c7a0c8bdd3a81a6703a23af36d17707b14d2c37aa39c76c48ecee93a83ab365e74a6684951c6e2532ff5862ff0c2a7815238316989d708a1811b140b2e9aeb6fb50aaf9798bec806c6f3614ab6f05d117908ec027f627a7d9fec8184a1bbb8d4109e00ba5cba3d3bd6884961665e78c2bbbcb0dba92dc187b985eb83805861f9c715244817a9ac78ecbac1659b7e2e09bf4ad75c6a6b48c2882b6ce32bda2508bc8371f38214ffa30af8315524c0b5b2b965edb49a1759ac12e6ce85763a1e010beb0850b8540b9bd21d810aa210906426168d0b54bbc68a138a55a68f86b7e2c31ce5b18b79e924effa168f62c57dc6820075be93839ce17c38837279a6724f5a607ab7d9a5d42699cda22706821f387ba48d124731544aaf488d99457197724603c27468a6778c128afa47a6c234ca72797268c2055e03a581b291fd91cd19d9becf303d45cc0de889188b5698f4e29d7d4480ab3848e1740d750c6bb7d497903ba21b86876ca09b97377992ec90a3b026da75093574870e102064009ae738b490865285b4c9f0f043f16a2924610a9fc7c575e295edda3928880b5718518e62a23302c0e22c13f6a9270e8010baa1845c103907f848d89811fe4048c37250dd4925e13a366662662f562219f7313e50bc0b27435ae96cbcf77991727c7844459472bbca8409c7a9715100524a8c1e91150c076822c917429ea4a7996aa4be87326c41ba77e87d22871d9a3121c298b2342879fd868bfb67be5a31641b4c80e7ca392784b8b9e4013a53bef80214da27b6015b955baa087611427c3c9b0e2262fe02719b932cd5729b768836d4ea913f0a238914adbf9b15d1d66ceaa3c49216744782cdb0574a58e081f56058b4e5a59f688544c94d45d45f1b21a0cf76b6c673442f443439f779c2d13f8d490342167130553a964700d0ec9f19246501fbbddb1a641b4322a679b79d778411c9b8063510746913e06549f193592387471f6b4dbffc6e49606b053455c8038397ec3df0f2c3a66655cda314388a07e87c14d97623b460aa2e3054897387ce85ab4f4c405eeace095b796ec1c972d18202352d3136778f48cbaf30cf2edb68a9c73027278f2f4a67b5d5414e2ab730809aec973fdcb758b3b3c2e674242e88a5b2bc1f53f1359a1778363ca6bc90bd2d55456701b2b411b1f547cea9236599195307251f35d58cb3d065845a0bbee7b4940ac89944c5f72614348809a79c9066a570f5347c2574897134155f0543451ba4f084065776c2c43a4f6b393d29655081d3ac52b846673a258c640ea69c2eebc2731f3943e3246a319c0d69a11d42b9022489025e098c901caea548b848f79fd1b57c4454577dfa853f6210759619ad7a057a31958fe407732c787956109ed753d723bc487749c1d991eac93d166a28abe72a175733425b9b61758e5c9284e5f465f1fb274e3c0da8e5c8eea306cbd5bbed1259d3c884dca8c758c057730c50fe565c51001518762c2c386879e0b71efa284e333ab049957ff17069a4a166d7bb736c60ff67157219419d6ccae2020c6a1c1dc813c221facb3a7232208a774d804f0c8b1626e55a77f9a62c16a8e2446b3e88c75724797de93a9c7a59b84bb4a9f30275897134409fabdb555385a92014167cf41ba79c0809fab31cc3212a714145426e44aa19a168303ff48c32a3165588725a264a4edb03ca17039d8b8522d549a25a2f93d1353e6c70491c3482e664df12bfe1c8c5a65c78dd21ac99e37ee4617ca80c4063d4284a579fa21709cb667b225c6747c409f49298216a544f722a88a3321cca64d06bcea5d43ec0b9a940bb81b442a63a85649fbd40f71db5a91bdf7204174c1c99f30801c1921062cf401d075c5aa8b2be3fe03fba068441d933fe325854ca5f6dadb888afbe3d1a56fb7bc8199faf8cb3ff2e1bf3320a79f1f1559d58034f698edc7b76c3f5bdd6b945bace
+c762fd918dfe60850b47665f3e31cc845f9f7826fde0161e7e0bb1cf96444806
+Ciphertext: 4f2bc9a81046ffaabcb51239c4b167a9b3ed0c1b52fb232806dbf9741cb4f2fcda9d4c5f6998e4c9ac89c63eff53557a7fcd1094942d26f8698ed03cdf0b45dd44ea32de99f368c0f2e233ced937ddabd224a3da0deb45b8db060895cce7cb4ec4080167f9d9e3bda496993a2fd107724109bd205458bd792746d5c5646583d2079e7d068d55c7eb4d990e1ccbf42e648db8e539cdf3078db2409516822f17e085725381b92195201270ba5a8e9fecff9b7d0d1aedda48a5682922445680f0d9771f2d500fd27e53144485229ddad261c33cb69dec86cb185cda96c2104e65e1b86b41ae933cf8f14d018e1cfa0fa89eeedb5c0b0e994a8349d8a820b71e15dd94096d4e463cd216576e03111c1d16ba7fe6e2ca38924298ddfb04c8f5b2652c2cc2859848145deaf5381eff8a299d01249b3d13988e33a7e31e68984ba8ac4b5f136bdcd9b9a5ab80c66a61bae4cfab793f13b336ac8e2db3533940a9636e969284d85d3c2a4b38d167bcddf2c19610041b203dc3b3c01ebb9d3ba5b058d93fd28d5ae1fac9a056ea23ae73eb8e87d7ef7230e0ced13aa4aade69f2ae419e6f28a00cf75c3f364c2dc68bc608fcc5cf4d84ffe2b962873f04030276da76076a02a79a35dd188cb9132ed2070265df24bc021b9ecf33cba550c75f41012f50a3cb2848e1e1d8ddc5c27b12aa32abd627e733eea8aa73de78cd0086dff5400cced2894b891829af1afed784dcc9c30cac1dc217ff075035a6b35a6235bdd2b91d12dbfd08dc278ecbec35f5c4ce71bd2c82c7de15870cd5d37a57db7fbb4aedf894adaa20d70210d4d395f170d3c5afc4b33200395c3a1c1e5907988d32b975669a19255920ca27eec1737c978a7177c005024e51e173c16e7dc87665aeab794dff9924ff09d5bbf0e64d81da7235c0ef0f695e2c854157099dc97a6e53872bce05e4932e00635ccd6bed205d9bc8c30650b90a9db89b14bfa5d8db5520ed167d5a352f2f8ebdb4bede317ec442064045c371aa41a9a15971dcc96b242665a2b2003deb200f2493f46ca7e5167da20d7b504cf4f00a4bf425efd081c26f8b483612474c57eb591a247316effba630a2361f7e93b0cb7ca1211437b5e45ae4ea28e3f502740a5d39f20a4e5896d4b253c4b9c539367434f041f98bf00d76de62601d7d7b8f83cccacac6308c5780cfb1a5659ada7f2fd9fc6e35122242c72d4743ed4c399d86d439ccae5bbd55f3a495589c5876a51e3644b8226592346a4ef5d5bdf290c63b214762c8868b7812148211edb9fad7032d80b8bd6a36d07d2136dd731b0d36696766c36f0cb8349aa99081b8d9ac754718d5f68c393969b09e664f3cc889988384ff4527304f4accf8f30625a8c24f7371bc5b44a06260ba82f2aae29deb31d8b2fa26c95e2785724d38b93457e1564726c3eafc4f393cc218706fd1f9428cc8ce52a2745f3250b802fa158789a69405d3ed3c1c044b8f19e8afd702251fd0706ad7677a9c6eb269844d4e14d4a0a3b17958c5246f918682ef273957afb1a82de9970565b87b56afc7ae697d3f44d701490b0acc8c7b6902cdf22dbf11ccbae198a742d5c9516d8b111e423c374e1677357acbcf8fc91e0843b2711fa1d8bbf4d98418ce5d9487b023c57b17fb89cbaf42705a273f6a37e8e47d947028cac7a1b978297fdb57296b7cab400a43eacc12f9503e5c22775ae13b91447b7d114442a7c478f9a5b7b8fcaf768aa70887f99154f690087f6e0e0d9b37282489e96bf64a1a9934602507c0c517a4423a662e94d1a4a6eeb17a6a47deeba2014b9a253530f368a920ce3101dc09bd07c480e27cd9fe431bd3725d0a05ec5b21024b1c56e38bc99cf02e8b3a265a3842755265a105024d59fa30381ec4911d60dc71313540b625b47f19e0d9af81a8b20c831bef7ab4fa71a637669b8253199910f0086c10d02dfbf22cc1cb77883bb3e7c634af3ee028f6ea549e0e7181080f8cb2a845cc33235788dee02b89cbd82af06c0e32f5bae7d96ee7aaa5638e189526d98f6c6570eaebee7d69357d9bde461237f0f933f772087f5933e7ff49e5734379c3a65c471e03c79b4e22d2cfffadc8d7ee245168cacce9edd4c7b771d216affe92fbad06c6ef038fc61bf0d5c463e61a491ad8fb5ff0d8a18d60b9a15c8b59be33276b20204eeefe935969562500aead9dee5e0456dd1e60a4c6798cee
+Shared Secret B: a97caad722a7e95b2a8dbb17d8f9b45c728641ff508c4ecf0eeb5b34eed294c2
+Shared Secret A: a97caad722a7e95b2a8dbb17d8f9b45c728641ff508c4ecf0eeb5b34eed294c2
+f1e9c89afc86b3f7e6763f1795fdb1693733c0d408deb1b348554d376cb7101fcfcbcb8b8610432723f36dd72a43930632a8b4ad9444941ee5a0235b234005ced61503343b57712e3a87330a6902dd505f09bf94d664f448522d77593775339330f4a03ec7260354dceb95d21de92e6ecd584f904e0748e6667471266bb823d3fa780defcd8f6cdf37abbf78bcf2f9d3bff94a38dd2f7fd7aed873432cb1e7a7948cb8cd35bdd6988fdf7609604d9b814349a4d0519299ca7a08e8c431a2353049fb0b22b99c8fd15710dee1ecd77355b803867d8c24fb8d7d7265d5b5ca16bae52c8f7d1edaf95052a304f46c6d476f6438492ee6d332bc2adc7f1c7970e6500d2b3c590d562df50c504eca2ebeb3407b693dd69b352f57f64d17fbb23b9557a7f63141281495cb2910510d9b842a6aa8d23a24bebaff855e046d9b345ca66d45675b810959ecc43d5a483d2ddac08f3299e364a4395abfaf38ed0975eb44df9876b2af9099d1c61062b96e55e56df27ec33cbbb99c41856d21c5014f1b49cf90238eac08f856664deb212dbcd7f8d101fa815834522b01383c596c899b4c1e5049082ca15386a56e9eb4f6b46fd8dde0ec0105bfa2071895f4358fecb53b8c59e50d65ed23318645823943be26a6aeefbd3e47682c48a67ba163a1a57dfedba95316490d43c1356f398c10baab6d20a5b022f56cd6ede53dbda8ee104ef614366935525cd9deebc25035bcaadc4edae90b10c7ff36068282a4046ed9d7dfd9ef0c3eac111edfe17450993e1907ed29b015d1a224b837c4bf8cdae50472647197d317036171d6444cab5ea7a38e53b0d5852f9d01ad7547d1238b19ed2d4d32b3a1c2290f25ab4180c395512e02a528c38f8c53df8b53d1f5d08e5fc3a6501baaef6e62b39be252259e7a80d357e863532b898196813b9675e2e688549112376522ff4f4d2d6ba3377ff7dfa85e720530274470c65b86f64429c292e39385a84fd4bde5df524f2168ae43838098f379ce636ef98be9b246c71e9cf1ff37c0d9b96d1b272d7428daab984b1ed725e802e6eb25760cfe7d2b18c2d37ff115441da12f4b718567e96046e60ae08a34db63ad1dfca50b1f49ea28731022fb45494351f22be2baa174e382d355e0623d2bc81da87e5a3bc2ce2ad6ace68001e509337decb125f11be52bbdbbbf76f25252dcc85b1b30d46abe6a178a04fc9da7d45b01f7fb5d18f5a633967af9d2daef60874497613a20a9364c505f9fa7a55d2155bf913a889b1f071115b62ce8b5c4ce4106ed08b0749f628628d0e72bc0e3ec7998e9c2ea047d914094cce09ac8585d2e646196183d4c5fd8df317ee01819e715e972ad79cd3d00d705c7f7ea3c173e64a1e76feef17a28bd58cc9d84ed470c9e927c8cadadc5c8df20deb4f881c20e409e4a4809097facca07f6720fdfc4c7f86b22892f097aab74e47a7fea9ee4e0e223b3d362955533cfd25e459dc5139878b36aa67a650ef804c17306342539d3da8a4e0c79a947b32fd118bf49bdb476b9f43f9323ebcfd52d4f2eaab5e8d5d0cb72564c3e77e2bd0e5f907d5d3f898ae7ec086ec0b0c76dab038812b8e3528f630196d05eabe544a41382c1c02a31ca98e6263b161c94ef50f873ebf1669046ef13759163e7b8ba6b92c74a7f552f6326e7fc41dc9302462088a76b5b9fb9a3466e0bcd823e7207c9d29df7009e2f03b7d300aa96dd71e44901c499f6a16f721a2441b5261c0c9ea8733af38fc794586d702201bd366d0003e5ad1aaf88cca12928d3bd3f4a0c618730a21bcab374ee290de4fd7fbaba54f3ccf2544f81b0e70a2840e671fc6436eca747c397c5ed02d8fb105daf7349289004edacbd783007dc9c121594c608c546bbd4c3994418187c83e27bad150ffb19ce3d2724ca934095b4f37bf1dd76abfe72cae0bd7a4cc8aa7b40d598461afb601848f9a9ffd599c468009cca0117f8631072fe85a84e0159551028281353877aee6b65523705cff212f0cf9051e28a5523c7ef498165c71541c0142a48f5c07ee585da1144aeb575831170285066f9bb86cf3e2da3e4a82be8d0067922447d94432daf8923524b4b8d40c5783a83683092791662fd244480d980cdf77dbf511bbffa5e182a965c65b0e7a148782e5b50610c774ecfeb19a889a5a58612e4f55f557dde2f6ac999700f639531d59445d21c962cf89ca8c350
+Pseudorandom shared Secret A: df0e140860b77f407f8ad7d6ff3e84c5f1ad969cf63fbffcddcb726adb3257fa
+5ffff1a0e47c2aee16e214d04f153f180101699706ed855ab1e4d5722fda780104aa1e4ed67a4562a8d29089a5141d55f5a177c6c85821b330b22c44ad8cc349
+Public Key: 6ca5060c411326917183961dd29204f0947d75b2c28a2ba4ff36370d502cea7b27967b09bf7a8b82340f3a436fe60115e12a3419a86acbe417bbf41c7b92a308e119d2396c2a8aa31eeaa55488952c145f4b3686c6292bc26857a8c891072142591c1661700726c63e7cfca9406b3b32f53c498308ad748efc65193d7491af995691d67420bc030c6148efcb99f1e619fc5579751c3add71812244c39fcabe79dc60e5148fbe55b91b933d6bb09e1ec9057654badd98768d71ac27117518a2202a5ca3071cb0d1fa692f90bb8d56185646966d040a39f86f48a0ccc3cc81995a4983b1a03b051cbf9761beb503fe9c9673208539293ac4f2c2d3cc125ac2199d19754421b372b621c03365625c71549b585158cab9518211bbc538781c4463b746f99289b58e5e4997d0e8a4bb1c292c1b2a0fb48c09b5670b27a92d9bb861967d35b8406f905f35c09389e6bceb37610af403cdc864e8dcb4ac53b9190352b5bc249576c24dc92fe9592abdf8b4771b4459549d4fc3a5ea0061fc63a2b5d39526601c5836a228b634131b80be204cbf9c75405b8916a421cdcbceb5ca56e2eb759c68b770239d2f2b9565f09a825796b5cc427c17b24fac66c488cb1f9b8e0cf136c7ea4dfb83074b098917428573292d3ba923dfa3b6943b40c4fa349625ba37a10688e72953bb5c33e0bcf9aa9c4f5a3d24a7bf3642502344b491b028c0025180d73abff9b216732257863953381990db59bc4036c4d854c98b7ca698aaeddb048f9a1bde567de5c21a73498740e89f63956b307510f2d003cfd3bad1551343d21c616175a69740851403f0035385243dad317346d8cd97d530ebfc34074357296c2d6f324269715665d3c7e117605a64ac09ecbd29e784c3b5812757019d6bbcf21a8099063bb3a7cab3a14fbd6059837b8607b26c9165c0c39bbe2230b0475423353b1e8a4202a15724f2487c39952a06132579323c06114a41f987efb5bc732714d62cc1f2983776cc9dd0e4bfdf2801841c48bdc523dc0ca9d0286b3524c0988403aff3437983282dcabc627b38d28c67df5c6798f91f57691f3f8301b95cb59207418752494e48aa5fea9d2e46c4d726135a9a8c1d6b3d6d52cf5b737165b8963019b09ae5bdab853951475741e531455567c1e2829fcacb0d367c0847b22bcb7fdea688f979a03f04ab6bc236b7a0926a440029e3ba6f689ec8e01ce65c8baef6061d3819ebb244cd25b7579ac78aec0af30cbcb4a82df27509e754b2421677b174988b4365e4c50cc2a014fc481652ecbe814c4ce0aa2b4b414eb203ac91f88421b1a488db05164a5c1b434df34900070349024aae0cd30aec50c010905796c13159eb92b1d79a363941c6508547a85008f07dd01417ba916d2f918fd414b1b78b1d7ae08aba6bc125d1217fa6b680844ced0ba37e64b79f8c5af7b776d9eabfab3b8aa7db516551a712ea925f6798565c62d12165dd96a5061b48fae93f9be3075b30ac773660c9d69066b22a9230b26eb976a64c099b47908b78a5366b503c139885f9c748904905a9bc3d389a87825ce502382795cb57314ccf0c252e583b453a3f6ee3219c7a3d17b54ded084525561b1f2b41a7ec6ef9cac3d125c3d3315aded187c14288cb7b7704b588a41811cba98f3b132924a8cd4c3ac7e59478a3f07110958886415c3fa252d3661961260674337832ac83d6ccc459c00c2f5bab31e7463c45b0cf60684bcb1833871d3703332cc9a10de70dad00c786656b8f80351ba55e553ca20aa82bfe118f5ef09da29ccd902641cef3c16222c729d648df2c7b72642134e72f8a06b5d30751dad55e65a9cc12010be973c6f9a7814af133bdab5cce5b0e41e7a8e8ab242fc04a14674fe9511056e7907f26979005737a3397f616982aec4076c46e9bb81e06c4ccc3c6677fba7dc03570d231048e265e4d12a15e110b0a442c8911c122b895953b78cbf6a69b143baed451813c93a22640fb4c459cd59c6ba46f2d64baf2512ae930b329ac7e287a02065ba91dbc200f0a0cd22ca19e25b9698b8884da70e5f994de80cccd711dacf4323fac10ce222a3ebc5456e5c572d90c7f452ba87c939a46096432628278295bc9322b776b121299a383195e61314354553904ba92a429c30c1799e0cd27c68d79d16fed05e323f9c13da05811ec48136c031dface9b772409fd955d8ef8674593f1dc
+Secret Key: d25a3c02987f3bb263629a3b479433a503bcea5a849aa7aaec51b42d41129eb846b6939c0fab43a8b25b4bdb7f2b204523159b27a62d68c9710d39c94ff9a7613cc8d50b7494d00c8eaacfad6204fb99b2b9960d96249d9c5b9e1832ac2cb5537a2c93de0616c1c1216b5bc8463b6737b2a3b1707979799b9feab14f61a55dd0c43dbc59dda2329d8883fd5170cfe2c2c9d323a6617715182c872a2f4ef01405d92ba9b5c32eb3685dfc56fff6afe781c3b9f3bd50d1a650469e19caaea318a75ebb6aa734cb7abb2b7fb12f2b47cfbb115713862613b63564d2052bd02a4e33a670b058c8daad37f18b042282de476c5d57229bc9473f42323b7764abc3a4d136cf7900c7d4fc0ce2daaa396106470223c42c63f64c10d14a7571a512607cb0dac01ebfc3c182b31975a79e2b5475f05914ad41b40c035cadd9afae9557ebd6ae5d4c7216b29af801048fb9c6dde02d11840048facf1ad8a0699ab3686102a05baa22da820b47b0650537cc206e906787d08ca26c2107cd395a9becc4d8f51bfb32a4a0442c6f89851ecc73c87cc0ff2077b33acc5a915e8b04c59ba02dff3c9117c4ac12150e3792574eab75860a5132436389d4286307942c40c42f577ca5a3766bd06c1de30a7501369b635826d4b8b42653848cbf9e6428b5028592954b717105b1a6a3622a4543d20883103b9bb3630e27684e96c269d73a0f24872964a63e9a44d2d13a7ab06333709ee83a9879b22a6f681c2dd204ae524aaa1c133396aacb641821e6181269ca63e486330a9f6f4853f84884052037ac10a37a09a420d56fc276a4aac9036452bd1b3a8103997fa007be12e3ba6fe577c3822396b3a9dbdaaf64ab411ec21e94cb022fc21a42891b00c685c151695fb7c3544629a744944d9caa17830a302a731da6347c731eea3644ed110a5f0005d693327875132844ca93ca42ef033a9ae2c0149c3fd20c497fd0bcce53612c0820d84c1564ab712e29898ea60adedacabc841068603e134006c14b93d1eb8553f39de420c2e743bc2b0640f6635e59a4bdabfa7ed574302455a84fe1c1e8d8a4bcf18b77448d87f222d8b9716c75cc0d1aa852e36190fab50c2b8919066196f7ce3b42a1a4e904538572f2b0b7da800083b868fb11a643110b83c37a084220a4c2094a6bb9206a43b226a74fe07992d01f1cc1851371a4aa366775937efad429cdb71b1fc2a5c700241372cfa0f1ae3122b30a708a2c566c5b237f4f4c9ee347537216685752432ee623e0f3579eeacb98715585f4b8bb3ab2c79700b6f11004ac9c1647ba1b53384ee4c54bab4c47c1767516baa75629c63759473700207c4ba595058ccc032417bd32f2cd85223ea85ab0a6ec78fb664996fb847ffa0e00e69b942119d38c2668c239e14b4105ec4b868bbd9fa28b6bc07ade8b2b6dd1349327404d3a0cbbd4984b85c36f50017554cc0d3419693302e74874c70370cee9c1e6a6822d05a804a5a6e9f726c9ec34715821f9f430d3eca0170853b2574f614371354758d1d3260332ab8930237e39bb5db24ec41c583fe0053ae547a652460a897677843e7a015ba1927fcdc516b7151130906f438c84472450ad093b01a13a6866286a39afef8c6d2ec1b2f6350cf79a3c4e0b10305c9b94c4c8e6c255a50116d007d097a9236c62bedaa3185fc00db8f87a5999702d345415351aed045d40a32d58829cf76a37d191af4a25029ec7aa4176c78461b29ff69114d5b711838a939a9e75f007c5a3567281af251b9c4c69b754076999e7575e533294d34c1e332af0d102760644a8e8aa39c0bd91d847e7186e20830f5af507744a432095a3e35c1726ac381e87b6a1f49674d36d1fd415a1165600d0a25b3baaec446d2e5420e7d00465a0890f72aa68540225b9c2b71b84ff757d222429c748a17d633c7a7a1871b3a4278a062005ae81b91eff5a6af99c0b9317a211b16546c891c0618fbb90cb25f95bc2022e13fa0dfcc37a55b496508605d9e7340e6396571a281177c901f92a2f2a78bbe409a3694e4c7ba5b6507e2ea801ec5630305049b9f252683b3b5f9a47148a82ecdb61ad8a60406b144e42021307be2c8c35824470a58badf9741a2c20495236408cd484b904b118e530002c410ac5b6dd17381d25c187620560a6ab57ca2a6ca5060c411326917183961dd29204f0947d75b2c28a2ba4ff36370d502cea7b27967b09bf7a8b82340f3a436fe60115e12a3419a86acbe417bbf41c7b92a308e119d2396c2a8aa31eeaa55488952c145f4b3686c6292bc26857a8c891072142591c1661700726c63e7cfca9406b3b32f53c498308ad748efc65193d7491af995691d67420bc030c6148efcb99f1e619fc5579751c3add71812244c39fcabe79dc60e5148fbe55b91b933d6bb09e1ec9057654badd98768d71ac27117518a2202a5ca3071cb0d1fa692f90bb8d56185646966d040a39f86f48a0ccc3cc81995a4983b1a03b051cbf9761beb503fe9c9673208539293ac4f2c2d3cc125ac2199d19754421b372b621c03365625c71549b585158cab9518211bbc538781c4463b746f99289b58e5e4997d0e8a4bb1c292c1b2a0fb48c09b5670b27a92d9bb861967d35b8406f905f35c09389e6bceb37610af403cdc864e8dcb4ac53b9190352b5bc249576c24dc92fe9592abdf8b4771b4459549d4fc3a5ea0061fc63a2b5d39526601c5836a228b634131b80be204cbf9c75405b8916a421cdcbceb5ca56e2eb759c68b770239d2f2b9565f09a825796b5cc427c17b24fac66c488cb1f9b8e0cf136c7ea4dfb83074b098917428573292d3ba923dfa3b6943b40c4fa349625ba37a10688e72953bb5c33e0bcf9aa9c4f5a3d24a7bf3642502344b491b028c0025180d73abff9b216732257863953381990db59bc4036c4d854c98b7ca698aaeddb048f9a1bde567de5c21a73498740e89f63956b307510f2d003cfd3bad1551343d21c616175a69740851403f0035385243dad317346d8cd97d530ebfc34074357296c2d6f324269715665d3c7e117605a64ac09ecbd29e784c3b5812757019d6bbcf21a8099063bb3a7cab3a14fbd6059837b8607b26c9165c0c39bbe2230b0475423353b1e8a4202a15724f2487c39952a06132579323c06114a41f987efb5bc732714d62cc1f2983776cc9dd0e4bfdf2801841c48bdc523dc0ca9d0286b3524c0988403aff3437983282dcabc627b38d28c67df5c6798f91f57691f3f8301b95cb59207418752494e48aa5fea9d2e46c4d726135a9a8c1d6b3d6d52cf5b737165b8963019b09ae5bdab853951475741e531455567c1e2829fcacb0d367c0847b22bcb7fdea688f979a03f04ab6bc236b7a0926a440029e3ba6f689ec8e01ce65c8baef6061d3819ebb244cd25b7579ac78aec0af30cbcb4a82df27509e754b2421677b174988b4365e4c50cc2a014fc481652ecbe814c4ce0aa2b4b414eb203ac91f88421b1a488db05164a5c1b434df34900070349024aae0cd30aec50c010905796c13159eb92b1d79a363941c6508547a85008f07dd01417ba916d2f918fd414b1b78b1d7ae08aba6bc125d1217fa6b680844ced0ba37e64b79f8c5af7b776d9eabfab3b8aa7db516551a712ea925f6798565c62d12165dd96a5061b48fae93f9be3075b30ac773660c9d69066b22a9230b26eb976a64c099b47908b78a5366b503c139885f9c748904905a9bc3d389a87825ce502382795cb57314ccf0c252e583b453a3f6ee3219c7a3d17b54ded084525561b1f2b41a7ec6ef9cac3d125c3d3315aded187c14288cb7b7704b588a41811cba98f3b132924a8cd4c3ac7e59478a3f07110958886415c3fa252d3661961260674337832ac83d6ccc459c00c2f5bab31e7463c45b0cf60684bcb1833871d3703332cc9a10de70dad00c786656b8f80351ba55e553ca20aa82bfe118f5ef09da29ccd902641cef3c16222c729d648df2c7b72642134e72f8a06b5d30751dad55e65a9cc12010be973c6f9a7814af133bdab5cce5b0e41e7a8e8ab242fc04a14674fe9511056e7907f26979005737a3397f616982aec4076c46e9bb81e06c4ccc3c6677fba7dc03570d231048e265e4d12a15e110b0a442c8911c122b895953b78cbf6a69b143baed451813c93a22640fb4c459cd59c6ba46f2d64baf2512ae930b329ac7e287a02065ba91dbc200f0a0cd22ca19e25b9698b8884da70e5f994de80cccd711dacf4323fac10ce222a3ebc5456e5c572d90c7f452ba87c939a46096432628278295bc9322b776b121299a383195e61314354553904ba92a429c30c1799e0cd27c68d79d16fed05e323f9c13da05811ec48136c031dface9b772409fd955d8ef8674593f1dc531f8aa1412c1abb19f2409e0de95fe48afea3fa2fdb2dc5ac70de9b12f4c44904aa1e4ed67a4562a8d29089a5141d55f5a177c6c85821b330b22c44ad8cc349
+c85a5ebe49862bea2f6d95190ce6d86feb891924e0e0e068029fffb69d0e857b
+Ciphertext: 72806d452252309e74d4caca4a33c9f9d2d20329221a0366bafbb7a396f2a5a5ede32263243db7aa1b189b9b8af7645e2ccbd83e2e7bde7dfd525ac098d36631fbe305159c511fe175210dd98b9157e3cd8881bed72caea38740448a2545a5add2ff9ac485a15deeeed8d671c7e24efab10ed0658ab12d178c9869e83a8dbeb1a3264d15853c657ff2bcde2a4f716e8a06e56e266a765ec0abbd70e5d6d6474f277874b0806b8e30c737f8cacc132199501e6bb27c8ebacdc17607cb7ceef786d0d3b6253e79b9e4897f19217ca1758c0aafe0539a61b9da6b6f39bb85dc20979d87a3d0c5d434c1bc1279645226e0ab868f7fa15b034d7c9482121a410a47fb1452bec5b18d04c101579ee796aaa442448242f495fa60de4721e05d45dfdcd0d1af27caee8e181187ef262c08998b7146e71eeee4176318f09b84a67dce7ae365bf8e7d9892de4b91d612e18738fff6a53e241d44b0257de8ca4d6da3d976cb84dc685136b5924b4538c454b8f46df360d398e06ee087a293ef1ab951f862ec679f77ea7b5c67daeb10532551d82e918bf768365454cfa7f98f4ca88939b52b3d37f157dedb0f659416bed8e1bc25a76cf72cb6233d881304fe2547efd623dee6901537865293972ffe96cc6524633cb7c54ee4e04034117f9168c7a5d9a91f97591f7f1cee5a1bb5ffbcc5dc27b4733699a121db45b697eb19b86a43fc83b9177bb116f9775b7a444599d7a8a8c8b70e1ce7c43b4ac88d1afde3bca5876249aab9cad848f1dcc86a3b7db9ae4519f9306ee144e0041e8ad145773e0de4e3ef6f8dc7284831f08cdc6d84f9bd94db220c8b1503da9b14601b2934b412f5809690f31f4d092fe3555fda27c0dfd362642594122b19e8b2c5a836e0fc1b6388cbaea2f865fead44e8ec26d34aa9898dd0d9df0955086bc2b0b3aaaf6e1430665ce1c1c6cf5512dd1d063c3b2d1d74ceac01708109bd12678db2a66dbd76672e2665d5d02bc163ebaec313c10f4e087f13d28d6bd9f110d5d5c41922d87e75225a1a2fedd3b2e1a9e2e6610acf868dbf66d016977cd6c3fa5f99626f1a9114ba83a8b1ce67617a77be021cd7870f16cd97d6f4997ef3d6d6db1120611e502cc2e6ed497392524b9dac7e08e2db158a2eec8ec5fdff1fa2b1679ce5ad4d273cbaefafe1b921466c9fa37eb6b42fb0d7cffaa4b9fdf0a7258b76e60ac50503e0d80f5f54f5916a5e45df3017a81ac95560dda23f9351eb86c7a1ef1f82c2618fe3b44d669c9a3c244dbef1b7d81cb200883798ee9f2bf5de29d05e69ef713d3b583a75b164d086433664fddcea6ab6d1f2b9f3125c4a3a0cd15c9fca79201583bf61258dad5ebab0023e703e9921de618d33f839c0e4a8d9b56a6fcf1eac18e86053832432598cb8f7558143bb55863771e2174a6dfad40f5408aa58392019ba47a0ec0fb3298adaa1236762575691e411d2f66216d77b586eb132750d3551b5ee27cbce84f7a10a5fab85da5a0b6e71f5006664ccccf397261ba2a74ad80ee4f672cc0a9fcdc6575aaf4121f8dfa56047c8530f0f657f29c9abbee3f053f67300d77f7376b999f8269a4aa664759903109c6bff8404deab2bd9fada95868efcfab516eb3c8ab1f562bacc61f0de2bf1d7e30d1f0c383c317cb0b22fbc012e07e746e922a88ff06c32d21615d9c448cae416a6eb2cc5097487ea923ab5c85998629c56f3d297f7fd2cfdf1f7be56c0449b225f41247bcaea578f4c0669ab26b9bb0759e0977cc02bc84463ac51316d6367b426f84a7478c5f7e3dfc0413a190fb91e38dfad77a9c33a8a50715c9587be39e6ac9ed965e74f341f8443abe97c27dfbe33997f11a71e1c3685160c5aa96bd06c8206e6f4d0363e5af6c13e91122d8dcfbb2666d6dbd618d1c28797f6d2002a0e1468cd133ca332c47a66bbe5825170242da5867c63d1e6c965d3206e4274e58824689e574134363c0b668d400684e811010ee4bea9804e801e325fc4328560e2bd3d1a4d82b7a440018ddb789c978e847fcfbcce2d603a851470177805aedf8e2591b301b699bc35a96fedf2ab92ff9bf86fadb491f37eda0f630919e4a7a51fd7938b10043b95f4d443209042a0fd66bda6296019d723c91ce1ca44266bbd6cc69ad0a8e01bac7fa91803e84b940fa7a42d3b00ad6ae903f04d5dffd122715ebe85b4c093b55542b126588f038bb703
+Shared Secret B: 16cfc71401e82925e893b5f9feeb8d41e3250a1ea52bac06418021df19c681ba
+Shared Secret A: 16cfc71401e82925e893b5f9feeb8d41e3250a1ea52bac06418021df19c681ba
+bc81423d3000b22e6bff2eee10acec7a0be85d0374b67d9c2af4b23e4fbcafc8dcb366a40e1ecc4510cc6b591d4dd3f996f40a10e6c0e9fbdd3c8db1802eca8709dd523db5dc4ba1c44d123b121335824b57ad9c234db656d6a1973bdcdf2bef356773b80c4d76af8c2cb0a8d84fe7a6a5cd3992ba59fe73aba9d1088368f41d0f357dd49b2656c061f3018e446978ea13b3ed15a4ac5dbeb6054ca184c53083cebfdae03fc375cbda8e0c077657e449db9db23bbea3324bc6d0d8abf9bf4c022e5496050b4a3d707c6c63393f6aad78b9e75be93dbba1f496b46862cc8951b159ea4d8b3e5d100c9cf7bc7ff5ab6ded8a6501d7db8dcd482e452ed4c26f4dc7a29627ef61ffc1d7b2555156d10c109a32ca6937fdfd591eeba9e8ecd1ac899c3bb862d871a826fc3840c50c58730c340d985ebca9f5d52be73e849e51f6815a2867340d3ace0224b3e8bbb895f25cbe0b14a62a4dc0d94a9537eb8ba1b2d6f33065b3f4fd372eeb2da1b2894c5280983b297d67689e704576a979bcb05bc89c32f73dd4eba274abd171b6de30817cc3bc6bf128365a0849c6f43a9a3a2dd2adce2fe7df0db4a747fb5f5ab88c042b637b630ad4a9a76bf0f279b00ae000bc51e7900b01331460d19e6e2a34d8b5d4fb1447a8cee0b8ef857d215e31972d7167335f986e30d7ef4d4eabb643f0c542b72c8e242239ca87f6cd2f4b966df3eee6845b4b1ac8a4fb7ab3a5695b2c5f37afc0efff973df98fe333b7c67a205515caa5406ea9221a02d2605f2f549ad79a285bf06b61b9471d97c48c4ac5225272f8dad44b1db253a1ab334e5284f3d1c8f9489248735b9e0ed076c3cae9891176af00ac804fe6c46b32de5b3374df8ac72c61ef9d735313aa9848ed7912049b946255ef19408add150f2fc3ae198631c8f8a7fd93434eecd93ddeeee9c4e1e5aa35afb3a006a8adb70ca0ad274611c64b6aeb7cc98faaa6abf1fb8e88071335cfcc800a44fb3c897518f9c57d01bcf75454d05ce5b02f93667b6bb078088818bf32a2ef5968a6e6c99ce57f8bf3c12dbff959850fddba5448e2ecb6a3f4b7ce6dc7200a1051ab91ee6accf36aaaf4fd58eae4add8145a6c1b6979c790c8d4df776a858900731cafe1b5f37dd70aaf88592828dab2ca0617a6e77e5bda8400d54eb18174272c878714fd27091b2d950765bb50d615a2d84b577a1bf128517177b78932d557818cd70b7a155050c7af54705db58d01c3d05927e5c5e52eeb0c440b274daaa40c5a55357c74c8ce89f94e90f4659b925d5ac2e358c81e3402876b37b1843b6b52aaef0349ba614c2283773794dcff75c7ba108e607e979d89694cdab0d59ec69aaeef0860049a47349601d45ec54c4af41b7c373bc94baa72be17253aef153660fa5c1b594526e5e263d6a75606d7e2ab114b396b15f84eaa02906a725fc0b1d1e52c125bbaac73d2a2c0aad6fc282479baa8f4ddcf34fbebaeb63470e2e7a42931786dcafa852610f0cb849edf5f46f9e770403efdab8e0b8171c0f85f9a877b013035b5cc2e21034748bb16d4792e026519159dcccde7f9f5651ff0bb08a28a3c9f57e6ab7711f824d409533a6021f3db6c8b3ab4825ff4f94ebbe9141a1d428bcc1534879bc0a744082904c28fc8b2c96b38f5447bd9c6dbce0cea3b21d8ff8eff56d961a848866fa2f561d69112a6357b91830c8f741af364bd118b70674952bbf583de150802905aa8d67acabb55da3c4cf82e90f04eacb6852020ed4615d566d73e41dfe01bb11a266a9d069c4300e052c1c0ecf88e2dc52c0284a52d824cc102f1726ef069adb92ce5d109fc7388b47d6aedd8adc670a63ce6aae6b9151b028030ec0586e0af11c5511bbb7049aa1da21ea922bc702b2e41a31c0fd4ef8c5a972db73cf952a21a5d54efa4415c9105bc6b21084fd1c57aa61ba2cc799a2adccc32b0a91ec07f770c50296d61976cc64909b25e86842fa358dfb8b5376f40a1659abd8031118cfd3337572674e2535885c14d85dccd81fea3bf924e17bd28d389eaf79a2eb79cac8811255327c3134b8daef51ecf00d0abc846e9dda74832cffc2129042319dd330daa30085e0a5f17c546d75d9c46c9143e8feabf7c18b72d6e4112982702970c0d488fb516d944f4556a6465ebe1af2b77886db4af7d2e191de324f2fc90213cead6a64f7b49eab4db5fde20e3d189930609
+Pseudorandom shared Secret A: f05d1afb68dacb466790856b6b04cf6bd50916fc7895068e1c33b01cb93f35ff
+b1b117a76d0c3943bf00c96f58763fad803b4bbd956d6206ed3e0ed10572702a641217884b3e8ef8e721ae7a9aacf60b03d7453a39d1dd5df0c9d3c6ee5867dc
+Public Key: 444c95bfb362de1096b67625f4e444da8a02b51a8a3b85728d20318abc0bdda7c721e687d374cc7c754506fc2d371135f6897ee0663dbd6a22f8daad15eb7437a75cff79956ce1b7a8d9413bc23326a65d2070ceaba3bf6d99be2bda64d210076b1b2f70038aad189d342ca60d362af222611666c83f296095c8891d8777f5e719b3393e4d5191868b6e35389eefe23f35102136f31957503e63e7892346686315ba22a39b915b8abf5052a419511b3a101f42b5829774a0f05038f4469c715e653976db433ca767960e21ccc9ecb9928aac6d46623b61cd243695a932504ee0b7d6cb244404a00be41c2feb486bda682a3656dc772bfcb5cefcda91d947796aba0b04b01bbea2a561972eaaeb465413473347bccd707e2131905f015832d85349e52fcd1ccafff21d7e72c3a723055a9a300ef97c553bb12068bb84955b4087cd30d4aca33a5b4e5c201931419a958afe0c4114a8cf9c65bd65721835dc61d5884df8c64bb84ba22f26a2098056fb940f2e0c3dfe36977498cb1769310714408b5a1f768b701923220c4a56156a48a8a57b2120c51281674a644ac2413499a96797035e79c52be3d0973a6311f5700b7304a5056c8370b69e88c6a9987c78b3a76ffa68c51f1b49d540249afa797d9b6f6a0847f483041078121ba5bca4ab461ee31fbeb10cff1c6a1ca562ac7532425b979ba9079506b13b22680f701d9d521c3f1cb6f3896e014bb72fd15ea187b4c0186fc1746fcdeccdf0e03692f1725082becb03bbcfa01acdab5823566f9b3c182bf05050fb7d4c705762f2c5b7f16e15e4759b5c387af7551b0c9ffda3c19c84219ce91dfaa7c9b5d11286599fddec5ab3c273fdc35f976911ecbc5bf3e91fb42006cd701f1056958cc950fa887e01540bdf40aeea496260eb1cfcc1726e11924dd181e0b853ab010258c7cc329b7689714416a878053c9daa07194e874b8ed1b124168a3692995a4294e1f4aea707c31ac970f2122d82245eabf88fa91c741c6a4a70c597fe04898a0767d82cacd0d928011214b5b5aa5ccbc1b9369c8680b129d4458be7c3ec4a4be144a6fbc76ed343b59c608c8604a135c275e5cc09674a3054f2493852ac0c885face68707b70ec9b8a474109f96f4885ab0a43611a5ed62cca8557d11a41bcc35322b73bec0944a380080e7ca119bb19a32001edea0a6f4c82d5f4a6317ea686842035b860332d95e5ed40753e31417484cfb63769d27157ea6a078490c00d38aece3a401c0a7c6a097f1a83a5baaa18b405c73630632b476836563f0f4c0a5bc1db07710e18aad5e14a4338b93d36a61e9858090050b60a66ba33709a2e170f68c523c6578ff300077d93890c260c9d2058a228c8aa7acc651326589c8b8383723a69f6609aa33d67a4c04654e2cca874accb9d80c7be6cb30013b81029c56b2345d0bacd66c48e092037cc865e20b2a558706db868be8b41a025c138d30384b877fe7896d68298f41519cd8cb524698c48415c63da197f9831d9ef61841960be3c76229b91d3699943969b2f497809d2bb2bce8a407976928c4ad8867bb9b6475c498b913c1214bd6373df81b01d2cf7309760130ab0f7c4c513a816685b1f271899089ce11dab75b276bb0184e47c74987572efd0015d5fb1a8414486542b2b3d317b4691ffa589ccacccc2b7cbbdc97c44f51329997c76052104c74b03e5915b4a34fcb0a7c3dd0211bc21e407437339c1076852c88a746791694f317779980a76241395c303b5963b80883a1e0659bdd182d4a16b2a1672afc37b69af195aa7689550834213c88cc421b0bf93020150633256216f40a6fd292fb873c0c0cc80d30183d510efa0a975574a58d5426c863a95b155df42474c74b4b5fe98239e93f716482a685c576ca6f92486729806deeac92557a298cdcb0a64038d34b8707f4590f2cc10e440a44d9a1257a183f7a7c6f8b50dcd053017307dec8ccedd061258804e67925322290c832b3402b103cc50bb6d1069801d081bc49138656b5804c2ee5011252748d941341149056338544e220b2cc5883d3899a5468c0a0a5ba36ce1a1bb20f233a991b2a442922165a918f184d0d95a50cf39d5fb99ed3b275e4a12ff0a84b5363482c526e51da0c4ec902c3323d2fa1c02202a087259535c3575695781a117da62e911951d3013d861c577e03000ae85f50890376f44ea615449b11e2
+Secret Key: 261b98a03cb6375216a3769973f3b7f6c7c705a089e617877b576c5262a1d014ae71433aa382b150812557a463dc625b93b47f07266b4468a60bc076e27c26df28c2ef114822f6cd68e77b5f48169a23548ab85fdea37b0d00c169202352947c27633f3a8b0d17d463d8a8a6e4ac6f0ad941466a0fe5c7afc2a26db023bd53b68213549d55779efef909f9d79ec755bded4163082209f89c59dbdbca3fa18dd0d54ebeb1223a1ac4a9c01aa6e51e6561a0e60c3d15c5099942343b9039026669a7f1362fc8a9a8ebbdc170c44aab37e46cae05722a5cd09199f71d7f93bc1359a96bf709bee88061155ce5d66da40977cf6b219cb13ecff9c335716d81e8942e3a9226ca0fb8225c210a005e60c891c16e11fa67594a3e104b58851a90fb6b1745e15ba7b751cb732e60ac1d22fb2941d3012fc5066aa981665779ca216a0d6670ae5209ea120bc0989a8f13bea93153ef534784661aabb272ce71190a179404b58811fc14bb6899026a468709673880c07e658bc8b24d2ba937edd30849b93da9cc2a79a7049975aef9a2be073915f20b23000d0ff05c2c6a397daf606cb6f02a3cea2c9e2051aab88b2bd274583c7638b42e67d12e3ae6a5d8f71ea3a05ebc76453d99123ed0602f68ba52380c4316b6e9b510f3215a93a609a0e061a572bf00982e3e037acdc52a35dbc0d77b210d374acd334c1fa90eb2a4500dd30141172d4ac61f85658a402104708b5b36c64da45c7888e3bb051a217ecaa96ca33811d447d8225cf4d1c21e09796cc3986859029c60a588a77dc12c5822d53af3721e320631394c2e2984c41ff37f86b3b25f325843018393374d58d14c10678025c4459c275e31c99759465f6a04c14b1594dc32a34d7452cb58b1109aa21e5390f08956f467293e7c1711c6814ca22decfa7b85824b15c0068b8397a8638f77a52d8602c6fe26bd621cbb22911cb1b9adede61aef8763a29b9663790c8178689987c366e99040a43402b183f57a74e0c00ec5d58dd671c56f587a3b8311ef657438916df3ea73145b5057e31d33677cb9516e1636b6da0b539b6262f16790144a7398d779ecbaa3a8676077f93b2c80cf7fe3ab8d119e7b182d6bf65b64a443b88b388afbbb86ac3461855caf747c211800dea63e827345d6531202dbb5365783b808711447482d5ba1782bcaee5091d736095bb25d079893914a53edf55cf71382b7d465f99a3942f0a7f56370e26b267ba8c380154819e388508579df2c319e316ac8e3738db00f81064c217635c1951f4577a0c48566158824a78040c252416f858d402c666dfc804bc2a0bd967513fcab716ca99f0a21709b9418395eb0ba60ead498c8ea57aa4191c11598a8009e3b1540f20781c17c4a90f77dc695402cb3748fc3c1d6904697263041632dfb422a520c36dc486e40725948c83663f6604c76c7f056641d352a74f73636c36bcee367648360b52a0fc3cacbc4963381581550c46fa7ab209679440ba9adc4aaad7769bcbad3620245038567cb29e9574e987182781456a8a081ea7fc4b827f56b201903ad204b7832d79b08642869c9053a84a3be86833366ccbcd14bf7cb4cb6f21e69f8bb56c134b1210c9dc2a0302c959b0a7f3106644fc70117e62abc376cb9b10ce6b7b9c8f41dbb9505b87591e57765841958133642a9139ae4a8953be0c2505713e894cf3a2a81f078079da99999c21557509a100394f6e9379d835e1aea7904786bc4f16a0c9377e2959d69330eeb002afd1c37c62026e58ab3177786ff29c78476274cf338c63224af1c2efec85c8e147b9f623cd513607dd93f714b6ae776ceff5667ea39749418b0297c387786c3ef760025cc82d2c1484b007d58911cbde9839e07883beb5327b11d813127a446010c90346c34b1f6903ce29a18c31c12cb3476a85abd3af81e48ba91197482f9531197a10bdfd45ef215a61c290bf578b175e1173c233b7e08842509ca50d8651e95b0e6561e786500755a7f5bcbc7b0c6182357766677237a70ba4635385077b995b37470b6b6c42c70b00341fd3731196799754930eaf66dcfb2959cf61d324529abe59ec2602b16d19b3b2ca2ca64ae9642b1803b60b608432b917a9adb7c82995308cab1b7d406db57472c269cc569b09d1c2045901436cac7098ace444c95bfb362de1096b67625f4e444da8a02b51a8a3b85728d20318abc0bdda7c721e687d374cc7c754506fc2d371135f6897ee0663dbd6a22f8daad15eb7437a75cff79956ce1b7a8d9413bc23326a65d2070ceaba3bf6d99be2bda64d210076b1b2f70038aad189d342ca60d362af222611666c83f296095c8891d8777f5e719b3393e4d5191868b6e35389eefe23f35102136f31957503e63e7892346686315ba22a39b915b8abf5052a419511b3a101f42b5829774a0f05038f4469c715e653976db433ca767960e21ccc9ecb9928aac6d46623b61cd243695a932504ee0b7d6cb244404a00be41c2feb486bda682a3656dc772bfcb5cefcda91d947796aba0b04b01bbea2a561972eaaeb465413473347bccd707e2131905f015832d85349e52fcd1ccafff21d7e72c3a723055a9a300ef97c553bb12068bb84955b4087cd30d4aca33a5b4e5c201931419a958afe0c4114a8cf9c65bd65721835dc61d5884df8c64bb84ba22f26a2098056fb940f2e0c3dfe36977498cb1769310714408b5a1f768b701923220c4a56156a48a8a57b2120c51281674a644ac2413499a96797035e79c52be3d0973a6311f5700b7304a5056c8370b69e88c6a9987c78b3a76ffa68c51f1b49d540249afa797d9b6f6a0847f483041078121ba5bca4ab461ee31fbeb10cff1c6a1ca562ac7532425b979ba9079506b13b22680f701d9d521c3f1cb6f3896e014bb72fd15ea187b4c0186fc1746fcdeccdf0e03692f1725082becb03bbcfa01acdab5823566f9b3c182bf05050fb7d4c705762f2c5b7f16e15e4759b5c387af7551b0c9ffda3c19c84219ce91dfaa7c9b5d11286599fddec5ab3c273fdc35f976911ecbc5bf3e91fb42006cd701f1056958cc950fa887e01540bdf40aeea496260eb1cfcc1726e11924dd181e0b853ab010258c7cc329b7689714416a878053c9daa07194e874b8ed1b124168a3692995a4294e1f4aea707c31ac970f2122d82245eabf88fa91c741c6a4a70c597fe04898a0767d82cacd0d928011214b5b5aa5ccbc1b9369c8680b129d4458be7c3ec4a4be144a6fbc76ed343b59c608c8604a135c275e5cc09674a3054f2493852ac0c885face68707b70ec9b8a474109f96f4885ab0a43611a5ed62cca8557d11a41bcc35322b73bec0944a380080e7ca119bb19a32001edea0a6f4c82d5f4a6317ea686842035b860332d95e5ed40753e31417484cfb63769d27157ea6a078490c00d38aece3a401c0a7c6a097f1a83a5baaa18b405c73630632b476836563f0f4c0a5bc1db07710e18aad5e14a4338b93d36a61e9858090050b60a66ba33709a2e170f68c523c6578ff300077d93890c260c9d2058a228c8aa7acc651326589c8b8383723a69f6609aa33d67a4c04654e2cca874accb9d80c7be6cb30013b81029c56b2345d0bacd66c48e092037cc865e20b2a558706db868be8b41a025c138d30384b877fe7896d68298f41519cd8cb524698c48415c63da197f9831d9ef61841960be3c76229b91d3699943969b2f497809d2bb2bce8a407976928c4ad8867bb9b6475c498b913c1214bd6373df81b01d2cf7309760130ab0f7c4c513a816685b1f271899089ce11dab75b276bb0184e47c74987572efd0015d5fb1a8414486542b2b3d317b4691ffa589ccacccc2b7cbbdc97c44f51329997c76052104c74b03e5915b4a34fcb0a7c3dd0211bc21e407437339c1076852c88a746791694f317779980a76241395c303b5963b80883a1e0659bdd182d4a16b2a1672afc37b69af195aa7689550834213c88cc421b0bf93020150633256216f40a6fd292fb873c0c0cc80d30183d510efa0a975574a58d5426c863a95b155df42474c74b4b5fe98239e93f716482a685c576ca6f92486729806deeac92557a298cdcb0a64038d34b8707f4590f2cc10e440a44d9a1257a183f7a7c6f8b50dcd053017307dec8ccedd061258804e67925322290c832b3402b103cc50bb6d1069801d081bc49138656b5804c2ee5011252748d941341149056338544e220b2cc5883d3899a5468c0a0a5ba36ce1a1bb20f233a991b2a442922165a918f184d0d95a50cf39d5fb99ed3b275e4a12ff0a84b5363482c526e51da0c4ec902c3323d2fa1c02202a087259535c3575695781a117da62e911951d3013d861c577e03000ae85f50890376f44ea615449b11e21fb264c6ef9a97be2e344819d2c6c592a98274f9d75f5ffa834287a4fe9912e5641217884b3e8ef8e721ae7a9aacf60b03d7453a39d1dd5df0c9d3c6ee5867dc
+a15edde6db80f1294fb19c3d912cb5fe566acab09e806625be80e6062e824703
+Ciphertext: ed17d9c163ece9f2037e7c62d445b2ee0f2b45693eac6b7b066ba69476afa6569c4de58974b05a6f3f65b1752b06b47d1ae2692a23941c80a4c26c4d5119e95d8dc539c20c92873963496d92efb20c4b1c92554bacb0049ba8953520252f29f1bed3640f3251b9ef751f5d576ef074bfc32d68cd79660d584b11186a73e0fc1e2db57258e95f7d4a4b9ed0297cdff555a6bf283733c67f09d49fbb060aa848395b8b8b8ff53f2bbe3f13ae03e890b22f49bd97df093e5c62c7cc62981baade46ef646f096da9c589c897f60bcddabceb7966564e9673cac8501a9e1c48c7d8744b0ab9acffe2feec133a72e5143d64e6ad5f88900396a1f266385393490edfd5bf5413b142bd6a6521e77a51547817730848c90fb90542168b9bb3a45c5c9dd1b1036ca50a5546a04bb31c0a5ada9d9600f2f76c16aabe6b35d113c81afe1e7cfec079f0bd3ae6adabe719182fe7dd61d9d459bc3a780731012785d55bd8700f6833f1ea4a3464152a7f0c1792f7a412a132ab9c8ebd72fb3f6faa23a74a4ba6142ec214b251c709d9d4e37282297f4ed4749c66557551a0392db36b98f1598a8e5c40ca82e379ce24445b8faac68cba6a2169f56e08fea5eb02fd1984a411ec7fc1b1b5a2fec1809f13c749d1802a44a2adbc9278102529e353a5c85d62ce4c84b32998073799fa79f113c72db677fadcfa944d9b1aebab6c525de23674a736e083ce5899c6404edefaba4a1945f97acc781d3036f7fb88ae0a0d580b098f7878d25d2179dd2c941348db6815d3602b7457250f3aace5c31f696e5552258fc75b4a03030b6a25b0f42138f9d47f98092212430b30f56397e161c7d1cc53fc3dfdbaa6ae6671f7d1b8a61cb9d7adf221068a692bd8eed5875b9adbef2acc58be6db2f2bcbe971704955aab532e03baa34f2abc00c4662e428f66bee89fb6acb387248e9b756ee70dcee4d822b9481c6943b5adfa149e3e907900e6f53a8918068ceda79a589484923978d674d4a0aa2f074685f80cad4a34b8b5e7ca35cf53ba1a79aa5be6412b10aba7df6a17a8923c4553efb2c55203b9647bcf6369c54968129f64d28626006d661de375e77b8d18754598d16378d54617121e7f963d93c43802f3f5b856f8021bce7c9c4c599455b566a06b282c163d1a8937abc7f381253daf6b3608268272304059b4321751305d6a7e66ceecdaa53916457535f90f5d4dd249f05b88a086b3a62b013bdfe29fd094cf243311e4c48c4f7d675e97d63665d477bb1a0f6165075b36fc17010a413db2ea7ad1d0ae7ade3e47c8f0f31c718ec560a5a04226ac01e4f7308c665fa79e7fefa0d43d8149cf225974ead202d936d71db4b7b9a11a46309b8ff82f3a91bf1b4eec8196ce5d2625bf809bdc45c93a007d49b547843cfd2a8546320f3d8198a2c696c79fff063995d1405a3af862fa0e56ed4bf8e945e9bf29d08902575c358c57111f6db6ef4ef5e923a488089c5b2111eefe090322913d844f498c1fc7876d258e8ceb076b9772525daa1eae13be737f5bd0a67c8c087b15893ccc50ec29004e49889e3f7f62be3c466d7b074abdb17bde8a94c06aba17fdc7a46342369378d228eef407e78ddaec9be25f55371f754e2e0cc1b7bc692f11a82b7868f90ca9a5a2bbc5023794b2b83a0138b8420adfa00e945aa9b9fd81b2fbea10a4a5186390f9c91bc9ef1585e98daba94a0a2f61881049ef81a0b27e3bd7c17a33298995e5424845fc959e5c5fd85d742e59d15c8f0cba40ffea46fbfa6f537b7bb9e5df91662a8b3f77423e053291f1332822cdf65ca1dfda9e5f8e0d2d5e58fc51069d416d1c80d18f273f0eddb27e4f6e61fc5f36207eed0299f1fc9db833a136c24e2294ee904314e3bbe5e2f6b097f7c81718ede3b3811dbe774bc6e68e9efe16325dafa303a085ed061d888a8af39b537b63f173fc2e83e81b6753f9f1656fcb997ee624dd03d4e31cc5e7749d2abcc8d9d471f14f7e00b68c60a38be2405f29b034603d2f16a4ad1abe4041fa1c99107722ffc7bd8c4a200d3525872d49654201c0a950142c705890c907f854e97e672c34d790239f65534e0d1ef6113f5c020441577dca22b993b76a426381326ce93e520a894d95cfc2f77c201dada07e009f1efb4f970ed07b537fe5fb64380201063d51bb953cc4720d6a070691f1889370a7904d4ce30f10a92458d91e0596
+Shared Secret B: 58842f6bbbbf74425b84a8b4f0ba54a08a6e419db71268bdda38f205a4018ab5
+Shared Secret A: 58842f6bbbbf74425b84a8b4f0ba54a08a6e419db71268bdda38f205a4018ab5
+c9789dde290859d1a61fc2ae406fd91d314e1b4daca763774afd9485c78e4262a28fc105de9001d1c88f0b01ae8e0b91fd47dd9257fa85db2cf1fd9bbd906ab79fae9aea5205ac1fda66abca92289b5a138ad4e8d19402ce74b66f7bf62cdc1419af0dcc566c523a26312940c68d8c46fc7e096a3b0a20a74e427a673cf222e8814bb9889e0bdd9a3c89e842971c6677f870eadf876b3b183edafc316f6a0ca4193b8ce43da4af8d239480e78aa427af510592de939cb15076e8656f850f705a062860ca061ff82ed71cd0c55401b5e510035a322dec253fde3f03dea230fc0eecc82cc99caabb8dc84c7efb0c8fb98d1f54790dfd7c9a2e235aab0a0660f278a21b5b52d6de5421356fc60dff8d3b30de38414ce03b49645eacb2b63396359e837a6cfe677ca9c00b92f63c7321dcfd72fcdfc5e11b0919fa773dea2eb6be66b871d1d37ab3182c017824af4727d6f072494cce6bb0b4a032f3a08022205b3c582b8933f67adc628fdaab8ad3f1c6d7546637c3847ecf8f9563a610f408970a0e9e442d871eb4423a09fc95527e1448401aa08eb36cf1414d433074d5b16f6f127796eb9bf048da71d8834c9cbd0ed2ee7d2734bcc15f8dd1d5e9791bc45d31dd22f8666bf19d382c540a4dbaf24d5409c555e8081422f8eaea66875413ba64926f7201c4af926e6b2a8f1f6fa22d4f8a960f622a224db96f82d025576921c77b5b85cb64d1f9f808f98142a10974d9875bddf55eae79778fb4fc6ba32e2230cb5822edd0dbec0f093cc9bb5a0b27e9a57910ce00ac4e05e40ad2ae4b21da9c6cd8c984eff262b1c6068b731bc9cb4ddf1aefce507097410bb07ba35e3a12a6ed4656c5f4e48c9bd2f814382bbcc023de785e24c29465138b5a9a15794c30c8d6bff6262f6d4361678d878b7ab16ca15a355d9eb43d3af9efc35ace9334369a527639093d33989b49114210f6d530b025b3afd5e38ff7d22fde29f2e2e1ee180fd080944736b54c3669e9d2eec1c08028833142ae8958f9710d2ed4fc62b78e7d89b1e2c2c081d69e311acd5ba1f981dcf260a93ac7392122476f2090ee5dca7bca563130be842d534b29bcc083901f1c218602a7684f229e34e5aa95d8739ea1686b4cca1b58aba3045ab245934fd245b9b545e52645774e43eb604c97986987ac8cf427d0f97aceb00d5fca3f531b2073eed1b481d608fb08a4c3560ecaec686c36a801fe68a89bdaca5116880d4862f6212961db7bbf5d1f832ff2e4867a87087c83e2e000bfdcfa8540abd1e9a0727b07145057e0427dd03db30c66d92ae2828fbfee62cdfd0175d85716602c6987d69af2eb3d70510dca577a244cbe665c0926bfd42b79328bbcc62e5139e1e3b03016f54f259fb63eda533390588e80905d8750294a3bedb442a0a8f029e2064550d3242b00e6a972fc27ddb3cc7820c308fa03b89f697214c639355cb605c01b5bb832b10caf90732b36bfec22b46de5a9589c4e40bb35074893de84afcc236538ab7c046771f57005478520e7b4201dc90414db92d388b637c93bdb4e6b1205650f9d028d4f4edb84a4622650e492bd48c65456718dc3875c85855288fbdf38e46d31782dc34d7df72ce2a7f189269e856bf18fc1428a4de33cdb954a5f44bd5c403b678cb4eefdd7b4aa8435b87b4c63a290347e983a55e15ee310a738d3072b3cf4cb76ebd684ef31b2db79be48c48b5cb86a6910ac1d9e4ad4b1ea7a0f5b278eb02ef608f33f028018f315017d721131ff215d1cbccb980867edc21517cdee23e3d8e20df78c1425b7c5b5be52cbae7d5fdc116211e4d864c997e146d64fe3b57ce342753edb1755df3a11f46f841be46254c6204dad80e1fe73c51f51268bf0a35a2fe9298265953a0cc7a2700559896d8cd0fc5937e6b1751cba2d9e5fff864b969d9a3d1ddd6cf60a9ae9f151e5122da21ef2781a43f55f24dd4b020c2abd13f10f8e5b7d510204a6fa7a5a282d803685e581c0ef5231f0c20cc55ad4d19492c614a501ee7317617ee037c42b605fd9ed3ad1e912a7a7fad22feb6ac4d532e56a3a3f20c454facb734bea21fad4ddf22552341106b8b0419be01fa06782a48af5e0b34333e2c6f650b48fa656907c27e596f14ae3e34df9344a8868c362f852aab6f2df4212486ca47c0e45bc08a84bc7e3c00b5354372f33ef43683028a64dcc48dac2bdf93d8b6480dc57
+Pseudorandom shared Secret A: d534c6ebae1ef0310a8f9f9d67254e98478126624f9ca6c7e77e5b5ba4855e06
+93f0c9e387870749dc10c896a46691bf98f8ba6d7c77305943771b7991854660ac61dfc62db36bddc2740ffd48775b128dc36bb3188d6712cd011281f3c7eb59
+Public Key: 6e802bdcc1468722971271065374a7ad084006074110b0ae4be6bd4368094ffbb22aa1b787270bff571d5ab4265c8818ff22865428021292b1f084329cc3bd6664bb349369d5e96c04417c706680b6717e9a697c37bb9eb49300d8fc41ffa7ad5b291e4b169c92b6c06c3aa28f488d3b423d275c69dcf316b0b2558ed47f6bb5a15ff845791c85cf2aa18c895519750bcbd4c80b3649aa500561c492f4f59a38f25aeaeab298854a60607e9162a0acf6731d291d1bf2bf71e79dbe5024132313f189740f108454bc35295b06c183cd485c0f3d391a38c1ce5c446f33a8ad4f98467a65766ce9748e27480bb49126e81b447cb354a333895609a8eb698791c3a5d946d501c5649c738d24772cb66815b731c2d12cc74641987a442290c8d8b4b4d82b38f2917b6d114df1187062e6caa545c88d713421f17ef5309633917e3b980114e504c6f0427c5303c9a1c52eabcb65e9030ce990b37b4f8e25b2c5f5ad7e7571beb97882a584bc88a2a624533b1c952c784daa9aca1c5a1865678c29490ac8d023ed513309e32174814d57c844e0a8a39d710377e3b1313b60c1280d87b37f128660932a332f882514c801c5029e370aafb5f1585dda32e37bcc0344c9b009b4fe2ccced94890728484880206eb70644e76c7cbb8ef2a0a75601b6b4a7b6bbe6a1c90b2c7cb007fd4a5820053a71f225975064e5c4588e65b3c6e96050b7390ab57e68e039f5db6f666711395811f922728a989211f5633c6b73bb31268fe67e96b154d1f441fa24bac5d175dc42acc08860b0834223a25ebce7a62fd708aa3228bc74ae74595271715b3baa7de2049c06e03432fb60d67864fe395ee4200654a17069b333ce9857d85223b07a6fba6ca9c4216bc1165b919655f9f26c5ae3b7d8633ce3260eef043fa8c8bfffa96b0df8853bd77c1cf7a0eab4c59033591dcb6784073f70c0669125012f01811ce8bb875c76fe43bf3ea330cccc808dc97dc1e757b3bb9c4260aff49300a718220506107c6c8ba3ea512cb86c9b834d24577a95e2b4cd93068f46cf8fe20c8b0aca18cacd2fb655fabab2a2526d5c394e66e1153ea14986d433d4db320cd5c194da1f66d262277296352b3d7f9102778c6a9967ab7f8554ebb148cbba729de1b3ab5a8dfe5ca940a5c8cf356407e00b9c349ed88748bd91c21e17b8e3025cd3ebc1809c5ab2588f92db6387c7c2d63768493c8ea6d003e03309469abde6a18bbea51a4f5c0b34dc6bf92b76a55cc768c2b5591540358a555a9bac1a03b343852c6ac70a364617ce916eaac95a1c2926e6f71ea3b33a8af0aaf5bbb73b5ab5ec883a00d1c40e13c52f13748956af30a3b360d34ae343cf01b4c00c72af1e37999140c55808a6fb8304c5948de338645996420c697651b36780f9babb59b51277840caa4266fa2aa19cb0456bce1ecbbf5a02007cb81696068145295ec014acd1170f1c5555c3250c802c24e883c6618418dc1b1045b780a1843346c1487ee90a7b737597158b94cc1c5b8a5f66ca78e4ba895120cc109b3e74083a786884be1251e9650369c93d2431a317b3b7e6f22b79b225d5a307043a2b9f418de2c80bd5b35cd3339c2e2b7f01a62ee9780be7049a58b58497c4c1bd231094d13737e9a0003316792b9c8f9371b565a01a4b45129c0ea0d780b9c4c14e79967949932b7aab046c26cfac6cd2c2864e70823274c361b885e3cabda5a64e53b05c1cd05c57e2450caa0a5adc8138bb634a7a059cb2a177508fbf006a37b6b697c9b8af227b736850c4ab7d70bb50a4cc63b16baee92499b2807c8c51218eacc1f3a318fa859fb03b504cc02fb0c233d1c76807f6a62c641b11c74f9ea817256511381146512a0350717271b1a12d183960bbca00f554c1d21be4644a3140bf9a2a55164b1f2090317cbc39e0d967e571c44f1a55d3fb6347eab9bdb11445b1a88328cfb2c325e8709d6dd1acd1c68c195628437c41ebc62628e6900d9333d043c025574ce81a7125406f0f880f15ca982a5533f0098f95c57cfe4555e8836be0304e49d516f526b4193376d4851442da1674e6b1a2941d5fcacce8f3113bf9b92f507c6b6a00fd0944ee169f2f7b638896c32b51caf84181d619943ef68f1cdbb4bf04b8d14c27b3a38d1a6ba58dd10a48343c441c698ad035972b219429bcce7ce5170768e49041b772477dc9db2d70ec31f21e6d53
+Secret Key: b64c875f77ca8790a5b0ec0cc0c0130357b2984263d6e5c380c4035f1c57ec12b288594c74530d6ef71c5dc12da8d7b49c9b9de0cc36857cc044f48d2c18284a1707d9101823d603c389a29d95373be874291288f6b30a42ba7b4c3c5093e3c6c66a4bb26460a637a0f30a8dedf1253c0bb2657841db39c9dd838409757db261c3bd59842d94218eaacf63309dad59408650452c05062205cb005da8e7cc47c5156c6fcc2e2b983ee69683ae550bb4845db3c92496942f802058e47995d1b41a09eb2d029840e2055445f08e7a00ca695316dda26a234ca4aa75004421baf2a067bd593074c7741e3b67f83badfe369ee0c760ae79c4030c69dd2a3720363101fa0054246940d5ab523918d669cbba307f544a0614498da0f317c826a459e6b66c4182e1b1cfb950673fec6b76b9ac2ec621a607c2ea35b562736fdbd1583fec7700246e28d27f735336ba1414fce288df924ad19bc88bc114c2d291ef688880db82ccc91f900c2ee9f84341740486943cb44a3eb82127866b0c47f579a0b81683105fe3a98ce9d38fc490945f0713d4969dd204a01aa089cf35664b89600b10c87104406ae5983a35917504944d70c7e2b751836a0bc12aa24b675576519577016b6d5a0a136405548b1fac1755a2685d5c03bb63c4939769214b20cb874bc4db1909854c0c3d33aeff47096e6461fea19e930b2091652bbfd13439c657fb195817105ebb051f26b776f4474a93754541c1023967a87e3973cf38b5d3d99233a833ea3b7c989628ba1aa982f8b32e4b4034d781bb5476d343c5deb5c7b159a653b1a4d9a8a4ed4ba9b9710bc0b78bb9c07978453d17e09cf3455d726858d7a38300218152f609a17753678b530cd24b46803b9cdaa0cf7177c3b132e83b8fb1e104df9b463f5c2cb5fa343c3acc32c85247352bb4a642ed136e9b0865d2d19e6c30aab1394f3ba74755a6aedf2b5c378b0be607838bb9b518d798210a9ef16a562e908c10591323930113acab5d5750cc0201c5ab728d273b6da1ab8cfc9d1bf6b09b6a395d177929c911b9ca86f2b7b3e477153fdac97d59b772b300e5e3783b528027c3211f1ca2ea047bb6760d608a6f08aa5f47f6af2620cce3a7ad35976df471b1d7329efff385d42481cfd2b5b6558867e77317695b42429711f1236054b5268952c84a61b457b7f469a6e0f27ec1e4b1b618aedd8966f30242d0557afd77b838660c09b5c7be99ccb81b4463230eee5a68638477ed919b30183dd53851f7e0494f294c65b73867e44485a460474c5257302e904637c47419eb56834620af1750780ef329b0379b45bbc02b709a8b98a0a2b73f7289bd3f028fb7a06b1ce13ba9e958e2bb0bf2818eb2215b90027fe3a27c44b7764f580514355ae2da699d0c47eb8aab0bc4365ff02a950436d72a37dc461fe7e9796d2cc696f357bc554818c966a42339a6c78c07852a8d054bab9bae59c1a708a3c30d99912174874633b98ce0a5b8c580300bd0b2b25e5f615da4c4c73c529f774859d56875312306816c2df90a39fba081472877cc54c5a127b855a71c85cc3193c70c453176b373717d6396effc2172f3cd310056ec994d7a12717dc35416053390104a38d04488308065d9a196151fcd12326aeab643d23c696581af703dbeab0e08356e3a80159d52c41697a43dd162a471478a4700d7330853d62ac4c419f4f9bd15b15bc65a56dc3981b945043ff866d6fa58227c81896244dd670babbc205de94b7d5ab30987302176cbced44bbaa610aec8936d66c2e7468b7a731f18877cc78831096088ca12aaa965a72b653134f1c1c83ccf6950764e109ccf525f87c96eff59175484750bfa0779fabb23987aee6833ff778047f28bd3e9013ef043ffacc27a231472478eb415562b7bcc87383d2b661111097eae195e0bd88c886c0e393cc9af92719c1199435665b5b3bcb390a0aae8b94f766b7e468d7a0a5274b91dd2eaca14eb6894c94bb340403c65cb05ec6298cc129474a89b917a08ab6d05a4b1a8f582954c347b68b91008a17a21c3255c3fe4a8b4417271acd82b14b15e431828f8254551cc9196c14d92b095b6912d2275627735ac7f494d56f85a22c83acb95bd13385a3d975d7a9a1d9c6271bb455bfd7847c2d937b0a8757620972e487a35260c6e802bdcc1468722971271065374a7ad084006074110b0ae4be6bd4368094ffbb22aa1b787270bff571d5ab4265c8818ff22865428021292b1f084329cc3bd6664bb349369d5e96c04417c706680b6717e9a697c37bb9eb49300d8fc41ffa7ad5b291e4b169c92b6c06c3aa28f488d3b423d275c69dcf316b0b2558ed47f6bb5a15ff845791c85cf2aa18c895519750bcbd4c80b3649aa500561c492f4f59a38f25aeaeab298854a60607e9162a0acf6731d291d1bf2bf71e79dbe5024132313f189740f108454bc35295b06c183cd485c0f3d391a38c1ce5c446f33a8ad4f98467a65766ce9748e27480bb49126e81b447cb354a333895609a8eb698791c3a5d946d501c5649c738d24772cb66815b731c2d12cc74641987a442290c8d8b4b4d82b38f2917b6d114df1187062e6caa545c88d713421f17ef5309633917e3b980114e504c6f0427c5303c9a1c52eabcb65e9030ce990b37b4f8e25b2c5f5ad7e7571beb97882a584bc88a2a624533b1c952c784daa9aca1c5a1865678c29490ac8d023ed513309e32174814d57c844e0a8a39d710377e3b1313b60c1280d87b37f128660932a332f882514c801c5029e370aafb5f1585dda32e37bcc0344c9b009b4fe2ccced94890728484880206eb70644e76c7cbb8ef2a0a75601b6b4a7b6bbe6a1c90b2c7cb007fd4a5820053a71f225975064e5c4588e65b3c6e96050b7390ab57e68e039f5db6f666711395811f922728a989211f5633c6b73bb31268fe67e96b154d1f441fa24bac5d175dc42acc08860b0834223a25ebce7a62fd708aa3228bc74ae74595271715b3baa7de2049c06e03432fb60d67864fe395ee4200654a17069b333ce9857d85223b07a6fba6ca9c4216bc1165b919655f9f26c5ae3b7d8633ce3260eef043fa8c8bfffa96b0df8853bd77c1cf7a0eab4c59033591dcb6784073f70c0669125012f01811ce8bb875c76fe43bf3ea330cccc808dc97dc1e757b3bb9c4260aff49300a718220506107c6c8ba3ea512cb86c9b834d24577a95e2b4cd93068f46cf8fe20c8b0aca18cacd2fb655fabab2a2526d5c394e66e1153ea14986d433d4db320cd5c194da1f66d262277296352b3d7f9102778c6a9967ab7f8554ebb148cbba729de1b3ab5a8dfe5ca940a5c8cf356407e00b9c349ed88748bd91c21e17b8e3025cd3ebc1809c5ab2588f92db6387c7c2d63768493c8ea6d003e03309469abde6a18bbea51a4f5c0b34dc6bf92b76a55cc768c2b5591540358a555a9bac1a03b343852c6ac70a364617ce916eaac95a1c2926e6f71ea3b33a8af0aaf5bbb73b5ab5ec883a00d1c40e13c52f13748956af30a3b360d34ae343cf01b4c00c72af1e37999140c55808a6fb8304c5948de338645996420c697651b36780f9babb59b51277840caa4266fa2aa19cb0456bce1ecbbf5a02007cb81696068145295ec014acd1170f1c5555c3250c802c24e883c6618418dc1b1045b780a1843346c1487ee90a7b737597158b94cc1c5b8a5f66ca78e4ba895120cc109b3e74083a786884be1251e9650369c93d2431a317b3b7e6f22b79b225d5a307043a2b9f418de2c80bd5b35cd3339c2e2b7f01a62ee9780be7049a58b58497c4c1bd231094d13737e9a0003316792b9c8f9371b565a01a4b45129c0ea0d780b9c4c14e79967949932b7aab046c26cfac6cd2c2864e70823274c361b885e3cabda5a64e53b05c1cd05c57e2450caa0a5adc8138bb634a7a059cb2a177508fbf006a37b6b697c9b8af227b736850c4ab7d70bb50a4cc63b16baee92499b2807c8c51218eacc1f3a318fa859fb03b504cc02fb0c233d1c76807f6a62c641b11c74f9ea817256511381146512a0350717271b1a12d183960bbca00f554c1d21be4644a3140bf9a2a55164b1f2090317cbc39e0d967e571c44f1a55d3fb6347eab9bdb11445b1a88328cfb2c325e8709d6dd1acd1c68c195628437c41ebc62628e6900d9333d043c025574ce81a7125406f0f880f15ca982a5533f0098f95c57cfe4555e8836be0304e49d516f526b4193376d4851442da1674e6b1a2941d5fcacce8f3113bf9b92f507c6b6a00fd0944ee169f2f7b638896c32b51caf84181d619943ef68f1cdbb4bf04b8d14c27b3a38d1a6ba58dd10a48343c441c698ad035972b219429bcce7ce5170768e49041b772477dc9db2d70ec31f21e6d53f3b0297d20335161857e9d2e78e5640f5cfe2dbeeb50947a98139f49329421ccac61dfc62db36bddc2740ffd48775b128dc36bb3188d6712cd011281f3c7eb59
+e97606987d92e932e6b1e948a305355c05a7281371be898097b05c50e43906f4
+Ciphertext: 72380e5a84b957cb63e4d4fc2e29ad37accef048857750d9326d295a32b63070ad1c25077cda85c927cf4e39a1fe38af39e6c52fed954f56c60db506664aabd764606b0b7626cd73b97c3710a83c781e8482db8e26d2515dce842442b27bdfbe9ddf0aa7dd1a5112d73c01f044be1c0058503dd8c5fb3a825c7505742f52ae170b3d1536d5a701ce43de3d0bb4ab4e805fd5a434c6e872ced9c393dee761b2d094b67afdf6baa430db07af9cc391b712097e7e9879248a220efa31c26e172ab512089d78ccd5201bc149c92fa4a0f72a696f10f8cc3bb7b044b6339779fa0027ec97591a71440a255cad1fbda9accda69a572d6ca7f8d571f94916eb39d6f592a4a9ee6cb8c48a750f801a0fde6ac8a7de49094b5a700117210a5de8ce81f60af0cabd8fab2698b8b91ae92bbb8fe16272f579ab6252b4ff6e8e2236291dda4b332f1f7ec366e249c29e28ea04ec636a5f738224bab5b1e85d95f48a9fb1e0ea50f042e4634a36cbecab8a6bed7671964df9e476ed3adc6079b93165dfca5f46508a29e2a547895ddb1805a72e62766829b7d2bdbe6dce9fdba42b9d876bd8e1e6994d25867ab01728e2fed5fcd49c022612e7e04224bf678c3d1cbf8701e2c6c9f64ddbd6ec4eb9f4231fb8f8f842624e35dd3f7670817438f0a5bf5319cbfa67cad1cb33b23a097f75723d56ab962d0eff773647772b5558f07c9fda1b344434bcd7ee4ba70eed1a517277ec6c20d56a21be546a4c80dac3ab7382228d19df9dcbbe775eca75bb5f3c02bd2169f830aeb98bff3e3936f446020a1c2dc51366a86f43a0ca3c16f930c059a82a9573d50a1e2e052e223d88fb328cd5cd974798e6b82feae57fea4c0dc22c1fe626b70b65f985849e2982d1e0376783e5ee9f0fadfe1f001bbae7c952b202e75a097d3f32745a32a778999fcdcaad3824524a027a75ba6b4b5fc0d27e59ac4da9e704e3179a3d652012c2e3483196f8318682412be7ba38907e0b88c69cb907504debc3169127cbae4dcd591d7db0f8e8f14eec098e329ecf61e6cc0a0c220851827ef2699fd5048b27a6cffa1f56059a9fbb9a8ee8eb9e1c6fc92385e0fd8d91fb81a4bc1dead7f15017a4f64d68e6d58a7fc30ba2a33a86cd7a6533c5fd83d3a7302c559b44383b81bf5bc12e2c8231ff859b93556db94a05ea80fdc8677432c2f23199e4d60871ff70a2f861a7b4988a4f4f1a55ec7d4002fed1dfbd1a7e9fe3d97748bc32a69667f7f8de6602a53d349765880809d6f07f45bbe709108b5b431fa831a376bca5280a9e43ccf74cfc9d98d5554494fbab0960b40848cf38e1c39ae213b6b0ee7bc8d950276de08b188308878f43cee2c9b516b8e76bc52a8dfa3e60e728f092faa9b72616e605d18526c898cf0c54ee71e4562dca802d3e49d43c66fd5832cc3d02ebdbc71dbc95592fe08c8dc479b4fef0afd17152b98c27d7aacd801e2987c59eba4ea4d13732e727572cf99654b011e22d7fb3de097dca649d46a7c0674634e3014ef4cab4d79a16799cf090872f5c383cb0c0b03bdbdf9734725265ef309c4217b9bd3f2aa73a34b37478ed45666177e411514488637be9056c4b560e367ef0b5435f5fdbeeac5d207e9811ece4eee3380f32683fde100a281d5a1a3a41e893a808b2f614d67a475c9a7943b7f0fb861e0e0555a19e40989b696790b7098d56b4f5541bf03b9a71954b0cd018913e52da1c3e9d66ed8ad5d8c3a744bac69c68baeda5c54f5b3b2350d219957a0c48c57ffe69e49eefa78d2d1b7b1b0dd637767840a5f132b8adaa6a60892c2a768fd1978d3c377fe2afb76a790e539175e1a726405fc630c88658cd43d39aa59298c6a1270d5f0132b1daad41e32cd4bd6caf406a3a38239bea118b4e6f86ae7f08d24d8ae391690a316c800fac2a1f87793d0b111e82bc5f875c337322a5717b1f4d459cdee01d696a36fa163ad81860f30291d19f8cb83f2060487310e9f8c71bdf9a7cb3960fe4c3aa5e0dd52190c80545a0ce618fc6c068ff5a8bb2d2bdf29ed7fb3702e21085f33602fc160b963bcbafebdabbc3d9a396c852d9de5a32de127e2db9ab1eac155cad850bff3c28da9f8ad290f8fc3b5fcc8bb280bc118e2de72c1af0cd8dc3e7bacf217cdd8288d6ff5ede179d2bfcb8cbfd904579f26d5cd69b85e91e65adc2b4ba40d6b15e65e65e23989c6fb392e56e6ae8c1
+Shared Secret B: 27c6cb713f48ae819a0ddfe602192836896c55f4a7c9e1a876ecf9345bad3c06
+Shared Secret A: 27c6cb713f48ae819a0ddfe602192836896c55f4a7c9e1a876ecf9345bad3c06
+724301a281ce4f550703246bae9d314329aa89beb198468160c611b3bc28f5d451748aa6be39a7f4680fd44fcd0519d686817301d990e2bf538acdc0642ca1b9fd231349736b8f0366627b70d7ad884180bdddedd895efcfdc315c187ab3ef03a7a676d359e18884fdf122c318ddc08ce8dcedcdb6d2a7ff92fde8ccff60aab664ed49e829e102c06a6280ca3aaa378f28b8ca03000b014eadd958488f2e671921dd1283a896ed9787e3a23006c0daab63e141a1c4b037ce02e7185f873ed83570463875d52b85b3b50ebd11ad41d3a9378121a93eef05a3ddbe87e72c90288f71ccf61bfa6e4dfe5bd9d4347432f6b7b242b769bb662f945baa75874cd68d1bac945ed736dc763b824b26ed61527514bac7aa4e9bbe6ac0bf8daedeef30a2a75b9909222fb608db8d54a4e5608574084876c8533b9a6f0adb35694c72a0d26a56dbfd834598fef6af70ea15fe1f71f36361f943ca103fb58e96a7ddb4fc526103867bb8d34189b123cee42b1d459067377a3dee3e9a7cbe9caa91b75a4b13c4fce5f9beb8b2d7abea83a1f0c2de64eb50eb6818f9a8526e9083542434e9b559f130fa856679b7ed90a5e46054fdc0914d8334a10425badb9d77f0f4e3e2b31d59c313e8250f297931dc4b58892423b5b07156ca06f114d3b3f6597def40f521c60d72c6b99e209da9f050385706c6b8f4cc584346a088f61b5c355eebcca61c0963db3c4170eb7626025d5af4656ca98c02fc111f99ae64e4f0ab818c45e79adda12cc1b586ef9199d179b679428379f8b8f5788a1b1e7abcb30a90294bb985e91dc3662787fbcefa7807e234adf2e617b4055e8804820d9a1c8d368f8f3c75670c51e033f36c6b17ecc04e88e0882a05c2e22a994c3e9f00de3772bf812a360a4e0776e1dcbab877167d0190a57b2aed8e8c9dfb9818997fade1cedf4650f74ed94bc0691e55c049e270bdf2b15241add4208af5c3818d0bc9fe0c728d849657561443eabb7fe28fbed2f981feb0d4a881bb85a9fef80ea42a22f3cfa4dc44645807595002182952f6fc82ffd0a0b5ba71327847b275e3c2715feabf636f466067f2b5a5ed50124daa5751999cfb97c75868eeda362c073daa1ec453d09d4ddb615b272c7c0c8ebe44839a7c0b7e6911c296795941d2947f3551463fe656bfb461dbb0caa39b299880e24217616b6d48c1f9f48870228b2d13cd125c2a3b8ee4c2cdf7bf651d873b14b164d7c05ec42fe0399089d99c4a0c2df5e3487450fcf2fdab5ecd8f6ebeaca38caeafaa319aeab5b47fabff25188832b2d7b62dff0ca3c669b62848ac0d2b910471864afdd19c0c222d64cae9b25307d2388366529cda29fcfcac9d895e6d71e6f5753a9924bc7fd8531eef2f83765485fc5f6d2ad76f36c6ca181b51d2245448109ef17e69f7a7caf0d820c3119f1488789547f283b8ddd9d0a7444c2a228fe9080e0abfa7cf6b51dacb161d73a54765a91fd0ea72b174e6561bbc02d9db9df9479232849553c8c920cf69f218669a4bcaf9134078db0dd70b33e3b7dc762343408aec1d550fcfcd670c5a7569155b30bcf7642217eec12c3c0da80d82cad62c62d134a8337e5c313f9455848bfd8013f311251bd3efac8b0527cae6c2609333240900e0bc774808727f2b74e65de42737fee2f1b9041c7bdc3cd9daf83086bf9def9b3cb680873a8f037e57dd0227adb44b284bd4ff62ffe6c5d8bc3fdd861d2949a2a79ff9143907090b117d86410a0daa0c5e208dc75557e4e8aaf1d7aabd50e35bd8c8d67a4d3fd97dab3890a4b03e1fd5664f633dfff62baa145800f8ac99d124cb8e5aaa1a0c9f447c2633d80259634c2f54a0627257915f9ad996e7dbe373b6585b4b1e669e7bc4eecb542e252575fbaffeeb206d93104a7e03861f2239542482fd31757b3329d95eeda0c51fc5d8a26c7843204a0aa2103270a2905f32a66db8ede5dcaee8a183857e91c4409cc33ad752d0e1801d1d74fb58c48c6b220bc9c5a37a5bb95438baad2872816e4cca46ea20c1e54c45caa3d0ece1564430595403f104f79acb7849f1f73ab57803944ac9cb010799f8038316e37f62f9c9e577358e690ae7402e4d8458d9d2eea2390ffbb0997d3446b2e1d77a97b40746d0ef28cd21a315148d54a57f959ef65429f4f75771aa3b8cf58693e9ad75faf49e1c01f283ec2c5b28f33d9d7e56b18b1cc262be
+Pseudorandom shared Secret A: 1722e1f8ea46f688449e5e0d037d866e31ab72876f26f231c56874b5c91d0e6c
+964548e263dcd8aff25c91c7a2b13c9945a9bb876cfea6f0c73e429a84f8421bc8c6225eb4c5fffb4c432057611180b740c5bbedfbab9644a55e8aef62c13be2
+Public Key: 54e901684b892a9167431a4fc0c60d77e83bf9dc6e9bda53d8438dc8a05e88c83da8f0b7b6134caea7c83632a49e8ca9fc2b4ba5fc6c1279b0ba738ebf07736e1214dd6b551ec469cbc5953c58b08d361cfdc13fdb37c5ffd7116e362a6e357f5321573fcb06bdeaae8874586159a93dec9be927476f45c3b5852473e085bf939fcd6275da588c05298abbdc1c83992065d2a8abba9e1cec6c6224ab6c0b5e1498c0fc5829e71080ac131f3ff98b64a0bee9d02638ac2083cc8acfdb462fb382d7d3c728916ee9b9143b87b1de758a86544be01188eb2306daa01453f73e7f69456d39a3320038d3e0cf4e8002c1027a0185aee16bc7a92c8e6d209de0e54f9cd39d0c8941e838bbe001bb0a5846e2acb021b35d15b27382e986dc60bdc210cacc86231807bc2fac955572af9a611e9d9366708a6321396ab516b58d81b8f1b24d3fb9a9c6b432d95578e1bc348236044e150e92014298677717c044f3aabf71381b0bbaa880e898f7a5284b4400635c94e2771b97c967e747593746539fc97c32bc4fcf93411e9b912efbc9c9c1be13c15d83cbb524e2219b415c67e1114aec3d02353ed6bb0981bba12d4232f74a9cc1b39a5916b877d03ee5b377b156015cc52edc24370d0164ecb41c1eb0a3c828c3d3a02caa75b137e299ceb1660a4755a2c68cb9da167c52ac344041cd81384d2b3a05584e58a91cf1a3c197b41fe5767c020174f0d8705290894b55a696a8bf6fa056f2524e1bc01e4d118605a120451a06119bc48a0295a36b00ccb398a4a47c82d83fe64a4e40f2865bc3ad03dab0b0e47e9c293e60eba81a33cfab669d8db30e12195d94da98d9d68458d57be0768465798696086033b2cb5c4052add9312e33a078db7d6200372bdacfafbccc03b5aa9ac619b6174fa4254e98a04754728ab07824451864a79bb94a19756a14b67f8b4653bb30ca844f62aa6c3768864878c45fb25c965bca2b2cc6af42a472835533ba3ecc364e7d4a65fa086b3047ccd7fc4f126675ae527daaf99e1176a8eed41ee4e7a84ffb1a0f958ec1e0c1c9585379c7b787eb4ab9372115292dc6cc48c03131220c73af1727fd272d8417373739b1cf280c42d869c35677c3d41bcd706a8a5263a7341b10b93338319d44d335d5879cc26a4d0176988206c33d85aa97a3313b5bab16d2aa7b31bacc13babb7b523a79c791009bcf99c5cda86855d1b160c3739994251519402de33f62317bc1eb4db803862d9628379704d9c841de7a9bc411c34fc5bc350671bd4b0473db4c1d39cdd0dc6ecc14ac5c594a6128017d125541b667a1822f10dbc27290a568cccdeb590ef417327bd9aa3f39cbab6704df470a1e191f96068b872a2c86f84c487a6904758090919c602b9efa329d89cb3721ab7df1a52b20f5b4cd70460b09161175bf82baccdde710895acce8d264402c07c24377ba2278587b4adb35c4d43171b3594b49918872e8bafc4447a2dac2904ac561d12660989e89e84cedb9847f9b9d180c5897d92eb84227b5b72c4393910ea0782fa4127dc9bdf4673334e4a21d6305d3a1c65cc0262cc7b4d16948585a374729074ad678e1518eb46425a4508772a86c8591642345b85ceacc49aacc9ae0cec4da1160187cd409c018c505421c79ec2c34651acda0a67ac7446f6e5070096aa8b6781f5fa2c9dacb392cb02536c9bfaea759eb3a70c201263d433544340d154224c50b1449da1c6a1a98673514a0241a9fc4c2f588673be4332c8831aff6342c8814b2f89cf49b13a96056eec801ff4b482ebc34564685eb072970aa4c5ee95fa70230f02a4cb5c32e672c6ebb30a37ceacdf4fb708a6b156fe132514a55ef6ab54e37259511353ad3ca3511bd063455c689ce7543661cf6834b2bb22d56c070a132041a1757981020401f546bbbcf78472d9acb1783490fa147ff8534ab487e99f7af29896ba34c7a2223c8d47223753588914655c3761d63d731e8b7b094e965c1e02a80a56b80859ee3a480c837b6a57328f0f7c76540994e0c14023a015ddba209804b0afb96f1112db8e7464e7cad9ac658fe0c81549ca7e035938a38bdae6aa376424f119bc2289221f756b9128a14e2145db15005822006b9fbba07c6a3685b9c1e40c3d853b852c79f174114f1428fd5e81f46e047474565fea72e9f2d5c5cdaca081cc5112c45c72836ee134797156371f0367c88168235
+Secret Key: da43232e7a98a8537bd1e18e857b85ee8cc37fc11fb8c3c90d27b1fcab2f265643e6080071e019fa087ddb7890c54307b87ba89c437b8c24a5b0e231c8c061a904ae4a127bf7595bec09a880e96b23cc433312389bf3bf3d634fb7300fa9874f22181cc0eb6aa7a324f8d64ff2888bc6d72e78f33775a8b12b71017d2c1ea6e634a43027c7fa0fde4cc4d5f2469f395f8234a070ca50ba5b5017e818a5537013232b2ccc6682f80b4712886bfa056c527806d6b7f6c6c1600c515ae1922b310be1277d2b3152b983bc5e7b37efd517722322a452ae7a6430b03100176042b153cb9a0b06174756037a3e8003c1aed81fe1280e7e24825161109cd354f818a47d350cf6d49b204b0faa6200dbfaa8f3f39c1044a1a264239eb27f4581cd3e602eae18c0cb93ce3e812150f4c8cc20ab581908eb4690a21cb8da113a6ebc56b209317a97ac8ebca4cbd192e02148d7938871e2919fc812a767ce017cbcc705bd1b33637735b5fa2063eae459f84500ed331a4a67681964b98fda8f1d785e9957c294216a64f614ef949ef469275f5c9c2108a72a9838462b0861c5211ad5b406a45f6be64893b40ea4802ef1703401f88927db7a9d3aac498c9b1826ca1111aa4e3931fd1b38384698ef594ad897ab7e73337d184577f6a9461b41f148aab29081896111e0d0458758cfb2f62dbc0807ad2b621827464b7a21fcd17be14958dd19383d8a319f5b3ac6120cbc4a01e64c24a4e55fb8105df81c339fc70c4e160f3ab2bb33384b8591ac90ab7816f22019995d8163083f93823e2bba43c78ceaf9692b5990526c61d5db96b8e18ba03a1566f18c152a5c6381826891739ec3a2fb69caa970673bd19239809d502722ee780409e6aa6f1418f9b70da02abcab1b84808a2d25a71b81f27abfdb92b4a74db4d3200209985ab76d974441180558aed357fe0728d2562f52427aacd91328131666492736ba53b99542ea0798824131dd85237f0b42bdb709131b0873186896170f4f4c74226b9e04238e1e620a3233723799846b8cbba6a8bbfe809a93142a4cb39b17a578b0731ac0752823160f59650c656ca34d00bf7b33457f75232d32c4d62a7e61242d5502c454a50b37429b809aa92797421607ac3e141563000f8e937065f2757ff5251a8739cf3612a4096d52f60acb526a12777660d7951e7b77a801107aa7ae8ad52894881bb0bc1b25312b03878cd3738f4008c4011a391c6ac072533dc795467b1c1f3543280a452644a103a087272471b49dcb80704c2a9aa669eb992c87e30d0047c839f85791027ce433975cb79161cc3a6b11bd50421e5a3906e8a6b9ef0033ff548f2f74b6435a1fbe1b059f996ab5b01b54dc7d47a575edfacbb1c0376806ade1b65314018208174d66d07921b2c90d91b482f5c7f7b3ce9f89451fe142e5f5835f164fb7e3c2a8992ef4f270baa88efa280aeb4b3baf335c2ca427c74551133b895c63ad1bc78141a135e091a41241027043a80fca74a478216b52853b0c518e67c1309b8a6843c892ba52706a557dd3bd5dd12cbe5b88309004feba285be73ffba82c9610670a84611d6496035197bf454f49610f9f47801af567319a44f9c96792da02c4bb5fc5907ec1f0810b2cabd270c31478a6565b028a8ccd1e96085eb43c7ff6ae8f30c9db429e4aa11f8007791c598226950903753723da1d865304f887b89ffb086521cc92d56858c463b1aa68f89270337a64bcf91ce40b7b02932748fcc89e629a4160827527bb733c652a819255a592c121c09e6125b0d364d1376ffad12dbea2134062185e0c1eb4fa2d35e163e0461c84930561697874e63762029eb49415f6899693246adaf94851753820296a42bbb1bdd3148e3cb24f5445cf718c8b6815da710349099704d51ec232b1eab3b6e7f3b756f8a3286414da720e940acba6a9787798236598346121081007a88e35a321b839e04709f1a29e7c0b289ce23213496353187d3db152ca0a41c9663c7f1903fbf05cf9747e1588a1e18a9020c18a9d27335464909013aa9aeaaca629b541865644eb27bae606c79259d820ce6706805475b8f8b099fa3b6d7a66a0c5336cff53979d069acd9b47abd95a0de56f3b046578d76dcdd843bb682c505acf4acb1e4e77bca9e00580424496cc0e62a83454e901684b892a9167431a4fc0c60d77e83bf9dc6e9bda53d8438dc8a05e88c83da8f0b7b6134caea7c83632a49e8ca9fc2b4ba5fc6c1279b0ba738ebf07736e1214dd6b551ec469cbc5953c58b08d361cfdc13fdb37c5ffd7116e362a6e357f5321573fcb06bdeaae8874586159a93dec9be927476f45c3b5852473e085bf939fcd6275da588c05298abbdc1c83992065d2a8abba9e1cec6c6224ab6c0b5e1498c0fc5829e71080ac131f3ff98b64a0bee9d02638ac2083cc8acfdb462fb382d7d3c728916ee9b9143b87b1de758a86544be01188eb2306daa01453f73e7f69456d39a3320038d3e0cf4e8002c1027a0185aee16bc7a92c8e6d209de0e54f9cd39d0c8941e838bbe001bb0a5846e2acb021b35d15b27382e986dc60bdc210cacc86231807bc2fac955572af9a611e9d9366708a6321396ab516b58d81b8f1b24d3fb9a9c6b432d95578e1bc348236044e150e92014298677717c044f3aabf71381b0bbaa880e898f7a5284b4400635c94e2771b97c967e747593746539fc97c32bc4fcf93411e9b912efbc9c9c1be13c15d83cbb524e2219b415c67e1114aec3d02353ed6bb0981bba12d4232f74a9cc1b39a5916b877d03ee5b377b156015cc52edc24370d0164ecb41c1eb0a3c828c3d3a02caa75b137e299ceb1660a4755a2c68cb9da167c52ac344041cd81384d2b3a05584e58a91cf1a3c197b41fe5767c020174f0d8705290894b55a696a8bf6fa056f2524e1bc01e4d118605a120451a06119bc48a0295a36b00ccb398a4a47c82d83fe64a4e40f2865bc3ad03dab0b0e47e9c293e60eba81a33cfab669d8db30e12195d94da98d9d68458d57be0768465798696086033b2cb5c4052add9312e33a078db7d6200372bdacfafbccc03b5aa9ac619b6174fa4254e98a04754728ab07824451864a79bb94a19756a14b67f8b4653bb30ca844f62aa6c3768864878c45fb25c965bca2b2cc6af42a472835533ba3ecc364e7d4a65fa086b3047ccd7fc4f126675ae527daaf99e1176a8eed41ee4e7a84ffb1a0f958ec1e0c1c9585379c7b787eb4ab9372115292dc6cc48c03131220c73af1727fd272d8417373739b1cf280c42d869c35677c3d41bcd706a8a5263a7341b10b93338319d44d335d5879cc26a4d0176988206c33d85aa97a3313b5bab16d2aa7b31bacc13babb7b523a79c791009bcf99c5cda86855d1b160c3739994251519402de33f62317bc1eb4db803862d9628379704d9c841de7a9bc411c34fc5bc350671bd4b0473db4c1d39cdd0dc6ecc14ac5c594a6128017d125541b667a1822f10dbc27290a568cccdeb590ef417327bd9aa3f39cbab6704df470a1e191f96068b872a2c86f84c487a6904758090919c602b9efa329d89cb3721ab7df1a52b20f5b4cd70460b09161175bf82baccdde710895acce8d264402c07c24377ba2278587b4adb35c4d43171b3594b49918872e8bafc4447a2dac2904ac561d12660989e89e84cedb9847f9b9d180c5897d92eb84227b5b72c4393910ea0782fa4127dc9bdf4673334e4a21d6305d3a1c65cc0262cc7b4d16948585a374729074ad678e1518eb46425a4508772a86c8591642345b85ceacc49aacc9ae0cec4da1160187cd409c018c505421c79ec2c34651acda0a67ac7446f6e5070096aa8b6781f5fa2c9dacb392cb02536c9bfaea759eb3a70c201263d433544340d154224c50b1449da1c6a1a98673514a0241a9fc4c2f588673be4332c8831aff6342c8814b2f89cf49b13a96056eec801ff4b482ebc34564685eb072970aa4c5ee95fa70230f02a4cb5c32e672c6ebb30a37ceacdf4fb708a6b156fe132514a55ef6ab54e37259511353ad3ca3511bd063455c689ce7543661cf6834b2bb22d56c070a132041a1757981020401f546bbbcf78472d9acb1783490fa147ff8534ab487e99f7af29896ba34c7a2223c8d47223753588914655c3761d63d731e8b7b094e965c1e02a80a56b80859ee3a480c837b6a57328f0f7c76540994e0c14023a015ddba209804b0afb96f1112db8e7464e7cad9ac658fe0c81549ca7e035938a38bdae6aa376424f119bc2289221f756b9128a14e2145db15005822006b9fbba07c6a3685b9c1e40c3d853b852c79f174114f1428fd5e81f46e047474565fea72e9f2d5c5cdaca081cc5112c45c72836ee134797156371f0367c88168235daf7dc8f71248f2b50445443f8ee5c0637fec98c168d796c32c211de9fc677bbc8c6225eb4c5fffb4c432057611180b740c5bbedfbab9644a55e8aef62c13be2
+4bacc387254401daa2d7f92b3ce4c40c0996d0c4266e0871a856812512e09cfa
+Ciphertext: 6f6856aa42bbe0d5d53074f16d11c0043acc8c4c2e436aacc95ea7dd1830cfd6d7510d776c92248cbdaef2a80ad3f31dba592423070776f78fb63fc1149d7d779b41e9c8a55466271d38ac93da2166696606bcf88685fbd45d9599812fb3c72e806ce9bb2e1143eaac070b89b17f5118ae1dc2a21892b79220205404924549258e2c97defd334009503d515895137fdb72d4d9b2a1a27f9ef8c9b0a286e9d6a60319bccfb82b1320752ca279026a05887a69ae4cc9cf77ec397621b522c5a3464adcd87f84bd08dca6abeb14de81f58006640ae3960bf341de9e21291a4c77b2c3b2df0cdf40747778d4284158c0528e84b853d4775dbde7050d4187ce54cc3729b6b4e0cc4f0d81b3129fb3e77e5f33d1100dc4258f9df1f52110b93f9384955f42843817781106af551dcfc25f65ebb613d3c49f38d9c8928cf98f79106552419006e0a80090fbf96521e24c3553ba51fbc1843585cc0d712ed84f7b8332073058d9b4a3f6864852d75ccbbb217db6cb1e3310ffdd94ea2374e60a8cacc206c7361cb43b22a9342fe0597888b140c8e793d4948f71b9ec8f60dbf53065cc7e219e5ea03b35e2a948e25efa3a2145603927b7da4ee157112e34d9d6cd6964bceae467f7cb9be4b75a2e016358d5cd93482039cd54708d5350239f352fe6dbbcd72694bef094c14737e650c5bcde7a8d29d0b47a81dbaa969cf9a6a427db5b7522ed9ec6be6b1e39866a271c17079eed31e005fa96ce071d2a36107d3c3ffc1ab1c0389831f4ad7939cea3fb8e6547b883112dc285e482b62281972b44a40cce5777c088a5232957bae25497c2f4876db7aa12ea84f21ca9ad846c4b65a935e368df2d30c469b51373b5fab2bab763a74a4cffa0ffbe1e9541a039b685cd27794bd5e51892faf8e429e706f5d33d77c45351a12c8c2c3b7a81a6abb7c4a074732d9bc938f232200946025c4e3cefca27d06b09b02a282f1b7f18bb87760f36e671873fd78f192b8eb726dcdb42338511f4adf07e82dc08feb37ef059c3c8f59b7914d6ac848ff513c935a2754197081cfd4098340b29248ccef7be7fc1bb36d8013ed7f284d099a3d0608264e2133b0e3aa78449322df5230f85e0a724920f5465161d88db60a19ea1f506f68f0d732c1865b5d68b74aaaf9dc614a19a04a330e8fcff3505b15f3fe061b8b3f26576f307f0cb449fb2ae0478dcfbe5d680d064f14d591b547ee4b1b4c824fdd1fa37cb4e1d91151592f64a08e210846c620acd8994fc3b331124d2f452ef480ba9558821cc074cc8f33371ee4bcf1affe9cd993c30c84c54ea4a1249702bba93541da93d982faba7f74476e3a5a69352767ac32227a80262a57856e48bc9cc27ce6fd9b51fc5b4dcbe0a655084ebbe4f31c5ce879c0fdcc58f792504f749f8a4ce6ff062d0d5c8c8a465dd3e88f144c6fde13c6c230b3c474fea0df255ae4b68d9c6ec81c562270084255436ee143cb8e1517e47b95cfe38883f954857fb3133dd1a990f6973091bed0fa36ca1db21b84c4f9ded2d1a90f5e487630a45fe3425cde2eab8812534dada3910f3761e269a6b93f32c26765b014855e475831ebab7ab2d7927c423f79948516d80dcb9d7f5f3301535ff0e91c5a57a52f733a589c7b841f6632a25b2f24d86452dd4f3dc6418bdb042fac34c84de0d274c6546d3ba5d6ddd846f442a6a123a86d5fe163bda33dd0eaca1fa431d5f38798265ff1b04a2d4b06d4a17a67e55c13dd237e7a8e3c7575af8c5941e0cdcb901f2ad24a7de26fadc2adb0e84f7698e7cc7e86dfdec71c64564714163a63a32eb0f7e45784335bc0df5174079eb3d57b261ac7845644916178f20c21af183671fb624b47d95dcb1e4ba8142ae16c47702bee5071003a58ae119954165fa95d52822ec41edc170c2fedffdae63c1272fcf2255c6e99a4b691306f3d860c561b571b2b071178d38ffb2e3fb410d02c72018040a6c828f7b6360c759db14b1a4549c6565a5aea76c4e3382a0ad827ed232a897195ea0caab3fa86696d9df35f90b6ffbf2e513e8cc10f7568e898a2fd3029afd858b7f2da4baad30068395cd22faa80de813f0ebbeceb2fb1601900be19bef3eb88c9186c6c166dc3088ab131f359f3ce620d2caa1ae678641f5103efc284ddad2c299d5404c4a4a234ae571f4ae9e0edfe3634c0b0982b5730acdad7c5b25281bc5019d83e8ac
+Shared Secret B: a13fbdd57bd31e93e6b70ff58b08e87e004e129415dfde3ebe33773992a00ad9
+Shared Secret A: a13fbdd57bd31e93e6b70ff58b08e87e004e129415dfde3ebe33773992a00ad9
+ab871f94d47180604050c7248ffe39fe871062ab92b77c26b9de3a693ce990f93cc4670bf69b48b2e2f0349f534e89e13876d122ff1c03a11c66bac498bab29286072ab0b5cb50565603d5e0588566a754a681353f2029b97ee39a149207a772b82993b9e6d49eee00043594b428e67f4bde89c95e09037ee2d5aed2a06b0a2f9cbebc6452078b08b2fe55e79ca0e51e8823fd63cf98535db33ae37818abaec2ebae381b894ce0e6130de38e8a032a6771a71ff3973dc37d35ceb93d4b7ce35c04b88b3a511cb8101563ad3ac4a71d1587656b21614b53721a75ba9ae086afdb3b81a9e82926076773650b05481b611d47edf5d8a5a2547e4d614c8fedd3d7cc7984390f0178c69563185637741e2eb4d6948753c0e27cca92c1b97c113ec99a2cbc9bd5268065a1a44dee1b04187a8e95371b9bd009e4bf20824ff2e23933b68006caf8513c4981a42f56578829f3591a4e4dfbffc2c6867aa3d22422ba930381d3248d8a0932198a484510de29633992c2542feaf79e295cb9beffb02a504d21ae6cda19a42abab85edff3730c504c6933db2a2c37bacaaac88c6e8acea04c6d233e2d639e3ed0405a64a81de7f1861b6e58e9e2ef3255acda4a413baebac87b40bea340683dd7c67f21cac9b3c6e5abee4e20e03834526b30727e60eb202ecf82b51aa7c6a8b646302dc48e58384f4fdd96aa80fde2217a1c774d722adc159c17fe393ab59e28f730c48dd1fb3f5889f10b896c44f53f288f54f41008626ddb023890fc777fb03d6cd25299e450b882cedc55a6970cf59a775d3a43dee2b620e8a770bb6fd87db241e4f51bc8789712822b852cfb1a9e41e0099f5f9f477b4c3ec872323ec273a45b47defd93e2e5db24ce1c330317f4a7836104f5803d8dda6399ae766dbb5e25dd1fe96974e08ba045ea7a14680b6aae1d9910f2a6c76ae9c626e904f75188f6b1b2aec0f7ff7c4a8efcebee005bd0949c16615546ba454dff3a2300b4b5bec45c1dd2fcb30b5df03d1d4fd329f4afd3e7d01260bcab90bd8f9a452bd31adce3469e5a2ca184f2804b9308bb813f7de215c159cf6f1ec08384d10658d2e315ce5c0bd5fc7f83d9727c3f8b0d2eef12fda1f0e6dc0c37495ec2bcd2ec06992b75020753cbf87dbdfb6a7000abde4716912642f53d0174d6f4c061db51bcdea40827f7f88bb90276270a36ccac263fb951b47ab97a4853fc52336ba5db5be18f16153d373b36aa25a97c55ed76ae8b6074c02c2c8bb696a3440b2bf80efc4c497d16bccfbb37253ec3a9a7c9328f82851ff4bfeafb92563972760957f5eb7e52d70a74395b5436215013ff27429725943bd24efc96dabee95f667ab0d3569c6f6fd0bc33df1b7d4c242edfc79dee49749973834675ef3e17a1ca7ee3387a719b19eca8604c827709346276ea3f58623bdd2c94b0b1f5651d66df3f7aec1e7fbd2c670621b9fd93cd5edceea2a0a748c5bb270a04413bb0fa83b5146be4e3c5c94ae265c739ee22e9311abdbfe4f19673633092d38955834b19e103b076fa12ab3bf17bac81f289d41d1efe0dc28a360ec5795e2c0dcfc37ac9beadaad51ece3e132c42f1673cacc30424ef5e9f5b1f720dfe6566d3ba20ae290dceec1c0f639f59b4b16eaedd031641f7ff77b8e2135b3b3f3c431e51d11e9c60a432bd52a78e5129ae31260edaa75f7cad9a652ffd8fcc637ca4f3f9a56547aa8de4d31a8a4b958bd9d2aa389dc500280b9b9733ab972a997f4424d864ee007cdf808fcb78b02fedf21ed3f685747078033b9c55ff6551572a4c78cf85bfbdb456fc150e4ce7740fc74ec1dc1fff7d7831a4a34bfb600c290ef0954fdb492155038a1eb409957f5b7a2c42d6d396d56804e3592bcb47d3715a8702fefe59aa6596d4fc9496ced8a24b9a1dfe6a7135c3f442f32af9144d12cc83fb797608e5a8fd0bdb7f43ef8ef788799356c2a93fab97285e3a7b5426cd67554646cbd683e1e4c5d18129a331214a65d4a67e5e0a5436272cd3e62963e015aaf8a1e4f1cc3834c29707ac084a66d975984ebb12ed4080ea14607a5bb726af2b1251d40fc80a537946322b017bd7eceda5bd0234642d9d785cd74f98d9a71ede8c4692d6de301771901f8f08f4233df6942cf2ed94693468182e63ff95f02ed7804d1b36a90b65274d3db109f5c70eb78351cecb6ea95d2be94892a4b67b944647af12e0
+Pseudorandom shared Secret A: b2ecd1db3dea40ba377e890219f599dda7720625656ad0b992f037f0aed2376b
+399b72c09035199e5d5bb60b173923ecc694c85ca34da3a9a8fa5ff25ecea6c6da9d92f5324f316e599470c4a5a34956f438ee9a5c927aa2d10b177ce217d5d5
+Public Key: 8362af64c550053ba9635b417fb07babb78325bc1ff90c04c52b7f403a07ec9823b46bb0af42b29f88aa4f0b5e0b766531415035e9c35a7514178460fed8b2f98bb3300a2979268e82f5afe7f46d77f0709e56494ba805912025afbc7eaca99d62d3337175481f92c04563b284827442f10eb458c359809acc01cfdbc46e77199b8c44691ba254d9d9400b5c599bb193f9b7cb3428146bf2664dca6aaad67a4f943a2b173df044935f489cc5563f77d205d034878eb8503d44976e525b7b79846105462f5c2fed0985057aca4e501fd1894c53889f89f69d87554a85395f8ec809cec8a096e5a422696efe120b55d99a5dac2d25684035b63443c075c3f48213a129e70cc3d6702028065d0a9acad42a0bc9b5bccb47a064d33b2fda1ee953c79d5aad418103e67b7014b124b21938d3313d57f9c0351c142ac6c5eaf5705536074e044777d415725708c7402841187427372a383c988e62583cb010f1bb14a0dc7ba3099c4c0a8986b120ac615f9453837e49b6303590ecc6714ae9705bcbc408250762953887c5a6e39c0158e23c8fa291df721ff1d59b07b00d1010549a21028fc26faf4479179963299104b601b3411a57271b58ffc1568859c6a805b94cb1910b68a5fa43bb91f240920a3affe7572262b5c1c435bf96762b32a22cfc208207b4f42b59528ca1f86a5a10f6044c032f4c64acaae2957ff79546055447506a4330819286bd71ea5ec3196cf21502df061b7cb85e0f7726bc693134c57fe4e53ef7711ee7b0534ee53764c79725731fc333b2cbc52a836c7a9fbb530144ca9fcbabcdd74ff5f10881179ee657c62e919c1c9192605aa128c72a9b7cbd9ec52a0eea64c5e0adcdda9388b1bdb6060f099bbf83c7acd1717a81789487eb25c777668a88c44e7812ede2a9a46c9cf5f47733f7a0e31ac2da297aa0676490cb2aa6359a61f994e5d570cf76aa6da7b3ccac1c3f875fad2aaab4d8ce76c2096fd8240c0bd06c03589a360f6015127135463e357c933aab27f789b5a189b4425cfdd0ac25f647c7f8993ac551be89cf028ba542f18216ab99a6d73faf03b6a83384b8dcc4fb563089b36a8113b039c0288e692e613b9b0b316ba736796389aa1676017968150622a476eb4967d83ca0cb9839a08cac34abc003bc3c7aa2779c649230078e546496b170cfc27fdb10bb3ff48b1811281523c2ece329c32a38bc8b1d4182c3f7989e8d180a1d5584d755817cc1beccf92c8dd74f0f9c19c3e82969515e72245649d14965408287726b2c450f714a341cec0e8f646538f63a869c25cc418146b76b558254ed390067dc881b6322d0611e805b8584cc834d88937ab889aa08d024994306d385d25c71f2d08517f1c104d255b7e65127e9cf6e858cd6346778e69950b8c0a7957c4ce056f2556501f018a38496365350aac2085fa35e6d29b7fe105e20767e45b51f823c1aa2726cb570b006569d67a16c8ae01a27d4084d614fc5887052f129ddfb27c2515bc0840398514cd4584fa560b935a918fbda597af1493756c5889150b5e0814783cb98c368a5e2738ab5be8684088b71507f0ca49d8c7b029b11da92801db451da0467e6a0cef4f5aa5f9ca6ebeb679814a0d82a90028b7545223578a15a0954b1f8d91212d23b9e92303aa0554078872f8b7b101b91b47432a6fbaddaf4604796790fe735a054717528101ac8ac01b35f477581c66278277049eda4b8808c180baa7a1df276f4e413322a554835b4a6aa862f32b09ff54a53f76c605531b088b587b34e8a033a6aa9440b98cbcb852f946a0d42391da551092e8a1ee4c68ce50244f13093fcf1ace4993685133f3d858a64841ffa663d8cba1c73260947e9333df5ac02152890a60e6e2799121ba49608a8a7ac51a7916d7b9158a4c16f4874362373b80ee14e9eca5340973273387f283b0dec2101a3a013547968457c0e0291228016cfeb9890547128207a142e989407299b40559790b5981126b1bc36808ee6b452a6050dfb9e372103de812352e8ba4c3a1e3c71006980591d524ee719bb98c4a769db3abc494bf728797eb033e288937e5c9c4ae22394074206a57ad04109d248a7a9004078a53757f75bfed21b2322600458b2cdec4602681cce98254be955103c164352b52634baee972dc363500ddca7d6671fd7dddd1cbdf66ba9505d8663e21a2211550c9c15b584c3ad30bd
+Secret Key: c34c3606e312acb47a1038a22b709ba53686fa29c32cb5047308455940a453114c6eb86e3b970fbd752bb49a5156d245683cb9453480d88949bf55c916093cf242a71e2a61c21756ae775a4484a065957a7847bec167ab2d8494e8f36e0e1892e85ca3536a4113f915fc7a63d55114b3367c4e7a989a79acd5848d4fd657a71b5045c95a287090a8369d4b98a7e0560ef66c1de6670bc2e3518a0c1da52b185d45c1dd15ce61c6793f708932d684b19895e385c92acb41ca03354420134ff859356307c2250d91bb37ca25297aa3b96cc10041c261002d339a3a2d46010a3e932dc6b7c5acb59372b6ba78464cb80385ed443b4eac2c22862f967900a748c178119469e535d4a422aa602d2e7742ecb70d12a91e6f03a99a689c935ac24a55c28ac0b0f1c7a0a0b55e239312e2b43b19fa3f18724ba9bcc2e8e2b04253055a5857e8b122c9cb9fa4013a4d7652c07a6de1747ec517787b4478f6b0982942818c44bfb2950d56367ec7833c93d0cd8dda9aba591ec378a95e5b244f431a220142b4fb1dc24a8e37457a0d480534206f4770b2a0fc5697aababfc41a0141697a4b638e15325b8020737910901702f12145bc498692019c1fc94e38341fda25a69e8bcfcc417a69491528877c212aa1225841704215faa7cf834b772469726877a39422413f35a006e16bc9ab37ca656729665fddec4181b60712da0306f95f6c60039594c744046e452584e7051653c3b70df33bc036361d564cc0c5269df5cee84c66f4dc27c5552f9544b87b2c48c51584e0d56e360453916897da607a79548cda79b928c3774645987fe09bb2c78217aca1e5488f76d94c796c5ee57914f00168afc9ba703c5f3d338ede6240ad56c76be43074034403aa0f0cf08eb99019b6903b3b6a6dc237295ee3c7e1f776bf6a4b68047e06b9206985ce5d9b48559c02eb1c7db7368147a43930a592e4988e5b81484c80c16ed624a3ca5ae87107fe55b006354f5dcc23d8ccbea44a226d87ce20f278caca68b10438fa4368f15071cb44a789f341da38a04e0b5b2949936e44ccd79620851c63e5c758f225434f9abec2333705d75a0f1c191896c5478b84134184c4059cfd9a7955e2ceed239d0434043d683e993a15a793cafcc2245eaa0d7144c2298b731df4c712604cd7021fd2f01d7d22a49912b790905df4c85747933918e90a58d2981b9679e4937d7f016d9841a78b57c056bc064b5362c8aa0c188ba6a48c8f36f45fe4781922e1378cf472e331747489bfc1b849b60c1c4917b458867ba1068dd4b9474cb41aebf23564d2531db9672126784b53740c55972074b2b819b74e96a91735bad17317071c328651324be724e2c06a364bbada600c28e5b85eb533d88160fd0460e6b209a3f68db7bc3f38b1b8aa85337bb6ae985a4a7819a959e6aa0a61ca5f50c43f1c5aa408443db0942d531b457ba5005c4b5b474cb4f02aa075c14961ce453151b05a98c6b483a7b1788b7278e375c941f7a04b124aa5544d9b28746ac42414635be27b93fe3b655db01cfc5201678c728b531db932bf2b84aa684917567c132f570b72f316bb7a183ff1b1e30282fd34131c75325e980a89324268d460b530a2803bba7686278acc4753235220b784c86120a82b5d4288046bd525942a9f4db31181fc4e3db7a4aba4420ec8ba89449e96c23ceaf29a5decaaf3987422daa786c7c34e413799a66289804cc68606afb81154f45a93007343470d4f3cb5ce0c4393507f69751fcd83381311ac22a8174a19b36c3c80e3808ee03c1b91b383a34a3be6940b5cf32dd77484111c73a31635207941c1c994ff8cc801678eca8c842a67961aa841f7075513da79b058b4f8d665421a59e3207f2d5b94c057b572771c6fb9b320c98b25587350e16c2871823d3686c5a811fc0b4c8f0ab0f2326c4aeb48d86c5015c9474d7296a5e51b98fc99de7a9e6cd014ba734529b004cdb02de59a53229b9aa74cc0dbd5516515bce26cadbb6469358811392c45e653a052e8bbab9983a61b9eb181199e305f78624a577264b6cacfe65b1e2c6237c7d397278a044dcb4624f399a99a3a2cdc3cd3329fcc14aac63a279f23828ca63709256f9de653ba2570051cbbca8105808a65b3e1014cb839c6138b19eabe40ea68a3dc251201398362af64c550053ba9635b417fb07babb78325bc1ff90c04c52b7f403a07ec9823b46bb0af42b29f88aa4f0b5e0b766531415035e9c35a7514178460fed8b2f98bb3300a2979268e82f5afe7f46d77f0709e56494ba805912025afbc7eaca99d62d3337175481f92c04563b284827442f10eb458c359809acc01cfdbc46e77199b8c44691ba254d9d9400b5c599bb193f9b7cb3428146bf2664dca6aaad67a4f943a2b173df044935f489cc5563f77d205d034878eb8503d44976e525b7b79846105462f5c2fed0985057aca4e501fd1894c53889f89f69d87554a85395f8ec809cec8a096e5a422696efe120b55d99a5dac2d25684035b63443c075c3f48213a129e70cc3d6702028065d0a9acad42a0bc9b5bccb47a064d33b2fda1ee953c79d5aad418103e67b7014b124b21938d3313d57f9c0351c142ac6c5eaf5705536074e044777d415725708c7402841187427372a383c988e62583cb010f1bb14a0dc7ba3099c4c0a8986b120ac615f9453837e49b6303590ecc6714ae9705bcbc408250762953887c5a6e39c0158e23c8fa291df721ff1d59b07b00d1010549a21028fc26faf4479179963299104b601b3411a57271b58ffc1568859c6a805b94cb1910b68a5fa43bb91f240920a3affe7572262b5c1c435bf96762b32a22cfc208207b4f42b59528ca1f86a5a10f6044c032f4c64acaae2957ff79546055447506a4330819286bd71ea5ec3196cf21502df061b7cb85e0f7726bc693134c57fe4e53ef7711ee7b0534ee53764c79725731fc333b2cbc52a836c7a9fbb530144ca9fcbabcdd74ff5f10881179ee657c62e919c1c9192605aa128c72a9b7cbd9ec52a0eea64c5e0adcdda9388b1bdb6060f099bbf83c7acd1717a81789487eb25c777668a88c44e7812ede2a9a46c9cf5f47733f7a0e31ac2da297aa0676490cb2aa6359a61f994e5d570cf76aa6da7b3ccac1c3f875fad2aaab4d8ce76c2096fd8240c0bd06c03589a360f6015127135463e357c933aab27f789b5a189b4425cfdd0ac25f647c7f8993ac551be89cf028ba542f18216ab99a6d73faf03b6a83384b8dcc4fb563089b36a8113b039c0288e692e613b9b0b316ba736796389aa1676017968150622a476eb4967d83ca0cb9839a08cac34abc003bc3c7aa2779c649230078e546496b170cfc27fdb10bb3ff48b1811281523c2ece329c32a38bc8b1d4182c3f7989e8d180a1d5584d755817cc1beccf92c8dd74f0f9c19c3e82969515e72245649d14965408287726b2c450f714a341cec0e8f646538f63a869c25cc418146b76b558254ed390067dc881b6322d0611e805b8584cc834d88937ab889aa08d024994306d385d25c71f2d08517f1c104d255b7e65127e9cf6e858cd6346778e69950b8c0a7957c4ce056f2556501f018a38496365350aac2085fa35e6d29b7fe105e20767e45b51f823c1aa2726cb570b006569d67a16c8ae01a27d4084d614fc5887052f129ddfb27c2515bc0840398514cd4584fa560b935a918fbda597af1493756c5889150b5e0814783cb98c368a5e2738ab5be8684088b71507f0ca49d8c7b029b11da92801db451da0467e6a0cef4f5aa5f9ca6ebeb679814a0d82a90028b7545223578a15a0954b1f8d91212d23b9e92303aa0554078872f8b7b101b91b47432a6fbaddaf4604796790fe735a054717528101ac8ac01b35f477581c66278277049eda4b8808c180baa7a1df276f4e413322a554835b4a6aa862f32b09ff54a53f76c605531b088b587b34e8a033a6aa9440b98cbcb852f946a0d42391da551092e8a1ee4c68ce50244f13093fcf1ace4993685133f3d858a64841ffa663d8cba1c73260947e9333df5ac02152890a60e6e2799121ba49608a8a7ac51a7916d7b9158a4c16f4874362373b80ee14e9eca5340973273387f283b0dec2101a3a013547968457c0e0291228016cfeb9890547128207a142e989407299b40559790b5981126b1bc36808ee6b452a6050dfb9e372103de812352e8ba4c3a1e3c71006980591d524ee719bb98c4a769db3abc494bf728797eb033e288937e5c9c4ae22394074206a57ad04109d248a7a9004078a53757f75bfed21b2322600458b2cdec4602681cce98254be955103c164352b52634baee972dc363500ddca7d6671fd7dddd1cbdf66ba9505d8663e21a2211550c9c15b584c3ad30bdacde0b3d4e7a74c7cd20cc2a4fc0ff04b9e4ca783ef3c40585e9baf9c80143dada9d92f5324f316e599470c4a5a34956f438ee9a5c927aa2d10b177ce217d5d5
+4fd6acc0aa6130a8d255de561fe37784c345993079151856e69c44fd3577224e
+Ciphertext: 461748f887eff2f19295db496b0aa3a163d9fbe32102200b65fd32deefefac1b9ece7c42bdae5dbbb5513b40995c68a6013e35f599f4113b9e558481ba6d3bbfd69665612fb9851b5ea1f194a7b60508077101ae86a5854f9bdabadf68907db3ab92f26111604df69a6999df4e10d53af862e7a892eb536a6c928db6bea428af0bbfec229e2e0bdf620a6364e77ceafcf5baf563c017f8fae013e8cba83955f65e2c6df035293c74adee37fb5ff8179ce893d149e117bd5b405f26b4c849f59f832e08b15c6cceaa94997ba78b9acccfca20422a69f6cb43d6a3cdd1fc56c9b0bc6e268a741088f98a7d59549b629bc67d4d8740d5a9ae5cc78afb185e3422537cf1815bbf0d315add16426970f5999e3e6dba2efb900640e678fbff18a70c9ed65a611b593f8e539bb7b4fab603951b025d538ee09f9a11d57068213c853d8336fbf1b5083aca323a946707a8c798f9a78e61c0a50874bd0635d15137c6967ef35d722710831d6144dfd742dbea8a969765f1a47fe9f980d8534cfe919479fb28d542440ee22613c386f2ddb415516a29e24709cac7bbfb6eb3d38dfa1442001f93b4e30c8445f4f32768ec2f158a80a1d90907fb9f2d1e44bfebb8e341734d42cdf903c3d3a1b8c880112a2dfa7e5c2f1291f89e08f3037f1076a5ffe808c58c619c01c164b612acce9d1f2f6e6a79b73cdace421c556deae8fa603a9b9c5c5be93acfcda3db8f117b9182bc98afd23750d503ae32739b55bc5a6c7403736666143872ef5dbe571848279c7b192b67d145643eac40c2ef8e2a47e29bee9e0d26800adbf62fa8520fc9f2c8b3c1792919bd87ade9efb903ae950cb349a676b8c497e45d248ab9aa635741ce1499412892ab9c99c3c3fe892a9ec8afb35742fc358292214ef55b739fece9ec9bd011d0cf1dcb508f4801832dff86784b226a8df2be179dfed612b2239adad2c1c8a419ae838fd04d889f600408e65df2976eeab0059e1d8fde4f98e22a28eb0c106fa53f609a2eb626186b0be68aaadd0a96d3afc1483996a22a0e8684516b7f40094e21d6ff214e7510024e321e8a87cc95d390548572f4124c973f34f705b2c43d7e2de63b7e940c1149c6af057eed395758c455f9f7f28abc07399106750f9f5eaefc9596f87667fe409e4b00baa8f2f90d7376d3ddc323ce289dcb400b5b5146b094181dd65c1c42036dfb043bcb254aa9a937708b6c55ec2bd3497ecec637b7e341aaa91a92822d1261aa60f17061fc4b9a4ad232ef33916b3f73048c0fcdab145361301da9de0365c300a6216489f22893c8a8a394689779d950e219dcaed0e8718f9135d66bd58e2171ef99d0df687c7248a03aee81bfe3182795848a39ee40f7b453019ffbdd45f73b6f23385921beff6007cc857a55b6c83c26bed87f87ca63009822367df9d09899927f61119062934e2bbbbd3894717fd69a110bf35b197fe2ffdb46e3fad439365d07c16704bb1c06f9694121fc35fade574e55a1bbb1c288c343f6720e3e026ea33f2dc088108fddb29c7ee26d64133a1f48ae77635bb138d309930a8a300e079e725c29696806984d3ae0ac99ba76399601fbf7adbb022401ba6b69c093de0d6ad2a15558605423a8cec55f6a53ae7355fdd1cbc70a6f393ada4c011211c24dbb9bf377c7515f3f8d42bc2c0d6733e66999d0e327780dc673f9a5b978cc9670163c37a70423f4382050a9b95fbe1d0bc80a5fc339f515d9317cdfd1554b0f38eb7c6daca1a0ec95250d599f65a547c7436f5f2a5dbc916d7e6c4a2095fa7676a15a06787f58f85422f33eb4c04fe93a96704b0224c17076de9a6884da665d2c7f9176185522501f158ccdf42532e8c12975a16102a5696a66029a125aef812abc745b742022fb23c332f15ca6a4c2793e7c91afcae50219f6374c5cd61883bd51f7fe9e16f6d3d0b8383cbca7bc64637b473c0c75ba2d5865576abc6b27e8dc6d2a0d044e4793cc8f6771cd2dbbd20610d4123842a4e80e34a013b733b18c97e3b742b0341ec77a3b4c39b6b3a900f5fcb75dc34834e259e48f4b6d431cd3e9e4a7b50f48598f0a04a4ae4e8a3529585f02bc1c5118f49545a4f23eb97f19dcd3f2b7bb92d47fd38d74316634bc039c15694d131f192d93c8cba68cd32ff37a805920b367398972aafb6d06039aa9d1d4ad241d2f88d581570f550a0d85c16c1a9abe547dd3
+Shared Secret B: 8a1f26bb780581276bbc9badaaeb95807bf8851e7a6d72e76846f81759a9d28b
+Shared Secret A: 8a1f26bb780581276bbc9badaaeb95807bf8851e7a6d72e76846f81759a9d28b
+bb2e2806ad05ab7b6969f58fa5924d2016f779c68eb17a4357a3f96433f8f1e8a1dc041d26d7fee3550991e2bea90752ac6578e6de203858a0137616028b2aac04f8ad44a1d09fc0df6a21f2e39e2dca1fcd05f1b13e51a135266a3b82689d95885e7e22b8417002abf25874ef908aaa35254bc6ed189d045a1e780208e0ddadef45754b5f17d072c42aeae1eacae45820e8912efb00c28d9670409aa8cccf3c1cb971c4824a97f9d44c602c9c698f559b34186bfe0a71586d0fffb52f19d7b3bb540e3a0fe9f8b66020f856592db2a4330fa0323264d484b96d7549703d889f5438eca8e187a47be84429049e6bd8a6035d9882b5f03b216f9cc829ef8a162111be5fa6a18d4232e3afde3f128583f5da60eed7355f922b526f2a22a8dcb061b36a1e7291f09d5a5ed3ba6ddde539ccc179723b442cf31658aec41a961b21c50a87e9ee7a8a6f5934c55958a6a656373c94e0a9d0102d49f2c3e9442e46af98b6f1a61bce7b056caeb6d9aefa2e405a16ba8d9ff23a2be67ea7ee67e5d52a7479f8d860257b1b988f5ce01f6bf5c1d7e3edc994c2bca20768cd67b1ecc90fe6728e819979fa8763b68e1ff8e59a98455a10a8bc5a3e4347f4b224a76bd1d75a48b642b05ec02385caa40104181f26db72a7f9193706c73f60370631f28379dee319cc5bad82270a0f34773f31b4d887235a08930dccdd3b9c04eab5467491de1dc985ba691368235fd22a62cd9a0404f556c6c07011101af4b4e97b4b8947b118522296589094f87d86d7f4980af1365c1c29d98f5acf4492270cce5fe8ffa2a37564e3d6a7cde6e5a8954748df0b8f29711d01642579358eed54a09f243dce4e3392d3ce2b9beb0dab97c29e24e236f1a99e05de7b53fba7e1aafc4358d14ba585f21172697699ed4d0aca12b382f9f0f207f1308319a7ca897aeb76bb63bc9d068119fc85dd0f3ea03aae9eb7b9f45fb13a815b1a402be2c6eb91373c94aba5fd1aea879f034e0c63ecf7296e6777fd7322d35c6cebf5bf1a78fc0f4d34667edc18a9e0d41978fd411ea0a33af60e3e6635ce5fb5247d21e3d90f2b1c8b19426948023c223ab240a644802f34b6cad3e9ed16cfc4ac1a0a1686d796fe6a67c4b9669b9a859945034924a645d33fafebcf247965fb7e9dc7c649e276153f826f034425c9242c57d0abc9eac83ccbc527bcb2359859b9b744ae59bf08eee20a40afee8b895a42f36cd328c550548696a54361d7525efaf99f12be8eebfc33ff928559620c924cdc58c362d99c6b277eec9273026f9c9a6ec105c68d1ef48d12d8ff23a3dcc48ac868d4c721f33418f75b593c7f7bb036bbc26b71a4a080a50c01e97b68db1b16c5de4fc02d2140782b9e643d6a19dc71466a9c429ac9b3bfd3ee4f0cc356d02e95c39a10d46a048516e328e56b2a8f0dc269d85b9cd509f5c5a8ea7c9830536aa24b95e43ca95aefbb565310b00ccdb8f3bd61a815f7f375536a535fe4285b7235ab75e5ee882669a579d62e3f38f926a68bbe99acd962ba1ebf4c5a41834204d893b0421d5e1a5c15ec5421228971aa39d3bf1264752a1aa78fd89f7a6a0d3870d3c08167d7fdd165e640e550f7944afb4e764e77f6bc61e3b95bc858f331acfbda9f0b52d97b63b1e02a633673a2fbc7ac7167c70c1450a30c48a53751d5b52bf9df54da2fef9d54e102aab27ef7e3a87c094cfc60215544b53e83a18ff9b38ae19474b87a7e78dbb0c745a82202c08614e34be295dce1a7cab503e7f34629107f66343c33aa2b4564a0c82549957f5a11e1684daffc63e07720b75d0d49a73921efa7c6c2be36b3fa07f1be2eb956b091491e151259cf9f47ac22797a245099735b6fb69031a9ac5b545009c7902e4383a42b2a64333e529fced3e6e71742fff74b6b9077f06043774ffc1f22335e884437c857daa4a2af3e4730c6361e6ed01f393659b1312d3a60fcd678041a728a0093667713963f174e27e429f292afe69a3a2429706e71522682afb81b3e17d7cfed68cbf8e991d8049f010369d3e9a755852cd4fdb5ebdeed24c9a4e809eec4d38faff3acc134ac4b0281f3623029006f1aba7b8b18d13efb72bad223be18304ad908db7190c13063b4267224063fd295c43ef72bde37c20b4083420dd077899f96f01654d8b73b0a84efe8792987c37b9e4ef1ef3bc9937758006b345257a64a6535d0edbf07a0
+Pseudorandom shared Secret A: febac48f12d38bfca28b710854a6bce7a38d43a1710a6f1885623047abe04d25
+5dcfb0f78699c38891b0d1768005d72fc64787a614b08b74b65272bfbaf53e1cc652fc2b96f857aab82f279d502df54709685b0374e67811c7b49d4eb15b1c03
+Public Key: 5ee86e3002c7fd40aa28861a7391005160127a7b19b6cc5fe88cac46077a1e6154bb5c1617face436744bdb78fc1702f7fd332344bac88c06d85401930c354db16c0e0043719a89e95211d0a951c0354278c788511b3b972c167b04bba4bc59e93311d772a24c21b0f17aabfd3a26262b07eb5360636b56ff78c9d350453c161645f7b053f5c07fcd64829f0c7bf9397e9909781f7995b2a4b40c36013260b62e11fd1f85f4f950a74db5f737081e8219614340845aa6118bcc6d5374657aaad4ec39bba90901014c1401821ca1a18194b0081f203b5da4331bc9e5f6151c789af33a7382dc09f724a3d7b56009b895e6a746b6b8b81791014b70b3195151a6bd66f12962f08331d717475f5c848b076af504b2152a4a8a0a943a718bc4a19b492098e32caaa4b76ba611c9d533a715f626fb767c9fbd0b222e5ac29459f431b0bb055677f493552d927b229387bc43c84ea9665a38251bc062959665fab27022b8993822a2ff8bd6d3017f9d6b3319b9a6368be3b8a4f2d226c75bc6c6d0b48761b87c76b2de5fa28bd11bfbb5191e4845451532bde5ba1f6c396728b106ff29284898b86ac3913a05662aa641176b2c96b49308229306a13ee70a8980800c01b2700115446f066dfc1b27b5c28c1408d2107caaa0b5ddae6ab28b8b7f847103407179df22ad5a319d4b156b6ecbe92cb8ee972b6474b73713bcfadc57ee7e9bd4c038d08610e0ff18e3f6166771880ef050e752a2e6fe02c8a67b1ee3c07fbb5bd2b9c4188649c93976d104748477ab6944462fc23aec01039f780932eb602149bb9edc51db4d09db7346902c5cc8a914276721ee9a923ca7c29838639f54c9110192b45d9848d29c22d1c1a6de875baa113098c54b97171efe846303809cdb30f478499a8aa6a10d2c54cd1b4a93cc8b7d3848f1ac4c0b1afb96154a3d38445fab43c606f5fc0147955ae1c6b6756c6968e92225e9a19436955b0157eb66661a671c6edb680b7b2290d1b4893aa82ab67246dd229bdab04befc5122b7a459180a4d734b447b932c443554177d22b25847181f22b51977c33d7d06c943322fc4f80418193d6f297dac3c0b6711c7ff0b36cc54c6e8aa9289bb726535c24c8c8835997d37a597c4ba491f063ea6ca0e98a096dd508d65567cbff2449997ac5330363ddb1a9c4a2c4c1cb293d1041a9a00d8a24900825218e3990f8719d08c353ae1588f0c096cca7e89c2a264632e21f2a952fbc72cf4aa83f75388426c13d90784c873161bc1dbe240104507b3864d1ba2007ea904784b33cf868d07b43c4e0a33b7fc99bc8431bc980068808e6b23bde0f65668eb8d1d85b3e77bb7e0203a8e403d69514177741889484d7506ac2dc7c4e1121809679f253799689c4423d37049447d43acb137459ba9a9387db15e69825fbd44ae1e286eaa35667de6143feb4ef707c574e007c5d61066a2741cd1544c8a446297b6fdaa9c4a32c528c73a142c13b468bb94bbc847bbb68a3a57a62985d2b8112aa56edfb65c6f16217b6591bf1700e7922cfe360822200d9ce0165b3279f4416847e8c5b1650ff42cbcd7453178d24dbf7299c09c1a1ef8ab23d393c54493f3fa868d8463483b640185a1d1015bb00005e57a6c8ad9612c22bbd5288100ab78dbbb14dac71fe4334e9388c7aa3018a71454cd3a688147826822c34e0b8163ba90843a4489116f9f714495255cb5985e93497fb7e5891f4c513a0093d2008fe88c13debc6b93728e6961bd3ab616afd2bb996258c2d59b3255694ed759ed9cba40b5817234c208d598ab54b4f402be53240919414216e19650a9a5a1d635ef9920adab11fe634a7e0cc6a6bb7ff5834edc93650a848d2589a589013e73ca50d1bc38ccf6836076509f98865637348ffb89419025cb74cf528c3bc7a6794392b59460a8740895c6a24811739686c4c72e570898da19f7570688a31cde9a5cc4380794b60844fa2343e53c9575830779b61fa94f2de5b2e6769d7df3516f41addca5cb8325cad2d13fa53b85db62289c580362a455fd51ca72b381fd8006cc682ef034a463e98301e48607ca7f78e3735fc7623d916e93d9a7b1706172e9cd493527288a73b8d506fca786d40379bde77466aa33cebbaa7b665af41a19668788f8e467bb724d8f1bb99cecabc65d320a00a61081e0f0ce5a23c264a9d6410108387a1d0f6c5508e1bd6d2133
+Secret Key: d848c358d9abd61081984bbb1822406f71577843b64d9a1561a7bfbe6ba42487b0c8c4b193e160abc641ed784e89d05082205435e19c8c600e1e56a5256ac73d1051db41575a904efddcb3d6ba0cd533aaf8922fcd30b882613361819b1b1986d26015c0f343697439b723ca03700d4481b381e4393740348dca025559c16ba194c517bc7a37c2c6453750f2c3588a79276a43f3b360dae460afa83041d1424400233e9b586e8c6e0505693d6675e7b370d261451f251c29c5227f7566cc243d76f50f75a228f2e7203f99bf56e6128b8364b4f045ad0c2e8728aad81a0350781af6a5579e2177b1d748ff8a5026a25e0f988dc02171ab9bae0d9601213554be14753cbc6dee58bac66c9a661c5ecb52bd3910251df5c8e62640a6f6c8c9e027bb49c1801b0a80ec82fe5a2ab44254a8f7a7c20453ae9a684ec753119ac3d9a55640c3aab6e9744e5b18f44a8a463abb5a230ab26c3743c10c17bb608af3200a7c624a99b0c79090729b9b87c0928d2c2452ac8cf581b2b8f549d9191fd709a13de953be693d199645ad69347882aa9ac48f9c78ae5bc638ddc84dbe44b7ea2b99ed2aaef4d717b0a1826e2907bda66db94828e5477ecd7213693946c003289450019cc22a383369ef669e2e728e79d674ef834152bba01377cc299b42d6d0a66395299d64bf26ca8bd2e498ff7b027486454146abd21cbd006b04f6c11f38407e1a0513746291a6400fe1997cb84666988b0833cb786d2a5d05c535c6b989266a91f7437e8cc736f5889000596b1ae5a011d26092f710d219c7c19935882b6903bb6f574078ce3b9c6ea25c4661b420369a4870a1201c0a3c623c01a25cd5a92a3d866344b2a373a3b71b8a78ee6373f41c7d4cccaf1ca9292fe05849837a3ea09e80fb705710720b06c82a7999f593165c5693d843064ed41b7d2160696b57df58577d781210a33744989e0c0126289934ad9508fa3b05f577682a88529480566f191ff95bc5d3949bc62b87610acb08a261542775b6f660405543161009ec354a82b8baff484847cb94633a6b6e585f63a8a7a3081994882caa534021b802a83239f0f7861372715fd30e28e4381d405529d558c7356870b9b7ae96181b38a3d8495db0c5985694b1c1202d822b7999f313d1f5ceb03c4831e5be3c328c07956bf1ac2e332493b1412742d23be5d497b8c246a127b41e2bb18d6b64708083cd40540e468393494542d61fc4d71e22960cc6a686d941c23e43b53bca6fbc7b23580142b1f2a44e5a40470a19b519281eb798dc4a3946479e182bb2b2b06755684c7a29562994a90f91a015510ddd151fa0ac477a60a27c728c3b7c2ad7756db2a0043d66a0736392838949cdd07cb5a1cdd8fa04cea88c6e06c02fa2a192f187a977332f60a97e660088530060661fcd650fddf181f41675567b17a0402b4c8330c405630b9338bf72779507b8253a7619195a5429afe76441b0a3c20f591d88c0cf91f05618ec9feb948fb2c884cafaabec0a5d5a44aae4943a13ba7fd7fc9f3a64c6849c27fbf811d87168ffb65d27205157f5b0b9fc7721239737949817429f96e0002ca619dc89ca2107b1177aaf0bac0061e9c22ac40933ca8e07197d0222721396784e8592f561c4c97bcb2e62647f860fb8b48ad37702c0e514e46a865a1ac984cc4d50f909bc4c11237304bb2b88bbf13179c751e6f45a2e91ad72763cf740b95905145417c47b7978777a5b0f7507c0905cde1276da772dc4d00e6bd578e6974d676598bbc719fcf7c61c354fedc01cb250c82cf811075bcb0900d0a2c879263c2e1c90c4d8926fd014b662cc28755b9b5b6c52ea0143ac956c2010a21ed477c738c2b63465426b6dd4e3accf9695b101a47fe81ac1b384b3863e445618baf65c5516511e27219b4561baa36721365e673906d07a026a8a3c1ff310cdc371db79c0511b518fc3a3e326a0e9701d051139941a2954d13b19726eef0673bcd31d684047b3bcc9e6f86498625aae4708c42b5be172986c550d5c177e5a80a79d24607894258a0b5cb935c8ff98056a8b7597235ee23386c16a744f830ee7481913a19c513631bcd74c6ec144b06167f5093e4f19623fd337897b7d35d07be5e8c23cebbb580a02b09a3cde7ba7a85b38ec2991ce186c1149547da90a5ee86e3002c7fd40aa28861a7391005160127a7b19b6cc5fe88cac46077a1e6154bb5c1617face436744bdb78fc1702f7fd332344bac88c06d85401930c354db16c0e0043719a89e95211d0a951c0354278c788511b3b972c167b04bba4bc59e93311d772a24c21b0f17aabfd3a26262b07eb5360636b56ff78c9d350453c161645f7b053f5c07fcd64829f0c7bf9397e9909781f7995b2a4b40c36013260b62e11fd1f85f4f950a74db5f737081e8219614340845aa6118bcc6d5374657aaad4ec39bba90901014c1401821ca1a18194b0081f203b5da4331bc9e5f6151c789af33a7382dc09f724a3d7b56009b895e6a746b6b8b81791014b70b3195151a6bd66f12962f08331d717475f5c848b076af504b2152a4a8a0a943a718bc4a19b492098e32caaa4b76ba611c9d533a715f626fb767c9fbd0b222e5ac29459f431b0bb055677f493552d927b229387bc43c84ea9665a38251bc062959665fab27022b8993822a2ff8bd6d3017f9d6b3319b9a6368be3b8a4f2d226c75bc6c6d0b48761b87c76b2de5fa28bd11bfbb5191e4845451532bde5ba1f6c396728b106ff29284898b86ac3913a05662aa641176b2c96b49308229306a13ee70a8980800c01b2700115446f066dfc1b27b5c28c1408d2107caaa0b5ddae6ab28b8b7f847103407179df22ad5a319d4b156b6ecbe92cb8ee972b6474b73713bcfadc57ee7e9bd4c038d08610e0ff18e3f6166771880ef050e752a2e6fe02c8a67b1ee3c07fbb5bd2b9c4188649c93976d104748477ab6944462fc23aec01039f780932eb602149bb9edc51db4d09db7346902c5cc8a914276721ee9a923ca7c29838639f54c9110192b45d9848d29c22d1c1a6de875baa113098c54b97171efe846303809cdb30f478499a8aa6a10d2c54cd1b4a93cc8b7d3848f1ac4c0b1afb96154a3d38445fab43c606f5fc0147955ae1c6b6756c6968e92225e9a19436955b0157eb66661a671c6edb680b7b2290d1b4893aa82ab67246dd229bdab04befc5122b7a459180a4d734b447b932c443554177d22b25847181f22b51977c33d7d06c943322fc4f80418193d6f297dac3c0b6711c7ff0b36cc54c6e8aa9289bb726535c24c8c8835997d37a597c4ba491f063ea6ca0e98a096dd508d65567cbff2449997ac5330363ddb1a9c4a2c4c1cb293d1041a9a00d8a24900825218e3990f8719d08c353ae1588f0c096cca7e89c2a264632e21f2a952fbc72cf4aa83f75388426c13d90784c873161bc1dbe240104507b3864d1ba2007ea904784b33cf868d07b43c4e0a33b7fc99bc8431bc980068808e6b23bde0f65668eb8d1d85b3e77bb7e0203a8e403d69514177741889484d7506ac2dc7c4e1121809679f253799689c4423d37049447d43acb137459ba9a9387db15e69825fbd44ae1e286eaa35667de6143feb4ef707c574e007c5d61066a2741cd1544c8a446297b6fdaa9c4a32c528c73a142c13b468bb94bbc847bbb68a3a57a62985d2b8112aa56edfb65c6f16217b6591bf1700e7922cfe360822200d9ce0165b3279f4416847e8c5b1650ff42cbcd7453178d24dbf7299c09c1a1ef8ab23d393c54493f3fa868d8463483b640185a1d1015bb00005e57a6c8ad9612c22bbd5288100ab78dbbb14dac71fe4334e9388c7aa3018a71454cd3a688147826822c34e0b8163ba90843a4489116f9f714495255cb5985e93497fb7e5891f4c513a0093d2008fe88c13debc6b93728e6961bd3ab616afd2bb996258c2d59b3255694ed759ed9cba40b5817234c208d598ab54b4f402be53240919414216e19650a9a5a1d635ef9920adab11fe634a7e0cc6a6bb7ff5834edc93650a848d2589a589013e73ca50d1bc38ccf6836076509f98865637348ffb89419025cb74cf528c3bc7a6794392b59460a8740895c6a24811739686c4c72e570898da19f7570688a31cde9a5cc4380794b60844fa2343e53c9575830779b61fa94f2de5b2e6769d7df3516f41addca5cb8325cad2d13fa53b85db62289c580362a455fd51ca72b381fd8006cc682ef034a463e98301e48607ca7f78e3735fc7623d916e93d9a7b1706172e9cd493527288a73b8d506fca786d40379bde77466aa33cebbaa7b665af41a19668788f8e467bb724d8f1bb99cecabc65d320a00a61081e0f0ce5a23c264a9d6410108387a1d0f6c5508e1bd6d2133bc1748f31147794c2d17ecbc0f02764ff5be719ea64ea7dc1bb1b7d86a38c81ec652fc2b96f857aab82f279d502df54709685b0374e67811c7b49d4eb15b1c03
+58469870b3a4bd2b0723474f1c1b9da18d8f2be526fdc18f899d0c7f8bd6ef03
+Ciphertext: 36a167feaff9eaed62f545f5376f552ac1e7a341e840ecdc9fb3f52b410a4582e0e542212cb04df3078ec1981cdc024f34357b91b4470bb1cd05c9352e00625ad5d104afcbbbe5d3d657bbcb42390123a33678392c82ba39b0a5b647b9cbd702e6528886fcd844b5d1b1368684f33acd429612507e235bd765b69365d26ea35219fe3d826b1d90a965128dbdd01994bc1493d339b364a4495fc073d8d4ab47dbcf846f9a93b1d6ee5fae5097b1154c15c0f333729969d7abad594fb5fe3f3c073fc083449f2f5c036480db3dedacb87ba1a8a7bfc705eb8078b7046ec26c252fb4f188ded5b48fc5c77e3d5b13d5cfbc40ab8da118b64216571887f84890334c49aa12980ea9c4d5120232bcc23ccb2097b81c0c3fc0ca6ecd66fe581882440f61ce94f0a53db6f5f54a5147bb2bbca2f57437c6009a1fdea63dc911aa9b352b2dc18d9dfa21e23cfc912490a144ee73e18439df7f8bc97936c19382f764d28e6a8a33696e7d7a0bbf4a6a21ea9c5e5ef3f02f3648a06a7c8de149c2be2898ea02b2f24125eff6ad6b4fd9e995235438f5e38ff20577bdb9bca0ef9f1591847e594213b7aa424636bde9af11151a84d6bcd830ac543c92c94c73d0e340ca20904aff7a5462c4ed9d1cc13ba1bc9411e0d04538b38a3605b3a2ed0038557279d8ad6708ace233df3a31e3b57400a654e6c2123215965a7e9e09a5fb56961103e9152f01645f72f468ffcfb551420314b7c43db161522a750fba97321d89e5a10381de0ad488256230383e0c23e2d49f66896578cb41a9ea59b6ca0f208b0750c974f46fefb07654a0e5f045ee19ec9be8a2debcf1edc8c25b25c6a5b2e91027f52409ea25b35749b7dde843bb42beec67e4b91a3daf14e69fbdb3564641efe6b3a013b41331f70679cad931845ae03a429843f355a55a9c8b059feb855932fdc81accceb94e661c85128429c70f7a02651f3b51669c82f937ba868af0032b7869506d0e81d93ea876b50ec4502b0a9623ca6bc88b328126a28f3087eafbdfb4f67752b9dd76ed579e0132e32bc108435538de3b23ff5330889c37b0545f0677bcea26f3e093d6985f24f224956bfbb771b0b7ab35accac03db2f1a80914740d2f3e1912d688272f3372406a130d2683292dfeb0fbbaa54ac6b0172be6def2cf3a8fdffe535816c17a165b4624072209325797f388d1587fb56ce5dfe311a01ef58854003f1b4bfe2b1651da9d669034e804865240d626556787feeb78a635a65a120d69f63301f6bc5f2e7da53c0bebe6ea93786123a4e124c22206d0d7ca22fe233ddfb81e13a4ab0d0074e195f5663c02a64c35c5bb5b04da5a04bc9706899bcbebbb402883cd52bafafbca62deb26866dc0174cefba1265a2d9f47ad990c8ffa761294e6fa74f42c4775f194c02bbba3f453e10668d90e036108bafd06e1279294991bb2489d7575c7c3fa812efc1f163af74b84eeaa8936c78351eba32fc67b316d797e2679dcb1f0f288be43f404d6a4ad5b0ea973537c273c3b3cd52b428dfe6aa7c1a7da3aec4d44fc7a9f6fc07f862a2cc230499655d8f721dcb33750417cfa235109e99f469e13c7c1ad401c4062a3f32da789cad210c554794dd837a1f339d91e309f4da9a8586edc75801836dceaa52948bebe3fb5080a73027e707929007294afd015beef79faff980c7e8021fc8560e4e35402cf406638c8dc32eaf10b6c6d5739f59a7f8b1c038b5d69c7c35ca53252d5bac8976332d8237f78d11a04d1218f316ee2ebb7cf6c822aefd2185ec8e395d6ce8102d6b25b66037c1200c4b4a71d55711082339e730e0439a08fef70f1b31b22db2287e2594e37ba4d1767c6aea886545e18725e350acfd8d2480ed4604daf77b14d10b626d7b1b45921ed65f83ef7251e68b602d43ad1497b79584d52f472d253a3fd63a93032db4af8c32d309777867980da53d40eb940e53817afdcc821f9eb31f08846aed5bce558df3c715caccb28eb93502288dff233390b48f179e5877cb835ac3650f33bf08e5b68be6a7432cd349d168497d0281f6df4649fcdacd02020123a72605708290306d62acb53f27e572575ecbf5f36608c857ea8c525d9bd9576afbcd7b3f32e10f49cb397d650e6cf3b45af872b2034aafb0bea07e6163e23290c520c3698aec36f7518fee7134d18c1d7d5c78d2277e68c1db3869fb36a54c5c8616c5c81
+Shared Secret B: f0d1127314f3ce28dcc2faac23f6579340096989ef5e327dd80c0744708568b3
+Shared Secret A: f0d1127314f3ce28dcc2faac23f6579340096989ef5e327dd80c0744708568b3
+47a65a7055a29e1f9f0a9a448ccf28a5484cc1faa221f3b50e1ee840f88ac0f0d2a5f2fbec97375a6e53238be662e69dc4cc10cae8c1f52af7e1fe7c72bd983441de98a6e7f09df1daae9d873c2d71b405e38ea787693a4374228462934d8d276305a96c59eb4dee4e1fa0cc932bb3ac900e91fd228424aceeadab718efc1eb1dd6ef3ed482f61723640e91e5aea0386a527c93a85f1d80d821678e0166e3ba5e038578e54c7d2da1882bcdb59a19e2f8021896d9cb660a07016f60c30027ae63d72c838329032e4013380696f9a8e389d143a817c65679c17bb21b062f8d1ac883a81a4397b4e3c3857d62560ec735dfb89c8490821c6f6a273139dc8c287e391df9ff2a2871075e54fe114a60e94450f29b656f6723db8bc03179b39bde839f2ae7d0d2d0cab2f1dcbbc381f78deb5d08e5d29dac819b121f8ec6fbdfe6f87fea2bfb9881deb4dd129ff19842d5146c7befdfcbe011230660cde005815558578299662ff05e11939c1b698b2276cb88e3db6e203511866ecdaf26dfbf4ea966998d9f560c4a46d31b6020a0019549b498ca4fd96bfcf80b31120244a6f476351a36e02454aad6713c1436332bfdca0c7ba380c34c496aaf967de59f924160952df2379711606fa4d88c304cf9a726edf1a045c17b3e6b33da476e381476754aae4672beb5fbc17c87887ccf98f092d96f6b45b0c795aafe6188d0ea2d76fc53db9925ff3f60269a3b42f5dc6592ff3dac32f2f6e8bd3436f46a68d65d4b26ef99cef3a62ccb66c00e2e8e054b8398db226a2a4c6fe3e600726a3aaf0a180cac539da9b6e3b9aebd4b327934578e20eb2bde26a26fb5d2f37f384bb71eb3b77215c282aa6cd2caff7895771e2361636a687338eb5255b6229f30dd7510c891ed77cdfc310878ed36833ce25866bce91aa27d99995f9b9d29c8babc4e6694cc83fddd13dc91f2510d6ae3220b78c6cc13049c4d7494baf028a666739baaa069985d4c601fcc85ce8fc80b425c18a351eae046824cfa6b8ea6622ec5a3c7a017724cbe847c15f5624d67628d112bca47c24759deef38d000121a13eb3d3055aebed8d8c1d010abeca7db71faa90d702d6a124f85e52f049fb77ba55ab41ee9729c2b93fcc597b7af2a7d475b24587ba847a185610c8639539fa0ac440670524651509adda5dc514ecc65debdbfaea6b9ca95f7eb8ebe7472051c89f65c2b821e4c54698b0d2898dfdc2cd634bd9604f51187338d9d72f477f9efdc82fd770b488b829df7417413881c10e239b05b7b1d306a2b8eac28579421597fd41a506db0f0c5bfecc2638aa8984f4bed3b3958e389c63d8f76949c491ec3e23977bb3a950a2fdbf7dee075f56ee2729431f7f40ea73ff4d0a46ada9a7dbbdfffb2e257d39387d9cd249015bc22779fac1fff2dc79cdf6727e256165ef7653ec1298a57a935cb15ab2eaadbd093099062f8e33959a8e5a3c498efff5a92bf5c00fb0c4c8309842d06549aeb5bb57006e36edcb5bef4d0a471fd03fe285102ad0692949a5c39063a8261cb69c4254b903fcd55ecee20fd7c0283532701b6ac028b8448d7eb9e483726a7966e1053e6855760e46b088aa6f44cf8f859e7614af10db005d6175a36220db802c5a976c90545742334f8d6e0c7b9aa7932cacc2018b20039f6d012f810f999157c66bce1f34d4320abad21f5b97748ea50306f07fe351460eb4d32dcd65a436a9866ae7b759ff27e98b9adacc540bf9b334565990e27b91e776d41bafe1922bf0831250b8c229920f03b685d1d65b9fb9f13df8fd1e01d3055b79877cde8b21498e1e13db7a1c54aa7a12e59b084196891db10f5753d76aa970cd48d977b4e84b4f4328e0930eb1b126c95f665b741ca920310aa25fa5c21dd22f72f519337405ee6531d673f9e4a0a593a56cbb2d252a9df9e59b3230d988ded0d4a7c4dcd2b6949d706c87ca2144e680c9812c1383eb1cfe4014e981511c5f674dcb1027600e4eaca081283b05165ad8861f95ad7f5d696ee639bb787d063482466a576335d6f71d6c78d25615ec0bcb7fe55ed99f5c9643cc20731bf6335533d9173611f1b54bcfed30c52a5cc4de9ba52eea4d2cf75b8a8687794b6180d18c53c131964537594507932dd263eb3e022ee12f41f558f30f7c3a432fe34904703ddd96d8ef276977982499845ff0a65c4617c61945cb39b937cbe9cdf8809e37
+Pseudorandom shared Secret A: b7d0a55516c154cf901dcf1ecbea07f4ce56f86aa501e876b945c3381a856068
+2eaa747efd602058db60b0295570ab30a03080970433f1cc66483908c9eb05ed7ba5cc6123acddbb832fc4987b93b54e026c09c4ed8b51c77f250d94bd116f3c
+Public Key: e720765f9c3295f20a34481dba695dad621e2c138dfe225d9615172d60344c8379c828a7a4a90608c62e85b1782b7315572ab8d53962606a7bf054728c1b39d3384311ca377b5403bf8c9939a6707a265316ac0617619dd922bc4c5536e220b45e076b6f58c8ccfcc66018a1ff30584eab346ae9717db9121dd563b64632c027843d92726f8c8282465b2769b6007a44a7ccc7d413255e318ece83cc36b3bf0ca58fb5da1df8296fd5f69b30ea28d5fb840790639a50082758b892421f2667a7d839abb760b246b71427b5c10ffb9f8cb041a9580dbb72948d0b5022fa7e12aa4c9c0a46e2469701b198f9e75ebd75bd3d2a417b08121be09d3282409f06cc79d2753f330456266631635f48f14940a61bc4db652d034103c8801c5c3b638746e7322bafd41f3b8a45d4e3816638c79a5744012c0c3393af5c482ea4d28f44e98f303b163d57713aa76c4211c333f74ca406c8458443fb48c6f8a3435fd84c18e8a6d1273162f8bce19505c9c2a716c1ca11f358c06c0f2ac4a6fc346aaa12769fe190b688742485c60b2b44cbf7c16233869b9c45e1575dcaf8140d5849ad0c9928c0c6994b0797d03904b0799ce56e2a76ce43839d03ca71b2f5723a4848af067e0e4154942b8acdf56cd645c68b010eb4119182d80a17d4409717b59955cd67a12b4808589f828913fc7bf610cb3c107da06c2c77479c01c83fe81672b6e16f47b88ccd48852e508fc36756c0456a8cf57cea55990aab1a098494f77c48f2e78b8cf43a1946cd96264db461718d451ed5c2b68637896fea2809d4c975b71cd506abbe51c3af4863f7d68cec407e810aa35c4496a41b24bcf05285cca10a980cf1e63448bb304c9977a7201420174afd00b8807c78659647a8cb26e3b01d9eeb3beb870198191874739421a165b635c34a38a24486957a8683d69267e09a3e261651e0d3cdc14a671df540db34ab263700fdcc39ada3b626dca7211cc1455978c52b183ac4abfb3b886d08170e9b118c43a98fb27af8053087e82cad6a9506aaa1126c7b20d109868a169a8022a96183b79898bd88b15b4633ac3a29b6cc48851790531a69b0868f7a7713ff04a3cd725826445636d056c185c5c47311d3d856e9e7af89c64d68a23ecf54c45057942aaa497c85c347c304de97306068131f25ce9b0c4c10437db75504566a7be1c184c0036adc609c0593c287f19239316fc1d7a116e04df2446972924acf8000785c06b7791131030f604a1ef2304dbea985b775bf8c8c465ff8ad36695eeb5371c3c59bee59a88eda9e5b02601257b03bd59a8164813ee759870b45382c679d0558097268a68460658c5c0302711d0a2a9c6b69a1daa2074abfaae75c4b4c49e6e9c371a6158a2cb13b1917a885cee9a7292c487da3ea7644b2bf1100391a3585832cc89e10b88e36407372248bba3ec4c2a91c934f6d5c59440664dad5375bdb1379c3a5a9daa8c4760e3f91a2adf9ccf6035914c4aad3d9161ac2aead0689037c9964666fb891a9b4ea23051b628462baa48c20df610867856aa4c531dbaa997d299de8140eb9cbbef30c84ec0888de5205d6c7a880984aca5c9d596c1e2db6734b5bb59731c9aac99589cc00f02a78e12b372b00057a41a8faa35a31e821520b51e216022509347302213850306cf8c868d27cb355aaf350cf7a7bb29db5b4617a5929c709c3408327f0ba0df93c5a84bd0d0a74f90a5fe7436d5e833869238b0f6b36654a64b27c87d336596fdb58c506918408a60a3871b4561d82a1859d30b0ef99ac6622a71e205e3a689a043791f084c4f8f808b6e92ac8f0515fc6848de19196401c3959b85f926978711d2db559bd38900cd563d2f11bb82bba6d41ccf7a4b4cb9a6fa7fa9306070ef8f65c929b2d9c1b3273c467e8e43139d1a8da12c47075ccb397582da6973626433d0c6ffec12f3a30553d669e47dc1bf0325bf989a3ed7912e7276c08d9871d042b1f283a06d80622b35d4a68763588266454c88eebc866f25009b4b20cc283ca36645b130a6a514b12db4e1587c77f8629f5b951005cceb1110eeb48b71b10bc795157181c9787151f0bcc901c047d71bb37357074051c22d882632124812d3a2db5dc3e628b7de4f93c2e2bcc6df264015c3c80a621141373758276a91242a4c9a7a73edec4696e3b8603b1b94a0a060cf53ba789aecc2fa7cb0866c3caf8a0bda5
+Secret Key: 7e15b1edd4a910f15636678c1da64ff12bc8a27b749ac68b58aa696bd651ce6308f252cada1648a56b62f5c2536125978210cc41826134cba89dd68aca326e10bc0dd2fa7179070b62f650118140680a6a9c409c102a30941492405436c8736fa3035445a24be8542a6f45b2ed576331925923b35bc4d5a6445c3b9b553c16fcb8bb150e2801112cf43ea96a8b50e974b3808917415c04bb85c2d2b14d29b678c910e2d14cc4e89beaa91788232d972bb104f390dcec4df51497a2e476741bb309aa7a859a22dd459476fbb13d2c293c377b9025863b574d4dd791ba8a870fdcc67d9273d2cb63270cb98c7c4f13fa7f7c7a0f3ed1c8e24675a6284b256492142590c69b4da1021ccde7ca4b0c8e7e216aa271baba72a733a17eb5867cbf92aec168349c43b46976791d317547c32d20432c771041eaaa0fa2865d0654713b85cfe98a41fe70692449a4c2468c98f79ed5b9164171520b43ac338435df054155803c837424fb9a2fdd381d614c5d5d287f79fb1a1a00180ea32f09cbbe58183c031311edc28aebf817892396ea47c98f9055a0465d111cc468240167f6c20d63189da9c820c96c8948190c23b627d9c20aa64f8da30e0006b96f5807b4d8772ceb1804a91c44811685f3c4d5540b7f2c5f06014d37ba7a3a12ce9198c6b567ba1d358dc1e9520ac35cede39dbda18d956c8805d74881cc419d06bd7c37a5f5f129ed9c928647c46f520ea8d1845de7a713b1bb56a4c264e52d957bb7d76b6b37660bca037f44fa0f1b9ca37c940773d2bb827043488a9be2e2480c4398f52850a0d50c0773724e1c1f458b4e40a53d4bd7a32942064c512cf7580812c6160e06c224614699638fb7f550bc2659eb87adf5282be2371592513b82229253006229db6c19b6670ee081d91a62a159219173ae3b376ac47951827c061eb01f4a03a58ec552649b606e085e723c456332aecae7811569a7cbb04d1e64cbb76a3c5a8c2479748c362c13c5486323f4850201c013b9ab947780f538b62c403f56561c8fa1c991b76bd505aedab6a971c84ae6455658f74b86550203406b6326bd23079b756285b663cfad4243849781c82a79ff4035edcb0f45fcacd71a61aa1c930c583d88da2cde361c07a14de2068fc452b51ef198d65a92ffea5623579a20fa26037ab00443bafd14a8e0f9afa98a9f1d91023f3245a405bb779cc71d13590d36681fc22396d5b143b9350e6a33912bb168a175a17bb843159f91c16017783a270797978062e95c0d8232a6c5f30fec12ac8318731b536d010b6adfc407eabc5ad65a07e034ac5178b8c961a59606ad2e443287a1187a3a827f0c9868617c3f887422437210abbf261a44c5493f22b987cc1140d0393c8409cd25c30cd2a9582fa8c759b205f0c09357cb429926c246279ae5a5686e09a3e1da484a79039c1784d2533106162502907f589127980314e8d36a4ad39548aa0a31740f2429b908388a36ca361ab5c759241d4fca6a4d4bc4bba22a465845b2a906226c2d29f431a9d7b4c85c6d5ba166cf08967e4769c5fb1f2c18a2650b5014ccb80493b41e0a320a99c14d920f69d99019647f84299914e16dc8c59788e700bcb59eb075310f1b866c4b89abbb91cd5ccdca7127ad6a367737c6e0693cda775849f8224bb6cd968880516552b5bab369eb126fa2cf8a24429dc8a25618097bc7644c3990515059a0c5634c393e5c274bc6547709ba95d32137c182886549ab2be168ada9872ab41178ca18c06ba0d6b64131e12bf1695bf1fb73fe6215e05ac5bb5963a0e9b5e5695d65680de93536198414ed166b63617ba3511814dca423e0a5a191153727590a62ba9757680cc334af801b0764b9fe4857f63cc1ddbc7cffbc01991782f76c912d825809acaeb1b284aa04123d09c07770890c63c156d4ae1b645f8ff3cb1293c8be99996a6cc255e3afbb0212101764934235bfe149501c9649e5b65fc56de3839581eb647d2a14a3417ee9a9acbaa68e44b06c8b35c2593645508957483a7f30d5837869a7f150aae4d23005c0b0ffa98e3994380a43ae38174306d8b72b3b11c234c10bd1c647687383dcb3140014e874875e451b975b8d5e01cf5d75bcc1820f7f88a877d98d867a56fc916c7d292494726fa497bd7c2b980bd20f5a8b3de720765f9c3295f20a34481dba695dad621e2c138dfe225d9615172d60344c8379c828a7a4a90608c62e85b1782b7315572ab8d53962606a7bf054728c1b39d3384311ca377b5403bf8c9939a6707a265316ac0617619dd922bc4c5536e220b45e076b6f58c8ccfcc66018a1ff30584eab346ae9717db9121dd563b64632c027843d92726f8c8282465b2769b6007a44a7ccc7d413255e318ece83cc36b3bf0ca58fb5da1df8296fd5f69b30ea28d5fb840790639a50082758b892421f2667a7d839abb760b246b71427b5c10ffb9f8cb041a9580dbb72948d0b5022fa7e12aa4c9c0a46e2469701b198f9e75ebd75bd3d2a417b08121be09d3282409f06cc79d2753f330456266631635f48f14940a61bc4db652d034103c8801c5c3b638746e7322bafd41f3b8a45d4e3816638c79a5744012c0c3393af5c482ea4d28f44e98f303b163d57713aa76c4211c333f74ca406c8458443fb48c6f8a3435fd84c18e8a6d1273162f8bce19505c9c2a716c1ca11f358c06c0f2ac4a6fc346aaa12769fe190b688742485c60b2b44cbf7c16233869b9c45e1575dcaf8140d5849ad0c9928c0c6994b0797d03904b0799ce56e2a76ce43839d03ca71b2f5723a4848af067e0e4154942b8acdf56cd645c68b010eb4119182d80a17d4409717b59955cd67a12b4808589f828913fc7bf610cb3c107da06c2c77479c01c83fe81672b6e16f47b88ccd48852e508fc36756c0456a8cf57cea55990aab1a098494f77c48f2e78b8cf43a1946cd96264db461718d451ed5c2b68637896fea2809d4c975b71cd506abbe51c3af4863f7d68cec407e810aa35c4496a41b24bcf05285cca10a980cf1e63448bb304c9977a7201420174afd00b8807c78659647a8cb26e3b01d9eeb3beb870198191874739421a165b635c34a38a24486957a8683d69267e09a3e261651e0d3cdc14a671df540db34ab263700fdcc39ada3b626dca7211cc1455978c52b183ac4abfb3b886d08170e9b118c43a98fb27af8053087e82cad6a9506aaa1126c7b20d109868a169a8022a96183b79898bd88b15b4633ac3a29b6cc48851790531a69b0868f7a7713ff04a3cd725826445636d056c185c5c47311d3d856e9e7af89c64d68a23ecf54c45057942aaa497c85c347c304de97306068131f25ce9b0c4c10437db75504566a7be1c184c0036adc609c0593c287f19239316fc1d7a116e04df2446972924acf8000785c06b7791131030f604a1ef2304dbea985b775bf8c8c465ff8ad36695eeb5371c3c59bee59a88eda9e5b02601257b03bd59a8164813ee759870b45382c679d0558097268a68460658c5c0302711d0a2a9c6b69a1daa2074abfaae75c4b4c49e6e9c371a6158a2cb13b1917a885cee9a7292c487da3ea7644b2bf1100391a3585832cc89e10b88e36407372248bba3ec4c2a91c934f6d5c59440664dad5375bdb1379c3a5a9daa8c4760e3f91a2adf9ccf6035914c4aad3d9161ac2aead0689037c9964666fb891a9b4ea23051b628462baa48c20df610867856aa4c531dbaa997d299de8140eb9cbbef30c84ec0888de5205d6c7a880984aca5c9d596c1e2db6734b5bb59731c9aac99589cc00f02a78e12b372b00057a41a8faa35a31e821520b51e216022509347302213850306cf8c868d27cb355aaf350cf7a7bb29db5b4617a5929c709c3408327f0ba0df93c5a84bd0d0a74f90a5fe7436d5e833869238b0f6b36654a64b27c87d336596fdb58c506918408a60a3871b4561d82a1859d30b0ef99ac6622a71e205e3a689a043791f084c4f8f808b6e92ac8f0515fc6848de19196401c3959b85f926978711d2db559bd38900cd563d2f11bb82bba6d41ccf7a4b4cb9a6fa7fa9306070ef8f65c929b2d9c1b3273c467e8e43139d1a8da12c47075ccb397582da6973626433d0c6ffec12f3a30553d669e47dc1bf0325bf989a3ed7912e7276c08d9871d042b1f283a06d80622b35d4a68763588266454c88eebc866f25009b4b20cc283ca36645b130a6a514b12db4e1587c77f8629f5b951005cceb1110eeb48b71b10bc795157181c9787151f0bcc901c047d71bb37357074051c22d882632124812d3a2db5dc3e628b7de4f93c2e2bcc6df264015c3c80a621141373758276a91242a4c9a7a73edec4696e3b8603b1b94a0a060cf53ba789aecc2fa7cb0866c3caf8a0bda5b3268d403b3b397e7ce207a03e9588401ca2ee6a99948bff2e7b0f43726ff7267ba5cc6123acddbb832fc4987b93b54e026c09c4ed8b51c77f250d94bd116f3c
+5d307b240e2c8589bca9a1dad5f1c57cd47d74cd8b3b6012921be1202fccef86
+Ciphertext: 4ec3623dd4561602b917a4ab1aea722bb9f9adf1c6e6d67284f319e057782c681517923466050b24c997e5087f75c5928b78f34ad83413a9f6e144aa95f556d6f823e5e4c7d5e32880d3e7544a3d5e6e1f3a39e923606b099fdd5ad42b444b4257591c9613ca4458213dcfd5643e226faa888ac5fc7932fd0a9fb69c8dc73a41ab37a77b9c44a0a5424c6910f6ab694b8ef2c8468ba3caa34b6d93a5d1ede17d7736c37782f31cc334bffa11291182f0958004b300d5a8c4e61486782918b222374f0120789d8be6a879167be0ba0abb94fac7657c1d977e69b9a203269ae8b329fcd5b1a118b042c9a62d14e8ba1c7982fcfc9639bac96b609faa715ecce34b25f2cea7e04a24da8f4f5ade69700c3271592744cd31695700547459be091672ea9b3e667e52080ee280aa64f3b6acb538b409032e8f842167e6e5383904bb719f1ab57e2f50788c911c4d6e00c0b060ce55157420aec550f63b29de2c899bc2aee56311a33ba103e9562f2ccf8d7589db96e71f010bf694ebb0df37480dcac8d9e55a00b976de9d0a3a1876f5ba51d3ab05dc6cd2bb98db78f47360c94686bb8ae25f3cf4254c1fbd1ce562d62cade728d5bfe9732c2e5f64691fb5325231e5d7b4fc4cc22998d96fe9c5998f356166268853abfe09e6d435b6cd804ab8acc1962e4797ecc8d2a8d8a9da395e3f173534f511994f02f574f5d99023be0c20aa9271df817aecafa68c44e549bb1fc5ef7488896c9c984a298f8d1bcd21f6b0d0492d00a1e616bd406fa345ad26b6efc1b39062443fbf7c690f34cf2b13072952a7412ddb9bbaf81fdfe883eeb6bc4ba068274742341dcdb530271d72ade984119bdc3bbc3e6f6c863fffd722027e1f592d0642c8ac215477a3511eb53b6700ece4b09931d0adbef8e3dc881dd2e88fca1dd70357997f387e45884fbf17a424c4296a004a01a2450dd0a195a3b8de577595ff6279eafa1456d7369b43374ef53721e8d90e65c5679fa12f9379b3ca990fcd0071ea6cba8a69aadc50b5b91c85511455df186240e6c0d226402df5d5eef264e216c48e89de8ebec774d382c7a143aff773b40f8c410f43934b396d1cb3be495b1f72d6a4ef5c8c274baa0b4160a40ba49c42aae6a0b32a1207eeccd7858f8c2b1798e34119d695b580add4c7ee4f5c7a22a38e05c1eb970d1f7759fa3de8f226a4161b325449f4920076e832c91085d678b228045845c7b005f4e27c29a979951bc1d50fe4ac9bcf9f213b15c04de9d85d6971100d1d60652af90c5fd3e167d9969c3e6168860f9cf07d040520754c14e4b743eea5df220e9cea20a40718fa063fb1bbb69bb797a9e4c3cb445719e835d246be6c97e5ea82895380c9616649cd24616fa0005dd40e6776ba6fbec3db4ef645dc53cd465afa0b6ea15967ed806369adeda927c79fd146f68bfc33c20cdd069fb20f53554268e8b9786d4f98f28e91fb08ef751d2146a981758120c24c824e59b09c8cd1dd9cb2b5eb45eccb7141a755dfe5c13003f1a54eb3838fbd7285f13ac87938a94e9a72c3707577ef081129b7c3e9eb48476bad025f927cfa1e39c2d9accb734ef0d3b8936026c8fee89467b499f8d1dc34981c295e73f8cb2b39dc8948295937ee7e0a681154fa22f3d3e581f97e72a9955100a8f1ad39d5503b892f0a69193fbe8440b6ffe03ac687aab6383856b590fef74c80b39766db8b96816f177ae3f383b5cbea2d2b9037f42898b68e32efd9390f507a1d667528c53540eac219933d1bd6eedf7e25fb22dfca9b18bc7272a0e7a83ac143b76f202534400567043b6fc1e29758c4927f4c8a591097232706d4419466d8581a6badacea79a4a87c5cac615ddec1fa392d4a71faac1a2487f5102f59ad877563bd08ab9668748cb432dbf6f499cc9433de52d9a4ea6c3593d326e1c581e991dc2a204dab6608625d2c0a56ed9ff038820af76cec970eea94e1c6cd83bfe035ce19e3bdfe016329de9c9be1e8bdb79631d433ed3fa005e316e696bfc928cbbb835cfb2f76fc77ee6d72947d744a3ce755cabbca8508305be61f35a10ae1bfc0caa7c8a2f2f49c8f5467c30457a473733cbe2f96d2de912d085e8d12846a947444016b233d3c7d792e79ec616100e151c939ce049ceaf85d83a2c2ad056ed82a3c7da31d3dd9dacea0281323b5124b0366b38652a1c646d82bcb6be92cf8a42e2a918d
+Shared Secret B: 307699da47c6a2a44fc7143b1245cd2f88dd56d7b76810f500cecccddbd9f75e
+Shared Secret A: 307699da47c6a2a44fc7143b1245cd2f88dd56d7b76810f500cecccddbd9f75e
+a74c08680eb67d5fce4b90e843cdc51b76d0b9d79cd5a5bf9de92f91b65de5d99ff53637ceb61804abb9700922c7345951b03e81039f540752113e6a0f3011cc5cfe3abaaddaa5cea703203b2c3c71a9477b0b0bdf81b06382c1490215d4288cdd57c15227eeb49bc1f3990c13a351ba5c5e30d77eaf772d936ea39ff05c3a7355af18219f1a7d98b3894cb0b76f3aeb5bed4bb4197013e64d34c366599c76e6c0696592220d470fd91a3f8b7f6e79f2de599805ecf1e895f44814c6c338d1640091eed2d69dc972eb4214a8c0b5a320a1a7e5e7edcec68fa59c5fa28c0b7f92490dc839d64c755ea108b46f3649e6dd2045b54aa2c40560285289a93ec58e3664476aafa885752edb3647bd07e9ffd6f9a82fda7d340b0496fba2f0ec510c476133f3a5d777f336adafde62c4d79883268489ba52a01e38b2e5386585126ea30ac33f8ee5388164b1e3057627f41a85178829c454ee4d8bd64c129213bf18f179a2cf26e910a0ab5f2d27a19ed36fb5e6fcebf47989b0f21cf798abb86e9f6652a63b2947914dc0090d9f4f2f9d33c10d503637e28f0dfa9456295496aff1ed7696e498b9b0f2f3d0a5b6b83caa22cea083874f7c36b0c66255626affb981c9be20b5924dcd428d52ca920eb1e51abd47950f9334fa274bc1fa36dbb89dbeb815bafb0c5336041f6afc8feea2efcbf5fdd6afa9ef281c3130d718ab0f91614f5d0b0e85ae1efcf4c164c6b62099abc0cefee3f3e8c498641c28533e577d5f7fa9afa8e9d648215a5ce91986f182cac240154f27acdc934c1af7102756467500092ac0da790fbb7a442156a0d56baa47fbbf5ca75dd268a65a028229828bcb640b7dd98737e03bec3a73ec59dd3552d6ad6b1b252dbcb3c04a29d2cb8532feb01eb1fa6c1a6ea9d479431c1e601627b5ce6ef1d74cdf4e1ded1fcee5c5207b3db7afc1ce0481a6120a8a82625fdc4f54558bc5596015794a1eceb1bc4029a09c098efea91e852af7efbeb491c7d3c0f02b2d5c3dc045c6ac2d86ea2582d2644d1aefa9e006f475afc730b81c83d8df9c7db30df0d675a2732c40802bb184d5ea9ec4b3bfd9d2395bee815b16ac8aaa4dd783fdb13d62acf5e6c0df1c8f675eaa06844421526c2d023a1873bb8b78d9f8dca0333423b76aa6f359b72a647d327abc572242ac75524b1e2537b74df911bd5ebc98cc721b02e615599578b975d7dd07cba78edb6a7f3f8a3c327540d896542d26a748b52f9ade0d392e0cb2cf6cb77a09bad8b7b1ed038f54f323e26b6e52227ed02d78d8961a058a37e100c52cea030978516f4c8511837352b7b6eae50564516f6cf306c1482939a4b8a870d81d6bf865d5b0fc68c154f139fe837285198b5f0e207788268be5f1d391102d306f5392fc26b092ad88a6e81a2c8566852293988d13ac2133e9a86ecea21027f9d778190f10f8282551c46fbab44e912982968322e37e107afa70f1fedda335093990b1599ab6d68a1b6e176ad1f08b80d934651325d3b083b1d19f2302160780628f7b5b83a4ea3b5b014103d783921db2d53f475232171c74d48dfe5c549e21ed3e1e796a21c2d9ada593951f7f6a3dc7f472c4fe41c2feb13ff1a66cfb98e468d92fb795a1210e9d023d5e1ee2bd3e7348155b2c9291c5bcf6ebf08ae0bea21172f9f6d4cbb712d91c99577bc2c40b4fbd9d3b3d485d9979598fff405b818ed9e092bab8636855817b525a63a20e160d00e1b40cbb9e92ed5ddf239309f23cff613572d47a1bb188480e430cc5b72dd576c24539247a6786b179a0583a931c9b3b68279beb328c9a0bf03e54d0ece3584c018cdfbe56698c30dfd69e1148229ebb652d3b84f590dcab67ea78f0b1825da89e1cd11f69b5767d43a5ccea0a798a3a6c6df665949347de9c164513093d205e73e413a3e095dbcd3b3a5ff63afeeeef82f37c402dbfc917ac6c9478df2dc733729135ff0940ca9a1b5624117f420d7508d87149dfb46524bca437896b725f965168704ce6556eeb73333ae088725dda0043901c9bdaea75b099f2d2a654ba7598bab7cbc81d309057b94d4ce887502a04921aee41722a97e4bc8e608e559574efa8aeef4fbddf20dde746cb4572f6bf539af1990697b922da7549b844ba1d866844bda99e9eff89ed2af4856ff9123e078db3b5541dc535a42b903e1487101cf7194e03801a066703f7339875dde2
+Pseudorandom shared Secret A: 6006cf09ad5d17e65c7713e1c22f621b9b0de140db0d8c0b9cf2eb74496c4b5a
+727b75ae1d676ca9ade25f3cd43a265387ec076a2faed76a3efbb8d70a097bd745ed06dfcc3af270dd29698d4ac1080cf258c7ffa7f041b2b0dfa120c8514216
+Public Key: 52442249d43296a41c739977f9fa7c87488b021a5d49d963e6b11216487d9d3b43035abdba71450842614b420e7cb1a9dc8755e46854a5403159b742afa53e1379c05a193daec65e66f30f60d88d7c332161c80baa7a25c4d65533101cb2d0c38cfbb3f2c027f4f9818f33cd8c013ad81235cb29136a806c8c7a1e4875a70a79133c92c5e7113849fc6dd6975eff9824eec00fd29a71f21558f4553051c81703e35c36c6696698c202787c867677def169bed6c281348d3574b8785bbc83fa5d45e9065d0a00e0133290e7037073704016b7f72014d84557934a5151933fe555bf5166b62b09bab5aa248beb2342f502f1973207792501eaabbd73bc08e27e0e75639fb288029677db6964137a01839b483ca33b2d4bcf7a375555004d7e4c646d5aad18f84277c63af328117202a19e69280b4ab0cab31309b8619c09c2d1d0b1eb87b300d748b98bb3f9e36ef11cbb99571408200b3aa75360e3ac91f4290347744142835cf7178235a54ccb0b97b592ded28dcfa128068b6c7308cf63081a4822544fb9233337b49069c7d15b005b85b2da158182a3ce3b23bf50bb37f8dabc462028d826827f287ced96860bbc96732638a819160999c758a78b124b0ef609be3bc89129495b8fa3c3b69a92eaa854b9622a849c62a24852d7672f2c0193efa156602ab5b93c19b18a357ef37fe2a3a784643e42b9b393e3c93f9c5337a1aadf2327c87c698dfc9526ec8bb6a16f5ba35ecda170ff165c29875b9864478c299483f3c02356c6c710a0bc0381f97b56555bbdc9f6b4b98122dc46b911549976d013c88a0b63345e41926cda9c3ec12399d078237c90cd075c0eb3219196f0a83656acded8a54fb224e47c6095467d4045ce87cc4734351d2fccc70631bd9d8598f07452d079c6de761a862b3a2df86f13e9ced3a6777837373d584a80b54805f5224fe84849e0aeda5789f6b38f08a78486c33c43ec4a2361c6fd0ac2bd36b74182918aab04bab9bb2830983f6b31ceca912bbab4ea26a98c48abfa665ed25248c7d38885a52feedca5b0029ecf3358b0415c26692bcab8b6cef5005d173a2e30725df24df5b5603fd7a7b19c31236941b2a60f50bc20eeeab68b030a9a988bf5e81e2a7c78dc6b99803ccde0d38dd4d17a14030d49e482a1a62edb8c8f41330658751e2bf4261d4904735ac606625e25cb33c182185bb6bff17a1fb1688b925748a7e86f446bca96904bdab4bcf206775ae373be399365c02c73210a3fdb968ada6fe47ba391ac1fd3c92729e1b933dab0cae11d3287982e5b05dd4b71818a655117488e6b4f5c967cba9c19e27206beba87bc3a6b4e09b51c110142553e3304b6ca625dc7a0a88a98afcda6aed2c20c7d1b1b8ebc08ade53546793c5e4053b52b905c8334c11bc0d25c005af8a982a167f7bc0010b8bcd3d646c6818e540579b19589388702e7aba88ab55ed80a45697615b4b6a4bbd651cff1a287b9b9db763c7c88c5b9d5892450833e78a8c8101b95330a882756fe1c006562b295d4bb3c5090c860127387753f796c0cfa71d1b2322a877d58226401c46179c26ed2b80417279629993502f60f06a5b441f711f1006b4c628c6ee7313f126010e9a5bcc3c3b301b6a4ab4ff93135fc49923264786b010d726708574500d4d89e822a5774e82a6cc03bc8458a485795e6061aa5810e70068d58dc9e93453b2f2ca9e94b69d651695bd0a12241afebe936d74718250b79a1b0bdd126a0e8678ba85442fd9769a3a5cd710692e514c879a98ef95a76a6f3983d90bad62b354a7cb3cbc093d6e27db3a651bb18ceb7988a17f8c2028572569abd3cf0626806be2ae4651756bc12a73a2ac908c23401d251240413932b18c493f01048f83574fb11a012c9af22596c55807c618f49d2282215b5e073baa90309d362ba81f17ae1c10672384feb00a6f28b38d116b6fe2024de456aa3391a47895d3ab100c6d013a0d3230eb2c39f389c238cc729c181628160429b10d9060af2a73c12225d690c3dd6f57e545b1021831a2564c74b230c9b35c9b4d06f15e713f42c43f31aadfbe5b5de948505cb0aa66001db8c9146c9a01be16e8e5a0a47f1c64d943bb836c480b2990bdc3bdc0b0fbf208d70959b55d225cd0c55c3ba736e2926f0b42196f5994d2497451995c87a84b883eafc052a1a415b6c0152094a650fee205e4dbd1565f9bda6
+Secret Key: 1298625b2c9ae6a1823f282252d3366eb698af05258183510ac22f95fcab310487de30cc63fb2c84207033d4c5755269cf14785ff9b237a514278a6fe915946bb53bb8d93a3017834d0b8d396b81bb67c09af13d04301a8f1271a81184aa4a6a7ab02ac4d15a24729310f084e5406b1be2cd93740336876c597acb349126bfaa961f7a3b68d912c5f7200d9c326a500357b9c2d7b73f6d7a946cb9b629f6920073708b929075f05d6c07273607ac9ef48429c34c2236b0a5260e24e8aaa9b76638b496eb618dab5b8c5a4769d5f1cb8df39d5e6c0bef0052959786b8c66014737a1f942884849fc6874a256138fbd29ffe020161278e8fb0224586a06d018ea84189d6248b4817b66020ccf746bdcda3746daa9b1dc45412c401c41c8ab9eccc32e263aff27974d04f8f643a9a263b351c691441a07dc25af293aad0460ccc4044b510162977289304905a764dc8717aadf3763f978171b50a5241a5a709b01af2a2332c820a3c5e3213b4c2e0a8cd58827ecb178cf4cb43a407e1945b9392b4aef55919708e6477c5a42bca6b0c7764f175ccc59d29268f9025c32a214e2c7b8c6713af2e8aca3ae4053c53a734467b6a456faec7bdfc60a677d85cda855b3ab83683c37db70c8b3dd020577b6c6560ca472206f0ab8894bb49a228316187c0c1097118aca96d56a17781cf2ce60a8b03098e36c32041182a0bc335e504a1870c069c23676a833d288012272e41c93936ab0ad2d34462d04d2af4a0cdcb001fa1276444b65d157db96b357b28a70b9b233ba19ab27c34188014a04290472cc258585e094230bef301e4dc58b92c510a5a00f0c50792d8b3db51beff287ebd3379cbc088135960428204feba1f3535baef1115f8f9b392cbc99cb6ca633710d04a18d6d08f292850b07481744a5b1c29bca240ce1782265bb10c21b3ba41da81f04c63faa82ae27310339a3fe362c97ff53febccb05377b14281c11d8928d8468733bcbb1b132e59ba5e0da862ae7cb4af4a381baa6f42711ab9b647f9f9933f264521fca5d438b3f233c71b16ab61f47ad94a661410b85554c756022400f3025aa0c8bf13be5bdcc556280238a01f5fd434b1f5c840276fc4d8a59a6c2564accd329caa0d5356d3453d3ab75167281c2fa4b9d6697d6e878e83d33e6967242f1b15d4a321bd574462406b0cd35e799950a366ae1f3730cff14a998899fbec8f5dc12bb3749afc306a66588d8c7a99b9c9a84741596b036ff516ba22d920edc20735636abab1552c9937937b0423f6224d93380d07b8efa53c71530b257aba0d6662e887bd5a345c0f7a20b501ce97e20de87718c3f2037e38135f7491a0c13ae4fa3a43e42ab26689e2a974013469ed19805b59ca283ac68ac65b6f4150f99234cccb28d5730c3b0502f94a50d2471dd04a2bec3b60779a99746819ceb21f515a89012427b9628879c0798592bb73c4020c9735cf2b63c0a10a92c4c54cf172fd6036b9824c83da1245c0211e03be99c1cc12c65b50b83cc15652a3d650c2e280d09b9f2079b37da14bff82964a22148035a48ebbb4eab98ea36918f6d962d4201aa6cc82eb692d474a6547c0078323b7ed2375dac276833c97cbf19d9e229a36d407fc79bd39a5089b0aaf03c4355a1061355535e4665d71e14720546b8ee7c9a4d9436cc5798c2ba7b015a60bd65b3a19b16fd6a7b303326286bc8d530caea379876ba2efb98ba398073db75070f191ae096f8aeb9ef551317c6b3fd6f80f141188204c14cac495d4b78f0ab81131f66c0d9c47ff0323f9a75b41eb4d22888deaa4a570a97636e031d829acf09361339b2ce2712a76c7558654aa6f08bb001a91f3c2b7b256b8db018a809a886756512a3a14bcf08b480b013245801de5c7573c3329564663ab16d339ceb8c32fdd571b6da8b84fc93e25286b860b986c3b1dfd27036d5513a8aab074fc598f767ae366568bc8afd5a80682dc686f3b80fa620aa4f65cabba76d31953eab528605c9081f33a8f561ead1214e8ba075cec64040bb507f8382eeb7010c2486b734399c2235a0b96703b03a6ea4d896c086d69b400e15ebf211f31b6c02229830cd319a80ab338f1c0f91365a02882266c5ead820277c6b037695d08d6c4df200a0076c6bf01616870046aa188fc38ad589a5052442249d43296a41c739977f9fa7c87488b021a5d49d963e6b11216487d9d3b43035abdba71450842614b420e7cb1a9dc8755e46854a5403159b742afa53e1379c05a193daec65e66f30f60d88d7c332161c80baa7a25c4d65533101cb2d0c38cfbb3f2c027f4f9818f33cd8c013ad81235cb29136a806c8c7a1e4875a70a79133c92c5e7113849fc6dd6975eff9824eec00fd29a71f21558f4553051c81703e35c36c6696698c202787c867677def169bed6c281348d3574b8785bbc83fa5d45e9065d0a00e0133290e7037073704016b7f72014d84557934a5151933fe555bf5166b62b09bab5aa248beb2342f502f1973207792501eaabbd73bc08e27e0e75639fb288029677db6964137a01839b483ca33b2d4bcf7a375555004d7e4c646d5aad18f84277c63af328117202a19e69280b4ab0cab31309b8619c09c2d1d0b1eb87b300d748b98bb3f9e36ef11cbb99571408200b3aa75360e3ac91f4290347744142835cf7178235a54ccb0b97b592ded28dcfa128068b6c7308cf63081a4822544fb9233337b49069c7d15b005b85b2da158182a3ce3b23bf50bb37f8dabc462028d826827f287ced96860bbc96732638a819160999c758a78b124b0ef609be3bc89129495b8fa3c3b69a92eaa854b9622a849c62a24852d7672f2c0193efa156602ab5b93c19b18a357ef37fe2a3a784643e42b9b393e3c93f9c5337a1aadf2327c87c698dfc9526ec8bb6a16f5ba35ecda170ff165c29875b9864478c299483f3c02356c6c710a0bc0381f97b56555bbdc9f6b4b98122dc46b911549976d013c88a0b63345e41926cda9c3ec12399d078237c90cd075c0eb3219196f0a83656acded8a54fb224e47c6095467d4045ce87cc4734351d2fccc70631bd9d8598f07452d079c6de761a862b3a2df86f13e9ced3a6777837373d584a80b54805f5224fe84849e0aeda5789f6b38f08a78486c33c43ec4a2361c6fd0ac2bd36b74182918aab04bab9bb2830983f6b31ceca912bbab4ea26a98c48abfa665ed25248c7d38885a52feedca5b0029ecf3358b0415c26692bcab8b6cef5005d173a2e30725df24df5b5603fd7a7b19c31236941b2a60f50bc20eeeab68b030a9a988bf5e81e2a7c78dc6b99803ccde0d38dd4d17a14030d49e482a1a62edb8c8f41330658751e2bf4261d4904735ac606625e25cb33c182185bb6bff17a1fb1688b925748a7e86f446bca96904bdab4bcf206775ae373be399365c02c73210a3fdb968ada6fe47ba391ac1fd3c92729e1b933dab0cae11d3287982e5b05dd4b71818a655117488e6b4f5c967cba9c19e27206beba87bc3a6b4e09b51c110142553e3304b6ca625dc7a0a88a98afcda6aed2c20c7d1b1b8ebc08ade53546793c5e4053b52b905c8334c11bc0d25c005af8a982a167f7bc0010b8bcd3d646c6818e540579b19589388702e7aba88ab55ed80a45697615b4b6a4bbd651cff1a287b9b9db763c7c88c5b9d5892450833e78a8c8101b95330a882756fe1c006562b295d4bb3c5090c860127387753f796c0cfa71d1b2322a877d58226401c46179c26ed2b80417279629993502f60f06a5b441f711f1006b4c628c6ee7313f126010e9a5bcc3c3b301b6a4ab4ff93135fc49923264786b010d726708574500d4d89e822a5774e82a6cc03bc8458a485795e6061aa5810e70068d58dc9e93453b2f2ca9e94b69d651695bd0a12241afebe936d74718250b79a1b0bdd126a0e8678ba85442fd9769a3a5cd710692e514c879a98ef95a76a6f3983d90bad62b354a7cb3cbc093d6e27db3a651bb18ceb7988a17f8c2028572569abd3cf0626806be2ae4651756bc12a73a2ac908c23401d251240413932b18c493f01048f83574fb11a012c9af22596c55807c618f49d2282215b5e073baa90309d362ba81f17ae1c10672384feb00a6f28b38d116b6fe2024de456aa3391a47895d3ab100c6d013a0d3230eb2c39f389c238cc729c181628160429b10d9060af2a73c12225d690c3dd6f57e545b1021831a2564c74b230c9b35c9b4d06f15e713f42c43f31aadfbe5b5de948505cb0aa66001db8c9146c9a01be16e8e5a0a47f1c64d943bb836c480b2990bdc3bdc0b0fbf208d70959b55d225cd0c55c3ba736e2926f0b42196f5994d2497451995c87a84b883eafc052a1a415b6c0152094a650fee205e4dbd1565f9bda6b25650be881b96fc82b0ec94563ee00ffe13f72b061f4da7b5ad40158e3bbdcd45ed06dfcc3af270dd29698d4ac1080cf258c7ffa7f041b2b0dfa120c8514216
+12d6470abc01fc36d966b1ac126b7e208b9c620d6752e5ec4cecfe37fc3ebe33
+Ciphertext: 1ac0dbc95052ef4c68a7239ef8f0e57be4d31c73ff0ab0a92ca782705ea575e9255f386151e61d825631f1ebb13c0b83ba05773ea123e7c5de63f01514354efdbf35f92ec44935f0f918670114881edb8142930b233cd9d2b2d88f0d7dcf64ca1c2c0ef28b44525122cca3e3af1ff6c1140b03579075aaec4602cc5ed6ac77edf111e2d3e930fdc9b0a9813a4476e668335d3c6257aebfb9478b14a72ca290d3afef87216ca613796fa65ca4f8088fb3daf17b0d1de96aa30f6f67861c44ecfbb8d855ef7bcc340071d39af0feaa110680ef9d1be65e7747df471629ce73fa6d5c8e27869f243386e3b34edba4d621b22bc9793eb97c90816f55588730c372ba3c8962b1da4a2ebdb67e72576acae9a01fce9a5591872b50d6bf7f9cbf827cc3aa18a712e0a0c387179e2bcd87c2433e9a471ba3de2c09d7c665fe3f97650b8f090d6c46be1e260cb4dededc2a6998d32a27887ca02765757cf26285657bc2f4a093d4a9101726bfb23c8c8ac0337fe32c3bdc2c8a226c0bed7c8f65ea218d5119e344db7afbf2791661f89e886b97729eb02cf00ec1175849b060ed5e27edb91da6ea023a8390108d01182a8b33eb3a6a0aa5b2e710a0931c4d024a17dc455c759931bb1979c15ad72e13be98fcd869e1b3b34aea560b766c7883c67a9df0af72d6ea799f7ccc20fba7874fbb8f4c53ff08e95cefe3117fe750c0fa0a2dbab32a30b9263f33751928daed01678e4760dada12754e834c73b726c2e86b77fc2dff85fb4e4b07e40eb73841e96a317a081dbd01e643e7cde4e16a4b58a978935d37286fa808f762847c89fee5a71478a59eec0d6952debb2a7706c6f4fa2ec5671d8fd88e9c289ff004d03c346ab76a585e0c3901e6f0432d052e379728ced2e20cab432934ea8f9d2da5a0085faf8e90017ef9ffcd7024999a8bdcb4027ed553a23fcf15921f677b7145936e9bb8a164e7107c13338edca339506ce002763da1f325cde385a64c8bb878c2f81ba4c11fdb2cf8963219729f3ea748d96d8fe920e1e41e9df4b163c6b557b5b07e3fe62c5889c3f66b8037119593e6cc3f2d182965c3ec7e7e8b100b11849b470297c19b2d257aac585ec3df9617be72219014723efadced1c1a5e30ab8bb0ca2c77b732f6f0c3ded4bbb3193ab329f887f8a8ad18104ae97e765f51b5f2a05374d8aedfbe272812ce67ee9b41530cdb34d6906b5ca493b7dcf88c97f95cb732a178b56d7f4dcca1d98ea8faa727e083c624141ab1b3c171da4a8283febfb5d8a49342d9445f93d855875178d70bff1bd89d5d7993ecae6c1e4f6685c573fcf25e2c954468ce4585ae132416dfeada9c1ee480f1d4c645747b56cfe5f2687dd11cabb2702af2e05c2544264d1bf4cdc8eff513c9f837d87e2dfddca957f1490830eb2a68d6a8d601290178dde8ac219e45271794b986bd98e3cdb310e72501a00f51acaf1c72936e9126af82deaacbefc0eab4f50cc39588c1cf789965923101251dd1a36c3b73c4a06e2bb2f4920e4ce43c90a90fa1201c6e9737ca9d9e3e00efceea044114d402bd0decc6ab66edb28128e029ffd8df39ff07837d3f96d4d09da1878a404222808ccee9d35cebafc434353d84ff07858619f64b9e5f5f06aa876d93f190ef9490cdc84ffb3567e74b8a430323039ce814924e143ffe1f97c4bf6d694245aa2628241c09a136b588d30f5f0e4d60df95480a5382e21fff147b2b8258611b48763f21d937d5911b98e4968369e5e498c691d9a91ff08c3169acdb7132bd4ccdf1ce2fef534ddf3120fefe367823822718e4526085c7336ccb307c4897a0dabc8b27ca34ade16996d00addba9d18954e4772a3d47a0834103d67d4062acbf54903f138a99fc1fa21ae98f921fd5bb0d418217e44fe9ce689369ae99e8b472732e64534d28c9d987c931d34ad14e74ccb1799c9a18f0cb6d1858b1ab47926c5f99a4e8cf1966258fa872e805c6a6ca9a870ecfc94922ae053d91efbda4fc6321fd6bf76eeb20839173285b5fe2d19adb999afe822e194187ca3d0260b7ae0197bfaf1f590901ec2b4860678d20666d2d0a9d59c1eb3945a85543247b6665e5900817a7c1d01ec08b68e1bf701b3b3942eeee72fda2f349826f87a88cfaf67a950e388bdf69c4869d13754d7318513ea2008ebb76ad4d658e679e0273adb3a2f6bfeb2415df124235550b59d612a17
+Shared Secret B: 02db2321f333baa0b781ebeed6540a07f85e6507bb66272d054895666fa0733a
+Shared Secret A: 02db2321f333baa0b781ebeed6540a07f85e6507bb66272d054895666fa0733a
+43d400f57480f348a570de1daac18411c2e594d65f1ebff11d10e24444d53fb6b412805d000e79dea097737846c1359642000bc6965a7f44760ad875a97fcd94153f93be5276acf97c765d635f516882a4109790a570a04568f06c839ef452b93a55b3c0116c6b9722daaa4798d0292bca740c82cbea95e1d5a0cfecd92ec1ec2b00c4ac50290c7da54bdce5a4399cb4d67e89f57eb845ccc78b08def237b42d07ce883b0ca51bdb9b3c9a0319574619825c8981448fef7beb39386c5848636a4556bae02991be09ebff5b5fc14e8cbbd7238d4fa384f37b0fa21f94c49b2576579e46a448801b342695972e36e82a0f00218587fde58918f7510dcdc88fc892e729e2a5cb8503fee2796a830a5dae1beb8d3883a2672c37997c0ebaf3a7c44f605b511b7dce22c338428a82b8da64ca6552689ac1335cd56c2d345311e1aae591ff5daabbd1380fd739d79fe3049c8ea9bd360c17289ecf23553645b6f7e401449a4f4506018c3b1a71684444745142b3bc25c6c3b2e5150f8f4f6d57b883e40f2f5e8a38766edb5758a25a5568da8964fd14132a48206a58c1259852158d9ff19b2d318bd7a316a3961b4aa37b093ed7be4b1179c7c248e7f640ea66d63e0b102a37216ed76d69ef6ba68557a8937aba1c64a9902d760fbbcf859725b56b185a9138bff1f0fe9f3c6d49879f50a2d6533c2b5bb92738628950e641dffc6b5bb5a6055f033e901565ee1c8b474c728bce7e13e88757eaa201946c32354e705ffd1f056e06796ed5882cab0efd31935efb1038baec80dbc3c0059521341323e2f43b02cec6a58863f8d0844a815312dae105fc75da4c7e12b8805638434a346a46c128bae76f46eed132bdf2a66e15cb0e6c9939f8bf3409b734c1a54c22f39c978def8fcced415a5a873ee62ded825c05a122369228452b1a32137a3c054679ae13528b6a9522d3398bf35cabd933e555fa63502029fe6ab11100f8c6d8fd70708f34e84f017fceb8bd405dd727b462df71f8c9ff34befc0161cf8876528c0ef01be48e7d3463a8bf0db7b8b49717f38ebd11e1d73319d4fb7c22be254857b64b1872cccd36148f68469ed6e848ccf2d510de72a3cf691c4739c2a3ce182bca0e5f209233f6357d310cc4f53bbb06a505993ef815702c9042914b0626db9255a430802e3aff6b4df8cc977439c41f8832c23dcb6302f6ce0b19aa5e1a2856afa6670ee26b0570ed9a4f37fb48ee40fc885ec9657336c0067ff40ee42f6c57e939e846fa52fb3f178cd97ba21580dee0cb16c83ba489c47764456552b3b7a4e7990fa0f6cb76f7bbb61fd909c700d52b749b38b96f1e07d554a0c255ca752bd8e4366aac9e6a85a259e94d65a493f971d5de71b1563ef329b217404bd266a6a6a55124822d451bca87fc3983e7a12356f055ad7ce1e96f41863d32ae6a5193426c0a4e7044a3aab299573354b54d0bb26ae1297ff4365de18945a62cdecbf5f2fd2558be5dcf652b15002583da8261d8d39e32142406587f34cde1aa505b44fb30f40178c9a93969a173e1582f17838c3305375ce3fc386c2e01eee456409b790ae24b72b2df3113f1f6a7d6c34c27e68df1fdcc307416e6a7caf05cd5a86741167c7b384609ff1ff6532ef5d3b02f1a365c2aa81be8ec1f0fc6faa19a7532fd3d4e05f7f9b4cb60e3de875d2ec96f866f9d69ed57be49abddc2a3a97200bed79cab97535edddcfabcc67ecc968433397497d02a38c0c84effc0534feae0cbc985bb300ec736bd5c97c8374393c977b9bbc771b4b5fe7d8841883780b17f94eb942af3127be53fd5b58b1a0c54aedd51890c6434b3dc92f3e1db008dec15f0a77ea928bc9aea8f3aa30892110210d6ddeb43c1faeb8eb11b7727317e167fe66090ba89d5d337c0e9f83925ccc5cebca65c351764e92555379091cdafb17ec46cc4b17f94e9ab2e21322a94666e66d510b8c2e58d551ee18af0a2e857cf4cbbaadb1b8293b64c0942bba40d0feb77115dc01b083327034558bca3eb4e3dae7cbcd6171792b7b9f932e107046b4eb5440e2f02716e7898dce318735838a2352c19550f9eda5e42e1cfe06816225792ef3c2efd5a8966bf99254f169f76e9f50e29e72525ff44c3a175abb32a98d25005618af7cb3fc4de85eca7ea123240a44d32f103e4be6efc13ba08df4a54d806c406e48179ffd373f443ced450c37ed67d67
+Pseudorandom shared Secret A: f573f28e6e8b97482388593e071f0114e98b5b5f64ccb9c34b7ddad163595f0b
+877b57551f15b6dd837b74b2bc9eb79969695cca211b5ec0eaafe662c6d3c08c7092fb93d9e85c9a700aa5ab95c4cc7ff7142d85550cf6eda673ccd5b83e71c3
+Public Key: 2a9453fc7a0476fa8d562361590b6267608c0ada69b8060e95a0b52219bed08096d34734ecc9c3503c5895378329992c7498288f9463c59574f9aa4847c495bcdb8c86b778e6ba6991e22d1bc3a1cdd98a07c46160f614eb1943a87a06fd5447ee6aca6af27e3b0bb3f7278c863b0462b7b343e6acb8a76c1d11819ad25dffb5ba04127490557aff5c960c4c1cdae7984e800c2b3b0b918038e35176c040ae57337d1f186ea8a0bbff9c3d4502afaf076f9a92bf01f43809d6b897843e78059027f2bfd4ac2342356725078dceb2b71e6955aa2162e93a1fb949a0342b068bb99fe688763f77a332e9ab71ab57778001adea9c48ab47a93b9f0a8513093872e7d310cc5278f5e5902c61a4a658683ad8c9bd87c08c20163e003f4eb046bf7663f7105413a565694a522db72f6588b953470fc6c3c7bd5cc057e3b8a0647b4821a912778d095830fad87afe942ccd9411ad2937200957a907c225b934b7654890752c17b21f243329ff4bc2a0ba008012a20ab255d520c4193524f654c60f002d58a4812532164251ae8a733eaf162c21b13934986a5a898e229724e764666427665abb3471123fd7f1c4857a9e2d944b6b18ca3629ca18380eeba9cd2a93a41d1569b04aa84f12c612393703f121ace2ca578691f86c3f06732bd39c563cb57160fb04df76608af97998a9c8d8891c4af06e5887044c89cdcfa6476cb656a3d8cac590719aa9586faa6a4707cb6f35a4b5c672cd903267928d559115a1e500a712af77b7bfdd212fa5fa967db8b71f118359a41d43728f5c542fcad89189a2695a649b9bb417f84cb1ccb57e627772d0e11d90616914d3081fab1ae6865dbda0b9a286aa60d7812e97c559503589f7a3f6a0129d26393b2104d22a721e3554f7d13c66d25497605df3b9891d621670282ef4a298bce833bdb7882cbbcc93c14837faae249082a504547205853f564fc6022c4da92b9010b27a359b284742bcc997ef05989cbb457169b0e460be48eb837b2cc6c0774d7c90259d514328dc56306a08125360c1d9238a509284d2c09fba1a30f20d6d79594801c2e5933c7fa2a27c37c429e591e4d89263957498d00bdcf61dff995e7a3115851a62dc757e20f6560371c70fb7564357846b40c4f2ccb1d1f68bd6047d8ff47f3fc96d4b9b3e7cd7c5c21a178353c48ff845a8b32491f11b55359053fc42efab7eb23295d59ca028436a4e8049a59ac6e410b80503ac91e1c4f8526c752910de0294f4e34e0b1c4d58db0abc95cfb2219bcafc04910ca479dc221a294b6bf5b3496ab1b058a5e05768423942c4f34960f909f4e69ae34a1165f95ffec1043b716d1adb3845140802b56d86e807cd5666e7b344b1d77c49137cd4bc36ce560d8e7118a6e83fa7b78621814b0416ba3995001ae3181f833f6aea8cfef2058157b3113cc159682ad06797dc447334070e2dba30ef031a6f3215b18874b0e2bf6045155e0cb908362d3d05ab549a63dc195602654211f47be0f6b228f3249d6c2fcf1b9255a2a4f42cc5af2ac327d69caba49c5029bf58ea3b2fcaaed0050553f944ff7b7e7bd8b5d4a3478f2c32eaca159f29878461c08964890e2c8e79b7a57efa0b36e676577278df4c30e49705ad13a2a417771e70b5a53b70a65222c4b3c43d8ccdfdc6119e906f6086c4d133840a35849d64141182c91f632d5f1634f5a03f0471b79e6695bdb47a622babd7c13314c206546b5283d40af41095d0c8a47f97141505401fb426e2abc348b13df8ba5a12cb2c4be7825f101a336976c445342c043d783088608988ef789acd9952634c819abb4dab26bc3bb1c4553a4bf5eb8983881499828251b925c33382e23a1546f77921da060058b7fa727585d67773238638b89730dc1519fc0b55945fd2f84cc2a311b3a5519d2a9e50cb61bb759604228f426547e6d095e0b77131eb319fca0c5b1a353e977fd2a8b04ff458f2d4c35cb54dfac822e9c3c168e5646ec3bedf303a73fc2df372ad3c98485f2966924311c0cc4ac4186bfea320ea04881b042920954858b6c93300ba4f3888ee0a6de4a82fe06210c91105e9a3074da99fa453b8713452eceb5004bc3fecd171fb298c3cecc7a7672bf2a21a07181a9921b15a77195b99b5b9d2487a78c6a14acaeabc4689860135f0af545326e8472c193b34e6d719a681e09431eeb3c917468d4568d221e3be1276f4
+Secret Key: 2e246f79859fdb598986f50036d2a7014725c54ac858875749654371065c2b88b12cc9162ff7a6c08b439ac4901eb30505d54f0a41484d52b80bcb7f027381cd28272f70ab8df7cdd380ceb15222bbd887952716c83a5fdc470316d430dcd0328261c10ce91375074dc7b8933069b893ebc80772b6c60448d8b378701ab075b34a302b7fade463b25391d5e59acae3554504893bb226aac4701c537fc55454a5636663696c672538b945b8b17934c0445dca267a5a2b67e9953c3fd015d756c4ff4304fdbcae39a41cc56236f90057997431baa454f6092c41fa6f76a17c70270cbbf5129ba02c1d77bbc84a4f0d8443b2c3bb472735fce1ab8de3586dd8c025d04c940a4cd51b5c1421064402b4783c9b110ba4b3e358eed39d4bf48990b36bc5c3006f5b9557037bcf939835532c962972f778c37cb373fdc4509f009b22f035a7943b81cb861af0790bf5b8fce60c9fe8b974932be513b2db9781a9ac4c3c688702b21a8a335dd6a64ae1260e7ddb75f783376445a06bd66366034c75a37be49c309f09948819146204920b6c35517376414aa98e30a36fa6beb5a3c4262c2fc3fab5aeb8a85595ca39acc6b1da52912853d8374a74c7131e7a66bcd94d83744cfee195929b58456503b4a23acb010d93596123c4cabef27d8380cc53f56ef4b67be1f2c5aa1c95c15b867661a9b52a11ca7324dae7c77f4c953c4b79c7f48b942a70076acc66a9168041c5cdf72a0a240c8cdb917173ac99a309c0c23c83f45786975f074bc631dbca42a359c30808bfa1c5e3585e4a72106bd706bee75356696a44c35858b1239c7621cb2729e00785ebc7b33b90724a06c6a73948179135aaa277d3c360c30a454e3b62fba450acf558fe466f00246ae453c8783879f3516bbdd34b4dc969613ca0a74bba4bb90f32b3ad75eca43128b351e3a97f26312bac89819752ca1aa4124c526fd486c58bb0000a0c93895fa244b2876b054c86215a155e54995c0072c98ddc535da1ab47f645d1719dbe09b223a220bd58b013410c4d327a6919b2dcf059fe11b7a7707d944649f1617e1141089cb8c2c2550eebd88c6d85cdabe4b27c39b23da1346cd63ff52292525197dffc836ac97f419093c66670accc7a1cf65be195541d09cbd00463e7eccaaddcc393b87d6fa6225db03f2d0cb6490a90febc2132f4750e556ced352b5e74782aa2ab4c504350d1b3f6b0956f6a5fa9c10d02e13e6112903ed278b88a5988ea4201e582066816ad30554f896bc2d59349a37da6a64839ba30da970ee21a0f345b34e10066dd6804ffe4a518d877226b8c4121078623247220a7794b8f4f0b0399b95792a76e82108665057e381b332de573ee96428da1863fb1891d968770dcb2a75a65c3cb5e3b1ca18491621f1bcb78406496212c38c43aaae29cdd8b1c04fa6b04f971df700ddb65a63a9751abeacbd0402746a093dd7010771b3b3c2158a0252783e77dbc858f1a8a05411413bd953121624acf429850b9bf6783bde9115339022fd7537b0a9c72281c78aa1bab6e826ea1c9cc7fec7cabe8c9d7a30eff92cfdb932fd32a55db7a958174c95df1645e2256df377da630625f9475fd871d28e8c7f8d1878495ca5608b6aa639a9ab273b3b890561b0cdac731e3cbce5935a31245bfaa7179cb3554294060c5e18620500922003591f418747317243855c9e33e4ce94489b65a51ac3c9b91b614b422ab438284a1631e473eb65a098b9097e73635c09b12a0abc7d6d82ccad7cada7a8b6f7851547b74b9e44b57c9ad5b107a1078b13e240c8b4125fa366a036094a3037fd343489a65867c502ee8f029a3d5675c09081a879e71b78809a20f77fc67ae46ab479a28f1c32c831c3ebe975d8885026d4332f7793b0d6c0040093fb8f212909b3a7e04ceaabb498794a7c83a5d221c8f38486b24ec78f4f5aca3e28cffea2eae066a132cb39a38974b5b3a83b6a2d68638a95a8137b85d8943931491b9f83c37bde147244784ea91427afb98a8cb8f5a761b2b214f70e59236cb4c25245621f10c51d6b602633808dc045bb99bd7e058f3864c5936a32b1cb761ab8d7b052f8c8c590c9764374359047755ddcb0c43e71f4b838cabab3d3fb62aba512c0b289bdddc4ccb0236142676b634b618a71c77d5b0e72ab32a9453fc7a0476fa8d562361590b6267608c0ada69b8060e95a0b52219bed08096d34734ecc9c3503c5895378329992c7498288f9463c59574f9aa4847c495bcdb8c86b778e6ba6991e22d1bc3a1cdd98a07c46160f614eb1943a87a06fd5447ee6aca6af27e3b0bb3f7278c863b0462b7b343e6acb8a76c1d11819ad25dffb5ba04127490557aff5c960c4c1cdae7984e800c2b3b0b918038e35176c040ae57337d1f186ea8a0bbff9c3d4502afaf076f9a92bf01f43809d6b897843e78059027f2bfd4ac2342356725078dceb2b71e6955aa2162e93a1fb949a0342b068bb99fe688763f77a332e9ab71ab57778001adea9c48ab47a93b9f0a8513093872e7d310cc5278f5e5902c61a4a658683ad8c9bd87c08c20163e003f4eb046bf7663f7105413a565694a522db72f6588b953470fc6c3c7bd5cc057e3b8a0647b4821a912778d095830fad87afe942ccd9411ad2937200957a907c225b934b7654890752c17b21f243329ff4bc2a0ba008012a20ab255d520c4193524f654c60f002d58a4812532164251ae8a733eaf162c21b13934986a5a898e229724e764666427665abb3471123fd7f1c4857a9e2d944b6b18ca3629ca18380eeba9cd2a93a41d1569b04aa84f12c612393703f121ace2ca578691f86c3f06732bd39c563cb57160fb04df76608af97998a9c8d8891c4af06e5887044c89cdcfa6476cb656a3d8cac590719aa9586faa6a4707cb6f35a4b5c672cd903267928d559115a1e500a712af77b7bfdd212fa5fa967db8b71f118359a41d43728f5c542fcad89189a2695a649b9bb417f84cb1ccb57e627772d0e11d90616914d3081fab1ae6865dbda0b9a286aa60d7812e97c559503589f7a3f6a0129d26393b2104d22a721e3554f7d13c66d25497605df3b9891d621670282ef4a298bce833bdb7882cbbcc93c14837faae249082a504547205853f564fc6022c4da92b9010b27a359b284742bcc997ef05989cbb457169b0e460be48eb837b2cc6c0774d7c90259d514328dc56306a08125360c1d9238a509284d2c09fba1a30f20d6d79594801c2e5933c7fa2a27c37c429e591e4d89263957498d00bdcf61dff995e7a3115851a62dc757e20f6560371c70fb7564357846b40c4f2ccb1d1f68bd6047d8ff47f3fc96d4b9b3e7cd7c5c21a178353c48ff845a8b32491f11b55359053fc42efab7eb23295d59ca028436a4e8049a59ac6e410b80503ac91e1c4f8526c752910de0294f4e34e0b1c4d58db0abc95cfb2219bcafc04910ca479dc221a294b6bf5b3496ab1b058a5e05768423942c4f34960f909f4e69ae34a1165f95ffec1043b716d1adb3845140802b56d86e807cd5666e7b344b1d77c49137cd4bc36ce560d8e7118a6e83fa7b78621814b0416ba3995001ae3181f833f6aea8cfef2058157b3113cc159682ad06797dc447334070e2dba30ef031a6f3215b18874b0e2bf6045155e0cb908362d3d05ab549a63dc195602654211f47be0f6b228f3249d6c2fcf1b9255a2a4f42cc5af2ac327d69caba49c5029bf58ea3b2fcaaed0050553f944ff7b7e7bd8b5d4a3478f2c32eaca159f29878461c08964890e2c8e79b7a57efa0b36e676577278df4c30e49705ad13a2a417771e70b5a53b70a65222c4b3c43d8ccdfdc6119e906f6086c4d133840a35849d64141182c91f632d5f1634f5a03f0471b79e6695bdb47a622babd7c13314c206546b5283d40af41095d0c8a47f97141505401fb426e2abc348b13df8ba5a12cb2c4be7825f101a336976c445342c043d783088608988ef789acd9952634c819abb4dab26bc3bb1c4553a4bf5eb8983881499828251b925c33382e23a1546f77921da060058b7fa727585d67773238638b89730dc1519fc0b55945fd2f84cc2a311b3a5519d2a9e50cb61bb759604228f426547e6d095e0b77131eb319fca0c5b1a353e977fd2a8b04ff458f2d4c35cb54dfac822e9c3c168e5646ec3bedf303a73fc2df372ad3c98485f2966924311c0cc4ac4186bfea320ea04881b042920954858b6c93300ba4f3888ee0a6de4a82fe06210c91105e9a3074da99fa453b8713452eceb5004bc3fecd171fb298c3cecc7a7672bf2a21a07181a9921b15a77195b99b5b9d2487a78c6a14acaeabc4689860135f0af545326e8472c193b34e6d719a681e09431eeb3c917468d4568d221e3be1276f491ec501644719f5ce54412297a2f5c5c96e3c41e9a206ef1e5e084322fecf0807092fb93d9e85c9a700aa5ab95c4cc7ff7142d85550cf6eda673ccd5b83e71c3
+b5117b9c231b378fae86a1cb83cf4e40d28dfad851442c22a949dd34c5ea9690
+Ciphertext: f32b3b7a980f9369aec5016723b1f2d125ae331f4a79d879f76a29bff3492f8dc5fbf9b632daa955e083dda1a457fbb58d4952b0e960cdf42aefcb6e43e293f1d87a3adc3e794ffd0e4dc0565647a17b34b37316f9cdaaa9f7f9cf5202386c2a6801f28d6c6971714a837d22ec4bbc9e9ec801977280dba9413eb342fd10d31c96b48c12909e85bd55ef5d0f87c7100a66ce61ea829a1b81cdfc634663359735c050b891dae33225a690375d36e80d28c4b93f8d78a109b1a3e59bc589d9e96487db8cac41bbb790574c728b4ed81c4970867ef97b827949fea014f9192dcf4f4f257561889cbabd7dc07257de77d2e26828b3b694132b501249c458879f8a1b70110a7465bca61272c12e91ec6c780a6d1d3ead873627caa4bcfde75d218d01517e4d8bee628edba064869e54fc0f3d2ccbe1566d3c76f1000cb84ddd548a27fb691afa35b5e688cf54d7ee2d9ab4ec25dfd0250deef5924bf32027cdc61c59cc54dc834fd3da1ba5fd6da9259801aed25bee0fea70f061d015302439a634c5a89ead4fd10538ac44f408470ce6fedf087d591c05f5da7e6dc0c51617057e55997b9c1bed47659fd8772394ee0d03ab407ad3aab19955f72279a6ff33ace84c96ccb85d402b3e43da3d5c15353a5759bc1f94c614602fc402ffff71c2c92794bea5a5a631c8783a8ada391c0b36c718bbc81457fada7ae8297594d759029a579d403dac04129a30681dcc25ca5e7d071374a734ee8edb7931d5c90aaaaa069db38383e7eaa4d1e539b4715e52d68a946ad568ce8a220c48647d4fbc9b25866ef4f4d538b2d6c28b8cea28151f74bd6f8f1ec50b8b93a3ae634abc1b9541152760d36ce8d9e76005e8d7c393c98b58e7fe6bc486756e7ba0660c0e2f867c45911ac3b30a4ab7a793c0161773c8edcf6a68c6bd6e90c9c582e1e9ce920ec48603a6b75f3b6fea8b8e28af99705aea1635bc3c57f44f149b31f454beff86507fe7aa37c12d955a49147c1b55931ddf93fec3221e7ceaa52690ff2e6a302dbc81a339dfa7554c6755431b99d9d473fe865284230c9eb875d554b7b331b8e482597f7dfc8dca5180a9be3f33b831f472bbbb513e5b981ffeaf976d55b636a27f281f0fd090a62d6340b77d2dad8ece2ea40aaae472ebeef8d3e5394797f425f0ec8f983e346174e194ff213e7b73808fa28f36835f306486397bcea80ad4994038486633be48a36f6e4c03be4e58eff683365c0a47918015dc7c209041090ef9c9a1fc23b57c1d7f3f07a3eb0a294068ee5a3f0f9e6534caf19f8a38900335262d33825dc238eb9fe3c54671a71507536e4f0b08afd307b5c5435bcaa4c49b3b1e06b939d0d95ee3385ada1333ce5669df45db1011b5aba3c3e1acfff14135cc079b57448744a618308039bd80201c56a0813048ca065997cfc63979115d5322baaabdf5da191975533e02ca016f65c55f09605ae3c4e43315712cae66f0b81a65ca5431eea04bd7d6cc3c394bf4c0cc498ce661b6a71f32623635f684589eab5c1f7ba82b526da1b292b3fcac711c6ef2d5fe9651ff432aa5f28566f971052c16c9e181349771e982720455f0c788eef57da393ae36c7f90ec1716e5ca5226e772144a74532887c2bd1168143d0fdb75d39f3023c196c6ccf3b31c96c3e9cd22aba7a12627819a88e1d30e7f715e3edf4b1451692bc7e6ef432b462f9b081301b58cb70602af969a6523028702e16e3c256569ae5c2cb6f0223f7f636c3ca6e32a4f151d45aba632c4151f60f6651a3c79fdf50900913ecae25502685d17456c2557ee48073fbde54c1732f1d7063542e3044547cd73119be8e9676b451036dcf34ba362d96f01c4c8289dccf79c201dcabcb881f6d8d84eebbee0da91cb8edd510d814c9ab13b3a533635f1e7c5f2fb358a278701fb5191504eb429e2e15ed68ce131c3c958b28ee146f924e25912d98c3cbbbd952c2228f487774a590bf3433188ace429c2af2497feeebe93d0e70475a8989613927258b0e8713b5841db9b5d8e8f4ce352b6fb1007a0311ec7e5efb7e94a60c53af75c44d5218dc2203383eb02a8d7116b7a193c41c4a0d6cdf27fc1bcf2c9840b9429339e814a7c03e13826130877e470ad27536add8b6da3884d75443da3c70cbc62d36b3e7054b138dfe6422043a21e27f5f871c58bbcc3aab5c1d84d27d79aa62c52c1d5de49eedb2445d
+Shared Secret B: 514396cf35dbdc8f8e91c4205f982a449520b5a53d20d3c45cb0141cfba5f44f
+Shared Secret A: 514396cf35dbdc8f8e91c4205f982a449520b5a53d20d3c45cb0141cfba5f44f
+b0ed581bcc95569e875c388b56f864391a96e7001efe0736212ef96d86f8eb5f90373fbefa238208fd3dbb6981ca0c3aee12aff22318a9577f6053ff9426b536e9673a0a40409e6a5cba40dc30735d2400dc2f3c58263c6a9bf4ee2c3db4307b482fa4ec868919b8f802b4719b7ada4caf1d2964d5fc8507812af3ff09e5d91fe8556830e930b9f06f6ecf1cfbd99c6ce914f4a9c70174896811986a82be69eee7a4adee9e1d6dd8d88b92a281ffed5f4d86fe3604b171b5fe1d06712cdb545f49ada521e1b205b56b21779d48ede1edccda65d5b773912e0f7728242be865285415fb73a0ea9b3605edead60d7916376fd3a8052c9bfacc9c407c24a8f08a8099cb15130c61959e59f2b82b30402a98482eb376f79c3ac582230d3c9028315366a78def77c34d50875f18b16a2e484c60a46df9952166516249dd568426363301cb9bc20cc7957977482e4ef2d763c3faa196c069b617ba65ddd4d99d1eb2676ecf50365d47a1724f37ebd7dda33661875c7c30d3d3fa4a563d2145e33fe7a0562738d7e8a6820aee7f6793d50d82659ddd854d4dc603fb2ff85d428d395865df9e3912bca42ddf242b033d9c40f13ecd3f3db83dfbb7ddb5d368293647970f3647eedb89322719b394e0bd72c7f7b602966301bd1b75a0e8dd70feeafe513e2047c778d0827523a59d94a8173b41e647772b0b7a3bfcfbc94043b2c3fb48c52113095dc92db431bcc8f54fa451b3d090acee82115901617ffdbb8869e2dd52296e7eb57aba2495c5aaf428ad5588abc2f45663ad570b59ffb8401e7c3f04af8bda68925d0d8ab7435123bcded223df3da8e41fa156b6de0344526688633a72559df94171d269a4e78200f2fe646c7f217b2a2e12746c270a9a26d2a7f220c0310bfa5f60ea8ea023c7542bb3143534a2814a123b290080d2caae6231ff1c6d936dbcbe2fabf0c17a0ee3a79fcb41f55bd839400ee2f6e067120ab95d53b33d33e454303b09318588f857d4caa4941bbe2bf9e63f55d81764e3b4fb8fc8d5e81272d2861810e355781a05bb803ff1b8788325efa2daa7b44d7b648a2fefe278416dc9b947d844afebb20b17fc9b08b4caa42e9479e3c633a60a522b4f1b6b1cea0f51ac306cb3734e42e2a67eaf48e765194af5e894b136550d08d6d709f9ea3739e1383f031ce32de6f6ce8c9d895f380c9cac8237fa74c4738cae1914a3c5399fb84d00b6ea70d6aae95e722e4b8ccca06fb97d1eb5c626904b3a2de26f137b1b988aaa31856a09d217087fcf6441365f1997b7230168553779885f35a5754312c644d882c2dd76b3df48f577f33f587286f552549f97b613ebda8607f1f42eb1b8f733ea760656d9a2b1c57a3173b0454ed32c3d3c97201ef41d56605f316b45d095618d20607319c30b5e729b5c183ec17f94e3e5e02c2b1aff24cc7d0de43b444e083e2294da1a493d92165e8551c923011893f1b8edb38331375638c968716f20a6b880af97e15975ef628ab09263511e0746612af250e121b612b96bf0f5ff0340e95a58ec49cb96b7e179138650336414c566c8373d889d939d5d84ad73aefab79b1556678c4b9364fdc2a904c3997f8a452b6c2f5b47022c333c8a3c5a91a53e024858ebcdb8f53d15ae4d8d73854cff00f433b72ad9fe3cd86bd740b389d3480b125bdffc5eefc62aba2bec27371b623e8367ba971c0778d639829ef79c8cc811fae67d8923e949fbc41a9db2028ffc69743be6d4e38068866e5b7b29d82257adad2e0faf266260f8a1df500c1cf02a964d52be5aa4b9d1bc1540332f79524bd7ef85dd3b89df615a14622a9f99349d6f2b754c58b314d111faead81bd34613e9878d03284f9468677d3149771475a376c9c1fc82521a42f6f29606fa13fd437cfa8f5602f9cf62ea21d153f2302d9938343a5592bb4b176c8075a90abcb2513731e59b9a56649ff5197d27fdc566cea581ebd04c316c9b7a964b5070a2a818454981fd6cb797e3df75dddfbc78748d27de926971283ae55814a04f3fcead4c3dcfa7d28eb26c6ca84052089851635a9621db9c67aed375da1230fd561137d3647ebd872cdd3ebf23ea2759f1c98b6b81f97ec8d46ed31c92d0d38e9d362ec8fedf3b1fb1080365e92c7c0ad8de09a6c5d62f5c2b7683699d33a6a697f40e4b4ae4c5e4ff9303ebc9af8c3b42dc3171edce09bc101342a5a56ca0
+Pseudorandom shared Secret A: b2acf2ecdb34ab50ccbf589c269c308d2ff7f6a6a8dce57ff69495cc3be85008
+7c743d7976117640b44f52ff5d496987a42feb97c500110c05a093ffbed1dd8977a958c6b7bf79cca8da975fc09b3f3bb1590557bb87d98e2e178ad8932c89ab
+Public Key: e0ac7e4df5acc29433e191031905483f93b9cacb4a7b378ff61832ece60e3db901c190294e0332b5c0bafa293dd356233e6b388ab70e4c1cbe99639afd633b7f2b251edc61b51b789ef3957c3125c6e3239b75bd4fb63680f556d0eccf47917e6be21ff4dc5655e112c70321a461a5b7f75647d39999601065895a4f671c9871391ba43499599d8623bea025480ad20151a417b18362f0ab0ae24ab3dc761c54c48c58a6a022213ba2996725e816b87a8341c7c847808650f6269f228aecacc8dca5b9d01a3f99a449668461264c50b3440161958a781198a381cad1018009e2b38196609aec1dbddbcdbb7b312c6c8aeea7a32e5459e5cc4c24116af0174cef84cc00d5a59068c5e7da45905bb88c706600bc78bb5bbfd5183677035fbf21655db94fdeac9e5a6cb92e9a1ab5d420898583029626567033e7f1002fc16291f88587f05137791b75f44e0a9315af612821956011a94c2ac03a82102cf93b0b39210e5733819cc871ba884f7d97af8ae7b318abcb330a4bfea832462b244e61a1b7394223a1aacea89e307a919bb263ade47c0f35aad36b0dbc0757b147a09015761011a3948547817393ddf9a3e4b11b19a40722641274013cd7fb6aa4249b436ba4cd70657e6877f9501383a1cb6ba7c988441a26b87b2f5b741d20c2494b95531b8bb27b797abb81a2fb9ea48a7f10d2cd3e56679cb61dec5247403655a4156bfc78b1710542cfd939736285e04a55544165cd728f7d8373680116e707a7ee73440dc410730c0f336c566cac2fa30100337cb8e163cbf3643a39bbb3baf64d638c8287327be48a036da73081db077f113cce48197822caf528b24fe69cac8299e43335a0d4a40945aa6a4ba1ba697095d56e3b7a1a65ea6d0ee3a063c031cbe89c6ddba741276cd1f8124495cf70c35186278288e27e15939298a497763a67ec95bab3dc7789a4a268162460d0c745757c6d72082bc1cf18280caa6c89bc61162f70b0b15c6c22f3b26810065e3269e3dac957107821260895ab31000a5cd50a06c378329189c3831c4613e18111d4a7e417542c838fc59190e0b902e19aab1f293061c8ce75a3889c65a122216142ac0dd770572a51bc76346f71d863e28b8e3ea8995256282c8c7498db77758c92ed5ba901f2ae0e32900c7b1553093ecc2b8d4d217046a67d61e528ee864991968e6eab30913b76c7b43fee752e92cb9a88045fa2769d56acab3f894347703f34e9682fbc2cc124246236a6a2ec971027a5d07616be6c2cfd1c6c50755f19aca6b0457da178b5cab71a8ee7b7264a7442e49669a029d51b3d68c1c5d4e0b493704e6a23a4356476eb636278550323a3c294525fc1e044d1b192ddd9ce8bc3c976550b3c612056507999630f472a05e0c8677297021f05267145abb0c426882785df60b9ea886b905ab737f6190a328d961c2fc640919787267ca1575467856b99508b080a881b3364123e675cc6b0a25dcdc394973ac6dad78364a7be4e378f925095db868a3946826aca4334914865286fb9585b2461096eb881358261a8d912f56a2e00323831e1845a8c0e12446947a6b1f70179182c6f91d140b1d9aad0c0c4377cacf1267f3c4b888eca8b4d71423470673266091c3cc2f2d1a36759c0ee5a3dedc1944dd40935eb9331445523ba354bf1884c792a2ce588aff9b913c87838ec11fd1802302a66ad22bd5b009693dc557b85a16f23a222b684649319a53c2f54e8a1bb429824e0ce166c9717ac260d4a1b06b0469f72cca81c61904217692714b0778f2a0487183b9f077b17834520e8a3ca9cf3af0a780075d75e09180367a571b84a4a4cb936bf84cf6ee900fa9a69d57387799815abb631a104395d9c5e5fd014c1a4750e99862f227acf7a98797688dc400287125982f04103c6b1a783cecf777d426b3aed0b890ed76882837ead18c900aa7c2c5c61b9cc01df5a8ba6007f5427aad2809e967110a98b21bbeabfabcaa40b9127c8bc20fc112d77cb2981b3752fa85cbdb89f6ca8b2d70376952b5e29900841134d2a75b90b281ec4969de7223862cc85bfb4b26be5995bfba5a7627085d4488a35ce2b9abfbd2666bf2884d0682808192bc945c03ce315a4705da8ab19eeb64b0ef28f5cc2be22d87b5b1acd21629ab9a73a22b8bc98e93b865f8f744e2f24af76e435a90158cec2c7a489ef09f0299cb5d201846940d401
+Secret Key: 7b0678c7bc2eec316a499623b6ec8baf1cc4dd584c32ac6892d1a4b5308100e258c880a896eab55a460c3c83a5e912784a444688fc5b313a645466a26dcba4fb382fcf5a0e7aba01c916a08c33cf5a071b588932e1d4435cf5cb67f2a96ff4474c6c7ea1b5888c2c9677596c39f43cdcc52d95aa55a7502020e31d9a9a6bc3b56ccf40939348013f0a148b393b7daa24c78b2f45eb250e9c6cad819b8b614d4240a29903bbee552f1660171a28a573dc473d984f3adccb3c6a57eaf96b70643b2f92c279b2124b9880587a0ac767b3d14610c08c279f23c682f85cf84ba99fac305f0978d3eb8302238de362251fa78394166ef934718dccc3a5dc8c9c8715faa4a18d4aa89cd18e0beb551e519be408b29e0173258449cd7c70a85973dee11b349348e308b90e199b9fb51ed3d484b94c8933915e44944db071130ffb791946450e2612c121c3fa61c9a11a06eee4a5e3244f81382b057870757c23b36a2e1e812e2ef02fe704a05e9c3ffb39363413b366968fa5f561b0d95ecd58a1607792093437aec9a06d414dddd2294c214873e189313725dd5516f041bee753988eaa9060960e4ee142039857b5777b07a4391c58b48d2c949d3b5fe8c5733f074516d58bd5b5005d57a4c47ba20a633424f32170cc026cf109c4118c30c8b2f7630df1c2587f84a5b8869620263cfaf4062ccb4d5a38ce9249618cf6bc1e571f72c61427dc5031f343b38270a41474877ab324b6c032049511d95639f4a0bdf314e987a8ee31c8985709e2e7077a7839a5a4077cc76f07898c0e1030111c55f50058a4a961a236860f9258d3b608d353c292e8c978c05b9b4109e9819aebe7a04ec9999a11bd73f9a7ad46b263f464db03630a7349d5f7749d57344297ceb2064abc537305c26d16e6583046b0c748b3ac9a27fe9205196304b631495f6a7ed79b6ba3936425bccfb7d9620a74c4ee6b4e881a1749d06c1e330c560b9c76025408a47384768ba50194eb3b173b302225846f9d0c419d78014e72845dbc2e99b0c048121ea2d96fae093231442e8c24397f1bbb8f477e81a93b76e3cd0cf1c8e5e712b192b850b20ab8c84f24a7053597afb8d34945b90a92e11688e36c7230cec4d06c529a9aedf8b2e88653b413163204051f02640036baa2c654b0b0b4f49a0e92c0bd42d3c56b822150b1bb0e370f15062ac7a520875468e2544aafdc18e1143df0ab5392176c9bdc31471524a4ab3d26c2c5d25438f75cb3c222b7c1d26e103a92ac2236e9630d7d802ce08c33ecc50a66d173574ccf70243f02f1078473b26ad770dd8794da637d014594a27c4e67cb870039cb36279099812afeb4cc65f11f03147063035f910b8a430583ee239867949593c6746d7c5565b11941b82b1dc387efa87826184e01066fa7240d96905f98f455d6a67b8d30651a550198fb748b093e472532ff180b85a9315579cb8aa7080f9055a08a3d777b95f3b6c0218787612133a22b7f2802bea16060bc226a0f7c9cc8880340f0ab8af0b80740386d70c7e286108ef3c94d711844990359b94fa0e39ac6b60b5974c2dee44b51810d6f81485cf688fa4b7144383238407890b34ad2e209c6b5b4428945c841b064191eef845258da7ab8458d4ac1a3f488bc5d35965c0078341273f2c93ddc0132f2c92e5703d012534bfe670deeacc85cf402bbe5650ea20a8d0681794789f8528117ec4f6322a72e4a59487098764b88dd887ec1127c90124e2c181034e44100ac7c8a7c8e765a198db50ab833558a827ce12bc37400825abb32777b25cd2749854591c9196286774cd63574d0d670d3e269a9e42cc32c62e65c4028541248a9a9f1b50268a47ce6638725b1333accc0b106adc849acae974277d059cbd334b20739b3a6bf4cd467ca208db29c56f9877e02368fea19b03eac4bbf244e0a18bbb4983359c0316bc81cb2580c6ba37e088ccf58b559589ca81307afeecc0e1b1c4c3a038d7d73341bf247719ac5f2e999ef5b278333a596373ff8e8564b6715a39845a5a08b55865842bcb86878a93c517045020e803125cee494050456fcba6d6e8040d75365ae67102822cc3f39c92bd7b1333721fd1cb705295fda88625f0818fac68ee3a9cf0a254a6ac77c2f9570b3c48f3927a04a06cb5388656646b519b3ace0ac7e4df5acc29433e191031905483f93b9cacb4a7b378ff61832ece60e3db901c190294e0332b5c0bafa293dd356233e6b388ab70e4c1cbe99639afd633b7f2b251edc61b51b789ef3957c3125c6e3239b75bd4fb63680f556d0eccf47917e6be21ff4dc5655e112c70321a461a5b7f75647d39999601065895a4f671c9871391ba43499599d8623bea025480ad20151a417b18362f0ab0ae24ab3dc761c54c48c58a6a022213ba2996725e816b87a8341c7c847808650f6269f228aecacc8dca5b9d01a3f99a449668461264c50b3440161958a781198a381cad1018009e2b38196609aec1dbddbcdbb7b312c6c8aeea7a32e5459e5cc4c24116af0174cef84cc00d5a59068c5e7da45905bb88c706600bc78bb5bbfd5183677035fbf21655db94fdeac9e5a6cb92e9a1ab5d420898583029626567033e7f1002fc16291f88587f05137791b75f44e0a9315af612821956011a94c2ac03a82102cf93b0b39210e5733819cc871ba884f7d97af8ae7b318abcb330a4bfea832462b244e61a1b7394223a1aacea89e307a919bb263ade47c0f35aad36b0dbc0757b147a09015761011a3948547817393ddf9a3e4b11b19a40722641274013cd7fb6aa4249b436ba4cd70657e6877f9501383a1cb6ba7c988441a26b87b2f5b741d20c2494b95531b8bb27b797abb81a2fb9ea48a7f10d2cd3e56679cb61dec5247403655a4156bfc78b1710542cfd939736285e04a55544165cd728f7d8373680116e707a7ee73440dc410730c0f336c566cac2fa30100337cb8e163cbf3643a39bbb3baf64d638c8287327be48a036da73081db077f113cce48197822caf528b24fe69cac8299e43335a0d4a40945aa6a4ba1ba697095d56e3b7a1a65ea6d0ee3a063c031cbe89c6ddba741276cd1f8124495cf70c35186278288e27e15939298a497763a67ec95bab3dc7789a4a268162460d0c745757c6d72082bc1cf18280caa6c89bc61162f70b0b15c6c22f3b26810065e3269e3dac957107821260895ab31000a5cd50a06c378329189c3831c4613e18111d4a7e417542c838fc59190e0b902e19aab1f293061c8ce75a3889c65a122216142ac0dd770572a51bc76346f71d863e28b8e3ea8995256282c8c7498db77758c92ed5ba901f2ae0e32900c7b1553093ecc2b8d4d217046a67d61e528ee864991968e6eab30913b76c7b43fee752e92cb9a88045fa2769d56acab3f894347703f34e9682fbc2cc124246236a6a2ec971027a5d07616be6c2cfd1c6c50755f19aca6b0457da178b5cab71a8ee7b7264a7442e49669a029d51b3d68c1c5d4e0b493704e6a23a4356476eb636278550323a3c294525fc1e044d1b192ddd9ce8bc3c976550b3c612056507999630f472a05e0c8677297021f05267145abb0c426882785df60b9ea886b905ab737f6190a328d961c2fc640919787267ca1575467856b99508b080a881b3364123e675cc6b0a25dcdc394973ac6dad78364a7be4e378f925095db868a3946826aca4334914865286fb9585b2461096eb881358261a8d912f56a2e00323831e1845a8c0e12446947a6b1f70179182c6f91d140b1d9aad0c0c4377cacf1267f3c4b888eca8b4d71423470673266091c3cc2f2d1a36759c0ee5a3dedc1944dd40935eb9331445523ba354bf1884c792a2ce588aff9b913c87838ec11fd1802302a66ad22bd5b009693dc557b85a16f23a222b684649319a53c2f54e8a1bb429824e0ce166c9717ac260d4a1b06b0469f72cca81c61904217692714b0778f2a0487183b9f077b17834520e8a3ca9cf3af0a780075d75e09180367a571b84a4a4cb936bf84cf6ee900fa9a69d57387799815abb631a104395d9c5e5fd014c1a4750e99862f227acf7a98797688dc400287125982f04103c6b1a783cecf777d426b3aed0b890ed76882837ead18c900aa7c2c5c61b9cc01df5a8ba6007f5427aad2809e967110a98b21bbeabfabcaa40b9127c8bc20fc112d77cb2981b3752fa85cbdb89f6ca8b2d70376952b5e29900841134d2a75b90b281ec4969de7223862cc85bfb4b26be5995bfba5a7627085d4488a35ce2b9abfbd2666bf2884d0682808192bc945c03ce315a4705da8ab19eeb64b0ef28f5cc2be22d87b5b1acd21629ab9a73a22b8bc98e93b865f8f744e2f24af76e435a90158cec2c7a489ef09f0299cb5d201846940d4016ab09686bc1cf694a162faee0e98def8674a383b0d92b30f5c743b99d24c3e6577a958c6b7bf79cca8da975fc09b3f3bb1590557bb87d98e2e178ad8932c89ab
+cc02789bbe019e6ad86ed6ddd0878a3a6d5e1f918e763eada8dc0d54c464c35d
+Ciphertext: 807fe8291d5e309e07c4d50ade3816d92e0dbe64de554a57f39856f9a1085465b8e86328216d0822e9fc9eca1a53cb11f05628e075330c8d42a654ade8602b16e8e6c47fccd28c6d6ab2435789855cf0c43bde6c436401a7e70face34882327c20c56da35d5cf101d5c3f07e6518cd2dd338b9cb67ce8f7653eacd93b2d0f8f761dfba5c0694d7d247e7459183345d92d4c0745b80393ff1453f21eec39becd95aaf4f0c22e3b1a5fe2b90cc7d0f33ad999f9803287b1adbb2cfce2e57a509a5c6b99e545563d2efd09780d69c1033675e05c92cd0fe7cfa109bce083a05dc70fcfd7f3fbfbcecb1c556328778eb63a0b995edf5fe01d10aed84ec88f4ba51532a923768c46e541e302cfa29c32d246f6b8d9e5c9fd7da4babc57f7ffc745fe8467d608b2cffac5a38e3951a266910e6418239d8414cd4a37e36ec499fc0d8d9dbd4309637fa633328abc517e24540c3056f5ec8c5ee0e70fc724c0d5571479ee9dd3559025c3d04cca245a11741cab671a1269c5a2ef4653d917eba00012a8325016c93be837e0a6a178a576ec9b5426825905369c3aeada17584b96231cbba3ba3b04d1383f1d5c4a99b3b576ce9160d2097266854cb5ad9981bff613f3c56c5d50979250ef1b34e5365cc7add6880a387f93d58559327e20705b410de74756e70a7dd703751eb6aa136f1995a89eb946a474962b427512197e8e98cf6aa04f268cfb9e2733663def76fa6085c38c545ea5f3395ccec192be8006c3765e37e04be340b00f4683ef710195ea26556cca6f1ee007f9575aa7efced0f3e95d72bd129b5653511b3202a32e3fd819a63260fbdd361f5ca40ce86353c28b40984963a0e591ec07ca98e634514da1033d29354e727118bb12d9b2780270f0dad8abdca4c5e52cd78b12529775cea9d6ec994d6fd2813ef17d89552d78e972982f77a1963ad134326897a544c4f016ff22f3e6d2175c9f4a66bcbdc0a897f027537d1453a7438907a3c39075283bddf1799e211ec82261a553b2d354dd1541b7fe253965cec51aa6a37968dbb8e060d9ad41ee893a0aa2900612ec030f8794b375e3c9fd1609c50247f0832962ccb14ec96e20a5f0fb84e6e9dbbae7477adb01269a1b3bbf3c91825d4c48245986372db614340bcbe96e6923eaa3e8e73faf4b8da08183408fde7394151fdf542f72e56520324cc1be12b3a8df56f5ce1ba63b22cbd851d8f94e2bba9b6d62ef2d3731760434e104bd40ea220c1f9dc9b2ec432acd6792221f28e47767701266d90fd0a2a2eeb090f722d2aa8fdb848a162a4f2a33146ab3ad2d4e10fe328a7eb01509d650188683e9f1495064c89f2bd298c5af0947092bedd3993bc8902eeaf89c24c7ae3f6f9fcfcc4529edd697fd1be3b1fa44f3712ed2c5af8c02403001a529b3c0fe8bcc5222b5f73632110a305da8e1daff77d5a481877b60bc712be1032bb394657ee359e0cb4b28eacfa8fbbf360cb5d4a9ee85b9ce3a1fd6349b2487f301e04dda890e4ed33d33ae0856b1b6000eae6cf3eb49087e3e7cf12323633dbd74976eb36f5fc44496c8681dc564e2c2120679cf2c5697b19c1cbeeb7e205570c85d46caaa8830ee342fb9b9ffff50538ee4dea5ef005568d2b758b1247ecd1fadafdec1921eae1c9b16b44f17ae594d61439d45c77c87350a6494e3bc580baea32ab49f7a128bc6f5c4b5301e1a58a2790eb740ab3c5c4d30e8ebd14dd0a1d330667d22c285157d5261c0b1a505862e8a65cae93beae410df60c59b5f437775b5ccdb6b26d9a2c2eefa5469284dea31a47191ff639602936958c402be3a02f43e605dd7de884f7b1b9b84d961672f4cc98354259cf937bf11ee177fa95fc18efe6b67d96289a48e6384f01166bc1632830c7c79664febf1f06086b363fbec6bade3449171ffc718ca9c16d89da1906e14caa419489531303d5b6f4f28f88a672f3e7d0b66e4a684f378bab1fd27bb018603ea03aeecfc16d46faee928c1a7f76c9103be33e856956d060dcffa76c346d5f29b02e9edb12f314cc29f6e0d2e09adcee932f4e358bcd6b27fe31ad4db11f0eb528415442a3e843f1462fbd3c12b567a0cc02867053a50523a59995e9ff7d5674cd4f440ded2c2d0fb7cb7a2ee75ba26659ea511f3144f0134bdacc1fc1a04328efb6af0dc6817bfe0550c75235238e4d396f65212b4229b0d7b55418ba7486c866
+Shared Secret B: b08027f1c0e99043efafb59bf4703e479a9dd2ee7aeb5fef064b354a7ba09586
+Shared Secret A: b08027f1c0e99043efafb59bf4703e479a9dd2ee7aeb5fef064b354a7ba09586
+9d9d51d840ed6f4fcdcf225b7d31920ef82024a9c626e37ba29f37965167dc14d6359c713561c48b7a89da58eebb4b6b7486070e1b3ea2c7f8079e59fda0671536731e3374e22c7b217e294b742a600f629579b7a3d198f6b666df7e41025bd88786d671ecdbacbda536d63351432e1d38b3e9696999af5b48d62ec4e089f233a522faa1b9207b60792a0fe3fcef3c3d0245ed3faf63d969dc6a0f34af0fb73256847ad5d71a5187610caca63372d031836e4353a847bcd2220f8d76fe58a55ec5cadd541fcd110d418d7c3d801f6985d844a8747131efb69d155738aa0556095ba0a9fcde59644557f970bec5198cb73a849cea950b8d2c9be4e14c1138533a51740e48baa8dc32250072dae4a9843e520ced119b6075571c4efe069a561066c8832f033a6a2ea86f7386dd90e8b995dcad7b16600a8e11044f5e6b0baff885ee6f2147490d95a0d8c4071e8445ad9246b5ac265b2766fe6f38942aac7d891d4f14072bec2d61b72db4cb692e6c85b446ab27815381924e88b309e9d40db170fc8def75aca5e15c5e7fc29dcf2566eeec7572f5418782087399676eeb761944816292a7ccdc726f8fefb39909c58f295eb83beb29b41dc7737ed89a59c1a4f7bafa01dce0334bad377c784f01e7f791fb1581f61c04c16aab83dc05c5fc901ea626ef4fbabea6a2104e11caf69b6737fd1e08181bbe418e5ff7e1e1c684f87175a46f5aed180e23fde025464c0fb95c427cf2efe555b4e1b69143c06a64416375ddf7463cc78966c89f084ad5b8ff1abeb378f91b55fed848401004ed27783b88a3205bd931dcf9871fe119a24cbc075628b5911620c0d19f6045f8b3c2ef502f5564c97fd21c942bb97798282a3c8b0648a3471dcc2aedf486825dc689dedccd413cddfa756ce837161049f22c11d0a20d6df69229b9a4d9d2c079b97d6bbf8700f1ead2afaa63e6eb3c357bbb27c0bf787d0ccaf9ca93353290b73aafbdd1374033e8451312a441e8600edbb8f7099b9e356290f2acf286888efee863d81c3d21c6febdfd52ec81005084e2a2cf92475e1bd079800e4c906d3e8190b477df66fac5e0bfbefee3e5f128d480b9c8c19c936a670f2ba2d1b1c9ed0ed573a581bb76f67f0cfe73fc9799573ca157158e1d1a44c9663cbf2abd78dc4297af82c736f1cc45d950013afda538f6544285615172dcf8079976252b6fdcdfeee33767b1650f9edc815473074c31b7632c490b5ff5c76867c1397c09b3ee8a21fe233a75ada2c209ca84dd1e7ac288e85cd6d16163d353e96bd717f90a0339a0cc4c50be795c9ea44284f51f55c55806c8b293cd807afbddd0c25709b326467b399b96bca9ece493c2dfcdd087cb3e366a3be7885a6fd0cbacd3b2724cf961dab1209149a702f82b81f313c7d8fe0523c4402a25f119459d4798343ceffe183e446b495ed0c89aee1656815f7496cc332fd21995f986c3b0e9a8ed406d94f657cecccc5ffe641a37e580f687b2fa99ac5fc41666cf01bb23ccb3c0514adf8f1921062e9987f010e5a5b02c327e7e15664258a49a7a4d59e1b31eeb5df9b8499a8ae612ee211cfd7ccd4cb662d3901308a8c2ad8c426b7bacc1db5e70700cde9bb195967a201ea4d02a59ea4368d84ceb5b5816f72c43be7d4c8c83f478ae0f6307b93e5c824639e368787568e94ff535a5896a1c187de3a622e221a29941b5c41993f9827ce60335aa7b967f71d97195c60529dc34f67b2afc2f183519d10387b5cc2940baeffa2532a0abaa16caf44d3c71f7316f1d3f37a4d10828f8d3fc8af0938e673063677cf45a156d41523b3ba461025360793d61bc50c8e3263489d829a118d57497e34ee27521de15c179d3c2ae13efb3744f93051dbfec1d19bf3e18da905f637eebb4a0e6568a7df436ab4faa7307827e4ba05ba8c406e093368dd93cc44d44014343a4fc19bc9adaacf8e262a9a7dfb0146652535c6fe51ce38612299d29b12004c76a41892644cd6e1a2277af50f1162420f873e93e7abf529e759b02f5cec0f3b381bccaa308ac91e64d17eaeadd0cab8af3dc84b0e5c74ce6af948ce341d17a2bf5a7039a6c1fa77ffae8e50508f3b675cc9eec2ed57db44ef6fa107a4130e6ab3a31be1c4bfa4ddcb63efd89c2d902043889e8372245849cae34c97c6ecb8f8fdd780053062a32d8734d8210f794a04ac50931fc72fe9bcbcbae45
+Pseudorandom shared Secret A: 8d409d42279547c5a60700a37a86e2f8085b652fa877104bde843d38cfe360ab
diff --git a/tests/mlkem-512_ref.inp b/tests/mlkem-512_ref.inp
new file mode 100644
index 00000000..57c35fb2
--- /dev/null
+++ b/tests/mlkem-512_ref.inp
@@ -0,0 +1,495 @@
+7f9c2ba4e88f827d616045507605853ed73b8093f6efbc88eb1a6eacfa66ef263cb1eea988004b93103cfb0aeefd2a686e01fa4a58e8a3639ca8a1e3f9ae57e2
+Public Key: 5ab0a7bfc623d42b0665542682a7b4a3b7a383775b3b64ccae4070e165059691b7c161acd0904dfec10c80caae89ab920b4540c72589bd4209199243fbf1a0f2e7a09dfcbf80d9aea3f29d163c6d802b853f0687e1d23222c5b31b743a92fa00c44b8dde44c1cd3067c70a4376863e241640d8a31bc67a5ff586acaed0b1c60944af002e36e4b38fd32301f0ae3ec5cc0cf1aceb48be90324dd7113d9e24640f1595a651b29212161f2c909d76bb4dd48e0495a08f989a3fb3a2a5f13051547ef4089a4ff46906928ee70c066c3c382f174fef83818e081d7b69472e23c22875c269e800762c47cbd97092ea08a84099c5535b756790b9ec6818fb51ad273cf66b0a59e822b44051ba433d318980400036ad62c424a28c8d4c724e798254e121033b48bd2317c66a4750cacb3883754c15ad9edc64260bae288aa730aaabfa12087f9c0496ec6c59c92e54480b3fc119fb901326c67c66398ff8b945ce4335ac243912a716e6364f15127be1475f2af912176b79790b94a70a4dd0469723c1775490833554132e5a19843251388350ab77872d2357fd2b974b169e03fc9325b94100f28659c51d0a3410f96518628b87e2b5b3cd87ae48b6b0cca54e483046606a79e79a3e8a01233518ce61a72650833ab79267fc04cae1e71dbaf86201d7407de3732447335bea3c4b75709b307807dbc0c9c647357843f5a76724c395e6b69b643520a45c8a94f83497d6aa82604e9763863f9943e06a8bdbd97ab703a63f6c56f7c758e4284ea50b6cfdf611946c6d350009f2325005949fda49702412a70960151b38311ef01d97b43e924216035986434a7e1d16405a6132212a304ec91da7f0a3e40c1dea0cb46442cddc0361216a7daa533bce0796b9a9088adbaf61e79916e08388e6acaf030bc6dc77882a5e7e9a658f97c47c6a7a3686b943dc538310190eb4922168149b2092b94a825cda24b944996bb270b488579049a1fc845b65fb04520a334017837533acf1a0592234b8c6697923936afebb66dd75bae9eb8d1c58ac80e075765b5ec2336396591bfe94c8efe00a54130a37a3a5e5d81b4cfa93f56ee922c7d660937b5937c3074d62968f006d1211c60296685953e5de
+Secret Key: 3cbc538da4542cea83a2196a1d2c2f6edbced032b2f1c113d49001c28180a29390b86366d667991698ca0bc40e84f9b4d3c13b312985a570852a96b590fca08606b540872346b0beda3c1c78928df3a699578472dfd4325e48bdc3ea33d6f504a1f471543a9a7e8bbd3f768613bcadbbebbbf3113702c8916f7925464c7bd3f8c804c1ad0d237daf45cada733eb5e4ac9bf4c7cb3bc19372b3719acaf611740a10a239d5a821ba2d7b2a953fcc708e78a869a04812a391e1f2776fa8530e632ce8f772d5332f6b78318db81f4c822f3a0361bda2584d0535249b9376f09082d3084ab252c8907852028faf349631a9c38f8087c18bbafd05b9081b6465d33cbf13495e327923a53322277f9a0cc941952ccb8647325079150a6e636ab04ea127368b3bac7a5f0e701fce43bd52db5eb9485ca6e24d9a6caa39fb3eb069864e47154e39b41b77b3bcc39b09fa8aa21755503c760d44981c39ce57795c3ce69b4d805fd0362ef263064b1070a8fa4179915b87e53dd090c11935a966681692c457c24596f9318ef57b01919056a020b059b7bf3a608014d0139fb27b38199d980a9ca198925696bb549093deea5e56ca060c8958e913cd3257ca3891937b4a8c65e8216fb64910a34e46869902bb5969551a4b366ff4167de838ca03e3c1260729ccbb36fa34aec0e114b7e1b8cb824cb4599c00766bcd52b03ac1853363c5917847f3e58f114b7904cb65604c37854828df2937794c073a28c859b1bab27ab71db4719eda0c94b0b3a37ab574966558a4966794ae2724700687b06b7064fde8a6b8113105e8cdf5166e7b639cd799c2bf20bcc9143e816054c327a7ccf60dad295784229be8259b631c096dcc68d3c111243bce38c37b59084103685847963bc6416172ec67f3619b5429a9558aaa062387ec9aad9777ce6ed7acee99b611c79b7c7535cbe32b5d44023e853ed41c42b4f9cd8e8a6e7864b7c103b461330786dc17ac97880c80c688269ae6897cb039a6e613300f399808a61fdd05b87171722edb5d47db520f579ac1c6277af7339093ac620c053ac813d1c614fef0cb2cc6705ab0a7bfc623d42b0665542682a7b4a3b7a383775b3b64ccae4070e165059691b7c161acd0904dfec10c80caae89ab920b4540c72589bd4209199243fbf1a0f2e7a09dfcbf80d9aea3f29d163c6d802b853f0687e1d23222c5b31b743a92fa00c44b8dde44c1cd3067c70a4376863e241640d8a31bc67a5ff586acaed0b1c60944af002e36e4b38fd32301f0ae3ec5cc0cf1aceb48be90324dd7113d9e24640f1595a651b29212161f2c909d76bb4dd48e0495a08f989a3fb3a2a5f13051547ef4089a4ff46906928ee70c066c3c382f174fef83818e081d7b69472e23c22875c269e800762c47cbd97092ea08a84099c5535b756790b9ec6818fb51ad273cf66b0a59e822b44051ba433d318980400036ad62c424a28c8d4c724e798254e121033b48bd2317c66a4750cacb3883754c15ad9edc64260bae288aa730aaabfa12087f9c0496ec6c59c92e54480b3fc119fb901326c67c66398ff8b945ce4335ac243912a716e6364f15127be1475f2af912176b79790b94a70a4dd0469723c1775490833554132e5a19843251388350ab77872d2357fd2b974b169e03fc9325b94100f28659c51d0a3410f96518628b87e2b5b3cd87ae48b6b0cca54e483046606a79e79a3e8a01233518ce61a72650833ab79267fc04cae1e71dbaf86201d7407de3732447335bea3c4b75709b307807dbc0c9c647357843f5a76724c395e6b69b643520a45c8a94f83497d6aa82604e9763863f9943e06a8bdbd97ab703a63f6c56f7c758e4284ea50b6cfdf611946c6d350009f2325005949fda49702412a70960151b38311ef01d97b43e924216035986434a7e1d16405a6132212a304ec91da7f0a3e40c1dea0cb46442cddc0361216a7daa533bce0796b9a9088adbaf61e79916e08388e6acaf030bc6dc77882a5e7e9a658f97c47c6a7a3686b943dc538310190eb4922168149b2092b94a825cda24b944996bb270b488579049a1fc845b65fb04520a334017837533acf1a0592234b8c6697923936afebb66dd75bae9eb8d1c58ac80e075765b5ec2336396591bfe94c8efe00a54130a37a3a5e5d81b4cfa93f56ee922c7d660937b5937c3074d62968f006d1211c60296685953e5dec9587d0d63030d0c1c15e675ff63a2f9ebc156baf15a2da1645528be68c3ac2c3cb1eea988004b93103cfb0aeefd2a686e01fa4a58e8a3639ca8a1e3f9ae57e2
+35b8cc873c23dc62b8d260169afa2f75ab916a58d974918835d25e6a435085b2
+Ciphertext: 8319806833fb7d426b9295036fa2cf3746312a69d94fdc3e7bfc2fafe3c83b3996bcc1de0fe290e7126622c572156be5096cd582936c05baf9b6a11450626b73a5765389385e034d8e5a1c9d2ecbad43ad36cde1bd65110d2285808ba40adb4c675d0ef1283e014c52711c45d4a211d1dced78b02c240d78d3ea8e8a9528b86c9dfb53aaf7cc861166a4924a781dd6566cca3e286c323d699cdb6a205a7d7d734e2e006367d7ddf9ffb13245fb3aa800a1ea92d3c2d6c232ea069fe7bea5737b05f981a8421673c2f7eccee03279b19b4d95e20bfe780211f0b1bab5fe69895eb83cfabe409ec581c983b74d597975e0751eac203b1703886e7dcd4abfa15595b677d20647e18c7d1160f069ab33982306d563c42ad2f4499bf6f2c2a57cbca59c26e2fec65654ab8d9b11ce189ed7d5a180b9f1c9c8fed3a24e69277f010460e796a5b9c1087ac892b076fe557961cde84c16ceac72903141f17c656f384db89a57a4a14667c9abb160ab2e217c03bc99b8774affe9695754e69e04a1156dc18aa3d9aca6e245dcc8d0bee2b5128aa8cb2eb2870cd7c4342c9eef098170cfecdf75ead9fd7ef6e42b93edb54b216970c90575ecc90eba316812670e1b8db08fe8daae5a2feb99d633c7b24fda5a971f862eeb6bf9563c0ca00e3b3dc521cbe77cefd66ac8c0eeb5076018ea263903514b608f220cf8d74de6f46cf05ac3e5945c98e113ad93678acb8759db6a0a6e3ec79b4a67c55d3f5ec40b641499867d8b825ef9d54132e583fb49cd72028503f47b1733a46f9a2101d63751fcb80efb4a0cc8e82c0ffa0217f477aaa9caca183601b51830abf52df7f2afbf5641994545d962f39781a2660f09be4063342d6c0103d9d88df6da9fbbd10758ea66ee4ba0ceb632e04ac1da62e6f2582155318a0e916c8fb3b6e8937da63bb44d06901b9e340fd65bbcc685c4f8b74591dde2623d09a16ab29aafa606b821553367cee4991c22c281c11d7922cde898d5ec4bcc6d40a99c715f16cb11661038d7af218074f0db79c1ea3508bf908b545abce5155800710b0dc588d9a0ae0102881f525c5d
+Shared Secret B: 7e81a8fddd49e9a524da0afff64b8168743f0a61a7afe31b9056e93171aa39d1
+Shared Secret A: 7e81a8fddd49e9a524da0afff64b8168743f0a61a7afe31b9056e93171aa39d1
+badfd6dfaac359a5efbb7bcc4b59d538df9a04302e10c8bc1cbf1a0b3a5120ea17cda7cfad765f5623474d368ccca8af0007cd9f5e4c849f167a580b14aabdefaee7eef47cb0fca9767be1fda69419dfb927e9df07348b196691abaeb580b32def58538b8d23f87732ea63b02b4fa0f4873360e2841928cd60dd4cee8cc0d4c922a96188d032675c8ac850933c7aff1533b94c834adbb69c6115bad4692d8619f90b0cdf8a7b9c264029ac185b70b83f2801f2f4b3f70c593ea3aeeb613a7f1b1de33fd75081f592305f2e4526edc09631b10958f464d889f31ba010250fda7f1368ec2967fc84ef2ae9aff268e0b1700affc6820b523a3d917135f2dff2ee06bfe72b3124721d4a26c04e53a75e30e73a7a9c4a95d91c55d495e9f51dd0b5e9d83c6d5e8ce803aa62b8d654db53d09b8dcff273cdfeb573fad8bcd45578bec2e770d01efde86e721a3f7c6cce275dabe6e2143f1af18da7efddc4c7b70b5e345db93cc936bea323491ccb38a388f546a9ff00dd4e1300b9b2153d2041d205b443e41b45a653f2a5c4492c1add544512dda2529833462b71a41a45be97290b6f4cffda2cf990051634a4b1edf6114fb49083c1fa3b302ee097f051266be69dc716fdeef91b0d4ab2de525550bf80dc8a684bc3b5a4d46b7efae7afdc6292988dc9acae03f8634486c1abe2781aae4c02f3460d2cd4e6a463a2ba9562ee623cf0e9f82ab4d0b5c9d040a269366479dff0038abfaf2e0ff21f36968972e3f104ddcbe1eb831a87c213162e29b34adfa564d121e9f6e7729f4203fc5c6c22fa7a7350afddb620923a4a129b8acb19ea10f818c30e3b5b1c571fa79e57ee304388316a02fcd93a0d8ee02bb85701ee4ff097534b502c1b12fbb95c8ccb2f548921d99cc7c9fe17ac991b675e631144423eef7a5869168da63d1f4c21f650c02923bfd396ca6a5db541068624cbc5ffe208c0d1a74e1a29618d0bb60036f5249abfa88898e393718d6efab05bb41279efcd4c5a0cc837ccfc22be4f725c081f6aa090749dba7077bae8d41af3fec5a6ee1b8adcd25e72de36434584ef567c643d3442
+Pseudorandom shared Secret A: f2dbd8461cb2393973b91433b8b3f06757b0e2a6b879e98f9ff01fa1409ccde7
+94e8b2086b87f69c3bdc0d5969857082987ca1c63b7182e86898fb9b8039e75eda219e289331610369271867b145b2908293963cd677c9a1ae6ceb28289b254c
+Public Key: 07b0c3ff335c192caf0234706ad26ec047c90f861b76bbc8e0c9b8d8d61d22f837e27687e2d0923813ad50460e75932769628315a57c25858987ca48a54757acc03f9e46761391ce109c46e5a261456b5c29d443732a7276e07324474b9a3151bac934bdd052817396ae824387b9907e2b6a6b4b95ec76c97ad5a466375e55b84e19d76771b041f4b481a2997f80762f6a25c7449807725406a2f3225b0195cdb5cabfd72691395df1434744ca663e53a8016273f64b1752426ecba481ba52ce0dfa32df2c9c4b550d6b8bba83e08e4cab98ebc4b14d0a6df8b07bc8e68f9c48ca10f5877b92c9a761bb904bbf1d9c8776d7357caba1d627667b8b36d827ce4b68cd164251873c1d140c6a62d252a9346f24a0910a4795ea82aa10940021377d3f360b10ba9f490152f920c739698843f074441585f520611c5878bba5422e128c56c39f6b401f03897e06d18386b3c5de0019cae417db2a17067a7cef2b691ac619965766b5a7380cf35e97513b195bb16ca52808e78d71c2064dcc39691ac21a74abe58220e81bb01a747851e102ff90804115170fc326a8c3938245bfc74b6b32787eeb8c6f51537c66c3abc1a02041b87d0b172a830c58070b7e84041bc0f491e34ba2fff71c693c785fe84d5b58805bd28db7c48ffe35b460dbb5db703d06d7041603afe6764b104cc376f097bd2753fc53b6d0581ac7919da7f2bcff2194599b1debd021ae66a391950efed913bfbc597fc50c9892b61aa965809543d7ecbedac319712430b9e9b4138bc44962969f1243db341fca464a70f69436b5c16b3b96486279f361bf97a57546840c20ba11df20c3cec487555790d9129f8472638d2b6a40c24e0fa3bd79e07c6e5175198a8668f35cc9aabb18d4aeb3c6caaaa3aa33768143da1f3fb7a039249e3995ba114c25f1930059e1c5f76605b45a498fcb38b3b656466023c3166836c01df12c9463d7c97f054fa307b08758078db7ac742471c75668eefba9ac7344af30b02577348c0777029318df086d22600315a00e13ac086ac84bfce9c81616a8229b5baa549c4318b877594950684eeac639138df84ff639deb7414fdd3e2e458ec14849fd3477d14552a960249e9b9c9b0d
+Secret Key: 8ac28bd238b5bd576d7acbc66236355bf41526ac34aa035248d1c9aaf50672d096c85714e2a728c356c17b0cc6a352b31b0c2670e59a4a643789d94dfa501d759c238e446d4a1c99a5e15b3282affe63af974a711ff10265179a10d66172957a2f402896a43b28e5c529923eb2a0c435f65f72648767096f469c287aaa0656002cacfa3bb7d1666492233dfc8e7449338f733f0a321500d6c64e270fae05beb48253e64b915aeb590908a391bb867f459b870586ab733cb9d3590639b9c4d40cd0b92633986cab67813d7219c82a07cab566fcc57c31365434797322d916ca3098a93a2a1902625a582718b0c3c3c2c9b3515388db841251a50af30fcd6ca434e76a8d326fd69cc0529c780277b862c0128a50c27ebb2db00465ef0b4cf0ca9905f69ba06a45de9668c83a457e420561248d03b29e08c8be2a219b299c05c4e6935065bc13588f6d02b14cdac8766a7156e268ca153e6f701f79ab29f2b74ea12c0be33a1c7987070d55783156bc32c0089cac5874dc7a90d0602eb84583fb6b32a25360024d7e877ea142924b4a2f1954c532e33a53865227e95bddfa926b944a21e9706f143e55048e01597c8457c3e2b009336cc73b60b88dcb87312408afe2cd2fd99e98726973225f0a795b1ee19352bb483ae239e048248c986d0df04d23066ca4bba5b8949bdb3c68ada8a830241f95dcc4a339cd001859ee925735c29db100d0cd49703774667bc41e306b91cf647263092eb047b52303b23387a37da12600198767caba19001ebe1a8509f2c5039c3d79534638965a11546717f7754eb0081b714e4eda217de2cb6480186e742e2ff244d17610abf38df563bf80c303ee76bb1e5c9ecf22cf38754c4f2a8745316cfed176af2c061a253f026a1137eb9b1b63975d252717f01e0e9138ec220183544b5347ab9b810bcd0cbc3f27ac37e979617b939d05098592617b3787a626985f9211a7805117ca9d8b755448c49b377aa5e9972657b327655528421637b112b69aeb98685439fd19ae34640bd4691ab1996d851c53bd3bac43749a9a681cb4d17de525bfba0b917966b9cb646607b0c3ff335c192caf0234706ad26ec047c90f861b76bbc8e0c9b8d8d61d22f837e27687e2d0923813ad50460e75932769628315a57c25858987ca48a54757acc03f9e46761391ce109c46e5a261456b5c29d443732a7276e07324474b9a3151bac934bdd052817396ae824387b9907e2b6a6b4b95ec76c97ad5a466375e55b84e19d76771b041f4b481a2997f80762f6a25c7449807725406a2f3225b0195cdb5cabfd72691395df1434744ca663e53a8016273f64b1752426ecba481ba52ce0dfa32df2c9c4b550d6b8bba83e08e4cab98ebc4b14d0a6df8b07bc8e68f9c48ca10f5877b92c9a761bb904bbf1d9c8776d7357caba1d627667b8b36d827ce4b68cd164251873c1d140c6a62d252a9346f24a0910a4795ea82aa10940021377d3f360b10ba9f490152f920c739698843f074441585f520611c5878bba5422e128c56c39f6b401f03897e06d18386b3c5de0019cae417db2a17067a7cef2b691ac619965766b5a7380cf35e97513b195bb16ca52808e78d71c2064dcc39691ac21a74abe58220e81bb01a747851e102ff90804115170fc326a8c3938245bfc74b6b32787eeb8c6f51537c66c3abc1a02041b87d0b172a830c58070b7e84041bc0f491e34ba2fff71c693c785fe84d5b58805bd28db7c48ffe35b460dbb5db703d06d7041603afe6764b104cc376f097bd2753fc53b6d0581ac7919da7f2bcff2194599b1debd021ae66a391950efed913bfbc597fc50c9892b61aa965809543d7ecbedac319712430b9e9b4138bc44962969f1243db341fca464a70f69436b5c16b3b96486279f361bf97a57546840c20ba11df20c3cec487555790d9129f8472638d2b6a40c24e0fa3bd79e07c6e5175198a8668f35cc9aabb18d4aeb3c6caaaa3aa33768143da1f3fb7a039249e3995ba114c25f1930059e1c5f76605b45a498fcb38b3b656466023c3166836c01df12c9463d7c97f054fa307b08758078db7ac742471c75668eefba9ac7344af30b02577348c0777029318df086d22600315a00e13ac086ac84bfce9c81616a8229b5baa549c4318b877594950684eeac639138df84ff639deb7414fdd3e2e458ec14849fd3477d14552a960249e9b9c9b0df0d96adda9e271878c20f80e33f5c8102c599665f47d6af92ff7dd2a209d9fbada219e289331610369271867b145b2908293963cd677c9a1ae6ceb28289b254c
+deb76b12f33ce5cf3743131bfb550f0197bfe16aff92367227adc5074fe3dc0d
+Ciphertext: 92ef3b254aceb2f71483546cf6608292d68aadaf4d253d8b7f054337ae68a1d8f0395277c912e4bba9667b3d3bf2ff86206c120e28f88da48b66f127e8a26e5f7ba6c7f76ce15549213d55e1b43366de24caaff82273d6cb4c93a3194efcd985f998da2e8d02384943c558a0f2a9b5c49b176f792cd252339c8f2b7ee0c7acb38cfa80e666c139b1b0fdd53430ac8d23903709adfe34a37e7d128d587cfd72e2628861464f455ef27360a123e94a28392498cc0f84369ed3dba5d0815db692a00b4f3f59d991762f8a97514de30a99f7e8e1bbb08e8676c2c36d8cea98f46d1263f6809688e68d3fed19612caa303f2de8a7c1849af8a07b2e521ee19c107921670a3fd5cec9df51963efd361ff3ca9ed2992f5eb29acd1b2ce28dddee7d69698afed641cc2a423ef43d2a4a60e0d6886caacf1c3f800045ea2c600995ab264ae60dd8477fc82546ec83bf8755d2bb19f556c509a9355d8c421e53b8b7dc33a573f3f280a1e8ef7afe5cf9dba1aa6453ea6e8b08282f62e594746be567de32eeabaacaac06453ddf8ac4fec0a83fb445a33cc9f2ff116ea4e31f4fc8e15113e1f005420b29583be1ae0a7b7cec67cd41263085a8f20e23cfeb367cc3caaac2f346f5d3672bbecafcb980359961d1453e5ac88ee7a814c7ef6dfca40448dcf032f43fc29fb71b8d2b4e56520ac0bf6d3d9c6fc5e11257c8939643a350a6583e00e1bb8852a137de05d448ea8fc091f89fa3763942d0aa80f47cd95e38262ccf921c11af20645a225db5eb3e806f9acaa67b8954876cb7450119d7da5e3b4ceb5c1b3a126d9da6787fc7b0f33de1968cb544e56c6d9691d85fca62705eb123a56519458af81b9178b48a54cfa324a693f28a665c75b994162f368a8dc9bcd23119818d4d70a65e7cc415f737716407196dd92af053f7b08401626a99a36a695689c1ec02f4cf81c2f45b2325eaa19c453a5f52f417fbd3f21a273915ee355e3db020f21ec6d61e910edf2c5582c73d774881e52cbc75ab0885d0d51d9b19b377b815d1942187b45f974517fba2a77ef79a66e9b3dc6e5d1d306a23d079bf3151f4
+Shared Secret B: 7b3a6f4bee3da5f293b0b988d672a194b82b63fa61d92f093e3ff14fdd862487
+Shared Secret A: 7b3a6f4bee3da5f293b0b988d672a194b82b63fa61d92f093e3ff14fdd862487
+8d116253980a38636bc9d29f799bbb2d76a0a5f138b8c73ba484d6588764e331d70c378c0641f2d9b6fd7c090df5a74604a1324ba0cc5c447b2dca644a50f1ad0477a701b9052ee9bef28833476343c82af29ff3a9b1c4cf12de559cb9d9411f62bec838121fd74bc1fa712d8add51505c55e89a35deaf7a69dc0a18ad27396029cbf89f513e1b8f48bc01783d6849fb32f211a4c87e16bcce0c41240a223ba6d69e0c51569f73cb107ead84d14dee92702e3a95eb844c716aec9829d06591ebd2501a3283cc0ffc0fdcc031fe8d865e77fae5d6bb73815d9ae376006d0ae3200c24d84c6b14a8471845a7522e7c3d0db9aea0cfce467be633d4d46a5086814da467dc73403c987d8fda5f6e568291dda40d7681a07eb9f80d8765c734bded79fcadcdacf4816800fad2888f935ef77e72aaf288ce1ee12edb5ec1a6506e0b5fd2e4395863c29b6125a26f639f25018ebc147a306ab05eb4d4804327c9216d59ca328d5f5f1ce0eebcb35dda72c85332c6cae642c1c539498fac7d0d2ab2fd3e0e1d90ab9e451ac914c664f1ae34209d96ebb92d7d93ba3e99699827a8fd4835d79d93683c52087dca88d0cd4b33aae8e01023ffdb6633dd049518a7e9ab679039a691dd6a1d5c825580a07a686d43e85f716d87918bb6c0a6fab7c8fb8a41c70d61963fcd3579a69b863b8b9607c5b288e775b9411d3a2d8dfe973db3911b2a83b4f5d6873c6a13af1ccaa460f00bb555d5e9672885d877c1d867230cb56137df134b7304b281b99995024cc942a1a081cdd7040ec432db72fc41f77b637b1ceba3a6b0c8bc96466e4f5d725b698e65d8f4d1c1488147cee888ca0d9be1f86af926abd878b253b450daf33c721cf9edde455879f53407656b28a87f4b571d222e93909d8437b7ba57609f3987b2779fe89dd63ec52ed496b81f0e1362c6554fa93a347fb54b08058b64ca9b7d08254a564614e39566584e4f9bcea365b9dfae2086c3374f5ea5adf8bdf5a3c6833efec934d4fc23a7d81c4aa217707ec114a1f4999f8e6038b6b6b7dc806a23ceb21c757ca6c46071154f20b46d2f2fd2cd7c
+Pseudorandom shared Secret A: 50276b4ec4ede469eb8b3a78753fb5b70883d989dbc8984292b298e12d8abd99
+b6c397d7c76cc8b0068ff8f1002de8a73f7f1a7bd6e39135236852b464fb98c387e1c43616d983a7ead5abbdd6a173b273bf206e4cb454a4610d1a995bfdf8c1
+Public Key: f3528da475218b09ad55ab3321d20e05638e50783d7878afa60042846b02778b5e4afccf8b9314ec636accc1213323aaef088947219e8f113874961712ca3d8d77b3861c369e4b38c32b89604024b64c3c4ada4eaf09ac64839df4ac87ce7ba7ca933ba4788db8328628da9987f6cd0e0369778b386a08ca57d8238aa9179b9674aab19a1e15c166a0b7d841630c1a42d0e633c595288fc50e27cc786038a9f9236db8b630bc85109fd981bb78b5fad9cffe61588aa62cb1ab04d133cf0d051ac06700adac0bece0a571944148b4c21d7585b2603f31314cf102a91b57c6df97a611e46e88827f86fb3bfbf57bdfeab74f1a44a560926b6b9a346b708be7005554c484165ecd24922e94a7ad0c3278b35c6eeba52146c30971cd7e580f7c45360b87378eb7ce3e450c888745d4928889f462a8707c0b3c679cf70610db347e801942218bb6b3b3451c67e243111889575b13a61b3a132fea84b69212ab428214c69c697b34dca2bb3d4c9989f01d7f99ab37a5c1e588b7c61a4fa385b942491c3f0067a166677fc375e0c89c3133ce364295178024ef59b547899a9c590397a0a46a8969f5896b3f4b1040c7be65a277c5990c79b396e6a031cdb924001a7bb6e3661b8ab1928a9fb2b257a1d3176bb99470922c01377c5d07004871267e5c620a6cab34f7c6aecb9a0c62bad9935d9cf261e24965b46a7e02fa08077a26d9fbbef41548d971657a4753458457b97b50248b881046359b75455ce839eef1448f158d2ab6150d047e1d035a71eb5cdefa88766b970ca67272c022ef749380b42282a3b902c9c185a7af574209f47c4b9ac8b62c32b7a5408a7e26a62782c7c14c48745c64092149bd96c70328be5ab433ad83861fb8cc843acce8248f9d80004c52cb182b5e2bd901518060d7753e536a23e7560b446c7752e19f2b4992bd468513b7013735295ca61f1803c8e8954f7c934a44d637c3e6a03905ace6a2285171806e8354dd605cb8489efe97ae66a206e1d5b81ef0977fa187128715b6b47cc8fb2d34bc85fb84cd158782a0d614b4e9077f87c9d34826e9436bff3893707451acf92250a2ee15d6a7684957367e644c0716cfd6b44e1afa5817a2250bea2247
+Secret Key: 55bc27c1464f4221c3984c6bfeaba9ba0b531a145bdc763e3e39b9e7c86783891cb9b663799556e8da0b6848acab219b747612391c8aaa906ff82a4e6741970f270d7cb131438627873758a231b0ff7b1d2e1b52e92300b7c9153f30bee76cba05daa462868400172c0a474b2752461cc6b660854404f1a63a699caf982983c14d89b9415a15969c83952e22704f78b0e226008fc73c2e769cbca80867a72590598dbccb4f02c88b9775af13c99970b8c6864292bb1548196a22b54510f5b3bf80f15f9880bd9a8c8839e964ee659db857102d4aa604c79ef81ac665a81adaa6b7c0266739770e6b0594c5401494126a4e68c7dba234e03060cce147aa191bab179cbcfa8bd0a322db9b698f71ae499b61b2a2696103127b18407a47689810b4ef224e8f147e195035664114c47bccc12b18cd5228d6473838f44bb404c187f8ca7e77b04ffa542a5ac6e90b198012b4adf037645b2cb2fc86bfd2adb86133a4cb56b15b613d788b86f6cb328646bd4b06ff1c7723122502b00dece96d79524394777ebf695f4955c859ac2ad77781c22a315fc76f53f4ae26339bd59b64759c5145c4b9e3a3cc961cb19cec5b37ecb7a631acb1972761555a46969fba0a7bd2489765020fe519aa124906aec7b6c2c89db5515fa7475cce595fe929cb4b815213e39970c6a1fbb79deb678aa3b3c7f3f5610b5a6344c98ae2f5732e2b23843a3629626a127b103113bb6f5bcca329a180a974a1d78d9c6c911046bc69515a9cc3640d88b5c205746ea5a3e03b4baf87466f6b709911ab6ca94d0d71b97365cb567b5c644a6257691435994f6a2a1e6ef90751eb01ad72ba2d355426951807447e00dbba66c7ba8bc44f8158ab4e2849178879160642b4f08d68d866a30606e0f6aaa31646f108769ed665d65a8704d613be4715ad1c4b0fd23960fa5d18f8737c70a32ef8bdc909840cc09c38cbb4edd21e70accf26008bb684345a76b32ea0ae0dda68f7a08720974f31d3ce8de593c4079f2e8949c18c1b9f6a38c4906d32a642dec9252b029e437a917e6ac2cd050160766a8dd770d3fc303e89732abb5ff3528da475218b09ad55ab3321d20e05638e50783d7878afa60042846b02778b5e4afccf8b9314ec636accc1213323aaef088947219e8f113874961712ca3d8d77b3861c369e4b38c32b89604024b64c3c4ada4eaf09ac64839df4ac87ce7ba7ca933ba4788db8328628da9987f6cd0e0369778b386a08ca57d8238aa9179b9674aab19a1e15c166a0b7d841630c1a42d0e633c595288fc50e27cc786038a9f9236db8b630bc85109fd981bb78b5fad9cffe61588aa62cb1ab04d133cf0d051ac06700adac0bece0a571944148b4c21d7585b2603f31314cf102a91b57c6df97a611e46e88827f86fb3bfbf57bdfeab74f1a44a560926b6b9a346b708be7005554c484165ecd24922e94a7ad0c3278b35c6eeba52146c30971cd7e580f7c45360b87378eb7ce3e450c888745d4928889f462a8707c0b3c679cf70610db347e801942218bb6b3b3451c67e243111889575b13a61b3a132fea84b69212ab428214c69c697b34dca2bb3d4c9989f01d7f99ab37a5c1e588b7c61a4fa385b942491c3f0067a166677fc375e0c89c3133ce364295178024ef59b547899a9c590397a0a46a8969f5896b3f4b1040c7be65a277c5990c79b396e6a031cdb924001a7bb6e3661b8ab1928a9fb2b257a1d3176bb99470922c01377c5d07004871267e5c620a6cab34f7c6aecb9a0c62bad9935d9cf261e24965b46a7e02fa08077a26d9fbbef41548d971657a4753458457b97b50248b881046359b75455ce839eef1448f158d2ab6150d047e1d035a71eb5cdefa88766b970ca67272c022ef749380b42282a3b902c9c185a7af574209f47c4b9ac8b62c32b7a5408a7e26a62782c7c14c48745c64092149bd96c70328be5ab433ad83861fb8cc843acce8248f9d80004c52cb182b5e2bd901518060d7753e536a23e7560b446c7752e19f2b4992bd468513b7013735295ca61f1803c8e8954f7c934a44d637c3e6a03905ace6a2285171806e8354dd605cb8489efe97ae66a206e1d5b81ef0977fa187128715b6b47cc8fb2d34bc85fb84cd158782a0d614b4e9077f87c9d34826e9436bff3893707451acf92250a2ee15d6a7684957367e644c0716cfd6b44e1afa5817a2250bea22471a8b515b87562592730ac59d79913874b8710733174ca8cbe9a8a3c2d5bc0d9887e1c43616d983a7ead5abbdd6a173b273bf206e4cb454a4610d1a995bfdf8c1
+5f1c9dbed07ed397efb8dc87ef42fabf6f705c23ce083b92d40c5772e14027cf
+Ciphertext: bc58c12fea67787fe9898fd9a3d6a4897bad1025c6416bb265e1e4ebfcdcb6cc2771faa76f4430fc1c5348ce1ea0913510ff5829137030cddb6e237e651478a032de534842073e82bdb31132045b41972249e288ee15c769558728309887bf4f09d859bda9b4f58cfcb53fa1b688598643931c390f60355474d24cd43e4619c7bad2fad7aefc52c5155edef2d33374b2670757ef5b9ebf1c80d89cb6c08986bcd804a5cc58a544538968805ba98043b505ec1c0949a08a21c3250182a8ca31242d7145786ed82e641272beaa3703b34e2c81b30903c08a5820564d79a1e946075bb74b3aa473437ea8ce24801de488b070544d71691d6fa9bcfeb71a5796495e01e60cb3dc2bf58dbe05ba3c5d9b16db39a6d9140d7b3d97ef08f79478c6e200291cbd88f5a624a12ef6f9411143137435a5add5b8e057cc81b3189e96b42a5794de70c58d981d81660b8c223d702189948ac9f2d818510586ef9c29009f9a2ebcc0b4be313d616073f189318bfa9d65902b32a978c608dda995890f3571eb81b4c3d07543c3882984549d4c437eab7ad6015f098f2b438d0e8d83fa82a5197749154221f14ec9f5475b57ee7695e0f42ea0de45491f7d653cdb08b9ff45e602936446ff3b60664491ddc6ea2606b6543ddeab7aa7636975531cd694cdf0cb05d455171096477041f5d73092e8de5a00c47d007fb17dbafbe816798ce789bfa6e578fcaee6b73eff760fa014de2d4e0c8d10f7f6b13892e826619278be391ccfd7331cfbab215cc70d245c8dc2b5b7067b5cb4733e1b7cc238d4373926e79d152c4ad3502985547a9715b2f6cd25e64a4ea07ad5d803880849b4028f2c1531fc83c5732eabb48c463f5a1ff11086c494ac90c8dfa4df157545d2384768262afcf8ca0486d6a98fbef57d49e1c3fcc90617395eff293a64d7e09802ff856b60ab2ef65b2b3e28e8f8e7066424832a9e1616f78c9b7c10c50d1d487392369e87249a3bc0c98c677893adca2d1d6367d71852f034790c240676f6a1102c6326b464c4834334f38ebe3f8bc01f43ba50f764ffd464a72ee4c24b13e45b3624bc6674
+Shared Secret B: 0c4c132521112b23d34406b412414a5341ef1f79d403a8c80df9b43372d7634c
+Shared Secret A: 0c4c132521112b23d34406b412414a5341ef1f79d403a8c80df9b43372d7634c
+62f2f77376ed43035464b6553849a3c69903271a4da9215a3a8a699774325effe316afab4aaf5da34790fce0b70263913095e7656ecfe1efd3484818e3278e2b216c9c6fd2949415adfeffbe9d78e92f87bb604da298b930d642e7dcef466e6