vcmmd-8.0.13-1.vz8 >    a  }Dͭ*8Oq?˔Fjx?^AOFsi>iZ& B8Z\)w?l,*NB!Fe1{W=Ĩhj㹡t J%br3(&VEk25cc760d2a0798f5daca0e2c612acf884e693d7f166d8a3b55dbfcd3bc85615317ace9760eaeb7c1d26c99a843e4a042247afe8b<a  }Dͭ*nh Zr 8]<ᄋMe:'5*^F%u!k ~F+>hE%SEArl8a]G,tfZB蝛0gEv1hL 7z6bf#(v,؂`pD?d  8 (@FM^8 b    * +.D1-44466#7`#:#:::(:8:9=:]>(?0@8G@HIXY\] ^bd ee jf ml ot u v0w<xydhnCvcmmd8.0.131.vz8Virtuozzo memory management daemonvcmmd is a daemon that watches Virtuozzo containers and tunes their memory configuration parameters according to the current memory demand.aobuilder9.eng.sw.ru9uVirtuozzoVirtuozzoGPLv2Virtuozzo (http://www.virtuozzo.com/support/)System Environment/Baselinuxx86_64 if [ $1 -eq 1 ] ; then # Initial installation systemctl --no-reload preset vcmmd.service &>/dev/null || : fi if [ $1 -eq 0 ] ; then # Package removal, not upgrade systemctl --no-reload disable --now vcmmd.service &>/dev/null || : fi if [ $1 -ge 1 ] ; then # Package upgrade, not uninstall systemctl try-restart vcmmd.service &>/dev/null || : fi]fss/x/x''FF(XXGG  ##%% 1'5!6&S $//<<= MMss:ssss N N$$ ,#ss u u66tt JJ XC \T &,,'z'0\/CBAAA큤A큤A큤A큤큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤a a a a ahahahaga agaga ahagagagagagagagagagagagagahahahahahahahahaga ahagagagagagagagagagagagaga a a a aga a a a a a aga ahagagagagahaha aga a ahagagagaga a a aga ahahahaga ahahahahahahahahaha a a aga ahahahahahahahahahahahahahahahahahahahahaha a a a a a a a a aga ahahahahahahahahaha a a a a agag0eae4ddc905ac07779258ea58c8294aed14d44f14a8b11793d6568f5b558c2cb48648daf3c2aebd68c25a681b875ff1b0454c8bf51ce8ca25d4845a9ef0e8bf8d3a1dbca6549302b567f9cd0ec83bc97479a098898bc138c94d4b23a713495e838f666dc7ea0e37f187fd9c2ad6661d554eb3cc29f54e70aec3acd3de9b2a281d4e1e6b44a569c0de6895e6539a6e8ad4acb91ad85b8ecef2e2aefab3585fac051f98384ae4906a12e1aee6ecfefbd9570de90cc8c3a0805baa7d32abdec74e946ea968fe72b16f2cd62b7c919d579ff706c8a95fe0c54da5d2e20b50b0c172ce3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b85529f9db89b411fa992589ca705573317b55babf434a0f3bf0dfa803b52fe220a329f9db89b411fa992589ca705573317b55babf434a0f3bf0dfa803b52fe220a3c7a4324f8e2eec7e85ce05cbe1850b1f4b24f60c42f426f5724d698b9c2d0671c7a4324f8e2eec7e85ce05cbe1850b1f4b24f60c42f426f5724d698b9c2d0671809060bf89371df11a8831175e3a28ffe9ef1b6612d9300ee90414ae144d3f5a809060bf89371df11a8831175e3a28ffe9ef1b6612d9300ee90414ae144d3f5a312a33f4485bb0dd57721886c6f74f8326387816f2300a7361c66e9eec02b9b8312a33f4485bb0dd57721886c6f74f8326387816f2300a7361c66e9eec02b9b89796885c426cc0625053cebd287e9ecf8780868ec4913878b0d7e2bc741463da9796885c426cc0625053cebd287e9ecf8780868ec4913878b0d7e2bc741463dae4b7c9ba6474f9e6d4f4c16cddc09631279f7f016d153d8e1f404359989c53f5e4b7c9ba6474f9e6d4f4c16cddc09631279f7f016d153d8e1f404359989c53f544326f3258d77c5bc53bd8f1ba8b918d4212af53810da2c3e12b24583efc75aa44326f3258d77c5bc53bd8f1ba8b918d4212af53810da2c3e12b24583efc75aa81b4df4235133ede9de5bdbc46a5435229fa4582b00d3ba796ce42251df40d2612ea6241be86edfb7b7d8950c3d904e61aac78ada2b2c9217b6b6fadb4b8bd0ca8f0823f2a71b645c8bb4fb784809d3c8da7235738f84135d06d6d8c56999a6ca8f0823f2a71b645c8bb4fb784809d3c8da7235738f84135d06d6d8c56999a6ce3cda286e548b02b8e61681306451739fafcf03d60a4c008ff22239950e0b26ce3cda286e548b02b8e61681306451739fafcf03d60a4c008ff22239950e0b26cff66225354fc576c7041bd6ef274d70f63a34704011fff4f31d1c6a42369ff2fc09c3841371075a64459601523e5ab4e0950b8f5bc4b6456cc452c75c9e05ba1c09c3841371075a64459601523e5ab4e0950b8f5bc4b6456cc452c75c9e05ba178728c358d8ba095e3a3add20a66e7db32507f4b0767e2ebf77c7fd14211559378728c358d8ba095e3a3add20a66e7db32507f4b0767e2ebf77c7fd142115593d17b2df1af506648c0d96e03d67041fd699916bb8e8f68f2f00d696a2d467080d17b2df1af506648c0d96e03d67041fd699916bb8e8f68f2f00d696a2d4670809b8d69f6b8404fbd53f6e9b2cef1422fd36d6601b6ab0a2f287237532072706c9b8d69f6b8404fbd53f6e9b2cef1422fd36d6601b6ab0a2f287237532072706cfeadadea66bdbd9e780d8ac11914a6733e4959ca54d8b05950bb5094ee2ed0a0feadadea66bdbd9e780d8ac11914a6733e4959ca54d8b05950bb5094ee2ed0a07aab073f7abbb684dfe4972662d987076c511bb3442f6a7a559080ee1e66ca867aab073f7abbb684dfe4972662d987076c511bb3442f6a7a559080ee1e66ca8644e76594d398933035e46e0f12705d73460c2bce124dd9ba2849e2fb51c7e6817693c0b451755422d9c6560672ce37de4cde7b8636fae56d084367c35dbc4a5e07d91876a5aa90d84b32b51723f6275c6a997414353577a3cf2d223067d837df6a99056012c5281835f101136a106922e38c49d6f45740765ef1d13e6d59eb2e18cddf90e64a569de1d7e510a0e967cf32f3ae4b82dc193d240d61bb98a262b0ce80563daa1f68e8d9965faf7a0381853ebaf1d6a975fd0d5056be90757b4a54b6ce2df21790d82b12edda6b78020a90faf455fbc9480de22e2c0067a1dc4a7238769cb5f156347188bc27e24498399bfe43d3ce3425b0d2d253da486e1cb5d7700f940e9fa2d18c66ff004d71ac8503d4a7f503e52d60f20d680d1fcdb9b36ea64cd3397f076eba51ab76d3aca6d402930e7fdb64024b7a2cb58e60e5d3cb3655507b3269a27c88eb4be51602b3fdae2b1238fda3bf846658cfd9e4a0de4d95d581a0278887be7246ca9c26497b31646f5b8668c256eb9877288ec829c6175be8cebd62cf6d0666a3deeb715bfc78b3c935fd26335ab8686091933aeafc350ae8cebd62cf6d0666a3deeb715bfc78b3c935fd26335ab8686091933aeafc350a23104efd546f2c7935433d45e01345d84e6269aceb71247941e6b626f5fafcba23104efd546f2c7935433d45e01345d84e6269aceb71247941e6b626f5fafcbae6d0fcc88fb250aa6b1713c1cf0d8fc975ee66893b22ae49cf1af08b3ae0f129adc50c4acba94b4ecfc355ff6a007c4163756390bd54304019b98c40f34b62771976d116d359ab5d4c5c032f6dd654503dbd8d6ed0de4c49326bd6a681ca2ea0858cf37cafb643473afbe53a9e7a6f599cc28304d76b27a075cde628f0cbc4bee3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b85521260af755d8e134c9e7ddaeae921b3a3f951c6a21301622f9c386fbf849901321260af755d8e134c9e7ddaeae921b3a3f951c6a21301622f9c386fbf849901329f9db89b411fa992589ca705573317b55babf434a0f3bf0dfa803b52fe220a329f9db89b411fa992589ca705573317b55babf434a0f3bf0dfa803b52fe220a3be59187d60178d3a538995e56a7705575a11326c991103f2dbbac97f164946e4884083c011b5c1f5623e05a0646e0c1b2292b42b017ff5265e2efb962d9aa333cec76e729735e224e8809f660842c586000a841ffe08c0efeb1b5deec89fe1cde3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b85529f9db89b411fa992589ca705573317b55babf434a0f3bf0dfa803b52fe220a329f9db89b411fa992589ca705573317b55babf434a0f3bf0dfa803b52fe220a3e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b85529f9db89b411fa992589ca705573317b55babf434a0f3bf0dfa803b52fe220a329f9db89b411fa992589ca705573317b55babf434a0f3bf0dfa803b52fe220a3217252544db51e17ccc483403ccec45e188a82aef65a2774c1eaa584e1f86d9f217252544db51e17ccc483403ccec45e188a82aef65a2774c1eaa584e1f86d9f547facf388ca16ea6431cd778c696e1d5f3cf3e34573dda9199faecab2ad7136547facf388ca16ea6431cd778c696e1d5f3cf3e34573dda9199faecab2ad713600b4b80fcbb0ad6d59f65e05766507dc6526c1eedbd0aba0e8b8ad7cfcfa8ef100b4b80fcbb0ad6d59f65e05766507dc6526c1eedbd0aba0e8b8ad7cfcfa8ef162059d0f492511d7d9fc3ed5858a8af7f443957af66e3cec8f15d6e3e767597776b21aa6aebb9ec8d87b8aabd9ffd8ea83b1e1a0a95fa3bc6c4b57e19fd3744c9b5a786b16755887eed30d7c75e3e1005cabb873902ca6b35d01d68930456609e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b85529f9db89b411fa992589ca705573317b55babf434a0f3bf0dfa803b52fe220a329f9db89b411fa992589ca705573317b55babf434a0f3bf0dfa803b52fe220a360c69be06e532866559758cc7d2de9feb25b12b8e9e94a9784986331da865e8b60c69be06e532866559758cc7d2de9feb25b12b8e9e94a9784986331da865e8b1f39c60c46198c5fca225c00a66662f26e4e54f90d287160232124885ef644b81f39c60c46198c5fca225c00a66662f26e4e54f90d287160232124885ef644b85e76ab69d2aea8acb81f63542426aa3c20537ba7686664ec176bc9f2ac789d565e76ab69d2aea8acb81f63542426aa3c20537ba7686664ec176bc9f2ac789d567029683a07a8af479fc0d55f458dfd3fff5d0155be5f5466b331a77523a13d907029683a07a8af479fc0d55f458dfd3fff5d0155be5f5466b331a77523a13d90d56409104648c698c974b408d501df9e654fedd8c7b7aa220b23662cb8795bcdd56409104648c698c974b408d501df9e654fedd8c7b7aa220b23662cb8795bcd74ea5501726c39ad5932f7d777e106e2dc2674c8950273f4ccca21a4590ebd5c74ea5501726c39ad5932f7d777e106e2dc2674c8950273f4ccca21a4590ebd5cdcc4654e3911986e8db4c114974da0a678cbe9c7bff75020ec893e51fa13fdf8dcc4654e3911986e8db4c114974da0a678cbe9c7bff75020ec893e51fa13fdf808812acfe61c6c5c8ea817da7e3b8bc6432d05b447a2c101a3015550e034a85808812acfe61c6c5c8ea817da7e3b8bc6432d05b447a2c101a3015550e034a8585c545e142eff216df0631ea86fd1b7f86f4b90b2340d10ee46c2194e8067f764c154c7fa5626181b78b484a1495765e99e9373c11be6051947f2f94fd8f8efe8eee5e36406f8e80f3741a3388ee9f4600f34d6d6792dbde3afc83d14691740607fd44480399416a57b620a38f49cee3af04193abee3f27a8f7ab2abe8fb2019cfe12c6e1179611e357355f7988094e90ccdf52bb9f7de0aaf8b2da8a39921c31f2084e42aff4de573897334df49a8b1c39f77d6fd4d27df1e408d896e78268a1b645e8d4e37fc8d462072ce5582c1fe54a234b12e747901a809b100189eb3b564eb6802385e6f7119dc68ce21cac5cc5e49329ee2d3197724ba8e4aade5d93b9bc19c0d8f741d9a3e4ecbbe5449e1e1f37d0eb3ce50ed69f1a9a6ef077bfb5932fa775a5152c54e5a410f042721753fa1a063098aa5d8bdc44f148ff1acd5966e1198cbbdf34109bfe6b443943d94880eb49f93417585507d7e7ccc5bf019c7be9f48070c4946dcb23b64b7b25806a4d0c7e50367609aeeda4a03c1ab3d3833c25ad455c680746b32958110d1882c1ee54305a2bc97d57ce801ff7c72ec93be125ad455c680746b32958110d1882c1ee54305a2bc97d57ce801ff7c72ec93be163284e9d73928e9459bc56b83df3cc7e7436abe0b27f9b417d6753c199b162a7249059f742f327a0087043959ce36eb04c6939f6f6e2bdec1321d15d71399cab6a33fc7b6ff7ca14e6ec0ac09c7dc5d07ad7233f4ab992b1b404bcbc981acf446a33fc7b6ff7ca14e6ec0ac09c7dc5d07ad7233f4ab992b1b404bcbc981acf44a94fd611f9c3d6eafee2517ac6db84a4463674a0d602af4d2c6756fd026402fd5722bc4c196494e6df43f0ae99c6a3c59ead52ddddc841e9cb9f927b8879cb7288f3caa548a73731308efec4f8f0eb46193e6e532af447e1a0fd6a55fc43168e061ca063709d2db3afc41486cd212e217fb69761f63fdcda751d26d0246f9fde8b3129f428f883f81186557ff7b98f7f95fcd05ae54cbd695361683d5b886c933b544a5513d3c6045f3d97456026e46b3d139fe40366671cbe12eca58b653a4c28c81e2db2d326681cc8e0b60490c5f888e77f008af33a4ce6989f9a62237372431bf8c4dd87841c2eac908817e0b31d7c3ec080d6605a00b928db5db8da0f63e38baf8e7aea8dbc79a483068e820fac350a21acf5693ae4d1d874cff7d9b49a../../../../usr/lib64/python3.6/site-packages/vcmmd/cgroup/idlememscan.cpython-36m-x86_64-linux-gnu.sorootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootvcmmd-8.0.13-1.vz8.src.rpmconfig(vcmmd)python3.6dist(vcmmd)python3dist(vcmmd)vcmmdvcmmd(x86-64) @@@@@@@@@@@@@@@@@@@      @/bin/sh/bin/sh/bin/sh/usr/libexec/platform-pythonconfig(vcmmd)libc.so.6()(64bit)libc.so.6(GLIBC_2.14)(64bit)libc.so.6(GLIBC_2.2.5)(64bit)libc.so.6(GLIBC_2.4)(64bit)libgcc_s.so.1()(64bit)libgcc_s.so.1(GCC_3.0)(64bit)libm.so.6()(64bit)libpthread.so.0()(64bit)libpython3.6m.so.1.0()(64bit)libstdc++.so.6()(64bit)libstdc++.so.6(CXXABI_1.3)(64bit)libstdc++.so.6(CXXABI_1.3.5)(64bit)libstdc++.so.6(GLIBCXX_3.4)(64bit)libstdc++.so.6(GLIBCXX_3.4.11)(64bit)libstdc++.so.6(GLIBCXX_3.4.18)(64bit)libstdc++.so.6(GLIBCXX_3.4.21)(64bit)libstdc++.so.6(GLIBCXX_3.4.9)(64bit)python(abi)python3python3-daemonpython3-dbuspython3-gobjectpython3-libvirtpython3-psutilrpmlib(CompressedFileNames)rpmlib(FileDigests)rpmlib(PartialHardlinkSets)rpmlib(PayloadFilesHavePrefix)rpmlib(PayloadIsXz)rtld(GNU_HASH)8.0.13-1.vz83.63.62.0.03.0.4-14.6.0-14.0.4-14.0-15.2-1ksm4.14.3a @`:@``E``s`+`H`H^:@\"\\@\@[k@[ͻ[@[)ZtRZhu@Z:PYYJY.@Y, @Y%uY$$@XX~@XƉX @Xf@XBXe@XXAX~@X|XwoXdX[@XY@XY@XY@XWXWXQ4@XQ4@XOXOXIK@XIK@XIK@XF@XF@XAb@X@X=mX<@X<@X43@X1@X.@X-X*X*X%X$a@X!@X lX&XX2@X2@X@X W@WW_@W WWڍ@W;W;W֘W֘WҤ@WҤ@W^@Wu@Wt@Wu WrfWrfWm Wk@Wi,@WgWc@WbWZWXWF@W=W3W)@WWW@W@WWVVVV@V@V@V2V͛@V&@V1V@VHVHVT@VV@V_VVVvVvV%@VV<@VuVuV}/V{@V{@V\:@VZVZVXEVXEVO @VLh@VI@VI@VG"@VEVD@VD@V@V<@V;DV;DU>Ux&UcU_@UY@UT@U>$VZ Auto Builder 8.0.13VZ Auto Builder 8.0.12VZ Auto Builder 8.0.11VZ Auto Builder 8.0.10VZ Auto Builder 8.0.9VZ Auto Builder 8.0.8VZ Auto Builder 8.0.6VZ Auto Builder 8.0.3VZ Auto Builder 8.0.2Andrey Drobyshev 8.0.1Konstantin 7.0.165Konstantin 7.0.164Konstantin 7.0.163Konstantin 7.0.162Konstantin Neumoin <> 7.0.157Konstantin Volkov 7.0.155-2Denis Silakov 7.0.155Konstantin Neumoin 7.0.154Konstantin Neumoin 7.0.153Konstantin Neumoin 7.0.152Konstantin Neumoin 7.0.150Konstantin Neumoin 7.0.149Konstantin Neumoin 7.0.148Konstantin Neumoin 7.0.147Andrey Bondrov 7.0.146-2Konstantin Neumoin 7.0.146Konstantin Neumoin 7.0.145Konstantin Neumoin 7.0.140Konstantin Neumoin 7.0.139Konstantin Neumoin 7.0.138Konstantin Neumoin 7.0.137Konstantin Volkov 7.0.136-2Konstantin Neumoin 7.0.136Konstantin Neumoin 7.0.135Konstantin Neumoin 7.0.134Konstantin Neumoin 7.0.133Konstantin Neumoin 7.0.132Konstantin Neumoin 7.0.131Konstantin Neumoin 7.0.130Konstantin Neumoin 7.0.129Konstantin Neumoin 7.0.128Konstantin Neumoin 7.0.127Konstantin Neumoin 7.0.126Konstantin Neumoin 7.0.125Konstantin Neumoin 7.0.124Konstantin Neumoin 7.0.123Konstantin Neumoin 7.0.122Konstantin Neumoin 7.0.121Konstantin Neumoin 7.0.120Konstantin Neumoin 7.0.119Konstantin Neumoin 7.0.118Konstantin Neumoin 7.0.117Konstantin Neumoin 7.0.116Konstantin Neumoin 7.0.115Konstantin Neumoin 7.0.114Konstantin Neumoin 7.0.113Konstantin Neumoin 7.0.112Konstantin Neumoin 7.0.111Konstantin Neumoin 7.0.110Konstantin Neumoin 7.0.109Konstantin Neumoin 7.0.108Konstantin Neumoin 7.0.107Konstantin Neumoin 7.0.106Konstantin Neumoin 7.0.105Konstantin Neumoin 7.0.104Konstantin Neumoin 7.0.103Konstantin Neumoin 7.0.102Konstantin Neumoin 7.0.101Konstantin Neumoin 7.0.100Konstantin Neumoin 7.0.99Konstantin Neumoin 7.0.98Konstantin Neumoin 7.0.97Konstantin Neumoin 7.0.96Konstantin Neumoin 7.0.94Konstantin Neumoin 7.0.93Konstantin Neumoin 7.0.92Konstantin Neumoin 7.0.91Konstantin Neumoin 7.0.90Konstantin Neumoin 7.0.89Konstantin Neumoin 7.0.88Konstantin Neumoin 7.0.87Konstantin Neumoin 7.0.86Konstantin Neumoin 7.0.85Konstantin Neumoin 7.0.84Konstantin Neumoin 7.0.83Konstantin Neumoin 7.0.82Konstantin Neumoin 7.0.81Konstantin Neumoin 7.0.80Konstantin Neumoin 7.0.79Konstantin Neumoin 7.0.78Vladimir Davydov 7.0.77Vladimir Davydov 7.0.76Vladimir Davydov 7.0.75Vladimir Davydov 7.0.74Vladimir Davydov 7.0.73Vladimir Davydov 7.0.72Vladimir Davydov 7.0.71Vladimir Davydov 7.0.70Vladimir Davydov 7.0.69Vladimir Davydov 7.0.68Vladimir Davydov 7.0.67Vladimir Davydov 7.0.66Vladimir Davydov 7.0.65Vladimir Davydov 7.0.64Vladimir Davydov 7.0.63Vladimir Davydov 7.0.62Vladimir Davydov 7.0.61Vladimir Davydov 7.0.60Vladimir Davydov 7.0.59Vladimir Davydov 7.0.58Vladimir Davydov 7.0.57Vladimir Davydov 7.0.56Vladimir Davydov 7.0.55Vladimir Davydov 7.0.54Vladimir Davydov 7.0.53Vladimir Davydov 7.0.52Vladimir Davydov 7.0.51Vladimir Davydov 7.0.50Vladimir Davydov 7.0.49Vladimir Davydov 7.0.48Vladimir Davydov 7.0.47Vladimir Davydov 7.0.46Vladimir Davydov 7.0.45Vladimir Davydov 7.0.44Vladimir Davydov 7.0.43Vladimir Davydov 7.0.42Vladimir Davydov 7.0.41Vladimir Davydov 7.0.40Vladimir Davydov 7.0.39Vladimir Davydov 7.0.38Vladimir Davydov 7.0.37Vladimir Davydov 7.0.36Vladimir Davydov 7.0.35Vladimir Davydov 7.0.34Vladimir Davydov 7.0.33Vladimir Davydov 7.0.32Vladimir Davydov 7.0.31Vladimir Davydov 7.0.30Vladimir Davydov 7.0.29Vladimir Davydov 7.0.28Vladimir Davydov 7.0.27Vladimir Davydov 7.0.26Vladimir Davydov 7.0.25Vladimir Davydov 7.0.24Vladimir Davydov 7.0.23Vladimir Davydov 7.0.22Vladimir Davydov 7.0.21Vladimir Davydov 7.0.20Vladimir Davydov 7.0.19Vladimir Davydov 7.0.18Vladimir Davydov 7.0.17Vladimir Davydov 7.0.16Vladimir Davydov 7.0.15Vladimir Davydov 7.0.14Vladimir Davydov 7.0.13Vladimir Davydov 7.0.12Konstantin 7.0.9Vladimir Davydov 7.0.8Vladimir Davydov 7.0.7Vladimir Davydov 7.0.6Vladimir Davydov 7.0.5Vladimir Davydov 7.0.4Vladimir Davydov 7.0.3Vladimir Davydov 7.0.2Vladimir Davydov 7.0.1- Make density default policy (Vyacheslav Trushkin ) - Set user cache limit after loading policy (Vyacheslav Trushkin )- Handle connecting to libvirtd error (Vyacheslav Trushkin )- Make dependency from libvirtd less strict (Vyacheslav Trushkin )- Add libvirtd as dependency for VCMMD (Vyacheslav Trushkin )- Initialize VEs using libvirt API only (Vyacheslav Trushkin ) - Make libvirt connection handling independent from Singleton (Vyacheslav Trushkin ) - Move qemu lookup functions to vcmmd.misc module (Vyacheslav Trushkin ) - Set slice params in Host.__init__() (Andrey Drobyshev ) - Use "max" instead of "-1" for memory.low infinity value (Andrey Drobyshev ) (#PSBM-101432) - Remove vz script (Vyacheslav Trushkin )- Avoid killing VCMMD by OOM-killer (Vyacheslav Trushkin ) - Introduce Dummy policy for debugging purposes (Vyacheslav Trushkin ) (#PSBM-130823) - Move setting user cache limit from vz script to LoadManager (Vyacheslav Trushkin )- Fix NUMA memusage calculation (Vyacheslav Trushkin ) - Ignore unmanaged qemu-kvm processes (Vyacheslav Trushkin ) - Rename VCMMD_MEMGUARANTEE_PERCENTS --> VCMMD_MEMGUARANTEE_BYTES (Andrey Drobyshev ) (#PSBM-127010)- PSBM-100832 (Andrey Drobyshev ) (#PSBM-100832) - PSBM-100832 (Andrey Drobyshev ) (#PSBM-100832) - PSBM-100832 (Andrey Drobyshev ) (#PSBM-100832) - PSBM-100832 (Andrey Drobyshev ) (#PSBM-100832) - PSBM-100832 (Andrey Drobyshev ) (#PSBM-100832) - PSBM-100832 (Andrey Drobyshev ) (#PSBM-100832) - PSBM-100832 (Andrey Drobyshev ) (#PSBM-100832) - PSBM-100832 (Andrey Drobyshev ) (#PSBM-100832) - PSBM-100832 (Andrey Drobyshev ) (#PSBM-100832) - PSBM-100832 (Andrey Drobyshev ) (#PSBM-100832) - PSBM-100832 (Andrey Drobyshev ) (#PSBM-100832) - PSBM-100832 (Andrey Drobyshev ) (#PSBM-100832) - PSBM-100832 (Andrey Drobyshev ) (#PSBM-100832) - PSBM-100832 (Andrey Drobyshev ) (#PSBM-100832) - PSBM-100832 (Andrey Drobyshev ) (#PSBM-100832) - PSBM-100832 (Andrey Drobyshev ) (#PSBM-100832) - PSBM-100832 (Andrey Drobyshev ) (#PSBM-100832) - PSBM-100832 (Andrey Drobyshev ) (#PSBM-100832) - PSBM-123638 (Andrey Drobyshev ) (#PSBM-123638) - PSBM-107798 (Andrey Drobyshev ) (#PSBM-107798) - PSBM-106039 (Denis Silakov ) - VSTOR-14930 VSTOR-14970 PSBM-101720 (Konstantin Neumoin ) (#VSTOR-14930 #VSTOR-14970 #PSBM-101720) - PSBM-101720 (Andrey Drobyshev ) (#PSBM-101720) - PSBM-101720 (Andrey Drobyshev ) (#PSBM-101720) - PSBM-101720 (Andrey Drobyshev ) (#PSBM-101720) - PSBM-101720 (Andrey Drobyshev ) (#PSBM-101720)- PSBM-100832 (Andrey Drobyshev ) (#PSBM-100832) - PSBM-100832 (Andrey Drobyshev ) (#PSBM-100832) - PSBM-100832 (Andrey Drobyshev ) (#PSBM-100832) - PSBM-100832 (Andrey Drobyshev ) (#PSBM-100832) - PSBM-100832 (Andrey Drobyshev ) (#PSBM-100832) - PSBM-100832 (Andrey Drobyshev ) (#PSBM-100832) - PSBM-100832 (Andrey Drobyshev ) (#PSBM-100832) - PSBM-100832 (Andrey Drobyshev ) (#PSBM-100832) - PSBM-100832 (Andrey Drobyshev ) (#PSBM-100832) - PSBM-100832 (Andrey Drobyshev ) (#PSBM-100832) - PSBM-100832 (Andrey Drobyshev ) (#PSBM-100832) - PSBM-100832 (Andrey Drobyshev ) (#PSBM-100832) - PSBM-100832 (Andrey Drobyshev ) (#PSBM-100832) - PSBM-100832 (Andrey Drobyshev ) (#PSBM-100832) - PSBM-100832 (Andrey Drobyshev ) (#PSBM-100832) - PSBM-100832 (Andrey Drobyshev ) (#PSBM-100832) - PSBM-100832 (Andrey Drobyshev ) (#PSBM-100832) - PSBM-100832 (Andrey Drobyshev ) (#PSBM-100832) - PSBM-123638 (Andrey Drobyshev ) (#PSBM-123638) - PSBM-107798 (Andrey Drobyshev ) (#PSBM-107798) - PSBM-106039 (Denis Silakov ) - VSTOR-14930 VSTOR-14970 PSBM-101720 (Konstantin Neumoin ) (#VSTOR-14930 #VSTOR-14970 #PSBM-101720) - PSBM-101720 (Andrey Drobyshev ) (#PSBM-101720) - PSBM-101720 (Andrey Drobyshev ) (#PSBM-101720) - PSBM-101720 (Andrey Drobyshev ) (#PSBM-101720) - PSBM-101720 (Andrey Drobyshev ) (#PSBM-101720)- Switch to python3 and Vz8 (#PSBM-100832) - Remove limit for kmem.tcp, kmem.udp (Konstantin Neumoin ) (#VSTOR-14930 #VSTOR-14970)- Update Copyright (Igor Sukhih )- Add new option for cache size configuration for storage services. (Konstantin Neumoin ) (#PSBM-94761) - Fix typo (Konstantin Neumoin )- Re-raise last exception. (Konstantin Neumoin ) - Fix unhandled exception. (Konstantin Neumoin ) (#PSBM-94621)- Add logging. (Konstantin Neumoin ) (#PSBM-94621) - Revert "Temporary disable storage policy" (Konstantin Neumoin ) - Temporary disable storage policy (Konstantin Neumoin )- Revert "policies: Disable THP in NoOpPolicy" (Andrey Ryabinin ) - scripts/vz: set swappiness to zero for vstorage cgroup (Andrey Ryabinin ) (#PSBM-89802)- Technical rebuild, see #VSTOR-16423- policies: Disable THP in NoOpPolicy (Andrey Ryabinin ) (#PSBM-83199)- Improve storage policy (#PSBM-84694 #PSBM-84943) - Fix log lavel- fix typo - Fix: correct drop VE from balance list (#PSBM-81242)- apply memory.cache.limit_in_bytes for vStorage cgroup (#PSBM-78248)- fix update decrease memory limit in runtime (#PSBM-79499) - define target/protection- fix dimension - add zoneinfo to node attribute (#PSBM-68779) - add mem free to node stats (#PSBM-68779)- fix memusage in case without swap (#PSBM-68779) - add cli for report memory usage (#PSBM-67135) - fix indentation- check prlsdkapi import before try to connect to prl-disp service #VZOS-1042 - Switch to systemd specific OOM adjustment mechanism #PSBM-56344 (Igor Sukhih )- Enable hardened build, see #PSBM-58107- cosmetic fix - fix vz script not fail in case stopped libvirtd (#PSBM-65325) - move init prl srv- version bump to 7.0.144- add workaround to disable tcache for vstorage (#PSBM-64068) - add option for error message in get_rss- add forgotten read to low memory event handler (#PSBM-62266)- Update copyrights (Andrey Bondrov )- Add rebranding macroses, see #PSBM-58317 (Konstantin Volkov ) - Drop systemd unit installation - moved to sources, see #PSBM-58317 (Konstantin Volkov )- Drop systemd unit installation - moved to sources, see #PSBM-58317- not rely to libvirt version when parse qemu cmdline (#PSBM-60274) - catch Error exception in nr_cpus & set_config (#PSBM-60274) - vz script swap and vram zero-value fix (Derbyshev Dmitry )- set-policy fixes (Derbyshev Dmitry ) (#PSBM-59885) - minor cleanup - path for vstorage- dont update stats on deactivate (#PSBM-59222)- remove workers - remove request decorator - log possible typos and missing cgroups (Derbyshev Dmitry ) (#PSBM-58041) - print script's stdout (Derbyshev Dmitry ) (#PSBM-58041)- Common format for services config fix (Derbyshev Dmitry ) (#PSBM-58041)- Common format for services config (Derbyshev Dmitry ) (#PSBM-58041)- vcmmdctl current-policy rework (Derbyshev Dmitry ) (#PSBM-58420) - vcmmdctl get-current-policy renamed to current-policy (Derbyshev Dmitry ) (#PSBM-58420) - GetPolicyFromFile dbus call added (Derbyshev Dmitry ) (#PSBM-58420) - pass config filename during VCMMDConfig creation (Derbyshev Dmitry ) (#PSBM-58420) - log args for functions called via dbus (Derbyshev Dmitry ) (#PSBM-58015)- add cli for policy switching (#PSBM-57909) - move json load under try - fix max guarantee size for vstorage- fix ram_size in vz script - update default guarantee in update_ve_config - fix syntax error - set auto guarantee for VM in vcmmd (#PSBM-55018) - handle ValueError in vstorage-config parse- add vstorage config to setup.py- update file list in .spec (#PSBM-57684)- move vstorage limits in separate config (#PSBM-57684) - dont set node list if nodes is None- try to pin VE on each step of balance - remove set_memstats_period in init VM- subscribe balloon policy to low memory notification - fix block stats - fix count name - fix exception handling- cosmetic fix in numa migration accounting - don't fail if we already deactivated in counter increment - dont lookup qemu pid each get_rss call- add get_rss (#PSBM-57330)- add low memory evens count to policy stats - minor cosmetic fix - drop VE from stats on deactivate- fix apply_changes (#PSBM-57023) - increase epoll timeout (#PSBM-57023) - polling by EPOLLIN flag (#PSBM-57023) - add policy.shutdown in load manager (#PSBM-57023) - add workaround to avoid notification flood (#PSBM-57023) - add numa_low_memory_callback to base NUMA policy (#PSBM-57023) - rework low memory callback registration (#PSBM-57023) - add low memory notification (#PSBM-57023)- set memory_migrate before set affinity- dont re-set affinity if it's not changed (#PSBM-56357) - dont use numa_migrate for ct (#PSBM-56643)- lookup and activate vstorage slice in vz script (#PSBM-49711 #PSBM-48754)- fix report ksm/numa policy in config (#PSBM-55578)- disable balloon policy by defautl - avoid THP scanning in the guest (Derbyshev Dmitry ) (#PSBM-55578) - misc. fixes (Derbyshev Dmitry ) - avoid KSM scanning in the guest (Derbyshev Dmitry ) (#PSBM-55578) - cpu_features added (Derbyshev Dmitry ) (#PSBM-55578)- increase oom guarantees for system.slice (#PSBM-56347)- log dbus requests (Derbyshev Dmitry ) - Revert "log bdus requests" (Derbyshev Dmitry )- fix policy counters (#PSBM-56090)- catch NoSuchProcess in lookup_qemu_machine_pid (#PSBM-56026)- use memory.numa_migrate for pinning CT memory (#PSBM-54455) - Revert "temporary remove guaranty type from config"- fix update stats for vm (#PSBM-52255) - fix check name in ve/base (#PSBM-49711) - log bdus requests (Derbyshev Dmitry ) (#PSBM-55150)- remove numa_enforce_settings from activete/set_config - temporary remove guaranty type from config (#PSBM-55597)- pretty output for get_current_policy (Derbyshev Dmitry ) (#PSBM-55022) - add guarantee_type to ve config (#PSBM-49129 #PSBM-55018) - add numa_configured check for VEs (Derbyshev Dmitry ) (#PSBM-53459) - fix logic in ve_config nodelist and cpulist default values (Derbyshev Dmitry )- do not get unapplied values from prl-disp config in vz script (Derbyshev Dmitry ) (#PSBM-55034)- split CT class (#PSBM-49711)- add nr_cpus field (Derbyshev Dmitry ) (#PSBM-51444)- ignore empty nodes (#PSBM-55090)- BUGFIX Teach vcmmd to tolerate empty NUMA node list #PSBM-55090 Previous commit 21f9e69ad017c2981047ee2db8c1d7eb011d47b7 was intended to fix this, but it would work for lines containing whitespace characters, thus replacing "not" with "isspace()" call. (Pavel Vokhmyanin ) - set cgroup limits on CT's registration (Derbyshev Dmitry ) (#PSBM-54957) - move ve.active check to update_ve_config (Derbyshev Dmitry ) (#PSBM-54957) - common code for policies moved to policy.py (Derbyshev Dmitry ) (#PSBM-54957)- catch libvirt error in set_node_list- add thptune option for host - cgroup limit_in_bytes value correctly changed after CT restore (Derbyshev Dmitry ) (#PSBM-54719)- use aliace "performance" in config - move unpin ve to policy - Revert "get ves list in update_ve" - get ves list in update_ve- add workaround for libvirt 2.4 (#PSBM-54553) - reset cgroups only if ve was managed by policy - use LIVE flag instead of CURRENT - don't tune memory_migrate each time - fix cpu number calculation- add alias for policy- fix vz script- add node_list and cpu_list into ve_config (#PSBM-53459) - misc: parse_range_list on empty string - add support for string values in config (#PSBM-53459)- add walkaround for cpu/node set (#PSBM-52315)- wait for virtuozzo.target on vcmmd start in vz script (#PSBM-48046)- report policy stats in vcmmdctl (#PSBM-52152)- cosmetix fix - set memory.low for machine.slice to infinity (#PSBM-52330)- cosmetix fix - set memory.low for machine.slice to infinity (#PSBM-52330)- set_mem on config update (#PSBM-52254)- fix raise in load manager queue (#PSBM-52181)- Catch ve_name_already_in_use error in init script. (#PSBM-48046)- add "config" option for vcmmdctl - move and rename cpu_counting method form numa to host module - fix mem stats for node - fix log level in set_node_list- switch to new vz memory policy (#PSBM-51051) - mark config file as "config(noreplace)"- fix raise in unregister VE vs policy processing (#PSBM-51985) - add restriction for nodes without NUMA (#PSBM-51051) - cosmetic, remove useless loging - remove ve_list and ve_list_all from policy (#PSBM-51051) - update NoOpPolicy (#PSBM-51051) - fix race ldmgr (#PSBM-51051) - fix race in stats module (#PSBM-51051) - rework NUMA stats collecting and storing (#PSBM-51051) - add vcmmd:env (#PSBM-51051) - fix dimensions in mem stats (#PSBM-51051) - add method for tune memory_migrate option (#PSBM-51051) - cosmetic fix (#PSBM-51051)- fix import (#PSBM-51927)- add "Controlles" section to config (#PSBM-51852) - add conflict with ksm pkg (#PSBM-47473)- Add workaround for psutil<2.0.0 (#PSBM-51738)- fix error handling in ksmtune - stop workers by exception - RQueue improving - drop request decorator for get_quotas - add KSM class to policy (#PSBM-47473) - rework update/balance task schedule in load manager (#PSBM-47473) - add new RQueue class for LoadManager (#PSBM-47473) - add ksmtune method to Host class (#PSBM-47473) - fix logic in set_mem (#PSBM-47473) - drop set_memstats_period (#PSBM-47473) - split update stats methods (#PSBM-47473) - fix parametr type for set_node_list - ldmgr: NumaPolicy subclass of Policy added - ve: add NUMA related stats and methods from cgroups - rework VE method for get/set numaset (#PSBM-47472) - cgroups: CpuCgroup class added - cgroups: MemoryCgroup stat reporting functions added - cgroups: CpuSetCgroup added - numa: Numa class added - numa: Node and NodeStat classes added - numa: Cpu and CpuStat classes added - numa: initial commit - util/misc: add range list functions - vcmmd: multiple policies support - policy: keep list of all ves- Add VCMMD_VE_SERVICE ve type- add last_update to stats (#PSBM-48681)- Add license information (#PSBM-44847) - Drop beancounter cgroup- vcmmdctl: report ve_quotas (#PSBM-48663) - ve: Remember last target and protection set for each VE - vcmmd: report missing stats via vcmmdctl (#PSBM-46796 #PSBM-48663)- introduce default balance interval for policy (#PSBM-48679) - move set stats update period to separate method (#PSBM-48679)- default policy should be NoOp (#PSBM-48691)- ve: ct: Adjust memory.high asynchronously - ve: ct: Drop VE.CT.SoftMemTarget config option - util: logging: add flush for LoggerWriter- ve: ct: Handle containers under machine.slice (#PSBM-48628)- take in account registered but not activate VE (#PSBM-48478) - increase mem overhead - Take in account current balloon size before set new value (#PSBM-48383)- drop "commited" from stats - rework communication with libvirt and collect stats (#PSBM-47580) - util: libvirt: Carefully remove stale counters from memstats - fix set_mem- move quota calculation to policy - drop StaticPlolicy- ldmgr: add host parameter for balancing - host: initial commit - add vm_types to garanty dict (Konstantin Neumoin ) - fix protection size - Drop unused import of Error in ve/__init__.py - Move VEStats to ve/base.py - stats: refactor stats class - return from set_mem immediately if desired size equal actual - report current policy via vcmmdctl (#PSBM-46796)- cli: pretty output a little - set correct ve_type for linux/windows vm - add two new VM types - increase valid timeout for stats update- util: libvirt: Ignore outdated memory stats from virtio balloon - ve: ct: Export swapin and swapout stats if available - ve: ct: Fix memavail calculation- change default policy to WSS (#PSBM-46895) - rename DEFAULT_POLICY- Store policy data in dict inside base class Policy- add shared memory to mem_avail- util: libvirt: Fix lookup qemu-kvm pid by VM name (#PSBM-46277)- Zap WSS and WFB policies- vcmmd:scripts/vz: bugfix for CT - Zap memtotal VE stats counter - util: libvirt: Do not log info messages on reconnect attempts - util: libvirt: Do not log error on connection failure- scripts: vz: Fail gracefully - ve: Add logging helpers - ve: Prefix debug output with function name - Rename VE.update -> VE.update_stats - idlememscan: Drop histograms support - Drop numpy requirement- Do not mangle VE config (#PSBM-45717) - cli: Fail gracefully if vcmmd service is not running - Add init script for restoring Virtuozzo containers and VMs (#PSBM-44917) - Reintroduce init script support - Zap saving VE configuration to tmpfs - Move VE related checks from vcmmd.ldmgr to vcmmd.ve - Do not abort VE activation if failed to apply config (#PSBM-44784) - cli: Do not group VE config options - Remove unused import ve.Error from ldmgr.base - Fix 'Started' not printed to log when the daemon starts - Add /etc/vz/vcmmd.d/vz to the package- ve: ct: Fix huge memfree on container start - Add VE stats for host mem and swap used - Increase error logging verbosity - cgroup: Make cgroup path and abs_path public members - Define PAGE_SIZE in util.limits - wfb policy: Make sure quota is always between guarantee and limit - Reduce expected VM overhead from 200MB to 32MB - Rename config VE.VM.QEMUOverhead -> VE.VM.MemOverhead - Add video RAM size to VE config - Add flags argument to register, activate, and update operations - Rename NO_SPACE error to UNABLE_APPLY_VE_GUARANTEE- ve: stats: Keep all stats in a dict - Merge MemStats and IOStats - Zap mem_stats.wss - Zap VEConfig.effective_limit - ve: Drop InvalidVENameError and InvalidVETypeError - Cleanup VE config handling - Use the same VE type name constants in both service and client - Use the same error class in both service and client - Replace Logging.Debug config option with Logging.Level - Drop -d command line option - Allow to set VCMMD logging level via vcmmdctl - Drop vcmmdctl dump - Supply policy with the right logger in the abstract class - ldmgr: Calculate mem_avail on each rebalancing - Take into account VE overhead when checking guarantees - util: libvirt: Lookup balloon path on demand - Rename VE.policy_priv -> policy_data - ldmgr: Rename update_ve -> update_ve_config - Add policy callback to notify about VE config updates - Add policy callback to notify about stats updates - Move active VE list management to load manager policy - Always return exactly -1 for absent stats - Increase verbosity of debug output - Make sure all VE stats are always present - Cleanup config output - Rename LoadManager loggers - Do not dump all config parameters to the log unless in debug mode - Move logging related to VE state changes to VE class - Insert assertions checking if VE is active where appropriate - Do not require VE.set_config after VE construction - Revert "ldmgr: Rate limit VE stats dumping in debug mode" - Remove WSSSoftPolicy - Rename VE.update_stats -> VE.update - Merge set_mem_protection and set_mem_target VE methods - Do not suppress error message if failed to load policy - Separate underlying VE implementation from VE handling logic - Assume that all policies need periodic stats updates - Drop idle VE memory tracking infrastructure - cgroup: memory: turn _IdleMemScanner into a singleton - Prefix ve types with VE_TYPE_- ve: ct: Catch IOError in set_mem_target - Use a more reliable way to lookup QEMU machine cgroup (#PSBM-45267) - ve: Get rid of trivial properties - Prefix all vcmmd error constants with VCMMD_ERROR_ - util: libvirt: Do not lose stack trace when re-raising error - Revert "Reduce QEMU process overhead estimation from 200MB down to 32MB" - Revert "Account KSM shared pages when calculating memory available for VEs" - Revert "Don't wrap libvirt attribute if it's not callable" - wss policy: use VE.mem_stats.memavail if available - Revert "wss policy: collect x-stats from balloon if its posible" - Add committed_as to memory stats - Add memavailable to memory stats - util: libvirt: Make memoryStats report stats unknown to libvirt/qemu - util: libvirt: Move connection checking to decorator - Factor out ve stats update - Report actual, memtotal, and memfree for containers - Rename available/unused mem stats to memtotal/memfree - cgroup: Do not pass full file name- wss policy: init AbstractVE._actual and wss in constructor - wss policy: fix debug message - wss policy: fix constant - wss policy: fix policy for CT - ldmgr: Do not rate limit debug dumps by default - wss policy: do not dump ve name for the second time - wss policy: add report stats source for debuging - wss policy: collect x-stats from balloon if its posible - wss policy: add alias for mem stats counters - Don't wrap libvirt attribute if it's not callable- ldmgr: Rate limit VE stats dumping in debug mode - Move idle memory tracking parameters to VE config section - ldmgr: Cleanup initialization - ldmgr: Zap constants for default configs - Unify VE stats dumping in debug mode - Account KSM shared pages when calculating memory available for VEs - Reduce QEMU process overhead estimation from 200MB down to 32MB - Dump all loaded config parameters to log - ve: vm: Move all constants to config- WSSSoftPolicy: add new policy - WSSPolicy: rename _VEPrivate -> AbstractVE - WSSPolicy: fix logging- Set memcg oom_guarantee for system slices (#PSBM-44683)- Rename WeightedFeedbackBasedPolicy -> WFBPolicy - policies: Do not pass logger around - WSSPolicy: additional logging for trace problem in policy - config: Cache retrieved values - config: Cleanup option values retrieval - Move load manager parameters to config - Rework calculation of host memory reservation - Drop code enabling tcache/tswap - Use memcg/memory.high for setting memory target for containers - Set memcg/memory.oom_guarantee for VMs and CTs (#PSBM-44450) - ve: Zap _set_mem_max, _set_swap_max - Add command to dump info about all running VEs to the log - Add pygobject2 and libvirt-python to dependency list (#PSBM-44062)- add new ve propery memory overhead (#PSBM-40830) - WSSPolicy: add support for CT- Allow to set debug logging level via config - policies: wfdbk: Fix div/0 (#PSBM-43855) - split logic for diff guests in diff classes- vcmmd:WSSPolicy: fix gap calculation - vcmmd:WSSPolicy: move align to decorator - vcmmd:WSSPolicy: set default guest type - Escape name of VM machine slice cgroup properly (#PSBM-43766) - ve: Simplify error reporting - cli: Output decimal places of mem value only if it's small- rpc: dbus: Add IsVEActive method- Make sure daemon terminates on unhandled exception - cli: Drop the semicolon in output - cli: Allow to specify units in which memory values are reported - ldmgr: Fix crash in case VE state file is corrupted (#PSBM-43660)- policies:WSSPolicy: add support linux guest in policy - policies:WSSPolicy: add VmGuestSession class for exec in guest - policies:WSSPolicy: fix delta calculation - Rename config file to /etc/vz/vcmmd.conf - Drop init scripts support - ldmgr: Move complex init to worker thread - ldmgr: Store VE configuration in tmpfs (#PSBM-43114) - rpc: dbus: Assure all input arguments are of normal Python types - Improve message for NO_SPACE error - Improve message for invalid VE configuration error - Update file list- ldmgr: Allow policy to disable features it does not need - policies: wfdbk: Fix thrashing detection (#PSBM-43582)- vm: Roundup hotplug memory to 128MiB (#PSBM-43290) - policies: wfdbk: Scale unused by quota, not limit - policies: wfdbk: Dump VE stats in debug mode - Resurrect no-op policy - ldmgr: Increase host reservation on small machines - policies: wfdbk: make sure sum quota <= mem avail - ldmgr: Allow policy to return quotas whose sum > mem avail - ldmgr/ve: Do not save last quota - vcmmd:ldmgr:policies:WSSPolicy: increasing balloon size should not be too fast (#PSBM-40757) - Add new policy WSSPolicy (#PSBM-40757) - vcmmd:ve:vm: add new field for guest mem stats (#PSBM-40757 #PSBM-40013)- rpc: dbus: Add GetVEConfig method - cli: Rename --guar to --guarantee - Do not import load manager code when running client - Move errno to upper level - rpc: dbus: Split into client and server parts - Encapsulate rpc proxy code in vcmmd.rpc.dbus.RPCProxy- ldmgr: Fix broken policies package - ldmgr: Remove stale import- Allow to choose load manager policy via config parameter - Add config file - Add singleton metaclass - Include vcmmd config into the package- ct: Set udp/tcp limits - ct: Do not use memory.high for setting memory target - ve: Do not provide MemStats.actual for containers - ve: Fix comment to ve.Config.guarantee - ve: Print Error class name to log - ve: Drop VE_TYPE_NAME - Add libvirt reconnect support- policies: wfdbk: Avoid div/0 due to zero quota - policies: wfdbk: Assure quota is always an integer - Add logger to Policy class - Cleanup daemon main function code - Make logging per module - Add gitignore- Use host memory size as the limit for 'unlimited' containers - Do not fail to start 'unlimited' containers - cli: Report limit >= INT64_MAX as 'max' - Restore VZ containers on startup - Allow to run custom scripts on daemon startup - Cleanup logging functions invocation - Cleanup rpc server code - Include VZ startup script into the package- policies: wfdbk: Increase VE quotas in case there is free memory- Drop force argument to register and update VE operations - Enable tcache/tswap - Configure memory reservations for system slices - Introduce weighted feedback-based policy - VM: modify setting memory function to use appropriate libvirt API - cgroup: Fix idle memory portion reporting - Move VE register/update guarantee check to the load manager core - Rework load manager balancing procedure - Do not pass inactive VEs to load manager policy's balance method - Make load manager pass available memory size to policy - ve: Zap __need_apply_config - ve: Add method for getting idle memory estimate - Rework memory cgroup idle stats getter API - Simplify interface for configuring current memory allocation of a VE - Elaborate VE statistics - cgroup: Make read/write helpers 'protected' - Fetch IO statistics for virtual machines - Fetch IO statistics for containers - Add helper class to work with blkio cgroups - Introduce VE IO statistics - Always force absolute_import - Introduce static load manager policy - Improve comment to no-op load manager policy - Introduce idle memory tracking for memory cgroups - Fix systemd service missing Install section (Ashley ) - ve: Add more comments to the code - ve: Make set_mem_{low,high,max}, and set_swap_max methods 'protected' - Update spec file for building idlememscan- cli: Increase number of symbols for name to accomodate UUID - Check that VE memory cgroup exists on activation - Reference VMs by UUID instead of name- Replace CommitVE method with ActivateVE and DeactivateVE - ve/vm: Move libvirt memory stats activation to commit stage - Implement basic guarantee check on VE registration and config update - Move RPC code to a separate package - Split util module - s/overwrite/override in comments - Rename ElementaryPolicy to NoOpPolicy - Update VE stats before checking if a VE can be registered/updated - Allow load manager policy to trigger rebalancing after timeout - Implement set_mem_low method for virtual machines - Fetch memory statistics for virtual machines - Fetch memory statistics for containers - Introduce VE memory statistics - Improve command line interface - Require python-psutil- Drop max_limit config parameter- Add basic support of VMs- Rework vcmmd so as it could support both VMs and CTs. This zaps all existing logic. It will be recovered later.- config: tune {ANON,FILE}_WS_SLACK default values- memcg: fix high demand detection- base: do not inform about loading/saving state unless debugging - memcg: reserve some memory for system.slice and user.slice - config: rename MEM_IDLE_SAMPLING_RATIO -> MEM_IDLE_SAMPLING - config: drop MEM_IDLE_THRESH - config: drop HIGH_WMARK_{RATIO,MAX}- idlemem: always warn about scanner lags - config: warn about unknown options - config: do not try to load config if there is no such section - config: use error log level for reporting config loading problems - config: do not warn about absent options - main: allow to specify config section to load - memcg: allow to disable dynamic balancing - memcg: make MemCg class private - Rename core -> base- idlememscan: fix crash on kpageflags/kpagecgroup read - idlememscan: improve rw error reporting - config: fix {ANON,FILE}_WS_SLACK names in the conf file - config: sanitize config parameters - memcg: fix MEM_STALE_SHIFT usage - memcg: use MEM_TOTAL as max limit - memcg: cache effective entitiy limit- config: tune parameters related to wss estimation once more - memcg: smooth dip of wss curve - memcg: cleanup __update_demand- systemd: enable coredump generation - memcg: propagate IOError.errno to Error - core: do not output errcode on error - vcmmdctl: improve error reporting- Restart vcmmd.service on upgrade- memcg: fix debug output - util: make strmemsize output len <= 5 chars - memcg: fix distribution when undercommitted - memcg: make overcommitted case distribution fair- memcg: fix sum demand overflow for unlimited containers - memcg: cache some config params - util: strmemsize: add Gigabyte suffix - core: fix LoadConfig.strmemsize output for unlimited containers- memcg: rename wss -> demand - memcg: take into account pgpgin while estimating max wss - sysinfo: reintroduce PAGE_SIZE - config: tune idle/stale age defaults- idlememscan: fix leak of PyArray data in py_result - idlememscan: pack results for anon/file in tuple - idlememscan: do not include root to the final result- memcg: do not calculate memcg path on each read/write - memcg: optimize wss estimation - util: add constants for int64/uint64 max - memcg: fix effect of {ANON,FILE}_IDLE_AGE config - core/memcg: allow to register nested cgroups - idlemem: optimize result generation - Require numpy- core: fix crash on unregistering stale entities (#PSBM-41097) - main: return non-zero on failure- idlememscan: fix idle mem tracking thread breakage in daemon mode- Move to src.openvz.org- idlemem: do not warn about small lags - idlememscan: cleanup MAX_AGE definition - memcg: add min for idle age - memcg: limit max age - memcg: improve debug output - rpc: do not dump request/response to log - config: use logger.info to inform about loading config - core: use logger.info to inform about loading/saving state - memcg: rework balancing logic - memcg: zap BaseMemCgManager.__init__ - memcg: rename TRACK_UNUSED_MEM -> TRACK_IDLE_MEM - memcg: update mem_unused only when idle_stat is actually updated - core: add AbstractLoadManager._entity_iter method - idlemem: do not crash if failed to load idlememscan - config: set MEM_IDLE_DELAY default to 5 seconds - memcg/idlemem: use sampling while estimating idle memory size - config: cleanup and simplify config loading - sysinfo: lookup memcg mount at runtime - memcg: drop MAX_RESERVATION - config: do not abuse sections - idlemem: warn once if lagging - idlemem: do not dump idle size estimates to log - memcg: scale idle size instead of using absolute values - idlememscan: return result in bytes - idlememscan: do not count unevictable pages - idlememscan: handle module load error gracefully - idlememscan: do not reopen files on each iter - idlememscan: add ability to set sampling - idlememscan: return full idle history - idlememscan: parse zoneinfo to get end pfn - idlememstat: count total number of pages scanned - Rename kpageutil -> idlememscan - idlemem: move most of scanner logic to kpageutil - memcg: move idle mem tracking in a separate module - util: add Singleton decorator - memcg: do not trigger update periodically - kpageutil: track idle page age history - kpageutil: /proc/kpageidle -> /sys/kernel/mm/page_idle/bitmap - kpageutil: rename kpf_{open,read,write} to do_{open,read,write} - kpageutil: clarify count_idle_pages return type - kpageutil: rename count_idle_pages_per_cgroup to count_idle_pages - kpageutil: pass format string to PyErr_Format- memcg: set sock buf limit - memcg: limit container memory demand to host RAM - memcg: set mem high to MAX_LIMIT if mem limit equals MAX_LIMIT - core: fix LoadConfig.MAX_LIMIT- Fix coding style - memcg: zap memory guarantees - memcg: set memory.high - config: move idle tracking params to memcg section - memcg: drop memory.low_limit_in_bytes support- config: set core.mem_inuse_time to 300 by default - memcg: use memory.low if available- core: improve logging format of memory values - main: handle RPCServer init error properly - cli: allow to use common suffixes for memory parameters - cli: do not reset parameter to default if not given - memcg: allow to disable idle mem tracking from config- core/memcg: improve debug output - core: trigger load update periodically - memcg: account mem_usage decrease in mem_unused - memcg: use buffer when reading/writing - memcg: rename methods reading/writing memcg files - core: get rid of entity's check method - core: assure entity id is str - core: add load entity's update/sync methods - memcg: move error handling to __read/__write - core: move reset method from load manager to load entity - core: zap AbstractLoadEntity.__str__ - core: convert AbstractLoadEntities.{id,config} from methods to variables - memcg: cleanup MemCg methods - core: rename AbstractLoadEntity.update_config -> set_config - memcg: reset entity low limit on unregister and shutdown - memcg: never raise exception from _do_update - memcg: ignore guarantees if they canno be fulfilled - memcg: reserve some mem for the system - config: move some memcg options to core section - memcg: move min_unused_mem to config - memcg: enhance low limit calculation logic - sysinfo: add MEM_TOTAL - sysinfo: close /proc/zoneinfo in _get_end_pfn()- memcg: do not fail if idle memory tracking is not avalable - memcg: take unused memory size into account - memcg: do not set low limit in update_config - Add basic tcache/tswap support - memcg: fix div/0 in UnusedMemEstimator.__throttle - kpageutil: update /proc/kpageidle handling - kpageutil: disable buffering before opening stream - kpageutil: kpf_open: rename pfn -> pos - kpageutil: kpf_read/write: let n be num elements in buf- Initial version/bin/sh/bin/sh/bin/sh  "#$%%''))++--//123456789:;<=>??AACDEFGHIJJLLNOPQRSTTVWXYY[[]]__abcdefggiikkmmooqqssuuwwyz{|}~8.0.13-1.vz88.0.138.0.138.0.13-1.vz88.0.13-1.vz8      com.virtuozzo.vcmmd.confvcmmdvcmmd.confvstorage-limits.conf.build-idf0f468b91372cacc514a2853861e5a2b705700d0vcmmd.servicevcmmd-tmpfiles.confvcmmdvcmmd-8.0.13-py3.6.egg-info__init__.py__pycache____init__.cpython-36.opt-1.pyc__init__.cpython-36.pyccli.cpython-36.opt-1.pyccli.cpython-36.pycconfig.cpython-36.opt-1.pycconfig.cpython-36.pycenv.cpython-36.opt-1.pycenv.cpython-36.pycerror.cpython-36.opt-1.pycerror.cpython-36.pychost.cpython-36.opt-1.pychost.cpython-36.pycmain.cpython-36.opt-1.pycmain.cpython-36.pycnuma.cpython-36.opt-1.pycnuma.cpython-36.pycve_config.cpython-36.opt-1.pycve_config.cpython-36.pycve_type.cpython-36.opt-1.pycve_type.cpython-36.pyccgroup__init__.py__pycache____init__.cpython-36.opt-1.pyc__init__.cpython-36.pycbase.cpython-36.opt-1.pycbase.cpython-36.pycblkio.cpython-36.opt-1.pycblkio.cpython-36.pyccpu.cpython-36.opt-1.pyccpu.cpython-36.pyccpuset.cpython-36.opt-1.pyccpuset.cpython-36.pycmemory.cpython-36.opt-1.pycmemory.cpython-36.pycbase.pyblkio.pycpu.pycpuset.pyidlememscan.cpython-36m-x86_64-linux-gnu.somemory.pycli.pyconfig.pyenv.pyerror.pyhost.pyldmgr__init__.py__pycache____init__.cpython-36.opt-1.pyc__init__.cpython-36.pycbase.cpython-36.opt-1.pycbase.cpython-36.pycpolicy.cpython-36.opt-1.pycpolicy.cpython-36.pycbase.pypoliciesNoOpPolicy.py__init__.py__pycache__NoOpPolicy.cpython-36.opt-1.pycNoOpPolicy.cpython-36.pyc__init__.cpython-36.opt-1.pyc__init__.cpython-36.pycpolicy.pymain.pynuma.pyrpc__init__.py__pycache____init__.cpython-36.opt-1.pyc__init__.cpython-36.pycdbus__init__.py__pycache____init__.cpython-36.opt-1.pyc__init__.cpython-36.pycclient.cpython-36.opt-1.pycclient.cpython-36.pyccommon.cpython-36.opt-1.pyccommon.cpython-36.pycserver.cpython-36.opt-1.pycserver.cpython-36.pycclient.pycommon.pyserver.pyutil__init__.py__pycache____init__.cpython-36.opt-1.pyc__init__.cpython-36.pyccpu.cpython-36.opt-1.pyccpu.cpython-36.pyclibvirt.cpython-36.opt-1.pyclibvirt.cpython-36.pyclimits.cpython-36.opt-1.pyclimits.cpython-36.pyclogging.cpython-36.opt-1.pyclogging.cpython-36.pycmisc.cpython-36.opt-1.pycmisc.cpython-36.pycoptparse.cpython-36.opt-1.pycoptparse.cpython-36.pycsingleton.cpython-36.opt-1.pycsingleton.cpython-36.pycstats.cpython-36.opt-1.pycstats.cpython-36.pycthreading.cpython-36.opt-1.pycthreading.cpython-36.pyccpu.pylibvirt.pylimits.pylogging.pymisc.pyoptparse.pysingleton.pystats.pythreading.pyve__init__.py__pycache____init__.cpython-36.opt-1.pyc__init__.cpython-36.pycbase.cpython-36.opt-1.pycbase.cpython-36.pycct.cpython-36.opt-1.pycct.cpython-36.pycvm.cpython-36.opt-1.pycvm.cpython-36.pycbase.pyct.pyvm.pyve_config.pyve_type.pyvcmmdvcmmdctl/etc/dbus-1/system.d//etc/logrotate.d//etc/vz//usr/lib//usr/lib/.build-id//usr/lib/.build-id/f0//usr/lib/systemd/system//usr/lib/tmpfiles.d//usr/lib64/python3.6/site-packages//usr/lib64/python3.6/site-packages/vcmmd//usr/lib64/python3.6/site-packages/vcmmd/__pycache__//usr/lib64/python3.6/site-packages/vcmmd/cgroup//usr/lib64/python3.6/site-packages/vcmmd/cgroup/__pycache__//usr/lib64/python3.6/site-packages/vcmmd/ldmgr//usr/lib64/python3.6/site-packages/vcmmd/ldmgr/__pycache__//usr/lib64/python3.6/site-packages/vcmmd/ldmgr/policies//usr/lib64/python3.6/site-packages/vcmmd/ldmgr/policies/__pycache__//usr/lib64/python3.6/site-packages/vcmmd/rpc//usr/lib64/python3.6/site-packages/vcmmd/rpc/__pycache__//usr/lib64/python3.6/site-packages/vcmmd/rpc/dbus//usr/lib64/python3.6/site-packages/vcmmd/rpc/dbus/__pycache__//usr/lib64/python3.6/site-packages/vcmmd/util//usr/lib64/python3.6/site-packages/vcmmd/util/__pycache__//usr/lib64/python3.6/site-packages/vcmmd/ve//usr/lib64/python3.6/site-packages/vcmmd/ve/__pycache__//usr/sbin/-O2 -g -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -fexceptions -fstack-protector-strong -grecord-gcc-switches -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protectioncpioxz2x86_64-redhat-linux-gnuexported SGML document, ASCII textASCII textdirectoryemptypython 3.6 byte-compiledPython script, ASCII text executableELF 64-bit LSB shared object, x86-64, version 1 (SYSV), dynamically linked, BuildID[sha1]=f0f468b91372cacc514a2853861e5a2b705700d0, stripped  !"#$%&'()*+,-@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~RPPRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRR RRRRRRRRRRR RR R R RR!RRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRutf-82c055e2a27497ef379fcfc5f1600ce118f839ad2f89275c8524f8fec1fed510b?7zXZ !#, ] b2u Q{LRr+703ʠAb7uŖ"a vla8}QDx' /~h֞|UdžȢ{ᭉn/BMˠCy zRt9n+۶,<"!6.z @ʙ1uh%G,yܶFq|8p[ BpE(H`ӵ0Von}T%j_}>k@/ðfnF$%!=8%:iZ|Qу `|3&顶Ox i1HyGY~tY=z#ZUN&Qeв:}{w``U?Dnqa+[=Kd4k%z 3Ⱦ&Ggvvj# t.lzߏMmVq*qS"jr*[pkD#W6Gtu\٘X:*sR!Yp|U9vP^z|!-mWoIZ!Ƹh~g+"}E\EPuke.c7dC-2 Ad e5ֽB^.yA4翼 T\I%˒xBhV٭EӪ*tAa))F`sI^ni b5gAJa%WUj3*aI3BИ 5ϪTd&Ppff417D46Q,摟=bt B2'C"0VfW8^!vL1.R4o5?@L n+Z='\ioe'iyfiuiMe@5;/0}qgХj_ 5ꌂXzB䉐,w0oI S4\z}s@@cY,䏞eDeZ%qqu"nǘJh?Y8^IpaL3nuOCFf'LF<[l^eubwpC}#}AN$-b$K o*#u`E9N,u}0Lv W9"G2=XDVT҆.Ak"y1j5a3n0nR vvs;.TkC .Ljy+: F:37W{YWWcx~Y 4,c~[S:gYS.FC< tD|+?R+U_չ@3'W"GD( e^SvgC ֮H^ ّr3;ҹњڜm`+#7 ΔDD b/&mye '.{dpW ?F=᝼qKf%"ƴ/UЮl؜c}*]=u岊dV%VNk ̕-ˊU(4%%EbSjB|ar59qo騮U:N[7A46B.&+@uYN[VY@Ụ̏9Quf:MZJJr`mav>oΔ-u8`./Z ^2gLHas:G!$yVlhJz /m6nGZNHRPk|x&T֢_^/7dЪ3b5# 0R4'gI8 |vj[]u9Pr)KqgMqgײdž 0}`vknbd#R^f{D%6cX o3L95?:Jڗlՠm*z!S$h 7eëpسƼˏydNF+A88NBOƜ6b^suXmtb0OFz..} [3x~EBlPIO۸+u?tV1Y~ @ Ѕ-3c}Yk/#B<uE2ͭ??0Uhǥ pTn/TOaU#D iU}6QO|Bzek &ɍHlLiv80;tm$̟4޺ZI\ԫ̝DؐP\rTܙbᆳ N.t5v,wmw9UID=ίME-q۴ȁ&J#)%$| wa$B?)k#$#,WK-ś,޵슺/ ȊtZ|&F2G^uC&^9$l \Dx B Vy3A"PMW b+32+E KG%Z3 SwܢHnue&,[*[(.E;IyBi2ZjlJAoz%o:{l^RT ѱŃ3Rl&^Mn r(XV*v>-ҫXulCy i˳[W,&f=m`nny2­jbU#]q^Ye! =+70#0?Ё4> aߴQD2]T#k]?'|.rcUYr~ ƬoG- f@^Wbh_h]Vu47 ǟEXhEJֲ;c]\~+ReZfan˽M>bW\Yϻ0&m"J$@zc۶\L|81"{+n@Ϣ(S3zG\qnE ytH+F\^YwXcU )Fz$y_@h0?61Vf\rAs]9؛##PYJ1Yi\I¶3 l\U+ϝ:R#vPf)HYGyPq1ҡ^טmqe>,ω5a冷=,x+/XU8yV+qHǯ賞%bYo?X`=/_˧`\HV"#@=b~/]\ӉX5o6,5fZ^*sIJPR^u"B; Y +ƞк K]1[kBsG}d͜ҿ:é`Z٨U$qHlaIrS[->+*+iB "eBsjʹdj"n>iDAWə%" k9͍ĥ2<-߾ f9-3_vi:mbh,8=$3'̽Ѥ+:⧘mA /8x{$^yȌ/( v]6= ԦEGFݶȠ#U8GxQ6}l`VX wJG(K4u4kB,h2K;$^T )`=6vH!Y52 ӴCcj+5kx#tO)[ b7$aCmg6V1nw0ەc~4S#@\'&KVο:2Tۖ&::G99dž݄]?_5go_i(1+M%y5G[0ΥMMBO,Nuۚ)9Trцq˽3g%()d睪hZعLT޾c+!|}8]#m0EA)ڤ߂+%x\XɽG%&ָøDvRL7u&4UP:/P(Z$od b`Ny=yL6[ 慟 /q:lzW%s逽9߂Pes Oۓhu@a3"Ayuɜܦs顶n_lV<˝g?Fq%KzXqNխqKr6ZJ-`Df׌=*p9.F]/_Q~OiLP Yο)x8= y%K] 1,~`EQ1ڢž?flX\fZ1:`-eP\⠕#> ;*>F'=M*m#׏⇰aC ֲ%*@#|tKK\EJ`ƏTA϶Llfw'5YXsGiW$|23q7S|] #]&틧/;`N/A ~B툺.9W`IG6+7es2~&EU*ǶLQ[O/K~bO>OMWd?"%g4$h= 4!KT0z(]HS#ɵŐ+r hV< Zϣ@(|[@Vu=fYx<DtSo;X 6eEe%03LK^c;TMQsbyZJ/na|q5Oz֠] ۓ 3s'5SLV4{EE{==Ln{pW[MΓ;چ2?}F%&K"3uSyB%٭p 8I Y{'BS&(Ha4h.g˕z2o?Ҹ%) &:v%BKEzxK@6nZPIo8!cyhBy.ˮ?>0#fsQPhTX-SO;\yDy8*ps f)"0,:L/3$`џaVW#\D7Sm=ӲF!;bkÛ#R:iYw}_+IǕ - ,t!ΡO֋V)ʹӓZ83$@+ۧt<_'7क़™pGI0#GW5[)<5 ,.O  2⌽B>P|T]*j|8Ubgant랰8:j~ۑ Z!k?6FHp)%I矟ϝ2<1 4fiިZ$z*v v }i_J]~5[} +7%GqC(pqP2l7w Cm:Aý݋sX[A@$,R$U&p4?eh":m,CEesv=p$^> 4TĉeqmN">yXD-Mٞ"p>%pwZ]=qYC$+G2I^țC÷2~_BKw[Z1s_dEJẊMd!(n j" 7Sa q0j+v.썹Z~8T5>KKv:ܾp"]V,:ldj7=TH ?gg^S[{+5T#6;\:ƅ>wP)@Ζ:PwuORX{8 vD-d4jx%ZA% TYbEyl># dL̾nb9|JFr-nඐ{-1d8֓s'U2f!}1\?=SXV4!'YDD AȢ} %+(u>]nJH@(YyW 8rPˊe ZsgǘGwvQZ1SM"HiX kof} ;m~K`hE's,@x/H yeAC6){rpҜgR @N9ycc dT vbTvWaoЉtɲ~Oys>NSn0@Tu;C٨*6ӥ2voy짆-]\4Uˀīo<h(dVԑ` 1&+%%B%q[kC UN N";Xwm86hHp-i;X-3'fWݑeYds:d4zH({Ιـi Glۑ .^a N. DS` ,3B&S{2!PHsIaK.{2mVykf|#0dV;1wZ㜻wLVBAvKjP_2o_4Fy.byjx&͏Og/\濭YGg 8* -GhM B:sYcD5b6׿.~yыGʒ}=[EgJNJ,_7UGJZA77B* Sf}"nK/niU7uR+RAxN=>y0?#$aZwHOA=m7j^}v|i &2 >xF+N$^g92queЯ5rGFzjJ? #*.t?1%eDRܠw{:h;BMT%b&-[M|EUڴ o .~.^ ?Ufyl]1)Ey9_vX1t[jow;r89v`QGKpTg!AfPxXl b!dW*&)Qf^)T:x"pSJZw1Mj+W. B\J)ؚD&)Qx}ICs=!W;[sU Ǧ&>9A` vM6ـ<`?K-z6W_\ñhtHMG b~D*AacV2UNK&+9X _ Wt'O /^!n >8q!i|.qJ\@e1YJʇfyKSu8k YD1 Xqfc|yq +#}6N:'aڤy% ^f (F[hm?h{0x_Žӫ=[G@T() Rܼ1E9I G}iW{\-xKWhGCSn: ;'Lgvj$0X.q8BP朩BvFR݄^]s#Ϥʽ C'"(!efϒbhDYdUXzрozZ"%ٚRCI%')]O*0 }Q" T[θPYm炋 ?jg A2$kv']0]r,ZPfθ? %8ڍHM0u; <҂i+xe0#}:%|q^QSYy) ;6kqW7SYZWb(8ӆI)7x yXnun e{Qncjёq0$^mj̪7i8vN$Ӣ(?jLf],Z@sC`A4q\,-4E=91(%]D ~zq_շl0=@P8;HG-_`FlHK;Hȑ1E `\#m(v.ȩJ9A\*ބGaՏ$ShF]v vD0hK>H,)s&pacjs և59š` ք-Yes$M/w %ފNDdɕɂL1@&BB䘹O9eѓьOÖpz&Rņ~4/ySIBQVVRDm(fRΠ}0iZMSBܟW<@P˵,3KTC~NL(5zn+ȟb˙q+m§Ii䇂ū)[뿁װgtR"`w=X$a|Sb. TE 4ő<Sjr?bs0?݃O+U.Sx)MUJ= ;_k\8;@[."ĖX"[tf3 Gk1c QdZ@f`SmT>̶ BR%P:R~aBTEɝ0X_w vdGg%9k@RۣiX^,8K췾'ԸqέKN(OdF_ɉ;1#W R#gͩuKz?\**^ܻDm>u"oR}a0KW߬$jAER_"M6<@tλ%5 \aAEȝ(hT?x.nИy8ޜ%]c{`8#J1~=D{M|w:5;f dAjC5P@29>D'iaL Y,[/֬>V,em)X/Kɩ讅G:*ԡh4ɞ!(VY#+L;=vy{VsPv}PZ(z7~ yVw3ml@(^ F?,R;@\I Ҧ†Y1x(`8<\nѺ--q]pa.Ea{ \nK &bA)%+@&i鑊ޥZO7Ռh2]8 GQa)d8.!ۦ=} *$^W_KBoK{H QC~ %8vrhSj6{xөCu}ThZXC=n~qp}ὟM o9);{e O݂u9}p׻/ǘ$vzDdD}^&XcBH8v^^F.WaD)S?^G؁ry)k ry§NQLpds#])uV%{J\5rF?y`-0p˯Zd;ӯ&rN8e,yݷ5 JSP!U瞮*P*M⧉g7؉km? wݎXS;o',# ݨ$3 N31^SzfDgML11{T amQIQ`buRmmHϿIpAm%MҒϼsv6F[u"p'͢+F#t6_F?5̽}uvzK]ETΏ.P7þ') ?#6UNU50&\9ʌ^ ڝlf1>wKb3Ʈ `1;A*@|layx]oڼf5cYnQ 4d Z`;l}g&:ƿdν\8D&)!oro=iPGEƅ{tw3{@emP0{<h&gL*oM } sâg&)o5 *~F\r5>ԮDՖ&KO}7d?Bfw6y5֘l5GrGS Yɪ7XM[&w;)АA+1K}D;OuBm{r|=h?|&} G&eУuJZrGZ,14I m͵^y՝Y!< Zɘm,1ڣpPAVcYJ&^0a!M\Rɡ6,=tn}ͭFiIӟ;jAM&Fk[Er  :>p'_Zrq$%mϢby):dC98!q1QGG暑tsFտHC`&Υ|ft1A19nCk{i:cn d %⁳.rUe}1ߌ"BDNTyTgN8 -"9%xOhY!fߵt}~G]XJ Z;no= ]:{`CTw\03ͽEmJ*Ke;R֗_qJb2~-a~qԚ5ҰcF%Y69{gf0A+٘t@"W&Z6xx]34L YaE-+7o\EpѮ^½Uʄ=*GUfT0Ab}Ȏ B3si cܗzOS>E6xU=w1$b_v;W?_Nd66\ wYGuOyYy{) 0܎Ffw,eµ]Ζ3LO5_w a2.$KΜ?L̟?4bP:,pˤc wW]0]HGuco- 23"4RE\MN>67 B_ LYRP2=?-R-+bLM ~XbP$Xyqj]IVIu?X"ZX/WF3W+΅oGf[+y4՝ZX|yg}<^]$>+QXk:bQC|AcE-'*dl/Ԕ~V|nc \@}GӑҩMJ7K C|.lS;ׂt٭͋fRPy79 ũH I,agN^ʅndc$؏i&WBU24iٸD1 9Lꁲ˄@it,)1BGGM7A|3~ɚ ]t` n!λCI,(7HHpr6{:miB 1 0AԚ4jVNaC^3k:ܲh謮˦K:_Q?{wKM?٘ql90qeHB0U!{*~Y=NriĮeΐlFY,$zV&sO~*CVx.#زɍbWn<ØfXVM+zSV #d삎nQ0R(A5eo&xLgP19Rs@ƕ^G;mwaRZ#V H,iNvD/X+fȰs[ɿ_cI*Vl-> _u=ϞZZM USolD*)@VC6 sKj[0M h :'pC]Ouv)r,@7Ni[B}>5e2!xb&O[ N&T%Zԛie# ruF64ϏS(/ucj ^gf5\[]K1`۳q mYd޻w;ۋ]wfE0٤s9֔ C$[ >^HE tY:ힽBX(Phqr|!m? WgO^c:9@pSm:cY@,ᷥ1mnI PE _n$ͧ8Bof۰tY!pS{P&A9␭uM7UؙsۑGeprՃ3Tbu=/ .yy)e"~AҸrɼwlJVe^z|[7⧯3 fߛUzp Qu8BR^F9A;N>{C#KA^"*1!!7X/rQ^g"mX?[J^MkK-H9#w/έV/X1Ύ#*231@=nYYXl@ċ ùBPRK bOdyK'"Q~W 9.:aWi[`ǐʺXcO4xe$).xXMIO%,GYv4۹[|cZ$:B`* 3Iu ~ b5\J@:nEzDx{`8yG7f|,({1*kDOxhA턛r/ X^z@21y2aXaYPn5qH@ieљoe%n[$!ozE1ǽD2&,Ra")a "P"~H1w uzV̶q/%҂h"8D DM b^17KSx62z.HOhh5}tzO\32B.U|[L'aRyf@⍟Y*_ 5ڕRW){ %~׃a~n"yvUiFP2tҡ_G<}[PyfwhS$%{̛ F P ]%^T/%:pr<()A#1/d9 1SrbR͞'>#SOj Bz +yw.z+!c9eD8xCXx?E/rIĘS$?TYz%m f4bndtL. ' /siRMI',$QY;c,# ~Xa{I{ct$C7 Ƨ)< %,#ۃj@y4^2mz&9PϷFϓ؞;uF<v@T|7 kpuR5crQI-.6,h7"eÍ'0NleY '盋[,)y#ʌߵr F\#q/! 9QZ/RS<]V[wXc8 1]U?{Ll~o@*_W¾-Lyk̤x][f+w;k#2m;A#?27& ыY9VJ@6g5.}f9 5 CP)Ld 6 Fx?՟^w #j؎xu Z[nP ~. 1p^b4O掽`SP`p{s.95q{$v.1/o.WUv& $2@Pq![߄IC[puzuYM"}x7 |A, uDHY,tQ8*MyA L^:ʖz ('s9I).?mY5I)]j3WH`͙V]ɾ+PQaǁ;NvRX .3r^PbUѳE_gkSݡ5v?" z췾=+%fp$,4SĹ$'b.Aɔd,"ϾJ-y&~3p!:IݠюaMA?bt]@l4xޕfЧzUJԿrY±Z"Vr$H>U=!ntDvЋ>8at4nUe]CIhm|CXywޘ%6I'ׯnh3ҦB|HFX'>L$>$RYǺQs)}{Ixvũj.qIb雪X}>]@Mٕ9N$UK &sIxwGṀ3e +Y^/ƠN\%#ls< t.՗&0Tͮf!Ki䲽r%9i'-!%*`/s\ڱhW5a]'EުΈn7W @78Y;/yҒPb0LiHpGl00+T \ՁZD6 4cJXoAO)^* mEj̾7? fS^4*ؘb l"#|ziٝ_i&OVXA k AyCk}7~[xcX7^?d/xڊ Xy 2rx;Sq1XᴞN\((UvI%g GPTBZg8A+xڮ =|sȄ:ʯOڌjN*P*ߋ$-i U~@}Ʀӟ}YГ@GUE=|1r[ ocCLt &,X@ኜ TD@c>_-jF00NgQb>Z @O4 4_ʕ 8U/wdzm:1^Z>%غ#/dkOR|"P\H~ Je(ãx|P]6 [؟٬ Q[TDOqo'8uGⲉEg^^m3VD®8%uI\O-b#x!s2'DŽOlƼTL n@ԌuRq3` epu cV yN̵@;4U"xLf9a4u7[ծAq Vy=t"3쳕ɀvf96mrkeWRA]* utB˸mڴ_G[J y6CtѳzśmBVpEҖelưuKÈm9/3Cv6#BD9!>jMN=߽k,Ij^9ٯ8^M`iȾQU?}Dmƿ:E7f,Bx9:La4t bsJ9!.H@*]}0h<ͶO?S*V$zNtGow'J47ZQ'ap2.zEOӾ&Gז{xL );9:58 rJgG;|ZhVOog"hL20]]V"v$Y)pNoYpV2CChdظt]#Zn-S'1+4꺙<_=|[x!~Q؇ TЧ%T}9*,ûol-EpYB#ysE 2NaTko v}dG+aC[7R`у$*O WgR:"gnt?c5-;0xsh3VBsu,16H5\kRANf|.7 I(a^rXq.V[ D_^Qo[bkŹ6F$&riGBfe:bV:TiHg3($ai֡:/=@j{`L`u$˛.e3C$q 棆Y/\vxreʂ~Xfpi(kL,:fR,xDO ߩp|wo)żN?uC,uxoO7aA\*1v5IXшM BXkRdEh&qQ1Moʤ\-d rW܈X" <A{^_!^sVUS>) A?f{Ec"Sn*E~iȬ]|aWvmۯ{wu o^@Q7jA^\}2 DJ$#9ĂT҉Ow=VAaQ3r1r8yBߌ T5o阂=+ڱYD_SG95ʤ_߀\vF0D&,.ҵUdKTBgGyFn]un"0J'g[k^՞ hkwWυSؖ^X*X%3TzN.a8'`u3 XFV%r|mW#X=Ir.BS po{K[Np`x+G:N$ xnN@C:qحMP9o㪘>u hNiv%/Û׾\ lO_.eIwDi֑$I'mif2&FhYR7F]~$I\j!\LTgC mcbrn¼ 62i|\?& y`!NBjQ6H9j#e꣈XXj/Q> ƣmK'Gjz ܬ&"* mo8;EpC@tٶ̒W@3ƕy;^(d'vd<.79!&өaC6f'yXy5ᷳp;1'l$vxYXcop[L C/;p6&,p=J6l+r],BWJPb7Ei1;&\xƀ9sB ^ B?-GyHAEZ&~j{J~~]r?slttۮXiD#z`_<䨷)n8mC.\N/?u_`㼇̗>`CWBmq6lOS"{d%ι1a4b)[I7d*Z-]Aj?9%-l> dyPYŸ8őjgƬ7] rj(E7{Js( ;x`_lْ#Jtui(x?,6PU ᑛ>,KJPdA^26==PCxiJT>UE܍T4'7Y A2]\ #4q6E-@%eiY}DngyJŮF>vlC1Վ7}~xԅ)p)xf[x6_QWY9XDQRcmlOƅ񠻡u,܅3$&U3BK^Wp"z;2p_l{\~g9k4C}Q U5?8^ws%sg,`H]E?BeZ0ɸ \v\65=͔Q"OTبKO@&yLuu$vNb ygSI w/6h(˻3 608!9+ /bN5k6Ú2o_-AK;DR5$Pc9{{ -`KNxZP$"eVY[ &w\@/qϫ^iʼn;5vJm蹰gG?)}#E_3S[قÁ^VD\29bwf1UΠx\fah˗wɇp+NINNzEq0A/mB+qpt{&7/jn9>&YE*Nsd,Ȧt0an ΫT"$ j^pl@]ң''\7Q(ϑD;1aC~znauŷ=J(Rzro6wfLUQ/@zw.;;mt&3]o/5y+.dFރa9[`.H8Dƺ=ͨLz4ib5=V:\™qíCcE `D'mBIE<9&M]+̰z}ڠ.$`iQgqoChYu !R7l6ea3-fYīwwNhz H)au,&$z˟BлdӔlFʟExn8Iã){X3'R PFNbxժƹ+F:[&/q!Z "дH&{KhdW9^yiþ};r94|v>8 yٲJjar,g"f&PE{U@T"?5qYwid=AZV걨_iƆ S.St& Y2|ߞX9k/ЏbyY1lSv_7* >HI~=oO~XQu7'%E]E\\:ZO ] \.oMD~{g !_ T@D,KMWկHX&kLmHNMdfuٹ2ċ1 b2CDs÷U!YW[$w΀TV=ЂdeKl#4Pv0(Nw5IxmOZ}$~Ș1C13Ӎ#륇f~\;:lC3^ŗ(nlHU^A?P "o*Ѡ)V`L>c*@#ZOa$M0tv6e`й}y;~ \1̀I&h݂h*ei 2f~ ?I,nbFj<.m*Tl=>.4v6c"a1&A$ҭ/6Rhfb=H4F᱊*K~CdPܲ4\K\3w8sU#6I{ik[2X9[VBO9gh&j}`3E+hQ׮ Z#)}# ߊ\PD8U\O*+KE 4?V?Hz Clo,aa]33{w/ \ ICpW,$vr'2ih04Ku2#HahhɛlšX>Ǽ_"RbEWfVL`gCe"ēsj_I٬N\BE௃.+;Muȉ`+4Uz| SmL57cW({,OtdCpU bm,E4fa_"-[]2XBCY\PB7 |Rش"*ٕm3KAyiMhh4|ʬ 7Wku[z.77䄻-YdafҸ4|h<"rD,-QJ8RVRޗ"QEimjt;u B;b陁SM\!mr< 'v3ܐQdK$W49X.Ũ`oYx1GJK4fmg"7u@/їtQ ȗ:AʥoDG(/'"[^UD-xy?<>bʥ7hR6g$PbPIϪn.]c̟BsFM)S >Զ-.K(qYf-qƀ Nq-vRpmoEBi{i=$2ʫ=_I9/2H'c$@ԃԭBQv{i׶RZ_]8 BQNMpFdU ֡aBf\A߼qr>^cq&X Y}}Z{CF~5n^WdelVpZg7*Bń2PI ے7U%qzynJMs?~9iKbKzRdθ w8Jz\o=xVksC^zP84 Sݸ4h|lFU7h.~6QO׎AlO G[Az@˪ْ ",7u(M> ^VT,c) z?T50ǒD"c6I0!.G @/:TUf A%TnM)&%yB@`leeLOEwerؖYQ,3eI3MSdbq0(mnvޅ Ek-Tw{KH3T6L~6H LɅ iܫބ{e(V)t0#>oD/I w ;Ň/:#Lb9A6rj@5BMI;߯',[>Cƕ -*2/ʪNEǓ ;?Zİ$ݦ>2Wr^m|^.<^2&l7Ѣީ&}axSp3cb"(!Fa[yA/Κ6Gd|~ Qv5 F6P|}o>qɫgN G\?8.6۹JY&RSWiS Ёe~ZuK1CE0jv9b2`w (ycDepY9W.Qf =[u!/2:8GO-(On-.MHR _R$UAKOwfJ6A2 XO*" VGUepQ'}I[MȴM_dtarS3J~lcdEk'X" PyprIJ ͸ Gr,Èz؋&՞<>7HLbjK9֤Nؗw-&xi.=^X?=:a'6Zbww-J89{-f'BsgfY(UvJy/Y +龁UcȶK#Z79j誫98)Ioꬻ%:Th;5_όʩJ}YP;M%_H[q,a^_ Xhzh:.xDbX.^KDༀ2|@'7eRs67'kWWVKqf1*^B%42k\`)N +<]p/ºBSy(oX2/'mo6YzJ4 ȨBi{(OTK  eӧ俌`a<;#!^戴ojDiayt`m  6yGNic3Xb^ =Gd)CF~h&P$Wy^[+/_𔲨3ߨVS7|#W@--a n~Q[ej0"3hd;+lѫmt2gMEIxk% Dz΂]zzC"-;?$N ꛮQc@ACk m̌2*]k}k2J =fB(d؀  G;VsbVXw'u!c`P1Eh~*q>S-.8WJ90gnij.{'f6.xR-4\2ߖnDl.=4 9@LDI%B]@Ɓ+[#c z*ZmrOa(p0B!7#p &6>ߝC,AK,t&y)&mЗB<.TjAG=_eP%66+tT!yb?~=2n|ˊ]t0yG(CgA%k6Wsgrrb+\ .)׳j6/_FY+ʇЅb*k_M>f:z+I<._M'wKq =ҤJK n ʧşb:&]k؎ΞUN~vk⤚{zuIhU@@8:0<_g/,ne]]hT/"+C^Ghp\{0ngR(T9ӗgw"0^!-}\k "cƹg|^yV7|'c/'3o$k zn~A,¢\<Ů*,緜=4$ 8f"1VSe$` ͐,h 1y _UTt"|]WV\:LT&91e1N&[/nO`*8d@z*A^VCZ] ghrc>MQuahe+t5^ iBy6E2Cu4-y.40n2alF %;K[ID+jt{_bpg>|rLk⏆/ ezܹ%Ԧ$ jq9LΏ3]lV lC39*k:X)n gyOotܷÇwVpaiyd ?$2m­"d.GnElP@EBR$tj?W|0]m˒EMD/a[5xݨV A6G..'7忯E@tZph?=]_&UW|$ ֍ݽ'#N199M\lj*ȐƛhcqfZ=fSpn7r`̒Ir}7*D1G 1d[Dƿ7nyG a(47Q̡3݀;mh`lk]O}iaF1>.$jmz]vUZߠXǐқWs˺"]qB,˔JrSGߺG5DE%2R)9~RZO3E}Wًoza؜ CCtah\?emrew &wJ?UVК5|4M%Vh?M7m$h%o*?)Hhv˄Nӗ 7Fx-GZ +Ia.%ET(Tm=H`QSµ4OpP nNiuaP릯 (,-! rD3VTz '09B]UfIS㙏o:L C2,X5dl NȤIwpJpa%;%S Y3R:P1K"6d2QAލ8< UlKQsYXrB}@Y|^ȉH &u}\G'KQЭ Εtuq]q@_[a7U 9BN, h-)IPY[[US39FNK[ y lix{7(AȠjC:$wqD87z`E/w"akg-LAdb麬Iī\!%!vBuF^v}wF\x 䅂og[<~EZ.5?,7.8)5NfcJ"M@DY5bT#X5 sffPi/]b@mWg ,5<Ѷv,*ՎdV0˖ DܯެԐW,hҨctD$NƒIf֗>A}{ct!JF`~]̤f휋4H\Pӧ;)@QZ4uitZ~6-TB@G=[%m1Fjx$ P䍋OI;鍥(?#km@z{-ŭvtm&61Y NT}9gsάی d?Xi=0 h6Jqame0I\29fvy |Apk(#麶FbH*T5u3kGnՋoh :cL5G-L,2 `#*5KOǡy&db23Jd @XrRwޝv;*\U=@7>="¶ Fu]zθi]!njM)`CY#kb-3OWo%#~ lhc\\vSiOl -m&d(J_Vc HȐ'(ؖ]WT/,Q 4:$DT)\DBv̪ءX0HPt]Ks. i'L*|%QηFq~ p54/y;qǖ׼'WxK2 f^/Pc2&|8Kjy yW^U@x-*\{=Z=ONufzԼ Aqh&2[n֖lq썶'g*uᲦHSaP:S(ı;D%;p(p^ ^œ?ar5`'q'sVM`oQ(yv70<QjN eOPwKҹuo{z˱r4ֶ[0 W9XP i^~Л?IL5~?y ?xR_+KB͙۫bwMRr)0d"c(ݸg^|20R Tv,*Vq=A8)9~U܀qC4wRkoӟ(/2<@*^ ]~*/#e1@@xe1JHl%@&RECޚ*mfW>fugU">8u3ƪo΀Z^||dR"$f|ըa{~rEʇQٮ>&KM0Z!Գսn#2"yWg٪ HԯrԞΈ%^V܅W爃 ա  PH\T75z`#$eOOO"3\0 ]zNPf foQ]0@0}4f / eO( o )r5W,.(JHۜ2 f`U%CrJ}|gZl=oQy&ڨ4;);ci.ZQ!ƷYfd5QwڈZeߧ բveGt'3Pp1ϝ,1A//DXAzX<fohʪf(HkLG'Rဪt#_|`s5Ճ1e/K1Og #)9l5!:09THএFdyC WRrN82erُu!gaYHLX;Pqܗ. np.C|Zo⪮ߘ+7yxr OcT|tm&#l6in"I`R,0TȜTq5^6jk jD'Ύ:JQIa6(P /6Lx@O7U*C=*q^ƍΓHbF,W,/V2gw\* rc\vj<]%L9o @ZW>ڐ,xNPև ,@>DC"Q{Gj<]9N=6??`8̪%xq)66L5++C~G<=q s }s+B*,7T=%bd^KH́HaVL~+@9;TɅ*WM{$πUfU$8ln_Ly)17?_fu]Q.k}8sa 5eQg!նHA+ +Zai˚ B.PŒ}>[BKU~؇=wimx7]o%r O#*f#s@.-4K9¬jCt{2)2#imfg\)y'Hu%>ύu8g,\59l[{`e2rB=?a6P7I Ȏ%r5[Ė}$ȄnyuMs߸.=ed_V ,*KC H9-kI?^M1p W'0e̱tOgZEZ;LS gTL.G$bP.ͧ3*}]ۆ %w0?4!*衇r[N3a'7۠f7QAU6:--@G=8ªQA U-2Q~Ӫ2Nnƒj!["}iBSAw 4$̛a6)ǟPƛ6jq7[4HtjٙQu Nǯx`ywd-=#/^1Mc%@P5;hcKΒ!$o"+tI"-8WQp>m2ƭw|>6tƩ.`}]ulYsyTL4߄ܨ}jҜ{.,6b )5jΩrKsPQ5|Ђ{)FoegA~3ܩ xSW:@aχr@>\'p SynW6ko(2+V$\OJ :|'aO?mR>pC_)0ۍw}Te`Ƥv|h9^j~N0cZ9Ra  *0<,sNP͘4EGS0)pd d I$Lvs=bL aaDaُ몉k&†/7;8\]40vq<| -{GJDŁ3J 'wن,yEOӘ! xi[2HSq 6}0{ecS $׽t>bݡ_ՆƊ<}X0.F9!:A>DyⳄ% kBlYL w6 wK,l6 RF #a0(ӓ6kdDOZw{h05nʉ5le-FGJW]''nQ5w?5 s@k{by5}aX=7f9 A{Hҋ|> ŌIuGb[.d \R&N3T r?J+sQ =Kw0f̮ ?{j[=5E%,d-be|ӺQx@Xm3\2aMPgQaM@jOab;=9,կE8{mhPFzEME2˰"!$/\۠#F2B6wj3J 'ތ.C+ys8`^;R7%B=|M]\Żn-U$ W9姜R'\5ɘF)zNk\ ["'PXD߽^%O[$f:-|+xɁʂ[VzeޕQVr} =$Fz/ iCRj*{4a\j!h KS1$ `tv,uMa)H, ՍD `_iuD'(<]'^^G>\=ɧ9 Fc'X,"ZzlzvӇG`>ELk^.iװAbuqc,YƁa4d6Ƿrϸ34coʹPl PVkL2ށ! y\Ͻ[ yJ  ̫g$I<1d0DEdbR 4VL=e! =>U8-%$ODV);c:v^cq2Z6 jzjEs[0z144 ǠƝck1?FAq&Xýn۪ś$,'P^-䔥EᮖM.:hK?k"yܝ)ur~U=i^ό*u{)ҁYf@W=jY`kzWټ -yIvlA˕mhDNCa yq>*CUQs_M$Aga5CJtpbkE){~ Y{R;?^J5]V8ZOz?&Y-g'IRQPI2)0feb{'1sp4  ?Xm}DPN*އ5IHڥԴdTTd 95 N% ^ft2'Fť[us7IʌZo:,ޯι,c~a}pLdP]wkaԸun`Ɨ[I-" qPMVXx~Cԥ@bJ* v~x2\ѕp@K2:8¸CվDDjTu]XHrbވ#-Giq\ڶQG8q D$̲fLw?3*M$e:`.aؾߍ)B .?Ȉ*_PuktߦV(`88=&yI|]G[/Ʃ$p{dq E ;Md6>28NM1D|CmtJ3]YFaKt]nt"Teaa Df6j`= ]Pϩ 剳v~Da4zH=;mN*w*{b?JC󵪥jo%JtQ rILT6FY+`+Ҳy 󭧺"dцj摯'6)Vn~B"aV{9eEE0fpt2؋̥@~OګD햿0 ]؈ZH U Ib .F[ l uk%h=~"*OUCxH~[3;=5[/}ǝaxȌgsEL-Mƃ!ܼorXOCC$M%BeLCՆh!tTA:qhc2NA)6*7%*}HD2/__jSEKMM<~V+B2Ec^$DOo~Zea}*O0OQUm@^9’3&ep یu%#ZJk&ҚXlfW2Kj-LI-uxVp?P>t:)\AC&^}_&#3H&;U_55ٍ_gŦSp,Κ82\~}]y+h"hv3zC~C7''T)jᛸ p^m겈567AC-yg-[$p8چ Џ?vGNIzU_Pي!Cr4UcQ$ȔNÓΝ =E{PlJ^͒$LԶ#6w ?D'^*x ?˱ZQAa1ɍ6 -6OƯ6N$X[11gqH̨)pp!؍̒je%3)IN'": iӐ $)zӻgPiGvx< a+#p] ȕ}C7 fGo(NL aQO J{fRὴVfBnOp|O-{k2 ($/xrERz<De7_aD"dFyGih+pܽF&*com.aBHfMZ)޿{f.dpjT5j[|ٟr8fh(J~aL^uWC8AŅ$ӃFoJrqW@DŽϞm 1Fu_%3Ev \Rs?wsR~L^GᲫYFuZ*}iL1}Ť}Qp1 fѐ]2X0π@UvW>䮟7!%ȳ=lt| RQ dZS*jyH EBL1(Ć̈)B@H?'eWJa)F}:xɚ8Dm5PknA(7|kҪAw^T5֝tk6艴`r8<_l~{zc щZ Vxo++}W؂͖ kC˵?)i7n>;Λ]}Q $'i|ҵl9?=ʌ&;{Ŕ WGI1]YspWSMLn1ЮHDaaM =.#; cFCn$TI @ Gm ؜e;vN&6sJ@TF[n쯯g~S>B~iEDյ 2G5 p㋧'}M?t 5e ꚏȼ%8Kw|%-W>y0[,,}Dotl"w6R78d* H3,kr;tf!f>ە ZRKe&?= '|`|#Cu=${67AY$`J{@7Q"u|{hYؘpe SĉvP*2QlXWff-sR"p}qaj"'% ^Oo:fBd` 6ErPΣed5 P@S!Ms QX PbB\VLULN q]} |zNAzEN \xm-[to],|@@K%D$^5BV3 pǵUޠ=UxV+;X>L@BzBdf $ a|DzqX1OWs.-`SM@ty׽bϷ9ADJE7yN-rK,&ʿc =kBzαh:U6 vpϳax5kum\ _.*5h')}| a%B_X v$BV+o'f=D*>/] a,.(PdBo d>l1'aVqD!|`՘8ꝥ=i>{X"72G]b/ޓy;pLRDavڱk?udZ/W3wĞ1M˚KP3+ ZJo rg?]R<5O?9JdKUTtazIb͈;sCՆ@Ԑ;Ls[Ȇ?5ZzEfUO~<

TyG̐eeNE8aj3ͽfsd jd7[F&_YrK1lz'762!6~zDYWV ʛ.IBXA *v06S=OA?:7ٛ6/#%299< =|r 0``M)zMdgȨR' MÜ6ex0X/_]y͂ei0$y}l|zJ(Kd>֌,3O98ˉ* N2#]0%-=RpWm^L฾bMHmaJQyiZ#E~;XTx3!14t'P~sD2g_~v:6%9xM%p) a?^>Ğ)" Yu2M6H5#i.R'"n.|cf7d-.T/{d UДZ$|Bۨ rrL;+8v/8f'Ι?.LiQZWŢ:8QY^)|"Tv7X2,2hR2P_ˈ,w&F>1 P$ 7I(WgE{C'bl]frYJ\gƋCȆ4\b%4HJg&T^W6/4,} B>(W e{ { >.6T W뇆MeAW:gCVs@dA0+4vlFZIȉ&|Q]v.N㈊iDNtR|vvdBEZS6 /+ 16pԎiQlwC_#en}vܘ x6 qNlY< 0cDkM=Z8:]zShX7Ҡb^}eYz$ͬE2eT҃4ʯ oF*<Fk=\R\#ʔ|`Ns.WX.j/z5]`,gzjJ<+Vy+gx0RDJǃ=h3:Hӧ1i9+g /,M='c Ck0i2Q_uQ 6Fwa"su;I5 tC4MC`MP.q2drSg[[g &(όCA]T&"fH3J,^T4u:t < RUI=P% ߏ( ;݋$6m }}͋T!FdUvg"8tpJjށ/[?{NC|s~y6M/۳DVIK^d ;j+`{1wa#yF#rT1V|jǯblnt8 _LD?}*rIl]]|J> ;i[UuGYzƒ!ܦk/N$=B~ͥRx 1go/CQ2;IEtpR䫎l9݌e%@*Õ詣7E ?(8=R BryNQTh1`<N$'N_"H5Q;Nf40 0{qDs2s魰LHTF쯓45NwVr"kn"A!X54}pwJHv!Ӂ%@ڂ*ne;ZEQ\Pb#"XF3*񈾭H'%ZX;=[Q_n.h0'ҋ`T-t5ȱ|Bv`QCGEۃ4ky0HDx*OLazW*[w߅|cg@BHEe5n먓M췚ENlyDϵ/z}y4)%+Mn.z:],vn C#2p[ElA櫮h(_υjK¡ PpK"4ƺsu)MV@4ZRߪkTjeUBaCֈ`jS5Ű& `{:f>9O 'ˋܚԥv02jN !V4nĖ}&ؖN-L+R|K$V: Hm|Io^Tݲ4\hI̔$Rg*E2d-ch %:bgkuRrt cdt3=`:(]_+qFm ]5~OXe'Srɾ JUJk_bB{X~urk/جͥKo`jyE=!8;B.ϳ." ;BfoM"ktW`ZQ/ /(O$[+Sjw~+l [ϯdr8,1+]-vy 4=0g6bjsz0LToiH'iQi@+9MyeݠWP4W%S[Y`Hot/kuoRZF[LG*}$jW,%MOx]ؔFw@:EþOr}'AҶ- nv%U36U5'.0sʰI MkK7Ύ_vѸ]j; ̚!k[ݐ~+Si[ #Vg:+6"Btq-rB:h$w(VY@%|5&Tf^ NL5ÉhqjҌ(vŔ=b 2փᕡx]^qI vM%Ȟ(Rn纘5apG~JD@t!BAB !"3/zS*fHП}=@1 Q2j-tbe~_ ‘#\ٓ5l!UM 4 7Qv<} {’JWq!` r2;|!0辐Ta~Fޮ6D~w{W;;pj)Ny o+RlcOGFM D G+\MS%UnuXV~+K=+gp\+#G֧ʹ/w}Bg]ZNMwnmc [2U9Pd%qs 𫿬ދD1qiV!𝊑feb5.DC' XfR[yKwH$>T(*'EאxTߎC|6t 7ܗnң6Ojcn  gfjAKlBWuǃTD`zIӦѿnDqnbOi7K5.q%FTf<8%E y9c?Ac ҡE:4  ,ƀ&lf8M\J4e$_s :{pbW$K;5Kk8vLZZa/?#yܫo C0 .~T* ARjh}V{]LdzB&2ESzSYtf*#/AaPڀyY] z>\~ܰN@@JUAd^泸/ *ۧwM32δ Y9 Nŧu3CmP}q n#_cSe ecmJW*H5⣥XH- .)P> C:ffa5_ ‡SI!}i^|0(_l0!zW4^`6R!M;0\WLK_2IUCI#'؉m!0&Tⲋfv@$-*X. FHU7a2-D}NoT1L➚j Bb ' ?k "]ak091ԾYgpfsi{<ת%Si6URRNP *7C%b*` Q{ѤuͯR6n֒6hz=ime)zY|MS-#^~~}x a"Wpa=%ݔXopW \.ٝ7}|q|i`H梇=`pP:pT.2)7m IFg(FOaR.-q$B #/zhYU_!f8K6"7gQJ]#ߖ~dD,9Dm3iF/1؋CeR0-܌jx3hx ҏDac/;#c}~Vj|'8gw=:߻-c RkO`΢XϚ4 ^9QCZ,5Vƭ4z7?_΅V[1TM>ejX 7 W}!nX̲ 'ߧi@^rp߻]iU#gClvsxu${֮M_¢hvH0ݗwv`D{EJ0]je}w\/CgYT7ԗ&-vCc KtsqlM{0.Vpsf&١j{lӲQr|?W0a]?`!rQyi4qV@O`hrUKYbq_Ybq ix˹U9Xr,{DJaT5ҕƗm~z / ߫Vg\Ѓ"Ԓ4.݀eК#{,Ͱd ~1t2ٽU8v7X̶SaÁoɮ5 MBLQqfw 5̩nYw}+@cg3v85R'z(ڴyJ~&P.5qMq #ׅY^ѡJDu XD~(JHy LvNYLZ67pr'Kqo UV'',T`Qu/Ȅo>:W8tS_kH<ږ"D8pnQC-:5<9.Alv=9TorPaX JkDI>\ZYրmF4ћH%[_,72{($ _y';r%I1KFOoi.3ʹ =.p i?ꗁQ0 -[S@85sdA5:JΗmAh񰘹 FєDABRN|3k:b U Z`D &PjwKy 6 } 8GT43cMmQkwec)>84GL뙈k#|.7 {]A~ߠR쮩g_|R>OxxY#lP"nPϻبBQ@9$$$*!GGбhRՔq^-Oϯ%E7.tI_OKy@TK 1Ya/Z;וijMU~tAjor-k[w[gV3B(qt7Mj'oExm_ndMۤ6X4] |ģ*e\Ƚ{ >ȥ$GxHh]* k4T.i.SdI䐞F(Ƅ=q#(j, 2b>va5XCJ#0_7O<պD/b\-mݎ24U&#}N 0v}=J[c7qFՆv]R*YaGݞO|msy=g`+UzҽW e=V1'$21We*` $Wsl}fW &$x]Z3<1TF1YD W@T+0 #&iS'g@/abm2U>cw2gȳGY|d/ ߦ3rZewVrw9L\|Wgc~%b4P$R |%k ivx>ݏ.}蘔 I Fʙ/sG]([mFiӌaԸs,<Ճ^*yÿڶ*v{ ;v5VN"f@Q*̼H:~ȢD+`&fjv xZ޴bsbkmRWE#ۛ'S $;YOD̾t{&ĂDPAphMHv ;_|lOx i3Ay֑kt)'ՑrC9{:=qe!ռx_.ʍk%ÐRGU2u; ڄ^:&:JxE̶KP39IX[ YS!y8y;!N9ej4#[u-J#6ߨmjG*Dq<\ZiX^D Azb+ Mݖp#23FMnnWWX߂SNr1- ٱR-4csqUєY$jB%uXN6QE#5,5/ʼ8WѦ?TY44i\N |=GQ@.y &p=Ѐ5G .mwϮ XPr]ܾԎM ^*` eϳP7"<&mŊ>74uNLp歉jR,[IJ$*o,v+W`33h{$):@f a*odd:m۹Sp lzq, AOI 'g꒤OCU}a MLl VA!< ^R3wȦJS< |_)S[#gA )uy&Ee{`7g7WO.3d) (޺- `Xk/D2w)HQurj0@Y9@vDiuKB*8ך 5`c3e7M=Oeiwf,ྊas2Y|*,rsS7nc{]QneAȫ,li}_Ҵ~5bdcy[SsaڝN7{ل' _Qxǵӌ8DZ sFڢ/9V6W[Mɜ&AI|jh#^iז,yߍNu(@,V'iCۀgvn, ~0F d$e-`jZivk,JA$ݦ;*OL~% 2[G2(DvR] xS# D~{$xB&Z8\Ѹczїw*EbeCj:̾4PEц3HЕ&bY(o^r/ƭ%tjJ$\ҴܼX8"h CIC>$-|GUu9YT׺k_U]&?;fg/) LWэaQ<<ڧQ|yؒjx QW /cXr%~%Rg.aJ)$)%{>uj* ԓA嚩%[+p*曄*6ـAZ7DФüSxK?ѮIJY 큛2.?7OƊE }sa݃!qT[7u/(eYqqe[J'XύID8G-Üxx{!mG`'rݪ€)W%Bn~|kI^d/m+ cD0'Ip8œ-NSmK|6K N4YfOzjW'g&p,ILkv`gkj?W8G^%dtZ`)ΰq­ME%݊ =w:}~YNJml94vy$%9JBPk!DPݽ6ۓN&G-m = m"Ff쥵fb<*:O+EA1ԝwr:A])eoi'C!#zA7WqXHM5^ #4|8" Np 1 ey31'ͳ:_nlk12pk%z)keW5e~-:-(x h]10W jͤio0nÈvjn rWȺ Q)Jtad_G?&#e# dX3don7uܐ'KZj$tH /,rW5;L/Y4 "APŷBZp=IΐZ.(J{{_(ۡl1EĆ(j4\>r2vB&Xү [tl5-"no^V6.0;3_ZhI|!O"`T}&E)HWi<["4%L\ G2F"yb FԔG7Ie 95wɱ stǝjˉ6P(7{0 [g~';q_i[!{=h8e?]=pTZ^jht<svǨ\|ڟ0niX լ?*&#I [aek#*'9pBQ9DXtA0.M<; )ȖB]Gj)w~ꗭs:P3Y$cjfIL9Y$0Ҵ{O{*ƋRu}ڲ%GG 3 ֿ׊;w_ZRco0eDq&s(5@C&;4U9 <LjF9@vLe8d+2LԉQ >ljg@Y7߁erA xڽ:g_O TxV`p#M ơHkN˰ȝSs^hCO8lDx^yظi`\@Kc۶'6(ؔot}UEiaaK g'`.\WDQA72xbIÞ#f؊tC[kpxfPSZ)0^~+/S͇w1J5/(, B2VԛvujaYwr7~!jT2iuEft9B8ddY(pZJXg?zRx" u xO /li@۾[^>Vw*Q}T~g"AM: ɀRR&{l` 8$bEY,{S|v2} _U!D7zAelE@:x. }qS#)Wc"m%@Dwh4RNpBSelF530';7suvH!'W!Vg,W  PemBZ6QmZ*- "+n(d]18dS.R=nAoYgØR Z|~t%4;nP'W l~ǒAzsە^U fL0׈KwouP-$wcWzt>jbK~}/=tL-c@=`ԉySbRG' = ͈9'*X[/caV1vIEؚ"IhSD!swYO(=sC1N\?!#fAY(Dp)^&{L#lDZ+$7t2kJ+g|@4=Sn UEG=;S y]0cGb@8h̘XARiDeK({T5oŅP ˑɠN7jȵP\I!XC'[LAgxT,-n R. !j`9ޅq xnsle0w݇K!!0\5TQ` ^{)Qza$F̯C=Z)3dSVeл陋?L01N0D/?ot mcA*`~Kӝ&a*I,4RJ1ǹavj0VЩ\zMC{(AՀs&4=lg,;.|kNN Y'/ΪKl4:M0[>K"-(x+DNؤ(FI;07 hU-ut^mkNчҌP)9 {yJ6ٸ^gGԛV54* Mt%>!l$U%zCq^x$,o Rb?%{l#SGI,!g3\w{zVxD0̡&wNb^70++GYw3!9pX܃bLӺW[6H5`^@Y۳fkZ-\xb˩¥6=ԝq,UbBL!v=|Yk`AH_vuL֝qD|{K]]"\+!GOK 6Bs17ܪRv ڪt")9o}?<wrG\nR.t#׭TH'=$wZ;1ݐ;lZ<MdP j*2+[S+RDi}~8]p-v孔)"je]K|![iWz2B5HJeHa-XP{i>N 텑p@i`mX2MMƓ$(t [lW1yl{:C?a of~GY^{ ;Ek60YX>&ψ/5!.8GD6 S`awkvh'v{|Iwm"g5 P/ y7RhBo&9Qb u^bHt@={3V1'WL%w7i]n0 !pul\3fZ[XGPcRcϘ Q͌8^-aFot$58ã#ϊn.y~d*MN䎬ܜDm"DO/ >f2EZ!~_%dK MJg`mn_'LoP ?nhq> /q|#Jgn/zppc7ҥT]G-3v5G2}pvB#Lo(%ZZ`qYE04}ZS\TԌ!5)'rbT<ʱNѐc\]ne95q16OyvAqS!X% 3_$es5M.AʯaGPE9}SnD U5ȗgǰL.畿k~icݜUV62 x>2qd% vhIP'N?vb CݨI/72v,\_c䓍U*H;9k~q(Of[,HU@,E{n&  0R쏝F<-.~,t0#g%ӾZYB=I.d8sX~~xho[AVVN쩋@x T6{XKw;v\V[n:)+f@_5$q<&~ZB`oP]iePKnc5Ҥ̇5(=Cox6zNSfp`$PKɝx!t]3cX{2k0̡ϱT eS5I,s [ш)$e&V={tpXܗ {NEbmZDEVr3$$f ;e{mzlš:TrGxB2pؽ汱=xZzU['SCP9 un-?XpܞEi(`M"W6牘L1d_Ǹu뫖D62ɖ\|{ؖ&7s w"Ǥ] H]nÙ5# q^z֐h1蓘aٻ+W=ü6`%ZhrKtM Pd  x_j!HSkȍ,VjrxƳ6=G\a?'A`=70͊JT"K4@rnoֿp2J'3gvxަdQLJѠ,҈\b͛LYEVcG 84yapڲy6˷RYϢ|M9msAZ+5APsywŝa :^A\Y{0)Wۆ[?3\"o'i$wcaf%#`iM\;a 4'| ܾO 0`L|{ Y;1\2,aDĕΌ&: E"Pxva`g. U ͟N).^ kRk 2_k>?LI.@P$o3HZP[ꁱ~ w435 $SF sKQ}7}()쒆NU9 k-̬=T JV;HEdg dŠ T^)#('27F<d\X,#cO+R:dH6i +o#C 3#=賜IB-I"`D- e9uKQx8xѥtqkJ bNp2úCh\)>{KyVA,{07SS zZ HP +Ev &p7\vk.8X)^wX;,\4vP40复!Nx{С9KcB Ξߨ$`H.Nf `$LPFz0.ɘ\s[72+̈́.!2#bo_7̣@`*˅M`0j3>o %*"r+c7*@1ĿHFU&u;\4# !uh1n( gt1^g~2d﷬ź@x_923oxodIR&CSGqo?F&"7(Ɏe0* "]S*L|aҍs\d7Eb.ݚZ\/݋/kdCC =壈NRAt SeB+FW}Z"2g?Ho!WvM-^e5*+;M7zwCv.5S-gltc;?]d9EQ~wP!0q.ۮ_.8G/gjoDfz^Zyhw_{AdtE/$mv} _ԝf,̂ʶIab oc =:9ЇzaۊS8Yޑ YJ)0{<Sj!Fd?9Oc*FY~ۃ)brIּ݈{gQ'#f w̗Pq*Uedhڀ{_cb ŌO?ū~u1Kp0wJ 5P@D5s{\5&Sš(w"p8 ~e8rq,ue!jGsrz%y I5SHL2ytqEJ#B@c}P+=8ˀ)(5 S<M[7A%?Gb7<>Ufb/`0VOwYz,)t>)LR8[PJ+{ do2~dMqMy"K5u"(aΤwNnx!/,LUy]R6GA蚍ؘШ`lKˡ(mj}%bJi S'E(B7mnlT& tx:c,0v/g{5JΨ p p TBL,mZAKUtj(|.yv)_+f4#H>ƌf0*{[0rfR]2-: 'Ǣo .q(%R첎CDb|kz& Wt3Ȗn0'O JTh{`Oӝmgn,Iv.E;twQpDEdBG>&.29Q!lNH^mjޓUڽyP1 =@kݰ)}5[HӪF+֘'(5DFJx y8#ntkU2.mkJsd!aX k#8|( P*e`֪^ 6FOE꥘W@-(K?n6m\& ~{ݐӔYX4P^%kb%}77ɤG 1wdUpBs<2k݋ޑ8%% *})cEOo/a5N~܍ ŕ-v'WnyۖcLsOƿtr:ͷpϸ䄎:%sď pEd <k8(|ODwTT 2J_l+vT 4Ro> ɲRc<ʱ_waw 2gXl(,:(M;b#9 BfkL]M[wě\-Y*/E]mԇ2l,[7z$7o٪ ^:4Dc-\1y-ĞsӀ S[TPf60j %d登# TEKq%0nL:b)E{M߶y:l%o956aICt@,E : w;wQ*N7)F yBd[GGMN&Q3,;Xԧy #@ 3'z4$~/$ʇ e mhDM4ېSc٠EB/4sv TZ1{)>"g_D KDl/\Q=%5)y*|WjZsQKS@^ǀWjt.$2/eA넰f3*'81ݷ,o( gUo:X?fQ%*ybվ\X+>xHQ.лD V)00n{%m~Q =Բoc%(֯8[O%ZO?r39sh<8G<# b%?Vj6$,$  &L]s5Si`MwS+M%<ʥjYo.T,eV"w`r<&ݡT K؀! 22g}>]@Ę1: |gPA!NBA/Ee}p06FʹԼp|])ր|&k\wӶ&|#vXɬuU<p-,5 <R0ģ`zanpLnU'd;݈5J}F>X-P9w" ]bϠAGZ@p.F7's暬aeFaK%K5|61<΅jԟG#̥̦" ַ=RPM|<tzyv t9!WeuXDdr`?L :N ˎ..s܊CnRhІ{+v>llq3ΣAvCPpYiffKnnWoWbi *lur=18G*@BaIyrl4ѫbsB'HX*OKz:WE&X0u@o#@ySyud97zJZ6W6?Trr-u=/_4`1ms;ҠJ'W*UP9yfbtòDJw 'Lu0:j!W)(܋擉A.j8/XAT+2"us=21lZkP&}߃ 3tnU-l%eғJ%ɞoyh>wrVF[7 нpH&j8" :úq ,9ErrUO6?x-NaKW"SZtN\x =z.p=.y1}=ٲSU?a6?UVCNjQvX0v|09 - ،/Ry C Ӈ(‡+=dt*oWycc^EY@ {կJ\QYiaLBJw=rxI2y^)YE[}e[Q?5;I 'wh[;7 {vͣ }đ7l I0}BL;\gZ)Ѹ`Va-wݝCEe/˯j-]s {joHW4,IKcF| =5A:^_ S1N2{q;Z&PKؔK_#xwu7Gޯ!GTZ4YOkT`9Eh!˜ 涪15Bxp9C=SvY g}rn]JPZTTJ7߇fߢsN\v 9z2?hQ3e4jW^VE*Cv"KKj:[KzrB6lFC)܉'2K/}CZc3_7{Xzaʃ4:+W/ GvR㲃arF~ '*Ş5%cZ SWSnuL~szo),{nKc:E:H&_ *+k=Vt)}&1xm+$t Nz`$ba_#ӕR!.S|' üsŒ@c%hUR{\  {f%0|gՓwGqur1uDAe0>J0"ynj{] %ң5kHXVS>6Mx{J}D<(?De͹G";r[^ HcFWkn ̟‘s"KD==\߼ /'ob hFӡ68i78-'&-::Q#^@62 L4*H|* G8yq{aɚKQi*A5 6pzrT Qu ;kP6n+U<> Q"7l~E py iSt"Ote8HFMo+cCe)qD%lo_=;"D)_+=YyPBY:"k h-ſ=±"B| dx&Z/Q4q(,&=Ɵ2urmo1X+X:I|.Apݳ0yVo+Cd>i.$x 5/-=!M;d3EZ&6Y=l\Go~HDڀdZ-y0˭A 3G=a3[HلWź^PVWM8wYU`!^Gk2kqÃcxWyQRoSnN: -ji"4LXAZj3 gЄv7;I:9uRm:h4PR:Tlbr4ak-tlrPqQl ޻ zsj4]̮98@W4@}I@`bẀhN! Zm@#mU>@b#k[ވ. CPtuk, c"u>LhX6\3zZ>(YBhiXv5iOX,>&0J7߽+sruߜ6 HB;1]84l 9ڱL] EhZpb!XߖeT 4B[FsA 9|xW[&[ }`H*uHb)0 ڀ8^˭j4 Z=0;fh6G8`v\G^"Qy{;i I P]2MoOk 5f6hVFۄ2.grHeSJa}'qF翴`'+gQ%ϫE> +77&?q%@d3 C% ?fJl6v4*WbeAJo(p'SpuǗm+?a/qV'߹w("9IaxE CTGE{tbvIwCPʻcʣV<#(U#1eISqקu6 Lr@pNkI8Xz>>+]% ?h NBUCH"Hb  хV h'Nɧ6 ʲVZ?9^ۦ7I6"90(}]p:NvnOw\upr}i$ާl.ZbK@J3jr@5%/Rڞ_ۻ-zGJ%-Kf)ǽOtEvmFN[IzCǵ |f9^^c$P( %t {śڃ9 >6T֗;`gٵd׆B,fe}gdPZJtr\JB>xoW9к"Ȝ/_+t8MYă4LJ{We^S#2eu[;p#s'ZW0 [ԐVL=ϽR{ty>74sۓo#J^|a +)&ܣ?_x+3^]|S&c'QCPRnE,J8?3\P.Gx~kb:B _o5rm ֲ8|Ujb!)+*WS?is#eޟ=J@wIg l!^gYU%t8`Wz ?DښCaQ|Q`Mձ;kQPPR]8M0DO1E6ۛVGHcO2XW4,ƚ-u7ƁTȋW^);H!N(g>{zE-#@鄕ʥW1J/ Ԧq[|B4࿴ۂ @:ݞ Q3ai5~*s\+.mEXpI!H.ۊnZk21:wK]8zlFh'Vܸn[.jd|||AַIˡO٬6O]Sj)}( B ϴ̹^{g<=lxTV ΖEwvHΨ}qBU: d='7U]dvF==Z?L#:wj?1N#sZe(`–g]ok@zt\5Ck4(Ul7GՙU!ra ^p$=`p 5KU>>4hD*MRI͚g,ouT匁-Jt=yeCP?qfc &p·*`@1,#넴T\d7ŨCfX %iJqcuD(]Ql"UXVo+iMgIsk }ح]Caح%Yv)B&nTzBТe3Ft]L 7kJ}@7lEe"Lr4a6XC 9xwM\o$ Y!5.q۝6ׁeBݻvHbH󤝷xĞ sFwE Fn G4ya&U -I`^isť{=XD El;HD]罒ERg9OQ ɿUfl%OL6n .m)K%$acV$?> <Й~ 9mbM 2gmm*!҉S/\m ~1֪j~cIPE"UsSbpNM;X+fîrs&ٽ6a{O%vt5I 2iK%em)o:j=T,^SC"QZDN%frZQ0 "h;Jt⥒b2Z7:ߣS ">E?J M@n%Kb*诞+-7xK1ll&뎹h^#MVkS-SnbIYŬ ZIh vJ7ڳC|7_bZ E^lq:c2rvZsK5`1HLm(4vC%%o[z$ `|(%Ok$KQ\z|x`ezER\c 473`U}d/`J{6@ŝ+K|L(u<3U䛔i `&zچoYKLIlxE,Ѱ:'[P#eB n/ܟQ<%~Z>Tw7r#o8:&)T`'.e"5[s*A2(x"KUw+؄OFՌKÔѭ%ca,\n$M`eySlQ._-z, ̦!se_Crw.clܦG̔+-4LJOs 5]} nR3:]=0;Q+,b.ӆpAe7p܌+ޠnofl-lJdfc8B,jW 'Ve%¯S50ң=0|3_V3Y"bQ NX$egsw 14#!*FqbcRm?3 6pag8%b`}0geƺ-(KyXF09,'{*X4H!?IoGf㐃,ӨioES t L4 q4V\tWu 4A xu1,!0[(A"×Z*af]NCWͲlKv.0Itխ.4Hzޞ5o $@+˹Xr,IvF?g;7(uL?@xW?}W_/{Ǧp|yN\63zA_ÃB $6Q;z#l#!]A6U9 rnW?䝻Hl )l+F 47gLD FK7}$/۬s IJ#z@^jql58UOfrOUW<7b nCOo5Mz4e1yO2;h h@DIߍ ; 1w[[5 % F+/,w6n낏V 4D9G͔u^@ tim5#ω;& K"]J )?w;GnaB/veL%G+4C:n{ bv\k؂h-ZHJI}czw}Դ;vbp:]"ωVpm%:k3MWnm3[L1憕\}qQZ5u2OWxYE8[>+;-[>̈",kD j&{D&eC0S!8Był q t̛#/oҏjhegdDP ZVq Ugˁ?6QNmWYR7絈(*ܠ,(Y`]KgI Tts5RWWoU/򝼅2՛\)sm+QCUY֜30Gdu׶DHR!W5]ǃtUe<ÜsZك0t􄦘YVh_4* s ud8 ĸ;9ƇB 8uC&J*x(,*< *1B*SVNLUYjEueu(_ƌ G0/C>U,D[~ EѝF+.I; u2m?M.zzan-rk˿ t{^cj.<5}p2Jh"UP$EtCYY|s^{+!P˿\^ǡp w? ɼ1>[,јcVV<_+r~ v)iRm^7r*H"!=ؑգ?dhO^@&儬w3/@nS/edȔ& `rmtЗ52T>̍)r:GzKo1?UsTUX5=@P~}A8﫺7LA[fm'jIwbO@9 ~t;=S"0[P{{K\%h+`=LPKaKHѮP>W t#W;&yLQ:`(%KMnTH؏kkP/8_'E7$,3%;mN?Q@PD&f{7!%`/]J۱FJk{848H;"c p%E9]i| Bz.{sٙH5i*nbY4]鐦piР ?7> Gv?@hPB4@j0'hB@Q3UNlZ"y:l[ڻ}8mhVN3x'|#Gh݅rQGL˾ \!$fC =o& e Q%)\,.X~OL8AYYU'OlM )L |h[?6Z Nna}f[*1eDT0]NP4`ݭWO:13b`bJ0PkKS^/k'vd\dAŐ0K~E͡Vp.1HC-^YM ]5g"dl ܰ*{}^âTzKE,tSu 5MU\8Gqw]+9I`tZݷt>Fx1ǽ@?ce,9>WE~UH 4HA1 c&ՋH7Z'EܲSɴӆcll::9QH >^O8Š$BcgY]b#ȑmXULQ= ":s/EU ua+TWgEW:6B|z$v": ]\k>M?X}'Gn(1m+{R/l+~ #j)z8O91Zm1)ZSTeG#]G6Jѧ04. w@) '|VuwUQf^ss@MKdNLg%Dk^ˠnׄ4/NUt7F3E`N6Yx SR~+9yT- 5Lw0S.Z ǔ Xm~RJ:x_"9 Gϰ O9 G)b}#U/-Q.}ᥫ1u+}V1PK"pmTc޸,x#W{6wq[gЪP~ iAf!N3W*`OFeѩp\Bja)4OiFna!k=BV̂} U[6<3=!Hl,rS{1J7{(sUQAXIۢQl-G IYHC;Bhbq29)%A˨G Tp|4Gn}:lA5Fw5b>דl_"hlk'P' TfTSV6o9uoGΨ={x)CV_a wGhLZ*˨R܋+W-<NrM~\8}72fyځvKK1/QPx!l@͸ED)q@Itzt"M/|TDO$$R&d2$!&V55o" _ٵ+ LobCdSs`b $nX- Qo6KQcbG(wHIHOiXaDϲv4Fn{rdD9Vf\brsQHHe-ⓚ;Fx>[G K;WW6%f!v*vAb>-c@~%^e:IgO? y'Ӄ9^MKHo w0%/'u"MGDh+NsM$&ۥ @l!|L9ftD)G\@HK = ";`+!/ulJ񾡛xVM,Wp8$FĆFwnJX='o\/&*0?p}raFZUJBaG[MstJ˼Lp{zJEk3]d9TR-UòfllΟYq9jslro/ߪn!E "KWNC يq?6)tn /'lRgIszGE*_Xrvfb07a7EҼt7 :6NӚݠQ9aW36o멲}zQHD޴^esrղZص,mGVhq2FwݰD>IptԬl#yHt?|ȁ,͏9hE"b9 MM]lNLAHwM+ 4$ l{vCLo(JGyLT>@zu#0T A)!uaM@Ph82/ShО{;I}OF~WNL\Kxk󠁺>mV`%3-uD"bfp[w'Р P[cia22[JJU >E$9Um=pd2Wla̓sN뫜=70C K V4Z/FVGƶķŭZa8 % JtXZSul(&G\PRbN~u&Pp(3]a0(`S/;I;#ܡ[qD4CYT91g,n>`Lz$8Na;mIBYí vMZ3>vwWPЂ#iώ\Nxt!M,}e&:77eQ~FnO]ɴTUe6D{g*wU,Or2 /P% brp 0B5S짋Ri}1W%o,"ڃkW[`x+gPm{Hdo1,,a݄%hy^CğvvB\NMAo-ӲIzozopGf UɷME}崠%[o71Xa~Yn c{Ru =w62}4"w=lբ6ğ&G3]L16t 2 6tˆjI2iO-.*+CDw t}/ pAĎe>ǞDϩ#Ӳ<r5.ܗ>.箻)X%.F{/ڠJ|mQ'5݅r,x~{ih=ǹ`ls/BT@P ؚΘPf{n>WF-ᘬѼR-~i$Eo04ڿ=50̛y B\}GC_]5? Hev.x>i]ʏr{\fם>ҫeXY[vER -DG ^Yt`t?Mp| PPCj"Nx.)m=`hЩ\c؁vBiv@:RcOOF/ s=9ʹ/_U1!tVGy_L^mp))_3!(Ą1 خheCӷVLϾlMVƘ4}X}?=3ddۭiU7jǁJX]Ů[Um!G'N"6Q4҉WiPz讷zY63Q3-8C{@ti\~0_bw*i_E$]ڞjsȂgdO ћ#/}*`E^jzB?BI'į}GE#"o0/]&qqWwX?YaEIdž+)5kKqZ2l AP ǰmݗK*&ݚ?4F#QIksYqJX9q@lRh`nTȔTP [@{C9#)3(Kܷ,o#Wc8#-۸dd"go/vt:{MU[*3B#x,ϜX]Fc5Bv >a6 ]Ó[mpsonţl?&P|u,RHѥ7u7L'Mҙ>n N=qBF| m?W х(BMf\E6Ю|~.+sFlXqD \3.^jPʿ0t1ڄ187Ŵg% 4N14=7"BqU4r?؂mF""ОGn0n^s3jN(_wq92ilVBhhҍfU=bۓ>5ミmx%&5ڋ͘sI=ELrTv%gT;So K.M;{Wc1Kh(+y,؎FߋhOlf ͝CAX ɊJR"{ :4 1HxKj<*2\YIHļ@ 6nQ1ڇ|H<|d/ D\5 MQ?Ϭ,fkH|]M޸J:T;BxgwZg(T-Y@YQbו \' $JxBDL33Ɇl(n"J(;o |u) FY xqU(}w`RQdZ ;a+jYQZW4ةm Ęo:y>|D Ҟ0WFݦs:G%k1sc$>^<$ M+9${U<6g[R&څZ/"eS?nR**kuɪLAyt`oMܤTsm'qEzeBȚkAK6y,j*Ag(=gL,+/ɴHo,u3Z$7H"_*סi(̡SgVmho5!軀#4 j딠TsY4o~Џ,^3Js 5`1N&RMX8IoSnD>v.%CDSWFBr8Nc&W<}".c|+psIi~>+#55e1? GL*Wp]X4ÖEbЗjYVHO:eNIf&-`hb+ۜXb)tu0zt?d@o~hE淟(4 k!MRG;]T}0ì[C/%MgO l#xm |GޝR_҇L•7j|KeYw)+=>Pu |<>4Z,̳5e" +Zg/7ɭQ'*S4tz7(Dg!?K W\aQ `a;|^^%~1 uwqw*X\N7/gX) GaqGJ6*sIB~HciyW/0tw`Ӻdmzc NTLAC5J"D'6TN'z9g1L @oŢfB; PoHPC|GV@"_~ι ~R;+=T\clKզ*F mTϋcաKK|o7-s3,(~a *I!ѻaKTJ贉vP&Qv#tD']7]?j0ZBSIT7?[o9œ5LaN8aJ(Nq՚҅C:cnhQI8&&Nw,q@j9x#h%%7NJ`MڜZ_܋^j={_.#>B ̇)M)ukK 8yR=Lf+0@^@pMB1սᡊ92H MQRǶ(AGQli?*54ں³nBr*joI; xqF<^bѾg"O -R]:Tܴ"gIC]ofK~,p]xֶhpsgCHBr ?P0͸Za27]}\ Xz"[`.t!D>N=xk! `en?0qBYGj+)ܴ*N{?w.^Њ[!Ⱦk E OkKl:<2=Z]efCUa$sqȔ{cL)!-_*ӢcMų_"EoObEB'rM ב<D/HmSfq gtK;8=H{':Mp& }؞Fƚh'çVnߊ?krn4E>2;'D3l/NAڌv*t+8IQkTpꔿirL\k,(d8RSƄ5XӤn3VL|@q>݂ē5o;+8kixQ>1gw("*P$Y~*CK!hW M'r|J#NA|{oSCW?> )ɧ>6`c2Y@$ol`}r*vvyyМ_V5בsn⼉D䎧=(P-vrT4勽Tf+ 6dd=~7rQ?8`hT*wr/Ie6@]wۖs[08=BXl*JE65"7A+լ I5ё-TFR@(a 6qVAQ|dڤf6l:b~{RӳQ#Ƹb+[qgnkHWM,C_P_QF+CI;qz:?g7tbj:[X [?w`XQkVU%-98%? UAjȿ>bm{eluw =bVj2WyF! 7^`DvCʾ4S˞ɦy<&Av<\3d:E+U35} dy`sQh}p ]nN`g)tvEt'܋`bI_J 3rk`~K1a3(q+BF. ]?!/ӣO!I/F1$Z]3Y:<ڲ^iQY AMޟzwhR/s8Y3(=;/1=B:x~ -DL M-V R.? ^vϯ~5B SsVQvR>$'A'7P9AƉR $BvP_e/x9eN?#GXh`|~EY gYPaL !y#*ycLx[ )皴,`I@"prre W=GXט(tna'4dx1˸I-$)i SeƬ&Mm=^fTsܵ𿊡reZUBD+7Dc%qr:CR8cԀ;̠vef bri`=mOj_Fp]'M(ћ@Ļ=R@_·KvJ&PE$8jة j $:0RcmK$ 56&uzNGdD>Sq㭫mb<}عw$,V,2«ms|F*W悄Mw&qun N*᳔|:YS`_L (LQ!R2t,S osKDG0$8O_~]pή7,9DU!޵ӏFA2[.s(017C'ⷎgȂO ?vAO@Sy:tH ]s=cEc=? vW)Mh-+i{R9t 念P䫃x܉fE+WLMz'@`ZtJLKދ)g,q>s7حW W/Q]6xXzmSQ[Lc: zw"{ `S|;-hm4h.*\4 L%!ݵ?>-qL.^">FNV"p,5vdI.~#z9Jc &Hs\䦸DLɆ4u63ܨC1WFpH7ݫf#T)T OYr0Tr&a&${hx1~( ϐ"' p6SWRa@~'_& =;@En7 sx QYH)_A^@1o̎Z]kWpؽ(~(jHu&AnV<ZT.%)G=M~DFZkU1*RiGŕ|+0>4nUR\sOǮPyu1"8' nwbYS腯KW-U䂟x-9vSn ^o*csMsEwCrlC$q!ٴ,qb^d>_L@r$mIrB;%ǹfk38@łbȭS08>)|pw#иLcdΓ*$<#-TY6=[B;U I. _emx\aG:̮Dj ;lб|sF]_P xHuD RqTtlA3T=P2@!>卺`r= >x]P}]絕=ouz2iҳ7^\7Fܾ|vly1`\YoWPJL&%GcFAZ4oUvr``:@Wf2_mE}G@ Mt _π@)d r4D^6o~22g$Eᚣ_jѩ+?w5W|~޲"]St#5~m}x?ͣ#3ǎ&}S<12.܁J.b-&W[:(-znOߴ# # !~/ph3^ Ғ.Xu)I+3;%CesЯߢ@!h S瓄 _F&#iCC@1mք4=ѝ-2>L`3۶K M{7Os?6@;&Fr 0kP>4eiɑz+]?OHeXUJR'`{b=F\ďԄoė 3TGMTLW,^;z/aŮၱ${M/79 +`ڧ0.L-zUo~Ebъkm璠1K~D͎Q2JcDɺ*[6o%H;q\R 03),uTR%ޱ%&dޖ b@u)5ib>LIHm4'vN'>g6H0$\bX;Y@Qb[Qt27Ųv ]p"F^ل^6jnhWlp1[^I+/}c_Ĵ# 撱 Ѓ],^Ͱť0DX5.T[]2nqF4o7ۈV/5u_); \a1 CzncCFo² *_x]DݪshHcS5οnt@,%&H\ccQv=HM`O?zamcil1"w0?E+Om,*J:smbW<"o7; Y5g7[I(xKsļ|GŻG'pE"eހQJ&+pZI5g:a#ƃLkC kJZ8ŒC{Kڶ(c jNa!Wjߐt2z^X t%Ԁy`+/֔w6|QO {w:xCf'+L}++"b*\ ]%Qy( I-xXyz =v&`|ᵉ RHk<(f_SQCOX'v,Opj`"[0hj0 Ų0C] a$9^JFZ1~If!*g.yr6boHmҰ, ")ilc;+AqZ(!z 8>ݾWFfW1N0_Q83J޳Ǯ5վ[SuѫĻ \@ &(tf U'EISsZol҈$_եZDZ[˙ʃ(';5Ț0ڹ L nJ4L~WZsyH4= ˖,Z_T̻d&29\54$&b;Ԝy35e'~|ڑ{Q%Bȼ'\( poԃntiF:s:h=F>":46"֑CqgG4X$'W"LEӆ8{eLtIlljjGɮFv+yKE,s] )sv_b%Ad>鹦B{voE)](%ra(e9rh@[`ŹP¥[~Pj L