From a6b47c0aace2965c1722923964973b63aef6ac7f Mon Sep 17 00:00:00 2001 From: Raef Coles Date: Tue, 11 Oct 2022 16:54:15 +0100 Subject: [PATCH] Add LMS hsslms interop tests Signed-off-by: Raef Coles --- ...shss_sha256_m32_h5_lmots_sha256_n32_w8.prv | Bin 0 -> 71932 bytes tests/suites/test_suite_lms.data | 47 ++++++++++++++++++ 2 files changed, 47 insertions(+) create mode 100644 tests/data_files/lms_lmshss_sha256_m32_h5_lmots_sha256_n32_w8.prv diff --git a/tests/data_files/lms_lmshss_sha256_m32_h5_lmots_sha256_n32_w8.prv b/tests/data_files/lms_lmshss_sha256_m32_h5_lmots_sha256_n32_w8.prv new file mode 100644 index 0000000000000000000000000000000000000000..db85e01b7d222d0404ea64a43630ca456366cb72 GIT binary patch literal 71932 zcmZtNV{l#H8z|t|_Ag0eqfHt%wr$(CZQDs>+eTwMjcqoKo!))^bLW1#ndz6zbN1Oe zYpqxNGyp2~3m7;U=qCoj!r9rz*7+;&FC_*}Mpjv0!O7AsB{_vQFvT~8CI-&M)4|l( z-o!K|2I>D&R~Jhg0Aql#pp3Y@lB9}+tiFn-f++AZX_(LyrIZ*%dl%>b_eu+x7%UlC zd6oYkhx#7}mjK>e-@?$@!p71lB?iUb!PE}8FMVeV!|!bDz-42=ZBwL4V!$m@q!D7E zlto2FQiMrZ$V$-(xSj0YoaG*EWBe+i#yOz8~^T{#92bGI|%m^{OPjM+mggltDsECs(W zG()l7cJ5W+%<6i603qOpCYZarri6^zp;V-hjl)^-zG>cHmcpS+h~mx983l;u*H&Mu zoQ!b;LYfs-E%T#^`!E;k8yY6CKPoplm$6#_ImMiJvMY!lr@Dd&ft0M`rrQkHsF+so zY?TY6lgPxDjatTxuo+&OAiL=}^FM&Fcf8_eOypC1 zdA@uIl57f)Kb0QqBQSnW3+T&()>{SL3oMI79#-o9o|-MB3~kOHuf}a%ZcuM;qDOX9 zUHGG4G(h5Cqgkf(eKN|K&BV1ERFEc`f20!NA_yDd!iPL>{?!M_E)2J8r}EFB#qq!O zFWk?jzl$BO(Pn3b_OzT5JGj8n0CE+l3@19b^-Q9jrY7EFin-#by8)&&Fc3rQCw+?J z3l9*1DGyrVm`iF_)BoUw&Gg%~Wx{bcViDWj%o$oqg9GOPLXR|%c`bMqXTJljei@tk z3SsH+yyO!s{yBf(2Ofes43L#gI>OJiLpHEecfHKa*Wq9@2Sx(CsOBwOlj5-!bkG{< zyB%}&V&9Nl7>Yr`sx1|+S(X@KG?`IqL5t4Qmf<}CgpfVAR&3q*=V(~r+1edR2FI32 z;pL0b&G@k<_<=?yHb79`Ehj$_AcA^koN!jSIhR*(2b$!s#dP2@Q6_fvj7tGh@Zw4& zB>%}RECy8_A!Zab?!V9KHDJ|e>MgDyC-mI|ApOG(69N&xj!MUuMBw4bDleQxIn+M` zLkQVC6ukUjX#lb$p-exy&>};!tZsGlHJZ2PWhIn*=>>`erAB=vq@g^LyaBhoU1yBohfoqfB8?WnSGBt8CgFEl70y|%OpNuEr%;gsp&b{ z!N(Ku*EZ1Ew(2KC)hRhkzHh*V-Vy^uo=)XJ#qP%hcjh40gEn_z(eZuV=E6fyzdmo* zz+zAW9T)fP2s?!hUssW3=$JjUWtz*yIkk{<#GvXgCjv;l&gVEhR)2zAF)ng6Rn z^@Mb>Vb9Ty|(3Qg;%MKuEInf(_+;vRwtZ;F4v=-u{ z_;2w1#2N5r&kmefEa;*DA?JU1DsR80NAxi1iIwBS_BxK7twJSIp<)8-aj$LZ1;~I( z(rreFfaUxabU}6Y!3cGj#bhIT(NQmio&!s#5h#!?n~3r{VGoiu^lKlEVJ{YQZs=Tp zWm_uqp+z9m!V?Sv$X{yt9wakjuxBKOy#bEY;*%|X6Sstnw%nfTt0sCCd4TwIr^&s( zp8348AtSq#qwp3^Y|tH!x%)SU2c5yA|G5STq<_!TUSDD^M%!wjWxD9Ef*;Z!wKog~ z5j93`fj_UA0HUuQoB2RtdJk7Jxg3SeTeAP$tbKd56?Tmbsl}UL1zLdJPZNaX5v)Yo zta*%oS%$T?7-@nBlr4wb)DYg|UABw>N$g;M6VoR1eLO011f%`_$5ZgPthmI&NMN>xDU7;)?hutQ)=Y5rJz*Ol)N~O#zvo{$P));ah)C74 zncSt(GzGft2aq$V|6nyFf&?vDRwCRrgAKqwtFur0l5@ivXndUaf{{*8KL9+1}v zz4CoaoG^NT21O~{P{F|0+W_TQ3$W(>zy0D%75LJIGSh-HJ0$7nbq{?2x$lUU{N4DW zhZmcoE#c_nSt>REUlh&OR*|zQ$IC^o96)du&uN0hkBp~e;~VCkq_ zIuGVhJwQp=^Htu}6Rf$yD?UIaNo zy7uu=iaL!SIec=c2$%~U8&$}h!T>2qFnw+9MxRE@yikdJg;vE9LR>v!$LR}bU9hFF zq5cmb44Wn~h*Pjzn-pymW zSMTO^w}J58E53OsB}ITdR7RFee3L?@P;wmMFW0pEQ|h9^+u|7YY5g=vUi8@v5N%zJ znS0gU2lUJBfABAo3J?@=@L_7G}+T9ttFDkq#-Qd~Z{GmuX0!Mzm%L4;Gd;fP^mwyS}Ie zOLwS4s;X)tswK0( z|6%SPC7J94|G^bd->Yf>3X)}p2TOj!Ve+5Y1`8=+y@S9eX?g-Xg)Y1m}^zakUe$Y|sC zQk$d#fbiXwRTbZGTeC2KAo?IR#9R(Rt2$l<_0~(=6%{SKLjq)F+}*YCWmx+j*|UZ( zPzJAivoc$lZ${dK^%QQ~NrDt0T=VFNsmOZ9)C3QTWX{rA!P=f&=-QtV`P9Yk;)#Vl z01+xHc4&7B1R}TN33e1}q?|fGy}I8ueh9vvjJ9AfXpOQs*p+uRtwza(cS!HJ;mI?D z1IR*>;cEpB|FnRvipcX0K+PysLR#{p?`ib>V#I{ z)&e~}tlqH(AO{J`L8iVuG!`_jD~pe`*933&&UhZyzDZ6i#DYII{{f^!hN-g4i->_+ zQOY6Bnv>~2LqcKJ{e?W8>nZJmssm4=v9!x?xdV8p(ZspsRN| zQ~73^4Ul$>%OJhg`Uo z3h!fM2}ZpwMpQeOXPUzvNT;?0kPW@EzV>A1|6FQ^_RYT8G6kccd9;j)R+si&+SIu_ zNdqJo>x?^W70337-Lj$QOtIq6UuSzf7vr^0#FR+|v)BQE4EwL+LhWf*{aIc_?d*F< zlXBt~53cH~l|>&8`jS!34-nJD)WDwx>x)QIUZzDHn3a2Fogw>dQq71-m;ZWXQa1on zl7yo$O-rV1<)Irm0WmM;-6HjkG5*#IweU9nz*GD!YdU>P9rwP5r&e8P;!3--&6M3EX?~@q$U389U!B0HT9{FJoA(g=%%yDa52^SCpa=i z_g|D3aZb$km=HjakwyK)V4|bhoR4-;E;_ub)U~z7vYbo)srjl)o0Ogb1i>hM$%Lpu z7PY}I;85k;k}7U%k=4L-=*eyAarutrAArPRER|CK_SkgY?kzxqs~+=7gUof(PU1qv zgptN^W>Nx(z{yx!B(ErPV;1ggP4E?NpxS^&-(p<7IeXpd>-kX*KnA~EjY>AoTz%v_ zRu1)u_Vlb8-Rtf*ay|>%Z1RWw1vNjXgqdIM;9?1PWtPF9o0@kW_hiV&sbt5juYC! zNxpW461w!ePP?}#EngoD=j#K=$Cr>KUf6~|-1GaF6rb0f)k=@Nj%lMKJL!7lFCC?@ z0Kxd9mb!j|8oDkY#m-gKhQ8c_z8}A@HL&&ZfRyhi52_AZ((D`1Q^`=*StXg)H+v3i zDV*U7)-Q``5|T#W}rwa>7nS4j-7l~vQ;L1{U|k|R1rn5Y?cHa zNc;p_cR+FbIf$gcbJc9gtg!K?b}9a(iqio=j=_@Tc|w!iung;a?ymZ%10qQe3H9+T zwQ?v=ATIv{B|cWO-0APx*C`>SS9MNQo#W1TA>~^f8ez3|HgxlPj*kH0&G~ZRl@G`D zm6n@ek3jv!)5MD+P9xs1@#VP9|G=~zAklI9tX!>y65;Urjc?X-xel zmEJT91s%1Y_~{3l@Ix}_JiopSMRPlZdq|c>rup7w59a@?oO1O92>!qj9>GAanE=8K zyL~Uo&d*&R*X6Rq&1@8#KTpdvCIE>%+rCP~!HECeXi~0$CtUFf^?nTz^1JhRzS&c= ztd|}jQm|nbU;0|fmU#dBR##;_ws5A87(%9ddTJ;nyI;{B1`wXjwRVqh&Q;H=L8m<( z{t1Wo;4U6uw;uqBFJ@Mm(7`fG>+2QE=w7uD(iCeY6~l3JB#aEXB*@MH zh(<*bh4ej9HpYF2c*4CBHQDR&Vd4zl`XtFC))Y>196-j1t`IPakaW&T4j@P%Cl0AL zrVsRaY`);PmE(n(nL_|X%LMtg2CkXdYD668m9zg+N*gWlrte|kTT_3Bij59v89la3 zY`W1)xi5NLN(6aM=#mM(h^LIk$lMrX_kD%dZUP9`@_`oQ%>MW9YxqHx&9S{pdt;RX zA&)j0X<#1d#SK{islg_2cx9`MeXUUtL1w8j!}B|wrpN8H1%LKTV$M zpfep8mFXV_7TM_&Cm3Y3^Zi+oM$Mv(dq=xlS=Zzh0ZK)Rta(uz z%i=KScN44NF*1k{j;)g0EzZtcK3W| zLzl8>5%-5xCz`M)#!I>H*ovi8Lss$D1;skNZ9nY}YnjM1?YJ_=7}B*tokt^v`ed8U zcY@#0R^1^#>94+7}nN8+s*{kjxnn7=Lw}kkOd1eG1^(O474j@|og|Yin!`2B{ zg-skv_;O&fn7aGlin%8EuzT#>xT01=UhUoK=^No*BwN1PknN)p>!ex9=dM47r?G%FNGx1|HYv0*y6u4|Trimz~{r$R73<~h!Wu1V9^il9_3hI7K$EM)V*OpdPl=7O-6 zm}UHMF8FI`X&CpGH5LtY6vgb7IJWeF=<%Q0a?oXR;m!cTXpQY@ z-k;;s2;7moMPHSXuG&?oDd87bctL#Mibi?{h`xMQ2a|Ma&j`w$ZkM>={>L|uv=CR= z{_5b)lpS9~P#=)U2s6@ibveOFXi+2Sm7xh8X)u#7yR-ukGJ9h>Z9N$< z5+gQ)=gG1gl&KM=egl)~90GTjGDj|gGIc2}Dpjq5)JA*d9is1h8WYA?( zcr1Q35DJhSW9N-d@mUN$0~v|2$JHYNJqwp<9%O7o0&vF6t47c=nlkCJm|yNgM#8~E z_*CDJFPDmsE_k@dU( zYVqfgx6Dl35I8_rk*=<3t>P^&nW%Mp8g(Yzdr=(rw0?9e%;a^ z-|xNU`~P-|@o1^D?st7VhK7yM8ai7318PtMKGmqajd8p+SVi0*ew|tWmqH9*w-hiD z=COwLmA(@6xh(50njuD~4CyNHrBf;+K9@Ag4MY{2nr$wcf(Ms1y8-0+)H9TkfBjci zEv_x`^C>lQAtYhw&Q28g?>C2eH)lbBY#YL~DmDalb;L4kL+R%U?O`3ms7NJd zwXR$R1B8Te>ySBNBOD!~6(?Wvg5q7O%vOwg=>6XYfg~kRvH|3?@OH(rxHb@h+IKh9 zY(BY`^;Cepl>F;UM>StV~`RIMOyw4Fx>qqNI8&qI==$Mgy$fU!fX7pk)y8S0E`^! z)@ldybUG_BA6bl3QU`9%d3nmh7-Y-;=@NL=_3!hs)=9jLc| z4@NRrV}<*G;ozTR0i~?eSQg*E{k4aJCFs>$%&V&?la+R=c9OYuVbg)}SACiQIomtU zhH*;BHFw(S=`9XjBY-2@+9Y^{{-@rw&xF)V43LKyV_D7*o!bvO9OH*XyCqTSKKPrD&tRMd; zZ}o&$zbul*p?B(IRKhgl+~26qpd&CM`*-cm9zZV$|&9FY=GIdV0e+& z`7sv(s>p}~duSQId4$vm{@3&-H%1fmHKvh+nLC9!y+JrfCLNU3e8{~omb#Vo0%1~c zFEFfWRt&A|ht`Jbuv)$GcatF10Fs;={`clkMlo-B;QLdP2lntYk)HdB$(aT_jsaK5 z5GdA>oK%=mGLmdV&5aUt6V*Hmii7ouCS2ULIhep$j6s7kNiKCXI}Rfq%c^Rc2d%uR zDqjzLNCHo>H>2$A-Oo#W(1QmCTklg#y1zeH{?PC<*jxTS;xAF#a7ZU|;v1L3Q%DAd zLu-jAnnH-ogN`BglkT@Rm7+nICo%f+r7v1e{zULiJ+pU; zBI^?0YxT(p*8g7it+g8<@>`fnmf-0BO0p ziL5zj3yUTTZ)ywQ!RtVJ`iNZK4G`0X-)sMpLkEzt^CP>VrWlAM?O%r(tpWirm~4bs zQND9OieVw)kEcNm$4#PU*Evd~nRxFR;{y+z3^HS%8Kp#8d6=_xFU&5yEI@L;OEXTf zy+Rn9@X*SJ?_Jkcv9o!8LQU4BGr=qmJhlLY2E#hR!j`ruaV4O+bmkoW?D0z1d_j__ zjD-COpE(m$`eoQBe~ho~q+Z+%W#v3_iBkL~!|REMx~y@L7MkWt2W`ypxw2bNO@8#y z^mRshQP_5T0t_Ohaj>MHS2cm>x?V&1BE52Zj*Z)X;yJe#BoR0p>BSvJ5bhH!(X8ub^Fd5YRoN+L0T7H?5abF8= zo=GB|9G=2x)guE) zNc^>&VPr+>-~>^e*&4;z?Bflzuq0VExVn?dPi ze#z;=HTVW^=8=>Fowwk>sP7~X)jH(sSRnvuP!#f6qEm<1C#!pJevJGK;4Tq^N)XAa zxDEWFt2zye-a+)2CS+Rmm&h1&eY+pjYDp4u<-sE?u14!W%a7bf@Bwn+z_opVJYXN| zftYTGY-dQJ-B7A9orH3(T_NXKgn4nI?cHN8KW*$xrkC=*R&449>x}K<$^6xq+W^n;?DF-w~dY7 z2Xqxha#>Ddvz=jVi4!;#Dvt5P>&yqUG@`@_X^8J=jZ^?(+cb>|xhT38#zEe%eBbS~ zTjTnqT@ra(Wnqc$fT{si9-aSkhC&!|AA1=!u(s=M0xZi=TL)$<{*{9_!|jnHfYL-^ z*bvcF$`*-j+dHO^tHq>-jPm0><3cEA#zqx*)*C30K_=;~4>J><)GTbg6I--I(~Q&n z@*UET<6W-caS~!k1IXe%B0n7SU_eZl7!tuoad_F=2kiVUl>i3@S7-`H0VtCQhn_`U z*{xQ~uhzg(JnFI68^DLE!R(D8!@WZNv&g3g2)MxSo2;F(xuek5oN0lg2uQS^r=X8o z7qI=VE`$BJ4uJIbmH!a`$0L@2u4SI@D`Nd*g;xvEzshuc`2rC3w0X$C3Jeu@|F$DWyZDqF{m&MPZlw^ke6vkW zvXDW20CrTsdTaUgC&zb2PXnhWRDr5GoXnHJ5SbT))or|&XMm825^6=_2EZ5A-ZVER zIP<(g6+dm*9;s@Y;Y{gn8i9gpQvrt%1bYk0Ra?<>8pF7rJkpg$N?YPcajjjhB~Jk= zKy+xs{yAz$QPZ1ul9v7+2}!xEz8R5Zl8Sf2%&E%oD+b8Nh1569gh$m4b~p{b>Nmtg zns46oLkzkuu}ZQ&n@gaIOm#5tys(TuI5&ZQ=c^yBDe?L-GVudJmDZy+RlUV7s5(r; zPAxF;cd+fw?!T++Dr5U$ZAs~14BvlCO; z87LHxt^_APTVkizi-dRspYZ!mazvmd3y8@9La*8A{rUIU@!Qs7dvB9vH_Ti9w$GlQ ztClm^u`!IK2tXc>M-Pvo90?>=~Ieo7vWgdZSD5Bn1ixfbJt?M`}T3| zT5W%ha<7unasM&z9Yr(FfK5}VU|}#Qcu4&HHEaZqZMxMBeJlR=R7=u8$T)wB1@URA zB-jm`!2lpUZ{8<-*!9`2DvsG4_;|^8oL~4q8_=*(Du@!{%L1DK;sQO1BLx{ODsm7C z_0!}sQAgQ9fm7kgR@^u*3-dtDA0R3-^;hDzZ*HF&C?qw`RlJbd=wCc7$G(`;NPAs- z%DDo>wY!WZF|(RvbzJ_DD~NVELR6(oRIAIj)finv`S=NRj_O6Or&dhI$WhUmmZiBO z_?qyy=P->mgi3bV#oZh*W&rZkZp2lq8`iTNw+4-H8Yx{VO_0+R*b$%OuQk^ZCW;4; zk_B)Zh(QJ(PYakrk(;#493+b=$<0(BuHOxsU9|e3;fj&KFK@IXn)o`M^GW9vwUf}J zPr1iwL9pnVEGd_c97 z5vPi5y}}nXjN6&vAXNF>tVBd_QXLX4Q8TKbc0>(kYT_*)v%ab72W67~;=Zyb-j2;6 zSf6|ePTF2=eJfS_^!kUkY_y$UP8a0*+*aa zM2gGlMIF|;evrw0*-^9S-~rPHZ7F*_DmRi!A-p;g4e-`)4(Ih&j2v>x!W7W<2M9A$ zPM~tD2j_b>0%vkA7+(s`g0Og~M@GenieM7^WqnXZ-HFW;E zAZQ^F;|w3a6|HShkI7pJEBKpAI355y`! z8j!VZ?S#M7gbIwO$;*@J;vmkG)LzTWj6XXSXO63Hoz;hSLZnfv7HgfQ2@ zR!!EDs3k&n7dfb(=4vGErL56Z4Zt4Q`@!NGbw#iJTMMuBy!y;psP$LQ!*GcnvORzmgBLu5>3~sr;fD=BU+)c&rTFNgNl4^U59<&5us|EBSBSj=hNi)oJx)}g4q!g zmn-Yy_q;B9`*)qLmglcu6W#l_0OGJkJA&B7?yyPLn|dYY?Eh~7u~tCXnFj{$qPhTP zPz)ehJcsDP2*WVw>MVg5`sR&9lf8LYcZHt(^CYNsxQw7esR(}vl~;NS%(mb&P`h@4 zgNAD7m&G28s2AKXq0gVjlK{C#vVEY^>0Sos`}B6S`hComz#t*Lb9^)frt%nG%L952 z3kfx$oXU$Ou#!#Ow2TKKbRb35HXu=v2gQG<#&X5M3Uv z5)}_`JEWN!I!pyX%=ksl%Ef)?mRg9qHCQz0eN|d4XV2vrmCp3b80u(~6Vo2$V@StThL`N5~Pjvft8>l)HY(Q${1;LDGcj0h5 z4`o0hOyo`skQ>gwf`P6Cz>vJ@Bch`)O9~DH%zrVA)2$U%H)HP$J(M3^*Ynrxfk1Md^3|TD> z%~F7(_weEu&9v&SHDqf@6~@`zaK8Ogr4GuZ-(s?>Utbmf^Z*a`Z#<|GlMQI$?Jt%H&hQ}MV?_O#^DFns4fWjlQI~*7x|>oM zw2bG*-fy@)qNi^8(En|gSf71X_G9up%}H2ARQ?t>G2sPB1vxU0v2JIlPRo6$!r+P5 z=M3Kx_We%9;562eC||J!Ku%93uf1seo#@aqfG_P<-KI45qro>frYt|OdQFItkpl#p z{1<1w4t9jb(OlDllAv<-dae0_DPyA>(P-c$CL!q9A2;SkM%N$x$E1O{i%Da5>=a7& z%kh{ZBYv6TcgxELsN4#emn%t|dW85eX5DCmrjtqbTfLAF$c&%(g**X!h^YsVe=aJ$ z0Z@+EP=4k=EIv}aY28!7J!vRV?cQ@MNK<-2EtJ>d%&0ND+3=z!(QZb+bhoU!?I`ZS zH#fu|Q58gX!5RQ@^AJseYY}-{=cd4#p2KLN?PcIm3};U>iqqyuv`K&l2nEDKz*##z zXIeL^v|*__3tgB2!(%{JHnojPe>-gp8bJQ;V-VSe%1N$~`f#(|OJor`A0QJ{dSMP* zL|BRF-Gkz8SpM7O1`!e%9e%MS+2=zQ`M&ZoX3^{w;e+4rWYr5AfT)+Kn@|LjY%lNU7H;oKd^TgGUad zx`qiLpYzpY;;}Zw$19SgwR(AdquJic17WjRb{?4}u^XJABrH=wx+i99aM@QUzV5$w z3(3jF%2oK~cT&#&si(Po)(Jp*kc2`L^IHQ;=v!qOF_dX@6UaUDF2s5piCxfA2Yz4! zM2#)dA+nY}4s)>9sqc+|!M-Iwh`VMj9H|`XPfc>E1V9Lts2M+p`+sV75g+tO<^F<& zy`S?JW^92MOQhm-(8~dcL+%n^PG^<7g(gbf6tArkK@1#vgp;fze35DNhc!QFFo>7t zfaXa0WXr97LKc}G!!4O*qS-JQrEKfX_#Zp?We`9V$p%M@>T9rZ()Zi;x~n7^WGICP zpzb0}u7Bw>T*f;BWW`T74Z|p$o{agA2-;~Z^zON}DTL!MV!S@vGrFJ$66qbZYC(|{&i;l) zUnrxCxVz6CfTR|Q|AKXw=3M{JSLV2nB+$*^+&ZvW7rl!V<`E3qmKh)o(0%g@!T!C~ z2=$MqnId8zSKpHR7h}{Dq6Haq8u!ovBFDaBNa~Y8H|!&RH8#9(tD0?uT&(Ix`1|l= z9a_FD6(E+K4-&IeVUFE%;F&MD!3p*vzNt@*@~t=%Exvt69-v*P^2C7YMAT$)&q-#l ziB=0?^2iKx>XI(>2k!E}(ki|Lfz8xMR}R=rDs!5 z5464M*tK!B>}F;aFq=`wH$vX;B^MG}kX?GJkD#=KiXe{w!ah(7$xi6he{JZUx#Txx z5Y{*uw}!kk^haBw9%Ju%A0TN9?sM`IRBinM7|gn#BhXzry~gXSftvw-Nz)rGwV-4F zMM(^@)R+Ng4>#unX3pjA+XQs~)^68;d{N~&&Cv;hn;Uq#;b()e-Py6HThP=ANz1~(hF`+*p-(w{1RU+nO0g`&B553vq zscVB*J$~1}bnTqNj`ABAdbVtdY#@91BU8=0RvixI?qFF;0DneAiGo801+ z?vHEnvf{{wiQN97bxe5Fe@F$bk%Ri_vD>0@Xs>h*yr4CbWRu|sVyUO3JSo&CQ)jFY zj+tA~vriT;{Flt zlmJpDPr#q}Gm|)Mdayf>|U_*B0VBgnXEKhyM#e_R6YaQlbi{zr_qB$!X+G zafB;S0ufV;7++cfC9v~6`2Q<1p4b9N z#D0?vnzl6pSd8A;h6f!VNnkRDpcV+j&!@>L)xt6|l2zwr?0_}-YGZ;9)U*M9Q# zdaDkr@c3Kl$+4_$^8w@_crs58#wmQTvmQpZyXLWt&eGn`h356**_y>;b_xO@znl$u z;Ls5pHR~20_-w)lm5!hG|48X__OjmJj%`tchT3pMO{J_XWru%Tor$zL&K;7lmUzq; zaVuMfxstqIF+t&w_GlJzQg*_9Ydr7$K_m0s(O0-1j9HvH1C_tZMI(n0AjS7*`MD92 z4Nx}HZC$LNmK#O2l)ZO8HRwsuStafe2LR!}h0$eRX&EG@EOp}cVnPke)2Yjt;ztpI z9d>vXJOe!s_^(pHm!r&P(phl3VnlkzhfdC!XXwVlbVtT{QTlJDJ3zp>u?yrPNdJyX z93^LURG4C{A?`|3!`aNNuzLG*S~md1LN4Cv?M8T@31Z>1|AL?i%6MzEKU=Ip51m3+ zNO==9YbMwd(cZ0TEg8T5YT&b&g7;?|rdx0av2OrdyInH?7j*0$JSH--HQa*J=1@$Y z32agcP;?tt6YuN624ZZl7+Tu^;&{%lrE>hRtV<~%z}$oa_f3PU3#K>~1u-4`3v(G` zEI=lkZauZir9Gb`*@{w*Tm>5*6@NKmxr$nP52Jj&{scWrDX}7k@HaTcp#-1#sy=9Q zR!x>f*nF$T_Ko(Km`@5m8z3C=I#McQG3}N z-}zyl{iHmcOf$Y+x8FI=uoJ`lDw+6zq#B9~8X~;Lu(h$`f!*PR!A)mSiZkP14B#GB zTRKaLe$zp$Jpzq7l}8LRDoF$+dE^huQB5|v&lI%|onY4TGE7_Ud^zzz6&bPZLs6~a z`%7TD&~<3UtsnUM*mRk}n~^1J9NKUci8(FvX!4tRh-qIC}?giupEb}{8< z7BF396E#|mp(Uw9yEkrO*>A6bNX(cvvi9VGX($C+><#7^Ec36ORZ^INIp8sJxpw^k)ZP=a3*etu(5)qo{CIrY(+UIREF8n8_4;|w|EbMD!Gi{1=z{~LO<7_5CEA${A$+M4s;!zN zsH2zi!`bHK`+lyV%^=WtIkx)rv1C(SRgJMN{-wb`NKaoZEB#NlDRHg(*D!!UFNB{5 zRzT@M()a8N>?37-p-^}XMmy;j3}W-}BKN!m2r(GNs7;^JX}Cy$SoV6aQ#!tewv{9P zdENlc*=%R~FMzyy-g=-7yF|)qA55Rh+A6tu8}Mc!Xx3n9v-I44vL^$?htF^JH|;je z2#k}S-$bP{UWc^bnbSEoJ*#=Du$(ywKrX2=W?_BQ5q$0+gl0e9*`3{D40qPXEGi}F76F}jdSV;DBhWvq_;|35{s>eZ&fC+^sNf?KY~l|S z4dK^>Vvmq9hwq$xS-58y@->e;26=YB;Ra7IG3Ma;=3`4yYRv zW0r8f@rol@BOh!_S>qNa*@5nbt!*jJRjY5cuBoZQXHEH zFG^1l=q9H2hPRm(QfAQDT4*{PDo2Hqu#)tM3fbD|2K52*N%gpt9cSo5NC=#ZF@{qa z?Xi``Bm6A!ZDbw{@=Kr$8$=<ZWkl)Q_X#M4lnIs9yQY!3sRNe218&~LvE0?aFhr1BCpeSY0_x18} z=(_7|`R{1t%9UH!0`g{Y|23XyJqp^2M?ft=LTs|wSM)3K8jb#gPR73C&+YrE@KbzC z>V0=r0w(YXw0BFH6rC9`B3;A~We2oQb*{bA*cGQsO>=I~5d?+C9|ZxD2}?2k)F@}b7Mp5_Q`FeMt?kg4hTp1wLT61z z@mx6E7yty7R8UWy*YV11wgBFLZVcgjA60s%Xy)H5c~QcVvq>3%=;6Fbr6#Vd(dzFc zQs--dIU7f7NMmgV(o*dzQXc>A2Z&Yr{RcBP6_>=H-{WeTzv~+lt?$eXH|J#j5>X{) z>sJ7TGLk>$upxeZmx%Li&Fv%cDclx3@zB;Qo{ZYk*x2$nK;lAHh0mdsIkK*8cNodf zMXHC-8^gz@PJdzVE{W=oy931M)4{37n~vBt6+ZxJMRB*qpSLzsSS|K#&Djs#l@+ux z_jgFi9-A)5U_Xfh)5{m@PUZ#vbEDlz`LW3?X2vG23y|9g$;#JC1w7rMA3cUSEUyoL zEB1s)xu>Ff!tw|4hPVI%v+G&P_pbfPx*an00Ij1Uz?bH4r_Y@q!LWEns?ZJ^FXEZg zmF*<8ml>YWW|J!D(Qk5^8<75x6{NPeyw^4V1$u&tUsO_EhPs7gzyH&zJn8-F`EBLD zje(h`MGPv)EYcHPfJ{{-_no!k%i_0cPoU;$VZu1NAq|SJaVhH5_#u4l0F8?vTh-A` zkhP^@3P|-1wbm;h)4f_OzRa(EJjNmtW+fN{L|^8!gw2QdP`+rUFA>@S^>0GJ_m7At zdbEKhW==FQUx45i7h-X46nK3}iSRQ!D#YsS$J&%foDJYt|dp9H%x7{{6VUPY`MSP}c#s$NO@0 zIYT>Y7%xDoqaVf-_n`-D2DHev8`bmCFW?(=Nl>n%<(!*q;{`yOa8>wUpsi(6L)bg(N zguDPE_S3WP-R0Tk>93kKq~@<+ju3U_CuzPJqB$6ePP87-vn)%&nM3P2Z4N%^d@E$Q zwPjwhjS?*gx~Z$&*?1^2ThPE%TF2tLufDj@AvNtZM&W@$Q9uln2SL|pwE->?IldZH zGvM=Dyzrrcd6+kASus8}%>X17!`}bW-7efvr9l&wgvY-g ze|R4~2WQ2)uo+{1UIaAVGNm!nvf-2uWf#oC4uPmOXIL8T{cZqZf(e1eFM*5$$|RFe z@r%Nn9}f?jcRcI+Q0Ziwaf-~4W3$Hp4su`FQvTtR=PRJ(WqT^cWiq2#gQlu-4qv8532E5O^ zKQ;g|=RCs)W|tln@JzvTQy>SS68^!xp?{prB$h&kodO3c2(W}_B34aY4dVCRKAbdy z7p;WQR(vXUFAfctYv@V(@BrfAqDXa$MZzIBxkb$wBB@jrXq2vTfvYS6^=CYaP#M%J z7$IKU#r$wY3aWnlG5QfnvTZw*i6TpBlx;m(zkx;5;&LF>mW}|#6C+dy6Zr>q(~Kwi6NieZ9pi^AuVEfMm+V zs#k;0Y=;HurC@ny1Rgg)tCE1f{bBfW(y>+0O$LxP0oxXd5LZnF2*C)%IChjJs=~kD zgXgATbUI(b}zmk#?Bv#@s3q>03EZ2=qjF9VoyTo6W{KcUBBUmG{7$#;#I}%J8_!koF|! ziTQiz#puidWVmYnl=fMuIJZtKetLUP^x}uJ7s)k0J+-1$cBTJFIzXz}F48O0zJ(zk z=6f-;?jrmQ^kB+ir1^mn_n#}-iyjX^&c4BwKGLlfdQFNi62+RWwK~CH3N;$ap7>O& zH+r!50R$F@=~~GlkT1O-O0{(^rDx4aU-SOSNFXpp>zB~h(H20~W6{jn2kw$S(ZiY9 zkk#q7rmBcziBt2wBliEr(bBU6NHaZKwT8VE_3+NOLF8t{yB*T56W2BMdz^WJ>oieQ z&}oe5`X~IKgG&TScBPBEf7nsgTk));_9z1d#9Ehs=l_a)%H8?PZ|wS)jwwUELg2yH zhq$`r-%5wDcfO%0?f3A`16K)A>UWMy>PJ=EF~XWkZ~mcltI*?w;1DCaRucS{%?Ron zlT&#aT)ia;TxY5eE`PydVK<>LH0TW%NeR@an;Q0J0z}Gk2KCZ!3V+C!JYktoPAmSJ z>+4zmA~JV8tggRV4=4mtO5<0u^K(HZFfbw3D(90_vvI*eYB9jhTVPhdwn=~{N_vGB zbBx5Tyf!JVV0!i831ZXU!!+Y|(N#$8dUub@pvt4Cqpn&hX(f*;Ve(O?99_ln&4;up zJpAaAXZs^rY1J1XT?y`~R74Q2TIQa;Y^&UTm_PTE;#S~`pQh7K>##yi08;XBfVoS9 z)h5st`5l5++pryV|0`MKLzfUS{dGDoTo*t#ASuetm$|iq&pIg$*e)&8z#BWMnEw6S z$HW##7~2R0U8VeSsFAyXRb7kA3>)gAioS#~+01&_q){3+YS!Bb)bafvj_x_GkN*z< zc(%V`)w0di;B^6J3NA!WfpD7wb4mda#I~{#`i$evpF4g< z_vl>IowGxz3Q>X4m+b|F72ngrOhT^2qJt2_;PFqmK6-^{bELU#XMp0 zDRBO)Jo;3dJ_7jM2fmcs5y3=B6-}*5Y0Hl_~RD63qZccSe>=7w-Eoss&BL;KZGe$ zGwimDD|;Hs4aS?bp9b4p>X|sNz{{$);SI0aH@*G3%JV6zm*#!uz%K~Y^|-fs0I~J1 zUn527lx97Y{2e@3xVlgok>lEF_Ard)#l{o=2+mYl*;93I;1};O{gsbfueDgHED~aF ze23S_b#+;{C7i%nkdug(22HvWy{iRV$zI=y$|;qXHs)s^D-9#~jn$ViXMhlEr^qvi zc3ouc-94<0SDaFj(9CIH{>Qbg=*HCc^_&DC5=W-un&XG7j5vF_q)O@|NH@Aa4;K+C z#c#7o-0_3JKqk7f#B5w|r~kw=F^{ONYNT&oK{c}u7aK2Feik9qa|w{)PVOb6b0(sJ zih~2jF*TkEI{1=){DIsX@u@?VkBk2gJB-h0Y*Cd?|Rfx{Ic-?h^9wAWIa;vENMOgnth@-J>xfd?E13lFK}WdA#)Mx)gf%rn5#i(zfU1K z0TSa|GW{~mjZz$d50yPA){_1C&Iin}6t8bSOG}{Nf2V z%9IoY_udKlMk>Y{8g;s?O#sow zJa68Fe0dXU&s5u}%I8U-Lqz$OL*lBFtI-+zrU9_6o5%J>yUhf z33&x|4B;5@z_n|l%8e==3A7$d3&vROI{Shz&ovb*Nz@@S1Kg%}zm^at(OXR(yak)9%FTzLqp!Sj;~!D;nWXMAgc9 zN#A|EB0R{wi9iFBjRS@xLs#oBN|pBkDL5bE3AkRVId^K6)I4wQn`*NZa64Upnq{x$ zgs{#qW;Mj1gs{jaxyeRH9??Eo6%}UVrX3L=3<1B~^xB*?c7``t8`X-GBlT`R-f5gO zE)Mawdr!)Ng>_O#ui$4T2mX8$sQ+n?;Cp3OA%g?3-yvyDct0V1 zZIO!n(ATHuuqrrfWxoE4tCyparS64>0LXF+e)xZ>y?NW*&eoBkGHmf@0i;WY9)uqp zAfZlh(ZOD=9iHz3`TQftMWVk?9TH)xP|FdvNmMu^uIZX^B>rVAK=2P6QPDSy_r=oZ zO_aU-75j|LXjjzh%trA&QG20S)&bHKO2Q>?LP$1IygPgEW3AcS?VM8i*Md)0M+2M2 zMZpOmPrYME3Lg_yRu!i>loSqFRa9hCHWIdX$NJ#tIrWghg^8Cmsa>-3bA$@J67Z499{|E+g7^Uw zepuYXq~s(?9R4+>`OL8Iok&oO;+lG41U3jD5S~Q}v1<}W|5;w;fB7}=rGMI%1;bhL zzX1`2r?7^6aAC$3HRjtFVf%-qMa`2Ya^c|7>?b1jhPzp)~NH;qx)piH^DRj1ELKE)&Z?E<=J1YF8_NLeADbtAw;L z_nWg6Dt5(JKW8pe^0Drr=22Z$aCh!s61t;%it6j9si_7Slt6x;QM7%R1$}Ng^2r1b ze_61YW!;fhPc9%gIJ}_@woXeVAVs5x7Y7er66fK*?k znVGK5sK|i1GIAn#o`T$roi{^=7N7V$reagzN%keR(J{32hI zbgQtIOMXJY3lW1?K%I8Jx#!e-Ol|rF&ZZ0<`xCkfHO?HglIaee&aL6G3_xUG{;E+~ zyXSVMJzX(#qTe(z@-F$P5svxd;FxB0%zz|CW^F->z1zY@1=2ul)}QL>b5?RVEC5sAm)D*h$^3++R4 zYY0^`K!~}U_!G_?qs0=C1Eh-i`C_wY^bv5cGHrbM3p3*IP5=^(?Gi6^T;}P{%LY9p z)e}Ta>rQYwBNM z0?0*C$kbi%yA4bn8&;t;Jn%X!0t4n60D%;fr_%7q^i`m zN>JG-G2A$P1zSrv8!r^t>l(|-uX3xOgdepK3F2fiuS^BqQC{%X2VB71sHVHDpj1Us ztQ32(SGYFa?Bd_5l^xy{(U^>7R8V~mwz-7$(hOy6wK~E-xJp=E+XRU|lwQ}b)ZJxx zA~rBBzb63X(K38WGi5{TqbZKlOI3rYCw4S`at6wT-VlTav3ub;K&}J+vDeK0H;;*n zEpRo$Q;dJh)M!XmPNuk;ml@u8dI}KuxBuWoJ;gbf2$#73VUcOMs$p;`i^2~<-86js zoU3^NkTO)N8@CH%@O6Nt@%TyXf4n=)Of>=k&w>jP)(~$5&)!b zv1XO`BUR%at<*8DME(MSw*u1q#w`+JtFx6dt1Q?D{9*nOrSr|>EO^CJi3F+MIUv85 zdZ&j^pl3if!qhmk03enPati^n${n1! z%JU*^P$y6%xv!2yPJLwPu(RUU-6S+&-uMolI<#}><+2mw8}9kK{=i}CF5_L?b3FU# zB$d7@8i%@XssLGT_R2jpm#x3+?yh&L-4XE!(|a~t#~BJlm~BMwhJa~fK=}53uP#p?pl9|yF?C``8k9PCu(nTs`3Nv z6Oy&qI08U$R5$o8mfwCFj4n>4`<+NQ)ShGU=U9hTpoIvlkNkEXDZ7o)6Cysv!|*L^0CQ;eVjdC_HtZ~AS3s^5K*wb0b)== zw{D!@^QjaWix!zO#||^RsxC&VU`HP=#g|@i8%)CfsBEf@*po9i-~HNFqL0Vzji&eY z6W4b*dXqal9v;9?l=v!%95@#jR?Q<-VPwdn26sa?mArog_e6VDxU7H+MybXq7%H5- zppncqd|MTZ&$fFMKyf8CSb%P;o!RoyX%!&LZP2+o1JYx>Gd~HZC;D^KwUP^?zP+q-RN+KAi=!g~>P~eK5C~5gD z0Kz$b{#PE6W1Y^xF1mj5Zlx;MdX=yqz{J_i8k+ECy(zu(BBZ?EN@e=>#jNFzW~IY zcnh8(q&;bb@hq@#HN;?4VHB+wb?OzU7x`trkq0T+R>uC9lV zGp*K>9XVuD93V?^&J?BHxlPf_2zYxs*(T4XJpx#}pH+EnzLgAw#25es;$Hzu;leY% zNWOLdTbpA|(G(h!aWT!$cVu2(S{f~|f;Zz76}MRMF`~mm`#t<9oHSM^xw*$@ydfR5 z7QTCKjRTNF;h5FASA~`m;rjs>Yb#Zkye2ASdGz!bmGJYhbtEu)Us-Y<6E#Zw8~;3< z^g#J7{jAx~a;z!*NqXe{e)~n1U#XhX>NQ8_u0Kqo5y^|}MtwPy6jjJwi zr8=BoNz(hzhR~$ey&?o|d<-B7ez80%gLg)hW%}7X4<@N!q|?3 zd|^AbD8Au^VpdsA5m*5vRqwQDo6!CbyHn4^Z#m|#BYZ6THBeV-gvJ4tA##D>|59~W zhNvr;ph>8E1EnlX_CS;Gc3q_A(4LXyuQ7IH+71xuxY6Rq?9iYN*UEFh`UI}qmY>%V}ABi~fyW};5#mvjE|2_OkGM^*V} zDT2+CEstnxX;My%_X7ue(wdKA&NBAY_!$7{8G4TVd9|v9B=$>UIutRQD_u-*kW*LF z8yU;WhM^a%;HRU#on3HTJ<05~G1o_j5Cd3{^R*%E+F4)6s?dmBz%ul`m}JS;?7&L6 zH;76i?Jarmi7kn0d?v=}Q{tLo8a){6Mwg7nP$oTEiTjE^n?rj?<*)I6Ny<}07`4(N z>wAW=1c>U3oNZb`hG(<>f?Pq28B?ND!%@KZ27$67Q{PMb9W#I+#QCs=i_q$RAH1T2 zP3(62!5@lu66##!so}@bcwP$zkK*j8azA@@5k$zI`C`*?p?dsJ=8=&T{1q4L%zj$` zf2H&5*;xr!3imZ^>hH_9ILZ-dOG%-nLTn;Ii4$cmDTMF9QAEx#a163hEY6ob8jGsU zCZ@0K(z`pQuiF2ZOx%ex$O44?Lr`nvuU!3m-R1j#+=&RXWSub{im|fLSE~HOueIQi zGL7bY^fJK;-Hwc~n=OMJ9q(~A?^lxS!4U;IV@sn627st+4+QP%LYP-C%c5 z&c$o}cl1}cb-$^H;L_L45AisED9C^Tep*~&)GTWTso>1)d0O5g7 zulw|l06-oOAyQkIh_Lx#mOAG(##hI`j;K>YI^wV;r3qo8Z?^&D>7Th37U_SJslQI+ z2ofX9f15V_8mp&XI`6z7w!w)5qj!V;u>y-&Q=xPJAKCnsQ(KLSL1OFYFr5o*taN`V zPcR%dXk%B2>_*I9va%zus8p%(952()5Dd4FDPP^#`(uM!*pI6O-#?UA}A)8=oC2U>O z*&Ra*93!(&rUYkX!f}~8UGPv`$%eBCB59Cv1{+R9TUikHD|-(23PfUy0MQC?Ftm@z z4J#yIVvmGOC>=OBS>^SbS^48Oa-6qzm;;bo4BPZ@CK&{qwW0(Oca*rb?25m1?b~an!HW?=_6im1TEKA?Y2Oo*mBIir7_T%Rfp~raS-= zbvsee?ZP;46OXwVDF6E}{S5Z*okFf-H2JWhrX$WSK&p7uG)-TP7qH+EsKk5+Hc(VE z)BjNt=~@QX!$elfI0EEW@jp?NgPVHv_qt>o6~qfM?JPo;^IkISM@BjbtQj!dlQZC^ zomS%JTTz#xU{=V(Gnnq-gfaE2z*X`5!uu{M4Uk7>FOnZT*MnYduu_8daVldHe8#+( zb-bfkqqoZnHQ=zHmf1wrPm0+ud_PR{WTo-5ORSdfm?|{Sf0mmTS7yj!01?MVjX?b` z+C!EdVD65I&S&L-+At(TL^u4?-pK~wRYC5D3fuwLR6 zohz(uQ#BQg45VIO^dj@hFEb%E15xT;1rz7rg0wq)G6I_@;F^6h!HXpK4Vs%$E~0?9 ztS79^zrb={_%PuXQVSQIBNRDtViue=&-GW1#$`lFlovv9;C@O{?6FmTY*Qs)xtNU4 z+^)_8ziE6i49A|cl^=wNH%NV_Z)tJ|xVd4!8i}j4Gi~Y@Z z`8Dvk9FetLo zQ~()wC95bE{@WWTmB2)7dWX^My_HLktJ@<5S1IuGBoVAU#1Pbj^^Z?RfySN(kZ_&D#yBYoD5Wl<4^F-t78(sQpPbY=R2Tl!uhz%J@ zKeh5FlO(Gb0e_CMX}MyJA-35S3DjY4EL- zoFiJR2aFOcu~h&PghUc+fbj|5g=zZJ!#CWuv&H9lm#fcjd?MFG_zdw!0MR!b`3kX{ zp{T1lDSGu&?ep8jQge;@<%#}m*H<{v(n^4QmZyfn_iohR$my%LS-b1l@c4TCIMN$3#}+RZra#;etSm4wtZAcNJ_nFjJ_9S)il6b#$y{3bVgV^hhaxjWLQV`+}C= z+PhJg0+1duMsazXWzn$!rTp4jt5?=EW-Ag52?qCET*Xin1+e22YR~AHQFhH~F^Dql z+s#TPg`NC)`cXWXI>lyNqTZVyAocPxDL%un1Ey@o(VHiKqthr7@MgcV+qzXJYyl@d?4|e9+*fX_OC@1ZBvX|r0?+xzw8~Ry>Guh_hb44~-Zgo*}IuR~Vy?e-xgw6MaK{KFi zw1pGCaqPQ$Ck$T~Oar7jsQGgLbg2o4EI68r&J3ex&r9Z1C7da#IX|iWM7tFrt%=sk z*P{dzN@H2^Jx`bSG(J-866m(2rAKnFnqU9_UOxmr|4T;gI&}u3#V9(sZrCP_Q@&pl z2*VM+ywB(*F_XYiWcz4g>~c12g_3CsvaVt>rMZOK$$VEw-3%+BsvE200iw8>n3Kt= zwEWO`l|8?7i%gbgxHVG7QcnxHM2p=Byj@B?*L2rWrS=QqU@(LjQ@%Y&+>!V|D1`w>M>15 zzw*4Y0_2>wy{@09>D_Y#C$qN=N_yP7sP&4fC=i;5jsM@_H8^xq{D;&0d;h<03@Dm2=Y!C1!vJAJ+N=l6JzJvEkge`XaX{L9&i9guY*=Q+qj;ZEtK3K6!^nXDyE17Exq4VhdkSgj68q~APIOX z#IzN&h1&2Y^&Kvg`Ge?n$u1^|JMvbU*i8e(;Hevh|M*SkN5dN32qb~wRuA$e?_Xu{ zB@GhEEKxBp3Nv(o=<^cGTIgWr!)69-`k}{!25TGO^@_^v^Es3Wax& zcjcDH7tCsZPz~^BxMi;x~6>()tJi=}TLS-)m2L>Pq#)?1w`(ck& z!@)e(SkRF)A1Ldh;Vsb&_u4zcPf`cQ7t$L%`q3D#;{cqZ-6*aRZ2|y&1@$Z2wq_Eg43Ka0q7D6d(Ge?DtNDAoApd zPWiBLUmd#BuEq$#2Z3`(xte?|fH3sw>i?p{8H=|NNknFFn}gjkA^p?7jH6p-wpgNX zb`22X^PdVeZ`-2ZYUlmeJRNDgeFLPrbXh)Q-$h>W>Ft0sGM%;HDAu!e2}&_%KO7%Z z5#QO|!N@Xuve@KuX=io|aA8{eVp_zx+4QYFW(!UQrnANDQw{~ygd|pev!_~rW^Mq; zUo_RFy@2rjiHf-)l`t}jykZ(_M{Wcr-i-qE>f&%P@gY|U`liwxnnSwGr?8KO4l41P z!p|awcB}7mPq=D!%K${;!bJw{S83X!3I&J#T_?3d zvm-YyL+C3a7v7v#0rdfRLlAfp9GLju`WltMQAF{{LRq85+K_t1-lB9L)WOY`whb)l zTvO-j&XqoW)D=Lk*KnkFtQ~6QJE-mMwmT8Rw)E;JKb|&lHvfBVMx6W&kP6BWoIkeK zrAXvA+a+;HgHNL$#|*LEE|OEt%z*UQ*J^k9@;6P04i?Rn z8Cu{evHv|ln0|bXL_Wfc!@D%oDS*_UmkyI`u7gyW{1(1RE=!eZN*WP`^ zESwgnoE{?B-0^QYH^Y5!tB72GM8Lv2?rR#43gj7oMBNDWZ#4?NE`z*JlWbind}S&N zx>#>r0Qo4VS>s6Wd}!mMZ%shiaWOF#K>RH1-Qi@mbQxmD1NKLq?o~lO8NIcE)#Wxj zp9{q7uIw=$Vr>8XP=V-`{M#P{kY;~b+$Qr3AAY{TOacXldf64Bi*6kkbb=7R3OiR} z7J%^CwAe0ktwDbk;y{*)twOiGd649atHikTmRR7I7JkzjRwd9M26V?cNI5C>~x47 zNOnKm}{IoK662Db;!*VS1nFOTkKtj@rz_r3r41=iKs6C#1bwQ4$d|4 zyOrb4PHj;Db?d^$_XJ9{TlH>aBxFd7D1gvcb*-!@X}cok|9FRIVrQ6O++lyOHnHAH zB)gvu%_RVc0H~euHhQ~0EB;88`w_9;q7Cf zPnU^6k=*nlsJnzclipC+F~CBQbN~osEsLF&({y%j?CK3pN8ftPm-`QnpHNF>NHMT0 zgQ+9|GMo9%%!dByCmes@Lt6g0HR^67!wA2p?rJ>Y1P#aFKY(O@7oZ$p*5t!0*kJ#} zuxWwck(sLvU5}d~T0Z2d4F%3$d@a^JPYO$)$ccn>+_BLyj>;a64fKBqX;K+|_Q?_j zPn}9UzkK?E>si6&-GzvLMC^q0&-O8e&T!TnMil|Yb{~L5I|{uOAb1k58EGw|Q&XhB z9ZWvrXlg3JX)x%dDbT$Fo z?iJDG6zb8!td=?K0HTbf)8z*lYM-yk;WY0_eU+!cxI`pHgaW6m2d4%r4t^q$9QVB^ zxh++3s;hrN3~F>9FwJEZ9YC|A3S&mDus94564oONs9h?q;jYsqs}z@K_K#oslYFP? zVBOT!Nxs^FB{6bG%$*t^2~D?fn$X3(HGc&0M(MtSuq+mf@Hu3_Ukrd0E2>y_)uNfX z*z7`8Y=yE5C5rC|>nUVx^{P#3B!vrsWOz`AU8+>k;l?Y9Fad?|Z3j^kWY`FvuRF?Fk`^*W} zRXH&qmqo1#m;tTiBCDXefEA%WfMm75BxsOzQz(7LD)O~$urvQpvG(kj`%ktICdNZ- zdoZYWqeTYkC#A9?8;uH%0S|~gqM=LCdxX4)wA34x$})jVir41*H~(E0>DN7%$WHud zvGd5AX7>cTDE?08caJ|S#Q-65!^EL-AnntZd6Asl9jD|i2}fAJ8pSLtGZr}!s{(tq zvT2XhK>Ur}6xKyMd$NU-gSH zZPWQm5`OjLj*-pp9aK;2u~BgkEO9%9$72OQkObM zo;9tw7yH;5@S47O9;7F=ux%Pl8``CJeS>4la@>zsVYM9a*cKc9BLP-qzq7hfR#&Hy zD?%8GPT|!381Qw_2^%7w*HhYN_w&{}0TNK7=GKs$PD32|t1hj-KHOoxUywOY%G z|GP+QfHgqmA;ZXa0=_inwwY78__0KfF_ zywTXhnaJ~Rp2cX0U>j)Q7l;6&s8OQ!KBR`oBPY0x4a3QZ)4n)Nbwd6kZYs3Ja*htp zU+ULl{in(vm#2qtS{yNNPOTl>_p^V{EZ`q!{KDm#Ob19i%v`%^3|2j^?I%1KEWboW zbGh4549ZulDGd?TVEGV$Y&L%)Pr50De>#B?3+E1Wy%_gACrBS*ziR4&F8;Ig1Q7kV zrr=1ve{zU19+y)LACQSfrUV7eb-eS!=ZvH)oxt>Y`we$DIuR4$S6N)A=3LE^K~w0t z)>yd8(_gXp*le;Gfb>TD4(k1}s+~3)o_>zg{t+r7fJ{_!3hSD4QDckSiwh8yN+Mpe zvxpwcPc)kxuD$=bA2iwpMG0wl_eCMNnRVryXj~_)etMLU zDOI8$gYv^?@Crzh51Ou}p+tU9(9NSnNj>APD%klzTal#z!R`v ziyYo=6cpGLH{D;ZptXf3Ci8vstZu*U0EqZ;qY38=v5p9ddC_m+9(i)U!u-MhSuLyu}dNB!p-&W|@ZrfN9Bp>2g zgcbw)qd20?#ZtC6Q4LD!MvFt;4?PiDXWtL~7dbYWFr?@>!L^Hc-lUs^b#K0Y!K-Qi z&07;0*+aQGFF3q84u`v34_Ib>32hss7tlRZv zD8>tTHdOMqN^1rsaUMC|h1DNCYl@RMCI1T%1*^jiA6$vw=Kp9!3#)p0<>a&`R91F& zj)ynX`sO8+`1zv&qMVK$ti#d@KDt+)@&;3y|CJ>P3g*3vO`T@4nQPAzAbsWXuCJcf z@vV;k)FUdIFCJ{0oU7n&Mf{e?a&&Cg&;UYOQ|M?ayzLkW75QBh+3gbz54&D~a1h5C1+P$xj?lFI)c+(rKl=DS2eSq>^G)EZp9U-vc$7;f-`*V_vgTR| zv4w4epG-2V`Qm^7ve|w6tp4z@;ie6cG9*#*`e4k4&=R&92&KjXvpJs|eB#GQ2&<*@ z_`gLm04b&%%Y}+NIr=lCkYb`N?S0r@`PYDW!7gor`bHk^G7ca&9gJ?HSnE5LgeuzI zCqL5;PHC(K+2UR3r}m$Ij`4Q>S-=B zdzzwA*ZGc%On?+#scDrOj#+e`F{x8kOAi2XUc)MTE z%!ohMq{vykjC!=81t2^v6YQFF1*#`SJ%໰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 FVlI*UgQWlf literal 0 HcmV?d00001 diff --git a/tests/suites/test_suite_lms.data b/tests/suites/test_suite_lms.data index 5acf69caf..1201156ce 100644 --- a/tests/suites/test_suite_lms.data +++ b/tests/suites/test_suite_lms.data @@ -146,6 +146,53 @@ LMS hash-sigs interop test #2 # * verify tmp/lms message.bin lms_verify_test:"0705ba8297c7b9fa5f08e37825ad24a0":"00000001000000040a432454b99750f7b703f0280f92818b0570d0267a423b377be7cf0561305d4ce987b9d8dbc1c3f8ba410bbe6b921406eb802688d2dd8a1a6fa4a124cbcae9b5a210f583a956384c06311953b038b4ad2c2808224fc3a6410cd3b89274371956bcd4253a251cba6409b09c822e1d29d7a037648a6f2562d0df6359a043622f256f5ac79736c08fc4185758ff002a8397e560d5812373946348afba2ccf2cc0f3ba741ec076d4587a54b8b625804b814c30540152a3dc843a590c94cc23ba857e4c458c8ab687b5b9b68837ee890454cc19bb5f42a1e6dc051803fab50b440067a903013f675a774b5d02cd56289518d65f869f22b2e2b58d499e9e3929ec5a9f5d6d6e03cf91486094aba7c88491cde35b81c175c40410bc402d20f0a73a4da844d3a1d47e57618b7f18fa5ac85e877b5faa1e0b6733c2d96b2970fdd6e606435e3ec50eafa88f84fb7512217aa4be5858a140f242603bda634d76c484a184298c4da903094468d032b88586fd2f35182405cd85115af6a0bbd431f2e44217a1691dd8887db91d3b97264ff552ae7dc110a3a111f2bf74ce42079055dfb8390a16d67f28b738f837aa7880f3134deabcf6ec74cdb521bff44df61c999bf7a8ddc43b64812cd4f3bfb15104867d5e585d1cbf99738e0df92660b3e9135a4377d1199b8b97362fc87ce3c99db3b8aba63ba35eb353e5ec79bcee82b9ccc1b4f7d1b8ce7e5f8813d007be3d0e45cb8e7173337a5a7c4d32ea5116e0fdbd7846ea1f366a531449c78cd7a16ce5bffcd6cccf54b7f249a74e0df6b07f6b48db42eb958ff18b06995368af0cadd82f44cf44e4b53f0993de5f06b289bee41cd25f90a9fbd1bfb1ab2451c96b07adcfb5210d291dd505ea30e5d30395c8d84eabccdd2c7d6f28a88f5e5d245a6980c57810cfe17c9a37ef5e79b7b9ca755d56a789d21985372bed42ae2830d81ebf0fad6c721bd1d3ee91ae363f40d386aac23e7c0db965539ce9bff38f0f24bec3227b5a24f4cd7fa71ca9d306faa3fc4726cdb6634f218897b79a4aed67a58799285104eed74703ec4af6d5738b27b4d6fb71e52c1149069483a7cca6c3fccbdff77312ff5c635d8b0ccd53dbaf7b498727f7c7a70d3fd1c3f217e2cbd0dfe91258acb7f79f53f56012a82da997ea777b76dac0472e5f9830a93fb09703b1c0e45cbfbf641de94fcc6c609f02a5b31ad5821ba6cd48829fc5e0c4ad78e11e4cac8efbb1b170c794b7b131b0c1c4e39fdef81db9e7acced5ec824aed0c4e6b57fd1add4191e87be1446c7c519eb671205ce8c5855ad7a2b9ff7a9cd5c45336f508d0f8d2c1152dc2656650bdaf8fced642f3a4d445b5fc49910bdbdc9635de0086ee9582a796ca9f6052de805f41dfbd3e94982a05cbd36bab583dd5b1586ddbb3b1a45f1a265bec062c1a50d220870c0c622d852e650a67f31e8eb3d19e964de0926712b7f429ad05024b8db51eb6702c39580f62f037388862251bf66f02edee9615a63957eab75b28501f9f26cecd09a5c949127c9a3095036667fce8e45ba75568d5160fa1725a9e0038145d948f437640dc4441000000066e8db13a9e79d10a4e067aad448a1847b5489a62cde3054ee1e5ff2e37549d516771f06926678fa50aa7167684c1de108944b2c4a3358f5e926368009e4500a8d4d501124bc25a4c9b1cfb954503f4ae26c92221e39c680843ae55cfca972e139c82e2e4469a703a1866fa0e6d76636591f4ad07f7d1eaa19077660ad46a6f9d534970e6a49e24621b7c7c283253dd22fb24eb7819fab84bab88e42555d5437d5afe06615a7e0d103cc8595616690f1337f4345cf418724f07d0dc4d2c0899b691691f397202204ef34342b5725dc6adfe549ab0b887572ad38113c407f96fcdfeea0ffc4f333addfec296169e53e3c5b24797a20f3b2f043f5e96920de9927da466f09389d3e52a5665f380f68666a019c201e710ab4c168d5ac952a02d5909a6fcaf498a33e2124e6a828203744ee3fe70465adde0cfbccc1b4634541638ab":"0000000600000004e18760ef2c86192aee88579e376f35cd153419d622803a483e79f6d368629308a8ab6ff663c4f108b2033af290dcedfa":0 +LMS hsslms interop test #1 +# This test uses data from https://github.com/pmvr/python-hsslms due to the +# limited amount of available test vectors for LMS. The private key is stored in +# data_files/lms_hsslms_sha256_m32_h5_lmots_sha256_n32_w8.prv +# +# To reproduce the signature: +# sudo pip3 install hsslms==0.1.2 +# +# from hsslms import LMS_Priv, LMS_ALGORITHM_TYPE, LMOTS_ALGORITHM_TYPE +# import pickle +# +# with open('tests/data_files/lms_lmshss_sha256_m32_h5_lmots_sha256_n32_w8.prv', 'rb') as private_key_file: +# private_key = pickle.load(private_key_file) +# +# public_key = private_key.gen_pub() +# +# message = bytes.fromhex('60da1a17c88c59da8a730e6ca8effd37') +# sig = private_key.sign(message) +# +# print('lms_verify_test:"{}":"{}":"{}":0'.format(message.hex(), sig.hex(), public_key.get_pubkey().hex())) +lms_verify_test:"60da1a17c88c59da8a730e6ca8effd37":"00000000000000041394a893e40be29923751880ca3cd10b5a67c2356c87c240e0733c3a3781b421f89dcedd553f5c1c0fdf4e53e4e484766860bf77e6a1e5911c9a389390f7d62accb581ddd4d6479c88a9ba3c20235805bb544db1da6667c5bd6caec6a5cc0afb02ebb35c1db7aac5d16446d4f8fc3518ed44ceb4eab20974627ccea5b1571a292bb2fa08ccb284957605083bfba07a33f233c66187bebd4523d095e21546be84ba56ed61768b9210fc754c78ca2d6a788e1558533d5407c45b04a0bbe6a20d0660efec80e1e468874d81c98d81acc87981c236b68695fbaf70d188617fdb86a5840c835687249f688434159035778260026d536570f24a422d5255d2572603fdf631668074dce5fc469710aa99a1f21280708e73bcd4e50492d2ff1dbaea1058974fbe9bc393a4f837987faf0175b814ebafa02095bffee2518a6fbb3555de9b3ff0c87c0c7b2c61ce3ef25e70e1a2ff5aa6dc7dfb3533e53192bc68807727b76c8752bdaa2c8d0c66e6bd94ff4df2f9fcb5609cf9bd04635743340736b84a98c3769bef074c081ebdd0fd17e853165dfa4764b23c63dd8a4a8c10b58a790ab92f81a32973f0f60d9f33d801a2c476190a7f8521a998220d8f838c3932da4dab89f62e028973b1891aa0954faf3da6174ea445c0e6ec27a58bb74000253fd3d76909298d44b3beaea58f130102cba5d928afcec92991f9483294f0fb52c16df4e98c0839e058d064921582b144602306d0a1ff623bbc1b1de106045384cb0f20db3198d99b266f83cb7c4585786477cb38b140f7cc48fecb9c5c272df2881750af48da8ace04e1b109de3a295c91373c55e8dd36cdf455c17a0b9c27cbbaa80a7571cf5d5074c384948a7e006ea6346e2e8fd1082f0d7a498c6445ed2da31014f4476e41e1367cffac8ac93b7a59bab5e23dcc9130f8e3264b2920e503246e11fbb15b599e58350cdd60e3a370c7cb0a81e73fa17eb2f12702ff3c1cb6a75d7718687d545cf9d00d4bb277905291ee86f1dfc045d9c59d6aca2faa90d2654dffc652fe89c4b37048f8c46a6410aff4e46c281c1d4b2f6ea1408d0615bac721ece31a9a69c70f3b860d730996ad735eeb376022c4828135466101cdfb2c88cf02864c40bf5c5aa63e44d58c8f28933d8d3c53883a95f4109a185b7fe6eb1d87d76823e63bf9d72d96b60d2cdcf942ca06d4f278711eb1eaadf11e9bffc7af361ae0c0fa23ba2bbc2f673a05c1ee3f3ccb3bfab4dffc4b9c234b0b9c34fd1b5f0d01c4e10cfd0800f90ade702dff2c893f098de1637de094fd959440009ccb34dff6cab72fe80e839e6e89551274e6cf6e862532f524c804259a0c8e4622c106df6431dbac870cac64f7099674c8050f5149326d961af7486e8229f5b5eba743ef78dc56b4f3acb1ed5029fba223223a5e835abd61409316a68c899abe85c0514642dff696da0be97416d774fa7f5dcc3aa2c8469b47516f7b27cbbc66faa4e62b6a3201f7976ea20b89ef349a497967c093e3431df9d619a11ed2cd930324438f4cc9d11654e0c9d229d6bd239487598a3482f63294e9e85c29a576b1c86d0884000000064c6b6388b7436123dac99e0ec7fe53b075e2ba9844505ce1eb3c7f70332c6ac543dcda2e63b26f5efa39ced6095a54625e67ab25d3df068e903eaaee894ac0f1fdeb4a2f1390f655db3608583eacfb0be4282f7bd1c42c5d748d524d7cdcd45878dea56cbc11a63bebbd74a5413ce72a931b1d4794c78c4cf16315bf2e055bb3305fe0272c8b916856cc27aa7a773ddce62afa7bb4da76c287e0ed3ed10452512de82c051f17b49c608b1a259e16a3812c0de684f2cb1ee59296c375376f146e2b0cc299ef41ed8e6fdf0557ec8d95fa026970f8d47c8347fed1e37e018413c5e813d1726ea18bc926ed02840349ab3b2adc8758a9cd57be38e9e76869762a81bb79721ca1c031c9dfdc3735fe9318064b62c2a7e8e2ec099963257b0705aac812dbc8cc3fbeea81af7c0d592c7e2ad1c21e877d4ae392b13ac1b57a8311d406":"000000060000000447cc5b29dd0cecd01c382434a6d16864d51b60cdb2a9eed2419015d8524c717ce38a865d7a37da6c84f94621ad595f5d":0 + +LMS hsslms interop test #2 +# This test uses data from https://github.com/pmvr/python-hsslms due to the +# limited amount of available test vectors for LMS. The private key is stored in +# data_files/lms_hsslms_sha256_m32_h5_lmots_sha256_n32_w8.prv +# +# To reproduce the signature: +# sudo pip3 install hsslms==0.1.2 +# +# from hsslms import LMS_Priv, LMS_ALGORITHM_TYPE, LMOTS_ALGORITHM_TYPE +# import pickle +# +# with open('tests/data_files/lms_lmshss_sha256_m32_h5_lmots_sha256_n32_w8.prv', 'rb') as private_key_file: +# private_key = pickle.load(private_key_file) +# +# public_key = private_key.gen_pub() +# +# message = bytes.fromhex('60da1a17c88c59da8a730e6ca8effd37') +# sig = private_key.sign(message) +# +# message = bytes.fromhex('92d036bde8c45b8bb5dea2a072560b1e29fc4bb7dc4549ce90bccee8a6e962a1') +# sig = private_key.sign(message) +# +# print('lms_verify_test:"{}":"{}":"{}":0'.format(message.hex(), sig.hex(), public_key.get_pubkey().hex())) +lms_verify_test:"92d036bde8c45b8bb5dea2a072560b1e29fc4bb7dc4549ce90bccee8a6e962a1":"00000001000000042e758f2a0e8f301af58847b6973a15fe4856b91af88a1ff601e2f0e87bde33afbc39202a66e38931fbecd7d493cf957b37eeb57ed2e4d8f693b97adafa8241746d775cfb9471688d935e090581eb8586e7004d6b8855963d82ccb6f79df2d93dd35848556da6735def0f0c6c8fc969c1df692341f6a99626eff37d20226cef361c8802a995fa43535fe2336d8ae468c78eb6a7082e27c2c6317c034369b588e3d65a2eeac9804b427702dc49f681a841076813ed407399aa778259e7c34c750baa6d296a384e1274facaba9e2214d197628f5df7b2bf3896fedeab377b8edb775d6e8d67f1474ba3066794447f8f8e0c13552a007557a1f1c3b9bd2b41d9b446c6bcf36c828fd4c80850a31ee603065f5cc90d198df03835195b14e27da7bf727a16081fcc787f1dc7fa6da8b9ff908fb2c02d6f2a183486de0e39cd7da7fcdee0c8e96876c56ad9b0b18e4e4999e2c81a618aa4b27e050ce488dbb1e79089131afacc446cdf15b625f4e011f8d8160bb93f326bca3bb56fa41e34893d55f17d746fc142297997c5dbbba8f6b6c80678168ba455f12bac6982e5192de5462a46e14a45a01ce9e07279aa301dfd0fa9a12c6a55059b19a19d7afbe99779ea130ddeeb5ecb67d2ddb6c1c5d198e421b78091efa5aa429e1eb052760c0d8e2eb0c0ced000e93f7f265611a385f77c0cece0496eb29010f710e70a768d3713f0b7fc60c8ce372dc3234f27c7a1c2776a939ef70c7be869337b967df2223d4f20dca697e3bb6d0e53bbad153ff08d579f60c8535710f253b90e73ee9a19e1e57df66ec6c85ad1b4cea28a9d62fc5a4cf130f70b910dbc7e6f0e6b0cce1a1b5ff106b7f0b101405c0989084b2c94977116b98d15d6062a8d77d660aa813d432cf3338484308b7beed10236081f52da44eb807f9a75fd4cc1ba998ef3fc2e4791712597c786dd46431468bb4a1975a6cd854a1da23912fc99160f51df484efc9371c2d8e028d9468635cf93226f5a8834d14cead59e5d2a61dd6440d7b91c903ae8823907b75595c4828c7710036b347dcfb67f8561e835a53f569c8b3a1cd4317b2a6b2243100ee3d9468f9191acf2276d18dde9ebf2e11a48ba1fc1a15dc51091d3358d8d1f65ec7d84b97bb1669a9141f74065454f08e5ef25432b7635b8ec673ca70e4b3c25d07975a6fb725a56f28c1b5a81a6da2fe0a2c3474275926f9819a25b942462a68097e1cf6d9ae94f6b1f76b54addaeda04f9fc8db025fd6c453e1ad928f9323bf1381fce1893938828612728185d22a3d45d21ce762c066ab53a582c487d76d431e5b8f65a382142dd823d4620931e5572a4e6aee69986421afa119634bc8ea88aa6535c4d619ca0e0af94934637bc0c834e5e2a7a2853fa73835d00e13e5f26ad085ef66c8efb60097860cb199e03596a3b8f0ec78690d527bbc9363dd9702226788b1529871df74918ae2a4e02745043bd5ee8ab027826fb4cd54b0c27d99076757a1b41e2725ec02adc7926e8213796a8aa1740a2dc675437771e0364a83b0bd64c9620f6c203d92626ff29ef736eac0e13c71fd1957333ee0048000000061f7b7d6f916710efe9ed625ae689c67b3cc1cdf0d672e58c0b86b3839bbba2c243dcda2e63b26f5efa39ced6095a54625e67ab25d3df068e903eaaee894ac0f1fdeb4a2f1390f655db3608583eacfb0be4282f7bd1c42c5d748d524d7cdcd45878dea56cbc11a63bebbd74a5413ce72a931b1d4794c78c4cf16315bf2e055bb3305fe0272c8b916856cc27aa7a773ddce62afa7bb4da76c287e0ed3ed10452512de82c051f17b49c608b1a259e16a3812c0de684f2cb1ee59296c375376f146e2b0cc299ef41ed8e6fdf0557ec8d95fa026970f8d47c8347fed1e37e018413c5e813d1726ea18bc926ed02840349ab3b2adc8758a9cd57be38e9e76869762a81bb79721ca1c031c9dfdc3735fe9318064b62c2a7e8e2ec099963257b0705aac812dbc8cc3fbeea81af7c0d592c7e2ad1c21e877d4ae392b13ac1b57a8311d406":"000000060000000447cc5b29dd0cecd01c382434a6d16864d51b60cdb2a9eed2419015d8524c717ce38a865d7a37da6c84f94621ad595f5d":0 + LMS negative test (invalid lms type) #1 # This test uses the data from hash-sigs interop test #1. This test has a valid # LMOTS type (0x4) but an invalid LMS type (0x7), and should fail with a bad