[llvm-branch-commits] [clang] [libcxx] [llvm] [mlir] [openmp] [CodeGen] Add dump() to MachineTraceMetrics.h (PR #97799)
Pengcheng Wang via llvm-branch-commits
llvm-branch-commits at lists.llvm.org
Fri Jul 5 03:19:31 PDT 2024
https://github.com/wangpc-pp updated https://github.com/llvm/llvm-project/pull/97799
>From 3dfdfebcb29fd0959b2f1eebdf6cbe460723e652 Mon Sep 17 00:00:00 2001
From: Nikita Popov <npopov at redhat.com>
Date: Fri, 5 Jul 2024 17:01:04 +0800
Subject: [PATCH] =?UTF-8?q?[=F0=9D=98=80=F0=9D=97=BD=F0=9D=97=BF]=20change?=
=?UTF-8?q?s=20to=20main=20this=20commit=20is=20based=20on?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
Created using spr 1.3.6-beta.1
[skip ci]
---
clang/docs/analyzer/images/analyzer_html.png | Bin 0 -> 63091 bytes
clang/docs/analyzer/images/analyzer_xcode.png | Bin 0 -> 87697 bytes
clang/docs/analyzer/images/scan_build_cmd.png | Bin 0 -> 29669 bytes
clang/docs/analyzer/user-docs.rst | 4 +
.../analyzer/user-docs/CommandLineUsage.rst | 239 +++++++++++
clang/docs/analyzer/user-docs/FilingBugs.rst | 18 +
.../docs/analyzer/user-docs/Installation.rst | 37 ++
.../analyzer/user-docs/UsingWithXCode.rst | 88 ++++
clang/lib/CodeGen/CGOpenMPRuntime.cpp | 23 +-
clang/test/OpenMP/declare_mapper_codegen.cpp | 6 +-
.../test/OpenMP/target_enter_data_codegen.cpp | 2 +-
.../test/OpenMP/target_exit_data_codegen.cpp | 2 +-
clang/test/OpenMP/target_update_codegen.cpp | 2 +-
clang/www/analyzer/codechecker.html | 68 +---
clang/www/analyzer/command-line.html | 61 +--
clang/www/analyzer/filing_bugs.html | 37 +-
clang/www/analyzer/index.html | 2 +-
clang/www/analyzer/installation.html | 103 +----
clang/www/analyzer/latest_checker.html.incl | 1 -
clang/www/analyzer/scan-build.html | 376 +-----------------
clang/www/analyzer/xcode.html | 136 +------
.../feature_test_macro/implemented_ftms.sh.py | 54 +++
.../libcxx/feature_test_macro/invalid.sh.py | 108 +++++
.../feature_test_macro/standard_ftms.sh.py | 54 +++
.../feature_test_macro/std_dialects.sh.py | 30 ++
.../libcxx/feature_test_macro/test_data.json | 151 +++++++
.../generate_feature_test_macro_components.py | 194 +++++++++
.../include/llvm/Frontend/OpenMP/OMPKinds.def | 30 +-
llvm/include/llvm/MC/MCAssembler.h | 80 ----
llvm/include/llvm/MC/MCMachObjectWriter.h | 20 +
.../SelectionDAG/SelectionDAGBuilder.cpp | 8 +-
llvm/lib/MC/MCAssembler.cpp | 2 -
llvm/lib/MC/MCMachOStreamer.cpp | 32 +-
llvm/lib/MC/MachObjectWriter.cpp | 65 ++-
.../lib/Target/X86/X86TargetTransformInfo.cpp | 6 +-
.../lib/Transforms/Scalar/SimplifyCFGPass.cpp | 4 +-
.../Utils/PromoteMemoryToRegister.cpp | 11 +-
llvm/test/CodeGen/X86/apx/cf.ll | 23 +-
llvm/test/Transforms/OpenMP/add_attributes.ll | 24 +-
.../SimplifyCFG/preserving-debugloc-br.ll | 72 ++++
.../tools/llvm-symbolizer/get-input-file.test | 6 +-
llvm/tools/llvm-cov/CodeCoverage.cpp | 50 +--
llvm/tools/llvm-cov/SourceCoverageView.cpp | 12 +-
llvm/tools/llvm-cov/SourceCoverageView.h | 18 +-
.../tools/llvm-symbolizer/llvm-symbolizer.cpp | 8 +
mlir/include/mlir/Dialect/LLVMIR/LLVMOps.td | 1 +
mlir/include/mlir/Pass/PassOptions.h | 14 +
mlir/lib/Pass/PassRegistry.cpp | 14 +
mlir/lib/Target/LLVMIR/ModuleImport.cpp | 3 +
mlir/lib/Target/LLVMIR/ModuleTranslation.cpp | 2 +
mlir/test/Dialect/LLVMIR/func.mlir | 6 +
mlir/test/Pass/pipeline-options-parsing.mlir | 7 +
.../LLVMIR/Import/function-attributes.ll | 6 +
mlir/test/Target/LLVMIR/llvmir.mlir | 11 +
openmp/libompd/src/TargetValue.h | 37 +-
openmp/libompd/test/CMakeLists.txt | 2 +-
56 files changed, 1381 insertions(+), 989 deletions(-)
create mode 100644 clang/docs/analyzer/images/analyzer_html.png
create mode 100644 clang/docs/analyzer/images/analyzer_xcode.png
create mode 100644 clang/docs/analyzer/images/scan_build_cmd.png
create mode 100644 clang/docs/analyzer/user-docs/CommandLineUsage.rst
create mode 100644 clang/docs/analyzer/user-docs/FilingBugs.rst
create mode 100644 clang/docs/analyzer/user-docs/Installation.rst
create mode 100644 clang/docs/analyzer/user-docs/UsingWithXCode.rst
delete mode 100644 clang/www/analyzer/latest_checker.html.incl
create mode 100644 libcxx/test/libcxx/feature_test_macro/implemented_ftms.sh.py
create mode 100644 libcxx/test/libcxx/feature_test_macro/invalid.sh.py
create mode 100644 libcxx/test/libcxx/feature_test_macro/standard_ftms.sh.py
create mode 100644 libcxx/test/libcxx/feature_test_macro/std_dialects.sh.py
create mode 100644 libcxx/test/libcxx/feature_test_macro/test_data.json
create mode 100644 llvm/test/Transforms/SimplifyCFG/preserving-debugloc-br.ll
diff --git a/clang/docs/analyzer/images/analyzer_html.png b/clang/docs/analyzer/images/analyzer_html.png
new file mode 100644
index 0000000000000000000000000000000000000000..607ea1882e71b4a9b64390b7fe1a8c9304449f01
GIT binary patch
literal 63091
zcmZ5{WmIHK(k-ryL*wr5?(XjH?u|p^?u|?1?k<hHJB7Pj;o3k0kGXT_n>+7EtyAk%
zRn*DIjL68ncSI^FNFu=Dz=42(AV^Dzsepih6 at q|(0$`v%@1Uupuz`TUjarL}DoKlq
z5-ELiw6L}_2LbT}y~yxTQ(b)=nd#z;B_sPWEBghxNR&!O8Cire2pkla2vsD22$mTF
zQVhKwgad+>19=3ja0OD#`YS}ZFp7_G)yi;9Fw7Oy*XgULrOckK*DLc{x68K;-^bPC
zDwmH{TYpfdA9uy`u2>*MsiWq*?|2q$jA4;I;6wqSVnz^Izk}q;m#egitwse`(r~TV
zY`Qq2^gfX96&>8L+lfJD>DYuw&9jowv$&>L;S8wK#^=)6;l38#&Uuxgn%iP?Zr~o$
zf*_Aln^t|3?Ta+6dKc^a-c1Jyvgu*Pmo%d&tgUFDg@!SyaSbL6muaZz4Anv=O(yI`
zJ<cHAF9$mQKoy<H0%-zruYKZ&RnG;^9~{Vi#)&Cqexd_Dq?5XLIm>CYItMao1Onpt
zwvO3|7$8~=VpaZj!RiGKvI!F~eCYowU=zDZS+tmuael&-ibyg6((8wd|7HaP(v1>8
z*f2MD#VaZ4e+~)Kh9ETYT{zXQPmAtlUumGgKOT-PfWZg^%?Qyh0Ne=*5I}hiDNOXm
z2^47%98?O at ga{m7n1Bj|w$DZhjw2AR4)+`qy3g3 at OBR%T9)=!-ejfCFAa5QaA0%TR
z?=|-Ka3UC_1Y(>baAqRaQMiV1JtCx0Ot`RqVuEB4a#0g1`0-%4eAKcpYf$RK(0Qav
z{0m at iLj1GzWrR2(TcV;&Uy_UvRzNsH?Tsy0&=7-2ceuE)Q~SA{h&#V-fob+NUrYbO
zz6_}yK-x{aru0N7Cdq_Bs~5>aL1aPOB^D8jIv^Gwl_)}eMz9uQAX@$bJxY6k3l*$9
z!o;+Mr5QsQ7QJiA!sL~XI;k-!FbOM%dqi_Yd_- at 7CEI^yJXJrf<!^_s5s_k=W;#*7
zxU#?EZpZk@{78z}XT78Ki<-+&51j!rEtYmzeaFVx(s}cj-v%^a(DLBVUHu#4-=3Z5
zh7sE_f&qfTSHpt+{v^mSFA%(7;mG1rqz7o at Ft0GNArAef{hAmJQ3>N}DMl#}DRe2Q
zDKaTZH2O4eG=>po1<Z3PSQ6-{cM;};!GmA-<o9$@Q_ZBlkw7Lv6p0soQ=u=<c1^oa
zkfUfEy*!|52<eQ{6L%ncO585nQ_HAusL)f7v`IK4Sfp6|S#d>e7KI%unjtz?lB{}0
zm7Q#<mOh@>u3T8ga>ipr-yHlRhM;0vCa)T;p_`{s<E~b%d(q6Jys5XT$S>Wc)Fsm;
z{+9m&GxdWb`>X6kvHC2IRjalCoZD%QD*=C+fv})xk1XL5)57&^dZlt+z2tu9u&R7#
zNvK6#iB_Z9UAjf?ktRJqy+<`fwMg}wPPUF?v-O&4lh;~w^OKd~f?v7lqVxRjDcw@}
z(&?;Mq3p8TT<o%bjc(z3;j8$J(u^*ne68A5(-ydIR(Gs`rl4YvPLJ$IVPJP)t8jat
zL~tY2%opmg=`h$Z@~{zvD^{m39He3OS<dOswx}#)7Ap5e{nFu-n-(VNb{2Fl7<XKE
zfhcpMt5QZyTV-Qbvs!?3Q#$r7>kaEaQ-cd+{YAY+(+2|4liy4uwRE*GwR7dQOY{ID
zfc+BiB<m#ZB=e+7%BM_X3k3_2#wm-m$?go@%#qAmc0tSc>HZaxd6N|J;33-y>D1j+
zS~?)Tp*C|>f3=1VyG~a#M at w7-L%l=GyP2smnxm=%!1!)pX->neW8$$Le{6cfA%D}j
zgVN5|ovR~#bNt<6rbV%S+uk1#c!s=Fw~)WJ+f`Ux*y|i_nv1qb-D{npngmFrKBu-;
z^~=6>s at Pf>EiYE>$a0>>JN|wQbv(oH$Y7F&lV({%Q3G4UtAF*&y2E*MeB(X6gooZ!
z=cY*(;0*9B!BlW`3E$w~O#8*z5%1~gdEk?Ehn2x>I-H12pVJGNaLG9KVysH*(M-^!
z44;HOwA;D&w)K+qaeVUIF+Cu?=ia$nOS_<bs(!+Myt~)kT|QO3iND at H`XK5h6GB(Q
zyykY&F%sS>CX!Jyn|;g+G at 96X?t366A|ondJ6MuCnq0_`v_uU3CbAsz7|PtQ(jOP*
zn|sJ>`&PByQ|FiPXC65Y774x<#vjL+FadL}Z*hmh3CZ~*>OPt-`a706ehRLeb<6Pi
z;HsoWyjZxHrWn$#o+quBFLM=^mz)nBzXq}o9b#m3L}lD7+lb|K3HQui_I~vK)ns$d
zPr+8oJ}%)Lr^wm~#bZv&dDPHI1h57oVJDKvALwbWY7rR2Fu+9SvCe~bbU7Kh at dPzJ
z8@)5;gea?;6SYhm9Tgn_-%F?0-5THlzzXOXq}bzg&K=ZfkeScjO;yghkvL<lPV~zq
zWdDeWA(KsQw!ks7uzVc9IH)|FY3yvIX$-@>{+gvDWk{vJl5L-&pY_H!!dc3LIW0eG
zZ!oCU<T=;XdFr)(*UcEG|DD26P>}Is3-yV-BQ=IWUTaOmNTse|=eeQRyg4*k#M=1k
zwtS+Mp3oqnuE4i=b$pTbLvKi5-Ox-+P3gXhtLV2?q=vM?SnpZDV)(LEm3EVbk$vx4
zyW1M at c9~ya(B*ARWndno*pXAr-im>hab1Z+El2JBRpK~S{ioE=295_u#I^6=;9Vxp
z=nY#b94 at wwTI>xWt4VtH79UsFXRhkD>wPG_ET^ZBJ4ig5uUfYCwWX`|^q$*kS}JVg
z*K;y$y3P{M^1G~kuHJEOZ2<!7z8z1M7lth#0MOk)UFcv$j>VP5^YX<i`ii%A-C at Ug
zBys#R9=`qS8=kxNY{`ZADjt^auJ3clBS&~Zege<V=fMTEaD at g12SIUO_3t=5*)A`>
zU1jgeqH+Vx!#l%wmVDD$4knz7S?1ZBZVFF&UaZA!zaRk(MdoF0!oXJ!=XE2WZ?C=2
zZO2#oJNmzznfLY<W%JW&Tp`@_y3hTeO-db)pBb)dT4=Lqt9yLjw$`Rj9bN}s;~xof
zbD}lhYTfnV+ue&fn_7>(2On^K=X^aJ2e+|)QFn5C%6<pFT~w`$dZccMUw+*z+ at S5L
z_3>W at Ukc6)e?(Gz^0_zkM87TbAhIypabDX;Qv8<Nuc#?lD7b#JaqqPWpN454OdQN<
zK+*aAnFhFc0!-x8aje+V>8btz9M9x<IA1|+TlxkFR()7q*B>R_mBQze3JAU=-k2W%
zGaX;HZQj4V0dJ8VPlle(jr*@#2)_#ANCrt>#>yl&2Q++DS^^u_5z>aIvIRA#&#Qt=
z_60RJ6k5epdi=k)zqc>orJh;dwde!#6uG#u1CU-pl at 9Z9#E?M94g|9amz9Uz1BTg&
zlQGtQm{6T>d+OO@|1<_y+63#hyC?Oe2I1ucWfIQ_Lkw-|e}Jef+#keRHdo>VQFBZX
zqdH>s70Z}+^_xz=>UlvfwamwvO{Yc_O)UziX<`C*?fgL&7AEh6x=raB6q-010h?M9
zZ*6IMGse<$o$JSa{Bccp86wEJ$m<#un$azIS9BAMj>()VnTkQc-IoDR@|}{4Go|uZ
zZ+$vh{)}Re6v1y+|AtXUClU(-iR&3w5Jw^~R3fnlA^{^X!h2dYDPf+M6xJG#{7Mi7
zga8)N-y;#%c6j=`zx^pNEedt8K(?^w at iM5$)u-=8Fog5jS(QlYnk{(hE>?F8t8H{h
zQohvmf0nkePEy(~ARzE)|9XLfWM*N3fDnO5iwUcFf}ZO`XQ7KfzH=O(Ge|cihKLV=
zc$Wo4ih?RKg$qJmFR1b%Dyw}l0$Bi$2?#pQrwRv!6y_HaMnMz?9jiNNnmFp@?RfRC
zwX|s|Ev3AehDz0Z1y)yR)>at!ZUXM6D$mXWDk^BCkRc#Ig at us+?}7ss*c*1D_JaQZ
z-NynYF8qcM0~QoOL<IBqg$)Z#L<0AV_o>!@fB!FQqh)&F|NI^d7(!UUk2$Dd1D>z{
zYnFv(`5*Q^%?bq*BX1b-FN=<VqMzmCo{Id#av+a*K+B$8gO4**mW?S|kap>EI~&7)
z9tH-ilnbmB$JxHgOik*T`du3N4)Xs-mZwZSt0iqyNK)8Lmd8TAUB=+WEb(8{XIOza
zikqAiCTlxp3zA?uxc%Bc+ugp?OW*x-7+l0krVY~cUiz*1k=DUKlnG(VI3eb7 at k<+N
z!T#yOOc<~&WJO2US>(YcgR!zSvIYD$S4|6d{^ttErLfU|`rFD1qLU<vhjjC_gBFlk
zrl_LBXtn^4dKSgjo(QZ9<K(Hjs?O=Qmxlj`-)EIzJjr4?20G_liuYw|*!2mEnx at Cf
zph;{bkf+SfNUn<~vukV=P5${v3K$SEgLCQ2 at dL{&X)kW_Qoxv)m&lNIl4S2Tfoeh6
zmnKdgZ{Pp at 8!TieX;io2Q at 4BT?5I<4d5d-nmg?+wl43Uz316}T3$ZyWRWA%+pSrb&
zdDVWoUNdR^f0qUfSS%=L+Tg53R>wE>5)*a;)0{(z4CdOir7>^?KgvRfh_Zw)ICp$X
zU2?_hcF_HKr3V(?dPg!fXVP^4ozWm6Q;A*-ZnmV3q|=FeYj*d-$@Jy>KNrLgwAj^<
zD2r$kDH`=)qxxG~M-_3DZ8T~BT!?{TLcPf#iNsr at u{<@mpW~d`e at I?tx}hX~z{P$@
zjKGmD6sVo2IqLIH;yA;;d*S#ssediLtk0`L at sB46;Dv}On$gua<@fON&Cp(xD>--4
zEIIuh{o^I{(}fXdk$ImthmEM(qA(&}SQJ@&+lv0X?u3x7q#*9alvZ~YN*GyXe~$gq
zPwk*lJ;ZaF1!|Mi6&cMeFe%%z=*W_cL#QZ{OwG$2(P)TrrqXhcRLG6Rc#;2qBNFSC
zx{UE^ksnj5I#>5ntnWrh;aFmBDZfwNAXrZQu at n{4PE;UKP&$JP80JHYG4CF~2uNQz
zX7Tm$)=zm<tGOrpX8`u*!cd`}RLGlhA5WR-88R*dpJ_O4qs?hf)&XYC#6^7-i#$;e
zWHad+ULMS8p|dFBl1=pT3E6cO?R5Kjw>0kLfMmB98pi*bcZ9$Iv_4YOWVs=`G?_}R
z)p0Mkx~iBs5+1k{s#4LEQ*PAA=3aA|X=}tRPFdT~_dlAZGi8_t%Is7vn#G$#FDxmD
z#qF?YlnQ)3hCP1EY>r!h#%E_|-8b?e{<)$dKrJC;WM!X<OG|5u>dsF~bKhgxSWb<;
zjSDBJG&Ut>40&fTPd($*5<XC3t3xDSIHw>Ui0CTu;Nb#j2nDU at iv*Sp{onS9iHR|j
z)6xnX8dMhl$JwC5y#Yc-Mnn;ueJ1sPUKTYC<%vaJ;L8tI7SOTP4HQ$3P006~a-2>N
zYv$Q03fVJDJa#e62e_$7PUUq_l+`5@)XC%94iaT+^4(xC(J?V?V<!avcLd8Yb^CD<
zR6#*O3 at 4i%Pt8To(D+`iR3u}3vWgtkl_~Xlwfodl59fi;#_~&XOA#?^KGh0TEZX$W
za at 60(REjIjhP6)X_}Ca2E at d7gWd1LQ|CM2`2|y`|VPRpx%Z9)3pns?!)PXA{$dm8$
z0n5`5CGb<r^IX-tCF%u7%lw=ytW&Am1T?;xPJ$Z;Xc0(#>7d7_V at 1##KF?i}Bw}Pm
z>qupk9FD`MVx*qC4;~mum at kIsLBI-FDIyCA4JGE{!V=q(UpLL~o+_C9VpgLSSdhK0
ztUd?~7^@qV5_7+dDtdoI$w)qT`Kj%Nt<_-*`B;1<R$dH~qMibS6e$*dP;;``CWva<
zWvj|M9RCqzw|{4vG at txeIw?f}OSs=85=OSNgF!B}mgQisRXG5hps;6FMU+Lg=@oMy
z^^%R#Rb#xo%p9{9QmEd0Yn0BvXysbGa$Q}_`CY6v_q5}p`^bC2`EReet=ylMM#RPS
zV^dF|Y*&OrsZJ-5j!G#?8XJRpZ+(Yfd+NqQK|xv5fz!OG;Ar%FgVfHQkrdPWf~wOb
zW;Vfr6G_kKjm$j~mrq5B8R_4K5s7(!(>}EgSlau!eMCybfI2p%>LeioM?*vF!~%p+
z$Qcz<_M?W%_Mn}<m|ZvhS#w at n-Z?0-W2<9$2K%q9?!-fitS}v~N_~L871`8J<$Cp<
z;?HgdPs*@g`>KrU1Lkb{(_A0K{CcplN{H$r^ElUx at ToTIWoJZY*nZENfq#_Mw at RAo
z_y_Ca0T#vZP1dv1K=Q|kOWjsP-S;=grno4H<7A7I?^BCbKAS{p>S{Z^%hC0B9ar_0
zRdRsc9Nx#%0U*^10if5O1!d~hjv<phUIge6DRp^ANoL5BPKP9Nv^FI5 at vMutp%EZA
zzw0zCp5|?L*UI0s12hyA>(5}e0(3(%aKF;%tsUB+r+qa(Y^kkt-nPNxbw!PSe_~Wq
z*T~nTe6r8PVHEjy00cq__rCb5hvXi0M;>Aeg-k{5?a?*0o!4T`)!GNI9995Kd*lYe
zYu~W9YuX^0Ym&vb)R3=-SSyAnA(EamqqJ-0U(yd{;sFBCxua!~nrd#N5}t5X`&0Q5
zR6r<il0q*^MU&&8&=V}2C>OBc*{WX<%GTCYZ`<BFnYxi>zSdloMd-};X4+h*bq=?y
zmZX0sS at qX+Jz2m*Wj|uS+6T=Yog0Z2sSy|LL5#;alFnEW1&zm(3KXN}|G`v=a-EMo
znT=etyJ(o2-1zdnV^?*sHAbxQQ8^+CR>IGmXP%|Cps5pUXjDY*J645AfzYLme5*dI
z4eN&6PX^wkzl()HZ^=(5U<CY;H{4qf=<__-bI(L5F20eHiLr9+=nIh~2hH9`k=stm
zIkE at h%bm_{!%#U4U3^<xSDh{b=o{4>6%Bk($SPF$rit(@CZW$>kkqJ*hkm+Hnlede
zVZ=pMr-r8{ye03kyQ3&bnp4s?g8(bes^f#5k``T8y>1n)xwfBjfC7y~Qb&YD3?U73
zdXSbD2qZ%wJZf0|^YNBeGFR!e)CLO^n@|0A0s^5<AZZSTqKBiSbchl%1WCligkvcV
zneXJw at k`-*bcbHcGjMtl1`b}N<8mw_22s=s>qj){O17o~;QniJh#4`907PHH&D#B+
z>8dYI*+-Te=MD1If9EVKJ{YZ at +7sUB?n8$6yDls*Q^_f=7Xt}#Yk>x9Yz<R53^s5{
zfK%P<likIr5Tw;DN`C$#Yg|ld2lnW2$bhv8d at kORh8%K6#J5b-BeN}J)tZrZJhe>I
zo{%*?|8Xh|+F-6)v*C0%wYJK1P!%(_-Xu#lrzZnf^2Aj>Dr9HZ5J0#<`l#hj&gKTD
z$hZuO%(ntBm^>r{%|!h5#^npfh0!c~D|dG~lEi&v9NfqsWiSu`mAu|w*XpUfbQ*~8
zK at u(!2;tp)D_?g=g#$Z}bqnt?;igj&Td|)*0C2^87+AytBpdQ^FcxKOwNMxx4rCn^
zQ6y9KJhlcraec5Kez$q+9PFlle#bkeqyAkX+Jpr>yjIMgQ4}1bv#?mz7+^*rF^s5s
z_{TWR at JGKgI2NWH*gbzSC0LCN at 5Tzh+Yh8S?1`2%Ftn<4BOvg*ApCXnCpDRIIKEae
zRIq(B=<Zv0zbdOg#j2O*O(CpRw-529?<HyV^o8Qgpf5O&^=a_Lc7GGTzSBo2wx`pE
zoV@$##mp|@lRn~^jE|P)KE^m}W^Nb~<#u%21{=@L6>G`P3&8<DJ8Z=T^b5N2Li#d$
zEHKxP at X13ka;!B5oO5pXrDwlbvR1OuCeCI)G2#ps^gT$^EV)B1L=8o at 5c@N8 at fR1G
zEU6!6ah%mnmhP})o2ONVr>eI_rL>Q`ObR*eG_B at S7Gxpbib;?*HYDKT1Yvp02(YlF
zOA(+9BIA6mg)OFbQ=1jgy@#j&!8yrDFZoRx`x|THW at 2aAtjS<A(R at 0(EP)b9A<8by
z7x?_cf<QKTMax;#n4N}i5aJ;u0WVRsWkSNvaqAqk{ZVrT=6ri5Ce}8&=S3|+quoYP
zt4a361$x4qA>VlV`$rYppYX<9wkg0*XNY=C-Xcqy$UiH^Qe3d5t4f;oQgGlrhcRHu
zu2+P&1A<euwdNlAe3i}ZqxFh;udO5Dc1uNX`8%b7=Yf0^VGoFJ5}5T-4VHPz6w_N0
zIagXvpZ at a_5g+G~<-M*SX~GDI8peBAXwoSb8`PaZ8}7CsFRJ3EA9x=hjH5pb(rNB?
z;4y`7oL`zi+~fUwfA2WzpB5)n0zEDm)nmV)U*NP%w{6Et=pPgYZ?c*lyfGIwgRq@~
zzYV^B-*nNsbrCG`|M)7w$AU;N_%rk_y$vVG#%G}){sy%fzxjcbkLT3jyS(?4Vs>;-
zn8P4`e0QAsvVIuuOd>`()NdS;O1{FVkOqWt((&(dgy~i+(EH!Sg?uS;Cvm&7E1oiA
z&Z>)=SoDU%Oz0=fhlAnO at YRRGkJv_Dnkeqr<Oy*I!kFe`VxlFiJR!g$xuC?v=7nWP
zBDpo at 2Bi9$%#}g-oe8BCqr;DnNRuzoFV_%=X3Uwq#0K^XQBZNk4d#>}Q0I#I^GC&O
zQehm7GD45vs6|6qI?zFl#U0jTU}8ncR?+bl4pL#PsJtWwz(hxFC+s!ylh^3-3$r3z
ztdwAG2k4uIn-}bVW-|Nzp)^~FH<D5P*G{}foL6!xT3~$w-_!fE=kDo=z}x0gx^t@>
zo1Sn&eA%aDZ`D3+_xY8eKMK)$#dWUnx0e>}K^7g^rqg{FPyizNfTT1J#`%wko!vlW
zP<}*YnGkoiz<|7J{rf3s9eOhHpH$G_%Xigvzgzu at +I}HpaK?|gz;{y;%0bdZc&i1i
zcfwD!`~jCfD6f|4!ep$;2`yc^5Wf7O&{R!?vEGdY|7hPkl8nE4WtWUUE+n!XJqHV4
z_aVlhV(KXr*SGfg at Z0QSf-Cw_g)zP(0=;{<5q^0utmR;&S<Dz at OGpidUODfI9Tp)j
zAjc3JmO72vWLy*Sju8VF!Lm(zcG<buR6{XoF*ybY*Nl`4%d~RgC3j*WA3D^WrdF|W
zavxmI_+o87SbPKpFE^m~#0p|~ma$HYr=YrL5X|#x^3QjOc@#OI)P&3_xSZlf$HT8-
zj$m>oEa4`3H77EZ4X4|vM9T#QiPK;M47D&LZ=)!GP~D(@C26-ZWuTP&d+8vjq_{Ln
zf3PTuM9v%xNft_<F$@yi;<RUEF*>npGDK=2TdxQ(Iv_dZ>*WR8sifH7XLE$$fCryq
zRPyIuaYeb|EZ!=>VHs6_y{Wd5OsY!(-twC-YL4MM8%Hr{(smc(&}oyNENdGwt)M5G
z;^gn3Z}?72t8`z8!r{FbPG3WNb{Wsa1|O{2mo$X2yOfSe*6=CzsT#^bby6!%p#eNf
z?>rS1B#&$52o-Sz;w2JDU~>iVt4%psBpW$P<;@p6qf|99+NKU8bo4_XJi9Gr$bc*2
z>Wk?2kinn<F6r)!L_Lb`H)jnI&^XJ)JieKicEYKzz?1VSnF3<uSuPB>Ny=aV9_ at 5-
zS~&~NQc!}{H~ds=(@J-Q4<B)fuJi)U%|>S$CmsJfy<ARNRv0?XJTJ1s-OY9q+I<L`
zJu6gF0mO(x(wuqa`#zHyswCyLSNedG8``nPjEtPXx*9hA-7qeaV%~3Xtp)V_zJx*s
z%CQlNn8~FF+-i^-KN4Dc8sHATYJE;hlVVTF?w?wD5zBMFwp5K8C^S$6QWBgfDV+!$
z3A1ETA}_5<JJHrz_|jXJs5$miy(f1b4^q_s)OR963Cfq<6?~Y`r=U8=KjNNp{4xjS
z)I5wgVm@{np=)Pb0%=z6vL(bQ{oYx_a`1zL4dX`gEa4*A)<&t6188moQZ;psr&h6p
z at Vrl>Lp?n5Sz`6)SwQ7;?>>(l1WFYlZmSls?jQBha3@}nOLJV1{%-081?ihLy=b{L
z0~ebMM{nv><2+%LB9=2H&5qvP`IBp{8raWNQ?#Pw{CT#vnRaD~SIo3r2yccrG%cbD
ziWhMCe0L0p!|4+#a;ka$FFZ8W<5?z-rDt6vg$mWYaLM_ at TD3#w!{5kN>q!c-G*5*T
zFW<@*2u8OXp<l~1T0<a6ip0dmc*h;3=fM(2Y1Wn^<9*xOVDjj*3sgD^SEibT4_5s}
zZjLUv+&i)CQO5>kfJ)%MtK~Nkg%uT4X|Ia7<4i{yt$2b;Hagy6#Sf<mwJK4B)_=P=
zmF;jA5snV5X6q7#l$?lyS#yKny8`oy!J7=&ejv6>%s*KYk+6Z;qqP at yY8ix9FeU#5
zgai)91Z0*RJDy}sf^#{gUv95?Ab7zAo6Hr6<F)v)5U~0K!xi5-5vp7K0=h{{b{1Qx
zvHa~VlL48^h>+p#CV(;5 at 3)gC<N6UBe^}U}OR>2bimu=uy0nZjti0YI%j at 8(yinED
zijlW{A+P*#<BijDVhfs5Jf9_Xj9+fsB1k$K+5~*doqbU78AiH1 at oP8!;E`<og4F*R
znuz%XBZIb9h+mD#^=IGi&%+{`r^(X(uO at M-=4$Ny4bBUbLImws$tg4xjmK{Yu%7^8
zwq^q4+G=6C`MBtK81u&-i|^#O;u&kimv3F&%}r1rwjvU%Fo-lQM|dAD8SgtPz6QBV
z;Dg_Mw at 9(+3y at SMG15riTDPt2Wnk83o4lD&=4ft1Y!q=Jp=QA)zv7W0Swkg^r+52{
z5c^7PcuByQPhGcwJD*>}g;0p)i}T)A%^R}sWg+%Pnuc=uaS^82LluPZ6<w}X(Ny$%
z(Z9!3Q}zg3xPp at Cgcq;`IDoCW8Fd+|YgIViI_0#up9E<HD`|-JFr8vn{taUU4#x+i
zxT=$+QyjVbU*o;M1Wq44BJE_qM&B$*zFyz|;g%BUM)JCF=<gxi4&^QV1HSE=9^SVJ
zwYLQ?*n1#(HAfTY?ajuJ#fD&d`5pSo&pr3(i?L!MiHExS0*bw;mh`r at oCIz8mk5$>
z8}g7fHJ%q at qkXhrrtOQVen{P+&c0{~ZVeH5v|<{k>oLGIj4;!KiVvdm)m_g=N7?G}
zd;k0O+yXaO<O`aC?nSo)*Ii5OpfU#*_3BIBfG)Q7?u_c&L4S3O^}RJ^Q5w`UXwV~#
z?^LyAQO^a+--f1ENEBR at 7Dh4~-z_t=cX(vBQ{uGww+uHMyNxpqu&rXenDDe}1hr~z
zX{t at S+uP&_ffLj3d(n)kN^KLpX7n5!Uxn|-XQHw at e$03CqwZVjQd~6Kf!@0pqM98a
zCbZswfX$pmL?xpiC=2}P%&G~pLF0x#*)3XZlJ><*%p4&i$)pgmI_oK_`;swo>ulnW
zNWXR|I{~)ly=mdMD1APyEnEv4D`sLsS3qJtL&XCPIaEA4IVmoofznQfC?wa5O|b52
z?k|4`d!U{AH{h+r3enJbdg`SUm9mj(u~T)ow}_yQK}t#qG6uU#HO?1w{~cJRY1hb_
zfQ4e0f)QR|J|X7KRgNsIT;BxK6rv at 9ZGVOyk{DwrrrNPvoWbQOqKg-GlDx!4+KC>H
zR01&Ld%(*MVx55zJ=zr=r4$~{#ALn=7yf;koe#q>DN4;>ij1Kq0 at Q3|e;YkuO+eKS
z8-T8QuvWEivhss^kZo_Wl|$zr)%Ct*nzyFbIlwN$#g8#*c!O9a5O+&*a|16-oTK30
z*y7~x4P3HMRI&inLW!s#1ok3uZZJi>Y|2A_uo&%)n5h-VGN)1F$HiKc7n1yxoT?b`
zV%X0!Dd5V9w2&X8LX*NkpHpKIr}%_krc6F at qlB1>28G;D&CGHIX`@zb0<1NkmzWEO
zy#$jWx1%nrj+&Sv7AkYBth_j)m*nRGjVQ=|DT at Noij9d8m(-y#N029pf;q7QMN~@^
zK)_-X$;$H}?qD1_V=plxZtU?Qagd6(ia>4304M83Wg at y(;L><^8aN?RyXMLrfb*4%
zoP4paL=ElVyu#-c-h;z5X>#!ADv2W at U8{M5Or1aio_x9axq!A at -Dj|TY;Q7?ujevi
zfJtK_M(DeOY@##P9~PH%hp9FaySB##+hxeVZiaDdDTA&0>Lds<>@pLS$vG31eRD>J
z%p%P3xT+E5jV66WCHNHpxSa(Rq!_r^*#a}xZgt%>sw^0^A{8d7>wqme)kXz|YG`_r
z25d<rHgSOJ1Mz*|KC;+r^w(L{d&$%0{KL*=s?!EdH53K;v4dREpBD^nR;<%YNA)pP
zIIXJ`HN4HM>kgFb!|o-76W8VPXaI4tf8)}#ATXYHzK5~e=EXdF(u at vshn?jP%hrp>
z&T`z*2D<XwK8H<H`K|ehFUhk9$g?gC6!B5E%;jd&L-q5!TBl{{VmjQ%+*J6s)7-TO
z=YQ^gZI?;1*f>sQ?o7uDV>>1T?_@@PYN05{@e9b;^6auxe<zhHJ$*?M<9iU^BuWox
zkW at Q-;ITMWEtY3p7ylb9SL%WBeBD$r)KC{|?t_%Z7#$z4WzMf=)Gf~CkrdijTZksf
zjWTQBH at 8DiqXirHGTr%xD1oo|P}OYr;Y(hKn4)iX4{nNKUdCKKQ^^w*v38fkm%b4J
zC$qe1VqIK#<{6dZXX*$5a24tOo43hxKvCMpbX$*ps!qeSAkA+5NG5_gvB-k`a-=oc
zicW0){a#Q05ToyarHdi0l0{*e=XX*}CW6 at 5J#%RnH=D`Yioiy*gdWa+5Qs#W(I at pJ
zzG``MrOA$ah=tJs&n)i at 9L|Y*F*QXI^^Eyy=W`^M@!_&OMcRxgb?lL|9hO4Q<cZ`-
zptZMyl*k40N`pDPjJ1BkhLUY~;ld}-9teO3HF(F6Scj#cpvW-*Pn*k;fm!jwz^)!G
z-ZRk~mQ7O6F)c2n%q44qE*=2$U8~uV?I$!_SjoltGNG<BBvWES&N=)g25O@~JX%Xr
zgrBHaEIEx72D=)%t{DEa)UslMVZug$D at e<|eqTa`2po<CxuZK$$BRLtJ>|wqbIA!-
zu7RORYa=PwJ94 at H)r{slnykF>O9qI*HqM4>4QNi18Lw=L^5Ug5)fr1CbLr5J!15KT
zSFO7|J|cT0q8dyrkKZ>0va)r-U*&|<2kT^v{${to6xGqmESas;WPFNJq4 at __B1Dg(
zRc{j7vaZ0_W!+Fz1o727KmK<74pF4<zC<ccJ=344J~$FzezU`)C$xQA7&=L6D>W6C
z+DG)Eo_Wek;8&bL^)23ApK!5ymD!RAk^zGuU!nJWIlIHHVr}7k)v)#cu8c#;NV^}5
zG8Wq-{q=P1ixCANO;+c>R31cNm{`D=`9v!HT!lKVeYDILYGP}XnaQ}W1`Ww)Xx<<q
z4K+RSKn_*kTYnaEl`P_1+VSAW+|>tk0O(Jq$~VJ$4U@%YEkM5P3)|VRL|T6J>3W_O
z-SI$E^%~fN+<#JBrKDhT5*bEkk(Oj#=iyIOmMY^p$_%FbZgrnE6neTMbFGOZ)ku^Q
zO-`{14GV&vgM@(om^`jC`8_7~;p3u^TGh)zXJUC%lsdm}n?XrLxsB}qvUa=>=&Nd#
zl-x(Fjud$>)GxEMO7t^_dc%Nc^yJ_fjP3a(Ro1u?$^yNb`-fYc+ at y9gpO?P6Ksb;T
zjYFB586be2AWQ9^Ol}@ENw4a4XlQ7rrCMzKSh-G4xm0Df+)U-YHN(=U6M{aYj~2gY
zko_TsCRpvfnz_nRLvn1&#Bu#A|3A5lOfoR<g0U?HzaKxBgDap@(P7<~Jz4#V&4y`e
z4kY+}bASsgx;m;X6`Z~49JnF8*lEs6^)f#f=g<%T*Mn$ae23Fp3KRu@&hEN=o=5}*
z4SfP42~DCRB0vPKXOOtu&K9I6fY-`d<D<=5LsfE&%k2BTi}$xW#hZ!BI89qtn)qJx
z%&C=~0vsjWwTPN;QGe%$zc}qc02pXas^!&jx9 at A6?J|S?I)z^VH4o34z<Waj%lSqd
z8l_^6SUds$kL2W{arDyp5xtVniX@(UD$s4C8sR~0nk=&w)onFQm!%?O=S}b}K#e~2
zG<du+ec}^bbUQiBO5H(%pd%kG#V0T^>3^HcY$E<|Ks<ziyh6LUxHun-qA<alD^d~u
zxke?NeDLg`6!3JMyI5~6)NOU}Mk?q09__Z^+TmwbQIlBSDH~Ld{-bH8`9E5Ku1Mf5
zD23_AxD$p;n~Y1<yaf008x~x>+l7tY6ist;Ml`~<Zy>kJS0j6!RKnMCeN_)s9952X
z2h$0;ypJ!-hr@}9U55FVQV=Glq)e_yUrn8-?#OwWq6CQGk*pMf+)ew|Ul7MzCR5FO
zC4juJlTkqZC9L5((<7z(tcLb5(^jLQ<ox@}dj&h{a$__V`M(ozAIgrkcTSEb;Kte6
z8HZYZkd1-@>XUJjQc#ePk%=ntxIa;T5K7w9qB**8(m7PGI(SJ3xZ(Uc#b(E;fcgwI
z?oW6j%|&NS-HxtSJZG!-{(j*1a*c at I>w;ZYl2ok&Exj1Qbnj4C)XgKBsnYwU-n~6U
zEoM$VA&kSJcNwu- at +o*5l|bEB&u{b<2JI_ug#u~GM!RqN&U=LySW8RKDz|J<jh7mT
z5Z^dKjwyepEcH||$K+3xwKCJ?VU+0QgpM#OTqA at ePNlOsprjH|OCmW(yoP04{l&J=
zMj-Dr7wqot?o|K$t at Lx9_VYNcF5t<N`;gvro2eo|MWs+|vOk)fWm?#(I;Lh<r3>t=
z%~9qU{Askndh}rLl(Cw>e50DV)yrnhK!M;8%(7^rC41k|&NzMQ#V+v<yW&lynX<q|
zVM*+b2-#pyZ&pRhctj=SJYx4v?y(f*E@~r(Ot8X*=JNLnO^*pgogw9M31U at Us&m&*
zLXgBx63pk{o@$C at h@RL#4KL+=9|tGt*Fwv+)4I%wS5bR`+ at q-(h%LWp_s5 at cEscM7
zj-~tRVph{X%xq!_l-$JSYVpTmNUGES$nGsn&Yqpn>8 at X!v>_KA|K<uA1{D)Dzj at n7
z^(9+4V3}p%7)z$CF-O$$tR{`xwTrIFkWolBW>Wxj- at 7LOygM$s#P&oJMn#wBL+iSk
zdJgm7rI-~LgeSO<xY#1pZ#-7)!}Kw0Ev at wI2o`L4IXSi07 at C1d;opO8T84x%pS-%j
zMRktGh$hQf1*s#CIeu}eiLcLalfkx at M&<Xm?8vjs`t$xC|Fek7nMeSvZR!_Fhb14B
zx<3KUpY#&iX(#CHFH+`tl=9x@%9B#)w?|J3R4exU_T0vIu!BR;0hU0#BNQ5^F3{c%
z+j4^HS3C)OPfU~Rv{ON&=One=vEtG3SI}0s*m at 26Rgso2l)8^e^x9?<;AZg528fsA
zRX8gjfHbM>@8mHGa%rY{-p^(qs8M%T=dzOENnh7+3QtNj12L&6SlPd**js4Wa+L<@
zK8_4}coZ&Y6Yhf~v at f8Dr*kztZf(EdiF&3*pL%-*)L_0pC<k2`5=bsjkS_s;I1a8E
zG|`In0x!B5jEyk8ZTLvC^3fvyz1#Fshk(?=nvW!q<k`qlQWSbKmfvPJcqAh+l<v@%
zs{EPM^j(yUMXpA`u2v2YlX(%YB!LW|QN87fq1SpIpRl at nf}ZPBL at ZJU1V)NUt#+|z
z?D^ExW#;za8r>Ma>fDJ&{s<hcxGjJ}Gc7hJjF4?et^6Q=4NOUHi}m_?`o(|t)%xYy
zNk?>^FOo|d4%Gw|*%a6G{W8UD!nL88o;@=lzfh1w*Kg6zSyN(MXQkDRJnX@`y5VtU
z5lbsSd6?anE;eDFx(QFDXMrd^gnBSzOb!9uQBgczIhu*{$h`^Z%`31bu+9jWd*BU=
z!(!)7sY$zV?XoKXn#1Tb(qDM$pfOwhY{v!y7E(;8I3{!ujmC$%0(}@il{dowPDVRw
z5<)1-IZ>9M<+lQDP(?&JNl{eM+OYj_E&8&GbFk3C#Zwof#7jXXA=@(R68q7^OS24M
zqT&3(!}kU+)x#S#$@|r@{^WTeV5;fJWfdD8ZMUg*8Q{Y^7Gy(vew0r6D`y&4rzWR|
zW!XIur at c89H>3}yy5_iMvSjgmQtg~4S(>}hv8f%qQ4PCQK7=PEdsb}ep>M=^wPIck
zVs{dReAqj-tXnr1 at J=9lhCeg=z>-^&Cf9C2P~L6uC3Q&rg-c){9!JzA5#!(S!zGSv
z)IS!YR*kTjq|B~9!wgJ^DEx6Jks-~ln!xy=m3Abu8Qy*$a~8W;x=LcY)s^B$TMV6E
zA`o(%hCkSVDQR?;sDDtg9(8)>u{-)<v73*Av<vV3Ym6}vPuC?J1l$o?!24JGQ2L{W
z!t(=SrQJg*dVG^NTxD~X>h49^mc?xxK^{xy)Z4AE<8lm7YcUz~#SH1oBUSfSUo<Pd
z*4yd2nJng%?P-nNV!Z7p!QJCgMb%7w;FZn84AJ+K3>Ny?3Gz-j=x%QqQI4)?go$ut
zqG~Ur2t1KK0y^Cm6i7so53 at h)VLPeIvk$i{`izYy-fe at cToZoZ+qp3?TTOEt(ujZ2
z6MTd%iFbY!Zr)v*%PaqV%(DuCVFEqOqb%}PsZgZ7Du at 4eX5$JP2KEX0aFi`F01JN(
z9ZzpyPn%zk`(94EKzavQpX*|oDSfx?0}CD$T&*O`cYg%cbX#bayel at OhnA-XA5?9w
z%UFu==0h12KAMK~Zf;aBu#(bpTT`VWqx-6$&=AsXHeuF4zGN|BWjBp$*F2=3QQgQO
zI!wgwOs2tC2m9vh5@$mn^5ab!YUZT)37H{nPE at Xl`9Pm!vyd-_&J+>~X*E_|o7LGb
z2r^nC+-NX{SnEdWp?xmMSC+|X$Es?)R%H9EE0CY<T)*CMIL{3uSU8?f+LmkY)SI}q
zp7=cd>5E2OR)m3olX5kz#l%k+CAkE-MO>kjs(<Swu)w0U&iISQO)JuF&>p<|&xV*V
zC|wSR4!&uc8?ap&gnA5mlnaBan$6K^gyHTJ+59k<+kW0*o8YP*Pxo=&(w}VCAM0L4
z=Y{m6v=t3&YGSK?HR$qQocuy!{49n}5~1fwR?to$Ga9L_pjcSumfK#CNqNd{@_fJG
z20^dk)-a at x{g7U7LZSkNZtDLm%e1;#F2SK~6*F|d6WjB6)QYDU at uOwksmKQGvkO2l
zpTbm&xtsFH{R8i#ySgwqVHMYssD4?)jxi^aVVZAIc$r!hsQ at 8XYDoSkz*#pQ=Z}e#
zjS|FvK>xtrOm^FIMZjIsZ6`xAp^^$vgj-`U`NC9Wd|miP*e7vIk;Iz`6vOoz(2zo4
zLJ?jy;f?2#1NdIX5~q)^W=2_CHSn5k!(1BM7wLnA at qLo@h7IadUZ(jXGhHuJ*-(Os
zR$d0X3P*W+MoV}DL!dv&?3xbcVXj8p_QAT+Xah-i?tQmtYq>_8;9 at hPD6j1!)%ivH
zaNul_^<)BzMMF_|+<bp at 2{U4W7gd=+h`HTV^d-0(O}Ped3mi?bpgLQ{P$YiOzg;hS
zyy8EEFODGCIi;F`5=JAY+L-#}hGMZ>;k*l-re5 at +_ny_Hi;D$|K4&-io4kZCP`~LX
z1Q`D7qvOIpOk9aR1WtYEm at k2_#>*!$t;;$o<vDTpx;$REzTc9j<fcmsB_#KE>~K}1
zAhUSu<oaQMFBA%ROpuXs-_3A9hl)b^+qFSLo5a094)XuidVXp+g91Dya3S1J7b1G!
zo7z`A$5x^bAVHU5nt(gU)nD~I$jSe<zymSJS^+MaD31XO4+jsgB%_GV1MOixy+(ra
zU-{<;i4#uZoQR!%2aayzLWdt*{b>gyljRneomAyB)a5%ry^k{`KRu^8>4ozFiCqRa
z`kSSltMXYj7cT3|cBETPM}8RJ`kuYx)(OUCR`?^n>4_&g?*es$IvYLh8$PMD|E at x%
zWwR5I7mM4rtE+M&+i<TX4)!Ex4NRX0sqd=Y1Lw0i%4T%0dV%sk+19jiTvR1Nh)<Ab
zZRIFxZ3Th<nC2QbI{34V0M$XuTK4i|llemc*!KF$cVhI|5SnRnRFMO`)8yst!iy{W
zOUXk7;~Cp)Eg^A=Ag3r8b8P4j4n#b4*NwLdjGmDl##D?MK67Qg%2 at V%k*+7TINy%%
zDaqv5wQpvG at It(DtMwXrhROGptzM7IXx^Lt%KEl8o{p_JSnE?-7!4?SubCL0{!`oH
zjMLQv3+axk8$j;ggLYwQKhWLvywY{S>Kd=|*hXuL55E-m3!64>`M~=m;8??c06!b|
z+Zrd%fWgd2Z7yGEP*Uezm%uMt0Ps2W@*B|S_d{c3lXK6yAtwV)HMK>}S(|`=b0Z-1
zndEP!U>P%5DK>U7CzE_;v~=)#-Xx+ny7%Kntjly8OxGF+rL3ppau__XfM3ibBruXz
zVsg+A9EqpS1S%!e>X1{g4prJfARzm*D1BLfBnNWaP{ggRBS>I<-6cdqXl~|(tE`0I
zo&Kr`lY*xoi>+#5bTpaKVhUyPy>sn1oVVtp{VfxxPdUznmB)9)=*z*GjJzAJa1vZh
zctm)QwT11 at Dv;<Lh2gt}1wrW6+0G{a6FuMa{A?~;P=Pux0>W3j$}T{cA;0j8uhYc-
z)&7rx;z9eZ at N!2dZXY_wp-i+#v_Q0;nLZ);Eof50li<hJnLtjz7c}7UkK^StP<z1>
z*grYCn-sVh1g9?~&gvEqSi0+Yzwhx*CL!QF=6;O{=;o at Xm9CD|JYX8TL*c1qv9J$K
z`tmOy&m?7&^9tn640z(XhRlySp!^+9zo7#GF)=#Aw6zumnR)joGJLK8m`On{WPgYK
z*R*nfh0x}d#`jyW+gpK=x=H)dIo>824wJzE$(zeHS2YY(uZpy;d0bD4BE*sA%16LD
zQp2^}0k{>raj59w%3ZFQmpXH*qCxb;u&?zU6BvWNbJ;~YY at Ai(9m7eS!)E(x+~vtu
zeK8uWYnA#>ykJ-S94udagJ(~EnE_L`Sn>T#>Z_fJ at OI-J0O0x+Hk%XgasrCK4K`j`
z7HN7jM3AE=g26qWhSM;NJLziZQdZOGB2ymASNuWZ!M at fj^IovOH!FLT^G8Piw!jda
zUZmio#ZE9v^vzL&pk2#Xqtn><z3D5Kx+{OQo42P(Ev9{j!Bv?}iF$n|<0<CbKNd#r
zxvkfa{`h10>+Key#k$OoGah at liYq_A!^DROMr{H7nyim at _7l3U_0uAM`&x3i+iisU
zcmo)J>4aq(L;b43M0h%$>FVo?)IVA5&?HeNxN=2GPKNuJ&~AqkLP3_rW{{!ET(I-u
zrsG#LK;?Ur`Y{+Q&621<x<NfUT2jz2vXN<-$J!AYxe<Fz%A}4;(lEi5nM&)IKby2;
zPu%$a7wf4wa=o*2grJNcaKH&QdbV<Y2*oX5=7b at q`<{#~Fg8X6o5aNw`nXi?<9ocd
zwuKK=gAA`z`Tbe%HK10rAkvg;4`t$X8~AI>ML*i{`2a#1ndxbQjmTLI9TyFxr7NgO
zk_s{g#)VV~z1IoL9(<?geyG(_75Lhj-a?=8Tv2Y&iswETJymoMB4d0fs&a^%ik^qr
zdK%gfh6hOR2ODe9_!4Lx3a^onOt)@`F>;^l{oC5>3C7<1AQICNfkXJG+Wx2XAYKML
z`G-B{#fYas55GolYj}_SZCl2H5T6<`JtnWkeH|j|abDg{Y-QC+z2(AI&o*BF%b5Iz
zo#d_GJs&_tK~1v1SM&ljSSdX=f?E;hJwkE>2lc at ni|<~$fI?_DQm|}nbo%aTXa3=*
zCa=~;4maJHNhB8Mv2&<ta`3AU!f{CPZ>sm-4 at h?FEmQ7)gmZce-5o1k5d5WX1BzU3
zV4P2(B?W at fj9bcm7G1UA_56UY-=_|99hFsV&r2rHgg6QPMWT3nioNhJ>ozpd at qU&y
zlH&MYwP7nFIK(m_F$}M7^95?Ot1L^yFLka#W8V9tVG~cy);HS9*UEk=;WcFRo at rdJ
z_RhCD(b62iV=dlk&*``;wUPZ>gFbr=lVxF+OkkAxf}CUMjyz$27g#RqK6l5U%WORe
zqr>Tiwl#?x(R1%A$%1nk657g(S^kr7XdL`twefr??aHUsg01AuYtWc*Xqk6q+q&;e
zaT`j)y}rwRzTLugdJliCmxHdLfmcm?Y8Yp$fsw%L4 at wLU`?xz_kfZ|;Xn|lg^}@W=
zF#9rj$thrjUdVJu=H<_QV8n>fID?(wj_+Z94}^d{z at wu#X)qObaA=lPx9wdg1b^JZ
zLyJQ{Ll*G=qq at Oi&fJ~D0!M$_VtfVbm@~-Oo9gl2yMS?JvSOb7qi3`}{w!-3Q`!x*
z7;mCr`dnIJZRBRVYoiAem^KL|kNtx)O=KYhD`F_U?Zjg}9{#q97cr#yjPCbRO8DLJ
z^mq`zR*M~JCpY+IW&+FK7~vIi*&E(Zk2f|{`oBx>x}($8tAZb+;%dnbe#?1)oz--M
zrZ{^t?`8mj at A4$J$vsFWcE&8GA$@L)yS}M&hlT*o&pRmI-=UWB=TX`NZB8($gl%j2
zlT~9pDa`wMBPa4RArlQ+5H8yD#Z6z)(yck`AU=HS`6Xx*-GRJXK0xjkmCwEe)HwLC
z_`Va}wf)@W4x4$M$%bX|>Qbj*QPTt?%BC@^ZCtF^-{|NF-0%tM!SR@}eTqK0cRR$f
z!$V09!w7F^OkX#hXCi>TNkBwmuCG0E9Z(mg`r);lGs_ngLOK at a&S^VcUT8O^mAXbv
zOS7U{?awnUwgr$9)!H$X45!hJgsqP(uH#UD?uHc}83ux$Cs&~@(q2h-BQi?AZsrPl
zxPLv at 4GIL8G*$P*cp2C0qRcD)3%?B1Aw^bFS3hh>0D)@}X-xl=QSn!QuhT1jaQ-1*
zV?r^YH_iNso*n3q34EL43O~04R!ANvz9bYCYZIcME>>#3xmp2>$pmo^QD7r(9xNfM
zB_|mfCB@`os8<i%g)hQ*n}5bq^GoK<C>j>jt}3Yd;dFU}tL`pYp9uWM-eBF`#`1bq
zVgs!1*Gy((7dP#8g-YOK9R4wD>tJyJ^#42rbnF-QyN3M&R#BLT0-bfw_&Vj*wQt4^
zCK4dIUK?V?Bn)qaB&xGhz8>|W;wf at 06}e!#$;c{6$!he+0L|Imyp at F*o)HGDeX9`D
zNP(C})2~k^(@*ySfUUVL{(!>*AOFay>0DagMci~cXiSo#3l6;U%z)H)7O}Ozs>r-l
zm at 4f?sQmnV7<hP5F|m-ZE}7<^YJQlK=0C#1!cDkR0q$yQYP}*)&H^T;rdOqxtpH_d
z=nh9KfjK`XgE8)-PXU4TTi>AaA-BEz53Qti(><3eOPsT7+@&T#lqJ-_Yb=r&c56~T
zJZ9Hla2qwIqa%~~^`1g^G;zZ at HsMu;nYk{;mWacWE**stWifL)9_E*mMk0q%rERqP
z9KrHq=^a}(N?#WVmi5`8HC;D?E4?juUz>XuYP%n!BEC5qE8j4TXoA~TsaxUFEgz&t
z_+|mnbRrb&;wLT*Vt|A|qwJ+x=i~QEEBAN4wG2<}hVk&ZeZT)47S6yyZ(^2^55sO_
zmS#6_)Ej at avhnv|F;mm~J`KLC?4NMc`c}=|FHGFBDjT4L)cy8Uy>bKKI`8AmHTk at -
zGXxLf{1vUPFcFq&&|zeXgb+bvx at +@eraGMam?TP^zho-^??hlK8L({o|1}sOL*PJs
zHiaR8b-4bM1PUPPg at M6N0sf<>>{HL0*N2SEvSu_ZJMtf!|L*$|kvRMh1NR>yjtRmn
z_p?{*ec>wosaD-*rJ_l||14ff;x86n2p}xfH6mdj<uJ*aoiHw?zzz`-lVf99g|bpf
znUj)|veU|U-DfSJ=0(b+F88;|I^sMjtIt-B-#e`jpC781z*GcKz${RHcCP`^E+}Tx
zNHXPko-s at h@1y2EX#t-q%3?mfLuz|4(KO<}HaRC5l02A_oRA7lsfu(%^07m_<acUr
zE#{YGF`>~DYOgh%X)B5}Ij)S5)YR01U%#-##l_c at Ra6Sb(u-)2tOvAd`2X(UqJl^_
zVp%ntAG=~jDqR+pl#s9q_nzVI+1Be?*IP`|LM}u49MBT<xO@@PA%=Owm{?O?9rBPk
zWdgDf*oBVP3B|G)6wSb21IvpfQ8F-yM8i&5X%xir@^Y4vlA6te=F=0`dNyF(nxpUr
zWt%sK^|dOZEMd+Z;-q5dpZR}$eRFi&T^DYH22Io0HX7Tu(b!32+eYKGO=H`(J+W=u
zc5)|e-}n2zyY9MwWv$;#&Yan2pN(ffdk?NWY38v84g%r=x at _#+pMo+pC;@>lTa_XH
z&uGf?RVC3HH5z3_ZN-~p1_TraGtkuFgO4Ed3k4(TmWi;J$lPTJ+Xb#S!J(|xrm4ml
zF+lKv$r8M?6Lh>l at cqQ(<d2k;lI6+!m62N)Xg at wrBK)t_tq8n<kCSC+h76c^2JC^N
zM7h7EVdF*w^lV~ZzkbDMWmO@{dZKz4E#EpT2 at igN1d@<jCR;6g-a5s^{pz;!Er!cg
z*j3_nuYxLBY?NPKkAjjMPY7m at D64afiUgNhgLolrg{vn6;ZM&W+crED9E^yJ%%=|@
zK2*DNtS)Y^Pb!`;u|WF=hO>lBs`C2Fef=Um-E>$}U5%~rG8g67i3rI|ntgxYvtaw=
z!s6y&Eh_62#I`5)w at WbH3tpFSVDw!+g&RTEwSUvqMzD|6B<BVJJ1ejRyY1gk&MSXP
zc{V(h5d8C~NlCSpXjD5Qgz~VWwMp)0?WZX2CsIIL4G3lp^;{H%!D at GYg^pes(d=|$
z1 at c$DLF;cnWJz)F)<1{4nc`e5JL-~ezKC#Jtkm*P6BM1!W~3v0y_jTKuULm8!hhnp
zYTl8idZL!BI%szux%+kWgz;RK5QRfJ*N7SFb>xmZD%w`To7EmuiDp;pyb&zE=epii
zZ-1n4be37sh#rQPYexA%e^`;<f4!@fhNAksZhUv=J#)FIm10KS5-~k- at XL#9dg4L6
zp^EykE~ox7N7{=%+Y1mM7D(F?^aA&~H_6>c3nqkt%EN`r_!4(m%bvQePdISvz$`p^
z>-u)+gup}R8MgxU+=nhGT0fg=ULjKdVUMljT at 4l0+=wj6!nuO37InQGc#%mZ<!+6k
zje7|r^IiYtWElMxz%b-yz$lYwqd)kP_I+U&<tVpusKlK9FpTPM%bj|(v-q}^(Q+{*
z<-u!tf7)H`M)~9Z4RWsMGA^Fy4e^5kM$l~o49w)f_l8CAwC^@oQW2s7aF?VH6{4iw
zn at c<EXBmw|#4PS)Ly%UlZDHm25p`qN;c&L?@`DsAXa=?i-GO|(M%<{(jW3#48Qrnr
z&++#Yob?u4n$5S0L5PpYhn7r5`FK%ku37_{i?Ly>56yuftWMXGx7YL{gCor7FP#!s
zSYxONUKI;*A_BJk<uoo=mDV;>(#)jkNAU232N1**h4yckoV{DR3{18y(KRBU=gU at F
zcjGF|m~X(3jFGrxc^#eEMCC7b7`4V<*7|~$onpTGb;UD0aTN7hcN@>yUeIZy(}xY*
z8g%n|38|?Pmm7lN*6d4Z+M$z+_ex!$m&eiJdvF=OB!9BuBq~nrdR(33yH4VSpKH+>
z5`A6YifGy4kh;ff*yp-x+7E*pk8UP7(p+lV5*%i%>>mTHkWB3a&!Zbw9aq3PciLHy
z;b!qLEtV!kO!s1^S=4+z>UPm^mDOla<8<;Nuh>2`R1I-bZM6Pqh2=o;azF2|#D7s2
zhbs^qG-|d~Hh)IP<e}TqA1%B^K|r#}HZQ1V_mQ!8;f#p(u=3a)n{JeXs<R&(rbZz=
zFxz=oL!$t3{(L<Nll0!m(hPIPd-{eaq8G0b=2eU5=LZHGxzQ%65k0N&oQ15^zyt?R
zt{Y*Flq|<RJRa!5y(R2)`@!9Lo*hKmQr>0N;gP)3xmaSj*}2)X^AUY&>wXTu9Nr!L
z7`uw<ol$g;7Ue4GQi`x=?2GF|j}(q8(`MX>KAGsts at Wq(J&VWZ=})r?%r8 at 0c;;tR
zL7Sr~g3=4C+c!@Z3^!eA%(4bkrHY5#ddS1wS9mWOT^7EqY_j#6)Ubsy=8@@hTaCAK
z5S}Yi=d4{z+0U_PnxS5I!A1g_vee{|U|0wHD<?K9Bt%em2q4BrYrTM+g4{5lrX*C}
z;%vB#k|u+RDGmB&G8-u!T}iC#6r}<2sZWA#?+)v5I{|5o^ba*jV#<NcWn4bCkJh~l
z(q(#MPYrt<_vj~Xk%J5C36LYgzjmTj!!AYJLSDI6J|S5>A*YR|1VOHZbx%lFRXo)Y
zbJ6Ky at _3zEh9|9Jhk3ceqM?>LGGvh3(<&ntaN6FRe6+v|FdS_<Wu>!+WGSn1^9{Q>
zZI_Th<E%yq%`}+Wc at k#(W}zWeD~)x}-I{O<k^AgI4UEn(qBT<6;jlu;4?9y)ipq(d
zz-L|_2;E-mp+>!0SF2N6KH(aW(m&hS!e|JNQ=jJz`o=uU{`7ffPO at DWoUGW(*$Eh3
zyxZP_9!hHS<?2Ei+4S%Ns~vL3gKOr$dw#&w?o$u)Rm7$*o4fwJL(QF0v)mv`yc413
z4;HKG!ET4KkhX})i&c at uQpH%w1b09Fv9e}pd}T`#GOO_G#|P5Iqdb#Au3h{3mZevN
zkP7F7;3|#N-s<h93eQ0q!dvqSvq6GloyK=b8h|dIoikM2vNr0*Z8)Rd$rTb3D%4aS
zYLNx3&lR`C>jJyPK+|}4vDkZ#p3>#%W~i|+YknQj&m3dU`|ZrdlU)lAi8V1b4YpUB
z2MI9RF4(piYFx<MHhl-y<gNBzs{S1Xlg#erE67;q^*uDxjbK_0uT%cvlt;MEaE^QD
z?2NlW at AH-a$)P{=IC9`WT!6l5&(h{j*Jej5xRvGUtKT}tB6W)N%HRP(_G0#+_TF>G
zI`?qvnfb}p0p}`UswVaq6sY4jVEcVzS8adIQKZiS<RBacJEU76IrL^SOm*IobT@>&
z`^Tp?^NO>Q9v5pbNlp7tjL`zvn+=Q9yqo=^FM&02b%F=|n%y<qm8uSGVeW(AZsFaQ
zakX8JtXk6dAD?dKjn>W&Z7p|E>yIS#`-A|>o=q49w6MKvmmCIL=r`Rc<9bk2BW=Ap
zA-GddzRzEFYIP`OtKA%!qf#!a78dbOBT+ at xWGasjk|5+y$O&n2A_<rxc*;lF!XJr1
zaWsA!tDyZ{s1tpBwjWR8Dm;3PsEK2*wO0^z8Mt(%QoG6%crQT_y+D`>9snnzzlDNB
z?_y#tVGWSMdWFqkHXhmJ@~z=TQfoV<)Ld*~OjT<`->!PhOu at aRJL%=P!38VJyCS4|
zaDycsgA0HRs-`o&WHYL6g(+E>9Dl(28moR>Q$|D6-`V(jEF6>qg>2B}ojkhUO68RD
z;7Y}Xtig7gh|umXdA4(egKlSTU7XT}ez^jc3wH!H*NeRs95{I$7ee^R_HK4Jnv)u^
z==tLJeQ%LI(hdn?DbQz6^gL{5E7M-Al31A$=H_tdvc}BJ-;=A*R%KR&-t%MlY}Y-_
z2;4H-5D(H=o#)5(;p;S=Y2Ka%Yt0+*q_o#|T;~QJUUkL?uSi1C#~Z~en&Na?-f-ry
zJ<P{NzT?!hK9 at so{<0G0edyh)X;nh0(nkxE+4 at Bm3l4}ymZz`XPoR at GRm?=onq;+h
z23yB1E2^>=etgovDuKG<R(7f+xXUA{j$hq_vCafolIy_z1I^w-=R-}pe4_ at W-iq;S
z`(_ty&+%-nDARFFF9Df`v~5utd?eVoBOj;kfSJV*4dBM|NJFB>6|Jso=lrmosOcTA
zM^CD}D542TULg+Ft<9vh82R+8Ep4sg)<#sylr|xA0m9M&OEs74r)#7V$XZ;!$GFt)
z8);hot=O1)PXM0gIBMwmz2IcI$=YR~#xuA`G?Oe5tkBBG<2`rw$BUQj2B^_-FkR6q
z`-+pUdlv^7x+9O5%q?3hK%)Qqxyt at f;oV;c3+k7jHjl!maF6#Sy~()0{0f8<(fsy(
z{P4)ywg8Zvxcz+z1#kHSm)oI6dr6n=d&m7HBeZbNd%P{v-s`I|#OMv-_?vZQ>|wSb
zxEEVAHyswd-eY1K(1O`&dya1<n^^_g%Mm0Q#?B8J<rr11GM({c!CyypM3l9|ytEot
z58B<C?eYNv>!uM(k>WA;_g^f9b-P*d2%g89Trwcfwp30P9)vab=28 at 9dZc!W+-(6G
zuNV|(x?rq_Cl8r;QZln(&*hBlyvGWCHdUhm>kF{e=;u|RN}8GQxT`zj(_W{%xR;ah
zcIo$cokt9+m&sP{K#C?mZARbT=jp(nKr2u7XIVNe*X7|wr;f(tZu-dMFF2SR-+g>B
zyJ#?r0zc64mzpQ2z#kJsuzBKQQ6TCmR)hgr5&czX%>YZlFQY$mOG=zJFHfZVSjrxT
zP34|1!BpyX at A~9)Qf0!N*7wPEh3DbgO{hCHTYP^Qoz4Z?>jBHt*F;F}8a|}Tx&<qX
z7tddtI at YvvyefC|=CfV-Rg7`S7EL+DjUq}heYB)ICqn&p&F;A&+3d5Cr#+Y_eWYO7
z%;4DRgA=Lc_r45i<&f?KW58xBmNuaJe1>xJ^w3P&<dw*#f3=ikceN at wMIR;agsT8y
z+-y-*ruINU>h^Pms~3cVwP$SZP|16u)#UIB6=MBc{?rBS5ReqB at ee2X_kp&MH4g03
z>q!w+#%YhXy?1$g8H4~zl(5>Ii7uHWEnVEuq7$MhLh1~c^%Gnu=W!z!2k at BrPGSFY
zry1xgT=q|sO!AyVTG#k)b13<<oUcLSmpG$(tRCVEFF2Aj4;>3=jYc94SW80PZsX%t
zY<2eLn6%e7bui;GM++n7)|RuPLJEv%sy3e=>^C<&{J2VL;iIv?p$C{LPB!$5i^=R<
z=D_HUq>=R=4m at Eidy6QK8FzOv8``BDQ1OlGjm!#~g<sw`*y=(DJq>pm`<+2c76W9X
zydPWR^al;S@!dZ@<1?_owj|a$czO*1;FS$|jU(gF_Xx)~M}EXNA1Z0i9D`g0Tz=3J
zv at w~)Hr7Q`+OR*#^f0(~+)Vkj2p=NDx)jctI_nKV+dkbfa!dRxx%~pq*PM)HGZaWc
z6$#_>;dJI|Nn&X?YET<u*zBO8=TUv@*FH^7R-up98?hf^a3ptCskCP4PXTRfEhc!Q
zlg at aSX}4fbgu5Ll)xDBaQBAGP*`BTOYtE}AvD#OzpZ$oQtGbPkUW!>Oj-<9RDq_?`
zaVIF_^Ww)4=nNT~^VU{M4`@bM at 9+>$2>hU)Cw7^FFfJBcyFd2OeB^;oz<*hnsKn66
zbtQScts#JrMI;{tF;rD8LdTgl0|5{s0`R1oO(QO#!LN at msNNG0$<pGL&r(r{h<IW6
zT^lF|T9`xgY3W~UDB8@&8_g-&@N$?vCq+b;52V*3Ua`1!YB~Zc)RG?T>_}sfO?HWb
z9`bq0+;F1p`+BZ<P+O!akAVpVPg>#UGJVG8BFo|y*qvGbdE=p`QK1^k>8`;}gLUWi
z39T@?Vpwk at t>o8(4>c0US{E3(Pw;;3FKz at f9%qC>Qv2VEe_|DRC&$-X1yyN}E3zND
zWp%mj#2=mpinb+1DEoJnw{6i>Z&Q-4uhUD8muRp$985u5E>vgWarFm>h6<SE*WL0*
ziwJ)qdxOqIIBE6t^n!zf)43bFs{Kcm#KfRH(ZGqw$)Ti{@8lNgE^4(ZDk^TH<rnwU
zuNjVt@?c6H)|!9X4;cb^d=LI!{qvW}ESzG+{m1m@>@$q8q&kkdZiL9-*zox;DI54R
z3{OTRD`VPiEzwo6N{Bcpr7a=-N)65z_=NHhQ3%ha^kj5}J@~}mXZs1jzab(xes}3}
z*^66XB#OqxByqx6pNTv((GRa(V at 5FaBs}Z~mfve*lBnmxW&y=L-{Z7}G#-~bERqA1
zD$fT8kaiwYhZm;ekUk34M=v9~0!1%9^{9${T)WfUn+e#REY^r)_<zV=P at +3P32r^4
z>_&I4D at FWh<4Hv&U#U<jstTUnfW^&ulj6baZnR9r4L@@!1!KgGkt at c1GRSNc`|`kD
zkDi*H!?&R=+(}$WNiwuKzq$Jj at X&p2EI5tKX;VZ4aTfX|iXvt%az89Fg0;#SnE(un
zD_R3Y{P-M1J=7}ef1oQ$GA2%_nn4RI7NpvY^9?oUdx;>e<dVJIA1B=zKRc*Ewg|1&
zvZme4m8J%}HP*RXNFjs!V!kEVLG3A}(^C;)d7w-0y?S=<cO8E at Pd0&x5BzQ)H_-*Z
z(;oQ*@_c0lmPEXq76b(4xM5}8q`wuDWj3?qG&ld8DX70OyMT?H^_#KcHjyrgar=wS
zoxqdR&<MJ?)YpC*uU{F{;-)|Xe~R!iCtW{H&2CWy4i?EeKx3kf=lRibnD7rzAUPDu
zV);j;iMsy?T-O=5maDj7<I5MWq`cZ;0TJ2bOO>*j&kO^s)Gy2}#@=)il7Zi64#mHZ
z{Fzk(1{x at Acy}5q7#tNf3srFOy|RnHFCXt+EUAY8U+%uA-{F<=4i at sO-3~P|AraA!
zIJ9rCr5vF$IFxS)Qb1BO+2fUnlnCt`_m*!{z$b5~?zpf0_VcF+0Mhw_vJ8-*y1<=s
zdTe%VvRSEKY<d8chUJ0r-00>e7K*z_LOAIdkJwXfLWIV|IrVerNPj;+$g!`Qx_aTU
zwX*4hx*RVS@$f%Iejz^Uij5WuS2G at -)&>zFMFoXwclOoE=`St403m+(Ge#h;`25jC
z(Mm>o@>0NA+aSA-^fhrO2 at 7d_V?+OJ=dO9aH0jwgi9w2i<u?S2i34h86b4PU+IF8h
zj4SU%X*0yoS~tk#nZ at at7swA3U)bbP8vn&`I9#jVd71eqkIfCHmSqqU5|TufU#mCm
zLP~x4-ZpW{zlE7k4eDkLx?1HLLGCVi4 at 9kiYZX0uSUyHS`1t at OgmL|zdVJdIi<vY6
zlDx3gy-MvxFav^;wjx2c-S}^~bF3VSu4AkH)`Dls?sMw2zAQ!W28!jJy+h+I&DSf3
zHc$`jwwK&o)F%6($&1hc1`rg)1ETWG-=nzraEQ{IQ{5B>x_ at 03N-b|5&LNv>!`tuy
zhk}7&|2&5Pah%le>^E&qpa3lt%MWcam38>NYar-{3nI)k&Ak*~<_?n$$={9*1ebT}
zgQsA?r(lO+l;r=5JHp?N3^ISUf{cpryR!Qm8Ggf)fu%?wqzh)aFZf>#0l+~%$iSs?
z%Y)_q=V>|*5Rz8MBbUVcUr0I^C?e)S;eh{rdhOe8DkcK+mvrseUB`rDu3{}v+9U5#
zxP6k{5|L-&Q0q3xplc9RwUqKz#9LRZl at k`u at Qr6(>!t3}&MD_SgdLiysO)YsrBw0$
zbMD8SlH8N-SVR>L!oQSRAgb#N2zsNCz*KDQe>;CVwANiF5Cv4~opiZ8N1#=#w##EJ
zLSKFz4S#OeQB0`;Qk!G3?PA at 31-MMvWXSmi-a7Y$MAaIoYMeU3A2J+Re#COd$Sodp
z8qdYD?KhIbtb>w_8WN7OVRcjZ+f4K(yNC~OoCFcQvFwI;rh3=`hrA9u8|a<1W>jyp
zN$8dPGl!Vx<e?SNa_8vP6+o{@k}-oj4xL%9fiYebsPdxAVq{dwgG%_j8!U(pw<v{a
z=oak7DfO%y<0ZA_)w{C7$F;gqZ-$yii=OcV2HAqAh$=ddm9ImsC1G0Af9S at QQKo~C
zS#%B%utT`&`bRen=(CUSvC9XWrGCXlZ$yh(?&F+aS1SF(|9cY at hsYWeQI;~(;I$NT
z;GM^X#L~muut@}>8?QAE(MiU=u=Dp$Z$4`#(9kNMDxzW(zkWgXL6+y#Vens2yAx{2
zi$~mtw0zpQbW})vdfK@#tSuj!`R>W$)EyNJ3So>tfwUfhe3i#JIj!)THcVa+62+ab
zbYP-0%`ix4T6#%q6*}1Z{G(X$gVj79(&}=AwzF3_Sa+(TD6-y0Uzj5%pG#a(h(c+*
z6J8v$4|jdRd3ne7Snk)qx(@u4eoknk{!{*WUrgtj1r;?VEMSOxE;=D3g>&M%=Q{Po
zg_F*jjm`_AJfhDqJi-D{4e at XcQCs{D5y=<Dy^kp|^3;SVwu6ZoM{vKM*f`o>JXN6a
zoI)9gbCtAgZ}GG5zBeSI7<%eE;>CqcWtX1LL4$%%Jrq;MxtjwJ%C;CcmRccto_!{Q
zd-P at qJAkD~CoSt<(M97Vse;~g%LAig*{TK)*lX#kSg?3ITkExzL4LvS|6VlU)C>6E
zRevR#o;esg3teO{ttJq%4=@$xyA=@Jo}PG+6Cox}WE-<ZIA<N7lGwYUGz>vUr3m53
z8rb`Pgbg2;2#sU;n>QlY4(%AihFs>xnWY#R=jzWAFw9X1;h%p*%_XFtkqJww-XPS9
zW2dNU4+uy)2>GuYjEVA_m-K%#Ud8t3;aHa)z;Nm|Gq+^w*J-)2uE5oT14y00t%wu`
z6gPDia(DPsM|po3hUuFQJY!_qB~eVSx-+;zAk0n(9FA3+ddVPm;E0U>a$P8HQ&tt2
zd^PF-h!2NK8QPXC8mz2n=2e2}a0d`1t at H$KchQwkgYVX4#6I6S*i+J2i2_`){1!LP
zt!F?_U!m}x3RY at q{&A~7gCh6sFQEYQ5fzn6H66zQ(s6<xD=29tF~Hu#p>H4aOwz97
zc?L4b4dNY`sf5?Y_4IHMLPqjawqwFxSG4bqkW>q7+=?I^otBZMd$-?#x<Qnj8#uhc
z^EsH}EfPI548avsH0?<58#C3hQ>=Kb?0HDlw?oj$VA?p##_N@=!sKcYef{hmQn|qj
zqbj={p&M{;0<(Jpwe<*pMZ!7ZUz*_C6$8fdd?>sWn}pzU<tPa~RE)S%R`<FM5{H}k
zNt!)U&-KX$u?2$tO+P)W#7~ebk59PsGTjieb8<|duMVaMPoHDP)Ma**n<1vsIs}eU
zC;fTow+xwsJe(*dCV7nvMYOChF+P(L8uHQK#I=E2J2?-muz`iN)atvROF7V2j9a#m
zXwWecqOe-Z^jdOXMM*c5kOcl?mfI<QQ$XP{F+<DC>4b!YOz88}P!SOY;B+B at F>Ell
zB*=oiygW!)PbLm9jNLlubmE}gUt=Hpu-xHFvKv1L>;t at pL=uhJt)A!Cm$r%u8Eqg=
zmI5bXVgT<933x~fzJR~yCsp|h98d6MtE8;x^7E0`pS!3uphwc#@Hd}R1IXuOp=*XD
z^|~UqlJyj4X(`)>j{f(!`M~hoam9f3kQ9Qk3TyAOMJrb?@9Hb{MYW1vOWKSB7UKr7
z|FH-7sp9~5tL}eT6u)DGL at uC9OM0S+1^I7RH|7F_XBJ#WBUJykU;ZhMMvL<GnMCvU
zF!22)V*Cj&Xn{*$oi-p0{^!$xy at MBTG0;VxDg^m|I+lRJlQ3VclbO(N(5=6cdnd5=
zx*9Bnq6iLBh9Gx3B8Nqfb*art9QyYVq!EFRHDawA*a2r~NOD&K?O~G$r?dhkg at ObQ
zl7=8h%tS{A?{S7DaJN=XsR%y33&`>Nr==n4Z6YX7V5kYh{?@Eh3~&Traq$rDp*TfS
zAy*EpMXduZl#37_f)qEjQdx;2eOqhfAUnBd6l~bv75JhBfL|6YP3Heocm+%PybJ@%
zL(mQ$-A@`V<MqwX#f1$RKh_AgXe6u_6tCnRDQ;%|L-rwlD^dI8$-4?CSTG<^Q&9;S
z8Ra_B at uSGfgQa5cFVI5md0T96Z=23KSXfXYA|h7fsV;>O78ie>ZPw9^6ZtJ&wwyn!
zgtd80Uvaq$B?KFN{c3{RA7=-aioU;a3RUj>i#zLy=y0yWU_t7gb7phy5&O2ecBy-t
zAT8|gGalP}JKXlX;I?F73 at 1Cx2rRNfF&TnSIe56aak#jpLQ~?I6}D1DX#xJ8zHX$?
z5u;h8WQ*9fVmz=VF&<c|Pvig{A0J=%$Y*6$dP5XGD|uNnng$8|_vG^MKsPWf+wDtp
z_vaZ0;6A%1W^PeD7Z+1~H8wVXNZvJ- at gfhHT_YhST}YF%YS$B=_4CmHcah*BBZGYZ
z{{4dE&}<u5`YtL1#qajQbn&-3FNkazVU}6pN(#jhH*hxNWNY)a+Y?D?YU{4)%O at NT
z6U9_F9N>)62v`u(%x0Oy5OSSYpkgj!AiDn+T|O`P*TmMBa;JlkeqgJd;gIZ9(}ySF
zV=<vYTbD~&)y6CL;#F}t|2fJ^=a_5NRYh{12hN?A3o4Na%s`bDwQ#|nRI at K}D#*tA
zt0#iwH+D+=^W)6%H!qmzP2`-_m<GKgT^W at JwTB$rVaKAgLtV{EkcSJzW^JGvty(@P
ziz%}oXS*R(45rc`t(=EAi;_n|to at l6w8D?ur~u9EmuJU77OAuPy}BXcz-&um=I*H9
zKeHSr;og`K9wXNQQ!x}r=UcSaC=9H$oz-w{-M&cf=le&qXKAa2;vWyszqBsOmA^+i
z!431KhJ?^`r@!&!!MXjI>hDk&QwZ}pvaGWYl5D*^?rU}C8C|T09lDGICwVeg!#Na8
zp;c3<V(Xl?iwnw&V{^HTbYb88x1P(D_Envfh#ZaNQ9fx48)lJbSE#U%UNv!qe2Ob0
zr at XS%5K&U8-jl0k7sn?ts=1$=h at 9K7D1--ygny>5tyKdj_L>l}O{a1RG`Gs&ePD!p
z*K*nm_ImryiU)>Gd2i2ti#g|{vo$Sl&Do({GL0)L$*LYQTF3kQ)TFIns*N_6B~@wT
z0VM}OpZ-TyR at +e5oXSc^wXvEL%8J?rnCq8S(r2dThno-CCAk;Id3p<TMdiBgAaXlP
z5PpJUyx=3|0#tp&)P8|t$K%uXbY=@5hLfDG;@Ht8O{Z@@Pu(b~wD|RWZf#esJ)U=+
z6BXRyFi7)!UuIGp(dnnthZWa=b87OC&3c1l(LY7MQz`hV7A<MM5R8V30RlKhVP2lf
zt2bzH&Q#UA8Xbjwk-m3klw5-s#mEy4uM-r at DN9>zZOgZ`k2m}}sdC at q-46nm07|H?
z+toa;0o^)&<2auEue}w|kp@$r4 at U%n6N>CE_d5tEojH0}tsu>Go%K!-(z~+a&$_|6
zB)}FN+OHk+y#gv+Q%k*{;fbmLnAWkYH=`gnQqV;EwMFIEu%-PydNW5cqr_yLeitr&
z=*ndYoQS7qLM)B(1;;zB=wgy{Zmag&RbJn{SLvQBk{>RnBW-lo9mG<vk6(@mX=hId
zc|{lXs?It~aL(?lSH~_(H45}0m*}@Vz_%3c6G{3`?%_1&2$3IK?X3)=)J1iVM_$@8
zuh?Q~b)q!&g>o7ef7EiTeE!Vciqodp_{H3vlcv#}((1Szds2tTC&@^vy}|q?5H9vK
z>jG@**3O~T3PQWSjonDr1&fy|DQMIiFCcEk3+I*$r#DxN?C6=Gnxyoh&1^9$X|7R&
zwQk9%-KE+4Ie{rRA^wGZoxvR9WJJU79PcGG3(LE`vG0-IVCIX%^RvB2JteH^V1y at L
z&jZ{^$I+&<0U#Np-sRq6>9XU&%$*!%p^-K<?E(44j>bka<_og^DB0n6Ep-q>e at X^`
zj8ieSBf3FAg&(z!iwjO{S(UzGqA6Q%8BJH6y=Pt1J$u}w^{@T<n?iGXZdh~=c`URR
zjUG3F17-OSe at FBtGQGLRv#Um;bhoPH86ODcjkAZcv#DPVP;EP2;d_$;Whb`7`8mzO
zSBxF6HFB{b$BVD+r at T*}mfXN-ES3?uY1pDdy?R5qw7uPUOAp3zTOPDz_p_kHr83x1
zhc$W>r82twT{a at k$9P&no4g#XHiK6<O-uA1M{yOuxJwyW-hUVSX_rWKWW!B!YJ2ip
z<xF!X|7-W<)zXO-4SyXMpInUZgF-M0^&SFsI_dyLdS(r%XgOs08h^EZpn*JcSg2CF
z#CzWN>iM-M at 3}6}X!)3N1F~E|h=Sv75WtDo5e2N8`d at E{PQDtmHi<(u9F>n2MJKqf
zI<L6yK8{qjd9DolgZP`8HErhAXYMN1%LHf?I6N>uPdw5;g{IbDkj<VyF(Ny)BB=QK
z*<N_M(33%%T4qx*vW=IvsNDvXJ967}XNp9tXDJrKu<KYr1i^NoXu0VRZ8(>EJ-j1!
z788B!qSdD?0UW9}FXePac_G+YvqlDY4vlnA1WHz1PB>(z4S^l^68N6zVnpi$0L~rN
z&arDjG{1g|;Fx4Yz*Ei=ja-Dk+(0{*_%8G=##vZyTHCI{8;lmNkleW(gRT|!t3K2T
z!}q^Fv^jlivhS`>^ui at XO^24?gC++d(Uk<H6tNt$sPu?tPJTF`9(wJ4+`E~4Z6Bqz
z_Mhza-<CG<I;^o<%IH;kdc=IWpZT<v$`(+Ex*SxXsKZ~>itIuA3Zs)o)BV!IWVx<T
zZ3?I;+?VzPpaNVyb4UC<_P28InF5HM#RMKuVg^lC8RqOhvkUr5g6|o-mq!UA-r%O+
z70DSfw0!fMPVu{P*$32qU~MpBbi(GA?znqDNfQ`7I_cF(MFs3h>8fPaJ>hi*UmiH5
zKg7kWEyY>rhTM)bK4?ezP;N!mG-rQ4gEVW<XMeixe=lob-?qAWy^Gr^-MsP9QA_4#
z<-5D_ec#6yc3h7u{w25LcOPGDIT8bxGA0UG(ePSY5Oj9c18j4o5arQpaea-E?U<nn
zAN&{R(ruKlZ#IVbSBea=s!f+a3<n=oEv?;Fk}{8T{ShL(J2)lWW*9ew{A+h*WIomE
z7EI2a(IUjA&8UWV&r+Ss+_4dt*KCZ~+3xozr9dO at ZwBkn-{`ORAIZf at vNvA>6>S~A
zW!3NNDAM1HR9u6wF1JCYR4|C4hr*7fOr%zxGD at Z0bL^}N at tYt-?z2jDNn`m9?#1$D
z%=M5n>_tt!-h at P4c6w!*C^f at HTdRGOEX({!FJLqOA~q<)k- at 6_u!j{<-x0mLegR`w
zuKSSXaxAP<+uub~v1MH6a>=)><5_8^)%0zD_T(X2$KWh%lD+ at XFxHU*_jxdC+^d()
zCiYV}IUpC0EvWjl#zswE$!#k#*y1y8lIUo+C6);@@h*m>2*fnmUbg;_3GNGzHO&LH
z8!TGgCzRfq&p*cwa|f=2Uv1YgRA^i2Ri6@%;a8FAU`sCq+b4q7P~v2txLfb1=chQK
zpHG_c;vdL^u*yc2;;+ZxN at AuBNYcT7`5?-H>Or#=9$;<~9({UMTE9U=YwV$yVF_W4
zDsiX((cjR3#!k3f8OLVt*C|{74;O%O)4kHmOReLJWWLqUND}iF>;Xgx#D|+>jl&B=
z(<DDX&@Qaum*+>KSo@<ndTcIoqrAkxNF2^g=_HnEqnp at d5gul%=q;mQv<s25jVtJp
z1#vNvs_alP#_`HLEJe(f4M9NBOmjHmk?J$siN+MJx7w?Dc7I7Ti6#vtuDH at Ztt717
zN_=F<saDwZWl(3oWA4u(n3h1cVS8f*#sF_{^JVjgW|A!hP%^ay!&u~r3$#-MvXQEf
z$a<&8+lh(IEIj?4^B4HLE<lB>#uv3pOI#^Oy}se~=4zo*nhrOgDefSN)AT!8Zpu>3
zlQCJWrA}nA486N6EG;x`VNL@|O=9hdsND6^XmeG}HY54huP^H|YA?&kaRVE2-3|>@
z7sHw?3bA97;^GN>gvlu%Fx<&l at b@_wS=m`P4QbD3TCg=()xM2##ckSPWkuYDa$hHJ
z!C*br7L=P}&ijCG^@L2xY^YH<xaNr|Ar<9sm5JLZh}Gm at EuRWip(=$l7n9Ga1(p}`
zV+1~)9b^vIn{{$kGcuP&3rum9*2`{zsYFNenX`I#u-$i5Ywk&b*2tlBsNZ5vO_Nik
zYWnH*C>|wd2t<Etshgq=@1JhI!@ku!<R|sTL$7J!r#`^Bx$j!lS-EdNT|RSVQhqaM
z>EI*YK!cW*9#Qlt5KEs9+?>n$;{Xa80p)!m7Nh$8fJm at -BYM@U>u$1@$9lS{i}4sc
zN(LG$B1jQ@$;q>IHsyh3%$vSRr29hUqg&#S{jf6dq6jl>p`?}4_iMY`2!n+wDCVRb
zWbLPNM at S_Um}d1P?!?540N?VAbDmwuL5{ed;-Glj$}hfWBsqHZ*Kneh4oV at z;&0&u
zB?E;NrVO<*EU*&orQloKad>hJBNPtd(OPNZhb4bBy at m`w`Wq7yA_ziOuA^9MyriTg
zRspG-2FaKW_$NG`A^MhND1dGC#Y&R0!f~l}J<Ay9?~lt2 at d+Ilv4B+!A3&>A4c*c-
zYBQAs-Tmwf1l6~;w$k5|^@rdyQ)gdfN%idAFC08*zF9BdLTD3K&uNbXW~Ek-9!la(
z{v;+-LP^@Srqfo&)?eFU>Wy^F<i3}_J`TfS!e0VRE_a3_GDs`qZnamu?T_~E&x#*D
z{xO3#PT*gTlX1#8MyYi=^)X^-4HE*0wXQ{@aC=g at -SLrPWYTzGD@a3ns()&Xag;@%
z=7S%^`mlc#p6Q9kQw7c;XACegGb=oA9dx&Lnw~vQsbTta`^#ZKP_iQC6pUC~RQU{_
zk||hv6o_?}2!&u^U?M`K2}OuX1Q&v%((9B#l at RGlUJ2Q@apG>(sWLCRBySMOPTQO&
zRYK&EexK_u^Y68qFNCR+JTStx#r!-d1}hxq2QQ at cQDR8agz^i~ExQ2|8ndB3*N}0|
zvkW3%iZd!h;A7ZaUx!BpN~|)`{+zB)2{ceawsxXv_3WFIq2v|gL*I)7<`b4LbEm(&
zHzi_?Uugw^Z!O2-pVnCHd`GT$3d{L&V}?>fFEgC~cGPUvzZb}@@zP5|V*hH5l0nF)
z6u at F9xPNRe-CpgcE?fYm$j&-BG|FFMory;ITc><1f&UcYm&@4pUD#%z!b3g at bP73R
zhv!3Kk&+y!v2Z(b;*LA6o0oE+snH+lv7G`HIU<vkxve-WUqT(_&r_g=^FdF22GP1|
z)jl^{|8s(WZLJalP;F6gq!r)Z^ZQl-cbl&QyjX`QWvHcp)b!6wawtG?Dvgi-J*nTT
zlKZ-mr0Z8}p95^xQwg_r(R%3Kc{=?2vFW7X`f}l at _~w$Nl^3DU9$a&;_ox;N)zH>$
zE$>CSnLBb_3kkos9g=*lkKPlegpRBTJNHydV3z)OE5W9q^rRv%<tG_U^p6R<<<~x@
zHJ{s?qImsra%i%N$BCq*+CDj+pM9gN+co*9-V|q^v!mB>(?qwPV||dROD*{CN^Ee@
z-SOy_p?dbQdLw5t<P}Ut9+S0qwrwDLyy>*+^GXprU@*OYVLOkt31yJDXL6);eR!vR
z?`m=3vT;^H!kH)QUjw$|JM787$J)~BHVh3Zn4Zqx((mYhJi%Q_Fr}uq-Huj$+-fRE
z4$DfA?HJ#cFL#0cSE_vBNWt{<2j<5LMTo+L3QegUjFSL^r)OIH#iN$G`LGHX at bX;N
z?<yaVcR+4GRdeyd=yvdrDL at zFfDdV5iD_^K^_JaDY&C`fXC+s0fG)4z<~*OE(_QEA
zsb^<(E@`#57uk~9(~CrE1=GqBGnmsCXW=Pu==dALeG-z$7GTo;R}jG%p!5_X{u-<x
ztX$O}i(;v}s;xNB0BB_X(Z at C-Rhya8$jP_ksN#cG`jY9EcIg|Y$OXqRzSq^URtr#D
z$se*EabSy^-^Vw=-~BxA&ozuUw9>0piF+4KD&K8o+<FT-tK{sk(??URl at N&Z5^hvs
zmpE6z3s~lPH(dBxX!4KAeKSXwseD7B<9AS5f}5jVq^oR5V#g5JJ6+d%NKZasxbGrQ
zK)m`0sy%5zV<*c^VMlpDxrPpRn?GSE8%RTYA6a>Upq%n(vK^?Y>!WQJ)~;Wg7QY$u
zziJ%77ak%nqnpV3zH0Wg_o27fV5M>Sh<_!5eY1D-g<_N5do%_;b$rRo8logUOZ6~M
zIWv>9xo?8@<y=!2<Na<uLA&@)1w?6kK&_VVB89|iGNAND_Njo1(f`}25r`@F%Y1@{
z8Ek-|{%o2qrf9?qyP`<I&Sp*TX-BZTwNH;6%;-5ca10upi~0X3flbfMr9J56)h<2N
zRtBEi`FmuWVw1^SXab5G_LLF&3?w$dB=?HSF8!bn%BDx}Z0ozLQwXsMrVk at DttOkN
zh0yILAHLAXTkWPDM?oO&DzvWv4zXYIL$Ea(Rliur5Wq%Ry<#amICN9>v+9F<iabPc
z=ov2=-5kg;K6BjHcL=LsrGpAc{pYI7f!h2UERKch=vb5eP#0G}CQVgRDc<aAvCR2=
zzN4KToIR+$F*F>0+W*kfcPFuacb+(OT<V~fA`C>wunez(gPTSMio^Ua-oua)kPJ2x
zNRn@$k105ByY%a4+ooAC>!_DTe90w|+!j>3YAr_=r}}bjWXOe?_1ChjSwLB=G-I5f
zp94EK_!Ja=R>T>E*f%vW<qW>ho9tI|#0KnKyRDzQgj17{1m=<*Z7Bn!A7ol$rALNc
z<|PvyX?tg+1F~Fcde>P*u+CB34;q5~6dnC^Iids@$Y=v$LXZ;)9;yj7luUn8C?ue~
z58$*RQCJdbG^mGRlKIb_5C+wcnfhxJ|4|{#z&9`3QOc_HuT}w#BRtSHUUUCP(SVOk
zn1Ii)V1abOe;0gvy(hmF?4PxO?~((J5W$D&F#)Np{Yv<G^dO-1-QrA1=R{5s2JL6;
zZsoq!ilsK>ZsMc-afz$m3Y#%ii)}mkA6=~IgWDvj57`4!KWNKrC3s?^uBi>^?J64d
zy(4H#FT*)eqpmBko0278%>T2iLLztr{a?88xQ$p<X|A6%;NlC5(5*)?qNaN}({)6!
zTtdIPmZ-uwNJNp@{yO1wpLJo*^{8)1HErKjB(Ew}t#_vNS|;n<$jO*D_e>49{XAfM
z^(<<8U}9P#Sx^MyF01aFrI8A*{6X=*wA&F}Un+b8Y%<v}p0OE8LW-fMsr)8s{cbrP
zWN+H}9mB-YVPL;U_QEmJ=Mq6TkKQ8mEgddag9&}?LORT*?>;pS85}>A`B>}3`#uuu
z&r04h(17t`w4u9yE-h$P*3W3UEr=^0v);#U@(}G2P8Gz0l`Nv#NwPhagmQHKj^5#}
ztTc-=ps9K85gG1YaqW^`d2ysae@%_cg{ll at tz;+>h?FFxd?nn}{ec_l5v;DzMdaUu
zgb#b${6k`WwLr*3X<X7b#`k5LG!MCLj!%Mf)ou8wtNsI{n$=*Nk4t_8r>DZMuDD*a
zTQm;IHT2{<1BQ%p>e|7uvQ{0;ZCVEP4&Og6TV=*vOqrv{Jd(&H$5d3JUwU(5s`=Ng
zt#xp_e4XogdBo`~j`SaYe)cbxB=B;!V9IU1l9tozO#5Q56((7}wnmXPRO7#6aI(Pt
zq90oBG(_G0`Qm7sd`KfW4EA$5v5KP6UFetYM)m9VO2gTVn8u`h-Au?o`UbxUuK)6R
ze3}VbI`LD7!RTs8KyeIu+m<)I%?ND8v+~*gW!s9-;x1 at 0`q;cKz1_m9PZ$s2d=*YW
za$rP1ygi)r0i%=$@_D1K-MZ>W8>m#4wMwG{;;!VdMj8oVB6^SUSegoVmiDgmscWt?
zeu<>&{8(ab$mzz9wZAiTu?b=qhP!B|5%{~KYcD%U#onH1Eb_*?4(yw>9f74;qPkDi
zUAF6ftNK&HX`2j_RZ7f;LCOSIOEC+0n}9&TLBn4=?mI^UU!~8qauvT)jq>wDrLEs7
zpW9%p31-u&z*+P+RVJ-qIGMU+*UsGOQoKe-NX2V4t9J!Md|Z!xU3=@4+w)Rf^Vu=X
zf&rU_rI)&!L#^msb#SpQ?6}+y??9T$V8C!y{j*rDdpKV;LtD`z0F^0ubfw?Iy-Ny*
zpr*%6{taXB34PHIb9cdWT@~rvpS_B`J-BvC7Nr at row;muIB=UCxd5{6D1z1vT!h7{
z5 at IJ8L{}Z$cWGJ-WJ~@--c+EZH$K)JKdp!MCRm*?#A-_n7tk4xu_ at Hh*y+L~tfD?z
zbT+BweV=Jy<ZwO-o~m6Z6;T7|^wlV7$3;c$TJ=_P57JqQ!6j$+Ok;8h3!5y~;8}U=
z(yt^#6yI;<(>4q+l#mFq at w7l5&U*VzBK%}l|7(W$iV=V@#{jg{WLj^bQc<|&L-~n_
zd)`eOQjzi#g12VH$2y~_?hU8Z7E=AA!)TvSy&o4Y)R1e}u(J9NqsTJ#w)Rpc5VgGA
zOVwmp?_#-TCgay8UsI7Iv04bohx_Ehcq#PC_QM<8SGwbfJZ_^Oq+FT54&^tovkW%|
zU1OLgSbUjw?5_v at G%5P3G^s9ZkMpERx at 1pFSh<-1;wIzw4sj_#){%AtUe<5mUzBpo
ze2AU5#BK8IXY}^QTJOG0o4mLDdp~{WNY}nYWBvd&M&x`l{S69))W=9~3>zG->_ at TQ
zGDz`F7}DDA7y)j-K5KvV$gz2H+4DG%P&;5I<m6l=Z?j%)y>?3rBIkOI&ig)bTNhuu
zh9Z^5^}$qN^<y>sPFyS at 1v`839Mym^CvlBX<~8Q#!lnzQ0axjhE-XX<qkiIc+VqP5
z(`NM)X at C5b1Z#0-cHgY{v*a>$1bu18dl$K1I(;&(tUnFkS>(XC4tXZf>b>BJ7`!Zy
z{ZM)Fp%0pID=>a7vT=Svgd8*`7*0&@{l_yD;=g6>-Mzg;1ipZ*Y+?i2Uc_Cerggi9
zH3tq at q91*%WwS6*y#^K(6ck9RS29+HOJA{5iVaMy?5qGl=Un2>UTZ~&J#5eZsg8aj
zxNJ^wR2Vtg_%ed#y%{j(C3bAUz*;%#D&36jn2~p#=@$A>W1~L=Nl4G`5N^za8YR`C
zWlrLWc>|uH;W<0?QU=qHJ?nl$aN(%%dM3LoK=|I}j;VnEjzMw3sYf=?s@*cm at fyw)
zs=%_y{JRQA;ZHHx{+zsjzKnhl&}GJ(9`wN-n9Za32RTF}uNN!)JTF3Vy<;y4?JqDD
zi>zQRHjMIGgP#iSn5I$+G!f!R{Ofot#P9*x0#q!vUA$FcGk|Id)XAW-Z!7ZudevYr
zPzG&9|Njc}-n=jJoA-U+wDRTO_r3W+U?wzu`=6W!_$YlGsyiK>nr|jn>g)EsipuSl
z-e7KBh3O>eS0f{R4JYj^W)XuWmvwyIqGIz^zKo31S-z;8I{AOSznM5bpqreVj at yCN
zi1!k^7MHw`Z^wy*fPw^iwdET7rT$)3*rOP`{?Oq*=b#|)PQ361bU5SR9O?@pzNGVj
zva+&~#g1!ExI8YxZx_8o)s?)SB1aIcSu*C_4h;7eu}FG3^(IC=wG%R%mk)~FHa_pY
zP+TeSvA(Y~#QlJr(gs$4OQE~2s<SY+?aKsr8F8%>4NOTK`EAIN(6?l>kccd5NF at -g
zbl4S6vbS3eF0IE)w~KqFj>=NZ-K)@-KmSQD-?Gx+JE|PPL?CRC%;U*n63r$a&E*6Q
z%(y&<71T3?z=ppxyEC&mpa;DSgV|Qt{j$T5lW2pwdJ(Tn<C*=qQ#HElI-|R`#=rJM
z&xneyh-mEDvr%Quu`P?<^+3{>srnr%U0ZeuFoj`8ZLiD51HsKw)tba|@k%C1{Z^{X
zU2ZY&Xp$2a`QCq=@sG6)b_LbHM;?_RWRp#1^R;e!Mg{&d9doVqYUC*ID|VC9aVKzm
z>G!y}Z-j1gznbl&t0A8USk?RdZ(kZgx=uX^78Z*}4#|j&jhEIhdpY*dxH9gBboghl
z?8qL9PZ?oVxnyLhd<~@P&X}B`&wl$XT|*?@p5s<7Q{;pbYoF^fup|~xb}i7^P?DR(
zFdtv!RxCWI?j+IDsTXwC5w6LWf0a)c5#Bs6c*q(KWxXW|ru@>KERsEufQBB#GAUW4
zHyf-z`xy7D<`QlShogX`8#S_X#yGCNayUSPyJXjJW82^Vyw~A}L<Lsob$Hzgd_r$k
z)I07w2>GfF at lbh23*hkPR2VAv=zULej$!cmJh>;D^qMQ&HOJ7^^^}qjx8i@*Du75g
z66X0S479moKCGpO8ex_pwX|qIH8F{?07VASyS~|s?a^k*`>?&61q5hJmKz=GH!>+{
z0FC?XzNRb4L)vY4hj at 5Vu7^%o5fzWGC0$XZ&mX0;3QaL{83^0rTGyLqS at vb{{B_d~
zUW6h2%%VTqkdv<rgHDi>a at tE;V)dO at K#g;^zhzA7G9?*z$aH3uP0y}n2xx&AvTkm0
zGi9&fc_nE375}((bTWMXt9D;TmrZ}ftz>b2O&C^0MNN}&LR{*f%O=x9bu}kTNUkF=
z<<#c1Hz&*H;baj`4)jJC+u*tTqg at PF<0fe*2B{*qCe{UR#j8JieMsu=tjc{2xJzi?
z!zSo;X@(9jHrnb(^Ez&PJ{rN>=4^<~!g*k{<dV&+NLrncwEjx2%j&&g<8(bKu+WAQ
zXv#kNyq!Fv_ANs&Z~ghn?xV?0)KtoU?RJy5&P(0zh-i3C%D!v)mp;>Ypo=qhB60l~
z(|82272<C59mAHF7Zf`?yUA>+)>L%WL1cbev2ytdw3I&H12L+GkS`R?dAD;tA+ZiX
zTx6*;u)9<$D|jd_0XVXao&I|f9t_pi-MGR?VjVy-vLKe{(X0A<tbJ8b_f9fK;QU^p
zz*MMk)SuKD9{}ybg?scg0K?j}1NqU!f6Islo0hz{LNNz9TZWjJINekMG|>h)!J7PJ
z4C&j=Gn`Bc2g>yp)dbPOVIfMfC}_x$TbZ<&6~+rC#b~B%m+=R*#RJT(n8*w1^bc{R
zw*MOQ?><AJuO}v4G;I|qULLj|BnAfLhs3e)j(7yk$!8_e2o`_=W|AE?MTC&yQ7P})
z{Rd=JR1xkHbSy^9>tlpV6bEKWVaewZ<jYfE&_B6}uP!KqQFZy0?+F@<FEGC|ukT+G
zC)wQyNz%|K3?!%KudFeP(}$8*vu9fH_c|7JhcSKrojd*6lrFptzAxhrj=ludZZYi3
zX}EKju<*eSqRgklMz&HQ^trPm$FaYFhJba<Pn|WsBB0LuZxqJ|4Fw{LaZRS>6WW?R
z=TLsQGKbCd<AN))P=<v}xWGl}m+m*=Q>E~S1&P<c0Nk4j;2%J<ZF*2nj%6|Zh_%0T
zaousiN`)&B?^w?cT4y at I1L*LhWI35ql;r(u8Q>?uH#kW7h4Lkf)0Q}Kwry;q&$DQ9
z`%+=%eYo#~k(A7$;r;ci->GRZ{D?tQ9d5ZZK~<*J3U$<|L>PhjA-%w0R=9ufg@(Gy
z8LS0PbRI&5k;DJ5bIV5pC0vpa{xQKv2_auLZYz68-uqp`qhL0UW=6g#039jos{Lwg
zIsSRbe$FkuZ&oDLVyMX-A at Sz;n;$D~cjgdqw at vvayEleg@kpi(Px&Ra%2NMCj8jPD
zS)ehIZgA7N;gH+vcjViu3UF{jKA|$(1q2dVFM3ZX;q>$pa8iF!G<uCbjbNlZ5U==g
zn7G^H$gDhzgW#X2eSrp^V6lc{7elkdkl>#TLH*Im&ObezFHyowKX#qtw5u{kxEGO3
z{tKoxa~-`@KF+LNs^E3;B{MwDd^6%myhq0N#C;z&`=7i#85SfVqx;mnZn7gMWrHm`
zRqKk&X^?)?@B)!+j)-U7;)CT<^PBrBm;C&Td=$w|Z)zG(ccG+iqazM(BaT<xdI_~)
zdl at Y%T{L at T&F}om>lfq_=a_;Vj4sHs#|0$v%qP&D3EF0inF%!Ry#d8Hz^y^96vJp7
zL*e$;)3l9K<W!tCfnxf|u!Bx^%W?QG#1^n1Q?#Dn|If`4fR?if-P at 9rH;9mz(YuJi
z*zP6`i7V43n_S|ml?)cAH?vIMIGR>%evNanou+&`Z}SSsdu<+0w1_fL7e=$pTx*5{
z_??Gbg-*?E$WufR)^Ov{73bABOp4(5ZeSE2n&^@|PmF3pdGz0XbqymaAEI7rX$&|K
z*k7?fcG__t6=UD!4M}-0SULtv$K at Tx$U*%pLwb>Rewcj!PR7U?Ip`CYhs at n@QnJxa
z6B6b)r=Klaei4Q0bz++ltDl(GP%1AQw6K_r&r23+AXDmRjw3SDt0NeFr+^$N8o$LX
zS(`uzu6NkWU{Bu#O&+zusa8>vUyg{{yPCa54%<7}J51ej|8-JKbRcGOYUW>pR(fpJ
z$PQ$!w&7t4))PWRNX84iN*3B<ik6Ro`L`YDWHUv4ix=+<FAwhJ%(2L%_G at H^Xlhr9
zV(!|_x0SAZ4ca1{en4}m@|b+{tKw&h(&uY(1~`}hMeX2#Nm6P1F>;QzjDgB4*~^#M
zgpMxfDxc~RK4Yr_%Mul3+aY)N3z+YNuM(jyV3Jx}lz-8>_{{%YG&U^IFB!H=$(nnq
zA_}<no4(Pxa_qYW*49LUqR-fpzDV)8yis}tQCvIwO7%JE?@ShuSujtru8=3$NgY6Y
zT^f5IGkdAPl*2D^bRI#++OY7&C&}5G?lL3Vib&sOQONb^Hl}#j@?wf5OM<v#l|`dz
zbP7dMYf%-}C6;fF5{>WDthP^?D at 4=jcd!&EV8Y*v*6~Dr{+8M?n-exp4OnS68#Ar^
z$4yZ}|FSPP!4AxG(X+$M{H6beDl0tB9<5EKhw?y~UY(>jUrH(+zQ$fmD(jAFcTPT%
z;~fyOBZElI#q0GzT^TXNUFtahxp{-qE*%yR*!()krYJ6%-Qxf|I0UDdn=SgGg{*|1
z{S<>D8`gCuo(_dVYx6%)E)=-QhnyWIK+r(F+_ at xe)xP0S{!lg=?7+&S4+(_;{Wx-o
zQ-O(D1V_H)Kd2n4C+4r5LZ*K7g8xI<HwV_yb^SJK8ry6d+i2X_PGj3P8#`%iTaAr|
zjcwbu?@9Z#Pv7_Z?!EudnKOIOp0(HdVeP?;PnZ1vhBrsxYJ|H*_kMa-9gHnx7c at g^
z4E5{KuNJN!hKbmY5X|(tYQUvSbN at u!4AA`$FT1u7*ezt at n2O@%PL$&o4i>cL_y-rx
zErrr=N}3AA_6_8MreTsa at _%yq7 at khV$cn6(Ow#OLB7|HGa+$MM!nB0u6k5t-9+>2U
zvwZCX#f2tg7I*W$J^SAu_G`JJ1*~($DCl3wt`Xipt3Xr6+YLr)Uw{BOcb+N=DH#+c
zo7tGOH1Ds+>o>-v+Sq2g-zVeetd11L<MdGybT)Z65u9sf<|W>=XFe*dBJdyElr;$X
zd{y%z?}1?ooy8=Dt`G)^>l}ZQXkCl?C+OfYU_J9benkyy0W1{kdH+}%%I*baA&PaK
z>kKQ3w?nwTrFP&dWb(0!WVV+AhYR=U*i{XLJsn%?N7eU{=|L4xXzLH;HZC?ZRfEuG
zxlL2|aJ>~*Ri(GB at 1MQTJbV&uaek~a8+V4^dsdU5L`H1U=(QuD*cVo2CH>^G3Os=c
zm~&Or_Nz(;2k5f&Nwx7>0(=DY38IyR^eLj4u*?yE!GL^@y4MUN+6O>wFX`))9JJ<S
zvfz674|`1&^anW-No8C`%D(X$hY=wGlzeTGOhUY#B2g3j+0^#xdEj{NAE6kY-Qgfl
z8euXccF4#e?UDUXZd!t3C7SrKr9|q4>Q_z1;1-11{GrQ^RIu5@(tc|JPS*H|@5`Uq
zMZ0fQ6X1_AI`oQ_W2zW%pN4oJgBzM0S~Co0CRNMyLK`mBn|T~-(d^6)8z&d|OuoOq
zWp7Lb_%%gQUh<_=f1()hb?8YxvBItaP~y1<*JD$816{-5zxThhXqwp at GOH{8#nED#
z<0Lw4JcDENLuTXZ2fTS^kZiGdZQi!w*nMdQmE6HG^tGjc8lks3yF}_y=y*!jQ?@!3
z2G8GtZWama4I{b^0)Uw(4pR at jECY1lsceqfU^%Y3GlNMku$85t=&1s1J-#qCM9o;0
z*0+1E_ALd9P>y^XJ-_#B0(O`wH5FVhRA1NjTI&)FRjWsTW;ncGaa~iQ{Q_|@7BwT`
zVi_ML at hpD@O*-c-QoSg7f1tF&xx<C>?Gp94Lr%vU+4StN;>TdkM<aV{ge|$-0zLe)
zBlJoqbCel{D>p$-w6|$b%cU#w93Vxca`X-BQftu at AZO8|jlw#8)Lb8ww?XG6vzUI-
z@<PD+@)?tvJvq5H;aIW9x3U$X=RBYVyYh*Hgjti+?|Zrm%9TYWi25h;Qaych;Bb4#
zB@&eySMA->J^QK6Ki6I9p*@bWFt0xaZIIK1YbvNLO=m5OUSKZ-$D)71Q=v*&R!48k
z;PwnX<iG3Oa^n5~{$Y7>v%K at h>15yteasQ$c_q~5 at Uf5o@jAU+F_7<b)4}O=XbXDS
zk+6hBsdWqIFyo^84%vps0{#7J8qOTbjqAfjjj-ij)g12qw&%B6W5WdcZ at q0p9V_!=
zsT5RAxeSup-)lJCW)$wAs}1qy{E137q9%iWxUQ03FSC9BcKPM&WktTrdK2DLXTg9!
zHHEdr_73lejGYmbVoyXDk)pwr8rt1m at VEVur!##TyaOAq&c%Vf^?`R&Gu^g&6zM)k
zXeQ%v2dN_U&-*p#Q)FscC$RUQUt^-xGCX{pn0&TH=fPJeO+*@T#-u<J;vPWjA}1HM
z(7Gs3+f<44Q7EbAQ&6tQM|_T%N-<`dt!8IU(`Wov>f2|&YaO24lZ&Ep6OVwN;Ref@
z<XzjoC6sl^{VL0WDy2CKs{V&N-z5}`!x)c&7cnAF at Mr%Zr>7NgjP+*SUJafmMzI?%
zs(>He2BGb`I261gxAj4NIBQ&wZBBb3?zg+iM+px0u9_OlmZ*8!mh3A+HlL^6#GC9I
zb5lOKS?9oc%-2wq`aTBqrps<I(2gvZFzrTHfSLMVGL#wZp~dyyG!H%ifpEK{>T+}X
z90|3%J<bduULSAQa2hJ7VH6xU29EUFB-gx|_MpXxh?VR-dbwt>yV5N#6EBplzb-By
z4?qsZRGUlEj4JyHetTa8y#dP)l-vtuX{N4-UZ(mIQx;FC(TbN+9ogt?7O&-zKbPBT
zuQ+lWTyD#(R%{22o)A6~|BQp<f&T$imm)#^)K9@~BtWbRjtGuxsR1#&Ov9+K5<LB6
z{)>?3IlsW-_Mj_m){f-H<AeK&&I1 at rM+_^Td0aJTT;1Cr+_yl}%vix~a at f;^!f4k8
z+^}z{HT+jDjl)Q!KqBl9cAHjMPHcEKd2UBeEnxlDX+yf1ZgdB`Nf*U<(cUR=`-EOB
zeXT)lYcv*EMSPJNMl<yiTkhg6JMm#i8Q5{)49d|Pcyc--X?D0Ai33wtow8TpOo!G(
ze=h!XICn+Ue0eQx_h1JkIh0`XZmFpMa*0Fj0Zc(m>SqZ>$Jfpawx4mz*jP&@ymUsb
z!nXmva(M}9a$ACSQ1F?AR^WjBJB0W}p4RpKlhVtr)1YcyG6+Rwg;l?kc%lu(_Rcf(
z3llAs3WX;3l at 8it0(s-khrB5%^Zk5z-DV at a$DFFUJ*v7htGqP_vw6O$UaQ>@KlBs^
z_$rUXs;|di&$4ozdrBTQTu~n;8Zn)RxOMEYXAg?{J23~L-#;8B-sl_=Rm(1Oz0GAu
ztGIZSQCptBaXoEcw%?t&2M%5$&?{?;=&%(ONJ5T&;p`36u<{%0){yTo{wi2-k0E`|
zG at XL$UEHZ;v1GHb$U#^u%x9?LCa0R8N%X>7{BF5L$=(gW%nZrws&v1xC=D(JUy)x{
z-4*(~x)1J_Iq;K^Lagy5iP=LU(-tJi0`q!gSdU;L)67r2Cqog`=q!dz4EA^f8#$A*
z%UE2SJRcur19&8nI9dJ6)<Q3}0$02XAbWk~b#np>p)`1aO8F#`-?rlORi@<UZ$sbx
zSh_$9IBKjzgT=6{r+ at zJL?`^2Xg#0%3CrTnRFhS23n1ikvh7e&GqBU$*%&yf1p&*B
zqIYFPdRVo5IivARx;wm^ZPrB+Ty}`UkU45~25)sfc(ARM#)A$uyrX)_&Vp)oUU;5;
zram~o;|UF1;Xl}WtK^B=kUVbE*C!u7*Ph_9P at yAixm;dkn4x~TYS3xZL=d`Fds8E&
zJI~<$G}237Zjk7cE3QfU at e*QM2WgtxN*ANIKD=oZyu9e3$fY%`{JL|sye^uMw4+z6
zQ+<LWt)+-QY#x2XT}W43`r+=tSqtU9%^EE(7qv1xs8#r>_%;7$O^1;7>#?@&_q0wC
zqREPxmL=)^3P@#)q;)M5B#(eP-ZNAXfPwpPQ!Q$&e`0aAn<HH2s67^F9{_0m=qPt8
zZ-QJ`mVYtO)c^+C+BVHPH|K58kKtkF<B2-UmA4I=?n{Jiw0M0Y+O1p8oq%(~i at C03
zj>}*^j9q|8-ZxlK6F;lAX^9b2InaZ%2QeIWKG9PU;9YBiYkr8`#LU4Mc?6=sQ}J0o
z-=3yLM!^*_b`v8EXdqs1dDItkAtN~;RHaJzsyM{JUzP;kdvUQQDqN;!uo;qoc-Q!2
zWXF554PL}35m}PapCVdu9Y*X_Wtww#RvU_|t()a|N~MNx!60kH at JZ&rcujj at B<b at n
zAjg6Do5z#O;)NQ)agrMywYbE3r6eqJRrX<a3z5;(mzUZ+M!pbKSjLUXcw)wq(_)}<
zPCIbHaO|LD%T{OLboHLh3f&c at KI!}DL5aqNK>!=x{J*l{42w7AY6b5F-|-`6o!=_t
z&Ot~W95b96gnS6JTyCu_$ax1t)9o&mfKD(O0^97HldD680<~3Jg_va{p(8ucZyyQj
zKk9m?1L8@<nG(v!Gy+fh{_=-kT;FsiROVjP at CQx6)~2Sw)%1v4s)mL(@9_BEW8MXX
zSUm=zmc9>dDXgQ_n4G_Jd`uXS;|_}fGx}kwUovj>b-ADoWzZ)tlVK^OD&5Yyo-jbo
zgL(zaBs0b+R$YV6Ys|v&QI|YjO;aGzG($MwSZ#qBQdCR8QoxkXUEQX<s~^qo#lI}b
z3e^j at pZZze1`+}LD}VKb=F7I5v4w02VTjK$O>4OptZPBo2{sB0{ip`e3zmsge;Sj(
zN1$Tc6Z*|0c=zD1=IzG7T1sluKaRWBceK<4F##%wkIsAKli5{!SlP~(X at AuKtZjf|
ztD0D!w13xHgugIeRKA%eh=lk|geEN>8c;j*;!;l1n?yK_tNaBdwSRNL{J_Vipmu41
z(X`LW7!nL6o#;$xjT=0U$W|dDO=lAAKW_5Z4>D5n#^^0HvdhyxP4Yn%UXC#Y>c`~!
z(=tsnRYFiFTB7i+5!SY}V2Z_;b;KPu2k%^O>T6Fy(P&-8J)r>5`fpb7-xQ{qO)^GD
zZ%i|K#}|H!K8)ajVfQ7+(zdo>Rk$}ot+O>$1lYu51~~7Sqw>bhE#u);b*k&%<d436
zy02{y2KV$4AIt7;I{Tq6mAx1HIcs(5fo|t$7AeP~t?k_3#aIk;U(f~bcLlS91q3Ns
z;p<YsHPGLT{XxYa at p{aaRY{(hKFD6a7BRIQIhQIu(%+i}nx{Mzi}uU}|Dat2`SAWt
zZ@^-NHU<W|?TY7mR~es-%H4fo+-*vuCnPwZ?O~8vVqEXY3ee&M@;9pz8uP<*9vqHA
zmT6Cko))huu<x1TT9MpC-?!e^sUYRPt1HJQa~!u>sko~%nz5PICBDA!$@#ame at Be3
z*d+ at oyXVhBnaPoXN30@<BiJmi_0`UE#Qn5e#syV1PNoWhqp4!ur>s8nvuznFRz%K3
zy3TNEoz9e_h|$?pJgf0`NR)fOzMJ)(sYz#aJ5yV3;mY~qg>xDcI;#`BQ`fqXy`oUY
z!^615o5xqF7SVtJl^56`jj<^>knN1h_~z-mQ*>^AQx}kt2q;P0ntgBmfigY{oFQyz
z!I9sfXCw~>3TfM?FcGoJ=>ogn_+b4QZ~`8I{C+)Rgj at hsa~pf|J&$BNYr@@==VN+n
zd#B`vLHz2@%ax|E$w7~U%a0%;(r!1o|KvmJ_Ril<bgdX-esfAmQ3CEwuvjxbMr;(*
zgh<IuzKWIbLaBQ=&ymq<Y|F&Dp7EBz@=l at lHtj}q9TI5gfm{iL16?2b at Y%#O6w5Ge
z?_XuvI|6)*_yWPD%lgesG3j`@W?D8UNh$GAG#c@<LvPA>8ntBKgsRYEji-0aqnw+Q
z&!wTnqDFIw4RiUCbXsrbD?IPC>g*V6L^h`EnMzS*st%`d2DAGg3<1PZ8pL4cE(a?~
zWNVal;gVP98BYY4x6?)-m#raXhH&n#ySt`vQrf>?j{;K0D)JZ^QX+J@*kO)i2!3v|
zbWlF3U$n6W?gCL)96Hr-$Cr4=jnx;b?=fd`-&`Dl)KWeC+2v-|r_VO%))IBZn`+|K
z=gTDb$+%PETGuE{lI`*%GNoKh`*c3Szznu$W;n4x2_Hb)ZO6?sNA7Jjv{(KlLHc67
zo!H2^z(SKm&-z`%>PZKk#wT0>v7Uq#$1O4KA4MquA0S-K0JfKQ>KVf%|BiE##l$##
zDj`*#;os)cDbx~%oc3;a76PK>^sz`GHqEhpa_4O0OEk~K_O~d7rg7UzW}QCW_OGgL
zpDkCFqz=S*`3z=h<8>}-Ed-^!qqxpc9Cjkk^;@pNGPoytF6=Oy?wWjKq}wf?tJe<q
z^Zn$ZC&BNasE5*b?1n!=<9viU*@@TXsfvWU`pu&9lptlijRoX9!ym(KrG0G*UGwSu
z3K!vXEIfijB(F>rR7WfKVO8bpTgel7-eZPnBlg-!uKS?%sbs6IlZ~AV{=b=yaOH|u
zrlUC><9_Uu%J2{-VzR9PvO#t+qznZrr{X_2&FTlOKxuF=(wC484j0G~Ru!>SY%%hs
zYmTd<Df%MI(4}{TZ?A at Cny>q)I(K5vDeoEG@~kRK%Xl^RNLN6MtoAVT|A8R!{eR<Q
zw*`)}0R3)^A#!eY==tJSU1+01XwRu?R)mKnsM?UMLSPyaZ_7VYu3=NaekE&*smrIY
z(-N{RohWe<6ZT1-k<|4BWMkLtO{ZYv+*`();J-G90wG}R_dAZ@{U3s5N%BXVSZzfb
zcjrtk?G~`C<Fp;Glu|#EsdO8qYE6Fn{gDF#v-AsS&VzbNzZGQkTKp at 9)eTe7u-Y=&
zF7`PS*B)HuB`nkN7lrbZyah-*exg^GU7Jk*wE-1KJb51S_6iEBxxShDdjra7eHS=2
zfsWBn?ZQUB at kSPIC~F;9p2JHtB_OMsU(yUwK6E}OvpVUov5 at 8)SBECg>=x(4UyXhu
zcfW)NU~+};#lx7=%)W^A{*UY7Su(OX2L^DeJ$f)U1Y4?ugTKpPR|YZ0TDUfW)`ZUI
z<_=e;Z9R4qCWBtgx_HEO8#@reM}u~C27%5cCtocJPjdeRVf+d4b>teijKQcVE^I=L
zFhpmCPS&(!EZLsu=rn2(u_Ux)>E<J8q(K%3$T<f3je1z#GP&M$jF*fIiCcOV?NY^f
z9YG`j%cCa54ef27lPzw}ibuD+echsX_z)tgkN(8|)vq_zp&vt?659#)p3@%ui>BF@
zgt~Xx)<VicBr?geCOXr_b8~Y^$;b+4Lui=<3MUt<V+3d9jLc(rHjrq+@)Ue~dV4#M
z96A at 9cDMP*i4yLx+O}0dUUMDCS0LmZNr{+B1pHU*mT%n{m@~J`xigqr at be3nX{wfo
z*(Y0<1<el}1(5In`fPnLk)cOXUS6*&NEo2tXCjrYBK1xn!UvY?$_pI!^#vs)Ce9Lx
zChm!gi2+>0iXv7BP+Yi6Tz-$`=|qae`woB#T-45EtiQXyBEhFAFB)_j&9vQ3##W+6
zw?$Le;Q%C5jJm&!p)`wtSs)M<85z)WdS;eCV?SO$hABajWFJDwa}hvV_uoS2=Hz4m
z&X4VZ`{?{e?whE_Q>cJ at v<X;j`yH>>7difXyKXFv_*sz?R9;b*OhlTFVUdu+<X#5|
za>1i<*{MmnR_LK)=Ze5!_^0QGld$4Tu}Vy*q!Q2~eEeydiqQUu#*@~E;a%s*Lx7B)
zGXET7Vni7Qo=F6N!hQVkD>!2M_>%srRrST$H%LXht;nZk$|bdm7`9bLmEj|4#4tXP
zt6vZZzG6?(j-Z3bw*ZnGQ&&hJqu&7FELcjdCj9x<QGQi$=OC=Zya at fd$EiKYc{Y5J
zjb!|VVqvAhvRUMPEcaYRMLDsBFhHj9S%ESLd6<Cjvp^MiD2a)|1zR$W!}xJG`fTo8
zIeH}h*HZF<r{yp3(TOg0mF^xB77Za4Ad|?lp>Db8Sr&wpYTCov94dTCPFT7GSS0#H
zr|dCA<2^JqaKrJqEjHtA_Z(tGFzJcQ6p9sloS$aYPBK6b`FI*PUzHCN`BGTvSa;2P
zzB~`r>C^HMDR7|u4f`!_njsM`Bz}cTyv~9$q64HOcOx+fJBoBJT#R)sY2T5v4L-Xo
z)S#J4Iylsx>6;9ZXclcBy6$aDNlCFZ0uG(KRD$UG2!xPDPp#@(;I=Fu+H;SUIZ_Ua
zneav;b26o8RvH6uKMO<NU}7La27`heGp6N+3&|Mdb7^f|Rg^{9(TAQMdjdiIXd0nJ
z89cHdXolb5se0;^@w6w{lTXJ!3x!?vZK_n1iE{O6PDtDA@;w?qr=R9?-__k+RP1;1
zF|{=J+%@|({J6V+1IdQCHo6^qJCwdGq#afcJFH}bk2H~A-sSyu_4b~lYPzlQLFoeb
z$&6{c{PElLh{{sSpq+8=-Nok(=^AlKeA_Lg1TIfq>D1wt;k5y#gU=H!HMl$XX-X$#
z=`aXc=WGm3yIWQHKeN73c+gEvtaNs1T$z}UY<|n#iDKhSc)g^1wJhsqlQ*S0)$aj%
zy2b#7NWsQjC629uN$7_3XQYexCy)nN4?oZ5Tjb>dHgjT(yBvzPyzi<hAv4o0{)f at s
zJ?F9{Y at iukayPo4TLM;kyZUTTsX`=$ExavCqgkDr;=U&eLs>x)PBwZ~wUyUAPpO*^
zxzZalOzUq?KPwkEB_<vZbvN1{SXU<HUEtoniFnorp}%+FZFZ)**-_aM-cqrU$>uZV
z9KPeMSRAYNFM_Y(8RG*iY0OXn=`nDkDXE?HJuqa&_PZ<1h(Jct_6HiADOWSbWQ}ek
zpB63{+w6TxM*8I;Owr(V>$xE~t;KqF+5`wq9B9dSx?Dpv>h3PrJni{vV<)R?vrvpk
z{|H5{P!YKD9vKzJ6(=1;T#Y*fX{R^ExUIM|nx34*oE4DZUDe7q?<^mU8xb6zF7Ix4
zrQgHqQ+E at pEO!Yz?sn!TJP%SRJ$DhL>2K at _V97|^y(PI|3*skNwn4TWyaDKW?3yb!
zNXwOj_M{#mE}m}gCsf&q@`;?R&Nne!%Czn>Z`R$b7 at VIvFV4E`3J;K+bT>@I4O7cK
zorr9d3>ysYJEc}3vL8jNL3c6;9Z8<`HVs?%JUhbGLW(HZykg_-(fkW-1-3q&yDUoF
z&f;lDy(lYsIN@{j1_L|6``aoJe~mEzaCA1vJ;!BaS)%Y+M&5{%`wrSOv8rA8`7y*Y
z?3zw;xMsL{S>?FZ${evwf^Q|&T@&1z>*glsi|-hSw#V?GJHA51&)xe<jHf49)<0`7
zfrAV;ft15}@C7FQave6Naq=bK<3RRvZZUc(#a9`5Nd?VF#o_|_hR)b*D_3qn4dodC
z!*McGr9K+%yA3A_?Rt(u40jVGj=)^(fVv(Wl|AZlK at f`TfrV;j6tN(v;U5vV5`+e~
z;_WAfmbK!KX1#MB5qWW~L+Mls;nAk|{+P7}mf_`|E?DZA|9UvOCp8%Eq{~pVTYI%$
z^PB at mS5WQkNu6qi_5s2N&YdG?rElRgG*3|55*A@#H$$Dr*_s<wFy)yS1w>Al at q123
zdv#VnvS3=e11hvTh5S*zjkh?htVcI{Tu46Na&NE2?_qt at I_6qzv_hp`dPJjKiR`>|
z7hmzhdwlrB at iCKABc<luiwZYhxjQp-o8~1naWz-yh~vY)p*%eo%#7;3C#!gB8*@`H
z-#IZskbs#W3)cW8*MO!$X&06lg)QT;?&F#NmRgExV&66k+PXmPP<9CFI=DbGh`?<G
zdBxL_sG3`HIgUTvp84e950^6gxPxBMetX~AwrY`tdrNnU%_ZkMY4{ymcd1X_KMYHX
zMwE>_I6uFpm6Iqy6+bI+TKVvPRxf!qpK%@&bOS<3!Gl<()`R{1<tv5o;IVsxh4!uK
z%Mdy{Xd|)~CKT6X-BZBP<J<?$)(?)nOmIVZG3eKuvX9R+<*TuupTpZ;o=$F^Zwz><
zmTyNM0x%i^h7x?!hD5D4X{D+dD(u!|51Scr_DJA#chHb|JN;LKsX6Hk&e)Z>-Mvm=
z$u3QMRuKpA5hLfhVjqyJPiDUqKZyoEl64*5aDjL at e<-V`g=wLALD=BxjFKBSrURO}
zIsVcL;yJwG!)hGNnRW;DP6^28m}o04^Z1Fa?8u$$Ewm)~@hw@|t}{wm6EdqBxvp)Z
z$KDgVhk%sYUG#y|GX^C4N?<V$9p at cab3(LlHM6YctC>CP8AAKOZ8cDt*HnXxqTa#m
zUJs!3yToGk-RZSbN}>qV#RUeT>aZS;#$- at R#BR4x`8Ywc=ubg&9HiZrFleVq{lQeJ
zHa(lRf+_mxXm#L6+m4E%h9|FyRYUANzXht=OL<*DEBlNJ>rA&R!A&T($^Bi3+Lyea
z=!A*jFVth%rbxm9*WoBu3_zF0Yl at 9ekaWoRM9&iypx20rP04WTvjy^y_Vju_T0Y)T
zXl5!0z#1(9-BRm?8d^QK$3{g+zURJi#eU%$QTn)VMV%|NHgmf$aS$ptJ*4heKG$My
z^y52suTKP5plUge*LUt?Z|anm2z&N9{q&H!w0c~=w1-g=9_|GncWjMsH*dg%g574_
zK(ryxOSvDuMtXpid){f at -rK#uJ{j76q83Otz{X2nCNxUX&!JoLpM`0Nze}+piDw7f
zyR>`X#+m!J1QNt=+c3FeW7l}o?F?*$#_yu*eRVo5lvw<5=eI+cgohCvLCFiLjOR1$
zgT+jV=0v8!D$LD<;{_}>AJ#md^ELwc?UZ3mIit69L3~YRdp|tR_^?;S&qiM2Q??q&
zKRMMFQays0mkza?0*@FHr>Lh66>pMw+%gxcy-bFXx3R|_yoW=6RvzBwENuVf6Yv(q
zZ%0XaL`uN^CtXKQ*P)GVF(Z)3U09}mKYmlGzF&UDAqM=9(H)}R?9fx|Le8^0RElsr
zAc6K6*fYtJ<ZgsoPxsheNBP3<62h~+esRU>T{}(1C7=x6hzm++ZpNFIxZ`AwNDEqE
z{!!m)H>gC9sP1`d3hiP2 at fiD=euH{zGeOK+JKCU{emS78uB0>fvy2sO7mMY{<Or?%
z_CbQDtsMSbpx`~sgw=$9VS-z>)a|m}3xQpas2tNhJy;NBqV;YFD%OtQlb}Ll{QG{l
zq6ts;UCGAbUw(Ms|MJ5x1N`t1jXzXgKBt$c?HtSIa4TI5w*>*y6;KaZ-F2;OBx{1%
zGM1yPG0{RB9>P-PLwtm5Mfu#qh~&6TdPwx+-8#>^-dff5&x7ripE??*<|qe0Tg);e
zKsmz)5Z7z98$oN}J|1^9aTQnHbd|&&|CC9DN%C~%*$rHT6qkhdAQX)tCVk?>rrf8>
z=O*qMP}IqW5DzbEjIXz9G~R at H^<hzkTmSN5g^&ph548vbvBkG^B_?C6L|<Ka<}yqn
z4twZ?ZLNP~jnR)Fyad>=U`5$)2=odQU%l?^gRfq9RHvU_cPCobmTGiAw<vWH5f4{Y
z{080LaDd}X0zXSKqFJrH0(AJ6uuE(JD-$$dik7+o<Le+m7aVULEF{~m^&`d3y<gM)
zOp+n`#il2nD~e{~aI7Tj4Fi>(<`<k|yk7T^`3;%_&oD+Z^23%-<xnX*&2%_OD@~}y
zJ1~CHrV>Pnv6rapj3cQcaXatSh*>Hp+ZsQrUc5zF=Z5GVODb=)t3t2LpK4UD!XJ(M
zQdFEzWIB4GyfL(aIW1B-Q!mlc%#Lti%{-zrJy)k$WdK9nu!(4QvW)X8s$HlxAFDQ&
z>*^I+M|ErY1+19xX;BPn{5d1w>HeyIr-5Jmd8Eu}jCt%^c-mS)8I`Np7{JO=ZL|zc
zMrLi)vvMF|ltY%eWITc7sI~bcs{U>}ndCH$y+Nk`(;<xx3)9~odAjDL9UE*5-D*qR
z*oOSHXg6)26>4N=i4W$YJRW at fCbnlK$c at cNix9%}uCi1kl!`Kanx5Z9&J5^4Fj<0y
zs!-o+?n^?BNe}g{Pyqp%mS#rJ4BYl(`gXWG*^e2hF=^w at CvF9_eBP{7llTZ+x>ORz
z5u*I=f<2mapFoqOtqJ(5yli;7d95G%*YtU6aJkysm(eX`>{Ly6bChYP61s*h5DqpW
zRp3t1u^eD{(4<$iTVDOP%}e8f_8UQ<grtkBAUcyQo#g at wdR}F=rlT;%o}irSUodo$
zF;nrwmzY1M`rHusST{p%gK8UP8LVi46u0eSm`&lNgLmR|IK!6w6HP6~PgDJcL6y+N
zJ^+N%0tcqQ at iCc{h!9Jor*@KJ4|LM9Vc!c1I-`H2OnaMm4$96ES`H{hk0unSrY9f2
z+EpGj0&Mpdby#ScZWY?^W9^0X?}!tbXgcKh3-0sEQELnWwSmv?zK#SR4vnZmZ;T27
zHuH?kpF%szT!@(aXkDBEGJXu98L|Iah)z7p#?T1I59rrZl>D^iPfGx7`G8a))GKr-
z4$q99OP<S+T-dZn!WIC}0m?{h`3zV{seNhP&AjB|W>)ockVI?bTpd=FgMt}Bq=Znz
zLUw)?SzQEpIujMs&5+9KNkL0(UEYZYa_=fatJ_oU at Zzl;#&G+%kwjyn*ni8#Rc at 9P
zjE*!6NGWPJnktkO4m2pTBN;2XK-qXqRiDXxSc@#3YFK<hK7>5<SQ_Dq#UBl~!_%**
z#S%Peo=;#(3U>7>C>ugfo}au2Xc2lTR*y<B07_)S$L}GrkOa>kmi?y?EriBfXOnVw
z#UkT4$}8t>T6iDgh7lYq*yF=&JnlQdp7YD~Pq-B#*NFUDJX>9Z=9p?wW)biwvshX{
zn at 6>{4R2lmYUp(LJ{P}NIn(MP079E`y+fen+E4W-%|%BUAl=wfYd!9!2Pn*3uC1<u
zZAtJogJ1gri2QdyfQhDXCC4rumum~IkrsfM8u1$vknOD4r%zwBA<SpWQs48-$;pL{
z#Jdd-mbtKV#!o8%)DOu>8Dud at 6X;mv8+_`F0sUq!7!2gP0s=mjH_L_uHGSDd4THom
z3hGQl7A_TD{Z7nsX2Dy6l-d8$E<k0;olza43lgZRju$lFEpOA75LM<blf*SBdL-Fl
zqPHJV02hL0`FNFJj}QsEuWbA+JB$A<I|E>2*{MaPxo+0|#G2tceNp(DUu`JWuL0e3
zlmztqNDzw11&alWFmzG?y#&(S!u3K6l=$?K-jiFOJ2P;*(uIrRX##MKw*>f0CzZ3D
z`Lt&bDSxWA{x3I(&35u96=NI*DA}zJ>@?5)@mXvh621jw;@w#vHkJpEohM9+zFamN
zIk*S9;NzzgL7cOF9l{3wzzL&67TcmCZ~)YdS_oJuHK2MWr1}MG&V_1jV{$>kH$;h5
zlw5n=7hl(UN4flEbj>GC at YEP)eY~!qCR3E&yB5Dg0V*N at oc&N(W99~&H#I>nDv;3M
zkZ9m>jM-NE6Uox?_EO>ui^_Z)q7>49Jfke*HO6O3=@-Lh=atdP2D6`}cS&n$*hb5F
zC&?B^BPr*VL@>FSZWvJ(kqx?^;zh<dG@`KUoVp?n^;3W+&-XXA)#;2sE;NE4CzFQR
zF{!jsm{gfXq}**(UCoa()A at K_vY}JM`U>IvYSn=NVFgC=0!j>Cnr_`wFH;_hqu+d}
zk7Nu0g&iR1?=*i?dcQ0#IPU^yV=SDDMk?uPdIRG!ecdl{VNqj)#C33DOS=GHGT^nY
zbx(Z!mp2gg0_Crdm5mf-Y1W3=@@56Oiedka4!Ww+%F&sG7>tYleLX=mr2O<lq=*<j
zIDg}YST}t?2tr1doIZVYpllN;4ueU2+_=l%KPYw%#I&E-_?jPj5W?OK745U5HXe1h
z?nkyfROYtwb)$AQH%>;CQ4U1@>xS6*1=cE;3)H_8a1BbzDqz>oPuzKc$iBBkAiU=y
zvfkaltC#eOyaBY&QaTF@#T9mY<Ys-tRn;=T?8fD at h=wbjI3eD=P^KC$S(aYV&%s&Q
z#G#utJD711TLHd!Uxf9Kl;GUXpBk10%6}G0fS>?qcl0w90+4q;qWTT>YX4wc*dQcB
z9Ik_c!y`n1zwaZDikg?4k&lPFs#dp88*g5w&|lpecw}%EbIw9C%J`3!IYigEG-!Q@
z-JidzFzhWJa9e;`UAnJMj-Be8V?vg&!*faK{;Mb at e<$tJA45cU-^E7yDKVBJ*cMWb
z4UDXtOd>l=?n$L4_)8WES#6imC(O6Yv~ODIE!w+^y-Pqy<`5<5%!cU)F_s~S#wMr@
z)uY|9+^2<|**vY$MnBR?`|iNgDr#t0VB7%rf`~W;tyfKHX+5ZE-ml|$ckv}wf4eWY
z)qA5#g+{$&pMKkP)#i+nP|abLicQ1}!^JYP>2Y(ar>ME|G)O;q`Mb?S|0_`VkH0}0
z_>n$hW803^ed+QsEj+tsQbex6ZsB6Gt}d#hN=AWCbpv~t^Ea<}5&TK?sD$4b3`dIh
zt^-wt1<G5-og8<7HDL;2_qlcC{H{s2eKH<+kA><D^C&ra+*q?*`w=IIu at Mj@>u!_9
z5x&;(JkLDYa&fz-%h!HuF;EJlRmhdGQh?g%+^Q$JI_2EM{i}~{j$P~90bJ~N;pn5k
zza$<AUwG0TEtyUMI)(fR_}t1xqz!bMY3cYC`u*Cdj%e#LI#iC?%Puv$#uGSUZmG0Z
zBbskPrS-Mx<z$wL(9Pt6nh at 0*vMdDuX`~V)M>OU&Ur5V}{8FnQNGpCIVawecUFMm(
zHF2Ia(d`&^R#&riO9`vqEJWUY-Y1XGw&@`&u9N?azEi%Sj9jezdkJ*C1qw%tO_Rhx
zB2WHFywK<h>JtN0BiG9h;yKLkZPI>JBuy;0+#{Ina)H?1*A>~xG}D2X%GzBD1;&Gg
zFjZIA+r*~3gYJHxjw_Lp4OQVIB!R&)1ooM8Zwpl%#HCDkVI=K(7)c^LU8U?P at GsPm
zZg9!^qgeMPY2U-~aLnL993cJ8;%uM`l<tSvib%SGjty5J1y_Ar-CAP3^%SGke?%@>
zrotIYX=k*AG$>z*xQdAAZMJVR at BMH_U?QW!!E&TK)xbZI#I4#BI)49SE$v_Ou+|{r
z_8$jTwcdCUCbEt92YQ1TfG80!?g306(sSG&RdJYzp~HHBRX*qxd&P%J^*SZ2_6jA(
z^UrL(0owD3hv-e|(7VmOvGQ}Z1~H*_qIuVBhq51}XB_-VutFb0V%Klyb7|2ebmyyZ
zJyypYnfH5x8OG>M7Eh{BV9hw*wygB>G?i9G`Yq%)r<lb4GN)~rnFEg_C>~D at mNeyj
z36O&K6diCv6DIRxj^u)K)NKXA=QviPFL}z%Bz5NbUIUcs=PwQ<wD*{jIy%D$%>njr
zU;d-}L}?uZXvQC!wm>|iS-f?GjHiV_G<8wV>70MKo211_gWiRjO!^4%@?e>oN<o5?
z1`8Z{c`%+fNSBUJg{gu93{SJ)t>TmD$KD_nz7vtyrd6UAybUNekE)ms`pYC<INGC`
z!LD;ezGIRZ;+yLyo9K<vQD at eH93CoYIg9y7!!S*^%$eQaHgh1N)v8xO2uBAeS0G0H
zY8_Kv%}X`_^S3hN-G>imvbLoLM8HAST>iU*86167K9Z((vI>b`6&LW45{K8$=a&`B
zfA`SQG6mjZ42!eAz;wSt&cdbX&y7gqrOf7F at -3|BiIzxXtnC31XEOgmw7nDJS at a6N
zrlfHky~i*N#kv|N at 7K<X{9TOmb{D9th#mm;_uqjA2qAf#O6p2kaeE7Wj6UXD#B%5N
zEcz&slI+UZStH=+U>Wz)--`nf$hCf&hRB3-v6jF2p7W%5yBLwhzLH+9o+B+(X`<Z)
zR7oNff8Re?oLm}^0FTSE^@fQ$x)lO6>-fO(c17X_h%zSe8Au6-<FYDJfA%FFh`<G+
zA{iD=YUlp?)t3L@{?$tJ7Aw1StNB9c26jcvTwR&ssMY<b=A55vA<)o{h7=vIR9WB6
zl84N&NE_`wFpcW&ng1RrBQ!uwf{;od)py$1CFxT4PPS3wt5XI2$HeXJ3iVHBK{Aa`
zY<|qUGj(8!9Jg3{!MHGJhVj$I*)EL at ibj0?U;UdCm&N{Z7qmO`|B^t4W;4luVP6(7
zHA-1aPSfCp at x1bnZ~^4XSPC_;%Q?P`(9PO!T=W;cf<A*NgG&Oht?#cYI*@%TxxJBE
zqoKTu?WVer&e*<V_i{}KMh(Bp4O7PzzMx%EdSL==EQ;l60rcLy&y3*iQ5LUG+(WKN
z{4Gfp3v9(lviX{ntAwDZ6o`Vq<S6g)SIVpX`yCxpd<bItBz1r8b!|Gvm?)|HGez&w
zgm#PpBdvn at SCGQspY7h+1tvRkkR3C?I+{rQ1S17J^B6};DaD??qwM4D1MV$E$t7nv
zhGKMcqo2yK>e%a5NTW<`0z|3hA)?CuE}?1qD{+93SMM#a@~bCT%_^x_0j`m`1-8_V
z(UumS^Y?nj2QB!tQO|}Wsman3DEk)$Z=Q3ib4sz|BOx^?kpJ-Pbs3xwhlYlA;zoyO
z+k?|eN9 at zp#?fu~4B2iq-Nn>@KT7hnZvCE;wZ{%B+a~_aN*U;|8Mq=dkm9I)fiGjQ
z_zg?@{mfpv$A`#?ZZsOtfAuDIWSE$0g->)AYDOh#zun8yz at IWwd;~T~Il6^f02|mk
zc8v9_<E17{NnnW?F`K!_WU1M==`;5im?c9klNUu4F#nKZ;m}NwVu4Aw|G%_^)NkDp
zNPt}6<ly1c_~ma|1b`7tdea;7KP3UaIIbt|#N$O`!AX;|h}qrBN~h-**pF>Q3G^P2
ziYL^opn0^`G7}tEng|v0)b5>*>E`39T*O_5%?XlxAgTSfub$d0lxl`iKwqH+p1g=1
z;DPHm8~$%dKEGYxD){ND?WQ<kTF;{05Rp3het(s|YImytm&YoShmGYw87=_;!)2nN
ziS1YT)7b?sjO4O*r%?O}5)uvV>lO#MI^cNJP1F at Wi~o|4c;jgxX=*z at lWI<zYQFjH
zoNW^mh5$R<mckk?^H34)=5de2OJnp*n_xSjwcBNEPS*?v8u~;%Dfc at j&`I(%uINj?
z&8Nli*yB`N(^&LMf?9^crBU~DG24WlEMnJbcGkT(Be53WA>?w2Dq-p;N<*Zw<UiL>
z(d(j86F%%`Y<;|=mrI)g_>^p}biMtsxmEg=FQ%RP=wfde__$Ss2O5<5bZm!1JIw49
z-kWr1{b{QJ4NR{XLqB=iEU$6Anbr}#9N&c$eVc<eB8E-0!;m at en<(Hio71B*<nli9
zN7>E1?`GUu`PcuCg5;Nc;us+B`7NJ_`8XMPAsrL<BS_-Qt8`JmM1JCDSA!D9TCRT_
zp(#w>Hc5g5_0D0fE|4-2 at eBt7areLXg9+vMWmdGVY0$hL?GneoIt}rp!UNP4tq|h>
zYV^9b$bZ{_0Dsn09WyQW$2KMXe>3HTV*Rdk_D%n3I|x8N0JSyz-#!<$^Rzgb00bJO
z1j3~iTg#Aq+5ffB0Sq^xT7K9%dmKlTJWd8T at C`~Td2}Lw%sdgGxf*AXxn+3|prO$>
zBKDCLL9ko3b;Yud+QaCuWs5s@)QPGuAOqZYtz!pSDE~@XvO>M;)w3||0ZM|dhp#^+
z3%x%TV`?e@;llhZ;j31Qx}B_=x2=`x+xqtv{E5kI5uDKzA at hp+@5Vnk`n^%Z(7(D$
zb)<bJUZ1m{3sZt>sre at z2UIYz|69GJpGf$R7qc`s6>*&Q^lf^1deG;#P&l}hE-%HQ
zD7p;ph2l5v>`y4Y!Chrb^-8i6u9-C^GEHv&)qj+r01DOza*}t=SP5wk=Oo;53=`Av
zHZT9Pbf;m9l2FS>@51l%ISwr6hdse?jqCmzLtzIYaONE`s=XUqPkd)pk}_H|)KndL
zIN&BXW-hURp4sXd5x$tTG!uJFi2D*b(@pkOd6n`dW<BOpOv`nT0ouEYDGAH!VDRL$
zgb>La3BksdH%XDq at FQ)Pz#el?5|32H8Dk67Y`UbxWzAsGah3ubu$V at 6$SVKzeE>{;
zyQmjAV|en!+NJ$O2x)H3WM4(jxcP|O3P89pBB)SP%YPK%SndIe)i}})(CK}Fvab1*
zFJCr5#8sVz&!~+voI)-`hY4n$sqp(v!c&3vvner#cSLhuA?FZ?cC(QJ>WN<JHvLKS
z4}Lp!FoIC)E at eX2sHn}&ScV?~syh}a>!r|qE8U%z1lySj*0G#74LE{pebAaS?wm6@
z{p%Opo=6wH&0o$7L5c?RgMO~s*Vw`nijV=x)VNE={Ff%HNb*&a<xVV{oDoDtmoy4B
zQm%qB&e(D~8bXtifo?R<2-y=->2OROgg*Pw5$UpD_-DG|4?tOEmQP?~gnlDGB53Z|
z+0Y?{T at 8f!oL`I#Vaj|95VCj>xaO-78jyScE%yM46%hc?Q9IDc`;Q<ertve#F(z}>
zQf5z2hmLPN;&}El-4JdJamMo-!_=t!I~rXC(j6Pgm`wkj+;ba}8|1XhS0iHAYaSdN
z-#^z&JO2a9gjrEc at XS5hHDZG%&00o{uQch;<BuwVcI_L7LT~92v5~)u5Da9jfkbgk
zy86@(e+r8S3M4Q^i~q{){v#ZrZT*eD^byzF4gUA_K>z7S6e})37uTmr7M9zqtrL?T
zFygG9Tt1vY5NjcAQSM at t_`M=tUsWt9znN$qM`?z>zD76#)duFCe#*Bl>uh at en6t{*
zTN2vX5HO~GpWrc4OZ?KbKV!-O6$fSv#54`WJP5W?kP%85IBnltot06Z7J2juenjTJ
z0ze(p5}t?)%Nk+1VxP6e95k%3Q1H6r21l&Fwh`|WAiLEdt2YvFOqJ-`%cR8p+l2)n
ze^KrX;`PlRSyvW3+Pk8%8+mr6`x1;B+kMKmw){g*vB!rLu7XG~1j-81e6-vWs>JD(
z<wy1InEAkQ55ov&c#C~?tKkIRVvr}NC&_a&9ZA0?&|lB41qJM1mSe}jpD&)jlORLq
zN6%_Re?|4sW#Qs5HbDGE!Pm4p0FWU-7^6FNzPaqL2SO@;TM3)OINw|4iKD^A4Eot|
zUn9SDbwO<wgetqUP_DWy;IBRg8IZvKe$ngacA33O{e_{uxGJ3biv@!vG#jk4iL-<R
z)z!X8NwX6aT!&NiDqxd>5`W^)dO+)&a?S>bw&okO`pD%7HG8(;+G=#X<Bzii5k)M&
zK_7r}4GtK>I`?*e6azW--q#R;gc_i3FBjLzB8{yP)L)mS>)!3#$d8PS%!nJ?HFJSu
z=A=VQJx&g_gB;0D3_0CT6dR*=guC9{UN2S`Iw+Z!aMg%dm<jLpe7VT}SW`c(3|52x
zJ4+C4M+HrhB$+3PU!91!IQ at PscYCe{<Z#ICqeDLObzBx11ugs34gnI<$bcOTyYKmH
z*>Exe*YasE^3;e at yhD3|hjf+A?<`O9MX|LYW`NFQ7s9PsA1nMDSV-GF><?k4s`Lx4
zD5A|&YNlp_F6=|wynL{qeDlvT;}Z|R{tT3)?n*q-?e3GVRh<NXl^%-<V}xOOnPsz)
zaS%9!fPhtuvlXQw`$uAuY=9(A29CD&Qs#dNW<5NMN$-!k62(sRvu7lFL{b^mz7IQo
zv+IJ~T(nk5jmh`>_kSxycp4X79dER5TGiZKo2ht!TvUijE3#WtC>BHDsl)^MI1E8h
zaG!zC at ++;s!%alR#i3rc>xhLCUv^v+D+(CJfG*y at EIgn(6&JZIwE<W1E*AtzMaIy2
zyV)~DY-gtjDK5K?iB>h*AsywA3=MwR$uky`7}*lMt1ome4Hw9bQ6WtVvZR#(5zhr>
z7AA+ABlsaWJBzcT_MrN}-J5h!qilNO=cfCz{mk9t8G4q!f^9l%8OAiD#`5SI)i~VX
zdc9{Z<fb(;%%n*19v{@#3mzW$6VE$V(4O$62 at Oy8D9(>B>aH#Na0}S2q;1r0#t at nY
z^VN6i2MfpvyGef2FQwcI9!+rHeBiid?*pdB1Zft~FpkEvE5^1*oF`S5*-FHOrnCTe
zd<XP;`*v42AdW2Kcy)&gB&o%*q$JeYDo^)`=T_~=(v`~M(uK(n99w%Z3wwCw^VBa&
zCg5SS-QjH8=nI}NPjx{wv_YZM#;vU_r;-nYDC`STxR~ns2$QA1o*D2D-&*j!dKuTm
z!~qIINk#UXhXGBq?%)}-qxpC<0Fl_ovJ(J}q4Pn|ZL%i}%dqLFR<%C9+VJ*^To`VK
zhERrp;K7^Y$$)g&mhj5*m5=>ts^>bhAKxZ6u2kUoGyXL_@?LM!(SlutghJ7y;K%FE
zrtYLqxAHVvT!^q*c~>SUV|Ew%`A!4`DH7gH`HMeQzB8;zAk+9~4!qz=!{2b_?Ua*w
zyTM{HQ*!j|9qDxjlR=OXDazLQ(lDDt3Fz6WvWoW0{P_jI?g11z<neS*)K*zd$1x1S
z%;LM{(X`BDq-Fnb&o=s&3tm*>ud8$6SNlnIdAQChI3a(Ku*_Ohx`nCm3u0aUAf@?h
z9MvD*Wc57=a+2OEd3^r@=8OhGrr(<7jS>Yo%!u{BZm85~SGZ&|KsCL%m{Jm|QxkI&
zZ$VL<O^}@%{%!yFx&gd{QT%sWH4M}MdRj~ka4>`6xgSxFbkA9s(E*gWx|RH+EStR~
zVn4MoAK$Mf at w(zt`Mrum&x$@ANjj)nGrVjOG6Qz^e6zI<zn})aKEz~p$1)uINtvJ_
zH;jcJvU=6wLcM_HvjZrPwS2<EuI$Bm)uDc_uh*L~@p$D#=fFqEbxbSZh4iKXtz at Kg
zxw~`_)w_O!V?X@%7 at xFjX-7t{lK-Jg1Y~?}dfEWMm(>FL$ZzG6<O&0wk^fn)Ji71O
zQ3Rzv-BC)3K8_>o%b;sUw4AzgUykzCx?Jr~(jH8gR$(w0%wia($jora`b at XOW0V2~
zDyw^`eX;uDyPjXKqN-}%=?~NA at 5pfKonzz2SPXafXSTeLh29Xt>mlVJMaXv0U;}!w
zvdrCI?nU38LJ2F8UHMj|C8pbri#VM3k&vim=jIYQ?{c2=;i|{-m0nBfRVxZNdeoCc
zRzi#iX$l)HeVcy^r=;B(P~+Ek_$3$e&x9<10w=SynNldWn9{J^RM#zI8u at _34Rc!r
z`J!NJsebTTf at w99!3lpuOu(Ji8%!Fw8_4-Wji>@%G6gvQ=`|d@^Dg_8 at wptwyqwda
zT0NlE6priO<b02$XS;|@5zr<_K(Lsdz@=Kw-bn#FEMnI>f|M(%H at HBNkHTNl`}b^O
zVtOyPI97vPFX&KwE at O1#4>#p3y8}3Y<s-a)7+odAny;Opb%Wweww0P;f&E?_Bgyvh
zzxx8f124b=yPizVD3+?|o6eL;{2*=p089 at Fn<0w>e4o(zv6(!0yZ6#5-j{|VRu!dN
z=)SzQwnwqVZGyS^Dcl^wA;K!#ZY9-q;lTk*&lMW$>r0%500gP<pAV;i0$8HObsk{P
zGd`Fpmnyre-=4V;>$7Y=6Fk>93Jp5R_IlLeFuO(NY_0c&(Ja|tX=_^xQ5dcBBcN9a
z$mXZ-kJuN3IU8nAHvfJxRQr4sR!9p!ZhxQ>eRMUWYBtE**;#kxlB=Wldvx%?O95{J
zNn5cxB6bf%1Os4kOqvcWLyjtXakZn0H<snC!fqEXZ+p0pRRwU)O)s+|_71Fkc?2u8
z5m&LUx*>_pQ4!S79 at CHF9XTy2n735E6cE6kZS^;HUmSj!7_Pxd;xgXgvTj+rTTII7
z8wWqGs492qpKgF<rgrNHf9PU#B^&Zl=g*w4^$4SKvS=u!XjQ!v#6siLH}rfUQ^n)Z
z7y-BYRA}<pt^H_wQX!ylsHrH*brbK&Jrv%u8>E+BsY7vLUeW8pyyS6~zgR(MT4QL)
zVKk$`wB&K#ZWEGOI+W1OaPjb&qo~PbdOr2DM8(FiJ0X)}(}(0Rl#%@K6xAZ9mad1*
zo%`_sD9yI31hlRDOSbMiMN`AI#G3S}Yt`agn+FxxVwJ6^DXE6Var2Mc+1xMry3Hu*
z>29gY1GYDFXk|(94z;RRt;2TPYEy}9vB}A8HCV%mX55bx^MmfWNa-G50 at qa{Ou5Qm
zO5#hPfuhFxt%^PdBOyjtDSa2ZI14T)wX8L5J)>ya>zS+VVG_Vz7mJH)n<WE(PL_CD
zdiQX5DR#)3Y at CmCCeUPiM(ny_X?wW6QdTiJZ&FT-#o`coRjA|MTzY4X<=S;~Xi2Br
zFI;j|y5(@;Nm)0PIedVTiPBVrvBF$lk?i^CRa%BWBMWi6_yCKmhd1BSSL8)GWxr5l
z(6m?dVk#unIOOqoTa;rlR&G(vM<QNBlJ43=>~W9%z%7*{<)O-MK<*9Qd7>$3U)MN~
z%4M9dPB#$F>7jWrQJU!cogzhwYez$&Sz~?a!uBbw4Y}3hfR3jBYR at +KqI7<^oxzm5
z__$6GrvJ#4t;8fo(12yj<|6FTjq(Pw|0AHXADo`I7h2Tnl|oN-sQYJ1W0U15=r5 at D
z#kaTd%x}r?zLn#-m$#@ejv at jF`w<|FA>u1Y6Va;x38%sUy{A&JiZE(yHkDfTsN;-h
zO)e2?q;JS)w8<R=YfCn+GOJ&z+x*17vH9WXVZu|(&_59C#I at Vy3ic+9(rIw`<59Hs
z)TP?Pap+cN9 at V2ur~hd<b-_XWLXC*Jl1wV=l7?s;gJxASby7-6<uSaXvSI6Or8?c&
zHvFO)Qd^=%p^0kED6uE7yRN`Bs_S7*droHy#hPaL8&~%Y(Wbq{Yma2&1qrDVXtDe;
zr4ZH9jFIi!y|XGCe at h(;{o9g*G>DCpG~!hZU794iq3~p<kkqBt7qmyp8}_zL>$3XA
zh2>?f;uSM7MH+?${jDyKFJ`J2j!h>~EaqmT;Jy!G(#$0X=7t(CADRxr`y52R89uW;
zg<yIN*3O{LgB`J+ at T5d**u2o&_Rkv55W1((>o7csUo!+;%%K4eEKR*;a5c7H!&bRm
z at H#S{S(tmjWBTGNG9?4KuXFgxGd|6kZ(M6S+OuxDp3ClYEnJr#&PwQA+#P0n0 at 1eI
zH1^QW<F4C7xMz#}SMIgBdJd);7NYVM!^49kTjcVUqU~-=Pt@>EWB?ZWtk&cpSXHBs
zZMtFzWKqWz*WXuOiLwf>@d9>q)=2JSc+7!vWZ2V?yLf<4f%geY*<snYVQ0jiN|`N&
z9qksVYFqW~b4Z6ZCK?x5djMOAfv+y=rSsV%l{GfyvF&v8rRk5InBC;V;gGyp8q{sB
zo*}^6BF0Mh9H*|DILwh at _p^0ab8cRqNt|RN+PI3bUv#~Kb)_X#dzn}CH(hMF*6bwl
z#bTH at 7#h+B$20DoAL%3s-LsAF^@Wl;jcwX~a2TI>7Z{p%R?wheVzWLV+FDKRJpX*e
z0=`hnlA2WSDrm+Seq(O?QIfQG-V<Y5W5N>dAwME<$mDIqch~hhhuawst^ZTkb;q;a
zc6}|a)l#ZeHDZs_Dq36Yy=qi#C6ty_sZH#?S4(SEQPf_ssTn&~39<KzQ6z})=6>Gi
zz8}x~`Mmi**E!c2-|PIo=lrgpyG2c-nfRhoTC-QkED-gj+_|pnjk#~E+040Tnvi2;
zh9pXu9&#!KT|k?l(znm1As_P*_w3(HpV(Ve@%!Q_$gD*)>Lbt^hYSnwIL%fDcl$>O
z+wOisCn)bi`+diD-i>VqBJ-!kq$zMija?U_HU$|U&-Jm#;1R=l2(%ndmo{?(+KGrx
z&%$lSxE)l_qIReBcJ^!6bBQSoCJ=Bw6YHuUvtWSarB@@?qyxN_D~<ThT2yF%DL(nW
zl^^rOyTjh8k$4B%Pv&%_`Yc9#bhqKs#7$Q8iTX5ex6i667Jg~z<~Fvzv$cTjJ84GR
zJGaM)`AxeDA1B;JwM<PSo_iOUhh^PXnETY8e(@S}QGI96HfpBf1rHE2bN|DI8O3_S
z;G*X6-sfrDrFq>R{T#`I5D`^gpj%4}fa=NX(%fw?nxQuPcAvELG{?*Hypb=kMhAc;
zlP!oEURxis90pxo(`##jG1v at U9%k+Eo=&QxeKgni_TN5STRRJLSYJ7ofKiZsJc at m)
z%%8E(n}(Hxnes{S&l%z)l~3Zln5TF9a*0#~S?2gSo%W+?){Qy{3hp*g%j<`ut)?t1
zvYt!!fUFJaZQ`2T-z?$-_ToN6%7#yJcXQ87KcJCvDl+;o&Cl!&sz^GFCSASb^zmU0
z`b=H;vT%lrjsB}erID;-3|xpKR$ex1+3#%_B&jSrNOye)D(q7|^De3^%_hnq%wD;U
z;%Gorx;~{C2S(?-Nnv`^c*C~Ma8dGNY3<D1R@}L_<&6yhBclKy%{@QjM|L?fzSV1S
zN|iF*tYI^im!=>3T?_movF;w7H6h8OIob1*CSb^S+VJfq(#DkM`qs6!lw|Qf3G at PH
zR}j0A at 6g+1(}oL_x)|Sv?&&nHzfu`HV0>H%Hm_wVuy4<rTIj6rnj`H-SOx_iD<L?i
zazRSQV?cmFn&j{MrMCo=&7r-Yg^6w2?z;81@;${OKG4&LZ>9eZ7=WxI-Iio?b~^L@
z98-t_CqDCip(w}AN#D^twAl!!68`S_6Jouz-|4Q_!f9ZP`XaHG2H94Va2hW!Zx?++
zq*0>`xW)RgXmx6$0L}<LX=x0ViJpgLzNdJXe7LiADl9w$I at t_Tp6Vv&nwre_l=~`$
zPJ9laVAQPUXAqk?yCpfbGYxZaWwvL--f%bFe<D#cv4xbfBBu at 8(${)CL2X*U9028B
ztP8%BzbnP}wAis`P%3PCr9LH%(d~=b$4P35W%`_H`=Ae?SW)ydiLQ%|Zh*j;gN6tE
zf`3uL<i)7iV9WC9^(G7BhF*%cEv29Ok#IKj%4|0L at QL;Zpyi)j8I7#!PwMivBQ32V
zvk!!NFFyW(>Cv{Im!CEmcvp(OZ=JZgYq8}~YuIpE44ek(!Z1|cYX|Xu?^<f6OY&jM
zW#yxXJPaLyo`5ww;5y49*yQ=?x(=xtrO0H5Jy^>Fce8ki<YV>Zue<FG86f(kD)-&)
zv_FTe>GbXNfqp>C<m2;S6^qAyHBv|YPc at FjO)D?HEgXp)p41<uK1W?#ys#MDp0D-m
z%=Fzjr7nXHKOfQ?@!hS4*KJ6?HhAwx9!Gu_t5#p1B0YJlI-6c_$Z^;8%l6bBKDw(z
zQxtukfNPN2Ee&@rpI^IV5j#(M*?nH2g2{j|R9dudy8#7rX#rIRjR)alJKKvcS;@<-
zb}6A#XB%7Fr~=>3Lp^T=E%t4$RF5gpV_E!HIfq<U5?u%1RWRKsQ?4eE&Aj*Cf?WOi
ztC*Su&9t4iwFR||BDK~D&r*t#M~^-^`$vlNQn~CkW2TQb$CB<D`7|<7&cTH7#SD12
zcC$v%cu8imku1(}i(AS8PPz<U3IIc`H at 7;Q&ueN4!JFKhClt~(IB7T27kkjXnf>VI
z>B@=Bv#IJ8>yKM3b<Ba)1GQW!CABvW%Q;0Rlu#2+BdSA1`B at IN+Lu2d+tqBSL$27$
z3Q%Yo&cpJg$2SINy~I^Ad8)nY2VNSypJh~pTeH_g?H;5cP2zAx82~Ro-p!}nH}c|Q
zaGm?X`%=i!cl<5!{j2dEf&9-WKwltBI`_FBNDHk8g(1&-wWrh{Z=)8yWfY{0`kB1<
zWCJ{7H`5v at s|mkY*Rfu<-vGV~8_Uf5z(7ScQdeYveaoCm*m73fy!VYt*jYnVjXsL6
zKlBHj-|!t<X+x)Zx_h3c at zZ|bWrxg9U5=r*%Jh)){p(H2yL5MTTy%MWD2O?xTng$@
zkNaaV(=Y-{WXgd6UbAGK-?#@lNi5}+%w#JDbP%!|9Xnkr;=}Z<GIIUb;)qXL+K8XW
z?c{XrsY9TMy!;Z&`sksn!Z(t)x9S?>Tfjqbqc2Im9NFhhzqW=MylKiVr}%?+yQfFE
zZu6(odQ(obi0J>3UisYq_`FZU1h!qq_LM&C1EJbD at XoPQo_W^J$liJ*8gV0J{qrc+
zgb#qG{L(FDKX=rhWj|q?8Rg>`f`2~<lC|H!#57pD|3hq9Qq-sR=`z5`n!niC9?pMj
zy^IA_Z{YG*JYshyE~relsz+g*bJ&k2r+sldkspTYS26)NaB32gmx1bgj3tA6#Z>~N
zhEpJv6ba+_ws;4hbLD<2%97H?JgoiaUMd_pD~*dD{OVJIvtIo1(|o&EbThm0_a6mJ
z-EypYi`m}YcD9Ut at 8c6r98~}O)WM_=E0w^T$rcF{Syj`PSP9NS#lLp&w6VpWMss3k
zf)nb=eY}a5)IVJiLuS^rO>98gtpo2{pVEqLp4snw2ZbW$Kd;U)GWq>lPmB}_y4(-w
zr-poFrp`)puAg=NWdmKWrVn(i!};vyJIqkoPJKzb98}u-v%NrX at 80@U*k|gkZynX^
z7RJj>I_TP_cJ18~AbR9b>y~3Uf7P`~PP1u5NYNmW`Y6cR?N6&202^|+bN-fgI=iEN
z%ba_C{+tjyAg~RdSoJOLaOhkPfuO|}A*f|(>oTp at 8LbFs;CXn2Ti?BusSV2>x>ZEF
z-DTEubbxRPE*C!hVKJ5*Lx|bspbfuMo-~$p;_KG_I|ca>ptk(L{Zp;?GV2Izs18Tn
z=rr?tf-Cph at GkcE#c8~P6DW4Z_C;OH!n-taG1@;tWzkx&`zzy<Xlb0f+lAw(2Vk0i
zHX2r_>(lLHnP_%6c?nhqc*JHni|_iQ5}Nnm-4E)W^y=ThWvg04Z;CQ0Zt3A(Q3oAh
zr>|Y2s@&c at o7dVfI(f(~m8CX-MT^KnLO*AgeeMI)yC%m%g?0`Otr&u4v4GQhLpO7x
z^K$WIKb&^`=mpmH>rTC$IfGqm55`Ee6>Gf5GLuDSei<OMYQfw4{<wxvTBJ?u)cj!5
zb}<#_F!QRzbD`;|-e#pY&zx8>HY#R^pf<36()QQZdHvc!@nPD0tG?fZn;)S$(GoTL
zrs7b)Mb8iICoyh)p0vnpZ+JCG`nlw!tkV1xj3qr!XsCo3vua<!2C&1qGd=*8Ab3uD
zAgEG#@T6H%?I@#c?`dI2u<%j=8 at O!*ZqgsJ7-QURNIY%E(l=Q3)!cUaqv}xCRN1k>
z7Z^`9ePvO`(G(j>`EqYk_+Wq-tdlnx8^gO37nhoGGK;C9oNK;LG?p~*;|FKjQ_H|v
zmod%L&ezMQ-<eB*!hqp#eH58CFtJcZmYSi&{Vw{?XXS0$v+AZ0OTEBb9ihQ-^tc>(
z-&!I+**2k?hAKYuXgFw)Lh5KZ at Y#N9Sna&8#Hmdvo)Mpd#i;?2+~Fn{nBV9>-zUk=
zyBPKWVgu;uk11Ba882c=pzmfmx2N*6ZtoJSn2};gOUTIsaD;T8JE8Wd4f1(g{xa!)
zB~C|mD5Bvwt at xE5z+TOv8fpEwNX{Y%YjoM<7-e}-%F|Hj3i6oy`utdZdP!X;4}b<_
zMnNBS<~#E- at HT2o`zj4t0!$`C;<|}#OD-(4D!W5l4LI2Hoz22P6Qd1XXGG~~eO;m0
zCgX_^Y-79Zjwt8q!<SX?RS at l9>ibFHOn=My?+$R6c4 at U<sno=TL;9V$bQi06y}}fG
zi&CbHm()RZ?WdoopaVXAnK>I-c>_K+hChzLLWJV!9BW;H0BvZ6JA;k=u5_DM={&Xh
zr4Kk+dV-PgMgLHtBn1l9ztF4GG_cdydGQ_mhJOBSK<0Btadgeu#nQFPb(1#FJL?<J
zjAFm3yRypfHxtA^YK%$I)J`C7Xj)XWU3%4KG*Fg4R_tyEj&F)54VCPtzVuBeLmEF5
zv4AYxM;?wfmv}DIg6EHZd2Y{;?^O{}N)A(qE)XDXvmn<C=YPB5DOKcKu9ogU*(N0e
znNrC8;*n<bH1Bcxh<#~&_u62ZEt_&|b<~pvZqH#UCSOXjFvqiHu^hsiw?ui__pJ~g
z{Fo<t4-Pm*5J&RudmJvUA at 1#-^j;J9XCkEe3A5x)-}H_}4H%2nJ`A7$S|INE8j(^~
z^LsSuSr!~4>v>K&enkJ2d&Qj882Y&C=oXh)ab$^wwce9-P`;^a9x5&ChLoJy%zG~S
zCj0a6TZ=vKVBDIxVW-k$&hO!yRA;v_?Rjd8hEtHU10iP$tf(j?>CL<3or;|J5<wy7
zN0Sz!=0W}DKGPDLbXMxS789?HJZ!t#UIE?U0(-SB(oJ1JXJ+7c>51J`>;d}aAFUnl
zM={Q*{@?3=_|sv9vePl`r=bvjJCip+8 at P_N`Iplzd2*L|=r=(Ww*bG_ at qC9vocW@e
zG#cJ2``E8|Ea+F?znm)dsjcdRWD{&qv^E)Gag;E{S#;RMzl>;vl(e+^z))&vA6`+)
zC58-XE*Qi^0xPQj=j^yyKcBKf9f13a+m_--7OuyVX+{kIcH}ckg*JW2<BV2eh2<rA
zYj5o9e%pu43S-Z|D<s!1h+AwK!|RNDik-BiaYw<?nRu#u0^hIjd16#i)052v(SNqO
zEwGOswylrwr;j=4S2Ln)!JPPq<B7fJyf~$4GkQOZs@?Gsbcl at JiEb}uuXV1a6 at o$w
zH`W49cIwe_ at b^`lyazYsUhjv&keYzfr`g~$@w at M{8!r4l&FYx0dzR$$Aq%>%VRswL
zGF&H&gndr-&);$1XQ}_~QP<$YC1^}**a0C!-KE*nRl9fIxz0iyH|{u=a$VK+A1?RK
zHPhva7oGQdcbRjUGXUoc#CQKh#H~t^9(xhCr)aBMKciGc(P%3iU at P$4GkxZ76Q7rN
z at 6urc4P2z{P^0?Vf3FlQ!$oBWp0z%qrrM?Ks%e=Ee#ZG#gI-#ZY;<$G`L<t9%F?aE
z5h2Hga~Y*mEz%^HuAkjmB)4zn>)!nrGmURJd>}br&HFULKLd|;EL%2)zZ~@{i4A;x
zhJUlqvLh6~GvCk2^eWsU^QBa-CD9X$1 at X~V&P!%v{ex2A$?QGjy}6|eSAP?;zZvrl
zU81?UJ4~6E!@R<F!@Hy`t7JU)zi%lj$qK4IIbg7IVE#@o@?PWqucuFhJ6R|bUm{}6
z6_oJ2>{GgZ3eq@(4P<Ru^YMg?H~uySls^uNnDaia`GKBiFY6fI()|zFeE0f^-9<=>
z!4!bW_<oCzG`DB+*slP>!#KSq<>TWAOu5dRqj^v_)O4`_(z54%%v`fKmk(hrnZNt%
zWiX*#kcI8LBRub%&lXG?@ku9sq-{}5(t{XJ{C;xt^WZvOOLLq)+t<+2xTBE_Ui6I>
zZ_9lj^6&oMGs){s#}u8EfI*NV4V-2cTsxa+FIjqgUeIDL5wsp|U=lCV^EQVzVMLsP
zrAe=i=$FLZ8FjhJ2+{!6Tda{`!%K at N%sB at TW>*!}f9&?JK2DZL;D at D#SbH%8g$e`_
zDc~=LpABk$BhJZ-|NdXgz0^=}NKN&i4GAPAlR77pt89vWsl!(hR1k at G4Re9|-|eaA
zas-nuPXrf at W4#qB9!B0)paGg5dg97P%8{BPtU0duIi~m~_fGBCO=(M!+>Q!LWURTa
z;&-+T{%zo22F(83Vq~SO2oHKDAgWW1XKzG-5makc_f^=e#mDo{VfJ%WHATjAR=QQk
z^a)G%#!_`H6}-9hHOy7!*!u42Bn+2Ia6VN1_j)q6RKHvq)41~Lph>}%EmgS52FCD>
zX3U&@5~t=LGZA*!&*yZS(nP$q*b06qsqTH5E~}{@*&JM)BwQ{U#v3#7O+9w<067jW
zqW|sxFv}85I?<RTK at x=y at qT4Ze<Eky=OLl<MUMOeS$#{Uc~(ZsbQop7eCv{4yL$F`
z$-NzpJISll at 2if}>ySGX+)jU+O73-<%&)s6Eb^hr{a+ZO6A#K8i^s7%J2P}@yM_*9
z{5=1b_^&SPFe%YKgKlX!o)XVFd!#-9x6?D2GP7AcX3o(_t*q2&=bB&{u8lycVRh2~
zX{<66L3xS3rlq0qx4>uvzj9G^N#&q8*7Pd|>vR(tVk-3=Ub>p$1R&`Q?%~wO!_ADf
zst%IKB8mR&FsA8 at 4ts}xRFxrNC-Dyl?*Ah6WNmPm5=;~O_ at mV}S*431$|ow($?OrY
z8C}WC#GSCp at gde9iFLY=0<C{i=Fas!BO)~_9e220UV3Cxl(W54Q9+hkubqLQFF_e?
z)Z_bveiNU6$NBt&E`P=QwScZDT3R!z8&q9nZ}lrr48(lzyCw)iOv>^D`{+#MmDG<>
zcmFgv68af1;*wipT&^hVfFbd>1D-4deE|$6{bez<oR*@hw2grDmJV#m^$co^AL}Vn
zWsS|dz3I9Wj2S^wH$+}Fn>W$9RCcDvQvLUeSqg)J#s&0D|D^XUNV64lZ>%VyhEYw*
zMM at Ho1SjfxJ<d`XG at u(6tO?j*LLDE;kB0GUkAzZ+L*n;i$WC$3RPJ5Xtd?Y<LKBbS
zj`?Wm;d=g%Q1T8ahXdHsds6kJe1w=)l^*DDBx`ke at p=t1P9-mupUj+Ib0I8649|;K
zj}_;zlF_Flr`tZlu at Q(0j0dGAmM0>-0B1Q_)If)D`D{(qtd!xG|FkOcIQx>sgCbbq
zkfFdVjB+L3ms(csB->lJSNsey(Lc;S&*jRWol~wk)Q1Zzdy{wHnuauB;nO1{RhYy&
z$PiOI%+t%kp~}P2{f3d<VO)Ug>^1gr>S;ToN&c$68VIhz{hl(2#iuZ*aPKFiCVr4>
zr;HHiUw+V8(b-U2WwjAyW6&u2BiD>v at FC@|T&qB0X_5KR7CzEDBa~Y&d~R*MkP+St
zqZCGFmrPoIB!8D#F87M+-zNn#QLxM_wgoYYZq9rjjyAB5)DB`D8 at cUcve9xPz85ys
zfM|W`rYiUlI0u8RFgrTQ3hwK5AD4f5itKn}$;fd&Ud6t3jXi?PB{t3j!Ch<%2oEST
zlw~0MIAC<f|DPlaD3$d$4bDmE at K6<ucyP9uGmmZBUEah97BK;7IxEU=qYMQ<3%;ZT
zesNY%!i(#2n^>Xn_!HieYG?`<Cm0YOR()0|U- at kaxu5j9oiZb>40MZQOaK4)0vIgN
ztQot);c;8!q)>kJjU;3a&`#FPy(*7v_-ve@!%3z~oUt;r?W??jp%xb=P+n3^!(~&5
z+sxebz29jGvZ!V;8fNOkIy2#DuNVkN#Z0 at XvLc+kA2dH4s+Bf6DH{d|5#L^nLOvZ*
z-)Q+JMeaJ!wJpwJuc#y at O3hXg<(l=(h33qP^jqC@#Kns}NHO_t?gx#%usCp`_tf08
z-*ed9|8(c&zRi)u-*rk)z1t<+%Wf^e2&sr==<Bc3MsS-8a=seVSzk7+eOW1FP174N
z{^=2rbHXx5rdu3R0r0odP|+3*`a+XM>8j!ouIyLM6U1w=p!eV2l^N=AlA^UT6R=X1
zW*4bG at I{AR6nY!=!NpZ*s(D{Micme)xlO0Io>}embWeW0Yw0iJ5Xb|DaW|zSxVGN1
z-3$R|3sHz423WU_L(CY+O%$)dk6DEO`tt{q$l>M3oL|c~4=awkMqx6xQZC6>g0GM|
z+G$`!>;>XStBirX68XcF56suJiQeXry1cK at l=ipuK6#Cm`=ja{@!;geMh=BEB!0$_
zvXJ#k;Or_8nBELA?Lo3f7vxiHx<YfZ5`9&=y#X#Xd;OlyzzNUZv#&kI at jC33fv^mg
z1N?xHGnb{FE&Vh>1f)wGo6UZzz|hOHg<uk#*pz1=bD-%<&%3;Wh8quwBx#qzR}}Nu
zBRDv$vSIYt at Z}ADjxUt#ONNM>P)t?JBO`Lbug{sO*{BqnYo!hjeK!yU_mOhS2i8LC
zy*Oott^Fv%csoi`X;=i<0+xEG^y&uQ%M&o%4DspNUXd?mtH_;44%f5HZC6iGvXj{i
zZI$<T3HTOSm-KKaa#ZAKMG(~sndg_K5_z=v>vsdABhbZ%!qb9WTje0Ye}{Vpi9fvD
z<B~wff`EVwr>Y>U|DFhNLb+Wi)Qy*rohi<N)Mt|yQI(~q=`+-RBym`V#~)SCK-%>-
zFST*`^_%{~z|ZWd*^ewX<V|R_pA^bF^OeC4s+)uVOZ!qe|MXDmWx0IK=2Rj-D at MOs
zCSg+UJdDm?33Pue`3P2N3SqE#{YqU)fSH6z{qvx>%7l=Piocw0Z;OxAG|SBpCox_O
z0N9-)1y(`K(GE1lfpjYIY4e|%68}3JkBEBSatl0hRe3)^%n$+GGH0cL&fmcY4`>s+
z at 45j;jxX8<z*7)t*Bf3&g2pSDO at VMO*NVY_)aW=x#$}#s1QA at l96sDf@)%q;6RsU5
zTwX|A;~(w?aQQ4Mea7*3m4}})c%e<y0~WpMu$Q9=V2=P53w`FzjSkA)Mg9uA4#2yl
z4`++NyGtrI4$O;bJlZJWqg%DRr^5asdR#zk=UERcnGa&)P#DXi!k&wNTqKUT4F*Zo
zQ3GH(gQAG5d$MCE>Iq{u`W0p;KZ>rH+uP2DK^@n(H!#4pJL;Vixh|p6Rv)wps;DFG
zDo92-!bMefM9Ct!RC6&oOu{fsa58%m?xRL`&SQ`van{uX;o*&I`w!mt at Tlj*)%O`4
z<-_3ELYOa<e9?21oH4{TS<G?KZ#?J4S~1y$duVj`tksKn329NVnnf78x{94ZPL{EU
zvzN!=Xq}WBaul|e%R~*N>EV+qbhw0h?Ik_Al6zikGEY`u0dW_G$_(|?y&NEJkhH at Y
zH=RjDXKJ|o!9jIW<j_UY4LTdv%wZNCg!vi6H6qm?DKk12ac&z?^jLNtMJen)s2wgm
ztb@;UJaDRB#nomiW=!^q$6TluePS?m1^(kVSqI6{`Fv|}+f-rH{pqzG+KqaZ_<DXt
zUBifw)ku3MRT5OSRldxg6fS=YtO6Wn@@;kEJ1HQ3PWj-RdxJ0pI@!!mIx2moCU7CV
zzM_$=5+Ghjt at io0MPUqB^;wiEI^$OI2p2Biskp3v`;(6+X&ZjP%cqQyEU||*U=H>G
z8hD#Pg<>--7m!Gl07*z?r2r!0fw98YlBIh>`s>IpafhpghYRub1%AGYOq-5%k?OqL
zyB)&u)#{rL+n`}C@^kJAzBTnge4h^=w?7>@Rjqmq6O|{%v`N3I=&LeYf^2BOM(g0%
zwicH98_)B`LZiu%FyE;w09C+sy~`s3BcHE1i|nBkR<*_F7&H!iHpP$qhDQ^7gGZb>
zbb#M%V)3GC?5nN_zWrCalB72D)QaQT{>k5mCX at ViSt&xmQN5=6$_!xDtJb-3eMN{N
z%1t0bbi9im7r&wb3<av}@#p8X)_uE8?%LOBv8jASQkoj=+{sE!8o$pHOxgw$KYL+O
zO2A#67d#Zhn^QePi~T`K&GA{x5#~4H?vYD+?H>u>wyBs?B9wp3t8Y|OX{QPH!y4YP
zW3v at ZEUb`|FN<F(DhU}VSKXAeV)oRC7q>B>KN}7Oz^VY%hxAr&Q$}^dmOyX0?x9 at A
zuO{%Y8A-f|<+&k7czZL5FRyA2_Tkg`WS2NB`v|qjYy8vbo+8)Fgpp{Sga<uLYM+NX
zsXDyQ5|wrV+qie!KQ}SCmC3Qf0}&0ii&5(JXQJlNE5+%%02u-E&K8|LP=U9RTHN;Q
zj~x%jn{%_MUB{8X2ht5+eVSn at pZxid*(2<QDO(xWZ#vg-%k-2Zy-J9IhJhImVCx0q
z)zG8rDys*)SDrBfyjbHEJFT*63%xg8SICgqN(TVUYrcC at FHFJGbjaDQrs(^|Yx`G9
zBgA(jRRLRucRIYb9Ks%)J?L;Va&-tZba3bwJ{k)>!g<ZYRIcU_8?#JlkZF?^5?dgz
zi*Y*g>_s48Zt>j3aHEjR{@=9Fp8fGaJP5D~P`5aXyI(&TU%s%b;z!?>Mh?S#?W!K<
zVm$xPlJ2ZB?}HechSE2p^5T at uO!rWAbCX at mC%&MJ3KI^AV*x3pXy8v<>dY0J&7+sB
zR2_BJJ!shtUe0CH2g<E`{r_FtG*U4O9C;2a_li%ivM*6}#JD{lg>{QNY!4_O*-gF`
z{Q695UV at A^lFKjes95}DgP$uZrpv8BIRcd~f@@7obs;ypk_!kgA{BP^V;b1-4+SJ&
zMhhPu7D0 at wX3>c}{rD;4lv;PRQWz5rb^pW at FB)N9oFi+x?w-t8X~w6coi(`(6upU!
z0z++ at bFa9(;ch@`f2XkXVGCadP;EXGs5a3he9k?WbvV9%X;2c)8b<~!)o%Zuu1W&h
z1R1SE%=r!WK;NoPJkHp!94o^GB-RPP5bNNrWJDQXb25Cg3stqF<tG_8^kVDa2Io-}
z<H1T<D#|_eU at ojB@?Lj##v~PG8m>*rQe#N%G7dCWQ+cJF#b0Toc97(u05H)|PP1~I
zgNyDRif^+REqR^Qs=Yt%<5r&UyEp11A{!B5StEQFi7dZ#b_HrRT-_L9fNm~-(G&Db
zt5?*^7^&F#t$R9d=4GFB(C|)G3f>B;pp&}W*l3Prke@)B7)?=%#g)1)CQ at bqWJT|3
zd%6*~{j<hCR(;Sw>5EaqJzf1IQ^9Bbv at j3kcHY^(s}ZR4xbmtYdPq8h1%_%2n=#&u
zsQxJ<f!?|dNU+|h=(0ugD<xd~%v<e8i+DE#WPul=KvP4o@{+6mnByhU?{oD at pNx?I
zOzB!74V`LvQn|*PGf>${#v`Y~PG>#<J1ai1a?P`vQu+^fgr9_bbX~wG8r*8}d*WV9
z*>NOyQZYSU7l94QTk3WNRwL5vV)h^74 at TkzuPPf)Lc<ZR1O3!_FN$YPJG6k7N^#wl
zBZsKqy6)GN_LEyiJO|ce at 0O>uu1boDmQfu|P4Fl@(REdQb<CbUP@~>s=Ue_utuQ6w
zQ|C)+y*CeDUMcVwq=ICOoaxZjiK$<upoP at djmgo1*<`QO=qT!+cYd^=K4bW==K+a3
z1>rLHRf~T@%_^uLu1`I-9_Jb%wc1LPr=5zXN_hOw5$&K&qOT|ldfgD at f5y;|5q)O;
zZPGuz+pO>Y^(#qZr~Iw4*Vc#mVQh3aY5RTIK{-X>KM*ZLlC1P?B;3{jiX@^NRFmxI
z8vPm)`5(IAm-p=eaDcTz<f(ULv_ZpI<liJC^Iuxn-6C>xh<=tFawYD9f1$(udp6J>
z<2CTBTHGPRk6W+EaNoWn+aV4=wDca2GFZNUHboL}Q&z^hT9zVs^nXWful at Ch|98;~
ZX?wsogU5CU^91;xs-l)csod+p{{gPZYPJ9X
literal 0
HcmV?d00001
diff --git a/clang/docs/analyzer/images/analyzer_xcode.png b/clang/docs/analyzer/images/analyzer_xcode.png
new file mode 100644
index 0000000000000000000000000000000000000000..84c69809e8c391c611198700ceff3da8047d9219
GIT binary patch
literal 87697
zcmZ6xWmp`|x;2ah3GS{TxVyW%`(Qx_ch}(VZXvk4YmmVq3=rIcySu&Yea^Sfe!d at l
zUDI7XW%sJ;RqI}nDoWDG2m}Za5D>_+G7 at SK5Ku)B5ReA&updw6*#mYVAP`1?;^Hc@
z;^Jf~&JGqpTXP5qPsr0u4-NIDyW#0>?%1zi6MoAhp%sbK$f=@<F at J}K{7i-+7D)D)
z^%IN)Ry_pQCweZlVW`4I7zrTGr*KhpAJM8sP)#uWIV{f9`Td`)-u35m^IEsF*Hyo}
zrTr?G_a&PENS1`_Vz4V71X<dM`PLhe1qX9jWG^&XAf$xxr<{lH3grt`y5v?P!i(vI
zRvgydTv32`v>Ro6H~bEAh~EqxA{6F1$yhl&Q%eYjH0fhA8Jq|>MOQOkWf<l*_}r_6
zyYvufBebSf&hoz^O{?A{e);w=z(A~dSP3LgD~swX+vQ+lPiS30i6UefDLcWoe3ktw
z>P0)oB-^h5Id)4Eox}$74dO=kz#p%k2U;*Vi1&yaSH}E64|+&1?eE!dZtJBPhzVl|
z2#41d+(wi@@oEUG^4C*#FF1%b_(0HZz_XBb>>72^d}ij!0ZSUnmvM+be?sC{D|m<=
z^gz;vnVEBbY3YCy7>IUck#S$qG}~V~3{TrC13v at e5jX;wj3F?MQEUUD9bsn!sV`te
z$&ef&Q3s(RWnjLMK_iNi&_K}tvQ|Oh3PPwOJb{7xW#WjG1FQH08}P~C2i#2%{|{0D
z80KI67x=#6Wbmko<OD^~tYqpV2o2!?GSm at Vgs^^ck`xF^@ozMUW5Eao7-dMyu$rQ9
zKPXfL=b+p~1b;J at krITgi;J@$B^x6zLU4uJnOH7jqI{>=<l(_j>*sYO at 4{J!(*D(a
zA=`$37E(Kax|M!G?TJPHB?}(2UMvS4g$;9yTudTrhg@<*stDr|87RU;wvYffLcc=@
z8>~9a!tw`CJBBnYddrlJ#VZ42LTf^3;<Ezb9^D at K9-{@GeE*TjWc`#*fGw6*M5<}J
z>3IG8;`XAuE%P1g9R<oS;HFL+EsqfZiwPz at mL8<JY3*d`wASXo3McS=VK95k;FA2o
zvkS{8Vk1U4P&oJ;B-|hH1r7e`6F*cqnxqWH4(1sAGkk1_eZOhHHg-c);+RINaq6d3
zhE$AHxzuDj1G-l_qX at H~tTU;2Qdk(*5$1!zgE)T`|LS9;naMbRfl2;UBw6IF##o-~
zntqe0K-D;MwnNhp(iH`ewEudav{Cj~BeTN30-zabop?ktPc@%iaZYO%g&!)ODLz_~
zqJBh^n_{VvG4`WFwXlrsh|ij_IrvEeS<SReQ9W8q|A$tMyGFJCX)~Yd8emOXP_|p8
zTdrI3wcrVUGJz`>M}E9m^EZK2D==Wj?Xbp`L@?b at R9L)Mp7amP+{N#VO4T3r(%W4i
zb;YidP>Z?}okor842%3dZAL*xkLpj=V%4vDxq1%Gz-9F&ujT0Gdn=<k|8ntpC-BxG
z!=Lg$hrhiF<rmy$Viyc*^b1!CpCzYNruCT>Yc<ZB)}j4!dSZpNg_V2tdgb2>gL;Bm
zMLT{;1vkP at BhiLUg?$dA3>!v1XLm&6q6n+camsMA!C)J;P`fGWmkp<0v-p-_Yr)`x
zea&+ngg!H}BxBsPUN&m=TW2=Il!0>{xC(rk9Gv^wU({DLwIdWg;cObIqpyRjo3E%_
z0+<z>-7bMn1}5_+n<rON-)E6qC|QU#PFkc-^knL14QJJI3R}KS^)G$_e at m4N9<mvi
zP1{PNXE<gw(q*mcuh!Dz)a!2MYKd!Ls<&@>Gcz^8bWpdSHMt)6GoxkJIeyncJUTUQ
zU$AD<Np0)r&eNH(Huh#Q-J)E-VHYqPbcD89H&?K})m>Oz*yj{(nvXe8+Xu{4Po7Pu
zJ)s4v`{!OcR;<sBlozXa<~U6e?fdS-?oTt_F?~xXNVlw^s`*^QZ*blQ>~vZiTYbwY
z;bZjFyKIu5b(-}n!Bui_311alOK;=ujQ8~P-0{h|#>-?i1tsA#=Jm~vyJYTrF;}Jc
zYA0$_hfjRowcWh&w(*koak%&2G~J=N;oZDmPCuo;uf8X~yS~xiS~yg`jKA2}dnfDr
zDuShgd%^3dXDqr|OeUvd_WSNfkn#BD<F8wCvae)C96Ns$_9o^sr7clHoy8VH?m}7n
z)%xSY{PK7CZC<NZdh7fXU%+T_pHUHO;R6UvNE2~qe$8)EIifnfN8Lm-MEl~I6Q>fo
z0b4*PgG<sD at e<(@+7hT&08e@^Kh`QdF9jb4K`k^N29(I?h|0KUj$zBG65i>*x!cj(
z=M&9&*}|>Vzj#FR93yMTmG`-+!5E>D$WRSrqK;o86R^@<H6pM<@W)B4qg^{4SPF6q
zV~H97Yrqj}Vw6?Qfku|Ko|@jQz*Cpk_44fPEc<NdAk|+1r~E;!203v4R+?(wrPL8~
zb&`KRDd&4c%vbreW(xu{3(LE))1AuQ>Bg=`y2dcv3!EH186z5l#az2ogPd1^VeV2s
z+$qHoJHtVpCeNAfu0yYt>mKGf179j5VPWR?b&Pw;&a at aNMV)0WW3{@Un~x2B=FOog
zVnCDgtMc(yMpDDXx}Sc<OJno&?|>l#O(QcM4V9ZJo}ve<NG(~z(Y~X=`S1m+D%~av
zW4pfP4!7mws|7&=VVBoYwE-}8u>-e+ofQ*1^NI?WMxMsov($d9X0}Xr1J|ts%CfIB
zqRaRZqfslB{ptE%i=7cn^_Ski^LI-t)8};?^*+>ImQz#vonJhf&s#PObY-gnfX5EH
zmI|BrmAowL?xUomf^MMC`5VEN&8*OhU*~=0sZq=OEaX;@K3p&g*ZkuAN%?#gW5w&6
zKFA>+Rg(CKPhk7vlJB}BS9&hKijU3L^=)Q<c#r5<ki at g=ac~YZT&Y3HURaV})0coR
z*X7BtyX;L>Tw$OYv<bSl6qw4f|HeI^W1hR_rgRVRVlQrQgPCn8GB0xzJ$~kLS~2!<
ze(rm0-#<6lG-z{T{rh)bz97BE^^+T*=Op0qTdBkTBhz_J3w;iKb+6Cs`tszV{qw+c
z{2fVtUbOaWtvdj*!@Zchsde9b at RrbT#?QlHa09Q6wu{$O-uL+Rv}#4%BW+dk3}>xy
zmA<#uCtv~kPjFWF9jfxZ&yA5M)>WAYnT7GD)ABZ|vU7gFvbJ!c at XF=tjn^7tI<8$X
zc`&yjRhRE0-SPavaT2$lL&dsYZ}t1^{&b#)(>d&hrC*?M)w|V2{a*5QDPlf_knmH|
zrTNZrmc!GA^_%nS at fDiG!O;DQN&iI)DUL9K^mpmASh<wuzy=(ZKTu<OBD#n)Hjw6w
zKdN9-{2<MZM3!(>?*8-hVdE50=8^49hcWPnG7m3)AnG%u%5DLH1S-VW9pPNk1yzuH
zAc&JZ1$#N+8_mgvC%^_j+XPx=4XV%fhQgB;f?oiVMKUuCCA6vk_ETNq_8{JZxe7Og
zhC`wR%^tg-L?+nPe=6g=_X(}kvVh=s1}%zsT2VM%6AQF!SHjn at Fhxg<4QkKtp-CeV
zpVLa>ftIG1qinqw`To57?-vYbA;R4A{I1_aGkb)ui!Ot)a9Pu&)38Z+e`O+m at ulYB
zPOWU~tIzmaFs<AxL-N2L&@jU6_{G9d>SCH5!hsA5gG}O<Ovo6D^oAZ&MwIU<mA%HJ
zpb|m}Igm~KVL0N#mdIf1A%F_kqEHVHVjUk$lu1LWIdvn3En2|IuJWa>*@Ca`bZOJ5
z+FI{RDpF1V2etj|D5L8F0fC75uL}|)D+dn(f($}dLR7;O^27ixP?Ph|TM2vUdh`tw
z9SzNoMM+52da|fadSj1yO{}`AK8N#;${GW06;XpadKw)xQ4y6xNj|kOHWqe;{Kx6^
z=c(+8-EJ>+5tZc3=OiCzXXh(QZeH%uZtjY*GWaRpPef2Ckl}&iedL>Hj_^F6P;j7T
z;OI@$Yyb1)e_sfM=Lw!`hW at WtKMI0^qXOAwQ0ZQnT>e=AX_?T$^*=TKrvXP5bVt}j
z(a;U^vwt`BpMp&!wFTJ!yZfJh&_UJ1ao$7cc%`&K=Y(RO|My=uxkW_`=O4rUv at Pe(
zt8J%7UKE$R#s~j*2p=^CZLmW1a&O-zaLVLvJ at WS;<Q)CiD2bBbi7LX5$juY9!0>M4
z*WqTf9&-OR6OIt*WfyF31!g%UuE9+?QdZ_MQ)5Mffu|#p?jKY1pPr)O1R)USe5s!R
zqP94Bs~~}$@e0gYzl`@|wxk(^{PzR~2}3}cvkHy(2M3$vyp_NL at sVf1NE6_{V$H=@
zSK&!pR{zz#k08K&8Z%STi%J6->E)nb>JyaoMvCgeigV;_;l<gT#5P<c^j7({*y8 at 9
zJB}>q5mr2~DfEa&Jb8|;6i=-z3aD+O1i$c*&A*2I1d7ur1Atw0(~tjX%U>D(Ay)dm
z-5~7>6uK+?Tj~&!UFJTSoM5V~>Ck<#<`X{vha`I=l=#1KLPQ52!imKQV at JYoTOZ;(
zLW|`<la=W518EleTSD6GM}rJcK<}C!<eD(~XbR;b&(v+-e*h#L0m>wHAn<$fkWJ2$
z9 at RVVp?}spV3s5yJnybkR4<D4h#UTOpP@`~w(d!k%-2^Ab!fQF(N%H(|5ptk)E3g9
z$_?1cJ%{+u)idzTWuUd!QtrM|RPVFt92Ws+RS%TLa=S1SAWOzI)}!YiK?x2Ok)cpY
zp+#Jq#yndsSusiD1-Jh)4<IOho+M)|{OAMGsS9%DbblJ<$^Lcz3LBnw7Cov1&>4{P
zk9uU_ACP;&4|az96CB04D^3Od1y&W(K&LRv0Q}<TA+j}PP?;T47()0 at bfn_STC!!Q
zL at W0$ME?In(k2?uBK#ug$B`PrWE>(kiew=GJTL?l at Z-y#E=-_d@>KgJQj83iBPitf
zVkgd~p#$9VW$X|(JiOsl`WSOD|Hl7eA2Ph}msFp_=HqmEK6p+$_f{auVf=TUaI8_u
z6|LZb_8*$+6j1^Y-YuceUAyp!u;niqdS*d*nTVU1#@(eZf;g;N-zks(#(7;Yx{5eU
z4j at 2aT6`vBy=29Aw>UgWGK)_?uRs$-6RTMcH`0nM7@#vPe~phzE!{vw8&u~hTBtdj
zBvrb96kdpL5p6V``_Cn8OkNkCNF7C^=yz0Na;s^ScPy$`L*%nNl0c!165DwCm7H*x
zr<h$~_*%sTvt2lVPC#5QY)O?7>vrA|*h5^p<teLwo#%7L`;?-t#M>wu3|l%p{6U07
z_W!d!|7ZUZqew_jZnRkWARbZACpDdCdSn3pogYDRrD4FbI<VLy*CgqlSLl86nR2j3
ztjrN66Vc>IpgPIZTV38l+x at za&&~NpfCK;lSm^2!z{0_?_TK+T=p5lgM9BE~2)^-?
z3kwIV!;$)4)ZrC3hA=YrRlt@{`5*BXrh at A1T$gSfw-5-6u=N^H+4<#$4(Bo$<aJ_I
z6$@c2!IgI>OV<iZ$-g=2>Br$cg#WQbiJ*!p`aTP=N}*$7&NlnppILss|H6AWQULmD
z$GEbYqK+xuF^Ne#;VLRkSpUUGmfkD@)`bzJOjK8a7GDiISz}i-YeSm^yj`hX>(6H?
zmFw~m-8Uk58EIJEZ{PjalBI at GTI5pccn*t_7f0WCA)Ja`{~iBSk-%4r$t+G~O!W68
zaXXgOkw_6vo>Y*_Rk?CUemIBQSmi$U)qS|AH7=7z21oHq5BOCGQ7lj<J}sy$6GbZK
zf**8=B625ZJRL`@!)iyMmd+?{=-y%yoBFHL at cGWlXBk+g)yai{fq_Oyh{(G6`t$pK
z%S1Q7TD|F$>xn at RmZVQRvksQLoS0fCN}1nLxlDyY>nfYane5OB_H4byiu2CSxui)V
zQiGGMm2N9^M=L*eb49A6g^CHTBm7Gcn(_W9cA`yf_n(xg1 at 2gNk|k$@^QA^On?F^o
z3x1vMr*9&Z9+FP*DH4J5HC-exOhjvY^oYvl51e*h*R&2DS0mK5e1xrFvlMQn$J4G1
z>g&dBj)3BF!=vX}`dt67x-AL;JSjxr!5SbH38Wgd>qeL)=vyhM>?vl3#gC6bt)QQ(
zp-Xs|ONN4B!RF2Sbf$G6Mq5w!#R^5Lm={HjsO!(f8;P)DPDDzI*<AGk1m_?;r2;UU
zi`?xEsw$TiTG~JWp0R^8d~i^rvGz+2Ahq3Po#7<s1_z^3TXH}uHev37#&pEut%C$e
zA29gTZdCZ^G5v?u0*QIr<Mz?ggV`^AnVP(ij at Y9D$w><u8iu~RT>W~_<NJ)xC&HU!
z=g)ktCnTyCJg>xS<QG0tfw`;>c()~q+zBVHUI{HW3rt9OED#%h_rzLNIzfM`_22WN
z3FrK#LAyG+nK4SISwB{ZT~wkFUlP$&3PDCCj;`6Y3<9ZJ3r)L|rCo<(6v9LfJbZ4n
z4mnqqwY&A^OHS at QShb3c16fM14I`~ynrZPR$$l|f0~)&Gk1dcDEjfyasi5Ch^ik+l
zAZr~V{+|u6d2}+F1TB92RRTqld{|9Zq!}ry{Z1CHllL2 at TWwA}47 at O>NAuF1>^_A{
zORp*#DuHgK{vo^S!oyLkfPsM={o4c8BWF@`Fy7jAueNHhC>zSL4x*b+PGE=NH2S1z
zo#~zQB9{xoALh|Ml&ykFmy=6$b0!^5MA9iAV$N(0$ypranZ`+co*q93v)z-Sba|n^
z7f$v%uL1Wi;r(73I);8$JNa~7D0q**Xb-_;eKvWoc*wu!<}|i(N17)ny$K3$+QH<{
z<CnJ!MihdA#G|9W>;Rfp+>M?mj*?=i$e at F&s$47Yzs-2ga*ZmVQ3&j=t9%?MP5oGR
zJ4MU9e>XYe|7*YL#fEDCmhL!jnOSvIqt`rE1y#R6A8jf;3YX?7zHUgh*_JB1E`~)*
z8(K+D01VSGUxF=LcJ(KiKE$gv5vQ3}Zbwqn>oN%mFI+j<p&c&((Rfi16#29`3}3Zw
zNYa-_3>2EG2-6deR%%mNP65`R$h;=4o2I5jHOqJC`o-5f?3RDXB~!K7Q}$=Bs3$%i
z@^IJ^M3>loOVp`_cY at JR>@<&@_$@&}<$!2CM=v4p{@1xq(Gyd at 1v@i5HNiChWHC32
zR#-tIR!X*P;|u<%rfH&K8*-%wgOrjXPD350rp?zMG)(x;`X-*)3%Hq@{o_r$ops`y
z@!td2L%<hRj4QT0;uYM>nw46TdU^y at idkkz^LowJCRw(#hijc48Goh8UrX;<D36F%
zJpnEQ$;s-_%{G*2eC!xfi;$GsvNgy}l|ed(tz&#@L at J><jvs_%Gw at 5_{2G3P_jvYE
zkKgmp*hQ+Yr9bmzSpaKyAZZ!*35S_>4Iolk_!aBQn)>Ewe*7jC9ZTyu$`&cTxiZqs
z3~aa(9?n&G(2bg#8ScExCL{j&Vx|l$mmtqw2Uy?>C0=S=PCAg82wr`1u>2Xu;N=k)
zE$z1yo!Mo{je*0QsNFZlZycJ}<}dh@{f<nDED|&CrVGHLcpA-wM9<|nh1*bM81g6A
z=1Wfn!+EI$d5I$;g8I-%>dzr8doi(F8XyO)RW4ERM0;l+2PeTBXVrw)xFs1CIqW3=
zyrh~O)L+cNwZ)KBpDVLbA<`u${zMH5lzLgt3ANX&+;ZbAST`mV`dP`3uR#QSndq2O
zrW7r*3PH)q0uN%}1?w;o^b}K__&$11e!`o$ch2?`%77+r6PsgwF!PA)aLrAQI6 at DU
zE_Pxu`i^|Qc6(gANL?be*mgAO6BvI_yrNGDKfEuW2y!aMK3%rCKs@|A_d<z7(s8~Y
z at w3oV(M-9)uuZ1l*TWoQVgXMUL$6(I_Hpl<8EI*;lw7D&dV)v}Dg2UYg|TlrY`LWg
z)WIg;yXZ=V-cq^pT7*jg&_7>*fOLvl#5zIhaC0!E0B|#A^jj2Z5|(wQj7b{1yhw*t
zq)@w><HV_*Hv+dK!#g4gr8iiGyY{JgZYi;-iLz{?gaG4MOWL>j>mVidmzF3R?C!~t
zm~y?4#Ww2*#TapgR8OKmB at p_vX=!vW`gh(Oc1EafM+*u3KRgGAKr+Gf683W_SRgEN
zRRSYlQB5zELI_ at 2uf-K1gq4<BW=#tk0iwx|ZB<&N)@v%JL0w5!mX#fLnKu~}tZ&n1
zCMl%Y=&)q|m_Imy)cE2sY+0Qj#{Ygt#TSPkORr>Y{S%DyhC1K?h&!f^ADrO~3?&r`
zCnOEvPN+hBdt0n-+dPnR&I_$2?Zu4dLlH}FLUr7~W)J-XbKmX6O;F{FI{@l30VDMs
zdjXvE^f3*EPw at rXs|0IK(xQ%~gdD7fQAvXJYk58=X&U#T+qs2t_;DHrSm7BKTQv<b
zzI)@n#wX~`p(&Xg&6+aTki4~R9Rw_lw>8YV3vgI{rTJ<8uJ8D+_^R5wsDw;Dn)vTS
z7Xsvzqx;$F(v3+DWpQG8W8sb0Vw at k@Gam`kwK3^pu{<sVpzZfa!=rcz&_lJ1AkjMI
z3UJEFpLxZq<TXc~4`M&rC$9$7Ou&{yV9V+9v&U*1ZQtbd{2X^I3%(Rc;ih^Kp#c0%
zaz7JWd*IPX1)dc>=&;@l%ETmp8x4ffHIxqO3YI^k`MJAQ+MgpZH#s$QM%*cf-?zhG
ze5qTuu7WhYJa0y&fdn3;i%^P4J}vYu69YxR=nU at dkyEjfs3vLO#z2{w6{pfQl99`k
z#8d<wX;yyd2M4qb-z0i<E|<!#hIE(`q|&IR#l9cVny!}!7LVVcIrgFi3FAO5FEy~+
zC;58RIa;FfeI`|WSk7Vh9X{YH)2hxo9OSh@>xlkVitO9_ME%m_iJQReun|!mA4j}H
zKE%}!6ELuk$F}ECb`LJ)>HOvVvJtCXI7IAFsC{ast2ioVZ{jDwxn=5V5AXY^ARL1)
zgjuT4DS|XYgJsUt*NHkh<G=$_ejpSg^}{|R5)ipL4!5L^8E%nHH<{>8b{xB;_$}7r
zE{SVl`m6K)Z->Y8)`v3t<Ei7Y&3Xdwr23MBM6g%f(YqgsXE7>$8b6GCnj|>hGVi-x
zzHl%(cbr7wdv_pHlcC=S9A53YSD71<aeITZ&xpfNL(j*g4TqX9ubq|@<F~ULl?P#}
z*HAP`eb45|9aYdaalSImUT at hgL$)BU<$DqB%zHki)VrT9tJx(4+UAmLil>-`9a?!T
z#Uad)m<kNUw5HCv+){cQQ9q at 6E%kgLftgSf;AhmtYo7CN98xmFvjWjP5EGBmizThv
zz at SM9`MEz+Lr}6mG6H9tm5x;w#VbUVu0qB__1mtSqH04``d1&OiW4R2E)5HybD<e5
zyOxC%rgafnjb6h<9Ed_M#-Kfx)k`WekuaBD`F%Y1bL{$}0dIudqJG81;Dg!MNF`d$
z!9HvX4nqqW%%9t4cWG?V2^4INyCca#oI+G6hniRB(>6-wY_V)-!{irm;(c5)x*P=g
z9vice!!2G at A*9}2^e7HD8ML?C?`I|!=!*r<mY4!M2xjB4A?vv at r2%F}9ddcrUBvON
z)yym2?u7%trCGd3Bk_EOZZp=MIsN(EIV=np at qjDrp{)qsueS&i=I2s+AVUrAX+(x!
ze`2mxIO`$2Uf6E>q*?B3W)t!gqv?W`1_Fk;K+=fzl5158SO8x*P}ghwDkkm^k+2{!
zl|7@&rG9-?eG6N}IHIs;i>^TaUZc>p{g%{)URl>44r4mk(CaC)l}f<iRpj!rr7fPO
zp%tA at H}1HqF{o76ypy*KmS at POw0pySO<^rOp}_+WOH&c{%;`yG5b%LJY1^#x`wi>A
z)g?GmNP=Y9D}vDrRP!`N>AQdw%`lslmiiZ|a)SJclx}o8mRs3I;=_WRTq+{vGS at II
z)!;ei1i9aje(^`IY)YtvSm2vglw_RCf|8KE$sLnI#)xWF%o)IPGCzt&GR06fOvK+#
zadSEWy*QmE?W}AH=x~8ZqoWC%=BJVPv|TZ;Pz~E8ymn19cMS`fVAygb7D?9jh}7^h
zPxWNd<Ulc53bF2_u!m~xLP&&$`=4^Q0vKjt9I7!>gNvUuA|tsu^KzNT<DJc<_sOa0
zjPBYXZ>_l)45rZ at d6L98@8bduvrmlYX=C^KJ<c>5bZh?F1`(6Sa0H2&l|m24dBfKN
z_84;ujhVR|)<0*N1NE;R?-=jDoiue`%vx_2>`zJk;aZY11zY?bU&sTM1t_L9rdh3p
z4brqjqA+BRF4fx&dA_=3C#ELSlZx<at#2ki(Yr at NER|S4n3@~WbcX%>Qg6J%B{@^u
z`z`#iqHw0J`+!5+UM*B~anP&5G`Xu4wu{A=#gJ^Nt)-2Fm&r^w_QX_Kq&g;ck?DSH
zsT25;7xm|Z&6<a!UEO)+Te5a|79+yD<$VYojtOX+J*rIe-1e(&Y6P}P3;JqW5B at AP
z>x-JsAf-T)Cu@%-j at V?Y?H3T`Y{K5X;2FYO+9+9SP=TizjUYvKyveh%+_Qj223bPQ
z4 at nN0O4pOX+;V+Y6$6|ZYYn)HaaHktU*woFJ3|X*R56LsB>#d5$Fs$>s1TF}0j;RZ
z2=Cm4w06A7o$?o&Okz$@*+iJLS6&T`UK-pjb1OtA`;{sUaH7nV=k67#*GQb^kk81k
zYdQq4h-S(`BHO^qDT<`lVU-C?mGuluU?weDPR<HNY35I_DV06+CxQxK_~dD~EU(63
z&}cFFJ=Au-LX&0UweTdb-)K7TQZuEM at OT$;*l&%i%XPs(tfamJisJni<;`PlbPrn<
zzp{kD^d?W1-N`V!Lg#&*_~3q8ftAP&HT?#L4Kqvopt|6C4-0se80Xs)6bwsqoyG_q
zmcQ>D<?Cftjt1byY(%HWtxkYnl2;;`?QJBal at P@#H40M2>>b{WlciG7_3^L=#ZCBG
z@^p8ZpL^A$x2BU3^ZGce(x9rqN)Q4DOtD8mULPt!pTl>N4{2laIIk@}W&9r7iNoq~
zjAo2(pt-sQyHO2#?nc2`2|8rzoZS!@ChC8}LGY)|&v!WiTq?aopDfxDf0Oh{bMAZv
z5OY0Dujt1q<yEs4A%8b2O%mi<9>bYbVLF-hEhUPT4tu<o7N0uIEb&BgyWZm7USjk(
zFDd>cq)IKVI%zp4uqr?O+jSZPM>S=v#9gtJ(`F%2kOq}<@n6Y~s(QQi2KBT7v&Zg%
z&x_fu=OSCQ<j~f!1NG#lkS*0K!Ca>VUzF00w||=31QM~CjdDRP2@^1eHznHHs3+p(
zM_6$3lQWO|acQ!;zU4zhx>xuIbF2!o9`5X_X&$^O9YE<X$GPdWs at 71ttc}N*C~$Jv
z>JUd$uLkYo=6wI`k|(h}R9mo+5PoUZ=-swm<$k5q#{lgK3fp}EK65EN>`ObZBX`ca
zsP=|Yr-O=^lCd++{>+97iUvuuTu!w7D9c;yLjAi-%jvjvX;<fQo9?-3v*h$7V)+$u
zfT;vEg|dEE7B6i0a&yQu;o)5LKt<Tl!iAf>)B=$sy&Iaa*B^aBr~|vu5HDz(5EN}&
zLGZ=FYc_(m;Sn8$HB9s4)I9Z}-tl<CJE968&v<P3;jVSKv9lNZ%9Jz2kzQ;~9IUpx
z#3GH2P3(-xlrvfBe@;K-9HfrLLAGP&dx~lF1E=Pj at bRzj-G8IM&_ at rR)8Yf9?bM at Q
zE$zE6!bZ403;Y!A(B`|Spw17mL&O<*E92ovrM%N&m5Mf#N?|WzyQM)T-!<)KSSyV(
z(QRJ%Jd!fi-oziNkf>X%OKQ8$Lww1ZJX6;`Q8#A9`WH#s<akfPb}1vSzr-(rk-fNh
zlwnyvgbDfi+vS~d9R($HWcW}aiySQ4EJ~MC16eQp3ilc7^FjyLS@>!<Tc-(wQU899
z_~vww2u<+Z+qdj)?UXGrGFWVI?Az$r0%&u2f#F3D5d03v4CUX at 3GQ6?hH-1H`jxi_
z&1yf0 at Upw5e<?eD$x~`digbKOK+*v$ll8ncco%8)$sfGveSw>PJx5rM`_(n7qVW}f
z^!P7AaX^8no($~Q=*c7ePzzn+QZnl|8o(WvIz%bp9!cu1A~bj9ek`^IuL|7A;%9Gx
z4Y-};m%;Nxm)f`}-`brP&dZG$Q2VwsNt$E&YH0txeOf>Y{HGY|S689ug6*zibZRz4
zR8*P#1EHmf)4xLb5R0~Hnb7`s0M&mYPjIDctVTfhTJnKWzh%ecX!5vlEFtX<8#R|$
zGe0*KJTFwp6LvWFayivy1Qz2hQGIh1C;(p)pCmr=u2~oVsoStLIgn{Z1>XV&jvBSi
zb52*B?5LFUUg`(K-H5t8Ezu~L!x(jXpl<b=M5>Rj#;9~lN)M`XY)_KpHd@??f9ki2
ziFSMM=`Y^>*u$-1OKedh(a9obZm5l0My~k6Dv9&=Q`E@>;AAl;uG(gHXDi6CLGp)g
zrg;gj-SAk`VVOF+?47TMxO370ty at B3YA`XsJB8c6VN<OeL50+OB+YDXE58T)3p(27
zEqB11 at 2bnRpfk|(6_ek-r#AkaZ1-7uiSn{p8JU2iFN4)|!beuzXtuu0C!;FL(`IMr
z0?VA7lM%tqM(fu)adsW!nto)NR_|wPN|1L`l_!U_hCGSRn1q5e=Mq*HqhL$dvqned
z$((@<db_5xyYZ`5qb?ThEsA(99q(eBe>TI!c)y&SAV+y}ATc2~nE`zH##(q~&r!I;
zy9>!T_Ionvy9DZCvvL1F24TYG_Ly_>V?!V}LvNwj`8rYJQEkuNNs`g4ALdhcA4-6J
zNYW9!gB(MH#C`QopN67po8nldn&=X@%1_s6leauo<;J+1%&`5T|2q2wheAB_-RU=(
zSdSbr3ER|gFBKmSzQqF{Q7n2&GhYkG=ooW-o!j#VYg2+ficbK*1nb3fb|tTa=K;Co
zvc8F|;Q<%WO!;(=0N<yVvRwB--NN5ly*%H6ZHk)EbTz?Sa`6pw9M}Gjel$k8w5M
z<_@<ZCfl%T;a7&RHI%O~cL`@}^va!4PI|9R>WNg1MLr?vajCddFy>kgbQ`s#VVv|m
zze?PCe|mHN#Saz4XTy`?6w5`y9Z`^Se>Bsoj5VBO8XmK|t~bfW>vHM@#*g*Pcxpu3
z1SjhgF`~X(WU;CCf^U#YdkgtL`A@^wO*RfRp9fctuRFRgx6Ho9`ac|h#noS^Zb?ps
zFCEYRVVmCKB?$ihiIr)=VuX{<C~CQWjUifklrFmKcCHJV!qiT--KV9B9Tf$5wJNAz
zr<doVmYz=UH@#}7L;qAXVy)D~aPN=~_jTUf)&SLE-zxA+*a6kjUrY)wsd4Ku6fZql
zpPLxF{^M?(C6-coy=jI!FiwfX&=E$+nojHT at iT|;zh(Ll{#m0_rdqzd=$8++HF_2T
zFWz4QVl}dvC3vj#S<8v6T at q7G_^zyorc=-GMe-7XvnkS at r7HVHlCJ2;YP3ZbL~<Fz
zQ$m(Hs3r3}#pMprJEfAotU at r2Vpb_<*ujk*0y~4az+<5pyd}#-a^;10x<>j{7t!^G
z)u5DwrI!Z`wn{iNd!;p9lT5`*4~)#UU~e_<qjozN>vpq-mk*BoW(DtvlVZdixwDAA
zkgSQyXV?hWzq^M;7<-k4!k(*==u2>q7Zk2Pz8 at wzEs(j!SV^BE at IM-U8~lM{vz=91
zaZ`(z7O1HuwivdA;Kva?s^6|^zBTO{DT<p?mQxd at r1Xl_eAy4u88T#NZ%Deo9u-~r
z_WAV6y1pwSu^*~h<^@wQG)C{?Sh3*Bp@<}dPLQ|#bqK<{p;;JsZRSIJwEXk{{C(Bd
zU^u&**xu`fn3Vm~<`l}yPSZOycKNkBIeGshKl|d39$~x at N{4q!&na+NS)iL`C&e4X
zJegr8keg4f#>cF=+1dpQj2tvkI{BU`iG3S>>Y`W(vbyLJ2&8uaX5XcTXQmI)z85ex
zGMGCF{EOZE5+`GJ!EKTBg}>W8+;{$0zVqz@{>0Q&HgcZEe9O*9ae98lEN61uGuE^X
zY#%^SRDkf4W5u$KAso{F?_gvqQxWDr($JgAaS(R3U<;|w at pk#NfTE?3)Levh&Xv~U
z1}Q9Us;XspYDo`hW+B+gKRVY*E;^3`h~f2?a28JL&!P-RTGmf&^#~{DK)vw42{*cM
zi2S}it+Y>GFy9mu6e7bv(PlaUAa|}2H7E3eV`&>fB-*x*zQh<tz$W2b#(;n^P2KPY
z-=zk;rfLZzPL_ERQzGt(V_v`AdSn%HxZJA*<M3dl-Onee!Rysbk^i3;U at ku&C(ISO
zvX<jE_3Zw045U)}MCPV3k6{(um?{_PI*&@+6)KlMT!pQY{Sw+p67#*;s5tM{s`o()
z8MK<1FH#cbPjrg&6SseVpI#~YdIFXj%&oqVe%~7C;ShR!3F*;_VAj}AUh|EoBrOrV
zTQnU99Bh1B1v at 2fc$TW_Eje_rgg!IgwqCCpne at I@4S;jL;cuEyE3ZT;<rm$r81bPk
z_FS>#5|n==tBnBWNNW1Oz$r6giP8gETyyQ9L}9-8jTwf?^0k^Ix$SBZBBPO0?juhV
z`bm_^hlbxH;!ALP{xmNozFb2BnK`t?*yD**xGzkPLZ0W1Qyk}RbIwF)0m5_I{zp(<
zyo|WeaKvyuc3f2}s9yL>kN7fclt!nK)z<6!_-wswd#U-1%y;EUUusb*Lg-Bmm%Ktf
z1J0BfmJ?#DY!7{Q=0#8BJd+tFQ6+<HN|fX{m<|jHCy%MfxJn+x#-<-&&V}v?EUI9c
zh}@`^fO>Sx#aJ|?<NGh)Js&F^*4$4MFyb0xb`jFM0IuoU?VAXrCoD*x<=Z3R;Kk$U
zIRFpqhH;!rOG}Fl=7|2Ux7zH49lnpwv-hO_4_kYFJv-G0ZMXB<MyZt})cL;72^;yA
zWlo8(=>#U$zK^r2#=2GoJC$ti-uy&#LPV#nNy-9q=*hWk{sDJOmJfF;4#<xom`Z)R
zmbvCV4(FBnoKj0O&!{EMK-*k_R{ip at QNpprd?t+i;oWD(>9#Wb@^egcCC<2>F#Ll3
z7ScHTYYA+f^F!0`8_S0cVY#(yI;VA4DWN3-|DOF8`!#DJ^%4)IlbnaqdINqBa(;Tk
zaANlioT2N+fWhB-f~>!O<~<yEJe+h);q0~|TGTv4X}@6~_?T#?oKo0eFWBAgpdWBN
z9R3J=d-o+}-td=_Eu`C)UR9~3Zh7 at Vp+Y&v+G&Q)?)AnOms$;Uz{!oMZS at PYH>qy;
zt08+e#5!fKF=uYRZ(8ZAFDS<_okF*sy|r}K&~W#~$dGbyA)k_J6iFhii;Iy0)r)iI
zy3M*+uEc0#4L#ubh^vdWixZ)7*G>8nTioY%(1gbsocVB9r0ui?cW*p3x%LI8yumy^
zBgph$nL+f;HnHJwr$+>dsTeNX#ou^#MMGnyb%!$hMIlo^jwGTZQ%H$RU-k<?jJuIL
zvw?z_gP6$rUOO&Q9+!WIKxG!+?$9T*x#421(}tO&1^lz}!ofz{J&${YzOT0nZI64|
ztezLfUGHztSk3WODjcb*SuY;zUc)1Zw=Of1xT$270+dI*yOpN7eou#`u-V&j{8I_I
zjCy8Aw_thZ+lA_7?VZ`W4OHAxDXPaq}FY-28{++jErDSem>nU+jM1Ljp=>tL+(
z^5#|rG0$HEsN7na0Dag9S$B0fTYtryU=#eij=0zB+TufWMYGItl2YLm&gZI<x$1rR
zi|Bgr`<L%Fm&RL`D9>ZT#kT*KtLyI;UW=-Jw7G*zmifp8rE`%@Kax>mm`{3Ku9P37
z at Ac65;p*AOapl}uCLxiqBz)wtt_+r--=1=Iv|d?#hH`njOc200 at xvx-(?b)zC;f-W
zx8TvfhXTRNhLn5T$7L-Z1?O*Bn|nTQ!49xp=AII_YQ((`3d4MI%B>rYhSm)jiJ_q{
zE$yw!3O+HmOWJ>WoQOJ_%fl&;JxoVyAHiv+6P8T8l^CWic&Z9qTK+Jr*ZJr?rH$O|
z1U0slY`3{P4sV}w!(O8BvzZ4~HRC{Aobmn9rFNj-0|WXy&xI#KoU7&Ho64bqaneV}
zo{|HxuylS?Syx$9 at c{t!y8c*tg+jK}Rso^d9>Z>Lm|?YfbvM;Vx&2Ba;K-j;)Xkfd
zrCGC~B}2E9&I6v7C8ne|x(z1b>n)tH^PXpvTz;QqCU;-+U3D#fUD~S^?B18F=<@J}
zky0f6`%HGrELp1g^ak0^oh11eH+k`}7Hny<Cu<FF*f`7Z&%9L>`6$#}>O3EbeAX(E
zkpzg1C4?UB&^;&b8933e%)ZgEFX_U9s at 3DCf-BfMu$s>9cBJ9rF;pu_i|Us>Ep$J7
z$`j^Ae)YE)Fm^wDEr6xC3%)0{ty&$ND))bKJDL++;j&{f>Hl=`a}!3FEq3CE?Cu<J
z70)SBQ#6>Il?h=(m>o$IPB6H+K|1jTk$N at oj9WphBxFI!i)bx0zDu)nBhZ1{8>F`f
z{*1?QLaC6+!iUC<u~C~95BKEV6-<)x4UB8XG&It~Z48!XhS`nDV<F{bh;Qd-Kssu>
zT=|wqX!tH9(>kuQ=ZomRJtU-gIq|Y4r8IdrT;SI&fmyTsM00~dl;)6L8vx^I at Bqec
zbHCSl at vvn+nWFmx+=_;t+0T3w?U5SJ{jToK>bL2$9dtuCd^b<F4I?`2!rvocaz|`S
zdbLLJEB5?o@>k-djq#s`(+B${`<=b(Xqkpg86<7}v;GB#0mbORfV+z5iUGr6`x%ez
z``W_VKfsMdwbCeYs-6Hrm3)j1kDX(k?8D|rQo~NXwrzW&M4Elo$(_#2^z9O#67O3)
zsNh#!_f7$(llkz0t?AHU0>%^RMbrzIPL5@~67*77{W8|CSh1(W%B3e)d`z^@yNml-
zsKB{o5H|ARcD(Sq!W2hZeVKl%y at h*<`8VDsfI?w7BXy4N?k>aj#@iit*CmM1^KuB6
z)%(VZ{Z8m=go50ydAA&CQrWL~rE4(Cw2pX~1(+kaTj1o+`{r_mPI^R>55wsb*6xte
zgiOeVmoJc|)WC)5_jjcQNAqvH;;f5sY}e5VPqF6M0x(bR^XFt8#G;uBfoV>qR}~IS
zX)@H3S*f$$I^EHtnbLwb*F&|&_~88lqQk7P%d!1Zo17~;());s4Aubwrx8j71OJ(>
z7iSIwnirXEwaK5H?PVCGv0UNv(!DNl+qLhl1P(8aOopCYFtdT0EjfYLZp?ztxGgOe
z<hgnVNIkdCuJ~+F-0??I6lXS(L%8Q+)AU9IE77E4ITz9k=TZAOwc^9DOP*V+?rrDE
zCZ6wCaY^o|LjFEHf2f4whk7SKZM|;8hX#2=(8>EImy5bQFLN^wk4Nf`F%zRTxt9ca
zj0B;F(diVxOZ@|(i?2j8=9o&D+mSUYSG0>)_<T3*_zo{kpDpKg;%u^Vqnw8A`imLm
z&O8`gdT5;voQ_vU9MH5epdXhXxZ at 2Y@!Rl~Td$GkVkm11_9r`8{f;+O?Oyg5GtZFS
z=c?V~kDYA%gOk{H^bf!Y0^Rb!KV6xZohr8n`<MC0Css{O>I8)|YGLgB3zFGXn&`NM
zl(4Q9M5<T#3bnyzBrr3E&vqW`8>~l93klbEwlA+4VKS>6*osQMB&J1q>w@)6d)<zV
zPp){u`R=RXi$GJyr`u?j$5OWgU25c7fG<`Yo-VXLsW7CAd9%$#ul^^eviTz7i%SC2
z%|93P4ExWOC*%_RA4;`yFvKw98S$Kx=rA;aV2sW0A3^x?53=j?mD+ at W6z)|WX{uDr
zsMe}YFrMaqI;NaZ`cb=Ed8|TKh_i1rM6Qt*jULS-RsD;jRtjj9a{&-MOyV=aupoTD
z>S94^L8Dt>RXnQwDppJpd-ffXsqg*mUie(XpELGPB%=|qO8su_=5S=d`S)R4fpbU^
zSNcY)r5xwf2z-(1fYkO4!0RsBNHsV`Zl?S^SMqJX|A9BPC*Hwf{g(QPaVk^zyr+r0
z4!!QLY~eNrcly5g&@qYP6_8-JaN3h8JB4Z^Kfv0Wu0%QCJ`H2J#ZG<(6q-zmAk3w<
zZkNZuqxyA$A6B0F9+Zk&GnC|YK0d at Pc86z?Ii+Aup`7NnTlA`GFjMG<d@?C7HveVG
zMQ834MS5?1@#)mimNEpz`YSs1pF2Yewa!UZnS5bnX65xjPOxh<6x;RH?iN{0-(dKZ
zq}}ISZ#ijS$FXEQusG9?6D1xJ&IIO+{h___DqCsat7YNeiIttydEtbtu$3Mbn}a;l
zS*A-`Q%`zdf~F1q;Wtci+xSa|T99@)Y1>`Z_k7K3J)_U4qp)g;Qjl5WggZJpYdp8;
z6bytgZp)28(`_9KjzsSl&t>T?kiu0fkwcwnCIdAsRtXr<M~odmJBt{CdN*Z)=Td4t
zl{-eaL|%6GeYiy%oS8So;?t~S`o|_S%d{I2N?zMw`0perxbj>|4TmYY=f5>wDF76Z
z=Z at fu7Ro4;+o+5uTS*Zv^V=kjWGhI90avI*0X_~B05AF^VP6#D_s7rPbIJ+e`C-cY
z)#w%F%n)qTc=4DW1G4YfaA!s^C8m!xHjb_jnm*Q>|ME<#h<@_yc5<^@@A9%pi_s5w
zkhQaa->SgN*V}i2?t<LGX^bQ0haINjA9vi2iqqejr at l!|=RiL8w2aT*#m8-L7I{XA
z)7>I6x6b2=2W!NGK?ZR?MAPwnM>OnQ><)h=y6(b#=R+IQQ=}C%n8S3HNC>8#tq6A2
zUq?$h&Rmf9VNr-8v<<x|X`~<S>gyS at jAE{y4vTZykz+M)<+s<UYktBW3Vmk~D-%nR
zG9}7=BH#k*sKU)IDc`E1+I^}}FICE&Af8L2l%GJNJ?w%mMs$M&deMX<8=jxpcE}Pv
zT#lD%R;C>a5O7+XHNp(E5RENdlLdcDNdwox>9tygh`s|tne3A5Y#$TDVsV46 at V?JM
zda&lX_v0U|7wk+F0tBhzeBCOkVZp^F{Ts_$RICERZO23$GN%zk?Er$iwD6gF0u1~#
zj?2$iA9f3(pMzh1virtV)8fH`N78U>MX`?0N5^q`5NGaRu2rR(z;CbN1%~4(Nl!js
zR9k#Q+e60tijMWS^#nq9_2DAhPufoyd&#=DFZ-TRO*d^iA<6?b`2^ORDM;|=3PM6Q
zBU8qChRE?$*;IP{Uz0xZZU<ZKx at F~-BvXYywCS8oj;8zdHN^91 at p%pmz6}gCx2+fU
z;U-B+dihKs++9hD<@J}Ik+260jWCAbV&e`9&_%K1G~_UMwL{5kXgKl5L|d)`tu#5w
z!o?U`d&le}T}3|}BPft@`hY)srA?1|)J!%m6DAuqmHtHfR<?(qB!OhW-c8b0Ir#w|
zegj|^SAGDXh*fb|un<6uwEMDMlwZp6xMSWPhDsVo8t^i+2`cs>@Z(-{#U$~6FyU}m
z|43aAdg<=iK>e+KdYVnNAGXO- at s(50Q+YdE>kRgS`8&x%x7BBCRz`q=Ee%^txYrk7
zQV&c;Nw-dr3mQ)XekBR$%3J9Xo^Wxgb0SeF#jQOOk at 2j9oMoLjbRy|8e!wEz$Od`l
zN@@xzekgkNwuw8(C$z|_hA|uxr!Tb8Q_AWebX&c<!JPqA?LizYU+e#gVmNltW;=kj
zp-er}wVpMB`_6c{hJ&m(4v+mC4 at fJKy0vw4eSle{aNp8c>P7y*4aCxvhChp`-eNLl
z*~jVdjyxP~cegx7DZ~GVz0Y(Pk{}{c?6GP|%xh9b!<9^UG~6O8lHF at +u*qRzbEI*Z
z%yiV_8wQjEcSX>m-TDc~qn?MbdRegf^k1EuvvrZ1aS^GW5u7byKNb?i-!SR9E?8rE
z4ni$e36xbJ#u+kR9718APYXSWU99J}8ly770!?vPnVbrTENG+?cr;!<_M?dVf3tGl
z2Qbr#P2e;2wTv+d3hjc;;zhx``{M at nFW8^`>wQf$GfF0P5qoMR4a&@IW9cX3(M=Q6
z(T$k(G`=>D!SGt?wN|X=j)S`d6djoAMD#6keQs-3#)|C_#9fi<V<fNhUM2pZ`PTo%
z04&zSYAKP%XSTt|H<!l_`Uea&i-Syuj7ZX#PLLD=Zn-vpYR`}t!?HP~JzjVnJI>BX
z<7+my+NCT|xQa%NAZfn5YTkhzot!>w9DGn+X^$)ns8dl#^!YqetTmF+IGdA3-QKs~
zVaK0tk1v10k*0V?G<-PE_DmK&+_Cs0u7Cn09|6-MLD(ge*vc~BDYYvTsv49UgHD`}
zBVwt{c3aMLed430h7b(vtG+{bsF2 at Nh9zyA*)%s~j{7puQ0i)&(M8+9P4j{_K*~{I
z4~JXmha at fv>6o^{flGD>sc^~eFV82}EKtr!{MdqLar$26gouC13a<Z(rL*8d-6^|*
zG|BV at Yw7cgM3kl1Pl@<CHnG^x&pT>T-wntV#j;Ls0Dd4~Mh}T7AK}|CS6eiJIaURM
z)EX1eEX^)`GMD|T6_UEXN4B#0j5e>_^|-cpibv;IZNtci1K`8PUmXl?V%@i}?PEPn
zzFg98EfjarO&dWo6(!nDlc9F&o1ce+BMOB>4u84vhT862i=k$EXKn%bhGb}?ZdJFJ
znuv4`*KwRmA$1p$G7)+5<PB`Kopl812$XOeo_C|;YNF at vQl($%HfnyY)w`1WlAQnB
zib|4wDkLb>0Y&`vSF~bHYgaQwHz75dX)B<rA;<QC;C`SVm1Ge86=nDoa*gE0o1zB&
zdB0RU%#<guZwNY0N+I)lvcFT%n`}S28E-}tsltvwcJ7yfK1>lJij at E8?VeaCQGfg1
z8VL{WK4MYqfi;-X%dhT)`*ktoxjDJx<Q|EuhqZ0zxbQn~UsqFyR4f6gbz~O-A>^Ba
z^JYRdROlnmPcOD4GmzJ>EWwe{^tgC#=s|r3EfNj^Q>#z{T+{W-EW)zr3=3$M{a$(}
z+gh!*<-z;@fL_AzyU$6Zf%Tp?TSmVtb^9XD+z@*Rxglcs_G+2GIi(NRy^L}HW_5?o
zBX}SJA+(HYFvV<>sV_Bzqo0m^02Bs_ujcoD^I)*D`)nfUvfsUk^J81<!Ve3>&DY&r
z6c?}jKrC0~=anl?wPCVUWg`R0U3NiB$43 at S(w1C)j~aY^V3D=(uhu0EDWPj)Z+nwX
zHNIXXPMbdrF$A0yAts(+S?aA1ln?sduZ3gNYX$1>opoI+C7gMr42u&FL{0w?4OVzK
zZQX!PpF8BpGl`q#d$T40+m)KODI(&QFys?y#`KUV)VLxyCN6Rm&uW)mQWB<s(q>DW
z3AiEyi!whn!5dBm_H|M%f<q#=gJe+M6M=NrI~gjnIe2B<d7$zyDaWwrGDwEJo}Ndo
zi|%|sTR1={PUz_Xn(lpsqTAeaK1k^NQ*GN{glvs3zV~Y$raL2vlvdchqiMxomfFma
z2$={q6CE?p19#R+{f<|Io?FLlg3bQ0^K(gBn90w45hldH5~AygtB}iNr<GhMC5vJP
zz00iQ)a@()P9~W|+?8rv+paSELOid-U<^Z4om1y!<9 at XpR2J&yK436|P(O=8?5ntq
zroUN^pSVWV{>14OfFFLn(VpNv0uptad}RaWV5v1x at O}7ppWz^hTV1=<%FXdxd6*Ql
zxh5x2NL(gZpJSBo+T4EZR<5sZ$d(#qeABU1dQ8Kc58kDZe at hX!ENvYyv>o-FiU6Y(
zn|OanhUrntWjA#B4$Z2i9M$>J%so1VVq at pvVtJPJ_cO3@$fq{5_s9KwLJafqfeG;)
zvrHmiv|yi|wiwWddk#c?I3{icyz!!m70Ly3Ot>KXK+<7=h(`*tw~2F~)-&&IK>cik
zl9&B_8B;y#1teYUssc+9992EShHeX<x0z|fL1`bH+J1G9Us at CQNXEc5Ky|i6and&P
z$WT>S@@#DW5~Ul!)S^P7x=dMZfYVB82W%-zq=&VMjZoMHZ+c8KOlxhe+BeUvJh_&&
zH>REasH6EE at c(#w%dfb;Eo(S|5P~NGf<p*_;O?5>PH?Ai3GPloaCZuKhfugnaCdjt
z!l8gF?B#d6`}XbU4|vD=vTBSP+t)t(oHgg%lIuS!6oQj}JC at T=2ABTMt00ZmWCP{?
zg7#Nw-sq66(7{~+e=1&K`h~nZXzcRQ&A7SEx6ttRT-h3)wRko4UoEqx1YGUT`3ZR5
zyaB*^ybET2Y}1tji?3tPo1Wm1(VN%sR6TDYLFoplGRzB~MyIu7EJ0xxf)RW<d5*rz
zy$#u}vj%VVDW)$(-4aDbP{=)Qsoc}3tW}Y#ycRCm`iJ{tfsc2@%-;-~mp|7Is(Wpo
z37;W4bm7)%om%{yB2Ge-Y@=U)STD<0erQG5ebhCG6}T>fC6GUesVj8qHX@%!4uB+p
zxXGHeNH0?_I%j_QS(hU#EOHZjUREJ9d4g(QUeJPkqqKAS-g%-cYP^(Dl<p7~ipo_n
zfj`6Y(}Wt#AhT_y<-W6g$WxNz{tI^O#`j!(M8?=Qgo-ERa;$;9yMO<u&)G9K6cDGx
zpDff}UsKg^V2tXlK~MR6rw&8q*&W3cl3(scCFKq}rb&<TX?#IS^1ndC;X1$P9Wkb{
zoG0Frw>_4D+u_xB|1U34<-H%dNDz8_{!N^Bae>D(tAJU1LLW00VUbJnehwx%@*%pT
z+5)E)h8z&{W+&cyqg1{=hYoyk2)>rS_qfe=JC_%>z^T}@yNJapwt`Du(h-qKbx2;s
zUV{Js`laxQP!SMmGKsH}M*scEx~-Zpe^;@ZztzP8H~%9$nrIp+t4`8egW(s#84e+>
z)wHmw)dy=mj56CQ_aF6GNm|RHL3AOXuM{cL2+S8UyBeG)E8()(FMk|RPOWk0D1Q<>
z)Pd<fTBez8PgGhy-|Nttke~BTTdw^*Y}uq5ZU4kk?xVRisGN#MIb4`138{GA;#APr
zxxeibc6|gj$_{ySLFlKTWacLIlDWD+dWI9_wHq>S1vg(BdjFLkv6C^M#8m0oUBljh
zuZEe%$_Jy2jB2oxvW!KVfxX-ZiM?jH)BsBN`SkC%s(*PgExKwLWq{ZA$bzB&^88j#
zs()!bqK5FDOCA5q+pz(ub|0yKU-45g{FnFHwWXX;tpi~T)9d4Zc}>eEvz2h%_pTf9
z3;*&4RvF8JX2HIVh*>@V^1h$CXuk9fsfXn5>wkF;4gWM?m}bm2Z*d=8U3mCBl~~e0
zp=l}b+_JNAY6}DC{`V`mwOY1)`NRO1;!JG^g6SOe^NjR5{XzPQ4(~`OlPN(fhW&LN
zhwSt1Ms0b;gI<jz^lYg^58I^4XBBz|7dp9G)MGz}KUYTsy_EC-tNB^m^uu*U{E)dn
z{_Xhyi&!r~w;m?-iyZ3q at fHtfpFOc7@b7IPJkv=zNY|oe#8U<~F=4y;u)C3lJhbh!
z5*;IcQf-$wbZ2M(K~y42aN=zV!2jplVubH{z*hGIX+QLN-!(5TZ0xn|Ol|kew(Osn
zLAxllRpRdE9wG^3K6R!O?ktVhT{|CTG<dmbI)sEy+-8dS`N}W5VY?&~Uk<m&zkL)M
z7Aa~MB4+W<CRsA6?-qBX5vq9DC7Pg^4JJF1e9$^OYJoGkGl=$#*8!(@jxE<P at 0atQ
zS9G6&YmhAQ<ta*;*m^z;>!n&2K+INInz?aeKZ927y9XUtcVa;K_`Jr&)$jv5HHNYe
zG{$||+aMp(kzM&p2E at p5cC#aMfpzA at eGOIKoh-_2edrSy?gZN~yrc$Z%Ty(Tqey<^
zi%$vtob$FS_Z9pV42zT#0*cKtDK}ROnt-Jj+duuifzo(Pv0L4HIb`l1O at H3w@t(T=
z=@HD3*3ep<p~wAqyvd5|<3}u!A3lCfM(%D-ACtgC{dBf_<npHx*SNS}gbu22E4uHu
zhg^d<7l+H40)KStkpxYT+g$%Z5`Oc=c_A^8?8~r2oQ4epTl}wu#4K}_dLNxfkf6T$
zC%~NIZo1`j?>v93(>(AZd86XlZvGoam;2S8ADhR^sRpxsdnp29dhjlyNRd*VY_#qO
zgTb`NWCA~5!YR&?DRSwppJ(sqEGeQ5g9W=`tPTZ*yo9q8{+B$be_wh(*%Rn36ia9X
zv^e`~L*~$EyGIn|;L|nYV0gJhj3@~rC3-$eW(v;kZV_{mQRi=@LSo$(7Y0WjLQX5U
z0^?>COnJy<?_GM^v<M&pEO at x149F@~&w96Dka>?qj`V>wBvioIOZ<)`vQuQ~0%>g~
z3z;YoPH1Wr9VH)k7J&Ep+c#vhO!RawVg8DCew5L)9SQ*L*fv9w2muSr;GMga{LlJ5
zgZno@`$u7-ppjL+N^eiv>fau?!>Snv%LWRjq%LO*zZsUNV at Tc~4371WlgV`*V`%P~
z?B-XEXxTt91VmvRWK39C-!RySf at WV}BqDHkZDy0M;Dwk`r`+Y>`18j;Vv66pMR{i=
zBjEDg+v}es{5-wvQ+4H=Ls at BXY${p!Yfq6a?ds#yXn4-0QM$L)vpcF_dK<Z9&9vL*
zqv8|4 at ep2t)#41fj36k5_Jo!K at _D`^Fmy8Z#9&K8ADept3bq!whN at OG)~yK$ky&<R
zMcmuAU|>but5vLeyPvpZ8?;2Vo<9{opU+b)x6Qwu2Q_|D$vWRv=suPj-{7QKhp<Uo
zc2I)35{brcK|;3o3d!8=KG|o}5WUBV$C{%N{)fw#=VojLFj4gh&ZU_K(Q<yLZkkrn
zs&^E3lBH3}L`#YsHk<{YHoLQ%^N7znvI5m<=&?`*JHR at g;Ffs~V&LcAaJ(zDAA4m1
z>51rbSyq3p&M_mtIp}?1#2>HEY25-PGI7hhZ_}7KI)niv@&(y#PT)7eCvZTuai|vo
zEy{yKVu~ilf$23XRnb8Ku#mx%7w_f#fz6$u at aS-fC%s0GjG;I- at e$B*%HIIJ4VK#>
zzjGWQ%15=bSg0b$`LvT~bK<q)Vx($dVuE9ETwLn#EtZb0$bIkAxW<bz)_>^&cs2&I
z?w;zZ=uNY*ws~CrR-<GEoXC!d#kC;h5pf7ZZZhn8K1gJn<mDt+iwj25Fsc~+Y&$fo
zNDU(*<Pf`;*PYl6!8D&dM|e0ZQi-pxWJY6q;XbZgUqu*clXeRUO}~rGOty8ScwBI2
z)e#0Z;iI5gymsTaf4bba>e}T31paZC%?h-wXeMQAIEGG1p~eelhX at H}E+a1{1RKc7
ztYfl8$-Aot$r*9)&l5Dl;EU%YMoQAWK##p2TFf2qcGs^*cN>pdtf}Ps#>cY_x{G2>
zi$KRJwtL6p3Q)E6y&q5F54ZKhlafoF005kYI`}fF-HTky<v at Q)H7zOf{0>AUGf+s}
zJQ6rA4L6J3%Q(G)%onxpVx<UrQZPRECoaT62#jzUJIu>04wnrWLWF=*iG}<HupyZ&
z<SXW<J==-xR)}w&XSRFXF`HT1ybHKJabECnxENfhoYl-)KE_x>GUs;r#JlaF!{cbl
zoROgidw7~-%Ifun6m1`1w@`@LeBpT3hp7S;dv|0KRT!XBs0W0M0^kmy&aLh_yav|h
za}=z<=8}G730lOoY|ZGywB&yb91l9fI$=jYJG*29&Mrg3O$q3eLEe>Q1|(A@^5~XY
zaF=9zr=hZHt5k!K^KFH3eo3 at FbwBw26tfu)@CjxX-*RLPDTKqlFV8)%bZEJ<n!n0Z
z<vhGu$|z)clXK|Koi&)ksq=#ENtVmqV&^YVghO6%;jUU2cu~no at +Q<iFO*kSfT<zD
z1OI at QufgEp9$Vo<0!?&#H)+p&N4|2*w_(=uP~Rc-b^XrP;UU{WeV)dEaRNYxO=*Yj
zbD?kW`S at Aa=UtN6HQW;LXV2`bF1o+Tu{6c0T^_sc<V$s-ot2&Ttd6OaGO$Hf?No{&
zi_Fc$(;r?<8W?Bokv$bU;HT2u at qDIA!)Yq3l}7yNtY?CtR^EP{<IW&l^AWA}84Nzt
zt#oXr{yn~aBUoQ#oC^<?z``q_5JXaTQBpVT{rc;W=twSuL=!I>*Ko)7zqM%ENm at R=
zzhSBTkqC>)+_fx>g#E4?9#JL*dEi|&p=4WGdXE9J at xut4%Q`aN#6Pguf7U3eoH`+J
zZ78(5$%{H^$SS)K;}8-^T>RYlrbMTQf_EaPjPz*Po%PuD!!X%8BFUCfq`VZv80d^A
zD?I-dW<sym%)G-3qg4$6n_<F1>=?8Fc5bV`ql^hof>k<Z^~C`eDmb^g`8>BKJ&Pzr
zE;&y0ygNTv!CuMUZxMebDZXT5f at GhH`Q2pi{savFX;0Gj-c^1ntKkZT=w`M<ijEzg
zgE<=Bep2oF_@(GM7>Le~hlj;Y8d^{X1j2T8NUrjyTT8gQONF-a)$l?A(~CZd37H2m
z8+AW`k7=#K3BdkRCSShi(C~YVzfA&=GsjhAD9td`HW4`6lVk2R*|QNQZ-CDC`%Mq>
zdC{8I)2Dr4paouCsT0haUO2I%*B5-z8_4k6`R at Z%pNF9E3L>x716il#gJvsd86?WB
zpN6aKe+D8zm at D20O~)vB%PE(3WGx9nbLnhh79nyetVj<t?2j){Q8x#K<on at n$*GyD
z^5f}LPD|5vX>(Jw6i&Ox62VmYs(&CY_A`nS?k<ETrQd_RosGv3`OjLfqFBc0Z$9sF
zo}ypLNO*DoT7^63m}o)ASz|x|0b?Ioun9G7m~f%7+byz8OuaXo8a?c-ndw@%k3?n^
z*azC at dIaEC)~b%?fLjV!E_R(en$GMnz{*IqqM(rZG($GQ^qLFIe#gqg4lMr!*EbLG
zsTgoSHR)8VlJEZTOAGnX$20A<3<SF46ujw)I!F4aD at j(;M&+A0 at o<Aw2JsU5?J|R5
z)CuXi7n=9b&kpKB(q?B%GxUVqFN+dWf4)^3=dlo@$7cbiSRbbp^pY@$x-X77zWD*{
z=xL?9sz3t1$ds^{d9##!dk()<Nc-Ppw$$XJSHS{zEcM~9yE_2;vVY6ifY70g29#~_
zjHnm3YxW?4QKdeznF#e4WVAKUseBWi?HugNySx_rVVsQ?#Ud2%e3qwyK?fpG2g>-$
z#^6?bFoj;0HD^NQWZCp38+K5*G0f!>QKapGGK<A_{6~G!tIGz)zt|$-yOG+deyx#!
zt)OWl<U3@;2jUdipmu1Be7jh6^6zP_7w$y^h~R;1+=s;Mr|YE2P7h4aN9ibXJ-Yi)
zjxf(Ye%c;NlINSrz7m>OQ~=L?MTO*)7cq%#O0lf-_b{2?kXkSGi87P;)8E at cu<W;7
zJh1Mw)?WIIrrSXx&l<YqjdVo2IeVcGAAyJ%CyS5E5n<kUMMciN2r?7%NTRH$2E5~Q
zC%j&C)1!W_u0gZ(2ntL{sBTl{X)4fgw7Hn@%$b!%ti`u*FvNiOsf20s*g7|U<&8a;
zn4%(8JA6E{vl+jGetJW4P%AUH+;@$QzOBg3qh|DhdDG8#&0(9>1A%jJrshbLCoC|?
zJ+r|?kd&DEM1k3S%J?&tPe<(J7n{V+gR7J?f(Q-do`LSqMC;K+hXp)FpMx;?DKySz
zjBX$l2-dggvUlXO`Ga~iyz6%#1(Td2({uu0DLukYtjVty>DId|i2zA%hC=Vrj8z7f
z_=)lm<|hs*sPy?DLY64vSuPFKZd_U%Jc!##1EoQ=j~97k=a&hPgWwq*<<oT4+<T0;
zqLOjH<SfO2^goWwN=wYcj(r263uAEVp}#w^-RGC;fK3z&<sQT2TADS{3F{O<gzI)6
z*M?cFQA0dcF7k3{aGk18=iZItdX6bSOin7?n+2`I`$oL8%Myqv5!J7 at 2#c+{woVt+
zst;J5mvAEXD~T5eHJ*ZurCNqoL+mLK=JyWs<T`!`sJ}Za1_|{+DDu6EI^K-oT0HKT
zdt-e|!QA;&8|NaRSYf8zipg_#y8W%S*@_ii8L>>X<f?Bw(H2;sfn!qMQ`6ZlHhgA~
zXDwaz^l-xRR(ma5{>i;%FiT at J>rTJ294|73T3b8>rP6whyA^(7id`6Cz!lX$5}m~k
z|Jk>1$rfAZp(M3hFjlwD);{wLv_YTgm?61u*I|n>GmN{&Emv;=Gjj#UH64bJK!M`f
zOw!CyBh*m`BHtaqcb_=SNCbThljr+_1i}-i-Y(2(2Cvmkzrl-iTb&_i0kG_*=s$B=
zt&EE&S-k$D{LJYCBb&xcy*7*JBDQ$tM<0o*<$CRYfG^P at 3d3-<*QFC0r1jr?L0#y-
zNM)cCW(B3V3WT?Q?>mZ@=;j=+w_cv8{DD{_Y%wjzoeer_a2qsC_qrU!w|jcUR-<J+
z^w$9g6nto|kr;!!vE1UyBzS+!cCMVdtlW^sO0?L+Y=^IdV6dnVsxrx>14{{FR5j*^
zVO_Am$owdmDbS_-$3;$bI6$hqJF0IK8*lq9eOLDx!&k&hV1|E{cUkT)RZ?#jpTdTW
zJZeiG at f(uR=nfAee_0(>epuBCKihgP{fHN=?|bU$3*_)IH#ClHHWJPem#Do}?p(B+
z6D4j|_B05jZV_4gOzDPNIivK-i8EoVQU$Ai5cQ6u`*vfPKvUKr$_%g;ISgJ8k|I0p
zq-oo_m<yk^7Y+8h+ED&s&`y7aZ0xqxDvim`s at 7OC;yccqanUf=<J<rYhJbli at l)0^
z!uxI4dk4PI`J at UWk@RH-Eyc~T8*UHlB|MoSOeayu5z4e4v%0~Lqz-NttRC)mx$}j*
zIi75fwBpt0#whO$_>f0*yqwqV at e}Rn<|HL9V7NpR&-GaO;dEVlhqrmp>tww~WFvh;
zi83q-FDi2PZ_z<1^O!)gU?iC{Q5hCD^r%)o4m>yZsHSUx2Cb`F_!?O_mksc>OhiGq
zQdmXjCEE!5NC(~1Q#VU;l@&(PXr?c;Aw7CB%Qmht(rqXC$*pz_H at VIUH;FMhoQ<eI
z=X3pQM(<x0hYN!EXc5hhw5&$j+h?{IAY$H)L?&R5?xXf=Z6S$yG at E|w8g+y2YK0h%
z2jbQ?PUOIn=}FxK#I=mT*|PPXUV)x4ytbWwV!e#_w>q*N`}ix&04MF{rGt8dJETU>
zqqm!gQ_4m9*8oP5p<Om+*P{;R-O2k(dfg-C9(;n{FBn3 at nV@zO<@Ff(Nba4}Uig__
z*TfIN)+GVjIqb^c{&_;7O6JH0qK>uopvb{&1bs`N;eljxDD;WW*nN4L;q$s=;&Fgb
zv_Y)q%BQba>2+=<$J8rM7X}BOKsm3=8FyAJ)%3YCu<(wV8!tg`0fwH-`qzlGhPM!P
zMs_#l+C9rIch9OH*QBiGsgs^Zj{f%R6AGed!qcW>1cGF?qgr7cbY|Nlz1{XJtIDxV
zN0lR#M*!cg>{nK-Q2yr~6peZV4AVAGsvy7wi8AMa;K?g-5yni?k>T#*34N!|6H8`;
zIo5LbeL-U7TAZ?5H#Jz&A=bw4WlO`pR1A$97%slg*z=D}i3EX7g5)o6r{mM)d&-f<
z^Sr-Y-Bz%`VX#BLJ3YTU47W-Ml4PTEP;G-)qv5^X3a5LZ>_J^W6kOAW(SMC(yS=h!
zKc$8+KMBW3_UQFUXWOC(X`@*7L}2B*={hC@#PD-%_!*6HvCe}52ZQNfS$j>aK%CBt
zCdHfq)<^4|oT`oPr8>(%iH!cW{#@0vO8wIlbDBf~t8esX*%_7T+NS*EyX#RXS4jr5
zd`9-w?Do!DAg$-R=q6%E^@{!=F|t>-5naJ_Q?V=UOlxsyZQW4tcE4Cd-u&Xrd-AFF
zw;dyRo6;I>gJGQxgr4a>lD=g8Ap!$m2>#3J2>RN`>)uc$-eaGmvpL$<B`LP75o()4
z{i}C)`~B at EQ+%mGU-Z at a$_5QSd=1sYk(Ju^iE~0h3iy>P_EwG;x2B++4)19?A<LwC
z*-Nh?7#g0|Y;cq7j_)eLYjbe_ZVr{IhjxKeeN_Ccw?T3_y=(NHo*<taF0Pc2JVBn_
z#j_H#2t0jXEQ>rIM4sbLCab^y&G~6J`Yan*CTc4l{+M|<oIANYRa7Z^1l+tgl3j05
z;k>C?AvmVX*DFi)U^t~aZZ{uIZ76RKnI~Q at nCFZn1CYs(wGk?pV#FdV6mEsl+-~RL
zvMPSzFYk7z<I?XIp4&VT-meGCxfvZia>ElBr(D!Ga|9Uz)w~!iANx7E2^B_lY59c=
ztwt~0jA at s1_l6;P+>t0UnzOe<e|E916_n-+BSXQ^3c;$4_=9Koe8>5WvO<c#LW5-*
zyF&s05r|sIp7Rmu at BE8;XWpQ&u at WQJXt2kh^-59 at CTYZrn8@#%>d`a~iGLEut*M0z
z at 1aN1hewV8N;CA7eF-vP0L at F>HUw~Fw(|xxwYJOD<G2mEv#K)n)u3NbPv7F}@d at mn
zuMnf-ImCtUGRFAqFzZ|%NZpCsIJw~d>GwX7?_Q}96#J#dn*_9HtPp_Mc~$G(T~${a
z^wr=yjqNx3TzHIlJK~>`Ui;<8h8B<aZ<GUPI=8Or^T*mg%xAjrsZ~014qZ0j5AWm~
zPqJjtBH43ozK7Z-V{VcOj`~RQwS1`bJC_o)KJHb34k}w2YDx4DC?uR>BMIIE1lVm3
zaAU<)^WILnU6c^IU9HmdL%m*KqVY5wsa9O<BCxR{;-%(DZCC2{l}1lq%viGA0hC!T
zjn8r?-HvFFQpArYjf2FNq%c0 at M9%X|F?gkSnT at p$ILyn;!=B;~rb8WzBkj7GHT88G
zl)FZgC$K49p at 6opoutzj2mV(kL6U_+MWhs1cgCChG)##8S>3*4ks}b)BaYm3S at u$L
z_xX~@C5O$EZ9_<&OpBElY>a53QUvF{u0wCk3j{@ORYxbRZBoFNLNNZp7HIoEm2z<S
zeVoS at nUP2KSpZLCnH+!S2bAZgCw_MMB$LQ|56QTz;vE<B7FR*4=x2>2 at qA(g(aeM*
zwLeQAwGlB=XM}S{-u}tpQXcCSB)fg%6GIXg|8>Q%sI|~&bpB&AB8Yf-ApsKLV}=+V
znlpq3Fsx+|#kE2pZ`^*AnV{D^;%oY5lWT*$KU982;82Ez?&-}KL<#^zbT}=>eEu6^
zBxMbdwk;NKXQ$*13OCGGjyoTA%n}{<_^qr)gpEg6qvrT7Ofvm^!T)cC#Yep$fklOE
z>Q_yM18=D4cZ<e7=Ih_%uD at zydL-htJqb(|o7caiATydeX!j$4et(pK3(FLB{TgM_
zFb6grf8uxPujAg|xykezmGJuA*K!Nm7erFN&R)B$Ono)C8Fg##Wkj1AA=4k#d9X%i
zIGQ{?DSafGVHV=iyl?%Wc+ at 1Y_AH~INfSe5cl at 1y!hl^cwdJkZ^@r~Don3>3n)z;O
zanqJPIgi1e**wME8BMzMwGL#e0_<R`hvGW{+PeZdJQNwEj&GCMA$)<s+oK=6M at EUE
z2D;`Mc%M8jY*$=99Sw+qIxMJKhqpQSxjRrtb|-08^_7ZV-zFkrSgK1nJn?!lSoi8k
zU|sO0(#|WY8%wSBYp^Z~UvZ6{8_RoQV3mw?^Zey_vlC~KM)*Z$XQ at yF4Drz?YQ#|o
zED+4z6?`So$jhx}nPxPr%-|2h0PtH^9%@Fb%kue;8oyRrj)d#b+AcTo_&gj5c(oeT
z9OD-Jc2L&Uz^E&e_LML7*Sf at E1E?r%HILIVo*AjR_dW?LM%6|^*1JO5GiVq>z-HWi
zIcg`}zBhG~*=igtV&RqZGlS6N`>pqqC9$*O^^H5#KoidoB>4~M>b4FEcU*=8461hb
z9RBtW$a5Tdu-Yp9FFrZ3&d7Sr7xek><RclI-!?uAEu>@wpZrc-<wTZQCZ4{hC at 1jt
z_)Ny(w(wRo3lyXUx6|Yxtvd=iB{{-hb$3+nl3I7IJ-qLeS?^C%I|Lb5n%!T*!+087
zks;2}hjhhfNr8F*_F`>{o{;u7IF!p<(f;wxQ2&#V85$9CCh?TA)1WwARphkEQf(zQ
z=1Fty--pBai%D at XX85H;U=e5YP_NhM1iAV7!fK;zePXc=v;??XpAie)R>!}+cw5OQ
zh6!13p~45Z9xby6J&vtESFKS*0_&}YjM_?#(!XQR_&c>*CSVa?sYZC=hg=@A+n&mi
z(DzYi{k2`JE(oPN=^tJnnlapqYd)#BU5~;NynEH=c`N?Ho|eOzhIAt5!e}XHDRp3N
ztZyolT+^<i#~x^36?%J$R?O_huL)Q5L$5CIc{d?+9^~W=uP~zT(VkWh)nqf<2+gFh
zw at Q0j$^bvWyzT?iwhC1t@%AQj{o~RHqOGiZjQaaHC`@ra7qBgRvC9o1h!7w%Yg74_
zl#}v8opASwR7XFA&q<YXW68I;0K<-X1kJCGBDl4mc3{2uhb(hBYb!e`6Vd1K6l5%3
z=xFHKH<6?e^9VuSU9%OS4PUpm7QCxVl-Su6Yb5o&EhUjQDa$_)F!+6;CX|Jjn at _n;
zTK1=21+&M!{$i-R2_tRXTe|Btv&>MmvBU5yTR6UQVV2p{e(F|FYFlExAhA<VHM;|@
z1e7f)N at AG8!@yq2^7?2|bp$;XyC6}B%#%{^hn{OEzndr<U}wlG9L3kRtMWpd^+KH3
zeXEB0*D6WT^}(07+7*+Ed&Ma~Pv5sWiB<EzM*n{H^tj6iQ}Vi=G{axuRm|ka%WL&c
zZ}4J(g%ap=DI)V4imYz!1c?rx9VQtiZE;^{gOgSY&^nHa44{eft->v&<}t^+ct4j1
zSQl;uiC)C6R*{9MWW=W at IGGVjW#NQ3*Ow0ZYfi-9iRyj@=Xs<D@}0H-NFCtdlup&v
z13EBB$p>3&^9k4S9FEIyz6J2i8x;YhRR2od;`hw<i34>MahdE=D8Hf$yQ;v724%RL
z>L0Qu%Y=S!N6-8&*AwPf0mBI;iA&jLaGz#2({qCDfp)`x7&0VHmI>@7g6Nh%_9zCW
zu$(e1=-OezbuL4WRnwy8>}S-c>cPKm=;ES-3t3)2NqXU4;DgAD6WGQD$sX^oJ0r=w
z11u1=J)Mo0ijL?{RHx2)c{_k)jwIexo`Kki^Fm8S_$fF{kFEA*H$r6l1IMFsWWb0+
z|E1Iiw^8^qPD&fmsHh`ifwTO&<+n%wlYm_-Y$oVuxmIy6T#D)Qa2;E*F37DU+wQnV
z2(Xs-<2e1N1O<WD?6-~x$;mKb6gt~Mh~Q5>f`mm|^hQO~sQmSfHS?nxJ at nUwZ0^dy
zUcbOt0?Fl+<E44A>NmyM)6-msl(PMH!ex$ChEXG#^>;`>fh%)<YC2q6b?<I^4I;;+
zOIeWx%FD~xSQ>{v^@9+9>*<8)uh%|bQ*b^<2rkwhwK)(xB5<=>-Fkl`J%f6ef)43^
z5jn08N!5oWw^IuigRj{?f~`xx`dD$EKxQ!$c-EH<MReHkHv5t!HWn$>NR+}7z~hf}
z=ZnB#LufcCTV@!!$}b-AwUyi>UcqJtopuh0-Iw!QW(cW7_(hkv`4k=`$D($m9&Df4
zx^<JwpHRTfeC#SKp+0w=&}(ue;OR2#tf+&>Tdz14D?w_ZhvE$R(?F;<R(P~I4!9^J
zT-!X%^GYX&MwxG4h2F_9wawt?jfBJPM&>Use|&EL3K*veHt4t-s+16Hq=?sz6V&h-
zLT8l$5Sn9&iFIr}F1L4vnmLK%x|<>uQ{IH)*Y1Gi3x2}8WeL0J1MoAT*gfW;*(Ks>
z1^2tu;hbkNZs2(@_j4E?v)LHJB1k8_p at W$HKn{kmJHxuz4g&n#6k)Y{$pf{X`eXQF
z3?b-r7v{uGT7KNBNg0?PrmLRx{7bcBKknk#ZsEvS(Q1L5=|L`Gssh9Pc4njdC2|^d
z`a$~6-ST3ggbQK5Er2bxf1oU at -l*T^Z1C=ZB>cSZ%2t2#({#jdxRQB`;QT=TqDF*|
zk&S+biQuR9+xIrOp4TNEH>`c1Ze!$AE-_qc$_Zpft=2D22$2Zs3nWD%EW*}AOj!3@
zFeHC1et7w;D;mEvIQ4GZ?mDI0my4{oXt)u`g2h*V8nZ_huH_IfBvbe>ySS_Ue5Eej
zj)`}B7)0pKXQHRzz=9XjPeRY95IFX5pMf0Ve&Kkv!vpm)JEl*c2NV6`;8XhgI=Y<`
zxB3sRdv$HA00o9n>qF)U4tihHsuqPUgcg-GNZJdRhS|lyHOW<d{`x?9*Q=U-dyair
zG-HV*2&W2g)Nt~v^4{yvCAR4kSjaB;dS|U0;ik8!Inw(OEsuy5gyh6GhkyJ<C*9 at M
zT1t|tw^H3*;c?$zn$uVKSu(^3$irQlbpDSs;Ml~eu7fprCGQW!R0}JZduvIy9H>U!
zG_0+fP0)JS1#BHMP=JPqBBJ_L8YZVzANoBra8Jq=EHb)U_qt3eeiHJV=zPb!&Ckpy
zmb}H-$KhA{JZ<<k_bbxrdnJn`Tf>sY<)qL<@H$F5*Q-Ch$#V}gMel>Q(?}^Dfi>q_
zMKYuAdrW|hD9!I3M%r!!gG^VnDU5GNqxrFhNgHu($2CKmvYyb)qBMh2X?j=%eb?0&
z(pHEwFwef;^ILj)o>Q9>paJN|E3SmKL_UIR?+W#Z9&8r%YLg0j<ujJ@<WWa63?<s$
zFQd2WxRDgpo*Ew=S3aAa at xIEVt-k@0Dp{bA2%lwt#;Wx7ML<<L{(?$f?AtNmsegtV
zrmLc2C5esu;Wd)t`=4)qd_T;P1RoCCRHyAckFD at 6SJOzc{3Tf!SxMnx+xJpFZBnKq
zL=Ay|Hx!w8 at GR5>O at m%wa64B1u-LLV292U$CCv{kg+3i(v(Sj`VA$m()Ht*(GbH^-
zLdOl|gTD8kjFnUs1=|HztLXRP&?l3jKPM5ZWedXG9~?ZH*h2<-Tn4l7 at h^uFQFfSc
zfnXQ#u5J}staDnaNN>UVPYryWBk+&1Y33t$H_9Z)oKt=pbo_6B4F)wWUfUkI$+JB1
z_VIumRzzp=&EG9u302~ZB0nY}-}<rM>I|AN5Cfeli at cdi=(}FZOy_vZ0zB_Nm+ at xJ
zU@}^z0LDPwC2EK-Ba{CJks#K at z+3czfJRPU;CMR|XaB+d*C<T9lLa<8`xlviHan;o
zlN8`9WHIuA{}6+zd!0>ZC`KTcwmT?RbAeoxzS~Oz)#X%HJP(s=vw*9A!jUEFvP^iA
zm7wbC1ephkVfB!qG2i7)l-2qW>CD}Gl}#$LEy0UhM&d!7It^JW7i*LCzY-{prlg%?
zqDC}v0byC3OAPf7I~w^fio_GpD*>t!ZVv*CL}*3zr`bbhar}bzy`f!>+Qi at D+TxtH
zjhk;}U(z-WYaV61aZ*txQ(orUf=U<-Gl&h0+1->vFb?yH_w)94d5U at Bv{(cvvyTBR
zC*z7 at v;oy0B<~y}mr^wju4@@A*(od19V_lWt-+LsXxzid-_tzk+uNZE!Vbi}So2vV
z#5 at g;BO~9(O%S>o5Ugbw5sxOcpLj-Syj_`S$24J%!4p&2VTow$o=6(@VZKGqmzXh3
zvmSC at QTa9M#;7^qKR|wm8f_S`-zBSP5IC7`{j3CzsdmE|Ae6O6`>8~pV12!$MCdh>
z$bkiJ&j{L<`f;$#h7b-~oUoNd<+MWCktCJCHaW<+pcK%p(y=)?vsj)sPQpxP#%Cbn
zRNarQYqzDE(xf@=f9lz05{yzk7E>W4b^38Za=!n7GT`+<#V#xPU07J)nz)L<cI**x
zewNwggoQVb%gZmRj$o~p?*{$;Jp~`(@atj_b<>X6^hFMUg=)*bwhTa2XQ}+U*_CrX
z#vy+%Y*I&QF2qt<tL$1^sL>Zyo|>`!@WTc)?cnw^XK^I14Lzj(tpB1M#at%S=Gh7l
z&aUOx?%yH&mL;(s=Oe=ZU;*Z9k|+Ww^n>``Wn^VV$4ZE27YzIm<ibkxEdrNyo|n39
z%uAWG8&GS_%Y1Ju{KI0#1 at kukx*v{Aohi7iN)lO|9GzN^^n+u0>#(dL7Xb0V at 7ix|
z9J at 0)Qg*x9tB)A2g>dzP_>SLMFCbzE)%Cv{QUzN`JmB^>qy^h20`=ZE-))|x=yBkl
z<;(!<_zmeOO!5gETORyjQBJ+_87LU5ZZxv_*k3XTkt~e^dUbz at K@P(jORPnDJ=+TN
zDpyYn9Sh9XeRJsV+nFl<swGJYG#A;#(wI~v5>GA_6V+jBa1|PjfW~ujo(ONspLZ18
zKE```AvNpFsm%JH>ZILY&sfe7eh0~ZAp=U!vaZ&0I~fgV)ZL5R*&UEN*-E!!ry3rd
z8YDl<y2 at +g?dZ-2x3&_x9T%Z+^XIn2)meZ(;KNV7u1hUilhKCDOu=}})*}UXcZHd5
z-p)v^tP!$yLwdY(cbIt>y~?=g55Htq$$f}ngLt}1ZqS4*y)W^srj3n}H+0T+gtUTm
z3t_TQyLHgAs+U4j0f{rdb!}dKc^OIs-H9aU-;y6X*kpMt4 at ERy5SJVPX4tn*o^~{!
zj2m_;^plD^^CdWnDw(MKx<_>+Q54~g4=Tm7cf=_JQSM=)Ek$ld+yFxZ4Nz3X=8X}Q
zY=ZZ7-MxZDq+sN^;kx3&0H!bE96|)SWu|S*EybC40_bA4&^-rx(YeVo?MapC)UWI!
z_lTm<URgQQSkz0 at 6h`13KS{;EJl46s)@Nec=HVqq#=qE7rHM%u9i|@3MgTy!Eg8zb
z59z+M8)WWbSuLHfw83P9m|D+`3W%>Jd;xjY+9!erJ6gc>11)7FthOEA>#N82_ at 9oB
z&d~K#^|r>_4_0$dR=gFFRDT8;=I+=Jf65o6UK#H*667Cd-n_9Wwn^HANBFz7pxw7G
zp_nf`+F!fFdDyqDBDOT=pMTy=Q-Dofmy)b~KD*4uM7OplkBvsG?SlMxNLuvY&KJ_c
zBTf#c+R!*tyyLuYxelf#V`j at n{^>7kXdK0fNW?-l%1hFD7raVKMuuLS)mrqTIay$X
z|8ZBU0q;-*YD#$#Z(*+}Yyy93yKQubl$OniQ!7$I6}EWzakNK+G4V)ST+b>5n?(l`
z*eS7ki+F_ThAQdFV=#V(hK80tU-ymc+O)GSobZ<fvr77ir+&mMjV75c<JsCS&6f8c
zuA+WoC|?yq9PJ`tYWUPwo)IP@!YI<@u=_Lb<b6A$`X)Rz-Qw$9?#NWmR6P6S$lnG-
zGn-s*O43y#Ri(T}+)@k<`2zAt>b)-i^Dhp^FPi0b*uRJ at m}Rd{#*>bvYiOWc94BjS
z_aYeC33!l{(l=X0s|~9V(VuqZrM_}R+{_npH?-{5V0lFVfHzk~sYzNT2$~UP%nt)F
zuGoBC?M-1(BLAwOI$6wHSU^BgYU1WhfSkJ$gd1K~#p93^s$#}$NYSlg5|6Z0wqD_1
z)NQ(X at 5!j-5I*8EW-<8ATqWW7lHD$*Cp~|h>P5m=mx?cq2bnxVVi1RU%u2q&0V$`)
z)$|J+7kcc|7VN#Lne<Zx9fYF|z36j_zMaO`uLQAtpfufMe$DUI118({LE at kJ1B54x
z*=*h;>XcCXP^U<N<HyEi1KGGge&A=60yPC#G%PIPjHN}{n_3}yMx{8kRV4MdJOl#r
z7(-61Lx_r^cUm9L7f`8Rl at Vxy>J|(U5V+e?Vk2Yh5N*3}cb?#X*m|ipb;kn5T!+Ue
zJC2z}1H&I^?jCN`lII--3vVqCzCeSs=q8+S64npUS~uC<j3{aA8Ht>Gi`wo?OEYCM
z3&Yc$dHf;d-Fdk)Ax(EOO?<}$1A`bZx at xQ*St+TZ8v`1%HaZq}+{V0obaZLTsnw_I
zD@{(pB`zD-iIHXcElf?VnI$RSqRA3jTLe1EE$?B at 83QYvD5DZVmpE}gc45a=<=ui7
zu({E=#16ABV&_lM_kwv$v{FJPCb-%WlTS^p)N~Toaf-W{DUc(uDhx-_mNF%so;I5v
z*hw3H`m=fTRAtw``FX(ad^pJ-o-+K#Snbp}Vt^qp>xFABrlj-_JGP9I1O at Z;$~E~(
zy*|MFZgBN#Q3rL$`qEu{ijV_;=fw89$iN_H=C!etb~GnpRRGo_TY?s{8dz_%4Sjc(
zx|G^QjKCc$9G$fnY-0B(7-J(YpOqe?CPI~WWc`PUMusbW_1m}p<>YMLQ5)yf75y%s
z)516;iN>}&(-&PR7(0x=>T%v<yuI{i!Fe4e3)PFcmCjr(+_DhUnTre~u0H-Q?jIg6
z;<nAZN?u!k{_S(<MiZ%!``nYEOmY!}&3KlI)g!$PP{@N02pX-9ar24vafM^hV`R3s
zdWPk$HZ>7QlP6lZIfwt&Bo`5GdWuPuQuk29pfQ6EkB*8ax}6#E;aGjF*qpMddd{)G
zBI^rWHU-J_Ie((nq#Y;~R at MwR2*gSKqkJX`-d8K#;QBPD>~r~<HTa_Mos?A3ANzM-
z1k74>p2Ctb()8ARXnlbTuNsZ}-=TeB=pR;1O>Gk1!J>?PX7`_glNEM3MaTwxYb&4)
zabgY2fnjnaI~(QPDblnYP$o{iTT~(M%c$^Ry_#?j1#GrTnX`ybO|#0VoG|`?Ssn-4
zV`P2JF at ZXH!b3aCYa&8uz?{EfL*@Z3&mKdxdEO45lJ at L2N52_I8_HJdMn0;xpbY>j
z)6oj8?j)PX5QQ8WF6^Qz?A;<s_y{q2yY%|BWaWxr=e-KSmdn~c8Nryi+E;s#ZD!~v
zj6c;;8J=Ij1=C6OxCDb*kj_edax(4G>4Iflh5Uz?bbX6Y%aj8TJDD(z&1@=vja_d*
zmJ8s!o~u>&uDZ|72WfP!hIV70EVNj_7Ahu;ADd9SX7-O}6-z1h<=<{e#d#D}u2EV3
z4X44ALo;!<KVRH#Pww;4_7398#$-@^jyg`m`Q0zartb&YGB+_zn+PE1&ICu?y-8T{
zN!&^bJp)?9Tabt_t!g2kp$_}JKIs&zk#IittQQt;2&Hr!bv2!OMbA>5<?P24W}lTe
zw1Ek)@D8-mc?njp&8&!L-iwW7#md;BvgP&+7Uxb3O(80>1~PGkmD0tK!H|9d2zF{;
z$9DcK=b_$Uzf|2(Y8VWd<3aZ!jyYoVkw2}SUl~T={5CG(+WSrIqXH3SG<EHDrCBn?
znyiqzcvxuk0J+7d7?E#wm`epd0Z#j485JL<y3QZ<r+nz)fxi^KClih(MfGY>5cVKA
zo*hqL=SJu`yT5(AuBl2>x%BL`tfZO$0WwswO8IMnxQgF{9rs7og-(OoQ3uh3u&eat
zz1+phW$ljZJdj{le)FAQ#BqN=$TjjymNun_!;04K86)t=Sj%&~qS@`i#vr+;O;7#M
zIyEpQ799&Kcm at 6yLh=HMFBAV}5~kPnBGa1-@)^1<0>d6}*Jnwt^~im;EO at 2V6DH}k
zKgGqz&0hMwFqez9FRVEA=0_{z at Cgp4<|9crcDY|rQ|ij+mx`Ya%(|(0ierY&*`QyX
z`~Fb(f1~&($0ZGYXHlXq>3Y1dsU*3p{i9td!uBoHx_CuuQ0nM`RZ}~*KMlJli6htV
zbr1uIKbU6N!clYj!ZtPjq!KlL{f_FMixOt$u6>CI?P3fmQGI$^?ofR;iP&9XQ at ii5
zTk4>;&TSp!9eKG3!x^_ILhXomLrD@=@kxkfX^umCYv7M!F1mCw=6t;wzrBoCMg=`d
zOkUQn`HDXYMw*_QN+v2r5ITP=tE5Tg at drvdg*A3-gPXw~JWXTc2E*PkNlD3{4hz-X
zk>jh+lpH-{N|Go^Ucv(kg2DXO1n_vXDoWYsTHyA{azhJ_QczZ0Y}l8;m*wLEk=EAP
z>YW6+1m<u*F~Gvbv$-G2FPT<RjqG>ToeqhZBv;KObx!6UgH at l@VE07KGz?_2&n}Ok
z2eF*ELz}8yO&_x*$@_#X*~M_-@|O{)U*Ec$Xbp3qV;wj+U5xwTHti7dF at 2O{%P<@u
z6?v|;ggd1qgjY@%$@u<tU8V4Zfg#?f^?0?GI$h$ns3Pl(;GqbhQ-7W{ZiQM1K1-Mk
zpeXNz?ZZ0R*%G+%!HM6R4#rOykfgm#yAlV$D>`a@!`G>4RK(&cc4>D|IZdz*ShVQa
zx}3hK{bMpg4{?~UM{O7abQ>jhEV^cm!H*F at QCmmg(&)^`#KSpg6SoJ6!ZOkn8>CtF
zc~v^@+o#{4^2Hg;??@7nO#v`M5~})S<;XK8fsBfUr>?pzGk(RlyROyZMU?gO3imJ>
znc$3)yQj;ChDYf(VcJ)RInFfr0zC{*?YJtgI7>+%(7Y+4q=VBkYP0z73yY at bU{b^x
zNm1ad8H47jgs(b91=bls3x-ZwhT#{x{UE?-xcvD1Ty at x=shXXJp>->4B{DBaysdXU
zceDKAUGvx>v#y!U$BOBxdU+8m7G8#`-n+}~Vep<<(Y~cNbp7bL{At~7zvRXk`i$rG
z4Cb9vdMKKq%XjEYGNFI-e{Br#=B3F?FIiq7#-nD9slmoyzhCOw_Ob&hrtwsAN*9m)
z&RZL5Yty=gtVgq9EuUQo?)y70>)u!X+wQ)-8`-WKcu^e|Ia#Wk#RO`;jqNnbG0sb}
zYK>#lF^Mc&xQwr>sJ7vZ-wy`4P!NUDJF2~}+-w-6nBXQS{gVYKm(LfVThvO?c=x}S
zj`wchgI0BwG>)7i|1PO#lNg<#pk9XY`$3WGUA$fyo}Q#>jB9W$qCQQ&*`I)1`|X9^
z%0KRCkSsXjp&0{!jsorVf0*A?<oA-SY9Z%4hbq at qC3-;9+Z1QpzZ(_K5nmmnw_8HV
z^fe6$k6a0Sf9R$avlYn;bmS`A1xUIza+m<vWz~uUegAFWS>C-|CiC4|FwrR6_?KSc
z2~<H`@kLKTOBS`@+Z_Tv`KXw<2XpCcL{}_(3mVLMTCelW-kZf{C6Bu0fX%B0Mjxrk
zJ0ODg{jh-1hCcY;<^EH{- at x#{NX){7VN at i%pUpf!`e^2%@uC6GB7Uq-$|dyUu9j}C
zj^5i*oYf0V7s?{7?YBKijoh^%d$5N{=rkR$WfUZ~|3`s;-NU{|lM2k_JUa-MmNO-W
zBk$aHV+o}ze+0au$QO6#7HIgeOWcQ<X-PzND?FJXQyj<~yeT*h^taUYyXE`SpX~x=
z-f1E$ugf<hw4?L>_lWvk;lJkbU%VnV9p879I!4nEm{G6~NRoh7{#5_2_KQ&dX$=Vv
zCdD%~FW>1cwC<k~h4u5cOY}May!wmwe at rt@)Zg26Ah_Zqv>~Y0u5=2|p|e;tC|hgA
z{HqF2lu&&^_F%6`mB}uZN>lN&CJjkcp(Dl%GSE_OOu9mi>J!5M+WrfuPtTLViZiV_
zRaIerc;>My5N({sp6OK`H8LGlM<9%E+Wq<XSA^7IP^<`Fp7-;U2DB?2|4Ja{(=3ug
zE!gQ3>R2cuGUiJKn&U`s%*X+BX#ei-KWoWv>Sb=SV}f!YGx8KS+KUeM at L6u$^NY+V
znvWM3G!mk)c>C>|N!?DDGpN-)AOXE8|2Y#pzkNAOfKfOqu~u&bl?a@{lnkt=G|1xH
zYrU|>+l1+=kN+D||9G$dfzQ?D&<F_V>XOkma2;mJE@#Q?y(}*QP+0fYtnlCeG$91c
zU=b4Ev!-~xmFgU+E(8RG7!ar^L8S_+d*kp`#eyqISnKykT0pxOilL_B|Fa1YBjmb;
z<<fMdrxQbm2L^uT<vEDNQ|B8FkIETZny4N~w^ZRwP3Z}L0{-uK|Ko{%#~FR0EPbJ&
zkvb`#&&%E1+<b?Dp^Cg6{%6%AK*ePf<YGjVU(gmn|MY)r4EZiA8<CnC9Tuk4z!LhK
z_9aPeqq08rwcf=tP-QE@#ql+De$zsW4NVeQ$A6 at mOW$suw^a5;d(iMOcXy$Z0(%~v
zEaL5lg0|xSTQZ~Z8_~{ktvcFL)w06E9g_fdIyxC$5?bYJErQwlyTR+HCT3xe*E%Gr
z;StyRDrE$L6c#S70%K#}?O?w`WEJYi-Z<wOHvMN~rD+gyW5VJ}630VA-l>#pd at vbK
za$YrHGWe+A<M6ZH1*8<KW2O5F)q*<J>A=?oTK0<cb{1LH>Nh6IQjQ`1PdEtPJT&a^
zzdM`8JDu!zA-`!*i!y)D*WXDcM?@SMWf_x{++aUX*)YBeoS{Z2TDPB=0-_6BfWQCW
zF at MHHU?s^)NkLh(07ve}{?sy<H7HnYe>E4AWO~Q2_MZ)>e<K~_TU1R$lo}TwKMVg!
z at H%nwCyJ2zC{kVw;cs{tQT`Ca!2G=qgIu`nf2?!At52^5beV<@Ci5h!Uhd7(^UJK@
z<XAj$NuW^{|MM+T?jHf<pX2+e_;|jwN&dL;>s=2ShXZ4Jkt{T;%ns&eZ^$(K8U&N0
zo!0a!w+2}b9L^-2{uo);38~Xo^cMX)B>n~l`N~cXQy*jscvgDfyEu!)TUo^!W!J_c
zUNu-R2W|I9=e>~Piht((#-yFS`Jcd>Tx-BDt?NJ7N4<mhRcA8%pXZr05<)c<I|m0Y
zGA6MvbuQ}{TA`GRdF2}ioP>v+=7|^G>TIcas{J0x!<XWc!g!5Y49NBW!|bHr4J5S5
z&W3*^Bp^U(%8{bWgS&le8&eUN-i?^@N5;yPC)q~7Q673g$JRzYBzU_Zz4o6`D7 at kH
z`Lm at 2lp_c3@v|*Q3P)K{WA~f#{YM2HbxkAMjwu`Zz}h#IUtRk?nGJ!M06GaT`gEBQ
zM)j;Aba+0S1735Kb=wOp$Xi>v&zfUnP7iHtAL^6eu$RKIrti#nv{n8m{GQ+Yt*q!c
zE3{GPy>xP at X#e${N3Dvul!*r*Q_KKYtiCo4ZIAdRWZ(B*?f+d1?f7gD?mv7I6eZ|*
zih?>u-`{<Ln)fg9kZn}O-Wu)<qixtnt16221}w5XE?wT8<s$lQ;WGJ?<tpu|N*miz
zZFO9*B-cW+5|-B8+MUrq5;purmU&22rtx1f?Emi(_)eaUEB7bBBPuFPTL?0#Oh7q1
z4KE-OmLX?2q1 at SG!m?n)j&<Q5-`$1`=rj=_KM!3)8LxS~yG3hH1zy)NLi}t_us3WQ
z)AOEm at G*=pM|5GK+7GB~V;%dOH(8$BIhoFnqBMFzzeN`p7EDp+9y3*$4*(Z5l&o*K
zx<t-gyRt!e at V3hwN%JWzqdmC1hS6|8(IX))!7OU+e;-z;1>Ox57wr!elak{K{mDO4
zRQ!|hORVl%ax)7X$Q$yUykBn1cvGPrwo5nvx#koDe`Qu<!P6Kj+sfxEz(Jp_2hz5;
zoTqyC*kIzs8)JkhocE}Efg5Csc6L6VBS7T7Y49!z1rhoDvHxP*a)%Y&zv2wZ(?byR
zY}B8Dj?5U5=Y}|6xd8(UYZnjiy;b#B1I(aB3yFSwgO7StUtY0Py<QN!_s)LyHa~W)
zZ+}NH0LUEpAj{MGtAIu!z}~c+jAg7^{V+D?N!8!)Ua&K%!6T;$(2C|4ghUnWYllsR
z))>Q`)bQUC_Ps>pdxE^8G*nAbAy5V9rKi&Aj-v at Wo;>qk9WT=UcmF#*9L-+%g#R?)
z=mrnfuCkp(x8m)Fcu)J>p$K7W?~{&7uSHU-ws(JE1Ekmhej2^~#Fgxaqzmk0!SZpa
zujt<51Q<xo^DNXS64nOuu-ux_7e7*dQcL+gt6=tpdW52qxyTz)Tu0|M$*Bic;&x%q
z({7vnsK1bKpBh~s@|T?noZ2RKQj(UQ+)*Q=4-22)$!X(vG?qtC>|MU2u$rM8D8?@~
z|62Cw$yRwDE{T4&LMnl^gY9}7`5|yfU+8zDu9?B^^PWEW?p;YA{V}J>$l^J&PdO{%
z{Vk%zX=)%Dk5cnPjenrj?q!2*MpV*k*Nt1_Zp-=f{`V7??hoE!GUj82=*W0N(MjHd
zzBC9i?VoPnUU&ZXw;}JctP=)$g=e|CseHmi?d6fj!RthA_ at A{D_%7rlZJ#m?R7F-`
zH8*?cswq2L??0Xcc9H|SHMEy+{iXSlg{Yemh8&Y;GBY5U{D>9FYIQO9qvFRx<|D3I
z$yeWwN9l6XkH6(OG;bB26tlM>H=jZLn at 4YrMjs(LW_=<Mj_%#?m$SDBZM2=;Rf?+}
zw%U3PSzSBCzhb#XDJoaaR9w*IWS~2>gK*;p<^EzVFE1u_4OwOn=!dk;mu)cmJpt_w
zm&=JL0MBP3WaSv~u5?$~oW-gzNAlbAZ%f{lVEgd at kF2wdiX-f{bP_^v2=0(TaCfJJ
zyL)hVckST8A-KD{TY%v1!QI^&ZD_iOd*^;LYu5a&UsY?pb!yi+`|JlxWBD#6uHZt<
zkg~(?T}5Jxj4Mr00E|rIbl}TULfpW{#F=O5*t|-6xgjAh9?DCY{4#dNPK6jxp2L>B
zU9Pt_64q)P6~FyepsZh{Z#ywRQ#YZ#L%Cj4JSv*wKMd?G{+}LN-O*^arG*Ap_%{nx
zvt<WdpdWVZ at Dw<j=$4{k74|-PeXWl>Yt=(i|7yrL{|?|~&$d*Af9_py@<wrLTCFa^
zGg=+*kKH##xEYVexaRQ5YiLd#MIk-w{qGXAt at r&qLuw9XvCsa$c_p(O^&fAJN&KIp
zHaLOvLfj`B)SdWK-%S=AtaNTrm5_$1@*K2`9{-q507yH at M#aIUL>1;A_<YeR at imlt
zur<cEt^SeCz0>wWB>XYG{YE=+`zBi9TaSKZyz**@@2)FB$=ZQ+Dom^>F)I)&NR>S@
ze2CV*+|Go7necsl(fCQ}h22USfX(g8N<S1v$-kP`sj$_Ees)9q>{%mWusd^WpxCRV
z9}Bl%T*gYNMeG8~Ld-8vqx|}L^2aB(TBGEnDSeUUWbLp>OTta|ok>$0FUB!_{Y+bJ
zO66+uP(RPw`rb$vgiIHNA;~$?u$k-M8Y?XresQ(@fM~pG$6?o~*xjLyQe%gXc$d%C
zpb`I9sJmh=>TLD(x$ECNi~!Tq(X at bhb;0MM7}_JWjZvW$&+X)|OL_fy5yyAX7$YRz
zq5rAt+azx?Pf2M|U3_M&>;d0go%o_OSFZ4aZC#aUMIce|!03J-pOxo`UQnn2P9vYg
zUR2ps`-8{*N-Vber^LS}*B+Z<>X#L!*SlmWLf)G$<=@GKeuq<r-(n6~L&h}VRJuh+
zmy*)tB=re7_)_Tv8Hx0e0{_VqE^wG7-sfqgc_vq=SN{GGPk<9Kkqs`>qr*t1N1(_>
zqLCP&*i~k><MN&tuc|-%i;Y4^hYp(jH>hA7`;BDXG~@!{7Zl4|`%6(^+I-Jv!wOv`
zH%IdC?bbwyVk+vz6$DwDAdYW?e~)fGIGYr)Aa!R}LGP3P;&|<^@asbYffp9RW_PSH
zPO{KuIK09I>zVneky+%1|9Sm+;odadN%_yy1m%lb`z{8<9J$ULzpGRa1EmOnn3hu|
znJ<1%c)AqxFm~{C7`sg!*=7e at a=3WaWe0pd%r*j<S|Fdxtl{;u2aMVFePccF&|$m5
zOFVPOTd~4yii9gPH+9e*!4Hp$sjXq=qHn9=a4tQhi{k<j75;(haHqCe{kl!0Tx9PH
zrvsk4i8*J-Cn?Jt3X4~V=zV6e&4-yzw2Fk(f<9?+?3nRz_dYdjEgXV4Ji at U-US*~i
z-U`j_WDCOm8x{v%IaJYrpCr3-G9LTSE4}2u*cE>60Z6{1d#dxnN14Q6yGm;IBg*gn
zSd`HA_BD;x0$KIB`T5zSj-_73aM9F58tPnT%JCdv*o4~M%^k)+V2-md8JNefC$D8^
zHQn?KM>SN8<<Pd0(b1U9Fq)?CG$nc5T)0zBxF-KccsVV8zV;r>ZuXltk>t~612au*
zrB6{tX`0H*@<fxYq7!S9e4JC<4h_dwfv<|}%q0u_Wa*Q}*+yXlz>9D<ZA@@-MdSJ8
z95Z9F`?czlgZL%ckujsz+B$aK+;pwlaQEuK;x6;h=zaDA{${krWajQ}Dpq~Xe5$%!
zVATx!$T>j}KZ(0t02>cYXwr66S?Dx#S=;3@=)%=%otf;hobknUB``B)a#<oY{k*vY
ztaAzJCTAFW?89Xi8kGtYIHZWVF}2(b**m#(EU23BBbnHb*LRN_>_!x6Hjb&Uopxai
zh at tr`=t0E~%SG_8=+0T(a+NH6%zQNJswUq}TUQz%`r5t0)b?~Ns)uQ*4z44}|D{5M
z=rxCT`H;}tNOJm;Uvb&~aev>ORW*8OA(-socf{58_qaoNcAbZti@$BjG;a}0s`=DD
zL6y>piM+q<nHOl|+YbJ(xOKwAM2z2A??VmuYL?ua#sh5STH%ARffo-=2TV-Ut9TdR
za|ZDMuW$GZH8nLr5v<4LEf6j=5DuZBh=)rdgHvV at Har1ZrtFMqWlf4w&P(FVo-ox}
zzV}4 at 5Co^v>F~KAdIj|R_e<O`-Gy0ZqT1>KvZ6IU?$E!**sEY3lbqqCK=@?Z>~!_c
z7?Q8aDtd<VW!CZhqGL<2CZV;Z0;Tk?te7<a at d7ML6Sty9k$3DiQTbA1{SfHp_`%YR
z-LeALrDRor>Y3yXM>${eQ|_12T#@ONsb}6})K<Z~u5H~@peBusqr`u{&`&&{|0~?<
zpMrw1UKGtzP$Uz;|FBH>Sw?APd{WUxE)im4ViFdA!~_{tFRU6EzkeESe8AW36SQ~s
zh3+3z=MG+6NjV-|HI%#J`JKqo#<1y`wN>}PxIYNWC8g3QEst<M=EF58a-wQfz~{N(
z@~!3%>`O?Y#!2S$0P%2#)OCeeiPa(%No9s_6PV-_Ueh+RIvhRT&=@)St0(fZB5tJ!
zH^=d+RnZ`;8sG7zzv8>MC(n*u$tt~!e{f6o at xvR)oszXUePXg>AoZc4y3qf~f4mQt
z_<<aEV}MRky|Q-uCl34smG at Rt8|Pp31bmp&k)7X{eZ~*TA|cZqAP#nELtS*3)^cb^
zJAH?7QmY~LX<DfVsb-Z>4bM~f6)ATLryu)zc`Dnh!;edy>27 at 6&BChK{Qtb1*H>TP
zT5P3+FaEym+|A!4CD~C(+n9v|Cnmm++$7S`L0)xO1JrTKs>ZB*z8>P-YDKXt2EzJ|
z`^Vmaup1p~jmIbYA}DG8K}5Y)WR;0;^dT=u^JWq&%+CcBxR at Sz$8cg}UwDL&ULf{=
z_))<4U%TpQOFtf5O~?;MprVH&gcpj2YCk5))9v*r3!}j0C*2qlWQIQLLUL7My4o-e
z+Rg6wcu+hj)iJ=oauN)+d%M~85C+Yv0axw~E`>#BFX6Lu!B-SlIX%xbI0S%x=$}ex
z at F|z5a(#h-J}Hgspv}2ld9dV?`pk;gOy{2 at vH6kUQ~^&OVIQcko6mm0za7x~X;x2U
z56Io2?a0+VKyOky$60Wr+q(0lYyQ6I#;x;sUaJ5GWFBVsiH30zdK%&!OmXaa*4Fjn
zhwoiKn3<(Uh)$lGM|+)=FZ<GBB%h^n)rL<Fb-N=tZ)-D~c&mzt&Lh)en<eRd|Bend
zaD9gmhmZO)45 at tH{+p||*tb%S%UnKn-%WO3z}hMo5cgc<O&dKl-}A*EJ*AtEGzuMo
zk~^R7vggWVB!xSedJRzkD`+_*=4~fVlg#+?*{=cYXb53nMfHg?(=r*|A)gH+mo*Ut
zGfpt!qeC7}KJeC@#>R5}DSd}rINJbuKsu?pjAgJ5OD=o0*XKmHza&zcLOxPsbAZzE
z19=Q`ZWw)dKIF9F9HuPi7(3WF0;hR%9HKUfX;1)f*YAs1J*}$&FAp>w at O;yHfk)|r
zunyktu~Na8XQV{$hIjus>DT?j!9(uzM_>0cyGD48XTXK6)v^OBn?C#2>vuWb68l%Y
zVG*?fLD&s{(uV+D*bykXz32`;bIx~GZ%Id$Wi<fklV|Zkr1 at bj`qwV3 at i>7bcKTlC
zXCoDL0*?vAaV0>sj95VL0939%7|yj%Y4MUNjn|CL!yM6^`tS~hP9Cin2ME{<w#H!W
zO>2EjH#~deD?E6oJsDoHw#u)hZTaF^R5!QZT1L|U`FP;@OG=AWp8gLcM8MMkWcKzP
z5j}DN9ExusNYSp!+V9~%te?CmzAnw`eS%qNPpU%%AL_K0%lEgoOSGK*4m$hTr{$b7
zf8XRr4b<`&O*=QTcZ^0Q<hnIVdr~ZwLRVQ|8`#p?_zU0p_h%aPM{Icy5XR8tQoNLp
zIL_)m>D&*$29{(xjjqB at E@5t$uqGIz(4B+g6wA_Eqj;>5d5LKdlx!QX^Y{t%@`qIN
zcA$A88?-aq2B*xR724M23fDXcQ;%9QJnEnJ6EloYCFY1<A-WmgYxHP5DTf8zYTX%^
z!7i#J4Gwl>awj=t`$fIcY-m5+dM^vk-?N7vT-Aw8)x|}o at VRinAfF9Hei+0M9Il-^
zxuj}1y?>Tof9>jjZLn;M+GH at j&3`BKdg93rl9T286U!MV=0n6G;W(DDmxNDF2 at fBX
zs&d0z#R$26Rrz-|4tKNgL3g(wF+H=@XaTCcF5F2&G=v4Tq<$cY2aSeL;x59)n56#-
zxhTEZ&0Pku0kTMN275Ll)~}5`{Z;RbkA;hCMOdPrXO31cM$irwWw!7}vlH6ie?`Os
z&dERxK({(`^uK^LtDJavWJP_U=vBlT8UJ>`tw>(3i~{ByLczkHHH7+#(CLWs)gbd8
zW?~jwg#}NT+x<QJS4}IlaGw6pBirf_q!&g2=7xOZ69{A2-j&?-=!y~;%Y@?nJC}bm
z8mW_j`y?&Sfq`CnHS8&Q$Fq$bN-A%NrP9zjSCE>rMFZOf(^L~gZPF5<07At^&w5n+
ztDar?H**I-g5^MqYF-wmT&-a+ttm76T(C;D1x|p>-r7ITgABL+!i!6Bw?!Mlhh44Z
zh0B|H7xZ$U(i8cni#_W<Br!ZWrMgm&&7^D4zKpM(pVgUBaSbnnR?*6m)2*qeVerIK
zBu)t*Vbi$#pn2!!@O^J9usG+j at cMPfu5}e;*O at c<ME%o{5nWCX%x2=ngih$$c(WyL
zran?dqXo!?Tzv&4oXkiW9+~d$okWw~r_4<#d#O!~tj(6qAd$*PyJrlMQdz-`GdWJi
zE5w11sDyS}p{lA-$g`}j(}aR9#<s7YVt8jtvFS5{XHg4Gq~Ot1Xo*d~B~51*V%ZQi
z1=g@~Fd<b+ at HEq|rQCbjKQSkBlfAyr^rDa~USl4N&txD>xRByy??lH;4Kdzp)mxUE
z_uh4X12?hS32^Ub&qg5TQ+UqKlO9{9<h~LJlQw)RBM;e-Gka=5^^rdhX~9x-b=s-*
zf>E{S{XD82`jr2${m|AWmE}`zJt0ngfmbRGn|Hl3h72D{gAZb^L7hv53B&G+=<lVY
z-v{D%p{scj)vG at x-~voWsw>fQQ{-Lw=aUNX$%irhgl*V`VMEewbJv$%M_*0H41?eS
z5#?iJG)fYVI0fSF=@S<{+r6Dj6hTsX?%vG+A1+pWytPNu^GVmA7GJg56zb at r5CTX-
zDkq$J+~fhS^V0+_7szEIAm6P6x+=ahpdmoe*Ei_568oavuj-B6IEdRsfXA1iYMbb|
z?f^1{gKwxDqQ(#g{?}m!w%?IG616io1ET#Je_O6^g9flUlv=gEO(UQHlsKor4 at XoJ
z-VcBCgKjrM3S`33t+aZO4YM3{DBBhrt0o>)*^tGk#EJNS3iJ`Wjb<b#vVC<YD!lj9
zqOftz;4f95KO)^MNSdWLydNmG6}V-e`<?#t-$7f>*zv8aCxy_-yAn<y-i73pi^9At
zy|n^)e|-}tgq0ais1`^b7772a{gRLbz)9R{_aidc#a10 at VhH2q_H+jHD=N<UwL(3n
zcV9tPh*ku7Q>6*A*?mc~Q?X)?zh~m|y3yzMar9T3wdmg1t#J9bKWpCayVE<6h+Eq{
zQE_oKO9HS3Ia{&k_lw~Q`FHcnmkNL^vE3c=WUA=PbvM$2l76mCl7Gh6swZwm#=mh6
zysEK?Rl^Yqu5rb|k##__BdLph#02Zx1Ugz8cRH_7;c=uq=*;itT03 at 6+EWWXY?vQN
z*h*?P?rJ8wNET`@Bb0cAqWOSveUwbCyZJjk*C2#eXY;EE`qktHLdx=J10HkM!*ilo
z<H at u`;Jv+G`;+xQsVBios?AMKWW!f3#8=`l-vz3zfv7#hU8zOuD4wIOFbg1QKW5J4
z8TSe=L<<>x=?|*m>+8F)2Zi3J6<__{&{+xYKhbHZL+;Tl_7m^?_<`TZI`YG!YIuk9
z;a%%)Qm+yQDQJ;k62+FYXU~Q>vZ3KRPdZPy1_F^7d`o9aH&{8HZ0lm0M>VKayII41
zKEvZHQPW$`h(NMw$w3E<ybRQ=>`$h9oUQ6!VA^B{v2LT}58uPtkmw($iQv9f=&CrR
zca(~CzRn`Rf6ZgRw^W>7v-{(ac*6HcW_ikmx%DM&PpH0(lOIQ5-i4PaUEd6vzNTqP
z2 at RiysUeZHi4O-jen^D{4e<En5tW)tfd9b4<lb-IZ$c_Ee})4FN=(IO=w*v`!m{!Z
zLvHz}Q9&mA8l140PYV6 at fzSgMB>$g`GGBaF1{U%5gUS27c4%Gf{;2<K=G)3CWNn2P
z--)zjFoMjV)!*XoA=i-P$5n+G8|sHCj6ayHjfwk#M?EGkXK^UQ7etk{sZd`*>~>&x
zmX at j+<4IN*F9pR%j*GwFKi-DXSbBYNDc}3FFF at OqM0GIjQHL7j)DJwXh|7e8 at G_Hb
z_rlamivGZT2*#<_PtIkm%*&N=U1+`;X at t*%a@}Y at -3gQQ@Sq32#A2P<JYh&_lfGwb
zD{}n&U?#g_iLVCCLNwb5Fum3zQN&=IVu=|Q|8(+EtlX@{j^1nGpsm{Ovtlr?5xUZ#
z^R<E_HiWH3+01 at xGGTD_c$NASx754Utwm&PpUZ*GJI%6;P6Uqb_YPTW=*dBRROIUD
z_MOR6!YAg!qQ at 6}a}UULfLsV}ip47iGO`2#cw(Q=$U_%V&B(?BLF;|Ekx_2P1f11M
z>wBjo3zFBKj{|Ae at Xq@61*QUZ35wVFbAB}vctA at pL@=sZI{(5**H|Km*sp;ZDZ9#z
z6^ya{J7Ue^LPW{(^Vlbu4Ed-NnKsDm9dqkwPv+)?VVcpmo#BGk>&DZ#g#bPOFkbbZ
zzn(H|uLvpvj{h}q!lUh-$!N2`b8X}E7ufVR7SwDah<d<P(r3UORPC|bhp%8r-LLIC
zPR(V}Pe8^UCza~jM=s?t`|RUf4hT!t2}FbSoos-K&1832Z}G{QXF0v?N*39PAac^b
z$0idEs4YX`s4CNYeh<b$G6Cd)vE)^K2M1+kX>?R9)5CB*0TE|sXQa21L7_V|-ZE+X
zKi&aG)ox8XTra$T{V75^-Fq`i6w5zGHhuCp`dDjmu^HWSSZDu?;wapNA$3(AI%bE~
zn^14HSk0Gln_ArWz+P2?oCuL<R^@n+#X1q003|}wrHmmQ+6NBTEJ~lSM6oBh;`@No
zP4(H-%5zDyoIkurQ)eMrqWh130X)vQk{e)zumD%$)qk<Qy<m>(flkHb?p*~?^2CEH
zA$&FBWY1H%U;1!>K(cMH*z~j9!qjzg8z(!KLiW13y1o%fKeM!<71;awDk}FI^NCDK
z1`te(yn`R)_bD_(D|d{b%@P`^XcBLJgHL%!q4n$Z9 at U4cF}(+K8UPd7QK6*_RSNoW
zUyBG8x|xUQ-dPBlczf;EuHSKtseHY-B%TB%sy1FXUUS$E!|MQx at c9j6e3@_kl4p{}
zXa1m^Zi&p^{IbltW1P0`1)_)fI1{}xVkb;3c+ts5p5oFvN)vhWr7Pz0qTc3DPajZ7
zGj}8v$Aj7ZPm=0u-hCV#@B2<Kzph9YpBZF&>+*S|7 at _;F#xEoiLq+2(@si80M^jRp
zqYknb at t3PQX^sjq>;!Rp&H|hu|1B{*e6MgRuHS4hlV|ypy~eG}j4=(ET`6U}P&$A8
ze75&S8 at k$#S=t&Z+S(GquQ|iri%}8r(GsSHiSC8wg76I&0BrJhA`C>?xxb`9Ht5!L
zi5SD1{!iAI0Y&C6dR#mRFWe(uP9MebC&0ce0ZFV=<NVp1#-hw=sg>|{umf7D6xW at 2
z7fhJR{xrw9k{eH{PC!=Mqb~G!&Iqxp3Z4<k-{0;hBjfyUG~|63#}r~93s?x$x at LA^
z<<42gLfK at k%@uC0H&yo70hL&k-lktA)o$m)T_NOyd`@tqvZToGYuRgM!a7toR#_+t
zJ?~YrRU at 2^U2x at jcTri`a6GNDFw-T(>Uv7fOJ6wnpk8Iztwq<VDjO8D>N-%y59F8d
z(aM2dyM8w0HUF0$$s*PD)vMBloA5qQi^|joMgQHn#<7cC(YA3{yM?we%YKX_YLy;@
zr*t!&yY?S;;q6jau#xd`UB|11(T^TpgK=M>MN6Ux+~FRcuCc?S{nlf6j+ma%+%Hb-
z7sC~Rpk=TwP`u-I_E`AIFKIG~?ms?@gzPRNQ`HXR{h29V$cFCIPkt@=Rgoepw_a>6
zbHr0Oq7$tBVuqMLX|2u$6eY+L$NDpx)eJ#BT5DER`(w_P^EpO8zF5GA*516`Xj_#^
zXSjd<kar#%tmNSn+cP;OVqK~zqkv0###{(5b7u*+WchKc(WT*%tB)24Ri*QvWo-8c
z4k<Y!4*7f#ZAI<dj6>5S;tAusb|{hb_H5Y?2Yb2G!SUJ~Inf_B^maSuDq)fFeg7uN
zr6p}#kk5_llfK4d{le7wiJZD9wU<`7{Cmieg)m}2elz8<)%gD9OoO)-C4c@*;Y%fE
zLpjLq0qG1Pi7iefld$xevxDn>C7EFyPq$9oi0%*5fp>hKnyI-*`hP^fJqgsE_W+Cs
z6*)RfQ_G`5*8T+G*2u;an5^IZV(Z2XreEkKg((ar4Fh}mal<>vd$HQ}pW4?mgvk@`
zGxstM=UE$8Y$Gcc7d{cu<13Ksqx6$i2Bp6Eg-n-41E9moP3l{p<XJ25!T<*Fd(QzO
zqgX8#v_I6XBJhW=1`A(>`{a{tBm|p^n99f#Q<d+$UZ_b3o^YX81-PF|wOWU1QWv&Y
z?Z%XfuVzGa0={Rf9<iMNZn=JT?Emu>`?@`y<Pw4tMesVb((k19fwW{+`{z*y(O|Yj
z$K$#iobaH at P}dFd99Ig5b^nZyGV#R8Bk89uw1Kz|vMbbb`y_JQrT%bK;TRD^<C%?s
zzJESOWalhu;6V at zs?U5>oaGDMkASGnzUc};&c(D1;1ViU$7`tYGa4PoVmYwkOk*gQ
zDWDtRojIliX<nO8 at mBL*Y at r<hF}6IN<UTlNWn?^meVzU}Dxv9vrv(oEnlVfT=4iB-
z?E4!CmyndS&$2vT>jws<y-`qo416gKB|12aTV+ds=D&tW18&_*$)YJ(tp#^a at pEGx
zmGO!^Ew0;0={55c*v-$UDz$xlsa4x7SlL?`QSywS>E(1Iag0$`DPj1qsSU4!A9DW;
zT at c|i#0kej$)8PbS;`>~3SPSz9#2Lb*JE)ntaTDPgK>Q<nZ_F^VMwwP2f35(5$L|}
z#+)oO<rAVpBEx`GjN!(Z7HKpkSZaXW8W2Mj#QZHC%a)X?$DaK4XL}nWj99N+9Bf%)
zLGg2b0+ZcD(We%~k*kyeWKL7qd!8RzrsY;AWU&~7)Pl9VT{bMmlW2QCy;)Dm0>{Gw
z`cxi_wfTW0MC0ZtFixO^x5csNgwIdE09oPi#A*D|(%v4M9ztM&(gs63<R6AMJ7i9E
zw8!#w!CYVcHI=vfpmc1autxh%a%1s+q0HN|1gdjzbP23}wly(+sP4XZ9G<#IL_6RI
z*Rdwi^_yN<jVnP!MMeKvbBi<_g`jB%w3FaCxrAv1u(7d;Ef2I_)6DxeAj*_P+$rTW
z_bl&TSx2qi(nOzHI={Tk>ViA%PP4G4YcU6}K5&Wr`lZ=VR;m%eQnV1fa^Glj>=LgP
z=w^$>$ZUUy@*O}ts4eKPY(^+1!ph(jaZ+BFbO4go7xKG}D=46EuhdGtc3k_V(!A=r
zFFygRi#!7e#jyCxfS0UsWXU&iSQy`Wv($y3hNuHjeW8|NNU42=mhW)_fn}UVsSOrR
zdAAq`={5Prb`wR9zqgWMCrkhs=xBS`0AOq{&pRfulHkXRBLpZPDU<ZZ(E^HF<1i~R
zzyuRh&eKYaUSsIbz|IBiQm<!Q1G8sa>;UxWKE93nt-;yRMIaWkq{(UGuqjWpC*9K6
zyav$3>G6rqYBAUrTlUvmy}dEvRl6`e7zA`cPc0i{_htj8ZC*8Wbiuk$*zYT$#8)Nr
z^Dvo8VZ%xIs`#9Aij9_-elOK4L4(+5iJb;2+c>A&*)NGaX6416+Z`u{dp}}JQz}&n
zAF?wSN*CMv0r^xdvPgVLkWgwCB}7z#+^vwg(J^yfc72xVylfhWh^qA_Y189(l6p5h
zso5RJA)A6FYQ>2x$>POIXEj4*sYCi(5Qi8R at -Tk}bko{zwE>c=8JY=fJ!8pl;22yv
zNH<p!phSX5X6YA;Y-Dflw~}2%@;huQy;1sIWb!-wzaSSv2Ic)cCa|0fJsapN9c#`A
zGgLHhU-L#<-c*p-TIQR#W<aFqE{D9}w~nG>yLq`zjgDwaP771^xzFsqDl!x+vu)mN
zqZ%an+#H&G<AnscQXi6of${|vT!ED})xkNf|7LY6zJMvciDgUn9Yz at K=nf~H2GdU#
z$>p&I|D#o*GO({3!(f~LHs<Kg(fP`pf*7D`K{zbiv=3$^jmaW<d`rriAH>kdQiZ77
zO>P&dUeDcDozKg#>+1!@W%@KoDD`keY4#4Cmt>i7sgcGhyFjLCK2!C3Pi&j^<f>%2
zUdvSj*!(JW>bx5TydB5oW)Y$m1GBPAJ=z9(GZgp=d>m#kIy=-nFj^OvhWG><&olRE
z2U_VQm2yLNRb$!@4#m<*yux(A4nh%wB&?b{j(KP1`AU2s8;HR_%{j at 0t}UX0jyvw`
zgCk2KjY@|86Otq{2OI+&tAz1PM55#_Eyn+ at tC!rS&E!0I6@~Eu1!k||;sC>#;`p3G
zs!TUQ@|`S)xL-*;1}Z~=UD#R_ac7L!He*ruxr8d8Np)nj0Uk8;=sh1X)syx$$q_t%
z^17hH&mNTIMozmHwWX&!M?2B*#M-4n$*^=$MUFz=NmM3Ji?)x+4PP0;e#$QC#f8x7
znE0_%V`t(A#3__#{kC62!(U*m>d0ITX0X1pBm*Gd at 8xF)>NydOB#2(%=k;45q+1q6
zVo~@+51`~(6y}761%OD3AXKrK%+?VUWpfnO1Nf~Xmcp3<-!z<Kn%0f!%6mt~5O;j6
z$fmv}@NUwbM6rLfj?(Jh9UO7Jj4OX~sL!%KC7*{t^zJT+!p>@$&PsT&OoLn`f3ivw
ze$!75_u+)3b?)Oz_eNvBqs*BD{rl|<qBe%$(~8oY()YU&TNB|U{))7MTH0l^_=8<i
zRk6+mZ}9;#Dsy=4&9edg|LVZ0?@xvP{-QTr<*(74is7UJh|zJW;maN59}i9fBk at b}
zZ<nkqS)+2E+Gd*n_pj3O`)og0zHjsGH1j!{KUBttOs2_LpE*Ex_j{_Xm~w4CFtm@!
zfo#r#y3hFrs9dinj6rbp{@_mwO{Ua|9bwbQmKXj!pK4{{Bi9fGh&6}aI^Vh^OABol
zy9q5qG8wp<5nuACEc^0OQ1)<aT<}-%@LGZGij~0;eXV!v4v`)6&|#dw&LER#D??9w
zLt9lL8n(w(AIcKXF1SpxZ2%Wuc^G$4e7&HI4uCW+{L6Yzb320SDvxe at h^Oy_r6Va;
zX)O<vDp5B2sgkw&dxtmUWKDl~aC{cduQuMjxsS3E9%#iA%8>*1WFym`RV4c<ZE)%4
zT2Wv_LU3qAluQar@%oWjmShEaY$fzR#BOF}vqf@)_swX=oU6-4t_Y>pbM7*LGSjh1
zd+13~QJU6KE?U}9W_TTnrxBL1+Ur9(7IO4m7CT=M%UILlmRj#!(POOZ^YH~?x!_+w
z%5Z}98&D`K1_DpzxS}WqT}hYr7|F2WHo%MPTSwWO4>ueIw|-4-%^P%?bhoC5{l2|o
z#*c!{>jFteee3t?ur;tw^X%G)kAR)8G63&xq6gHY&e6e5ce#4M10u7<uJ^&6i#J%j
z{x70_4eUf>S9a6>r^PG#HyP7 at jJm(W2lTTtOZff($Z_e33gb at nY|{oQX*oDR$=S)H
zFH4R4!zigWU4*ezV0Dvn>;GzAQQA^EG9*ukkwEWEL42jz)0mtp58^6G<$LTTpO_5!
z-kArxdLLS|_O%o1KqN#^(a?+pBgU;QhVXkn-xM<SRL|%3n%+D1FFl5R)eAkE&qb!_
zk7R#nQE98)RFi&k;?D4$zQdO&akxhU)Z^mXz!zvnJk%1(s?0{@pyZz}?5mc9m{x0B
zhceJE`-)|xoI*Q;S*<0R*|k%@#nPggglx84(ForBMb&$K7C27%tOy`$YX&n2K1_)S
z-mM~jt79f8iHFR;4Rrg>)BN`_lgx2~@n_{j#`13Daz#2yKI!vCFsmqq<;?mYu#nz)
zR6U&&3bH at z+exaezl`w;vgc98>5mVWVAS+tq)rc;+8_MoN(8RudVxk`yq=Pwr)dpX
zdzN#Sb~%x$nugIwS9U%&Pb&|`L(AdUe-R?A=0YNt&SNkDUIh11bg;XatGsCp(z^Y6
zxh~Ka1Wc*Du<wj&l}}u*g722zzVDgL=dX8(^^ZIO at MiY7d6E=-{sD9+42cr<C-vcp
z at 3?1;YhfsXc7PbYp|SfHX}1fEkS0O+$F5tfAF2cM2EdCd{G^KnEghDRjF^hTo!TOT
zYqf1L{HEf3E6=yn#}{c_&&KM$yG%_7vty-{Foj$|@B)*RaUTCpamazAiOMd71NwIZ
zO at Q)pbLZG=82fnP?=gy;JW%$j)O6^lud>5Aj$5V09};&RS?EzCog^+Vx%kmImk_~%
z7vc+xwF^&7_~>fvBfubJ&-h{ij8LrcRpI5{laavdqpml1aq#e|xJN~-AG&_PZ3h|y
z3sX2dS at hAl&_H3938o?7gSYi4Z+9dEhFI|Dl at 9h@26*R;Tx7FTk at H+X0ye!m!U?fW
zv0K;AvyFs5?yG*WcB_j9tJYhdtCGA5BlLQ=BfbqB_4qn4gD#}%_luhmSDH{x=J_zD
zv at C;jee)D49kf^$i%d6<=2^Yg3DiGVixL_vwYl^E;L3 at MkWrgyA*r*SGA(;FBm7q5
zjnzD{N@!4t`@H7?`2*V**Zz+efRc1F^DI at fo-hMbF^O}Rk6cNat7PQB-0aU&61k!B
zkb1fJXSM}$XB^hlR<r?$$q(0aPkMGM)U{j at _A>&B4<;ZG%k^-T$T4(loM3mL_G&#Q
zokL)^+Zlt%d4YH)8~Bi-#0px9Vly5Yj3y82AZ4hyby%PcPVX$LHOPaUr2=ad%GYMq
z^Aw<Rl8(dsI~aQfOPk^-)r{FVU9FJFjd|%FXg~3ctq+f#a7r+LZzo%g7UkWDK?s!?
zG<c+J^;eABMvQrqp_BVMTV0>bPOCWx5#lq8LLh3+^5?YpcxjNgJm2gIoCts?H<<sJ
zYk14|V16f}qcha#LtLB3s(PmzVDXBCiXxSbJQu*XT4WO?io><`ASP`Wvh}>D1Jiq2
zTQdIFb#{He-}x_nba0V;6i`NV*;XpprycOXM84P4(=z1ys5kJfSP{8o at b+qKD;$^&
zJcVA=C0ECdsmRN<0t|3eN+hw>H+jT1>?Bo*9Kl>&zZXhhf8|c at d-i<>oy7^4Rs2 at y
zUWn>5ba{}g6;zT4AQmQuBL3)lz(YU{5ov|c1o$Ie4Q#{?x=e=?03o?%(B at TxxDn80
zLd5QMqSF?1I$pEU48(Yz{&YmP`4c=z{RN!dxt(-YhPzc74t$?~3 at LPe6nHy{XQby(
zU=ai4%kiGxNAQ!@;oy`j_J8fe<mtcCXSqD!aG`8<-LO?W9tTyNQ^v4KO<x1I{EZCB
zpquu?e~ed_S6^h+kJT^|E_R(EPQtNdd$0FdwjS5)&uy~aWhALlB}{P2N84na)|fwS
zU&3}vz8>8CrNNzXy^z)0Kq27eL~TV!9YpJ|G=BR1sqK7(tjW8C?h<n8q6hm<Ld1zA
z%7p%9ZD>*~qYIhe;WFxyxK^@@I$y8rh&wjKqV04Bt!#}4d(D!}0|Dp6g(BH<Rx5(#
z3YX!J3P9fP?A at w9n4P;SJJzSma6qe3vNK5qm#>Y8+3_n}4phpe3rihCkosg<1j4=t
z2Z<&tW4!u{^7mL+EyBhFQc<aqyRggN;UG5oE+v5Y$F^3n>buh=q=8J9k9!%+E<i!k
z%)6``soU7DI`4JQWy*B3s{W$%-Cr6kMp9$B1g`$R0Z-z4z}#vJscy7dG~&Q?CAaTe
zvxXF6VWX*2Lus=@I+leu1M3%}(Me2OChu|uKueG1wN84Gd at x=MA$O*|=HZ{c{j5A&
z%4Q+tJBH`cOlq at _&%MXGbe|GiON?%-EYmzucLiep%Ems^O!*=eS_A}D+T0IBGo386
z?Y&3Mu9um0%;owZ2Eg|GB<1ALU$=9C$zw#%?sa&PD1RHFB9ug;G_h8*zt!7RbN&qy
z{r4G_5{N}S)J>}7VG|ddT>#$UMjIYnvMAyBF&ELBcw4sNyPZ4jX8`mgd<)`@iS+g;
z5~wh~OVU|}3}h}-Y)wK&{2nw6+U4YT8H9c%hkLK3xssPC{ut7&YlHr%yR<bDvH{t+
z6Ke>Ay)54y;4_9R3`PvB5O6<Z3kJAr2=bXyo+AMJ?<8L08xEP)!K<n}zYjkfbOwCn
zHX|F(s&Az;s3n0Sp;va#m9ca{LV;_sI$nOaMt(Qy<RQ0`9J&FhM9ucW^e%o`3149R
z_1>3qpUC&k&v}5eQgg`te at YDoek!t6=mB)SrB%-LxlnpY>)6&Km>P35+?=%<P)9?G
z(%Y_?4)6`jNvW#=vF)b0fA`@jXZFUV>IT<O at IN~t);6p!j&MxJkP@*t9FETRtMmgT
zWG at 5c!STzOg-hW=BmCa*&#}MxM^Cbfw;B{5l-)rxDXr|X1Y*$aEx|GVg;+sW7?)~?
z at BxePKN8OXws+)?vNr`773-h6YR+OqK#UxrfggQm8p)zNa^8qlR_lCVCEiJH9DMQ^
zl|-$2;Ny0xJ+1yivz&(h8Lv%+%90C)(P?;3+1hN&gx5#79G{Q=GUQt)gm%<qIR~lJ
z&)rYW0kVs2UghJVO at PHMm29%V7K?*F*Gb2^a=c0!C(#J5X`xa9d%M0ym$9fVjm`v<
z9*f1A7%d!)-*Ey?(q8v%1g9H)i#>|$(qja4$ZO1ek8l5_+8wDrMzf=gn5Ap5kH?um
z^cd%U8SKVXVui>&;H#DvqscU=8m5qZGquotOUhz<ps`rti)*ykqXQX62_Q5Lm$7((
zVhT9N5^sM!W!MKCv$l}8fN at NOQ(jZ<Wad(`1TB5n<1zmZ8MmE7t;M6sk18DVC+1p7
z4ky0)_mG+25#PX-IIj%n>Zwv+unkEEN6W(8j($pMch6DRQfZz<Mnw;RkrC+jj2T_)
zaE|IPWS|un^|0~C%jgrP?g6{@(E9H%h2OXT^xh$ttGEc_Emk5vGDANDx&IKix?2 at 3
z%A}Y at PcsBIUSIDCB9s8L!YO0MdfT6AW9{TZg=i3yD?S!j*we>p%z6FvMD|$(qb0;a
ze;!`UtK780S-JW%+AN`nA7mJpDKlZ2S3H-koreS$QevuRGoZEm3h`!Gx`btF^ai|(
z*t!OdO6lg4 at Qi#+t^5^2eA<@6v41mC`uuu!?f9|c-t@!OsVzkm+`v#~JS6k~_Z(l=
z8p3b}pH}}LKXI9c{M{{;_A?V0gs0nu(UgfHS!&^zS_zF2tzC=P+D at HHjV)ENZa<!%
zX*v>0^V(QTld3+MspU|ypZKUJ^?{jVXl$wWZ$d8zcy24SY!+i1!%|ETvKe*!v_Ji1
z+;@?sh`McFBIkT_tuwOx059D3;#*Y5k>hkg+UBmtzqo4e_2tMxu-S+__VpS4QjSm(
z-kG!{mN3RbhHqjp6UaMP at 8|tNSn%-g&o;n}vlTm3*3)RsHL&e6QKM|>sK+Y?`K~}L
zYNpnjljop%D8+1LL?S><(>Tgo-|1oXO8MlFB>{Y|PjXVII-s&06>d#-M9Bw$2W$v^
z657n@<ys~$v)1YzAyD|Lwc~y>H`c7(NR7Fqm=mb4cllS&CdN&#fjO@#2O{t!dp1(c
zvL6mJ`$)~f8Y_Gfzh-`$5NT13u*1^{2Ykz=q%0?1Q0#rRO-ur{2WgX&L8!o(RZ>Ro
z{MTn^)i>)@D8JI-Dup|+acv)aeNBCL%5%|8*0Y%~w*_MrMm^N6W|0V4fIlboupJCx
z at I%RGVNdS0yO-Io at g|Ks>1mixR%o~k2K^c7>4A55sH^FWTI~+0)otEtNju?nDY=QX
zk-%OJGbG;nkEB<^MPnvRXQB`OT1LI^Pl5^FS6?4q@$q*15J=uX2c^w?vma(_2WcD^
zp?aHNv{=H;o+U2a=|;lVZ{YFH>s1y3&QguM>yU~0wwjeF?dxG;tBF8YxE}hprdfRL
z1}5zEHT-MIdX_rTb>O6=iQI#E7TRhLb;Owqaog#BkY}-CUs<B+=322L^Y;p+m-3}E
zzU9TL{v5Cno3(X81)#4b1(1p#y-cD`62$N&UhDDDV$E2sme^&ei3GhSQ&p0ess|K4
zl;`=y8SL41 at cPY9xQJ^_8KEV=R_~yLdTIZWuH`F;nA8A)<#np#AzWq2BeHLlwCH6q
zYg at sJ<Z5#D7nly#Yp2VPOJso2m7SW|w(9s!5%Ns$;14!AHx{U0+Z0Kpg<U9}UTtN1
z61yirqSiz%;o#=jfFf9zxyiv7^TgZD?YhcajoDl~+I(Q66wYBMCs&=2BY_jog6{%A
zmu|RJZq6}A|4J1L2BER4Dofpe=9Ht<_Jc?tvZm983abN5A82k at Y(CVv2)^Xc5*xjk
zVj6T8l0JNs$<!L at yq-1?m|i&K!Mg1aYCmn2G*a*&6@<=4O&m)wn)Tp%PgJGOwU+s`
z%eMWrBsw!p>{d!$gVSa@*o{~?iutvmc?d+rUfT at fzJ*ak`MiKeaw(&>ZE~w*FFlqf
zWCJvIzIqd384B1=K^F^+kco;y5P%$}_fG90Ad<;aK=^s*OG71dpOmBdw%4k&yul)J
zu)x1NZ1C1?#TKu0HIhANnQ+GNW&h=tr_rrAv5SLkXql{v^x=(6`7MT#t}0Rb#9)mK
zaeOF!nRc_;79sm7;lTS3EPGs$=eQ=qA1P<5xO(fuhzuLn3oyr3rrwqYpf{uq@*fa9
zl2?FFA1`?KdhdBifv#@NRcGx4QeLjn*{}FHtNcjjL~(tq at 1tf<aopEUTo`eC=bX#&
z1Hr>yujy5EfQ|!m;|_Aaz86Xblc`L+Akxm;2|8bdFm%>H4(mDBz1jQj at c8S|QfYw0
z at K0y_osHohqXt6W2J$qvV*}ov%AoTzpD!u*- at +rm8#sKiORv%vbopAcM|`X)fXeMl
zQghap*^lV!#bhOQXOb)}=T4FDEH$z2iPQf8{b`Z9{xOrWv0M+K*?H#k!2Xt3kJ(-a
z8;?`SY*;j$009(<j4&yptV)cew|ro)ACy#;u5<oR!Wn7%*zb#!Kb at R5?*`vom%t9~
z7D^XO<zS0sajM`Da-91};pBb-*Hz6{$##oe<yT0?a6KejYUU at zhJ<vOXM3U4aH!^&
zm))L~Gk)(_dg0v3lv_iC8~@!B<cL3h0LXsKvd0~!N)<p8?bd#Ncvw at tlLuMQb${2r
z9ue((%0|ZWG&%iu7B1-CpG at 1*=s at Xjn~Z(JU}4WU4GpLu9#c3kuS?lyc1Lfvqp+rd
zJs1yuqo%_!)mA_tKAC=`sT_?{=~^d&-!M}hc^BG}2CC#kjyJ*UHGbCOFEc*#f*)6w
zYz^;m=g`_^>A2}LX<!p6)O+uek1VP&#n$KHC}x at n9f<_80u_xt^mtkj#?0AbPOG23
za^QuJR3sHAiFYvf2VSyIJiRcKa7AZgWlPJsR>VZKxJ8hD^6k)9Xtss?*n;2~r1v1Y
zmmPL<yh<?YcOasuweC#$j(&&oTl96v&)LyCsnRqyM1x{ap7_=I(huyDDswd5O<r4T
z_nI9&DTIBnv6xS)$E3Wtcg?q7miTtZK#1!NI9rosG5&rr|GG}#qfd3Twy(LVv!e_a
zT9;-^R1tX+O7N`2*zCk24NI at jzF$Vfc)36Edg_~=+N{SlAOT{tv;|>6p>{n6^5zVK
z at cV{wrRbG_$LhnsgOzHZ&G)KpzacUgy(%bYQYic&l+dISA5V{oHI*#z_|9#YOkB_>
zIW>1<Dhf*RNTDI>W*>+{)}&bQH=ircHjFS}vk-7JX}aZcOkjT*?VM26ws_<!E_k)<
zZIMn<_s3j>G-(jFuRk)(?8bUAFN{kb{6Kr3j>vX^&ju?0B0w*lSv$&|tNz*ba%IBl
z8Y9(}_m}rnZ;-#-_n($M&L5;u?);OsM5=~j#Xp3bG%#>|hhNdiY$xBs3`eS_uM?IN
zD30u~51xH^K5L=z$|R0xM-U^#fTG3S-m+A_gc_rYC^(B at vp&yC#aKU2FnM`G(A~O<
zew4!%yd4C9*3p+6B>`q)eew%th3}!H9PtDRp_K?)-#ujCr6_C$Q+C>H&lwh8uN?s2
zd$zt``@`<-hY3$1rO<j*ZyY%7-5Xd at nV`RHp7HJ_fcIzC5Z4pV0GgyaQz1j)s`=j>
z3?2&Oi9r$(>EV3bldOueF~=4)w%Im6ZJMT>whwUzv*VOZG>6euVVG${sdnai8r5t=
zOG1$ds~yRzZ!0el&5O8ug|?BqZ}MKEC~hWxe6f*^H7I=qEc_l}Ze{q?0_+zw?~YA9
zk>SL+IVZCia_PeoI0a86tfLQ!YS4vNcVcvVhD?(`fX9qW2|o|2_-?mMQ}6Z at W2r+6
zw#~=>Qpd3A3=JqQduzkx7QI2tG5<b$P)RAoIg1DKfBKEVA`v%)t0J7o$L%662LjwI
zAsb{8g)M!<^|$+Me^Q~w&X=s9<#zwv6ux~RbCrh<=i)_G)1MG>{w+5BS_hQskb|ed
z9+2CNdf*$cij_Y)RWebveF_dym at K{SGQS?-?Y)25rirzhAjFB}NxAC}$>B<8fO`Vo
z;`i6>R<PW>Ufg(jgY={2A>Q0IBN_c>l;%#?A!g^jKr`3q4hOiQ>1XWR4etcmH|#h@
zUH%>-XY|-`z;7DTU1^#AvE^1{t_=4-x%RUk6B%f1sXw2|VBgHfG~?Ri1x}p~yv*a(
z^yl at aDx<4l1 at Rrog?{<Y{7EyY6WT(?in+nk9x}G6wmkC%6_e(v*=xhePp}-LZA+QX
z77X at h_1<BU4{y2~r!HwvSET=K&vuZy`P4IROAEU*rTP3f9cNRo>N=`s{pWnP?TV|i
zM^3y`$g_2Jq}|WE<t{^E-tuo(8w2e2aW`3~TT<jQhN(MkGLD7JD59Wo0Z}rZ?uZz=
z*VzoiB6I{Encu=OEZ#cCm1CNxA7SA<$B_*i%)?z;@&nz&tELJ)hi$DV+IIdqIH&4y
zb{e_r8)`a4ZoIv=A)yG3e?kFTFFO}*lwr_Nx^%<BQxIF5b*MP!*eorKcKvSs+xl1`
zA9s&qe{rhfU@%kv#Pe_;{_(FKUQun9KWDW{P)6g0Flzt5F4cu*zq!BZw;H#t*bgb!
zcHn(U{t+fQ38v|#q@;}UPT^wSQ3i8((urksq#6XH#W9P5Nbi+n^Y~D#f$!gs(g)NX
zE9(YWqD&4`Qt<fSE+2kt7fh)(*4DJMG>HbW-k{WmK0xq3KY%D1>a$sTRc4hK4jUch
z1mdL9!}Kw2Q&u*m+|y%v7xABVXq{KWinKvsV=DU*9I>1HYpqu#$}(<ha5!Z?={0oq
zqOD7kY9hdubLNmI(Y05k&g2J#g=XxdxbK5*GcGKhaD`-<EqWin at HwRyvg|vo!IFKh
zJ3#O%*`(vJd6B^28$WE at 1&>`Cp%Gx_t|vy4Qq318S<Ud<kw!{1rsWZH&43p0g`ERc
zf{TF*ZJp=5PaVYZgueu~{xGdnFIYU*8#!9L9a?^t at NhItaJy-u*`h3-$`sWAii(o3
zl1HVNtUE|%SNj^9%_5LhSQ)!h`Xkp=1XmFu06Qw|m7YPde at yfHJ#7EWT|LpSa$S^z
z6Wwk(T(w9$yH0l^ynksi!7qH?F7qUBOPRNyVijqzgKYYV;A)wMcZoRa&b#24VPUx*
zBI{u>Pt6ZFjAcT^Kn4EY=CFU!R at w`4vAUI+x$q^z5xA0urN^*CqK-|+&ER{EwwiJq
zOGuL)iDXkJd=E*Y!wBoRaCf#C;4ya{-S=zp|Ez?$4O>%t3G1GJKTx11Eq4o<yQOda
zQxE2V at XAutT)eR5jFn*yC+28{e{xEqZlxPifFW)PdEny8dFu|*nqSSmr76p87t+^0
z<W8ide at l#s|Bm(jgE(U5Ph_j_(FEUrNQi`XY)5KV1q49t86?2s;^nw!s=BsJk+$&o
z${{8?NnMDDy@&}^NMG#&857+XVSJBM-#A9U#eX)U=5q|-dEE2_=00wwTTc0Ix<VfX
z#9{S36hmga4cCT=1{6Bx(s_<W?OMkF=H;Y4MEsAxSE-$#WFM~{oCa+{j?4wc<opYz
z5nRtVk63;EJl!U}2p%E#{1Tq$(AFL?!0!s5$6SY`ZD;e-Q&!}y*NqS;W`3IZ at 4=U?
zO-0j~?>)`~jjCaLmAMS at zrpWV&yXcr&oA8n*;dTm!XK5#^^|=lrnb4E#L!_(&~pnX
z43>%;Vj@@Sz3BhFaL!3GwdDV#|8&{QsVDrv4Dnk~jrO%cI?+_cGq1X2Q8CAsB!xmy
ztmgzeS*=bGPp7 at sc_Z(H at rzA{X*{u*@*i`))d9QjCFc at I!^X)_hZ#Jvt*N4L=x-1M
zgYKicFoh3)z}qgulSn>cyo!BV at Pt2k6sp<IWqr#YB$$u5y9&^JCb8beUYNiC at mp!`
zYKf-wOJJ6WIEFtC at QfQl1#@Y4_4=#!b?~!a(tN5Ze4;*uqz5r()eNWX3rQtS$!y%e
zo3!t*iYG6OAfZ}@m^IwoKn);&$onFg0DZndfY&9%AU&L0!qZKRbDQ%iOFZwL`5)+p
zIz^RiYZ9<V+Z`Q2{4+Oa_`DT*cD>f at pAwVx!Gt?M@!bRrnRWB?=mamUjan#R|N08k
z(<w|pIunQ_-)+fjZy+mqh?DVxFiersQ5}z;Ar}A at n%>t?0=^F|RrRx1uIbt&Hx;}D
zA7~NCr>(y}UTE{!5_M0w1H(FwdNTguYp?#$!Te;akxpUVimAD->3+$+&UgCb&+SGk
z!EncfFM*cq_BJy{?Zbli#U59!nd9miX=G2|qYkmaEsBI^Qww at uB99f_G}nTXQtdM%
zgZ*#!r2HZmj&uE at x%IjL(8~&2z!pHu%2DtsGqDJ0KlCI;Ry-wH4tRGwb~|<RmRTMC
zoTI;G%G*7mGW<qD$85XgiSP<`8x)(-u(sqbpSl)|EqsKm+~D^bcM!C;9ZeukXT_);
zMH^GtC3UpH?$FC~4aXd{a3xvJaZrz?mNhtdc7EgbNG>@m<u^Uzi2p{8VuwL;&-Odk
zX=*wzUB_>kF$1zTb8}ICtJ6=L6a2}QQ#{PumOo-3E1edueRQUIecII|U}%QXYkvKj
zeUs at 33&eQq-c at QlCRe2#Z(JF0cKN0o2j5IhAwR!w#&tcy`1|y}sW^gvZw=_sZXfn}
znuP|~UuYO{nSMKwH=RCzN-pmN-u9YqeoS9M+47x&%qLudC!BNovA0T_n(mk)d%o;6
zP7C+zdv1jKzdU5OyuJmw>}Gpzs(^C2T{+nO8fGG~hqKy at v0m$<OGvNT@{x at u%L)c{
zst4}`5(w%8-DGqb?11hc3}XH8t~M566BSjPu>$fed-V;EtZCgvnfQ#_{Cnu@*AOhd
z*D>y at 05hlCNCcJ3L>i^t;{>%|aYy6~r^EQbGI|!)S2f{(Phk{%&|rzdr{gG_hF;mu
zOtB~2J2ZL8QhC<hhfEpz3+CE<!>dmX%YP03+SNqq|1ZYgDLl`0Ya4E3+qP}nwr$&P
zY}>Zc*hXW!NgCVEmo+=vwT|O|H~y_>^SLjMabk=sq~3c~%)ll47b)Wrp=#V at 9?1k0
zCG}7Hgu-el$)Z&^HurG~QgEOLf<7yy<b~x*HK4P}Cb(9x0;gmM@?U11^&RUl31MnT
z!nH`#bG}`AyU!k-$%RN#;pX3 at YY1Oj8XF~Js(Se{-p$fhjplp#Pj-~&Ws_gwm+<S+
z%9m%VNWe3jhQ5V at 1+>dr;1ZG{N{XYEfDyDHBQwv_)-OnUB!V=cCygm+W+6qr*v`+)
zX5;&h_(hF?$9?G|$sE5{E7QPXUE1C7eRosdk&F<BC{(r5XZX4Y08$@j8A&IviGr3d
zMYgUB<o!eB)#381m&>WX0)btx)Rv2~aU}Do47erDuwySr4v8zTvr)_vUwmslMwCKH
zIBJ6^DnXgf(7cRfH5S?doG9_#VBr9{jRE_&=Zm-3%gz-k7hB20l%hqcw*8^iCshzJ
zbb%xGyfplJqrmLTvOH6ff;z-(_|h_}fN{Oxg2dY$%f`o}BFj1(thAOkuJrv_6`NZl
z&NR9`b|Ym#?ge8a_|zbaJz0WmRh#b2{i&i-?Mo?pJT7w at WN{jJ0mL6^8~eFiMaS_D
zK-?L~jgjN6g#Cx^6(sF#OtPCdH98ejxCgtW1XTV?G8ARHBxAChd}2v(8UTeV;pOvU
zMC6Id8%OGfDeYR(<8zb&b{4Acghy?e+1M5e;&+J;HaU`M;IdPkM!W7s4kqzLn&rr@
zNJPxLrqoa(@&2kR)8(k0fv=g#bDoG85|W2ZE;uRQ1}wRJT*^+keT(V1t=S4w1_nG9
zI?RVYUQC&e#Bmpc<;pW&Z1Iu7&l?W16gPR(KOblE5-Gruxwh95hBn`*K;@DO*!1t-
zxa>xIoYZXL3g0J9+;U90&c10Fe!HGP|JVj697pilcR#q!eu%ko-;WtKHq30Tyms%K
z;yEaqLiF%GB^H%OkMk=;(>QD8MA41<fUk+lLx#p6RV`n%l=CsO$L>nKX;&(k#59zc
zg50ekl&>4z=0i_YRN~b<RCn?9DPz9o?7cC`d!Se7O`@cqK1fLN=2hH%mAUlniIyZF
zI7BC%#Xu3E;J$6uBlx5nsGwnpk-;ccxO})Jd>eq8>lslka$b&(d?&lK=RpB~FndR*
zNsXn|u*=kxc;hy at D@h)I<x=%x8}Ta0npb)Zjg0Kb0eMBlzD=a)Gxd4m2KA+L+j*L}
z+BEID=RxD1;?{lPB-041;YK{z^YRIRQ|PWOjr+zYrs`wfKjn#q#;p?*VUF4X#NUGp
zu&}VO+(e0)#px{1Q}~$m;PrFimntvl<G65VKG(VBd*%K6cEa_yKwaj=w_o~FT3XR5
zI?ssbSeff2`%^lX&^WET=1Q>Ma38EMG){!|J5M`F2eh%-yi=rN<2<~N!zS=mx|l~H
zanJOQHoU$T*Ih%6?K&m6bogSOFW|3R+~{=iZRsJX?mRb-n~vCOIleB>^1^QDP33|Z
zu&?LM?+4!M*2%H;L<$052;qKxUs2bn?3(zxu6(o#EYxGhl&@NY6u*xvluGVjDF15V
z$z$i;y`HGMnkf;3q+8Lg>U~ox7<YY)noP at r3ecT5rz3o2NRmlK&<;c at OE!midILI#
z_iETLGOs4yRD6gQ4yJaeu9U;$?z1-ZqB at Wx$kdDjh;#7#Hj_#_9Aeb!C)iqqkX#@t
z|MSi&>*StW_F{#n+qjYb$JT+Y_M7#E1em$slsOXhoFf at Eya2|wqH}LMD&l9~2pUYM
z-WPmqHdipAgtd+DXgen>q&5+TiS${%K&v}1_4d1QH?Vu|7Ik^o%kCCx>FkU^1O*G^
z^@$*y_|8A!R^+t0Zi(t4-JgW~@$kStI|cat^Fsk3AO`p<9%=_EL`BpEySd$0toooo
zc4?^AxD8b7ycIF1ek_u>jh%3-1qWCEBwF*w3jhT4m7fm|4oCy?n at g?H1>bwLZJquN
zi_&ds=nI1)(rIM~>(4XTr37+}&89Rza at qATq(LGHOa3*EJE2tZh(MJy%F#fW3$uOf
z&L7Z|#~Agz7!vIl$0<&;Hj=CShgY+E30`eXpiGSo*O6_C*1b77wTA2QIFJ2moHo!u
z`g1<i!@+5X$@h`H(vvX%`I3J=$jlXtDVNL|_A4kk%Sr4!Gr$RwBlR)Z8S);%934=M
zR9C8$<{=!apHZUc7!VVeKT_YQo(`~iPzIrL)+}Q>=?nR(&)yc<V`de5EO_)$ivHfj
zrVxNN8{hqj!=}m)<LxmcDEAW!Cn88*tg%Jg-sB8NqzqWAxQgLt at xui{<~OCRCP++1
z*EVS<QGDxhHm9 at l;<6&l_Zl9psD7h*<3%;VXd0SAO9;-Y at Hei7x)9)qQLed$jJeDA
zCC3a~+eZBa1j7F=4}V|}I(Un}8JAC+1>fpO9NJ<9Bf7+cGz>IrfuR5bd^ynd1WwDh
zqC%|n64B#<Z=%V0xdgz1jwFUo_iTl?^kgFaEi^aF`e<p6m_s;ek&TiNwP)|x;qnYD
z9a)k_^RJU`677Hmi at HH-3(xfIE$n{ILL$2;W#)o9O9Y;W&l)u-S~cBzs#;NK`ZP5C
zk!$64cTx;&9lgN at Nu-p*5GmBX)y(4^9r2G9;yeHDh|ix~YJzDPqQc|GICZt0r at 0_k
z!KLsfw`13c8Ow>z7FxmuQtntAH42Z$SZOsT!I;K$qMn?D at k8c-Q9EWyx?Q`O0k((Q
z5oxmU+THUXrQ~zv<L7bZ5%TwnaOvPkn at uR3*+<cjKgq=$Bt@%0V<;5n at _B0pS67sj
ziO``*NPPyawwp(PbPJVwa at M_$_Or2&g4b*+g)uvh*+oL-xyp~F(OaL{OVyo})|}If
ziGS|me?NT{8sIEAb}>g at aMrlxVrE?I+wB(}uVZW@*o>&gFUScZEh$ITKky6h3VSzq
zUC+0~C9geW+Z>?cJ=5f$pB$_*YCJ6QeOX!_H%3F(;v*C}Z(@@^yQ}S+8Vn=?mHXci
z?al%p8JR7M%&HJH>~#vcYVckWg>ESZ1$p+>wU8jRot+l4L2-AEluQ}{vE#-4&p|zd
z`_DP6nJgdcc)PR(Y+cW%!r?#(o$?d4ZS*IKGsT+7ighBEyIiy(+XOQ=oQY!&3eQ~D
z5ziNQ64J_1!{8kB)qogq>)?xvJ3b?Y<0(Y-kZy<IwjuJJ2pKgd1QslbzU}_<w34*f
z#}vsTuDreXKx(n at B~i-fUHFzhfXjY29=PsMXtf0L0~dPliq66J5FDk$Tbrm1WZlpD
z2YNwCOD6E|E8%l8 at k-$@`=|XqxO_Nl2aAJh^qzPiTX$E(4<v at R>vT<X&F*+FW2}+E
zs3`(}#*4SG at f8(t;lbitXCINqJJGa&{6bXK_kP%*ph<g+wRa|f@>YnO_GM>rahDBa
zHSypDk-^Gohj7Q7C-`EmwYn(YDSjG7iIQZn8(1VHx$#q^oRNFR@!+Epa`?j=H3*y#
z7XQs=Y?c%2!;52))Yc4Pi-f$Z+#6v}<iAUgA?&ApcKwq`k;}_$ecx?aP=yZImIOiS
z%|=8Q8qMbb5lyE?XeqM&>SdhD&g=(Wh<jnc9Ru))^;vQ8{we`8slmt?ryg~6;g4$%
zG$d^Wj6 at ok0IsWIIyA53b-@|aE9^tz;`~!0G3J55=Tw()Dctb75RigZgMj*p^CcrC
z!R?)35(95 at E{Srj(9oGB#s{Mz?Tgk!Gc_55|2bIr08%{GEExhKRVtKK8pjr}0lm3e
ztW?M?^k;stEFfLUEIaem7_7;Za68<AjUBCl^Be9uIuEEA5eFR{ge%l{_~kmxaIMS;
zWmYb9$8Z~JSwE_!ApVAfGuW at m!5mmH8h2Iv?(Xd66%|PVqh%@;!ftMC`T6;9h=>8T
zwRFVM<3Ju}!+}iGCB at agB8b+^vmw*{2Ly!gL`_CTs^I^|md~H*b2z<GvV>`We+sYm
zDy$VzK|6#vyCC%GUZrT7pCQw<`nWVl3t<x)F3O?gl2U-&VEE9t=nfB4SiqSS1cZ{r
zG6RD-F`Z^EnPgnmsW!}mBm^Qv8Pq-sr^yCb&9UzRn}KfEJb1L)5qXLJ|NL#EB at mZK
zKBsT(c7^la-Vg$?bmZ4nGe9X5Y^-84EXal2M>U%0B&-2s6iAPU^C%c>4j?X at gMbwv
zF0kHd{;8qj>zgLXje6*25 at P(YXxaLyT=^HD4)$H;Q&&#k>lkxpmDelvN;8gxkNh9u
zO`p%o+3vc2w8Kqxf0w=jTd3Tr%5>jKX+XwG*dYx^{-!ddQjYka+a;G9zbEi^I!}V?
ztqtJ?QVNXT93G*#pc79cRf<C>Fle?bRZeK2WT%!JUDJmv^s}L)vH7R=jUa$=$hdc&
z6B1h=c-sNQeG;k at W!(sV^sQG1L=e+*T_=z=+ZR(<dKIAw-*#|rM4pS4Sw-G*z%q{G
zo<eJ*6KHFKLt%<oz;b at 8gTv$F*jVZ8IYXfoIKBCYrIZ8Y?<}BE9Z1d9X&hDsiwsOq
ztR>s(+eu#08#)N0xY%g6s~ZsZKA4b*D1O^89#&a&UvB`Y{O6kwm#K{b3xc56u3iz)
z8O?e5!$RvRX*=185?0!;C at 8kv;tzRfjBoTtPIui;q;Mwm3}a_Jw@`seRV%u)aUjRE
zOKTOql+z{+uKqaKhqRICs7K$Iql^x__(dn&^zPKjR8%#~bXM696>9?09j8I4F5IZ&
zUmk=qd4PR0e<iG(4C%7VGL+2J9-*4{+qE at 5d&^sz#h0*J3H?1S-$1~Y&s<K~(Ey|a
zVFX17=M*||M5$zy<^!i)QLNcuhy^4N6ck(HCdk_KNX5<de|F2O48fQKa5e&hmj!6q
z9RDYM7#=%bOt?`+K&NiSnwrdrGBxG#`)a?Z%k9_io)XLAFZ{EO6<(k%HZHDFDfWu0
zz5~pGXmPvjh0zSW7sz`ATTNT-pxSvVBnF?z2oD5iq9??&1A=*0#@gwQe*)u;VxRYg
zg#jT))Z~=$(J98Fw42Bh&?X`);3V;}TVJ~i<APjrvhX!{Xk5K+2bLCJu*?yL!A2wS
zbf=91VzH(NNLJ(Y=F!1d+cRoOU3K##2{^)3s;4IseWcuz>&-Mt?RRGM%_Zu~MKUeb
z!p~Vt1iN3`W>Ck-Vfv_|@qQzIBX)rKhwbdaUUtI>@=-^6e0{=i$VX<%$eaV<r_(TC
zWnaw+MGe$yCgofX$!_Gs&Q2id9gJube;pJ^VTQDPX%@ynuaZ$#KT;P%o4Qx0(h0FA
z#2x5RZnay9Hk|1xq2JCM<dNJlelyJ<Qx3Y&soPGsx9#aa at YrO+R5q5hU#n&&E3G6f
zFS&>Z6#b66ThW*OX!l`z^|QG--;^kcVl%3}`WaS)+8eGy_DA1|?GgP+JaMkKu5`#;
z;t9t&h*vyo!m$^^6x7&I|AWuTB7ari^+~hdwy1??j&)Y#<~l4)Ntxo0`NxkwW64^}
z9}Jm}(!oRRc;x at yQv7~jPGT3?Mz5qLfFcVSG0GwNk*-qcIzjY_ at T2s&6;|bBI}*Vt
z;Bw%gNeZkGD5e80j!knP?x~(lAM&J=O3S~pP-_I1cl}&$I}+7m^hRL-bQ|TN(9o`@
zC8W(krBH)8 at 1fxe`-Q%dNb|b$bvEL(;cE!06u|JMe~<0Oq at 2oQ$d(=F<ss%s9hZMz
zp?^7JI&yolJfPn`OrAehX4m6z#dMgmx}itHi+rw^XZ7sn>eENx;zvQ~2*k51)?O^6
z{U${Xs(hm=8Sk<Zy8^_peg~T~IK<d(u4~$Hl>;xk#=twkquE&ZWeO^Y!N{c#+M*zH
z!HiRuPSi^$li}*>ZmPl3H=lWlziCjqh#wc7uu$APSz5q+!q$ykVC;J-4oN^T%q(dU
zur3SgXmU1F<5^(JQ`!iKhZ$?&yeolIc*Gd}!y5)Vcu(kZ_YN(lLs)F_lL=%lrvfBD
z8Ml#DL}U3Zu;Ox%Be;sMp-fhX<CjD2O9;}=>IKPX>}mh)DIbjH^kDakO+PbE_auTJ
z3fN~XL<`DWv6 at 9<Y=jnun6#!_-8c_A-SFLS_c(<Q;r#Ch9|Qfg9wMea13|I|J;_$5
zD``>as#U at t-Rl9W#ZGzYm^BUGS4e1_NEjo(ee5=c!HdQJ20uOSf_|t{N7Lp4p=NEl
zC1)^s7^vPK7W0<RIQwj?yMb^Is%ms-L#j*PrZB@%tMQXa-Io>640iqecaN(ZFeKRp
z2u~Q(AeWYgG@`@pCB<o{P1qe%l#W+#9<9c~IW%isW-xo8Q}9QjEr~{DQN8N5kKU`9
zCH=lW5ZqyjzY%cI!%qxZFo+}b=L;89LwR=do)Ut_w3L#jK}-%cs}t`XC$b31hZT=0
ztJd3CvfiE~_<<>~EY}{Q!JW99R6e at D=sRIKfcvmpBjB_nk5I}TIV(C-=uLM&6Kx_+
zv2}T4pX}+7lH?up#Zmry1q{JWBcM)Oh|!D<C_-w3!OI)uas<WBGJ9LkK=6dtP%K3$
zBbr at h+ph7Qs8Ze!hf721_Bv>cSCy^&$=bHd+er=IBc^s+Tf`F8+qS=bl8*)%2gT)N
zvxM9}^ZXEFG(<$@d$;S2du4Y-;j+jDt4M- at F*_X5gR+t)1yi+dT%|^>*jw0LgPq{I
zu>08;yljCmGFX1ZFPj39 at iphTw%C at Vn^_>R7CUfMS{?wd(Vo~BZspz1NXf;n59 at L0
zen_wHK}PW=UH;v0gI at F(_E6^eT0%L!scetb>*ybm3ZhfGZjvV0%Pgk&?_G<E-T>Jv
z8_J#L`7*?S)G1gzURtfUq+rm>PV$6DfP;$7e>2u^L-2So5ZG}FA&h~o<Z%ilc{K6q
zvkKha`qvKJRXc)`lFz*e7+zDLlEYJ<)CpAg4LDSdE}jiscIp}`aWY0~!H-MR?Gm3j
zNbifd*kqIj8Zd6>1ExcIyB?azb}|&-HJ5O!xbpe>hdbF`<vU)o>iT{u9|ucZJVW0O
z(e{tc0v`2nbIJsEkUge8*5w$(DVki?4=>I+z0)vQ8SZmdSBGb{N}lYziM$!4{b8wu
zul>av5esu(5v&?ADWOLnX+dR!MC3)rP7DY8$Wp1VD^yaYB*<S at E79N$%P~2BSv1N>
ztlf+{-L{@x49t9pGDrMUrljIE#D`2c;EwL)IdeCSxBLU6dmz6e_{LL^GYJ7d>N%7X
zj+Q0EK8G6z_Y^9_7kD5;?v0z!1 at PgBK)w_+<E5`#14~|7Sy2#!AF;y<(dlj;^^Lz{
z<U>nHw;~wlA0w7GT>6=R35}O`LwI>^+~Meo-j7``X69s)k5>MI0Vy(zWSd)ZJi0EH
z)#-ajqUH1mEAM93O8}M5*5_M40P%;ZxP#L};X5vna}o?ovk(_5pEE-?CkK~E`sG0^
z<BIbr(Am{=``sIHHaXwr+n761A#n+SZ*wNB(2!1Qoh`19B*WmN%?5^qj5kAb1EwRa
zR9l58CuSp*>Td|JZ3U-?Ew7PCH22U^7v?(4`7_s(qzor`yEZ}J%h$uebncR!iZbvP
z%YSWEdDunoiBry at yvdSh=?;CSDkQerF{*x^_BU>y=7F<=KOv%kxF(VqP?9ty$Z_g_
zfLZOeENG~ALE{3Lb*v6u=E;t{VUl2ZL&AXvs8|4&Tw(VZ8zFr=Ps5a7kIxdN?&}SH
zU0U4kdB=N3U&^<a!2h#0xz2EUM<w~6-5v71eia&fa)ybD%R%hqOJJRq1SQ$}6O|G)
z;~iBxC7kxP7ZnbYP9fu0^~5#b$a!x*<{=V0Ldt15ZDJ%2i~WH<U=~1HL<G*WKkeXm
z3;S(cdj?PLkkkYunjt=I3DRGgf57ZrJfdK-*a`~AgtgEz3Lj~|9|yVF&e0Dt`F}el
zMBAYq?o<q}AUO9s?zS~G;0(;gi|J5Cz&~5vV6AdKXEL()i=1cxCom|IaS&cStU>8M
zl3A|6o_?erHgCk7R;w8 at dd?yxiP129E=2kFvSNwh1GATPRz$2y=U at uQDGP8GC(oYp
zqT~Mc`E)Dz8DGf!H-`uqac#od>Pj1Ij_M1t^;9is&SK}sBVF4aPH&-}1bLrQgV0z9
zHs at -hLZ#+ls-XAB9s;ErqmKO8?`Noo>4zk73qi|XZzhML!8-%GO2&)lmL$77n;uH0
zXMIBxS+x$Jt?SA5hpS0x#n7N8KHoB%Hy(A<BJpjtqoR2-u2wFS5kqueAk=k-w!>>g
z at f6%SsMWZ3VYu4ap)Y*7QQroc5CSOqe@}BRH(^g;Ldu~y#<3HJnCUz?W!2J}xchuB
zM-kFg2y-Y3?nzkr>dq-fEQ<qC at ZIr5M=47nv6Jv;O9X|T@;K{OAX%AX-3*iw)H?g)
z#4HYR*<E(1$@dh!+qls~-u~!QOcqb{23NSN%AT-3p+eIw|Jx)&_#eR=5wLpLaWgH#
zyY%-X*l5>nC at X?X1+yEX|8hb_(ju$Gz{@V5ZTM;=G_KVWIS+J4(lLX_dG2E6o9sSo
zmzSGN&?!3iFR);=%TfODBmfv+O#oPmzY-NF5am1lB(RU)K+YeyDJGF|t=R#+RpZLC
z1VvDAE_K0u-bL>M%-Hlm9ZfJLSVctMHr1&=uqzi^KxRkX_+`pvY(YDC>3M+ZfgrvP
z`5k#{#X5UVoE-1~S^#Kk*ohEV?3U8%MP4|r?QqJn&V at x-s9y62Ly=Z$TGE%l<PgP|
zxJ8XQq-UGGV8>SnB!%k6)0x9<Ly-AMbITaRaP1J1i2wyngg+?y+x<7c1U0gTubU$S
z`#Emrn?nc+ZFX&D;JV at kZ0hx}(V+PZ2a;a$Zs;b(PjtC{=Ugksqy%UJ7GN}qDDB&I
z(yMJ*i~PGcia~qtJiVkdS$(qJ3^dxYFoftlj`1YrLqgevW?>txzNFvRJ3z}Qhw)ld
z(2H_thrd5L+lCcD(M_U-2Cip~bU8!rsKPk66Dn6M#w`&Qh>3ce at Y($Pm8<jsr`cg>
zW!YSeE2G|}(T$tSiV4}=Eb?5QmJG2&nGtW!pyF~%z5#^|rgPFs0`7?9kSbl>;Hc7Q
zd5?O$8EsRpE79P`jo7?H-QP5LW2bT5BVfppbJP+fxf<5YixPrmu*rSDUN=zchk^&l
zsD4Y>%8~OeQjV{Y{)aD`oom`2DJddSH_no0W*eO|J1zA&yqRSaGX15ukptrve`wXa
zwv+~k?vDLEE>Yz#r#yWQk2gCykig1XN9)P*UTCTyK_kqby%L=~d+UTv)tiwAESZzB
zB1_3a?FBskpf0D_fIO8H*=yK6$*1-U|5Xh!3=@=usi6xphr25Q1oVMj&S at e@r&F_?
zch4iTyfU>3h0?@+gQKt-_kgf&ZyBW92*GnVT)1eNO`m*5!L_9hmthuB|1cpu at O`|l
zZroGCpMLJ4Znw>fW%Cj#WV{(_s5}p|)=*6pN<x)*DX+31T<p-8lm`(1&q>W9gcG1*
z3LGi9)|RR#@8lO%kgtyyR8Y9aD}QV at B`+fkRYCPm<Il*{0}S4J0t#Nj)l|cHr=zX%
zv65RK9<1PXk4D6|zSEN$09#EQ=+%(YjGxfYJ?Nl8YscFaOKJ10sTjG<L-RDFE2m~T
zlp5l=k!fRt(r^#a$O${XSs}*__t9LqZ=sN0>T0<c+iKIG<~96 at px4teOut;BrH#^x
z at aGh+A_Gui6PKBRp${y at +Iy|4%7WTjI*=DC$!@I;NGB1h*?qoA-#dHYvNiQ6LxIn2
zpLj<%m9-q3vYCNB;#WpL<eQ_Rgqs%Q at jKe)uV}~p3AX-x8A5#c`S?NtN3w!KiDut|
z3yU>oseciBnShVA_Bxns=i>)5*&P(mWCsO>_{EGttS&1FU}oei`>&dP)03fl=qYUX
z0J;Gyy!b-~@l_CP6a12gj+4DNuOW6Ao0UtBwjj&CaJB(2;|T>bhjVUHK43VctVoK_
zjxc`76%_^fOMf=%1BnqybSTas|AKztKnS^}@m$0=-jFA8ZH%u8mk0m?!7t=zkiTnR
z89ie!yPR%aG1u+xRB5gGP7o4#jM|FL(j<|k5cWs-n4W~&#wIF1k!vF`C at -qI<5>MM
zFn-(UUqkhi(w at H&h9;0n40mUM=6D_$6u)V=-Ss*arwR8#D?KL01!U&?XRlYD!nJ?L
zWsUk(C)_mPv9U`0%Fvdy;1Q<HH2xS~k$t3&I}I2%9ZqPywJ4P%wtH98YPka%nVV#%
zYXYf>KonkuM$J!|7ZsoBiecULgUHFc7biRU{@7}q*oowd3muJ9eNRX^36ex{*Q4-L
zAYpUP3zrGAZQon?R+z+5(7i=mBI(FyIA1|R>P2boW=cLB2}(h4!!H^*$!SmXpwDcj
z`Clr8CHTupGy<|R7gOu9D|emz{p<iv#&QU^ry0X#YFI9a<mIrCf6;~MvMi`O^DKUu
zB~WzILKU*=`5Q<D9mdW6kN&8i?X at nxcIw)uS#dI96yV$n(<6wcyg?hV-hoLQyuH37
zAcx27p6f75)@*c+ at G4I4Up|iBzp6-S1Rxq^ZX*6iEMd)VoW%Wk at aD{0SKi>F-xPmO
zui~N;{`&eU9zTJYDzd$&Z6NwSDpRRr+<h7jxC{Y6OeXkLHjtji$?X5`qjpihqMYzz
zGV<{2qy!|1l_)ZB31rqyEK^bg3u8kreuUMp_{@0Ldty*03u!(K^FP8T#TFN1&W7nL
zgz*ir^Ov!_?1Bc2oS$J{76_epdI-nm<l_AE*c0eEJh2p>(JX|Y_UroT7!Ft>xf#&S
zQ;_u5-Z<Bdnm}4v4|@JbFd3xd)>riUa>C$BU=x?lvgb@)A5smfPHD{%OI|vUV+An=
zZb`@v`CB59J7N}%GD<T0o5pDqZWF+lCBTG4ppjy`v<JAXSM-r5$Iey>$RNMS^7|`s
zs at 1ES_MI1NX1miD-im6i=+b?ZRq^ehabZfG+ at 13iF&Bwyc%!xEBrHvR3MXfz3B7Du
zOf!Tz^YI@=1g9;Yj22 at f2V6_2=FSPq&;pF#`q~!_h8Z{DdAWeaA<_zUH9nP-?vC*H
z4irmM$25#*)nEeznvgP?q?Te7AjaY<?r3tC4Rh_p at 3{`-1b-x{MslEK<I=V=^1#Ae
z4B?o0{#kjH%<DAR;*yR)T&lbcxY=jK_`4ZiJv2t_DIJsHVcM=R)nx5J(xH<1DU|64
z at W#1p>nLPw*ZlPLK}>0#4Qqkf!}V at NO`FYt`6R>G_3_BrsT9LCuPMcf;lT?Tk at aM)
z%+<7z%83m&I$lJ=;@Sx1$%IHr)WUwT^jR5(kqUZw-1MLPVa^&BudhamT%61^rZsV+
zMSstF7rb8IsN^jXv at -{GA)^FkY@?1X=`VTElSBnB+(o=+9pxpjwcf_^iM9T2%D4|j
z=pD|%UOk!K!i<+bhkAlTx#{@iZ>G)O=RUA`PO$y!;Nq$Pz_w>1>?g)5ns!Fgc?6{2
zRS`UeMF;M}h>J|aKN^ujuS%(w?Hpdf17VMXbmpoBVlc}N^_}xJrppMEDEWL`h?h^|
zf5+TXWk9>;(}#g`p$M7zSgmBE@?lFk1*@BQb<N9r=eR-)JHYS2DHJtZbrOYthGa(r
zuXk-is4#YoElePRddfC`4k5qeu83IDu6i|Ptg2CE11o6R1OZq>@PCBao}>iPohR2E
zetrY2aEK~2UT=kM=Qk*i`OXrQCs1+STT at VvhnrXl8nO6E;H6xz9g50}F3l?P23&?}
znZP_*3WR6cVUg9tf!@@kH#9bTuXBn$Yq<zNE!Se}lfq4+`yu2Ai8}i}h5Vv(JHmyu
z?88>e+YZ-WektER>2%wXVFv|_M at e&9C?`o(!GspGS$3zuRkJ0cf8#G792f;q=74~^
zCZny9!HsMOldT~*xi*`2V_;38ycV~*G9K(~Mi`I-?^M3+zd&47P;J$1BEyqef(j;3
zI79gc?Cu(<-&%qey6X*uEwLp0+#S4|B^8n0=ofY^%G`ItRW&0yCvkFR)DZq`H$^lk
z9?A2(!-hwgTLMLS7lc9#0|9R-PT^wM!DYb!@okHLB^qm33tAAK`0%@!`OU?4y4~sr
zEvNa2WX(Tknh(w_^h?GnzDPOgl#~l8`XH%0lBdON!!Sv>sjW1~D$fptwHlM0;p&h0
z&MoliV0 at 0yQL>mY at 70DSlJ*}#f<)wZsBZ3^$&nt$ay#B5X4?6aXb^_n3>p~{dy6BI
z_oiYZmgA#Af3^W0SSB}s5J#HZ^*+fUCnELoNm^pOq<pmLN at DWth?e_w;Jvh1fJu7#
zIhmw5`)P@>=l=>b-{HaVQ7{Dd6a^LJVLSq&3-d7sQ at GvXl)cs|dCmete*w#@uHE-L
zvlJL|E5Nvej?kp};vcOjZHbJp+V3dg7j5(N{_z4p9Ff^fuvuVYyVt^w>nK-FXzH8S
zEe*Bk;U?Yc{s#bkGr{Ybm5&dP=k~hRlod)0w at 9*<rXeU2k`osi(^~kUnjwD`G)@tC
z+o!)}K`lBQjK?A)Se&CZ22!F at kxE%kF>t at m^`Xp?wBIeXJ)mOUU*&rdZR6zSa0vDN
zp7Vb9hj5L7Z^B*^24$BQ3T1R7v#TOkHRx4ONR0kaIC9H$!CJHRcLv*ycMkZqWxYV4
ze^zW26JS7y*~v_>@i?9vQ87N<LcBRK<?={{8x(#VGQawJb4iu^?%AAf)>tLBkz3`0
zKQ<+b^YHYA&$XhVqPb5!s77LP7O++r^@nBvs7L0fSyL2#bNPcMJbgaA7N6D?#=&AT
z<R>fSrWZMq at 5I&hlgA|8VxH`WIT~(81gh`Im5ZCpq=r at b&gKzqKf{wUG2~SK-%q1a
zz*&HMDpd9)D3X#|i6a}7=hD3aG37b=y)>H7E$p$~hRi(AClQasV}Q;{YA||Nlv6)l
zyI-*1+o&q!Q<9y50ba^s)4XQm?in)tD5&*6psL^`y8CG%ztQ^Ax9J;87cozKmN@%J
z8?cq at mzC3k&KCf_1zoj;HnqhS88G5JN`Ja at 4xzxRVF_H6G&5cV`=kfOY)5P_IfFge
z-=YIv6nwonoZ8Lk7+$osYXB}ZeSdKsNk?5cncuzSFS_%Pb(cIi`~w>Cw&Czd%BhwR
zBX<9jz(sr}aMZZBO+9<jD%Z;L<~`1vz9B8`)?93IHZ#Ao4|lO(K+P>*#E_S*AorVW
zp<(Ka-QCLg+#&pVG=H7Wg`@R1LC4XkkGvYqH#GH4-N2bTXmMFZ^LI<g=;gjs);wQ&
zh`Jgf{*Tp$k!uZv=m8L}I~|bQn*u$LpD>j?${{z|cQO1QeSA<}<bb#+ncpD%07RLS
zY4V?Sz(U-8*lv9b?#DLR)E~C%mT)SqyW6(0rPNx~)M=Xcx&pq at 3jNeKF!p_9%36gQ
z1hj0h_-bPTRcj*O$-1*Lh3gbUnD|`Lg*w<85tny6$lbM@{UBVms=~Uy`u#Eg%0W6Z
zX6zUIA|SUR=_!h583&V2iR_$@4V7BQp$L?hHAsEBQq85JQvN?!5DWoG?Q}roLfa}Z
zktk1NRimb0L#jioCXY<mVay)7y9>}I at KgK!!yHJV7;xXng>?|dji4n9!Ox&&<Aiv(
zizA`!<$d7YjjlDUm9;=|R{T`5?(O${*xs;YM81LNab`~1PoN*M8C%j{pB24acW$J5
z6Z*<?Oa~gkt942UO&yT~K7Jut_Z;sKseTE<1-Z{nn*%*wAZedr4G3X at p>N}}eYp7`
zOXk%Gz*2s*1wOy|g4^cIL|NBB0BXdq0{%Unfr^p}=*G}7Wpw%43?{qaq at +eWoEjGS
zr>yF&JY%*C6bn}6BSr%?Vcdfq{56Sh$fmwh;#k!4Ba2i^_R#wahE+EOmf`yoflO%=
z%lik at FAUrqU`eo(NO}v;Pup*d&;JNLuQhSnbx=vt<*H0NItst1(Fw?nJiC?5+ERgq
zacz{WE8sk>(Bqzk^D|F(e}ef>p8j-7*Yq+SPB-96)*pVy-tw5P_WGy at FVGImi-e6R
z5Ie0NU?`e7va<VycDI?y$l48IWyW@=coG^qi6v=q_8uTF^Vc$r(XRbEPj1F+mTn{w
z_uvETcC8 at -TXAIcR`kRdLI$r(>mFEJypm&hDCQZ5u-;0z2Qm$DQqf9NG$*iroC&Xo
zkDsQRNCd5koB6Lc<uM#<DZ9B`MH+;W#cE{MLBq36>PLtrtn47J*v5xZcdQ=}Ve_^^
zP{1!M^`{4QfVy4}ylS1{G`Hm*<JsjU({VTM{+fzCjuqdR)LM&&N<^{T^SxiUJ_065
zZHF#DTQ~Q;RWfUrl>8c+G?DVm{i2A)G2r&lUU!P{51Gja_lemS#g&w<ruPiC?gm6w
zBoRHW3~=u&qfNH$;rXGH;a;gKg~crCuiuYqy&l<ho;;xt%*<<seD)QpP?+7bA?|Ps
zmBEf4Fwex!1b1GN?G!W?y^mj at -OR7!HS!hL-il`}7=a&zxhH?!DHgLr at wjDM(M_j=
z&_{_b$9VZ~N*?^28<n(oHUMz=@Z?RlzN+dK6pG2hYb%w#DT{Q(@P1ZIS${-hlMQK$
zY*N))lcGv}1~R}_W-`H!v*MN-Bh|1bc}}EMCTelksE<mq^zagSJ>FD+np_Fpc>3TU
z8g?~wc$Vq-gv1z at 9Wpi9Odg}3odF53t&woW{}Z^j{{<V=OE-VPMlY@})^OtxhEPt>
zncir&Ns#|oN9UufnrdYCg*?~Q$y%(`5#Vea*^~d9u0=Wu_6U%YdKn~Vw=MeU=EoMV
zLE5|U`cG3w8AbEn=qz at cq~J>gp7EbS7LbcJ-T_P;G=lLNx5DvEj=lS5V|1>@wD|sR
zv<g!K5UR?GLe5dcJv1A7L-ds^Z{Tl*&M)qaPCb0H>e}B+Vy`oM(zPLvXA^M_<Itqz
zM=Npl@}Q*_UK3LLj)roLu5YHW=5h=U^ak at 3=|l&53b}($y?H(3?8`az$!5u>SX)U)
z22$HrO3NIiqhrj at vfp?K^F%>NqI at uL<5FEv+gpmJm9iv2o>g<~Ja^nTH+>SE{b~>s
z<eYOyl0K7?M*9DQNPax=vq5$!U-pHFuk)mD#5=NYXgB}k2(qyFzS9~{?{>O`&enEa
z<7Qfcyk9SX7Q7W5GIwmm^TUR~58|@A{T2#4*~?(?A>-_DBPLn8KVz=<?Q!>6_VV`b
z27WGAP0<{h0hE7097!`=-a1sCI7;3y&iRMb?FSV)EM;dma7D?+PBOwt7!v at lFK;G{
z%xRQtN!P*`!s3K3&2MZqAA08uI8#9-c?S`+<mf}LMn}1%MEcjn&3JDo=c#YZbgjEd
z1AQG?2$=Q at p{!R!rUmdXgmgRc(rVl;bkloiT+T1}PIZQL7tg9QHx1|Kb&8t<z-&p2
z-7*q37@<qFof(B`qp1=k4U4>O7=jsOOSg|!%dbC*TDo0me^Ng_(5 at qFlN>84p&!oO
z+g;fk)4k6Z2q1r#$e6{5!&%D1Q~d||0+9loGAM1#BMB(TMdgbg;~kMf$~;Yg&ME5j
z!6w7ypH5p8Hsd3$i@#4|seb5%QQ~4<wBGaFr~-Y~3rK}NWlv!puyb8`OGrv?<v%*Y
zVU;$jZR7dg at 7F$`#9KJ#c;BO+x1G?Ot~FmYo;{qdAYOFbM8|(LrcDV3*YGy)Z1a$=
z#LN>ITJ2sJK5LV&(*th2TMKMn<R~~ncFtu;+)Sb(EsfdSNM3Q!r!U#^NPHLTJZxSN
z*vvQ$FPz?@WszjJHf9*?nUJk;wL2X)q%F>S*dyTD7HvDtT6obYixI0^nKD$9wq7v<
zUtLdiC%p*osF7s^xv1n>BC at 8gF3&IW(73me$&gO8bnu#=qEJYq7cJ#zF`Z4}KEW0G
zxPuH;<_$dSc1M5fw69o=j#LfaHQM^nJD?SPR3c^lJ%^kClq2k;1vThb+uq!<v3f+#
zf(i}<v#n2l$aV7ihj7*+N{J}&M4=E7cv~#UJ>>@_27Q6xsciN;Z%jTcR5DJ=>R$}o
zj at jMPejrYnMnCY}G(GfsEjdmty~Bj7>{w0>u(RiEZC|`B+75k3EfY>nTjW|ZYq_ at I
zULk5Sn6d$V*3K99BHe#0fej1T?_(M9?JAyqO#$0h6ZGwPb%WNqUlJxTq~9be(ZSJ~
zy$2Vv!A<oge=if_iRRW$C$+Yf%TfI$Vo~u9LRzyoL at Ub}ECM+jT$UP&(zq<tN-|sm
zw<Y2+_bH^!eSlzMzY8MaVBCKNfyVyHt8Va*InN9b?2@%D>Ig6F11XG5J67E*J~o)_
zs-rAyZlmInpMJ+hN-V&@M`L}o^bigTD}V6*W3}!T5|d=ZhR+QMvYNP&10Yx at m7W>1
zo0#9%i|Z(0F(vc6M}UHU0a&Vs-fSsO6p7?-GT8d-SJFDUcaeiADJsXkB6rL)vz at Ga
z8C2?@l;%jo4wHD`rX(zo at x5ZK-taA4+98vp7!FX|eX2Pc`ZpzZ2bx0X8i9WB8ypXO
zF_Qu!nm{>7{}P{OIKQcJovX<KopiB>xazypy0D!UO+<8wvJKL;jxky(8~j34kcXRD
ziVQCd--565^!Q{P=Y3<e)}?r|d{T0l(DwwV*{$${rfrNRGvSj=|Eg_1`s1eIseAu8
zwm#9^0T|qo(avZ_2GWI8quvxIyYpUt*slANrlk3vJeQe2+-z=Id9pK8;`~=%_R%j1
z<Up-2*lO?Y&^$VF0hu`%al31jc6(=BN;#}PheD(407$4=%^;c}g^7PTTmYbNa0Yq!
zLOjew$iH$+q)RojM6QfwafFaR?!#qY at C@9obwlRu(IO7I!?aNtzFVJ1jJnE-XkeYG
z*(2$%Y;6s=wi+Kg|4>@bN-MUyf{it;Qf}{kE>tx>t~CgQ4!PC}2m8pVu^L&s7#Oj<
z1H1c9A|x at R@oZhR8}&3GktNb;0Mct4@>-k#BiRIq(fx}p%BL0mq!WMi_Byi_|4X-a
zoY)_Ho4fHF#nsajNrU;?avpAfg1Df><FE~SRp*<9T)!e5MzC-m)|!Mp0Xpj)r-^KC
z)C5oLzINRU<*|#$ZDFe;H^TiNo(MA)n}Y`{$@>eKMy<|N{Uv%$i_}XEiHSu;Avfx8
ztu$sM@%u5bRDI#+xQ50DMI*Gg5;Zgf`x8^O){_jb&z{TeqDeL?pEBL?B<?nEw!;%n
zS;?nFr{FEI3aUnL4lU!B*|WqV$$KOQ{c>q3Sx4ZAJ+}NM2;ncKxah7(c-cs8`e$T#
zU*P3J&A{Mgu1CbAq63SFsEG|E+KRlUwjRgWL)COXx#=L-K>V+tf- at I$sBAbeMe2eQ
zfvql)4OV|}O98!s6oHE|u7y5euY9EUx~t?&pPpP;S;<nR?DJrE<#O%fz9HYz$_GLu
z4+Hv}>2jQRzX`431&orZ^0tsZ!ED2*-OE^9s0r!mAZRU(Bk2xG)bKK)tKP_oh7qi`
ztXM at amkXN6{<?@cQC?T!m$mb)pS!?fk~l672d|Loj{SBkC4_KC#O<_N-+|f}sRWBc
zwmdj!|Bfyf`w#O at lCMEfLIrMoR2sbVq;ZfOd;Eze-M!D6uh6R|dO;%`?SI^s5s`3(
z=a>WYCIvYl8PFUDPa7UPYrfeMp{A%t&*ES332w-L62XVLkR}b-fY0U0Hj2gf3W at og
zThj?*J37~9Ku#_hOHK-7J?;T~-zUI3Z1C3FYi)ST)n=%lZ!{{iq~YUEV>+bBQAJ#0
zoyhv4+gS^Wr7Ft52x%ZUASHr7+wg5Z{vs>XGG8f}=^c(NL7!X18AfV{q35~MQuwdX
z1OtypGPbqRv62mo9VY0W(wPiv;4&d-POOWZ1Om==<{!%uZQaLslVW&#tB$t999c|)
zGMeX{JVhxv-g8 at 46|y@#U*xLz`4+svD!DxOP17b|NIg|`z|g^HsWz{x;9kOEv|)b6
zKUAX`>4svwn5ERM|8z0M!F$%S!wpVhHCDi$j!B|V7uMST61<@(x?Uzd9C#~doc9UJ
zKn>QhA(W0OK at I<BE_o7D5-Izy&j1Qu?-%ESGnsZ>VB-9>Q)5P0$`LbCk(dm-%rJWZ
zA)T+yT5o#H(t+={+atyeqr?!)A>piu%Qu~cxO>?QU!j8tjz()NGpDRjw at r3xqz5V3
z!N-hSGzO`VJsTaP`KT{X9(<bw%0WK|(zSNdHe at KXn4FHqiXdZiw7~_X&^m#T*`D6O
z7ual#k&B%F;|xbLGk^a_>2r=KAs-ZfF03nf&YP0lh096`aQ5ZktIO8=tMoNlGwV+I
z{i6EA1~Y|yp&e}C_gY;ne5`9ukoN-JU=+VQeYT4=^o)lEmcArChDe{x5f`O&Y at Sn~
zv%AK1tSv7Fu_wG3MBG)Rf4yJ3+G79o6V;gOv+rO`U`=`yTXWWO&(4892MMQ9m{bjh
zt7mG4%-`*L5hY`-ZKp^X*lN|4B4LtJ5o;X7u-*%bc>J$9T%2w;+V`TzdBut<J*xkg
zCWzs}H1slkB_T*rh2`!4Dfa!wH!Ckc9cFMm4GK<+!nj%3&EylfnaCk?gyaH<9~lDl
zj+_~v(UUp8xy;I%sr9Yn#!PynpfG?MN2B~2(C~{4L*vhgXH$zXmyBnJGTN;C|0ng?
zC*l0B)CWdh at 8SQ;lu8Q#D)oU4<R$UOD7N7b*EikuAJ+!~1_3*wF1z_k_C{!YuF}d>
zue}RFu?j(PFG5F|NbPOw-E$c;9QqxZ?020e>mm{z4_g;Jz~UjakNgRgg%C2XMm=~C
zX{?#kYO%jg{m)X3e}#y88(E|IbH9kC6Y|=?#DBAPgfFYC_|Wm<5P>#6cV$V*00JW?
zi0EUswK~2qo at VFY#9i;$LZHPK{;D%}_&qd&3)0f~M8FGV9)&RR(e>Mjf1Mi#2^v6<
zB(t)-U`mN|$wgeCKI`a0vdua6Vu^o-3U>=e_j8Zf!ys3tB)~}|t9I6-Gb>Tl-SM+1
z^Qm^MxHvcGn1$8v`cBg>w*?gBmEjy}*rdOXwwch at 8a^}2Q|~fRsq%F_ybANQrG*xA
znYZ5}(TZj7-JBQ(cZOe<MHlp=nAJKd{;#+Q20+cvw*n<qn3%GM{FxNh?#i`O0<nZ2
zNK1RU)a*1DhTZ6h5EUL^UqjC64ekSyt*hG)MQJvCHyCaN1Z&?RaKb<dz~N>VJI&|+
z)a%w*=BBDmfT<0Jq44H3klC0Yl&ZwT+bAq*U+N!f4I_qY6t%;(!2c?(ezX8G26<Mj
zA*>9oVljy+`_@$WMUW(U6Uy!Zh=_A~;MTfwzt|!NZ?*<#R;6Jbb)~v8v{Z-Cw`=!y
z*OW11?;L at Lq`P6usF%ADkrK4D0ZZtS+D7D9lyz&yZ!c9ibLr!C%sP?oc!13jUlxnC
z*(G9xFBbHcSTLV&XYkq#-xTgB$~qVD>U~iIk6`glZLABIg4(ldIo1kw!W_u|9Ca{&
zO|VN77=uEO>j@**_^)2i&qlJ+9{0;aSEp5 at d@m8&d7D81FV9lw!g?|JWt;3H*uMsj
zQn@{8NFF!>UAs3c_N&Q5Xjs61CL7 at 997`)BTbYw~YXu;GYKLQ!7y2ia5N4e?6UUX>
zY8y|0uO%<TiCsufPd35{#{yO)=D*TC at 8|3sYvZfC-OWHNolv(%qn82O<u2WMP)uxw
z!o at A^{3BN>^PbUIOlkVTo3A`xvM=iH^R#)EIo=NI)f&2nS+jUW_`lknW=~y0H#Ps<
z5O6K>s at J=U1V>Ay2UHJ7C9ffBMf$6)6aIgw^$3z^Q}cq~K8CzAL<K>BS%u}pPLwP0
zI- at IXW9HQsrbsMyD0`t<f3bY;p{b;XOHr#V6+fGC5<EuIgv=t3pdCQ9lvYIhh#^C&
z6)f!EZX7{%I#!py?S%yT*IyB(d<@mOCl&j5iqNMD6PFqB(?_V<d2b8Ehw~+9|B3q~
zSt?2<%8LkcrbWmLIVnq<o=xYD=7)@Mst1vvQ*y(+(Y*^5w!Oy9F4v=qEmq(zRqDYK
zyn&0P1?&GU^7!(<IVWkr&%ZgRCELF_r|;<Ijh at Q>cEDh3i^;Q+EL7H7HK^yyj3QGP
z&LRD>l;pX|t=mxO*&btdz}>cdP$24?JN4pZaj4i(9 at HSw1{9;EUM`?~hgWsbOl1vm
zffueZM|3E4E1RBlk83oMf^+Tj40usWuXT81Z+ooNf(K~5W;tVspzPK6QoFW$gk6fK
ziPZ1+Y{kpYCC<9X+ErTr)+&GjSfhMRj*eGi3WVCR6bKFdd?ik0WpPhItSoyO+fkWS
z7a9U>6&T+cYc0 at ppLY20sG;L^1$6K=vp}X^iVZ!5Ml2)_YlGv6elb<-Vvi|1HuJ^R
zVEl)t-AX(?nWlB%4H-Mln%#Oy3=V-tnxy5^C_Rt)m^6PB0drNicn)%H)BD*`g-(tT
z$10p;82s<;VwM9&Cd3rj)%j_bcsU94vJkT<C*Dxd=`(FDb8wLia@$qR4FLhD<h!tI
zcrpDkd~(yx_k5e?GeRc$)qHjpk9x^@NBH?|WKD2Z_Jw?pwz_%&pZPOtn*)zbRRej-
z&K^<NUB4ju5NAckkS<eJ9M%)YgAV5_`a}P6cS&@yy8vMfCWKlbTUL^Ar()|!C2FLn
z=*qqhj)*^8An(bef;`>RNfa-|V4^GfD*VAC<uY$&q*_H2bmH;SCN?0l>1S>8rX)+w
z{&$YgV7 at Xq72t2?=QX+S6bW&O+a at B3r6tbh7Z4yXd?qek{^~VMY66&r23^yt`!=Aq
zaqLeq>}tx20WEP4J7HI4pD(Njs%~n*Kn_}a9J6cP^capvnR9BMF^7569|mciwmc)|
z7g^BBIOzV5UKnz2XUJ<*Na}Gu?^u74VD(=U4_Ps^{$it1CIn;axKP1bB-!cff<k3(
z>ZKGyv&eID2s^y_)BpkH4J1||JfNeEh$$oL65&xE4;zy{ph~w8C!lGhz>sZQ%L%YR
z!XrbN!+)r~-w|+?6`&e}6TQb&Q5I&95%Hz6IS$w>gb-;FgVd^Vr)*$m%mDgK%;cza
z?uhyjT<Ud|3m;lC%g_CWgo$q}mg%!YF3u)i7qu{v6n4xE>y-#0;gSC{L_gtNh{0)I
zZz+j*(WFt~FOMxJ!4FD07fWs?CwsKUYZ$c%O8bt9K;oQvJce{9nItO=r}rOshi;z4
znMyf%I^Gu2LR=+LB?UU2PM9pW3PxD1jrssb-J5sW5iq>s2*iJG<wjPZPXqf1Oqqdg
zBGcva7awT&c?<@QvCVV~3#REg7pUZXjj&1vd}Hl7K3MDQSdeF+%#-({iAJI=HA12_
z)*&X{^O5ma at fkmIDj;KG8KfKsd=eG!W#>eazk2LvjW6!kWT*PT#^P|IygkB1=-suj
zL=|OCd1Ge0#x{(+JoxFlU~FJY^D}d?8YVQN!Y%{)rjKh~I5uj4SHlX&_~%C?Y}nT#
zzd0B&hQGJaXWa$$1R-fN08D(iin?}bv18FfSU3fy`uE0y%6t%%`du}V;kp82Avr-|
z0SurU3T-Y(pv(>(KK?B){1f#?3gJKHhTrbP{E}TLoWn~87Hwntjf%1F_k!w{4Mc^5
zpg}gRF9^UXs1MexTn?!;kj}QEE-&rSpzf^KfN*>W at S!`{TWh)NQS~1tqR3R<K$%uh
zG23nPb9pIM;aK*%zk`6 at M`)8GOF#W<?!^Op6!i-;o<hQ`1XfnNS&*;Pafaf2NQ at Io
ztlW%!NJVgXcPx*jI*8T3LM)Mx%WOt8X+Wo^_nDx3w%zd`guw6An+7%OzlXqb=Zs1I
zBD2Mt!5On@$1*l6lQ==mXFr3^<n~M>4)X_@=Kdh)8NUDo`KoOoxy>dIEeel4$XrU*
zl;2VaGFZgSrmhf%NIEW``lcJGvX9Tsjvf|vS9u78ClGb+3f|N8y;3r||FdbG^l5#p
zNlhy)$!ER1xjhKhS{s`0=d&3*m1PIa3H0oYKgJ2=$I~q^i<Wl-Wa^BED(B7T6G})w
z^3s#R&A$0*CA*h!>esmN?KWeT#AP);b6$>0CJg6xxk@`w|JjRR09{~EX!F3L5WYjM
zYqCGhi~+RtVc5#eLb$6`RN|Y2OC%%G<8f#5C?GrI3FytH at q{IgH6^z<ng9jL1y?_l
zg+zpqQ(B##PrhKVgY!iYlljY>FE6-#v{eV)f#EBg7YhhE3q7E1{G at 9PlhOA3Fepl%
z2XW2XXQA~P?KJa at v}6Tj-P7|AvTiOA_AO$8lg0u&E!tIMTR!JS8mozQ@#96T(%+U|
zWT{V=(hcNZ$Jrua3j?~~W*Y{!w+h^{N!kA+?5(5PZq}&LmI770xI^*cS}eGhQmi<^
zDaDEt+@(Nqw-&eJ?k<7i?w+C{!676c?>Xl^^4+`c{VQw5W_~k|?Af#Dng4H1uj;nS
zH~r*)L&rK<^aXDX0|SbI`*;d)YHgKR>#Hy}Q)8Bxg4Ij1Ce}#2QWlxOL)=?DC at KG!
z*Pa>oQYTP9p at XxL?s6}|C6oWi;BxlJ>g?pMMz$qy2~`Pfx-b=>41bQ?#0&*eJ3
z at V>WSGSt{FL|y;Vj^)?D#-__ATu9?0aWoS){isB`wXmZBdt6S>lV0^%6f=KttFLIJ
z%I=S6A7yj8s1RPAS(wQVG#=N|jV8zUk!`ErQ#np5O`CWnWvVnMh<A{f-+uUrlc>3-
zHEzgAvhjRHP;uSwkXC{(fe7M%M at T$0+nxwPfs6fV`8dzQd_=g};P)SOE;!(kktE8C
z>gwu07SD(fe`^8O?q9s35W<DQU^~%j@(qgCNkU!H%PFy*j6ZmuQokMR=btX}G)+7U
zNTQ|}bbM7f at SODGQLkL4`U8nDWcnZkrn5OQTI!d#%wECYQ8#;I;3M4q8v9jyHGxz#
z?E{UVq?xqhhx`ZFh*a>s9!YdEkvVt$7mX0LlA-p3?pJ+<^u?-w8*F4ak4Uk$Rz5E%
zCV%N~F)&GvN5y|?AWZn;o-Pnr7*3t6wzB2d<>pE~_7 at c0A3nmOZmV7U%*Q%!N&@iD
z#u=<u at vuZXMP-YRjO4Tv>JyK3r_4>JUi?vz{YETd*wJM;$wEbSAS_uywemAQ`>q|v
z@}h)-OQ$GSjXz at l^FQ^$H+k+4`ry!&lzoNrga0?t(^w^@Jn3_Bt5-5oCm+n$TQFd3
zVYknuTp!La)j)=yr2KteWr+o?%^V7A=|it`hK!lROQhcEI33UyWb-O(F7|)sLYLJc
zd_`&JNd4=^!v{&MkRv`F8HILJhWge&IK_P?PMdd8&A{0-r0=2-Azsax;$bN$E39kp
zxOvvks2NO#Cp&VUVxY%lEcgIIZvH_XT<+vg$1O%cRhiX4dNH&{{RwXpudZ_(4W!RW
zM&owHx3=QO6)B~@ZR5k9)P1LORrEw@`2g^8tz#^BXy~viI=}AU`s;_pE9?K<N=7D_
zj%C*d8suE%@_;2M^PVMB3D)K$H7{GUkO=(+CuD_R|C1?5h^vn<9r<872K^L=X-#*M
zb-}FOf5<>98|t?2*I!<*!yVZ at N9%eoH1oQ3$i1B~*%YhCrZg6m at L29a6D9rs#~E1O
zin}4ohAhoi*Mtl at EVw>lt@=~;DggKm4fAlKcTD5z&bzGst(}p$lkK9Xy`brO^B@)}
z8 at 6L6_&DCZe{tpsM&DXYAw at UE8Lv?_DIwr;SPRCik3#i|MmgZJ;c+pV_Qi?3rYY}F
zstO4;xpEWfxS4t((#&)?!+_RlAn2crL1s#rCjQzC2TQKLA2VxM$7)USL7>D2eKh~{
zFO8DOuJois*%H-!@%|F=Jk`FwcJqJJ1!W_2|J*5h$gmP#68^)5 at -Z`BZEZ3+Nl76O
zhj!T}snj0?nh>m+!-h_C>f)iN9-WzWwJc1WuTgp*gP?+oggog>@{xxQlXnbx^}Un(
zCOZsww+(VEPdIn);wP8XRSaY{e_}+QE>_C(#mUG23qhd=Tt-S58Bwiy9<uN3?Xlvk
zC#QR!s|3j^E$uPnA78<27l)Lst$iIDg0PvuN*<kJ#}%qm8{jfmg+JbpeLGXVjHe96
z^aMy){)1|`(RB`V0p916@=7yX{gJRf0 at ay=@3$lRowh$#UeaPErhTrXHuvxyS7qjP
zl^VCFB-D5xZE0sBWfAi7?ov2TTIPHKFDckb>w)-h+F}(`_cVM&x71Uu!2R#M`ipL3
zv2I7KgI&MD7`oQ3H1jY-u=}fZv%Y7pTHHGMc`G2={Iy!L*m<pmrc<>Q1cK~UYWs`j
zY_QOwq8XZ=M|d0Eq?*n~UrBBYP(O46_grC?u094+(NK4XI`)S`(Z7esElk2E>*Lzc
z`F>H(oRSPFZb#?&lyXw^hi>#(+$sMYc3#HchS8;pl|6hrUOM5iw;n5^DyXtj10hi6
zcLI(~p_4wxcz>dtQu-eTnVCXAMr2u^AFn02Eskh7l4&yN{*zdgz-{7s=AkU6U1=1Z
zn at gATUFR*)Tm6Ptowu`<<|*wsJjAyHe{UneDa`-1jga{`tW!T+JLOoK`Jxh%y6mVg
zS896lN6Nji`qJ*(F#S^VngV9BC(oog<wx-xRwvdsb-61k-cF7|wCK+xXuqNJl|*8~
zvKHKQ=?RtV{-$tfo}s@%n>Tc)9EhQ=B<bYj;P~`vySD7(<=l>n!IPS^3*lLk&XN at N
za0kkr?@n7T at 0B8?FNrxfRx7Ve*Rt;M5(F?+v0DlDz`s&q2)ZNc%dj)ku*B#Q`BeQX
z><@0jSShKFrLoCNX&%YNJGH^jm=ivh)ziXubf*(Qh1iZ{F7GFPNDt!fQV>(qq4R}P
zTkp60-L;81+|PHxGqL`4uU(h65=;Z=ZT%^qMJj(>38`5Ie|$reDO&)c^}Z;<662hs
zv-8KibIw#ynU2p6bLh1wc)O{|kk!w$IyHvK;4;XGo(GD_itkF}eL1bici;(O&WJS?
z{*0 at V5obD-p#BzbqWBL{EO7l~DC_U$|3VIs*8vTx3Sy^P|6X46hZ=nIJqH6$rSU)x
zWM|Lf4 at 7l6mFjMrGYx>*qTR~-AC8u&0+sYWjNc4DTp at Y*6;b?BUh#HVUZtMex=5TV
z#nm8W7T6I$)jMEvD;6{n5za&~mZ}4vqLJIy_vy%&`rGOyaD at QR>Rw762sJz(9|eA&
zoVJ?1sTFkTPh_&(CQ`;W$~j{dz)FqWbc7@)?VY&KjFlEdG2~ziWy;9l%%|yXz1qZk
zvzl*lxqvMru)k4zIf3>DaryM9wmpLC*mUm8&-j=BY3lR#vpSzI((x1jB(ulyN$vhX
z)os4Zi>lNV#1C&ZGvtGw9)vSNZDSaR_o}6cZzteBN}TM%3||uIMRPYbv<+?PQE5JS
z>z7vLn;Q)ORjlJHd`D4JOY3KTJ~}@?f7PPxH#RjlCUEN^h?juc#KeRv<2Tns0W4Q8
ziTS;K6^j$M*HiB^5rY)vxx<m<AkJ)(oNrG?jJh)bkK!ysm|Opljh;(?(sxFq>~qI~
z%;Tw7WVp8ieG7=B<^Q~PP>61{8r<xa4=|jp63kZor<~{?3&<Z>^b<d&pZ4|l({gji
zy%#w6vKk~DZa%YaL9Ilt=}{zB#2tZkKC$=QTIT?LG(+%bw`hKpA4#p;ryfcD^wGW0
z_-RaxF`huI$z at yDmY=rv`*0UA`~=m;{h>fXUOLzYnek=3&+i&Z&t${ot-mSOzX~^H
z5~Dw?MC~YK*?SZ+eL4cInvtUs#YI+ at qE$;FPemL5sk-~CKGQ=O`Vmb#@%{P!O_pNo
zY6y8zaCU&qIpR`T?_b-T|M<>^6g^Gw`728rf#jo<Y?JGEkgD}eud}k#b<~M;QV0E(
z;!~MO+@?P<(gO;>j9g!~V&Y*>+N0??d#n2?H1#h6 at nRYYsuj4E0*Qrfbx*G2zXjFs
zk>z`@QatzV82=^;fFp+>VNek at RFI}PVE1hLjB-7Fo!V}(FYiGzo<nB^q9#oHfh()Z
zPqp>=6?^dg>C5ZY^$uC6y!OKl4!l3|RL@;Al<){iHS`A(I(<Ro?U2zM4{byHHD8&u
z)_5x0%=n#q+98m*z8gNUy!=hSC5i~$fa58ndFb}Qp(!F6LL32Ph5EwknX+G6OYwbe
znZeS(SiagxfFIyI8&Ez?fDE1)4c*b_P{VIn)~SErAm3IW?ZiYconFiXx2IJBT0-d1
zmibufui^vI<V+n$Hfmq`Bi#Y4-FJ~TTu8lHs;PMtY?XZ=|KL*bXR0tm3!%Q9uGWVd
zwgXC?ZzWVFBxegsM`PZU_x4NJBbD;B=@FC|1yTBX!=Uz{qBbehHvH5mB0|cb)lx}w
zTZ-dc4aK~k*Q+-MGWcmxWW6n*BwLT0ez2$kfKiV at 38Au&ZD2$j|GMZrF`;~y*_i~7
zbO3#R)lVpiyVOTi<!0%d(0W>OrIc<-P`Jo%Kt1q_ARQ}0v;k-)=@?B_Z3!2j$VGZ>
z%I~s$$O_~TNN<?V+Q0T0DRW+-K#aNHd`V1R!XqVJJH4^SK<JqvzSnpk0W9T<Dp<l_
ziOr8YXk2UO?Icp}kr0;MLLKg}Dv$mcQPj)l>Zg48b&mLWXED=pGrHsu4e8|HQ~kBg
z2UT??{r1bVPo`y^?}|;su{3q9v-nd_jCkkx4Fsq$uKJ at M7_$BJ>ZdRrso_ at c*zz6F
zQ0-M1H|FM&GwfdadfubMT_<$VE)#jyh}dEIBhuHkaeog=AMZ>Do6daB8;;DU)O+$P
z4`2Qxy3|arc0xVc+wWsTLtTyQzL5k>A5MSaFRT#UHEMSzh*byp&7u1e|BRjV_2KL>
z!*Nyr-eGNs`$efjEcGk5$ptw at SoL*(5$t at rvv-=4L&hy`mMMe5ior;?>3K)BxNf at Z
zHf`*hl_%?;$GMOQq%L8a3$x2>h~`i!1a^r#A8J(~dJ#BMW?@j3n6fD|shCPHlHllb
z at iIw~6<8bbR5kMxWU!cJ_Tsc%PbRobdRtU!)o7Our*g3EE;JX~$F<@Db*SF2!oa30
zw(v6QpJ^0e!@NJvM!1aKY&Blb$5>!3K{~iL_ku>|lW1L^RKg$3_#DUr?7-5HZwu8}
zL8>B`9cmD|4Zscv|4OT|{>UA48mZ{b$4byTq^!NT7UF>f>ef5&Iv~>r#=rSw00ziw
z9lF~%-PrJ*2iULHRewVLM;xcSetO)L*;U=tsgBFfx{0Djy_iKb9xh?i2J>_KCI8|B
zR^|q0&llc7eT_;woZtCjWp~2aJ^0!M#SvST3pzi<Ya#VM4hV4P;EY;jZsNM#xVJ}p
z=i0Sy4JvTcjH=&?+9y2d9FYmTo1Q^9-tA*8ub<sK7#4Q>*)JHfWtnqCH at q3u*$#bF
zRob+MYT$gU<@s=$3@<ud4i^LOHOvaFxQ|2=-K#r1kU=1d5#P*IIf^XrdVaxF@}q7a
znOQ{fGi6}9^6J_h%KNILR>TXmY#bmv-sJ-sP2=T-_&QsjfSjSN<ZySSWGrSiAXv8v
zHe$$rc3HxScBo2b6nk@}CB3OFjjFTGIc3vfJUh=Bs<1{}TA{p5Q0`}b(HeV5!pgVT
zB+ahnz{Kho4r1<{_APEi9U~>4_v#4vJRp)B1xwrJ)w;Kutu=#P*VJ`gFp*cTfyh4%
z=|HD1<WI*xcn-CmXx-Y*BCpOn`4ESR)z<>8zVn?)<C&pMDMhB+J)}(z`+HT$UYcnv
zzU}R8ZpW=YR-U~Zq}q}zbAdD+jYSvVT{<&gN~dvOP#dPk3pdvQVx>IpuUkn?hZXCa
zZNB=a;~{1BFKGNeoL8!HNP>kIt;-Wn2nJ#6+qhwtaPK at FGzb#@!WS&nq0WJza$RxL
zp_($u>gl1gU2T!A`a|~%e2mSqjaEr)WWwfAxy?o08z#He-8}hcd1T$9SRHWn(!lZ7
z`VTxKCHB at D56R!k#_`UFrz0+cl8`*i=r{v(Jk5AqJ6LtbU8m8O<9 at 5HPr|I$nEL_A
zv*NRwF!a1$tpFu<5SjI4w;FRY`df_j@|>gAGCt_{g|1OOYL?S52=d8XdjY6%zYv`K
zd6~y8Mx1S|!07(TaoE-6(l at 9F+8F8V?6%FpI`w+#<(&=@JwT91`ulNs{W}ao$dvVh
zOSy_}sOsEG7?XVmMw$6aX{Miyl>wIzx~bH{-Ldxff^fDa^$w-`kL?HJ0J(ufF28bV
zyV*))$0gADe(QMMbpMCEBMOQP=WZvse2h{Wy|hQ<`@SbQr_BDygj%hKtGsHt8gIH<
z)BV$Op}2xrsrlwus){<lzuCG&UJtL3tzk}n=lnYAMJ0&G<dO)Q^WT>D0|@RwwdT<F
z`)Yx6!L3b<N42P%ZRqdiPssG0TWSbUD!7)&8YN|&f~f4$0yTCN(PPZs`K=xhmxJ(~
zrOZeku4V*z#tW)m$)jAW{Vqo4Jv-DJk+lz1f?j?d55n1=D`TQr>sCLs^6exOk$P+@
zi at G8GJh%PKWwDx6_Cpr9TA>@@D^3kj73+AhM|e^2p)9$5qDI%n7_r6WdHbd==6Si_
zku-K=#}@Q=bkaMoC_i)Wa`#oo!=|>m%DUziAms3!-%|Zy$o2KJSLsenxfK}!oV-3j
zbp%2j#9n;+;mo8r^rxTS^S5s<4rX5tQhC|R`g<~C6oko02wMjt2=gxSbXvQqgDs!q
zrHU|-af)&fcYKr}WZZ+xR#S3Sxj)^^o9Ku{2(dKM<fn%<BG2Ene5Z~cgI^Yb0SCHv
z%2?{S^GcbP7t<bx8CVJ<;1c%?mp-V506j+oyXmg!9!CAvdA?B>`BuBtyJ6+qjf(}b
z?;j}XCMp}L6SKwjd^LAxR6lq>0vcR9yceq>Z?I*R at kW)w;33pooG-N%s9_$EH81Y7
zl|2%t(dU0fLZj8_oc6%+&J=kTu<}EJ7fSUx3i&KA_Kqc%pB;7WyFpLI(zKaa2qSP-
z15?&Ji8RKuqU)PY^Dlu_m}g^25-LkMeD2~?AZ#O2Krk^eGiM4-`u&?VNc}tAThGsv
z^RdLFkJM57ht?T0ovz|=ndG+50-*{SM(gV*a+}HXj>}@In>Y~no;JZxKlsjUMESPS
zDHvS$IuId8!AgR<>l>V+gU*B7n9m=j^IvhpZ8v;IzTA%Mi%|1c=0rF1?jT}FWBSZV
z&6aj4R(35PKp4OS*3M4Vc^SRfWWQ$no|rr|)9dNnuA{b3;|5<pU{F7&hr`##RKy6i
zv+a1^l(XIU_zA9Ls<e;HFmY1bamYfvL6js(pr!Y3`{L2O0+v)%pFA_Zt`XdZCz;8(
zCTdsNhRyEcp6O}i-iPkCFb<eq>Q#D}mGzvGD2E3YtvK(AMEr`AW$RMs_(&jU&D1EN
z*8!cNZ7YK{4>s+nm60FXNpiJ`{=N;c at BNmP-`yvK%2<wvN at vo7L0~>BvR0}pCr}?9
zb!dcaF}2;tSzAc9?J}#a#Q0<oz&$S>mKm=U#l$jz;Y%*4OwQX|PkZ0GE&7IUOcXdj
z4pgGcPC8bdyR0UU+>5>%v)U^ksjh14r at FR#og)UmSWFCQf}G$~n~qI3os`VOuJkMV
z^{-;O&YL;Gsn<Ree)TcoJxNU>!B57!$=$0fzmC{wc~i%6Go!BgMfu#@AgD9^d5 at Ni
z4iAi+{2 at Kv?CqNkb5iK=&l}Bszh}|C3|oM6_c8Z5mhP6mb+6<7m7UDe)2oT=-!2HB
zU*#i_S^V8sei!=H0Un?ZNA~2RkuU6S7(Tq(x2JnfLt(xInT_h-;h#Zn0MfH3;)baR
zIu1NkZu>dGtzQMNppn~Ns2}oihB<Z<lDZE#Pcn`JyumN1`JhGFOYzoi3?}k!5FQU@
zgOt=(6nE~YvaTMLS62?@Gd~x+`m<caQMqeTWgb1~jGV}+eECb?=#Jc34fmW72T;Pa
z5S%fe0Z0vN%|A~ji0S3US8VpsTxc?8HPT^MOKxD`Ygzr6Dg1 at PlZxmuRBM&4tjYH|
zu<4TjZTpeHtGC<2^c_epNP9Ve2TH_ne7VG$vU?K~V+e^}$A$G;w7w`np?UM62yG$F
zp&4OY(mA4I4NVOOkq&cB&Sn-`cc4|1>rKP;lk-DOgLQA9kkY+|cfjQ|#LWCy1%(h#
z6Ui(xnd1S+8=cSHEAjvxI?q)2Qi>*>oLe?Ri=J+zx!>RX*<$#liJq~;uad^oZ^opO
z9$d_fasyzT*q0s%eDYL46z}f}D#LC?`kPMMn4jnRpIHv&OeXgEpASDZ`wGobKHXcc
zmw4OybG*F`FRwE5fW_Vy3cYSY at vS(ii=LqVuz|9RP1KEiCHu{{*7B}1gwS^it{H|n
zV^=5Vq#c(hc2k|#Br=_lwL*70lS3nChYGTjkTWSHyKkd7Icti;MXQ^=w4~9S+&t4*
z+VT1-yPFy&z+3onN=A;659i<*1H1moQ at HOK%A96=)lwyG-}me2ErTp6$;8iSgzmI$
zrH*fHaBu~EEKAID^WC9$3bAKl3 at E9L3)S2!mNUndtr4}%^x$L4owQ#&S6nyAtJmf>
z;-<vFke}n;{y2<8W<8 at 27<hh>WRjb#ES_g_KQyCy=dij7;K=CqYe<GMBS|yVt;uT`
z5+1V_+A0hT-zCnD&Z9f)FXfpS$jzinBqF4v2jMZUH_aXvIh<P>tXBip4w^BZzx4g~
zGzRpNg)>S@&GNB;{g`B90>pSZ#ILJD723r~#9(q%DYvcKsM2*eC>{uOQ|XFdua~@?
z*<EO+`LuL{A^wgQk6|1~exMv$W#{cs4!U3+)yoNr!j)SqwrrzrKy635neE?|=+v+h
z3;KCuF>>mJ{_GT9x)V6TB68Yk(0J#>;}n~a7N}+29+%CyoqC3qyk`)8u{?dcmK0{P
zS+g%xw()qS3dAD-^`L?p%~PoQ at eobN*s?H#jCSKjT|nh-+C<=;@j*Ol2SnuDc3Ly<
z>5O0e*V{a{2|9h-qJ#<ERC9ULWq6iClCOJ*>w`=|KPrnFYf!KGV}6m92r?mZituGD
z{{>*7`9i>8`ohWk-L7V$sMxDzj7q!CKSAu!mGJEouP4yo;=k{DTa8d~V#zjG{ADNN
z5JtPYmg|*J)M|b?{;@@Usonn=`Dv;B6)M3^Ifp7B>ae4yAqS_cWxlfKLQxm)y(^5^
zUa=Os>a_OYK#I9g!O=q*jKc7{4<oU)&3Z3utE at qC1*q2+bh{%MsmMue1RpI~#MPgL
zfuV&D=L2q+($28Hg=cNoUfq}V<la$@F9&!dVAiQ?fHEcW4nJ=;Bpxw5rk^A>MUQ*T
z**tR`q&#pFwNmQa!Sj-Qy;X1qiAuQC_b?M`-oYCkZboNWW}<iKKTG|p#ad&2BvdNw
z*BX^SzQ!r;CE^Qn!~c-MgXRqR-p8-&zL^YrGPzT9MYG>);^8*nc)hot1Udcgj=jZn
zPf3w3Pj8npYC(!BCNg97_ESnhH$Op8*PK57kd_>nn6WMoF<b9yj!60W_3DMKLq<dt
z<Dp|OfM}z?()p`Fq?7Fmjq?PoQ=K&IsMjxuK~*ez$7-y5$j>MAYS7ALDq6p-c~Nz5
z?|oXvOHccO=b(;Gt9*;cw0`SVVwB1ipQB}gs)N647~g=?xm4$ZSJ?`n6RH?Z$f(wR
zt<3cbmgKdC*AXLDKbJRBU#zdtio4hig?-B*rf%Wpa{$61c7>z-CvR_%oB?`EPBJ++
zjW5>k;B6X?@5?4VeC{~$>hBDrND#CFF~U*<B7B14RNwg(NwpxIqw$V{_xiS9wjTKE
zR`N-ouOr`J3H?P=Vd$v7*4c-X-lMRHrp?Esy)mJiY5RjFhlK{2;`&QA<ebM0L+{qY
zE81(@K<SK^gL{~Bgs?`lB8uaz_(r6aF9p2)t*)7wd32JRj}YG#BUseOD;aQA0S&gZ
znK#k?g1sbL=;_^ZZL}N<V5$JexgP52Hg at z>0Ykhk{?MmRHCrd0p$@9S4T7CM^r6FK
zr;95iT<#mxabga%a>Lukq&%oJAzucJcTTnHJ<-K;%)<)-GnD<z(TRe+;X}0mIt?mz
z)&y5>{R*3(uHOix)DI4Joqmz+UF1|BsWzFUj4mHTXgm+~w<;U+=C{`AYq%)oDSSxR
ze32}+-g^d7-jayZ6rb33f#<Ef&Q-9^&X=QS)u{$><_g52>gn&flnIs=bj61ZB~kH`
zddSt}n*p)GU1aTU3%$()l5MuIN;+JgiVO`I7`qCQfrZ!y?T)C`7A~B2Cp0<F5s9|J
z8DAHa_i6;xA6 at qWx9iV}HfuPixhtgc);d6Z$dqih`Cw)l*>kB6xAx|iE^Y{IWRIB!
zb;^cS43!v{&#lY((V_;T2Q|s-E`RatKyUy-ix-O-pnq!cKFRpYSp6h(GWC^aijuqc
zHxX)`V2#Q)Lu7V)l;tFuDD1<F7b2Y91b$=PC*`Xid%b2~hZR at LY;woo&lcOaMYj at 7
zAC+`7kQ?jTPn|X0MMj?PrQqad$i(H`$4C}X``6?a0j2K+?1X6qIY~h`c%R8QU;Yp>
z$gj&2xsIC(G at 4leOuIIM1xF<4LRTC+pqvE?dWKPW(g<1q3+3I%Fs(Q^7Oy#Ac?_)5
zOIA&=D=T#0FdbLRNDzV-#Ep$Zqm}M3uuh`Lx>7GGj*7 at A-1`B7xfuv=s_zuEp}%UQ
zU^mAzs2&-#JiMxT@{uYGi;ZVus=Cu4o2lh6_h}V>2W5vm8wHEuK{Ke!v*>jI;=z at E
zo5iKc=;v{n)5Ior5M-gAt{?`@s^kJ+k0Zm?5f0tJud7eVCmt at R_oVP)RO(;LTv5*-
z)`rv-!W;d0{k1DQC>ASSCC;08V{y}hegV-82N;a&(Z?O_?$F9SPS*S!qI#}!A_+_*
zzi!#h(|l1Tax(SGvqN*Z7<uQlaB~qspc(|EqszUHRM2hP31hA0B#rqs@^Z2o>LJrF
zL*v|jgv$Y<nD)I1^|lZv?j0Q2hN(}U;msup2q6tl)7nA|^DVf2z7C at 9(A<fA*#d at X
zyb(P_nG2r^Tb4L|NeK5l>1-E5A{`gcxj&;OgjUXGdP&w)>`fwb*X6mv%kR7L<L;}S
zw1mHls`>KiWJhK~{q3y;2fsWg%QX{u9FY;{Owa}3-MpcWPSm8Lm25l!W2n2H*^`CB
zdl`-4!}ry6EWd3U4VHf6uZkyN_p-twf{A=+rI|$5Sadjd($?P(vZ*+6 at 23Mtu(i?Y
zl=U|Tc*B&r(v4<OyZoQoKV*iD)y&4T0;m$8pO6b36=rNAdkFm=IH61H5t at ZJb<edo
z^)}x2wmCumGxmb$4-6Ix3DjLf^&gg+dd^~)VKJ5zP4Q9=ne>gv=5q6YYXQvZ01Y at x
z0 at 1Q-4F$A- at d2<QPmu-E{L5Wu{G~I3dlWH_|BA%vJ0wpH&v5d|a$7ZlAPgqWo!ovA
z3#mPp7T0HlWF|3;hekpz3sZ(L+Hn~`U4=Uo<~Gznok_%v8X}dx`B3aMNFG$=zCdl?
z#X38AuaAFbZOwD4=(ACfdNX(OC1P4NKPG8}*r+?zclMk~2k~c?gg2iwRP~<89yx0b
z4|<uM0rkV%YP8B0dVOfo!ElZsJ%uyoQ!=$KWM*vfvhCWufb5k<i7HHQL2EuL?DCLy
zzT1LkBt!D1H?2I89Tsfv;`jVNL*~PvVHW)*9=ieSX0T5`qAA){Bk*yOC>6&AaRy6g
zNlD&zC{oAEn@(Dkk1i8tHu|)I^j(ojKbkJk-{-52EOmQk0$M+D4rFzLFyPbZ<?kHZ
z79PK9_2A}c at 5>?YOlXGjrjei9I at l-P2(-7>Qyh0Z^~~x4emlI5Sk*dJtvr`DG(!*l
z#X`~RWV at OfSrf0>c0RaHU%f>^FNWF_y_oA%_cM%0bY;-q6TFXBoJY0U<#=_>^YClW
z>1-uyb6<UWPQ>k))ecG*(by|X^kh+*Lst|<Ie`+R4nK`1+wSxYwJ;o?ffOCGRu}=^
z1i;PVI|#HPD_}v$4{O13IwG7fBs0-F at f>%(w8?j8Yx}0Q+M{T+g`L_&aq*XeHSoKA
z(c1Tya_7aVokq)B<mUjtdziK32}izTs~XaZk;$}cGNBsT`bvhdu`A;GMGfh<%Mf-h
zq?NqMHvByw4Dpp7PUlJg36Uz2k+wc^VLH6dtpXWJt5z^f4-at8kqf<6C1c9T7j>{7
zT91IN6juRXNX70#;h*SNJWMzqlwYS64spB4g-O8j at Z{lZHI5jm(L!P_tGSm=u-)I`
zs+$5XF9Z}c#)WNk&DZ1*PwBaBwI9z72~X<=f>Ber at 8)~9yd63;FMvd$s(p47KP0Jq
z+Y$~ib2+Fx+_qzHsTPH7OHv3q+tt1~=FzoxB_fugNt-Roy?knQq&R?6vQQwX5j_w2
zM$T4sG at W;_Qza)OSRPqJR75!f;l2_BC456FgeE8>_mkgIit6q0-(pGVHy3lunW$6F
zl~i<SGhQ?kt`|7F+s4m}5vB~q<mK*?varnjNbC-Vzw*B)YPT=-7QL5ZG4kc*dsz at n
zOf4*act!1l at pW#!`Z5u)eOkyv{4)OZDCg5gwjicN!&H?xh?q|PQfl)`(Sv+&n+zl;
zf5PQe0)li%6`7oD<K#BJ#cZ|6CA0-#>fDgbS*rGQSvvhnjAS(#lB3<>gng>^TWy^;
zon0X2LP3sCul0F;)O_^{i1-7ZZ80_Zyomg2?cDsf74Ne;N9R%EMWI(l0|_5~YP$#N
z!28(MC!jmDZwXw`HRx$$G-qzF)zxM$3jT`WQ6g~6D|%$N-b>YZ%FM6#zQ~o>o55I@
zv+=@9 at l2$~JS2RuF{dLWT&Q_L3B`lHwh#&h28u4eX8tg8al64Ll-j1FIlvrfHa5lp
z(?rOQ0sJDAtM9xP_m7qhi0FVNkglAexrro?BQ+3}GTMy!Vis!>&n?>FT`yZV0|r$t
z^4bwGUzwCO7EUCju2l2VLqyGfGx+vOpLp4P)NKc6;8 at w2n;u3+advc9BjPMai2CVZ
znNRprzfCl(-<J-5!o7F}w#L!8DqJr=Fh*&*&GmdLKQ9(l<)`~$*C0ddPqMph*eehl
z`T!+PXpgO+;nFedxN?%mLLaCl#-|<A?1O#Se0B#Z9^n4b=PB&LZ^&jp4>T*+Z^@7%
z<v6-lX!Dfp6363K*+^Do?<Bh_o5W9puC0kzVxHgyaaJ>t2J+lo`fACqn|Uvc;sv~;
zDsiL6 at uTSD+CB_OkZ~pm>=a^d?Rwt}AisgO5s^&Q>`9WlLIiyXIzP5b3!L at w`G_2x
zSjya*_-E%7J29JiF_{sC at Ulg$!`;AjAFfY6DK9c-wB67E3GZIVlo=qDK5hDrTLJNN
z+UKuyyNh*>80 at oekScVQD5@ay#C}yOA9J+yJ~@xp)c!U$R>(&g3Z3!Zg{#i^+*oL2
z=4DF3u9qkGlx3Ph+C40RZoK==GYU@;H``8pZFdTP&JW9h2}|<Y*VJL2kb%{3(ZVP3
zo%i_iQB5x>MZnqwV=5)<e7Rj28LQX{f|?4Ce#_ihSa(&tP6PVrJ at efX%4Rnpc!5hF
z%@ck)#~DZbrqh2p;rrkKv2S!Gs_r>7SymCXra(_$PqLa0Z&t0;syk-rU~zv1e&>Ly
z#l?g5UZwh#r={t=>0mhYpJ7YUZ;a4>KlmrciM#niUPlDf+_>Dy>%euQlOCo_42(A0
z<Ltky9WPHsVUT-g#OI*+J3wD~iM;q(Avvkg4Qe>8uGwDn at yTXJ+Xuu)#7HmDmU-bC
z?IhOu;gStB>v4d*-+eOZ4GAvQE%{9#-C9tx%unM{XNTF5t9E`}0`B6FYfHyn(dZ4)
z)y;7+(9&;Z?wYY(Ccg;P{J66M-~3n4mYD<!;1-b)_bI`1it~Qp5w_)ItNqxMUylbz
zl)$><-;gAS*Rn$t!q5gLZhj*Ks+lg6>pZ8)MdGa+c$-o;t^eoEVHlknob85np3}N)
zP;D at 8mWjuRN4^DR{^pZU8)Y1iJNN}pKa$=t#K5n~_hcpUTg}{Y6-?xIbM`YC9Jn;?
z`~x75sOQ5cx1f?k*iw92Yei2RRJ{<8{bn)oEwYbkw^YWVv<}F#mY=X&80qJ8mu0Z-
z8Ic3OZ7>u_K~(2)+TsI^?@gbB$9rpWGDAeh|9me*t at tOjx?%saPzCD|?N(Z3B%A$M
z`56nfnet#2_kghX8D09%8!C3Z-)c$~yBEZ at RZ`)EW$jQf36i*;bwfVX8=2)AVB$3Q
zQ35c3yl*o^ohIOWXePh~d_!Kd++9aBH|-Z at d`0QoydjR<`=$4jFvg7?kBzv#Va+D0
z)Y{yk at 8?jS>6OM(Y`gr?0t=8}9$b;R)9;Sxi`X9bkCjkZxJ6tt&kYXbY7|urajwwb
zs9VniyF$XxZiUwxjjRjnWH^>g;>n}b2ff4 at H33EaGTzAdexpKV1eVB$<!?6EizlcX
zez}HNE}l}-xlt6rfC)a?>HF-8vrU4Cu2c0AIAtqDB)0IH>B{;$ixp14%D7L+R$*`T
zX}53F*3pM14>=};k-cQ{V8h_}*Oy~W=SH?HrFE$AO%2$7w7kjaPGmK*PtdVH?<GQz
zrY>H)5tsg5djD|G<QMd{)K-jyfvBE3jhH_7#`f>qyYeJKoJN6WNGHq>%`UG$P&xC?
zB{uYiY!jJij&FaxNdRu10SrTMcFFx(bE3M|Igf+n#r48yQ{GChP(S at S-{&aQ3?bCX
zB96hEM-ZaYU0;6?cYVFKa}tv&e0N1;`ELB+7IH9Y5cqa${0+>V`KJ5PAulNBr!#Co
z^;)Q8J31#(*&v|lamsd#p>J46`=E(b<4+G2s)l)_Zl?hnOf{$FS<1 at Y3vn-xHx;O}
zPBohQO20GKOrAs5QBhYeU%&2cp%NzPE-(_L7PK+kAi&=8A}cf})Y<o*#Zpzw8V7~<
z`=cp?qB`Uc+nP+Wu`?`6P3Y|QwJ5I at AKg1jS=sw>8=y?7$nn&q(3$W-Hl0JNv2=Vs
z`%;fBNSDvo^CC<LUYkbZylaq%BToF>yAOlXaldB}1|iVjhIEpJO;_HAW#;`+j%boB
z_ANkFp~B~2$cmUmFSENxgO at IuQ`=6Y`X$5IPj4aAP!n&5XWM2l2hdEQbf3V&(}eW_
z<8uVY{WcHuMkJY^_=)J-0?F^rYG^*4)EvZs95-vG6{eW5zN at RjDqzmEqots=pM`+%
ztM*rr-vE8 at GJ+GM)92s+(E2oA_ZN?2|2kd7F&B&mZs`s8r}zxii=la3YrelbL`%Hr
z>^V#D_3;LPv=G6_LFeN4N!#n<J9jvKO>={l^$0TUJ0 at yjN9duK8ooW*64CaK?k;rT
zckhOqx4`eg93%mIHH5b|bR&5^s;AjGWAm~$M#fQj?Dwy=l{OvkiHr=&J|gSJG~1un
zK9qnZX47{p70(;D&i88=6{?7Mqyzo8xh~JxCeLOZJ-(Q|qsl@)wT-{-V<XlV@@sod
zdv^IHtx=F7M8n+BL&I$nAHDLU$u5HMalx7a{KYo6+X?z8Rh+*fFY<eDyya#|%sefK
z7BWDR$(!VCW^UoL|H1Bnf1q(c&f2fbQg>z+6?Bc0wpYn5=EwcXTLJO0qqnc|dGw~4
z18qx!-}m-`Oru?jcQJ^aO18SRB4xj`Bb+S1IP|qOvb(dfrq3<q)zCL4L%Uj#{aR<a
zVftPli?u at 2Thgqrvu)%BNknUfj|SKE8_mBigv at s&mR5?wCvRCH<De`Sn=U?GtMSZX
zkQn$bUed;F=bd3YQejS+1%4N(0uS-j{vtZnaMI)Xe5jVE*_qSE8f?14<AY{&J&tC;
z?aM=CAKRsm(3Y<#zaRc{Jw%|8y!&JS$9 at yrA$C+^J!B_Gb-*E~lhE)@>i2j~|MAiE
zz(cF(fp_kcI8T-D!S at YKkC7Dn%U<Q>1%q2!pbn8zsHUjU(Ys97gU<$hEd)eh%7jb6
zyWvibp=%qICw3;ZUq$u2!hzmP+h|=c6fu2)aqCcmkjwwE|GBO4+;N5b0`0A`LnP at -
z6r+u98Myv!3nz!yS29bLqc`*A<W+C2sy3LUDbfPmsSKik-ziBBI-HQ6;y>h`TV!`z
z8X08|@{TtW{ORTq%lr}@AN?#l)284(ha)j(NM0faj!`J+V?~?tu2&k9wo;7AI~EJi
zVnq1p=xAq5T2rrA3S$m!`)8%sa!6p at 6`L1w%D1)8{XGT<{(C10+qW=49O!eQW#F+H
z;<U{1YmVq<J~P|*);j8XQO41{rA8?B2d*BVYNwZS0p94FddKj!Kc{0LD#2?QJ*LZV
zH~GFe!R7W&*{11s#c-DLW#EYS(n%JaW9luR-PGcf%!`G<brBWj!B*-WTA0S-MR<Hw
zT&-v<Nz`|7T6{Crt>a?w?e87pNHO6gv#_^h&+V3IT+3E`e{;yae@}`{Jt3FvH!9&G
z#pc~<$=d*tF at Z#)!c at Qe5fWcH1SJ15n=CMU!?SZKA7Gp1#8e(KB-|Jw(a?55quN1O
zR7hyrh4(vFUnh|L(1KXv$P@*GP5xP9N5e36XbV2pO|w{F0Zi=EA6FPAv2=U9)>GCO
zaofxLCF(F+=*j{g*;b>0s;@ND1MP$4jk`8J4UK{2G(ZmfWX&PdML>eZ=vYI-ZhC>z
z*M|Z_IQ8i=x%x#Uwo9MB^{kkl19BPQHMO|Y<qUHpXQtKFaewBS<b2QZ=>sItdC<dF
z5#6DuGS%;wUd#iIZ5S?(muN-AYWQ7Kk6s<GWOIt(h)VjIKRi8}%?{|d&SK$bpVZ7q
zQQ-+Aj)gSR5N6gyeSa!oaBi-;OPp02{#GP<ga`CpE#2bUG;$x1)hZCD?bi<;t1xC8
ze`mLt8a8J~XHoS2lg!PezKeMsf-72tI_bXFH|O#1YI`jKY#ZXpx!=1FROp_<Vj{zK
zzZkwB+O*&8g+qjEnZ^7^^ZQ%D6z-u*H~L!~CETc&6Lkf3^o{5v=1gN3)Y<eoio5tu
zeLpORz+>_Wd%vrUvdi8Q8y at FyEJ99+Oe5QTS*%3#&QC%s>_$$v3XZEiW>8;y<FfFG
zsUz0z)9KjjA5Fr)CA at B~s!!siPTTLVA?WL$Yt+7jvia1CEsfuNy_O)=hlTyI{9P?c
z)g7L+y0;cKLjM$=&U3lmtUQf7;22naL<IhxwKV>2u=VNvA8K9rLcsN)94zKD>GCK1
zw_n5F=(!o;*wDv3vL!g$#lp>6lKYk;AK_a)s<w!cJQ$qbM>wov`GAhAL0uc at H=9x=
zb?mLtHPby=`t>>2(^kq#JC4}hoC2ljWxHQi8u+EBo-L9lv(+BGp>*^hIEttIoh6bV
zW3RG{mo0SzUX~dUQFZeK at 5n^~jHYCgU=EDX)8mzQWEtw<kC{M&0Kgr<TSB=U??}`y
z at o8)13o!TTkfp*nvlPKi0qnN^ofg93u(QbIcbe+fR4;?K-5mO12LUja;PWyEww+$m
zkgpZNYx5N2u+gVmYf7h!>}?{xcFU7jk!_TDkDXpJXuF*^f+=>dS&;X4gY>N*5e8##
zlumUzIjF;?1?R&Zz}H^Rtaak&#{`ip_&2clA4zH5+|1=pNMV$a->oAD_-4weV^4 at q
z_*1sc+kxBP1x~_vaBPh%^2MR??c_oLYJ?sm1*sCN^_odq?O?g?lYKQ9kOkmCP7&TJ
z13_?6_xH6#I-D`QGLFB<XbyW%c%aqa9zWUIq1fJ~xW5z_dUt?`Oui`ADkC91l)90$
zd85~u<SOm!B8SpKIj|rn3+xixnDo3==N4RaRlk!gi1J;fkF1Qu(#TRZ;sGNfIAm=J
z_LVy*E3W5&P(8(a!ztgWI#s{5YB3y at 47ofT2+5lf;bF+t1wstvytGCW15Hf)2E?%q
z!NRwlLb)IeP&Vs7BS!T}4^0;p at IHP9%!m8dbc`fuQ~BDMQz(0+F!LeH*Q-xi3=m6d
zsa|8MlVy!<g;j5H)Kv70pHg$jf at TV}-Uz$coQMUHt(Rha@@=DHaMaZiG7-S`I|Guu
zT_0`*>n-vbWg8~dyF`jIs=c+byE1wn*l6Ilm0 at xwywxQV>tv`9clLX`k*Zql)*S|T
zKX>(=ayO0 at q%RR*fG;%o6f9&J;Rl8y at Mw`~Z#&7RVKH&5Ast&~it7bl$5%<q-%Dze
z`-k){?*}OAVg;LAV)-k%q$)r>RDBLMTfaQGO at u2bmwva}e!ZVPl$RO(;__$Wv0;l#
zTs^(|T$d>)2|KP?YD`3&O|tXH0e?PV_OZiy$GwX+iz2pwV%VO2Hq~fZW};I{ygN=y
z%ieI9h|JM2TXA3J%*zby2!Bmr6j0-1J-{fcQ}FTr*XIgsjPVi`0XtsQd&Uc at 41q+D
z!UUTw-h3kovKEh9?#L)&ra+CHgdTGFBJnf*PSs>>l*~xaq#TFQ7G)b*u#09=V#IBm
z-QjU)aI#7zwn!3o&+Ju&IPKMQ?M`oq`ij@`Dl at ew3rFiw%IDrY7}f&d=MwRqU-`wu
zl`-5YjsVS5wnZez3F3IYi+oca at r8(k8i2+CXZZ868nA-6`FRIKy2osvH9Ty07X?=x
z4&vM+Z1e%g2y)B&h@@qC7`}`Z?3n&lz?Wv<W5kx)XxiC}fl;4FR at 8uCRjZ@f3#f54
z&=y3MKBRoXYr)IZgiHb_EWVNgg{4R`JIwMH$3#Y+p-q0ifu&;R at 7$zPyDQ&3Tioal
zB6pPlbH+uB!#KHAveXmO at c;0~CuWXvQv1H>cg&V9C=%>mj%ckP`nkIh+txqr81$62
z>7xF9Npi|?8P^oAyV>2P3cl^Yr at j~$(}UYv<XWUR=|#s_EYHnuN2vaua$V+2rHc#t
zyru29MuNDkv at nN`o6wk#p||DwJ`JN(mkoYpsNQZ))<SY5>{8i9#dfXk<zX`COOX5p
z(rVl9>jRZmS^X!Y9wS2_S+kt|LKk3*z&^RY{|IxKg}!>b_?2+3a-G9HI(bA`{erBQ
zKXgcN?hKL at SEDkV9o>BhE!Mc3M0hf+zWb$J5cI=a0X_fe<CON38uxVplf%ms@=p}_
zC;AerI9PYZQYy)zoFggA=XgT<J4Tz4Dqo(>kOp|G*2;6<NXAnnzj`d)g}XqGt~BB_
zp)rR`1*q%O7QM$!z{tlEEnT5&G=D~d7V1xH{Lhz<?&xnlOGQ4pPSyF>ec(!q|N8^u
zXEOwk#d-DC>s${%-Kc5L-+mI=xQ*tfxu8B4+W5%#KFpgTf#IPkF7$u2$c0Wu7I2H1
z|4NRS!yufL*RrXQ4=hyn^ND)4ITwaSciTbOlVV}RU(<h>{U$Ak|MRm~0YMR6$?W=7
zpC{=~q03?FT!k-)-DmU5ER=$dOS~&TOFzx8Czaf0TQj9;3!MDHq?LhpSDRU>U-jQl
z($y{1g(Y{BeXbWz9 at z{_9hsl%>mY_g{S%q;9B7<=X*ILmNuD-H-v*J$i9G+i+Z(Ym
z#?yr=9*`{ewk$QwJTKTQYcAZ`wyFET5#%!k{sm1v?cNgTLpey`yc>3D_I>gGj~<6C
z^1lZVpocDCzY^}g?$fBmbs#ED7F8B_)3Q<Mm_F4qQ<5<D at E?aWjtYvZ3M~CQtKJG1
z6ExnBfBny>VZTA^Hg<WaZtrn-+_-9`Fq>(dS-_p5J}dI0uHrFE^o$kYs$W7(w}8K1
zHml{&?99Mp&RYL-e`$M4vVV8u3;LHAa#>aihh*B;M+Gjx>R%cncQsiMw+;B_D=Uzz
zupUwV<`Q?>e<t_A1|*&ZV37-GHmg8SqIgIw#A5?t$$L+}7&R2~%ocrTOwrcO`qP1)
z&+ocHwgb1P1otMD7?kJ_di*_j|D1YB|87fDQ`3Ilyv;zhwFVr9=(5C818Y~O<l6TM
zBW1QZ)`kv?Hu8MA6^$oBm^RrnyNeBM({0Mb)c7TB2CB!gT=P+Uf1A*&0BPKSgFw{|
zcTIP>C*!eS{Bsknjt79OI7}MBn(}A-led3zJ04rxQO*;UmpUpfX2bJ6iw#Cn0dLf;
zt at mk7ib$>hW8PsLXsfO6m2l$JFC!yqp^?>mW9mv0iQ0Mu3a*nSCBCw{GAbgTc=4=!
zZ0>R_8t)u#*eacnC3L&>nLO|l$uw}%yyz1P_`S5|NLkr9a)k%}<;fwBwNVM!Kxys2
z9EAk!DgI-uBLgKPoTVO0&fh7|p;U>ys+3grX<!BIFtD<eu)VJ9g;s at 6F;;n5TNRb6
zVd0Mz;yGLwfj(>&5sO%Djoc4h%>y-~vy(OTbU2vlWOb|->lN5%Z#6PjHWGQnf`2KL
z>eF%!{I}OU3HB#{Qmq^vWN?7#MfOU)@Tu!??P!7ChtlKchYWlC7$XMF at L9FStOJ)X
ziGnf`WJeOwFEBx#xq1~B2B26b4_o=erroz at rd=gY;M94~@<aIOA+4?K#Q*(lPaX at 7
znV`t#XJkm%n|4Q^TG;D%^E7gR1e+}?GTV|dcJC4^xoMKJX5n3SUdK at bpMNNjag=oH
zjkPhdYbZ6tH<?GC=VRvV)cYOqj_2<#VY)Jxaj3;8+MPRJ{?}}Ub_GaFY~vlPZIh&Y
zkx-;e(kOJ&-h)?kfDOqiGI<yetfz$2anxtE^a?V$EeIuPG|VK(CRUfrv;D~>YS{VT
z>Qq>u>m0_;8*6~nRo*(ECECO)z5|J^@XV@#d6fSX@{FHRD4?&ThTpe<q7w|j3vxK%
zB&ON6gR;@2$R#SDnKx#u_vvJ;G+NT63vu(0#&=f<)S8ut&uG4qd4DllHX{WUbPFfi
z<Wk|-DWB!1>*Ne4-QeH-$A%wEZ*<Z8fQ4Tc!lKo|q}!jf+xC)LEOuC|)Qv`1Ue2kB
zJ%9m%LmTxqJB^XcZvvVUrCHNlSSNvPHhdt)Bn*~-DMQtUK_~4(3%bkr%Y87*bPKqZ
zPqSXhN87UPzg_q#+T-ZRx=Le%*P}KPih7je4R!CgnNu*A&9jFKO1D!qlbb#D8dO~z
z(A3EWyDAEI4$wh+X$nDY;6Nudu(;yt4~-flr(?D3#HSaF*?URfis{t;uh1OeKOnZ$
zNRDHz>)KraR=hB#)UG(L_SrSmOE4HwNYklo&?L at cwVPq0vDmiXD9mc+5irWi1{*46
z`&VN<I8ifZ&f9rW*VH-=&@6rBW$c$$aI1x+;T}8b-@)r)V!r;s`)WphdAv9LG{(4U
zxD9Mzn1oSMCT%n_%&R4TKLvLBZA1C12ySe&>oswUp6{huAt~`>#rWe{xs*}N!@KBm
zhZ+NI8GMgsA0-GUa+kaZfwkmH!;%y9c>Wz)9;U^ZzRM$2ahq1KQj&foiOCi8tH`N<
zl}XD-TQ2*rNdy*JaLmFne`4XqPI)}I3J)2g!~knH!Q2S+D-RTyZ-)W0lP|&iF*E%r
z$wDuOZ>TKF^Zh6<%f<i0kh`M8>a?SyzvPk`uoiIKZ2YuCztA)y(DG6!DN;P-f`aSY
zjOu97roK{6abaQVp6sn|j3*^PB�AiBWLloB_#np)=5_Bmut7PqYDax9JxO=i2{o
z*8KKpn}jhs!obLkj(vJVeb+v_jcUdn^xH-x|Gm<^fklUa*z7vf(#MA+GQ05sRKWL9
zbzoQP6D5O(y{R#2VzuhrJdfab%a;WBgHOM${oiaV=g%F at C@7vA#T}c>Rw?|~f4|i>
zDw!+6NwRF~6MnB0)TZ4eNd4DHF$)g8T>81Ir2D}L2d(c`vQ)D0wbq-YYK{bQV^-Bt
zpJwlmz%vd8hyUsQlL-F-ex*f0&~G*%rNyfPi(B`Tw0RoM5;l#sf*sIj^@k`MRM!Ci
zfuy>5Kov)^lG%k{LG1LiPW*|9KRz3m*fsB#%TqGWo;f3#EK0|3)0r&Rk`x=H3Vm2+
zc~av44Rc85Pn{n<dU2&FBdPgUYUm1(k=Q0HIMN5Hi_I_&D6&4ZH)FOYR$K}CMV at a@
zZcn=Gd<NF2h~N>#II~}*^8WSMn%{3cJF6+ckgJligu8-cL=(vJcw$52$$N0B=7%-A
zm|fcxo?pFf at SYRAs1_c0df;WrO7VX?>K*yxXoouLJ;SuU2fOSxi`6z<WziB--(7vM
zR<(irnem&Pr9w6h at nY)HyoOG*@z5_=3iXY`AIUx%8W#<~@=3XP)CQz2?2VSyV)>Z0
z9*C)YQ60gd$e{#lzjSS}|8=K{1>A|$a7_X;y59+3)@EII?cd!Pul<4~m#id}U`Z;i
zVk&wO#MU?qK6_=QFd=bZ<8)X?#iE+27^I5z#_-)p+B|aghvpL%JK&wB&zu$|d*0~(
zWV`6+j|X@>Cn~-^I4U at G@OMJdXc8NBqK%kZ<umVLUh6b<U<-t4BrWl_S=jqTMS{#W
zIg6*uS!BLVy)o*7pZYsK4P!F*#>}H6Py+<>C#y#DYp>n>MDDoI?e?CDu;f;rZLGgQ
z?7xtu5bm?jqC1zeY2YBy3qGT%M;fk)n7gB8?@JEmLjF$|=N^@Gw#D%vHExR4*jQpd
zdMRjnGsPw!`RZYf389E+AVpqYS8FVC!1Vg4u_-lEq_AS}f$|Wr@)3xZSy^bKP9R3s
z<Sm>T47*`e+GB?9x--H3{dv}J{nj~W at BR7iz0X;{%Lqe|e6IG*!q=}GRsvD*n_vSO
zIul6GTC*5JRwN_T0i?(derboW2sY3T?nJ2Cof$rpj~W^LY|cv?O#s=2eB3R{S1?Sq
zz8YSY;u&X;+~AMS=WFhk=+(r9sEjn2_C0<i%)U|cz7 at 8oG-MP!t^QU6#@u$%7FIFU
zBN4)$SKOR8!#&U>{Mf?lP|`m4gxXvNW)k+G)Y=;s{0&fkp7oQH-tF%}#|M&9?$^=b
zV=WcbhxqM#b;+A3NNs at l$&{(Y$4?9MmXO=4>Xu9ZV=zr&X{Q)K9-v;e1Dz;}sqf(T
z!pu-2SFO1pL21qC+y#>gmObPA<@x{h_TJdSpt2@!uRsJRuT?tf_B+`Fbx(VfhQpL*
zQR^?j;>Fbr6 at 7N>VPRWShbA8EjK<8555UM#Kz^^t;mqKnQWm{^@E*-e7b^6;kum{C
zKoZiTpq(~4^v=D=ux~Xc5kI5qV(9KD9k>&wv?g;2qlVU{`%d*JV%Fhnx^sNrct`U$
zPS03BLC=!#E_(WoY;O at gBz3==%lss^Tn{<s$M>url~l~7)i7%}Qa>khmY|J|CPIt|
z%fD_6m)3nNxRCtR2eUo1QK}5(8tq-CKH<VwHf3b`X*YRmJjHb((IuNjf*2Nsqe{i6
zuR^wnSxQeuoQToE&k~ohVDb4BeKQ-gvn<$JAD&obJE1kVri-PV6v`O<iT!CQULqqj
z6ZeS)*o(7F`^LRTcJ$G=^ez8YSfug?TPD%c&^g)eF?wi`f!gE4%}kI=C%cQ09Md)%
zA3g^nKi}eBtURyHsW~%xlO`88bn&yXmD&Q9!VD9KYDl at Pa<#uV_`W}wc)fpVg{AIj
z(EH8!ZSqQ+o<4awRi913x(tO`Xr0ZyOb|&T1P2(OW5iN at E&ODItRM8!3R9ru`$g;^
z*@Ab-$9zAGYJ)!RpQ-2DTJRyUtHzjUUe2*K%~b<=xAv+84a`8a93}Be^xcEqwSgT(
zNiWDAI{KA|25z(cAGdk$S?|h{GxRuvsqHKS;~MzFK#`~S2Vl6Y9p?8Js%0;xq3&Z^
z4^&5;gZ=y{Hl at D8q8nyG!v at U=b3)bTNoSC8l7^gn)e56RDJI(ZPq{syJePcWfcCfs
zh7c*m%^S{&vXM>Zcuw2+kZ~59KFfvQh=;8528UYivivG8*H-g-Ouer|WLcDlESg6R
zCA?OvXp|1>aUQnl7z2 at y#)a>}8&TLw#oRhacGoOHp6>d*KWpP1@$}}AZbjyh=lo8i
z2DEY5v0vO0$O;qvLU%K4$<&PS0z}O at odN%sbCm-CU}s!<a#Qj^NQOIqGyT=@(R_i}
z{TZkK at wk-K-R&ITtwR5>mVe?dcpmNFeKotAOgb_>pAyLqwx8)~GmvnHMWd}3tbqV7
zDRiiYx4WuGl&Dc~zj)mWu&NDQL*uf9Ve*Wt8>13T)X>4;#=52(UqGb2_)5}o0w=Ft
z#~XD-vBiV>k}R^94!>STZ?~151 at 1+J2$#Y8n=!5x7!InlLdBwD*CRGn`@dNWek(_W
zTP|ZdcTPvP7v6&`br6chnU*aS`{&Z{&~nV^f2jW?um!|Lx67ihMz4ojw9#KLKmL?f
zCC}`gn=s|&i at D`N#?xN#OE~Tc_jxI2a}lX#oZCZDpwM$l9%1HaU!NnPJfbk>U_pAj
zI>(y1&!g<9CwCWjD- at cSElD_zKPJ+W@mnewSgO>NU;j=SC+dFjG?B73_=a6c-`wPb
zl-7!ljC78eWaB;y9E)m!*A8aJU~wk;$Tve#f@?$J4Z61<bt^TmH3z|qr>dHr%_a1<
zd*0{|Jf%XZL*nFjt;3T%2(lw`2;7d+YGFib%Fjnji1!KMjZ`c=oWE{#UJ|<RZgE)l
zV?B-97vQMf-a2lwUPj0fyW$w)@MD7tCm*;{kTrWS41X=}9n)8qbMEwq?l{8{p|8<_
z&9a|KE6tI_VUd_Ad03j(CPRo?V`qT8xXKKar5>xkv<|vxvi)O09k?e>lrq|ywDU`_
z54t;y!?qmkN?Uwz5~7W5;@pY|*Ow1={gU$YWvbboNlGpsKLCJ*3)Vu-$?D2^lCP22
zWfyDbK!+(<8)gImH4fhcPEFNgE+*1*WT!rSS$6s52S}w~G#!)>nVuZwB%%FBh at KM5
z%w>Od8!Ss79$O*^I_N|^x@!(z!`NjUicZdo^afD2lD^>hWjIPs;c<tlzui7*y~l53
zRw8MIFjD%miw=4GB;0T$4<Ljj_j at FveIK2Dawx-~2wi at _8v4Dlyu_IO@Y@>kbkW!n
zu#SNQqO>QvL5YtH&jOw}t=eY=z_*uHB4xZ_(2u>KSe&~vGui-&>j41OglhIiE5u)4
zd~oqsV*mm1WPhllFof(q<J$OL+^zlA=2TZi6CF4AVLx@@CY%=eUbzlm;pg*ND2lvR
z0ZU_fSj_mpkN^q}p?mee2H2l{utmT#<^4;q+_VZGOYzZvqR_rE>h|u=L!nj^;w at Q8
z08my#oPuvzy<X(C8t7X2aryQ~KR&P?-geCLjdJq(!KKz_EGPq|M$Zvf(8EdA!;mGw
a- at Sfw-PsTk4lA8!d3J0~+#-!76#oH^`Z|ID
literal 0
HcmV?d00001
diff --git a/clang/docs/analyzer/images/scan_build_cmd.png b/clang/docs/analyzer/images/scan_build_cmd.png
new file mode 100644
index 0000000000000000000000000000000000000000..464fd4e129a2088c150577a8fd52cc302bb90ee1
GIT binary patch
literal 29669
zcmX`Rb980F(mov9$;7rZu`#iYi8-<D6Wg|J`y?}&*miPa+s-$?d++=Gv3K|0U0q%E
ztXj2J*He+oic-i3_y}NNV8}Ak;;LX^;Cuh(D{wIX?+uLJ1p~vWwh|LlmJt&pRd#kT
zx3c{O2IdKV;ccOgrLb)0retP5!i&mlK}ny)9<iTOEG|P%USOtNgbS8PNh{42P(%qI
z1TMjvObJID6huzyi!9VT-M*xMRqykqZ?oij!RvOauCT1^R{;b^<GsShzyN~;g9z>y
zn|$CHZF7G#+aLfVW5F<jB(x_sCc`&3ABq?U(1E1T3`>yY&IhWZ<2u-?m1g`OoT7I-
zzY@*>C-=kh1W`zEU}j;sxW4|T(?sW=1X35<6gy-)5!01K=R0R%En-w~*r=@>%c9p}
zVAquS`tmo{u-#WCYyXxHu}>kv&M<bB++FT|d?%Q6IPVQE^>8c+N5#lT&V)>39+_u>
zV<j^+S`+~G3xJ{3i1-Q!{uO`#N9%_Kvw?wup|~LDe-dAzpu{?12<id<ngWVhmv{o9
zMI>;*qM`tHy}@95)jx*lK9;FtVy0!0MK*^4cAyE5E1H3O$_ZUXcWy%QIVdppF5rg(
z8kin4Sf6uSJNH;yJ0KM at z#CRXDnLrya=(s6<Vqb^1Z*Jyya9swH*82CR04FA$hQhe
zA|p5yFgYXGoIu!X=s;2|LU7h?C}|ixQiA<p2uFDJfa(GijzHZ4WY-{r?{Hzi5wBrl
zf~~%zrv0X02_S`oO(f-ufZh#)B4w3^Q4LxkB^rTa3qL2-8X-UkAuqtC1(ywXE<{wO
zbA`4J&?!KvAi)nZ_^~%b*n(91_q%)uo)OAVu(XhG#%?QUZ2?5a4m?mo2sFRTcU&Cl
z^dLb2>pS4jyaF)Oe;Ka1q5 at 3B6ID!TB~qxzpniqliiQ at LC|6dnS70n~sxwr<J|J;M
z>4?-8&RXhl;OG$6#w<zb7H!V_ImUJ6dll%y at FUs`^^YPJV=3Zh6-OeF#4V1P{rl6j
z=lf2ExIA$g;e5==5R$2oQLnMePZ&mFcT`PSo7jgxlE(85&@1 at o`sb$SJdX at 0p{4`y
zJ1I^>JQjLz%-|l_9?%}JPq^HHx_|a=&OPaRsJHL|a3s;wgIc=|dn9|p+W_SRT2ERm
z+8A0rI&#`MI$2tKWhB)YHD8(pxE`oq{op}3WMK(%9kR!yJ(P?Xtm2AA0<#gvKLjKv
zD3;K=BOM|^(v%p&RwScYSmLr|sY&+9VKVu2jVWfb-(=;+NXOL2*v7cV(o at FODe1}R
z73gWIXsZOOysN;g at T@bkqIE*oviMT?lDopX^1Y*Aigt=rN*hZfOGb;WO1$LnBGW_|
z<g4Y*WU at tcW!Hc3OLj{P%e1FY1u|#V1=OWpa&9VlYkL3k=6|((g?Qz^cR1n3<H1|N
z)x%Z%p2E6ekzqc-8ucBY6^6~6or|^C=>5;YP)q!1DqUb at lvRLLVrHBdYBSND(;?fT
z!J!wnHMSQvf7%}70pkZ_zV?ZB>d#zlOzmpz at SlCnPEA&gL?+|r-Gf|Xalg`y+RfsP
zSu9A*zJ~rx6%L~Rb_&~L9!8 at 1R!&~dV8Lg>e&oZ<n9h+ds70<tw9H_S)ehCp<N at J9
z^kl=9#i-y;TAq+SS}XuXEJ2K#$C$^J$7>*Ips<Cu72N~bW8(|qi|tGEeEPC=m;9{p
z{P8?}^K at H}aE<sAff9}bQ66Cq-WnkcAq^1)u`pymv?pW=;Q_uDJ{o}^E+4y>riZeh
z!GtP_e2)HBCPjBak3*(K!u3at+=L#Z_IcY%5l?+bt7n&I_j6Q8L`buEo_OB?iwv)f
z at Tke?k*YWyawUbTo2uH}`P|{0)m-kJ4ci=>5L>#L!I<j!>G;ri+X(Y`<e1mUw^3k1
zdD?QiFdc~c%P;;uPt1q;3Qx^QtwD7}6IXqJ-kN at hzKy<)ev}rPUV~wh_KvQb-ca4Y
zxWC4vGO7AjJXLj3np2_GfyKT4aVrF<|5o64`nLPndbO^qrWUQyUEbCT`1<VlAUYM%
z7yBrA^+S#c%ag1c3ZRymS7(=U`57%Uu34>Yqn<6bF83DoNJC_m>zIq3tDx_;Nx2Cw
zNH2&8MD#9x^?mh!eR!>gse++FdPS;4szpLXrim4gMImU#g*5fsv)$98Hp4VbmP~e2
zQ<zsPV?l8wy5^nnH2Nz)%s77j at Z&T12dwVo>>=y~;zT)<8KVi~D-#~0K9da-K<7l~
zKqpo^T31T<Y4!U`$2!M~?JE8{_R7>M-73{Ou;Hj3wf)Myz~kD{(pj8WhbN7{j>n4s
zfPa#Qfv=pm&k5Zl(hbk~zzx~s!o}1L(b2}E+~vvH;ephv!&~oZz=zM9%iFl;9C!+x
z-E!Z05V9ok$%iqlsV{a&CJD`t22F~kgbSdyzRbV9y?MYkz=l90!Q4U*LG{8VA<4qy
zqiVuWA$}4T;i%#_Ijy`piqWzz at VBtXP%zTl^61eEQ226*G89pou+K5y9-_ZekVz3s
zMM{)POcF2h>JTGKbxXFB?D4t3uXJYsSwmR~hKb at pk-y?&BmHpNS?YM~`L{TG&!9k&
zC78`L$cjsp%2XkgNHp}62GSey&I+fB*s at d7pGhW}b4g>F-sEo7lRUMoxpacmer#gG
z#g|xrD^1I(mCo|(rp=~eCUd6PM!OOxGjmgb8K$}Oc?>z($=!KJnNP<tyP0#oCjR1|
z&)R>Rxu+7Rf91S6ZGF7&A=2Z}BOW7|AYvofAza~%V(E8DcX{6L+BRx9JyB)KQBf^W
z4a*6o@};1pRi<d9H>Z}T*J}}0dHSqAJL{I39hA~%RV8aMX!X?fbXj}0*6LJs)r2)t
zx0>(iT(_dOF0}@`y`5#9g`Tl+&2W`)*m4ou=h!)0<J)st+V|Bt0v}<%V*9gQx##VF
zw8w4f*x%S>TDCg)xvw8Te(+m+*tg2GYk&^=bbaF=3=H at +d~{&DDC$gs>`gA63=KAQ
z>)k%Lz2hGqg6 at J8Ky0AWoBSK`Bf+DvXTei}hls`YXTg%uve;yJZafFEo6wT)#)J5o
z%u~Xn@|7B}{9_s^UyzWCh}hfy#&<vTBD$SoiXxc>XfOpt at NIqP+kJS=?r5)Que_?*
zIsjVu848RE>j+Y_yW8m5^;q<Knt0CnJKz2-L^UigD&IMY!F$at(hgjGjh7|qK8!h%
zJk&or!Xd|Q6D|dqzv^|-_O9GYyp7K!?aggC4`@BxEOEy<EHXqf2v%cPV}gSF96oqj
zhk7+X)LxE)-MSy*2~@J5ClUL^{WrJR*1X$^?zwTEvk~7Xp+65H04{-joxeeP+YZdv
zPkP%||K|Vx96<o4p+EBw-vx1=zn=6+2bdP at xN$_tv{u#$0_ruul-IyTgrUID9{}s0
z*-|gLc3 at bd2p4E_mLkE|sFK^bmVrhi5Z2;~uPzDAZ;~wxVK~h}M1PRCrD*-pI%UFX
zyDMI-5RRXZ>sc=?bd2fD*!K$deFt)<Ob3UjzBC*3R at Br*Y}Ls%qIA1dG?naal{&~(
zD#d at rTMrBAx01Ob#*#5nTqx>W0YxEG3fooM;hU|l1Ji;nT}-1H$7z;axenVZ-H9Hn
z;{+6krqG!!^w&4Gd_?jD46L`fgaUg<{UyRrKlmZ at pyHsJVCsp&#AJ+Xb|BE360N0>
ziq7L+CEiHpV~yiqoO`(27 at 4WJK11eY+Mp7yS#PXVrJPM=e_1=}{CMq*2~rC!A7`^^
z)@gooHrQ7@^5bvL5(Yd at c1j)bvuw~>(%aHj0e@<3c%Deg=vry52H%!{qez!xu&6q$
z^X+|Y^=>skSX*9WaRcF35R_)iXMfbwY|!?4-7Oi7uP=qJ6WC#S;9VuIOYoWTFLohy
z+g<rQi9eP-e0wqkeCL at F`uX_%GjY$fl;&OuJKQ at DTYz7n<}T;tWh0uOB9mp)aI|lz
z$N%MUZT;Cp^J-9PwwProF4iU9L*7$SRi4Y&F{59BQ=xlOdAeni_;uvA(Sg}FPe8cA
zaUT;@9-dEu&5P6B`^>`1*viPy>;R~JHh;GBqVmu%e;D;Rx^fY=^>?jptnIARsPlWp
zYn$p-X&-C{0=qw5MF=w}&Q*m6;JiehjL15$s6x6zYlQLG<AL$raSnx^;u$oFbbggx
zR?n77^Lu!6nLL?S4SbEoJk}kyBkBUVzN`@BLB;)@Mb0Li7z;_Cs;Fj^X3hJWPb+jS
z3^(+{l`$6@>skem`X2?7rH5T at fm2?aGJa&iMt|{(c`=35!XbIh{b0EnLztLqcWcM(
zyzMN`RZx23subO)jF~IzB<$TTbBX`vk at Tbi+x;rvc~Icr#$hd?vS7WS!^2C6nBnXY
z2#^5yPV8(?5rC9Wl^sjp`}amE*4SZ0Q_Q`fT_Q!?Jari~rG42VxgjctGG7IK>1<g*
z{>|<}@%(0HdvjGYq6?dg(!N9v{MZxknfKI9&joZg#F=O{d3ChrU|M>OY>h0_IOA9?
zJtH$o1xF=Yhlx99Q&-dBP3r^SrT0hJ_7J<m<mBIFEeE!(BpX%-<j!2L@=Ck?OG$n}
zxRr&xmfe#lYGpbwzK~?O?{j<n_x*NvxLCY5G01ODK>eZRT6 at WH_pSoRpMr~})o>Je
z=r88keCvL$|Ma$@QqH>5xOj6Jc`h at IN>0+N<fd3Yl`%Cp-TVIYy9M{OfN)d7$LKNp
z;oauoUqh(g80KG0)hsMz)ehaFKRY{5KXYH-a!E9W&6nr==|46MzItTd51QS4bnV|p
z9&<Mz!oksZ5`P8Y^|NUPIz<pT2U{D%xre@~R8?rUP``eo#%2i49d6xLQh`Dvj65uX
zOwm-oT#&N7wah-ro2_SKW2<CaZzi;0GU=WanrQsp`6rfw{Vw9V>N at kf8x9Iy5|Ikg
zB3ciP3B4MtkKRe+HcCCzHB!FUwn?w02SiK&Z6_f^CHbpBpqi~<t)bn~Fl%l0qxbX>
z|BW-W6}Q#jO6g2srgm|BKAy{wZNp)}B8D at M9gm|{!k;}6R)4~csf01JR#{VSNy(0R
zU2?^0Wqu`|pM#H at N1G3k=gZaWSmzx3u<q#3W#j(pp4%4xjMQfOsK=lBJLTR!!{1vX
zs at wAgYJc8>`@+--+u#O6wh->%El{rFdGP75dA%uVWVx;Hj$@A#OihLlO|0W!hsTCK
zW6q+4{rXQz21X6x<1rAEA(9tWE7XS62<9;6?byWG{d2v&yU6c;rg^nlqR=1d+uIm?
zX3o4rS{zI{<qYS4xf>T5RWwvroR~;B?UeQ;#mwzD4czWW#f-0}zGz5jRn>86wJ!^F
zaT#>$#akKKq*$|AK8m|%Hf3+Nm+8o~|GHdh&F#_kxl({FQ>z*;<p1z at nSK)z?K_8T
z53~s;h;Jbt7VH$ff5H1|SiXzGF*IE3 at xC5<z8HIZY)p&HtPF1Uy#tR9 at 0F-qzo_|g
z5b`_94A1~0CD|FM%?C5`{}w=~79xZS9gqnYfJX(EHU{QTgS5?14Tg~XHhmWiZCs}i
zz#Rc?fiBsF(*w%@cQ%1oDPo?$f(4r!d|F^&iKG*3Wn}yl(>RV|$2NrJGL!~AErX~u
zq)9Zi_*Qwc!gzt3gF*-0E?y{(SxQ(0Fz85X>wtTRaY%MZqls%1tnjDJ=*W?fhh2~D
zlDU5)Y7cnx>sbW>1pzjSJc<>9<WKyJ$g|7>`5^|4^jrz$9D%IW7{?eLJ#rOB6_d5r
zsR2HG7JEwoSBQJiRMI6nkjsz%uR)lmq{fgtwP2aWgyIC^$W=z#1AV_mTocLB_RjGR
z(st3F_1+^Hdy<c5zZbM8&5QR-Hk2&%d}tiPTf|C)b+k-$GF1cyh>E5JrX>4Ulo{qe
z#6j(21^qQW29{QeWGbx2C7Jxzx?l7gnVTjuy239eOgo%h<xNW9-K!gnVAxeGm;6tK
zCqhRqIldL6&!MCxSrFgoVeduEW*g+H%HPptUQp>@w^99>zw^!gHfvH7+;jEA`E;Z_
z4Kx`{l<(I at 8AhJI1LG8PDppd$gouJuIQ)2kmw)9JYc|s{>$T{Zt$8Nx2i{b#(ie>*
zYZeadHof!S1${ovMBM}BNoTtbp<bEK*OgktcBU(~mUy?;2eYSPlrRCIM~+>usd0XX
zt at t8pq_Qd@YJgBT{*9Xd$HCCi<Z>T<yR63(Dz(|w_ci at 5mjdv63WN~O2yBc%4z$=m
z#^Tz_D4U^@1ymVecYm!LhzR3qJ~^Mk1%gG3JylL=anuQ`a2Er!#9hHeEyY4UgrhG-
z0Dl}!QOF6um?j|7V!pqYH#{|F^FVJH>k(aI8ekcp+FVCtv0)`*dBEd_M6yu&QqrTT
zMLNhNm6*-pma-jak7>{|RAF0lonkH^ax8J^x7 at a9xDvX)+;iOHAyI}QNzxDbQZtv~
zoBulW$A(R#TH at dmYV$ddJJ%&F&Ed;&(aYS3+9=*fBKFE--9i$w`22wA4^j_e5H0Ta
zBVU$?9#9>mpc0@&m93PM8@(Q58&Me%yA^))RmsqLuiz-}sc34#X^xjru<h&WstxNq
zgs+9TkjxG5ntx3I=WdGb#4FFzV<%!2BS~TRXyvhZnaHv<H6i$wZkd0iyyrQ6l6zOi
zkenUWT`g61q+jnvf at 0{>cQ2+7u3Vrqlem4DP^xTfmQNq+=@-I0c5JD7|1;+8hQvvm
zCPcA~W{vtoo=#p(A)hBTvy=PGMNuYCLFjDt<jxJcQ9^UDiAudx_gjA|vzBwUk9DE<
z<WR_AVYVt$r^j};6u+asg*Vo#B&;(@Cz6xkx-aY9>F4^|>{8 at bWn;WHVm(fDnt7j)
zA-t~so0Ff%2Q*r%EEX-e-!^6ur%C`}q31Ch2OQI1#%uo-*r_1h9Xc#zS>$g4T at l_f
zVTpa$r1#(MVJW-sf9nnT4#*n)ZSZi!&Ec)Xdiqu$%rXEd{$5x?h6ev5<Y)jmU_<Gy
zid~c$QNB?WC8dsj!ZE?|s|BN_*45kf>KK(B4Ud`q^t->=n6c)sJY(Kr>j4<D=|X7~
zi8#(Fe!bz&)=}|WxM?Z_fRNg!AH;1?k!VkU4mn{_j)~r`C`M8ey(-L{I~!S3rE}`-
zrcW6byzK25F at 0#2 at Z(Em>_1 at SZ9-2)x-1?Bk-cN}VwM$}Cqhu$v~jiLbYa(RSE+bs
zc++?oI+41(Ivjk`ysO`QujQW75i^j+;8cVJh}?xlX`DGvWn0vcUOgppjNf-hH^g5`
zJm}!9-cNw#@9cEV)-LxhG*bh42Yen!K^lLYRm>Y#O6yeHn_{EhWkahhwEV2UFEcNU
zE~0Y1a at Oik_tE*E`B%?hq_)NQ^k1Oz`E at xxF?gfifA}g3SiZyg`#ME at Slu)n-#wz|
zYdtU5I(&fCVwYmq<$Yh#csMytS=af7zdN)gTvtB2T<y-YOs9LNJNQn1VmFZYHZ|zH
z>wmp1lT_Le+B^uC`fJwT)#Et)CfFi?%udRt%T at w3e%-!meA)Pon^n8%I`Vs1d;n}3
z-1A5R3ceAd5z2Bc&24==e_dkWq6HrJxFZrdQ$a&#Tv~Q#Bs>k1ddx#g15H7<uJc@?
z)+pjGl6&9Ge%-92M2171pYEZNNKf*sFB3LW_>nayI8G8x1Q}f=II at oe&KqZYbw-*|
zXP3c`W3)1+ at _DGjH;~Yg at e4%H6$;T0HQ^4W9HoAigrWplp$UAuu(7&}pN=X|e-w7d
zeMID5iJT62pO-kgD7U#@C&9i)<yy;xWW%lrI4=hOjVMkU#lnIXV%Z-Ph&=<-^&7eI
znY2wf4df1Qw!CQ-DX!BWAe`~Tk#vp%HxeVp=vMe6_7ipd>eEcz5IZL3(PBb)2|)1-
zt~9V0zlj{#G2h1C{T-(-`77>v*pz1La%GNl&SfqeU><-iK3?=hnz=93g0F*@Fe`7#
zMH-kU#ZbsO^EO*0oy~U3RGu&*1nAvUeE&^-HFEbyN~6Z_s}uGTp!3CE{uKlF9`Ilf
z)h8?zFTDABZvhkG at 2rIxv0)V;u~bRx1nYKGKX|q9)g9s^abXD^sOdN|t1L_ca%_Sr
z%DTs(A%OCdj!OPj`m5y67ud=u@^$Lj+|j at 4J-nl|whI^-BIf^lz`?R|aKXSx!DPgL
zsQ)Y9`@sgNFFt%`3N`y_8(Ga|GZx@}vk|AjZV;DHSg05nNXjtbur~2eQ|DwobU24c
z?{4J&Zo*N4D<|DhSU at V_z4>eWeByHAefr6K>U?uJdv)~}j`@zBr^}dNd(YKmufwI^
z6Yxlu5~D;0T^R}sTtejE;7$Z_slVLPRs%;15fwmQ at NW<i8U5J@`@fH<-^`LCqn<b<
zV0H%o|1P$rtN)7r6KaS?S7zH9gcZrw`ahj1F%SIzPtku=oSQ)Pba#9(TWt+i%F!>$
ze*53Kyb!)}m-Ze?b=BSH$r$I%U!OLx|FP-V9nKYJcS?>;bN9j><Z;pPAEP#50(~iu
zdr0>bNey$;F1Y|OYbyV7fR8AUD64G>)_Lof*#<boCGC!Ti(WZEw?*_n%UFRZ6f-LQ
zc3PeK5)=HnG3!72I}<FKS&4*hb(H_>P=PL40^-dfh8TZ#iU&U4k#zs+2&Zn|e0wSI
zM$xT8>AzB>eP|<*^0CYo(bH)b8ja1;o#UfCuozR~S()!aPP#7`u&a4Ln{!V8hg&ys
zAeYSiv59VD<}Le6ZB=(xN_R at kI;jawkn1h{(8cIDHp4 at u`hOui&VyTtoVU;RS={Q0
zxzU#y(H9-c74Of4(|9LWn904 at +shfN`ae5_(MF_`+Ad{sq;<J?UtAuv-Q1w*Joxb1
zlOu8?<}NXHONf51tlm10dQ_?T{m+`0zyM6`EWz<K7BBMBoXs%MW%Igf+dPh^8$F%{
znF+u4n%#N938uaoKA5f^SD%_TyMf#P;JXYD$R)jKJ5NkD^d(2PIn5m78+4^7`v=q&
z7<zUIU6(XCb++B~xOy2=-+uM~99nsR<G~>HV8H1Uq)xVbRUq;KrP+}!Xsa#d{_{*^
zK(vCqF}cisE%P1wdz<s)&&bAcy}k2;1<n8BvEl at EK9F81$v(A!o<BOZ&pj?3BW=~k
zv>tVaB)VnHHkBB0VP>&5bI}Gy=AU at Ye^NGWplR!)JzwATpJ0g+`6M%<5xf7MJw4$v
zm+Px)Q6?}NF3z@>M9jlm8jC`!|9~KoOsGJl&tZ4$z8;e(keFn#wi_(obj16TV^Y)q
zTKM1aZ5T&KGf8%7T{+H3R^rQHQZgY`Au%a6 at Zn`gy(zOh9XU&B5u?~cDmGcAbDddG
zAn<2by0=xmJ%9L}M#)OP!|fK?Jg#SQ{_FodJ0^q*!D?RoN0~9JjzuzI_#d0JQ?U>J
zji)@g at Md#?l^iCb-eV>=A(K#h^<qKvVrYKklBqNIAG3q+2H9sf&QO6awRHa*kw!-p
zMoGD=UC-<?k(_rD^@kJQTSYyQ(<x>4OMClLz0Vh28g0e%i~Ocp_(WK9!C3n5CfTaH
zzJv>VVFdOo4zKqon9s1kD|?EIm6enK3tRws0zCL(v_#I+#>W%r3uO4di*wc78`)01
z6(Ua->hZHRX+P4?WFVe&KeJ84QA(JPgU$Y^;-@>p+`_EKe46jP*5kP0=k2!36z@^e
z(9n>Kf`S58{IG{>erwNvkN9mL7qEUooj)!0$LRVYoY?z#%BCLpXt(t%CMi^!Y!W#l
z!^>pdZ#P^#>AeJ63bw48KRPB<WEPJ`KVoU3{cQj{as^y2omsHFt?kjG at h4In^?ySZ
zT!PdBN`M&k8#eY9kI6s;Z0Ags`j6xg38^&w>3vLLN>v8YOE^4_Ar8(FwWMVGr0V^3
zze{!KU7Qot at W188;x+$&UbJL^$WVwCCogyI?7M at hvy#ZM4R-i`fFSHjIV-W|*MQF8
zmdSU!mb<1fgjZH^fjo}#Ba3hMyjNa4hKE~8DSm=$SIWS}h5dKgnnJeaY7TG9%e+!$
zXCt~@A`Mzep6O#5*)XBlprDT`DH>`0vRn^|X77Bsw#8l<vijScZ4{$#{>F}3?u~K+
zgvOid&5auEO0!4z*+!2Y1+a1dn at -cGnsp4fk!&zT9t8fP4-%1(37baB{aB at 9d2jXq
z5=8+g#5Ve4fK86#JE{7<TS!9Z$|JnM=#d-Q=>;UAz(rnJTVi9UsbUuzQ<h|}t%+Rk
zvqD1ws at GAj$7k at iJbbY^vEcj|pid#1*gGRC8nLoS$&j942J||q+HC#JPOm-h^t5gE
z*ritj5|uYYv at pSqsj!yM29zhaBXwC2M63rgfTUXhL`du+SEs8?R;8-<Ss{l`y$XFJ
z5uiKbJ7Rg`7X0`OR#(;(2fjX*8T?AcisqgVt39*4>q1^=U=p2w{J_2t-cR5<n^*um
zT!}(uwa at Ox_Z9RPnp%m-bOX)~mu`MCF at 0LneM2FTf{YUEOdX}Fsy>}8wTo4O>cR~S
zM&UaKvp2zWXu5_oql01`pyTp}%(rbwoM at 6!8b8KuTbRE*8 at k}rU5WU~XOd2;NtsxL
zxD%Bd89{|Ix49I=6cf>BM*itL1hQ0a2pGCQmZ69fOruv4ip22E_4;U at o;_ljC{sEk
zsKHg|J8lqzUq)x6vPt=vB3O98cBs4xFv0)cn=yv^M*oe(9Y47-{Pgn!$<AvJ at AdYt
zMoXlrwZ6SG30vjlKP*1D1wZ at n)Y%FmV32D|D8fmkk|l|ykQ2SLnvZ#3Jx**|+z-sX
zZ9kFD5=eM<8*1FlPXX;W!<zGd`#u?%c1WZO)yp9nDd+ at yLXT~PpV5hyNVb^e6Ti8F
zTG_3xpZsN|Q0P}0!^jQi>X~~p$|gKBdmBA&;ucdYUH4>PIoqAyV|X_tRmv(J- at 2=|
z-0#iKV5jF4;_XZ2>@yUDRl|YqC;a!<VyLr_EML=AR?m%~(&}CSw#I|))l*U6;id;a
zuq$y6)b7Y5GHl?=O0-Z8bZa#&=io3zOZY=vl0fa6Y&0k-bS#=Q at R!DGH#tMI30S=6
zp6FDarbA#}o(QSyOI`|Pd;UF%t~5q^zg1=^Bg^3P+BAeW!mmBFa=NTmz3G_U`N2P2
z&$qU~ch+Pr+wWlg^u(`kJ?eth8w(m1N#rfAGO)bNbow*!6@>y{perpX)%cd(iE_zb
z9-i93VV<7;YF^|=6%`2x8W?9vAQ`vA2g|nvdvur;d;bnW-1)>%kSF#p9(T)5pS at pg
z$EC2WP}mC{igug8INwC~55;0ujDel`e}HUDs~7ATKTf%=zjLYue4*C at p15A$x-n0R
zNEBPn;XvA3(O2Ic&R|zj_I?YmZ2|6nRlR>IdGs)OM8G(OBfKn2q(7`<%D17P?{jrk
zZRw#ZUx;>{BxRo<zvBDxV_Uo at L38_G(+Vp4k$zl^8mbJoea&9=egN(_(<Ae8J%}GB
zTJ0I8BwFPkS^BsW75OUXZaK6Zilj|z&f+w>U(5gK#{>-0ZG<J%bHEDwZWBv4Dl|zD
z+e%ZG_n0Zd3cFC7hO0EX%2IZL>2ozoL>cZ%m<&@**ZHjJNC4e03Dmc+3L&eD7s}h>
zqPR8LorXqR-5CDjQ(V#HCw<MQ?ptgc>WOoHBNojh1_ at w(ILprhgp~#b at vR25BHl~=
zMs#yX9ejB^xq3!#<cDrb_vz&l);Gf?vFeInJ at 6~@#s?I;2O5QVKripex6gtt%N@@2
zv<TO&=TLUewI%UqMN1rRxegT2;{xg`%979ms(OuH)f$Iqf_;gNQ}+2gr!q8p&tkW?
zPxzqo13#g{J}nYO9DPsx8wbL?P*Q|t+tSxEB3&7hXh}Sug$(&;#nvo5_?V(_p|=?F
z#WO1#&*8OxkGiyMnE{N2B at eCFdHYe2LkqgcTMbv+dcM0>2K|i2!{I_cjQ5EW4l6oM
za=23p0j*@-ht}&pzkzj4ZF$C#S=Zyx*Gx*aa6xP<EB&yzq%9`!p+1#k=lG-Ip+_=B
z==}�ZI&4Rk9(EiDv?oQ-9v#cb(j$Yl`_A6c5>DSC~u1`&5DGZ}Gu>5r4Bv^Bfpq
znuHm`;rZ{-Xx35+C6<x!?NXu6$zI?Q9mx-=dSP2#^@Q~2TVdXQi{w!|`crE}wb+{W
zM<UwNj6>1y?63ONlS}uWanYdR^`@EpP>#r0pl6EjKABca<d76(i}Q_zHUK`|-YfVu
z7UedgLpa$9&kHen1k)twsb&{{FNJmoGqfI-GyHuY1$*xIY_-*78h7VZbPZRo(2``D
z+83)}rA0o5LCyh9{<4^m2Ycuyfigv?0O<>cK at 4`Wv at yHH@O6Ax?0ECzd}Z$CflUb$
zL2~r&%++a_-TSKe8TTzJri+wyUjeLrSHPtY;#A>%^16K)=CH<3bOu9U at Mnu9t^!GS
zpugvbAIE(WztvDBc-LOidgV0qyyaQ)^2}dEp8FZOlSUir*`V&SSp}AYW3$)Ezv;7N
zAD(dQ&txC(9iW+O8~gITuqL7pa_!F|2j%%Ytyw`!kN#EHqt<yVhtEIajSu$=3f!|7
z^#vx1;s0(7Im5#D&jD0l{n~90n+n*MziF0ZM^6+G4U2^h?-;z3`Yt()@i*NkJ*@Pg
z{apu+i*YW?NIq{y)ekU_=XC1|<{!^2R&73?AU<|(g;lGbTo+?jM?Vx7b-T~)y!RjT
z9r{3(Yh9u>z7Nb at iBjF|0-svmA2B|3);sC8mAz$I_*KaryFX+b(UdZ0yl*>_ijR)h
z;*XE|y7H)Nx<dT{m;UeRaahG)g6@#|{?h_o<^$ud_XfYIG^F&IYIWPEqUPcS5x{rI
z9FgEK_f3{}##81fZJ-JiY5LHUve#7DBw-W8scZMkpGkj-#T~Dfps|*;wz`Qj7<4Dn
zzZ_o9jj=hyK2Lui!OZJ1$$EdkW`0zwC-(KXNIJ9`FGZeIAMFciuhY(d5Z69GqTBm~
z90fJwym%I-)(0rfR3yXC%d(caQ at eS9tHDgG;VgGnbOhqK-oR6;StEs18h)|Sv(Qru
z$0zvdrK75CZAjTXxc4h5=n?BKfaDcE^jq4>m~DjFTNm{|Mq9(*fkTlzK+H3%AsL(*
z3K~77<}JP?t{!Jtg|8irg{w**D~SB$%^OLb>wSeDg;Egc4K0>%E<U=xV2A~K=3<$#
zz-oC at E?&PWr>^_D{XUkieLiBozI>SYOaT?J=i at p#K0IH2bn%y|)9L`na7MXZUaKql
zpk7Br%HZ>>!#CyAc}mG at sIOO+J6|A&#ae2F-x^=gZIGm*=F;@_!b-RZ at 6BaPCI?69
zL!Y`UDduIE;K_Ta9v}gFVY)H|;lGaG=g*;*f1BT{&lCIRyC{fXU-I>|!noGXGTV2V
zA-in&iB0r!YNd{?D}(wS{jIJe-9Y#kuHCCG)u1<Q5{Uhh{}gz4B<!(ub<cXDN7eQT
za^0%WFUJIYu_ at qp40e5mFus@Mra3 at LKd-KnY{wv0hO@{Feg2`D(~ZAzD00wK)O!9D
zY0u#e6ncGgbA16i%ubVd=PDB5AK{@c{9*sD8 at UC1vF$pq#XSB^K|R};OpWGmXthRx
z_8Xp1iog)Yw&7qL+CUT|vn472xtQz2r2KPbzA$1mB^_m~#5E;`eUXL;o6f1>f*>GZ
zS|+M~(#o1d=>%qjnHb2Xjs34tgPfS%D0s at h|3bP|V7IE8h9y2PxaY;wEXxgn_2-Yg
zIn~?LJI(%RM^QTGr_$|R-O7m3m9yAuPBT=mwp$9NPWd)I#1Arhq_7GebrFB+T`&i-
z`1~OI1-$a_O5>aZp5hZOE(*j;!L0N~s#BUYI2*M|gQgQBD;AlIC at gO*g8e>TJBbvu
zuLqL!ARqF2RL`8W`uf5f-&HbuLFY%C`|TdktfhmX;g?N8SXjt`;8Pr6<{NCPioPkH
zu_~L>4$=L7DXccbSteJckiG<GW25?j+L)#ZM8mZ?0cw-r9{2Rz7ZE7lnnESZm2@^Z
zaKGg{bogv1j=D;Qg<)GNQlXzD#^fFeV6<tp?;?bAlHMn=hPb#DIUgWv)8X9PT^GAB
z(M<URU%>wU(d^Is=rIVDI7bTS{Gv3>997>16ncMp?_)K(#$Hk5k$@un#J_J{Q+V11
zLqAxMAXNC^W>{{*@>SdLuth^MxBKy?vbg1=My at A^tPt~~YAfa~);b1jt04xvzOvE&
z8^=Z*y}dBwId_!gJ<KKnU0Wcr(AihS6foGImrk63d*|lQd-*s3l1(8uF3!GSxSluM
z-1n2S%i&VO*UOq+V&>v?QXEpL#3PTX#HG(4+VA2UbE7Tg$LFZWvCRj8m71Me6 at oC)
z$5&p-Y__%4WWUx)70BSn)8``r$K9ZVnlNIqt6bH29$Y{~s7pgQH5npnGzYp!=7LPW
zb2QUj%tgc2Assj;zaC2)cZ4EYBo<Mdt$Y3oIXWz9NCeaB(#Q(8Gp<DMPet`nIbPXJ
zo^j8PklGTchua$L{I)8a2+yi$YiqhDW5^d+lrg?tTY4hNNdXhLJK81k2ekMmr^!T;
zTJsBql+ldH3;~1NYclIwEQ~R;GaJyHe~M*Ial-O+b~=K95dAF-qv((d3b&MJ31MMF
zw8P>qmBLL!_G^l93XSka4REzq*vu@(FAeyJeH~A)_+;SEwVA#3mguTkINeX3SV6&e
z&2x&WEtaj_iqXusAmpnLK&~e%D6_-%LO#|Iw^_E`@2jFsB_0HK`*B-XyI{%1T)e9O
z0vQHn^#EfqH%Xz8V2I~2!$-U>RK)M^!anI~hc}&tO7$9aOgq}VJb0j^8lu^A#|G>n
zlRglrOcLarTN(l$ZvdrKBVV*aMJqp{v#YE&%NFt-8~QXhv+R(uu2!YLvb^~9{npvf
z31t7?$c6NEfXkn~hRywof6wB|dqC`Re7q2U%aH+e-P+>Eo?Ns&u3Hx#6x%<%-S5`0
zRP<cr7E1Q&acr;1;+yM&6MgO~bdhKXU30&F!cN9CXA5n^-#^85{ws+tlbmFb(cRW*
zi*x6{n0jCQmOBacU at 3`uZEaET7k9dW19g*}IpOO2^35vc84aKGh;}u_aV=bftod%@
zYn7=;n*2Geui)=51NSU<E460V4dsi~Bu#b==l>N69Agr`yW{Y^^B`v at DKJDD+Dbns
zOnBZ<xx`HC)e{_v4 at m+Q>G?v;(q$ZOF}=)%T$5cDh^UNA?^+}zdvEqE_p%nn-$hVQ
z|4`~p&CdyrB^R64fI;BhMWm!t>4tPQc4hVK4XL_dCq+LBCbTV0mxI6mPPnhYHH)cq
zIETTczWG<E85D`JK7GEQ`qlK{=D2G4YB{fqCGD9R04YD<za@&bKg*gFF0}%WNX|Xj
z@#@{1##iV2RpX`u?NJ=RFL*1{kI5DnmW<@{00NaZ50BjDKylh?%VnRL3JgwzsdKCN
zQQ9-THf>9zo74nGR_4U}olcjuHAcb$Dl(PEu8k=txB#O`WQ?_ at v<ENUm at JTZj^97a
z;hr|%n2pJW!t?UK1dwlNEFV3F=97h#s%mPPtHo~7izooTn7P0EwpA6R!-8FJ1{B#f
z?tn)R5Mkn_2tHn`K;I+l<y#QgG at klRt>?Os&k*^pq2LF$pPx8ut?%Oz$HUjDmxtF^
z7Tz>?@<}~Ou1L0!S8Sco9nJk-`BT{{&h<=R>_^(6#G~Lj#Os}t!KE02(Wqkr^QY6g
zUSBAe`dt<Z1 at vQ<ya!0|kIn$j!z*piwQ<*baH8vjLi%iof91*DicS_hxzMTB{bhb!
z`SqHHx?R5OcD|vDzX##w`<%-C(VJ3X`t%z(k%0%5;AgPR(u127+nTZsuq(Weqo<;N
zp$m}$-)i44;VMnMY6BVl_XsYHJ*97O!QME7(0l2R^gf<_c!$-#{cE{iy4B6b1$4Hw
zsYq9AJg>tr+<EsoXf$ct2&Z;V1%jLg)WMg>(qHl^Vj?34@&f{c^3avS%n7uYbca?u
z2M at l;?juIG&Y2_bE=C(V^qrD~5<93{<*jE$3w=Rn{U35m6&YvX=QCt4lr8T1oblFv
z`}i(cgPu1UWgI=Oj7$#CEOt67QU}EdqgRi~ph3h=&%Zh*!tpu~zLRWYpy1eX?mH~E
zh_Lk7(z1q^aUr#f?r>q=87n~rB3y4MeGxzj!E{faDBu(3LjR=v^r4zgRVW1J?!8(K
zFB2qxeIuht#BK#y1XU*F6oY$I^0$j|TPC(aqz%I%RL(1odp!J^;m3jqgYZXyX1#B4
zop=1Cf4<rz*|!tAD_4Cug>qawgFC95lG8Y<E!dd7JkMK+Q;*l>iln6(c8}|xKj2!k
zzePd-*_810m*a!?;GnXnl`r7PEbR4watb{n*Nm{?8!Gaq2hsz>iOe3)5m3ZQ at y+ha
zRq%_{#DBAJA0b6eL!&g5MK~}5M~Ya~^^6eTW8~-Qs<IfeZ-FN8mDVtWG^-1M4&=9B
zRvO=P2y(c>7mSH=^p3SF0c<?mb?xO+ob&=V<ta8|U61>Siv|*pX7F^YPaK2=6TP+j
zyi8l17GV%H)UQ$7`MkeE!;jgSKWl+wY9K@|j*BU{60cB?IlkcL5Y&B!oPny+Y>dVc
z?qoOF??iM&P8j)gLxs3XZG7JRhb<nO)}w97Ni<F0&|RSIlAMUXz|$2!@oRIxNDyw|
zI#BDr1xK)A42|GMcRa^?5E=3toS`Os6$D!{<WHE1ljU;!(hnL(63Sije}ORMW-i+L
zX`KCe6C&-ptU$07X0 at 5_w($MfwaP{|wkqKw0mGN*?)Mnx$w%z;d|JOZ{RV>wD~|9O
z`vXM`%koVG&ktSA#o4x4WLN3 at WV*Em3t%aI;<l;QSh1jx&}}odCP at h*$TJ9HIahJ{
zW4n~2Nx1j!ss$%Ma&ybzebGT51}S#bj<}{wnmV!PU@)CrSID1AAh7=_AraN?Cd{)p
zCo9fDBQGAE+c-7`o&T_dz;b|MdA1bfon;Z&_e0Cyfqv8X$l>^?w0)+Q2D_z>VRKJW
zJ)_`S%YZmrNtov<&uoxls!$5><wks6TTW~mSB{91A;bM~yso(=(f7<sbbTf~djRT+
zzWjWnyB{T~D<&xArzo2Rf^etbCfTLkH*DXSB=|ILA5JHSj5^_;Y*~ZWH60E)u}9N3
zo^QsjmL}6 at Yf7SppGt*=+y!r#-muoYk_`MU at CBcTrY%K?gd<@4THZg7!vMmvg<_u~
z4At>v#7p#d-mlYCICJ_Ze3CQqSDs;UjPbM7Hi24vVyT;$;5#^Y;HE4J<U^4}03F4D
zk<d&N+4{C_cXZDqzs_mO5vP!}vilch-E9RT<T&A3|BMnnx(9t);10=u$wHoV5u;a#
zP_HjgAm6utfH%cECG9)w9?PnPabD0`lO2JbPFqfvWNgvU*j7udU5^2SS`r^{ah$g0
z7s>;%rl{a6mRd!G5`usrQC<9P)Va=DgDnAPibC086B+Nawiv-lau#pTNOyquJ#Cq2
z&B!6UAJNy(m7dPDB?tTMlM~a*81GhXi?UA-Er7}uu)^ZIXtk#OHVK{N?Kc&WkiZ%G
z>JX~*jjFK>xCB>i5wcqkZN)O!sRml9215+nrOBENX+53dAlf?QiaV!m84LHe?Nu3q
zzla=be4J+8+Q8Ep_PofH1IMmz>Jg|02#Zo+WX4{rXE^>;{Z!QZ>m3aKus+EoPbapk
zf^P0N;$4;{5vq^w;;(bb^2#lf)6MD_7N-u+hUuq{yW3FFODRsny2d4XFT_ei;ogTh
z942oBuM4Oz<PNVXstJH<?1Zo2<EczWfBg3ms=*AapJI!#zKTtI=Id9AXMnV*jZmPa
zQ9Y at h!2{J|Sud0X5LS5_;;n;hN?1>8jw{Xy+I!}AFLaCB1N|DcP3sKI9*2<#FK3Oe
zgl+ at CH`sK#cd#dfv>(LsNqqB*$zzjRr#%(5q->KoP)(8d0BUP=+Uu`_pD&q6-Ar!D
zzF1To&#|;S5f_(Ct!*A1`yFLjs%>(Nop?+?sgkX98CD-%XvPlaX3EUuB&Ef(l+eS1
z+H~_oh8f9^k%OKlzW2|!eFr!-a1cREqLY{y5hp7v?9*ntg9Dr{RQQ- at pL11njFy!a
zOP*Zevok%zpVdE;^L{-+i<}8#k_tuELYP4tiO#jn4K)eab{W&lz_jGyWy{#E-C5Gq
zXPEhntv5A4H$O!;o!HACB*eXC$3wQFYA)3dAIyQj4-R|=otE{ISg*GhJlPGC?eCQ8
zT)fYW$>W?%nGM8`5BgFrSa&q$H~xrMDKQVl)nBTrovKEK<Dl=FL!JPR?&-g5oNoGM
zNFaxVP2o_3t+r%_8NL!%KYTpbtjco-d?FbzN!61>LLC(%9bjzL*4$POhs<9WDE*&n
z7O=_I0rs+;@^g`Ywq0)d7s(pSpicU^N{{V??jd81D0S8TE~h^)`=6{d?(gVk?^aea
zp at K{a>#B<vv$^jgX?QQ9RT>j`#`sIq`25uQ_N%cNv-(kAr4`emJMyUOTqcKViE5ey
z!_wl8_#04U`Whhos`vP~Z>>R(_w$uk-PJ6_2V_QDCA9VYmM2Jg7QO74fP>^n5=&Fp
zVhx-kb67lncIGMZ7O66xJ)^k1Cuy|Dm0avC at IJW4C}vd?Fbvm$)>O1`v-ru at 9*qv5
zne8|0Ju!DlKFc*lA at y`>!==d#u6zY1zdx-4XvZ+UZdUVU3cGET at 6x13F$RNeIod*9
za=F^>KbrqXrYFI{O$Tr&7zB~@X(;3i!f-~Q at +IZ^CU2qmyHn#KMrP at w=S%Nr at -uEr
z3sL$uwerTsAyAE4;!tMM$qm?3{a-JDjC`4Ix8d#`P|>Gv at qd)4WoW>4G*75}X!37<
z(T?lPmtCCv1>>Q}da)+<5!~Fw6d5U at +lfg=3jcsWsC9BPGO_V$lK-*4Q6j@=2|x1C
z=xsZ<A*ay$t`ntiiZy(4_A~tlTKU~z at c22S;>bp)BILc3^UaY2z+i;HC+0{1gdVuo
zs{cpoyTgGen~D^Xnmn6D;im?BgcuEmp%P%+p0jEW#re1JBHPxKrA-wmoa9K))9}X#
z%#yL&{rnLtpcW+*_3?C5_CIdT2vur36vu$}7}O_>jK?<6CCE93h~9YpE!v~;`|>oZ
z7s9oiA8F%`MrFsq&*^`i&CV8VzR_Ng at WBC%k at m93irHv9CHfZW2gw4`GHFxIJ!ML_
zb4?T!rpYPu-&V2sWhiugRkvE2Pui*$|3gOq4ih0)`CZLUU~9nX!44JVn at w*|0W}(A
zYm9?~qh`m{cOC+dC(cN)D>6g6hlOgshsTau!MjST_MF&+!Ei)TSBtxltcaWFZk`k;
zn`;t1 at sC-ZPt*NE0cJ>U`Q>|DYrn0pCqAlQf<b)4+1$tXdn387VNm!F^sZV^ziAW&
zD0+<3oAT{msO-bdq$GzFk;hQTmH3#Q%=1o?f3h38s>x=?IIj#Iy+*%rcySAJ3O|f{
z@@V7%n#K(;iw@)S6>9u`$uuzvA9?;xfqXus&Rfgy(=|E6!K=1SRq<a!)h|sA9h%Oe
zw)VVQ9T;j?eQ1liWHbffe{NrWP<<-tjZeM%o7q at stOt5OM-Hj;Shol}j!Q(wrh}5b
zD!momaAuGJ7bI}NZZ7Ww!)IiIZa=;l;;gTRuZS6`y67s!h>6RT55btv$ElCr;vkaF
z-uA2IV)I-z`}guQ7Myd;D2eBTp!a2<<)K9Eu%2Kwa!&c&{MFYWfON9h;oL{k)u8;I
z^+^_`dxv-VFNlET6+|+PoPXQRy?$(S`Cz?&8UOnq>u3?{eG{b^6Tpg*hFpB~j~5<+
z`m_ISHj#yoGHIk_G0DN78y!;DWKw``nR!*)?0kWikB&&9cg6iA1vdXZDlm^X*Ap}K
z(aC2|?h9T2Gb-evJjx*t9jOzOc^UlMq>bTA=0ixZ0q8xk+gVjuU@}br(cWexHAXH@
zU{jZs=V1WV%4Ce=wEMa9I6VE6`2~*p#v|)o;&Tg{IK8{yTUfnZ!=~P{|69xS<UGQL
zTz)ij$BLJs^;M^!3ja&o&zomV$d9nC`3CA?64uAEq_%v}!Or7z^b5M`Mb3~@9SaCp
zx=^kJ-j^K>ve>lJzmO6OPkk0$AaHB*_8x9SHk_H0$fH)eV!hlE+{jZVZP%3Zetlk5
z|F+OR|C-?=K^3U#e<6nca1Lb9nFi+LuU?@4=7sGEI{UNg3CC}Jh&UUiWIN!dGbTGU
zw9DiZe2n$~P<t%LW8o|DOFprR9Q}D$Pzif;_hH&%r)fhT$$ed)M(#}I9ean8Au_9h
z7^bGJ0oXF!j+od`BM<W!7_4~g><h7JyDsJ&mUm4h`A)q};MN3Kc&Q)2p3VW~ojTh-
zQ|UZ}-#QwfED-_5mD;dhG^S+|baUtJs1E0c+S4SW%aKqXc%Iasvd;2{(mQi2Q~V#x
z4SGMGc3p(#3jKnVh}OcnditoGN9(yRw=KJK^;buC6g(*+!u4$UYd42aaI{b?dAfX~
z&oFg!?>;?^cdG#<WmN>9C*Bu6Z`;T;ye0TaLZ at n3E&+04w+MliYUQe?rW8ALo*jzk
z2U0*2pO=I5iw`Uz at V@OFyCb5T(HFhliwCnNbccEhB1ECdwg@?C7X1QDtkoaQ^#9V9
zWqJg+pE+JLvsk_&)n5pI1eQn#|38jmgWk3b4<${bQXQ7Zc<-v<{+SJlQPX|%t<yDt
z(8u1x1x=oivQ6=8txZprF6<s7q1&a2fmf+Z#hT~A`{&d4Wl3cX$NoPjO at 8%&1>hAs
z02QU{SZ8^K1_bAOkm`Z(*nBF?Ks5jL3cLB%`>tszyw!Vq+b3#j{~kCCqs6lm&hePJ
z9P}n|r|LN3F@=23_wrM?56iiG;cRYQZ!iDL1I_NAo_2(xO}}D~w~jrl=gny!nx1!i
z=~q>^@kQb at B&Lh^lZAp-SHBVXUcdZzDWm)&L&Uf at K%0=$nXZE$FL)QqIrn0t at VeW~
zVaIlvEK7vv#oI%o!j1TDGe9%^tD6z~0cQt(^g>3%^@GA?Grv{`N2kxp^iP&swP-$z
zFU55?dzEc!&JWbdkKf(Sn`LGjRR at Lb`ESKiMT&hp{>!?EIIx;^a*M(5tL;80a?AZ{
ze;k+}{e-?GzCd{yN7{ev3V{b#)3^EgaaQqj!Tx_fwCxs~+qUPqNgfqsaO#V?XP4gM
z-*kP$XM?W_K88Qc^ND>e3a{=45h2_E-8(*$r!&rpQtFCZ*=T1 at tGD=)QHp&ITka2v
zxd8`fS28VUJcN(UH2V4VKhfW9M{l=ZV{H(H^1sTy9-h))181wA@)fS6)_K;u%rh-!
zKu3V{FO$Wj8Fp at Yg{QL~f_zuM789cOaMQ-N?T=1&Ad at HWVsWn^I5^`}Qs`JwwB0&j
z2kS*KQas~WQPo$K$hKSQmXC3sa&`xQ4MgWcGm(q2$;|FyCu$h&vS)+M$#0-mtNSf}
zp~K{lU;N#}$Kj_v>Z0l%pZ}s#RHcpZ&s4`3vAUqhTKKZ3Sy(UNd3>$Tf;ZI9gieN$
zo2QebM=WILryMRSELsK6EG~O{MMuHV;(rY!L%rNWS0^sV5e36UPMmft16n)?wD+ma
zkZ&6%3H}Nx7_*k-=nvFAf at 1=`#0T%xhf9^qoJt+AdA>#?II<nZ<9(J<OP#x)#>wwu
zB=5NoOG{?=l^o_v4~28az>mw3A#u->CQFwZQgp&T2T~vbtN*ed$3um0?;%D!E60ZW
zhG(h1+_>R&cj`;&II#n4*<`e(xS at YD#B{~hUA0DI?R!vg>)jHKzt3ROA!41*bnIcC
zV&9&@GF5VQ(624Nyg2=Z`-4O2o|31nyiqB2JkbAF+E<3P)otAZ6`+C^C{Wyr7x&;0
ziWMm?Em|Z{Ab8M1vEc4nD6Yk=xKrFc#VxpVbIu#i_nmux-d{Y=ChVQP)?9OpIoBG4
z!efj50wIa$!mG<~k&Z#bglu6pVFYyF$?ZRUQYgr8&r4e-U2F(oP_1NZ29J#93fkhn
z6j>f<9T1qx(<*vp>v<IOB55;K&_X at K4DrlC-1mN06q`++`v(;qsmDW)pVrcU^{Qsk
zpRdaNO?1F<^?FI<U_Lp8F5@>h1c+ at bH~dVwKgXW&l&rNG;32#YEA9{3x}|Pb%pRSy
z6{GMJRl6ReSO+ZMUio=?+M0M6!Lwc}Hpzycethb}YQOz!ux?ySbvF9_vuE?B&4N0H
zYr*j^NcPAUMECWZGpW{hyndeN at zKjwfl>x1-#NdFO*6dMXw4CiUA&0$;=Wz2hn?;p
z-yM})uRjmNIAsIYP954A4uZ~#leW`2ymH~Gd^@Th%Hp5Sc4xTFhu*lIPH1k$Y8sTw
zbg(y_M2+pw)k#}-B-KwVIhq`0-eA#PyL!qpRUW+9wm%ZMq#K&2f}8G-p)@C>))9M6
z*ybiZVNS+t3OhOL{I%*x!98UgRHG2YcEJkL?Jixw40X~}AWgGm;F%381zI=XIwqEg
z(ZI;SeuXA&xaz&xqn_yJFEhko(KTa!sTt$=o7v2GR&0V<EA5rJGDHf^1uOj<i_7AF
z!37B)dKto=&O(k=UQ&4Mz&5X2AZ*Yfmu`yTDI*oqJof!ue{*u8%fkVA>QhQlrLCu*
zzKX;~pRMjJCV#n&4d8{GEL0`|1ph{KS?<cFm%0U{etDwuw{+Ms;09CEXrXa^SXnR=
z9v#v$bF(66&R61LV>7+|*LQAn&7xZxP<!OM<A?@lzaKeSNo0@$d|GNNyr1_~sSvy?
z+MvJ`ezLaI{}KFUHZj{5-^q99WK6nczJF{^md*BxNIdLgP8&UR(`t~m at vd@ZMG{N2
z(ZXn=tVd<Tt7T<Yh(ej7FofdL$K94belu8LFb|7l&gCMfJ*oSpU>1CmnBC8`;DUn7
zCdk0ivh+J{_F3o~`wMYJnrl5=gSN5WPUEnn)HF-xOXkc(Kmz>s at ZuIbEKJ~R=umLz
z`AgAvWMgTIUPl+o?Q2+qMHcfJ%p{^FoN#QR(esA(XdbPxj-sTo4mrc<m1NnCT~R?n
zqw$%@dmh>rQZtAWLM-SLR?2kNVAPM#M=r#BGtqu-kpx&1{k&`Cn>XrE(2k+Q?_h0m
z0}U_M&QdmmhzOT&j{wOw+|{NE9DZvTJU<S+E%*0&uCTjzX03lH2ENFVPbShyj2}5~
z4&x&#&2CWIn|tRIe(l+Q&D~r}J-bT|E^=N6=ZpVM3v7*HRQqxS>jjUi$c~K2QYd!6
zad<)Ibpu!WFfAZ$eeBK-aCc>Bi5 at m!GjF(UIdmv-YY^Mw&!HV- at MK8usEO(%5Ghj8
zv8v#dxG~UN*mYhbh(4?6Y74!0FV43(^wSU(;~ml+R|kMnYBo2cn@(V?gMZ^a2mRA$
z2Se7S`Em=<JP1@~PLd@|Ehv;jtsyn8gCcW=>^3(Wsi9Ua5v@}ex6wruf<cCk-D*C1
z^i6+ui<eYS3m6p%9=(TnzVI3~{ZQR<oCyEpqea`FpVH at bQCm9SA3t!pS5$(NODyv0
z4Z#2Ju2hD(z=64+C3!7%667~cA4?`r4ZB=4q3}4LK-scpKk7M)1wgv``<nC*zfA3h
zu`%{Z-q41!j;Wf0)+=0x%~+b}^hMZwE#Uk35!uDTruvsWq4W1ff}7hlkGNz-C{nLm
zu<^Mr89}|#P8DfBw{GxezR^OybWqU?10bJ4)4QgF%7ZIbefyp4k}2DTIn4oY-edPD
zj*mOR+?~4kdStiG8o`@H&9YV`%@hayqV+i6KDJ`(l_{6i*<BOCFCpRuh8G{krWtK>
zJ*US<e7ntZXVc~GwH-mn7o(i_nqlj>u;fX{+<Ebg(Q)StGHF`ySLHkUW92sKd+U0h
zC$qcg_t8I_mr+*vWNNs0 at Fb)7cfUf=#al%J3($(M;)I3}8&AjhJI{jM`$Nh{y7d-0
zjX51%3T#ETU`s7)$wnR<$%pkuHdFHLUFjo{r6xk>AKRTDJw6oS;JXn?s=gHAycIH?
znv?G`GoRbe=m_RsGnG|L-!w~8(+;9h;OZV)4A;}5TuW$trF)28P$(dxp;O<f=CHHt
zx3gbZI~3<*xF^C+N1{xYj)5gKy%aLsOBe9sZ@#3bEIec`94lL1H28>&X230Uy!Mj~
zq;nt-v}ZI~?z6qbB|DxUR=i-DYKK3^`|D~CC!BW4+p4gK2?k>p{pu&r#_7)F7TgDK
ztP&-W<L2?EKV$H!i$A`g+kTmU#uZe3H1;<v<3kIMm*J$U`uF&)#_CuC_R=4=EqZfb
z7qR>GWyw@<n7(95iJSVIS1|{;Ws6>Bt at ILrrhEcL2O-o>T|Pve0jIC`1 at 3&){lZ$j
zH`kX+1BWlR?m|V~-{1y}{4qdXJbyZi_V$e$!C-=Dw^tiw%js=6FLy^W$MMQ5Qtd>S
z<H1SdpmFSYJWuT=2At(f=YXh1N_J|F(sqrpco`AWsqyaof&>Y=gfAt|1(}Z7yoLVx
z*2JI$wXnshPDzCVn`QY|QH0GB%$KrHy^<^Ln&fI3;qtbN$<OgaiPV40Pf`l}sCi_b
zJu0<@YBTWqhQ)s>Cc9AY0 at X)-l23puswycTfTv_V8wVF-Xg_hNkwF<7PqYD5?A1bA
zsHAKBb9(Fk9?%f`xLioh_6yAH1%b{5TJyyj(miDNs$+Z%j}*u*SL3JmOf3t>^tDDU
ztE`?LX(z at h2nnfjf-yh)@&6g9I?2nwT04-shEm}CtUaQSZ;7AVDY)dXz9is!Cs#4S
z=T&pruaT|El`CCCA<dk}&c62@@9o!lc3E at zSPRfjcRxOyu{|gbK<073s>_)com_pS
z3v-9P3s(G`5Xd9oB((7Em7W at O@&iBm3!PYbQb+JT2;NaEi5B!jlNEEy%eM9$wgR|c
zQ47{nUW{E6>8>ovmVBx|<#I(Qn)&TaXxal7iGF<@k7b{J{7n}k>V9LN)|Mb!$a^&4
zZo4`c#F>-7lqsjsvCn!Ratj_Wk4)6iB50~wJze(Pqs*C^Qj~j9AEqs8m6X)Sn$`4<
zE|ogL;PzSZ0m~Sskk!xXk=U=XS9(pAlM`VIR(GGTFJ>s%<hVzHcO-<rAb$&*-`5iM
zw=B%wVNDmZeD1D(d;bay-0N^%n-`+t+ExbYi8y{b6!P+*e`ht$80o6Fw_78s%$=qt
z9pulIElGbnP|jFCnd#xUcZM<Vb$>g#TCAYFY>$%h*F7Efx*RcwMBkQf=E~;IF0f{Z
z<yZn{2f~uwa<j~!`811FnaR4jSAmOeAtZMCzlQm3TLx58+NDzb#We2M^bHiG)%h<2
zalX{Ro3y*eZR9&`6zH6}i;Ly&ibxI#4CQ(9RN)bne8kyWq<JUcN_jr5sfY!4vduyT
zq3HKt+U_jEPye7BP- at s)?!=CmK?&x)pZ^yAz2HFUS!1Happ;3;{yIB}r at U)Gh1ebq
zJj&- at PoL{>d04W{?Cp3|G`Xvo7b2ejKCCsZb|)Ns>8u=nz<2wxP-vaFz64cmMw)x8
zja28Oo+JNs8QnywhY+vYz?SAH5Jxrs2j#~wP<~^@3llxr=l4NR-XDJ%nZ43#tBkj5
z1V>&AavOVHcvh)f);*?5%c;VEPM}^ZTZ>p5R>W;MUNkH^tM~W83#cZ!zq%8C{blnq
zx-(I&gx^;0%HU at 5csO);4kx_R{mpvabx?m)x9tjv%(JQO at I!rTt1eFk(2V8283s2G
z&kqV)i;|SCN1_n{<{tyvS5AtR%F0)&8I<Tt#o|r24->2N<s0>rIC5>m`z_6{N&9rl
zz9pW8&4Sc-VEupQcdAa?Uyif|HTnLCCtuMSv;6(B0;ps at rAeM!fA9vMdGB|)^@_iW
zZdwZH?pfa-#3C at 9mzn5S25k$}hL<iyV?Vwrg^;`?b8Hk1-09g_w7Ihv4?DFJ(Tz`g
zwZ~%};njLP{4`{viPR#Clj%)ODf>9X<^tpv_htVQwGNMiQqjiXSP$RbZtF!ufNYIt
zBOBpskFq?l)O5|wG*^4_kGdxgjCcT%eb&@X;`?}aj}_1$yrY0`P2R?%is0!jLujRj
z<J6#QL9bo;uknqy- at qqT!5{7|{#Kc3J5<eYIK|$$CLHv58r)HhN*xT9SWLtj6EJR2
z?5FKrPe$k*-0&HMLu#Y&@WTMFTGD$6N))H;ZV%GJJdU at X|D2*)dJYkGRygr@*62K&
zJ$O6Ju|^76I&k=U5%hPiC{j;l!u3voOMdmfm?Dn<6e=l^@QequcPqTTH-1}3CX%K7
z_07?-FM|w#z-Ipb)d9zCF>%6$ab;9zwYDf_-&Rb6;meElqF{2Ds~E~jh78e!9+`q9
zPa1tb(~P|4d=?)HtP-vJ4ubIcgXRv+<$`Ni(1rBWFBYTh?s%0`GAR$4^p)%3c{|KE
z2g>^`MVAccBESRCh0<=qBEATA^D*?GyoNM6FU0|jp*95^)fnCG$>X3M#x=K~tJ}1q
zN_B#JMEWZme)wZG8tW6lo;ddPOn+*`;du)|Q--DAeLV9bHu>FZ3-yl6ta*A6zQ@{A
z0=IO2uhQ at GKk#B3c+e;pT!d{v5>@LV)E62CJD7S2)m_oGV$*NG4aTLobnSmj1(Z(r
zIoBud)O9ZQT9a8Q7ma`8toY5~mh4!3KgSFQ;16fDwJV<n*m#MI2ER2L463b)h_Vx=
z|Jtwwm;bqb3{w1o-!BsM at qia}@5jipY<Zo)KeaIGL$K78&v>{TTe1qEX%fi`ts*R>
zt%l%SAL&jB3fpCS&o@#}Tin_H?bPIJux*KBk~xLPD*<K-(2F~2AcP at 3r+UpA%@=8H
z-&Z!2Fs}j>PtM8XcF_q_KilezLUis==6ekC$jJ|1lG}=yv5XkgNkGfg@~y4?)3ZYG
zk_At^qe<M>(mPjZn(<CFvEbJn^OzjCd^RBHpzBwCSR?^!lZE_TRaj|VIQizR*AcOJ
zB05H?XX)ite~B&en-*7|R5y at a`!~&W;$1_Y-upe+r=+aH`w8pcm4|}$r!zDp_Xj&4
ze|zM5GS_1BkrZlElrk5CiSmS6$KYa=0=)9>sN`OZb9bCM@;Lsk&yt?CRsG21zngGi
z1Cp2a9Cf6M3YOa$Fzt7x4?$Bej!c7An!4SG_{||0xB2I1D{zl~%Wd&BY-chK3zMWh
zytHRizoYZCgh}?=yLaomLygaLuVyH^zu%u^8~Z*gq`yG77xG_2KPI-&Sk*PZp+CBE
zn0hRWEi`bx_ZhMxq?-N(>s38OxZ=yw#1vsqCXennY=b<?>ooi!ya9e`)#79L^_C>M
z|A9~*6Zhq|uCLm at U<rI9dI-dp<ba+kklAv-$u%VBwL!`Yd97RD_ycRg$@Z~Wg?t=K
zCaZ3>7R at K<ckx!2&yNk>_yl<NkS4?Y at hFX;aRM{0oi;V-!ZCw9RMmqHGLxEbSA(eX
zCsSx4N~B7LhsGb6 at Bq^lL7^0n4#nFTlBct0oJno9)$VoIU9O<)nByW4i`s1Eb`r>v
zo?)kVMrqv6MUkXm^skU&PI>zD_nD)VomPPC(9!|h*eRo3W%uEF8ueDS-Tu6^1<oiC
z<}$k98}X*^ryKHNg^U#^r%*NcUxu{zo&bN at cu$}%5etV^k6h`^>GOS5;p;#A*YPX<
zjTmfs62#wvHzygc0wATuHjUg<I~{WqAEnhUs3 at A4nSOfyB|YgV@}H9qH10du;tt%h
z?Cd at m+2sS-eN@}JDdkiI8OU)_q|-^)tET~O at zU@X6>R6H+ at 82pj4%n_N0lBq;_VN6
z=r5)3dTdF(7R29Zzf1^KB(FqRevAkU<XlbWDhYqO)FoJw*F!;LV`i?*%@QBVU~J5n
zOKX0 at Sl=jtJ2r0I9d?U#FhjlgPNB<I1~~JnTg?-AL1l_hx*>W&x$<qG%1$H65BFPS
zJzeIUnr3u4PDMm%M7dlWr8U(ORwRc8wq_d7B*8t{z{t3v$Bh59X_rM4cWGap^ZNlQ
z7CY3-ZuCiL7&cBh&6Kp$QorXO)7zJIjko8B&er~l11OP5*JYicSoTJL+$q;mp8j}1
zvQ%bjR(7|rn=7_wojq$VZQF3!-9!H(YR*1AZAc?~oe>QZH>UY^AJy<%ox=v9x`xK;
zLdPUGcOY at 8Qpegm4pvqv7CeB0m9fcugY!Xk&ub|Q2GeM0Bs=ek5}k3x@{j_hfxGW;
zZ+NYOr!JZB#8uDP`Sq;tn}IuZfa&|U0vjLYC&Cwg$uEUTfgi_G at XfgW_Me#9yz1y`
z+1H_#5v^`I!qCVvzmeWRu_n|c6M-CDJ=Gbnz+jXwGh_Uh7&bx%g+||%IU2`CTpYF6
z(O5W|<T5b&<=FTi0n=6d70PP?HZ at 4SXlg!~msrSg5uwqn5IsyzzG(Q+tkhr9SU}ZN
zbI#p-D)_5 at ao)e!tR(5$;q<)yHyTTJeqOPyX;Ryeo}_b+>-pd9{XdF(*$BBEj2KO#
z+WrXv9#;$HCm5#qT0Ms~j0SsbMuyXso|GaH2IU`<aa00iC!Xb}Dt7HziC|~7KR@#E
z)Ahz+Pe?}>eWr7jokabI73XW6eUm_$?rxY9C*R|DPeLuWuiQMpVnws#^=PvVKC{@+
zm at 5gLUF&t3YAY>f{zv)?3-*?)dc9|}P(M*m4#nl@(E{>MT^%th_422OeLs^%3TtW5
z670La5J@$DZhxv%4`y81($#A9XYFA2E*m9z-Y66H#$tw;xxexS-I}lv<t!Oe?Pvb@
z9c$>wL4|4mX5}!Tl6>9giJr8yi-|Jl%4f<DBKBOxWZsclyS1Obwm!R9a=o=eZ|MF#
zDE|^B^Dvd<=Vwk7YT^T5(|op0$cnSDoZt6*c~0ncwUx(hHjrS$A)&!J$zF>Tl-7tL
zYL$evr>I1PggVNLc+_#aiLiQ3nI5hAUuJ_OB!b{CiwEgZc8e6$dl~=y4GK={FC*8J
zAHsL4gtk60;*-<wQbYM8cuN?K`_FSsQVwK+*LnZwOg~Y1qr3D}=5gRXg-iGbO80?z
z2;IcdwdeM^hUB?pp~pvMU-FQf%)1z$p3TyJa!`M<N}w8d9U}gR(umGjD9RE!>Tl7=
zq)=$B!U7RT7NR4|VKjs^7C@>EEZzpS;H at 5)yw;-72Wj?OG)f&DW}p_Y5Uw$Jo~&mo
z%s;A}4EGmOqkTk(8u2bFq8vzNT8{fjwQJnTnQ{YWkU5ov{3@?}gk{A72~-0$Wd?Gw
z8>lWLF4K-$0xrWc&X6L+PkGcRqdaoNq0ezcmS{i0_r{f~D>+hgZ5Te0lpr;>R=6m2
zNib%bPw<c!M$75TH1L0oP1zhxhDqZbh0%gIQj!dj73<|+3Xk~DLuwEgTxvu+>c1g(
zyf4GNqwJa~sP at tyG^gR-QE(ftKu7e4cOyfkTZ4#7%!(p!x<HP&uyBX7gT;i5ULmyi
zU6-DIRbI%O663ah6DjLlv$Mh%GWHQ3{KN3|@0QPq&A-=n28M|Y3T$qC+yvK-o8;G`
zDa!%(+4XH)Y909Q?_1)HC5{pDhYyOO&=@x6@#6)3(AOv9;pNpK4J2lVzGY#_868z+
zVrQQ-eix5|LfZ2$Uw}McU$p)J&danI=<zLv#XWN5M=?H0y+AW4r&g%E!_PgRY}k@#
z%66erG5t&y%A}_l%@jX+N5gEf-0DNfXq=OBAopJb)+!-Z^1S8TfK24jEd}tCm0`P6
zN_R*%C|=`L%vgQvC!PAc=Q;+JDPhIMKSr`;)ug4R7ioT)q?`u;g?|1sYbcM!x|lU(
zHhuD_PsAmOM^La;P{*_aO?%`Cs3<- at T~OB&P9g-Y7x`1DynCG^Mj3IAvTeEDC at M9J
zoJCYhZ>!GIyP8D6Mbt)4h=-JaBL}8hplnwr<>^~2RSP+e*x1+)zsqjF$QeIDFaT&l
zVc{{k7#Z=#E!F759HIEEubW*RsCx3*)rE(N<P!0~Pfi*^9Kka4lRs-|ak5r at Q3wd0
zG6FFRc6g#DixQ>hszLqkD2Nqxhhy;&3*IOi((Hv;e_;4-W3bW~)ut)Q>>YgY#^~FZ
zOebolnBigaj}&^O0O29N<#6 at e%l21T0f?_cxAuR%PM0Gl#U58tpzjm%;7)yYmF29@
zo_w+B9_m9=;qHe}N0q?d*Q1Ct;faBEb85{D{~dpXkM-D?m`<bSHt4;e>;%yveV6ri
zcCFI>p4jY at tNyyeoLKLOW%()8<|yG1<^PUMR*b{8t;g&lXZ8BRoJxma?$W<)MwXt-
zvfj6i8A)i?$EL<d+zcUGlA=1xYKs4)T`^pQ%Kk#<t8Xd6ng(S{w<6px<i^_FBjOPL
zipRX(^;;++MRkaaBG=0+pCNH?_ItNPlO_W`Iv0}JP=6iBAb$@nG=Gb7<B9f>8=F;9
zy#vYKmCoUs#DCP}e?)M;Sg-H2-axk3`FW0iEo*VvfGo4<>DP0CQQpZeZX{OK)FZH;
zTBXF!;gW?-4~7VA81H^_K39V--L?*+WMY&K78oC~hIR$ICXpmYc)VF##kG$CDX28K
zjA%CJjYHj<oz)(4X;~i4r_isYNsM at 5YB4jfY1Y;gLM+==3YZU7A`B^UF&_8MwbBlJ
zk|wp=ODJXDvD_B9EzG_y{U at ydBx1bk%syGEc)GpB2Rs$#wE6P>&r@;&qVLH?{(9uf
zP$M=2?ZME=lG2(q`C^*2Az?I~cw~+t4 at Ftj6z0asjlZjll%OLIJ|3%{JX(7<HO{A!
zC?sysSd$<-Fk&WpS?&7MX{&oYe95+`^uv613vc}~GR33 at p#U9kE=aBpL!Y``ZJkO9
z3+8e*m)DNVrXLn;e=d;;K9mFmlX`SCDpnmmVq#;fUbL7`yxk10KS{FF%qVa~<}R=x
znhU|I5Bjk?RCM}1MX^!!la*DsG9K!%F;#=<U%$$O++1kXt1PJY7Rq9tzMy!2dv&^V
z(hPR;ce7G6rzto^rYbNo8b1At3`U0Wv7SD~MraZ{Nr2tT>;8h`=RH;ay|r!==;L{A
zfRCrlnV9(WTG?xCJ0BQ67SXIJp{W+CAk8gw9+%-1nh&ReM|*9USP%`Mi`wsmQ>Pg(
ze-Xq4y8kTt%ysHqnmbbEdq$=q9!;;9g-au|S*)n<u2toPOwJ;hsPnmg(t7R(O*K5T
zWE at 6R#fJBE6XOsCM at PrWzAbVQw?7e7=wpEEUCAc*^K}MCS4O;*<nUwRtseei><A|$
z98m^&&$C0Vx+TBAD95O4ZeHx`SY=BeHV64P`U<{&p;Heyk!%q`PDZd81GTq>Wu5tJ
z*j$aRAsVr9d!ROkHm%Gkhj4BoDJ>bX^S5s~`VW>D<fsuK6_v=-m|_{vD?;lToCUJQ
zNm}<Gh51h~W0ALX4flpZe`He{D(KSqKuo`Z!u{C|qY+R=PP~T<BQfU3VpaAF(*vzl
zC$bbCF;19NAqwWO at +^~-Zgkm(Tx6W`qA_a}WwhM<Wv_x<+FO}GM=JCT_t~<I>DH>l
zD`k)f55q)zy*E3S9S*RpOM at KAS^bXd2(0Sf$SyWX373_=&Ot&j8QS_POE2Vn!Px at 7
z+8I}8J;RAG;q-J{(Qqav$Uc7GWiR#d0Ty}C&a7Is#Baydlz;RRr3R2;1vE^ovYzPn
zzJB`!d0cFh5F;UbVamWglozyWu1=a?T^(mOm^2Zb5xU#>@f5JuD8fC<ft*}x4248a
z|6HY1OMQmLddI at kKiI-|c*?7sazeUfmr;2%YY+jvS?q^UAVlD_$l0Hrum_g;{9ib2
zPh0hH+|8W at alw5zbBYY<NYg{~7>ugf{04I`0LkVw9`o8RS}#<q>+6G>vTO76d)<WT
z$s>b4jvqbiL?G_YX>jI;zzpYr9Fuvnu&6VYe{!Zb6BE-<L?n-w8j7|RSQI66eV?M8
z)l^&iiyIYi9d<0T#qIe2&pPV8ng18LX~p%KsWi_se1#h%1zg+)- at v=aw9Qi|iphiW
zX^guii<FQ91CeTl$ih`*$xMq&c(1kf^sGfnb<!0<Sy at O^6mRN3au_|u3aa`DL>^NT
zDxSc2&AZReE2q19ti9dCpB^4|h6D%7P!#fgpFstD2BjR8Y#HqmD#`DE?ye8g={NSJ
zdfs=ft9;Z)viDNluSuSF>wGO1r>?VA7BINWsLAfD<WiwLlax|fnd=|_gjfVV+P9}K
zvkpAZ8 at OE#KZOKxxOM&1s!m~==@ft8)o_9G<sk<OeMbS-6cqGP8%77JSUFRf(5;bO
zV|}qezGkYQcj}iPGwbW?dx5WMS>OoDc>?&~Ob+!qDo#<N$@tu#KM~}pYd>(OzYcTY
z1#0z9ODQ5vZBV5 at q2r+RKC4?j4Vo6~2n`J-yzDDhmgwRX{GNIsC;MNtj}VP=f`D1$
zgQ8-nbnCw=fHlV;mv|0?!nX(9-@{@j-hRt-`0K99Ido2wbF21G&MU)t{qB?45U>Y>
z<cZjy|ChW$-w1FPA1DQv<SwR$<?e?d!?H$7thZK|oOiDZd4UasMZcaqzD%DyI@|>M
zYo~as^uRu$>Jc)XEWAX;fg_3^s{<zkdj)etE+=Z0hGCoMACyo`gJU_F{)63nI9e4Z
zm?G!%4&b}X4f(WG<rIDf-6B{})fB at WR&S~ZC$A8 at Sm5p-tS?mmj5Dfqt5hrPYH;u~
zu6{WpEIdYzGH0D_OU}4dTt*?Yn$A+y2O6>Y4lUi|OxsQB1@(R_kFk(w5Nk!dN54iH
zbB~rF3#ab28TslUC&FdtA!NjGzxcOiNr!A+Zlu at b=K2SQT6H-omCqG#_kF^U4I03i
z^mInNi;XR|Nq|(AFnG+yHkAa4&t(BrDAb<tP9h70d(C6&yPM<Tu at 38RZ9^PweAJ*7
zq3!`klX>mb7&j at iIr$D4UVJguAaYKo2XVhr8)-M1>TwOls`)uf?Z0&sn22UZl-ga^
zt>avsX2Cv777hin52i`MVkADwfJ>7GT#mr$H&l7wqJ#05sydacnRF7(wAE}0#^cIq
zOj3$%DkXDm;(V4Em2apAISc+%h7qDA1gD9(J29{R!spmk$5X;(^o&fr>5)yNRU=x$
z>OYIJa~J#^PCz<3UXGuuY^^3Sh0Mnp7+MJ7WNP5l8(ewMXPiO at tswjGMBDBB)i|7%
zt^S-EhB&>mc%I~6M}_%%-&qB7HYpuOs6K~aS2M)2djjE~;R(}+;zSg*kZhNR5Was7
zqrOFR=SM at -#cZ3KA=C*&L&g_`$KT^g`Hl(sXd%-b=+p$H0PEFn9cEWE3fEGy&`mkI
z=PORU#L16YU at U;>h&|dDtFeke?H;Y02s5(P0OeWE<CW-Y?O$NHIQ5L_Xkj`sDuwV-
zh3qg_f}{+^!i=8d2K!Oe%N0a10DwZo$*zfgA%?RNfQ+KeqW#whFP>t>O=tv(AS?#Q
zSb1HEau^!fI6PyE#{#A at jr=kP^$8W;!avHG<8%5E-H}UH at KCvOKOQ(1B_Y6iM+d~k
z1W-v(=>aeN`4ug~#Zzb-Y-W`>Rx9Q6?9UR4oXjK2n^3o6QkR$G5vQX844617*hdiq
zuVGX^)}7cC){Fraxmdcq8mwfhNY>g~BH1e3olRt~G)!-2!*~37&cjUqOt_K-%$4Yx
zOHmJ-xfL=or!!7lRGKa!l{ZGb0Bw$16qY=|S}uwK&vPV|_6RixhaGG|0WXWBHQW|^
z0ZGJLjmQa?lYgMoPV{K at Y;nAQ-`KpTQtJq$0Kk(0YJ6**w(s*G7ZErNa(#iIcs%Bc
zkARD+*mg4$I%8dHS;ZODXknFj at IV^7D~eX17*Q4hnJV6q0;wmJ)<tH&*}5FUI>iDB
z!P9jZ2 at vl%MP2^382-}!r!AWiM)Hjp3Zem^DH&dhJ|~N97S6aZ-|>v+b&2(LG^>1c
zU~3emKuzm>Y}Y^1v;D2?n0C`SY~@sRnZi+9@@^+;|E%~==2Vm$Mi$CLd(<o4m-^P5
zMj_nC83+ffdRV(TJB?kgpACIXJZ-&p9?TKwL`W>ZwwZvFtj{O(l1vWbgqdMd6>=3}
zdqo?*pb^EZC<;;40ITH&S2NjOsUz`vS^xus0cho<R5mA(8<7Yer*mzi%B`BhB<+pC
ziypA(<yxb)MI5C at oO^$iZz^vF)ei`LY%$eoe*Wk~6{ZCqTe1e{HH{!GZ$~zuT)Kie
zb$RT8=vd)II5bz;*!#dtsWsq|ecw5A4Ywt4vywTJ4UZ at zKa>>5$SV{I&PsOuoTp{A
z7&ys1Qn35i(4c%5%t$7^k!b88BIN+864rN!$KQ#)Z^}w`J=2<gXoxrg(AHhaij#T4
z*Jcbl)2m#@o#ydoFTlM4VKH*_4!TF3ah$43H%_`YbG>H~a3}vt{y(VE7 at ab>n-w!4
z_ at md1h=}CEynI$i{S-h855j6eI5$K?fDbFUfgClZKhp2Hf-VOBWtL=8eGGmJ5H9(?
zaqC-{$yHQZj`EQL<7Fzf&^PFaD^AKT6es=SM|MSYnRGm-(IeXY{t|f+YJUhW0}Lw6
zh>aMs0DjtOAa!({Cz9RmDm+$Ti*WKMs*t17hz#_%S<1n3Pr0a++rp+ at rIjO|&NV!m
zqeI+2l|-uB4<picmL8tyxjBsz7vmph5(OHKzL9!!bjVEzj0x~FoGqU-OY8Vri!|u+
z(TAc8tpMB5bJ-x2t`bG7e4xz=s>SinI5)~jgii%wLot8Q5*6ZbH+1M(c at P^OSxhR2
zBiu9!WmtjoV*@rQs}YvS+xI?QDgbm&rTm}eDvPq=AV<&F8gSeK3t{8PeW}lj_^H}g
zC2P;4Awf(V>9o+d+aqfp!69ghm(oNL#g2FR$MlidTibYvvXoe*RY`5yXg%qGm}-Ru
za`tM*OsoG{Lp=iev^oK7)tia52-6u at -9(wcw{#L<L=lrL8Q}#Myu>!wSJQ24UK0-;
zp~O&%ie`0<h+-%6fBaUWKs7!w+&)k|sx~L~#!q=w#lRXkof|$_r96wr=$h+S@*s)W
zpr+gaM}E-<17~tHmoeZ7okPcOUcQbHR at 1%FqV at qvk6c#4o2X^3=mp;6>ajW6wHL#A
zGBou0Gaw6~pm7(q@~Si%3Y7ts=0!vY_CgW%<xe62<0D<LMh%V87`lE`lh>+dKC*B)
z#ptQi*YO2ibr4eI;N<DYYY|h)zscD&Bff}Omi)K-gKFLu{sOseO at 8r)YIYWHua-`~
zc-EstprT+v>Qim%-vNq{T-H+zphVAVfFCv<Y2U1)lQzIY**fT3G4h=#?{RPd-Z75>
zIHao9T$3lsmk6^y?V$numaS;OG at X$UoueOgq*l&biLBfi2Oc$WgohqPCX2U9fX8#&
z6TrHc?8idOd at 7%e7hZu!<9hgz)q2<;e<hE9DdI5NY5qRtK#^1sl4}TVFzmB)Njk}-
zkxT2zalTfD(F7^z2tb_tpnDTpDiO&uwbRst!ZAd1a%hyaFdu9Gl+W3KXzxx2&!Org
zsuf9J at M!VCcmOOJFoC2 at PFQGdPt2?igO*BYlxih<J{n2Q-j;PTs2Vv$e!;f`nl(;q
z$ROPBzCnM`&}U|5mnmAD;fi7OCaF4&56B9P(<P5H=0G9&?bi67jE~4Ls}nm2E!OiN
zTAmJwG}HpLn5fDOdCBM(thEWuMYu4%Z|qU<bO)?P>~d~_;2{fCiTK3kS{;AKDFv<Y
zk`WszsYhjN61jm0BdUlaG3<*$#aUlvu*R78?{GiChz?%IG4m%|$P%ZOO;U_sl2(vf
zuokVi_dEL>y{Z2fF1h?U%brXnxa6$yU}IHU|0?TagpPhoNB0%DE$FdgdIykk8bz!}
z<tAb^;FWJoy<Y+ at I)ycmOUWAO-e8uRlFDX2_4z-m!x3ZohPAguXy!1Hv at bZ+p(V!W
zl~6L9>EP>eModrIh5=Zmufyf$TVnG<T|vf<x8)LPQS6?PDDMMxFkbP>biHME&1D4v
z7a}UkXWtW%j;7 at _E|gXysqYj`L=cgJD7ajj4|IZ89Z`Z<S*nXRA%@$rf*rQAe}q{7
zDs*9~O>DjaD$oj=ZkN&hPM7DD(?WOwQ)6T1K!v#sF|=qAsB2B12(=8t*ZuL&ja!E#
z#fCOUv!)XfzcgR!z-CPO+!csDdQ$Tv8{jTMESD8hbyKILLc?#)8Ar$k1dCx{Q;kwx
z&?-ZEY?)Et#t>lY^AZz>gx2TS{6l=^ju<al$tRGVStkMnve(qGd#Xtgk;08az(;Zh
z?m6Q$c&39UHG_>Qr%sXO?VHp2RNxo13}mnLbJU38nNS5;d6Bo~Hh}~}$zj5 at TpHHQ
zG_efz?~yf+eu($sQ at 77kiU<HfPgIPDaLLH at nx*N-J4q$|UFlDl<zkYd+oLuP&=}!}
zAd8A-Ba?-~LWY at 4Ai!n;5}E1?Mb*LFZ0Ly`c<lRd+AJbr6&54Yfh&f|>JtmpOEc(Z
z?m+I`@u&Xpyi$BWE~KfIPhz&G8G5ba!5r>2g($xIDNu=A8&e?|mCULFg2}2bGIlYt
zCu6$;RW(Ov7oCD5wI13W`r+RAxHE{XRnMqMCh{G0m151MbTr6m*1Q=3#EY+b(a at A_
zq+XUyV?0hpRuN5pL`x-eBpq)bh>M6ofjnWx04-}(jlMvH<wK=`8lUk4G3cRq4AToI
zPpqHLRR#k`2KnKMsz!SNM)V-sOF66S;p(Fr_Lb$W7o63aAz_#+zkc*9Q5t~VJ&fe_
zRrzjIWgx2I)2f7{CyDjM*~p@}wM15IXm2wpUw*g)0oB4syO+73VZP(ty at b<Q$DjqO
znM at 1IsxQd}aY_lah(0wtQPAt4$|MCI>Sl$}MWP`57VY>gwTEI at 6bHwM+nojw8O7kF
ziw6&kRNOrSa!r=B4{bRHX=LnWx0^uS1c5yoDz5^f-Xj29u!3vGEG=JN7y@(>+5+7s
z$}8;PSw3{%2+<^RX0|K416lD*Q^9Znxd!EJoR;YbVB$^hKp0C~#e1hAo;CH4VQ6GT
zS(Q6)KMiv^t24#eI|V`DiS<ob7LwZtpI42ehu+Pu+vD90`-V{RBmjdx1W~N4;xoEB
zk$TdOrJsOTH?TsXBjImkx-}Athb01?EV|yOZE>9{Tp|dJoLS?A`a=hZ4^4^o%Xwn;
zCUv>9k{fS&qB;A4i8G>?8%yQbiN-b_LdMa{9u3+r>qrKS$1=*j=}Qz`{VeZ+Aj9+)
zzwWBKtA{?y|3fA-m~nfYJgaN0y39sZ=+)A;;`ztSx1+Ebd(+tO$fAUVIpZdszxt(=
zd?yg%sGgG1KjT#O(secaAD>+;AM2cr81wVLMjLp>)StqaR&dMJ7eCS%=Nk&L!4g73
zUw6#)15=$C;Z9!kx>pg5hPTK%<ucU!R at kOy#GN7iV$XH&mk=4kEs0oum=hWi$qHl2
zR06m|Et1`;1qX!lcy})!_SaydXijZa=lp8TTYQc&w*5}Q<+FP|YSl%)#DID?6Kh^(
zAy5<(#7VcWmECl?virRNmrP&5Lzl1#2XXAgwkxqdV+AIewqRTH0}|h(L_sXiUI~rB
zrIun^NrXflyh>+e*DZ=sc>wJu+_LB&3%utgO|HaiLhe#5sk at w<GLJww6$I2|<-K|s
zJn;$Epy?!aBuA$V$L#?|R0B5f;u-0qmn^di17F8FGZH at +6NspoAPRDhsKYCL1+s07
zQA0i=;vU0<PBCErAA948SXvg31xAw;8>qJS39kv8U0p}j2-FN&+wPiSRLPYzw$yci
zXF>9H%MEJ1T7ofaK<zdvXFnI`oT3@@{{Sf&ngH&X at B6<BcZXhM&Ry5Z_e}3fp$E>e
zVCnZxh6T?4dop%iF{(no?j7zvL*u<J>+hZ3eQ}~hY3?5TFz9d5igBhVU~>gr)-W>S
zIUx*P%vnr=hc-3LSF9PgR4u*X38I*v at 6F5E^9#QEcRrpL!QI57O=do7ARykTA0t8T
zw<31N at zM4n+t7ziXvA&^{=a;z at x$x)E0G9fK$T&Vq8T75l#T3?G9dnoW+MZ+<AOOd
zFE>gcHX=*00-R)!rI9kCf#aeqyj?$xj4 at aL)_ZhzHg#w77kA1C18@{MX(g!=iBG=&
E2aqv at kpKVy
literal 0
HcmV?d00001
diff --git a/clang/docs/analyzer/user-docs.rst b/clang/docs/analyzer/user-docs.rst
index 2292cec6944b1f..08cb5119e810bd 100644
--- a/clang/docs/analyzer/user-docs.rst
+++ b/clang/docs/analyzer/user-docs.rst
@@ -6,5 +6,9 @@ Contents:
.. toctree::
:maxdepth: 2
+ user-docs/Installation
+ user-docs/CommandLineUsage
+ user-docs/UsingWithXCode
+ user-docs/FilingBugs
user-docs/CrossTranslationUnit
user-docs/TaintAnalysisConfiguration
diff --git a/clang/docs/analyzer/user-docs/CommandLineUsage.rst b/clang/docs/analyzer/user-docs/CommandLineUsage.rst
new file mode 100644
index 00000000000000..d7f8253469df40
--- /dev/null
+++ b/clang/docs/analyzer/user-docs/CommandLineUsage.rst
@@ -0,0 +1,239 @@
+Command Line Usage: scan-build and CodeChecker
+==============================================
+
+This document provides guidelines for running the static analyzer from the command line on whole projects.
+CodeChecker and scan-build are two CLI tools for using CSA on multiple files (tranlation units).
+Both provide a way of driving the analyzer, detecting compilation flags, and generating reports.
+CodeChecker is more actively maintained, provides heuristics for working with multiple versions of popular compilers and it also comes with a web-based GUI for viewing, filtering, categorizing and suppressing the results.
+Therefore CodeChecker is recommended in case you need any of the above features or just more customizability in general.
+
+Comparison of CodeChecker and scan-build
+----------------------------------------
+
+The static analyzer is by design a GUI tool originally intended to be consumed by the XCode IDE.
+Its purpose is to find buggy execution paths in the program, and such paths are very hard to comprehend by looking at a non-interactive standard output.
+It is possible, however, to invoke the static analyzer from the command line in order to obtain analysis results, and then later view them interactively in a graphical interface.
+The following tools are used commonly to run the analyzer from the command line.
+Both tools are wrapper scripts to drive the analysis and the underlying invocations of the Clang compiler:
+
+1. scan-build_ is an old and simple command line tool that emits static analyzer warnings as HTML files while compiling your project. You can view the analysis results in your web browser.
+ - Useful for individual developers who simply want to view static analysis results at their desk, or in a very simple collaborative environment.
+ - Works on all major platforms (Windows, Linux, macOS) and is available as a package in many Linux distributions.
+ - Does not include support for cross-translation-unit analysis.
+
+2. CodeChecker_ is a driver and web server that runs the static analyzer on your projects on demand and maintains a database of issues.
+ - Perfect for managing large amounts of thee static analyzer warnings in a collaborative environment.
+ - Generally much more feature-rich than scan-build.
+ - Supports incremental analysis: Results can be stored in a database, subsequent analysis runs can be compared to list the newly added defects.
+ - :doc:`CrossTranslationUnit` is supported fully on Linux via CodeChecker.
+ - Can run clang-tidy checkers too.
+ - Open source, but out-of-tree, i.e. not part of the LLVM project.
+
+scan-build
+----------
+
+**scan-build** is a command line utility that enables a user to run the static analyzer over their codebase as part of performing a regular build (from the command line).
+
+How does it work?
+~~~~~~~~~~~~~~~~~
+
+During a project build, as source files are compiled they are also analyzed in tandem by the static analyzer.
+
+Upon completion of the build, results are then presented to the user within a web browser.
+
+Will it work with any build system?
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+**scan-build** has little or no knowledge about how you build your code. It works by overriding the ``CC`` and ``CXX`` environment variables to (hopefully) change your build to use a "fake" compiler instead of the one that would normally build your project. This fake compiler executes either ``clang`` or ``gcc`` (depending on the platform) to compile your code and then executes the static analyzer to analyze your code.
+
+This "poor man's interposition" works amazingly well in many cases and falls down in others. Please consult the information on this page on making the best use of **scan-build**, which includes getting it to work when the aforementioned hack fails to work.
+
+.. image:: ../images/scan_build_cmd.png
+
+.. image:: ../images/analyzer_html.png
+
+**Viewing static analyzer results in a web browser**
+
+Basic Usage
+~~~~~~~~~~~
+
+Basic usage of ``scan-build`` is designed to be simple: just place the word "scan-build" in front of your build command::
+
+ $ scan-build make
+ $ scan-build xcodebuild
+
+In the first case ``scan-build`` analyzes the code of a project built with ``make`` and in the second case ``scan-build`` analyzes a project built using ``xcodebuild``.
+
+Here is the general format for invoking ``scan-build``::
+
+ $ scan-build [scan-build options] <command> [command options]
+
+Operationally, ``scan-build`` literally runs <command> with all of the subsequent options passed to it. For example, one can pass ``-j4`` to ``make`` get a parallel build over 4 cores::
+
+ $ scan-build make -j4
+
+In almost all cases, ``scan-build`` makes no effort to interpret the options after the build command; it simply passes them through. In general, ``scan-build`` should support parallel builds, but **not distributed builds**.
+
+It is also possible to use ``scan-build`` to analyze specific files::
+
+ $ scan-build gcc -c t1.c t2.c
+
+This example causes the files ``t1.c`` and ``t2.c`` to be analyzed.
+
+For Windows Users
+~~~~~~~~~~~~~~~~~
+
+Windows users must have Perl installed to use scan-build.
+
+``scan-build.bat`` script allows you to launch scan-build in the same way as it described in the Basic Usage section above. To invoke scan-build from an arbitrary location, add the path to the folder containing scan-build.bat to your PATH environment variable.
+
+If you have unexpected compilation/make problems when running scan-build with MinGW/MSYS the following information may be helpful:
+
+- If getting unexpected ``"fatal error: no input files"`` while building with MSYS make from the Windows cmd, try one of these solutions:
+ - Use MinGW ``mingw32-make`` instead of MSYS ``make`` and exclude the path to MSYS from PATH to prevent ``mingw32-make`` from using MSYS utils. MSYS utils are dependent on the MSYS runtime and they are not intended for being run from the Windows cmd. Specifically, makefile commands with backslashed quotes may be heavily corrupted when passed for execution.
+ - Run ``make`` from the sh shell::
+
+ $ scan-build [scan-build options] sh -c "make [make options]"
+
+- If getting ``"Error : *** target pattern contains no `%'"`` while using GNU Make 3.81, try to use another version of make.
+
+Other Options
+~~~~~~~~~~~~~
+
+As mentioned above, extra options can be passed to ``scan-build``. These options prefix the build command. For example::
+
+ $ scan-build -k -V make
+ $ scan-build -k -V xcodebuild
+
+Here is a subset of useful options:
+
+- **-o**: Target directory for HTML report files. Subdirectories will be created as needed to represent separate "runs" of the analyzer. If this option is not specified, a directory is created in ``/tmp`` to store the reports.
+- **-h** *(or no arguments)*: Display all ``scan-build`` options.
+- **-k**, **--keep-going**: Add a "keep on going" option to the specified build command. This option currently supports ``make`` and ``xcodebuild``. This is a convenience option; one can specify this behavior directly using build options.
+- **-v**: Verbose output from scan-build and the analyzer. **A second and third "-v" increases verbosity**, and is useful for filing bug reports against the analyzer.
+- **-V**: View analysis results in a web browser when the build command completes.
+- **--use-analyzer Xcode** *(or)* **--use-analyzer [path to clang]**: ``scan-build`` uses the 'clang' executable relative to itself for static analysis. One can override this behavior with this option by using the 'clang' packaged with Xcode (on OS X) or from the PATH.
+
+A complete list of options can be obtained by running ``scan-build`` with no arguments.
+
+Output of scan-build
+~~~~~~~~~~~~~~~~~~~~
+
+The output of scan-build is a set of HTML files, each one which represents a separate bug report. A single ``index.html`` file is generated for surveying all of the bugs. You can then just open ``index.html`` in a web browser to view the bug reports.
+
+Where the HTML files are generated is specified with a **-o** option to ``scan-build``. If **-o** isn't specified, a directory in ``/tmp`` is created to store the files (``scan-build`` will print a message telling you where they are). If you want to view the reports immediately after the build completes, pass **-V** to ``scan-build``.
+
+Recommended Usage Guidelines
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+This section describes a few recommendations with running the analyzer.
+
+Always Analyze a Project in its "Debug" Configuration
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+Most projects can be built in a "debug" mode that enables assertions. Assertions are picked up by the static analyzer to prune infeasible paths, which in some cases can greatly reduce the number of false positives (bogus error reports) emitted by the tool.
+
+Another option is to use ``--force-analyze-debug-code`` flag of **scan-build** tool which would enable assertions automatically.
+
+Use Verbose Output when Debugging scan-build
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+``scan-build`` takes a **-v** option to emit verbose output about what it's doing; two **-v** options emit more information. Redirecting the output of ``scan-build`` to a text file (make sure to redirect standard error) is useful for filing bug reports against ``scan-build`` or the analyzer, as we can see the exact options (and files) passed to the analyzer. For more comprehensible logs, don't perform a parallel build.
+
+Run './configure' through scan-build
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+If an analyzed project uses an autoconf generated ``configure`` script, you will probably need to run ``configure`` script through ``scan-build`` in order to analyze the project.
+
+**Example**::
+
+ $ scan-build ./configure
+ $ scan-build --keep-cc make
+
+The reason ``configure`` also needs to be run through ``scan-build`` is because ``scan-build`` scans your source files by *interposing* on the compiler. This interposition is currently done by ``scan-build`` temporarily setting the environment variable ``CC`` to ``ccc-analyzer``. The program ``ccc-analyzer`` acts like a fake compiler, forwarding its command line arguments over to the compiler to perform regular compilation and ``clang`` to perform static analysis.
+
+Running ``configure`` typically generates makefiles that have hardwired paths to the compiler, and by running ``configure`` through ``scan-build`` that path is set to ``ccc-analyzer``.
+
+Analyzing iPhone Projects
+~~~~~~~~~~~~~~~~~~~~~~~~~
+
+Conceptually Xcode projects for iPhone applications are nearly the same as their cousins for desktop applications. **scan-build** can analyze these projects as well, but users often encounter problems with just building their iPhone projects from the command line because there are a few extra preparative steps they need to take (e.g., setup code signing).
+
+Recommendation: use "Build and Analyze"
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+The absolute easiest way to analyze iPhone projects is to use the `Analyze feature in Xcode <https://developer.apple.com/library/ios/recipes/xcode_help-source_editor/chapters/Analyze.html#//apple_ref/doc/uid/TP40009975-CH4-SW1>`_ (which is based on the static analyzer). There a user can analyze their project right from a menu without most of the setup described later.
+
+`Instructions are available <../xcode.html>`_ on this website on how to use open source builds of the analyzer as a replacement for the one bundled with Xcode.
+
+Using scan-build directly
+~~~~~~~~~~~~~~~~~~~~~~~~~
+
+If you wish to use **scan-build** with your iPhone project, keep the following things in mind:
+
+- Analyze your project in the ``Debug`` configuration, either by setting this as your configuration with Xcode or by passing ``-configuration Debug`` to ``xcodebuild``.
+- Analyze your project using the ``Simulator`` as your base SDK. It is possible to analyze your code when targeting the device, but this is much easier to do when using Xcode's *Build and Analyze* feature.
+- Check that your code signing SDK is set to the simulator SDK as well, and make sure this option is set to ``Don't Code Sign``.
+
+Note that you can most of this without actually modifying your project. For example, if your application targets iPhoneOS 2.2, you could run **scan-build** in the following manner from the command line::
+
+ $ scan-build xcodebuild -configuration Debug -sdk iphonesimulator2.2
+
+Alternatively, if your application targets iPhoneOS 3.0::
+
+ $ scan-build xcodebuild -configuration Debug -sdk iphonesimulator3.0
+
+Gotcha: using the right compiler
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+Recall that **scan-build** analyzes your project by using a compiler to compile the project and ``clang`` to analyze your project. The script uses simple heuristics to determine which compiler should be used (it defaults to ``clang`` on Darwin and ``gcc`` on other platforms). When analyzing iPhone projects, **scan-build** may pick the wrong compiler than the one Xcode would use to build your project. For example, this could be because multiple versions of a compiler may be installed on your system, especially if you are developing for the iPhone.
+
+When compiling your application to run on the simulator, it is important that **scan-build** finds the correct version of ``gcc/clang``. Otherwise, you may see strange build errors that only happen when you run ``scan-build``.
+
+**scan-build** provides the ``--use-cc`` and ``--use-c++`` options to hardwire which compiler scan-build should use for building your code. Note that although you are chiefly interested in analyzing your project, keep in mind that running the analyzer is intimately tied to the build, and not being able to compile your code means it won't get fully analyzed (if at all).
+
+If you aren't certain which compiler Xcode uses to build your project, try just running ``xcodebuild`` (without **scan-build**). You should see the full path to the compiler that Xcode is using, and use that as an argument to ``--use-cc``.
+
+CodeChecker
+-----------
+
+Basic Usage
+~~~~~~~~~~~
+
+Install CodeChecker as described here: `CodeChecker Install Guide <https://github.com/Ericsson/codechecker/#Install-guide>`_.
+
+Create a compilation database. If you use cmake then pass the ``-DCMAKE_EXPORT_COMPILE_COMMANDS=1`` parameter to cmake. Cmake will create a ``compile_commands.json`` file.
+If you have a Makefile based or similar build system then you can log the build commands with the help of CodeChecker::
+
+ make clean
+ CodeChecker log -b "make" -o compile_commands.json
+
+Analyze your project::
+
+ CodeChecker analyze compile_commands.json -o ./reports
+
+View the analysis results.
+Print the detailed results in the command line::
+
+ CodeChecker parse --print-steps ./reports
+
+Or view the detailed results in a browser::
+
+ CodeChecker parse ./reports -e html -o ./reports_html
+ firefox ./reports_html/index.html
+
+Optional: store the analysis results in a DB::
+
+ mkdir ./ws
+ CodeChecker server -w ./ws -v 8555 &
+ CodeChecker store ./reports --name my-project --url http://localhost:8555/Default
+
+Optional: manage (categorize, suppress) the results in your web browser::
+
+ firefox http://localhost:8555/Default
+
+Detailed Usage
+~~~~~~~~~~~~~~
+
+For extended documentation please refer to the `official site of CodeChecker <https://github.com/Ericsson/codechecker/blob/master/docs/usage.md>`_!
+
diff --git a/clang/docs/analyzer/user-docs/FilingBugs.rst b/clang/docs/analyzer/user-docs/FilingBugs.rst
new file mode 100644
index 00000000000000..4fd7100b38d421
--- /dev/null
+++ b/clang/docs/analyzer/user-docs/FilingBugs.rst
@@ -0,0 +1,18 @@
+Filing Bugs and Feature Requests
+================================
+
+We encourage users to file bug reports for any problems that they encounter.
+We also welcome feature requests. When filing a bug report, please do the
+following:
+
+- Include the checker build (for prebuilt Mac OS X binaries) or the git hash.
+
+- Provide a self-contained, reduced test case that exhibits the issue you are
+ experiencing.
+
+- Test cases don't tell us everything. Please briefly describe the problem you
+ are seeing, including what you thought should have been the expected behavior
+ and why.
+
+Please `file bugs and feature requests <https://llvm.org/docs/HowToSubmitABug.html>`_
+in `LLVM's issue tracker <https://github.com/llvm/llvm-project/issues>`_ and label the report with the ``clang:static analyzer`` label.
diff --git a/clang/docs/analyzer/user-docs/Installation.rst b/clang/docs/analyzer/user-docs/Installation.rst
new file mode 100644
index 00000000000000..f1656fc80c2e30
--- /dev/null
+++ b/clang/docs/analyzer/user-docs/Installation.rst
@@ -0,0 +1,37 @@
+Obtaining the Static Analyzer
+=============================
+
+This page describes how to download and install the analyzer. Once the analyzer is installed, follow the :doc:`CommandLineUsage` on using the command line to get started analyzing your code.
+
+.. contents::
+ :local:
+
+
+Building the Analyzer from Source
+---------------------------------
+
+Currently there are no officially supported binary distributions for the static analyzer.
+You must build Clang and LLVM manually.
+To do so, please follow the instructions for `building Clang from source code <https://clang.llvm.org/get_started.html#build>`_.
+
+Once the Clang is built, you need to add the location of the ``clang`` binary and the locations of the command line utilities (`CodeChecker` or ``scan-build`` and ``scan-view``) to you PATH for :doc:`CommandLineUsage`.
+
+[Legacy] Packaged Builds (Mac OS X)
+-----------------------------------
+
+Semi-regular pre-built binaries of the analyzer used to be available on Mac OS X. These were built to run on OS X 10.7 and later.
+
+For older builds for MacOS visit https://clang-analyzer.llvm.org/release_notes.html.
+
+Packaged builds for other platforms may eventually be provided, but we need volunteers who are willing to help provide such regular builds. If you wish to help contribute regular builds of the analyzer on other platforms, please get in touch via `LLVM Discourse <https://discourse.llvm.org/>`_.
+
+[Legacy] Using Packaged Builds
+------------------------------
+
+To use the legacy pacakge builds, simply unpack it anywhere. If the build archive has the name **``checker-XXX.tar.bz2``** then the archive will expand to a directory called **``checker-XXX``**. You do not need to place this directory or the contents of this directory in any special place. Uninstalling the analyzer is as simple as deleting this directory.
+
+Most of the files in the **``checker-XXX``** directory will be supporting files for the analyzer that you can simply ignore. Most users will only care about two files, which are located at the top of the **``checker-XXX``** directory:
+
+* **scan-build**: ``scan-build`` is the high-level command line utility for running the analyzer
+* **scan-view**: ``scan-view`` a companion command line utility to ``scan-build``, ``scan-view`` is used to view analysis results generated by ``scan-build``. There is an option that one can pass to ``scan-build`` to cause ``scan-view`` to run as soon as it the analysis of a build completes
+
diff --git a/clang/docs/analyzer/user-docs/UsingWithXCode.rst b/clang/docs/analyzer/user-docs/UsingWithXCode.rst
new file mode 100644
index 00000000000000..d4f76afa9fb9a8
--- /dev/null
+++ b/clang/docs/analyzer/user-docs/UsingWithXCode.rst
@@ -0,0 +1,88 @@
+Running the analyzer within Xcode
+=================================
+
+.. contents::
+ :local:
+
+Since Xcode 3.2, users have been able to run the static analyzer `directly within Xcode <https://developer.apple.com/library/ios/recipes/xcode_help-source_editor/chapters/Analyze.html#//apple_ref/doc/uid/TP40009975-CH4-SW1>`_.
+
+It integrates directly with the Xcode build system and presents analysis results directly within Xcode's editor.
+
+Can I use the open source analyzer builds with Xcode?
+-----------------------------------------------------
+
+**Yes**. Instructions are included below.
+
+.. image:: ../images/analyzer_xcode.png
+
+**Viewing static analyzer results in Xcode**
+
+Key features:
+-------------
+
+- **Integrated workflow:** Results are integrated within Xcode. There is no experience of using a separate tool, and activating the analyzer requires a single keystroke or mouse click.
+- **Transparency:** Works effortlessly with Xcode projects (including iPhone projects).
+- **Cons:** Doesn't work well with non-Xcode projects. For those, consider :doc:`CommandLineUsage`.
+
+Getting Started
+---------------
+
+Xcode is available as a free download from Apple on the `Mac App Store <https://itunes.apple.com/us/app/xcode/id497799835?mt=12>`_, with `instructions available <https://developer.apple.com/library/ios/recipes/xcode_help-source_editor/chapters/Analyze.html#//apple_ref/doc/uid/TP40009975-CH4-SW1>`_ for using the analyzer.
+
+Using open source analyzer builds with Xcode
+--------------------------------------------
+
+By default, Xcode uses the version of ``clang`` that came bundled with it to analyze your code. It is possible to change Xcode's behavior to use an alternate version of ``clang`` for this purpose while continuing to use the ``clang`` that came with Xcode for compiling projects.
+
+Why try open source builds?
+----------------------------
+
+The advantage of using open source analyzer builds (provided on this website) is that they are often newer than the analyzer provided with Xcode, and thus can contain bug fixes, new checks, or simply better analysis.
+
+On the other hand, new checks can be experimental, with results of variable quality. Users are encouraged to file bug reports (for any version of the analyzer) where they encounter false positives or other issues here: :doc:`FilingBugs`.
+
+set-xcode-analyzer
+------------------
+
+Starting with analyzer build checker-234, analyzer builds contain a command line utility called ``set-xcode-analyzer`` that allows users to change what copy of ``clang`` that Xcode uses for analysis::
+
+ $ set-xcode-analyzer -h
+ Usage: set-xcode-analyzer [options]
+
+ Options:
+ -h, --help show this help message and exit
+ --use-checker-build=PATH
+ Use the Clang located at the provided absolute path,
+ e.g. /Users/foo/checker-1
+ --use-xcode-clang Use the Clang bundled with Xcode
+
+Operationally, **set-xcode-analyzer** edits Xcode's configuration files to point it to use the version of ``clang`` you specify for static analysis. Within this model it provides you two basic modes:
+
+- **--use-xcode-clang:** Switch Xcode (back) to using the ``clang`` that came bundled with it for static analysis.
+- **--use-checker-build:** Switch Xcode to using the ``clang`` provided by the specified analyzer build.
+
+Things to keep in mind
+----------------------
+
+- You should quit Xcode prior to running ``set-xcode-analyzer``.
+- You will need to run ``set-xcode-analyzer`` under **``sudo``** in order to have write privileges to modify the Xcode configuration files.
+
+Examples
+--------
+
+**Example 1**: Telling Xcode to use checker-235::
+
+ $ pwd
+ /tmp
+ $ tar xjf checker-235.tar.bz2
+ $ sudo checker-235/set-xcode-analyzer --use-checker-build=/tmp/checker-235
+
+Note that you typically won't install an analyzer build in ``/tmp``, but the point of this example is that ``set-xcode-analyzer`` just wants a full path to an untarred analyzer build.
+
+**Example 2**: Telling Xcode to use a very specific version of ``clang``::
+
+ $ sudo set-xcode-analyzer --use-checker-build=~/mycrazyclangbuild/bin/clang
+
+**Example 3**: Resetting Xcode to its default behavior::
+
+ $ sudo set-xcode-analyzer --use-xcode-clang
diff --git a/clang/lib/CodeGen/CGOpenMPRuntime.cpp b/clang/lib/CodeGen/CGOpenMPRuntime.cpp
index 3febeed7b72d9b..8bc202f402aa39 100644
--- a/clang/lib/CodeGen/CGOpenMPRuntime.cpp
+++ b/clang/lib/CodeGen/CGOpenMPRuntime.cpp
@@ -30,6 +30,7 @@
#include "llvm/ADT/ArrayRef.h"
#include "llvm/ADT/SetOperations.h"
#include "llvm/ADT/SmallBitVector.h"
+#include "llvm/ADT/SmallVector.h"
#include "llvm/ADT/StringExtras.h"
#include "llvm/Bitcode/BitcodeReader.h"
#include "llvm/IR/Constants.h"
@@ -10357,16 +10358,12 @@ void CGOpenMPRuntime::emitTargetDataStandAloneCall(
// Source location for the ident struct
llvm::Value *RTLoc = emitUpdateLocation(CGF, D.getBeginLoc());
- llvm::Value *OffloadingArgs[] = {
- RTLoc,
- DeviceID,
- PointerNum,
- InputInfo.BasePointersArray.emitRawPointer(CGF),
- InputInfo.PointersArray.emitRawPointer(CGF),
- InputInfo.SizesArray.emitRawPointer(CGF),
- MapTypesArray,
- MapNamesArray,
- InputInfo.MappersArray.emitRawPointer(CGF)};
+ SmallVector<llvm::Value *, 13> OffloadingArgs(
+ {RTLoc, DeviceID, PointerNum,
+ InputInfo.BasePointersArray.emitRawPointer(CGF),
+ InputInfo.PointersArray.emitRawPointer(CGF),
+ InputInfo.SizesArray.emitRawPointer(CGF), MapTypesArray, MapNamesArray,
+ InputInfo.MappersArray.emitRawPointer(CGF)});
// Select the right runtime function call for each standalone
// directive.
@@ -10455,6 +10452,12 @@ void CGOpenMPRuntime::emitTargetDataStandAloneCall(
llvm_unreachable("Unexpected standalone target data directive.");
break;
}
+ if (HasNowait) {
+ OffloadingArgs.push_back(llvm::Constant::getNullValue(CGF.Int32Ty));
+ OffloadingArgs.push_back(llvm::Constant::getNullValue(CGF.VoidPtrTy));
+ OffloadingArgs.push_back(llvm::Constant::getNullValue(CGF.Int32Ty));
+ OffloadingArgs.push_back(llvm::Constant::getNullValue(CGF.VoidPtrTy));
+ }
CGF.EmitRuntimeCall(
OMPBuilder.getOrCreateRuntimeFunction(CGM.getModule(), RTLFn),
OffloadingArgs);
diff --git a/clang/test/OpenMP/declare_mapper_codegen.cpp b/clang/test/OpenMP/declare_mapper_codegen.cpp
index 647e2a09074353..8c1db22fb7ff73 100644
--- a/clang/test/OpenMP/declare_mapper_codegen.cpp
+++ b/clang/test/OpenMP/declare_mapper_codegen.cpp
@@ -514,7 +514,7 @@ void foo(int a){
// CK0: }
// CK0: define internal void [[OMP_OUTLINED_16:@.+]](i32{{.*}} %{{[^,]+}}, ptr noalias noundef %{{[^,]+}}, ptr noalias noundef %{{[^,]+}}
-// CK0-DAG: call void @__tgt_target_data_begin_nowait_mapper(ptr @{{.+}}, i64 -1, i32 1, ptr [[BP:%[^,]+]], ptr [[P:%[^,]+]], ptr [[SZ:%[^,]+]], ptr [[EDNWTYPES]], ptr null, ptr [[MPR:%.+]])
+// CK0-DAG: call void @__tgt_target_data_begin_nowait_mapper(ptr @{{.+}}, i64 -1, i32 1, ptr [[BP:%[^,]+]], ptr [[P:%[^,]+]], ptr [[SZ:%[^,]+]], ptr [[EDNWTYPES]], ptr null, ptr [[MPR:%.+]], i32 0, ptr null, i32 0, ptr null)
// CK0-DAG: [[BP]] = getelementptr inbounds [1 x ptr], ptr [[BPADDR:%[^,]+]], i[[sz]] 0, i[[sz]] 0
// CK0-DAG: [[P]] = getelementptr inbounds [1 x ptr], ptr [[PADDR:%[^,]+]], i[[sz]] 0, i[[sz]] 0
// CK0-DAG: [[SZ]] = getelementptr inbounds [1 x i64], ptr [[SZADDR:%[^,]+]], i[[sz]] 0, i[[sz]] 0
@@ -533,7 +533,7 @@ void foo(int a){
// CK0: }
// CK0: define internal void [[OMP_OUTLINED_23:@.+]](i32{{.*}} %{{[^,]+}}, ptr noalias noundef %{{[^,]+}}, ptr noalias noundef %{{[^,]+}}
-// CK0-DAG: call void @__tgt_target_data_end_nowait_mapper(ptr @{{.+}}, i64 -1, i32 1, ptr [[BP:%[^,]+]], ptr [[P:%[^,]+]], ptr [[SZ:%[^,]+]], ptr [[EXDNWTYPES]], ptr null, ptr [[MPR:%.+]])
+// CK0-DAG: call void @__tgt_target_data_end_nowait_mapper(ptr @{{.+}}, i64 -1, i32 1, ptr [[BP:%[^,]+]], ptr [[P:%[^,]+]], ptr [[SZ:%[^,]+]], ptr [[EXDNWTYPES]], ptr null, ptr [[MPR:%.+]], i32 0, ptr null, i32 0, ptr null)
// CK0-DAG: [[BP]] = getelementptr inbounds [1 x ptr], ptr [[BPADDR:%[^,]+]], i[[sz]] 0, i[[sz]] 0
// CK0-DAG: [[P]] = getelementptr inbounds [1 x ptr], ptr [[PADDR:%[^,]+]], i[[sz]] 0, i[[sz]] 0
// CK0-DAG: [[SZ]] = getelementptr inbounds [1 x i64], ptr [[SZADDR:%[^,]+]], i[[sz]] 0, i[[sz]] 0
@@ -551,7 +551,7 @@ void foo(int a){
// CK0: }
// CK0: define internal void [[OMP_OUTLINED_32:@.+]](i32{{.*}} %{{[^,]+}}, ptr noalias noundef %{{[^,]+}}, ptr noalias noundef %{{[^,]+}}
-// CK0-DAG: call void @__tgt_target_data_update_nowait_mapper(ptr @{{.+}}, i64 -1, i32 1, ptr [[BP:%[^,]+]], ptr [[P:%[^,]+]], ptr [[SZ:%[^,]+]], ptr [[FNWTYPES]], ptr null, ptr [[MPR:%.+]])
+// CK0-DAG: call void @__tgt_target_data_update_nowait_mapper(ptr @{{.+}}, i64 -1, i32 1, ptr [[BP:%[^,]+]], ptr [[P:%[^,]+]], ptr [[SZ:%[^,]+]], ptr [[FNWTYPES]], ptr null, ptr [[MPR:%.+]], i32 0, ptr null, i32 0, ptr null)
// CK0-DAG: [[BP]] = getelementptr inbounds [1 x ptr], ptr [[BPADDR:%[^,]+]], i[[sz]] 0, i[[sz]] 0
// CK0-DAG: [[P]] = getelementptr inbounds [1 x ptr], ptr [[PADDR:%[^,]+]], i[[sz]] 0, i[[sz]] 0
// CK0-DAG: [[SZ]] = getelementptr inbounds [1 x i64], ptr [[SZADDR:%[^,]+]], i[[sz]] 0, i[[sz]] 0
diff --git a/clang/test/OpenMP/target_enter_data_codegen.cpp b/clang/test/OpenMP/target_enter_data_codegen.cpp
index 147d372fccaaf2..dd94020b28e11e 100644
--- a/clang/test/OpenMP/target_enter_data_codegen.cpp
+++ b/clang/test/OpenMP/target_enter_data_codegen.cpp
@@ -209,7 +209,7 @@ void foo(int arg) {
// CK1: define internal {{.*}}i32 [[OMP_TASK_ENTRY]](i32 {{.*}}%0, ptr noalias noundef %1)
-// CK1-DAG: call void @__tgt_target_data_begin_nowait_mapper(ptr @{{.+}}, i64 %{{[^,]+}}, i32 1, ptr [[BPADDR:%[^,]+]], ptr [[PADDR:%[^,]+]], ptr [[SZADDR:%[^,]+]], ptr [[MTYPE00]], ptr null, ptr null)
+// CK1-DAG: call void @__tgt_target_data_begin_nowait_mapper(ptr @{{.+}}, i64 %{{[^,]+}}, i32 1, ptr [[BPADDR:%[^,]+]], ptr [[PADDR:%[^,]+]], ptr [[SZADDR:%[^,]+]], ptr [[MTYPE00]], ptr null, ptr null, i32 0, ptr null, i32 0, ptr null)
// CK1-DAG: [[BPADDR]] = load ptr, ptr [[FPBP:%[^,]+]], align
// CK1-DAG: [[PADDR]] = load ptr, ptr [[FPP:%[^,]+]], align
// CK1-DAG: [[SZADDR]] = load ptr, ptr [[FPSZ:%[^,]+]], align
diff --git a/clang/test/OpenMP/target_exit_data_codegen.cpp b/clang/test/OpenMP/target_exit_data_codegen.cpp
index 96a0a5063dd6e0..01e3b4fc3364e3 100644
--- a/clang/test/OpenMP/target_exit_data_codegen.cpp
+++ b/clang/test/OpenMP/target_exit_data_codegen.cpp
@@ -206,7 +206,7 @@ void foo(int arg) {
}
// CK1: define internal {{.*}}i32 [[OMP_TASK_ENTRY]](i32 {{.*}}%{{[^,]+}}, ptr noalias noundef %{{[^,]+}})
-// CK1-DAG: call void @__tgt_target_data_end_nowait_mapper(ptr @{{.+}}, i64 %{{[^,]+}}, i32 1, ptr [[BP:%[^,]+]], ptr [[P:%[^,]+]], ptr [[SZ:%[^,]+]], ptr [[MTYPE00]], ptr null, ptr null)
+// CK1-DAG: call void @__tgt_target_data_end_nowait_mapper(ptr @{{.+}}, i64 %{{[^,]+}}, i32 1, ptr [[BP:%[^,]+]], ptr [[P:%[^,]+]], ptr [[SZ:%[^,]+]], ptr [[MTYPE00]], ptr null, ptr null, i32 0, ptr null, i32 0, ptr null)
// CK1-DAG: [[BP]] = load ptr, ptr [[FPBPADDR:%[^,]+]], align
// CK1-DAG: [[P]] = load ptr, ptr [[FPPADDR:%[^,]+]], align
// CK1-DAG: [[SZ]] = load ptr, ptr [[FPSZADDR:%[^,]+]], align
diff --git a/clang/test/OpenMP/target_update_codegen.cpp b/clang/test/OpenMP/target_update_codegen.cpp
index b577be3c1b4966..de0d4bda86088a 100644
--- a/clang/test/OpenMP/target_update_codegen.cpp
+++ b/clang/test/OpenMP/target_update_codegen.cpp
@@ -151,7 +151,7 @@ void foo(int arg) {
}
// CK1: define internal {{.*}}i32 [[OMP_TASK_ENTRY]](i32 {{.*}}%{{[^,]+}}, ptr noalias noundef %{{[^,]+}})
-// CK1-DAG: call void @__tgt_target_data_update_nowait_mapper(ptr @{{.+}}, i64 %{{[^,]+}}, i32 1, ptr [[BP:%[^,]+]], ptr [[P:%[^,]+]], ptr [[SZ:%[^,]+]], ptr [[MTYPE00]], ptr null, ptr null)
+// CK1-DAG: call void @__tgt_target_data_update_nowait_mapper(ptr @{{.+}}, i64 %{{[^,]+}}, i32 1, ptr [[BP:%[^,]+]], ptr [[P:%[^,]+]], ptr [[SZ:%[^,]+]], ptr [[MTYPE00]], ptr null, ptr null, i32 0, ptr null, i32 0, ptr null)
// CK1-DAG: [[BP]] = load ptr, ptr [[FPBPADDR:%[^,]+]], align
// CK1-DAG: [[P]] = load ptr, ptr [[FPPADDR:%[^,]+]], align
// CK1-DAG: [[SZ]] = load ptr, ptr [[FPSZADDR:%[^,]+]], align
diff --git a/clang/www/analyzer/codechecker.html b/clang/www/analyzer/codechecker.html
index 469b3ceaebf8e3..6f6b4896c8f9b2 100644
--- a/clang/www/analyzer/codechecker.html
+++ b/clang/www/analyzer/codechecker.html
@@ -2,7 +2,9 @@
"http://www.w3.org/TR/html4/strict.dtd">
<html>
<head>
- <title>CodeChecker: running the analyzer from the command line</title>
+ <title>The CodeChecker documentation has moved to clang.llvm.org</title>
+ <link rel="canonical" href="https://clang.llvm.org/docs/analyzer/user-docs/CommandLineUsage.html#codechecker"/>
+ <meta http-equiv="refresh" content="0;url=https://clang.llvm.org/docs/analyzer/user-docs/CommandLineUsage.html#codechecker" />
<link type="text/css" rel="stylesheet" href="content.css">
<link type="text/css" rel="stylesheet" href="menu.css">
<script type="text/javascript" src="scripts/menu.js"></script>
@@ -13,61 +15,11 @@
<!--#include virtual="menu.html.incl"-->
<div id="content">
-<h1>CodeChecker: running the analyzer from the command line</h1>
+<h1>The Codechecker documentation has moved to clang.llvm.org</h1>
+<p style="color:red; font-size:200%">This page is deprecated and will be removed in release 21.0</p>
+<a href="https://clang.llvm.org/docs/analyzer/user-docs/CommandLineUsage.html#codechecker">The new site</a>
+<script>window.location='https://clang.llvm.org/docs/analyzer/user-docs/CommandLineUsage.html#codechecker'</script>
-<h2>Basic Usage</h2>
-
-<p>
-Install CodeChecker as described here: <a href="https://github.com/Ericsson/codechecker/#Install-guide"> CodeChecker Install Guide.</a>
-</p>
-
-<p>
-Create a compilation database. If you use cmake then pass the <tt>-DCMAKE_EXPORT_COMPILE_COMMANDS=1</tt> parameter to cmake. Cmake will create a <tt>compile_commands.json</tt> file.
-If you have a Makefile based or similar build system then you can log the build commands with the help of CodeChecker:
-<pre class="code_example">
-make clean
-CodeChecker log -b "make" -o compile_commands.json
-</pre>
-</p>
-
-<p>
-Analyze your project.
-<pre class="code_example">
-CodeChecker analyze compile_commands.json -o ./reports
-</pre>
-</p>
-
-<p>
-View the analysis results.
-Print the detailed results in the command line:
-<pre class="code_example">
-CodeChecker parse --print-steps ./reports
-</pre>
-Or view the detailed results in a browser:
-<pre class="code_example">
-CodeChecker parse ./reports -e html -o ./reports_html
-firefox ./reports_html/index.html
-</pre>
-</p>
-
-<p>
-Optional: store the analysis results in a DB.
-<pre class="code_example">
-mkdir ./ws
-CodeChecker server -w ./ws -v 8555 &
-CodeChecker store ./reports --name my-project --url http://localhost:8555/Default
-</pre>
-</p>
-
-<p>
-Optional: manage (categorize, suppress) the results in your web browser:
-<pre class="code_example">
-firefox http://localhost:8555/Default
-</pre>
-</p>
-
-<h2>Detailed Usage</h2>
-
-<p>
-For extended documentation please refer to the <a href="https://github.com/Ericsson/codechecker/blob/master/docs/usage.md">official site of CodeChecker</a>!
-</p>
+</div> <!-- content -->
+</div> <!-- page -->
+</body>
diff --git a/clang/www/analyzer/command-line.html b/clang/www/analyzer/command-line.html
index e536a7706eed79..a91829ed532b82 100644
--- a/clang/www/analyzer/command-line.html
+++ b/clang/www/analyzer/command-line.html
@@ -2,7 +2,9 @@
"http://www.w3.org/TR/html4/strict.dtd">
<html>
<head>
- <title>Running the analyzer from the command line</title>
+ <title>The command line documentation has moved to clang.llvm.org</title>
+ <link rel="canonical" href="https://clang.llvm.org/docs/analyzer/user-docs/CommandLineUsage.html"/>
+ <meta http-equiv="refresh" content="0;url=https://clang.llvm.org/docs/analyzer/user-docs/CommandLineUsage.html" />
<link type="text/css" rel="stylesheet" href="content.css">
<link type="text/css" rel="stylesheet" href="menu.css">
<script type="text/javascript" src="scripts/menu.js"></script>
@@ -13,55 +15,12 @@
<!--#include virtual="menu.html.incl"-->
<div id="content">
-<h1>Running the analyzer from the command line</h1>
+<h1>The command line documentation has moved to clang.llvm.org</h1>
+<p style="color:red; font-size:200%">This page is deprecated and will be removed in release 21.0</p>
+<a href="https://clang.llvm.org/docs/analyzer/user-docs/CommandLineUsage.html">The new site</a>
+<script>window.location='https://clang.llvm.org/docs/analyzer/user-docs/CommandLineUsage.html'</script>
-<p> Static Analyzer is by design a GUI tool. Its purpose is to find buggy execution
-paths in the program, and such paths are very hard to comprehend by looking at
-a non-interactive standard output. It is possible, however, to invoke the
-Static Analyzer from the command line in order to obtain analysis results, and
-then later view them interactively in a graphical interface. The following
-tools are used commonly to run the analyzer from the command line. Both tools
-are wrapper scripts to drive the analysis and the underlying invocations of the
-Clang compiler:
-<ol>
- <li><a href="scan-build.html">Scan-Build</a>
- is an old and simple command-line tool that emits static analyzer warnings as HTML files while compiling your project. You can view the analysis results in your web browser.
- </li>
- <ul>
- <li>
- Useful for individual developers who simply want to view static analysis results at their desk, or in a very simple collaborative environment.
- </li>
- <li>
- Works on all major platforms (Windows, Linux, macOS) and is available as a package in many Linux distributions.
- </li>
- <li>
- Does not include support for cross-translation-unit analysis.
- </li>
- </ul>
- <li><a href="codechecker.html">CodeChecker</a>
- is a web server that runs the Static Analyzer on your projects on demand and maintains a database of issues.
- </li>
- <ul>
- <li>
- Perfect for managing large amounts of Static Analyzer warnings in a collaborative environment.
- </li>
- <li>
- Generally much more feature-rich than scan-build.
- </li>
- <li>Supports incremental analysis: Results can be stored in a database, subsequent analysis runs can be compared to list the newly added defects.</li>
- <li><a href="https://clang.llvm.org/docs/analyzer/user-docs/CrossTranslationUnit.html">Cross Translation Unit (CTU) analysis</a> is supported fully on Linux via CodeChecker.</li>
- <li>Can run clang-tidy checkers too.</li>
- <li>Open source, but out-of-tree, i.e. not part of the LLVM project.</li>
- </ul>
-</ol>
-</p>
-
-<p>
-</p>
-<p>
-</p>
-
-</div>
-</div>
+</div> <!-- content -->
+</div> <!-- page -->
</body>
-</html>
+
diff --git a/clang/www/analyzer/filing_bugs.html b/clang/www/analyzer/filing_bugs.html
index f7183a9a0694b4..b78d9e798dad1a 100644
--- a/clang/www/analyzer/filing_bugs.html
+++ b/clang/www/analyzer/filing_bugs.html
@@ -2,8 +2,10 @@
"http://www.w3.org/TR/html4/strict.dtd">
<html>
<head>
+ <title>The filing bugs documentation has moved to clang.llvm.org</title>
+ <link rel="canonical" href="https://clang.llvm.org/docs/analyzer/user-docs/FilingBugs.html"/>
+ <meta http-equiv="refresh" content="0;url=https://clang.llvm.org/docs/analyzer/user-docs/FilingBugs.html" />
<meta charset="UTF-8">
- <title>Filing Bugs and Feature Requests</title>
<link type="text/css" rel="stylesheet" href="menu.css">
<link type="text/css" rel="stylesheet" href="content.css">
<script type="text/javascript" src="scripts/menu.js"></script>
@@ -14,32 +16,11 @@
<!--#include virtual="menu.html.incl"-->
<div id="content">
-<h1>Filing Bugs and Feature Requests</h1>
+<h1>The filing bugs documentation has moved to clang.llvm.org</h1>
+<p style="color:red; font-size:200%">This page is deprecated and will be removed in release 21.0</p>
+<a href="https://clang.llvm.org/docs/analyzer/user-docs/FilingBugs.html">The new site</a>
+<script>window.location='https://clang.llvm.org/docs/analyzer/user-docs/FilingBugs.html'</script>
-<p>We encourage users to file bug reports for any problems that they encounter.
-We also welcome feature requests. When filing a bug report, please do the
-following:</p>
-
-<ul>
-
-<li>Include the checker build (for prebuilt Mac OS X binaries) or the git hash.
-</li>
-
-<li>Provide a self-contained, reduced test case that exhibits the issue you are
-experiencing.</li>
-
-<li>Test cases don't tell us everything. Please briefly describe the problem you
-are seeing, including what you thought should have been the expected behavior
-and why.</li>
-
-</ul>
-
-<p>Please <a href="https://llvm.org/docs/HowToSubmitABug.html">file
-bugs and feature requests</a> in
-<a href="https://github.com/llvm/llvm-project/issues">LLVM's issue tracker</a>
-and label the report with the <code>clang:static analyzer</code> label.</p>
-
-</div>
-</div>
+</div> <!-- content -->
+</div> <!-- page -->
</body>
-</html>
diff --git a/clang/www/analyzer/index.html b/clang/www/analyzer/index.html
index 7beef7e912ccb8..ea0ed4967ec7cc 100644
--- a/clang/www/analyzer/index.html
+++ b/clang/www/analyzer/index.html
@@ -96,7 +96,7 @@ <h2>Download</h2>
<h3 style="margin:0px;padding:0px">Mac OS X</h3>
<ul>
<li>Latest build (10.8+):<br>
- <!--#include virtual="latest_checker.html.incl"-->
+ <b><a href="downloads/checker-279.tar.bz2">checker-279.tar.bz2</a></b> (built November 14, 2016)
</li>
<li><a href="/release_notes.html">Release notes</a></li>
<li>This build can be used both from the command line and from within Xcode</li>
diff --git a/clang/www/analyzer/installation.html b/clang/www/analyzer/installation.html
index cb3fa89264a956..b463677a703ca9 100644
--- a/clang/www/analyzer/installation.html
+++ b/clang/www/analyzer/installation.html
@@ -2,7 +2,9 @@
"http://www.w3.org/TR/html4/strict.dtd">
<html>
<head>
- <title>Obtaining the Static Analyzer</title>
+ <title>The installation documentation has moved to clang.llvm.org</title>
+ <link rel="canonical" href="https://clang.llvm.org/docs/analyzer/user-docs/Installation.html"/>
+ <meta http-equiv="refresh" content="0;url=https://clang.llvm.org/docs/analyzer/user-docs/Installation.html" />
<link type="text/css" rel="stylesheet" href="menu.css">
<link type="text/css" rel="stylesheet" href="content.css">
<script type="text/javascript" src="scripts/menu.js"></script>
@@ -13,98 +15,11 @@
<!--#include virtual="menu.html.incl"-->
<div id="content">
-<h1>Obtaining the Static Analyzer</h1>
+<h1>The installation documentation has moved to clang.llvm.org</h1>
+<p style="color:red; font-size:200%">This page is deprecated and will be removed in release 21.0</p>
+<a href="https://clang.llvm.org/docs/analyzer/user-docs/Installation.html">The new site</a>
+<script>window.location='https://clang.llvm.org/docs/analyzer/user-docs/Installation.html'</script>
-<p>This page describes how to download and install the analyzer. Once
-the analyzer is installed, follow the <a
-href="/scan-build.html">instructions</a> on using <tt>scan-build</tt> to
-get started analyzing your code.</p>
-
-<h2>Packaged Builds (Mac OS X)</h2>
-
-<p>Semi-regular pre-built binaries of the analyzer are available on Mac
-OS X. These are built to run on OS X 10.7 and later.</p>
-
-<p>Builds are released frequently. Often the differences between build
-numbers being a few bug fixes or minor feature improvements. When using
-the analyzer, we recommend that you check back here occasionally for new
-builds, especially if the build you are using is more than a couple
-weeks old.</p>
-
-<p>The latest build is:
- <!--#include virtual="latest_checker.html.incl"-->
-</p>
-
-<p>Packaged builds for other platforms may eventually be provided, but
-we need volunteers who are willing to help provide such regular builds.
-If you wish to help contribute regular builds of the analyzer on other
-platforms, please email the <a
-href="https://lists.llvm.org/mailman/listinfo/cfe-dev">Clang
-Developers' mailing list</a>.</p>
-
-<h3>Using Packaged Builds</h3>
-
-<p>To use a package build, simply unpack it anywhere. If the build
-archive has the name <b><tt>checker-XXX.tar.bz2</tt></b> then the
-archive will expand to a directory called <b><tt>checker-XXX</tt></b>.
-You do not need to place this directory or the contents of this
-directory in any special place. Uninstalling the analyzer is as simple
-as deleting this directory.</p>
-
-<p>Most of the files in the <b><tt>checker-XXX</tt></b> directory will
-be supporting files for the analyzer that you can simply ignore. Most
-users will only care about two files, which are located at the top of
-the <b><tt>checker-XXX</tt></b> directory:</p>
-
-<ul>
-<li><b>scan-build</b>: <tt>scan-build</tt> is the high-level command line utility for running the analyzer</li>
-<li><b>scan-view</b>: <tt>scan-view</tt> a companion command line
-utility to <tt>scan-build</tt>, <tt>scan-view</tt> is used to view
-analysis results generated by <tt>scan-build</tt>. There is an option
-that one can pass to <tt>scan-build</tt> to cause <tt>scan-view</tt> to
-run as soon as it the analysis of a build completes</li>
-</ul>
-
-<h4>Running scan-build</h4>
-
-<p>For specific details on using <tt>scan-build</tt>, please see
-<tt>scan-build</tt>'s <a href="/scan-build">documentation</a>.</p>
-
-<p>To run <tt>scan-build</tt>, either add the
-<b><tt>checker-XXX</tt></b> directory to your path or specify a complete
-path for <tt>scan-build</tt> when running it. It is also possible to use
-a symbolic link to <tt>scan-build</tt>, such one located in a directory
-in your path. When <tt>scan-build</tt> runs it will automatically
-determine where to find its accompanying files.</p>
-
-<h2 id="OtherPlatforms">Other Platforms (Building the Analyzer from Source)</h2>
-
-<p>For other platforms, you must build Clang and LLVM manually. To do
-so, please follow the instructions for <a
-href="https://clang.llvm.org/get_started.html#build">building Clang from
-source code</a>.<p>
-
-<p>Once the Clang is built, you need to add the following to your path:</p>
-
-<ul>
-
-<li>The location of the <tt>clang</tt> binary.
-
-<p>For example, if you built a <em>Debug+Asserts</em> build of LLVM/Clang (the
-default), the resultant <tt>clang</tt> binary will be in <tt>$(OBJDIR)/Debug+Asserts/bin</tt>
-(where <tt>$(OBJDIR)</tt> is often the same as the root source directory). You
-can also do <tt>make install</tt> to install the LLVM/Clang libraries and
-binaries to the installation directory of your choice (specified when you run
-<tt>configure</tt>).</p></li>
-
-<li>The locations of the <tt>scan-build</tt> and <tt>scan-view</tt>
-programs.
-
-<p>These are installed via <tt>make install</tt> into the bin directory
-when clang is built.</p></li>
-
-</ul>
-</div>
-</div>
+</div> <!-- content -->
+</div> <!-- page -->
</body>
-</html>
diff --git a/clang/www/analyzer/latest_checker.html.incl b/clang/www/analyzer/latest_checker.html.incl
deleted file mode 100644
index 439a245c8adabb..00000000000000
--- a/clang/www/analyzer/latest_checker.html.incl
+++ /dev/null
@@ -1 +0,0 @@
-<b><a href="downloads/checker-279.tar.bz2">checker-279.tar.bz2</a></b> (built November 14, 2016)
diff --git a/clang/www/analyzer/scan-build.html b/clang/www/analyzer/scan-build.html
index a2e5f6a532bd11..1d42ce00045d88 100644
--- a/clang/www/analyzer/scan-build.html
+++ b/clang/www/analyzer/scan-build.html
@@ -2,7 +2,9 @@
"http://www.w3.org/TR/html4/strict.dtd">
<html>
<head>
- <title>scan-build: running the analyzer from the command line</title>
+ <title>The scan-build documentation has moved to clang.llvm.org</title>
+ <link rel="canonical" href="https://clang.llvm.org/docs/analyzer/user-docs/CommandLineUsage.html#scan-build"/>
+ <meta http-equiv="refresh" content="0;url=https://clang.llvm.org/docs/analyzer/user-docs/CommandLineUsage.html#scan-build" />
<link type="text/css" rel="stylesheet" href="content.css">
<link type="text/css" rel="stylesheet" href="menu.css">
<script type="text/javascript" src="scripts/menu.js"></script>
@@ -13,371 +15,11 @@
<!--#include virtual="menu.html.incl"-->
<div id="content">
-<h1>scan-build: running the analyzer from the command line</h1>
+<h1>The scan-build documentation has moved to clang.llvm.org</h1>
+<p style="color:red; font-size:200%">This page is deprecated and will be removed in release 21.0</p>
+<a href="https://clang.llvm.org/docs/analyzer/user-docs/CommandLineUsage.html#scan-build">The new site</a>
+<script>window.location='https://clang.llvm.org/docs/analyzer/user-docs/CommandLineUsage.html#scan-build'</script>
-<table style="margin-top:0px" width="100%" cellpadding="0px" cellspacing="0">
-<tr><td>
-
-<h3>What is it?</h3>
-<p><b>scan-build</b> is a command line utility that enables a user to run the
-static analyzer over their codebase as part of performing a regular build (from
-the command line).</p>
-
-<h3>How does it work?</h3>
-<p>During a project build, as source files are compiled they are also analyzed
-in tandem by the static analyzer.</p>
-
-<p>Upon completion of the build, results are then presented to the user within a
-web browser.</p>
-
-<h3>Will it work with any build system?</h3>
-<p><b>scan-build</b> has little or no knowledge about how you build your code.
-It works by overriding the <tt>CC</tt> and <tt>CXX</tt> environment variables to
-(hopefully) change your build to use a "fake" compiler instead of the
-one that would normally build your project. This fake compiler executes either
-<tt>clang</tt> or <tt>gcc</tt> (depending on the platform) to compile your
-code and then executes the static analyzer to analyze your code.</p>
-
-<p>This "poor man's interposition" works amazingly well in many cases
-and falls down in others. Please consult the information on this page on making
-the best use of <b>scan-build</b>, which includes getting it to work when the
-aforementioned hack fails to work.</p>
-
-</td>
-<td style="padding-left:10px; text-align:center">
- <img src="images/scan_build_cmd.png" width="450px" alt="scan-build"><br>
- <a href="images/analyzer_html.png"><img src="images/analyzer_html.png" width="450px" alt="analyzer in browser"></a>
-<br><b>Viewing static analyzer results in a web browser</b>
-</td></tr></table>
-
-<h2>Contents</h2>
-
-<ul>
-<li><a href="#scanbuild">Getting Started</a>
- <ul>
- <li><a href="#scanbuild_basicusage">Basic Usage</a></li>
- <li><a href="#scanbuild_forwindowsusers">For Windows Users</a></li>
- <li><a href="#scanbuild_otheroptions">Other Options</a></li>
- <li><a href="#scanbuild_output">Output of scan-build</a></li>
- </ul>
-</li>
-<li><a href="#recommendedguidelines">Recommended Usage Guidelines</a>
- <ul>
- <li><a href="#recommended_debug">Always Analyze a Project in its "Debug" Configuration</a></li>
- <li><a href="#recommended_verbose">Use Verbose Output when Debugging scan-build</a></li>
- <li><a href="#recommended_autoconf">Run './configure' through scan-build</a></li>
- </ul>
-</li>
-<li><a href="#iphone">Analyzing iPhone Projects</a></li>
-</ul>
-
-<h2 id="scanbuild">Getting Started</h2>
-
-<p>The <tt>scan-build</tt> command can be used to analyze an entire project by
-essentially interposing on a project's build process. This means that to run the
-analyzer using <tt>scan-build</tt>, you will use <tt>scan-build</tt> to analyze
-the source files compiled by <tt>gcc</tt>/<tt>clang</tt> during a project build.
-This means that any files that are not compiled will also not be analyzed.</p>
-
-<h3 id="scanbuild_basicusage">Basic Usage</h3>
-
-<p>Basic usage of <tt>scan-build</tt> is designed to be simple: just place the
-word "scan-build" in front of your build command:</p>
-
-<pre class="code_example">
-$ <span class="code_highlight">scan-build</span> make
-$ <span class="code_highlight">scan-build</span> xcodebuild
-</pre>
-
-<p>In the first case <tt>scan-build</tt> analyzes the code of a project built
-with <tt>make</tt> and in the second case <tt>scan-build</tt> analyzes a project
-built using <tt>xcodebuild</tt>.<p>
-
-<p>Here is the general format for invoking <tt>scan-build</tt>:</p>
-
-<pre class="code_example">
-$ <span class="code_highlight">scan-build</span> <i>[scan-build options]</i> <span class="code_highlight"><command></span> <i>[command options]</i>
-</pre>
-
-<p>Operationally, <tt>scan-build</tt> literally runs <command> with all of the
-subsequent options passed to it. For example, one can pass <tt>-j4</tt> to
-<tt>make</tt> get a parallel build over 4 cores:</p>
-
-<pre class="code_example">
-$ scan-build make <span class="code_highlight">-j4</span>
-</pre>
-
-<p>In almost all cases, <tt>scan-build</tt> makes no effort to interpret the
-options after the build command; it simply passes them through. In general,
-<tt>scan-build</tt> should support parallel builds, but <b>not distributed
-builds</b>.</p>
-
-<p>It is also possible to use <tt>scan-build</tt> to analyze specific
-files:</p>
-
-<pre class="code_example">
- $ scan-build gcc -c <span class="code_highlight">t1.c t2.c</span>
-</pre>
-
-<p>This example causes the files <tt>t1.c</tt> and <tt>t2.c</tt> to be analyzed.
-</p>
-
-<h3 id="scanbuild_forwindowsusers">For Windows Users</h3>
-
-<p>Windows users must have Perl installed to use scan-build.</p>
-
-<p><tt>scan-build.bat</tt> script allows you to launch scan-build in the same
-way as it described in the Basic Usage section above. To invoke scan-build from
-an arbitrary location, add the path to the folder containing scan-build.bat to
-your PATH environment variable.</p>
-
-<p>If you have unexpected compilation/make problems when running scan-build
-with MinGW/MSYS the following information may be helpful:</p>
-
-<ul>
- <li> If getting unexpected <tt>"fatal error: no input files"</tt> while
-building with MSYS make from the Windows cmd, try one of these solutions:</li>
- <ul>
- <li> Use MinGW <tt>mingw32-make</tt> instead of MSYS <tt>make</tt> and
-exclude the path to MSYS from PATH to prevent <tt>mingw32-make</tt> from using
-MSYS utils. MSYS utils are dependent on the MSYS runtime and they are not
-intended for being run from the Windows cmd. Specifically, makefile commands
-with backslashed quotes may be heavily corrupted when passed for execution.</li>
- <li> Run <tt>make</tt> from the sh shell:
-<pre class="code_example">
-$ <span class="code_highlight">scan-build</span> <i>[scan-build options]</i> sh -c "make <i>[make options]</i>"
-</pre></li>
- </ul>
- <li> If getting <tt>"Error : *** target pattern contains no `%'"</tt> while
-using GNU Make 3.81, try to use another version of make.</li>
-</ul>
-
-<h3 id="scanbuild_otheroptions">Other Options</h3>
-
-<p>As mentioned above, extra options can be passed to <tt>scan-build</tt>. These
-options prefix the build command. For example:</p>
-
-<pre class="code_example">
- $ scan-build <span class="code_highlight">-k -V</span> make
- $ scan-build <span class="code_highlight">-k -V</span> xcodebuild
-</pre>
-
-<p>Here is a subset of useful options:</p>
-
-<table class="options">
-<colgroup><col class="option"><col class="description"></colgroup>
-<thead><tr><td>Option</td><td>Description</td></tr></thead>
-
-<tr><td><b>-o</b></td><td>Target directory for HTML report files. Subdirectories
-will be created as needed to represent separate "runs" of the analyzer. If this
-option is not specified, a directory is created in <tt>/tmp</tt> to store the
-reports.</td></tr>
-
-<tr><td><b>-h</b><br><i>(or no arguments)</i></td><td>Display all
-<tt>scan-build</tt> options.</td></tr>
-
-<tr><td><b>-k</b><br><b>--keep-going</b></td><td>Add a "keep on
-going" option to the specified build command. <p>This option currently supports
-<tt>make</tt> and <tt>xcodebuild</tt>.</p> <p>This is a convenience option; one
-can specify this behavior directly using build options.</p></td></tr>
-
-<tr><td><b>-v</b></td><td>Verbose output from scan-build and the analyzer. <b>A
-second and third "-v" increases verbosity</b>, and is useful for filing bug
-reports against the analyzer.</td></tr>
-
-<tr><td><b>-V</b></td><td>View analysis results in a web browser when the build
-command completes.</td></tr>
-
-<tr><td><b>--use-analyzer Xcode</b><br><i>or</i><br>
-<b>--use-analyzer [path to clang]</b></td><td><tt>scan-build</tt> uses the
-'clang' executable relative to itself for static analysis. One can override this
-behavior with this option by using the 'clang' packaged with Xcode (on OS X) or
-from the PATH.</p></td></tr> </table>
-
-<p>A complete list of options can be obtained by running <tt>scan-build</tt>
-with no arguments.</p>
-
-<h3 id="scanbuild_output">Output of scan-build</h3>
-
-<p>
-The output of scan-build is a set of HTML files, each one which represents a
-separate bug report. A single <tt>index.html</tt> file is generated for
-surveying all of the bugs. You can then just open <tt>index.html</tt> in a web
-browser to view the bug reports.
-</p>
-
-<p>
-Where the HTML files are generated is specified with a <b>-o</b> option to
-<tt>scan-build</tt>. If <b>-o</b> isn't specified, a directory in <tt>/tmp</tt>
-is created to store the files (<tt>scan-build</tt> will print a message telling
-you where they are). If you want to view the reports immediately after the build
-completes, pass <b>-V</b> to <tt>scan-build</tt>.
-</p>
-
-
-<h2 id="recommendedguidelines">Recommended Usage Guidelines</h2>
-
-<p>This section describes a few recommendations with running the analyzer.</p>
-
-<h3 id="recommended_debug">ALWAYS analyze a project in its "debug" configuration</h3>
-
-<p>Most projects can be built in a "debug" mode that enables assertions.
-Assertions are picked up by the static analyzer to prune infeasible paths, which
-in some cases can greatly reduce the number of false positives (bogus error
-reports) emitted by the tool.</p>
-
-<p>Another option is to use <tt>--force-analyze-debug-code</tt> flag of
-<b>scan-build</b> tool which would enable assertions automatically.</p>
-
-<h3 id="recommend_verbose">Use verbose output when debugging scan-build</h3>
-
-<p><tt>scan-build</tt> takes a <b>-v</b> option to emit verbose output about
-what it's doing; two <b>-v</b> options emit more information. Redirecting the
-output of <tt>scan-build</tt> to a text file (make sure to redirect standard
-error) is useful for filing bug reports against <tt>scan-build</tt> or the
-analyzer, as we can see the exact options (and files) passed to the analyzer.
-For more comprehensible logs, don't perform a parallel build.</p>
-
-<h3 id="recommended_autoconf">Run './configure' through scan-build</h3>
-
-<p>If an analyzed project uses an autoconf generated <tt>configure</tt> script,
-you will probably need to run <tt>configure</tt> script through
-<tt>scan-build</tt> in order to analyze the project.</p>
-
-<p><b>Example</b></p>
-
-<pre class="code_example">
-$ scan-build ./configure
-$ scan-build --keep-cc make
-</pre>
-
-<p>The reason <tt>configure</tt> also needs to be run through
-<tt>scan-build</tt> is because <tt>scan-build</tt> scans your source files by
-<i>interposing</i> on the compiler. This interposition is currently done by
-<tt>scan-build</tt> temporarily setting the environment variable <tt>CC</tt> to
-<tt>ccc-analyzer</tt>. The program <tt>ccc-analyzer</tt> acts like a fake
-compiler, forwarding its command line arguments over to the compiler to perform
-regular compilation and <tt>clang</tt> to perform static analysis.</p>
-
-<p>Running <tt>configure</tt> typically generates makefiles that have hardwired
-paths to the compiler, and by running <tt>configure</tt> through
-<tt>scan-build</tt> that path is set to <tt>ccc-analyzer</tt>.</p>
-
-<!--
-<h2 id="Debugging">Debugging the Analyzer</h2>
-
-<p>This section provides information on debugging the analyzer, and troubleshooting
-it when you have problems analyzing a particular project.</p>
-
-<h3>How it Works</h3>
-
-<p>To analyze a project, <tt>scan-build</tt> simply sets the environment variable
-<tt>CC</tt> to the full path to <tt>ccc-analyzer</tt>. It also sets a few other
-environment variables to communicate to <tt>ccc-analyzer</tt> where to dump HTML
-report files.</p>
-
-<p>Some Makefiles (or equivalent project files) hardcode the compiler; for such
-projects simply overriding <tt>CC</tt> won't cause <tt>ccc-analyzer</tt> to be
-called. This will cause the compiled code <b>to not be analyzed.</b></p> If you
-find that your code isn't being analyzed, check to see if <tt>CC</tt> is
-hardcoded. If this is the case, you can hardcode it instead to the <b>full
-path</b> to <tt>ccc-analyzer</tt>.</p>
-
-<p>When applicable, you can also run <tt>./configure</tt> for a project through
-<tt>scan-build</tt> so that configure sets up the location of <tt>CC</tt> based
-on the environment passed in from <tt>scan-build</tt>:
-
-<pre>
- $ scan-build <b>./configure</b>
-</pre>
-
-<p><tt>scan-build</tt> has special knowledge about <tt>configure</tt>, so it in
-most cases will not actually analyze the configure tests run by
-<tt>configure</tt>.</p>
-
-<p>Under the hood, <tt>ccc-analyzer</tt> directly invokes <tt>gcc</tt> to
-compile the actual code in addition to running the analyzer (which occurs by it
-calling <tt>clang</tt>). <tt>ccc-analyzer</tt> tries to correctly forward all
-the arguments over to <tt>gcc</tt>, but this may not work perfectly (please
-report bugs of this kind).
- -->
-
-<h2 id="iphone">Analyzing iPhone Projects</h2>
-
-<p>Conceptually Xcode projects for iPhone applications are nearly the same as
-their cousins for desktop applications. <b>scan-build</b> can analyze these
-projects as well, but users often encounter problems with just building their
-iPhone projects from the command line because there are a few extra preparative
-steps they need to take (e.g., setup code signing).</p>
-
-<h3>Recommendation: use "Build and Analyze"</h3>
-
-<p>The absolute easiest way to analyze iPhone projects is to use the
-<a href="https://developer.apple.com/library/ios/recipes/xcode_help-source_editor/chapters/Analyze.html#//apple_ref/doc/uid/TP40009975-CH4-SW1"><i>Analyze</i>
-feature in Xcode</a> (which is based on the Clang Static Analyzer). There a
-user can analyze their project right from a menu without most of the setup
-described later.</p>
-
-<p><a href="/xcode.html">Instructions are available</a> on this
-website on how to use open source builds of the analyzer as a replacement for
-the one bundled with Xcode.</p>
-
-<h3>Using scan-build directly</h3>
-
-<p>If you wish to use <b>scan-build</b> with your iPhone project, keep the
-following things in mind:</p>
-
-<ul>
- <li>Analyze your project in the <tt>Debug</tt> configuration, either by setting
-this as your configuration with Xcode or by passing <tt>-configuration
-Debug</tt> to <tt>xcodebuild</tt>.</li>
- <li>Analyze your project using the <tt>Simulator</tt> as your base SDK. It is
-possible to analyze your code when targeting the device, but this is much
-easier to do when using Xcode's <i>Build and Analyze</i> feature.</li>
- <li>Check that your code signing SDK is set to the simulator SDK as well, and make sure this option is set to <tt>Don't Code Sign</tt>.</li>
-</ul>
-
-<p>Note that you can most of this without actually modifying your project. For
-example, if your application targets iPhoneOS 2.2, you could run
-<b>scan-build</b> in the following manner from the command line:</p>
-
-<pre class="code_example">
-$ scan-build xcodebuild -configuration Debug -sdk iphonesimulator2.2
-</pre>
-
-Alternatively, if your application targets iPhoneOS 3.0:
-
-<pre class="code_example">
-$ scan-build xcodebuild -configuration Debug -sdk iphonesimulator3.0
-</pre>
-
-<h3>Gotcha: using the right compiler</h3>
-
-<p>Recall that <b>scan-build</b> analyzes your project by using a compiler to
-compile the project and <tt>clang</tt> to analyze your project. The script uses
-simple heuristics to determine which compiler should be used (it defaults to
-<tt>clang</tt> on Darwin and <tt>gcc</tt> on other platforms). When analyzing
-iPhone projects, <b>scan-build</b> may pick the wrong compiler than the one
-Xcode would use to build your project. For example, this could be because
-multiple versions of a compiler may be installed on your system, especially if
-you are developing for the iPhone.</p>
-
-<p>When compiling your application to run on the simulator, it is important that <b>scan-build</b>
-finds the correct version of <tt>gcc/clang</tt>. Otherwise, you may see strange build
-errors that only happen when you run <tt>scan-build</tt>.
-
-<p><b>scan-build</b> provides the <tt>--use-cc</tt> and <tt>--use-c++</tt>
-options to hardwire which compiler scan-build should use for building your code.
-Note that although you are chiefly interested in analyzing your project, keep in
-mind that running the analyzer is intimately tied to the build, and not being
-able to compile your code means it won't get fully analyzed (if at all).</p>
-
-<p>If you aren't certain which compiler Xcode uses to build your project, try
-just running <tt>xcodebuild</tt> (without <b>scan-build</b>). You should see the
-full path to the compiler that Xcode is using, and use that as an argument to
-<tt>--use-cc</tt>.</p>
-
-</div>
-</div>
+</div> <!-- content -->
+</div> <!-- page -->
</body>
-</html>
diff --git a/clang/www/analyzer/xcode.html b/clang/www/analyzer/xcode.html
index d6e44bc4f0b390..2a76836669036f 100644
--- a/clang/www/analyzer/xcode.html
+++ b/clang/www/analyzer/xcode.html
@@ -2,7 +2,9 @@
"http://www.w3.org/TR/html4/strict.dtd">
<html>
<head>
- <title>Running the analyzer within Xcode</title>
+ <title>The Xcode documentation has moved to clang.llvm.org</title>
+ <link rel="canonical" href="https://clang.llvm.org/docs/analyzer/user-docs/UsingWithXCode.html"/>
+ <meta http-equiv="refresh" content="0;url=https://clang.llvm.org/docs/analyzer/user-docs/UsingWithXCode.html" />
<link type="text/css" rel="stylesheet" href="content.css">
<link type="text/css" rel="stylesheet" href="menu.css">
<script type="text/javascript" src="scripts/menu.js"></script>
@@ -13,131 +15,11 @@
<!--#include virtual="menu.html.incl"-->
<div id="content">
-<h1>Running the analyzer within Xcode</h1>
+<h1>The Xcode documentation has moved to clang.llvm.org</h1>
+<p style="color:red; font-size:200%">This page is deprecated and will be removed in release 21.0</p>
+<a href="https://clang.llvm.org/docs/analyzer/user-docs/UsingWithXCode.html">The new site</a>
+<script>window.location='https://clang.llvm.org/docs/analyzer/user-docs/UsingWithXCode.html'</script>
-<table style="margin-top:0px" width="100%" border="0" cellpadding="0px" cellspacing="0">
-<tr><td>
-
-<h3>What is it?</h3>
-
-<p>Since Xcode 3.2, users have been able to run the Clang Static Analyzer
-<a
-href="https://developer.apple.com/library/ios/recipes/xcode_help-source_editor/chapters/Analyze.html#//apple_ref/doc/uid/TP40009975-CH4-SW1">directly
-within Xcode</a>.</p>
-
-<p>It integrates directly with the Xcode build system and
-presents analysis results directly within Xcode's editor.</p>
-
-<h3>Can I use the open source analyzer builds with Xcode?</h3>
-
-<p><b>Yes</b>. Instructions are included below.</p>
-
-</td>
-<td style="padding-left:10px; text-align:center">
- <a href="images/analyzer_xcode.png"><img src="images/analyzer_xcode.png" width="620px" alt="analyzer in xcode"></a>
-<br><b>Viewing static analyzer results in Xcode</b>
-</td></tr></table>
-
-<h3>Key features:</h3>
-<ul>
- <li><b>Integrated workflow:</b> Results are integrated within Xcode. There is
- no experience of using a separate tool, and activating the analyzer requires a
- single keystroke or mouse click.</li>
- <li><b>Transparency:</b> Works effortlessly with Xcode projects (including iPhone projects).
- <li><b>Cons:</b> Doesn't work well with non-Xcode projects. For those,
- consider using <a href="scan-build.html"><b>scan-build</b></a>.
-</ul>
-
-
-<h2>Getting Started</h2>
-
-<p>Xcode is available as a free download from Apple on the <a
-href="https://itunes.apple.com/us/app/xcode/id497799835?mt=12">Mac
-App Store</a>, with <a
-href="https://developer.apple.com/library/ios/recipes/xcode_help-source_editor/chapters/Analyze.html#//apple_ref/doc/uid/TP40009975-CH4-SW1">instructions
-available</a> for using the analyzer.</p>
-
-<h2>Using open source analyzer builds with Xcode</h2>
-
-<p>By default, Xcode uses the version of <tt>clang</tt> that came bundled with
-it to analyze your code. It is possible to change Xcode's behavior to use an
-alternate version of <tt>clang</tt> for this purpose while continuing to use
-the <tt>clang</tt> that came with Xcode for compiling projects.</p>
-
-<h3>Why try open source builds?</h3>
-
-<p>The advantage of using open source analyzer builds (provided on this website)
-is that they are often newer than the analyzer provided with Xcode, and thus can
-contain bug fixes, new checks, or simply better analysis.</p>
-
-<p>On the other hand, new checks can be experimental, with results of variable
-quality. Users are encouraged to <a href="filing_bugs.html">file bug reports</a>
-(for any version of the analyzer) where they encounter false positives or other
-issues.</p>
-
-<h3>set-xcode-analyzer</h3>
-
-<p>Starting with analyzer build checker-234, analyzer builds contain a command
-line utility called <tt>set-xcode-analyzer</tt> that allows users to change what
-copy of <tt>clang</tt> that Xcode uses for analysis:</p>
-
-<pre class="code_example">
-$ <b>set-xcode-analyzer -h</b>
-Usage: set-xcode-analyzer [options]
-
-Options:
- -h, --help show this help message and exit
- --use-checker-build=PATH
- Use the Clang located at the provided absolute path,
- e.g. /Users/foo/checker-1
- --use-xcode-clang Use the Clang bundled with Xcode
-</pre>
-
-<p>Operationally, <b>set-xcode-analyzer</b> edits Xcode's configuration files
-to point it to use the version of <tt>clang</tt> you specify for static
-analysis. Within this model it provides you two basic modes:</p>
-
-<ul>
- <li><b>--use-xcode-clang</b>: Switch Xcode (back) to using the <tt>clang</tt> that came bundled with it for static analysis.</li>
- <li><b>--use-checker-build</b>: Switch Xcode to using the <tt>clang</tt> provided by the specified analyzer build.</li>
-</ul>
-
-<h4>Things to keep in mind</h4>
-
-<ul>
- <li>You should quit Xcode prior to running <tt>set-xcode-analyzer</tt>.</li> <li>You will need to run <tt>set-xcode-analyzer</tt> under
-<b><tt>sudo</tt></b> in order to have write privileges to modify the Xcode
-configuration files.</li>
-</ul>
-
-<h4>Examples</h4>
-
-<p><b>Example 1</b>: Telling Xcode to use checker-235:</p>
-
-<pre class="code_example">
-$ pwd
-/tmp
-$ tar xjf checker-235.tar.bz2
-$ sudo checker-235/set-xcode-analyzer --use-checker-build=/tmp/checker-235
-</pre>
-
-<p>Note that you typically won't install an analyzer build in <tt>/tmp</tt>, but
-the point of this example is that <tt>set-xcode-analyzer</tt> just wants a full
-path to an untarred analyzer build.</p>
-
-<p><b>Example 2</b>: Telling Xcode to use a very specific version of <tt>clang</tt>:</p>
-
-<pre class="code_example">
-$ sudo set-xcode-analyzer --use-checker-build=~/mycrazyclangbuild/bin/clang
-</pre>
-
-<p><b>Example 3</b>: Resetting Xcode to its default behavior:</p>
-
-<pre class="code_example">
-$ sudo set-xcode-analyzer --use-xcode-clang
-</pre>
-
-</div>
-</div>
+</div> <!-- content -->
+</div> <!-- page -->
</body>
-</html>
diff --git a/libcxx/test/libcxx/feature_test_macro/implemented_ftms.sh.py b/libcxx/test/libcxx/feature_test_macro/implemented_ftms.sh.py
new file mode 100644
index 00000000000000..67353fc41e5098
--- /dev/null
+++ b/libcxx/test/libcxx/feature_test_macro/implemented_ftms.sh.py
@@ -0,0 +1,54 @@
+# ===----------------------------------------------------------------------===##
+#
+# Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
+# See https://llvm.org/LICENSE.txt for license information.
+# SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
+#
+# ===----------------------------------------------------------------------===##
+
+# RUN: %{python} %s %{libcxx-dir}/utils %{libcxx-dir}/test/libcxx/feature_test_macro/test_data.json
+
+import sys
+
+sys.path.append(sys.argv[1])
+from generate_feature_test_macro_components import FeatureTestMacros
+
+
+def test(output, expected):
+ assert output == expected, f"expected\n{expected}\n\noutput\n{output}"
+
+
+ftm = FeatureTestMacros(sys.argv[2])
+test(
+ ftm.implemented_ftms,
+ {
+ "__cpp_lib_any": {
+ "c++17": "201606L",
+ "c++20": "201606L",
+ "c++23": "201606L",
+ "c++26": "201606L",
+ },
+ "__cpp_lib_barrier": {
+ "c++20": "201907L",
+ "c++23": "201907L",
+ "c++26": "201907L",
+ },
+ "__cpp_lib_format": {
+ "c++20": None,
+ "c++23": None,
+ "c++26": None,
+ },
+ "__cpp_lib_parallel_algorithm": {
+ "c++17": "201603L",
+ "c++20": "201603L",
+ "c++23": "201603L",
+ "c++26": "201603L",
+ },
+ "__cpp_lib_variant": {
+ "c++17": "202102L",
+ "c++20": "202102L",
+ "c++23": "202102L",
+ "c++26": "202102L",
+ },
+ },
+)
diff --git a/libcxx/test/libcxx/feature_test_macro/invalid.sh.py b/libcxx/test/libcxx/feature_test_macro/invalid.sh.py
new file mode 100644
index 00000000000000..ae457f6e1a545a
--- /dev/null
+++ b/libcxx/test/libcxx/feature_test_macro/invalid.sh.py
@@ -0,0 +1,108 @@
+# ===----------------------------------------------------------------------===##
+#
+# Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
+# See https://llvm.org/LICENSE.txt for license information.
+# SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
+#
+# ===----------------------------------------------------------------------===##
+
+# RUN: %{python} %s %{libcxx-dir}/utils %t
+
+import sys
+import json
+
+sys.path.append(sys.argv[1])
+from generate_feature_test_macro_components import FeatureTestMacros
+
+
+def test(output, expected):
+ assert output == expected, f"expected\n{expected}\n\noutput\n{output}"
+
+
+def test_error(data, type, message):
+ tmp = sys.argv[2]
+ with open(tmp, "w") as file:
+ file.write(json.dumps(data))
+ ftm = FeatureTestMacros(tmp)
+ try:
+ ftm.implemented_ftms
+ except type as error:
+ test(str(error), message)
+ else:
+ assert False, "no exception was thrown"
+
+
+test_error(
+ [
+ {
+ "values": {
+ "c++17": {
+ "197001": [
+ {
+ "implemented": False,
+ },
+ ],
+ },
+ },
+ "headers": [],
+ },
+ ],
+ KeyError,
+ "'name'",
+)
+
+test_error(
+ [
+ {
+ "name": "a",
+ "headers": [],
+ },
+ ],
+ KeyError,
+ "'values'",
+)
+
+test_error(
+ [
+ {
+ "name": "a",
+ "values": {},
+ "headers": [],
+ },
+ ],
+ AssertionError,
+ "'values' is empty",
+)
+
+
+test_error(
+ [
+ {
+ "name": "a",
+ "values": {
+ "c++17": {},
+ },
+ "headers": [],
+ },
+ ],
+ AssertionError,
+ "a[c++17] has no entries",
+)
+
+test_error(
+ [
+ {
+ "name": "a",
+ "values": {
+ "c++17": {
+ "197001": [
+ {},
+ ],
+ },
+ },
+ "headers": [],
+ },
+ ],
+ KeyError,
+ "'implemented'",
+)
diff --git a/libcxx/test/libcxx/feature_test_macro/standard_ftms.sh.py b/libcxx/test/libcxx/feature_test_macro/standard_ftms.sh.py
new file mode 100644
index 00000000000000..43c90b131bff16
--- /dev/null
+++ b/libcxx/test/libcxx/feature_test_macro/standard_ftms.sh.py
@@ -0,0 +1,54 @@
+# ===----------------------------------------------------------------------===##
+#
+# Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
+# See https://llvm.org/LICENSE.txt for license information.
+# SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
+#
+# ===----------------------------------------------------------------------===##
+
+# RUN: %{python} %s %{libcxx-dir}/utils %{libcxx-dir}/test/libcxx/feature_test_macro/test_data.json
+
+import sys
+
+sys.path.append(sys.argv[1])
+from generate_feature_test_macro_components import FeatureTestMacros
+
+
+def test(output, expected):
+ assert output == expected, f"expected\n{expected}\n\noutput\n{output}"
+
+
+ftm = FeatureTestMacros(sys.argv[2])
+test(
+ ftm.standard_ftms,
+ {
+ "__cpp_lib_any": {
+ "c++17": "201606L",
+ "c++20": "201606L",
+ "c++23": "201606L",
+ "c++26": "201606L",
+ },
+ "__cpp_lib_barrier": {
+ "c++20": "201907L",
+ "c++23": "201907L",
+ "c++26": "201907L",
+ },
+ "__cpp_lib_format": {
+ "c++20": "202110L",
+ "c++23": "202207L",
+ "c++26": "202311L",
+ },
+ "__cpp_lib_parallel_algorithm": {
+ "c++17": "201603L",
+ "c++20": "201603L",
+ "c++23": "201603L",
+ "c++26": "201603L",
+ },
+ "__cpp_lib_variant": {
+ "c++17": "202102L",
+ "c++20": "202106L",
+ "c++23": "202106L",
+ "c++26": "202306L",
+ },
+ },
+)
diff --git a/libcxx/test/libcxx/feature_test_macro/std_dialects.sh.py b/libcxx/test/libcxx/feature_test_macro/std_dialects.sh.py
new file mode 100644
index 00000000000000..368020c91e1d2b
--- /dev/null
+++ b/libcxx/test/libcxx/feature_test_macro/std_dialects.sh.py
@@ -0,0 +1,30 @@
+# ===----------------------------------------------------------------------===##
+#
+# Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
+# See https://llvm.org/LICENSE.txt for license information.
+# SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
+#
+# ===----------------------------------------------------------------------===##
+
+# RUN: %{python} %s %{libcxx-dir}/utils %{libcxx-dir}/test/libcxx/feature_test_macro/test_data.json
+
+import sys
+
+sys.path.append(sys.argv[1])
+from generate_feature_test_macro_components import FeatureTestMacros
+
+
+def test(output, expected):
+ assert output == expected, f"expected\n{expected}\n\noutput\n{output}"
+
+
+ftm = FeatureTestMacros(sys.argv[2])
+test(
+ ftm.std_dialects,
+ [
+ "c++17",
+ "c++20",
+ "c++23",
+ "c++26",
+ ],
+)
diff --git a/libcxx/test/libcxx/feature_test_macro/test_data.json b/libcxx/test/libcxx/feature_test_macro/test_data.json
new file mode 100644
index 00000000000000..1f8bbe5d769b5b
--- /dev/null
+++ b/libcxx/test/libcxx/feature_test_macro/test_data.json
@@ -0,0 +1,151 @@
+[
+ {
+ "name": "__cpp_lib_any",
+ "values": {
+ "c++17": {
+ "201606": [
+ {
+ "implemented": true
+ }
+ ]
+ }
+ },
+ "headers": [
+ "any"
+ ]
+ },
+ {
+ "name": "__cpp_lib_barrier",
+ "values": {
+ "c++20": {
+ "201907": [
+ {
+ "implemented": true
+ }
+ ]
+ }
+ },
+ "headers": [
+ "barrier"
+ ],
+ "test_suite_guard":
+ "!defined(_LIBCPP_HAS_NO_THREADS) && (!defined(_LIBCPP_VERSION) || _LIBCPP_AVAILABILITY_HAS_SYNC)",
+ "libcxx_guard": "!defined(_LIBCPP_HAS_NO_THREADS) && _LIBCPP_AVAILABILITY_HAS_SYNC"
+ },
+ {
+ "name": "__cpp_lib_format",
+ "values": {
+ "c++20": {
+ "201907": [
+ {
+ "number": "P0645R10",
+ "title": "Text Formatting",
+ "implemented": true
+ },
+ {
+ "number": "P1361R2",
+ "title": "Integration of chrono with text formatting",
+ "implemented": false
+ }
+ ],
+ "202106": [
+ {
+ "number": "P2216R3",
+ "title": "std::format improvements",
+ "implemented": true
+ }
+ ],
+ "202110": [
+ {
+ "number": "P2372R3",
+ "title": "Fixing locale handling in chrono formatters",
+ "implemented": false
+ },
+ {
+ "number": "P2418R2",
+ "title": "FAdd support for std::generator-like types to std::format",
+ "implemented": true
+ }
+ ]
+ },
+ "c++23": {
+ "202207": [
+ {
+ "number": "P2419R2",
+ "title": "Clarify handling of encodings in localized formatting of chrono types",
+ "implemented": false
+ }
+ ]
+ },
+ "c++26": {
+ "202306": [
+ {
+ "number": "P2637R3",
+ "title": "Member Visit",
+ "implemented": true
+ }
+ ],
+ "202311": [
+ {
+ "number": "P2918R2",
+ "title": "Runtime format strings II",
+ "implemented": true
+ }
+ ]
+ }
+ },
+ "headers": [
+ "format"
+ ]
+ },
+ {
+ "name": "__cpp_lib_parallel_algorithm",
+ "values": {
+ "c++17": {
+ "201603": [
+ {
+ "implemented": true
+ }
+ ]
+ }
+ },
+ "headers": [
+ "algorithm",
+ "numeric"
+ ]
+ },
+ {
+ "name": "__cpp_lib_variant",
+ "values": {
+ "c++17": {
+ "202102": [
+ {
+ "title": "``std::visit`` for classes derived from ``std::variant``",
+ "implemented": true
+ }
+ ]
+ },
+ "c++20": {
+ "202106": [
+ {
+ "number": "",
+ "title": "Fully constexpr ``std::variant``",
+ "implemented": false
+ }
+ ]
+ },
+ "c++26": {
+ "202306": [
+ {
+ "number": "",
+ "title": "Member visit",
+ "implemented": true
+ }
+ ]
+ }
+ },
+ "headers": [
+ "variant"
+ ]
+ }
+]
diff --git a/libcxx/utils/generate_feature_test_macro_components.py b/libcxx/utils/generate_feature_test_macro_components.py
index fe5bab05195a38..3f8ecc26321ee1 100755
--- a/libcxx/utils/generate_feature_test_macro_components.py
+++ b/libcxx/utils/generate_feature_test_macro_components.py
@@ -3,6 +3,9 @@
import os
from builtins import range
from functools import reduce
+from typing import Any, Dict, List # Needed for python 3.8 compatibility.
+import functools
+import json
def get_libcxx_paths():
@@ -1867,6 +1870,197 @@ def produce_docs():
f.write(doc_str)
+def get_ftms(
+ data, std_dialects: List[str], use_implemented_status: bool
+) -> Dict[str, Dict[str, Any]]:
+ """Impementation for FeatureTestMacros.(standard|implemented)_ftms()."""
+ result = dict()
+ for feature in data:
+ last = None
+ entry = dict()
+ implemented = True
+ for std in std_dialects:
+ if std not in feature["values"].keys():
+ if last == None:
+ continue
+ else:
+ entry[std] = last
+ else:
+ if implemented:
+ values = feature["values"][std]
+ assert len(values) > 0, f"{feature['name']}[{std}] has no entries"
+ for value in values:
+ papers = list(values[value])
+ assert (
+ len(papers) > 0
+ ), f"{feature['name']}[{std}][{value}] has no entries"
+ for paper in papers:
+ if use_implemented_status and not paper["implemented"]:
+ implemented = False
+ break
+ if implemented:
+ last = f"{value}L"
+ else:
+ break
+
+ entry[std] = last
+ result[feature["name"]] = entry
+
+ return result
+
+
+class FeatureTestMacros:
+ """Provides all feature-test macro (FTM) output components.
+
+ The class has several generators to use the feature-test macros in libc++:
+ - FTM status page
+ - The version header and its tests
+
+ This class is not intended to duplicate
+ https://isocpp.org/std/standing-documents/sd-6-sg10-feature-test-recommendations#library-feature-test-macros
+ SD-FeatureTest: Feature-Test Macros and Policies
+
+ Historically libc++ did not list all papers affecting a FTM, the new data
+ structure is able to do that. However there is no intention to add the
+ historical data. After papers have been implemented this information can be
+ removed. For example, __cpp_lib_format's value 201907 requires 3 papers,
+ once implemented it can be reduced to 1 paper and remove the paper number
+ and title. This would reduce the size of the data.
+
+ The input data is stored in the following JSON format:
+ [ # A list with multiple feature-test macro entries.
+ {
+ # required
+ # The name of the feature test macro. These names should be unique and
+ # sorted in the list.
+ "name": "__cpp_lib_any",
+
+ # required
+ # A map with the value of the FTM based on the language standard. Only
+ # the versions in which the value of the FTM changes are listed. For
+ # example, this macro's value does not change in C++20 so it does not
+ # list C++20. If it changes in C++26, it will have entries for C++17 and
+ # C++26.
+ "values": {
+
+ # required
+ # The language standard, also named dialect in this class.
+ "c++17": {
+
+ # required
+ # The value of the feature test macro. This contains an array with
+ # one or more papers that need to be implemented before this value
+ # is considered implemented.
+ "201606": [
+ {
+ # optional
+ # Contains the paper number that is part of the FTM version.
+ "number": "P0220R1",
+
+ # optional
+ # Contains the title of the paper that is part of the FTM
+ # version.
+ "title": "Adopt Library Fundamentals V1 TS Components for C++17"
+
+ # required
+ # The implementation status of the paper.
+ "implemented": true
+ }
+ ]
+ }
+ },
+
+ # required
+ # A sorted list of headers that should provide the FTM. The header
+ # <version> is automatically added to this list. This list could be
+ # empty. For example, __cpp_lib_modules is only present in version.
+ # Requiring the field makes it easier to detect accidental omission.
+ "headers": [
+ "any"
+ ],
+
+ # optional, required when libcxx_guard is present
+ # This field is used only to generate the unit tests for the
+ # feature-test macros. It can't depend on macros defined in <__config>
+ # because the `test/std/` parts of the test suite are intended to be
+ # portable to any C++ standard library implementation, not just libc++.
+ # It may depend on
+ # * macros defined by the compiler itself, or
+ # * macros generated by CMake.
+ # In some cases we add also depend on macros defined in
+ # <__availability>.
+ "test_suite_guard": "!defined(_LIBCPP_VERSION) || _LIBCPP_AVAILABILITY_HAS_PMR"
+
+ # optional, required when test_suite_guard is present
+ # This field is used only to guard the feature-test macro in
+ # <version>. It may be the same as `test_suite_guard`, or it may
+ # depend on macros defined in <__config>.
+ "libcxx_guard": "_LIBCPP_AVAILABILITY_HAS_PMR"
+ },
+ ]
+ """
+
+ # The JSON data structure.
+ __data = None
+
+ def __init__(self, filename: str):
+ """Initializes the class with the JSON data in the file 'filename'."""
+ self.__data = json.load(open(filename))
+
+ @functools.cached_property
+ def std_dialects(self) -> List[str]:
+ """Returns the C++ dialects avaiable.
+
+ The available dialects are based on the 'c++xy' keys found the 'values'
+ entries in '__data'. So when WG21 starts to feature-test macros for a
+ future C++ Standard this dialect will automatically be available.
+
+ The return value is a sorted list with the C++ dialects used. Since FTM
+ were added in C++14 the list will not contain C++03 or C++11.
+ """
+ dialects = set()
+ for feature in self.__data:
+ keys = feature["values"].keys()
+ assert len(keys) > 0, "'values' is empty"
+ dialects |= keys
+
+ return sorted(list(dialects))
+
+ @functools.cached_property
+ def standard_ftms(self) -> Dict[str, Dict[str, Any]]:
+ """Returns the FTM versions per dialect in the Standard.
+
+ This function does not use the 'implemented' flag. The output contains
+ the versions used in the Standard. When a FTM in libc++ is not
+ implemented according to the Standard to output may opt to show the
+ expected value.
+
+ The result is a dict with the following content
+ - key: Name of the feature test macro.
+ - value: A dict with the following content:
+ * key: The version of the C++ dialect.
+ * value: The value of the feature-test macro.
+ """
+ return get_ftms(self.__data, self.std_dialects, False)
+
+ @functools.cached_property
+ def implemented_ftms(self) -> Dict[str, Dict[str, Any]]:
+ """Returns the FTM versions per dialect implemented in libc++.
+
+ Unlike `get_std_dialect_versions` this function uses the 'implemented'
+ flag. This returns the actual implementation status in libc++.
+
+ The result is a dict with the following content
+ - key: Name of the feature test macro.
+ - value: A dict with the following content:
+ * key: The version of the C++ dialect.
+ * value: The value of the feature-test macro. When a feature-test
+ macro is not implemented its value is None.
+ """
+
+ return get_ftms(self.__data, self.std_dialects, True)
+
+
def main():
produce_version_header()
produce_tests()
diff --git a/llvm/include/llvm/Frontend/OpenMP/OMPKinds.def b/llvm/include/llvm/Frontend/OpenMP/OMPKinds.def
index 535a3a74d7eaab..d9e9c14af3b157 100644
--- a/llvm/include/llvm/Frontend/OpenMP/OMPKinds.def
+++ b/llvm/include/llvm/Frontend/OpenMP/OMPKinds.def
@@ -439,19 +439,22 @@ __OMP_RTL(__tgt_target_kernel_nowait, false, Int32, IdentPtr, Int64, Int32,
Int32, VoidPtr, KernelArgsPtr, Int32, VoidPtr, Int32, VoidPtr)
__OMP_RTL(__tgt_target_data_begin_mapper, false, Void, IdentPtr, Int64, Int32, VoidPtrPtr,
VoidPtrPtr, Int64Ptr, Int64Ptr, VoidPtrPtr, VoidPtrPtr)
-__OMP_RTL(__tgt_target_data_begin_nowait_mapper, false, Void, IdentPtr, Int64, Int32,
- VoidPtrPtr, VoidPtrPtr, Int64Ptr, Int64Ptr, VoidPtrPtr, VoidPtrPtr)
+__OMP_RTL(__tgt_target_data_begin_nowait_mapper, false, Void, IdentPtr, Int64,
+ Int32, VoidPtrPtr, VoidPtrPtr, Int64Ptr, Int64Ptr, VoidPtrPtr,
+ VoidPtrPtr, Int32, VoidPtr, Int32, VoidPtr)
__OMP_RTL(__tgt_target_data_begin_mapper_issue, false, Void, IdentPtr, Int64, Int32,
VoidPtrPtr, VoidPtrPtr, Int64Ptr, Int64Ptr, VoidPtrPtr, VoidPtrPtr, AsyncInfoPtr)
__OMP_RTL(__tgt_target_data_begin_mapper_wait, false, Void, Int64, AsyncInfoPtr)
__OMP_RTL(__tgt_target_data_end_mapper, false, Void, IdentPtr, Int64, Int32, VoidPtrPtr,
VoidPtrPtr, Int64Ptr, Int64Ptr, VoidPtrPtr, VoidPtrPtr)
-__OMP_RTL(__tgt_target_data_end_nowait_mapper, false, Void, IdentPtr, Int64, Int32,
- VoidPtrPtr, VoidPtrPtr, Int64Ptr, Int64Ptr, VoidPtrPtr, VoidPtrPtr)
+__OMP_RTL(__tgt_target_data_end_nowait_mapper, false, Void, IdentPtr, Int64,
+ Int32, VoidPtrPtr, VoidPtrPtr, Int64Ptr, Int64Ptr, VoidPtrPtr,
+ VoidPtrPtr, Int32, VoidPtr, Int32, VoidPtr)
__OMP_RTL(__tgt_target_data_update_mapper, false, Void, IdentPtr, Int64, Int32,
VoidPtrPtr, VoidPtrPtr, Int64Ptr, Int64Ptr, VoidPtrPtr, VoidPtrPtr)
-__OMP_RTL(__tgt_target_data_update_nowait_mapper, false, Void, IdentPtr, Int64, Int32,
- VoidPtrPtr, VoidPtrPtr, Int64Ptr, Int64Ptr, VoidPtrPtr, VoidPtrPtr)
+__OMP_RTL(__tgt_target_data_update_nowait_mapper, false, Void, IdentPtr, Int64,
+ Int32, VoidPtrPtr, VoidPtrPtr, Int64Ptr, Int64Ptr, VoidPtrPtr,
+ VoidPtrPtr, Int32, VoidPtr, Int32, VoidPtr)
__OMP_RTL(__tgt_mapper_num_components, false, Int64, VoidPtr)
__OMP_RTL(__tgt_push_mapper_component, false, Void, VoidPtr, VoidPtr, VoidPtr,
Int64, Int64, VoidPtr)
@@ -1029,10 +1032,12 @@ __OMP_RTL_ATTRS(__tgt_target_kernel_nowait, ForkAttrs, SExt,
SExt))
__OMP_RTL_ATTRS(__tgt_target_data_begin_mapper, ForkAttrs, AttributeSet(),
ParamAttrs(AttributeSet(), AttributeSet(), SExt))
-__OMP_RTL_ATTRS(__tgt_target_data_begin_nowait_mapper, ForkAttrs, AttributeSet(),
+__OMP_RTL_ATTRS(__tgt_target_data_begin_nowait_mapper, ForkAttrs,
+ AttributeSet(),
ParamAttrs(AttributeSet(), AttributeSet(), SExt, AttributeSet(),
AttributeSet(), AttributeSet(), AttributeSet(),
- AttributeSet(), AttributeSet()))
+ AttributeSet(), AttributeSet(), SExt, AttributeSet(),
+ SExt, AttributeSet()))
__OMP_RTL_ATTRS(__tgt_target_data_begin_mapper_issue, AttributeSet(),
AttributeSet(),
ParamAttrs(AttributeSet(), AttributeSet(), SExt))
@@ -1041,13 +1046,16 @@ __OMP_RTL_ATTRS(__tgt_target_data_end_mapper, ForkAttrs, AttributeSet(),
__OMP_RTL_ATTRS(__tgt_target_data_end_nowait_mapper, ForkAttrs, AttributeSet(),
ParamAttrs(AttributeSet(), AttributeSet(), SExt, AttributeSet(),
AttributeSet(), AttributeSet(), AttributeSet(),
- AttributeSet(), AttributeSet()))
+ AttributeSet(), AttributeSet(), SExt, AttributeSet(),
+ SExt, AttributeSet()))
__OMP_RTL_ATTRS(__tgt_target_data_update_mapper, ForkAttrs, AttributeSet(),
ParamAttrs(AttributeSet(), AttributeSet(), SExt))
-__OMP_RTL_ATTRS(__tgt_target_data_update_nowait_mapper, ForkAttrs, AttributeSet(),
+__OMP_RTL_ATTRS(__tgt_target_data_update_nowait_mapper, ForkAttrs,
+ AttributeSet(),
ParamAttrs(AttributeSet(), AttributeSet(), SExt, AttributeSet(),
AttributeSet(), AttributeSet(), AttributeSet(),
- AttributeSet(), AttributeSet()))
+ AttributeSet(), AttributeSet(), SExt, AttributeSet(),
+ SExt, AttributeSet()))
__OMP_RTL_ATTRS(__tgt_mapper_num_components, ForkAttrs, AttributeSet(),
ParamAttrs())
__OMP_RTL_ATTRS(__tgt_push_mapper_component, ForkAttrs, AttributeSet(),
diff --git a/llvm/include/llvm/MC/MCAssembler.h b/llvm/include/llvm/MC/MCAssembler.h
index 61188d88b91795..3a6d6105f20aac 100644
--- a/llvm/include/llvm/MC/MCAssembler.h
+++ b/llvm/include/llvm/MC/MCAssembler.h
@@ -53,22 +53,6 @@ class MCObjectWriter;
class MCSection;
class MCValue;
-// FIXME: This really doesn't belong here. See comments below.
-struct IndirectSymbolData {
- MCSymbol *Symbol;
- MCSection *Section;
-};
-
-// FIXME: Ditto this. Purely so the Streamer and the ObjectWriter can talk
-// to one another.
-struct DataRegionData {
- // This enum should be kept in sync w/ the mach-o definition in
- // llvm/Object/MachOFormat.h.
- enum KindTy { Data = 1, JumpTable8, JumpTable16, JumpTable32 } Kind;
- MCSymbol *Start;
- MCSymbol *End;
-};
-
class MCAssembler {
public:
using SectionListType = std::vector<MCSection *>;
@@ -84,14 +68,6 @@ class MCAssembler {
using symbol_range = iterator_range<symbol_iterator>;
using const_symbol_range = iterator_range<const_symbol_iterator>;
- using const_indirect_symbol_iterator =
- std::vector<IndirectSymbolData>::const_iterator;
- using indirect_symbol_iterator = std::vector<IndirectSymbolData>::iterator;
-
- using const_data_region_iterator =
- std::vector<DataRegionData>::const_iterator;
- using data_region_iterator = std::vector<DataRegionData>::iterator;
-
/// MachO specific deployment target version info.
// A Major version of 0 indicates that no version information was supplied
// and so the corresponding load command should not be emitted.
@@ -124,10 +100,6 @@ class MCAssembler {
SymbolDataListType Symbols;
- std::vector<IndirectSymbolData> IndirectSymbols;
-
- std::vector<DataRegionData> DataRegions;
-
/// The list of linker options to propagate into the object file.
std::vector<std::vector<std::string>> LinkerOptions;
@@ -388,33 +360,6 @@ class MCAssembler {
size_t symbol_size() const { return Symbols.size(); }
- /// @}
- /// \name Indirect Symbol List Access
- /// @{
-
- // FIXME: This is a total hack, this should not be here. Once things are
- // factored so that the streamer has direct access to the .o writer, it can
- // disappear.
- std::vector<IndirectSymbolData> &getIndirectSymbols() {
- return IndirectSymbols;
- }
-
- indirect_symbol_iterator indirect_symbol_begin() {
- return IndirectSymbols.begin();
- }
- const_indirect_symbol_iterator indirect_symbol_begin() const {
- return IndirectSymbols.begin();
- }
-
- indirect_symbol_iterator indirect_symbol_end() {
- return IndirectSymbols.end();
- }
- const_indirect_symbol_iterator indirect_symbol_end() const {
- return IndirectSymbols.end();
- }
-
- size_t indirect_symbol_size() const { return IndirectSymbols.size(); }
-
/// @}
/// \name Linker Option List Access
/// @{
@@ -423,31 +368,6 @@ class MCAssembler {
return LinkerOptions;
}
- /// @}
- /// \name Data Region List Access
- /// @{
-
- // FIXME: This is a total hack, this should not be here. Once things are
- // factored so that the streamer has direct access to the .o writer, it can
- // disappear.
- std::vector<DataRegionData> &getDataRegions() { return DataRegions; }
-
- data_region_iterator data_region_begin() { return DataRegions.begin(); }
- const_data_region_iterator data_region_begin() const {
- return DataRegions.begin();
- }
-
- data_region_iterator data_region_end() { return DataRegions.end(); }
- const_data_region_iterator data_region_end() const {
- return DataRegions.end();
- }
-
- size_t data_region_size() const { return DataRegions.size(); }
-
- /// @}
- /// \name Data Region List Access
- /// @{
-
// FIXME: This is a total hack, this should not be here. Once things are
// factored so that the streamer has direct access to the .o writer, it can
// disappear.
diff --git a/llvm/include/llvm/MC/MCMachObjectWriter.h b/llvm/include/llvm/MC/MCMachObjectWriter.h
index 172dadb1281923..c26c75e98844ce 100644
--- a/llvm/include/llvm/MC/MCMachObjectWriter.h
+++ b/llvm/include/llvm/MC/MCMachObjectWriter.h
@@ -81,6 +81,14 @@ class MCMachObjectTargetWriter : public MCObjectTargetWriter {
};
class MachObjectWriter : public MCObjectWriter {
+public:
+ struct DataRegionData {
+ MachO::DataRegionType Kind;
+ MCSymbol *Start;
+ MCSymbol *End;
+ };
+
+private:
/// Helper struct for containing some precomputed information on symbols.
struct MachSymbolData {
const MCSymbol *Symbol;
@@ -91,6 +99,11 @@ class MachObjectWriter : public MCObjectWriter {
bool operator<(const MachSymbolData &RHS) const;
};
+ struct IndirectSymbolData {
+ MCSymbol *Symbol;
+ MCSection *Section;
+ };
+
/// The target specific Mach-O writer instance.
std::unique_ptr<MCMachObjectTargetWriter> TargetObjectWriter;
@@ -105,8 +118,11 @@ class MachObjectWriter : public MCObjectWriter {
};
DenseMap<const MCSection *, std::vector<RelAndSymbol>> Relocations;
+ std::vector<IndirectSymbolData> IndirectSymbols;
DenseMap<const MCSection *, unsigned> IndirectSymBase;
+ std::vector<DataRegionData> DataRegions;
+
SectionAddrMap SectionAddress;
// List of sections in layout order. Virtual sections are after non-virtual
@@ -153,6 +169,10 @@ class MachObjectWriter : public MCObjectWriter {
bool isFixupKindPCRel(const MCAssembler &Asm, unsigned Kind);
+ std::vector<IndirectSymbolData> &getIndirectSymbols() {
+ return IndirectSymbols;
+ }
+ std::vector<DataRegionData> &getDataRegions() { return DataRegions; }
const llvm::SmallVectorImpl<MCSection *> &getSectionOrder() const {
return SectionOrder;
}
diff --git a/llvm/lib/CodeGen/SelectionDAG/SelectionDAGBuilder.cpp b/llvm/lib/CodeGen/SelectionDAG/SelectionDAGBuilder.cpp
index cc55d53597b654..33c96ebdba0915 100644
--- a/llvm/lib/CodeGen/SelectionDAG/SelectionDAGBuilder.cpp
+++ b/llvm/lib/CodeGen/SelectionDAG/SelectionDAGBuilder.cpp
@@ -4798,8 +4798,8 @@ void SelectionDAGBuilder::visitMaskedStore(const CallInst &I,
const auto &TTI =
TLI.getTargetMachine().getTargetTransformInfo(*I.getFunction());
SDValue StoreNode =
- !IsCompressing && TTI.hasConditionalLoadStoreForType(
- I.getArgOperand(0)->getType()->getScalarType())
+ !IsCompressing &&
+ TTI.hasConditionalLoadStoreForType(I.getArgOperand(0)->getType())
? TLI.visitMaskedStore(DAG, sdl, getMemoryRoot(), MMO, Ptr, Src0,
Mask)
: DAG.getMaskedStore(getMemoryRoot(), sdl, Src0, Ptr, Offset, Mask,
@@ -4984,8 +4984,8 @@ void SelectionDAGBuilder::visitMaskedLoad(const CallInst &I, bool IsExpanding) {
// variables.
SDValue Load;
SDValue Res;
- if (!IsExpanding && TTI.hasConditionalLoadStoreForType(
- Src0Operand->getType()->getScalarType()))
+ if (!IsExpanding &&
+ TTI.hasConditionalLoadStoreForType(Src0Operand->getType()))
Res = TLI.visitMaskedLoad(DAG, sdl, InChain, MMO, Load, Ptr, Src0, Mask);
else
Res = Load =
diff --git a/llvm/lib/MC/MCAssembler.cpp b/llvm/lib/MC/MCAssembler.cpp
index cdac58c5fbf68b..bab941b8e1ea89 100644
--- a/llvm/lib/MC/MCAssembler.cpp
+++ b/llvm/lib/MC/MCAssembler.cpp
@@ -97,8 +97,6 @@ void MCAssembler::reset() {
IncrementalLinkerCompatible = false;
Sections.clear();
Symbols.clear();
- IndirectSymbols.clear();
- DataRegions.clear();
LinkerOptions.clear();
FileNames.clear();
ThumbFuncs.clear();
diff --git a/llvm/lib/MC/MCMachOStreamer.cpp b/llvm/lib/MC/MCMachOStreamer.cpp
index 6eb9f44de44fdf..90e0fcd6ac6dd6 100644
--- a/llvm/lib/MC/MCMachOStreamer.cpp
+++ b/llvm/lib/MC/MCMachOStreamer.cpp
@@ -10,6 +10,7 @@
#include "llvm/ADT/SmallString.h"
#include "llvm/ADT/SmallVector.h"
#include "llvm/ADT/StringRef.h"
+#include "llvm/BinaryFormat/MachO.h"
#include "llvm/MC/MCAsmBackend.h"
#include "llvm/MC/MCAssembler.h"
#include "llvm/MC/MCCodeEmitter.h"
@@ -19,6 +20,7 @@
#include "llvm/MC/MCFixup.h"
#include "llvm/MC/MCFragment.h"
#include "llvm/MC/MCLinkerOptimizationHint.h"
+#include "llvm/MC/MCMachObjectWriter.h"
#include "llvm/MC/MCObjectFileInfo.h"
#include "llvm/MC/MCObjectStreamer.h"
#include "llvm/MC/MCObjectWriter.h"
@@ -62,7 +64,7 @@ class MCMachOStreamer : public MCObjectStreamer {
void emitInstToData(const MCInst &Inst, const MCSubtargetInfo &STI) override;
- void emitDataRegion(DataRegionData::KindTy Kind);
+ void emitDataRegion(MachO::DataRegionType Kind);
void emitDataRegionEnd();
public:
@@ -82,6 +84,10 @@ class MCMachOStreamer : public MCObjectStreamer {
MCObjectStreamer::reset();
}
+ MachObjectWriter &getWriter() {
+ return static_cast<MachObjectWriter &>(getAssembler().getWriter());
+ }
+
/// @name MCStreamer Interface
/// @{
@@ -226,20 +232,18 @@ void MCMachOStreamer::emitAssignment(MCSymbol *Symbol, const MCExpr *Value) {
MCObjectStreamer::emitAssignment(Symbol, Value);
}
-void MCMachOStreamer::emitDataRegion(DataRegionData::KindTy Kind) {
+void MCMachOStreamer::emitDataRegion(MachO::DataRegionType Kind) {
// Create a temporary label to mark the start of the data region.
MCSymbol *Start = getContext().createTempSymbol();
emitLabel(Start);
// Record the region for the object writer to use.
- DataRegionData Data = { Kind, Start, nullptr };
- std::vector<DataRegionData> &Regions = getAssembler().getDataRegions();
- Regions.push_back(Data);
+ getWriter().getDataRegions().push_back({Kind, Start, nullptr});
}
void MCMachOStreamer::emitDataRegionEnd() {
- std::vector<DataRegionData> &Regions = getAssembler().getDataRegions();
+ auto &Regions = getWriter().getDataRegions();
assert(!Regions.empty() && "Mismatched .end_data_region!");
- DataRegionData &Data = Regions.back();
+ auto &Data = Regions.back();
assert(!Data.End && "Mismatched .end_data_region!");
// Create a temporary label to mark the end of the data region.
Data.End = getContext().createTempSymbol();
@@ -268,16 +272,16 @@ void MCMachOStreamer::emitLinkerOptions(ArrayRef<std::string> Options) {
void MCMachOStreamer::emitDataRegion(MCDataRegionType Kind) {
switch (Kind) {
case MCDR_DataRegion:
- emitDataRegion(DataRegionData::Data);
+ emitDataRegion(MachO::DataRegionType::DICE_KIND_DATA);
return;
case MCDR_DataRegionJT8:
- emitDataRegion(DataRegionData::JumpTable8);
+ emitDataRegion(MachO::DataRegionType::DICE_KIND_JUMP_TABLE8);
return;
case MCDR_DataRegionJT16:
- emitDataRegion(DataRegionData::JumpTable16);
+ emitDataRegion(MachO::DataRegionType::DICE_KIND_JUMP_TABLE16);
return;
case MCDR_DataRegionJT32:
- emitDataRegion(DataRegionData::JumpTable32);
+ emitDataRegion(MachO::DataRegionType::DICE_KIND_JUMP_TABLE32);
return;
case MCDR_DataRegionEnd:
emitDataRegionEnd();
@@ -321,10 +325,8 @@ bool MCMachOStreamer::emitSymbolAttribute(MCSymbol *Sym,
if (Attribute == MCSA_IndirectSymbol) {
// Note that we intentionally cannot use the symbol data here; this is
// important for matching the string table that 'as' generates.
- IndirectSymbolData ISD;
- ISD.Symbol = Symbol;
- ISD.Section = getCurrentSectionOnly();
- getAssembler().getIndirectSymbols().push_back(ISD);
+ getWriter().getIndirectSymbols().push_back(
+ {Symbol, getCurrentSectionOnly()});
return true;
}
diff --git a/llvm/lib/MC/MachObjectWriter.cpp b/llvm/lib/MC/MachObjectWriter.cpp
index e9499558a90dbf..14f7f0d5c1871b 100644
--- a/llvm/lib/MC/MachObjectWriter.cpp
+++ b/llvm/lib/MC/MachObjectWriter.cpp
@@ -47,6 +47,8 @@ using namespace llvm;
void MachObjectWriter::reset() {
Relocations.clear();
IndirectSymBase.clear();
+ IndirectSymbols.clear();
+ DataRegions.clear();
SectionAddress.clear();
SectionOrder.clear();
StringTable.clear();
@@ -516,8 +518,7 @@ void MachObjectWriter::bindIndirectSymbols(MCAssembler &Asm) {
// Report errors for use of .indirect_symbol not in a symbol pointer section
// or stub section.
- for (IndirectSymbolData &ISD : llvm::make_range(Asm.indirect_symbol_begin(),
- Asm.indirect_symbol_end())) {
+ for (IndirectSymbolData &ISD : IndirectSymbols) {
const MCSectionMachO &Section = cast<MCSectionMachO>(*ISD.Section);
if (Section.getType() != MachO::S_NON_LAZY_SYMBOL_POINTERS &&
@@ -531,39 +532,35 @@ void MachObjectWriter::bindIndirectSymbols(MCAssembler &Asm) {
}
// Bind non-lazy symbol pointers first.
- unsigned IndirectIndex = 0;
- for (MCAssembler::indirect_symbol_iterator it = Asm.indirect_symbol_begin(),
- ie = Asm.indirect_symbol_end(); it != ie; ++it, ++IndirectIndex) {
- const MCSectionMachO &Section = cast<MCSectionMachO>(*it->Section);
+ for (auto [IndirectIndex, ISD] : enumerate(IndirectSymbols)) {
+ const auto &Section = cast<MCSectionMachO>(*ISD.Section);
if (Section.getType() != MachO::S_NON_LAZY_SYMBOL_POINTERS &&
Section.getType() != MachO::S_THREAD_LOCAL_VARIABLE_POINTERS)
continue;
// Initialize the section indirect symbol base, if necessary.
- IndirectSymBase.insert(std::make_pair(it->Section, IndirectIndex));
+ IndirectSymBase.insert(std::make_pair(ISD.Section, IndirectIndex));
- Asm.registerSymbol(*it->Symbol);
+ Asm.registerSymbol(*ISD.Symbol);
}
// Then lazy symbol pointers and symbol stubs.
- IndirectIndex = 0;
- for (MCAssembler::indirect_symbol_iterator it = Asm.indirect_symbol_begin(),
- ie = Asm.indirect_symbol_end(); it != ie; ++it, ++IndirectIndex) {
- const MCSectionMachO &Section = cast<MCSectionMachO>(*it->Section);
+ for (auto [IndirectIndex, ISD] : enumerate(IndirectSymbols)) {
+ const auto &Section = cast<MCSectionMachO>(*ISD.Section);
if (Section.getType() != MachO::S_LAZY_SYMBOL_POINTERS &&
Section.getType() != MachO::S_SYMBOL_STUBS)
continue;
// Initialize the section indirect symbol base, if necessary.
- IndirectSymBase.insert(std::make_pair(it->Section, IndirectIndex));
+ IndirectSymBase.insert(std::make_pair(ISD.Section, IndirectIndex));
// Set the symbol type to undefined lazy, but only on construction.
//
// FIXME: Do not hardcode.
- if (Asm.registerSymbol(*it->Symbol))
- cast<MCSymbolMachO>(it->Symbol)->setReferenceTypeUndefinedLazy(true);
+ if (Asm.registerSymbol(*ISD.Symbol))
+ cast<MCSymbolMachO>(ISD.Symbol)->setReferenceTypeUndefinedLazy(true);
}
}
@@ -832,7 +829,7 @@ uint64_t MachObjectWriter::writeObject(MCAssembler &Asm) {
}
// Add the data-in-code load command size, if used.
- unsigned NumDataRegions = Asm.getDataRegions().size();
+ unsigned NumDataRegions = DataRegions.size();
if (NumDataRegions) {
++NumLoadCommands;
LoadCommandsSize += sizeof(MachO::linkedit_data_command);
@@ -975,7 +972,7 @@ uint64_t MachObjectWriter::writeObject(MCAssembler &Asm) {
unsigned NumExternalSymbols = ExternalSymbolData.size();
unsigned FirstUndefinedSymbol = FirstExternalSymbol + NumExternalSymbols;
unsigned NumUndefinedSymbols = UndefinedSymbolData.size();
- unsigned NumIndirectSymbols = Asm.indirect_symbol_size();
+ unsigned NumIndirectSymbols = IndirectSymbols.size();
unsigned NumSymTabSymbols =
NumLocalSymbols + NumExternalSymbols + NumUndefinedSymbols;
uint64_t IndirectSymbolSize = NumIndirectSymbols * 4;
@@ -1029,25 +1026,21 @@ uint64_t MachObjectWriter::writeObject(MCAssembler &Asm) {
}
// Write out the data-in-code region payload, if there is one.
- for (MCAssembler::const_data_region_iterator
- it = Asm.data_region_begin(), ie = Asm.data_region_end();
- it != ie; ++it) {
- const DataRegionData *Data = &(*it);
- uint64_t Start = getSymbolAddress(*Data->Start, Asm);
+ for (DataRegionData Data : DataRegions) {
+ uint64_t Start = getSymbolAddress(*Data.Start, Asm);
uint64_t End;
- if (Data->End)
- End = getSymbolAddress(*Data->End, Asm);
+ if (Data.End)
+ End = getSymbolAddress(*Data.End, Asm);
else
report_fatal_error("Data region not terminated");
- LLVM_DEBUG(dbgs() << "data in code region-- kind: " << Data->Kind
- << " start: " << Start << "(" << Data->Start->getName()
- << ")"
- << " end: " << End << "(" << Data->End->getName() << ")"
- << " size: " << End - Start << "\n");
+ LLVM_DEBUG(dbgs() << "data in code region-- kind: " << Data.Kind
+ << " start: " << Start << "(" << Data.Start->getName()
+ << ")" << " end: " << End << "(" << Data.End->getName()
+ << ")" << " size: " << End - Start << "\n");
W.write<uint32_t>(Start);
W.write<uint16_t>(End - Start);
- W.write<uint16_t>(Data->Kind);
+ W.write<uint16_t>(Data.Kind);
}
// Write out the loh commands, if there is one.
@@ -1065,25 +1058,23 @@ uint64_t MachObjectWriter::writeObject(MCAssembler &Asm) {
// Write the symbol table data, if used.
if (NumSymbols) {
// Write the indirect symbol entries.
- for (MCAssembler::const_indirect_symbol_iterator
- it = Asm.indirect_symbol_begin(),
- ie = Asm.indirect_symbol_end(); it != ie; ++it) {
+ for (auto &ISD : IndirectSymbols) {
// Indirect symbols in the non-lazy symbol pointer section have some
// special handling.
const MCSectionMachO &Section =
- static_cast<const MCSectionMachO &>(*it->Section);
+ static_cast<const MCSectionMachO &>(*ISD.Section);
if (Section.getType() == MachO::S_NON_LAZY_SYMBOL_POINTERS) {
// If this symbol is defined and internal, mark it as such.
- if (it->Symbol->isDefined() && !it->Symbol->isExternal()) {
+ if (ISD.Symbol->isDefined() && !ISD.Symbol->isExternal()) {
uint32_t Flags = MachO::INDIRECT_SYMBOL_LOCAL;
- if (it->Symbol->isAbsolute())
+ if (ISD.Symbol->isAbsolute())
Flags |= MachO::INDIRECT_SYMBOL_ABS;
W.write<uint32_t>(Flags);
continue;
}
}
- W.write<uint32_t>(it->Symbol->getIndex());
+ W.write<uint32_t>(ISD.Symbol->getIndex());
}
// FIXME: Check that offsets match computed ones.
diff --git a/llvm/lib/Target/X86/X86TargetTransformInfo.cpp b/llvm/lib/Target/X86/X86TargetTransformInfo.cpp
index bb0270c018c982..32a3683355b729 100644
--- a/llvm/lib/Target/X86/X86TargetTransformInfo.cpp
+++ b/llvm/lib/Target/X86/X86TargetTransformInfo.cpp
@@ -185,9 +185,11 @@ bool X86TTIImpl::hasConditionalLoadStoreForType(Type *Ty) const {
// 16/32/64-bit operands.
// TODO: Support f32/f64 with VMOVSS/VMOVSD with zero mask when it's
// profitable.
- if (!Ty->isIntegerTy())
+ auto *VTy = dyn_cast<FixedVectorType>(Ty);
+ if (!Ty->isIntegerTy() && (!VTy || VTy->getNumElements() != 1))
return false;
- switch (cast<IntegerType>(Ty)->getBitWidth()) {
+ auto *ScalarTy = Ty->getScalarType();
+ switch (cast<IntegerType>(ScalarTy)->getBitWidth()) {
default:
return false;
case 16:
diff --git a/llvm/lib/Transforms/Scalar/SimplifyCFGPass.cpp b/llvm/lib/Transforms/Scalar/SimplifyCFGPass.cpp
index 7017f6adf3a2bb..b7baf34f27c217 100644
--- a/llvm/lib/Transforms/Scalar/SimplifyCFGPass.cpp
+++ b/llvm/lib/Transforms/Scalar/SimplifyCFGPass.cpp
@@ -142,8 +142,10 @@ performBlockTailMerging(Function &F, ArrayRef<BasicBlock *> BBs,
// And turn BB into a block that just unconditionally branches
// to the canonical block.
+ Instruction *BI = BranchInst::Create(CanonicalBB, BB);
+ BI->setDebugLoc(Term->getDebugLoc());
Term->eraseFromParent();
- BranchInst::Create(CanonicalBB, BB);
+
if (Updates)
Updates->push_back({DominatorTree::Insert, BB, CanonicalBB});
}
diff --git a/llvm/lib/Transforms/Utils/PromoteMemoryToRegister.cpp b/llvm/lib/Transforms/Utils/PromoteMemoryToRegister.cpp
index cd5ab55c2122fb..546a6cd56b2508 100644
--- a/llvm/lib/Transforms/Utils/PromoteMemoryToRegister.cpp
+++ b/llvm/lib/Transforms/Utils/PromoteMemoryToRegister.cpp
@@ -528,11 +528,10 @@ rewriteSingleStoreAlloca(AllocaInst *AI, AllocaInfo &Info, LargeBlockInfo &LBI,
Value *ReplVal = OnlyStore->getOperand(0);
// Loads may either load the stored value or uninitialized memory (undef).
// If the stored value may be poison, then replacing an uninitialized memory
- // load with it would be incorrect.
- if (!isGuaranteedNotToBePoison(ReplVal))
- return false;
-
- bool StoringGlobalVal = !isa<Instruction>(ReplVal);
+ // load with it would be incorrect. If the store dominates the load, we know
+ // it is always initialized.
+ bool RequireDominatingStore =
+ isa<Instruction>(ReplVal) || !isGuaranteedNotToBePoison(ReplVal);
BasicBlock *StoreBB = OnlyStore->getParent();
int StoreIndex = -1;
@@ -549,7 +548,7 @@ rewriteSingleStoreAlloca(AllocaInst *AI, AllocaInfo &Info, LargeBlockInfo &LBI,
// only value stored to the alloca. We can do this if the value is
// dominated by the store. If not, we use the rest of the mem2reg machinery
// to insert the phi nodes as needed.
- if (!StoringGlobalVal) { // Non-instructions are always dominated.
+ if (RequireDominatingStore) {
if (LI->getParent() == StoreBB) {
// If we have a use that is in the same block as the store, compare the
// indices of the two instructions to see which one came first. If the
diff --git a/llvm/test/CodeGen/X86/apx/cf.ll b/llvm/test/CodeGen/X86/apx/cf.ll
index 7db1d524ebdeb9..c71d7768834f3f 100644
--- a/llvm/test/CodeGen/X86/apx/cf.ll
+++ b/llvm/test/CodeGen/X86/apx/cf.ll
@@ -1,5 +1,5 @@
; NOTE: Assertions have been autogenerated by utils/update_llc_test_checks.py
-; RUN: llc < %s -mtriple=x86_64 -mattr=+cf -verify-machineinstrs | FileCheck %s
+; RUN: llc < %s -mtriple=x86_64 -mattr=+cf,+avx512f -verify-machineinstrs | FileCheck %s
define void @basic(i32 %a, ptr %b, ptr %p, ptr %q) {
; CHECK-LABEL: basic:
@@ -103,3 +103,24 @@ entry:
%2 = bitcast <1 x i64> %1 to i64
ret i64 %2
}
+
+define void @no_crash(ptr %p, <4 x i1> %cond1, <4 x i1> %cond2) {
+; CHECK-LABEL: no_crash:
+; CHECK: # %bb.0: # %entry
+; CHECK-NEXT: vpslld $31, %xmm1, %xmm1
+; CHECK-NEXT: vptestmd %zmm1, %zmm1, %k0
+; CHECK-NEXT: kshiftlw $12, %k0, %k0
+; CHECK-NEXT: kshiftrw $12, %k0, %k1
+; CHECK-NEXT: vpslld $31, %xmm0, %xmm0
+; CHECK-NEXT: vptestmd %zmm0, %zmm0, %k0
+; CHECK-NEXT: kshiftlw $12, %k0, %k0
+; CHECK-NEXT: kshiftrw $12, %k0, %k2
+; CHECK-NEXT: vmovdqu64 (%rdi), %zmm0 {%k2} {z}
+; CHECK-NEXT: vmovdqu64 %zmm0, (%rdi) {%k1}
+; CHECK-NEXT: vzeroupper
+; CHECK-NEXT: retq
+entry:
+ %0 = call <4 x i64> @llvm.masked.load.v4i64.p0(ptr %p, i32 8, <4 x i1> %cond1, <4 x i64> poison)
+ call void @llvm.masked.store.v4i64.p0(<4 x i64> %0, ptr %p, i32 8, <4 x i1> %cond2)
+ ret void
+}
diff --git a/llvm/test/Transforms/OpenMP/add_attributes.ll b/llvm/test/Transforms/OpenMP/add_attributes.ll
index ebcca3067f045a..fefb1900afae7e 100644
--- a/llvm/test/Transforms/OpenMP/add_attributes.ll
+++ b/llvm/test/Transforms/OpenMP/add_attributes.ll
@@ -643,15 +643,15 @@ declare i32 @__tgt_target_teams_nowait_mapper(ptr, i64, ptr, i32, ptr, ptr, ptr,
declare void @__tgt_target_data_begin_mapper(ptr, i64, i32, ptr, ptr, ptr, ptr, ptr, ptr)
-declare void @__tgt_target_data_begin_nowait_mapper(ptr, i64, i32, ptr, ptr, ptr, ptr, ptr, ptr)
+declare void @__tgt_target_data_begin_nowait_mapper(ptr, i64, i32, ptr, ptr, ptr, ptr, ptr, ptr, i32, ptr, i32, ptr)
declare void @__tgt_target_data_end_mapper(ptr, i64, i32, ptr, ptr, ptr, ptr, ptr, ptr)
-declare void @__tgt_target_data_end_nowait_mapper(ptr, i64, i32, ptr, ptr, ptr, ptr, ptr, ptr)
+declare void @__tgt_target_data_end_nowait_mapper(ptr, i64, i32, ptr, ptr, ptr, ptr, ptr, ptr, i32, ptr, i32, ptr)
declare void @__tgt_target_data_update_mapper(ptr, i64, i32, ptr, ptr, ptr, ptr, ptr, ptr)
-declare void @__tgt_target_data_update_nowait_mapper(ptr, i64, i32, ptr, ptr, ptr, ptr, ptr, ptr)
+declare void @__tgt_target_data_update_nowait_mapper(ptr, i64, i32, ptr, ptr, ptr, ptr, ptr, ptr, i32, ptr, i32, ptr)
declare i64 @__tgt_mapper_num_components(ptr)
@@ -1250,19 +1250,19 @@ declare i32 @__tgt_target_kernel_nowait(ptr, i64, i32, i32, ptr, ptr, i32, ptr,
; CHECK-NEXT: declare void @__tgt_target_data_begin_mapper(ptr, i64, i32, ptr, ptr, ptr, ptr, ptr, ptr)
; CHECK: ; Function Attrs: nounwind
-; CHECK-NEXT: declare void @__tgt_target_data_begin_nowait_mapper(ptr, i64, i32, ptr, ptr, ptr, ptr, ptr, ptr)
+; CHECK-NEXT: declare void @__tgt_target_data_begin_nowait_mapper(ptr, i64, i32, ptr, ptr, ptr, ptr, ptr, ptr, i32, ptr, i32, ptr)
; CHECK: ; Function Attrs: nounwind
; CHECK-NEXT: declare void @__tgt_target_data_end_mapper(ptr, i64, i32, ptr, ptr, ptr, ptr, ptr, ptr)
; CHECK: ; Function Attrs: nounwind
-; CHECK-NEXT: declare void @__tgt_target_data_end_nowait_mapper(ptr, i64, i32, ptr, ptr, ptr, ptr, ptr, ptr)
+; CHECK-NEXT: declare void @__tgt_target_data_end_nowait_mapper(ptr, i64, i32, ptr, ptr, ptr, ptr, ptr, ptr, i32, ptr, i32, ptr)
; CHECK: ; Function Attrs: nounwind
; CHECK-NEXT: declare void @__tgt_target_data_update_mapper(ptr, i64, i32, ptr, ptr, ptr, ptr, ptr, ptr)
; CHECK: ; Function Attrs: nounwind
-; CHECK-NEXT: declare void @__tgt_target_data_update_nowait_mapper(ptr, i64, i32, ptr, ptr, ptr, ptr, ptr, ptr)
+; CHECK-NEXT: declare void @__tgt_target_data_update_nowait_mapper(ptr, i64, i32, ptr, ptr, ptr, ptr, ptr, ptr, i32, ptr, i32, ptr)
; CHECK: ; Function Attrs: nounwind
; CHECK-NEXT: declare i64 @__tgt_mapper_num_components(ptr)
@@ -1892,19 +1892,19 @@ declare i32 @__tgt_target_kernel_nowait(ptr, i64, i32, i32, ptr, ptr, i32, ptr,
; OPTIMISTIC-NEXT: declare void @__tgt_target_data_begin_mapper(ptr, i64, i32, ptr, ptr, ptr, ptr, ptr, ptr)
; OPTIMISTIC: ; Function Attrs: nounwind
-; OPTIMISTIC-NEXT: declare void @__tgt_target_data_begin_nowait_mapper(ptr, i64, i32, ptr, ptr, ptr, ptr, ptr, ptr)
+; OPTIMISTIC-NEXT: declare void @__tgt_target_data_begin_nowait_mapper(ptr, i64, i32, ptr, ptr, ptr, ptr, ptr, ptr, i32, ptr, i32, ptr)
; OPTIMISTIC: ; Function Attrs: nounwind
; OPTIMISTIC-NEXT: declare void @__tgt_target_data_end_mapper(ptr, i64, i32, ptr, ptr, ptr, ptr, ptr, ptr)
; OPTIMISTIC: ; Function Attrs: nounwind
-; OPTIMISTIC-NEXT: declare void @__tgt_target_data_end_nowait_mapper(ptr, i64, i32, ptr, ptr, ptr, ptr, ptr, ptr)
+; OPTIMISTIC-NEXT: declare void @__tgt_target_data_end_nowait_mapper(ptr, i64, i32, ptr, ptr, ptr, ptr, ptr, ptr, i32, ptr, i32, ptr)
; OPTIMISTIC: ; Function Attrs: nounwind
; OPTIMISTIC-NEXT: declare void @__tgt_target_data_update_mapper(ptr, i64, i32, ptr, ptr, ptr, ptr, ptr, ptr)
; OPTIMISTIC: ; Function Attrs: nounwind
-; OPTIMISTIC-NEXT: declare void @__tgt_target_data_update_nowait_mapper(ptr, i64, i32, ptr, ptr, ptr, ptr, ptr, ptr)
+; OPTIMISTIC-NEXT: declare void @__tgt_target_data_update_nowait_mapper(ptr, i64, i32, ptr, ptr, ptr, ptr, ptr, ptr, i32, ptr, i32, ptr)
; OPTIMISTIC: ; Function Attrs: nounwind
; OPTIMISTIC-NEXT: declare i64 @__tgt_mapper_num_components(ptr)
@@ -2547,19 +2547,19 @@ declare i32 @__tgt_target_kernel_nowait(ptr, i64, i32, i32, ptr, ptr, i32, ptr,
; EXT-NEXT: declare void @__tgt_target_data_begin_mapper(ptr, i64, i32 signext, ptr, ptr, ptr, ptr, ptr, ptr)
; EXT: ; Function Attrs: nounwind
-; EXT-NEXT: declare void @__tgt_target_data_begin_nowait_mapper(ptr, i64, i32 signext, ptr, ptr, ptr, ptr, ptr, ptr)
+; EXT-NEXT: declare void @__tgt_target_data_begin_nowait_mapper(ptr, i64, i32 signext, ptr, ptr, ptr, ptr, ptr, ptr, i32 signext, ptr, i32 signext, ptr)
; EXT: ; Function Attrs: nounwind
; EXT-NEXT: declare void @__tgt_target_data_end_mapper(ptr, i64, i32 signext, ptr, ptr, ptr, ptr, ptr, ptr)
; EXT: ; Function Attrs: nounwind
-; EXT-NEXT: declare void @__tgt_target_data_end_nowait_mapper(ptr, i64, i32 signext, ptr, ptr, ptr, ptr, ptr, ptr)
+; EXT-NEXT: declare void @__tgt_target_data_end_nowait_mapper(ptr, i64, i32 signext, ptr, ptr, ptr, ptr, ptr, ptr, i32 signext, ptr, i32 signext, ptr)
; EXT: ; Function Attrs: nounwind
; EXT-NEXT: declare void @__tgt_target_data_update_mapper(ptr, i64, i32 signext, ptr, ptr, ptr, ptr, ptr, ptr)
; EXT: ; Function Attrs: nounwind
-; EXT-NEXT: declare void @__tgt_target_data_update_nowait_mapper(ptr, i64, i32 signext, ptr, ptr, ptr, ptr, ptr, ptr)
+; EXT-NEXT: declare void @__tgt_target_data_update_nowait_mapper(ptr, i64, i32 signext, ptr, ptr, ptr, ptr, ptr, ptr, i32 signext, ptr, i32 signext, ptr)
; EXT: ; Function Attrs: nounwind
; EXT-NEXT: declare i64 @__tgt_mapper_num_components(ptr)
diff --git a/llvm/test/Transforms/SimplifyCFG/preserving-debugloc-br.ll b/llvm/test/Transforms/SimplifyCFG/preserving-debugloc-br.ll
new file mode 100644
index 00000000000000..298701ff61b498
--- /dev/null
+++ b/llvm/test/Transforms/SimplifyCFG/preserving-debugloc-br.ll
@@ -0,0 +1,72 @@
+; RUN: opt -S -passes=simplifycfg < %s | FileCheck %s
+
+; Check that SimplifyCFGPass's performBlockTailMerging() propagates
+; the debug location of the old block terminator to the new branch
+; instruction.
+
+define i32 @foo(i64 %x, i64 %y) !dbg !5 {
+; CHECK-LABEL: define i32 @foo(
+; CHECK: a:
+; CHECK: br label %[[COMMON_RET:.*]], !dbg [[DBG14:![0-9]+]]
+; CHECK: b:
+; CHECK: br label %[[COMMON_RET]], !dbg [[DBG17:![0-9]+]]
+;
+entry:
+ %eq = icmp eq i64 %x, %y, !dbg !8
+ br i1 %eq, label %b, label %switch, !dbg !9
+
+switch: ; preds = %entry
+ %lt = icmp slt i64 %x, %y, !dbg !10
+ %qux = select i1 %lt, i32 0, i32 2, !dbg !11
+ switch i32 %qux, label %bees [
+ i32 0, label %a
+ i32 1, label %b
+ i32 2, label %b
+ ], !dbg !12
+
+a: ; preds = %switch
+ tail call void @bees.a(), !dbg !13
+ ret i32 1, !dbg !14
+
+b: ; preds = %switch, %switch, %entry
+ %retval = phi i32 [ 0, %switch ], [ 0, %switch ], [ 2, %entry ], !dbg !15
+ tail call void @bees.b(), !dbg !16
+ ret i32 %retval, !dbg !17
+
+bees: ; preds = %switch
+ tail call void @llvm.trap(), !dbg !18
+ unreachable, !dbg !19
+}
+
+
+declare void @llvm.trap()
+declare void @bees.a()
+declare void @bees.b()
+
+!llvm.dbg.cu = !{!0}
+!llvm.debugify = !{!2, !3}
+!llvm.module.flags = !{!4}
+
+; CHECK: [[DBG14]] = !DILocation(line: 7,
+; CHECK: [[DBG17]] = !DILocation(line: 10,
+
+!0 = distinct !DICompileUnit(language: DW_LANG_C, file: !1, producer: "debugify", isOptimized: true, runtimeVersion: 0, emissionKind: FullDebug)
+!1 = !DIFile(filename: "main.ll", directory: "/")
+!2 = !{i32 12}
+!3 = !{i32 0}
+!4 = !{i32 2, !"Debug Info Version", i32 3}
+!5 = distinct !DISubprogram(name: "foo", linkageName: "foo", scope: null, file: !1, line: 1, type: !6, scopeLine: 1, spFlags: DISPFlagDefinition | DISPFlagOptimized, unit: !0)
+!6 = !DISubroutineType(types: !7)
+!7 = !{}
+!8 = !DILocation(line: 1, column: 1, scope: !5)
+!9 = !DILocation(line: 2, column: 1, scope: !5)
+!10 = !DILocation(line: 3, column: 1, scope: !5)
+!11 = !DILocation(line: 4, column: 1, scope: !5)
+!12 = !DILocation(line: 5, column: 1, scope: !5)
+!13 = !DILocation(line: 6, column: 1, scope: !5)
+!14 = !DILocation(line: 7, column: 1, scope: !5)
+!15 = !DILocation(line: 8, column: 1, scope: !5)
+!16 = !DILocation(line: 9, column: 1, scope: !5)
+!17 = !DILocation(line: 10, column: 1, scope: !5)
+!18 = !DILocation(line: 11, column: 1, scope: !5)
+!19 = !DILocation(line: 12, column: 1, scope: !5)
diff --git a/llvm/test/tools/llvm-symbolizer/get-input-file.test b/llvm/test/tools/llvm-symbolizer/get-input-file.test
index 8c21816591c81a..50eb0519687186 100644
--- a/llvm/test/tools/llvm-symbolizer/get-input-file.test
+++ b/llvm/test/tools/llvm-symbolizer/get-input-file.test
@@ -1,9 +1,9 @@
# If binary input file is not specified, llvm-symbolizer assumes it is the first
# item in the command.
-# No input items at all, complain about missing input file.
+# No input items at all. Report an unknown line, but do not produce any output on stderr.
RUN: echo | llvm-symbolizer 2>%t.1.err | FileCheck %s --check-prefix=NOSOURCE
-RUN: FileCheck --input-file=%t.1.err --check-prefix=NOFILE %s
+RUN: FileCheck --input-file=%t.1.err --implicit-check-not={{.}} --allow-empty %s
# Only one input item, complain about missing addresses.
RUN: llvm-symbolizer "foo" 2>%t.2.err | FileCheck %s --check-prefix=NOSOURCE
@@ -32,8 +32,6 @@ RUN: FileCheck --input-file=%t.7.err --check-prefix=BAD-QUOTE %s
NOSOURCE: ??
NOSOURCE-NEXT: ??:0:0
-NOFILE: error: no input filename has been specified
-
NOADDR: error: 'foo': no module offset has been specified
NOTFOUND: error: 'foo': [[MSG]]
diff --git a/llvm/tools/llvm-cov/CodeCoverage.cpp b/llvm/tools/llvm-cov/CodeCoverage.cpp
index 75028ac0bb505b..d06fd86fe52afb 100644
--- a/llvm/tools/llvm-cov/CodeCoverage.cpp
+++ b/llvm/tools/llvm-cov/CodeCoverage.cpp
@@ -100,15 +100,12 @@ class CodeCoverageTool {
const CoverageMapping &Coverage);
/// Create source views for the branches of the view.
- void attachBranchSubViews(SourceCoverageView &View, StringRef SourceName,
- ArrayRef<CountedRegion> Branches,
- const MemoryBuffer &File,
- CoverageData &CoverageInfo);
+ void attachBranchSubViews(SourceCoverageView &View,
+ ArrayRef<CountedRegion> Branches);
/// Create source views for the MCDC records.
- void attachMCDCSubViews(SourceCoverageView &View, StringRef SourceName,
- ArrayRef<MCDCRecord> MCDCRecords,
- const MemoryBuffer &File, CoverageData &CoverageInfo);
+ void attachMCDCSubViews(SourceCoverageView &View,
+ ArrayRef<MCDCRecord> MCDCRecords);
/// Create the source view of a particular function.
std::unique_ptr<SourceCoverageView>
@@ -324,17 +321,13 @@ void CodeCoverageTool::attachExpansionSubViews(
SourceCoverageView::create(Expansion.Function.Name, SourceBuffer.get(),
ViewOpts, std::move(ExpansionCoverage));
attachExpansionSubViews(*SubView, SubViewExpansions, Coverage);
- attachBranchSubViews(*SubView, Expansion.Function.Name, SubViewBranches,
- SourceBuffer.get(), ExpansionCoverage);
+ attachBranchSubViews(*SubView, SubViewBranches);
View.addExpansion(Expansion.Region, std::move(SubView));
}
}
void CodeCoverageTool::attachBranchSubViews(SourceCoverageView &View,
- StringRef SourceName,
- ArrayRef<CountedRegion> Branches,
- const MemoryBuffer &File,
- CoverageData &CoverageInfo) {
+ ArrayRef<CountedRegion> Branches) {
if (!ViewOpts.ShowBranchCounts && !ViewOpts.ShowBranchPercents)
return;
@@ -348,17 +341,12 @@ void CodeCoverageTool::attachBranchSubViews(SourceCoverageView &View,
while (NextBranch != EndBranch && CurrentLine == NextBranch->LineStart)
ViewBranches.push_back(*NextBranch++);
- View.addBranch(CurrentLine, std::move(ViewBranches),
- SourceCoverageView::create(SourceName, File, ViewOpts,
- std::move(CoverageInfo)));
+ View.addBranch(CurrentLine, std::move(ViewBranches));
}
}
void CodeCoverageTool::attachMCDCSubViews(SourceCoverageView &View,
- StringRef SourceName,
- ArrayRef<MCDCRecord> MCDCRecords,
- const MemoryBuffer &File,
- CoverageData &CoverageInfo) {
+ ArrayRef<MCDCRecord> MCDCRecords) {
if (!ViewOpts.ShowMCDC)
return;
@@ -374,9 +362,7 @@ void CodeCoverageTool::attachMCDCSubViews(SourceCoverageView &View,
CurrentLine == NextRecord->getDecisionRegion().LineEnd)
ViewMCDCRecords.push_back(*NextRecord++);
- View.addMCDCRecord(CurrentLine, std::move(ViewMCDCRecords),
- SourceCoverageView::create(SourceName, File, ViewOpts,
- std::move(CoverageInfo)));
+ View.addMCDCRecord(CurrentLine, std::move(ViewMCDCRecords));
}
}
@@ -397,10 +383,8 @@ CodeCoverageTool::createFunctionView(const FunctionRecord &Function,
SourceBuffer.get(), ViewOpts,
std::move(FunctionCoverage));
attachExpansionSubViews(*View, Expansions, Coverage);
- attachBranchSubViews(*View, DC.demangle(Function.Name), Branches,
- SourceBuffer.get(), FunctionCoverage);
- attachMCDCSubViews(*View, DC.demangle(Function.Name), MCDCRecords,
- SourceBuffer.get(), FunctionCoverage);
+ attachBranchSubViews(*View, Branches);
+ attachMCDCSubViews(*View, MCDCRecords);
return View;
}
@@ -421,10 +405,8 @@ CodeCoverageTool::createSourceFileView(StringRef SourceFile,
auto View = SourceCoverageView::create(SourceFile, SourceBuffer.get(),
ViewOpts, std::move(FileCoverage));
attachExpansionSubViews(*View, Expansions, Coverage);
- attachBranchSubViews(*View, SourceFile, Branches, SourceBuffer.get(),
- FileCoverage);
- attachMCDCSubViews(*View, SourceFile, MCDCRecords, SourceBuffer.get(),
- FileCoverage);
+ attachBranchSubViews(*View, Branches);
+ attachMCDCSubViews(*View, MCDCRecords);
if (!ViewOpts.ShowFunctionInstantiations)
return View;
@@ -446,10 +428,8 @@ CodeCoverageTool::createSourceFileView(StringRef SourceFile,
SubView = SourceCoverageView::create(
Funcname, SourceBuffer.get(), ViewOpts, std::move(SubViewCoverage));
attachExpansionSubViews(*SubView, SubViewExpansions, Coverage);
- attachBranchSubViews(*SubView, SourceFile, SubViewBranches,
- SourceBuffer.get(), SubViewCoverage);
- attachMCDCSubViews(*SubView, SourceFile, SubViewMCDCRecords,
- SourceBuffer.get(), SubViewCoverage);
+ attachBranchSubViews(*SubView, SubViewBranches);
+ attachMCDCSubViews(*SubView, SubViewMCDCRecords);
}
unsigned FileID = Function->CountedRegions.front().FileID;
diff --git a/llvm/tools/llvm-cov/SourceCoverageView.cpp b/llvm/tools/llvm-cov/SourceCoverageView.cpp
index ce55e3abf23bd2..dfecddfaf4143f 100644
--- a/llvm/tools/llvm-cov/SourceCoverageView.cpp
+++ b/llvm/tools/llvm-cov/SourceCoverageView.cpp
@@ -175,15 +175,13 @@ void SourceCoverageView::addExpansion(
}
void SourceCoverageView::addBranch(unsigned Line,
- SmallVector<CountedRegion, 0> Regions,
- std::unique_ptr<SourceCoverageView> View) {
- BranchSubViews.emplace_back(Line, std::move(Regions), std::move(View));
+ SmallVector<CountedRegion, 0> Regions) {
+ BranchSubViews.emplace_back(Line, std::move(Regions));
}
-void SourceCoverageView::addMCDCRecord(
- unsigned Line, SmallVector<MCDCRecord, 0> Records,
- std::unique_ptr<SourceCoverageView> View) {
- MCDCSubViews.emplace_back(Line, std::move(Records), std::move(View));
+void SourceCoverageView::addMCDCRecord(unsigned Line,
+ SmallVector<MCDCRecord, 0> Records) {
+ MCDCSubViews.emplace_back(Line, std::move(Records));
}
void SourceCoverageView::addInstantiation(
diff --git a/llvm/tools/llvm-cov/SourceCoverageView.h b/llvm/tools/llvm-cov/SourceCoverageView.h
index d255f8c200b249..2b1570d399dd0b 100644
--- a/llvm/tools/llvm-cov/SourceCoverageView.h
+++ b/llvm/tools/llvm-cov/SourceCoverageView.h
@@ -70,12 +70,10 @@ struct InstantiationView {
/// A view that represents one or more branch regions on a given source line.
struct BranchView {
SmallVector<CountedRegion, 0> Regions;
- std::unique_ptr<SourceCoverageView> View;
unsigned Line;
- BranchView(unsigned Line, SmallVector<CountedRegion, 0> Regions,
- std::unique_ptr<SourceCoverageView> View)
- : Regions(std::move(Regions)), View(std::move(View)), Line(Line) {}
+ BranchView(unsigned Line, SmallVector<CountedRegion, 0> Regions)
+ : Regions(std::move(Regions)), Line(Line) {}
unsigned getLine() const { return Line; }
@@ -87,12 +85,10 @@ struct BranchView {
/// A view that represents one or more MCDC regions on a given source line.
struct MCDCView {
SmallVector<MCDCRecord, 0> Records;
- std::unique_ptr<SourceCoverageView> View;
unsigned Line;
- MCDCView(unsigned Line, SmallVector<MCDCRecord, 0> Records,
- std::unique_ptr<SourceCoverageView> View)
- : Records(std::move(Records)), View(std::move(View)), Line(Line) {}
+ MCDCView(unsigned Line, SmallVector<MCDCRecord, 0> Records)
+ : Records(std::move(Records)), Line(Line) {}
unsigned getLine() const { return Line; }
@@ -303,12 +299,10 @@ class SourceCoverageView {
std::unique_ptr<SourceCoverageView> View);
/// Add a branch subview to this view.
- void addBranch(unsigned Line, SmallVector<CountedRegion, 0> Regions,
- std::unique_ptr<SourceCoverageView> View);
+ void addBranch(unsigned Line, SmallVector<CountedRegion, 0> Regions);
/// Add an MCDC subview to this view.
- void addMCDCRecord(unsigned Line, SmallVector<MCDCRecord, 0> Records,
- std::unique_ptr<SourceCoverageView> View);
+ void addMCDCRecord(unsigned Line, SmallVector<MCDCRecord, 0> Records);
/// Print the code coverage information for a specific portion of a
/// source file to the output stream.
diff --git a/llvm/tools/llvm-symbolizer/llvm-symbolizer.cpp b/llvm/tools/llvm-symbolizer/llvm-symbolizer.cpp
index b98bdbc388faf2..6d7953f3109a57 100644
--- a/llvm/tools/llvm-symbolizer/llvm-symbolizer.cpp
+++ b/llvm/tools/llvm-symbolizer/llvm-symbolizer.cpp
@@ -337,6 +337,14 @@ static void symbolizeInput(const opt::InputArgList &Args,
object::BuildID BuildID(IncomingBuildID.begin(), IncomingBuildID.end());
uint64_t Offset = 0;
StringRef Symbol;
+
+ // An empty input string may be used to check if the process is alive and
+ // responding to input. Do not emit a message on stderr in this case but
+ // respond on stdout.
+ if (InputString.empty()) {
+ printUnknownLineInfo(ModuleName, Printer);
+ return;
+ }
if (Error E = parseCommand(Args.getLastArgValue(OPT_obj_EQ), IsAddr2Line,
StringRef(InputString), Cmd, ModuleName, BuildID,
Symbol, Offset)) {
diff --git a/mlir/include/mlir/Dialect/LLVMIR/LLVMOps.td b/mlir/include/mlir/Dialect/LLVMIR/LLVMOps.td
index fb3b8e77c492e3..3774bda05eb2be 100644
--- a/mlir/include/mlir/Dialect/LLVMIR/LLVMOps.td
+++ b/mlir/include/mlir/Dialect/LLVMIR/LLVMOps.td
@@ -1425,6 +1425,7 @@ def LLVM_LLVMFuncOp : LLVM_Op<"func", [
UnitAttr:$dso_local,
DefaultValuedAttr<CConv, "CConv::C">:$CConv,
OptionalAttr<SymbolRefAttr>:$comdat,
+ OptionalAttr<UnitAttr>:$convergent,
OptionalAttr<FlatSymbolRefAttr>:$personality,
OptionalAttr<StrAttr>:$garbageCollector,
OptionalAttr<ArrayAttr>:$passthrough,
diff --git a/mlir/include/mlir/Pass/PassOptions.h b/mlir/include/mlir/Pass/PassOptions.h
index b99d91f07dd1cc..6bffa84f7b16b4 100644
--- a/mlir/include/mlir/Pass/PassOptions.h
+++ b/mlir/include/mlir/Pass/PassOptions.h
@@ -60,6 +60,20 @@ template <typename ParserT>
static void printOptionValue(raw_ostream &os, const bool &value) {
os << (value ? StringRef("true") : StringRef("false"));
}
+template <typename ParserT>
+static void printOptionValue(raw_ostream &os, const std::string &str) {
+ // Check if the string needs to be escaped before writing it to the ostream.
+ const size_t spaceIndex = str.find_first_of(' ');
+ const size_t escapeIndex =
+ std::min({str.find_first_of('{'), str.find_first_of('\''),
+ str.find_first_of('"')});
+ const bool requiresEscape = spaceIndex < escapeIndex;
+ if (requiresEscape)
+ os << "{";
+ os << str;
+ if (requiresEscape)
+ os << "}";
+}
template <typename ParserT, typename DataT>
static std::enable_if_t<has_stream_operator<DataT>::value>
printOptionValue(raw_ostream &os, const DataT &value) {
diff --git a/mlir/lib/Pass/PassRegistry.cpp b/mlir/lib/Pass/PassRegistry.cpp
index f8149673a40939..483cbe80faba6a 100644
--- a/mlir/lib/Pass/PassRegistry.cpp
+++ b/mlir/lib/Pass/PassRegistry.cpp
@@ -218,6 +218,20 @@ parseNextArg(StringRef options) {
auto extractArgAndUpdateOptions = [&](size_t argSize) {
StringRef str = options.take_front(argSize).trim();
options = options.drop_front(argSize).ltrim();
+ // Handle escape sequences
+ if (str.size() > 2) {
+ const auto escapePairs = {std::make_pair('\'', '\''),
+ std::make_pair('"', '"'),
+ std::make_pair('{', '}')};
+ for (const auto &escape : escapePairs) {
+ if (str.front() == escape.first && str.back() == escape.second) {
+ // Drop the escape characters and trim.
+ str = str.drop_front().drop_back().trim();
+ // Don't process additional escape sequences.
+ break;
+ }
+ }
+ }
return str;
};
// Try to process the given punctuation, properly escaping any contained
diff --git a/mlir/lib/Target/LLVMIR/ModuleImport.cpp b/mlir/lib/Target/LLVMIR/ModuleImport.cpp
index cfcf33436a899c..9b917db5e7dfe3 100644
--- a/mlir/lib/Target/LLVMIR/ModuleImport.cpp
+++ b/mlir/lib/Target/LLVMIR/ModuleImport.cpp
@@ -1675,6 +1675,7 @@ static constexpr std::array kExplicitAttributes{
StringLiteral("aarch64_pstate_sm_enabled"),
StringLiteral("alwaysinline"),
StringLiteral("approx-func-fp-math"),
+ StringLiteral("convergent"),
StringLiteral("frame-pointer"),
StringLiteral("no-infs-fp-math"),
StringLiteral("no-nans-fp-math"),
@@ -1754,6 +1755,8 @@ void ModuleImport::processFunctionAttributes(llvm::Function *func,
funcOp.setAlwaysInline(true);
if (func->hasFnAttribute(llvm::Attribute::OptimizeNone))
funcOp.setOptimizeNone(true);
+ if (func->hasFnAttribute(llvm::Attribute::Convergent))
+ funcOp.setConvergent(true);
if (func->hasFnAttribute("aarch64_pstate_sm_enabled"))
funcOp.setArmStreaming(true);
diff --git a/mlir/lib/Target/LLVMIR/ModuleTranslation.cpp b/mlir/lib/Target/LLVMIR/ModuleTranslation.cpp
index e0b1816e2dcfbe..40196a5c760f96 100644
--- a/mlir/lib/Target/LLVMIR/ModuleTranslation.cpp
+++ b/mlir/lib/Target/LLVMIR/ModuleTranslation.cpp
@@ -1422,6 +1422,8 @@ static void convertFunctionAttributes(LLVMFuncOp func,
llvmFunc->addFnAttr(llvm::Attribute::AlwaysInline);
if (func.getOptimizeNoneAttr())
llvmFunc->addFnAttr(llvm::Attribute::OptimizeNone);
+ if (func.getConvergentAttr())
+ llvmFunc->addFnAttr(llvm::Attribute::Convergent);
convertFunctionMemoryAttributes(func, llvmFunc);
}
diff --git a/mlir/test/Dialect/LLVMIR/func.mlir b/mlir/test/Dialect/LLVMIR/func.mlir
index 006f2f64a27277..d417942861940b 100644
--- a/mlir/test/Dialect/LLVMIR/func.mlir
+++ b/mlir/test/Dialect/LLVMIR/func.mlir
@@ -287,6 +287,12 @@ module {
// CHECK-SAME: attributes {no_signed_zeros_fp_math = true}
llvm.return
}
+
+ llvm.func @convergent_function() attributes {convergent} {
+ // CHECK: @convergent_function
+ // CHECK-SAME: attributes {convergent}
+ llvm.return
+ }
}
// -----
diff --git a/mlir/test/Pass/pipeline-options-parsing.mlir b/mlir/test/Pass/pipeline-options-parsing.mlir
index 34313cd5566033..50f08241ee5cfa 100644
--- a/mlir/test/Pass/pipeline-options-parsing.mlir
+++ b/mlir/test/Pass/pipeline-options-parsing.mlir
@@ -7,6 +7,10 @@
// RUN: mlir-opt %s -verify-each=false -pass-pipeline='builtin.module(func.func(test-options-pass{string-list=a list=1,2,3,4 string-list=b,c list=5 string-list=d string=nested_pipeline{arg1=10 arg2=" {} " arg3=true}}))' -dump-pass-pipeline 2>&1 | FileCheck --check-prefix=CHECK_1 %s
// RUN: mlir-opt %s -verify-each=false -test-options-pass-pipeline='list=1 string-list=a,b enum=one' -dump-pass-pipeline 2>&1 | FileCheck --check-prefix=CHECK_2 %s
// RUN: mlir-opt %s -verify-each=false -pass-pipeline='builtin.module(builtin.module(func.func(test-options-pass{list=3}), func.func(test-options-pass{enum=one list=1,2,3,4})))' -dump-pass-pipeline 2>&1 | FileCheck --check-prefix=CHECK_3 %s
+// RUN: mlir-opt %s -verify-each=false -pass-pipeline='builtin.module(builtin.module(func.func(test-options-pass{list=3}), func.func(test-options-pass{enum=one list=1,2,3,4 string="foobar"})))' -dump-pass-pipeline 2>&1 | FileCheck --check-prefix=CHECK_4 %s
+// RUN: mlir-opt %s -verify-each=false -pass-pipeline='builtin.module(builtin.module(func.func(test-options-pass{list=3}), func.func(test-options-pass{enum=one list=1,2,3,4 string="foo bar baz"})))' -dump-pass-pipeline 2>&1 | FileCheck --check-prefix=CHECK_5 %s
+// RUN: mlir-opt %s -verify-each=false -pass-pipeline='builtin.module(builtin.module(func.func(test-options-pass{list=3}), func.func(test-options-pass{enum=one list=1,2,3,4 string={foo bar baz}})))' -dump-pass-pipeline 2>&1 | FileCheck --check-prefix=CHECK_5 %s
+// RUN: mlir-opt %s -verify-each=false -pass-pipeline='builtin.module(builtin.module(func.func(test-options-pass{list=3}), func.func(test-options-pass{enum=one list=1,2,3,4 string=foo"bar"baz})))' -dump-pass-pipeline 2>&1 | FileCheck --check-prefix=CHECK_6 %s
// CHECK_ERROR_1: missing closing '}' while processing pass options
// CHECK_ERROR_2: no such option test-option
@@ -17,3 +21,6 @@
// CHECK_1: test-options-pass{enum=zero list=1,2,3,4,5 string=nested_pipeline{arg1=10 arg2=" {} " arg3=true} string-list=a,b,c,d}
// CHECK_2: test-options-pass{enum=one list=1 string= string-list=a,b}
// CHECK_3: builtin.module(builtin.module(func.func(test-options-pass{enum=zero list=3 string= }),func.func(test-options-pass{enum=one list=1,2,3,4 string= })))
+// CHECK_4: builtin.module(builtin.module(func.func(test-options-pass{enum=zero list=3 string= }),func.func(test-options-pass{enum=one list=1,2,3,4 string=foobar })))
+// CHECK_5: builtin.module(builtin.module(func.func(test-options-pass{enum=zero list=3 string= }),func.func(test-options-pass{enum=one list=1,2,3,4 string={foo bar baz} })))
+// CHECK_6: builtin.module(builtin.module(func.func(test-options-pass{enum=zero list=3 string= }),func.func(test-options-pass{enum=one list=1,2,3,4 string=foo"bar"baz })))
diff --git a/mlir/test/Target/LLVMIR/Import/function-attributes.ll b/mlir/test/Target/LLVMIR/Import/function-attributes.ll
index d9851e99fe33b9..322ce6eadab4e4 100644
--- a/mlir/test/Target/LLVMIR/Import/function-attributes.ll
+++ b/mlir/test/Target/LLVMIR/Import/function-attributes.ll
@@ -361,3 +361,9 @@ declare void @alwaysinline_attribute() alwaysinline
; CHECK-LABEL: @optnone_attribute
; CHECK-SAME: attributes {no_inline, optimize_none}
declare void @optnone_attribute() noinline optnone
+
+// -----
+
+; CHECK-LABEL: @convergent_attribute
+; CHECK-SAME: attributes {convergent}
+declare void @convergent_attribute() convergent
diff --git a/mlir/test/Target/LLVMIR/llvmir.mlir b/mlir/test/Target/LLVMIR/llvmir.mlir
index 7116f3b64d7f50..29fdb55c1b3018 100644
--- a/mlir/test/Target/LLVMIR/llvmir.mlir
+++ b/mlir/test/Target/LLVMIR/llvmir.mlir
@@ -2441,3 +2441,14 @@ llvm.func @optimize_none() attributes { no_inline, optimize_none } {
// CHECK: #[[ATTRS]]
// CHECK-SAME: optnone
+
+// -----
+
+// CHECK-LABEL: @convergent
+// CHECK-SAME: #[[ATTRS:[0-9]+]]
+llvm.func @convergent() attributes { convergent } {
+ llvm.return
+}
+
+// CHECK: #[[ATTRS]]
+// CHECK-SAME: convergent
diff --git a/openmp/libompd/src/TargetValue.h b/openmp/libompd/src/TargetValue.h
index 87e4575885e7da..d7429f7705dfdf 100644
--- a/openmp/libompd/src/TargetValue.h
+++ b/openmp/libompd/src/TargetValue.h
@@ -231,22 +231,27 @@ class TBaseValue : public TValue {
template <typename T> ompd_rc_t TBaseValue::getValue(T &buf) {
assert(sizeof(T) >= baseTypeSize);
- ompd_rc_t ret = getValue(&buf, 1);
- if (sizeof(T) > baseTypeSize) {
- switch (baseTypeSize) {
- case 1:
- buf = (T) * ((int8_t *)&buf);
- break;
- case 2:
- buf = (T) * ((int16_t *)&buf);
- break;
- case 4:
- buf = (T) * ((int32_t *)&buf);
- break;
- case 8:
- buf = (T) * ((int64_t *)&buf);
- break;
- }
+ if (sizeof(T) == baseTypeSize)
+ return getValue(&buf, 1);
+
+ char tmp[sizeof(T)];
+ ompd_rc_t ret = getValue(tmp, 1);
+ switch (baseTypeSize) {
+ case 1:
+ buf = (T) * ((int8_t *)tmp);
+ break;
+ case 2:
+ buf = (T) * ((int16_t *)tmp);
+ break;
+ case 4:
+ buf = (T) * ((int32_t *)tmp);
+ break;
+ case 8:
+ buf = (T) * ((int64_t *)tmp);
+ break;
+ default:
+ assert(0 && "Invalid baseTypeSize");
+ break;
}
return ret;
}
diff --git a/openmp/libompd/test/CMakeLists.txt b/openmp/libompd/test/CMakeLists.txt
index 35b96b1af2ccb7..09c9c169b2dc8e 100644
--- a/openmp/libompd/test/CMakeLists.txt
+++ b/openmp/libompd/test/CMakeLists.txt
@@ -13,6 +13,6 @@ set(AUTO_GEN_COMMENT "## Autogenerated by libomp configuration.\n# Do not edit!"
configure_file(lit.site.cfg.in lit.site.cfg @ONLY)
add_openmp_testsuite(check-ompd "Running OMPD tests"
${CMAKE_CURRENT_BINARY_DIR}
- DEPENDS omp ompd ompd_gdb_plugin)
+ DEPENDS omp ompd ompdModule ompd_gdb_plugin)
endif()
More information about the llvm-branch-commits
mailing list