From 17cb5117f4d569945efb83c43cc0b1dd467d3126 Mon Sep 17 00:00:00 2001 From: Travis Person Date: Thu, 18 Nov 2021 21:55:33 +0000 Subject: [PATCH] add additional methods to lotus gateway --- api/api_gateway.go | 3 +++ api/proxy_gen.go | 39 +++++++++++++++++++++++++++++++++++ build/openrpc/full.json.gz | Bin 25493 -> 25494 bytes build/openrpc/miner.json.gz | Bin 10466 -> 10466 bytes build/openrpc/worker.json.gz | Bin 2713 -> 2712 bytes gateway/node.go | 15 ++++++++++++++ 6 files changed, 57 insertions(+) diff --git a/api/api_gateway.go b/api/api_gateway.go index 862c6ddb599..fbe2e0cd66e 100644 --- a/api/api_gateway.go +++ b/api/api_gateway.go @@ -31,6 +31,8 @@ import ( type Gateway interface { ChainHasObj(context.Context, cid.Cid) (bool, error) ChainHead(ctx context.Context) (*types.TipSet, error) + ChainGetParentMessages(context.Context, cid.Cid) ([]Message, error) + ChainGetParentReceipts(context.Context, cid.Cid) ([]*types.MessageReceipt, error) ChainGetBlockMessages(context.Context, cid.Cid) (*BlockMessages, error) ChainGetMessage(ctx context.Context, mc cid.Cid) (*types.Message, error) ChainGetPath(ctx context.Context, from, to types.TipSetKey) ([]*HeadChange, error) @@ -39,6 +41,7 @@ type Gateway interface { ChainGetTipSetAfterHeight(ctx context.Context, h abi.ChainEpoch, tsk types.TipSetKey) (*types.TipSet, error) ChainNotify(context.Context) (<-chan []*HeadChange, error) ChainReadObj(context.Context, cid.Cid) ([]byte, error) + ChainGetGenesis(context.Context) (*types.TipSet, error) GasEstimateMessageGas(ctx context.Context, msg *types.Message, spec *MessageSendSpec, tsk types.TipSetKey) (*types.Message, error) MpoolPush(ctx context.Context, sm *types.SignedMessage) (cid.Cid, error) MsigGetAvailableBalance(ctx context.Context, addr address.Address, tsk types.TipSetKey) (types.BigInt, error) diff --git a/api/proxy_gen.go b/api/proxy_gen.go index 02a87ff766b..78ae607bf48 100644 --- a/api/proxy_gen.go +++ b/api/proxy_gen.go @@ -480,8 +480,14 @@ type GatewayStruct struct { Internal struct { ChainGetBlockMessages func(p0 context.Context, p1 cid.Cid) (*BlockMessages, error) `` + ChainGetGenesis func(p0 context.Context) (*types.TipSet, error) `` + ChainGetMessage func(p0 context.Context, p1 cid.Cid) (*types.Message, error) `` + ChainGetParentMessages func(p0 context.Context, p1 cid.Cid) ([]Message, error) `` + + ChainGetParentReceipts func(p0 context.Context, p1 cid.Cid) ([]*types.MessageReceipt, error) `` + ChainGetPath func(p0 context.Context, p1 types.TipSetKey, p2 types.TipSetKey) ([]*HeadChange, error) `` ChainGetTipSet func(p0 context.Context, p1 types.TipSetKey) (*types.TipSet, error) `` @@ -3045,6 +3051,17 @@ func (s *GatewayStub) ChainGetBlockMessages(p0 context.Context, p1 cid.Cid) (*Bl return nil, ErrNotSupported } +func (s *GatewayStruct) ChainGetGenesis(p0 context.Context) (*types.TipSet, error) { + if s.Internal.ChainGetGenesis == nil { + return nil, ErrNotSupported + } + return s.Internal.ChainGetGenesis(p0) +} + +func (s *GatewayStub) ChainGetGenesis(p0 context.Context) (*types.TipSet, error) { + return nil, ErrNotSupported +} + func (s *GatewayStruct) ChainGetMessage(p0 context.Context, p1 cid.Cid) (*types.Message, error) { if s.Internal.ChainGetMessage == nil { return nil, ErrNotSupported @@ -3056,6 +3073,28 @@ func (s *GatewayStub) ChainGetMessage(p0 context.Context, p1 cid.Cid) (*types.Me return nil, ErrNotSupported } +func (s *GatewayStruct) ChainGetParentMessages(p0 context.Context, p1 cid.Cid) ([]Message, error) { + if s.Internal.ChainGetParentMessages == nil { + return *new([]Message), ErrNotSupported + } + return s.Internal.ChainGetParentMessages(p0, p1) +} + +func (s *GatewayStub) ChainGetParentMessages(p0 context.Context, p1 cid.Cid) ([]Message, error) { + return *new([]Message), ErrNotSupported +} + +func (s *GatewayStruct) ChainGetParentReceipts(p0 context.Context, p1 cid.Cid) ([]*types.MessageReceipt, error) { + if s.Internal.ChainGetParentReceipts == nil { + return *new([]*types.MessageReceipt), ErrNotSupported + } + return s.Internal.ChainGetParentReceipts(p0, p1) +} + +func (s *GatewayStub) ChainGetParentReceipts(p0 context.Context, p1 cid.Cid) ([]*types.MessageReceipt, error) { + return *new([]*types.MessageReceipt), ErrNotSupported +} + func (s *GatewayStruct) ChainGetPath(p0 context.Context, p1 types.TipSetKey, p2 types.TipSetKey) ([]*HeadChange, error) { if s.Internal.ChainGetPath == nil { return *new([]*HeadChange), ErrNotSupported diff --git a/build/openrpc/full.json.gz b/build/openrpc/full.json.gz index 901cb24bb747d8ddf711a9e6e5c9f77f601b3ef1..14fbc4354e44049bc00722763001c21120a4baac 100644 GIT binary patch delta 21504 zcma&NQ*fqF^sXJ-wr$(CZ9AFR$s60YG4aIq#I|kQ`sVlF-#**BYS(knebfhC)%C1( zUH3{I0ZtnMPQU{`O2iihY}I@j^oEZ`JR|hHa2*qz<3CPQBVxC8aY2M*T6X*2Ab`WE zlGt9twYVF0oYuY+?_`q*6f#`k`+jYcI?`0;nILkbCD)LG;md53e#hM!ZC||T{mlXT z&|`l*$p^%p!DEO11)jn3bi(o8raUjAB?v(PAT%uHzispth7|h%dfckNuRsBieZ<>5 zc|vmAZ;P3HkTV9i?eQ7cdKy=tXkcuf2t7LqxN(vJ_PNM$ARyg%vAc#pAYeX~yYPre zh@d2SkNurQuVQcNryp#)qv+uN5kCv&G}*q#zhHUtcM=FW4`&2_E}wkpaukf2Ztx$S zyQ^BTc2U8??$Lz+_d^j7_j_17#2^yhLBJ@Y+aQ+3xFp+^4XC3)g?N+5kfI?_x1i@? z2+ki3(2(8)8OAf9qVYVfL}YkAM792+VWWkre}TG!SA#_nw-O9`PX>V$meQd??^44b z(gn=5{AIs*8eu+j2OwwsD<{Pw2&cj1jlJQM9C^fq3o{h~_so58LP(gxFOKIvQVD+= zyBoV7YIaaB3OsJvZH_nM{TYP-;aoxvHvy2uDDWS^&P14s60@eKBb>?+p#+#Ar-f*m zYJp|*B(iSOMW(xUs%2+!^x-Ke9+Hw7=h_U(U8&aL(nezFRFzE^s^gD6froGS}G zkd+9*@uJ@WNr(P3iu~`j*>Bs~B$yL|VHtf!-*H@vLuPaW_-0lB#Y+QrasFY@yJJZ~ zlJY~`)1vp6c*3#I`8~tYy|4$}dpTdeW;cc3q~Qs<8!s7(1H@3XDb8Sgat=OU23Vfm z!P_A&`S_pj7g`u=&ZmznRxVwSpfsoNOQ<=QD}|DP@LmPt1FBc__g789f|rLMT+#;i zvY(x|>1QL|n2OQCLvMZ*-cTo;0@i+tY?g*34w<$!ms>lSuex(x-@%~ln1bM*pWmj2 zO0r8%9c$e8t966H{E#DfS(MU)vL%$Yz4)}!b@(HHFdg61Es zzN?{t87=KeGs3~b1>V&){D`S@Q3i_(l1BPggNPr-oe`VHQ~a{lh2g6|-MLx#?tH@2 z_6=(5_Vs$Cr9N^FrQ^9NwuQd5?3;Arl{W6Oc|e5VCN4}s(4G)$Ib6vBC^!u#MnMH5 zlzqtTK;$xQ(H#Efc=wkOD59~a;DhaSxG0za@NK+g<~|dAMdUqaR0sO*J%P|XO_G+Q z!IX^nqs9~d`{pm3Rtx)lB1ET0uUE}Zb$rb_kv;_X*0}mkEBlcv*M`akHT8oHy^-2a z**;awK%iKqfQaO3sZfXb83i8E9B&&8QF-qCkYH9!8y?wVatE_C1DA(PN( zfwIDpdeZHl$3mCr%{I(>pFB`0J)nL`WgCz+Gur5o-WUH=$6sta_}`%TV34fG3eP8? zT&pL8z@6f%KaAc#t%TEOi$Atp_=Rr(t3R9r!HzwIVOGCh925s;tg37ZRtaPTxu^dK z{@#PTK~C@L!8eVtVLXJbm!XpZ2+fN3i^yTKZ%0bxP!expk(4Rx^`yRgltn;0{6s**ctdv2Jx^a7)veshH!y0BHrsjZ$MU z@uX#Gg=`3j!U|V4%rran?ieryES#6KAq_!4mXwOK6_#B=vA9Mhe44>ualaY!rBF-7 zwg!?@E$hKfeE1-`u$d!D`?-i}MEQOJK>+7W?3JYTn`V52*xCrW4z%f@9!Ua#3$DHntQTDbv>4>0+5>H~nr+nZ|B5 zDe$ov$Gyl^4!wSwK|2fcwvv-AiB~9wobNgZsjjZ0K2lTL=pg1iL_InM%83;V1Omn) z8glhzY?zH&M{>Mm{rdp~cre7ey`{eo@rP~aqiQF1ia$TZ0Oow;9~;)||L`{k@{R$? zX9)`@NP-+5ItDH`0=b!mce<0(+3{paQx+<>!E%fO68$R<9Kh!#M&&e%@ya4BmdFv< z6AyK&LVapkK>pS|IiBtoiq zEkyUlkFG2iC&@;sVO)|oH!U_K_5w+Q1(+?fV&4&ZeI3ex$|V-R{dXY;(AEvtj-IVb z_bT^B_0l)-!o(4yTW{~I?Ts&Q`5S(ch`nc?yjsKS(y|$y+Ij#vTiOszu0xHgIz!BjuAhq|Qow|zCxQ;&?H?_902qzcEXycMbzc=fkiyNJx4aK+g*xb9G<$bI<+2q? zRi>e2j%*!wGJN?&5HB<&Pw4uX8K#r_ac<#I0q@M%%wX>!gB^seuD$ot5^4`-Yon&e zLzCm^W)`qnwzl1=6X{q+$PUp{sLRRMwp?7KT6Z>A#Q zfkoN2_NauUljB|Qpd^ka-28Cu5_wpOF(C3&@^VIM;qhpBm@sRN60scBFwMOtk;~zy zRLNYjeXLH6O1nR5)LR_nEM=9OHssTtK9fTuOdRk((+P!sFDec(=H0CTPR)$V6>#{3 z>R`n*Bw}9^E6jhDW9y>E`#xyU^&J?BDtUn7Ik?okfowhT2-z@^l>r&kD;WlAkcYG! zVF54NtzqGfj|0ba_{F>k`w4pPDQ z0oym~=M8)!K~sA*WQjwIaQ)ilmY0H|-2Zsw-V>PAjs1lzkq%<2QMy07oiNER zDN>9Zadh-i0UI2Wlx_l(gg|slBpFEKEn1WvlvrQN%khd8G_TWV{q}0Qckl~SPeilP zhwUaLQgZ4O4uRmQ8{`>37e@ni8(+1_W;oXY2_?X2*Lb3ezOJR~UHR^OEBOJ=7tra3 zsmp-usyiXAzxH>~lItW|(b&zWx%^L2;qgcvbSbQvg;-FBLzLf4>fUzdnxASrwSyFi zWT|UJx8E)t)O}`ZEiSG85(qsv++sYu-ZN}E|Hgc4E!>%U?!+tl{uOy`t)1_!M!vI1 z>$3DfWJm)z9M!q27${_{$V@h97=SC<{Ex`F2+FU(olN&Lmx35hOT`ucu(F@UB$3PO zm3Cx9r%_!{7=16`f`qVHFg;&_Z}M|`G0cuT9M?i!8w5s_4tTgcWPB$EW&~~vJYKp~ zK|4GlKoTf^@9dsoFO|y)qv+@?<2=MEbCwXY7fq?!`)a*r6X8f@NZ(NL8~`4hL_oBI zEMK|6Jy4t?J5bK1rtNv68rx#guAHfT%muak1?H#NG(N|aBxSpMD~yxKjUV;IYH2MQ z7N!29WBN?Hzm!on2d+$)>4iX5G4A#?hAu7WjKN0CxMS-0o{2LKJb_a*NwnOb>iJFX zE6y2`a@{?<%@X6nJ=kqw0#IZ^a*z&DdF_59t-Zgk=9TM>h3pT#2LBS?K}kl;8ov-GxA8T#ORp02t@JhgWAt#&jNa z%dGi*yB4`P<`)t~|Mmg|NBwjTXNSJUU~gANpiq(pdw;I25J)8{fYK3;B@i*3zZtH6 za(?&Fh*}XcN~`It!E+#uzR=5JS=29s7x^f{Y+A$HNg2FD^>zQ9{{is-nCZQl4gcBu z{`eBb`204MoKF8h1W1-^b`q}gzJI?9yn6b-Z2a6R`(%5GJnvHGCh6iHyiFT*jw7-* zi!&l4GIa!RLkA75Sr5Fj(5pN35Ye!O_S5g{7G17I630(G&XOljB==w`p^rtb;R2_` zQ~w06F5``O1iRsv?zNK=q1mTJp^2B$Iv`#lDPru@`C1CkBX<5<7^E`$%E1xp!CX*mwiKN_gx3}y4oNkq1vBHG6Qz$K|jh-1@ zj$)*g5&Ow%=!A0hi3LbuXQ+QXNUmJ#gYj1_+lA<;o>!>1Th9NA(ee}W8!uR~*2tkn zXm>}7e;_(6jbwAVr^@tsOyBhop#ghD=me3b#AXb=W)xfPe=#_Wan8lSahllT$){$c zw~*YroYtBHaeqlZMxg?M=uAdJ6$U^EE_z4kR<^k~{LnX$B?eZHlN9KE>!lqu`gh4Am{*{cfl$iuL}^$};4o zQE67dZ~UFcyJ=0$Ydw0YQI6H%u}ITaC*4X}&NW~eaIzhkK5J{5+VN|p?>E1Y z6;w(KC;Zx`;Q-(s4z$4O0?QFavJ)wWi)WU^9nMEAND_Zuux*i{~7DO)X7Jtg;&VIS?aW;o+-yE2fK!=*65B- z1q|q|?Vh2*aKu}3%g#>lP;v;m4d7$ zVtq!5O91qmOnl~$x&znyRF>Wkz|-66kwEV8sy+?s029=6n4#yETZ1!^7i;jUI(4o~ zGU>@QqUKblnqXd7m}hT%`lulA_v>UY+yc1JS#Zlr5SF_u;Khj!UKYjJSq9zOH7aw) znidYy5WbVAS*cubO7>gWBiGX|x*>oW&^v0lq!wZzy+BB*pj7YH?&p;7n9!R`3|8&6 zQZ_Z2T-KI3=QWcRMlBX}Rc|)e?cg~&^jhbRY}yZ zL?t*TC__(eSo%cOAKA9dIA|m&PWAAl8N3*cq&6Hupg&cWL9@7{*4upX3$1a}Z}#@@ z`7K;OTAo{q53|EBTgae7l$Ou;)2sQ-%K{+M`P%a6cr}5Nxw^0X7()Hg52)~p{ zhD}gf8OwF&WokY)WK?OA?sy-*{Idbkjz(6TVwp9 zMgEyPvwqJ^h`Kf~8Kw=wL9qyb=;{TjE& zHq(*iT#=_*!wZaNcrk~9Iz;pvQj9HPtxuL4KUXQW-_Wy`z0A#B@2W`;q6F^>{#!#% z&o6bnoaEoR?raXq(rlKN2+l33n$Oxt4YlZ#J-S5U+#IP#7=nDgOyRtwfN$>-C%#mr zWpK%Q&+VvO;C%BJ85F~rYYE`4X-8kSDApazJ918@LK!C4&@hi2pe%r&Hvfw`5xfHH zmxqmmI{{$)>NSR2^Y(?>Eztw`?GVOmR2kTDhPmCm_xk$t9k^kv?tEpt_H#)VH&79j zC)G*cj4Y@NUxz@+!-`NNzsZQm9}nXo;&u3%^(g=MWIoFS^LXsS@?U_R{G>Q#(sBN& zrB<0Os}cW^5}hIfEWAxInK;W2Plhe~am*h_wt=|GCQOvp8r??Wi7*D{;olWyRSv-F zUl|y>b{NUJWr8dS{D|$=D^@c5VuU>=ZGFlPHk@MkSA#&n!=fh`ZNw-wduoP8WIP*s zlsFSW(;fy_OA`1UNo4@oMV?m^y@Ng0mDDPv@%_)k3W>B9 zJqzecV1hFR{I_6W5q+?*b8LEOY)1U4zhDl57tkHVs(&ffsvX*?{t@d@w_OMVmR%9H zQZc$6A~G?$r%~wRupB_o_t*JP96~(c<7@xlTDSeR0~p$Sf(#hNN1#ep$iArOMDi#3BulSgOO=*z?;upjpBDZt}N3)Jr?M{MXFI2s}`zaihj-&^?h?+3xp zJ#fIP0>B-tm<3D?ZM$a2);_1fJJ+-7C9;(OSeU}#Vvs-(9y=HKSy=6Uds#_WFuk$M zlfEqkC@k~}D(_oaMhPCKsd;|!o1J(@dEM;Rd=_G=eBS>DG!#hfh3-W&eYI?*AiDvm zzdi&tB~imaSHQkrdcT)0USyI{5W{<-hdufMKsVeeh1mI%Yp+XRSKU7^5tq{v(}Euh zom*om+xKg;-MyhNKGiFWOCqry)M>J@o#N{J018ib{=!&4=Eu$K$6~>jOv~W+xE&wW zLzDKu|C@`W=jix~g+0Hh7)z_1L)ru9F1_0Zwq+Jt{6UcnUb1lX*$8y8o|6Tzj%3BI z%1C0)e}F^mBCdu&n*DP8@aBV(4%h@3#9xnXzt(962l5v9fPQnXJ$cjv0D{ohIb-m#s?3RZvY?-h-9=I`7tkutt+Wo-WrtRiwCMrV%DC_WGRS#WrzRn?MF$}P5?B!=kbK~FmGz|fchL%b4nw*I zZ%HvGwCGIhCwWY2~kc2hh3C-3lme(*upAywz&uw%& zT;f3U)3(@~LFBdkim1;Bh>n;9Gnk}Ekd4`cTon$Gw>oV%iavsMZbMWsXOa8<-ih?z08#8JvZPS*@9*UU{WCs)t_w!ikJtS5`pIlk$KA~R zpr^#$?ZNZZLkK12uQc>@6`6Hwu)4#ievziM%nM=r7XtK%_YK}gE0}gqY;htxLJAc0 zVk^VeN8R&_sH-?8TmaNw*Ki^ONbyT1)|(@v7q=9FOW`#Fc29e5%i#}pbB^);Aur`p z_N`&j+?8*;m{eET{VD|NUJ4G_-R6&Jb9I=-hN?qGO31@U#c=JOryY{B!TZUaOVIc5 zY>`uj7Qho)#eJ;78xUSFHgfvPpFb2?LSsOfw7}q51s5!C;s7ki%D4$LWFUNn&S;tD z>6V-k2QMAm15s>_-_9-m`#sBo+}-_IFu~nXTo_Td-IAXu%xIg1`_3%M5EU3P2P#;E zztB3ghUO&JxGJ~0qsd~CHIaLFQ^G<(d7?6Yz?`wA2B3q1kgunNk<_DDnoir-^a_ox zdh~BjHPHj97lp^W#0Y}mnqh@i?TVoPP7Jh<>*5S4q;*#*%eZ%UszM_Nz9S2_dR8Hv z+;xpomS^LC4)x`l!gG{&*E#hx_WqP5PZ8P!+b8o9`2jYrqNkxK4q&~9+yq(r{8<5k zbm%)i8O3M&s}DzoB|5qJhVuzn_~+^3rt^qu1n-1*zM0_WQ35)_i4^%wM^?$;^A3Gu zAl5GxBsWJ+2LXB zG|~Iz_yE~)Hlsg{VspjZlJ*`e`{c9MSnYI7)%V_V-JHV8gh;MSIP_z0Hc>i!hfpL8 z>%r+BA&^|cw1!M$fr*Q?Qa_(Tx1IydvPY0#qQQ9TA`tvnT<7I>TCjbxheVfETkG-< z)?=IU(UK>c;Rj9u!yx*EzAJjaTI;+l&pgJ2#Q^x?E_OO!DG;qm#Xioc6^kk+>v2S) z^{p*d=|_d<=+2)TmxE3j<0J=$dRU2rlSp2^UY^chc>Bj6JEtLO=jVLosR zhDads(%9opw5X3r(744w?bQFM04HN8k*UT;t#@RAEml=KRlo+@EqUJAGSj=XY`{nr zI>4?$B4OFLG2ld+aRt89;oiHG#HQNp@+R?c&eBY51D~k`$IA7Z@2~C%YD8p{vxdIF zPeiB&L38gd5sA302PEw<)riSt01S2a6WdG{ zt0BM~S*!%ZVbJ>fvZ`TCU(fl7=V$x%5^xnXUD9v$pYss$l?dK=ET+w*;$}XZ-NgXk zcPW*VtBjGEW?seZ^8WC?wfOTRA!Xv4PUY$%9I#ybe13&cdR*c`KyXkPu3%jdwm~y9 z7Dk;xo~)9HO7^`dkL>BL&NhRnq6HdnQnV1g4(2wDTe=n1k>phn%Unwpw~3(*=pq$C z-?_0tFIyb|1vl1GEof6kZht9OtndJ9XKjZvzyAqiVpi>jA@lz#Q$(!2%^=deAerfJ ztlN>pLt^z?fyxDs}qY?XQb5NVz7pzjG}Ct$>kVl+(M=z>vA>m<>{iNQWkOiL9kvgn3r^oHZDyBsFwYZBCiZ*+d)@mH7@& zdeiXMJ<~_dub`js8>oL9AMyv!XwBGhj)mXD!FZ@+UdB@ctDi2)+kr*|hzxIlQPcc7 zA+8p4vZUp}EQK_;;gqprWhbiWtTxt*pJQ@V3Wr9oj;UuE9?uw|Gp*JiTTeYV`!Z11 z(;+sDqa2my`>PZACWp$7Vu0BWMOA)o%J=bpb;0?i)#5xvjJPJEoqtxZF`3T3qj!8F z*(S7UIrgATgux6-fNu&3@a{vd!!7_5f(NzAX{zr8vLr`!2<<>WkC*-Z1I&L(ftu_> ztlbVre?UNvTT`SJ-MwtH0b9 zuMTm@AUc@cxX#POR_!;4Wv;ORaG;G*6jbZTtp?*dT=%FAw+6zmHavfQbZz}82*m!P z)HS)=s7m!DjY%*4e?qw}u=IhvL|U5+(mXuw6`)ZlFbdRKWM@gDFc~tJhH*jD{8*%J z>jH&U_sFS^Ts#En7yrskPO1ktWY)BPa86Dukouv`z^d&)91^2@dHijkH=5;_@L0WW zyo(Kn@N^Oomp4IQ(D?bghA518;6Q@6hyl@xMKZNrh*ew;fVaW`A_qEoBEqjIg1QGt z05c@K^_>4tSeNAGE@b+bB;L(^q7}-HGNaG5LVRtDBcZs;Rh-OYpW$Er8u=k_yMDlj zaZR%022*Y%Yg~A!J}%sPI%I2D1D-ZgFN$dmY{2HqI-{&)R?zX zWUXazIAlz4UCzVgS8tYLZJG|CjDdDIQ6@1UXP%*HjMrRZb|-5OH#scH*{f;YQ{@bd zB@wDw0zm_LwV>{;Wn$=MSC1Ptaje7%IpcZvY+Zn6?fOO+5=+UEIO^66=q97IL{k8? z7@4>uMgKEQpBPqeC;x=K66{6Bud9gVIICQW6~p7}WpG<7!tz1}G11VA?uvu2pi#IQ z{HrMumeFlO76eh-;e6wryPmBL^-q#Wy^>Y8d))_mWhGWMOW(HOn^58WRBepJts49$HZ!H)U-es8JKN=u%LZKhjWX zrI!QnCUs_K+Q9*|8fd!8cH;HuL;p6Q4eUgWv6%)-;;ro>d0J65eMyzJr$rQ3!=&*d zJ-sX2`tojXK-)HVt8kYiS-(dO;Xx2t5l(*}YQVq)QN&?J#R37C5(R4Jr`%4JPnLO_ zYE}ztmRZU$%je9lE*;?4c^Y-&ebCh^Lcq%ieYHcbgo);zE0FjKR&bx4T%mZJSpvE}uHo4eJ^? zlV&`&yK18X2X6tdvu=off(0J*pN=d`xJM`qe7FIparwQP_wVXsjedUJKib4N7Bw7c z#2vUNxu1L`stD1*k-$(vw5u*@B)`AW&oln%CpppMsX!x&6k<%gj@rMo!u$O$!@%LK zQp``tPkcP6I{+XP(mLjAW~2+|aJMLqsi4CDZbn-CbP_4$$jYFx|ckwr0y z=SEch-7qs5u%j(xHdTvvq7PpVVc(#|Sn1{maO%0?1$8VVR2**xERw=x2q>1rN_UPI z7BfHRWA?I^j7Tp(Mq3Is%({%)2fSWywZ-c?Wyhojq46UJ$te+f!EVrQSH2w#uZEh^ zVI3Qu=0yNoJmXge^7lq%hA50Kf#`lg(X=Vlt@;)E!3X)DuA(|wD#G|SxUrQYPx)xl zA8kmuIx1_>J$k8DqOG7u^dMJQANtGYKPv+Uus*s2+pWCn!slpMol02c^w&#E>EJy> zmOc{&`ts`Oj-1$51UJhjTM;Pm&yb*xU5R%mnk(4TFseZj^6Z$B9Tbt<9 zrG4RONP2=M&)NO{7Ei}kn(7K5x(QEiHV>zWsa$ZNRhSpIt6HV=Dy87(^BhzIik81n z9pVy0dw91%C=mF}8@rb!sBl;>>9)EUQI17H1)1-PXpQ_3y4$3E4j5e8yJmsO;0oDL zIS>H#dTZ1*fS;m3ABV6Fth_5|F^ytUs>d5LK|V6WmRNMC0p(Q>uwgI!2_Ajm_~V}r z2+J`$^|$1x#0X-#zxK$X@O!#~_zU!AAZ75>`G-d7JsUj8_+rOg{p3iJz^cTDDa5y7 zzw-)O!E05i8Be89A&&aFu}IXTRRf@4LBRmWY-+$~k3bGk9pMNs#|^D)+(l&hM$WW9 zLBQ+h7)}@p6M>PvwgGsT2aCA}mlwSKdw(5|q$KJqSQ?Bu9;cTU#;F|(PQ*1{h%K3VH4MBiOMx6bzv;E3K5#*n_AAG&c!rNk3WHU}!Nl&pHGqFzy z@ey<@`a8~PvYIt@k>0e9+pOvgBw+!!rif5?Sj+Zv4)*kY8vXS!aq5oMK?{jNjfUtz zdO)W@!rRl?y6QD5)+S4)n7&^c-ub^GTH`2@l05|6D2{pLJCtbMB$Bpr2~ej*9<1E5 zP$a)mC3`V(M&P^&_QSkoeAgJ-0p)1nIW2{F`iD~@`1OLCL}UbR4uQB3EWZI3U~fyZ za!ez$prWVHUxQQ@VK|1u%Gjb1pFq6&wCM4`*J!EH1J_!@TsI)Rwz%DG8atzQr>TBn zxmW+b)R68!G*T}#qwA9u;IA0Fx&gm{zbQaISJeAIunBr4KW`CC5E1xYOaAE6HW|(< zBrm|_O-ViA@l6DMc~2V5djaGT3Sz=$(Pq-)U4$_TU{H!uFtBao0V5PJaCh=0lc8vDCA2$( z(mo3CO!7Hm^xek(TO4SKWtd^u@kOGqe8Dse-cE&~R3lSX^j;VECB`4!zV8g+&d@## z5M3xc;#&%l-LK?0W->r04sF9IBp0;fAC^g7SBsVmcTnal9@P)1Kh@&l82CD_R&#q4 zMT0Bo^?m5`!F*=1fyOG$FsL?~t0hMGQL-{idhQA^>>U?5#Oete2-~%kR6;BfX#W#E zO_&T6EmsxuL`$bp=;~cUCVBS~@Mk9!d>9wY(VvPerp5EU0h~=#iOAs>LQ~Yf>N;YE z1eK(`4%MECb3HO;`fONGXdu6Lj|SUTFr+Y=I;?p)2${c4;zGwI#jnM&TBfTc zQ!mR-h3FjsE|$b$IORFIDxgSxfKR3mXCHnSyy7Jtw*-s8hAju5>}tDeY0xvl#HLTg zUQq-U#q8R6)mP9sWmZSb$P!F2k7qfww4wt`E{#W%K<9`3wT~N>S!ddDWQ?OsKsq$P zVB8MK+|OOz9uGHeEo_oZ@h>e>E~?CcPFZmCf#k;rAUm8tw6lPwX^}NNN14h zMXLkcGNK`b)l~hD);yqd_29BKYeYBLV#0$|w6_wGh)x_RY_`Wi{ z^RP^4*UD+LZKeKKic=}+EX;OtwWCym;}UO510TipB9aa%pU==Joyr_^ttGA=7DO06 zxf}?I=`hxyl0{T**yf3B?j!-$adRC5z;ysL(HLA2MFt!w&~^?A6;~0BcWcMdKMi&& zgf3mcC)wq9_7By!J29GE=Urf75{g$qn%;BobhT`Qy#OT_p6ZBBj0p40`Rt z&Q1U1g-7b&&V-8`PY7+w2S@v$7Y>pV_63Cp%d$Y^?uTL#UE1>GP4q15Pd}wq;;glu95C49mWV;!8{gz#Gd<^E2 zbeK#N_?IZf+J3Zl1U-S_2HwX69#Hk$t61Xf8ZZSxAGKnulBLhFeJj}F6U6$deQQ}x zNuvUaQ$Lx7OMn$`4J6HrKD~^UE#S z@9ySRHfN+SZi?BNQZu#ry{2%DMt9WZ`&gG;Dh+^EDti^(=IjD-S1y%t^Rd!%KH4wt#RVrW?9GYUO+W*d&yx*Q zn7LCRG^z=zmVG)ig@_WVMTee8ZOgMdq?R;7sO>x1@i`B3ms?EiX_s5>$?R#j z@`gS`x+nczui1KuMJv;kw;JuHx1q*+8kGxU)9&uRb#`sqn^Mg0IVMsF2sKkZ@i| zX1Gp|Ab8v&Z76>R{V$tHM#G@9YdctVOqg*nw-%K(ps*w~2}4GQ>W!+<%sOX#mUe*b zi|I(OxD)mBGBLPdtD}H0aTO8iP!?y;3{}2Q@mY;)`t0SO4okFtQ1KTroye|U$ZeGN z_k6aHp=Qz{%ziDFQ`0CBo9h%Y#4hDJ`S+`QM2 zP@S~~%+-sJVBiaiyLMGLUAVuT2gzG=tO*DSRRX&}p4RP*&%{j$oeywQ^%B~gF!|{DEH(BuFcZQ{765W z8iQl6Y7@#NtbO`y7;$@Un-;-=wWcf4)|CR7^7m?-yqSwats;R88~OHn0MG+FGb{mDqoUb3^>P-^bx|Kd;p|5u4}EQjmYM%we*L1I_6K9=`_ zjEa^sFncg1TAk9QJVqGqDSJGW#+^#Lda&|~@n3BH&7^GR9Tif$3|w^*aUz7-Vk|0y z^pQ`9$}95PuRbime~K~z^qk8W$Rb0L37DX?RrGWdgbYAIJtELP`LKn5G3lF-+8!r0 z)aB-HFd@&&id*& zbcJb?>?an}&s@2?&Nw}a?}p*SI^6BH|2Ly-D}a5%KUhgreMq_7MoVQY%9B0KR~Js4 z#T=)yNgU8Kdya*fwGNiVZ1NAegptvU?z}Lm#7a&%(*S6CzFtLA!A_vx#eit$_w-Z-h)l7$oJo{w7Z&1f-W?DC%(Lana zsy=W2iwu+4Px~RRap#$A^Lo+(a!6d^z7CJX0{~@QITFJ=eQ$>n_HfY`UZdu_uN=;t)LPIoHNlbtb zg#n;S{+?d^pK^>@FpIeG!9q}e#&PM{>i)0g%#7Q3~kSST}&n)HEU`q-MaFVoC= z^WofonLBIF&7th6znoX!8yitggyXdg@K?2u2KHWTxz;8CVHyXow#1U7JdvNOcch(^ zF?o)LS5ML{)2Vh>uZJnciU(3QZs@Uu41wZfRImbXzHFtiMP={>NdlvYS2$ufh<-~o z!lF@@-Pg;It%Qpi%6!DWrI4^Z*jF&tzCC+a5DB2%^jx3M!%c7cn7jx8IOVm@FlX?OYZCD8CrUz#=e;Us>pK z#u+zr!$bLd?RPJaC0n_e48lOppn30S`3bzCxLkSA;UwPQ%X0s+5Lg9$q_8%o zykNp1L5YAASOtU~L{{I8NHU>r%DagE<6EoZ3>l+Uq4Tm=6JW@@LNlTcf)8hXa6a4p z@Ltf<)UJ(B=-Kvtf+Mby`840-`#7@{G*Ag zg8td}iJiniU0^d%sWoH3CJbmETY8TB! zk0ZdYiCAD{F6^;EmTiTUhhbStB^r$IA)iErCy{ADSl)~6=0caAhcLjYaGGvzc+`MJ z1)<3K${{6j*l5~(7-q2CNE&SE+L90|7bDX*v-ZhSV`_{b}}j zDYCp!%ZMjWL+Fx1)L3E=juRSC7#9Flm&$;Ong1_10@*+J9kq+b#D{K0cGR4?H~`k> z$tL0~1$KuG@6eyC!n~&OG`WeiX1E4cfyrjbx}I(_WI=fv77}9m)V^OBh0g#{D3w}U zI`&tLS4yEr3vBLjE1_htFzXlq#doA}`3Ik|q(rRXT4hq1{=WrdC z;v16=6P()K^-V4Psp`wv4+)O%tw3%F+Xsg-{iumDF(BwAcobG|f#isT;#E|K z;jx11y5l?uSc>7>-?i>g)`B6_6!SK`p)Y-rupm%a<-m9&;oAN1PDH>N^+?i|tO&oJ zxbve6AhEtB#WUMP16gQU5xho$%p#vM+-%{dYeLa=LLh4zMVD|w2&snZn%CS+8)-Lo zL!oP^%v|3HMp|q40Djpq>O3@drea$-sSXjBxN3*mi`9#T4D$hhN~>jctWfk+Z@EH$ z35G8CI(`&Y4~oS7&&VPZk`uJ_mRHIlgbl`4j}+n|p1hyi>e)D^b}I}y(Yw%Y`)eDg z5W;i)V|<$BtFo^G_2wa&&GvR7oK7cDtlI!ZW0nRbEiV!vC7w8_DK-1pnRO@w<{`t+ zl8C%Y+~l3jL=#@ow`58q5tq&OPT0vh-$4Pgw-BC1y~_9LWd||UVjCG zGnHBoN498l6t1}pPT86|L`oSZvd~r;?ahQb8WaoM)rJvZKY(5wi~hUaZ(|y@Vrmpd z)cPz!g#ZMgQ5@n1glJ2n{7j4DE&csMaCiUVEHO`3*{$~-fGK}XBB}3QK2QQ->^R4D zEoiS2ossX(`W;IBA~kjzc0RqSx+F|zOacd^2w&rTrd+#0`7dr<}4LReTnkUDFmO ztuR6;W#&>i3?wK8Sy%}>MEmtVRE?4lIE_TXze2z~qEW)qQcvH5yeu&zSCTg_?N^3u z(S0aj5@+*v#OT#5N*2HcL=5sI)b=mw09Z+O)B=^9Mv_h?;XGkzLs9la5h{aheE%Y@ zN6Ow40dnYB3I>q;jL^BvgT5d{8Bvi*$Ocpefqee)uUdpm3Vw!NlVGaRrjTx_>I`2~ zaPaqT(!U7E@O2+_X*hOPKw$!P)c2WBMUGVHoUF!V>q2W8C}zEaH;rJd zdw}2auggze)WI~J_IH{_olg5r?qZ9qtmYzu{Kwqm?(PoWsq?BlqSJqJq*fI^qiUt1 znpfIS^q9VrWr8D3&1zzx*oj`LX(2^Ci-Up`=Qon-f0M_}mGr@8)oJ3oWh*p_YWL_D z^J3;QndXt}TZEU0e_fc7#tSHahDU`rz!6g5!_oKJ6T9lV){rTml~Zfjm13Q zyNII@lKtHg!bfQ>!h81tOuOULzC`c?{{~t2EeKE9{g90y^$Uc0Q&0-9!XE@qwy^7HZjt{Jy9U--Cc(Z@Y^H6a6!Z1%)&G8Dv3 zk1LFkby)^YQx3c(80E^V&7R5}_%>@Kw(An!g_%maJ;%CWj5lEWsmWiemhE zBW#S9m^mz1-Pzw7Hn}E&3KOn z3`+<&e|FVa-TLVPLm!RFmC<*xZpUhMTlxu%xC!-ztn$ju!#UkzjBF~(M=!){YP&&HQ(a@UmIur*95@rVMa?&lnF>oN(4rCx729K(F{~TQt6SBqlR>j zZbT62E73>;5TsL&+5&FlT}GKdFog1 zJG(@^0M7~)G5I}*40@k1FW7kNKP}2%+?|MppyiZTdxDA3t~=-k6xxf+*&q{Zi1=Ht zGd;Z7iLXd=4;uO$$(SBkbOcm2i7YB9=ya-U7BzDFGx$Trrq0U!BPo1(o>$}01m@W= zB(u@)nBWC1lb`E#XP?yqIYUdgtf!LtFGCmJzAL&fHlE0diwI(LH_Ml8(3@@)+2JOCKOgV|BA8Uonc-~)no?A& zlZ=!WI~jL}df997L~u@_SfpfF7O9liuWA7IxB3?pB32!d6N)+G^=+03L7V_j{5%D+ zj@rTXnw7B8RGA+CRYF%49CDmv;K#tXG|Joxz^!o0e`I3loA$qj{wPa?^Q>}kg4s2` z{A^F*-nU&R`r&8xx{B~!!TrxK0C(uyddAkr^t$1&+LOOKVq_Auc%l$~wER~tlRE9; zhdf5+rDn>nE0t2!+f1wWJwwu&+=EG3H)V>!{39?QdD;$=2>p>q#ddDZI~+t|mU~mm zQwipq58hk62Bj7TZ+M>}sE+Uc-Ys5Xmt_|{v0fF`uP@%_V^Ve{84EZMW|I42>6Ma| z94Z8C`tgGkpNhrr!PAG?QjlgMF5Ug46|HGIwS{3_{_Wcbl~0@dGwO!#@)}}y+f+Kn zZ|Oy)?T;%AXhy&A3#xFc&xqr~7o3JzPk(5d6c(1P6N7hxY<%(%8^J2jh&eX%6JhRF z(L?D=DHao^cwV6|-()Vs;C&G`W<*nxvFN}P3VgY^awctN+JefRJ_3cV^aV-m-fj+A zV8O}oHDdqva!>ZQU6JV~;`-p6(&YCwf5$Yf@D|R?fJLG7z#4xs1`zlu&pH-yF;RQ22{)+OdN59FHq#{ ze4MMi*Nm+VUvsn7#a^f~ms`0Ynx~}FE?2rKi>Zdt%i8c$pn4YoVKLh;l{CyN5Rk(> z)Tq66wE77>bSgnvigs@x!WH)Tei{{I9AC$^Qr^C+79@SImIH9c+L?oIY?~;3?_%r6 zu9h>m5CP3PGWY8aoffl6aS@v{eI1g=Lv_mh0A?mmVk`Lh-8$Ai?^jsP2qTA;p4~1{ z0^Xh4fw_y2Ejr{7;mplMkk%~9n$0f=yR;9IdMOx1H<0X^_VUIJ%rk6G{{xx?dr_Zl zx0G%*wZ=zG_0#8E|KnSGs)CC-TDOU|?svHX$#Mg>@dC+zGVbmkyDX{17sqP}-zT01 zo+(S*4ndPD&~;n9^E^6EU_)jzP8UmY;EPtNl9RW@*$do2#9i??Pr;YgH^aArT~X*r z$MD$JK=%V0rL^#g1g_4)Qd6)>>e-~mx50b$s~Vy;^gQ6TjPQrAEd*Q8 zxjE-s3*mq^G<9_m1j&K?lT06}c24O^$}jjr-wuU#J#_A6mhr3?z0YIwQS?4Sf*!MM z@o4DzoH~Uxszu8be=*C?0YwLO2kfJeP%DHyjJrWQa?H{7TCMeUc&r|IGETv-mGp{7 z{^g4bN~mXMc#hHJqC^5F+plXiG74i!xEQeowCJy;9c3~29X1}T%pli!;;7`qn^jj* zrpo$A05ox@G}ZLXS6gP^tHTKNR&{KG>8X|d`Lj&!0L*(IJ!|aRNW>(0nhPnc6^?K) z@ErH`V`VW9?U`vVTP3Hg zuOSG&dSBkC=P9ZV4M55s=@JHAlzI z0Y2NrhRbnS#q(z*NXO^qa`#->sZclMKxs{2t`2CV76iM-Pbi%uARGPQkxSUFYbH22 z$ZOtEa_>of(i2_kD;sShV`3Q?h2V;=Z;UzBRkV{-^z-NzfbF0K;UHx#wXpJ#h8jXo zGeJhlw>^>60#{Q>LtqbtP@EUnB_nTQZixIWQ+LQeW6O~o%DFzOL<5R1vYPIp9(#=S zd5R=|fSgxu5uoM3(KMXR0 zb0ry;gXJDwWSJS_f7|FX2pZwoCdL)SOeP$u#S!v<6za6q%mYy)gu*=z)u_mD>_o%D z<3bGR%W|;Uz@T2>Z z4{+bNPG}gypVEXEER0(j^DX{IfbuY&tay;1M?8r6vzr`qUKn0Z8ImgBtEpZw-u6Eq zHC5M7r67KjF=5G+t}c!Qtr)rvnh-HV^UQa^X+LHzKaU=td7jUSnS3 zRS=n_X6SF*|rOjT7)f{Q}&Uh@;#$2hGg`s>?kU!v`-qAQT zo_9AqPRTRRCwLTIl4Mzqhxy_%+}x=9Mte5*sPVm{+ho@p2$AN{kLN(t$yfm&v(%*z zG<)G>$6#QnN26EAH3G^<|6cw9Vx$m!rPl27O!Ua0p_B<(ch^D*;CV&kP^HW=G3!6C z@TLaxH6RQaCml-+itkQ|3i@hlDzI5Sb#-dZl$~$&5zCdI-x3-d4W#RR#a+bZOyCZV z=nNjp7H6wO`!s_;YLK7dr0DS`%;pjkMEQ7h^d#W!wMa1+5 z-?Xf{DX85Gt?6h(Q+5>lpButb!XsJC(fn|!G)uj5(B}P0(OKirR#Klpr$Gk~h8Z@C z!LxCNrqai2Px@?t2h)YhUzH3Pm8Ac6%gL3IiN6Nijt%zcBna(5qGpo8d$UC*KI5^br@FNLIs`L ze~EbxqL;`o2^3X@(KOa6kqS$CixD|NAFtmHgXQ$kJo$c%%(Ts_8KgYPKa8Iqu8R%i zZLjWUiEV6s*Sb(izLFgi&IxtkT|JLUrZg$d{GRndZCX?DG*#y6ZMPh4^mN%58MXv! zt|okhl}GrDVKx&q^|nqU65M+ly=`g z$@}xc_+&t00;{|1^O8hPZhRyYk3;Ur)x-oorModh4vriPgYf*T(Um5}s_)e=D%WA}MJog8F{-US?}ryZT{$oa1FC$&*b5UVEK;?m?2z z9}7=s_!ZmAlJ!5&@p1gS7(9x9+Vx;5`fsTCZ%$ip?9g-YBzmaq=mg$LInGcFKHfBO zh$%v5YrACc8^J1(9kcE+o?Fz-U()we%7-{%lg`h}q1)<4+d3+pU65FW)WmcmLy&Fc z-d2`$_QIpl!{%+m-7GN#mcf+=PpQF%X^wrQW|@-nlqP%0egWdZ{R&Ngl!`lXs>!aZ zS|<&sWR-tI=LrI(wJD%k-=oArj~m`c`6vto7=R?*tZtb z3ScL0c4O^OD~Yt-bE!^s9yy69UvWLu@H>@gj97Lty11!m@Ci}jJMlKeQhln*axPpX zFOkR3u2V63AYKx3(~QX~sNmLtqT8FxT|E)r>}JMG0Rt-jTaI`hy9Ow3O922E%F;6a z4$3;PR713ue`(7T854&)`^1)-y0BkeRq-nVk<+y(g&3Yk(Z!8%AD%yx8WBT*+w?Y> z>yu9)W-H;~hcb#LQGGGyj^)c&iGEW?ED@bkdfI9x8_p+RjBW$N8{@B*a>pw-R&T@L zryRL=J;eqo$Qy{cZ2p`&TLn5G(fFZ3sh@-<2C=|toWNa1{g|SPp1Fw4knzi!`N}7OA8uXepAy^dDFe`RblB{1$-ufm-qJibS|( z9K$th9!7t`-|%CpW?@$lW6mEyCU4kJt)iJLL;ok^Neryyp7vZ&)7^fHtbEsrC2g;2 zgn6ZUoan}_U6>0jDT%@(yb9C(nSK2j)A;6@RLn_v*P4yq+n&Fn1BGg=e`}WCdqBc= zNIBB3vs_?ox+b6~Bi(vM{W|tG8S}t$hxY@lZTY=&kBHMrc=X7UJId(GMbyi$+Tltx zCqE$suGRq$8?KY?Z;}LJ2qxY)g)*J!Ar{_uhBP*`>#m|y+?eK%g)s`$XT>}!&2V=s z_6)`9K&SpKbmt02pw&*Z*q;~8GIoP@T}%O_%#op{9lG`E-!(R?1!{eFBZ1;cXx-i@ zMHPH6x&`-u%CR^HV95df%8>i5|7XczxjLsXcnr9__Z5Llm|C33L=gZ&9)tjvJf12F z%A|ifthiqAyFCETWh1i?XC?1iP@HWWpYr_>qzC852ddv=(e6`P2TH~L7<74#Y>#*A zVVKAsXNDgt@MJ)w8B@|>YbIVNMi5}l>ibu?nuh1>j$^&E7?E*Q&$nGFkSqGj2JbB% zu+cs&Z*D* zW14jdB!Og5F*NR z=c+$kixVvkIV%D%`{VVVt*_sllLho)T`G3FcHfJe_ok|N7}X?XVSDT^gj~Hd519_| z(xC6z-WYu6)Faf|gXwRBKt|DTH17t?&eSw%>JxU+{{`tSLa-u%UV@u@BLKz zC~(>+a3UV?RT91^U|=Pnes|DJ%olRk7ta;(8Nuf?H3Cl0054=PrpchsGXf->I*HxG zqYZ*l-);3{{#G8jKq=!Hp*P?bnG0QAu^|F4dVB>r7=ip286fG!bo=bfV4@J{Ux)Ml zI4d~%6do&b5NHY4%>~bYi|Rg)jwli#2)TYS`)R+Y^k<$Qu*;+I^EapubPvf9Uy+F7 z*6%_tKg5#pbxTstlcD-AFboI|ALOp%82l({f9njCByf;Hyu@8S063Um{Vp6bG6EP` z@qJGp$*=g6=E)z&=_ndRaOmfpB~4!7u?;+L)^RKW_u;ev@b{e`L*W-w<_m&P$Bw!# z+#NKC=o<_X;LSt~^vx;u773V?e*h?o*fFSS9v<0IeI42?Pzm8AGK5$J>=oEu6tcsA zJrtB5aq9PJP?2PwE)q&SKayr2vFOnpwF%IU@YO(3go9N5?xQi#uZzjhpx24PH`xLf zy1uf2JZ#X)gTY!nr9*z#Enk1W{y6p)c1nKbh3p`p){! z+sbW}`yB5p4*TP^WFKZ>pC}$tn`eIrQdIaC5O-n>CFvRS(_s$PkVpco$dghuZIzI! zbyDUxj@RZ-2TwNFQ6I%w-_LV>ej#*cU9QcUKG>2Z z@Mv)_fUINpQ8l6W(xUgJd~En3ftZ3RvyT+Pof$hu5fXc27qv@MUOC}jsQYa`VT}3> zqO;=r>rj%V&+Qe{rG5W1oez~z(LN9LVvN}A^e_KOiW3wFTNxfOV#=mLA0~vsZ6W9W zmL+80H&42FD<01m`vxB4S0GGhz%v--hx^$)V832St~>=bgPg`nZrU73XE4pH|a zaRO1ux5RP#SP;BDK%<5)%w@xLOSI-uLqcbp1DW@(W(AB<(D zMjzH63Enn#HtV%FDaS}r&@`poa_)RIg12`+A zVMXg2o3|HQg-0?S1LtzEhs|{k(i*nV01e+mEK_*~1{+-xNATjvF|q_Gz0 z4(fZvlz$sOeLD)~E>`}mI`N1+0_Jaapl-t-znH{)L%R5(1xsqHf=qm=zK*yCt5?}` z_xTT!SKCbCl&{15h&7_b&k>X3)y?yJkL}eK$@&Lj#xG3ZvJ#a%K=-ciDY4{J z-K5{G|G-gZc<2kl&R&2{ZKwqlZ9o#FE9!wjBhQ zaP$Y4ipYmf7qls{dWxD}06U$pRET1(p#0|MNQ$LqeBp2fKi_kC0*-iJlU?UPS@CAFE865IxVJt(igZ(G~nE3 z<-ARMSgYoGzOzWSl@Q~sqn_ripMnd#WRM zbD|IZ?Q48{XmWe_ox}_T(wDf3BP=jyYVe>6$VQRvR6vQ82~gw+8z6=hkyHy5b1%ro zU$`Pszn1Qi5wx}_yeK|2vOnM+q3_P%m=W5Kf@cp0xKf#}0L4OnV#3^=k_uGmWw`^h ztG5XK&k;?uclX=R5wnzg7lWs}vx@zvil;vilDGZ0nzsu5=clrF-`mg6>%U(14!f$W z2VZXM`qwF)pz0WQ@C)+t@k2@;XGi;@Fcbws6btIbd*qr{3&dg1H%3qU3c7ifr}YZ- z^?JH`iTha50FGg?b{77HV6k{<99y6f5Wp_U)XvIJ$47TH<0hi=7|-3UcN;@$&PNSk z-88QK=q{g|pM$1X7kxQ4+2;rw&~J-@3OOZ%FNt|1Zg5{3>a+J~xWPX!iTYqx(SsOb z0jc>47GHiSH48|mXJ6YI@}<*~50FoPFtW!8lVG(t0WvK*<%)WQWA=LhR2BVA5lRZmM+LP>m>qAExwTc#N-K!?Z(N<`k zly}cdh8hCOQ;Uzc^;u9=+}Y6k*n@naLl;L*Up37xwhSV#Ijje6?QWMCU!}lW_3t`+ z@0B|l0FI6C?(+(o0FfILREZ@(U?DBD!YA)7AZ3j)epbQ6w;w*qz?>Su;=9z_;bUvz zt$E*g)B?>KGcdLz6jXThTi5?9pHOQ`NK~VvOe}^3Gm^}lsl&{fZzVm_39h- z5yZJz$MDuY>had3^6-F2afg-zblLp@ZEW-X@ae`)2I~0fCfH8txi_r$@Z8q#Y@7U{ z00jhoeSAneoyy%P-Hx`U8J)3o;4misp)22|%NHyH^ShMPD6Wrdb_H(E=H+j0q^Dn3 z&x}+G5TjT-vNclk zc6r-4zC-@1tP8I`KAU+Tu&h0pTW3AfQBr5a?P*OYdw0L|D);6kXE`()ayAeN0jNLSAQuobfP)ib^ak2TBPUB{aY;kWk5SQ{f?Sl+b8dw^0HT5K35&0a zcYT~<1ce~|h={|0!=E^U#}ZNP*SoXuz#sp&hvS$G#ve`1rJsjM+3g2R9G^M@h}Xwz zk{@hA9={z(7o^$OedUYWe?8>88Da+=*DHnp67i~(o)Ql=U5NsP)lric%JikFd*%`H zDVqRP0C>NpkEl*Oj5W3LRb_b^@h{FtX=QSrPQ7V1rY&m<9~>?q!1Rw2f+QZePk8zv zeP#NT$fQR9QF<=r@)t~|l82K;V24zOIH{?ur`;VhSXoQp;=}#upV3{q_Ru(9KN{@%Dp$p(FtR%wvoWs4R6Hd2NSG|>6Xq;q8B`Q2a zI|5D+U~f}0t8r;{HbLol5Er8m3?E^W`S$0!n&Hiwrz`x(S~MdyMorAQ%~?hZqm zcn>RqBANz3RHejhz?cOQfG8i>`7noW2>rA4?7^5&2hb2pG09xnSkZXwQ3TmzL|n+Z zf+L|(Mz_~h#)+-BNhFr1m}X#~SPCVvd>QIA0go&6>(K@pVyAm6H-Kn(&!3;OHPX{es4`E-xjTr`I?DsRS{`2)VG@WB zcZFFP27m1XGp6m}j+aaym(Wp5vj#LdPi0b=MSG5nhz@7Ez;5hhJf3IKhFQxC&s1Kn z`PR)L{wA$9+?pH%3;;SRb|0IPdz-J~1j{MCoU4eU2+#oHlISsE;vK}jF^?(SC9);)yN39o*F~Im-3`N| zH8t4pfB$mZNS2LbNAIe@L-{nr${qY6;T`CsJD$MMI2oi)YQXInr`oWX-Wc(!d28_> zOG*{W7i5^$qunkesY*>tqv|scYg654Cz55oM9oHT)|F0HuJy0D1;*Q-j-S)EpU)2j|5w7BzFk4H zf!iPVBfpLxCxDv|`)mKs{LAXg!02Pw?sr7O#^w}iqbFd2x}$|T{}ygX$)EUI>^X#2|7D@g)rJpq;v|2|3`-`=KC z{GI8WmU4#l4cPEkKek{bfAJNIH{LuHQSX4ch|Fi0mlDYvJ2eVQ(qmtX)90g@0qZ}D zAB`*&dVD$@l#No8(MuRQya|lTr!<`oQatc4#)p6JVfFCys$8)U-4K1ragma4WD5_`1F*=-Vxt)}0#&X(&Jt70Jd)_C zAY#T=Y4!P|a!#?JrXFEvmau-mw(wU0y zT+eGL27&*Za)Lqy;sKe0gena108~69brqLkg!$F47>$`ZERv3Oe&JZsv7_7knOQ?u zIaKNUDJ)`58l0+~nSj5~QY3k9xLy)dC3=g}foWuI24(#+5U)spTYPZ7QEk^l1eAncOK?xkSrW zsJ%*V8^^I{nkr3h#b%#8BVA#2DLLMnx^PKOZzDhC{&lz#nz!g|ozwT>pc_27k`Yiy zhbZ{oqv)jbeXOzJs2vq)n`1Z1Ht47#z$8D3{OHsqUp-tWJ*j=ygnjwF-IIV9zXcY% zHa&lRGB$Pfhh1YdDZ>e1GyZ3`JcjC*1KTz40!+4tEyH2U#X@L-8IucYbtZ8WRmvpw zpl5JJ+?rbOQ;dnI6MU`ARZh6?%wMLT%Iu$VB zc6G-R9hNKJrhRHh0jF|f#~Io+MRLLFT4J_&%calq%&_@b)lEG|IJi_P4ZjprBN5vd zT5_zIrck;xw3lo|Th zrLzMlN=*gKM;n>KEZj6%Ip%0SU6>DnK&D> z5nHVico?fF?xz}T?3`pqBQuz(fUjTlT{|l~XuV>pJ`w4i8yOD8GU0&p92Z@Ptd)gn zcT^b;$-Ux9e{2wtH&MfT)si#0E3%ZvPBrUI4o#hpo=2N54#&%~J!#-uB4=A^S;XXy zmeSq2R=xE=Ir=PfGvS%}rBgU37?9^33YV5BJ$sT>NaIl6f43G@$<16-jf5XYPP*9PvGVNWyiD_fx|_Nur9 z$=GJmF|d2YU*l(KScrpBW9Ils$14HV@2H7SYF5IMEiQZcDZt8*o*RkvcT_;Qc_#U>WQ=%;wWO@SA_uMRwj5ULbL1mf?8|P;^o3P~izYGC zCN7gtk|RZ@#GKbS^3u6ygPL%dTodxw;T0wRSVa9^XImhgV#Vya7qGEnmN}PVrr7;& zGu1sC6{4C8Zh#;iNW<7mP5To}=P1~Y@c%qrlb=>`%K+zX1jMfeG{%i8>7U+i6Doc) zvv+gr?jU`_>to7EC9z4g#snh#3Cw~1i!>B(P&Q8liX7whEs7+|JLYG;F=ZrL#dj39 z{%3s^|1)N01Gig4^uYD-PR~$kEx2D1ucIF zUENN(y&0zCdS>zUUnU;Ob7!9e1nV!du7?yo&B6vlUuYeJpcf?5$)LE>ICbFo(g+7( z$#56Yy`*B(P|zn7l$Ya32-6`$3ZqaU9vtt?icDpYU0XR4U>JCAqy5C9KG6;)(6cQQ zmR7G}zyW%UCY?cp*YH6aWvr%w=CDU1XL~}SEAIPrkW7^ex`=je0pIf2Li!|~Fnd4g zb|oo*NvI;GUx~kjocOS;BrCI@-icqB(=7TmGiz~o>KFtjUugA)1ci$r0D*H3a>vRe z!EWiT7abM~5EXM|N%j{xwhM-GDm;xMU_Bg?Qz=yZ9g$esnFmakWBqA)b;XIk>booY zH{O{q4DUaKA;u3_=#^4+`+?l(YzkXGf%`MyKd2wn6X=Vw@#!b=5Er6AhEpBKJ39@zh!URWI@ z{$v;ae6RNTd>L4)9Q+@Z5BR@j{{K(q%j?rGRpgj-EVb*ZEk9ZYYc8U0tYM1I_DBo9 zo91|PRNTJyaEdde%i2Xk!=2nlis}zk4ojL@0T|KK$;txeFy^#t`!FJNux%h{o!PYP zA==vTxiT<%*Z{6I>yfo?Zp1x?MnK;TId_3q*E_ugx8Y<$H-hz&FJ_LPtJT~3o*6gS z4}IhPghoH#0VrGCDZEP`_tyjQDvKcHCM1U$5U-ZL;z?*LXr>f5fcyw5*Ac1<{Tjg=5RtINMMelqSIhv zl}uAHPympl6c{BJII34fKUe}~|6tqLAgYYMkR%Z5C@gp%Xl9_`xKjR8WCQ@@NY(OB zX9$69j^&3lcuIvj&1%{+IUDAB3%ZvEasZZeo2s)t|FB()$rAxbU!2m045;~Q*tc_7 zr0+55uRnnW_10t;D8W3=>{U26q?`WH1+Xi7K` zv35>KVKwTBx#Cj`*RbH0509P_Lv^rnC1Kh}6mKY&B?d70hA0XoM%YstM{6`*?Z0&r z)a%bT3glv77m{Gx2emx8qmLv7xegw8n4q5V>}$Dydq>`8zP}4orU~tVCw0RQ}b@lS8oqWDz!7SjMh@I2+xzn%;%6ah+hd_y;H#~ z;)JyWQYnfXF3sa0)|`80LCqg(NuKgeIxCe!JZWllW3+q}O5=$UhuF^Dts`JLOi8Ul z^CZG6%_bz41o5b8)1rfVY2x>b@c?pj9Huqx;6n8yEr|83m7uy^}raY()g z-m@x44fr0p3)0_ZhwJjUX0w~};gZMd!Fw(t)1W%UUfVj(Gus{QcYPNmWq{;7UXF%f z*+A{lS^kz7O-pKKE9schRW1F7xp#$67~T)Z$8TyhdCu$u@&wf=M~o;o#*k$A9WxMD zSc|V==b$7$4{)-ceS*O!%+P*Qm2j7>2{3-KKOR-JbWtr2ArBPIql24lVYFFPZlfHuk&+BwQr~ zP987f{mMO<2}y0Pdd94vNl}{QH6vf7)cnG>u$V_+%xr!=C6&-ZZRUTOCaBa&f6-#) z7Ry8f7Hgr1j3fVa)5+ATp*9$DW!R=uw%|vVod;%yUdK!yr+{x4ppey?Y2)VEw*aYN zevjkpOol>6L5_#5T|DSjj~X?FrX<<*>gKxF=fme^`sN##IBH(Mcy1aTSf^{Fx{WtA zJ7ve)D>j0Frz{A^p_-2px7;XQPDWfI@l};md~aQSo=;H97@jXWN`cV^bqU)s)r0mz z<|K$?q`jESMc3>e5D%s9*H^8cX#$Ig7HZ5NbZ~hcJ=R0$FVjOhmNza=mGZ+G8kKdS zPIQ0C>F?tdHVW3EgXxWs@Bd|S5SV#hG6Kx(P@4s75&*^iGTWF6H*DCCxGq-3B8Pxb zDsn78ueNl?aHsz!h9j+>2QS$aSpS!4hhSuL@U=YRp4vDOpu(TpY>ilK+N<8Ui`kjB zVt)_s#!cTI(fWySN%PB-M&!&wTv6Ss*y2E^tx?HlH4GzFq+59%%ItG_b=aSbPh zB$4hI&z}lj03?AyE80az#M42*EA40kPVj5VQJhpI2Ub} z6YWy15-3onJ=c+}cOJVF`gaA_{Fq^*BQ#djEvos7* zYdiXm7_<9bmUzYI{fJM|hh zB-sr?xCrbz(P7~aHcak0@$skntAkeq?K_RCTOxwab@?v`f>Hxj6>H}YZ}XYAI1|^H zY;f@!JifcE8oN+o^Mb;tow5klRI5#HHkr8uJWve5)8#P|%TJJSQ}MbD{WQTm3q!P{ zoAaVNn^45IHfw2CmSNWF9-MxiUxT~hXv#Cu0 z2kjonMmR1qC*-$?rWUudmqbWNBGe(@xSGhA!q;atcC%>TdMdB;HdRsPc^}&dR zM^k+m@{)G`P4iE~;7ftsA|cB0bWtRB+|C(w_U9h3Sn~*LAMjct!sn1z15Jlgia$MO zD>6_s{vai^j#-RPM=A!r0lMf%T8{dFu^?8P z|L*+wia|6bJy1B#ifD?=w&o<#k>4?xzXSYS)^zBrlgsH(4(b zVBEr81RK!d-~J(53ezr(@mPrvM`qZ_&0&i-PAV6{hAlds1~vnslQvBU814E;FCe*e&c*dvE;|1n} zE!l>*(AhLrSZ6gc;mVc*t|~frjI3KUs#|ovZQtsbbyl^pH)>-h7KDW`O0?+kGehJ> ze$$y_Iw1Ly%g*9}=`|FuMVrt@*HX0>ui+%t0()CeHEUvSpTKyVP`84}R@D{7WH;j` z@WH%&8~A#%FCT+?RS%o8{wB07CIPTR@lA0RmL%&^vjJst8BlQmK>Eern`Jmx|Kn~h z=UPo7T6HEf4RR$?T3FXM>@TNmdM@bPn&z$>MBCsWt2XOn@?BfD?7OP7H$AdYPmYS$ ziZ{zOpI5JOU_V0p!AFuyO~bil9WpO$-2)f@Jo93__eP+n+WS1t9Mvov)HkhOYWVle z>_`dhdOvp3Kp+4H4@Fn`pS}WjTJ8qN)f`i0+wbf!#XLVhdy-e{W%92tFTZAC=9z3; z8sO%)xo(e6iSt~v;H2P$kn{%fo6v-x>y<`7fwqltSR4_+Sc~8~_U7El!x2yr^H~wN zy2Ya_6Dm&Uvy^tw7zKbh_y7K_BZWtUOE^q4JD|R}Y`Xxcm^>*|1QyfF!(=u(w|dFR zo0$pn&VxHhm5V9u;0v>wmm@aLTA~h7N^NJV@fs$g*z@U!{h!}B3XgRlk!YQbr7NT8 z3Z>KL)VA^j9sv+sLo{yY$gZ6@nUI!<;t`4D|iA_jLVQ z+u$~q)!d;yQ-V(J9q3o$sOFWDqmp3es`P&YLdF!Sf@^8TI}!4GYI$ZvG*6`o3+l|7jAIxo;RIl=20r-5UXvS z(x)`i1S_$ku>Oc_VJNR5^*%2$Z;MbEZ6rQOBY2#5)uPS|o5iE*fjFZvp^GSBgE&TB zK>O(K@uWQj$FmtL5#)vttF&-|NB(942pK7eq9-aK?u8fno;f)(_{ye`$~-_*v^_9l z71lZ+TkbdGWxjSnj134VY;(`__M+k`z-h*tq2hag+fR@(e?_T*2B0Q0Noz99#!?tybzLGt% zb1m-dB(hKUv@xz$P5&kXW^7%6%-KTAy?Xs}VH<(e6S2&}k|Er2#z;YUWPra6wL*UZ z7YGq_T+cEUv;*fN3xW3giM^t-cf00{j$ut5C9Y)u`R#6A6uJZ2H*b-{a3)k>&v?^uS(PY{^J;fABK0 z4iipl5Md`K_?0y&<|U${Lm&80`)1KSJzeQh1AA7XQJkX!zfB4QM`QvKf@gMa>y4Y^ zLEsS;@T6S9ifuia(&E>;vGGIyPO(^SjX*LBNikpy0k&y6V1xn&-cGq>G8DaC2IIw~ za*hf-m41#Gezm{%8wFlq9b^=Je3t5^P_o31|HrD7YGX|gJMDmYz^>670j2`CMT}sB z=)qc%yikens#D^a$pD~n=-Nl1xnNvc*eCQnth#btL75(TmHuE_E5)KQ2=qM7XHKZ| z`vKx~PGL_(h}xz`nQFCvLO0MksI?*vl2zC<@=`?NZg?!E&`Z-o+Ag7C65&Y1sUTg4 zfXQ6<=FZWO35Ls}QEwgHLn8z76AY(EXS-RDEj3*a&S3sQyMXtHDkN1&tKcZwZ;UPQ zA|h(?fCgJ1WCZ>x3c~fw=l{6IudNu;1fI5w<%9sm@N9(*B}PUir#S!cS8g*uOJ7~I zosH{^9{yo4pUheHBtrOMrMedg_G+jvgQI~KHOz?&=C&(7&ca5&lQ=NR@lm_ctR~sY zakR@a3z52e!1D!3SPlj5j#_9^PoS%%%bB;Dk{^P!>!xrKxaj48>m3~rT{Q+)*vRDZ zhzF{$vV>Dh_nKN-yPU?*DS5&%mbpCV=4NzYiOsQiQmCTn0f(d+xqYT%JLW&41M1;l zUhUW~cduaQcs%%fQ)z=#rcY&_N?CmhY~sALCnP@}0LA(Irk4dQONXNEJIqW@iYJ%k z%XPf5QE1wWLEsmZX-NF1;VLFHfA#juGxCqywxHFSoRU*iVvJJN@=1k!Tt#Jk7QVvb z#&r$i`J0V4CvOWhW;$M=lha9b25IgHZxlkoJCyu~W7&6x|KYKyr+^7@Lz6!8uclB| zg6UxzKv%gwR7^!J`HWX53K=qWH40T_(aI?ArrQ2Pdpv&)RdexN^q*f;FrG9d{xbOi za{P*L4QW@4Y18avkX^c?Yx-2bq&vM& zMXoVh?U>A-v+l7m3B^lbjpG_Cb_?=DbFD>{D`{zPG{IsMdCvqbW~8@C)UeDjh*=Wa#hZ{e+A&o7EQVFo4g7H@2?ox(!kurXOdP5G;XJ)P0!6Am% zQ&HkabE2E_f#L1wIb&pBR9E+?LSDz|t3!;c_5iS({w9!m!>P%`727#ef~;2K$8+Tx zJQ*Ffzo_$C*rN0k^c!Ka+|3YxS zC^J5SenyU?A2jAiN$#@e7rS0;1%$r9)9$TstLjVysgQF5hNq%s9R42TPAURzv>|B9;HG-2hB^QYAphhH3nFkN~_&3-ZU`zf>IdKb}xzU5mnuBx!Ql((4UaA zb0TkQ!N55X3Xmf_6yIE)8sJd#rrrhGsO3}fQE~~z+q76C%*w^Y4R|ixrc4fZJhtBO zWNB<7Y!^Q_EvO}o5FQ=Lfb3j&2T3Jgsof@u=r9MU4h%ADyoDDvk-7t z6Q}y8P3G-rL@U`j)BP_jFjDwX$1AXTWSt~5=Vu>$bhV}8)_@9I-b*voo)OxJvM7%IuXEoke%7?P*t9P3&nE7g`stwWk!vs&#N1 zZEAY}M=nFP)W^2bI*^<0FOBT+T>mKTzY~%}VS}wB^$X>lBaP1Auf%2f)IQV6Y6xb_ zFE&y7u%@j{D}S_LP3dD>{^vr7F!GHSJwa5B;QzvUuwP4yuw4oJl?b825^(&0rN+@j z_w83lRF3>76+gXXlHACg4Gwo|KtviAKu(|9th699E(uL8d-xP?fJ|{7L4As|owsM1 zfCmPD5gZ_9A}Ex|XdRj&&ju{GuDZ|lYuEMeO1ykp_6<6Y-my`^bB5w=e?5n~tl!Gt z?jV6hS-;Xyah!n)WZ^-CB9JY(9ugyG#b`0$)$%FGyw3NcXBr(xRs`mLBe`A`5g(s>i{W ze8a!(GX$&JQl`XlVQjXr)-|WAfD67pJ1AgWk$$Y$zN*MZ?_pxeheLab_bSE)c0+)(-W?2|=%z|{NBbns1Ch>ERKt)I7oiD>U zAn)u2LI@Ryp}?8O0s~-PsXGWouCR%jrFejkBbHfD&l=W8VT}_W67nkTI zhR(*r!n0u;#K2h9O4;YNe%_%yE3d(+>3Uj|Yv~nNIN2@1xYxD{?co-~3i-ePvEvoN zwtZZro=e(S(^xMnQK+Wb9-u39AMhgZ>gbYrRmRfpvNi04nK27=cxviq=bT+iFoU++k z@x)_W0%P)wx0M~IRl1~d#qiK(-UNW;S|rXd3yvfQT~1Ox*~@0^M!5cp1?UnlU*Mp6 zm*l{R;|Knx9`!jNOL)8?cr?8z-Wl-d^Q0bj;0C@W{>Y1B{M2BsHJva6O>(=q;vK>t zKj#jH`xk4Lo}noIbIA7a54~W9H>7(KrJg~M&+fh7=h@>aeo*2>P+I)txu2G(d^RuG z5V?!29(e+z)i=nEd&zd70j1cJz)qBsySI6vz-qpJ0N!s!`abrBFKr zo>+JxJc?^6)Q?f7^C0>STCDU}P_Wt-;K7MhdXhivTl1N?mpUcK&g}kPqH{Fc_59%^r$FUY(#i!TnV8vM zVww_4=-G>-2(GdOraXbKAL$-j^>&Tnc!`U@Nd4;q*;{aJ|_xkzwmy?;)`LtzFLn15ocZW*c# zhYum?+C+zrN*x;tLiI^BWx+^Zw>=lvvnq#4PUS-Qm#wh(h>LCW=){UX=r6w^T5dW3 zi^zBJsP{&u42bMhp>`1{!!gy`g9oZiV~vAday?%ms} zn$#$AEyD9Wh;e_vkcP|k8StfXN4ZJ=NV!NqX&?{**g}MV&8u1{vef4591gl?L6cHk zONzL;pA-Er$O8l*ld3@ zi$t9hGdK|ei_RC2_O5Oppfb* ze9NBiMWf~573L%(!>gV}M^wLZVulj0a-)~0px6+0c^D>%EdNIf;3F*KMZke4=lIFk zO9EFhjm}NpxJfnwRai*)w#G}0?K=ZpIZKaByVbC2rjDN#r4I@Ye4z!X&gNWc-gJO0 z5}nHXlC>}tqG6?r-^X*A%nNWx*71IEn(g~dCIM=QXs`#^%<$y)@=h|?pb`gxk##Us zZEfJz;gjOY;oL4dKF;c0j|K)N9Ld%WDSbbeoO6pieZMvCZTH%Bmw=+byUGCOa&oB| zsSh`DQ5(pLok$#y(6MJ$7ELkuKO0<)+MHsS;a1y7wYbG$1h(M(HMqs@qRkGGEAaCy zhb^WfEAR~`SA8gG_Sv5Og(UmsY66OhpPim-;sgI1_5tc4#X)H++cnXTaX+=koO4g| z4N3~ByAz}_2${Gs@R_6N1dMa`-IdnHx8hKSH1=lu;?QMc4VH9n5SM--m1jy-U!(1S zQZhgh8RbGa;SpMZa}EW88I6dL%%n6A_^ zbG2b;SRwD&=iyha5Pb?!2h>j2;pXVCLomu&i4&JhzHs%r!{2V20csYMjd4jYRw~>? z&2}Bc^TnrS@GnT

!uYOT#Dz*ufK2U;nCdO+&UZPVmqjjY098eISA&XCyA=NlH5u zTFhU^JPG|{%rqnN>im-2tCc{C5yA3f5`00Aj0k0ath~bshfh=g$SV||T;op^w!qG5 zQQEOoTe~+lf(pN30Z62DJFFQvRbwle64pH-R2p^2$`wgD#F(zt%@kAkRBc*iq08N1 zDLhA`LCzT^##hL5t!)e8oT|i@K!8(kIyu@a<@Oh}P>v-mD%i~#*!=gr=`IJ@TdOB{Z;PWF=D{kbdKk18P9Mv{a)Wsz{15jsUmF zjD3ujWb(xulgEf&^G6IWOXi+5ayCd1m~n^Sixe%9Z`PcLhM6u2sj&_fH&guT_(R1f z5CkUfm|BKxeXZ|UjMW^h0QaXSCRc2Qi=<%q90 z?72oauAS~8fL}-{v}9{_Pah$NTIb_i4?0HSsK+Tc@?u)p4X_MN6zbWR63dH={YIMN z92VpDDC2&qCZz`Pp{235?v!BFeR~r|Z#D>_1ncOKwiTOnV@bz!W!0>Y?@8yemo(Uh ztH+EqOdJ2!28&y>Vykp~$r_baKN9~iXBC>4nu>XK0KC*z<7(ZS7v^Oo|1+JYq((X2 zxr=6)4<|zvYIlCs|B@L^6i3P4ia z+JSLt&M3*+byJy|Ys6MDr+B-hy34mt?De}f8Z3*Eps(NLmqg4Zc=Y#3kB+Uy$Y*AP ziO16c2PHnB9%zz26{b?kHESBNRP1tthc9sY1Z8b-V`@d`NA7cv$#dAOQ}>hf3gbO}}^le9MP^`G$026`!W=gnzF~%Sx2m zGM-{AXEL7~T*@8GvX+^dLG-FHiv#}$>c9WpTbK4z7nLkmh0+&nj#o(+WoVpa*h>Ih zz8tTnLf@?D1OGsU=nj!$R%_%kEe^R{F)c2MSY%S`4pzQSdiq_dbmLivwF z>@rgpvQ}c|s#Y>tozA;RVDGok`a9~j*scFEFMwUM{2H0*V`sLjOslSEsczXE$z!!C zuhgc!xR>6w-r20~TCC~4fDSg0z2*V@lUhD`6P+nboMtQ^vy1Q>=-{S)_e{X~&LX(lT$Qpb!;`w8t6bm@T=8YF-XZDf2hp+B5@gM+t>sg4U z!tJ}hl3Q1xJ>`rbSB0=>XBjFWXoquWn9&tmhlKtu9YbLH#1V^yr5~gG*ur zJ(~=nb6~NYu8atiTX%YgJ<@?}r&F)pe#skcCQo=e)JOm^h}ygll^TF*w$CWi=z6vF z-qp$U)Kae@9jVjwZ0{!&lp;COA@0<7!PcjT>`azz2!mqe+LSZ2mw5pI9xCq4y$v(D z7cE_|59XjO9B$?RtB$jNi+W+3IE{cH-6h=}O4kw#E+8yjQqtWBUyziBr4|V(ky;KR zvC=Kw-61J0Ej*m_^ZWi0_jS!ZGoRrso5`%r*p2wLWIv}WI>_w__y68dV3(|iBGM>j zUO3%mS21Xe`S70WWVoVNPpturgibK%s;v^fx<>NJMR7 z_IJd^#^T$`Ahrq4>$tdG%OnHF;+d%GvOIviEMT5C)1sfL!=A8ooO!ZJS7w6)ulmA^ zH1mz#)i16D2C79>4RQ@WpNqn}e900ee$5D{D92}mkuBujM%;V26jfOv z|5@uBJU6f7!6GEPTQH}Nc!Mhw8XCPvAFriS%a1E}SW)nME@!vJBZMv*wuBG}WeiYs z;l3!*E4!Vs%_;8C`tf4XMtMRMMB=*tF@QtO2fG?Oir#3X6j4#SEfDb^P83d45N+}( zD#x_!XS}OLTPYaOPm)!Cg-0yF8j^sb8@*0J4!G%;-o# zG>C(#<%F9}DA@jFxFIjy^=uIda1eSp<}vODWY)F7bDXUVi+LRSQXRaYtx#P{!3$VvHcWHfckV0P!2*LYW!DL+Je0{OK#aLlz0Bj;)Lr8~*!yPA?_C;& zCtZ4~K<23a-yAZ~tbvZt>u-25jN(3}>*LvmG5dqnV4L+g8eyx{0_z-Ri~8Yojkk%z zsUUC`IDxQ+fFm8-h~5s^^2#*r1eter29m78Muk)UoL(!0Egr%&?esoy)O*XdbaCvf z9Lu3>eY-uyND&-BnwcU>NTZDb70!jw`ERFs<^5$&M^b?qd@0GZ+ggWkfO5f1s ziwK|ZjDjaTGac%n#J3+7OKm1nHCmq0+y(BEK{qN>%+T08%^HNLXEf6bw0qKZ^lC

YB;_Xkb|wO-L!xnn$@&-t0Y&U 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 diff --git a/build/openrpc/miner.json.gz b/build/openrpc/miner.json.gz index 2d48e544bca2164671adf360ccd250ccddad70a2..cbafb066d783eb1ef7b7e451aa1f15a0c505839f 100644 GIT binary patch literal 10466 zcmV<8C>_@yiwFP!00000|LlEhbK5r7@L$33{qQ6mS<%h1?3sRW>?HNpY5iEv_Suay zTZn`ttSNvcA;)UQ|NR{Ryc6I}lw&L0?X(sN93BAYhJ$ksz8Ta(#C1&L#OQYi-LcUz zFqu>1tS6Jxqz{(I0jP2Nt?F9y`Vgu_d)U^e0=xZ9{>kfG5y1!92T{{kS8M1hnNB%Frm*x|%oZjnO@_0-B z{PRzvV|eS;3c4HP#4tLB16{b1gIv3O%4VAbhk95{jsKcY>6eb-B5!RozB2yortr(m zYxaHO)1J9RE6CxY2e@)<#J^+Ad;P(1WPIuH?g9;HU%AvlF2lUV9NHf07;NJp-ki?< zi%e#GdF1&0wZ<;8j1%Ur5l6;xkqH@pB6>Y4o^=fLAgAn{njS|cIff6IE!Q*Pq7`Kb z*qGcI9b@g<#)+|H%<)d%yjh4QU6Zcf%zb)0a9qmqdSi3ieKWJ^?9B>#47qQhgWotV zec1eGfk<~j|KH_sJUlWUA3OO}dq&9|FSe##2}Vu9i6&*~SGLZf;zYaJG#ui+6H3mX z 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 Y@W^<4{POt!0{{U3|4+})omAfe011DtZvX%Q literal 10466 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 SC;tlo0RR8R&iLF}dH?_?b2-%j literal 2713 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 TyXpS|00960-M9-cS$Y5fD3Df( diff --git a/gateway/node.go b/gateway/node.go index 56f95a31bf6..a0c120d39e1 100644 --- a/gateway/node.go +++ b/gateway/node.go @@ -33,6 +33,8 @@ const ( // (to make it easy to mock for tests) type TargetAPI interface { Version(context.Context) (api.APIVersion, error) + ChainGetParentMessages(context.Context, cid.Cid) ([]api.Message, error) + ChainGetParentReceipts(context.Context, cid.Cid) ([]*types.MessageReceipt, error) ChainGetBlockMessages(context.Context, cid.Cid) (*api.BlockMessages, error) ChainGetMessage(ctx context.Context, mc cid.Cid) (*types.Message, error) ChainGetNode(ctx context.Context, p string) (*api.IpldObject, error) @@ -44,6 +46,7 @@ type TargetAPI interface { ChainNotify(context.Context) (<-chan []*api.HeadChange, error) ChainGetPath(ctx context.Context, from, to types.TipSetKey) ([]*api.HeadChange, error) ChainReadObj(context.Context, cid.Cid) ([]byte, error) + ChainGetGenesis(context.Context) (*types.TipSet, error) GasEstimateMessageGas(ctx context.Context, msg *types.Message, spec *api.MessageSendSpec, tsk types.TipSetKey) (*types.Message, error) MpoolPushUntrusted(ctx context.Context, sm *types.SignedMessage) (cid.Cid, error) MsigGetAvailableBalance(ctx context.Context, addr address.Address, tsk types.TipSetKey) (types.BigInt, error) @@ -144,6 +147,14 @@ func (gw *Node) Version(ctx context.Context) (api.APIVersion, error) { return gw.target.Version(ctx) } +func (gw *Node) ChainGetParentMessages(ctx context.Context, c cid.Cid) ([]api.Message, error) { + return gw.target.ChainGetParentMessages(ctx, c) +} + +func (gw *Node) ChainGetParentReceipts(ctx context.Context, c cid.Cid) ([]*types.MessageReceipt, error) { + return gw.target.ChainGetParentReceipts(ctx, c) +} + func (gw *Node) ChainGetBlockMessages(ctx context.Context, c cid.Cid) (*api.BlockMessages, error) { return gw.target.ChainGetBlockMessages(ctx, c) } @@ -231,6 +242,10 @@ func (gw *Node) ChainGetPath(ctx context.Context, from, to types.TipSetKey) ([]* return gw.target.ChainGetPath(ctx, from, to) } +func (gw *Node) ChainGetGenesis(ctx context.Context) (*types.TipSet, error) { + return gw.target.ChainGetGenesis(ctx) +} + func (gw *Node) ChainReadObj(ctx context.Context, c cid.Cid) ([]byte, error) { return gw.target.ChainReadObj(ctx, c) }