From 87608fc1614698e3d8db6fb524e9193d134651e5 Mon Sep 17 00:00:00 2001 From: Daniil Polyakov Date: Wed, 31 Jan 2024 20:56:09 +0300 Subject: [PATCH] [refactor]: Reduce key size with Box Signed-off-by: Daniil Polyakov --- config/src/genesis.rs | 4 +- configs/peer/executor.wasm | Bin 512354 -> 513012 bytes core/src/queue.rs | 8 +- core/src/smartcontracts/isi/account.rs | 2 +- crypto/src/kex/x25519.rs | 19 +- crypto/src/lib.rs | 278 ++++++++++++++----------- crypto/src/multihash.rs | 22 +- crypto/src/signature/bls/mod.rs | 8 +- crypto/src/signature/ed25519.rs | 6 +- crypto/src/signature/mod.rs | 28 ++- crypto/src/signature/secp256k1.rs | 6 +- data_model/src/block.rs | 4 - data_model/src/peer.rs | 17 +- data_model/src/query/mod.rs | 3 +- data_model/src/transaction.rs | 9 +- genesis/src/lib.rs | 4 +- 16 files changed, 233 insertions(+), 185 deletions(-) diff --git a/config/src/genesis.rs b/config/src/genesis.rs index b137b2298c4..b6881ac4d65 100644 --- a/config/src/genesis.rs +++ b/config/src/genesis.rs @@ -48,7 +48,7 @@ pub enum ParsedConfiguration { /// The peer is responsible for submitting the genesis block Full { /// Genesis account key pair - key_pair: Box, + key_pair: KeyPair, /// Raw genesis block raw_block: RawGenesisBlock, }, @@ -69,7 +69,7 @@ impl Configuration { .map_err(|report| ParseError::File { path, report })?; Ok(ParsedConfiguration::Full { - key_pair: Box::new(KeyPair::new(self.public_key, private_key)?), + key_pair: KeyPair::new(self.public_key, private_key)?, raw_block, }) } diff --git a/configs/peer/executor.wasm b/configs/peer/executor.wasm index dbac1ecc7cf50fd6f00fa663c106010c251cc6f9..edbf46b4cfba3c7d5fbb97dd09966caa3e949f2c 100644 GIT binary patch delta 180412 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 VSk!p2pe+%bQ@s*Y$6{U1&pgtY(w delta 179415 zcmeFa378ed)i-{tx^H*ijcJ&jnSs8S0cMa@fk8l|K|tIPHEN6tnwaQd++vI|(K`w% zD(YyX4YG)eLKJlrBB-e2l4M*n#*IXb! z?ymLJsZ*y;opY+{la+nnxT$YbqtxDrwRxUw)P)Fzyn$NE&_YrO;my#hbcsLj?r@=Z zzGkF^sfWTQqB4KFDUi#gU(PMO723f<^FGxM^Y+tgrs@WYL}D2ZQwlvSLSdl^i%OLO z|G9jA;~@Ug`LE+!dK>gI2j$Zr7b2tx>4vFGf>Re!itx7Ry}dQz!bq6D5G=i6;ptUI zI4tNN|KWjR@EZA`;k}?NBcm#hD1+l70RYx%E-b{0Zx76(Cy=0bqe>F|7*)#y|6K0k7p&8Sp z40)fMhX91>)(EFbYtq7+2=z3|wX|>>8k$3~bjZE$*+===>|Jm57q@uL)XPtc7siE6FJCdxtQr{XR^`ozltg}Z;_;`Pa@tQ3dPSrvy$N0Air8IRU+3=F`%!mt{ievnVwv13 z@6)!(H{}ZLe!X35)*sU!*Ei@7>wnSj(R}UE*f+*S<`w3j^hWc~`nBd_^AY_PZN2`2 zxlG$+zH0u{e9de#UpL<{-!$Jc|7HH$eB0b?zGJ>?uCX4m9<^GmH;w1aR_m{6b3x=0 z^V-M?b75pv_LUa%Hh4~lo?qw+D?jPJMQ7Wtn1 zK>k}U)Na&n((chVYgZaq7*Fbrk%z2X%?GUKtlJ|S%^S^?<^uDY$TQ~G#sm6V{R!(C z>o3+{t%vldt%c?j=3mTolYT+u8>`uT*nG&mOaI*Z)Vfo@JaTE|WowOjxA`~mw)HRT z&*q=Z$IZvgIg#zwSJtEEgXYr6edc=eqR3Y33+rR+Uh|LU-TM31d)8|6CF|T4bAx%4 zIblWQmdMJ;1?JzaTO(H*Pn#R8?dE*zQu9)MtG54T<~`qYYq<}K#U<`VN>t<8GP`lq$ZY_eW9?@n8b^q0)5BUeSPj4U&knwLaAwBE7a zw7#@Hv)-^aTNg*(wdO{)Sq+iPBA-}qSv#zD>jP_xH81jS>uYO%S%)s2_bK`q${n=wG5<^r`6F=)a?P zM7Kn5i@pDUemAF(>5O^^U-g9d$yEtktYK>G;py7%sDg9do2>QM6TWUnITyM5Xsw zqBwn#%qB$^gB~TAS!L zfxq$3kWeV4yTZ{c#)d+Uu1^di5uOOe;=)_fV}e-gz0%`0(d1oRFc$BR6toyBzju{g zx*NS_QpX4aVfRwyhfrkfqNprN%k%q%+*ZST&Mr;Apw%ZWU~+D_K565*3eO0hn?!vw zj^{SL-qp`cCh)ohNqgeC9M4|#l=aCdo-Oz;#B-s>NsI8>il`piL^)9fr!;_3?8q9q zN&{1GXgFt@J`u2Ku6Ih$>1fKmJqM&8H{ybN{c!_$uaTPs{k91kl+pv#As;vDWXS13 zR3Y7`jrtlH8jS$y%F%M3=19jx|J7+N5hwYBTX z5&~(9j^36vX}MWX>J-tYCrh1#Q{)b|OL{vIr_fy}=uJA|(Q+G-Fo=vA8=*CT48^Ku zB?O|&N6Y1aVv?xS7D`8VG`qqv?8>-|IZ>yVTVtc%AQHJL>5$Nhv`mH-%yy+)GR+CQ z_Ovq-!me_)q()h}`er0{O6s&GdTOKPYI^FU31qbxsgji`B-lU!c&_KC zQ!>e!x6(Dvsvj*MM+l+FuEeul^r%NKMF}{x$zABpE<7mRBb5bjd1JrDDHhilb~dlqTBU?xQq$__mggOHUQPPh$Qe*BcB#Ti8ZoSBr$3T zfvFfef_ni&GgO}nJ2Cf#km@VTySTW&DE3wt_mecLi+?JjYetonO0ms5uxy$5*xOQ8 ze)Pu%`ZuJwoc*3rpAwF6wCNQft}^1qWds-^@XfqA=er~uk8}>F`jakoZoSCB8)iLWe-n=P&nD4wk|3fw8=>b%^vgzsb0Sb12$^bg z4Ft!N-ab{S-iwWR-)!_| zNAL^|IuJw{l#t3vg4$a9j_3`zXnIjJFd!#>kyqi2>H7@`6%!;!+u+*<;QR{;uaP$1 zTD&uzsqytFfH-sDX52xY~gU@N&m+_1UB4 z0%FbrQ_N`DNW2-nA>Bsl)g%WYz&k9NESZC85h9jbF*QM8tOxtm-4^fiWMx{H6G_Av z5-RT@u_UHOKxm@^>h0&5gANDZ=9!r@*UFJeMkdNosXj&F5Ik2xB+#AMO1mOXb6l-v zC*xE$N)PhS?jb`G11x^;~g9K3vkzk)e)lVDE(yV**b z^xR;PlvN|wTO@3_3oK&c5G1U6w_0)WZD7eHcx^_Ik~g$WlV3no6#PF(xjsypBksbq z5=-0#;d)HPnQ|cdgtH}7PD==G5)cEvq8j}G&vnC7rdvLhr(G&QgP6x2@%T%8e+5_NJ5Y9WbaGd<&VS{pqvThr8AgZ`dE(wFKcOw&~9 zCTa!&i3SG}1Nv_@_2y=c#5}xg;TLodQz|4+`>t3#4a_q^AaTsCRN@K1glxr`0)fC? z|1`-6Joh7L10lWvV#E%j*cOi4hF2;o3_4s+BneT3Gdq7&&3n+vfH40 z|LET*T`^kLARP)RQsOm680LKl#wdd*kDe^Y*T|X-{vqO}ERG3i6EtN7>CuVXpd)h= zQ>i~2^b{nUsb>%wIZ;%CT#0FkFv&aAm%|F|9fCMi5BqAJ=0cT<`mLtk{xA{;b3rk4 zbrO8s4VriBfT3vuNC4VQYU*?_68xP*!k@6;j3}B0>DgZ~5s0zCFG|2-vOVHx5TC-R z9asb&C!S$%jimG`2^3?x#@QsqIofP`LswCjk0OeV6c8IodWQ}?K!n#UA9$%O2PpQR z1Zr>8?81UrJVKD@_4ez2!8gWF#OvO&L5qtU7e5kmqbLePcgZ!)A^S!d7yfB2;ZkEY ze|ocbD;Mv37wtB5P{XQ6L);NqDPVmQO5sPRRVUuj0DGH2JE)Ccc(3j@NVIy^;5u=S zH*xTY=vPwcL_BR_@4Ugg%ari$8az2oqdIqub1*nwFpPj60M&rb6cAxmS2kfy1d;ws zHQsrJBi%L(WRV@j7`(K+a94vXgzdkBDb>i;!2(C|i;akp?%FU0XBs1m252(}Eex}G zt5HY`hb-?1p>@gXaGlnQK}9^a5$_map+GVQW8uX|XcAU&j3bT_nNX~z7(@RcF4-0i zMwIvOA*aY4PkBFDKS8|fc|-RQ4c=ddPO}NMVYkn0(6Qwf%&71N44XBo&uH{B78|4G zzIbc|DlnkjiL+C}9%SzZqz`tq8o3cGxT%T0PRJgDo{-)H!%~@?7=63W*(aN`*YGhQ zeH{fyy_v&{!~*Z?-<{#Ta#Ym&VD~;{2IiJ$?gZ%!vPS@nc^H&B_{Z+vZ!bB(JAID| z@B9%_wC4E9bzbub|N9rTXHZc8ppa+wSZ+o;K{H1f-Xlkpmj#vQ!qX1w(Y*86v0oTyE7c-8@rAx=^Pf{54K(^KHKd-mHCc(ow6 zV0t!O@Eu}9MYCx@QlJ36nC>^?49xyQf+1mvjH!+Iv*A6t=MZ3T+n!VLyZ6{VMcn)C z*vd*Y1M5hcwCn>>isrUpwPu22V`ZE0?jD;u)EFn;00(v=wNkGGY=#@3k?85fP$Nca zY_?-e!)F8p%!(LHFbOR7icUe(@JpjO>i0ppm@1$@Qk0Hv zb>iN!JQUUF_>GTV^(V@B0NmAi4we)2XT*MTh#c`}@ z3Gnz~XhN#ojZFvNr(Oe}IDpzc5gZkdeUrWEu}`vxJpo?ND4-YTHb^%@Bf zm~OKuD`Fj!fyU^dlt>Z`o~XfX4Uy!81v-#OjL`Jv>~*#%Ui0N%*OKj{aqlvHFuKA! z@77AM@aSYOomj7=8RQ7$+bt7y^Wi6~?E_5ER=^Md-0opN?grgOY!uPy}j-+6jfAF!@m?m?8N z+p~xa=0RNW?w-0wDaflGSa&xfPIJLuQo4OSc+B8)hs3sBLAoFs#KdjtyxDV$yz{3$ zHi`HPxB?J?p&w)dlLP~xqT991&|e7pg50U3U`l-=QiH>z)936vxE#Y8T=?gdXQEq9 z+(L18V@=Dxy#;vNo6{di0ltMqDR|DKCv!R;9iw6Yp$M;ezrhD!H0QtqW|VX8)h}n{+FYAN{3?A*dqqXC`m?j3Obujr;HW--Hnj z81b$?pcuW^vTwEb)B&FX36CDQ?tcymrv=FG1_^~TPU<)57KMWEf`lsXZ!>Dj?(4GoS2sD*VaPs*+BG%+sKKmN#+KQQqf2s_-5yC-z^Rx4)orcIAEWT>VNHRIwp&QB5(I&uS0219J|xfb}n2z zeB6auT-+))dd~6vVkB{QhmoHwEx+ajz5Cv|(0k;#K0pdJjxhVokwt5)pWY$xsidbO zPn`Hc@HOz~-}HpAj$wJRpv5Sb3U;|y1yTHy*r36}I-%NsGW6e?aX{mbg_-w~Ii$!B|8P7ON3 z8+w{oAhDJKyW&cuCcLZ9>*KYZQ{6qo?%RpZ6~n%Q=kM>tv3FdV&#@PuTjJe!Mp_h6 zyF|4&^UR5*3eQ({;F(Fi(Gw?^$97!Qksqk_%wK&f%8<9*D>-ZL@0IhZvobmV@$2uE zbIny}$I(rY4^?03s;|PcT{&I#6-j-VuNkl2{palWeQ>$pyW+AgAlt{?VrgINHP5Q{ zwx1l)=>6265Aj|*w{H~kqf(9h*Qn+?qMBIq{0_|1a9MnAkruXnuYFdP_t$exR2~yP zsvd^lfBveEcj1X8-a)@B@*00x`27iWArtCDzt0frtdmQi+5FAP)!uIPF}(frSC!tC zzb?ev_Suyhgl})=MTL8*`Fb2p8MGXmmVl9HNN5ww@oIjAdJk3>T3cPu`Q(h%m#zzRin@u^GXlbS@fdmp3!33 zMMQlK8T~P43e&zBs-OTHJ&_D+J9Oa+AaBwQkX~#hy^&r)ATg;FOz+`&lMc`o1EB?i z<~Bnp)dTw>RzRAg^IB*<34A0wnrIG*x>O9-PPuE{jS`F2123H?Oz)*j$GT7e+M|$S zbfO>GRWzrfPQ$ucW$lPe#gjXU^k!bxCy_}wA>qXPdN*EHW(FbN;>-GE-<$JNR>dnR zWlrA8ctu{`VVCEY+&f<0DSdgoEHC}Cy!55CIC6Z3P+FNzm-N?#c7iwaB5_y_yX`YCb=8qs#9wgL^ujo(JVOuxk$6|$JQO7S;LT$rVY>=M za1s{!GaAnh$oi|s3RCgWW4+}|dRHA6$ ziSnpu!$MyzfTzsv<(=)-9&BI;b&Q2D#zIPs0U8bAj?q9;Xe3x{(P%K8Nd9PW2TY}5 z>3!&(#P~WM@5e5f86#xl-990qd0#E4%f@Y6Fn&l!92Cc_GP3t4g{YQB6BtK;4O&e&W5ebVxuR2Q51)jslrNhGz)m z`DLSv3<%3CZe=MXrF&I3R8@aRN=SO?8xCW}v==B~LZTqv!|S=cnrQ$bUTpcG?ECoT z2V~!`$_a1IdEc6oX4$H8@0c6+$d-O?!it+zdNyQ2!i*bU@}{ZTaw~4?sN>X|PROP_ zHvz96%G-k|l3|?!TO9`t$p$693z5#cxuVd_vWRZTG{R&G7GYkq;)sAR{EGR)f2mLJ z3i`C4_v9@Z@h*OA5_+$px0ZOnp68TM@oJLH^tD5Meb>B7Z_%y40Hd_BQytX0Uct%( zK|{x^1Qs(mNr2xHmLk~@@9O0>Iq}4Fx31c6&0(u97E!}3KhVVj2%4I={;+3Gs-5FH z+fkR?wr7lW(ZqG2us{Fi382*nZ=NI~-hsDYIyBI26C=vk&E#4QV9p4v2KwsfhpzI@11?;dD`Ws@S6w1)A968!eBdvAUg$FTwtg0=WWy`d1v1>e}9rR zELd)MQ6gNmC<#`NA<|&~tRN=SP^t3DfNWH8TK(CN(QB)yC#FWujtKJ(Z0a*QQywo! zMX(_4R30>@or>|6HZ2=jL9(iFwHXyXG>|CFFd?!U+UMfA8BdfAD;XKCsABqbH+sLi z`^7zi`m?o^)hkLn{NX0wRyk3r|xi+1fDh@+A?V2No!nh&%*~PWZ@)A zeu?b)d6h2Bv|uj-V|GfbCh-csTF451UaK_;Hcw!#*@oH6iF$I)pfqeO;QD|v@C(H1 z4`SXtnA4Qm3?G{`*j8!fK`Ow_FmFR=ONv|NzorCDo;fmRb_dqv%}_VP^qCSL?mWvue5X)uv#?ns_IGb!2O07}UpkpY2Qg^UpuODtDuE8(b! zWXa`nxVBezthr3G9|8NMv8Ue+^p)uq40PDy+WM|N=z-0P@j(SL^$_C?Pye$deQ1 z6b^KvaB{|cN5)YkfkOg%A_bX-MuXBdQ)f~4gwe$uL0{zTfe`>3P-P9qIG)wy-vA2} z#vC~wu#Gxv{0(6YhP}#l&M|P;z-U9=cAc`t!|8RnBgw6`2HD~A%2saW=z%e*U{LYY zm*^A*775tO2GkFCOGuoP?nrOhI>&kiwsshLb??vXt_Uo=@?GioTqa5qccO2YMpByn zPw(`He4U@q@s$7JFfjnxw%$Juze67Ahk|B4Fct3yKU$36J0BPzuJvc$D0-JXeiux&5qpU? z1@lT6rXtcfyyRbSqnIS_x#qEPR*>LAziEUhb{Ye>z7Tv7r2PcE`lgTzH>s0=9k{eN zZ`en?MzEZ*`&^7b@?No~IL4GSG5igCuA$Icru;V~xl5o(of(Hc*MDx7C=_%3*LN4C z;&uPvo5jQgN0YpO`mXbm5A7r7dOv@tzkDU)&q#=pe(TsHDxL%lVP+u&+6dw={?VZg z`SU~5M~{VXJKPM~VQPcp7WyDg9CZr@my0=&0zjq~W#lEU#QZ1ScE86mQJ#4BTRUd` z(#{>TcFlia$LyBw9>pK!pcrGl3yKBpcDOGrEb5-t?2HG#t7bg%d&cY#?3utIzZtId zVd94&j8&Qu8)aPxj*4l`eGr*6ceznt8&c6^)knxmIM#$l69FdBw%`fJ z5dL0;C;4eC#}fsI78-S-KT=#fK%g0kT(o$G<=Id|5zbC2m>M6~lW9zB@Qou=Dom() zmkG83t|KTS>sW?WAuPJe+b>L$Y?vom@K4>1s7W>q+Z#UAB)bvzRm`y%QJ5O>evMA! zj^AmH4X0_6C4RUN2!bC2v@W_kM$L?{D3b~%GjFz$?Hg%2HXKlUX)}VhkxHO;@su)y9Lxz#Rk@f>no-L(%8BI{u9w7>K}Q6Yg50(`3p7?BX(@QeC+X2@&L7Qjdy z%JLLX6__qabWn;*#m^z7@e3ih)$lJkN|Ys@&$56pcyr&DpMuMtaj0-aqyKe_s4-S8 z3z$ICKkx}LT)ga`|AZJ}JpBN3f)S&{RmkwjC{c?Hr#&g^@VMY!qZ)y;ek7*h%RNSv zfHgn&`#antmh%ggehHErD=l>)++pM}2WE zHg-;VuFu{LG+*koSvZ4-pvL|SmRhz;VjchhsbiHE&s zpW8!R=E=VuZr?}cStN;p;KKHL@1(y?1@gS6zl{^?{HuGLh2HW@hk8SvFG$~eD|)Ah zdWR%n46P?AfV(RQc$ET5a#DOu0p&RX^H(CEcTT{q6p+dZXrX}IS~gKYvArant#@k> zk`1_c6_WJJDdZ0nP>~bxI0f{{33!77Dsuw9rhvXV0ZadYfE>uu?!y$4Tga;v;N;}_ ziUM*G;N6CR-1gqlIp8l8VCR(aa_4}zDWH!%r33L7-Hwo494(@NTs+@H0lCe4mIA6F z8GQXh-}FcH(Lbk7e>DQAClgWb+1uzlN#9t3pr@arZ^A_aoF3or(>DPP5sJRQqHh9- z>^u0r`VM@f&oqcv^nELRm(e%zwL0B>hyr?10N5N7v}V6)BGTPAvfng*;OiPDQS12^ z4@_*25LdwPNeQr}Aummbr1zVb`hk%weyMM48(cW;tH^qEo%g4goSy9)9u2vgeGSAm zOccU?-TUmNy+Pk=>Rw*2i-)}SS7wQ)y_uW-B^Ioyd-X^mzm9lU|MMKVHtNM*J6A4@ zdY8QRThZc)w%>|3z2CK+D>kk9tnDB@N^2BIUsDo2y@&rX#=H1mYsGbI#{IiFCLZux zEm2neL9iKeJ*nAVj_}?KENaMC3^JSB1n%8>&Brx5_C+>$H-0%;+~hs7y<)GgVAzou zkXU?Up@a#I`3Dkb%4-VBqb(ajdBjery!F?7yc<*<*}}wE-u#a{Aj#zH*O3#hQJixX zL4ut&Ihg}U5V$KyV6w1wwKTC<7Hz5cut& zc+t=L`)6pPHjLe#-$eaKA`s~rt-!>F&&ohQ$b`B{U? z5j+79?z~652R0JA1+seDt&bwhYbL|n#K-~HZ0fIpjQC~Ufv@gi(bw4fiT4$y#4en zs$bn+UXq_EqBi5K@`i6Oi7qFSCVG9F06lESzA9tTNC;fJYGm7vf#Oe;clcNNc_HKM zD({A`28!n?Z~W^ZFIsiR*Iin*@auu%QS@d82Y z!oR%`|7(;Y+6e5^O`N%rSIS7$Els;DB?6NoU|kOkT+5R{&&(*uOad`~w}?pg?i|cK zpR!%V*}BBD28H6E={_C?NLB5_-N(a^OvT^beLQa~qw;Uz_$=uuu>GSVVvKjhr?o~a zQ1Ep=nfp$(YtK%LiZSx?sDD9J>?S*BNW{8k7#R~|{As2D(*YEDIf6c<@Dsk35d36Z zj1lvQdKY#sWR&Vc3jg*(B1+puxcD^UKWB;3&Yc1OZkx9gHH7_HZ)xRYcCC(i7MdI- zlqX2>2KEQd(X;;2gxDZ1_mAo!E)gI4%ib~iTvs6aiA((I0?{84`xS_>SOE6+FD?)% zao@T>6o`X`{8IRLy>ImPi+hS6Cq5-%h;*!^Kl2-lFyfx_w=NM-gH?xD3s!gps?SiX`@yFk*~30Anx7;5F5WA5I^}AAZoe+f^|Ae!_rcx zGPFgM9fQ@b5j_oLHL^M!gcb8EOGF>S`S=nsE8VE)C{^AHE0aZAI0;GIZHGOelhFdI z9z--l*%It7B%Mlo7^;8l*MbgMVr>TXcNm3YF>1K6{ZkeeY}m_Bj)D>FBcw(CdXq}o zf#Rnv;2lL4#N)6^0+k9S*%l_{3;g6^;y_un0g(+HaFRzXh7xHEcpcgdw(t-CSEXWT z`f2h3Q02R-V9i|s-8(r_2O5=Cfo5qNc3Eu>%pqI?89R1h*-Se)g0#RHXU(K*MYN7> z0~{TNo}82_E0l_c0%N4uK)Jw~>Gvyx?jhnISSIRk>?s%n4?3uVd%3AYaNF~b!={+LnU<5Y$gU=Czja97t^p8CUqw!h)u5-i~qxH|M z^LYOp(TK$7|CV(gt9~oSB2V%Un75zuW9N$fDp*m$b42lIc{<1$i*l%3A(A!vr=KeZ zLl3g_T+zFH$Dgn|iehzyJ*q$)AF2>`qIRp_dal?LN|5O9#7W{V|L)twv3mrGFC;xR zPXwTc{IV&=AoU0~Y|+x<2_GD15Vd&t@5TO5k^KJm;$&z${{4F~2oU!?Pn1Kuz8m%m zAaM10VlOB^-aSv8L5k}zF-YQPDCatV_W5F*pK`?ELwE0X%pQk?1G^b5{_T#q1(=_i z6qR_Ksvehvn((zcDaz7pmS8KP?uM~VgU>d|jG(A%Ac&7Q=m;_q#3vkd1X&2;!wouu zXv+trFy8P9MG8)Zaia+0^A0*v#nK4lGY>k#;t1-QpEH3VKKq~}RSyKQA+#f?06{(S zGujB^a}P495^hfffiwcZ(hONIgkgJ1F0h3N;u8)!auy*d*w0A1A-G+;#Rvi|7btW30YJ;c32U1fPXJYY5-JAJDV(Qw=Ct|5rb3Um@b3Soo zMLEU-S!Nc-FnNe@0r!%7?TugzAB5~}esZuV?nP5X4XJkpISXN|E%4v(FRm=g*^RgW z%n^E2`yv0T0iy5dr7`aDOkMb--p=_1i_iUpra5Ha;O{*|3_ReSn^5`Ns2ny$aFQ6t zH8E8z*r2ZLe!BdS=IjC8F@U27iq(5Hyx$yh3*76!#3O+g#_Qc3SL6M?$M6G35ek@3 zJ8zfM%7WFJ7iyW!v;LGCF)9r^3G<>3F94`zj)cWD*gFfk5eeqeya5$BX}(zgzLAC;B^F|PZ4+9Fw5Wh{w`6zQ z_JDhVJDi%u+iku3hV&^V)=Xys1$%3$CII%8-&89qi35OIqW<%>Vz|6f_iuyd?EfF! z|5ps|Rm(BH-v1$k`|1Ds;GRQ+``_PxaQE+SaI*<{RTMOvS(|jR?YDF>A#b{yg{c25 z+x~7{1t&Jt0C$tB$#sP00CGUjSm$rwL+s_-r{h?K?rd_KGaeIclRLqf2ZI{?C4Pu8 z&UzdseG)?bt)s={!2EWnGQR~;|5upbM%HzfJQ;x>VCI>$LOJty!J<$W&Oc=-w0jHZ z#wBD-fd5Ipg|qGcAB@!hofgi~yFf8~LA#>3zS_Uz8ly7NmbWekC7p!T(B7T_Cm;Vf z&lqgXW197^_Kd^CKm4Bih*`#h#~8z}HyG=Xc-RzPmJGWVJMJ5=yU?KJ)ESQ%Gf==I zj~Tu3`1)Fd)=teA8dW7vZvfd^!P?1y4H-wQ*_-@huQQGjP5#U|#w~a}_j7Td6{Nh- z7k@T-_u{n~8<9z(fE4|NKVzZ6%kx1R&)KW(?uD; zcx{nUg@w~si;TC6RXRtX5}SgbGokpQgjZf-9E`=(YnK=s@)lF54hotB#H>BKNA>0m zHN(Za3#ygJ&iX7dck4>kh28FGVjTa6vD+h#Qil2_b#M=QI%BB+6etdMv~LXLM4UK4 zraGuJu=t?u{y1baI3S3GsLW9#(0PXyL%BNJ2i-H2&3O#v1Y^m%AIwSqx3K37!h@5N zauEI=A-s*1No@hbD?1~66A=CuN9H5EIY9W^yFmEH4B6*%@GbZKV7&kD-k-0ZFZv3Yczy}D)CK-^r-&tmS#1K&bA_Lo zZm*5{Q+_Fam!C{LW<3Ru%-no6FW#CG+e}hK4iDP%>oJAWD@_e&8J7vKcJt$H6X32J` zIQ^BoU_9&doa0U~9{=MH<~aXbIDJ>M4GZF1iOnawTP2?R8__2*Z&&K}d5p@Hf6l35ZhD{2yot8>*q;#~c0D;8 zXPHd*1i%dLWHmP1x;RdLOyxB3fM@-dbSvu-vKr%kB#-|R9Ce&IMH;M(#wo~5jnl*1 z*oQJGytPZ=?^EG0M3MefF%vF)1qx@=5)Kcjr=2K43v$aY7SjLSZ(#MjX;+lHUM*~L z4MlVRlPR~ZdvAHBTu0#=zOh{>H(0E{vafJ6C$wp|4ayXO9cF?i{nP0&HnflWny4OQ96`H`hT{ufrDU+g ze!u@FK#?X~hj(eXjZ|4+bQ84obRPEYlp!9*O$5Uy2VkjJ3$HkX zTc&BdkZ_^0*hE{kuD_MerrwA>y-p}o5Sblm6AxOBx~SN)I;{aOj)fgp^fY-Vk#M)* zuxq{>L%3^c8x_rl*rz>OzD1}~cVo2CD`b+@@c6=88pmAl5vKG3q~csp6#>&D?h%2H zJi>uC9K$NY-ycQ)pVIu_@mCD%?+i29r+WL__h4o!`)5Qd3S+4@w`YlWz%p zV!INOp*`*nUe(dI6hmEff~_>rqQcpUo?6e*5?dMZ0wfR$+QR<$Tg4vmA36P2@$qPIw-}Aby8~xkDu11#S4>GF$1NCn^F&W|j z9wy7?Zz0PiyCBQWd9rhMQ)I(`n!?#XvPBdnw$UjD>;lmJAYPR>h)*yU{J+0u^B4bB z3`}~2mLhTvN*2)6YO6cjFgao(gF9%{f7UT}Ti2siJcmP#{kG@Cd}v#L`8RQ=NUW=T zUQ|mFUFW_i9>rBA>-3GH65oFEA8yv?N4~GEQP}V2(gs}y4}tpHU&(gX*(|K#<{x z9je*{4$zSk>7Uba*iM?{4RzX1_PExLb9QjD4Ni%dCokZ-uS20pn2TRK%tnTp_k za&c3K8$L6Z4B=`klId95u|GB(?5`#{MC@Nd7?4>|;F5**0Z-Z5`BE$#fwSE|{hy+Q z_S{rl>FH6 zUw;iog^&FqZ5+CPn;2x^YA@JU{h@85vOFIwy5@>82qZPNiPYfS=m1TiOez4$h6gQF zcZ7ZHf88dk(;deh5oREa31@fw~AEp$m3k%3iD=L}#m6Ocn!q-By}E%9BFiP4m9 zb5L9hc8KA+Gt?AQmv}J|p>hW+8|n<4REsCJIry)5hP9z;ofVVEEFj zf8Lwow4w*G!3FCDEqz`7_G3V_zZKMF&=V(?NYM|CU=gPIfp%u2qdPMQ&6u^&lp_W$-5mRFAK82>EB}TD8B1#FhRn1nL#O@2UDgmI9U)G zFZB0%ThyGy_oj^}euq3a8RTT2?Lh7aPLMZFk#Ga}Cr+a1s3z#&jvO5MASD~l(D={1 zElP1py8rImqOusH6nPm~@N<5Rm-vmFMPIt|2j5&P24Rp2j~o0$H;dtWaUQPbn{bxc zXtw|s*}#f|KOilp5H6`k734Q>7X8Nr{T`*{jBdKsj@-f_@?_tFd+Y4_AtAy{lM(OX zSG^-DdaRe^K(46oo3KCi9WfyNHTn7Gqny6!>b4+dKp{*(LC_cE4XhB6A3HMJ8%V&$ znShLgamCCMQ4?nqb3tbm8MJFaApqfg3*LkN>+gt?^i9+QJb1X(!IgAeUq|Ig0`{2? z@C`)LS>W-;gw8lu8xQQ&nG{4jREeUY06(03@w&6$6{|%2UB&H*nZD}}+9C#)1Tzl! zB4@@elMqZk_J6TO^p{^5{*_xqMQj`G7NLy}_7;Eb7V+brVEJ?}6<0>--}C#tFAk;j zzj_~gckcI>zAw%c_xbh*;&FJ3z4(C`JG2Q17!r!2aZMeAGy^Vk?i&b2it29g_xezj z#(11CjV;=2*wc_uHJ3&+v3>Kpx;!pkoTg9kh zxR#HRXk)5iB++>v!d{LFu|)=NH!2iz|A3a7wu*`3CV%Tzai(mD`X_!Q_8U!}HiB-` z3qc5iOM9D^d#D+X@d7`>8F?r^1v@&}76csG=Kt#>F;BGnr+zGI`ecjX>`>V8sc2Ji z%MFsg<*)r%jPLm#Z9Kz8J2)jDK5qi36`zQaX5RYxIFt?*qKzYlW3KKx0feOUCJ5;eiItKBO9cU)dcxPqap}16 zFQtyS1>DsB4N!cwt6LRUB7k7VIiLy-yLJNA<=BNT9oRy}pf@PHQkU`BGpZ2(=ugD} zG{v9$sn{>AFuoNy7!qpJfbm{a6XXcNXK_*?D1!8D(w#v4H%BKfLsw2SNbR`d8ZbL@ zSm*+MoET3puLCthLT_rWeb$+@9}M><(f;fxAeLfdaphMIc&P2s<@U5qX4Nzodeoe0B&M1`>d{?_x2!jhs>ZQOQA zOIt3>ejpsX)L==vPmzmrW|(P1+DxH8-BJkAeSTxi@=y89nCw@5CDsYyk2uE|;D7Oz z*u9Q+M+tWi@LM@C^UnpRb%&_KVGSG(8xCQuq_fb0ORDXS*!k-(+h&yXQ!69{RS_9s zDTUX;c((9HC%il@{eSa)oE!Z|zZPrcSHl1GtD58c--u)7wx0g!VL5@GO<|dopY`+~ zk+RzES)UAnQE@X&7qM6WO)D+d&f@c402!9v^;{K7b2M2luJrdZawqob0^Oh zE&f6w2TGvw5h2Hlwskv%ObL0l?mI7PzgTyP202Px01hJWFb!URI3`JSIHx;XQK=^VD zckE#>j7Em|b#d8O*uE2&#c3!?uGb-u=N5}J3`~zO6DTj|k$169=gWkkx3QlWYO63p z&s95wRUq#SRr76lwCn}Rt1nA@xl2Hmv-*nD%nn6P} zbqt*XrL=_zI92KJC@QNfoKGYM0Ou1S;FTkpMPz9RzzY&%C5;`@X~6#~8H$H+gm5n~ zKH_>DsOYo23}H0th+7Avj-+e5&~N&!G0FdB4_UnK>*uv`Lfopx@U1+CMKJD`2fPMP z<~7Th*YxYTJfGPhnwX72EXKZ64ZM}Ayp@W(%zRZ#Ik!>s+A-GYKGRq(yzM;P{e~WL zkMs!T5EmS|N8=DC1zzA0WnP3f)1(ITr-NYL&02;Wr2oYhZkjRd<0uJk-;M3BPVZ~Y zoZX7i2}H*1ImF>1dSVO`QZA;e@<>=t0(TH{v5u=F{y@_hF)XYKF&zycEb_vHesRD& z>%dSXmdpw)+@U37DI^076isUu>ccCkpJ<^^)73l~1H9*xY1j$i#im_H)@e?Rn(ogk zkflY)mD5s^AnkhpN?VpdL*1*V98`Q2ngA>$38l1Pp$ReS&+I8n_A6Bod`*Oq18C8GnDUI2;tFv#{s5j_^pXW2)Z7&;jYV1@0uc*LpIwWis(6}RMLIC_g zni!wHB%8QJoe+;&=4DIVp-Q|o6QD+}I>`Pq4#d2b3faL_1lcA7>He9Q`6_QC@bwZA z0N}hLlhXpR7CGC?np=YSGWfM0S=fP)7G0dFDu z8#D{Rkc3r&b5;>VLoO7vQMUb8Ek&G&F8TKDQn|1EfxKJ^E7G}2D^&y<6e#{7cbvM-?k$HoH+1kC zVgt-;9vCkZfxix}$=N!p7bHhwBGl8Qe5IbAFfrW6MhI~a@PZ*BeQZegFBoD}rQxv^ zBJ~)UN(KZP=X9JYrNxkL)xmr657)SaQs5ThQ2qfMbO(To`{+YzuEjmJTpb;bh!S|x zjb_5YFQMWH`ISSBqJebg009=H3`hqU1u@R0LUBKO2nx0>6>^Y&!BC@eZ`#<;EM_Q9 zz|rX31*kbPVOyX|MIax)l@0s|r6G`)9h?0#DrI3h8&`{iM>Lv4xe!`k(9}quZ!uE9 z<}W1<-OgWw>+Q?vYX^UgskbkuFQAXuH?ckNE}TsOO@^Smm+5K*9O1y9SdxGdToQ-18Eop(Mq`q5!?c|na3EG2zgL&JBA4?SXHvThGqfe zc4h&jW?~wjhvhMsuk(qxZUl|wqZC^8G_T}nKH}4K;VcDmrPFkwrU+KX8Ki<~G=VYJ z09=NF0Ol(n7;~rr&R_V&5eq>Jcr~2u-$`y9CGz?=8}=?nX@a(Vvab?Ne~^XBS0|nNme7C!yxh8s!rSuI);0IjKIWCsBj1bOz7YpydX{Vm9caI z70L8F2G>iY_Z+f$DeVs&(&$oVXg@O{HFTjg&Ec64e6aZxlc3#56ta-Inz%9+SfIA6 zDU6h@$V1#aLmk(Ehrw|znFe{#lV)_>rhs@5JNl0LjJ(HevT4_9!;?L!)G^%D6`XFo zqHOZiS`NB!dcx_Ao&|7*qbIIg+eVdBAL4Q#K!dKu_e9*DfMp-`^B&1C%SlJ3BJLho z!@IjD!@27M7uQ150ygU4XrLJ|#Ln(mA!Ha9tz;KaJuMg-JVenJ*!tdVc&LzR|nlMahL6i^#+3pqu+0Bu=7Zo*LP<>_w9 z+DX=-$g0I~B#++FE>{4{psf^LB97}Tie>}RVK=NAh-I2i%d|}UHiv?Kg9{zfMr1Goyb zCS^jr<^L1XRvI;o2*G24PLiU0!0#HVMeO)$VZZ@LeHV___1qK7JK^g?0YMnK4AP>663dUL)0vo0;64~619npkS zn)*VMWUK>NJqBzSO!@|Y1#_J69nj=aQzF1OPd6ZT)c6)?(kH-|Gh0HXxir}Znxu1v zgI-MMbR#ae(G@}Fb|-F);ScZV_#C^44`x(x?3 z0QRQ{hFp}gnklIisa4ofdl4% z!lbEqQ`c-*EPiV?%zct1&{iJsAOkfwV(8JzhWDUyeil|zN@!5S-prj#v*`nA0^I`P zCO6@ie<9Cct<{~OXH(Uf{kOBX@ z56_bB8**5{b8}FVQ)Z|6rA)OXm~y*zX|wJQ!^|f=@iTO47_)f3D@d^piCg!3)?hM) zO9>W2IMb3G!qptup+(~{M;inbQ?11S)s>J89Cd^b#farm&g_9^k&d`6e86R=g0LFE zv6w_^pnGtAln+{iAe!xfjshk@GSBIItwR*$?u0Wwy0e3yW!V_+dhOs$n&MPLLILN} zh*MGTrHRiC3B63*PD!y4p)s~eKH|yU?E_5q$YUMEKmajBAK(rW1QtJ9PdCSPSHgxDNT9jXq~-tfG|X<)7@xz>GoD-a!%({3-1kMPDYSZ zGZp0ohljw3MPoEGi72um0?rCLIfO=>k@w9q16PPsv_@xx@=jPWI!*kSvDOjwK6*)U zW&%PDf1+t#9Pv?|3|a??z5~yt7%v1BuIJ{OA8T=an!+{TpT;IQ+@Hqs?iQKmiBy}X zDRO)tT{0x}A$|jD#AY0I!d^g)4p5)tu&7W^V;Httc38sDCN}|=)}^4s1Q{jR+eLfE zX$hByz;wZU_!VVD&iJ27ZhH6R{$H3f`1r(+dcAU>Vju@wM{xFvIx0D$+PVy9J7 zusZ#31A=@y0`5d$tS3FFV=3&VRsVNj;XPs}|C3nY>I3qwN~Qx2r2rsX^5-1@e3Cy4 zYzfxq?rSXQ(^3{>r-XS8LOnAntciG0jwzIT3{xnY&piax)@s{=9(tALQ0UcYwBwF4 zr9%eW=V_EkTro#r0)s81B7k~8F~@-4(Lhtm=SY^#cbRPir{nyoGc!{{r9lH4US_Hz zI%Y$JbebPG^Y^z-kl%ZLtRO7G0R~uct3i_%FMb-%Nm_7$?K?u2@&M6nI>nWd$R549 zZ8@a_S?zhqVtoqD+TR-}I3M)~EGEHX;?m9kuYnl=U|882a0^l+;aKZ#+f_@ea;8L3 zU|03fKorFqQ$_Gp(z`%yw?%bT6CH|mkLA{&j6lUiyz6_G!9~=f2qwW+{rhUE1|ciY zlpQTNVkZq4_3gOW4J9#2e}5nb(~0!bZDd`~)5`M%HWhxMMM=QHFjjI$??#9=#K&24 zL~MrDwagBQ7xW}-wq~qElTp6lNmw4RvJ2o8T-Vc5M=!};f*wXFcT~yI9mJ>BV}>_>**bb`ymF3 z6MHdzvj3agfSgO{6Z9~9q^vla6!XLn$Ud1Z2zQ-PFvv3G!lsBOux1_BMH;Iiw=@V- zW-A1sJ*4|r&7r{vJ0j5c#t38IsknfbybKV;=X9YcWrkx`Ymz;Gp%5lt9U6ECuxSC( zI#p_=bo)J!x&OtUvZ^=OHW*RHi3uR5;4SQ!_4WpT_*j|pN7u(Rv`?6 ztqrg#6F0P{l0bs!Z~MpXC9Bd!NfRK2Ve!<^_Y4y3cQBCR(no9$ca`^V7)vEcMC9L4 z&&z7QcL26_Si(Thm3YARScWpt6I77>8GPhuTMchP*T@we$O^2i8>OAGvike(Df`2< zn&9>4>?w<3cVD!pti~n75A7*?&uD;-A;iZSU>F9tRo$)7`w6O{H-e4yyP-44QtpKJ z#~sX2jSGr}YifY?kl(hqEVkR3(`eKtBEWWk`dE-vgY;*QmA`^R!fRt?@sKDw9V$*X z^S}yAL;}Q6sH9L<95dM=H0CGADZ}riaq@W>eoMxy&pJH!Ci0093t-DETuyi`LyfU7 zlmwz1SFsTHc{*Veae%8v&A)cM{2k7J>$#VlCa(8?yce_p7s++k>?KbW;%5H#hwUwo ztIm*O=KQA4q__fd7n9=1os#0CI7Yz%FSp>LM&mb&BY3P0t&@Gz;Hc=wdmOoUx*r`k z(N2zz)IUVrgF%Lb66%ot_AOzjzq?AFk{m)qR;y1A#S^PNtlyF)cx^z?06by9N)E&m zE0yFh5^mzj8hm0Ml1ibtk0S!BK@BJ_NZ!Gr5@NR**T5?Z{!2Rk+Q^Yoz z981qnWO5umm70JY8=Rq7^PwM!T@i@r2iQe92wcq_orKXoMK%`PA%o-WLwsv-ift@z zV>VzoqUWivG^jX*&xULy7>}AVQ9hIjTsC-z2;}&ql9QZ~5d23$1UoW0&G~V1igS2! zU+0MAKF%J=gfkjqZyl5vM<*vcW0O&5T(a8PGZ}NnU|jqp>B57-t%EW$fvBk{DqV=O zicr>mDC;1UH3MZGjIw&8tYVba6J=boW$7q}lPIT>n4 z2m`gSreZ3|(4Pc{&D2m(0EawdTU8mXXf(8lBdG}k#Mc>u)$G!etth2xXJ(B&e~bzpHC z%7IxB9F6SN7|I6u5yGy3>x%4$;2MH`yy#o@o2y0&VpJ%dNR>-&)RMr|E}&otpqzJ( zO&;PLM^~3*8UY8&KVk@t!Vqx|n*`fW!|8M8qH|G0gO-{E<7IlKS|(xa974euGpM*$ zqGE0~#tNFvJ;IhIG~cCf3=Pc5JTyw3Nh_1MYm)|Ar^>O?%MKNd983`aU)CJ(()UKl zr8Or60l4%eCtw{hfegF>xZeuKJng%eknX-ED54~Xrn1xoJDDQu;$je8E|lvT%6VF9 zGMj|4GG~S~D?sY;0a7OsoRw5pkhnCtQ)OU*AJKgrjB(ft z8Nmh=0U{q0AW%n`XI4Sag=l_qswyaDB@3NN$wM70*_T2Zv0Elt*wQq6;y{*+!`y>yh#LKl*A_-588q60dJz4DN$t0y%t)=!O&*dBlW6q&mXCT1Inv} znV?OL&oq|#Wq^b{Uu@)Nc1y$>=x74Ai?ux|N73I9%P9;89npfH6r%{l>NiMuKafgF zQ3OI-&kcm5OFONSGhDiZYojZ`#RIM#$#QKtL@>t%&(48MvQE5&?v4Wppa}&RmAfsl z|1la6NoZjBFlV568&nATafp4bBn#;SSAv|dANLm5{bHqhx^2hDkI6Q&g47}CwTN+Czur3O;@m9%MT)gqJ8N-66 z4T@DV1Qj?LVJvSXqwbhw0dcC#Sj0SgoHLAb6Eh^N@!%s-4+Doeub?Nm2y%h(rg=K& z`HV9_;;44_M5*x8%q^81C!nq)co;JEtqf_5Jl-*aScjk`MGd>WaV15n?rfd8Ri=@S z>l}+ZX&Z*qU!4+)YZ%GZeS}(zw(AfKAX}0&MqDH#jS%=IUcBNGjni&J+DJj=h)6^@(y z5x)0g?aX%*Ss;IvIfF=eI}DKQrc{@TivT4&p?4!3lsbcg91|hF?WVMrDwl&TRuSi? z8Nea?wM%x-LLbuX$YLH$PD;L1Ui6kuVfk;{2Lua$Rhk1H3Wn8Ys0H2a=begZr zoCA`_IEN&Ub@oXfhlc;usiiKM$rE8k-presbB*L6=Me6I1F{{E-Y0c%@-Xg#-7v$d zSyoR@bjr9BvKm5us^fnx8cojAnQoMSrfdO5;Ro6Sv5K=m9)&R?- zH*z;sVK|+DbxL6jMQ5^##ae*8z<-2kpCB3zkFWkCFCyP3Q;W?X3-t^2O>7=Mt(D8c!~!oWfT7C0Bq%q5 zXHevlT=?7t!54w(HpW<9A@W+m;oyom*1!e0o2pjp}~Ms;ZQ_y-I>=2 zMXyJ6;Dt}qLQ{-VuEJD770wU3iP4H740Qs{33#puKv_+oz~?QVW^q*E_tFf034N-y zz%RroVu}>D6Z|SnW)W#-+|yL4S7sWh6E%Q*iA6yE!95>nLppP`1oWsWqPyn2hRFqJ zO3*BAJ>FY@A&8R!^-&LI>J6I5%|!EfC9xLGq%uuq>1v754sT*is(l9hJcGRrtAJHA z7o)3)DWcIR7M0>1cyybQD%dSRVrgSUH3YcIWF>VYw*v)c!l;Pl82a;wo6 z)9Vjo6CBD70E20P4#dXHGEVd$wl_}1@xb(kJt35NUZhSGVf@sQz~lcwXY zR5s>LX=$h_Ld&L&!|e#`89L+}M;3z^FeI;DMo7C0G;G z5Kyeb%F5ttl+42jJl(+mokX2Rb4U+5%{W9hQ0hdCN$NJtT{@fu(FE?^P&^fLO5x}U zDT8{1T-=Vt?iDPAN6UzoX|2|AcufY&m>6~YQawI^ zFx49EU?Kqv0kIMdZ#Hv=wBi*lQAL<-IAxjXJiW~%>SdmxwVP@%J&qk=1WSuaB593$ z+GNF&)=DZAd~d|Sr{^Y9Eef`nG&pNyGf9IycG#NSfQ^##c)tHXtepvfRK>OT``+rF zec-arut|4|I;bcvQQ{Wv#C=a<-gC)fd@o-T@R_*0BpPE6N(dU4QINtVIwmT(f=e7! z)RCZ~qK=A+xDD=W1O-I}`F{VZ+da)V@baE0T>sFm}>eQ)I=bWkv-I|EnYz^LN zbxLHg$Fa4be%38`e3w!8aSBXrDSw9iB_@I_LG*S)uDnrejZ*#aEqv^TEM{HgDH3cS znxBLAqI1%9qeQbsrS>R{N$p?1d1?I!?Q=jMgL7mnWs^P`o#pCjtlv^4`=2xe*1fD`+oXyZmqXZj1v$F!)Ni8s5{z> z@2zUy{9mhfH5XD&t4PF(lRpxyzSM41h#r7rTiN>#HPi_RO(}|vb9jATa2_F&CbTK` zYtJ3L#=`GP-;hh<0-HQ}s`pACCo=k=F*u`_2aK_x95BSRm+^~m_&c^OF>U3(_0BcW z!H6f8=KJz5TNx<|^Ca4&9n&*oiby_AX}KDbMlv7SGL8$Pe-sx6h%)hm=bAA>(<4bC zMih-9NTFm5nP+wln;1iwOBH(=1CAR*Tqme0`1<0k_akVnL{U(+1@*(dqzcDNa9tI+ zp5ZW}2Yf|lVetJYWS0B9TV|EC0!CIm_bhxx9wnNBm)K|mUT7h1{6HQ54>HTi0Av<2 ziB-fsWEQf@$+SdP6&R3R+w>GxH4Oh{!b-?VbExV$)H^Av$yT>)t6=6-$NBa2>N0Y+ z2KAej%b5!uISU~p1mdxbn~$x}iJSjZaQ5u!yy@<4-E``;r@Ow3c!3NXh!+BIOY-IC zh59V7*RZ^&I0*czw{EUXUcwZG8Y&8DbQ%YRlQ3msC6Ou>NEKQ`y~s-y;$KQ)r6s5z z$tnPb+@QBAMe+YrmCj9}D!nvOtGSZOTTarXt(tyaNFpP(0-`8RW(M_mZt!LY8x<(d zvr{Heps^cvDkY#?%fnV;=bp+T!orPi^mNB|Y)!g}F27-4r{Ait)8%{Z>j)wV2n@cS zOWhnC!GON#`g+38ajtHJV>yR$!7C+QLH!Wl*VWUP`<^~r*}N7~97;PX>oHcviyTcC zZ`f5ALema+aAPz#l*o`mAo~K0GCEvXsd-BmK?u; zHR24O8BowX{s`ETw7f4*!pB2VApDa;phS$^(AUc&VF+`pI)b zTbJVXY@g!$VsT>Vy1&;cUEiOb^dC>D*@0_!0!6g%Rnp=zyicuV6GPY11dW~M8IegM zAW(b}-FTi$=`2g>a4CRU%;QK%6KTfy)j0rR58e%4j;)^us9C-~xurlXV2pu*l*fX&ke8lCyVyL_ z`Bdo@(P>(F8sLBjhPTUj=k1_=pcf1Jm1uY;=#xf0HZG<>)YZ(TG&>|Ffrdf!CN>Ja zoRi3csfF5-FdzfdC%TL>oRx`*bd$Jnh9q{-01l*ueOc6ImRzH{s$JThOhMsVhHcDj6&~w(72YJ$QK2p*fsR2dVK$!CiWR;U zHRVqfZ-#Ao64Ay{-{paD84C%+I-3D!3^_|em#*}MrMe>6JA=B-#8E4fUWm~fZW@zX z5!ClD_C!6eO!}egvLe5PO{pJ3e$U+MhsbBWoZ|z(rq*gi76Is0`dZx;3#>$@3vwwI zR^q{dWZ#tVcZE}*m+p>A6u#G2O7rr+e!%~+I2WQ)1g^wrM5z3;Qj_*iMv4u4e?p!F zgA#R4b3rkVI!>fBVetL8($B>G#A39;7}D2CPv^g0Qzkvv1oeG*Uv_sIW{4_w-A&-pNff;mQ^1pwp0o9gS;;t!Qn(vqNf#P zUsii3iW&{pQHe|_tK0WOho87YrUt1;#WTnBwbQD)X!CfI{PPHFzin?3r4kQf{@Z{D z4a<|h3hFNYYp;a$A_lsWL)WBLyZ)t)1r*xLLUUZivu4Avxg0>m1(c~$@fOPvt(E+_rQ1-Ee)#Zb5gOad#v04TUZ5?*5%R-%z z+{^4D#(db#rL`Ygx@cI7S?K8nmNNNW%rt2zR*Or9y zN-17T(HyPYG*t*CgHTflrJKUmJlUy}(fN5`dm@9~Bk=1h5ZhF;AvF>1q$Si$2*L_ebui%1pcU1cfB+^joAO{01B?21CRPqxm*x!~UcTWxUXn$5Y8%128_46U)- z$ZLJg-Z$QX)u(u)U2nB~4D+R&EM+!N7>d475SNvD_NcPH;P$L_{0vOa&Fx&DG7h-r zF3utSR9sk>Qv75btcxk4upESooY8rnvrJPEuM2sAQ`5|KiA?KB%(EGp(!5WV(v;TU zrKzMvCO^R0Fx^ll;0NsL_WUMZrN3I&dHeeLyHN?JJNM>rke-kzbZ`=2N6JB+YVlS%D3*2cl>`vfL zo6#1&gkMXWjgIR}e5rgm3dTckB@K4dKGtrNQ(5{n6q9D3`)#-x8~*wNjo%j9@6ynt zz^|5Lw>mYv;#=KkE)iE-<3V7K8=XcK%v80TaP(TW+qjW+A#QVFj34gGqP*8^)oI}` zs^9V%(i7~;Q!57A^G^$h@0CDU0;5r9ZBgjJ2_F8&3ANE_rE>S;4eP(U%YF5<@U&o- z{o(Jz9XQkHg5R;~>qdLc??M~gWcNHhj5%?ma5{UhPPdny9$v|b7rXsFY^p}9r&nsZ z*2Le3;~E|u9u8$85HTFBHGT~e%4}+az3<)hu)>jUwmc?vR2=vjvG;gPa%SDb<*=2< zLw%eR8m{Cj#+a?q6EFVNl9>pJHeJK`O2ZkhH|ia(2!7i#6QV14L<3YX0vq5}u`_-} zE!&57RA^ya)joxK!dCnTthn)>^fk^3!)Av?iJ>mt#<8v|D&j(}ANg2q&Fb%PJdD~e zCN9beSXbo=W@BYl)(7Eud=8Ozr;j-3EN}LyCrU>5r!dDi*@DStIKqlqUYtIJD}^6V zkdld?pY}=mfY_WO^LRF5m=EO{=>S$fCetqAqN=#cFDhIp4CYdQMOJdL1D5y#Es!WF zgOR}~QniTy^c<@`!PbcfJTMMjHmT%>m4YC`r5{{DM^f&ga(vhAgR8qP9&|uG?sjg1 zU#sr?5FPq4V4r%(5Vr(+sON$BA9h~OHMr}9TqCcazm&bJUTh zj&v4Bln6`iB+hi$dd%yK)IWnOtkI$J=hX0kOCa(&cKi13(@OH%TEvNgoV zX8Rm)65#aut0#Sm8mnR-zN=7cz+mF}q+M9jbV_ZmmREgkt|dL7&{sUs z7ql4Kai@@;t&7-H6$Uw2p>$2*{&ZU^k=Z~Ivwi$Zcd9;&D*94^c>WMqohoB{P3@h@ zQVD3G$3Z-1`AOx6lJOvDQU}fzaK^y6vjAoDHCaAMoP}V!r=Dz)_iPP+JUu8ARLTiF6xGKdXeYjzek=fvS~z>!`C+Bv;59NRbw2?=p%GNlS-pnC(!QoNc{27_AF$G=K3lIC z7*V-!@&q;Iig0L_Hk+91Yri-v98O3|a0t4$>$&2J=ySiBssaZSQ94(mReY*A_*C?T zYutr~T4>!4!E#B z_vU~+;o(M@X`YadGZKyv$_0zL#>J=P3Qo2?O2WtxYrIWQh!;CKO@SK10G{;fBoTqM zui`mb2ghoXg1Fpe@UQ6tHX{4eA25 zf}oL}1YHmxwb4q%1A0z$yVey8c19@w8v44yr-^|EjYHmpD!937A}>yet`c$Cd6tf# zW@*ht>uD!J;Odv4&)2A_B)IcYu1W;Q>%?xJd9!`+Nk4V@400LP&|---{nXwSad?V~ z%x7E{q{Bf#r*u}KqwV^a749V-zbqS^)*e7H6#!N{G2dr*3Wi$=?9$Z<>fEV&(vS7!T8 zV7&4q15fo~p@a|y>O9j9ZEPE!(xBA}>JusgS$@g{Wy{vu@BEQ9`mdap&eW{xN3+4! zEBe`goR%J3@T4$t?Ex?)12oVl=sBsAXca|3p!f8Q4-TTMxUO?~h8-hA1~Zx2d90Sd%#7h886H!HwL}B-eO*7ks}P&!!k$N(54Eh>S0wH|*Y|#Ua zn!?0k!wuBhh(~NyK?O-7R*f*b_qHp^Amn7XsQ?s>h91Rwpq4E(`QdKSkWm~t1lTz{ zd=?URFs%Y761yC-a)ttD(>I5@s`E z+aUVbwNnSdSQ_@+!Djqoj4#jML4FQ33uUMaqSYF~sW42FCAm0hUp+UFY%yZ5Pjm3JJ2ZIq)nRV4Q^8cslB*k>F7jqdl?D6 zol6PC==D$)E7gbwzq(2gh$ z9MY#I_uBAmO~AJcDI?<)2ZyWj&1N%(`N}sO_k*rnji%1_&*!qQ#w^?Kyl^KbeEXaiUdmG!Pc`%t zCb)};ma->a7;a90etdrTEiRMJXA_XQ_F7$L*+HJK{%?r zfI;@~)^MP`?SimBSsqlDx%QI_!X_>wTf^Zb?$OF=RJYjQw7OF6X$6{F?8?^ga0+X_ zkbOvI*`Hs?YLhwk;tK(S!zM3upMQBFpU<(wE~3m^?LilXQ@X3I@zs8K5!K#m!)f6Z zN;!KPId8LfP7C+u^5wKJ=JWB>vDM7A$4z&L{ZW@$?Ke&jj|hU>Z7?I;a=2fNk%fvh z*C||Hrc>P*aC4Kj-<}cP7CdP`oe^dSw9`qYq^bYwXJGV{-P(pnQ_CN0xKB7Mv}2D; zZ=G=t4*P}WIFrlmteN3`)c>pn28wtJ@b|diLE1M2o96hrp~r z7fG|DO?-K{{V}~{%%-Eqn21JaGEfzB-(AD)3Z`SMd3igGF5wNUTS1$Jk74uQ7e4*U zZCAB_^m(dz($u@pz3sZkZ#XboY?oijt~md=JggXngeK?P3YOyfet@36aL)ay(SA1z zExwEw+ilyzQA4J@@X?ybmp--xi`WW2YF_rhRc)(2Jm@I~Hll zT(?9^%qfl^mV9kMx41Gq=D6OfEdh$5bOUa?$357)o3X8uk3c-7xrF*S;qgcGVNh~gS{>oYNKELqhA2i?l@XF_IyXcz9 zS#X$iby(z-js*IJ4*J`AcF6y_jt+V5>dqN&uDG@Rq@+VGSvT{(Pd>To+J^EDX=lw3 zk2$uN`Zj=kNm*}PQ@tsHGI{#cIg=h-v)VL2y#DhqCQn;?-4#Xh+wHC`2^6A`90Se& zy6^|jdFuC8??zF0c9X=vXziPielmG#=W1l)OSiNhzKfA;LTGoE|)sZ{gB)4zOUPV36`Cl+y-U53N#1cw{HE)I65 z`@>`My;Zv*26pcK;m}b%B;x~DKREaL)(bEBdGomsKJw1rJD0yaFag#+aeawr+7ei= z{<^SoI;I_`Wo70vhvOTvo0lX!i znVH~l`Paq4{%m%5%zyM+??!RBa+5f`HEZemGp}#I?Y2VmpQf&T{haozR()Q?VYgOr z7?ALNYl6dc;V^Svne6F1A)du^vJBZN2W>WYGqPyuW0(JV!Iul}J}{9*SKoW#hwDDR zGCDd-q^KzVG#q{ zGAFFq*=sXIbvxm6?!O#?w;ck<_6A1}_`9{6w>H@-%a{J?)^l#2b>5!MH=o;aw!|aU8yFkK=;=*jG~ud1;gAtn7Gd&Ru`Idfvg!lWv>6^0P1JzyE9^xAMD|G0>47 zpCA0I@p;4Hb6jswY!so_H;GWkm0v8pV#Vcc%p;ax^2OQDoZa>08%0T6iMQCX(6qb$ zc@}!agV<}i8^Bo3Ll18f#s{DO^s2=Ve=uuY^R4e*b=&eQ+VA9q5kK{<#B=6AjOPFI zAYSUZqPJo<3gIQ2gmBpnk9~C4^!1M&*L>S8S6ngY%=URdOaR=KEtHGH@p#V_d;g2M z!dCq)Jm$x}fUp5Fv0{Gbw0VW*2bQc^Xm5FU z)!qqM6=OXQT;B0d^Fa7cwY{Y+JnFdKiro;Ja@nxS3DuNWXWo3e`iowR-6)7%n{3*vu6c0n?9cu@bGPP;KDzJO z^Ui#6?oSevRXUpCj8!9g$T*l&xZ<3r-?{Xq?=;W3>V>D??Cd<}GEF3( ze=yv2L~rj(#n~|rg+s^mm|;x5=gp3T$epZUt#rLT894H2DLEgem9F#cz6 zc}k_0S=9cpNn%{KcG(qko?SodJI#-DTz%mU?|pX39l)K`^ti97w>-Vo^w=hAdh+l0 ztog^i544PIe)EkN);=}k@fXhQuBpS-^wZw*^j6b-o2==oH(H;4dF4M|xTDbg_x8zM z=broJx~^{W-Ri6AHB)bO-LlELZu#2>H$3;JDfj$)^TK~AJ$#6`tg?^Dk?p#XWsJQE4MB`YuEC*jD6s*7`A$=wHr_jTThnB zfg3hSm;3AmH@tVxUDv#oYM#IN&gZ9HdfAeaVXLXJ8-qrV!SJt*L2#~<6hG;;;*BEl zr%fVp>$>Y+xb=fE`LTc^)D2T9?q%}r4^3Xw-);MYdM-nancRxg!q6#Tzz z68!f*xpnsH#qa%fL8|$whyHlajOkB*ShT7%!68M%P?d+j?rXyzob8(6=e^atQ52?b z5`{nBw5E0H(>L69O!KmNm%Xs?@%P(JNjiOEmp>S8|BYU zR#hv+41Zt{t+Ky+oW1s+w|{v&+%A}5pL{&bb6NFxxCfUVo(PwI^J30?BIqI8M}FCK zuD@JpMB1GaQA~dyoEDtIBB%aD)Kn#5PuxY%w>Ni&zYQqn?kB^4=Q7}_a3T|sp|<5I zs=V0FdMaGku*#iV9^HutCRgtw7KuuXR@%Ft4o@Ahq9)6NeojD`EJqrVjnS0${g#A3 z4}!Do+-JgJfwhaD!C7VPXU~N9j{21Be67e*7k!}(+1*a;Q5QaAm3vdQ?bwRb?N{uR zsj^oN3M*~RbK$N>w$48Rd#%4@Fvn2HPG#uRTMk;6u zf2FMWzlmV7*Dei59=EC{tNNA3^2Zf5IuzQ$yjTs9j+R$wc?J6k;WHv%9)FbTaz{0T zcD_U)PtY|r?g;3wAid=|f;O{pq=jPik^RN<;a*!p&1&bz#-mE~RvhdrBH#ulu!W{@ zuc9^fvFF2)xv#)a5MeJgzrYb|#}h3s#3d&?It} zEq2eB!qMHWe8NlN@GaW(Wsy+uK4i8%D^6I)m z<0>f4D>a<^QSVDqlHTbUN5sFKzS_UW?Wk2weydhK`Wj!Kr*U^He}!lWIbpYfkSo=I zgs5>la&1t)1lSg{%gcwjy_1MO)4288=|cT~Zm;#z?RQ=Y8}=%fDC$>`qKwzQB%%1&5xa}amAlx!rqh484?3MQBx5CD;moW~hHR@uw0Xm{WiZVOud`w}}{x&bE7e5MI04Ikk$ZuO^aN@of^FSq@d?4yRUh-i&`B z0zbD0{UdB=If?m@8mHO0ABMjST5Wbk__yFf`|Jv$f-bWCR)$+OwAQlm3{@S=_r%u_ z?WdY9w1=$>rwo{u?8AeHm3XImG|r3c+k8dA(MRFyLAzc3QFuCwS5EpkTo|s;*m0}E zEr!e^CKItkgjN`Ro~a!ju$CUijqb9)UPX}6-S&=E;d#LqcJI~U-b3a+zJOsV#U^j$ z=*QA71|)*JqQBa!R-^09w~wzTdgpHY+3N7$f{)t||0Mi046d~Me->`WQ9wWYjJ$uf zQ$J%}&6VwUeHQ*W2<~qm`bBtF&_Ez0e{4s;t4?bYatb_bwYRSgrw4c11J;FqWYgUz z*M(>Ebj+9GW>pV_gn0$g19sAv;n0B(YK&9pS2Zf8#;3~YK|ANmaB%RDeelaL`~8Pp z27<~IO3&PzlaNy`TrwRk3KdN&^^F4jJAkP!-Bm{JW5w{XLMurod-RaqeSNsyfyJWL zyhLid!imF7>oY~R`vg9vCM`z^6}`&IBvrK$lozz|(rFzj-r7A!m=VFl_R00(?!hA$ z*PDZaM=w6gG;Q}NwmpVYUlNEK#jS1T+lt)EaaA?3!wD{sVX6v0Ep>m$s&zD5d z4adh*@9j|2E)J#42l_(6b?%0I(UZ0=FeAr3r7v(-La8JN;at(vN)>?>RGfU5QL47K zB0O!c1w!qLCz1tua2ubz3Tlu`U)tEsI?i2Na3>y@7f6_kRm?1&Iy(Iv-vN^^6 zm`|MZ-um^=Z04(hd`i9g{lEY1f+e@ld@JRX38Yo>eb-FC{D~D$-Tiu!9Qowup1=9h z*FSmZyhnYq%X;Z!>mU8=Jqufgs({*T-_ya&Dd}0$eniI91i=&b#}(%D;4yo2rJ2W} zY6Ggw(LrbX303B|Aur#mF<%Cc+c#^?HsdM6@rxTl^FzS2LdBA%h{&E;pxF`2iw+d! zhx)AcJ9VaEko%&;ziP}6OJ4n+S7Y3(PX8)PTyd#_PH3nK%2BlU*O>v^x=-K*_j&_t zS&ax-I)Nvjp`?M)<1^~b&vtPite_4h4)O4}kTLyL__ec$azQ-%=X%qi79&uTjT4kQ z%zq32yKgsa6#7MyZMe^-6`!i290Qd$7xALfM)+)mn!0Q~FzIrb)IiEQ@`8%pvyZvS zEnzX_S_^7v5=uEPKiv3YPGuSg}3tR%|*?fNwdi&Y^%r^rMdmB(GIe}fB zy!xwD*D3(zN?>nGa`lA01K5>Ku#X&I8jkbi0Vt&=uuJr)ik=+Qm1IkrL2^skdNf0; z$E7LXNQp2|`^*96jNlko(OjTZa)JvYsh7^s0*uO(pn`-_rkfM;rMJSdLXP%xiPUg zFlxYJULP^cYXJ6Rldc>C=+YQO^BfA9K*H)w`{4*PoT0RCGt*djPMIy5z zK|`NLn_en*>p+xVhLo~*klk)R%3R=qn9E}Yxq1MhK}5+tfzYs_^qxSpB*j=M{ParfJD7hyPZAp4hAYc!dzb6naNqP?;r0&?`wlqsT6Lj*} zgA(@8t<2zk90wt&d&4{HlY7>PXzqb^`*mBHLrnF{bYHjMiS69he82sOZOl>W;01g0 z_U0OYqR79GHQV%Gu^N__w$0q*+)L;XZFc%tb3nN2Qv1qS^J2JWfxTx3b87hU0y}O; zWa4x7`#YNb>z6#dAeER-&wbd=y}=B$_wHy0k0tVl4OglVR9sl&k8m5DtBBq~dT8~K z)=P(v%Cxx+4m(#QxdCBNf z{p*u@6l`aFFWhVg>O|197fb?+A0*3A^XtZ0y{JXQU^wl#hOL^QxEp-B!JUv}=z@D# zCRqmcv|Ad6?^q6=S_8qeDo-f_)?LK3^$qzSX-5K`MeS%DX#FIOtV^SxjJC&7DB5JCA`L5=PAXsB>`KB2dtZ9Gnn`S(Z?UlQm z)*$%E&fLR1^xd@~XJv9^*NI}7xMjg}+eb-Kwil>V~>&y1} zdzrn1;Oh2Zy!k8)&ou38o6WB>;U7%<3HzHL1{i7_{SP)<d~nYwdf8X$n5EzdXcjOZLkTF~f&`%6T#zoQSm$yF^88T`HTpDGnIjr`x9v zG5;>}=AmXQF5f-WG&#uN;Y`eKMP@?0Rn|0aF{t9 zgzi4fyglp^xI)J#vlJHrBij*74}3MzrS{&#&0d)5)*Wtc;Bwt}%uhH=y7s%Kz~xWh zHPcxjmi->B{h0m6_e}HfHy?u-NQ9=4K2q1uxW$7!4UAVWu+zS0E}-hok1*e8SiS%$ z=NOT#i_|xN9rrykUT%MRgc&rZ`=#U@r>y&zrB9r3D~^&+Zs8Mxe;zu*TqoIj()Z1t z;pYqNE#EhHZZp$hL8^*B=TmsfJxMTdyoZEnzf_9Xto9rmBaAQpH!}sh*YJO*G4`Hr zYWqO!or07nHwI>jkk4jO&?v`Q#=5HDfZa>=mNcjgIgI;u_J@^>2Rn<*e zOUZ_T_IJmaEw-03W#WOmgeYEAf?tic^G1vuofAV$&W%iwI@^Sxa* z_MQzXA~tC0Pu95QW7?)FJ0PCQjsJGWPt5T_n>EJ)@}JwcIL-_Rf)DIB|HB;J=jQu8 zhvq98B5t-<{fD`&PkS+qv6!^u{?oJo>TCaL4#0{#=BH-M;q3+wxa4u@WE;(3;@hsL z-XLnXzx=5g9kjP!@>8=c7&K49-wnu&nc5qI4Ln!dsXsHbkO5y z^a73M{;0*+#V4EL1HVWnYrLWRax~A0(HC~@$!523im~HPG5O7>m~cF3v2vL;>Zxdw zdK|fU|?fkVl3LnbWzcE+fQF-_`W=j}j#c$}ipSL&u7KISc z$}Xpx&34B_z|!Pj(JZVX|GC>VfY6fcFg!;Uk$-tCl82W^(x@!subH4$t)M~e1*e)} zxw9q4*x+FVl;rrs$UQgt26oT((NmGT=h(HUvPS(+cJ*n%@+Uj|cV^6JniRg3Qkl&~ z?qL;k{s0q=d$>GPYV4DKXW}hrYE@f8PhthK={T4+!(lJI#RHbydsaC8bhERX{?^kyD?E3)*{aZDwC_xu z5&_-HcpO2#>2%}x!hxto^Qml9d=;rx85~dY2ORjfeTr}U__y#y>02%EW@{GM)Nz)a zAu7TC{`Y2k6dQXp*Nnr$zWRH!-EKWm2xCZ)pd%j^s;A!@hN=-^Eow!|r*wPZ8L&7! zbn+SI2zY4G84LyI+qchfJk+ZgxIh^va~itF^m&CCgRsL%*(4GqJU0N;0q*>Rl9dh-0Jn25GF#LFX&^}Xv0WFLT$Sz_ z(Vw!_)6B5%iBa@g^NfTht`$71iZbe5RKO(K5kY2H9;J|el?XEEK52h5&1_Y1H9Zlw zyLuXIx7040W_FQXDR7=E=Q%UYFuhzubRSHCq&4O%y3^!bAua1XTuDB8El6w1<0>qE zi<4J&LYmzbCC8jfNgm~l!(8Pawc(~baQZlTEoYf>8~?HVP0F1-w(_XV$)kJ;dh0xc zxWALP$)kKZ%AD~<$ti)QuLxxqkKYb?PAZm=}3^~iiWg>zsbEvEg|Y_t91uyzQ8ctmK0z}1yU&_ov2 zHn?bv=p~cHVni>sfACjxQP7u?by7~n;gqi7@%(Gd(E698)HB~EZXf?+L{rCbtX;mEwc{HRP;JsP=BvZU*$L6df{4An zKmj(Q<@_!BOp`XtQm{I!S3H%tr>qXX*Bq&F*Kn_SDvO=AFiSyu_lY(|V~aT)m(1d_ zRUH_n;|>u*W}R9y9^BnVZ>TDEpPS4UKgDqxi0zu#$_v#HZ3iWt-B+C%Jzk$WQKodK z8bD)T3xg~QK@(`@86)KDL|p)BtPc)XgFe^7X15{;3s*+4Ao_`$%y$bYp3s<(b5WXo zA*JZ-BU8H9JfuUstNlUQ;fsX{z6MdHDZDxqb@d6%wLvl3$!rzxMDq9DHLE?7wP%`= zR&W)C&|El2>3wt|~1;jm}71DE~PTr&{6P|V_n@TA>R9k4BZC$%Ej zHFdvqTBmx&_qzxO31P~m*Yb~w396^jq6dv!7^;yLHRRpbOLE|FZRyG|%IfwbM9{j2 zlbLE}Gbhu`uKuE%Ce*IhE~D^Bm#Wr?HzqaLM4uQ*ued9bU78soAVuBCcZGqz!(nK5 z48BMx;jCMzt9H~BT8OxGbZ4OEYzhnP39oA%n(+sWd;72jIj`8Sx)Lj(qbVY0EM36Y z(})xxyFW2^EZf#5HMG({DVZ53)6?quFoc^G&d03mm1J~diY7(<4H^f_+~M_ZtxZ9l z4xm`a>?TZpCZRsgD6GwhU8;0=G<(;+UgwuxM8pEx(zoO)W;Z@NEeLwW`5s-y6(Tj> z7hD%O_ET#mHNj?S`{b==0Gc_23g^lPA|}$90kTAetf#^#gs2A2UBYdlFKZ;4Jcu-% zW}0pa>tj;Eg&splY=GVUF}NbM<|`Cm)Ci8a0R{iO4CYqeQxpN5K&kG`jQx zDzY`Ha?(Ed;$0dWj&d8yC9OY)wAZlwaRYI3(6gFA;#rwpRdg`P0bdZu_<5}?*caIz z2erGUE^>Wnx73BI5!p{)g8ph0eF^MI&+r91P0c4&OOC3F5_XV+$-HAc!Au*voI+ZC zA;B$LF3>c0bluHAiYOZF5^@yWtSyMTlodAR7h|fUR;K}b1kwt$1-Iez4&3Hzo5Sy5 zGpcRQd{;ZPsss1~i|H3whqUjg^VNAsgd)&Ee&4}8(;*_@Z9 z^wV&kHM^yl^E-mM{Y`^pmD+A8x`#Mlba91?Och1C6iMMp>rr=OiN};G`IJ8Rb8sCS z6;YjwVvwN9-qS)=h<-=bH-|84GIaO&B5#ZMsZff?HzaG7WvFRbEmn!@HxXgT!2w8osA;*Br`3+Wbutp-k*xt z3spTai0+i#e>QAG-=bu4rn5E0bg>h(Ev6Hb;PbB`9jZcJm%p-@-sWgedZG9t^dGSK zuS5aP2KPZGuJ!3Fk`FS){DXb^Oj=p_D~tKJ_37fbD$8&r_UmDE`sSNNhO3`GP7JFL!!b+CrR41+$Vd~o8!=nI-c z-gAhna@Wn6Zyp_am!PW9J7zFbEAkv6aUvQ(HawZ%=#KVx=bQZk<|sSfi;nwX`}gm~ zOrO5HmN(~hm`^Hj;7xwWOb#Bj)r)X}wb=M!oPqb+3m2Kg)40=&9r-Z6{I!dS6ED3S z_ONqe)q$TWWj!C^y7RLG*gtjsn2w3m@xy(FL7 zPg3(B`?rV9?zmi6K5VjE?#L__?qvQIU?P`DEfrVi#zOs6*}WezGs82}_T@(iG~zn? zQ6_q4rP~jA6cF}O6;@45hq-E5mR9A0Z*-2$J#M~n)D22e&3kceoDkip zXJP=OMU43=lty7k=am|X`%!P%Y18{3YVnR?CD7c~68_&7Tej*6bKsUuu!5&= z5bvxICUXD{AMAG`W$v`^Nm52r(G_;m6J~G&jWI}cplwd$GAd~zd-D@!^P_nAfT6H( z{DyzAamB}DU<=BuIBZy-j1=-T$CtJ8@k_Z9}Pw z=z2cTjE{G#f@xpg(lDYn`IG{SA4X6ht1OW{<4H3-QkX}vX_@bQVf$smAKEofnkR$5 z*gY%4Fxmn4YO01n&!G`MN&m{%UeFF z*xY`$)QqFVX|K%L+_BgHbZ``$p<|=8Y`u(lz8{FhF#cY&S6$N7$Pt>v5cMaPI+0@| z;Dn^zp*1H_(X^fqV>|BDa3{OfGV{YDHaIn^zV}n3)&;ITI^h%qP+WFul-_W7n=jUJ zEN4&E+ZUIaQ6pHc?wFaH{mmadN$4tnNKb3qdf>FmTl?E@zhJgIiuZ7r>!_*(w2GaE zH%{JoZIGw`)!|d??5!^_Y}}-l8(`ml!L$T7+h4qB4*cmH!Qxac@f7r#Ba&uu!HS8) ziE*8bDXD0#gBhMcmZFz9gl<754ix*nP7cSS;+Z!B7fM9HLu{P*&nr5ufxUa8ol$WUf0zh-tV&JBa~U)o;cznQaDfbVaTb9lru0sded0 zs`z+3uXg1m9c5)6!G=_JiZR^LG zVZ+Z_*a1&bWZi`LMuNMdtJFIck5_w%J?T|5Dk*)xbUzh*@Wq*tDmZw}>{Q#?c|Y*z zfZ6`+PoLRp#JvIcWA&|?T`kVIHc&r}7~0Ny&1@SCuybF-x3H=+K}Gax;wxglMnTk+ z9sk{MMBTl~Q3~MhKNvRk$sQjJNUFbYkE|uwL0efHyV2Gd zO+^m#Xqvs{4c7kMU>|+MMd=TF)9gsV@}X}Mujtm4=InKE((CTDi{CUa7arO#98nk| z`x9p!5^6*I_@+L^b6sv|cHn4C zDgeno%(wk359KUaNOVRpj!z zWOAG9lFp6Nr8>8TE>*cLb*ap4rAu9|NtfE(XkBV@TkFy{w~a1+a@*=spBtmg;6iRY zT?gg1*JWUCtS&=xJLuAw+fkQ>+)la-&+V+su-rFv8JgQgmyx+$b=fSJ(`7_1o2~vv zDwP`v2XMo&ietGOsnZ?9?5@rIr(pA5(f6!uuDNDPHrpIdnOvB>t2vyP-)OFzlHH{_ zJ!Nus=jMS^NZp^*9h>W?WOr)Lkh(+jAf=8cb^GSNQ?g^5D@on1xk0JpNZnRtj!~J} zZK#P<7(6?=xpqo+>t;i0Q}Y0&W=Y*rT;+mrpWE5@IC1 z=#mOPo6sU{X<0VmMADM7!bD7xI?HkiN0Jto?kx`3e@az*eiPc4pY#(8cm?8WrUQ7-R0+^5Wh_j)Ow`0d0 z(67eRuhy4X%Vf;aZbfZDl+^PgU9dxmq-}L7I7!7^!J}*kz?82f4_QO`i}QW44FvwN z)y+`*>U%=peKB2;E5<)`aCnlAYfJLC^;gB5{mUVVDz0UKYsKV49yA$D@^%b#@7SA! zITO$g($teCPre+iw;95l+}kc5`4Sjhxg8C9TM-ZRZxuxa=P;vmZ#yf%U(Azy%n`2T zAGh`OAMfZto(cz+ecV#7nXHLlPbF|QDmN)f&G4lnSKP;1@ZjpqWJ_(3VGjH-hcgCH zrB>h6G1YY_69_9p1Q_hx3q`Rk6k#i)#Y(Q_3Aan~tRgSJ$MFa6GI~cAmqa-qS8+?yuNdD*r7P;0y2E%8CIg+q z=KGy9EK!7itYU`bY(sD=bNVrsXD)Ej14B{GfGVRWjX0nB%M*WO~ zXz!VW;yts$uW7M;P9invkYi#^;+V*Cq#GzpOjgJnBU?&3k%@7QrdhkC{^A7D_Nl7f z14lbf<5F9WVQ>aSd5nu3P)FUO?X8uJ69PZb|L05=KE zKG!nC=nPg_9OcQ03Tuoz?^xnYEa0p=5s7Z+26`MgeC7m1 zy%_L*W;O0H<-9Xhc@B)D+NSWvsuOn!UvKb2bvCr&u`7AJ+CRRSJhu7ArS7rN6khJ1 zmn5%e`p3@Xak_t8oIJMr$3@BGx&Cos@;KE$cJPQRu0BUkY6>UU>+n{rSM@o>Fb=!= z94-uw*sEuQnF2S{>*emiuUD_e0HAuc2ENsLM^cCC?D{+_cHtykul3+IpD*atx}B$6 z<8E))ZQ9+=)h*{!kwM4R5?J4t+u6FUbg5VCwx;0j+jLLxJvrRri?!}n=P!z#KG6(>B-QCRZj0DWBX?N`gh_X&c7@^N}?iiN>vBB9qxeAsDR5&63{ux zG@@v*k_A1UcON3%N2vtx*)W*(h#A$m&^CO#E&NwTVb9;Q1WD-!77eU*0Cm?hXGp-a-NJxr8 zl0`0213|~YT+UO?jU|f)x{-|YBN1v&vJVP3p$Q4YX9zZ3@6VGQ2n9!6; zAs73@aA8xbWdKaqKZdAq4;r>`$U6U2v&oJ0K|hoM$4~}NG2BqO!Sw&Qi!}6+u*IC*p1hN(y~IOpR!+)Jyn1vOZeo^#k# z)oCsV#^y;Huc~$}gwtJ*Mt|5PY<0JscdS0r*;fl1ab|K-@gS~ua;;V)L0YM@(Thfi z)fQ3B=9q4+56+s5L(tF{+zEY2=odZ9E3Gt5^o-%O=wP4hU>#6bh;Uxho22L?D?IW0 zWe542`V#D(Jz}p?*88`t=r?}cLbp_dmkJQWyB;Mq6CvpHXR?EoDkgn8q`Lw|RA4tB zch)m8&VF%?G*QV86juKkXKO3c)k_l;JfBJib#01Rn((%ZpLIX93Z1m3m=$GPzSm+W zr}s!|0vaVL2D&oaPZd-u{?_p|AVEMoVgesH?WT92*>$?7RiO&`&CT63db zrfx5OalNgm5;?Ce%@93lvV(`o+EmV<4eF)ImH`QK7D@>kEXAEKLi{3khD+2EosKy> z-7U*KQo?2(or%jm2RAw7JO)8-@KkzB|G8ARqa-2yrLu?!&}u#DJOxagh;~j|ow6 z<#~Qgx+5zo;;{t@*HTX@@qITx)`%Y!apGWT@bqj@aSg2hd)h@)HafQSqhm5x5Lc#? z`GBNYC+SHUX%QlcP+`$I==o_wB6HN&R>tQ%R@#Lquk&XAz58kkT$fDb~DI+|H19ZW0-Y`B9UW zcyU3aUNKqo9zX6U6Dc_)r2@v&^__GqO#-BOxD0LqI|`7SHM)FDv5gX^?bKnNtgY=t9~X7mhOU8zEuW+s+Z1dJQXmoaxxcP^UeypHBHw4!R(F;J=*hmoV2 z8C0{raiW@uUAj_~FWpRZ=oqT@aY~t}B#V;3KqD)lI60*(`9{%Qo6_f;@j?1r@)=erQEj_s)BV<}Uv%@_( zIZGe(vZ|!bloY-$AMd0%CaIm$_>v@zfX{{A_k)Mz3*%G?y1>0n{(FO!1CP zOISIIC3F=Apox1`)N~Cv+{t0to74;6M)D;&Yl@#J`U>EH(HEiM6xS=gW{?bZLG-$x zY_1O!_b6hp_Yp-(EQrm>U9SHMGH;-ANWl|M+OS4A3H2(0F98Xi-D}qqz$Q^=HCstO zb9g3#R#TAT5G-}UK}#F^QVJUW(~9g8ShN8lYZ{`QFoBO~PCA}5G^l|}hy`As(%^u# zs|b&mdfIrf2i$6MkrWGr&s&^x6cWo@f`b5b^8(XS?;AsEF-l-@vXO?xO0%g3ae6s~ zPLUQ8-DQY%or+Li3d{r`DyiU?oFO?~p9R_4<{-zok=3k(9$lQ3bS2$DGS>J?lahtM z1A=Gpq|LgB7U7|_!Nq?idIA#@CsCMhC6kjrVJaxNFjrS7Ur>qWFWnGRo)ScsvI$Lz zm3sC|lyP55LKS7)U`pex8bxwYTU;nY?mwkI|EZW&qbfDW9bRZBWYi8+PQGH?8kEbC zuh_V=2gxtz-o;B@Q>aikrzzFqESe^smlV0Qz~qDJrGKQXN7*o5Bi7T*Ei~>dVoKe~ zIJS{l4G{@`v}9eS3-!~iM$?j3EI0m*%68hwV$E}!D7iF}byn|ENIk5Ys&`8*(v?{a zHWWwy=tVWeKcf(8#?&&zD~4Stf@<*2L0&P00&e!wGJFEF4rEHzgj}8LPZ|}Fe`Qk{ zG+Z}vkplTr2$v~rCz-mK?0}Q>j1eFXasw!dR*aqxbNw}ysn%4cKO3nbY^0ts;wCIP zh)IAae&4d5qn7omaH4-R6)9sGr``q30sNP4|1dGMM3h*ryLd@97X&KJt)}#abTJq2 zske-x0Et`yxIqZ#MP(D6TFrko)A2Rcf&{yS(Gi@~s!fu~;!W^uELMWaZHy+1mYeMK zL*w;j^pkq!bgX_<=72*YIJhfZIJs{VC-@k>ALF_Mq{lNu-q ztz4>Qy*4(}yoZvcF>@Kj9%c?E`UC>jm&P~>+w*&|e zN=G7Mz0T@IOP?bAY7Jn+1LHA7VFa#Xg?%Uo|BEjbz@F23P~0g=H6AK)W6OYoD}Z@b z=w`V6VX5*7mZFe=jZrI;uZs!YM_VQ`EV=U{!ZpFLZmH;|n~BD&wqO``sAjc7w^)Q{ zqD6tzznwVFvlZ<0jzq`p#Hvty!hEAK19MhMPj@|=Wf5yoiv4&3D2SH6WhwZAoFqkF zvvIc1CI1HFAC3x=n`{N@G$j!>PLtc>pH|FtNaJc=&M< z14UWaaxGDsR7%HHJ2~(i6_kRo&@X20u0kR&yGTm9phTM3$9)+s)JojuR4&_WN;VuC zr81G3PJPExnDsh6AEAABOH|pG%7Al{I(}PI;Kb}%C=P_lI4ILqH}ojA)gbH|3+^fk zcVUzOD=0a}w0lt2)FpXh@Vt6%Wv)-WZhf*@b=k}0!$SFd9J%5V*q|m1WR*p}&pL;C zA2;QgRqLkWnl($}N+=Zp)Z|$THh`9hF7Ki1Hh`O`Pjf@`Z!x&w@@d&VyJ+#37Eq{z zfM`XjRJV;^sXQWqyb9%7)VWJlMD&EwnJ)EN$!J>GGm1v}@`1QywJMa%R<)XlxtSC$ z*|h7uVB{>f67^pKJN_~%b0Y>OJ{6BkNrM4#2MiaosQuPOEPGcKTwA3;5BZIlS$X%4 z935B+o%4uYYYM!MO^)+Y*pObym9?JP95|>!%42G&N+K%LKGpp*hFL8KkDk_B5%6Qg~N^MAM{9Zg}A zOrK5Rw%!>sR>Sz1)R8$%@4|jeigP6KDt*deVB*5b-cuxJfR91nkJyk9KbPaDR|k84 z7fD1nrMd?19#lahVv@AY86}>~*(xjrIwH#wIFpU=dmOH|%J%2(V0YKZ-Tv;bfxErk z-C*vV{cKe2?!vxW! zwB4~QeZHOia(Z7vpY7t88B1o{4_;2^!za?V-z({Fgq>--|10UOX1tz0nOCR0p8o01 z9gix$X)I7Ts9`lA!OUtg-EPa>{#;pTbos&#@ed2m?zQ!Aq_?)?k4z5@p0>vvnI0W3 zN!uw$rXLAEeb#>WsPw4tnY8`wQR!a{X?^&9w(#M6t@iVy(pwFChS3|L zurRf6eHfqO_uJE==PkI<$Tz-ZqEg{jB}z(NO8Jbo-x=P9GoITl!`G z+YZ_+b9->Bz2Pmk9Gex|`}a%_v@gD8whf_2&D%tsK4%Yo+nmUy<85;$2M2un9kYcy zT57^OtO;IfFL=j%pF^$Qc*pD#EVIMkH9LgMhy!m4huI1566U_lw!UjVVVlc8zDJbY z^LD;2FWQywv62Xx`J)}aV>k-y7C%k5(;%(x-1Ix|dh4QKS41_>R_@QU4RrTO!4&cs6A zYow?~QyX_YZg{wA-0=}F+Miiz?)O#A{MZ~Dyly}H*z7#u4Oe2FW*Cw^6@qR2D)Y@g zZ>sF2j0@NqqnGU;S3!?A?2W6;zQci{4{GCUIz?qn>MU%+YLv;q@oHfEtTsCYZ`tvy z&3KlxPg)I;-m$Y*n=iBHq{Z5Ve>z@vg%g6VE}`IZK7HU5b4+lH&3($IIp?*K!eWekDTaRtTwk+_=s(73PYq;rJW5YQWJtXHs^B z(QnrcGMiu4t3>ZQx*bj&uv0Mj20gm?p<4GEF_v4fmGInHg1zHsO?z9*WqFi@ST5ES4l&Y9ORvJ?6 zHhv;M3o{zL@->op&}cL@Dx$5%*>pMEm4T=x9z?t^0i!JK`86dRpYInvoR*$}Z#QmX zf|kx#@jx^SZznQ5>N+9UH;!`E%qcV3n!_M7fgI8Eghnud8K7lzS{10m%!Hh`)YY(w znP!{^fO@S;fJ@gGEm^YoFnTbrjhQo1DiaPQ3&R;1nLMSV^@USnrqjx^J{@xMK*_m z%m6S79*9cvXy$^Y%iRek_I%BznXu{&KNG=96sz=`qLu;eKo$Twj$>2xP_yo!lj_p~ zJ+5&e9ppUnb=g9OV%13r2a~p01Fkg(48wA=Jmkajfo{lDi5RQPcTBJQBoD zeS>+-@{`Kr2}&OXDQloffr%8pQ?*FGQiE_R-=L>FRu6eRxXpRHdIMh!$~H`3Ujc3M zOH0x#;LIc!k(PsrvL%Wz?HH}{5b{?YauVz&i`2X`Vz#uQxQRUQn=om

nLSZ{9E) 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 { - let crate::PrivateKey::Ed25519(s) = s.borrow() else { + let crate::PrivateKeyInner::Ed25519(s) = s.0.borrow() else { panic!("Wrong private key type, expected `Ed25519`, got {s:?}") }; let sk = StaticSecret::from(*array_ref!(s.as_bytes(), 0, 32)); @@ -66,12 +66,14 @@ impl KeyExchangeScheme for X25519Sha256 { let edwards_compressed = edwards.compress(); ( - PublicKey::Ed25519( + PublicKey(Box::new(crate::PublicKeyInner::Ed25519( crate::ed25519::PublicKey::from_bytes(edwards_compressed.as_bytes()).expect( "Ed25519 public key should be possible to create from X25519 public key", ), - ), - PrivateKey::Ed25519(crate::ed25519::PrivateKey::from_bytes(sk.as_bytes())), + ))), + PrivateKey(Box::new(crate::PrivateKeyInner::Ed25519( + crate::ed25519::PrivateKey::from_bytes(sk.as_bytes()), + ))), ) } @@ -80,10 +82,11 @@ impl KeyExchangeScheme for X25519Sha256 { local_private_key: &PrivateKey, remote_public_key: &PublicKey, ) -> Result { - let crate::PrivateKey::Ed25519(local_private_key) = local_private_key else { + let crate::PrivateKeyInner::Ed25519(local_private_key) = local_private_key.0.borrow() + else { panic!("Wrong private key type, expected `Ed25519`, got {local_private_key:?}") }; - let crate::PublicKey::Ed25519(remote_public_key) = remote_public_key else { + let crate::PublicKeyInner::Ed25519(remote_public_key) = remote_public_key.0.borrow() else { panic!("Wrong public key type, expected `Ed25519`, got {remote_public_key:?}") }; diff --git a/crypto/src/lib.rs b/crypto/src/lib.rs index 525d59af00a..0db94fcbb37 100755 --- a/crypto/src/lib.rs +++ b/crypto/src/lib.rs @@ -25,7 +25,7 @@ use alloc::{ vec, vec::Vec, }; -use core::{fmt, str::FromStr}; +use core::{borrow::Borrow, fmt, str::FromStr}; #[cfg(feature = "base64")] pub use base64; @@ -252,8 +252,8 @@ impl KeyPair { impl From<(ed25519::PublicKey, ed25519::PrivateKey)> for KeyPair { fn from((public_key, private_key): (ed25519::PublicKey, ed25519::PrivateKey)) -> Self { Self { - public_key: PublicKey::Ed25519(public_key), - private_key: PrivateKey::Ed25519(private_key), + public_key: PublicKey(Box::new(PublicKeyInner::Ed25519(public_key))), + private_key: PrivateKey(Box::new(PrivateKeyInner::Ed25519(private_key))), } } } @@ -261,8 +261,8 @@ impl From<(ed25519::PublicKey, ed25519::PrivateKey)> for KeyPair { impl From<(secp256k1::PublicKey, secp256k1::PrivateKey)> for KeyPair { fn from((public_key, private_key): (secp256k1::PublicKey, secp256k1::PrivateKey)) -> Self { Self { - public_key: PublicKey::Secp256k1(public_key), - private_key: PrivateKey::Secp256k1(private_key), + public_key: PublicKey(Box::new(PublicKeyInner::Secp256k1(public_key))), + private_key: PrivateKey(Box::new(PrivateKeyInner::Secp256k1(private_key))), } } } @@ -272,8 +272,8 @@ impl From<(bls::BlsNormalPublicKey, bls::BlsNormalPrivateKey)> for KeyPair { (public_key, private_key): (bls::BlsNormalPublicKey, bls::BlsNormalPrivateKey), ) -> Self { Self { - public_key: PublicKey::BlsNormal(public_key), - private_key: PrivateKey::BlsNormal(private_key), + public_key: PublicKey(Box::new(PublicKeyInner::BlsNormal(public_key))), + private_key: PrivateKey(Box::new(PrivateKeyInner::BlsNormal(private_key))), } } } @@ -281,8 +281,8 @@ impl From<(bls::BlsNormalPublicKey, bls::BlsNormalPrivateKey)> for KeyPair { impl From<(bls::BlsSmallPublicKey, bls::BlsSmallPrivateKey)> for KeyPair { fn from((public_key, private_key): (bls::BlsSmallPublicKey, bls::BlsSmallPrivateKey)) -> Self { Self { - public_key: PublicKey::BlsSmall(Box::new(public_key)), - private_key: PrivateKey::BlsSmall(private_key), + public_key: PublicKey(Box::new(PublicKeyInner::BlsSmall(public_key))), + private_key: PrivateKey(Box::new(PrivateKeyInner::BlsSmall(private_key))), } } } @@ -315,18 +315,96 @@ impl From for (PublicKey, PrivateKey) { } } +#[derive(Clone, PartialEq, Eq)] +#[cfg_attr( + not(feature = "ffi_import"), + derive(DeserializeFromStr, SerializeDisplay) +)] +#[allow(missing_docs, variant_size_differences)] +enum PublicKeyInner { + Ed25519(ed25519::PublicKey), + Secp256k1(secp256k1::PublicKey), + BlsNormal(bls::BlsNormalPublicKey), + BlsSmall(bls::BlsSmallPublicKey), +} + +#[cfg(not(feature = "ffi_import"))] +impl fmt::Debug for PublicKeyInner { + fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result { + f.debug_tuple(self.algorithm().as_static_str()) + .field(&self.normalize()) + .finish() + } +} + +#[cfg(not(feature = "ffi_import"))] +impl fmt::Display for PublicKeyInner { + fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result { + f.write_str(&self.normalize()) + } +} + +#[cfg(not(feature = "ffi_import"))] +impl FromStr for PublicKeyInner { + type Err = ParseError; + + fn from_str(key: &str) -> Result { + let bytes = hex_decode(key)?; + + multihash::Multihash::try_from(bytes).map(Into::into) + } +} + +#[cfg(not(feature = "ffi_import"))] +impl PublicKeyInner { + fn normalize(&self) -> String { + let multihash: &multihash::Multihash = &self.clone().into(); + let bytes = Vec::try_from(multihash).expect("Failed to convert multihash to bytes."); + + let mut bytes_iter = bytes.into_iter(); + let fn_code = hex::encode(bytes_iter.by_ref().take(2).collect::>()); + let dig_size = hex::encode(bytes_iter.by_ref().take(1).collect::>()); + let key = hex::encode_upper(bytes_iter.by_ref().collect::>()); + + format!("{fn_code}{dig_size}{key}") + } +} + +impl PublicKeyInner { + fn to_raw(&self) -> (Algorithm, Vec) { + (self.algorithm(), self.payload()) + } + + /// Key payload + fn payload(&self) -> Vec { + use w3f_bls::SerializableToBytes as _; + + match self { + Self::Ed25519(key) => key.as_bytes().to_vec(), + Self::Secp256k1(key) => key.to_sec1_bytes().to_vec(), + Self::BlsNormal(key) => key.to_bytes(), + Self::BlsSmall(key) => key.to_bytes(), + } + } + + fn algorithm(&self) -> Algorithm { + match self { + Self::Ed25519(_) => Algorithm::Ed25519, + Self::Secp256k1(_) => Algorithm::Secp256k1, + Self::BlsNormal(_) => Algorithm::BlsNormal, + Self::BlsSmall(_) => Algorithm::BlsSmall, + } + } +} + ffi::ffi_item! { /// Public Key used in signatures. - #[derive(Clone, PartialEq, Eq, TypeId)] - #[cfg_attr(not(feature="ffi_import"), derive(DeserializeFromStr, SerializeDisplay))] + #[derive(Debug, Clone, PartialEq, Eq, TypeId)] + #[cfg_attr(not(feature="ffi_import"), derive(Deserialize, Serialize, derive_more::Display))] + #[cfg_attr(not(feature="ffi_import"), display(fmt = "{_0}"))] #[cfg_attr(all(feature = "ffi_export", not(feature = "ffi_import")), ffi_type(opaque))] #[allow(missing_docs)] - pub enum PublicKey { - Ed25519(ed25519::PublicKey), - Secp256k1(secp256k1::PublicKey), - BlsNormal(bls::BlsNormalPublicKey), - BlsSmall(Box), - } + pub struct PublicKey(Box); } #[ffi_impl_opaque] @@ -339,16 +417,19 @@ impl PublicKey { pub fn from_raw(algorithm: Algorithm, payload: &[u8]) -> Result { match algorithm { Algorithm::Ed25519 => { - ed25519::Ed25519Sha512::parse_public_key(payload).map(Self::Ed25519) + ed25519::Ed25519Sha512::parse_public_key(payload).map(PublicKeyInner::Ed25519) } - Algorithm::Secp256k1 => { - secp256k1::EcdsaSecp256k1Sha256::parse_public_key(payload).map(Self::Secp256k1) + Algorithm::Secp256k1 => secp256k1::EcdsaSecp256k1Sha256::parse_public_key(payload) + .map(PublicKeyInner::Secp256k1), + Algorithm::BlsNormal => { + bls::BlsNormal::parse_public_key(payload).map(PublicKeyInner::BlsNormal) + } + Algorithm::BlsSmall => { + bls::BlsSmall::parse_public_key(payload).map(PublicKeyInner::BlsSmall) } - Algorithm::BlsNormal => bls::BlsNormal::parse_public_key(payload).map(Self::BlsNormal), - Algorithm::BlsSmall => bls::BlsSmall::parse_public_key(payload) - .map(Box::new) - .map(Self::BlsSmall), } + .map(Box::new) + .map(PublicKey) } /// Extracts the raw bytes from public key, copying the payload. @@ -356,19 +437,7 @@ impl PublicKey { /// `into_raw()` without copying is not provided because underlying crypto /// libraries do not provide move functionality. pub fn to_raw(&self) -> (Algorithm, Vec) { - (self.algorithm(), self.payload()) - } - - /// Key payload - fn payload(&self) -> Vec { - use w3f_bls::SerializableToBytes as _; - - match self { - PublicKey::Ed25519(key) => key.as_bytes().to_vec(), - PublicKey::Secp256k1(key) => key.to_sec1_bytes().to_vec(), - PublicKey::BlsNormal(key) => key.to_bytes(), - PublicKey::BlsSmall(key) => key.to_bytes(), - } + self.0.to_raw() } /// Construct [`PublicKey`] from hex encoded string @@ -384,35 +453,14 @@ impl PublicKey { /// Get the digital signature algorithm of the public key pub fn algorithm(&self) -> Algorithm { - match self { - Self::Ed25519(_) => Algorithm::Ed25519, - Self::Secp256k1(_) => Algorithm::Secp256k1, - Self::BlsNormal(_) => Algorithm::BlsNormal, - Self::BlsSmall(_) => Algorithm::BlsSmall, - } - } -} - -#[cfg(not(feature = "ffi_import"))] -impl fmt::Debug for PublicKey { - fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result { - f.debug_tuple(self.algorithm().as_static_str()) - .field(&self.normalize()) - .finish() - } -} - -#[cfg(not(feature = "ffi_import"))] -impl fmt::Display for PublicKey { - fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result { - f.write_str(&self.normalize()) + self.0.algorithm() } } #[cfg(not(feature = "ffi_import"))] impl core::hash::Hash for PublicKey { fn hash(&self, state: &mut H) { - (self.algorithm(), self.payload()).hash(state) + (self.to_raw()).hash(state) } } @@ -424,19 +472,18 @@ impl PartialOrd for PublicKey { impl Ord for PublicKey { fn cmp(&self, other: &Self) -> core::cmp::Ordering { - (self.algorithm(), self.payload()).cmp(&(other.algorithm(), other.payload())) + self.to_raw().cmp(&other.to_raw()) } } #[cfg(not(feature = "ffi_import"))] impl Encode for PublicKey { fn size_hint(&self) -> usize { - self.algorithm().size_hint() + self.payload().size_hint() + self.to_raw().size_hint() } fn encode_to(&self, dest: &mut W) { - self.algorithm().encode_to(dest); - self.payload().encode_to(dest); + self.to_raw().encode_to(dest); } } @@ -490,24 +537,7 @@ impl FromStr for PublicKey { type Err = ParseError; fn from_str(key: &str) -> Result { - let bytes = hex_decode(key)?; - - multihash::Multihash::try_from(bytes).map(Into::into) - } -} - -#[cfg(not(feature = "ffi_import"))] -impl PublicKey { - fn normalize(&self) -> String { - let multihash: &multihash::Multihash = &self.clone().into(); - let bytes = Vec::try_from(multihash).expect("Failed to convert multihash to bytes."); - - let mut bytes_iter = bytes.into_iter(); - let fn_code = hex::encode(bytes_iter.by_ref().take(2).collect::>()); - let dig_size = hex::encode(bytes_iter.by_ref().take(1).collect::>()); - let key = hex::encode_upper(bytes_iter.by_ref().collect::>()); - - format!("{fn_code}{dig_size}{key}") + PublicKeyInner::from_str(key).map(Box::new).map(Self) } } @@ -515,44 +545,55 @@ impl PublicKey { #[cfg(not(feature = "ffi_import"))] impl From for PublicKey { fn from(private_key: PrivateKey) -> Self { - let digest_function = private_key.algorithm(); + let algorithm = private_key.algorithm(); let key_gen_option = KeyGenOption::FromPrivateKey(Box::new(private_key)); - match digest_function { + let inner = match algorithm { Algorithm::Ed25519 => { - PublicKey::Ed25519(ed25519::Ed25519Sha512::keypair(key_gen_option).0) + PublicKeyInner::Ed25519(ed25519::Ed25519Sha512::keypair(key_gen_option).0) } - Algorithm::Secp256k1 => { - PublicKey::Secp256k1(secp256k1::EcdsaSecp256k1Sha256::keypair(key_gen_option).0) + Algorithm::Secp256k1 => PublicKeyInner::Secp256k1( + secp256k1::EcdsaSecp256k1Sha256::keypair(key_gen_option).0, + ), + Algorithm::BlsNormal => { + PublicKeyInner::BlsNormal(bls::BlsNormal::keypair(key_gen_option).0) } - Algorithm::BlsNormal => PublicKey::BlsNormal(bls::BlsNormal::keypair(key_gen_option).0), Algorithm::BlsSmall => { - PublicKey::BlsSmall(Box::new(bls::BlsSmall::keypair(key_gen_option).0)) + PublicKeyInner::BlsSmall(bls::BlsSmall::keypair(key_gen_option).0) } - } + }; + PublicKey(Box::new(inner)) } } +#[derive(Clone)] +#[allow(missing_docs, variant_size_differences)] +enum PrivateKeyInner { + Ed25519(ed25519::PrivateKey), + Secp256k1(secp256k1::PrivateKey), + BlsNormal(bls::BlsNormalPrivateKey), + BlsSmall(bls::BlsSmallPrivateKey), +} + ffi::ffi_item! { /// Private Key used in signatures. #[derive(Clone)] #[cfg_attr(all(feature = "ffi_export", not(feature = "ffi_import")), ffi_type(opaque))] #[allow(missing_docs, variant_size_differences)] - pub enum PrivateKey { - Ed25519(ed25519::PrivateKey), - Secp256k1(secp256k1::PrivateKey), - BlsNormal(bls::BlsNormalPrivateKey), - BlsSmall(bls::BlsSmallPrivateKey), - } + pub struct PrivateKey(Box); } impl PartialEq for PrivateKey { fn eq(&self, other: &Self) -> bool { - match (self, other) { - (Self::Ed25519(l), Self::Ed25519(r)) => l == r, - (Self::Secp256k1(l), Self::Secp256k1(r)) => l == r, - (Self::BlsNormal(l), Self::BlsNormal(r)) => l.to_bytes() == r.to_bytes(), - (Self::BlsSmall(l), Self::BlsSmall(r)) => l.to_bytes() == r.to_bytes(), + match (self.0.borrow(), other.0.borrow()) { + (PrivateKeyInner::Ed25519(l), PrivateKeyInner::Ed25519(r)) => l == r, + (PrivateKeyInner::Secp256k1(l), PrivateKeyInner::Secp256k1(r)) => l == r, + (PrivateKeyInner::BlsNormal(l), PrivateKeyInner::BlsNormal(r)) => { + l.to_bytes() == r.to_bytes() + } + (PrivateKeyInner::BlsSmall(l), PrivateKeyInner::BlsSmall(r)) => { + l.to_bytes() == r.to_bytes() + } _ => false, } } @@ -569,14 +610,19 @@ impl PrivateKey { pub fn from_raw(algorithm: Algorithm, payload: &[u8]) -> Result { match algorithm { Algorithm::Ed25519 => { - ed25519::Ed25519Sha512::parse_private_key(payload).map(Self::Ed25519) + ed25519::Ed25519Sha512::parse_private_key(payload).map(PrivateKeyInner::Ed25519) } - Algorithm::Secp256k1 => { - secp256k1::EcdsaSecp256k1Sha256::parse_private_key(payload).map(Self::Secp256k1) + Algorithm::Secp256k1 => secp256k1::EcdsaSecp256k1Sha256::parse_private_key(payload) + .map(PrivateKeyInner::Secp256k1), + Algorithm::BlsNormal => { + bls::BlsNormal::parse_private_key(payload).map(PrivateKeyInner::BlsNormal) + } + Algorithm::BlsSmall => { + bls::BlsSmall::parse_private_key(payload).map(PrivateKeyInner::BlsSmall) } - Algorithm::BlsNormal => bls::BlsNormal::parse_private_key(payload).map(Self::BlsNormal), - Algorithm::BlsSmall => bls::BlsSmall::parse_private_key(payload).map(Self::BlsSmall), } + .map(Box::new) + .map(PrivateKey) } /// Construct [`PrivateKey`] from hex encoded string @@ -593,21 +639,21 @@ impl PrivateKey { /// Get the digital signature algorithm of the private key pub fn algorithm(&self) -> Algorithm { - match self { - Self::Ed25519(_) => Algorithm::Ed25519, - Self::Secp256k1(_) => Algorithm::Secp256k1, - Self::BlsNormal(_) => Algorithm::BlsNormal, - Self::BlsSmall(_) => Algorithm::BlsSmall, + match self.0.borrow() { + PrivateKeyInner::Ed25519(_) => Algorithm::Ed25519, + PrivateKeyInner::Secp256k1(_) => Algorithm::Secp256k1, + PrivateKeyInner::BlsNormal(_) => Algorithm::BlsNormal, + PrivateKeyInner::BlsSmall(_) => Algorithm::BlsSmall, } } /// Key payload fn payload(&self) -> Vec { - match self { - Self::Ed25519(key) => key.to_keypair_bytes().to_vec(), - Self::Secp256k1(key) => key.to_bytes().to_vec(), - Self::BlsNormal(key) => key.to_bytes(), - Self::BlsSmall(key) => key.to_bytes(), + match self.0.borrow() { + PrivateKeyInner::Ed25519(key) => key.to_keypair_bytes().to_vec(), + PrivateKeyInner::Secp256k1(key) => key.to_bytes().to_vec(), + PrivateKeyInner::BlsNormal(key) => key.to_bytes(), + PrivateKeyInner::BlsSmall(key) => key.to_bytes(), } } } diff --git a/crypto/src/multihash.rs b/crypto/src/multihash.rs index 248731dfcb9..a2c8281b134 100644 --- a/crypto/src/multihash.rs +++ b/crypto/src/multihash.rs @@ -10,7 +10,7 @@ use alloc::{ use derive_more::Display; use iroha_primitives::const_vec::ConstVec; -use crate::{varint, Algorithm, NoSuchAlgorithm, ParseError, PublicKey}; +use crate::{varint, Algorithm, NoSuchAlgorithm, ParseError, PublicKey, PublicKeyInner}; /// ed25519 public string pub const ED_25519_PUB_STR: &str = "ed25519-pub"; @@ -111,7 +111,7 @@ impl From for u64 { /// Offers a middleware representation of [`PublicKey`] which can be converted /// to/from bytes or string. #[derive(Debug, PartialEq, Eq)] -pub struct Multihash(PublicKey); +pub struct Multihash(PublicKeyInner); impl TryFrom> for Multihash { type Error = ParseError; @@ -151,7 +151,7 @@ impl TryFrom> for Multihash { } let payload = ConstVec::new(payload); - Ok(PublicKey::from_raw(algorithm, &payload)?.into()) + Ok(Self::from(*PublicKey::from_raw(algorithm, &payload)?.0)) } } @@ -176,16 +176,16 @@ impl TryFrom<&Multihash> for Vec { } } -impl From for PublicKey { +impl From for PublicKeyInner { #[inline] fn from(multihash: Multihash) -> Self { multihash.0 } } -impl From for Multihash { +impl From for Multihash { #[inline] - fn from(public_key: PublicKey) -> Self { + fn from(public_key: PublicKeyInner) -> Self { Self(public_key) } } @@ -221,12 +221,13 @@ mod tests { #[test] fn multihash_to_bytes() { let multihash = Multihash( - PublicKey::from_raw( + *PublicKey::from_raw( Algorithm::Ed25519, &hex_decode("1509A611AD6D97B01D871E58ED00C8FD7C3917B6CA61A8C2833A19E000AAC2E4") .unwrap(), ) - .unwrap(), + .unwrap() + .0, ); let bytes = Vec::try_from(&multihash).expect("Failed to serialize multihash"); assert_eq!( @@ -239,12 +240,13 @@ mod tests { #[test] fn multihash_from_bytes() { let multihash = Multihash( - PublicKey::from_raw( + *PublicKey::from_raw( Algorithm::Ed25519, &hex_decode("1509A611AD6D97B01D871E58ED00C8FD7C3917B6CA61A8C2833A19E000AAC2E4") .unwrap(), ) - .unwrap(), + .unwrap() + .0, ); let bytes = hex_decode("ed01201509A611AD6D97B01D871E58ED00C8FD7C3917B6CA61A8C2833A19E000AAC2E4") diff --git a/crypto/src/signature/bls/mod.rs b/crypto/src/signature/bls/mod.rs index 28325e9346b..8a69a3dd7a5 100644 --- a/crypto/src/signature/bls/mod.rs +++ b/crypto/src/signature/bls/mod.rs @@ -14,6 +14,8 @@ mod implementation; /// with the public key group in G1 and signature group in G2. /// 192 byte signatures and 97 byte public keys mod normal { + use core::borrow::Borrow as _; + use super::{implementation, implementation::BlsConfiguration}; use crate::Algorithm; @@ -26,7 +28,7 @@ mod normal { type Engine = w3f_bls::ZBLS; fn extract_private_key(private_key: &crate::PrivateKey) -> Option<&NormalPrivateKey> { - if let crate::PrivateKey::BlsNormal(key) = private_key { + if let crate::PrivateKeyInner::BlsNormal(key) = private_key.0.borrow() { Some(key) } else { None @@ -46,6 +48,8 @@ mod normal { /// /// This is good for situations where space is a consideration and verification is infrequent. mod small { + use core::borrow::Borrow as _; + use super::implementation::{self, BlsConfiguration}; use crate::Algorithm; @@ -57,7 +61,7 @@ mod small { type Engine = w3f_bls::TinyBLS381; fn extract_private_key(private_key: &crate::PrivateKey) -> Option<&SmallPrivateKey> { - if let crate::PrivateKey::BlsSmall(key) = private_key { + if let crate::PrivateKeyInner::BlsSmall(key) = private_key.0.borrow() { Some(key) } else { None diff --git a/crypto/src/signature/ed25519.rs b/crypto/src/signature/ed25519.rs index 1276d49cf08..d7b4715d5ce 100644 --- a/crypto/src/signature/ed25519.rs +++ b/crypto/src/signature/ed25519.rs @@ -33,7 +33,7 @@ impl Ed25519Sha512 { PrivateKey::generate(&mut rng) } KeyGenOption::FromPrivateKey(ref s) => { - let crate::PrivateKey::Ed25519(s) = s.borrow() else { + let crate::PrivateKeyInner::Ed25519(s) = s.0.borrow() else { panic!("Wrong private key type, expected `Ed25519`, got {s:?}") }; PrivateKey::clone(s) @@ -96,11 +96,11 @@ mod test { let (p1, s1) = Ed25519Sha512::keypair(KeyGenOption::FromPrivateKey(Box::new(secret))); assert_eq!( - PrivateKey::Ed25519(s1), + PrivateKey(Box::new(crate::PrivateKeyInner::Ed25519(s1))), PrivateKey::from_hex(Algorithm::Ed25519, PRIVATE_KEY).unwrap() ); assert_eq!( - PublicKey::Ed25519(p1), + PublicKey(Box::new(crate::PublicKeyInner::Ed25519(p1))), PublicKey::from_hex(Algorithm::Ed25519, PUBLIC_KEY).unwrap() ); } diff --git a/crypto/src/signature/mod.rs b/crypto/src/signature/mod.rs index acdf50d12f8..1317403f8b8 100644 --- a/crypto/src/signature/mod.rs +++ b/crypto/src/signature/mod.rs @@ -15,7 +15,7 @@ use alloc::{ boxed::Box, collections::btree_set, format, string::String, string::ToString as _, vec, vec::Vec, }; -use core::marker::PhantomData; +use core::{borrow::Borrow as _, marker::PhantomData}; #[cfg(feature = "std")] use std::collections::btree_set; @@ -57,11 +57,13 @@ impl Signature { /// # Errors /// Fails if signing fails pub fn new(key_pair: &KeyPair, payload: &[u8]) -> Self { - let signature = match &key_pair.private_key { - crate::PrivateKey::Ed25519(sk) => ed25519::Ed25519Sha512::sign(payload, sk), - crate::PrivateKey::Secp256k1(sk) => secp256k1::EcdsaSecp256k1Sha256::sign(payload, sk), - crate::PrivateKey::BlsSmall(sk) => bls::BlsSmall::sign(payload, sk), - crate::PrivateKey::BlsNormal(sk) => bls::BlsNormal::sign(payload, sk), + let signature = match key_pair.private_key.0.borrow() { + crate::PrivateKeyInner::Ed25519(sk) => ed25519::Ed25519Sha512::sign(payload, sk), + crate::PrivateKeyInner::Secp256k1(sk) => { + secp256k1::EcdsaSecp256k1Sha256::sign(payload, sk) + } + crate::PrivateKeyInner::BlsSmall(sk) => bls::BlsSmall::sign(payload, sk), + crate::PrivateKeyInner::BlsNormal(sk) => bls::BlsNormal::sign(payload, sk), }; Self { public_key: key_pair.public_key.clone(), @@ -74,15 +76,19 @@ impl Signature { /// # Errors /// Fails if message didn't pass verification pub fn verify(&self, payload: &[u8]) -> Result<(), Error> { - match &self.public_key { - crate::PublicKey::Ed25519(pk) => { + match self.public_key.0.borrow() { + crate::PublicKeyInner::Ed25519(pk) => { ed25519::Ed25519Sha512::verify(payload, self.payload(), pk) } - crate::PublicKey::Secp256k1(pk) => { + crate::PublicKeyInner::Secp256k1(pk) => { secp256k1::EcdsaSecp256k1Sha256::verify(payload, self.payload(), pk) } - crate::PublicKey::BlsSmall(pk) => bls::BlsSmall::verify(payload, self.payload(), pk), - crate::PublicKey::BlsNormal(pk) => bls::BlsNormal::verify(payload, self.payload(), pk), + crate::PublicKeyInner::BlsSmall(pk) => { + bls::BlsSmall::verify(payload, self.payload(), pk) + } + crate::PublicKeyInner::BlsNormal(pk) => { + bls::BlsNormal::verify(payload, self.payload(), pk) + } }?; Ok(()) diff --git a/crypto/src/signature/secp256k1.rs b/crypto/src/signature/secp256k1.rs index 5fab149484f..b0b50d7f878 100644 --- a/crypto/src/signature/secp256k1.rs +++ b/crypto/src/signature/secp256k1.rs @@ -69,7 +69,7 @@ mod ecdsa_secp256k1 { .expect("Creating private key from seed should always succeed") } KeyGenOption::FromPrivateKey(ref s) => { - let crate::PrivateKey::Secp256k1(s) = s.borrow() else { + let crate::PrivateKeyInner::Secp256k1(s) = s.0.borrow() else { panic!("Wrong private key type, expected `Secp256k1`, got {s:?}") }; s.clone() @@ -155,7 +155,7 @@ mod test { fn secp256k1_compatibility() { let secret = private_key(); let (p, s) = EcdsaSecp256k1Sha256::keypair(KeyGenOption::FromPrivateKey(Box::new( - crate::PrivateKey::Secp256k1(secret), + crate::PrivateKey(Box::new(crate::PrivateKeyInner::Secp256k1(secret))), ))); let _sk = secp256k1::SecretKey::from_slice(&s.to_bytes()).unwrap(); @@ -207,7 +207,7 @@ mod test { fn secp256k1_sign() { let secret = private_key(); let (pk, sk) = EcdsaSecp256k1Sha256::keypair(KeyGenOption::FromPrivateKey(Box::new( - crate::PrivateKey::Secp256k1(secret), + crate::PrivateKey(Box::new(crate::PrivateKeyInner::Secp256k1(secret))), ))); let sig = EcdsaSecp256k1Sha256::sign(MESSAGE_1, &sk); diff --git a/data_model/src/block.rs b/data_model/src/block.rs index 24d8a470e6e..3ad6900d32d 100644 --- a/data_model/src/block.rs +++ b/data_model/src/block.rs @@ -194,10 +194,6 @@ impl SignedBlock { } /// Add additional signatures to this block - /// - /// # Errors - /// - /// If given signature doesn't match block hash #[cfg(feature = "std")] #[cfg(feature = "transparent_api")] #[must_use] diff --git a/data_model/src/peer.rs b/data_model/src/peer.rs index 80894c26ad6..f5da00a8bb5 100644 --- a/data_model/src/peer.rs +++ b/data_model/src/peer.rs @@ -20,21 +20,26 @@ use crate::{Identifiable, PublicKey, Registered, Value}; #[model] pub mod model { + use getset::Getters; + use super::*; /// Peer's identification. /// /// Equality is tested by `public_key` field only. /// Each peer should have a unique public key. - #[derive(Debug, Display, Clone, Eq, Decode, Encode, Deserialize, Serialize, IntoSchema)] + #[derive( + Debug, Display, Clone, Eq, Decode, Encode, Deserialize, Serialize, IntoSchema, Getters, + )] #[display(fmt = "{public_key}@@{address}")] + #[getset(get = "pub")] #[ffi_type] pub struct PeerId { /// Address of the [`Peer`]'s entrypoint. // TODO: Derive with getset once FFI impl is fixed pub address: SocketAddr, /// Public Key of the [`Peer`]. - pub public_key: Box, + pub public_key: PublicKey, } /// Representation of other Iroha Peer instances running in separate processes. @@ -58,15 +63,9 @@ impl PeerId { pub fn new(address: SocketAddr, public_key: PublicKey) -> Self { Self { address, - public_key: Box::new(public_key), + public_key, } } - - /// Get public key of the peer. - #[inline] - pub fn public_key(&self) -> &PublicKey { - &self.public_key - } } impl Peer { diff --git a/data_model/src/query/mod.rs b/data_model/src/query/mod.rs index a28e2c59a20..46100020b12 100644 --- a/data_model/src/query/mod.rs +++ b/data_model/src/query/mod.rs @@ -1231,6 +1231,7 @@ pub mod http { /// # Errors /// Fails if signature creation fails. #[inline] + #[must_use] pub fn sign(self, key_pair: &iroha_crypto::KeyPair) -> SignedQuery { SignedQueryV1 { signature: SignatureOf::new(key_pair, &self.payload), @@ -1348,7 +1349,7 @@ pub mod error { /// Parameter with id `{0}` not found Parameter(ParameterId), /// Failed to find public key: `{0}` - PublicKey(Box), + PublicKey(PublicKey), } } } diff --git a/data_model/src/transaction.rs b/data_model/src/transaction.rs index 649fb9838b4..59eacb1c9e5 100644 --- a/data_model/src/transaction.rs +++ b/data_model/src/transaction.rs @@ -279,10 +279,6 @@ impl SignedTransaction { } /// Sign transaction with provided key pair. - /// - /// # Errors - /// - /// Fails if signature creation fails #[cfg(feature = "std")] #[must_use] pub fn sign(self, key_pair: &iroha_crypto::KeyPair) -> SignedTransaction { @@ -743,11 +739,8 @@ mod http { } /// Sign transaction with provided key pair. - /// - /// # Errors - /// - /// Fails if signature creation fails #[cfg(feature = "std")] + #[must_use] pub fn sign(self, key_pair: &iroha_crypto::KeyPair) -> SignedTransaction { let signatures = SignaturesOf::new(key_pair, &self.payload); diff --git a/genesis/src/lib.rs b/genesis/src/lib.rs index e4861426467..b0d9a1cef9a 100644 --- a/genesis/src/lib.rs +++ b/genesis/src/lib.rs @@ -182,9 +182,7 @@ pub struct GenesisTransactionBuilder { impl GenesisTransactionBuilder { /// Convert [`GenesisTransactionBuilder`] into [`SignedTransaction`] with signature. - /// - /// # Errors - /// Fails if signing or accepting fails. + #[must_use] fn sign(self, chain_id: ChainId, genesis_key_pair: &KeyPair) -> SignedTransaction { TransactionBuilder::new(chain_id, GENESIS_ACCOUNT_ID.clone()) .with_instructions(self.isi)