diff --git a/CMakeLists.txt b/CMakeLists.txt index 5e94b22d..6a9a7e1d 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -130,6 +130,7 @@ target_include_directories(teqpinterface INTERFACE "${CMAKE_CURRENT_SOURCE_DIR}/ target_include_directories(teqpinterface INTERFACE "${CMAKE_CURRENT_SOURCE_DIR}/externals/nlohmann_json") target_include_directories(teqpinterface INTERFACE "${CMAKE_CURRENT_SOURCE_DIR}/boost_teqp") target_include_directories(teqpinterface INTERFACE "${CMAKE_CURRENT_SOURCE_DIR}/externals/REFPROP-interop/include") +target_include_directories(teqpinterface INTERFACE "${CMAKE_CURRENT_SOURCE_DIR}/externals/stbrumme-hashing/include") if (NOT TEQP_NO_TESTS) add_subdirectory("${CMAKE_CURRENT_SOURCE_DIR}/externals/Catch2") diff --git a/externals/stbrumme-hashing/LICENSE b/externals/stbrumme-hashing/LICENSE new file mode 100644 index 00000000..e540da66 --- /dev/null +++ b/externals/stbrumme-hashing/LICENSE @@ -0,0 +1,10 @@ +zlib License + +Copyright (c) 2014,2015 Stephan Brumme + +This software is provided 'as-is', without any express or implied warranty. In no event will the authors be held liable for any damages arising from the use of this software. +Permission is granted to anyone to use this software for any purpose, including commercial applications, and to alter it and redistribute it freely, subject to the following restrictions: +1. The origin of this software must not be misrepresented; you must not claim that you wrote the original software. + If you use this software in a product, an acknowledgment in the product documentation would be appreciated but is not required. +2. Altered source versions must be plainly marked as such, and must not be misrepresented as being the original software. +3. This notice may not be removed or altered from any source distribution. diff --git a/externals/stbrumme-hashing/include/stbrumme-hashing/sha256.cpp b/externals/stbrumme-hashing/include/stbrumme-hashing/sha256.cpp new file mode 100644 index 00000000..0ed05277 --- /dev/null +++ b/externals/stbrumme-hashing/include/stbrumme-hashing/sha256.cpp @@ -0,0 +1,434 @@ +// ////////////////////////////////////////////////////////// +// sha256.cpp +// Copyright (c) 2014,2015,2021 Stephan Brumme. All rights reserved. +// see http://create.stephan-brumme.com/disclaimer.html +// + +#include "sha256.h" + +// big endian architectures need #define __BYTE_ORDER __BIG_ENDIAN + +// Modified [IB, 2023/03/18]: +// see discussion here: https://github.com/stbrumme/hash-library/pull/4 +// and here: https://github.com/stbrumme/hash-library/issues/1 +#include +// previously: +//#ifndef _MSC_VER +//#include +//#endif + +//#define SHA2_224_SEED_VECTOR + + +/// same as reset() +SHA256::SHA256() +{ + reset(); +} + + +/// restart +void SHA256::reset() +{ + m_numBytes = 0; + m_bufferSize = 0; + + // according to RFC 1321 + // "These words were obtained by taking the first thirty-two bits of the + // fractional parts of the square roots of the first eight prime numbers" + m_hash[0] = 0x6a09e667; + m_hash[1] = 0xbb67ae85; + m_hash[2] = 0x3c6ef372; + m_hash[3] = 0xa54ff53a; + m_hash[4] = 0x510e527f; + m_hash[5] = 0x9b05688c; + m_hash[6] = 0x1f83d9ab; + m_hash[7] = 0x5be0cd19; + +#ifdef SHA2_224_SEED_VECTOR + // if you want SHA2-224 instead then use these seeds + // and throw away the last 32 bits of getHash + m_hash[0] = 0xc1059ed8; + m_hash[1] = 0x367cd507; + m_hash[2] = 0x3070dd17; + m_hash[3] = 0xf70e5939; + m_hash[4] = 0xffc00b31; + m_hash[5] = 0x68581511; + m_hash[6] = 0x64f98fa7; + m_hash[7] = 0xbefa4fa4; +#endif +} + + +namespace +{ + inline uint32_t rotate(uint32_t a, uint32_t c) + { + return (a >> c) | (a << (32 - c)); + } + + inline uint32_t swap(uint32_t x) + { +#if defined(__GNUC__) || defined(__clang__) + return __builtin_bswap32(x); +#endif +#ifdef MSC_VER + return _byteswap_ulong(x); +#endif + + return (x >> 24) | + ((x >> 8) & 0x0000FF00) | + ((x << 8) & 0x00FF0000) | + (x << 24); + } + + // mix functions for processBlock() + inline uint32_t f1(uint32_t e, uint32_t f, uint32_t g) + { + uint32_t term1 = rotate(e, 6) ^ rotate(e, 11) ^ rotate(e, 25); + uint32_t term2 = (e & f) ^ (~e & g); //(g ^ (e & (f ^ g))) + return term1 + term2; + } + + inline uint32_t f2(uint32_t a, uint32_t b, uint32_t c) + { + uint32_t term1 = rotate(a, 2) ^ rotate(a, 13) ^ rotate(a, 22); + uint32_t term2 = ((a | b) & c) | (a & b); //(a & (b ^ c)) ^ (b & c); + return term1 + term2; + } +} + + +/// process 64 bytes +void SHA256::processBlock(const void* data) +{ + // get last hash + uint32_t a = m_hash[0]; + uint32_t b = m_hash[1]; + uint32_t c = m_hash[2]; + uint32_t d = m_hash[3]; + uint32_t e = m_hash[4]; + uint32_t f = m_hash[5]; + uint32_t g = m_hash[6]; + uint32_t h = m_hash[7]; + + // data represented as 16x 32-bit words + const uint32_t* input = (uint32_t*) data; + // convert to big endian + uint32_t words[64]; + int i; + for (i = 0; i < 16; i++) +#if defined(__BYTE_ORDER) && (__BYTE_ORDER != 0) && (__BYTE_ORDER == __BIG_ENDIAN) + words[i] = input[i]; +#else + words[i] = swap(input[i]); +#endif + + uint32_t x,y; // temporaries + + // first round + x = h + f1(e,f,g) + 0x428a2f98 + words[ 0]; y = f2(a,b,c); d += x; h = x + y; + x = g + f1(d,e,f) + 0x71374491 + words[ 1]; y = f2(h,a,b); c += x; g = x + y; + x = f + f1(c,d,e) + 0xb5c0fbcf + words[ 2]; y = f2(g,h,a); b += x; f = x + y; + x = e + f1(b,c,d) + 0xe9b5dba5 + words[ 3]; y = f2(f,g,h); a += x; e = x + y; + x = d + f1(a,b,c) + 0x3956c25b + words[ 4]; y = f2(e,f,g); h += x; d = x + y; + x = c + f1(h,a,b) + 0x59f111f1 + words[ 5]; y = f2(d,e,f); g += x; c = x + y; + x = b + f1(g,h,a) + 0x923f82a4 + words[ 6]; y = f2(c,d,e); f += x; b = x + y; + x = a + f1(f,g,h) + 0xab1c5ed5 + words[ 7]; y = f2(b,c,d); e += x; a = x + y; + + // secound round + x = h + f1(e,f,g) + 0xd807aa98 + words[ 8]; y = f2(a,b,c); d += x; h = x + y; + x = g + f1(d,e,f) + 0x12835b01 + words[ 9]; y = f2(h,a,b); c += x; g = x + y; + x = f + f1(c,d,e) + 0x243185be + words[10]; y = f2(g,h,a); b += x; f = x + y; + x = e + f1(b,c,d) + 0x550c7dc3 + words[11]; y = f2(f,g,h); a += x; e = x + y; + x = d + f1(a,b,c) + 0x72be5d74 + words[12]; y = f2(e,f,g); h += x; d = x + y; + x = c + f1(h,a,b) + 0x80deb1fe + words[13]; y = f2(d,e,f); g += x; c = x + y; + x = b + f1(g,h,a) + 0x9bdc06a7 + words[14]; y = f2(c,d,e); f += x; b = x + y; + x = a + f1(f,g,h) + 0xc19bf174 + words[15]; y = f2(b,c,d); e += x; a = x + y; + + // extend to 24 words + for (; i < 24; i++) + words[i] = words[i-16] + + (rotate(words[i-15], 7) ^ rotate(words[i-15], 18) ^ (words[i-15] >> 3)) + + words[i-7] + + (rotate(words[i- 2], 17) ^ rotate(words[i- 2], 19) ^ (words[i- 2] >> 10)); + + // third round + x = h + f1(e,f,g) + 0xe49b69c1 + words[16]; y = f2(a,b,c); d += x; h = x + y; + x = g + f1(d,e,f) + 0xefbe4786 + words[17]; y = f2(h,a,b); c += x; g = x + y; + x = f + f1(c,d,e) + 0x0fc19dc6 + words[18]; y = f2(g,h,a); b += x; f = x + y; + x = e + f1(b,c,d) + 0x240ca1cc + words[19]; y = f2(f,g,h); a += x; e = x + y; + x = d + f1(a,b,c) + 0x2de92c6f + words[20]; y = f2(e,f,g); h += x; d = x + y; + x = c + f1(h,a,b) + 0x4a7484aa + words[21]; y = f2(d,e,f); g += x; c = x + y; + x = b + f1(g,h,a) + 0x5cb0a9dc + words[22]; y = f2(c,d,e); f += x; b = x + y; + x = a + f1(f,g,h) + 0x76f988da + words[23]; y = f2(b,c,d); e += x; a = x + y; + + // extend to 32 words + for (; i < 32; i++) + words[i] = words[i-16] + + (rotate(words[i-15], 7) ^ rotate(words[i-15], 18) ^ (words[i-15] >> 3)) + + words[i-7] + + (rotate(words[i- 2], 17) ^ rotate(words[i- 2], 19) ^ (words[i- 2] >> 10)); + + // fourth round + x = h + f1(e,f,g) + 0x983e5152 + words[24]; y = f2(a,b,c); d += x; h = x + y; + x = g + f1(d,e,f) + 0xa831c66d + words[25]; y = f2(h,a,b); c += x; g = x + y; + x = f + f1(c,d,e) + 0xb00327c8 + words[26]; y = f2(g,h,a); b += x; f = x + y; + x = e + f1(b,c,d) + 0xbf597fc7 + words[27]; y = f2(f,g,h); a += x; e = x + y; + x = d + f1(a,b,c) + 0xc6e00bf3 + words[28]; y = f2(e,f,g); h += x; d = x + y; + x = c + f1(h,a,b) + 0xd5a79147 + words[29]; y = f2(d,e,f); g += x; c = x + y; + x = b + f1(g,h,a) + 0x06ca6351 + words[30]; y = f2(c,d,e); f += x; b = x + y; + x = a + f1(f,g,h) + 0x14292967 + words[31]; y = f2(b,c,d); e += x; a = x + y; + + // extend to 40 words + for (; i < 40; i++) + words[i] = words[i-16] + + (rotate(words[i-15], 7) ^ rotate(words[i-15], 18) ^ (words[i-15] >> 3)) + + words[i-7] + + (rotate(words[i- 2], 17) ^ rotate(words[i- 2], 19) ^ (words[i- 2] >> 10)); + + // fifth round + x = h + f1(e,f,g) + 0x27b70a85 + words[32]; y = f2(a,b,c); d += x; h = x + y; + x = g + f1(d,e,f) + 0x2e1b2138 + words[33]; y = f2(h,a,b); c += x; g = x + y; + x = f + f1(c,d,e) + 0x4d2c6dfc + words[34]; y = f2(g,h,a); b += x; f = x + y; + x = e + f1(b,c,d) + 0x53380d13 + words[35]; y = f2(f,g,h); a += x; e = x + y; + x = d + f1(a,b,c) + 0x650a7354 + words[36]; y = f2(e,f,g); h += x; d = x + y; + x = c + f1(h,a,b) + 0x766a0abb + words[37]; y = f2(d,e,f); g += x; c = x + y; + x = b + f1(g,h,a) + 0x81c2c92e + words[38]; y = f2(c,d,e); f += x; b = x + y; + x = a + f1(f,g,h) + 0x92722c85 + words[39]; y = f2(b,c,d); e += x; a = x + y; + + // extend to 48 words + for (; i < 48; i++) + words[i] = words[i-16] + + (rotate(words[i-15], 7) ^ rotate(words[i-15], 18) ^ (words[i-15] >> 3)) + + words[i-7] + + (rotate(words[i- 2], 17) ^ rotate(words[i- 2], 19) ^ (words[i- 2] >> 10)); + + // sixth round + x = h + f1(e,f,g) + 0xa2bfe8a1 + words[40]; y = f2(a,b,c); d += x; h = x + y; + x = g + f1(d,e,f) + 0xa81a664b + words[41]; y = f2(h,a,b); c += x; g = x + y; + x = f + f1(c,d,e) + 0xc24b8b70 + words[42]; y = f2(g,h,a); b += x; f = x + y; + x = e + f1(b,c,d) + 0xc76c51a3 + words[43]; y = f2(f,g,h); a += x; e = x + y; + x = d + f1(a,b,c) + 0xd192e819 + words[44]; y = f2(e,f,g); h += x; d = x + y; + x = c + f1(h,a,b) + 0xd6990624 + words[45]; y = f2(d,e,f); g += x; c = x + y; + x = b + f1(g,h,a) + 0xf40e3585 + words[46]; y = f2(c,d,e); f += x; b = x + y; + x = a + f1(f,g,h) + 0x106aa070 + words[47]; y = f2(b,c,d); e += x; a = x + y; + + // extend to 56 words + for (; i < 56; i++) + words[i] = words[i-16] + + (rotate(words[i-15], 7) ^ rotate(words[i-15], 18) ^ (words[i-15] >> 3)) + + words[i-7] + + (rotate(words[i- 2], 17) ^ rotate(words[i- 2], 19) ^ (words[i- 2] >> 10)); + + // seventh round + x = h + f1(e,f,g) + 0x19a4c116 + words[48]; y = f2(a,b,c); d += x; h = x + y; + x = g + f1(d,e,f) + 0x1e376c08 + words[49]; y = f2(h,a,b); c += x; g = x + y; + x = f + f1(c,d,e) + 0x2748774c + words[50]; y = f2(g,h,a); b += x; f = x + y; + x = e + f1(b,c,d) + 0x34b0bcb5 + words[51]; y = f2(f,g,h); a += x; e = x + y; + x = d + f1(a,b,c) + 0x391c0cb3 + words[52]; y = f2(e,f,g); h += x; d = x + y; + x = c + f1(h,a,b) + 0x4ed8aa4a + words[53]; y = f2(d,e,f); g += x; c = x + y; + x = b + f1(g,h,a) + 0x5b9cca4f + words[54]; y = f2(c,d,e); f += x; b = x + y; + x = a + f1(f,g,h) + 0x682e6ff3 + words[55]; y = f2(b,c,d); e += x; a = x + y; + + // extend to 64 words + for (; i < 64; i++) + words[i] = words[i-16] + + (rotate(words[i-15], 7) ^ rotate(words[i-15], 18) ^ (words[i-15] >> 3)) + + words[i-7] + + (rotate(words[i- 2], 17) ^ rotate(words[i- 2], 19) ^ (words[i- 2] >> 10)); + + // eigth round + x = h + f1(e,f,g) + 0x748f82ee + words[56]; y = f2(a,b,c); d += x; h = x + y; + x = g + f1(d,e,f) + 0x78a5636f + words[57]; y = f2(h,a,b); c += x; g = x + y; + x = f + f1(c,d,e) + 0x84c87814 + words[58]; y = f2(g,h,a); b += x; f = x + y; + x = e + f1(b,c,d) + 0x8cc70208 + words[59]; y = f2(f,g,h); a += x; e = x + y; + x = d + f1(a,b,c) + 0x90befffa + words[60]; y = f2(e,f,g); h += x; d = x + y; + x = c + f1(h,a,b) + 0xa4506ceb + words[61]; y = f2(d,e,f); g += x; c = x + y; + x = b + f1(g,h,a) + 0xbef9a3f7 + words[62]; y = f2(c,d,e); f += x; b = x + y; + x = a + f1(f,g,h) + 0xc67178f2 + words[63]; y = f2(b,c,d); e += x; a = x + y; + + // update hash + m_hash[0] += a; + m_hash[1] += b; + m_hash[2] += c; + m_hash[3] += d; + m_hash[4] += e; + m_hash[5] += f; + m_hash[6] += g; + m_hash[7] += h; +} + + +/// add arbitrary number of bytes +void SHA256::add(const void* data, size_t numBytes) +{ + const uint8_t* current = (const uint8_t*) data; + + if (m_bufferSize > 0) + { + while (numBytes > 0 && m_bufferSize < BlockSize) + { + m_buffer[m_bufferSize++] = *current++; + numBytes--; + } + } + + // full buffer + if (m_bufferSize == BlockSize) + { + processBlock(m_buffer); + m_numBytes += BlockSize; + m_bufferSize = 0; + } + + // no more data ? + if (numBytes == 0) + return; + + // process full blocks + while (numBytes >= BlockSize) + { + processBlock(current); + current += BlockSize; + m_numBytes += BlockSize; + numBytes -= BlockSize; + } + + // keep remaining bytes in buffer + while (numBytes > 0) + { + m_buffer[m_bufferSize++] = *current++; + numBytes--; + } +} + + +/// process final block, less than 64 bytes +void SHA256::processBuffer() +{ + // the input bytes are considered as bits strings, where the first bit is the most significant bit of the byte + + // - append "1" bit to message + // - append "0" bits until message length in bit mod 512 is 448 + // - append length as 64 bit integer + + // number of bits + size_t paddedLength = m_bufferSize * 8; + + // plus one bit set to 1 (always appended) + paddedLength++; + + // number of bits must be (numBits % 512) = 448 + size_t lower11Bits = paddedLength & 511; + if (lower11Bits <= 448) + paddedLength += 448 - lower11Bits; + else + paddedLength += 512 + 448 - lower11Bits; + // convert from bits to bytes + paddedLength /= 8; + + // only needed if additional data flows over into a second block + unsigned char extra[BlockSize]; + + // append a "1" bit, 128 => binary 10000000 + if (m_bufferSize < BlockSize) + m_buffer[m_bufferSize] = 128; + else + extra[0] = 128; + + size_t i; + for (i = m_bufferSize + 1; i < BlockSize; i++) + m_buffer[i] = 0; + for (; i < paddedLength; i++) + extra[i - BlockSize] = 0; + + // add message length in bits as 64 bit number + uint64_t msgBits = 8 * (m_numBytes + m_bufferSize); + // find right position + unsigned char* addLength; + if (paddedLength < BlockSize) + addLength = m_buffer + paddedLength; + else + addLength = extra + paddedLength - BlockSize; + + // must be big endian + *addLength++ = (unsigned char)((msgBits >> 56) & 0xFF); + *addLength++ = (unsigned char)((msgBits >> 48) & 0xFF); + *addLength++ = (unsigned char)((msgBits >> 40) & 0xFF); + *addLength++ = (unsigned char)((msgBits >> 32) & 0xFF); + *addLength++ = (unsigned char)((msgBits >> 24) & 0xFF); + *addLength++ = (unsigned char)((msgBits >> 16) & 0xFF); + *addLength++ = (unsigned char)((msgBits >> 8) & 0xFF); + *addLength = (unsigned char)( msgBits & 0xFF); + + // process blocks + processBlock(m_buffer); + // flowed over into a second block ? + if (paddedLength > BlockSize) + processBlock(extra); +} + + +/// return latest hash as 64 hex characters +std::string SHA256::getHash() +{ + // compute hash (as raw bytes) + unsigned char rawHash[HashBytes]; + getHash(rawHash); + + // convert to hex string + std::string result; + result.reserve(2 * HashBytes); + for (int i = 0; i < HashBytes; i++) + { + static const char dec2hex[16+1] = "0123456789abcdef"; + result += dec2hex[(rawHash[i] >> 4) & 15]; + result += dec2hex[ rawHash[i] & 15]; + } + + return result; +} + + +/// return latest hash as bytes +void SHA256::getHash(unsigned char buffer[SHA256::HashBytes]) +{ + // save old hash if buffer is partially filled + uint32_t oldHash[HashValues]; + for (int i = 0; i < HashValues; i++) + oldHash[i] = m_hash[i]; + + // process remaining bytes + processBuffer(); + + unsigned char* current = buffer; + for (int i = 0; i < HashValues; i++) + { + *current++ = (m_hash[i] >> 24) & 0xFF; + *current++ = (m_hash[i] >> 16) & 0xFF; + *current++ = (m_hash[i] >> 8) & 0xFF; + *current++ = m_hash[i] & 0xFF; + + // restore old hash + m_hash[i] = oldHash[i]; + } +} + + +/// compute SHA256 of a memory block +std::string SHA256::operator()(const void* data, size_t numBytes) +{ + reset(); + add(data, numBytes); + return getHash(); +} + + +/// compute SHA256 of a string, excluding final zero +std::string SHA256::operator()(const std::string& text) +{ + reset(); + add(text.c_str(), text.size()); + return getHash(); +} diff --git a/externals/stbrumme-hashing/include/stbrumme-hashing/sha256.h b/externals/stbrumme-hashing/include/stbrumme-hashing/sha256.h new file mode 100644 index 00000000..aeaf314f --- /dev/null +++ b/externals/stbrumme-hashing/include/stbrumme-hashing/sha256.h @@ -0,0 +1,78 @@ +// ////////////////////////////////////////////////////////// +// sha256.h +// Copyright (c) 2014,2015 Stephan Brumme. All rights reserved. +// see http://create.stephan-brumme.com/disclaimer.html +// + +#pragma once + +//#include "hash.h" +#include + +// define fixed size integer types +#ifdef _MSC_VER +// Windows +typedef unsigned __int8 uint8_t; +typedef unsigned __int32 uint32_t; +typedef unsigned __int64 uint64_t; +#else +// GCC +#include +#endif + + +/// compute SHA256 hash +/** Usage: + SHA256 sha256; + std::string myHash = sha256("Hello World"); // std::string + std::string myHash2 = sha256("How are you", 11); // arbitrary data, 11 bytes + + // or in a streaming fashion: + + SHA256 sha256; + while (more data available) + sha256.add(pointer to fresh data, number of new bytes); + std::string myHash3 = sha256.getHash(); + */ +class SHA256 //: public Hash +{ +public: + /// split into 64 byte blocks (=> 512 bits), hash is 32 bytes long + enum { BlockSize = 512 / 8, HashBytes = 32 }; + + /// same as reset() + SHA256(); + + /// compute SHA256 of a memory block + std::string operator()(const void* data, size_t numBytes); + /// compute SHA256 of a string, excluding final zero + std::string operator()(const std::string& text); + + /// add arbitrary number of bytes + void add(const void* data, size_t numBytes); + + /// return latest hash as 64 hex characters + std::string getHash(); + /// return latest hash as bytes + void getHash(unsigned char buffer[HashBytes]); + + /// restart + void reset(); + +private: + /// process 64 bytes + void processBlock(const void* data); + /// process everything left in the internal buffer + void processBuffer(); + + /// size of processed data in bytes + uint64_t m_numBytes; + /// valid bytes in m_buffer + size_t m_bufferSize; + /// bytes not processed yet + uint8_t m_buffer[BlockSize]; + + enum { HashValues = HashBytes / 4 }; + /// hash, stored as integers + uint32_t m_hash[HashValues]; +}; diff --git a/externals/stbrumme-hashing/readme.md b/externals/stbrumme-hashing/readme.md new file mode 100644 index 00000000..8be9d01b --- /dev/null +++ b/externals/stbrumme-hashing/readme.md @@ -0,0 +1,51 @@ +# Portable C++ Hashing Library + +This is a mirror of my library hosted at https://create.stephan-brumme.com/hash-library/ + +In a nutshell: + +- computes CRC32, MD5, SHA1 and SHA256 (most common member of the SHA2 functions), Keccak and its SHA3 sibling +- optional HMAC (keyed-hash message authentication code) +- no external dependencies, small code size +- can work chunk-wise (for example when reading streams block-by-block) +- portable: supports Windows and Linux, tested on Little Endian and Big Endian CPUs +- roughly as fast as Linux core hashing functions +- open source, zlib license + +You can find code examples, benchmarks and much more on my website https://create.stephan-brumme.com/hash-library/ + +# How to use + +This example computes SHA256 hashes but the API is more or less identical for all hash algorithms: + +``` cpp +// SHA2 test program +#include "sha256.h" +#include // for std::cout only, not needed for hashing library + +int main(int, char**) +{ + // create a new hashing object + SHA256 sha256; + + // hashing an std::string + std::cout << sha256("Hello World") << std::endl; + // => a591a6d40bf420404a011733cfb7b190d62c65bf0bcda32b57b277d9ad9f146e + + // hashing a buffer of bytes + const char* buffer = "How are you"; + std::cout << sha256(buffer, 11) << std::endl; + // => 9c7d5b046878838da72e40ceb3179580958df544b240869b80d0275cc07209cc + + // or in a streaming fashion (re-use "How are you") + SHA256 sha256stream; + const char* url = "create.stephan-brumme.com"; // 25 bytes + int step = 5; + for (int i = 0; i < 25; i += step) + sha256stream.add(url + i, step); // add five bytes at a time + std::cout << sha256stream.getHash() << std::endl; + // => 82aa771f1183c52f973c798c9243a1c73833ea40961c73e55e12430ec77b69f6 + + return 0; +} +``` diff --git a/src/tests/catch_test_sha256.cxx b/src/tests/catch_test_sha256.cxx new file mode 100644 index 00000000..aa8405bc --- /dev/null +++ b/src/tests/catch_test_sha256.cxx @@ -0,0 +1,14 @@ +#include + +#include "teqp/json_tools.hpp" + +#include "stbrumme-hashing/sha256.h" +#include "stbrumme-hashing/sha256.cpp" + +TEST_CASE("Test sha256", "[sha256]"){ + // Test values were generated from INCHI strings of all compounds in TDE, and hashlib.sha256(row['inchi_key'].encode('ascii')).hexdigest() in python + SHA256 sha256; + for (auto& el : teqp::load_a_JSON_file("../src/tests/resources/testvalues_sha256.json")){ + CHECK(sha256(el["input"]) == el["sha256"].get()); + } +} diff --git a/src/tests/resources/testvalues_sha256.json b/src/tests/resources/testvalues_sha256.json new file mode 100644 index 00000000..54585810 --- /dev/null +++ b/src/tests/resources/testvalues_sha256.json @@ -0,0 +1,2002 @@ +[ + { + "input": "AMXOYNBUYSYVKV-UHFFFAOYSA-M", + "sha256": "5b9d2cf48d6a6da0c4a32ca6d89e07481da9b6eb17c71395bbd50552b8243ea4" + }, + { + "input": "XLYOFNOQVPJJNP-UHFFFAOYSA-N", + "sha256": "fbb43a76028efd895b5449f85a214d690486ac83c2695f963d935af68a201acb" + }, + { + "input": "WGEFECGEFUFIQW-UHFFFAOYSA-L", + "sha256": "80434bd3a0b808125638fccf68606896d398da2e5b4e0a4cf3c89ff99c76659c" + }, + { + "input": "KRIJWFBRWPCESA-UHFFFAOYSA-L", + "sha256": "a1bd3f565c13f88a1daf7a37c5341dbc7862b22e027d1af2758113d0d51c0d16" + }, + { + "input": "YJPVTCSBVRMESK-UHFFFAOYSA-L", + "sha256": "ec588fdb42015d0d611a40595e52729cad9882a385e53ceea37faeed6d374009" + }, + { + "input": "AHBGXTDRMVNFER-UHFFFAOYSA-L", + "sha256": "b1f66f08c18bed9ce527e97a901fb5a9908f559978de295f46dd4d755e0117ac" + }, + { + "input": "KWGKDLIKAYFUFQ-UHFFFAOYSA-M", + "sha256": "c8fa8e1bef73ddd1e7a502b9dde01bc9bf6a1e90ac1a80f1e1ee946a6f2ae9ab" + }, + { + "input": "UXVMQQNJUSDDNG-UHFFFAOYSA-L", + "sha256": "167c0b33a1edf0d1b554da693a67cec3bdccd7d8bdbca46f5402eaf735ee1423" + }, + { + "input": "HSZCZNFXUDYRKD-UHFFFAOYSA-M", + "sha256": "d3f44a9786c62044282ba0b6fc9e65cc8d7043a53175871a86f8093e5fbc1937" + }, + { + "input": "UNMYWSMUMWPJLR-UHFFFAOYSA-L", + "sha256": "1c231362a104f05f4b4db7e84e40463309fe30e7a3d46c47667758d908bb8520" + }, + { + "input": "SGUXGJPBTNFBAD-UHFFFAOYSA-L", + "sha256": "15b36a86a30aae7d882674388c0ba5966140cb06fbbc71b2178f4635d918c76a" + }, + { + "input": "DUJMVKJJUANUMQ-UHFFFAOYSA-N", + "sha256": "6afad254fd1816c40e99b553a69159eb679407683dc72a0801e3c62a385b9c0a" + }, + { + "input": "HEDRZPFGACZZDS-UHFFFAOYSA-N", + "sha256": "a4c720b188a47fac7c322dbc403c8c10497396f0f0976bf87c801b3606e7e7a0" + }, + { + "input": "ZUOUZKKEUPVFJK-UHFFFAOYSA-N", + "sha256": "5c26f8be8198683c499f5fced4816b74210a18866c2ad1057e0e97efe900ad50" + }, + { + "input": "DRKHIWKXLZCAKP-UHFFFAOYSA-N", + "sha256": "d0321620151e5b82ea37815b19da4e165412e96bef0f1f12e03d8dd83bbfb0fa" + }, + { + "input": "IJDNQMDRQITEOD-UHFFFAOYSA-N", + "sha256": "7a7b3b4080c6b6b689485a7730d1844b94765a7e54af5a67cb40bba4171fe3f1" + }, + { + "input": "QWUWMCYKGHVNAV-UHFFFAOYSA-N", + "sha256": "0ad23f5877544c56486568c7793d7717b2584529644ffc6d49752bd253ca4402" + }, + { + "input": "UTCTYSTYZOAAOS-UHFFFAOYSA-N", + "sha256": "e92264dadf74eb4f47de18ef83e51548ba94ffb35be760ee12810cccc358343d" + }, + { + "input": "ZIBGPFATKBEMQZ-UHFFFAOYSA-N", + "sha256": "4955379e06f0fbe99a8118c61f4e257ac28becad208f463f77123dde0523501a" + }, + { + "input": "DKGAVHZHDRPRBM-UHFFFAOYSA-N", + "sha256": "2f90776f9828ab515a6e245a10c3521e6ebc5c30244f1086838ec735c941b407" + }, + { + "input": "NVJBFARDFTXOTO-UHFFFAOYSA-N", + "sha256": "b15f430516092dbc01b59c059e480028c3b8372c84aad4ba3b478c8eb395b1a5" + }, + { + "input": "MELUCTCJOARQQG-UHFFFAOYSA-N", + "sha256": "d45112fe60c7f4ab955773fb3f9bef95bf227e51251e9a44cd45efbc4dfe111d" + }, + { + "input": "IWAKWOFEHSYKSI-UHFFFAOYSA-N", + "sha256": "8b4963067bed0d432de9197787b7bbfdb7df4e360ab99d3fd22ecfde64f6b570" + }, + { + "input": "QPRQEDXDYOZYLA-YFKPBYRVSA-N", + "sha256": "c0f8c567e637b858af5a44f1e9f31001b80ad0e8093f5d754d3e1017bc0dedf3" + }, + { + "input": "QPRQEDXDYOZYLA-UHFFFAOYSA-N", + "sha256": "e5c8a3365c25d88a07e3496229a84b6ff5d132351e86f48d676b6402fa4e7c74" + }, + { + "input": "XKVLZBNEPALHIO-UHFFFAOYSA-N", + "sha256": "7f573cfdad7b17fcd6e67819137db023032ce963ec3807a43addebf5a452866b" + }, + { + "input": "RHBHXHXNWHTGSO-UHFFFAOYSA-N", + "sha256": "4a387f51e4055e82a1bc09bc2c1fb8e1408589009432a0a903185792d885bf01" + }, + { + "input": "HQNOCESAXBXZAY-UHFFFAOYSA-N", + "sha256": "ef34a11212bbc15690503bf1477f800b61807b626e32041d8d9964fe736ad06a" + }, + { + "input": "DNIAPMSPPWPWGF-UHFFFAOYSA-N", + "sha256": "6ab7273edbdee495d5955cba067846c71c76bbad9fa44c248200921667edda64" + }, + { + "input": "AMXRXGOSEWMPEF-UHFFFAOYSA-N", + "sha256": "7ead2192c033ea5b7d59ee5c60f6ddfb505e59ab27583a2fc7a0a72e6ca96a90" + }, + { + "input": "XLMFDCKSFJWJTP-UHFFFAOYSA-N", + "sha256": "2d2c36bc38dffc1d1d9c8d0ab34b1c90246a8664985e041ba37c95430418d261" + }, + { + "input": "HJJZIMFAIMUSBW-UHFFFAOYSA-N", + "sha256": "28be0865c0bd35ccbcccbaa148ec9fc2d3a1bede6697ded0d96dfeb37789a0fa" + }, + { + "input": "POFSNPPXJUQANW-UHFFFAOYSA-N", + "sha256": "623c26ae6073218251054ce1827196a219f5483cbb6906d08d7552b483fd028a" + }, + { + "input": "PFURGBBHAOXLIO-OLQVQODUSA-N", + "sha256": "dfd21802202bca08d5b6038f52e01c88fdd9300ca92121c0cc5472a0d9052a72" + }, + { + "input": "LYCAIKOWRPUZTN-UHFFFAOYSA-N", + "sha256": "2f7d1768ee56db65da131b999c337a45310628958d984ef470b360b9f513d92a" + }, + { + "input": "PWMWNFMRSKOCEY-UHFFFAOYSA-N", + "sha256": "3c784f0c8fcab664688ff7032d77195c900de8af5f2366824552f79ad25e71c2" + }, + { + "input": "UDUYLHUQOZWKEF-UHFFFAOYSA-N", + "sha256": "88eeed2b4eec3ea7f5aaf0849384df6ce05df804d4992d29ecea9866dae97a28" + }, + { + "input": "OPOFYMSEXICFOW-UHFFFAOYSA-N", + "sha256": "5d69f8053e1b31d5c688d7d681b0831e087c29c47a830970691be6bb5ec77a2f" + }, + { + "input": "NNBZCPXTIHJBJL-AOOOYVTPSA-N", + "sha256": "20d898000ccb61c8d787780e8f5233e04ef7f3e3d6eedfedb241346efa1ce11f" + }, + { + "input": "NNBZCPXTIHJBJL-MGCOHNPYSA-N", + "sha256": "d4f727434de7122b6414ec7dac5907713cd923e7a4ba5078fb5e494213691645" + }, + { + "input": "CURLTUGMZLYLDI-UHFFFAOYSA-N", + "sha256": "7477c8beeb8ed99dd0b36090ebdb0d7254e3b3de46470da1f2515a5b780f1f6f" + }, + { + "input": "MYMOFIZGZYHOMD-UHFFFAOYSA-N", + "sha256": "2cedc3684b54da2ab9b01eb4b40984a72e58546d06b14243e8a9d37d42b420c3" + }, + { + "input": "BTVWZWFKMIUSGS-UHFFFAOYSA-N", + "sha256": "b5538d6803ec8c297743ff0bb3e0605113c3fb916e0a9e653331bda3c1e8ed67" + }, + { + "input": "RBACIKXCRWGCBB-UHFFFAOYSA-N", + "sha256": "b2eb42f5ad43796e683e663249c01fc38c1f63e8f34c637a9e631cdb18cea31d" + }, + { + "input": "MTHSVFCYNBDYFN-UHFFFAOYSA-N", + "sha256": "bfe95a7365ea813089cb2069bf8e0ac6ad95f02cbd6ee7edc7c3d10b6847aee7" + }, + { + "input": "UWHCKJMYHZGTIT-UHFFFAOYSA-N", + "sha256": "f2614f1c9910b7f2281ca68f202104e1aa5e4a871ed3453e873a5e41d1d77668" + }, + { + "input": "PUPZLCDOIYMWBV-UHFFFAOYSA-N", + "sha256": "4b97e6d31eac7a2534645c1fd5d928b2ee9028a0a962704c3acca105ea214a19" + }, + { + "input": "GOOHAUXETOMSMM-UHFFFAOYSA-N", + "sha256": "41814f4999320f1eaed7c94118b61e61ecb2471acc1d92df161ff919a0d5b8bf" + }, + { + "input": "IAYPIBMASNFSPL-UHFFFAOYSA-N", + "sha256": "ae557b13fce648e15b9c7c9582ca07b954124680edd7c3309d40a59f56d3f4dd" + }, + { + "input": "BMRWNKZVCUKKSR-UHFFFAOYSA-N", + "sha256": "cfb0f7698c191e738c2f8c2d220701a99732a341f40c2cb7dbcd2afba1dfb25d" + }, + { + "input": "VZGDMQKNWNREIO-UHFFFAOYSA-N", + "sha256": "fba21c4dbe153ee85aaa21efd887e17c3d8ff744424e126b85e24906e47df5d0" + }, + { + "input": "UHOVQNZJYSORNB-UHFFFAOYSA-N", + "sha256": "0df2cfb46c4cf10b3e64161eeef6beafd633bfae016d62f14e3b33bf1873da80" + }, + { + "input": "VLKZOEOYAKHREP-UHFFFAOYSA-N", + "sha256": "25cb03ba4e5c89064598a672cbabdaf8b5eea00c7682105099e5d175650c8614" + }, + { + "input": "XDTMQSROBMDMFD-UHFFFAOYSA-N", + "sha256": "316e22535548d3f1a86402978f4f5f66a053cef54aea234eddd3a9846222ffce" + }, + { + "input": "XEKOWRVHYACXOJ-UHFFFAOYSA-N", + "sha256": "0912d6bfce665e8f6cf3038aad508b4ae121f099d1f82c1faec99fdf4b6f3c35" + }, + { + "input": "RTZKZFJDLAIYFH-UHFFFAOYSA-N", + "sha256": "b846a701eb2d097dda88cfdb2766b879223a68cddb93abefef59ffd51c780a9a" + }, + { + "input": "QGJOPFRUJISHPQ-UHFFFAOYSA-N", + "sha256": "68ed365d7c21b05158237d165c3811cb939a87ea73fdede310ab165b6655887e" + }, + { + "input": "YXFVVABEGXRONW-UHFFFAOYSA-N", + "sha256": "10a49b8b5b0bffa0915512299f2583c68347b24990e33065564401c99985c95e" + }, + { + "input": "OBCUTHMOOONNBS-UHFFFAOYSA-N", + "sha256": "42e7ad0a039081eddf07800a7ab9328d531593810382e107a11e70463868b8e6" + }, + { + "input": "OOWISQLTVOZJJI-UHFFFAOYSA-N", + "sha256": "944b26d7c6ddd0b4df9b17ca763d1d04ac10c52794e65f633950f2525470b6cb" + }, + { + "input": "HCELORQTHSKCQL-UHFFFAOYSA-N", + "sha256": "e06d51cd817c4909310c7b8079aa1406a0bcf3377f9d3728aef19a76fa7a1cbe" + }, + { + "input": "DWMAJXVIIUYYOH-UHFFFAOYSA-N", + "sha256": "abc6137dd605e2399d1aa6c0a63db5a9b5150ab3c120f765b1e9fd3cb6c46cf6" + }, + { + "input": "PECXPZGFZFGDRD-UHFFFAOYSA-N", + "sha256": "78eaa4e0df1a6c58a9aa8f24ef6cbc878232a57cb58dae4def187199d0cc201e" + }, + { + "input": "BETNPSBTDMBHCZ-UHFFFAOYSA-N", + "sha256": "7760448ec29eace7875f245dc781ff0e9b77a3ac0553d3822d69b5e6efe95712" + }, + { + "input": "URLKBWYHVLBVBO-UHFFFAOYSA-N", + "sha256": "4201b0e65008624b3ce51b56891713650e93ab738f67f83f539d804f31b75662" + }, + { + "input": "XJBOZKOSICCONT-UHFFFAOYSA-N", + "sha256": "76c29640d77dda8f3e8b1f7d8f41e3e93e760f4f28492354f704d4e2406a4a2b" + }, + { + "input": "USIUVYZYUHIAEV-UHFFFAOYSA-N", + "sha256": "788f24a24704119cdf8a46daf9edfd1f6c13d669cabcfea0163556c1bdb6b1ba" + }, + { + "input": "DMBHHRLKUKUOEG-UHFFFAOYSA-N", + "sha256": "764227aa81943082615a510c00fba04f94f132b0599cde19daee12e8ce7dc672" + }, + { + "input": "UFWIBTONFRDIAS-UHFFFAOYSA-N", + "sha256": "17e44c4d6813fc8940aee2b7eec7e36319ef5fb56854f554f9baf471508f723d" + }, + { + "input": "PAYRUJLWNCNPSJ-UHFFFAOYSA-N", + "sha256": "4ac641c9510811e45e1a7a2ef27802c3709c2eb3f600e52e4787960c93be6cc7" + }, + { + "input": "JHIVVAPYMSGYDF-UHFFFAOYSA-N", + "sha256": "d15912b498270526d586a91dc72035e4d3970842643cf4e6dfbe874c1a9d8981" + }, + { + "input": "NQRYJNQNLNOLGT-UHFFFAOYSA-N", + "sha256": "e037700725a3e425fd3f8470612d0c4de628120f61a3f690ab3431a3ee28932e" + }, + { + "input": "XHBNMDFKDOTISD-UHFFFAOYSA-N", + "sha256": "e4422e7768b57bed2e77045089313d971bf0c90798fda0aac3f8df3fec22a721" + }, + { + "input": "LYQFWZFBNBDLEO-UHFFFAOYSA-M", + "sha256": "8a0f27dc90b60675ce8845bb13698f81059803fbe087dc61b491074ef3fcc36c" + }, + { + "input": "UGHVXXDQKXLCID-UHFFFAOYSA-N", + "sha256": "8878309f26bd9c03e2d78e385dd3071a6172e79cacda45c113e3e43fe4f23302" + }, + { + "input": "JPQHLIYIQARLQM-UHFFFAOYSA-N", + "sha256": "d3232d3cc55a8845529f699dc5df1a162d726cf1439d87a38b319660d01684c6" + }, + { + "input": "MIHLQHIALQPURG-UHFFFAOYSA-N", + "sha256": "0f191f2ccbe95011fcf353b19af3ee608e24d1429ce7b4d37ee491c268c20fff" + }, + { + "input": "RLVQDVJFVFDINC-UHFFFAOYSA-N", + "sha256": "921b61b5f90ea0eabe4035f96070f1b6009b93316679c052ff153e027c4703a8" + }, + { + "input": "ZWMYJFFQLRDFTA-UHFFFAOYSA-N", + "sha256": "50ce638caae6eccfff13e222f211ce27646301bf9f76725531725fbf36f0074c" + }, + { + "input": "MFCQPVRHCQCFBB-UHFFFAOYSA-N", + "sha256": "bd423155eb40c6bded440f35cc728b72c11263d1923649416237e78b693b9414" + }, + { + "input": "HIKYVKDNGAULJV-UHFFFAOYSA-N", + "sha256": "93d50a8f9e83dd244f9009705aca28ca647b68d49af1a6240335e1cb7c998c0a" + }, + { + "input": "XSCIEKYDPGHXMD-YPKPFQOOSA-N", + "sha256": "a1229f21df30284b099cf11737ba72e75379f2fe93c540a547bdb30d78c6594b" + }, + { + "input": "UFPKJDYAIRJMMW-UHFFFAOYSA-N", + "sha256": "1a4b4a190249ef0816043ef885b7093808f3097ac8bc54ff66ded34bdf10bd08" + }, + { + "input": "MPLLSYWBBPPERF-UHFFFAOYSA-N", + "sha256": "7351624ce41f552c55d477cd4d5d8a5cc9e920254e9eabd515d1da44b5daf192" + }, + { + "input": "UMFTYCUYCNMERS-UHFFFAOYSA-N", + "sha256": "b018d1a03eff44073c9dc758c80eccb7eabf6fc86ba8fd680183d056ded406be" + }, + { + "input": "MFCMCQJYPOAXCB-UHFFFAOYSA-N", + "sha256": "6d5e15f2ab46a6dcffd12d49d2864d3526b3c6e575a974d36855a06083bb8751" + }, + { + "input": "NPBMPHKEFVCCEY-UHFFFAOYSA-N", + "sha256": "3b9f5ebe96bd1f1258b7a3a90abb172441da1f6c50eeeaf8cbebc827ef81873c" + }, + { + "input": "QOIIBPAJVWFEPE-UHFFFAOYSA-N", + "sha256": "ff3e36188d4ed892d9e61ea1db561c61892b436f501bbb0ce1dbdf8b7de4185d" + }, + { + "input": "RFDUMBPGZUIKOG-UHFFFAOYSA-N", + "sha256": "33539c72a8d822680720368b20f3461445361d8c1888991839d413523ccfe28d" + }, + { + "input": "ZCZSIDMEHXZRLG-UHFFFAOYSA-N", + "sha256": "2c8e1bb93587da57d394d234cf3cd0f01c6b5848ff22654002c51e13289242aa" + }, + { + "input": "XEAMDSXSXYAICO-UHFFFAOYSA-N", + "sha256": "9265996905ae519d1f5c2b77d6effb6e2316daf4419104a65d0a8be29b9d1239" + }, + { + "input": "DVARTQFDIMZBAA-UHFFFAOYSA-O", + "sha256": "9a28598b3f4e46d9ada77932d95bece1930b2ad31f3ce218c8b89b0189cc345a" + }, + { + "input": "YKYONYBAUNKHLG-UHFFFAOYSA-N", + "sha256": "0a6a301e1327d0c56584c7555a3ac9b7bed3f8e889acdc66c4c8041e19154c3e" + }, + { + "input": "DKPFZGUDAPQIHT-UHFFFAOYSA-N", + "sha256": "14f1f9bc02ce331cca44a9f26e6374f1f9f7db734a9871b49837c426aa9d3637" + }, + { + "input": "CAKWRXVKWGUISE-UHFFFAOYSA-N", + "sha256": "6a4f5f7f39b426c5c0b84e4c196b2ba788d2e67ca0be6897b623ed04a31a9bb1" + }, + { + "input": "RYHBNJHYFVUHQT-UHFFFAOYSA-N", + "sha256": "b311e539157daa98aa633aa164422b4e4fd4cb544b0f1489011f1517407cb774" + }, + { + "input": "RGSFGYAAUTVSQA-UHFFFAOYSA-N", + "sha256": "d243ab1811afaa17a0242ab53edd718423e3a883f924d84c0f977d18b63dd53b" + }, + { + "input": "RZXMPPFPUUCRFN-UHFFFAOYSA-N", + "sha256": "074515c3f808b16a7383ccf1fb9fad9842673ab8d3f106c1164472a2e6b19a14" + }, + { + "input": "ATQUFXWBVZUTKO-UHFFFAOYSA-N", + "sha256": "42ef643c1a9630a87c34ae87acdb0fc0ea2e365eeff2aafdf2b397a85914b78e" + }, + { + "input": "JUJWROOIHBZHMG-UHFFFAOYSA-N", + "sha256": "6680d41ec7b46f45b26b479d7f72ca0d1e71db25592b3f006fa36dd6f8fb64c5" + }, + { + "input": "IAHFWCOBPZCAEA-UHFFFAOYSA-N", + "sha256": "c620b5e3f0c18423e86d64166db848e17ba321c89d3df328383068b132f03645" + }, + { + "input": "RLSSMJSEOOYNOY-UHFFFAOYSA-N", + "sha256": "45f7f45e2ecb93f828c406b6531344e001b4f1a485344f728dc0fce4ab472e6d" + }, + { + "input": "HPXRVTGHNJAIIH-UHFFFAOYSA-N", + "sha256": "d938630d4bdf0a115a74ab7fc447356023b06599603136ea44ee4b7c32c70066" + }, + { + "input": "BGTOWKSIORTVQH-UHFFFAOYSA-N", + "sha256": "062a88e11ceed59870a772e3e4f96baf7e53bcb03ef41b8cecde4ee7431ef52d" + }, + { + "input": "ISWSIDIOOBJBQZ-UHFFFAOYSA-N", + "sha256": "f3f721e5da93d2304d6c1f4486a9440147b176cc170b0d7aa7d95ec87bb113aa" + }, + { + "input": "DLKQHBOKULLWDQ-UHFFFAOYSA-N", + "sha256": "628e735605f1e4165841401b7d8a19bea9c0b76a5fdd6c61b1fa0cfbaf3304a3" + }, + { + "input": "ZPTVNYMJQHSSEA-UHFFFAOYSA-N", + "sha256": "638a78e6c1d1cc4c6e435e62849560fcd3c0020077063889721baad09a233a14" + }, + { + "input": "SMWDFEZZVXVKRB-UHFFFAOYSA-N", + "sha256": "ba08dedda285c1c532f6307d0f4661094951a08e7fa05580d5b9639f3e4743c2" + }, + { + "input": "GDOPTJXRTPNYNR-UHFFFAOYSA-N", + "sha256": "da5bf887c09ec11cf6cb0819b46251a40d61ac4521723ffc3f210311a95ab505" + }, + { + "input": "XCIXKGXIYUWCLL-UHFFFAOYSA-N", + "sha256": "b681b491ab4cf87a8c3c152919c2837f36a7b3650310c8291417a342dbfb05d1" + }, + { + "input": "HRYZWHHZPQKTII-UHFFFAOYSA-N", + "sha256": "ade843a7535dd587ec5c194cdbefc38c9abb6d25fe02bd32e1d33b6d705f4b8a" + }, + { + "input": "XLYOFNOQVPJJNP-ZSJDYOACSA-N", + "sha256": "7f3e131610fdbb59471513a6a197770d1205ad25f43adb9e9ca2ebd00bda09c9" + }, + { + "input": "OFBQJSOFQDEBGM-UHFFFAOYSA-N", + "sha256": "1176bc0295bfa61ddfe2f1c2ae86907ee1406660d4de9331e51d9fb16e4d4637" + }, + { + "input": "BAVYZALUXZFZLV-UHFFFAOYSA-N", + "sha256": "dc0b96b77c1290aa4b7fe51b957d055ca35eaf3c5d1ab50681376fe167af26b7" + }, + { + "input": "QHDRKFYEGYYIIK-UHFFFAOYSA-N", + "sha256": "f338c9d2c0cd87e72ac6a1071fe52a3d73b792ee78be7a3a7176f6dafc1dccd2" + }, + { + "input": "FVSKHRXBFJPNKK-UHFFFAOYSA-N", + "sha256": "55e62103b077af5086817da09a3e261efa6ae807574c4024d4570e80b35e0848" + }, + { + "input": "RFFFKMOABOFIDF-UHFFFAOYSA-N", + "sha256": "4a7dfb29f9e6b64c80b4f53342f73b0982bc83927a64e936c96e0eba3dcc4d55" + }, + { + "input": "WEVYAHXRMPXWCK-UHFFFAOYSA-N", + "sha256": "14a0bb28954ef74d9782cb4f23d6a0aa0c8cfc200c869d48c9349e8865deb7ec" + }, + { + "input": "LRDFRRGEGBBSRN-UHFFFAOYSA-N", + "sha256": "7cf3363ae666ea9f1c9ddba9e44c6bf0cba6ffe79fe9ae8a84c9531ce0b77eb6" + }, + { + "input": "BDJAEZRIGNCQBZ-UHFFFAOYSA-N", + "sha256": "674fbf3d3c206b6c98a388b232efbbb71cfc181074b66e7c94371ab8204cc4dd" + }, + { + "input": "VKYKQNLHDHRHNN-UHFFFAOYSA-N", + "sha256": "e90cd15f19e74c412b1252ccc42b0e7b4a3a90009abf776906b5bedf0f051acd" + }, + { + "input": "ODLMAHJVESYWTB-UHFFFAOYSA-N", + "sha256": "b749102d9bb57edc2e85cbe27ded6f161d0e212b12fbc7ea605d130e2ddaea25" + }, + { + "input": "QIMMUPPBPVKWKM-UHFFFAOYSA-N", + "sha256": "0483206eafba150c7ba2b163a0095ffaa9f14a29e07e3a3d9762cce81948939a" + }, + { + "input": "YNQLUTRBYVCPMQ-UHFFFAOYSA-N", + "sha256": "17a4c6437d8b2a62fa3e2e885d6c9acfbe63bd65ef9425c429a2f30d390ebc4f" + }, + { + "input": "OKKJLVBELUTLKV-UHFFFAOYSA-N", + "sha256": "5fc41aa695615cc38e5f7baed8b1b1b147cd63e2e631d679c701758829e1e177" + }, + { + "input": "PEDCQBHIVMGVHV-UHFFFAOYSA-N", + "sha256": "d6ac7460bf3a8336a6d1ecf2d961dec1da65caf3d6ca35ca3337b2f14a80ca00" + }, + { + "input": "BSRTYNDWQXVCKR-UHFFFAOYSA-N", + "sha256": "6c334986afd7cc38c7c956b050ad73d68543c8a86244f1c855a2f504157fa2f3" + }, + { + "input": "RMISVOPUIFJTEO-UHFFFAOYSA-N", + "sha256": "3618cab3509b90bec350d5dd8a005c5866d8cd84d539ff22f90ba2368f0780db" + }, + { + "input": "PQBOTZNYFQWRHU-UHFFFAOYSA-N", + "sha256": "8e97d579530be72e1adb162d859734759231aac2ea1cbffd69e66d9b3bf520ff" + }, + { + "input": "BSPCSKHALVHRSR-UHFFFAOYSA-N", + "sha256": "dcda33667344741d574d24f57cefcd869c063ef7e1c94fe2bffd9f76fd91d947" + }, + { + "input": "QQONPFPTGQHPMA-UHFFFAOYSA-N", + "sha256": "2c56d778b098801dae1d63be37c62bbf04aca2cbaf84134bc2844a1e7ef5aa66" + }, + { + "input": "VGGSQFUCUMXWEO-UHFFFAOYSA-N", + "sha256": "b09c1062b9a58dd9cf8f1a0cddd262666e44a574fcd1040275580335245a4f88" + }, + { + "input": "IMNFDUFMRHMDMM-UHFFFAOYSA-N", + "sha256": "4fb398a3bd35de4a36cf2ed4dfad458afbfdc9855f63a610623afe9f50573a66" + }, + { + "input": "KWTVLXPDCHEVOR-NSCUHMNNSA-N", + "sha256": "82c8415ccc511757a4c2c5deeafba3ea0f83e56beb10b6c638bc5372154a4d74" + }, + { + "input": "GGBJHURWWWLEQH-UHFFFAOYSA-N", + "sha256": "fc9af517cb99a0d48f2aea56e7d9cc8e36e02076d14473a7913070e718f0f9d7" + }, + { + "input": "LDLDYFCCDKENPD-UHFFFAOYSA-N", + "sha256": "8ed34175450814e9b6930d06fd9b252ab609516760d40ede5586ec7395315602" + }, + { + "input": "PAFZNILMFXTMIY-UHFFFAOYSA-N", + "sha256": "516739011ff06d78f7327947751939ea55acfdfe692da4e838522b7572f540ea" + }, + { + "input": "XBPCUCUWBYBCDP-UHFFFAOYSA-N", + "sha256": "ea205159b66364572822f58a170793ed55568bff32c7a068116e30a87793256e" + }, + { + "input": "JVSWJIKNEAIKJW-UHFFFAOYSA-N", + "sha256": "7764c415f191e608f2ac350fb10dd40a6da1e8a439056ce660daf12af8091221" + }, + { + "input": "ATUOYWHBWRKTHZ-UHFFFAOYSA-N", + "sha256": "7670c6aac069270764cc0296f0626b4bc540289b1503509b6d8083805e022077" + }, + { + "input": "NNPPMTNAJDCUHE-UHFFFAOYSA-N", + "sha256": "1047ade7e3426df938a5273967f750c0183c9caf8f1c8b01ccbd6622bde312b7" + }, + { + "input": "VNWKTOKETHGBQD-UHFFFAOYSA-N", + "sha256": "1c8ae7a70474388a537ec9723647feb25a401c63ebc1d29bb4e985776e24f1cd" + }, + { + "input": "KEVOWRWHMCBERP-UHFFFAOYSA-N", + "sha256": "3dba9d549319508b36c6a560f9d6519b290ecbe09b1660b49ee09aaa5b66d393" + }, + { + "input": "FPHFMZTUFVNDQL-UHFFFAOYSA-N", + "sha256": "f223a55f0dda7116ac881070cf66ccf2ab94dc92557edf3969b27a0ceb634f80" + }, + { + "input": "YPEZCZIRPXYWSI-UHFFFAOYSA-N", + "sha256": "ab4cce7ab6bbc087df2f669985f3eecbfcebfea655966ef9bd995e41606649c0" + }, + { + "input": "LXFHYFSYVZYKNX-UHFFFAOYSA-N", + "sha256": "addce068a107c42cccbb99a730294d3de81ae0994e7697e639c691589f8bb473" + }, + { + "input": "RAFDCSMAXTUJKJ-UHFFFAOYSA-N", + "sha256": "cabc9aca3aac04e729440701638c7bd82d0611c1b6cc7b2d775da7b831f66615" + }, + { + "input": "FUUGBGSHEIEQMS-HAQNSBGRSA-N", + "sha256": "82129c6125e640308c46008aed832b9c89e3ee26ece65a010a7851879de62bb1" + }, + { + "input": "FUUGBGSHEIEQMS-TXEJJXNPSA-N", + "sha256": "afc6404a5948262719b513d8cd5dd1f62cd64346358585225deaafdfaaf4cef1" + }, + { + "input": "GGWBGCSGJCRVIQ-VHSXEESVSA-N", + "sha256": "33e52c88c9a9a1dc2fdc0c50601736c63554091682c4dcb4aba2c13ba82e8159" + }, + { + "input": "YGYNBBAUIYTWBF-UHFFFAOYSA-N", + "sha256": "84b86bb840b9555afc97a54623c42a77f165db64a5f660e4378f2b1f32135149" + }, + { + "input": "RAFDCSMAXTUJKJ-PHIMTYICSA-N", + "sha256": "8acd9c01ae1aa0237396f174bd2638d13f7018bd3189ad06d582408b84b6cb68" + }, + { + "input": "NZFQZAHKPUYPEP-UHFFFAOYSA-N", + "sha256": "fa53a147e4ec0cdcf1bd6874537b3edbc52ae0c170a07666d5d1e7616eef4166" + }, + { + "input": "RTMYJHBLVZMBFZ-UHFFFAOYSA-N", + "sha256": "8ac8953cfe0e7a57a1165e445935ecdb50a3e2e9cff58c4cdbc76b155c37ec1c" + }, + { + "input": "XWRMSBZBEUKBJG-UHFFFAOYSA-N", + "sha256": "e42fcf6a76fdcac620d54db1ddb18d2f077b834f4cf30b26dd8c6d52916b2056" + }, + { + "input": "RCWQTHRFDWNTKU-UHFFFAOYSA-N", + "sha256": "21c5450c0a2741849bd7b5dd6a8e0b0a19460a107fa3774bf951cdadedd9be2b" + }, + { + "input": "IWFNMYRCGIQKPN-UHFFFAOYSA-N", + "sha256": "e38e2794de8ea5b811d7a0883671f75d9d928369a8ba44d6c08cb2f5cb649786" + }, + { + "input": "WSLDOOZREJYCGB-UHFFFAOYSA-N", + "sha256": "1b042f81b55b9ba7931954c8241050b6f83609abe5308c329e8e297c2b9d9e3f" + }, + { + "input": "SCYULBFZEHDVBN-UHFFFAOYSA-N", + "sha256": "6e436cb0192c765e0cd96a395756e308f36f37207860ea92694b78f8f238dfc9" + }, + { + "input": "YMWUJEATGCHHMB-UHFFFAOYSA-N", + "sha256": "879b26799ef5a0456cfeaa8c36f9a48d6ca2e93fe368c631c04296b02dd5b885" + }, + { + "input": "CKENDVLIAVMNDW-UHFFFAOYSA-N", + "sha256": "a7f67e08e6143d7cd0d06595bca837155364f59558b5db58c4245c558e8f71f6" + }, + { + "input": "ZZLCFHIKESPLTH-UHFFFAOYSA-N", + "sha256": "15cd149967ea013979a04bf1143228f1762fa2bfe1e6a129e82f65b82eb6d5e6" + }, + { + "input": "RHSBIGNQEIPSCT-UHFFFAOYSA-N", + "sha256": "4474023a40306a3fb7fc091524762681160fb367339ac450790d0f7cb131b449" + }, + { + "input": "VSGVRSIUZYVKIQ-UHFFFAOYSA-N", + "sha256": "f806a63e3d6fcdd829cff1fab8abafa553ab051d6c0bcdf175b0965e624ba9cf" + }, + { + "input": "GMDCIYHQAHFZDS-UHFFFAOYSA-N", + "sha256": "d2c742776f243df47053f3c5efb4c8cc2d55132157da580cb65f25dbef5d4f17" + }, + { + "input": "GMHYRCJUUOGKFB-UHFFFAOYSA-N", + "sha256": "143dfe8fb9a49eef2c283a9e83b85c3cc1a86a557f482eca918d867445ad2ff5" + }, + { + "input": "HXHJJDSVGRWZSG-UHFFFAOYSA-N", + "sha256": "c2912a56f00e42f5b11aa2e5e656f7a601ad479b7817472a7567b366659a154f" + }, + { + "input": "ICZQGSXJNGVCIR-UHFFFAOYSA-N", + "sha256": "2fb5d3b46c7fdada4a0b15d344f067eefa68c4d2de702eda581527e9d3623691" + }, + { + "input": "PPZRDFNRXQYLRQ-UHFFFAOYSA-N", + "sha256": "9ba8458785cf3c9ae05e5b9e9986d22868eea1271fba481e0a8185cd1791cdc0" + }, + { + "input": "WHLMGCSXSZPJOH-UHFFFAOYSA-N", + "sha256": "6e8b5d414fc4ee170c363087781d3d29dd4f2377e5e2014b12fde53d44011b54" + }, + { + "input": "VJWZOKAFLGMQNS-UHFFFAOYSA-N", + "sha256": "3285a3b811876f875f7cac439e994659d06ff8e6994864d558544ddac60b4cff" + }, + { + "input": "QCIXIJSHVGMPBM-UHFFFAOYSA-N", + "sha256": "785c26009b3190aadeea2836b29dc5af36c48829f8a0e99f18ef1d008a525f79" + }, + { + "input": "IHRPSUNHSAWEJC-UHFFFAOYSA-N", + "sha256": "468abd9754fc17feb704e0a9dcfe4e2c97a066724e588080cf215100ffd2c7a3" + }, + { + "input": "WAQQEKZHVZSRHK-UHFFFAOYSA-N", + "sha256": "b5e3f35b5f6f110d6bd7dbe7748b1348acd627a8349045b5bd3a50dbd94d949e" + }, + { + "input": "KDYFGRWQOYBRFD-UHFFFAOYSA-N", + "sha256": "7c9169f88ed5e0dcd4350abddc3e3ff7c57dc0730ee1bf391dd81377f8dc8810" + }, + { + "input": "RRHGJUQNOFWUDK-UHFFFAOYSA-N", + "sha256": "a89b6b5cb8d34fb7afb55249852a575beb5854eed16ceb42ddc82fa31e8edfcb" + }, + { + "input": "ZJMWRROPUADPEA-UHFFFAOYSA-N", + "sha256": "b895ad5dd9347ebe798d6c2e61b8d4069972d010cfd79038f0f77d7ceee4eaa7" + }, + { + "input": "YTZKOQUCBOVLHL-UHFFFAOYSA-N", + "sha256": "3e71644ea061e9a44082d3bed7ad8842aaee24cf7f9eda2b93be4965845119c5" + }, + { + "input": "RWGFKTVRMDUZSP-UHFFFAOYSA-N", + "sha256": "46da721518a667474809087726cc89e199c6d8f4885f8fe16e17ddc9ef69aa55" + }, + { + "input": "TVMXDCGIABBOFY-UHFFFAOYSA-N", + "sha256": "e6f174a9b5058631a7fc237f7ada92a4bebd4ed6af5b53a57a87e147d2bb724c" + }, + { + "input": "BKIMMITUMNQMOS-UHFFFAOYSA-N", + "sha256": "b67f94dc21dccfb693363529b3c38090e53347b5bc9664b486d5a7df11afd4e0" + }, + { + "input": "DIOQZVSQGTUSAI-UHFFFAOYSA-N", + "sha256": "b9111888df3636b1b17359e962799242ab9ffff5e0d517b7f8fac1d3f707fafa" + }, + { + "input": "RSJKGSCJYJTIGS-UHFFFAOYSA-N", + "sha256": "bc62f46c4882b6aa47cc08f9e7e6b65d0ab41cdf4039019b691766f1bf2ac6d9" + }, + { + "input": "SNRUBQQJIBEYMU-UHFFFAOYSA-N", + "sha256": "5f8bc8decbe3b706174ca7920fe5a376048b1aae91e84041f06f98c30e9ebf93" + }, + { + "input": "RGRUUTLDBCWYBL-SSDOTTSWSA-N", + "sha256": "c1f044978149b8a95b151074f3a4edee9cfaf0a14676a3f98e54a8030f2ec647" + }, + { + "input": "QXPLZEKPCGUWEM-UHFFFAOYSA-N", + "sha256": "1dc3bc40f31593ab64165200e87229d46a2e3d156a2029ad0913215beaf15c3f" + }, + { + "input": "HJJZIMFAIMUSBW-RXMQYKEDSA-N", + "sha256": "2015eded97997bc9ec80a072a89de77be72b4230c40e09971a4c384577b94c17" + }, + { + "input": "FKKCIOTUMHPTSB-UHFFFAOYSA-N", + "sha256": "b480dfdaf704cb82b17c61baea6455dc10c170006ee2961f89dfec292f0e490c" + }, + { + "input": "BIGJOILKRSNJMQ-UHFFFAOYSA-N", + "sha256": "d43c9501c11b0685cab0277e4cf60f6c36f1e481eab011285033308557bb9ef8" + }, + { + "input": "UAEPNZWRGJTJPN-UHFFFAOYSA-N", + "sha256": "170429eddf075d1e912236f2d0a17c08d114ae48015e573c73c5261b9bd47587" + }, + { + "input": "UFHFLCQGNIYNRP-UHFFFAOYSA-N", + "sha256": "208d757b4cd378f3c8cf1a56162289f0c9d3de2f7e86f074713113102c033543" + }, + { + "input": "UFHFLCQGNIYNRP-UHFFFAOYSA-N", + "sha256": "208d757b4cd378f3c8cf1a56162289f0c9d3de2f7e86f074713113102c033543" + }, + { + "input": "WSGCRAOTEDLMFQ-UHFFFAOYSA-N", + "sha256": "055000a477182fe1b4cbf1faa33d1d81c8c3da27250bb24d04c0d4d4eb1a5150" + }, + { + "input": "NRNFFDZCBYOZJY-UHFFFAOYSA-N", + "sha256": "eba0010a432b7cd1d2887706bdf99aef799462a24f48b74989c3bc0f5963df4b" + }, + { + "input": "QQZOPKMRPOGIEB-UHFFFAOYSA-N", + "sha256": "a96e4989455849f81207aa5feee990aee9df46a27f6248dd67da698e87cf529c" + }, + { + "input": "HCFAJYNVAYBARA-UHFFFAOYSA-N", + "sha256": "f78f3c5558dc81cc48263083135d73bf668b8155df64dd119c659d0a9505e9e0" + }, + { + "input": "SYBYTAAJFKOIEJ-UHFFFAOYSA-N", + "sha256": "79fce92959b416502ec019c3bd43d7ef516e6e023f562b4785c654d54cdf55a2" + }, + { + "input": "SQCZQTSHSZLZIQ-UHFFFAOYSA-N", + "sha256": "389f5cf43f57a6a45a9dc29474f41587f7674240034f4b9fb188f99e538ec752" + }, + { + "input": "AUHZEENZYGFFBQ-UHFFFAOYSA-N", + "sha256": "adae933bf3282b2e475af74c42dee7fd8a6cab69cd138fc12a656b73a72298dc" + }, + { + "input": "IVSZLXZYQVIEFR-UHFFFAOYSA-N", + "sha256": "db0f99ff723f4071e87c8e148f66e10ebbf4650432202227702d6546e216fe7a" + }, + { + "input": "NTIZESTWPVYFNL-UHFFFAOYSA-N", + "sha256": "a77e723a844e07171b8e840e9cde243410bf076e69deac986e98deb0d5d6a422" + }, + { + "input": "CTQNGGLPUBDAKN-UHFFFAOYSA-N", + "sha256": "fc32008e8b376dd7cd61c9eefc8f26805a24fd2bf07654ecf2f9b5710f43caa1" + }, + { + "input": "FDPIMTJIUBPUKL-UHFFFAOYSA-N", + "sha256": "8f4df4a8e4a521d970f22cb5b5d7221d231e8011aad564c5e4f530f96a19f037" + }, + { + "input": "MWVPQZRIWVPJCA-UHFFFAOYSA-N", + "sha256": "fee23cb58e7bf6d7fe781ec5639b35a5ebe95afd3fdefa3b6ef8023d5278daab" + }, + { + "input": "QHTJSSMHBLGUHV-UHFFFAOYSA-N", + "sha256": "acd54a563b892b5100878d90703a206551a752f717d7ff49dff31534f13c272c" + }, + { + "input": "HGBOYTHUEUWSSQ-UHFFFAOYSA-N", + "sha256": "3f39510d79e5b9d582eb6313baa5dad25b052e397d01bcda0f764c18d3b89339" + }, + { + "input": "NPNPZTNLOVBDOC-UHFFFAOYSA-N", + "sha256": "da63f364b2878c064eb1960e02281e22805a6272507718333a22aa70a1a43303" + }, + { + "input": "ALSTYHKOOCGGFT-KTKRTIGZSA-N", + "sha256": "341f11c42bc47687afe6c45bc8057ec1b9a8f3d375ec50b1bd6428160a621cf1" + }, + { + "input": "QTRJVMJEBVLXOK-IHWYPQMZSA-N", + "sha256": "0717b53f9d1b44070663b7571ba6ef08d2d68070e9e541b825a4d4aeb1333ae1" + }, + { + "input": "LHHUTTQJQKEPKV-UHFFFAOYSA-N", + "sha256": "02db4c2034e6d28a8c855b9874dc1494374deda04e41c341db482b1ee04523d4" + }, + { + "input": "VFWCMGCRMGJXDK-UHFFFAOYSA-N", + "sha256": "d9d8162b02805e5952cb126e66cc85576fe558235b440a24bc89bd8e3eda7372" + }, + { + "input": "ULYZAYCEDJDHCC-UHFFFAOYSA-N", + "sha256": "2acac331786d367a850ce1e31c93600422ff54b770d68123a7c18c88e3698ace" + }, + { + "input": "INQOMBQAUSQDDS-UHFFFAOYSA-N", + "sha256": "be74078172153c7e36c60cc6326ff1cc5f19209a2ff13e8a379b9bbb128aa2f1" + }, + { + "input": "HVTICUPFWKNHNG-UHFFFAOYSA-N", + "sha256": "bc1b40975daeb6e21112edc2c2a7795077f7fea65a0037ebcc3efe61dbe1e834" + }, + { + "input": "PVWOIHVRPOBWPI-UHFFFAOYSA-N", + "sha256": "f832c2a08d2df698c644cb9a117e7d0efed72c82bc2baa34e16a711f0352edb1" + }, + { + "input": "KMGBZBJJOKUPIA-UHFFFAOYSA-N", + "sha256": "b62386272c419f3c842e5d3655146eef7814fc58eff96f0f521ba4863f26c099" + }, + { + "input": "CZZYITDELCSZES-UHFFFAOYSA-N", + "sha256": "342c327622940f800bc9eac33051a66da0e76b014420b7d48306750ff6ac00a8" + }, + { + "input": "DGTQYRWGWHKIEZ-UHFFFAOYSA-N", + "sha256": "76a890d8498fd99e0abde9f5ec2b03c73fc8ce81ae08d64516fc9b9dce9aece1" + }, + { + "input": "KFGROPZLGDSAPK-TZMCWYRMSA-N", + "sha256": "80c58d7e5ee4913ec2fdeb124bfc15d2bdb1f86fbe28e329ce962a30a3a9f474" + }, + { + "input": "SRRDSRCWRHKEKU-UHFFFAOYSA-N", + "sha256": "220685db77fd6b613ab1f063b60ac9b4fd94334b36867e09fd7e5c9492f41324" + }, + { + "input": "RAYTXPDVKZFUEI-UHFFFAOYSA-N", + "sha256": "9ffaa149ad1a928d96341e117b151e21586252c05387112fbb5fd875e0148a0a" + }, + { + "input": "UDEISTCPVNLKRJ-UHFFFAOYSA-N", + "sha256": "9f4d059625e2c241e78590935f82b538fdfaa96d1a2b9eed0759ee53f3119c79" + }, + { + "input": "IHPFQAOOSAGSPN-UHFFFAOYSA-N", + "sha256": "0dd310d5f1fb21495b9905f4be63478fd66b4c0dbabb5c017679fae807765c7b" + }, + { + "input": "AMSFEMSYKQQCHL-UHFFFAOYSA-N", + "sha256": "376132026141d7a140d9afe2b8bd178a640c5595e4c4084568e4741b1c8affba" + }, + { + "input": "GZTNBKQTTZSQNS-UHFFFAOYSA-N", + "sha256": "2e6fd52a425e530f5f23eb7b0734548ce3a1d2700cebb5b7327fcb7b8b5ebe30" + }, + { + "input": "JWBQJUFCNOLNNC-UHFFFAOYSA-N", + "sha256": "7626eb8d0e88f3eb915265017c256f14704c4d673ee148c07e31e57635ae4c4b" + }, + { + "input": "QCQALVMFTWRCFI-UHFFFAOYSA-N", + "sha256": "5366bf86bbbf1e8453e2b4cd97f4db9f2eddb66ef8bfbcf43d8a7ae0a0555176" + }, + { + "input": "YVXHZKKCZYLQOP-UHFFFAOYSA-N", + "sha256": "6dfa548033e9d3213777c12c030f2c7230a3532f7388805638c52bd749e2b0d3" + }, + { + "input": "CLWAXFZCVYJLLM-UHFFFAOYSA-N", + "sha256": "d8643a8d1c00a3108cfa20cce57579bff326c2bac4c604a2df32d61dcc8d4890" + }, + { + "input": "RNHWYOLIEJIAMV-UHFFFAOYSA-N", + "sha256": "05ee6ddb28218e82f8b9dd0a42c6d04b3c5964dbd91a8fda9cc6c683845459a3" + }, + { + "input": "MWKFXSUHUHTGQN-UHFFFAOYSA-N", + "sha256": "cb40cfa56455588bdcb3079c101af6854cd032b238705639db522e77fcf119c3" + }, + { + "input": "HLZKNKRTKFSKGZ-UHFFFAOYSA-N", + "sha256": "919c4b999b08d8e67c06bfea99ebdde1725bda1987d4e003a074d97eed8b26d3" + }, + { + "input": "UNNGUFMVYQJGTD-UHFFFAOYSA-N", + "sha256": "01f00a51069f71c9c64a5c87ebb30e6dfdaaa1fe62dc0d85ab7f47283f00f05e" + }, + { + "input": "MTNXTOAQNAWJRM-UHFFFAOYSA-N", + "sha256": "a2c86a0ba2c7a0d930466c855663a16848632c206ce78f17eda5599e01a75d8f" + }, + { + "input": "SWBGUNASIKSCCO-UHFFFAOYSA-N", + "sha256": "9eb847c94b297f9790350121324d2efa3c1f6112f64aca61c33fb612dad33228" + }, + { + "input": "KMDOYNNYJPVPEI-UHFFFAOYSA-N", + "sha256": "3edbda1238ce3f3f110b25d7454fbbf554bf31fbcfc194364318eab6e37237ca" + }, + { + "input": "FYYOHQYLPSPKGK-UHFFFAOYSA-N", + "sha256": "a5853131cabe4b8d9aed1991bfc807e6defc35066b97a05179398956dda80f68" + }, + { + "input": "YTJWKEUCCKHSEY-UHFFFAOYSA-N", + "sha256": "5556548e4da00feeea31aaae7d41eccb1abdbd9da7e718811f1042d5e04ca85b" + }, + { + "input": "XGTCLCRPNGQUKW-UHFFFAOYSA-N", + "sha256": "37c68d694bd2039dfbbcb9ba9e00311dbe9781c040661eeb8fa8dbf9c5f32497" + }, + { + "input": "LGYNIFWIKSEESD-UHFFFAOYSA-N", + "sha256": "97a1b81fbd6fb68436706e782b700d935333f45569a045a3c08066bf897e3a5d" + }, + { + "input": "XNWFRZJHXBZDAG-UHFFFAOYSA-N", + "sha256": "75585ee6b99bb0c5aa2bccf68bd3f0555306b50d24fed50e993d883939567c3f" + }, + { + "input": "ZNSMNVMLTJELDZ-UHFFFAOYSA-N", + "sha256": "74947d8d9199308c12a757e8f4da84a1438c4693b9431f7e61d402e3bb069f64" + }, + { + "input": "YPFDHNVEDLHUCE-UHFFFAOYSA-N", + "sha256": "2532153d00f6955686d37ed68b58d262943bc7af8405d9ddabfbe2795685914f" + }, + { + "input": "SBZXBUIDTXKZTM-UHFFFAOYSA-N", + "sha256": "3649dc3f4cc4d1264dfde75fa76ae94c035e1f5c0940176cf8184edb72dd2d88" + }, + { + "input": "PAAZPARNPHGIKF-UHFFFAOYSA-N", + "sha256": "a35bf4df4ad65ca486a1153cc1cc0b952fb47975e2c52c54e150f0a34fd1af26" + }, + { + "input": "XFNJYAKDBJUJAJ-UHFFFAOYSA-N", + "sha256": "81c1d9ef1bcd5dd08f454e552f7312d5c8fb674b692de2f345a9bb3a93cc37c1" + }, + { + "input": "FXXACINHVKSMDR-UHFFFAOYSA-N", + "sha256": "518aca0979271d104520adc94c22ddad444ce4795acac8b97303c6090778dd2c" + }, + { + "input": "CATSNJVOTSVZJV-UHFFFAOYSA-N", + "sha256": "b21a782c6b520ea552bdf0899b7c4f5465fbb1e08b8ddd1df1ed0ea54ca8999a" + }, + { + "input": "VGCXGMAHQTYDJK-UHFFFAOYSA-N", + "sha256": "8ad2d8a2524f4c7976203bf5d21584db9989324f2695530a478e1e9a89b23caa" + }, + { + "input": "BCVPDPPVMKVZKC-UHFFFAOYSA-N", + "sha256": "626a5d1d643108c118005a7a74e21cd6b165dabcc40b081b504bc066f9d0f146" + }, + { + "input": "FDNAPBUWERUEDA-UHFFFAOYSA-N", + "sha256": "0bff4c17848c31caa9618e6b6284875dc1398787395cd8cdf744b311a8be485c" + }, + { + "input": "HPGGPRDJHPYFRM-UHFFFAOYSA-J", + "sha256": "a4b8e633d3f97275c39852d2a0b519333a7d07330a0dfe85a9d1e67bd4f44985" + }, + { + "input": "BLLFVUPNHCTMSV-UHFFFAOYSA-N", + "sha256": "4c9e66065cdb3d9efaf816a1cdc97bb37989358303bc27112089144f1ea0ef32" + }, + { + "input": "QQZWEECEMNQSTG-UHFFFAOYSA-N", + "sha256": "3bd8894a3cbd8fbc4338cacc06d0be6859ceee4454486d2fac076022e041098f" + }, + { + "input": "SKRDXYBATCVEMS-UHFFFAOYSA-N", + "sha256": "90a5ebb1967e697dffd9430323156fb3b88a236f7b4e940afac2285c93bb60b3" + }, + { + "input": "KAOQVXHBVNKNHA-UHFFFAOYSA-N", + "sha256": "aed6115aa3c9c7ccf01df3c9faa11ae9dec4688db3002ea5a978c968ea7043ff" + }, + { + "input": "IOGXOCVLYRDXLW-UHFFFAOYSA-N", + "sha256": "b4afeaab3c564cefcad566a7c9da7b70072cd49b6f2024dd8582d89568daa7bb" + }, + { + "input": "NFGNZNFBQAGBJA-UHFFFAOYSA-N", + "sha256": "63f66dace2a08e57550f72009bba4d84f6982b2b779709610a69b1c3dadff308" + }, + { + "input": "KCDXJAYRVLXPFO-UHFFFAOYSA-N", + "sha256": "0324066c0962b5b14a164365aeb62f4b73473c6e6f2f5e08049cd1052063ff9c" + }, + { + "input": "FYGHSUNMUKGBRK-UHFFFAOYSA-N", + "sha256": "bf439b68b1a48654cd7b3695854527aee6e6b6532809cf367527497babad30b7" + }, + { + "input": "WNLWIOJSURYFIB-UHFFFAOYSA-N", + "sha256": "ac31d121b58f2883712bb87ce63fe3f1a32b15bcdc3e25d89257949cabddfb98" + }, + { + "input": "ZLCSFXXPPANWQY-UHFFFAOYSA-N", + "sha256": "e36b5f2c69a9d60be8149b62b8d26a85d00f9456d2fcf48358fb59c107b64837" + }, + { + "input": "DSNHSQKRULAAEI-UHFFFAOYSA-N", + "sha256": "2b5d5ba468667badec8f0484632674efcc6cba7efdf350c2f16632e5948c6b81" + }, + { + "input": "WJYMPXJVHNDZHD-UHFFFAOYSA-N", + "sha256": "dea784bdb001fa99ecabb4b5d02679a83e0a2acc56081341bee28134b5528073" + }, + { + "input": "JRLPEMVDPFPYPJ-UHFFFAOYSA-N", + "sha256": "0215429a2221a87c5a1e4fe1e549b705b186c8343ec23393a969402f26e18a24" + }, + { + "input": "HYFLWBNQFMXCPA-UHFFFAOYSA-N", + "sha256": "db82b6747aeb786536502c839436d03a005d4edb7233ee3e4cb85f4b9a485811" + }, + { + "input": "AFZZYIJIWUTJFO-UHFFFAOYSA-N", + "sha256": "820487037ddb3b0e1154decf2bc0ea30b72169602fd4bfc91867e256a4144637" + }, + { + "input": "KVNYFPKFSJIPBJ-UHFFFAOYSA-N", + "sha256": "e7f7f47beaa46b1b3f0f9c31bc1c79c9677330c37b1f7a4e88ba5b25d7fb47bb" + }, + { + "input": "GWHJZXXIDMPWGX-UHFFFAOYSA-N", + "sha256": "f0bb5df4e3869c88ac160f35f6fb49288d64749c40dc9047a822cc52b72e7114" + }, + { + "input": "MCEYLFHKATVXLN-UHFFFAOYSA-N", + "sha256": "6c9f85611043916e046a0b2a102b740ea65d8b66798082e09006e54e2b66de6b" + }, + { + "input": "HHOSMYBYIHNXNO-UHFFFAOYSA-N", + "sha256": "efa1aeeae05c79585d8cc4baed10639e625bf20a3e772546e49a60b4e669cf50" + }, + { + "input": "AFTPEBDOGXRMNQ-UHFFFAOYSA-N", + "sha256": "51a83f848e73e9cec6664924ad6b0a70527e6259d3a55ade49a36dc930ef36e4" + }, + { + "input": "BVAKDOXCVSMKHE-UHFFFAOYSA-N", + "sha256": "06bf143ae21424903249acb5c3fcdfe16e812d3fd720b18e7a25c2634c170bf7" + }, + { + "input": "IXAVTTRPEXFVSX-UHFFFAOYSA-N", + "sha256": "75433d94255520dc9b7916e43bbfe46df7b7bf67e35de609de8ec578461ae1ab" + }, + { + "input": "IIYGOARYARWJBO-UHFFFAOYSA-N", + "sha256": "3d68bf3882beab85a92bcd879326465ddd6236f02d332afa8fe224960e03e024" + }, + { + "input": "GXDHCNNESPLIKD-UHFFFAOYSA-N", + "sha256": "5499704d1a1724b203e4612cc670320a027f4fbe3a29824d91343c338cdb5157" + }, + { + "input": "CXOWYJMDMMMMJO-UHFFFAOYSA-N", + "sha256": "922e6e2494556cb7fef39312f42638db7da680b5472013a40880a825493ea4b5" + }, + { + "input": "FHJCGIUZJXWNET-UHFFFAOYSA-N", + "sha256": "4cb8b65b62499ea48a776b31dd4860d8d8d1d1a16e15960cb37929bd86b6c5b1" + }, + { + "input": "XMROPFQWHHUFFS-UHFFFAOYSA-N", + "sha256": "4bf65b4303cfeed7e3b5afba0cc02b3a5ac83036b63965ef2192e5c0e73fa3f9" + }, + { + "input": "WGECXQBGLLYSFP-UHFFFAOYSA-N", + "sha256": "a9ebf9dd11d0a3811b40abdf79db6b6ebc5f87eebe9e7b8da1b900e3d7b679e0" + }, + { + "input": "AFABGHUZZDYHJO-UHFFFAOYSA-N", + "sha256": "50faa2db7be91ae7f3415570ec2126da7dbae60264aeee73bca4fde6ec407be8" + }, + { + "input": "BZHMBWZPUJHVEE-UHFFFAOYSA-N", + "sha256": "39a317f0eb9c5c67a0888e2e0c37c8f32e72667c25164d4cd3ee42eeab8fabb6" + }, + { + "input": "ZFFMLCVRJBZUDZ-UHFFFAOYSA-N", + "sha256": "3abca9ff29b399ca5c39f6a5d7908f1a4dd9d1a099686a0d3ed3ab15239a6966" + }, + { + "input": "GDEHXPCZWFXRKC-UHFFFAOYSA-N", + "sha256": "f382ce6c9251bc25abf5c98b9fe07e3dd0d1004298ebdea95fdc376a134015b9" + }, + { + "input": "QDQMEHXIUFCIGR-UHFFFAOYSA-N", + "sha256": "3def1f3cb2dbb6854a5966d2ea7a28f0d421994dba37d618323dc580198badc4" + }, + { + "input": "KLSLBUSXWBJMEC-UHFFFAOYSA-N", + "sha256": "9804fdef35c3403529b8aa926e94b2e09ec540c310bc9a0a53a62c2840e89e8f" + }, + { + "input": "BUQNXFUMFXFRKC-UHFFFAOYSA-N", + "sha256": "a1abff6cdffb41a0ef84b1c6120388a662a89b7b84bf5bb0f0bc1e195bb48b68" + }, + { + "input": "HXDOZKJGKXYMEW-UHFFFAOYSA-N", + "sha256": "0dfa4c50d1119d2b6968ec1775c11468258805d78c5aa227c996159f20655242" + }, + { + "input": "CYYZDBDROVLTJU-UHFFFAOYSA-N", + "sha256": "dfa59a7a2c855f326d17e99bbeb97747f792633e7922ad8948e6dce930a74a6b" + }, + { + "input": "AVVVXUXMKWPKAJ-UHFFFAOYSA-N", + "sha256": "786ce6b6984ce34586ee7d5e0342dff53d8fefa0042bdedb317726fba409b5e6" + }, + { + "input": "MEEKGULDSDXFCN-UHFFFAOYSA-N", + "sha256": "6cc5a74c3e6d59034e1a4a38e7b2f397f731b0e900cdaa53068b692eaf40ca4e" + }, + { + "input": "KNDDEFBFJLKPFE-UHFFFAOYSA-N", + "sha256": "7ba6256f121fb985e136cdbeeaf52f5740fdf63f531126c36571c68a16b02859" + }, + { + "input": "PYLWMHQQBFSUBP-UHFFFAOYSA-N", + "sha256": "bd641cdc9b64c8a41a732d60396697372a6777b49b7a6256d093f50514a13f71" + }, + { + "input": "SNHMUERNLJLMHN-UHFFFAOYSA-N", + "sha256": "994f671c35a7993637359d5ef8b0260fecc018f55bce83291ef6d26a9791cbc4" + }, + { + "input": "MVPPADPHJFYWMZ-UHFFFAOYSA-N", + "sha256": "822366d21cf93b346d0e699b19f8106f04946180235a6ee962dd7533593beea7" + }, + { + "input": "QARVLSVVCXYDNA-UHFFFAOYSA-N", + "sha256": "677d9d5a6960bd9a78616af979f2b1f2df158786db59e8de20a9e4f6fb83c2b3" + }, + { + "input": "HNRMPXKDFBEGFZ-UHFFFAOYSA-N", + "sha256": "06c9396959489567ef057366dfd6921cff4e0ebfbb09d18a4ae16783b9af72ee" + }, + { + "input": "PFEOZHBOMNWTJB-UHFFFAOYSA-N", + "sha256": "3d5bd6f47c209cd1e9b85f76f6206eba25f3d78df296721a049ffbace4e4c5ed" + }, + { + "input": "ATEBGNALLCMSGS-UHFFFAOYSA-N", + "sha256": "23403e9494355eaff7e50ced6b0f1a5ce073b08d404988e36f5c54b4166d86c5" + }, + { + "input": "BAMUEXIPKSRTBS-UHFFFAOYSA-N", + "sha256": "985a798d40b28914a9a8828b92d1471c0b2f535cbec151d63f9da1dda66e30ce" + }, + { + "input": "JZMUUSXQSKCZNO-UHFFFAOYSA-N", + "sha256": "ec2fc1d7abcf367b07fa8ee0b9654bed6684bdbb40e5dfa04b958c6ff471cd0e" + }, + { + "input": "BQAZYKYBFAMHPG-UHFFFAOYSA-N", + "sha256": "d7e42501a26e8131d4fee07b512dabbfd6eeada0fc5e2097246637904bfe4099" + }, + { + "input": "OFKLSPUVNMOIJB-UHFFFAOYSA-N", + "sha256": "53c7c233851969c7e6021185cb8ab10d7d90568c2d2aa95c7694b858fbb8c794" + }, + { + "input": "PTUNZAOKLBTUBF-UHFFFAOYSA-N", + "sha256": "8830ee97a3639887d69c5d2e76dd4df1ff9b028a49734915aa69eedb721bc74e" + }, + { + "input": "JZMUUSXQSKCZNO-FNORWQNLSA-N", + "sha256": "81a79208db6590ce50c3c4d4eb9654319b8b0845888b8b7e13858c5a98b92759" + }, + { + "input": "FZQMZRXKWHQJAG-UHFFFAOYSA-N", + "sha256": "01217e5e608a0cf48c144d55a1045d6222e1b3c0b16d20e623a74c2e04ab2c22" + }, + { + "input": "IZSBIPQYBGDXJZ-UHFFFAOYSA-N", + "sha256": "ce3d5a54a6876877c098e4316df6330ea4ac5e7a4b8a273d0ddd5ffa37958e58" + }, + { + "input": "RGYAVZGBAJFMIZ-UHFFFAOYSA-N", + "sha256": "620a631951bdffc62ad7ce41cdccd6c2d41a7937f3854265d6474256cf944c3b" + }, + { + "input": "WEPNJTDVIIKRIK-UHFFFAOYSA-N", + "sha256": "fd887659779e0d55edebbcc08b0e0d65c6050d20b450530f58c8fd581734d81a" + }, + { + "input": "BEQGRRJLJLVQAQ-UHFFFAOYSA-N", + "sha256": "3aa684d9b1bd82ae42c0dd4ba50d586b5680afa48d9c6ebcf85d1d3794fbde87" + }, + { + "input": "FMNLVKMLDPGPRY-UHFFFAOYSA-N", + "sha256": "86cccf582149c46fcc49e0444d6415f4487bb86a9cddbff1e29d78f637b5f1e5" + }, + { + "input": "BEQGRRJLJLVQAQ-GQCTYLIASA-N", + "sha256": "ef867be68718379cd698a1247152eaedc38051bb1862a3238ff819c59faef793" + }, + { + "input": "LAAVYEUJEMRIGF-UHFFFAOYSA-N", + "sha256": "8cca3d2aae3da7937a194b14615aa51b72c26c87d88cfbf951b1a98671ac51bc" + }, + { + "input": "FMNLVKMLDPGPRY-ALCCZGGFSA-N", + "sha256": "8d18cd33d80954893e6c684b34bfc5f22a700a780e519b73c52ca985b662d340" + }, + { + "input": "FXNDIJDIPNCZQJ-UHFFFAOYSA-N", + "sha256": "e316e6abfbd3b00e8fddb90f5368cba14c1d330a3d8495449bf1ac968a6734ba" + }, + { + "input": "IJGRMHOSHXDMSA-UHFFFAOYSA-N", + "sha256": "84edbdc8e72524f1a63031f7fcfc07f1007c73593c2d83531ce848693e9f4c8f" + }, + { + "input": "QHKKGWHSXSIVAJ-UHFFFAOYSA-N", + "sha256": "f1a7548ffaf04f164584fb8e19365386bb9537d55ae5229bf8dc9174374687b7" + }, + { + "input": "SZIFAVKTNFCBPC-UHFFFAOYSA-N", + "sha256": "ba0d2aa677eed0b63f2a140c7d383284ff3a8282c4419bcf79ec0ae229c1133d" + }, + { + "input": "GCTNBVHDRFKLLK-UHFFFAOYSA-N", + "sha256": "5652b93aaa24ac8447e45b83b53db32addd1897ed9060c6db74262616a8984da" + }, + { + "input": "DQQNMIPXXNPGCV-UHFFFAOYSA-N", + "sha256": "433622b4740209e2455916f2fa4d98fd50b37dba0261d9208e66f03eb4765a6a" + }, + { + "input": "HXQDUXXBVMMIKL-UHFFFAOYSA-N", + "sha256": "614ce54a746b7cdc7968d82bd01bf8dccb5d53050f32cf341fde1ef530b49af0" + }, + { + "input": "ILUJQPXNXACGAN-UHFFFAOYSA-N", + "sha256": "c1255eba4f27f62597d441eda2356497943168364a5f93e29ddcd92473f14d05" + }, + { + "input": "CCVYRRGZDBSHFU-UHFFFAOYSA-N", + "sha256": "104677d177613cfc87fce0b214b0ad4599df6cf2c1338dcc86fcd42c256ac289" + }, + { + "input": "PYHXGXCGESYPCW-UHFFFAOYSA-N", + "sha256": "58633d69f9c600ce186673974c059c9008d6b4dc13576452971bcb8bab6fca9b" + }, + { + "input": "HJWLCRVIBGQPNF-UHFFFAOYSA-N", + "sha256": "7a362b3c237626a0dbbc304b7db3564724b4d9ed04fc6556477786cb2d46dc4f" + }, + { + "input": "IGARGHRYKHJQSM-UHFFFAOYSA-N", + "sha256": "ae9ea233d74329bce8f33166c7f1facf486ba590c0783f2da40a4fcd718e6711" + }, + { + "input": "BMVSGYZZGVEXTB-UHFFFAOYSA-N", + "sha256": "9ae9077f56b37ab683d4f28d50fa91348fe215c06076fbe47189aa06d8a9f8e8" + }, + { + "input": "SPPWGCYEYAMHDT-UHFFFAOYSA-N", + "sha256": "2083dca0bcfa7bb9bb5a521c72a64cb84db80f63bda67095ebbe4e5466f67be1" + }, + { + "input": "RYFMWSXOAZQYPI-UHFFFAOYSA-K", + "sha256": "5dc6f202e048860d4c3d45f020b8c4c11bee277a9431358030888c9d4f4625b2" + }, + { + "input": "QMMOXUPEWRXHJS-HYXAFXHYSA-N", + "sha256": "9ec49aba870c129ad32ab6a230287633c3e7780ed59abf65484770732b9f880d" + }, + { + "input": "NKTDTMONXHODTI-UHFFFAOYSA-N", + "sha256": "0cbfeb5c6cbd5b4d6499ed39460ec38a8304abd40780e0f5db698eed2746cae4" + }, + { + "input": "AQIXEPGDORPWBJ-UHFFFAOYSA-N", + "sha256": "3a157db818be0f0ef581de5addefe69f8b7148e8dfd2e2843ce88dbb4e6a74c5" + }, + { + "input": "QMMOXUPEWRXHJS-HWKANZROSA-N", + "sha256": "9aaf7514890126841540eba0331d4c3763219056c2d6b30908e061a7c1370ec5" + }, + { + "input": "BAVYZALUXZFZLV-ZSJDYOACSA-N", + "sha256": "134ad3d9f36b16d8ceffe163b4e89293137a1d476c1e8faa5db63d53a58a9f32" + }, + { + "input": "PPBWEVVDSRKEIK-ALCCZGGFSA-N", + "sha256": "ffe752c233689d16b05e8295006f2b3a0409a637041f6ae52265380b36026db8" + }, + { + "input": "PPBWEVVDSRKEIK-UHFFFAOYSA-N", + "sha256": "fcab1db7098df0863a42d65389b3765e07577f85a821f86c8283618d37471feb" + }, + { + "input": "LREHZSYYNKLHTD-UHFFFAOYSA-N", + "sha256": "655a21a92ac3ec66855d34b409ec85d850511f0313acb86c675dcedcde4ff31f" + }, + { + "input": "XSTRMLBPCRZKMJ-UHFFFAOYSA-N", + "sha256": "0f6d91875504d78e3400ceedeb3ba7f21377c86cda8b16f32b069ee267acc6c9" + }, + { + "input": "XMYFZAWUNVHVGI-UHFFFAOYSA-N", + "sha256": "f3feb242979bf0ecfbfed72767b47a0504c451bc30f553502627fa73cff101dd" + }, + { + "input": "VEXZGXHMUGYJMC-UHFFFAOYSA-N", + "sha256": "9474b17456a65376657551a1adc7cad92fcae22869c5f7f33f25029d439093d4" + }, + { + "input": "CPELXLSAUQHCOX-UHFFFAOYSA-N", + "sha256": "a8a6e00e9f798f3f64c72f73b563596167fa4742b535b7b1c95c8c2fc1ad802a" + }, + { + "input": "VQTUBCCKSQIDNK-UHFFFAOYSA-N", + "sha256": "e6d287e4bdbf0bfd684542cb6f959907cce14c541bba18e895759f05b5afa043" + }, + { + "input": "RKSOPLXZQNSWAS-UHFFFAOYSA-N", + "sha256": "1612db5704b17e50ddbf32e259b8c58bce95814d9da5771e8b5a278a500e1338" + }, + { + "input": "NBRKLOOSMBRFMH-UHFFFAOYSA-N", + "sha256": "4e739b9ab4c63e185ea06c51351e6ea653e3af8f0cc21df77d9af0356542b9b4" + }, + { + "input": "SPLGZANLVHBDCC-UHFFFAOYSA-N", + "sha256": "eef21eb591ef90d359001b96f8aa43af5e845e664e9a4e79306eeba2ac9d5308" + }, + { + "input": "QGOXFEKKDFMNLK-UHFFFAOYSA-N", + "sha256": "1f198f7e8ec9e63d821e7989d4f0bd626a8fa517968dc0d5a0379435eaec5c27" + }, + { + "input": "KUWXWSOGHBXOGK-UHFFFAOYSA-N", + "sha256": "f17a9fd6a3eb8446fbcd354df61a7739e7a405f6a12b06c3c935abff5c0a67ce" + }, + { + "input": "MCEORGGPAKTORV-UHFFFAOYSA-N", + "sha256": "d4b45eed9d6d80150170d276231b96691ce22d60db7b462edab97054d45d9a81" + }, + { + "input": "YGDMAJYAQCDTNG-UHFFFAOYSA-N", + "sha256": "ec67a052dbcc33dea9e92b1b24f9a2301bda71f6ca94529e2a6aa462ed7cc010" + }, + { + "input": "TVYVQNHYIHAJTD-UHFFFAOYSA-N", + "sha256": "1f00a4f29f403de1afb52ae936d59676966ab3e6dccfcf777d187dfc7d30a0ea" + }, + { + "input": "NDLQGVXBUFZFIX-UHFFFAOYSA-N", + "sha256": "52f7e69f3e05f860ae29d4a7ecbbdad79762a05bea589ebfb113184438180111" + }, + { + "input": "BDAGIHXWWSANSR-UHFFFAOYSA-N", + "sha256": "9d0ca8817924b83775b64711266276539bdb083f22e067369d1d95b99bdf6018" + }, + { + "input": "QTBSBXVTEAMEQO-UHFFFAOYSA-N", + "sha256": "4184fd98a1429c5b59fbbec84d1a1f865d11e1e82323e15dc306c08aaf4be6a5" + }, + { + "input": "XBDQKXXYIPTUBI-UHFFFAOYSA-N", + "sha256": "36ad7b694c32fee8ae8b257d667d77e6e517469337357653df1770cccb6b1798" + }, + { + "input": "FERIUCNNQQJTOY-UHFFFAOYSA-N", + "sha256": "a10f5eee524237b6bf21a8342aeefe2c64ba049c4bdd613d3be51a03fe28a728" + }, + { + "input": "NQPDZGIKBAWPEJ-UHFFFAOYSA-N", + "sha256": "a90df980bad736a72d11a62d64e5cfb0398d21271f5dc0e56d1836773bbfa5f4" + }, + { + "input": "WWZKQHOCKIZLMA-UHFFFAOYSA-N", + "sha256": "db807fb0a884218692e94196df448e8e87f198dc83d79e88188c646dc17c22b1" + }, + { + "input": "ZMXDDKWLCZADIW-UHFFFAOYSA-N", + "sha256": "7a9d8c6003261fff058494611aa3225168c6314ed38ff5e23e96ecd93610373c" + }, + { + "input": "FXHOOIRPVKKKFG-UHFFFAOYSA-N", + "sha256": "050c92d94569e460571cf49667dd338af30588dbb0bd878c3229d78443061ee4" + }, + { + "input": "MBHINSULENHCMF-UHFFFAOYSA-N", + "sha256": "625a9de88ec03779381489c7ac6518b1f36943612ecb1bc17b3e7e214eb39cc7" + }, + { + "input": "VIJUZNJJLALGNJ-UHFFFAOYSA-N", + "sha256": "064da53f46bd209e492b81b6b917631ca1cf5afa13ed38346b8053a6fe60df67" + }, + { + "input": "BNODIVYXTGTUPS-UHFFFAOYSA-N", + "sha256": "455929952d04d5233df7011af734704d55f43f50c411b04410170bfd4e52ad4e" + }, + { + "input": "OAERLTPBKQBWHJ-UHFFFAOYSA-N", + "sha256": "543ee9ae13acb18eb8c05169bccd3e70ede5b926c888a909beae0e8b413b4ff7" + }, + { + "input": "YIPTXVFOZPQVLT-UHFFFAOYSA-N", + "sha256": "5268bd9219a8e53cbe9f72b3a950144d8de58964d69614b9de050c1f9cf1fb90" + }, + { + "input": "VHRUBWHAOUIMDW-UHFFFAOYSA-N", + "sha256": "86d3d1e616dc4544e9c80b47145112e15fbc2b279f2bc1559e2b5d5188ac4be3" + }, + { + "input": "VUKHQPGJNTXTPY-UHFFFAOYSA-N", + "sha256": "5e65be90683429a85599a94c54a0f3caae36b27807e47cb5e106652d4e4cc184" + }, + { + "input": "PBGVMIDTGGTBFS-UHFFFAOYSA-N", + "sha256": "1764949a9b6774e9db30c4452610110cde3ebd75e3887204b2a6dc21e6573e31" + }, + { + "input": "RBFQJDQYXXHULB-UHFFFAOYSA-N", + "sha256": "5b803506a0dae3df87625c4dbdeb63c23e3bbf49e5055ce5e9f3ce196118bee4" + }, + { + "input": "SJWFXCIHNDVPSH-QMMMGPOBSA-N", + "sha256": "7fb32332f80727d2d1742949c1c8d7ccc54b95908b1a415a96c3f4704720eccf" + }, + { + "input": "PWATWSYOIIXYMA-UHFFFAOYSA-N", + "sha256": "ee0c509e3ea2068487187eacc7b65749aa74535ca55e2ad66fcde19f141d7758" + }, + { + "input": "DSSYKIVIOFKYAU-XCBNKYQSSA-N", + "sha256": "aa32698fe5c84cd751804a636be0a7cb460591c068cbf21862cf18fa152fdc29" + }, + { + "input": "XIRNKXNNONJFQO-UHFFFAOYSA-N", + "sha256": "467c2d54ea7729ab380c64912b91ce43b46aa23313a47f9a827cf56d8014a609" + }, + { + "input": "MVLVMROFTAUDAG-UHFFFAOYSA-N", + "sha256": "27aa37fe48da90ae2839b39cec7db259b59ac69c1f56d81ecb21e7a5aca6601d" + }, + { + "input": "YBKSMWBLSBAFBQ-UHFFFAOYSA-N", + "sha256": "0e82f099cd68f146de217bfc73ac9184011d5e951f93d3d10dd3a99d1ff9a01f" + }, + { + "input": "XMGQYMWWDOXHJM-JTQLQIEISA-N", + "sha256": "05a8f73a7e258c272b6ee64d33f265f3f897bbfc98ebf40c1d5b415ad0494423" + }, + { + "input": "MOYAFQVGZZPNRA-UHFFFAOYSA-N", + "sha256": "73da048631d7792da8f5fdef03eb8158ec7d598e00463194c961a69bf80aca98" + }, + { + "input": "AURFZBICLPNKBZ-FZCSVUEKSA-N", + "sha256": "c7bd34618e7ecaa2098459cd5aff4650e2a5cd5c4b9a8ba58ce6f58d056a2036" + }, + { + "input": "XMRPGKVKISIQBV-BJMCWZGWSA-N", + "sha256": "84cd4be5097fbab62b67f32676327e3c05329ebfc8ed9ccfcfab50e5d38b71f5" + }, + { + "input": "YWYQTGBBEZQBGO-BERLURQNSA-N", + "sha256": "8f08b1045f93c777bdb2cda8ecaa67f4ebb7a719fa820016fbbcf0dde8dcef24" + }, + { + "input": "BHNZEZWIUMJCGF-UHFFFAOYSA-N", + "sha256": "90f2a8b2eaf95199435cc9dc6a7c774b3ba0aa6ae529a5def496e493961dce0b" + }, + { + "input": "NXYKGDRICYQGII-UHFFFAOYSA-N", + "sha256": "65aca2d6af9907d6b1a107a73b4a2e10c7e6ac4c4388eed65552fe0278d88f62" + }, + { + "input": "SFQUWKPXRAGZIF-UHFFFAOYSA-N", + "sha256": "95afbf603e69847ea4694ac5cfdd823c916b5de9abf01e2cbcd9fe4c7d672dc9" + }, + { + "input": "XBEMOYAFDKAJSQ-UHFFFAOYSA-N", + "sha256": "fa5bb54a337c1ee5f098cc27c6496a90f4d4fa15756c9c70a7a1077b53abd3ab" + }, + { + "input": "DCYGAPKNVCQNOE-UHFFFAOYSA-N", + "sha256": "11af933a65ab1948bc2ada06d423c9542f26ff4b29d58a0fc1432094d12a3da5" + }, + { + "input": "RWSOTUBLDIXVET-ZSJDYOACSA-N", + "sha256": "eb2c25ca0f519c9c312477238917f57570af6b19f93ddd1cc7982f175960d756" + }, + { + "input": "SPVXKVOXSXTJOY-UHFFFAOYSA-N", + "sha256": "af59fb197efd13b232fea437a0cec41d8e2080f07a45be89049e7613aa4b9cb3" + }, + { + "input": "SPVXKVOXSXTJOY-ZSJDYOACSA-N", + "sha256": "6dc3825906280a325eddd625553d0c59fbf7daa2d35f1441e6e5bf3f0d6a43fb" + }, + { + "input": "XYFCBTPGUUZFHI-UHFFFAOYSA-N", + "sha256": "4bf80a33486455e3bb1858d5a79cb218be848c74d5ca396ed82a3a3ced6a9614" + }, + { + "input": "UFHFLCQGNIYNRP-UHFFFAOYSA-N", + "sha256": "208d757b4cd378f3c8cf1a56162289f0c9d3de2f7e86f074713113102c033543" + }, + { + "input": "OTMSDBZUPAUEDD-UHFFFAOYSA-N", + "sha256": "b3434e2a46bd828dd1a24c0f8a9b50cdbd5261894cef43fad5b146c40218cc5c" + }, + { + "input": "HSFWRNGVRCDJHI-UHFFFAOYSA-N", + "sha256": "df6283cfcc533ffd9560be08da2b3cfda72f1dca494fac43065c56fc55e4a2bb" + }, + { + "input": "ZISSAWUMDACLOM-UHFFFAOYSA-N", + "sha256": "8306f500ce2e94f55238cc140aca9c51fb8bf45b768ed18405bd969a9dbdff34" + }, + { + "input": "VLJXXKKOSFGPHI-UHFFFAOYSA-N", + "sha256": "9e0fc38d513061280c515a883a2173c491fcd4970a620a7569ff1a059af91aa1" + }, + { + "input": "JXPOLSKBTUYKJB-UHFFFAOYSA-N", + "sha256": "90303d80c21d25b7770dfbbeb66a5897537b00699e52dcfa4a209ef828ad1299" + }, + { + "input": "AORMDLNPRGXHHL-UHFFFAOYSA-N", + "sha256": "8f680e1e0b5e2c93ab735e26d3d6a722377388f03face0f5e4c8119379dfdae5" + }, + { + "input": "AEXMKKGTQYQZCS-UHFFFAOYSA-N", + "sha256": "068a70e0cee131b78bef1bf37e759203b1411ddab84d91ef03ac57f5e73e4dd5" + }, + { + "input": "CRSOQBOWXPBRES-UHFFFAOYSA-N", + "sha256": "aa5a4107967514d14082c977fad9bc824c9ca5fa98c94c9071b7559fa0b22f57" + }, + { + "input": "QWTDNUCVQCZILF-UHFFFAOYSA-N", + "sha256": "a886ee46aa712c15b6004684a1bed77f3a5d9e5ec1c77071cc49711838674d3d" + }, + { + "input": "LFQSCWFLJHTTHZ-UHFFFAOYSA-N", + "sha256": "103d5f67e5f55225dd212c19811c8fca0c45916ff58e77304dfb9ee47631fcca" + }, + { + "input": "GCGLVJDTQORHQD-UHFFFAOYSA-N", + "sha256": "43c07648def4ec2131939bba13f0416688cadd69eb27a9faa2a55abb91a13849" + }, + { + "input": "UCWJLUYVHHOFDC-UHFFFAOYSA-N", + "sha256": "7a96ea7d68257dd6fa3ed394949ae625252997b772b8e51af6829e9f617f5bd2" + }, + { + "input": "ZMANZCXQSJIPKH-UHFFFAOYSA-N", + "sha256": "4f13e70370a75312e961e2553238663e430207b1ec7d882311e66edfc9e84863" + }, + { + "input": "NIQCNGHVCWTJSM-UHFFFAOYSA-N", + "sha256": "60f507e87877ae9edc946f20b9e5928a58f550445d09b386848ce4df67474245" + }, + { + "input": "XXJWXESWEXIICW-UHFFFAOYSA-N", + "sha256": "42a958958d4522cc565fbf99a53f7e5a40ece710ca875b1fde05716ea33f5deb" + }, + { + "input": "CXWXQJXEFPUFDZ-UHFFFAOYSA-N", + "sha256": "05ad0887e40013b16e7099031cb0474d8a2395c97f8a3ac645985289a3d01fc3" + }, + { + "input": "OAYXUHPQHDHDDZ-UHFFFAOYSA-N", + "sha256": "1acc7a6679ab72785737d400faed7f5d89e2cef3dafcbb7da3f25c43ea59fc0b" + }, + { + "input": "QUKGYYKBILRGFE-UHFFFAOYSA-N", + "sha256": "2796197fe810c5cdd5172cc986e6b0cbb6068f919b7c59fdf0574f7ef991f847" + }, + { + "input": "NNBZCPXTIHJBJL-UHFFFAOYSA-N", + "sha256": "68880d6f6b23a744f1536f29c14b7a18c5b3e7c7ecef63b153af22cc9e8cf421" + }, + { + "input": "DOIRQSBPFJWKBE-UHFFFAOYSA-N", + "sha256": "0d3e6094b8e9c28083a7a4a387ab2fb966cca35255d793468ce48d5793f9f77d" + }, + { + "input": "WVDDGKGOMKODPV-UHFFFAOYSA-N", + "sha256": "a6f6b400e951cf5f8704ef549df944602dc77e7717433dd74e4fbb6ad333f126" + }, + { + "input": "IGODOXYLBBXFDW-UHFFFAOYSA-N", + "sha256": "1333f15ff2aa0eeae281a6c1f8bdecf9ce95373ddb9ae586bf3d68035ece6089" + }, + { + "input": "ISPYQTSUDJAMAB-UHFFFAOYSA-N", + "sha256": "66ad2cc682752e64f27a1717842d1dc800a1d790a7b2774b478212002caa2d68" + }, + { + "input": "PRNZBCYBKGCOFI-UHFFFAOYSA-N", + "sha256": "ce94d9737bdfd2b31757100b84712495dbc9601f6fd9a9d9c607081a20f1651c" + }, + { + "input": "JRHNUZCXXOTJCA-UHFFFAOYSA-N", + "sha256": "861d5e63300bf46f71812b05b3737f41909a280729b4e9dcf1550adf8dff9b04" + }, + { + "input": "UHCBBWUQDAVSMS-UHFFFAOYSA-N", + "sha256": "52edb53660c5b5c47054313adbb26facc0d975dd5b5722fd4b0a176061cd8bda" + }, + { + "input": "FOTXAJDDGPYIFU-UHFFFAOYSA-N", + "sha256": "afdd50bc370462f5fe5dd6ea037912e935497acbab4eee57d33d060504123111" + }, + { + "input": "VXNZUUAINFGPBY-UHFFFAOYSA-N", + "sha256": "79cd7a06dfdafcb0f49f2df1b5fca5ae15c2e97d23ca059be75a3a6f82262fba" + }, + { + "input": "KAKZBPTYRLMSJV-UHFFFAOYSA-N", + "sha256": "93cd07ca04bd99e3ff3e5b82c16c9ad3f101f887192a9be22a14e867615fbaf5" + }, + { + "input": "LCGLNKUTAGEVQW-UHFFFAOYSA-N", + "sha256": "498f27e307ddef826e0d8d44101d7c47caa18ed2e5919faf18706d6f64a7e304" + }, + { + "input": "NEHMKBQYUWJMIP-UHFFFAOYSA-N", + "sha256": "bb2b9382067e6c8667aee0a8113f00840d595982edb94da6a7c739a1ed472ce3" + }, + { + "input": "GZUXJHMPEANEGY-UHFFFAOYSA-N", + "sha256": "eceaa6b810fe39b95739f8f2a55de8b0567b931086d9a0c8914a4acd1f274aa6" + }, + { + "input": "LVZWSLJZHVFIQJ-UHFFFAOYSA-N", + "sha256": "d5bc9f540d48dd415ad766ee4eee5ff8c38777a947498382801c0eaf8aeb2090" + }, + { + "input": "XSQUKJJJFZCRTK-UHFFFAOYSA-N", + "sha256": "b816cd40f4298ef578d5bae7e4c0a4fd781380fa9b76087c59694f83654e54f6" + }, + { + "input": "CSCPPACGZOOCGX-UHFFFAOYSA-N", + "sha256": "42342481e70fac15de849a83d79951f8e4a1d46034e9f682e122665d5a7b148a" + }, + { + "input": "MMRBKQPNLMBMGI-UHFFFAOYSA-N", + "sha256": "a9af47d4b559f9e39f7859e4949cc5d66c8a054eb3abc24aa94323ace056b50c" + }, + { + "input": "GMLGNXFZAPAVHK-UHFFFAOYSA-N", + "sha256": "5e2da7bc2db296a2fd2e988f4a5e4092a89892b07bef8755cf1e28d41530ffa0" + }, + { + "input": "NHTMVDHEPJAVLT-UHFFFAOYSA-N", + "sha256": "f1c2dd9effef777ad6f08db7999c665278b0e821fe3827263d4d97274c344ab2" + }, + { + "input": "SGVUHPSBDNVHKL-OCAPTIKFSA-N", + "sha256": "82e1b75906b602da8d56ae7b39c94cf1c45f9b19734d66c64772d6b563446bdf" + }, + { + "input": "QRMPKOFEUHIBNM-ZKCHVHJHSA-N", + "sha256": "c0c542e0df49ce18c9a117fbe226c34f522589cd0dda23d1b7b8bb4f3df3b144" + }, + { + "input": "IIEWJVIFRVWJOD-UHFFFAOYSA-N", + "sha256": "f82b9030abd51f1861a8559578cda73bbc58d2f93d40668526261fdcc4dc2597" + }, + { + "input": "DHMQDGOQFOQNFH-UHFFFAOYSA-N", + "sha256": "67e5b2ea6cacc23e3ddd37eb5e60156bc312863bffcf6066396784f234753b30" + }, + { + "input": "QNAYBMKLOCPYGJ-UHFFFAOYSA-N", + "sha256": "e29603ca0e144b4f2ac7f3a5accf4975f97bee597bd029f210b220af9c3a35fb" + }, + { + "input": "ROHFNLRQFUQHCH-YFKPBYRVSA-N", + "sha256": "7f849a20bd0067fd8812447880173d14149133bdd16c57996905c6babc31b6a5" + }, + { + "input": "ROHFNLRQFUQHCH-UHFFFAOYSA-N", + "sha256": "c064e29b7ef1c6cf8fb71f9ea57b85038231cde82fbf08e6fc1e5459771fb54c" + }, + { + "input": "ROHFNLRQFUQHCH-RXMQYKEDSA-N", + "sha256": "6ce669cb57640d07e073d9767b517ce150cd2b7f3cc87bd8936cd78da5f12878" + }, + { + "input": "OUYCCCASQSFEME-QMMMGPOBSA-N", + "sha256": "a22f24f4c8ce5a56f2a7536f399b2550dccffbae4a0942f5dece1d403032ae07" + }, + { + "input": "ODKSFYDXXFIFQN-SCSAIBSYSA-N", + "sha256": "9eb06d11bcf8abdb312a630601bbca3d4e764de413db2c6825bec6923baf56ac" + }, + { + "input": "TZYRSLHNPKPEFV-UHFFFAOYSA-N", + "sha256": "fd42a01d090601c2bac5881c5ec0ee2e67934d2d6fe1c26b4fee8c0a73d90476" + }, + { + "input": "IQGZCSXWIRBTRW-UHFFFAOYSA-N", + "sha256": "3e146cc163907cc94004432c492cfbc17919473518d44f8fd73cc31dbb2e98c2" + }, + { + "input": "UGUYQBMBIJFNRM-UHFFFAOYSA-N", + "sha256": "23432dfba306c37915bdbf8ba7d7167ad809df25b64657c9c4fa494fdfe99a3b" + }, + { + "input": "AURFZBICLPNKBZ-SYBPFIFISA-N", + "sha256": "17821e5c07943809c0415119621c5c988b7855dc07b02ecd99fc26048ea9d8b5" + }, + { + "input": "HXVNBWAKAOHACI-UHFFFAOYSA-N", + "sha256": "3d7c00ebb9dec61bec5aa8859a419b8560fb1a201ecc6e333ddad6ed44e5819f" + }, + { + "input": "WDAXFOBOLVPGLV-UHFFFAOYSA-N", + "sha256": "0ada0241ed4ea2af1d96d43fe7d09b9916db9a7740c66c19b22e4feb7a1655f5" + }, + { + "input": "NJWMENBYMFZACG-UHFFFAOYSA-N", + "sha256": "eee908c3bb878323410a8722390d387e1c2a777b183779e76300c9860d346238" + }, + { + "input": "WJYIASZWHGOTOU-UHFFFAOYSA-N", + "sha256": "ec9215d89b4158451952b7861fb1a7654da3223337f983642bf17ae43f17af69" + }, + { + "input": "ARUVKPQLZAKDPS-UHFFFAOYSA-L", + "sha256": "c8febe57bc545da8b9e2baf4f36c4d03790bbced3895eb5bdb886d956e8d50a3" + }, + { + "input": "YCERROAHYOJTRF-UHFFFAOYSA-N", + "sha256": "8d744007ff7330862dadea11615b8a16b10eb1e6e29dc159aa75337bc8c1efd2" + }, + { + "input": "QQGVMYDLFRFOSC-UHFFFAOYSA-N", + "sha256": "1a53d0d0a07d81f91506c4c295128accca60e7459b8ef23e9a4447d112501db4" + }, + { + "input": "SRQGZQPUPABHCN-UHFFFAOYSA-N", + "sha256": "b3ee0f2e27179a0f350c93eb51d77b4958a8f8e0d3c606c1b4045d934e2b8796" + }, + { + "input": "WLIADPFXSACYLS-UHFFFAOYSA-N", + "sha256": "59553a055ef6ea94feb055bea2454a45e9a528fd6f4e9441feb396fa52d7c965" + }, + { + "input": "KEIYIDKDAHPTNR-UHFFFAOYSA-N", + "sha256": "47762bdf060d8d1bafce5ee9f9c92be048e73aa5c756f4821081a4886bd6864f" + }, + { + "input": "PGWIETAKNLNHNW-UHFFFAOYSA-N", + "sha256": "07bde30a62010fa5596bc459b940b27d4b05b8fdb61990e6b4dc6e7babe01647" + }, + { + "input": "UGFAIRIUMAVXCW-UHFFFAOYSA-N", + "sha256": "33091cb7e1c5c41452c37e923d5f40cf8e747a58560ab541928d4755b8f7c58e" + }, + { + "input": "KGKLZNBYAJXOAU-UHFFFAOYSA-N", + "sha256": "ee13a93b94c5d06571a928009e6f9bb4a5c392d95407900119257c707bdfe910" + }, + { + "input": "CRZVDNMIWUHMQA-UHFFFAOYSA-N", + "sha256": "91e6dad7c8e63c35c320c1458f339c3e2d03f730bd8c3ee76c533094fafab367" + }, + { + "input": "DEDZSLCZHWTGOR-UHFFFAOYSA-N", + "sha256": "f4206f01b8edbf35c9f4a25d92d5ddaac066715f50824b0052000a140dbae0fb" + }, + { + "input": "CFJYNSNXFXLKNS-UHFFFAOYSA-N", + "sha256": "20ca774a179cf19d9bf55850d1cfd86a329595f250b32def09693cfcdd109579" + }, + { + "input": "SAFMWGCEQYLRLS-UHFFFAOYSA-N", + "sha256": "969dc53ff38469710e502a0e7ff30b8dcee276cb91d4bd81733ba7760619eb43" + }, + { + "input": "ZQFIWHOYWCJIHU-UHFFFAOYSA-N", + "sha256": "4e90014d46f6afe1afe2e8e534d569cc67f4a76e45c99dcfe640a59c1987b98e" + }, + { + "input": "SFXLNTZEFYDFBZ-UHFFFAOYSA-N", + "sha256": "e011240ed098d665490bfd6d96671b6e0f91aa7b0c0c2befa74e265429bcd32b" + }, + { + "input": "QBLHTXIKHJVHJA-UHFFFAOYSA-N", + "sha256": "ff72c8aadcc35191bf1414a813593501ac55c14f3325abb99ad091ad2c152014" + }, + { + "input": "NOEWQJFHGXLXNP-UHFFFAOYSA-N", + "sha256": "5d544c937de90ee3d9521e7074de54d0a437b912864984f0154415566fc4a5ca" + }, + { + "input": "DORGQEZCKOXWHA-UHFFFAOYSA-N", + "sha256": "8e61680bee9703059243c9030ce825413dcc9e48ce4a57be0f9d4077fad67511" + }, + { + "input": "WRWUOXGSVNDBOD-UHFFFAOYSA-N", + "sha256": "151ce61352375c408284a31657a926c885940a26492282fbe7b9c079cc9bf2e0" + }, + { + "input": "GPPPPLRIBFJOJU-UHFFFAOYSA-N", + "sha256": "2369bc6e13f4dd6bf45e7a624582c8ccf625d5e02ddc0b6e478e7c03be0ac36e" + }, + { + "input": "XRIHSVUJEDNAIJ-UHFFFAOYSA-N", + "sha256": "855058123c704363c5dbb664e3773bee2b884610198fdbdcf8635f0dda630f44" + }, + { + "input": "HOOFDCOHJNVWRB-UHFFFAOYSA-N", + "sha256": "f911b7b76978f241ccc69572ec0af5cb39119d5529f3c2576d7b4741fde17638" + }, + { + "input": "RJKMZBWVYZUKLA-UHFFFAOYSA-N", + "sha256": "d3fa8abd24e3bfa3fc7962d91b2ad95f2eab79b386e784df4aa884a5f70f1c5e" + }, + { + "input": "AYGMAUFUPIHQQG-UHFFFAOYSA-N", + "sha256": "e480e57fbeced39cde6f2a551dcff9d07e6ffab14ef0f2ee888ad9379cdc1398" + }, + { + "input": "REEBAVRLLRFNEP-UHFFFAOYSA-N", + "sha256": "e080f8f1749b55f7e2e47814c42db2cf41cef870add99bdc214ed55e495d8908" + }, + { + "input": "POSFUIHYBRIQCK-UHFFFAOYSA-N", + "sha256": "31e6a0e0c56a0f585f157a0cf63640ce5476cd09cc7d1505a0298dd2ab2aed23" + }, + { + "input": "RGCVINVYDAUJMJ-UHFFFAOYSA-N", + "sha256": "cb167c8058ceb74072fdfc2cfe558e0a2854c4701e660d2def53909e39606e48" + }, + { + "input": "HYAXUDPSSRYIJR-UHFFFAOYSA-N", + "sha256": "a971698515df307df0774604826c7c3e66024f79049dbdc9c8e8385c765b7731" + }, + { + "input": "ZGBQITDGCJPLTK-UHFFFAOYSA-N", + "sha256": "5639fcafc55155ab66a0228cda53fa909e5f1c366bb2220a3cef0e6cce7e0b9f" + }, + { + "input": "YODXYZNBWSTYFF-UHFFFAOYSA-N", + "sha256": "0995220c7f6dcc90c275db4d35725d2d70b5539f89f43fa92dca3b680c140b91" + }, + { + "input": "SZQSMGXHXYIXPU-UHFFFAOYSA-N", + "sha256": "5fc2da5444029bb72e235505eede574bb6a6d9babd415c0dba22b251a600cd38" + }, + { + "input": "DNNSSWSSYDEUBZ-UHFFFAOYSA-N", + "sha256": "d5d7c8c51cfd2357d4bddbb7112c6c66a36d3cd016c9ed6d988b8f3f0a6c5688" + }, + { + "input": "FHNFHKCVQCLJFQ-UHFFFAOYSA-N", + "sha256": "ad71fd7fa0e39c955c0ea4f5a3f364344584eebcbe815dac7e692d69e9a548d2" + }, + { + "input": "AILKHAQXUAOOFU-UHFFFAOYSA-N", + "sha256": "4b62965fe54713a9e88ee02ea0763259ae75d2ba75bde0920c95815b47348889" + }, + { + "input": "SDAXRHHPNYTELL-UHFFFAOYSA-N", + "sha256": "fa8d0d43c72a5d6342753f91c57db574fef64855104797d2435f377596ef0fcc" + }, + { + "input": "YSIMAPNUZAVQER-UHFFFAOYSA-N", + "sha256": "9d45aa4444ed9b0961b9f995864b5a2f4f01e074bfffa86d6331fc49319277eb" + }, + { + "input": "KVNRLNFWIYMESJ-UHFFFAOYSA-N", + "sha256": "1d248ed10c5438a0e92322959e07ef1a79f4e84445dad090cb120f76a9b36408" + }, + { + "input": "ZWRUINPWMLAQRD-UHFFFAOYSA-N", + "sha256": "91d64478708b03774a14d9dc11e66fb4824bad48726a8949a479efa6901b04b2" + }, + { + "input": "KBPLFHHGFOOTCA-UHFFFAOYSA-N", + "sha256": "f51f5922eac7d767b08799f05dd510a6ecd33e6b36cc952685d5253504ab9494" + }, + { + "input": "BBMCTIGTTCKYKF-UHFFFAOYSA-N", + "sha256": "cba4583a1932c2a9a5d1b7df91fb2f639791a424bcdb09804e2ae57c7fbbaf89" + }, + { + "input": "LSXKDWGTSHCFPP-UHFFFAOYSA-N", + "sha256": "80042df7cd0cc1c41fc4a9453436859c1693df576f34772c42f2187f7896b1a6" + }, + { + "input": "VMKOFRJSULQZRM-UHFFFAOYSA-N", + "sha256": "3455b085b2f448fd1ab19f27c28821aa30ad960819ecfbd9c2ce274eedfdee34" + }, + { + "input": "AYMUQTNXKPEMLM-UHFFFAOYSA-N", + "sha256": "7d0d3a289c09d957b0b43e6eb36c313ebe6ca413c0150a0bf1766f154af3e5bb" + }, + { + "input": "BIJNHUAPTJVVNQ-UHFFFAOYSA-N", + "sha256": "dcb1c5dc0c2381a6213d90702a14e2dc77d9a321e24e0556b8415321a6998881" + }, + { + "input": "IXAFAYIIDHDJHN-UHFFFAOYSA-N", + "sha256": "279f89ed6823bfb4c70382bf6bb70a8ab9b53be48a58aa375e61616f5b8f2843" + }, + { + "input": "CFXWAPSYPXUYCO-UHFFFAOYSA-N", + "sha256": "e944e112925928fab5a9ba112560a2e27b5a57f84ac63e07f7837c8a250b3ff8" + }, + { + "input": "YZVWKHVRBDQPMQ-UHFFFAOYSA-N", + "sha256": "7547aa77033ca8d1d8d9f8343144f51ad61c8be2edc3f9306daca82a11358201" + }, + { + "input": "DONJGKADZJEXRJ-UHFFFAOYSA-N", + "sha256": "e8fc4095ba79290da1d18952779ed90e1276c100d8879906af124aea26f5af26" + }, + { + "input": "WTEOIRVLGSZEPR-UHFFFAOYSA-N", + "sha256": "6a1db39be0b6e06d475e1ee75342672b5784ce76420c42e0fe01edcb124018cc" + }, + { + "input": "GQPLMRYTRLFLPF-UHFFFAOYSA-N", + "sha256": "02e0647c06c3c25c4b11b6cb31de5cca1e714b6e3dc91c4172396dcfb09c5e70" + }, + { + "input": "ISZWTVCVSJVEOL-UHFFFAOYSA-N", + "sha256": "06bdf05db9db99135b3284eb5071d70ff3d928f0f1895c39bf13efe2c726a5fd" + }, + { + "input": "DYVGYXXLXQESJE-XPLLOJBJSA-N", + "sha256": "4b3b03fe62c184979023dbc5f7fa60a8c83ffef5c5e3d139582e260da52d77a2" + }, + { + "input": "RAJWOBJTTGJROA-QJISAEMRSA-N", + "sha256": "9dc2ae93e979443ee2587ccf68e32d137c1ced09fa9cf2aec91bfd952b09374f" + }, + { + "input": "QCIYAEYRVFUFAP-UHFFFAOYSA-N", + "sha256": "c84080caf89926180322485f2d65762a0929cdf6abfcb97d196df6fd202ee537" + }, + { + "input": "RBTARNINKXHZNM-UHFFFAOYSA-K", + "sha256": "3d40bfe47227c65981cdfe7c6b9766830af768fbdec7e1b586d04c61cb714222" + } +]