Skip to content

Commit

Permalink
lsh 버그 수정
Browse files Browse the repository at this point in the history
- BlockSize가 넘는 write 시 이후 데이터를 올바르게 처리하지 않는 문제 수정.
  • Loading branch information
RyuaNerin committed Oct 3, 2023
1 parent 73181d6 commit fc755d3
Show file tree
Hide file tree
Showing 15 changed files with 165 additions and 42 deletions.
2 changes: 1 addition & 1 deletion lsh256/avo/x86/lsh256avx2/lsh256_avx2.go
Original file line number Diff line number Diff line change
Expand Up @@ -506,7 +506,7 @@ func Lsh256_avx2_update(ctx *LSH256_Context, data Mem, databytelen Register) {
store_blk(ctx.Cv_r, cv_r)

//if (databytelen > 0){
CMPQ(remain_msg_byte, U32(0))
CMPQ(databytelen, U32(0))
JE(LabelRef("lsh256_avx2_update_if3_end"))
{
//memcpy(ctx->last_block, data, databytelen);
Expand Down
2 changes: 1 addition & 1 deletion lsh256/avo/x86/lsh256sse2/lsh256_sse2.go
Original file line number Diff line number Diff line change
Expand Up @@ -601,7 +601,7 @@ func Lsh256_sse2_update(ctx *LSH256_Context, data Mem, databytelen Register) {
store_blk(ctx.Cv_r, cv_r)

//if (databytelen > 0){
CMPQ(remain_msg_byte, U32(0))
CMPQ(databytelen, U32(0))
JE(LabelRef("lsh256_sse2_update_if3_end"))
{
//memcpy(ctx->last_block, data, databytelen);
Expand Down
2 changes: 1 addition & 1 deletion lsh256/avo/x86/lsh256ssse3/lsh256_ssse3.go
Original file line number Diff line number Diff line change
Expand Up @@ -548,7 +548,7 @@ func Lsh256_ssse3_update(ctx *LSH256_Context, data Mem, databytelen Register) {
store_blk(ctx.Cv_r, cv_r)

//if (databytelen > 0){
CMPQ(remain_msg_byte, U32(0))
CMPQ(databytelen, U32(0))
JE(LabelRef("lsh256_ssse3_update_if3_end"))
{
//memcpy(ctx->last_block, data, databytelen);
Expand Down
6 changes: 3 additions & 3 deletions lsh256/lsh256_amd64.s
Original file line number Diff line number Diff line change
Expand Up @@ -6766,7 +6766,7 @@ lsh256_sse2_update_while_end:
// store_blk
MOVOU X2, 48(AX)
MOVOU X3, 64(AX)
CMPQ SI, $0x00000000
CMPQ BX, $0x00000000
JE lsh256_sse2_update_if3_end

// Memcpy
Expand Down Expand Up @@ -13939,7 +13939,7 @@ lsh256_ssse3_update_while_end:
// store_blk
MOVOU X2, 48(AX)
MOVOU X3, 64(AX)
CMPQ SI, $0x00000000
CMPQ BX, $0x00000000
JE lsh256_ssse3_update_if3_end

// Memcpy
Expand Down Expand Up @@ -18618,7 +18618,7 @@ lsh256_avx2_update_while_end:

// store_blk
VMOVDQU Y1, 48(AX)
CMPQ SI, $0x00000000
CMPQ BX, $0x00000000
JE lsh256_avx2_update_if3_end

// Memcpy
Expand Down
7 changes: 7 additions & 0 deletions lsh256/test_dev_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -31,6 +31,13 @@ func testAsmDev(t *testing.T, algType int, answer []byte, s simdSet) {

dst := make([]byte, Size)

/**
input := make([]byte, BlockSize+2) //2
for idx := range input {
input[idx] = byte(idx % 256)
}
*/

s.update(&ctx, input)
s.final(&ctx, dst)

Expand Down
28 changes: 23 additions & 5 deletions lsh256/test_lsh256_224_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -4,13 +4,11 @@ import (
"kryptosimd/internal"
)

//////////////////////////////////////////////////
// 암호알고리즘 검증기준 V3.0
// 테스트 벡터
// LSH(256-224)ShortMsg.txt

var (
testCases224 = []testCase{
// 암호알고리즘 검증기준 V3.0
// 테스트 벡터
// LSH(256-224)ShortMsg.txt
{
M: internal.HB(``),
MD: internal.HB(`48A0D55B2B3D91F26E06F7110FE9CE8EA0E2656BBE344CB1C5930653`),
Expand Down Expand Up @@ -527,5 +525,25 @@ var (
M: internal.HB(`51E3DC1666318D7052BE33D84B7755CAB4C9FF2E9C1068748853D2E3722EB22E110F11495BA6327A499675B3DA717B1F5AE38BFBE42D34A726D534FD649C99E1BFB12619B824F860F09D6AB5314E35F9B226DCB997484749B8BBAD12A363B82CE430E43084952947CF3CD9875AF8CB8045FBB911BE49E781C66C05CA38695738`),
MD: internal.HB(`5A409D2C7B9CBC4E45DB8E468184FBC57239706F9B9264C0B3DCB399`),
},
////////////////////////////////////////////////////////////////////////////////////////////////////
// 암호알고리즘 검증기준 V3.0
// 테스트 벡터
// LSH(256-224)LongMsg.txt
{
M: internal.HB(`CB8CDE5AFD7AC4D740CCC149EA0D80C4910DE2B1CD92E91F3E4BD55AD1058CBF40213FCED8464B817F535DDCF598DAC65A457E17F12243F223818455C77262EEA035673127F569A78BB3B189F7805D8D13EF0300CDCA971559048F7D76EF4437F4AF9CAA73EFE6F16DD20576772CD1C2C3F3BA93EAF0AF2FE8BA3EF968E5FC4243772761439B8A062C9AA1CBFD06FE0C7339EBF9CFFE51E9D98DD8F225BD50B69575507F1F631C8FD0F1CCB11175AB142AA8DE59045A46EB3364A78F33DD093CF2915E2C8FAE663362C1D0503CE1A282F02ADADC126E55DCFE26F1F91CAFEF7B63B39B`),
MD: internal.HB(`7617289F423459CD2DEA4E69AD71BA0EE17022B75F9F1532D3C4AAF5`),
},
{
M: internal.HB(`8F1CE52E9BE9F1F3CF05B2A9FDCDA629AA80A0486543BDFF576899C91CEFC34DD14D6E3D6E6D697E56F551892DCA0511EAD65AE62D091019D29D0561C69FA9BD19ABB25B55F711B90F92240ABBEE2DDBC59D03F6DD58078692455A7D227A4D3390BD194FF88DD1EB206794F34F4207CE625C02411C388A90BEE700E6D78897F65E0B0CE3FE3A915DB1F90A0E90CC7B34EA9BC18F93B2817D7E0C5F648ED17050AA1DF1DD10033958EBD2EC212796725384E2A7A7E9CDD496FC3BDFBEEF5EBE879C7C3106D5F2B122F579A3F5BBA8D27559BA1C53C7926C235DFCE8BEA1366BE45EAF3526F60EE103F8769852F50885E090AA8859D5072F6CCCD7E22A4D615DAF153E64051A5FB1451C5232FF7DC071DC523B5482BA3606B86F5535CB9AE87E30ECB2256AEAEE0A2F8894D8C6FAD880B3C7F3E6961F27D9516EFD496931D2B4AF0991E21F0DC2`),
MD: internal.HB(`811EFB397CC243D6CFF9EB87EA4F206889A698386F71960070C35CC1`),
},
{
M: internal.HB(`D20865C4F46D155699AB165DA75DABE1917DF25886CCB927E973946602EA2CE3F319DA6AEDBD7544A30E68FEFF9F076C148523EC55BBDBEF04C5B6B6ED94EF5A53AA100F2B7EC2A98822E4605723DAD04CB128441CFF3F33EDED960B0AE5FD2EDC022F3A1678A68E2F30B30A15B2CD1520482AE544608CFB8C335EECC3A4FF67746B5E741672C7FA807FFC84A31488447794505936A66B4DC9DE33E27F9B9C0E052BC5449336CDF56359E8576711B2653BDBC327599983338C383F74A7907D2A768B8D32F58A6188C0049F0ACB70F37E5366AAD714017DB4BD87AA2AA14C4AC3AFD3DEC6A4372BB97FC9482535FBF599A77D2EF1D1A500D844149C8CD697AAE2984BDF890805D29288F00B300F785DBD1F6777FEF74EB5A809273C23AE38458D193BB90289BBFF1BC3C111B4C0B0D6F3A36EAC86EEC4432BF408B27692F9C4CF1AEA93BA9023595B19848239B06B06421BD8F50F1DCF546AEEFE270DE8A0CFAD83A196378303895A70808645477195B26FEE7B23EE378D6BDD52C37119F60D313CA8EA03CC243620B2FE4362ED892C4B87F86649C8C39838AB4DAD298EC327622D47B6A6D14E09B6C5`),
MD: internal.HB(`B7547C987224595BD6057DD6CC2C6799140B7FE6E33547D857A1BBB3`),
},
{
M: internal.HB(`46E4170A7D73164B3EDE0A133D1DD93E340EBDAECFC4483FC622A6FC48A92393A08FEC0613111AA4070AEC386BC35480520DB6E0E18DEC586C588DB4DCC06F02546D6A4914AF5F789D12799D1533B357EED39B8EC32A5561827DE260D0F3A3FCA9A5183B47F4EEB1461F39AB0515FEAD4F87F41F3B428B4350BC2E6AEDECC568E85F7F457689CE354B59B3CA02103B69BE524AFB127D97E41E3BF839FB53E02D5AC525CD671507EEF4E76F63D3CC7473835C238A1085802E3422C835C2CFF93544FC943DE341A2C288F1F5DC41F2B0B3E6CC0A33FCFF4E08D99A26C609091A67F12F54FBB2B5A69B51A1CE9F142AF8112FCA84619F960A5957CB9B549AA94AABA884EB719C181B60951D8112141B5375A5801B79C2F0BB0BF4DCAE473B5692E9B023E30569120AF99D8D969F086EC9C7911456E42BB56905F9F5E807B5B8F8095235C421E04D7A4DB11A95ADBACA62EF3BAEBD0AA38E1C2FAE40D0FCD07887F4D6E2142CCB6E734618EC07A3F0D827D5EB77D953F123DD715AE2EE8F533E449084515D8EF020FDCB1C2A74EB73401F61E9963128DF1BB3B34606CA2608B139C6A3AB26AE170921C503FC62EC0BA9527C7C344EEF331EA7DDBBD2ED2BB57A6D7F7D17F8F60AD1E61A168B5B0E7FBBC90CEE79B612B6D6C0D7FF6EDE042341E8A158BE5ACD902155B39DFFE6B9991F8BFA858CF3F730E806895A03251B1AADB3157DC8D49B70A17478E0808C55`),
MD: internal.HB(`679D15A8D19C91F5806BA63B3D79BC0CCC9CF24DE13822A82888F325`),
},
}
)
28 changes: 23 additions & 5 deletions lsh256/test_lsh256_256_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -4,13 +4,11 @@ import (
"kryptosimd/internal"
)

//////////////////////////////////////////////////
// 암호알고리즘 검증기준 V3.0
// 테스트 벡터
// LSH(256-256)ShortMsg.txt

var (
testCases256 = []testCase{
// 암호알고리즘 검증기준 V3.0
// 테스트 벡터
// LSH(256-256)ShortMsg.txt
{
M: internal.HB(``),
MD: internal.HB(`F3CD416A03818217726CB47F4E4D2881C9C29FD445C18B66FB19DEA1A81007C1`),
Expand Down Expand Up @@ -527,5 +525,25 @@ var (
M: internal.HB(`D5F983F69A26C7090440BAB0D0DA30BD95009935587730B15B4776043777DF1E2A18CB31B285B7125BE8B5E1D50019EC492276D1ED7EC9E3D7A4F3CF0F476D80E740373F8FD5111FE43CEE98895BA67239D2EBE45B3B7EFED7B0A244298ED29CB479AF6A58A13CF946434D1D13723D160C17E0B8CA37B8C906746CABAED7753A`),
MD: internal.HB(`2049E9305ED6E0D9E0CFBA6A267F7983FA4886CBE544499E8C21E8FFD7A08DAA`),
},
////////////////////////////////////////////////////////////////////////////////////////////////////
// 암호알고리즘 검증기준 V3.0
// 테스트 벡터
// LSH(256-256)LongMsg.txt
{
M: internal.HB(`CB8CDE5AFD7AC4D740CCC149EA0D80C4910DE2B1CD92E91F3E4BD55AD1058CBF40213FCED8464B817F535DDCF598DAC65A457E17F12243F223818455C77262EEA035673127F569A78BB3B189F7805D8D13EF0300CDCA971559048F7D76EF4437F4AF9CAA73EFE6F16DD20576772CD1C2C3F3BA93EAF0AF2FE8BA3EF968E5FC4243772761439B8A062C9AA1CBFD06FE0C7339EBF9CFFE51E9D98DD8F225BD50B69575507F1F631C8FD0F1CCB11175AB142AA8DE59045A46EB3364A78F33DD093CF2915E2C8FAE663362C1D0503CE1A282F02ADADC126E55DCFE26F1F91CAFEF7B63B39B`),
MD: internal.HB(`EAC621CD6495672EF57F82D2FBE852DB5AB7A7A8775188EEED5B39CEC355044E`),
},
{
M: internal.HB(`8F1CE52E9BE9F1F3CF05B2A9FDCDA629AA80A0486543BDFF576899C91CEFC34DD14D6E3D6E6D697E56F551892DCA0511EAD65AE62D091019D29D0561C69FA9BD19ABB25B55F711B90F92240ABBEE2DDBC59D03F6DD58078692455A7D227A4D3390BD194FF88DD1EB206794F34F4207CE625C02411C388A90BEE700E6D78897F65E0B0CE3FE3A915DB1F90A0E90CC7B34EA9BC18F93B2817D7E0C5F648ED17050AA1DF1DD10033958EBD2EC212796725384E2A7A7E9CDD496FC3BDFBEEF5EBE879C7C3106D5F2B122F579A3F5BBA8D27559BA1C53C7926C235DFCE8BEA1366BE45EAF3526F60EE103F8769852F50885E090AA8859D5072F6CCCD7E22A4D615DAF153E64051A5FB1451C5232FF7DC071DC523B5482BA3606B86F5535CB9AE87E30ECB2256AEAEE0A2F8894D8C6FAD880B3C7F3E6961F27D9516EFD496931D2B4AF0991E21F0DC2`),
MD: internal.HB(`2D489D0644EEDE572068335E12E59881ECC7EE8560D4A95716005A8EF1B26803`),
},
{
M: internal.HB(`D20865C4F46D155699AB165DA75DABE1917DF25886CCB927E973946602EA2CE3F319DA6AEDBD7544A30E68FEFF9F076C148523EC55BBDBEF04C5B6B6ED94EF5A53AA100F2B7EC2A98822E4605723DAD04CB128441CFF3F33EDED960B0AE5FD2EDC022F3A1678A68E2F30B30A15B2CD1520482AE544608CFB8C335EECC3A4FF67746B5E741672C7FA807FFC84A31488447794505936A66B4DC9DE33E27F9B9C0E052BC5449336CDF56359E8576711B2653BDBC327599983338C383F74A7907D2A768B8D32F58A6188C0049F0ACB70F37E5366AAD714017DB4BD87AA2AA14C4AC3AFD3DEC6A4372BB97FC9482535FBF599A77D2EF1D1A500D844149C8CD697AAE2984BDF890805D29288F00B300F785DBD1F6777FEF74EB5A809273C23AE38458D193BB90289BBFF1BC3C111B4C0B0D6F3A36EAC86EEC4432BF408B27692F9C4CF1AEA93BA9023595B19848239B06B06421BD8F50F1DCF546AEEFE270DE8A0CFAD83A196378303895A70808645477195B26FEE7B23EE378D6BDD52C37119F60D313CA8EA03CC243620B2FE4362ED892C4B87F86649C8C39838AB4DAD298EC327622D47B6A6D14E09B6C5`),
MD: internal.HB(`16F0A2AC89980AD05D83C74AB12ECB03ADFCAB43B3FA20972856910DC1AE85E5`),
},
{
M: internal.HB(`46E4170A7D73164B3EDE0A133D1DD93E340EBDAECFC4483FC622A6FC48A92393A08FEC0613111AA4070AEC386BC35480520DB6E0E18DEC586C588DB4DCC06F02546D6A4914AF5F789D12799D1533B357EED39B8EC32A5561827DE260D0F3A3FCA9A5183B47F4EEB1461F39AB0515FEAD4F87F41F3B428B4350BC2E6AEDECC568E85F7F457689CE354B59B3CA02103B69BE524AFB127D97E41E3BF839FB53E02D5AC525CD671507EEF4E76F63D3CC7473835C238A1085802E3422C835C2CFF93544FC943DE341A2C288F1F5DC41F2B0B3E6CC0A33FCFF4E08D99A26C609091A67F12F54FBB2B5A69B51A1CE9F142AF8112FCA84619F960A5957CB9B549AA94AABA884EB719C181B60951D8112141B5375A5801B79C2F0BB0BF4DCAE473B5692E9B023E30569120AF99D8D969F086EC9C7911456E42BB56905F9F5E807B5B8F8095235C421E04D7A4DB11A95ADBACA62EF3BAEBD0AA38E1C2FAE40D0FCD07887F4D6E2142CCB6E734618EC07A3F0D827D5EB77D953F123DD715AE2EE8F533E449084515D8EF020FDCB1C2A74EB73401F61E9963128DF1BB3B34606CA2608B139C6A3AB26AE170921C503FC62EC0BA9527C7C344EEF331EA7DDBBD2ED2BB57A6D7F7D17F8F60AD1E61A168B5B0E7FBBC90CEE79B612B6D6C0D7FF6EDE042341E8A158BE5ACD902155B39DFFE6B9991F8BFA858CF3F730E806895A03251B1AADB3157DC8D49B70A17478E0808C55`),
MD: internal.HB(`AFC0372EC10B5F59AF5C7C3EE46EFBA87603206EAAEBBD7CB0D957C1A0A00461`),
},
}
)
2 changes: 1 addition & 1 deletion lsh512/avo/x86/lsh512avx2/lsh512_avx2.go
Original file line number Diff line number Diff line change
Expand Up @@ -630,7 +630,7 @@ func Lsh512_avx2_update(ctx *LSH512_Context, data Mem, databytelen Register) {
store_blk(ctx.Cv_r, cv_r)

//if (databytelen > 0){
CMPQ(remain_msg_byte, U32(0))
CMPQ(databytelen, U32(0))
JE(LabelRef("lsh512_avx2_update_if3_end"))
{
//memcpy(ctx->last_block, data, databytelen);
Expand Down
2 changes: 1 addition & 1 deletion lsh512/avo/x86/lsh512sse2/lsh512_sse2.go
Original file line number Diff line number Diff line change
Expand Up @@ -923,7 +923,7 @@ func Lsh512_sse2_update(ctx *LSH512_Context, data Mem, databytelen Register) {
store_blk(ctx.Cv_r, cv_r)

//if (databytelen > 0){
CMPQ(remain_msg_byte, U32(0))
CMPQ(databytelen, U32(0))
JE(LabelRef("lsh512_sse2_update_if3_end"))
{
//memcpy(ctx->i_last_block, data, databytelen);
Expand Down
2 changes: 1 addition & 1 deletion lsh512/avo/x86/lsh512ssse3/lsh512_ssse3.go
Original file line number Diff line number Diff line change
Expand Up @@ -885,7 +885,7 @@ func Lsh512_ssse3_update(ctx *LSH512_Context, data Mem, databytelen Register) {
store_blk(ctx.Cv_r, cv_r)

//if (databytelen > 0){
CMPQ(remain_msg_byte, U32(0))
CMPQ(databytelen, U32(0))
JE(LabelRef("lsh512_ssse3_update_if3_end"))
{
//memcpy(ctx->i_last_block, data, databytelen);
Expand Down
6 changes: 3 additions & 3 deletions lsh512/lsh512_amd64.s
Original file line number Diff line number Diff line change
Expand Up @@ -16117,7 +16117,7 @@ lsh512_sse2_update_while_end:
MOVOU X5, 96(AX)
MOVOU X6, 112(AX)
MOVOU X7, 128(AX)
CMPQ SI, $0x00000000
CMPQ BX, $0x00000000
JE lsh512_sse2_update_if3_end

// Memcpy
Expand Down Expand Up @@ -37457,7 +37457,7 @@ lsh512_ssse3_update_while_end:
MOVOU X5, 96(AX)
MOVOU X6, 112(AX)
MOVOU X7, 128(AX)
CMPQ SI, $0x00000000
CMPQ BX, $0x00000000
JE lsh512_ssse3_update_if3_end

// Memcpy
Expand Down Expand Up @@ -48239,7 +48239,7 @@ lsh512_avx2_update_while_end:
// store_blk
VMOVDQU Y2, 80(AX)
VMOVDQU Y3, 112(AX)
CMPQ SI, $0x00000000
CMPQ BX, $0x00000000
JE lsh512_avx2_update_if3_end

// Memcpy
Expand Down
30 changes: 25 additions & 5 deletions lsh512/test_lsh512_224_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -2,13 +2,12 @@ package lsh512

import "kryptosimd/internal"

//////////////////////////////////////////////////
// 암호알고리즘 검증기준 V3.0
// 테스트 벡터
// LSH(512-224)ShortMsg.txt

var (
testCases224 = []testCase{
//////////////////////////////////////////////////
// 암호알고리즘 검증기준 V3.0
// 테스트 벡터
// LSH(512-224)ShortMsg.txt
{
Msg: internal.HB(``),
MD: internal.HB(`3C124EDFE149B45C067965DAE681322CDF52AA2C9D738B8F271B9318`),
Expand Down Expand Up @@ -1037,5 +1036,26 @@ var (
Msg: internal.HB(`AA7CEFCCC793A6F59E52DA4C0BF959AE81004FED9E58752E03F486906288F30FD891D7A77E952DBC3BAC41B9DC3F64F86610E4E2AA7A3B571BFB8750DDEF3AC21E9E13C6A9794DF8B8A1161C0AA94208369D41BE3F434ED868A0EA294ABE89A123AD8B7171C86D70C03941BDC0C05BA69AB04EC9843A177994ED9764D17E477290C527F0FE09F7EDF97DAAE4240A189C3A4FF34DA2E7FC0444EA76489CB6DBFE0CEFCF8A77C452370B7439D95E11DFB1BD851890C1D2663F229E701FD0EEAF0D40326B880482E6169F27D7E3975D19ACCC57A5DB0784BEF4D6116B2F98AF2A67D496E332CFC91B525D9C6A4CF7742F560ECF82769F846AE9084B50C21A7FB4D3`),
MD: internal.HB(`AB4D578B1FFAB78F136B4A45081C4D4A7FDFC1964D1C6436C9E8CDE4`),
},
////////////////////////////////////////////////////////////////////////////////////////////////////
// 암호알고리즘 검증기준 V3.0
// 테스트 벡터
// LSH(512-224)LongMsg.txt
// 용량 문제로 일부만 추가
{
Msg: internal.HB(`CE88A65A48D1EC67C0C82D7565AF307E53070996640B9085497E11B6DAA64550AB9981A2E0B72EC44278797B92684B5E1D6F7C37905644AC0E87F21F8014E0D22CFBA64F8AA98E0752BC4839DA0DDF159FEEEC2221B00ADDF56989A315F367D07A387B29EDADF4771A1D0275E6A8D3EC020BC11DC022CA5F26AB4009424CC192BCD86AF7B2CE485DBF220FF85D400F2B6E4F63F115B26C7BCAD57E1BAE26D8601B61DA83801172016C54D88AE8DE7B1A0A403B66C76AD879096FAA9F01899382BF5D339300805AAB4739C3F22F89FF01FF68AF437F52F6A10A022E5EE57EDA3FCF53DCF0D922E9A3785B39FAD9498327744F2852E471AF3AF6157120000B95E174CC3F62B4FF05302842A3688F26EFD5927B0F599FCFE98EF431DBACFA3BACAED54FC3B03920979C7F746705F8292B538176CA2157748DE32DDDD4CC7C1308EF1B64D0A40F8C882DA47BEF99BD591FE968C8C372B5698482C9A1C4462E9D8FEB6D93CE`),
MD: internal.HB(`0002308349BCF9A993A2404A3CFAC5FF8C62B85373B54AA238536CAA`),
},
{
Msg: internal.HB(`04DF4BBE2CC0DFA1EC85BFB4DF6FF7601361B5B4B3EF0513E3B7E02AECF4652599506623E1FA26E7C5F961D07CC08D0BCE026007BEC792296BC0E4C238D7613E2B0BE49E937BDA28EEC0495C0980122B69407364EA7ACF6FA6F0B23D183F107F82B7CD168B6A82CB2D837F41CEDA0C27ADC5F5B28030454B5CF05185D454F85165FD2A7512F0A73A4BEA096513F405696236EEDBC8107A265467C980B43DA31D9D8502A26E35D0DC109CF1B220F68458503E66C60A43F86957FE231800239949F3F65D85E760851943423F0F3C09125C3E83665B8EF1477A2D5D6634FF2D603F2CF94306C79A4F59AE83F963B15536DDF6ADF5829B40EDC39E2B9ABBFA8482651335BD0D540AB40417082998C50178433E651C237B5B74AA7210C797394F87256F53D282D8D93E824779D695C13560F7DF53E2267468649970B6F6AF04B7F5E607FA8B4D992E753C067D0942ED1B775FA11E4F73CF9043F761C22FEBA3E4560FA4D3EE56E032E0981BBCC98790D844E44B6E6BF3D4FA9B2C0DDF78335DFD310A0E850686F40C07FF50DF1E4CF3974FEEA7ED3F8CCACFF3A03CB3DB6F7C2B0F3E0DB9D8C31FE572DA6B8E10795F7E21E67B41D227FB36D4BBB6E65F874695771369176EF6A7E5`),
MD: internal.HB(`79A75B32E308E2EE1CF02A939ADAD866A26E26B39E371AF9FC84E24E`),
},
{
Msg: internal.HB(`AA8F3570A8F61AB5413290122CADAD58C5E542210C630464F1F1E946CF08D5333688762EEDAB6C65373CAE095604295C4E86AA0CEBECFDBF054057EF03DFF1F89E2BF66FE8819FB68C6B9CCD5716B76BF706B44E03087BCF3C6879B91365435B6BE27CDC9F5EFACFC726240737C99EAD49CD298F5DA0C4BB1DD1174D068012852414D21D1C2CC4D970D70C5FFF072849CB43D079FF9D21AC31E4FB52E41AA89E5128BED967D146FB10E51D7CB6B79B6806D073B2F3E5DACAFE07EC71B51A4BCD7A8809B88637C85E2EB81F0764C1403180DDD8E24162373C0EA3B1528268443A289B7B648344912952B8DAA7110C5FCDC3D0C8B2EFFA802BE921139C52ECDB0EE2C9DB8265E2EB85044D1605C682406357130BC90797FCBE15E7DAF82E8E5771317AF3BD35F81C9ACDDF9AC98B0A2A1CC20C69D19020F41E1C5FCE0D1D36028A9C1689BAFA6D6D8F34D62F9A668C67208E25AA6F937DB07286F0B68427CC2282AB056624BC2B268DC29A9D2061F13D9642C5954D179678E3D9015C0454380080E6B052A184198FBBFD93AC04831FF5A66753F413245394999FFC8636AD62E4ADD67D14D9591FF0426F2923EED4FFD67A84398D69C29C4BBB5F48FDC13932153102D5767643259049A0C5CC855D792A3721DE28F5FA59E772A24D894F0191DD33F2213E1D4A13B8F917CD6D7225763708C7AA8F62D372AEE5EF73F1850B6582DB2FC7357877D1B07A5CABCF5D34DC4713FC05895656CFE93DCE22FF0D61984D524031232FD148C0F3F7`),
MD: internal.HB(`3CDDC385D7AC86B364E4B02B5C554A9575E49F24974C28379868C3C6`),
},
{
Msg: internal.HB(`C5BAEC9395A0804B57DD798A58DFA1C7C2798F0B1086C0ADC5D0EA605E308C7185F6CA49878A783908547577F6DA3A63BB28B20FB7754DFFED03502DFC476F50524A9D5E9C4F235080B6EF258F202F2975D41F7773621FBD1086093F0B4EC11F937F0EDBBA36A81728CB929D0CFAA9A259457E4B2E94616F951FBE9F718DAD63B25DC4C7CB862F16665A03E656B0D054CD427691CF54399EE6971753184C58A616AC682AB688E2D6A32DED08538ACBC93A95AF533EEACFD16AB5BB65E6D3ED6F2734A10D6384E7DE480AF60CEDD0C3890904D298639E4C90894353DCC56992474DBD1877BAC166B6BBBAC6F90BC9DF1AA058876926B7D863AB0786C19C586FB5F00E7470A38988E7660506D795BE4806695875CD6F7F9AD338CBFD1B52E6AE4178F05E00062274F8B0B25EAE72F725D5CACE45CC263CBB6798555FF2D15C74734D2B7E30CBD55371008B75878CBC9F0D2D809E6E333762A8346D554F0002ECD4D7877B07DAEA4DDBC056F469CA55DE38F93829BC7EB8B81C72DD8739C71F3BEB7FCCFE8D1BA989BD57DC825D140909DD96BC8EBDEF07E54DBB6C9CB80EFC8C40ABC1AECB775A309F2DE5C86A522249856CD474796F6B10C378E13DD4BDE2055CC42F34C8D4446909AA396E986CE6C5B7E34A83F9E42E62040F051196BD17CEC633DE378D1CB05D84369F1BEF4B9EA6FB63E564443896029AEAA0C105F4E310065F96602035E6349739E07778D59113D9546CBF6251EC180D6F7AF4294B90F3A5AF1F578B092E15CB1BC42B3AF30935DA1EA83B5C1977CEE3085A530BAA659E2A8D40C3D67ED028A74413DF3D8E4C33852961813976814AA61C0985B2FAA93A1D60C34C077E1397B31C953A8A8CA33663DD5E39015250B4DD1250332621A5EE078F6E9B28F04187770C12E528`),
MD: internal.HB(`E009477680429B23FFC9C9F88D872190574FBD422E71E36E19E6DA25`),
},
}
)
Loading

0 comments on commit fc755d3

Please sign in to comment.