From 280e0c7bdc675a37d3e1edec5ec91af1bdd5440d Mon Sep 17 00:00:00 2001
From: Carlo Bortolan <106114526+carlobortolan@users.noreply.github.com>
Date: Sun, 19 Nov 2023 13:10:15 +0100
Subject: [PATCH 01/61] 8 user authentication (#14)
* Update README.md and dependencies
* Add basic app structure and assets
* Implement first models, viewmodels and api calls needed for user auth
* Implement TUM-SSO authentication and update README.md and
* Clean up auth_handler.dart and update routes
* Update userState and userViewModel to use riverpod and rxdart
* Refactor code to improve readability
* Remove unused import
* Clean up code, refactor models, update error-handling
---
README.md | 28 ++
android/app/src/main/AndroidManifest.xml | 2 +
assets/images/logos/tum-logo-blue.png | Bin 0 -> 494 bytes
ios/Runner/Info.plist | 10 +
lib/base/helpers/model_generator.dart | 65 +++++
lib/base/networking/apis/auth_handler.dart | 98 +++++++
lib/bootstrap.dart | 33 +++
lib/main.dart | 54 +++-
lib/model/course/bookmark_model.dart | 13 +
lib/model/course/course_model.dart | 9 +
lib/model/token_model.dart | 23 ++
lib/model/user/user_model.dart | 35 +++
lib/model/user/user_settings_model.dart | 19 ++
lib/model/user/user_state_model.dart | 39 +++
lib/routes.dart | 37 +++
lib/viewModels/user_viewmodel.dart | 43 +++
lib/views/home_view.dart | 29 ++
lib/views/login_view.dart | 169 ++++++++++++
lib/views/welcome_view.dart | 28 ++
pubspec.lock | 296 ++++++++++++++++++++-
pubspec.yaml | 15 +-
21 files changed, 1023 insertions(+), 22 deletions(-)
create mode 100644 assets/images/logos/tum-logo-blue.png
create mode 100644 lib/base/helpers/model_generator.dart
create mode 100644 lib/base/networking/apis/auth_handler.dart
create mode 100644 lib/bootstrap.dart
create mode 100644 lib/model/course/bookmark_model.dart
create mode 100644 lib/model/course/course_model.dart
create mode 100644 lib/model/token_model.dart
create mode 100644 lib/model/user/user_model.dart
create mode 100644 lib/model/user/user_settings_model.dart
create mode 100644 lib/model/user/user_state_model.dart
create mode 100644 lib/routes.dart
create mode 100644 lib/viewModels/user_viewmodel.dart
create mode 100644 lib/views/home_view.dart
create mode 100644 lib/views/login_view.dart
create mode 100644 lib/views/welcome_view.dart
diff --git a/README.md b/README.md
index 3d5ffcc0..37c4b227 100644
--- a/README.md
+++ b/README.md
@@ -1,3 +1,31 @@
# The mobile client for [gocast](https://github.com/TUM-Dev/gocast)
This mobile client for [gocast](https://github.com/TUM-Dev/gocast) is currently under development by the [iPraktikum Winter 23/24](https://ase.cit.tum.de/teaching/23w/ipraktikum/) on behalf of the TUM Developers. In order not to influence the grading of the students, we would ask you to refrain from code contributions until **March 2023**. Until then, we look forward to your contributions in our other repositories. Thank you for your understanding!
+
+
+## Features
+
+- [x] Authentication using internal account
+- [x] Authentication using TUM SSO
+- [ ] Overview of own and publicly available Lectures
+- [ ] Ability to watch lectures (single, multi - view and split - view)
+- [ ] Bookmark lectures
+- [ ] Automatic notifications if lecture starts
+- [ ] Ability to search for lectures
+- [ ] Ability to download lectures in a data privacy conform manner (non - exportable and remotely deletable)
+- [ ] Ability to answer quizzes and feedback requests
+
+## Config
+
+1. Make sure to have a local [`gocast`](https://github.com/tum-dev/gocast) instance listening on port `8081`.
+
+2. Run `$ flutter run` to start the app.
+
+3. Run `dart fix --apply && dart format ./lib` before commiting new changes.
+
+## Development
+
+| Dependency | Usage | Where to download it |
+|------------------------------------------|------------------------------------------|----------------------------------------------|
+| `Flutter` (includes the `Dart` compiler) | SDK to develop this app | https://docs.flutter.dev/get-started/install |
+| A local instance of [`gocast`](https://github.com/tum-dev/gocast) | API to fetch user data & streams | https://github.com/TUM-Dev/gocast#readme |
\ No newline at end of file
diff --git a/android/app/src/main/AndroidManifest.xml b/android/app/src/main/AndroidManifest.xml
index 0e44b06d..75afe80e 100644
--- a/android/app/src/main/AndroidManifest.xml
+++ b/android/app/src/main/AndroidManifest.xml
@@ -22,6 +22,8 @@
+
+
B0Y8FS+T|r$zw7Se`cVjUt<}|Xt
zZ#pj=TF>#V^Vrkh%yavCM4gA?8YBY4*9GSwQIcW4xca%_D3;qj(2d}DKQc?B`Rr&j
zcV2Gf>N9oxaG;Lox6I;|XAkq&wLck1PSU<_Ug6;%XL)K-C#UDtOY%Dc?;PWk$NT^VaGO48CBZBq~Rd1R1>8zsSx)COC#I6sC(d2tl^
z+Tg3K>pn^Bu7J{Y{Am15^a!;yAj8FxcTXNe6&AN|^3BKZb9&8c*4H(&zPyMHWrZA=
znayiUvN<->mrYd`tS+;oB4m=N!HM`8juD%!O^lr(wqrCg9x)g*rG~2h7#t^R;V*!8
zHyVrmcui4}BS`bM;>-QLJbXpk@0%M3>Tdq>vOw$^zCPN;wytc_;@r{K(_!q$!A#av
zVvzjqLF)YRO20v@o2t*-Yl8XXg;Myk8+EAA`T39b5*HMeDe=7m%Ev>9W)D2mRE82M
z$6vSea&yT8zdviOof5Y%D-yaVBGugPCG61sh9y+ysz{f>Z$+6-TWA
zGF6mgs(%m(K7OPHhm$N{$BClM4hv&Okto8_LYne2Xw1!!MwvomW|F*~B^frCMU90#
zIe!`}roLYCGRu%IGEfSAUCt|Iod=dfF1XL~-YBx5fxNn~wRv;Z=Vk9Kx)
z`-Z9(6;LYBR2tXA2Y0!C?GJhFHoyM-BftIn3%~q)iJve1
z$d4Dl=j^$296I_BJVY7ViF!11iW5MFqAi(s>}qZl7Q@mgk&!zyllNF$0cfqi$!QV
zmSJt^Iu)WZ(i>x!a+2$I5t6rppxl0PW*j81?I{X6MLl+(5*2w|04c`;$kOf;RP;Vg
z)%<6uTXdT0u0yO?afIKW69sj0ArB7qa_``L9=^01-rWNK+R9gN?Bl67o?}t}9MZ!a
zSXkxA@1O3Fwy&sb<=NML?%utl?r+`vo6DDfd31xKs&1v1RoRrzgpb~NjZ+8rkY3hE
zL}3m3`UYZ$hw_Bn09tDCgn=1Y!v+r;s7R!g&Kojdua&8*>I^OAYXy)>kE{}^wH|=u
z7y;}gtzmM*P9$i&9+^|D@HHGOmQ0tqsUdv1wS#-_E#}Uft?+^JJW6To(&)dFr0{t^
zKkTdG%#&4od7zok4z%*_?l~OkZ{f)D8N9e-A%A}J9(OK%#?A#*tZGf+(5gmW+}*?B
z)h(>*$QLl?vZAe!bzM{0&|S%vd9`AlTUpjx$kenzfnyK_vB50usAEY-E&a1=*}S-g
zeQP^8u)3AKt2&4Z_QKZ7Q52-7BvC(UEAH64iQw?G!$SZW5amlkRs{b#)gm|LTpoTf
zkKbNi&F!DRkc*)_M}NFM4vt%BnLmnTDvpc&<-7a8=la!Ky!?~K*j(!lgX5Zhq9xtl!Mhp>?+G=
zaaxRk#*L~#Z?;xcbM4%>47jiV+>~}9?cvTJoPT~PpKLGV;0zD8)=i-<&X~ABTcRSv
z2@mq6I3+{C4I|u6%Nux98{Z
z`zZxlq9)HBQdhxLuk(3Pf@k~q;`v%ObtMw(IayrCP<0HfmRcKCLtXtaz*vK3#g12w
z;O(_O+Isc7u2M58~CiLt&|TUcXbZi}mxvjEbY1pg3Gkg-%IrV!)isj9|kcP~Wi5x
z5Zuy|$-d4a_H`7Cip*wbTRy9+Qp94Xs(?J&lf~zId${=YCa!<;u3W0WRVd!Lens6s
zd@x|C?}}yo`-YN*6&3jxmj#S}UHy|Ae_rFtZnSR4p|`7t41XU2gLCjs>BTW-4!&7S@X1(=Lu{7-vJI2qW(Mm9iVaF4s(2*{q8dF?
z7LeZXBze>KQP6srf*AtInX>OZNruCmm6zG@2{q&G>o=Lx37Kps3YsYZ+9h`C{X-Q
zKn~m_5Bc-Q3!FZ7W^~-AX9xQ7O`)FFzAtXh5Wn9!;*k>?|rJ)zXAOQyrG&M)31tY2@dY%KtEb
zpchjBqYnT0c8OT5HSqB=u0P+xzXXzdmsIf7(mLJ{3;mi>Oho|p+SV?9etSQ&vVB5ArONs!lAy3+5PYc}*
zrDC(2*u7>p+m}vfbyo>Hm(HQBt`%oL4?KeXC5igs;N^s^o1L^7dlir#f$n&Rcu`p!
z%y;jt;Lp!bizB-H=sf@T?e;I<@~b2~p**}SD*4U5@;}Xzq#lByM<_-D!HL!$=vul9
z7~L5oVAL{m8VFNIG>z=hGIC(Jfh|KOT1r?jc)T&g<@}D;8b?uZ5C@tod8fOM_vSaN
zBO>E{VP#
z_uP7%GpFL2UqQ5ph$)lJ)!u7m*pQdW1Uy7ND&_Co47Jtehm~son{tEY@AmLwOEMR?
ziCTVU5r6HQ#hv4Aa$Ut1pHqhUbPs?|x$XkZUq6_|$t~qH7DV7?XTn&efXAar1IABi
z;Ha-bthEN6NrN~((};6>1GxFml1Iacl(wTlQ`F=6nQBk@A5X>ce5(-$>dfg+o*;lc
zR)faLdNfWqq4AU)&&|Rxzyk|obL>p4aJ8_*-@%o5-yrfLW2i_>Cfrffk*6<_t{x=#
z1rq7zL4>os$J>Xh^b9IeQYemzCRZ|4L1ctPI3+Q05>Yf}$FsP(oFxrq^ps@@7?oi|
zMRXS?v7tGW?KAS((^<-vX*qJ@^H@`z$~uYlH8GrCSj^Y^=W+4GTF#tU#YZphtDNgP`z2
zA`_}GbB;mB&{Hz46+@q}l)WWd6CBVp^}%>b2$RhGuyKtQHIRgBNESZfxkM(F6PH>+
zRzW>Aja@V~b9%7-b!`sAC&%--?p#X9=79p+Zc~>w<+e<8Whgj>)_@vAw
zrf4mBP5a4j-benl0~EFFr=sm3jAJ6mb_D!64avSq{77$q2h<`$sy8Q11t>Ng58YX}o%*bI%
z0av98{lHM45kr;bY6qS+E~7^gt8YZwC_Q$hOM(oG
zAzS;8|GKDb;)#29^S@_
z`<8KTXEX1wE92!A6}-H%Ow`(XR@cR|sZ(4^Uo}rItY=0+I5nw$v=zqCRhh!dnPtqG
zDha(ji6u?BteaCsUrQMc`AN)gsbEoiEh}cXuzgtQ(vP1vXu9p-p8_@K7wN-
zrM+09Z(%Hn*G2`Ty{7|SqAvX+{0NH=CnPg~{#EUK`<*Dq{|y|~?bZ#hfA|bPte(Yp
zTNd%%zHNjA`Z2-YL)4-d6K&j?Xz40;+Lck}PK+>iP~kYj*k0ghr$TbLKysuU4>z=B
zgn)9;1XBj-7%^m|9$G_n&>uAxe@hFB{es!r(9B!Aw({WmuX6d7M=uH>B}v}@lZV&O
z@b|grx%6B&AFavdcuyEB8@(t`btO2|m)PtA5-OUBsPDzErVqdR#W>2|yLur`iIpO{
z?A3+vyv=p-l7#1Jtc{m|QYkv!p5(>?4;z+Q+c0gc4!ixFIOyTRVRu(vjP&N0WyK6E
zur_}nIew#n?U6NBXWXpf{+Shg{>(Hs^`?*+Ym14#vKpu|d0-IZMO{wO9z>v-2GzbA
zte>jOTm3FvI*|^aG>S5vAqlpbS33<^out9R^3fcvv=l(T(2BVJbF##4rU^_-V?*gI%ci%cjFy~4S~KEUFg2gv;xzheQw5SaJlRpfwl-0b
zGm2SXm&vC3G&a`7^78T;zS!Bt_fIY5`%^3UboYGT-nWu>pFhs6KmU-sS}fy(n<^mh
z-@YSo{F%GAZ*uGJ8v@Ad-1_Tx{=W7bxBj@qU%!0M#cx05lXqU_z^*5;u(VSjW_$W&
zVKpU^5jqZNj4)#GNPRT5O_^lwgVsbxjBP@s!AE1~nTTsp7XFb11VtARBY;fFtRyq9
zmX6j1>{zpmg33NTBik|ctHCL@1MjqXvhTz;qLopW=~(zx5>mc~*s^5;=XT1cuA{bQ
zn<$Gd6gOse5O%gk2
z<4>t?AR96w`KG^wn;Xh`c&rY-7O?!V7%nP9A(r#;x=23Vl*_r@W&HBedTxCCx|}mb
zb^ov1pFjU7=XnbU7x!}N$$g|1RpDD$hnugc7;SAPj#37Ni`CK8P%9BBR(ZsbA?kd7
zWi4+dRGa-sDL(F`QT9s5jPjc9kP&z(6{98_lQK@9^2wH*EGgwgVJ?eeL&&o;Vt-8*
zmk-Ge@u6~KD7IQad43@mo|{KkZ9WN+enbYl5#sBJx04wG-Zr8Jb2+oJh}$oSg}^=?w3$oyRxZmvZ6cIt*;=
zdBV(=QARds8Cvm#>_-?_Gt@wmx`F&%0pU=CDJmc}jcgev_IjwE6@$i`F-X@G4IL8+
zV@c4)(vFPK7(H3qk&%c2Q*Yv#Qz#cXZ#
zptH!8=871yLQ7f+Ds97i>Rdc4=i^$v2*-*A*wii&HQ9!_u^}#|
zqw%xQCcsP^U(+W@bRNgtR2RDKEa}sCq*=$DIb)|Vf4mi|%2#0Wd1@
zost|CRoOkD1phN0O;LRC^+G;-rjwqgSiBsJ7&BUV)H4Wef#!Hom^R}y2oYdT_0eEQ
zl{TMj@L*%E2~A?HyF)eTjZiH1vjWEx0>@Jldj*hX$v9a%Vl~+eM++MqtZeWW07iNE
zP!JU-fK0;QY6`)&4k{pH1c3fF4*1A>{jKfE36CZ{D4ZB~Z?WRugp2x&^AL;f6-J!9
z9~pr@H07kyU0FhXS`5_*VRYuE(^H(zg7QRG)@HG}wS-->D%sIiE>^pM4YdjEY0u)F
z^(}m|rIYjf`na%vDd+c##D01M*WQ1Dv#*}!ySHAD26d5#0>W#TmEjyWxp(K5svK`#
zyUJhJe&oiLAGme-41az93BP>)Iv+iMhyxq@DK5&C8$O8f`tFPxYtMKCAF&~lL5Axy
zM8{ODw!PSFCnj45Vd)r!okxP$s5G%r0?F_kf+BN?PbsFbs7`EIEuTHLgxvgYJYocp
zz5>Xoc6^fO;u<##=jaY}ZHo!YUP@%)8sbuBi+!8L;<`TORrNBnavlv;eQL#_#^$xu
zDGQio){9li#@#IjJDXq(4BXK(^g&18OBAjhAL|sX~}y>GG_S5fw|bSw;8QVvZXn>CZ;56ji=tyk!MQFIFg&e?t*kWg4{XY
zT)>qh^Tck+4e+Ue^4mTx9xGza>>@(lB|!(c;OA+Br>i;se)goq`?GU;1;1>ngs)oE
zHLxH2bOfbP#Ko^)q^mB9#naR2txBda+>t;_ZE;9`0?TkwlyQ{CcoJwmo`MKRs*=2E
z$%__y9mB#|HLRUCla<}=Ea{xa!WmU8X)j}KcQuFCEg~^ImI(%v7@<8z1>~6V<1n!@
zXOh4{OJ}si6HGADlSFGFYSM?ulu-INEEGKcyR+<%%a?ik^*6Y3;Q}`*+V5X<#?pN
zKvY1gKy|RdbeO2lQO1r~yLfTz&|#Eyl79Q~6Sa89uHFp#+v2DzOJr)(RElS`kT|1*
z(3aVRw)Yb?bEO3JJwt((o)n|k>9
z@Jea)FTh8qR%fs8(2jHmKYf+7N|M*Fi;|1>jc8>cOKj!8)
zZ*t>{7y0qc!-&$+{4_>S1_rtmTv@?f`+q1a1D~})cm+*`ZpNDU8H4*WNn2gt9qOv51Qu=?$AhgtVQiiFaz;T!YN#!;5b$O4#Q(0$SXUJ&A
z4jrK`Hl;UmI3Y$RR7iU%GBqb=#Av2l*zrtWE{C#H*(C{eQ9=+$nsfPiZy&t3QLg)Z
zzS>>E*fFx^yXn3FtA^whpg}BORt!H&Axp1C7h0=J=h
zrUE(zk`@g6k5FJZ>_0*Uq@pMdr>Hi2q>*C3?NvMeIJC^%#G<=0My&c+YY!ZJLwVz!
z_vl%&gsN#Z;$-S6Y@0{M+|6*ETOR4EEFv$eu{4kB#AxzEd?<|$ptB@{&g?i*lF0&zbar%1
zW#`N?wol99saYkwv2+@*&8y{;)t!8@s)LJr#9qC3l!xz~5X<$9K=MWS{1v(RCBAtF
zemx6UMJ@jR1Gg`K!-JpCa{tGVxi8`dQq+QGH&yYTZt{dRJoW7>Sd69Nr-*ghymBFD;#~
z*G=b_J$0O3JdOB-S@_4c;}_SVDoO98F8mU^2ubfFE^8hYdEGSUwKFTfnY9(oBJ<1G
zRguP?ig@-+jbU3s2n!;n(CB4Iv!6LLLL8`YGbYV$GQMU;j2@({Za9u%!^SgY@MtuL
zjz#AQeYCZViI$t_?DhrRdrE-#T!ow?vDqIrNr;mApbg$vdV!k-9Mj}@CVxLu&QJSN
z`C(5wKkiQBtG%VXaj2VP8<%rwt2w%JGn?yM*pX4i!nk|_bd1nf7I)KB
zmLio<6yqa6D#~#n{wE+u3Q$Eo%6pXcooxjkxsDEW`UOy8Zcd!07Bj@fyirxj(|-WlYZrpe;X~k|!E0-HVMQ|&OvO4+6cA4QKLAn`;xJK&ntK0+H80pwg!a*NB;*eMqK$&O-<mB@xs{xlQN%lor}Nd?EB1VG=bzN{}>2GQGP9IQd!dTr_aSFp5?ZH^5(A>xb@owZvOT?H-7zrd)I#xrTOQ;
zb4#_8=PnP#Rwy;({{J>*=%BY(6fQ17k|aFo%}L{pIr)6DG=;CWq_KQPHAyL*1PdTT
z;@XHvoke6?Ct*n~#AeT?qNs;Cd9|#sC}CT5KD(;Y*;5t8zUmP6SB0=S*PDg04$KU&
zqS42Q=0J1m{7flv)hFL>l0ecF2eEKAlgx;X%%C`}gtXvjJWZ@H*D@g6%$99M;k?!n
z&mX%=C7B2aKT?1wfc#{}Kzt;M@?T=TKa~AvVnsf0=jO|GTs~YQYO;aPceL@!<}N-u
zypGSF*&~o##S8QL*x{eV0%K1qwdGn)bijR>4tg2_M^THT1}V>YhM^YiaI`g*N-~-R8|%>?8sJ*c2tgFAc``1OzymgG`i~!0a9mo!_##LWa5|1{?zLw&0!YGaKr8L}`
zWsOmsT3627I~q81L=yC#WZ}q4{LS=xJl=V1a{&ov6rA!V~<7P6?rRUIVWjSk{uuJ66k#=_wx70x%bspK0VSc2`7gF7gPL44908pNUTR`5^6S>me2_tX>s8E
z!3=4`bpwx2l)@Ef6pQ_M>|^i1%$e^+d4IQdKxKZ@Juvd&>jnR|-x3c#>*edG8hLAT
z6|?g~D2ff21Q|?YuCl7(#$q(q=Atn_osp#pc!`y^GL{P_HhYSh70%|ic-uM>?cqyi
zNT@WNBvFZ;q6+PZaCRZs&QVp1o@Syr_4EjHav~!nNM5rMm1&8qp#ff|X1I%W@-(v`
zz}kY$03RANQm7M4o2OR#4WuPEnf7e4J4LDV2_SdPsg+DUmFE{Xu%#l7(=*HYY}IVe
zt)I)A-L-taau&az*ud=IzB%D$>;_+JM+|KHf!
z+B!&0NufDCjjdIAJYAR0tDOnrgd%AzD<>(fhw#`oV&bNgmEB1}K?fO`jT9BnWLbF?
z+e9_*Dvf4qzMlZmjmOAzR^)#Z~S?r#*E~%nA
z{B^akk?iVhVnn5=Cav0o~`zxZe8P8
zVBtrpmL*ApCK0D)M6|92E}FVb8KQ%w=2#{V8O6jw!v&T@7^9&)pB&1Vp~D!bEJmg|
z90S=qi2W?`wqsRt3~LhO=#P)4)y{!dOIvnlXR)&=lX)?LtjY-Ia7_l!O)up8t#kRb
ze;VJf@8;Ig)#@0*D=)5LRZ|SPQ}mhcID$EjL)j8Jj$6kY)Y^}r%ob8M0px=lJh=5U
ze|+^Cn`ciYTh4Q=<3zlSM&f2T9DnQa)TV|=dyMA5;%bhsD&*-^dAzu?gl88Qu&p_Q
zjdelnYzgD(g&CacOXa}qNM2f%&zZeV{QlfbZv1l&pB|mY!sY}#Y;+l|s7krXH6^t5
zbQwEQSFHC46_Arm^{{ud#oX2qCvUlL5&{TI^CCCHjuZXm0>+gB$Yt=#Rzf^%(b5wr
zPB2yhIYd1k3`Ql^V3a)#x60Z0)prq}U5j;S
zCb1m?!k+C!%-cys&kiDccapyP7U97sdH~1i!ru
zKgxam-AOLIxQRW>XURR3f_GR1d8MUPS575Y64+GVk*upS$X;jBqnH!BxUXEL5tuCpF3O)Tbqo
zD}YoK9O^9O$=X!@xu}(|*7fksmIYkevw}}ocX4s=
zO8$QONxAWlJ_6+F0YHANC`ke27osB1{!?6)GMncA_NJ)Jhw9+!E5HB7YljcBN-p5`
zk`Q*(gj18#KxW1w0i-C#_~~S)w^NbZ#>~P7dJD?fQV_w0OfQzlII=w6nf?SvX8KK{
z(t0RUEj6i_qD8ICcp5w>(d1!BleZCdo(5F7>QU}CS;Cln2LaRMF*t|{vl6T8DJj3e04$Ydo7RLzwx5EjyhPI2|t6#VeT=R$+8b_NCF-n*v>X
z(nnd7Jl2NbCyenNISJQMlLUejF%?)&P^y26qS6;zZ6b=w+h`K;mWC`!3}aVbI{Qm<
z*e6haG9!mA@yV={-F)N&BrxkK>^E_Udp3enImfx+N$+c~rJUl6O
z>9sEYwKAR8yF9r6oFs#Hx7Qd%Mm3dw+5L=dZc?<;?Vpv)dz?@WDI+H9}Qxhc6jA3z+
zJKLK=I6Nnww>FmW!?9NGz1@wn48*xty4bcbmy{?6Z0rn~Fi8ik5u+F-w%g2fGI|0`
zGjjt>EcJ2sbHd5jmZ&&i0kf!_7ew*Au#hvm7ou;V&!}+*3?FYaV6n#wARon0HU14q
z6^sffAH`!(4%ZVUInhR5lb9gtQi<{A43?iAtSfs-bc4oQGI)}rG6j&PE{w7CLfg(C
zUB4K{d&Ci4P|ue?{>m2@f91XNKhS^Z6h+fI*t$yEUO^ErtXazDmFr09TusozErj)M
zR{`$=DMgq*b}$X$JcrtK%#{_5-8x%Z#L%@nnNOK!0n5=wG=JRbMoef{_E
zKV+o4CfGIQjgmG|gH@
zY)%tl36*&JXW;3dg0p8l=9Ye#S^Hot>Uol!FAa_EbTnosqtTd#b7C~!PF`4wf>b(c
z98AP^nA+oRVM~OohgjzzrY6Kt5*taZy9-gSPJ}r)h;4Qdo2@*D)EAX#Osd!=MLqgi
znu+C`jQeCGwdcx3_FkqYBzd|~A-|_SBas}rF-s%;MTN!CmK`g$GeLa@c~ETislHlX
zSX9qxIsR~^sK-t7`DyP8zTdT!PuI-h%;sLM92NWY@;Zi|7jDb!AQL)*%&BzJBhyHW42fJ5Es89(D7PL>wXF`b0!iF0cW}UB(m*v@z)!T#qcp0%gy2LlSzKrVpc9YKug|K8p3_3cOJvbtpWVBDTo_~
zq6Ct)DkSf}Gmpi#7IaEu=+bpz;bd>tIfk>@C5kmRA@oh~q+^slv&J~G$i$b0q8bnR
zXR_Tz{s-$|W=?RWNYk7M4P62xd?f-kCK9A+K(N+i0!JAVJbE(G^0`9w4e*;Vj$r)>
z#9JGaW^cxfa8I`6#tXnjiB%PHy1IfBWu+XF_Pt#zO1Vap}*LdC51lp
z=6EnC-GPoI8@fd4%}KMPC(BvhBkHm~N(JVg88N)PGMjIoD&yY!-2*Eb{&bLYZ!cs2
znp$xmp7^-gVIb#ZlCCxrCX5yU>SAQBhpDYT9{!HRM!RyVH-qcPI@#M%z?kv+XpJ*O
zYl5kSnH-xkVyp?8x{t&3e`~QHhx&X{fH+J5I8;|4I8F(HqK*lJB$T~+JkCsoq5wF_O?Tab}z(2n~(4cr;p)7+H~qZ%icaj&4|)2p}zN
zuoF$$u`7wvL4C)o&?HG=V7eO
zw-gm&Fi{kwfhb7DZX2n9EQ^g$0h#LULV+@?ATEemd5QGoC$oHN22Y8Cd`1BI%918t
zm?xHc^<2(vn9t>dYq@@WBLHwfkG~%;pCPZc@$
zS#RFld)C^kTHWfF`kbn7|9@4Ts*VHcSzFJ9`a1bu>UOR?0b-=s=Rk(X`!G1xnO;%$
zRC>3hNM|7+v82Ssj4IC-)CHK(FT#QmNzM#Uc4lOnj?vlPjLZvSP=-JKQoSTR>67Zt
zz#Lz?#Ceh|_D$DPM_^z&bqym~GIJf1x(uLed=P_E>{wYB#_r)^Tz#_#TzQ?#dseeL
zxsc^?#XPUi696VN!%LKHXeP__g)9v&V2)=x!z{uXVj&>V#WTq%mg%|#rg%364lW9&kvi8CoJoXBk9LV=Yxodd&Y(udP4I+(%95lk*h6jJI8Qw+Zb+N5CtKM@t=Llk2OHvz3~gTFP-4(_q(|D
z#q%6n*PlfV(M+rkXT#XG5^CAK0-o=Y#)2*h%x_9%aqn#AbWLS^+em?95;N=58QV6B
z(G`+7x@0h~cNQ}m(-_k}h6%Mv%&JRgdEa6-jV@#7jB@t9P|J-^rwSkilE1GKWxJLq
z=ay^hnr@uak6txd#Ou8Y@O8!Bz7;xmCqndoL?`)ES{TLQRlS+qC7+hgq96r=R$2%k
zMKvl&nmHKMqzctPX&A7121Nx+XEnvgA7g>4Qkl&i3}Gzq)qrT@g^`t~p|tTdgqka9
zZvdxyY@}XulFx97z}_o@sMK76iZG$RhM(VA#m!9%`D)$}?!L7MK3)p%ui?+#Z&2BP
z5^*Dz2qc%0BcRM1yPS4&w@@;D14YxT}j3md)Jh*q2
zdw2g7EL`V_0QBCCt4x_P1HbTOTmzHP1tntV9f_5j0_2bajQSN5S=Wa2!hGVQVhHy3
zBgDsFN>PA*VI&0v3-BT+PZrN#TEd`CHPq&2Xp7_)#YPGw!^j8=Aj!`|TL`mIvSLAu
z0;aP7(~&U8R_NUwBpiwLaHT9ZnugXn45%)rGBJvd8S!)z8#TF81vBc}vZzNjuTSjB
z-g$%gV&QN;oZ640&rjm)OEbB=egSviewhoar|`p~!Cc-ngMIxx65*VP(fMUg=ye3bK+nnre8XM=hJBoLiPhmk3eHv7yXR
zb7eDQnNg6$hAtJnJD>||Yebz5>A||{G68EX-_04oXXC3mI=_*t>juI*Fp^P;{@>w^$l$ZMC@j{Ob)(fxCcRAl*q6y0zk;!=-r&wd1xEqe
zBa?W1ai|fSl5o9~O@1%!||b>E&7c_R2yotenpA=Ld3q
z+f455S;fWe>zQ0RjB`8piYnT}gF^?n{LZ`F_+0GvlmD#6{_A*k-3n^O26in?r&m=C
z6FP}a>{i2!+H9tZ?OxDW!H|p?x<>nJcZPHj8`aTAM;o0Zc`ml(N)pL)b0Sw%V7{v@
zg`Tz)`B+owWkYqKBlUU@d7qAkNM|~S+E5!{PJO5q15!L0k?+r>iU?-cB-1S^05{WS
zxU?`L-(SasenV*2aWsAF#?T=yi%xn^CRQZ!T9-DwS5?K%vNpVvUB>p5V%F)!Mg}A^
z%q~da7a|~xV1!Eo6MaP`g%^pfE?|C8zF6^eX1Jt?noMH6b26hHle8FS6U$($Xu4a3
z(#|S?LJMzNn|qSmTt`MTi55Dl-Bp)C9xt{lXHBQJY-$w8(AbVQy4SM3dk5A^Js6Z4
zMO%S+O@J4Z3vw738^Vj#C1T^cu%sf7&GMf22lZfK>nvXF+@3Ed^krMG0zMjD$;p|W
zxV@q;Y##$Vqyg;}g>h(wxQUGdC2&WuHD43wK*uC^y61*6rZ$I>6`AzR5p|ps
z#_);+0c57AOgU%WvsoiHeeI|=tQu0prm=0ftolpOy=d4ITP^l`R?4%B4bxK2zo5<6
zJbPdz8`rFP}*LfIcL2
z>_yqQWwe{TnzL80aqs3;f#VIXUArX8P*nb%t30@WjVEG-)z42J-{I*Kwcdh?yFC2$
z0>AH`0iTS5Zw3e;hih|t6(nzdFp8h|&fuqyU*Pv|HuBrC_ql)RAdhaI7Oiwil;f|$
z*FPj@{>rsq&N5}>2#WH{2n8=4X(#sdUrx(dVA>_u00?Emtsck9!JG7xgc05%nkyIq;$qNr6S%9e4cuVwlpgKK)
z%n)y4J)H=0YNf5|7w&9}UI3XL9!Pt6eSlc(_F~7Yll3%ZMlnYk>|ALaO9YUw4zK6K
zIRp9j`LTR4a}eLnAInLx+2>!H!R6J@ab5tqZ%$v{pD~m9UFXv$eLS6_3mBYNMNLp=
zp6fD9WdGZI|H?A{P?N`>{#~a3`;WalcTiW9Lf?ukCUq)jrdY?xZL=6v6wip(aRQ}G
zvBQzn2I&NDIIYtg-8rhSsg`tl!RU*yEmbMP=%*e}Q
zwE|?I(|tDgZeV)rRJQi*!rN+*
zlazQ~?b3<&hIL~@T?RXP=do{81?Ohh^XJmu++NKeoIL#_
z-~MovFApB%gHJx?y$?QS&xarL@#p*aZ2uwL{lYaks{61t(1|)UZt13h(4?iSJSTu`
z^L!&tM@ocudv5_whpA@Bdi|c<}b;p<
z{CF|f4sYT9`A>NKhp5Y|XF2l0n@k@zjIx{}+#KA9&;{WtrL!nxox57@tVbcux|fsE
zsg!~?#iS)DKzb9Pb0gT(lTbHLf}EYvdw7!+7D_=}9GxZm_Z55GqfG(T8L^rQEQ|^v
zEx?m_Pqk8q0~KPOv%~y|^L8Q3#fng|j=}b=G)QKI_)#uU?OjnsZDs;BDdCcRqj;`c
zIdeLf3Lx9Fc5p3wX7uI6swwQBJCtwd$w^%}fghJl<(E}+`R;}BVk>*oF|rSHIz7j>
zaZ3c0o!B;UFb7wxVNL&0^iAl@ik@?r-+Kms{CM%dRJZ@gar-hS-(Sv}(Vdtns!@S)
zKvop}GW7!R2zsW3(J{h@5;q%4b#}D(aTP1=M6m*+*kPp}Tf4hZ1x!kcXG{04Y*yA>;I%{C(8q(y**BzuL!+wrc2qll
z7+=eYS)IA^Vjpg=AI05m6S=r$EEl$n$cIg+@$85a6gki0CG^pbkKRpM=l?QreD-)qVaNh<-QC`V%pfu)6uA^r|XQ>T9crJL4QsSWN3
zEX|#Ru@XqS1w=A`Pz9@Ac;2dZ^8oxcf7ld6kEs&Eti}A_nBf(<3#So)X8f=I>3WlN}k3Hsm>piWE@fyE+Oy9my787P{FBB<200){Atl
zD0Od1#}KuDh#ftXbPUfIwU-z~sF^WA7RE%`TF|4ShW0gm7(C`>I#qRMVC!fWbV%o=
zsx)3MOJ!9~Dla6&vQQtxlIV0+CbVWzST^I`Vi@EYMlS(nqh&BPVw;Oi<$pESX#+9o
z0?GtYhzX(!GmIQH_*Dr^8=a%+WgkNiYdt-zB4}zQ;TTP$Qxxr622k4EixOim%8VTa
za?xz8Z^x?*?HHFCFYvde($9q|e=o*nXD}=_hKVVuERuvgDk*{I#Ca@fs9|D3CX0#+
zc(tiP)MY6z*XFUVV`~9!A+OXGvZ=m=*Xl~x+NFdY{RNt%8d%%6ibdUu=~EoXsOm&E
zjI3b2#Ktjgd3SafUY}CS3Q>_$YW2*hi(^u46jK_~nB0)g*jfR8Wdes1-|%j
z6L+qOa(jFX9vtP$p{1POK9iq5-N4NgpK#;13p`c>C^vrP)(zE9cvF<}b#CAMgKJkW
z^WdRa@duar;lQWN9MCALP+)j+`m<1vC&RI6JpE=mR}Y9H|3=j7cN3%>$)kNkxwdyO
zr(f?S$*D=e-H&5iMssB2Xnx%}i?c5d=J=TI939-9v2s1PjO@zDK}7<{?jD0!@uqrbHofwpQBcrWtx!PK|Tq+?DZowGuv@`)Ac
zUCex`yvw8#uN_*$o8uce`tmrwUNDqHbB1tOROF8@&*l7v#muQI=A~Zs{Je1tkM_)l
zgOZiLkqrFxHlBX5iJxDa!(BpIZw2r;huVC4;Tv$Mr)PDr%x3
zE{qP5fm(Ew?_1*KO0JxnbQ^23Y;9=m;6Sm9GZo&R6uCN+ZRbF#hZhB++*54rNU;&<
z*w~1gvL{!PPL_)e8O~N@N~x(zS8H+|E#z~|#cErMigctt!k%8q&J0Wq65DP~q=gB-
z<|f380xd|&pm(=v3~QVz4Lpk}ZIZ;kMzgdenU!K&mt@5AT#TMsfsxGek6}T0CiB9x
zm>QJIa9y;h$q4!i=z3d5($y@C&Za@sTZU0>7D%zNyQo4@l*VqFN^EBqK$CL}{ah31
z?Id6n_1It$tVNSmxb|ExCjqE)7)>sIOixYarOI-8Mg>w6;{~#76s45vHT9-kVB^q6i(GGs7v3)KQxfNdMAg8Z#p3o*hZA+!)5R
z&0(IpLu_O>Rt%|T>%|N4gEQ>
zeHK6NUe2H2y~mvkhk0~ET;Kg`+A34`?g%&^UFFuDpIQ0bIA-*3A#6NL|>;H%+0_;e_@cK7GW=kgh%G(YTH$oE5gaAEQg
zK9{6=ps570t^&xqe42GCCZv5nxn%|9W~347?}xjy1D>KBy#$i(_O|Gxq58PE5*HXu
zLU0KA@v+nu<DdCY|G~b<
zhu7uruVl;MJbH~P!x1)QPue#uB1CSk!)>Gl7+y}(wYvtIK$$IY%yDQ*vCfPRVUBc*)6o>~
zLjN>Rs>AI?ake1L!jypK&B@TG(zEvhy7ZhQia(!WxzP+u_GDJNAIr02c_}TP#R8+b
z5wVQ-3}cvM0HfR^m?D6j5t79O?-a&3#xq0!IY3llZvkB&>o9s+hl^5-5LkxL!6J}a
zQ$N}pd(*`k=)WUy;n5ZuzVn-kxQH+VEVr
z97dK!GO!?&rc8gD(&hUk3k2glsY>vd2&P=%SQ_I+QKUNsVeYh*=L+>Ys?$O!iE^hz
z@4<-LB6=02(2x;D*UV^!ROB$awwNUYy0T(u1KY(NeYLbf8t^njiIpM-ag4SQA$sD%@a6?z5Vi4&Tm~nVN4+A<^sl+Dy#%@Qkptw5OmUcapKfz
z&i!@gOI8k-6f%@iCZ)MKSC|FYd`BwUnaGkbN*W1zMWhI?E(
z^*#HudgU5k+qi|d-`vLM@9*I3JB#_{)j^zE+mRpF)^mP!56-OU&9PN|Ik|Z}CwI=_
z=dagu?Wa$<^ZQwC#QF68w|G|+=_?b5F~2&RJ>%oJ@LG+u|NheEM;h)BJ244P&q3P)
z_Ot-F}MqR%i_7SrcnUd
zIUggjBhEE>#8>8%Bg!x`*bgtUcJ8(k0!bGuYn)qIN-5y;@gpW6i1@%j%2MK}$xEhF
zeu^l;WGYjlsZ?8C`nhU=ObO7D74A#CwhboTSJ^S97poid**~w5
ziyO!CMD1nq&3XaUW;qG3Nyd0xLST77?Dvn~@bvM6XB9`Ru(HGdiQ}=@qpw%9uyY*U
z5<@8wrIO>}OoD?Qv7#EIENuw4uq4dPf(R9+=0saq5N{{vwWT?Fd7NM;cGcdVL{XPX
z@;Fh>d6H#IDa}MxS_ts$w8)XjRi&eqK(ZzIE@ooiZRi&7O^+l`QITGBOY$Pu&6H>>
zb39C%6C2%{%7)o=?lYI%m^=pL#4|X>hp__HMQNfW<$69J7stG)IA(??GTbAS?v|c3
zw)AA6Qv?(JGME#X$4uXB#=0gl)GkIq87|-p*G9Vs+Uqq4_OgtiOY;EgjQnV99>`$F
zC`P*{GTJSPF|NssaZ!UivGN&lV&RjR;Fid2pH$|l!6AJjy+cK9h6KiDd0QbN?Hk)?ps#sedJZ;aHU8g3!j_(q}6EMef-Su9z*i50JG
zWc});ytnx!e%-s62fN4e`{s@U$u^u^-A)((6gKmYx3Dul*+a=wP0@NT#V{lW7H{+p!T_B7iJNy4;2Mz
zkF%XE&h`%4X70A;YQJI&QIyW;{euYi@Fp?Phr;+U+9XGaf{dj)BaSwS;S@>Mj`wlY
zz?d24MS_o$wn=!1C?J1pX{cVJo&sE`5QsFDq|&b>nmJw4SU04S4MVHgJgS=4Mz-gT
zF&+7IZXb@V7|XYdM2;_;#?@^vbN_>NT--9BrJXW)e{v_zt{KMt-6E;?FB26hK>U8A
zoE)*+C*PEl@rIn7_q8oz|C5JWbzAN6a{sG!jK~e9D%_vK0AG?_T+oYE4zsW!NWxzL
z=`ZIo%)*LbQ!|20Ti|cn9B&h2Db3`00jNbQqD48zifWIOb025bibR29x-|R@xh|QG
zHkyjec2cFNNQoR5OR?P+RQTCb6Y4;RP-n6Do}#F%MU9#gY-2%IY9;OJrc>25KIGgp+{tl$Kug(Wk>D~hI8qUem=Xf*Lc#LmcnG8
zOr}VTcTZuYSm|MQdWP9VGTc6jVNP)ZOg%l!#Zou-qgTsNQKPXM3@3S{GTkSQ8NTTf
zX-t=x?VrJdkQ^384B*6QpgdGx(4vRQC0JrwR
zb-A{G?1n2l`Q^|`HqPuuT}1}jX|crX!}0O*Kh%K`!J4yO9+j3g6F3d#<&Dqo~J9
ziB1{Ov=^J-qd1L@=~1*x2&H#n1_R1-Xv#~WsdXv?tMVBvwtrstT2_im*)^j*PY#YY
zSVUzN4-OU;*$aM?1n@7T*8lB89MZ|p-sQJr+qraP2Up*l%Hur($AbdhLu<4xfuHVK
z#N%Cyxc1(1ddUA`X(mu?DPitFa{*mhn|55kEl?C|d++X5?h73MQQp79WBD6@Uc1K5
zUAq}PbOhm%aWpr#!9;_l;d6{yDy!~lm{a)-lEyAUn7W7ID0M0-zk;-iP9&C8liRkA
zral9BWyy2g|5DoU!CpN5pn+R&)rq=n$B*kP#fH~&eElFUyt#y9uP)}t?elr~h17>5
zq7YAtGCs9{+n-P3+m+pTWncoc%A2vMQ%gRcnaHKh?d3Cv80_`2G0y<0z&S}cp+>>w
zyzd*#l@$r>Zg65_p+6ha!}zG6kPos-l*JZ6)@5PTkVjx`KKUhiq@~8A6UC=8t+S{Y
zJ5i4|0!S+f7b`nLy?hA}E9fgWFfqWLyhuMr1L#?j%#b$m+P$qChP4qmw&(S+wQL_-!}ifN?48ktAC`~g
z*s^h)Sv8A0@2ugEH(%h=)_JV$QOKUDojJE^Fn8abs?E3J8>tN6ziLpAC*Lx}i5=3I
z&i$=6{dN6mWs6%8VcAL)rv-Weq*9=X4r03{QY6w;D7&pwgE>}Oq}!Tn
zQ-a$1J5%msL%VQCx+Zwb@3kP_!->qKLQw$2sAx9|CzoVVKyh@9^PqdEE#n0S^Tb}y
ziHyfWyjN0lu1KQ
z67`u0^eoJj&&;E1j)1o)gQ21zC)Skle4jc#m@gLlh&0&KvkVRQsHmCGy7PGdO9nUc
zf7*uO|9A*c)qTrPZwf1KbMFHY3?B(VzFKAIg8ERD+B=eNwt!>fKn~3rq-Oa4@<-^sWq;VX#{7KkkGo4
zSrhy4@R
zRvYz5LoU>N(yuI;k!=!L+&!BuV?{NNujcJ>9oaFVvp}+%T~j)7@cF))iafn(9`|?2
z#eQ!UCs#}mNiCG0rWE7=?!7CS;0rZ!B{uuW7CC969M8OCh*LXxdg;KwVZ!)RO(pW=
z8iv{ZcSSkg6ubAcG}7<5bLL$xy*{6sARm&PU5Stc6CjGv+q4ya0!eREO9IR-iL!SV
zc#1M{(Fy!)@D%&&Y-EI^gtL)AvY83~X69P>G&j*yW|&z^^l}|yL{%n<1y8oOBgIJ?
zuFg>asGw=+qs$T|*+v1<-H!GlPV`Fkr83x-6i)$cL<*&4{mIJdiH%(xQ9jXBM~e*(
zb7X`-Vn$2^Q-Z@aI8OAAVw{_vse#Fi^NMAJi=KhDku;e5Q*Gof;YJ5jA9`4eI&_U?
zoM#FXBs54mL<=CJ7~&Mo5SM8BJH^ms9z-`2ANpAaGto1F=lnBS5Rk=Of$JP)uSH2N
z3d&+}SQgKPq>7TwW?@ne^U^X|Qk2Jc^JjAC<=H&Ac1X_uF?c8{>#jiZ=4WtimjF_(
z_hm_nKdm#|rE*3r<+11a^@FLb7*#@5VG=>1p&BGjCE?gun3EkL4k%1ic9frlBzUQ_
zUGoyD&q<&{oKbFw7n%N^+8)kjaiO9ZeaQ-RljoJi_K=^wXrHF1Ha(iElxUK@oa8w_
z+NH?%EzYMydXm`gBvF;E=~j?KT~;zZ3nZD;mNT_u8@9}==gJq-$kpcd=hW?TGYppd
zV`;pXzQl05-T&*MRHxL<2RFF;`D%k`_p56gEssszxAXH$IC$hE}LXDa-d
z8lX|hW|ARJ&gSNU3G820&7$ssj1VjSQU@cxdM=T>d%MVa5yif*r+~NswuEv4WOS%6PGajEY+GV$-IA7SdquTeehV{n
zV!OSZ9C4Q{>|`OTP#R~9k1LTnd-P(ZYc}dC%ky99Y!E;nkzqB^mJbBOCZ`
z-+C_XS<2P{<$S)l8^3KIDYjd6bW6iH{+d)YQH|$zO2rfF_0xNzD)vhGu{5ZkG?n+{
zk=nE79uIEak_LB;`+xk&-HVsFe(oo(p8kh4XxrZopFKfCbc+n88qd=^8ZcHZSB?E~|=tOW>8IeA*
zwABaDU9V$eY6LSA1c<>A%^6ZE4$=p(~y-)U1|(t+m$k|T`_}eDkzK9^TAqC
zN*9+IMzc>Un<-ZCGl9dSzb&-!-#*06+&w2wYO?_*KfG#CU7s%I&W<_!xn%~|Hc#Q+
z)-KX!`Wgl|P6~Xkp5gxOD+0;ir2Jh2rCN<&?d9~|j;-u{YcnUm|B4fb4sqqoc`lwh
z&*M9Hw5^u!-o4H4UAyR7--M~DD9GlbBwMI{NyEsvk%gKP0;QT@?iPZ%S0q+J
z@z_PAp^MB#-@1Yy)$WaF1ng>aw!h-^^Ac;|_b&wgzsR+}B-dRM<<)N_IZ86Q^pTvy
zJ#zg;5S^F0pw^Z=EA8{_Mu`p5Hl<#i-NKU})^KFkbJ~uVQ#$IIS!=_lA-Z>VzOyqkQwM)aOeJb^1`Z9EI6Ya7R$WMqMD+0i3%g!>0c)5q-_j~dZw{$oB(oiNA}KYVD~gBCsng&S`A;#ZD8LkBkA|`JdDmQ
zB<$Qu-afsR_ZJW1^txd@-Yr?<;B%5u1XL&F#GH9sPSU>s@+Yxj=jG%b|A6az`8T%l=CGV$0Qnp%w(GQVVk;tSrQ;
zTM#bSCqfccxSI25X-tN5D~hC{7P(o{CElA}$pKUZx=4dgr8uKA5#eP-$5s>Jn?QM(
zD9CUZ4Up5~1c?3-Ocfwb@`w>A>KW^=vuKvsxjY9p^@hkBDFbw1YJmYiTe
zI%cNQIm-aaPMK-cro_`plxCmY6vk8)imJ>cz+D7Hf;XS68=x)h%Slm_YO?eDV*7ql
z(|(jw`F}YCsP}#o7|44M3mm>(Z|HV9uv}Y_{MK9ZB%e>^;<^bu-P1>0ml^>c!j%KB
zh&cFxyVo!B@b({~7JrqvEI(i2&&%ie>C6xOdhvVC9Q%T$<0r9a{U$CQJ;%-8|KP#B
zJ6t$_p2_1U(xZECtgQuvCN|F?Y4>dK=h-wOZ4gJPN>P*!zS{beEj%M==^uw{L=Il@
zxl9--3FFKfxrPf3cNQsieOB7rS@{m>6cKvt$=)TM+m<9bq?
zt0yf)M^>aS+0mgSMFeZ3*;Xx0F>Pj~ZNj8BgI62FE6eR{XCtsQ6G)26aj_;)!p}iK
z;Anxbz1TxbQ|<1V)BtZPQzPk+6-AqbAo4<8$P00!G}?oRT{Lbv!DAN6%UKoAW6Qd(zF}l2jnderp|KLI%f40CNzkiU%
zaavhxX)I@V$jN-y07(^R1(-*6@XH&E`DMd&{@6H~Yg@;2W7~LcZXeI>wH;X(m?N%nC2D+g@g7nyvN`2>O{xf@xubvx&e_5|CGOa{>gc3ZQ-#
z78)RZl+~6{(DXDm!CT(zCy#^V+=p3O`~#FR_G(1jf;h>3sd5eSb(U0zyV5nrn+iW?
zN+QBZ4@n`?Kb!c(&Y~cbC=OJs>^Lx9lGx-pvDJQ3x{Jzjie$8to>8umVzFZwDR3Gj
zu+!kEMytg>_i>QYK2lSZeXS$tX&pwBl>oD)Kiw??1fXH`wGE@6ZHTcGS9~|Mxyg1qp$}weunbb{kaVH=?BX%Xj`<
z+QvuHPWCM1k1ew~zj_vD-dN6~gHnf8pWFvM`Do=xK9c9ZlIKr<_NFMr{oMKEA`h-!
z;qsZI-2U?yP9HzStLv6BwclVCPMpC{M}Ox0nRER1^G|GA@iN1jdeNtA4_ur)1&~&T
zFjjWk)&NYU$kd3pf~19u!FDT1It9=|r?#ez#x5wCq}(=qwr!5#x}8^mTr43;PP-j*
z$+NqR{%_~vzkA3zyLwp8m$c&}b9r!Z52V90!Jg78L2%QnrUV8X3el{sWyx^!`jRQos9*aqBh-a
z%y1W5?j>M!7t7}@5#ne~jE6m~^**%E2$L)wL`9rbxI|GBIlYwpKYRY$@rF=4=c%azYFfZ)
zu|C>Xqhf>3$Y-c6M=wccestMzqE$S;!O4%_6WgXI*v=7eb1PAVX6Tx=#9b6*fR(*K
z(^^2;Qd5VXCN1!gWTR_t0Hlk+&$U@|T$;(xl89WIDQGIYZGxLT_Rws%2|mqR5MZW8
zyjuwzpT#pkMp>H^Ze~P+gPIa#NtwSB?fo4^OrcE#G;Q*_Qdl&A82>c#ecWm1
zZOsHxLX%>`8Rr|pM7L1rJ6q}cDtuUy+t4$OueaY;YmAFFYWOF`RsYY
z`8*dOHrpeG;jXa^lK)|tSn_dxiJ~UeKvF8pH`->O3
zd+iFhZ(rxpBeh4l>X&?`mYz*nd-CL=h^FiC%OR=b(gwa?W9X|pD5~o-Y5eam;L)zR
z+<1LDKfkhoAGfaI&ogp9u1kEgfXAN?;`7CgeEM8BKAYcz126XF!1{4~zGVqty|az)
zKYfquznta#>63gb?rYn+*I794B|h7|pHqiVa&q6ttei21X@mMQq^U1%u418$Ee(Kd
zW?_J2GfP9M0rQ!vRJSo|%c}Wcu2oI6Z`~HX
zzb}3|XWX3}HA}6OqtQPAX?Uz4siLJcTnDj#_N~mYF>fwmf@4dujbgvu#s2x&w8Y=e
zj1UJ?vE7ncMbVVS`BRk?Kz)Wkg9?L~)*+Nt!!me#QkAH%THY8}#E!{jyfdYoJqv1h
zXMInSwg@1%S7Y>gS5~|undJv*5NGxp?6Xpdr=>xhSC;yjV*Cq|X9bX_JtTNY$4Dy7f_mO3R3k$`Uxcc<(&EmBwgkFIjMbm<-9t|dHpM#1d@N1I6o0dK@ekJ5(ab)R=(gM(Ax?km_VXp1TbN&KBBa@>ExEqTM3M
zPpu&_rCt(X23hXTwD)mjMt&S)B|(n%3SyitmQju|0!IbKXepxvlB$fBpY;rO2p8)t
zu(JylWf(?pi!g2Sx3b%fmO(TM3{`Y#6)YP{v;Y8r07*naR4AYf(w^^OrS9oAga$~v
zaJmUF>n#P6q9WUvx>IQELTNL1ngqh5UE&RJ6#Ly*tbHH(n+lYJT_Tz2m%yCBR2D?$
zvOKAjb=jrtsITSlb7MHQY>okf+A88=rL;}DRQz=qlG)A6r>IF$6TH1Bi1Z;NNSsrs
zhrrNNY_byx-p(2z3**DJH3pQTRI@V*qf{A4g(&VMPkXV_@>-Y=UGmfDR+LGX)@gJt
zNSC@DPpq>OX+9p>9c5WT-n38BQyLRMmrOk?hIHrnTbqgU3&O_U5qn2x>~)@m__{Eq
za~dB{FX8I8I<9Z;&%-~D7;K~1Z3V+8j~__f=kfi!JiL2LSaDI5^JfNu@Pk0DetnbX_e=I5^u@Y}_6+!l5C@Yp6%k$w68`6~9!s^E(`?ZvUR
z=aa?tEFIp7n%s1T_Uz1zaYL9qZY*0~*}z*Hcd=*pmz?E=RW~MYVZYg0YkDq~2g@R^tQIjpyXt&cdyR9G@fT?{b7UEn?#Vw?@F5}DP
zjXd5z(f}?sV59DgIkQ-UYTYj!e->(l{K!-Rcy%@NmTzOq
z^kw)*pq-OaEPt7s(+
zSM80gw*OSyfNFcrwlKy`l%|)B079&vuay}Q(qL2lTqXN@NmkX-E7ylH72YiB8O@uM
zD@8e0^4iEe-Wp%bTN8?TZ&3$!tnW?P#wLtjY{%jkhH?Gf4ThzZ4ojstCTii7!0@Di
z@Qi@)tb*k;)u_rd5+?u3-7YI0G<$5cPOWpm=-|
z+74*iZA@~))MQhoBvqftuR9F=8-F|QT>g`8C6(xesbO;
ztxQOeq@?;I(`{RjW^GEcvnSzB!32sj3k)hDO8M~Bqs2&~$~42zrS^?PV20Z~6Vf
zqG(5Z$1*k`SuA%t3nDUE5nsp)`dqe@R&nj5*d}eURn>t0>ZAJGA{55Nw
zEh;fB&{Gn)3(@Wl+FGV*0>9$KNKH+a#DtL@>ZkpFNu1d0)F?8v5p6Fr1C&w>(01so
z%SoYQRsvOtain^A5aaGho8)MU#jZCft1Xc2SDMP6g;UwNXb!G6_O!CL#md$W8wVXu
zZvI4tB~X(PN#7)6rWLp1m1&K9bLazpzkHHkFCUXQ!JhzvKz+YIALI9P-}C43FQrb3
zKsY6!J1TJePF&5wWrnpd-(SenopX4&btadVkK)ja3>iS@6~c`TP4Rnxhx#tKtX&EE+PgjjI6XBH~$GpQIgHA41JRdkjiRXx?ybP
zjj442<~G5Ydg=+2x*1_*Mf(sF)(nW?yY-!U^6k`TkbK^-zs$euwoIiWPrhUTqq;@$
z*z{+k;sVI|tKVkB8wZ#*e;WbekhF>eH)#9(&E=;ZQXT$JZi5#|$$YaNt*1R*Rly?^kAeZ-K_WW+FnA(?<%bw%+
ztuOLm?;4(bB9-E+jd18S11yicC0}rdA&yI&*lAFYe*yCFDycxC4z(>$hZ)qO0;7WB
zQBjNPjs^upbwB67-rK2W;j5eC6(H3>z~evvewwx8{_R`5y8I<#{e1AZwiAnNCa_b$
z6BrsB;HMzy+T2vL)Q+Oe?FE4LQmW^iP5vt!4T{nLNS%a7^JZetm5OYRmx;01?dBRN
z{mj&JMgmGBQIaM^S($31+VOU#B-u76LF{+5lMi8%q1|nx2nsDEDI$$bHz$^MD$rJI
z|83p#+}pH)T@8Ijy(t)mG1MVav)04qeM9Wj-7sb-AXyX_M(gNMisK^<{gS~Rq9OyeQEk;?xQs#2Bcn}
zc+)Ui{k_2P>zCn61;_aU$JyL@Z4$q&9Lw?9b-dc(!E1f|cyCM`-!9DN*H?-KjOFlg
zl|&~|l0Bsy&W14+R2N3mp?w-EJjG-_OZdRJ{>3(MHUzbLZpv#a#VB+T`6Uf4`{z^W*k0Y5On8
zIh6MO!(;;wB#bt{^DVD`aD?HLmQz?gjGD%2WR>>8)-8_a7G4-zxM^W#6Npb(0ip5L
zgv3=7k=U7NiNNpz%;ig(NaHt=#&6ofRQqD4V!KV7sg2~7k`xH2K?t>3lZ_35c2*Mq
zi?+7_uj**m_jlX~2~m;|4+(L1La>A&G2DU%f(3%RySux)6le=AP)dxc
zmnZp0RU(fM@87cXt1n0h3B*U#fvc(2ACS}lsdn`f7#0`U75iHVD0NCr>TUKXKsrk(
zE3W!0y+x_}stwM~6c~*^rT`ghfb_N0uig_ZU<|W1Axw>GOGH{5lH_8i2c)Pm1;~iV
z9HPB~q~f}>sZ#^4&Kl0WMN@dTXdXXy?MZL15PG<&Tt>0A4xs`@vDE@AH6Wu|WHlfo
zDzLewzcz~9#9R-@hGst0GgsmDFHzUbi~0gfEv!`dYUc``4NT=d>U#0g)Dei*5|vrQ
zsFZ-xiE1Wp)Rt>?1+Wcm%g{`$eZHMq@WPKmvHl&UoaULTL7@Qoys-=mNn=uURpupS
zvLd}EUp8sU{*l9Z`|y^!JD=UD-&r?fl9sYlA;68YKF(4Joe6g?p{+=zY;~k4$qZ48
z)nmg2kRjUgeU*asq3pJr6rl!ZYD9-}!0dF8Vks*|o-S|8C&=UMGv#TDAXT?RGmU4f5p}3;Cuy493!g28RC|<1%tFmzPk}`zH7(gk+o=?6HCL|sWhyU!t#YaQ~;Nd^xiX?Q;_e
z6=9^d!_}FX2_!8Al2#Hn!W(4ygX+#xV;^dO*h*ZHOED?i&T0{89Zh44
zvwz2y&+g~{_912C*WKt7&ZVxO9;gT8imiv~H)=7N4SL}lQJsLuEL?pn5nr(_d2MFW
zq}?1EwVF!JykUeUH^M743-^%fc!Xr*6P`Xi`BA0c=#BQ5weGi6)rlLA6rFFE?
z(t%1AQ}ejRW?Ea~C4ls?Ery?je+f&md=|vIT9f8uOM_?|dQ>UN%vMos7*K_+gR8N1
zP$rv))neQ57JSvOE#D96Dh0kL7iSIQ)}k@oUOI+5E64F@{S;nqoy~_`0>Fa;$fE+o
z(_*d92^=p9953vU!X&UfCWYyk6d*O-NcAtOmO`C>+Du%*@$!hj!|~(h;@VDWAGcWe
z=g04yKJpVel`G?EZHJ4Q4bEb-?F|Kz^1V11DL@)yBR5~|BW)=K;8UpQwi+Onf;19X
z3MfTQx*8e%G2-oSt{=Vjv(y98&(c^s_cj;xXsN^B%18rbpj`Kt=Yhp_#5h`0$v>DV
z*C1(>LU4DBCn>%TmCJI*oo4!
z*Y;BibSy!rizCsVZUj1&phBpqL;+x>Fn=nA`fJPhRSNdg(tfhy!pVsb(*RjXuB()w
z82KHEqL$J{ZPtqkqneuw`F;V+%*f&Ns4+~cnZxR$_MBh3fJaAc
zrfA9FzkM~DSL+9HXI?L^O=%%uti-{7fxKFp4&MqC_cxLEHQ`hm?%pDp@}iZ+Bk>7$FYt-
zLk$Y+2Z+_UhfY(K?lz|M@6q*NtKR?e@%x7-X!(-o#_J(@a*zOW^C8k|wk4%D}jOU^KJ#UouhbUL01D>Ioc!y`>7gdwM_Aq=n+C240xpo0|=C9O$z
zvmragnZk-bOlcXzy8dZ=J-n)bF^jDuYO#4>6V`QY!L~jf*g2qx!()1Lapq8|*u&&I
zAIa?{V|cJ;3QsrAKDJVmCsb=YL2sp%rB-t^)l?+~M`fe6
ze#Xzhs7-R0P%DD`y5=AI9sl+58&B`wVa$MmqL#%n8CePB%q7eu1dbZ`j0KV=0!vd3
zmc=#Ys79^De#`4Fa&$2=*N34R={6KwZ6Y8vCqN4`0ilGYDWx@73OogprL9Z}vXSr9
z+FXNZX}K2RU`s{6AnGMor&>%EN{b?li^-v&MSp6=#!`^z%@0F5O4%L7v(ux&lR
zee;DVjTMYdl*(f6PHRzX?d^jobPT4g{CsP>5Sj@bn-%xh_cvN8dt6$x(=`QNwFG1u
z{7e=2yvQ>4Aj`y)OcM`nL$6E?cIvv9oO@ASu2mHXW~jYuO!ZOO)Qw6OrKn))LV05s
zD#`P7QIpjzJjt~yLx%jFRDq*fVy%j(&Fb>|vy42cXIfe;c{n|Mk|+|0svOD@A?4YW
z)tGaA+we*(=i6^b^ZxP{Uf(}W&6EhDM43gDv?1KpNg5Cv0i&H(M!jq-Nhs}2IZ=+P
zA5ukXptsm*52{B6YpFjq#CmIelLE~cFIQqbN|GeU^iWaAqB;v>q8SvE%y?S-OY;T49zoBXd+;&E2_12b~0m!6w#n&1+uCpNtB~Tjmktv
zh7l-mbhIl*g9=exSSR)8lmPJh3W1+|o@-L~t_l<{3k+2{)ukEwQ2XwvHYr&F)hV!b!ecl0h=cUy@|U^;eQ<*@Us
zh-+ANBFi^n#FTGYu=*0y79L~Rgl+U0x|F7^2UD?1bE;L#BO{{@1+9u0H*!4fTePNX
zLRnG*gNXO_A<9E7h2~70yOR_uC(;5uXcXtgu=?RF?i|n8!z#0Pay|CXYQ?r;Em__n
zk1x6wu&HxC-}Y(GAyJYiCiLOVlmVQdK3HHmil3K^pBxqAK_
z^{UnoOKl-x{xQsOHnqUnM6Ma>&t1(dDJizQq!f%&CMLKG5Is#5;B3S~Tj6G8tO3$P
zv(ZXDS_lvYislN8dN}Fi)}%c4oV{dzTTzFH#{Yza?SER~8iNI>W<5L7nUlSZNtn+q6QIfcT*Xz4|+xu`(_UkxL7svDQmHtnivqLg4M(iHeUMw*d}cCDhZ
zE9FgHNiiu&vT;eu8ab0->_noGBk?MX9p&6f+s`IN-j^i6j5Bm3POc>zsofJ5K;`eq
z->fZ)wsDCd?K974mvxH(q`*j1DP&M2mw7l7=L>
zqyv5eNFO_EJc^l9(#%Ngpp;Ls$gy57B#4bxtKr9c%jXaA*P=p@A88>0Bzc#T_qb}S
zRw;n0e#e63SjK16U_yK)w$y3KiJ{}!T-1XT6Q^@^(Mld3ImV0U4|w|c5ig%V6;Qs=
z(s_Q^yPIy^yAv83PWkXMoSfE$2aEdgW}TGHuO^A&6Hp!!2pyUa-%pbUZJdB{Bv023
z=k}sLT%6v8Lql5eRZ$&QwTk1x?97kKQQ}|=Z9xbQ=F9Wu@;jO{qJ2D#a?{AER$hRZ
zM*W(p)U8>baU;4@JuQyRYN=F7OCcsU3L8gzQWB!bs}{)@15$atSJe@L;U%RWrOsVl
zsE4D1p@O1H&ABAD|Dwbt0lAt2s=;!G9+cMvMrvy4wOM>PKZlcB1~arn4oT85SehDO
zWGJvS_`8}kQC)Wy7X0#y>N@#<2}$`~4~_~KCTIdm7ZI0@wb(9GCx0v)OA`>+h>A6b
z5LUK5t^rlCa|^>Ws3Lyh)iAXQ!qBob2G(lR@kqQPvnlGgj8Rj6V9c~17(Z(tGnO1?
z!t6cNZ#s}LshC+co02QhxKTUiOv7(?c>)PeKaOLMNx7%LWgHV>A~
z;r^2O{4#qsn_G3DiH(myGJrf=f343j+t8Jo0zIV`o7jtr6lIxLB9MmGzFI$Gj(}9z
z3
zIKkJQa)G|uB#251kUky+JJ=BHSe#@5X|@2ePnC*H6+li+tju@$ow+z|9(#w5;p*I_
zT%Es)`#&Aw$qpBy8_3PseKde_`QeTu(RLbxZ{AOy<(>5nlaaDm)0dm@(p{}W9el6s^H|Fc(
zmN>P0>$!P+9z(j-Cn+iri%+mrD$+m!(m<}6uxZme^nJ_!JSOlzfBdE&)xIvkKidOg1UhM9c?red=UMM;?2
zhT-C$K}@+;RLbf`ZsQ^3cbr9so{MSJVkq`5A(&V=V_m!yex(ygO3b8BuhFz@(UGvA
zFoM0k#Fn^gN-|tolhQ6!4Rs?g$%E1LA_b7uIW(sQmpAn0=EmV1p4pETMJ-s^q5+GV
z*JDd3QIb8{v!iDRcK7YXfgwFPG+baRusk_&kle3P+!AH=UZ~^=4AO&RL1^9eOy+`Q2|nJ?sEml|6VKgL9ILa`)|B@`k12pe5q{K
zIEZpomRf~Uk*?;&M4{N=Sdmu_@$51^@yFL^elX;|Ek2BH!h
zik+@0@X0g~^`~>7ny9&KvAwnBJ#}sTsVh*bDXLOg=c>l;qzNFEMJ{J7a1of571gIA
zNrRh%1~{b>V@w=~G_)r|AQ)<3OQ^sxL?T#MoFJWzL~-prOaW8g7bQO*qjMxyCqR|Y
z5hv$KIsvZERV=qVna0X)3&f>CFLa2cpIb6Ryi*zCm&l}u6kaWs`@drnC#H5I!qF1{
z5;lanI^$bH04Z>ElkZfi$UqnQJE9JQoJ)uWbP_OnkSO4Z6BQZZ=178%yS74pypJb=
z_QmnHF{6^7J2e7)=$%@Q(a9Bl{K)rUY*?dkmL-aWopw1jQF+H+=jcP@|V!Hwy?xizylKhN#U%~^f9I;|fU
zCidW`A+7nUdkdyCs!51^Zk0u1qtd>tbX4>)pjo7jNpogD~tG^JNo7~c&_gzaL}k8~9qDnjD)
z7*SgyI?js7I45;U+o$^D>=zA$pMdxYj%pxh+Mn>eHuIy3RDfKlPvQAlAos+=B@%5pz_`h<%Y&$D~?cWl_Op850V
zGg}(`xpU?)f8HDx&zsGf#fw6F9lU=m*7}Lm^OrY8LH>l+Z+f%{T~gHo
zO8Qs8)vpR}z8TbQG=Qz!udzcQxn|3GW-i_<_W3(%=JgRE24Z3xfRRe-v=_zc5RA1;
zBz|Ev@D0tzE4Vto5t)R<*C8^#HYJ?PV667iHL?|%Y>APP*h|;aB&Svv=q6JpB#g+?
zUYd#wc5xuq+ktceWNx%G-7sF$Gn;Z|Wf51_4dCLc5o{UOmZcr@nA^M#YYUt5
zW#DIYW6gcK~O{*5uv3
zE^<@*>IZ0UjQcA+VH-?bLM^hYwYLLM}X#`KH_zvBy}!S6xEt(;vd!&r%^Z3k8oEV|cPH&VF`h0O5EUfjy;Yv06LG5V(bH915IV%cn)Co)8b?PlHn$FaA`_XH
zmdoL;gSb6=1=l1l%~&eVawYc;9TAJI`XFEP@cvzH-Z-c2?DygQQ+|K@jCW5TapvG5
zZ3^G`*7@w{QOKUY1soXImi>cTvwvV~zVDOIt{$z})vGn@J2j$T%?!dE?f&S))6aU-
zVQnIfsF~7i-Gm|Ru%Ys^L?U%;h1zngov`8F{DM2L+>E5Ct4#jP7
zv9TuE%a(~vqq()L3Vf&fE{i_q5)VLId{zx=oRT=B@(2Z%DzW?0cs(eUwbuF^6)-=B
z2FOpL06F&~AeZU^`HLvS`vS*(CCtW>YR9nCxnm
z$g5X}cCA~Hl$3zGyPK4IE6mJHFcv3eWMra^iW?cK6hsjb;>yanm!h<@Ga>FJDIexa
zn<{=REGp0O1x@(*%MRSw+J!A+v(dHdH4k60%0404_=n|?n%0UDmIz3KVx8hDlbX?pWU(I!{((gLxDn}PPhx3%G9z7RQ{I=^ZByAjxdF$Q
z6>?#1FV3$X$hI-fS=X;Aiwo=$7RG);iPAyiU695{Bl{OGCs=*mO
z5K9>=`)r20fY4pkqNkbaYm{@b*rgOu)x2y`L4LMQSQ^`j4Uv0g;)l*O2-D(`_>`$Z
z<@ELxH1AJ#u&Amy4>onG$Bf$LSkg3;Q)9)V&6^^XWtPM|?k-r!{H%I3F6Ko8YXuy=
zf~;%dN3H-e+uVyBWx3_GEV0*(M5#896f36n9XgOAmN`YvQ%zk+mNJrPD(cJBk$6#x
zaq@b!05DRs&kB%s0!TXnpS>tYdr^w^8W2lsQ4BvhstAzxga{bJ3M22O91Ulnu*wZV=pR;np8V3W{C5tA&N3bK6hRTA7)gm%7aD2dAw{0&o_)`
zN?vv1-KBx{RD&$80zgk`tlh;{i{dTgMeH!)2pua+Z6M>XgBzd1#7N3nF+<8Y8&JvLkjCLAv=s|JuS+zimvmuozl!|O
zH-(k$0$ARwJ}K^YWQEwUqE|A%ZC7CIC^o&DIIw{qCshp8J2BOlf9fMB)pWfxYDUUv
z39;a6kr0*OeM#z-O7d2K`~!~D^y*Qw*NgP4WGVHic6Pk~r2z6fQFR9ekVoL{Q4uQ_
zq=Nk_@enmz>g}6{?D}Rk`FS-77KW%?Yzqk!6GIVZpZ;$>cRqawDjm_QlqaFSp%Oua
zl=de|ezv?%391B{Qzy=Xrj=Y6SWtj&)U<6xmTyErR3^opgR!y?5Cxb^>8QG*2J7J$
zU0+JXf|Swj1|%xznTxnd6&7c^jbyFAu(XeNcH1zWomu)TXbz7^}e
zOJMnfsLF$byKrn^2gcUUAi&0ya2rD^JL_0d7|Dkd!#;vhpzxf(Z2OAs&U6rxg!{$i(nMLqiHtnk!X;w9$_m}TTWLE8HSND@kU
zDg~jqH5%@rDOuGo+Q`m_on6F{Ozz3gVo&ca9LfGsUBni<
zXbIwRUM`di^r3Qipf(^=KE$8YARnqk1<7+SDuwz{{^Lk?T8JMh{vL!27$fY9k>cS(
zPG~Sod-h@P#F^|GF^P2@donkt5zDjkI5%Vx7X^^#mDOIbhPx+@bLynp4&=Q!kN4U<
z>!(ld@%Hr-9^Jjo7t5E@Ln>)ulYH9eH5Ub!$HFFcSkSa4)9Y7dM2#edREuMD{Y)CC
zCTokx{1u3Q4FwGa4>M_Gi;8o!IZqD5SpjN(5+lCW*7Kyc2O1&zw6EYZHlgdQCp*+KiZm$S|0I0{h+5>i&2YVdQhGn^%0a}!!HUfFDgYTaaE~E
z1xl%N*XKyxTd3trYKy<9wLR6m`p4UafqMjy;^N+%65(-1YSwj$pC#@|sQURr;w7pJ
z?8Cb^96q#{0ey?aF@GX-}ZcbYY8n$F$`womOY|gk2^%&eFi3Od@^W&@*99vn)$+g`$wyZNtx@R-F
zWpyU!=Q5>PE;C!yVNQNM=C`cR@>Y#lRglN(f+nnM*Nm+l1(rpv_@+xf+q<-rR>Big
z14EoFj0v_kqGBl>gR@I;d|pFo*(OLUCN161BJV$_T)F>6$M5gI@yqoqBu9r~Z>)!-
z3QIM2UH5tJ<0nX}RG*Ji3bhe!BW=LNOC{H^{#GO;st&oywP_b0%jnc#mZXJqX+$BXhIQckZjHrK
zcj4@~5u6@Bf@7nHv9Wtc8b_2N%h^K|qPG^Aq9$utcv8*8oh(t1xyAix=^4whE#L6$
z#WS8gf67xe8vFVs=MEiZbce1ai%pNU6s2b-;4*d4BFfla?6kND1HH9Ya8#E1Qz&b#
z6r`^J&|3iME-KPf0QpHp28!xb{gbMnQV&Qqprc^xOq>=1WCci3(J2zCqA*i+CCLy#
z4o%MBK)+s`9@UM@llpLT<}j|#9!5d=7@}O&T8?ho9`7~cBPbv2N5zl;k_Cbl1cqua
zca;F17Ur*kF-cU1%8OL9Wy*;K&k7D;c2OsOnm(U1Gna8%?DUao3)we(JU;nK`IGgNi!RxkVdVH*QMb
z+O-*1E1LcOF2Xsd54K&qK0YGGQHJFM;d@=-x*t9uI^OUB
zl@am@jvwQKKvFG)dqL{hMWrScC}-&V`))1KujhGZy?&t)4URkD)qa8F39;8_(YD*r
z;HYLt-A6y)UcphN-o56}dG{YUd*%o>R_6aUUFcI78X6K39*Ji_85~^Qv2k?A$z5DS
zS}pqa9*r)gRu7CUy!CSxugx^_3Z~Pv(<})Pxr|nfn!JJiNA7dz@B@B4bdP-p@37~@h4N;H#@q?&{!
zWD}W?Lt^;`#Fx*-zND|TXm&VQIN&EAFg+%Mq6Ssz*D9U9^&(l_zd8pOwdMG#BF?Pu
z&W_3XjLIudw~PdOXQVJRH;r)(rQkHqVUkGg>CNgeqfsvN@^V?K`YKyAWJBx5Olg>d
zy_)9q@yk)2ya9GbRQ5NaiCFGcMX@~FC#~8$CEx$|kJrziF>}IrLOs2;!5Mo)69J-L
zK`JmR1*vA#sHE{f0cofK(oLoOn3`%TQB6ryGi-_rTy4dEtD}{uMoS4BDdaxRet0+s
z5)_z1Oj2EfMeT=`%Og3xfP_lzh)!xrwX_0?;*uDd7|JvO#c&W;&}|WO89jPtL9!LH{mlh!)EoV^ES9Wxb6AlyXco
z&_@NsQZ(}jW=s3F?Cn#;(ZN!dMs?@RgkJLh4rOG6Y9zW9C&ky9oR~mz#cS$EJLz~Gc^MJ8QQ1;`{&Hz#GECZo4<<7OV)FB
z=|=7R%-j_M%;lUC^>}XXGI?z+?|!|ZUy=U(Ti*Znmbbi-)0aHGeV)C`MzV224`%f3
zO0UB9A|CQ+mzhnw@+ovlPh~(>It>NbPUfcCY?HrM{C^h;2&SgWhFWN0C}1@b$5ORQ
zy8d-luFQ3mvNonwPKGoR&eV?4F`}Uhd&Z^nYMl^R2d*@KOMErfl`WU6&wXV
zHQVf>QjBBt*FFygN40d|r?{vFZNy?27Nc!CpfC-@3?;Tq_*$SU;qEVhU%M)iAx|XB1)XCAtoX=O1b-!RyB{_{U)KS
zT(6%t(4wvSt8L-vijkEMX<0?I>%Nd-6L+v|%T+e*zQdM%w`tXFCeam}5nHL59Gi+g
zZ%o-L`Lymdj{S%4bL7Mm4j+BQ!6Og&>BvKNAG*ur`8$Xx*O)SKxdg;!5h$Pxiq58-
z{M@X?+gZMLCvDpH#MQ|MZzn$->>aT-(-GutN%QLA3~3n6=8=s!zPtw)H}&JZ#FD`+
z$PII)oToLl;(TeJ5<#CT$@H&YfqogO^i5A>V0r>0YostTJB5K&;s_PH`_~r5P`(s5
zTQgF9Z0J-ej3?Sc2mcG@_{ZaS-o1Uz-CMU2Kg
z?}%?iF5xLH$gI_w{LFd`s~F0nYO&0&9LDPG1WpYs;?&6A?C;%~Zwou{L!WM3nK4+O
zD|%Vt>I%+p8_lpb)yXLrNp5H?)g4Mx#oCLiw%*L_Gl&HiqBr~?8$SU$@#Nq
zq9z5BZyrCDw&p1>1(weqJmQO43(1X0Aly=bCYD=4Qo%9Iumr&$2WON*^p{YORDe`q
zRDe{VRM(Zo4m5E1F98{&4dB>|n$(YQSGRCwQT=*sEi7P1_crY7SIAF8x^ZM=SB{VF
z!>XRGN%yfQ!OdFRdnVq~fdDBNA&x5j%$Wpt7tKOf_LBxYz?VU?&2ZkqnJ1mz54rWrTt7af@aM$`|{F{-u;J4dGRc7K2UsI{`sN+JFM
zNTm+dQf1@x=c@lvQ;rk#uPdAVN2or@nP^GnYBl)VD@7b`(y#BS0rIf$?t-Z7%jo+a
z6&xQ)i1OA{<6i;!j#tm_GqOiMmS%s7p??<&kZ}n~1ciiZ&rQuNDdiDB_3W1P>NgQx
z%@(6^36|DF3Xsm+6~kga*tkT~vClkFf4BJR`#Wskdr#s%+Yj7h{M_#}Fh-TnBc@U_
z4Uoy{Ey=9inXTWP<=Cl5965GRAbDTnA%~7W;M?!6keSlskej{Pd9>VLJ}
z=BI~BH+V13>Alt$dFcB+1iN_QZ|^Ff)eaYnVmO+ZV=rpZL9OUxtVXs!E@UC+T3@57
z8q`tK5&!J3ET&WQ+AXmu?tqgtCN_3H1cX+>$3FuPzYP3CvhWVBhF3^6fnyF1K9xn`
zH>G-o9GWIZG9^8f<+;f$$cSNGt+JdN(23I{`f+r`5Ux(0#+~_dd9YMk^n+q~E-gU6
zRK1!Rv6PG7jABy9hSW}oCbM)fBinT1-tC`x^7x4c$Cm=e=TD#T;@MN4Dsq&DW4qRTRn(SUJv;J4zb@<_(1n9TIQDG?=YDX03R%J@-U6k~=c$;=>M8pefFE7YI-vT+P=SdSg!
z$8vJfLe4E&&84Mlxx928mzRlxT(OZ0^8BQzMg_-{vz7`hmvCj-axQLN%*~@adHLX~
zC`mO?bDw)>4{&kq6i%<4#>wSVIJtBJKP{Ndj;Rxw-=`JL(<2G=ElCMW3vB`Gf0~;2
zpW;siX{m)8;SCQD$K*3-^(n$a!?mN9m@Re0-qe5~8$%M^byW4$(Inc4$<0F8Kcj&-
zVP&(`l4O(h12NkAjUNYO)Cjf)Mg>nbiv20wM?%fA(Gtez3m_NiRph-5!oV+ufjjks
zGaoLY?|W4JjtY*-TI-df9*!!@L>=Gr`-hjTm_CHW$bkP=?iE2JNP33Ew(vKZ<$B;Tc(-2mx99-t+io|9y7-_>dh3?z2f@PqBIH2{wLllyw_^V%54IY23UQ!Qp8H
zMpYp=wi+RE)d@|gLCr>;*!ty9e7E}?yLX@F`|ppleAzl`RLR20(U#}{N7|)_F{^VX
z%Ldfo;NlLPTHlomU-jqvW&P+>zbp|x4%(_Hh99RXeY&ZJ21aO0v}xD=eL+&wo5m07
z_c531|Hb29A$$MsJt~$hkF&J{jus9$TiWAjUK~eht(?rvaZ-JZ#%f<0l_zN=&@>P`
zt{=Slq#W%GP4TevBs{1rrGrw4O00>!OB@C!QV@&-&>08Hc_4;Xp|}eqBg-}+UTk%R
zD$S)pd(knK1)?062pB~@3J@2e$(dDiII?g$-%ahs$%Wl``rR<@f76?t^IOxmWhLT+T*MBm
zGXD26{qI5#NHZ)gMS)saVQegofY{5wzE4G9V9?*LndX>
zR>$I^2#zmq%6qlJmP!&={fnPM1Em_6QEE}W_E}t07JIIKpyswT%6Hf4cdAr?e05a#
zr_|$3{#1`@U`7G)x4*;(P9E4syPTB&)_|1?4UlEa{h=T&t%~FB=})}|9rb{0)P4r#
zvb*3MF3LlVUdPuZIH?i2O^5Q;p4;p>{FFThAF+GCD8YjdP8t>tJcw%J%fZ9!l5|!MN+Ku{=f4qtJGEqZ`6L$Q)#KZ?1>%VMA+km6&_ZePMMYjzpcF`6TmG?+=o?-?y36Co
zk9m6gj@amDym<1Ig9m=(!kM$&xOROoO9~PAxiYDZsRmYv!UTEi{k@
z89InP*Ml-r0I5=c{s;p*s@u6UwLxPRG;7A9rp;L_v9eh{E8DeY^OTY7S~7#(i)OHG
z(ik@M>CVW;b*LX7NmU1<&j
zN?S)IKOObLbhJs<&-x!?vm4#YZIKJjuU8GG({jem3HdbX%fxy2jSon
zf}y1gh5|?<1<7JAn8~qBXcC1Thts~pP};WZPp3`;7%^fBQzy)$R#rV~WTex+X*S*K
z#j|llefBNP=ftXxoY^Rl+}NA7(>f9z;)ZQ8E3HrQU%!NZe}k3f&Z<_8M-NoX^nd?&
z_wGI8hfl%HHiQx-BCxUw!o=8D3YojyP#Y<%cG^bn4x*^stV`nKAQrl003qIy#K+bk
zFg%BdInVL!RhM%w8V8-Avqy(sx!mixCH*n
znu|q`w=P9RM}NxOmnNy0I|*hk^sP`s0NIG?_3JUSK|`iD%41HKPOP0WmetE=v2M*G
zzF4=6xzi>vck)jpXLELb5eFw`
zvu{!+2PW6%(2Vw6UOQQ{)j!S~&C&S-xU#w*cfaV*i*JU)Ua_w~4iPX)92*J8<=V-C
zXd8T;8Y{PJ0Q34~QzO9_XB#~%|61Nvm>7$-Hn+ycMqHP*y+G2Mi12?_kZOxuYisMj
zUH_+0gF9-0>{3=bVx5%*H=#k8A??#FS=^-}XI8f5w^I{8f>O$qnuD!{G{D!DJ6R%S
zPRiKr75Y)^Cp+Nf0sRQJ+6!G9p!qzt=hLXQ9*(bHK9I6gM6{pVzwJuou*RIaSClZjwMPg
zwUM@ZumDovXk_IgV0962`U^mN(tq%D1`L|apdl0GIF`|)X40uc9|FpRP_aTe`WLle
zWPSzK56b26qBfjf)1Gr{yK!WF9~O^kPi$Z*%uQ6DrJ-geRQ&bJ_!O#zDdXeC<@4u1
z;_LtZp;YRk;bVyM2*k-b5mUEro}*SwLqb@@62TX)9KSV2-hqOAv{nSjxRQikRq
zS4A?^wy>yIF^&FhIxubMFeVKg#NeVX^pWRd3%fF{SCO_)_s!1DeB_-gfH
zmM@*hvLy>xB4C>)pc_77BqK+UrFZ|q^c^yq;iD%ra`;5XjhMu^p`#f;U>M_j4`R-c
zk*psxf$t|z))>bSE2eVOBfm8Yi&fln~o}e#?%p5cCYHd#(`D1
zxuv&!)_Ho>s79~V;EY;?S~(Q8m9k0@f4WQTwHm>e#`@u(X8DBns=B?tIo5@FPcrgmLn$h2rh)O+;8Q3&!A~TZ
zeV9GC1yLbB|6mLL`dp{2fWH6xZ~1F~;s4#^cP^hhOQK^*+$_v+w)V!dc#wQ|qQp(S
z1(Y75D#P*dNW|AONn5kg-vE(7ZofZ`(9jx03lsw*>f+>^L8;&@O+Cg|D!?zQj@*MF
zOl_jH#C|jTSPaemu{L$k7R3m(w4kDkE$vcb8J1gJlvH(=x6WZp$2@-M+l8$i3t8B>
zC0nG@pV;;#PagatpHlVZd^Rfh?lC+($#3@#^YZ=;p5J@Svj@+#zDG4O{Y=1j`RqA<
zz5NT0n%CE=%7<8t{dV}tQd7Os
z*nbrL`j4b@_W`tS*Nvu4JJGy(5v}sO(yCQA+K8*^P^g?uANuwj#L$657}B*jlX?y0
zi%By%wrHuS##I8yH5wdmtX^hI?gXy$=Sur#Zu4Xps3Uv%Lc*j?y#o=eBWJL
z!JF^9@nmZc9&8!M!)+6IvTHQ&_Ky?riP}0Vw)2cAtaH=#gCM7dXv=VMVxWGSp9-ZU
zPYu*h@w+CC+>NgUIGcF%;}kYdDxhZh5ImfVi$gJ@n1$Ns-WF#kcO2|X;_Bid4RGYg
zI`XgeM2&cRd3pV)*=}M52VT0e)6SB)XWAQQC-_p*jlFZ259bE$;0ZsR!iGN3_11H&`}&Ni
z(Ve7ZG$u4Dli;`v;!?9k8RZb2P>t+51uR&$m3d1xF?sr8Mva@vsPQuyIc^#WN#*5(
zyW!^UL3(-$Cw8yro7K~$MQ_ONCEYo_u0Lnj^kV;tflL|Pj_@EaP4fTwCH%E-(tz4E
zvv~hjeu9E(jsCBI`8&5RT%c+|sJ4QSx0Mris++++NE(T7O$8d8_+n{U8Yjmv
z+}#uLDV;_suktvGN-XYN7Dult*t=K8*+;&+%I$FUuB_Q>1x6R&bc`$lFfvwa>KWl|
zVxVo}Ro%mx!CC3dYn8`}HVs(csSaDZH)VatX3X!=g}!y_ao~$DxP9*?uYY?Z--KGS
z?axs`?fZE5jyI1V^77XQJiY%!6yysHjH<8k(cSx8Jad+xuixPQ?K|xIdKYI79_6|~
za{un{xqtWWAJ+QOqbHh@JSOT=Q;PclQa0emuvV87mk&VmiHB_r~9{
zlm?n=YPZK>U`4K?exrhbFA
z5^ZSIup=#6bf$eraXAA@t{Mod+_a+h8`0nZm^tYq`041J~CmKyDC=
zyj~mCJ}oNq@brnIC`IKR?joU9)M+Qt752;Xp9gt@R$g|`0^PNwQmiH=~EecZY%z0A%tbp^vTD1M2)dpY60jO<3-rnZ*lZ%}A=^GZz
zn@Uk(E7H>{5EvMUvvWx)XI{j|$4fa9=Vff7)eQw1LnSh#4*dzpPXPTq{tlae7wUIf
zC}nA)!_P)Xg13(JARTq14H;0UG+ReE;OXJna97mhLlG{|evr?8SpJXGQUEuj8O_}81MCa_PRG=by$_Htn37Iv>*$M