From bf22fdcdb3bd32ea93489d494202e124e44a9118 Mon Sep 17 00:00:00 2001 From: Nico Schottelius Date: Thu, 15 Aug 2019 16:45:56 +0200 Subject: [PATCH] ++netpfga results --- doc/Conclusion.tex | 175 +++------------------------------------------ doc/Results.tex | 100 +++++++++++++++++++++++--- doc/Thesis.pdf | Bin 1397180 -> 1400216 bytes doc/appendix.tex | 5 +- doc/refs/refs.bib | 7 ++ 5 files changed, 110 insertions(+), 177 deletions(-) diff --git a/doc/Conclusion.tex b/doc/Conclusion.tex index ad2a41f..d338254 100644 --- a/doc/Conclusion.tex +++ b/doc/Conclusion.tex @@ -174,191 +174,24 @@ idomatic problem: Security issue: not checking checksums before % ---------------------------------------------------------------------- \section{\label{conclusion:netpfga}NetFGPA - all HERE} -personal note here - -stopped working -reboot not enough -does not respond to any packet - -tested various kernels for table debugging - -MTU limitations: 1500 according to a private mail from Salvator Galea -cambridge / uk - -long compile process -error prone compile process many dependencies lpm not supported! Netpfga live, -Vivado -SDNET -xx k lines of supporting code - -Vivado installation: silent errors, infinite loop, missing libncurses5 - -82k lines of code that are interdependent -Many non critical error messages on the way -Zero exit fatal errors - -missing / spreaded documentation - -tcpdump on local nfX doesn't work -> can only debug on other endpoint - - -First card: Writing tables fails -hardware debug shows some errors -but hardware debug on correct card also shows some error -Debug ioctl errors when writing table entries - - -Output all ports -> port mapping documented only in a testdata script - - -hwtest: Execution fails due to missing djtgcfg - - -no payload accessq Many workarounds -Table size 63, table size 64, - -Table entries require arguments of all possible actions, not only used -one. - -Compile time hours - -Silent errors - -Unclear errors: broken board - -Due to the very fragile nature of the build framework from the -NetFPGA-Live repository, - -Renaming VARIABLES in the definition of - -Reproducibility: - -hours for finding right output ports - packet size / annotation Needed to debug internal parsing errors -3x rebooting to get card working with bitstream - -Variable renaming breaks the compile process - -\begin{verbatim} -It seems I was really mistaken for the last weeks -If I am not totally mistaken, the following is happening with the netpfga: -I was testing sending and receiving packets on the same computer; so I sent a packet on nfX and expected an answer on nf0, which is how I wanted to verify that the card works -So I ran tcpdump on nf0, send a packet with ping6 and scapy on nf{0,1,2,3} (edited) -I have never seen the switch emitting ANY packet back with tcpdump -Now with the card connected to another host, sending neighbor solicitation, I see duplicated packets on the other host - so it seems that it might have worked all the time, just that tcpdump on nfX on the host which contains the card does not show the packets - -\end{verbatim} debugging generated tcl code to debug impl1 error -Cable problems: -\begin{verbatim} -[ 488.265148] ixgbe 0000:02:00.0: failed to initialize because an unsupported SFP+ module type was detected. -[ 488.265157] ixgbe 0000:02:00.0: Reload the driver after installing a supported module. -[ 488.265605] ixgbe 0000:02:00.0: removed PHC on enp2s0f0 - -\end{verbatim} - function syntax not supported, using defines instead -4-6 MB logfiles for a compile process. - -confusing messages -\begin{verbatim} -WARNING: command 'get_user_parameter' will be removed in the 2015.3 -release, use 'get_user_parameters' instead - -\end{verbatim} - -critical non critical errors -\begin{verbatim} - - -CRITICAL WARNING: [BD 41-737] Cannot set the parameter TRANSLATION_MODE on /axi_interconnect_0. It is read-only. -\end{verbatim} - -\begin{verbatim} - - step9 (sume simulation, the longest step) in the process calls - "config_writes.py" - - config_writes.py fails with a syntax error, as it is incomplete - python code - - config_writes.py and config_writes.sh are generated by - gen_config_writes.py - - gen_config_writes.py reads config_writes.txt - - config_writes.txt is created in step 5 (sdnet simulation) - - step 5 consists of running xsc, xelab and xsim - - xsim (re-)generates config_writes.txt according to a watch ls -l - on the file: ${XILINX_VIVADO}/bin/xsim --runall - SimpleSumeSwitch_tb#work.glbl - - it seems (by grep -r) that ./Testbench/SimpleSumeSwitch_tb.sv is - responsible for writing config_writes.txt - - It seems that the "task" "SV_write_control" inside that file is - responsible for writing the content, which in turn uses - axi4_lite_master_write_request_control - - -\end{verbatim} - -\begin{verbatim} - - Cannot easily run P4 on notebook - changes to the system very - invasive - - Varous compiler bugs/limitations - - Very very deep rabbithole problems - - Hanging/sleeping issue -- unclear whether it does something or - not - - Open impl_1 error with unclear reason - - logfiles referenced that don't exist -Run output will be captured here: /home/nico/projects/P4-NetFPGA/contrib-projects/sume-sdnet-switch/projects/minip4/simple_sume_switch/hw/project/simple_sume_switch.runs/synth/runme.log -nico@nsg-System:~/master-thesis/netpfga/log$ ls -alh /home/nico/projects/P4-NetFPGA/contrib-projects/sume-sdnet-switch/projects/minip4/simple_sume_switch/hw/project/simple_sume_switch.runs/synth/runme.log -ls: cannot access '/home/nico/projects/P4-NetFPGA/contrib-projects/sume-sdnet-switch/projects/minip4/simple_sume_switch/hw/project/simple_sume_switch.runs/synth/runme.log': No such file or directory - - even "short" compile runs taking 30m+ - -control_sub_m02_data_fifo_0_synth_1: /home/nico/projects/P4-NetFPGA/contrib-projects/sume-sdnet-switch/projects/minip4/simple_sume_switch/hw/project/simple_sume_switch.runs/control_sub_m02_data_fifo_0_synth_1/runme.log -nico@nsg-System:~/master-thesis/netpfga/minip4/testdata$ less /home/nico/projects/P4-NetFPGA/contrib-projects/sume-sdnet-switch/projects/minip4/simple_sume_switch/hw/project/simple_sume_switch.runs/control_sub_m02_data_fifo_0_synth_1/runme.log -/home/nico/projects/P4-NetFPGA/contrib-projects/sume-sdnet-switch/projects/minip4/simple_sume_switch/hw/project/simple_sume_switch.runs/control_sub_m02_data_fifo_0_synth_1/runme.log: No such file or directory - - - Wrong warnings: using 2018.2, getting warnings about things - removed in 2015.3 -WARNING: command 'get_user_parameter' will be removed in the 2015.3 -release, use 'get_user_parameters' instead - - - A script/makefile generates a python script that generates a shell - script and later then a python script. If there is a mistake in - generating the first python script (syntax ok, but content is - not correct) then a much later stage of the compile process will - fail due to a syntax error in the third generated - script. However that syntax error is not fatal in the build - process and thus can only be seen with careful analysis of the - logfile, which is around 700 KiB or 10k lines per compile - process and contains 328 lines matching "error" and - "warning". - - Most of the error and warning messages seem to be non-critical - (even if saying they are). Then there are a variety of INFO - messages that actually constitute ERROR messages, but are not - flagged as such nor do they cause the build process to abort. - -\end{verbatim} - -LPM tables don't work - match type exact - table must be at least 64 in size - -multiple reboots sometimes required for flashing - - Damaged, enlarged packets \begin{verbatim} @@ -545,6 +378,14 @@ the learnings of the different layers were very much appreciated / liked It was a + +% ---------------------------------------------------------------------- +\section{\label{conclusion:netpfga2}NetFGPA2 - conclusion here} +Very time intensive development due to usability problems and +uncertainty of functionality (compare sections +\ref{results:netpfga:usability} and \ref{results:netpfga:stability}). + + \section{todo - FIXME: remove} \begin{verbatim} ***** Summary eher kurz diff --git a/doc/Results.tex b/doc/Results.tex index c678202..5523a8b 100644 --- a/doc/Results.tex +++ b/doc/Results.tex @@ -161,13 +161,14 @@ table entries. Jool and tayga are supported by % ---------------------------------------------------------------------- -\section{\label{Results:NetPFGA}NetFPGA} +\section{\label{results:netpfga}NetFPGA} The reduced feature set of the NetPFGA implementation is due to two factors: compile time. Between 2 to 6 hours per compile run. No payload checksum - - +overview - general translation - not advanced features +% ---------------------------------------------------------------------- +\subsection{\label{results:netpfga:features}Features} \begin{table}[htbp] \begin{center}\begin{minipage}{\textwidth} \begin{tabular}{| c | c | c |} @@ -235,7 +236,6 @@ unsupported\footnote{To support creating payload checksums, either an \label{tab:p4netpfgafeatures} \end{center} \end{table} - % ---------------------------------------------------------------------- \subsection{\label{results:netpfga:stability}Stability} Two different NetPFGA cards were used during the development of the @@ -262,15 +262,99 @@ During the development and benchmarking, the second NetFPGA card stopped to function properly multiple times. In both cases the card would not forward packets anymore. Multiple reboots (3 were usually enough) and multiple times reflashing the bitstream to the NetFPGA usually -restored the intended behaviour. - +restored the intended behaviour. However due to this ``crashes'', it +was impossible to complete a full benchmark run that would last for +more than one hour. % ---------------------------------------------------------------------- \subsection{\label{results:netpfga:performance}Performance} As expected, the NetFGPA card performed at near line speed and offers -NAT64 translations at 9.28 Gbit/s. +NAT64 translations at 9.28 Gbit/s. Single and multiple streams +performed almost exactly identical and have been consistent through +multiple iterations of the benchmarks. +% ---------------------------------------------------------------------- +\subsection{\label{results:netpfga:usability}Usability} +To use the NetFGPA, Vivado and SDNET provided by Xilinx need to be +installed. However a bug in the installer triggers an infinite loop, +if a certain shared library\footnote{The required shared library +is libncurses5.} is missing on the target operating system. The +installation program seems still to be progressing, however does never +finish. +While the NetFPGA card supports P4, the toolchains and supporting +scripts are in a immature state. The compilation process consists of +at least 9 different steps, which are interdependent\footnote{See +source code \texttt{bin/do-all-steps.sh}.} Some of the steps generate +shell scripts and python scripts that in turn generate JSON +data.\footnote{One compilation step calls the script +``config\_writes.py''. This script failed with a syntax error, as it +contained incomplete python code. The scripts config\_writes.py +and config\_writes.sh are generated by gen\_config\_writes.py. +The output of the script gen\_config\_writes.py depends on the content +of config\_writes.txt. That file is generated by the simulation +``xsim''. The file ``SimpleSumeSwitch\_tb.sv'' contains code that is +responsible for writing config\_writes.txt and uses a function +named axi4\_lite\_master\_write\_request\_control for generating the +output. This in turn is dependent on the output of a script named +gen\_testdata.py.} -Checksum computation +However incorrect parsing generates syntactically incorrect +scripts or scripts that generate incorrect output. The toolchain +provided by the NetFGPA-P4 repository contains more than 80000 lines +of code. The supporting scripts for setting table entries require +setting the parameters for all possible actions, not only for the +selected action. Supplying only the required parameters results in a +crash of the supporting script. + +The documentation for using the NetFPGA-P4 repository is very +distributed and does not contain a reference on how to use the +tools. Mapping of egress ports and their metadata field are found in a +python script that is used for generating test data. + +The compile process can take up to 6 hours and because the different +steps are interdependent, errors in a previous stage were in our +experiences detected hours after they happened. The resulting log +files of the compilation process can be up to 5 MB in size. Within +this log file various commands output references to other logfiles, +however the referenced logfiles do not exist before or after the +compile process. + +During the compile process various informational, warning and error +messages are printed. However some informational messages constitute +critical errors, while on the other hand critical errors and syntax +errors often do not constitue a critical +error.\footnote{F.i. ``CRITICAL WARNING: [BD 41-737] Cannot set the +parameter TRANSLATION\_MODE on /axi\_interconnect\_0. It is +read-only.'' is a non critical warning.} +Also contradicting +output is generated\footnote{While using version 2018.2, the following +message was printed: ``WARNING: command 'get\_user\_parameter' will be removed in the 2015.3 +release, use 'get\_user\_parameters' instead''.} + +The NetFPGA kernel module provides access to virtual Linux +devices (nf0...nf3). However tcpdump does not see any packets that are +emitted from the switch. The only possibility to capture packets +that are emitted from the switch is by connecting a physical cable to +the port and capturing on the other side. + +Jumbo frames\footnote{Frames with an MTU greater than 1500 bytes.} are +commonly used in 10 Gbit/s networks. According to +\ref{wikipedia:_jumbo}, even many gigabit network interface card +support jumbo frames. However according to emails on the private +NetPFGA mailing list, the NetFPGA only supports 1500 byte frames at +the moment and additional work is required to implement support for +bigger frames. + +While most of the P4 language is supported on the netpfga, some key +techniques are missing or not supported. +\begin{itemize} +\item Analysing / accessing payload is not supported +\item Checksum computation over payload is not supported +\item Using LPM tables can lead to compilation errors +\item Depening on the match type, only certain table sizes are allowed +\end{itemize} +Renaming variables in the declaration of the parser or deparser lead +to compilation errors. Function syntax is not supported. For this +reason our implementation uses \texttt{\#define} statements instead of functions. Trace files \begin{verbatim} diff --git a/doc/Thesis.pdf b/doc/Thesis.pdf index 74edca22f67c8889fd950b01bde5a6335b0bd47e..15b701126e4b19d2869ac2ea9428c9675ce8a2cb 100644 GIT binary patch delta 52390 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 delta 49249 zcmZsh18^qI_wVB;$;P&A+qO5(#M;iJgtLv2EM7Ha7O|`+NVWd+SzB)toxr zeWs^ps_S$5eAC*$b`*Y1lmO=e-4J5Z0^>AC9oA(~I?w6Pa3I-PeJS~2*%A*a;Yg%w z!$grH0XoIV zn$VGkzrm%3dJRPGlMjTtGPD#%4x>6NZag!?<#@?~XQ5CaG$m0CqxH)x^o*n>1I>!a z*uQ6CTy4-Z%Gk_(C$*L_tw2c|aur>}QA;w>4km@+6mmvjmx41z*QRu;!lcB*$UsX5 zlaQhjbCQCDl2nC4l8HufEBR_1RxKkxW5nr`814P6>+ze6k+JepMbGkyIJu`gm>SUb` zlWWovU?!q{o4qPiGJ1r$W~TBYXq6+OST8?F@D<4S5sHm;_W^@OYwKRz&e#}4!=G}` zXoVybze{>21HzTFcW^mVFUDgzUK@fe-q?>5axEDS~RQePQ5MyXPPeowQ zt`CJNfdWC5foO0{IwJKpU8L8G7~-{TUu2f&&PgNgZX^QNG{lV^YPj`LG$=jOs}F5E zQ3zay6`Lr2Enm{V!zfiqOd~Q~p#K}!%YC68U9(L+mFMB?pIF;r)H!svBfF6UDd zojtl(G!bv7u3O^xJT$Du-RGF28!V$|fVEDsxq;i9wL^a6#JT$i5T>ouTe5c1a}z9m z_Ry{DP!wU?_`+V#4~0|aBWIhGQKN|Y*+8S(Ii3Dw!NIQem-(IUu;`fRpVLFmsj}|V z_u;FTRnbH|I^EUv_jHH3wd#&wumGrp8Pc=W&Pk%P$4QO^lFbk%`@4g308Q0h`>l%c z{gz70FRy$T5}I3g;FjA9uL7IKS%YFsn`n0e#W@EvzTQuB3*@9oErUnCq}LBre3H(k zr)2UbI%YfTiUuBiNLHn*cS9mJbkn72Z0z~O!x;(critIn)+$RzKIZ35RuGcJ!{wO> zuMbug!y7{OhyJ7+BaYukJp4^7NM<7r#`;}6DSxy#m1z>GbslRUwvbc!h4wlj^#wo0T@W!8e^b@H){66k7J|wXi;4+u`*Ye$u$> zV%&dRoH0Pnt%r+UnHEK37H2Acx4epfij4I=sA;0j@`cr*5+D1bb$poZSzmsNtm_)^ zIGtOFGIu{R1gzSqcBgOmNN^;;gC(H$`h551LyEGkm{{7ZU~r}XastE3Q9WiavhJq$ zi3fp59KlyL>jqLqq*t8Rc%u`Rql7UWR`HIzR5tQtQIP(PpVG-Y7y+63czLXMMk@o0QL_$M*((Wvo z1>8FHX0~Vnhh>5q-n8%hZaEn@Xm^4inf9X z$mwTp0k(8m?3~%Y=FI^& zl-|sHT6&*>TGj<|cdfT0z(d{>*MaO!Ci48;qEY9+hR|VOd%W{s-iUmM|easL59p5FCxIa9(EeCp3 zMcmHNzcA9hA!=Q0%5JJtjAt~&c92gqeiLUm&$ujB=(aRw&@@I?d+S2*lx2xgXiI61 zo5i#J%%F?<@paBs9YcCIc`L@IgcRXOG=m!3l#b^CDJ93c%p7yU@YOg8E4oj9<0v4} z+Ao0PJ52LOl<*rlkP|fPyBQH-gLIelboQ5-BQd-~PCA?^lg+htfc_k40Dt#A67xN6^oZNg z8(u@$aScR-i(wIq!Ff;i;`iz&Eo%CCScma3(sA+empJ_eH>hhu#c%AJaSh(PjJwU= zyWM0{8Om>|u{)*{jdoB*45;hjw?ld8MH;rFwr|0X4s=J5i6*$2AU- zlgS&&-om-QD@M(x61rtVsRwr~L&RrJn-(|J_-WtKt|DIpLWV z%pEMt_p+!h}RP^&5d4ZZaHU zmK+I^fG0AjiD>{T+Rzs{i4n74tl1!DZPavTp6_|^=mj!Z`=JzQ`;h#S>@43yHC581 zh>&9mAc?erAu0))Z~{^8r9CNm5{e?qGX+B$3c+~p11+?>;G0l<_6h`vV#sxCEFB(c z$aReR2LKTq6GZ+ciN28IGISz{X1yPtIw0aOG$od|xKtdS=b{w`jv;3`G1xnTcHZ#~40IqCJu zGXWX!JwETel!dp?uJ92BGY5P1aMT->@um0fxWJ1!I(hI#3`5$aMkm0kT$SHo;xM1W z`f)Hp80m4U;wR=&I*;Jnfuy^EmSX+(u-udOX}XuM)9=e=g~LmGPGV)@@j}d(^>V_T zY=X$;nDgQAk!NW&VG81@F$=Qzb01YlGxh{vU8iBZRKoO0d;-yJXZe{oCpve`jfiCT=nunF~z(3_>g${Q0fZoRCgx6g-2Lm9qK}}0jS4dA=u&&H{P)4zsTh1%R2!S zjPDb~Cmwn>7QdqeE^|4Gn6@DG1nB^JIG7(?f(N=!ucy9A-t{;oV-8`>D zS)Mb3Q@!Y9q1CVlgR1&X3*UQ*^c$#fGSqvlqzvGxRSuP7SIb3tX?1ibe zN3Duba!ENa1Qeo~`qNS+;S4hhfUX3tYPt^K(wdBk-l#7!q;iH{rsh@~Dbg@4p5<%g&uX&gH8UIYDPVAe^R0$(Oi)X;=+4K9Mnf~}$lTHEL1Ot-n5!7uLYFtJr`|$tv~6}dQ3=~0`voz&>)MA=ApeL7e#;KZCc9DKY%!rjrilj zK`*{;ESC3oqb-GH!jQd>Tk&;X#P;}rlVapfyF+)!@ys*Yt(Sr?0W#M>$Y|+m!Vq&= z6+C_JJ~EFCR74{N5oYhy9<|>B(Dd!8+1MLUa zu&E!bYdt|gQ+G7qLF=1x9_BF!j5`z61xa;|Qq1xK#?(Oj!k8t;uHFQ4e(Dyq*O-rJGr%L=rpK)^^n`TtPqiPBy{Xvwt-J3 z%;p8$9)!bVfZWO?DLJnHtoi=>yI=VGUb|xnciXyuRX1r#yf!tq%(k?6TI=gZ^my-3 zNA-u6x52vb_hs*-mFNvcHt*B!;tpx*C~S-!zRxlp@3+Ou_dg9lT};5;OTppAXeKpQ z)RR($=JC=&s*A1bxy!jLz6-u<<_*oh>QG^n}X{35V-e0PKR|kR%Xk2)Mb_V!UdZ*tN zICQL&f;2*Bl<*skJ&b^u$0-eM{P@XCzx3sP5?!&h&j6rDhY5!6_{95GX%smGU1lB+ zS(K#qk{KB70}Wt(70*!n9h4F5Qx>#;69jX)TV^Mciy?&=pExsjHs`Z>;+I#+nW~GC z?I&vtFsN0l!?Bv>lEtkCam->UXK(dG#HN^cQtLoRE?L*2FcA9XdT{knIP?*-4exn0Q)QMuO=Ok_Y?vYjOL5j#G z=P!$@O`7`~e_J+Ae#Lq=I~k8y^&olm4m0p~JG?G6#dr&EMLS_jxKvOEjT?YMKl3zlvvm3IB!rzBV`PjTnS!oyp&xi6 z)_ZRY7^7J~!=!{TXOKv7{Sye*k+G`%8;%W^aBwj%OdIbt&xfg38|3D0pVAOqC zqLN!a{u%IQLL&77^&=sc;U>W}E4FEx!I*Iv2!?yqgiG`PvYHJ%2McR5I0zkrmHWRa zEkoXMod+fG>IIWe?u+(erio*dDPYo}eoKl5-pm)pYz@^!zM8Um6WCouQ|vSNU^)wJ zLMc)@18;dd>BPg1))4p_js-Cx8LX}1#RQ#$SzXhm-EwNRq49hl#+-Xy61=HSq>(Pcb6Tvg*aMn0W{-!5XI?25!A1^ZyajlB2yl z)KRO0!tOf^v}Hxk4dT?w-K3+DV7y`McC|+x(Wk0y`=;}RnLU0Z`FG8$RsI0wt4C*W zoqn$pn`K-yAwhW1s9OduXrN3_N~TQ|x2}yTCQ0f1id#_pnzPgoW-OK;=WQ?4JdF%Z z;tV~D@&jV*Knfh24l}fN8(>YxAqceHPn|ed^-W9Y1fNmT}Jxb??P|(sUU@UmW?q%Blreranse|NWRa(+MNu`RU z9GH#Cp8txe#=mC9cpL%tOFm*f(lUfChXk4ct2e+5V(sKZ+AMEuMK!cr%G*tTuQ9e> zDsbFv?I@0hvTvwB2>GmUNGh%A^1{L^M}VQ$65Y$`y{H&oTXlgoCAkeq_QbYspJ4)Z z>FGQ;i`QYeHVDIZ7AT;!lxg)fD`EcYUg_mq6>YTfT*xLQmS$8bzDiQzW|5* z5jgJCg4uGCmY5eJ2G9q-H(?TG0BF&%1Agv?BvDToB=|h|9kr3?zL4v9v@jOY>EsVn z(Jv!$k46LVcLUns=cHYER~?e=u)_(BWlHBdhgXBpJ$K#> zj-R|sg4gQw(?{Lew#ztbvlI1Ev^}7-=fFJ(i>+7v*P!yNb8~?A$my8LvUWpWH+t%j z%8K1|X(d`c=wVop*MsE$&DdG?2=+1UDxhekbR^-hwN96<`WZ1weUs-|% z5S2OimDCU&8Lcg#Li6Tym*^7+pZnvQzDkgAAfT7Xt9XExXJ#{s)FC=pL<{~8L&%a& zpcApX5?eniA`H+xM&P?;gK-@9r`OUNJj7!l=MJ{qjwrXWO~(h9tgfm7Xy^mnH=OdC zwOUDDYg)0cq%RuR??+>}1R$o}2;1 z$-OYJ^m#$)Bg)e`UKYti!NjWkz=4aAejyhu3@k}YHV&A*p_)Y(ol`5_J}BmB`L$>P z3Pr@==brt|H-yc%*AcKUJ8a*$7Z-vS?lDNg8n#qmE0B-PEcH;)y_|h_YPqrDYfHiS z$uVOkyQO|w*QO9wtqHBq=iv&$a4?Bv+N}`;7~?ZZR!%=F{es~g!YisBYUf#}x-(e$ z5v~H`dq&Nvb~RQne@~U>T51ScDfEs!SK_gb{m=lEYrkDP@6I8NHvRwXVW8T-2XOTQ zS(A_uTs;45XURl)3y>V#T=frmuiy|IJV_vozb?k)gz8cVR+fKy)GO31LqT%za)4%8 zAXz}U{ovf7ofw!ekesY+A(;)$nGN7`NXd%Th#>oE7|Q0q?UIm?>|EU6QK*t}3K1cB zxHytY^JtP)3Za1LyjcEMhP%U?*u!02pLqG-1Boo8*M6W}*S5n-=C@ms`6SWE)?Z&e zWku&_63N(Dl*2>~{h(W(ym|O|RE%8ZK{sI)l0aAENTM4u3r5C)p8lnJ91EW_Y!m&| za;5NfLUzkbiw6~IV7Wf9Srjhe7yCE*BZ~>yK7JEFrL-(y$PFfixF$K1nf{KiKU0g0 zRPeDRS3#6(^mpwCh65W401CsDOfPnLF!B_*Cb&Y4AJkcrx3r>4!g^RKraWEf_#e5W zFIfm^oMH7U<*Ld8KgKmWpf}d$OHDXj4moiY;c7HFbzetktq`L)6x`As&Cv(H+pw~h z=9HnM|1i`ARz$G|`oXsJxVpEL!kZ{5x&)SK%c2bufE4!j7R-|izz8FMrg*6;(pBex z*T{03ur-nM?+x12OU(2RnVYEAP!0F+&mN?BQ>W`Y>G^ZDnq*>hzzFW#tmwk!F-)a= zuJ;zAK_m1S%ECFyvJ~@tE2YH%gO_yQDK!bHKq)r^s<*z-4KAF#_;7McIzgV-;BKg0 zm<&?rON=CVcKq-fgofV5Tt)EkrA`zr)@T)hjk+5_p7hfqWsy^Ll|4|PwT)-{iNU26 z^(S5P9OM;$#;lT!%)SzM(I}&iC)S_rRav0XJTba3 z1SUUSpf@rZlw{8u?b|mf3=FXY$sfu=&~pe-E5v?`+f^FbeT0<@gbb$_y&?6hF$tMd z6GYXT=O3#VFO%o~e_nFO7u)Ms3m+bTt#`Sp7(CfLCaf~o4>SA!*|mGDY+uO)aq2nm z{Ay0|?5P!tRkHgLsDnHi0DKcz|W=bw(-Ng+1HR$UToV2h$D=LCJmOuQvtPD$BzVUPB`NDjd68xWpS->ao-&7caC>67aJ4%;lw5h(P(PQMz65!htr!1+#!zBa(}Pz7WCkYQ&NcWJ4@FsIaecZ&fZ95aP-Nb)PN6MHIypMo<*B)cp_Hs*0S?PM;D~|!sQE; zRC%%G2b5GcBOg?ZLLf9aY$uS4tUI6tZLdHL#@WKpS8RA%1_zabK-eYF3{{SJdH?RF zmqm;I@m0Na!6#6wnfwke$}!%!t4$7*8;@}<8s~SPFT@0RwC?$Tq@uW%)28vftj(! z8d0iW|DOPpVdZ4l@-MX|BM79}(B70m(1yxj=^`rMO~^DPbU~yzL9%pnofu00@#(C) zl-{jO*x{g#(FUA69~q#+X-o^C=ga;^58&Bz8tZ@@$1o{KoFBUtlfVhoh(4jnHj&Q? zWQ2_s*hfQ_&xJ(*hHC<9DV0!>Y5Zzpu6uQj%t;wxHBD&6XB1FSOL>xaf-U?i5*Uay8S#)$Y5UY@ZsYc){)|4$Vf-SX(;h1g zr3C10IA{L(d%}w}8iYU6M#4PeqODgatF)8Wa}WVba2-?&q=ciD5|IgfKZc5jV+eqa zlog1@|J6034iQfG`PZcokO+mIpaCdP7A)ctk=q}A-y8K$20DDZP26{#tUH#a0T&F#}Qdl#4Ec#lW# zRXvk1cOnZcq>jts@cC=~uYrx%xg*U8Lj=DBS4UZJC3J6bD$IJMXoy|GJzkM%Z^?|6 zDSr4m4cp58iG(A{GpL?R5owwzYB|#MsO|FHHf6~0l->DFzcLkDcmkC9#MgbnwY(Y7 z<=wvG-ah-~E$X$`1S8vvPH;P`LLB&5)#Il2wcNhwMfTv#)um2JsZKx zV~tD-Dxi`no2R9Rk2>NJEB+LXZMK3xw+rcsy%I2Hs+E!moq8B{h=yVrFvjQXdRrLz zC297Qg2=)n6Ldjxd^-G;6YYi3b(YFLX624zY37F>+c5xdySN3fh5|IV!U4$E#yUPH zx{)f5H>1Tm@mk=9N=ZrgYtxey7*)roX%LPt_iM9vVIn~rl`5-#@BJl=T&G1?w8_?m z8SdFI;iltV@pT2>)D~wb^Jda%#;nl>n5e%RkAse2j2lc9Tcb*P{k$R*gg{;ji=f`^ zJmN$gOU#bVWH$_s7Y4lU^Tl2<%x3}Ub4wfMcW!kG8N;;RmDx}0PAZLxL< zucV4oNzXQ`X{n{ILZ(%CcUh<#gX^JhFTfz-DQ0=uGgdAmPXmblMl~^QL=mK844Wn( zssm-@7ifAAB@Mw7);THOqo5K~nt!#7S|raMkX+uBIwtC|AJe)$=#a8) zqx~X|=VAGkGQhGO75T?`dqs5a*k1R%!+VFpwp|+ZCO3Ii;a5HBil%r?`@cxbr`zb> zU~{g&xYSx6p$RnFak0O*PieO(H8g}|^%e51GpO{y7wdSovPj6Co@##@kNLeioiK5M zUBA8MR_LW08Yu(env3u#Er?dB&eg!K#;+-;?a=1^w0pT{A$^H6{RE()%8ZLDy?!D( zvpcN8Q6kl~(;SbnCXqbA)^$uzdEH7&j{I3Rx!oV$kq)$ZN;hDU_^2UL`gK0(v08Y} zjD&+cfsd+>i9ZOm$l_~)B;di`|IT&{k%+gA1p?_oIi64EZq74r1{op06cQ0#{z68? zgPr6H$L}zM0z6W^=bipoF@eQUM?$?MC-{dU)jLp{{oCfr&}+G zzu0LXtPzPZ=XcQ2H+eg{0<~ujKBVbDyi)^HVC*=439y;&`J=7BB~-+C=Eet)v^)&I z?48-H8%%n>4Ss4uej-o0ul6USHlY85@R%S)Cv^H|%3<(W7zh^j|B!ja{v>$w{v^bO z2?X1JSltzZovT@j6%w90nY#uNw7~+Y5Bd@WgV;Qz4axME^|_iKbs+D+A=o(oC3}2* zNb$cJK(moPqz?06<3HZ!^BBnMzkRqty>3vJ{{{XWyv=IykoHHQX%l(^9&yD=GAfNIJdvuxc{A0x(G}=Bm~P}F~TA` zdb70z3^zO^C-1-O09pwAcO=5!m1)LNhKXkV?P?W5ZzwN2eP^ zlP0j0%Mi}R=AyAOK`=qdP__@iJ(%HG_UFXNLlaN5wiO)(A=E%=S%%Sqn8hj(W1_9B{C$crqp+n9X`2X}z$KTNkpEcNr=W9iomhP2$mT4?*oRTkhq0%XBS0Af6Y!S`L#z) zny2!vF>_RTP(&vb`92=pF|xW8HX{$mJqxN9ws@jUt`BSD7i6jF!-k0MtD~b z$hx9}$w3Dr)*0+$B4g#%BrV(id+0}NQhjGnV{DEPVVoh*U~=R6c+jNvuWdl!*!~8b z#3q*7H%vYEtbf4IOxnGCZoY}RVc(G0h#l&lR%-gKI4P8<2zGtGkg0Bql zP|j_;q38Z|fAKjTn%)#vI$BQ`PIm+> zp0Z@rAKqU0HHEOBIuJq9d2oaBvUtD%; zT2ESilSB5ol1`tb+!6U(Wzh)Mo$+ zK)hbHTdSCO%gUQbJ?;R=0bwfH#kf1amr{!HpwJnt3GA_Cto4}H9EZD5q!ZpM$L z9o~H&&22U3>sQ&I9(|}g2l{89al3f+?6{3~tMSgGCvQ#s+1A|#HUwXvE;jvM$8TfK z`H&}e;p!{ceB@_onM-Ung0_Hj*)KKchlB7fx4)b45%G}{7qo3YN7Re%Xi&M4&x>tk5PI;eITk_$U~oi1#fMwFqI2;rCahAT3h}Grq%BrmqCFO9HDltD6;0yFd{c7UGa?Z$5Dq}Fj5#Dk zh&Yh|R33shM52^ErH&LGq+!DJVLp-3R6ex zPuRnVw6KCd_{zG)WwQJxeQ%u=?Yo`Q z>iYGJ*^Fq=HBo?7i|Q^3T(fajFQ!{B)xWTIzu5f@i?ASNT)Ux$Gl7UPgjwT6RQ*`J z`e>s}0-kt^SU0IM6`XZ5yCtTN7Li4b(0i{F7xzKvO!T+N2Wtb^5Tmd z>pF)5O1_=TCYvF73LfLN!lrlIKJP63Goy^^@L?U}h5hWL% zD;BU%J^g3q!KKm_;VVP>9gHJFiI~IEO$c;PlJF;sS(#7~84j~naoduGPgHMn)OUZc z;%;Wa^;DoxE3@EvYL2_7Y6bMl`?f`ViseV%uZP z*cxy+J0M-awi~u;&gF&&YXV+_5%yi~%p?pADh~D}j1OK7LKXe zzsK&2(;Hl@+;~cGy_>5zk1u1>DY&53TVO<@zE1lV!}KvVBJBVTxkjzegA+fEM7yzt z{7=>mLdyVt1E%KZjS23HV%_gNW(tZeR3^Zd&=qqw+CEO_KTc6~hfYx_65zD=+!R=T4J^VOrd zPZu7$*5^)@a@LzZt7H9T{nKBQ-q@as?+*{(8Ywr?ZkymQpw;p+pnBfT`MXJahv|UA zZs*4^qpWC7b>iq}#r&y37y@u3)nq6$;GJn}j`sQxts84NP!cx%gMkV{WrWvtlBmDt zg>vk_pzn$l6I{bKZj?#9*L{eBu`0>R>_`H3jgA(+iLK|y(8Fi+$`&7epyHyJ9a^A! zpJF{F9@#E zO2!`!{CNGjd2@1<@f{{f+eKBHC_2T)Nzp@^Olhvo@RX54rH+1ngdfZ&37hdrUUV4V zjAE_X&2r6yx6yNJtz0ZD%@iHCT^_3r7@N` zBs}D#1yE{lN1kdGd|a}`N78)E<_r%xcQtC60vL%KD@Z?J@{5F6N;WvaOjn@h?~PFE zOljd4&6;h_^@QCzkA_mgWH?rNCp0<_lN4r?!vtv{6*5I*AP|*GQbV|P+Y$lxo%)&r$@%|$RW^JZi1hnG*trs-!{098^MGR@dtrCh8crizo!1T31Vxv@bRgP$hsCJvc8$9N;5a)p9Pi)kuE*_bX)r`G>Gl z)C>HMm^BlqeY9@&5)Rjq9e-PCy1xD<;me*1=(jW`s@gD?>_o$0I_V0?ivchj>NV1YuZMi$uWnQT@+!~bg0Y^W!uKze zc?3 zySN}Lt=6kHd#}u{>R#E5_Rh!p+nrseI6bs_w9ljHM9*gG7w7w|FhsN9^V48B{d!JY&;r9e^+bqQv_h^Mzma2bkR1nm@Om4Z zVfysi39D%Bf_?9dX*w)t#%KxelaGArm<%_0tX`=K2;0nF)UEcO;O{tN^s4HR&u)L-GvdcUt7 zwmvyl(vK?|w=EBf; zv7V{pDWJ@@B)+Jyj9Ndu4zl@N)IdO}lBAPqa3!w;4eC0rU3))-e~lt>KNodQ0_+4J ze|c=2ie!>bEafj30!LQ)MG^;1xfc8DV%!Ha$XRGYP|EC%$-*aXI;axy4ygfmY<$ux zP1#uqc)lG7)lVkXuMhRy#+1f$coP}Of}Jm|O`_EQZs#_gPY7DYd1zl7E_f?y=vbws z^!gB3XOi+cyMZIabEHK|)tuLqFC~);>?EP1J&aiGnH*toM>>2?k_j!Z=*awngg)oM zW>o^sEIZ5qT^Y7hcl*gP)Z{E=!ix9h>IUDnUP zql?oztdM5F&QPH-Ifyr=r9@LhRUY+$w!yfGy5)r1W$;+RL6khMO`TTt^j4AQ&k07Q zVAVCaI6c)hehiQ8?)@obO5ZXKou9ODQgpk&SDdQ)%jS5nJSHV&8oGfQm_7z2-RYt- zBV=tNZ-YFxWuMrGhA|3aA{@BfH^A2y{2Y`^2m zh^1eP3v!N4@w0>woR&#>?h+wqHRP*!lx`u>Km3D{YRYt0$rd2(dZ^0y0xF?U_BeeN z`)1$8UXzm$=iyW=*g~^|_Qz5mh_s(E3i9|pCw5j|NYMPUM*KNLo#B)##Q&wwNebfB zQ|;EU-`dHA+mzw7+Xy^(a5(Z52x$rS2kEDyil6t&XFo$qGU2iG*XY|D3=DMxL@Qo; zLEGQI6+=yCr}D2_dAHK~6S_YlvM+qNx!E>wwj;px59ysCTHxc2?{NDgwy>LJPU#K7 zgxAI`i1qBAR6l2DgSRO{hdqVX)43HIz|B`zhifjD9>wh+Tc#U^&lC=xtZ&&$c#Bv{c0!!OtZgDu*CWe$pW`tj(9BA$V0I%^n zRae@}*3VdQ?VlD%oVo^e;q6%iZs9iR$TjxwN^hzKvo6!I?+X2iJM_r zg+;cwM-FIc#HBTC14U32s8#A-t!p!u4);@kC`?E5$9P9Agn`?UYKr;MfR4?=GT}nY zK_T=)X6bLYo}~rV{#Blr18)Z9wb5YSfR^?jDKY8=H|PZqd^p|2GI`J3b9NMmsk^gX zOih64sDIvJC331xKw}}VmlU!`R(UVh8z!fP~4bF>(;nYS& zSc$mnHV4g;jA^}lI!rcWH*|IapUE3}RWoUMkk~I6Qw`4_ADl zs-!i6SyEVTg{)pg;EWp(ka546j1mH4W$TA^b;-;!Z;k3hpW8WuXPiRov1mJwz^;^` z^Wom6*mmT;@@{G(K^avHd;U{n)vWPj>b28Oiv*uCBWmrt?}*Opt-rH{T&IvODa*In zK;0T1$G#r=P~C13BY`3vT_FEHZW{G%4`C`2m&rJfKS%s3(E7H2VzW^wM4_x3(EH{A zGBY6(VT!AY>@=sJ!^OuF-b;p(%vA3CRj{FpIpMQm4M+XeX0$rDGJ`rz-s7vk$oz4Y zqFFr!1`kO|QxL*StM)QiJ7v2;UHvKwH(h?FU8KmAM=Co~x{Poeq{dd#%sxZ0C&ww4 zA$K^1lLg}}Ftq6+ys2-dt6;qFWJy^Q{|jZ`Bb9S;`kO7>=EmT%|A!|G}UvZpIy)a5?{PI-vvV&IK`+-uott53b&A4SaTO+o=Jm=BQzg`LhQ?0{q$s@gQ48 zui@)S1k2|EOjnZmDG#^(`>{l*oE&nv*h~kkduTlqAZ0;-(8Fd zze(8BSez(rOG;3P9TGFks;5)J!#BwP=OejVZa7XMv|LXnBTL5&61U=60R#HF)LRe{ zo$7qi1}2|+2pU02T`$&ZL?s;o-kKd0W5Cqp>@9|F8vL&sHej>QgQ3r>%+0?U z5C_NKqjMx4w*N^0*f@AWs4B3uz)oGo1bl9^&U3Bn7TtuvgN#Cnvs&>S)8 zW7gC7q3bU|`0?P;N2m_P1EC;Q3(ze#+ItjPGwU{oh+v2?UEP@mqsm`!0&2{p7mC5U z4>An)5_dde)ubWpqHNtPP|2&yn!v$u0m)8Icmu_u%}Ki(Dd@j7Rw=_AF}7qlvFvun z0!u)#^igM}dlpbVCZ30REZ~~qmWv%dX=0FxaJxumS2@>_t6Okez(yDeMI;Y+E$doO zOXW1HA`EA|w3N2o)g8AByK?p35PS}SpA{?0xbb~=Rzq1w7L6wqfird=ZY>jRe_ z_}Yt!ht9GlaP4(T1Vk=V`{E)FUaiTw13M=IGd)LEyIVhlWCEvpQ7J&=1V^U#OaUueArjy`_2o>5KZbXM?X%AjhYwfv=SbRKoS)Y3ch95pXC4=-Kd(g*7VC>)%xiXXMn=^e zG-!F0YTvqCuYj)HpUy8Pr$fq{!dnx}&CBe|c&vQK{%X`f(Hu*+AQ z2K?YTt|xc#R!gO&Ih^$sq_r>?Wj$GxV?qX{1Hm1P@cJ*6JI zvRvFwGFhu~UEB^XouVURSHKoe_46@z`LF6=^7{CxNo|l2dzEOZNL$I3ZbGC`dCJ)q zDPlvH2-sJJ8*^#xptzR8UjLds27xHTK)R6#_zC7D@S`yQaX$0VC1ib4fEY@r)7x6c zS_s#y+1}LB7nn%6Mm6yz?*Fj$PT`e?+qQ0O+cqk;ZQHghNrfY$V%xUuRBYQeDt1!w z&YE+bvv2lAyZOic_w>VKmQafC;nqmQ6~vhQcekvP#PYGgy%_;j{tS!3rkMN ztI?()5mWyW}k*F%Jm(z%W^BD%8WdpShEbcY)xFb z{<1IU0f(qtx;#_U!qO(gFAlhmaoxaM(b)$EU~cfh-yx;LBq)?2R~?5QPDqn3W{q}x z_cYe*$QK`mywe$I?oQKe&)9J76UwH3_PCktt*-FTT0*YtPWPg9X3pX^K3ylL!pVz&mu z?yj<)$60t9L|G(=2(e%|O_0l0`j}sqGS9Cw=a6euVI4t9nui7RLO?f34mev@&1y#z zlKPqjJ4(aWj%eD}sfAkw`PrvyU4XL-#>1wp9%--`BQy|EVbX8~6)OK2t(xP(;Sf~B?_;$qN| zR$ht(gp2U&Q1j~fOtCZktV1|B3{l{ux`*%Ajbt(hFm~#|-{Ya|4A7M=GCu;@=pbqY z5Z*>j0H(e1FifYovYRukhy&-z9WA9k#3T0Tn#kwt2=$nMQ{9SGevY)*`LT~Sk_Rh@ zI;%zYOVSb?8@;qkh5zF5{IBZ$li2^9X8dGHpO2^9aWKh*e!A|dA$o( zW9MVbEw-=<-P|+H;hm~b;$ncBt>FbY`RGQF%L}a&Q)T6*eD*pZJNv9Zdcex03Z zRn;w73_mz^sI=~fp2WoB@-+N|SmTE83TRFPvZP-8o=gM{1T)_2^$mdvRT#N$pa@m> zQvhW~CYez5Yr>6%=mN7APb4RS7t$6~ccG*&6ty4w2dK1elPLuP8K1eYP2T?`#E73H z4q!5!XNa<1S)L1@%uYuL_tvFewxmB+8&xjWXrAte{JK9EVxDsIo4=BZ%6oncrI5k* zk7FmLL?nom{i=rF{ty867SafkljEJG&j>4@iJtilgVv+`)elb9+wVn8{BRla=2--- zk6`kERha>qdqS$8*3LSSLU zx2K{vBv;R7XiSra?|{IL4`sYSg;Vk0{^=yOQKE!h?`zl0Eu*kVG(JHKo#(oN)$Vfc zybV`3n$V&6V`7C4MndxdNw$(AEy^d-diwY%6Umq(0rTFTG9s>&*Z`5OGDG zx#r+D6-zk!0X#q?c$?9RgYH}VB91SCR-ZhrGY$FIz$DAn0t6QXz5boL#{`28#`V8T zU``2`0XT3jp8xEc!C9F9yZ3F@ba2|>MET4yBF%dvp(dZw3cm|A^>UfVaM&N(E@j8T zkO>dgPN>9&295Z5B9s`{u*bY?L4xv?y7QdbavfHY?IJx#dVJ4jKpH*?;89n;a0L!$4-Nb{Bm3pJ z)tGs3KlIn}_Vc&($gX?)D(^P({d4u2M_>9i1our^X+Aiyk1BVBGXo^otb8;Ie38=T zg2zbX&;wLT_fJS7(pZ*fOWv=80UDAk)9qns7r=IbF3=CfIJYUS)nhPx??RxC9PEg{ zH6@+AEVS!)VE51Cu75y}`#iyc$&(m$4A&Vpj(qJjGx{k@5ZDbsAB)=7+&|XBZdXl^ zaS$a!kTX)80_|8DNmxx;p810`XOlEuCE`rh)4%!Xgel~@z!{^L+BL9?L>C5TOaF5rIDd|b1l4;V)1T^wOjX<6 zGbocaIWDM0J+&DZ-sgyZR4)N^wcOK#(zlori(3jR`_b<9M1v8c1kfz+`mT=b@uDx&U0+|4wXbu?{2F>_CC2@$q28XJ ztHblZ+Jk^QNJnaK6P^GLjy6J=g+wi<$?*bDW?O15BJYlR7eVarUy&XPq8G}ZO_B$} z2Xp+|a+GGOt~Y9}EzPzMQ{XuFin2wYOvbg|yLfoh4fPE_ym-6jdy3a5k2l!x@^11O zSRwX+LlWXL-PP)mA46e@i^HN(!cNf`@~oK$azKZi5yhAU*N)yj?`W^2-Z+p4VZ7iw#sV2 zG5`Gk(`Qv9aG_Nr@ZUoC7UH*%zJ>fPly9N7R*j&oh<`s-Jm0n$1{e$bf3sa$Ip%1e1XI*wtj4A0ZBM{M4pVYqv7jDBZ+W0uWz%>B`&x= z!_(_8Y&%nvf0S55L`M7n`ugm(OVvwS(at=Wy|3rq)BTmSAL=;ug0n76|OO;3sO zyS4s4SEB?IJtjT%iY!`a{w6$Rm7=!_b9Xp{&UWGI%`TI3IoaS>UDihE7!8Cmo{||@ zm#n)qDO{C)7(jVh)zWpkuKVt{$c3T8gP+$Q>+3{$j=~eJmM$wy1g`^SB^g8de{(a^ z17^h1JawNto&)#RK2G|a`P*t726pK{QS<>nB5964jt3?3olG-bcqUHbvnA%uP^i$> zx$9UOUBUpFRy>Ti2!;GHcTWyqh^=GO4x%c;Q;$Zwr6uS$F(M=?yXb*0OU|>+0#STs zhT{~O=dm1(LNx+iwIx6=qw7J{TA(R*t(OWF*#blWDkxcb@~WiVhQFph4FvaQxPtzT z^iM_`%976baDm|mL!RXgL@@1Ue3<=CoMGZ>Yy4XUJP!J#fTu*&!%%!2b~s)W3^+I9 z;A$%L`#|pJU1W|>Tp;_lIPgfN^RQvpb@z(6;2%wdg%<^j5D?haj+>PZ->UbR;jG4y zF(6pz0cGR>G)U#2KYm?R7pUI#r@$LhSvVz_ z3)vWyrJ9F#D&28(oLCrA(EE=M)i-!1&L-fe<0>6ThSTVZ+NB!m98@Ud)jjaaMW{Z- z-mYit$=}>r{Q*LXUSGsQbrvzas9zV)+Oa#p%u#TJkF)7eyyJv1a=ghF;0B2~k%DZ% z0S#+<$XELQy-=|F2K`ZDxq_o`BzI|N;X%IyAq+n%Losbx5L++ns&COiUCXSn!RCe~ zyes4zJ8$|Rz7%&%XthC5z^cK=iq2NFS79F&t@%1Q76H2K^!ZF3z?$F6IUE@Y5p!TQ zidHS>VA!?5L-`z|z9=m@)Yn=yUsf%GTyy`fO;4Wog5prfYf}?o!|be5{VV(^l~ILO z{u=&@lk*EUO4V#eUQ4EYMatbEUv6_6Eu$Y=!7%Ix%9+@@hLfg+oK8bvcB#C4Ng^XlpuA?aj8k$5-)ss1X)^cCh-cqxh0;`(a3)Qd(n^1y*T2jrt zHfC|v^o)S@8oVud9Gs`k@^NcNMfWp|5Wy)fZDHiFMENxFo>7Y2%BWeJ`l+K4alBI* zq?ra*s->CRK0c7I2VZD*n>6867X)?O zvDd8|ffCfV7c+c8ABx{z`Kw~hU6&5OHu706S1j17qxBO$u!YmN-jm&%FeH!!uJe?e z02!-N;7_F6&FRBZ=t(WMl@V5t;N8;l&z*_jt@ZrVoy&IU(Oe|UZF@Auq=&V|%)z$KB;fX65rrbAW2SP__E1 zBX6dc8n8kf==Zvhtom}Lb(&}WOK^3W{$2z_zH`i;p|-J4LGDX;h=xFX`+~oW5aVAr zSG-b5V)zL(di4PZns&v(TWKvWcH81gZb0NeeWU3efXdmJKxjQzW`GgUD%r0~Lj5m& z--A=Qgv^b=1s$ie|9sP6);YeYj}v^-rpc}Rj((pW5F&Dxbzo*)R=yc+#->86h{W4N zo4#>S7J>uT;QUQv>~1>&16DbI6eT#c>Y`c}2a|F_7rrlQ#_!@F2_|d2viC1B1lmqL z=kElF#a9f&f1fO&M%BGsuU3Ikfg%G0;pPkOjvD|;D+=8S7V*G7Xs46woPMl229XSqTGwI%?rud91Ys&w%*i2tN(C?1o+)3~b6CBg7(Di}6+>LGO< z9DYYRRE_r*MQ!d0bP))9*>}d*@pIuhCt;^U0`1o~!kkuHPFly?80(QHb!>7haFXW} z025rI81JU+y6Exw#i2vTMurWzw0ZaDN#qhNVzfc%g1VOWu(6U7gA?Y1!3a*QlPW6G z!k!WjsjUn31H)Y6of2}P|G+oOk_%TvG7(BEoM~FBd)_YI{0$dPCRgE0^K}Y2-0d;P zff1M?LJi5kLZ6OCDaCv0u&1+d*KlxF3x}u=#UDTHANsHY|N6$n8AMt)ti_`&p z%b%=wvs57K$}%#WYy4tXdf!B~=V_$n0V1By!^yxg6S##fRLh4)@TCU&Bq$F%+!CU_ zLMv9?4cCAr(~PwAGI@l|q+@7ai9sfx(~YSAu9z72d}iUsboqh(z<6OdtP|6!`kS$x z=F)C>aybTWvwyQJI{6o)!1ibmw#Y?QyK2zELT0oyzpyJGj89Zb>?j#-p*dO-2R?1LGmX)8Cb<#zjT|FPB3zO|BB(A?xwxH zm`l){ErXZTS!=X0A4mL6%w6mUjm1O#Utmw^+0wh;ewZL@mxBT*?*)|#4CaM%LE56= ze4ckGPjUA04-h@(WgLj2RP!#>8KAz-TJZLRHr09#3a~OWnMmfiLvz;N4fB)N57FYK zOFH!g8=IWN&s~4*>_g>vysb+>v-@k&Pmb8osC{kzVnuD#+B5Fu$%QIA5oST$@J8NC zaAWH(%Y2@;l|E@V5?Vbf5%cBOyp^dQhPj;`!6qXLbVR@@s}_z`r@}iGHL!)U5mC@p zeFVT~v1aO5hsAsK(4k6wzyCFrO6?kc*ZNN}Xs^*QJ!t(cH zB$o9#jmN6iD&_k5<-u;+MlHUqpM3``B=EC~sB%uKJ}iKK-gP~ns#3!w3YI5jU>Zp_Uck~A<9R;p z&|1N|HB({CmJ*+6A`Q_zcc%7recUn5!37B9iblDudm0$JVv?`WWN-Afq9Jahrq0^v z)cR&Z71(t_N*l>| zW=B7+$>QX4^4KXgPC7YNsIKC1l>)RBTo~V=v2@eWC+O9@6!FNm9mCRPbWu0SuBNvD zvDBkL6&tc}TIF;SNRz7ZvM5r=ESh1|z2Hk5l$v~cA@ItaK75522$aIBvoHmeC=pwp>Soq?e5?ZE>W zWF2^%N?yQK*-#DT0)&d39kqn^wKX>zg?Z(B3sN6%wLcU!8yZbea+fR0sK@U#+Xp{S z)wC=A%Gu`HM~M-M8pLyj{1)=MD|#XeT6vx>C4GlH_;@Vle6o~EjJ7X=aRQ(4o=l#3 z8^t^0sMWRrs;njwtnaI`DxW=poh7DccPi&;##|p#@(WTO0g}P@p z&TF>2FJw0^MP!QMVus=}BS24P%>9I&bzdaAafBvZsUj9pOL$<)dd`u-5w4oTo}YPz z(MCi+1J%^?Rr}g2n(ubKJRCjr8U%?I`%v4DC_K^u(uBg>7Zv}@Z;R-?N95CF_#A$&hG4 zp#{wXT#kR6S8FN86`T59oHsd^vHzem(3YiPG5_;P&Bw3oRbe7Bxav8LYEXNi_#Z;@ zk6V=AtwEYQ8A5+#q?&#WSFb55(%LK&6ksG!)Y*L1Nh8f&E#gZtza}P?!=+jO!=eP| zKEZw+ir)2a`Y-|OtZX@9aod`DDVO!Y_!2412Y9>sCWAs|vf4V8co)yz>qObw&Y z#FAI*Tnwq!)P9Zz4V`nj%6v8OTptpTlavDgygPgKF4uFh*=X)2aPgC9gcencT#S1B z&{mJ7-}(VH&gzF z2SjqLq#9s|vV68`z~|ynZgzQ8`>1zZvJtqcEL8xnHTU=<$60fxdECi5L;A3_UudX9 z9hb8L0xeSY$z1WmW@2GWXnx5CvS4eQtpM_KO~~KRJyIJS*`jW=>{4|uuE4CnWi zM|@B}*VCFwd8bm!H-F?fl_N`nPj_}-B|U3ETSRw5^ginP1xkgn&K;&StnI?t0<66x zsB||_9b+T7Uo9T@DzlHES}w7!a7c)Cb5Pc5uPUckH|+{j_LoD)^?a$3;qa0=e`QLg z3ORC1SG@*7Ib%&#S$UM+N_RT5R1{dPAdDYpTz$%IGxv^m^Ay(aO>JMC@M(|GA{6)^~W7 znH8M9PrTt!&fdy@s6=Mnd$we2F!R?OE>45^hP@lT%+M`@CGd?XB6M-cEo10npb5ZC zd3%@b+U;ug9s~XLp*Ztw;Iw-B2vxH~?B0L4d+yIi@EBT3=y9R+E;7<*J85NQ9uWFS9a}9!Eivxp;?Z4{Wj)3c^t+Lw++}3n=>Uy>cadcVi~6s?U6L zEr~60x>v|ui5h@2lD(0^4foRt`_B5XBXLYv1j~d7Q>I4PqWm?wky$wF^ez!k9Cz;& zKA(t_Wc}L*Cj@%B#e#hre1wQpa7DJZB{9VKY^&7U<|Kr3nAl3s)67`Y6%m1Sf(0}DAFVExsEW3fiB;p4FjB#!m_ zaXqC1xc(S#SB_AOy1F_h1xtXH#+NBzM`(jXNVkQ7`77~@d;Y2G({nm}VB>f`Q&IgL z6r7jg%AuM>0*9fOH;q2-1$i5(9XyeInT2t3;=k#PZ{^Qvgo8HSvmW-2#19_l#P|cF zu1cD`64-AwBA8ZcL!k&vmFWRZUzKMPWk%S8Y_S-01() z1y3q^h=jMZMSP!fB4HVcl^Ea&xaus1i)x`ui-?dHOFSKyO~6lp3U`U@IAAGi&OCjY zXw_;}NacW*Jj9+kFK)Wyj~j1yoo*X+-!oj!p&+PurnuXSqbC z0b~@`K^hHIu25amS6`@VE$g~qBQ!r5o&^!yo&?@O9#nJbX>#YbgGohKU z{3>&38Ew#g7@j%AfRgpVKbX)n+L=1Xh`< zB6sm*^BfdH2^lNnNYTNxs4qV;vzGj$QMKjl(+?*#zeA8oX$#VJR1^<=ozO8m=s^F8 z#wPdg;%^aw%mSwHe9vBJRX(cW@cdoYYs-|uL_)oPF#oagX`FP=a*wZ=woi5F>t>Zr zn`1fiMw512h5{rQfF$Zit8S-o6NJW<%8%)^Wbjsn@N`K#I14^~8;DBFZ$f)DBYfUM zink}u;l|T&j}P^y%yrRMsP}Co7w|z^T*MIP<&Cxhi3lN^sOeXq|1SolxF$atQ3;9C z`*Yy+`Y+G}!u`(Seze`Csc1VyJ*q{n8h6|&XwU}>hw}Na&=O{3Qym<3-V!GU0S) z^57)>+E%e){MizT{7>iAag;`e?1@+uq`r#()?C$8b_k7A-*G=YnTZ0`#emG8n3wNu zx_O-Z|2&Q#r}<|dr&nlTSA?Gta-s@?unjLwuuTvhgkX=taOS@G#c(0+kj(cl_n|$Wwr_8 z)a@SS8Il?=XVWrtK@joP!+6}Kw$mM{uj>|+E5n1DmrzPcntW4eyrBPH8lV{c|MW%N zd}V(T&p6eTuGG%RN5`cdK7z^4@SvnkC{Dr^@`y?54DmeEePK(4}$(acU)Pp9o&4?h3A*P6HSc(%_E zOPRTA*>Y-ebT&c8 zSz6h?_L3u=+amdBK81k66c<7S<<;@Vz|R7;OdeYhrl(}Vb_8GSRWvN6_2&EQ$n4XEHVf3N%O#2hF~ z1Jke}hnvB|I-qA~qm!*zE$Ic_`kwfmbaV&@r)2rB{D>GII2)@OL68u!iBdU9drX~p zO@%FT<_Te8m(SKSEv@*K!{+o7g-0!_%+3hiGVY%t952_fe-kRcPq2!$7LCP63jSCMH= zHJC-HQRA0c+f2(3<=cHUU&;{gpC}`(9=1NG#sL<$`D1SEWS5L7>IWZ<2^v$N1n^ru z#e6GSv_NfJR`%8#kcL@fB01Cqkj}__{yRt9sG_3=YNG1#hRPfK_9|*w8uYU6Tu?z% z0d8v!x%9YH>*wg2ANtU&xEumyXDO{9+$>xOZ=zHR#2~!`t^3c}omVGI0C*gDjUF1! zPW%N3ADwO?{Y@DROrolfX0AHp`rlQ_LmE%|qrhb=V4Dy4e&AdOe~5x@s#Yfnq5$S= ziGKZW_2`CQOBEhTzI+SAaihw&&H#PbWSpE)dax-6f05t8Qf% zIW3l@nFQuA%n}Q>PYjErT)`y+EDBIaEiEw)6-V~dhs(w;6r@1??dJoYJW)dP4!c<$ zE?}|AGGr#eUpLxA2!Wup=lc6p2zJa1)dWN7q+?9`TzLxRtj%%Y52k@_eZ{PUq({k_ z24D9+Cu1WTmt_MSszFFf9d;U)Px2%Bla`0*#xJ*IExulu(L{sJsf+$IV!bu$u$9$g z0Q7!=iCIl%u5OzO@M6I6kcn;reh`p-3e?nxzM_+{W{N0#k8}&Utya7)*@%O_j0yEc z1bmo~r=;Ih7TP#FnF{a7`PuR+b&(HafUq(ihp%K#2)#|Gx}{HbdC@L!enq~Fv7vk! zb;5|8^#t3+vR=GhJ^DL78I0eS3RGQz|1~AnvHVoWU|uu*3lfCQ>uJXN%?oRP!L2aZ zKj*+H#nLf}n7C`M9&OJce8<)i%wPV`xD3krKV36)@b9iyDoZIeEpSWs?b}I1`xF2M zPhUn|a{8*Fot_>|*B=cE^h~R+PZtp(iHoAyCMXNfHh8;!Y#@_>hB2*;MFUQT(_x2J zuJ$*aJU~sWbH+Y(1U4Gn8h08Uv|6)FnB)xs-o?+Mion?gfr-}59IBXoI$*Sb#hG6Z z*EMFSM=b-X0{VUvFru?HQENEd?wMg_J~Za?fvT}&S!VIA&BGV)-GA;$fB!dr7?8d= zCl2eF`J(i=S~z}bGPCmGFR)wjkuUhSLtw`3q5C|kg3!aLF|=lDhtC`6$$@KdujW)+ zdu<24vCY@s$<6!5EZEgaGihcCP?ZgC%fCJsYgB%@9lnqNUTnuA5Uf0VSMHA$o#=uC zcKI$mHu1G4Q~$NKU+X~frYx$RBwN@Nv+-(Dcq$vHKC@X? zekSZFeRK!@O}>8j^#r(h-(KbUau3RYsgjy_AlbxO#X-mk3xm;8bR1=4MjYI&V5E#F zF1dl~ai(zqFCm6e%x~OZa2A?1TwCZZtS|z~;)Z-rpVQff>f_3iV+m7287Qn}q9Hc> zaU+5sc;rbzF)WX0X^a9u>FPz zF4XUoblIv;-V+sNUK4d}7pACSqd3C>Ol4o+!fiWfli;=}6yrpIIYZHewWhI6sSvm$ zv_VAx$;b^3_f=tnD6)pny`8O;+pU8CiV7<3GQ<{hqtvq5ST6B65Sa3xNKJX9s4Tbo_pjs`pVVVqvf?`mI5$qUM^UpBf% zo7LDDKOf>_1t~plxH@+s}5KcL$Vac7Kqm|bRFZBCx&mlVn;j8b&|N}|N1_=B&mBGwum ziKK`pj1oURku}0vF}Psv@$tx=Fu_t$Rq}S!MvOVK&-X_pR^0E3#Y9;l@itg#81-sf zAcP?wXn7OsP!N{A@d9E8>z1;`+LPM^aZ*dRL3Sz|0$j-(=K)!0Xs#6ZR`JoyQnv{#mW}0!opN<| zvQAy0PJqOYGtBNxTtH@qKANob&6n+_4=81khmbMGYp5ELC5%GiB@eH2cHg_+WU7<=|?f7vM6ANh+# zIwergp?N^c2-X+5j9;9GRxmW$SmbQ&)1G_0JbzXdY|P;a*7M-_~A zgRVhO{tn@43UEQ>^916ibf9tJpcYo-+KV=9zBa=@Wd&#m)pGMT4rA?gm5Msc2^}MR z)5*F{Jlywa&7UE!U2)`orr-+Mq(fduDQ>pcnog%hafb{|f{1??$lP5`=cz+;Pqxq; zRIya9Ny_U?@HV0S&ZF21{Ksh|Sc_jlXP83Hn>Cxm?8e>ip0kPSTP^GSUX@dJ?kQ9A zS9cyi_bB2Mow5Yh&=9o0M`51&*+1dKv{40e3CYxh?3y>QRE&tx1Z8JvCa5d!bAIkx z*pL2tYY+Waa6HkRP`MYY8dT2(3M|m-W)Mq(X^5WiuTVpRy-%?da9xQQ{rFx|!npge z?XU2?2{N~mdIqlOi1SMnriknpn+4@{eAObcHkW}Busc3e&7%l z&9kgBT3D{89eR?36ZM%3M2@meVjnh=Qxk&(i7=L( zL(phZvN1bPTO$~2GcniDWg9zUhAKk){WY-(ex)+ZCM;|mCNr22ZNpH|=9Nu}zH?gf zosN};2(Tu^*xB!qE#piS*_Z=VW@GofIJ@xkqW+CyAw6G7=+aizyn;{i0nJ{k)RY3^ z=H^7AxU-J{>m6uwSkQt+H7B1(=s+r>RT#)9LOhf&xV|7@BW^phUG6dF3N%a_7f9IL zqDml8OkUs;_5LJJkN+$ZQe_m3Qew|(Z}w-h-${lNOP{9Iuc!sm=&@&-{9=3|ah1fg z$gP}v#?(~>m1FW^NH2BX#TSL{n33X3!jYKbh`_T0Zr;PgL1d@bzu_Qr(yZtDo9?Aq zZitBR9PP!h6WpC`m9-}_Z`+fa@htT77>q}orUSluZfLnUOOVH?c8V@cRmEkjEOtY_ z1g4JHJ*T3SkUq;|_cxADY(Vo;0w9(T>X^$b!%yHj-fti9c!wEV7)B&w6)IzmLtSmG z8j)#%8*UJPU{VqVJ|+ATc@7^?w#iAQ*$b_mS{{59*0*%ZF~C^keGqU5S@z{NHCLn{ zXb(_k0*9tuB;)|VC#&s^d~c4nvZ@TCj2Gy=xZ!4j&FYQGYtV4b3Xg#PD5B8^yar|R z$CP;4=T!{w0$oj3F;iyBf0`{(qbd#M%jZV@&-yhBwEo%TyXy4Ou)6i zd!#@2F#Q_%GU(F4t|MnpBV8$3ThKg-P8mrYBDp79t(r#ZTsM`Tx~Jqog?kN1bEays zWLn5yl}x@>E=XLbuXw)ugeX)b9a~wO;>`;4femJ7Ix{oU?bR2?R7FGoBu8Dn_Uam7 zGsz?j7Ne||BY=t_;Y=|b&s6C4;-_jZtef^!q0Ze+jrLsE)hLZeBsW?cHvCHUK83vn zlcai4Kq!k98>;^$*c3KC(J;SF6~3K#)PXao@@spbPI3)381Y{!43J2y7-i>r)fREY z@hEz&j^7W5XIuFyzB5v43R?%sGW2!8S@B2J))s8;9GD0^%^YadEYK8dUXU-tX$&Wm z&`a?;k<9W6ezE)C(6o~eN9~>#vn!#1(ozj?`|)Lbh3(Vx6dr3ChSvZIA&qkby=Q@* z^_GFAvBv0Mh+>sTPJee7R)1E(^n-sTuBd51aKK;0 z4&fvZPrgoS-qIg}S0lMi zT*as-Q?%V$0eFqmr>VS(ZJoDy!(Y?=)^A6Fn;7!oAad?-N3w;k3EzB3GmnhbUtG*v zPv3|mdmHpVRn8-Go)VuoX#fBU$IA>q<870e=`r__^LR$Dtf*x zJ@NI(xqT>sg5d`=62BSp|4jZEp#QrkXJg^~PlRL&*T!i>^2x_9c=`6*=kki+_0O~8 z`?U|2Vz6NY*A~J|7CLV)jWj?CXd3-|>Q46(Q$agw-?%D)>~Ydc#{kZ@bw!|CeLc z(G_zI-LgXH*8ebcg8j>B_VSVMX%^p0WTYQe>xhH3 z1?XXtLGEbTf#(%#wR;Yzq1tMEdrJ|*xiU~qu>R|}sWK+-H{#$##`^#XcLDKG+l66t#8(h$IQIq8O|LVz@mD(NQ}r|32n!B#UI_PHgSW~4T# zo9C@{P*551qqnZCTy8mJ6~x3b9s>-zdVAZ0GltNBuy$RUAhoAPP>AIw4Dw>4IE%q7 zG?oyZ{Kg-YyqSbz45ndN)X0peC^2T4iObYlSV=pkqiT>KL;bbURU#01DmESdYFM(8jJ!vxCy&?u=i$PQ~lfL`-NvD z{8SPgj_ygO(@n^tjbH3=-H#$eO4s{1-GvpmJN_>M6M%OFwB3-Ir(3E z(NYBD<)#yD6vv0~Lr;qD3w43+e#)tYJC7kP$o*E+PWj-F^+}Vb_|;uXa0CAz_F@x09*VIj$<Mi0*D)lRN=&7_!mVQ|b96s}v8Bn8ivTm@{?+Z| zCDwKwJ&lBDjXaG+I2#Q-8JKh*$yo{Do<1o$9n;9C^Jwf5vDwK{im6ZK$*!{P{(*X} zw9};}&J4{(TYnJ)WZhELzj0gR@?Srqtn`An*uagQU?z$^C1lAdO3*Q|9XWtTofZ&a zvNqq$6UO$9^!UCsG%CQ-@yK~5PR>Eyd z620w*;VR{-LHrWYT$oL`z#_b)GAXDc-@}DVvc8h`-+H=Iy>Q1wYN@OXo)1~?bZ*mZ>n+gg>SQ)JivP(d8FD7^eMOGflX|x5O&Cnf zT|61qwyFWKw7f=3jQOmeOM8udfG$nGOC}x3%eaQBdY7F{r%{7w$Bte=;$sqXGb z^p^K7KEs9MI92|60?DBoD#B4zu@eE1G0n+bc{K3E06*YLpQ(XMoMY6Vw(*VjhgFAh zwdZn4yiu8>hOBXZV)Xl~-=+Qf_5gH=hnT*x>YvrFrvhWe&)9qOzy!Ikui>Kwtm_sR z9%lVtJ!q*D7q^RrrZ*h9vDL_12V)zyAih%?8(_h#^SjZ!y4`W8O`LL-(D)OTjx`S|mFbIZwL<)W_?M!vsHCVHGkYWEj}Jw9A)0@% zdM!{xG~Fghi5E7@a1(MFRp}mpOku)i(_;Q-Wo1?bW6bi>@`#*Q`F`s$S#NOWQF@ zBlQllBId!oNp)7Lgt+*pL^tS>Of?tCohZ-*Fw55GmvW&-j>16rH~-0AIDi$_vMxOM zXB`%?Exma(;{(EaxT@+sUK$cT|ClTFyL%=tjh3 zGVBj}f|uNx-W0gELZz^1X*#=!s2uzD;bkzC-zu>z%kLZp^2|R`CvtA|p9=*pW?am8 zN)<-}iQU*mVOPa!i#$NwrWqPmF$N&36s%DScU9RPm#9+wOvzZ^+HLDG<-MEEM;TvE z@1q-uY#u6=ZT2~8Msy_l%VZonWB4q3-!X255!b^{m9IWYQT7^oHSlxM*MRku%riOc z=+8gH;}N;!9OcTcWkVtbQ>rO(7P-n{k_tt`7*t%G1fT01=vLa%Vwk!C~Q60Yh zPlZF2iW3id*lQs2Ni+vy%k^xYlXF_|GbgAl+e1Y# zS1iot8*TA>m}FF0aNXlHi2221hvt(~8eYg5<H5dZL>1}E^##-imq-$GUzizm8XKiZeJ*<@JVN>ALRUusS(fgwh z=^S&3jV!WF9<9xSVdt_&E=76(E^KE=uN-;MnN9}yJO>1LwsaG>gu&rL=P$pD8gEpT zut?G+FN3bFnAi7qNLa%~ZMz4oqmZZm^p?$12C2v%Xz4n4=0D;aWl0 zeF7;Uy=zfnS|(R*3C807wmg5n=HzRyBwWPRCt(4YQ!tP{W_+(E=V`qUQ@$q{*?W)MHL97NO zhSKGGYvNOM_NH&rU^1xWC0t~|Dsq7SjAJ?|5Pn9mz@o{nQ~Z_IZ}xf-0LuW0Z7%8@ z1^*lTA<<+B#Q@g=TR~dIN;4DnT{!x0jrL@lloqRk{}LE|YvCl(hggUiZX@f+c;o5gWtD%Ak>CJKf2;r1X7RL>`)>u8~NPrK79ckMH$vV#I%2C#3Zed~7YC_{~42D)6C8xGi`I zTu@p5STJo*ljaVku8`;I#w3=69#%00h3K zvUuNrueNj};x+u~1P<9+!OQ!D{G|W>6T&$XReFh(m*fWh-J@*(rq+9qdzk%|JRM$* zF30b95#`FQI^Kw@G61S~bqhGHzg?F$J{O*yzw8$nHlek(E_p0Pp1sgEbJ5*HjHAhF zHrf=~N0vwsGngzy-o$6Yv>hzd)G9n)zE5rT78&_II|@400re3N*_J;1(%Yn({Qg`7_eCC@RA}v(Ub+gbxM?M|tq}g_x435>agfpr{fUPN|-u z6NA(@tO%6eC=#kQ&Cmjl_Vo@t7a__1Wt$SC_efD?IfN}<86hntvCbpvb8C+P@(;Ye zMnF&5GhWp>#{_hM`+lA&)Sq?&y{ix-YgdD;2oK3dGUb^YnCAKJ25|MH&wb zH1-rN$((f1?Ej~*w+f46i5hlscXxMp3vR)KdvF=t9nx5E4;I`ZxVyVc(BST_!4G@y z@BjYioSSpg&s0zK>YJLWRo%7TmwfuOBkItE83M-G$b7ri@yXHIwPVy8&|whe(Cewm z%X@KNH=9RUC=!Wc=5#AdXNW&5qWrVMxMe`viKq3_sT_xsEU9zVBJdG*a$p#FBy_pTa1;exRh6Uss3NM4{|uNsy(ybMSg?2L zM{TU>XGN#ng?jVbS03-V@*8B?!MMUdC}6L!Y|r=`^i>MPB&z&&!VAXUYOM9_hdR_>u|X9pUt4W^D`)eT8E49Jn#iqF<>560)`#9vVLAxl`Py z41O@;tTG&MV-Pm`w@2hnK8fZ->7}zb1)1u_pVfni8Vvi3<)rNON?+(z&94btB&HG* z6S96)40h}%fI*BI_(`|ybK=fU6gF$9iTxw!c#Ew$cjmlpU_)Z#_ZtqIB{ zWvDD{8vsB7tzR&J_w+1u&9MAkc8swX5KLgrtv}uS{vz<+(y6mh*LP*UW^1M+BuPy0 zaI&PqRIEVfv`tn{)$=CSSFM{TEdp1TDUF67BE`u_f1Yuaja8`k`HOehOE6srEk$8Z z`mR9Zr`{WHm_!e`fq8h)o`$Y(t^JF;!F_$ceLLy?G7t|u`Yq$AxMQ<_J6^cak=nIm zd#wT~##+Rr#0`w84#5V{I-mh^c2wpoJlf^$&!avqogzHpb6lj(s)DG z{;;r?nY;La>k;K-F2uONpTn-J@aJ%JrWqJSr|`P@v1es+vqu3^{1NNVM;Hy^P{-0c zRmCD$^FDWKLIi-;TL6TWKm_<>R-l`VM-O=jVm?XW*a4S5h0OJQ>2lML$Iw1teqvR>4b*{TMlsJpf<1nvJdWm#R&hX6qr-UG%*oVHVrVd zQlj%Qk((k7F{dFv^lJa|WdFBEbPA&xCLshL&xgsaN#6{!0~(T#_dhT!t2HJZObVvz zhr~d^5wi*A+CkF)6`(b<88;Nwe)m-)zejseUsa7cXo?EjmNrogDf zas!!aBlat7XdTato{14@do(J7MId6X&^$Y++qnI1nMB38BCJTO&8`c_nv()ytnXkG zj>)_i$kY*Vf>`XTrbSSBr9IeI%1wHLERNJ(8kDQbQqZ~<>G`>+rEr?qy7{0=T&_Om zSkE!e?uWDOwFq`e=z#>znB@-;y7=*m>T?$YZ?~zO-|PR{2_8wX;$!2RErYDqQlz` z9y%t6EiR4R{dy(I^d(WwSk}zQ&EtzQY75~~t}^n+9QcU}6m2umvyr#L8U7ht9WY|C zcBhe$Lx8(YLXv}f{6gFM=_c#yr9K3jE#HPfdRb!=Ik5yMFTlBd&hL zdfpWc7S2n;!lMTAT~bJYDAwissGO#16}e2%Ac>4O&aSk3?qv5Nd|qO&$oVAwspEoG z_KxsuR%*rfYVDBdGWPcto)VG!q+qB;>c_u$qalJdZz!}`1jb}n5 zL-ex$M(BSmhyNXa|Ble06#qy}0!Ti7{-(@GOme6XB5=)zc(7?U7Bdz)MXVnhyU8O7 zGxnpt@IM$bVFsoXECfIMKYK*5nwm>76<|Ls9slx(@oO<{VLlus|2EQ^F(aT-1j0T- z@pWLbK>w>VZ1V2KjD$-`kNh}`KZePJ0M6C)Vd~(7`%s+xhaOH{!^}s3BA`yDgA$RgZy#ewy{7qe>aySmn-TBm(m5!77wgW zX$;0>Ern$FtF^5p!+m4F5Ji{7A;!qL(+en$SUIKriN|>RVLGs*z~by@pkE*Le#$Z5 z$xjbmH-TNGRM$*_hdZtq_^>5)R`W z#5MzF7qOW~R)fRVF=$Hu$x#Qr`#TO5jZv%0G1J_s?$Bda^2=w)5C6XgZwyL3GxXQoItNYkQ!3)aUyx3`cO2P;Mg&e*}hyLyM(^u zsEkLY623hLXUOohsEG}Z%Xk=m*ZWoq9l%D2@ zRf=F+FBx=#oa9_6`0!7VWf*b3kQljge1VuSTQFJFf$$QE81d4O0|{|lkT-GUn?S*- zBw7`@lTaL94Q+^yPd77*uM56(^*qon z!6ctY>u9d6LoeN31E{B)dR}l03igEzFj>3Hu>98i^tS!j80=I=B$V&k#`X{xNsu(^ zLR^P#*w*i2wQxV!uErydOYhSnC)qhc*Y4UueA2h^@Z0`IYL|ufRE!3A!0ULHT=3dk z`o^Mm-TRg8qgGd29jE7^N9>|ynR(a7`^&b@tDj4&L09KX=S8g2+narh_Vd8gts&sM z>_T?dCFR(}sbWtb3%j?L9zJ-lTPQU`XtJhTm@SsttB63YfK@cT+KXkSQuwRn`Y)9{ zNy={Qk{n$aLv*c_@k8PuFyPM{@`aAj)Ydf4eGL`Ajk@DgUVGA5Xi-%#kDmayACFRE zv>m=J=T>15?;j$c`ht*{UcDKWT^3^M7_FO-vuJTCeuW9w^%!zYw)2p_C|%>y`AmHyh15?d6z7?x+qp=!baXgfSNknDr>PzMLtxq zps&|+-fl@r09hzCV3p0ti2>5;+}gx0y1v4?0NPsl2*+#wYJQhQ5B@Z0Po?n=49hCn z+9cPDb1^bdmTOTytY+S9_P#Z(T9Wi4>#7rnc= z<$f;CF5mGiDgb!mLh3$0R^4f{`*|tqJuImkWxz1$?<|$BD+WJJi z=b@?jq{$dl^h>U22C*`{Q!)2*VVk_^ZY5at_nK;RC3 z@-V(*OkjNw9yxqoyBvHinSu)9bw4EJypH{$D18?~uk}z69h1XWP8#=uvA-5g5un2+ ztxeGzH2_wYao?*8X#x?lpob1$mI2`$qT(jaM`uNRe+|#M&af5L>#qWn#*@nDGEEFY zuo<(*?lMqzhz%n9qDrPD=+Dfot*yx$@Lg>Qt;Do|yA0td%vcLy+bhX}e(P(!7lH}B zNd@uWw01W5FWQOPqBt6i(TYJPr2v_)*%*C=l(IjCScnnV&2MR_GPu(pa4fY0+%Hfr z;~L>;Y8Egu>Z9pC{(Z+agz_>?~sK@a4kz2$FDF%dEE^1~m!vLAwiPd0; zF%z7Q@{qCjQ1!^w9-f&Bc{4NctB(EM-4@DAoIy2pk&!xgH$!%mr3ZJlKQ%;L({ukI z2~CFgj`*^d8F2YEZ7`<^lTHcVE$)|AbY0jFFcvwD$U?%#YL2BEOm$nq;%tikd}+J5 zX8AHumiXlvQRVfO^t~TE2?ns_w@$!mTsze&Tf{u$lp$wfk-S54cjrs?n&;#rKjM4s z_VWMw7gkea%42QYoHI;odiRJ^<#lxxWqbINk>TkRgMd#_MD@AKz-}R6hW+}LvDKyG z5TU{|G?}9U)nL2PhluZ#m=6tcGN@1O=fK5uhytN&9Kldi@Pb|fI4#f~ruk|58}|NG z_Y1`S6p|yy_!Z0en|`W9%i?Rq{iYka^$6@+mSaYQXwD}%GUu#NQMQK;T@u|g&xhWq zhc>p^u(2N#MUX>U{B9=kd@iF?p3Urh4g%w$S4||q&=vphfq0gfi+ube)G1c3(dWt1 zi?%h5y0N^{#rfzn!mvN#GC`%jP)S}Qd<+S z;=L%P#l`gsIvz0rwJF}!KCMKOK3+WV_En#~Yir!yRj$<|wpfLfwsib@5W;)|@6Dtk z^F(B&UJ&cUK6By^R@2Gy-&-aapmEgfuWn;`nR{vvxmFV*TQ|nYrC%3wY(LF zkgqGZ#S(egBVm*=u8J^b{GVm&lMF&PIH*|g@zGx5YULuCrWq+a7Q3WmWXOdnM9J@x zlQH*Z}x!n47db=0teJX6uBvuk++yXNPqyk0qRZ zupq<$HFO49zvhXIGk3&q^*oxk?CSjTl#>T(_qIKL6MVpvl|ur;BEw1nuU1Vt>S1WQ z>R7%7^emNvDnPpUMnp*Yjlf35t9KA9SVP7rt{F5eUo2qLWXE&yjCxkx%#SIYpTD~x zsrvgH4uAcq?2grM<~I8lYYy+`4NYH_>$~J!Tc-q^j&}TovKvoSEd>=m+|C+jA&oyR9FDgqNpUUdx)Y|*DS9n#*fMH^M=yu*%_ zO=GP*hLukA+w7eZbLJ>rZt}{a|Z!~1&$>my@r#a3;e>bo_*2et5hgW0kuap z1C)~8heCkC4}^zHbV0j9Mc1^w4fi#%Zs~)NQ3Ft!(e_R?P+{ro6*%hw+|QgOpC4 z?2^y+c@ST~{4wky-eQs9VDv`_esTdqS^7|Y)@E@f5Rar(H0{lAsQdkwEjCSxC|RMi zKibUvSc+XXY&%8Q>ugG&YF9`JvJH8bNyuE}6W+5!F1g4v=J7pc?6RCMOc)Fhgwwx? z34Y^!m0R50!0hY!yJ0mNwuNNohF^m^+^kM+`R0uk#7wo1+8i+&_SNhVVP^A#y_u_O zGC|xXp07p}c8)S!kR?+CDZ@8?(aN|~ z$BGm2J0#$k9$Nwy>(dAp24*ELLn40@=Qd>nXH?h9B%9^8=E-*nw?oF%U$D93b5^MY z`1?!IsRH<}r_u@)NNIl$!%^jk9~H)|tSwTl_!TEGIhl)hie{bDc(`Ys5f1#YEj^WA z9LILl(gn$~i`9gyza_ibpOvmNU8O#(z))LkT%>m*EJQo)7@GFHnWY%ZVPXB_7j0v~ zY9;(fDe57IB|`X-`ZYD1V==0JD3F@=ny{4FQkdDWk(Vr)+gaLylB zd2}ee|CbKV`G4r(XL?pHE7BORm4@u39*k1ses(RY)TFf?jo4D7#zT9mVpIwgG-7FB zA08~>wIFbCWvU9sHYE)v2|Of=R>Q9IEJ%Mo%ow&_e9T}yWa!FpbsU6VOlJNCJd>?W z1&(cK9KO{94s|ie5edf6&Ca;oxCQ5PbQ*vx{1{w4WxIXbr znqGkbw?H@tss((CmTPU=@L)jOGJFog4USGn`Mfz0!qt&Tmw!L(4gx_J1M#}>W(g+h zMh+uitjHsVt}tBOl|YitA{Wrk19jnEQBnmXD-=1XECoSYLK^kAYW zJ17JJLLw8O@aL?bmDCGR&8cBm0{5&Q<%`4up`<}-fLE(%|L$i9QkqHD#*~XdKk*kn z<8ngq<|mu8LY#!S&NT0asNF&miF4eV(IF_mT!mm2jZ6`34@41#5{0lefE<7+f$S7R zhr89J&_g5qkP)PgJ%i{3fjwl4*2Sl-uf}~AkIGQ8PBpkiz zj8P@Ym0=h0EC_r+b0Hx9Rxu-6@J~6o=q|8t=m+bX*PFBPT`Ika~V0u#R1(LkmI~gcy;*K~9=Oc0}MzUwX>`@T@ZfDZck*)as{`U3^ z`4=E;?xjU>Q72PS@crS*9F_#L8TlO07J@*u0bXVz4E|YM^8^Y;YeGAa5;dwId;#z< zz2_^7QOY9ujmaH0&|~7pKB2dJjY2dO$7Vo-!vPM{(yvF9X=al6<{lv5hY3wtQp2$o z7l*tPw+*lGxd}p8ku{+_?Ij+Gww`XNzFafEyaXn4@5Mt|_qUFKKh-Vd`4sJ=r!z`! zR`g_KJ;(72Cf>JB<%dm#>hYfL;zU3O4+(Mbx}V^Vw;m2=4a&mC1S_=8#;-uiq~i^7 zkkE8Vh))zkKO+Nr7iwG>#<`dOuA=9=7o7@Q13sR&_bEa$o<}5-HujEHGAb<|lMcIf zk}DtM(SWOP5guit)2JZv-XAhU{ZeqO!?lrxb!xV$oqAZxLI@lE-qe@D8F>H>JvF!C zd-!bAoXr8o&^gXhToI&#PE?XrGD{@UHq3alzdm!Bt?ZbUaNv?Lg!7FcBg>D0!&jld zJ>3NeHsIQFVwZgpm^6Aa{#`%lClYh8%W)lvS3RZrTE$j-8MB4`Kt7}TZh)o-dn>z?8^ z#+$-eA~CFEKh1Xv^6mfzdwV!04615EY9en=cz7I>7tJJgw(na7`<7|0^bP82YT$*D zPq~HDaIw8E{ii9(;e>M$I$|7or@pp#!&*%SBOXe9Nxs?AfeBDL9ND212S$apsNj6d z{2hm?q0jhP6S6cT0^{P3O2{ z2ESTa7I>Q%`2>J0_;$BR`BE(2SWtxAL4PAR&E zb1!t}i{s`p+{Lp`2K`T$lV!QyRfOz1Il^G=g@lA?o^(5llIt$p73P1Iiuo`1V%hFm z+;QKy;Eq#lh~Z8UFo{W7cslSXF*H>kUI(>KINpMTwX3N7)sl3>n^MIZ2@LRqxgwa#Es8fkf& z4108R;WsWKJn*sE&2^oeGC028@iB&u`KnB$+_av}<}KN>EO!YeU|9NVQ#c3GjdW``4+vs;M_r z=m-olp7Faw=%Y~1q6MnA2j(rS0SO7|+ut=O;Wlj`scL^>~(R$y1-} zGm7?t-{P4MTn)_XpSX(W&3>BSzWO#mIi}z<-%Qnyv*dnZOTppiBAP6|fhe`~`kH28 zE?XB{<|;Qd#x!uSPO7DYpEX#3EmVMdMER5|ocsCK%5(F^@F}pfpz4tQH6Ux6^oU+4 z9}tdD3Vn2LPMgtShtLeUG1r{Mcq+UN zL^%oz6mnIdi<0ThF1sjgPdezug!IY(h8Je`5!sX^k33qOJ#L{hdOS`hog!~WcDG@?m`BD-blKb}D$ z4*6iSAHGwN_OP+^!E7gP7OQUA2L7$CMzzGR>eJl1U8_i>(?is%6t>wvalxw8D6gV? zahIzP7tbh}>eMumvKGex8x-#k(cJ20w zf1hT`O}Fpm^lt+qM>Ei_^!4`5+LL)*+ArwCW84G~W>tP}T@hUn0UftaGr`4V&&iz@&HWQlTP6mpI+p75;Lyt@2SX(Jsf{k+@Jmu^>#hXu zz>}DBBfVt&8+YrjJvIC6)$^P-n&ALbTMqIGsv7s}-$Gj%``KM%;5 zNo9P=x9K#JD|eBrR%!zWw5rCR1$w1PYlx+v-5d&WJH0PN=bRl3el1YSoooEL8P@z; zdKY&4Y&Mbw%<;SrFNipY0wxZf6&~{KyFND&55a$gf7J4dAHBg9^13xnViHd72%QY@ z_(+|=l0V#^KZ*giH$kA+?pI-*_Jh!hX3rDYkLLyv9Zin`P2V4{W#l3qHn2`tpv-PbOlDx988wEF+y5n)>&-k!*4rDwcf4-DqTq`237T}Rg8 zb~Csgw)USls}a_5RtvXHs`iu1I03WYd@$#peI|dCT5^}rscBkT&}-@#cvC)NpYqAA z9mFp;oNe#(UKAK^?GR9$0xNFBGtvY8AOk;1lHAiD8{LA5}3u zhn)$*#uJZ9gwM~1z$$I!?BYts&;Ea(;&XCwrLbFL(gT@#EA~5l7=9mba-BH3T_Zg> z@Q|j{T}=blGQXbgS+S!fN;+|!H6pLbdc40bs(3w}WqI_klRmxq+Am^R0Yo6}9jLW@#5ibYj&$Utqa*e@ zcTiAVQhP|v(rDO3Uwu&03p6rw9CMqCCKDmiTjxO%?vott?Oza0arEe8@ zai>&1{tr-#obytNq9Pc#iY}q1tb|d?0HX#a6I(&>4YLltxp7}yBuv5FZEnUrvzpaD zy0UshqR~dP9ASWgNkX2*aEQ4iC4@5OmGo2dbb+)D>yMmSN+DcmHl$q8=jsNqeQ!?!Z1%B{(zG$m z!qbX)v_#&0@7^|Ey;jI)t-RiDj$dJ|k8>Ym@0ZRdzfC+{bh&RF64pdJbiE`*Y0iSO zVk)@_p@+`rtCm0s-H^Qq#bYy z>?EAnozV(4tJ_!^X;nH3n&S8`-(9u#eTnpjeLZqlM;egWM-&7n;=r6P(~I%*ID%5T zo4HtM?w4^^>r>ElIyg8`;uy;je74rEldMb@B0($}gnAhkcse<&`gFWyiFJS{MT%Kk zG`xpZ*2wtscZVO>#5lE0g@`0dcf5>UN5iQXs?=EsPMV=^3QiyU1-9GM2IE!XIl*Hr z2QM3(h2~eiC)>P?%UcQsRR{8ggF&CU4hh>LwiiVL@~ z&N@xu$J}pK`b-8ZO&LrI`R^`3X}Z^+sGWGM39fta^w^GVo3?3nt()4krHEgw8cV;r z_wTrW(iCOkmc&L_@Xv(C7Y2=~vuiyhn8ni+TzN8%M6^wQ;ZYlqiyA0S3-p;4Rwdxp zOziD#)z-VT6|A5lG*u15u=GrQUA&j~D1CeGTYK9o1~ON69tj?_4mCx9mq)8Ek&F9- zbK*7{p1%sZhM0hhIZRDvIDfxA4GtBF`_2ZO&3mDUrKjrNhV!mURlmBeh1l2UV)Pbm z2__2@iS671Dig#jUwc^gshQ$b)mLoTF!BmZQGQS(XATh;Dm6EH(0*}wP020X>W#H?_@kJ71}&mH|Si2blvZK#X&q+tqwX)y>= z;2mT^E)#7w%Mo5QFEZln@()L;CrO%d<0uVv)(j)LBYnS3rdQ^3dzn zYWsb0iaX)}@Fy@#(97m;26PobrcIgX(zVeO5w(T3nhx&p{MYkT30aZ<_(620O$QNM;#Cr_vmZx9{UB=lL^I!1pv4^3dXwEv1p?6Nb0|kd6ItU9Zq~M zPMLa_t`;mh2G6NW`beMcSduOcBbkcJZ+>dB8b5eqoIxMH=8oO(cyjUy30_Pc*spX= zLlj4fd9>Ri@_oI6o;NNtT1ErhoqEN_WU8oe6GLAAE)m~{8I42SodOpq#W4&p8WIY% zKwNlB?B11mpnab1y23EyDV2iM8xEQZ&V9N)cfzecEOBH*6KkjN|}rfS0j zHCw`~ccJTjy*_=SW`(QR#fOB!H3QP{c`Eq5#sLySZ837~+pkpT2dgh_eAi02I-|s2 z@kC6Ier>c9{i0~TQ!b)?xy;)=|z39Fy4VbVkKAI{Mtz>aWv@}4eu+; zM_s3Coil0JytxT95wSf5W6ZU<DqQ78j?CV=)}Rpp0YtbU2FK^yMa52tkxVB90OL zsT5Pz6sfEy6FEYIf^tr0aWfH#d;iVmHE&m&e$>Zml!=Lkm_z^>1M9@GkBF+|jwOE6 zUW*pvbdD+D`wp^;lzz4Mj4s%IHb6#&xvh+Oz8TanawB7e_K61zi50z>V5n!PwAPJ3 zip_h5VMm-{xnD&vp_*y%`${|VP>vV{dAJo0A556!X9-mr1$~UDdK`arAs$(4v0Lq= zR4^fikcf(3F)qr1B*c~(!9%SXM*qf1$QkMn-kP>kB*KLEwk6^LJbAm41&C} z?g)is;WdnTL*c0w`VjgE>*A`D|0l@EeXw7vsYS6Pg0hCTHt`5=;{!*0`w(dN~E zqI}mYkzZ&AV1($|rcJkff9DL*u!WIm(ypYrqg^>)_nk{sAR%+l^z$ggW9Fm4ZpLS+ zJ+NhbRsN#D(kIcP5HI0m96K-?b!P!qtQ1rH<8d4UmB1xevSQ>rLIWr6Ht1Y6_tJi1 znuZT!PilBOvn%{y_Sugbmx7;T7(+B;>^oUAPK&xIV4W-)3B^^9D<&^$tgr`j36*GW zl!$6O*>#O}14f6cQlgJwV-jx{OEY5tRVgS*?+i)s8(%WWa)>ibTh|%}y^L`x0d?K2 zW4QVA4-hNF`{pAD6E9e&0?htG`o!$P!c^SBR7G}=Ip?Y|%;YV`C8})cY6W=LjXa0o zL1uwA@MBA#U6#6lC+XX*QSZ*XY=oD2raXI9qI~xS#wO{a^GiM~rKJ&_nZCJ^uvb{) zWT8LEoCR9a#)ZCo;tLpjnxqfP%bxJ^+RGk!F!xyx{R+0v%LUT_$-Ak14Xhpw<1Og@ z$JOZ}+h=~##`CoM4?bp|EYbdf(QdUNC(lJIK-`wW=uYmx1#i3Xoo>N>UP#DHPuPB< zBNmcYP%uZP^+j{EZ(i^OLY+DCt3LsYv<`0VnVcz5GZEvE9nnzZx_bFZc4J4Ac zFDAB2({Ly?n`ovsHs;ZpR}))XUG$nl0O9pt8)(xTLn0HtG0ZhL+TRwBh$|bYU+>-; zg_>4gVX7?bKpT|b1|NFg-kjI(+r+R87OwRu+uC=c$$=FS_ltLz<3IuA0&|qN9v>N> z8bq9TSmk4w&i`5Naj>O?s9;k79PD2aSk0uM$hN)b;vqDW^ybB~^Jx5;Xx}TFtQs{NCol(18*NVGjZsqLJCMU5 z^xY!IUo+YrgA+;v6b;HuozDq#M_?X^5`{nGT81AN%7LjMtblZ3T?%!FuOP0&=?5)N zFSDJ93N3T#GVXtK1hd0Gfh3YzWM;8X!M|`%MQx;KO+iko^*Hs?3e2an^#)uW zff>#OXM(!;b%?I{$oWTiQ~q@z-f0x0dw&;D9Z0v;U^=wXUo+N=4z4Jaa-VxOxy#+^`+TmaHOXHBfEHv`%QBo9Kk@T&GN@}xIfhl&KXf#jm~ z$Ryfgag5esl2$@>2FfEYOj!cVxg=Hw^ufzOKGW`O7lGXM-t|7ICq|HVBFjAcG)v-? z3){>Jna!cn!ylTTX?^HngGmr+~pWFTq2bX*z@}4x06c=jq9u8kVf#D|Uhatc@P3V_%_<4|PRZ zVRx|8Pcs|}d21;%bR_I=mu3+Tl5K&FVY11O5+EqmC{`i-V<3GRF3l7C$Lam&naX^0 z*etV$36KlOC6%g8B!(we8p$hRttl5>{|Z?lVa+2)CCX%b>c^?D6lL@F$w!|mDxX6+ zP=6)upI0j`4ED|t+1d{cG6p-%xzNb@RNesS$3KB!y_v(7;T1&8#N66UYEkP*+yfrx&jA99-X!CL zLJ6XAgd&0-66FMe4~a2?AkT6jGr;H%p^8NtpsV~;zj$M~2G~2oWIzjT5*^i&1B2;7YldP8GG>FQ^jBensSI>t1E=Z1YKAH5L3UgY3}y5lJ~0ZZV$m2_+bs#m z2M1zM0xA7t9p|JDM|M|sSRA?fXJ|gB^k8X&w`~e-~6d76TF0sEvlr zbf4QuIpsDLVW^ldp`V~j6qUXg|Ip&I9%vG-kUu1$Xs~V|YpnJVtadb&XezC{oQEd< zC2yKZd1nEyT&%(2(_Sh+ic{HHVIpbn<{^fw4era3DYwkbA`F9~*L?5v+Bnjy)e1nC zJ=ta}_~LWx%_F`i{DD|5KQ5dt?+IJTA)a=Tq6N#;oP+oFH#k88HIz=hYkKgHNYd5ht_A)t{Xh$ zGdduods49-lJ6qRjEEHcb#fH&Yk=)t)2|%xm3miVLFb=ocWyVCiDtr@$0H1%>R4zn zC@I)=!Q>jGa@;1n?Hpmtg9tT!uL8ccnGKM3R&|LTY%PHMg`Ys<_TY;EB)GRdqv;W_*i3lL}Jr9#Q z(z***+to*xTnaXOF#rZlub${o0D@DCk;`bNPsa+%VjVQIs6ewv<4}9J648($_oM9D z0Xmd%@l}I1Y$T(3bbbs|t3|+bn?Y;i8$yZR1;p_Td~=5O*nE~2$<7+DYnND#^^C>L z$`py#nm|Rf8ruEk=2M#ljvug8DIb>7zLDp#9`6N@Cc}S~5UX?hpye7UI!Yh)$jyda z2`NsNU9XyU+=~AeLIBZ9U7Q>oHVhw^0XAZeLB?;K&I(y-*NJc*$SwMJm(U+=7@mMZ zLdG2K7ZQ0Ac@$_v{o;>u$lPtI5NSWi2CDHQ;$%!X<^|3L>b_93i&3qhq29S zvXRQF`|E(vn{wH()Kta|iIQNI4ywN4)JDS3oi55)5>b8t=~pT_Hm7T3GSiC+Z;q(O zsJ_*4Hb*RYZ4?HUbcO$0tTU#nz4)l2Oba|cFS!P_StOD57oro5k*tyxxkv-v!egmr z>pPv=3$5RikiyP0{?x#;NL*3oqIpioJlu5UVFER5)*(himxO<&_bOO@(K5E8jR1DdsZ06(N_U>{MNsJatq(aw~Mn+>D}pNSSMLM_j&$xf-!FW3s~8 zA(Rw(o~|-#Z`d`ORUHLTuE*i0uz2RrOj2@9axrfm85mnTod6^)np=MgY~rwEiAXNr z7s!46%)DeXGFZuV#tm1=)M(~npi68-UMnqsPMQ+J$U&6Gt#cjD_&eqjkIAV>sq0U| zm-#~|;iK~#MhXOxKelelhZ0!ZX`;VT5`tl8 zAF#@)!4Eb3%rXL|6H>YgG5f`M5JH%}+@uNCr)auUsSRJ#>&uJ~#{FgGNxn(bF40_eP)ccs?0kgP@O@k}w~7=DIB$pIknemy)o_43Q%zy^auFrSK0{ixz&3olUHn~d zmGq;D$?L^7)5%vFH}OpSdN+oPV-6jbrFz#xSHMzJ_#Q}(;5UW%4A(3N_wuWtF4&(^ z@$10zyQeGx`j%rwSd=S6*sMST(7!it_Hzf^mO!91e14=R9 z^>23BFnT~EM&D6Fvr?#J9#Z7$4%1u?I+P=I;g0(Z8(r}4KCQrhIGn`ALd#dc70*aDtm=TA!@J z`M{;Ma&{DxSU|vPuOjy7Ffj?Z#3s&cyuJ{bRsmADxz3Nn!i~q9=`4h?Y)D0nk%I~} zG)nO)eS*|~NM(@~&dNQ4iVpk-L4KlroQf4(MJ5?>ztanS|Ee-rl`K_&x6Y&lDm0N8#U}Ch{vO^nxQZ@*C diff --git a/doc/appendix.tex b/doc/appendix.tex index 1b9497b..584f976 100644 --- a/doc/appendix.tex +++ b/doc/appendix.tex @@ -508,7 +508,6 @@ nf3: ERROR while getting interface flags: No such device nico@nsg-System:~/projects/P4-NetFPGA/contrib-projects/sume-sdnet-switch/projects/minip4/simple_sume_switch/bitfiles$ \end{verbatim} % ---------------------------------------------------------------------- - \section{\label{chapterB:netpfga-kernelmodule}NetFPGA Kernel module} After a successful flash, loading the kernel module will enable nf devices to appear in the operating system. @@ -580,13 +579,15 @@ nico@nsg-System:~$ \end{verbatim} % ---------------------------------------------------------------------- - \section{\label{chapterB:netpfga-nftraffic}NetFPGA misses packets on nf*} While the nf devices appear in the operating system, packets emitted by the netpfga cannot be sniffed on the nf interfaces directly. Instead one has to sniff packets on a physical network card that is connected to the specific output port. +% ---------------------------------------------------------------------- +\section{\label{chapterB:netpfga-kernelmodule}NetFPGA Kernel module} + %--------------------------------------------------------------------------------------------------------- \chapter{\label{benchmark}Benchmark Logs} % ---------------------------------------------------------------------- diff --git a/doc/refs/refs.bib b/doc/refs/refs.bib index c6db87a..db09199 100644 --- a/doc/refs/refs.bib +++ b/doc/refs/refs.bib @@ -135,3 +135,10 @@ author = {Hendrik Züllig, Supervisor; Prof. Dr. Laurent Vanbever; Tutor: Tobias Bühler}, title = {P4-Programming on an FPGA, Semester Thesis SA-2019-02}, howpublished = {\url{https://gitlab.ethz.ch/nsg/student-projects/sa-2019-02_p4_programming_sume_netfpga/blob/master/SA-2019-02.pdf}}} + + +@Misc{wikipedia:_jumbo, + author = {Wikipedia}, + title = {Jumbo frame}, + howpublished = {\url{https://en.wikipedia.org/wiki/Jumbo_frame}}, + note = {Requested on 2019-08-15}}