From 92e81376fa8c3f2d2e0e6df129a1c7ad08fe0515 Mon Sep 17 00:00:00 2001 From: Sanaz Taheri Boshrooyeh <35961250+staheri14@users.noreply.github.com> Date: Sun, 6 Dec 2020 20:52:31 -0800 Subject: [PATCH] Adds the sequence diagram of rln relay (#264) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * adds the registration image * Updates the registration seq diagram with more descriotions * WIP: the message verification diagram * fixes some spacing issues * minor * adds the routing and publishing figure * minor * fixes a format issue * adds nullifier map init for all the relay nodes * removes box borders * returns the borders * fixes spacing issues * Feature/add json rpc api spec (#265) * Minor improvements; added polling for latest messages * internalNullifier -> nullifier, and edits on the msc figures * edits the slash part * updates spacing of the rln-relay figure * edits on entities * Update waku-rln-relay.md * adds references to the figures in the text * minor * adds one more relay node to the registration fig * Add Admin API (#267) * Add Admin API * Update assets/rln-relay/rln-relay.msc Co-authored-by: Oskar Thorén * changes the width of figure 2 * some spacing edits and file headers * adds the registration image * Updates the registration seq diagram with more descriotions * WIP: the message verification diagram * fixes some spacing issues * minor * adds the routing and publishing figure * minor * fixes a format issue * adds nullifier map init for all the relay nodes * removes box borders * returns the borders * fixes spacing issues * internalNullifier -> nullifier, and edits on the msc figures * edits the slash part * updates spacing of the rln-relay figure * edits on entities * Update waku-rln-relay.md * adds references to the figures in the text * minor * adds one more relay node to the registration fig * Update assets/rln-relay/rln-relay.msc Co-authored-by: Oskar Thorén * changes the width of figure 2 * some spacing edits and file headers Co-authored-by: Hanno Cornelius <68783915+jm-clius@users.noreply.github.com> Co-authored-by: Oskar Thorén --- assets/rln-relay/rln-message-verification.msc | 43 ++++++++++++++++++ assets/rln-relay/rln-message-verification.png | Bin 0 -> 124706 bytes assets/rln-relay/rln-relay.msc | 32 +++++++++++++ assets/rln-relay/rln-relay.png | Bin 0 -> 71385 bytes specs/waku/v2/waku-rln-relay.md | 34 ++++++++++---- 5 files changed, 101 insertions(+), 8 deletions(-) create mode 100644 assets/rln-relay/rln-message-verification.msc create mode 100644 assets/rln-relay/rln-message-verification.png create mode 100644 assets/rln-relay/rln-relay.msc create mode 100644 assets/rln-relay/rln-relay.png diff --git a/assets/rln-relay/rln-message-verification.msc b/assets/rln-relay/rln-message-verification.msc new file mode 100644 index 00000000..b02a219e --- /dev/null +++ b/assets/rln-relay/rln-message-verification.msc @@ -0,0 +1,43 @@ +# Sequence diagram for RLN Relay protocol (publishing,routing, and slashing) +msc { + hscale="1", + wordwraparcs=true; + + a [label=" "], + b [label=" "], + c [label=" "], + d [label=" "], + e [label=" "]; + + a rbox a [label="Relay Node: Publisher"], + b rbox b [label="Relay Node: Router"], + c rbox c [label="Relay Node"], + d rbox d [label="Relay Node"], + e note e [label="Membership Contract"]; + |||; + b box b [label=" \n nullifierMap= [(nullifier, shareX, shareY)...] \n \n Initialize an empty map of the received nullifiers \n "], + c box c [label=" \n nullifierMap= [(nullifier, shareX, shareY)...] \n \n Initialize an empty map of the received nullifiers \n "], + d box d [label=" \n nullifierMap= [(nullifier, shareX, shareY)...] \n \n Initialize an empty map of the received nullifiers \n "]; + |||; + ..., + a -> a [label="Keep track of epoch"], + b -> b [label="Keep track of epoch"], + c -> c [label="Keep track of epoch"], + d -> d [label="Keep track of epoch"]; + a box a [label=" \n Message: the intended message \n \n epoch: the current epoch \n "]; + a box a [label=" \n A(x) = sk + H(sk, epoch)x \n \n shareX = H(message), shareY = A(shareX) \n \n nullifier = H(H(sk,epoch)) \n "]; + a box a [label=" \n zkProof: generate the proof using zkSNARK \n "]; + |||; + a => b [label="Message, epoch, proofBundle:(shareX, shareY, nullifier, zkProof) \n "]; + b box b [label="1. If the received epoch is far from the current epoch"]; + b -x c [label="Do not relay"]; + b box b [label=" \n 2. If verification of zkProof failed \n "]; + b -x c [label="Do not relay"]; + b box b [label=" \n 3. If identical nullifier exists in the nullifierMap, \n \n extract the publisher sk \n "]; + b -x c [label="Do not relay"]; + b => e [label="Slash the publisher: Unlbock the deposit associated with sk"]; + e => b [label="x ETH"]; + b box b [label=" \n 4. If none of 1-3 happens, update the nullifierMap \n "]; + b => c [label="Relay"]; + b => d [label="Relay"]; +} \ No newline at end of file diff --git a/assets/rln-relay/rln-message-verification.png b/assets/rln-relay/rln-message-verification.png new file mode 100644 index 0000000000000000000000000000000000000000..2360abc827ad2823dd19e08e40a06cd1369971b2 GIT binary patch literal 124706 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

vjsNHKetgvpL*lykyPerma2FsBGMM zEtJnUYNBjHa*TaWu<9DQm|n@}9BFgUG0Vz$Wi89+%jIm(#u@N+)dH8ENS%#$QzDFaBUcWP@|a7UAa<1FCb)gF3vNPn%XGc z)kf!Z_(gx5IqZd+R#kJ>7QOTA-Y)L11x2b8a-Yo?4#U~D^R!+?>BL3u4V@2+_B8MA zPwp_&qS0!(r1uqyJ7kG9nvVw0Da$?cVP(#%ucy5qp0Htrxkl>ndpkU3vF_M@YknN) ztB5@47@d>?0nde9LEU^b+azlBt6a0H4;p>UA<;WF3#y(gn07ma0rcRJD<54KFgn0D zM^kv=>Iq@?t~oEWm}Mq%)`bT?Hi6a2QRr%RkMyOdyqDt`fFa=_&)mw}wx?$esmDl9sQdwPiCfbaRm>6lW%r^*SWH%RJcUU zYyn)l^}pjo(T|d3CIX|pJNltBcJHX#h13uQ=L^XDxRk#IoYHS&)yr<|xpU|JF_Y3w zq*WiixMB|>snI%h3OQjq99_-|MacKDy}j3eY_;(@I=y84*`3xgCyYCEoS1FmbGIFJ zrvnbO)<~I(D>mv0A~wAz6jCCdoFe#)!QbFB!{+6&njdSV`_dy&vQi&=V8$E4Ax1Fu z@JF~Dl75pvsGL^tMSYs71%tssq@<~85U-|nxLd*FqiKW>f@UzIRP#vp_U72Fs1z*V z$xJPMJe0+{e5kwG;)ZT{Y{19QnEGc1O=yZe$$2h)C&u4~*Qu)kw9-W6#V_wkR~h)r zuJWiMcEnRq8Xs>9cDrbByS#~oRQz@LI4P9LXHgXqOQ=d(V2Il_1;{;oz@Uykx36`m)Vg$?Z0XIEt}*baJo015~$2 z4&hZ@R>F@?)*iz+pVpsIJh6wtI7Y;M$ZC7mkViOuLWnq3RI`RfXyZ9p2`dd~%R!h3 zE3H*lu<_{&PPiJ^KyFy{-`+4A^JYyYBp|)YvkwJVX~YhXW7=*keD@K zV%wDMP-U%0-x0~|FCYzrAQ9*|GcdpDVs0k}6RW)Si(AdvlI}vTTI6r8S~L!`$&5+3 z5#slvG1fE>Q;Q`mrk@9M?r!CV9twkt6P=tu9?8n`j=}ZvfNDxoiXbSy*XjrDLO)>Z z;NO^DsQ6#V!2z#lj|0*IZt&~E5;ZJPLk6D%UHPjk7}2Z7x|QFJ*$Ky?@4Qk~rpvCr zd75QH+*5L$Cx3mNl_GJFDet|~1fKE%HQ14X^K1QB<+YX%xS!8U=*v+d^0!6E@hdH= zY}_tPqtRSn*8?v5=2&*cc31;fbSz)Ec1FJ3p0M!f0#Jp9Fr*)zdaV zPMySIc|C~1bEat5S3jKD{qz2@|N6QNMdIM2GK5O%GB);OfkGlwO1{`jnMpjU>}RV5 zxrApp*fBQbPI0C?g;~JO{!TNfI}Fv4mdjb~Nq&x-7>0lZf#6GJ@rgmtq zl56D@(B~J|Bz6Wy@C`oLZm`haL#HH&D}+L!gihP;?KD%ggCcDW=xkn1v~)PhrfRKt zH1wFvyG^iVvN2~t&VOjTcuY7+{yUcc3ea^r+V7P@*~mOHGBXS3%{Y-?+FmiZS3kN<47t(yq0HufG^h2E#@0rlUys2Xa7SK-`TuZsChVVW~5k#l&c zKCx@|(wnK1YaG+>dnGj{jU2Wmtkv}9f1$wsGl@m1(6XA|tYsg`qW)}9#>YO_9p*h} zY2lxe-|)WJ>}&n_JvxVdlp>ew-`!QEzit+T5+c$ogOY#X_hzTm+;Xqm`^BKPcEvFj zE92PJcw$rb;Zgj5GIjAxMS)m$HLy~24n2O)v(u&~y*zfUaopNylXb0NMbFt$<1@x1L~AJcxqYZ9PbygO8wtk#hS;@`ysS+*>81Y zmnUm)@F~+N!kbu>*8jAa{_|xj(>q!>vO0u4IGq?-Y;Ln#KIpjRm}J$S9OXNAZm`1_ z9zw6thmR*ew;UWX_SsU_{IpV36o6rS#96Z0#Xb1 zLtSeKBh~|IEwX4Fa7sjLdmpK*ChngxaqVN9k>#*xh1>ha4{Zb76O(|ah}-6V4q;MZ z^3UzAN3KMpDIyt+fM;LpxC)t(h{DxA@q!T4@6iOs2V$9ylDQu`v940+(z5LB-=iix z517^j&4tR`{3SrAx6SyniBPkWM|$4NS8gDBJZtaYR6&@gZKrfV^%8?%#4Q-^vjh{m zD$>rMw`ucQ@9(!h;i4TChgXH1V?pt(uL?Vs?~I67!QQt7n_6YF3wsDtH=d>>Phdo3 zJ-BqztXq2C-j%{!5OaW(1V;{IhsIpuqN-T)NyG_-aG1dr8O0k#u7#{Bl-5=XaLvA;b{ z(IZuFRpN>pen=)*3AgfzPu1s48ZympP_Bb2%||Uxrv8%5JTfq1V*Y&8w(^9_h7!sI zksS^Y*KI7=V*x4M35>?jRo+ZD1Tz{7EG6rJ7j$lpsKHk5u6^fH=Q27VBL3vD9G0A% zjlMsf?d$33yuZshL~wLo_ni$>sfzl^sT5lVV{7lmRY)?aTZ$N+9m=!mLS*o33?{(W z5e8jFiWxhEujL}x4pg-P0I}+Pbd{S2f?~%>IC;Yd2<^91_(c{G&6(3Gl39w-r6`gI zG)Cx7ol;N}k-@Gr#746!NZxW<@hg1p)v|!Sx_UlwkyAcPl~% z6j5_1*Tg;(Hw_p~Tk}V`K#t`b8t$|>qW4&U`zwxtwB0pfk$ZqQj7P5|l$02(}SJSKivWQ3wvn;IT1Hpa#C}%^I?xCYGf>u~nD)@Ia zSB9%&M#uDuM|V<=Q-_$>_(V)!VODwux0L5~EN$zy@{u@jvGMISUj$@UPgqD2ayUNI z4D~@?6Q`>%&0%xy0da*kqSF7i!fT{G_65tKGD>&owuIgpS&N0~LB4X>P@YdHgMOMF z3G0St9o%7|ev~f%n zRAbwA6zoY!O1az(_%9Z%Q}COIxb9vyyDxjzvt0bAQdLbiyjR33RaCNWS%}})#aSFr z{r!!-O{J<8mQxv1)2Teh)p8s`*QV#wWv@T5o);4;DN1q%R5d-%B&|Gr6_U=iHT5(3 zI;8VIaL8K^pGjGLq|1DMnvKuPwskqJ%|T@@{On1l5Ng9WzzHlM#B|Ngyr3ikA|PG z5ww?CkK)IeyomQ@7=W&|zJg(FqE63WR$0knwLF@k;y{q;8F=>PZ-7QBA2IY2;f-iu-SO7&S( z8Lpw0H@(7xg~@OE`4hXJDWFMpW)O`oH`gMQ^QP-(=P$!Qd_H!3iEg3iZ((X|(w~0klf?vYD6$)|7m8T;Mm=i4h%-!3bV70&%$~pACs+m3}EY zqG;QJLU_w%JVN!Ae6%s$C`ny?HqpWBA^by?R;=&ay^VWc1^Jzhz6r0~?)NMohG-Duv2#|GMVZ)qhj<198l%hcVsUe` zRi4}vdqu0|Yg((-Nlj|CwwSTI$=yzLhW6@?YCiduUG;q9>YeEe<#r9#}8Z7?MujS?!y7im9SFNN-dK}MJ z^-n+}O{sR!)4u`?rIngg)z@ve$^Xdl;k!oYbd2sr>@z^8BlWO;Jx*WKhKbT1j)%mEBp_`xTSz>!@Oexlhpdp1mgyI<}9Kdo>uxp7)f4a`@n!~FyuI^&f-&QFp1+6-sxCe%hFq@?5e@S$zke!6gKvk z^P)i|6n%Pfap$)Wr3xft48N)Y;Y~!IQmB;Mo|{Z~HBwd?-YD{$xJR}(5}SxKuV3@_ zSz>R%RP>C>$%!$dq>Bc_Zv-a*XUFsb@450aUwSOuKhm6_Q*>1qTibxI z9plfRxfOtDQf-os4g3+;OY6bUTTdZD!sP>ot!>5@nO4z)#4nzr8Lwtpg?1rD)-P>k!Otfv44}Ym8hKxMK#$DLB7%88*rK0*u%E2g8i>G7yL=nc z-@6qxV-R&*Mt)&}_L7~quSJNi*idH*$#Oalf6OuR+zVO2_pT;0cyHwJ1fB``(1aYe z_ipqX>36KlZ8=J(BX<5-e2<_6dnF zKuCPS6tMfoFD>m;AS$AjcW?OZ^Z~}|rwg4Jj2H$d{2G!FAG~O|g$I$Hm$msywANVn z%^gY|J2SWh>6(QrVoEU;X3MF$o{UwDO}Cu4s5-~hqv%c_VDfr>yZiYvO8aW)MXeh! zq_d8v)tZ>rp|UXVi1UDy=I|3nq__8Px0=51j`>hl>-gk?<$CFg6G94?bRRuqX(<)X zuRI^nS?Yg#4kI)Q8&UB0e(s45ATcJZNky}lZ70PECd^U0(?VTP9(0EHL!$%IR$5%4 z+s1DsJ%XmVW<8H7)s!cH7JWV(J<%{mh6oE3=caw))#p((U-&ZDR*$q~-@3w@o$4=L zf5oH8!7+fLtQ_*%#JiWJ4~0}wv|E|(?z$J zalm#4!`fYzg>6aH>5`m%dm@vmvF0|%K*4KZuZN$&aLjinu(H4hEP}1&Oow;`S!RuG zFh3G_vNJ{R)OL<@n#1>E0Rn|R!%676 zgLR&%yF^Gyc8~0m@(%{#8Ga6$9-eof*9wHHT@%jXnXZ4u0 zkgYJ`xz|66$OIO}7^L)In8INvp^Ztg+ZK1!p90EO@%wg?>&S=_4$#$oIW6(q8Q#?ytR@yCiBIjZ zy_6rMxQG0wN6J=o_{YS8wShiK#Xc}v$w4bOX;CV(OpF$jp3-{E!NJ{-g(6;6svmV! zwq-z`?jYNMR}{01Pe-jZ&6F>LFMeTnP@gKj*{vV+pbPK(!PMlne6QjF{dUQCIYglH z@|zQ<2|bmD9k%bWXI~St&g|L7p)$^9ruB%vjsO^|yUjj`^OFVmhN@ zdc_P!@0J;QuRuiFPgl9FV?Sqi3r!cT!K@nEKDWTp@Y^OrQZgIR8t9XXVm)8865Vr2 zMU9H-i7j^XUhI?944PP4`C$0lV-}xUb!KjvIGjf-<`@Q91WK-{C^w?ICO@{Qd})2D zvO?cd&~&zvP^I(Qm%SPrcIs)x%~BZ`O&qc~*kPtO$ZeB#;%ps@r?~gSnY?v2F|5|P z%JfI?#r#F`SF1-%6PDgoS1@T>mw3RQ0z}2>n*E{sd|wsr+>bjDGDYjl`Epq8<(racIcH@4ARC_!co5J|las$7e%) z#ht%@MOr*tHy>f{aSdzY<$K=!2fK@-gE#6J?X=L} zbU6lcImO+z{~jU#e}s2v`y$(d%CHjt3P&7b`juo51BvWJjL?js>py_i+_eH6^Y}@29*N~kM8p&$e-C2j;W?I4QFQ{U0^U2hE%TfFkC!k4G& zY)z;wb5b0Vrx7pA>Ne>d;)T%@c9b9wH7zY*+qLbIJ;ei&C2te=5Zx{+scKC8Iy4{1 z%}XO>jS+$o^RM?dg~*e$6^>SzmiLhwL1b|Ogp_2)-eW_`arpor?257y!4_(t}@W)2Fc^#3pb##*6srxY7KLM9eC0-@d zs2?fOhh@fK@izuqdl|v+(TIzbJ`5xAZyr7GwU;2}43)Tn{}h~`hQQNEW>55zO)?~F zV$vH$X+Nf6m|(OSQczW13t7g&Q9ZrF44JGIvKXEhu|QL;;YA@TOdz)FZZ0BbQ8*?H z(aV#7C+7lE=7H93aG4tIQczup8*#RhY6_CL9R}WWLe`$T$n;3|SgqfIc#N0+Z6XDg z9ez`jzVYe@QlHr4WQAX20m}Vbx?I}ohtMNDSP6_);zB(0O5eT7KuRQs&TRI^4^m~d zx~URq^F;oE7AbQ2K)mg1F}P!lI05f|zV!SqnSzFIDMg0vVp}%^^xEi33>N;Ug?_-r zQHf%Ek=y&?1|-fK#Ve(gNn|Ko)19U%OwuWMlnwpLF+pVxEjwb;TR)>dTeto(WSWgF zEz+7$3p8LT8FAi@){+ls~)RTt)=~q3%|l| zXnvmOFO8cOvvD4rvg_HXwRl;sIN770apvj$c-plZtyVhL?lDceJP_&G-8OmHT_3iz z3o8r*BRK~fQMN5CguX?GyE2*{)DmI(6n|TQoZ03&C3@upmJbOwW5_U$F$&ogiM{s> z>drkCln&}E@fy}z)gjV8@l(H*jkX=vfWYB{^Fy)2<$hvC=QWS+SH0xAs5gtZ*PkV> zdLYt(P;}HtTQJy=*GEY>qNC;~6-83I6h0^x%ec(GElgfop zxE#G?mj&@&M9N@pW_6!lR6y+1WN^#D<8S3R`AgpUbm^Wg&iR9cKJIp8E01X5q9uN{ zm<|uCLfsk((YB%!ADUPabAo1HpCzTg=hb%PbbT+C=Lq5-pzF$->CL~Of+6mb(p0_U zrkfE%@*wOegh|S>vY(Hc--M#`o%!r`7t~MAfXi7?$(Yh>g<;a!0sK_sj?@HibS)2N zaIpMR7%OZzILbd3rHE4+YDW3gG$Y-}ne!j$=iQf9kuuy`&>iu&j=&)jW-;?voi=bJ zG+r~^OrazJGus3Z{Bi|{G=r{MXy#I`MWu>-lrZTdb=O@_G(?TP5_bEEisgUP)q$}8cR(y|L&38>y6pq<1_q7Y@eMO{~#@e6hz1jc3ZRLC-zQ zq&iiJPUG-4qtD1G?>N?dlj)U*#c+J1Y8TDXWzJO4AeQgZnCq4YqL?R~ODNLqvIVg} zK7Y|~*4P0sEVVuVQJm2x46R*~)_w|GbL^>~U_2i!eS33IU|K*DCUKVW00sgmrrH%whmM?KCp;R51nZ!39 zKUQ8lWZTivbIZCZsdT8!?->ycXgA4c)S^XSvP@XJCkQq5{@*dVCoK;Oljqm+iGG@h zzuWZLWMbsz$!`0Tc;YAJ+C~A@4usAgi-X=We&N_u8!1Bn4YvFL5fJX*)({8^uh@Sf za6j;B^%kP*@)_;Sv@Hz>2t%NB7;L4n;T5=qD9^u>6yJmhaTaR3&z zNr}_eLHT*(MpIAZ=)maoN8KY9Am<_KAli>J7};6{-0ZUd)MTsSjqQ1B_-nB7O9R|K z2;_tirKIN|xgOiLwxiOYM@vH-s1e465dfnfOrjy||5hh@en>PXHEol1sy{s%{;I3% zM^V~jamgA*Z$ALpKVZ_WRFB~-1|X#YKdpKK-grc@ha4A}z%J1>o-nYjQ z>llsUGFRZlU1S<({ur5+kwD!H-h20GTNZofL4jxtqos@ci~Dm{#(e+0;Om7GkO!v; z5|WEg#y1kILen&|2c#@&LE?BdPNj1l7&k-sOJ`a02f6U$-j0$HKN#29FlWWUM3LzUn>2V|!Y zqf#ZBJ|n!>1wPa%rX;BpoPILRWO!fpajGSv3{Jv7VbYYd>%}4B=^@fSVn4&gUXojS zIl~@D&uj4xPGLcZ%?#HW3sx>dAAX(yd9bTFpek^ViaNoJCo^@NoKam}UC@F(E0^W|yoWu9HW-@FK|~e=7#Ns;bD&LcY03g&WK~=TD7@ z(0ouf9wCzgF}UY#OSQMup{&k&(MAova9oZ2zh2FS!yiTe)B+f>D)&odAHXsGt|l4; zpEMsw(7`;k$l0yU2x50KmE&kD;;uNlgux*7Kj7z=Hsvv_sO_2Yrxs{#CE(2g)TDA4 zkFd4eA$~#kIbwaAv}auM={M3A=J(!XcZ^SZ;?eh85s^a%6YCyt3D@udB=uy6{$tG) zKvE)qEHc!F)nT)w98fh`^e(D?^s8Ho?ZW>opm)~E!CNz3di|xW$9+dcL z692l)7c#mEKZeO#h~37$rgL~8_Uc_`Ly8`EU1SW3mA6YAN}AH-sKT_E)D!^Z#_m^z zYXyk)^l%cN(o%JiyZC3ev1yICj?8n!lU$qIV$OuN!9XKJcL}HTp{y?ovhEsL|3RJh zr=UpS9h1_LGE09!0Q(W46beHos*YYx;j5{P_oeE5K>Azq2dLoE;!cV2M< zKzQ(|o!BY;39m!8YaDho+Jwm!7`UAs9r*I#cx3_nDSweUIpt5)OGXHli~_R?Cw6P^ z*DtRwj)q_A65Qmpe&SKgxrj?cx_<$NwKo=#r$W?qGxXYGlzg7alo-ft7Wqpe^{?tH zvdsTpL^tH0LK^;mL#73f)$eM%HH{!0u1fu-5foSbqwfA6?bx5e6+fkkP}gS#0sF5X zXUu1EE<{d*?1_JDl#Q!@?`4$2;HLskI=K=p~`)m{KYK8W?rNK;%OzKnK-hpJ@>ya zwj=_aqa4a2ykV8t040FO3wGU=jtP~55KrLo>1{gmp$%;v?)&-&-Rhr{!R!m&7~m`0 zGOcXg0pXv?Fc0P=m%QD=`Cp{OM9BTzQ0C?qx&IXA>vPy|hoef-r@c?MomAiQ9eRheH9b8{uy{BG@<@ z*n6m$AG+~;G_1+rbo!!8#6+^V*`qSK1tpJXg4O8#=-u)XtVTHNcYSG*`~3$4;A8rc zAXh~KCP?ZvkcKz!_aOP~M|&|kT#{661SA1-%(h=T_Vr4x3rIQ%IFZjo=4A+t6qvw8 z&U-LD$3b+;;%FhFx>_!bp%6mI!CtXr!)TK#QB*hr<`7u0?CCV?XWNnohF%~3)Ol+j z@AVOL|CC$rt&4V|={osSv&&Y**TknKfHM;tHh+;~CZ&UHI7IhgRusrqjWcTdHSE?^ znD4cWOm%}kifl!apgV4odWF5bw?fp-5UPm+9VLlBP0-d}?elOde)4BPoMEiC@AV>} z3ef~|fjd^*^Brz3SNzQRQW2&WaJZ<-d<5mW8i{1fNo_@v9F*76MJs35fn}U7C`UV@ zK&1B?O;@*cG24(%ZvgK^y3CBBJj|~Zp&b>EPu3rJFd(vd+I+1nu>8p%1xCtn<7X%T zu~u?~Jl~i4+Yputo||ak4J)6pS~OjW6SWEirbryhf>2$Etu7|SB6-dPMUpg%n1m}= z5VjyPE9N=^oNb)NjALXaF%a+^NkqrlpN{n~wWM^%o&6UF^&-$US3~b2)P7jjrF?=U zJ4EpY<^>$kfWGdDDgcy~W)H0(`4W+F2%9lqT>|KOEJ)mHl&rVvce>q|25~6luq8F& zGa~gGzcXsFOi2J45f-V?zpYZzJ=GEXSv6~#x~Dl1F5O4s{XwXuq)9EM$kn~vN}&(u zRwfqI<27M_6?Q6oQc4GML({ z2y*B@HL=bAw1!=dMco`1FVwp6kmXd!159(W+rFmboAR96J=VvpgQ}SJ+@WaB=6{?2 zV+t*7$GLy{0zR85PDrlbkq~^%q}a310p?mI=+ZzDM|`SJvSCXrc15KT7<~;2qvN`v zOx+Vg)o)2@7N3-rqo>dHN}MM2Atd?^v{#|$>dFi)RZ zO*gldxwr1@k)P89py3_#NNxYs<(;E+SnLfzuex`V?XXZztmmqw9QON&msLHUYB?|4 zfzNSYr4vKJ6g|$AJp=q|ZtJS6T?|I<6eV6#B_>82$tf7L<-25aRuqwJj*gLr0pJGu z+l98mv~J$fmLP#cr8Rh&(%PK>&>T>)2E?IKv-aP-B7G+YR1TNp0puIFLVmPv%bFv7 zAJ@HGefk>T=-8z-9WD%1Xc>#+ZN-h?A8^Dtr-U4g@hkqOotJQqnMbX~!cQySUl}EN z&*DRMDpa5Ahek-fD==*}uW#;FFy`O|un``p>zAWYH` z8`r%%nV>7 z8<$7G`u;u5kD2R7WKW%}WijkmsZ|*`GTixV>u;1!E=62vWB&CpxN8|5fksg z#NIVh?%)19Wbo|)Ki8$of|eNN3tt_Za`%c^3iWx<@)oN^SM-?YRvuaIBjQ)WYvI0L&x@6c#9j?{sXNx z#bzA)(@)vTYi{#xY2bh1t<)F%37$-E-i6CWR7)CD@e13j8#0|rw--P=7dcaB1u?Q4 z4NckoE*|>xBUR`!s;tj17VWCI4gJciSsy>k;K$2!0^P_oVJixc`}xEE@B3Ton>}&H zZYpg)fJmi&c*68~`%ul0?m-wb&C4dSPZXN}IL1xD=BJ|}_1iTkZ%&CohTDgd(cp8# z`L%HkYu4GEcD`RZU~#5H{S3H@tnlA6bv`d~Af5p{-g%cWYNW~SF47Qk9ndQphanE* z4Bj4NsFxQ3>Gvzk*_eKk$mP)f$q_B5P1D-$?==dghUhUJkqWXA@eBcWP<@*}Yf7^- zyL9@b%HtGbeb9&Xq4oyP@6|ae1Lnksg3BOe1XqZJZXjnr&b+Iwp51wmzdxFUz~vmu z1QWyt&3yn(wF9CBM)wU?=6tG&HS<61mX?H&r}Su5 z7D-_x2OjRZ6GZsX$1ogpP-sevRFjkR&un&gMr&%p$$ z1tfClm_JIl7YFL0#eq;_lk!V&9$p0QJ(Qx5uZY>ao0RA1`1z>1|C5yaGKzn$_KnNNvrgbUZvUXEguxs>%eyI;`jMTY;=$t_A|DTl*m3 ztRKy|O9$txc@9>+!nFoCz#!XS(g1zTDW;I0gI8~~n<_R=4MGqQExVHg<{~F7@M;Yf zdLYkUtB>_`nS?|L4)%PwVL3;|VJ&WQdIcwi5>jsWP4pA0+i2o_#_J=4ifAp!IDptaYFXg#(W1O)m3yuC@LPbDAQyejsvHX0ct}OH8s$oEQ2%P$ToF9eZJcz z;}@I?I`uC-bGl;pY3-F#+TClhz_<741SgSElt*%Y_gR^H}h0HP9jN)FY z#K4gL<#E$uj9VYg_cdP_Olbq|$0dxsEo%;`mN#^^y zp6mKP*Y$gz=ljn&=i0|!K0fR7x$pP=8Zl&2HC}N$Sd`bDzYxx?@Qx-SQ+o(eVjyj) z!$NRdGU@DES!&NJwFgfEgfTFB?4#a`q>x0lTg*g~)@)^FYpz<|t2+MV!oMAr+@c z$3L9tO}<<5XUa9yTon*>n_fh8krA4!V=}sql>Z@EUN)Z%W2;-Z%CzyrcevFXR%9+3 zC4{EH7$$6&3V|#|2nnB`Uc{UwIJ5hp?ot82h!Y=WuHH`+aDBEqWO4{a=rji5wcr69 zz>VH96HN;x2+oP48=(WI7|$NeYuU!|UA*PmW$L2E>_Ih|VjNVq{?!)qjH@9mP8DM6 z@bCpb0u!F0==l(mjb()`vZ=XSq+TIs5x-Vc}p=D-QKqQC36^TPe$uYUg1 z*0<|Dn_O7-nvdaVdi=}894WvQV)8LL7($P6GLZr5`=rOS2-D?`Yt1H1nyv{g3?A`A zu8}$MJ)(jGWz<8_fvsyC7)MOAzJTjo4YTaSkUlvTB-9?K`PUTAW@s6vxj8pIW( z7!X=Kc?winX>kEHIAN&Dce3?U_L6b1zvYXQwWsyHN5}e=0fs4;#hm(x9eglc^fo7N zRWY9r>&wK#d7pn|Sw=5((XPzZK>@l{dn`Y98bzC%+wKa@PpBu_w}j{JSzAl$OWaoU z1{Gx2iJjIs{uNTn$3Yz5M^6ecg5A~}{^F~w!4!uW(Y8!`M0q#EcP9T(u&i;3uSP(r zito9t0}jJlVw-*Xd^TNLx}JfX*tGyyk9PmS51{DPkq-`uF#$!fE3#IZuvtIbx^Lmy z#9H^Kc8|_pDP-P^sqI~lAHIrX{+~ye{*~|NR&f{f2g@De`sy|o0iA*oK6_dLvx3Bt}T&bG!i$pK>k9q1}jWuI7u7CMR%vP5uU-RQH zRW=;JU$b2Ad(%QpRSUNZ3%2iDL_audBAWYu=%+ZNqzkfVHAkG5wNN5li50@Xu2Q|&FJ{3F<>ZTQ(m#CA7b$BxkYVxNUS8HYitAhP$!53jff`3vxGeb zi%1;U8*rbmJ=;%YBy2|ksN>wM9X0Zp(oZ3!`#Wa|@Ous$KQBc15OD;HRqOZ9sAyILQraw_qps7{*?{_ z*I-q;N5%3)2EtHJ8*HT0)oU)d?E+?nt`d*~Kn|AqyT~>@hhMJ)L4mPY71yHZW1;Q+ zVBsN!V4yg<9M`**0+@? zbid-r>9_zr4Me~YinG3kAQ@K(I|No^A-10=us257X|s(#g1#XN6jeFT3r8(*|0Cn) zMQ5Cmv)rOJ{4Uu|+aIdT;eKfRQgi~?mZbq{=3=%Mnx*0=)Kuqub%oY=nRN3A+T?8- z=E3vE?~so>Vbha|FlPvb=Z+3Rt$qod+@WS7h*pnY{V{e5M`l~tAUZ-o9{8a**(Q)>_eMpLDU(6wp zpGG62MUd?%4?8q8O9;;5s9+k;VebYeOGv}*eCg|3F0mv6eZ;na#$|RUQd36s6MyQI zxcN=vhbOa>7>YiKHP@05HCKrQ_PuPyw~$#&d}k+zAlH9Kvfa&swtxydC!J*g6e1cZ zSp~^m2XI01^N~x007D_5?2|L%A?xe7{k0@IY z+s=&a)zzms0Q%TD&otz~oAOyCRo?FzbcAy5`d7AYqIBx^LfNoHRS*4eyp~nN51D`jB$J}H+We*t&B6)B%2*hyDzQyn7LsNz%7%H-DevV85%v4K+R_5t zhvK*#v*}vtMfrP9e&hvYto}@5(+*v18eTtFcuJJCl1PI>9f;=fvwDs~OuTN}68(mq zg%s_A!NFM>71P&d)Xq03+3D%LI!?g)duB7cV=H`*cLGQdml7I%Ud>?Nc-SA~6#Y0o zG18*Qn%|1kx8KM4oxw1g9XMB?^4(y(lrKB;ddgqpJ^VaL?A1GaXw>ZRq-ipIYImala z>Nnrq2o#-%r|D4i(6`H_3u;!cif>)M^5p6U1uTTQjZs=Ss~Xdv7d=-DRmTR*BzQ;fy}M$r|)0fx*Ajd zEvC%&8mS#WDW-j+@yxL@340q8tawl9Ue`G+ZLHgSGx{ZJj!Kn(5DS6xi#Fi-u^3de zXw3Q1FDkUbaJEmnlR3lX>$nN?5MXeVr%J%aXO`1c6YJH!d3R<1CX_`v%jqX7M1ra) z!n`&bp$czh0pOjNSm8DQOUI|IzZpwRz>cjbKA{7c=SMW{zlM2W)Ou@3hNCg@79)wU zIZGVfqM7`{B5!Nm-Y6z$PM#NTipbv#{n_2=^a##bE#rqbiv7dPRpoM6>IbY*{J@Zo zw02hP%8RYX>`4yD8W**LQxSr(e4daL4G0~*$@9!|Ob`b(v}C4{R~>&u?K_RNvHw5G z`w$l#wk-6!2Vuc-*WD4CgUs17raG_T|01c;AJ2;2E{18n1Hk%eNFfjFkAm_b2DCWD zl(G~(F9iE0olMbJk_cFBC@$zfF4{5bF1v@Hm^NnoST`p)JN%Las92v|v)D*-p!>o4 zF(DJ(LJHuq%gz)Oj@kuInusbYaHMAwbp(<{*eAq$lV2l&5W|^PY(-y31e%t2zO!Bs zY}`8grxpM*B^%x!i`+ySiVkgHhY%B4&_}C@)q#+Fqgt21#8+YrBg9ak@oLB#2~f7v z%|~RIs8lf-DEy{VEmm4`4BP2GvZWFsBQK}l^Xr!CBr7^xOxyZI^ix_ANbQ}_kNg6N zvVJpck)&8IzJ-y;COTpR6*%r4>`9!xWD60wO5$CAI^v1_egD*OP5&{U6A6&tzP!bC zWO~tK8yU9_&0!pG`Xl(g<4_L}*V-jAQ3UX3q{>X5(Nz%Mn+YBzd;@WJ!4@6~)26ku z6rrSEb7m=%Oz^wX(ScGBn_{|@Bm!H+icDCqFH~`6Ni2%uY{2(icTB;L*WK8@ zoLK7P!!Xcko+wYPfJqI z!LUT*+k1Fp`&|ZN9e0+lPh7DGBjhPePDT-;ns4CA;X@_Izy4d-vfC$KJ*hKUd%@#* z)D3L7AJ7$!*qLq#87H~#M)}AfkcI7P^Tq&KZYA+8&^Tt%NPa5rYFO5(B9&m!OhJ`7s~3)DMZXFxlQ3$NE3;7BZ=a zpuohO=x)Bi`)-BvNIBCaw^-ggbjxvr>3VF~KwX?uDM=pz!vN(PK@}6fo5%+?tL+G?cR_@#AxEpp8eamr|lg)lyvZV^PT2huSP6fb`h}iytcVKNv|YwSu4M9 z9i^r?8a!Mk-@8F#?r@mE?e4U5Af|Ve2p_@?(Y$TV5Efho1ako@F!+ug84DB=l%0RK zGv4JA1~U&pg7F>J4R=8vFRMR_;X7_rGUwHSmxVl4z(i8uk_-iAQ2_2hvi1C73^&5< zhh3*D$y7Md=@*f*Wshdm}lA}HX*7b0*5AsF95x9*LJ_9`aUKF?8Hs zz%p7N-pJAt>^{TQ6xJpu(a*!f^JLCeE8B3cPZ9St%1en*y*sm)#~6n%=<<}5P-q=x zTjZh46wc6usj)FRh^(yd8#0sk8@FB2lN}H+@oC&DjHso;DPPCZwAKE4#kPC3)E;{0gGZmwL>cf;+>zy&Iq5)5%TKcxn%d^xQ z^o#pu1em{z_-@Do;AO_038DxON`M*gh9!tGS~6MtLk~tvrIF1Ur?g+#AI;1h$3sr# z=JyN~Qc^L$J@=8o4!d!ltX1WuEzy~Djz)yO?8y*jY(e_c7RB53?w$`^ew^z4L{Tdn`ZZqx6+t^dbY7UtC_b&b9 z_g?i&nl|5WU-6_-TmIp7>aQ5rE2muvn>3x5B|&LOV($;^xpKwyLSXu`q9JV?-qlU2 zA;V#JC5AR1y`nwZdj7ZX;av|X5q0SunV00)&mTNoHtouf5Op<5$@47J7 zwx??JiG7!ezlsxmHkhE}sG9)=cyqzpGjl#~SN&RNA}h7TDmP>4Dqf>9y50BaBNxUt zq~zBbCtoR4QI5WnCHW+2ETfhs0}x;ilBdpKHCPqBc!_7iSNAT#^^)FSTaQ)?1h$z5 zz=B?v(Bi+tjs_}X_(CVG_F_w zpZuIWZ@8A#H1j0Io|zMQYbC_tY&4v&jx0Iyzo8Qp`sB$A--}YLyrEGp;lOLX~Jz_ZeJ_4G7UklG~mnyGs2|#Ph%4_FQ z>$5Q!TBbj*Xd)oZgw1EX|7~uG(bda^oJcQC&?i5 z=W7{B(k_#--nMG=LFJl}n~0Jd%ccGGt(>()2FI4!KcBImmsrJmR}4u^T3*GH^!$td z%C7^aoSu-8nd7JJ43maPfe88E1Mii|2Tr$|_0PBZ$3pV!^VyRT0e7I1h;s>Jgg}F^ zmn>(M7dU%69Xe3VtA43g^v=g;IFhH>6#98UNOqTZURv$fF@ZGpo~Yd${k4RSY3!ol zwtoI`TVLJhsCf`3K2T z1^N)byvVi=81`6x|IPat>Eu;7`-X)JxZEX8Djh*Y)g z!qCGfAf)i@0O|RvjG`DM?YOwyl(jn`>aF&Qx77(dvg856MB`shke#-E$IC+hLd>h` z3q5OCtasugf%ZY#qXQeApIwW4S+w>@?PZ0WAOmv$wgJ>HEceX3P0F?`6IE!#E1dDR z_4BrhT*gP|^n83!_PPKYSWLN}bP&Z3*W^OP~>RW_6MPqPZa&lW2*E-+4`Aa4q zg9Uh0R+Wa`dWG+_sqa!iEl$gLw)ad8ZM9S2R%<80AjH4;zBc(NIKJXPw!{w;82Z4&+=jgCQ1h!H5b;srH4#!kjh zwwm)zyUXVlf<}-zc=o253Msi_>ub1t@kaT^@{0yL3M1KWD<8i^@fy?rP&huCp1tek zmJ9(Z@MSIqEB6O;9L0FlzT~(z_Spyt2@47{*CggeKk4X?=R1_ImV)~o&G+WZBAj|s zf~`HD*Rg`j7X7hpw%eu#J?oW;NLiPYt4fDTro@XpITBDbR7k2e zJ0G1}0)us%D05u*Qo+~!J5nsC%!RDCOJfGS_H>!pu>aUz@%WKP#|ZgY9#^OS%?;&& z%7pAm|IJG>auD21-p^i7LDs0@89g!6<~jBt z=em>tGool&W&H1!fjZXZ`jo@37En!cRtVvb-3Ya*Dnv9VuzgFGJXghY5x>uw{^b1z z*6vw%J3;;%l9UcoBSk7k5Giwp1YeU@@FL8!T~a8ZIg!hcS6bPIYLV+^`wdhlBDf?v z!z6DR(MRwSJKuYSd@ZLg68&cO3hz(l-Wtu=&pEK|uLU2Tf_c;9!JMt;?ID&Do4k8h zC6Hh@f;R)3*9&2&6fFdC(GtJG3B`Givk{ZS_Z7Fbe`o%lQ2Dzmu zOCnPcW=)z>-yj$L%nGl*g)TDJ)OjvPT6xE!IE*ktK-VkhA8eYX)D3>q0bV)}r0p02 z%_7-$d?(%e+2G*VLsED&?b~?X7?oqyrQDL}8CP=4!DlS>~iYFK<^H=U&}> z)v=41QUJC)@JzBJc2{{iAk`n z3o9(1-P*&{v0wTOLMvJ5YjZ+-@odFaO}BP|pgZo}I8wWaGb!)OGs|@&r2V}<1m#QH z2?GhnKs|(K*O8(Cu6~~2)qJTg0HCPF?Q-b|r8|{(kUmm$e+fM>WrNJ+yI%c{_J<$u z5EQg}j!>H@XWgXQN0%rRi%a9*-)fWg5w8!|bBsf#IkrQ-tvbr}OhNX;@$7rFFbJv? zsp*gfI||v*9^t60YA~zQ9W8oXlui_&#Nf$GNO3r`WNQpLgC2VP2>O#F zFjva<1bwrklz!aXwW@t2Y5G;|*UsF$NysR$o*D%{kLy8>m6$ zC@C25K&~yzL6g?D#^R0iKz|;i1DgScMDeKcj?5W{ehw4 z1u2_jZ}_n<8G6|{&sCZSdLS+CtliRCRYkX+Tf1a&p`M2|llAz#C=XAJsKiyilL5M= z9Ho<@dRc*099i<_$3q+pX<9VX^88@5Yp*(X5E7esQ}Y)`q@119!;5RQ$7P|sqZz%T zAJ0E=>jBKF*iX?P zB;frkN-!HjG&3@i_#6r(utn;q4c`4jGE58eDK}lB9%!a%OkI|>MpXX zU$+VhGHf%9xr{EGMqV%KTPVB#zK4QwU#2XV$U`&frR+g!MNXb+enpXVlj(!ac*Gi$ z&_gt&)5+P$Avkk3lT$Y5zI6ot(TM5eE!iU87U(?KdE*EYaX7!zFGX_cm6j;e0=(&L ztNADtk##w8gJu@>&2>wV!i%Dd>i=RELNnb~jY6pAp*oLd7mA|8lOgaY-_;)fxah+dI`^~5ZsAkU-w>4uSZznr{ zA8XJ%-Meg#^n5PHNk|=H=yY09SwZ}cM6c2Tp)!G^xFxDewATk;26qXpcMHqD=OjJ2 zxTwk2HFKOg`z<*_`Hg&3zbUKWW`&@Hn2dSTU2RS2dZ%{feZ2j$YJ=wNvuvC}ALP!o z_x~}Tf9D>1@+loBHlM^RCx1J^VvbSgODtbQ_XrEsRFXC{=|7(Bps`JGwTiu7_nap7 z5wnb1(UFyIhbQ?h_;7gR4f-Sxl+(T2@>N7FRdO!R$(-4;rw2)qTM-r^!e7V z8h?8}6S<3H1FQdfpbUj}d-ojOzd1t{L6t;MhFABc{@v6$esbNPD?Y^F|NWTDlc>=q zuv+S716ND1Vs!MU@yzB$Xt?6?(8y1yot|vOK04+?Cw11pK zhurQdSnm^C`f*ioqkhq)vr;SAG(6%T@B+5UYb}?l#T0+Bz4U4m@PsBeV|nm{3)(Sd zJz7~NFrFF7I)d!B?M`j^HYk0LICM-3Q^M~DjrXiyfY?v40$B5Jkk9|==oDaaIjdY+ z?GXN z3oy?ge{j1j|85eFI>X7j6W{9(WC*IB&;`jIFYx*kF##el35JRlCY9bh!oDbg9|A0hK61^aCu-0bBb zVhAzD6*s439<*uQFK!u;XmcLUv1fM=?jg~7=s&CzT$FxZQ_OeZRH!;!{G?ojNYo)} zkpfk72FjwfnCXF+$ew<}`i==3OrR#5+a$h_Fpe1f&%Ixb18bF>TMzJp_*^L7Zk}AX zViPXDEnvxrpeP=x73;61Ad{iKRao%M#Nhb@DYd&$h$V{mh&zrX*GPj1s6KwsvRM_; zkbkoV*c;cJg& z3aCMZ0E{{nP!w1Tibq1fAMRx%_`25B?=BoYKynMd&Hs}SY=%gCw~~&mKR>RiJaNhj z#OmCdX@oPlmhW$ftoYnvZU?%xXDdfzhHcQ3>z2=DrMR1tJy1?09EBM;)?Y}Fc@!eO zsWFEoZU%&xyQJT9oIb@9TDEngNUVx)j+L{dLJ01iMWH-Lq39!7$>P&0%vtGG=axTb zY{)oUrA&iQNF`1%WevA+y$y2Jcf&ntMJA8=a^ z)~^S?uWZMwi7OVhR8YdIWgDdcA8ja(pm-6*Ub~V)@wS0*>6Du(3-Y)V?mB9mLeXz9HJZ_gBSKvWVkj~a zeG03uq{n3N;Hm+HD(^qltNStus_cG#3T4-BSPw0hg#=B5`p|BEl;kmIpB6xg1QNi14kusjgPJ{*Oa=_#droEPWiM74*=*uO4sovH)y3(hRUqx zG3?j~lq@+SNumO_>k$_iZ(DQ_hc^eWn-0yeS>XH_D6ob|NMmR1Z?Ta?R?(4-w z{(AKpOT`k}?gfs@!Nj3Nr5H@=fF#whVPjx(rt4KKc%j4m4_Vi?-FgUe(W5b#i@!>h zHcLZGsFN)&4i8VliDBpn)*XvOEa(v|RtXx`z3UBw;;x`&QBkRZz5beo^2QECOQ;&P z&=2LOIML+3&TkayzF_<9sE+Kw>am3_#07NZ$5`Hglk0+kC3peCHLDf^T?$%duN3Zq z$y)t8lXYI(=jM00oF=;;^j$#&MLPEaE5F5iCw=GlP2gbCYL6A(2KT4l>DQ$QvOxGR z+#iyX%jYevI(>U;OPCINW@8>N+OsGw=}^Uxw)P2w@3)Q&hZQOgZH&M@t^MbFx_Jxh z;L{c(?M$yi_+mO|tIEy~3hmuEH)Po8Oy64N6RBf$Ri>#APhw9lHu!B%CT!{-*JzCL znM7H(bbrh9^)*gQj2dkpL;T^^}};65>_Sy=9EWZ(C{ zeuCJHf9$LE0YCHw{~fEiTS#oF$I3+iF|P_l-b_$;$ZVh=+Jf9Vl^6Osua-g9m5+Ih zq~+!Ww5td=kGJh>@vYm{RU^$lE3Fz_A!p(bzSlChCC{mL0fw`aFInLRYzqj_l?Qg^ zf%k4MDF<+=u}XgV%Nz)K@r%N<(b!tg3f5oraM^6P=oUSzAB2(}+ml#J*flH@!{-u) zPs#e)#~4`KVs>PJg(H;kpS(nJK<$%BNn6(;Qy(->#$Q(UlrQ_Sf~G+^V3h% zK22?cVZ%gT4rr4~RA3kc3^BZ&K9c3~T%M?%h%0*o)IG!!mJdL`4|LNS5T5)u=EGbH z(rh&Z!tebb-2HIlE(7t=NJZ+sOrgV5Ky>jHD9>DYP|Wf(EZvnr)L`FJy!}Ukr{=Bq zl>(1XJ5TW%_6@E(FmkytTeHBgXFe7=y`PNex?L;W8(8=aDZp__X=C2Vr@JQ<4R5%< zy0e+ME1?UdQ5GUFQVF{Q3G*QHTx%U>cM?U|5x^<>b!#rbQbG@0!hf6b>cE0p?Yzh7 zpvO=qN0PRGfr`^(9f0YKt6gEwHzpMLOonr%r+8-0$M*ht|0E~Dky^DECGR&U^gK3j zLoCExd1Z3D%B^vrBKz)Ann!%7G#>@6(+RRhsezU+pdgxL+NAGFMJjGyTd5 zxtA`|cwU4uLvU;`iMTEh_YBDu(T>xKBs%oJxSmKrkpbn z3cV;HtbsGV>7n-1RYvP-T>c2Er2It-F;e*W=L@n?vIdj$LtgbJx(+Km|MPwB3O%kW z7EuSv-+8w{SBLY)uMSk7+H=zz&X#x)G`sHCiLr=#FbWDwC1=wKV6 zHGDbrh=cuW-^aTVQhr)-po7%z5T*gKjk?8&Oa#|WJsDZ*n-^U5Q8_aHVoK^;RaJKf z%VI3GN6JEP?E_M=%!)m^?oX%+>(t9^XZwOejt-C+YEjPCgu^#2#5kHi1WMUyycQ~5h$if>EsrO= zcJ@HFQZes>yq(t&T6>w!+S3NV&_ji%PdjW_WGz^-`T!T&wv*gj; z4k?)J5faW-ZB}kr=*i#7J(|~@Rmt~2_qH@rT1uI4nLcEy_y{@fTztjM#;?;T(NFYT zcC%WS!pDfrB=0rQFiroZ}9{Rff0{^JS=ljUH`neCG>im2x)&F64V6Zjj}yvAoT zb@(NeMg2#j1^ytq1&Gomp)l1Q)oP|8C1(rV4xR5T@Qg`aN$sa}C?>`C_IF95IXt&3||q|vT^=#4NDQpwlb^hY1OJT`K*5MnjYA9BQ3_rLJhK>l6%=axuP zB#CQ)70xQ5dp(87x%!PLRUEGw;R1H!?+fJ zP71It;_keeeHDLEr**Ejr+8G5aWy7|4gg^5vIn>w7eCn#by_Y|#jEh|?ubd3m>W*y zz>=`|MIjT5%yiZF_I5mUFcx}owA&2)M+#<}&es4D&Hxf6Nl4HME%oSbP_%&W;$i?{ zF;gJwD5W218w68&caG8Q+V7XrW#W788kN@{)aTpE3)$b!T;Jywko~Rsp&s4cIvgrZ zZ7bhKa6cqpEW}!(6c-6VL31bjMi}w(-dzmitC|tc4&}c5u|kZY6{wD8&3tlWyCo{r zWJs5X#iLsXd#sU5WwW5A!G*u;4m1_aZtlV7#^_{0ZJuM*oM8_3pzeqJpKq5YKr6=D z3j9Lj16=#rVk0HmNxXA08__##)q#vwwq}6_n&F{qZPsiPXbLvWGg-;3Eb;){jpx%uR`gghvc_ z>kOtCuyGjJA^e0C7k=x$SyRO)FRO2~4TAK!eajdJ>1(mmyTs(!#)%x?L5D;_s{A-< zZ})(Pa1D^*b)6i(7%Ovga?X-ONXMQkU_fz~7foDj(TkofnuAV$b+Pwujiu`*j)^5_ zH|cdL$VJ>3A2GlhjI0pgc7I;1SZYb-JWmRx(0<0$7<=3PQH0u81#3%zz-Iy&Opw}1 z20!)6%nXwb!gn8?EdKIzb_@Nm>2q8E^_b^7khmQSsX{^uohF?aKvG2L={zwkTjvIF z&M)1SDrV>@RPz+W&MjSGD0zdZ2r9fcwa`uM+V|iCeWl(?#S_ zz1VZVuk#f&i(>Du>4Dlyca>H0aPm zSD7ZUot(5qaPw#h5yTrDVoqjGaxEEpalHCt`AHV?nfx)pRvUPpRiU&8^!W6u^-8(~ zxP}~@G-;59V^6Uwv&@6WP&fTNx}@A3E*oiy^_P3hxem;a3AW|3Km~yD@_Vwg22<%9 z$8j2S%+l1D^|9VW`wUJm@%PlfiiC5ieUxkuR%>~;qdQ2K^lUEOCRF*3&B%j7jkFZx zGris>?R(|G02_yN4fmAz94?5olWG5To}ze1v#Prnr37?rE5Ad=VnDCL2XdX#i+Mo^ z4mP!9-(r!po%jNYm%+u{8B=)EVv533o}G>#I3p|=wPUAXO7=?wZ1pF1?R+PM6WiLK zqxb)6=Kj>o4f5AO|Hf5dlLB-tYv20~{ZdgRCFkXI%Zt~cXrfG?=TsoG7l$fDBOV~C zMPlO(nE_?^wAqnJb%|G~EQvJ=v?0Z*m=JAq_QJc`_h@+!na1r3F4Zl8nnu-z9;fAd zsK4W!^M$X5HgDqQPR*F{7ct|CBgPXN#T!YU$asEBdPzxfSxZ8vV$son+(-wIUnJ6I zDg5&2uh^>Q+8{3G_w@oH1`Z9plZdtQ2xTB~=ku;1ut93tM0SdN0`rDyl5m^?ro^LC zE~gw%DBq3Z@#aGxt`iby?|8Q9_e%?5uDP=srx@6ao0r1Q5I!tbN(-nO#;VD{e)4wVkE+a23T zq8pKWjcrLb;H^)E_%Pu)wmV6jYDgAZ<@jjxcm?)BVu|;7x_N8dA=;kY8l3$3d8&}G zWLGtB*zEc?)kQW1`S1HdhDs16AGpi7@M{0Dez6KTS1jE%j&%z7E`4`gK`$~*Aw*)g zi0(#wqrh^{hANBO^iDceMCC;&QY0B zT+n>nW}rh|zV`Of70JIgRz|oJ*4ozqGj?g}olE7TMe&5LtVNAgldxQUqm`N{mYbYfxwOHJ{dczyZrH6OqER~ z*EXiD*HbIIuD4-swaM^W3zP5es$RqP^V)9BfivY~zV`4sOcd<@m?(^Q^ZTC<2ry*v zDKluMM4>;JhXS}Iv*rm3GBE||um?3~F61tqoY1rN`ZkBbm`f!rac*U(V{fkHSHwDhZ>zOeN@!@a zVodq^Z&$G9`L*%wvP9;HNB$!Yco;ZVl^z4IAt0CcIXyXmD`|6y>Y|oor=+|Cl05CQ zPF5^c;x^}->p9Khd_Ykso!M>AB^2Xg8#*T@#7k&;dhrEV3)3J;E|UF7f=)^0cPAM< zB1Z#+bVJerAyP#fKE2GT>GtMwpl75}ysa{xmwm|DL3h)b91{$iX*t6q!&xj9BdA(w z27S-EnnX1#$;svR%%eO65rM>PvSrYX6G8vaW*=SU2#Lknn2^BH zW#;lnzdC92aA&Cp4BZ#l({}7FeYH_quI?<#=Y)at;FPvxj={B8wHNV5Ll$eD;Gg#T3la4e)5z>ZTg1wVOQoJgDGlt5rG^37k8*mODM z9{9pQayBT35X&z2Dn2Kz8Swy=q0ZG=B&04@p!=3-BF=+AuTHB z*u=#6FW3x3O6|V`Enmt1sB@yL@QU(JEx>=^ZTb)7W&fYQW&fw$rm`hux~?D|dW_fW z4^sv9{6;tVz)tFc>5}M_&Ne;o(QVsov#nh(aT`NOodoV`M4PWhe?;1x*meD_ z$JKhhIHxsy%*6*owrq9hz{kaKM|-fTOwwv`J$0pQuy^3NvHik1Izo1OxFa8#3)yE!ukHEU`X(w+7foGR}Su#9a#3 z`Q{H}+*L|Ow8W}r?xQpA-?OTwN5 zI11K{N2Ep*;432hA_YNjaQ;=IbQX+!BF7Ok>`apI3m`d;m}r1SrU0j|LoqBl!M~hb z$f~V7ULa4q9hoC(QW(C{=XTI=SdIITQ92O4Q}mw%#*7xoZHgNIQ8?q>n zriHNidIQfp(Rld1AZlj5iBvsAJk1g^(-OdO_q{J$_G-p>zQSfmH7VCpt_GZjM9D+-09zW+Oakw|f zYuisV^H1CAq8mEwQFg%>*zpjyrg9{bso8sNWTuX;f#aWG6gf4~EwTiHATMnl@z%0fx~`dkDCwMnOCiC!{Lga3gvsV+K!K(Y_0;d2+y38FXR;#4c?- zHLPPtx$rIL`qGc*ZCFmux;6qcW4~;9-^_>s^DlajerPB2sWo1tig&wD~BB6!BESGgbAa{7Dl$VUAwU!S9Ka@wSu` zb|0=@#Q5##vNLRyinX#+THNYLXH)M5!+L79sG_%ZWIzR?YeP@?YQT{YdG*GfF1?DP zZ@&2c&*~fM>hu{;USS;%^4;e6EG3<3WV1ai(3zqFRQ7nPFvmRJTiLs&!r#4{I^OX8 zWQQF=AR9kq?P=Dscm4bVd81XLb6s1GDi*0Wlo3EU>bfqaRGCIhV>lv}FbqDcTSa8i zi`YownxgixfaEA!8aW(IpYgfPw$Xwf@V-ckiEj1*n>5JEI*}zGv*bpuUdZ(MJ70u) zONgL*ds-1+_LFV!E6!i~Z>N*p+gd{%81R>>xn&6XL&8e+4wPcdU$&1HLP_{&OL5~9 zQhREjT#%E*;cdBsJ&1>Eutc0akgb36#vs{8+Yi2S7%cjZirY>tq#T_hC&II`oe%V5 zq%#J(8#jV$-18z>ZDBPF4$C^h1=$~POgG8RhRHe5W#eAMCBuD{f{|%91`D)a;%NIe zcO>OGX0SCsXRvifD{M6)_oFpw&3&b7Z=B|9`&l8U#3d$9O3pkar01Bftm|zOFa7Pk zT+cA7e( zSf*r;$mPPX^S!kP&O-6a@e_2I7$c;pI=*?NVB^17Tq$8cgiZ%Y!uY=ym5(l0`#H}3 zztyZ+#$5xaBvT>uJNU|~p}Z+Ezo|3GVyycLN9|=Y@4&ZA6e5tE=}P&#RUhdKLvMpi zu1_V&#b31Ii`rM&#PhJ*N4-6=pn7Bq2vReFA88**4gaB6X+QE7Z?gQ6X><4lBZ=oC zPy>lZ_G?KA74eJ{Yz3B`nX?A~dl8Z&3pTSw+p;geELy|IyNlS9@vLq5^~;>;^0T+U zE;Be>bMu#<^&j6!)06VOh&(LSX-W79giH?ctfz2>PuP<;4jPGM8xg=t(6rp{EQ0wE zPwT|PQ^kS`dLim2sghBMuLj)iIg00ta7vYE2s1A21k7@V*w9H^WMTmEu#4{nAm>a3 zDII@Yy`eO;+^g>rL69CBl(1A~(5;}J4k@7lRx~*r1=p!W5|#yMkWkQ5Y_FsZOL1cW zg_52eaqzWQn&m7R1EUke8%j>KJ$@5s7t9mMhQ(-FOK;t50OK3N9}A;n;keB3wApS0 z-GSTVguM{t_L><1`eY60lPZrJ0N*Q!IGFk!lMtbEn4j>wUooeD4-N=$C%(^cMFK&& zHsvaw3LwB6%edtb^BBg6wUF$-A+4gg{|{k1wN;`WtB2*0w5cf?lU_PSX*?h5Mvwp8 z+Gm!qw?kz85c!a#G_4O05p~f+Z@q9d0;Hee@(Y_5) z^47Jn@*lTMIbORVxnQ>YB@Gp?R6z;$OK2C1W%JBed4N;!Y{_iO`GCv?#|zjv=4sx| zcBBKbk{}0v#aZQn7%9a1umwoD&>yr{b zjvVg_ZiRet2#zA**eyqB${wXPv{f_)WGgY)m*9%R&f>OYQiqd|^((ds%k*DQcs2Ce zpTJM5L1Hk|W|f+>zO){srOgGTPri7Z*+!ce_d%BHv2WMmK>|D_;F# zKicPf!iMvrjjCT?^Hv{Us{b5EADC1m<{$3)2M^^>mxB}*2zA-Z#|1ST`-7b zNa)YdjHc5`QY1|4ry&X#*&D<=0-|puHekZ`oTb88mtoB7Z5p|*h%#zQal{)(-56wS zipks9k|p5nkwqjou!4O*wd674x=Pq^(NOC(VL8Hgi$03fJVIF`uX|+MeiVl zYqShZ+14Nsl;Ygr9Vk1EXL{QLt(cRod(3ywMUhCcFH9YznMVl{Xnrw~(M$#pCoiek z5)|~QF|G@|Hgh_sIb5h1znTT3iS2~{Ne05uxf|y(4x7>+Z7?!CG2EwY**DPt?$YRO zGk<6Q@X;oHpqu-Cd&p@t^SUqK3=^vRziP!`^p!qblvzRJC_hVg-clE6%%xUo9~yIA zTx&3E<>@ah17F5=w|r&eEgBpY2fT@nL4`Rba%Vq$x0Y7zs;n`tsIN(m8hmLmnlh?5 zxOWCoHUAV9BnW#QqELjU&GqMBLoUqh-(Q&dPLBS-jrYyJuM;Pqyz<|C@hr95XInILf=??!+;1eLZGDbFKIk&)iUz&7p;Y1QRcHGB z3$q>OPt#cICLxdH*XX4o8VJ$b&7M~4q>;(PA$=~hf$OZM_ZH%YA^N_1N-pLkQsC{&jq;XWV$7Po_9Gmz5K$u#Zq5jc|bL zz6`?VXDH49N+|#HIGkrYs+I@C?q)WhOaKo~YxS%fHDmuV4eXdWEB?xF`jv%*D6rq8 zx^V%uM~x}ps;|E1c`+c6jSW!qKBlaR{_D3B2 zCb~lLHcG+p^Gq!*`#yFw26Co1Td2ZffFIz_^gIm zngZ09}3Cd7sw}HT(3RAf;bO`F2&3LUB25RObK{-v^iP{S6s7m>YqP>_EKU zDWXWmvctehl&Xx*7z^_7lM+zo83cro+P6hSo2)3Hd1xRKb{naZpvH12xk<)45$4|9 zQ4<3hUpb(U9WR0oZ2eJLhXT*ZUGlMaRis-tWf9beG^gzwirU14Ao%3D^=cnL~5SzDM#xNQ zHth~Dm8F}+D+76sZN-^O))?E#2{Ref^M}FiJYej>L2of3Zm5)y6lg%m$+AfFES-!q zK|H*yoo}FLd$S99g5&QSl7{h&)iO-vR1OStL)=UI$Y*dU)nb|j7Y{uHFeQ-^~(>^QjRMx*7f5GuM3 z-~oec7jWJ6_8(ULX5jhpNEOv(y4=V!AVK?tHM971gHBrkIhaNv1zptkARc3~#rnD*5~|{h2|%<1 z_QzCtB`v2Bbotr(-DjPz#-^lfROV({1l#5{SeqxVwXL#%`d@^rKMkySx9M!A87dzz zfh&s)W?G1*MHbQM&VovU4d%_ztDr9VlEw7SIeWM)VDaZ2Ma*XmNiE5=dtgkNl6DS< zhiWEocMu_Z?#bXwM<$idcH|_LGC}f$1-Vv{WE)YD8rGAmTTKX_hsjDwXs)b!(3QzA zaeiZJE|VcCIr!tZl`TwM4EtVhNvv-QSzwK@zz*B%PmFaxuUJg&t^LOQtr>+RM5nZb zHT8Uc|D)wx-fKTEkJ$x$hic{zk0tT$^GsbYPXfsEC{(sG>0&E!<&AgtIo~w%$8F+L zj1m^ir}=&NPU+I9WwogtN;p7n%PtWf=P5==P(5S2DFNx=NpE@}vzi3SnPg~^VdFmh2^hUoq ztF)!dJ+b+IA}{HXF$k|8BC#KSNn#K)+sf+8BGDEd?ob_uFI%r7U}xpdC(Oeg)7>gP zefH;*$4*jHOOZTD*<8wlG9v-`MbGNR5!Gb6Zr()x*YDYf7Ly@n8VQs&MZyRJhuu!M zDc|Q8j-;ULLMZgBE9V!1r1np-)(FCs{M}CdSggP)6X(QdcdkX=ncBjw>AvsgRubDg zXYr=bo26klyV`o}ZmFriyZW1gE*kF1yx;E0q)}fa*mR1tS=7x9KuU5YKyW8|-Ls4= z_32!nn{AHLgccJ7t)zTG!C?y3j?rqPGx=!Ean)Bi!8R#>(O)SmRD5A_L%t1?pY|RX zR_mAKE|y~W2};~9nnCggkD488R)gKl{)hDY*BAr4S<9}rLY%Z8z-wmHRk7~-6%UO@ zCn-!-8`&x|Y%xsTzaM=OBBVw4W4}N6Ggx*aRdW}IX!6;eNB^((-UOV=?e8Bpk6TC? zk}*T(%|F4pB+_7volF@r4`s{{Q3;tUwvvgM#9J{2ci${`dMh<_3J@SlHG| zJVw4QKwMVwkJ5coc6}v0DQ3x01&#*p*8f{8&JpM}-I@g6t>F`T^*B{Gkf0^}g9HsN zR~Lr=&B+pcj<=X?Zbn7_n<*!1nRG%LX_hBjun=Jwnxvw85-GmVK2Y}CvIuVe8UlrO z0QxtT1-xF`V%EiYHv!2%mzyG0GJ(y1+tAFM&<5&%%sP_Et96Y(jfL+rc*X{VP%@XM z&Fkjl0X8y4svi)*6(j5&!75-dlmrP;@*g>+PF0&wL6{%3i`+|k(*ZR56(tAY-Bxf= z{G*SSPaP1XMiFxhQK%vIBzbQu9DVJFi3Io$c9ce#IRlhNu0>N}{nTUUHUM^#M3Q^t zhfrn>B`jj7Az9NXkckAS&M8XQWUX*A)Wdh{uy_OINp#Yg8wO7Cs$~SNN88A+ww?1`=vDd3`Y9F$a0q)SHxpbbMFJcj$CH)+(Za5{AnlF-jxjK#mt&cQqd*fP zQzJAFb?~4WC5Gf_am(5*fF4TRP@E5yR&7dvtys6l_XkRCbs!53qsAQVysf$CseR8k zsP8W$_XJ`9(ux?Sf|muSJdi?TLC!|kze*%$q0D6@sFp)4tCJ{jgbr5$P=e$w z$foYv=y2o&@Lji;)OM;)18hpnBu)m2_K#q)kKeaY0GD%L*;ApPZmKH9Z(;Cnju&w6 z5#tZ53?Itq6%IYnL3VsHQM(xwU}I1q$3VkU>wF4Dxfq;I+tN3ny>N3m8UgZvzq1(L zGVjv|AD(`W+%hT#y(6?j9!gvGt5DHlmLH%{L0BpU3vE287<%-c&lOzBB%t#P0tKTV zBE6a(>o6SRQh;k6>ue^>kl{R>@+P?=pYVX^lc9J3FMHGN0Cm0KzPiPNGF7qt>LfN z@R2|AS#~|$UsfQkn;b2?HaZA4{8W>|4J3Yb*JhySifa%pAkeXk;-G>Am zjS`K6(w#3ouKJi2n!d7IQG3Dg?J~s+40WZOoBzhv(}M77OZ<0s7ATkCZencT8m zMO;AsW8HltoKYN+HOrC)J<1WG9fDL|QS*4dL3cxgY8-ibuMlz6uRbV|pS=fy*eR)! zr@%CmlkSk5Roa_6p~B=`JRwy;IK;~Sz z@1qr9%r-u||LGYpnG5Ux-eYXQvCswe_QIMGLXuNlVAauPm9lgZQb7oJ%Al=Lu%HFp zYkA%G*sn*beJSJiFXjT9&!Owum=jj(!PBLiDNcKIKRhDM(6==T&%k0UXO)%*ZH4Y8 z_t=yGsn1PCPt9EkqXr_{SFsXq#OKrCM2n3p*B)SOgH9lmo{$v?4ofv80MB$#qnjbT zfTyFA>ayOXwa}2ytWv1}Q(Sirm5{l=G-=Q_NHK5`%BtMfo9)-wQTNljfL%rutlgd= z$wvfl17k1mNjcb#G+GKQZs5$VBMh-&A<~EH1UPO!AA-{@emz+FT8ertwhbSc`x_!& zR$pb-xj)1{01MkLu2(6zmrhi@p5DaD%iu=APL16r>xx`b#;0zcxi5WOM!doYvIipH ztHZOgj84W*+k!ckJ)t8KsZ(Ey>>D|removHo|Od3AyWQ@V23QH~E$ip^>e@ z-6m9?tUY3U!XnUM41Bhh9thgkC9+zR^_JM{{(yZ+kBUqhTlef5<~XUHJN`BkPewJ> z%<3FipXAhG>L{#ZgU!K8!~%?0GN|^PB+%}c*$?LJahB(3Q}$U?^4PIsvjVe{<<2BF zu|j;oS%+urr&oa>EfM$aneeE&e#ljOY-qv-os*SR4JU)y8kIIz2D=t)!8OvLFw)C< z80(){LI^24QvK~|prN8~pc*N*Z(+@*wc8gvbI47ptx>J)OmAEA7(AsMxUY!#KprR< z)4`)hPq#>0N_jSO4cpzANTfJq)j{(q_|v}DCXji&`j)I{Td;d+0RNFeJ$za-U(gPJ z)%)C&ufa{BcueLgcD`bIR<<>|rOWIdPW`xHtQxyj#7pEc-+$FbP$s~WVePr4JUgWw zull1sZa|+55B6@GTc_Xi@ynS&>phqrNtTB2ImgYz2`yv*%Dm-EQi<=M}bpn zyQY884rY`Bpq<&y(+`o^%BqExZ0UZi`%tOF8P%luJEZ$B6+bw2B+uE#?gPUK+=sf^ z@7H<<$OCEFlwZA^P4BBa&!;yiT>!-Pj90?x-|aYAw8gpV1ehI2Uf`5;miJQJdi#<4 z`?Z~MntJ+QPwx{7ORoH2xwleE`Or%Z&WumqlyQ1`4qs18U1uYAAdh{fsD%7 zvpUs7ttY!eCpcRA)gJAEjZ8iGSUZO@mbfl*j*(q&dr67T#c)Qs4x#7I4pHxIWUAZU zTXeiz@n922GQOQr`53J@Ovxu^o-L$?y|@d8wIcJ+G|)Y(;oX9kqELYA`DDtcU&!1B z1-`Jwgv0{z+RjxhHibC4Bg4ctj7j-akUJrUXz(+HmOJqazK=#oF8RrD+-u^|pE2z0 zQa(&h_+oLYuhI%?bs9V4E=(V;d)_UE#U>B>aK|G{)s(3g3A~503q(pHu8&(TzCO zRnHQO!`7{Y8#FNw-SYJICK~NcKEO_GN2BO*O`V*`(sHY~m5#-EI-F>9hZs93wC<)r z8HH=W=+eh%su5_f$!F0!v9vsjmeZ&+&ssBY2y*{c;^E0qJK{&_b6D*grxr;HR*}X0 zE>&P~lk^4G79y|lHTy90d79F2N4m4YghLGy=7WI1Qmq|aS%z+uVCquvYQ07vWeKkF z>WAakB&DOUj_HP~Z}?3Pk}+Ufo$@Cz4q|RUksFfjHUL*xXIkMl+F zmuPR^Dp>dG<{#nPdEWcr@zF=?*{z4dlY+u0BV!T*x5Ihi-_E{!Z__1*+Rg{+ND28S zYum^~wo=IKv}~YcIV4VB-+z&vMLbI_kBa4>xc@T&j+P@>kwd{GxALUJFfWPtlAt1L zp}AzeU>TC{7dTS3*%@I|>in{(%UE>N;9CoMBonQ-M~#rn8+YL>zzW-UnCYp#wuvMPXZ=$7>RJ~c`w5Z=cG)#oS`6MLTds*5$!9jf1( z+!1m;JlCymCPX<K$h!?s zM`Yji{Jm@$bNjL4R=x;&*#JkzmfqqGn&Z5_#Z1W@S4p=`{D7+PeMv`7J5Q9s(h_ml zkFOHyAs(1c3pk} zUK*x+Raf>zRk+Y+tdG>ZFOe`{#A-C!3B8kzD%vJv)>xiNbRqWOAF!t<;N8{VF;bD+ zPDy;w(4r0|JFYPuNO-7KH)I{)P6hz)oZ>ZS>V_ShKkKNpBzrulvO^g67F+C~Y{!+& zo)&Z~{#r+h+0#GG>9O^bVY4 z(ox6f;M1S|n4!|6kk-*UDJ`OV0*^1wp>Ij<5cbW$2pzM8b(Q6ioj#d?{JiC1p3W%Z z*paN2tKR`k4s)t}@n+p^BtQkjgE2X8WqCTB?QU&yk&Rw-kd8Nngk`-swL^`|a@}Xi zmwk_U8c6O~3clu&rS%}ypCp$ZmN=`n#Bei2LHBOfu{Es*@?9_A7ag;T4Gm<&8ZJi( zEcZ{QMNqxEDp>hZc!o>VHNUpL(pqiX5_UIXSHnW++pHQ2`Kn9AWWMq{tH%z!VCN72 zn8wQ9RypuV<90aFyi?J?ynOCk$L6MU;P0ExDqT9E?(&o3XjNVUP#?EGegHRun<(Kd~r|n;p?pJ^Hmw%@k9Sy}vBTgr$ z;$=GB!*N%<+~{1JbmN!+dW@$SQvLmXiy_@H#WC?g6q2%}sg}WN;1xRmga`N*Jp>`r z-9|QI`|~NN%ZexAU7a7CZv%^AGd^jOQFzhQYTe;!z)o!hAPyT9s&Zle)N z-+2*+2=0^MR@f&~mPWEcTJbMGK&^7Xbf+WC_jr?Gv4mjC2Fjt@v7Mi!yvsjW>X5TY z7VQ0GNHkO(5p07iX*(u!YzMG0_GW(F?g+4!<6e%vGz1_N3CoD<6apAq^0$)jzYWH& zYz!P^ak_Ws+YOah-E#3cO-!#kGZQRgb7HAvwRLF5&W}jykl#1enLP3O=zZBxHD+dd zozp$43;7Wov3v!xd~3a>UhNyH-3pGivp!eaz5FNqRD2`~XS_0oN|)ECXIDS_&Xz9E zP6!69KMAG53IwcUKG@)=Kk(yy8Wy9KNEbs6Y}X-K6O2{%%T|$%)+U>5PgmZ_uHHcN zmPxYUDMd#H8#8Gz{NS@N@}bRCk>V%Azz_9GlV86?m6D3#S{%tTC_8lTM$oP0HXjM` zNS|!Kaw?z5E~7;ZcGLN?_0wbfbxGE|n3?g~Bx@Yca>;BN*+>U)dDNm&TQiGsyy}p6LXvTJ7%@{7oxp-N-(-Ucq3|u~yOqkKx#ZSFil* zb^LY6jR+4z!UMi=bd&F7mu1o?8{BwSC0QUNx|k#?#?|I^TV?fP7MX1$J1OV0zg@>) zhny}#$%4YAJ()Y7m`QNkKD^G>c2Ot6Fss(&_>@~4%Ua(9`u}r}&g2_=h&n(?5%wI4 z0Jc^^+phFy5hyQZyyoqy;2b_$a3?+1*g#26!WAf3GJpqq0h=zHQ)9bUR;_?VkFTsC zjE4C?jYel3$bavbx%3$|L~;4FQX+0Jz?$#Yexe9t?vn8Q+nyW@G(tL$7^t?VkBVHRbj1wo`BJ z-P$2)qFvTia`Cfi6+{H4{s=7#C4g+pDXQ=xWMH4}$&Ug08Y7|zupt`{TYO1Y;-?kd zPv^J;bYzoKblO#zI^yVdynfPO?=XCf-^$b-6pP^XF-$l$4EeVrW!`xZHali=OJh;! zPjChssAfSnkg!ymiivRLD1?hS0X7cGVn8v-BiqBz%(d%CS`X9yVAZ=r8}n-0+1b^b z|32>pJmhAy z;ExwJC5PX){*&DGFVDDvMn%vmw>nA`i{1yyUQk_rX8#yN*9u(6E{v$*g_r`GO^q5EgPGzL$4+?;&OfHIlUyyx{403Zqm0;6VErg>#$-iAghZ+y%aQ zG%WGRj9G>$!UW$lZRfgj4Vv25t9U#@RgQdE+X;6mJd(BZ5R0n+Ar>Wh9;&~uPz00S zA!srpfdm8{XJ`YxE(a)?C6~UOSk7=|3@<}{a-i6iScE}yxkX_jHLi}hnJ&_$BV3i? z2VfP-hlLIxShX zl<#9BWeQDDm0by!6aLBsdefEg#2xOeu)tHkj!=;PbBVOeRgn{iZ+K+Ypd$18Hb$R= z{3K+@nTFRx#Q)qdd>HV5&VgfVQzsu^Wb}JpmT%oOh{amQQ#?NeOV;j=N&zf9&e(W? z>w)ljDM@OT>vR^9z%Q9-N^53zLI;hG{?TX8CS7E4`g=VQVV0KTp~1MPO!g+~@7 zgh5!Fs{|XrRq)%a-+~lJ`x_z-RnpTi{&HFY-pnYrE2mPLl_Nb3ZAcT5L*zq^6KLC?8NBuwl^daFR`wta=co$3t4u7zw5bC=u2Nn zNJUy0eZ{XD$Pqanl8;X<0~@ayToNUbnHaF%bb)JFV$q1wn*s70MQRe@6&``jagg1$ z@&gqzfExssW!3}M+zj(8Z_J8^%J3z1IQA&JFt}&oH#p5G)k)SU>!t6AZ*EBY%`1N- zOn~lSP-+oaqZe*W`hn=xRt5{XM;^1aof7sarwo7}X@;Vj3JozXxHJ!;F_a<&g!UFN zU6@=!@#16mAI|`nEwS><1)n5k$x1L*aXoX>RQJM}n+=~YB2P~oKaADouiglfoshV2Qz|U z_w6qPYVK&z2}r#n(Ohxu&WpquRZHj(fRUQULea?z{hRV^o+2kQLc#WluUC_KT3glP|GuqDUL9T1n z;4eD%-e)$U@IlRqD4>tJ+_|-miD)OHd^phO>`3|y8pIgrELL9+b5$@VXE{BQb~zoj z+kr|uvTkCWd$dsIzK zXCAV%D|K%#xTb-LFg3bxGFkam5%_W5=al2}c0d$W#5y)}Z*svSI*9WH@bH&kPI2|` z{&W;{pg7ELwu_2Uu4lUQ3=aE%yvH7x3+%~w`;2p?V=rgV)C9dE-rx&ZXVT<{FXglH z>p^WImI6Wd_CQUUXm-dnY~!McfQ*hIN|lPRuJ#&I!e z1P&}d0D>e2&hmBNNt-fmU)<%#uDX)fpx6Fna!GFO31suld?1BMvk!)(Z(_iuY0mFe z#T-ZF!E^Z%^TOJ^(MeE{DV^P{3wDbS+6||?Cr%pIEH+sk=ZZBrhhH4jg?h9^i9D`` zEc?cZH&OGZ9KW~#!f{j9>nIV5BU-y#!U_qHC(FxQLDnswH}D*URbN^YxEFi#W(zyN zrh)r02di;K!j#;~HQBSUM4q2GqpvWw1EW`5(q7RQ`(gFwxequu3}%=1Uf2bezHe5D zZpCh}RJLdMuOCNr>&ww9{mU;W6%t|b=~CkUQB>L%3$98IeGgqVyBGEWz2xG~oJP|} zZx3@siFKG2el&tVdU`((DOTGfe?r9)uVNf#)s zT%Lq(gJP9FQJAVB-7%P($*q|9fkWJPOyM_hg#D_P|SV|Ifn<0KS|i5E6nk8Z*S z|Fw-o`oFN*{6F~`cgwj{kYlF;BWGq!xbG1Ir+g!9>bV!Dy1Jmn3%dJ3=`83@ZBSVHe33g2MoUrWUams}cu@CX`~DFO`1!h}e`uli8|$-E>tI$?FQySuq*zRP z7S40EAX{Zsb6CUt)8=6@XaYy6@%M`U&_j1r@RXB;gLxdB?2dp4auhWB z?zJvv5Q?Jy6Nu5j=rvUId>M{DaL};_3BWw8w2lWi>HNTZ;Hm|V?|5H?#J2>;I2yyl zbC^z>oZ({~R&w38)#NP;M}|^Vux6T>S&<-cGBM`!4IrY;b@Q{1k;4)wjHHqX9vPN^Hf_yn47{Hy8XQ2|(D7TuDmyolAx8;F0grlqC zoR!&&&aa;bdt|4U6y)eOR(fkw2`zUu0qohe3?!UA$W#L7)L(W!CxKlK+volk-qO!1 zBd65&>H(kx1Uhl4#hsG@>gkwtKC4Ut9_|(0dCF}+76E}G+eDyHok-aZ3w$Am^NzBo zz-BsMN6A)Mi;^?j^qd}L0?nnZH3#aFp8Za*H3vW>I9l#9B{g&6Ylm|ql4XK?<8lVi zfeYHmR=i^8(W5uyL=?UFC!7PoiE>SH9>g*AKT*c z-3{Y*NMn)W))$a7$;e&2?4y@f7m*&*nKyo8YQ7(N!|Xl(zyxeu$ZKHCWXiG zD%6<_zv@gWPX~EyilZA)_aA?;bl!VGEQ#Bu*J|`ztJX?l8lh9d;)KEvShLgkIwVYQ z>K+C2;nG1?8NaSRpp-~4D$WHInr;>$6KXE7K~>OmBS5<9%1m2^bGb3iuLiG zl&b38H(d%hRBX!)eNCLagk7UlDa_j$E`PRvKl$yW8Qb$F3>Ou{+ll!EJVAjO3#g3YFi&q3wBiY)Uv`Q7X9kd`xt4X&|w0{xrJ4$O4Q@;_j{;lINcSkQZ zg`GV1zyqk2tI5~Bw`tu<$8~yv)V(QEcjC^@q}B=RGUpw~$(4RS_$@P((BwLJ;%wDu ztZrAsJ&&F{*TU118#VPuNdWd{ z{8hi2dpc8U@lY2fkjg23m3{Xn_ctoPoQI}DWn|e2toKGIZG+`%m8bM7B2U9<QIoBRl z`+csFuS*r-NH8>YJ5R!|<$7S7@q^C#pD|U>akb{Xg5oRJFAiEqhB%s=3CT4;x4<^7 z{(vr=^<{q5SWRs>8;ZqY?{QXXtT*rblBrdP9!1T&xX#6d?#k>cWpU}I`wyOsW7?kx z>HAMXO}zL=Yv|X7mMow&iF~il%a80_Po#CKFIRJkxk%h`4>?<;5GmaEEur@e>E^rH zq2<5|VA-@8*&mNK+h$d#MK&pBu1Q3wL3kt_6eHO>>!5V2n{O56{4ZbtGZ|HX)}sG$ z9Vm?*zX0`3=>Mu#{O`P`zR`Hd_V%nq=khJ&uvY@4S;W~5Osf>WRWoM!GHb2;+>j;G z_$}X0?#w>i5-(yr`1lmJ*C;b^p`)Cp?^V1PMT-dZ2KIh(|74r+?Wr`>%_Tb|E%tw@ z207SK~jxIq_bm?4F#(sAjy@lqpbFk_QpeR4^Ts(e#hsekE`$u10 zm+3x?+Xv>Y@1Z~{I9YKYhr6M)WZthUlRaf+^|nANv1d0Nc(fmnLekb|Ao}`p?M7A7 z+3^WhEx$UP3JZQZ3=|9sF^f~2Ykg-(eyv?DifrQM!d+8pcCbC*Au_fN7-W<1WNm4{br8AHf~eUP1y(D# z4F@0_CMbLa;q-OUqto3f2#_GjP1K)OIF%Rp`0hKo&%$TKg9uZ5tT_Rlj4x7Yy)3c- z63!kt-IrTHK{<24PhlJ#_1EtUO-A6_-14LnMUNFbACN!!cF|tR>hsUJG9kV7R2rBw ze>>d1^}O5HanBg|%iH`}hnaIMo2QbQh=L zoLM#nMT>ex&uKYPj6}o=9XZ?`lK;}(N!|AKFh&pjK;NaX-8&G!*YMdZL)fH+#>%?& z4>l0oz8%= ztZsPG9e+-Y;5zt*>ykg5QW1KKQf15{J4^YU1NbG32u;nz-4LqP2BhfASgXhz>Bc}e zHn@+8*mWKL@L0kQ9n_%sul!=^Z7Fz=Jezv$^#wmD%}@lA<6V9#t%>vC=GzQnVkuZw zE-}h?99H=JWDyhP%7-FvQX!$-_3_O%t5rr_dRWh&38lLeaoo-pEIVLA?9iEi4jAbR zb&2vbSnR{E*F|=bzP#4LxmzpU8*7;{pF4ZFQ^I(PC%cGBtHK)KokqT;MuBeyc<-~D zrQj29S5&Lcs6OSsZ$_Ro@NiM(Rc-=CDSW#$cZ~Ya6AwGjT6yD@7dY7c#7mS-R8@NO zsHb1II_*SP;%K$LHtP>s#CnUJI$|=;_{9$--g#Ot^9>ZbrJcugChmnSeVeGJ)E7JE z?6%lszhWXQhqFFy-D76{_Bn2wXM=j=nXAw_yUMSV?g`CS&-@pc7^sBgEu}U03@5vJ z1=cqkw?|Bl5d1M`5 z$D>1HdVZeQ>*Uk9_Mq%4fq1E9ZTolpY#LToTxV83*WZ1>JCU4JHJp-EHYJ7wB8w2} zOZIiY+|p)Pkhx`Q1M^*1uD&0DCo%H>40v+1bQplT1}C-ey{E0^B~D|jNiiXd_jph5 zUxbxE2ohVm(Sbqqo4Eg~J{$T`4z0iWY*$_U7hci6h3+NXUDOuDMyT#qcP{pnb zZPlws_2g+n8$sXu&bWtv=w#+-6i{dezm9wwgnr1M-4>~vg#|qI(Ef;W@YL3aaJZSTr2Eian`$##Un%#kR=6@WXRhCYW zQ$U;nXrShiMDeLpckCEc{hO*w ze%M-0O8FNVmqcxcZz2AdZ}F7SS8*-_oro8Yuc4%9;JCLyj!(`OK<5cmvM|v~WXVfm zBXaacF8Z*VB}&^iGy)!E|Kj>i8K(|jl#zv~EeHU3zg7lkVG+pVy_^;+2Sl>Z&Eq$` zvTA=m)NeX)1dbdfn@5g6$YfSpv$5+D-q0=(Y|Iaz>W$URKz>7vo;H$^F{L*Pv9{(9HF=E?SpE&YH+K0OoPN;)Z( zVz%$6hr0gv zgd)xhz|S!tjl_cud?SJn)=kK>$MXSAaQ*xiLd8cx6ESz+poBWJ*3RmKTRY=gkdI%i z-vyxD1#Ka4WY$hIL|i%lVyD@D77q|T=>UM6Dve+@FtU68n=M#Veoj}0^B=VK5@D(! z7SyRA&5BzE1%_=%y9vNv)ixeDxKu$o{q%F(Gz@Q_+5W)=7+%W^J030=UhA#HJ8Pif ztc^Nrjxvi)HZgBt2R&YWp#UWwqK+82b?UCVK$$*+udy7+JId*3w}{aLmy}bjaJAw| zr!J-7l)Nizp()!|Ho5WUQ)GIU&bQ!oqf?||X(}ta;u|KjTx)$|zn?PxwVX9G6+^Uj zg}q*(^h*50qJAKBz3Xm(H1m(jZ^$>G5pvsSKM~R!-#LQQY}maKfk-WXo$BHrb|)sK zGQ>?{w*hZW>MwI;LUV_90QZbPMA?kNapjVMTsKaxprh=3E~7%@ePFvCJLEYLy8i63 zd;wMl9`WX_k9Y=~Aunn5Qx}-hT{V6_3d@5Y~_CF1H zXCyIJUKBo6RIiHe8F7@(s*Pw-`e8d)0C0|5g6v|4?uLyVTnea5Q;54T^B-|BI#0KN7Q& zrEP;-u0Vf@b4ksa#_njqDo^v4>S+sgkA#d#+X&FH*bCMRO=W=TtNoo-s!Bqpa|Gsl ztfY%_3M;I+d;j*l2JEFliFi~P_GrHOcw_w-)W3pW_4(G!-YDpxFa%w?Y8w2f)CV+D6 zAw?cM4tiaxCLbY87GTvpfrCP6==W}anVzoMk@1x7@ALXLFOxKunvpvm%Bsg=QQS(R za4t=PYNF-)*O7Pa$WKws?0!5ri&uWqgRYxEDd7hI5B3m@hX^g&5Koc=J@^txDgFU| zd?-#=vK^e4>|sHJP7E8^k=pIpBS1m+68Oj=qFc`Ze=^TQVOgSb0IvZfXkB^@6R2~L zPg$+MKQb+cOnXCzwp0;VMB)KHFawExqAB4xSP0^jkVO}KN(ySg%DH__6 z>d2}Kj4z_0gV78Q0l9E|H;jm8qQL{>yOL&Z_Q9I>7INe!V^8A{uMHlqbQIG7YID&- zvj>UL^m?pvd1g=q#yA1|+8v_KdGz zPLZ*1LVuv~!1g7B%8~;KQ5-K?zjYB5uA$$MB0Rd#B{C*<``@5yw zkcA@(tIj6vLZA9%UxRBT8|*@z-`{>*Q_#1^+w>xR>4(tD3EHV zHQW>ra`+E2>xc^t){qqp;x>5XL2<6;N1o!3(Kw?!`do++{w@PrSi8T?yc;;ng^cY` z1IaKVf{Dh?04CU{f1Y5xbY#al*q=^c7rXB!G>$k!aO3vdc0oQRJUL;74PZ;~M#&F8 z@&u$7Aqy*TovWq`cim@foP9tEvZdn1%-SN68Fvf_`jxK7Fq4r29|FVy>uZm!*#3Po z=5M9|rZ#m5hijfd87g4yg*f1U;A9eCN})t~9QecgEI@RrF`YOp(AF+V3upM2Af8Oy z;^c>QXt*EfzP)j>aG!T@Fco1Cc(+NM-WIn`!q!_svDRyg{~7TyN|orIJ@SkMHgXc) zSbk?R$nv{D-9mGsNvggG_7%#E5cB$v@w-`eU zu6h0ER|Jh!dcW8s8$aZq0Vwd9{rpD4EMQReVOblx-&dE4l);s@{gocvYw`NfP2uQ!EPR z*8~&30_jkU?B}|p=F-N3%|BCc)5cg!;P95076!tBJtrGGbe;jFxb*Oi|DgWBVW$|v zxkn!W=(~$!F+}^H@4)Y3o!Ar56pODbw$r-0&ZM)2p7fvSbNq7~{wxZ&h=2YnTY2$I z@51LpHpzHVAeIEi!EZ&&--$N{QIP!pM>O;QS<%ct6n$?&M@0h#15*GA1uqFHjVdoM z8GCYoYAn^Ce+B=ySU7<25X4FUdKr3$sw%}gV@mTkp915vDkSiaj;6lGeKq{m{{v4K BJrMu^ literal 0 HcmV?d00001 diff --git a/assets/rln-relay/rln-relay.msc b/assets/rln-relay/rln-relay.msc new file mode 100644 index 00000000..3ea4181a --- /dev/null +++ b/assets/rln-relay/rln-relay.msc @@ -0,0 +1,32 @@ +# Sequence diagram for RLN Relay protocol (registration) +msc { + hscale = "2"; + + d [label = " "], a [label = " "],b [label = " "]; + a rbox a [label="Relay Node A"], + b note b [label="Membership Contract"], + d rbox d [label = "Relay Node B"]; + |||; + + a box a [ label=" \n Generate sk,pk \n "] ; + a=>b [ label = " \n Register(pk, x ETH) \n " ] ; + |||; + + b box b [label=" \n Insert pk as a leaf to the tree \n \n index: The index of the inserted leaf \n \n root: The updated tree root \n \n authPath: The authentication path \n "]; + |||; + b=>a [ label = "index, root, authPath"]; + |||; + ..., ---; + ... [ label = "Other relay nodes register and the membership tree gets updatetd" ]; + ..., ---; + a=>b [ label = "getRoot()" ] ; + b box b [label=" \n root: Get the current root\n "]; + b=>a [ label = "root"]; + + ..., --- [ label = " " ]; + + a=>b [ label = "getAuthPath(index)" ] ; + b box b [label=" \n authPath: Calculate the authentication path of the leaf with the given index and based on the current tree\n "]; + + b=>a [ label = "authPath"]; +} \ No newline at end of file diff --git a/assets/rln-relay/rln-relay.png b/assets/rln-relay/rln-relay.png new file mode 100644 index 0000000000000000000000000000000000000000..a62e0ca00df7aa2c29ac84cba744ad47b0222617 GIT binary patch literal 71385 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 + +

+ +
+ Figure 1: Registration. +

+ +TODO: the function calls in this figure as well as messages are subject to change + ## Publishing In order to publish at a given `epoch`, the publishing peer proceeds based on the regular relay protocol. However, in order to protect against spamming, each PubSub message must carry a `proofBundle`. At a high level, the `proofBundle` is a zero-knowledge proof (TODO: to clarify what a zero-knowledge proof means) signifying that the publishing peer is a registered member, and she has not exceeded the messaging rate at the given `epoch`. @@ -60,11 +70,11 @@ The `proofBundle` is embedded inside the `data` field of the PubSub message, whi The proof generation relies on the knowledge of `sk` and `authPath` (that is why they should be permanently and privately stored by the owning peer). Further inputs to the proof generation are `root`, `epoch` and `payload||contentTopic` where `payload` and `contentTopic` come from the `WakuMessage` (TODO: the inputs of the proof generation may change). The proof generation results in the following data items which are included as part of the `ProofBundle`: 1. `shareX` 2. `shareY` -3. `internalNullifier` +3. `nullifier` 4. `zkProof` -The tuple of (`internalNullifier`, `shareX`, `ShareY`) can be seen as partial disclosure of peer's `sk` for the intended `epoch`. Given two such tuples with identical `internalNullifier` but distinct `shareX`, `ShareY` results in full disclosure of peer's `sk` and hence burning the associated deposit. Note that the `internalNullifier` is a deterministic value derived from `sk` and `epoch` therefore any two messages issued by the same peer (i.e., sing the same `sk`) for the same `epoch` are guaranteed to have identical `internalNullifier`s. +The tuple of (`nullifier`, `shareX`, `ShareY`) can be seen as partial disclosure of peer's `sk` for the intended `epoch`. Given two such tuples with identical `nullifier` but distinct `shareX`, `ShareY` results in full disclosure of peer's `sk` and hence burning the associated deposit. Note that the `nullifier` is a deterministic value derived from `sk` and `epoch` therefore any two messages issued by the same peer (i.e., sing the same `sk`) for the same `epoch` are guaranteed to have identical `nullifier`s. Note that the `authPath` of each peer depends on the current status of the registration tree (hence changes when new peers register). As such, it is recommended (and necessary for anonymity) that the publisher updates her `authPath` based on the latest status of the tree and attempts the proof using her updated `authPath`. @@ -72,21 +82,29 @@ Note that the `authPath` of each peer depends on the current status of the regis ## Routing Upon the receipt of a PubSub message, the routing peer needs to extract and parse the `proofBundle` from the `data` field. If the `epoch` attached to the message has a non-reasonable gap (TODO: the gap should be defined) with the routing peer's current `epoch` then the message must be dropped (this is to prevent a newly registered peer spamming the system by messaging for all the past epochs). -Furthermore, the routing peers MUST check whether the `proofBundle` is valid and the message is not spam. If both checks are passed successfully, then the message is relayed. If `proofBundle` is invalid then the message is dropped. If spamming is detected, the publishing peer gets slashed. +Furthermore, the routing peers MUST check whether the `proofBundle` is valid and the message is not spam. If both checks are passed successfully, then the message is relayed. If `proofBundle` is invalid then the message is dropped. If spamming is detected, the publishing peer gets slashed. An overview of routing procedure is depicted in Figure 2. ### Spam Detection and Slashing -In order to enable local spam detection and slashing, routing peers MUST record the `internalNullifier`, `shareX`, and `shareY` of any incoming message conditioned that it is not spam and has valid proof. To do so, the peer should follow the following steps. +In order to enable local spam detection and slashing, routing peers MUST record the `nullifier`, `shareX`, and `shareY` of any incoming message conditioned that it is not spam and has valid proof. To do so, the peer should follow the following steps. 1. The routing peer first verifies the `zkProof` and drops the message if not verified. -2. Otherwise, it checks whether a message with an identical `internalNullifier` has already been relayed. +2. Otherwise, it checks whether a message with an identical `nullifier` has already been relayed. 1. If such message exists and its `shareX` and `shareY` components are different from the incoming message, then slashing takes place (if the `shareX` and `shareY` fields of the previously relayed message is identical to the incoming message, then the message is a duplicate and shall be dropped). 2. If none found, then the message gets relayed. - +An overview of slashing procedure is provided in Figure 2. TODO: may shorten or delete the Spam detection and slashing process TODO: may consider [validator functions](https://github.com/libp2p/specs/tree/master/pubsub#topic-validation) or [extended validators](https://github.com/libp2p/specs/blob/master/pubsub/gossipsub/gossipsub-v1.1.md#extended-validators) for the spam detection +

+ +
+ Figure 2: Publishing, Routing and Slashing workflow. +

+ +TODO: the function calls in this figure as well as messages are subject to change + # Security Considerations TODO: add discussion about the anonymity (e.g., the `StrictNoSign` policy) @@ -111,7 +129,7 @@ message WakuMessage { message ProofBundle { int64 epoch = 1; // indicating the intended epoch of the message // TODO shareX and shareY - bytes internalNullifier = 2; + bytes nullifier = 2; bytes root = 3; // TODO may be removed and added as part of zkProof // TODO zkProof }