From cfb79a269974670062fa1b3b110bf6aca78b7684 Mon Sep 17 00:00:00 2001 From: Ardis Lu Date: Sun, 14 Jan 2024 19:58:58 -0800 Subject: [PATCH] Add "Features" section --- .github/parse-smart-contract.webp | Bin 0 -> 34200 bytes README.md | 8 ++++++++ 2 files changed, 8 insertions(+) create mode 100644 .github/parse-smart-contract.webp diff --git a/.github/parse-smart-contract.webp b/.github/parse-smart-contract.webp new file mode 100644 index 0000000000000000000000000000000000000000..00ff75983c12fd0cc00f92cde18519c320ee2e6c GIT binary patch literal 34200 zcmZ6yW0+=9uO?i!ZM&+=wr$(CZQIplciFaW+qTukXZk&7&dhw@`n7fC%1UzQPO|q_ zmJ%0F36Ak(X%%3EhD??sfOk9czU0#m@ZD#-F>2(lo zo?SFkx)Db9IcgK|{K{}|@cdPDkUuZ+g9!NP4|xCP{J;jx%|HFDy@3J<2m7w`9|1%> zdI7ruZ*NFHO+QnBw|0R?gWJ7tfCoP<;Nz17kOero`UNNk{9BIygcK0|d>nnD{slbN zO%gHzasv#0dVW~G%Kj2c08rmO?gBOi>;T=LG{<|B04spc_ttX4QGmGs@%PZz*mwSe z|8#)Y&--W7cfdmaw1DCd;5+|~<>PIf;RrC@Hxgj-mHB)F5NT->0{j#AIakk6-Nz4b z`r-Iy`00D_-_1+KS7C8GSp;zFC;H1x80PtD*Piw&UCD|S@aU5FA%X~s$bdnR*Q#)Pnpd^TPMpqkX zY`voX%{{mV_432g*wPlG6a&;pr$p`+=6tTlskh-2jq%$iO`4QReRC6@H44^(WS<_? zUuZbXKL)j-zF^_3$_!1aEZg5^f72~vOUN_L9eJe+e>d#gM4}yI4k9!#SK*-I&;uib z+RYD$A0GXobYY7~G;ej{+wr$4-lLz8$+QP~tm|oE@4lmG2K%=kO)t>VXX}K>Oe?l+n>4MIFpKG(vMN zo=3q2v^u?n+lK|bsjYrTUV31Od7iChYh+PlUKJ3K8~gv|F^EmgrW8mC_Snc~h=2`n zj`*}#zqk0VG*Sz2u;s{cYijswN>A5*R#lbV-D5@Wzw0*Kv~v0E@pVTbz^cf;quuAP z6MB$WXP~H%WJgCuZ5d3(U2YwF?!r}nhxCFF&Y#d3n$}%|?25qAtPDg>q*)uLx z`g>}~0LJza$6tIPnM@h6c@$F&zjv*>4$OTbreHtvm|L|W((|#tz{rse>TbfNksI6D zzOE{&!s5VzaTg(1Go?a8?2NA*fXOKd|{}WG%qtRj?hlS3IQz>c2r((Qh z86T-nryM4tuRam?EBdNifWn^ zA`{{vqf>;%G*7kfK45)c@e3*M=5;!S$Q^11^=$B{2iy|!%O%4Geo|K_OO(8jUD6{& zamT&2Y;`!xP}MOxelyKz@=vkZ3A7Ql@#icLdEi#jjEp48TzW`e@J<5L%m3KsT%xR%*7M?A|5=nVV3fBRbZQ}uK$5P@F8a35q*dPd3$)T(XHTt5(9{#eScPdVOb zVw<8naIoP5A5exnp0sJg`A|bUU!O)sWt{bD1x8ejsC%14GD@dAUI0eAH3`wz9@(ep z6Lis*hqlfWAkt#hn+c&7a3gJBMd%yH+3VQrm}$+(&y)N+k?)wnaO!%15-E82b9#-m zIeZBx^`V8SmJc1kr2gBnZ-j+j|GZ4VnrDac58?kmzsJI^71|9p!e>*5?Dlr&Y;LP! zp^qFU@wUf0H5cur^FSnC?k_+|hvj*cEKk5^Z*GcK=TfaaRty z`UmdozCWSjcFAwzn>G|h8G3A5Tav59pyl`FXE;m6if@Ao<|tJw%S&NZ#o>tX-(D?V zMgQ5v{eN=NDk~b#KSgq24R?y*{pppggN(#*@mT&KVS1wz6s?&kNoBwPuC#u#ei9@3 zb|pPl-3|G7a;IfePFyuq$cKn3er&Wts9Z=zqUrt0>gUG{Sll%*ov=%UNsnSHrxVA7 z+M7N$37>dFK9y^Bq%*I860F7g#1f6;j}pA8^EsB9MO*k`B1bnVi74-B0Q>b5Xk3w6 zRqd~2H&TsQOL;NyGFzHKB4nXcr@JPm2<@utG?Dtam8SfE4dL{G`Jde!Q9?w;d)A}6 z+9B98&4?FP{Lc>id%Q9JJ-yMGKE3^1sP6#OPVj&1_kWSe$e8FQ#KNo--ueecj=4B^zmME4+71=h&PS;BkE*NS zv=R(F@N&u$R<*~)Y|$9NeNw;~(*D?~KJrq-+{E1Qf8iHJQyT>dr}rNT_)IhWYJ_3o z9EgI)wZZX1m3@6+CQ2KkSC6Y?g#~^;Hr;RuDY6F-h25qWtzi05=(@@-n?tsGM?~F~ z`nBITWMGXAe_8AGCeYRgO%+n-%!fj3vZfaXmqDpw01+gSs%ZA0;Jq*P#3XpyZl3Gt zd2}fH8r=vu*Mebwe7Ko0jqo`wcy zd@%*JJ^iCvLkZic03MriBWnDkDFlFJ1PQ|4tWFpd;Tuf-M_=woLo2!DPFHY*yaEaK zBOwp&6aPpq7QER>TQdsHcL0KMJHW*nOlu)_q8NX%aj))Q&id1%ZHxSH@n6(SqeE*E zKS(g?M)CbTy6K(dlz&EQc@M8MXEEjiub86HFAH7b7UnGsDRM#xe zio{ix&Jzsb-Tn^@E&u3{EWdJh>MG&dGv7ZQNqe^xU=;5tMq;#@y-#r(sv3)L9`G+4B|Bxw;5_PHV9bI3STN;J z0*?-i+sHA>Cthj6$7~5M+%(>X0fv4J+;KRu_dmCtY zpk{Ah6LJ*)sM6vbbotb=C=q=j0_R9<+>EAff6j6jMz+{5Af%SAw2uvWHTEU~sKc7n z6N;Co3PzR3>Kwh7&VZD2)P|A(cT4eiHa-R*WmvFlSp+|{`7$Z;!2&Jl_q-DjqVCDl z*Ki+7cCrn3wVNs`tavSPUG0J<-0|t4Kplo>|cKCV8nOq1{jHScs~o`--yhXFHP8JlZy8b z><1dPC>WnoqVLhDalUxS9g|!O)%I@|`?hblthnupI{BN9Q&wPgk98C167~8CCVpkX z^ksFg>0}w-zMmp2q}k{%q9FUd1oAGs==v;q7!(NU`*uLX-P)}tF z9$Ta0U}mgNnK(k){pLru98*-G3jNXD=)#+pjm6NSsD(0hrm2O0vjmEHtZ&34qQWS< zHEL=?MnL@ZQ{*W&iaHv7pL-nc5!BwsDKHP3M!Wm!Kpkez`V9p10~pG9d5=Gd3FDZA z2aficb$GyRy47%=QL->u|DNPocl$KsqR+#=^fG>4tu%PwK9=|Q?#W)CAlV{7nuM+& z1VRN?bqI5dc=*dt|57~HZ_Q#C0U;hBJ2M<;^w!L4YU)J&o~^T z0>N0X(jX%5-^Y{3`}>KB3M#EOA~grNzdN1zOoP-ESbY#hBzxHR4*b~A%Wj847CxE% zU{`gY$5x6Xky~5(?;$ZnCmpwN=XJ#=7SUcF=4$^?95t_eTYXB-gxv8Hqq+oBxQdXm z711<|as`+ZSxM|g!EUf3BV>AiHFnI%$CDek=gruOB_s1e@-g33^zePd@zrD~i}aht zr-r~4kK4{Fw#hCt9beLAqqi}MgJk5x9jeFXpkLxD&2Ok`@6gbszXlX6oUNX3);;S1 zOtHN`*@X527gmlz`f}Zt9%)+ym5Ub1zo8!usesUkfN=fZII(ME=n}4VA>=c&Nd`iO zMS{B6m3Y_HpU+N)(9#CgO};qHt|~||GF5NEMXO%uX5cN1Y`lE#N@AE`^(v-XZQPPC zKuGRrj3)>~UAk`d?Nz0FhUcpS$fl)WvGLC|SCj_DuJ}24e=1tznwgf?(39+y!Z9%E zhMp7|H+X2ik^Zz=d)_=PP^GNf)_t#m`l_(x3@g^ng-&)+rP=;I(-)%(ry^na^~vm1#myj37=w@dv8DkO6G2(;!3PJ zr|FV(TW4k6RAd!j1GV=H+GOx%Hi|*9Y4OQwX}NnPSyJ{pcU;p4^R^-HofKLRipy)w zAoSCObPSXHAAH7xy!BG(+YqXFenu%$6>v! zoE5M4q(Fd&Vw&5SmP^874_O_Abh_L`m;5EaCWf3v&h_z`k8R2d~iXXn>aY5{MdS?>qVTGNtP!8aIL&G$7~UaLFy! z;5flI=xO)lkpUP7F6Hee?PXTjAogRBV8#*RcBs%lwbWV#P42N?qxtOh%Z=#Z~g+ahn^V8W?aN< zrO$m#I1gPk?()Pt=qBsIH}+k(AurX@lVO++m7!ljE|ywfk}Z*M8~VcR`5gJXzCNA} zd&0Q=+vh&ByrgBYOVEH{*W+}%_54b>Flb;O9)IY3PS<)+oTG53z#sBt$6ZKoHbeeq8R1Y>O;p zaJv|jgr*TiRS2cRFta^Lc!Pl2{2)Q8+%`rw!W&qOppFCGfv?Mq+;0@lQg?80F0G! z>2a8wrmgc<`42&8W2#0dRd5O~KVwIdZcd?4uO+^<(^gTHG&!zZ5LMScrn7<_}7 zw9?WejjQZu=`_vnIq%7e+t#mwdo%MCq5%CV1V3Ak3tLI++~!9&*}!Ke z^4;u^tC(a64cJ$J%Qq1d=yZXKOIyAi-S6tB(|LjDFCd83AYQ0EC7F2(-d}JR&KYVW zG&E{5-J%D`IC-=eySTY2Rq-6BKP+$jR27K40YM_lp>l9AH4ywqY=6rtZOERMM1u#e z_ZirK6!uv%hcv|8MFjfKg2qUTTB14VcT3B@FF&&V5R-yQAO&UVy zjDnkB+`TQrmj%dB>j0A%*oj3kC|T+Wn{AYEA&l2-ke#M<`JWE)1osYlLp8Vf;pX$B zVG(W#oP@^fTUw^CM-xr!IV|1C2%2`Z@r2BVt{F__#fugqx zeNjhp68p2?(CGVAts7`0THUA3Sl4PJl8DPiK!IU8v`w*NT8CTaV$d+)8*L?(-1aec zYPA=m6=M7&^MxTv;7rR`jCQ;iAW)DC&O!kh&n28UG7$>H?=7OL#)7q&Mcu)PJzhH< z-oGJUo+G5kDLlGSN+Ny8vb3ZN&9_OdvDuYV-atI_HWGrnaYLsMICK#jOXhOwDLeW6 zF8-trF_7hcr35YgA?^#NfDjQEpbx!q+a%#ehOoU+zTJ-~wf&RK0s!|S3lKAKsl_XuWY0lXHGe?j_=Ar<$tXd4; z^_=^wR~NIGVmwuwsT&iB=P-=L6Gt@GNIW&M1OZj$T=xERSAec4K1?o%yH_=p9qkd2 zHEFTwxqj15mCd?w5%H+1%j3|fO2}BvPuUFe%sU5h0vzNuW}U0qGNgo;<0oqV*H$`@ zNcVjcal>2S?nIe6Kq*^wlcA?|ePD#y@NVAT!Quh?mRe1k%^T-+kJ>W$7)%j}B(elT z1PC#1?d{S1y7(^RQuQ}Qv^2kv z8H=s#XPrdjzzbKFB%Be?1I#RE-ggM*?K4Ib?;aU z*OCEKaLBt)EER$-zoTS@_rU|TeAn<4hH%9Uxq&`v?@ZMNK|(<4RUAJ&Ugg2W(2QmB zMVb5U3QMS-=b3IxbX3@2HYu#3mke(;Pi z`p)`arIc#i4w%_$E4sFrYJU^qtY~cij+6_)o9vV!<{nTrTS9JaNwz{pI7FDh%7BZ9 zqGgjF(BQ3{usAQj{+QqJfE(M*r~pFW7Q@-LQiuL` zMve3so$2EuSyTERE_b)l^&d*S8oubq)d1+|&IFS6+GM9=42E-~1Uh+l(Oz3z^>^zlFXF55D~e2rflI)to|G4mMPY|W*G7A1`5^h=tZqmu zn~J+U=6$m8$;=Gqizr|)spxMB_H|;D$h!35Su!u#+)5;F0MB^ZcFpufZ+nsK|mdAQTsf?rYEgZ+ChsrB1_sYCx3|o3KDusNs za<#;XC)mikG}-+$i+aYQTNtnA`SXfF+m2o5WSt-OqUiFu+&>4cj9-nc4!rLst(6~I zJ-izbm5ZDQ%ms7-Q`Lj}3w&u*vOkwfMEQ-X(3j0X|L;O}Ydpd|oWOJP%m0I*`UrD| zY2w1FrpBjdwd|LY96AN4aj@t2BGf+KH?SayV8FN|!NYg5Rn^Bcg&`N+`0HB?EX;Sh zV#_!`Xsr7ajjy zyXa#Sn+e4^^0t0c4r%Tg0*U16Vj-8?2d5po&Kg!)V$A(w%z^RBZCq+ICeK)Q zcHxyOv85?c`{O4G#*`@VqBE(MEf2muFK9xF^hs{Ac@~X0-ES?zd!x;ZIcz?p^OdIl zT~j@cI*9+uK`lU08EZu*I3cd*6-Fz=3eiBCEhL8Q2Q7LEY90s(6mD-TPq=@wCbp2> zDQJg(eJ`G?AbDw@;5#aGKO*2+;r{n^8%ylN*{56BVl82+C9VIswu{+QP@Lr_J&Sd; zT_>5wz3r0S0!d$pdA5BN`WG(ima7Cq&cO@Fh4NbLDj|<>@8w@n^*49?&3*)S29Vm1 zZU8~~m?;fcb$NET4$0jEIr*d$yJ~T~(KRl-lk(l%TNm8wEG#?Tvt6}|v`3JZ}MClQr8L0#Zu;yCSGhM+p&C1rwk z{x_c{;EFO?qma(K0kEn-Rwu0aVgjhnlhO}uxEup$@h0~`o2(@KGBrm{h3aAVm~9=$vg|=H^bl03l>e7&(m>8D6<$H4K~dGVpyMyHGg#=&&iT7}xpI znU_6=Z5UXo=o^RtIZI<~(HGM6#uiK0E}2sd+F`RE;KUk)LEUjnO^N08ldkGO8lQum zRh#J&8sQV|JgOJ{!H0 z@O`HZLbj~|F?V%_G#sY@OaDv_e=D<`#`!x}#kfh5+Z>?GkUrefEfu|~_dC*cUiPd+ zw_8I5EPAjsva^xDw?%1K8|}srmCG9MO@qYVwwH(6c692)C&Mr29zILGnwOVJ;q*k( zC*w8NN6RIibSS&Mzi(4^p~}_^4)x*?_p|0-!(rODoa~wWcUyWQmQKSp19-@$RU|~q z?&Q$=c|P6n#wr-lYK01rci>d}2VoA`O!IXkdAR$zwZTOUe46niA6XpCz$6C4mkQHf zwW@+|4j9sUlLAvRB$_R-j(oerK~0LSG&?;x%#vxgV2~s)8#`ba`B7H5n<0Ckjuk>X zJnQPM?QyGQaK^9^gyd#?UG0fu4pK!(kF?_HUyC0Y2lQga9-_b-|I8Ho!XQ>wZ=upo zSFwFUD3&vI-b34Z3J&V|MMW&1c;7r|=Ip!?j$=;%ajK%h`efRqJa_b3Ph^)VwU)-M zW-V+mQg%o^?`~@{D403e5IU}wGQc)?Q5m`-2_64g7W&L&hi)zHy&AHKuK%Qn_ub&# z{I!5M0&~3BDnhBl))f_4z2o+p-Xp8I&io(;bl5eRWjq{;f*yWZ_-irbq6Bnch|%(t z$qgJCFCUc;lFL35K1!IHxo%`nWhdv0AHqB#_#9qTbdTAa4Z?klY(MD4Ic z)Y7q&hMrr_w02$wh+pp-S$YJyEAapwg{zAwVQoP@#&%#YQ6Y&j^hL7(h2!Kz@=Iy~ z=4->(*Ur!2{W$+SBkuc-adz2>BGYiiR$QWVI2k4aDpyUh$|{Z~Qf9*}?WP*hbv0}F z6!cj>s!t&^Y_(}4?9A=gg7iAqF#UXKQo4nmocF>SqO}INfXDQ2nze+9^*FJR3GD^N z>Kh05`1)K3_7O#M%6wH1rn*435tb3pNOzgbY+ID21o`dd9+kPaz0|f9`wuCboinpw z*)l&HG3Fl(p%I2~mCwF6@FHHh@|m$v!3-&<7NPXz7*Xf_@hqri^dFSej3vGuL+{b) zN!3m}&%wqG9%3P+X$E#NYb3H`tk9Q!0fNZ5-mw^63I}nY;heM~` z@Il-HmAmsxq9OnY10IBHwYd+gD3znUTH5Ypd86ncP8JEGBWH^UJjm&c@jb+eJM%9% znngFmyaeTM<%=MxWqdD#vQMS~7t72~1sR-5@D~dVn9>E{nhVKAXX8Qt@Q|l0-X&|| z1c$Z`&>UF$hzzYY;~+z+PXB^P5cix`DCHV2bWk^Jwt=kVPt3e};q@o5;CUVI@}mra zbT_lZw*n8+<+J9klcCHw4(pMacC0Ts7UBsCWE{dT;!54?Q!{w~02T>kV%6y(5s!VU z0y(E`TBW!>(W7t4p{MX!%JhWiGA8GH+)g7FERWPtSp+{YE2>FX4t(V`&obCa8(}-kBlxN9Box z!|ZiR*S{AWq=EO0JTx6|El!@NQE92X&4-S^#LuAtOlhwCAFyp6NWWtj)%q@FynNDF zDF-N@fXiOuog`r^q4d60*?J0u?Ga8JA}JPFC#0HRiML2)!lUJ)t?s*jgh%xE2Zp2`K+y)a?wp>)0w~ z+gF_LMTdRsAbcS#--JsUa<;9i?>WrXQ~y++{`H7IY(%h;Y~(VNE4Mg)2P;y@lLQ^L zHyaFsTX>{H%Vp1mzaqi{{pHMtE=kw8wdIFG^sgp^BoKZvs0U7AZ4eP}ZG0P}_fd-w zsQ$=bn`;*io2hK1vH@3<@IG~nc#i@4a78@D19KsIueaIA3PR>X(HA*DH*&Ji05=)| z{Q$X_66-|^HZ6v&+kwU!Lc5H(nKstUM(zKZ!Lp;fH8zcuWnHwC#5<5LFQC6I2J^k- zeBa1L1@Wh;AHX5(YLBhvcY02N+rHk#^lVB#8sUWPCq*9O1bC#O1K ztYgI2w?f>~q`7FYu@Xy9Ty~2R7Xg5unQzqdct6F}-3viW>_va!UH^{Wv~r43xu`x` zJmQmxefGFSv1I!ude0DE*h>zk-M5Xp!=&KN@SRxgEJ{jUPZ_U&s0p^ZSLqiNmnSd- zxvVWLvgjIM>?*>6()icUp2*YwaKIm>(aeytoKU46=gEeQ&?16A55~Np=_JExuYGew z!_a9`&8ro<*3nGt9eoJT!I}$|EiDOQxg-0@;Z?vJevDKztTYHE?5-}%4cLZ&=J7i25sja zgFeF@d^aL=p6-8@+;R&+!dJmi4b)k_pC4x&R30jGM)-tKt>RJ7Ouvx)qW&Zz2mJ6I>c2vCX4S z95*T`uY42iV*)d+YklOM#*X_2wnjhTwiyD=Yq6=ZJp}nJCVfBKxj{y6?nbZz+p~pr zBkDK+>s*=(woJ|K*O0~#nA2LPIf<}E03<;TR-nf<#s1OK&#dF=sl;6(CmO4wc+Jp4 z#Wes{3mGe*w{q0COq0g@3ylKzU31ilSR>Go>*sip{m%qeM`7R4b$f|MpO7W4${-q4 z93_>AI0ddqOG_bkL~OmcY`HZL%OQ0IMUC_8yHvf+FEBPjqV%Sq2-8aR!cjqvdPgY`?;+LNVZ^7f;YO?|jZ=+Ax=I3@NP~hnCq;F&bDrPS^QV=?G=nwV zc;>-_8Sc}&-w)3r56Pj;{kit_ZVmEV6nMpX0eIW>bclOIewi7QHrw{sXNh5VMpkCS z%8a!%*Vlb6J!>8EYy(Hi2op1T7s=m?;9-D%PNriH7>eK*2evUS{2t@f4s?r@K`;F; zj{>K~4&(xcQJCEWNmI#r3+iWLDkCKZg1^}Poe-emJn;>dQ**b(gSjn?kT z#Jtp?Xj3RqeN`AsLWUn5>N*lc&4d-)w!-9=0ne6Ks$p%`-d~J&=^Gc0YFL3KWkg6} z%knx^Y0IDR=@`e`O~YM77~lLS22yXGs18>Wqv+fFYy|9GGEXk(($9${$tb?AlNgPG zXfVLa8x!+K)|7Sy{g%|UGj0&^^F0QEN(0Ayfp_^N`Dl`!t@j2OjdO>{`@VW5U2L-*0 z!wkolhfp<~>wKcAI!l-7@{Dh9)KH5G=uOq{OsLS{T`WS1uG__dC@y-3Bw&9_un3gB zp?2~JbL=0alyCiq!H5;;5M-}B?3c9&1OR$TSODo4&WI!Z*r0lC_VSgJc&~`^vMrnAj|q3mW@0lL-K)(EbYOC%7_e_pXV{@E`|5hZ`(568 zXdoEMvP;QFxgW<$WiFTpr&pwY4aACy8K30Hf?U`a=Y85ICTJ@Xr~NGGvKM4= zWgu7?puj*RueW}u-v>I71{QEtGxgTBaYTAyTtjeh4|R}Z3{jMIP3A+os$Ea-Rskso zpfca4ISfKhZ`m%hf&aUoujPsp_)B9nLG`{51O$F3M#n)zS69#(`{g_&j)&)(tZ3=) z$^YvD?jZ9rdCW`t8=L7mx1I}MerK}%N#o}e{l%^W6x3)%2>Jq`-#XS*jMg(^PO_=a z0rRZN6Zh&uX?&GVb#?)_dvosL?YPLOa#XJ?OJS_euo zYiR|(vOV4t_VHnhuF0H>fh)2zijU`HUz|43Yz05YmF=^Upu67_DxZ1Xb^LFQK+(lO zA|Jw*&z!$&UE)3J0`hejbOyL%2KK)R*@w?tYn<)FA3c!z3%>8_UViz2^10f+kXmyf z_n_Eh8p5I4zlm{tVz^gjf0Ulukb1$AW?-pJUblIZ0+@;(#&t`oFW-I0P#{o&%b*Kw zI%$`n6%DJqrgUe1GBxLPA%26*BW&75emsS6;$p$=DS9;MRiYy>gh|Kb$CR8;{`jK^ z>GD?BZb%??sy6@GQ`*2HO1*uj_^qj*-gBqa95y;Xs7HUfcnKVPwgV{dz~+YjJIZrx zHrx93Od5(77g3aQhv^}i7%3fG5V{ZDC9X@P$x-+xEm*7ad}In3xD6Kc&B{(gn#J2> z(#+Lwd_*5qhOchKlv`XIf#&|M-Q_#QUau1C%#k}Xnf=&9yU{5<*4FG%`#MWSM7r+m zICKH(hfD$mK#ia?`*a7iX#w}C{bMP=i5H|Deo6A%N}}ih0>$4A*>%HeIZI)}{C%-8 z$LVa9b;PA{It?-%N&z^O|3Wn1zy-^#8xkr6)CA2daW><_thS?a=MuXtU9Ikw;->EN z*yes;0Lq#YT_d`k4gssVT1pKOL%V zt!ZHM;YzG!?AwaON@NyrL-MmKD_8$_{N?~UlZN4J{? znv0gW8!mOt&-s@6E-XRHLYv9{2cvnSx*%K3xm@;8OtZ3KvFBd?k0is+FlZs`PI+9s zV=}gtrW%V^9X2AR^{6=1O67B}(P`~Y+2{CQByE1#ZBi0b$rg{M)U#M$6Mc|?iZZ*= zwcTp_GgsYc$Iuln(du9EC;$*EQhZ%t0ILs4+v`{anJNb>fgKCB`vQ}&g+>}B6pM;G zcYo5Ij4gV*mzen*Z<#DZ4H2sJ+;yDxDeXp#9{p>@hFaV4?@!+t?p5zl=?S75#yFQV zbJlja)vK8<6{0?YlF`=VnH}YTognDPsA{C| zx)x+HBVd*9oX7a-$kO8YLSTx+alNOZn1Z-jO#}su`DGUUdQ}z#WBm^Pyp^u%ir>?~ zwJvham#g?`8F};Pa+gb{gqb#5ZXF>;WGh-UZ!6lx8Qk-D$vV`;eBLJmg$F znxCR5NNST9qQwu#{zZJfPJJsp^LW7g$y$rE67)BXxesRuUQ)HL;>a`7)mgq3-wGX< zy<8SBn7xYHLwFHzfiPHb9E(MmMMy>=Qtd^Tvoq{{{U3g>whcK9RN`u!0>OF z-Yok&e@gn&vr>Ne)=doif>h?mDsUM8`{FV1?3DF}8x@+4ML-F|YVZ=;#e9R~29pk( z&|Uw@?F>pwUPd>gW`d1f59{*W#dLG?>`OFAQe>OT2NOXe$Cgm?7tDLL54VPt`=8LP zf9dSEgXYDa6DS(O=XZ4fJ!*GLSz_)v5sUE!00VhHfWa7vI&+V% zv)|SLq(N0Kl^2r|2 z0hnLb<3l2PmI6NT5|O(un+dt-{L=9+qbys{9I04E2oz4n*Y;t)DeNB-$00j@i}@ts ztNe0KleJsM@ku0FztVnDEw_a7^djm_v9eDUQL*LR1l_-iroG}!bVq$3WI+FwCsP+} zi&eBRr(7MgBQb&7nK^j_$MKFtNbq)}0$TU&R?A;cxt8VW6n zZzqYGST3nw>?Iar3+0D?`m%lkT6iDBtzQUkO;)S5;{0(mxw?+&Gd3-g4i(OB(cOK( z^Ns(+PB^`AerT%!L^Y_n-E=d@>)Y#jcZ# z6Zg)T^W4ucve!TkX#g-;e`(Cm8U_tf82>E4r=*DDnhj@*;_h9~NH*G^GOTF0zUgrx zyGVLrb5V^7C^M*UJSX$TGw%#wc1$IZugxPde^-&tk2CGT_j?-#v-ZXF521z=Kj0LG zAfO3#3*n#ypE)uW7tCU5u1fB;C|i9hP#$qBgpR1>_^4RlN}%e|kW7%VC2ZMu7t*1S z?P*xF`OM*EI-0+2kWw{aXLje80j6aS6|yC_7=#az@Y=+mS}@j3yrNl+^ehJ2>4)Pq!wuG+$`UCP;OW>T$;PUjGbi= z-1HS6ft{De&X0l%*euu&RUX@wxX=F4dhnPiKtB|bT}6{(oKeEZ?^7ah4YOv9scD)U z!nrH480HGKRGH|s&Ld5A^N*k@?<>Qzzi9lJ9+c^#IuPVCQR~51?ghPWzaRW?1HFA*8Lu1 zxDNz1sJzTTg4#T6q{6ErNPgyjWAPJ_7xAM4b$w5~|6W!qjiX}zvI0sh&biQaUHher zn$wgeq3bg1-;g>M>2i(?cQ%c;gn5N{mC;P*7s3{*n5Dr6{RiLj#NJ?bDCQt;F0o}6S| z9+;*QGnW+fMr|Uw?g^WP48@}Af*P(vr>W8dj4@bM+hLLw-QNvJp51=PmBTX`Hdegu zY7#mOemABZPNh4W1F(2f_K!X1nvcvy&~39h{+j1@)6RVqjiEYYFwf^X0kD>?374<& z^Qio*!rwV~55wTjyV5pCp)vKq&;ip=E?a4Viyht0;gk8F5F=hn% z52r*BaEFVFY(;CED?NgVlHKa*vt4pe(hex+i04=xX{nkxn@+SlA2$%9nOL<=Ul z+0|$OhoSBKwUa+eT^qMi8W%<6Fmg6)Pm)bZWG9qz1pIbzyM|O9 z3)G>5OPHW9*goSDZs;)wSrzzfy}_ep$>JE$$Zm?^`n}caAB8stnsX^93YDse_+%)t2o0c4x5E1Nzv6uq1e z?pzCdY!Rm7!3qI^Mz5KHU0YLoA%|uxd;N?~{X2V2#z8Kn$Q{d)1eu%e7#LAyUZ|hP zj6RCYXL2FRPw8g)`z;ZF`0NynbG-|b+jVZU}{A{9<^JgLDK+J7TT z*?tywGkI4~wE(&!d2}(7!}5QP>bBxYViH6IP>I~2b8CC6!)_S9!74qO<}Mh_dxeGJ z-LCp@mzX-7BS6As4-517ZL~h(gTzG^oGdwBp?N#m0uctTX*H=b6c61i_~hu{?eq|GDcg~~xF6aOX;6$=fo zC%G&S$}g9g_*iHS*}6Xp! z-Oc!yAte9tyDK^=jc1%o+u!C;VEXjFE@V2H;T6=kTkKaYxjWeCC}t3P7pv?q;~_ce>6XJf7DCd~NH3UZg}wR5_eI8XbN)!_T)FLH7) z9)(UbOH>scL>^%K+yom%An-CU$+rEsvt6Y+QgFCU7t=UO!i=jIaX~`zafAE_n}_zR zisJ>O;><8{)5W9;pOoy!6>`Cu zcJ#rJiZ!&pB!};7<3SBiv(Hf|J4+@qa0N#sIBqLYMjBfTA@kp3)2cKXC+d28=wyQm zfx_7IQ!8z|)@HMr<`R9v_R7I~h(~m`y$9xW2LS<7cqF+!6Z1_KiJRN_Gb>l}Uep+tiBfhO1pK#v&$)4Lq^i`K6WT z$Qm-KT^^)X*?D7^*lJ5wBQ4?sgQE1yY-Y#n)Z`|2zY26j;dWz0MHfuwVDa%87n@1+ z)C5|6p^O3XERF0J58vLif>ko9c*Jl2bzvu&)|s5*OHGu*%~+|8;rc#plk%<94{mLO zPxm`>3LR=+08PySki&_bb6vcLE9FEofF91hCxW82Y(w3E4LFA@!y23M1 zMVSEXeyMX~cyu{9ll^gPs(}b~RZr!kFog1e@(6Bm}r8G zxikl~M}{ED&q-<|q{jLnwz zD|*6evZ^Ws9wU3MPgGT@a*Q0s`ZI&)07n69O{5E5X!*W(NYnjTyIbJ35D4yF+nVX@keo1`aqG{pCn*(*X+j zXSS!g#SgS;vS6Ee9jJV4F;m+b@*%XDRR0ZbK7*nO8IzrEE$?v&@BF||+hw}@U`?*O zdzi`xyx7+Hy2SuRFz+shM6$kT-F>);A`9}s5QwWga)2IX>fam$d!GM$8gkT^|?)Q0_v=-uK25-50e7dU0Y|sEb;+D67C^PD}QJ6USK|NIC$v(*w4pMOEP|DD6!%9&_3frztA$ncMfLk z%4~1CFo+UZrYBv?0-flHA+Ug${?PYd%oSWxsX)ej-)eAJoig;g>PtwWsA}Cf`7NWq zuP?12@-*Uwd&9P@6NjS(RO(G5>*ND?XNrLLv|T(H&zu3A4CKP1cwZlrScA7v^ZqI{ z+svF<&nt$CFmpu<$u0TI**?V++(s1~=*dn8CrgJ~*RWkeaA%aoLT z0&Jv`Ok8JW#hX~rZ=NPrIN?42aY4}1;`5@x7mMSZOyT#dG=n-CZ|#`^IM+-gLF)nw zX+h(<;hgNnzg(8j6bXFT^^R^Rjr2q(D)k?slnX*mB~gpLTd?6BK@S=@=MD_iFSf7g zpUI*?bQUi2Z%J0$j-^y!K&vtyL>1d*kHgo&5;P&IF-Wxu#Q#w-uKGe; z6$>Qn;gh-q6r=(LKz%XGJlDB#HI`9~D?N=Iu?`6EARQH+PN8+-^HcW*f-0gXM@d0g zfED9v+Jqq*D%ZW%*viE~xK}{{(lBjrOvZpI(#n-JBCJs6Oek{zeYVr%Sj z2lbv$DvjIcAx(85tD2v>O{8ehO6`>626H(qQG!ZMXXZhYB)dH^O`OP%IzEjQzpJ2u zem_DPH$JN}<-%!y0iouFpEpuiD0LV1)FMkfOA$<+_05v3-=5D9$C!s0ey*IjgTMPj zH#V|>r5aBwwf-=}lTz!_-Xf6hf2La@-&c~4_oR|)nGmD`g_k{0Y>y(hIq2BG*RrwR z8&25}hMc)C90bhw1yqd_Ljq_Xe`eGwZVLvQsRUF~DN-*5iK)I);P;kIaLO7H1>$vI z6J{RVn}ARFN)KtyEWroyVTNBMVrSJ>^8tNH2Y;<#gTNuK1l!2sHOVNPxu3iua$tFc z_MI-hZETL$Z4tkb^~xv%NJn5PqMQ zMzEu%yFBtQ_w3+P2rM~DS`4V0aT2K0U zyUt&MDvQCQHUe*Y+mG;zs3&H7=t3*|)Y9|Pl8WCjW0OXt$6Po*kHi5o`B91<0OS6R zl1JPgwbJQL0FA5AGtA1>UrZJHP zI*wzCcbg1MKQRxrxW~el2h^Lva4vtH$hJC*Sqi}rtoQy*H0?|x$$`Zvi&?U=kBbud z)7I8cy7Mu}D>8_LyZDqniECf&RLFiodeG8$l*jO-< zfKTb{^CLG!*By!$PLr83$4U+xUZpY{FY2!(YejP!>iy)~6R zfw}*NTcGw4x9iP{9T(`~4B*It?nZj>|H8ElJw)Bv&T=A^s-?M;TfaFNLR0VaqdLv- zSbxLlQJ*!4Qj#Sx$upHR^d>a-3(V4A(Up+cJs^Uue_!ZRpZd7PkDLLrh7qn3lC9^ z(|d31M50w$bB}>dG;u;Z9#!?II%;7sY5z;fzjiM|jakK4JwvZ&V8s06NQYGrsEV5u z{)8CQ|4WDEr!L9E z-N$8Tmh(q>xAAbo#-ml;dAM(jerIZ|dZZyfM zo8YpUcpRAqvzoJK_2I5h8{p`aiKuFcn%ebHH7Sx3IW!eA_}{MM^^CO>C>Ib#0)3%cp@j;a zmOw2*Dvy83gJrel#j#?ip{;O~lMFeKFg6)BN$)xG4iKB{^!8$!FyfG11?n|k>y5=b zs2VojAQQR5gG)crHSiEICdDEEVMSt*e@&XrZZv=1NZ=Jt`OhR_nEG@&FpBATPf3^8 zS6$&GQLfY+)jM@zU_dhjK4dp)R5lON_;|5vW0t^>!$pt$tI_&eISgn|IzAd79#;dO zP+^lOcq?uv8Ed@-1cGs#QHEm!kTC{`TIS6V0>~IoKNMc_G>EQPv+s~(6s38O-BZBs z)&ao3*n3+*Yx?h(?ga&;#dd=~rnE5)QkAE}$|INeCu74Z+?O&a2n3QT(kD@PK520} zE?b*qseo_P8uex@vAh1n5c}I<(ZlH}v=*VI*|{!A_wC5-yya@d*FP}d_m_)0ve?X0mJ5-% z_;Oa@Zcdisj?3A?*Y$Wb29_OBf>>RY?FuUeDF@273?>baPaej&W^+lj|$_kq2X-?oXCS|DiH)Bt$h0HWk}uiC|RY-j-{Ua0UPb_88efhIJ_fK;e)4Jt8ZX++Rf|Ajg_#z}vM# zr&VbVUK98;(J(ET(c=>V!6eEex%q2pF+E;`M9tzu5b2Ur@=)P{Sip~~bPG9q`Vv!- zSqNG>xU>}PLSmZRT3QKmtMKJ{>;DJ+ecdn-MCK5LVXC`&o ztW!ICf~T=Cwk&Znekv-h6`COdrW$;kL_Ar`wfgtKbZbNkg^2M-%Ge)W>Q*lczeD3b zp6k?z(bP@ytLV4yg71J(hq6*umqjUbz0|E479E-{hz3yOMoPJ--oRmB#95~3ry==Kl>Yl^jc%M1m2EnkmNCA47 z0)PDW{zR@&n?ERO2)TS+$}w=;v{x{wf7(iHYEwWmaBcMQ<1~ z$9+(O?@yde^#&MFGx+8zChxN}ib)^u@I0t|#aLUfIiou6auyP%P!GSJ!NZI4CQMZs ziwXaD%LxXB8rth#z&5OXc@t4#2Z}rpjp@1D7oS|Fe#leOLn!&kx1m&NrYr;P~u#f5ym{Wp!X9_bvqpRgkaVG@KM;9 z%3@Q*%@mr{F#UMH3VH-nDZHc9ooR=&hj$C9_}Yo%4YTu6doT_5QSZRYKx^u$gP&8@ zN%+M`z}**eVb>ngi-?aoJg8Ow%oSNRo0;hSwXXfk|MEWrJzE#5iJR-y$s;jAqPr!R z`F?3nrouE15VIxl4Tf%Yg$Oa<9a~kCKmiUfk-`NG~MEv|Rj^7IcFo}FT61JZo_j&u8fnsUc zFx4o@oOSKYD%6$-8t9xZE3dR#fNg1W8HV3EKqt)8$=A#yT&&p3?l^Zg&ke;!G z0J;$4G4edz>uq^*EH%)enD5Bi*bFFWMuIhu3nkjM?g20Sj<+C+9~XW_PNMoB%Mu(- zn{rB~M4=p8;V(|yETHaWxvby(Mfmwa`2zXHtGCE&CJxb6s5Dja}{(8rwAB+$@741D#Q^XaN|Opk%Z4kyInepQwdB(FqB^- z-u0V1-tm^0HP+eYYxsIZS1s=a%O~@3nh%0MVOz@8HY6Ho89ngui!R9%01SqcB(d2n zdo20CfqDO~(1(Fq{l@M?!ID?H1c{eVmf>6_;k|Wt*Qhl-su0nVJkQh~3ym_R(LLLz zW-OoZzcOnIb|q#SVw&0%v`U*+fU>f&vn}w5LD*sIiw%3!sI*3y!45s)$C-TrJsEs# z9b`8ws-0Z7!>PRRQfR*BD%aseP=l&=1>FJeXRI;zlI91ul)2?z&4@q6AjB`W|J(R(9_Yg>fc5mZ!CtoULfPQFlow6*=)8p zt)foI9wvhE9z}@0cWZEe{sFQ8qKq;GZi5l0j)PB3)7rTJqBrS?(jffbL~d1$6Cr;Ug4H`Pv2cu|j0${95q z2n>M%kRUPy4|_Mi3caW=!G(OK^>&AdZBx`76ez%!#;Cz?c2^+*5!00000000000000000fMQB=`6X z>+z@CUULm>%RL5WP$s-E)Q^@NHZ;Onwq!gCKllh^WY;{8=&X4mLF=NqO{uIV{&DKZ zqCN__7J;tZaEv^{m9k0vV#Xqg8C&|B{$ax0U(QK<_R4@wCGU=HIc;7&^jZ-Ft2y?I zGk2*J8SG}>M4j&YR!7?Z@PYzkA6Sn*{%c=D9$Q-0#b58+oLh6g-=jme#*nuWu42}~ zvKEhU)53VWh}<{!CU5%`dZn3Amw-t{+ecSjCsg4jhyY{Bmtew{{nG#vb9*G$$=4Aj zC!}d>EVyT1p4zdS6uz&c744~ZX(osAYwjinMURDN3vl52(y@NmuL?kTO%u9eV;9f` ze_Q@VT82%Sx>J@|Y+Y5}8tIOd5lK*n-nn?6@U_kJB%d zcX)6>zpd<);M@J2#Li2re3caocS`n4dK;l{yu}uUB;Qf#8KurG&Iy6yyZsDH0IJh# z>A(MOno(iGt?Al-eZEFKn2o-s%PqHJdh!wAccT(J*ZmtZ&pW)?R=0l&B8SCA8yg*z(7`S!vNGk%*aX<|*Q;!?_hE43Z-a&WJaIHB zIh{F+5(N%3uP4(Al+w<&(EH{~@2fbLBjQvk(?agNpt}QVda?v*Pq__3eyWLWq3{+& zK<_Wjyi0c0S`GQM7Ca8XP17Ui@I7VivmKm1@oRZ<({+A^KxI9WqW=-{)h<@N$>C(%m)CjO-i>h z$4>@*&KnSLT(4Px^_pqZM68yIaB`ihg?l0F!37iV(2D~3Crj`H%nxH)$S~E`sYd%( zI;#iI?yz2o7hW3`lW`h}mL$Ez8tyt@Iolihz3)O&03y({>y(}~*BX1`>-Snf9nR6^ z=J%!2Mn)->-sJp#twhob(05V&gvGUoyNlKTkKe(uV)bp_%6eD-35Jchjx z7PYH&1MG`kGO1N%k3Z3}GW(+4wrxs`*t+qzNIq+3igayoeSLd!Js)l%zdW)QF~myjZJq)L(JQPD9z&wQRKT9X z@n*<}{8qcL5E;wNkwe%j7$HMXy|qgOfhVIgj9&Q)X5neIg|Skgbyn(^kY6MVD>zT8 znj24vA*wNW*Wt>$eMHTjJM`nfWZ%i=F2zSAe0b{Osgbr6PBMEFHzxjSef5zDN_6PhervW=G z!0~O!4!3uJLMjv0jgfsqFKB{jG0n^|weEKRy^r1csChL4i6+pCZo7nK73^%ZNk*k? zC6&CchRa=mp?*fu?IUp6T+ZXytA}@S$FSU_c`D%9|`K5hR6^+gt z@R@?M!R2DDC0J0~ZUN)&E@{lHym7QlYc)-X<*5vI0G# z1R+&>mDYX<6RSFzof|h#|3Ih$3>uuxP3qf;69kKXW3?I$$|%|e-0@a)Vza}$y^rhZ zW^IXHSG4`%{{nlF{O76K@{?Ad-D)Y;m|m-Ugsi%^&Aa2A*r}e{%C2LD5aJ0*M6-B{ zy&I|dRn{nWAXvKRq!%u(pg5|I(_%~icr)IM?|!V%OB)y*GVru%ToI47odSvl$s+46 zSx-z~i-eT+T|Y_>cCpQyGQofkI&`tDm~l8ns4(C;UW-m=$IHp+M@6XM?91xu#s2a@ zG&ZwIwQ;W&27wd<;}g2DuD3goW}=i8;H=XPm1k1JHbRYN+}&nI1a_)&{to8tM?{s= zVL=+_mqw{AMrJbTx`eLD3F+pzP^y4bB(9KuPdbRs1U5wG9w8u34utWkJU52VYPB__@K)niI0NM6=k+t{Chb@{!s*}72@qXuigSkms?n`VG>WtuKwyy37GqeOlD?lj_EMp z%5~4ben_&DREG62o&S35`-Cv&z`?6<$mljDCH~ttbaOxO-Z}$h4nRw7Abk&<1cnl{`!_-8Z=k<6N-~YkP!CHGJ@s1I2hlLi__MH+ESmY(Y;nCyZxJ zyGIv4a)*D|*mRn)`H30B+J@h8F6ORGLC#B(yS0e8!p3d1 z5e^eZMhKy*W;+Zb*q5y_2wEPe@FF6=r(M7WwqQymO7?&&xTh}6h76Z0GgptbP9L)- z{$VaPTtjcn?VQ9&cZ15bl|MYG8`1z?cpuvzp6ddXVkFf!viPK_3W8tnQAqEJ3NT`P zguZP?B9Mu*F2!Y^$?e}vpiKsocdX#D%U zo@u!X6*q}wf6zSc9>A;m+)F8cnn%}IIMrhYgKkS7gG{kCFT{89s=DOaU3td+J7}Cj z4$|EsT=TeyYYwPYx~%oEcHr|!zbw$W(&QEtQP-5l7MAc&hTl}Fon<8f+;b~H+ACr{3tPl8 z7(vMXItP`SkQlZdC#2T7iFKYk2*5@?D$2lm4@cphK)A6GsuXsE3^2B3;MsismcUm4 zu`Nz?xF5jA%Iy|hD7k|Ic&WZw!ORW<#=bR`H0bxc<7s6Em~$ zwAe<-lXw~jP{mZcnN_BP4*JC_z;OtI){D3P^k6A8S_#{4ZPMz4lK2no%;eMGz?R$7 z1fNytAg3ZIKE#gNz~K`D5GL&QOet1+UP}w=@BM^U&NSgeQ3j%6x(}w4LTYq%db>(l zaz2<_k@s3i6$8U^)7s0ON!R)MvPzTD!HK#$wb`Ct{6^nxl!CHxNyq5ad*3Oa2|veTOJ)DoZlaGkaag8ZPJhHo&z zo=w88=;PV<8nBs<;WRAWTpdY7%!uy6VhM~|_@cds?Vlv@>~hSwufy|k)j#2r{}uL>fvY{ILw;tS?iW7ko<9x-7sJH} zV{ZwG?;aFn(g7KgzK)OCE&qz(aus4MA%#SK)5%uh+NBX3pi?pX%9vuy80)GJ)UnqU z;vY9D^wmK>4evvi(_GqH-{z)g>-`L>Uvt{frn z>Nfdi-?Vb|WndLz3wz_P@YIdi-n!G@jSSEfXx=IQl(?r=sOl6ymFMwI?5aGL5k1KR zeqvpFuvxhW(UwYV?p&`31xn)7;oHs3ODq|d#^ZC3@{Un$vJF2P$0t+89BS)SGS%wn zdy+ZzlcbqIGe(;sv`C6*k|c-`E@Wu7+z$i zzG-+Iw8&mW3}FhmByAMYb@anKe;P}GE||xi#JOaP3;p8WO#%<} zc0;Fy(tvQcS?^ZHo^Kf2?HT{1ClSzdg>M8YZeaSeX%}!*kmR=eIrcRYa{#~P;Jj0B zTec2c70uLI?F^gA`LGfk5lRaSJ~|0dCyC`ry=kSBPDmboI3t>4O4s$O@35t#~zv0&xA+oO#Tt63T|@ z8m7`5*;EPZco|W|{s5MsK-4z{b5nT&L6_Mqfj1E9eItF3ngs6KcovXr8S3WWGloVls9;*<(WeybRJ>7I`PO+Db^r4K%-r3y2OuoPW`BT*0?rihuF9 zz+k!+3~DP|W(h$Wom9QR%yA69&VuGNnos7p)6!MWU(A$D8Pr;?fd@!%hIy@6MZlJ zIX&?*t?EQpc(soU(R>~EFpuEGD2#QZi+3-MfvRjU(xIHs5bN}dN3LAG9VFmxmCRd6 z6}Pvgd#QfPirV#efuW#WZM(CQE|mQZziRax0o2Hsb>d9}?|NhWJg2vs7BE`o?!hr2 z2U4NqptfCJ@$oPU&F}5?YxXU&5Q zmIaumT3v3 zi1uRVy8g)ye3)z#`YcxIYaj0nbG{ki(WC%GVR&A?84zJ0C2 zX2`U^iM40hN0h3tt+!TUHu)WLHec4AjykFtQi#ic*YvyOP0=~Bi|*krhJ&t^jfc6P zkwdxNgo$fQl+_02$kRoP>BM&4OytZB2n}f;zuTXx=N@ z$RS1kljmt%jP~KDD$9rXRbGEtVuaQCSPLR(JTt&6tFLXj`MQDgBeRI8FkZ?z351N{ zpqxmd!o8re$n9vK)`Lciq&tpTFxy(0!<= zgD<#K>fU^Fr7u5_@RYjE|LRucVR_gjRmh1=e-J@KwS=MZwh0ofY-Lx?Z)$PD=R^H@RpNfE7= zT1}1aDy-xZrZVc{meuAY)m~paa#sLRuLUw>aBkqyZK8FjyZN>M%EIe!%AXetuE!W$ zTkV9g@ru0mLSZA_DDnS)&*QY#@BC)pZ$gq|5=~=O`WXUF!?w_i(#$GZrbpdXC!VAf zRzgR_tPhiGPLF63jto}$L0LXIQu9~?MQ4l$aBN7*H%A!^sr@Koe>nPkZWWl1k3At1 zeaTPo%nfUbm>@XaNNl{oMxu)G>8%<+yxTG@+nDaf^k zRuQ`yPc3O@K_L!+Vkp{dJ}fQKV#L9Je?D0jOail#I9zqbl9K?fTm2+3LACQaq8@zk z#Q*;!>RI&e2&|qj$LBdH%7mG$aT}lK_5B43Py??!Yus{4&7GZ0#J|Z@iQTx*AZ6Jc zs&Zhsb-H^2%|jJEap8ohKw+7P7uUB}8KbXIq^nvdPyoc|{Pwuyz^wiPa7UWEVo0_z!yCo0ug?0e*ESpMIp#CDm%4o5; zYDNx!a8ANKk}oMH^73&WF%wI`NchLv_v|_Dixlpz@IP}|rOnZ#&Gl_D$01x>L5%lW zck~bb>|zl8j?F#jo%}!wqFI*Hl-Wmj%#z1r`U<=u+hd#QxL_x%)h7?jJ*M%V3E|9iOqA zj8j45X@Rpey#DpiZMp?)E*}*u^|fRNI|8<%K^rfWzB)cj25#SYt<4U``UrqH1&6O>1q)HIYKx zwaFesW{Im~&~S|k$}r+0~|JTPMIU-5g{3)Mta`&}qcW2b=}%d35QLOESFvAo=y zPig?f&w&W!IsmOd?e(l~LvBR&%`kGeTP!RT1`><|!Pg0F-$y-C^BKLk(JX`1^L5Z` zE(w{6E(l))7MGFk(Hi| zn+v#UF0lwIAf=+1|K#F8yk~ zXGy0jhzEP-Zl3m<5cL#+#h!NbemYf>OXw#1eRy=0b5j-4x~`-o3@@2-5=Nr}0SXJf z#!JiA>z%+G398sU?senJfm4sLO+21qV>I3=skS4A=!IxSKMx?nr%aQgb1)xy{Aj0W zT)5JRuGUf^L5AOJuuffGi}u7HC2oaPdpsLDP2`DK&*ll@f|aelv$77MzEDPxv8pQi zd58`T!O%MsPswl=&TRE4%Us$L5S49AE8LPVWO}&0&AIih7LU|(vI2eaq5(7%y9o4S zXO6Vfx7PME37&4ee)beC!3da)#?m0irMHWBEh3q~Ou^5}FiCTQaM=ZU23Kcl&KD^$ zeHW--#-kX6jKrgXeR~9tp+Fvdn6etROMI0M<5G_3C~=7%drc+QbRItgdXRnPTeI#K zRFQFi4yr`BS0?tF#eN~JPqDaM^F7ud-Ggs#;)W2TNhC$@HOP6L$OC3jSCH&(MmXNf z@mjQHq_9x(dLHi9s zzC*5q!fVExIUk0xCx3(YlTLP}7Z96|gc#ng=r0{Ho$T|%eXylzp(xZx<+-Pbr&VEW zTy5BR6?LNOfFN;7^#f~4>%(k%{kY`2aYwcA$J!Ya_-=<^zDi01e>+s0Pe_Hz7+x;i zWRTb^5`J^z^jhL^yKDAF*j zqmmvf>pWe39+Mbi89nrW9oO`|q1*J=BhAHl`7nd=D`#d@ zU++Pou{+e#H!WATInTHCDfEQRQwuUVv#o02rG%?gGes?Hqe~Voaxi&fMbdx zDVxXljgBLMf?~ZF(E29EoK`*5tSW}{p}0LZtPTNOmA#xx`7Xy??}uO9?$=N;I&u+5 z_9;ho?;!rd#Nbku*hrd;=dO2rn-#gvTeB~vG3okzTk#iOCl$H3|8FAEuc45CP)CV3$5^&`TbbYu4ijdwpu$N%#&ZhNudz~jbnO{1omzwUY5TV3t&^7 z4ITwnOS^Z0AR|+LRuv-H(+X;SD}12~!elY5L{jXxl+|2!1K~<|1B6K7Vhjzj#EhfJ zT+4v%Y_$k>boLU#B=i=*s&RO*i5n4t&XW;{Bul=OGhRELr9b^c9kB*8T zFgNKjMqcNUDay&!tUvR@8hNx3DWR13yR$v3hTBIHs?7)Gb)UEFQaTWMn@pJIs_n>Z zz+nRBZZ2sfh(3PcWGGpKpZ2xQG`$}K-R!m^eAm4%9_8q=u0Lu9cb`Lrmdv!NxR763r*kyln8@-sL&x^JXyO5HuZ*NLucQ3M*My2&IBFcWJjgXWw? zQ`aVk%Qb<828+BsEvpm*TSmC|&0Dd%bnHw?{@vHa@=i$03I&Q;U41amUEL2rZXiHR z49ppx&#|`0v^6j?eWM1PP`gNyCl^jO2L>%)4DvMnj0MEx6!)UH=5No6%l`y&X?pV~P|I2} zXTV=j#V+|aVXvHFIomt2#LS&`3bt{#FrD&mRhs6emY}1-f+Rbal;*NHh_M(A@+#Ko z2d3W?J)@{VUE@z)*Cg1@0^wi@Oq76uqmg5&1)D}1L)p*Cb(-D~Z5hD=udz@Pw3I89 z?AYFNkCA7nE=`zB;ZALPGrg8rV7I63V|y;3hY+Uhx#)V zB@e;pQu{iWG56x#kJ9x>UAqa;wwv(1w|-O(VIrw!nXs-okkv9UE#MlYm(eF9%W zB^Oil@!D~sG(SK`6bW_mv})JsHs>+luf<4hu*t5i zwKRRVb+O&P62~CmQ3G3n-1wlVF49*NUx$$ffQ1jespk!O=9W(n9(oXIFUDX;%mdy~ zAH&pOLzYzzbf#gU#@! z5tHgn-!-yiJjE2Hc#m!EmWO_O{+GuREZdh?GijwJF53 zZUI4)eR3afYNS>;!O9J*vV>4-IR&8yD|F#VA$pr1^^g0%5!;~K6FuRROb6M#U$oX+ z22b|?-{ULtbrp#xz;Ix|4MALRCDllXM%2a);P5b)EiNaJGZj6qsCUT~-2oap&{dfK)P9qCh#^lPz{UEfmfnd4D#45E?&Zhhc9Nq zTyAsRElv6o0xG)cX||vh*dy8Jtb3mM48Jhs`oqEJysyG)798Z|vTdl!AHR@=K@ z^d5lq10pLKL->eQU(ODCX8hoa^#uF>GU4qOsc193@-K@B3Ly5F(T%IG!t-=QFDMZp z_q{p*JfvTa_IO}+pr1?t?ytx00)9uXUMNG79%xqsuG9J6)6N`vSmhllZ=%CwHZqst zC(Vq8e0F6fe^tJ#-{rL{fIul+-&qC3mTE8+;LyBgAb6jQQLP{XU|6GUwG6V;%lCzE zH`tf-seL4TzOE#floxg63QGef8g?swJl~wSz7O1h@-*epH4Jw#a<$hxY`&|)hcokx z(&FJ?F;qrmQ&&gJ*jCWO!1YO7Z*;^E83Cec^5*z~Z$E<(oG`X7;5&S!yJ9F666ufX zli;}#FDM%4md|~-MT#mINgVRR&496j1!&}{ykAJ;T>JAN-v>2yJXlHUT}m^1Kve+D2ZePli!2m zVrz0IawA`3zJ$H%5GVMtHHwvof`iNb+KMU;veVoT?ZEH?0(zUb2i$`9YKF8Pr&xH_ zlh5I7-(|MboKq!M=>;e!*VM>CjG~FiD*FRwrNS=YHIUf!&7PnT_kuUpwk0JWKNx6M z4R7lq%=6|!l}i_tSjxW=Xf&Tw-MOou)@?ka131u!tF(_fOhRl2H24~t_y#ZF#2W3{ zJ6Rz`4X&@Pgu$=vi3cu0p8^FXo&=2{w$Li9~5<`5zxJ9~Q~j1uUQwIahq zEiv}ik}G>DU)H#gUld517l4yKF0}U0IioJuUT3+XDtCNzJ?vBsLW+0p8iiL5nEL#j zNrI-6LkM=7q@?(l$Y*3S&4(NPSE9+><_ zX*sktUb0l{V-~yUE)s0jWXQy!ylc>8e=MIy1!QJa%C$H{;2Oi;lu!+&1T4Fqj9Mu- z8L@eMccMK0@B@03F29czEIv^&^W!q(+*Z`ka=Kx)z>qG8DsTf~x!@<%IRL6G6%UmZ ziD$qVMCUvhsyvjA4%5)8nV?CVHc4YB^M)ObVWDlweuGK;l53PUiHR2ofIj-pg5gds zZuwMLJODi9*9=;;^a-eDeyfB*d7vOF@?o5pH?Vh;FTIq0*;&IY&m0Lw6gYt`s){GHTnaRt&(>t%fAw3J_5 zs8p^YW60+#Myj{B0MsQCuVoDhbqsefXX!eCUKgJok*p5==i$8K-OqRJc@x8kM%EoU zbKk)+%lT2FRjjA)*bWX;Bviy&moAJd>L&e0`@wL*JX*vVd@IW5;{>|Jn$0agSy{9C34j48u@U`~MNFLT;fDl3P zifi$%f?Nlvc9v`^a)jA#S@pL@8D!o6$B7cfHCC!x!smoHShvvCLz57{T}b{HCJ3J8 zx3$Za)`GM$F7m4~9aXiE_0I^8SI6-82*se}W%~og>5cA;Oeg;Ipfjk?iLAi_M6DqJb1&f?YYSP~R z6MJ_;#jMMaU|IZs1AxGyvC!gQ#j}cfy0!xfZQGhBP!@FNubU!X#ESBd&PQ)2g8aI* zvN@wT!~yzcSuZNMJLCTq5SaUCyD!giYXk7;Fqe8r4U4MD;4ACuMFFe1>QUGLi{MA) zq;ha952;{H3LJe}vW9?nfE|d}_}{AMZ^0*`s?r0;VA?jd?e;;(A3ez+G_}+4Txk?x z0VFX$2g!s34rX+;A1Z%eO|P#aGV$4`hOZ2Hag7n+BggY0|d$yS`rux`jZKJ$XBL@IT#YM~M2@S9Hg6 z(qaRp!1sZ~3<6gn^k?0Rda|jqPWPOGBP;Y~VP53YsX~vNr%AvplO9%eDnjX^cLdUY*c%iAcGyu)LOyaQNCW|VZPCIZQ`7Wf*L5A9~S>Psg z=cZBn`l&4lev~;-&~MKDivdUGBL(&Y*5+}HNvS|YZ4?ERgvhVv{5se*YiRn#DaY#( zMGsHhW6t|4-2plT#ryT;@`_pJ_Lq8Er)r^wLa>_}m_ zdx&3v!N;za_GVMVSuUFFB2_Iy_yf;wh0&2YwLh_v#I3z^ z6$XaZmO4{loRmh;2k^q2Sf)V!o zi^6Q03rXD~M|RdfBPMmNg;64yqh4fR1k-2Mk^fs1@Q%wFs9JY$xn_e5DFI!FBSUg5 z@RwGxu_gLSm-BxCzWE|CJK~mdQd%HKC2U;TZ+z)}$4Lq!2h!t@CUq0H{`IG1GTAyk zgt59TXL^z2lbe;rOZocNsh$D}J7jca;wbyul$CJ-YSOCW46kWI$mlD&QMIc4)vQ5P zai~F%X;S^TU3!KJ@=!+`3hlDUVOrAyFp z(Z|5l{G~*=(kIZ`ewi1than{xG^fPkh*{b@N#fW5>5{1GqV2`|4yr%IGP4$a0Az3{ z-@c(O15wclH=CVQcB*L7owi!#S4Uosg?c0N=-3>VjyZ(`wYYT^5LB^>?9fp73o(rO zrjESW)C1_g-Q~s56PjEuS2%V1j-EtOgb?n-Dp+yq1;^Dq?kV-3XxP5Z z)$T%JnYjgjTE6P?xR~}V|Rj=vO0os HNB{r;!!FT3 literal 0 HcmV?d00001 diff --git a/README.md b/README.md index 2ad9318..9b544ae 100644 --- a/README.md +++ b/README.md @@ -30,3 +30,11 @@ Then calculate the `keccak256` hash of the UTF-8 encoded bytes of the normalized This hash may then be used in another tool to filter a smart contract's logs, e.g. [in Etherscan](https://etherscan.io/address/0xa0b86991c6218b36c1d19d4a2e9eb0ce3606eb48#events): ![The "Events" page of a token smart contract on Etherscan, filtered to only the events matching the previously calculated Keccak-256 hash.](./.github/etherscan.webp) + +## Features + +**Intelligently parse entire smart contracts** + +There's no need to manually extract the event signatures from the smart contract code. The tool will automatically ignore lines that don't contain event signatures. + +![Demonstration of the event-hashes web UI parsing an entire Solidity smart contract and ignoring lines of code that don't contain events.](./.github/parse-smart-contract.webp) -- 2.47.3