From b76e8f155639e39c5f19e4282372746752433471 Mon Sep 17 00:00:00 2001 From: Linehu Date: Fri, 2 Oct 2026 14:29:28 +0800 Subject: [PATCH] feat: U2 UTRW slow path real branches - slow_path.c: KEY_MISS -> PCKC re-derive (retry OK); EPOCH -> refresh cap epoch via out_cap (retry OK); STALE_CAP permanent; MAC_FAILED/POISONED -> PCKC invalidate + DRR fault report; RETRY passthrough - status.h: add UTSM_ERR_MAC_FAILED (-11); utrw.h: slow path takes cap/rights/offset/len/reason + out_cap - selftest: EPOCH refresh + KEY_MISS re-derive + POISONED passthrough coverage, full SELFTEST PASS in QEMU (.build_tmp/qemu_serial_u2slowpath.log) --- CLAUDE.md | 4 +- CODE/UTSM/include/utsm/status.h | 3 +- CODE/UTSM/include/utsm/utrw.h | 8 ++- CODE/UTSM/test/utsm_selftest.c | 48 +++++++++++++++ CODE/UTSM/test/utsm_selftest.d | 8 ++- CODE/UTSM/test/utsm_selftest.o | Bin 5384 -> 6896 bytes CODE/UTSM/utrw/slow_path.c | 100 +++++++++++++++++++++++++++++++- CODE/UTSM/utrw/slow_path.d | 17 ++++++ CODE/UTSM/utrw/slow_path.o | Bin 728 -> 3072 bytes SYSTEM/boot/utsm.elf | Bin 957936 -> 962032 bytes SYSTEM/system/deshab64/FUCK | 2 + build/configs/dev/FUCK | 2 + docs/ARCHITECTURE.md | 2 +- docs/ROADMAP_INSANE.md | 2 +- docs/STATUS.md | 2 +- docs/TASKBOARD.md | 2 +- 16 files changed, 187 insertions(+), 13 deletions(-) create mode 100644 CODE/UTSM/utrw/slow_path.d diff --git a/CLAUDE.md b/CLAUDE.md index acdfcfa..0209990 100644 --- a/CLAUDE.md +++ b/CLAUDE.md @@ -172,8 +172,8 @@ kernel_api 已暴露能力:log, rsdp_address, fb_address/width/height/pitch/bp 当前 manifest 中 14 个外部 `.drv` 均已替换为真实 DKM 驱动并可加载执行。 下一阶段优先路线(活跃路线 = `docs/ROADMAP_INSANE.md` 五期填补计划,任务编号 F/U/D/R/E;状态唯一来源 = `docs/STATUS.md`): -1. **一期 F 系列剩余**: F2 统一帧缓冲控制台抽象、F3 跨平台构建(Make/CMake)。(F1 莲花 panic / F4 boot 分级自检 / F5 skip_firstinit 已完成) -2. **二期 U 系列**: UTRW Slow Path 真分支(slow_path.c 当前为 stub)、@sealed 段标记、密文页 dump、selftest 修 chacha20 KAT 间歇 FAIL。 +1. **一期 F 系列收尾**: F2 统一控制台后端(fbcon.h 抽象已落,panic 已用)。(F1 莲花 panic / F3 跨平台 Makefile / F4 boot 分级自检 / F5 skip_firstinit 已完成) +2. **二期 U 系列**: @sealed 段标记、密文页 dump、selftest 覆盖率提升(~~UTRW Slow Path 真分支~~ U2 已完成:EPOCH/KEY_MISS 恢复 + MAC_FAILED/POISONED→DRR,selftest PASS)。 3. **三期 D 系列**: DKM 热卸载(引用计数)、裸机器码加载器、按名 API 导出表、彩色日志。 4. **四期 R 系列收尾**: `drr_emergency_pool_kb`/`drr_recovery_log_size` 接线、segment/system 级回滚验证、PCQ per-cpu 多核。 5. **五期 E 系列**: 启动莲花动画、假想时光键彩蛋、提交信息规范、风味 ISO。 diff --git a/CODE/UTSM/include/utsm/status.h b/CODE/UTSM/include/utsm/status.h index 7eaf2e6..62fe3aa 100644 --- a/CODE/UTSM/include/utsm/status.h +++ b/CODE/UTSM/include/utsm/status.h @@ -12,7 +12,8 @@ typedef enum { UTSM_ERR_KEY_MISS = -7, UTSM_ERR_STATE = -8, UTSM_ERR_POISONED = -9, - UTSM_ERR_RETRY = -10 + UTSM_ERR_RETRY = -10, + UTSM_ERR_MAC_FAILED = -11 /* U2: 页 MAC 校验失败(slow path 处置) */ } utsm_status; #endif diff --git a/CODE/UTSM/include/utsm/utrw.h b/CODE/UTSM/include/utsm/utrw.h index 0b18e25..71e79f0 100644 --- a/CODE/UTSM/include/utsm/utrw.h +++ b/CODE/UTSM/include/utsm/utrw.h @@ -7,6 +7,12 @@ int utsm_read(utsm_capability cap, u64 offset, void *dst, u64 len); int utsm_write(utsm_capability cap, u64 offset, const void *src, u64 len); -int utsm_slow_path(int reason); + +/* U2: Slow Path —— Fast Path 失败后的恢复分支。 + * reason 为 Fast Path 返回的错误码;恢复成功返回 UTSM_OK(可重试), + * EPOCH 场景经 out_cap 回传刷新后的凭证(可为 NULL)。 + * 其余返回值为不可恢复错误。 */ +int utsm_slow_path(utsm_capability cap, u32 rights, u64 offset, u64 len, + int reason, utsm_capability *out_cap); #endif diff --git a/CODE/UTSM/test/utsm_selftest.c b/CODE/UTSM/test/utsm_selftest.c index ac06db9..d15f090 100644 --- a/CODE/UTSM/test/utsm_selftest.c +++ b/CODE/UTSM/test/utsm_selftest.c @@ -1,4 +1,5 @@ #include +#include #include #include #include @@ -71,6 +72,53 @@ int utsm_selftest_run(void) { } log_info("[UTSM] selftest read ok"); + /* ==== U2: Slow Path 真分支(EPOCH 刷新 / KEY_MISS 重派生 / POISONED 拒绝) ==== */ + { + /* 1) EPOCH 过期:伪造 stale cap(epoch=desc->key_epoch+1),slow path 应 + * 返回 OK 并回传刷新后的 cap,重试 read 应成功且内容一致 */ + utsm_capability stale = cap; + stale.epoch = (u32)desc->key_epoch + 1; + utsm_capability refreshed = stale; + status = utsm_slow_path(stale, UTSM_RIGHT_READ, 128, len, + UTSM_ERR_EPOCH, &refreshed); + if (status != UTSM_OK) { + log_error("[UTSM] selftest slow EPOCH recover failed"); + return status; + } + char slow_rb[64]; + status = utsm_read(refreshed, 128, slow_rb, len); + if (status != UTSM_OK || memcmp(slow_rb, message, len) != 0) { + log_error("[UTSM] selftest slow EPOCH retry read failed"); + return (status == UTSM_OK) ? UTSM_ERR_INVALID : status; + } + log_info("[UTSM] selftest slow EPOCH ok"); + + /* 2) KEY_MISS:清掉该段 PCKC 缓存,slow path 重派生应返回 OK */ + utsm_pckc_invalidate_slot(cap.segment_slot); + status = utsm_slow_path(refreshed, UTSM_RIGHT_READ, 128, len, + UTSM_ERR_KEY_MISS, 0); + if (status != UTSM_OK) { + log_error("[UTSM] selftest slow KEY_MISS recover failed"); + return status; + } + status = utsm_read(refreshed, 128, slow_rb, len); + if (status != UTSM_OK || memcmp(slow_rb, message, len) != 0) { + log_error("[UTSM] selftest slow KEY_MISS retry read failed"); + return (status == UTSM_OK) ? UTSM_ERR_INVALID : status; + } + log_info("[UTSM] selftest slow KEY_MISS ok"); + + /* 3) POISONED:不可恢复,原样返回;DRR fault 留痕不重启 + * (selftest 场景 drr_report_fault 只计数,无 reboot 语义) */ + status = utsm_slow_path(refreshed, UTSM_RIGHT_READ, 128, len, + UTSM_ERR_POISONED, 0); + if (status != UTSM_ERR_POISONED) { + log_error("[UTSM] selftest slow POISONED passthrough failed"); + return UTSM_ERR_INVALID; + } + log_info("[UTSM] selftest slow POISONED ok"); + } + /* ==== SCHED-1: O(1) runqueue 语义(合成 TCB,协作式,无 tick) ==== */ /* ==== SCHED-1 + SCHED-2: runqueue / block-wake(tick 竞态保护) ==== */ { diff --git a/CODE/UTSM/test/utsm_selftest.d b/CODE/UTSM/test/utsm_selftest.d index d8b11f8..e580299 100644 --- a/CODE/UTSM/test/utsm_selftest.d +++ b/CODE/UTSM/test/utsm_selftest.d @@ -3,9 +3,9 @@ test/utsm_selftest.o: test\utsm_selftest.c include\utsm\utsm.h \ include\utsm\uuid.h include\utsm\process.h include\utsm\capability.h \ include\utsm\segment.h include\utsm\dirty.h include\utsm\utrw.h \ include\utsm\vmm.h include\utsm\linux_loader.h include\utsm\ipc_shm.h \ - ..\utsm-ipc\ipc_proto.h include\utsm\hypercall.h include\utsm\log.h \ - include\utsm\arena.h include\utsm\drr.h include\utsm\sched_ext.h \ - include\utsm\sched.h + ..\utsm-ipc\ipc_proto.h include\utsm\hypercall.h include\utsm\pckc.h \ + include\utsm\crypto.h include\utsm\log.h include\utsm\arena.h \ + include\utsm\drr.h include\utsm\sched_ext.h include\utsm\sched.h include\utsm\utsm.h: include\utsm\types.h: include\utsm\status.h: @@ -21,6 +21,8 @@ include\utsm\linux_loader.h: include\utsm\ipc_shm.h: ..\utsm-ipc\ipc_proto.h: include\utsm\hypercall.h: +include\utsm\pckc.h: +include\utsm\crypto.h: include\utsm\log.h: include\utsm\arena.h: include\utsm\drr.h: diff --git a/CODE/UTSM/test/utsm_selftest.o b/CODE/UTSM/test/utsm_selftest.o index 08c9b026bf29b34c96daa3808697ca1055024dcc..aa186814058ccba1b9a3d011e47bffef5269cc8b 100644 GIT binary patch literal 6896 zcmbtYe~c7Y9Uq{Ug4m<2w6z)>t8Gg37WRNUAlBT-EzZFnx4q>+f-ua^&h4(ZyR*#9 z-f@Z4tLMerY|fCtA7_*X`;XT@jAvq-qsras5sn%|il(N4#A-~Hld2d~XhB`S-cv&KSL8{$xRFbA1t<~GTYP+-on7wN0 zEoGmwH?BVS_Eo^ug#~QIsx*68W;Jzm&fTb%=4Vh^EiHJ>>Uh_M8EG{FZ@%&nGUEk`ay%U!R{4x^EU^Y9PSmt)T;&nPk9 z;>bA}^w%UGRIBem)K6E9&U0?xoJsMYTL6t0R9O zu9@*@Aik4!7hO}wUy?w@_pp&`Ygq5a!)VOU<+V?#<7ctkoyH!f#ykfXH`F@%o?~`O zk<*wVwbV7CmU}O#<>G5iK=e1?X|6f{mk{WPR>B3kYp zi{UhT2oO+V! zDW!#I=_d2*-NoPBu7%SI5IcUWh9AK9=?q&a3P2ck?tN}5huPsl~r$w8Bj zqB%2X*+W$q?hqQZGoa&p5YTA#^9EZVl#NUwZQ8PVq^M^dxscT}bsiFmkv5Hfxz@Xy z2Jk%@WYTNPWt^Pu8fk8~zGnkPCu;4y7~tzNDBEk2fGCU>^6cAJqHJAQ{5&G-BcAp6+P$i^}$0&G9|To=EeC zuoP=)?%o^e+1Jwv_Y9Q|boBJpyq05OxqcFR%|?I0m7Tm^aMG3w=}DQ+(_+tRGoLH< z!a38`Wtd8tzM*PP>lv|@My72mn@#92^&4BQHrH9LqRgP5e9xTNghS^w4B{F|TB+*l zmXlWAlq4go=TqppldY zl}4Op&?1(b06d6~byj}&A;0oBxWFgw9p#sx-w6Lq0RKn;J`sSg2+$u6zz+xL{5b%h z3((mSfIl6eV+8Qa0XV=7^Y%^v|AhelXaN3VfX<}={^|h!rvvaa0Xn$W@B7X(^IRCp07x^y|{z}517WgOF{Vd^Ae|{_Qr`Y`!!bhLD zKYt`R`o!_2FpgM6KUXpwHCDlo^VbOcx3M#n#|WR=?I8F^fX8*>g3fYwuL=08p1LGi z0?zY4$Z*lmZwP#xuUNiC_%xpr0$*YGrwE_MwTew*#O{Y5kL%+M=lR^v`tKxsnulJ2 zKf?HyfLG%sI&@sd1U}a}Dd1B~|2ss7#`S%IH<7r0O>i3T9|Zl2O#h)}&>0G9(|Dg? zIM2^*#@`~~Jl=MqL*v~g@VU-D0sk!X?<+)y#yd`M8rOuN6J2t4B;O}Mny9uAJ(*p#55Nz{&nu1P|>Es9>-$9)JEWtlY@Uo!uBc?MW z;0nWkMRaIfR|Nhg#{U!H)41Ld_{SN)LilTlpDWn+7ay1FjQ;?`u^WxIgWz;Mb_+UB zFnhXy^Ks7*9l9Qm3jB7abByp2;`#q3!SUV8@e>4pgy0hd$8QGCKNWz#5P<)H;2$G8 zKPLEN1pg_)sh_`KIM4rn7ViS#(|BJO`1dltl(cOP_d*)q>}bi1?G8yH+sx`A?`#2& z3p94%p!o+28Xi|jeuL3(Xqo(gp3NlT$U%cWu`A*30S_L0O3DOz|0Kc(mz+1s+fBgviRNaE{(434%t8v~E!PZvX?Jh41`6PD#_W?oOg@r~aJ zk0_*mh*9&-hnNzx6*8m{1n24rxDMs;ipfozM_V_+C|fXSIugR6FwDFEx4Z@KQ}!sR zlRC{laPMdD0p7@7zx-BO3pK>>+nSbkcEk65yba%JwBVY;sohRNsE^@82g;-PvVelm zK6C}ISol7m0>;sPi-*?!)-s0%__|?D+<$)E2RPO@)Vg}LllX9k!oTnRJD-bn-oF(p zyv{jzy~X-d4C^Ad7l38aiUm!>*v<>jKfmX3i~au!fG|XU7ktn_;oo`K567A7@cjK3 D=%mm} literal 5384 zcmbtYYm8Gx6dpuH1VvC06GN_I0z|gZ1(t`=Y=y-ObYWH>+6+W$gI0TDw&=TiHZlZZIpq#5Tn?cA1Z#-4D1q zJdC|(@N00JAzNnuVSk}n89Id0W@T7(o4ebOA7a-b@YAQ)Lx(_td5aVo-AdIC{4+K- zHrh=gP&CJe%z?Jk=0N+m@qxDE@qzY}gMH{^_!xYH^miTWW9wrbfyZ4(4bYz{H7Y{_ zt$b@fesn*OH^;Wd5?h9-hk-|r2O}#-4uJbHv;Tzul{wIBn7e-KtN9QdP`;Or)#EaE zm-~X)8U=Nu96FLlH^C~7rp?`tHgGdh^{=A-UWsk}Lj^K9w((U(x>bOcp&AshzW1lo z;bMLxzr!k1w65KFx!GlxUhc_KW8_)T7Ovy=If=z9=LOQ%e|~4#+PbK*yD>*dWwn=B|U=pkh;=Jc%2uZ~lKpGfOJRD#IgtP#{?9kqZ!9;9&HTO9Z)8 zcPMsMIBm46)1>_9Y}J_Aa7$&ce~oaxvT|W0`*;0DM1yr1gfQ75Sn=R#5p?ZKPy{xJ zkDF*oebJ5{9+?ETcKwQn&zo=^MS^9^3~xyv+kxskSVd7d(S$FTBw$F_WKlw8N= zo@dw&40+hs#~8NDk>>GC0Ys$&OK~r2C5^K06`;#P(E=|xZf`Y&i-dN#InW6r2QOaAnx(Ery&T_lQsEw{J1H_&Rb1C`?Ij>;(c2@bVABl=x zE6lc)wUu3NxaH!5WnSjSx;fFg#;Vxr_^bNegzZvDa#Mo!2TV9R`ap z-05Aob)sVjZg0xTR1c<+a*CWWJ8u;;7`c~oibivDBpPWk=45@p%hk~yrcvQA?8=e7sk!7WpBp0WW3)AWJqULBSz06wHvT#Yug2l;YwzasWWy#W| z(Yf%zUb4IgkM!m2_pwH#@zA4}9|4$#uP0eP9UnBlh6;XqFDh?#P6yQ{+A*6iy=D8L-1q>4sgSD_#%Y=bO^sE1n&#c`6PsYJ_Mf_qVswPAMaUM zCc&q6Dj1s~P&`|~=P&%Jg>oCguYk6~mk|6)g0~ZV0>ST>xbnM3+Lne-mv&m#7|&Jk zQGR`iE1igzaZZ5!#ey1>;iLG|B(C^pkp$%?!l!=kCipeLQ#$RMj`H__hMy4XjHNYPt$&f| z(>QxI{w!%fq2V!UKP797oyPwh!LKFpzozM^xZfoFDTM!_#@{LJj|rdpJ)-gVN&6V# z)AR6+#{XQ}KM+3E|5@YzD(y3bPtWt!@}X7xuJ|(~j@tA*&(`=;r5z=FeBZ0{aHqy! zAng@|Kb7#i363eE(%G!(Y?t<44gX8d^DUx7Gs<$9J<@&;AhnnGk#r!EYiuFA*GngOvV0g3~zPk+@oawNLL8 zKAkU1xo!e4tqFB2O{8+J-^(H{&s!0ZzhFv|kV#DY&IZ49hwgVSQ0juj~qFi)&Cg))qhFVp;ibB3* z7fM1kS4=xW6e|BnK$gKg-_7%)7@p;p>n9--OZYjvr(RKHKP*yod>*;?z70*D5BF*o z!Fy}MN~Pd}n~~zcOu?*!91&fJL?-AI=|MxDNJ2165pF$LIF~0K$4~I0m4wVM7=-B* z>w!rnL~1FOq_2q0A}|}@NOK}&wfU>@w?IR+6$k6* z<#>u=Tj$OLV0?Vcfv!I6S4FMAvemrx@karWuRcW;^ +#include +#include +#include +#include -int utsm_slow_path(int reason) { - return reason; +/* =================================================================== + * U2: UTRW Slow Path 真分支 + * + * "快柜空着,慢柜要你先念 UUID 咒语——念错也给你件,只是晚一拍。" + * + * Fast Path(read.c/write.c)失败后进入本分支,按 reason 分派: + * KEY_MISS -> PCKC 重派生密钥,成功即 OK(可重试) + * EPOCH -> 刷新 cap.epoch(out_cap 回传),OK(可重试) + * STALE_CAP -> generation 不匹配,不可恢复,原样返回 + * MAC_FAILED -> PCKC 失效 + DRR fault(回滚路径接管),返回原错误 + * POISONED -> DRR fault 留痕,返回原错误(段已坏) + * RETRY -> seqlock 忙,无恢复动作,返回 RETRY + * + * 返回 UTSM_OK 表示"已恢复,Fast Path 可立即重试"; + * 其余返回值为不可恢复错误,调用方不得对同一 cap 继续访问。 + * + * Slow 路径有审计日志(log_warn)——慢要慢得可解释。 + * =================================================================== */ + +/* 轻量校验(绕过 epoch 检查):EPOCH/KEY_MISS 恢复前确认段其余属性仍然合法 */ +static int slow_validate_ignoring_epoch(utsm_capability cap, u32 required_rights, + u64 offset, u64 len, + utsm_segment_desc **out_desc) { + utsm_segment_desc *desc = utsm_get_segment(cap.segment_slot); + if (!desc) return UTSM_ERR_INVALID; + if (desc->state != UTSM_SEG_ACTIVE) { + return (desc->state == UTSM_SEG_POISONED) ? UTSM_ERR_POISONED : UTSM_ERR_STATE; + } + if (desc->generation != cap.generation) return UTSM_ERR_STALE_CAP; + if ((cap.rights & required_rights) != required_rights) return UTSM_ERR_ACCESS; + if (offset > desc->cipher_length || len > desc->cipher_length || + offset + len > desc->cipher_length) return UTSM_ERR_BOUNDS; + *out_desc = desc; + return UTSM_OK; +} + +int utsm_slow_path(utsm_capability cap, u32 rights, u64 offset, u64 len, + int reason, utsm_capability *out_cap) { + switch (reason) { + case UTSM_ERR_KEY_MISS: { + /* 咒语没背熟:PCKC 失效后重派生 */ + utsm_segment_desc *desc = NULL; + int st = slow_validate_ignoring_epoch(cap, rights, offset, len, &desc); + if (st != UTSM_OK) return st; + utsm_pckc_invalidate_slot(cap.segment_slot); + utsm_key_material key; + st = utsm_pckc_get_or_derive(cap.segment_slot, desc, &key); + if (st != UTSM_OK) { + log_warn("[UTRW] slow: KEY_MISS re-derive failed"); + return st; + } + log_warn("[UTRW] slow: KEY_MISS -> key re-derived (retry)"); + return UTSM_OK; + } + + case UTSM_ERR_EPOCH: { + /* 纪元过期:cap.epoch 落后于段 key_epoch —— 刷新后可重试 */ + utsm_segment_desc *desc = NULL; + int st = slow_validate_ignoring_epoch(cap, rights, offset, len, &desc); + if (st != UTSM_OK) return st; + if (out_cap) { + *out_cap = cap; + out_cap->epoch = (u32)desc->key_epoch; + } + log_warn("[UTRW] slow: EPOCH expired -> cap refreshed (retry)"); + return UTSM_OK; + } + + case UTSM_ERR_STALE_CAP: + /* generation 不匹配:凭证指向已销毁的段世代,不可恢复 */ + log_warn("[UTRW] slow: STALE_CAP -> permanent"); + return reason; + + case UTSM_ERR_MAC_FAILED: + /* 页 MAC 校验失败:疑似静默损坏 —— 交 DRR(回滚)处置 */ + log_warn("[UTRW] slow: MAC_FAILED -> DRR fault reported"); + utsm_pckc_invalidate_slot(cap.segment_slot); + drr_report_fault("utrw slow path: page MAC verification failed"); + return reason; + + case UTSM_ERR_POISONED: + /* 段已中毒:留痕后原样拒绝 */ + log_warn("[UTRW] slow: POISONED -> DRR notified, access denied"); + drr_report_fault("utrw slow path: access to poisoned segment"); + return reason; + + case UTSM_ERR_RETRY: + /* seqlock 忙(writer 正在写):无恢复动作,调用方自旋重试 */ + return UTSM_ERR_RETRY; + + default: + log_warn("[UTRW] slow: unhandled reason -> pass through"); + return reason; + } } diff --git a/CODE/UTSM/utrw/slow_path.d b/CODE/UTSM/utrw/slow_path.d new file mode 100644 index 0000000..ca05671 --- /dev/null +++ b/CODE/UTSM/utrw/slow_path.d @@ -0,0 +1,17 @@ +utrw/slow_path.o: utrw\slow_path.c include\utsm\utrw.h \ + include\utsm\types.h include\utsm\status.h include\utsm\capability.h \ + include\utsm\segment.h include\utsm\uuid.h include\utsm\dirty.h \ + include\utsm\pckc.h include\utsm\config.h include\utsm\crypto.h \ + include\utsm\drr.h include\utsm\log.h +include\utsm\utrw.h: +include\utsm\types.h: +include\utsm\status.h: +include\utsm\capability.h: +include\utsm\segment.h: +include\utsm\uuid.h: +include\utsm\dirty.h: +include\utsm\pckc.h: +include\utsm\config.h: +include\utsm\crypto.h: +include\utsm\drr.h: +include\utsm\log.h: diff --git a/CODE/UTSM/utrw/slow_path.o b/CODE/UTSM/utrw/slow_path.o index d648ca529c8fb87b8e9e2f1a1c25e2e1dfd3fb32..4035e5e96f560479802c0bf8403050db2d2ad003 100644 GIT binary patch literal 3072 zcmbtVO>7%Q6rMCqNq;0qJ)j~av_ch45pn9YaqOrKUK+P+;kIrZCqQYpo89$K;&`p~ z+HMd6gfU^Y%Be!)#tj8=0EvqwE=EP90s)n%D3_`yB&u@ZP(lNhd2e^dnK}*!c+&2h z`R02+^LFO#o6-2G9X&mSNe`JIn=^(I64}j--C>061!hXJe-UTJ88IbJC#BkNA^ZA@ zw72$PS9LMIQXXg>{0_;|+8U}~@g+JFuI91E{Z^}W_ge_eqx`tBj*O2x7>&OWy}F4? z_BGGB{qx<|0T%6tl3l(o*{K_%^HkJH?~FQc^xJnlQoZSW=LE1~_ScS-tv%@R)kk6K zdX0wDmwojR`dGi!cnEQ#^@qOtA*4HJ2PG$ULvq0L%JGrL->@o$fAB5uhE*y2y>A(7 zD22cAEw96lS-6$ds(mMJ|KSF=uhpBFUWbP z=v?aG%z7Ek>@S@}wzdITzY9}0>&fsEWc@Zw*MD@A7VEdm70Edd34^zlb7l@mcH#i&0nh_6=kb_R>6h#xJOfTFWJ~+_uM%k9d!hju zx9;r^G;0s~?)8D%=<~hbtTorA+E<|q;;Z6C@scQCyaqY_54n(&~^kW~sAR2Gs|famT~0l!w(G|HJQA!=SJWH8YZ z<~TCq5BP(^VAisVrSak6OwP)d=lrU%IGoQ{yw_0CH0E{H64L51MbXCQMzy)4>2&(o zNI*-6m2mLrSn$Z`Tv$~`gTb*-C~){+&drCgwv+tc>PG1$JG#N77c9C-FWI#Po(E(< z=jU1K@;u-JTiAr`+XjzpgAZ?m;|1^L|7pNc_QKQaj=UGE5#qSJPwASUYQ%7N*s4&1 z9R3)GpP)GNbDPdz;Q0L zXa47@|Et^Z8yt?mI94C*^C(z1zCQSWKtX&DJd7WqIE#A-Ng$^?a1SM|h-tXYg zQiBbS&+nJ{!(}|0&rkqsh{EtE>A7WRis1>5Mh;NT@b~Ck=)m#5p$vMe?SC2#L5_H; zjhl2%{HC5){FZ*jf@V}&l#A+uD(4CnC7;t2OP8UuTLc@0+k{+7Mz>_vl{C|oy?!aX z&6DJfj9gXB0`Wu7)BUHo`+{S3ZW%R#!9dcUYQLEs)33k^ z8@EX?_=wu`7>+x+OMvypTL!4N;Aso{{tUqSqjcJT4p?XHk+(|Y_frE@_(?nK_Yd6t BUL61c literal 728 zcmb_Zu};G<5WTdBG9spq9?O6s42T7k1t?O5#E^jjMQ$1uL~K{JQ(%I%f5gtW@BwUW z^SBzKV_qns?NsyUBdvKA>V@UO&|k9VGnw(yhDiF;>7~bwUmWIptLRc z)lGU}tjM3BvPNd6)X&*M*azTcxssWf&G5VC(CRz~ZtT*EDaKdn;y;~h?9>0F*GHq> z1vziMb;fabw*z0&@OBRk-wk{NcJb3^B diff --git a/SYSTEM/boot/utsm.elf b/SYSTEM/boot/utsm.elf index 93539dc2fb60c5a9036f5bd3380487620f30a53a..f67a9f421ba9457bca63cc188c7f2bbda6a837b8 100755 GIT binary patch delta 113191 zcmc${dw5LO7e72_k|PNj6C@-eH-f}H2niW7B%F{$+}jeR>Q-7xqO^1-CLyOs+>SbW zr`1;VBCS?JTM{8ds{~bws=G7d60|N+nfJ5ynPj5hzQ6ZU5t~flaO19#$v*5_Q^N;peM6^s>y$@nFf?r_N8yC`4ufaty9J2I^8*gb?Wk;riyEIdIIgaI!`=xE5x5lulW(W0g^(gBOJuu072k; zPR{WQ;m*k)_>B&}aS;`a9I4Yi672S%OGpet0`RoYWMh-q_QZ7g;i=*-jr~%M`&4lS z@fFuGmP^5LW|MZ{xTcA@-~UI^nlv5Q{z6@)1lgB*;-OnXl>$Je__Z(fy&%8Vw4E=+ zFmjpqAo0|<`CK$O^BL`}#-d5Cp?w;0g&y1G#j_y2YT}NNT0}HX;NPHXGq(T zP7?1Y8n@d8vDLnAU}-b0o?ocbWrf;I?`|>ZxK{%1@ymeWvV2kM>`(H7fH>}&{B=NE z{GJGi;qJ&j%{y?n<(|#kG|Z-wt!<`N+47|3kM#X^%M)6JHOnHbm*C{TszUoD&&S=W zD*6OzuM_I{cQSmFb3$z6g%xliP@pjP;OA!xpSO__Wl zC`LbSogC0o2>#fh%PU#fTwV6i>C7uxkR|d3KnYUpp&RmomXSR+z71xdr!dCLsF%gF z>iD57xuwj*nkwE?(M zZ$Vs}xPX#C&%rZAgwpI)oTpX2IzXpO6KhhW{z6QiGmBSG0D;UNs;2CGNSPwd_XbM1 zgT7dxrTvi3yd!UnXvbZV_eX?8True8bpYGas}M5R!h}NiHWdmIEJBWb&I7qY>#qN% zV$FDxYE0`0|I6UjOne{|cqVF%wk~)eORZb|M+W$Q{~sm9!u1d2s@5(3qlEQ=9NZ>4 zDNb>GXA+O&OUCz*OFut53Q0e=VByqo605!EQ1Dp)ow%Z^5L|(Cc=r;LWn-B|QKSX1nu^NT?0j}(3 zc9w&bars4)j%Ai=u#3eSR1$MkO?^tIQ|((&FLW4gcG^*rvAx@$$@0QBu)PX6Ip$Jj zC^E-3MURhRtSokxI|K>y4;fHzU2}yct#aU*Q1`mM!s_%j@NvuJ+iytAGhO8v<3X-F!L8R~`k){C8pONf}WX$R0 zynAr(B?2^sjQ7^bciP5w*#H+R*!P6hKUFgzf^YDgJi$^??PxU!YZ04-M9whmW0{ZtnC{F?oa9q+0$lx?PuZ2A!EZ7~@P8 zuk0jSz@%HXu+Zwv@XIU79$_xMtT*Re{s%e4W1-xnLvlBtO=$V*zN}Nyedcm%%dMGdLkfhf?ln-|3-VfD59pveZc_}_{g++!dXKPhr%6yPkxJaVE!<6!_0iD)3#GWGq@uoi=rlxHfGBtbq_D z6+?`2AxId87~?`v-3;-R3qiFp#4|2LO)X-)3!$qfipi*Ef(xT(7$7FP5T3P&=Uj*e zwTS0k2=7|NR3HjQt*bE>eeFv)@!Qd}fHD?|jjOjk6Ej5Lyw0prrNtYJOF}Wxs{U2- z&K@C2zaet^8SYO!`#+Xt%-w&VW^X&QrRyK?O7xR*e5>WOo~ex>f#VHWuG-<2ys2kf^Kr81aMEts z#ehm#=!iNS#)iVmqGP-0vv0~z$IjAw-IVRI(Y~mO!m+HE)uT7$e`33|1;XsC5KEas z=N-rnpPFOZg8FMmyq{$H`ItPcS6DbhX6G7uNCy@+k2RPz;$_f@BT3EgS|V(qEIc<^B6O?kJOHt?4!o*0hf>j>$7+yNv0c= z+HN>{MD7%qi}GK`h2!^V+&4`iuZdiMamhstK{fuG{APSq&x-$p3ozz=4p9dbczy>B z>)L9L03JfV9e>iVmfhUNDdGwBZ&m)iPuIXh#O)AMKd|l|ki+|uR{Qt;9KuxgC7;$j z;gxV^0MA6%>x(PuOeE_J;LC*08j+zs(LFVk5s`yOk5wm(1-}udG=1kQ@IK+-V;on+3rL@iI2euzZV!}@JNWhMPu zG)0UAISYAPwBq|u-bnNe)}g*PQcI{T;S_xc9sq{ZcjDnlJnmnA27He)lXlC zAxFiiY^5G`NO2f$YbBPCO) zwHhf+!{2>{po5Gzl8&q4EFJ|WndeRpM5;#j|cV}L;_@|4}t={xa8aeS)EgC z4_X>?YoLteKKauqw;RjVr`SsLpveBIk``%HuCgK2mr_tX^^zQ&^poY7kEhkK1%{98 z9Aqc;F>aqI)Z|QtTxMDR((?0slgjlK`WZ zaioAHXjd_6k>@4{>wj4%uS_nm7!P|`#h=v!VQ4Z7JWH^GQcoc%o^iottz|e&FHc&~%t)@@#1ciu)nX`-KrB{4V`65J?u>T6xMzz@OahqtW zu2HkXbcyf}vCn`U=w=iEO#+D&J59rEz6Z=OV3MS^qku{-m=#%L&UySd9RK_QD6;vI ze0oqYEbIQDcHAC0bZ{#eW8cApXx7Vlco|)jbt&(FF?S^(>%*k%6UOcNkC10Q@16a# zwU`D$a`ql;G1>me>>bu(nhAyMLTfRbo3lT)7SmKXAp3o5G0n%}*>75lX)X-UUT!U> z`8PS+W-X@4Fx8khAL_CeS0iB_WXzj^l(8tkAtnpVv72eqKoH|+_W8w__Zln~lSjpX z0^bc!gha+AyU<~3!D-nnw6m1{*I07-4rA^Ft!tUz8W+Mes|7*#)LBT@jwGls6G=y? zMjkxu?_XGowgRNlaW{g6IH8QJ;AaO$dOg-Yq)Ks>C(Sz^q4mhWgOE1~_BE*`$eDdT4`Xo1V4Nfs(oBw6*O(gx zaxG|ki&h~ci5h!g7{25el8`j#V4!W#&7TSUG1^Qp0_n)7xf>n)rd&C6rtd=|>dG$0 zH1yVw@^h)tu!ZHR{UfPA^8Gzs(W*IrlxJ7DgTp0W?khi=F}V>6>9T^s#3w`kC8JO3 zJLHjd)GTS5P?tBls`YV_$tQ zj~u?#9hqG_B3~Nbc2E%wtpDf8><40Nx7UuUUyyV~W~g&_Guap$1m81bM2x=s5&7K_ z%V0r~BS+zP;YbsHi$=aU2(y%Us`Q$7ftkx+MN1#?WU1;`uuz}Bj8X+JV->ZOpvWq- zc+y;|2AZwsjArkWqd$>E`;K0S-=(9&ht#gAjCncmic<2gsp3U*elFsPLaUU#Uy#x^=jUjN zgGdx=2|ydL$RK=Vl|H$GuyWPtmS}&YF`seUL9h zH*o^DTAny@nEq6m{Pn~z{jxjq(TVYsI%3+X9EK3$B&M6nK>(IwW2bT`fN$XeD&gEq zqll&>fZvG*E8WuXD62hyXv)I&Pw95T1OVs&Ok$syEMuh+siM{LtVxNM%ZMMaWd0TA zgC%o!tQSPSQ-?w_73_hya+hKMWC!LkojM6#NaVvN&`wu9g2md3`z{8w$ls3sSMhwv zy+cR3Zq15c$~5Tg{7)d$S-|uOPRlU}A;=bRLh$ZoHGB#(?g^4DFlUe~t0Tz;iT(+a z@vwf7JYPpL2_&9RkmO+JAm)HYHP_Mf0}aM@y=Ijo3IdzZI+9?JVAHN1Ng2W^kUT=e zGzqvzXu zp+No;zeVzq=L0%dQXCrbz0+wkHD~0Z65kXAg30Oh(!JtWAaJ6A1ESoD63wPWGLI~UJ6Q~Wy@QAB3jNjw)YYVgbg!4o_u1HpKHJ*5N2(U~cs z`V*Jrf2MS|oQw3d<|iK,dwjkBFI8n;_D+%XN;vp()u4cDzc?zo2QR3G=7hKs6? zJE7qs>*G#ZG-P;vi!X zy1Hb;w2-EZ0)~)Qf$%Fp;bvd#XHhzl_$)S=^&{$5q2XSs(sYM1ANO zOYG5ym)rcS4}S%M^3q~=25%mO7`a895_%WNpCSUDMu6`jS8v0*EL-d~V z`I!Nh|H^wx@97dH3Jiqxg2;PmbjK(RX@fl{DfW+%OunCMzJu&UJ;anUU6brd#*;9;YDAwgqQU<~v>3fgL>8Tz z%c$CER3Fe0z|nimR{HG)T&}^?26d+fpQn)SD-9+&)ei}t9D8~MQ|2OC8xDhdfjX$6 zWzpz%M{irO*m1uV1G8(JJ(+m81&4WFeI-BB&8Cu~|R2dv&En-=+R#)JQNPZ9rg z7ylEK(~)0~9LS%d@xM*e^YkbA2WkAPiGP}w^&K_SO#EkQ{9}o~UvJ`nAXt-sgvLKu z$}`ZJ&({#|`EN*ZFSgVackdSK7(24jG1FTz#dV^Qv5ZVY^UY+yabTv2?K(%| z6m78L#Ed!VEFU$pp`Ol^CZJd|a?pFBV0AXtAo3Hb1{l3{8|$|qRBz1PN7_u+MCh-H zP!d!q$ISMZN6z&h@HC2G|BFWUDRi(J(1`J;7Oo-Zm<;|l(*%vz6-=z^#ha`-KTt`@ zFggg$@t1#`8`54OCNGkexSJGO*Z;02@rumNi)o9(YP&z!mY~h_MWCjrSdDWRjq|60 z;2aWcuk?yJdjGarWG8%7MLDUPs*qRCYaZ<+GaCR!s%h_%s28wzs>AWLaWyF+im`5G zGqnkn56ufUv&=x0wocbs)xZ1esrA3oentxGM6y(uq$8kSnA4GK+Vr@B^tfrO+#ze) zQz9lkbqrdnZDD?iq$3Zy0k6o$$ODhsne+;PVJn77>?=_lk za>=cfQx+Q_zmlt(2CLALVI<>IbxBuy@6zaEb4+Ik6WT}hf0`p>OGE`-smXsaJ9FvC zV#RPSz&c(l^iXvbvPLlrqOHF|%$$zvuvSN zP)BkkXTfnPxT}AlF^$cT}WUD-=K%=?F8g)C!u$h(>4qOi^mj{GqMDJ1Hv5wdj zXghihD1RR;#IXnnH{ZW4=B-axI~&{4OmIGxG3I`Y7OQ1lSpl+f zo<_pkns%>}gY+W#S7?ZiG%??!PO_I#I&CVHFl{X2I~P0r|PS z1yLyCd~3Ht`Ot#5T8}J7moOVK-lUr`$I&_UZ^rnwmBoc^Cyyw0-;8->0=pISGjO;e z@(#NpQefTiL$Nl+q+o$5+TnNa3LlduN!`zaYl_rQ9ZOwrxBG9osmvEM|>IAW|ar<)XX4IUY?oHrl4D=yz z3j-Sx_&Ecy2f5t(1p|Ev{E~qNDc4#ENF3xBQ<5ov@@n&l;i##D_)sW4Pd91A66DhT z4&0>i6@{GA4L`_#yc*`Bs=aTsd%v41VK?sEfGXs*uyEoP?UuTNQ60!?0>xPc9z^3` z3;#FK$^RjG_qDbW8Q>J-mg=0Vz96?$7hdZSOjMm+R0WS;v$06-;7wL^!IuYqHWXr3y zw1Bkb0eSZvAX3Hbl2q|N&Q1jJl-hp;b1di36gHAZ9#aramkQv{OcV#{p7aWx?ARR z9&2!)@^fpXeqvksh_wojZDlzE_Wat)2HQq`-eI}W)<*x>YV*-n+#5@4POIb=zfm z`s$PN7t2C?T)TE}9F~tR>tGp-@dpJwErx^wwDW=Zr9V60v<~uhLC{1b^<=9vv?jYb zh)oydJq6od?{S%qy?@Zvy!Soe_3@`6%j|qXEdp1Un!{o>;;|q$hRLtxhxa5#bOuo( z#l8+0=NWJA3EyL_=CYqj70V?4MIhl~@5RSX12ngRlb<|DKAa!K4U!%CpU#!>fB%Uzx--v(aBX@mc_Lrp zUrpLp{Dzg|2FmfvLk$BVHg_BItgfQiDxcriTz+-AvD;gRp`i)CV^S!|EE7b-WRR6j zU4=d}f=uw>M^HJfkYGDkCC^zNWMYK^+=W`QLUs40ORvIzmpK1qC^_>#E%gs@mNcQRW!Ev>)t;AC>=@K!T_F`Q9)szjMrm$gX`zlh}i3#tCI$(#! z-1}6$&D4>Oq>Z@_N=b%Lqy)+A%_w@ykt;Tsz+bz?mvZcCit(dEb5EuD)TD|%{|HA; zinBCTG=vN<_DqdGGOq-^5Ck|y{HgL=*l@)=GPg1)C8OArL#hX6EVbQn@+TIwBm92}uaNJq z>fD0zqfKYiH9=CuIo^UttUX=sy*g2U?j?EQ>WJ3qJ3Vz-vtmlp@-7*32SU3x(@Vf{ zxQ2yYLK^9X2jXyQcJl>qiv|fhH2vV>8D0r;VVy3B$ zJ!OA6eq1W6yFYnEx&l%N5|EcN-&vz>)RO(-!H`{{uBJ3Dwxx0p9Fx&ZkWQwF<7thq z0>#uc4L-j~-Yh426MrdWOsZTZ|HciK?Q5svx67O9U5D)Sj3kBF?Sp6%F;~!*<4Iu$ zjZT0%A)*vE_#wyy4}&~J{`}2x$w)Aj+U?)LuGABU(Viu=|7W+G$s|7k0`MqW4(tS+ zmUqLL`z38#N~Y=*lEm;RMIO3tySJ7wrN}-?%oG7RJBhIs_oD@Fk01tIC7fuezyo)z z@e7k6S)06zYAzfkj@}>F*6x zs>H_&vSIzGH4Enden5ti&@bY2*P4C$?&6>hure5t$I9u zek(-Zz(cOJh_lWP3GMcG$Y$w?cF+NqJ_V~ox=`(< zrC-o{YL?JWOTY7jeCyq?D4Eu8zwdWCSyWg_%Y+G}@p3{T8g^Fx4AdiaTd(&bJQ_R5 zl&i|9f|50*QCs&~Mi|Qo zTg97Vh|nKGcG3vDxd^jn+f0eILtk2_iNZ0T7#GZmN@R@VFa1s(}^~_^=CYGgS~od=3I2 zK0mm!Kvn7nce%mu-C(f`w3&7gL~OnTKx{sCQ*CjBpT@a{2e@x?qc^%ho9RP>h|l`~ zh|dZ)mFxyrxxoTA_=XF#nIwXU%`yPQ=9M}s3%{ri<`=rb`EGEY3$&TC2qHdn01%&v zZmKD6@Hsd5tQ#Ef0%=-h_KUFHJbK&PrEhQ+3gOM8&7(#Nw(D`?{sN(q?O}sgUQ8{> z_H#!5vH|`NQ<{Z>lh;3_?UH`#JuTL_K$F4FM!47bH(a#iXP7%Eza+|0paeXE*7oa( z0!J%O$7dSFEee&ogQ6IGoEC?yp<^-g2x6HUL}hUSauLvG@v(r*yMj2n!YqX*OH)0Q zrPsZ&6`pkoL=^O!K$RkvOTu*9L&U7HNHVs`@lz)n^Wuod{S$0zPR@I5%xh2NQhJmi zjjo_bPbjb?bT39|(@RFGZTkofN+iaxX#h{xK%DIq#3``GPbYB7+ktxy`ya$#Mh$pU-WcZ~>&DqOa6#3(}d`g@s(0b&1>Vj`JP>|fAGN>3bJ1d*U zl-M5fl{_BRJXX}UlKTjt;+F3wLCZ>EZOQVYJL_wiE2+iDw> zqo$;KObp+d2pyz~S4rQW@0I869ipH8x4e6Ae|_VVYxZRY`^~|XEaUbhBWLbbl5E^w zg1Z>rLwb1b^P3~D+}FAbu6gW!jzRy!zg(qH<|J>Jd zYDXaE!_BkBcXK4%TY)x{ffa26Z}A`oOz@ZKz`{hA$(%Ax2)66tP;CUAF*)8L)f&UB zL?_s-iP!eB8Q5+WuF21q2ejSf;sJIW8OZ6ZrdLq~m)!!m7g2e)>+)OW$@(rms}LuY(;zBg+ygf9>+lxI6%B8WewM(;_nmr_sITUjEAi+ETlc*9a%p8^)- zBjl9Rg$%qX+DNO*8xMxD^L#BBUyhD+Rz?eA?D4KHUMv1p+x?SZ$GO@4N`$+q$1GO- zpn{(X<6_kstR$psTSU_Riz7;Gq!I<+=y1`Ywjjwcg3$JIrV6cDcU;Z7e^%fQkqlHq zG|gay7Je$8ZYBp1-ixt~DNi(vWhDG4q98Ht{BSpz?godtLBS0syTJi&u)iBj07#eT z&{2I{*r|3tmVp4eF#wfDyD|Z`bAxT%V7MC$af2;gAhru@k;M_CGKLNuF(L`pEOkK} zcUZ`D=pUN9gfJq%4G%m2HGT^lB+WBFB`MOpme59)a=H9@91cJ16 z!iapRh6#2Nf~FP2Sok0}iX=v{7H$kl4orX>(_F(eb7TB9OcOVzsfIDuVhYku?#@9A zc9HGwBp0kcyN8`gu9g4(DJ1Y3HC#$NiK*%wmg2{l9t?ZC$Q^#}Z@JeQ%`fLG>4CAh zm?qk->zvMA#1V-1>4ay(de;e09PLW^A%&bRbh?}iQgY%HR+b6HF=-=5jn+C~2vt*T zsH*wtQ1uOLb@OJ1xb@5D;vuitrwNV;~B@BbX7ztLHaI2f{q<{_`<%C~)&vbOy=b7)>1T#T1PH^tQX%lW#8%_f&I1gY7 zpL-g~y-4B(^P}aSO>_v{rw|{ums~cL{^~w2VKYramJYAlqtHs?f!fyY@!o@tiu?}p z*8;H9-69OQ!RggXrQ?<(cpZn7{cyZOG3szie{+Ew2(dw6wN13RB;;wI^&zA z@RnZDa{t4vI^2%h=h@eA3%_%pvpv+$9mkH#%*El*38t@HJkYC>p)^X)JKSabTOh=H zF5yD_{<#p8&q3OGfbJ(JiTolY!~-}y;>84Sdy=>2B*ZLl1OTJFvAzgsO#%WAWV^cP z0Jl87qnJDq;L+C*hTs3QJh$7EJeC9PpOoior0eAQ0*NQ&p;0T;muCd(am%AEangX( zWi3D~VroesdZhGR17U~TRpf8DwlCLi-F$7Ig)Ow~)-Qk{MTy0QfS|5Bs9F&7iz#Kd zmbkJ3?stO~Zt$cFqz+>~L!16>rc&^Mg}w*gB%Q>IKv48odJaVdPy3z?*W|n-U4tm* zFm6xip4ja$E<56E&fzWe@O_MksJFv!IOi5(`s}qMF zb6q%Q1R{SLN!aWqJnVeSc5=6);g(}WV$6LF0Z45)KQg7xk4gc{k)IrMAUWn}-cd4U zOxCD3#a_k)wwJSqG3j=SG3jSBj!ev@7aF9+FCijh-uoopQS2#`tSECGk2GV_DYLCF zB2_DL<-qnzIQp@oIRzfdxw?7e#q3M+f##*82*gmn9o&lc0#aqnH<|2F$BpT$2|ciz3D;b}JZvc`T}yvA<7pw>@BdGzC#! zdJoUz8skzheh9{bxGwS9nqRN9F-1Z#>lM1m~l%1 z%TQPlS8JA+Q{o~K>^UyWYYiWr<2JpVTGPWGac78OGqqD?`|)mme_!?08Ep}eQe6D2 z+P*^e`fad&S8F)~kNvIXw|>jjA8sv&o%pRK>0%E*P(DkU#ri_rjtqf zKf`6)$ya=v0)-{Q0;_3UxZL3PF#Xjqx&7~bI}<14_EC+T-S$A=6jci@eH*v?H~JS+ zUio`KO$%kcM8}E}-vbHvpkrh1^r`6o^O&=MWBoCg)fnsV z5HQ6bhMW;$j4S0DY-^CjV0#A-JAb5=MhORR+z)U5@lpt^&8-5R5{%BLn`GyNoW1MO z@AVc+Hq*<*)|hM9fQr~&vDKu6$mOS#^cO;8-!pUdUmcLGXF5ltnpjL! zcKarp^oAf#IY2AspIfs_#MS9+z` z?YFTAXLokG)8Z=>IX2TU)P^2-4n2d4STu1NO-L1;>L1h;oNNU`#M)?LQlQMA>t_i9 z4$%bkmDHkMIMI+uwQ%ATO5SbpL^!b)xi-_s_;pR|-y@%PCvX=16V9TIc^{!ElHm)W z`x>_3cWx$4^JAFN?F>gITcZk+hasnhyzg9>kf(`*ZBN}4Z${dApkO#B2J~wo`<;)n zoFNLD#nl(+UeV+#wDNsAi+E=VwT|~Ck!gp7?mUTqIxB3ZVia*nc&PcmB*gVbNVps5 zzJ?$1J9i>U_;h^xGi;^V62@PGs&|p!)&;b=1x`Ls>WQVQ~k%t`6@aGu* zkumo}(o0C0hOGiN9>@a5BbM|8;dIyKsEejltdJ{d-z&_8cmuLcK$xW1e7D?h6 zZ~B;$IDRiB&he&CC}~EL_{W<*rDS&`sg`)tW=hicw5YCl(`S_QXF&&WI*70F%Qleq z?VLRDQWH&vW<)syLTWPjQ}P)kH5mdZITT4vhUSz^KvI*T1tmKpsmTyX$xtLU8G^DM^?0L zy`mfIind@y4Yfs4lCM|tHr_LkOpicaTj{jAk~aWJ0T(Il5|;@CaV;co5i5G6UeV5V zMax*x9rcQSO|Yw_i&@D}fvK(ZZqwS9zQszetXFbby^;f2$;Fm>MR(K{oz03)saG_! zUQr)bbfi`?ll9E&bw!g{(LVKxc6S$b9D3k%vK3iv)FvOk;??7;6TaAGqwjMu%MeYA z!H%t6SQ@5LC(HQZu)dY@-T>+)Qz==%U% z5Xr#a05`N_U{8SiqZk+iu&M(Cy8sOA%)pKS6T31n3gGmZ@?30+03xFW+cqxH&fh-n zOM9KJH6dFS%3IVZuC;tjeV^+g&vkUh=f*ZTnsVMfh+k>Ob$REt-iF#F0- z`yhGajrMZ8%4mG!ETb|y5}AVJe|!~6B+oeTY40B$X8PD(WPF z`RMB|a?gGL_vC9p{^9j++!Bnx(Hmvg-WU%FZ{O(M7ZoN;tJmZ4JvAm-dh1=lDeF`fqKGRBhtHDmk@5ZXe3ShrGdGfooUCk-1C>&a5Yko2E?DLVX{uF+h0k=kK5 zH1K5G+VX69++WGC)s272`t@(hz5Wg-Bh(r5zK0Fsy=}pEu`0FTGmOw#e}AWM^ts&T z-qbFWb3E{Iy|j#!(yKf+?{NOJGJ_0FN-F_KvZaZil3XeFWw839du{crhRA2{bwouC z?@tdMM-D&xDkLer2nIG*7zaBBp+L%LDX+TUQokof{^EY9HtMab$ZC=AAvksFpSXi< z9~g+8WL-7F2y2Rb^L~gv>|@#RASMBXNzzgpv}U&1m?W*BA(|FnQRgX=#W%E3`;d8$ zBQ$oB#U&WEuRb7Wv*|(Ku;T(vAh>5n1NRM5t65x1%B0v|eN(P^5T+j{$YBp7{J|Zs zYTEe)C<2wSVJMG!7z0jAA9mM&J6PWNFeQKla=9xuSk23!Dv-DF!y z(sr%&kEr#Jw3ZfWt*>FNukq24A3&PQ>JAXP`J?`wo*jg(F7ZGLw%5|c91;uP<$2mZ zI1o#89SNH%GF!9r=0S4KqoIxdO4ejnjk0{=Q8)dRWZCDR=;lj+u5&tH=R-V6geeRE zbPWM4NIm~1|NJk-?0_h1|0(dFS?a6H=E`ubTk~(yY7~uq+y*i}{diz2#z317XxeX_ zI>Sy)G2@$v*X82JtD1p;&SSHAZTq)iJ#2VfO;F1R1NM0)#TQaXLHQswWO)?`hU)l8LaN=OzZRNu%+n(XE58#)k` z(Gd>~6j32fiutv6G_MIgoG~ZWn$~Paw{302Tpp6bVk$c(7qw_z$t4Wz5jrZ!(f}AzQ^^! zb4<*pPS?AXS~3~yWcmuwMkLvrME!OvV>qr&R9C78e=(;a&KRf+k71Y5gljDjzw&?m zK>l*iyVsSC9QQJrs@e8$XF=wh@OV`ZrK_Hs{FI6A0KWMw6C#aZ5pcC@^PQ=Q-9H#L zQi{F!J($xMY3Obrnh*j{thR)j*^5ZK(MwKtGzkGF-czpWx!~}L_s~nv;oU2|aJYkp zphgwN7!Xxk53c>N!@r{5cP6sNWZ|qI{xTf=6L5)XlOg>9InQ9zxZitj{Ib#9d%l!g;D6t9&)MZh} zqcXhjxQiOB?*4-%)KC9(I@3Wl2UJX9wCB+sl)JkVSscbbJ}~Q%jV1Z51ax=y46smN zMyXwp15=w*^{k_ASdY4tQTHY4fkdq|<~i@c-zL;@K6B5-xuwk{Cn#Nbu4P0ags9WQ ziSc#**%i9`El_6gTyTKe7h8z;gxya3(Oki1dF3shd!D6pKhxXOwAfDxcg~ zvh>ZY>x$l+>jdUqy}3B9r83={+ksSTA8r*M+kCj?cqBID1U$rs+yu?^|LxxP<)%v% zSu386xVJ(1K_hMf9)Z4GAsz>Oxe0hg8Mq34Ru84xz`++PZ5wmL8a?PvyKw2P%=SSF z*O>G7OBM$SX){VR!HY58K5ER((5410bpPL}L5VhUL-h}0l=()kdje}0i_y(YsjeVB zExwvGQmr-r1I?^eIK?$bVb6Fvv{!G>7$kuu zMMqk46ZBpGpk37mNv!3OF3oUOUdLn=&QJ$DTw+zS$P=31-JLJ z>hVI1)0le-0}`3fLl3G4il<1g(5qHUNs4XB3O?u<)qDwMJ`YC7coQn6iy_&`%EC~t zO^-ZkxipXpE)K-^;W4Kz)>7eGYBoz{L)-QbAhsHotQ-#IKJ`jP)77sBD2v0m5U)*i z^`u~cvJr{V3bFKoERL6_FM-j|4fo?53Vh1o0|D?`*GUuIv zO0#gTtN!;bN>Vu2CguZbUWu8JSCI3KL_f1g+-^^UA!RxSqAG~o2aZ3}vCgcl59ii2 zTR<9poQNFBLy#7DtG5#sQv}zgZGUWgSGEFuB2kQl99pnKtz05=(j8-ZlANZcHPL)P8xD~-$|EVGT9D*-qG5joor(I<5DuOHb zGWef&F{#;1NsC~Fm<%PpFCguMVofbbcBUlzA{l>5BOSs>Mt)PRwO@}?+5MG;kzAN@3*GWqiTqUYmb%QOd>Y9mwVVjEgHzJp<^Hud z3x3|j;xJ;N!nfsqF`gj~qZ713X$i{twp?K3v#{^VNvl%qd2?to#vke$MQ1BPF3Khe zN=Q4dzn1{xS7(}($?dqdUXv)%-=wT;$930F`duk&$Bhixj-3&KZbOoasOzcBYtO9<)x^G|iM_oiiEYeHq0*AUnXR;s;(j&`B5xHN zPom#fJI5+3jWaWog!nKiy6)in-vrAQWUxJEz3^2O{Oe>e+V7qm02@O_j6 z(OhuERXT#n;RX!?Ky#o z%GX`F?p+CC+k=7l<^yt*1*>xy$(uTwo(opTYbkG*5`%gcHSNYFbNbD%7Cjxq`RMi1 z@5=K%xD|T;M@4`2;2!Ap6N`&(_TuK~_2I7-O^oM8dLT>rE`i&xmmG@4#GTTwawy~a zaeMU}UQ;6ab1C|&4Mns1bFX^nE8i_r2XKL$#|I5O6^|sYlm7HxB_@eW(0AQmG&_lF zqu00FudE%!jn%Jn6x|ra&E)jQ_bSf_VB)M+J{Gu0j|+`Gm4gCEf7zeaA*1#f11@1RFH63)#D{Ydfn|O@(4{JqqKOx z>NA#Dm9kj}$DUb7Qp7`ov@l$--GbvRr|Rf(?p)Y2+A##hZ;~dCVi8zdH(nmzk6;_O zec6@W-B#@@d#5snn}?e-RCP8;+121Id=}9DCxsvr$&T=b^yg@3gi!D!vod#WyjELt zkX$5Tc{GGc=;)>uoJ?!RVYM>gll7znK}=hZYjOJp3tc@Hvsb~w^YJ2ooU>faUJGwi z0t&ivjEv+$WNrpb%Y^l*(&+qDDRWh7LGtEZRw!#XIXJX?M>XopKr=>~N2rAq+i4A< z+tNPop&{#Ou;3Ci>Mw>KHiKKCU@7Y9J&P5ZXdO6omL>seh6JM_L8hhf$woW`8+>oR zwjI~p9fCtP`$-rX2{MtG|GO#w*^(evOCXw&zUhM(>>-gOthObVCz_G~|LAH2BYQ|% z!E3TmpSsHLe}w;+>{w{lm%Xb?b}%@L5p8>L-qV|b5N4*kLK-Ldqcx%t~zwMO%p z_dvV`^Q&VA{IUA_4!WhUVdv4*WIz#IQy?XOjCj={Ycs?>TCv7W+M#$6 znvC!0(A4w^nwTU$a2$KYn&V|eGxJHL7jaib6Nz81Z3VppQix<+@hxf9_-hL|=+}UuE6OJLx)(W<1--5+(!9HZLnj;U<^2rDUK=VSBQzN)A zua77q`Ks}{k=!u-->sD4Be_`pC%u*Ykz8B-6+ziLl4}>VOQ8B9g<|(>zi{~cWxSdVjU1m9T46~ zSuqAPa8{7=`xq{=bvqcDx}~9O?t*#Li?Q&=Tx|OwC2TA=u=h_rSl{%n?VCPS1VhkS zxdJM0mP{27`L_xlCn;}@#q53}N!c})8{f34#$D4JpR^=BzHPw|N>VbO z;@+^#N1P>=mO6rL=ka;aS#(zhgPYd+V!3)8!Hvx{fC^_ zI9KioDueI~MohVxj+4l)y^?D)H6b$XLI_)`VapdCamhe8Lu~s)V-8qNSDPzSpXR2< zT_Iooy%!rmesp~8T6`ev8_mcMgwh9xp8~8CjLD_6jchZeHCH^J;re&~jg}2bb)}!Y zwrn*yaC3so&SWy+TtG4$2~e`1;bMKRnaO@l7tPAHXSj|&+qL9YvvTzrF49NTl1t2r z|2S^4|F5{PfZIx!F;W;O$?(0uB8}tHjXM*WS)@el$9ce4iHbUoOEAu6$gV=fPtg42 zM5V`g?rEbJLw43EAN5z>8PDYm?21EvFm6EehWH3J(E zMID?6grhs-+J5mz9!kdvh}0i8QKn4bqQm1B;g;QxgVTp)IKF7WS~H)b#`dTStJ269 zm9Hjn&-vL*P@^&Tfj1~5!+cXw__JI)&Mz&2q0@PWPE1h7Oytac{^`rGLpAIzqy!JM zH$Lde5NYs5-nak<(HU+>7E&XmGV>bjxZh7EF59>}NU^NWi%^?A;oUSRAi@t`* zfL=-iyyjcw)MRL3KpbmtFkvM_Y@9ObdG2Ju$F#+GsJaGI$UaPuSk`sUpQ@x!;W~}U zCK)@Ua>oPIfqY~;D~kazU$qq#R&GHBZ&3g8wB=&AuLL`4aC1uHZ0hDECPUXB30Z}A{7@sQtnUTUhdlR0Ug&ISI2(`1_eKExP_T812FzSof1LH ztZ@85;U`Y2Y1PrVAaZw>@v%C5hq3AR_u-4SD|t`;^Hqa6Mby;L+Z^1MtfQx!go6 z#4;w8($uhx-=}PQf$L|KL4nJVcqyc{VH&@0-At~N??m7V7ILC#EU4mUa{cws?N=7g zA@@D@ zDXV62UG)80DkZZp=u1Gsj)3cLMd5lU(Cl99p4I_VP)7eE7i$R!q%F_GcWSV2MSrz7 zwD8(u6VSt{(fKzSrA6_TZv5Ro{6b}-PJGX0`+WXNq)0+nBMr=36t_8GPiG7KS2%W-^hTR+Bm16E? zI;MtlH~^vTXPfD1gOc?USK7Nb?adsmg75m}MV(Haei%P@VZ(Ml`^*Jql&NCuT!40d z`gqMT+WF_kE3;;EH-b{3WtyU9LJ~;zGQ}itE8}k$&7H$-(7&{c!Vox=Z*F2JlVex+ z<3nUM?_5}(r+r( zdE8j9p107T!W+ujd0dpo9t>5VEUw$oO!5@zH)@>p-v!urkT0Bwl(u$HgI@-=$zQ+@ zAuPt2)6pAPJ3j`4A3likcYKTdH!79fEH1g19v9I$tKm^=_V8@8&lBJ1e~isT+Wpd5 z;iopXKvPB9*Es7^!{O_SGm8tDIUXHOdMdn5YUAIdA&5VGmC6O-+u=H^E}Oo6xQ0U5 z!62;c#rjcwr#Z3ZXMxntKZ9SFbQ>uygdWB*ruH2)Ev&qzShBgEUVF&njJj5|Gn?DY zg`T^Vt9}y1>2^1tMeQp0v?BLSAaLgyqtW^bmmhWz#;x(kW*V*Erz~8^J(I3-G+cdMBU8PG&xD}?o2k!2uV5_B zc%IDRPf%&S%b%eF_#2%eh;2U~ei65EcmZix!pFmvh*!DjL2rP>$nCN7d9GsbuH=^j ztZayPv|Pn0BFs#ZVy7Yv7ds6PtQ{y5d%sd_Zw@Z^RW8x;AVZ6efV*9Bfjm-IG*7)u zvYq>jjfVCZE!46jz~M7TQ~+OXB9RJyqyeNpb(<~Q*ny*+-%`sFpYtRedKJZrY5%A4 z1#o|cywEhD1bZF|2Rf;(_sSBpgYiF?b_Kyv8nJ_~DAQi!q6{e%Z^ePy&UeXB-hGV= zA7F%gP%AHkCvA*Xo|e8N83bF6e>QDg`jAuTbcuPX_h~SM1I8OQ+mJVdxK&(MYF@*c z084DTtaMmZn^MqLWh+-Wzi7~clG{%l4Dp+J;@y;2e`ETmn_d7l!plP%yP2f#YiHUl`JFLCI*i7wJq>1S!ZSuuv@wFa-}e0> znTIUmO}CIt9y~>QB4zT@Q>8JIA5WhuH4y$A!9NQU{!`3yln+3IgsG3quiRxRhI8PZ52JpYeEOldFFXSE;q<$jJRsWUx;h-S(Bk-|lM-tnv{hB@^^-1NkQZ3Rs zsp=F=E;T8&A;JhiNJ2`895o(bWZ_O4PpUBwpC*Mj=nASX%fBN&a@3cEZ1Zi6kHNaN z5A;a)`*G=%wTmSuuQ*m^x6A&m{rQ1uQY|Sn>+v+{vGj=#=7pHYWAzIs*V` z1Mie=<1qe?w?2WzF`^*na&n8qhCm4NHxi83^eUq+jo#J7ayi~p%`U_1TBY#P6I=mQ z085SDiu&xJM<$@$V|BHx8J6M4fYJd?MO zrM+P`oimZcP~GIHqd=3Scab>Pbj^BM&EJq2k{)vOnjt0Q^Sg>Ym?2dM=AR)&RfQJm zwxuvBHhn{=6J~(JoUjLAL^nJGTZ@@|afVd$Q*dw{I>%6WJoSkOmbPo|!z%|b$HEHh z6w*mj1A{ro8;7a!4wkIFjNy+ciSaK<$O}M)knz@Mcy&va(toDZ5Wy$TlIIzOo5l8sTeArW6V(j%H#FY`c*=GNoD`zmz!0%g>go zv3fFZF{J4p_pjQ~8WhxyHu%`I24dT_E$Jg_M>rr!DG?|R1$>Go=K*y#mrsZ$ zQM|5j9Pln0`3Nh^W*W!t0!i%C3_>XGok)ynjP|b7;(kwlXeB)VQrvEQa8On6ftZ}9 zTH^{2#+i0g=$h1L326^f%Ey`CVqxVmL^A1j*DR^2r%Ss@#fH6M>i&-&dxxq)D=D*R zz&4S@+fE4(_12n}3Hj`43*Qy;A#4GG<>j}+XTkAzh4NN% z4oW*3r$n6Kzs`~B);c){emcO9ywyZC$!<@i$<y(P)QWW0)qI(lZEO zjw%HDL34OgsAJaCdD1T)DEq|=r9>}|L5LDz=l2#$As!nsbnsmybqi0!bN~XF@R6ft z3Pd{s9})mPy9FSBycqk1s~1UQo0A0b@6UfA&204dLYi0%*yN}MG!~F-iS`4|hMjB; zQRAG|W3l7|X|e|XC>>@EU(mw%1uTctiopr`!jQmY(DoCYv70hm$pWluf=S=~AKq`N z)GYB7#!QMM8$-W-f5T5)4$ulY@H6Fr0nM>nuW*?Gos_=PKL4pQRknDi#?Jbk&;?6a3I4$#u#6sWY~8!c+%IHkW$EE)_) z?hGJhjKJ~<&T?f|ypA!JJz=2_vKil{k1z_t_at%+!z>(9$mo&@Kd0C7pcPWh@=K}C z97G+)$cDD^O;kmrcJt3yNFSG;(MOf*0!Uwha=;32#D`V~?$c4Q^bUm-;{$t#AM zlD|`p-QOAeQ5shxb`LL4`W~X#VQve?s6^~Xd^~xll~RL`j;rn#ZblNw{SoLdzN^n+ zyoc`wr~mCI3iQ(NH4L9%?CejGnrBe4CX^(cgoO*5iVh-2&&kn4>RDkt{ZBY5BOE1U{x?MwNpvPJ8tTe-K#2c? zoUd0&kyW=tB1aiD;!GOTCL=GmKP7PjRI1L)lPCWoRjTPMTg6$nkDX=v(pk1xeCcun z;-hTm{~~o}r=Mlz|00c+yzXQ8s0`lDzgi=82nl`)D{H#6Iao6k3nygW*f8b3H*l<4 zKYfyQc8zpeVs#($)oZ1Z-fJHn@U&Lm@rZ}6lfE#v0VXEEG(_4VN3{d~{tyYn2Jucb zq%Xuf(Hzga)_8Kjv&*lk)A5>fZSswBC{$mD*QKQZHtXwvtP$HJxXdgl;h-?x)Gk15 z+PsHQf2^jq!4BA)bd15%{cO_bZfq*wD#1u_UKmD@oiF$I&O`wqLv z7wwmR9nga6`+@JN{!a*0b_rm#A2iHo85m#xNQ_qA;>cgA$DqW3B1QtYXy)z%?7jN} zSSKBELBv7})uei`gCqO)ypXl#fD|AZvq|?4Ar7=eQFK_!OH5*{v^Y`+&4^MPXC8$h z;Q|nXbft~=GeWRd-Uiycpv5XNti!lY|Cp}P>MU20tfC07f>vZM+a?m6=ofjKe{7TH z4`@pfHCp71sFnakL@y|}uZW0|;?n4LAXeFuAWj3(oy_<9O$cz~tPtS-`vM$0%VX@) zjwtOZ$nK9ph)7gP0f@M^(%Ru4B5rqFU(Z=%wC+R+X_24Ny& z67?O!s3)*?$ySQN1@O{$NHO0jFStO5QiG0O21yk7tz5NjzNn(n$Z1OBVM06LjE-#T zgLI~4$62q(>k@DU#(o|8LjnE*Cwnwtg4Qb#f-X>lDC379!8+uEazR1 zNPWCMr@~C0&-WaW;;Iaww5(o$Izta87dj@R7!lqis%9e>@XAM}7G+Li+=5mR#_a4N zR3Bm&@NbSv3{xwzW=BcTE^g} z|3x{!eLgQBy1z=NQkz8Uy=n7#%|E3oWo|=E$U^k$SPoUX%;%pIeXB~Z4*C*OpsMq^ z^-n3X?hmyHzQA}DH=YH_dX^qXx0(EB$erjxy061`s4&!))A^sgS?escpgoqvr={Wx;?LdT&ff>fFzm#+D0iM@)pKZravO;t>S%;<7fiD3yw?S z#(JypaBF(=NJF8`5Tm|zoI*;`Y_^bz*h)PCYsNLyYWh%A7@)WJ0p+6{D& z-k_yZ-pt~sPf0afgivVfW>IKjur!rIll4y%MF!B}&Yfg-PCZ{c&s3BHntb?6nZ=u) zmg;)#rxdlA#fP7k{HvEHWoU&EaiB4KFL`!VgPGe!PS9)fuh;Umr={u8R}o(A9g*SGKy;YNjc26FJ@-&8 z&Cfuv*2+nS6IidGieI!os0&fG078T@TjAe}{L4`xD#=3q;B)dONBOIy>S*tjTq5E0 zJ$2;%Gx)1BQk}s8g0C%$5B4BQr~L#-PX%jBtDZwJj#nnB;XQ04Vy$r=q#+#XD-Xd>_CBOZn+`zT8d)^agW^&xGt{x~a5 zmr5qvTprrkc!%>+cV6-Q`K$BNmZ;{GxbEqcUW`mS3PALo zLPezSh~e%#Ur?s5v+}$P(t)sy{UX>O@e3(Uz?@Ii$SUQV{aJ@DN)sgiRH_S>>CRfa zh(-pDr}J)?rGf+#S{~X~bfivuhm^;w!wWLyb~F~bicw|_zf%_H5tkyqS^pbx$y%B0 zyEc~3y&{D-nhBD@S_~ry+}tk#Mw%d$aNjxtUbF*FQQUpR?_H59g&%%|%{HCo2#Uk5 z-3kQq1NvpSx(8?1u6)F6{v}oFRu&-;uMS)`4|a- zD1Fe)D|MzqZE5KOg!wd-5FAb z23s8mmj1Ob9P}~oPoAz{d(YEpAn$pq_o1g9dVb)V)S@&}Lb4)Im}4;M2kUvc>uxf< z338C0_rESh*00|4gy(80HO!{11c*|$j3yKzNEzVP>(suqG@;hYo38rs*;l1-u3VQ| zvE=5w&JF2Tk}iqeg(aYh9^w1VtVl3a-|BSc@jS-fihw;JeRGcv`h@@Y^z@QKU7h0FX`l>@(i zo;6h8lT&h`;V2hcq@2BwkGq3wq6;4LU+H`L6#wgv)Le?>L3gF9fg3MbVAE?x#2f%Q zxqih@0h<>wcO(Dou4JeF$-CUS3y|z>XI@{Cg4-QLqM$uWm+>NvSCK_Dgc|_V5uhH(9fx6^ z5=8{EC~nn`>P)$-9gYuG+$1@5HI4@i?aUV|QpM(71=rpKV+IP>Fjj<1Sx>#Lo&mn!mtetp< z11Bu|cjB8IQmXOErzc=L@`3rK*VrEmv#r`(;K*Q~%aHtVDw+yvEkQ`2q4YS2ByWAG zF2!^t9T`AE%3C!wcEdQu6OKBOBOKDV+s{+2j0fsyf$T-+7M2v+I2cu2CCJKhm$z+FV-*x0C@8P!Ol8(H7K6=KM9r=uWsS|sU%yaXl z4aVuoCp45|wBunNrGImJe8J7?6QG-KF3v^ErzTH&#{1J9E~wd+%_h1`XUlf z^7U4SMfa$@+YEtx=w6C)x!`M&gCrTvN$(OWZ+&05vmm*J%O4VX1&@_GN}(8Kt*3~N z3U=%;imK!D)*>%j(#ZO+!5@^UjF7O6SX7`B{xh;cL{bZs#QFSdo?0Natnd}Ya~0h{ zz^&Ub&-7JOQ}3Q)|b*U zVXDYA+%_|jKWfoX2Ftkm3EWl#ZC!LKGe4?bOlyh#%G?jARO_{Dz zF1RV_pr{yPoaSc*nxM&1qg?P^WY*4CScW69BI)u)M!7NZ86_7a=&}|}0c}8Q>%8`( zs49X$@(DtUlRyFq!WbukViyG3sU)0@SGzBG#_W&P&9zzgVMGpni#em4voF?iJ~atDaW=SBw3YebLaA!Y zjh8Hi$$q#3(bZac8T{F_G6jY0J$cf0^Ic=kT~>2{&duV*|IuZcGvQjdZLa8k^8AX! zvZ@)K&&fimO-0BF`4&(zbBJZYRVAxmoILG^$oUOeb+)?cy3gi3%Y?ob$A0vh&L<<&Dp}wKWHx6^!QhE5l!g7C9ew7 zdy)qL-N+m>5V)-ELa|Y6L1N;q32)?0p>FzeXP3}Kjrkm{7X?$y?{^2syZ^iK*aQ57 zsMiunZ9LFj{MemGdZEm|kK*0EP*!82xY3Jst<*BgDTHqNK4+5afdr4|cJrrRtZD@v zlJ074N&|MaHf4f%q&F+ibV0nWH~W-LY{Zv%vw)8M8wu}+XfT-6^#i&8>Gp5A^MQXL z_eCPP8odJLa5t_k&cayu7GASBTaNL~vEpnNK0QmY%F@QH2_@Km$-6GpMfUxxK5t!; z^<_!*`L88eL!Zb~7U^2cm_}))NUoG*^-F+&#mqxWl8%S@vLmHdZ^@-|11YJ7Df*>b zVEBTC#r6Ts+96Q(H42~{T|t?KtbyrV5Hu;1@OCG0+EkLYg9H$QI|c%XkhQ(G@GnZS z3C6>l;TC@wLLGO4vhPVi)(*90?NI{S)R(n30W^}eIRc25wSNepxvb3+K&-6YB!Kux z7%|2SwNlni%uwTD)S-icE@IFen;!Vsu1VHB$I!gwhD%s|C|?4f5{O?Ri=fINdJxa5 zt+|;G)3K&ee{Vvv&HCH;XmHj~UszaAGlq^JrqF^zn`GzQ`8S$L@8~FsWBVrlmyT65 z4*UI*D_uhXLRTq?UsFgbIKmB1a)aNx!Le>I#SM;hgWotoyLM<1G~lTkff14QcESLk zuUDn9Yu`B`5MQ`KH~*=d_^9q>A*@~d$_c^KQ#a`5KX4Q8trwn*m_a{RK}z=nH|TT# zzTzg{u6xB9)gvbaPl_9K^KZI|H`cp6-E%_lbW;Vz!&Ghu*W3=S)cwmD)omvPU)S8A zn}5koJip%M>4p=6r%P_o%|ELWMf|7gUUf!w#R+X=zbHaF0@KBj64AQ)1{Gdrt!`3kJzNB5Lm z&y;3X|2%xrz~qS)rY;+lkJ^Z4<#Q|uin$7I0;W`8-B{)de!K$vh~?eQdR>8iD}^Mj z%7p=<)*)7HYZa<()yAq&eXF+VDn73g`%cQ@!IjzUhG-id-(da*50$K1w$kPG&5B&l z{PNZ)4JcOqJ78og5oQ*ztl&2*vyX$bZoxshgtY9*6>;-N`5_q3Tj1h7s92k>@-vUE z!g7q?E=6mjv)qPHv;M~rGzdCNu0XPv3WPQ+&H9@msJ}YPC4m(CSs>>GQZp3QO=meJ zkffgla!eq@Ls2_)mcs&>^Rqw>3S?_2lv!uV(P%zH*cX2m*lxl4Clty@2BIm}D$4{y zcO77jI1I|7vyka*v%dc_fzW|nyr5KuNK?X4V5wzrB0RG(KOfA3jVSi~iNGH>{L7L* z8bHVv064H~OKx=4lK&+D(-r{T0BmS<&63{%z>O^cU^>L+7j<2jn6|}k1<(kT5m7gU ziD}!?tpH$R+IBK3SD2W#X|@5tcC@X2<2+$v+SX@VR!RuFEEzvqnk%{#Yvme%xQ#HT@-oKS-t^P z_O0_1?-Gu2#+xM&Rx2si(s9luopKi*3Pq@%jGgGD)Uhwa#u>nT;dl7m&q)PTR18LTwhAyo+P`h>>P?1{M_uv&I5vL=qzPkXK zb6enrxzxta)pqMYsAp@bBR?KZgR3Y`u3=<}NE4cZWW6qur>^kD%WXnr|B49QqpNqI zJT^l1E&DwmTb&Iy+80BblmT+oegH8~wT4{0 z(6xCHCmo9S@LvKnA?9R)uFc7KtFMKeTPshYPtD`jsENd_c{$$dKL*hL?OJ60eye{^ zAXeWV^sE0Izdm>~<}-Zl+UAS-kQyw+_+$YpAX#w8&W66m=YJ<6jJ z3Y*=e#4-Ap0hc{f^33{*+(jpyj?w!8PdQ@NH!P2;DcqBa$LMPSPuXPFx8p84X?%=6 z7I?~Hv%a6PJZh})Ks6vn-wk-mRI`2pCpxy_QBXO%}q7yhUw#pu@oH|i{9gvX=Y#iZI5qt6Dev*6Ac zBD`K6?SSw|6)r}97C08UcMjjNl$4%Gx4 zClCqPhp#JqH39F3KTLJJgd8IU^!+e`??5YxU_3cg{d_|pBIt{+Q+{f!0FvYcIvvK5 zLj)f8if^pNDm3)MjUPSOssV^}KcIDiTKAKUhmz>blJDkvDm_r+(ymO#T?4)0an`$9 zY_Zg4#cir;%kYbxY8u@B1hDvN4->8}0RoMPRUQ_B6`dgVI-PvnOSsLi*J1u&Lk!`8 z&S+10WdfY4*tG4*ok6SaCu(cMzg_zgev7MNR|j|;t(09`)fqG*TvbpM;c_R47m1yG zo7U?g?_HPq$04C=gtWgT;&YIW*tDk~P@HzV_hxJbZ1SQ+*t-$DN`<>(vACz>^GLq6 zE~_PZ@!ST?z-!iHy6TnC`^Tn7mB$BXQg!&GYklx**E0N4Ydh9`k2jxA>TP ztWO^#+?r#`_1Z~I^_e`n>F?n^dl|^)Y^Hw=Vyext79WJ%>81#|9X{#WHuwcC4j;QV z8ozKu5i}HFVK1`G(;aTi9ngFIcY}%Q*Sw|7Hgfo9A~P$0uD|7Qaw0{E~lUzt+KfH-slYp4yNlHu(v|SUBeRq-*Em7e$tVk6mlQuhWlF zfRTsA7A1=9S3mxDL)M~CC(yk%ggYj{oyj*GSh4&O$YO6m|5+}-LZ#m?7lS*S_3(5C z^;q@fEEmKwuMrFJ*$9Tm1}R;;{4U?yh=m1H8&Dl5_gxv@2@V{eq0Ui;r~564VgX%R zf=1FKyZ1jT0<)c_p*z=tmM!RcaSONn$<*_O;ZUCwd-BHsHAHb_OW|8dWL*BhHt7!~EhTvT_d?+@Y zd3Hh|Zg+#(Mf^i<;z>7n(GA{kgNhq`>;_-DK}`jtGnICecZDL*&kY8;!4NlC!wuGV zgVAm<)(sk*Al}QfYHy(7lAEYc4z{L)YE9aGMB_Qw5VhM!VcB142HbswQC$hLzB2UF zuYy+`#hly}z4D2ngw73UmL^f8QWq!jaI?AE&N@LcZD@yW+dOw*;mE+;{2`%Wj3wZ!TiF-JFFvV+o~DTD|;tEDeDd#llF+neCwThQ}Abh z%tHNY-ba(qf;sQ<8{HMHGENkjB7M#KpH1Dp?O|h&R`{pTM9m~?$ z{U^LZ9GlCkJGecLC0F_TF&clEvMZF^pT%}iwl3?5@-sI42gF;eK6%WeTC!@5icdn) z6AIAJX$15F&}8&c=?O0ZJ(x(`SAcE_=ry1#6Zx!`Y=Uot29Otq?Q~g{FWu$kTd_J) zb)L|Q^~Gm(D|WD9@GT2=`@V>Nmyq!-uH*a^>mn3_fNMA|LZxWnxOxMeFO6r-rC@$F zp4CP$B@$S8?L8PsA|oo$1O(Y?qhRQwpPaCvFgY+S8|&nT>d+;7c5HS2c>=4*zP-)I zB(P9p7co>t$3B(Dg~CRHsFBzhiu#;dTx}2hN{>Cn*Fzfx%tPA*ziY_kj#JA}lA#zG zD|ag*y>e6yutB;@TOMasQe~CIE`XGylI}rGW8f_OC1~qa+I7%C>WlWhr(-c_s*bw! z)X-0R`#FU2z4@GXXwAYs>fN&N-Ue2YXSQaZjeuGG=fXkH{i5~9@Er&>FgEQ^fFvlG z>sY-y8n!;?hg!3cu$vZf2(22DWYXKnX)5)&2Lb8APTI7apYsxJSR)qjoX56df$Y{< z-n|X0*8A);A+M)5bq3cIJxX8?Z8IPZljwM4Z4i(lzp2iozd;I8NsB?+Ti1Zi2t%Sq zvnvFia8OEVcJ?hcZeD>Y`#-|`v<<7}RUgTU+Wm}|Hn0%yf3VsQ2Tv*e!Jej_rh5Df z0}E|{v^TQ)uK`zyz~Dxy2UEg$R6Hjy#F}j=eiCOD^+*ghJsQ(T_HFW<|88Ivs)ei6 zO7w|2q?^i+1@W>r2?60|^tmxUxF^@@DSu>O&7^v~RwAq8ji|6zar_DIlgO%veg#?c zKZO~R)b`4n({HH-*oN1F#?UW?pw<>-|1ALQr=5Rju!P;cQ(lP-SgIR9tQ4$Q{*B@&il&H5FMAvLVY(VV$ZI}p8%V~hw= zCWcUnQ6S>Bs{Dsn_0E&+u>zt6)J3hIUU_$v79O^Rz}Xm5R~ zgi}u@>$eD2)H&6mO?8+xo;UfF1^aXn0YQb5qxhGfvH;^j9248?8IMeF_c1bx-soT` zWO4qe0jeK~`~=yA{CDV^n8XgTHVk4BK=b=z(t7s?+~E2quZmA$&Od(aK2!()8R`WX#L z9V(mk(*;m&Z*r?{P?jX?YkHhITX|bgFCq=q^G`h{3e#Tmdh0$Tl>OLZFXJig9YO`?gmafa(FTt06 zhUwyoJGq`yY~HwUg67L_y06J{SeL#9r(zBL{BL6UteO8M{OT<0OQD_E_FV}2{ESgj zhOpWp8ipx%HSqi5y7anmpVfZ@96L&)se)Aj4`>0bBVq>UeMpzqS%)xX?JmfVo;bCH zn*R+a#$X0^sW9SLCgR3$P_$*$;Fc7`@e_0ao_eR`c~&jFhtas~`*jL8cV%nJtsb4{ zX+3SQ`u{?}VeGN28qH(7u{Nc8qnMSD;v(stuJifbn8A1ya+z;R*2*>j*e}K}>N$pA zwgEnxLdS3ak+p!3U z)1|4ts-y9)z>M~GR40d!_W)9sKC1Uk&br=_7$xJuXrnUfqF#{RMT0?A&<~b-5M4Be zq(lyNl3$?*By&(dqYS{V@9inr%*nn?Y`T%puYAtRmApMN&od6so67#rM)H3?XU4D@ z;#}}?rL7mb!-n28<;Kd6M@!^QN)$5tbsYbpI}2-=Ohe(~a1^&y$}fiVt*C-1m+DwS ze6KK-C~7ZKDTozu{7H9KnN5r1em$5aU@TpDX;@5TCKoMVff7-S|Js99@ES}R?NN*$ z1!4@}2_(!DGc#9nbAje+C$(hKC<9A~5;Zx6%JuT3V{g25X|qv|Nc&@QW`#4g%Ky|z zP`{*oYh+j^F+`1@rZVO_M@^HT43)bCx=e1m%>|1+{m+8r#m#9`pVL)nb##KGf_<=6&>u5Pn5wk(*rOI$~{ zit1+8zd@Xu4A0mdaEI>wkk$9uHNLkO+sE1t<>uaO=qKGU3Zih&Nw6Ok`wD^2$4aBp z7!b?=|K;oqCxAvx_FWK=$CpHxc1>9dPe2R*q*_s+%$B&m51Ydt_JY|^7FTg4Tx%Si zpia<{jLT>drb3}GI-PQv*ZGnSVKu(vi@szn>3j7{b~>r*V02|UN(g2F4FI;6-UtJr z7_~Wa&}OAqK1qQr0BFh9rH7&)Nw1tuB(vadBXFDm*InlS^kt3osYH6KMXdI06Ah1^ zA|otxF6&Mt%{TYmrH{^VO1G_q;~d<{zTaHT^^82-%(w4FKC~YT3=O3qR;xh_q9AC6 zNcN8+XNQ~l*SyGA_G7h-;Lxsnb~ggB>z-Yo0PMPFrxSo(_v{b?=watr02^Z12PP-UOW!|4Ax2qli|p5iRudsF$tRXOZv##Au85G#rmsQ z7ZvNJVjWbhn~Ei>*rzJi>Y`Bulcb`0mDyUwny6T;ibbkeQx&VFVvSU+s*2TBv0xRe zp<+QQ7N%llRjiVV`CiO5B7v1l0Tni0m5I-(z3>O_qnj>KuE5Br7^z)T>c7E(UhV4( zDBiosi^#(cGc<}S(BGg@1wzfSY9Ek;<>26W7SZwNm?u>4#^*j7r76_gVF3=Ef`%C_ zj)icMUU@Zn8z$T>A+WFNgfu9Byco|>uOo;K{mF6ZPmW7}a$Ne8~V~ZK(-WrqV{d2 zUSp07>lU~jPvg|WSCmUR=lHpStX9w#I2SDsZ0KoBxf4w{J-m;mSN`!F4;sYcn{@{p z(+)bif>owZfaTouF1{Z}b0(do)~_k?l^vV^V;0`)teAzfptJngAlBA@nQ*=szfyiX zgZT+&INzP+wFk4{Fl%4jq1$$t%&26eRVp-uYsU~N>#(6X9kCePmk%4v>Xp=0agBva zo#v|tvxUVoUDG6V#UcEka!S8w{0QK`%uKgJMs?Suz;v;9epr- ztAWk%9Nlu;=(@5t;e_Zr#_ptkBN_*cP$zkXzxzuI|jB!xPC+Jv`BYD3OY7?_bYNcBI+mS4ZmUn&_#e#V5NcO2;pO1vobyzn= z0G&SKtwyn~PA9gKk!1caWhBODHEQy2Ml;S{9O7OnETZY48pNUN!My<`$$h-@J#cp) ziSH~@^iDB8cuV(_;$GNkcRx-y?_k@EO1~lUuTogGpcQHsDKT&bPo;lTn}&}b@D(Yn zM!*A_YyNXz@Qz^UN_lesKF>>GU5$RY@CSVlB;B7*NwkZOH-ECI1Zd<^MdR1gF{Gkk zx*ER!pK3(Ff8BHPd1%;kJ zgk}~Yv8IMxk9T^==gzL$x(gJh)Q-Hg{};6 zysZee)OP?)xvcsm8zxg|*!q!!TgI_QMjtR~SI6@Wh;8md(5Kfis1K*RA9i~U^f}5Y zh!6OHb2^X*bQg9wVBStODeb&DoO7B6{iSJLT$zdc)Hdz!pokp-Oqhs__UK2D=q!W4 zdpcI}CgYi3o7DHI;@MPO(e6ZhN+x|D3Pfiq2hD&GWk}2gcizH&seu^y!(~U*J{)2_ z&1a5h0sO#tR#x1RmPYV{<5}>48(0y>*Z{wDEfPlY=AO_D#DNj`IVD&p@T;*>_}W7R zQdZjSnrv(>4aF2W(RzT;WaNKOf!Yb}1N0MtQbuV;@V4Kw8Wji91S|^KDC{^1Q({-C zQ4PEMmg~w${(RZDtcq7_%o>%ucewpqR^97s>aBL%;eP|EIfV2@M*39aG5slN2;GFp zy5L+Toq>RCQ#2-?Fo8uj48*ini6rM_Nzj33HfRIe?s-s?>Do~Ty!1VI1K&D<1^0jx z?+s2e4$|NXIc6ZK>yQKIgY!H+Mu^NfS`T2R0JB@C01xSxq>l%Kje__&9|68#%eUmez*tq0Wz7!Yg^!4bVSOpDkBXUY9!A0#Hm7F zW~-cO$ai8)B}PeNj8hry5HB$X6Qc|@=+ z(^m#-dz(@P9GEsPuaaLnrS&HFni_Eb4w{5y6x*l9@CfNszV!ypTJ=nOOu90(RH42WGQs!pBKkSSZC)*~lm4v=UsqkJz1+XpLuqHT<(a7Yt0x*kK>M!P@ zps+z*=s2ZbfbK<`7-0G{ip`~NjP4OA_=omyx2cIsSGSh z>9i}qgRocJxJmn-*EF(j#$J$wM!c<5Z<7!!4L2I8D8?EC)x?-c z3}MH8j>@n)myi1qV-{K?WxUGBb}oyyC5Eu$-bZEBa%xQ^F=|2=_GFN^zToopW|sN+ zV^q<$$)n?>gxrm?DCYiTuU?j=598jCS*MW7UjAHqc-h{K38OJ)3toFK(8 z5yO)hV^qdT4El&MkQl{?(NkpvVN;wKpAf^F81X7&jf)biHQl^?sw*~V2O zPD$dFQN4KD)UZ5=QHmI^u+|M9@yG~@l87>qN!bFyg_3`KDHAh zkbJBsh7lG9d{xd*#Hm1>`Kp)xlwa^NjTn`PF;Qjg6V=M53?oJrV)RoP8=XyWXJUj9 zqpixQ;mnj~#0Vosq{=WpbP60s9PdHk1ge|}=fYueVw59BAr`BU_EXN-A720?fEagF z#tLU$y+91H26;?nY;`jB5W|mR-=Z>pS#4C4xRN+xb@F?aQ+|ocm_dwciU^+N{P@^bZee3{H@l`Pzw>zQ^X6~=rX?B$na)}z%{>Ye7E6QS1gSJw|LDtZMi z3AH_`Dq8%8+CB_W(a}OhuPI&6@v$>lNR2vvu$+WPHvJ9s8dpa@L(Jq71rrW{|2 z9!nQ?2MjYU8f+8{o1yqMT^J2OLtlaT1BlOb_NaLXV=T+}+KveLnoOoM+Ns<-Q_M7N z%J;WvKZ6^Z0fnHPmBlA%>;n}GDOyYc%S*!Jic28se;h9hBG0MS#q35pVAB={uF-|u zFjOtPj`K5NH{d&oCQ)$+xMyTGKRt^@*9`kdDx*K7qM;)H-Q0Ff&E%OMV zU3)tQ0^tu&ViZ9+)~r{v*#VF8=Zm30Q+zNAJO)TSerUI8LbA@zclGKsaj@~dUVR2< zb&NhZ>tx7C$Ngvxmh-fPS+&LJBlpBptl~UvnKO{<-r={fl2+e?n$T zg}%hlSuUGO+N+W-Q|WA0Nn2FX9@6`zf;5_JF8z{(j#J502_YcdppmeNa2RnUc#9pd zwQA3XB&N0+5)b*h5{BCv6sR24QGEPAHFL{C7FJ_0N{HIHDhS1{^#qf$EN-t*5!~vt zccYqk;}Ac-kX1H@6$kRiA=J6Oq`moHm;_Ul5X!+lZBWk2UFa&GX@1z4%I?EpGup%q1+XRgdS;QvCrlT2Bf<-j2 z{1zYpVfk$y>4%N7fGoe!3m%8jhAQ(w5oQ+)Xox?+&TA}Y^}NQBWE&3hUW-{(zb^C9 zVtow{R#Mo1Y<%uw*0Sy&h=?{k>~o=NwBcdj1-59}?ovr)QPg;Gkp}c@ZQSE~_I=PO zv>-H?tETeWp`dA~SKh|6zQqkQUQ{in5NxKd2t?i=c1dTz&N6}F-P9KWb=995656g(BBO3mP3{lLnU z*$N}qt_2qoqUu3z{egv)F}vwOh(URFfbSxDM>oAWwG=rA_yeK`yXl`$(a$=-gMS45 z0hZ>R;a{Qfdmi8&L66_%rl;-!z19IpC#Jy@Xo8!OaS@{Lg$}^#q911brxmN)#}Uf$ zSNr)^ilM8U{uxPR-_P$7y{el&hst;Uejc<0^k-NQbV}3^`K9#R&)X3_$4&p6B#qq9 zCoN&s%cQ&MjZmP<%YCq|f-A)J8dARS9F%)TMhNnCuLgaNOWN!Aiel+QZCi&N-g_x) z{l#>Z-Up=>OhtJioBX$5hy!$P`>B0ZM>MHCL_Optw@3Z-6kR1J>KQseMjHkW>8 zHG8e3D)A%vz^gby196y4pjvq`)lWRDXxF9_XcAygLDfh}R(&skXfu1`12;oe2262Q z9i~!-EavGyv-%Z=Qd6v>K;^C7NLjHsgKDF^*~?G=%(i;vQ!^K`m(N_r>Uzzl^3C7F z_Y?9Jsp7Uh{3Rjlh%;pmud^IT8ikp(hxaAqEG8IA`8}KyVxbJo+s*$Zw@#Jxe>y()LX0-n4QhXDqWuIvBcBUfU5=L*JN z%45_qJo>djJt&4oRtFIIQ;KSGS%d?Ur%D=0NztgJSM!A{&*O0Q071ajJC!t(y7$W} z>6uEJLYZhM63$pqGyKmEGzdYDVYS|QAQaZM3s85&+WNo(UT+m^%D$e@zg~rN?{V|9 z=C6VRvx9Sa>D4T+{rD0dd6q1Vb4qYJ#~5T zddg@0%C?kDe&V9EdBQuaWw%Q9dF-Neeau^|V@k=Pk6e^~k9fo1SYoR|Gm&U(QZ$A) z@zJQ|qOI>i#2iOSVxXssj}F1{8nJ$A5-wmy`yl|4vfd%+-c*l3QwL+!7tF}>giUb_gzp2QV8xNI(uzS7%jWG_d_S0^i!F&FWj_@if9F7R#VI%t}QWmxe1!KLQzgrzY_38<8 zcg|Ss+Ap2ZehS}U)enOz;My5}Nea8xm%E@IMbMfe=tU8fu+ZhsIJXGQErRMTaq=ZW16%D9TC8q{5&6jq_V=;?U3p8IWNb^NZ) zLkK#{YA`XvyEKot-^db~rYc{!k<~4&sp@GmWZ-S*rJ^t2`HElI$i9%8@2aAGrv(iDxXo>4wONo?&{|wJL25leGcI%8e>UYbWLBJEgKGDsPF?$qb{C+F@ zvm5R@NDxrsErz5sT6-n9idQvt?desi&y3fae}&N1}reJBF18 z>lr10i@5F3EE-vQ5h{!E?-4587YhjAT>~ALQfofHd4!Ftaw-k;Njj%vLM+0PFd9bD z7}>KI%6$A$W@bw^^LIxX_e!Pl(Wtrnhd)_;uaPwPzcP=X`IG&?e%#4N9%GRef1=Lm zt2r3cpNz#~2EAe{MnFo(oqYE(R>!LYbx*tJ@+ZewM2WM`3C8bpdGK)-^sx|f)?AT> z^AMQQU?NmbI|(b^n6KnfXJFr-e2Af3s{REm$@;ty+tgK0&g5f`qxjlWzgj{KgNl!q zEGo{;+I$>GCMt?T8Q7Mp++C$NzEE^gD4p8!38&cSR4C_9vCUrL6(Hv144!!!m#(WP z@?TD~INu=%I>~w_(fV8o%HV&WX3<`|D81j#kScsKZIg32Zr=i9UnRhwMT1IS5&vS1AqAU3AeO#PuT$avv zon;jxmu!Yw>Jse8kSoQ=9`8grrBU2?`ie$R`-uyLq0@Bkb&j<#27qMsuR*_2)$p4n zYm#tW0g#yETD6r4wE9*NAOB$Si4uIPJ`|W;OSBM;E?2u1M zYhi(3p9rE!-;|uVu20EzRscmSzmh)X<*KXjExh3h5P3SKF#7`Uah_HBIQs%K6>Y)7 zOO)0}3^GL2s2-XB;=hMuM6`Mu-+G=6X*e6fn_tH2W|+_-$=YcG#aWN@KENz{_+_tD`wS4LaA!$5kK&uuA zn1l_%SJhR^r!|~#VUE?;7jZbwQPO=&OyklOR;3@f&Lk#!lS?2;)^&*#s=@k0qBF$A z_d-l83K7}998H|8U4&m;v@wc{;WL1s5Yoha=%MmsI*+`>svEiqHz>e;kWALL7pTYB zAS%3AAbUh2oQ2mW9cvw?cQLwYJ`l*^Kn}&}wjG!KE2QzImspiyZn04^NCI3zT#*^* zl>he`fe1Ha?MT+H!7s$t%^HdDNsfiIq-3`rMB{?4$suEnRQ8=^5ji!`9i_-ARa}e6 zDQ8}b+;YMHs~ihK93pAcZz6bTfBmK6c>Cj@eDQwL-)6qyGON(!4pxMqW)nY>wbum* z6*D1dlJYnRduYwZrRwLVVPNr8A)^)*3{#$Q(b2Nzpa| z0WpqH7pEO`4oTKl6Ru(>4U&Ds0cMnw%=@_a6;}R3A)M+eguu=-WVeXyiU#bMh_Gzh zY%FO>vUVRnqJ|v-3q}+LisaL+agt*d2%@GtW(fy#RQDvpEPz6U77{OU1?Fo$$O*Mx zs%7@R5VTn9Q1D~Z)m;wDfMq6`S{S98oiyx-d*@JXXPkx!&4 zqCg@)5aa#4D2)JJc~Kc~etX$>nd3d%KEsLc84hs zR-sF< zAn{hc2_IS87tTrN8{-DA0FmFBa7X#w7KA-mPI2kHwaZ!M6EiZo%h~+l>I$~(%W9hV z>}#ybhZ#ryT#Z_ib;W-)YVoKX)TqT<|46KjFGaWq$;Rm+NnB4=s`ZDeRFN>p zQu6JqH;P0BeV{~)B8ifHi>d4n(@a7BPt*MUWRd0!dxB_ zMy8uyDC&WL3if#-*|^kHToiQ=kSN)`WNl{wBH6UELJHDqQeKkh9(ueFMeV6eyGVtl z{mAJ9$`S7JLC>~`HUoq`Uhv>*w}VU=8Z0G$zON^Wmg2)g7QrLI`&D+k4|IS6`=2Jb z8}^IRE4Q1-`{c3kq>JC8il#J`wGkjwQW05YfH?F13W;3;;iz?>!9y{S#cQu(SmS4; zZL6O9)w&li`{qyJC-PWCd#8x4P?xA@ZiR-aB)$kp)6UrmwX@C>b+FxgjTRz;9JTkj?FSnf{46hyIQJVV8_?1#T@Kl_b zY{_+6B9$0-wi2JJ@%R+paN6CKwOhyY9XDArJ2{*C++x$|JMR|jMc?PQSQEB1gV(vu zDt>el9dytA86EOWue`^WG-v1OwwW$FX=hEZijA#j&OQs;&7b(F+bouKo5i=>W&_#D zrM&VT7Q+h0@NRclc-6_6$|$ubhzXJrQ#RVR(5vWL%=>6gTz3LrdWTgjeWxKUfE{cf zb3c{tdygH%FWg}UR%Z+ky~`Rm`09Cy_r}pMNBsewfF9XB?zZ|ynYr~YmQH+Ad7Q!` zN)JaTX0W%Ujt?h-{ku)&V-(ho`Ap^e6$swoCtlmZ*08ao`2`0>JDP{yV`bS26K{ME z3A#FpkGuzZxQXw&$Ku&lBbV~A3gA16$K|sDthAA@$%px%&qnf>`K(b{Q(YR=-EI+Q zI%bN~?Rl#VughE9XZ6^}b@_<wp7 zqKs!&uSYN%&7R-qlOD4m`YwFTBJj=H^O!Z1%D={flqNOEF$qIDoLo$ZJRE1*@%ldZ zev0$E_||*M-mpKG^E%I1Q1L%7>qKW%lkuM(W4YpwWkDbQUTFv%Y6C&;FYwmby6G*F-OU-ZEsEporxQSi|ZK)+3hP zgWa)=tO^)QAcN`ajHG8(KC*z-WK~l54+Svwnl^wREtFmaM4K2dLmpf#%e8oxH}3;bg4YWI1Hh&=j0 zrhYGg)(gNw!He-Q|%IeJFfA>0*r*UiDC}dWmW6;u06Pk0W)H zx=EwW%n-dKUDgEtIf2;Qv`a7I{bK|j^xmdS;&Z4#=EqF=Q zt;~BvXg2CqO08Dar)O3!CA}~sEo|u!v!1S3>PjA{MsB)vw!ESLtx_nzx}>&>m%nej zytb;VxO!i#JcNE)qqlIB8*hH5>y4Zn2J?KNN5a1}*o+L-%T!4xw3R<_@XZNx*sp$i z>!Nq4v@$aXo9#pO>K$)Y$NETXC8v+F)+cfLOs{$ZRVn=QJqx*5P8>V)|?qd)QnXrau(UXJPz5%!DF(OicNe!nd4xIz zk}0HKlhNu=`npJML71q{?{4Z|F~v?EVSZFxzcV6Mtrv&;D;DF{tfxil?Gm5Q3nOY2)5zjiTuN9k2djvAmUTJYxGeSrB;l-|?vOMmk~l%CSJXcwC7 z4tlgw$Y)&^AI^&l*EGIX@@RCObO%{|ZLW8=T_=qqOnouhlGrgM>N=^*;@xz0u&J|I zxtw0!e4~uM&#||YxuC4R%8}41i{R7{$9o;j<d=NGf7g)Dy3VJYWiBm6{m#p}7;4ekYOY)ib>lx9V&@8lzX& zulR46|Blfc#El|fs+W#xx2^#BHs*kT^z}w=`XX}cwY;Y(b*Tz^>zdPhskfRts9CA> z7i}F}{0rSX*BsVDm6tJzil&Fd^fISc(BmDodzou0=-UT;O*gOdJRPlS)uu0K)bRIK zhiOgv^i=)M6XY&VQJ&sP)V=Wfe5mG&x~OyWVH<0XU&$-k(R{C>?sk0N!#r70PplrP z-k#=mAgA;!3;M-9jmyc%hgHy&274~V(p^_y53^?_J=!t3hdH5=o?miq;_V~u9Ghs~ zQ(5oth)6WEE9;}fH+NSJ4cY!^W~K7(bwA$lZ}U()x6Y;i@}4L-tfvl_{AiA;qSuHS zBRFp&{YB4J$g}d~4gJx4zKTA|IMR(u47_tdUwT{15Y6j0&D(H^f%gx5ZFW;OE%M=! zbP2XI>>WA?*)~QM`|=Mr{OWV`leFw^OH#xn!nQ|XQ}KS;Hs=RJj8kD8RbU)Zkg-2( zoeFI23v4Z5Q}?RaY0Uy#CD_!v65EOw*h1K5EVxXSWaIajr7~aBU#b;{3v34pYpDM5|hwZ@vn?c0ju9ozw`g98Nn4y+fS}q2vPY7#T(*>Yotsca!p@s(Eqfv z`fA?wH|b|lRst859=YiV1rSetkLz>u`x_Kb+&#T~>)h!(c7|Qhoo>=Yp@wXtKj~-4bg8&5+!OiO zP6}id`S2XN4t=C|$l@}q$hv60cf{8V9=hg;TsoTgt}ufjb)ZHoO_MqFcjTr@(@E%N z;zPMEx)Q9loh)recQRkAp;tFNWTFQz8BNr+Wg|ME>I|W`arLHw1S47w9(Ug@=!A)y!V8y1RIM3st|fb(+MrFz=7mt2v7jQ1>_w``TzN%$H;JiiZDf zbr&=C21#1jmsFbiI6y&$KDYj)+bEw?(W((U33ORJJ?Hj2nR$C!srQxXIo7jB+r8_j zdphmj^V8Z%D{O}ul#?Fbpsw!I!kW>MbvY5a;3w-V{IFO>%no38c|+PVp4Rp3u{!m*~(B;SSP zH0QylR`(9EdA92ECq3W8o>k-2b;XPpYFm0(VpDTOoL<&wMOHO`#;1ifw*I8~bCnvX znqQqj*Tq-1TK7R4((PH?U@nS0bhA~HJRc&@_f0s@ZTDOAerT?~roV!FkNYSEzBPG2 z(kyYzQQCeRQtrDx*`&}pX1V^8olu_&rB+uZY3K8YPP6X1(#8gw4^hNa4~$ICovT|DK`*p{<_2!zkmhY?wJfx1RuVf8uuQ$|{)1{sC*(zz#&Uz`U zvLUOt%p8H zX?Rc8(LHJC=y(f`%k*NN+)E#>yyo=gGv`Sx|A~X8x|5RP-$MJxEdTmwP2m9$SD6QFF@1Zn%kRD^E_ot7EN*TJF zl(9>Fy{+ym(M(Z|dT5Z|3WYtOvUvv6M<~iRcrbnTqT{)Ptwv?7rsEI=who~Wew5(i z5Pex$%WtW6wErex`Yj)-cT`S~45gl;Jne>Yp5$TrTE)u^*YB#LW^d-AE)=-(obM1l zfi=JhWl9~cPgDiv4ySoVgTG}2)r9!b5j4njTr^2fRL=S*>3*dHM(V8>f~4&L#jm6aeR8r7^l-SpO2gGjHC023OzYakGA(pN9t;gD&ickS5RqdkEbrD zwByI??SrMwM%okO^{y%{X>&7a0*yU6ST=!92X%H&Acv&COwg-ROS3B9qaRXZl=ag@ zTAWmyJKaYqNmt%Ss~c&#$@+Wl_~W!X?Wf;=(yxZA&>i*+s+~1_Rz)fMkCXKw)*{e* zDxarwrs^@OU~{ToQ@P2;@$soNuEdL{(CseLhg0-9N*&W^u^_EEP4Dfg@htUZ>x~mH zH1O|kx44sgBklj&dB;tHwKpbRsJM}K!ev`4S@gyU7n~bkphIg~-C_Mn{kD0U?jF#X zyySg!s=qi$@>SeW;arZz>HeHF13^EwrTNr|Xx>Ws*(4E5&dUPs2OS-v@Xa~iRY=9am7`=|!$!%W!**%!)D4KJw;1oO_ACFkiwRhB99 zIO_-VXceR5au4wF#0Tg!$bHq^{D5AoXjj!sFMgGk_kcdkQT+2-^p5w?nf$y@zsmB? z*M}B!xEGom()99%(?d7B=`mlHI3q17xL$`WT8OUjhBq*6Ic zVxujIFKqGnP1?wWLgjC6%7DB=&hr;$N_&$r?-AtR;D zarcZJQ`bFm^ysnErn$$AolJ*W53JCyhSurduWt`3XY8bLsbi<5S_QhhcN{dLN7uf6 zsesW_W{gdt;_jJ5IZ{nMEUYsX_S-BSy}jCZv87kl`fW;ao;7{7?$B#bPfeN0r6!L| zozPP1m^#IsJmsEgQznlcLzNqU-`L5iSu>v1M@PmL=Ch#5$s?ytOP!E1W%~FD=C;rD zvRP+0=+BlIaC`S~O~=kkz9)rzQ-6*gnM@TQmoj$R1Ojm>V^dRR*9z>?zWv%Ib{x^Z zomZt#9-DIC$jPcg551%36sv1*LGsA)W7UwkspqKUM~_UsXUb&h!ah6ob0w<$ZX2fD zo7Lig?vAQ^d#$HWo-lIq7#aks>PYGqt0L4`H(HzZk8kv{VU=&sA{|XR;>S=`W{k}m z^R2FjB^FjX_sW!ee}Bx#6?KlP!We1L*h_koqJ_>PnG*IKtFG#EE7T8|vISM8?!9-c zDgZSu7>}&dQK2VvgBH$J({&$xvi3g*eFeG^`Yv<_^i$~P&|K&@(0u66(3{Y(8C*^Y zXlYVI6=Gt>(m1RVvv7n%y42VDsL7jzZ$*%`WFwR|1G8_+G#?a+^* zhoE0Vzk%jMuR$F%xuwOSQP4`zJE8Sw8l12>Ks#tRXkX}1=ve4v=uD^&x){0w`V@2x z^fl-v=r#j??1t`x9)+HUehd8xdJ|f77B|2JEf1{*tpjZgZ3FEDHG1KXfzXlAiO^}# zxzLB9%b+GS1Nt)bP3Sw&522qx53?HnlK^?pOVI03eKuw-v<$Q|v?eqG+5&nvv^%sP zbQpA;r8NJi0L+5Uhc1CW3SA9d3*7+Cf@VYaK=(tBLC-)hLa!*b&OdHs^2+e^Whvq?lglcm!cc9VG8qkEfIR9G%bb!5Ezv!NeDk3i2r^9}rQ0~$ULa{%gw)`d2Qc7S@JL!lF(sZbwuDRdQd z4b;fQAMZkULk~i8q2EHULPH_0*^3~>o)G_;1LH2)I-T0^@)`$306$3dq+XF=yfmp~tdu7<9K zZh&S%vz0pie*YeT{l-7fR|%zmVf3#E{VPiU!s*`~^sgBGD^CAPWSy_#Je+8B+NfF0 zZ1py4GLF|lw?R|iV*3gl)Afe+a&Keqrf2L?9sIdjtO+>I`Gk)py=aVfe(i-*`C0x+ z&PzoNuO4FMc74aGb1t!_pJjD}hf#L*NVB%$2CB9>snS1sh4rQDtm8jq6?@Ou`M6=} zP%Hi0oX+q|g2yA+5R=0ROFkOtp!9oueE(altxZ;Kw$pOxDa8#*hDtsCsL&$hYtW;6 zhY&4Ut7`cx;rEZsW=CzmFt1N{-dQq#7CWTx8mw2y@=H~Wgfi^i1NB0ap#I8ikFUaN zKNkKM)$sqtjQ^#4hW`&8*;_2fbEoz*r|NKIH*A|6Z~iPrv3i2biXOb2wJm0=djj*KbKxAV#ptVSMM0e z6(|G!5B(Yb|1jYnrkgS7uk--T|NmA6s-oo&{+WuX^Y6b^foqukP5#7OQ04#EDp0XM z4}s?G(X0Kyo{64E_&DcjR?l;+`OmXvuL*35O_(Bzl-IO!E|D8HTI zZH+`f$@Vv)yL0(ibbSHG`7Z|1dyrwuSjiR2cfiJ-^^C$3cDE%I2NQyDv5U61RZRFd_WXt| z;Wo6Oi9I3G9fJMkAU&`e`QEhUUx56wMn2Yw8*X&$$bSs$!g_ER>(H)+>#8996B|F; zf%D%S5U4i4hF?G})JTs1u7;yw;wK6fI&e2vh?VBQBskJ7u*Fhyv5N-dV*gKdk}6M~ ze`VVT7Ay{i+ggy13Z6mwYTY^Cf`71PK&N8}C*k-D=nv5Mp_8dcRQdk$0Iwrs1di+4 zxY(P4KaC1JHJB?f6S^2W0J;Xc3AzHhd$5Dg|H%N`pgo{tp|3&fKz+~_=%Kp@as?_w z6QIAMqTO*k4B7%ZWgyP~G63VCpCDri9QT9H0W#p6`}V*e?rF6I35B$2VM`y^X}mSjzc#?_d=h7ehvK@dH`zNF_9g-4xr(91&&{Y zeg|C)eIGjSUQ__O8M+tx6!dH8&(H&`t^9XPLIq&ZaJ&M?FG9bAE{48;uX%o6n{G|8O2mV$0etQACKjQ-b{oiQe?^l2q(0Be$7yf<$)==904@JYKe1Qe@ z*Dtum|L@z-RdrlC0EBMbX+-~?g zqJZS%g|~1q{j62BJn2N?_EofhN!fit>>cTMlggf6sNL}UOVf@cl^~B^v5%(>(kg#WVRnNI{|ey*xrHSlyGB2SCh_M7u}{Snj`n5YJ@g7~*jD)y z3b7l?kSMdbkOa!U0h2U6hAvwVf;AKKYvp^85cz6p;Me1Xj(LNC83YYjMq} z<^HAsEC1ogxdN`=*m3@^#3a*B74BdhddM5Zz8Mur4q_jGN$9iN4J;%VaM_)1PXPOi zwB=Y0MMe<&1$r8&vS$Xd=Nw~uw#{zHN_7Saa%>629`P(Y$PHqD3X?cLi2WuSm~$?m zhYd{%D87vg$Uh&Dpum0xW9Ye1xcv#4BNq#|AHnAbU;gcO`jwzm;59hN2}p3u9zol@ zRTsN2-R?ls&SHHiyntKwLj9{>DT;$XDxe+S3lf4H$89(4w7sRvN1RILUV%HC*sW} zKZt!NCUMdY+(4BfkOB@MfsYcX^VM$8g*`opJ@hgUK}Hb!Vw|Sw8h)i{FQ6R8Fk5Fw zc6-=LjIqrg0lo&4I5&v>2o^G5QM~_40pj2(SxAZoRzU1&n8mq4?3M6tsf8DwKMHSl zJ|jqidYEL%cNFg61ynF2hk%7 z_7gk=hTj(~0cLrA5PMVUp@_l@D35nLS7hP#cxx%{K%d=$BuK@(SyB*tBdq1gk>>NO zog0QkUFU+_8(EiODL#YA_BkeHE1VsBaK&^O`tWwn_rVLS`_RLuLqg5%y(Js5j2xN7j62&Qdov3)D_*YSKT z8Z4ji+w${AHOcsM)88++5C_(KiR2fRbiwpi1+Y|0M$upyh2L@z*z!M}-}w7o__un% z2sVa4pkjYjpQ+6~^9M>l2@aC*`#5&+S9JyQ|Gv`v50+qR6RyCM%?cl58S7yB8Yc6J z`ka4ib5=RF@~QJLn1e=W!T(ZK`Tk%9ltImVp(S#>qanBCZrDZF;#jmQT6_w620dA# zaY2vr`9GvV0SK7QdQ0Xhb^e;JX~g+fpaH+_=^*F7BpiyGRzizia5xzH8Y;djq3{NH zkUt$ga2b9YVs1ql_~V~2NWr29FbDpsHbu_`QzMu`_$-X6Xa}^Ue2^h4--3H$->osW zhO`s7Gz>~lLBgBIi?$4sa9TV&45pIquPM#{Kg#H+#}%;a4)nwy<=>4V?r)nT%T*7m z^Y4!w{8@W03ZjRmSY1C8b89?Q&MKvv=yTA2x8Z^x8qV4lIucqIx)ypC6+ey&zXVN(ItHjV6ZS-J`DerItUfrTgs$JKD$3|bEQ6YQs;cZ2W3@gZm(@OKP=3()10xMq>} zu|9Gy>nZ3U=%*8zMXKvAC-V|gK*=KHk!|93foZw#$%O~)39DBbq zOTFoA8k2b@(5`*W$G!{ZC}sEk7-&!biI0l^vJzX?|DE|^{5(JBwUy3;?EEdgBI4HkYi z(9c-#<~BYX+yib#?{~Hy}x%`vJ@B&|I#0Y_@(ACnHq02zOMtjaLVE*?2SXXz&o8F7<{CCW58MMTm0kcIXX7it6Kp&Kyg7I&ar7DtU2@EnV|4!HO*WrD=G;~u z>9lB0*rq6Vk~h!1|G2Yr`MeLT>Ps6ZTV`F$$TW{0cXo1UQ_N~7oG*psnR`z-XBe(z zZn~^hCCI6oo1XI@T5den)8I5s)k^WWZ+BQ+y0$ua0=V1iSWRmR?z<3}-UGgXx#1T_ zUdy0s>ujsbNMu+9M|5btQoz%}ec*GzU8s;O&WkNhV?Bi%9A~9B?>gzMZXl_qp3qFM zb#UR0*~wi=$Lh6Fcs1splFYY(r#Av;tnC5M0hbx|1^5y0f)(j&%b;tSwm!Im47tc4 zeHKP%dI-hi-i-8=%z8zEXWRT#1OG6P8(Lk<5UQQA)wBh8o{e{gqusWGdlPq1l`=2$ zUTF2sr(UDMDaf+5_RnLi&9t}?q9t8nLwPi9p;drG^UmVYawEet;OREL2|U@xKLyXU z@w4DA#mms;dmIY5Oa|2guWqKCqQy6zuiT{kc-qme7FEx3bIU1by>7CHx-PPhBfH8j zd#YtbW+R{My-r5@rQrFq%!XglB8~pcgLyaH$!2Ogv|fk6WplOgufS!qweWm!*?e6C zer^(1&B4{5-@N*jGtS7y7VQ@F2Buzd#ko;hMZSXDRF!#a;%ZIEx6O`j;96roAAAX% zzAyZE?_xhrUWK($;Mr{~Za#b3dABi!^GXM5Q{v$QU!_481Mcd`Fhxc4vai5>p<0H@MWj3V4pK%-Y~bZ0VbU=YpH=ubs6< zCI@!NFeK7^%;~ZI)+-r2+LnGUxEowLWCeI!viZu_)Yf!%C;hks=1?2o4;~IKZ9NI@ zvhj=H(KbK7f>#7Lq+Z3GJn8bW$Fm0}V>EF!>Dt~!nwN#c;2BRbpTJoA7(5@FSmV)iC&6Xc zY-Oa+1Gje3s(Tr0Q1BITgl)ASf`>+M579PTYc; zvCn?RJeo%*gNyyiYW<0nzndGr6$O0_?%T_J1^oR4?*53m6X_!&xdRhEW_~Y5$W2^z z)GCx~E;{FI=fZ(BYM^=PoU>fZaY(CGgi`#d$RL10(C zgKXKzCa2*i$QEr&e;ny|BfS?*K9BTnq?h8ag2#auT=Nv6bxXB5!ImM~;<^_7CbvTh zh)4S7NG}y_1Mac;Nd)f_$PH}>4BkM4Hre93Ho;b~3iYchI>uJ;3h)Uwo&i3|#^1C! zt#ipR$iVI)gIajfFYv7R9({KLj(kY3;aWW(JpGL?a9Z&S6GE4zs-iw{>7jDOm4EBT zjylh~Va#g6Aa{7SAV+gJ8i<0ifN5QkKItp2Xg3%JBK=TXizgzz7wKs#@OhpJgWO8$ zhzg~F%PpljSn*y!0ZFzBWg)!}J*Ns#uiZ%RYk(f|Sy=m`B$cnaLhezir=P3WB{-6M zRXgazlX?{^#a){I#xbj_r6;NoSALRz<(@bTLj&+6aH&vx_{n&qJUgP?)@zhx&>ZH4 zi?n@sBioO(=SlES*y-k&wd9`0im}{sNN2lkvObISa+A%?#b~dC%T2e^;Mw4E6V7Og zHFuvlD#rz1MZw>K=SDH_iXL>3N7W+$hrwNe z4a-qLPvUBJ&-(eaH54+t?*sS!Z1(w{*0-X(y)K-t=hbT!%!^!sJOjme-CWE(6tmGv zuWR8O1DBuo!3Wy-KKPNFmWF)vIR%5<#Z))h)ax?1+|_K%Skt4p16_A=g}wzZ2cC($ zph@6W!R2l!%59}Jf*}dFM_)k8I!OVzUD^ze27%M<(=GYV`d!O&M@j##AhYWC$87vr z@Co(b+n`f9}0gmyRP@tA<|OR&<1Y7=U5!+~EJVT6kv_?mej&Km#!dK<+ukGL=Ov4)_T&EdE>v|h95qCjN(**_cd-@l zIk*Su<(API;kNWY5LZ2yqZ(!o`@vb)s2@0|%9Q0fm1^TPzY)(Enc>yCvIAtE;^bcgA8_wa@<8pqqvJ+M~+J1 zzP8L`kfAPdwG4P{1$)3VY(3Nqe4XOzqC;9X3WhvehNoO^j&P}KLfu3F6nc@^QEFz|EqB;&n^DOmZ3O!o{g6UKWF1r!Oz-wUGPM3 zX|T}(1}_XgRT+A90ME5$7!3Zkt$?xMM{MaI1ixxazmmD3{c1BjD;cDVxIS7YaW#pO z@lb-b;M>66c$$J0frD(HNqRgzLDHXq|KnD<9sGXjieHf-0R=Qf0VQI1XtaibbEP79 zXhZYvYtH&{9yZI_?14EPT&6&x`NlP8xvm4nYcgk(536G=PRms`&otpvCA~K=yqGOM0RdXg(HJ@YYm!qd!` zA^maiZ17*eFA9H#(`SR<1ou75{O+?bL{`K+&tQXaH+a%>%oihlBk=s^%;#_1YKP3~ zNn}(z5qN4+6L^?KdnG;Lz}yVlxrWwMhDssqzs z32et9aL*g&{lC)J2_3l{saKIoTwh;D^MhaM>x5Nld>(kL(lo7}*eRSIy>}M8dEP}_ z73bZ}#Yr{#A^oD>X3Lw@J+^FfVP0k9%fK^ie5J+d^vvOE$t=r2`gKSz6Zv)UOz?u6 zJnz7;83t+p4)Awv{4?-ua4Gm0_--5j8eD}PRQ-gDcSFmE!QF=q+346`h^r2i-P`rR zOVCYGYaBo4j*SD40e9nh7@0-bP#fI)1*iWC>6;M`(dc^XM-(hAzS}Z{YFBN%2Y4R1 zbm<`Q8@BYL!Bqfm)nbkAqpR0M@O+itAcGW~Y8f0_LI#gzOHQvX1e{ll^?}9a0>e3`^kf)nQ)~h1c!n)~61Y48Kze8%b3@BU1~Du{2HEm21w0F$YfGOAE<60i&xhc$v%jv! zuS4M3B~_2o`L_}$@;5NZR(~n@7jO@D==WehT1-{+TxlMfpTXmZt08dPy1EI{%aZ^s zKL%y$1A{yQpa~p}0hg`+y}+k{%Z~qh!5hcqyYgx(FNR<%WMPaM@5VW8V>6HquMWhJefd_7kYkByic+F6sXXZpeoA zkC0&%46=`1x_Ujh>`xa*TcrSOJD0cVgT&QY5NA6JP9iiWaq7zKpV`>EMN`cG1bm5i2u^-(pye_zGLl@o#T(+MRSL+}B z$`1zFcU~108V=6;&HV)hq=3sdbLoji;BM^RrtgZZ*Gh2NRxTA<8%yP@7F+wtsVBs+ z2^nM?`A9hW7+kiGyTQ+Z%eL{+82jtu2fMlHmbdjPaVL7(fI$kb41;VB7hV@!wuOJM zv!mwVS{0s*Q&4bM;_CDpXgmD|h<}aK8+G95J{V-%xD-4eJV)mY!v6&>+r%G-pQpfm z*xlV6EnX}B!K*Mgv^T{O406711($8$GvH{i6cEl8It_jhTy}lSS#Szmc6-YLb;06v z(_OZCAA+NwkwJEMKLf7U#9S%P1{*8yBF$}V6 zTUy)>JQ=&SGmyRqxa`uF77qlM&DrQ`Z8W%S%2sEMb^cA20&tNjr_+4mY7&LpCegpZ zyV#cAXTUu+{xWz68-KH=b^RZzwT2-SEqfOk5^a13xECCAPWu?VpDq1ii_?$i@QEr3 z{!bILei`^#k!T&*Ajp>T%Tv5g) zG;J6R$BeA=5fLXt8qDFH0x}{CYSEKq=sUSk{QOb)N{iEnZ(G*CrXC>$RObqg?|Yy;T46S2XA64;0m~eUzGHYIy}TG9HUy*3ThMqgV*LL z23+DbilaNhC4QsuhTsyfFCk!HTo0= ziBKsSj)F_XO5tb0^KE`EgG)q9Nq-YuB3yF+leHMVC#jy0ke8C7EVzWg6kZKnLShQ9 z2QDEpg|`H+KQmwm46PFk5<*il^Z}QUn!<;JONdS36Tv0qrtlfy5`t6sgBGW&3W>=n zhGobgF*=1m2`(`^g}(?cF+7F82`(``g>MD7VtlIePYioukf5K!4}(h(P~l&JOHfeZ z-+@bzP~q3Xx7{`b*7z5R=dqU{qLQH$xC9jyUKw11j0&#}EIxC(CwE^%Fj-^H9hRm=)l5VUT{Ac0>c!vJsz1S@NLKg?a0x6c{26cwG%NfSa0xssd=q$y*|#-V zoqyY5kjS)>AqQL{)e1iWE|F`6p9hynw!(h~m&mrlL+jJ~uNr#^bt{IFWKdi}-wLk` zE}?LR*8!K%xWb!*bEw=~J>3zUBIoksHY7tI7$lUg@Dbn=T37faa0#_5d^Wg*-W9$O zTte~6^@sK-3=*4HGGu^DtX|=-flKUO;ak8Zmap(#;1b(c_(1~(3HB?7Q{WQ(SNM0} z5)4@QFW?d!Sa^5>52Y0>__p_>?^)_Ss0es=*+^gvC*Pa0xCfyfwJ{{@Z3X8M}f@ z@L@?m035-Hje^r}Gz=1*STZDoOSEF)^S~u~vG66}63tk+2`O!$Q6aEaM1{35u-@D_d@Tw;0)FWQKQ z*oyJ3&Ob3k!5~4ug;xcaAmGC5flE+u;jO?WNVxDW;Q6-=fi?d9VUQr=l3^6M1Qi!P z1w3kA;GCEXE{P!TW|@pE<6!j!mbM+1TJCNg&X5wkhtt(mx&U8-E5o+Q!#|*Rb);;0cE9`hN!ut!)|hgLkp< zli>Yq{9Ev0Hhv9!TmiS%KTRvrl*f2Vfq}cCG`Rgffg60jEqy%r5*u#`{-}+2Hegt7 zGxP&rYvUuqH`w@O@GKjj1D9qRqORKeXCfKzM=8j_-1gQjqf0?yk>6W zZ^)&zgW&Fmv%1Ac6b&hF`*veV3snw%*D=?eSTEvV^6Urs^5bXAtZPxWY?1WKJ@sWt zw2jvQcY}wcIZeUiY`hnE0{CDzGK_@53xfxI4tP4aRP<5s$87u+@Ku@S{`wKa4ew?i z4f*Y49@$mDC78@h;rp)3$hX?&uShGT|BBPos9UdS@MQ2PRIDMmuavbp)9{mD>(vT| z+|t;;ih}!qyAdfc27Cy32A+#i9Db&Or{Bi|f1wB)=7T4B*#DPdiqmQPC=5A2atoHC zfLFltUtmY0z_&^Pcx*~r@O|J~c`krvgZ0V<&)v%WIDYbYS#kBT&9{sTIEp5Ow&pHP z9?BVZp@5R$*$;F2cZzZWmBAB6bNXQs%f0Kv}Ms56*X=Gcjs2gYWn_RAz0`7gAd-Mhx zFi-gV%s)Z;72@ZEK>m`X&tkrW(;M0wFyz9J2uC}>6ELaW;9r2}qkyI0-+}wKa{*s~ zhkCeSNgpyd(clUer%Qcp7aPhVLp@}0gUf2;0Z#zWz+@Z7&8#2lwVPPX#y9VaU0}hSDft9e6(YR`4z0=|6LN^#nQf`W!s-SLQRV zC0Wyc0#DF+;c{E4sdw62J!EJ}Fr>mzjSX5ZcrC1qjlf;S*^vtcbO3j|n3r*|qrt@0 zMMkdeVqzM2j`hGQI{%_k@FQ@P&F^M@d1S#e;OTgClCxtYcqTYjYV8wnPbaR>8}NS^ zTs1w3y`7N4xR}v*AoZ8vkN%RzcXU^j2(GVz%Ssg5zNI= zR7V~HFW$a!8K6}st{M=97{j6P(-7(1@G~Dh(bj+=2k+}~IGuV6M@{K7iuD=`uFc{K zRX~$xfhXZQLwaHSAqIxmV8~430;Yp+0Z$moobFXxuTQ~~!ApXl z22Th76#NQ!(kRQ1;japVvlDlnmdww`lCG;lTwTPv=JVJ`A$>e}Iy>@L1n&%<37!I; z1plr8|1|znks$+PFFmmkJP8+{(xs1rd-riqoJRp`!1Eh&MZ1B&OnNJ__)lV5v}%&fG)EsHnV0lm^eiSyK)bY6$M7bwXW#_+^YcN(L+- zcOkELa__k(Bb=b`BbevY_mfQAOhC%5aJY5bKT+-7ig;V$*q9Mu5#9^e9cpn#U( zt}$Fu8Jh0kZuEpq_L0Jk9ClO+j;6wp^bR-{iY4H_%3Q!eq+bi3Yvb>Od#VJc&jrr_ zH~PcT4H(=G&L9_`(OuCKsOV*+j|I=p;)+I~qHV!*HZz|EJ`miyg}Kh$&}PEmdzTG; z@cx|!?n1%Rr7wWzw&aS+tbPw%vklDw@q5)3&B?5HsuMRez$@afE7hNC;d(^0?x z@b=)Eo749M?+>0+m3dA0pVA%I|G9P8&YG_>Y1tPRU6#5p1FF6xO%k~Kd&oJ=U)ltT6Y+dErZ`Lza}3A zt{q`VWiUyng1f(9E*Bv4z;pI8cf$X2@Puv5t#2Kf#;aji?PJ5=l z4|pzq#{M*TPw<@G*gz;5M#G>X)K@lLEUH&BcoKHwk7cYak^;cRPX>5CDq0)qH-qQw zKA0 z#>azuFzGPawdvr=ZoU+YLxmQAXMoG~|6|}rE(~ z>l|9?n&-5Z4H;q0vwk@r$|*9keBBx&tF`7CVAjwRZk-_Zn}5qNjk@r?mqTqeLZ?e8 zo!ZG1k;f=_v7pMw+c8yGq|;Rx9a9$_m?|vS=?PTwbl!OC77GW;t_Kjh0g`-~%M4;) zfFSU%ka7dUxC-f`fRUjAM^VA>;X2(TUQv2cqCXOVC$5rAO)PDR>7v6^g&#Hc3pDOi zg~h~ISjku}0LK@bv;oI=o7j5)ABxr_uwUDwwUrX2Ebzudx0osgfJ*VJEbu=n%?)hh z4>3$!)?G;as~~+9*yjIk{Y^ugo;B+Dd^fL@p3V1iKrH8oWk0hLGQ+PA$T@l~QJlR``9P#cO)6 zEz+eH3Htl_QgBN?bcIouU;0Kfb>RcIJHK>JwqPg(iWe=1&Pj7xMt5!U4w!97XN;p4 zpqGX7>bOBH8M?*Gks;hwGbuUA(w)jF%Iim^!!3h5_Mo1*JW!`Ac?fS)c||R5z`dEeDO5n>bnT1lGtH^lKVmT#+ zL`*{`=0*hJcV)z%2`7l2F0)oNsn~5;nlKS>-wR8B2sla%Ex%AGD+LbiFS~c zR6{i0`N+q#a6O6?_TvP@2;h0)Bwu#Hn-_<~^1`B&RVpk)9AYMTsRoA-T%f@L1UndP z;>FRvys$iF4kdw}iD$Y1r78VxLATfX>U5bxb-LJxPsn#?8`Kj(Aam5Onz9QZWxDv9 zFHp@cfPRja4nVs71?l6+Hr%h$zR0l1UyZui?ZCF|8idTVGojGEfqY>vJD;n}RHX*3 zJO7)CHRDODQLQ6`j)PZI;XYsJouW0`F-Mie)~)_a2KavWUrGo?t5m6~b@TsH!l6o` zQE_2A$SZi+SX=Gn0q&*fbQzQGpk2>?DNT%ud8QqidKs`l<$eqJTfnxRGzX?7+^tLp zI{yIB9|E0F>KdeHl)vu6#t_9m`fYTDL zRE8t-OE(as7%RKNat9(|`<_Fa)Wa7vMq%|BZO|C)B%k{c;L1>&dru9c#+pnlQx8}@ z_m9RQrXGjs8V8>rz#$8;^AVR5=h~oahI;E*?a}n$^MlkRW|ZAb#20!KMQxLgAc=~P zkb3t5enOINT5*;ctHD!Xzv^lbrV7<4ckW#zGm(`lTt)I1Y7i+rRiG(=N6)C8kxV#~ zmVX!Sz4SlO6f$})kp7IZbeawq$}78ORYL9i)#5}QoMd)u#l{Cmjk??iIv7mOVI*%NY1(E`@eqUW zvV`U2Q7Niz9CvhUX4`cfxZH_thu`qHu92=yj)EXB)3&9z2^!(W0sK<~^#JdNEHp|>0#Pt-FZmr)n4MJOBL;tp%MQMlkhvULo@s??C_}_?M~CVY!&-K z`!T5{O?OdCZN9@&w~;b!d+#qKY`Rk{vHfo(QVQlBx9J{eh`So%*IL9q4RN9tai5hZ za#WQ20I4)xnXSTylFJ^twr=jI=t-CacUnSeVbE)-h5jp3O~uQo)28+pmS+xwH4uWN zVu%qQ1PQ|sqdW+zn<2({5L6pOJmW!B*C57u5W4F`F$vX-_h9r41H=Rm!n+3XoCndM z1~J)#@U1~i1)^}o%4$>bW`Dv7-;A6Al&M%~e0}RP2?O=bYRxJ`oVUg_KO7US`qxcq zN7t~_azsu)!Tky6|A%Fn^7h@M*;`?@bR(hGmS~cHjHEU=Uo4kGyR~S6nxQTdyX;bc z-!2%|QXxRh^}jAYV2%Eb?C}Rel zzdy%3HP`wj>aQ8`0iyM%-O`Zm5oU(W$ukuj?7NLRD>(pD{wxdw%nzb<(QavR_fUQH zUTH)3#q>z-F+|_`y0oZA9~k$+9_=kCRKxTl#?0-qnlY1e)U+-53X))b9* za|G}Z((R;^0X6Jq%}W8Lr+Rh{`H{FCV(JIBt_LJ@GHJC>@&*V~nM^*dS+Cd4 z%mAK=tJfD-)fbVhHGr>rb<~KA^@;AP;f#nJJbLV5uhHN)%$lh;UXebwMveU*wg(}2 zA!lEm2p+dqX9N1!+Io30XP+8~bWO$ZVqQqP2BMQ}xmT#=Y2x?MXnI8NHK?q#cWeA! z?mZ2^8GS;y9nzFO^8u@UM&Y+l%A{Txnga^`18nZH0j6ykMqOILJLCff6lMhIYcb@g z7?rcks}>1Qem*6x1+voJr5QLcr>! z^U}e-LnqM~pt-@6*VGHMv_K)t%M{@kw??!$iKf&azVdQZMg#bkCgP8PuM9=1kV36x zNNF10^Z}Aa~6Wmo-B`CEuAVgD7XlWI|vE||76glaWA zLYD&nV0i}QK#!&XXd*~N%kvs0_6jgVfJqf&MgWyoI3v2+mizc`IR4lAqR3B2r8E6Q zVOjV3x8b%(;R9O17?TI|r&%xe!SCpr>?`^EO?gWIIUc0uoG@)Gc!WI1Mci}b|2CF9zQdF^Uh7)sx5kDs&1yl=U3CVMH6sZs%tF!?u8}vR z#cT&4OvRQcP0c+X0hOeo!cZp^n}ubWE5?p>G7{@xqUys|Pq1tRa%45S=e4y_`b51w zKENA`LEp-A8De7PN!#{EXg%_8ybJ4weNAi$a%NwXVGJ$_j8nxTn#mFCn(|^nt_5xH z(JEv(Q7g(x3}5mKsYu##G0@iNUV9Pv)d+G`6OgU~n!C}#E2PRnFZ#Pos4J%g)6jcg zNzY}(!4?)}^ogeaCkoq2Czw zo4L}CA>n#&n{;}JnQJdS8uE0b_C@g51I(g9YA-!IbW$S}(q)H&iC>EJ^U$6dE65}3 zs9ECdF=+gqyGU0Bv2-lbBgji%ptPbC9|9cIlxq9U=Kd9!SFsXsh5p5Q?Da3D;ZH57 zi_8ujmaaS%(|st-_RE(n3SFg*``VpQpLH_jEO1sk%%9#WNwSGi6wIv ztQQ1Bhn7WTD%b<@AE#5ekIeWQw#?{rn7_T6P$7}2qDOq;Dq4a$6;I#GVTeIpJC1*Sy)Sw2NL}gBz9Oo zNG8{kOazJd6C}T2=OAIfUA5KH^ac&acD-hmA_@YV@LG~kkYLlU9?2qvQy_VShH3KN z4=K`_pCFkJzXXz#wIs(ul2R0ZwO`R&Qrx6BpFuJnv9MREiI^!qGX`o)i{P}q+xcE=Wh-SHiLBtG?X_l@$9d%e6}5P@=IylWJ@4Q>au%dU%o+JX?Azf_+oSElgVv;P@rIb zzzpfgIw?P=QP z1)g0+sjX_|I8Dir`UGbP6I35_mM{VJG3N;5UmtUxFuwIMzX?_S%2e5?_i zhXpbU7(!+R!uupKxKEID`1y7Nh-5L@Q{~xvyJ@|g%{^K@_8|IKH^_6C@_Ir!yx7mzHCqb{N4|&B>k$NE6FcFI)B0TiRfj{aZ2?m9i*4;F3kQ9I zVk%|VJ@~urI&XN`-M7gF7p5|Q5&Hzuj~Jqw8~%_H&G>IbyUADklB<7%5e@opL?7Jp zk}kd&Z2xb08xU1#qQrs$zls+OJ{sL!3PYl>=OkLr^<(lS=)4{35ok!X9Mdon+d#9E zbS7FVG}J}v_KlhvJq??XQ_3_=vL_j@!}O{VeZhzZ{5PW4(W^vc z*Qt4os*Of9jgA10-etD3iF|sw22&f<9UAPd0ROcHlbq^Wf+tzd^kvE{#WbT1fqH>D zsG+t(B(;}@`awgP(G)fAeiEz6wHS#ka8V2H03jF>2E)8Ngws6qyOHc|xcV~Xv^O+I z4$S+45$4@)()0&0yy>2pRAsZnW*P5 zt7nX-o{N;z-taDRP|t8y&shJjQE=9i^+aj)*l6K9TFW{?mNkg@zozl;O#BBnq;?$h z*V-{o;~%W?KjcsC7(1DE$8TzJa7{Zt)HKW;L)K9(Yawh}EeEXLCYu%vTQb0Z#VF!G z*u(z><+L}fLJs6l*Z4n2T{-PZ{w*~AVZ=XE%W6Z-v=RRq8h;D%59mSs_czkyAExmS z)%fpeMDp7Y(l*UyP02O#FV}R!EkV{k)~&z6QGAYZjUjUl1-4HnOa1_UhjxTmFyqOs zLVU3uTGOd^mb>SP+yHRgu3{acPGq?XZ?9kY6nrbfoVz!P@7^a$o=2>u4ULn?6%23p z!Cr`P56kaV;bE%aQZK#@=QqhR6?m9SJgMdo)S;aTSxGxPNjncghGTEqGCE7KLAMtO z8(hWu(s&dzl7rp@1*@-64T50;)c~WPu$lFnAF4Oy?Impv)S@3t)4~)tH&EK{?x+Xp)@rO{GHbE8n3IESk=pau;zSE zB}L;%KQt#u`e9aB+a1K@C9;ybCWY7bzo$uS7f9UfgcuZ78=PTVf==s3UrkXKjdLfB z^Lk%!4hvN(eG-n|yKNKbgzp?xQBLZnDx@W|o5e+wne~Mt)y&l->ZM*Z$s5#Li%AKw zjCCugHOf~yG&|JBGDA?>F-?bqT7PvsUAr)pkA2Mk?Y#@2zGFpUrFt< zpC5A;lb$*XE!DO#b@#ED&8LVL*BBllE0i?34OfrUi$AlloYeW{XUK^}j?>!GhZ;Og z{RF*=A=}M|sWR9H4Q4ZU<4?(7S*X)kJIy(f#;-Ac)CNE~t%H)K!8sxJAym~x(pjCp z-_>;UHo28@%3=d#1i7jKunH|XiwY*zCOz#9q0zCCOsQ=+DgUE%HjS5Kr~`lLnM2 zkF<*dzkPs=O{m2skh(2esc@~-cO=4}7{6**s9t9?3*}C$)4+`U8d3Wab$i3@G^Wir z4a_iCz1D2NVZ}LNEp~G4gRDjhJ@e#wPVUA*|DJ*Gl;cy{qm<6WAtsxXv3!dBZ&zCiohaG39-O7OT$o ztN_{g7_fG|uW7g82^97r`4?-5zrFQ%pJ*n1TYodxu{K(Ho19?pbh67kjItsq1kg3PXZ|W?!_z zCcZ{@Syo9>lQ)~$!Be{m#Fnb)(U;k&Ua~aIz1+Kf4JO z=im(>8aLPcZ=#d`gJ|{Kn8*}xN~n|Sf~UR~by8iL+b)!-I(n!Iy#=ZQ(u<1(b)(ew zt#(|BH0-VM5zT%=pY(t?g5vv=pKlL16WR^}BIK-e_^syp7nVrsTM_mihmox#QgJqo zuCZjSRq#o?*p<4C2Ej#^oK07h+E8yF(bCkd4L(G=OiResbw9ZEK^<%<%otoNU<$kQ{E&EvxP8XN&qkFraI@C&8GPSw;JAV&*`0k zTf5j_Xkq~MWUI5Z zCi|m1n=Z(E^3FZJW3ya)&e7Gp5ASSZ95m!^#ZXv-z%=Uxi`9rngV+=y%`Gr@BSv%v zQ7T&A28{EJ6}!y491ppiXEKD{qTwYV;bQM5S)Ky3G9j*#ktweSoQAu*)J@1v6*aI$mhO*}B#D45Hz~C(`K7d=J92={5g} ze9`b`x2+}bI5@7Wl(Z<^*cD=Pw=vJ^N=qCPx38J><|0%4IdbshPhnCh&DzZi#z`RC zJ#{Ji$OJOp%P@?}X@z*_g(_+0q83(GD7darOIE1%zI53&`0rBpVOGAnOI`UG9YPA? z@I2$N^JHzcdq7pQdxx?lV(o68md>la+h`kY8#R0=E?|m%OR!5oCT}RH1M?Xeper{l z=qoKLY-TSl$YhIgC`I+3~gUSN;@$zc%u&3 zp(*bkRqwR6_hN)DN{PmBqv^jA6DC?~J4)vrEwnEdZwr2P(gT4X20_x1>dSN{KgzR4isJwaszzMV1r50hLak z?bxpjb&ybHS84vdjU@~-UfX!vvstb!M4%|czLq8}X$zkyE*XX2OG|o0Z&-lxUlU73 zIRMu|v(#@|4HbPnHAvQ_UAa=})uqpeLSVjdAeXM}LI~haKeh|k-5X>?2K{Ul+Zv=NBf}eb_0jYeKZ-0tD0~ryr883sAdaXb27v2t(SN_)}Ln ztwq%crA>K{LCVvEy53UncY7sScaR3XendqJk5N3l9GGsV1rM|c{5TwdIv5$Q z2WV`DXnhme8OheUR%z?Iu~hoCJ}5txW&m%HC6q$rW5(LX*|M0{cO&yhQm=9pJl@q} zrtOcsq#!A2Y%f-K5_v?r0#XDLkiWxxXSMpVmV6E#4A~XxGD_oOTLyREH3`iGX$P7( zp4RBzLoqc|gU?9P=TeF<@fX8J^^&TjU%6ySSw0oNomLF)+;fL_G${lV;e3>`RnV5> zNq#$xPJlW-vJ5u37G%7aQR*peSTQyY38qp-@x6mGCk~@M^J)K2QM!{!eg*{K^|Tz= z0XQ@NrYY|$+O`y}50gj|L(8_JTTEdzn`N;`W5|Oim7&~x3n&)=$Lhv=h3C0RM zaK{?IFbR@1my~?zAaS%DBN|0HMvY!_h@n2$P(I6ndJ8Dg@{WeNb4~h4Zo?%?<#Hci zpfW^5QleyBb+~sAmUs>imjw;4bue%^zT=FV1ELhC!#%y!^1V%Z zJbrpFOn+A|U4KvVzYDVLEEwA0yZWud`?31ovuL@$Qh|huvVv@uj%fSuXX$WQ9nwW= zcP;(HEsrI%(bAJQNVir;#Gat_+o^qSH;W1@X_+vbG+s_9M8odNpMVNKv9Bv$Pu5c%A$8{Pg`3%;<^2_l6SQy|2=TFMNMyO zKeN)WgVs&`0_dp@ZYQl-+d|*9o%G#WE0-ocSetB2+vSa^+tDK2z zsqixPpy)o}2lQF+0beO~eLUW6$XWj~uC-rT-?p8F7BjuRrxqD+;VN4Z&t~Y&v%@!|T)I0ni;T zvutWTPP+J2P;fMI__E#R!Cv3oq%0h`Mvjvje*Kg_YMhkybsKXG5eV~E)evMPT;_3j zn$G=1T-uD2KKc4-ecN$T_1A-k#e#OQ*Qbn8I;Vi(i*^k4y$AIxp*k>>R$XSog$%E( zB0_fpI=!qElC1VfvMg?#^x>wy`u5|bOPehEj^m^jMX~zMVXM$|%YcGzQQY-sY%BYtr0EvRs|ImsFfASVQ#AOHaDbLPoCd3^HVL{pv# zo$9ojYY1D_5H{Bc*VGbTWgOeq5JuGyhHHcsC->MrEPr5>ooXoC)lkN0l)6(jbuVXx z7Dm`A$(lffK@hToMi}oQ%znjbO{pR3RYTN6Bbrb{G|-u59aKX#poXfiMzyqtD#mFY z#fZ`}#Qup%*1<$*g+@w2k&$HR+g{51vF%V`6H0dz33(j^J$Q+S{A>@snL(fA0vFW*Gj+4@(AEWI+qznDg3wdLgYA|B|ys-ru z>`SnN!41aR#%G~^s@rJ|j-yWOon&nSAg8-x;0S?#Fs%l4pjREJs{x$emWpIdd{jXKa(2VV7nPU|&-h|OgH#O7EX)yX>WcpZ3D1MMX6VGr7Atssc_ z90WjozV~E-s;mzDu@3yM4lMD2PV07ph|RYEh|Rh>sxRxn^|7Ae0q&pHp+EM3PU~8N zh|h-rh|l6WDya@!S_c-^f$w-gr&T0~*enDT|j`M&ttup&X*lruS_5HGUxCX*~!b$`8&WSjHWdwpIGotDI zX|P@q_kwaN_`;C|*nKX1AYI%$Vc1-pk_;^D)iDKbndfe0h%c2O6e=B9*e#J3#{ZN9 zT{y2GL-->@_%oyMTYA?jL%6N>qtg{EJ~O-~n0KVWSTlrc6h!`1E=lDB^-Jzazm@mV zcRDSZmF&2hs70BjxlS=3W&Ce_FEd3y#?nrSTxUWgw?>Sl>q# zTuyV~3QmS`EF$iO>j zrcLF1g5fUs)h2G&Pu!@VxQ2x7NAgMKh8=*hf-!7@c=6NE?#)Bn4pX@J(`xjRqI|bR zi}2q3Nk!HGh|23KUM>A>UyL+3Y&VKi$mMJ9rs@|+h-dEr1t+^%$` zj5=a}E4z)j2#5K?ckI{eQ^11!_}p?jY{yH0?X|jM@n9Im5K{vtm7^csm2tda`8(3X zYw^EoyLS@oxH@)!5#dhiFuMaksGyQC9#*ZvY6H?WEh6du#StaSs6^ow9S*T;3X%-7 z2(6SeRcOt+Opg;5dMEF$x{^j0ZbaF^ps&fT0XPrRknbfc@*hesy3<9cZls zdwM{{kXVB(i5xL>P`_crQen*-%xL3wJDCpsM|0N_Mlc-1Lopn|FX0tKTa+fK+%Sgt zlxq?yhF7lodm>Ils;7byco#Z=Ab}ultuTV2w}wgf5Q3%`!`KZ;btsY;#d_3XNOE8- zb(roNrfVIhn}$iK!*tOwoog_KnJ0JVq6I&a?c$yhB4hg=cHXpH3jR4Pq#@CZnJ0O1 zh=s;0zPRej*l!<*Q~G)!cOTR(3Qo==NHWNsJ( zgo!T+=rZE9RXffS$q=*D{7|gkXqIe;lJut|q_+-r(r<~7HXdrPFN}~*9qKgF8m>80 z&w9*YsYyGnHh^$vpF(h&cCb^#UejJmO*%w!VqPhyr)V4!2I1IN9xnzD43owk?(w1@ za0T8?FcCE6c=s-xB;dBJ@lh*Ky7%)*2WFi?@(Pl8dH86#cM~0gvV7vh_6c`SrGK@b z4scp?k)^|H)F`xxc%ZiByL@+H5&C&6srvA2eM426T`^T3s7hxl`q?@WjiMZ)9pFnV zNk~hmh8jbQq+3AIbn-+MO+cVCttf-HY#S;)d!$vnCZT)1lZ__)&U()IKtF3NI|{Lt zn4uHQUU_(+S4HE+meRT-oyKi%2{+^{HSqo zCDm7R5<<2wZWoU5MeG>d7xfSv!glP?0Z4n~8Qqe}V*`(5V;}tf@A5QZ^4MK1o|NYZ z(zWs&MB)i~Xw>rc<(Y+g>g3VF*O!3PWzR_{by|B8h#o1s(171w=PC-;oZg$KI6gnU z*Uo}y#jz0xQj}0q1PJO1WQ+?+D5W?`J=p;F)qxdt;7Jci9aci)QJejp){AHYEc65L zCh0`O7eM5fVtf1oitygbt~IBnb;mllppe6~tyh9u}T4Bm+Rw1oX>2}kpfk})e~q^)#iHxpPXXAe{A?Q~P>Pd03a+sZCA z$V{3~M5g=?NxY-jFC_rqt6mXEJvD9LSY!{Sxd8EU!3Eo|gQN$F--H!O z-EHx|Ar?c^D-nyeLesG{c9!Fno9d*Ty_tf934X%yHq9~boAM_@5&1_kFH#MdS2v!P zJ~$prjMEhd82@}cwuW(#Ut0VwFg}`&Aa8J2@8cTdGBADs#=Ni+jLpAZjml~U&9KiW zqyoaos~y{GZIn?^L|kW9F^Lh9H2iRB+bM_4U)E>%+ucrlKPzb zwIwN}FM7cDe;Qxs(`|kJ2t@d``I3}%I#uruls-BAx_=j-cwy)qhjnhC)aFct-X~BR za3;AUaWZWi(a0UY3ks*Gn)fK&v@NL7zmU?VGr`ewn(Rf?EM%6Fw=7K+F49;PGWYR9 z0W}?3AKye$&-B+XJ|xAToua>YSd!01+19c>@O(40Uv?P?gZq%_s_vmcg|32vK;8=gqWj9s~vI$J_4`a@RIL4FmjJ7REVzhmShhn(hSfhl8 zA5Obkdkf&0^>0{e8a25FH6ucELXb zacjC32CE%@qA3y^*QMmL687WVJgD)%IteeIqC*>V|3XW1f9nz=8xiuOZksqF+B;p$ zh&E>mRciVcTHPqkK#FIp&C?C=+zY%a{qq>p$*TbEYp|&5Z@uMD2l*;>w)LcGss}!gaH{D zf?It|O%aU?8bZXHa3Z&%6mzM!Jqb936VO*`^Lp__J0jKMiPI?A6v=w=#5YJft$Xq7 znMcp~5$94mXgq*}MpOPLXo_e&2z0XX0Dfm>(L6tj8Ql&uGT9oH7rl%h`$@lF>J;_{ zad7Uco#Q7W?cQJb6ek3a$F-}=vG#w6f~Ilx1>6zgCsm=9GiamvyF6;0p#zCbXI^xn zMflBKfm_2U;*szV-+xJnD?yO(H=vV^=kPmg0!jFEeF>SHqc~(U@}+B+I)n+trJj_p zBJGj#WnamBB{tT-M#@S*92y<+$4OlyoXSM7&LUk#HO`T z!$qSXF;GgEp4pq1^uUzY6nSE>w}xCp$cNfHo_PJgnxs)mi-5Hy-8bdY&7f4#cuzx@ zGBj9JFm!O0hOS^}Fxjr_N#tQJ4S#{*ADQyjl48OxYuGAalYlH_JS?Or)Tlcv@xNO$ zutu(=T|tr+A1_i$Nj`c*hKWRP$dr;0_;`_0O4ZUEGNn`xmUsAO0stXVn2Dg@nC~MU z`Ms$fm?Z0NpS|AMFVhsxl6xrmERsbmxtEeSTrDHcN!D^o+K?pvNmhlDU67<&lC1kE zNncB%x{|E>DH+7V4&ZbUKgmk`a*U*Xg_9;-ZKBE0l_;k}NKJ-rlzawBO$G}k@oErj zU6QpsC3_*M$>ad6Um$aZK^g-X@I3DFYvw;h&iBf z>^V;a4kmKkVqk_s?2C7V(%)6sT7 zV(=zPdrGb+*i*6}EBS#PsG6duylaXsVMX)n6`fbFs2?jjTPvBxdgjC0qLW$CXX+Il zR#((@=)T*{)?_tdn{-R{>3V3tKepNE>r2cs1nUQ2$5t;a4Z}moQvWzmcTS3PU1;5~ zoVhH7T4UzUwr366>pe8EJP&L7X8_I#V&G_iYnm}|1i*bE415Y;RZ9jA z1{e~?z(D|0A{fX6oEBN0hiwr+WVB%0&jTukCj0zpx6`vKWa~od!1Y)zP`Y#dLoP~s zx3VKXCRJJ)$oWPQzp|lcrPDWhG{)!?^~S{!-bkwo?C_arlDO%$sr1$mGSK z<4aK@ZTkN8J$`W6=u>KqGpAQj=wuVNtU4?GaI+ZXIe&P_z4!jVlfMh{U4Lw;li;me zJy7u(@;1So)M3K1!9w-|hpUKD?b~N9#pL2=LoUCM=G#vb*xr_fgHx?bA@)D<_K2 zKMLnlcEP~6FPa8J;FB#oO8s@S8uEp?LqWm|dK{s6UQ5e&mrO=sQ<{QhHK-7I1YqNM zdTB~u9J&hz2XI300{S(s>4(MUzn2@dDGbkcPI~LlbN_#gaqbZpfu!^;XZ-X@~_Yq z7z-M0-Yyy!8tlDyXrMIsuP{3oPqDGPa}C2%iadG6JAYc!a)chZ(E$)+$OF#sfJ8B~ zj$&pVMRpAZZu8`9gM?cX5JnIq!)8EQ^@j2kO)&<|ByRmR%?BMuJu8j>d;f^qQSGQ3 z>yEmy?x5agoJ7MjeXu35iY!G4d-;2R3J-a@B%z;4?NBBFrc;NluS#?8romRr?n?R+ zSsHcEOh$;$v3v&`#9O(%^Kw;2;TIU8i|&1^Z~v9l@BY+IQS-d;>9owD>1Edp*uLAB zE-V>Jh9+i~0wmcoh4my?y0Q>ff8u_OzNnW}eZM^_YWD!Im65~GxdutfE`x!S6~;Nd zkuMa7Hk67UwA5cpmJU7$*G9c#DOoM@y?D1y{S7y4m3|@EOV&L^7_lZowVpxSDP#GJBQud<+aQf^~ z7yU0u(&s5#D50aUrizhfx#*iP(6xa1`yPV!#{A10Yk+w)`LK| zb)yx+=qq&X&p|W~|Em0lpMIM;9&zOi)RHQG$XdTsYyCE@^^d6akF=H+Ypt(lt*`de zkRL&sMvvP;=40uQEx4k?mdpz=l77}s^gli?SZz{IGxP}5Kk0f%G0VlhXLlrZhw=1{+D95LzHi- z3xmY1{<<7)H!kgJ{!Ltlq9ff=kns(7zgCQaHXqR3-8f^qLQS#Zi+5+GlkTNWL4cz+ zcaA~Z04`iL^z4ecT#J?=mc8DoNk!C~9y7|>4?_ypSyp__h3RJP102Pkg1YQ32B13>a5(JJ4XOQE2~ zl6n-%n>a33f4r-FisPc~zZLoGN^}R_PsUZvJ8-@ykcPoc3t_JwG=%{~czZikbqa3T zQ2$oWQ4fYv-kheUZTAt?EUm&@AE$yCd5Ag_c_?$@7L4W_Dnolfm8n2g5#8osmL2~G z;QXt!HNO-E6vNc6nk9p7nhw>Sp2X;aR9pqZqF4kccBc&YRdFkmMJLW10r;9ASoFr- zH>b5NIN*y6YCJ5JSJLj2X<)hRhvwiA^?rg|ZHD{$ymQ`tU5?*fgD+KxS6bvpdalKD zC%RDKSBbCZR;6gn15SL8)JAjdpyV)VlRxeV(G_<^*@E4E`sC8i$xO~ExS>a`twKvq z!)lp6^iqZ-ds$@DSMqCKTvY53st5lP&On~mpffy%{Ejv>Y>6P&5QG|V$8_~sxy*}u zmF(5#{I|y-8}9XZX_P#~o0~MI2VL{}b|MpE0Ks1Xe#jPro^NbYdu$_yix#i1!JIxi zLf5y@gqh@;dqU6bU6Y;Ex9o%x0;K#UH#Bge=9ItCP0!)=8oX1soyMU?70Vb9Rhofo zJEZAuF#7H})|hPEbc540ga1a{Q=_dLcI$E+vVpse;}aL%Ggjvw0fKG`cmE1vd8U3` zHu=h5nlL*^K5XD7+U@hfxL9l4I$SmOQ&^fCwZ_B*D`V`gs9cSz45h9+7rK5 zO_l{8E;QH|tP}3?JKgw469${=)+{&i(mm>qXpnx=?Kc6|h zR1>@e<85~UH(i?_wD|ph&JS{W6K;?`BwAkCgzM6awTlJnHl|chq@J1dkTmj8YyL-? ztENc3b|#eJs=Wi5Xq^K&Yd`@G?d!X0`K>^1e-I0~DHPW(LBNzhXe~e8lsn|}6K(8W z7%q1T;zsG0>*NJNT>HlF;vCZTD*6^fY?!yaGl=W#)0Rf%8&Ao92XV1Jcz4^OHXJTT z2XnE(%MK$a^eOVFu2XQ&DCAxsPYmXQI*rC9+;pW}R|U7LC@;~~!Ye~zRK>F!(AMCp zVW1ZAvWGaYR27F6e-g~eoIdZY+^aeFcGz+_l$>y0XbJaQ`VB+^r=L+VI9*#%e4;t$ z=hga8T;eq4@5W-E7oNd3O{%{<_C=@8{_)CHAS^nNWhdou%LQRjc~TZ%1%X4J@J?tck!@Mu68WM&>l1PH{mzv!>2O?qV*})|W-hkbI?Bw`BvzqPnrl`Jkl!@>f-=)c2TXUWD z$KI1Cx8|Y}-lOJS=*P&5$oWR2pIJDrC~IIyS*}T_3L@`-nE4A=H6}E|00To zQ8Cer7w7n@P5Q}MQCz1O-}U$)PAkwiCW_gRLyK0Z)$M`8x46cq%0*FJusx1ix3({O z@{-3*R^Y|^+HDVY{VQNE7!sHG>(mXS8QhED!`0PkPk$;O8$hxQO7&Jq&II z826?oHC&^FBSrz70~n7I zy~q=ISOf9x8sk9?#CNET`vIDYQ_NEZLpfoc)~{b8F&cy0IzV=`VH;&&J&1?SphI6- zLs|WSpb6A!L;oIJ- z3cx0A3xQrxDinTDU15{oYr{pDeuhU=Hz7YmxTUV|BP(sV)Ru8DJ2)lnb=|*`Sn#s~ zD@5Cia!gz9XH#e5kkeZ$^ipq`i{(P1x4^zDCoWA_@@LXyjDM)>^<$t+@=zx9maVZ| zAD?~nik;X;cE)lsJ{KwRY#(`3EZ0S!r^uIMx#3~I(%FxYR>6E_HFG6pq!MVRMYKFT zj_YcSM+$D?Xl7xNE?So2xRv3W*netb|Jt3zHsz&LY0(%lO&-vW`^hw&yw%8L68)Z< znJh=P=bB9=(bbAxZ~_-_3Z3W^ZAh1fskdLkB4E#_wU0G1CjbGBBpQRD2*L#vH z(YP?(o&tjEI?_}ApgkASku`o0)ioAW>7v~it}y_?dYD2CNO^2?pLLjBCC#g992zj699Z~1&Yr#2#03nTX_xgqiL zkp!+wXF@o4VIZ!!Pj0esSuP`4p`+=!a9NU;@?|NZMRakOE?gR?FL=KAjjo)ZUjMZs z=UKSL`sHeIPqScANAo*>+?^@b5poI zddD=`X5-TJ*OwG8vT<*E>BlZA_D$nLIIlnNc*#-yxeoe_t@2a-xnBC&+lrU;=c4rb z7q-dY@Z4y-~0=!#hnw(I-S}R1A}&Bx?;_stx^O< zT|wbUVdg$|(+l>u1K+9Bshvl$QAl&a2S1{F#{;m@An)J2W;r?nsL&li4Yz^=4td?X zc`@w*k6U4KF@eW;9{|%8n;B{EZc0O~rUQbRQyZ-1yCL>~x?W z6tE9{%J!6PsM?r%2LiT~E)!#Bn{B5H?K%Uno5Jjr%ze6*3Yp6TqY`TsDJ|w?>$5b?0c{3fATQ$*+J{~ zH?)PcfQs-^|Jyly;SccIZuRqAR!0(=gU_PB;QRq$shi80sDLePZDf%Q!T|ej4a!zjzvwW!hP2? z%{^`=SG+!ut+352FeV_Uj;$uukC#F@t(^F2PCtS4W0V+4EH*ALF9S%EjOtp>6qrR5 zVHU9}bu|Ka{GE)0a_>>t2pWj70OO=@7R-ij)E!N!fT0g=v!Fcbs4Lo_egZV?1jBy> z?rNwwPKX2rHWsqaC7eMZ@j`D3HW05ECIVtX4p)UU{ZhmeZro=nH|Ri5mn+?5FWIaX z<<0vB@cz7se03Bix2;X&mZP}{pSv{M{1GUpjOK>uEluQQqdANIYO=g z=GwHV?nM;;o56BaH$>)h& z=qblM4f6fTa>mnKNB#TB^4zDnR{D9#@_SEn?P6VQjyL6NuejnW4(>VRvFXKW?M7em zV@+?LELT3wRWxOaoMB>`FCfiNFv*9WfqVVND7P5PMYnzfW~W|n>~Ty_PM~<>#qzvS zes(O^uSY}7M(CU#HJ$S&6+!p8D;GoO!;`4uf&W&4HAy}-7OuN_l3YEO8y7gN2V*j> zhRH6YJYyUe>Q|Vk$Gho<1&Q*~aojuhZH=&vUsmR7;k<~?`)x!D1zK`6lFQX#BW2$GQd~|JlL0%wqOnOs`P=cF#jjm=GGJ>|clpkE zuD#z~3rpUz$ZenHqW$)3$z2wC#IxL_pdehGz=ah0_A=vyyRyFWPtS6LO%J;cP5^s-xRZMoNIKL<)qr6oIdN_Qc$7$SC~J<2aJg_7Ia{bq{6CRKIysvz1A{Q~Gu}0{SihuCsh&3fHR5JWMlcA8(Y$-8Ha$o7`k)q|*{^ zx+Wkx0;yV2Qm!?$OThX()h>+|-f7Im{Qx zfgXv)SgPg}!bo`TYrvU`>59+$XMuI<5hND@2SiWW_t^q6^#kaV;`&?2*okV9TOPR7 z%dx`*SdGAUFGxTKrwgQV;U_Tx(u+q_)hBYxY0$#_4ouom!ivV64)VwNOH0A~4x@&~ z?rH@0d;ft8$`Cs4dq!S7o$D}a70LJ#DtFyS9mr=BMF{}rt2Uv+$}dsDaO&SQ&;i~8 zcGTcel*GxyA6J+RYc>$NTz9LXu;9 zBqDi>g^#PDXWZdel(}?6@!q3q_fC2Ng2kE%xLjLSG@?9Db+=(Im5xcw?}P3Ylw$!B zii(yvFhx#lC|%7#4p5CXlrt7~r#`3Q8fmyIH-H+#PzLo8N;<7okM_uoU*cLdJ&N?K zDvYn~lpz=nAjA3+H_Gc(04rbO;_Mb=&`UPnc#S+j$9C)0I9IK7fq#K{`ah5k%D@fm zABhyQEv42y1w5_?JcJ4qgAR<42|F-62F3$EtOb<>YR>qF)o#}?@WLuS4>WS`mpR{d z9}tV27|8hzASK02rA=Q~l^dK?9`!v9^UQLEKa^*_%r$S71#Ioci^G~pMD$n53?m-y zkw1Bv>(;6xP?%%kmkaZ_2@Z&5N-d+Q;m(6S@|~Bt-lk&@_ITsE8!rC0Hm(OUNS?r0ZGRtMUSB*^x`d4!Y2XCf51$sC&`r97btYMe{j5yN_RV_XSJ->&T6#5v* zu+hN&f+<&ZYS?ZJn*!{!@UZGj8aA9^Q-S@GqKnaX4ed+lqM<2lboHjyPj4;b)?LaN zp=I=d8&G3dhUF?Us78!LHBdvH(NKHgb+TO5Xc6)^A>rzBw;Hh|wZUmU&S4tHHqheS)RNgq7yV>FuXql#{4JZ$(_Mq+LR#yLA zyd|4kqks7#g&}Y#fBuP~OpaaMhdVEz8$ zTbWP3a1B!0!YY%#M}$9aMG?H#cXNypHH52F0}pCJFhEqTuzF0FfC++XG# z#^mPgk%|Ytv26vCwl;J#;io=sj;0Fa&bWP=h^E_epEtPR7oS3hlb))oNNt95Gz9Ta zG5q9#@a|55z#4eoO;yy8lp`dJH3x3k#{YFGK5xyW4sgwwhhL#}i#R}kTk zv8HzBs47K$9hycYOiR*rB#v@Ze*P`aY=47Bz?z#-*dtO{Cg$CAF*};J(sO9(yAD}! z-VRdUU*u_*13?t@<-#1&rqhE+0pb!mQk~^N@Ib7g!8j3!ojME@wYk>c*F5dyZ`zTg zr<`iiw4w||ACm?;Q;~4W_+86z!Nw`08D;oW#z8IP7kFaIczgpHft0aT%a{-GDdP%d zv@|2*eJ$fEn>owXpODdQr#I!~YB}OUt;iPS;E4G}4f{3PK#W!c>$I-8yGPzWk9%ft zEXK4h+ut)X)$91o4;t_j_1XCA7>m;+*U#7i*kB@zxwrD~6X-<+FCq-1p>%K(!~HIOlR#o)Nz#8F*)PP!8=% zoq)eoXQ<3eU83oC0${u}u@!lXh+DvQxwiuwzASOYCBIOcC~?Uv9bBB2Q{a-zYZGH! z^4;1*tV?c_TSInVl}FVk_NnrMT&{Jr<)8A;aew3|X$es(dh) z>#IM%Rt}iYrF6N4wYx5-6ShRLwjYH3O~WN%aNcm4E$XjOwqiI>5Bw`P>}*mze?E3f zd$h&Ay{#}Kx;pp4-&p>c7T$$D;4i}%s^FmTS8yunvB`2Dk5sPQR(1iO@C!a>l2_$% z|LNc;&#N4P6_OuvGpPgPP#94ZlJtJBvfJ#~m&g7lli49Zo6p_m9P(2OxYszHyl(;5 zg_ZAy@_q3(2FhnUMSL-z%3|qLQ&t?g2H_maw^_(7LHTV9xh^R0TF8yjZ&)q&D?sbN zr?u)6t=~k;RKZw;N4a4$Wh;ga^kA)D)TsE|0`52$Q-)=sF1rInC;~(xm_^HWfC=s$ z6i;e3Z+eG|>LLScDh^(ThiLhj65EUm@Zg1SC%}$On+|bDgpqk=m;A8fTp|W9@RPko zu07`{ju*KqZtx(i3$c!8J7L)au^A&8S^&jP2Ie6CP8Dv8mZpS(=E^Sm;XQFP^qYW; zhwP8s=F{KB!(J%<9-m9VF-datD=mmpiB!9#Ib2zJ%M^x&baNGZ|mPa1$+!kj&t!6L4we zyl`66?}VkC6>@yIlpBi2EiKh?8P^u6k<0!c-rfT&s^k3^-!sb*q_|j6EGQt@8!9U5 zDk$g@QHeDgTkJ{ff-UN zSCiDd5?P#=iG1bD=Sih%ffsTx^$XNRY$nl-#E5lQZsp8rl)swHY2-&^eVZwKX@oDw zJShZH_{_%~*up`)@_ebPHs|AE-g&-MfeoF>jq|1I#de|52TUABa%g z%S`Cg812F6kSW*U;E&hj=W5J8e6SHy-yAVH_btZc9f>jRqtG?U&*P>%PAU;&{(y;< zrw|E`@&);7YU-xkrDC(&eGec!pK~8kHE1TqN*%Vn2p%(R^hfp9I%O8*vrk$0F^_Lt zAQh>xB2~gVJbJh0eW2x`MTO7X)Ul`spSB(39F(7^pVId{f4D%ZQFYdj@Y5E4Y&%R; zlkhGu4X%QO2a8IHqduh1dET5$)uk1DIG4)dGn-3$Ld#*`2qRGnA6sN4fymx8n8bph zO;23Da*@=GZ&@g{r=rho06WwWok(Fy&m(+WWK*D@nZq+e9n)$rlGbTa_Scq5@t(7( z57qZLud+-E);>emq4hH9tMW(C6Mz8e_~4alfyi6&Apy{`9|p*4EyrSzvP>G?m?Vh( zbo>Kp&Z4~+(nO=fW{bQ;eE}&m-hMb3l?aC2*3l`=lAk0WNRzg1rIf|$ltM37DRCGj zf*AuHeQ^sKWt5iS)P0oM%IiZP^Hfd16(E1{)oY|i@h@odqVf@R{rbFwpWkS(-xVkp zcMK?2w_ahpIvOc`x4#a1#Oiid?s$L^8*zRPRh!-W^fCWygH)1j*uuRxN;QMV&Jg^CyQv55 z@~4LV;1}L$BNj?#Qc6-G*RJO%ZbwnIUQegI8ZD%?kAe#timoR|FUZjoYFTk=a}OM~ zb0+D(DWXWCGkF`JuKX>8_}|Fc@E0i}{5MGCD56GO-HeE5;f=jrf0H=HRch}ST0ZL+ zsZ3>O*(%Pmed;XRH_o!f5&S9u?0|yVAC9lkAdbRj7(`W@p;O z-=*G?S09X%P5O?vxUyX;TfD7Mqm21f7j&_71)x16CXJWbA?;(mZ}RIqq!@N)2rs)+ zim3hc2Bb)?5pQehA8%_*J?Fcipmn^5Po{jI*mn6Aeejnlr{Ca{c1q<@S%2P%?vsWG zr(wnD+@ERRr%5)6_5Yf`*@cOydS9ni+Kmm6p1VlubzAtlJyJQAe3j$9)mT>ZYFeQ` zqzuVZ`T%Z&U(+t_m1;Cnwi|w?8fmYICX(Krz6Lbrl^r9v?ngzFS7HquS$I;68)CL>|<`}G9BYL_liEAmd>Nl%hhy=3Zj$f+nj(w+{U}eXV06!W&3deuP1w z-q;Dmt4CI$a!FQN=yasJ1y! zMQv1(AyPp?+hPxf&D0C&oRS`6y%npA!vP2Tc<2uWn6rdtkiZ0OlI(%^azOyx4<(2g z(v?gV-;1V$tbf`P&QD3bJU3Bc&RWDjo|0n9Zlts**g+WsV~oU1L@^?a4^+*zE#}=% zOHGUTqYncsi2KUyrKmob7W2)gr4mgx9Re~Le!;kdtfWXr5}KNd83c8m-?=`a{DHoY zGmM#}|5X=r?HMVgNQ#?&mU8~hB3_T^9aTD&+7p`ZJ+g>@dqyf-B-~9OCn3%A7x6_z ze~DX<5kBo`ct#4;ZxPQrBSrN7O{EV2J#9JYY>|+U2CxUP;(+xNO)zc+SEj4(TEg8& zs^QnrXGS`l?pVIN-tKt*L6Vho3wgJ*QuX51vVrU;PjD=cOkle5tA9hYEQ@rj?(Eb2zn-mvu z5B(|A-muE^`Koi+n}F}7b5eO@<@tDcF{N>YAurPqrM^|lNhyAqFJvONGE~5FhZqtd z8s#iU2v8%@I6^XL<7S~Xs0HJ0jV31S8jWV=@|I{;h;vnk@Q?q^Xms>b^pPWA7?1?;Mq}J_4c4CPro3Q z_dG?q8#|vrydZ5Z`j`}I<~+EniaA~cu5HSHxhR!0R6?Crx`Pq3Uv$Zy!%iSaw=|)A z*J!aoxfLKSd1(>Z?-XWRxJE)3f)3IvSURQgJYM9IRJmz$3hmKc3QcsDCR1oOeQk1T z+d(_`_R!U0>gLILru-auN%d*_Tt4oSRKxQDrN}s!Z@DA|RP-TbFe60lR!cuXo?X@8 z)LxMjv{UQFVxD_Rsu<>Z7>-}gAuW;@>qQDk1GpQUr|0!9W3NiYUOwTnRKDC-&;qfG zu@_0+LwL0(2{ZUgnK_3axGV*AFZ>L=s>HJf&1ifY^YsVu3+scr5cxeoh|rXp?v~`n z7THTBZJ>6ru1e~tlEzVs6{5y+iW>5cvv|}Msrt8_1Yd5C57r<_rxOK8PkqW?s-Byp zAFu42EuyHQl3G!MH-bb3L>q(NliDo;LA(Giwx65ziF+X{PHWoamV5c>D^fsUdLsyJ zKBhHHI!IY+uojDgs&8zR_Rke*n&dlckITcfJ$&XhsVh4a#dEJo4T|@oqEoN2$Zxz` z@8(h0rR|Y3DRGNukbLNw%oc!XJB5nG{74LU+xZ1$>Z4R1`loa_^kkX{b{T#lWjZkD z6B9O-vNxT4$6tIx$!eN`U);@XxY?O^JyeYkkYXi$e%ZiR2(?4RXOsv|ypzFGP zB9W`;WmeLhwK%u9cCY}odX)=g5t9s!P)Iwk#*FgXl!-%GsF^od(vA+3J<>{g%;fbZ~1G= z?GsJ<)pdB+J5q3I?@jPayHL72rlnBVO5`7|Ez?MR{vD|tpLa(pic`>Xg$w+|9jS3+ z>8vHdOA$4V=Y4SJ z6#|jY+T;;H;6>vMwjwqu{cA0_OKrY}JeB*@Q;~mrs`8389zIW;yzvv)>*XnWct;{h$c^`rX#z=G;fDpS4zGJM>m4|u*W!J7^q;G-*X z@vNHHZ#wV=_oe6(M)Dd#Ui(4U#=sMXRb$)o$M>aD4f+v^10>{T>|_LCOQ!DJLK31f z1!;?HraJNEAQe|*30%dSK9Cxef7?dYQRu@fH~8EQK5fGnKak27JOC16O>ZM&t-Fa( z+?;e3L9Uo2Voe9$ocb$?NIKwwt1!c9X^(f@)1mOnH9aquBUNPE^jx2VQ(ay3d_M4^ zgHa4hD-s-QGSszbI+>r&!BX~w#(cOU{lkon_)v%RJg`Zt(;m2D6Ti(;>qb~3>jBD? z>$KwI9!eDg=_xYx4JhRf%p}T%CMKm6zUv{*{q?=cAJVsYIxmweHI_nnms}}4aOG7C zu4yOJ-+l?QULCS7Lo$6lANEKp*GfU6pgqd`2_lW%kww&PTMN`t zoLYFh-9htn$wZJrz#EMQ%3XO2K4dHsY{~1fC18_*Uwb5#Zp;PO9=3u4I;5ohAi|}r zr>=688cmfHHJU0wZISa-FGULQh{sY$5CfWV8)Ni1#enGu>a3C(i+gI5XCCE4A4}a> zR!e^JF?Ln1Y03Y7EF~KwTAs$8fRD{@JV!6fOSj4)z#(}JnxQN>4yJ-EBnS&76yYw2 zWZUsZoqlOSIHos z+Y|~BLKw_%ymZrO$ekBVfcCYRVHyO$ut@R;4KL-y{c(T(LvzsDq~5V{O0k#AnjzQr)2Q{jK98B;C&aJpf0i zjE}%e@%wu&;dh=%C0Ms5{M|FDJ8RTDt;^qZDq?jsKmG#1H_=@G5~b2On)iMw{m}c5 zrl&pd!Y&GBIi+M1Pzce4%*nhFpA|~;Bq|htwFE?=M1X>11b$K|Wyw+UdRL+7l6ccs zQnjMJkjb&O3G3-7pSXJTb`w7Fl@!b}o20FHC9RTJDLs#UgR>Ve8mEnTgGn>v@94M0 z>|`RRuORUx-*W29KxwGFrwxI8XkPMjx!y35gCrS^Ln{*cZ{do8FBt zF{LiYis-0dM-Qf`zO1Xp<%3$Hl%cpjEz#pc(K6D5$<6}(1Ndi=ttXONpd`+sp?t?X zsadJ65YJU~-2l6auKQKB=(=9zRour3m!`AdEAdAENMW!%z5c=S zTnOLxk5mGmtbe3c#t_&c&DEGQS(x+QKN(n@=BCzTV0%7(@s49X$@(DtclRyFq!YC(!ViyEjoh2_6n;?vH5`J_M#ybhK1fd_I zndqdR+DLDbF zZw261i3{Nyv@E>Y%Bz;VM1LIK=xhzj-bU@f@dyNkb2YXJyUaPpj2u?^P{!SY1>ft^ z%(LKHw-ax)p!v!6FNg~>&1ii5Jy^@qkQ4GPpkxY`!4|i|>K|j9x-^83@L(0$^IB<3 zJXkG>Nn80znU!aMZsC8+EU9@rr;Kg3r@UTkUKV zMyoNmKyO;fbfOA5LA*mluG&_!$v(n)Et_0G z0CjD$B!C7s`JZ(Zc4M3TS^&{D`ELQlM&Nc@j7!U`yNhvY>`{ZYt$~hT(8!uzZrG(s z)Vx6FJYmgM%sG_!0w3`hHQn^645VkQtn#<(_^(A-!^lX4h`H@>d^FhMr_al)sTn0U z9?~?!v<}V@^BEdHzwIcBW7jHPrWh-2{B`wJSGqO=gsxH&e_5NK+O2MIpBvoc2GiW& zb~m`q4Q_UVc6n1iwDy4-ff11{cftVcI;FA8P26(TcY|(zZ8x!I`D-Exb~(xkA*9-F z(9N&zCRSN3JQ*==uB(ES?&@yP=>YsnZen=(>&~cZIw5$f$TIcS7)0)(yJ(CEdj0t6iRgoe(^gbc1ewF_kFdFI@hHGpf=~ z2)>HBK{sFLCi<>+c`ELN;7R8O-F$C1(X;$bXH11vNW|~$q#^*f1KCYvt6jc)oe*5g zZqUuwxQQP^Z#kp#EU!ZFq;Z2P-$)ZD@10KJ;LR$RFSa`0*Lx@NU;I~Y;`7kk&Zs^( zA-H_y2HpH;ZsL{przG}taGIqQ+pi7Sy_5_| zvDm2a?SODWu3cWely@$R_t>i3xZ{!3$QlreFRZ$Jk%l-Ow<_PY5@uzSx~8*LS=@?m zFU!7SXBP58Arr&)ia7z~2Waz`MV`2wM3N<7yd zfcmSmTop)*`2x8pkZ%J}-E@|-0+}&iASVT~B>=TUXUP)Cx%mP)B9NB>P-dMaL!;@0 zumcweY@c8?Dh`#Si+?HB9t#9QCmhWBNyVWoIt$&2Y}T(?AQ0N7i??y`cAHtBQ5*%9 zjPtUYvnuf7VXT}H#hyDJ_|x)#T5?AM2wnpK+jKJ%!){n|zX4!c1K=wFTf=Tza@zv9 zy#@ddJ!krd-x5~`XGZ@Fpe`uG!f%VKgELqB3;?-tiSR2Oc6RgVr=s}1f)^h zO1deHf!gH@Kt*b8e)1V45ql!7e(z7;@i5+|G zjS)6fKsuVAo(_GD(pLbUT%h|QIzeXEH}^p$6n8O`5=ZG908h#`>%X?S=%mw8`b6MK z$ISYXKB$_)J*jw_AM^?%ri zjz#u#st{57t-y5_x;VhBKkb9MEO=B$qV$J>>nvXg-d&rEN7W`ue+9U@x6Q17?SqOg z{83Gc(mw)j)LC$#9D(}Ga51TNMd>xbb(U8cKA838d|?NKN2+j9`eMLw`H|q&nc?D5 z9gNaf0r0=Ze=(ic`j_@inWrEd%zmxl}9*E0kU8xYcattDn62-t7m!;F#OUkZ8bZ2mlczuVB>b^JoPLH7c+_U}>kWV+s3P67 zFcCpDK!~6QK2FC?$T1?I@8=Oz0WCiPCCQ{vL%FT~)w1!6^=azd-U8S< zU2DQ&B|xANu}5}3__Y(n3a68g(+F32x!Nq?dx#-C(9Y~hZ%u%cl}tI6+!YOB-)x`y5mU;qMGyBbhcmXHG37v=5(fi z2V!!j;}?7o^4!ZJWE(yy@-+N{HVGfQJO;mTLlKM=U_=(Cs3##9KB_KDH2!yD*&3WX z!sPe((j5=BRmvTJNslvtbvp}N&Lwq@c;(!wow9&rGo-eV@VZ8X1fCv;XN*|)8*wkU zHasoK_Y@lOs{btEzT3Y%__;mc>WLJ26nwaK+?*#RRhW{O93lp(cDo7DDRwOL@yZwGA0-4XUm3{)I+g;JasZ{jSCHtJr;noZ9Jqt>s+xfx}(VPp7@}AJL8igx5qD33%}$a*&laEwfFKtjT5xX1DyO!xi3Ng&TkS`c>Y&@ z*SpStiDIqU_AdNg6pO06=q~yxm>DlYwrU0tME|{Wz34+t^ht30O$kg%?COfTL&wtO zEnWG5hAe_LxXTweWR;Btkt2963m=NjZrbXEK-}d9)ARX9-NZ9)@QNF}?FJP$_|y%) zaf2FfqcfFulb3fs=svz~{ewHm-6?q!8=^@*T9ChK#2R>a$8HdV^^{Vq z25;Dyl`7q9h@WZKsBcFk<=#r&O*j0Q^L$4a$_x9DGK>#x%=WQ0w|NacD=rn}ae7wM zI2fI2m<8vm@Udzi^D4hdO?;Gbu&nuA1>LlrD73t=i%*C7nXJE4!8opiVlz`|(3R5G z?b>@pJ@Pq~io>zxb1IdLW09b40%(52pX*tXZbThT)R@53PI)$)8u}d>=b~1C7j;l) zP5|4QRI-+%?dM_sNxq{%#WWhN)49D{Ej||ta$KSl=m|F_+u?%T)P$8w0OFLL)WdNO zTKBIMJtFE}P_4g{lnyc2`l!`Sqm5(M-$^>hG6AkH$a9;pl5wB_*VxU6oe;eh z;KU`S##`C;Hm00al7M5`mT*d$()TU5#jyCofScJ8q7-cV_KvsBT!D~cSg6i@j2^Lk z_>*6Z7O{kb=ZqzULTUcy-?7vIo*xUJ8pGQB=Lp)dMb~*$GgiSLq0kl@M^wY)`=%76 zbZ9eHiA7!Ki@+`7;u@mHc_rT!{Iktii2t{@VUnCz(b?q_*Enm=Dn!)*m3Bf*#7?d5 zj!xlpXrBJW7zxv*fy#)6WOdS$20}=6Uqz2h+4na8ra3ER{5Hu)lj7GGzq*}q4^!mq zTV$o13U6}%~_A~eWQeg==5Xe|CQ`POr1prg3`p9neeJP{D)Z9 z&?gNoW8P^RbeG`iv8)2y{D3R5EQM8jz(>Tfxop4U+p7$k;sTrH2OfcW>PS8w$B!~H7_wx zys%~{0bR1EN0;D>;#q07=PKVB&q9pzML!iS`$5=9y7V`Hr@1Y15lA+934W!gTJhD& z$-uPoX#8%VTXvjUhLY@uZn07^80ob|4g?z{?;{`;Q%T)bQaF($l~e_!C^%b9H>x}- zCw!JuoppnK@9ww;nyRBNJvH=^!yORHue^iL{DPI&mb+)+%M(~>e&!42Q5Tps;JiZp zEn)r9cLzcSCR4rzNP>d7(x-NXvlQ;tiUo(3A1n5qRX~zV`T~eTN~RW92BZr;lPNz} z_!q5MUDiqACS1kL!mjegtyqPg#Skiz&>4&Sw0~qmSuF0*8Utu6Xh-BA5Rf5{bA+== zv=gU`O1cKpff@#^L>S^Vnm>Z!3Hzj!AFh1Bs!bGvwFT5vc)0{t)iW5$iu{nnzf54k zUX9=n4ss~{oX|HPya9|-o2}AEjsd*PGXAyYPA=sL3D0l|j6DN?Y zR(TYCY<{B^{#ODkRiTec?M9!dqq@lqSrBWJXCNRPh7S1N2S?+~4|vVitP%F9eczf@ z_d-;ds3`P+uV~FGhWreHa@*mel;qZmqR{)vyAvHFm3V7o7mNNp67{SZ5V`0XX zRL-8*!hwVwh8mD+yeT2jY3Mf4)&+-(CP8uN4ybD?I$v-fD93>w2pkCInAA)t(**3Z zMQ=m-jog{v*GevVK!aRVdaLX;YG*{53wHmQ8s?Anb<^e*z>rs$mWk~+wMO`v%=%8% zUDC!uTDnpw9myU$oIh^I8u%0t+_Gl9RGrsq&x$u31zSrmqD;C=x7%SE5ABEfjc#;R z>aWfQg2eqmyVds<7bzQs4i#;MKUJKY+Otj})oEwjm*6=Hm7)>|m@o{xGi~xj@$u_9 zjK6Nr%2f)e=920WtU2<+knzMn)~dwl_T1O%CLcyBa6?1jFy5pC3op12lIMlJtd+zE zb$}InY3J4stV|c2V!)PZT}9kB^#Rk6ionfJB;A~h^})#=maL>4-OlF+-VkpI+&V4> z(wy(mp;YUql)%v6tZ#QfAl^WbvhifjW)T!V8X;(ls%HKB$|Q0q^t(7* zp`hxEk6$Hx4kW}hH?+3CQTk9zX4AhIOfDh=REGsrhpz|o(VbX1pZOvnsL-s+d}SwA z+$h7-0gqT@daEYLD0*|D846i!Kf*l+VmCnq2*~eDY=xj|(i>+QaqWv2Br18J0D1K% zuXg*ds8dt}V&LF_cV94GV^Rl<1JFTYR00F29=!{yQ6-ChG!mZV+`8mV{uouMbf-UT zFDHM`ihxmu80%EVJt0b_as>>e_0Aw9*=~=+-aX}rN_wD@{-Ny~zp13_Drq?FY+A08 zo*Gr!ipQYMP-!1jQV`aBl(9rgOX zAmhoD{RZ@ahB9zqV^JbM;xGv1Y>!365qaKLS&32iw9jR zxa#V#YkX}NR=HHSd`i`8Fh;h>r0=rvsXpO5?&!j%`0fjL`AE9T$8}{bLgQ$!1VQJ=~A}S*?~R*<k<`5+^IeE&h5~O4Q zcULVRMuwdshN$sVRmRQ&9)giZ3{m3;6C=TH_t~I& z`H489%6Cw`M8Y^ySW}20s(d4rQTVLN7z742WCi@F7I*K%pY~#1z22R>gN=Q;=Xkqs z*bDFe5h4#JKGX8V-mGksBS9qgMxUJwacL zEO9&SdA_MPt6rf`M;xhu>HXq7npIRcv%WDwsUFe0;SSCFQLA5_^E|INJIJQ@;)nXM zL2cTh7ewI(6u^~H(Qgs>d`vYe^#I}K-?Prf@CVSyWLE?MdAv?EX*ZSIvXHYml$3Un zpOyK9zHAPw(H=L2vY68MvF539w1+xDM^2uCMVJhQLhm%=6d&A=eaE~;^Q-+>Gx`Sg zXXg_7bw^W{p#)K?sdE59ZKEXE>|d>Fu}(cQ(JxC+>Je zoNMH_>IC03fCYwpLqV)pgBVCb&<46qZ;Ijv^@g~hudv%y;C zNFp3LXtM*#WvigcE9qmCH>%hY66-!dFekwLZ#d@mPKo#qvV!c(Yy^3{HvDPQ<7?HrBHbBL-uFCiq zWG^}b_t8zmQUY0s6QZYfQyE4F3*?62IdYH}5m^p1G>R%vBxqEDP;;zub#ky89PG^^ zI{qB4ayxW`g3GM9#_Fm zhQaVUjOfsx443|7xb!E(r9T-i{mF3YPlii>GF`*QXjCF?hi_{!U~|1t{y z>8Kcmvo1%u-(dDdK(=sx4Zl)uD}(u&e~RC+qkPa{RxUKF6OPU8%%Yo9(qWbI4CUpW zL`ust6r}wX8#?h{2eX>KZHu`2LTxg+GMFtaI4s#YOybrdtQUJC@!TQoS5{^NUp$n} zEZ+$|bH|S&SMDAW3iG|%+FnHmnOc4JjwcLb75sjB2D^OmE#=FSBiuNQHTCbJdME_n z$h#3K{M0a3&JShkNI_me(t%s~yJ0M-ud|r{ubK(|!*CW;ZWpA6>L0%2;XASriEpHn zFmfCSnR4%g{Q7WK&wEKoelt{h1S{*KHbY6?%EQ+@b_A;u(kuggKe+*ZlMB)fK=foC zZb4f}<31GemN-6h1S=l7FwO_vw@O$E&(N*T99hFAPdOyoj?sIl-53J|`Ld2yLB_up z`nC9_mR}pex*5l%-|>KTO2r2FEM5FrbN18M*Q7J#s~0$Qe@0T_cyrGC11y@l6(5!R zA!P8*AEfXxcTe3;a(xg4#1RL*C9`{j8%2PgqbpEgBhH$oB6V|m3Nj%3x@kpsMB5_Y~tW$?HpmRRUH z1V%q7sSO&I#1OtZiLLfMSq?gpbRM?#a5>&CnI#4eCyLH;h!n#-;f(WaYPWKHPcloO z>774Ev64Jw6l>?d0yn|J=_VK|1TeQOH;-bSolY`+hX+y6!_hw*7{oV^W}MaE$6JnJ zVGY-pAr74gUJfY1*2^nbi{tu8{4<>Jrc6BW>;oN7ig|6PrTrM)ydz(vmiZNt|2&3O zC}~%-NEr)P@Z_^p_4M5{es2t`RJ?l%aC4=ryQ*|F^ z(ULn+R006W!uWM}d{?93vuZ1TBMJa!yP@sGdw z$Z@Qr_dRt&jJjm!#<6gAWIca7j+udk+(B{`dd?1-N$ddHc$YToNfHuK4Ac72~blv z+r#Y40R*C0V1MGRBFVFWCJR&~c?IudVm&--(vZ2ogC8}q3dS~QNtCOY<8-R&EHXuv z9S~4lt#J^!0+p;pu130D{XoU4C0Dp-70OJm?DiW}Pg>`Ea9&(|2<}16Ms`xy?1cgb zi$>kqs4}h~>x{&?PMosDnXPiJB8Q1_kQlzi7^5+8H%AM z7|J+wQgQ!4(PkK5rOL%Lgvox*c+_N!TsBhX96~nW29+~lX>td_e^s&)eh)ykMP{P; z2WcNE!yY(PlGTn;Fq%h-V=Z|`TSLywZ+w#@;rKaa?#cU*HQiB=ZZ5Ig!_bTbi$QyH89*puAm0IW1A9|$MAuoj)?IIA9YzDes9p*h^w%*r)6Nz*$22*Hxiz{@() zbzc#xeGN&dSxM4NIHL@}E+v{3`D+F8Mx3lUvYdZwW?vb<5)IlD#Z18!hNEmq`kCPvT!+ZXJ??(1YPY zDXF^NagxHS`BCu}PG7;Pp*&_vUY}10c@DQ`l$!Dcxdym0LZ*mr-CsA#=B$;7?r(`F+< zS8sjD%MBKKZosP( zRH9Y%XP7D)QAMceSmF195~`wUl=E~MR}mGrlXTE4g{gR^%1>ARz5%H;21vEuNCkl> z+%^cYa77_Fj5sq@#(d-im47-hJcuz$Wjsg!ju`8RQGgiTRYv0@s*fLu;YEyCm2v-> z%19=LH!-SuY3OK={k+r0bt8^1af+y3l11_}mFC1KM2xqdLf-Aj2#UQ5F^Uo6w#s0h zs#t}IA?8QzDx)oo5&3xYCm4a`V>2;~cr4Dzxka2(#F?*px#-m7Ok$KF#(0&{OjN5( z&bY9#lGBPJr3 zsGP5P36F{+S{`YPkD zt2G=*oKge9DXVf`gF~^m6=4kmLsl8}&Z>-h#9+jDB&OBu@?Dh?L<|pNoL3nYotDjm z81xK+vPWfTUy+Z*OeOakIK_ywQsrbj)$trLST!(GRK^RZ2JZ#~1rbGNoHq4fP}^O7 ziT&0UzGWsWQ(`Hl+59$Wv<_nyYKIIq%bS$ZJbNaq>f3bt9giv3lW|o~_3gamEcSKt zNJy`ozbZnVj8Mt;99Gefuq0%AcBp8zQ-r=!)~e_|p`texewC-qV!@RLV=V&v6mVLC z-rD-o-w^d~6s7|04%8QMiPd##9cy0Yd9zqYmNSBPn$0R!tBXchnT~B4qND1l#L#6$ zXI7(Ih4Hjir}k?HQ)_`femcSJ z2^gS)*OH3wHlY>K)dnR1iiR`m78;-`*%#5(579^_@cGU;ta!+n;bJlKBDLd56o)Oc zpGpd#XurA4AJ1Wd#&wvwb9MmzuYq0yPIrmX%zUKWfV&FGlwzj2EIi{7FMh4G4Rawi z#olnN3w~gjbZP}!EM4dWFxEmfm1ju2E;!Rr@TM-5I-o02SCv0Oe6F)cUck11(Ja?< z7b4(}c}!<)N##BdY_%&MkSQ;K8yf61M>#9kE>PbGDi)kSZvs|V*&H(y)XLAe>PN z!IXm!fu|FWMwQ?f#{pZzmsLcNsd5D*5%O`ua4LfWwMEVrpMW`|`QfE3v{HSP5E;K7 z2*obPf=O8xb3lyNaC*=F3)RHnlf2L}7GzAO`t#2T)VTwsy}8%y^1D&07dRb9A~Ycp zY>}_miZ1vhss*|5psc+l`qUGU1d8u6Xt_(oZZy&$T=Qzyzk7wKb(Xy(w$1M`u>3n% zcM2NcxQtDVehV|C^gKq<;9j>*0ucAQ?I!&wfPnLFoGtS=C>J1+xN$Zf)>&D5oDcko z)%09Kl0D7hKmEkQ{r`qd%KaWm=u8UR=r}+B6KhtZ`ZiEWQ;X&Rz}kl03bwFpTd5>o zQ`DGk+6y@M7;nCuEh*V(C7H~RN`I9%1O-hNwDU3kdO4P@r#=_zpA2uONZMCfuqd>M z?I?gBgG8OwGIPMV0S2D5DMzs`B8_?kg5wNw9fWI0h=WQ1a1vT>$L}iqCknu^PK7h5 zdTjFmmTG^L63cp891jEd_V^C`=gLf41<550d8vQ6^MR- z+5*?rr&(?vb1BE8j`Eij19#KMl0=?IdBs(r_jA*CQ2Ac8^DacMj4eg9GA4^{>t~& zk!;({BYgQ9)}ovJiJxp@G;pCQ$kKk5oVLXrf&{N}x%A%LG*;C0O-8 z0ffz5jt|^yQW>~tGyGSTvhhcL^k-J9)B!TZZ7EROj;}~r@hCG1+W0UpvX<@eyiaDX z*CBptEvwPe+NUdgtCx+@1Xpbw^C2uY1UcZe$JF zFIN7`Mr?7PWKFxc5em%Y6#nHVmhF2x$K~{L4sZG^>!h_$&E}7;NfrHP!4xOvvs>oy z)4#G8zKIW99$G%&r#G|hzO(MTDAVrqnOoRB-xc><6n>8zw=%_d(_I&3^<6%48;ftg zeloJgn$Q5IZ{hCjLeq%{e6MWx!uco@&nHm_Yz8<)^F&rJ?YUB=oV)t?^ttti)Wnyn~ z7}JR+TG6^58iru7Eg~1Uns0|O#y-_P@=Ft6_B$HFHmGpe4TNWl?7Ar^jAlDgFxFeS z`_%qZkM6kG&ZNd-msdI=@s_>8s{a)wiX&$DB`NH3YnuyNk`FoZq53mi+$s5x@q9iQ zlImg)&4>2oLq2MCMkHPGp>_Gt%Y3N$Ojjtg^PyY$Q1w|Z?hh(Nca&u16HCl?vHRsi zzvn~J92d83KC~nCw+R3Wm zvwSD}7N3G?tTaC1X*h*ag&WdXlxGGRm8rk+lr&Zov|VXzCo6k}58K81>IP8#l{#bQ?0GGMJ0yei+=trD9sKGY?TXJ32!|Mv=xS^Q?8pH{uw8PpNu48 zGuv}uc#f!?Ze|Jysm*Y5>o$=x@So~2#~}A2ZMV*tqkgx~83;W7`_o?;QfH5VjMsOw zc4bLjbL%1A7i4hHLXO<(F4aA>g}2%Rvvz|lS?FdyXb+nJe-HPta`<@v!DcYo%oqN_ zno2^H z?C`F%P8qC%q_zMrQChTYizjBCWvQyjnio@8>6*Yw)ILy%PJI;F^ zVHJy?rq0C5HNu!KK)KQ6+;406(j%;l=O}7ehptIGaD+A1vR_SUAC9ux%yTGN>9276 z{c#o^`s^#=wI8xoxlb^juDPMou3ZA{>{ookan_eLnZxfMXPcPs2tNA+);lfZd6ko_ z7EZ}nT3eqrw_4g+05-SIXqSR-OlmYrx88U@<|JF?>6M3o1~29zr`WLu-4Q#wl?Lm1 zrPC4-cS~p%^(OcYco|>`))#qLkq-Aa^PT5Vd@ZS6{Xz|cijSr&zUFDq z&tZ2&X;CQa+EA6tQI_KiMHhuKw+;W}BI`nhQv4G8-LnNI!<7BA`I$>NU_GEU&$+~6 z{Q4s31nc>D>kFmJY#w=;HSoMi>D@DjCtYT}yq61Y$yA2T;Wsa{(w+%q{cFrwaD@eX zo}n&h&TL-s3X5dDCh#6tkcHi-r}1_spMQll3wt>}+r8X}mf-QHxY)y(J)Xb6!b(RB zSOu-r#o3V`rQdsF@o+DkQYUUVeaSS~Njh#TU1`MR%$o}|EuxS#o zF#(Vm;#%eI1X}%ih)+OI@re|CtNt5ccA03w8p#V63Ip=D%kA;;^72BA_J>Q6m{mVw zJdfya{-8>NF^hang{fV5_E^~rd0F4$apqVm}B)D3f?&CbC*_&W^Cj0_3NOiT zy+t2GM2)JD_%Hq^I66eiIR5e)`>xJe1aE#5t(#$jL9)r20>!S5OF(HO#tsnn(|r`k zE%OoN*4`iaoa-z+e#KZnQ>NS>Z0y+^MBd&;>ry|WENub(fTq^fa^?Qycf9yl3?8wPoWyDOXHm(#(xrG ze13??^}9H3W|Obt7bj|r;sp2!ASi=2Vl?zbxiNzezriXR7791WxPy?)CZ`HiJGvy5 zoe9W(kqBqmO`Cz44%5dd-Bce4KF4g3O?KcHV(VrONBAVi6?KxRH%to}CWnntPMsbja%zA(N|95lxE7I9&b$`6 z<%0ibIo1nth@?%si{PRB{;9NUB;(8sKND^S9mAjAWTom?5TZqouVRzS2@slYLeL~- zArSV{={A?92iVZ9=x6hLJ6cF;{7h1Enqb}j-!9WRn2WN>Dfktc;}0<@+R-$Bg=fYv z>_^k#sDe;!a)03}dcr`PUmt*}#U%4VZn(utd@h7jU4;->cZTd1kzEY{JH{idOj&~f zBy3PsgVfD91{SVL#59+vVRSs4LK-Cs zB;qqMKFtekrO3~VAi%k;ZGPFw|FIlDmHtz2w9S~Z^M9ssBa=~ZbYL-GzC*C9UP(x( z&f5}KfkRbm@OUVY}RN%o6vq`v?_XQ3RA zwMHHS5^L3`<71Oo!8uIp_6!QcK`*AiC0=4`kc1@= z%@!qW`BafG#|rZ8H({hmRLRejh*2bwHoq1s`|~tYkS;_1-%a!N5hBee@p*NSArg#EHJ&CHeNSxz5Fv(@FpmF6+z!{gs+9zW&NG>)``58!lu#pg2H;x zx2}WLXQpv{u!EJZvK0+<_d}^|vrTWkM*Eu6vvoU7dz`cjrndz~*EFYJ0PWBW{+okE zvj*e&3kMs(wx;s#4_Oqe_dQ?ukd+VrNYfRAjAD3n4g)q?w3wixA2I5q5%CZszx|L^ zC|scdO@AF}9rY-g4tA$~$4lfg0~`Du|0b8!tNpX`X*U{|PJf0^K}+iHc3b_DNAs*) zOq{g-mQQ-b!U}IeBWAESqlOP#e*+ed;yWL)R;<-1u6+!_N37<99GDk?d!`6Kg0LVaNgw^ z+suyiNh|m_ndXB51nd2JY_kxwA@0AxU4BxbmFIXL^#9x?>(j=F3OhA_o zI~3z0vSLiT|GLHvudq=U-=VMAKWyh5KKL~&S#T%DoM?K+9wgr3HVg6O^ST?Q$?;vTbtID}{pa@V^PQ1aVqAulJKaj7L zw84e@hx|)9U$^I%C2bGJ+w=NNn_H+^FH$bMH_giQ=*MemwJ~*LFsLx=`?e#S<7NB8 z%ht?4w_ZdRXkXExyrfD{^0t7)n@>rlfW^$_KWnuU`n`i6Tx9ZEd?Fk7geeMYh~G@P zK7KK7wO^$L#O8e=Q=ivBCu=ds@S-1~FMx)V821JG3g{`CJh%kZ(1$kDwWO@I_v6z% zwB^{z9(=ur_RFsI5f={H%~V%Kt^DaF%({42#j_Mu+zAT>x!AvCFYinuSbsGxSg_qWHqHC7C*`W@r<3u?_?YCRm>iVySFmMYa{Is#4#L5U{XB+e6*<@UZdMWHKCm~FxJ}3Bf&Zb#n3uE!5W3CRQ;gVgf08Z zdiV#G_RjP;>5D)}3QiFg- z1VlvlJMWzTS;&~xtKR#~^T0pzJLm21l%3soP6|cKtG`jf2>WoorfMU^cz08(wy-Jzy=ny9NvFh7{FZ)|{zCzDsRTDnxZ$9kSYon6o z?=s(W>&pu6xr_R`PoS+Hz5On8NFn`~l8YXa8qT4=Zq;zgL+Mir>wbsxXe;yT9r}2u z_F($(BKogR=f#5Nu;O~7Vs%})kx?u8cduDaZ)N7S=Bo1d4}E9woRel>qCtJkjbLIdullF_$r0Qn(i z-@AMH;x-+P+xm0X30-y99p;E~dbKJW+o%gpK5E+A^cO7?T=)w;JlCAo$to)|g^H&a z!L%_qmeXrG$F?y~m(#cPeVv|PW%)Z=Rr_%*Pl3nP?&A7O)vx0*Ngia6O>{v~55p(& zu9`FIzAl+}8(Q=HT2_ya=C2;z<4kOAmMgD!sW?nsq~7a5nbLbJT2UqGavnF2-ta)L z-n~$Xp1THHnM=y+@y^#1IfMl75=bydNYh z@&ysLeG1!yVcWYu8De}B#$jRO^WlU~!PYKpdpK;H37dLa#RZNI+Xlm?E=+9e9JaM$ zn=$t?Rg#T~VPhpEJRG*&5w_)nZA;kp(=}w(aWw? z|5(FUOZhpceQWJ)T}M^TDiC(IR#z$imSO+juHNqNQU1pWapqzF_^|&z z^``kjW!+;u$Jw0cVv|)ivk0}?sw&wkv@>q5x>4sUPJ*v`OOoa3BVZM%szwWa;n$J< z(3FEJ&&s!Zs*5e>Sk4evmEYDY%Jt@zaHdm-u-ngssP5l!sTXLk*^Oxw&M~to-=BW0 zJ|mp=(mkNMOx{ly7`2{%*GBr%Q?2LU^%X49?cqdgo8iyk5Cf;qnKXXZZq zvor3I;ly`Ee?X8rP@^+V{dei_xJ_j?lF;MChcn%DGgx&SS(>kIVqQwnD;j<>(L0um z`s(&_3hhvJ`p}hJT^Br5AHI99tM2U!(JtTl$DgKMr?Tz}X7HWP!!=YF&Ap@wUOXnI z?c!v2tI(&dLVM}W<*($|9G}ozCrB55)VAu4wv8{)gU$={j&0S<$Exa{0{7Nb^*dX= z{+OEPma2LMS9=2LDd%B-b8k)ad{w=)(UMZr$CG9xi=)euU40^;U_!;MKj}fr7gV%r zL>>Yi7Ea5!{aI#KKAIKuXd}aV&1kFlLQeX&I}J**@v ze<9X_o_eY0zv=;LGb_Ixdtag zbF~6J`Vsm8Obxx5F`KMv{)}E6J=OY?=FfF%pz6)x1UfFfw$*wPT8AFc;t_Luq@l;H zUP-eZX%dmD(c)ZJi5%<{94<_ z!TY~l?D|gqz9y^CX~?y6YN?4GC_PT!+uMxy?q^Ygss6G?g# zr*Dt>S(4t@x$2x*rM6zxc_Odbvo?LmTdA9m)YiK@uYGBrsIB)?+OQ7YT9V(AI{I+e zD!O3N=T&~z`o#VfMa;r=^$pJ5kD9yc>a|L=p>uGnIX6Sp<#GT1sg3$_=N!Fq`p9Eu zY(2dqm7ZR=o_^G!su9~jFRrvo13gt`|4sw?ETpQ_P+wc(MBXU>g>Lk5GHsXox{Dqd zbj|3n%R#j{(@<}yYFW0Cp5hEHH&YwwM^rXr8|xitKmF~-`dNp{=h>!u1!V{})mxFK z>&>W{s@=6(=q;4Pgckb0)c(;HRI^p*(tm5AyH(B7-Cq5G?p(0kJl)31JAG?gQs)sf zeR+Gmj;=D@+ld~Qk!$#()%PmxH}C3>6GqzK-nw#^pR@+5uaY&^7rY(l$PnCPl>rk z4>?;c9uj4C>#6rrLv^W#-d|~lo~)~T($LZV4ea;n#XQi9p3qUQ?%wp_jO;Ue>rYwx zeQ2Nf%s%=6rH7!k`|4%YeviI-Z>2BwWxIYi>pge#6xnpQ{%_T#E&K8QvVM9sRojpH z>8q8F?yq+xT{c87X=e1N4~mpm%m96YvdtKv*C0)Qae!Xm>e3Sf^-0RXH%Kp`9L5cz z&%Km+^}%|Q;)4h4T}!OgX`&RR=SgY1)c4!!$r4Qz)uwHO^`>0bgDRDO2z`E{R8J3~ z4_>tY-Vm!v>Bni`p}=qV(5F6fsF|!UDQ0C`xYaK8UZmS5-~MF%E>)HIq0~>5X3kJf z6Bw$mRs8N@dW&*u?gkcgpzxIE{fFpPt2r{EL~jq%$Et!n!)aF0(BBwNH6dPd1Pw9m zw;!Q*QJFn8LJuijHd1e<_`#9XnXAq%8>Np>?He^pAF9kBkJ8U7^P8i227NP{4um77 zS$&K?#o6Jb^t3U09_xTx_b+{Dv5)Cd_l0kMSEq7gX~3us_l@OaW7Al@joSZZEFDBt z*K*_ZczdVZMIEhCMY@jDODW&6Q_oZ=qn+U$k#GzGN zLqQ$c_mUH7(|h&u)X?-H_v(k#2&LDbNGB%MD}X?hjPX4!qbTlzj4RKlI_ zqlaCjJMPnGD{VcU&J(1gr|Uhu9hXo)Hrp`vLhaD*RtwvCHqg?)or5kAthOQfLg@{( z2rg)y#Ns!Mx!~Hcns%)@mCyQ2^i+fBDQjsvt`j`r#Aed=eB zy|Qo8DwK9J==l|)ESg#Lo3!g$%`80MPwng2bp8U8$?ECW2kIx1!5_>CGxRzI2GJ8Z z)XIEy1`R89)P)&zjwS6sQ~#m(=agIRk3%0_D6*?viq%!S+RdOr89GZZtp>-KrFV9E zSETQqrF(TX!(t!gbJ4U1=^R8&IQpRORRdMZ(0ix^6Aazw^sh({8hRs#^V%x&hF@<} zH2?`N4k=IDb|k~ijXQs+Z-0;B!AAL9L29-?C)xWc^tkX|+K z1l3Dt&!#6ltPge;C|;H>b`PJ<&Wb&ko;pt-l;4@W$o%dxy@b)V9zE`+mw8#@>TXF< zpC$EsSkkN;d%vdt=1hMepbv{ncL(+L1=EXss_)C69(P2~ zDwrOBMlV|=eZe6MdK-8>K=|5DCI<6c2Ch30q6cQQ=9SfZT zy&pOcx&&%M)1WUw1JHEnR_G4sUg+nnM(8-e8R$jmRp@Wfypy@2ZfFT;1!#3>J!o@i zJ7{-kKj=M{8llh_fJx9<(1)RqK%auHguVm~K;MCW1pNeh5PAZ77W%zXDnE1`z%hke zm>+rvv^2C5v=+1>)C=th?Fk(S9Ra-;dLPsvRpo~k06Y$T8oC;~9=Z{_6}k(W0X+&m z3B3Tl0{s=5XDT-|ZYq7OR27H^C=aa$tqW}iy$jk6dN(u~`Y-5Y=xpd*=%dhO(C4Qb zT$6PGZ$h^~w?X$p4?(|zo`YsXe}+1zalQqhMWAJ%m7$3S{%8bk1?>dw1swz(37r6) z4)sG9LYG3Hfv$nR2HgZTKENNlp$DOv(2LOP(5U;kWo{^4UacWafYyV0pFE-B2W*s2DA~hEz}1c1RVpN3iU%Dfi8!x zfd)ub`Jwj!c0&(BGocru*P&4}xuR}pX=nnp9@Go%0__JK0Zo~S+0N1&&n*>qQC8E!&jX7hd#Xc=f_Xd<)`v=y`yv=?*`bR={FbUM@z&A$+TES>%D zJ$0h!Uo`#8L;v#9zZm+LkN)MSe+B4Y!Sp?KT!*_<(B9XqT5I$kFg1aK8(H1h4}6mD z^t)nXj3kG{a>%~G4uS7kQ%+; z*UoJnT8g&R%CBH3bl`Q)XxJ{ZV4PYagx?_l;{{R?wJmH%I>z;PcB zf#&Ply-mMvUFaub))g#u1^9EUft9TOGzTC5879CgR`+Vwlr`Ycq_w>7c@Z4Smor?} zNVa{+_Q}Us7aY&2=n} z#>M^<_~7}8-ogD3XJ@qY-QG8`Vo{$6Mi@J84_2W>lm3(hx~^~@mFpP*Zzg<-!F zszDnV_~SSnYhr&R_CJS~0)H9%-$9#?>8yiVvW*xs0ve~_El^er7Dn(QXjM*RE4Zjd<;|tiBS79pemw-+Ft-QlIfLb z3V7&CP^FH`yuW~6u%Y&Sw6;)bU3y)Z($@P~*U&d=YJb}T)*bJ%c72rf0casw-KYH2 zt6`Pivzc}OZcB}jb033DWUv4ZZ<)*`;e1r|ZYNiCEh-pyjs2#gV&Y%%JLdD>X8rCw zD=l$p)3?`MKL5LFy=1ta1%H^9k=?hu_~)DnImR z2@`hz7Yd3{jw(N7FJJ*$HgoU)u3%LzHJneNvv>V(3$o{58VyT4gcIodhqwa&?`r&y z3jXjv%-8r|wRmoX3M|gajnLAZAS4yKF9Lr6{IdvlN&laz5egT0I6{WI!B0f6|7Qi= zDkq0Ol^?Ev7*3<0#Q#Nsw(?Z@p-uneg6#Rr@lp6cPG2=?m+y~0yDxWC9fgWquZRd0+^e)a;| zpa5Tl^h@Z+Qz~6@1iP^k4k-~FHskv3k6>T1g9}KFV1E_)r{!)pLOW1E(vjR-`0!FL zz;iTr`%qerp<3vTU|&eT1ygoku6BdIK%oT`${{&dhft_|i0vs6?DwJq{s{IhxIszH z%}(WqPU21_EjI_U_re$lBG^yj4ksAF{@sV%fb3lCs{GJInZ;k`-o+03IiK?LMX-N| z3ZzA_&wG>8Xa3&K*Z&eIAn91{75GI8h+sdDd&Xb{`xIJ@s2Y&*J3Eg5R7|qq@!Tu0 z5Iy8Rk-PmSDv%Vx{xl|`*KRj(B58r!ZlB!&_Ky#73z8$)-}##DDG}^He#~~i&2Gq< zDlh$NRCQ6R%|YySm#{r8g8e&8;y?s@4>U0KOpYEjG%4VI`gx?PK;Uc+hp>GP#!x$# zyFLF#RPcQ6_I~t(eU-oW;_Y@r3l~rp8KmZLxMh!7&KYFd?2U1L$h`nf6ML@tQ~6rD_nu>2o>1zCEGJD-QGe?+lMo3GKL`YHoGccYl9XXLk5BGa%Ld*`skrx1p6rz zWVery{BNLwx6)hXYvND_lTiCUX9dK*7$=hC?A-0EaG3fd*q_22N)6k&{BQ+!;#{2; zcHj%HRNz;fO5K-pufPgaFz{pU_KE0;px9AVvMw_xmTbHPSxHB_7XTsd=czxaKDhub|b_ctc5FZ6`$i%B4m(+3iu<~ zYs!f%g1s1yqM&6rZrxJJ7_Y^(AR|Hs<>WjN!QKQF)UM^;gFCj@lSB z=5CLDhq*r{cY7a9;$Q@OHy#2b z+%vd>tC=T)eZG|eeYPuLe)NXx^?^^~2ID*`z5u7G`9YWRPBmGZM#0dRqq8c}CKUMoK6AR(d06 z&Hs7^|1iDr&%5v+^?(s+3^$-+e^-Z8=AQWzHA0ab-oPaLyV?`!|5$1MM{=lLn_DoT zZti0&b0w1Ai^=?4bxvQq9;@tI>D2KTDT5y?a)SS*s`5jT3OH1aD-eg4$o{-q%$;bN z=t%5~euJJ{g_f_u{@z4RPYvhezf{dI$T6F@)n{I(%HPuwD5xhI@cW*QaQus7=_D@r z1S*(;mX}1v_k#DUk$VFuMxNCmA9~;|q`wS)(7+$=2xOj}RB@oBDRk;fzsrdaprTPD72|q#w>^cuE z{j>B7a2_dY>#-hc?x^GM&ocO{_B0f<1e3EN=2jJ`992qH`Jn@-;eH&SC$T?YX88~v zf=j(v2Vs8^v>kLMbOZDW=s4)z(5=wsLvZ|e26zct8#)v^voROkW&mrbKWlmHAIAPj z?7xVLKiixAMniqjkHY&n{=WxE$1J@MSHBmrzYm%UJqi5@`UP|&bQRRufGhBC>^}v) z0G(~%k5{2R#&Ckqpj}7v{win*=#o*)kHAm%myctf0S(&pA?)9T8UmIAY?;6r=qaqF zCg$9qh5grTT>Sr{HVR3CoyhP5lEL717IruFSl?QP!d$lgNH^^M@{P zN$n{AGFU!=`>^l+$}Iemt3k<>%$)Wh_PyuKVao2!&T04k!26z`&9}&2DpSWJgeX=I zG&|%l^=+>DC4*&QD94&qo;9Vs*>f8e5Uc=uMb?ZvS>2V)7q+=tl=Ri%eQ7`t`>FNQ zZ)|hrDNXT=(w&*EZjO@K_(-kM%O}-VlKwd~di__1IrbY@qLIl9reM`t!0ZN(S7~VL zO#f7}Byh=YfbguG`HTc_WaBfzz2Ij2Nmr{9Hm8>@CtcIh%*iKR?HyU>mXoeT@v>fB zMjjU|FQ=9rXF5;063MI1DcARo^Jaz9uEg5sYsi74d#9eYo&$% z%Y5jx>-*Yi+zcrr3ugED0J7tbx*X=_3uj!loLXV?z!~bz@tZ9->CJl7234xZ#yf#0 zfJb?`HhsX8*5}OUUhqaX{xG-~Tt%3-wiPgRuqAi{+-KuE!TZ_xaqt;7ei=MDCoiDI zP|v9r``4TK&(WCWv};{qPFZjEyv;1#{h(!bYDtC7r^)PCpT6guE03e3zc7EJt!eqJ z=FOx9hz@$Cn!m95ZI-LO@kY+>T4|Z1v;=U;{uS^VHl7ZiWaB%)>)H4r;!)ZU;YXBa z;5<#@K+a0sL}D#y=Kq$aMsTzB8#o!EVtKfuVr;x3xZB1Xg2#ia_fM#;4Y&tf1v^z+ z7mL&1gLp=po4<8cHG*5LN=S!{LE<}Y`~h$;xKw&Bc!G^D1y8c^H1I~?g(aicVCWDu zCtslBCuWfO!Ufj{CE%yUvt#qT+)2J8=B$gZ_9c#dWL00T)MU*coMkB>R3%{ z0Pa7Q)87j|m$?y=jC__s*Vft2E<=%E0WzXpYnu$73hoD=4emyTV>nktwR>R{5!cTXX=j4V~!!kr^r)@QD44!4< z?UB)LTfseuJE=;k*}Mi?UHQ~D96THR0mj;NiyIEjdxaB}K-1=11<*-O)+!^xO7IjL z-vsWn@qOT_Hhva7djuW%Md|iE0R>zpgK9yN!<_sBotyo9=jMUACavgJCspqpbIT8| zTAgGKbq&}@kzFO1HPtdAGm%c#UZ=qS5%7$WW}VA)l16`K!Mq#U$zp2SwYEdxvbb9K zNpM+gEj$}s7GK|qe10RYnuEK)ka_*GE5S&+gYVQD(*;az2?e-OnI)KSD$l$badl3} zw#|-C;M$#hJouB?zZddJYR37v_$;gq15ayear5~fU9FAYoK`w;Ir3a!u9psjYs_PWo{N z%uzOe06Yd<+WIxP+r}?}$J_Gx6}&XKA@$1d;z<`+!IPycCSyEtHR(J^puE&pKFoLX zN!xE>t)_78W9F1rZ4E5$)RvFuYd?-iLu*S0bqJ?D$_1a|e6+scNmzV33^g4Np1Oqn z3)4M~+9reh1I%w=w$BBZMXZVJu03UOIv2{K)ekTRYmgxGWzOhXx-U@MCh%k|avj51 z+Y27RBG#Jdxv#-x)ofY#XMt;K6|H)fu?7WSlZ>#eb~|`fEcXyCv$gKzZy=*M;aF`u zAO2;CTSKOOnqvs6!CzM84kUj=<<$rVS*9zev0hRDmhHZbg2#mm*l!hpay38vWqI#O z_^$w$<-Wba*Trgit+DsNXnuK}4hD_$le6`wQvP;s_*N8j2Hd-o`BLO}6+9E%1^?JM z?!fF_>^}}8q(Yjjj#`d#%>_TZS`EdHG^!t*GzV8s4*XHV3+3cfEKWBGt9YWzk?I%! z@@BOg)YkGj`|e#N3nG~um!Be8yv_eO{CC6Ohd%fg{vP;C@z=ohaiZ%!L+VbfF-XSM9w1F`AavHP=7T2{gwt`hKQ&rIswt|;} zkFoJI@bNbOmc{ABmjZ)~^v7hdZYIw0H2EHVcLEvt;ZL93tJ}ouGV2_C3a60AtqkdCw@udP;V)0!JY0noI7O=h0N}I!TsmVo*_EF{lw-Ny1`f5a+nur zyzWkT8j5k3=3*W|F&iv@U5ipHh>pX{CV&+a6fK`UIO>TnROhoiAEe}hdO9`Ei--mM>h&T0{*g%pGJ1I zZTV!w{}r46P4HL2={}3Mn4+p3y0+eypa^&X+z0;(#MOMxOyv172E&(R`A2DEigUw& zH7|GyIL_6E))R()Fvx{*GztjR=K|)V;A!wrw)xKo_u06KeB?3sP~`KH#i{-BJbV|b zx)~YOL6=Gkc7u1Y74QYP7yj}H>9la0|Bu8~&!wt{nS=G%8b-OCbE;@Do>Nn8{7!H` zI9=zgtpRwd&A$`)li)Je!-!jB*MPg$$d8lPbR^I`IcMcO@EC9zqb1ms z2g_^V?ws7v(qZtxK;2_)9|Jk8ca-NDx>uI@RcWy4^|vL%=Vz8PG) zG?lm-%fMi+&?xRW?IrkU*z(y3ei{{3?Xo^>1Yro;66^!dwDFTt05Xya{YKoHT=#H= z3c`?|9uFv53Jj=$5fuFbW z^5AD}yasp|aA~m77zQ5zvf+OIal^O8Wi zi0h*Th^tAIgqIYo1^)m%6K_qhA`Fo2Gw}x({}agnxK(c3P)NGsS0ub@c*lN{YceO3&#)sbPN%B? zpRR;Y5`S+_f5Uu}vMaGz%>JC_P_J`e};3~K5+LG=2pB; z>W`D)8B>`*idJ0*Pri?NA>8t~N?G}r()_d8P#K+CiVW%q*D}p7^T#IE$>w@VCpCjP z23$I|3%EP`wAr*kY^?-0MS!PGdTFMl)0j)Td1mbbvBmR04s*O_zEyzkz&z~L0hM~2 z%&Ip$%eb=A8+*aCmor}i|Ks5P70iDDza;!==0Wh^z`f5fZ+#YqxYC&0&$2mdn7$RLj|GtHD#iHF`pXoMq*VkX){KyqstJ91bJomj; zX_{6`>=YqPjkb(x3*xFc_jWE$s?i(%3tE{?VySy<$?k`Fxs5LYPqXo57NWsgWyu|G4S0seg<4cQd9ke8+Jp>hQZUC z4MBA5FT_;`$_nmU;05Wys5OpQ*_{Ah51rDbo~`^1GDyKwErU~YKgwg-g#EQg zz%wXFyvj)UYGicLR-xCyGi?>x1b+H9Ze8QIS_b;?j7cOF+6`XN#t$H)OSXc)vba+V zP}Ff%QH>t3s_lYsG(a90JIY!2SWayV4EXS`6)&g8#;I)s$73C>CUG_P^4fq(oWIr* zTwWLO1$Z}bc}sv?HV1+GzA$)F(4%x~n*@U_`xibRTvq!FUryY*R8Vw6)nYjc*1}&_ z|H}iVbZ}YqU%)`YyI_#z{&T?(gL@0`H=Xhv<}A3Z{+F}z72>Kw@wN(S9_DTvHwuwK zb*Tr7-03-ywN(W7g5&h6)dTn0cqi~=8&3vL0hb{4}&ajmln4Nmo@DpQ9?g( zkDHJCWw@M;0+%)JE8sr^T-LTr&n;10J!6nX?F}&mYmh+JvIoH5k&LhgT{8L(5JlHh)pfE)T@n-qm$m7_%Yb7|dPsN;a9N5jyg9fm zK_{-xfAmW~7*eT5szT*ap&{VB<~$TGU^2KYHJ6@P0G^3_=<6YCTLvym%cVkVD^dBX z#nzf~Dp(AgkU*A_4@E|M!DR`#2mCa+EFB+?vA-etU`01Q=C-zimC@4%3{r4e7-WgK z@EYKY=>W8$^Rzzv{4-y-3x;(9hZXVfTxByf$+z` zWvTd6$mbbwug(=}gch%r{K3mHH?+4TBN*g(-3l&C!S6#xd!&FUF5ndSL2z05El0sO z;IiUdPEZ#tP7m5;srMmd^b-=u3h$NRdKJu-yj-xH58U9gqPsc#OM}Zw?#bW@;MM|e zgC^Z*80x_wE4QV^t-zD8B0CNKUBP9gwzRk(xGc~{S8Kz;Wns2DYOLdLk`#cOOgWt9 z5Lc5Z#x{u_1Mgrv^{xc>+W5=hZEgImD%Smfl-3M}D75T7B!hAGSFCfDWIilHq@fIRBi?+*2mDnBgD6L;4Aho?pnWP76LPL1}@4oC!E=v67@U z{0o3*{)_V&fO3ioAIrQycp30i_BTSUV5lO7@toiR6kHEH4H>n7e@k#L_#p63;BG8& znFD?|aW$qrCvpCa3u@Y67@nD({%zUVuN}3=@oE7Xk-1ehtq^?=7lofd3SVY%`mj9C zyy1zR?igoIE+5-29ODngYNe{tZ9o{-3t zlAsv4M5+{C0bC+i3aR}LfZp_ z#O9O)hruOQr|^^D61!9QcitYtr$rCY=Ni6+<^9kYJ+12Y^d(QQ@P&CD^F&$>0)vRQQA7C#PV^ ztr!-;Akj&MF9VlorNUnTm*}O!Uk8_Hroy*?Q*=`v0y+M6!XVL3CBXr3iGC{lD{zU1 zD*Rh;iH<7#8n{GD6>d1`E?W(OgijSiEVzVI6@T6;1SokO462(~f5pYB`4xew%D6a1RCCafRxQql6^;mcaT%sTgFIbz$ zSfU~eF99x5l7&|WS5cGI{YSV)bzzV&%96kfE@730cLkR)%fbhMOW0-Mqrt;rnC1AJ z3WLODmIQOaB~G*OCEyabS@<*H631EiI&hBbe5=75Yt#6vGo8eFmINOmfy8|l{u#K$ zffjxoT;f6tKMyW(qJ>`rpJ5=rvl#R`Tpy_p|^$St;<7f zh2mDnpBRe3AhEfHmj{f-)if`^M?H4;cLap3`Q2`(=DeQ*gjE_@HT1Rodv z1$e!gw)_9nFi3QAN$>->L@O8m8@NO-7hZtAs8Qz?iDoW59-N|^=e+-~1cO97mjrdd zCHlGWmf#W%U3eF8iH%yM~m+QcCxB14@!8;h8(#oka-q%e6bwsen=dqu-RcY!N*~rFb`-ta z={LSkzdRL*I3bH^;V!eN5i}AYXp`WSMoXh%H$h z{X$QDSrTvKcY=GsW6+!i;0ZR~9XttqfCmYN!r+6!3qBh>6?PM0&Rlg;f%nRfDuFFXGtS!GhP1)a_$^JCz))o)$122M#)d5d-TgxPk z@J}0?!VoNkC95d7CwL})XkQY1Ah;jz#wdV-r-1wZ#RGpK4;$uyds}e+TdeQd=&*eP zhQMWR!6PW(72(fwM#I3jf~Wkz{w=}xgJ%}w0%$f^TPAqg7UswClgG=7tB-BoMO?s_ zXhKvo3_(9munPqg0{72h|9A6p0cF9nhp_+PSmxEiefKh#ZxEY{zu)06rtaT#%*t*s z1fDQkw~npl48CtpZXNrDV@`UfHnH=a&dm4B19!!~9{vIG(3Ys^2JVTQsOWg%A29!v z>!Zy9*Md3uGV$NYd=dQ9z=Pmjm>b&LFt{;!JxH)y3V5G0dJFt0cm@i71pGVjSu0eLop<%g#_9T=5n_2g1f=htEJS|&&ve_K4Jf+m@DJJ zv-dH7UOCfdc-cSoGvais5!!1;q{YQraRJ#jUL9Qff-{n}u1&!MN0{$cnbX!C+<%n$ zNygfUR=Cwq`H~GAVVI5tNynIf1-=N}eVqAk;Liv@!8{%ORqzb({0=q*!85<2AF!&U zrX~y-Fr=JjE-TEx0k8M~U&-7k;2L=HIrf(yk3_fTo=XECf&5E?@4lb&8EExCWmW?Q z_j%6fu#-#hf@fb~o*xDG0M{-u&w~O+NK`UPX>2) zWu73D4&2+#!Ee`=%V;VY)D4@2|CN?KhXjEpe6>tPh2D~k25J~^an7C>|Dk`LT*f5s3n}%k)?c?Hu$S1?kJt0TO zBjDMMnLm#E4{bFJURzgh1W!dqUQ}p1xDUJ~_yO?beLOV1!Os&{4bad4>FFEoY5bKT z#%6GJ;4al{8Qlr){)`LgiUOK|XWYXrlcDJho{5Tf6j`fcFD;Z(^=9H?-+6csH}5C$8U%!86c9(xt1x(;9HgWLCcq9>kEz(0nfWz&|e< zaDh0zm?%n1!z;k#xOC8gt4=sUB#?qjgC}F`pG8Iu!L9TVrSg{r&VD?QyBb6 zkeR@I9OlGQa4&}D9u)8*cs5!r$NhWY8eS)}3jPPd1BnI~PyvS1FeEo;-oe9$E5xl6 z2o`_KT*=pkd&vC&`_Dl|i-2b$|Ix_5BDjVVT`8;o$(RH~8WPY~2-emNJb-&Tc_h;n zJR7HKISK}XdvIe?0{M&q_u9BI4Tfafoy>gj6z~{i^fY+(N^Y@SE#Hs=7Bc@4{=325 z&*$_%!Q9Z2VDKZs&tyR-2f$OYlG%m)9|zCg z!v5Ch4mJL(U~s?72Duh&08av!`}rNdW zO9A(wLL(V#3#0&W$tMjwfQnXw|7P&iPr0X0MdA4S3ZE9E&&yq3!V%v_y13V z8)-1mQD<#yV8{lq1pYR-rwkX62)+Z{2QHtS4uhwG4}kw!aE*s}V5mO~S7AuT*vlPG zUdmBTMsJQa51JNB+^xWTTZ6-aWm}z}WRI&F`O%9amuT$drkbr`|Ja=(O?a zy`PDF&+V-HfLVBbY+@li9?(+x{4l1Z*^_WSJQ~*m=A!kn4fAF2l6ZH9xo3TBOGk#8 U|22~RW+x?`%|$GGUW={#f5uVRivR!s diff --git a/SYSTEM/system/deshab64/FUCK b/SYSTEM/system/deshab64/FUCK index ee5fec0..55517cf 100644 --- a/SYSTEM/system/deshab64/FUCK +++ b/SYSTEM/system/deshab64/FUCK @@ -91,3 +91,5 @@ linux_lib_sync=1 pe_dll_search=1 + + diff --git a/build/configs/dev/FUCK b/build/configs/dev/FUCK index ee5fec0..55517cf 100644 --- a/build/configs/dev/FUCK +++ b/build/configs/dev/FUCK @@ -91,3 +91,5 @@ linux_lib_sync=1 pe_dll_search=1 + + diff --git a/docs/ARCHITECTURE.md b/docs/ARCHITECTURE.md index 4e88713..5eec36a 100644 --- a/docs/ARCHITECTURE.md +++ b/docs/ARCHITECTURE.md @@ -50,7 +50,7 @@ kernel_main() → serial_init → idt_init → arena_init(16MB) → dma_init(Lim ## 3. 五大核心架构支柱 -> 每根支柱的**当前实现边界**:SAS-R0-PCQ — 调度器 BSP-only,per-cpu runqueue 结构就位未启用;任务加密上下文为结构预留。UTSM — 封缄段表/UUID ✅,加密原语 chacha20/KDF/BLAKE2b 已落,PCKC schedule 待接;全内存密文为设计意图,当前仅 selftest 路径覆盖。UTRW — Fast Path 真实现,Slow Path 为 stub。DRR — checkpoint/看门狗/Emergency Pool ✅(演示级),Emergency Pool 为编译期 64KB 静态池。DKM — 14 驱动能加载 ✅,无热卸载/无 capability/无符号版本协商。 +> 每根支柱的**当前实现边界**:SAS-R0-PCQ — 调度器 BSP-only,per-cpu runqueue 结构就位未启用;任务加密上下文为结构预留。UTSM — 封缄段表/UUID ✅,加密原语 chacha20/KDF/BLAKE2b 已落,PCKC schedule 待接;全内存密文为设计意图,当前仅 selftest 路径覆盖。UTRW — Fast Path 真实现,Slow Path 真分支(EPOCH/KEY_MISS 恢复、MAC_FAILED/POISONED 交 DRR)。DRR — checkpoint/看门狗/Emergency Pool ✅(演示级),Emergency Pool 为编译期 64KB 静态池。DKM — 14 驱动能加载 ✅,无热卸载/无 capability/无符号版本协商。 ### 3.1 SAS-R0-PCQ — 单地址空间Ring0调度模型 diff --git a/docs/ROADMAP_INSANE.md b/docs/ROADMAP_INSANE.md index cb0734f..08e1c70 100644 --- a/docs/ROADMAP_INSANE.md +++ b/docs/ROADMAP_INSANE.md @@ -43,7 +43,7 @@ Deshab 最标志性的疯点——给空气上锁。 | 编号 | 功能 | 疯的意义 | 状态 | 实现要点 / 验收标准 | |------|------|---------|------|-------------------| | U1 | UTSM 元数据区(UUID 表) | 每页都有"身份" | ✅ | 封缄段表 + UUID 调谐已就位(`CODE/UTSM/core/segment.c`),可查询页归属 | -| U2 | UTRW Fast/Slow Path 真分支 | 快慢路不是画出来的 | 🔶 | Fast path ✅(capability 校验→PCKC→line 解密→seqlock);Slow path ⬜(当前 `utrw/slow_path.c` 为 stub) | +| U2 | UTRW Fast/Slow Path 真分支 | 快慢路不是画出来的 | ✅ | Fast path ✅;Slow path ✅(EPOCH/KEY_MISS 恢复,MAC_FAILED/POISONED 交 DRR,selftest PASS) | | U3 | `@sealed` 段可选标记 | 用户能选锁不锁 | ⬜ | 链接脚本支持 `__sealed` section;未标记段 0 开销 | | U4 | 密文页 dump 工具 | 发疯也要可调试 | 🔶 | shell 可读内存;专用 dump 命令 + 明文/密文对照待做 | | U5 | UTSM selftest 全覆盖 | 把🔶刷成✅ | 🔶 | chacha20 KAT/段表/越界已覆盖,KAT 间歇 FAIL 待修;覆盖率目标 ≥70% | diff --git a/docs/STATUS.md b/docs/STATUS.md index a5883c9..8ad302e 100644 --- a/docs/STATUS.md +++ b/docs/STATUS.md @@ -26,7 +26,7 @@ |--------|------|----------|------| | 封缄段表 / UUID 调谐(U1) | ✅ | 段创建/查询闭环 | `CODE/UTSM/core/segment.c` | | UTRW Fast Path | ✅ | capability→PCKC→line 解密→seqlock | `utrw/read.c` | -| UTRW Slow Path(U2) | ⬜ | `utrw/slow_path.c` 当前为 stub | — | +| UTRW Slow Path(U2) | ✅ | EPOCH 刷新 / KEY_MISS 重派生 / POISONED+MAC_FAILED→DRR / STALE_CAP 拒绝;全分支 selftest PASS | `utrw/slow_path.c` + `.build_tmp/qemu_serial_u2slowpath.log` | | `@sealed` 段标记(U3) | ⬜ | 未实现 | — | | selftest(U5) | 🔶 | KAT/段表/越界已覆盖;chacha20 KAT 间歇 FAIL 待修 | `test/utsm_selftest.c` | | 真实加密原语 | 🔶 | chacha20/KDF/MAC 已落(Phase 9 早期),PCKC schedule 待接 | `crypto/` | diff --git a/docs/TASKBOARD.md b/docs/TASKBOARD.md index 1391161..873c7d5 100644 --- a/docs/TASKBOARD.md +++ b/docs/TASKBOARD.md @@ -14,7 +14,7 @@ ## 🗝️ 二期:仪式(UTSM/UTRW) - [x] U1 UTSM 元数据区 / UUID 调谐表 -- [ ] U2 UTRW Slow Path 真分支(Fast path ✅;slow_path.c 现为 stub) +- [x] U2 UTRW Slow Path 真分支(EPOCH/KEY_MISS 恢复 + MAC_FAILED/POISONED→DRR;selftest PASS) - [ ] U3 `@sealed` 段可选标记(链接脚本 `__sealed` section) - [ ] U4 密文页 dump 工具(明文/密文对照命令) - [ ] U5 UTSM selftest 全覆盖(修 chacha20 KAT 间歇 FAIL,覆盖率 ≥70%)