All of lore.kernel.org
 help / color / mirror / Atom feed
* [Qemu-devel] [PULL 00/12] ppc-for-2.12 queue 20180108
@ 2018-01-08  5:53 David Gibson
  2018-01-08  5:53 ` [Qemu-devel] [PULL 01/12] target-ppc: optimize cmp translation David Gibson
                   ` (12 more replies)
  0 siblings, 13 replies; 29+ messages in thread
From: David Gibson @ 2018-01-08  5:53 UTC (permalink / raw)
  To: peter.maydell; +Cc: surajjs, groug, mdroth, qemu-ppc, qemu-devel, David Gibson

The following changes since commit 281f327487c9c9b1599f93c589a408bbf4a651b8:

  Merge remote-tracking branch 'remotes/vivier/tags/m68k-for-2.12-pull-request' into staging (2017-12-22 00:11:36 +0000)

are available in the Git repository at:

  git://github.com/dgibson/qemu.git tags/ppc-for-2.12-20180108

for you to fetch changes up to 9f173585d3f35345b2facce50620ce2cdda05f2f:

  spapr: Correct compatibility mode setting for hotplugged CPUs (2018-01-08 13:33:17 +1100)

----------------------------------------------------------------
ppc patch queue 2018-01-08

This pull requests supersedes both ppc-for-2.12-20180103 and
ppc-for-2.12-20171219.  We've discovered that some substantial
extensions to the proposed capabilities infrastructure will be
valuable, amongst other things for managing/advertising workarounds
for the dreaded Meltdown/Spectre bugs.

Although that could be done as follow on changes, since the caps
infrastructure hasn't been merged yet, we might as well pull it out
while we rework, and just merge the unrelated bugfixes.

The last two pull requests apparently had problems on some arm32
systems.  I haven't been able to reproduce those, so I have no idea
which patch is causing them.  If we get lucky and it was one of the
patches I've removed from this series, this may also serve to unjam
the other fixes.

Higlights from this series:
  * SLOF update
  * Significant TCG speedup from Paolo
  * Several new devices for embedded platforms
  * Fix to correctly set compatiblity mode for hotplugged CPUs
  * dtc compile fix for older MacOS versions

----------------------------------------------------------------
Alexey Kardashevskiy (1):
      pseries: Update SLOF firmware image to qemu-slof-20171214

BALATON Zoltan (4):
      sm501: Add panel hardware cursor registers also to read function
      sm501: Add some more unimplemented registers
      ppc4xx_i2c: Implement basic I2C functions
      hw/ide: Emulate SiI3112 SATA controller

Cédric Le Goater (2):
      ppc/pnv: change powernv_ prefix to pnv_ for overall naming consistency
      target/ppc: more use of the PPC_*() macros

David Gibson (1):
      spapr: Correct compatibility mode setting for hotplugged CPUs

Greg Kurz (1):
      spapr_pci: use warn_report()

John Arbuckle (1):
      Update dtc to fix compilation problem on Mac OS 10.6

Thomas Huth (1):
      hw/ppc: Remove the deprecated spapr-pci-vfio-host-bridge device

pbonzini@redhat.com (1):
      target-ppc: optimize cmp translation

 MAINTAINERS                        |   6 +
 default-configs/ppcemb-softmmu.mak |   1 +
 dtc                                |   2 +-
 hw/display/sm501.c                 |  30 +++
 hw/i2c/ppc4xx_i2c.c                | 198 +++++++++++++++++---
 hw/ide/Makefile.objs               |   1 +
 hw/ide/sii3112.c                   | 368 +++++++++++++++++++++++++++++++++++++
 hw/ide/trace-events                |   5 +
 hw/ppc/pnv.c                       |  94 +++++-----
 hw/ppc/pnv_bmc.c                   |   2 +-
 hw/ppc/pnv_core.c                  |   8 +-
 hw/ppc/pnv_lpc.c                   |  16 +-
 hw/ppc/pnv_psi.c                   |   4 +-
 hw/ppc/pnv_xscom.c                 |  10 +-
 hw/ppc/spapr.c                     |   2 +-
 hw/ppc/spapr_pci.c                 |   6 +-
 hw/ppc/spapr_pci_vfio.c            |  47 -----
 hw/ppc/spapr_rtas.c                |   9 +
 include/hw/i2c/ppc4xx_i2c.h        |   3 +
 include/hw/ppc/pnv.h               |  10 +-
 include/hw/ppc/pnv_xscom.h         |   4 +-
 pc-bios/README                     |   2 +-
 pc-bios/slof.bin                   | Bin 905200 -> 913880 bytes
 qemu-doc.texi                      |   5 -
 roms/SLOF                          |   2 +-
 scripts/device-crash-test          |   1 -
 target/ppc/cpu.h                   |  56 +++---
 target/ppc/int_helper.c            |   2 +-
 target/ppc/translate.c             |  29 ++-
 29 files changed, 717 insertions(+), 206 deletions(-)
 create mode 100644 hw/ide/sii3112.c

^ permalink raw reply	[flat|nested] 29+ messages in thread

* [Qemu-devel] [PULL 01/12] target-ppc: optimize cmp translation
  2018-01-08  5:53 [Qemu-devel] [PULL 00/12] ppc-for-2.12 queue 20180108 David Gibson
@ 2018-01-08  5:53 ` David Gibson
  2018-01-18 16:36   ` Paolo Bonzini
  2018-01-08  5:53 ` [Qemu-devel] [PULL 02/12] pseries: Update SLOF firmware image to qemu-slof-20171214 David Gibson
                   ` (11 subsequent siblings)
  12 siblings, 1 reply; 29+ messages in thread
From: David Gibson @ 2018-01-08  5:53 UTC (permalink / raw)
  To: peter.maydell
  Cc: surajjs, groug, mdroth, qemu-ppc, qemu-devel, pbonzini, David Gibson

From: "pbonzini@redhat.com" <pbonzini@redhat.com>

We know that only one bit (in addition to SO) is going to be set in
the condition register, so do two movconds instead of three setconds,
three shifts and two ORs.

For ppc64-linux-user, the code size reduction is around 5% and the
performance improvement slightly less than 10%.  For softmmu, the
improvement is around 5%.

Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
Signed-off-by: David Gibson <david@gibson.dropbear.id.au>
---
 target/ppc/translate.c | 29 ++++++++++++-----------------
 1 file changed, 12 insertions(+), 17 deletions(-)

diff --git a/target/ppc/translate.c b/target/ppc/translate.c
index 4075fc8589..8a6bd329d0 100644
--- a/target/ppc/translate.c
+++ b/target/ppc/translate.c
@@ -605,27 +605,22 @@ static opc_handler_t invalid_handler = {
 static inline void gen_op_cmp(TCGv arg0, TCGv arg1, int s, int crf)
 {
     TCGv t0 = tcg_temp_new();
-    TCGv_i32 t1 = tcg_temp_new_i32();
-
-    tcg_gen_trunc_tl_i32(cpu_crf[crf], cpu_so);
-
-    tcg_gen_setcond_tl((s ? TCG_COND_LT: TCG_COND_LTU), t0, arg0, arg1);
-    tcg_gen_trunc_tl_i32(t1, t0);
-    tcg_gen_shli_i32(t1, t1, CRF_LT_BIT);
-    tcg_gen_or_i32(cpu_crf[crf], cpu_crf[crf], t1);
+    TCGv t1 = tcg_temp_new();
+    TCGv_i32 t = tcg_temp_new_i32();
 
-    tcg_gen_setcond_tl((s ? TCG_COND_GT: TCG_COND_GTU), t0, arg0, arg1);
-    tcg_gen_trunc_tl_i32(t1, t0);
-    tcg_gen_shli_i32(t1, t1, CRF_GT_BIT);
-    tcg_gen_or_i32(cpu_crf[crf], cpu_crf[crf], t1);
+    tcg_gen_movi_tl(t0, CRF_EQ);
+    tcg_gen_movi_tl(t1, CRF_LT);
+    tcg_gen_movcond_tl((s ? TCG_COND_LT : TCG_COND_LTU), t0, arg0, arg1, t1, t0);
+    tcg_gen_movi_tl(t1, CRF_GT);
+    tcg_gen_movcond_tl((s ? TCG_COND_GT : TCG_COND_GTU), t0, arg0, arg1, t1, t0);
 
-    tcg_gen_setcond_tl(TCG_COND_EQ, t0, arg0, arg1);
-    tcg_gen_trunc_tl_i32(t1, t0);
-    tcg_gen_shli_i32(t1, t1, CRF_EQ_BIT);
-    tcg_gen_or_i32(cpu_crf[crf], cpu_crf[crf], t1);
+    tcg_gen_trunc_tl_i32(t, t0);
+    tcg_gen_trunc_tl_i32(cpu_crf[crf], cpu_so);
+    tcg_gen_or_i32(cpu_crf[crf], cpu_crf[crf], t);
 
     tcg_temp_free(t0);
-    tcg_temp_free_i32(t1);
+    tcg_temp_free(t1);
+    tcg_temp_free_i32(t);
 }
 
 static inline void gen_op_cmpi(TCGv arg0, target_ulong arg1, int s, int crf)
-- 
2.14.3

^ permalink raw reply related	[flat|nested] 29+ messages in thread

* [Qemu-devel] [PULL 02/12] pseries: Update SLOF firmware image to qemu-slof-20171214
  2018-01-08  5:53 [Qemu-devel] [PULL 00/12] ppc-for-2.12 queue 20180108 David Gibson
  2018-01-08  5:53 ` [Qemu-devel] [PULL 01/12] target-ppc: optimize cmp translation David Gibson
@ 2018-01-08  5:53 ` David Gibson
  2018-01-08  5:53 ` [Qemu-devel] [PULL 03/12] sm501: Add panel hardware cursor registers also to read function David Gibson
                   ` (10 subsequent siblings)
  12 siblings, 0 replies; 29+ messages in thread
From: David Gibson @ 2018-01-08  5:53 UTC (permalink / raw)
  To: peter.maydell
  Cc: surajjs, groug, mdroth, qemu-ppc, qemu-devel,
	Alexey Kardashevskiy, David Gibson

From: Alexey Kardashevskiy <aik@ozlabs.ru>

The main changes are:
- able to handle more devices with specified bootindex;
- implements flatten device tree rendering, for both QEMU and guest kernel.

The full list is:
  > boot: use a temporary bootdev-buf
  > boot: do not concatenate bootdev
  > libvirtio: Mark struct virtio_scsi_req_cmd as packed
  > fdt: Implement "fdt-fetch" method for client interface
  > rtas: Store RTAS address and entry in the device tree
  > board-qemu: Fix slof-build-id length
  > fdt: Pass the resulting device tree to QEMU
  > fdt: Fix version and add a word for FDT header size
  > tree: Rework set-chosen-cpu and store /chosen ihandle and phandle
  > node: Add some documentation
  > Revert various SLOF-to-QEMU private hypercalls
  > Use input-device and output-device
  > netboot: Create bootp-response when bootp is used
  > libnet/ipv6: assign times_asked value directly
  > usb-xhci: Reset ERSTSZ together with ERSTBA
  > virtio-net: rework the driver to support multiple open
  > board-qemu: add private hcall to inform host on "phandle" update

Signed-off-by: Alexey Kardashevskiy <aik@ozlabs.ru>
Signed-off-by: David Gibson <david@gibson.dropbear.id.au>
---
 pc-bios/README   |   2 +-
 pc-bios/slof.bin | Bin 905200 -> 913880 bytes
 roms/SLOF        |   2 +-
 3 files changed, 2 insertions(+), 2 deletions(-)

diff --git a/pc-bios/README b/pc-bios/README
index 25fc6ce63f..a843e1e8b1 100644
--- a/pc-bios/README
+++ b/pc-bios/README
@@ -17,7 +17,7 @@
 - SLOF (Slimline Open Firmware) is a free IEEE 1275 Open Firmware
   implementation for certain IBM POWER hardware.  The sources are at
   https://github.com/aik/SLOF, and the image currently in qemu is
-  built from git tag qemu-slof-20170724.
+  built from git tag qemu-slof-20171214.
 
 - sgabios (the Serial Graphics Adapter option ROM) provides a means for
   legacy x86 software to communicate with an attached serial console as
diff --git a/pc-bios/slof.bin b/pc-bios/slof.bin
index 6bb48d40a0929bc9d1e2846a97a91f96d321d60c..d46c83efb706e4664fec834234ba69d96ede3473 100644
GIT binary patch
delta 225096
zcmbTf3s{uZ7C-#%J%A%AfuZ3IM^pqv!D|BpIGE_jSm7P-BVN)@o~Z0JCO89XfoVZr
zHY)0%fLNwjdN9+%E{17EWo74-;iVIFIpOJsH|G1T{m#J5)c^l{-{<qt`>wUuUVH7e
z*IIk+%R4pizURV~dx}Q!YZr?3BmBCA-K8zg4)r_R)m$j-XFGS>6vvE*FYXx~yktRw
ze(3OF@e777j!zh+U-W8`@d($CUA#~?RIeKrKlC2m(BX;k`o#G7&VjmdGj!7zKlb>t
zNB*u$);+jv#o#~H&bjxKHv|7@QRrXCKWas$hTYG9sTEZkHY%{Zm&Cs^R4*DeZ0i7{
z(qdDT(G5W*3!Rgcmfi9_Y@xHS((;Xbzk8vxS?u*=gMy|M=^ct<QtTs53geslGKa|V
zXMrqUJmb%t%qE@*V0}7HHRkltR5p&8Dh>s(yV?Ew-V0#=|2rd`TJ|JgGE)RU%ygop
zBkRGJ^d+FbxX_VxVW-6p9ocwxMhp*R0|CtrWcLpHTuIuatkYLa57t{0mYk*dC0z#m
z-E?g-civ9WhG$ry1pPM}rRZ;G6n*|atEdlT;mP~5ubV#%yWa6bZSokUA|c%xoX}UX
z+V*D{jipLxa)jcS7yY3wu24}@cQMQ3W`(EbE4_eUmk>Q&47!8$Vbg{A4i?24#fm%F
z5<vgHgFPNJT}$m5oZ4VRL`9>R(}_ilJYFJY$hS9}xZx7LC+HyS7{#wR=0ly?*=kSb
z;H#Y;+yog^`Dch%JF(#%rw0S{*MIlB_}LR2=K-R#OFh6p6L)AYb>7y0ceexsrw5ZD
zjh9DhMRO-MtQ`)Pu-Y;yQhXG|?r8%b^Z?P+J>Fn|c>Yc{9J+WLkIvJzjb)0})i<FD
zW(!fWJD3d%P`gX-_W<>U`nWShLU;@n)(|!XCHq3y3_P46lIh>Nupxn|?HmE$!>3Dm
zL&dQ!ETRo)?!v-R@6Nl}XgnUciw(l#c_Zs8itb{O7$j1(Tj?S=l<DtEdJATAS{(wn
z$ajXa(Vaa<WxALh$_!8j8Aw9(=VG@CVvzjw-+eBwgtB`=rfXd$NL2m_(RYhMUD@~$
z4CNjSWyRf!t0}RjtID3b<T9*}x-tVqoqsnQAmY2pPCU?!-RnjjQ&A`$C|bL*UMhZ|
z7<0G#-9<W3yx)czD1yS=#RJ9UFs4Jb$HSyb9~cjvoCsr)Kwa@b#depdDc#$tN>$X`
z9;i+|B$X$xoE|I!ymt41r%o5&^<WR+fpO?7GJCR7cz?bpn~%rOJ=ttL(76F3yBCYW
z`;J~L4v(|FWSyS9r3E!XIc|N;?k!7R>doS{N8Dp{1$3x&cQ_ltGQ`Ai7D2YE4yJfA
zoEZn`8()N>Kjdu5?O<%l)kbCHeAgq?w$BJpAATVr-PwG7oT7+~aMnHGvJ4&KX1E-M
zd-_O$9#kKq59^19U`5@;$9>qC5Jy~<;%D5&8`P*Ve5vTKV~K2f&3qkO!E{H+zha{m
zb~HfY3DHicG2i(soV{iA9%Y^3<aF^%Ult#dR8XKO1^X1mwoYeEEsggRBO+L2mw3O8
z2)rBiDa^J$%9y${?woiyf(=9ayCbAfA4RbEj&szOhx!R^KdIc&{a8jw|3Ui|ZrnL!
zV%&a`Puod2`oZVa2r24g5LX{86B)x<sIZS<0pNLOf7XXTxLCyZXWamf@6QZf9~?>Y
z+s<ez@3;Hu+%k*)P_spx>(6?04;~;Xs*8*{k8igccR8<OO#BkGzY8b$flr?SY&c)M
zSOmvPwtpMIdh*3-UM;J*WKlanl6*0M8G0|;>2A3t*V#<1lM%SbJ1&w9?7C>Cn}muH
zN!KN$PZ!_B!I+97SwQziuer;?qQ#TuP$V;SU-+&^v24NJKg~dCmh%Uq1095IARCzc
zyJGWy+p4!K$`4J7HX&NkUPtiw0W+qF2TpJ^l41hy5|hF<B7zLt(H-0Z9vaLB3u6@P
z)^+|9o)z7#KcB+7i{=L~FeOo#Ps>F$XraiD2EpdOj$&gl+32EWWPBi+J<vOAsGAGA
z+2E_GpVL@GH^p+)P2;Hsa2(BNed!*W(J?T91<`H;cru0=xaGRL^emNHcFI!B6Eqr_
zY_%ezKa0KFq*xyHYJtnCOgu1%8G2aydKS?;Y%;*OE3%hx3}R7ozH=!jc=g_wFgKHR
z&U?AtMku5M87h)uSzzx48{Pa`auscx&RygGd;;sCQ5HVowx&Zv*`V$V7qnOLHU*eV
zxVRq6x<}4y@}QCSK(PBy6}f*7iA<By{K1%Z9_cC^6Xf7vQ19hS+LZOc2w3@}6(S>^
z^#HLt2#@=_8<2w#p=J@QhOqJ7AG_`@!WcGs7XMooZ~H$L!veaBj5s!gTbB!aoQ%Y3
zYb&q0>v#@1x_eLWr`iN*^DQ!3mjb2iwx7IZ&ui1U54Uh}DxRfv&uI%3V0nRP+~(Y8
zDC{N=7C%%5Csnw0ll~9Fh4;)=l<R>=j(R(r8&5i0>Ai8Mv)QDq`_`>&8naRVN4kPP
z`L&$qJ$twQ1Ml8#yw6J<t{N{QS9kHwFc!`?PI7yJRL=9g+f5UrD{;l^2p7rE&K0G@
zSznEEF@atpc;9KFcDS?=>bgeRQ|Jxv?d`>TU*Vs5@4NPA+^-$IaB(9sxi9cSNwI#5
z{xfdh;XmW5mbv|<%^|v%cXVsTZ6@vnMOvMH6dT9)9u@XcvUku{S8)LET@Amv>v`G=
zg3VyzxQBJ=niTC--mdN5B6|?))Te40=Ep`_co@F)qI3;mJ10YhS9v?9aPjRutZP?8
z+a%&C$(?#Oh#L|_lAeu<Fih}d;WAn^1>fUz>MNF)h|PKoqv0oUOwWb{xe~#*P<9$+
zzXHdT%BU<#OiaMy2#IO}#^O;g9ZS@8FBIZbPd>nVWC_<jvdJwG!kgmhN|=zk3R5Br
z;{8sFhD4bdO56s*_22J>t0&xmEpD7Mk@e$|d2aAt0~^SrI*Nx4tS9?%Ym&^pUNx{d
z9`mS*w7ZallGp<ggU^smi1`JLmlS(bGD7%^ielUqT1~k@!UW6%*(r$6OGjh;htG9)
zz*BfkYdyqINo)X*yDmbLWrL%W*+PELeo>yx61xr`{8!Z^Nus~VOi>fZ6l4>FuZwq5
zB!iz*n3>=6s7M;k#&nJLYBwcIS(o_ubg^kPNQS>G8b-sBf1bP5C}Sj~8BSfDW0d(6
z^0}cMe64$s{`Z#sh(0Hs|82n%5K*Y1WtpPntnF~55kbzxCbyZNJLtJ%===<r*y6rI
zHw;SIkjlF7rZ%@nw%t>Fl8O`xp(CC36ES007`=~2xS2CXX3n-TGWV3EpO2BbIz)^R
z-S1`H-J}!mm2*qn1h80tZ##<<DqhlG_n?m*E9oVE*;v*Ud~9Q7GYCxmx+b*EF`mBS
zjs`)ZPa3;}C-(M?!8C8G1>FtH-Gk?j74G<tA?hafr?HSOMoB})6Wb3f>iob4aSkC7
za!3KjPII%60=S%6YAAhNd-rn2$!<VH{lxJ$d{6P;aZ*ipj#pQE<K@x=F|hj}v$J-i
zo3-1eOiKIIPG#<a`)E8e!vSq!$K4qZ(+C%-CN`k^fZTSL>WuAL?+KfUt#Xf1=mhr|
z(Gu6K%<f#**+Y*5`oNr8Op4CK@x7B2M7(g(J)QOK8j<R5)<;RSV3ZbAo-UhwGu>@L
z-9@NbmBQSPTC1XVd!T+*QFl&kr&=^o)wKueyo&nS12y(ONj3jIS#igGaslsp+;P8L
zn2o-l-P>(&N0Pm1t~&lL50MSLfjyr4r477(zq*ch=Xo8mhLja3!nhN?wqYWLOn88e
z>>A`1HQeRW|5C7`ctFlg@OGI}596bkiT)Y1J`<9}P+YSigXOcp-xag-ldlqt3KPc3
zSU@CCW<v&KG^Hup+~~=nX6M;Oa*YVH!Fx6JBR4t%_;c~1Xfl=wT2Vcj^@x1!$6Wt=
ztxbWFtS-01<WSpwT4FkD<FLBRjZO?r-St|XXr2rsEfDcjSiixGh}nkk6;|4$urZ3W
z#q4}7qrK+2%^o%N!afBHKQuOlb>qjHMcowEr+a;FV4|y?4_n%)j~&}OmBob=#J#F0
z-$y$eZx%WmQ+FM+3gc8%%G~g%!c43|E(~(Ads;U<CgBQUoyulmf9=z$h?_mO2;DRm
z5!6Fw_XRem)1>rREHb9Cag+1HppCI4z5CDXJhC8XcXNi`fz39H;%{hG7;yL5)?Bfg
z*q2*~&bID~HD^&zT07i<vY}W~1=_CMMEQl0qH!8x^q13wb~+0m_UgBW%XvE6JHJ@n
z{LIc*KUQhK>@InId((s0t4BrVbau~zTq2=juslUist#6Bu4etgW+vezYlsPWf=h&A
zqPKao9W0x-%PwKWU+pcLr!zCF7fCZ%WXx$L=U>CEH}jkgH%~d64GoIMq9{sPM81)p
zO=I%WQ9OBmyx1^<-9IK@YkT__^!AIDgtxu>i$@P$>FV9oEB-k-Jy)jYvlT?!$EJko
z^YbjCS0)UuNF-&lezuqO3zTfbTY0r6_PI>>i9>rw4{wwmU3-P}jgB79Ra^i3UE=87
z`r!rMtskBgx0mL4<(LmX!42oEj*tThtsEX;d#A$@6a?tkI&b8xi3qjb`za0j;H@*+
zz5ewk_VZC;n#snD%G2Xr&ID$sQ;w6N0m)QW-csP@6ac)1#B<?GfQKi~#Qc9+yf=%*
zPH3`Sz1e0IL}_*&`mAx6q9wr$m-9_(XAhlHNA)u`jI@txPtaH7EbMSZ80WJvVV}nQ
zM8PbU;^yD|FZla|f3P?IgV$94=MzW<532$HgP-~E&zy}tg$!|IHjC-@sXBL5{NNsY
zs?c5hI-4!CmBCSANI5(ES#Mr)w$M=Kyg5kfNvfUP>aF~xElde+>Fa#d?0i{eR{leq
zMu1x;C6b2r$;<NH%g|n)AaNdAM4gd@o7nC=pFBYbs8cd-x2cyq6JG85C+a$`UA6G(
z13yu@zOPawg1<smoN<X`_1<3-keFXUwOpd-nb^nQN>1Lj^JHxYIN04TcVM}2%wao5
zmbf+GW?^=|bW*aA0pw#Q-@Vwqv{PiyWz)G;5y5jY)(vwpAy~y9bJ+^<w=8zos24Z3
zGx+G^KQnl7IpJi(cDFn)&LpNdkeJ8%rB=5K^P<13?-jB3ORrS5^^sJuhoL}Q`#%=O
zS9q*gI-lJo{<aVj?N<j>cIiVIz<g@V{j)^-CwNFy-!4(rZ-17k>XO8%{0GQ)FO^lD
zQYErl*o%B$lW17Ly4}A|ss_f;;2n_nz1Gg`-0eRz+qaEy-s;=8jv9y;#}=?i(VB%V
zwr>}(ki>mmi4;vVdpA+3vX%0lOC=g_eN=ue;<H$y*uI#Bj;iz+&a;0poRxnuoR#k3
z%wk>A*GMO)0Mf3-%FeP?DZ$xEf0m%)C&GDmvf@kEh)AZoKU;2vhotZSg`^dKA!&tM
z(uJ5O*Tjpk#aIQsFYaB;(#7&ctoxWX#&)U8)fvXi8p{{A_vFm}Klh|OO&yx0i&*%W
zH5u*9_BKgkFJ^l`^I+Ef&&;qlAji32F}rJm<<A<}D-Bt7jk>bGsGm$YZ?*1?R@JIq
z!eaQIFQsuN?vY+%xV*;dZ8>|?9?EfhPmYm?<sjx_D<*pl(`)s6))bhXzm|yV)4Y3!
zJ!?t;SVeFk3*8i-?k`R*VSn#hg<NSc$s=XTT5|z#Z()3pjqccJ$lBg$$lu&73LeBx
z!8eD+fd|>-m~UkFFqy4Y^Pg|-qpE=AY_88*8)ahOBoIy%9j7?Cls(Vx6AeqTqwwC&
zn&4&Zzr4%Z_}sBm+#$2r#QuFBorMlz)|$}|vo8Yq@vfWfQ+sRJYfo%)OfBj}+`t(V
z??;8NCQXawTc2Y8;r~qAl#$t8!;bFX^l;{8H_<T@JNw$EPBVWLML8@YU|pCYe{IXF
zx><KK|5p8X#r3Zy%}!t%R(D@bu#LUJ`00%`^>&udr>`@$+r_#HYSLTn>xv~#s{KXP
zM!W*dx<{$pdtBGet-(+vYWRz+=D^eJbI$U`nnIkl<cocUNO$sU-YdlVjv+@}k8|H-
z5&SHc8UFN$64}pUpL|PA0X@2IB<4A}GH<GdACE9QKVK$}Y+!Mdq_VSDD^8r^mQo^Q
z`=-MY6!)bnQx^uL#H~>};s~Q&Z&NhDca->?fE2)fX6I+uCA><)TC?+flNhlP$8t!S
zH?oW2pT0}QMY+n-#ylmP&UgscXRWiC*s-RX70<CpI<T4I>J~PNZ!Z?Twz3EP?Iu?J
znJCzbqwdTz?5?!D#zjgPrCq7Jl-Rufindpw(q(0IpZ*Ea!J3uPepmHtgEiK*ephqW
zrX%aBlZFpX#?xe}deXL+$wQ)Qs<yJznl9?8GbMWZ{B_8}4s;gw?MUd|r_t*iCic?T
zHPzeMo0^V|5Vpm{sum0DE}YMethum@9b_p#9hDtH3pr2pv{EZ(=YOTYQmZ*nx^Ze&
zCvjFct~pw~<6r}mDzP%FERHIPl84@0skAOU7Ev5i65F!0B!0$BZIT@q5pXnGnVaxQ
zsJ;OwUePaY)z>2Bswfcy%dlCpK+Gw_n!dXzFN2f){F|sNV~<7te2HYkl4&MA^$YJR
zu-X(I7ACz2&Qbghpe$Kf_OMYgPb0%DPnC4|4`}))W#N2gp-V?tnCSDLHk#Pp4@B)A
zHgDR~TF`fQ)5CE~>7D+lGY>AaD+%c(Q8_thKH0lV;W+cD%+*bcP1Z4GM*7$x=xpqa
z38z!2qq)&j=uD_GL0cjo-^+56WhjuE`Uf=C?<_R>gS1YGBP~nZkN(tJo0e7FDG^)F
zo+L$-LlHkh5#{VL{^KQ)RKY$Ct&~d<R~AVbWL`{(=vN6(DiPx=*&^uiKqV~CWKw#i
ziLiZaRY!+9?7LG%=|1*&=gLOpmOr2-hDYC)HTemB73-s|rf%e+8}qB!=D}Z*csVxm
zHDw~b%fvbBX@r)Y9}sNMV^MO&q3Grc-F`&2aO|D$XFa=K0LgN1l0LVEeLseHv8db6
z`gCnJvC?Zk6nVrXN@na@tbA}PFyOX`f01>Id<KJ6Dg%!_Pia=$?9<n$dPsZqPNY?p
zML($WMfO128KOoApdML=zzMN#e~0p3!t1l1(VN%~>Ekek5w<sfz@Rx}sZ8zlGdh%4
z2>nYeKjm_stYcSr&SMzNh5rWa71>=h%caXm+*S9W^PH#LbXR{9EiWOg3>QfUu-Km@
z9zK9Q6l}a5U{7|G27%Q=uF$=V9N^$wVSJhG;a9#CS6_xTTsbPV2iY)wB~K(BWM>m3
zxoa6$hd9CXd5S~z;BV!O?kYQgGLEurSJ?-`c!=!@d?rIRjjh+jkB3;<-B_5&Mak-(
z)*F|c$8ItwMc4*W+lhzSupAkRWrSp_+Js+l+#B+mi<0P6f{RBhol<vcR-mbDnlM&h
zdEIJaww0tQdN(`&(^+cG0d4PA>?-ccb;7A)YG?t#P*&|K``V){ItQv{YQeXQso;k`
zN)W=0rns+?9d}H|)FdoR>P5x}e1r|u8W**U^Le9{V7lppvwS^j1(J`GjSvkyA<69g
zR$3#r0xR>POOg_z{l8z?PalN^k7_tD7)(3X7MoI(x{Hq(4LXAn32m*y3=qeVP?Ch0
zBQM+lv?)KlsTA42#J;jkDM9oLw$&j>WB<Ug%jq;+RQQZizm$YX|L=1a{wp*$`s2@6
zMk_ko$@EYg){SQ8H?oUOqfz%Y_!;W!S1G{>3Ut?ip{zx{Wj#W3D!#`wp=KG>!Gu`~
zTV=Yle8~Dvik*5329DHS;@~Un?mn|R95Jj?bTcmcrMy~*O9NY-85BUNUekQVAsSy{
zy=?$;qm>cUqQ6|d4A&a)UOz3`FB>P~b|N|)qj0w-0auj)#@#78T&zU2H0J7N!~$QR
zfG7!CB>@^D4I933Iw4E_;R&dZ@mdhA_~rKRaD>JVuA@e6J4QzxvWsO<p}asvR%P?U
z(L5}}5au?3?}k!&T!|833+r&CbhW}Tt$)=%_(?8Pv94Wn)v{L6VQ@c|HOT9CDI;J2
zos!;y0l+1s0Ys7kT#@!^cHTZfw1@}=CicR9dMA;I4r1He#l9>vKyoP<QiIv~;s-=)
zXi!9lJ9&_p`2io4L9LKN4o8+4(JJ=KT8luvM(yXNpQwfh2gwl}D32_nGDu-DvEtw8
z-R!)zLIfXW{iA3L!JVWbHtR4XomAsiVo4U&&G%oUl~XU9;Tu?wU9nTtG&?V)5ii&K
zHhPC#N>aX3X<u8C)Clt?o$J^7e{Wq&=D&Z7n})oW>R~LD>!Xz-v$H{Zx7%w~o(<A+
zA^#$<rhj5a2i{Gb9L%-i+smxGjsF-|PTtC|=FL}v8=Xp3&W?Uo!*2NJdTgzYSGaK(
z%OpQ6i!L$R)|-qgV-y|e7v=R)3UKaFx#na^lC?t7<;L8*H8(o-^W5l+3}jKJ+=1z#
zYtATs_GP%kk%A=SWLSpn%)MJ}JEM%NPQtw|rhaa-T{LB^x(J3l`NJ5Ql2vCSujZ^b
z#gN}oBsZ~@CoK@0%$zcorap?p?o<lO(n^e^<FY8+^hsCPVZbo`Bhw<s4w)8nIwd!K
zxK)4A>6|vfFJ<aQz!MBxr@lLOi0$GaEBRb*dcx<q>86a#mFbFZW%`}vxu(gXufDJN
zNhgFR;A4y$gTJMaCXgeB5@TwBm=oi}Xq=WC7*3eOzuqN5ZF{jZ*B1_49mD(E+<Kd4
zLd|igsYT5|zm#@8GR6LlQecHXT$6oLZp?7#aj2Ib^|)6AiL|-K*w|d%#8~QbZj>p*
z_Wtm#w!%iE3|AM2er~&%A=PQzsa$|G1IS{lP3$@83o^F!fsWsgyh^&uDaeRP-PM{S
zeyw2xX3z%NRf9|ER_T2IZ<KD_)jE}wYk;yn6-#=Bdp#_Y>bT4yv=gCD*>-NS*-CB0
zD!q2J^%kcSRTkx(90bpBLYeX(v-_)wV2+ko${7(kkf<KQd(kX7DK(${s+utSF>W0q
z@rgm!oNX{+n-ZM5la){>RBvQCqsL&Hm{l@{EXiI`l0*ZiZk_%^#yE=X6c~x$UR>#-
zL7%bzbjpk>3|;iS)@jLpDR7fxGv3gWZ`$f?X`j+vxk~%#k|f(1Ii)b$#VK2D7bjsX
zRMVdEFTa#k7bCAG^iWvN!vBR%)B2@g$_X|*zmTR4Ms?J%YdTR@Jq_O&aMnt+ppiiV
zCVve6MpHw5Zn9x(Tmc<$*kHrajc_({NJt7Jn=zh@%wV0?!!KoJG|W0CJ@nNHF0+Ov
z3@2gMU^3$*%o;ZES3P|7MPyBwi=Z8*W>a50VZl&HQ}3%(%apaRv+f5ma~bO+>JPC_
zI+tcAV*Cn-mi}OS4JP*Nm-N1=d2zf}9bo4QVZ6%wixIE0o*^5l5KFknY<p><{daF+
z0h%$9^E&I(mr<!}g_cS0^rz1+0Bc%1t-mHt5OsyP@H!hZ?q4!4kH&CNOf+09$t0$f
z{g|B>UZbjNX5-A!TR0qckBq%Ee1y+ghIC>{$x<=#1Qxp;#o80h>|fbrDzVDBSX?{7
zdS{hbY0i}~B3WITG^Llwxm}%mT`?kxVg$?uF+yfG4kS{$6g`P^IHm;KA788^aVT*!
z=C_)pqGkU-$rafr*}dJ*P%*MSnxXp3_pE|26DznR&YfiUbe4f$omMV<AcEguSt%b$
zJ0VUvE8WR$y=+C|XpJb7;EyLsc0|{f1b@<5RKJ0J+fUXB?VD^##3#8#V|MP43iVj$
zg;CFe|5_Bi$>s$Wm`v<xsaQn3YEjgT%j((Fc_*Q-Ws##E*-2dT=0Q&p2;9*nc2c$e
zbV;V1Svo4@UX9Z_ATkDy9YQYYs3<8An`_xWhCL!v3c^u+9QIZ=epg~G8&Fap>vo{)
zoe27XT^XW9B%NY${*{jJz#{t;n?CIC(q{iZv1mEPreMg^G2|I<VfpkCZh5`M=0_9i
z|2oJ?SrC39TGqbJbUG5LWm!qBd={3}$>;u(digw4a$%EYL1+e5X<S%RuXpI=n$wj)
zVAttkIcl!*3+{5@my<q;NkVi<1KAbCs)y#YuTQ|dZtsX4_xOjIUz9se(uC5aRpp>6
zqc1C!lvy;cEvYv+OKSi54jaeVLt^~9xZk-<Mto|4(lC8i!BP{;6KmeZQF4KMOAH4f
zx3>`&)NT-8y~`d-R`0ClSbmPBd;?jwf(XNJ;%Q<Jb|-e^e>sa`elTzoTlSg6f!4&9
zh&88Ke<(b<<bpVGnhn$z<T&n+rGkH-W@6NmjzmlA!^YK0u!$|cPH<ida0_pQ>K7_^
z+18kFQ<vGz&YK^!$yN0pdm78yxH<%o#e=DeZPC9yM0l`?aA1i=>|*gq9RkQA@hnj<
zl4+?AwHl$M0E@)gI(EQc>R;rXVLx=QG=!BjP+CnaX_acgi(yPbQH}k5##xW72~?m)
zFlSC<OPep$i_)`fG8+E*EbAq0u3iM6W2+M_Ke=llHNHT}pnIfm-a-@Dl|Tf#)9n0X
z0Nv}r1?OzC2&uxlbIj=y?%W6LS(jqxe8`@6VVgf>JN#+*FNmU#aG}W}4t>OOT!r!V
z>~U9>s(LoxzY+noQFQtko8I%pJs&eYR>j#LvqvO(qqzDp`$$^?J83kr6*aGa!ZMjG
zX%=DU*?d1l=f}jV^DN4RtUAxO`xn9}9u?z1V^7N0Z1MJItVmm>GRdx){W&Y)+G8rX
zyyoTw_KY82y-eMMuKF4~w7Jtn$wjuBuU;&|zQI0B&H}OF8@83_ekuAlu!xile^MT1
zd<*i2Y<j0Z$|W&r)a$bfVMR;S0Ehy_*0D7E+i+rQcIK`WYa2*wj<qE%BJ>io`Bzq-
z!E4DS_OlDS;WB%RO%xAYVbAlN+oItL>((vjTWSLn_(V+PI_uiVt7hlQYogOtc9EHD
zez?jC*i6-spQNoDuB<M9Nha+eE2gTeD*)SJ)YzS(g@}nwSVnj{yeGVx22YqqIGWf<
zTs4-joFvZuhh64Rd?2d7!v=-*K2cB4!lk15JKVdNCk8dL*&Pd`&~t|g;PZ{_b^chH
znApTd-T&lF;s~Lu_4Z&WV})$BaX0K$t_YO=D67&t_)@d;N$E#`5vvGZkxX@6OQl+~
z^ND0p-^BLyZdipiE#+v%d5Si1b4_OAp28MnX?@Mk>?X1Kdp3(_Zxqenv(;?2c;p8*
zReQ`}q*yUaoc)2_#E$KIKeBynOwA)du`d{Zc%(4>j2-CCBKv3dhW~mD-*hp&nLXgY
zKAv8mX~rDA9vYh_zG!AqoeFYlr^f2@3yp-i;~KsjDKzS{)>{aC;2L|W+u!m?Zn;FV
zEAh00V0Qk!vk3klydhb{{g2(vmw#4c`X6@iScrJ|7u+#@5OV**V&)cRf>SN-p~*>+
z*hp4c>n|9-!c7e}`D=m`dnp|fBi1+4yZdj$F07RMJqs}>%gNGK-E71P`9~_(XKii<
zUiAExJ<cD#PZa%%?X`zT$|CGE+i=pXE>0irOE?Omu!(rHbJ<XF?pL;*KXg<q{f)iH
znnnEYtVdABqq3?+!JsT1DKdX&5iCKh`W^QXmwYW803)A;>K>4tXv}qw=Ys=eHM>$v
zEuiWE(fB)#AC_X*{SO@eEZQh6f3WAeE}Bbpa4z|&g+A+9%o6ttO$(dd^`4g{3x{0Y
zD*7DUB4+p0Jl=w10-gmwy$)d)yepz^;3De+q&YWOPygz~%g@${q8r#m!&UeLH!*{K
zb%TA#%;Ke+*mX@8{cd5bpGBZf7f;?|WBu%K4)NwKTqmr#Ab!0C*B_QgXEdS0aT{Yb
zEKU8At?@RShfkWux3XvGYI}VvoMORX(cH@3;2Xn4wUhN2Fz%X^*P_6j=N+Z@oYmx@
ze$_CKrQ~=fq%%J|*?2xXZHt~y=CiJC*}%u}IWKRi=iOrF%R!=K3wfH+?3^Q~ZFMhB
z^P|hefS(WZV!Rt0A_g-4B%h5@0N8!rV%fYyF-qTG<(?pih>sX|^5?Xop7U1%GNn_B
zX3j%JsfN?mWW9zTWMhQQkKgUT5o0+<?C|6F+BRmISn8L=6tlF<!Sz`i9l*UyINMmn
zIZPgU2f6y}j|oR^Pw~&}%)CS}>SaiL*2W8{CnrAIZMA9Sjt}}Wdz&n`D@HZ>%-pZm
zbCz2I!2k_rqoR1wpBtkpu@`=evNS9+820pTVNGfza{ANfZ)nhGJ*PJ@qxi_5@8~j1
z+ARW1rW%Z9<cXXB-orL4jmUx5K~0cg#xx1<#=%W{kTOEsD4W&YMH}X#jds!MJ!msj
z4a}6&Ecoix_NLz^T30}WMa+<Jg6P_T@9#3@Bo(^zV6$@yOsWH4&8G|&8CrgP+*B#N
zdJLvn>Kb~B**X2XtmjZHa*Qc2mq}2hs(uGn1$ITN#`5VO)MRwzfs9Y;E9M092%dor
z`amATGd>mv0(norA`>%+vw{4cY18B=um1LREA7Rte*0C7;52oV5iVBsgRamdaEE2{
zcEzGP_2g3oyN_$=-OxaT_8ct7AZFab*J_&q9W&v4|H>Ua3K6hVC;pWGb5_DU+lha{
zBK9rp%o&bD76tK0KJl8^5X2wqxRIEk+C9P<#Mh3f$D4Ex#EBe_W}1QTO)&8CBA(j(
z^I=r8=1y+l$MoXYJNc*a^>8VF<UW4bkt{H`{vijQ2FJvDNfY!qTD}A2;*VfHXw383
z=r^sJs47-YP6stcf0WW1E<a!7QO;3r_bIOyi$eIUfFhlVjkr!}2SP<KmNShZ=<I~A
zMQ|4$=Z}16#7d9CP92%{4t@Uf*u5`8pc)}ob>TY7vbHJ0(S=V*t!(<+Hf`KXa+7UN
zVLwHAG)9TQK4BOob_wa*b%imCGA+8pjcs@mj+RLUr?&;`uP7`b9c)J2#kb=i=A*l~
z!@n|d@^+nA5z2?~O*&B?%8#dP&ZK@MWNm6rL2bFpcww7zec3iGMS_$Fr805ocHR0(
zit^B8g>A<ZeK)!BHKkqocrEyXrlzqs$JfSKLG|Mgu}<RO{rE5J4)IZcJ|##$lUf;_
zkL<s6dz6SDz$*s?x`)|FWuAZf{2~(+Vlm;c_2vMc5rU+7dlbyw-nfj~zo$&hiR9+a
zl?4m81(V2y(c8kskw`v&WMyG`JBrpY7*QobyG^kbX3%~`SV9aozp!0LWd#o@x@}S0
zf@@3z`BMzHTi%Z1nK*sx70s6f4qHYdnVmynr_nrx4?Qf-Me||dL#6Wr{{)pwzs^;3
zF4_g6R}6oQ^%Bp=@O_bC{)ATd4Q@9>Z?dQ8S%Hc5l<eiw*I38(o4%UVQS2PVhw?bY
zhe3Q4k9$IBWBCJq7fh^2&Fol?$j&awU0`7v!h^aDTSv^1I_eRKqRh^?En?{q{wiZN
zz2bNP>k<DNm8ZU-gh^+oTtGT|e3?j!=d*a+I#CkO_wd+Mku;RYbZf03dhn8W^VGmL
zq)g-t<x3)mTz8epuy1z8b|e@MfdHrmK9kbwFHf^Y{4hR?-4@Rd<GXpxBoR9t#uj_3
zX3lV)!r0B49V2*-Mq8)PD$X#`m2^Fi;{y;1^*o#p#DTb;ztXM0v=-_b`5caE(7niS
zg+76A@`DF;5+5b-p8mz~v`#fYCvY3%y01mHfj{55<%ic5UEE1>7gj1dCGqL^_g_h}
zHrkw+mTCIxTPWe(PCIY~YC!KVV+3Hki)Jy=7@Rl~eWQiat+hYgMr!h=5+#fQJe2F-
z6bF-dd_=!*C9m8OwQ4=xZv^XeM`RdoDPg#qQn59e-_1^luw>qkEfYz}e8`Y~vUiQS
zBaC{x76R#1ORy-z%+B!ph=H1@jU-{`ijrhpz{15xZ71u~A!DtloAb#5#rb4DqhlpL
zYt-e9-5xJSq+m#Y{7Dq0@Oj;?B}*|J7)ra!&7?Fp3BS>NE8iYpQ#u+$GNyYm5sl7*
zOJYCAuxfj}wB^<6nLJ#jdeaWF|L#&e+nQ!9mX(Ly49(7_M@6SGd~#qh;;LT)@e<9y
zLDZ5l{2N^Nu-*&X!cljxvHU%3h+Q4a|HfVx8EO1M_O3XV#)o$-R`-L}H;G@<_~=Zj
z71dXi4UJnAZQ~PAxy(3vEGPDW(H|PZyK@OvQ`;YgHtql|PSjkqsgib88?AVD9Pj1t
zFe%P!;=niz!_J!ear`0PrHfR6?2yc3E)NwA<9TR}WdeVbrPaGn=Usa%lT6A@sR?ZH
zVwxDKtc>o^A4ew;=PsFDyAnVgnvR5*&{TP~P&7O71&Phfn;8srB7XxGA9o*L7=Gs&
zl9GDcvU-FO##*g+XkFDVCyVO)kn?pB@7;%R^nuXb&-dY?d)@tfJliOOAK)<&A$hWw
zsH@sgkn9WL^jR+$P0AmsV$K6RJ>Z34lkz+I{Q&QWxkvf^453E|Z3gesyR+1kONLq;
z%GAmkPHOnhntL+%K+eDWNmwRxgLwUCETf7hqvg&`u9j=nu?W0QuzCsN;>*}eX`o%a
z&@kFZN|Kj0j+MB#r_4_K$*oiPXn!2bZr6*kQ}{SO;#;v{3Lh>}N#dO;+|apll~d8t
zArIyXz34QR3s-5?R6fx4dVVT5bd<r}a1ume)A;v%*mB`FonsLW?nz?vbdG%pyc$Kz
zbc){zLO%m)sLV?T$})o|M#g_eveN`YHQ-kAjsW2#ehlzLTMOEtcp2{9v_hN7XLqi=
zk>_;WD05ax8L~4Glq%Oa(RPu1m10z9@+JKI01-Bm&*;vGFWT8myWwW%jbxg!(MFOe
zn90|;qz#@0X@~R`8MFBPeDKG@G0RhGT#TK?BgPDtE`cff0yxq?X77wei0hDpwzEhO
zgR|{$5!-Lqw^%?3+qCKTY_1h!XY=tRD~pzG*Hf>G3bz~ObN}`vdbXU|Zo1#D=uo5W
zUt8~MXY;rLQfc&|ylt<^eVOsml02mjabl{gV@44=hvUm8kvT_pf(FJuhxb8OwHUVY
zIec7)L2@E<h~g=HNE_2uPo~u>(+rxkQO_vG&gChAF>)ft3|iE_eW`5|v3jm-B^|At
zpUcx}D$>pKkouNq14X`4ub79mTJ&q4VmHidW9T;@45KkZ^F0{0crtA9WmrBR45JDq
z!`@PJq#-15dRt)_en>!xCCLk;w`Yhb3m@-axh)2-86B}WEwG^Kw|&Jq3s2;g_~c>%
z$Jv53uFM5|en;G0a5|BI>1%2iV2<VQZ``_&f5Q9k6z3Nr2A|y`tc&=JXjy|!o2|RB
z%Yti1qxUH86EW+JQ_gC-Cn62GWf8gAv#TIL|HXVek2ox97b9YxDHE|v_-F+8hnMgN
zRPSpn+@4bN&Jz9yHt?iKwM%JUvaV2ciASM(-7<cVhnLmVFXLxfUrDlhXhz29EKEDA
z(D`Dy2Wui_6sB*_s5$XBM85EzJ1sCe+wKCz=In3;^KX@VFH@?e`C*RzHR(4imdlVp
zZt7SL{opg0ua@(ET`Q@lw3kHr-{^*AStO_k{X2g?q~7ejCg*K^?VZi=gcfn+@1$}2
z!tF`_d;}9jNM+9PLGn&NsR==7sTh%sMb(>6h|FxhkbNvpWb^6##7YtRD7S(7OV?*5
zXbzoPD#{<l`tEgnzw{U;<<~pc*dOEJe*B+1YaIVTV#kjh6&I}hEq?W|C|$`T6aP7Z
zdYd;#J-(MoD}u1zqEm`flum||rP;;v6m7E6t`wU}vq@FOF{LZat=}#Xw^s5V>7`b(
zo$C`y?ZC;Im}puaDlJIDXaAOkxDnZUHH6xr1C7QCmA++JX;EB-LP_ye^^By{E-X)B
ztD^HsapWn4=FU%uTTk&Zwk<l7a#r$9%A#|JQY%dwsE4ZvI>p?oUYBx}6||ROs&2h9
zNw%xjD{_^ECSm1@%N&sF%1|noR}t(u)oi^Y=Tbv0;uOxo3EwDAuHut=Y{50S_m>ed
z;%7WP^;ugm$-X~LMCBk*UY@2dtBP`XmsxjwKm>m+?d8rMWj@kgy5>>#7t&t(Slr6t
zv%*VPjDAb0TzFC|CklCJO!poxmS!8qY_W<Jx%~bfb*~XGd#R$O=}d3I?Tv3~cPtPV
znhX0ld|1p`4gU;`-fH9bcC4arXiUm`L&ZcJ&krhf*c!rPUE@_H9Fwqx(`@72cxjc;
z+F?AU4sp(o>i<d>*?C|GxH*rnr}CV9J|>_f%A~ygns_H476;s|eC!6`8MTH_!3R+}
zYxrce;r6QQF(~?K4IeYB)ZuoVmL;WCaGqdy{$p<am$V_A{9&U@a~{b8T}8nVytGnk
z4P#0Pgk`N!CwC=U|NW@Mt2S39tZP*f%GbhAKmR~9tmRMh7Z=woUB|;2-=9`f@HC&y
z_~+NeSI?jWxGbZ*F;ny}P-|rrAZdk^_5$7`=u;_4n|9)#;i3KA5M)MDgxjLEFp-L=
zu(65~;Vu&ms7+jSPeY%<g*<?OutGj8sI+P{hLkE}7#$+BkcW5sWTfnX#Sb=jeHqFE
z&8?sG6&q02L;Z$}6zJObk+<f|t)F$ItMns8OQ9-n)Osxc!7yVz&!Xp%_54}nbjD{f
zmgNX2&+->Z2EPqZ3ZBLdRLvo>H}GM6?=n%ofvQ)Da~t@l7&pg8K0Tt;LH-S02jsjx
z+?w;va4U_UYn<{-O4(5{=U;T5_Z-H4d!|_W9FLiIKn9rv9Qf%^v3fey(5+$ee2i|N
znUrcdi2B{m8$?52PTSt@Fe0ZApH8-3mYJe{fs$=fb}b;Cpz&hsBA7LB=<{vS{2bpi
zYfH91YkRFp`R65~F)5QJPm}VrbZWwl9;5gTNmi7>JCy)K{`RGYS;sRC*s4iv0PI96
zfxL)9KJ6TW&o-6MJCnqZ&+{Q&a`OnLGeLQ*p*+n*Y!QzMpFDu@aci(+giZNWOcw-0
zmMZY*C{`5lEZd|C!l|3~&P;lzKZAolXxol{9hF%KVoQ#@jGpqoTGn<u(Sb(x9W-tA
ziAJBl9mh`8@1v;%o0N<%>4_7frSz14qGLyP2Tm8ZW0OphN(%;w-lRM!%?v6HmY;5|
zR{WsmJh7pe$J)riZuWK7-Ar}X(>x<*rUlLmv^vSbzOUXAaExXt%0zQY`&o1TFjy%g
zr3pPZ>|S~J>h@?lR%z*bGqt#{Uk35L-q%l$Kcl(z++Y$?-GjUngBx&6_3WL|GG(Mf
zLj!4aht8xNDJEF&VDbixY85+|3*!sC+qk!mQW-{~HRqw8_>CcDsYy9?Sj8zlF=ebx
z7%ew-19L}rI06{c*!z!Cxw-Ys8TI*oh$wx5hiAPtNv)^y!l*iEgu%0f@On!;G`~ZS
zuvv;#M;dk}<y{9VbN_)RK%c*>88kaU(^qc~I3{;9ThGdVi8-73L|b8BzxxWA-^7AT
ze&&Kxe(6-Zpv-SVL7pFWp>|{zr!v^lD{@NFFYq(rI(7)r<i?Jvv@h^W&smsmwJxM(
z^WN@+$6ZFnxKmS(rxV-Oy$A;hu7j5Yd}QiDbC}^2tHw_i*{rLtVl$QwwUzDBM4Z5s
zY#CUzZ-pkF;#eBu!%jOEyx70lre{WzvZI*j)H>ayVGrqt@xwh0;|qQ{hz@>DF~?^m
z7#08GR81)M(EU<(b+q6akh&}Ioy1F;c<>KId1!H}IKGK@O6NxiQ`}c$L2G^_kvgzD
zq{+KEs+|1isGN9GUSCb<phCqzb!R}Q<S|ZXLi+w=B6u_JX7m3MOOnm_vnsgbisuCg
z9A+;A|5^-Q9xfKkv!WXzbVMJw8~H>j-;CVHuPN&IEVZ2uBV6rN8JvpWpxp{H?(EQ5
z*q2uWkISEa<wTFQj-SDKJhRD!dh4mD9X7<>u^#aR`c2)X4Hdn%@NnB=>6=3|P!k$V
zEoS9pO{u$rCX%({X~pw4o>TF>mAb2Q6`nWoEWq;yo=fq(j;9IF7CevP`3IgQ3H_8i
zNeOh5%DA)B3E(dP?}z6Xc-G<hd8%z!X9sBulH=w|hxo<?>_v0yqswU=Q;Tl3xXLup
z<O-rOmdYnC!`}L;-E2QfCVE^Rt#fJ8uU(TZhpA(TC=SCZzYH2h3Y7W<8W`;MG#gc<
z^b2Z(aXFpX9A7J$xQ4={BpoIi7n3<)Lc4FlE+z<5+nK9;B?*rdpiZBsf&Wp&`-e0_
zG#=|y4_>j2{MzPfTvG=-!#!_JsH+D7?LGM8n%em72C_q}ZKvieo-PmKK~tsA+KGk^
z^(G<OHR<1|YBGBO;UT~YUym^<B?%U^Pj_Se$@Hmlyh~%pGZgS5sI)O|w~Q{Ei4h_P
zLv(3SBggNu$L7{YPN|LDoaoa_Xs1N_wW?ulqlf08fs!*8Gnl%v-w{-Z9u;70sPJWC
z>M9FU%QQ5x7MK(v8}#-*-b(~;g@>(_DyO<~h_XtfOv=mGB(L4hR@lt}dzrG9V04D-
z^Gi+W%=W2O0V&pfrz5PDPe)iQ#^E62w~eX>|Na@#VpGDBSf;6mmo9SOEl}f3m*1$I
z{^*y#^tSvRbr605Ayna6X<K3bj(U`(xyy{Z{LdqRF=7Oba~c7Y5+cjVg$-d&=c+LL
zss>yi+h|re0NmK`9G(F~^f(vCs9}F<V(JSwL*2sJe59L6jTQFQ)T0uNTyx$%#MCG?
zZc>6}4+oXt_8J;NBs6;V(xi0h>dk}Sa+`-+c<_*sx2dmYW)@Vn8N=mV{m!ctEUQe)
z=8?nzm6UCL**?rTV?A9_Ue8drN-tCGMESKnfHJ)rKo3Q!0hB=}x1#W;#a|u%mO7m`
zs_?~(>JV9_%G75tluu(Q*I_8vj^jwgr47Pyesv2BS?CtvTEK9g$7H!lS^g8rNv0+f
zjs?mJld=U)B8NZ2(1526cHoY*sk?5uY}Rd;TRIalnB$C1gL|eoYrzb$NMnK`)<O}o
z0pPK}-WG?#&`1T<Q_ZEdrJa8(9eGpzFse@i*uZ2z5tBC6My?+tSW4%-egJrlduYji
zRGSKtJw#am*%jGTan$il8g8<q)E6{s6Z14n<*={YOJ?DkM1y6AAb@W5n!T8aS75u-
z=-@qVI@O%~Gfc{+cd7lv7G$X|lX~h8n)QR`5<ad5u@mjU)@gEu1;~k8E|K8qh!C6B
z5glor+669y>>BvxgvY4){n=V<o7)@=HXZ7%&CO|4Q8gug%)Wrq^Y9Rr*-Zxo_c!kP
zeMS51Q71jv?EIbP_&^eZJQ-2uHr1hDL7-2niWX=V8B1^Bxa!tbyUiU!WB@M3)WWKL
zLx@S)FExNo2*0KY$7h+HE$U4G3oh;Ems$~awqVPpqZ(!&nxqQ&+gAjel<}^Z+EV8u
z)H0&8c}Qh}R5(+))rkt!8KLxoNpXE7FXuXnnJXTpa{5!_Vga;Lb&}ww`3mCQA4f=w
zt|16B0B=%?rM;4gxQC9026Qteq3XHCG>_5vxhtDc@hIV7=o3}@a#sDdeRbX`>%zcQ
z`wE#WLU-~A8?OhCX;hYY%)_pZl3m>)g^D|>+7<HOiFyjk?;_gR-FDkKn(C4xt$zPi
zD=vY@;nxol{*+$$IZ~-8D&L4RPr@VLZb7Cp2ODb5+XAJRI~$2WM)dq0(B=y=j;bDd
zYlVB}L8j=DNjm)~Fq4LiyKWdUB5R=(w^8d<jTYq*Us4LnzmiJJQ`W-h!_eU;sEpdM
zrS7^-p{33BO-fNA6~Y^2-c0ZG=VBng+yR4;gmVdbfy&ww)}jeihDK}Y>Hc$jtVs#n
zMz}#+<RoCjEYPY*wYtKA>XLVSMnuF^9j-gK5UhHd(jT+TQYnxfG*@1y>55cdZc?7#
zNOT^J4JJ5Yq_dThLmC2g=DA(2wrTT>L3c=3ry%NTv@cb5H5%{PDAZ`8MlqhjXtX=g
z!RxB=-kILp1?c!P!PF?qi%iOMKM{=8hdN}oJY|I%oSv6~Q&s67e&`)C6pbFy7*oS@
z*VRhD%S&hU?*4;o)AG5+q*PR>H2;G)Jtv3I*7a>PdV4D1l~iWC8yA6m3>Z;9a5)wJ
zg$2U{6tD9b4=bicN4pg}osI21)}ADOgM@pMzwxl=@S2p4x2c>u2QB+sF&W;bNFOno
zK2hCxlnOnVO(Qtr9^di15$ws7=)qX_8jLg4;agrPjyQOvZDT6&AiF~3J&!hq65QTK
zhmYOm>M;FYO|blue9ZPJddCvhh#by8=S5QtG%oN3@^VTXhV+4X$o0gHrD||p<Qj$M
zc$2c>4AsR%?$q1Mm}Ckjp<sp?-uXP3M8ghF$ObI&cj@zYUI4xb_z>XBUHC4*9|OMF
z?EL;Z@EctC5a1oazX1Ft;MHGBu*3%gUjY0j;LiX*$L6XKhK9pX@GJ@rqhPEHe>W;L
z1HS?IZNSIcPq7ma_?WA_8|sk&8&SRz<(*Kb-XFBYcSRXB_8iLQBF$+=UWT-+xxiId
z1Kv}jKmf+yCxf6~7L;Kzk-sw=+UN-U0F-Y=nacE(QYEj>=I<nx`=P7^G?YVOF)ROR
z?43m7d-!za%w8UzFp@Z`%U8cJx>%&Hml%BU*_l)(cia|WrQdXeRvpT=(X@aM=q+^R
zJTByGBGKm|RgklH;7(yF=Y2w?*Lt9ri=uLV_k;mNO<P#7KBK-2TX}X^65R?@0+vyk
zz6^)BdHjgVt-}+9Q+-+!1zM)k`h6{$%XwtXdVeaXKYdo2)}%P3_2^G=nu-<Ttw*7`
z^-!`fR`5~X9GROg(N>7#KA@4n@H$w1vDi?7vyn#JBCg<f+tR40Jxg^s{+y-mzC<)8
zrRz3&!sziC3(J<hrI|n`kcF}d@KF~qS&oLk;3Ml3jlA5Y^adP2^8T~0m{`eUrXQ8w
z>$x!md1X*Vo+JlH)eY-pZaun^grWS0n5FJ?ULY8kcI!>b?#}eCdYA?0aFyJEE5X`*
zypOB9a_qW%NmT#$uJ4i~Vp2i}6D@T;HNUll-t}3ITI~8si3y(ZUO>vK)2Aa=z58^;
zs&~dkpd6Cy8cAg^#zpkBC_UW6=RgSF)t!*4nDYmV+I@V`P#JsL4XFbo5_L+s?MLtW
ztlb#Vov+FFzPx#BH%%`+nTj4ZiyT4?Y98iBpZ}5xniT$ltkh<_0UJej74L~FoExh6
zplI1uG<{4p#sDe0s&J>iJ^U#@iH0iPXQ<Q&>`vyTYD9fjcBp6pKY;|RZSH~H9l=^H
zSH$n<Jts+9!ZcH-cE%B9Qc9Q0cMI+L-G11GhrN|b<>E6k>=)ji>cXQRrOEWJ>TT{M
zQM#Y^+BzIxxYFIcnq&L<r<@hlY&d{}(15RC@pk$DxCq5(_q>Zl*pAA3!`h@Q<)D7y
zS9QXE2z&Q<9yx^l_kAJwARi7=7B7OUarp4nS0c6=r-#QaHEXN+IL0d(u0+Ic$~OCp
z+lTqKn9H?>S}b|+MD}&ifO|)VlS#pV-yyig^=o2)>qPA<JTW+?juwt|44#m_a_RL6
zBIqj?gAU+lAYSEfg@>OXO>AaeuC+a6Y@rXJ@MV7~vC2yiuNPrQ_&i>w7uF*<X8=pb
z5y%#PPP821{|LHVm#myShr_{x_U|sgBXW+SA4GGM|2@2ay}7k=0%^|NT2V$%I9iws
zz9eG*$qy!8K9{(sOb>0>5+3V=gL%>6=ZgC)osgfEy5+(K-oZ7_%XRqTy%W(HA|Ov_
z4fG8;s%v;em&@<CWT?Zr@xe8#!Y_!cHGFG|oBu5x)$`<oPx}1~3CEZAaRw;1?{8p<
z+Dad`Q=iYd<fyMXb_`c$dys%Pz9I%GZz%^8Kfip=(17_Gf{U+SLx;o9Z9R^=X^=&C
zoTns)*CWej+d3RyN}pUpE<e04!}~nf`$M$yl<%hFe?yyoB@Z57zAfhX!=mIkj|n)w
zw0I!&UUwX}5njLbbz*%%=+vhQp2ug5gg#$mf1NJ%f_%dX3=c#&a)MtB$55^}QN}sK
zmDI=5#6q#UIO=k(s6NT(1@-@`EF62I`55|A;Cj7*I|ThN3CkP2lJ~z*qkWTKWP#!5
za0lR^;pFAon&w)ZKk+i7h<zIrK%9S@n#N1RJAAT+Z^;%T>i8Qxre6G7$3N#Wb>iF^
z{!boXE7rab-gwr%5254hMC1Ete@iwUzSGZ67*3+j)U#k;W)ekbd5<1t873ubF2q#~
zZ!4Uh<nM-vHBsW7vv8fVOwn={r+#IYn*Qf_ALf6-q*$L24}ZjsqTmBuvS|j~Rl-^*
z_)uOtT5tXU2WP{66uJ-ju)ya!5?6EUM*I}bhrn;dY08H<xvv(@A4<le*GGJ7K-p64
zT;etZF>d(?y&K*vj@9EZ6@2s`L*p^^HI|S0D8`31ijq&zg*~`U@(CZ(ZBMWPJ1aL*
zokeu;l30u7(B(Z#McAikY(%p#eagQNDu^Z_67!UQnp>aA6~^=M{(RhAJ&z;yXXc9P
z^HAF!qxkhaKTdV3KO;E1=GV{o8ybE*yXMH3yj2r4q9rLGvm(umYk{o&n*W{i5iKIV
z0e4Xo8+Uv^GIU4d$gT-Sx#e+an`vY>(n)d5Nc>!41AmMs{wRKJz(H|hqxuUm)t7i=
z4-Aj%egsZE57BoBH*u(BxCqA0mw0-35|;nBzlK@S|Muq4wwR<AbL&%`Ri&<6EHW?i
z%5F)wRP$pa=%*jlfk0!SS8(Ye>6XZ*r!`fayMhx=@U>p$F)@j9xv94)1v}n{;C1bS
z>+`o{dkKFI^pS}_5?{T;FHEK*m}t>4ok^K+n`D6}AIghPRz$CF`KZ8TB?*18pN0%`
zzU9XQ6C0^-vQN7I;I#F4w$T3v(JiS(6#a)^>|&rp77e`h5V_8_sHBz}`**lN6R0*?
z9D`2OHS$pr$+Rn=AtfYbp@D^oKboEOO(X!pjSG{Sg{}$1l60%4sEL2hxFK6C{eeH!
z1zL079$|PRpoNI3hvMoFh_`r-{SjyN$$_H&N8Y1Lawi%Mq9La-ytT(JZv99NYss;H
zK$-d@Kgpc{b7;gbN2|dlkmFV{^(TIR_)fb?$?Qt?ks!NL1F0SSPmw@V`x6`!&xW6H
zZ7EqRV*iV<meNIJ{1;{cN4ETr_Yrsf%m?w5Fk$=|=hPr7{~4G4_LLCQvWPvU#i>g6
z;l8vQ94*b7hNUS6Oqzctw<r>^&A8`==jLYE9QbIjsn48ia0$Q%t|6|Vv8n&#4+W)!
z8JN0}Y1o50=l+Ka9H8m-3tZqhZlV0bV}_-~(3vL<4gIPnop&PmA2O^;*1G1v1vr%N
zZEjt<pJc?7i4(uT#ZqF$g<tr8x}_KsjLy$7-G5%xq-YV44;7D3i5KU8MTAM2D73#J
z5TNZ5zwupNQicpF^xu@aQ}b)m9_5gu0z9t%#?ymRWMrkj9*#*FB9eYr6=(S!g9w`1
z-(gnZdEs{`7|#~hGwcr)*1MjWuBY`6{*+7M*u-z)qk>Y5B$)lX6jM`RN{pD=!ehFm
zV4-+x4s}W@IX%TFidt|b5Q?d9;o+lFVja8iOT6;<>^JG3W$7tH%2MR4b11JvN)&$J
z;SQQ2a5?YS+~_f(#RF5KME~nNWmt-lc;=<2BvHGh+`K5PQSgHhP!4`52T#D55Z97#
zHAQ1kHlrSO_WX4o5tu@IoA@9nW#ZNwe3UJPeiY>p0@R`62Qm9RsQ9%kNeLrdQF)4q
z@UF4SE5=W;k*iTz%T;t6WyPkHU=oM$hnJ*`pt9mc5RJ+nN{Oek;-x83R1SC|#?yIt
z9L5CCVpDRbWHS*w1TQgi<?z^)A;z8Tyx!rzIc}YzHR9q8qNaBAW#tg*(%?+i=2YP4
zHS%{g>TN8{ZOBxn&)VbIdXx8vIBqw$E|BS<tn${LW9C-NMtW~kN779=k!77IxXEV)
zT2@k-xpn@>;>Vk?VGL2yE&f#Eal4vhD<c|rvk2HAeww0L=HBv?J;n4b)kE1R`nZT@
za_V#ABA7t)Egr`jgzh%a=X;}S%5U=z8Q&W(RycXw&<2w-&gJK=SBZsse_>CHNlB9t
z5qZuz!mGb?wbvrfJNZC{>p%3U+tObX$@ki~Or(eD=n4(e&y-AYf@!{|XBF3sqh~YM
z;0mgxW}-$jibc-&k{Fs>XUKhv_9SnH+-Ic~6V$#zRQZ8vinXTRPorlkuo8c|6TB@!
z=}s1dXAhj4pCneJ_rQ%$rdSXgzak67a|O`!kJ&rWil$~<fTjwfS!<d*Xy$RqRFe^?
z;XE=W)0Od9)bSXbeX~iS>#K*5|JuQf-E110Ev%h1V`RrVX%LI7BEGXGd`OBFc{P3;
zuywIC{qM#eqXdrXCPa^=-{Cl<KOIw-v<JC#MNX8+>8$Ayn6i{?@OofMws3UTq=es}
zYe5}z>wTZm6T0X{Px>>r-X9`vb=G82yOto$xNa#{1Y_)KI6k0qnu>n7h#s8?(mcXg
zi---@^x)-6jVV|&k98~8(XWvh#*~L`>yJ_8<yymAWfpNFL{rJjqr{>vnuVxS*F_V~
z%i~337tLf|t`|vnX?g;kd6y;~$&x6)3*8=DThn-#CXvOYK|bBP)He08WLX+cz;s6m
zhOV*+M?b{@JQua}^}ppa{I>Gau9}!}V{4N!WYlx~ND_CiIA~pLxOlwadd%25s@+nU
zhEIfAJ7ahQK#Tu3-f?_wHBNeqxi#%uaiJ@uOv6&3n`Q}#wYi(-IOE3)L`InAG=;&i
z?waX=?w>a-HwtTa%_yGMrKY;OrVI0rsl)fHqE8>qAo0H*n%H*2?3$>anjVagJytWe
zmu3j#X~8usdTS~fc-Hjlqe*A&w75v6(@gJ?78duS+%AoEP4}$Hl%~5Lm8KI7I!%u*
zX<>xNFCj#c4M}{bzMA)WT9~-dSF@F#*%6w5^hk^P3qJ9nkKfvl*vL=?HaZuZcoEx=
z*hGnzewytNLz+`en$Go%ay{eerY|mRz0LgOLhytBnn2w4y3k(}(e<+QJA^X#j!dZe
z_GNMB0Jzx&VHyC6OQ+<hdQn^wwgH;QBh&PTi1LOXn$i+!7!AD?ts$$tkuD6u-i9VN
zAU}PpyhVgXYQ`Yw%#PIb!^0M->C?4A4y1Rp4dT^E4MnFbk(%%LFnka-5Jo&~i)b8(
zksF5J4UEzZ`+G&0>fvd6x9Pyc<-U+Ut3rqO1SxJ-1-|OJJ(x@>FFH-H?q_qk0t6kF
z2)*-&&a)i1X)J^@e2soI;F(`x7qwBE)A+jLnP^R)h_BaCF^we^H$|l-5?i{Xo*RQ-
zD2qzdi@IpdLH3n+GDb6ySH#yiVl?;P!H*Y-=8^C%JcCE6&-hUYhU4uu)=`?@k^c|I
zmr3a3(BDLr9%hY#TYAkE|E?EuJ{@i~tVIL2S6Q#8D%FW&DvDmsdGI)^IcU`M_vgot
zZQ8IPT>LLhW5l}{F-{W^e#a9eCjCLbIGV3$psingdd1DHcg)-rn}z>X!H4k1s&O!$
zkZ7@DJemyttfp?f=ARJu0{-6unwgs0w{cT)isnVz_h6(bLBamb^4Y}=2k3lYiw|7w
z4NuDOhNlGkz&`w^+hw_}t-%>S3^H}z3}zCj1hvu6@`bZ~%Im%1*+w6@h+tbg!`Thq
z1ak=VXmF0*8=f2N151YO{O0Mr%jY?~;rSN8Hjf4f_H58%_l6e`=s~~0?hR-82$bdU
zE?*e$16Nb~9t;;*ya^WBePD+-yd=XLelXh`UZ(SgAM%0y-l6u}1R!Gi7ZmJwK|Wn$
zEs+xcP{Cj0vn`(Zpx{T1-tc2S<&PJ+%c*@dxI*VfsPI36ec-kVuJUT{@+X_U;gt>E
z@KY9Vc(t2ewhsa9wcZ5w25&geM}V~%-sJ@jZ@AEhe!UO<hHRC-&Hp#}Fxcn=KWA4f
zxZ}g~J`9U=-sMF;^u?|Q-Ss!AaJ&C+F7jruCD;e{VX(!Aeyh%#Uij26iT5twCSec%
z-{J5kD9!MOcQ$*&yNurO9s=8pIViY1+Z(Pl`oIprp8mhT)|=pf4}8$!U4GC<pjUkw
zJd)u}Ut{-%U#s=;{}Vn0C+fW`yx{|%@@eoC7<y{pRI@kymc<)>C*I5dgM#1nY2dvE
z?+SHA-tak{H~fJQ{Gkv1M|N-edW-7+ZIeoUtvA8P79Y658~()Z4S%ZhfqgV^-r`;U
zna!udXVu;WpU3;azUB4a<zLi#!xxIY;V*so*}n8)@Gl<*|F(ED_;-Uh{FM*GZ;amM
z-(+~hmn>eeE%<V?7b5t(B5%0S2mZnCUEUn*4gcyxf79Y!elyz>wgm;>toB3zuJwj*
zc~uAsZVmP-5ApMXeKM(#4)NafcX-0^|BxVyH$hOg4_xgH2M2q@Av$k3!srA0)bH<T
zFNggHg$(dvIKbXcK;@AHwnw&*$Rclepili6op*Vx(HkDzUQYfO6cXp~CWtrsz_s4+
zP#*z?>AcH_`Oxc|y~`6VZdmpIkR%_5quU51VMuDNyMhX*IlSQsKJcV!@AAn6dT4O6
z-380`p@Atr0!+*Bt}wmX8=l$V4bSqSpJn$cul9!B*|2;551HNIO)w|h8}`X|L*_cX
z%jX$=;CgR(e!LHyA>p?9Kg1I3O_0^>4KFP6h8Np?V23xn#E0LK2Jdn;S#6*HLzY>*
z36@oR!w=Vb!^?fjm;07Cc+>yA-W$%22kbHbhdkQsP4IYzH~a*F9!6v(1|IOLU>~@_
z8_u<R!>duB{NFwMh2&Lx6XffB;976^83H}(7u0&g>mA<k1|NYp;#Z(R(JsKoX736`
z+1~J89|rr4-sStNz2O&q=wEbrm%mi2`hS}S4*E2Bu*kc@Ap$)FKBV)84;y`8yEps_
zfgbf=vDJDbUbFka4j;JI8$NFLfgL_@?f=8uyMRYg-uvUT*-f$pSSA|?As`HwVg!QW
zqNa$rKmq|H#1J6jh1^LnB-<p=Xg%HNp*6Ms+9;4WUaG0JHT77V+E!AvHl=D)Yc<E8
zZF4NOTWcl9TAO-2Hnmp&pZD^enVp?c&v|~&f1U^4yx;rnz05nayN-T5u^)Sk_iYwE
zW;ps?j{az3e^^iK|D-Ij|74Y;-<8mhWjgkJnNJ%D1es4e1U?;g;JXt0BfM*K=$VM4
z-*4~7LYdDG+X11>7YY*lzwA%!|H{!HizniLYb5r6*Pqyr$8CMS{{KE=1EBv0I|2HC
zbl~4`MC8w1iTr=zU0Vd+iYNB}Zi^rv|CxX9Pb7G6IH4cb5+f4!8Hsq`XktIr(NDK2
z<c6j9nDlb|2OR{#36lVSgu+w09R1P6en!O6?@#Pcb>OE}5nhdd$CfJ`8YBYQ>hZ*W
zR#{?yW{;ykk=W1XT`MKw*@PGRftXW}NHC`?v7bu}91MCRBHPz_!~27Y{e=$xg%18j
zRg#|8|L~&GL;;JViTx$IqhIFe4=46NQIOa_JL2dMi@v%3hnH0)5-gJhG&P5pI}BLf
zpGd!gcWohF;V>}YfzR*Z0BijZuM_}tF$%97<pfs$T;0*{PwW>MiTza$`c)AJp6j!%
z|KU}`4uXlq{+j;8{&`VHf6&n%P3(WN%hB&oT>r!Cj6{O<dSd^gh@(G|*e`MzP~^ZD
zJNS$H6W9OnmV!iqTdExW{>1*)(Zv2`U5Wj2hXK1d+LqE?M!Eu=TyTy52H%4EmfF_3
z`uv(}JL=mxroFx+zqYZpy}pI_w3GKV`+dH%YFb-6qWNw0?a|hj_IgdLYpk`pC%<yY
zzcHM0V<n5n{MorTMm0^|un7t1@HP~_v5V<l9N!PnwF<`@!Vj~Ez{dglOfvpoH5TRg
ze>H&5wBdvN?@$;&8`v-K5#Y~u!I!a7fv?iEOc4b|6W}fQqrEq9@m*lgQYhY}@c)4B
zVFd!;5Bw1hQy1X}S(U&K1K&wVw1gjJJpvyGewGdI<9|c`I2#uDN#JKE<BtaMjTQdv
zl%qMfUY2vxxY3`Mvg`{vlJ^S*sx4D(qiVZU+sDd|`ukIh%gc9`vw~0i=fbFyuOIcl
zn33{c6&wDte}3%0qmuUaG1>N4$@a-Y*&d6lzDifGYJZj|;nXL-pG+ve5!t@iDce&@
z&pV3$Co+ApaNmF=xP4N#CnO?FijNI)IG%co|3hIW`l0YKAsE0sjtGU1M^r2OS+r0b
ztK@K8h5SG8#Z@chtXFU#k_1abvgRv;{@y4VKj@O}OB&0$6_3GQLS|+LLRki)jeZ6>
zbgYVX-ioJTx8h|(PIv1V8@&~kcI%{;ws~85@m4WNL;94{Qr>NP?`<HvEsq(ZEy0%s
z@O~q!5^Xo@5-q;xM6`IbRkY(Q&f8<b-ebH0`!UqZu@Y9u`?um-I?(1G>(czC+bXy!
zTp^tn{$u^D2lTnehBSYXycrkx8HS(>9~))E0za+=%C>F3ghM(1j2_X3kK+sNIR1E!
z7TC3SW0^p6{Cf&tz>MP@k5{3~H%Kh!*N-ZE6)O|?PA#?ER1ng`MGBAatrGYFEv=}y
ztfFM0fa{qetw=kf3w+A)F*b4>ejcCDe9K7<^n`Dba!%;ICt${jJk7VvhR&L)&=FQ3
z@ReFx`L2>}TSTNnde&VEA7xbn->vyK?hv*C5z=QaQFw$=;1R~ko$?e!;2%_Ygi+wf
zHJ|W+gTX&b@%JK(9N(LxrEE3{fIlwzdlAN7jz<{x+VI%{g+~|#zEevnwc|S!9$^&t
z0WGD{j(=6*5yoDWOD~F4w0Omlw=9S0jJJiXfI&a2)KYe1(8w#K=R7O<8R8@G-FPR0
z(C}|gslp>Z0zae$igp(5B>p+03Xk{*{5aCQvvlW9QAi;@w@>2x5Fc(wAMEMlE$k6(
zB`fPg`ujRrqv-drZnU|5gIeIyoqLK&&pcssDBK4<pwI1to=eM#BBXz!MC!R6dN}^}
z94&3%=AFBDs5)32S9s*%cK_1c+e`5MBO7-KE}qAQISP+B+z$J0$7toPk;D2$AEQ;Y
z7_Gd$BiMTfZ!lU#i@`2h40h3iU9=eNq6NEX!Oq(|gS~g+O`<#VSl*qyTgFO6i&rW|
ziztY8kPV<syK_`aId=zp@J@ej@XiS>u(`Ojls$B(KPPsVuKCa1Od}$sPb-ps+}S1D
z6EY9xEPYo2==ZwN_j}M+fxgs*ept}Q!bu8xz)<PJ5cg0p4Ei0(^kUp%R!@>Yq4_s&
zq!|LI;^gsN5v9P8EluNJF*N^PlfgzG^`I}qMC(T1??TUa#b4>dl;OsphQ<j)GMWYr
zYW^KA^k3m*++#zwCVd<U-?&P-Y&pPFjJvXAhP!nwu-A>DUkY|AxI3Z+O5Ny(J?Nua
zpi<I9KL!t_;Lf-Q1K#W2;iACIu_5`$<GV+-)XgOu%caYf{JR}=_h`NM__Jeo#}nD_
z$&>8rM#?g;OVXWCI|)*EPZ{VjqMY=mc~1H+DPL{U=b8$r1Wmz%Y!C*nqs*G{G3+4V
z-!9>x<=<Bd5*_K+di(v^2kCh(vG?ckIk>`{gDL#SRYl*U>^&Bj;*M7;zb9o&c-s1z
za?4m(Kem)!a!6ipo|0$C_Shi4(~4h8{)s^eC%vZp0en`&+@n}-lU%hUL`?;i;J9o_
zz*h||P_f(E!<ddoB;7G(fJtAa1y;K$RCG!7Jz8K*QEYb^7iTZ*I|@ZVd|a39NA*nu
zhPBkySjE&+6|+$8sC3A)_xYSc0`Aozpr~A~rnZrGT%~|olOCnK=3~$&@nH_zu}%8T
z?zq=KE!VLfw=5dMj}h|)R>ko6sC31&V4O_=zl@S^%84qMBZ>51!wZ35<Mayd#YghL
zR>`7*UWM#yjY_VPPkoafzoHKMb*5b68%X4%qW_wLoBU(F_hF8q8vSa4WHawxRR3#~
z5GDSO97#uW&9O>3L_Qdja4$Kg8Okjs2kUI1QtS{!cHW0cFTZ?eso1aCD#g?A5-E@3
zVmjc+lf>in$<w3$kLM93*i(**jOkEZ^RM2ZcH$Tl=HM|y<On$_AdjdefnUeEyV|^k
zNtQ=)sWl@~sn%IiKmxy^ae)!;KCTZD*e&p3nr_H2y8^zBC&|ZPzF6K;%@7I}AC-c>
zG06JAfiY-?QWcA7*a#a<z;{VL6F=E|zn#4=5q&>?x&ZifCmdq$$GyV_+btkXzb72x
z@9$z=;6Hf6DHpeZ+jd|!tPuLlgwoN)iMYd#QA|oZ1u+m-eD8PA4QRas*hCLtFD_c_
z#RuRXg_Akl7-+;Nc<uNuNVm<o1AVNY;|Dq=oQ*i}h%U#|c|#I@viF-Dt<*Zv-$Zmd
zo+i+Nu|)CT#GCbY{5OLRd^hW{<H<})F20*?*pB~Zp@Sb2G{+ANNVwC!2XdJ40Jp!(
z17E_*fR9o2(gZ_&(r3<)Ia1EORk9tZlx<(P>UYZ4q}M&@68-RpAHc6pK7j3tISLHP
z_<#~j0r@u_CnKwq?=ZeGrW8-gmi5V&W?CAiL`U<2DYr}u>@Hf(KKF0_%oq{hud;Pq
z89}FC+QmwEqiRQFOG1gy6h6R>K9>{WvTEN$&xPTSttc^!;RkhA_8<l;l_QNBiUJw*
zU?&bvHpwlo-5^RoMbAv53dDmd5T=|#HVS>~zS=Jw3)3)h@{t|Royvog_@#L}f0vZ=
zarwVh!lHJ58a^MJzmE-rKX#%_>LtIvHLj)5J(@i}&gvxkhjh@(I}Ql45^T~t^7K$d
zOIb~~y;>+{&YrXvJz*pogf|56LO+M`%cejHb|&~C+@uxnDc<3vf5;I0VRM!q<o#*Z
z9`&J77JtZ}eFZIVWC&%DJpOi2^Y7Xq&L<$iGRRp$CVfOpFWOPObz?;_`|AV#S=;ZA
zgO9J1m9nMMG6gus6dB<3^xIK3_-)&s&Z~64?I_)Ek7+5FS}8CyKzhh7vWNN<5EC91
z_Ad|96ibr;333`dXt3y@ZBIQ|paLNUC7l=yV$TcuTykJ=K+;oW2gg_(cyrPs!zd7B
z_`g*p>M_TNuHY&_PJ2ktcaZVjmnP4=YOaZeX|rxlUJ)snCL<P?{qN++wog~P=yBP1
zP7dGcLWW46t;A@up&f>F@Jd@L4J&~vq7SP6cX|@x6d^MbL5ZhGo1RawvWNdS5uQ}~
zRAe7erG8>W!cDyeicaCpSwqpOii(A49ioz=QX@kj?$pwDUwZDPJH@!P4az~T09S<n
z7YaKw@~|?{D<iU$ZL`F8@w><0<%5nqRF+e%eS2IgB7-Rd-&F>X;a(Y_$-tA&5b~FY
zO+qEu*{8^Sw~rNk&o)btq0U+&g9!iK0inp;?SHdR_Q^0h9dV}ep)y6M>{9gCn4_C!
z2iiE1K<6O%UZs}0n=)z}1e8LOLy;wizi+UD@7rdXZ<9e$Y1sD~Woy#oP8{^P-&gQ^
zM;v(UqwRR7o!`ek+OF?m&d#TIFMX3te+2p-2}(MrzDEjK<Prb;%`}_cp(>36PJZ8^
z65_mVd8AQGFWtMV3{Tm_db5rM-I*g5CJ7o+@GjX>U>+G}6Lv%Hj3~N6*_wuoDR`G`
ziT`8{4B2EEa^WM2kV@<k#Xymwz9}H8rB~WKx$tCx)L;rAfhyFbz!WeH0X7Q`It85U
zRsxj(>XU#WT}#`vcl*w5Vmo0?D`xCf&CtAN@>Q|u5O$+?P-wmA`XIkFS^ki+ha5Hg
z3O+QD80w)>HUWM6D1ww4;v>6$fX7Ltd$*LzBQnb$3Y^L3kpF`+R`mnOzk^ck;m;4c
zwY198Wcg;?Bhv04^d;K=gJCub`7w$=*+HjR)E|mF_$IZqy_GKUQ}&zjqrQrtQ~#s*
zLYB(CTUh<0xCc6^oFt`ABOWbFG~!V>y~)i8Wvpog^}UQ3g%O*!u>Xb;W~o0Kl*-5$
z>N`Dn41;ZB>9(yqii_l^r&E8Lk53p<5W#7^pxJ;*<gqH&^BA8#m6f!Rkpbk5Nk7C!
zLBG$WCq8Ps6CEIar#xrhlt0NLkMk`E$#b-HKTdLq@9{=0Wx4GMGoA8$Rq>ygly*^E
zNPn*`;ijBHJhs|-Df{K){>*icPip?1TefftT-NxZ!vHTKKh&A=LpU)|DEQ1HGN-a1
zmT3O<dn23(mnFZqQuM<#l^+`v1X`D9LSe7N3PtCW)S)ZP<5%+ThuCSZj!3j!At|~?
z8BEb42dQt$nPB=8xSb_F$_6<|*&}%bC;lf2@oiWB`8D6p;kMu<m`P<*MD`yWku3${
z2YC*-%Icl{65dy!cG$zJKOoyDx>@{V=}}etgDS~q>hG8RJBMZKrRPUMR`sKg<B!rq
z!}@=$2mX94Jwwvo$DDB+RsO_3+@E3iGyHM<QF<QjQ~E|^+xv0#z@Pt#o*yW=X52oe
zo*%=XAERD>+^wZ<D&4r_5^kn#z|jEH3;_@SSoza8p!)r65d4cwIu1tNCee+t@gL(2
ziBme$Px+U|P8H&r>&A-BC6eB{_f~PEadS%LiN+bhkB>_|gg3|0h=kKPbK(_zZkTqj
zw@*q2a_CeQ8$E>?D(QhvRiZ*N=tS^iDKuv~(*czrvV#m(cB~1Xn#3=ZY}zRg*KHZ0
za~t)-p7|i}Cq1n1Cpb3$$uJv2oBk6#Z&|!;6Fcjae@@Di8k_tH!vCbfj3@osXVY7O
zPwLWo@`j@DB<9}@+jc1CF4p;^fBwE(mC4Rm3xA^EB!q-gPAJ60_hg||YAWkz6Of<s
z6y7Czinn-|NVIsDNVJ_S`V@?Rs*m-dAAD+9OW9nmY3%N&@W#wjaXdu6yv%&Fh}O5H
z8B|r$W2!>vsrOULdh^bAEYZ5BH7ynI5^#mMtflCwZqbj0Nx)Ns0$}#Zy{D_R)Lms8
zH%kj`0+d0-Z_@W`X@XuH&RX;oMsrEX;rj3-?`fsj^k7^XVhS9^Sff{`Y#z`Wb&oFT
zX-%WZ5dTl{m>%}aslmyADZj(3lmh5zkpz(f+B)?{lwon%I%+=r(<;{gQ;a?0Gbfd5
zNpJSAll^~F5j@t(`?y3z@Jgu&2>J#G;)R+**_sZG;FX}wn>i4d6=9|K3QNF7L16Xw
z$^OSyY)E=iJQ86&BdG9^AvP#lyxk{Syxqs!pJ4?23<3CAQ1bmuIY=Xk<ov7<Z$%bw
z*(RS3TMp33qGv#6U{nB}tW<JKWJ@LWWRL7CJ=cV3e@15$B$y^2dRAsCP$fkBKjNcI
z)T_6zos-tjqD+4Vjz5DTk9N_WRnm}Wlz~pipTQZ$GyMK*=p*R*wA7uOD>gcxp5M{;
z5qvoNhWurQ3Ow2G<7~W=4B1j5eja4T&+*JEsbZ%{x}>KOITB8CHSvPHCD()(NV+6_
zC3sEJJPa}uA2T<^G!(zD1kezpAxU^TEF!$=5Z+8&znClMm#HB9b22<G;Nir?1VZ6w
z3s~e?fA)4KAuS4Y`$e}MWDp7JjYz>{$g_>CAM)1GahzFcWXK?=$0Z(#Kz}FiSWhvY
z9bprkpDKy$_<3B?(c{gZSINGU{}=dD$zNb7{z6rPc}zGW=}mi7<(n^rC_MS`3*3G!
zc6rEtuhQ!kFBK>2MG;fru;$NOc@DP%mzAMsBch*F33TvEWBnH@P?Y&+$0Xk`MrBKS
zp2GvJ-HTbpbN+Br5Y6gRI=zDUTqo;)4oP^fJJB}J;5ltT5;;F@l0G6>NfZ6^NaFLD
zE+{t7DPNz@OZ4^mM$Na9gT!UU^f`kAu)?Y&n=9>rgg=knFXV53eo*!)cF*I<(r#0r
zCGU9^doOvT8q-HnbTl|fKNTw#VbViZ<qsXk(}MSOT-tT4lDD{m{68$%ik|EsyGIN0
zfM;bn`}!z<1RjyZWc2@UMvQ1FD~mLC-oL{L=kO(?o{1{sROE?{rW5k$-|>#i$`Ve?
zFDny7Pt$@acR<jERYvEAi7-j<AdCMyPt}lQpcNo#zEY(_A*Yp*h9jHg{J0|gKcq&<
zdu&AZDU~#T9#`^A1I=CEuw)?5UkI|E7jV2z9y)9E1-w@Ry!im<r(=?z962T;3)ug5
z4<tU@Wo^Dpc?D9Ba?Dz~sJ<vNloERX!<;k>DS)0A&|bwXa!16?J&8)~3*%b)h8?>v
z-6US)WN$y<51Z?E(#9z$by3!6fYBD2s)K_3g2<-r!%!-l<O?mojy|62RZ2xpf!|UB
ziNT4d2bvT-+Az@UPQe^h&J*0+^GCVf6`?TI7p-IOk4uBhx>W-HFAlhVY1{E6Ma)R#
zBYw&fMUot*a-%*))+`sbzMDJFxR8&s>EwUl60P-^DbX{VV{uN56SWc9n*4dPPlh^M
zcf)bpMHW+tsihE8`(jWkpn6R*pwMAJMD|Ss75{_X5-#fbJa}S;(!&GO@&U>C%R(0a
zm2GoNwW99JvuM*xGsv&8x&5_`o~A%LIsbKzlxxzLu&M<5h{WI7CEFzWZq}bbFKRIq
zrnAc=`VkgSpzl}mhu!6m!TvG3{iBLL?m-XxLBEgUKz`EDpeF=oVhkyV694Ny*{31&
z!JzC@e8#%jDCEaz74MBmyjii-AC~Z>6O0lGry)Z_<*^Y7cgmxe2<}nx)EVvE4?Y-@
z3{>i-fs?H3KXA}P0ifBA?(0bqCFVbZQV#L|2R;z6Lw!`tzSt7}R{UTA<Y(O4DEVH(
zY1B(tqFz!X;2zZy{Y!W?@g>|H-r9I<q3?R!WW3bLCIHBINk#fMIV|Tln2el^zlmt6
zJ2qZgEce~ks!x%2Mvxrr*QH^PbtXFYn<&nJw(YpYDepIxf-Wokn=S_fepmvA<&wgm
z7C7(|y{F;WX}sck8mFPBaa&hXys=1ru)wl+O!{e#%$KCTFfBK~R{hh3Qap`NXGQ+U
zu*55Q=9%H?C_hKo!=5_r&nzb)BwRTcKCQBRx=IRh(veZ5oU(U%oaOx%$@*=XmX^0=
z+m51hSpQS_Xy9-0p*X<JHP;+Yol-u{t29jL^vG$?Z&ekU{5g`J?yPA3HK)m_#4G=n
zhs|-S5cl>-0_TR|xA@5U%P{yiDv4A*WavwZk6!LE4N`EYBNSk&TI&C{OX^QLdd?H@
zSeRB2YRN-$9Cu3r1iwcaU^*H}#FN8RE|j^KE4B2zB_d^<L0#;<2mBfPUXJpv?PJ>_
zYXB8UIAw`~L?eSXFf?g77pLD<vBBT@vuh|=zf;v<22;r=UnvIEl00)4sH)bP%-@Z%
zyf_Y%<7KQYjuWT2sv?@)>Gd9pMZA;sfUcaXoRUS!BR|P6Q{IS-hv|1j_D#7%y}w6I
z5t>rKCOH|dVg4V&Ec&7FV@li!L&8ZN;mM4r@+98eE>U`NB%Iz(S7C~ow}eRyD&C~{
zaUm#_RD%?E8fE6~NJJ{6d{LX256tPm#~k<yzmckx4CbSW9@(dWljlEE9ul0+E~$T_
zQ1VeB(O~#}M8cf~r3&a0^WcP*O;YHrC<-+xetcL8rp&%l()$PaLw-2zb+VJ)11i9#
zeNkoaq-;qY(UW;p36y!2;a%1SSp|&zB0*%gIXhHIMU*LO$*(`;vGG4(#QZ@8m=wNJ
zDfx)*Rh{L%iV^lIM%b$e#H|w&|7xRb$$?{oyl;Jx#ECNAv(7@D^khFdPJtvjnlAYr
zm5dTs2y%$V8YyrtT(5TG^R_$7i?}%ZHs;lC(Kk2#<Tx2Z3srAK(#icBzf*`x01?uQ
zH0EGe5vAP%jX6p!4RR7}j<FGCkjgM+;Exf!s)5g=axBhAt^LHSijX2f3W)JFoIkyW
z9kUryam*MBlc%(_n)HRN4D{Qnq$sttV<tF7_^Cl@u&2CEHuxI$MX%wx2;}CzHZJLZ
zXvo&oJK1~2W~Ps0Q8`3T>WKVI9*cl}JK@PpbEpNC_-@&nAAnWQnVe58&fskNjDLQZ
zwqK?mya5S4>nO~pyOg{U(V7pr&%`DCjLN&okIzDkV^MH!`;L7~{_zr@??NtGTvpo8
zbaDU|6Dh~s{+)?S_~}X6o(YQ9`VN@!eqYMwMI6X47l9(5KnWVFPDoMzu;2@yiOZG-
z0Np7i-QnbMI*gddl%-Ul#9&tbm=x&T(2h^|Qg*o*?3sC?FckhzE{-C^Kd?(1_A_yb
zpykaR8BUKC9j#(CSCGd9r}e&%=+)FfQv@%CG;Ya%_Or<Am_7ef4H;U_P8iZ4n#4#T
z%?&iPsit0U^rfu)-$X>}#j>bU@w6@#pNY%%qas4|rXj=3_>*nWYL2<ZN&hF@jsM9%
ze<MZ4x#6NgO!iQON#CFFMoUFWad|OYaLPYB_NTa(x*YGXm2vBBrR=N>T4e}su99L5
zfi)=j>F~w8HT%<qgwxz}Tb1mq!<Cpt*e?*~WI*=5f%gpZT@0j0u1<rfPjT>?%>E?w
z6<NncWGOK^kAKMWK9zXWz<!qVXaD?lMxOMHRwYUdZM@8iR0Tu)e~z%|pHb0oC^!|C
z++T%gk}v~B6@Dfz^_g<|d@0+ua2UU=NhwLLn)S}a1s%zqYku}YA<XIU&lAje69&?B
z`R7W(7=B|=wq(GYCB8s$>8_+VPKfV+>KFw~>6>aA^d^2M1_tGlXA}|B5PbCWO{^DA
z#WV+ygI_I>4wxmPGWbxLgp&bpDu>M-;jqLz1Mrs|U&>A^1ML6&#XrR~g3eNCJetv%
zl)}!$WlM0{t`YoAj;5&?t<xEr4=4zK8SteR?<iukCj6PpC=#Un%^oSt$uxnD%LF1v
zwd}0nGjYjBN+vpeshf(o%GckMYmREm%-qDVFLmSAjY;%mpK>0j*ec|ta6%dE4Ee-_
zFBM;Yw9WZKgF~R&^qYez>?QB75nt-wlC|4Poo^+PKuQDE21VkpJ*@w)n8u0juRKsl
z6V;AMH-b0pi#P5m-o*^OPnYr*-az{+BL0>x>1p;!s!dgsv~Uugvcrrt%|2eUj#<Nf
zLLc!hH=hxoiAzJsAey+zfwv4c{1#4wY48!9GKd74>myV0NG=Ul;!Bc0&I<kuAC2&k
zZ^=y@H>8)^uv0$iB|FHU|Egqz(6^2fN8_(gC4}hTD%5a=l4iaC8tZ-AjlDpUe-!)M
zd8`cl`;yeFe4G5r9A}uFZW2AY_jV^6c9kD>*!RDck97Sv>X&8`y1l2FhF*F!>s1YG
zdUJ~CoW}tKr&}c_KjD?1{_uZSvQfJsWDp6UIwLqKbi&oLA2tnCfg(q|=#}GH=4~)#
z;J@+o;2n(gcLrGBJGhB^2QQ+&gL8m);w;YFzXe(FZ~m1je=A^xf8+fsR`oZWC(s6m
z4EkHA%oxf28y*u0IyDeH=|)%_blZvFx!O@AseK_w>Y+eUOL`}RtYi|0^E4BgcZK5X
zpIpA5vQWySf%P{-_UTrFHn>ksD7|VGHaF672|qT-Tk~Ax!sIW)R3%I+BMJCh8E3Oz
zftrl6yuYJl>8%xVB<TU9GGx+_{N%tpL#kiNTU_K|oOkdU(lOaGVX*C?cY%Z}IkE6N
ziqIJe^JGmKP6nEhe&0iZGUSxvqcP)@F9U>!+oqzR6gb%<TS^6`{O@Hf`Ys|yH(N=E
z&`M!k@tY-PNO|fk(L5wIx6s`Ze<rTzs$@%<BYnS=@@uWLJ3|su?U<2KHAp8DlrmX6
z*7AQQF8Q4YH}Ceb=s!NpQB@K$g2|`8PRAS$d|dmNhsgmNlw_!LF#e;D6}|_9X?1hX
zc68)omQW{m9GA+N=iO2cCkln%9h9xJQvPAW#ph`7?6gM`lA%;OU&dbiJ%4ssplyTj
zpLj(1PZ&=7D6?c#gsFyUx-~PbYTpcyq9=X-jQG;T#{=X+gn2ueaFPK#{#hyP&7#{Y
zbBp@VK{oPFOvC@2U=wI#bYel7pptq&s3H@WEgi|2`}}SRCkM@w4F#u+IQdQ(34GT1
zyLpVNJT?iHz}|>tG!;cve?YeH=dk$uxQ(Nd_}#dKCrx{XqF1vCJ;@+PROHNneGt?F
zm+hvn?6vMYsU%MXr9AT#?a3htIIdcH1B)hjO*~ExnI9OSdHQEvlFuxaGTA3QW#+w3
z38$}erbz$2k;D14*Qq}Ir3lSEafxK4TKXV*!U%lApQV+YC=qS+L{zkWC;9?s#j><2
zNl&AkN`%^^W4r-LPlK2;N|7Z#f}4BzZp9a|>%(#2Q-c!ldxbC~6O?e8cPRp-fCeKO
zLN#lCTCGy@6JE7hnleNLD5Qn5G<<-1+m6kpyNl#^m*lGA%F@Q91Qp6G{LJixFEGFS
zbeDvyT<OzP3eLn6;Nh2a*}tbywrAq9r6XCAn}VM@P6=e2dQ%D{or%Y{NTmekZz4}f
zp7UY-Z$>2_;c412<qYA6v;+7&*NC9YN>TJ@;*yW({5dSoADC|rvLt`UB|Y&`>-5Wy
z??l_Pv2?fdHk1ahQ|@#lLGE00T1yg)_cLMOE>A%{34)Rig`DyNK`njL?k!u2%h!p|
z6?=L<T}I9{j9!*W5{P$7ii#nR+hIFW@G^K>qFlVbpa4JV7XnO$Ns309o*KyB?kRXI
zk^h67#J*ErY9Wh4o*6MJiBx<%D-|ViJWukQ@L?@=%eLauA`bo-j!v(X{Ac2_JvJ#@
zdfGzkL6Th)zI6Uw59g%?<}9P&$hkIoLqx`<RkF^s!2DdN(<UBocmr={o2Ee88UAk<
z71}{2@vCud+AotFGqY<(C9xb#yklRIl{V%}yMjLqyh=pT+$X%Ii+)yGR7RH^P9OC7
zuQ*!}13|0Y+EADx<gm<Cd?xM?6z>fNtj}`M-kbtwPT?hzjb31->T#~d6fl!7DES`j
zR%%sizF#2w=3#19Fpu@apo8Rx=Z-K>3M4=2cJoYJ!l|XbyVpz_9AU;3tOSIon-mK4
zloBm<!={}@mvgaZpz*z&g`yw6XI!>a?j~Os>zRTXI*Cs4nRG*J1p4PXhshKSlk(!t
zyUTaUrEHnk5^*Lj4IqIT28(1Mqco2^Q=$x1<C7L$dNp56u-Jjpl0@{*B_{(<s2Ue@
zS^T1k3xz%OTxcFVJTo8|!XH}^Cc>$K>~asmmfZONOzzY|);TpWKV@n^>k};wK13U5
zW4xV)qfgNqEN2?;M_8d~t5_x4jHMkyU)D5y&*n6&@zVx0fBB|`9EdBVpM6@iS<{Bu
zAn>tiW5Am~IuO#05rv-syfnf)xI+3;1)m<|aGSh<z-M7C^_N#hcn25sRERcfIz9zb
zZvH3%;3B}Gtm$Q%-gqRR6;BT=TsOT@OGBr&x?M7#L(DzeG{6r>>#95I^Xr6bTzFoU
z5<bBCrw0~Hk=2?teT0qhu6WlLDsVHxyJM0#gqx=jy1ME{SR@o!ni6VcjiT*gJ)#|A
zL!yndIB#d*q-h3k3s`|@D_Nyz5n#~{uz?v!#EelkBKpwE`#L^;se?~1WQC%|36*HO
zS+@=|x}+I8z6P9kM^$%>jp<0^xk1^_)Os_470X>HD-%Bnz`H7jnRqD%U0tOnvs265
zy=zncPWF6eAZH2}fZb+hKkMf_OH>yz;@uL}g|(T1*;ATjHw>f0=nkkZK1s>Duc|IS
zL(RMMR2Ltm=3SMna3AXl2NuL`QP?4E8n>oo_on=9JFGjMRZl8>T;ea?wK)<0p2TP2
zdjvT@#}`*x{Hxb0ydk}<DBrka7j{1Rn=8sofnqDO0#nGJEF?KAu;84>6;Gp<!GHGX
zQ2T-W+9-$dE2OU}5N%c#ep&(KQv@oMm4)17!9itl7G5ODLT=VhQ`D1el2cd7?o7OZ
zJQH1I|I89r!n-PzGovgz6S53Nj9>v9>r&kzE!c9Tt@==YZG=PQ71GapgZ~xEni)6o
zH1s%JKmS>YpM^)slK;~Y4v`n|D(kZh6Q95zyFllpp{!XEB500CW&zjFzf!bWv#Lyd
zf`AKD@@I7szB7^kxZ>|O@pk^H`UQQ80Q1}|gsV(-G5Tg9Tq+aU!QSjZcE);TZ8l!>
z%ML7<dRh`^muPd?KeN;4Fnx9)kj;UJO(CxaxRxE&vRdjt-8(xlbB08yd}d>0WCzZk
z(xK?^!VQE@DNtQxmv={GcQ&#+8{M_4i|q1lTy>FM-tAFc>|S|SIX`=t4Wk=V$(lW`
zg%02+xn#m>s`-y^af2_Zl-xPG9pBz`9pRPqoC1k&Xs&K=%(wWrt7$N&%#OGCW80%j
zK~$T@4LDTOX|i(zwyRpr!L(btZPT9Oijw@DW!ATTZjUSeL2WwWH<#{I53fVI{DgEU
zD`(W=FUOncoD1?}`o?bYM^?^+C17v)whFpo+o-1MIl2}sUUi90x!}_`<w^cI1=<vj
zx0EY<m%^7xeoHxr<M%)=<t=JrPE-o8lnc0Cs?s~BN1M(ST)J^{{;uMR-DQ$bFYQ$P
zgIaJ$aYcUVPV!FjU(~4ZqY_`XZO2x@%KzivQ+`pL{{;gkv?+Wh%0E=!a+rg}71B4T
z0h_C9sU_Qr3gln`yo3{kvT_R~JVNw$DL6KOpkHOuzo_6<63*%I@?uE8c&0*h3dCAs
zxLA#r+#U(%41)d^(Prfi2>5v>y&6QhxFLh$^CFy#%YRR_S-E5Qjh<cQ5#HnQNVEKv
zysX>_fsk@ILWO*85Z`Q3RK6-g3~F%CH6)xANA42>v*s4!izN0~3N|Xo=Hi=|%eGnY
ziwYEdV+`Nzv5B@csCKC+Yi<{Z?~aHr4BFPC81S+GqK%uBq>x@RsNjPVP6lloQScES
ziJd0>HbcSV621`e#|1&-3W4ug+f`P+wICwlTP7rY9=;z>z=Z}Fq~?Wrc@i!|6w<d=
zDSCX*8mE`Z2Ru)~D<yn&MD+F8)=`DPCp9?3YNcRnpMrNw_!`AfBHOHa;!8xzx2{q2
zB|$|$q@|Zw9&jM8kiO}0(PqsXCA?si{)-5xVKi?-5vZ&SehApSLJBxbC%h0K(OkjX
z3SWR9J1O2Ak%*99tQ<TGH2}C`0$ey)8p=8g8_i2E-CQom6%^GeL0wvE*`=G!;@hl>
z?5sX5ux<0EZKPmxT+$nbtp6-5Pb$)9;TN3F3am^q8rj5Ifu$K0x+I&AuS=gFSQ?vO
zDEj6{ZRjp&ehGf-Wh4JW7=hP|o>Y9@TE?!5jpY^j<rN!uaTvcsdQnugS@Zj~j4h?R
zca?13xVc15o&sNNDEzRNx#`k;NZyI>McT=pnjgr_*rKvFA4}_e*j_1V7X*731ZFS1
zOZD>b^)BV~+gH$7rQrC*xdnmw`xaE;C%ow6uCPdbK~B~JX_@I^Z$$7}Uv}bCaunU;
z!xB%CSkT1=7X(&@BOI)S`cxafeSl3Yz{;=sS!WG0-9Uu*bb$=>;aTG>!u!q2xdme^
zYT$^4Zn)_LfNs2>8WnuzdDm|TWS{W#u^HmOw<-~TTJ_aYP}V}_kLqWC^)f-f#{8@W
z9Y>SE9*)P2tU71US}-a5eFG;W3j=H#tJ{-0m))=@^@5YX&JRQi7aCU@(blGxj&`G?
z)%bK%osoB-tv<^C+R##csJ{K2ld~HFH~%HO?r_v-Xlum|vc03NspWuCZ5(Q9VfXG%
zJ#}(uPiph@P%VDvv!lAD!#KC0uA}i}UR~<RfN#~wcw_1pavS$-EZ??qQ)#gwe<&2&
z<HPw)jnyr6&Gi}U4C@y}Il{;@^7D;zGTIjz=c0?Ip{b=VzXd-!Y8c#(f{P6KI7#A-
zmevlVq4jV}-J%S3*{{=P?QkLDlI(;9MuE`=zSd}cix8c`nUbwD78)l$lfH24Iy>%g
zOH+rmvaP<uILD4sP8ktH{k0(~-843EuKOGQHT5&>p7&E%vR}QQx`EC9AobwM|M(#F
zpL1gchB#a{5WR-x{JQ#@!v`|Vut^|7f4H{89h%=*-&XH}Lay39z_=r>Z6ux;l4EM&
zOdlo?zw3Iqy}k~`BkVL<Tbi%6D`|!YhuRa->$v#*_G_A=`KpBSjM~F(JlDL5onu^A
zizId!%Ms7&w&jMg)>vHK+;pG?iY`QzTqoHsG7x(FX*Acj2pE@u&FTS^%xa!Q@JEb-
z^&5<BTQb(vwY8#ftDD>FGx%*@241t>k<tF?YUH~05HF<+E*h4_@<o-Irt#`G_<vjt
zH1I!L8yXCxpx(G%iiF05kQtE-@#dYVr38!&HL7BL#@-UV$p*t<sp%0cWqMQk%$NuX
zcP>e?k)Od;+q`guGo!q?taxLEbU8!1tbF4E&#!K7M!n~Wu<`Nbl5HavLG&;YB-+j^
zOJqQ3gs9pTki(NC2C5r%#8}0_HpR6I6GVu_@=S75%qYhA)FLYnvE(7*|7>+2GM8^~
zMq!os5#s!g*8KW5+~`0Or_aa0&JX}D*s_6AEg*uE`+>usY6=R9(8cwL(R!r5&Eb!*
z<PZ=EZe7>W#${4@Qk?A?3rs->BPFQ1u8z~h_{^FoYR#?otU%f0B>g2%xdk@2F?`JE
z3MSNGz8MI9n+CO})|hL_t8v9O*vANpmPguH&BvHhBBujjMEWrcNa^h~VJu%LN1!zp
zxm4wSQ%mfCX_|MrVhR*<6Ff;QRue%{^{P{okjhjlt6dng62d2*r26F3uhRYhsyc;g
z@;WAeRohvXwyLxYu!>SzpIne$#i&YO7NV^Pn^#<n;_GO=M$UNdTALRd=QfKHmTD>1
zHT4Iu9~itoFe|om%l@K@{bDBEzhh^SSXc6!SICIfA8D$s&+llfuSfna!W?agDH^N%
zB7?uFjzzkze#584^eZN7ULa;si)n+Rm0wTW0y&KsQgIBgSljiQIgRqQAkPpDpVggH
z{5cs?KpB4YPIw5Lxpvzq!OX*pB0&US70$^pr-<gD<Z52QejH7k8547h7`ZCBLS~X9
zkSb;iX#!kO7MRx8wnneb=ZfpwI<5tEb5qMTa`xnN9`9{1>O1Re4|mjO@Ci^rTB_Nz
z_XdoZ2=rPJX+HD}9$75Ud^L{p(T~-<xxT&KSj1zpNLa{K$w;?~#UuaIt!;JfP|SCU
zogLEJEBRlI)$K-m6Q8)68>*#A8`?5z>zkXGBgecBSo7BcdaNx%1_G>BtF{el{-8Rt
zyV+FF_0a}OtQ6c=^#k<SwHhcJg~l!ssS-wu3R02cA|e@hN@z61fVWG(7Mn(!XJ%Ci
z8nN5NOw2c(P;9PIa)MiB@ZE)2oTReqjz**7+GxE|+a_WwYMmP-hK1Z<p2cnFFuM`3
zFQc}xskx4Q`)&-KHsr4j3t6-t3yumAO|NFTlcl!lHQH9++**y@y9__V(pG;!hQyp)
z4~UV*x7FCEcZhv8j7dPpkaFP9Uz=ak)ZxjV5b*?l$=+0RXvL93ou2$0U)K<I!7Kgk
z%{BS_V9|xb(hxn|*5*lY1XBZ&+f?UCQ70#&L<+J0FvEl!ocsfAxTWzFQj0UvcI30p
z+f=^ItnO&4Y4#>TA=kIH9gcRi$GkP+h6$UH_NLYrPnyL%X8C;FA&0!sJaW@k|Ea}?
z+M8TxRQ%fz8?Nc2<F}s|y^A23rbE@8`OSE?)>3<|Ck-zK41lQ675fmYqYc=rd{j|<
zWaS|3nCkM|F~D4EBgW@E1dkil+*<qLnQcE@(|&DxNByA>4U^pYe}v^k6#Fp$79*W)
zn4~`<!?iH{n*0VN`S6DZUflfUW0k14jEi}dOtd<`p&pY4^nYk34_%vI*H)X4`}KP7
z@n5IhP1Ma*UqHK2G3W6_c#<YivIWlsW?$n`JfyBh1m?p_NU8fsQdYGxEqkV$LiVZO
zPR;qSI&QB&fKz!aRn-S%<Uc&3(I^k6njrGq>)S93EdB_VwpeQ|3I!7&DdS#$1XF^Z
z10Sx47VGLLj!)|H5w036Jz`%eZ{`IA>n6XmKS$o|ihBiflbRv+BFkwh%f}6T2PO)+
zF%+wq*dm^jv8sSy2H$Mf;&H|yvFIZ3a`7{_!wdO@XToB}!jE9I?lWzi90*P+$-I>j
z`()c%tIj?aW*lm2Zf<I?$H5o&MGbZ8(1YLMU<<0G(EX2EpdC<g4;!&e7gmXZ2{Y6R
zrMAkv*36xW*q|ZumN+vILR!p>1a?~a7M10-Ln$Xi24O81#5c!eIRD!`SP@5i#&X0K
zw_aBo<@KUWj8*5W++#y!RJR!Qu|rYpQ88KYa;-DOa8g#7VdW<v87mhVTZ$@pbzZc{
zSXpPFzf0VYw%hx#Npv}RxjcD-c>tL?7mlgKM2wXe)_Ej{yD8NiYG0I5+a~Wu`NqsF
zF!rhTKo%SRd?0n9TP!+SJF1&SgrJ;ltedu2(3XBUZJRh_LLlY#UVed=xS7Cz*cWer
zu*Us|st+{P8qEvYVCHn}1qs~2;{$Mp48I8eY9rcIdkwN+Qpw!y=XWECq@*T+6ah;l
zHL1iOkh)&l)Yg9FP<51OSFK8<<2};?wLjtN+3&YZn;9`Nauc+l6L75Um{lC5CP?AW
zE%)=&TEyW~)zh+yZ5m`z?x%RDAS9S%>QwPiwCu7&X$wWBmbzui%n#UQl-Xs!OPj^Y
z0%@r+_d&s@Hj}MD-i<Fb<Xul<H*x%7sPVCEn>sB#OiM<`#9ZklQu89#`FcJrT4+8L
zAjFAp+u%Ca@{K}0M!uSD`ACp?S49V7Gf2gS87F(@OfL>D<@VbrY;m_^f0N3%7=qaT
zWofgg>@F+9uW05MRj?bDrOnSZZ|Uv)!ibZ(OVUPCW9=QSZT0zW9o6mmnDJp*bsb+q
zuy~!zff)1V!vNf5Cf*9RH@7yd5Ul*Q1>6Hg#G?heY0eNRQ4n5y?X$!V40omcnS{y6
zUOp#nSt!vo_QSKMFU}Dnv7EPIy5lx;#h7E3pZw0Uw1!`P|E}~cyJGU>yP>|Lwvn%r
zhcQ6q35$4oz%!Q+O<v9xSzSjB+!uLi%W$Md6uw0&JVQxJ7I7B79=EA6K5Z74m+vfJ
zXS873i-Q(91*&tPj>dX!R0Hlfn{WbPM~Z{}MYySzC78b|gCEgkv@}I|Y{iPsk3cgD
z<UES7Ih{dj{q^-3C*!-)J2E#QeN8RV!yS0M!H<C!8TCi1n-Aj-L9FUHHiV_Sv1lOr
z&Goe%u+>h^{=FtWcQ@ykX2^p_d7{6_Xg%EVKa!k4&qdEk6(IJVI|DOM?x{~-G^KSd
z-+FA`xdTs2cT^aBW`f~jyPQFfYY2!4;z5F3MQku+Qk+{5NaV;|Ys5IQo@cRDpZ3p;
zDN>b_g^NV;6ZqxXHqPk@%9V>f86T=Ppi?`qJwgjh%;}?mANvbb7Ca<*M9Ug}87SPs
zi*OCCJA@KqHqZk(1;ud?R;-Rzh-^9l59GX!&2>k{h3wNU=?}(|0wvy@lVxG7j>y2E
zAjF1|baC_5oG;4G4i|)|FBC9=ZCXXyiY=!^P8U8Js&3g=TGHpUhSv0pFG}XcJ_kEI
zm|ow)3$>=TqmlcAU}T8s5eJMr`McKiHeW0w*}4BmZmdp_<M2-&q*j!y=TEpWdvU|m
zK%?OD#NxrHcs7Q|xsGDtBkAO4K9ycPJ(kg4eFS$Wt%uuc@z6DY6|WB2!_98S66LcP
zwTqi-@Q}1UihbWgPS#X|v9X~EJ#p+7t;Ts4rg9ukA%>U%u`3i)yb|8g*w*@KQM{Zc
zzoi}rih1n)&!%5=;KPmJ)%gEJH@j-lv^gicV(Ci)>K&T!5&677d_<Rz&yVD&Hczz?
z)t0EXO10{F{gE!!7tiBE;UoR3Pwk-U536=mw&h3EABWX*`zuEz;>vE-j;U5DzH&(Q
zJ5@WN+D6q@vgpzD>`m83WdEu>)fTFj_$F1qQnfj%RdTKh-g;RU`_0kxsp0Dt%l<-1
za`pJFm(5%f3SX^AuO5-`{XvCSBCnog1)ob_nR0zMtNL8}{FLkaSeI)1McdDYMLWde
zyltE8{X8ebXA?v_#v-B}XH~rY7frJNOAhP*eEN~JReey0&qN<hpUDbtN>5w4YMcYO
z4Y&gM$KT-cZ{4w5+x*RQedix5eDsd5Tv+|voA0T6;@HnMR(DhSL0<)X{-*TVa}G{$
z9=iN^Rha)B${u7N0G-=hKq$2QtK*fYxAd`s?)2=G8+uqtclyfQBrzGBFO>cDd8`Nc
zl$uI54Eo$gZaTk;@NZ36(^7dS6uulkwF7*tc8K?J<>22Q3tti8Kuz1u->$jJf*&Xm
zV9m!PaE%4OLcuk>2bB303x1H`SAxFN2G0|6*yp~Go|)T1MsnDfEuzXXHuwcNF)V1+
z?--r5@Kv2G&hZspiU7*BXDobmkm)xAU&)>0*Ngb~zJ;&LV-b$884y@aYsA+L%+irc
z-Vf=mr&*NaD=23OqVHUbzZPGB$ML(tA}*AHZ)+wcE&IMcHp=nQN`*(`tF!p`_4R%c
z=%%1T_W*s^LRaA(c8;%8>^`pkHp{&3PFBV7dnXk?-aYgEo5jByACUomdqbzf9|itt
z3x8l-!I9&sb1nFuJ_SeP`;`UXhtGCHUaUGt;Sm<!TNb{uTfwi_w3KuUUJ+ODX27#7
z_~m&DUJCe9giQ?vBJTn^WtByLmGl!6X&n%oEyV6YB?ufTms{{!au5cm9JJtjsuVp0
zrhM9hUoocOeSjY|4Vq2lT|lRth*=Dmk0=HdR?62ccq0UhYdzo(TJXIPEUx<if82uC
zD0u37fd3d7mXR2$!Jqsx@Gs>BMbE#N?_ebd<GKZiUt59>j7hN84EU=S{0cJkS-{`5
z;QNRkk@Bb5;Ehs_?@7QjEqD|3%7ttR5OXX<ZKqP41NbrvUKLbu)L81Pa7PWTYfvL}
z`7gBSn}#IRKLFBA7JPS)qV9rzzb(g?_eq2=4u&R+;UEm*SK9XgZ@1u=S4y~V1n?Uz
zcr6(k1^hM(UOBGl(fA+caN&O_yjLMo3?NQf3|A<{8a(trZ^8GKNI_Zw;BgCH*QnsY
z`~PAUU0i_?GtK`Gi@qt=DKWl5tUZ39RY+4518?w!!sb-JXH3y!b_&e1;EgI0DM(G=
z6BfLV9E$>8V8N@prJR`755z`unhXESghXidfbX&x>Qp2Gg@Et3;1v+euM`w-puzNb
z=tiZOuX%wMi+*pXr1y;iel(2u(;}uU;sFR8*Ud<DE5)2GaK9yJ4@krXe885nJxZ}J
z5AZRIzF|_5rxc)_PH=n>fA4@oJProiFl$h7trBqCLRQfu>G|pyu;sD_3i;(jk*21S
z0<6v?rxbAeDC3Ta`okZo=U5E8g&6!-1h{RPZz@p;4qtDkEc?DO1vdcSYRRc1dM^Jm
z3*OW%>3Irbsg)L@u2TuZe2~hQHdTxV6$8hnHe2)!LyEo+@avHeMc-VZ;GF&orlH|~
zAvvh6)Z2v|?tdt}Z$vWq>VWvFrQiSriwiSgs%`46npE%-z-_s|YTQQue=RxmR=w5*
z`d4g*21WcOQ|ezWhAJh<_XZ}Npas8tOw#&S06yD-S5+#-^8mM{a*v_lIe>4r6nC#z
zaISxbP0*e$g+P-rVJWC6lW^ZK1nsrpR}3loSFu$)+kzh~RB#ksS`!rect50zMxoN$
zbw2+}L^FASZrW!pK?m{_HSlS+y<lUb4St_RUq7bc;7j|S1+OAGn4r?0GU2iCUS+8d
zZQ5^4M7Ww5V0_vc+r%=V6a)c(!$v<M;Xbb5@3x{d6g`SA-L{db$>DIsKM(;zw**}=
zt{D0NKg$M(LUBPsx@}dwyi<bxn3B^!Y0)2025F6e+lJqPN=fgF03NgLWa_&mB0T`a
z5lc{Ip@eG?n0|`|uNjx{lmWo+vfz6lm|wnmfPdGF+-wRQpOVwnsDb~XaO0R{(B4MT
z{ktWosZYUSK>E)t_-;eNy8yRMu?HZSUnzVT+YGAc7hp|`gZ@>^puej5PeY2e^tUYq
zRV9j{0^4ufRN6SC;P(M;&f%D18x_0~aKn;wd5(np`T@7?^{-ZjY8~)Dc#*}>IHCmI
z0(h|nuk2KUATYSkf;Z(U`d0z3x8VE76ubxUBc{hWH2e&pgExUbrdGdw-I5_C0K~19
zpvp=m2+0e6-Gc8QSMWZ-zi%m6sK7kO!5`b`M--v}Dc)qkWA#dq-vEOx_q#zTE*^>B
zSq#+!5}fiP;I`pcGo<J{0Jp7*^^+3ruhX<CQ!P3BBt7B}f+<-RqPkNu_$mQksGEyQ
zD{6tRDJv}crW^%@;wft^`kT6l8t{uP`m4GXyb$oqmRN|rgqR6LttBX`vv?owln#J_
zU%qL;+lFVwsDx`*0)C?<@4%#jW4@TuW5H_(&h_+J@P<l7e;RPxj9S?!;4#hjHW1&p
z80sZLOF0g>?FM9bR0$da{8@|s$~*-x1N;>WzK7@`Z^{`9zBef8`64*wAGSNCy(JbR
zV}`}BdqOGbLXp{4!Aj*ZpBFMNwCL+cBz+ocEMuz$Zx~l{)&ss%!TFuiRbvvtEy}2}
zs=h$cWAJDh9Tq$y;a$AR_!kp?YNk@mM@h!#EX9qaxDasLOxw^%GZjQ-*m71yg3x9>
zXen6P$yMTt0R96@!M>n?YFa7aqZYhrK*4hWx80>z4k>syR;r9~i=lc<A;6gNj;UCE
zU<o)VnyOj!S4=8;L~g2W=DfO4!u<%{)LhW3?LdI!13mR@E(ar(uN4h>is3yVR_Q_!
z;OY}d5*HE-lK$X`gz+<}saq_A>Xd?11902w*wClwQ7cocEc(h-@KjtFHd8yGcpC48
zPDOa5uBq2s4104}|6Lfik)T4Now62u%0v77Ftx`9f03kNP5P82uclMNQ_xPeEp9c1
z67B=v)UR7|S_=eRgiV_&ZZ<gpt8KSr;J5ozZMAXvkc0<103WdwA5iqEMS$CCW3Qr5
z83FwFHhLJyFW+&%|7jbx^_3E#RUmltEQTu)8F7I@yVim?jVU-%G3^}7vzst1>6*6I
zqOVbghQ9~;^$O01ZM8!9?gL`G#juYIY6jePA96*b63+!SSoD{Zp#y+_#xf`sk)&(d
z|1k%{&{2biE!N#>y_TRWa};?8;P*k05FAn;o0GU{CoMrY#uYv2rafxOsUkT&fZJ!<
zaYbK<VLR<*%hH?56avk(|Fi^MSt#KtZv$>S)ZC}w{Cs-)OpCs5Qqubox#@h^s%=Dl
zr-b_|02hm-8ny=zGI8|*vCd+sB?W5%FSZPAg&}nLzHCOKF9H&AArjMfTXL>a@_iiM
zW|I@Up2Prgy~R*7CgDB<@S_&I4hD(~GNvE1;Csp>*!Ljdwp+ygITG%Nyy@Sz=o?BT
zJjN%U>BFW6Lr3!@g6Dkt&n<?1ol3!Rz-`0qiUCDG5Abow0Uw5O_I*PNZUAoEyIx)>
z;r?MzrP~fTniN7?0>li{pi?VJ5Q;Q3$7YZ+G^G!4+vc@)OexL*JYvyT7uw)EDFyhp
zfz}rl0!`>Di(wCe;bF*jAJQ-)5x$v#AF=4GVF<tc+yPt4uBeo7EeiOprel2@IhfZU
zY|%oulSLstx|U<)6?(u@aG+5Exo7s7aa_Vvz!$RJhwK9#zxZKU$hJp4FeJd5b{F)A
z{$wf+@9I$q&hV~f>16~C;%+?EGHCy#LSTZKkqtPlj!zN;;L9xfsxbwJo*D8`jr$)8
zf3{K~>VdGWc2#{6?wbJoD$`KCyF$^UnPEFUtAv5#dK+-t)LyCNXwWm`R?DFMC35`{
z-*Y_UYZjueP|D%sb;h@B@NT7GCg4LhI4Ldx{3jN?aX`_R0sf2yuNzVDSQQYqqnM^f
zg+LL_u-)$OQ-b_Q0sn&~sCr1zj{^Qz3tm~G;P6;au_AX<j)J4naa$3isc}CEDga`>
z#gJ-P45_wTxIKdk4uQIuN_iiPnR3AQIN-LKba$1a?*iOPaV*@}sSu?=*jBl{l?vVg
zc(dhMV^G1@0&aVPR6D8QR|5Vei~fp21@8l#|J)XBaNgi>m4E%a7Q<fUL7*E9>KuT3
z)-WaorN98)ma+;%!nO5)pSI-GmMC}>aNFMWiaZ792F2d77}WQdhzA`r{$#-`3KT;T
z4zU832hGP798KnQ3w{$KLsw>wC8t&?PRRlNQVECuc*3GQ<1<v|xz@NZS5hEa%d}0U
zHOey|iZOG$rJ!;|F(9<Tmn?V_!RLX#&VpAAYg;7;SKMYHDwU=DNGJ0P7QAXeDd2*R
z+u)5S8}Cnl*EjP>Q(H$<>wdhlf4F`>UiLn;|H!9KR(~`7t0}p=O7YI9d|z!pfA1o?
zA8$}Z@nQS=lfDPj8+~)^1a*zIHhkl^(r5Ti-tbU*O-Ah3ut4l4lqLMoFb#imcz|HM
z1w4dZ<`Vqrq=(@G?xfEJ?Sn4#^A#NQG+zM%1xwMOijov8Q*ft(b%68ZbEiT4TZuW`
zNzcE0C6S*0))*A;@L(v1XN!SzD!^LmTg>J?n!a_;vp{pZ%`2q)gXnBv*FT!Re-)R!
zLg9otA)P-d)Y|Y*Joi^PSdmtUzmKwMkEQ>54o|^qLh&}Fr>}(4H1^(O>F3V*gA1BF
z{RdX`c=|41H|u*GRNacP1}&c@l)$B3EdF@<R$mv(`(gTpb2y(<)#m|&13ygPy3Ng!
zhq)ynDZoGTf`!j1xKrE<!t!ZPq%Zd2ZI36?XQL^3BK<-);XzpICOilsnv37TUvW5l
zRtlex!h=6bzlQnm3x?U}ew2QG%*BT(BAQ@z_%P*ss6PvEhYwRwYXa`1Kd8)g(zjS{
z;7__j`jj^O&A(m6$#6u$oeI9;q2K{a0ZHd&GUXvQF%q2R*QY$p%Kjdl71O7@;vwNR
z4+*aWzQe`BHx=ArVFt#t$e6>Uj71#IN4S$=DPW(p6m;QFZhFQtG#swzyYQ!g@AFV_
zwSqh4^Mbz{|F}Wc3<CuX3gKkv^-yq!hXOAAUzGwh@`C((@fU~N<Rb_`yx^e##fvfB
zaVmY$hVNq;6SOa*;lnk8f4B%fHRLXXpRz*6i;xlfzQH*{`qW%Bb{PcU?jZx|b{lk4
z%OQs^1w4}G1^Ii>;c%Oy&>PdI-t3{^OCAbt1AGYtITi4XaCo8ued;qF@}J{yms*?p
z0)+5I$f*F47jTDyX&LScrcv~r^kK;1YZjMpueE8}3gKkf0{9;k0~&eZJB^SU0e8}0
zr{E3;rhPV<9{M5Z^Bx{hYMcsQ_n?1M!5#F|QPFP0efm=P?^Z<9J%;b}t34Fl=AnSs
zL>jzy8uSd&Tk!`~NS`i>BAFqyj2M73uaF*E>8>DjBZyp57DA*GQYQ67&?6oS9`#T_
zp?2gr^p-pQjHT}KV>8GzM~G%ns2vJs)OaZHNWlz`6wG)*$btV(1;6r8@V>hTdWt)}
zzRo=b`UZOn%>0LReT#>J?H&q{OSh`lZ}y-^gpz84f7hap5G51^y1W>58KR^J=^hc%
zUsiG)5!GK&a7T(Wb2Tm3&4bMO+yfT)88)kF;C0B$6eYmwfR4G;c;>wx>b~I~ugnMB
z<CXak<nY@ar}~E#9PXIu<MGOT$3wxp9tu!VZVJMvC;@lGE6ih&=rGqG(!&`F;bhq2
zZcx~xqQd1#3Z(o!9`e5g{cZ^i-{$Ud_yrGokBZ95cBjum<p{kohsRm_JQ%K4a3}rU
z9`vXop}<N1N+P|=e@M@I&7EQ9(nJOX5?4r{xy*z9pa*@6D}79#i7ItV!Aw-Cn+G#J
zigcz&k<KDRS4-37{~>+WN-m%K?+DSX26uyIk!Mc&J3QzqHBNe}6>gA<KmLM6FS&c1
zo#Cz^JLEy{F>126C(}cJNYB2`L&0a083g?!9`uiT(7*0M|E9<GW%eR>hS^k%j*!l#
z)HrfH+r8-Y*<|QyEB+z{v!8JHfFFUm6=@EQZ-+rSZ65ST9P*|9ke>6L2g3^v2AIiH
zFlW9y{Tzy%!=O1k-05R;$~_cN^{y5g)qhazF|o{np^mv-8j5OnTbt*+EcC*ErvjRx
z93JGZboU?^{BH9^E{3t2LAj_E%OErVAwBmF4+ccSV!+?x0{vSa2EF59(7RwvT>bd?
zhoJWr!r}4U&$=*xe(sGP^k!89Z(g8(!rh>`7?!ali@1U}!Obmo7&I@}-Q#)l-4)E+
z;6cC1q&MRaZ6SRg<=#;f^IkI<Ousn&d>T#;`uW$n(=S-095d;K{*b-^6N{V23(B1g
zTtDddc+j76_jtk6?gkk#2y&ZPjC~#qolsnbe;N2^UidYS+dSm-ddT@6n5#5xQ<9)(
zJOt4M<*12;LDu!h^z79OJ!)g2M{O)@W`p11M`a6dge7b6&&&z_Mu-=FUcsFT?{znD
z;WykpT{s3gf5ksX#1^8+eQErh*s1s}cR`D$G2<0@x(K!6ma;|5Jot)O&jZ0(YxG5w
zQ-{JuS9>t_vG|2kIOD?}8XxgsJS`Yw`Xb?DvWts6TwIKYBHAC5W3?C-yScphe0KvD
zM*+Wty?Wu4%vyah66wl(vj_7l9`vud(=Q3I$Ul&mC5XRUAuU;{;EqCCQo<r%<Q2Gt
z;_t}Ik{S<%4IYXPdMKhX=#+m4m(OP)r)8%BdjtP6@Xx$L`Vx<HF7Zg`C$_ss@)J93
zj$LF^@QD{Z7=C4Au+cAF!lLtn*|DV_6aCUn9(;9xUjRW42bUgk*T3{S4>?1SQKzwA
z{xqn^^rg>vaFbV#FfW||cU7_#XQ#Q#IUClBLUzbGy9hEq%Z~mL@1mUTF~-lP8gueq
z?_tAj9yU-dIpsXdZP3`~{+OP*`s|lIm}z7=nDgezIXn-A?KV>L4!S#@*R3X~yn8(u
zzv037B-2Y#H+de0=6M;)ALE^ae~!92C+x2OoNRaf=R^Qs&Tqb)g7$a_qO>|9cTNwC
z$#XG?99RvUd4=?IUb7oCjW8j7**rG9lF#+az~PpIW#`*DZH%3)e`hdz^|CK{@KGT-
zEMN8@>l)y*-?FDY7@zS_$R{T5mLqh_-glR?JjGqk@)E%L%Ue!C%W0@MVz<1;LlBO*
zd|?+kPbhk)oKrSA)4?aNkiH_o$`Fz@`if=loGVt^IEfEil@(=d^bdFub_H4J(71xe
zl_Li$?t+k8@y`*;6_0r6f7C<&i;%HhW3#>%)M5Rb9^7xabLY=wRX^fx=Pz|<%%^ZT
z%+J4t=`Uj8&A-=!?;9QppJWANobO!^KB^>#zLf^+S%FetiSW7&k(C}pWMwlOeF^$j
z-sr*id3QTkKF$Wu;bU^;uRIuE@?d<s_xI3uZpfXDziH^Uj-0!ejq=s>+$|n_+dcTY
z0Oub|ag@=yy&iJz@Q{Oh0^clcbF!f4JOsVqA?S_XZ}G?B1vA;i<-zQf0(>(63_e+3
za3$#TlMO9sbC+Lm#9e+t9~*oneRk|254MLr*f31^C$^k%DtO&P4h<wn9j*#OMxo2S
z)2c=8f>zPMateyDvYEWVR_*g(q^Z!!*va$-7zwLx^WdY*JNX7#{~XTuj0Ybj+Q~Q0
zx)x8tVzD~KopE)Vf;$*j8weG@0dth*>UAD+Hh9RXgp9xNeU?*Di-#a8DW^dLtpB$d
zo2xw*ht;Rt4Olae_4AvIHLKnAtvTO=uZnf$AmVGt9`IWievr_k#MgX}>93{FUiGwx
zI!d6!y*2N#=v-b=YeVjgYs2n#t}SC-SMlw@+8PhW1`ozQz~?6?X6*wWavt)K!>i;`
z)=?S^$IjF7_u^!k=Xs2;^E}4ac`G4fJ^nd@eje|0xFdS!RRFdJo9H*wGh^r7=<dLI
zpLciQye}!CPGz@wC>sVG!FE>kd2b2%%ag5s$6fLHIx}{l#Li#lZt(etg4=R)ehKRu
zM~QhP{CtmupWnqsb*xh7(<<Wd_x!s()D6Mc?qq+@f6l|~7d+&=4H@@q>=S1PGgn^_
zc4xjI+nxD>LRR)C4C4#-c<|9g?5K<ju4h%h#18KQ52r8iaQcE_7>nw3Ci#MwJ@mig
zZg(MHa&k2G)a$s%+~Lk!Snk2w1>Vb(Z76)&LypJX^2r>~pN-#LedOlgj7#)S;vQZ*
zH(Bf_X-0F@#V4<GH}8`}Z17JgL-O3o_L@7}x)K(BkWX0aj>3kUlkHg7>+aq<N}(gg
z>)r$X++;Zy!XUTZ=7r~T_)IW31YOw33W6Aq7vAQ<NQOE2;;d(TFnjy@CE(*TQ3n2*
zS4dwk6awIg(E4>sk3-)2qrFe@UD*2j<oVco%Bz!~2B3rgB8?fxg0pJ%i##H55gFuU
zJm~KDMJ?`zUi2)BZ^Ddnkw*z!<WT|}bOeJRUpWG`p%AdWE^v>5v!Ptrg<DaFBO7Q`
zJ0iB>UUx?}yyWiq1{&=S`4?x~>G`d&xbWMWx$X)smX;=!z{Pt!=)YuFV3U8F3q5}n
zb+Jc{T<lRJ7r*bWAd=#u0P-VLtB#09HsDc|+aeXAnsG9;c_?_m!=Q&e=qWX;`Du`O
z!BQ$lN6t1T<ct{bleiu!+gR>y(8i>c3H=b%35N3^*iqFRZ}t#GId&TQBxKy;BFCdh
zH&#<99D+9SIqp}<f;KI4H)zvJ1$WA+V8btC?cMZw4?c3x$@d_OKEr4FO;30*p7K!m
zt_S`5?)00<a7V3eM&I?Ee)B<h1)Ezu6nw*j{s9kqn)tXu{6iG-!mpXW?#@u;;X#q`
z0Njqy7L~H$|H9ha=5ANf5f3%^x%9bM;fkL2;CsfMuXvi^ixn?&=PO?7!FRU@{k<Oa
zFL=<SiZRLHfWr}oEg9|%TSD#%wiL0*ll;hR%RUdrt34RIS>$2C=;6{950|#YS%e=k
zZh6Z?;XCdMw|Z2>R*#C<TH`K%YlDC%uaR3l9NFsO$X1WsY?Zl5N=*r+00!G$m%@)L
zhuu9c+2rm)$rca#&w9|`=t9re$dZRW7#?w9;Ph{L(7)wQzip8_{Wgpa*EMn*6`Kf=
zoFn)X^lddB3U2dI(Cb0}oJpU!Ms9n-ond>5$w1bi#Sd|(dC+h0px@-AS8L?<BOVOb
zIT^TqD1OL;{$UULS3Kxruemc^k_SD5_=kzax<dLT9;vy+BQ=*$3LL4t<PNEKpL6EA
z1b5ZG*)EE$oLTlD5|?<StaJ%0dmD>$>G|%Sm#%YnytJ-Y=jTnO6nTf?r8K%6Gj8b!
z8+;e~F7+stOFc^E(t_SaQ*ckR1DSJs*uUcu1$XGX4A0tp{4Enlf-b{(uq*rsi~a*2
zn!AqmKc1dla~a=E@f%Gi`?v?3A5yr`mm`egLqZfLUN=Zf`G(&2pskD*@TQJcy_Y_h
zZT?4kR!Vu7gx$i1=S{)gT=|3IZZ5a{X@?}?FeE)I=*8=JevnWc2pyN=#)XuW^7okW
zPiR~#n+>dt_aYLxYX|G%-AajUlucA2kIL?G*~De@J~JM}*DhCNu*m!Ps@;nDuz-J%
zlibzuH{7jQ#G>!x+ntv>(EOBxqnELMj$Vl#_d#*{BKVu5SF=%$MrkFWaXul?H}-x2
ztFhAJz&54gE>^(14~mA}|3SLWT0ck+W}Z^q6rd;@{UCk8oR<=XYW?VQov*NAF6LF%
z^8uvpPGJ*hPwWWJ@r6zpc*e0?m-==uIZ+lwK*j&-6|7A3s>J`D;{RLt|8wqxZ2oar
zM^){9h3P(^UkA#b!#Mh|W%nCwB74fLx%!@Eih#mfA_?}aW>N4XtDMfS@7cuqxxDR)
zoLt782A8*|l;rJG1SD@j5!CdiKwKS(yMq<*{@o(UDSJj(74N>p%KQk#p3}1XI_nbM
z3E7>Lq1Zc(O>p9avQYN6FvE{-pM*ZZMetk+nn$^W*}h@f8&LvI^8(IJsocZjz|J9)
zl~2AZX>#RJNnY8<`U4O$pG5+}?A*&KVnnV&aQRwERwA1U$$WXE>|QULIX5Rp$JZ@Y
zU4DzA?(I#5ru!t%paSAqC(K>FFT=syCz<z!6r2nq_&mwKuR!qo_OWv@Go<W0+WTiX
zzptM+tM@sI)u-~c?-hqog1^m-G?=JK*;mYz-3l%&_X;dk;?vtQ`8Pbw4McTZ(ZYIC
z5xOhx@W9_K@F`ae2-B{_&u6D2FJVyIYL|ceE|+%Y5*7j4S0GKe5*umWt(46jte^AV
z>);($yqNkp@vv;3RU*WUmYs4{F6#*byNC_*X00rftJGX}RfX!~aE_PHRVcM7sMf0<
zW?iCvT){_Gds<4rYJwS4g0pk@(*j;AJdNfR(ywN%S;5)4SJwgNhQ>GMgBwF5&KpdU
zXxQ(j1cRBB?+Gpqf+m@s0g`}JyFW*ESIFk5Y<gLg)7&L`bG`vaTZB`%AV}JeCr6wL
zQR4I8{uf!nRCF_Xry_~`>%J10bjeh;L{h1=R29i?rEG3yJrFVHHV3bvc<+-`s^Y6q
z@m%2;E1SmkG6RjX98!e)A-x*g4o;=?Ru{=`rD)i<rv>Z8D#(^j$3(l7MW#a(tqLlF
zDP_`(nnD%@+E*$YR1|l=rdf1X@ofPQ)@n|S@3X1m|A+LNC(zh~NbnIU1>b1TWvbP(
z<~>#w3eH}&PBD?NDEbgqyGg;xGJ;nKHeZ!AskTFQ@#6~+hB)!Yoa;%Znp|ozeRA}>
z4$%r-7nJ2%H&e>SSM>Ap-d<Ou=t-QKR_YoYatPiCIIke8??L<xm+Ee0!=YeyP2K0w
zwZ}=#D0SQp7ruI$)=2-5l*hmQB|#3sXEI$!Wchx<o~Cidw#dOo@FjvRR-VXq)}&(F
zlL((f@O_DJe!#`Ot#?GnlygwgtHhdeS|mJ7yDU>skFX271@4vaZ8m`*u5RFgvU%q(
zL?3D!(iB{YH{n6Sm)r0p@SXTa$-$q3?``n{>l(f3W%TWWBa)!$H3cWZ1eXS-99+cu
z@hC6%;8M^9@K4g+@Nf`+!?1(*_0Hk@hii&t+q{IgF}-;J=%e`OFsS*o2b{;<h5ita
zmm8eh;RY||aDETyP<*J-gMkZi6V&ekf7}B;W`kSzz#;vR$3DMBw=v*Pd4=?r75K}=
zpq3I3cwI6acW4mQm5ku<)+!HpBa38VAh$+6@I4;zJ`Z@m2Yf*2$!#6<zz?wkyli%f
z-a70-FyaA63iwxPIaA*nXYt=*`_lS`!cPT_c_AS0NqiK%g5QCU&QtjNz{Iyej?#)w
zu&%#C{-=20Y%^U7w-W*X)F|sZjfLh@Z?NI}_~W)VgGKO;&73wKITwaD_M=n5Y|u%@
z)otT2Y%^#birbd}_KFJ}I~vH(ZRZBN$Zvm<4WA0)?x3C5ri*}%_t@YpY<&)6i;4H&
z=jw+a2BCfW=tdu|9e#vGvpM0An1@n2pOuWASPsFsM!)t(2cwF~wVzk;0xk%$3EnLP
z#jd-K1MyF-4uL#Q71FQ!tOFiY@H-S-$usHicEA<=XZUK5@A@P8*N)<E$p6fv0-i+^
zokoc3)r9!j@5!0E>s=7q4Xl&`Zs76ea59A8)8sOIgQ40Layh;sqWWt0d9+7;<lv@U
z7|6eN#qljiH_cb@09Qy?NWW<j{{9>OIqCV#&EZb^3cya{pQEU5YT&ed+LeO7`ht$X
z5t^G0GJOvA88>sh3;IhE{eTDhAvTD&oMPS20>2Ia9BR9HDgHDW{slfAy1|<Pcad}R
zQNTNs<=o82+Ibo~{6tXq>o;Tb_5>e_H^=FZN%hAUgW``h`WJKDHGHuYaGqu50hR6-
zuO!BPcY<5^9fFI=x0JKtvoKt5p}h!|P89SA{4JGok^fSiL++Twe+f6kxd`o-ur%S7
zb<;48<@{eRL}NEt@qPJv(C-4yk%}+h;x4C$j~y2|w=EI$(CiR&tlwSGu@N>g6SKx~
zP1L$yKR#2up<Z*`aJT3<kH`u9b0|2@Yt=pod(el+#}6tvMUvpna+*3m%A#26QjWi>
z=C>0aP|PdMp`fpnMer77N?#Ql#o<6oAJ$0pxA!4*+Am$`k9)}J_n?1)=|95K(Dy4=
zfD%~U_Y&yr4#m-jLw&C(I5|Y{S9`^Za(kMT^Z(KHJ@8Q#SKG@5VH085yJ83dam6T+
zm(mz4BBk~gQPY4lB87;ED<GtlVoDKGr0hz0C7)W1lya#eE)*dG#VsNrrMNGpG)2TT
zB2ufkQi_oxt`rd|#qT*YXKrT4yZQZY=FW5e&N*l1{@J^Ce_bH;{MtCVZl9ETer=pw
zyLea9Gd#3{W)<l+;;@2B#Unl|mgm5CI?=!5rs#?T(4~*(9Qqi~ik58r5?+>99AaFJ
zQ}L^~Fz)idE2qW^@Ok<7Y^luKvqPN3M>s@3OQr2Gj%Sz4JU_c#e8*yV=-I<?#3R8g
z;i#8_m9$`{u^E9|*(em|g;wqtJ3T@xPeOyoEPc)=W^ws*(Bw5MpDTrSk2&z%C@0Yy
zR}f>IW@^Sc8M@c_+{9&9W38rnKx?%O+o~2CI>P_l3@0VHaPOLg7PC;wiQtaAKM~-z
zpJ<B{2}rHSW(+PN@8=};h+9pGv*6HjeMueqFqXK;xXK;lt1w_(^Y~YVW$msil(oAG
z2fi#lRZ`EY-i989mr(5v2(4OR$Q7}iajJ2N!f~o0?tQLWO;La&>tz^LZFQoEPVuU}
zP~Z{0Rfn7g(92g*QR;Ltz+h<gXzvWKu8|pDonzfy-2i<a8U78Y<2N!L<-bXQ&m$dc
zX0t!?oM~0dAoP)dHIFU37D?Vj|G&EhP#T+&$~Aku>v|1%z3P3<1v#;v4~dCY`Fzxy
z@A+x4MaK+2kGrG-`|#=cxr~dL;ao%E^PJEjIxs&kSCH8A2f^qu5uZN|T(7ny`lQ&b
zLQGhJpGQOd%An#mtCRWHlGtTF=d)nInz%ONJ-W5kIq=C4PGd8oyf#OM)-G@|SEB;g
z;v}gL?s4pbsP1bDeT;4GZZuSIMuOMwmE!B<H^e4|)=@Mm5QhDA<Zl-boU)_`vk83|
zTsM<(6*Ps<T6P^OYM~SFgM;BZs;L*Snb!8Pw90)e`lPjmaivw^2Zh#SLaV<K)qWLb
zSz~3kmJXx@S{g?(&RSf&N-isnc&r}Y`5W=^6CNEbZ={TBW9-1oK;tGukHV9zC&hYj
zF$R6bF9g8<5;kMBFH}2;lepvl0_9k@Q-MDGeSs=oOKJy&&y#juSmHE4OO^k^(@wk$
zj=!)%5Q^7FkTj12#`+uNa<U$Zybc)a$HSn<a<aZztm^GHI9Hy>@1t&@Q<?SHjPY!c
zpCfEoBktL6tdNI<jnlbJh_-y=G4C1hTPXBeH+~xtCkDm89RvoCY5m)3xvu<nx>#5I
zzpdvMpPAqQ9^2H_Tkoc!(5FW|iaw&g>9%ZKoj7b#Ri&y&@f%g;@>f9*F9)$rwK<&F
zo&(3?>a`raSPHxjn-TgKtATlZ==Y*rR&a4@3e?Fcy|`4g6JOlu?MO0^1Mdxk`ob~<
zeMB$WpK%$bRV@lH6IqHS2j`HxIfoq8yvKl(6LaXH^@sd2?eD}m2I2w#^BpaJvQ?Jk
z@0K}HeD}})yQi0xW4`~c*?X+NOGDp!Y(@+>`}j<4b5xY5v-SFb^#dO8<^>S&aAfmB
z;2veXc?od69G9byfNoyKxEzqLgTnFYCeDS5H)ARFnl_vFhzk~{e|f-i9_$zB=zl4U
zQFiNI;?4ik4T8V?C8PX1)Ji{Isx<si_z1Zey_6906JOe&L;qpOr?DA9eCaqaij!RO
z-GX`P1mkktZ8*M+gbT6qEk&Rc&Cs`nPFTJ0l`_{`R#UDkw`^tghS@DU7&pwmj8(*I
zg1y{Zs(raXsrA2nGd0C8quRVG=H=7OeU{k5TYH&KIEilry4}Pjv~>o^dP$_vM@ej@
z8rP2t3ZErQV(T8zJr;wlEz<hdBf{6Mr>L2@?HzFI37~ZmR<<2sTt!0RM-6`VcAHA1
z;#YWvZ|rSXOM?;e?bIg+48iS_<t*J^FWT5Eoxrmmo00KXMzOroI|6+S;FU3qE4>Pz
z2wV?qhWV#3F8O^O6kY?I7xKzij-ivrW;$`kyX<#_a^PiR$r!qWqN+L55&Y!*4r3as
zqsop-=4U7I;7R5t6y7BPConj0<^9uhm|Fock5y;KTHt!}tI;R(n;4g7R<$U6yEt5w
z@7ND|9X2BjI}Wj&$_2%a^c{8V{&4g6MKY(qpW>8#1I73IY0PgEpKnzQ=>-4pm0vdX
zHQb!GaUz3XO<SA#;Ez)S{2eC>JH@|0fv#R-^-Mo04}UvB^ExBiiNlZA>bi3r<n^?b
zN_{&gFs{<0@Ti!Yl{=T`(6<J1X>3M3{}2Gb$C=z8ddf4oKfsQc-+veeT^?t0e^?>n
zU%ZQAvHq*}c6AcxZo5jTDc-dJ9Qr7^3U)o}#BqY`-z9Io`*+FD3@3$N^+SMEtMtdQ
zk2Jj60S)0cHZ47`(r|TtHt=eYaijcRy;h{N{MEh&y&iqClR)FK^1ZrV$oXI0EXuC(
zRaHhd__gwSRh5yltMu*z7x`)82b}cRP+qUL81yLm@F(S${-)IU4f)h~uzC2Knj-y8
z%@F?fP0a+K9zUKYso9LXdYz;lC@g4Uzf+G%|5A$$z9{<S-%&XYQ^%QZ6W%u6{*R7&
z9%b@>%C3>;|C<Yb-Oo7su=9UUi}A$%Zza=Rf0@3UaiuTC_+G|s>cg)THPEN>q4=8^
zKY&)ZukaRu<3m;@(98md3;~6|!?@x<%>3%0Xj2~!Df}#YWLWVlJ?9y>(fT?;fC;-h
z@lkPiA#*56*0{TvaT~2>X*ZsA5-*tA-5>COut`B;!e217oBD*8QD6N5ABcSq7k3Y4
z+!nlT9!@j(Q$&ZJ8HCg4)iyRQDZ6K)=jG6B#!ZLj0@oc%p-%?p8@LMD0>*8$*N|aF
zc$5j!fLkSh#KT+&RbJ?iXPl}{bi?nD7s077XgrVh(EKEvUF@jvfIPX~Q|V;zElU5M
zkxpbdwbf3;wKxggGXXLlL*6ryan^?({(_-B@Q5BD+Jg@}(H8Hy0Qj5O3W%=$f}uYJ
zB;TJRP697OnfNElwH_)il0Q+d3AeFnMe?UH=;`BJPGsmE$G94&!lO<IFEH@`i65xk
z%l7w{$Z_uN3ptN*?o~BtjC1c6>Hpq?a-4fxA@4EHy*O}CJpLTwRz9*-{O4ib{C}=u
zz7--a{y(3S{{5Nq>fv9LpK-&#rdd+Hsa42NY&w-g{&Wuc^T74^CeTNG|6<k=<NE?4
zzOjA1z^3Q1S<3C}&A3hdw#wc&3q6mx?OOueOV2XKZM3?cM)Yp+InN)&)$eOvMG(th
zqojH$c}*3Y4Z5b}HGCpMZ{~Te5~wc6#rWDt#%;7(G498!3Td+JC%Q+H_K#xRNYegh
zX>b1#&^_$!Kgzg`R<rjyPtMn80`;)>dXDwzKzm`Y@<14J9`+6tGH#>Q>>aoPJ&z<E
z*eJ(+U^D0*ejM1!xH0ZGdI~=#zG3Ev<NSu1AB8W5zI(BiV{`w4p*NPGL%3;Yr&t~*
zh2A&=VjZ>uZ0=t$)I0?p4~5Os7&jFDl?>~%f~pR);;#dpvMQV<{gsY1`YNmFH#<?#
z{eQK^YCEyzY4AOc%@|0_O2!SlEyipN1i%NoEwn0V_7wi6{1~bHO$xAwoi{1Kgd29=
z-0P(7f}d~hb26gcFOLofhf4h5Z4y6N!FY=kuK@o+d{j&0JNS;16#XM|ya&^Ayl>5e
zt<SI-@qdes4j%ZS9Q=oNdh@?M(+PbS_TQc@^YHdu@M&@B*n~df_4a(}*V}R7SL|>E
za052Oufui@JemVf1Ah&hq33ULU~|5Tzq1h7ckt%1(tzdvdnYGd0_XpZN2<_P{+)`(
zBPf4A2b`9BHlhyU?*j6~15Pu(G&wx<Zao-0M)~dvLy-6orFY4YhXe2R6bc7~-lMY7
zJz>H3C~Z2v9DOK!Z^g22(YKx6+n$4-!{CvSFqjuQ(&!}din$)4BXm{nu@W6Q;-v1t
z1Uy13rZzzX5%l4~krPfv&`&X)3*V(@WI?|l5Qbu*_tkMm&d^mY<RTQkPcxU6PN~4f
z)5VM%{AqPOH26OVdh>q}CcNuc4SawT4V>!vLr0zWM+Un2kIr+_BT+R+8-&Msp?}o!
zx!|#L6z#mwKk+f-O=72%DgPXzcB+_k{07N;e6#=tgpN;uX+3~-=wsZ+>5!t$sDQ%d
zCqlhHRObb}q6G#?xeuvWg+8bL&cGE;=c+)y|HH5ozZ0L8b(KN?u$j}`8jxdZE#fh?
z-oU^x1&kK=Mq{nCQ0i`Gq`B73S$O+_HH`1h!hQJx#?1wk^?XF>X&bJq=Oao_9`2Q?
zl~XDDs7Tya_-K}F&WMo}pBS2LHqa!^o~U$^cOrQws$>NI#kZLMg|kI*KL7E4q37c>
z)Ks482{CP61(r)Sr?N-u%a1Tl$K5vX+i>|rV)-YeON(B<E#*E@$&$tDbMa2X&GJu1
z8FKY3H;!>7r||JYZsI4Zc*=<%zjn_4f3g4_&5uA8QG=mR9%WqVQ~ZmwahJbAhVhdv
zP72RZP5fjp^RYdbZ(lZ^UyDB3JHR;GbNO4cahLy~llVUBH!denW+~66%oa{xW<MjJ
zW<(xOi|Uwo`exRr{Hj48_D>sSlHbhuZOpIyQv8+KxXVAnsTzyt8OAVKg}as2sWd74
z9OG)vvzdIwKUt{jKGU$K#Oek4dRh^+B+}X?2BoGbYjyF2)VdQ~9yR^%u5!x%yC1hU
zw^h6Z{2Mnk#j<v0y^|b^HUErJ?Nr3%z!{ufSL5TLchRfECUK(SFBtmF$I1GvL>`?!
zQ_<$|6xhsYMBBxA(tb9cJ^Kt_nxQA?KEo|!;o)b;_y~M<7F1o2&G6x@F#!t5PxyA$
zm;f#=Z$}oNrQkJq=#$Ux<%Q1TGFL1l=hPwe+(uqx&z%uFlR{sRGg{&bQs~3@7i#TO
zaX8F)7%lO0LS6ns16TYNZ1H@VoSx_L{Up3BFE4by&Pi?%J5M-C+_nJHC|8*CXIYoB
zU4%Y-I)C1<q3{b*?mx!NDxly%?muc~DW4TSjOAvtUTLrWKra3N%+0dbhU4qI^bq(3
zT+WO5UckeUa!1{Y`R{1CD*ShrsDd7$i+!_f_&SxM58o~hbV3to@E7G#p!ni=;C0xH
zD!Dj|ZCu<bR+BG7vSCAC;;{fxZePxmmcLZ%(U%)Zu+Z-l6`p7LaD7XhmT$Bml(#d&
z)>($tYBvU6XsK4XUz}1F`u(FRwT12c&iC%cxrkrn6Yx?>XQ4l@y_3F|+G3~dK0MQ(
z*DG6HCmVfV(8_b(hj@A3L?(06JJm3G3getS7q1cO%k#36=j)VYx$NY%;W%XyZZ#}}
zSN^;N&D+BAyiJCASp!zyX2ZO~w+J=u@|-UxVDNc|S<P`nO&on1<O#;rC=`BDsF~Ql
zKj`|!_yzPK*Pf!GpJ^(ba^{5_%h#nD)`N46Nf>7Pk?3nVb?KwB@y-=2H(ExkeTJgd
z?h@z4MvV57o+5Ua^b>>jUs55v)!dyWy9>FylomwPTZdt&SZe7zv(z4xZN~;tu~tXC
zUQ`rj$CRwtjyS>!Adn_bzm@NNi3f@Dto$-5nSYzpJQ<6BzA>uK3F&=)m6M)?#lIF^
z?I@GagUhcMj^?kBO;R=~naTVX2x$vr=Ni`e4&$6j7k^hos<>c;x3Pk8P7-xjSunxS
z+a&cCsQOnGLNF>o{06L+vCfKL*1x}?frE5u2d8#2&PReyf|`&_+@-h$OS8XIs|;CZ
zS~f0^S;B3Pm~=L$Q%JheSxqM@Nc<@`I?qQ(bFY))UyzNv{0o6!<{Y~>5H1greLci!
z^fBb1Iwq+QD;(Fz2w{1!7;Ktcki<x?H{&el;w3CczUy+OEH~JYQ}_^;%Z^F=8!K2&
z#YEa`!^QF8@^Y)oP{Uwa3U)E-HK=gs$|;y$U25pgC1yyMc}`>s>buKoLr<Lbtas9&
z`@8IRG7sQ;4qf&!p9(;N`HnKq$qS|!H&!KuhYY{F2z^0|exy=Qwu@6hF7rA6yf<JK
zhvMjbfsL~0{y})DI9ybQk^ueKn9kP$R%kacJv-+}7;<|VSA$Y`lgLhS=(HghMW5u(
zI`QcUPUyUoq#%VZI!WqVJ|P#gdV@_{a^EB|$XVAiZd2d4%Ec+$I)8x3;HMctxQ&hY
z6}}8T@|A;5M8W?wnsfBVJRXq1Nzr=j=>`M=_$C7n5drvS#-*NBZz_C;ffGCU!=uo+
z-|WI~--f0$VGI+bqBi_2aE}p$&oeIhNeTXf)@2mAUtlvvd|6+{b$+}J%DU_*94hq?
zIL^2(K>R1bJI;gu6yqlUY2Y3ay$l13Wf3@Mm(j@dT%s#RcG19@ziS8J9uewFwN1F;
zP}g2Af7>@<$v{^sMh}6W(_8`UsK21qa|ZT3_^+Z7{{)+nf~zQ%gu4#$2zp25@u7FE
z6W@TtQ}2af@?)bB;4gnW{SR7K6aQCl2U=I#IdFM$S$y@<9P~zUy=7g!8L19}$8h-S
zt&F=4g9m<;lsTbN+yt~rhN17_XvugvppuzRb1eo`G8=r_veKoN70qRw4Rony+&G}Q
z{Bf~t_)AiBgZA<PR!NJu=Ou@7c%Bv~7O`teU`ThoNgBSUKU%6i83}hfUqgMurK4^5
zK!cxZ3lX|zFyo3};gku#_PZ_l%J9=HU>aU&C<>uZ238yV%D`HKU*YR@{#e_Jdd+4-
z09|2VFXN^|2N+i)V~4J-0`5_p*B<u3FTn`<REQcW@3YW@f#?(wy=EHGCw#RN{V`5J
z`jBERg$1ROE*c##Vw|s-O2x@n536)Y4*4oNIRky3L05VfibJTs^a*(~S4yw4A^x2P
zzw#$d*V={tQhaL}liPnCZmUrLy2;`aZQ^yN9hSQe`r37ZPF@7Chrgh8T?-mLF3TB5
z$qQU2#@9vRho!x~e8%5b_&vbt`;MWfRqE+`#L%PgwA9ltDd%>-cg3lCzmxI`<7){%
z1@4bK2@hd>{Tl_ne@Zl8#|Mq#GUDqgd7<(3lTuBYj|pWpg0T!&u(%fVmpvir*Nf}>
zLjUziDR(`-=s@bPPqSP(E_DeQ5D@~!Hw=USdj7Y|aeV{75e2^3z#Q~}OL*L};C)>V
zOSyr|vhh%qahjQw2NiF{Pcu`)UH&z|aensMtU$QkK{=R#XLt}dE|sIYQLM;$){Q#_
zVYoHOhLk><M)XkygGQp!tKb~tqZn6SDO_GdRt}1S?xk-A%kk(#LLPQzX6tkDS)v+Z
zH=P0ftM}8a!Q`iIhodt%W#IMbV?2YKa^TH5aMI_e+y6X03Y4N&QAUH$$ujz8C(-?8
zPwvi>UDPPuaQNm5Z|&cd+P|WFNI-}WDU#ZTl*pxEh<KhIhod1a(AOTDjN+<;9K|6t
z*9ezcaq(~6AZoYxTXb0X>W698w;E+l-#pY?-may!XMknTWx8S4UXVj>xm>$!yayL^
zqWn9QDXp499L(>~sg+*K3J-|v7Z2?Tx}N3j=p&m$Q%>zqaLsfJ@$2+PNx$WcpqCFD
zZ_rtOSVIncxm-(!9hPh9urnebx3(AgD84mhh_So3MkHIA%=)cE!KRNki9Wo(Rm~}x
zC7-xRA{=)xXvMyDmb|HUds?Rb_Kb{P#SPvo^>=p|cGA+$clSD>dC>P=xiWYEZU%TA
zHe;o)biVyKZpsbs3X&c~Do(gH{2&^SsW)PfTwF%Tvp@d`c~^3{HDZsUh_i7AU4rNa
z6u!m4Ih=Q-ML6%k@M#j=aUN`1IISx5;olt>8Ru{+e56l=vwUQwAs0a(awCm2SPGYE
zC?BboBw6gf&^eZyjaDyKh1bdSjpQTG$alrs+QYh&W~4rD4(y$HcUcVixwDkpIx*fm
z>&190?_6q#aaiu$%J!vS?Qi5T-l@t!#-R=0LwB$-dq>eM(^ri_=pzuLs2=oHL*WPn
zepYpoHR@4Aa0m-NW(X?WIHx<P6t)=rjNgTqTG4&0yC#b^cGom-dw0>nLwA(z-9?8^
zeP9ZIItTwDgJ1bUrzGv$KI>hj93SnI4vy~Ulsy4QM=#|*ZcB&=eSeIhkv;hSIByTW
zPr1@Pw$Vo_zQ2ocnZs2F6@EeffTT61H#5lOy9{Hl^%fixWe>;Xi0POdF&(oYhapu9
zhKFNP!cfc_v(FIZP>eZXc*ywJz6L)hW9&eKU*X0**GucbhtQ23Mf`N7twN&=sN5)z
z6+Rxk+O%{P%_K!0dS)|j>UkH-vRWUV;s5DakY`ojAfkaCydV%2GqJkTTWK{dLLMbu
z-D2?D=wp=ChZt8*Fn%}A_ECv>*4>lE&H(G~$Cy)vLvb$7p+VL1-6sq|j@R9%3_*oo
z0PYdTafE5>^<~ZIV+i94oLUDb$m5C(x#dhBg;tM0Cw`onM}@07W(;)P1lD7OYTQJD
zqf(Rr4`kdFLqOrv42LSvr-961+@`*7)j@?XKu;fl(vvlH@ZkJGMM#L{r0=+`IRw>e
zp++*q2|XGp?0wJ%KRNOa%PBhJ_w*FCFv+@SC^Hx%zUMYWkR7^5MMCj&sP9pcP=*wq
z6o&rCy61QfL#n2f;E-jDv;mASF#NF5$H2x{@BqfoWCrCBJ34+g<E~y7TxRgIqvM}8
z_!WMP4c%L42(qDjiw!}A4>b5~^x^rvgBe$jDSVzXw3-==5#77i5LAZt8vN|}z55J)
z#wW-HVUjiBHbamVPN*~l6+Xq_x6#LlCQM`87}11{Vni`(LJKn(Bbso?5LAX#)hd4F
zxjYKDUBoE-grUC*eR52!OT)0QJY&LrW^NR2=0@QSj$MzV`+fVJ=nt`GM^(<1gY0;;
z7dxWtDSSTTik}^iK5FnQ{IEQmxSvmd?w8Ae|NcGnWIfjMiSm5NKXJJTaSv+}S@O7k
zn>5}@KZYfB(lWyX_H5GAh6f5?Z}78clXe;W3O{b}bL1w;)Zi*vg@g%{7YfhwtjQU=
z!ld`t(qU?V^+1j_@`1<Lf{m8eRQB|NC!EaRDJBmzshw8dnNqRr322@!x-n}?9CCha
z1=#R+>2mrXw5F^;qvL$qJe5}MzhYy4?BOqHP0iuqR5P3G;Z#w!{UB?kf2s<aiVX*|
zX0$wstXax2s!8#PYMPxW4e6xl_poX*(CXp(4;He(w1~|Aw25H!IPy%J!nksQeV(R{
zV1~=nW*YqL@-(x;InC2#tiGE6X}AVjjFEI=M}H_Qd4To9&4#C}>4#el%ZyJiVhz*r
zXb}n_W=%I|H;-w$IlC23nmmFy-He$HKIDJ888d|^aJo0#IrhzbYk)O<FL*ryKK&iW
zg-}}=PnSg-vwl<r2HhL3(jS>;w+gQ|`0LS!mp_W;z{z|4<SUIn@lPY1&XUUrz@5T0
z{RaUT=k30aU1J*jh)O|I)HT5Ta~WqnF1`@B*TBeOg?|hCmp0-b8QzV?BZNOvp_K;Q
zm0(6!Couu5^o${*EuV41kgt(?XPjqT$us_-c$;UT|H1K6&x3JZZ67==b_Q6r<GeN2
zQtZf6Lu2husj0S=HT`&)*y&--90YDPXzZ#dZDu~<MEcNUGBY=-os(i`fb|nfxQED3
zHX1k;1j6?dJa~$56#wKTy3b)V@;9qgIyVcitbxfM)+|cUJP$^^Xh*ED4^`vm5b-k8
z$>PC;;nqXM?BUTv4F=90J(K|M;mJd-(v#WvP7)<>c0X=aFlO)MV9b`m=wZ$21XUis
z&gsXTbMT6Haj2~8O22Yh7^{myq7Iu8hPp?AX;pTp7JY=Tj>^*Gh+6k_4*vCwa}Bt9
z<hpf>TO2N7hoNW|`efKR#2!*O4gy{AW0F?gK0}a3MS|iugI$~YzEy`5eiS`@gmEH+
z|2X3|^}!#f1~`@?7>ZeSr_t91DI~;jmT{Z<5M=zP)bj}OPbuWO9(L@fLB?&gn!`U0
zqt|{s{*@CB15{8j{L?}-q{zmm<Gs<-4aA8I{%aYxsoyrjpW=p`xF-Ioyf-nxn(GH$
zU(7@ngVx**jLWS0x++}We=eUZTm_Hvl!rFg^i<&`;xRZF><=N`Wsc!oQlt-2;kFX2
zGz2*|b4MD23Xk%GcXMl%h8A$@W35IX(VBaRaWz(jAC|XE=Tg1sav_#GVaO?5KGo=d
zcnEv&a1Ed1Jv<W<`rtV_56@=YMynOX!wcE<hZh6Z1vxqoFJat9OM(g)@9Du=<-_X%
z>w+Aehc_{9qtz<vVSIjo#}#ANykfw*AkW5my%?9lTBT;`JhK#QNpH}a*B6Z*Joa$j
zKtqq>A58pR@lP7?byWiO@@De9ga~F2>t_)#c`Q^v+vBA1ac}v2Rl-zR`0Kiz{s*o3
z1!%}4WkBH}VIVeN#Z=0zI+Oq}$t^=e5s`9j_)5kVe<S+DznXEI`pAvK_o1gpR^bN(
zeoNadXF}{zLm+`Z48)Y9hC}fi#HS>&_-1dp_*TYkwB%TVnxOT_&1gIvdt@l%Hd<{U
zk1Rk>OKrD7M1~&nSO0>LOOPpyJ+cc7UWRrvZll!=oj}iv{}kgkT8)2!s39OSBfhR_
zA_uJnG>|;)*)x}5POk(DsFd5(Z;RA|94TM08eHV4jZJq*rj{L=-c}0>-T|9FvINP&
zQ(AHeH&VOcG~+f}&A`v8M~ey7w)+>feqJO$%l~<q_~d1h^>Yf1Zjfv2=PLKMkammp
z=Tma<Ph;HVUn6R-_~&Op_hVy+I=5mU16$ZnI`qFIWc#REs2)8Ex>ij5Ml$PBiUi?2
zTV1?W%+`sE!k~E!Xi*{KHd-xGi-w}-#eW;)Hd>t@Z+OOI{;@@Bz_O;?04<sUZqjFC
z)8!sT&&$qZjN52+{?+Jt@vjv)u1{?2=mI$=(W2ep@^Z*5HO~B^Bi{V=LB_>^wVJJ0
z5x2phIaIGAt|F8ma?q;pg@zn5YPtRfV18_>M9yKK_=m_6s;|gFuM%{BeXaO#u)dy;
zSoJ5s?-9ZJQ;geaHGlt~8i(QU|5M{I{QZA3A+76Akh-At|K<|j5C05-$B5bE0QH!>
z-ikf8mjtmX2RI{-?PJ_Vt2z8Q1<Ql~@eYjJXm$Sn=;{0kA_uL<2MQb|WjOqJ4G10%
zKfYK9e8thnmoRRl)eJu|0X=Olt7Z0yDU1ud({V^n1As?QY)0eZ=@Y8PZQ^TNf1gk_
zZba^h7I2Xs8=LOXyJEGee1b|$FS%A?3tGRp7LDd`cM1gI6hUqAadG^v;VHWJ_KP~F
z?1<RG*F1XAr%k^|h>OIS^@}aIeb629T;8OSbS@r+Mzhs5&iI&Yyn8d_;~1C8^11vf
z$c(%EQSi&J82A_0IEl}3DZIEA*#BZPeVOZI*5E18#q&XH^Qrw!JpRRxF|KUTA%@04
z1<@9lHvUGjC>JkIg8m*h(_VVnYq-u`oN;RVQm~%v=|o1;RsWOaPNWN6i$6)V*{0do
zeLMQF_~amY_V?rpAu+&ul1iq{WncF=GwxtqxvcP=LP7bHR3f@u1Iy9!s2f&zn&nO#
za!o9E*1($?Kkt;SL+GEp$aLio(;IwpKn($rqVk5`*?Nje4F=v|mZp;L>qPJjNO6N%
zqKc0D%6N39vSA3yurpK{sc5JI<}ueBjsd4MoBS8V6e@p;78@;o#bxNj&!>Wni@wk2
z;vxAqb?YhdN~^;1r{Iu}u5k?mPmx0&HS<*MvR6?vPt`do#IyXVIM}9nh$nz~somwI
zx8V5w)LziF{1#WBPk!%5qb&(RF8!yDGJiSo`Fy>^fAF8cj;6=OGr+y{TtNIQ@cSZ{
z1wsR?B@<biwHC9rB{Q<My7(+7vH^FC<4#pCyvD*>vK)K|u^GWzvf0p^L?5GDV$6nO
zh4197EWvN>(bpA!>67PUzwG2B@PK*D`epAdjqVixrK(4pEcn{+TJ${X>6deXx7AA<
zzglu^&~-g4(GxFYlp$*O6t4ikTulUQW!SLi;&>)ZT(SQ0G+-}FYKGb**XHrk93xz+
zMkpO{Jzm-u(ruY<!^I5j3ZjioH-Hxge?bR_rDvSf&oEbiRRZ$;*o^G`$`(V&vwk(+
zsX9s$zluBd*Jy?O6}~Ahk)2}c{1x&g`pbMm#_9YbUZ2u4<V0S?8v%QU$bq1>tVAv@
z%Z3QU{$<r7yT!{M1Gz0kzTyn?FLA1H$y~gQ%FB<99aNKHS%UTKRMuTL@X|H-6SEvL
z?U8?n7P2;zZqyu_IE35Sw4gb(JgmTG#K^e~SeqVSk3r~TsLn{jDf+T5+6eeYaS|^A
zm_l@HGMm00)z~LFW5&7oLXbT|;NVx3kwd?;(W(7R40tOTHO0k;S@AB$*&i2A0bh&F
z99RqUvxCKH^vS_@7*~1}{x0yfG+<NFg=H^cfn45!<&5%O9%kG|s|9>{g&0ttwR}3s
z`<FkV`bpW}FIR}=8IkG#v3?zdxcfyaUpuFi^aU;P8#3AibxNH$-o10RuLqR|F;t?V
zh^b5|9G}(FQ=Y$`M<qV-*T{g^5$o4foE{bS>peN}V>$2(Vjw-Nr^#^-g-?$cfqZ%z
z$ZZLBEBEP{jLTuP;W!0EW#m~;uW_pS(d2!4zg$$GKITNWh|m1Qmr<XQM?(KIHqWMK
z)U<!5)(L$?DxP`5X&#b~1^<~fFh-?nB>S1YS<d--B+*BVpE<y|im}3vi5SP8Ih7^n
zI{(aR#%;7(bv$z(y|y6udejp+Xsw_rqUTcK0pK3fXGI7}{jSgX)6cM6t%x|$w*!S8
zR?r-t;q2cM=<OW&eIVeR-4X~D^k@Z2CZh5TW<@Q!9xK9%>?4b>W1Qs{pw(P+@rAO?
zR;-a(S<%F;yg2Yb+n)3HEFKi;L1(4-bs&+jXYm_sTamvy!4R{aRa0C}F<&uz{H#g}
z2j9h;;E~7Fe^yO#smD#mvqyLYHd-wiD-lHB8_uxD17ZKleq6;XD*$>_@yh9np*{yg
zqnO|L0U}wpE8pc|Ki6Ik`?;=y;W?Wbo~u#}b<D7k+oh6`1N)pjN?c|=M@wRsYfk+4
zc*v<Z02~>9P8FAmm%{Nz3;Y6)-%5z*u>A?Xi<P*6JxMGS1`}&ke+$pJ1m`k=pH$q5
zj1@7%s#0cHRV7_s73H>8Fp68OR5P5>?o^rZaMfZoS}nQw62_VTiYn$`md)?tG>tu`
z#j2fRTKJs3KMREXtGFUpz2n&11BHE89W}H?(I>B3(PU|J8va0sf5M4=-idF+Iqz!f
zX7Ne-YFbRR(e`X&Jj^)f!^Mk$d+F(I=t;7kz5>6+UFmx&0x9-VG}utIoD~gq%3h&?
zROFBwl`VHgDa(yxoCo6KQQ%(ovzL0`6{H4%Ts;$we#6)$)Pdlo=rJMS*3lIzvP&3O
z4k?@l>ZONP3pYc~ycYrmvDKRl9V$p$a_CU2Q90=N>p6)2V^GE+!o?4Q?B$DGjhqKw
z30Se!$HAmch@NruN$E*6UczdMD<`TX|8F{=)%7Sm<gMp7<AJ~7b8dYc-?9Hq9XeU-
z3i@#3H%rCEOP=+cJv{G!bC8#;-<)A&O?yVx^b~8z8vOP*j@mt}H6x&drY}tn_b+Iz
znJoF_x8lmzs2R=!iWCtq*q%nC4amh;ILQ=V!a+%*F__wqI`I_Fyw|AXG8f2|HQ*(+
zXXHWad7rof%(I@yH=o4&M4rbZuQ*reVLe|7PPbNkzAKYb^!bra6;=iR^YS=a{yeE1
zh|O@}`GvqdqWSz1C;fN0_PiRgaxKI9<;@=d^V^;1Kgdo>T&O>fr56|K;y32oQA`bU
zYn?Cu7U)*Fmf|+egWMmOHk$l2`Uu2YinkVD7snU5{)m;{7N_UsYv+N@V=!x1V4*Dp
z&Ge>`qque}>*u_xD6ZWhqqugzu=8D-BpyLrtLB9gZw4Q^eS+1h;3*tm-h|uE`+vb3
zFV+<}b~7TlPQKy8zpl4a_8#@Gb;{DzmdYYncZ0kJSr_GEURNuMd4RQU0h?j-y|zp9
z>mJQE@8b2Wal0t)bqAF~oF<A>pGKb`;K#P)$wA`~MHnp!vv}Gx*2BUKY(`)k*EsQC
z<Ni})3be2Ow3yX+0JxUtD+i&EfHk%-t^%fT%w$|7lsB4z4zZjWXod5K@r@Uq#4c3x
z3$#dSb#x{954$g5U4Z^}FF3FM3@O=AEv|YhH=JU24s6GSWZxKOoZWPBxZCbB(2Q_w
z#MS5zk;;uV+%6URi#I00>k+<<=Oq2NGz<?qelJVDB;~jGA<3R}vGLoK+BqpN*ftH}
z79X|YeJU|)(=6zs$!z$xX+5y^*yI@37dBxZA=$KvaXH2|oP73}W1A>-UV7dkyes~h
zisaea#1|<i9)d5@L4t5Y?#2E&_y_0Um$yIKz39aD;%j{`E(V)cdJ!9ajQ2%~jaC{i
zzCxTyPqJQA0a1Z^mjySY)%|2VN#klW)c&Sg$)BVIv>9r{LwrG)lqdIjR<epu;*)WR
z^u%W5E{TVu=r;53K=Qr%Rr>Fs;C)K|?{XyVcY7e@k<86u;95?4rqD-_HW%l>doj+r
za`~?%+}ZeApkSJd^)+;m52TwGRxOS_6+YPD=K|e)o58Q}$>QYx`pxq}KY&f<3p?}&
zI}6YdE`22sf54q9u^h)XQ+-6R8RVBpofeX6Iu=0eB~quk?c$GS^Q+;%^jJ2(i$5*!
zdz8QHtD6CkftA?;E`AnxTYdQ=70iE;aUOuex5)Y$U~TEm3b~NgiT)OmEYPIjdKZ^(
zjPP&4Du(y!PO`Sl%~nuNchTYL78N2^;NlG+dsNw$#vJ$-VJOeqvVYl}K;h6WX)LQ0
zVx#=GoCc<)#C4b=qot&0)3P@Lg`-qKy-X8RC+|TY?!VlNaU(7-=ZMS8d^Pzpeu<mj
zH*CFJOYT;_Tn{}S!+m*4w*Cpt=#yPqc{G1qe7QKKdKtH0G09^uC&4xin-PVV;l9_Y
z*48oL^{9`n6WE*@CTDN!M8-LLJrzDh=)r&_!7ViL8)f7-D^ls+Iy+lYHBO#zf)i7f
zzE#Z(Whe!H#9^zN8Okx9&|7InYVlEN-b!)v8X(Q2wgp!Cn`doZ!-?9OqC~~E(iHYc
z)Yg;U^|p;1^BC~9fsFHjR3Nrd1~h(EfZN6i-2DiCy-P4t!x7kKrbgkE8qGlUVe}En
zZB!;&#9aI=a5rMGuhxcb7g<1so^!w5oGJ?Mz>18L*d8|Yu%p`x8CNMMoZf=9o#veD
z5k8)&L!a>8j7xzwJVy$)=Sac!!O){esG0TO?DG|7g-8+P(IfT>7&OP+NWD^-<yad&
zDhIz=102CuWDTfEwO-A(S18r`O$U{tR~CSvk3=alW|JzuSL(q}>Eq=>z2oVX)j9O6
zWn4r&=3DP7I%EiNq+WRkxJT+<Ij$>$9>sr(`GtYDRKIf8&_fSYQ*FF*-VhK^S_iEi
zG%DTjT=c=eBfBWu-=uJgfX@Fg^9K$5XN;qWV?scAsssuRfq5)Y%(&uLid1ncT=5SE
zzn;ow*3(vV-zLPZdgB)X+whUBNE&cMy+fYz#&(!BqYRlfqj0k}cs+4{LQvUJcq8mn
zHjEnEv0M0srIn^DeqKy1Ks)vdf?M@2ew1;=f6ys=3oEobncC3`x`(0P6Q)O!Ps)Bz
zr9ilHnDL#Ia-E+Cz7r|W;+J^L+Bwh=;90j*rBE4Q{0~YI52R-b@~F)}P>E;`xwz8L
zdR%-7@neNn5uCtR6@OTkt;oe!GHx1Poz3qWFd{zT1Mrcf$2ES~U#|$e`hnnau-r8Z
zcpq$B1K7h~(AuSHj2)W5HM46m$XX;^yaBkOA6bN=q!WJx7dfw%ewBgfui`E2hl#!i
z^ikLhM_xVYl+DE_i>Ya#>AB~WrDia0q|*ICJ|m*3+1dOmqA7e~NSp?yHu8nsZhov{
zcYrCoBXr*3-(4#DF>7}es*Ewykap8i&<jV5yiSC7uLXbG3g?Sdp-*}?GcJeLhHnSH
z)fs)XqXj1@F<!<lc;kNzc{}mPG2qwYtK#y<ag0kR*1I^(Y593pyFJeL4&%0<_)Rqr
z6?>+5tJp)XS7S3$j^9+v>_njdgm=9S58$JuKRNG1zyD8XoY2XR_+a(VkntMxpH;wQ
z&V60u#2B>xyaNpdm;>qJJDujg!B7(}k#Lt~fYqdmLn_!XxmhY`nv0f3CKa^d_>T4C
zxbf8Fyn*|o{-$QWvGbRJ6Tzp*G3zfqA>@&rzmy;g9#3}t#RfkaHA3<iI#e9M#v{WX
z{({zDMxh~GIz}M=fK&D#bV~Zs*E;uMB5JAKFfD~XnD&toZB#BEaU%c5^1ZK;=^PE0
zPR@AAsXQzGCh(D+83w<?>wtR%XP->hJ??0`#=%I6_MsueY(S-FA4R|;zx&={ej{zK
zwHJ9Wel5syQlBqE#RxmE6*|rDi%%fwzMuRVHhq3ZnT^CWvk`^gAnp^Ezc!TVtlmF}
z<tVP2oQv~)#@FP1#`4#w8g;uhEI&V6KB91Zftv19zJ{et_-(E$wJg8hkXJY!EEDnv
zWxKztya~C#Oiq*i_(&boB+uH9n`-pn+5X*5{212m{gfANK#^8yX#akBr~36Gp`iTr
z-pt1Vxr*2j@7Mb>F7xDb@qR*n;_EX(*Yd6k@pUy_IlnHxESrD&N%YAM1w<=c7sqc)
z&^qw?b}_&n*6Vb_;m1~h4S%8S^dAZii);GV)AE}BKnUnGY|KVX#CD(rvwH+~O`Ph>
zL+t^YAbO%x=#w5*034Ty!s|d*FRea6gVlv=(I?^MJeUKknL%k$3`v>h1A7GHaO*$@
zj2`px4OQoywg{Prg*OHpiWNS@Df<ULHfzYCu2C$Sv1St2vic)354Fv79<61`#i`8o
z=ruC`R_2%PZBSWl-j%J##g7R5mai-$&BwC^)bjGz2yhR>f3=-ZQ9eG!`|A^6@Ce*r
z@f~b1OtSt;%dv-smO|iK2&VJIY3apy8CsujgNu(uPs{aH6+{kNEqFu!rTK*uTZ}@w
ziZjwO-;j&2++&POJHD$FzS6*zp6yQZSfJbWyFu36p23-GIl#D$7H+$Evk+@{K|Z(f
zCVpZZ#~1&bW#TBAXT3Q>&c8QDi!-Yp)|-@SkAS{8Pn<0J-%PTm?P5N@xkt=L|C?zi
zz8CA!!5bj%F)t7Dr>O^NJ<-Ehg+9V~a4zF2914%ib?mK>@Xv3(<$UjG$HL*(TU2r$
zfp}{m<2G6?5N}bwJjV4_ja(q#nhm<{SR8#g_Lk|G!WYT~Qv42~hu%XGh<o8fyz#?1
z;(mCilRSZp{jF5Qz5H)9?lwQ$-xNn5e*P_cMQFq2({eHE?>PeSZX@J99DT1pa6Q21
zq@nlJ+95NwVTQtQ2HnH4_iiJ+AO1-J*R%IV1M@Kaepg;S-=|vgVi?b>=KJ$<Fl++u
z;rjb(xiVaT|DaqJ-#?Nq_h47_5!?5V8u;amt5u7azgew}pJ0Br<Km~XaaaFof#af)
z1s+re&a(g;c#sw?a_A!Cil6Z`Ep*zzA1spm=?(_J!UMp6fK41NoeST}&+lQSdjjwX
zd%8?SsW@E?y0)TPgV2Xl>FHuk8DOPpDrsKK;&XsBO(nurSQOqM7o{{F0LAsFKb>)!
zyX2$2Alldm#fCl(^9Q{QeF`55ysZ-5YmpBoFfQ%4;j~_9{;G=pK#l_+OS8i+VTF_a
z7$>P4MHAbaEj~MgKH~9#TB>d8`!=}v9`yA1RS+5c2heD4%s$6>3*+pCiys7z^EIc#
zt9S_RgLlP3T>Jro;B^9Yv{p=-N!HN?h8a3Q!u-)k8CPZ$zAT$xW%KCM+59dp&*;jJ
z%A$4;^|O_}v)OVA{|A0<jLroA(Nj2@XZ_;_@$5to>mOB+@HnRYqrpjBN$(^5hf>MY
zMCIup#xzm*F|06;<0|WzDj+qzc)lO&ojqhV9gkg`jjMTmtZ(*^T)aPUk3u{)Q1EN>
zT^Synt;jVzlyT)~A^OPKvD?s)0hu$mqK{Pq(`K4lH;&QFa7(Pjw?Qos$3__fyg(eo
zuXQ0Q?T$I0d@H{&W*w^qpU2v8OigWeP!+?m`Pq71+$h2aBjBR}Ey?D0@uk4!Esx4$
zE18FF(U0T`+0~450lWBi;C^fc*zl*;t7H4cdNs*9b_l2&72gI|@EyiYg-5da-9a7A
z=6CUoT;KlLUaoKd#J5yXetrL`W{?URuV4RE17y3iTAk+8_!w4|??2aO+i~%&z}w2r
zJ<$Gh7voZ28@@-}ZoAC-CoRN!gi4(<oF(>FE6s5#H?5pp90L(orN<lPRq6321soGV
z?D%Px<RLy(i$3yv{A{*H7r&UzuPlk*i1qN`!_naPsK*cMf$Kk8VR1o!xKR+=ilG#J
zIMg~2jaCCHcdazTG{Y{gW*84ltzxZehKX2r!m7{9UTYPHrnN@w#H`l&*(O!lwJylU
zRSa4m&347*U!0A*{7bU+xUMfFoK_rFUwj;HT`nH#gJ-L=CDoCuRTZ8Mx^_fsO`+$J
zg;pHF+EIXb=3x(iLF=P18ZFo=Mjwef(>!wtc(4a|Jt{w{f}mcgoYjw}=fJ59JRJLI
zr<j5MkKX00o{uu#j3?R)#>x|s9P~js@X5e+M~M$3KT*fmT_={yHQ@wqdDA)1iFd^a
z%TJsDpB5T5F;1LfoO7n|fAy0`&3{#hcH+OrWXr2!_}92>c^97oylu^Jk0Ae=#<;ZC
zhS#z^oU0)t<^S57Lw;Wl`DT{S@N_uYNv;$pBM|U-;PGTX)DYE$Q9~z30n-9CCxAX8
zd{PC#ral&Ph0j1w=kG*h@Xr+ZE$(a(uL>gq9n!SOT-Cq=G(8FD$hdeyToA@iZURj=
zq#W36;L3p=jB{pPhbe-jN8yUU1z4M3?QfzQCx71&xO=wRMmQ<Hbw9xRxObMMuP2Y_
z<GzgZh+JIW1B`t<G)vA^{PAsBa&7p89Q>-*q@6bY_2Bo2*vB$r?ugu6evHEm4xr^9
zQz$gSx)AyZ#m9#jx2f;j;Ns`_3gr|Sy*>jtMboqyn^A11s`yml)NBwBU@OPw{spa5
zR4jzcp)m#cZtUtF@`81WrVZgXHu6y6_{tlOy!U@n3{;a-Mezxxig0Pijfna4+E+D#
z2a))MW`ka=3U|7k4|FU3gfi6un{t~}lNgRs6yQ&0qN}-~0x5o#n{XSO7T`}BcvgRs
z5Ia4rPiQu@Rjco+1PQ>xW~a)+HQp!kzHgrOi8^)o1m!Be2AB!3j!f8FN2XZn$dt0x
z%pkQ>A$BHN8Jr(@B{~y_N{>Wm9s{lqnDdfZ%(#tK%U4F;>CLk;jmoqdPzK*(6emX+
zoc>`z1FVd3a-)*|sUIr!XtL2yLqfxF>(df2cpSz)?azX;8r>@Tl=@x@ReU~`@#$fG
z8qJ}3Iy?WVJjDa&(j1&J(|OjXTZBl=`m`wrC(TNlBhp*!&|lE{lol?+RS^;lT>P}T
zM=nm&vg0wj(<6b4uQaoPs}cZ6(I{Cbr=vWm)3s_xjxNtSy;L9rtkWwY;$?I-<2G8Y
z08Z}_6E=4GDA2Y#Z+}w*vBCCn#%=23!4!p`r5-lv>xQ~gA_uL1hZ(o2kA*?u*P^HK
zs|DfTazXeX6+L%F`1cJEpu*y%%vz3pGB8NoxBWN1_<?65!~Y%yRMT6BGp#&a>DA$|
zE7)7mw8JL-Z1?F&#wnSE%cQyZnW4aReKz_qd&W$f!fAoh`GvmVB<svLCP)Jt>LkHB
zGs6%Vfj${nZ15|5EAY0&xC_u3d_jd4pfgSU{QntzvLwC{K)>!TChlkW5Kg=_;4`_v
z#H`P3D8rJXf{H!-1+C92(deV-&$u}Vg-<c~Ioh91V_Xed;j@7I>7f>tO<u=8+nhrY
zjhY-X740(kl|#D?euW<f{suO(>kNN9aB2BxRO$LyL+DcssL~0yv1!MIv+4u+v*e2(
zn=yv7LxJfEdC+H7$rxie>s>O|Svr{MV-|8j>+Ed8e~5pwhTT#+J3oiOGR94QwKgb+
zlmQiN#qZn~$nWN_D|1qT{K9foxo3~$Fn888=fv~#yWPavKgW=~4q=~Dn3}P1II)Mn
zp!NAMakz<DpVPPxV3TeU6@Orui-vGH3<B{7d@mY354`kzzR$pI^ogHz5WkI$5-wWc
zE$C@aU~Q<YAUX(#h=5HRZo}VU+(xUdd7ocIPj`qTa;^j8N{_<B8b2nB>(RMFCfI0o
zd=z?ZYlFKupBuxtjTSDbMf+S0dLGB&b2EtxTRAq;kJP|^&^kvc&_~RreJ&2%V=A0`
zl=+n+o`&ZhGxR8YiNVh)JGYGN>xLC!y`f0qY2aQC9XAZv=+nSXFfRI9q)#zkPKy<V
zVhA-5IE_YkNa1H0S0iTp3p2+GSE*F|e6I9GG3&9>lHGho7$gtSUr<hs9Fb#RjAL9C
z6Q}5lnFc=>*%xySd<6QWC&yy)g-j{Jp$sU2&4!{XR<w(8#jo()2EQ8MUIVXSJuQse
z)Q=$~O5hL^R0szV14f{xp)#x#sdY>7+sv<OK=CU*ZVeD0?1u249!vh>G<Nh9&?ySx
zss?Q8LqN2^&!eaFs~S-2f-+17pyxalu+A^&z)?&34>!9fRp$#>Kq+E}&Ib)eTodQR
z20uG=-YiO<p682QelZ=~BhUF>h5@dL^SxaG>>v_6J<ng8&9ClJobPM!D?OAdii8?i
zKVcuC7@SRT72V7@=UAOyo*!!P2hgWbS7zgNYQz&6H}#nB6T0FYE1H(A$Td6@I4#X`
z1U{F)j&Ek1U%(8~lJBY{`s5kSH%-vR<yUtr&o2kvkBxGVKXqPwekD2{$Aa^#8Mo0Q
zsOng7ehr;Rm!IDRuuaT&RTFW+jm?a+|1Q2oKEHH+7wCGe7O~uJ#%=1iP1^IMS9g0m
zkzwaB&JHN+JRCv^|4%106k8Lgvse9RNUcTyBv2!+3;u%_d*HgD@;~t$deyjO*xhja
zhy12E*x0l%{pXyM3gvgRsBW^{cgifhsK=GRKn3U_f1%0{r1Zhv3$&bTaqsGL8gM#a
z(3QwUA1~})KNCGY%%x18&A3hdwuyFO^|H(IyNNI1lX8{33^74zqf-WQJD*eAonCbF
z-y(Sv^uN79)|}}*Nb>);FXODo#qo3G;>QO5Tfx^H|DCRO7OI^UV#ja&S3cnS-*?4_
zojt7oo`KR8*o@3xluuUrFNU1x)#Tm9(X8s?EVa|XuXDNBDDT2v+#+}fSQk&Tr!uX+
z-ZuIe@kLsKwMg`~(FgvePd=9OWhYkfr5OSa*_UPr6fW;A`oA3P#F4k+FNZ>}Zioto
z3=LyLqZ~U-eB%thTIP!~-*n~BTxL`w;tBKR0z-kq`K$e3F6Hojx!S3{iXJiha=jsO
zm`x_x<W6OBpJB3r8Cwhm3YRa+_kVdzDKN88%?ivcNIZ;7vP=-E4*O&phKGGoNPP7S
zHQdfv-|JXII|@6^4;vfJ1BKU!OW)yPe+aOLLceiDQi6Uu5a>r9R_Grh6b=acXEH-M
zTFs*0oRLZp&p#c;hx}px0YflK^1-mbh4C`#V+c`dfQ!#|3jO{IPU`D;31m1g$58UH
zCU|@|Ae=WDdj5bdd!mK&;_|jYI4_}g_Bfeicse(nx1T;wD)i^I3Y*2@ybF-`2w!{W
zxyx~h*goV$uE5=v_7Sj6`>Lt-I3e*^-NWrifmdJF>d?oS+taG3r&Hlk;9hPl1g;+q
z!gAV$+b20)m-O_Oyu=ogZg7;~CFAAV7`|i{-9o;+NBENZ92(X*X?(?Cc=!@JgzAHd
zqL0B`vYBxsu^ozl)8)L8mkzkz?up=cm`tlOEO&^5X~tI>JE9iBkQeSa!buLwFRbi1
z6HK}X9JY>TO)7jl`2B5)!{iY>4s>$t%aP6iofm%fn?2z`61Ybi0(-pi{2UdVUy_5r
zLg4to#0X7(!fEK9U+CQ2BR_=Kv3;*cezyWOV+%%e#tLxH7a7Y77wlBXLC#@8tGB^|
zjHvf^1<sS*^ShN_N+%s2<GXY`aF2LhiZ{d2fi!$6J~x2rSoqRr6nrtbjR9PG2$-Is
zYV;BDOW$GKrheP{b?I^RH2(RuL<au}#%=2RHn{j{^x6-@zjDGg!bS8*k&R8mI}Jro
z!&Njp;WdzANS*M3fEZFIRmQBjj*F<%Rzrirn}B-+u~Q54n|f4eY|tqLO3%9#N;>a1
zV%g~^2y~t#6_F7Bg5gexnZU~=BL4$Fg*`HE@}Fkh<Ub3X7Hi@c*Bxku0XmEk!4#kv
z{~eoQpfi;W;Rb(aDiAHXbv5W?0G)d=Zc`tT06s+!dZVig)Dj&6>L6xQ9|8);{Pn8B
z&fshJZEzY9?L5K>^`tuPJlbjafDQzmCp!tO1noLIS6+dM(K!yGX&!=0q429`@8QlX
zgq}&^&d61k=Un%lRejr_ljn>F`=Y0hl#3zQpK%+lRwO}uUj_%P@}PNspyY;vTQ75k
zSBVA1A5_P};7MLQf;imLD%_=1wB=paLxXm1e06{v2!^|CW}K7j;`kWpdvv_-veys{
zu^?5DcBXi>!kg)d|3ZHVuWrHW9t(%4EU1JyTj4=cL8u<B#{>&4&%wVj2Y*uzekybE
z%XnPRSBoJA!y&43Jrt$rBNP@nspCbAcgV&gwTx3T^$4(jYoLbHH{7mP25xq$uEWW*
zMcLE@U4>Qhz5HPdXV3U4ue`9;sCEttQhC@q%Cc%u98K#)w$7^+?tJ@ufx-dd@NI@%
z0DTNPJkpR;c$KgW!D)t|jXnv^U|ftEgH$-4UZRVta5yP6^azJ{FsE|40)5i3+X;OQ
zl@i9!qoQKU!?c3x@mH=KVO&{KI9{FoH!9J~dS?r&cwW{wThPV(@z^e-v1!wEehPhf
zb{UP0aA|Rai_a6Y3l<k*!T9Qz7sHn&Ak>Vl0Gs;<h1==FfWqR-4g&P3`OD6U`Cr^M
z$C111c&A|v6-3t+^ei^U+;uH9X|Br!J{a!0o^f{F#ql_>6x?bE(x-<Qb63ieHs+YZ
z@eNT3#=>3q8G<xjNU+5aWc+fPHkyYjh?j?fx23uLP0P`Tp3BwY#HKzD{V8gIQ+D;w
zG3GZhL7!(}aTN_F0c<w$L6PD&7S|Zp(d9$IrSZG?FyJ&8O6Iq)T~>sD<dK>)vY^`x
zj{>=EUbo?+#ZkzA`FL@eG4b*m@59aINytybMh4x#V7M@djz=U5Rm6-kEtD5|dEr95
z=UlA8-Ds$ru^F1XH3IXf$8ITjNTW0PTY!1wuA7>=(i3;&MIrE4IJ3G3tO4PoLEe+5
zXf&9bziO<gPE3l*q9;J}aI)xW;0LggqwZfYT(lA$!lg4z0lr^c-}}Qw&Vzk$)mL=Z
ziC{S{FFFsFwn6!>t|AfetK$UgQFwRXGR(yR;qGKtOG_*y<+@W{>h+{>b(-B>o@NgZ
zcW?HNNcWS_0Gb*8V$$RhiQ*C&sbWOflTM4jN2H1?881WY{sqIub@Jv*xEMEI`r!Pj
z*tzn${BFg?>%pW)Do#S+-{hpO$4XwDq{zg=JxHI2pFL<sdErUKfu^}pZaww__c%rF
zv5#@X@18<GEqR8bo@=}f_oTX|RLK(Bpi<bAN`i1{z{Rh~F|aG>N>kmVxCZ<3FBra}
z8haiiz5?%l#`VeY@D*FUOW+DzHh7i56=%E^_G&MWAiZdf@-Wz|nh#yQqTU93&B`G-
zPu5nih8%P?+l*P*Yc=>iW??V<7B=pS#==)dycJ$aXZ;j=BZuOhvOo5~>wvxQf!70j
zzynVJ`{pnY0!}c!E;p`h0&hPLe%v?2os+!ql_$h3@n3mLE+|)?2D3g*lIUZaTzQsp
zSyjHP6@HGUO<p(>auUb!w!?6wCm0{XW`rP82~00nN;VWnMlx<w-?t&A@Nwwr{1GC9
ze<I^H^}!#Z2KW>-;ul<P0yM$`^hlA7O*il;dR_*WFm9vO_25md;<7v<uTx^-tBCGV
zuUFBu_rlE~@ldat0Dcb-uUZOxA2uVDS5c1IPscx5w{Fa?q9l1J>OGBd#b1g(V%B?x
z!LRVS20w0#mFE{ui;3hzPKC|}AB9NaG;ehKO5a+>m3_s(+2B|BNe=bZ;@Npr)zws0
z9wEK@h8(y#0`}zU`G!S>ZvpNR>XJg@r&U?G&N(Y7HWVqm7vqXQf<8iB(wlLc`fb%&
zaxHp#6|zGmeHpjW{)hw=p}!%(F)Ja1dh8WWMW;{bH2UNa6&>M%57$6x>=Qm++|cxw
z#GM8l7u%IMPhOAP4<!^FT}>;q(=w^6QTV&8CL`4NuW2vZ%4=>0zdqhUQqMJ&tVhPp
zR}x^HmIvK#hVgMu`WyM(V$;y|Qm67SN4FuS%uxPyca=JGkx=}L4gPa%ex=02DtxZL
zO?(}EO_~Ruk%72Y2Ec!9i2Egye(fM`M{vzwTO)wtYv;j)N6Gi;N<Yz1=<kEqk>e6F
zFWjeU*~fSrdALs$0)A`-*zni2i2et|eWo)#fv!&Hit4k5=_-{f1&aQTQ#%m1r28C!
zyhp729A(^ybsstt)a`Lh`<w=@rL;uI!B685<Kh%^{S$_+O3_6pIv9~C^*aq{W2NMr
zhrv<`h==2)LB<WoOKEQF4o1;OAWM5OF8O^W3XcH)w$J&jFyAUK?Te0=vHpyk#s)i)
zU6j7k+rXfeW=RA3WEGbZK|0+krNe<fJkD=vA_tChf-HW{=XITA#a&k<EAhI1qF;I4
zK=6Bbe%;NC+h}Pe;_zQL5<TKKMsywS0O2fYK=``-AnFcRppOw<*KFWCkn1i8N6P#5
z23?Q8jXvc1(psrUNa1*;7tM&ib#g#`pWvDCwUh+DhBsK?LmGeoB5{8w7A~v9>Cymb
z<Eer@`~|~h_1^e5W`f-2QTv+`lK&gC8MmpA%lHH}!SFX8MdQW4jBq-f*w}P|&FFav
zY-QX=tMi|r9yU2wH#`!@J{i7<M$3u9Z#)Bh4>lUG^Gw%3L0)(e@{T)o1HyyUVreKF
zw1Ab_XpwlO?54wxT~C7FjCzM_2yl;QoWtMRDDn`yc>?HdqxF@vq7UzHo@n3+#-}hY
zE3J*6949>rPhcN<Y#IpN1Cj&s-#mhGs_=I7fr1op3E!d92tPKihs)1Nf$xkqaCY=N
zNdss8p`jf3FdZ-P`ILd73qc?wMj;MeDk4>ROOY;!*QN&0#|UpR9b*S>neNR$Y`^%m
z)L8gdC~S8Jm<)rrjsb1~mm$Lr{RP9fj$@od?BaDf^q^op_3R+LE5uDjO=6@IZ+#cE
zI5yL<<G}P<$)Hb;onoBzl_;Dd5yxiex$T^jc!~~}w~r7zv2evuaA{R?+j#V$x#Bj)
zrDngvzf0b0MN){xg808X$iNXAfs;Nj{&|F>2$YM3N?^GmP~$|to!{+Fwo^IGAhTE{
z+41-=yHeQE%qTthT@<W_6DylQo6$zc9{z&i%429e{2os6&~dgue6oSFo#6{*4G&+F
zgH9Rq&^IDSoJWih%lf47h#U$>obgt8M<?VNpJ=OiV-J79@E!fo=nk;scgWB5C*JXd
zLFWPA(P-c`=##!C16TZJKo$Q<5un(}YHzubvkaW&MlLsSwli{zfiwU2;s(zA-`gl~
zEQdT-R7F>r8DN2`67N7(4KobXqmO`8B@A5Y*{S2OuMFP_16dhifje&i?or}*jyCw&
z@Ti3bz8rlxG|DVF;=cogyQmDNV>6b&yE-r~*8+6t5Bvc%9;I_vg;-|?gzt)iA&$*h
zhR9*D=v+%XSlJTvKNubzaFUgHY%qi#tx1YZ4ig#YYDA8pr;*!JpU9<>OkV2bD3b?C
zvTcx)Os<gRs%-N2s87nPB{`Z+zB9z+8cD7-$QdT%q>Ma|XOl-$pOn{2azi%x`&CR{
zF3E{(@|Xyd8zniJO&&{BQodc1Q|M`7sU|9sn<Tl}AlEYauq3AqGO?3%t0ZT#$#>gK
zKIf$Gz__WW*}l6$lD{92<d8v5Gr35TBiUpejPVx?f4@|c%M5ay$%7=>&L-bO#z?wC
zlB*1I1Cy&IIhsu#A7OHhB-a|`1e5C|Ii5|vH_GICNhVubSm=aMxVBu96X@yWIQryy
zqa-J@$@dYJ$lE13g`OsTUmSfRH%W4HHaQw%@?l9%8{`C&TO~P@O}@X3$>*HVonOuO
z{Ygn46Od%GrMWgS%4A%bkaWZ#$C+Fz$z)5HPB3|pB-`2K$yH3QkYws=(ht-!xmuE=
z+2pAaCf7(Zacj~wid-kjaZqW|;)M%)_zQ-|)C+RE<xayJ1vvW}laTC5P)Vc7zFm-=
zj(6pE@z01lMR(=*FL=-fBk4*@;#3d|YNHHhB<K+M;|2+i#rH2q=XZ1dOyJB2gZM5q
zfu9pNE5u+#f_+BA;H(B`&}bN(Mc%>SSX&YofmrZRhQTTcZX<9`n!%_9KP0d&%3!So
zyL}(J=VhGI??d<e6ch158hJAZ#De*01``roM_{ah!K4J=CU8L&gDDAi90Tyt1cS{I
zyb+*(QG-)41_tYuL`D)Fl6b6EN>t-H^sy8u0kWFvkOV&`@Nor3B-m#xz$fA?UM9h@
z0R6wHa%#rH;Nl1qt0Zw7Ni0?p_yILC_#uH$Dlcj!*sU7iQwoer@OFUyB@Iq>HFW<n
z#JUrbxQ--#sU(sTd|QAG%$bs4$GgF~G{RuB1aBnpS4wAEf>Qzdmz6nncf+7lCME9n
zIf-!;D3bVff<b)fLEz^EK3&CNM1p<B0emLIV3`ER61c)<(3apLfc}KfSw0R1SJyHz
zDv2MG#2O`0E5UB}5SU=jxCCz}a9xVQ1_{mq=wF|5>hFQ>jY=XZiEop{M&)8kf*r>L
z{GIZmS%NnbxVegTrzJR*z?b6;W+dp0&kyGLwxyiL@%dl7)VG7l<8a$^JcSBmpv_Wf
zTtuRM?j>}mLdzsNR-mu4E8}d5E|O@9HB?D-8_+!8s~M;1UNW1CGPzcgyG<YiyUQ4j
zOZ0Yu{!y82kmwwN{wdA835l))n&;cw;B22j2KGgmoRZ{@_mP3u6xuA&8wI+*fqBys
zohs1R<BVn`>In2eRHFCb+Y$Fsy#dYh9Y{Hc?<2EsC~`!S`$Wm?8)+6QljvB1HpdyY
zCAvtUe~mC&CDCmX%`h63=!Zb_d@WJuT$Iedsf6N^eEa=m_RS;<HAr-hKo6ENnvm!^
zi7MWtMBfIQ=R4T!wBAn!-b%4hvn1a*kqjJaU^Fe!sRDgl8OTV~k!Z8z9q)5OlPGWk
zJ<NK?ha~zr&^+JYqE28Enf+Uuh45_}5*j;+%)Y}0#^Vjagf0^3dp7e{Npzb;s~C++
z^h2O|zV{J0VIZAha$J&cpG*e+*}!OnMCS<fxIz;WT_@0w;>??r=-UFNx6jZKYJ5tf
z9UmaGryHE22WVVhM46nH<f$M7tz|SLQAeUliQemT>?ssDiKZA0N%V7po@WjBMkLy2
zN`BDqyWre7CI9OM;(H$O>0VnB7fr$Pke6XSRTA7r;3Z`YMkV+mf%yuom0-82`CZy|
za{5e#>Q2gTgQU#?t)NqqwIn3Cj=*4u!K4J=Ca_C{!IT6$)&Pvy3^q&fMu7fE(y6Gy
zO4&QX#Ec|5BylzCp5Sw8e?XBEU|e!e2ubjB0_ifA(la3<!9G7Auz|rc362Hmzb53=
z`~U_^BTTH4#BC(e*Jdy(!4C=iAH`WK!EVz4el5YAaS7fI(BI#7s;5DB{}dAwlDLi}
zzOKAUO7Lw0%OcE~l3>Rl5~#$RC3qu&12fE-mf%!?{y|Zv?uRfqn04Rha}v`jP$coK
zsFb)bB*D)K{5I>pFCxJ{(*fR+V9qiLjwSGR1=<o^1knGzq_ccF3|5f<;(cFK5<et~
zsyKtS672RPfOjg_;u5@_z`KMz#2X|y2cUm+#;N}ibdOE5nxrJYO%l~gA|=6&GYC`$
zn<aRo0Fx}9mf%zZ)kWfc83{T7{dcFG#u+d;u2xD!Lr!uAqW3vTsB5=qM1p-DBrw68
zWfB}q;CP!sTY`%O*vw#+1h)b7-&^K1JqUyM@?fI1lGv>lY9@qOA}+z(35;eKY>?m_
z0`G5NFd@Np0R5BV&h}d9o|Ir>N)kK%7!s3}?q&(zD8MvxrX@I)Ky{50%}CH8aB5U?
z-tTkLKc?~m=%1Q&4*wVir=^$}k;FbTA@Rc`gJlvND?r6*OK_0@)67{V!EFRiZ)Pwm
z!4CoYXOubTX2Rfu879Uh@%EoU;>T4CHb`&|fj=P(ReFCyg6jyJUB+Nif^P%#|1{*Z
z{sg*znr33NB;Gg+5)a22OiOSof%BA_j07D5V@b(5(dUF7qCgQCk1!aL;O7AS@styI
z2nPR`XmD|2nIw*V2ojH`7_=q0h`{;;gH;mTM&M)Y#l)xtKP2$+5OdZ_u-j}Hd>ofU
zvte*?EfX6gaSn(DtCX6A1lJL`&SuV}1m6~5lEIV&JI=vDqtWR$2M3MD1k=)zHWjpj
z7g7vnB<Re+k+I!I_F|IHvFj*M5^a#YlR^^xT%f-t5Fwfrk!YVf9D3W~SAhrB;n3Ue
zMVraCBrgIPXq?e1iEb09aGq2}CHkR6Q_Nc{(QZE_4cnB4xI}LUn%8by!m0i#ncb#@
z5|X@52yItFNr}EK(S#3wFq@KS$GK!+dy3I!iQWh_uif^vQ!$qeyh2nG%1E*!gkFhA
zbh6K>eV76#(Kw?aiGD88W=10t?ej31-4$ZAOrm3f`rG}VGxg#8{+G7f9c5~jq;3;3
zyW@;TCHkR2)p`8nT8Va>NBZ|fm^Uub+a+4XXoE!O0L^Q+r`D;TM}yrHXL3@K-xfl9
z2}B4crzG0(XJnwsX0%zNH%c_YXj-CEf%@CM?#%fa4Xe3KQXlX+iTM;ZA@e57JP?xT
z=K?*b(1<|0mqN51wrjCr?@*eWVEBPDDKvIIIraAlqqamB0nKaoUcy;EpT>72&E%*g
ze<+0Bw;8RKXtx-t`ato<C3?F+|DkvrBsxc+CpfGRBqX{HXkNR2;aCtOvmcXw@--#N
z9phvmlV-G8qBjck^IAsJ5}hj11fv;=;x$Jwa2{8iaWZg`<2oheB;$zd=R)Yqh!mO<
zk!YVs$n2NRjFw4s>?2qn@)T%Ga1nu*uq#ulB)AQr|B?o$=@Beo9Tc%v61y#cM28IP
zj!W=%0z1YTY>?m_0V;zD39chBU^8b@f^P%#2NF)}0vOC!#AZpn@#l~zh_Xalf>Q}p
zXU$VG5_ANZl$=w2PWtCmdI0^wv~&39&}~&QF(Qe57D7$9fx$8fjul{rL0f{02<%E2
z@;kLkg4+nZTyaJv_#r@lHyk_{!eBRLFfNI=|1TtplthCB=MdP-X59$^c5g(tZ5sG{
zC7GO*<n7tyE0vv;BsUpkWwBY34`-7jQS@nCX-RH1$jwa7Nb<RC@>R8xT;p>>L-9qL
znm{(acZlgBrWYCXDyB!6UTV-&OfO^lpltfpWlXo3UXe||#%6jI)2j`7is@0N*JRU6
zqfD=5dYwT}F+I-o`fU1jYWxjMUvAJ7ET3R{V>Z1nk&&I6B-6JWbQQl8)0?vC|3l&=
z-^}#G2EBplX{NVk)B7oUhUw=Fdb5=OfltzZ5Xh!~EyVN?(~Asxg6R>amuA!ZN0?s5
z^g-G5uPgmF(<=<R&GJ=DuQupBz8^%HUSrTxEMLp?I)k2JdYtL?+4SoZOmATN@@)Em
zTBawM-e}O1Oiwa>yFqVedWz{y+4LLZOmAlTVS}DvdYb92+4MmXre~ObE}K3$B<a(9
zl0GevP5-9N^bpgF40?v?5vG@B(}(i-r<E~%kU>}SHq$Gz>9^SEqyDE=F}>QLCzu{(
zdQCQcSQ*o6nO<kmqfC!8z22ZFnBKtj<=OOGo0*<qdSf>IdvT^GnZ7-nUZuvLVtP|H
z{Z106@i#O5utAS7JuT?5SQ`C2Z1N1u*Nx%<`PexFk4rorGVlh*OAS29xNYFgj8_XB
z%at;mVM1-TfcWMb9E#(!^+)py!|{Ycx1CTuo|i4EVtF#44X7x}c&mYv9q4_88l68*
z0PrFMZ(zL4z!L(`3qMlf)GmS}k3<cIlwb%yQfJ`gC>bKfx&vv(8x1_ec*?*jQ>5px
z!0`YIN3?r@2_&c)=uRVpzyhM{c&Wq}Qmf&;6kcZFHuDeCaXfcI-)tfS3vD#IqB_Pa
z44fiB{8a|tDDfv-vvKvIT7z#{0&gp62xOBVi%YSFP&VG5)WA#wjbC%?8?}t%w_fuK
z3S$kW+4Ry3)625)yCaNejo;@}_cR;qZ2k$vNA@eSahJbJ;B5(X9jne3xEo!eD2hfK
zNa<n5YqIgD>KUhjYW!p4jMwQn>^~l1LR=@{2Xc!TCxx1#uWe_%AshdCfbr$ocweO_
zk&TN;UqT^jbP^4Cf`IgDcKW5zCvwV3ZN|xGLvuF$I*K6C4?7J{QDvmF=`W|yCwgl(
zURuNWIRno~{3#!~Q&{{|D4VYQd8$bGGx4d?Z2C()&Zo+<@x^tlcThI||Lgh^c&Dms
z{mVrm_oxt(3gK$?$ZIuRK;l&~rGilrQ?zZg7NfQrR5b0g8WlCRedXA`YWiwl<G|g~
zIs`$CfEby)&T%NlIZhboIANSq2fWtl|E+WOKJ2ymKYu^mcYohnYp=cbc=j1`c~RmC
zj-Ns0!tYDcqVw0Dv3-|h44%p*p6qJzT2~RpOYxbTQRSXM?<FNpsz$q{EMlivW4kZG
zuVY_K#v72^axv01QW<Y@{oNZPbs2&(@?_vt_>jT3h2!#NkH3^Ep*golKvcmm9Ql&u
zjo|HJOFV&8^Cu9IcoL~@FD~&6QeFNiiD!}O@@W?r=Um=1W??`^{?dXWl$Xk7q`J{Z
zC0;?Q8!bt^hE$X92}rz-RF@xgak1|rIMFjp3bhTPriWifiEi}2B~He5qeBw6k?Qgf
zNIZ&ElaEGR{IJkv3H+fcSlhTn=&~eIT_G;<G?(9=V04AcGQ#;Mn)b51!BfG+J4iHp
zyH_P%LaLR&J;{-L8Hpwzm92Fd>FM&y&Y&y5WhRX(qHZX(k*5M0u7baGMoEtF780$1
z9c<(YCq3Pvmc)mU`tm4$hqOmrPKmBSf-rP>5Q(n<`J%)lNHuwNS$TQXkeB`N@|Yn{
za`?t<=<<Z2@D=ieCz0p{BqUA_YYvTyOFV;AmnS*0lS87*%RYH|9xPMHiC77JVpKya
zQcZP(1&NoDY6gR|Bwj(P%aa^AFo;BxAN?JP*O2P+B-b_Su+Zh?fUclw(liv5qisX}
zD&(nP9FSmg?OPNu_>RXf3L@1U=<5>p6__uB7fU{B@U}>~yexN7!r<e=A>MuO0Oc<t
zzjga5QFVD)pG7%?&x)4IOaB)Y4BipJE73q>TENME8HsMcB=IUzEq<ZzNqo?dCpofH
zN21GTCEh@)+b6lMQIkT8T1a(;l`aul)JCc+;4qaO4s|?!fD)Y_l6VlQW-lxq9*A)H
zNhAk{2cm|2M&dD~n*B*6*EQ<6&_DvIUVuB=VJHb)S0FhmAdN(qZ%90YRF_YS%s)`U
z?`$Layus%rUO=kZ`%XgQMWnhtlB4p=NObuH60acD<w=fOWMB}fu26M}&_E5Tt}rM%
zaJct7Z%V#t@C{*K1%5|c@<RsS7Acp{dc25mesVxK;H@3WA5=udMfoo5Z`NPc6ST$#
zC5Whrp0URYGNL&>HYa&XHK!-5!W=_hPOYL~$YY#bjaC^)&XE&kgD*+Eic~9q+~E=@
z=k@YQj_lNt=<>==!;mLAY8BB!sw<En8EPZZ3&1!bha;0c-nFaqLlO@n)$B#21EmPJ
zr;hkaF+;v1?ZgfFsEaQQl~P<`{O_eg+E7SJJZH!cN<44KXC+?X^53;3UPL<lDEv=e
z8BZZWM5<IlqSg4j<RIZyBwB=~lqFtAs>%08gncdTudnP0^p#o$xxZ9uBh`)Jm%*Xb
z|J|C$UqOk^4@o?TR4eR1lA;B@-aQG2lUGDJKjCr_#O3hxJqag1!TH@<$P=DKqLsI2
zLgE?GdC0<xkXPgk0csvnbdYEc?HZAILDX;pbI=uK&QFl@>=hN@dVwXWS2N_(qPQ5N
zd!4F4({*U4&=qaNKvNnRas|SnD+7kWkVsvJ+d<zxWQ`DizOHACHC6h0Wn9|4GRak@
z#yy)?rj^aCA%O3;EKxSkSwc4RQl+G9Rt%Mr6c|)C>xRIfh%Hq%=PxCjO{p^EstgbP
zBOo#uyxsqZ$U^=R<u+mwPvaj6C6F=%;!?nCU$O3bloQKH&{0}NL(7o@WhGEG1j<sN
z<_d`Gmyy|;1Y1h013+v0Sj!W*s!Ix7732bY5s%JxmF<~bbOX%pWlIoeeHFURcLVOB
z#flP4i3YAC#pWA&f)mt5?Nu3&TDf~Aq%e+kVPQ<3(=mMBw*nilT-FolzpB7V-zF8P
z+ssLuWzVZyE96x}f>qb6&{cz6Y098zp(JasvXsL)EjiTWVlh0Ja3gB^>SaA6Lszvq
z2^+Z^$%ZWJ>Ml`(uzTL8`xo?zxH{;$a&=@YGYvA+Phtr9)%Y+9%#4Y1vAt3vwj8c3
zBv-CZauTj&mXnQ`w2^Ub2(cWo*vpY1o?)OC+OS+}p{t41yzS3O;i6ZW5~ug7O1kXX
z+I@v?i%8v8Q3~Unh-y^l^j?^OSHPb?ptVC+8<9tisvxcYnzYgJ{2Agl`hy;QO_%4-
z*p-?;*AS`u(~-iq$gG4vQBKG3+{Q}j&zNhB@J|ufLdDwKmL~8yNHUQ&OjHMMk{0@}
z$#PEh-)nLl-#aBuI<84^>P=ezy#_u}o5AdsQFTq(u;54w_`)PPHOOgn;*RnvbdAvn
zh_k&4ao)QsZM0k)<J;WEUO`EBJbx}+g{_{d(Y0Lz=)m3A21VxPo^d~laMitIp6azW
z$9-+18TOGyT^o1Ji9>Jh89ia|jx>_|Ka8YA;y|39U7PWgZh+E}YHGSR$CdiX2u9kq
zd5-%YIUL_7gFML>UE}Ugb7<Xaub_xku_N%!R=7G1PVm+~MQNty`6#MAqkH#CNwBe%
zQq5JWNxtnW{iwsmRR6zrh~ug%WzyDs-KR~!s8BgbXZE48(N_Hl;oQ<Q)}O!2QLesk
zP^!m0^#rH)?h-AgPL<P2-#0GRGo&tNukIN$-jPs_i|&KlI5=BAQJwmiNlr60F)Q^7
z9G?`Bc#-4#Bqd(r_#|62P|lVbS2(|KM(WjEm#3}i3HDBOB-TKx`2?RcYkJ1*){%6J
z(|%QOBD;vjG;Fz(Uw0Yb5x~K=*g(iNmt#6y9OSwav!b&`b91rH`F#hGN4qYLk(<4X
zDbSi{s_4ZD_k=vOIA!v}S*x4RaDG}0c`~1K+kJ7K(-TvowH9mB0heHHT5Plkx_@vT
zy8pDCv{5D--HY*~CAc}zy}0V8;@oxG47a$(3z$}xx(%=VCa0(3SEf-!??hXQwM~9t
zJ+}HjJ!I0J+I5s@QJZLs81($Uah=g9(;89_M@H+nUQedtqf3Ct+fpjdt%I)Vbdu8u
zTL*<(`ziH|TgWgNrLbL>b5k+*RxNDTIo!s68RXGy*A-n|aqF!;qs29s^aQ%E!<YAA
zMr?w*i}YVt<+^GHxo(i-`xT|lx@Ysy!Jc4GN@Cs(A8{_QEm1QXW52o-MyJ0Wo#weg
ztas`b)slcnp`Z6J3Gz~vH%lTM-*3n>wj}Brn;7G?nkAMPu}6o^+}1O8yc)?%jNnfc
zf4{9~oL_|{X>K+im8E9gQpe;t4eK3P|FvJbWAakHVBjQ&=2}wZxL^4a$KzQkkK1$<
z$%}698Qt#}I%o*zrErbo6Y)6V?HD_8#Wy&Qe%JzU#Vb<3?G-le4y;~&VMAOA(^cXQ
zG-I5cK#i6L4BnA=(8NU!dcD4$&3QOe2HzcTi@`g3_Uu*j+R`MKo0b^36TSQK)jffO
zmS#8?k0Vb$QS|iDPI<zO)|?s@85sM4THcpB5YzP3UCX6Lt4&Klj_iqhR^y{`ODkMW
zb-krkj;nT9N}<z=nHoi&%+)yVyH)47?^e^rx7%{+f*l`D>#QHBIACXeN6)y4Lxz3_
zd6aiOC7K`8utm5Fo$ZO$JtM{XyLy5rs!njd%_UW!uP4tn3##VV#|%7$Je5d}>GF74
z{BCp#6@lxMobSW0MiZ}Ue0_%V@HhwF?G0kt-95pDz6TDMR5z}#FL2y1xyW%9`|C>_
z_dTg_Tn=Qh?>)Gh{(%ZGwu5&gpr_tL1ImF0#h}48<8e{E2iqY()-BHap0^D=i#*w*
z!dOftZnQeBIw;4QUi0{6*xTNV&Ji)x9ZB0JE>bl#g{sD~80S$92mFz$8p{%#SJhaS
z<hYsvm!&xV!yxjg-m;AA<`}B2UQ3)2-;3J#?&L)Z_lmlgIo_UQ_Pw;5lObAG<jU|h
z2jzu6U*^2;YlY*!uT_r!FoQh#T0^3p-|hC_$P->iqB;M=nu`w)Eo*v}YjGa)QtUo-
z>ru2{T-M<v+A#yt`eD;G61pKEVh><1Lh;hdP#yb*h=^SdTO01v7VaCOTzLP0v=w)4
zjY)7C{@C}U?fWPmsLu^4&cmhD{XOG);*!p~R)*yUP;mbZc~e+QIUL_VEAgVME#AH#
zJDQmkfg8$P62%1{KwIx$6wwE;RQPVyx01_2&f0%aT5fr@Yjd$Z+oA!n-aZO6)ozIM
zQw9fct6e;PkQL~zxEEJq+CQ<k`tVNpR<TWCk%6=|gPH@zDsg!XS4ncg88TRvv?~w}
zRjB@21I|bbdqdCEVfb;84e)L<g^>&vxfp`sfVXBSzC!zGv3>*fe`+Vv8RR;Xi=qV`
ze-l(O0ym=~^_uRUywc+8GYTT{Ai30(ViY*dbGVcPZ_SYWjR8@65Hk&hL=#ib_S_gT
z@TO=$-S_UsDCcJekVma<jJsyd&N?|SVs)I-EAMWkAZW#^L40GH<1^#ZEH>}(R){*b
zTx#=rW1b7oXiH&-<EVNKg<CVTk}tW&=9RgaZ??kmnG_1DT9xCz&x0JFS(5T~FBA<<
zPsQE5htN<n3R0}ad3aj|Z_TVreu&z8;&RGq5mVkS4{&^@82vD=iIsE9$$3p}<`CH#
z6<RL7y|!muXnBm&Gtf&O*4k-#g7d!FB*zbkB2Q-1Zb#qva8K|^^-TTpESFV%V0n(?
zzU@564@e_VwhL~@UtZ)i){V>~n9|hVba~n2ktg*E$7d!*5qjP>Wy2$wJMK<cfjP_T
zTx<q;PwGZ9PAN&eX~-8O-tsQ}mv;;vKdJaA+*SH3NL*{68A(rnMS$bz77p~R1El>G
zQIUHTD@=@wsTF1gR#O~ghE^mve?UnDAJfM1iWKJ)Hu9+Mii~GI%jqAsC7tt56ISGf
zjmKNWvd1v9sqNVca#5=iu1*>#^GIKrLZ|bNG+O4k>JTd`98YABCm+#S5rQ!_<aBdc
zk$D`E+CL)2@WdYNLRK`rQ=fsy(bn!NzQSmmzNV-_)89_5Bm<h|{Uf3S-k$_l205P?
z^h#W5yQ5(46Ik8Vc4no~P|CZNanHMz3D3LrP;$NNTbbt8`<l{vhU2)RY&`+5_fJYb
z$9eReU<2_u(3ZSAj>PN+noP|iD@$Alm()4v_)WUfXad+QyEY5brh8l$T3P32qMd;!
z(L44m;Rs}9Q?wpOYqhz^fhCcF%$ArA8GH?SH1<uHHlKvL5%OtOQG>drR${!v>pmlU
zlM!yU>fVHnJq}{}Z%V+b*0idx-IV0`K>_5c__SNRxacXIj!&yfFw2G2jCWJc8~Zmo
zoTqcUrw|W15(?c^<RmrI)2PWo)a+DZ#Vv6nm8CiAmp#aFtp7Qv%d4)Zal62;vUf_<
ze^ZNV_*FJq<e&=V$N_iZ>0Z_4-A7wRk<c80zp-af;OQ@+aaXxLzIRoW%c$9CRZQMi
zc}Cmsu1av>gKgwd?y8hK&#$65XyswQ+d+ALmt2+QJp8erMf?s<Ni&XTrohE;cIiOO
zy9>6e#7Wqwx;7kXqe?dVRvEFLnv`@6spcZCjDs67CzCi;q`~Qft0J+nXV30~5si)T
zbkDYw8xlpj8d$bbi_XmfL%HP%-y9K%CU!z2pTj&s2f*DoV<o^;FQx&Rpc?(=I9FGV
zeKRi3F<Erqj2k#)Mm&epK(%z<obhJ!4P?pJ$Z<=vWPESNh7%TsVcUx1n$XQgC^6}$
zniyyY5{_WpT;XQ?GOHY)+!PM<{5kmM8s{;Fs^F)q#pY%s$iCZ6t~bj;p8RNg6(9G!
zUhyHf;@#CQk$7?INoH0_<et~&sHzQ9TD#AZ4Oxx3^Zv%?wQYVi!DT0A2VQ_FRsAYO
zQ!}NOi)van>I<;t3ug^sM`T{;8MjvvFsfF~o3z9o1IMp6!UumORY_m-0i&P>-Z~^E
z^($1ZIn^o`^IaX}_#p|YR^zxj6{yy|s?B{->t$7=xelT3LUn4pAzcsI-dQDy4ROPV
z;K=kvt$A(<7`$wrTOuO$GWz_XFJTT>-ro}C!YbCc#JsU^?n~5|S+C?<5?nZex9nfS
zHMS$^lsoTt--3Gw*l~yvFGE*_<CYxP#j+iHS@)WZXss|iB8}o^0=zcwg5olw2z5)H
zU*3X4Y24H5yJe7@Q7il{HI7flU1}<RHq{@2zNNwWDYnG%8yHwH#oSkL^N?(lYzK+%
zYEd|^U}D2!Tz!Q)7V(f<O;yn3FekLY`)B5>jo2SZK9F9_(8IaXtFY_y3C_>P2Q$F?
z=T58fLzdW;cCSu*>+ou7KFtq|=Q8B|DQ<P1^M@kq`cV*ei{{#v)?rqcxUlLltIJ-8
znbztFj#nLKb(ISz#0fCC#nGC#jb4qLJLoX|t0@4QqX)=-x4Ox3wG~_~FEUnlIFCSg
zS_qh0f7gK4?P8;AzorFjP0;JGb6>-Co0?hI*j!1C-!(?7sTp^T(Q1blsMJxRH3@GB
z!?sve><NfXuc0diB$+{~)fn9}_&S>AP>M1s=Qyvr<r@674Z3CD8Y)E7SL@%JBF8bO
z<zUxJCV-P&cTVeGQ}s?JH@>co@-;Px=r*$hZ$Nd{kW}@qCwkWyjiP$z8vHIOrXw-!
z4cde`QmNzhj#B`7do<V#_Nvu!ZO|yv5jB+Q?VQ(od)m-iBf!`?cOc}SD6LI!BjD{f
zbw0&;#3TjYN>+d)CTlS~-{={4V2+Ea4!$<ean;AyIvl52fXu2{U~SQ>`ldIv7_TjJ
zr6hL0Z=u37X=}W;%E_4(kpSrjb8XGtFm<oR3Cn8iJ=Pj6ad1YIA-^RsZEg=!Z-WY>
zC!zY*QnTu<O;JKL)={G2Q%VDyG#}Oly?JrkCT$g4XLFq&WyuI^#YE>V%;9lP(;V*F
zR7K*xI`y0l%x0P^&522y7~`-h_IO*n3%M@Og=b}?u)}dgAoVsP^dpid2aB9X*KojF
zb5sQ?Zeixd$Q-3U$kq45wI0;{33gqb^K&Z5Q?X624u`g}8S{;`-N=U4b+{4@;Wqiy
z^pw{JM5n#=W{pl8Al83qP>R{yj2e;aqa6QHe&8L=<@Iq+9~M9!F0W6zrHWJELD&zA
zNHEQX_fsxrIF2e5QHXU|QtCOLvCm=5--WNoS^H>ftl0fsOcnHWO5gf2H=`!G^%O>}
zi%zYG)Vnl@=zxCxASbCwL0X69fm1~gdxTHC{jOd%K8St|R?hYK$uGJj8T%fM*_5Yo
zD<yhyb&+^a6?ZFzTO+BpKw5`2q;gCoKG=E)L_4BEVlh<)PUWcJ5%22-8{wVW7P0sJ
zg0ou{oB?Sa9+d^-I)w@@a<RkOq6RU4Yj<ne;EST;@(yr>>(=U4y#0aJUv8~&{%{9*
z(!&q!Q1LC~wD26B5Dwt+<UC1rI1TTru<l<4QCsTj;9F3)U3^q%Fv#h{8zc|hJ>?a%
zKSVGOPe?3|RPzMmCHEnUI=m$Lq`^C)41T)Lr#Y{d|G^B$e{3U9KIGixf5b;v4X0Kl
z=FnXzF%4L++RF?U!D)V>17$u!JN`H)b=(y@G+5<gQ?Uj>%sn!j<9`24v*FvWb0yzr
zijyY)W946qd=3q^4H~m%N9!|#LtF6<_#@O5b6ddR2a!ieZVPf;xpP~D<3Da8Px9Vj
z{cSN$A668>e~~*WDVE^;j~$Wt*Oudm+el2S>`!oR0Co2@>0@upa`G^$Iu)JcxL;PD
z<3Cnab2yGxY@iV9CmG;muSAjUy{(L#=F3!7T!lJD-)&V+t9HDNO3~D)k9<tlOTfu`
zgRCEWTa$~au76vL<9=nRbj|EfD#(+$4#!bk$1Sem@wW%uuD$ywJ;DCNr3<%5xQ;60
zcAMjIY`#9BYoV01732JmsciUgdz|C&!GWIj(}3ht<U`->X)dPP<Ms^4G1^;D@Adhd
z!Q)cvQ}8MTw>z9i@d@zOPnFwld-mO4=3<A-_Pm`UsYMp2H)S%f9yq#va4Wt+{7*B$
zsrGfw<F@Z-RC-C$?l?W@b}CIP#g84uP{Y-Z_4Xl-|F|PEFx#)j?HvKmt6<y_<T!#+
zblqtIhqre`Md~xm^)W7nxxNFj-k(OKSc3BiioF@d`#i-~bK5UI&2bc;f}WL%0;l5h
zZt>!x&A41uPmteH;7SK)kSF1ycM7w9Gv;7lxC~A!8CMW3l;Axhdq<U%C_eZ(%^#ol
z^bErVENVW!!A1OlHofc1b3e!RrRwo_7_FvS=Z+3HGG!2X^4Ms#RNcex#1|EY5cMEe
zqfI{C^Ow*&ZId4ug7?Q?ioMdEF@sBq7)XC}aA#sGJ_FuA$hb3Q^2o#GJB=2@=qr+4
zRi!(#T<?g0s0{V&>376CjmA^)ytBylP}dGshVEd7?kpQ5euC@^ZKrZ)mGejBktb(s
zZXCr$U(hWMM}iHcT923%ka$yepD*b7E~-9RXdA+|#5)}Kt8cXE5j9W#E-FNOWM}6E
z5)UHPoH^2SW_ai>+ntDK{~LW--LSnY#)UD;a{opbwWX~Dr_r0s|HfcCQt@fm<VKjB
zGb1T=vRp^i`>q_vCn*~gS<PR}USCoXX}}2AT}8KuX<uTW|KTEZ!@J5{9-HF~6ueUt
zs0OW>%9EOR(s&oXw~13fu^FU)Bz{+$n^EDu%V>rpi;#mKcjMIiD-56jS3~Kkuh7ZW
zqx^SAIIp_G-8RP&Xa{=JecosY<<8x4uJ<!!U3Ze6J1I`XofgdcWAg3{=kaDi@N0Ss
z*a1$p%5mPWMxNuUvF>&_?z>sw_|Ie$+>Jv=MD0fvPS1)WPsLX`J|!UW8pl&jiPuGI
z5n6KD*XYAPq0o>KBDD^b!c#b?WA7wK@@>w?ssrEP>TOCw#E|-z-}g}2nwg)KJoS6r
zVH3KCT-NAWQBiZv-~t<IuX6F8B$u0n^QCXmL4HD!hPU^mIq&ObI6kQ=Qqb#FFAd&f
zv=rQTz;AKC!1a%cAW!9$Y5aulsc?E$bP-;Q@17D^l(01C>s)G5X;BWeT66E&D$<L}
z*4R0ds1>QGHrMuD?{Iud0(r>SDA7WSkw45DYaJy6UqfH*w#F@taw*k!YB7$hzEewZ
zTm`t6<oG12D|wOPcq%UOw1<mphFO7yzLgA@p438~tYkSJqdF6w<G5dU$G``XC;0-$
ze;#r1;h|dDjmCi$&im1*a@>zbjpG;`sctl>U;75<e_9a^_$~Eqao(?Qo8x|csor{<
zCXh$H?xjS>Wqt1raQx>b5*#%=bg#EsjU8?U`&A|Hjd5XB$$JwVM<sLkTAN?VdsCeM
z3BGy&e!Obbdo!G$B%T;<jXP4+>E0ZtRU6*x7`UpF(S~!qHVoZc5<!}r?=5q^xn7+^
z_f~1BcHfId7R%L~d+UZ+1$hc(gX3xrzPHKoxm79O_RQi-(lC3_eS~T)F;|+sFTinS
z_P!v;=e9*>8=Sn&{2Ct)yD!ekqiy8j<9*m0(j0tW23f7Jqmz=)iP#7WZ-;DajTWPp
z;P~!7hfAuB?tKN09~~FfZK-X^T`Gx!r<Fk0Zs5gCeAle+z6vLgCU;4RLZd0svN(d2
z=wl7{)i|lv%KPdZhbIXr^{Tb;J|q6vZ|2CT`yk7GZLW+{?J@$OZWi7*#Ob4RqA|k4
z&BDaMNSL5^M#Qv{7z(Ne_s6(`3dj9aL#<|g5s`rff3tjllJma36vq*fBGb!oUhV4c
z&l-4E)X3xG*WiJd`}6K0^_=@1Lx}QdhWiT~S6%M@BFEDKDetajVs5|+_NwPX?l+n;
z9T85z+OjU*Uo&i#rLBhBL&YW-v(gO-c7%f^NX+gbu;YOb1U<=R1RfKVVBD4LeZYw4
zF)_*Gu4<1pZcGMQtvT@PYB9?id*m^;6w7g5HRA($j;qK#;BfqyH1de#14VDVJy16I
zqU7<k0=ZM;^zJRufjj;Ck{e{E!TDndCcMe<bW7OV(aJ9y=7Bcn{pxi%u7=73LmbCw
zNWq?^{P-s}RhXc~h1*$Mp0W97gex6WMIO%mGb$fc|7V;F92=DaNhOdr1gP=ILRJan
z4S}o_C@6uFAyAM4RV7d}1S(Ph*C5+r!W+4RHQG9s!c66&yIqV~asy?xUUDpj4g7|n
zd+jr@gSG~4u(_;S12@Dtjy15e148(}bj`FO!O3IMexopTO|gMfK}KNc&;-2yV>}yj
z<VfEJGdvUxQg@K({^R5PP(Sk68gSx^CNFU#nyQy?D0BJaa#FrZZk)JbkkiM;C0#S{
zmc;8E_ls$8{J5%=Z@FPVceE9pr=ASi(BZNw><^NPR`ug*1dIwj7~r^y^n(!t7vGMy
z##zU;0FzqG4fKOlBh9M1yZm5+<NMemgKfP36yt*_`4)H3@}EO_FvE3z5fil_mKIzp
zcA)DY&pb$7Su6A481m#&k>hj_HwI<;K9${LtKJ8xr)&C?Qc}MvGFPJWJZQ9<T2>#d
zaXs`shwT3%C-s|dYpfq*jp^w~2(No$E7Sepkel|_jbJBaho}d=1Aw~i%JtP_yeRb$
zN8JcFT*!sUg{D_tJw+~r>S?Zy2sT0((>E9K*5Qb-C7;}whQBP|g@SYePt(vD!~luW
zE%h<=Dz`R8+!IDm_+?6#S@-6KI{Bc5^_O+Yw_SdGeaPV39{-S7cyZ6T-iIQbKAu8_
zR(%LBYGH#W#_kAbkB>?)Ij|$@bLfuPl)W;_3QT;+sPXY}DVRa3IW<X~v7;4Ho0*4l
zoIO4%$~#(nif@Kn0kIJU_DpU{JML?!p@%A5;TXJzH5Sv;@l-rHJIHw~7a8#V$CM>s
z=e$~G9%^uW2JV|e&ze$_dRYEwnb|NF%Z%DkJk;SzlWS6V$Zg5Khbe+u-PKXr!$FQu
z!G-@g7^kOsLJw1fH6`p)QXu`S_lM)0Ki)weHGeqit?Lg{BsBdKl9JE4^Toq?PRFPP
zNZsN132BjtXj|5Yi=3y958gT<3!L;TZpVMP%EfRyu|Z}|Ag@TQ#`#J1!1yhD+lL#R
zJ)t6E<1qnEt%%Hc-O3P`qb(?SKSqxjfj^-Id6fQ0L<D=$Z9gB6rFC6gf>Ce0?cOWL
zTj-Gl7%haf#`U7EnTXWLcxEo@g&8%uJ(BZgm`5D0tlmp{q%g3PHEx(UxVs;zc;~&d
zcT#h~x%3we_x?xf+=5z!9x<YmNlSNHo;%O&WR3QpZGEJ}jo>-ioiPsPBs`r*DbcE^
zrr1Y~$YBbPLC;dxSdT`$M`}*l85?U~Dawr@UPUN%XYlKNJ6n79W{5}lA5C#NT2~-9
zT@AuVGn`iye>BVSc?smnUS3ppMspthT~ypJq`-wyi1S_4Tx~!fEph(f4Dw{Gj6{pb
zG<;Y9dj8$uN2{DipKB4X7OzKZoJSCXyC8D&^1#V{({uLFT`*<3Z*V-?_9pyCy|qa!
z+r<iwpGWRP{IMVs&7CRYiCr+~&udB=H=Av1ocX~BHOwB1bL~k15!)5cW~f(?^(5!%
zr7xGyNj}Z_c?D4f?+>uYj21aDD)sWNTVouqeqvm7puU@W+2XMx=hgk_$J|MNug5B!
zj#6pl^&rPp|9DJ%6tTv2Kh|&y7q{AouzTy~u@+azL`BO+7}S`3jKZM>8DR?U243B*
zc^tIP_u(iVydQ?ggPcFHK?<WnkJ}<O0oPCz70vv-lqm0p*^WvjDWj2a9?_uE4^&o?
zTzzU_U;^k93sT)^BOD^c!1vE<OFqlhPi#p%$8mJj4D_s%Y{?f~=O-4qnCe=OmpG1?
z)yS<m38`M;JZ6v%xs{<}sn$j#st*5njqAZJ`#;F7g4DxtB*nDF#ZD>-=Rd4*Jsm04
z5w-6@igH@yqd4k;G5<BrCnB6bsp+Xd;XWDC{Y1=r7;*OZtl)`iVtFFLbyO#MBFS+z
z(L9mjxaw3-q&bdGRsNpVsh-Gk{^Tg~2;38ScL9IG;q*KzhG>eDR^^l01K-EodU9OS
zB~Gic^F*2BC+DSn)m_h@807RxF_D4U{^M*ZR_DCBsClBnaat0fXPsP?dhSVM=!p&&
z!_NqIAm$G+vZ7b&<hG~Y2)f=iA_k4FySwIHgF>gpM0wYUaU9+`(6i<TrTHY8Kd6!7
zV(KKTk>>bGWDZTx$Z#C9Y71t2)wI{haei`M1oy!DMc*RnZWQE49rnP=sxCJgC9ZK?
zN96Xv%8LG6M(Q3I_BD()Qf<?yab?u90VQjG5;(c*UM__iEiOh&eiUAxT##ZN&eK{!
zysFicB&G!!wJJtst;B{Xb~Wxp$WPi_4Bfs1GZT&@^YG@$80Xcb|75}&i*qL;E~;uz
zrnoRQ;6$ogQyR;PSRa<h92Zk_*pqpVV-9OU-CygUq^fIGI>8aaJ{)45Tmw$N8qMO{
zErZtd)W+t?3diAY0`{y^vcSn6-diAd>s-t?+u%6dEkk{ayDiS2fQBaCcei8k>48b0
zm3L2p)xCyyG4R$YH6liZo{G?D5T{H+Q_=x^=&2}ht(w?k6`|nmYMzRV;AAxagOjid
zy9e4&nT=Hv9f(g*2PRKtxH)xT@>FhM39hA|G8zlVRjJ8vUyYHc3S1pet2@L`w1JcR
zMq^=)slvfw*uO!{pK6{O<YrEdNcFl~``J^_{nXU{RFlinub)oQZM8XnYF*kIB3s>0
z<7gKzTZoOYIpG&13pbw*avin2JRNbbE4rWdE>l8J$GKbr!x29k>3z^>U{7^9u>pTs
zDnw6Xx}YP4%>ezlJ?(HqXhnM};ufa@$e|+V>Eso>|4QW3WzHW^LZ0+0?zT4c^dRT)
z5POyM)zcqOQ&99?l$H8TZ@`a@S;6V*lKE+hk|wN{ucwW!ed>^B<e7kQ_QF13tDuT<
z3|(8DDm>%83ex*b%rGzO@=V-osS$fwW5nMV;q!pcB)KH6lVf|)U<$~B)11%Z00O*w
zUncZSj+2;bi=?csuAXtW;%kgA8az&;!Jnumif784_noS6{9xs5mE&rGd&X!wR5I0%
zjjK|tb2Yp#=JX?~s^>g|o2v8%?fQP4Myrd&XWCpzjs9mk9H+MrVa&g{d=|9c@;Jy0
z?yd7d&SUr|_Qr-VOM0V1&qlr8bnf2T{efrWT<2FLOTsA{pZ(7oZK#Igvl&Qfoly0n
zXS3dg+_PBuXk1U*2cyuP`kpOt4IC?F_Q3{49V<Os;=Jkz&z3n(Gc5G{%kXEb-s$ZI
zD#?8bY%~7qom_(&)uXYMy1lRJgwGlcf$N48$liTysXWA$!8_omADr>{jRDT9=xj6^
zLPcj|#EZ^G*%F)fmC@<m7?&e`8hlsN!p0;wkHfLVH1u&5nvF)|_&B+zHIC|E8?*lh
zp5r*GSw=Z?RDa#*aQ;^j<PqDA1&;66lz5Tjc=5Ucd+xyR-dJ&K+PksJh17uCh?{Qo
z=GDeJ=kdU3W<Q!UsS;E;6{b~E^`ng~*M9fLwinTX{bY>iY#ibmD$LK3LEX|I0i#0C
z1vvieq{MM_7RMA|b9!A|(m0R6kU#Oc80Xb(y5~qvE6&$Ta9qvn&rz|O{Am&7$-T7e
z#=;DzeRC8iO-*fao--O-J)rwsp39#WMV^XrIPSYu@bHlO4T#gy07#+a`gLI0;}z}u
zRpGcgG<weH5BP?+9miPo{itz0Y|T>Ot<y@tso17lthgwS6EMH9HdmU2lPoeCqrymO
zi1Vl6R0O=g6KVzwzUk>TF_3>?jXTihv?{h4<@h97Tr<Y;7>;Rvpw+RN;5_PB25<c)
z0vzr(({8b2GF)t3Tr|kcq!w@z%W*!|8JLb)OGUEja9Xu!v%vA+q>(3cCAZWcl{xKK
zw!(4Mp_)`_tpgsML7vPFdaqbEy$4N?Z8iXFa%#3}Qmi%nG%APmTO3zcN6ik$5xfqn
zZT+SM9D2_OXhjP>ALL?qr!@6L3SLTz*__8B>kzNzr{`k^-w;*s(`QkeQ!xq7t1bNV
zWM8X}S}UGUd+XQO{W0^WsLo_0%Y`T5n;QGW3AHdipXWTjV3GqrVV{Q7FK}KxeD!?E
zn-n+hzvWiv^AuOjvC{(sGcZ}xPaKYazRo$-=Ff|%m*7jN&l^po?tVVs;%dHIZH}uR
z`Fw}tr$>;dFbr{A_0$)L9^NHB8?eT7zYuhHDld?ZRt;a)=J@W^4zT?~+<g`$^g_bm
z^TM8qZgWOV%B9J?m^%~Ab4F5PS+28BQaCfMak~vlI?w4d(h~QcHxZj)Yr^g%1V3Jk
z7{UdK$2|XDj2k@GPdt5U<)Tu~^)K{dhKs?a4#fPK?8O}Cb21DsI$re-giES-y;$V3
zs;j<O^1AAU5bjlN{bGd+?`w<df!NojR6PbcuiE9s8pm^vXdQ?fTseFr_8^R>963Sp
zX>&PWzr*od!;^o>8|E(sIgMdlhS}a<B&3+ldCV3K@Yb0`qu7^lxkJz5y_Do~XHs(z
zpYiTAzmzlhwB)_GZa5hG{@+lDNT<kU)o6OD#PKt5Epsp)Cso%hFOk01wNJ|;Pxh)D
zKa+eV+z7c^`d_MXc{S6%ROh&yX-^8h)ZoPFl&1ok9QP~O;<#$7m)aaZ(?Oo>47pSC
z%aqgVcV<#lXQA(^`oA3Hd`{N?<%not>OJUXoAYPpkcat~qXwRoc#PvXL<$~)zHx@K
zn=p7=B*6Q>lJPPg=D-x$|1!xB!@u3}5C2VgpZ<?>seG+IXJsVrczx#OqQN_ouTVI8
zU#@am4ZoM=&iLgz=W(;7I2-OwBRwh}r$U!v%Gxj+=N^8n+HS1GW&+R3OUWVcdgK+n
z=Y+{(%qu~|viRwt);RwX?G@Xg9pq8qD^ZRko(}ZJ%W%Gu;PifFQ9TslRy+AuQk=(7
zY=O7VDg!6;Ik%U*LQZQ@%_T%4x#bqpD+Nv?D!C*zY8g0LDRKS)90Y;)P9t71LXJ&A
z1GdEpm*Sk`l^WNa6d3ps46C<3UTK)Lh!KBQ5jYjx;ygZLodNGXo(fCBUUl8{Dk*3+
z#4%9~lK#gjUJZJy_hu;hjq<9^mDEMst45>jgOA9}@y^RrNc}^FSCd>Ht>b{7t|o_9
z)0|gh`qd1_&z7zIYMxrF|5eAJDUWEpYBZDT+^-fzVh$pH=waBtt4{lBg&V=Of9^2&
zuGWTE2RV;Jq%wH#@x52;oWy}c1EjwqzS`vcf*kVXVcYF)uXZ?%E)hE%jj@0#0I^n=
zH+EXGQ3ei2qo|f_*<9Jjqa24%H5eTh6(1dLjq{KAT1hUZV%|z|d_fy|@&yY9erax}
zP%F;`&dEpt>^y#g=-&EcJf?9D36WOW`yj%mALDd!W<`Qkq*@>Ji#9@iPC?2yT+0)U
zV5+IK)#BzbH6(t57F2_$Wki`;7`)qpeXmgwnlH-n*8&{JH;2lo-FS))>h)TL)7U&W
zVAF5-*P@(1r!Msp)bM?;B{{7&{;wIqr{}4DiVmSR_^;tc3mth4{1h{++Q`3#rvT{u
zZv#NLQr)k~n_HWKOjo`CwGuB=J)HSknd9nI>$S?j5ope%Q`YGI8Ewc=wQF2fT^GI9
z;P_-5`lk@$QAb!k;%!*)-{^SFXpAGoXq4i2>epdMZw}R|Uk`8`ojP#@#hWSx$6hzu
zV~Q>Ds5hN0J3^k&Onf~KMr&}jLcE^fIGzB3W7fGOP6glrt)JnZQHD#Y<FMDW9H+<0
zk3=6lrVO0a^PEQ?%^Zp7y1&o%dV!P2<Dd@8{xdYMmpJbmEpr@3Yow>{L%d$)yjr|p
zALKaB;yTc?&ZXW*&eq*&r|<P9m-8E=#c>R%)X$)=zSs3S1{ih73x8$>>E3A-r2i1e
z8$qsoOj)#uKcWE~g}-5Q9xHY5C>TF4E%`W&poMQFxR`n%{*5HZ)q|05P~Eg<SNpy<
z$gGB|(eg%y<0|HFcn!Vf2Qm=!GWj=y8j<|Zdvo?1-WUwMQ8Wz={2bzb`DHg&-EUO9
z>z-*p$6~F9<{L&s&1j1Zl)e4L8x%0jb6lSnLHb?pjTYyRXo%X+x17|!F(emy6zHCw
z_rDq73Tj$@Gsy9L9C_6AO%!-E4ya-VO)Wq)iD~|+O1+uj_<333%-wQf`(}#M=iA7W
zIZS<YvGiu%;4_jhxZa3EkH+G@2VtaCLZbO_KBmf}wdlWD@$UA$i7PYevCED|Fx+1l
ze6zllW&@i3ji)!8oSzyUNTX#u-8SbiK4L`DorB)D!09fj>GmxQUYtn_n2~og-m<wQ
z7K0kh^qx-<K;_;t0*^=JI^g{^=&c0TKffULaL{uMZq}s@x+GG^VD?Z`+FM!9pGSEr
zHpg+)&VioyDT22gPGViGg6vf%S8o+LkEy2xU&eO;lkGARt-azH{KrCFt$%L~avoRQ
ziDS{HsWC{s?hT@Ik3|gWF^K-Rh|vtH6S%ip99QebTe$P%-YbR$KaiUss~h=kihxm}
zP41~sXj6pK=i{>eI0S@lNp)|Ex-Nw_#kdfrwG4!;-vy<uBu#7Go3OjYt>fNJ87{7Z
zzX`J`uA;=|<8=S>T=;iMX|q5!#oS+DN>TIIrV^LM^yT~l5k5F0bt;_4^jsx=k}df`
z&L3M7E%27_VBK{vw5h@6Xd3?|)wdw+w7tjN&;2EKGQVqk;M)Pw`Q_HPk$*QN8ql47
zB*hSMf7?c)HL9AZ-i~to_W|Td9?wI<tk~~(bPIYXAoO;MOQM9#@p$i4)$;8O=ckCj
zA8$o^;y}q>-nHjm1!->lZb;HpMGZ%YJ238DjO~5`>Z^7wZ+p{^m<w=vIwI9;T-~o-
zo#VgHOL;sikJ|mH&1rRj^LB^hzB%$%^YZsi&s-b3=MxdEaT&~`=f@=&;lgL)N-Bfa
zj4Gw5r*s~a#PMnT5J8(Xb@NGSDZz2&PMdg5{=WiJ9`~2wjyox7v^ouH=eXLs_`p2f
zFURw1zj@NHP`k(#evezk(D284yUh9jN+XXpZ&zJQ!v;kR%YfK04`a%&eVyx|uXkY6
z4MeC-A<{fQD<JF>F`#}Qk%rrxhjI$M^<Pzwf2Yfx7~ToE1$Vy_bSH>0@7P@JJn<^R
z<h%4vjMMuzMDQf(Qr|lXPO3f6J4ue8RuKs(`EPl@L$T1RqGsiHvK+@FLuD$=eZ%dY
zJSSna0kV6FJ#aE?tA>21#Kly<c&E(qKVV~hGLCR*#6sWSN4?|iSwrtM4f&v`L2gT6
zjBx)VAv)mQw(5Onh%2jc`fisS^w7IO&SUG6n!jcBde`POj)$E2DEoY>8~V_@Mx$Wm
ztb+GHxBG6w&=;@5x;UNQeSSA(a1QchGi~A`c#77a-!<Ci4^^p`A2<cJ&pQR9{0}vW
z6}T-NN0ed9+tj>EmCza=yO9PJq%K|Gt#DqgwC`5E6?Md^+KTmVjSDZ#BTuzyxL%!l
zsx^9onoi$saapx<ez)yzm_qLkasCgu=XWX^r3n}&-wSa1IP8*6l?@(xFTzQBH7E<x
zea2&M7GqqkYwyLmB+NLF^yiKDlAK@IK%R<Ei*go^zh&GWbmDtCF6Nuhb6h=n`JTgZ
zH7wpUn#xH-j*2V0#fkHNg?3fPbnj7{YfXpyHsxPo$K8=SHBPGlzgHJ2+O}@|72=?F
zh3_@FFg^|PYslO^55Hvf9`?D|qKDomyIOe;J_Ph@Z_E}U?C+u9k8(L&!PJOXE&sj|
zb6ml6s4(}X``!N&Ua0~4K2={U5qGOo{|QSMkS7Ss`&rIotLzZJ2Q>%rdCu>f6IJjN
z)ZLT!&2UphNv}wgbN~A#uC7|?{W8Zd2qI5vRd-`H`!rNx&$h&BNVO_pg3FzTO^>=R
ze!pSzQm@Hz)q3x@yy5YFhx6#-4cP5<WEDOjGg`U$Q1EZG$bCRAYcw`9G4TG2=^xmf
zR}uTbXxlw<A_G15Lk^)2;#>)9UJ+#X1yxb|4LS;%uj2~S=afIlabfgc`*e7yPB}hs
zIFAF`6!B^=_d${KD9i!h{l}CjosQR~F0jF)Q9c+%qSZ9o6s^;@TrYnhN5j}N&}e=w
zjo@QaOq_vQ(iW)y18P~#pz0MLbU6OU3i5E^LwBVY%cy`0Y>64+hf@tIfQCT#hj{M=
z1GN7`Bi72h4`VQ*IWRRKjbe1rz@C=VrsNNkT=-8UOJ1ej{l|wHcmHwhhgmN6N6M2}
zj^h{9B%bHE3c`mD$N!WTwH#hWoq4ns5S!tczhZw_;gV5&5bjJF<Gv4#M)Rv)<4S0l
zlu`<P*x)33j03XQuS<*b=rL9B)}M;Nsjfp5lD>~9r-k<dn}AWFj{-<E9AyX3(w2&k
zBAoxzkkpI0k^TsmkF>>Hb{4J_qD{#q-Bq;vBXn+eP9}0%LXsJ8sDEU%0iMl_osD{_
zCHf-=@|t6R%8CqlI-)Bg9k1H#qcWGn3(#ldDD=OhfT@0io}V?>&(KG8E{)%Zu@_LO
zSt(9c&`L!YPJwr?&$~Zrd-b_+f!5+5Q9v{eI!z`G8daf=5#2upMGK@KsZPY(Z;U+$
z&k&!Gwnm0J<hN!HXAX&TwD#!4Ise~-$fKT}qzImer8_0t;~coCD%Htwoj;XD12+97
zw_`K~mdSGw=|3k$>|Aex%OLOHqUcn(IlQe=JQv$D&wuhq^B>)@24(Bd1>oc-_V(~|
zVv~zqU?Wd-3yG$V$<;njuYQN~e{LWTy?=Sr(S_&Hk=S`w&sGn2;{kKnv7%Wi@6ASH
z6BK&?T$W%AsaE&}H4)5Xb0$OluLP$r>=KE*HB~G;53|5|c`MjMl_F=d-s#w~ylT~d
z<+<vg(E@pdRCVHiQFOGD(E{gVHcv@=Ww#Iit0Hm;ojCP;YxI$S3QCTg(=^ra`B#nO
zYAX9zo#Pjlktd&<REF4az6xO5kPC{=`SAEpDu6?rM?2fUMSw4qG59#>9hqGCTa5jS
zq_ZDmw)h=t@b+)9;k(F&1(f`8l3T)}9sC_EsR`p_Ot$p=>&H~GR#RM%Bp~N+&^|U|
zjEOQwcGN8UalyMCwd{9ja<v|RT;fKd)PPdIT8}@ja9;JFj|Vx9ej58d3iIvC1^ATT
zqcFdw6dSDu*w_`J<ZsJAZgc)3>W>s5cM2DqVQb+9wugNZK&shNWqd-R)^N4M`Xs_}
z6_rnHj;lHRlPJe0caWzqs(ljkCc)kR%L@KlEz+MPxU}z0lH)3@pQJdhdgmu;j$br{
zJR<N(mU`zwpX4}wfsH)Tc_dn;{o);tqid!93jy~lS>(JrBlx7`*72ZE%AEIuR{1~h
zD#tIv&YjBht6k%~A3m?Q^ncReydRb(#|v5HsorgOV)z7?GFXH|pHQ^4FwmwD#amNs
zPyAC<pVs5Cf1plDO#>UBMv!PqnDi2V&^qO(QO+0IQV-kSKhQ<_A8=Yl8=?MB$)aXS
zMfuYd$JMi!pQb%`Ho~1FeRr~4Sj~{1<~XiG^QqDFe~Ckms#S2^!%wEU`;%!4QDxtu
zvSBMDG7Hs`{pr?iSOn=$GoRMDGDdz4`~=nKJ~i4<wf(2qNg(+BpSHNZUlEF{7QMd|
zkf(~cgTMPT93|04Yj+3RU{#UNf?Q{c<LP`B@gh4H!v5^@S(FQ7FgOk>raJX!6gkZS
zblxg>OI6^rq-S)KV~tS{c7B%TI)53G4&>a`WcCHxOFo}DTvpu#{fsKAl}pblT>!t1
zv4JB1pOrWdzsunL_gy}#xSwA+_A{g5)b8iAL9VZEvVK<MxSA<Ht8*M*$M_?;QwB`#
zG&v1-V&MHdQJ=Lr@4M0AI2Ozd^sN8M0*BqrK?+%DbA*dw|5u~p)$z#YDCcp@qeI23
zR@xlryswwwIBwh9e}Y|KFU5J3n*#5DOKo$;jdEx+xvRI9BOJ)}A7cZjYUDZZ+jlq)
z`&H6YFM(_>a$fb0%_WYbceKcFHEcFlIR95%)c!Z@{&f&I`O`A^hKGM1FmTMFe@1;T
zjz}JtS@co0&of-^;)LY$-Z%bszYzPIi*pimH)?&K8$PL1lh3Q%77lKl3sIMg3sSwt
zdAgJXZ(U3=KwUm>xua_AMcT^yd57z$cz!;_aa9Jvdi$w34jJ*dxJiPeLPNIOEr+69
z?c#zcUxeA8UQZVr;gEl^F_h$z7(NBm@l-NE_R<FJh#2_ks-F&JIq&;NA=dic-y+D9
zy`tw|iPP8|)?n5<8{J$$8%?fB1zeC|J9*Gh-Ox}KZgBkKnA9U)a{y=YslT9N>hN=@
z&H3ZHgah7t*KcTulQ`F^{skL+YCKfp3ruPB4(_JEXpVk?2ect0#{G|cS-S6wxM@YI
zCpdm_MkM}6Tf)CcasF=(@>DDiC;o~OZa@kB>iY*@<hiiA-|_`1Y4xXf*ieXA^%p!f
zHS(|4=!Jiik@}*{CDm&6MTO&kr4}GJsvK8)>@R8tuA*hMoE%<a{$H&zelvf8+d7Ee
zM59%FU&xkLo4?|G{;z1wUnGFTr+-tT@pKSRyz=ee5zeE(*%zz+Huqw!8UKxa(%-Cc
z^O9WQ=nV2yP>SPf75aCY<Gy1Vj;rqXZybxzvjFQ+_8i|!hYSC$j64-u;P`O_6JF#v
zCZHB-W&LkP@>O>Nn*BG7clCVMziV7)K|$pHhDdz#H}s1e{zi{imZf&fjl>uu^!qgj
z{ugEJ*Yu>m#6|}n`V-Us7eQ1<=3fTAy~im4z0dc2X+vCVAdILY%=m778RPt~aqI-%
zJC5H>wpHZ5^qykq|1!fh($vHV%9mM=t1k3q&K<PfU*<jEF8n)uqf?*mFALst59@*W
z7k6KlxS79Kq<MVUut>wah-+dM)GupX7(q=GrT5)mHoc}kw}@u&!`9{+cvQMf8uTsV
z(3eA;q+@lEesNy~IRER+z$J2W4}E2G4kICU2@Jb;oldy~HB^E6D#0by&gZM77Y^9m
z@?Eg6(p(r_tp>AJQHJHKygRRd<!~_^PuiE#cB2d&jq{b!W7T%!D<j%?%q0aq|BGy2
zRoqpe@2f#>U)|05s>X5JEJNSzK7C&`Ir(=ICTChmv_2Wd^Dj`EP^<wbe#qoK{Of@C
z7|Pc{&eQONe$V$v5BgtwzfJYE(Y3!H6v4~1>Hg~kH*;xJs;4QWy<cZItxk--#?I<;
zJkOHn^wAkSZ3ZV)WWN^I7JJ5pzAkaGbVS6UEw07SWQV?{M$`g<iexTF^e;^Tr;60b
zlfJL(T<i~2f1(>4$8~JYRnJPk<&C(_m*YtkwL$p0!<8<rdBWdBIDQ$yDCC>C$P8HH
zj!7V=xvFk|f0N|6>dfCz6*PG@8+?=I_+=3h9MC%4H(Bp#uh|2bdep08-(c#%iz&U|
zI9ypZ$u|Y}qo?9rD7lZU^?qZ7U9HaFl)WdnzA++?^X&%Q@a~F#GiVkwAaoaT3IT7#
zG=b9Saft43<i{FLA%uRtr}vvSH=%Bve}lWGG;71)mNEV<Wc66l7^ea+ixM#^^lgN?
z!9m~JT<rX~q)AK*^@1UZ$2g9ih+UFnQ_L;Ffy<Io(r7F^i0weqzsK-xhFiK61Gco~
z!1vo6r!S9)RtX2<bdTf;nCXkiVoF@@_Ysi*Zyi&Ye1$$%)BA0ei>XiWd^_kaB%yCf
zT&piWuUv+i32JBdZIkoI7o~ac=BXHQC93WVQ?N8+7(=lu@iFB~3a(PPE5P}q9f=1y
zE<0Gbi|VS```^5jw`n5XaZ<P|#s%aaB;1wYI66TGj#!sFz`I6;yE3ABHG<id<8q7A
zk}pWUWblsUtCFu7d`0q2k%IkDSIgjYB6ro6H89-O;XE!h%f!opA09^Lv;fSCiUxT6
z_Q?Rut5=f3!*FBa(w-f~zE@jg)Z-@MVMc6xo3tuHcs_*H(Q$Yf&RGat1W@(V@Gy#o
zRyv+`sZrF9t&v-!!o#whKNnxt15fMKNb&t^U`cKi!o#QoXqK>ZO<jW()%VGW^Y??Y
zgfiE|1-wIgaxM!Gt8!kR@`Z=hI1arQ^wfbycvyq;i%KGR?UvOnJgjB#Bu_OSa@)19
zo3dJc<m?gdHahsCwkTigkL_@GgsTm7MB`eF?K5#biRP5kdbm4@eSgo6!^7R~y-f7;
zZlfi9$qYAm20p4ymgI{);qDwQT4W&41<xW!QK4>!<1|~60TGpa$?M47WiE%UjlCFG
z&>|t_%!U}0IHg*kL`mWe*RHs5@s_DO+}+~Bc#ffpLVC|kN~I3xu|H~o7q2Y00tZnc
zdPyn-!;L19TZ-`TAeTqYgV#~b>ttwDczD$Huzz@r%c;;0k8@nKkS9G{q9f#chli8b
zTGi#AAv`?A@lsSOX1%^OJjZ#}w}$6Aj!v^g>omi0_WTfnF>Q%=MKE%BcsLplu88?d
zFcejb53g`DsCSX<lrq4{|C-k_8(>F0-5MU=;7WM9wZjT;(ZSS?;`>Xj5Z#g;fx<Dw
zsqmjK)e7H+%3v`O&QdD8M#QM_HaLD*itQkUL=!`AYe8(nnMEmP#9p<@Hi>~pF*|O9
z$qYq@!`m34#u}Qq9x=iN(@3xxUJ9N&&4E=HPvLEhhPWakOUE%3oSaC`FefEl;yBuA
znbuC*;35E1xR|y~w$r5WHiKN_G}$Azsc{?*W?*WIgALAK;UG^@#2O9<#e>VN(bHA;
z*`~vV{a6lhT*Y$RE_aFR-ZtR1<M(esJNhJrLaTeaDpEJdz)lKpYc!wgdfUdh7P_7T
zE$fOFaQM9~+70VR-?k|(r>d}Rn&aq&tsDGz8^YUWMFW$(7+dk~fR6}=x6N~n%cCMu
z@jJk_1<q0j0PDwh+Y;xmOd?NyR-~U*&dWP%;cW*wj(Rp=*SfMI^_#AK_qOgwk}y?l
z+cp)XpwVVmHavVpm&mL@1B)ARhNhx3BFK%X1|AXNI9=G>2yeDaOJh;5fj_$uVZ$pS
z7#SntT;(*J*)2!d@b1pY!@?sd3|ix><{gpZxSH@rP(hmfKaiy`j=%$NsKxj^r&S*t
z;m{5htKf)&>mdFp%5goS#8nXB7W}jRk(HKl=|}N7bOla=E{{sEuCytNnm^Fatsw2H
z6vSl(X+H;Te+C>$oTfCbI<OK;lY9?3Jkkh0E)Qbhy{*vvmDZSkd3g{X8RLd#P&5&Z
zkw(n%P(YDNxK!3@B*|$GoKqGx@aoHf;gM-~PaF=9Bn3?n?QP!#K^51Ld9S^HeiPc;
zn+Zo2wo-AR;<CfTBfVt=f0XISU`MeIn*JaeNm0{^`$rpjs!vUnZ$cEutwI!kXG^ew
zR2RmBMys?DH?qa~t7^!Tv5sf#1{j;J8Z<zhW=vHuK*awK4|)}Uc9pDne>h-sQPpJw
zQI22LK^}et#80ob#vK$$a9Ulj1d<&81<8?GisLw0i`^`H$4=ouma}o{38a;yBR4GH
zH(O(-t8Nl-xUjrx4+jbyKc|d587aEm;^1(A04*v9(ikFv3diN?XE;#h_zXN>1fQq-
ze2w#d=;|E5TGhsz^yUOwocCL^&2f1s77kG8HNWLqbvQ62uK{}kTtIb$o*>6@<11D5
zJ9Q5(ncO`>Pn3({n9_lm`c>3$k1;OQ{;?-v=;6K@^sK9!z!BG;jJHViWVxK$m-gg1
zj?HZF7Huf>IGn#GjXc@KBuI;7Pl@wWlaeoUd>=d|4ZH5#y?40BXjRo}J%e29nxeFZ
zNfV_V)YIU+UmDd`Yn^?Dq+W~TcwDc+YS-cXHFZx954E|qvx1ygYm61)IOguyY8(_^
zOX`S@<qpu0l|W8&3*WNIKuo<06SnZg6&8$cEA94zy~9?9E2y|wM(bT0gB+EENtEJZ
zIb2UI##VvjC!~=ly&}ia>NPl~J|-Eq%A7yJL7wy~99I{}R+Z!Oj%L^z<oF3`(Lp)W
zRqwUxocHV7;P|z9<f;6YTVJvJ8hn7>uVjY{`;{ExxEiwCku9xN)YboX0gmHy(Wx~E
zimK#x5zebhZfA2`mA_q-<Eqlz#W;@6<DeYt+7@tBa=WD0`L;`OIaObG$E5j>pjOFG
zzkXS+=hrXC@e?R+R2~Iav**{>;W(XMpqwN9`V~3v*RRBJ)u`K*IbKd8PvzrcAFFTg
zb~S^qO1>#NF5fcvhUABYP0QH1YjM0>mX+E*B2oZ*x3{^{;-IIreOx#$pD_5C<PlVt
z&lr44@_Eq$KWBT#;B%5MBc*e*-6`MI^}Pl3|54%XD@e3pFD^<PpFYRDJ!kux!4FEl
zfmE~i{g))(G~`K+%E6Hj?DcNnG5EH}@6aV0;Khb@c(C$1!l1N61c_G2_v#Y2k!ns~
zM{*<|L!!xl-@UK~9yjDkj^vYu{827`Sa^pN{?H2`K~l&d(F-U_Jd0G9CpnTYh#Kbi
zz8y$T=kt;;Bh~Efag=b@V?Mf$aMG_K(fHjn$P-S1(CrOMye(|ZXA5`e7<|*?M+K4U
z_O6n6gv&1>80CzLBhlrRodj^L{3TK3Nj`&QSl1-Ko9#gb5@7^rNlM}c5yTi4%WlP3
zS(29^UYP~hJ8BSly_B-#aVx~-TLw>2L1Cl2M49-}0fVQg5Rc<xmydCNX+-j=fwj~X
z2jSDwgv9b92C#RugS_U`QmPo)EQ^fGR}8)=`MM~&e8b?Wj-=lfHJ2wJb^9%k58|0`
z;)CR)#$Qh~^n-YLVjb~ugO5rcOS;Qv3_dA&93i`W!QgX}uZSx6g~6)9mn2X1(t65d
zN8(MSy1zAv4<Xg%NgwqXLy0cmmbi^{Sl560J!?up5>cd@!m^;mldi%R`B@TA8S)e`
zDmaHkb7)FY6z@QVmt`bR71jB=#LGza@(U8LA=TvfB$&z}Jzc&k@itOj{(CMyDQrHY
zv5X=LLm{fDu7DeAccKT}Ks50&gFj7F!7scaD*2SbS0tWBsyTQ=QsOy7{!NMJ4f(9Z
zi(G!{&Mv+%9HL0-1r(%0)ll$e<8WxukXMd24f%_uot7bAm-rCUVf*8Mat)mNfJcNW
z(H-hYJc3k<@YJtF<1R$75|n(L^Ray-o<OSEtHdOpL8{q{ohEULm@c1^I0Z(RzthDR
zhQmceAukmuGMd6(s^F?2UzYL>Lp~?*CQ{v@n#4Ouhb_eaWCZt85gY=hE3`d@??gyp
zi+um~61S0R@;3$~o<OS0XC$6Ps^qEs8)K5lBGnbXk~q~wDd5i=(-JQt)#WP^FCo?C
z9f?<wYVv#AU0o=DRQNlCAan&~sA(uT$dh~vi7sE4_z+UPfcHIoM@n@0j>IEWzNWCx
zqmr<>!t$WR<4ARRZ(a%Sm@wpHQa;V)_f>W>N}l46|CXod|D(b?=8@<H{6gXmQmqEd
za}qBh)#Ue;!+giGAzzg8gIs=}d6!F~hEy-0D)A;#y#OkZ9Bm=d<r^M8mJ&^Vzm%xm
zi-~l3NAfo3<2lhGenmv`3C>Rs3j026oma#qZ}ic9Uy^tZspij$w8Y6@&7Wz9iz@6b
zT;WK*X7F+lj-@W8+mrDaOZCv~?Y97V#AED`A>Z`yaS^1N{10L-J}ErT#vfV%D+4YO
z9+yC>DNL^qJOF=JdV1k;M*XMDX>wf7Fqf9*irn0OEs2+q>cu+}A4IAZ{{zzR8YMn^
zz#6k~Wkm|LkZMA4*@?!rf$K&ao_vJrrpf<E4zozmkROurQA6IV%%pH6#uaX|r9#qB
zD2m_)MD3=8<g=Vl#wDIZsyTd9M&bpen!`zwLn}v$NOXBe;uWO2JmnF!XEz{fH<jH?
zI8sNd3$-NPK&l(9NxY3zlRw~aiFc6d@+}V^A3&<h7hGH{dJs;mqQ6mt@lhnYP*dVD
zq?*xHw#1W2HTeYTlbsY2T|Oc4EK*(Gaq)%W@j3jVD`Z?EJidTbQ#g!ZDxio&mv<yy
zL8{5mkpp0S)sQbs`8vt(kN?SKc1~Ur4WxPjHHo*8Y6bi-D}uP`y>L~_<9h=Jukavn
z&ECx<j*9d~k!bezmup6E47e_DBTw=PB)WXk#TSNq=?`6j1W6%{L|3><;u)m6Jjs!K
z4v8-RjKnE0x;)8|d;y8RQJL`_NfeRl3M5DhWh7bwGi1l@tpL~MNsi<Pk?8UlOT30u
z$<so4GYOJH1BtF6C+*%QaHW7hZzegCZzIv=zmj+dsV+})kl%?CO@8KSU0uh!L;!@Q
zP$fZ9h#=7wWT)K82CmDK9LdL!=<+WK`w{f9D&fQ@4SuP_Q%H4tBuDZYB$~YgWDD(-
z1+L4J9LeXAX!1Yw$`yZp1XD$oND?Y?A-62TOTcxbBu99K%O9%nsv%EuBws_KIWe2$
zx<)Mw?^H*s7f^GF@J>ynn!=$ZM}}HRba|2^yn{rSw<SJ=RF@|?$nP9LqE8jG+mZ+(
z)f8?aK~k`hXa&r|vsRDdzRoR#6CdaNp=pUHkm~m01CL>kb4W(gB&O3TiD!{&#T^or
zc+QZ=7bReC;UNvl7YyE!cnPU)kMiVp8HrxL!mGeF`Pm8NNq!KCE>Ch@qYe)5Tt})a
z1Y9D#GdZR!kQ^CmBhlm&cMAJ)Yz}W}dHi=tU*l)v4hiwAiH81nqntl*vZ%VeE%_wp
z6Q7FU6A1k3gyb`vKbZU^yICZfzpFD6&m-0RIk+Usu06s@ugLiWPnI|ZRJTWRBws<I
z**kElh&8OSzg|r^@il{QAy0T6iDqwIQsOP7n!SUf5^p2b<X1O6e3yXt$muQ-&aad8
z*#)osU@7e1B>|qEPn1h)R}g>0k6ox-&F&gm-Y!}9rpLlvat2TGq(}BOJ$18V7l-5O
zX2UK8j;~20Pj*U3^!mzmVV5%S;dHGh9bQ9%q%ep?S0D!ouOZPKT2qyH6R9SDur2Wx
zQeD2`;k#1e%cJ~R0ZCA*D|94oBlQ&^pO$zOsV2WRBJl)LU0$yJyCx0!IP&|VX1kI>
zP2r#n@`O{W7oZBx(c^BtyE+Cf1GTGnr+Ch;C4(n<GFwKXnN=;jYsJ7*$df!ic83RY
zP73c@;{t0P<Vm2;art4c@U9JxtFE$ZljCcP$djERx2w;w1IRvxf2u1J4c-nS*@8QS
zx_AVMR-ruyB_4I3PTVPM#{j&Bf2Kh^&H6BI2iv$yN@K{*K!!Ford$@7R>0~Z<jEoL
z*~@;LDsVpjnR+E)n%>$r@}yUF$6l{Zj%vJmgu$-4Pk<~8+eT#N3%6mr!4;2fAy0;z
z9QO?puN8C_6-@HvkcRvAJA_Zh|74BMq8gII5D{B&Rlsg|Y7mbI?H%4Nzy*}W-GUrH
zGlx73?iO)7*G}QxY~)|UKO=^_MU_Ad<iGzv0&)7(%8m=eyCpzszV#)Mry?lTaNp+?
z$JK4v-O?OaZ!7GU;rKeLD%sBxu5}yP&&Mt{3~d*26~->kkOKb6s=D{HyGD&&>>ASW
zDE=m#Vx`N+C7##t@8j?7s79pVAkh`b5yJ7h<dfKhxc5MHp5%!yA<^-o#LEUwd6KUf
zcva$*>UI=9=;8>Ks(DQ+P^v35Bwjc0mc)tI<rUsE@PL#j-d`NWoljd<@8Y(Ob#=K<
zQc<Nk!g(5#!r~zjdkX1wT_T12!t2PEZv*mq<RO1u(7-Daj~IAX;<kaOB_2nr)oD~p
z;t8bPT?hL?bDvzIf|D+>1t$Z9lcMHmPhR3_VY?N{7`$?T9Mtt9QZHxVsv=}pmk&t!
z5>l-qV+s;4Bh@RiU0f0sm+&iMwIyCN@T|n^BJm8S>+2ev-!35eCdaL`#9N|80ay}5
zUU!fjM&Opj44nKTJoSIzIRmds`J#c>B~HA)<#C@_qyid-0#$(Uj)Av5d}+|Yha?{3
zxO)c;c9y1e9M{32s8k@&w!uGdJg&GvMq()yq~q;d2cNY@4eNfcOVl@7vxniwNuIOz
zvzl45(>3fuJoNUQwP)xkH`~=M)2^`{QGCvtW*txE;J;Zp(SV%wYpNJJ!>>D+95GJp
z+O&2JZGl{Bo9UB9s%cH@UJ@4tq}KI2yZDIfcNX=gHM9Hrq^tToRI4u21<L(n#UJBh
z{5HdO694(UwNv*eDN%UdnrU61^rY;dXgm*l|4e)NF-tEBzJQO0y|CS_!56ka;Q;Tu
zYF%BUZ@4u-eurNMc0c9h1yfErZQg<f^G~0$;H>%ct&`8m+1YcaoRd3w-h%m4PF`Ri
z07RV7H)34R&r`DwJnE1svyKuM^o`i1_o(C{Ke0^xDW|~5t-aqHQQvmq*$d7%YyOn8
z7R)<)%4uhuWJm3JC!b|cw9cMjPbF}Ieaf#+KY7aOXPi9Wo_Urv|MZja*OXtKzQ6``
z_GxFFGTBu<ao*YUC)j5t?6c=Dn36l|jNJUQ7MyRn)Y-rK?R@+H(mQ)cuuz=I6~!wP
zNA!*2u8F($*x^4SuF3hQFF5Ob+b`IjVowsc^o`hYSl6vibcdszo`e_JZ3DNqDm$Dx
gTr^hf5EMtO+~E-SuUiLJ?lAX1w)yS0KOO%60IKNqssI20

delta 223423
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
CkeoFD

diff --git a/roms/SLOF b/roms/SLOF
index 89f519f09b..fa981320a1 160000
--- a/roms/SLOF
+++ b/roms/SLOF
@@ -1 +1 @@
-Subproject commit 89f519f09bf850918b60526e50409afb663418aa
+Subproject commit fa981320a1e0968d6fc1b8de319723ff8212b337
-- 
2.14.3

^ permalink raw reply related	[flat|nested] 29+ messages in thread

* [Qemu-devel] [PULL 03/12] sm501: Add panel hardware cursor registers also to read function
  2018-01-08  5:53 [Qemu-devel] [PULL 00/12] ppc-for-2.12 queue 20180108 David Gibson
  2018-01-08  5:53 ` [Qemu-devel] [PULL 01/12] target-ppc: optimize cmp translation David Gibson
  2018-01-08  5:53 ` [Qemu-devel] [PULL 02/12] pseries: Update SLOF firmware image to qemu-slof-20171214 David Gibson
@ 2018-01-08  5:53 ` David Gibson
  2018-01-08  5:53 ` [Qemu-devel] [PULL 04/12] sm501: Add some more unimplemented registers David Gibson
                   ` (9 subsequent siblings)
  12 siblings, 0 replies; 29+ messages in thread
From: David Gibson @ 2018-01-08  5:53 UTC (permalink / raw)
  To: peter.maydell
  Cc: surajjs, groug, mdroth, qemu-ppc, qemu-devel, BALATON Zoltan,
	David Gibson

From: BALATON Zoltan <balaton@eik.bme.hu>

These were forgotten when adding panel layer support in ffd39257018
"SM501 emulation for R2D-SH4".

Signed-off-by: BALATON Zoltan <balaton@eik.bme.hu>
Reviewed-by: Philippe Mathieu-Daudé <f4bug@amsat.org>
[dwg: Added reference to earlier commit in message]
Signed-off-by: David Gibson <david@gibson.dropbear.id.au>
---
 hw/display/sm501.c | 13 +++++++++++++
 1 file changed, 13 insertions(+)

diff --git a/hw/display/sm501.c b/hw/display/sm501.c
index 7f1822421a..b9b611131e 100644
--- a/hw/display/sm501.c
+++ b/hw/display/sm501.c
@@ -956,6 +956,19 @@ static uint64_t sm501_disp_ctrl_read(void *opaque, hwaddr addr,
         ret = s->dc_panel_v_sync;
         break;
 
+    case SM501_DC_PANEL_HWC_ADDR:
+        ret = s->dc_panel_hwc_addr;
+        break;
+    case SM501_DC_PANEL_HWC_LOC:
+        ret = s->dc_panel_hwc_location;
+        break;
+    case SM501_DC_PANEL_HWC_COLOR_1_2:
+        ret = s->dc_panel_hwc_color_1_2;
+        break;
+    case SM501_DC_PANEL_HWC_COLOR_3:
+        ret = s->dc_panel_hwc_color_3;
+        break;
+
     case SM501_DC_VIDEO_CONTROL:
         ret = s->dc_video_control;
         break;
-- 
2.14.3

^ permalink raw reply related	[flat|nested] 29+ messages in thread

* [Qemu-devel] [PULL 04/12] sm501: Add some more unimplemented registers
  2018-01-08  5:53 [Qemu-devel] [PULL 00/12] ppc-for-2.12 queue 20180108 David Gibson
                   ` (2 preceding siblings ...)
  2018-01-08  5:53 ` [Qemu-devel] [PULL 03/12] sm501: Add panel hardware cursor registers also to read function David Gibson
@ 2018-01-08  5:53 ` David Gibson
  2018-01-08  5:53 ` [Qemu-devel] [PULL 05/12] ppc4xx_i2c: Implement basic I2C functions David Gibson
                   ` (8 subsequent siblings)
  12 siblings, 0 replies; 29+ messages in thread
From: David Gibson @ 2018-01-08  5:53 UTC (permalink / raw)
  To: peter.maydell
  Cc: surajjs, groug, mdroth, qemu-ppc, qemu-devel, BALATON Zoltan,
	David Gibson

From: BALATON Zoltan <balaton@eik.bme.hu>

These are not really implemented (just return zero or default values)
but add these so guests accessing them can run.

Signed-off-by: BALATON Zoltan <balaton@eik.bme.hu>
Signed-off-by: David Gibson <david@gibson.dropbear.id.au>
---
 hw/display/sm501.c | 17 +++++++++++++++++
 1 file changed, 17 insertions(+)

diff --git a/hw/display/sm501.c b/hw/display/sm501.c
index b9b611131e..4f7dc59b25 100644
--- a/hw/display/sm501.c
+++ b/hw/display/sm501.c
@@ -795,6 +795,8 @@ static uint64_t sm501_system_config_read(void *opaque, hwaddr addr,
     case SM501_ARBTRTN_CONTROL:
         ret = s->arbitration_control;
         break;
+    case SM501_COMMAND_LIST_STATUS:
+        ret = 0x00180002; /* FIFOs are empty, everything idle */
     case SM501_IRQ_MASK:
         ret = s->irq_mask;
         break;
@@ -812,6 +814,9 @@ static uint64_t sm501_system_config_read(void *opaque, hwaddr addr,
     case SM501_POWER_MODE_CONTROL:
         ret = s->power_mode_control;
         break;
+    case SM501_ENDIAN_CONTROL:
+        ret = 0; /* Only default little endian mode is supported */
+        break;
 
     default:
         printf("sm501 system config : not implemented register read."
@@ -865,6 +870,12 @@ static void sm501_system_config_write(void *opaque, hwaddr addr,
     case SM501_POWER_MODE_CONTROL:
         s->power_mode_control = value & 0x00000003;
         break;
+    case SM501_ENDIAN_CONTROL:
+        if (value & 0x00000001) {
+            printf("sm501 system config : big endian mode not implemented.\n");
+            abort();
+        }
+        break;
 
     default:
         printf("sm501 system config : not implemented register write."
@@ -924,6 +935,9 @@ static uint64_t sm501_disp_ctrl_read(void *opaque, hwaddr addr,
     case SM501_DC_PANEL_PANNING_CONTROL:
         ret = s->dc_panel_panning_control;
         break;
+    case SM501_DC_PANEL_COLOR_KEY:
+        /* Not implemented yet */
+        break;
     case SM501_DC_PANEL_FB_ADDR:
         ret = s->dc_panel_fb_addr;
         break;
@@ -1035,6 +1049,9 @@ static void sm501_disp_ctrl_write(void *opaque, hwaddr addr,
     case SM501_DC_PANEL_PANNING_CONTROL:
         s->dc_panel_panning_control = value & 0xFF3FFF3F;
         break;
+    case SM501_DC_PANEL_COLOR_KEY:
+        /* Not implemented yet */
+        break;
     case SM501_DC_PANEL_FB_ADDR:
         s->dc_panel_fb_addr = value & 0x8FFFFFF0;
         break;
-- 
2.14.3

^ permalink raw reply related	[flat|nested] 29+ messages in thread

* [Qemu-devel] [PULL 05/12] ppc4xx_i2c: Implement basic I2C functions
  2018-01-08  5:53 [Qemu-devel] [PULL 00/12] ppc-for-2.12 queue 20180108 David Gibson
                   ` (3 preceding siblings ...)
  2018-01-08  5:53 ` [Qemu-devel] [PULL 04/12] sm501: Add some more unimplemented registers David Gibson
@ 2018-01-08  5:53 ` David Gibson
  2018-01-08  5:53 ` [Qemu-devel] [PULL 06/12] spapr_pci: use warn_report() David Gibson
                   ` (7 subsequent siblings)
  12 siblings, 0 replies; 29+ messages in thread
From: David Gibson @ 2018-01-08  5:53 UTC (permalink / raw)
  To: peter.maydell
  Cc: surajjs, groug, mdroth, qemu-ppc, qemu-devel, BALATON Zoltan,
	François Revol, David Gibson

From: BALATON Zoltan <balaton@eik.bme.hu>

Enough to please U-Boot and make it able to detect SDRAM SPD EEPROMs

Signed-off-by: François Revol <revol@free.fr>
Signed-off-by: BALATON Zoltan <balaton@eik.bme.hu>
Reviewed-by: David Gibson <david@gibson.dropbear.id.au>
Signed-off-by: David Gibson <david@gibson.dropbear.id.au>
---
 hw/i2c/ppc4xx_i2c.c         | 198 +++++++++++++++++++++++++++++++++++++-------
 include/hw/i2c/ppc4xx_i2c.h |   3 +
 2 files changed, 171 insertions(+), 30 deletions(-)

diff --git a/hw/i2c/ppc4xx_i2c.c b/hw/i2c/ppc4xx_i2c.c
index 5a6bde951e..e873a445da 100644
--- a/hw/i2c/ppc4xx_i2c.c
+++ b/hw/i2c/ppc4xx_i2c.c
@@ -2,6 +2,8 @@
  * PPC4xx I2C controller emulation
  *
  * Copyright (c) 2007 Jocelyn Mayer
+ * Copyright (c) 2012 François Revol
+ * Copyright (c) 2016 BALATON Zoltan
  *
  * Permission is hereby granted, free of charge, to any person obtaining a copy
  * of this software and associated documentation files (the "Software"), to deal
@@ -25,26 +27,118 @@
 #include "qemu/osdep.h"
 #include "qapi/error.h"
 #include "qemu-common.h"
+#include "qemu/log.h"
 #include "cpu.h"
 #include "hw/hw.h"
 #include "hw/i2c/ppc4xx_i2c.h"
 
-/*#define DEBUG_I2C*/
+#define PPC4xx_I2C_MEM_SIZE 0x12
 
-#define PPC4xx_I2C_MEM_SIZE 0x11
+#define IIC_CNTL_PT         (1 << 0)
+#define IIC_CNTL_READ       (1 << 1)
+#define IIC_CNTL_CHT        (1 << 2)
+#define IIC_CNTL_RPST       (1 << 3)
+
+#define IIC_STS_PT          (1 << 0)
+#define IIC_STS_ERR         (1 << 2)
+#define IIC_STS_MDBS        (1 << 5)
+
+#define IIC_EXTSTS_XFRA     (1 << 0)
+
+#define IIC_XTCNTLSS_SRST   (1 << 0)
+
+static void ppc4xx_i2c_reset(DeviceState *s)
+{
+    PPC4xxI2CState *i2c = PPC4xx_I2C(s);
+
+    /* FIXME: Should also reset bus?
+     *if (s->address != ADDR_RESET) {
+     *    i2c_end_transfer(s->bus);
+     *}
+     */
+
+    i2c->mdata = 0;
+    i2c->lmadr = 0;
+    i2c->hmadr = 0;
+    i2c->cntl = 0;
+    i2c->mdcntl = 0;
+    i2c->sts = 0;
+    i2c->extsts = 0x8f;
+    i2c->sdata = 0;
+    i2c->lsadr = 0;
+    i2c->hsadr = 0;
+    i2c->clkdiv = 0;
+    i2c->intrmsk = 0;
+    i2c->xfrcnt = 0;
+    i2c->xtcntlss = 0;
+    i2c->directcntl = 0x0f;
+    i2c->intr = 0;
+}
+
+static inline bool ppc4xx_i2c_is_master(PPC4xxI2CState *i2c)
+{
+    return true;
+}
 
 static uint64_t ppc4xx_i2c_readb(void *opaque, hwaddr addr, unsigned int size)
 {
     PPC4xxI2CState *i2c = PPC4xx_I2C(opaque);
     uint64_t ret;
 
-#ifdef DEBUG_I2C
-    printf("%s: addr " TARGET_FMT_plx "\n", __func__, addr);
-#endif
     switch (addr) {
     case 0x00:
-        /*i2c_readbyte(&i2c->mdata);*/
         ret = i2c->mdata;
+        if (ppc4xx_i2c_is_master(i2c)) {
+            ret = 0xff;
+
+            if (!(i2c->sts & IIC_STS_MDBS)) {
+                qemu_log_mask(LOG_GUEST_ERROR, "[%s]%s: Trying to read "
+                              "without starting transfer\n",
+                              TYPE_PPC4xx_I2C, __func__);
+            } else {
+                int pending = (i2c->cntl >> 4) & 3;
+
+                /* get the next byte */
+                int byte = i2c_recv(i2c->bus);
+
+                if (byte < 0) {
+                    qemu_log_mask(LOG_GUEST_ERROR, "[%s]%s: read failed "
+                                  "for device 0x%02x\n", TYPE_PPC4xx_I2C,
+                                  __func__, i2c->lmadr);
+                    ret = 0xff;
+                } else {
+                    ret = byte;
+                    /* Raise interrupt if enabled */
+                    /*ppc4xx_i2c_raise_interrupt(i2c)*/;
+                }
+
+                if (!pending) {
+                    i2c->sts &= ~IIC_STS_MDBS;
+                    /*i2c_end_transfer(i2c->bus);*/
+                /*} else if (i2c->cntl & (IIC_CNTL_RPST | IIC_CNTL_CHT)) {*/
+                } else if (pending) {
+                    /* current smbus implementation doesn't like
+                       multibyte xfer repeated start */
+                    i2c_end_transfer(i2c->bus);
+                    if (i2c_start_transfer(i2c->bus, i2c->lmadr >> 1, 1)) {
+                        /* if non zero is returned, the adress is not valid */
+                        i2c->sts &= ~IIC_STS_PT;
+                        i2c->sts |= IIC_STS_ERR;
+                        i2c->extsts |= IIC_EXTSTS_XFRA;
+                    } else {
+                        /*i2c->sts |= IIC_STS_PT;*/
+                        i2c->sts |= IIC_STS_MDBS;
+                        i2c->sts &= ~IIC_STS_ERR;
+                        i2c->extsts = 0;
+                    }
+                }
+                pending--;
+                i2c->cntl = (i2c->cntl & 0xcf) | (pending << 4);
+            }
+        } else {
+            qemu_log_mask(LOG_UNIMP, "[%s]%s: slave mode not implemented\n",
+                          TYPE_PPC4xx_I2C, __func__);
+        }
         break;
     case 0x02:
         ret = i2c->sdata;
@@ -88,13 +182,15 @@ static uint64_t ppc4xx_i2c_readb(void *opaque, hwaddr addr, unsigned int size)
     case 0x10:
         ret = i2c->directcntl;
         break;
+    case 0x11:
+        ret = i2c->intr;
+        break;
     default:
-        ret = 0x00;
+        qemu_log_mask(LOG_GUEST_ERROR, "[%s]%s: Bad address at offset 0x%"
+                      HWADDR_PRIx "\n", TYPE_PPC4xx_I2C, __func__, addr);
+        ret = 0;
         break;
     }
-#ifdef DEBUG_I2C
-    printf("%s: addr " TARGET_FMT_plx " %02" PRIx64 "\n", __func__, addr, ret);
-#endif
 
     return ret;
 }
@@ -103,26 +199,70 @@ static void ppc4xx_i2c_writeb(void *opaque, hwaddr addr, uint64_t value,
                               unsigned int size)
 {
     PPC4xxI2CState *i2c = opaque;
-#ifdef DEBUG_I2C
-    printf("%s: addr " TARGET_FMT_plx " val %08" PRIx64 "\n",
-           __func__, addr, value);
-#endif
+
     switch (addr) {
     case 0x00:
         i2c->mdata = value;
-        /*i2c_sendbyte(&i2c->mdata);*/
+        if (!i2c_bus_busy(i2c->bus)) {
+            /* assume we start a write transfer */
+            if (i2c_start_transfer(i2c->bus, i2c->lmadr >> 1, 0)) {
+                /* if non zero is returned, the adress is not valid */
+                i2c->sts &= ~IIC_STS_PT;
+                i2c->sts |= IIC_STS_ERR;
+                i2c->extsts |= IIC_EXTSTS_XFRA;
+            } else {
+                i2c->sts |= IIC_STS_PT;
+                i2c->sts &= ~IIC_STS_ERR;
+                i2c->extsts = 0;
+            }
+        }
+        if (i2c_bus_busy(i2c->bus)) {
+            if (i2c_send(i2c->bus, i2c->mdata)) {
+                /* if the target return non zero then end the transfer */
+                i2c->sts &= ~IIC_STS_PT;
+                i2c->sts |= IIC_STS_ERR;
+                i2c->extsts |= IIC_EXTSTS_XFRA;
+                i2c_end_transfer(i2c->bus);
+            }
+        }
         break;
     case 0x02:
         i2c->sdata = value;
         break;
     case 0x04:
         i2c->lmadr = value;
+        if (i2c_bus_busy(i2c->bus)) {
+            i2c_end_transfer(i2c->bus);
+        }
         break;
     case 0x05:
         i2c->hmadr = value;
         break;
     case 0x06:
         i2c->cntl = value;
+        if (i2c->cntl & IIC_CNTL_PT) {
+            if (i2c->cntl & IIC_CNTL_READ) {
+                if (i2c_bus_busy(i2c->bus)) {
+                    /* end previous transfer */
+                    i2c->sts &= ~IIC_STS_PT;
+                    i2c_end_transfer(i2c->bus);
+                }
+                if (i2c_start_transfer(i2c->bus, i2c->lmadr >> 1, 1)) {
+                    /* if non zero is returned, the adress is not valid */
+                    i2c->sts &= ~IIC_STS_PT;
+                    i2c->sts |= IIC_STS_ERR;
+                    i2c->extsts |= IIC_EXTSTS_XFRA;
+                } else {
+                    /*i2c->sts |= IIC_STS_PT;*/
+                    i2c->sts |= IIC_STS_MDBS;
+                    i2c->sts &= ~IIC_STS_ERR;
+                    i2c->extsts = 0;
+                }
+            } else {
+                /* we actually already did the write transfer... */
+                i2c->sts &= ~IIC_STS_PT;
+            }
+        }
         break;
     case 0x07:
         i2c->mdcntl = value & 0xDF;
@@ -135,6 +275,7 @@ static void ppc4xx_i2c_writeb(void *opaque, hwaddr addr, uint64_t value,
         break;
     case 0x0A:
         i2c->lsadr = value;
+        /*i2c_set_slave_address(i2c->bus, i2c->lsadr);*/
         break;
     case 0x0B:
         i2c->hsadr = value;
@@ -149,11 +290,23 @@ static void ppc4xx_i2c_writeb(void *opaque, hwaddr addr, uint64_t value,
         i2c->xfrcnt = value & 0x77;
         break;
     case 0x0F:
+        if (value & IIC_XTCNTLSS_SRST) {
+            /* Is it actually a full reset? U-Boot sets some regs before */
+            ppc4xx_i2c_reset(DEVICE(i2c));
+            break;
+        }
         i2c->xtcntlss = value;
         break;
     case 0x10:
         i2c->directcntl = value & 0x7;
         break;
+    case 0x11:
+        i2c->intr = value;
+        break;
+    default:
+        qemu_log_mask(LOG_GUEST_ERROR, "[%s]%s: Bad address at offset 0x%"
+                      HWADDR_PRIx "\n", TYPE_PPC4xx_I2C, __func__, addr);
+        break;
     }
 }
 
@@ -167,21 +320,6 @@ static const MemoryRegionOps ppc4xx_i2c_ops = {
     .endianness = DEVICE_NATIVE_ENDIAN,
 };
 
-static void ppc4xx_i2c_reset(DeviceState *s)
-{
-    PPC4xxI2CState *i2c = PPC4xx_I2C(s);
-
-    i2c->mdata = 0x00;
-    i2c->sdata = 0x00;
-    i2c->cntl = 0x00;
-    i2c->mdcntl = 0x00;
-    i2c->sts = 0x00;
-    i2c->extsts = 0x00;
-    i2c->clkdiv = 0x00;
-    i2c->xfrcnt = 0x00;
-    i2c->directcntl = 0x0F;
-}
-
 static void ppc4xx_i2c_init(Object *o)
 {
     PPC4xxI2CState *s = PPC4xx_I2C(o);
diff --git a/include/hw/i2c/ppc4xx_i2c.h b/include/hw/i2c/ppc4xx_i2c.h
index 3450bda577..3c603071bd 100644
--- a/include/hw/i2c/ppc4xx_i2c.h
+++ b/include/hw/i2c/ppc4xx_i2c.h
@@ -2,6 +2,8 @@
  * PPC4xx I2C controller emulation
  *
  * Copyright (c) 2007 Jocelyn Mayer
+ * Copyright (c) 2012 François Revol
+ * Copyright (c) 2016 BALATON Zoltan
  *
  * Permission is hereby granted, free of charge, to any person obtaining a copy
  * of this software and associated documentation files (the "Software"), to deal
@@ -55,6 +57,7 @@ typedef struct PPC4xxI2CState {
     uint8_t xfrcnt;
     uint8_t xtcntlss;
     uint8_t directcntl;
+    uint8_t intr;
 } PPC4xxI2CState;
 
 #endif /* PPC4XX_I2C_H */
-- 
2.14.3

^ permalink raw reply related	[flat|nested] 29+ messages in thread

* [Qemu-devel] [PULL 06/12] spapr_pci: use warn_report()
  2018-01-08  5:53 [Qemu-devel] [PULL 00/12] ppc-for-2.12 queue 20180108 David Gibson
                   ` (4 preceding siblings ...)
  2018-01-08  5:53 ` [Qemu-devel] [PULL 05/12] ppc4xx_i2c: Implement basic I2C functions David Gibson
@ 2018-01-08  5:53 ` David Gibson
  2018-01-08  5:53 ` [Qemu-devel] [PULL 07/12] hw/ide: Emulate SiI3112 SATA controller David Gibson
                   ` (6 subsequent siblings)
  12 siblings, 0 replies; 29+ messages in thread
From: David Gibson @ 2018-01-08  5:53 UTC (permalink / raw)
  To: peter.maydell; +Cc: surajjs, groug, mdroth, qemu-ppc, qemu-devel, David Gibson

From: Greg Kurz <groug@kaod.org>

These two are definitely warnings. Let's use the appropriate API.

Signed-off-by: Greg Kurz <groug@kaod.org>
Signed-off-by: David Gibson <david@gibson.dropbear.id.au>
---
 hw/ppc/spapr_pci.c      | 6 +++---
 hw/ppc/spapr_pci_vfio.c | 2 +-
 2 files changed, 4 insertions(+), 4 deletions(-)

diff --git a/hw/ppc/spapr_pci.c b/hw/ppc/spapr_pci.c
index 88797b3d36..695c820911 100644
--- a/hw/ppc/spapr_pci.c
+++ b/hw/ppc/spapr_pci.c
@@ -1696,9 +1696,9 @@ static void spapr_phb_realize(DeviceState *dev, Error **errp)
     /* DMA setup */
     if (((sphb->page_size_mask & qemu_getrampagesize()) == 0)
         && kvm_enabled()) {
-        error_report("System page size 0x%lx is not enabled in page_size_mask "
-                     "(0x%"PRIx64"). Performance may be slow",
-                     qemu_getrampagesize(), sphb->page_size_mask);
+        warn_report("System page size 0x%lx is not enabled in page_size_mask "
+                    "(0x%"PRIx64"). Performance may be slow",
+                    qemu_getrampagesize(), sphb->page_size_mask);
     }
 
     for (i = 0; i < windows_supported; ++i) {
diff --git a/hw/ppc/spapr_pci_vfio.c b/hw/ppc/spapr_pci_vfio.c
index 8448e0b024..1f775ea93d 100644
--- a/hw/ppc/spapr_pci_vfio.c
+++ b/hw/ppc/spapr_pci_vfio.c
@@ -50,7 +50,7 @@ static Property spapr_phb_vfio_properties[] = {
 static void spapr_phb_vfio_instance_init(Object *obj)
 {
     if (!qtest_enabled()) {
-        error_report("spapr-pci-vfio-host-bridge is deprecated");
+        warn_report("spapr-pci-vfio-host-bridge is deprecated");
     }
 }
 
-- 
2.14.3

^ permalink raw reply related	[flat|nested] 29+ messages in thread

* [Qemu-devel] [PULL 07/12] hw/ide: Emulate SiI3112 SATA controller
  2018-01-08  5:53 [Qemu-devel] [PULL 00/12] ppc-for-2.12 queue 20180108 David Gibson
                   ` (5 preceding siblings ...)
  2018-01-08  5:53 ` [Qemu-devel] [PULL 06/12] spapr_pci: use warn_report() David Gibson
@ 2018-01-08  5:53 ` David Gibson
  2018-01-08  5:53 ` [Qemu-devel] [PULL 08/12] ppc/pnv: change powernv_ prefix to pnv_ for overall naming consistency David Gibson
                   ` (5 subsequent siblings)
  12 siblings, 0 replies; 29+ messages in thread
From: David Gibson @ 2018-01-08  5:53 UTC (permalink / raw)
  To: peter.maydell
  Cc: surajjs, groug, mdroth, qemu-ppc, qemu-devel, BALATON Zoltan,
	David Gibson

From: BALATON Zoltan <balaton@eik.bme.hu>

This is a common generic PCI SATA controller that is also used in PCs
but more importantly guests running on the Sam460ex board prefer this
card and have a driver for it (unlike for other SATA controllers
already emulated).

Signed-off-by: BALATON Zoltan <balaton@eik.bme.hu>
Acked-by: John Snow <jsnow@redhat.com>
Signed-off-by: David Gibson <david@gibson.dropbear.id.au>
---
 MAINTAINERS                        |   6 +
 default-configs/ppcemb-softmmu.mak |   1 +
 hw/ide/Makefile.objs               |   1 +
 hw/ide/sii3112.c                   | 368 +++++++++++++++++++++++++++++++++++++
 hw/ide/trace-events                |   5 +
 5 files changed, 381 insertions(+)
 create mode 100644 hw/ide/sii3112.c

diff --git a/MAINTAINERS b/MAINTAINERS
index 73a5555735..40cd7ee841 100644
--- a/MAINTAINERS
+++ b/MAINTAINERS
@@ -765,6 +765,12 @@ L: qemu-ppc@nongnu.org
 S: Odd Fixes
 F: hw/ppc/virtex_ml507.c
 
+sam460ex
+M: BALATON Zoltan <balaton@eik.bme.hu>
+L: qemu-ppc@nongnu.org
+S: Maintained
+F: hw/ide/sii3112.c
+
 SH4 Machines
 ------------
 R2D
diff --git a/default-configs/ppcemb-softmmu.mak b/default-configs/ppcemb-softmmu.mak
index 13917fb7a3..5db4618a5a 100644
--- a/default-configs/ppcemb-softmmu.mak
+++ b/default-configs/ppcemb-softmmu.mak
@@ -16,3 +16,4 @@ CONFIG_I8259=y
 CONFIG_XILINX=y
 CONFIG_XILINX_ETHLITE=y
 CONFIG_SM501=y
+CONFIG_IDE_SII3112=y
diff --git a/hw/ide/Makefile.objs b/hw/ide/Makefile.objs
index f0edca3300..fc328ffbe8 100644
--- a/hw/ide/Makefile.objs
+++ b/hw/ide/Makefile.objs
@@ -11,3 +11,4 @@ common-obj-$(CONFIG_MICRODRIVE) += microdrive.o
 common-obj-$(CONFIG_AHCI) += ahci.o
 common-obj-$(CONFIG_AHCI) += ich.o
 common-obj-$(CONFIG_ALLWINNER_A10) += ahci-allwinner.o
+common-obj-$(CONFIG_IDE_SII3112) += sii3112.o
diff --git a/hw/ide/sii3112.c b/hw/ide/sii3112.c
new file mode 100644
index 0000000000..e2f5562bb7
--- /dev/null
+++ b/hw/ide/sii3112.c
@@ -0,0 +1,368 @@
+/*
+ * QEMU SiI3112A PCI to Serial ATA Controller Emulation
+ *
+ * Copyright (C) 2017 BALATON Zoltan <balaton@eik.bme.hu>
+ *
+ * This work is licensed under the terms of the GNU GPL, version 2 or later.
+ * See the COPYING file in the top-level directory.
+ *
+ */
+
+/* For documentation on this and similar cards see:
+ * http://wiki.osdev.org/User:Quok/Silicon_Image_Datasheets
+ */
+
+#include <qemu/osdep.h>
+#include <hw/ide/pci.h>
+#include "trace.h"
+
+#define TYPE_SII3112_PCI "sii3112"
+#define SII3112_PCI(obj) OBJECT_CHECK(SiI3112PCIState, (obj), \
+                         TYPE_SII3112_PCI)
+
+typedef struct SiI3112Regs {
+    uint32_t confstat;
+    uint32_t scontrol;
+    uint16_t sien;
+    uint8_t swdata;
+} SiI3112Regs;
+
+typedef struct SiI3112PCIState {
+    PCIIDEState i;
+    MemoryRegion mmio;
+    SiI3112Regs regs[2];
+} SiI3112PCIState;
+
+/* The sii3112_reg_read and sii3112_reg_write functions implement the
+ * Internal Register Space - BAR5 (section 6.7 of the data sheet).
+ */
+
+static uint64_t sii3112_reg_read(void *opaque, hwaddr addr,
+                                unsigned int size)
+{
+    SiI3112PCIState *d = opaque;
+    uint64_t val = 0;
+
+    switch (addr) {
+    case 0x00:
+        val = d->i.bmdma[0].cmd;
+        break;
+    case 0x01:
+        val = d->regs[0].swdata;
+        break;
+    case 0x02:
+        val = d->i.bmdma[0].status;
+        break;
+    case 0x03:
+        val = 0;
+        break;
+    case 0x04 ... 0x07:
+        val = bmdma_addr_ioport_ops.read(&d->i.bmdma[0], addr - 4, size);
+        break;
+    case 0x08:
+        val = d->i.bmdma[1].cmd;
+        break;
+    case 0x09:
+        val = d->regs[1].swdata;
+        break;
+    case 0x0a:
+        val = d->i.bmdma[1].status;
+        break;
+    case 0x0b:
+        val = 0;
+        break;
+    case 0x0c ... 0x0f:
+        val = bmdma_addr_ioport_ops.read(&d->i.bmdma[1], addr - 12, size);
+        break;
+    case 0x10:
+        val = d->i.bmdma[0].cmd;
+        val |= (d->regs[0].confstat & (1UL << 11) ? (1 << 4) : 0); /*SATAINT0*/
+        val |= (d->regs[1].confstat & (1UL << 11) ? (1 << 6) : 0); /*SATAINT1*/
+        val |= (d->i.bmdma[1].status & BM_STATUS_INT ? (1 << 14) : 0);
+        val |= d->i.bmdma[0].status << 16;
+        val |= d->i.bmdma[1].status << 24;
+        break;
+    case 0x18:
+        val = d->i.bmdma[1].cmd;
+        val |= (d->regs[1].confstat & (1UL << 11) ? (1 << 4) : 0);
+        val |= d->i.bmdma[1].status << 16;
+        break;
+    case 0x80 ... 0x87:
+        if (size == 1) {
+            val = ide_ioport_read(&d->i.bus[0], addr - 0x80);
+        } else if (addr == 0x80) {
+            val = (size == 2) ? ide_data_readw(&d->i.bus[0], 0) :
+                                ide_data_readl(&d->i.bus[0], 0);
+        } else {
+            val = (1ULL << (size * 8)) - 1;
+        }
+        break;
+    case 0x8a:
+        val = (size == 1) ? ide_status_read(&d->i.bus[0], 4) :
+                            (1ULL << (size * 8)) - 1;
+        break;
+    case 0xa0:
+        val = d->regs[0].confstat;
+        break;
+    case 0xc0 ... 0xc7:
+        if (size == 1) {
+            val = ide_ioport_read(&d->i.bus[1], addr - 0xc0);
+        } else if (addr == 0xc0) {
+            val = (size == 2) ? ide_data_readw(&d->i.bus[1], 0) :
+                                ide_data_readl(&d->i.bus[1], 0);
+        } else {
+            val = (1ULL << (size * 8)) - 1;
+        }
+        break;
+    case 0xca:
+        val = (size == 1) ? ide_status_read(&d->i.bus[0], 4) :
+                            (1ULL << (size * 8)) - 1;
+        break;
+    case 0xe0:
+        val = d->regs[1].confstat;
+        break;
+    case 0x100:
+        val = d->regs[0].scontrol;
+        break;
+    case 0x104:
+        val = (d->i.bus[0].ifs[0].blk) ? 0x113 : 0;
+        break;
+    case 0x148:
+        val = d->regs[0].sien << 16;
+        break;
+    case 0x180:
+        val = d->regs[1].scontrol;
+        break;
+    case 0x184:
+        val = (d->i.bus[1].ifs[0].blk) ? 0x113 : 0;
+        break;
+    case 0x1c8:
+        val = d->regs[1].sien << 16;
+        break;
+    default:
+        val = 0;
+    }
+    trace_sii3112_read(size, addr, val);
+    return val;
+}
+
+static void sii3112_reg_write(void *opaque, hwaddr addr,
+                              uint64_t val, unsigned int size)
+{
+    SiI3112PCIState *d = opaque;
+
+    trace_sii3112_write(size, addr, val);
+    switch (addr) {
+    case 0x00:
+    case 0x10:
+        bmdma_cmd_writeb(&d->i.bmdma[0], val);
+        break;
+    case 0x01:
+    case 0x11:
+        d->regs[0].swdata = val & 0x3f;
+        break;
+    case 0x02:
+    case 0x12:
+        d->i.bmdma[0].status = (val & 0x60) | (d->i.bmdma[0].status & 1) |
+                               (d->i.bmdma[0].status & ~val & 6);
+        break;
+    case 0x04 ... 0x07:
+        bmdma_addr_ioport_ops.write(&d->i.bmdma[0], addr - 4, val, size);
+        break;
+    case 0x08:
+    case 0x18:
+        bmdma_cmd_writeb(&d->i.bmdma[1], val);
+        break;
+    case 0x09:
+    case 0x19:
+        d->regs[1].swdata = val & 0x3f;
+        break;
+    case 0x0a:
+    case 0x1a:
+        d->i.bmdma[1].status = (val & 0x60) | (d->i.bmdma[1].status & 1) |
+                               (d->i.bmdma[1].status & ~val & 6);
+        break;
+    case 0x0c ... 0x0f:
+        bmdma_addr_ioport_ops.write(&d->i.bmdma[1], addr - 12, val, size);
+        break;
+    case 0x80 ... 0x87:
+        if (size == 1) {
+            ide_ioport_write(&d->i.bus[0], addr - 0x80, val);
+        } else if (addr == 0x80) {
+            if (size == 2) {
+                ide_data_writew(&d->i.bus[0], 0, val);
+            } else {
+                ide_data_writel(&d->i.bus[0], 0, val);
+            }
+        }
+        break;
+    case 0x8a:
+        if (size == 1) {
+            ide_cmd_write(&d->i.bus[0], 4, val);
+        }
+        break;
+    case 0xc0 ... 0xc7:
+        if (size == 1) {
+            ide_ioport_write(&d->i.bus[1], addr - 0xc0, val);
+        } else if (addr == 0xc0) {
+            if (size == 2) {
+                ide_data_writew(&d->i.bus[1], 0, val);
+            } else {
+                ide_data_writel(&d->i.bus[1], 0, val);
+            }
+        }
+        break;
+    case 0xca:
+        if (size == 1) {
+            ide_cmd_write(&d->i.bus[1], 4, val);
+        }
+        break;
+    case 0x100:
+        d->regs[0].scontrol = val & 0xfff;
+        if (val & 1) {
+            ide_bus_reset(&d->i.bus[0]);
+        }
+        break;
+    case 0x148:
+        d->regs[0].sien = (val >> 16) & 0x3eed;
+        break;
+    case 0x180:
+        d->regs[1].scontrol = val & 0xfff;
+        if (val & 1) {
+            ide_bus_reset(&d->i.bus[1]);
+        }
+        break;
+    case 0x1c8:
+        d->regs[1].sien = (val >> 16) & 0x3eed;
+        break;
+    default:
+        val = 0;
+    }
+}
+
+static const MemoryRegionOps sii3112_reg_ops = {
+    .read = sii3112_reg_read,
+    .write = sii3112_reg_write,
+    .endianness = DEVICE_LITTLE_ENDIAN,
+};
+
+/* the PCI irq level is the logical OR of the two channels */
+static void sii3112_update_irq(SiI3112PCIState *s)
+{
+    int i, set = 0;
+
+    for (i = 0; i < 2; i++) {
+        set |= s->regs[i].confstat & (1UL << 11);
+    }
+    pci_set_irq(PCI_DEVICE(s), (set ? 1 : 0));
+}
+
+static void sii3112_set_irq(void *opaque, int channel, int level)
+{
+    SiI3112PCIState *s = opaque;
+
+    trace_sii3112_set_irq(channel, level);
+    if (level) {
+        s->regs[channel].confstat |= (1UL << 11);
+    } else {
+        s->regs[channel].confstat &= ~(1UL << 11);
+    }
+
+    sii3112_update_irq(s);
+}
+
+static void sii3112_reset(void *opaque)
+{
+    SiI3112PCIState *s = opaque;
+    int i;
+
+    for (i = 0; i < 2; i++) {
+        s->regs[i].confstat = 0x6515 << 16;
+        ide_bus_reset(&s->i.bus[i]);
+    }
+}
+
+static void sii3112_pci_realize(PCIDevice *dev, Error **errp)
+{
+    SiI3112PCIState *d = SII3112_PCI(dev);
+    PCIIDEState *s = PCI_IDE(dev);
+    MemoryRegion *mr;
+    qemu_irq *irq;
+    int i;
+
+    pci_config_set_interrupt_pin(dev->config, 1);
+    pci_set_byte(dev->config + PCI_CACHE_LINE_SIZE, 8);
+
+    /* BAR5 is in PCI memory space */
+    memory_region_init_io(&d->mmio, OBJECT(d), &sii3112_reg_ops, d,
+                         "sii3112.bar5", 0x200);
+    pci_register_bar(dev, 5, PCI_BASE_ADDRESS_SPACE_MEMORY, &d->mmio);
+
+    /* BAR0-BAR4 are PCI I/O space aliases into BAR5 */
+    mr = g_new(MemoryRegion, 1);
+    memory_region_init_alias(mr, OBJECT(d), "sii3112.bar0", &d->mmio, 0x80, 8);
+    pci_register_bar(dev, 0, PCI_BASE_ADDRESS_SPACE_IO, mr);
+    mr = g_new(MemoryRegion, 1);
+    memory_region_init_alias(mr, OBJECT(d), "sii3112.bar1", &d->mmio, 0x88, 4);
+    pci_register_bar(dev, 1, PCI_BASE_ADDRESS_SPACE_IO, mr);
+    mr = g_new(MemoryRegion, 1);
+    memory_region_init_alias(mr, OBJECT(d), "sii3112.bar2", &d->mmio, 0xc0, 8);
+    pci_register_bar(dev, 2, PCI_BASE_ADDRESS_SPACE_IO, mr);
+    mr = g_new(MemoryRegion, 1);
+    memory_region_init_alias(mr, OBJECT(d), "sii3112.bar3", &d->mmio, 0xc8, 4);
+    pci_register_bar(dev, 3, PCI_BASE_ADDRESS_SPACE_IO, mr);
+    mr = g_new(MemoryRegion, 1);
+    memory_region_init_alias(mr, OBJECT(d), "sii3112.bar4", &d->mmio, 0, 16);
+    pci_register_bar(dev, 4, PCI_BASE_ADDRESS_SPACE_IO, mr);
+
+    irq = qemu_allocate_irqs(sii3112_set_irq, d, 2);
+    for (i = 0; i < 2; i++) {
+        ide_bus_new(&s->bus[i], sizeof(s->bus[i]), DEVICE(dev), i, 1);
+        ide_init2(&s->bus[i], irq[i]);
+
+        bmdma_init(&s->bus[i], &s->bmdma[i], s);
+        s->bmdma[i].bus = &s->bus[i];
+        ide_register_restart_cb(&s->bus[i]);
+    }
+    qemu_register_reset(sii3112_reset, s);
+}
+
+static void sii3112_pci_exitfn(PCIDevice *dev)
+{
+    PCIIDEState *d = PCI_IDE(dev);
+    int i;
+
+    for (i = 0; i < 2; ++i) {
+        memory_region_del_subregion(&d->bmdma_bar, &d->bmdma[i].extra_io);
+        memory_region_del_subregion(&d->bmdma_bar, &d->bmdma[i].addr_ioport);
+    }
+}
+
+static void sii3112_pci_class_init(ObjectClass *klass, void *data)
+{
+    DeviceClass *dc = DEVICE_CLASS(klass);
+    PCIDeviceClass *pd = PCI_DEVICE_CLASS(klass);
+
+    pd->vendor_id = 0x1095;
+    pd->device_id = 0x3112;
+    pd->class_id = PCI_CLASS_STORAGE_RAID;
+    pd->revision = 1;
+    pd->realize = sii3112_pci_realize;
+    pd->exit = sii3112_pci_exitfn;
+    dc->desc = "SiI3112A SATA controller";
+    set_bit(DEVICE_CATEGORY_STORAGE, dc->categories);
+}
+
+static const TypeInfo sii3112_pci_info = {
+    .name = TYPE_SII3112_PCI,
+    .parent = TYPE_PCI_IDE,
+    .instance_size = sizeof(SiI3112PCIState),
+    .class_init = sii3112_pci_class_init,
+};
+
+static void sii3112_register_types(void)
+{
+    type_register_static(&sii3112_pci_info);
+}
+
+type_init(sii3112_register_types)
diff --git a/hw/ide/trace-events b/hw/ide/trace-events
index 601bd97d81..0c39cabe72 100644
--- a/hw/ide/trace-events
+++ b/hw/ide/trace-events
@@ -37,6 +37,11 @@ bmdma_addr_write(uint64_t data) "data: 0x%016"PRIx64
 bmdma_read(uint64_t addr, uint8_t val) "bmdma: readb 0x%"PRIx64" : 0x%02x"
 bmdma_write(uint64_t addr, uint64_t val) "bmdma: writeb 0x%"PRIx64" : 0x%02"PRIx64
 
+# hw/ide/sii3112.c
+sii3112_read(int size, uint64_t addr, uint64_t val) "bmdma: read (size %d) 0x%"PRIx64" : 0x%02"PRIx64
+sii3112_write(int size, uint64_t addr, uint64_t val) "bmdma: write (size %d) 0x%"PRIx64" : 0x%02"PRIx64
+sii3112_set_irq(int channel, int level) "channel %d level %d"
+
 # hw/ide/via.c
 bmdma_read_via(uint64_t addr, uint32_t val) "bmdma: readb 0x%"PRIx64" : 0x%02x"
 bmdma_write_via(uint64_t addr, uint64_t val) "bmdma: writeb 0x%"PRIx64" : 0x%02"PRIx64
-- 
2.14.3

^ permalink raw reply related	[flat|nested] 29+ messages in thread

* [Qemu-devel] [PULL 08/12] ppc/pnv: change powernv_ prefix to pnv_ for overall naming consistency
  2018-01-08  5:53 [Qemu-devel] [PULL 00/12] ppc-for-2.12 queue 20180108 David Gibson
                   ` (6 preceding siblings ...)
  2018-01-08  5:53 ` [Qemu-devel] [PULL 07/12] hw/ide: Emulate SiI3112 SATA controller David Gibson
@ 2018-01-08  5:53 ` David Gibson
  2018-01-08  5:53 ` [Qemu-devel] [PULL 09/12] target/ppc: more use of the PPC_*() macros David Gibson
                   ` (4 subsequent siblings)
  12 siblings, 0 replies; 29+ messages in thread
From: David Gibson @ 2018-01-08  5:53 UTC (permalink / raw)
  To: peter.maydell
  Cc: surajjs, groug, mdroth, qemu-ppc, qemu-devel,
	Cédric Le Goater, David Gibson

From: Cédric Le Goater <clg@kaod.org>

The 'pnv' prefix is now used for all and the routines populating the
device tree start with 'pnv_dt'. The handler of the PnvXScomInterface
is also renamed to 'dt_xscom' which should reflect that it is
populating the device tree under the 'xscom@' node of the chip.

Signed-off-by: Cédric Le Goater <clg@kaod.org>
Signed-off-by: David Gibson <david@gibson.dropbear.id.au>
---
 hw/ppc/pnv.c               | 94 ++++++++++++++++++++++------------------------
 hw/ppc/pnv_bmc.c           |  2 +-
 hw/ppc/pnv_core.c          |  8 ++--
 hw/ppc/pnv_lpc.c           |  6 +--
 hw/ppc/pnv_psi.c           |  4 +-
 hw/ppc/pnv_xscom.c         | 10 ++---
 include/hw/ppc/pnv.h       | 10 ++---
 include/hw/ppc/pnv_xscom.h |  4 +-
 8 files changed, 67 insertions(+), 71 deletions(-)

diff --git a/hw/ppc/pnv.c b/hw/ppc/pnv.c
index 94ffc8e137..9475e8479c 100644
--- a/hw/ppc/pnv.c
+++ b/hw/ppc/pnv.c
@@ -77,8 +77,7 @@ static const char *pnv_chip_core_typename(const PnvChip *o)
  * that has a different "affinity". In practice, it means one range
  * per chip.
  */
-static void powernv_populate_memory_node(void *fdt, int chip_id, hwaddr start,
-                                         hwaddr size)
+static void pnv_dt_memory(void *fdt, int chip_id, hwaddr start, hwaddr size)
 {
     char *mem_name;
     uint64_t mem_reg_property[2];
@@ -119,7 +118,7 @@ static int get_cpus_node(void *fdt)
  * device tree, used in XSCOM to address cores and in interrupt
  * servers.
  */
-static void powernv_create_core_node(PnvChip *chip, PnvCore *pc, void *fdt)
+static void pnv_dt_core(PnvChip *chip, PnvCore *pc, void *fdt)
 {
     CPUState *cs = CPU(DEVICE(pc->threads));
     DeviceClass *dc = DEVICE_GET_CLASS(cs);
@@ -228,8 +227,8 @@ static void powernv_create_core_node(PnvChip *chip, PnvCore *pc, void *fdt)
                        servers_prop, sizeof(servers_prop))));
 }
 
-static void powernv_populate_icp(PnvChip *chip, void *fdt, uint32_t pir,
-                                 uint32_t nr_threads)
+static void pnv_dt_icp(PnvChip *chip, void *fdt, uint32_t pir,
+                       uint32_t nr_threads)
 {
     uint64_t addr = PNV_ICP_BASE(chip) | (pir << 12);
     char *name;
@@ -277,13 +276,13 @@ static int pnv_chip_lpc_offset(PnvChip *chip, void *fdt)
     return offset;
 }
 
-static void powernv_populate_chip(PnvChip *chip, void *fdt)
+static void pnv_dt_chip(PnvChip *chip, void *fdt)
 {
     const char *typename = pnv_chip_core_typename(chip);
     size_t typesize = object_type_get_instance_size(typename);
     int i;
 
-    pnv_xscom_populate(chip, fdt, 0);
+    pnv_dt_xscom(chip, fdt, 0);
 
     /* The default LPC bus of a multichip system is on chip 0. It's
      * recognized by the firmware (skiboot) using a "primary"
@@ -298,20 +297,18 @@ static void powernv_populate_chip(PnvChip *chip, void *fdt)
     for (i = 0; i < chip->nr_cores; i++) {
         PnvCore *pnv_core = PNV_CORE(chip->cores + i * typesize);
 
-        powernv_create_core_node(chip, pnv_core, fdt);
+        pnv_dt_core(chip, pnv_core, fdt);
 
         /* Interrupt Control Presenters (ICP). One per core. */
-        powernv_populate_icp(chip, fdt, pnv_core->pir,
-                             CPU_CORE(pnv_core)->nr_threads);
+        pnv_dt_icp(chip, fdt, pnv_core->pir, CPU_CORE(pnv_core)->nr_threads);
     }
 
     if (chip->ram_size) {
-        powernv_populate_memory_node(fdt, chip->chip_id, chip->ram_start,
-                                     chip->ram_size);
+        pnv_dt_memory(fdt, chip->chip_id, chip->ram_start, chip->ram_size);
     }
 }
 
-static void powernv_populate_rtc(ISADevice *d, void *fdt, int lpc_off)
+static void pnv_dt_rtc(ISADevice *d, void *fdt, int lpc_off)
 {
     uint32_t io_base = d->ioport_id;
     uint32_t io_regs[] = {
@@ -331,7 +328,7 @@ static void powernv_populate_rtc(ISADevice *d, void *fdt, int lpc_off)
     _FDT((fdt_setprop_string(fdt, node, "compatible", "pnpPNP,b00")));
 }
 
-static void powernv_populate_serial(ISADevice *d, void *fdt, int lpc_off)
+static void pnv_dt_serial(ISADevice *d, void *fdt, int lpc_off)
 {
     const char compatible[] = "ns16550\0pnpPNP,501";
     uint32_t io_base = d->ioport_id;
@@ -362,7 +359,7 @@ static void powernv_populate_serial(ISADevice *d, void *fdt, int lpc_off)
     _FDT((fdt_setprop_string(fdt, node, "device_type", "serial")));
 }
 
-static void powernv_populate_ipmi_bt(ISADevice *d, void *fdt, int lpc_off)
+static void pnv_dt_ipmi_bt(ISADevice *d, void *fdt, int lpc_off)
 {
     const char compatible[] = "bt\0ipmi-bt";
     uint32_t io_base;
@@ -401,17 +398,17 @@ typedef struct ForeachPopulateArgs {
     int offset;
 } ForeachPopulateArgs;
 
-static int powernv_populate_isa_device(DeviceState *dev, void *opaque)
+static int pnv_dt_isa_device(DeviceState *dev, void *opaque)
 {
     ForeachPopulateArgs *args = opaque;
     ISADevice *d = ISA_DEVICE(dev);
 
     if (object_dynamic_cast(OBJECT(dev), TYPE_MC146818_RTC)) {
-        powernv_populate_rtc(d, args->fdt, args->offset);
+        pnv_dt_rtc(d, args->fdt, args->offset);
     } else if (object_dynamic_cast(OBJECT(dev), TYPE_ISA_SERIAL)) {
-        powernv_populate_serial(d, args->fdt, args->offset);
+        pnv_dt_serial(d, args->fdt, args->offset);
     } else if (object_dynamic_cast(OBJECT(dev), "isa-ipmi-bt")) {
-        powernv_populate_ipmi_bt(d, args->fdt, args->offset);
+        pnv_dt_ipmi_bt(d, args->fdt, args->offset);
     } else {
         error_report("unknown isa device %s@i%x", qdev_fw_name(dev),
                      d->ioport_id);
@@ -420,7 +417,7 @@ static int powernv_populate_isa_device(DeviceState *dev, void *opaque)
     return 0;
 }
 
-static void powernv_populate_isa(ISABus *bus, void *fdt, int lpc_offset)
+static void pnv_dt_isa(ISABus *bus, void *fdt, int lpc_offset)
 {
     ForeachPopulateArgs args = {
         .fdt = fdt,
@@ -429,14 +426,13 @@ static void powernv_populate_isa(ISABus *bus, void *fdt, int lpc_offset)
 
     /* ISA devices are not necessarily parented to the ISA bus so we
      * can not use object_child_foreach() */
-    qbus_walk_children(BUS(bus), powernv_populate_isa_device,
-                       NULL, NULL, NULL, &args);
+    qbus_walk_children(BUS(bus), pnv_dt_isa_device, NULL, NULL, NULL, &args);
 }
 
-static void *powernv_create_fdt(MachineState *machine)
+static void *pnv_dt_create(MachineState *machine)
 {
     const char plat_compat[] = "qemu,powernv\0ibm,powernv";
-    PnvMachineState *pnv = POWERNV_MACHINE(machine);
+    PnvMachineState *pnv = PNV_MACHINE(machine);
     void *fdt;
     char *buf;
     int off;
@@ -479,15 +475,15 @@ static void *powernv_create_fdt(MachineState *machine)
 
     /* Populate device tree for each chip */
     for (i = 0; i < pnv->num_chips; i++) {
-        powernv_populate_chip(pnv->chips[i], fdt);
+        pnv_dt_chip(pnv->chips[i], fdt);
     }
 
     /* Populate ISA devices on chip 0 */
     lpc_offset = pnv_chip_lpc_offset(pnv->chips[0], fdt);
-    powernv_populate_isa(pnv->isa_bus, fdt, lpc_offset);
+    pnv_dt_isa(pnv->isa_bus, fdt, lpc_offset);
 
     if (pnv->bmc) {
-        pnv_bmc_populate_sensors(pnv->bmc, fdt);
+        pnv_dt_bmc_sensors(pnv->bmc, fdt);
     }
 
     return fdt;
@@ -495,17 +491,17 @@ static void *powernv_create_fdt(MachineState *machine)
 
 static void pnv_powerdown_notify(Notifier *n, void *opaque)
 {
-    PnvMachineState *pnv = POWERNV_MACHINE(qdev_get_machine());
+    PnvMachineState *pnv = PNV_MACHINE(qdev_get_machine());
 
     if (pnv->bmc) {
         pnv_bmc_powerdown(pnv->bmc);
     }
 }
 
-static void ppc_powernv_reset(void)
+static void pnv_reset(void)
 {
     MachineState *machine = MACHINE(qdev_get_machine());
-    PnvMachineState *pnv = POWERNV_MACHINE(machine);
+    PnvMachineState *pnv = PNV_MACHINE(machine);
     void *fdt;
     Object *obj;
 
@@ -524,7 +520,7 @@ static void ppc_powernv_reset(void)
         pnv->bmc = IPMI_BMC(obj);
     }
 
-    fdt = powernv_create_fdt(machine);
+    fdt = pnv_dt_create(machine);
 
     /* Pack resulting tree */
     _FDT((fdt_pack(fdt)));
@@ -552,9 +548,9 @@ static ISABus *pnv_isa_create(PnvChip *chip)
     return isa_bus;
 }
 
-static void ppc_powernv_init(MachineState *machine)
+static void pnv_init(MachineState *machine)
 {
-    PnvMachineState *pnv = POWERNV_MACHINE(machine);
+    PnvMachineState *pnv = PNV_MACHINE(machine);
     MemoryRegion *ram;
     char *fw_filename;
     long fw_size;
@@ -567,7 +563,7 @@ static void ppc_powernv_init(MachineState *machine)
     }
 
     ram = g_new(MemoryRegion, 1);
-    memory_region_allocate_system_memory(ram, NULL, "ppc_powernv.ram",
+    memory_region_allocate_system_memory(ram, NULL, "pnv.ram",
                                          machine->ram_size);
     memory_region_add_subregion(get_system_memory(), 0, ram);
 
@@ -974,7 +970,7 @@ static void pnv_chip_class_init(ObjectClass *klass, void *data)
 
 static ICSState *pnv_ics_get(XICSFabric *xi, int irq)
 {
-    PnvMachineState *pnv = POWERNV_MACHINE(xi);
+    PnvMachineState *pnv = PNV_MACHINE(xi);
     int i;
 
     for (i = 0; i < pnv->num_chips; i++) {
@@ -987,7 +983,7 @@ static ICSState *pnv_ics_get(XICSFabric *xi, int irq)
 
 static void pnv_ics_resend(XICSFabric *xi)
 {
-    PnvMachineState *pnv = POWERNV_MACHINE(xi);
+    PnvMachineState *pnv = PNV_MACHINE(xi);
     int i;
 
     for (i = 0; i < pnv->num_chips; i++) {
@@ -1021,7 +1017,7 @@ static ICPState *pnv_icp_get(XICSFabric *xi, int pir)
 static void pnv_pic_print_info(InterruptStatsProvider *obj,
                                Monitor *mon)
 {
-    PnvMachineState *pnv = POWERNV_MACHINE(obj);
+    PnvMachineState *pnv = PNV_MACHINE(obj);
     int i;
     CPUState *cs;
 
@@ -1039,13 +1035,13 @@ static void pnv_pic_print_info(InterruptStatsProvider *obj,
 static void pnv_get_num_chips(Object *obj, Visitor *v, const char *name,
                               void *opaque, Error **errp)
 {
-    visit_type_uint32(v, name, &POWERNV_MACHINE(obj)->num_chips, errp);
+    visit_type_uint32(v, name, &PNV_MACHINE(obj)->num_chips, errp);
 }
 
 static void pnv_set_num_chips(Object *obj, Visitor *v, const char *name,
                               void *opaque, Error **errp)
 {
-    PnvMachineState *pnv = POWERNV_MACHINE(obj);
+    PnvMachineState *pnv = PNV_MACHINE(obj);
     uint32_t num_chips;
     Error *local_err = NULL;
 
@@ -1067,13 +1063,13 @@ static void pnv_set_num_chips(Object *obj, Visitor *v, const char *name,
     pnv->num_chips = num_chips;
 }
 
-static void powernv_machine_initfn(Object *obj)
+static void pnv_machine_initfn(Object *obj)
 {
-    PnvMachineState *pnv = POWERNV_MACHINE(obj);
+    PnvMachineState *pnv = PNV_MACHINE(obj);
     pnv->num_chips = 1;
 }
 
-static void powernv_machine_class_props_init(ObjectClass *oc)
+static void pnv_machine_class_props_init(ObjectClass *oc)
 {
     object_class_property_add(oc, "num-chips", "uint32",
                               pnv_get_num_chips, pnv_set_num_chips,
@@ -1083,15 +1079,15 @@ static void powernv_machine_class_props_init(ObjectClass *oc)
                               NULL);
 }
 
-static void powernv_machine_class_init(ObjectClass *oc, void *data)
+static void pnv_machine_class_init(ObjectClass *oc, void *data)
 {
     MachineClass *mc = MACHINE_CLASS(oc);
     XICSFabricClass *xic = XICS_FABRIC_CLASS(oc);
     InterruptStatsProviderClass *ispc = INTERRUPT_STATS_PROVIDER_CLASS(oc);
 
     mc->desc = "IBM PowerNV (Non-Virtualized)";
-    mc->init = ppc_powernv_init;
-    mc->reset = ppc_powernv_reset;
+    mc->init = pnv_init;
+    mc->reset = pnv_reset;
     mc->max_cpus = MAX_CPUS;
     mc->default_cpu_type = POWERPC_CPU_TYPE_NAME("power8_v2.0");
     mc->block_default_type = IF_IDE; /* Pnv provides a AHCI device for
@@ -1104,7 +1100,7 @@ static void powernv_machine_class_init(ObjectClass *oc, void *data)
     xic->ics_resend = pnv_ics_resend;
     ispc->print_info = pnv_pic_print_info;
 
-    powernv_machine_class_props_init(oc);
+    pnv_machine_class_props_init(oc);
 }
 
 #define DEFINE_PNV_CHIP_TYPE(type, class_initfn) \
@@ -1116,11 +1112,11 @@ static void powernv_machine_class_init(ObjectClass *oc, void *data)
 
 static const TypeInfo types[] = {
     {
-        .name          = TYPE_POWERNV_MACHINE,
+        .name          = TYPE_PNV_MACHINE,
         .parent        = TYPE_MACHINE,
         .instance_size = sizeof(PnvMachineState),
-        .instance_init = powernv_machine_initfn,
-        .class_init    = powernv_machine_class_init,
+        .instance_init = pnv_machine_initfn,
+        .class_init    = pnv_machine_class_init,
         .interfaces = (InterfaceInfo[]) {
             { TYPE_XICS_FABRIC },
             { TYPE_INTERRUPT_STATS_PROVIDER },
diff --git a/hw/ppc/pnv_bmc.c b/hw/ppc/pnv_bmc.c
index 7b60b4c360..b2cf441ee7 100644
--- a/hw/ppc/pnv_bmc.c
+++ b/hw/ppc/pnv_bmc.c
@@ -73,7 +73,7 @@ void pnv_bmc_powerdown(IPMIBmc *bmc)
     pnv_gen_oem_sel(bmc, SOFT_OFF);
 }
 
-void pnv_bmc_populate_sensors(IPMIBmc *bmc, void *fdt)
+void pnv_dt_bmc_sensors(IPMIBmc *bmc, void *fdt)
 {
     int offset;
     int i;
diff --git a/hw/ppc/pnv_core.c b/hw/ppc/pnv_core.c
index 03317db853..7e8a76df44 100644
--- a/hw/ppc/pnv_core.c
+++ b/hw/ppc/pnv_core.c
@@ -37,7 +37,7 @@ static const char *pnv_core_cpu_typename(PnvCore *pc)
     return cpu_type;
 }
 
-static void powernv_cpu_reset(void *opaque)
+static void pnv_cpu_reset(void *opaque)
 {
     PowerPCCPU *cpu = opaque;
     CPUState *cs = CPU(cpu);
@@ -54,7 +54,7 @@ static void powernv_cpu_reset(void *opaque)
     env->msr |= MSR_HVB; /* Hypervisor mode */
 }
 
-static void powernv_cpu_init(PowerPCCPU *cpu, Error **errp)
+static void pnv_cpu_init(PowerPCCPU *cpu, Error **errp)
 {
     CPUPPCState *env = &cpu->env;
     int core_pir;
@@ -73,7 +73,7 @@ static void powernv_cpu_init(PowerPCCPU *cpu, Error **errp)
     /* Set time-base frequency to 512 MHz */
     cpu_ppc_tb_init(env, PNV_TIMEBASE_FREQ);
 
-    qemu_register_reset(powernv_cpu_reset, cpu);
+    qemu_register_reset(pnv_cpu_reset, cpu);
 }
 
 /*
@@ -139,7 +139,7 @@ static void pnv_core_realize_child(Object *child, XICSFabric *xi, Error **errp)
         return;
     }
 
-    powernv_cpu_init(cpu, &local_err);
+    pnv_cpu_init(cpu, &local_err);
     if (local_err) {
         error_propagate(errp, local_err);
         return;
diff --git a/hw/ppc/pnv_lpc.c b/hw/ppc/pnv_lpc.c
index f03a80a29b..b777b78e18 100644
--- a/hw/ppc/pnv_lpc.c
+++ b/hw/ppc/pnv_lpc.c
@@ -92,7 +92,7 @@ enum {
 #define LPC_HC_REGS_OPB_SIZE    0x00001000
 
 
-static int pnv_lpc_populate(PnvXScomInterface *dev, void *fdt, int xscom_offset)
+static int pnv_lpc_dt_xscom(PnvXScomInterface *dev, void *fdt, int xscom_offset)
 {
     const char compat[] = "ibm,power8-lpc\0ibm,lpc";
     char *name;
@@ -482,7 +482,7 @@ static void pnv_lpc_class_init(ObjectClass *klass, void *data)
     DeviceClass *dc = DEVICE_CLASS(klass);
     PnvXScomInterfaceClass *xdc = PNV_XSCOM_INTERFACE_CLASS(klass);
 
-    xdc->populate = pnv_lpc_populate;
+    xdc->dt_xscom = pnv_lpc_dt_xscom;
 
     dc->realize = pnv_lpc_realize;
 }
@@ -515,7 +515,7 @@ type_init(pnv_lpc_register_types)
  */
 static void pnv_lpc_isa_irq_handler_cpld(void *opaque, int n, int level)
 {
-    PnvMachineState *pnv = POWERNV_MACHINE(qdev_get_machine());
+    PnvMachineState *pnv = PNV_MACHINE(qdev_get_machine());
     uint32_t old_state = pnv->cpld_irqstate;
     PnvLpcController *lpc = PNV_LPC(opaque);
 
diff --git a/hw/ppc/pnv_psi.c b/hw/ppc/pnv_psi.c
index 9876c26622..5b969127c3 100644
--- a/hw/ppc/pnv_psi.c
+++ b/hw/ppc/pnv_psi.c
@@ -510,7 +510,7 @@ static void pnv_psi_realize(DeviceState *dev, Error **errp)
     }
 }
 
-static int pnv_psi_populate(PnvXScomInterface *dev, void *fdt, int xscom_offset)
+static int pnv_psi_dt_xscom(PnvXScomInterface *dev, void *fdt, int xscom_offset)
 {
     const char compat[] = "ibm,power8-psihb-x\0ibm,psihb-x";
     char *name;
@@ -546,7 +546,7 @@ static void pnv_psi_class_init(ObjectClass *klass, void *data)
     DeviceClass *dc = DEVICE_CLASS(klass);
     PnvXScomInterfaceClass *xdc = PNV_XSCOM_INTERFACE_CLASS(klass);
 
-    xdc->populate = pnv_psi_populate;
+    xdc->dt_xscom = pnv_psi_dt_xscom;
 
     dc->realize = pnv_psi_realize;
     dc->props = pnv_psi_properties;
diff --git a/hw/ppc/pnv_xscom.c b/hw/ppc/pnv_xscom.c
index 38bc85f117..e51d634f40 100644
--- a/hw/ppc/pnv_xscom.c
+++ b/hw/ppc/pnv_xscom.c
@@ -207,15 +207,15 @@ typedef struct ForeachPopulateArgs {
     int xscom_offset;
 } ForeachPopulateArgs;
 
-static int xscom_populate_child(Object *child, void *opaque)
+static int xscom_dt_child(Object *child, void *opaque)
 {
     if (object_dynamic_cast(child, TYPE_PNV_XSCOM_INTERFACE)) {
         ForeachPopulateArgs *args = opaque;
         PnvXScomInterface *xd = PNV_XSCOM_INTERFACE(child);
         PnvXScomInterfaceClass *xc = PNV_XSCOM_INTERFACE_GET_CLASS(xd);
 
-        if (xc->populate) {
-            _FDT((xc->populate(xd, args->fdt, args->xscom_offset)));
+        if (xc->dt_xscom) {
+            _FDT((xc->dt_xscom(xd, args->fdt, args->xscom_offset)));
         }
     }
     return 0;
@@ -224,7 +224,7 @@ static int xscom_populate_child(Object *child, void *opaque)
 static const char compat_p8[] = "ibm,power8-xscom\0ibm,xscom";
 static const char compat_p9[] = "ibm,power9-xscom\0ibm,xscom";
 
-int pnv_xscom_populate(PnvChip *chip, void *fdt, int root_offset)
+int pnv_dt_xscom(PnvChip *chip, void *fdt, int root_offset)
 {
     uint64_t reg[] = { cpu_to_be64(PNV_XSCOM_BASE(chip)),
                        cpu_to_be64(PNV_XSCOM_SIZE) };
@@ -255,7 +255,7 @@ int pnv_xscom_populate(PnvChip *chip, void *fdt, int root_offset)
     args.fdt = fdt;
     args.xscom_offset = xscom_offset;
 
-    object_child_foreach(OBJECT(chip), xscom_populate_child, &args);
+    object_child_foreach(OBJECT(chip), xscom_dt_child, &args);
     return 0;
 }
 
diff --git a/include/hw/ppc/pnv.h b/include/hw/ppc/pnv.h
index 59524cd42b..61896f9fd7 100644
--- a/include/hw/ppc/pnv.h
+++ b/include/hw/ppc/pnv.h
@@ -26,7 +26,7 @@
 #include "hw/ppc/pnv_psi.h"
 #include "hw/ppc/pnv_occ.h"
 
-#define TYPE_PNV_CHIP "powernv-chip"
+#define TYPE_PNV_CHIP "pnv-chip"
 #define PNV_CHIP(obj) OBJECT_CHECK(PnvChip, (obj), TYPE_PNV_CHIP)
 #define PNV_CHIP_CLASS(klass) \
      OBJECT_CLASS_CHECK(PnvChipClass, (klass), TYPE_PNV_CHIP)
@@ -117,9 +117,9 @@ typedef struct PnvChipClass {
 #define PNV_CHIP_INDEX(chip)                                    \
     (((chip)->chip_id >> 2) * 2 + ((chip)->chip_id & 0x3))
 
-#define TYPE_POWERNV_MACHINE       MACHINE_TYPE_NAME("powernv")
-#define POWERNV_MACHINE(obj) \
-    OBJECT_CHECK(PnvMachineState, (obj), TYPE_POWERNV_MACHINE)
+#define TYPE_PNV_MACHINE       MACHINE_TYPE_NAME("powernv")
+#define PNV_MACHINE(obj) \
+    OBJECT_CHECK(PnvMachineState, (obj), TYPE_PNV_MACHINE)
 
 typedef struct PnvMachineState {
     /*< private >*/
@@ -144,7 +144,7 @@ typedef struct PnvMachineState {
 /*
  * BMC helpers
  */
-void pnv_bmc_populate_sensors(IPMIBmc *bmc, void *fdt);
+void pnv_dt_bmc_sensors(IPMIBmc *bmc, void *fdt);
 void pnv_bmc_powerdown(IPMIBmc *bmc);
 
 /*
diff --git a/include/hw/ppc/pnv_xscom.h b/include/hw/ppc/pnv_xscom.h
index 38077b4796..7252e219e2 100644
--- a/include/hw/ppc/pnv_xscom.h
+++ b/include/hw/ppc/pnv_xscom.h
@@ -36,7 +36,7 @@ typedef struct PnvXScomInterface {
 
 typedef struct PnvXScomInterfaceClass {
     InterfaceClass parent;
-    int (*populate)(PnvXScomInterface *dev, void *fdt, int offset);
+    int (*dt_xscom)(PnvXScomInterface *dev, void *fdt, int offset);
 } PnvXScomInterfaceClass;
 
 /*
@@ -67,7 +67,7 @@ typedef struct PnvXScomInterfaceClass {
 #define PNV_XSCOM_OCC_SIZE        0x6000
 
 extern void pnv_xscom_realize(PnvChip *chip, Error **errp);
-extern int pnv_xscom_populate(PnvChip *chip, void *fdt, int offset);
+extern int pnv_dt_xscom(PnvChip *chip, void *fdt, int offset);
 
 extern void pnv_xscom_add_subregion(PnvChip *chip, hwaddr offset,
                                     MemoryRegion *mr);
-- 
2.14.3

^ permalink raw reply related	[flat|nested] 29+ messages in thread

* [Qemu-devel] [PULL 09/12] target/ppc: more use of the PPC_*() macros
  2018-01-08  5:53 [Qemu-devel] [PULL 00/12] ppc-for-2.12 queue 20180108 David Gibson
                   ` (7 preceding siblings ...)
  2018-01-08  5:53 ` [Qemu-devel] [PULL 08/12] ppc/pnv: change powernv_ prefix to pnv_ for overall naming consistency David Gibson
@ 2018-01-08  5:53 ` David Gibson
  2018-01-08  5:53 ` [Qemu-devel] [PULL 10/12] Update dtc to fix compilation problem on Mac OS 10.6 David Gibson
                   ` (3 subsequent siblings)
  12 siblings, 0 replies; 29+ messages in thread
From: David Gibson @ 2018-01-08  5:53 UTC (permalink / raw)
  To: peter.maydell
  Cc: surajjs, groug, mdroth, qemu-ppc, qemu-devel,
	Cédric Le Goater, David Gibson

From: Cédric Le Goater <clg@kaod.org>

Also introduce utilities to manipulate bitmasks (originaly from OPAL)
which be will be used in the model of the XIVE interrupt controller.

Signed-off-by: Cédric Le Goater <clg@kaod.org>
Signed-off-by: David Gibson <david@gibson.dropbear.id.au>
---
 hw/ppc/pnv_lpc.c        | 10 ++++-----
 target/ppc/cpu.h        | 56 ++++++++++++++++++++++++++++++-------------------
 target/ppc/int_helper.c |  2 +-
 3 files changed, 40 insertions(+), 28 deletions(-)

diff --git a/hw/ppc/pnv_lpc.c b/hw/ppc/pnv_lpc.c
index b777b78e18..c42b4a8f6c 100644
--- a/hw/ppc/pnv_lpc.c
+++ b/hw/ppc/pnv_lpc.c
@@ -146,13 +146,13 @@ static bool opb_write(PnvLpcController *lpc, uint32_t addr, uint8_t *data,
     return success;
 }
 
-#define ECCB_CTL_READ           (1ull << (63 - 15))
+#define ECCB_CTL_READ           PPC_BIT(15)
 #define ECCB_CTL_SZ_LSH         (63 - 7)
-#define ECCB_CTL_SZ_MASK        (0xfull << ECCB_CTL_SZ_LSH)
-#define ECCB_CTL_ADDR_MASK      0xffffffffu;
+#define ECCB_CTL_SZ_MASK        PPC_BITMASK(4, 7)
+#define ECCB_CTL_ADDR_MASK      PPC_BITMASK(32, 63)
 
-#define ECCB_STAT_OP_DONE       (1ull << (63 - 52))
-#define ECCB_STAT_OP_ERR        (1ull << (63 - 52))
+#define ECCB_STAT_OP_DONE       PPC_BIT(52)
+#define ECCB_STAT_OP_ERR        PPC_BIT(52)
 #define ECCB_STAT_RD_DATA_LSH   (63 - 37)
 #define ECCB_STAT_RD_DATA_MASK  (0xffffffff << ECCB_STAT_RD_DATA_LSH)
 
diff --git a/target/ppc/cpu.h b/target/ppc/cpu.h
index 370b05e76e..a5e49f23e9 100644
--- a/target/ppc/cpu.h
+++ b/target/ppc/cpu.h
@@ -93,6 +93,19 @@
 #define PPC_BITMASK(bs, be)     ((PPC_BIT(bs) - PPC_BIT(be)) | PPC_BIT(bs))
 #define PPC_BITMASK32(bs, be)   ((PPC_BIT32(bs) - PPC_BIT32(be)) | \
                                  PPC_BIT32(bs))
+#define PPC_BITMASK8(bs, be)    ((PPC_BIT8(bs) - PPC_BIT8(be)) | PPC_BIT8(bs))
+
+#if HOST_LONG_BITS == 32
+# define MASK_TO_LSH(m)          (__builtin_ffsll(m) - 1)
+#elif HOST_LONG_BITS == 64
+# define MASK_TO_LSH(m)          (__builtin_ffsl(m) - 1)
+#else
+# error Unknown sizeof long
+#endif
+
+#define GETFIELD(m, v)          (((v) & (m)) >> MASK_TO_LSH(m))
+#define SETFIELD(m, v, val)                             \
+        (((v) & ~(m)) | ((((typeof(v))(val)) << MASK_TO_LSH(m)) & (m)))
 
 /*****************************************************************************/
 /* Exception vectors definitions                                             */
@@ -2349,32 +2362,31 @@ enum {
 
 /* Processor Compatibility mask (PCR) */
 enum {
-    PCR_COMPAT_2_05     = 1ull << (63-62),
-    PCR_COMPAT_2_06     = 1ull << (63-61),
-    PCR_COMPAT_2_07     = 1ull << (63-60),
-    PCR_COMPAT_3_00     = 1ull << (63-59),
-    PCR_VEC_DIS         = 1ull << (63-0), /* Vec. disable (bit NA since POWER8) */
-    PCR_VSX_DIS         = 1ull << (63-1), /* VSX disable (bit NA since POWER8) */
-    PCR_TM_DIS          = 1ull << (63-2), /* Trans. memory disable (POWER8) */
+    PCR_COMPAT_2_05     = PPC_BIT(62),
+    PCR_COMPAT_2_06     = PPC_BIT(61),
+    PCR_COMPAT_2_07     = PPC_BIT(60),
+    PCR_COMPAT_3_00     = PPC_BIT(59),
+    PCR_VEC_DIS         = PPC_BIT(0), /* Vec. disable (bit NA since POWER8) */
+    PCR_VSX_DIS         = PPC_BIT(1), /* VSX disable (bit NA since POWER8) */
+    PCR_TM_DIS          = PPC_BIT(2), /* Trans. memory disable (POWER8) */
 };
 
 /* HMER/HMEER */
 enum {
-    HMER_MALFUNCTION_ALERT      = 1ull << (63 - 0),
-    HMER_PROC_RECV_DONE         = 1ull << (63 - 2),
-    HMER_PROC_RECV_ERROR_MASKED = 1ull << (63 - 3),
-    HMER_TFAC_ERROR             = 1ull << (63 - 4),
-    HMER_TFMR_PARITY_ERROR      = 1ull << (63 - 5),
-    HMER_XSCOM_FAIL             = 1ull << (63 - 8),
-    HMER_XSCOM_DONE             = 1ull << (63 - 9),
-    HMER_PROC_RECV_AGAIN        = 1ull << (63 - 11),
-    HMER_WARN_RISE              = 1ull << (63 - 14),
-    HMER_WARN_FALL              = 1ull << (63 - 15),
-    HMER_SCOM_FIR_HMI           = 1ull << (63 - 16),
-    HMER_TRIG_FIR_HMI           = 1ull << (63 - 17),
-    HMER_HYP_RESOURCE_ERR       = 1ull << (63 - 20),
-    HMER_XSCOM_STATUS_MASK      = 7ull << (63 - 23),
-    HMER_XSCOM_STATUS_LSH       = (63 - 23),
+    HMER_MALFUNCTION_ALERT      = PPC_BIT(0),
+    HMER_PROC_RECV_DONE         = PPC_BIT(2),
+    HMER_PROC_RECV_ERROR_MASKED = PPC_BIT(3),
+    HMER_TFAC_ERROR             = PPC_BIT(4),
+    HMER_TFMR_PARITY_ERROR      = PPC_BIT(5),
+    HMER_XSCOM_FAIL             = PPC_BIT(8),
+    HMER_XSCOM_DONE             = PPC_BIT(9),
+    HMER_PROC_RECV_AGAIN        = PPC_BIT(11),
+    HMER_WARN_RISE              = PPC_BIT(14),
+    HMER_WARN_FALL              = PPC_BIT(15),
+    HMER_SCOM_FIR_HMI           = PPC_BIT(16),
+    HMER_TRIG_FIR_HMI           = PPC_BIT(17),
+    HMER_HYP_RESOURCE_ERR       = PPC_BIT(20),
+    HMER_XSCOM_STATUS_MASK      = PPC_BITMASK(21, 23),
 };
 
 /* Alternate Interrupt Location (AIL) */
diff --git a/target/ppc/int_helper.c b/target/ppc/int_helper.c
index 1c013a0ee3..3a50f1e1b7 100644
--- a/target/ppc/int_helper.c
+++ b/target/ppc/int_helper.c
@@ -183,7 +183,7 @@ uint64_t helper_bpermd(uint64_t rs, uint64_t rb)
     for (i = 0; i < 8; i++) {
         int index = (rs >> (i*8)) & 0xFF;
         if (index < 64) {
-            if (rb & (1ull << (63-index))) {
+            if (rb & PPC_BIT(index)) {
                 ra |= 1 << i;
             }
         }
-- 
2.14.3

^ permalink raw reply related	[flat|nested] 29+ messages in thread

* [Qemu-devel] [PULL 10/12] Update dtc to fix compilation problem on Mac OS 10.6
  2018-01-08  5:53 [Qemu-devel] [PULL 00/12] ppc-for-2.12 queue 20180108 David Gibson
                   ` (8 preceding siblings ...)
  2018-01-08  5:53 ` [Qemu-devel] [PULL 09/12] target/ppc: more use of the PPC_*() macros David Gibson
@ 2018-01-08  5:53 ` David Gibson
  2018-01-08  5:53 ` [Qemu-devel] [PULL 11/12] hw/ppc: Remove the deprecated spapr-pci-vfio-host-bridge device David Gibson
                   ` (2 subsequent siblings)
  12 siblings, 0 replies; 29+ messages in thread
From: David Gibson @ 2018-01-08  5:53 UTC (permalink / raw)
  To: peter.maydell
  Cc: surajjs, groug, mdroth, qemu-ppc, qemu-devel, John Arbuckle,
	David Gibson

From: John Arbuckle <programmingkidx@gmail.com>

Currently QEMU does not build on Mac OS 10.6
because of a missing patch in the dtc
subproject. Updating dtc to make the patch
available fixes this problem.

Signed-off-by: John Arbuckle <programmingkidx@gmail.com>
Signed-off-by: David Gibson <david@gibson.dropbear.id.au>
---
 dtc | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/dtc b/dtc
index 558cd81bdd..e54388015a 160000
--- a/dtc
+++ b/dtc
@@ -1 +1 @@
-Subproject commit 558cd81bdd432769b59bff01240c44f82cfb1a9d
+Subproject commit e54388015af1fb4bf04d0bca99caba1074d9cc42
-- 
2.14.3

^ permalink raw reply related	[flat|nested] 29+ messages in thread

* [Qemu-devel] [PULL 11/12] hw/ppc: Remove the deprecated spapr-pci-vfio-host-bridge device
  2018-01-08  5:53 [Qemu-devel] [PULL 00/12] ppc-for-2.12 queue 20180108 David Gibson
                   ` (9 preceding siblings ...)
  2018-01-08  5:53 ` [Qemu-devel] [PULL 10/12] Update dtc to fix compilation problem on Mac OS 10.6 David Gibson
@ 2018-01-08  5:53 ` David Gibson
  2018-01-08  5:53 ` [Qemu-devel] [PULL 12/12] spapr: Correct compatibility mode setting for hotplugged CPUs David Gibson
  2018-01-09 11:46 ` [Qemu-devel] [PULL 00/12] ppc-for-2.12 queue 20180108 Peter Maydell
  12 siblings, 0 replies; 29+ messages in thread
From: David Gibson @ 2018-01-08  5:53 UTC (permalink / raw)
  To: peter.maydell
  Cc: surajjs, groug, mdroth, qemu-ppc, qemu-devel, Thomas Huth, David Gibson

From: Thomas Huth <thuth@redhat.com>

It's a deprecated dummy device since QEMU v2.6.0. That should have
been enough time to allow the users to update their scripts in case
they still use it, so let's remove this legacy code now.

Reviewed-by: Alexey Kardashevskiy <aik@ozlabs.ru>
Signed-off-by: Thomas Huth <thuth@redhat.com>
Signed-off-by: David Gibson <david@gibson.dropbear.id.au>
---
 hw/ppc/spapr_pci_vfio.c   | 47 -----------------------------------------------
 qemu-doc.texi             |  5 -----
 scripts/device-crash-test |  1 -
 3 files changed, 53 deletions(-)

diff --git a/hw/ppc/spapr_pci_vfio.c b/hw/ppc/spapr_pci_vfio.c
index 1f775ea93d..053efb03bd 100644
--- a/hw/ppc/spapr_pci_vfio.c
+++ b/hw/ppc/spapr_pci_vfio.c
@@ -29,31 +29,6 @@
 #include "qemu/error-report.h"
 #include "sysemu/qtest.h"
 
-#define TYPE_SPAPR_PCI_VFIO_HOST_BRIDGE "spapr-pci-vfio-host-bridge"
-
-#define SPAPR_PCI_VFIO_HOST_BRIDGE(obj) \
-    OBJECT_CHECK(sPAPRPHBVFIOState, (obj), TYPE_SPAPR_PCI_VFIO_HOST_BRIDGE)
-
-typedef struct sPAPRPHBVFIOState sPAPRPHBVFIOState;
-
-struct sPAPRPHBVFIOState {
-    sPAPRPHBState phb;
-
-    int32_t iommugroupid;
-};
-
-static Property spapr_phb_vfio_properties[] = {
-    DEFINE_PROP_INT32("iommu", sPAPRPHBVFIOState, iommugroupid, -1),
-    DEFINE_PROP_END_OF_LIST(),
-};
-
-static void spapr_phb_vfio_instance_init(Object *obj)
-{
-    if (!qtest_enabled()) {
-        warn_report("spapr-pci-vfio-host-bridge is deprecated");
-    }
-}
-
 bool spapr_phb_eeh_available(sPAPRPHBState *sphb)
 {
     return vfio_eeh_as_ok(&sphb->iommu_as);
@@ -218,25 +193,3 @@ int spapr_phb_vfio_eeh_configure(sPAPRPHBState *sphb)
 
     return RTAS_OUT_SUCCESS;
 }
-
-static void spapr_phb_vfio_class_init(ObjectClass *klass, void *data)
-{
-    DeviceClass *dc = DEVICE_CLASS(klass);
-
-    dc->props = spapr_phb_vfio_properties;
-}
-
-static const TypeInfo spapr_phb_vfio_info = {
-    .name          = TYPE_SPAPR_PCI_VFIO_HOST_BRIDGE,
-    .parent        = TYPE_SPAPR_PCI_HOST_BRIDGE,
-    .instance_size = sizeof(sPAPRPHBVFIOState),
-    .instance_init = spapr_phb_vfio_instance_init,
-    .class_init    = spapr_phb_vfio_class_init,
-};
-
-static void spapr_pci_vfio_register_types(void)
-{
-    type_register_static(&spapr_phb_vfio_info);
-}
-
-type_init(spapr_pci_vfio_register_types)
diff --git a/qemu-doc.texi b/qemu-doc.texi
index 90bea7331d..5449695c22 100644
--- a/qemu-doc.texi
+++ b/qemu-doc.texi
@@ -2744,11 +2744,6 @@ The ``host_net_remove'' command is replaced by the ``netdev_del'' command.
 The ``ivshmem'' device type is replaced by either the ``ivshmem-plain''
 or ``ivshmem-doorbell`` device types.
 
-@subsection spapr-pci-vfio-host-bridge (since 2.6.0)
-
-The ``spapr-pci-vfio-host-bridge'' device type is replaced by
-the ``spapr-pci-host-bridge'' device type.
-
 @section System emulator machines
 
 @subsection Xilinx EP108 (since 2.11.0)
diff --git a/scripts/device-crash-test b/scripts/device-crash-test
index c11fd81c52..827d8ec2af 100755
--- a/scripts/device-crash-test
+++ b/scripts/device-crash-test
@@ -119,7 +119,6 @@ ERROR_WHITELIST = [
     {'device':'scsi-generic', 'expected':True},            # drive property not set
     {'device':'scsi-hd', 'expected':True},                 # drive property not set
     {'device':'spapr-pci-host-bridge', 'expected':True},   # BUID not specified for PHB
-    {'device':'spapr-pci-vfio-host-bridge', 'expected':True}, # BUID not specified for PHB
     {'device':'spapr-rng', 'expected':True},               # spapr-rng needs an RNG backend!
     {'device':'spapr-vty', 'expected':True},               # chardev property not set
     {'device':'tpm-tis', 'expected':True},                 # tpm_tis: backend driver with id (null) could not be found
-- 
2.14.3

^ permalink raw reply related	[flat|nested] 29+ messages in thread

* [Qemu-devel] [PULL 12/12] spapr: Correct compatibility mode setting for hotplugged CPUs
  2018-01-08  5:53 [Qemu-devel] [PULL 00/12] ppc-for-2.12 queue 20180108 David Gibson
                   ` (10 preceding siblings ...)
  2018-01-08  5:53 ` [Qemu-devel] [PULL 11/12] hw/ppc: Remove the deprecated spapr-pci-vfio-host-bridge device David Gibson
@ 2018-01-08  5:53 ` David Gibson
  2018-01-09 11:46 ` [Qemu-devel] [PULL 00/12] ppc-for-2.12 queue 20180108 Peter Maydell
  12 siblings, 0 replies; 29+ messages in thread
From: David Gibson @ 2018-01-08  5:53 UTC (permalink / raw)
  To: peter.maydell; +Cc: surajjs, groug, mdroth, qemu-ppc, qemu-devel, David Gibson

Currently the pseries machine sets the compatibility mode for the
guest's cpus in two places: 1) at machine reset and 2) after CAS
negotiation.

This means that if we set or negotiate a compatiblity mode, then
hotplug a cpu, the hotplugged cpu doesn't get the right mode set and
will incorrectly have the full native features.

To correct this, we set the compatibility mode on a cpu when it is
brought online with the 'start-cpu' RTAS call.  Given that we no
longer need to set the compatibility mode on all CPUs at machine
reset, so we change that to only set the mode for the boot cpu.

Signed-off-by: David Gibson <david@gibson.dropbear.id.au>
Reviewed-by: Alexey Kardashevskiy <aik@ozlabs.ru>
---
 hw/ppc/spapr.c      | 2 +-
 hw/ppc/spapr_rtas.c | 9 +++++++++
 2 files changed, 10 insertions(+), 1 deletion(-)

diff --git a/hw/ppc/spapr.c b/hw/ppc/spapr.c
index 6785a90c60..dfd352c473 100644
--- a/hw/ppc/spapr.c
+++ b/hw/ppc/spapr.c
@@ -1504,7 +1504,7 @@ static void spapr_machine_reset(void)
         spapr_ovec_cleanup(spapr->ov5_cas);
         spapr->ov5_cas = spapr_ovec_new();
 
-        ppc_set_compat_all(spapr->max_compat_pvr, &error_fatal);
+        ppc_set_compat(first_ppc_cpu, spapr->max_compat_pvr, &error_fatal);
     }
 
     fdt = spapr_build_fdt(spapr, rtas_addr, spapr->rtas_size);
diff --git a/hw/ppc/spapr_rtas.c b/hw/ppc/spapr_rtas.c
index 4bb939d3d1..2b89e1d448 100644
--- a/hw/ppc/spapr_rtas.c
+++ b/hw/ppc/spapr_rtas.c
@@ -163,6 +163,7 @@ static void rtas_start_cpu(PowerPCCPU *cpu_, sPAPRMachineState *spapr,
         CPUState *cs = CPU(cpu);
         CPUPPCState *env = &cpu->env;
         PowerPCCPUClass *pcc = POWERPC_CPU_GET_CLASS(cpu);
+        Error *local_err = NULL;
 
         if (!cs->halted) {
             rtas_st(rets, 0, RTAS_OUT_HW_ERROR);
@@ -174,6 +175,14 @@ static void rtas_start_cpu(PowerPCCPU *cpu_, sPAPRMachineState *spapr,
          * new cpu enters */
         kvm_cpu_synchronize_state(cs);
 
+        /* Set compatibility mode to match existing cpus */
+        ppc_set_compat(cpu, POWERPC_CPU(first_cpu)->compat_pvr, &local_err);
+        if (local_err) {
+            error_report_err(local_err);
+            rtas_st(rets, 0, RTAS_OUT_HW_ERROR);
+            return;
+        }
+
         env->msr = (1ULL << MSR_SF) | (1ULL << MSR_ME);
 
         /* Enable Power-saving mode Exit Cause exceptions for the new CPU */
-- 
2.14.3

^ permalink raw reply related	[flat|nested] 29+ messages in thread

* Re: [Qemu-devel] [PULL 00/12] ppc-for-2.12 queue 20180108
  2018-01-08  5:53 [Qemu-devel] [PULL 00/12] ppc-for-2.12 queue 20180108 David Gibson
                   ` (11 preceding siblings ...)
  2018-01-08  5:53 ` [Qemu-devel] [PULL 12/12] spapr: Correct compatibility mode setting for hotplugged CPUs David Gibson
@ 2018-01-09 11:46 ` Peter Maydell
  2018-01-09 12:16   ` David Gibson
  12 siblings, 1 reply; 29+ messages in thread
From: Peter Maydell @ 2018-01-09 11:46 UTC (permalink / raw)
  To: David Gibson; +Cc: surajjs, Greg Kurz, Michael Roth, qemu-ppc, QEMU Developers

On 8 January 2018 at 05:53, David Gibson <david@gibson.dropbear.id.au> wrote:
> The following changes since commit 281f327487c9c9b1599f93c589a408bbf4a651b8:
>
>   Merge remote-tracking branch 'remotes/vivier/tags/m68k-for-2.12-pull-request' into staging (2017-12-22 00:11:36 +0000)
>
> are available in the Git repository at:
>
>   git://github.com/dgibson/qemu.git tags/ppc-for-2.12-20180108
>
> for you to fetch changes up to 9f173585d3f35345b2facce50620ce2cdda05f2f:
>
>   spapr: Correct compatibility mode setting for hotplugged CPUs (2018-01-08 13:33:17 +1100)
>
> ----------------------------------------------------------------
> ppc patch queue 2018-01-08
>
> This pull requests supersedes both ppc-for-2.12-20180103 and
> ppc-for-2.12-20171219.  We've discovered that some substantial
> extensions to the proposed capabilities infrastructure will be
> valuable, amongst other things for managing/advertising workarounds
> for the dreaded Meltdown/Spectre bugs.
>
> Although that could be done as follow on changes, since the caps
> infrastructure hasn't been merged yet, we might as well pull it out
> while we rework, and just merge the unrelated bugfixes.
>
> The last two pull requests apparently had problems on some arm32
> systems.  I haven't been able to reproduce those, so I have no idea
> which patch is causing them.  If we get lucky and it was one of the
> patches I've removed from this series, this may also serve to unjam
> the other fixes.

This still hangs on my arm32 setup in the migration test. I'll see
if I can identify what is going wrong.

thanks
-- PMM

^ permalink raw reply	[flat|nested] 29+ messages in thread

* Re: [Qemu-devel] [PULL 00/12] ppc-for-2.12 queue 20180108
  2018-01-09 11:46 ` [Qemu-devel] [PULL 00/12] ppc-for-2.12 queue 20180108 Peter Maydell
@ 2018-01-09 12:16   ` David Gibson
  2018-01-09 15:15     ` Peter Maydell
  2018-01-10 10:37     ` [Qemu-devel] [Qemu-ppc] " luigi burdo
  0 siblings, 2 replies; 29+ messages in thread
From: David Gibson @ 2018-01-09 12:16 UTC (permalink / raw)
  To: Peter Maydell; +Cc: surajjs, Greg Kurz, Michael Roth, qemu-ppc, QEMU Developers

[-- Attachment #1: Type: text/plain, Size: 2040 bytes --]

On Tue, Jan 09, 2018 at 11:46:41AM +0000, Peter Maydell wrote:
> On 8 January 2018 at 05:53, David Gibson <david@gibson.dropbear.id.au> wrote:
> > The following changes since commit 281f327487c9c9b1599f93c589a408bbf4a651b8:
> >
> >   Merge remote-tracking branch 'remotes/vivier/tags/m68k-for-2.12-pull-request' into staging (2017-12-22 00:11:36 +0000)
> >
> > are available in the Git repository at:
> >
> >   git://github.com/dgibson/qemu.git tags/ppc-for-2.12-20180108
> >
> > for you to fetch changes up to 9f173585d3f35345b2facce50620ce2cdda05f2f:
> >
> >   spapr: Correct compatibility mode setting for hotplugged CPUs (2018-01-08 13:33:17 +1100)
> >
> > ----------------------------------------------------------------
> > ppc patch queue 2018-01-08
> >
> > This pull requests supersedes both ppc-for-2.12-20180103 and
> > ppc-for-2.12-20171219.  We've discovered that some substantial
> > extensions to the proposed capabilities infrastructure will be
> > valuable, amongst other things for managing/advertising workarounds
> > for the dreaded Meltdown/Spectre bugs.
> >
> > Although that could be done as follow on changes, since the caps
> > infrastructure hasn't been merged yet, we might as well pull it out
> > while we rework, and just merge the unrelated bugfixes.
> >
> > The last two pull requests apparently had problems on some arm32
> > systems.  I haven't been able to reproduce those, so I have no idea
> > which patch is causing them.  If we get lucky and it was one of the
> > patches I've removed from this series, this may also serve to unjam
> > the other fixes.
> 
> This still hangs on my arm32 setup in the migration test. I'll see
> if I can identify what is going wrong.

Thanks.  Even if you can identify which patch it is and we can
postpone that one would be a bug help.

-- 
David Gibson			| I'll have my music baroque, and my code
david AT gibson.dropbear.id.au	| minimalist, thank you.  NOT _the_ _other_
				| _way_ _around_!
http://www.ozlabs.org/~dgibson

[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 833 bytes --]

^ permalink raw reply	[flat|nested] 29+ messages in thread

* Re: [Qemu-devel] [PULL 00/12] ppc-for-2.12 queue 20180108
  2018-01-09 12:16   ` David Gibson
@ 2018-01-09 15:15     ` Peter Maydell
  2018-01-09 16:02       ` Michael Roth
                         ` (2 more replies)
  2018-01-10 10:37     ` [Qemu-devel] [Qemu-ppc] " luigi burdo
  1 sibling, 3 replies; 29+ messages in thread
From: Peter Maydell @ 2018-01-09 15:15 UTC (permalink / raw)
  To: David Gibson
  Cc: surajjs, Greg Kurz, Michael Roth, qemu-ppc, QEMU Developers,
	Paolo Bonzini

On 9 January 2018 at 12:16, David Gibson <david@gibson.dropbear.id.au> wrote:
> Thanks.  Even if you can identify which patch it is and we can
> postpone that one would be a bug help.

Bisection blames this one:

pbonzini@redhat.com (1):
      target-ppc: optimize cmp translation

A plain boot doesn't work either:
./build/ppc/ppc64-softmmu/qemu-system-ppc64 -display none -serial stdio


SLOF **********************************************************************
QEMU Starting
 Build Date = Jul 24 2017 15:15:46
 FW Version = git-89f519f09bf85091
 Press "s" to enter Open Firmware.

Populating /vdevice methods
Populating /vdevice/vty@71000000
Populating /vdevice/nvram@71000001
Populating /vdevice/l-lan@71000002
Populating /vdevice/v-scsi@71000003
       SCSI: Looking for devices
          00000000 CD-ROM   : "QEMU     QEMU CD-ROM      2.5+"

Populating /pci@0000000
                     00 0000 (D) : 1234 1111    qemu vga
                     00 0800 (D) : 1033 0194    serial bus [ usb-xhci ]
No NVRAM common partition, re-initializing...
E

and then keeps printing out spaces for ever as far as I can see.

A working build does


SLOF **********************************************************************
QEMU Starting
 Build Date = Jul 24 2017 15:15:46
 FW Version = git-89f519f09bf85091
 Press "s" to enter Open Firmware.

Populating /vdevice methods
Populating /vdevice/vty@71000000
Populating /vdevice/nvram@71000001
Populating /vdevice/l-lan@71000002
Populating /vdevice/v-scsi@71000003
       SCSI: Looking for devices
          8200000000000000 CD-ROM   : "QEMU     QEMU CD-ROM      2.5+"
Populating /pci@800000020000000
                     00 0000 (D) : 1234 1111    qemu vga
                     00 0800 (D) : 1033 0194    serial bus [ usb-xhci ]
No NVRAM common partition, re-initializing...
Installing QEMU fb



Scanning USB
  XHCI: Initializing
    USB Keyboard
    USB mouse
No console specified using screen & keyboard

[etc etc]

so you can see it's already diverged because it prints out
a different value for the name of the pci node and the
SCSI line has 8200000000000000 vs 00000000.

(This is a build for arm32, running in a chroot on an aarch64
box, non-debug build.)

thanks
-- PMM

^ permalink raw reply	[flat|nested] 29+ messages in thread

* Re: [Qemu-devel] [PULL 00/12] ppc-for-2.12 queue 20180108
  2018-01-09 15:15     ` Peter Maydell
@ 2018-01-09 16:02       ` Michael Roth
  2018-01-09 17:34         ` Paolo Bonzini
  2018-01-10  0:41       ` Richard Henderson
  2018-01-10  1:55       ` David Gibson
  2 siblings, 1 reply; 29+ messages in thread
From: Michael Roth @ 2018-01-09 16:02 UTC (permalink / raw)
  To: David Gibson, Peter Maydell
  Cc: surajjs, Greg Kurz, qemu-ppc, QEMU Developers, Paolo Bonzini

Quoting Peter Maydell (2018-01-09 09:15:25)
> On 9 January 2018 at 12:16, David Gibson <david@gibson.dropbear.id.au> wrote:
> > Thanks.  Even if you can identify which patch it is and we can
> > postpone that one would be a bug help.
> 
> Bisection blames this one:
> 
> pbonzini@redhat.com (1):
>       target-ppc: optimize cmp translation
> 
> A plain boot doesn't work either:
> ./build/ppc/ppc64-softmmu/qemu-system-ppc64 -display none -serial stdio
> 
> 
> SLOF **********************************************************************
> QEMU Starting
>  Build Date = Jul 24 2017 15:15:46
>  FW Version = git-89f519f09bf85091
>  Press "s" to enter Open Firmware.
> 
> Populating /vdevice methods
> Populating /vdevice/vty@71000000
> Populating /vdevice/nvram@71000001
> Populating /vdevice/l-lan@71000002
> Populating /vdevice/v-scsi@71000003
>        SCSI: Looking for devices
>           00000000 CD-ROM   : "QEMU     QEMU CD-ROM      2.5+"
> 
> Populating /pci@0000000
>                      00 0000 (D) : 1234 1111    qemu vga
>                      00 0800 (D) : 1033 0194    serial bus [ usb-xhci ]
> No NVRAM common partition, re-initializing...
> E
> 
> and then keeps printing out spaces for ever as far as I can see.
> 
> A working build does
> 
> 
> SLOF **********************************************************************
> QEMU Starting
>  Build Date = Jul 24 2017 15:15:46
>  FW Version = git-89f519f09bf85091
>  Press "s" to enter Open Firmware.
> 
> Populating /vdevice methods
> Populating /vdevice/vty@71000000
> Populating /vdevice/nvram@71000001
> Populating /vdevice/l-lan@71000002
> Populating /vdevice/v-scsi@71000003
>        SCSI: Looking for devices
>           8200000000000000 CD-ROM   : "QEMU     QEMU CD-ROM      2.5+"
> Populating /pci@800000020000000
>                      00 0000 (D) : 1234 1111    qemu vga
>                      00 0800 (D) : 1033 0194    serial bus [ usb-xhci ]
> No NVRAM common partition, re-initializing...
> Installing QEMU fb
> 
> 
> 
> Scanning USB
>   XHCI: Initializing
>     USB Keyboard
>     USB mouse
> No console specified using screen & keyboard
> 
> [etc etc]
> 
> so you can see it's already diverged because it prints out
> a different value for the name of the pci node and the
> SCSI line has 8200000000000000 vs 00000000.

FYI I actually see this with a raspberry pi 3 too, with repeating spaces
as well. I didn't notice it before since in my case the
ufd_version_check() in test-migration.c was failing so the migration tests
were reporting success but were actually just getting skipped.

> 
> (This is a build for arm32, running in a chroot on an aarch64
> box, non-debug build.)
> 
> thanks
> -- PMM
> 

^ permalink raw reply	[flat|nested] 29+ messages in thread

* Re: [Qemu-devel] [PULL 00/12] ppc-for-2.12 queue 20180108
  2018-01-09 16:02       ` Michael Roth
@ 2018-01-09 17:34         ` Paolo Bonzini
  2018-01-09 17:57           ` Michael Roth
  0 siblings, 1 reply; 29+ messages in thread
From: Paolo Bonzini @ 2018-01-09 17:34 UTC (permalink / raw)
  To: Michael Roth, David Gibson, Peter Maydell
  Cc: QEMU Developers, qemu-ppc, Greg Kurz, surajjs

On 09/01/2018 17:02, Michael Roth wrote:
>> so you can see it's already diverged because it prints out
>> a different value for the name of the pci node and the
>> SCSI line has 8200000000000000 vs 00000000.
> FYI I actually see this with a raspberry pi 3 too

Is this an arm32 or aarch64 install?  From Peter's report, I am tempted
to blame the ARM backend (I tested 32-bit x86 and it works).  But a bug
in both 32-bit ARM and aarch64 would be less likely.

Paolo

> , with repeating spaces
> as well. I didn't notice it before since in my case the
> ufd_version_check() in test-migration.c was failing so the migration tests
> were reporting success but were actually just getting skipped.
> 

^ permalink raw reply	[flat|nested] 29+ messages in thread

* Re: [Qemu-devel] [PULL 00/12] ppc-for-2.12 queue 20180108
  2018-01-09 17:34         ` Paolo Bonzini
@ 2018-01-09 17:57           ` Michael Roth
  0 siblings, 0 replies; 29+ messages in thread
From: Michael Roth @ 2018-01-09 17:57 UTC (permalink / raw)
  To: David Gibson, Paolo Bonzini, Peter Maydell
  Cc: QEMU Developers, qemu-ppc, Greg Kurz, surajjs

Quoting Paolo Bonzini (2018-01-09 11:34:48)
> On 09/01/2018 17:02, Michael Roth wrote:
> >> so you can see it's already diverged because it prints out
> >> a different value for the name of the pci node and the
> >> SCSI line has 8200000000000000 vs 00000000.
> > FYI I actually see this with a raspberry pi 3 too
> 
> Is this an arm32 or aarch64 install?  From Peter's report, I am tempted
> to blame the ARM backend (I tested 32-bit x86 and it works).  But a bug
> in both 32-bit ARM and aarch64 would be less likely.

In my case it's a 32-bit kernel/userspace:

pi@rpi-office:~/dev/qemu-build $ uname -a
Linux rpi-office 4.4.38-v7+ #938 SMP Thu Dec 15 15:22:21 GMT 2016 armv7l
GNU/Linux
pi@rpi-office:~/dev/qemu-build $ file ppc64-softmmu/qemu-system-ppc64 
ppc64-softmmu/qemu-system-ppc64: ELF 32-bit LSB executable, ARM, EABI5
version 1 (GNU/Linux), dynamically linked, interpreter
/lib/ld-linux-armhf.so.3, for GNU/Linux 2.6.32,
BuildID[sha1]=4e3e0c8ddbab91a672e4c29b5bfcee9d22459cf7, not stripped

> 
> Paolo
> 
> > , with repeating spaces
> > as well. I didn't notice it before since in my case the
> > ufd_version_check() in test-migration.c was failing so the migration tests
> > were reporting success but were actually just getting skipped.
> > 
> 

^ permalink raw reply	[flat|nested] 29+ messages in thread

* Re: [Qemu-devel] [PULL 00/12] ppc-for-2.12 queue 20180108
  2018-01-09 15:15     ` Peter Maydell
  2018-01-09 16:02       ` Michael Roth
@ 2018-01-10  0:41       ` Richard Henderson
  2018-01-10  1:55       ` David Gibson
  2 siblings, 0 replies; 29+ messages in thread
From: Richard Henderson @ 2018-01-10  0:41 UTC (permalink / raw)
  To: Peter Maydell, David Gibson
  Cc: surajjs, Michael Roth, QEMU Developers, Greg Kurz, qemu-ppc,
	Paolo Bonzini

On 01/09/2018 07:15 AM, Peter Maydell wrote:
> (This is a build for arm32, running in a chroot on an aarch64
> box, non-debug build.)

It's an arm backend problem.

For 64-bit setcond2, we do

0x6e5c3fa4:  e1570008  cmp      r7, r8
0x6e5c3fa8:  01550004  cmpeq    r5, r4
0x6e5c3fac:  b3a09001  movlt    sb, #1
0x6e5c3fb0:  a3a09000  movge    sb, #0

which looks good, but only works for LTU not LT.

I'll work on a fix.


r~

^ permalink raw reply	[flat|nested] 29+ messages in thread

* Re: [Qemu-devel] [PULL 00/12] ppc-for-2.12 queue 20180108
  2018-01-09 15:15     ` Peter Maydell
  2018-01-09 16:02       ` Michael Roth
  2018-01-10  0:41       ` Richard Henderson
@ 2018-01-10  1:55       ` David Gibson
  2018-01-10 13:33         ` Paolo Bonzini
  2 siblings, 1 reply; 29+ messages in thread
From: David Gibson @ 2018-01-10  1:55 UTC (permalink / raw)
  To: Peter Maydell
  Cc: surajjs, Greg Kurz, Michael Roth, qemu-ppc, QEMU Developers,
	Paolo Bonzini

[-- Attachment #1: Type: text/plain, Size: 985 bytes --]

On Tue, Jan 09, 2018 at 03:15:25PM +0000, Peter Maydell wrote:
> On 9 January 2018 at 12:16, David Gibson <david@gibson.dropbear.id.au> wrote:
> > Thanks.  Even if you can identify which patch it is and we can
> > postpone that one would be a bug help.
> 
> Bisection blames this one:
> 
> pbonzini@redhat.com (1):
>       target-ppc: optimize cmp translation

Aha!  Ok, I'll pull that one out until we find a fix.

[snip]
> (This is a build for arm32, running in a chroot on an aarch64
> box, non-debug build.)

Ah.. but since it's a chroot, still an aarch64 cpu behind it all.  I
think the machines I managed to borrow were all much older slower
really truly arm32 machines, which I guess didn't show the problem.

Oh.. and probably a debug (default) build as well.

-- 
David Gibson			| I'll have my music baroque, and my code
david AT gibson.dropbear.id.au	| minimalist, thank you.  NOT _the_ _other_
				| _way_ _around_!
http://www.ozlabs.org/~dgibson

[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 833 bytes --]

^ permalink raw reply	[flat|nested] 29+ messages in thread

* Re: [Qemu-devel] [Qemu-ppc] [PULL 00/12] ppc-for-2.12 queue 20180108
  2018-01-09 12:16   ` David Gibson
  2018-01-09 15:15     ` Peter Maydell
@ 2018-01-10 10:37     ` luigi burdo
  2018-01-10 10:41       ` Peter Maydell
  1 sibling, 1 reply; 29+ messages in thread
From: luigi burdo @ 2018-01-10 10:37 UTC (permalink / raw)
  To: David Gibson, Peter Maydell
  Cc: Michael Roth, QEMU Developers, qemu-ppc, Greg Kurz, surajjs

Hi devs sorry if i enter in the discussion about.

gcc gave errors in building this queue.

here i paste my build log.

https://pastebin.com/fXw2Whrq



This is my machine infos and so and so


Architecture:        ppc64
CPU op-mode(s):      32-bit, 64-bit
Byte Order:          Big Endian
CPU(s):              4
On-line CPU(s) list: 0-3
Thread(s) per core:  1
Core(s) per socket:  1
Socket(s):           4
NUMA node(s):        1
Model:               1.1 (pvr 0044 0101)
Model name:          PPC970MP, altivec supported
CPU max MHz:         2500.0000
CPU min MHz:         1250.0000
L1d cache:           32K
L1i cache:           64K
L2 cache:            1024K
NUMA node0 CPU(s):   0-3


uname -a
Linux debian 4.9.67 #1 SMP Sat Dec 9 12:20:20 CET 2017 ppc64 GNU/Linux

gcc --version
gcc (Debian 7.2.0-19) 7.2.0



Regards
Luigi

________________________________
Da: Qemu-ppc <qemu-ppc-bounces+intermediadc=hotmail.com@nongnu.org> per conto di David Gibson <david@gibson.dropbear.id.au>
Inviato: martedì 9 gennaio 2018 13:16
A: Peter Maydell
Cc: Michael Roth; QEMU Developers; qemu-ppc@nongnu.org; Greg Kurz; surajjs@au1.ibm.com
Oggetto: Re: [Qemu-ppc] [PULL 00/12] ppc-for-2.12 queue 20180108

On Tue, Jan 09, 2018 at 11:46:41AM +0000, Peter Maydell wrote:
> On 8 January 2018 at 05:53, David Gibson <david@gibson.dropbear.id.au> wrote:
> > The following changes since commit 281f327487c9c9b1599f93c589a408bbf4a651b8:
> >
> >   Merge remote-tracking branch 'remotes/vivier/tags/m68k-for-2.12-pull-request' into staging (2017-12-22 00:11:36 +0000)
> >
> > are available in the Git repository at:
> >
> >   git://github.com/dgibson/qemu.git tags/ppc-for-2.12-20180108
> >
> > for you to fetch changes up to 9f173585d3f35345b2facce50620ce2cdda05f2f:
> >
> >   spapr: Correct compatibility mode setting for hotplugged CPUs (2018-01-08 13:33:17 +1100)
> >
> > ----------------------------------------------------------------
> > ppc patch queue 2018-01-08
> >
> > This pull requests supersedes both ppc-for-2.12-20180103 and
> > ppc-for-2.12-20171219.  We've discovered that some substantial
> > extensions to the proposed capabilities infrastructure will be
> > valuable, amongst other things for managing/advertising workarounds
> > for the dreaded Meltdown/Spectre bugs.
> >
> > Although that could be done as follow on changes, since the caps
> > infrastructure hasn't been merged yet, we might as well pull it out
> > while we rework, and just merge the unrelated bugfixes.
> >
> > The last two pull requests apparently had problems on some arm32
> > systems.  I haven't been able to reproduce those, so I have no idea
> > which patch is causing them.  If we get lucky and it was one of the
> > patches I've removed from this series, this may also serve to unjam
> > the other fixes.
>
> This still hangs on my arm32 setup in the migration test. I'll see
> if I can identify what is going wrong.

Thanks.  Even if you can identify which patch it is and we can
postpone that one would be a bug help.

--
David Gibson                    | I'll have my music baroque, and my code
david AT gibson.dropbear.id.au  | minimalist, thank you.  NOT _the_ _other_
                                | _way_ _around_!
http://www.ozlabs.org/~dgibson
[http://www.ozlabs.org/~dgibson/dgibson-small.jpg]<http://www.ozlabs.org/~dgibson>

David Gibson's Home Page - OzLabs<http://www.ozlabs.org/~dgibson>
www.ozlabs.org
Home; Papers; Junk code; PGP Key; Ozlabs. David Gibson's Home Page. I'm a Linux kernel hacker, mostly, though I've also worked on other projects including, recently ...

^ permalink raw reply	[flat|nested] 29+ messages in thread

* Re: [Qemu-devel] [Qemu-ppc] [PULL 00/12] ppc-for-2.12 queue 20180108
  2018-01-10 10:37     ` [Qemu-devel] [Qemu-ppc] " luigi burdo
@ 2018-01-10 10:41       ` Peter Maydell
  2018-01-10 16:02         ` luigi burdo
  0 siblings, 1 reply; 29+ messages in thread
From: Peter Maydell @ 2018-01-10 10:41 UTC (permalink / raw)
  To: luigi burdo
  Cc: David Gibson, Michael Roth, QEMU Developers, qemu-ppc, Greg Kurz,
	surajjs

On 10 January 2018 at 10:37, luigi burdo <intermediadc@hotmail.com> wrote:
> Hi devs sorry if i enter in the discussion about.
>
> gcc gave errors in building this queue.
>
> here i paste my build log.
>
> https://pastebin.com/fXw2Whrq

Thanks. This is the relevant bit of the log:

/home/amigaone/src/new/tags/ppc-for-2.12-20180108/target/s390x/mem_helper.c:2567:1:
internal compiler error: Segmentation fault
 }
 ^
Please submit a full bug report,
with preprocessed source if appropriate.
See <file:///usr/share/doc/gcc-7/README.Bugs> for instructions.

This means that gcc crashed. This is either:
 (a) a hardware problem with your machine (eg bad memory)
or
 (b) a bug in gcc (which you can report to the gcc team
as they suggest in the error message)

You should check whether gcc reliably crashes in the
same way every time you try to build that source file.
If it does, that suggests a gcc bug is more likely. If
it sometimes works and sometimes doesn't, I would suspect
hardware problems.

thanks
-- PMM

^ permalink raw reply	[flat|nested] 29+ messages in thread

* Re: [Qemu-devel] [PULL 00/12] ppc-for-2.12 queue 20180108
  2018-01-10  1:55       ` David Gibson
@ 2018-01-10 13:33         ` Paolo Bonzini
  2018-01-11  2:47           ` David Gibson
  0 siblings, 1 reply; 29+ messages in thread
From: Paolo Bonzini @ 2018-01-10 13:33 UTC (permalink / raw)
  To: David Gibson, Peter Maydell
  Cc: surajjs, Greg Kurz, Michael Roth, qemu-ppc, QEMU Developers

On 10/01/2018 02:55, David Gibson wrote:
> On Tue, Jan 09, 2018 at 03:15:25PM +0000, Peter Maydell wrote:
>> On 9 January 2018 at 12:16, David Gibson <david@gibson.dropbear.id.au> wrote:
>>> Thanks.  Even if you can identify which patch it is and we can
>>> postpone that one would be a bug help.
>>
>> Bisection blames this one:
>>
>> pbonzini@redhat.com (1):
>>       target-ppc: optimize cmp translation
> 
> Aha!  Ok, I'll pull that one out until we find a fix.

Richard posted one, it's an ARM32 backend bug.

> [snip]
>> (This is a build for arm32, running in a chroot on an aarch64
>> box, non-debug build.)
> 
> Ah.. but since it's a chroot, still an aarch64 cpu behind it all.

No, it's running 32-bit ARM code.

Paolo

  I
> think the machines I managed to borrow were all much older slower
> really truly arm32 machines, which I guess didn't show the problem.
> 
> Oh.. and probably a debug (default) build as well.
> 

^ permalink raw reply	[flat|nested] 29+ messages in thread

* Re: [Qemu-devel] [Qemu-ppc] [PULL 00/12] ppc-for-2.12 queue 20180108
  2018-01-10 10:41       ` Peter Maydell
@ 2018-01-10 16:02         ` luigi burdo
  0 siblings, 0 replies; 29+ messages in thread
From: luigi burdo @ 2018-01-10 16:02 UTC (permalink / raw)
  To: Peter Maydell
  Cc: David Gibson, Michael Roth, QEMU Developers, qemu-ppc, Greg Kurz,
	surajjs

Hi Peter,

thanks for reply.

I will check the ram banks and will try again to build it .

but i have more fear about gcc now because the issue come exactly in the same point every time i try to rebuild everyting.


Thankyou

Luigi


________________________________________

This means that gcc crashed. This is either:
 (a) a hardware problem with your machine (eg bad memory)
or
 (b) a bug in gcc (which you can report to the gcc team
as they suggest in the error message)

You should check whether gcc reliably crashes in the
same way every time you try to build that source file.
If it does, that suggests a gcc bug is more likely. If
it sometimes works and sometimes doesn't, I would suspect
hardware problems.

thanks
-- PMM

^ permalink raw reply	[flat|nested] 29+ messages in thread

* Re: [Qemu-devel] [PULL 00/12] ppc-for-2.12 queue 20180108
  2018-01-10 13:33         ` Paolo Bonzini
@ 2018-01-11  2:47           ` David Gibson
  2018-01-11 14:18             ` Richard Henderson
  0 siblings, 1 reply; 29+ messages in thread
From: David Gibson @ 2018-01-11  2:47 UTC (permalink / raw)
  To: Paolo Bonzini
  Cc: Peter Maydell, surajjs, Greg Kurz, Michael Roth, qemu-ppc,
	QEMU Developers

[-- Attachment #1: Type: text/plain, Size: 1491 bytes --]

On Wed, Jan 10, 2018 at 02:33:41PM +0100, Paolo Bonzini wrote:
> On 10/01/2018 02:55, David Gibson wrote:
> > On Tue, Jan 09, 2018 at 03:15:25PM +0000, Peter Maydell wrote:
> >> On 9 January 2018 at 12:16, David Gibson <david@gibson.dropbear.id.au> wrote:
> >>> Thanks.  Even if you can identify which patch it is and we can
> >>> postpone that one would be a bug help.
> >>
> >> Bisection blames this one:
> >>
> >> pbonzini@redhat.com (1):
> >>       target-ppc: optimize cmp translation
> > 
> > Aha!  Ok, I'll pull that one out until we find a fix.
> 
> Richard posted one, it's an ARM32 backend bug.
> 
> > [snip]
> >> (This is a build for arm32, running in a chroot on an aarch64
> >> box, non-debug build.)
> > 
> > Ah.. but since it's a chroot, still an aarch64 cpu behind it all.
> 
> No, it's running 32-bit ARM code.

Ah.  But maybe a different version to older ARM32s?

I'm trying to figure out why I entirely failed to reproduce this on a
Raspberry Pi 1 (and a couple of other arm32 machines, but I forget the
details of them).

>   I
> > think the machines I managed to borrow were all much older slower
> > really truly arm32 machines, which I guess didn't show the problem.
> > 
> > Oh.. and probably a debug (default) build as well.
> > 
> 

-- 
David Gibson			| I'll have my music baroque, and my code
david AT gibson.dropbear.id.au	| minimalist, thank you.  NOT _the_ _other_
				| _way_ _around_!
http://www.ozlabs.org/~dgibson

[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 833 bytes --]

^ permalink raw reply	[flat|nested] 29+ messages in thread

* Re: [Qemu-devel] [PULL 00/12] ppc-for-2.12 queue 20180108
  2018-01-11  2:47           ` David Gibson
@ 2018-01-11 14:18             ` Richard Henderson
  0 siblings, 0 replies; 29+ messages in thread
From: Richard Henderson @ 2018-01-11 14:18 UTC (permalink / raw)
  To: David Gibson, Paolo Bonzini
  Cc: Peter Maydell, surajjs, Michael Roth, QEMU Developers, Greg Kurz,
	qemu-ppc

On 01/10/2018 06:47 PM, David Gibson wrote:
> Ah.  But maybe a different version to older ARM32s?

No, the bug affected all arm32 back to the beginning of time.

> I'm trying to figure out why I entirely failed to reproduce this on a
> Raspberry Pi 1 (and a couple of other arm32 machines, but I forget the
> details of them).

I can't imagine, really.  You should have been able to see it there.


r~

^ permalink raw reply	[flat|nested] 29+ messages in thread

* Re: [Qemu-devel] [PULL 01/12] target-ppc: optimize cmp translation
  2018-01-08  5:53 ` [Qemu-devel] [PULL 01/12] target-ppc: optimize cmp translation David Gibson
@ 2018-01-18 16:36   ` Paolo Bonzini
  2018-01-18 23:28     ` David Gibson
  0 siblings, 1 reply; 29+ messages in thread
From: Paolo Bonzini @ 2018-01-18 16:36 UTC (permalink / raw)
  To: David Gibson, peter.maydell; +Cc: surajjs, mdroth, qemu-devel, groug, qemu-ppc

On 08/01/2018 06:53, David Gibson wrote:
> From: "pbonzini@redhat.com" <pbonzini@redhat.com>
> 
> We know that only one bit (in addition to SO) is going to be set in
> the condition register, so do two movconds instead of three setconds,
> three shifts and two ORs.
> 
> For ppc64-linux-user, the code size reduction is around 5% and the
> performance improvement slightly less than 10%.  For softmmu, the
> improvement is around 5%.
> 
> Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
> Signed-off-by: David Gibson <david@gibson.dropbear.id.au>
> ---
>  target/ppc/translate.c | 29 ++++++++++++-----------------
>  1 file changed, 12 insertions(+), 17 deletions(-)
> 
> diff --git a/target/ppc/translate.c b/target/ppc/translate.c
> index 4075fc8589..8a6bd329d0 100644
> --- a/target/ppc/translate.c
> +++ b/target/ppc/translate.c
> @@ -605,27 +605,22 @@ static opc_handler_t invalid_handler = {
>  static inline void gen_op_cmp(TCGv arg0, TCGv arg1, int s, int crf)
>  {
>      TCGv t0 = tcg_temp_new();
> -    TCGv_i32 t1 = tcg_temp_new_i32();
> -
> -    tcg_gen_trunc_tl_i32(cpu_crf[crf], cpu_so);
> -
> -    tcg_gen_setcond_tl((s ? TCG_COND_LT: TCG_COND_LTU), t0, arg0, arg1);
> -    tcg_gen_trunc_tl_i32(t1, t0);
> -    tcg_gen_shli_i32(t1, t1, CRF_LT_BIT);
> -    tcg_gen_or_i32(cpu_crf[crf], cpu_crf[crf], t1);
> +    TCGv t1 = tcg_temp_new();
> +    TCGv_i32 t = tcg_temp_new_i32();
>  
> -    tcg_gen_setcond_tl((s ? TCG_COND_GT: TCG_COND_GTU), t0, arg0, arg1);
> -    tcg_gen_trunc_tl_i32(t1, t0);
> -    tcg_gen_shli_i32(t1, t1, CRF_GT_BIT);
> -    tcg_gen_or_i32(cpu_crf[crf], cpu_crf[crf], t1);
> +    tcg_gen_movi_tl(t0, CRF_EQ);
> +    tcg_gen_movi_tl(t1, CRF_LT);
> +    tcg_gen_movcond_tl((s ? TCG_COND_LT : TCG_COND_LTU), t0, arg0, arg1, t1, t0);
> +    tcg_gen_movi_tl(t1, CRF_GT);
> +    tcg_gen_movcond_tl((s ? TCG_COND_GT : TCG_COND_GTU), t0, arg0, arg1, t1, t0);
>  
> -    tcg_gen_setcond_tl(TCG_COND_EQ, t0, arg0, arg1);
> -    tcg_gen_trunc_tl_i32(t1, t0);
> -    tcg_gen_shli_i32(t1, t1, CRF_EQ_BIT);
> -    tcg_gen_or_i32(cpu_crf[crf], cpu_crf[crf], t1);
> +    tcg_gen_trunc_tl_i32(t, t0);
> +    tcg_gen_trunc_tl_i32(cpu_crf[crf], cpu_so);
> +    tcg_gen_or_i32(cpu_crf[crf], cpu_crf[crf], t);
>  
>      tcg_temp_free(t0);
> -    tcg_temp_free_i32(t1);
> +    tcg_temp_free(t1);
> +    tcg_temp_free_i32(t);
>  }
>  
>  static inline void gen_op_cmpi(TCGv arg0, target_ulong arg1, int s, int crf)
> 

David, can you queue this again now that the ARM backend has been fixed?

Thanks,

Paolo

^ permalink raw reply	[flat|nested] 29+ messages in thread

* Re: [Qemu-devel] [PULL 01/12] target-ppc: optimize cmp translation
  2018-01-18 16:36   ` Paolo Bonzini
@ 2018-01-18 23:28     ` David Gibson
  0 siblings, 0 replies; 29+ messages in thread
From: David Gibson @ 2018-01-18 23:28 UTC (permalink / raw)
  To: Paolo Bonzini; +Cc: peter.maydell, surajjs, mdroth, qemu-devel, groug, qemu-ppc

[-- Attachment #1: Type: text/plain, Size: 2982 bytes --]

On Thu, Jan 18, 2018 at 05:36:40PM +0100, Paolo Bonzini wrote:
> On 08/01/2018 06:53, David Gibson wrote:
> > From: "pbonzini@redhat.com" <pbonzini@redhat.com>
> > 
> > We know that only one bit (in addition to SO) is going to be set in
> > the condition register, so do two movconds instead of three setconds,
> > three shifts and two ORs.
> > 
> > For ppc64-linux-user, the code size reduction is around 5% and the
> > performance improvement slightly less than 10%.  For softmmu, the
> > improvement is around 5%.
> > 
> > Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
> > Signed-off-by: David Gibson <david@gibson.dropbear.id.au>
> > ---
> >  target/ppc/translate.c | 29 ++++++++++++-----------------
> >  1 file changed, 12 insertions(+), 17 deletions(-)
> > 
> > diff --git a/target/ppc/translate.c b/target/ppc/translate.c
> > index 4075fc8589..8a6bd329d0 100644
> > --- a/target/ppc/translate.c
> > +++ b/target/ppc/translate.c
> > @@ -605,27 +605,22 @@ static opc_handler_t invalid_handler = {
> >  static inline void gen_op_cmp(TCGv arg0, TCGv arg1, int s, int crf)
> >  {
> >      TCGv t0 = tcg_temp_new();
> > -    TCGv_i32 t1 = tcg_temp_new_i32();
> > -
> > -    tcg_gen_trunc_tl_i32(cpu_crf[crf], cpu_so);
> > -
> > -    tcg_gen_setcond_tl((s ? TCG_COND_LT: TCG_COND_LTU), t0, arg0, arg1);
> > -    tcg_gen_trunc_tl_i32(t1, t0);
> > -    tcg_gen_shli_i32(t1, t1, CRF_LT_BIT);
> > -    tcg_gen_or_i32(cpu_crf[crf], cpu_crf[crf], t1);
> > +    TCGv t1 = tcg_temp_new();
> > +    TCGv_i32 t = tcg_temp_new_i32();
> >  
> > -    tcg_gen_setcond_tl((s ? TCG_COND_GT: TCG_COND_GTU), t0, arg0, arg1);
> > -    tcg_gen_trunc_tl_i32(t1, t0);
> > -    tcg_gen_shli_i32(t1, t1, CRF_GT_BIT);
> > -    tcg_gen_or_i32(cpu_crf[crf], cpu_crf[crf], t1);
> > +    tcg_gen_movi_tl(t0, CRF_EQ);
> > +    tcg_gen_movi_tl(t1, CRF_LT);
> > +    tcg_gen_movcond_tl((s ? TCG_COND_LT : TCG_COND_LTU), t0, arg0, arg1, t1, t0);
> > +    tcg_gen_movi_tl(t1, CRF_GT);
> > +    tcg_gen_movcond_tl((s ? TCG_COND_GT : TCG_COND_GTU), t0, arg0, arg1, t1, t0);
> >  
> > -    tcg_gen_setcond_tl(TCG_COND_EQ, t0, arg0, arg1);
> > -    tcg_gen_trunc_tl_i32(t1, t0);
> > -    tcg_gen_shli_i32(t1, t1, CRF_EQ_BIT);
> > -    tcg_gen_or_i32(cpu_crf[crf], cpu_crf[crf], t1);
> > +    tcg_gen_trunc_tl_i32(t, t0);
> > +    tcg_gen_trunc_tl_i32(cpu_crf[crf], cpu_so);
> > +    tcg_gen_or_i32(cpu_crf[crf], cpu_crf[crf], t);
> >  
> >      tcg_temp_free(t0);
> > -    tcg_temp_free_i32(t1);
> > +    tcg_temp_free(t1);
> > +    tcg_temp_free_i32(t);
> >  }
> >  
> >  static inline void gen_op_cmpi(TCGv arg0, target_ulong arg1, int s, int crf)
> > 
> 
> David, can you queue this again now that the ARM backend has been
> fixed?

Done, thanks.

-- 
David Gibson			| I'll have my music baroque, and my code
david AT gibson.dropbear.id.au	| minimalist, thank you.  NOT _the_ _other_
				| _way_ _around_!
http://www.ozlabs.org/~dgibson

[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 833 bytes --]

^ permalink raw reply	[flat|nested] 29+ messages in thread

end of thread, other threads:[~2018-01-18 23:31 UTC | newest]

Thread overview: 29+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2018-01-08  5:53 [Qemu-devel] [PULL 00/12] ppc-for-2.12 queue 20180108 David Gibson
2018-01-08  5:53 ` [Qemu-devel] [PULL 01/12] target-ppc: optimize cmp translation David Gibson
2018-01-18 16:36   ` Paolo Bonzini
2018-01-18 23:28     ` David Gibson
2018-01-08  5:53 ` [Qemu-devel] [PULL 02/12] pseries: Update SLOF firmware image to qemu-slof-20171214 David Gibson
2018-01-08  5:53 ` [Qemu-devel] [PULL 03/12] sm501: Add panel hardware cursor registers also to read function David Gibson
2018-01-08  5:53 ` [Qemu-devel] [PULL 04/12] sm501: Add some more unimplemented registers David Gibson
2018-01-08  5:53 ` [Qemu-devel] [PULL 05/12] ppc4xx_i2c: Implement basic I2C functions David Gibson
2018-01-08  5:53 ` [Qemu-devel] [PULL 06/12] spapr_pci: use warn_report() David Gibson
2018-01-08  5:53 ` [Qemu-devel] [PULL 07/12] hw/ide: Emulate SiI3112 SATA controller David Gibson
2018-01-08  5:53 ` [Qemu-devel] [PULL 08/12] ppc/pnv: change powernv_ prefix to pnv_ for overall naming consistency David Gibson
2018-01-08  5:53 ` [Qemu-devel] [PULL 09/12] target/ppc: more use of the PPC_*() macros David Gibson
2018-01-08  5:53 ` [Qemu-devel] [PULL 10/12] Update dtc to fix compilation problem on Mac OS 10.6 David Gibson
2018-01-08  5:53 ` [Qemu-devel] [PULL 11/12] hw/ppc: Remove the deprecated spapr-pci-vfio-host-bridge device David Gibson
2018-01-08  5:53 ` [Qemu-devel] [PULL 12/12] spapr: Correct compatibility mode setting for hotplugged CPUs David Gibson
2018-01-09 11:46 ` [Qemu-devel] [PULL 00/12] ppc-for-2.12 queue 20180108 Peter Maydell
2018-01-09 12:16   ` David Gibson
2018-01-09 15:15     ` Peter Maydell
2018-01-09 16:02       ` Michael Roth
2018-01-09 17:34         ` Paolo Bonzini
2018-01-09 17:57           ` Michael Roth
2018-01-10  0:41       ` Richard Henderson
2018-01-10  1:55       ` David Gibson
2018-01-10 13:33         ` Paolo Bonzini
2018-01-11  2:47           ` David Gibson
2018-01-11 14:18             ` Richard Henderson
2018-01-10 10:37     ` [Qemu-devel] [Qemu-ppc] " luigi burdo
2018-01-10 10:41       ` Peter Maydell
2018-01-10 16:02         ` luigi burdo

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.