From 6648fe428ad1967034edab8b845858e825b5e9a0 Mon Sep 17 00:00:00 2001 From: Ulf Magnusson Date: Wed, 29 Jan 2020 08:41:47 +0100 Subject: [PATCH] doc: devicetree: Update outdated diagram and mention zephyr.dts zephyr_dt_inputs_outputs.svg still shows the output from dtc being used, but dtc is unused (except for finding warnings/errors) after the old devicetree scripts were removed in commit c8c35f76ab ("scripts: dts: Remove deprecated extract_dts_includes.py script"). Update zephyr_dt_inputs_outputs.svg to show how things are done now. Also include the new zephyr.dts debugging aid in it. Tweak the formatting a bit too. Add zephyr.dts to the diagram in the build overview section too, and mention zephyr.dts in the text of the devicetree and build overview pages. Remove zephyr_dt_inputs_outputs.png and use zephyr_dt_inputs_outputs.svg directly. Many other places the documentation include SVGs directly, and there haven't been any complaints, so it probably works fine. The .png and .svg versions had also drifted out of sync. Piggyback a link from the devicetree page to the build overview page, to make it easier to discover. (I used draw.io to update the diagrams.) Signed-off-by: Ulf Magnusson --- doc/guides/build/build-config-phase.svg | 2 +- doc/guides/build/index.rst | 4 ++++ doc/guides/dts/index.rst | 23 +++++++++++++++----- doc/guides/dts/zephyr_dt_inputs_outputs.png | Bin 71820 -> 0 bytes doc/guides/dts/zephyr_dt_inputs_outputs.svg | 2 +- 5 files changed, 23 insertions(+), 8 deletions(-) delete mode 100644 doc/guides/dts/zephyr_dt_inputs_outputs.png diff --git a/doc/guides/build/build-config-phase.svg b/doc/guides/build/build-config-phase.svg index b66d0836951..5d5b46d984b 100644 --- a/doc/guides/build/build-config-phase.svg +++ b/doc/guides/build/build-config-phase.svg @@ -1,3 +1,3 @@ -
C preprocessor
C preprocessor

*.dts/*.dtsi files

*.dts/*.dtsi files

Bindings in dts/bindings/

Bindings in dts/bindings/

Kconfig files

Kconfig files
*.dts.pre.tmp file
*.dts.pre.tmp file

devicetree_unfixed.h

devicetree_unfixed.h...
autoconf.h
autoconf.h

dts_fixup.h files

dts_fixup.h files
devicetree_fixups.h
devicetree_fixups.h

Configuration overview

(runs during the CMake configuration step)

Configuration overview...
Scripts in scripts/dts/
Scripts in scripts/d...
devicetree.h
(checked-in file with #include's)
devicetree.h...

prj.conf

and other configuration files

prj.conf...
Scripts in scripts/kconfig/
Scripts in scripts/kconf...
.config
.config
dtc compiler (just to catch warnings/errors)
dtc compiler (just to catc...
Kconfig can read devicetree data
Kconfig can rea...
Outputs
Outputs
Makefile or Ninja file (from CMake)
Makefile or Ninja file (...
\ No newline at end of file +
C preprocessor
C preprocessor

*.dts/*.dtsi files

*.dts/*.dtsi files

Bindings in dts/bindings/

Bindings in dts/bindings/

Kconfig files

Kconfig files
*.dts.pre.tmp file
*.dts.pre.tmp file

devicetree_unfixed.h

devicetree_unfixed.h...
autoconf.h
autoconf.h

dts_fixup.h files

dts_fixup.h files
devicetree_fixups.h
devicetree_fixups.h

Configuration overview

(runs during the CMake configuration step)

Configuration overview...
Scripts in scripts/dts/
Scripts in scripts/d...
devicetree.h
(checked-in file with #include's)
devicetree.h...

prj.conf

and other configuration files

prj.conf...
Scripts in scripts/kconfig/
Scripts in scripts/kconf...
.config
.config
dtc compiler (just to catch warnings/errors)
dtc compiler (just to catc...
Kconfig can read devicetree data
Kconfig can rea...
Outputs
Outputs
Makefile or Ninja file (from CMake)
Makefile or Ninja file (...

Merged devicetree in zephyr.dts (debugging aid)

Merged devicetree in zephyr.dts (debugging a...
\ No newline at end of file diff --git a/doc/guides/build/index.rst b/doc/guides/build/index.rst index 522ba9e1c86..2d1036b650d 100644 --- a/doc/guides/build/index.rst +++ b/doc/guides/build/index.rst @@ -41,6 +41,10 @@ Devicetree parsed by :zephyr_file:`gen_defines.py ` to generate a :file:`devicetree_unfixed.h` header with preprocessor macros. + As a debugging aid, :file:`gen_defines.py` writes the final devicetree to + :file:`zephyr.dts`. This file is just for reference. It is not used + anywhere. + The ``dtc`` devicetree compiler also gets run on the preprocessed devicetree sources to catch any extra warnings and errors generated by it. The output from ``dtc`` is unused otherwise. diff --git a/doc/guides/dts/index.rst b/doc/guides/dts/index.rst index f3a1d71cdc0..eb426ccd332 100644 --- a/doc/guides/dts/index.rst +++ b/doc/guides/dts/index.rst @@ -191,11 +191,16 @@ The first figure in the :ref:`device-tree-intro` shows how devicetree fits into the Zephyr build system. This section describes the input and output files in more detail. -.. figure:: zephyr_dt_inputs_outputs.png +.. figure:: zephyr_dt_inputs_outputs.svg :figclass: align-center Devicetree input (green) and output (yellow) files +.. note:: + + For a higher-level overview over of the build, see :ref:`the build overview + `. + DTS files usually have a :file:`.dts`, :file:`.dtsi` (*i* for *include*), or :file:`.overlay` extension. The C preprocessor is run on all devicetree files to expand macro references. :file:`.dts` files usually include :file:`.dtsi` @@ -203,8 +208,8 @@ files via the C preprocessor with ``#include``. .. note:: - DTS also also has a native mechanism, ``/include/ ""``, for - including other files, though it is less commonly used. + DTS also has a native mechanism, ``/include/ ""``, for including + other files, though it is less commonly used. Each board has a base devicetree, stored in the board's directory in :file:`boards/` as :file:`.dts`. This base devicetree can be extended or @@ -228,9 +233,15 @@ from the base devicetree, if needed. .. note:: - The preprocessed and concatenated DTS sources are stored in - :file:`zephyr/.dts.pre.tmp` in the build directory. Looking at this - file can be handy for debugging. + These files in the build directory can be useful as a debugging aid when + working with devicetree: + + zephyr/.dts.pre.tmp + The preprocessed and concatenated DTS sources + + zephyr/zephyr.dts + The final merged devicetree. This file is specifically output as a + debugging aid, and is unused otherwise. The merged devicetree, along with any :ref:`bindings ` referenced from it, is used to generate C preprocessor macros. This is handled by the diff --git a/doc/guides/dts/zephyr_dt_inputs_outputs.png b/doc/guides/dts/zephyr_dt_inputs_outputs.png deleted file mode 100644 index c6636cf3623b8e64451f21a6a2dd4a0448a3a7f4..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 71820 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
XG58>GnV9Nndhq*C_@v9pUlW{Q-(R;Kk{3 zwQEO?XB3HeV7Z-7r2rya^6L9QOq1Qh)oqd5K}RoQ3@uY!<4`$@1xo;8ns)hqqdDv?57zYR_h0z zWhK`jG*lYY0UZyq%QNN!eDkG1obETc&eWecN+|?xfv-ViccUCQJi+4fgkjr?*8h@E z31=y=(&vfKO95_v3aXlzEoWbTcId75Tq!gnA`fg{ED+lyJa`+De};DP z=<`MGdI>O}Q!$o`IpX7%;v;uK1C{g`#kY5jNfF6l*9d9mY-i1&YW zGF*v0YjZgwP(J`eLgrppltkson_&K$ zq<J<%B3Io%C}ZQuMkf+0hEi&4SjX9RWX`@vCA zGj^ELNry1pj3E(Y+=;F-jueopZ+LTsty)3%Erug~u_@vQB~& zN=}$Gpy3q05*wfESmGRGb#*&j{lPgam|q{D9yUU+EO_NrEJX$5WrqL1UgnBP{T0r8 zpdOBE?-2*__OzqX{^>{Bx38s5QsnkBeu{a2o!Hyq^qu^5OqH_E@cm5=8=l58?@POZdxK8TPU!=pbOD`g0x2*KA<0?>3P7`Hl6a zA9VfZ8_wqw#dQaokFAqZ;VI@3p*weRo2~5{l3Z%Kfo!MMPV_n^o_cNobkHpzA*crN zJ^qYw#^)!qYlE$w4*?u9zeMD`SW>tYC6e**CKtmnK$dU!P9FWjq`C*mPfZq3mwx|u z@uY2@H)NPpwch&X{2(M`UM!cVACYh^3ZSnd~*oijyC9a`|Y5 z;yU$j>Eo;lj3HJQib(HnXB6aDWPd$P&GSagRg-=+eY{#H?zkJ$ZM$$hhj_~jojF+P zhfCy#Ha?8K%D?j+)Oo;h)SX?bUf-B_wv(GiE5!caZB~g&1F+KiNauD5fJ9kJRNx7qCAV%GCtW0=2wg75E)syVz1JmP6n)by>N(7X8QZAjsW3fA7Lz}0Gf zr&hj?V6wF4GK6&o*)ITD126dKp407jKBqe1V8XY4rs<;l@d`^PeFyittIGO*NjOK* zosLsebViJdh;-e-z6wa+Qu-bkKDOJTF|_oj$yEKV2-`9z4oBB^X}gEA1$yER{jh+N$PPF+*pr&2eY8_rXZe~2&R4{soY=*RZ7htk z?%uH*Dt!}k`c$gw0%SI~@E}p@_(PYD#NJ3*n(#fBx12t!!vM}xO^QL=?YZi8!)fk- zQKUj~Hw^;X_>4}uVBc~mj7d8G+3ViGpS`VJpF^L(J0AwmHv^paPD&Z&QLb~ER-;#< z-8^o^^L?=Afj`{6;VOGq4fpE1T7QE~;O?g1y?Yd(u?3M1IvTd5Mo-5;P4UecjKZ3B z@s$b=pjH-)-1}prophR4G;%Zl7~CLDE?ZdcR`i?R-#bqA*FHDv)Vt6l++i#7qLlNW zrZbV(Hf?LY1%R4!&ar7A>*0O${HelM#1g4HEE*|Ub`hCmbdMkU+MCRYfwhv>{pI=zW|LC}P zoLBwn2~!v4O;-Spe2{V?m%{n!^)-MqVt}@qe*(>5445QitZ~d9D5Qvi(ox7%l47c? zg>=~+2mqSgYNZ&nJ|!tjmR`vP~;D zhZ*E)O^lzGla8{Vb_P15hc~X<*2evY^f7@ZbcV!&=;_8-wW&edCB`JH;R>b>a-IJ6AmgD1OpElEAToIUR!; zs4Ldp7}&Iu3@89~9fZy`CMnDH(dX_}3)(;60lmzv3FE;b2W1RTaP zAU`F|9%Dheo$=qLvx++^qia%$L03ZW}Y z19-ZQ8Q1P&JUFUJK$(LBh{{>OWpSDFCA;V)p^I1EBHr?xH9bTZN;&-mUTJ4@I+JwG z1cyBt*=f{mWjps#cyDB)yZCmtpauDAbqE)+?@0p)M84bW#I*z0rSU~njujJ~J^R)B zSbabb~q`GWzsN{~=5uqk?oZ6h4FP zDt||P@B9(ozgg08i(aUGRK2`TAusgviiSH}{I%JlF5h}h={VG5yFKnv+;XTSb4nu! zVLdM~gDe{pv)od&CTWx6KtO;j14Vm)JP@KjukO#O)mMY$3~Z=#Qj5gt@-?RTS&+eq zgA_p5eHC8~%88P?wW7VPkJc@ZGt|MZxDUSzU zT^;sn_j}dXQmM(>1YTJ=ZPr~|skL9$eF@%pPo6DbA%VbZk$^cRAF}XfFpAvcHvx`l!miLz>bd!F%I!UJ3~d4 z{G0pK&wvfx(6YX|@JX|SpGyRKwa)Hvwaq(+xV8Pc?m9@(lCNZYz;tJPuX@t!`zhzM zfrv!&gJWCI`A&~mPSHyU`I4gNXP1DUv4_|5W$nQ`7%draA0d}w#6V3M52}+%wt?k9 zZzBO50}wSn;2HogKQw?WBXK5Kkwg)ZJvtlX<{xz{H6RNE&4yq#C6VuxX#ew04h@s* z!+IEizFr~9-+4Pp2iebAYUw=pyIeBb{I45>8mjUwQ5z0< z`cCpvdFyTy=pJ4*mR<7-NDR{iawG1aHEVow|IuZ)4_A?qCRpRrT$tNO-`hk==$0vP zUS~JG8=e^4YviHlFd8rI-;@CGTK3@=0G}F-If-96)uz^U*M<+%n*Ae>9V70a?C+*I zl^LSDa}`7hm~5Tr<*%xLYYLKw9d%+rHGEB?*VQ zb@Kd3cdT_+lHNserR;~^5F8}s;rC9vkGzJyub4}wzY}4deI?z5jNfpo<#mGs~BAmHguK{hjm_B;VGs4FaiyJz_dhX`2=G%PT zELhf7paA6Oq5zuH0v)YnDEp*o60l5cv?>x zkjp{3HC~YB2$Ppv|FzcgD>TWo+mv^PFB8y>nRAk=IYj>y!HwDb0j@1+v2jTH23PC% zb4<8?)@+||8X7Q*eqxw;&H*bTlbqXpTYjG})s**syT0&y+Z45` zb1molc+#T>;ylSA-mJEi()5Z4B9S*Ar1D(}X;h_?aW3iVTR*rhKBir~0PTcuvl1x< zTd$i=oU)dmIu6QDejQth*-vD$$C$uNVBH0?pWq9Zy35bIP=I`Vb8#+)TH|8fL!rO+ z!+J_K?)0Ba&0(=0r>gE8J^{BzBVK%GGpdklp<;2+(9f>bt3&5CW=1N5n|PG%5M(YB zA(fa*O$WpGr-i2dHj1lkEBw{EvQ%-&TYu7=N>`STN_MHgvK7olkm5d*p6He-cb2-Y z6=PcNRRu!r0#lm<+r>gj(`wWm!A->|AUR%xFTG^jne1+Ga=&PQGHB`uKv0g+uRzXl zgb`>%E$jf$Gv<#jV}1kZJ&l3VOWVIBCHsVuW|nE4B{9Itimgh>D!)RdnvxOA_S&<7%~G6% zcEpx`V-V|BjiupHaa+bBs3<%osGD&uVimC+IkpiM^>{{JVs_3TiLl)l`$5j+IffoM|V->!!wPqy67WWSO42LHG%W5#UP zs>pUFeGRTqu((pd&P) zq?$G%4kvUW1P_GlWW&wSYZT{G+^wN1gzk{hBR+qcn)?M$2(KNN?YNFT6@OBuQJwRk zAuM*ZDRo5)O=Z@S^LY3oUiLUm>}qSEwD#jKVWR1;XcsdQZ0^=xt5Ml_av|uW)&5?NNr!5xFbgfa9|F}{9M}Fr7E$hy0AOkl} zgdaqwzq~HO5vj}R4k&`lB!#I$S>$3%05HEcFEJV5=+ZIxT5v}GHAvr+MnU3&M zy_wtV*}17cRA2J{VehSjqHO;@&_@JC=}@{`knU~}7b&HrSwKJ<=?0O81q7Cqa1jAX zDM_iNW0md{>5z_dt@>){>F#F1w< zeEz^BX`|iEr*j9j{5E+Yl;an9-gh#p!6b9K3X4u3yJpf!>ZDwT!HNODMKk@orj+Dy z-`9Yu0h_~xybjt!?2PYcYa!mg5WBy$()0RJBR4r}+pg-|oLGzR$||FbkZCP&1DD33 zyJy?XPSWwnGPA<1*eL%%r|6eFF-ocGfkK&_lvas5-_}e6D$ECs`85)*V)>1o3nZ5w zIclbsQr3LWSBc+mU)c=}=*DFrQGs9xTy(}fz%f1E4DX-hr_%6H&9?1==oE~agvan^ zTHfqjomxBdtPI|mMs5VmUM!#g-28R3e6zG?Y|P0S541?Jh@XLUUt&M!1MBMMCdVkH z3g&l}R(qwF?5{aeC>$5L%G+(4{;Ml6sZVTZ*B>2(M;!Dd8N;)R=<+nT;CX2^HMTRYnLH8xjdM(}s>!0&gFU_<0=a`~fN?KFDpE9DQxzGsh{0>l7oQG=;_ z<6kHIc`u%X)BaR;QgO3MmW?Wu{d>28%pZ0x~5b3EThot=6oRM#P73+AL>`}Jy-yRw%khqCz88!>CEy;(e?QV z%r1b+AJQO+_+|N7=9r|B&r}dK&-c~X`DIC_(_V9ko5%GfXyAl5l`aet-n|V-^UU11 zV*rC~T+dAY9mH>LUrRP$T1*M0{5$;r*CCIOwq5&To%?Vteh|j=u15sz2++|=c&o2p z!CT$6#9uP3DyPCX;MZ9auBv5c<(r*m&21B9-AulxZ;fUCUg_Nj#ADL5jnR(+c~c|o zl?In@;ewy_${eFCG*zn_#p6A><=frT3gPt)S;Z8FVj6m45_H`{7T3QI*M~Avv2=}A zC{-c87FHOZxL};eOf33@o_R>AZQ75&Pnx}c)|zjTu4JswknkP$o+yh-$r7|T>Pj*` znFjYWv&~XyoTjQdKpk%xm8$8r1{g3d-0w#|_(Ml%jeU1UNb=if;RJM!jZJ9VJYXxW z8#_tcNSC?3e18vQH<&RI#iePrswxJ=5mxiAH_tPvH$GO)8SDG z`*jHn^u~f7hmS|C@hpkMR5Xpa0KUV-Bi`0vtif=TTAzfEG5 z&Lhx>4A(lDQcL@tQgCv7PP_2}a!+Myd}`5Q?C(?}j%bI@M73=a(ZXQ1txDS6P6|#E z@Hs!jqIi!!04c1Qn9Kb^z|_IZG1saPr}>^~7VjAz9z|4fiCmcVxZjucF>Pl;a2U=5 zu?bVJcaYg^l%tEc60 zu(UWXxuHxt3chU$9DmDXa6nrE^rP84rlcIr`>(40%*EE1Z(X+V8U7&GWl7nnbvaUX z4#eXihk!TabbmRc9W68`IgoXFqiT_!y$C#AlyV!dB8ge}X|1Dbfh?U;t4CQw@a<{@ z5mQWIGUG1zC1tN0a3m^UYHht!f#`ff_4Qs;KNjQzQ!a!Xr|z++X#DX{#7=poq}%#I=@w=A;=`E&ysuWu)*JFUe&Bj% zDltZ5KWGW^?(8zyTxIShtOJ2 zY3zzEXHn!O0%%^d(;e(P{g>oxa=Cqk_+5?y%PNW;?!g#X@>w#LgIQt{RDT+I2^?8h zpWbT;UI>R&7OJG%H(PYx=gpqle|*andjBEUtFg(S)}TlzF(iuKVAxb@^~Clvg6IT| zCiUO^QvXN@#pS7z<4u7NROH4jQp6}ACP3Z*6&7bxI%!Ufj>l`+g0zqC(kO)4k?-)R ztUDUoNoZyS1}r&RIYxm|DHa&es49BNp*5h7L7i1-{ot<-u}F}gsek)$4cO+&n$LT~ zjCp55sff;&7WPCXP8PS|i1jQU>?6TL$@|X-gK1AAz?`R^y4)!8T-&0q+?V7VAj9hN zs0s{+IZKftaEXs2GY1MeSt*a`o=GWPL$ zrW#TBv(wA}vExnzSWsDXM{ZY^iVy#nTKO2j+E+u(%+Px5(}%afVW@}D0QI1b^QspO zi72`XVefCJ9gpj%mKuAa+mH&@jLeB)@thL9Gk|pO4jNu`LQ4NFRVu;Qc8m9@oe-CU z#@fXG=QnIj{9AzV3Jx_Dz~lKB`du`>wMz|(51JjypS6EM?b68}N}_Te(8^qVF_tw1 zWxt}u6m2T(|Me$=G!p~+mb9Xu1SEiUH+qQ1o7oIDOfYokZ)WUEeaM1a8Nh1T&eVM@ zYJn)XOqW>8!7n|tNQp1svYvF(eeO=0<2`59**L-FK+B|z>&EVs$@PmL=z4U_VX;MP zX%fCbIcLU4irBE!qCyZr;~dtzF2_qsya2|QbUifUy4G)dU@y^S{#j}*#hQUCg{p7> z6g%F%__~jwEJ|x}0Vb9^uXPQf=Q6q(TY#MB*mqO{RrV4gDxOYC`FKSP(xCAF4BhIS z|2K3?xLP#SaJ&&kARW-a9{)hHWQWPOa!dbP;A7BN4*&kb^fRZ!ya;tU`R6|3?lv-k?nG_I^6X=RGvcwYK4dVfi{2xHb^}Md4TNdeM?$&Nptv0z*7L{ zBlzO&q)p~?wlx6zP8%|Kk$CnQE;4NZ0XDCJ=Yj6kV5^|I)i2L`8E=t(bD$K2k&OZG zCZLr(tq++pfC%sicU$b(a;5_gXTief?AS^*g>g~<5v~FmcN+U=_XW32r@PeLyN>E^ zn7u5KGkS}bNxeIUmR_0@mqQ@HpEN}}Z}w5z2Vzi~(D?#=$TlW|XHf*kGRW6fKp5VM zEC$DRF0>~RQ5V$?+@E7WHK^m0&hlv^@-fKh;aD5}q{YPbvZg;m)kn?SXs@esj*HUu zWXE{f7Fx6e>_8dc8Muy?KGk)9=i?F^d=x^OUmg4%EhVysM2(v zzaN1AEtSi_;(oC+M3=l^;f)tUVRL@c14KVCAZ&3Q&H)`4n+3#QLRLc@C84R7JTGfX zhz7a-X&=j1A+RLF+DkPJhy?T`mbVdLbRVLq;~(H`+>!~rmi%Jca-E#!F@Ze01hkuS z|6M0gLkY}3()0tn_Rr_yP$KHM&e5e64JUL6in^7WH0dt~n??AZAi(UJ84(0KQW3P< zEnQR;qf1loH|t!k?lkyKQ-GKR?>j>?8#0!_ZQ;exi-WMR9G^1=nFWuM2X!dh+3-|S zw%`L|+tLp28s8q|`egk+ZN70Xd09VqDecfu{cEg{bBQe?Uefk3?}zWM+4Aq$Q}bSe zPsSABR8koqn7g(mwW z?s&xk{vabA)pAy_bI+05W+)&|?4S`Epi<{}&T>{;T`JseCRb2%I#u8UK! z@Uq!YY|eX~ru@+&PzaWTs)wF$;Jy!O6xXit=jR-nZ~hm;`V~%Se`%18W@R2-pF!1<1<(Oj1l|O=i8`2jDFU;vW|@f;VDILzZGoTe z-;^b+D8(owV0tKEkfD;pA<|Il(7aRz%A*c#cO8A8teo)joYZ)ACGn0FoZSv)pg^Jp ze<%d7jT8@)Sk?KLvL9fEicIl2%}JIR)sKSoJCILsny201ZmVP93P@X4>abXh)QkZE+7G(FG(jWpJv_+NxRVB)3&czyN<)Q5xCag0H=)02D1yPIdd? zw7DT=0F%dUdJ2w$kmwCjo=&-B_8XkTw0d_|?T_jYzVODAbZabilI2SY6`G1%MWvG5 zoRrF`##%It`F`bf8jxi2SRXPBGSIO$pZZ?dZi&tSiW`tH?@G)8sX~lgnN`?KcVb(= zzro?P*i)TpaOuNdm8jkQ@cP&kh*Yu}LQlZE++E+$&%55%aaVZ4| zJ#QMKE6@5u4x_2&|EQ&K^PJw$vGdWGScuQj-9yu%D$40e*j}MQRu<_d&wcVa>e%%+ z{If+}@`!p#yJNCG{wgS!_C6?pb2g=3!oLqL!W}2dbN5Zezf)%BYC=%$>HJn|hxSp= zt~0qNZ<?N$t-c=w%YrE=`)AC*qwIz z33ltOK#z%mgK6V$9zt#wOaxJvz*$A*UL|Qr^UX}ilb}eEN32zlI=6h0Y>W&y z=yJN-CCDxTX+yfWF)eF-q;Rp+N1m$$=+2+V8!;_thZ7Dj*D}%(*N?Y4Xdw89SM43$Z38Qd27)c=Ag6Z$pF`XyDFVc+R|sDKA7FxHYI zM_by2*B~6O%N`7&0~78fd(E#3gtJG4b{D2w5*1cW{zy`$n42|Ic2-{u3a57u$7W~^ zbO*!rZZ-lb`C8QvcuZy@{G!aeNZbx-h6?|&eszEQW9rOEoo&2)>akApsO4bSA$Uu` z!qz46PS)9tzMb`#5Ps=Rf+Q*qWb-^e;upXS%^=!{Wy@GFr`>J7__ALuQ1Dj%{h>zM zUW+>P2t(i~yktUUkC&j?i`VF_d?t@vZlvvCC=cUhO=~?^hq&Qg<$R6pMAI~q*6Fzt zev6BND^lnXs^nNSD%`w?wFCG7_h_+XAEnbl0JvD!a?TnU+h)dc{w) zAyC*|_*J_7-PdBvqjJ7qGsPqzqUC zUE~rL#T?-jo|{o==mfWYX_Q1CFG19V-`N3N)TZmeq`|$XL!e5FbTngdzy;TB0{ATV zlljBb7nyN~KInTWLEQ4`O=-y!<;;7f?Z!%Mze}DT5E|YbQA-#)4+#biiEe>3gtYR9 zQFh^tywJDi%rP5leiV=R?8msOZo#M+&z9QwdPYWm5v|RT=Mfu0Kp<74&gp2?peDsS zUIbuwZ?${{X;v1jU*V6HryLyx+^lK5_)(@l znUkl7qux*X_EYbfkv}ba*5tfCMuST(M*o~o%KuVB^vxx6Gu0oOx@#$kwjLR*KJO6TGv;)!^By+_^wQH57-Sqf9gp&unxa5KBVS-I$F{dAVjox_wRWa z9JvOhzOt>_zzEE&L@w0?W~5?>ITbGa10fhy9cJwr{_AwU_9J?ou#rtlNg)#ep2}No z2`D_Qy9MLxK9Uy5>=3Y5|aP!B09OlTUd#`EZ^xa(7(_Lt2Ja`f5JoibPW;%M5E3$#Igyf*@P40O54Nw~o zH8$=ky~Rj3aa1vsX)fW7%jTQM4bCN`6LHL(to!{x@Mg%TFt=$JSBW&r-BZ|nZ223< z_x8_)EBbT4E@Z!2&(XLF=zV=Y{cl$jJE>!B337&5lOs5`>iBpSQg9LW_jifw)$+8W zH8jhfG<}%I+YrFCPbm`$LA%T2 zx%;s=-@1wN^uzH@<@dUVxJ4;$EN3wqlbz&ie6`V`M;&X+6 z&!vr?UQwcQqFYZpt7F$5>o};P=a~Xzn)KaxzqIE$_3sx&@unh=g)63Z9L*y)>~{Tv z;3%8)fvOojUjH@s{%k&+`h(T3^au7UaF3IvPl547=#Gl7T_^$jR17pqGNxvM8QGw} z(TLg@i=9f-Urm@Ac2OYY1P?lTdeGoP!rZhxdlC57v$vjhmliHo{|J%QZ3YQA_|c=4 zry7aGEp=0BwfVaVz$1GIiOSJ`HG{|O1KbHT)JYcN!(+X@XUd9@mtxK5#J5c8(Om=C z8Z!`*(Sf$_qW#gGVe0=N)Jw4ct?m22H(}cu?y?oyotpch_lL;0s0AG2Cy{DI5#;DT zoTy6P2I$x^flUNh19blbeOsPo`28S#cS6$zbbbnvm7TCM=VtnL5aL=9Udey(S6np5 zh;|Ce0xY}%|FzP;NVrr=%ga7TWQG78txP~neM^5Qa1Lr7UsZaQ+11}1INk&b6ZrNk z>qg0Tpa&p2?Sc4HVEf3nHNIWL3N&7SyU*L5?mwe`LiX8&*LZXImf0ZL{8*lj^L%0m zIHiU<=H=hUB+&X}ePj^ZJ*2?)lPOA0pm#zy!ry9`LBG>lN>#f*o)Z{?Wqc}t(^3BE zDM z>0j}}(yr$z(YD9#c|-lM+SDKgp;d;~{j^dc5*0hf^b z(emm&y4?y~E%1&EDg^3f-}Jh!Xi{|F9{dPF2ci-sgq^x~9KN}jo!p|H@EuO397=!8 z$#2se6GOqz2-MK%)Gd?1t2fN5gwh%USjXrP3EK<6@GSs9P}J{;7oS!#0vJ{qjlj;F>pj6UXRZt&6QjM68^j&{vB^)m3PV4IOk199M9?_;Dg5t2WxcS$K-^>I^Z$LK zqu=5xC0sTeqrNG!Tq^05i=0-{tkX0H%IUkH`y?3BRy@@Y58s;liu1D8u@iU)%LA@_ z(3lWd-Li|sZz1;^U-2mWehvgF#mi%n0gA1^FLLN|N1iLT76XxCQT$&5tPkdEU3JM#O1|bJqTs-I z2#A_%n+osW&oD87+0MO{yGe=-U?^cO-*@%O!VZ2u`k+}6avXMWqe}6cO0(?N=jTNhn_?iQhcc-U(lyMW0NhKwKn`1mh>7PyFHP82m33eOxdZ_%hI%2T z=(kYseaOnHksX5$!aa}O^s3dSNaoTbHgJVjV3GM`>+u-JuHxt|l*!!4XHC7)taUUl zP|p~9c-*H7>@DNy4bsgYN&{?fgb%@{V@wB}$b;{CKwZpdGe~`T**C;G`w|Ai=wvG{ ztu3iht!HY}U*C`kmraM@af&STu5y0TuD>sRx^O$0%V1Owl1u}z0Z00U!HXQK{uil? zguLJ#-nK5fvdqi&N!yxhq5?pFTjgqBe|VkW+XDuhY-;4Ot_O4gh83B}e1NU#lR>a8 z5q9!quDyaBFi9(ZX7!XGq>m!0Wc&>H^|khX zuNK#V2+M0xU)uF&Iqh)ZWIi34cUio|0uVA4)&ZGpuKZig0#zck5$aYT4K~;t8E-kw z++e_}*0?Yhf%o!n7gUVtw`%SRM8G;hAn1-s)Z>!;S+;m2ASV|OI{WHw7MhD5l7sNf zjwl)&;2{$6PFDZg3fNa5{7*}q37k74sdbv|B9W8>;z9N7b-^MOJ#fSTKJPX<3k9^5 zzVB=Ap#5_+7|pIXhct|pikNx)xKXo)i{h=!IG=odlEt%&pbAkA>`6;J}A1^QgN z#2`Ibs92 z7xHuppP>uyVGw`wPhr7EbkGUcO^g?i(ciyHrT@wvmfMc|C{?F+$^nK_$(GgtLK63hI@z+WH5;Op9?0k zs{cL^Lo?qXBt8VqdA;TZsvLQs#m*5A1mac@U4aF_K+Av|v;rJB%_e{u4GiGYf&P$0 zx%}JvpNzi=gNF62QNiJ&zN6Y9^;!7eJorFjb}dGUv69K%oFr5U7n^3ImoSLl+O59= zeu8lzzUp?1&mRUM>VMqgqmj2juCa*Y3@?Qld#mvS;N>MfCtc7L{@17X@3uwc9NZe% z`9%87qACp|Mk@|aOcxM)b15tiswE9thy&BWD?s$4X;H}`bnsjD(n4(Z2ACxlfE#9Q z@d8!?tx`iF&C7#K;73gZVeA7S?CRprrcDQb_h7mZrw0&SufTVPb8iC(#rk#bCy#1? zXTllffSbAlSaDjLH#&huQaT)$!lH5Vauy^i#;8m${#>hN?~i`QHxMI8y$PUkcH;&? zv@>Y!8aM|Q07opOpq?fE0310=;6X-839+F-6Q9+$sEt$;pL>8zRR-s#%UVAL6q(RQx&&U~ppGCrGlhT#5g;L4R&HdD2QeU@ z4=$G1->DYT&lZI-ay;f>Fb)}Ix6o0m4f@0$5yTksA*jSXG}%3r9$QTnXY}#n%~|8+ zt~jp1x2h_X+uZu(U61uSk>=ej_^#B6Z*!sIJq1WSxXplxKh`g_0S(O72)q>YY7^Y4eyR7k zf7neJ)F9HtBn{?OknM3#bMWFyrRs;CkDCU*2L~c0CjB_b{Yb91MM*0nG_u550Cy@F z2prQ0h6*v)6>#4GI_;6+E1}mEmQ^#+eVWicl(}gNItlwBuj)%f|(3?*Q4zF3f=}mpuIuJ4tZqt_U=PTMZ}0K z$^J(FDXN23E1UHlvnPgea8q zJATDnol8EjlW=P{FXi@i6wk85j~_Ko)fWDcqr*q!Msaa7 zBf~JzHzfn5K@SKcS^535SQ`{<3au``!Icy5M@%J{PzjEC?MO+{>`#JPHgRn7k^ubo z-m2(^g3J!qb18srd4oGEm}cx6a zAT0|#d}h7(ec!MAja2W+qz!;I`v$lwkNC5SdLNo2nS3#$F zqes%Fa+Pby-&#)@Jl9C$fZ{hm;dpC?3CD&z@hj&Tr4;Q5l|x%(P~yhIj7Z>sI5kpG z%c6jmjK_qu*%PdP>jhT61XaFK!U8&Q_`Fd=FnmsU8357}SV3Qx3VM@1P#xoHu>~h6 z58w9}>Ir6+938d=k#r}ld@y#wT`k5{p!G`uaRnKwr@*PK&dB~Gl<*ojsmZCjKQW?? zW{Y&#lG0Rf1bz7j*2SjmiFt2-<$&Y=$Qtp+l7z2)xvmXu>G?o(o5ee7rNQ!6Nb68v zV9H>b2W+?H!o(}{)8kY0OY!qv8=|;N0zYPZHb+gxuO3FdM3n^YArVUQI_)Ggl_bQ9 ze?k}RT#~pUJAsuI+J}v)2BqxF(aM)e?K!+b#nm@rOAT*g1A6P3Pvfi({+0|Oyn6YM z+?#*m89qR#EH%TGRMZexEdx6V8z5dw73=}Acyr*myljck?+2@vs}-f=A20hMVT0{Z ziendV>k&(D@}3m7c-~WN+zqkkl{Wp{x6cWjH@u|Soe4j@>g#>aa@$5;JSj*S{I;x< zhCbw3kGuYBw_jZRgh;_2N_CUhj8(crxHM)8&MXqOJBb9o0qoyAcJ8d2T+32wO$R@G|^=O9&b+Nbtb~Jr!hT2t|b$l{}F7XyLs_;?B;Wj zH4}4JXtlK>ZMhMIHc@G;%i8HL85~yUq&g5$dagmNp4e&loy>Z6S?q%8Be=tqZKsBi zdRuV3OoHjBj$jzQm&lfo9qM}u^%sxW#P%DuEWh+$b2>ZPTvS6CzkAFc_ne=Gbefbm z30Iik9|+17(syUSu>qlz(9eH3P!2?PL2rL)c@GPd|I>pG&Zx+-|M3aNfrk&f2K8P4 zK8Q5-Hq&5VkEIiGqz(3#)812xW&cWH8s;_Z>d)h9zXgk!{+N`k??GcB-P9;qQH36N`Yrjreg^%X z>bHAfTegbINl3C3Qh}bM?~kY)a6t#7zSDL|&3mk9$RXh<^!cB7az4h&QHBFi71##I z4T6Vo5?+9FAww-(Lx$!LiN51M;vQSCRBao*_WQ-G`cj0j%-C(>Jdg6@r5~ZMi+N8P ziK$a_*~6A2*lD1DcO89DAbc3HOj`fR>rDNd*>I=_zU~4;T9EL}weSX^P^V+mg(Z%+{k&5GGMTrI72ka7q3gs?8eq97t zovBz~GuV2DW23DN)exa>^Or)KW^5>=2s_TR0=Rw7S_I_KGjI60EI2+3fswTLIVajE zj7L=MRP+9>gB3A&0M{p0oglW0oUzFk#j2x36kC@^h|$c5k_=zQYd%|Gtz9c(JHrpQ5R2|R z*p_)xxzdvixxn`*iz|Rm74L-`t+zcxjL3lF$?%I&J#oFrAX4zI>@j`Vufp|yI1^|z zQhyffMN9QW$3aN&!jnM(&gVJs4JGUH1@;ViKEU}$IX=nvAV8Jc14LDH^eDnDP!grL(>J}! z<0uL^`lY3ic}C+$KdD%r1p|Q>{JX&Q25%Nk5hIZ+G__ftu*`>wuSo04`^wF+qGs9# zb7V}x4N2UAv==(AD}%ICL3bv8BOml93nh{AynxvKC|(@h%I48hZ#dfFdSUV@4?4xt zfpPO8Epa1~gaAa&7c-kQUX0X(7DKh(b;D|=&NWfmpYgCZn(PK<(o}=onp9coij_!w z^a8_nPO{d0Q&*MN|462EV|)4p+-$_5{YmqYLG>peX8p_@{#8W~k(7HGxTh&99C)34 zu$sEM(!-{MjF+KJ?1~MH%2b)DyGi1=8hvtet@KebQg8$V*vLK3E_O2xCT%_zcJ ze=!mV%Rr}k9jo^iF!x4Z9#1Qsoo~7li|mMs`8U)TJiE#{qHpk?`XbX{>0nCW!5{mQ z6lN0f`6o5ZwmFr)R8hy_CD0Sc7GNCMP3JM8RM``B=t(Llp`?u4T>MSmht~Pq;I6HC zrlH`VJh`38szQb{-C__U9mz}L5CF_)coYaZM5Hsxpk2W#c{MY^Ym>L4+j6|D-y-9TcfDC` zv&QFb^Q$5%hy=4y3DNUgG8 zOSwK5KiOe^|5-1}730sNu~Y&Ty!Vo42a@iYy^?;lp4rqrH2k0|Yw4N#`gK4Mh-#R4 znySAOT1U{VoK4!;^r18g6A5Iv%(0JQOnPAF`5LY|1V8j+mb+ej7m6V^-|(m8^3u&g zA<_0BT-vuriCHcT(sH&YF6OcInafCjHeo|9)B`z~b@F7O^rh$Ov=f2q`XH6n#qoKf zgy#Xfc_mAdRd4@$lcsE#-A`&2Y^liF!gKM!>l6^oWDFeVuteLt9}FF7buk!^HbJo` z%$&x~w}P^ZLkeOZ!)>x*Xce;RBPhX@E7<)Zf)whN4q%-LD1$N??6!}U9|d3BJvWEa zzWT&41|;}CA2jk7F7Zl*w2YaF`>EsyPLV7L-m*bp_jFvl>*Dbqq5zG&!(=J<<<>rk z#J#wkZfnDw+5y29al8G}{iotq=sxsh2CC(x~l3o(*7xYvj%u zj;Mq$t+2&q#9W!*OL}Xo);eY|TXuCEoUMOkF>VM0CVYEbttL;6mD1XSr<-Hm`7@_q z?KPfu$5E}U4SZwO9-6S~LnQs#yh$9)62T_t+r4!=N^KzBpnu@DrSsw5xT#3k*Ed`G z!zCMgi=5ge6Uzrb^;Y{`9>4sO=y#?~`Tcvvk#T{loy$Xbw(#}`zsr4Yfs>V%9g*=1mF7jLH+B8KExaT5;B7QT`?TI9{NE{n;;Xr1DJPPeVM`9`t zw%HLCS*jJmI(W7N~a%c)b_7W8{=zo5-y8 zf}5jMygJI!%YU{T8&FBICSPWay8L7eqmtQ|oZVSa(sQJAxa;_E$8pE6%ufzJ!Drud z*0Q**byRvd(DWp8R8%`QsSz_ra9VaHd%rryqvR4ujGJr1>6>dJTY=kHBYTo~`f?TY z3jEHzUAOcFNEU05?v>E}>-pQK*$gdjenW-$@voie;5B!s_$=c4vwRg(cv^1QC+$?l zj<>(jqYCwe-MC-a#XT=d97)gt``O9^{)@GYv(+J)GRpeim7WKgJD8Z_Zfm<%zkjF! z&Azh2hj}0SEa06BSsAzpRaAV=*FpK@&hqOC&F%!7yptJcQue(xhW^Ip0Dqc#-xE{R ze7exr)q~Z*0%(uenkX}Ov0e^wxs3CI(%DMVJ1bhn?Tu(RhS3b+EEubLKw|s5j3+tL zgX45beO&rTcgPqicK3Hq)eh7{DGa%MIQ|2EJh`={YO<5*L|Y_Hyzt(;n9p)P^=+@l zzhvp;yLmQJIP_FYtg8f0)(3_a_6Ww01*DyY`dx3Up0Iti@p%vo*Rk%+tB-#kV5ee6{CB8Ui-!wp;p(xX2@djv;|^~@E3#lDeS zz#mE1P#V|ctt-{C$8hEK*_v&;qURj>XST!izR8AAqyX$p=GtpNSlzf{sla`^L952$ zLgQKM0A?6fW!&7wa4uqv8e0P9%c*AcK{m|q>W#PDT>wtW^u^KKY`EzZq`f-N6xu{8 zq}yiS_dDNkB(bWUf(wX1QHX}`6N6)PNyS<{?vP>EZT;qpNZIjEi-tQ<_D$hCT5?Yi z#{1VyFkHNnpTqw!jH={RTXy3!X}0*CRYnpsNp}losSrt8EL8Mdb?XJfRrykc6kqK# ztc=|Dx9Uyq`Q`d6zMBymJ335mek)W7C;r|r|6_wnMF4o%2tEPTl8EqQNm{v#_8adX z-wEPks;a>pjCuldTnO*!lhmCf}j4*CJ`LX6R zV2^x6A#juW#&PijY-9Kvqs3E%9Hy;&9JS8s_qV#N77+KeSHGF!XKHEliL3_R+owY^ zbSIgy!EKpY9q~62%n&ab*#5!l^xBO|oS;A@HZh@t5b8+GYY%_2wyZ+(Sl_P@W~*vB z*VtpVx3EO;`XLltsbEv!IC}vFY9eF6R(*Yk6fDb<^3_Sq?1*fEfm>~QKou1b0g0!m(!-~&JCbF-`ZZFVDCS1Yq4oXj+|u<0 zCp_++p-+hjA+{Pn4au&I?DEe2T}45@gdZRxt`~%^;MFS|29Mp%m4N4@y;WfJ##Zz`lMVXq^ves~mA>Xi zmBx{V3Udws4f1_$m0-M3sM;~r+o&{zNnz7mv2Tq@cS%`M9n34hN>O?Youb&uj2B_L zM~H^`Zr1N$@YDRfoUQ*LrH)7{RONmu!UHSlNoo+Fk?K~#ZX8)sw;e8NeqN%xpG))} za`B49PZaXHM=&y&`A|K}M-!j=l?Cywr>WUY8j>)1;IcMI3i8@pu=2k8^EKRvM_<#p zD|VWVE}*WD+KI@qfX1Ne8Q(zyrBEdR?{;S|^r9YSu_#3&gncY7kVi5%GfDf)fdV6D z*dmz3v3w)O1x!~LPD$I-H^MOII3-=6Wi?blj5xMjILawhQwg0v`K&j@@bN(-^R3h0#ssdW)Y&n;5*8QLCptK1_pf1Wd+I$4(*0QL9g_H7R zE3-l-c-r6X3a`w;tk2_RxS#&~j05dU@ktbMy3f#7^)xls_0(C1B+|3yI?c#Y4PhCQ zLc58F8Il6|_WMf3nk_rni&S2ep*>xQ?|5JS+op_<+vH(iiV&Jr7EKP zo&lRDs%5HV8-*N+gP4u*utOebx@Ae?d+cR~kp%BbBe61Y%v!UTID&MH3qm-6a%-v` zrpNl>bd>>-iYOj`Snz##Y^(@VSPs=cV~R|@afoRmxJTFp0FogOm>ua~LH{J$;=(Q%BoYogf`Sk&`1rbVB>BHYXT5N*-pq$)2(+;4dGvXPnx=mhCdcJgq?q# z73{bphw^G83aA9Gqs>}%Mn-&igdn92GqwIQQLHlO?3Y=RgD$EwI(?3Ywa)1Ho=Phr zIz|+=>Ves0rJL1kgLv1^{3l7PFxYn3y=AqGF z&JIXGr-y`b@oN!X@j-o8kfY&(E$6?7T$j6yBT3c+SLZ^BGlzDEz{9YaPohs{J80hi zG2=*M*D|7zYKUoL`TVDQ#Z?Ea!s;V^Cwjta=oGB`L(|DTpaLMtWQq1?Jc$l!V_fe8 zOFVx6;CKQeP$IjCBWu)rfb?hc;gZ_q(`igaMx-h^Kq1LSEE7p!;)JW9D~YF*aYXV^ z6<`$g=be3VAMKQw)ueo_?za9eA}=7bkra&{r!;!ttnxfqajD#B0P zCrgt-p0^Q)tY(^FSo90VqY?j6f@M^`5)6^ZkV&gUNvb0@cE?e^Gw`VFWd+QJrb%@* z89n8mY68BKbxl4N)ODtPU95vf!)@~`0Dqa2efPy@c#7D+*Fkh!`&Dt4vUc#meN5tI z7bJr&JCddRS@7OLAaW<{9!bATf}XDk!At%DmM~$;gGi;A7f-rVAUuZE$OQBAd~>T% zPezzk1edtw>zBXCx`{6d8Kz$4ju<4ph}L6rD_kO4p`a0Nc#U*_-ADnrc_&pdA}>{L zE!#ZQmqc4AZ$AO?pkGOS?qg5kn?i6^EmGHua-pAkZses-kGofZ8Gt~_{Pp;0t^$&h zMLo7m-rXH5PBosY4IFk8J*PF6kngFs7wtUy1pJd}yFMX4dtthz*KVobgM!VdJlv{5 zd~({%qtn=*;1&paK<)^)ac%v^-fI(B5UIhFZa?8^D+7^AG6yW#jEDZ}W+Qehwg$(p zNXeeUrHi?A6%Yj6?gQ}Z=yRF$jaWk4ah(_}g_S5)SB8%OGb_7%|d-9YR=;trIXkzhR&`6tqx zgQ;i2)rxh@@v@K*wEvWytI|S{a%U0O)$H#sv zcQKY%dNXty2!3-9kp^}_%G5?a^Lwq_)h>C?SESSY1=ivK9#N0#WOE-> z7Z3Zc)D`kevw&+qQ^dEPtE5%vN{5h?mYjN|qYv~L3EqQzx;#uQ% zR(A3F-3u4RYS<8=dLhF_(1MN}5;ZUlJx^W!wgRh*N6vmbfi6u%67z}4KXfvJrkHCW z;%TKHCCsxv-nD6wU_?=!IPvzx8Zk|aIHkrpNc3LZo)Zb1B7#3l6pVzVUzM&51e&6p zo+98n)5;Dk1_#j5j~X^TiBi!<&F%)$R|^7@RhID(({qJtt!q3Prvw5Y+!PWO4P=J_ z2`G%uF@9c4h6E+r#K-3XpBp-6`m?-8uSDP?$B?1D_u4&Ax zhy%tmX6%!tXaYk9V*j-w(GK{X$gZ$kRsZA-C)jLKt3W9$~dro|4R#Ch>bm! zWP8r69ebN{$EHTh!Nl^ls%QsAs=!K-B7)&sACshRnLPUvzkE6jh5shoI=&O8L>QO z)Iha!MGG6z{1rP#)D`*`vNw={a(U+omv>aODPZ}%FZnQ`hSBL^gI#EQH%sOC6< zOdtycowu%7?K4l*sC{tAAymd@h8aV172U-MNHA6s8=t+GIj?q*q*&V!Ce}hq2sbC_ z*Wr8Atc389Q9{#a__rL2Fp;9C^#6ps)lvgsr9pEY}RBu{=$nU1rFkzN4xFUu)p-r}tPdcL4wjZtoFZNyg?E-iO zCAD}QY|KVb2(o_T5vzAuMs%E+Qd3;bl4)1Y_-otJ!FPlT3W0oG=iz|CYsrMjj+_mY+)BMk|(D8jxeV;yIdJG_)EwQgJO?-<&p~z&pbNtQ2f8f`jZn|C1mRKlG zH(K>~vG^Z=r;lUv7c%g0oaAWl_GeU;|NQM>g1?2yAB84;3KmTa$;j%mbVl~$jx_4t3} zVL@dpKfgG9gaM%Al>ShW>(R5mg7s-B=yk(cqO_&YJ7@#4N~yph-y>1Pl-72%@(DO^ z_|LUVQ?2^i2Jo3sgqvMW+jXmX#^o~&}ySV?QSuG9;dta%zoD`uT{ z%+i;d2nZ;0ekrE`qfioU;s}`$Ps$E)w~qN=*I!Y z(+!RIV)(UJF~k@gWKXj}92!&!DG0N!9;k`^^qBvCRG(ZrLy;t3%|QdmthCImEywp@ zK5W%r1l)EwJK(bwTb{TwyFPn9odQXUw-!s=_na9S4x6?|)VnaqKf|XO@j2+L+b?%0 zi67@xmDLU53abZ!h`mSaNL#K)g_UVWreCOwp;Hf%kJ5tVTJ@k)hR&;uFA6R`IBFO9 zu)Kq&LpxfYWx>uLY(Bm4G<`pk6B9sxYebs=>gsgYYO&<)!PVt%R-$c}NtH#cdtlYO z5lgy>lW$LCjrg4+{bp`Rm=0xMT2H5sy<#mjbz*s8`sw$miINgx;~xsu!5J~=bwAdq z?<*dTQ;6J|^${lgWLeU7tf2@5X6ooZe))L3%$SVvD8aURRWXkNm4ko&9KnR{ zb~tnkaIB@{iV#BVhx~X&4s(t5F3s|Za*6cB_uX4ZdL&?TjZy_4O0Eit6lN-8 zwovEAmg2h?k?@QwL@aI>FK9-L&loF|mQQ(ikIEsTy{wwuxn+er_TL9B&I3f|H zk7MW@L&vLY=Epd{qM19SycRr2C9ffv#V+twkXK4InH|Q^t^4!UwEaKb{DUgrVymlx zNJ$w#WItGdpXR-e0ptshUfc`*?fYszkXHJIr~G)i{@;E|RGMA+F@1Ap23QU%z_8A! zp?T~DaB!|CK-|`w-Yg4y*A9Fey;%;>uD4!g?-BIJ-w*Ec3Vji6Wi1{;xxDd(E`!J%u zounn*KZZ~KGzj6g)l$pdm(-Cx_nT1Zac^x@khf$6oUkRG|JNup2GqhWKBe@37FiZ+9dU%VXbMT=JS8=YovJ<2r?M|B#Di$})@PVrMu$n@I1C_W<;%!*y zM3QY>X!-IO7T?D`nw3;<{d>s?uk(;8oY*@ign^86iZgty3s<=NZ;zJg<-eN&8*OY@ zSOhvFBqksODIAubPNSIPK!usn9MPrlqYZb-k;PuTSZWDrIUw(&OzH>+7P`(; z*F9nQv$S6U7#yB^wy47QN)HW)ilt@eW&?N&>(j5ax2ug~8NQ#7j2m;a_5+kAFh$1SAh%{J~Akxw( z4H8n)e(M>2-#PEOuJ`=M!^}K;@3r?{vG-c{?U%h}i}H;2>wdR#r;m%(!WAV^;lV>` z?{%$O(*lkAdtR@A2Rl+9qEpcFU;xFNoU(1zS}yW%QBs^2GAf*(ZK!TM|F1$^DggskCA8S~<{)rw9Hw4=1#anu^0rwcq%r4!qO?oGI(J0{6mP6aqrEGCd) zXT-a^>D1B#_amH7rdazx@-Z1hKncD3Pw^hNkq#5K=o)l7IYLh9b!|1SA|!D#5%U(n zWyS>bq?b>=`8!E-G9cgLxaM+U6;Umm=C$6R?xI=Om}Q{5Zr~Mo(aa-5LGgh5DFZco z18)kuJiplDyY#3_iCE<|cc=yRn3`w_F-qh6Qs zqmAP*jN&%i;hSp7SQ5?LX69`bG=IuP57snSYqV!w6E9s!V8W&>*z(vjDT-Vb7AWA8 z-ZzR=c;2)NCq-%3BXyj!E{|Fr$p}v%oVzXJ{B(7gn_m9ALzjG4(FxT;E zis&UNgVINTANXkwD09lRZM#qMM_4FQ-^VA_jCZKDman`%6_p0rU?0U#{AIamqP)AS8H~G_n@(+i+C@MHqiT&JYlrsIX3s>Y-mFC5XaZS&A4r zHXr@6{S(iRK&mUt9VF;7ssxONOlufl2?LLzU-oZH-BM3I_kGs5&+66k96p$GMl8AP zacYY)eKBlIh!cxxd=3YXzJ+j_@5~}OcE)C(rPVDd9^>0{3>*FXaojKM6NT>f3cX#^ zWLV^0vqPDdX4XEPy0SG~^Q{HX!S8n=M2=;lgDRGFVlbzFV>G$i?U00th?N;wxB(Yq zKI($Xa$vk0Oex9V1DZee6t%xLmAf8;M=L*$l7|HQ;YMpxKk#r zn096IOusTZse%!$|5zm!ed#$kF=b&t-+M~Zyl~*^tDw0^yr1f)t32Hz)X;h(5g6p0 zMl7T}jf*5N$9QxzrHn5bcq$}deBXvsb^tIjc;EdAmo;2XLb>`UCUs@Kg0Vx|MIT7) zb;?`;!^Q2?T?}3EO`NNCh9S?f3wbc1kdiXONgIA9n6D@NHAQ{y-E`M+2X=B^2>7FH zPcEMgyoaHi)+AKz7s92YMUKXCkcdgU@Fq*T6MxxCsr z{@95nh$M0g=2$kJl&2nmCK>h#(ohrh1cP6$Q-7r|uLsWD>MmZo3;x1U+;+&j>>%$?#6#}|GqMEN+Jq?M&7i5()^*L2xYK3~B)r!}x47O>%g|Co;>2wdJ;F#Q^?Tfxsf}+_frqT% zI1}wiOk-7oPF^}LbK{q0hD}S%*#p`j{7U_($DLf~<$WeNaYs&=Jk(`3UVTyP2VvgiRm$=Rr!^Q0JTlq;n`l z?yv8@a}R)<+H*d8TS`>{#wa5;56wy42;v)jH-1$fV((c^YW)Jg?RxgZEV{p(8wzFT zNCmMsN#0GUfZMUU;(!4uD)3(mn)wm3C*BrL#5n!^k%-S!3xj;<{{1`!f3t6SRot`R zM(-J9d+8Nwrsziy|C#F2nY@3Q$=Ll*UPI72XI1Dy1CHs%_GIyke`q92XR{yfi@0piQ3OBcp4-bM4uW`(keUK(*{jIIS z^Ul|A`Ib(9mm5$z$(VEjWAXJVS?h{CxEDDEH;Z?Lx}7f#X!EsBy7K#|;tHl#Ko+J@ zst@00lfJNiifvm1=y=4BQxs*YN2Tkh@f1I~_@?rj<$v2x(b37qWDu~k!ae3d^z6V}u@42RX#`viaAqn=x9jEs>YUc%$1lH_B zcb=qqsZZTt)hKJtaM;SVLHm4oW~y69hRXRdJ2aF1d z`vD#l4L`PCYFS52lE+bEPvID7T|XwM6j9y@UBi4VKG<6+`B`pL`pUnjNUH407rje$ zyX7w~`C5U$z{RIepIN9SqW?%;%g~AT%FL2>B)!nww|r~o#r_Lru00kz2Y)9`D?Dxq z*(<*^f6-EV#pu=DC=8uLk@j)oA8t9vRm;-y)vrRmP6*%o1jRSc*uMXeij~`{k+#N? z%#gR7sY>G>peQ`GHL?oqETh!d5~-PDZi_^CGigvinjw)QHnvFG+Ily=atN9$n8a_N zi5u?Ym_9I|Nt&ZE!D}-j6=BuE2i3uL9u1sI=cc-(JM;IRieB`#IxV(q26^aw z3?f;XfYsUOZK?ycbJ5Tl8Yd@K6ZwZ~Mcm`3=ijwR?>JQ!`vbKE6Df80 zGEi~dIQ>}iguFqH%g{9FF`(U(W?_%wYoZ7`fO&qjlpS#?-q~ny+VhX`>y~XESF?%Zp1oa4}!F_K~6k^Q)4f%CFRNydbKa zAn4=%j+xWu!b{UqI~ms>XL5T>AB@gxMnqwN8KySKcd$0-ZCa4(RlV(})l!;)07cgH z=j58fXYA=rqWeD$>%jOtJFDK{_>4(pfYe z2F10rEO&ip>-nF5*O1g+5{0`=ToZ=qkY7K@^fDDPQMx&*-}03NQa*=hn&L3rQ2Cpd z(QK?g<3Y8T)_i&4)-_ScJcey{I@?(HLHyQE%}Qvtkl86nC7MmsPO{6|-OT+8EX^Dn zi~OdLBj6MlyKQuHNr4N%*0Qthzj>DTSBODi?pqYdrWb?Sq1ohU3}FZ%jt(B|}zRQP+){ z#af09M*EYD6KByK?38_Lfg_FVjQ3SIJfXCLJKAi2#kq@=H^4lt*cd2$Zu0dMW&?Ag(&+j6=ii^$s<8|Ah+RaJhK@ zZ1AuqoyI$dQU&KWU97ZgHO`pRa;UtO@1^zZ*{_uRXm--QyUF+WDYu!eJU!p&G>SM4 z2@9$h2}fP1>`^Nvdh~0#nI}{-zuuGY%d>A<7dsurf>nO!B+t$T8mG?#O&n_yeU$r% z=T;_tmt)$2!6WAQl8bz!^W$muXD@wu=hlagBUk*!tw&Ij2XIo@P!CouZ^5~bp-qvn zMQ^S0V{ZmfZ78llPy_MJ-_o*1&Yv6ei@;oEx3f^9g1h)8qPt@0oaxhV2l}6W_Cg-0 z&}1`JwwQHn(M&o4QAM!%iRt+jtm+VJI#*ossvLHv>-Yt#phSlnll}aT z$1UUv>^gP{+nn{l6BteEJL?A}pN|?z)66_BHv%lC1b!>{v127hUz*&qoo?cno{LdYD7G&aYtj&)iXSzfKSi>$o#rF*PTsY<}gL;1^@J}T}p3)C(k|IY;Q^ulqceOaiU#l`Y#X>o@dLqRy= z)}~)EIvN!neTyIZz7FnYak7zSIcZ|#$D2=lhWGE_u8*%Morrnb;G!raxg>a*2IQ!G z<5y&w<>iKS#UP&;ij+2Y8bYJvT7^T`Lbe;jVtJNcCt)0!HMG>*TzZ~;)OA)ayA1x% zlZv2EX;u1>^rp#%iAva_A?^d3)-S@*ZpkKTuIYq1!;l`p2Na{xks3Z}suMp+^`hpk zgeCLGnT~9g(Rs0PRgPRs}vc~z>KjM9Ht`oqZ(5|J@AlbLaa>u`UfqZRCot#XN`qr2CWaAPQP)kH2bv-fG(~Lr zH51kQXAOj^eE8PKzsyaiL3()^2J557Z#X12-{X=d<7wBY?`PLEQXg!5r*k`SS0RrR z*=1KLb;V*6hrSYjC)L0KqS|z?d)kW&B3ABcu8RTIXu}A$E_W1di`-1-0|{z%S|X6d zEbZBM`1+D&{R5z4*wM=rY zYO2ImyyYkvOrMAJz?>bQyI0P7vE)e6G7p~~-JB34U;bS;F;6AW*Au$kd&5ze4=`Vg zUVe=dh`v2zj9trDJn-Xp?G?NW_EVeV&dA;u?U70+N58hgx3bPN?NYQfH`Ku#iFe#T zD?5I-<)D0rg8>=y8R@QkqqAEPr|!|MuQWgKU?R^gFp5)O=B|(>G??-D$8fQm~FS z(i!>x+^VH0=*EA6V+o^ZFQdpx1KxqU8hh^M!<4nV|Qzw z&sP*jjU}RS*yx>5)zGmmbJEjjf%rr8+G>I3O!#5WoOo9Vo5~gSqO{D1JN#}KVr4+! zH%WIDkxzBfKuPMlr)F_I_^{F=6GtaYwJ}0{+X{$e+i#}@g)yUP3U`l_(+6J8@3N)3 zch3J^(5{A2Yk5h_-d{Ps9{nQE(ncskV__bJ`b2O%Y{2mldZL}w4$k_j<_jwJYEcSC zj*OjkiI#=FJGzi$i*xwYG^1A}^N(j@eua5&f_A#@=b3L-9(ivSlh}f;5cjt<_JG$YkUt{Tk@F`wCX_bwSL1C@#fvk1Dc zvZ#}DkGcEJeIkzi>e2nk`HKDxUr(Yz883}8m=u z90{ZD(mD0XPA&NZOMX?z<#E}!3sd4Rh3{z z_m1vU=EDM!>qhg+&uSFS_L-&XgtbcACek={0lo!iv{Rif=3>G8rz5td*zwUoxwhG0 z;N{0Qa(C3)rbPBs?+p67WcRaMwNg+ntAxC6+TYwLXql{`{LSBCA0%Ja$yuK-?r!-i zvr`~h`c4fL5hb$98=da3L(O*P%gWlpEm4M1or3=J=6}KQ6T$`c%FD%x#;psZC4AG4 zk|m8rh@pM#p4k~%f1Xh^hcDr@SQgYf>3)g7gj0_~fy2(Chwa{E^}pT#=VFz7?)`b0 znIfgF@eDds?bs62x?5+9FTE{T?algIR?(>1*fTB#*&53VE}*65{pGZwZJ=j^uA z-m^}I^?iS&G0M`GAs3v4sdC(EF|p&`RJ>RgW@da!Dm7zbZh-)(V&zscWK3;tBO`+b!fzvspf$Im+zq{fw8J10E*9vaaot)A;_swqW z+a+@@zbUq>E1J1&!6+|N+$5VHE*GYMSVdgs@6Hy5uO zDLT)#Dyqo67}O~;VHLHj{h@2M!`%{hkAXyHs#GpmGWzX}-vMLTPq}sMZ?u+8_*Z)$ z%&nbUsdXg0Rr_~m0PQ+aEN6Pbr>Ze)(sloo(K9{|_BK+x>fw8snuNT9Sw^sB+_Q<8 zbpk1ecFjxcJ)P(q{hDwYXOy9^HvQDT4S?=YI?HUJHYh|}c6#G_oMzUTPql9B9gJth zu7uu;b*4$@QrjnK*@*ul;^f`QUFQ8Mf~0n+_`BRp&ztU<&Hi*by(>@m&<-1#gLRJY zTP?#Pd4Do1xIM!eKHy(tQ_c}Q-{b3TEOenBw-fxpCfsf5XBhH2lyuP@d0hS3%!(3ppeBT@1t>wqgIsUR9?15%s0Ic5yrZY z)W0M-QPbW%X=Lrqg($e;3y?HiP{>>S`47cMOaa|Hj#Oo)0h)Mczxt#oTEU)JLiPV+PJx+F$|EOKP)FJBs$zPiEbO9>rWQ|AXIekg2(Uf`u zvgDH_Gi@CNMy}M};NkdKLRrp<&_bU;-USb9!A==dI7XalI@UwH)*+~QH=e*WtbiT?hpwr9EEiK>A;%h#5c^`lL3D{lzA%U(6K zQyW)E%w|v+=1%WF$Ew?Z(ogRDJ+vMma=NuUHIH_m7S-qtt{b-IFwV6an?L+UbYQsa zR`z?O%q%)(PxF;6+^*=GXTZ%sn{h&DI#DoHPK(0J=3%AjKjkR~%>^s^U2I=)1`ov7 zu9Wbj-G@Y(dk=^%mASsb8D&_FxouY5D>1iVIeQ)FvQR~paEmHn5tIB;Dbf&s(N2~$fO^HMCs zX1cUAiavU5dQ*y(#7k{oN#S~hUl^S7?SQf@*e)$=w)pN4qem9&~DBMK%ljR+=lSmfB?|!Ifx*y`@$R z+jQ*1pj^d{jfs41TK2Rswkdv~%pkgj_d&#Y5$x6)t9A{QGO}42FF4(r-*@g_U*bUD z8NIFdK(bB)Z96r{(_LY5t~FO8McQ=`Wd*k#A;tY)i=?aIDERa4$e^$3dv&Gxzb5uO zd+k-a9UHGhIa{X_vYo%X{B7N+&RoR#?(ONleE+XXj5C>oKhs@tj>)m+Q|i3R)<15} zL?*cGU1>g46b@1Tz1|q*J>AVvY+C!A`@6xcSfYRo#!P@8Rm7N8>VYUVmqX1p9)@ez7Be=2#46($qLuHN0Bv z_40n~^gMWY(T2%5{Tkm4Y1i3wBFk4c%%cuobzYpf zFX@<_hWg)}M0faOdb6&kxngK5AE6}L-BKM%#n*V(8eS9z_x3&vD-gr-$0skHp{2!f zYrfV~_8bdR_wg8e2x0kDw$g$U0KW<3)D?P|y zYVz;_6I{NOnf9=B;5HXu;ua__@U5bY1JpPn@)w%^s2 zM&-wzS-#xc-dH`5g`peOR*v9caphuJgtH;mAW~u`Us4?Zwd(vN$3^-r$iO-0AE?pO zPSth2o!vY3t&_kAlgaqqDz(p&rk9tQ%)l{k(%hBwnYbD$sL0RMp0N2)LSWbHXJTmn z;m#Y0*RyS#PtjDC=er#V!A-~@cS&Oj2D?#%VS@S)&49UM{># zU+{Nlib&ai?0?X2I)NqRFIzH3+deio6tb+!lfGRX4q1we;hVEiWqtbxiN5dOUH`we zs+Zn>(*RV8W!?!01x!5`^P*&i(tLA5l1^Ik_RKx+lAj#<;zGeP37}G}0%v$Wqc%+J ziK@uD`KB;%dvb8rhgR7-=+@nnP$PLmJNbhdd&~13j=_fUdAY5DyHYW-h2MWrX+*qr zYQ4fUo7j2#`)xY4_vDiu1xmy1WKg*w%*=QeCoN`GenxYr_-O(96qnqqOS4v|oE4KM zv_DjYMwbkDUd(V^PCPbx>4~+HjqIXH=^9Zm2W20rEnE>iz{2Id%PxqDplwX{bzT%51-cHYhnI_T=ip z{UQ|?G!+G1A)$oDbvN35QFlem_G<#1#4o4}eAYr`fD)+I!YCMkiRfCoy@ByLI zPz4%w`~sIl)`_pIjOhY(%#I2w*VE>6zVY^^sN9^&DSt7bfBKa@7a8qt!$%u)0$Q%}MZ_~bAQUZ!BO&ZZK~46c_79H7MbJyn8F}urew*wfu;S5w z%2t*qTu^hOsIFs zcetgTZ(Wr_>x!DDW@M{P)MZ~bE`=4WW=#WP^EuXbHI(B zgX?FQKV6zOZ^tgw8kboLZFb08d{Uup(2Cr-_}QCIjW=Qh4)inP+=rQB=Jx1}6&+|# zil#NZZ08lG!n8fpXcTLo&lObi{dG3r{!_iEbk~5JAO6n5MPBEFp}*&z@CxI{5=u%e zhK+tm`?DO=oEA(i)?^xe?X6Z(n#AQkbVngpp+}9q^!y#sViPd2@4AfJMb| z)*o&)-Lw&OIxZ0gGzM27SpSmoNyv%UOT))f^wG9EKi|mH_>fkJaO7xqe;ECkm&z%okx-YbGe@`fkB z#I5rDXoFA&o`Y`$TT~e{8G4t1D?Vq{NQ=4pjW{cTq#LgBTH1Q5I zNnK4$!>UfiE%5xjtc+4qZ+{8p9zPPN6Oj}L8S&Ynbl37hrbl!kF|lYFCpJpC-D~OW z+zluJE3(+YGd!DNy=9?J;(;1NI)(XKMO}G!h1RH0lGOG%Awg+842!9w>^(sG&? zM|izkK&gE|CxxG)Unpo0P@{x|Y6e9I1j<(Sq{6tY=rLwWDHAVGDqiZ$+n;S~6%B=@ z(M!ul+gpk)eg{^R?Q{$*-H!lNqYVnXrXlQaa%6F@RlR&q zTwx&rKW#@gYhR%E$ZNl0$vI)sQy0+e3d5K;IRMk%+9zT;)wIc4q~D)E9FRE8t@r-g z+@wIPL|g_c3&_!-OlyOl5DLxA4tA?K1N7e1%x;|wd;w!4rVr1D20fqa zF|FK|g7d51Wyo*J#57Os_Bi5!tXBEJ_=Ut(Br~{!plhgpB3D)Sr`?@CEl`$)cAOA0 zEswn?W@e$EE$m6oHF&F{Mn!+ag@^LPgS=ll?gKB+29Y9ng#}`JFYdiM-*$20ONjI` z5xWpvZLuF@KGDIOmkCaI_Z~?Ad!HdPnL`G-EwSVQo9)1!JTtevxwstkAwJ`qH6EGlvO1s?omtBI)`zO)rdu`F5U_b_ z;#oX6aU3}Wd0M?`pb~s@IqkUA>9*gTR}FT^r=R$L?S~s&C4gQwyZh^jvg;a(`OlyW z`pRcGs4gJ1*fT-qTa{*&38b!c;>pb^3Sua!Dh`u}WD2wA2O~SaYqyu4o4&cF)%wpb z)LvAe-;p}Vt}5_}X#RW5E4wP;4tp7gDfP57XHM$L7+jn) z37Yi=$*DEsBMv`a{5#JR*MgK?R~%pP22vB)r^U0MyV(NpS5B?neEi(60*il{K7-}; zy2Z?NVtzk;;g30oP3HQmSecar=hEL}_0~5%_p|`RRA*?CKfJWdTxafGY}qfA#i$9Tb_&kFEch-2fji{3kq&e)Aw3OnmFYR zwnPz^Q7>CEU&uUNI;fk;L0{{`+dKK0Jp#sG|2!6$`jO_iHp{6q_4nXTODmng6YrlN z*F54}pmaMuTJb5MkZ2z)egGh-nt{@q+2h~Z{P~X*nK(?2M!@7UZ$%1NaCZ+&OYrrTnZGJkq3=dH$pL4s6qc2zV`*4+XmaD2R%144r9u3tQfIb% z&zqx_WQnY##czw%pd}h-|ND5BqL<(Z{!Rn=_-D~#I`Xl~e;=!q^qL%fEP;GH5W47w ze4O&%$0-JVkB&ZOMLzDZSX4(o9{=y-@x{JBM<0_QAAb^GWPwL6E^6;=`kG)nRZ%N} zNBH5yBE$JCdolYdJR;MF`!Tvs=rXMUV6m`o)fqv0k80jmqY<3GGsGi&U%=J9{B>ad z$kj~;WqYdCvrh}$4plCm32~vD5cqvooyFnb{tTec6nbx(4?KoPf`tFxews8t2X894 zBSGa*4`FQM;gMK|a5?=77(owdzne#E=LE8L969|N;E|g6XlRfM+9h=4wrwDd?~3&v zM*^JJTt|&x{-8B`G*f4gq2&Y^&%T1j)uN6Xk058ue}QjYEgl-@8kNhhKpN-#uW{u_ zzb1U+@E<^My55O@q{jW%xUNIDs|em_G)EeLzSP|ceNjEb`(NWt`uNt6?m*)gZ|dXw zqL%Vs;~Zyf5$g`!2}2tHfyyt0$H)`^HBQ;So0TfEx}4h_BIKux5E#%I`HN2 zGn$RIroWei97x}YUqXxs!2_7mq1n{MFr*)^{_B~|jedXpoB*#qSVme;b_4kGM-~FS zV-j`tM|B{6E#HRK=E_O%@)KT$c$q0`+2G%+)wqXrOSwrQ0xzKxN52*Njqj8o;h2sp zWM)YA(;R7WsNy)9Ms8#cQIB4<&4Qm1g9*{jfgov>`a3|XBVD|Oh^kJhj{%vdu>ZEl zu_(2tPY_Y5>LS|%S7FA8Y>)87|F#D+MSd>67muJmaQ^(Do^1^BcE$f>6{zYLf$vu2 zF=TsOrt>F5n#v))z1AuKC>j#X3VzQJ&UtVwd9@Q$fsM2kUBW*KptbHT*}B5`-++Q{#05nMnIoG+YV*tKp74 zx!y(hxp@P zFO@5tyPJ9;SN1wf1Z7t=q+?LAE1&=xNH#L>0bq~n6`MYR3+*+8Gj`JXrQv^j;ytn_ z#Ksiv!}La;Ap}Uy_W;PIG4m~71gP==zV3O8Z>N#~z?7r`DgtZS@8T1KW59*`!uq|D z#Y-zb0F}yMIqRmoH1zI?+T9cB3jS`!lur)+TLhZn$Rbe04=k3CaDApD1H1^hmGXsa z^Jr55{D(W%B9u{{T$WNzD5UESIKjaMI(W-t=T9@|6M$0aF4UqZzEG02m_L{H-~3A= zSeS|2J#_fjQmYXu0R}4bxtlL=7_2D(yYWG;!n#oS%?c{&MJPLN0r3K03B}rwdueO# z_4;BK_d0L9-CQMv%~f~o`Ax)@JW6UrAQKhWtwqi#{yW9B^6U(N{7!>EDbtz? zX#(j0Gg{S`Qh>LaVLYo`(DY_JqVKf0ScqjjesC$>+Bk!bQx4fB_CqODcc4s_E;k$Tj2Z(U?}=ltfokAJCkM7JU^m+YGW z$UL1OQBNv7sE_F{ZpK^U2_zB;rn6l_Tz!y0d6(uRy%Am?)`g^&b8+`HOD-6&FVwtT zgtrqIBPzTn*6j{7Ox;WBw>&avF3tu>xby%w{%n9YqxJe|^@X7dPj_LVP|#?S@)uI@ zmV@gB63_JymnK-kYbXe4*Pzh<3hlaJ& zz9V~cZmFvk*{TxM4`1tnN<$K_il_}LWyx#zfua`eJA*Mx)jra?@nOC&nnhqU1`U^l zWPD&+mtd_kQMr2lrD;sKHCX1XUc4dg+AS#h->Ngh3q2ayCSrt|I3VTa2d>{#07Z)y zJN51KSi_w=mnyv2Q(oTze>LR7c|gV4n5h$d5v2@n|-|tU_U| zdjsC4a`F5aX9ooYSc;DVD`Qpfo}fg5qHxQd<*~bkxM7i0$hTce{hz>SxOnKDb^uV$ z8HD8EdS`Z7E6mdlv;&}=jdgz%UygV-iYOzK2uwNX?uB=G-LS(?-*5EU(zd}{Si=R5`Mr2J*baWLXviMEY zSmy{8RYh~LGMzlCUAaYuxzB52TpaqwkRG(a+F*BLE$Tr$njG#hSu~k1;8&*%#@+HO zCk53#g!20}c%*Z~y|q9_mCLoStZ7Jzh@&Z4`5~{e7pEbye0B{BHJYu#D|NG9Ov>Hy z3x^PK&ckbD6{O%X_BbKn&}0C1MhhskK05i+a@qmHW24AI1PplnJh`WK(O>>=F2Ie# zb2j$KKGNcvLOSSU{hY!S9;un+eQ?D-a-Kud$3K51t=;~WP^9n+;H#IW)5?R7TBSl- zeJ`NE3y-VE2m$Cd1HhP{Squ?f)E+oKG!H>u3z)aZ=gj|?7Q%zpXIdd82H<4;$)i)K z0SUg`Z?WGHz`>^<)A%zTH9>?l@rFu)0%?K^zuw_m?s;iBiDc3%k=sw90z{aGhNg@C zc`4pIpf*KjqIFjM?Al8|hy%yJ%)o7j znzUOGVQOy6niOh==7gWZ2Q0u}0G@MjyT2wfYFa{Y*fJ5!Mol@-L$$EaowDP%&D;iF zEj=Kcdxqa0+f2|SndV4ID(u1~>tuXUR6oC#dLjCgT~XBdCv`#XTu zoqzq~sx6L(nu8SKzS%a&Ab#4RLb?yze(i8?9~10uU(lTv^J<` zuIS&+EGJB(kw;C>`q2gtL^k;T>3L#!Y-Av=xIQipxoufcyISQ_*_r(31eQbkS}HhT zJuiL&n|qTQQ5*#mBsZP&@dRMovZ=OA1DFiPo%aAQh!u`PJSfG@UNi0Vu2;6_^s+>; z^UZWifFPemM#rxUkhn@+`CCW9vMLf$K76kufCS60cvO4+A?x3TV^+DbSP35I7ZmWI~}EC$p7U3DEQF9u}gPwg4wmM<2r&@ z+)AINeWnihy#!T}Qs@q*c2CeACh2(K1+JK#U7%z_K$>j8zVL_m#ayv)SBBalnWiMw0p*A+U;x=fq8ImgD?Dzg^2a8&L80w?jQ=@#e#qEau zwS+iLYlW*g4*HaEYK>4&I_fkBsFG<$5p-L=x$@;?+`&RgDdt}82`s<-8PI0p8Ll&A zUCsB!h0%t@tn#EZJ|)}+00)~NSMj#sM+GEJw}lZ9Mc#RL6sjyBigJ^^e^ZFiA>!CA z=U9<{O+~hq-fA$dE~wKLL#{YB)H>yV$+jA)Y1$9p6#e2%r#ejWiJX{z2o_h+Z zE7WAABoipZT)B*CmA3i~ahm}gFglOdhiEI%GGGz>__){%k63M1S27b{o*5w4j`ur^ zrHmfYe8@Lz?}?wsNCm{ehs5}Y#H;3TsX8&3wl%zQoePOu<{1sUM(bRp7Ta}x@;F9Jo;1oi^GH7H&W#Q( zp|n3x9*S+wk#xj7(RFVJXM-ha3)pd)S?72<`MQ%HH^bso>V9yu5IBC z4RNrkF-!WeUm?}Twjc}h0R>ZjtX z3KQ>j1(35D4o!%BNj~(xLd@MA(urShfZ{?gSLWqE{zts5#NK}dA>gbIn%hKzhyQ6P zc1Z)Kxxd^V2;)^Zeo8nGCuI2b|deE`jD2V8;bC(<-L4h&N zs?%}J2Sy`TU$4)0QfOT)Tx)CMo&?>V33rObqS$`&*u&}wKO4l@k-#!I2(L~?>>!8E zL+}wy;b8Tr{hhOIk!JEV>WMMZ4D=AUc!sWYKS>Y;7&GdhKqK=NV2-`Wt6$jG^xtEY z05ysPLufP-^STa}JrVk2IQR#=k(_t$0A|lz6xYpj(AB)Zvu@Y`6Q2!MML|?!*#Lvs zA-JJu_}@2fUGQI-C$E8RWAQzMMrg6RE_as7zkM^rn2}CHSm*@tK=cN>`2;0PPFvi) zl|$H{Q$WTp>BJP_*{aCZW6p=9LQuZ}hiu0*}KVG+}QQ$0aCT6{Yw>f z3n2H)g8zDH;OrqWe_i9#QbaWB?z6RLCXdjP0 zI~@T@lJ*=j2bkhXW74VrVQUW*sMwE=0w}n-ds~U)j|yy#HJa zsTIuK!$pRy2mu9R&!HxYx5TnkX6n}RNENMs5gVNYlrR?A0K>aJI?1LGT&c3_dl;SF8>iu1(e|&jZv9xwbN%scgP6$gWOcGM;rsLKZ%NCz zw1iCQ&&NNEC2iq}Xc_wcgzT9vorw^6i66sv)w#L=(nve?M%B61J7aepG}=?KXRssK zy@J`FmolpU-W!*H-LTgY(D|ql5VllWgU-2yO(KkhB?19F_+;DIq2%W_koPGm4dlmwgzNuWfC&wqr6ISrk9`$954%#idJ4>9!aWO zM8|{c1g5asXjMNy>HUKP!!hZ9mS5fySC)`+5^gtO zy-M(zhOhPZGcCXn!>-rwoPeXJa_yL23Vi>MLH|j(O32`$lV%%sUi&h0Yt?x9thW2h ztjY%Izg078Qo;yr)MZA(bk~~p@+Kid8Sci(_f;V_PEI&eB}KVe%u)+bTNxE7Vt+Sd zgS~&a=>ta|F&DO<2N97x;m8VB;-ml4P~U9R)jk5lJh`sg?HxG1v3i%Vkd4eDij1Ju zFa7d`C(uxa%4?spNB!_2|0^Cr%xQ-N3f>rmynsMWolM7oNp!dc&!1h~Nk)Xj3uP-ln~LAVeL3Gr+s#+r9-xiL(yfw|bt? zbEsUhIsflMp8*c~tJ!#y7}Zme>qB{w__x{w_`5S&pTUO$5=inbCO>qd4;-;w1CEfO zKdCy;O7JXfqcAf|GLtN&q(5RCpFRkU2S?g1w-%M>>lMRDPag@cyMTkpb1Ot1FAP-C zo}*PJo$&XF>O;8yo8h9FHmV`GnkSqi(m~_{XO6!P+b%ptBoYV`DbL2-s|JG3R5?QM zCO-l@*lUl$vd(Gs2nn=Jc0Ss`%-B{MWH<4j3EdA|R~LAEfL~Z#gkerrC5ZfGh${tr zpj7LP!>1GG&&^w9CT|X?0xW$j_*RbK)eqGS+n&FW0`DK7OT`2q(7PRj1@nq}VwnRt zF3&#Y-QC-(@hN#(TIVwzFF(DyIbc7q%wAzf#!?H6em1avUm^>Am}U-2sRvnu0AH(u zHTVk22%Lj@cP>K`6{>=K6v+0t2$l6z(MuUU&((lN5~cYN7Gq1M2qUm_Wq*HC@vqjU zvp~*w=49ypAD!X1)W?uTdEUtis3Jj3$DlBgM9~j-wc|cQ{_*)UK{y=VIsi++%=cUn zYCL`xVpZ7)<1y}f_^DHMaze4lfUlRt;s8~`71I;fCV+b73*2n4ewAq80+sXYh{KYa z3gnuFi1;O0o>K5>*cNIKI50d)en-ocW>@A!24!+7jg6|-r8JawNOw52RnadufeG+( zFk#|(mA@mtGv+GO=ZV_WW?a+$9jx48NUJy)KScmT(2WgqQs7qKwSl=fO`M}~01<7j z%>taP5Bdx%dfgd#q(PFwicn@v>keO;c25OCrRb}o51tYGH$az+X(lRyz!CTYtTdkf zuPLaU=0~ce3T`b3dES{d6S2ArDoWRlFnu1!|6&(WX358>ZbJR9Nd5krfi;`bH{OrI z8*|}cZWmNfms-DEcn#C$15+*V_vEt>5V8U7MAu|#-4+W39}#K1Iy?c(BU!&^ANwr; zHOXAhQ>u?2Kd$b~K3I%h)d??#;}&8MWYY~74>ZExdEBdjIvSQX49DZxYwt?wwI7k3 zWV+0=f`m4uCk-Y+1k?m6$kJk~g3A?}RT)B%{D;PHq7I56$U_rf=zqEBsZlvT4hK+^ z!%Rj>*{zLnQP`k|2AIdY~ z0N4?JFu~CcEU$maXBKeypXI~P7Nl^8u;4BxBf7+G?b(CdYkKRy3Nm^75;fPg+EP=g zGdM@#F!bvm^B9;~&Bk0Z-J-gnt=<4oa8A69(qtT~A8)&HyhA9xfPd{9?Vg!$!yGtk z$N}3#xO98MjG8FM?8sKocuT-y3J!WM1H)#eok$y2oO1^Ie{Hag@4oEyWLWLN<}ZZ4 zgTeR=z=(<9FFl4jr<_J+Rf0QHmKcG-)?#p<_gYU%!2p3-N1`HqpkewVq z7?1^IO2ScG)a>k@My5{R(Du8-uN{aWantb-!d!At&p^VnlO|#*4yUJ-1Ox=y6=qNL zqlVvKzgq?uGR~TsniHV#}HemLEC4;f}`<6|({ zD&$I|ct%|>81+r5^B3?+NDrfm&i@>Cp$_?Cr8;ONaxu8ggMPLe!zcT`4>|B}2!TF} zoxt~59R6InFR^I>i=!D9N677nvx@M^170rdR+Ug+81$$X3rj86#W)1I^qLoz0K1E= z<7xO?6#jO8s?AP^2t5#f{q78Ym8rudpT2+6Uke#e9vAeGFkKw)ZWx0t4vsG$!aw|l zfz-r2cEdlsM;?wp7REoMAYVKAjs@Wy4UdEu(_O`h;9so|ueP{Pxe2ds+(OK+Js}}X z!-O;ZZ71Wf@Ct^09d_j2*1nq`47^?kq!8@;oCX$2pd|E{(YT;m9F&^@4BXnN=7bph zeF6S1`IflLhluJA{My|akyBU{SZgt9<^{a}C8q{&B1YNb7jgki(iXkzJG_!z=7tec z>Ga`0@j@Obv@hTvI1ni^xt&EJFD642Q@gGu{?(cA>X*{23klH75)9C@ftVQCpkLwt zbsisk5pQuE=5}jor*95M4m7MzLw{$?c|jzrSD?QV1&aQ*@PjNw2zfUt!DVQCjtD28 zdD8%q`!5054{dlAMFHZpzJ~5)K&IR~0^UTXTdj$FNl^<1CDiSvgFK9Azyn9}bNsZ8 zAj{`;;`5`gflXMF>~+JNbz10_QBK+`{HsNfSG&seGQz8eVSvM-WTc4bvXL45Kb5_C zI91X6HXadCWS+?sl5otKGLwTuhUAz<<|$-Kk(ms|AtWMU z=lXo#?|WUpe|}xAtGzgToxRuEd#&fW@B4Y4?;(YC$Q*zjuriJ-9)vmAWraET+gGRx zLo)pdnKT*S#acK)02u_S6~=Nnz75AE*F^qf>wSbrx8(W1%CxjF>Xo0Z3;3Z^j%fnu ziRzhW1e`$Z6A3q^m-96iX;gpmBE)I> zuWJLO>mkPiLFl>?My~RR^4~Tsh|J)JvwGgJANZ%i*;Vs~+3>ut$-*2=rRl}MkTgfZ z^)~oyeDQ)oFaZ;C+U4vvcvbJEN9iy$)Y;hA8z@GBt$eMK2InXImxhH$Lhd=`4* zxwt@ydCMft^K!p zyg|Co{eII7x^{$-b2{L@h!{N>WCm@h@>U~Z4#eSXmw{4Mq)f0M%t50>K4Ux#2^~zJ z-}@6^ZV~z{*aJIoyWCV?1{~uFK%z6vQ;ZXaDYgqgG z5I6FnX+F3qop=N3e+^b>?6~R+{Al)O!xUWPCSRq!4J_yvkxgFBx>UYrK0ui-Ex_3(s_Me*pEA{z)d z+_*r#=@VoFxeUj*@2MXBTjzJ->)y+-V>m z@t|gJTC}YGFmh!V@yX$Ogymk(JPlaNG z-@2ukQ_2p9z>e%u%1|Da(D&%^h6l9o*TuL`)jhI@dS<-qD!ac3|=;&`_^~ zPVjh*KUm)qFRg_;K?b0!oHmTuDCLnv*Crs3vB0~t{B1O0YIsPaQ0cgE1#Mu8BgCf@ zoNP`JwxGY}NeKQ>45s1XUh6wi#Ju^R#d}4i*~B_k%|a*hnA^6uAQENsVay>xbj+IP zoy(L;xqTU#z#UIvwX**>={#^>vKl5%5s#t>>J{>^!xNQGB95b<3HERYb&`svAmC$n z-S-r|Y={Zx)3ePAJlbC^)c?=h^goN>v%AQ-CYAoQ=NXk>n^fKE3e{MNe8etf(~Z}g zHXoN6lp)B0JipWbvj$FI!z=Fg^zo5IRJ*ZttE1~G=h!d|P`T18;8AVcHv)r_YcbQ) z{+(D6*+`n6kjI1~a+GnTbZ@iOEZmxN3g+f#9LFo!ZWsL`cvW&ure3DLu_j$w@Rf2zucY7hZ1NZFs}O|6%=EE2!i@`V4@{jb-PFXX5T<9XM_W&G#q zMs^dWS6`!vxt?Bk@7aX18f%NivO@0GVw;Ow%9c-G`6*x2C1{WS4#J#o(@}!=vrMXn zv`5&n4;Y_c1^3I93LcoW>qU$d>LmDGe8T|D$(}j)Cx(!8@wNZnvWBqCS3Z1l?srZm z1W+!V?i`Z=&B{2PcjOD}F+OxHvXRHY`{x`|Sft!ML6D%C=Q7n8gHPxVq}*bGiG*8C z@v3ds{<4Po-iDst_ydMm7Kb?fLdyQ0Wc0X4y4@F!XD{LWE)6rMsO$L1`9a|Bqtmv9 z=LSlz6V_|}R}1h)iZa-m=W|Y%AOOc)cPcKYnw!B&%P~X<&%^&U=vTR>`LJ^Czlar; zlz{6c3khRu&(m6Z#-Tz@LKj$G(*2`L(aV=SSikTVhvtiN+v2(pHf324R%CefdDk5P zp}tTy+!1oti!uc4wF~iAVfAtqK}IOJ=o*D9PjJo)q$;e%P>vwH1Q-G$I^~-;ZK?SZ z$N$fqjhe|Fpz`3p%eqka*I5)L zYj-o0;O}!ZPq;cAEUwjv$Iy5Eb~$pRuR>rj zETLF>im3gq*Qy7gtC|LH9y+=EdNnS9YA3G*ur6>9L*TbOMRFM=lGdFUkjlUjweqW4 z8tlUWPOE@)29$*Y^_vN?r@VWV3n}x@qEpN1Wc}W@zLeS;taek#Urj_yhicHlR>%bp zmM1E>O0O&l$#nb*!c~HpwxOb*>umdZgy_~)|G_s5TZ|&`!mi+}EB9=IXkOUv^F^Ra z#C2yi?qlWrcZD85&S;L4KQp_KkE_d#1Jn90_d8b$NsRwGx#PrGYa!=H?%}tT-?rc} z$N=+eo69M!a!Uxy3g;emdcL?~{5e~V97oA)7QQsuApLNA*}mXBs|-DGn55t*+a3er zcjn}9UVcVBkFOoJr#8r}Z_Du$D9QFegW2(XdY5vv)5ny{JbrarEY1ypEME=iLt)@I z;29!>I+Lm(_#1q0rH1^Zn^_fycdpFiorq3JP;$;Okrc{1^cb z@Dm17&RzfoMdN)8BkMSanU&0^ADm+;I&E|pOJuqfi2t{~3{O{ALf94^L%^T>-$#TC z97#`9YnA43(n4RF1SeptJ7F>)9;}BwEnHw2vZE0MO;tD;GRr=s2C*gaS8FFgjWhw)w+3kC3(LG%zS)d>|n6@7fF zDQ+Lv-~W1<^LwFpHFZrm$7b1Z`{t3~Z{M80Xw!fPee~C`XiTY3LW zfd#=afWifkJBK1*&J_3QhH4|ZA11*U{4z7ZI)h~-;P_bAytQfJ2*<90Ux zPEF-J723ZGMSgJ`W}q)_&i=56&CJZy7~ciGkJhhL{6772s_`|?*+QX`ZKfE7U1g8| zJJcQogxTt% zC=Rv;i&p#6+I<8;0(@lHS*?gfr8xkO{(qlbubSt(tC}Y61Y3)se73ByX4N-<&ouXw{OC;GYi2o zTX9}eCO_RDjs}2PfBMsU#R$fu@?o55hrnJn3tODXe5!lpN0t)^N9xTI0cDC3poHl~ z?RqF+1MD}KYe-D0DqV}r+yuK*+(@=p16UFB&;KM#Daf+(S4HKE@{`sUEA~YRWj!$4w^# z?J5WB#ake>BSF6{HE|EJ2pk;`zlLi*6pIRQ z+TY)uHBKyJ!c0|Kk1gfjJPr21ZWLUe=W@6(`N(v{0~xQ__-qT*C=Jc!`Q5OQav!p;>wh`zJ2M&5l3J)>|@ z=Epy*TdKhY!j8>76L?lYTs5Z5_Z{=?jd35vcbU*q&@!tB$wgi(D; z+CGa@zz#Ye9{`gwSKfHdYjGNM=5rz$s~rz95VzcRxf0zG&^bNe80X0BX36w2`!o^R zG)Tf>xy44j(4z&tl3nZ~rp)#{fWD4o*FZZWG{yUl+-ba0EdN}BREG|2eOyPV$gTc8 zFHzRYEx4-GJqte5T2Xq!`5A#BAQ1iEBU@{z`*QaPm)!rQ!C zX4B{dNKT@R4WgM0smkuLwIA-O2?qr#;SL)71Ycts2#LvE;(D=7jciy@LCEedm$9h6 z@%Y^hyzN=l$@;()DcpspOil+a<~olLAZ%~4-fvyf==<+Zbw4Fq!Sd07i z0}oatpv-B{&aez~m*}44&yR_O#u98~yv0f8Bw|aym58|?!Y-VbDYNp7a=>kaTCrO& zsAGKqxDOC*3UBo9<#6E?J`Vawk}uQQq*(S7(a0&g_1pD-Y^V*)$)APvjf*m&a2JN|J-dlIgrOSPv0m~2b24Q4bSI_B@)N6&6n{DP*b;g zdxb6vK&l1BC@-!V-@#=?rEO} z%M^d2F6`&Gk~-TT%mW3wVsQCZk`FggH=d`4hKI+l?dUkkN&CEuv3Ql>17_F9vf*^t z&AxF=SD^YhGe~JJTie|NH4C`T4`NMu1rWhcyx9v_!a{ zh4s!SIx|tPLm{H&s9;}x}(*F*QZ<}Zr_%PS!CoiY3@t+{-r%X zx#^o@zAorgqK=;hY)KE)mO{4Nq7TosJWtR^O*EZcyJ<^r+EA6JGg~pT`Wr1_cl}Iq z^yZ}110n`gPW#jI1EAUYeJS;DF3m=_;Ik)Zhe{;Dk7V!=w`bR8c+si)^T8H@n}f8` zj1{N%Hje%V?<{{WHiFumPz9cRKH53q z=5{tz_`;H|=S6*Fp;JlJy&ZWqdot<4jZ2~FmJJV9?&uk!_q)N7)w)lT{b46$I>??i z+F!)7UlBVu;Fvt}u2lFZTO0N$$`>!*62xB`!&iSN#hbY2p*uPv61t>b-Mr;*>?6B0 z(-19`$jzOqyAKi3OfxnX1Zf_v2awbHUgPa>KL4BD8M1W|A7Qp*<9_xWq!hKZiW|uf zTUX1`YxT!-hArrXlF*?2kd!Xu>`6g#o6r2B(R!^cTUMW6DUgkv{q8!sD-g`j&1bU@ zRf6ed_c66?`&;)0OH2yl?em<4+{bHhRzbpbp*_hi96~~;>7`b`IT6YoSCgp5O$Kvo zGM-dat~NZ94A@uTtfu0bOkChMbcXuO{3&8f7g7vC@Ou))7#3!x8jR0yLW^A;vXOeQ z>bNyBmEK48*Kd)p<0!hXS~vTX-BcsNSe2l2AmC2rduFNy5NmR>)+@5ZYQTUE+UVMY z@SNGH5UI-R{~r@BCpZid6yo?=dscENn{d>pO}t1Bl}LLUw681IaFX+l3%SomL@xIg z-~ib||4O9nX)WN+o8q(o>hc8FoJE}wJd&L-(RZSk3e@*I0oeXD3BgO+ zFYVg9iO$aPi%g|02(7zu80Pt`%~*hyBS~Zs0et$PE=&(&_;cId7 z3>7uC^+pZ$QtSH0wSJ!Y*acp6+C>R)PKnqz=GxAyq)Yu?=FjebZ~#;;l;pmebZ;9;<-`9Vl>RG z%FRF}#gxZM?Z1T7R51`Lw}l?*d69lzzUd2ySD5cqHPU^J)4;td5O+Cd5_bvg@7#H3 zVe;M==exO}M|Pg^is<0Vt=tbO``A)u+HbT!G;+NEisdx$~~+tFhk1Y zYmPG%MquSsbM8ps<`Ht499GAoLc9EI10N`V6vJI;5hc$n-uy#xzg^1Vo1S*hX0E10 z?-SMK@H&2+!@L9c@Pmwi7*hiOs7C`mqS+s#%~9Ou)6Kzlqid5rdj7)C;w|%@3T-{v z_yrI~5hBtFs!k)eNz^s_)>4m|6Dr-=zpy1txkGPMMDIW@v+#|c%?qlE3|_ft zk)ID2hPbJ|=5TNzbdp3?r>IRTISaLR zR^rxRWed@1w1=n-*)Y6i6 zG)o;R7L}{;{Bp2S!+r+TnmR*vH;$0BHOBwN<>w5Em%gg>Mg{a1f>Ycl>GqQ_N6XJ; zCwA0iRtx)KK)J-2gtpht{Tbgkz5LaVaEftI5=2J_t*Z!t>bR}m&Zuneu7|9dLA1c| zVS4rf>$d@Mrx#eK{io!mw(V`@v~yZh4Wy8Xnw(S3py|YK^-`<;iyP0~!S+kFed(4x z5X&*lJiq+i!l-6r@^o<|4m`g8vZ3e5o_q<488|sbNBm{6Nu|(T&04u(A^Ku)0z@H) z!MxS{UPkM8@|1*7ed(&Zt}UICxRkvz7R_7T^cLv`_wM4a<#k@i;j_1EAzQ^jaYfD3GdP>hyT zuUEsbJ0g-R*bTBh{%Utp*L|||Ld;PMm7ec_$iShc_6^73xyc#D)vGcV@9zzu z>?Z5q)fI2o?gNo7VT0(O9-T(4>hl!ugz)ORJWKB2gzP?_WC4zUwJ(wrJ6Sf*asO*- zlto+7YrXsg_4I4pP;2M{#+REK5InVoA@bE$z|+qjaGGAh26Fk=8iQB=f8`uMDb;Ua zj|YM(Em}iliHX&tz!#X#&un%5r7jJ1c2@DX8x&& z{e2|!E|f>8|D`d=gIL-g;Vt#rKbDct`!JmCJZcKjlM0N7fA9{LkEE z#S09+r$b3>KCaIiu1)&UXjzXLW0b-SMAaH_yWSrHj6t#N!SVZ9&%dmZUP~D&-`*_rg2%cf%sDJG<2sy&Q{@2c+9H-NpI9f2 z)=~QmvslrY+6MvW)Z#Fzg}2HsPz+KW?3gKc#Ih5gce=0qaH6)%=XfudnA9OmNACN5 zYwv^Y7pj5zI`ZKw*VBD7kG@^)94|d0Z`djMC~#lismUq-@O|?uaY337Hz)&C{Nkca^Dd z7*OhYp|al2q(lGo`Q;;PR%YIB{Tr{DT>Bsb=%PqKTsTf z#6sDF?`_6(<>?Cp=F`uQe#i|ij2%j2Z?k?WH9X^j()xb#E3rs>o>wo=r0QxU8Ox2- z+BC5Pni3Pbw!v&&vJS&n*Hv+A6y7pu0rt!&I_Zgf#!bhHP>+J4t<4xCf8tL7^p_fN zhrOA!0+IAJJKG%C?QI7A6IeYgVIirYRc>x2NVt)AvQ_G3KGF7cBGFz|i!UK*;o%nT zE7Q84e}3!<PYCgf~&NKB~{M<*}=tynLL%aP0njw^^xk%++`%Rg;PKw1AYt;vU-6C7RuY z)`^IC+;Mk+j%Dxq=iHtK;r66zso}n~lcz5PqAp&!(mk`AGDbP&!@K^AM%r?+V9?TY z$zV*TUa}`D03ur%!AX^TaYZWDEJzj{=sOP^ZffQU9FoVulEpENNEI}zJ>L`iyg*2s zNSge$jh>$Ofk$Pk;(l9qV)k%x99Q0yXe=SNprT^x#fuluV*ut zWB1uSD*}VFbDEqgow}npwKg-(_H2PC^QFs!9`i;o{V!SsL<4HSyMuQ(dhSf$Yw$}J zi?>!gqL*(JkEBfxCM0D{Wsw>+NE7e*sf9BqsD8LrLobqd25iY#(82<&nIUUv@w+?E z=VyeYc9-Y+Pb^DpoV2GTqmJtu{vj@t@N-j;FI6ZxNvajAL>>0YX6lKbxu*z!2bPbhX3l7Y9H-sMmdhDhZrB6=l+<&(en@%}}8GGf?<%W4MX z#v=rqe#C&Cgry^7Sf8jUe%{5vD(Tt~L9ZvL`Mf(?BXN;&;Q=)^k6AmtmW@-@QNnV5 zKAF+XUl*LxUqXTx+hfrpAI9o-?k5)aRgQ|Asot$Ee_s>y=d+eMM)dcHuDqh6_G`r6 z5}2dHg(}Y7>!=c&1ix6=XAM|dS_{my-_M9QAP(*>xXr&aRRBbSN1cq?tly|lEK8ju z>m6-y&4cletNr(A_qX`(vC_W${fYNMl`}t(QBERkF-&wH5B?gqPBzf#)^3uAM?O5u zAd?|edr2mYlhuRV3am2mi3hLA8THv)9Q1NhPBoAu zUA$z9aO=R&*h{qP-{zQhh9hsP+W`jb(?#f$jUM5$9pBs=Qhi;?v5`=HNaRgmI0)gn z3enz+U(NzJ+YXW6$-J+DMr{XJ2|TaaAjw&S!!LR|Ss>h8sI32DvU3{f% z?k`GHU!NMNk}xrcz?Q|YSw=PPOgCQiKCbmT-6tM*1NUx!xj2Yp+Jr#n((r%`E;_yf zSQ`d6QWBC@sPp^m^6kq&K~h2>$|YWHYC}~ahmp5V93P|6e<$kbAkMb~CgFSlX5bGF zzC$ZOuwj#ugOd{=1@@bZ^k?r`KLn;XZxRg8VaJm#$b*&*C3DDorxDa2z^T}Pi>ZB6 zacuIF%8q3=errjh-MSF#z6Ql%QfrZ7^J5lRDUZAeJKQm-g45muXEv$62e~?e|NOCo zLVF|#ybH8zFFl2RPxO?e_=ih^ zAAUX|pO5i4K#=RkcS%=G8G#fLIbszuKLv4p_ug71NsE_(uAP1IKys@84NK*3I{{Y~ z_gIKx4huTQW&Q!xJ>=y0wb8_yV4obna7K`QjTgl-bz$$XmU<^Xs0UOl?wdA*JVpXg zrXerj359IrG$@H)CfHBvDC8B~y25uQsQ?M) z6Xz8{kWfn_P=9mY1j12~t^ZWvZ0e^bq0WsRbjS;R$8tj~w+ZHt`22Y> zFJbo$h&%zDelquUUoVmG8=IV96~yzihl4}o^Q zV(70>D3V+bEKH)spZ>b$dpDbjqIfd>htvf~_4py6>vZ>JPIX8FA!JX>7O)xLCN*=~ zKr!F|_>TA1U6fah-Zj680e!+F%6_7&Z=wENUP_nE*dM`|{; z5PYIaW=vlg2pDIKy2xt=vqopd_yzbiw$t2^BCot*d(46O+&N`Pg~NK`9!BkK?&o%D z)d(z|mamt%8rBK)=1hbD)PBABat{Yt5UjY8;yWcqthJvOXXnwvuC|~ zczD>$Ec8K#A|_p=FB9k<2f5icBJ8b0t7Hfmki9q@P1!+BBHr=kjj;%hpX31Y4t|DY zP+=ae1C)zQY|p9=8`u2FDa?3dUG}~5Urq4R>WU!6C*7VRC*LP17OERh(xuUA>ba@i(AsJ)7KL} zQ0hUbUQ4(X;Wym?e_r#;c*6{qB%xbXQ-LCbCV8)(S>4UD^?adg{=ue+ui?Gf#;j(_ z;r1hPu9v4(g8{cbye=)g@+rqxs8w^_mO5?WYV;Wow6I_>>Q=9~6-QU>99LGOn{$o9 zZdjUWdopCq8~o_@qOwow$gT5Ry=E)A(q{cR0^5VQuIS1 zJcLQZR^F0M4PQmqsyvZGH!nfxVGs2wIo>taZ(E~QaSRHv8Vl1=ZvL-cl^c{|CVsRL zk;z>Ya^h;-PdRR>Ummqo*Wd|*;Nb5$w64qk!3irLuTtNfvndnGeM*4?OvdwkrOuw! z9sE61K*-)#a(;ii6iGJ@ME)sk)ou;}e3u%6`2?cxjJz?X0s`KTb6E#m%HcdTr#RkGg!`s6R6 za&es25eU!U(FI#4+eb1Hrc$C-j zQTX-~3Jui+tYA;4q~3+0d>t3}2<$leY|h#`YvdBV5q2B73{nsD&F%{SY9r*__z@BE zTB9qczTI&5U8_Fv4L(grtgUidz)UQ2uhYFi!Qb(Gm-}h+#D&7rr!KnI`y0LTPjFH6 z*m&3YUf$pC^-U3*&;=f9N7YWLD*uZ!qk9+IJV_eWJ8PzUuy^&6wqTa_nJ0GM1-ff0 ze;aUNVyy)8cI({|2n=2oTzjKFjj?`s8LSWITYch=Mxk3vh88PhECrZ`i}%0vJ|3&U zz0yvXfiydH)?<;01#+P0qQ}>`JZuSw&6*vUm2vGl-X_V{qtR2Al$@&}V%Ufu$m1E(o2QR&1zB_Ij>qX?f+U)Pwwv~wDes<042ADLI3q!ez`Zev6Z>LA!_kc%80s??` ztcZl$_OjMXX>XQ88Pvw*tC(nUdj~wcK%mRW<>m8Ya>e-ELEJ08;07CwBE-SD?Ogq| zU#YQF>x-jJc??mu=atpWK0W6j0p+yQt?Uoh>q?c5fpgR?5cCWT!Fl(2?I;=F!)Jn- z@+8!2YAuf$;>DJp{Ed_8UasaCjvI4K5gjs=d(>ns0t(ARU;wtjroBv|2>k6E|ZE7D_QER6C#Mg9i46@YWC*a z?GLRZnJSyE%<{KSK3K<*S8d7!>~lfL@M9{T*qPmRDq?bZ!s)A#w0%!4KOO4U`#khm zoVJRyQCJuX-JL@1%|n9{;fXy048+#7^hKI^bQBi%|zgCzdsvkD5|b+hnwP;Nv5;XJ08z#K3bT}W2M{nY?$R%2385?4$~kM@3?)Tv zi@l9RqxT&6CRG^V$9$fJV2gsm;NtSOcbtFXq-*iHLu8Q=ZWiI3KIz{?*A5- zmMM^VdCI$+_`Gb)=g%I*XCs=6Zd(wOy^REmh_S+fC>wkO+xc_P!>Fb+*0Qp)h|ilw z%O4v>PEQZf%j`;9AhBb3rAWZW;)33MK>DLPn^eDD_q6xFdrq#~{ka9k|5-5yTD6M% zQo0pI@c2oqAi1;dL)2?KVK`ok`&Lo$Mdf9kIOMc)@vU-APr_}>962%*xw``KgPe==zpsF zMc-3kLw2vYuf72#B%$LJYp8(9@yEHoe8{_YU;pi0n%l+St^*6#YoGh$q4vLsDfo_` z;G8;WLEzX~t_pOA#AdcyoF(`lFpd1MK!vbKSI&Nn7zPanIji3l{u|G4gi&%I>b^0$ zM9oL}sJZzZ?IoX52LuP3Y15VT{G-Dx<3o6`ZQ3!}5IN3+jo}U;*_r$a&tKfd@`(PN4yb#^VY@cZ@)w<69)ceYDCYbI)UK+L`%UIh%z= zhwI9i7xk4C8bT6+i)M}IIupZ)0&_$X(nan)^thl7+WKC(k9c_YKg5SYxe3O%m$K@l z5K$^DGkxl~1xSy%_yxl9-Do;uRoG=@D8WNk0(Jpj87O(Bdj=9FiH;9H2PfnB_}Fzy!vFvP diff --git a/doc/guides/dts/zephyr_dt_inputs_outputs.svg b/doc/guides/dts/zephyr_dt_inputs_outputs.svg index c4687116055..caba2002270 100644 --- a/doc/guides/dts/zephyr_dt_inputs_outputs.svg +++ b/doc/guides/dts/zephyr_dt_inputs_outputs.svg @@ -1,3 +1,3 @@ -
FILE1.overlay
...
FILE_n.overlay
FILE1.overlay...
Set by DTC_OVERLAY_FILE.
Optional DTS format files
which override BOARD.dts
Set...
In board directory.
The "base" devicetree.
Includes .dtsi files.
In...
dtc
dtc
BOARD.dts
BOARD.dts
BINDING_1.yaml
...
BINDING_n.yaml
BINDING_1.yaml...
In zephyr/dts/bindings.
Extensible with DTS_ROOT.
Contain rules for DTS to C
code generation step.
In z...
zephyr DTS
scripts
zephyr DTS...
BOARD.dts_compiled
BOARD.dts_compiled
In build/zephyr.
DTS file, combination of BOARD.dts and overlays.
Intermediate output.
In build/zephyr....
Final outputs
in build/zephyr/include/generated/

Include C headers via <devicetree.h>
Fina...
devicetree.conf,
generated C headers.
devicetree.conf,...
\ No newline at end of file +
FILE_1.overlay
...
FILE_n.overlay
FILE_1.overlay...
Set by DTC_OVERLAY_FILE.
Optional DTS format files
which override BOARD.dts.
Set...
In board directory.
The "base" devicetree.
Includes .dtsi files.
In...
<BOARD>.dts
<BOARD>.dts
BINDING_1.yaml
...
BINDING_n.yaml
BINDING_1.yaml...
In zephyr/dts/bindings/.
Extensible with DTS_ROOT.
Contain rules for macro
generation from devicetree.
In z...
Devicetree scripts in scripts/dts/
Devicetree scri...
Intermediate output in build/zephyr/. Combination of <BOARD>.dts and overlays.
Intermediate output in bu...
Final output
in build/zephyr/include/generated/.

Include C headers via <devicetree.h>
Fina...
 devicetree.h, devicetree.conf
 devicetree.h, devicetree.conf
<BOARD>.dts.pre.tmp
<BOARD>.dts.pre.tmp
zephyr.dts
zephyr.dts
Final merged devicetree in
build/zephyr/. Just a debugging aid. Not used.
Final merged devicetree i...
dtc compiler, just to catch errors/warnings 
dtc compiler, just t...
\ No newline at end of file