Bug 1035901 - import scrypt build logic from server-storage Makefile rpm-0.4-4
authorRyan Kelly <rfkelly@mozilla.com>
Tue, 15 Jul 2014 14:44:50 +1000
changeset 255 c746250306036b18ee4c8a2ee562f4a7cab93944
parent 253 090ec99f39961c111303d686e3b7c8dfc93448c3
child 256 f67650e590d3337e826fe5bda335effeea27a606
push id173
push userrkelly@mozilla.com
push dateTue, 15 Jul 2014 05:00:28 +0000
bugs1035901
Bug 1035901 - import scrypt build logic from server-storage Makefile
Makefile
upstream-deps/py-scrypt-0.6.0.tar.gz
--- a/Makefile
+++ b/Makefile
@@ -5,16 +5,17 @@ NOSE = bin/nosetests -s --with-xunit
 TESTS = keyexchange/tests
 PYTHON = bin/python
 COVEROPTS = --cover-html --cover-html-dir=html --with-coverage --cover-package=keyexchange
 COVERAGE = bin/coverage
 PYLINT = bin/pylint
 PKGS = keyexchange
 BUILDAPP = bin/buildapp
 BUILDRPMS = bin/buildrpms
+BUILD_TMP = /tmp/server-key-exhange-build.${USER}
 PYPI = http://pypi.python.org/simple
 PYPI2RPM = bin/pypi2rpm.py --index=$(PYPI)
 PYPIOPTIONS = -i $(PYPI)
 CHANNEL = dev
 RPM_CHANNEL = prod
 INSTALL = bin/pip install
 INSTALLOPTIONS = -U -i $(PYPI)
 PYPI2RPM = bin/pypi2rpm.py --index=$(PYPI)
@@ -58,16 +59,22 @@ all:	build
 build:
 	$(VIRTUALENV) --no-site-packages --distribute .
 	$(INSTALL) Distribute
 	$(INSTALL) MoPyTools
 	$(INSTALL) nose
 	$(INSTALL) WebTest
 	$(INSTALL) coverage
 	$(BUILDAPP) -c $(CHANNEL) $(PYPIOPTIONS) $(DEPS)
+	# py-scrypt doesn't play nicely with pypi2rpm
+	# so we can't list it in the requirements files.
+	mkdir -p ${BUILD_TMP}
+	cd ${BUILD_TMP}; tar -xzvf $(CURDIR)/upstream-deps/py-scrypt-0.6.0.tar.gz
+	$(INSTALL) ${BUILD_TMP}
+	rm -rf ${BUILD_TMP}
 	# Pre-compile mako templates into the correct directories.
 	for TMPL in `find . -name '*.mako'`; do ./bin/python -c "from mako.template import Template; Template(filename='$$TMPL', module_directory='`dirname $$TMPL`', uri='`basename $$TMPL`')"; done;
 
 
 update:
 	$(BUILDAPP) -c $(CHANNEL) $(PYPIOPTIONS) $(DEPS)
 	# Pre-compile mako templates into the correct directories.
 	for TMPL in `find . -name '*.mako'`; do ./bin/python -c "from mako.template import Template; Template(filename='$$TMPL', module_directory='`dirname $$TMPL`', uri='`basename $$TMPL`')"; done;
@@ -89,17 +96,22 @@ hudson:
 	rm -f coverage.xml
 	- $(COVERAGE) run --source=keyexchange $(NOSE) $(TESTS); $(COVERAGE) xml
 
 lint:
 	rm -f pylint.txt
 	- $(PYLINT) -f parseable --rcfile=pylintrc $(PKGS) > pylint.txt
 
 build_rpms:
-	$(BUILDRPMS) -c $(RPM_CHANNEL) $(DEPS)
+	rm -rf rpms
+	mkdir -p ${BUILD_TMP}
+	$(BUILDRPMS) -c $(RPM_CHANNEL) $(PYPIOPTIONS) $(DEPS)
+	# py-scrypt doesn't play nicely with pypi2rpm.
+	cd ${BUILD_TMP}; tar -xzvf $(CURDIR)/upstream-deps/py-scrypt-0.6.0.tar.gz
+	cd ${BUILD_TMP}; python setup.py  --command-packages=pypi2rpm.command bdist_rpm2 --binary-only --name=python26-scrypt --dist-dir=$(CURDIR)/rpms
 
 mach: build build_rpms
 	mach clean
 	mach yum install python26 python26-setuptools
 	cd rpms; wget http://mrepo.mozilla.org/mrepo/5-x86_64/RPMS.mozilla-services/gunicorn-0.11.2-1moz.x86_64.rpm
 	cd rpms; wget http://mrepo.mozilla.org/mrepo/5-x86_64/RPMS.mozilla/nginx-0.7.65-4.x86_64.rpm
 	mach yum install rpms/*
 	mach chroot python2.6 -m keyexchange.run
new file mode 100644
index 0000000000000000000000000000000000000000..da0f9df6534e83374999c475d42a746c7da38796
GIT binary patch
literal 26328
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%0Av7NMShi)M)z_hSuMP3pY>uY0L+%|(SEcLI0
zX_nn~yq;OC&mzRwu4A>mUQ$dX%y^y|1##pQ6A3ke-AlYUC^pq1+_cR&=~-zBEFq`U
zizCwygJL3KC$c)d)GC7|^dxSl=Xat~R|r2z+DqJ^?H3aXL1qeo<EWI_VI-JQXhl(x
z0vJPa(y=4INCGxt$PELx?S^47kuc;%Ju`$#i;0Axzz1?{$EA{tp|+EFmS-0e2}5Dq
zu_E7(i;0Axo{0xVQIQaA!cZ^uIzbv05pNTQB0n+BURoS%n=ll6VbHPMVo8TEWcpF)
zJ6>^A9Kw+0+8w*&mr4?b?4TEzVY^7u4q?bnte$N-#jZGnAvcCGiPIu(9iCy10|aOl
zyW$Xre9sI6$14(;6Y!|`p&9my^VT5@wXMjGI(Ct$oet03z_z1OS6sqSX!p{j9TqX<
zT0EXs==*N5PM0tg*>0~5NGc{0hN8faJS!~r(<KbW7BsbOb&83Eq1f+qOy4dd!6gi(
zu9-MqxhsSr3ubO;mK#JEvO1v~SypkDxy*+W2ij{E$J66k2J<Kg+~Rn8gdxZ6nZ2l2
zY>;O&tF<CC>J^dT5r*6(Zik^;oMj$i$m?~YD0GW6+anD5Z9DPP(sb|$L(o`Y(@BvM
zJf@*`==n~GVR%eKZqyFiRuS<YVW=HNfoYd8<P(NEW-m$8wAdA&X~^|p7A8d+@_7+U
z(oX24#VP1B4f%l;v{SW;y0nTKcn3QuFT%Widp{WU!a*iWmUc;PB^6K}64F4rg}>4_
z&L9bg(kxj<gctU#yk>)}q}jM0(Kj|kCV85~WmETvpBI~+?L9yV2{M7ygzFIt0_*-C
z%6wx5Ha<%!A61-UQmUY1Og#P_vTzR)>UM+*T06^S&}U)XDEnf$g<kYo%FLk>w!8(|
z5*?3|4S(kDeKh=-OlI1heyDBfS!rN<8?CbA5ueJU?}$l=2dM;r^w9=*q6#}{R#_u$
zMTSS}Y|xk?2&`d>nLeSulX9|^J0)S?r?b=TdxQ&+kR)v*?yT)?*wt{0rlahrJi8PY
zbwV3q2XQirLC9s#M(DgfgZtKchdX50<=&)_bbz2S+s8LBycUqJ@!v+n!;R6TY1~0e
zeUpCQUErdhTnhl*wp7%)F?+*OZO3+2j(0^!039e{q^*u4AjdZDj`~vC4#kdWKY8EB
z({Yt!G)5mNln6CcP!hQpSwc#gQF{+{&0xQTDqX0@G$M^uY`2C|6DMpQ#Wc$a%oB8R
zQ)o1AnZhB!R-l;W5GY{dduHdr_k+8+M2361zwZZo2W>B(Xmg@--#>Wh1a>~r;lw@9
zefZFG_VS4?Cwi87;Mu{$e4@vRoqf~u+wJ@LM2_@wYCUW_4?27M`NTkg-9IqzKd?G-
z7?C1`r;?%2?IXW*)gvY7VZm6*y(bnlZuN(yGch&yVH}Ym*m;J44PJ1(MlMLj5FQrP
zm<LHZ6Zb8`B?T*Sz;^v(e>9&Ob87W;z4<5O?hq%^xQ94$)O4u(f?h;th#VT(!6SAW
zkG!0_DhrX57G{znxZMNkSk6zzZ&fAaS|#6ZSPWIw<lIBOpd%4|KK%IO-Qo<%3Y&5{
z{RLJ65g#@RfpxOR^C#)3N4m`sdb6aDtPVP|MzR+SI`f&ZZzbtzoEm_RK_>6$Fql{h
zIR#;D(ae|9LztiJ8_|g7lSwj^rzP6vy#k!5w8R>-(~@jH2<DE##xOsgx9$o6@Gb(<
z$#-_}B>Ig9L4yQFNqBtJLekNAVlnRcI<1&;1goqC_@b)MP(t4LiPA@?kIm|zNRoo$
zHO$D4<&dn-+$C2gKSdeWhSi*P*ZFWt_^>=3k0!He#uZ2}Tp6B5Ab(Aye<O<Erk`F_
zun+calAqmiA1w*ql8=~GYk)4clou-$NZ4Nrd#TP`i3*06U*Wl8K?kLCAe1d9<*w->
zW`p@$lQ>`IG36GvK`oQoVHC(F=<j7af4Znv$L!wseg7j6fON@9cwFR^Yk^0+3U+LC
ze^vbWSH+NXLjkCj2ZFip9}t1UPhTa2Hhu-Z*8TNv{?-F~pHf{I$JA{p{dLk0C&Qgw
z%NxHoGuLRUSk+Wgk&3qO^@WF=#Q}>rPs@Pr|0)?y6<K~@w@?MJ*fUC@7u|J{=;3gP
z7TF7i6zwtcT{KQXntjXM4EQ^&Ik0N~>t8hCnoFZHWsMT_2g5~MSHE<yDmGBqT(yV7
z!G#^vKX;8^X$Q3$VFaHba|qP=>~cNzBI+q3b5&1Al|A*MEAQ#3s;A5Lm4Zs-KC&o8
z2@z`9JYPDgMdQ|=)@3P+SI|T%NQ)Nrm(gj}XjBjc)}^f`a+zMi*OvBo)rznT5fvP)
zpK+?9AaQO4aMSt~Tp`172AG{WGp<L=X39!jGf9eivjs`(%DLflSLA}1n_?>ozF$G`
zBuG5l|MkH`J3ly!qmALeyr&k<%i<4@ft2pBY8?AGW{3&~7mQ?9V?M=ozk<|+)!nn_
z56OBGL1uo$g-r=dO5(zf&D#hptAnvEz{!X`-rX`9_CM*O+G=XDOl61HcGO#P=}X<y
z-S;XKsW63+9;HQ(;=&j~`d=_Xo*fD2o9r4lTb7j{UXU@Ow>g)+FAF|>Uuf^toIk}y
z;D-!iq)u?uD3X6_7MA#wMeNsc@Sc&}c(lUNsBC<Rm{#~3mF032Cu#iAOgg}yke5H&
zEs_MkQ*ruu3+dn|#xpN0(lw^?r2pvf1?2w`X+(s!7D_LO*_OV|<6O$aqD0ioE*?Ju
z)i$2Bj3Znc31qXGc~s;epVX<WcPwUB4}6n^menyesEO{P%*-!dW)28Ni104r2b;aK
zlW*gTmhn<CD@Ns?kk!6x{E1#UBls&(n8(1M0?sP0vz4T<Mn_*N$CK;!6WfQ~L+J(D
zmvxo9^?@nm19^Iczbtaxxbfoc2NF46!r!|T?phA^m<%>gaJ$Sh0=x|qoDrzXBlmEk
zl87ZtW=-3I5bp{npApN%(#NSLj4E28z$R1(7Ec(JNTBMo&ge5rLfcpJh|4y<6mXug
zVxUYn%dG^80?jpuuyzkApGErrId7+zbO5x%|D)>$PSO95WBIlI|8+dI|DRgxzt;M%
zwf<|Z|L@KJ582f|?d}~M-GA{s=L4veQfXbFeT41#a5^2_4uvs-*h5#i>;I6Pp_?3#
z%y@GwRV_hG6b9P2V=WvZ^9^+V58Z~wAeRU3#e3zM7BL-RC8uLxL+qM@7#Y<gHpTc&
zaU;PlPmpi3a|z)(gp}?3X+mBwWN;2LfR;L|mEl$@Ix54p+{!k*n!R_WBYgg&LIO$`
z1tRz@p(_{YY>4Of|M-j3Kj#CDK=s>*FJZln*f`}bo)AtmUk!Ab_>aG+($9-s75w8b
zZqH}wl}Fx2(y}SbQ$;E(UFHnJF`bQ{sj~<ef+4Iz;UGJGScs4cY?rOd>6oEpWWEsH
z<a(d0V5~lb4>@X*Xd98wnT5@ifGQeUv|=w#sec<w_7(EKNFI)+)8xX&z$@&3Ezh%y
z{@>l8mjAEispbD#{;%c#TK=!)|L;crznFQk*fsq2=+LnX*-lQ-hWMTkcyu7iWHKC;
zorYF85(Uv=9g}5cn!MVKIVXWonx^e*^adaBNSUvhTZa6rM8`s25T4h|EBxGd+v<ko
zt>wQf0USjiPWq=^%H7t?+*-z>-^JS0y%qdT-c$Ug#`2ayg^dMHz7Wu&s!^29*$?ZO
zGh(`Q6)#IHg@M=L$v@=2t9`?uZc_|VDL*}i4{Sdy&fry7mYN(tR_YNC*u;+Y=s%ZQ
zo{i(T+46sCO_#pG6h-axc4coo2ChI`(_Bymc|orhT_UpzW6KhW8v8_~IVIN9w`6vh
zYrGixQ&=Px>8hYv1FHJjcps(=Xd7Xx*EAXpG~Goz=^oo%<LkY9!fYBpQp7LR#u@WA
zm$a7$^OK>t#=LR*)^G_+&l~X5eD@<X6EA~;=3N7tY_zjP7ZV{%%OLxn8<bO}wkg$p
z*FqC0Dr%}k$oC^<X<4inkJWavvK}Q{S+$mvC3Yy$)2fA>3bI3~9j#g~D{4`99KBjA
z>#aq-HGHkNS${0*t)=%Caw^EwAxrD6mGu_#{YY8#-ew)LsJE8ZTQpUbWvM@w-dii{
zEoA(W@?_O!y|t*fkVRFSANR@VlQ!s9VbBq11sWKIxk1;u!f3#Os~B|dN&yXianRjr
zH2CE~cZ+E7s|VdJq9KPuG3cF25@!_V2fb4uam%V6^iG+?wdo-S-K`{Xo*wx@cMBwr
zld@{i-5iPkeNIBfbG*SVaT2nhX4bebtfNi~tg*O`?xPOZK5PhE#_N_b$?M<XcYwZ+
zWu8EpzZCa`te>%LQ=ApDk}!NwM^={Io@7U6ed)*JuC9Ya@Tma69g!buV$mlFtq2U8
zjOCM)@o0j3x9K>9-P&tajkLO{aN4m@Vlb%F`aAVs`|w(=Y?G4j4m5bb11<Pzd)wIW
z{$)>4E$B0=6Em}i(l?=sw++-BqU0v-jgbvyI)(NfIzgq;!)1u!pdnM0=^H`P*9n^Y
zj%>#-jn~HScv`vN?Kg$;39sC;E&W^zZrsRLwAYH2xOa><-97<)%|PIzf5+J0qHm2i
zU9$x_Y*K-EgI(XYKjRk*|8ca>*5|Ahq=tYPrZ%A4h1UuX7wQBm&wL9#fp$zJR%Mr9
zR%UZe6EpYK+<Kk`XA+0SuoZzV37yaHi#iR8V?BUP%pj3|a0Ij*p-Vw@qa@LyxRE1a
zox0KJMChusead(?LA|7XbfA!@S}{;E&?jf7qxr^bHZ!3Jr%>+oTT}V+VJQryXY6>(
zIBXfO07-8O>;<Jx<SP@*c39vgIZjeyBhrP2#u<d${#Utzht&*76{CiVlCR&WqOfI}
zK%bONpDLbH7(C3B1rg48^ofmhY~wxo)1L^3_|gY4#t)d{$h_jH4qAobfVEc9rijkw
zG>=4!d0c*jqK~<zG<cX}ZLji-?oAbOynb^x_w5aQyZQRfTT+Fbyvry4k4Qv&#w?Nd
zSw&?*(Yg;MKAJJToIVwEJ)u+e8a1kL$G|R;ZtlOu8b7>S#8D5IG1S8<X8J16Gvt(i
zMf1JE&1v#%2il@HjpHaTrZ`4^0fJI*TE_phv{K9J6k3A$n%`Wg<~P)2QL|M2@-K(3
z;0~(tLA8%E)&upUW$Pig;!m>C%M!7A^ddzSsphv!?Eh8w&ocXe_4dy^CNeavh3RuQ
z_sxZy`{umOtsEZ9RLj-tb!NvvD4VKj0YKk=$aCb}`OX@u*@wiu$GI@$c@~}n_11)i
zGXsZsd&kf?MZgu`2{^G$1)7**rm3x8re?a@T0jbJ9Nl#g0A`$1)SRC6r|B83&tnvy
z{^^)nK2$-?G`dMUvIyKbRKSosFX8R#N`_WQ6E|Wa#>8E`Z`ro+3xzFEKEOBf1F^Qs
zc$Fi0IcAGg#&zyL(SDB$cfdJyaxosbG)Qp*1SVKK=-=0GOie2s((((!tNd$zF_9wl
zQ8?_+&bFiDB>JEY>5kC1FpeJm&q4Re-fQEY@$%8(3n&XOxyb7G^3sT<L=iQn%&X`?
z6{gL>!~I7;<Mew!Le+`M#H7h4PGH%dHUl>y#+$v5n`p?{u&5HVxfW=K2@FJWk*4uC
zn7>U_?S?PA_`3k<(c!DT$BRHspwkL5w~43RHpU1pkF(n-zaWw8sKe1NLO^#IR9YZ`
z@*GyxGATCn@adC-C*_8+S*8fKAOeKQLDf&gc^mu7-m8P|v!_RoUUvc7-s49<A8JS9
z>7p!*4cV0OXbQX(sv;Q*7$AkRS1cDNltg@?x%<-kn&=qhU-Cb*6gbd6LnpV21`CN5
z;L%6g>o>Y}H&y_paStzU2A=Fa>+T&sUDcmgrT!dNRES#NuZs1(qUso-e@_O}L{znp
z&Q3UpOhZExcE$nNK$wRwA3t7&uKeD?Y;tj+_Wx(-DF{-c6%dfstfO#A)zzrXRgQRF
zTKfW&zpBK;;gZHwqB+-=SF4&LhlBqxl~=awBpf%e{@l>h&Ekvh^Mkzy#=rRYZ_gjS
zIB4mh4xiqC`uu?Bvjh#f@#nMWk6!J)I1q1~u_cLPasF10M{J{eAVv`8dARrJ@xg<0
zQKOXq8~a_8w%f4v9n)?bB_3h;g=R41PHzl7fAWxwzEBjpprx5bhwunXm!T_m4&!B_
z@HlV&10wvs5aFLZgx>UVC(H66?an|R>t{8-%WsD>mg(Iw9{gJ9`#v>U7`vUP-}zn=
z6kURo285`?Rp!unQaqUtkqnUs<@is2tOfayc9%ZN{Drw5|0Wj85&#QHe`7Bk;(UQp
z5$2s-S>ytDbO^|i?r<-{{$M^y@?f^DZ`k5wMf`_LMt<gJh5d(TI>q?UuIsq9{?~Op
zb^M1~6Rg$*t2M!DO|Yxe1p5aHGy6vm?x2PVEvoR}Nvzh?)<@t-Hga13wrSnA0>kp|
zINlxDfsBto7zd|g;~#W7lc{axtypzqk5bCHLQHI6GS(o};B(OK3*SQenLN8|%lk@X
zw_SGGH4obRlFOdYW#>tEOLdpcb+rbRoe1=W^MF#qh!Q?8@Xi7C;we&<cb5uJ9w50@
z<X-G(F7N(C)8wjvQsrG_p{FSc;=HbwmN)49K3>iZZ*eadRiPPv{HJ;GsNPg9jMlj{
zJY!xjuw+`JTelQ>$iIzsOZ}{R*0cY=To}L=`#(Rh+_L?@Rqy|<<Eh&J1>5!3uipCA
zTfchiS8x5kb0eUo#yU$p0IY4EBOL^hc}|5THEi9KDLoqT>q=N;->-i_#WE<Q-RI*D
zlI$2hFR}*z_jOCKQPI&HE;Ypp?mKA*SGzdi>h3PS66d=<VK}euA*C%$1<>ZgyIJ9S
zR=F0Yt&lJV;0m_yA>wugLC9~^3HU1MLVg!yq4~+Lysi;00r<{l*@X->xk44GcIP0S
zNuI-<gCX%$R0U$Z74&)}7R#zVGS9d-_>ebU8jq&JwIiYkrmC{Tf)u_A#UDQjX!NGt
ziT*PBL~$5$t`*rWc}O1Q|63@`F>tgCE708!Xv?rsaIhE}%6V|qAA`gs#ula#`l1KP
zn8A{gkOWQoHsoipm-sGf$YFO|Ms5bMLqI))@gs&nD>m!4!BL2A5Qi0ft^kmcoz1zX
z?)~q8i(pp(q-ZaX&|ARaJJLZ^FaOkmz7<`1C-L$G1yy0dMl%636p<sUD0bw>UBfD9
zt6!DJkBw?Ti|LqXQI97`kv+zv8BP-R3JxnJOv;bAxxpn@^J}}r1V+bQUxfUqU~olN
zXzJJF+OombX=u6V4f9(5KfbX4KhrJx|G-dd_5S}lp4$IMz4foR{`J<s-uizxTmQWO
zza#ov<^L~BslNKH?J&M6JB-3Wocq!*yYN$cF1(#@6@D$f2rN=geG&NY{*>f@SlI`+
zueJ^p@&nIXB>&@6kpJxf@Bh53ZASI;A1?n_kN>A|GQ8xaulB6k|2byS|GR72wf^t5
zJoWys-v8D6zk2^y@BhA={onGd-^@-GhNb(9h^u<=F`1kJ(*TChpX&US??hlHvU9AM
z2kg~GQ9ne^3laf3CTU?X>rccw^5J&l5k}f&z!;EMw2>^ZR=JT3C-2LyB}>^VyhxIC
zg1zOfkcje$U%Sw=_d|5qv}<fOhV#LoxhWKWH!!`CE0LbSo@i%hhfT}FF7eZFj7RS9
zhH}BIf!Ae_k4(nK(3TlqhQ`pLma+N6bhDMOR+^SV3ABl&i$=QdDV4orY|>rK$6^XK
zDjc&lURAjtroRt2`BDe>k8G(+My=3j*vmDj@Mo>pr{90Kq08kS3cJ3qEkb?QPqqAi
zlAH|sAbeem{h#ByCHX&qEkP~+U&B+&|F!&I%m20fU(5gBjr=d}f1VsXp&`y){pcU_
zk~QSeZ+&2epN)V`H%`J+_}w!2Z#oI1mLZpazScQ74Nnj_sh?0wh|LIXx{v)(<!8oq
zg64qOr{{Z5j8Dh?=-8M7mmiQeWiP?SAvU(R8QwUFfbGKvteIGmKt}j6><_{opcBC0
zWe_Sk!YYAUoyQ^H>WHSZQl>FTrc-hM@}$3?-K(gs%8QbCGzYj!39S_DM?>Pj{RK$1
z{5MI$7_aQEMgDUgyX61D_v`cDYk6w<ua^I6`LCA$YWeSblmF1^+Oxf*qn!Mwf0Ux$
zjKOx_Co^2rGZml7=w!?aC24<hB46X=<7{?DL-{B*{_z*Tf5vm;;b^%1zsY3OGEhK3
z1sDW1n#63ja2vAThP<c)KORk|eUP&5!V7`|#wAKoR#HP^+XeiHjEcU829|FmePTok
zAh0GX(Inj<;6Wr9CeiVoo6~k344{N#+i7guw%yofW2dpzn2oK*Zgy<jY`CKxTl@TH
zoi{jZ&6;_ExtQ-_V)#k<@?8;_(BFW(rx2I}Ux#d}pTEXd0t)0Gos;vW>#u8)E`h2K
zZaL(^GhLhirajXOnu9M1>$M0nNhhDNlqCo|7>1ABpyKgjhCd}%CC$34{*+Oo$e+T1
zGz%}|xq+88?(QSA?E?K7#raz$SA-Y+mOJDr9zfqBF=Uns4VP~-=6+>|Zg%v7&$Mi4
zFQHU~(v1!em95Fc9@Vo+jWB0L7b+Bl4q{_tX&9^TTe6(--oHFWe=UD|=E!@Hc)(jj
z2t4B<E_YYRz)}oXtIP;T3}We(m?&wjPx<KUX$^Xui@V=rT7cAN1sjH5zn9;ezWmp$
zwVUO;U>5M&{~6ea3T*24p=NeEjC0Q+?m@bE{1s+$Yf4Uizx<#~vg-0_{!3%e{TneC
z&JH7aTHNG9ZYits-yXUhQzR$KeE&MV;^j~LBtYNCYNSTM*U>+PV&)J08Mt`l!{8(|
zGEo+7Byh0`(9fbc&hqh?75_x)UrrM-g5zX(_-B@wZcQ)F#m@BA0iV)1Q;~%9;Xn~u
zvsPBhg2>nMNCJF-a}`1MdA8|hcfo`IU_v1~4u;IUU0a>LRs5VCchiqnFLX3YnK#1h
zAo9VlWaX%dety!xunbngllahKel#(pKbE!Y(tq@>=8eBB_OojJB_|?;mP1fjhMetH
z90~baqS{b)hkqZD7#MsR4({ELqMm+nWjj}0TE*<xWdGG9nBco}Sx3GdwHW4vk~0Zo
zP+~6wcGRXd#wF2`(?|gIgb5Epa7RPd(2tI0Lh?d=7|=7Q2uO1-f441~=Knc=$H-QQ
z%jM!`&Gfg%{AQzg2N_DP3q>%1_BQm-s*3fgmz=v3>D;if5(X1S8Z~(UBM#*=a^CwU
z{sy@i{iPlyx#mEFJW2+QpwW<VpmSwf7G4&;ZSYt5Ka8D>e-Ud>Se<cAE6+1fu@O+c
zQc(J*R=<pOC1}RY$XGlEryu!8YC>3Dr_q1&L?eTQcwaKRptrR5T6oW^9pVtgj*%BR
z#~zRa)0j}J61F^bN~5wihT?&2*L}&|^^w&YG1c^WN~)EG^xEl@k)!H+tM#q#2MjS>
zp20pTo7%VKGxUwpiiZ6NO^dLXYHwo4%2t~V_iY<?cxarXPad30b>P=aMoXyQQn>nO
zDjyxganACMNA{2ylGoVBm67uRo?_n`3W4g-R3li&lmoE|3>8i~h^5F#n+m{OgCwKt
z;?>lU9GiRFpTdq#3M{<>thV1?<(i5sK??#IsA?l+i`a7<e{MV#=xVy9OfutZP8}tK
zGt&rxp<;pw60%>cfuav1HqOZrtqVirIIRYgzc?#k<zP2;h%vZCflQY@R2quv5pUDk
z!G+V({@PH?rD+nswFFM)%-~ymN?&1cMVgfHUGEXb&s3H={WM`f6W_}5Ul=YZLe~Jr
z$5ZHOtGL_I@;F-U`FxC~fXAARPJDb8{~%8-4ul&o2{rQL3!fuFn;@N6naW<?AB-nK
ztdB-YHQNv*JJ+J`k?jnP3l%cgcAly9DJsst*ojU;+M$F(TG>aP@;`P*BDQ~KDNXR|
zy{!>ztu)F=e%WQSnhAzu#&{my1cpuc9KYXgr1!GupCp?7J``7HAEhlIOQ7ZWCXjSW
zj6gl&7yQ%FvE&YQwS5A4pO&G*<xV*xv`m>MKXQ7-rck=N`XsoPA~&|zRl3rh-@MYY
z|D64MHo3=2h6M$Wb4~gk(qj?X5R5gpqa_aH0NCfGA$E&7+yIwaxru!#67Px#tC#1X
z7Xe*vbJD<So==pB8b01zKG*Nyo{2*K66bJ00mhCa;Hz}?{J>9Uh4^*25_`oX!a{{a
z*zfIQW+A=@zi~fcrr_%OJJRQNteD72PvK_sybm?f^s*XJ@Vg)Td1N@<k@htL7H}zC
zv(zo^o`-=*R3K~+{UIq4zTQogpj$jbIQ;fF^GFigx(A<RWo0|voA?Ld_~9LIoR-po
zii}{qEHgc}jcxk-N;KeaGy6N^_ht6Hhv>fzWk9<5X|fS<d-3$?nJ*--_NEVU>3WX%
zL`i2nK|=!<*jT*g{W2Uh9N+J{g<K0dWy>(T=r}1|WhX|xG};$o_Psh3M%&E4w!#Es
zXYT}jvb;JPr8C_UKVEE7xHF3l<~pF(O8SH$+kPH9_UV^Zz%H?0{A?2U+PjDMvkot(
z6D(hBTSoWz1ltXbT&%qUb9L0mwEiqVNJa>?6=#>gNpNPs&(S#;7FXCIUc73I5I@JU
z;18Cel_pzKWPfN?MWjuAN3D|IwdS`TZ7VVqP^`Ps4V}}5U__N8oQE=b_T=X;O-uFi
zDpQL~G~)6`N9FJlM!T;Glrc>g3J|Ob9_jXp#Y5ot3)8OdKyu96d^4j?@=AC2F5ZAB
z4(1eNXhSoM+QOA2*7Z@-qVu7Bm5urKe4FiYgE+KSN;^&W>(79{)s*;*i*^#!O`7>{
z=Pl$9D81XqtI4x&x&}=kwa5Sto)YFy3X2Ty=E?NN+>9+c8@now!h2%@(gg;#4nU(n
z=9Hzx`QNU0u)`<%%-KEea+4%j$knl-2)zHh*YqOTXiRe~xGF>3fhO4iu}lZ*wKrY-
zh~gl(6q>xCXDAQP_v!*EA!U$-ba#Si@R>i~rO75D9qwwv-@jDMx(R(m&CB_LZ}Ux*
zzZ2XE2>u6PrycnNsCQhK48+JNF3Ky;X{6x&v0}oqvVgv?x=Z5nfHjtwR#hz5K$LX0
zUHVVmtrk8L*lIY#@pmj)QqNm=hoH}E*F5I&gO8~9^C4{^3g?sAgw`<6@%1>BmTtp2
zE#LPDAjK-u$aG3*;!SyfW0!YgbXJ<HRL9ngzi#ys<gm>>y@cbk*ffxRzuf7APE<#u
zrw_%etHjZQV^^oh(56qS=}fL|48n+6n(GMVg}KW$6@lU0U_uX7c3;8J!uR6eX_}H5
z=>(jFm00}S@%~#y;5%o^dqa#xE_UPT+IP|qUmp65kJ{bg`fukvG|O{@AtvA9P4Y+!
zJA2DS+N_{2tlusXy?33MkLjedEg*3#9@yFPGZCFtWNc<p-7r3C(}aI{)(`mdFMh_Y
z#Uhc7AZ*aFHs^3QPT-2Q;Bfc9U@JHrI2RD@d>{s=LKhZ(MhaZ9<Q;wu3Xn4A9Ogu-
zDR7#ppv=I?XZbh~6?up#ee{{cg2Y6bW`mW-5EZ{n^Ebc11_hV9cGrGE*c4(~FF4Z-
zGA*l|0w35i=;&yqu5RnhUjd!ZM`p2=qKU*#>D~8D@q#Rmt(^KGN^Wm*0~3!h9#YJI
zwgFGD7kbuU+rJ|(eVNv)z`nJ+2Q_u$oe(ji1E3va@Ibx4WjOaw%4TYg;b&PKbT}5T
zgc`BAf<+B=rCob1U|bh}EZ|V4nsHe|x9dE%3jz(?$W0wA@C1c{lTbVbw_u$3w7R{H
z(S$30)K7XTOd5G>>Fv51QV)W-j|0$^`ijbbGo-xM!7f+U#*yZNfyc12t3C3}Q)9B)
zL8QAT^aqR@uDA`o0Pw~kkN6JpA`Sjrsvxqd>zyi&M<Z!A##<k^O_pzu&#@%FwR@kH
zFsntK;5z~0P~9~k0t7m{TdAq(S#T`w%5Q`2u`t-1fz1ckaatS-74o?9aq^pS{bu*A
z$^Fs>6c?0Gnril)vr_io(x+1L;7+$&={gmq+W+WFz#^PT*8N3c`C-PYupCd3AK%5p
zo<(zCUbI@_qflo3b1o9VFz?S=m+VCn^)t}O-tCcK{j?+_zDRy5eyUu3nqH9VAJElH
zLQlY2LQwm_)_o!DFrHO7OYdH%rO-!akwJsv(zZbKT2z2vu!M=bsEP%%(*BQP^ZNIk
zx1-c37R)3u5JKQ!MM~7C1eR`A0=o(G&;8$KX8&S~cNv%;np11biBoFWje)djUvi1^
zJw=S39Wl?tm&0%q3LXnwg%Lx(p3SxOU-Q0#s!?)sNq;<=kaNltD#W+Sz9nGV2#~h(
zJ7F|A6vN|4b##3M@GDTRQw<hPg~1sbu~a2N2c$7kbcIk6PY<G>j@t}JRo1q86yH^G
zn;NSN0M8CHg1B?U0r;&cDNNyl$cGxWPWn&Nr<%t>9Zk1Z*E|O9BK*Fc&v&=TTH9EK
zq@sI(hTz>>_WhAkI`~c9F>asfgXgP({XqG9a_hqdjpq%bT<sliQCjQ=q-C0=&ca_&
zOPtDYV4b+NTthn>KvNSY>O2RAf4LZcLMq2Od=a{a@9D2li)<f2f<0${<8S~`tRev=
zwrFGQwc0`$C9$l6)YQ;y@YT^xM2L5n0j;C!Q|6oy8Ql>}Ft@$Nz)7NmdI4(pig@?b
zvdrx-ORvYR)y=kZ1c(RBxYT`5QH3rXl<rVX`3Hh|$|#sNA#N1&f=mvwCuHBeh);Wq
zZU|=|ap-2;NU5B7i@P1X2iEww`H7{v3N72p?J34cP=*Ob;ifGM{9X3kBB(urp403*
zn#{HbVP8&Fce$|1F)%V&*qaHVBOUYP%{eGl%UUATu0z;Ox{sHS@5}{{!SH20M{PsV
zkk=#H$kEMF@?d`aL-Y|Ix|f+w$u<n8uQT3P$ZP{dGCH##6V^B680^g}M2d=PNa?-x
z5`G7ku)K+`y+Ox~!Z5HJ5B*&usqfKAh|{1x*HvU<YuzI+2T{kDLxL^-{c=!Z4>RR-
zP973DwON2AmrinS3U44gDcu5dVe;-tlP8jtUY5%`HK_%S{y^@2{VO?({5*Y<(puHz
z0S7l#g{{uXXhKS!2Bfods>=`aB872G#`1>9{Rj`B{-P>v6hlzNE5p(cRll+xoMf;7
z(Qh99mJbN-=qJjKfiY@=z`Y-b;ehljjT}@Pxs@-K|E<DdZ;z7h%lg#do?{bPgKlv&
zq|G*0S|Kc<?PO|FwHU~QF0XmVaV3?)b0;`r?}s*$u=6{j5JnfT_D-_<%;ELBDANoX
z!JzSk-M!I;M04DaK%SFQV0zE|L2U{3V-Ny1>(``XO^y<%O3|gs_TF%lQU2Tn_Y!HQ
zKB{aD5$kgKCBmRK7$N9Bn!M+1_KknK;{rW)M9f>ukhGjIk~lF+K?%JG5cB6M0I{9X
z`obl)u6_zN*TDJ7muj|s#Z3!(hQ2;i8-JsoU-mEg){H^$4)M!2Gl9V*L1?dSzzc|E
zB|P5_W}Ix+OgGG??ph01@;iwNXB3np%vmpWX^o=0BN;+b@pl8HIGmZJp))tCAq=?@
z(d{<*kzpsov>je%R6r(*QO^YcHpmE<%rLqfc6GFW&4RWb!KFvIokv0sYp)Aqw~Mo#
zXMldVqhhrA+L#ralaDZ|qOs#MySAm-synBGhjL%AY;)3~@6_S8Ez-cxcQ8-)`_VUL
zb&P}2u3F@l1$|8p<e=qjNX#=4a=9Gg#EoHn{}>pD{f5zEH*Bzkpi?TLXpl^Eg_Wnd
zxpqq`OJ3QV<AB6Fw?r^}!bDwDj8vF!G=uv^rsbWo;4&8Xq#Qcza}lZ`O+_C1N)Sc+
zga;`yhI^)MX017kO(9VmZnv%w!!H;gNgQVu%ou=i_Qeiseg;-D%lav@09<ff8)-0B
zl}{ViDBp*&dBm8h&ZlL@SM(Xb%qKcmqr+#z55KRkj;;H%Bku;W?tB!nZ<YpZ`e)E}
z-ReZHNR;@Kr;-dXh!wC*I0)vNoJ-J6ConRo#!k{7>6x^r#bMl|r;ArRQ3y<13Gdjq
zG=i~bFWK(HpLVNu&fCE+zSlr1)vU@Xwp50=-I7`5{-2`JZCE0igpIq?6%L_8xxcUE
zYs*m(#Y)AaD;op#L?t5d2~W)ogchZB3XUsVuG&1*PKGStI0ISpEB8w8JpsN2i9ak7
zcXTr&EF_w!S?n)JxA>6h&bjYm<fKc9@9`(jP%zQuNolcBFjJx$%l^?V7b`SJWzLP;
zrnLx_TQlj#2YxwJF{Y;clGDnhE^!yJ8r@kBh+5r8oYEurw#J>4<yXB-M0gj<f3}^l
zX@Q{=0L{&#hbfvx2g}<x-@Z`7gk^p$k`!)Kj<C&Ehe>Nw&fp6HxI)BU1OpK=M9kZ$
zQI)ySE$Ds;_#AF0SH;dSMFLN6Xt@jK$37tVJk^LLn-6M*xcwS&$)m0E_Ca_$&5w!X
z6hsj1saWMq@w{;+!ZI6xCZ1DtV5Q;4r)F@rr`n($C#CHCI%VYQds5*pxb6LZ09m+2
z>i5W|0d;&VRuUOVEVxN$)>bWvv`02L-am=#GoVu^rMqDi8As!agzdY|+m=zorQc?i
zkg<t&$@|U1VffWjG<p)6iRUv}5C0%kFJL8LjE|l(6G5SfIo2`}Q60{u#eQR5LJcs~
z+0^#A4Cls6$V`=?_E~JnMvdFE>o~I+clE(~HQo_Cbk`@9xL5cPEe3AaURk6T4j0^w
z^(b-VVIIP)PWJKpbLa|%x@Qs9;4TgTkhysm(~PTyICzZh8Hge(CZ-Kzut@N?t2DpK
zn6XKM@$Dy~%!F#Y5bYKDCzkoMobuO+`aPdPtDaapcmSZCJ?5ih1`2(r{(%~wa>at9
zyY{^Foh!`c%_4i{STX1oAHI||qS;gzsg@|=_D;Bme_oO~S1FVtE!*y5hm*kK04rYH
zVG*KE*T)N*Rg+f=SY9O0>yL;LBclfh)|z%9Y$R6N(2jpx8j4N|s=$Sr^U6hF$?_nS
zPZpsy$5#`03oj#5-Bt7PE7#MJw|xV=O`S{jS9q_mC0p7ZE{msS?bJbOVuih3;WeI<
zXa>R&%cO}q@p^YWy-NuvoLH)W;tr+UN8ii_vD*;(XbkH^B0bhORJ=P1BCezFt8bAJ
z1{=MPGyxL|>tvVC`NW#%V85h>#`h_$krQlr(Sn&#ALpS0x7A!Zveb=PySuM;dJq4A
zcH`5X7iHHIM^&pO1X&uTnOnDv$TG19YMHcii8~I$U!%T%EF0rx4rfV*c-j*_t?+a-
zPgkkBIr}v?di=K4ZthSf5#%AfC920h5i&6+k(qus@yV*uL%{4lCy^3R`bq5DrY*cH
z__~KZV<Zjjzx%xukjG-%zgV*!ApOWdWi?vWSHByv+fHI1(!iRb``jS>>Q%!gBTr2F
z^LX;$Uh4UTsAlxY5q6z)%sd_y*x$Le)7)Y1yP%0-rZpgE45(NAWLIp=v@GkOgBQYH
zhvxQCXR0qQL;S0-KI4r%^S14l08dlEW(+Uzde<HKRCseV2c9NJm<G??^m-26yrPSN
zmuPm`w8xO%P4}4d!3Oo$%m2;tTdkMi7G)|r>g9qxhdGxvV8`aYA?Vd91=z9G#m0%(
zD%04}4dfA~5ZGN71=giWhwvS`bXO)2p_BTU3yN3f=8^X?vHg&z-+@me<IA{))h-K-
zQdKEMcK75KH|<XFWtUgItuL`RGZ?U!YAPBp@z-4^cX5M<f&R<k$TfO8#rm5Pi4(%E
z(megLgh*SbY7)PvmDcz$LPA1Mt~%QXUOOtZ#=-im1FmeP_pwE-4AS-^Lz9E)R2>^m
zYb^sVI&QvKb}F-aFD0!w@{rOCsc*TniXHlg16feKRK}SxD?v@Ii)p~}ouZs>bQKan
z8&-~>q+a07D(q*~D`T!*pROGn1NkySeo%y{W{@u<ccXh1{+srnt%e`Qj5`e9!nUeb
zJ`D#4ury{|cd7Cr?VD>8H!G-86NVq5?VliZKSBybq|%E=>9sT{t7Sw9QhGBw`E=%Q
zWPh))U408ICXaa)O`s)<IPaYPQ_JX5-1W)=833Jq)6znxMrKA_bv2X~{rq^6D#syS
za{D*?Y-59}S&r%WebYbf?ez}*j6Gl<yU3#utXFX;`1m^KB`o~4Nc}iP4^@8$)*%hv
z@&dhm00l`&!Bt{W`Cw*&d=;OPvoWT6%aIqMOncnXJvWvHQt*ZEdXc<+BQjwt&5@>x
z@QnOXAFnFA(e^tvlg(AO&eX72FQ^S_%m+&76vpP?;7gQ6-qu0Gio)l*0yf)OXFIlm
z_a(p0fv*i<NokQE^tj!h6t=E1M185}JSHmw%M`hta_j|Bi~A(G=IylATIb!6)?UXe
zuAm}@R)XW+QOC`@)QJzPL3afM8h7h9Ip46Uw3R?k8&=&`tvr-=zKl@C5OT&C4PxU-
zV~?dI%E9xL6!UUyv5nF=hcf{<$+bJl*|2$Tvm;Q=Ar`f{Ew__2>|6*icnTttFnRks
zZK-VbR2|ARp2FrMdHM;(z)RzUn;hqiLffj=5VzOEucYoJ$52YxJ-gAk7veXa=He{o
zt_9rkM%#bTD9pD|>UmK4s$8~`=(!Qg-E5q{_KZgbvvZ)Z^erh!Hjoqp_Eo=)I4xc2
zJ1t$eg4&%Vn?bEAY_8Z_3Y*R_QY*2ajnI!?lv_M?{D^h)%2I1>f+lmVi}aWLiTQBm
z2rup>?LVYU`k*Z>1SRI3>1^Pms<6eM^Dv?YRl~+FUaQYMvFMsDwiKn<&^{F@@7?tb
z!&jNt+(D`hwp-?@?Z#Y?!qnbl_dEQ*hIr={G0IYQp1Qg1<?@Hou&C4dy`;DlLL9|0
zLI*q{UF^3M9M_(U>C9oQV5#9-(|m0X06}!}{-84G2OC(DIgqc7!)x&x@}|9ozVr5#
zKI=ov;Y)}aIh(k92*fA<<*))#6OOp0pem6pPmCEeIlLCxNIr%FVMW{ubV+nCH7hDh
zvb!U6Po(qFhU%D#kO-IeTL0#^R-3;HmH1K4l|Wb#B6g@2HdPUPU(ancW%Tvd<3UFc
zGjfsaRE^X2(2$=&7}QRu4c71G4J6Sa_3hBDSe^Ov=l!gV#R6C_AOv~X=0SeB`M>?Y
z{2^8qr^(MeErg!7B+}PGt%uRY`7h?*+NHQ0<xI9YoQkT+IYP%-*1Wps+ly7$)3C*E
zLNCLXk^M=y$wN5qH&q=sLqW0?Kq=F}wM&S}klBEiH3j9O*dlz|_$Jx|seEj|0&G9h
z>2lRMwM+ind^9bD&I^bpA4g>NoGyEuerbF7dDspRK-{;-n}ALP**0${oM9hA!z*Mp
zfXoI4BmY>sXTJ4klZ!rWBS{~0YsNY`<NjJBXg#0%(Httud;30>H`(gn07L|0zynF)
zycJyq;%f@FcL*hPkwNwzyJXWf4JNyg(77LpIFfSGaMJe{OK8HVf{ojr#0|JsKfGVM
z-=dtd8%WH4oBBikDO3_+2HQ_=nVKOt8hy1u@3HNI1ru?X@AkZegZbKBoQNFH0-{0M
zxA8acg5OV22W_)Iy1CG7$2eK8)YR+htRs3Dg5<b9IDmNt3<zC3aW{-YpY+%oxpcp8
zY`Y2bWj}kBkwGTU`~psdB0|Gti=9>Ys^*{!mta*nsb+XP?pbRS&B>nmvJ>GGZmb`R
z$+UT?u;Z~6Jo#L|7>+txpt8HBmyeriStna%e!Da+$?W_)k5PlGmJoW`7hQ%G(H>P@
zvU+ki;`X7u)?1_+tkARIyPwF>xUKjw9uJ!|!$QhAMOJjw8y4|w!JW>35~C%^bDw2}
zS)bDv7~>u=ysy6T&Qu~p-Ebfrk}6pn_?lm*GleWSqMLYEKjC)5_d>gw8{}-Us+v@;
z#=v2a(6mnO)mTeMIk1c38HV}c2{?tT-*PHxAkA}ZR(`-t_^V*7iVI#?XTH4VGaNmU
zE`>}95WKh(mX;!ZTY&IosS+WkUU2lmK67o<@9%^Y;>zrY$JM4QRg3v$0gLOr{6LGe
zgi61??B9-!D!WwH)EHD{auXNDF2n{A^rOfBqG!t-`*Re}?RQ;;=Wb|(GIBAy&6Q$@
z7;M+>_V%y<d7zAjSS7n3T<n!7l7Q^VlXO=|kq#4`m(b#wKCiaHs~@DWwH%j_&_rC#
zD6S$-V|Yz+KiAi_Ffq5P!DgP({F!#XOmK|mJ}_ch^$5mh4pP(1i0}ucEk-E?oIq|j
zofo!_24)<qCKXX`Jf)q2&qRCghNP(uJNzlj#b*ge<uWUGGt-aLsHLmuBb4AwWzj$K
z#ZY{W=E~zcG_GEV4l>c!8#_<}7!SsQ1Pw{NAq}bv;pyV3rwY1>AjYHQz0m5Deki;j
zkWvfL6gB^XPF&O5UIZW==*3wqF$x|IZf1YV8}UCi`#T(QLG^0U`88GNpfv-Kj7~%j
zngdP4SFM8=E)dyIz(Ut*sgtS=W$!g6X>1vac<Se#ev?LB@9{!2ba@7Rx?Za37%jdz
zJ#$*mC_qk>-EJMU26hOK>p|nfOq;6_OmY%nAgXj8H65@N2E~xIX<rAMAJg6an{3N~
zzU*Np1#CC%S@EnacI!06EpeN*+rBR>2JQaFF@3c*9(^C2D#s}h=8^Bf<DfNEHK?9Q
z(-c|h)7&Q}=o-#=eW_b*HonH+6iRz4-SbY*C^HSC8%xVs>VXIDUpJ+)Im|G%siiwp
zjH$hF#NGmyi=OuB4^EqIZ(%-<QAvk@ZdjCWQR7`suk4~+D2{AGva|aQsRP*$LmfR0
zkv;JXK4{T2h$7L#sP_1Dw@9JlKl^bz0`{mgQZp!z^&)j*m6$1ZURnw#J&4h(JQ|PX
zU@n})aXTYZIguZY?`~JiJ=ENJ>0{3+{h`hp)Uj|~<vdOFSfouHmeS~cLk&ii?x#<y
z@fF(k-ta2LU_>m9Xr4K9f3B}2rs6%C{9MtUEVdHlDxlWjk2wj)P=hR4KrC=en@HTX
z1ohVjxO)MOzveGHmH)jCv4v>)t*;CU(pTvtN(pYTCtK<VrA@j_9-IKa4?-Q)_3beh
ztE%R1xCMXz8@QUH%d>wk&pea6=yoF`AlcM#(YzBWlKEb1om(4+rleyB%Kn>1Ndk{N
zE6uuh|JeQ=8IYHFl6HRlHYuxbgxs2mRG4)R)<zLV$_A48(Ci#{J!)5(sr&`Sxw&d^
zjw=k&xPcaZUutkDr0LU(>a#H7N`@S{&(YpmHptH?!wrZKC8Nd#xNV}xnN^g5_M1s>
z^qF^madLVjOIQ;fo~3ky$TTxG9x7NLG1KtP@FuEQpvyOHMw~9$P7^;aw#Sk1=W?U>
zKP4y-MZRbw{rls$ElG9vEGb`-6kxV4CjFI_S&hv}*?I<-tyt?kM?R^aYwsNH^Z+^2
zbMR0M-)e`)WtP=?|1?NCA62m85>EUUL3aO6TJ~b_FcY*kZ9@Dx61X-UpD;%50;N^_
zdx77CLW{J8R4y{0OQD7?_jpQAk|Ni-Zqp9~>NV_pv(m1!s~d^+Sg)bDto>vQr2fg2
z7*o7Z^*xTxfG49{m=LEOnwfq>nIMs*gPUss5;N+Wo)@B=yOa4PG3CD2o)r#*jf9xf
zoau`DLeHd*siz)#7SE$AzJa#Up4C$E3ZUi_-{tMd0-^8-<H`hOUmPw={OxE^zL5FH
zmDSqYB0rfa3h<D4wkQ6e8#S11=_%eKu)B8P(D+#i`=>+!kq<UAFX+pKlaK|ZtQvM0
zj)!E#K@c)6GH;Qj&W&HnF`Asg<Q&XKZ^=TmeOs^JbBE(E8ewA@lIE<?*=5xc{3f`w
z+rE17d=#JXa&+<Q<!GBq^zVT)*h<f|bn8a~f34%r!kE<}&000^>ZS6~DjV6rD$mSp
z`nD*EBX}-^h{`pbib0b+vmpe5=xmSId580I_8a{GU{gOUY{*m2-skD;V~IQo52w3~
zBAE4L+H{^XYxSFvN}B$|>t>Tj=S6KKRu`}jixScigIxm0cj^K6rxWgDY+pczFxfi+
zDdF=dfj<1x>dw`FxakeZmDJDUeS4{PYYSpgdLqL?`R9-zuCoE|GEr{?yMl_Iz&<Q<
z?(a!5Cq!-eBe<LTA7lmFOX#1srL9QS<+~jy7Im-VKgpd?W{U<7B=(0EB3jl>&pOp%
z2(FQEKkN3?urHpM67S#bw^oAS4?5t%6MIkBl|3d;LJz|(*mqNVH>Rg9`-qG?9w(BC
zf7+0<bGp_>`F%ChFRg|$clX7FTJTNnm$06`!>HRTQ(&dOD6%$t4dZ&@&#p-5pWg*)
z4FyK-EaS`cOeww79~{SpME>ylrBqZLwtIP`s0ub!K2azY%g`VuA^`dDR$qp8QRxHV
z?+mOY(0ju~6q*2Z@c<^(l{FBPQamI1#ot-`*_9*9m7@llpMluuQ^Aq`8ULY2<cIA>
zyXGC(V)dzS?T&s_d@IHL$Ktn+#57In81SZDn;Epj062{Nsi(gqzdebSLb=k`s|4e-
zsa0wT1XF$dyxo35n@HGczL>bguOdaKasV^B(zZkohjluv;OM>Wz3J^Jh9XSIy;S8?
zt^+}nH>~XMZ84hY(owp6i?#JD&)cz0r~+(CRFm&}wk|0&r9)(xHQLjdrKbU(-??5v
z*eW81Ser<gtFx$(Mt(QMAM^9HipEaJ1`9^@-+SVg2h`Y|lMtfjnDiP-JBc8uy|5y4
zqbXc<J9OKP0M;9$q9>84J)ipau>CMsgH2URC@!Q*#g0%RBHYS5^&z^BD!B|u_nZV@
zsvxFX6sekPu!*F+bvB|ghq%P=3ZdT%3sFK4xWW%A%PJ8|HDSBVcHUIYqrQ9)UQ-C1
zdpwv|1QG0BCIVkG)1WrL?<GRsR@ef(*AbUg4-6Hy;;FD@|M#~RCConavmRLdo?|8>
zWq$q|q22*I?k)(qTKKaVnC&cd_mkvqK2@*%VvJ<2skD9Ls!U|;QHt;KFC>bqnE}JY
z5Y)FOf1T89Ruo&aQJuM@fU&qDzNRx84XhE9xjT^%ybb$r`o;O4oAqavDX0ohYXw+f
z4Yif8y}u`)!Dg?=pTQt7$e`dS7|e1F#((H_0ADljfQ3x$uajy>-4FNPIfcOG(WtMo
zIB19v37r(NHo3<M@ul85WtzOl;!l4Pk@A#}3l#}HJ{`^SRdO9JvOHn>k@)Foc5-zf
zO@EYHKSB;kPSXzx026hjmb<bS-r6vDlvaoyzouB6PV6mY`bH`;?@W8%%-#Hja2<4T
z{oN})VJPTkYCwNA1>=%|l5D2J5s~3j!ECnJs$Y&4$KvO5*yS4CcSDFgKfw!Q*pHfG
U{~xvddj&(zGWeE2=s`jJ4=+{pq5uE@