From aa89dfdc182cdb2c69a567dd5de5c399b24aa4ec Mon Sep 17 00:00:00 2001 From: Rusty Russell Date: Fri, 4 Jun 2021 11:21:26 +0930 Subject: [PATCH] onchaind: handle static_remotekey thresholds. No longer a global "on" or "off", it depends on the commitment number. Signed-off-by: Rusty Russell --- lightningd/onchain_control.c | 4 ++-- onchaind/onchaind.c | 22 ++++++++++++---------- onchaind/onchaind_wire.csv | 3 ++- onchaind/onchaind_wiregen.c | 12 +++++++----- onchaind/onchaind_wiregen.h | 6 +++--- onchaind/test/onchainstress-data.gz | Bin 25268 -> 26866 bytes onchaind/test/run-grind_feerate-bug.c | 2 +- onchaind/test/run-grind_feerate.c | 2 +- 8 files changed, 28 insertions(+), 23 deletions(-) diff --git a/lightningd/onchain_control.c b/lightningd/onchain_control.c index 3c0ce0b73f2d..759ae4180333 100644 --- a/lightningd/onchain_control.c +++ b/lightningd/onchain_control.c @@ -697,8 +697,8 @@ enum watch_result onchaind_funding_spent(struct channel *channel, channel->future_per_commitment_point, &channel->local_funding_pubkey, &channel->channel_info.remote_fundingkey, - /* FIXME! onchaind needs start numbers! */ - channel->static_remotekey_start[LOCAL] == 0, + channel->static_remotekey_start[LOCAL], + channel->static_remotekey_start[REMOTE], channel->option_anchor_outputs, is_replay, feerate_min(ld, NULL)); diff --git a/onchaind/onchaind.c b/onchaind/onchaind.c index e35a694faa60..22b6413ce780 100644 --- a/onchaind/onchaind.c +++ b/onchaind/onchaind.c @@ -84,8 +84,8 @@ static struct amount_msat our_msat; /* Needed for anchor outputs */ static struct pubkey funding_pubkey[NUM_SIDES]; -/* Does option_static_remotekey apply to this commitment tx? */ -static bool option_static_remotekey; +/* At what commit number does option_static_remotekey apply? */ +static u64 static_remotekey_start[NUM_SIDES]; /* Does option_anchor_outputs apply to this commitment tx? */ static bool option_anchor_outputs; @@ -2615,7 +2615,7 @@ static void handle_our_unilateral(const struct tx_parts *tx, if (!derive_keyset(&local_per_commitment_point, &basepoints[LOCAL], &basepoints[REMOTE], - option_static_remotekey, + commit_num >= static_remotekey_start[LOCAL], ks)) status_failed(STATUS_FAIL_INTERNAL_ERROR, "Deriving keyset for %"PRIu64, commit_num); @@ -3050,7 +3050,7 @@ static void handle_their_cheat(const struct tx_parts *tx, if (!derive_keyset(remote_per_commitment_point, &basepoints[REMOTE], &basepoints[LOCAL], - option_static_remotekey, + commit_num >= static_remotekey_start[REMOTE], ks)) status_failed(STATUS_FAIL_INTERNAL_ERROR, "Deriving keyset for %"PRIu64, commit_num); @@ -3063,7 +3063,7 @@ static void handle_their_cheat(const struct tx_parts *tx, " other_payment_key: %s" " self_htlc_key: %s" " other_htlc_key: %s" - " (option_static_remotekey = %i)", + " (static_remotekey = %"PRIu64"/%"PRIu64")", commit_num, type_to_string(tmpctx, struct pubkey, &keyset->self_revocation_key), @@ -3077,7 +3077,8 @@ static void handle_their_cheat(const struct tx_parts *tx, &keyset->self_htlc_key), type_to_string(tmpctx, struct pubkey, &keyset->other_htlc_key), - option_static_remotekey); + static_remotekey_start[LOCAL], + static_remotekey_start[REMOTE]); remote_wscript = to_self_wscript(tmpctx, to_self_delay[REMOTE], keyset); @@ -3154,7 +3155,7 @@ static void handle_their_cheat(const struct tx_parts *tx, tx_blockheight, script[LOCAL], remote_per_commitment_point, - option_static_remotekey); + commit_num >= static_remotekey_start[REMOTE]); script[LOCAL] = NULL; add_amt(&total_outs, amt); continue; @@ -3334,7 +3335,7 @@ static void handle_their_unilateral(const struct tx_parts *tx, if (!derive_keyset(remote_per_commitment_point, &basepoints[REMOTE], &basepoints[LOCAL], - option_static_remotekey, + commit_num >= static_remotekey_start[REMOTE], ks)) status_failed(STATUS_FAIL_INTERNAL_ERROR, "Deriving keyset for %"PRIu64, commit_num); @@ -3434,7 +3435,7 @@ static void handle_their_unilateral(const struct tx_parts *tx, tx_blockheight, script[LOCAL], remote_per_commitment_point, - option_static_remotekey); + commit_num >= static_remotekey_start[REMOTE]); script[LOCAL] = NULL; add_amt(&our_outs, amt); continue; @@ -3775,7 +3776,8 @@ int main(int argc, char *argv[]) &possible_remote_per_commitment_point, &funding_pubkey[LOCAL], &funding_pubkey[REMOTE], - &option_static_remotekey, + &static_remotekey_start[LOCAL], + &static_remotekey_start[REMOTE], &option_anchor_outputs, &open_is_replay, &min_relay_feerate)) { diff --git a/onchaind/onchaind_wire.csv b/onchaind/onchaind_wire.csv index d0e88eef2889..926ffb3924de 100644 --- a/onchaind/onchaind_wire.csv +++ b/onchaind/onchaind_wire.csv @@ -46,7 +46,8 @@ msgdata,onchaind_init,max_possible_feerate,u32, msgdata,onchaind_init,possible_remote_per_commit_point,?pubkey, msgdata,onchaind_init,local_funding_pubkey,pubkey, msgdata,onchaind_init,remote_funding_pubkey,pubkey, -msgdata,onchaind_init,option_static_remotekey,bool, +msgdata,onchaind_init,local_static_remotekey_start,u64, +msgdata,onchaind_init,remote_static_remotekey_start,u64, msgdata,onchaind_init,option_anchor_outputs,bool, msgdata,onchaind_init,is_replay,bool, # We need this for BIP125 rule 4 diff --git a/onchaind/onchaind_wiregen.c b/onchaind/onchaind_wiregen.c index 27797ad01bc7..381c0376cdd6 100644 --- a/onchaind/onchaind_wiregen.c +++ b/onchaind/onchaind_wiregen.c @@ -76,7 +76,7 @@ bool onchaind_wire_is_defined(u16 type) /* WIRE: ONCHAIND_INIT */ /* Begin! Here's the onchain tx which spends funding tx */ -u8 *towire_onchaind_init(const tal_t *ctx, const struct shachain *shachain, const struct chainparams *chainparams, struct amount_sat funding_amount_satoshi, struct amount_msat our_msat, const struct pubkey *old_remote_per_commitment_point, const struct pubkey *remote_per_commitment_point, u32 local_to_self_delay, u32 remote_to_self_delay, u32 delayed_to_us_feerate, u32 htlc_feerate, u32 penalty_feerate, struct amount_sat local_dust_limit_satoshi, const struct bitcoin_txid *our_broadcast_txid, const u8 *local_scriptpubkey, const u8 *remote_scriptpubkey, const struct pubkey *ourwallet_pubkey, enum side opener, const struct basepoints *local_basepoints, const struct basepoints *remote_basepoints, const struct tx_parts *tx_parts, u32 locktime, u32 tx_blockheight, u32 reasonable_depth, const struct bitcoin_signature *htlc_signature, u64 num_htlcs, u32 min_possible_feerate, u32 max_possible_feerate, const struct pubkey *possible_remote_per_commit_point, const struct pubkey *local_funding_pubkey, const struct pubkey *remote_funding_pubkey, bool option_static_remotekey, bool option_anchor_outputs, bool is_replay, u32 min_relay_feerate) +u8 *towire_onchaind_init(const tal_t *ctx, const struct shachain *shachain, const struct chainparams *chainparams, struct amount_sat funding_amount_satoshi, struct amount_msat our_msat, const struct pubkey *old_remote_per_commitment_point, const struct pubkey *remote_per_commitment_point, u32 local_to_self_delay, u32 remote_to_self_delay, u32 delayed_to_us_feerate, u32 htlc_feerate, u32 penalty_feerate, struct amount_sat local_dust_limit_satoshi, const struct bitcoin_txid *our_broadcast_txid, const u8 *local_scriptpubkey, const u8 *remote_scriptpubkey, const struct pubkey *ourwallet_pubkey, enum side opener, const struct basepoints *local_basepoints, const struct basepoints *remote_basepoints, const struct tx_parts *tx_parts, u32 locktime, u32 tx_blockheight, u32 reasonable_depth, const struct bitcoin_signature *htlc_signature, u64 num_htlcs, u32 min_possible_feerate, u32 max_possible_feerate, const struct pubkey *possible_remote_per_commit_point, const struct pubkey *local_funding_pubkey, const struct pubkey *remote_funding_pubkey, u64 local_static_remotekey_start, u64 remote_static_remotekey_start, bool option_anchor_outputs, bool is_replay, u32 min_relay_feerate) { u16 local_scriptpubkey_len = tal_count(local_scriptpubkey); u16 remote_scriptpubkey_len = tal_count(remote_scriptpubkey); @@ -130,7 +130,8 @@ u8 *towire_onchaind_init(const tal_t *ctx, const struct shachain *shachain, cons } towire_pubkey(&p, local_funding_pubkey); towire_pubkey(&p, remote_funding_pubkey); - towire_bool(&p, option_static_remotekey); + towire_u64(&p, local_static_remotekey_start); + towire_u64(&p, remote_static_remotekey_start); towire_bool(&p, option_anchor_outputs); towire_bool(&p, is_replay); /* We need this for BIP125 rule 4 */ @@ -138,7 +139,7 @@ u8 *towire_onchaind_init(const tal_t *ctx, const struct shachain *shachain, cons return memcheck(p, tal_count(p)); } -bool fromwire_onchaind_init(const tal_t *ctx, const void *p, struct shachain *shachain, const struct chainparams **chainparams, struct amount_sat *funding_amount_satoshi, struct amount_msat *our_msat, struct pubkey *old_remote_per_commitment_point, struct pubkey *remote_per_commitment_point, u32 *local_to_self_delay, u32 *remote_to_self_delay, u32 *delayed_to_us_feerate, u32 *htlc_feerate, u32 *penalty_feerate, struct amount_sat *local_dust_limit_satoshi, struct bitcoin_txid *our_broadcast_txid, u8 **local_scriptpubkey, u8 **remote_scriptpubkey, struct pubkey *ourwallet_pubkey, enum side *opener, struct basepoints *local_basepoints, struct basepoints *remote_basepoints, struct tx_parts **tx_parts, u32 *locktime, u32 *tx_blockheight, u32 *reasonable_depth, struct bitcoin_signature **htlc_signature, u64 *num_htlcs, u32 *min_possible_feerate, u32 *max_possible_feerate, struct pubkey **possible_remote_per_commit_point, struct pubkey *local_funding_pubkey, struct pubkey *remote_funding_pubkey, bool *option_static_remotekey, bool *option_anchor_outputs, bool *is_replay, u32 *min_relay_feerate) +bool fromwire_onchaind_init(const tal_t *ctx, const void *p, struct shachain *shachain, const struct chainparams **chainparams, struct amount_sat *funding_amount_satoshi, struct amount_msat *our_msat, struct pubkey *old_remote_per_commitment_point, struct pubkey *remote_per_commitment_point, u32 *local_to_self_delay, u32 *remote_to_self_delay, u32 *delayed_to_us_feerate, u32 *htlc_feerate, u32 *penalty_feerate, struct amount_sat *local_dust_limit_satoshi, struct bitcoin_txid *our_broadcast_txid, u8 **local_scriptpubkey, u8 **remote_scriptpubkey, struct pubkey *ourwallet_pubkey, enum side *opener, struct basepoints *local_basepoints, struct basepoints *remote_basepoints, struct tx_parts **tx_parts, u32 *locktime, u32 *tx_blockheight, u32 *reasonable_depth, struct bitcoin_signature **htlc_signature, u64 *num_htlcs, u32 *min_possible_feerate, u32 *max_possible_feerate, struct pubkey **possible_remote_per_commit_point, struct pubkey *local_funding_pubkey, struct pubkey *remote_funding_pubkey, u64 *local_static_remotekey_start, u64 *remote_static_remotekey_start, bool *option_anchor_outputs, bool *is_replay, u32 *min_relay_feerate) { u16 local_scriptpubkey_len; u16 remote_scriptpubkey_len; @@ -201,7 +202,8 @@ bool fromwire_onchaind_init(const tal_t *ctx, const void *p, struct shachain *sh } fromwire_pubkey(&cursor, &plen, local_funding_pubkey); fromwire_pubkey(&cursor, &plen, remote_funding_pubkey); - *option_static_remotekey = fromwire_bool(&cursor, &plen); + *local_static_remotekey_start = fromwire_u64(&cursor, &plen); + *remote_static_remotekey_start = fromwire_u64(&cursor, &plen); *option_anchor_outputs = fromwire_bool(&cursor, &plen); *is_replay = fromwire_bool(&cursor, &plen); /* We need this for BIP125 rule 4 */ @@ -635,4 +637,4 @@ bool fromwire_onchaind_notify_coin_mvt(const void *p, struct chain_coin_mvt *mvt fromwire_chain_coin_mvt(&cursor, &plen, mvt); return cursor != NULL; } -// SHA256STAMP:6884d8c13750d6bb08de384fe35050309f8f66037662671c2aad2eaa16f47463 +// SHA256STAMP:66e19538be7f5a9e9076bfe995a9bf0cbb5d303df8f6c383e427c11ef2e85e2e diff --git a/onchaind/onchaind_wiregen.h b/onchaind/onchaind_wiregen.h index 4d53b35f31ea..48692bae739b 100644 --- a/onchaind/onchaind_wiregen.h +++ b/onchaind/onchaind_wiregen.h @@ -69,8 +69,8 @@ bool onchaind_wire_is_defined(u16 type); /* WIRE: ONCHAIND_INIT */ /* Begin! Here's the onchain tx which spends funding tx */ -u8 *towire_onchaind_init(const tal_t *ctx, const struct shachain *shachain, const struct chainparams *chainparams, struct amount_sat funding_amount_satoshi, struct amount_msat our_msat, const struct pubkey *old_remote_per_commitment_point, const struct pubkey *remote_per_commitment_point, u32 local_to_self_delay, u32 remote_to_self_delay, u32 delayed_to_us_feerate, u32 htlc_feerate, u32 penalty_feerate, struct amount_sat local_dust_limit_satoshi, const struct bitcoin_txid *our_broadcast_txid, const u8 *local_scriptpubkey, const u8 *remote_scriptpubkey, const struct pubkey *ourwallet_pubkey, enum side opener, const struct basepoints *local_basepoints, const struct basepoints *remote_basepoints, const struct tx_parts *tx_parts, u32 locktime, u32 tx_blockheight, u32 reasonable_depth, const struct bitcoin_signature *htlc_signature, u64 num_htlcs, u32 min_possible_feerate, u32 max_possible_feerate, const struct pubkey *possible_remote_per_commit_point, const struct pubkey *local_funding_pubkey, const struct pubkey *remote_funding_pubkey, bool option_static_remotekey, bool option_anchor_outputs, bool is_replay, u32 min_relay_feerate); -bool fromwire_onchaind_init(const tal_t *ctx, const void *p, struct shachain *shachain, const struct chainparams **chainparams, struct amount_sat *funding_amount_satoshi, struct amount_msat *our_msat, struct pubkey *old_remote_per_commitment_point, struct pubkey *remote_per_commitment_point, u32 *local_to_self_delay, u32 *remote_to_self_delay, u32 *delayed_to_us_feerate, u32 *htlc_feerate, u32 *penalty_feerate, struct amount_sat *local_dust_limit_satoshi, struct bitcoin_txid *our_broadcast_txid, u8 **local_scriptpubkey, u8 **remote_scriptpubkey, struct pubkey *ourwallet_pubkey, enum side *opener, struct basepoints *local_basepoints, struct basepoints *remote_basepoints, struct tx_parts **tx_parts, u32 *locktime, u32 *tx_blockheight, u32 *reasonable_depth, struct bitcoin_signature **htlc_signature, u64 *num_htlcs, u32 *min_possible_feerate, u32 *max_possible_feerate, struct pubkey **possible_remote_per_commit_point, struct pubkey *local_funding_pubkey, struct pubkey *remote_funding_pubkey, bool *option_static_remotekey, bool *option_anchor_outputs, bool *is_replay, u32 *min_relay_feerate); +u8 *towire_onchaind_init(const tal_t *ctx, const struct shachain *shachain, const struct chainparams *chainparams, struct amount_sat funding_amount_satoshi, struct amount_msat our_msat, const struct pubkey *old_remote_per_commitment_point, const struct pubkey *remote_per_commitment_point, u32 local_to_self_delay, u32 remote_to_self_delay, u32 delayed_to_us_feerate, u32 htlc_feerate, u32 penalty_feerate, struct amount_sat local_dust_limit_satoshi, const struct bitcoin_txid *our_broadcast_txid, const u8 *local_scriptpubkey, const u8 *remote_scriptpubkey, const struct pubkey *ourwallet_pubkey, enum side opener, const struct basepoints *local_basepoints, const struct basepoints *remote_basepoints, const struct tx_parts *tx_parts, u32 locktime, u32 tx_blockheight, u32 reasonable_depth, const struct bitcoin_signature *htlc_signature, u64 num_htlcs, u32 min_possible_feerate, u32 max_possible_feerate, const struct pubkey *possible_remote_per_commit_point, const struct pubkey *local_funding_pubkey, const struct pubkey *remote_funding_pubkey, u64 local_static_remotekey_start, u64 remote_static_remotekey_start, bool option_anchor_outputs, bool is_replay, u32 min_relay_feerate); +bool fromwire_onchaind_init(const tal_t *ctx, const void *p, struct shachain *shachain, const struct chainparams **chainparams, struct amount_sat *funding_amount_satoshi, struct amount_msat *our_msat, struct pubkey *old_remote_per_commitment_point, struct pubkey *remote_per_commitment_point, u32 *local_to_self_delay, u32 *remote_to_self_delay, u32 *delayed_to_us_feerate, u32 *htlc_feerate, u32 *penalty_feerate, struct amount_sat *local_dust_limit_satoshi, struct bitcoin_txid *our_broadcast_txid, u8 **local_scriptpubkey, u8 **remote_scriptpubkey, struct pubkey *ourwallet_pubkey, enum side *opener, struct basepoints *local_basepoints, struct basepoints *remote_basepoints, struct tx_parts **tx_parts, u32 *locktime, u32 *tx_blockheight, u32 *reasonable_depth, struct bitcoin_signature **htlc_signature, u64 *num_htlcs, u32 *min_possible_feerate, u32 *max_possible_feerate, struct pubkey **possible_remote_per_commit_point, struct pubkey *local_funding_pubkey, struct pubkey *remote_funding_pubkey, u64 *local_static_remotekey_start, u64 *remote_static_remotekey_start, bool *option_anchor_outputs, bool *is_replay, u32 *min_relay_feerate); /* WIRE: ONCHAIND_HTLC */ /* This is all the HTLCs: one per message */ @@ -161,4 +161,4 @@ bool fromwire_onchaind_notify_coin_mvt(const void *p, struct chain_coin_mvt *mvt #endif /* LIGHTNING_ONCHAIND_ONCHAIND_WIREGEN_H */ -// SHA256STAMP:6884d8c13750d6bb08de384fe35050309f8f66037662671c2aad2eaa16f47463 +// SHA256STAMP:66e19538be7f5a9e9076bfe995a9bf0cbb5d303df8f6c383e427c11ef2e85e2e diff --git a/onchaind/test/onchainstress-data.gz b/onchaind/test/onchainstress-data.gz index fa43fb21a13ec2194885a59fc4ad988ef6f2a7db..cdf57c1a1b2544b0975613a4b6719a1aa089cba4 100644 GIT binary patch literal 26866 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 Qq49J!E)LKY_R7xsKVfNBVE_OC literal 25268 zcmZtt2RPf`8^?{?ZOt0B301U4L)Bi@YE`wgv_@@e)uwhN)ZR)`)clCsm%P46vClSqx(04H(5K5dgBaol%FGULwqVM+_iu{IXxt>;dFZb z<0@&vkNEYW)5;Jew0w7SDpQlFf&UF_9hE3866+5raj9_g``d0@a_0Xl6g`%baZCD> zbV%}SOQjFC+saJM*KgQz2$TK@^GAQw%tXLW4N>ca3@$9rmXbI38G0%=@vaZFQrdV8 zD{q`8TCx|>9M^2S%iQd{N*`(T7U<)|`;`>^9 z%dz*Va!N+OAVEsqWUyl7&1lcu)O3g@;b(Cihv!7^cc?-U&arlDQ|wm2y^~p0gG0OV zckbMf)Nym^1>zC()5o(88Gh+DYiU0>BjjFy$G&3DjzmG`LYs-6W$cpS(+vMdOqvAS z%A!BBu#q;!X0*~?wKvOX%lhb?2W4udS?kJfo0+?0e!z^r(G+1kx2T|&5g}SFW^g0Q z!7z{N)j_X&SzRK`x0e-s#TcQT^U{TT_)X6~Zbe+pdv_;MbMIzhOHg3E^U=KFm^ZVn zRmkCcEAa$qhMazYaMvbF$hZ2Lp;S4iQop0R_{G+g#aW+QQ{{-+iW}J4Mr9YIe@#fQ zXLF1c!ME+!vC+=TeNOX$x3K%(FIM^24Ew%6x+y`sl&tgtgxVT)XPml=0Gz=-^=Axp zh3C62exgN}!@eKBZG86{vAwztONA#)uU$8fpW)#cI`4*jNDOew<=(7#gi8xteLJIM zWr_Pxo&y=Y5&vP+H9bB^>`umcR^k46Yuja<>7#G4#VPVB!IDuFKwz)a*SNd$sL#o( z{y(SuO$!{J_xLMk9&D^Gy1x6$lz6r#tlZzFcvk4qF@Wx1mqsQ7v& z`}1=%rQbHW02H60`-?s?o@*bmY#{b0G@6UnEFdJ}zR9gZ#o=6#aZ&yipV7h>opv|y z!Y>Rgvkcp6zN}^$HCraEuQ!S^8Ad=);cu;;8$+jj_SeNqo96vvRijmc!c5#x4EoFE zWffYq=jj1roBhvk)*kx|=I9K7vt7)}LPQ1XSpm~kNnZ-CZy2}+tA06r?e6wM@wp=p z7v1kP#5DS)VTP6Oj~`DaY^qaS=DOupe7OdZ=xnaJ~%lvnRED^LKvCxm+NUWC>bs$VNW9Ip4agp2!YONQfZk<*_)PMhB? z{h@oAgRZiFqs!1=^ZGR#f0o|*!RP91;)wK{ zUWV7qK7ht-ZqwA6Yz^6pw%8Ot9(eZs(FRqNu7=x7G@r#&g|yZLn1YJAh;tR?+H2kT zyluC`i2grW4xAh}`QwXjmY3l@wIR#+H(hi;AJF8<-xyo}P{Z!m)LPAZBUW|UZLRS} zY{mq!`h7PWsay|QR25?U8D4xj)Z}A@Vdyp57vfJd1g=F5eq1uqSi0+F5jJ|3w3eQ9 zR($NX!WUr0)_3^kVSLZ+f$>s;V=S+_LE66jWf;>crKJAvkaXiIqI&pT8_SNy50jg= ztCU9LZ%rOPxg`i#G`;8k;fea|+VQ`Lj|p@)hAVzMD#OiU%uB{OlD_qRaZar#jDt~8 zAvz?5u_$gjb;IS$(l09ld42Q5{s10lF@+`3x%^t1H0Gurz484K6_23Cce)SRZ=R(- zam0W@X^-2UMZUaxQAqGVr|A9uL+D3NmxPKC-J`IpmM(1BwX;^2*&j9@PWqUsNr(JV zAK2C!$JV84Fm3MSJ>Q?@MBT?R^Jt}AEBJV*C9T)ma)k6{Z;D_WbtLg-Xl>vF=2y9a9z4-+vgN%k-&Z{>xayI=x;z@d2XyK@mQT)}6+iYQMPjI|!LuRk)}j7y zZ?I7Di9F5wd&8aH(!}I~A*aIhitv*t$T;L!9n=fJ1upG9&wgSXvJ*A`tW#lH;n6Ma z!N_twyhJo-QmcDe;WZMln5aoI_G86FdV_EX~m7_z?{G6^K4n|!^R zd23+d!Ik<9Z(#|WSI^TDlp0`tQ)|Ew&t+ExXhyl8cr60*wR-&WjmXq;^PvH`zl%)` zSz+)QO$GI)q=w4Nu5{PlRlZy6qPSdtzS9%8=>ZDg=dn)kHa@(v*7G+si)GL8MuNZ} z)+bO(Hzvn#o`+C^Ogr_mc#o;$9f>=V-Cac~LT2;@(oa!}^`sNBe`7iNJ#-<#CL)XG*ZWWIpKf+5h-B^`H)bz(n@n|EO@@liHbpUpnQ~{3 zIeSqA|4z=n`}X+e=Kh-XsOK`?H=i*?)Wk7kA!~`=pKGK68gboEwg~KW2l32KC_l#(NgOR<0`weQAY>H&RI5N>NoCHQ1~F_v(|-yIsAGdF$A zJHFeL9$#2!6M7|od+kE@Z|<4m;QKijq-sN;z@$OjP3mNmV0?0SxzYqjXq;!FQ`_b{ zTZvA{^&+2hH^vwBISf}EY4U`Mw1_^$iF~Zf{>Q)X?zm`KHW&DLir;K~_DQ=~<>WW( zlh>7)U2*7W0>uF_! zB$DLbF!c3jTOZn>&HMMFaHnpj@MBOGhp6uC`9?X@MQh1E&P0vad9te6gU+%)t5Rhu z=W1Oywp)#=V8)6)q4Y*tZE4p0sW_x!I9O_})|U;C9y<@a-BwKL>oTnraKO8 zMyve`4(}|5Cr{kQA3@D8NBKx$TQ*1ImS8j?9}Ert@%Q9F{n*8&e(b^XOB)RG?kCwz zm{j~N(cZJxkxu*KwmuV5%}Mv^`JQetBTRiF$W?H-+ojLNLxpkk=IAtncT-*ia$Z^b zr@VwOE`22~l93I1BvxIbst@59@oWDL#BBf^65Sno)a8`z*YjKs7NduMx&rs9+1-3K zq+Akhx#y^%)4H5D`^egQDMS!B4Crf|&6*sH(hGS|Gi@ejv>z`?8QEZJDc=fFBylo) zMVDDVDUZ#ZTZz4YwWvDfPTuZIRK^=36>?lq*(b#$sN;{|7nG~3V9ez z4EzAWOM@gevAt3+gig2D4N+l>Pl~@z+hlCZu1bwav>kb_lewhvMJoQ!8@`A+32*SU z@LGe$s3hTU@RXy}2yz&X6>LA;$qZO;<^3t`BC@~bF7|`!2q3rOUe_=>V87VjF$Kke zxuGUL`&R4O!c5onMJP=^=!y(1Sw)3QkyIK(R^~blSVBxXUW(U>8}!jF->cI$M;C18 z2OHdOBg4pV3_V;8 zQu`SNzztT!#*ddmr38Ko^0+Q+J?IB%Pa}DD?}vU>xU*;Xl3~ooU(fks zI?XCW;`MVYR4dA5{~0JHh=J*e+-zc5nn6|r4P`OvsFikd^u@co=$v&$f{7?j8)P8h zUHMszBQp4^mRixOlRFLSlt3OFtI|G+Uze>f)5r*Xn)Yuok-rTcU^!-=f52Eaq7^+I}q~4b5GxY`0T{}bcOEf z-sfFor{7yzECUc;@%D{MLgQ+lwRVE!T`21-hlQps=%kc4f=#jKkIH@isC4Vx$}bvw zw6^U z{Cd`?Egrgaw?6m|HSU+RoKkP~-5bjs$Y;o&n2QJ99O-XjjcA5i;xBPeJGXMeAE2J4 z%pcRX6EoFEylLObzh}!NrGXb4hP-s>oG&JI;uES!PP>CX3$xx!8F!!O*YQ7_C$Y5* z0$DbSLc=1A4_Rpxr)ub!U$MmmVCN+LKivpb(7;L*{5H&Wa&fz7(#q8rJ%J>moR5eB z2x=pQxLG*2=QVEQi@#e68l-Szlgq<#I3I9Kb@;)8>9y|ZWp71OMX0Rg1MT{uRcilJ zb@*f}z*Fv4R2-X#)VDjf2l5+1;aZ8Hn%?5^Th{v+(kNn1Qmj=9B_}B|T%URO-Of*T zje;=GJ5;%pX6GSbtg9NMkgQ$x$Y633P?o8fUg;y-o6w_t--^m(qN{Za%SWqI+)o)W zD9;797xe)U_EP3fx!dn$k6{$qH&%Xe?IIhJ{+SUlmmUz>Av>(C1Wg@gV`a0h-j;2>^2$1by7Q0BPOae6yE@^b zJ5KTk?ibxF`}lDzI%f;s--hcvBc%J8fU zqHLke?o9k0ofVtcwCh0uRh>T>aqn3Zz2>%U!5S6@k48#lzsc3T6qj12l)fZJpHpp` zrtp%-kTkAg&O4MM?&>ZkXY;mHK8d@rbeSVeZfS|@rqt8rZo;FJlU_pwHNLX9i8}8o zH|WxT(q&xv!dy#>x9ccAD~1%fVoJ_PqqnGxyx%cg5Jin>ZZUB17-40PX)94>nm zu4xx@LU=RK_60iH_q={S?^ef=(;X?nl|*U{5a=0uAJr^@-8$#9` zC6c^@yd0$`FDp(uy&rntsdoVAcJ4s;74IyA)HO2&?QPdRSLK9h>}{KvQUOktPhWju zBr@Ch0MS$X>*%w>MBTUdLfL-yrD20q|6IP6&&8t}J!*P^#9~iG?+_0!Ivj7fE=vZ4 zAL6JvM$DgHJ$!+l*AX`%m{S?rymr`XdVVm}fI&aN< zHE3VfMsm{2xkC^LKJFQDS+7)3>V_l5!Aiodsrs%NuD;;_v4)FD=$FD+_UzoQI?*&3cNG&M;cHd4%WY$zW=K%asN3jYnubEzBz2wjRuf~1 z>4eR$;`_N^1cJIDjf6NO@F0*n99Ki)X19KivQPRbqZvXTTh(q>A#p^>#e9n8b+aW0@yg1C z^$$k3@x#f@wPQ3iuQQ2YO+_rFWJl?eQ(WWTL2}v>ML@K9*9_IGn!|`2N}p`tn5Li$ z6Pwp9(o0*hOsE`n?m6SA+=)o|L1@=h6Y}JNqx>0Vmw~E zSoHwUL3Nt5p|vOVizE9=gdf53@C|IiJrnZuICa>~#QL6y`qlm9J7BTz(s@+hS+{bz z>!sUCmFXyrS^zP_$;%#^8_;Owi>s@s))GfqI3R4FQisETWCgW(`AAYdjF>ty6vQD? z8i6N>90CP@n~6vFjUNP@q)hQad`Wj7Mpq~*drz=8z2H+yZEP3v?(p`bL;}pu ztE^5I3wQ!OpMI5er4d7{c9mg2e13~KLNKMjn{@`F#q&%IzjGR>j=4!>r#kO+Jlsr2 zPUBDKKN2QcVifBvaw`oK%QMlKPs|~rKtX*vcOFv6R(!~p8(!CI3alojLTVd$H*B^x zr@I3?nSK!VK=4s}iyWP&R+^5sJPC{8=_gby$oYXUGL>pV16R7M2ReCyQ>~_2w=zCV zEvpil?`b&zm-4^yS+FC$9>q|ol}%k?bh~C$W9CSK{B+O6LF5D4S^4SOYnUpFr}gWWbS?nk&tZ-lK5$Je4lzH8Q!cqr7cha3Q%r6D{0MaGykhL<&q0lA6b(L_Y(#FK_luy#Sx444Zd-e7Z*GF#EamN zrn-~SrGUi?C(e&^RCAx~D^{xtWliZ`e)%K8XIxSlgUKdEZ5uEuCWX;7cb=Q8;_GOl zrscIhZktLqwBYxT&jTxRDFa#j^Hzb29u;lsEltI_>YV(6yMKI8-(am?v?5RJws z#{F!re)C63^y?i8kM~UalT@GRvOHd=tX~RB2DfdG=H5mF@$Ef)qr_w15&&4Ob({qb z5xKA=aATfmwy%25&%kXwNPW8mXg8nfQc@df#T>;1PLz9qZYNnwnB-tZ9wC<&y-4Z-{axD>?K*&y4GU$)wS`Z$*@IGPbJ?f-TISFHdIu z$u(W|3IBe4A)^Uk(K+;u=qKR2KB}s<&l5VO0s;rJyGDXtSkiz1e6g5da!<^@Y z;*RUqa|rlgXjY;R%_XkMen+JknY+xI9~6A*huKb2vlXC|+owks0T&ytuuwFjwA%zb zKNA7~^udxC-m$!@FhS}|7cq(=lL5xJ}2!VLusZD zEV|~~%i#H`AxlFum(9nt*UT9lulY3LIk&%1XD_~qG*7}%0!{;KduuwPWW^E_B#rHM zEw$`~AD9k3zQ)!v>xLTzl=HHrn|>AKkLIOG&aX~co9MO`Ne>su!vBIRU(}d7{#fm* zA>>?Xp;~Zqja}e2AL(OCIF}PVed>1zn-yq3Ja4_d3r%q{MKNpQ&%Io&7N^dRZ*OpA zM^!OD+~wK0{IqI6&eK-C@~+R^)vkjvV)+Pyv&=7h_^43X^k-YnBZIfDjfVMJYS7aU zwI>V|?~=|3JiuieqRvz}<_{OU<1 zUEsJ@2`}F>7(cM^=g!t0@BG3~Gd4Bn*_XPzvBwfl_jR>%PYaEfa`rDOl`a@t-xOC1 z(=F)#h$$DPaBxhoS4n&}?V2Mu8mKI&=C111{lcNX;f_TxhqU4MhYBBL*R%VGN4Y!u z&;S8e)1Z#;PR4>M4&9zqI^A=-AB7_+=xdxHzf-pML~v^aYoAkaqbhNk;qDGNh6SWv zpnm)8TlY!G;<6+(rFJSu^YDx^1bL=str-Fx!m|N^{xOP0>1czG*eHmRQ>8u(izc?S z`#_>%E(q98E((#yTQy%dBQ2#Lj#6^F4db8nJ>svaY3EPD0KctEb!M2|s9o=jW~~Cs z+j}BhT9}c-fE}o2icgFIfiP6kz?aY<^IPKCDeiB5chvpdEVHp$i?fc`g#jnM=rmG1 zR_8z<4D-8z{*!A|lC~ogExNnH$jj?DYDB8?Tpwak`TJGW&%&-`9i`_VW@PoAKm10W zoi1S{cG7x6klVZXphV4t^m2fP-ecQVo1ZrF!=3F6;dKK@j8l*`NNp{opZppCBJ8F? zHJD;-Nsey#=^qa-3Yp3dAiAoIv-N3vEnJ*(0xuAJ|ZCF(p~PyS_>Xrqxs{cLpm95-VSQ>b~h_`hhVW#x4C}k~gW4 zUaXbhuRb7fZ1u4H*NmoQ0C65|Z@xQxYWD~b_+D#9hFNlAKodl#;9bp=*N}-FFWce2 zChiuO?aXw68ZYph6fF~!{is|+=v>5~yZZBx4(k`eXwCTA6FS~lO0CMJ8#9YxBT-aE zE)mBZZ|%gJL%YU<3DmJ8s*odjcyH>b!iY5iAx<|Z6&rkWf_sYna6-a!tauO(P5y9b zDfn|9aQmLjz3RbE1;L$&hBBq@2|WmxC&Q_889!6u%PkOQWK3Hb!Av##U7*WoeOB zr}i|UCKFZ7EZqQgU{Ptk3>lE&hS%QNYhQ@QFJxRTm1=VTE*^ z@b(Fs??arGX7O!ZmzGF20y5H4W-&Q5conaOpl1!#eOy(YBKm8HVsKeN6GlRWvFwf4 zdk%(HH*L;upQ$Y5uo4T#^e&YbK5D6d+e&Xd2JQpS_vF{aqzK=>O556RJnR-haw%GU zy_#{&%z|T3rIx3a@mR1?yCooeW8}qFcc`|d2W-@$aG35}Rlmbs0VOB8PY;so#iDio zcGjG;pdKm;J{@>GG#$lkOv&j$om|7r!c4#Oz$imm{`;8(L^%3NAnVMt3Ws#6-%f5m zT(;E)qE~N4p*dpji#wUSLhUo{b3XSO&g@u-5~;(3EEU z6qOy8tl+BAvKGO;Bm=a%04YQ=UoH^U*z4iQ|*PE!7}lE@gRQ;qf)Xe>_hg&!>G(R zo+c=vhxe&J(j-tFvq)1d@HcS8SZ$Y{gmDW?cWvEv(>CHvq-ag3jeR$w{{CTiac#-x ztASxsp~VJ)k`ugk~6vX#Y%%ZK-- ztF_)y%#N4h^SIH`4lb~I7OB1tswdTltSlavtDrEzR~n^EK<-v)cZvMxGpZJ-WRY}GrU^!)Oyyk^iv@|^ zxDeiTsltjbd3O{LM0kc7g^FuhwH$eZVIVZpqD^BuMiufh8~#RQkndvUJhS)Z{=v{x z(1t+n1#cz6QZ4JeQ1cL#qzc)bJ4tn1I8`)Zp}?2iz2y=uU-n0g<)Sk)7Nrz{^>5^-kPfUyjVf6D%_ZoX+z0lhSoL9MyZ2d<~RaL#qldLyc zwgs52*Me;-j8hwyN0xF^YQ{Ex$uLQUCINaU5V2^L@AD$U%g`PMC<3OgEZx55~{Z)w)!6C4yo^)NS&DU5bBz+9STc>LjcZ z(q)niyysbYFq^3cRVA6j+G_M5n+M^Ms-U%V%)_{V(<4{dyO_$qXNsRoTk&FOr1svy z_YmvYvN3Q(B@FghU{KJeZ*S=L!dowYCFpIsyt3&hhCg48cN66yfuc$ z^Ucpk>g3)W%qTxw2bPDj)11;omNXxTdR$%_S6(uey`^|B{Ep1f;>91pZq(bLj%TKI z(l%j18aUNQrNi|LOTn>&Mh1acfIrcFD^uoMn(US4j0ZYEoVsi&^&?(>RR3iRE#kXK zo+wu92ETwn=Z} z8|}O67RUsm-0=fTpDVL7&;j+xy8FYvT6I_gqT0^x?pL|G$GONpku&~#o5IbkP4x2~ zQcVpE7W{8A(0e*XVnNH}j(sA3UOjj&bs}_EI~H;W01l-p5~yQ)oKf7pwzY2#|ZKOC2_8I<;lzBnY%M)Ob@7Sd`aO$ zUIf{VIoQV0dyT1akHy)1{{|R8wX8T098x+L&}?X|EB-{22m7&Xxh?$k!XMOBS+vG^ zVXk-Dk+NGJQOQcAs!P=EW`lP0XO4hAt6is39h@e*w+UB7_1ItGqLF)^Cp6U=sqp!i zo6Wli(LK3@9)q)Fq4N>FyO*zRm8ELOc{1D4Tm{%Eq)Bb4;=W+{NTQCj=U4m^!lght zR2IWiW(-3dVP4nsl_JqtklX(EvVhvkkAcA_2fePRP2xv!R*3=^_mg9fQ6RIp{YKw0 z#tn4jv?61lZtC0d2VPocUC`4;(D%1^&j<4pYM`a@cqbIv-bf$QyiB_Vpw_$>sIGxS zV!WC@hI%<3xKT?cD&LH?>wF{d!ooIie60U0(=5I1b_TwKx4gsjgO1=F<;Kat%lGM! zS#IR1a&0vA%`2Fvb~$C$e9_lm)E%DTBKkakOtE(9;H!?bo<0xfG0J+#&t`-;2Lf95 zqwAw(SeNYx4G{7ML|>`>&Mx1_b4G~ib-!@JS;ke#$#+GJupG1*Olh=oeL9wc_Ucy? zt|OqcXTRDK!Uz~N>`A;Sz7d45d>EPTvi5$Or#6c3zUffTKA}d+7&N3<I;l1#O4D~Va*cE*H69tqIbvQh{gtg@Ax96y@`iI{26br6Z@HS;YdPzU#|c+h|Csq!XLBXsYOV`x zcWZlaD6_Df->X>X*I0SR*`*#DqTO|ss{Ok5$mf`(F*@6Q<_)HwgDHUw!4e4NTe{*y zBTpl3e1jO}^Nj-y+f@^x@CD5ptOMzAiU)uF5yR8O``Uqye177Wwqi7Pj@99tEO>pp z-!Ro7WNsZV^2{R+FFKEnWM>{0O7O%YzMj1wP?diSy{7-8;*znE;H5u&8PW-|#-|EU zi=fs@*=HA>BPPz2KKFfK$Qn7S*!0sX%B~4oQOn8uAJ1M`U!!qU!>wVDQejzK&UV09 z$5Df8cE5x&DE!(MD&;Y6DKS1eYQeYFZ^{{iBc<-wy+*{rzRRg3#I}uS)@m%(^5|-` z9jwc|9=Wj_77Jfn(yA1X&N7=FhU~yUaz)>nG`srK+c*1KlamdtXxW!{S0fJSU;IR# zHm`C5Xs~4=iE(^d-_;H!Zo4_>y|mmFdV3W@>H~VkGmLUcmwRZc9<&HfFV)pL#S09> zfBlqh^&~Q}#n#w)Xo_1?T*PHORNiEM^FpdDdD`yF-d9qX+Qa>O*v=3}E9;f#7Da@D>E7`QNsu2!H1Z#47; z*M8+vU5>$*sDDqcQal=U|9DYN5)wCfnq^MQt;ZQiUwZ$|Hx{$G%J3g~iLZA67*3T9 znn>9wP`r#va`QdlG3B+}iPG~!c2NWHl{1^UA^yquo2+{URll{RJl6i68LJPp+?lG) zWXca(Gn{)>;>d@(0D=PW~ULN}s5PN~hPTeYnuhq`t?%x#o*vb7qb;-~03%=+_H)YYEJl5g%nQ zFOB@VepuSYislrmOFl^weYtK9PF}9K>qc^((J!yF(kgJ$oDgome|e)>ue$n+X+6!* ziL~I|V}iwqz_`EN@gzGYg{1(V%AOruS;mR`OV#{4nWQ8*yc%s3`NNKt?K0Guzzn+t z{tbzh4BZ~~KIaBZY?%!--!nWcBF=upVLNVx-wZA)elQhO0rNzw!!}s}biPb_qB}-R>18!IkC@bzYZCo*3eT+_cUDb9w%y?#Gq_~Nefry4 zM&jS^lmd_5JMd|}uEnT0x>3vepG`y9+joY)geLv|A&w>5@GkU5-zz&&fxNmqI2VKh z5E}KPp6XI=Grr&(LTFrVmJ;TAWGhU6iv6G$vP_NDh%HqWY^p>SO0uM#C_BMrj_HQL z9p*KruNO(>45yhyIndxK5B0Wb9HX4~?IyoOR&CZ=1}^SP)kY}J-bSK*_=n-UCueU? zF~xf`#x^sT7=e$gj+x)DwPqn#%GW;wsY}Ia_O$qCz=%env@CXd%EiJk$*XY4aHidl z4(i+m?(_#EcL%r_fyjpsAzhUy9oJ8dc+ZJMod}Be5_6whRO#*lg$2W5cHzskhSS4S zee)O~8ZffbTZ}D>eLY|PWkZR&R8uS?YDY?@J3hI$?VwX3IPJ>S=Gr$D3%vUUe=n=S z>2Fe%4Uhdfct~^wTiTzCQoRz&+2R+=>wdZDtFRGeQSyvc+1m~hT-kxyv$cID`ur|{ z6Z7r17_g_SN2aCeprhmzyONTzt0^_7&dLz}m?c3)1V+<;TO*0t>7`=i)=@b;C)1&T zg_r%FP~NvTe64C*1!~>p4b_9W546$%q}6dn5`wRkxcAc@Sqn9;SznQZ_jvB;MJf?;rl>vv1IQ`+Nu)wtV;S&{ps+Uqs z9`;&R!tcDQMIHssvG8%SP~LjnS{}3BBW_1`yGQ~sz~Z4&-J|yIIItb#5+U-$)I575 zHTfmYDRZ?0IvTtM3vS5+BNsh+{X_YkpVPqj44GcebKeMiI8~;hEmaeJFXS|I}xyiaGnUu6zU0AKH_w6N5iL+l{hOysfkx`>?;6 zJLpx&^+{&xcX)q@$_%cn(Y?=DU1;Eqzhv-%ZQgjpH`sdjeCo{DT&VswGPq?9vF8uM zPJq4do@B`w>BrJCvnJ(8DMv?R@7)p`)}rab<^?@3LD3=(Tq^Bg{!y93A+&1rzh@P1 z@5-GqdbPjCXEc#;qPc%iQi_l$^5(x!q|et*t#VhB1|1L>ZJ-0|kvr=UiNn-zSH@yI z&JZh>htMDjWYX=v)>TcXLufw-N*Z&%V24lU^wh9Z6Ys;?!G!t}>|i(ghGvgd6QcK9@IpzHC31OwpCmRj3h zZlGHI{hP8?u?JT3jaa5s;29@mHlUO=Oq_jdhi{o~7jE#3?>{;DV&Pprap%e0@Xci| z$7CjxvHhf4tW5a@-(p2`Ge`gJW*R|Ib`3OLhfv72V`2Ul^gSRn;bf}0W}gK{u$Xni zbvLl1&Lm-`(pI1Sa*(uDW+BIA1&e`sw~`kjx5&qcA@Ib?5y%XN9;ogJ#|B*W`m^YP z+xBm-LmUup+u^qgLpdwscDDntYb-F~zOQyLzc?ox`<7A%2a^@ky&u4lcp)uAsEGkXH7nbJgo2>rp5og3m}`zjtX)ooe4Dn<1uMXZDwxPtf;s%gkp8*e{RIrHR1ni!rBoT z{%2&bTb1WtLy+;Mg+rtQxfKC!ByxAE2?4(#>)?+puhgu2F1S37k#_?l9k#j6PTtp$fFc-SyJH*bqIFzpPnow>|hdtDdt4EV6}xqXdKs=G>IoPwTRnO z7h4FL9lMZ$j*8|kmtHvIfk=$?9a{ZRoE`o>_r3yAep}J{(7G0tU=8y{nz}4&Yd&EF zO<%9SD62dF5mT9ejtB$^d6vyQu#=ycoy>DD-WOoYM|3F$UV^?l#h*so9&9PK#-xQT zmNYnZeXJe)Rp$4alepL#bBsXgwa1%zHe1#!(y9s)M%!J`*rqxJ4#_ds*h6Tn+|m0p z8?blaM*4(iLmX&%&*C^CaZVRHS26=1K{IYP0OK%+qPf4gZmzK*Ml=6^(~2)MFxq;M z168gHdxJ*)8#dg89(fD*8{}sPGbdu{_R~m)@_{er7jHBG6EN}I|3t!FnShDr_KZg( z*--A@At{`d>iJhHA2)db1c|I->ToQ^_U$rIVSL668F zCg_G%zTiFyiJ^u|SiiBb<>Yc=k^Xy4|1~Kz;|Pf3QC|eOt1aYAYgF#S1$%G{eemeY zV79pcKGGLLy;TqH)h<}ulRTgOHS<}jLmM%bGsxY4f;fSGCiNBU!iCr2-h3opFu4tU zFWkt5k2vSV*WoXEapYm0@#MAqSJubzuS|H6#AiqRn$kd87bRt#w}69piC7LSGI17@ zLoO%VL$&r5Y|5=kNNqxYKrG$>M3n8lP$V1h4DpxcVEfN(W6!zg!X7E>)R~OAwTNrI zIMLm6Q#+zLx!WsIuX_K9c&4E-VYhVx;!n`84*mBC4dC2&o@)i{f@a9~j-W=axquL& z>m-o4kQ3?%3Sdj|P%> zkzYl@UzpG zd{-Z{f9}ag7GCXc+X88u4j4E0^&g5%V4bCQusJNt+~Vy9&)8iuC+AKTd12BG`_8)z zp3J{}R_gE_!9x1rc33gtDAU@P+hs(CLse~r}8WusL3Z!1^z3m)>2$l;KlHk-bgGf3$stskWk7HElKK21`Ne34 zHCB|eZ0;1!x_K3D*Vm~157-1g=0I}bPMc$o|0_lhiIT3>LSFxu8_8Ld@1_tpm&UN19UJWB;n5SGyhA)Qts`qZ7zN`GsxT|2hXroTQ zQ}P)(j}O_Shg5{uiVI(NUAQOjjvY>$DhQ;9W-bLtsWwyw;+YXM7^T-RTr6h(9|WC= zWJc!% zi-A3X`iW%Lu=d~{%36(8qC zd4cy&Zb2v{PMVZO!1?}y;4U^S$ns%PvPvWa(bypOW}hB8TkmPgl5!+GJpY%iQO{%- z$>~LQ@xw|l`ak`0p=f2T$Um6@{adi~Ns?3ae@nv&J`9f?o}8QGFb)4=L|&)-&-VU_ zIN`sgq#f*fU#T5TtZ(~Yl*z(|#AF_=+u<9g+Y9Oun&czb`82;qcX=gIt9xwx%ztPNdKs>m3E}g7s2Rr09uw9G{;^fza6OB{J@0^j@?|?C2 z1yupk)n~7xgJ{=ZeHNFg?1cRwS&-)66S4S$A{oyvwP}cZC$@Sym?ayyrP+vl`+`Kk zhCUx-A7(f=uz>%GAo}hDGOdQjY*2v_mZ_h+R-K0xSKw(RMLBNQ=~b zV)lgP91*&In!td)Gb|}Xt}TG@_Hs7aBQut6*yyvOZEh!w7OOCgP1BByU*SeUH8tLItfs6i1(mh zJCD1FwM=M+^U7vC`8*!vMQY3^`ffY?tNG-1X%(tbBAaE8WNcr_Rr!Mi(wK(mEuVe< z*TECDk=F;H4m|SOE(z4emCG^>QLV;S%MDBJoVrg#%$I`sLNsQpNdCVe3%i;PHQr_ZB%~A7XlA`jU75)+g*RQ)l>xSp{P3GbOQ37(okUfp(J5QO9eBaP=`$s0CplD? z_DG}QSn`u9((N5M-!5r>U)bX}`FCMA8YgQ;${OT6z@pZ-GM=!1%5@qnFmMT-dO^%_ z+5>?LM?-HM13Q0~poxV70eTCS=D%ujFz}ZZ2q`zSA=NMs>eAVp+Do^Nkf*J!KkgQU${Y?esfVXYrnNDljd7U0q)+zJC#f9#m}A(~-@|2tMn>6lx4=Sf3E9+a2n@TnIy3!N-LC55a!;GgGg2 zCbVibXfL$R$J4FtVx`Trtv?Cb$S-odd#6`>4|areP_#fM}i^uoMim*k_o;BesF%H*kTH%7L)vU_D!O<6oOL z@C8jpV<&blVtWQlrv|Pf4Mz4OmN4cAr~jxGc;QiHHO2C&f70BjY;pHI;>*k#f#}|_ zNIxZ69o*O|_`;mry@Wjo;gqS#DheIYg>~&b-ofekbsp2<;nrC1Y3z%(&SUh2Ndexv zKfPyCGD{uuco@IEDOi&OU+JY` zJLT*7Kc*+yXlMfHQ;>}7zUUMWuXbAWoEMoVgsx+a$x9;DXOA4w_8dyqQT+x>ASOXL zGn((<^wvN4M0cJo5k1|MkpD2i_kz?+_(rDV50V;?Og18>=-Q~bS39}!=LpM`2}&}{ z5TStTO|t0Kzzm~}%b-i6Tu0V^Q!z)?XO3j;h7 zh2=Yfo|OD6H*Z+NL=c=V3Bv!6I=%&-$@l%gQiOCs386wNMX1EER8k4WC(2<{R>G&I zq|IroBpqZ9MGkG1qMRm*Fy@f+VL6VlsbLsq&CE92^M6*K-|zSN{(t}f>vi$mdv?2@ z`@Zh?^}gQMZLcZf=)TW)0I&IvX#bbQRd2!wRbUcOd%!Ai-+R0tctbG9q@hlp39)|4`)G z|GD+ArV}{r&?&HQt)${NjVk{Cn%7InX68mc9-e^_TXP;za}9!zTz!B>lDm zG{S}=Eb+A@dF~o%>Y};RU3;(;&e{xcBRP#o>E38q8oN6%X z91x1kp=24Du>!@I1mw$7EBd+i!*h#TXzMyjE^h4PCD!vb%qX#eG-oBrGFkhO)nFz~ zlCEs;!qSdHV602xd{!hf8^>8^fsn@5>7|9*IQYC6yFJbz5B`P?h@Rsjf!3H@)XVMV zY)=+MlbVbh5^@FA<``{f>!Zlh0m&3Ut1>X2xsV$v8(Ia63I#>h3)CgjB#xd-$4Acp z64z7Y@?EbphEggbu^x#ICA}WqK$ZCqIC?hhJk|s+viVBs+`uRcvtRpbC`?+?TKM+x+7dLgi5 znk+9u)=JF!v9clxs7*xXxzhqr!wt>~i)$psAWiIZ1{DL;>=67LcF-GH3VN6a1w*h9 z*fT+%Ss)wMkk)|uEtpQ8&Mjgg<)x|&>?8D)8Ltu3)8-ayB%X@eWF@csE9%n$5W_iUTa%Fi6{YbhyXf82`|gfArdz#fF^H{^Ekvugz_#}B-qUZmX#Rp4F$ z9r&b10QxZ^=yoi1hQ7s-O!do!+ej1cR(|;gv0E=B3R_YK=iB+D=><`%7!Q$PSrbCNS9n&8Jyu=dF*5l)#-ln#}KT01K&x|Wgyl2IXO7yj2cf0t&E;BP% zw*}@oO9MS@VJGN5Oy){4lVX3lFQTveZ$_q=B$?~I6uPuDQ(WAKn$Ha&Eu>g=2Tys4 zdxCMpeIAy6y}MB}1R@(_(Br`c$j2pE7*6YQ{V(y)8J{W!+MtQcVmC~QLn27$Z73qi zWPik$u)qi0jklKqz*qrMCa}yv{!=B%GChAQIBCM$xIoZ5NT`;m^kY|uoIym39>|gOtE}KrG&R-Ns|>uPny%tw;-4bm$7MMw^tHz>3AJiQ5=cBLF=XR4LbiiXt)5 z#tp%2cXjI;u&zn2p!I;&4y6?byC~I%{FF>{w2fuB&6JEb6fAe}>;7R89~xMxjXhoY zyUYPM|Bl%FzaLQu$WD`&i;&e4&3~GIiX5<{k<#RU7C8-g;{#xL3d5uMWCdw8H0j%j z-0?zfo_??qL{ufkw+#%^uvA-MW*S`xT#0FvE`zEF(g7bET*JGLwpkky;dO}aOR?X? zBUI4*)yKj7J6`u2eW-}@QLLGuN|^%pA7N2oTt{4&<&KDn*TBE>G9Cg3d|BSMz{_#; zSs)a45u_v$eH9z)9>pxJBP}PYMROgcd2W>mdF=~LhSC_#wN5V01V6h>YKx=C2`Qk; zb4M?&?2uz)QQxqQ*4WQ-UZC*q#}4+hj)vE8K_}=)2T-B|hvvjMm3cacG$EmC=@@{u zF`jMZa=iKAn0P7i;zM3h>u~t6>#VgD%a%t!FD3l^prv?#ZWjoNE!pk=ZNH_<4j4 zPK3^I#D4jcWa>76&z&%D1VQ}V#|9NS(dT2sj54f=z*8>?mcpv6li6y>m5mfiOs!yt z6$XUuK4cwBP%SXB(!sU!mDAam55ezp&mAIE3p6r_bpqM8Ct&z%{$Ykq8OS<;(>?+L zr`g6_TDm7DFe3dsC3ddIneMK(;7=hCSO+Q~wP~RI5G;nNJ4I%p6{wo?a7vsXCE?VqCd$J+;^)Z)wvr0(?VSNx`&F45h<3Vv9I|<9V`IwW#we7H_-6Sb9 zP6m?{xOz>jI8a(yH*vWpKL3b}e=2lorg2vWGYt`xBwQ)=%87{862n43VVb<+|7zxf znYk4HUL8~@R4=k;lq9f#oKpw{^k6YdmR@WrWBUN-qNw2ZYRnVJcvrB8^i(9UTlx!B z>#?UUaZg@pbXI7~l~(urrTUJ-`F#rTg98@Y5Gcq=!#YTibo;ppUT7Qb3YZ27xMmB4 zfZ!4tEzT>fnzsrSZM!B`H_H!4WD%o-;+_;P7c42j4H4DFnhU zGBe#5mO7)Y;R_7~Oxh2Q=G;;(6$k@G85-0P7H}ST_`vF3DF`zAGMp0h;($v z$^KJl-X=&{tl3mXNWPgK!3NRB7gP1<_k^Lj1o4m1=VL*%=AAG zG;HzV_$$&l3{C3~J5Wbb9<`tcN-3lx#}>H8w@Q%(m7dOPjd}WQOy6=a$qsh#Eu|zg zsDo4lom?vB+!*0h1XbeN%~c>6vpRu71`$k<9aJA!OemP6CFv?st!{LP{($@Eq-aci z8VbVB8(zGEySq*0#XmiFwWaT)_(-LyF#Z}S-b1DPUaAagjZz<-9wgt4PP-H*0qOftWU~W+!LawOcZr~Ag zpkIJNu!OnKIv`~#4nvJcU>SfEKpoZ@l4>6knB=cCvX6c*(y-Q_a4I%5YBJK$ZYc<=SB zB(`p(ySwAd)Ojb5w9~>J-r0qY12#cE`oGZ6+l-S08%<&Qj02`Havg-vE*SpSQ#LiV zyZuR^?YnZ-bZ7lnkn3rQF=ywKxE^srA4gN#cE*4{?IXE+ON!1=Q@x5QY%9ag6t_AaRJiUSF^MCqj!fiiQm1@D(-JsV z>dsB*AIj_(NSmA780S$=B9Fp^SXnnZ^g-e5xj0dEE;95GRHJ1gSvHFxylTO8dGq#s z$jXnFJ1~MSQPz}59|oOk(5Ly6Lm#2OBNGIm6GVc%b6ZjfXj6PVXN9_PBBx7>#;GcJ zoG7?#3fqP&P2?Ey*k6GBmUj{@R_HnKMZfd;F&7|?jmz0%N(1kTDg%SOMA4vwW{V4K zo6vV-)tb?zLezxA8B_A<2E$PfY>IvZj#PRYOKoOoAuvg8;G@-3;J3Umok^Vgv1(1| zgxHiO^r?o{(M3Zq>!%3ulmE7)So=QmRWH)9KJvfqmM5UavVN3@-Ic^qP{-wAKiuH$ z_MW1D)G5xgZAeFu>>A9B@Rp`{1BSdh+YN~08;9j$8PyJ>oZYGPcalo1(OS}xaa1lg z2Ij9T%1ja@@SF_>bP!@!#;;a{xE0?94r&q4*=~*x-p&9=ww!t$A$_P~SrBhO9DFS} zV5)rq__cLVIy`Td)Wq@g!m2iU(|6+`v?G1wo4MG=Fy}`ItX`4$+22x64Dr6*{D8eF zEFJq63_F{VbTxPX2cz@XY2kinJ?F={({_?A##_S9giSXan91Mp@ZUup>1zt;R6CUW z-D9A&7G%g-NUVr~Yn(Ufzo)_!tMd3Fgbv~yJLJIliiLhe)JcoLO z8pTZ+bK-cDyAhtStG7$E~zRId5o+GEGM=+rotVI}R7b{hcBms0II&O6x2RM8 z6BN2E`quxnFTG@6@y($r`dRo>PccLo9r^+Lc?%jLPEQf0tizrzlC(RBbM2vK%|dg~ zjCszK#iNI(Zhb7X`I@XEN19@F<%kZdhIHw@&IyFalG8G9l?;n(*X~F9L|M+|iCQHi zm-bjxD0E{aDrA)@`9y;Q!b+bZ zjTpu`QOyfG>vf=k`gxWW75mwt6t7apj7H$ai zP4S7GCLvQ%8btX2Wk>p;+gOC5DL8Zv4E^);0OednvqJUXoo>-KKI=0VQ>}U$?KB@} zU5fY>c^EQv-4ea?R+Du3V-|5vbhJFMz!k__=bo^DDj{|Z7K z0pdXMW!9`R8x4Jn4}^jNwsp`L_6x#EBp6cSnKmDSj5gk32X=YIPkfp!O&U+>=GkGd z%A2}m^m)wY&X3k9oYT|GJs6di|JLZ4^ZbQ4UU0iEGeBv@mLqaLs|&8C*W_@OlmJt| z&pk*@CCN%-ZS(Bn=_1`m;Y;%O<{VB-&;I8kHkXx zaix5Kmr))wUopT{5Ivpw_C1{M-CCtwCUhB85F6!7Ajw1X(X?E{pzt3 z<`#6xfMGpvWBv;rJ~d%-mVauGQ_QP2f-hk8Ec&g#i&C@mPxnSh(?U8z1b*Y27MoZ! zJis2(aT|Imj^keU;CP8P{`gM355C25`T0)lgqiHZ*ptu9gTEus{dz9;IK)vHAoCLG zXUWfwk5ii$G!YnXB3&Je5F6fZX7`iNYNfz=2n<4;d$-Lv5yULnL7d(wDo-opW`fDZ z>JO*4>%#k-7TEa`EuMou3trhn4w;BNU_`$C0n3`R2RRHq?>XZFOn+5GU{ZvoPFOwZ zIK{q_lGEd0blvU=%uf^?C=wfq=$JfsNoV+AdNYc8_Cq;=vB+51-^a0{+`XX=P` zYK;)%#_(zLz$b%j^9l{Nvt(j6k$w?6AAwqOvI5sCS0vt^3NIf;P1w4dk|WINLmzFr z6;t7rqo`5cJ2wO&MPk`hI%yO&4V^)VSq)?6TTsp+%CX$4YcA0LOO> zf>FtE0Xle-H^BIhOsnv!XhHf_n#fwfb`0n|X=C3MGpqm~OC$26F=K3kpB*n)Re<#) zF__f5DNPHm;KQ5Q^Y+`gxd_bD+-zp79$Jd^F-Y$MG2~7eL67 z_zX|NUmDQHMC9PA{0bpETYQDZ5;9)`No?`jNZ6G38F{7Sx4PXPzcbcxUwv`@OR4JZ z6Y-%h{25{f8DL>IEu$_;2EC629KV#ldFj~$^7z?jeAP1|VVPIz$53w35r-OgHo`yQ zXSa>${e9}*M?WR{~+xkL@Kp;;WR|eXw55O6Yrbhwvo=1}ZS>rU4Y?3B>waa?H?90aug9rsnz_xBClIgo>$O}Ds1d>k zbd*oy=yjz0ABgKfdyKxA& z&Q-^bBJ@>lP3)rXQU1!je4%)jxL2-4+py9t6`->S#07gYi$EqeVpiuOcS1}9GRt>F zm^-X%mBx^Vn`ZfPMr>y1@yJl3OJ9CBIfgQN zf8FsVT|EPX_$5~Eu1(IsGUw1c*;dtNf6S)Z3^Z%0x$2Ch>Wo~_9=V`1GNAq2z=qC< zh4ya)8#*Ip+9UoE_@9ebV|Oi&X}>=@`v1Nx84(4Mv7?<972v;mR}V1PTa?bx7vnQM zb)&Nsui5jqoj>ker6I}E3|_>~1!k2-Ns?~QMJf`W=udl|`6dscc0TA`=HR@)7Crsd z%&m0n%D&Cy{I|(^*?^`5CO9Uk;5RGN@)yGIPF*|6$rta)wzzZwA){2sQ*d`L?C<2UfpuThZ7n(0U3p8xs7XX$0+nFm+f*KZn4*C^Wc%2auMd-hl_HmZ~IdY zMH9Byskx5g{`%{t`bWQ-I%-wN+MDS@$=?<4bxu4kf?qXGiGLQ5rXN$N`0VbZ(QV_x zgvW`V`8fQ>&rk2IZCk%Q!;>&)dcSHvj{G)g&8=-~f!eh0VtE&ny;S(=__rqo$%rl+M|*;EJb6DK`J^1TM+I}{Ue z_vU<$j`q86oe6iqd{sBLZ83oih5wAW;BxGJ$-^@+MeKvux}7if+B&tOOFGs^8Ack} z9z8hMU1olBEjdNqel=IO?Do-eFAMd=>FJ;=$MSSpTlcnYXwS?$Z{ypt%Zsfm?7FIA z21DhVVy8MWV)dIw7bL5mKl&kFgM+>W!cX%wj@%ZF?AF<8u$(t^FWTg1NyF~fhYuQr zdCL)79~v2dy>&8PeSe(>tS6Ql7h#eWKb&Ou?7|7kqDf-OtLk0F)#rj{of!K}ue?PD z5}8+`H0SoLQNOk%C;K>FKL1$cK3jc9y&Ea%&9GNNDg)uFZK%^D7W`hje>-NB25LJKfXlrOW<+YDM*Z61_=DJ`s|i zVEEV2HbQLG6|=?O9Vcw*3v%8r#~jxeZd^%<=?VWDxn8DK$A;N^1fKp9(zW5BGJoLV zYPXf&uWN!TzXpUS$TA&hH`&J)2d&?oqtmo!cKKVX;VZ`7>f@#q3*$1gx=R)`E zAN%wv;obB5$npz&#R;S=uUX(Q>HD|ZH;+2-_!NxHuomOos;k2vdY?HdSWC?FA0=N8 za@EUv6aIi&59d2t<6A=v7NUx|R<0UwzwEPx`1X#*mxYeJl!3{X0JBzBDz)%}re5Xb zL#*WXbgyl?3}d(kIM|;2wr)|`prMkmqjNEqJF*SW*_(vFPLsQKJFVDR(C3`#gFn2_ zdVQP9>hZp;v&p9M`s)z8WG=KEPF^vBU(R3gMXtJX+3czy+@0{{L%%Pph73oX^0*s= zkatA#U(Bm3m(Qw$?Qppvvk}^I{@O2U)s-@{GC{_7M9YTcMvSBv1LhL_K31)=U#$bbXPE<>&RvaWhq zW>!0haHm3UNM^)lIe!^AvB>4K%fX3>Rt)KmXwM7}FaKg+Z9P!I_BFrhd