Skip to content

Instantly share code, notes, and snippets.

@stong
Last active December 10, 2020 14:37
Show Gist options
  • Star 2 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save stong/5658219581cba2bd5d6c3b51b098f869 to your computer and use it in GitHub Desktop.
Save stong/5658219581cba2bd5d6c3b51b098f869 to your computer and use it in GitHub Desktop.
pbctf 2020: Jiang Ying's Disasssembler author's writeup
// TLDR:
// Whitebox 128-bit rsa with e=17. Input is multiplied by a constant before the RSA
#include <Windows.h>
#include <stdio.h>
#include <stdint.h>
extern "C" void __fastcall rsa_encrypt (uint8_t* in, uint8_t* out);
// 1. Func is ~90kb, and control flow is simple. Should be decompilable just extremely SLOW.
// It also seems like it only uses a handful of instructions, a lot of imul add etc. Very uniform
// So it's probably some big and autogenerated shit, we should try to see if we can see some repeated patterns
// Then we can try to figure out what each repeated block does.
// But assembly code is too low level to get an idea of what's going on.
// We want something that will at least give us value numbering; either custom lifter or some decompiler
//
// Try a bunch of random decompilers, hexrays, snowman, binja, retdec
// Retdec gives output with incorrect parameters but at least the code is extremely uniform
// See: fuck5.c
// Idiot strategy: look for statements that stand out, this could indicate some kind of boundaries within this huge block of code
// Observation: most lines are quite short but there are a handful of very LONG lines.
// So look for really LONG lines, and break up the code at these spots
//
// Result: Breaking up the code by the longest length lines, we found that there's only a few chunks. Like 5 or 6 or so
// See: one.c, two.c
// 5 of the chunks have the EXACT SAME CODE, other than variable names!!
// If we can understand one of the chunks, should be a good step to solve the challenge
//
// There is also 1 chunk at the top that isn't the same as the other repeated chunks.
//
// Other observations:
// 128-bit input and output.
// A lot of 0x10000 and 0xffff, so maybe this is kind of bignum implementation based on int16 (??)
//
// Huge repeated chunks that are identical except for variables.
// Might be due to aggressive inlining.
// We say each huge repeated chunk is a "round". From counting, there's 5 rounds?
//
// The only interesting constants are found in imul instructions as immediates.
// If we extract all of the imul constants, there are actually only 32 unique ones.
// The first 8 are used at the start only, but not in the 5 rounds.
// The other 24 are used in each of the 5 rounds.
//
// // Constants that don't seem repeated
// 1A3D
// 061C
// D64E
// EB7F
// 5C62
// 2797
// 7287
// 4724
// // Constants that are repeated in rounds
// 946C
// B05B
// 052C
// F508
// 45C1
// B5D3
// 7988
// A4BA
// A71B
// 268F
// 5EFB
// 7430
// 0FF7
// 2D29
// 557C
// 8FB2
// 43F7
// 84E1
// 1EFF
// F8AF
// 047A
// AA2B
// 3681
// E409
int main() {
// Ok fuck it let's try black boxing this shit
HMODULE fuck = LoadLibraryA("licenseChecker.dll");
void (*rsa_encrypt)(uint8_t*, uint8_t*) = (void(*)(uint8_t*, uint8_t*))((char*)fuck+0x1010);
printf("%p\n", fuck);
printf("%p\n", rsa_encrypt);
uint8_t in[16];
uint8_t out[16];
memset(in,0,16);
memset(out,0,16);
for ( uint32_t i = 0; i < 100; i++) {
*(uint32_t*)in = i;
rsa_encrypt(in,out);
printf("0x%016llx%016llx\n", *(uint64_t*)(out+8), *(uint64_t*)out);
}
// Observations: f(0) = 0
// 128-bit little endian
// f(1,2,3,4...) = junk
// When we plot the outputs (outputs.py), we notice that:
// -> output isn't full range from 0000..ffff. There seems to be a maximum(!)
// Try to approximate output upper bound (modulus?)
uint64_t max = 0;
for ( uint32_t i = 0; i < 1000000000; i++) {
*(uint32_t*)in = i;
rsa_encrypt(in,out);
// printf("0x%016llx%016llx\n", *(uint64_t*)(out+8), *(uint64_t*)out);
uint64_t hi = *(uint64_t*)(out+8);
if (hi > max) {
printf("0x%016llx\n", hi);
max=hi;
}
}
// max = 0xe4093660f9061aac => e409 3681
printf("\n\n0x%016llx0000000000000000\n", max);
// These constants are repeated in rounds! And there are roughly 5 rounds
// If we don't know, we can also brute force the combinations and see if any of the resulting 128-bit numbers are interesting.
// Anyways, seems like the constants form 128-bit integers.
// And coincidentally the compiler uses them in MSB to LSB order in the code.
// 43F7 7
// 84E1 6
// 1EFF 5
// F8AF 4
// 047A 3
// AA2B 2
// 3681 1
// E409 0
// N = 0xe4093681aa2b047af8af1eff84e143f7 ?
// N is small, so we can factor it.
// p = 17260683863472602563
// q = 17560823292485810621
// p and q are prime! => This must be based on RSA!
// Makes sense because RSA is commonly used for signing software licenses.
// But what's e??
// 5 rounds, so e could be 17. But using e=17 doesn't give the same output.
// So what's e?
// OK don't know what the fuck is going on in this whitebox shit
// So lets whip out the dIfFeReNTiAL fAuLT aNaLySis.
// We have 32 16-bit constants, grouped into 4 128-bit constants.
// Let's call them O1-O4. We discovered earlier that O4 is our modulus.
/*
// This are only used at the start.
// Call this constant "O1".
'1A3Dh':,
'61Ch',
'0D64Eh',
'0EB7Fh',
'5C62h',
'2797h',
'7287h',
'4724h',
// These are used in each round but we don't what they are
// Call this constant "O2"
'946Ch',
'0B05Bh',
'52Ch',
'0F508h',
'45C1h',
'0B5D3h',
'7988h',
'0A4BAh',
// Call this constant "O3"
'0A71Bh',
'268Fh',
'5EFBh',
'7430h',
'0FF7h',
'2D29h',
'557Ch',
'8FB2h',
// Call this constant "O4"
// This is the modulus N
'43F7h',
'84E1h',
'1EFFh',
'0F8AFh',
'47Ah',
'0AA2Bh',
'3681h',
'0E409h'
*/
// Lets try fucking up the constants and see what happens to the functions behavior
//python3 dickit.py && nasm -f win64 lol.asm -o lol.obj && cl /MDd cheese.cpp lol.obj && cheese
for ( uint32_t i = 0; i < 1000; i++) {
*(uint32_t*)in = i;
rsa_encrypt(in,out);
printf("0x%016llx%016llx\n", *(uint64_t*)(out+8), *(uint64_t*)out);
}
// Observations:
// O1=0 gives all 0s (mask / multiplier?)
// O2=0, output can be greater than modulus (!)
// O3=0 gives junk
// O4=0 gives junk, obviously (since O4 is our modulus)
// If O1=0, other stuff doesn't matter, it always gives 0s
// -> So O1 must be used first before any of the RSA
// -> O2,O3 is probably part of exponentiation in RSA (??)
// Our hypothesized cipher:
// g(x) = something we don't know that uses O1
// f(x) = something related to RSA that uses O2,O3,O4
// Overall func = f(g(x))
// Since g(x) seems to take priority, let's first focus on attacking g(x)
// Set O1=1 and don't touch rest. This is our new weakened function:
/*
1 0x00000000000000000000000000000000
2 0x00000000000000000000000000000001
3 0x00000000000000000000000000020000
4 0x00000000000000000000000007b285c3
5 0x00000000000000000000000400000000
6 0x0000000000000000000000b1a2bc2ec5
7 0x000000000000000000000f650b860000
8 0x00000000000000000000d39383266e87
9 0x00000000000000000008000000000000
10 0x0000000000000000003b3fcef3103289
11 0x0000000000000000016345785d8a0000
12 0x00000000000000000703b564fa7a264b
13 0x00000000000000001eca170c00000000
14 0x0000000000000000780c7372621bd74d
15 0x0000000000000001a727064cdd0e0000
16 0x000000000000000557531cfaa19df90f
17 0x00000000000000100000000000000000
18 0x000000000000002cd843cb4764370911
19 0x00000000000000767f9de62065120000
20 0x000000000000012917a55ad23e5a92d3
...
*/
// Wow! This is (x^17 % N)!
// So we know that f(x) must just be the RSA encryption
// So we know for sure e = 17.
// But what is g(x) ??
// Seems like when O1=0, g(x) = 0. O1=1, then g(x) = 1.
// Maybe some linear function?
// e=17 and we know p,q so we can compute d=0x283ddc713c25b57ec78c48b7a8a227d9
// In that case we can make f^-1(x) as just RSA decryption.
// We can take a bunch of output from f(g(x)), and apply f^-1 to get g(x)
// Then we can take a stab at what g(x) is doing.
/*
1 0x00000000000000000000000000000000
2 0x7287472427975c62eb7fd64e061c1a3d
3 0x010557c6a503b44ade508d9c8756f083
4 0x5795d56c76c61528c27f82ea12544eb7
5 0xca1d1c909e5d718badff5938187068f4
6 0x3ca463b4c5f4cdee997f2f861e8c8331
7 0xaf2baad8ed8c2a5184ff05d424a89d6e
8 0x21b2f1fd152386b4707edc222ac4b7ab
9 0x943a39213cbae3175bfeb27030e0d1e8
10 0x06c1804564523f7a477e88be36fcec25
11 0x7948c7698be99bdd32fe5f0c3d190662
12 0x07c6d80c0955f3c525cf165abe53dca8
13 0x5e5755b1db1854a309fe0ba849513adc
14 0xd0de9cd602afb105f57de1f64f6d5519
15 0x4365e3fa2a470d68e0fdb84455896f56
16 0xb5ed2b1e51de69cbcc7d8e925ba58993
17 0x287472427975c62eb7fd64e061c1a3d0
18 0x9afbb966a10d2291a37d3b2e67ddbe0d
19 0x0d83008ac8a47ef48efd117c6df9d84a
20 0x800a47aef03bdb577a7ce7ca7415f287
*/
// ^ this output will obviously be mod(N) because it's the result from RSA decryption
// So indeed g(x) seems to be doing 0x7287472427975c62eb7fd64e061c1a3d * x
// So overall our function is pow(x*0x7287472427975c62eb7fd64e061c1a3d,e,N)
// We can invert this to sign our own licenses!
// Modular inverse of 0x7287472427975c62eb7fd64e061c1a3d is 123456789 ... lol
// So to sign license:
// x = sha256(license[16:])
// x *= 123456789
// d = 0x283ddc713c25b57ec78c48b7a8a227d9
// N = 0xe4093681aa2b047af8af1eff84e143f7
// x = pow(x,d,N)
return 0;
}
lines = open('lol_orig.asm','r').readlines()
consts = {
# O1
# '1A3Dh':'1h',
# '61Ch':'0h',
# '0D64Eh':'0h',
# '0EB7Fh':'0h',
# '5C62h':'0h',
# '2797h':'0h',
# '7287h':'0h',
# '4724h':'0h',
# O2
# '946Ch':'0h',
# '0B05Bh':'0h',
# '52Ch':'0h',
# '0F508h':'0h',
# '45C1h':'0h',
# '0B5D3h':'0h',
# '7988h':'0h',
# '0A4BAh':'0h',
# O3
# '0A71Bh':'0h',
# '268Fh':'0h',
# '5EFBh':'0h',
# '7430h':'0h',
# '0FF7h':'0h',
# '2D29h':'0h',
# '557Ch':'0h',
# '8FB2h':'0h',
# dont mess up modulus
# O4=N
# '43F7h':'0h',
# '84E1h':'0h',
# '1EFFh':'0h',
# '0F8AFh':'0h',
# '47Ah':'0h',
# '0AA2Bh':'0h',
# '3681h':'0h',
# '0E409h':'0h'
}
result = []
for l in lines:
for c,replace in consts.items():
l = l.replace(c, replace)
result.append(l)
open('lol.asm','w').write(''.join(result))
ys = [
0x00000000000000000000000000000000,
0x00cc5b325b06d6f3c93e9c36ee9546ab,
0xbde932133cf18e7c4f206806d252681a,
0x89acaf80eea2e9513d7f10af9a9bdfbe,
0x8dee2e886c276366e0258dd762ab0ab2,
0xb2b4f816772a1f6af0d9435ca3a1dbfd,
0x6b2c2e2f9f5a8ae4951e46e1caee2a05,
0x8ad233346d98cba40ff202e72df53eae,
0xcc97c682cc56b3ca25ab1e8476c06631,
0x988b3b37afe97a8910abc10dce87db17,
0x47909f5fa6662c5ffcc1863cadf5a32e,
0x5f172ad8ecbc83b7a28ac3ff1484f984,
0x9937592ab41d0535e497c4de1786f01a,
0x021b86d2332e4b43d20ebd0844464e80,
0x6edbdc525743a73c4ec0a1d178ec3530,
0x8f567789c5562c1991cc2b0ba48778fd,
0xc01078eb052fae49a3487020ec8768b4,
0x15c5bd3f52d4f536589466b3c30e42fe,
0x2302e5a867939ba13722c1c854c00a80,
0x274892f7f70317714306d780485d9b20,
0x7e6b364fccb61280921297322ac56e1e,
0xcf41be0729449e2948fee402344e87e6,
0xb565f70aeb629122ab790add25543d5d,
0x86b506e113e7eab4adf2318b8dd4c2ec,
0x8904be8ce810820e46b69680231d9012,
0x37fea4140184ef0817244392f8509783,
0x157ac9b80cebafe3d462a86b59cf8ccc,
0xdc317a566604d3c5fe54f1eff85ce29e,
0x237dac2b6b256d263ee7518dc4632028,
0xd68b29d60577395d45a280b07efde928,
0x71aecbdf0870861a5d4d807bff9f403a,
0xcffc24b38fed9e566b6de503806fbbf5,
0xe0f22cfeb81e358abab58373f0107d13,
0xd1da47c20e3a7c0b42e6b862bc62dca9,
0x76854afe376c623e6d2c6f2db81e786d,
0x15e35d18c79ae241e15cbfd1aa4f32ee,
0x0718164a69ae3b909d67eb4e7905537c,
0x8b33279bef66ce2a18f5c6540a31de0f,
0x5801acd999271becb5e2479767ffd97b,
0xa94f880fb3cb7fb7ccfa68f46aa14a36,
0x2741cfa39d8575953f1cb53789a280db,
0xb7f73b743347db543eb9e96ac01720d7,
0x5ce20fde9a65aa023483a06a35e8fc18,
0x577e77f04aced4792f7344d082c8bfe6,
0x0f84a54805f9c7ebbb9f1d14107e9159,
0xb412ad8ca822b8047120de7afe842dea,
0xbf51b4d1a4cd474815dac01f1679160b,
0x7709608a617abe1dab1aa7c5fea39d07,
0xde4de0ec8b94464c5d6f790eeb1ccb4b,
0x6e23a97536681c3cea48dc9cd0399a9d,
0xe1eb85c08df4ea784724e517aeed8b78,
0x6fdccde799d25db4ad9c3ac5f9764ca2,
0x11ad37eac319f6dc8b983bb55acdf8f8,
0x70ee127fb0072851998f40dd9f478d62,
0x19e54b042c18f0bed1a6c27f2c16d184,
0x106782a7ee2778d79dfb474b8d8485fa,
0xb2a548a08ad499aa32383a03fffe9206,
0x7857c0e5779b467466487189e53301e6,
0x0aea935626af6305ca9060259e6c9470,
0xbaf4f0961848de2debdb784000a53922,
0x4c2e7e77522822a15dfed9006a513d37,
0x3ae08085c5da3aaac865844b9e4cacae,
0xbd3802666379046284c1cd569dca74a7,
0x6a126cd4bd342d266f3e62b8798d6684,
0xd0ed75f496b99da5007f0207d1e0c587,
0xa180deabf9e03a9459439e2d6d49cc33,
0x0c288238067b5f4789843f8df84c3577,
0xb5f53521530c93198bd3ad0c99853a0b,
0x1257bdd97520967fb4fe8c385797eafc,
0x9c272b83c29470eb178f1b27b3e75245,
0x03ce1bd27dbcb78f559b09e7deb9f70b,
0xe17bcebd1ff045a74d7e8c2260ba098e,
0x85dbc459680ae06559ac46b36f709b55,
0xd6365428b392a3a788e48cf61bb83e32,
0x4ac74a7590b9cfb2c75cdb5a3d48d9e3,
0x43b500e3b2ef344d616805b632b4c269,
0xdd490d5e13dc21622459c70773e89258,
0x8d1de388ca8b8951856eaa0ee845a733,
0x6de20e418c916b0aee961115fefa894d,
0x7dca5b33940884d68bd457cd200969b3,
0x4fc72c051a0cd928ca3883172ee7a466,
0x2383cb9f82b1d658a7c008772667c39f,
0x05817272ac3ee002aceeb3d517981175,
0x29af9f686da3c54f6bd15b8c90864bd9,
0x0d68d1b184d6411da37434976b582f28,
0xcf76dd1b050fa71ef46d84a50b34a8ce,
0x560b0996f25c39bdb7e9960bdb72a002,
0x4ff457b088c19a876ee1af3410a2dfcb,
0x3cab6057af83603ff1162eed676ea519,
0xc392bcc7ed32ea28d6648016de89dddf,
0x723cddb609b06fdaa2002e7adb0e3ac7,
0x29babf03c2aa16339c6bcc24515967c9,
0x14297bc7b0f943634ab7e094929e37b8,
0xb76e66631692389547edbb3fc024541c,
0x92c90c096b21e42c9bb341d0fc555564,
0x569a65b99175c71ded8037b909a19101,
0x676a51bfc35174478a1ec7465e11c829,
0x0c2a2d16dbba722d84df47331992abae,
0x4ae0d8a676e09aa67ed708afaa9a3e93,
0xc7d76ec5a851b258b60121824ac3fd5e,
0xae49e5fdc27ae983c4b2b0cf41e61937,
0xd7f59b0afa176644d74ee2da9e032ddc,
0xc7c595e4ad277ac781a46ad9596fa417,
0x483d9744f3d84ac15f82d891f3e10729,
0x42324c22627746c2d14c78b245b6a530,
0x1afdf64951a6cedd28a2d5d197ce3ffc,
0x91e0a4d081c61d85c8468c75822e3fdc,
0x248471cca42ea0508ea3a71f9a3eb4b3,
0x6e634d68346d25aadf581823e9f47b44,
0x2ffae42602be95d2b50b6cc38cad9f09,
0x41f181487698c2810e815413b4e42f55,
0x57e7eb185ed6e0408029a2767a271e1a,
0x15e73a6edec64bedea017be544d3edf3,
0x62e78e73acfa0a73ee3efb96ef865b9e,
0x4c2be9a4a907af46f21412a87c0d6a7c,
0x0ee0619f2e743f711ab2decb8a6d54b2,
0x69e22d2aafe71d50fc1a380523732f8e,
0x9786f243c883e890a6a1a9db5438a24f,
0x35e83bc70b172489eab00f2c038eb1e4,
0x2de3061a0a49d62cac99c9b794ba928f,
0x8f08de20195d1c4efcae0041e48b15f0,
0x87c5bbeeea360ad4a07bc51f2e49fc03,
0x9b2d4124b4ca4d0723168d2cc332a1b9,
0x16c6be1d14ad62ab4065c54948e5a132,
0x69c8455432c87a1f599a34d81946e64b,
0x3fd3a63e1c3672bbd9fb743128efb0ad,
0xa78c69f1c569d8131b428da49ca5bf68,
0xcf0bd20272159fc4c54ff6f3720cba7e,
0xcb946b8249e3bfc56615b344fb1f88ea,
0x2bea99d69a9a874ebf9231c6be9d94da,
0xdc9e2b9a44710f75171f85f890240b85,
0x13d7cb668a96be50d1a37749c6a64ce6,
0x4a679f0cb50a8f537ec7319ae2890df2,
0x25482f194ec4f1c70f61b94802942429,
0x013e130852681cd240eeb0cec00f2b16,
0x13b0e8dd052ef83a6f3a365987edc2eb,
0x244724320b61e595645311fe5cb9f6a7,
0xd7837e1048713de36a41f2c14334b4f7,
0x78aacf36c0ef203f27b96d9513e17c3a,
0xb76a3348f724599feb8a145eef85c0e7,
0x1cf055c0b19f64ab93c1ec8fbda660e3,
0x24c1e16df2783b3335cbb5fc88abe3ce,
0xa5d745110305208fafa082c94e49628a,
0x0e54298a7e48d28fbf343649dfdcb169,
0x07c90dc2480424ab554e7b6c8fd360ec,
0xcac9508e1d2e021b23c0d1d8ef97f315,
0x43d0a0395013c7759d7371f26e995b7c,
0x58875552e693ad3c5c60ebb41bf0567c,
0x961ec97456fe547f04d51050e2ee130d,
0x95084e7e2fe76ad71bc951ac7d63687d,
0x1cfeb213c6f35d9007b6ff7a2b769cb9,
0x5aa5c0bd5d00118ab4c3df59736e3a20,
0xbd64271efff5439966eccdc417d15b8f,
0x1280fcc8840d303cb417ef5b438f0def,
0x000389a264cf7823561840ed206fc398,
0x40b7c7264ca58c9831a0e7d29617c524,
0x4eb7865db0ef6ddbc00f1ac55df689f4,
0xd9e47b28ade93ffa790b7ed51ede957f,
0x9466e6e68841b4e0ec3575e795bcb5de,
0x332e8eea7475f95520785ce7578dc845,
0x11219404aa368b6f1cb93df1e2cf3a85,
0x3f8c47aff24806840204fd8ef12c2cf1,
0x649fc425c48d0df86d139028e8f599a5,
0xb019e70e825b7f85c04a1dfc65413efd,
0xd64b08d025390254238ddb2c09434e91,
0x794253aa55ed2b5c7d62e3bfd4a0049c,
0x808b6378e073824770dbe60fdc40ea58,
0x772599c6f3f8f0093e9afa5830ee62fa,
0xd085dbf321317bee279a54c3ec21f6f5,
0x977e3ed33dbd58bdb20735042ebddc5a,
0x9ac1712e9251ebb5dc61e56fb3026447,
0x777617b68f43096319c041da8f8a231c,
0x5f5beb1e1d09e34884e343ce818a0ab0,
0x2a124c92c4ee5d5799c2660414793007,
0x4c1c21a79076d3d2b7788a37c5c48a4b,
0xd09ff7b22ff70c104595b8a80060c040,
0xddbfc6c456e097a3e7c3676011b12def,
0xdef929aaa36cfb41e15126b68f2c3b15,
0x44039a2682efd18b8eb7e38034c8dd8b,
0x7eeaaa6a4b780aee9c68a3b6439ca1a1,
0x486195641a0e16cad7c4ef77cab78c6e,
0x94c0e2438e1c3749d65994d25fe00bca,
0xd121c9d1644aec396ce3130caeec623f,
0x7a9f00928fe455fc32ab98f0aaca21ba,
0xc6881c97c38fc70eea31ff018aa78764,
0xb67a6bad11bf203fb4ef4d2dc7e54908,
0xaf1d9da57efbd751aa1703dda9c6ef2e,
0x3ce723fbd1ff00188412c526b23e65c3,
0x33c51c9f730e9faba0ebe92b61f6ce22,
0x0291954fe84c4eade9cdb35259e43b20,
0x90ef068d9806410a68741aba4f311ec7,
0x4c708949e2606e994ec5bdb9453ce716,
0xc60aa834d9f8c569ae81c095f2f23929,
0x1abee8531820dc1d325821c2855ddb61,
0x1e8d01fd2d70ab165f6790480ecbb5d0,
0x165b2dfaede00b7f6612941e3a04beb3,
0x390fb1fd3d1ff6e3deafd4a9831bfb3f,
0x103b978337114f7d46ca9f90131ed2fd,
0x2fc080afcaf11b4ee301df535f2a7e42,
0xafb70f8bba99221fa11f4e9d99d5db36,
0xbdcbed25aa88a8bf9174c353b372529b,
0xd76a1d888daefd65e18e2947c491dc19,
0x7ae6affd3e173be32480c739285b03f2,
0x28680f040b1bc80581f604b786afd09b,
0x081c69f453258663a1e66d24883cc1fb,
0x78a9d0c75d235bd98e206e96e1461bf3,
0xd03f34ae20460da24d5227c38d506bc2,
0x6c0763bd28b4234055080d66df648d2a,
0x79bb2525b1dc2e448be9383ac3539c62,
0xc88b44145983c648c2895cf477d022f6,
0x5a214e8d9b73737f2a48f0b4b5b9e644,
0x42f0d3b2b3c53964ef53e4d3be76fd29,
0x601c6e4ce1781b914b4a29e22a3b63c8,
0x99710ac8ef00c4e1c12904da4455cad0,
0xde3028b48c6b685bc42f8a16261fee4c,
0xa5fb77237eadb5ac58dfa25a3d4fe92f,
0x6b6a19c18b8c4c826cee041bfb0212a1,
0x81590e21905a2ecedd40128ede585907,
0x20ea014bce9b429d0a000e1861bbbb03,
0xde9d9da1f81b745fe97423f0140b1d2a,
0x5283c537ade5c208d7f8dffd5a2c3887,
0x94ca815a03b89d491ec21fd4a44a0e01,
0x7c841ea4a13d56471cd39a1cc6a2017b,
0xd3aec98c209a0ba892cdeb0fc36b1715,
0x9bd0572f727080cbbc132e4e624ac695,
0x4aa3a1bbc75e410e99831826ae1050e3,
0x3d6e34a7ce24ee2fa9c677a317aac02a,
0xd8766f3c728893c893cf3c5c702df681,
0x53a96e5aa58da5295781905b3f4a6b36,
0x46f00aa1c83991882791613a261f71f1,
0xb78bee4f262a925814d1caeaade01496,
0xc848c96b46068c10319f6a8f5926d5d7,
0x137128b80155ea05398db23b41328953,
0xaedce0139cdb1d11c7da5a48b640b531,
0xaa28a52b1ff0048f50eba31089f459ef,
0x9d38ba46e8a9eb3678330fe488193deb,
0x8df1f22584b8e4eec40c408616911451,
0x9d4cb6db2ecb280ce1bf70f0b11dda6f,
0x1b056b90b65ebfc8512c8201e09cc33f,
0x07fdb1222de4742d57635840d28aa5ec,
0x82302c5724d00730197371b0445ccada,
0x63147e6f20d3917a6e1cbe18bcc075f5,
0x1f5ddcf16c0b71e5c1acc730593f5798,
0xa55ccbb7c57b27520aeeb8f41405b7b9,
0x543834a8e53f1882324b4ee54d496f9a,
0x248593003057c13dac78e28f980e38d4,
0x791be0b9ef906470a7746d63370d803b,
0xa31eaa26a15ba4305905537b15f1a92f,
0x3684ad2eb7409488010fe6c7c645d192,
0x05a763c826858dc1e536c1fbe8a8e37a,
0x28b0d87f0d9f79b55f15a98199f3fcbd,
0xdda5d41477265680195e2363bc880cbb,
0x8a1ae0949980c23544ec1e37b8c079b0,
0x43a4ea24b5ad9d1082599449277214d5,
0xb220660cb179d856a9b4d9e6cab673ea,
0x498087784aac626171a25d1a0f7516d7,
0xcbec6bdc14d8e3a969272813842439c6,
0xbe6ebf491a054f46c8d9f1cc226d639e,
0x8e4d60c6f7f2a63ba649c46b2d6645cb,
0x18eb29bc4a6c4e74bbea2dbdc87b28a0,
0x23a514467276dd1ef2ce6682d7300a18,
0x54df987b57e2ad7717a58d275923fa79,
0x0e7e164ccad1ddd0b45d718c378d177d,
0xacb30f92cb8a4bf3c32ce14e113707ff,
0xc309d8fbc060869a8c696369e43c277e,
0xc6b80e5d117c23ac2f567fbf2f0b46fa,
0x42bddf1de2258f4d5dc4f70b041d3f62,
0x300ff5a359b1b5c0d7b195f49c3d31b3,
0x776f7d128381fee2809cf43bf7167c04,
0xc22a50b847d6bd10b28cce1a748b3d32,
0x226a41c4a69cc9c5de6e9b1ec6a335e6,
0x73d48035cfbc52bfae723924b48fd773,
0xca7b6c50b3c2a22458326bca9cafa1a0,
0xbad4d88b730b322e91b2a26cbec26275,
0x4a27ce5b1858dcc1f36d112117d4faf2,
0x2ddb54c3e2620bebef966e1f1d04b89c,
0x2acdde395342d4a692820292d17a8d81,
0xaaa4fb37f0fdc16b7bb9b26263098045,
0x549378bb601ac5e8f3b07519e2a93a50,
0x01488a7650a1ee831f8822cbb4fddff8,
0x01bf0f8f6b114c603f0a37466adb5e42,
0x84d6133ea640cc1f10a26eb80d210171,
0x8e8a9e0df247ab162fb1e0088d0c0abf,
0x2ad7f3072074155219e60e2817244469,
0xb49b632abf985ffb461b589467ea8ee0,
0x556774a2f8cc029948e4651938d14644,
0x03c6529e908a28e82732cdf6f4a4a849,
0x10a040f3aa68c153d870d60edbc05d1a,
0xd281f9f0558a5d7ed255620e78fa354a,
0x9017b53f15a31b25c85b8286c51ab5d0,
0x2b473dec014bd94fa86bc394fd2aeca6,
0x2287b0595191422ec0ce8b664489ef2d,
0x19ac5f2e7b000b0fd3a8096d2fa88e5b,
0xe08d7c4ce93d6e12287f86cec59ece6a,
0x3622b1e9f7a018b271a25b88e4f780d5,
0x557bdaaf3e5f9e9d2f8781aa92a6468f,
0x159dcb610f92e517069096f6d26edd87,
0x65f4f36a065734ab2665dea378eeeacb,
0x33ace6f20c05a6c88828bcca0d7fc9c2,
0xd8b0e6c0f7394c886059687d7574575f,
0xc86a4f0830c966473efb6f3c0d30a5e1,
0x611ebb6b13882f6edffa4dab34928725,
0x8535566d9662eb4f639fcb49b48c4b6f,
0x59133c596cd93eb15d99e975fe82ef76,
0x74a12c86e4d89ea790b5d7251d5e4713,
0xc06ed97701ae54c83cf838487faa5caf,
0xaed5ab7217664796cba9c618e1ab89e3,
0x9d724d31a18b4c0f0758c3e788d0c2a6,
0x3614008bbbc0e1e3aca6aee86cd0fcaa,
0x76f29e4bd63346a4f08e635cfaddafa8,
0xdb9e8c66e28b5eeed9bb0011762663be,
0xdfe6694f94063d6b74350bbd067ab978,
0x5bf60b9d6d25b72b22bf055a232d75e2,
0xdb4c4569a6bdf9efa990a8dc4d5bc8ea,
0x97268ae770d20daf1c7642064a030f01,
0xc1cfbfb8dc06d37352d1ba34311c2334,
0x9128a60760d8fcb3d74a6bcf83a23bff,
0x69d496b7e40db6758ec49e09123ba6ad,
0x9323589f3f5965cb6dee905fca5de23a,
0x30889348a53e399a606db0c8350d9f29,
0x7f945a3986d340eb13a33d85ceb9eb9c,
0xb6059a0fe9d6642d61d01bfa341894ad,
0x74e0ec0a874ec283d0e514f71512cc1e,
0xdbc9093cad489151f1b177a6746743e1,
0x52dc1c7fc32d9fbcfbf38b933201fd55,
0x04ae20fbe21cf529379c2663f6b80e92,
0xa3b184050c25113a7672021a97f27638,
0x6338ca94b6596a29f4ae01ee652defd5,
0xb0eaff7b4330988fb4799decacc15a44,
0x7215f343ef627b9ecec840a2b0a73f34,
0xb6f7db571cb7415d609f0312c01756d0,
0xaaf6c3c34bd9bcb6d75c44b3a13358b9,
0x8ff973f14322ca8845da404fea137185,
0x9058187bd573bff52321c71271413a82,
0xc941db99820742e661e7d228d122189c,
0x0ca4a1ebf834b60120904b45c5be5e28,
0x1e86fefc6b9aa985e406e96f336db5b0,
0xcfc5330bb13739aa116abc5e78001119,
0x99aba64bbb0c9e7cf77bba74049af10f,
0x316e6d9c7043e3a47017640c5f0ea621,
0x65330cb56e59f484d273a420acb79b2f,
0xa1696cfe7602696b835d2c72142bb26d,
0x981feccab83f5b24b5327b0a916d8e09,
0x9a6b812b12e9b67e27e6528fbd02317c,
0x6ff3ba5fff38c2c7b2abc83cf785e9dd,
0xa1362094147f569559f0047c04385c64,
0x1ae2cd9c7f35fb85ddee0c606943fa26,
0x7030f571231fe93759773f7fbb35fe7b,
0xca9ee26ff8028f20134c12213268ef74,
0x4ddea53e18f7d5c337d9862fe3c841ff,
0xabeec326fe1fe1a054220c08aafa4fba,
0x12e4ea1e84d4bb5d1f790713b687e358,
0xb2f8abd3b2c9d447592697cab58444fa,
0x66cc8c6c3e11cab124edfb309d8112eb,
0x070b8870428abf1ae610711e66de91b2,
0xe068729689117189452e05ff31f708a7,
0x528d90162a6d1d02f31b11d6da400d91,
0x45c925eb35a3a196f1efcc7e61a9e5ab,
0xdf8b941081b9833f017065453045f09d,
0x50483d5d93d9809610a3e434924217c5,
0x26be0ed582c897216b7497d91565870c,
0xe2d4d52c22bb14540b40d761a25b0544,
0xcaf3524661508fed4b65fbcceada6ec5,
0xa7d3b69e2c33c5fe3e60b4625fecf2a4,
0x35aaffe8a56113f7612c0dac5e06c9fe,
0x7d9b66e04d3fa123eb90b815c461b870,
0xc4c39e67ece0d2a67c7a9299b6188ef3,
0x3084524e90ca403b8c6edb2f2e0ef86f,
0x4a7e0a917ce5b166191a8cb04dcf67c9,
0x4c85102b9a55944eeab6cad8fcfd54b8,
0xd8670ae5ba84c1379a48b4839a244f47,
0x11ee4c1bb8c0286344c9d33f3d65f16c,
0x1cf6246f1107be5081ad7ea62c8b9a9e,
0x9a6ee131e8bd8762d1bf635f4ed3775c,
0x0b51fe4a54b71bdd980d85a547fd5fa5,
0x9a5490819a827514df18dab99ae63f14,
0x9a635e9ddf3a7c562f3fb7d464ac261c,
0x046ef8abee68cc7b15847aef0926b092,
0xaae13425c7cfb43ec45e9eb00fa0b30f,
0x4c1ad1694e13cb8bbef9cf67ec951cf6,
0xd32137d519bfdcc1e34683e2c1e08cb1,
0x2909fa943308a1e94f6c27295e6cdad6,
0x6569170bc651ac93144a7d0448fb88a0,
0x2e9242c206ae32b82b7f47ea89b6cb81,
0x56b82a68beb128856dbe4d3013704cc7,
0x646bd01d9c628e5f18f96d70f77134a0,
0x136807c9fefe5828975c949d2b63a875,
0x909295b6dad474e9842cfa590bcd72b3,
0x229c1b6713b3e50a7b57e3ecde7544c4,
0xdb27555e4c12df205462b68c67a05151,
0x0583e33073b7e78e61fa7e2d8a207bc2,
0xd532bf3d82c387543230042f53a682e9,
0xda699c051caad14bc689f40aba01c08f,
0x1974f227f3c3d0baddd9ca6f8b772bac,
0x5741ec76cb3143d9e0c869c4cc1b0002,
0x73596918f7ac98e3c6dc5aff7721c34e,
0x670e71c1fdf02e9facefe8ad6593778b,
0x7ae3f9db55f27e24bfd2dde698b711fc,
0x94615d6cfcd5a722ebdbb76975e846b6,
0xbf10378fa40e226db465ee8b1d5f832c,
0x744be5a9cdfddfcb2471d7d71a6f6b44,
0x49a0773b519a0f11821600512820acc9,
0xe21117c5991483ad75715cae81382e58,
0xcb6f227aba4fab4d721fa0667a30e352,
0xcdc0e2510f76f8195349a66bf3d0af79,
0x9eb7b94955cea99bd5c994aaa9fc8f25,
0x52c37ddbfb1c0273f95e63f6dfeb118d,
0xd8bd7c1ac57061b9fecc7a5bb6066e08,
0x142208fa2163ac60152a8f3ba5aa4be6,
0x6a7292e660854fdb8811e3a12d8774cd,
0x30c7e49a11dabcdd72949dbeb3a43fbf,
0xcca7f3045988b5a7cd55e0db47550d41,
0x71b5d7ae3fbabd55feca6c7fa4f0ec19,
0x199677c9d398cff44ddf55b3232c59d2,
0xad96e7ef137022392eab73d68dbb9618,
0xbe00eac6e2f586c85009796fc7ca433e,
0x5040de39a52589b700fe3b19f40317d9,
0xb5a4a8f59ada6e2d4e753ec794a759e0,
0xa325c00da91ca327a43038709cc23141,
0x6faeb960f85d32d0c475411e3277ee91,
0x43a2fa8e11a1b72b0037d2944dedf548,
0x96c71099756a9bb0679482507fa7bd3b,
0x8eb93f56b9647c6f59809136899f18ac,
0x545dbbfc512f9c54a65ef5caa92a2080,
0xd0afa9cddfde8547a11be8e158825d3a,
0x69add1f3623fa51a1f77afa113288612,
0x1f93867bfd8ff4be7dc1325c5e250ca4,
0x22c944d75f6ed49ebe2045d21dd71a40,
0xccc3485b05b5887622141bb802e83808,
0x24d097845214a7e694c56dfc75a92190,
0x54e1f2f693eefdc1b60059db34416a0c,
0x260e446c4d58c39f90ce47094db21769,
0x78d58da13b36e0bf30beebc6a72c1763,
0x8e115c376459a6074bd470c32b2f80c7,
0x5caa75bd828f8d63d2ce535cf8e8c9c3,
0x0e08559a29184c0580dc90da2c7706f7,
0xd8515772bc7f10660de37dcd06f7a7a7,
0x196d88095a2ad44420a65a560572e097,
0x48ec4a28eb15707d78e68d9310c0e97d,
0xc5f292d556255cb8149d87da30501a4b,
0x4f992d613a67a191240fd1725b1a7364,
0x9667d58cb89538828b1e791ddbda894e,
0x4725e71c12eabca74ab4ab044e371854,
0xa207eea1f98eedf5b1be0813200bd0f4,
0x25a0dc12be23a67e859165b8b96b0c22,
0x2c3e9b5d6df7ad512dfb7a57d8deecc7,
0x9eb96c0b830b5852418bba7ff42d83db,
0xa406d39b9db0c6e3e2aeadf5331b2269,
0x9b5358fe725b0fd8c44763d5da52308f,
0x1b8e60dc1a51d1258e1920089a139335,
0xa1bdcc8086ea49dd6e691d807e87281f,
0xa1e1733c3dcfa68f8f73c052d15d2504,
0x5e9cc22e4d265e9efd8fbeaaee68e555,
0xaf2663e65b082f32c4a4cadf054f9683,
0x7e16f0a89c13cfc98d160301c206af3a,
0x0a945e07d6c49c2519624b805e52f21b,
0x9e27cce7f3ec181459fecfebb0967e8f,
0x8b541eef9a316b9f4f965fba7cb26c01,
0x01e4204de384b50dfe511ed8a5130176,
0x87848aad22b41a6b50247cf940e19684,
0x353a97709c4a02badb5a696c5b7cd014,
0xd76f5a9dea12a9f5583a260e85b467b1,
0xa3e7a772a7b1a088b75b3a93389b0f30,
0x722870100a763fccf62e06907b246604,
0x9511a0ce532ad66bbb6d12b937211f9d,
0xb62ca20503b4f3b53fd352108a268bc3,
0xaf137620a91087f902634553810a5d7c,
0x407bc1f580a4e2fa2a4ef1ff53cf1504,
0x8c2d776deb5fa43cfa72e4fa47ef24dc,
0x9c40b409f344d761d9b9c259304bb04d,
0xc06505ae853f5f7ca60ab9f7dd1e6900,
0x9f54f7d4bf6374f762fd7a44c783bad2,
0x2aa04d28f0c20e1dd049b5431df07625,
0x24904c66767d0f3e76814dce4e454640,
0xa3eefd26155c68f7b15a9916ba8d7695,
0x4faa33706b443adbefa4750c35b90007,
0x5c33a03ebfc7d1ebdbc62966f817b603,
0x4041fb369f2230630abde5e7df44b742,
0xcb1d1c6e77141d8ff2c94ca3dcb7bcdc,
0xc9fb09332dfc0aa977e4ea40987bfdb9,
0x5bb3c805242891c75ea9a34e278b8ebe,
0x4a9afc7b8bc7682f0ea4c760c842a881,
0x4e7409531dd7b048b8ad065f5388e129,
0x78f30d92280522a3022483bdb8887538,
0x1d0f2e59ac40fafdc956a15d82b085d5,
0x99e677ec7a981b8858a2227c5a6198cc,
0x209fb07d90a7b07cab0cdda4dd280709,
0xa058d1ae962e80cf606ee42f10d55da0,
0x3b36f3b47aad2f76037d0d841ae845d8,
0x2de8faccf2efdf7ce2be30819590453d,
0xdc9bb43bd313ee586aea0c561fd442b3,
0x9cfa24a7e7a1801ed326a29e2037529e,
0xac4b92f609a604c530347be18eba2343,
0x83bf7f8cf2502e0063326c7929f1fae1,
0x4d97567d0723ac408ab69e7ab3c0abf1,
0x713324edd42d50fef1b2086bcf7b74eb,
0xb900c59dae59200e343531fa263d3f4d,
0xd48f751867c929ad6ed6e59d8b619f16,
0xaea3896a6f8fedbf5d6f686c58046e39,
0xb72fa65e347b66b6809307f71786318c,
0x06f182992b35f692973af59d313d263c,
0xd095733d92223d6f7a384779c96ca064,
0x1f4b6dd77d12853d18ad106790aedee8,
0x7ce9272396d358db8dd594d67cbd653e,
0x9b0c0531986814cc516516d9ff5c7943,
0x78577ca92d3d72a4671cbac227472385,
0xdd133e86f4d8906a440e77ef0577d6e0,
0x245379a26ae2cee1e9e0aa5cc01e2a96,
0x88fdcd89c8a6229a53ad492e1680ba4e,
0x559b63c9d4a4c57f04343f24578a419e,
0xe28e851f63b2819f0e6f95485ab6f13f,
0x4f8c86f5246956aba574f4f7661e7991,
0xd72fc9fb0555b5d3c6c6ae27876df40c,
0x32f0509260821bb9f07f0c71c379b759,
0x8819fc65f36cc9b0d6178ab4548675b3,
0x9649b4844604ef590ffb245ec1ad02f6,
0x5dfde582f234ceba00f75575e261f789,
0x961ce17e60aca49ff1bf37038ac9d7e7,
0x8f2dbecd0a867eecc9822021d126e160,
0xcbc1d9b120923a7e786c584eacbef468,
0x273aabb2f77f540e4ddcdcdd87e8b048,
0x9cc07ebc1f1e6551b2e683bbf58ac299,
0x77dcbc9b174082c0726a56a8d1b1aafa,
0x119f595ab46fa286a8a92e484b2388bd,
0x18d1fe789fe19f5af0d1c8c0650c7cda,
0xb513e922222a8161fef5ffc416e842e0,
0x3b4d76b36055db4b9d133bb5f9eef5a3,
0x19d38edec5f45dce1db1b75124a171b6,
0x6b898d41bd681a637f866413d4f08131,
0x3a7cc84ce91d78361722df802f47444d,
0x0374379e0f07de95f54b4f02891eeda4,
0x2bbfe76468f86587ba0f9b6082373612,
0x31a9e1d52c5d58143beaea4c3a615caa,
0xe3ca53aa0b267aa43871bb337c68180d,
0x851be53f8f7b3585a29135604af6e731,
0x15cb58d4f71b11857bcb2f868564e22e,
0xa0dcef47162c9f50d133b1ff692ae879,
0x06b64d79a821d5c4487769cae9666eb0,
0x85137e71daaf2fcdfc4e4dc09213c78b,
0x67b37e81b5ca34c051d32eefcd8a5e6a,
0x787a4daddc970fa397ff49c73a6eb48b,
0x3aa7828007420d2f21a08679ad9f3af5,
0x80735008a8172c28132cd73312e9a099,
0x4b548abaade0ed4f454418492a92580a,
0x1e9b3e9cafc4f4c04762330151b64b3b,
0x525a10ece31d624e55a827ac4f09d17a,
0x286a45c38f31b2ce304a4343b58fcf5c,
0x8f2583526130029101a4b25cac868047,
0x81d1ff4a2134f2e6d8a8db8936953714,
0x1cd1efcd2a5feba98daae15f5c4d73b1,
0xc0fef0df18e39667164bc08d848d8a9d,
0x6b873725447b72cde64422d724465c57,
0x3b09470895158eca1f0d8c2d9dc334f3,
0x2127de28c3e67bba50e6a7abe135641a,
0x0e9978d159d693e4508375fb46dd5efa,
0xaea0f3613b039bf7cf7a11e1456f6ffd,
0x27fb439691081bc72baa65a647f0d90d,
0x045938c91b92ddc87018535e8b5e2b25,
0x4ab1cb118dc84cd1875c2f10ecf58cd5,
0x65ddd228967d2db1b4a6822363bc8103,
0xaf06481ce235f048186e62991deeb743,
0xa1bb5973aed4e4e0b1b53f4eadfc9bb5,
0x760ff6a683f9c242351d0c48e574dd16,
0x275d2b43999f8c4dde7c1174fe73c0af,
0xcf9daec8eae47bbb227a7e034fbc985a,
0x79f3846dfeaff6dcfb912af0ab3c0714,
0x4e4579c88cc9840a0b5a4e2e83fe8578,
0x99ee8185797ebd6bd7b52c51c19f7430,
0x666caf224807ba575c30d4db42d5b992,
0x3ad7da0436914559f3cecaf9246afa99,
0xd34281d29f88811c5d6df82413ae3ac9,
0x09223322a7b59322daf0b11a1f000bd8,
0x7c98a2165d9c69956ceaad7847df2dfb,
0x273471baf9730721db1bebceeec04947,
0x5a00b4ad74e47296c32c9d749176fff4,
0x1ab47fac613f340f5cb1014798b66b1a,
0x137533df51d04b4185b5f5befe82ce9f,
0x8c60331a923676c1626191b9728b2e27,
0x6de609b2dd201093e546ebcda4f5c7b6,
0x8c80fded21d230c0abbe29daccb8e0f0,
0x531ec2f9cea60302889868243c065831,
0x3cc08da8f2b6c5a002aef6046a4b77a1,
0x5a71e492d75527f74620555d0a1dddbf,
0xd635fa14bef37d1d31a02539045bad90,
0x278928429828a26e4ddc2f7efd5ce6f4,
0xd528e12b1644bd4dfbc4bebcb177159f,
0xbfabf6ab41c26dc891ce0ab7c36cc595,
0xcde187c4252a77df3645713b126bd3e5,
0x94404ce3de74d84f8c99b40721019e2a,
0x15ca6df81087fb22678debdb1914fa42,
0xc560ed75f53766fb9e5e74997150870a,
0x727d44563c2e73cc7f659e2c43d21a57,
0xb7a4da5b527c9d2c3b154434e6a394c8,
0x9ce6f5cefb85cfcfe54cf5c45fe592ca,
0x1168a8bd045afc56ff316c9cd7a3e593,
0x49cbbceba03fd9c29b2f258604aab86c,
0x48fa0fe5d2873cc04b6d98cc63707c36,
0x257f6c7927e57f8ddecfdd854146c493,
0x101bd1960afaeaadd7126ae544128bf6,
0x5b9064162f4df321bbcd44c8b386fa7f,
0xe06e84fb81856b39e5668dcaeab025d3,
0x6af568199a8c5af250101f7741128630,
0xcda238482cd5ea0e0cb9ae55b06aa0f7,
0x323bfcf8de8ade24400f354d4842d0dc,
0x51670be0f8b0c439ae524ef01120abc6,
0xb5582ee027583380108b294057de90b5,
0x73b55bf7e2538837db5eaf3a2aa719b4,
0x086fd2423b335d1ed92ffdca4c7f8202,
0x188789437a9ae3b87481f5ad2d6380c5,
0x70dafce220c7dc604946708c29a24d9d,
0xca69029b197bb31459fefe1fcd7a3487,
0xcf156df2428861eec1c84bba1ef95860,
0xd8b78a3d81ca8c4fbdf4548ee7dafeff,
0xa8be63c1d4c14431c4cd004d8c9917f9,
0x198cc998dd183755c522fda56c2fe592,
0xb02ac5246903af994229e76c1745f396,
0x01184c7b976e383dbd00a4462e263ccb,
0x2146506e21d40a831f9db52d6da9a65c,
0x7c21d14f62c253939dc4672c9a77df99,
0x839342b0b86a211ed38d2953ff3e72ca,
0x7a2d513a4c05471f5d1f59c39645c9a2,
0x77894be90371d57634c48f8be6eb7f50,
0xa330242d25789555e430f4bb3f835466,
0x1daafc2e15d03f1c8d0515c0594e7e91,
0x572126cb3e53c0e7d9a068170b02d169,
0xafdb0a6185eca231be77ea42f4642654,
0x6e94734fccf64a9887cac88549da8b69,
0x2ae289c6eddb0bb4a7129a2ccbc72b40,
0x4335f32efe78b7fa5503b63d8169b257,
0x2f88b4db68e0e6093cd36fc5a0206dea,
0x3a022665e61348cb985e82c7fb95330b,
0x9f63652b26050fe680ee3bbc63addf51,
0x45671ba2273a73fc3c832f0381ec0943,
0x29698dfec425e9bd7aaa12068d081ab4,
0xc9bd3a1f82565aad3a60b7f8847f5be0,
0x9e3f218cde1a2aad144c477103d130fe,
0xddabc2be305abb1a03db0f9da1e32d3c,
0x2b59c4df2052d26687866a7f140b1f85,
0x4e327beead9beb3d0af0dfcf6a56b3b8,
0xd43e4d14e22b5105a78171b38dd2fa45,
0xdd73ebccabacc6b0186e593700f9ca02,
0x9e24aa6238e7ecaaafcdb216b44a69f6,
0x7506d6b915335ad04f4138320936283c,
0x8ebe83b6e416d3ab5b5caa503cf97759,
0x36695bc1b44be3660653945afda489cc,
0x52a52ba2886eaa12ec4fe386ad0f9f1c,
0x5997433f69cba2f43a73c527d761eb4d,
0x0d1923f938609a0978494a224efa7c65,
0x46565464a4d481c8cc4c8656d7163d82,
0xdd59e5d86120acc819c57576a67cfd63,
0x192905bbd24d5b0f2ca4347dd617d692,
0xb1a89753705a377c6d0fd14e9c1eff87,
0xbc8020e2ebd121624b1ff6ae00c304ab,
0x8e9be87d19f1b1ab3b2e7eaa7e277bd4,
0x54bb9c563f00ca1cd6da1c803b9df8ff,
0x32c5ec330919c4315ea33f9dd9e6b954,
0x9e6bd5f8b4e962e2f9fc5eeeb300505f,
0x9bb6d85cf1f86412d8db85a6f8a4d9cf,
0xd6a81d5ab05ffaa07847427f8100e956,
0x6603c014f212869ded65716867ffd83d,
0x80a38af7d111679f28d6cf0441bdbb9b,
0x01f13bf3795079953f1664451081df9a,
0xab18f9308aecdf77cc377603000e52b3,
0x919e3b7f079323a869eadd75027ab0f5,
0xb337a7901d251e2934d0d912d76f6a32,
0x8a200c26dcdc0486633598f4ebb29859,
0x6dc20aa4ad89336bcb300a4d61529d8f,
0x53ed9c279f6d95c238e76fc25a759aa9,
0xd8261a51816f389480297a969641a6d7,
0x6f2da4c0397beb6f7037e93e58d21556,
0xd19457a7a61678d473fff7b02e8636c9,
0x3a8cb9866daec4ccd0be2091231e95a2,
0x9e87041c2aaab3b5403bd1d1f3e3c0da,
0x7072f6a135451130ceb44521327fcf54,
0x0c6ae9aaadd31dd49d283a26090c6899,
0x42e8960937447c7f93c08e30cfd90b7a,
0xa5e23a399cc31676a757d625ab5d453f,
0x5a44fee84c698ac165d5e5175b5b49df,
0x56c868edd1ceabf856cc0f4eee0224b4,
0x7aae24aad4fa3cc838f394a584ed2458,
0x0c11f6728aa79f7d9975feb665d31cf8,
0x133e9cf7fbf61d90fdca141ce442ddd1,
0xd7cfccea82dc736d0f3d51858758a897,
0x1ce5f07dfc900d0ad886a98880dfa0fb,
0x32d546655b4a1c72c7f8761fd2b50607,
0x590a1b14792ea8661e96f2ba6ddf8476,
0x701e25a64e58ec4328ba16c374f5d866,
0x4603640d2f452af13fed0da4c830e8b7,
0xe33775398755b2807c519ddad06c2369,
0xa783408de2cf670eda00dffb0deef6e7,
0x2270ef6e7e82fd061df9ec855f7961a6,
0x1aaa1f3e2eb956106d16379118d8b9ae,
0x2104d0832dd7a43ffce7ff9cefe529d2,
0x0ddd19e51f8e889ba36c1e29fc2cfa96,
0x022a2be8c2641a9f5e451591bcefc316,
0xb69f11c2f217c2e29daf59ad7652d90b,
0xb87b2dd09a8bd3bdd76d03cb67db01ca,
0x322f06b4f6c4bcf460a69004508b1452,
0x67bc7fe22e851be022ea31a6537d4d86,
0x705cac6e1a41c61bdccf431dff844925,
0xc62a5817c3ee436325ba162a69fd2611,
0x7f04f91f6f9c4960888303ed2878b004,
0x1d68c50a9dd82e4469306d76c280cdcc,
0x7e7658fe40aa7815ac116e43538d53da,
0x4992b9a2069453f6fda3424a9a2f4886,
0x3023ec7476a4219d66d50664b096bd39,
0x70142a941ddf3d26307b1f8841097a10,
0x793c07512dafcb018356228b67652b5a,
0x5b296c410bd3ef299873865874800a59,
0x5358dfd949103d38d6742195f1244128,
0xa42421f21c964f87467f166b3c114d95,
0xe3775d99191c4e010e1d518377438822,
0x4c8b774b50a9754428b627a499d29c2a,
0x567d23fb6fafe93e4b9deef795e3e42d,
0xdb089213ee12fc20a32ad037f4385ff2,
0x18f71c583f0fd971140328ea39202fcb,
0xb0096ee74b6741cac2cdfbef914f7d3a,
0xcae1343ff1cb0a18e1effbfcaefa8960,
0x99cdb00c4dc92ddea59a2c6517dd05ce,
0x8bfff59efffdc875d783f86eecaf5a26,
0x8c49cec338691e518ee5d0a093841edc,
0xb0f072359c2f9d61d7b8e010447530cb,
0xd160d77e3d3e072a28b0119c11bdaf5a,
0x6eb91f0addd36abe0cf4b82f04b7b772,
0xaa77b32a24c8949219a62d3b22995770,
0x580c06d1c837e5295ae7cdde1613f31d,
0x9db19d1e1a743b9624f44513126dff50,
0x92a2062cd465b16ae3ae3e129421218b,
0xd81f053a9b31c62e56f3500e7ec58629,
0x172083b1e2b7608b16696db49e63a114,
0x3387b4838c814ac9ac9a7565b39b962d,
0x7e532c1d0e693fc4ee856f2dbf4d7ab7,
0x884a824637231ecf91aef9599c986dfc,
0x9c5d8c0872a72dcebd5ab688daa7c223,
0xc10dc13e26950da0a27bbe815ec49c5e,
0x86426cda75b4e74f195414ba2302448b,
0xba94b41798efa7259e6739a455c6e592,
0x819ce0c52e44814350a16c58b94448b6,
0x7984bba97e02165c7f125a9b43c5523e,
0x785b220a7f8fb70ce1051435d6ed6123,
0x8daab86f2aa4e53b6daba99c1e81562c,
0xb43fd12c19922bdf3025d03f6a32ffce,
0xce331ea5b5856b3dbd8defd397171b54,
0x8d2ea6b0c7f4d6a0e47bf4fc7d1060c6,
0x99cfeed0937baf54b252be5ce5b2b136,
0x0f4d3f84b6e365858f9b527f6c80fc03,
0x5eabccf469fe2cfec5c2a8a54b4d5918,
0x36614094fe3f2090d0e110a5148bb548,
0xaa716e1f8e7b52e6f8c0c633ba60bcba,
0xa8a15cd54e5c56931fd5da8bb6c1a5f7,
0x94fa5108e4f0384a8f4764f460476556,
0x43bc7df8a99053ad899c3024f6ac8e07,
0x33a99365d10f4b9b6f93940eb60c9fc4,
0xcb13954e55f03c4230d76d2ef52472f3,
0x8249133874ea08f5a670b7ed41b96c59,
0xd864a9137076ff389943b5dd5234e7bd,
0x4d98296c620d908b210622c69ef71103,
0xe4069c6c8b7dc2ed4a1596e2ccbfe89c,
0x9e91dd6ad19b64498137047da86abfa0,
0xa369155b4fe166713e97e8c388e431c7,
0x7861fd5b6d89e94b118931bcd0be025a,
0xe18d8b367264882da6beff2ebcace471,
0x944622ade029cc2e668e8d2a1191ad44,
0xc63f36b7eed97e2250428227ce8a17fa,
0xe3ce807f08bdf5dc9dce82921fbc023c,
0x09387f0fc71e0148d8a1ded9978e3a9c,
0x8230b74b336bdccb88bbd5b754af6d10,
0x1d940967db3ce5c78455a5726b94bfd0,
0x61297ecbb563eedee4ddc441e04f0e09,
0x4219bb3d7ad801a332fb09903ffd6de2,
0xa301b56d89a403bc5e8cd35222ec0d38,
0x1d75bc128e327380905a79cbeea6c528,
0x05882fe4b9ed055fca0c4f1619696c9b,
0x1133245b0de1d40702d647601626b7a4,
0x54e6d04a1a46b3a2b81e0db7dbde816a,
0x735a27d1e0aab8873aaeb05c334ffd1b,
0x3f561dd0bc0d5900432961eb4c87ee28,
0xcaca7a36ea29241774e34e7f3b8c0d2d,
0x7d7a6a03c34a141b43f209e66fb1947e,
0xdd02d454ab989892c27b011a46296631,
0x0c4bf5d2a66f493993dd3c358a186772,
0x94fa339d12424559c3c10dc21ed7f253,
0xb88498ed2b4a0c19111f79b9a696fa62,
0xe06c7a7d9a60043f9991ee9aaf1e00f6,
0x821cbef8d3366d0b925843dc6d08ad84,
0xd71b2c525ceca7dec7c28ee3994690c2,
0x6d73e9a4239693eec49f523965d01c44,
0x8250ecc0f9b6fb4b73cf97b08d86c8bb,
0x63fcff3e37f7fdbc1edaa06ef356bb3a,
0x54f2adea4edd26129761e979a20cc67d,
0x5bddf30f9d4a657eec56a9ec42bcf4a5,
0x15902a06e89df5eddceff8b7847ef095,
0x63c4e72ebd91a7eba0a93d6f47a4d67b,
0x216069af6574ab1290d044ba2ce6e4d8,
0xb01f1b9d9107bed2a4c45ec08a2bc8f7,
0x998a9816b824c0b1bbd9dd55dbfa907e,
0x018c01906ce4337fc0d2d30a49b25a5f,
0x1eaa7bbc18e1d9688f849d96e2c6dfbf,
0xb1d1fee869301a90d224f50ed5b9339c,
0x0dace3b81fbecac316079740712c5d0a,
0x73c8906aea5c7fa6eb4aa844f583b300,
0x29b6c4183653e6b1c6a7511e420957ce,
0x9f7d3e82e0f95ff0639d0ec2273fd3c7,
0x034f3f2d09644ac25aa97e648eeae36e,
0x78b17b096c0539069b6e56855294f439,
0x64282c270ccb7fc7fa6e14ccbecd36fb,
0x28d9f8be17db6f9be431330e4dfd42db,
0x45f2e5a602979c80fe679e89101f3b2b,
0x776f0826f219cd22cb2286acd58a9b02,
0x656d7b25ce7b4fe77d2b176d54e44791,
0xaf76c46059870d8e434adb5c1ad2173c,
0x7e5ef79482d990dcfdbdd629d633c81e,
0x14dd7703013bc9d43e829f689a9229d7,
0x673f248274ab6661ea9859ffe831cf46,
0x48ddad43bf8eaf30285d9917999acfbb,
0x0e2833511a7ea6d03cf978bd33b447ff,
0x002d5e4e3fbe771e6004f54a2e101a3b,
0x4bd2de19bd26f057b6cf7e66eb717614,
0x86dcdc27614452acc7f5cdba4bca45e0,
0x159733dc6522560757fcc27ec0bfe991,
0x802c6662164e30e87fa061f507a441b6,
0xdd4e5a49d3d5faf27269214c3c9f2cc6,
0x3b12647ede77061a62a298f8947c1270,
0xc6f5a94809ae0c7f8e5b56aefb571492,
0x233984f11def1debab1433ab73fafdc7,
0xa43da0872d7a42f507f441c9eed3b448,
0x94cffdacf89354d39977e0cb87f227e7,
0xd13952c386cee720e828e8d9eadd0e72,
0xc9223e0d4660253a4a3b96e936f6b3c0,
0x465120e4c38373569064ef86162cd2d6,
0xce7350d23ba8c01c2159ab6eaa9c884b,
0xb038de8206a23f6d32dd59ef593944a1,
0x8065e654ec36b412b3926eaee1ab95b0,
0x76fefab7fd4f5fe70e133ccf317b9fd8,
0x331bf47a6ab7870fd83a74eabce7af57,
0x901f9ce2da25cec268b13caf4686778e,
0xd95f556deccc1b5e4d3477afd6b428be,
0x98f1ef7246461036576689c25efb8fe9,
0x889538cb18d3115a01f07e88b2ee8cc9,
0xb6f83c21813c7a58222fab092cc82e97,
0x3a2714623d54e2756bd7cb3520c7f2db,
0x48f12e96cfcaeb64f04d4643d4492a31,
0xd256c346049c117db0ab2a1f770dc6c8,
0xcc31d692b6377a2115b0921481f47b3b,
0xc62c013152300f931630b16767684a57,
0x0e13ba6d0cb419caa4277070b86366d7,
0x76d7e909ac349f43b7d1996de2c9f8cc,
0x28479c65225d6fe7238680167f03f70c,
0xdf4d379004ff8510bb6640fd0709d314,
0xbec0ab6dcd5db22ef0917ea1f224c126,
0xc1ebd280ef4b2d153fad1e6e2a9fbf76,
0x6156f85511240f9e0eab1d56e479f9b4,
0x391fff449b0f3ddf04ce1174425b9465,
0x6baec5710bbac61c2ac6562ed1b766b6,
0x9223b3d945818ffdee693b3e12e9d6ea,
0xd2163678c3a70d2b7ae986ff03f770a4,
0xcd251b13a3f67501a8e2e0ebec03b1ae,
0xbe90f71992ca673e74675254666e7d43,
0x68afd0a96d672c91ebf04c3ff0c54e0f,
0x5cda9406060abc53d8166258fd09f479,
0x561c321a03268bdbfcc7b92b4c8a1f3d,
0xa839a8deafbdece38bfc4fbc49c2bdcf,
0x7d3dc714feba32801f3122bf367c1c7f,
0x32cb855e2ecfd687a2ed5e63c71475b9,
0xc3c9ce4a08cfdb3fa9107dd2c01215b5,
0x267ac5426da10bfac58f72a6a5e49fe5,
0x0bf5d3df99d1c1e69212f003d754d65e,
0x519026b5c5151a44405044d9382c8216,
0x12a779432e9e7859cb4784e1c31a5487,
0x331a921ab7b0fd8164a5d533c23cbc33,
0x77295cc120a937a63f9a4b01cf54cbd0,
0xc7ae39e29f7a8904eb13e285ddf28e09,
0x744c5875a3bc0e183d7aa7852eac5330,
0xc79032a750dfe837507cb4f7058eac2d,
0xd2496636c42bb1db7142a154776a50a6,
0xdb0b20726921fbb5ab9f2c34d6c18114,
0x80f5b5d170178dfd8755a984acfbe463,
0xb36e69cd0e1b2aa8afcf9048e564b4ca,
0x8310b9ec00ade7a390a4875fdb469bf9,
0xc2bb208b8de510b263802d21eb51b996,
0x89f26d14014a67bed3d59a674ee50dd1,
0xdc7745bb250b5d761803df1a72a3d242,
0x17e7a37dd40b12e287faad1e9ea1534b,
0x243a671fd29dc3caa99f952c32d33fb3,
0x83ae4ebf844e6f4313c6f786c41a4a27,
0x95734365251141db71d5e7b292b09c35,
0x319970fd981e6e629af61c0ece255635,
0x6be72a321c9ec10d694c005f9f5141a7,
0x7d933674679d65a97bb7cf8c67c7c1cf,
0xd8b92116d344529b6a1774d76489c640,
0x2785310fe3484800b82f588493b7620f,
0x4924c23fb47b50e38561ba06629265ce,
0xb781c5638670b8582fbff8d073272f39,
0xbf6a05f4bd76f17f71c8fedb7a03d665,
0x0c3c89e28766a67cddf6eb81da6b946f,
0x2c07ffdabed67186e32d8bb0b983de2b,
0x0904f6a5af8206c12ee03b5e04a886b7,
0x141d7304f684a9906c56f99d3179ebf9,
0x0afe356a76bf6178c57da23340a9e5f1,
0xbdb67f549261f87157bfadcf9b0cb208,
0xaf591a4a51fdd3f1000e11b52b6eac56,
0x0637f0f1fc14449f20e9504b95e91cd2,
0x35a60ba9d5bdb464a2ef8602348b776d,
0x6fb1b8f166062212dce1f0aba48e0fa5,
0xcb4d042ba9373cd2951a0ffbaa7783d5,
0x9572fb97247187dba568bf06fc6b13ed,
0xbe84c7dc218244fa4e8845e0526550f5,
0x255a21ed3744d97a01d3e26684b25fab,
0x892057dec940b4c52cf5e634d9710bea,
0x97c28121b2d7dbaac9b3bc6d58e4e24f,
0xacf0ee09a629ebf3d53d515b0be5370a,
0x7f5d3f7416726febc55d5df182dda893,
0x8e53c634eabebd207ec104f4a1ded7e1,
0xdbb290a6e21b3a87cee42a20ef30a8f9,
0x2bd0099d7e290a4160a7e3d842a0af74,
0x4b0de1b4c5afd6290a83fa959ace5b99,
0xd00c8655b5e07c15d2cd158e426138a9,
0x1fbbc03ed4dfe95247190c3c207c2dff,
0xae249a6241ec63d3fdefb918db9b5e6d,
0xd5e6859e501c22040796222a517cbd08,
0x33ebf8d21617c1d15a2542da252cebbc,
0x49f7d17217c1909d02beb76d441f7334,
0x18e1a668da0c825010d0090ad8e1ed5d,
0x1c1b72f571c71f0ce9d9688f610414b8,
0x5dd6b6d0c26f6c6335b54a4f49761752,
0x097bfc872489d690a4631feba144159d,
0x66bd623c4dad8d3f3767c18e01abc2d0,
0xdb18505df5151a75fdff58566a093b6e,
0x77418232ad9628dedae7edfb27aa1169,
0x2603fa69323657edfc8695ec1916ce40,
0x4fb460ff8614e8fa0ed100048fc7853f,
0xd65cf6bc4d44ab5ca640d39431ec7eb5,
0x4ac05e3ebc33d5f55c54f621f964b5cf,
0xba213303079572f70a98604dbd3739a4,
0x61a02e05e82d96cb1f55c91fb24899a1,
0x736b4643997a0a2c4806c2348bde3e79,
0x2b3cc4cd8d63d5905d54633c66ed209c,
0x9038ffd68a62473881c14174d1e477f5,
0x04a3f52212e92222c1e5567ca72f79ba,
0x720f57e7676b39c386db5b9bf10899bf,
0xbba2b8e1ce96e7cabc6a62fd51780bc1,
0xdd6250e5f6c1722cb44cc9fe0fed4b2f,
0x6e8acb51ad1f4d8f1761651330a8f720,
0xcf6e494456a9701b4d4c46e7af5aaf46,
0xd89d70327f52d7d392e39de7e5ad8d54,
0x17cfa1d3e5ffe3b6afb533dae4ab3cb4,
0xdecc503ddb87a56cc9c724f3d8f839a6,
0x12001b49990358b8a75dd49a0ae31434,
0xb34bf0fd04784c93f94df81fc3a028a2,
0xb4d756c4b3f9d476c7295bc1754e8dcf,
0x402c936e38944a9d8faf1a2a3562fb8a,
0x18102abcc1fe04eac023646d60b8d4b1,
0xb47f9520377b22a7d07c9a531b1d98ae,
0xabc706083d960992560f1c03f667b488,
0x6d3f6717a67daff94a7d89ec62b07a76,
0x4053bfd012ea8bf0b53ef605ddaa8429,
0x1a57d8317ea89cc618f999dfbe470d1c,
0x1dd29b2c764638e4df6310210a019589,
0xa460df868b0e1cba93c6aa12726d3577,
0x81916c70a1729c1fb83bf6f853852ca6,
0x780a4b91d78709ea95921dbf64f2c0a8,
0x64a55d28a27eb8837b8d039f2a9cda50,
0x29bad3b456999e9d089b2314e3475b92,
0x7720d77bd408c0982ba4d7108fdfb825,
0x05bf07b78461c71b348771c90f77c1a6,
0x085b2bc5b751258657cd197486e459a9,
0x154263f7035551dbc32983abb4c74c10,
0xe2fdd31e54b6d4e6252ec3a5901c391b,
0x83e23109452e43cd7214a3ad8936912f,
0xd4bfd64fddaa00eca9b26a1242684dcf,
0x34db0a2637ae912d995b7187b7d30977,
0xc1351174fc56ab65b3e988e7f3a0c45c,
0xa22bbde03c1c2aec985a3c8a1e40d737,
0x0e6d753f64def0b695a8c4d117019118,
0x88b6d13c52140b9e4f6f7601e4c5fdea,
0x4a913849a8a21f2dedc9f02140bdd2eb,
0xb28f5c87a9c75e05c0d208c142d1208b,
0x08552af276d31d5fbf37158c45c4c73b,
0xa0f6954ba5016cff9d6f75c1701f73ef,
0x31520b7082bbaf42bac78582bb171c43,
0x8d1f78962d3f9f95d3a43fe062d3a1e2,
0x9202f017d5372a63b27c9a3ad614ba0f,
0x01d32a5d07c4ea68a1fd37ac3d599a64,
0x3e4ea76da0b07e571bf3178e92985920,
0xd9f6934f987d2daf1743af807ffa3998,
0xad66b50a3f13e6f056c3ed6f83458309,
0xcc5081569d34a9a710c7be84e89e573f,
0xc914b3a0a51ef48a656c0a3795b8c75c,
0x4ffc6d4436628e75c0f3314a342bc7e6,
0xabaeeb2b7a62778243d92aa18eba7578,
0xa04d46bfb2a828f47c0a223320530b71,
0xb0db550d59baab29530996ec84c61497,
0x8bc02f23735ba7958f961e81307ed8a2,
0xbe480cb28b465663817bb5bcba221929,
0xbd539515a1409d9152b13c4a4a37c740,
0xb2a5d008527dd8660cd780863c403423,
0x79e869412cc3cfa8308713e0bba35eea,
0xd6c05afa3757a1c0e1e7f7d43c4e1f16,
0xcf7e0e4538763f63152cc0db481a45ac,
0xae62b81c79de06a05954e861403d4eab,
]
xs = list(range(1000))
import matplotlib.pyplot as plt
import matplotlib.ticker as ticker
plt.plot(xs, ys, 'o', color='black');
axes = plt.gca()
def to_hex(x, pos):
return '%x' % (int(x)>>64)
fmt = ticker.FuncFormatter(to_hex)
axes.get_yaxis().set_major_formatter(fmt)
plt.show()
q = 17560823292485810621
p = 17260683863472602563
n = 303111819233903650638787601663617221623
e = 17
d = 53490321041277114812464604913116260313
vals = [
0x00000000000000000000000000000000,
0x00cc5b325b06d6f3c93e9c36ee9546ab,
0xbde932133cf18e7c4f206806d252681a,
0x89acaf80eea2e9513d7f10af9a9bdfbe,
0x8dee2e886c276366e0258dd762ab0ab2,
0xb2b4f816772a1f6af0d9435ca3a1dbfd,
0x6b2c2e2f9f5a8ae4951e46e1caee2a05,
0x8ad233346d98cba40ff202e72df53eae,
0xcc97c682cc56b3ca25ab1e8476c06631,
0x988b3b37afe97a8910abc10dce87db17,
0x47909f5fa6662c5ffcc1863cadf5a32e,
0x5f172ad8ecbc83b7a28ac3ff1484f984,
0x9937592ab41d0535e497c4de1786f01a,
0x021b86d2332e4b43d20ebd0844464e80,
0x6edbdc525743a73c4ec0a1d178ec3530,
0x8f567789c5562c1991cc2b0ba48778fd,
0xc01078eb052fae49a3487020ec8768b4,
0x15c5bd3f52d4f536589466b3c30e42fe,
0x2302e5a867939ba13722c1c854c00a80,
0x274892f7f70317714306d780485d9b20,
0x7e6b364fccb61280921297322ac56e1e,
0xcf41be0729449e2948fee402344e87e6,
0xb565f70aeb629122ab790add25543d5d,
]
for v in vals:
print ('0x%032x' % (pow(v,d,n)))
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment