Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1757227AbZJOKLH (ORCPT ); Thu, 15 Oct 2009 06:11:07 -0400 Received: (majordomo@vger.kernel.org) by vger.kernel.org id S1755459AbZJOKLG (ORCPT ); Thu, 15 Oct 2009 06:11:06 -0400 Received: from ozlabs.org ([203.10.76.45]:41880 "EHLO ozlabs.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1752894AbZJOKLE (ORCPT ); Thu, 15 Oct 2009 06:11:04 -0400 Date: Thu, 15 Oct 2009 21:08:54 +1100 From: Anton Blanchard To: Nick Piggin Cc: Linux Kernel Mailing List , linux-fsdevel@vger.kernel.org, Ravikiran G Thirumalai , Peter Zijlstra , Linus Torvalds , Jens Axboe Subject: Re: Latest vfs scalability patch Message-ID: <20091015100854.GA19948@kryten> References: <20091006064919.GB30316@wotan.suse.de> MIME-Version: 1.0 Content-Type: multipart/mixed; boundary="6c2NcOVqGQ03X4Wi" Content-Disposition: inline In-Reply-To: <20091006064919.GB30316@wotan.suse.de> User-Agent: Mutt/1.5.18 (2008-05-17) Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Length: 37958 Lines: 562 --6c2NcOVqGQ03X4Wi Content-Type: text/plain; charset=us-ascii Content-Disposition: inline Hi Nick, > Several people have been interested to test my vfs patches, so rather > than resend patches I have uploaded a rollup against Linus's current > head. > > ftp://ftp.kernel.org/pub/linux/kernel/people/npiggin/patches/fs-scale/ > > I have used ext2,ext3,autofs4,nfs as well as in-memory filesystems > OK (although this doesn't mean there are no bugs!). Otherwise, if your > filesystem compiles, then there is a reasonable chance of it working, > or ask me and I can try updating it for the new locking. > > I would be interested in seeing any numbers people might come up with, > including single-threaded performance. Thanks for doing a rollup patch, it made it easy to test. I gave it a spin on a 64 core (128 thread) POWER5+ box. I started simple by looking at open/close performance, eg: void testcase(void) { char tmpfile[] = "/tmp/testfile.XXXXXX"; mkstemp(tmpfile); while (1) { int fd = open(tmpfile, O_RDWR); close(fd); } } At first the results were 10x slower. I took a look and it appears the MNT_MOUNTED flag is getting cleared by a remount (I'm testing on the root filesystem). This fixed it: --- fs/namespace.c~ 2009-10-15 04:34:02.000000000 -0500 +++ fs/namespace.c 2009-10-15 04:35:00.000000000 -0500 @@ -1711,7 +1711,8 @@ static int do_remount(struct path *path, else err = do_remount_sb(sb, flags, data, 0); if (!err) - path->mnt->mnt_flags = mnt_flags; + path->mnt->mnt_flags = mnt_flags | + (path->mnt->mnt_flags & MNT_MOUNTED); up_write(&sb->s_umount); if (!err) { security_sb_post_remount(path->mnt, flags, data); Attached is a before and after graph. Single thread performance is 20% faster, and we go from hitting a wall at 2 cores to scaling all the way to 64 cores. Nice work!!! Anton --6c2NcOVqGQ03X4Wi Content-Type: image/png Content-Disposition: attachment; filename="open_close_performance.png" Content-Transfer-Encoding: base64 iVBORw0KGgoAAAANSUhEUgAAAtAAAAH4EAYAAAAz0AYZAAAABmJLR0T///////8JWPfcAAAA CXBIWXMAAABIAAAASABGyWs+AAAACXZwQWcAAALQAAAB+ABN1LGNAABmAElEQVR42u3dT2hs 77on9ORwvPfQnONx/9gDbVqws3tw1eHOwBbhOkgQdCAoCeKo4ciOID1Q2CYT8YhoJw6UiwM7 gaPOlARnooME6ZaemSCNoE4ShItObPem76Xt673XLgfP+VpnvamVqkqqsurP5zN590qtWrVW 1araVd966nl3R6PRaDTaAQAAAACAhfrR0DsAAAAAAMBmEkADAAAAALAUAmgAAAAAAJZCAA0A AAAAwFIIoAEAAAAAWAoBNAAAAAAASyGABgAAAABgKQTQAAAAAAAshQAaAAAAAIClEEADAAAA ALAUAmgAAAAAAJZCAA0AAAAAwFIIoAEAAAAAWAoBNAAAAAAASyGABgAAAABgKQTQAAAAAAAs hQAaAAAAAIClEEADALyz3d3d3d3d0ag7HhwMvV8sRz2+l5ft4z70frFZ6rz68KHGx8ecd5PX Ozqq8f6+e15++9Y9Xz98mO/2b2+9vg1j8v0+bcx5cn4+3+18+fLy453z6Pq67/Gf/Lr4+Pjy 7ba3N+/69/eLud/a8fZ2MdvL/n7+/PJx5fk7//4t9nxr92P28wjYPgJoAABYgm6Q8OVL99Kb m6H3j010elrj3l6NV1e5pBsEXl/X2AZdCZxzvma9fgkka0nQvF5ynpyeTgsQExjXUsa+xzvn 0dFRjQlW29fBh4d2f17+4qO9vWnrt+f3qr/uts/PPv0B9XsZjUaj0Sj3591djTmPht8/YPUI oAEAYGmeByP1wf34eOg9YxMl4Ht6qvOsDfgSUMfFRa23u1vLnz7l7zW21x/rBn/ZboIoVsPh YR7f7uP8ww81jr+gKG1AnMc5j297ec6TH36YfB61gW8qnhNQ9gXC46B5cqD59DTb+u3r76zn 5/P77eXx8PC126vL2/8PEqz3Bfz54iD/n7x1/94q50GohAaeE0ADwAbr/lS2/al1xv6fyHa3 kwqmcSVT309iZ6ukyk/F84E0P9mddzvt8Zyfz3a8s/+0fPLt5nayn323M/6gOOzj9/lzd/2+ n0z3//R+UY/bbMe9LudbKr7a/cpPnp//9DnrLffxnr6fL6+f22nP79xvOf8z9t2fzwOt7u0e HMx2Xuby55V1k6/3+teB7vXnf34v6nyb7/mS+znHMw72usc5Pm8qmDo76y4nuD47ay+frK24 Pjl56/Es+vFo76dhnl/vdz5MU4/r9++11AbAff8vPg+eu+dJtteeRwlW2+D3y5fu9drL2+d5 u9wGntPW7/tCZnjdSuJZ5XF6eqrzJq0wcv5NP4/7dF+Xp1+/9j+PX8bZrw9skXrBMBqNRqPR uEljyQfZ/GXW8eBg8vba9b59m2175+fd7eSDU3ox5pL0ckxg127n8nK2/Zp1vL19n/v18XG2 /R7f74t6/Lr3d/t4tfd3lnP5/f2yHrfZ7ud1Pd+ynwls8lP1afu57Ofr8/1czPNo1nFvr3t7 CQpnfVznfT7N/zrwusdhvD/l/Z4n3dvNT/b7XgcSBD2/3cl/z/Y+fJh8e3n8+s7n6efp+77e vv/z673Ph/n2P/vVPv7t+Zwgt//5PNt+5fWw7/UnX2T0PS/b/Wz/X5v2PO6/P193Xkz7f3f2 87+kVcnz/39f3t9ZXz8T+M9/Hr3tcX7965rRaNy8cfAdMBqNRqPRuMD/2DsfzPKXjPkAl8sT ILQfjJ9/8Jm8vVwv2+n7QDsadbfTfkDpu72+D76fP7+8X8+Dk/I8gFjM/doGL7k/sh8JGKbt dwKixT1+3e2222sDwWw391N7XIt73Ga7v9flfMt+JUBo79fn9/+wz9e+/Xx++7PdP7Ou1wY0 OZ6cbwmg2udt+/g9f95Ovr3ZXwdefhxmf35P3t/lPU+622u/QGqPu+91IGOOow20nn9R111/ /i/Y3uv19uXtLP/59d7nw8uP76zj6emsr1/z7de018H2C402oM792/7/Nv7iZfL5mb8cHS33 fpsWQM865jhn/eKn7/+p9v/F8f0573k03/Xa87g/SDcajds3Dr4DRqPRaDQaF/gfe88HvZc/ 0LSVN6PR5PXa7T3/QJfb6fuANvmD0bzjuJJn2gfBaffLsu7X2bbXd/8s6/Frg5WM+XuCuWyv DbAW97i97v5Z1fNtWrAxLXgZ7vn6uufR4tbrrt8GuDkf22B11uOd/XVg3sfh5eN4v+dJ3/HP e9yzrZfHp7387Y//fPs77+Mx9P+HQ79uThvz/BoHz5Ofl+31FlcB3V2vfb63j1/7hVf7hdLz /X3d/TZ/xf7bHod2HH/R0t1u20rn+RcU3fXmP655779FX99oNG7u+OMdAIBBpWfgrL0Z28mH mKbe+O3vd3votoF3OznZw0Ot3zd50bo+bove73Hv09W2evuZXqW1lOAvvVDz+GSStHWd1GpV nifPt1uvC+Peu1mux6Vd+3kP6ZKes9NuP+tlMrZNm6xw1ufXe58Pr7+/63r5fyD70VZ2T+sR Hnl+R1/P4/w9/x+112vvjxxX3ySJ8/ZWXpb+xyG9wbv7/7zXfV2/r2f27Lq9mZ/PUTB5/XG0 XMY9wIe5P4G1NHQCbjQajUajcXFjWbUWHNN6Pabiqa8irQ1K28rcdr+WVQG9ri04st60iqm+ n/a2AfXbH7fZ7u/1Pd9mPe8W/Xi/bT9nfR69fb2++yXH2V2vv8XKol4HXn4c5m358H7Pk77j f3m9tsJ01l7kbYue9vJZx1krMNetBUff+Tb06+brK3lfPo7x45H7r7t+7v+2N3nGvv+HprWK 6bve+PW/u/y8snvZ99u82yvTe0CXBNQ5z8fn8cuvm+3/i9Pu52njtArt57drNBqNg++A0Wg0 Go3GJfwH3/lgmL/MOr520qW+sW9SuPknxZv8QWvW/V9UL8t1m4TweQ/d7v3cd3+3k2gt7nGb 7X5e3/Nt3vNuUY/32/Zzcdudtl7p+2n/9PFt+zXtC4FFTUK4/OdJ93bbnrezBqKzP5/e9vzd 9EkIp032N9Tr5tsD6O72l99SZPL99fx5312/r8XU9FYhbzuevteReV9/nz8vZ339mm2cHsT3 7f9812v37/p6Ueef0Whc/3HwHTAajUaj0bjE/+h//YHv5Q9oqVCaN6DKB9H2g3OW+4OLfDDs bqfvA3qCg76KsXa/lhdAd7fX16M2x5Hjev4BeL79XtTj11ZOtdtptzetUvr1j9ts9+/6nm+v Pe8W+3jPu5+zno+LXi/H+3zyuxpTGdh+YTJt0q/Xvw50z4PXPr+X/zyZvL/5S3/Q173f+45v /uD5tefffMc3/+OxGs+voV43FxdAT74f+/4/yfFNvz8nb78Nup9Phvny+T/75HeT93/+8W3n R98Xcn29ufM61ldhPp4U863n0euep9Nfh4xG4/aNu/kHAECfyT0AN7WXJ0NzvsHs6vmSgDNB 5s1NPV+Oj4feP2Bz1etPKv3z+hOfPtXr0OrNQQC8vx8NvQMAAAC8TgU8mZwtX9AcHXWDIYBl SQuRvN5kkkLBMzAmgAYAANgIZ2fd5bRKAFic7i8v8jrz8FDB88XF0PsHrB4BNAAAwJqr4Ofh oZZOTmpUgQgsSwLoq6satfwB+ukBDQAAAADAUqiABgAAAABgKQTQAAAAAAAshQAaAAAAAICl EEADAAAAALAUAmgAAAAAAJZCAA0AAAAAwFIIoAEAAAAAWAoBNAAAAAAASyGAZq3s7u7u7u5+ +FDj5WWN377VOBrV+PhY4/l51h96v+c7vtPT7nG0x3V6Ovl6Od6sP+94fj708QMAAACwWX48 9A7A/K6vazw4mHz53l6NCWo/f67x8HDoPe/TDZb7guAcV4LmnZ3RaDQajS4uFrMX378PfT8A AAAAsFlUQLMWKnBNANsGzycnFcTu7tby2Vn38oOD7vVX1Zcv3eWLi+5xtUHzeP1a7+ws6/eN tfbxcXc7Dw+LDbIBAAAAoAigWSNppXF3l7GC06urrPFykDoOoOdt5THrHtb6Cbz7KrTb9bNf bUA+Pq7Jy3t7swbr3fUuL2tMxXMbSAMAAADAYmjBwVqoYPnhoZb6W2m8HMg+PXV7Qt/e1pgW HU9PNeZ2EiCnJ/OHD7UfJycv7222O96rl9d/vr91O9mf8XJab0y+/nj9yRI85/hTMT3tegAA AADwOgJoNkI3WE6P6EgriwS4aV2R4DktKPb3u9vL5ff3NX75Un+/uuoG4qurW4md8elpWS03 6vZ+93dr6T/9T2v87d+e7dp/+2/X+Ad/MOR9BgAAALB6/uF/eL71//bfrvznH//Hh95zLThY axV4Hh3V0uNjjakITm/otid0guXxcrf1xmhUf0/w3Gqvv+oyuWEsu9fzv/wv1/jn//zQR842 +0f/0Rr//r9/6D1hG+WN4bxvEGGR/ol/Yug9YJt5HWQVeB1kSF4HWQX/2D829B6ECmjWSrfS OS0lEkCnIjnB86wVyukpPev6P/95N6ietr/teqnITjD+vAVGWol0K7f7W4v0Xb+W2l7UNzev vf/n8yd/Uvv/5/7c+9welDr/0wonz7c8z2G52rkDJn8RCsuV9x/lL/7FofeH7eJ1kFXgdZAh eR1kFcyaW70XATRrKC02EqwmWDo+rhf2TK7Xpw1sE9Q+v/7kyQR/+tNFHUk3YM5+ZX/SKiT/ UWV5fBwv93BOMB+ZtHHa/QMAAAAAiyGAZi10ezK3gXCWv32bPElfZPLCq6sa05oige/9/eQg OON4EsQKcp/fUvsNU996k2W/8k1pJj9sW2i06/dpK6ZXv2c1AAAAAJtFD2jWSFvRO79uBXAm HUyQm9YebcCdnskJnhdfQdydFLCvNUeWz85mm0Swr2UHAAAAALwPFdCshW7PpLf3Tuq2rjg5 6Y5v3e6sFc9910+w/PrJAms7qfgGAAAAgGEIoIEF+9//9xr/7t8dek/YZv2TfMLyTWuRBO/B F9EMyesgq8DrIEPyOgi/6dfzwg69G8AmqJ7VX7/W0ulpvb58/Dj0fgEAAABsi8xR9tZf6i+K HtAAAAAAKyYBUnds5yzaXrPeP+5HGJ4AGgAAAACApdADGgAAAIAN1vYEf3gYeo9gm6iABgAA AFgLBwfVQuLxsdtSIsvn533XrMs/f67x+npya4pv37qXf/78tu1cXtb44UP3+h8+dC/P+u3x nJ4u5n67ve2O4+OavP+npzXe3k6+PMc9Pq5hjw9Wm0kIgYUxCSEAAMBiJLB83bUvLurz2NlZ Nyh9fKzxeXA62dNTbefTp5e38/TUHRPw5vK7uxqPj2tsg+D2+m2P5vHxvHz/HB7Werm96eu9 7X6+u6vtHB5275+3Hx+8xapNQqgFBwAAAMBaSOuIBLnfv9eYyucvX7pjAs29ve71c72Tkwqo vn+vwCrXu7zsXi/aYDkS6D491XZyvWwnjo6620kgu7/f3Y8EtAlyU5F8dZXbWe79fHMz+f7J /ZzK5TZIXp3j29395S+f7y/LcXg4Gv3yl7/5xQddAmgAAACAtZBK2XFAWcFlguYEyGkBcXDQ rQhOpW4C0qOjbmCcAPW5bsVwguxsJy0l8vfc3tVVd7mvRUgC2GnHn/1cdgCdIDhBfeQ4+gLd 5y1LVvP44H0JoAEAAAA2XHoX11KC5gTGbXCcIPu5Cmb397tBdip6M7YBbbb/P/1P3b8ncJ21 QjfbX5dK0/c/voq59/Z2dv7tf3t97qd15wuDaQTQAAAAAGshlbRtK422svj7927FcoLNtsL5 +LjbOqN/EsNWXa8NsC8uuhXV6RWdoPp//B+7Wxn3UB76nl2MNoh8v+Or4DmtUe7vd3b+nX9n XMFdlfPjinR4Xz8aegcAAAAAmMW45UWN377V2FYst0Fj20oi0jojk/D1V+rWegnAR6Mav32r 8fY2Y62dsb39f+/f6y4fHNT1sh/j7Uy+nbYn9arJ/f5+x9cNnnO/Z3nci7vWq9t93rsalksA DQAAALCS0kIh48lJjak4jlTenp1VxW16QreVyrl+X2/jTG44vt1uL+mLi/p7xtxu24IjwWcm 88skhf/b/1bL+/s1JrBNYNpeP5dnEr/VbXXQ7Rn93seXyvW+HtQxnvxwUYF0rl/j+Xm2u6z7 mfW0Wyf40LsBbIJ6Y/L1ay2dntbry8ePQ+8XAAAAbJIEvrXUVq4nyM4XCqmQ7+/tXfLFQ1p2 1BcQ42A7QfV4EsuXt1fB+vMvTFi2VNiX6dNfLpse0AAAAACwBioQTpDcBs+pwK7e3uPg9+Sk rpeK9FyvrXweV7LX+tleKrhnleslqBZAbzstOAAAAABghXVbZVxeTl6rDZ7HUtFcYyZFzJjK 59a04HlcMV1jKp5/+MGkh/wmFdAAAAAAsIK6LTCuryevdXKSgHnW7XbXT6uNBNypkE6v6rYX eYLsvsktoUsADQAAAAArpALhVCAneG4rkq+uFlVp3AbSQx8/m0ULDgAAAFiimgzq8jKTQmUc er82TXv/1tj2uB16/05Pa3x87O5nltuevn3bOT9/eTvTJoebtt3b22UfT13+4UP3dr99m7yd XN7fEmKx9++qPE55HFKJHDc3FRifnMz7OMMgajZEo9FofPtYvn6t8W/9raH3x2g0Go1Go9Fo HHIs+el8/pLx+nro/du0cfL9fHCwGvuVwLLdv77x9HTyds7P59vO0dHL+5VA9/l23+d4Utk7 63Zub5e7P8M/TvXX6vGcv4zH+/saP3wY+rw2rvY47Xn83qMKaAAAAFia5xWb9YH8+HjoPeM9 ffnSXb64qPNgdzfLL68fbeXt2dnL20kQOtatwP/2bfJ2l3c8dfup6G0rgNvjOTvrXn5w0L3+ ou/fYR6nf+6f+73fq5YbFTA/3256LR8eVpyn9zLrRQANAAAAC9RtYfC8lUHbgqOWP3+u8fp6 ciuJtCZIK4/+VgSz7d/ibu/lVgPTtzPf/uTyVJa/9vjT+iH71df6Yd5gtr2dBKVtYNr27G2X 9/Zy/RqftxKpQLMNRNvl8XYmr5dxeg/hRR3P5Os/P57Jxzfr9ua9f9/3cforf+Wv/tWdnfHX A//1f/0P/UP1r/a8FjyzGUxCCAAAAAt3c1Pj01ONzysru4Fsguos53oZE0xlOwnKDg9n3aNF 316C51rqC2qz/Wwn293ff3l/+raTitls59Ontx1/tpPjfnioMUHiuPdwBYltRe40fUFrbm+8 XLcz/fqvk+08PbXH0Q1O+yp6F3c8dXkmuXu+Rne/+o4/t7e8+3fRj1Ndq87ff/Pf/A/+g52d nZ0f9ZaF5vWjKqfHxwvrSQU0AAAALFAFVamUTJDUXp4AMAFoG7xWxeNolMB3f7/GBHdjbQXm 5DG3s6jby/Xb4LltWZCAOJWbqXRO4JngLsFv7q8ffuhup51s7bXBbBtgJ9jb3+8efxvsZ1K6 3/3d2e7nRcv90z4ObYuN11dsr4ru+ZUe0ZHza1UD2e7jtLdXx/M//A//y//ym8fzox/9I//I b66Xo/kv/8t/99+twPn4+K3BcwXe9QXKzk5V9huXNa7OZKerSgU0AAAADCCVoBW4JbhKgJkW EPl7guAE220wnMrVvgDy7i4B62Jury9obVsoJED74YeX743sV7Z7dNStgG17Bb9W334nYJ52 /X/1X63xX/qX+u7nHM9i9jf34/fvtX+5f/M4Z783JXjO41yT8I2dnHS/2FlNaazzn//nf+2v 7ezs7Pzz//w//U/v7OzsfPjwO78zaf22Ecr37//9f7+z0392wboSQAMAAMCAKlhLS4oEpKmo y9gGjA8Ptf78Qed73940td1UuiaATBDeBuLTWkTMKwH3rAFut3J1uucVrAnWuy0dprWaiLYn cvY7FeaprB8HuN2WF2+1uOPpVjpnf9vHP8Hz8wrw5dy/820nS3/jb/yL/2L9q87jv/SXJreS +Zt/80//tNb6j//jnZ2dnX//3//X//XlPE6x6O0x2apW5K+QOsGNRqPx7WP5+rXGv/W3ht4f o9FoNBqNRqNxyLEk0M1fRqPXbSdR13g72f5y9rv/9mpMwNZefn7e3U7bqiMtI7L95/dPLu9u J9frvx+n3T/d/chfbm/f5zx4fHz5fmqP7/Hx5fPp+eM+eTvTj2/e83Sxx5Ne3OP9zXnzlvv3 X/gX/rP/rJbquP7iX/xP/pPZ9ufl4/oP/8P/9r/NvZp76aXxT/7kD/6glqfdP8s/D43bNU57 Hr/7/gy9A0ajcXPGIoA2Go1Go9FoNBpHo+nB3uRA9Nu3bhCXsQ3Gst68Qd3ibm9ykDZtHG+n xlRgz3r95/djd3/a9doAOreb/cglOd72fmj3exyMv+1+nzaenk7eTvu4TBunf0GR9abdv4s6 nrc+7pMe1z//53/5y52dnZ3Ly/pLLukb/4//4/d/v5brcR6N6jz+L/6L/+a/ydZ3dip+rkd/ tu2ORvX4/N7vVUX63t7iHiejcf7XndFo6P34//dn6B0wbuZY8tOZ8Td9xs0eiwDaaDQajUaj 0WgcjWYP9vK5qcb7+5eDqrSq+Pz5bfu1uNvrbq8vIO3fTklrjTYYThCcz5dtQNwGzO3t9lUK pwI7rR/6AulcPn/wPPl2E9y291OWnwfP3esnuM392R5vHs+jo0Wfp4s6nu750nfeTRtrf0ej ehxHozru3ML7jfU4jEbj+3tZj5PROP/rzWg09H5k3O3uGLxNt4dY+9OZ6dM5zHc7+Q8rb0Ty BiK9d25u6nbTA2v1dSePyBuw9riuruq4xr2/uvfHayefyGzCr7+/aj8SQOeNxsePw92jAAAA bJKaKrKdrLDtuZye2O2khckr2gr8acY5Q7ZbaZrev6ymymcSQC8uj3stkxDyJt3gc9GzE0+7 vb6gdTyJRGYxXvUguhs85/j6juv8vHtc7SQUr5X/oAEAAGC11KfgaXlAJt07Pq6AePrn3Npu G0jn8/f377WdBM/Aa6iA5k3yjcq09Rb1jcvk2zs8rO3f3dXl+elQKrCf3353tt22kjp/7684 Xs79mJ8o5T+6cUXy5OD96aku//RpvtvJceanQA8PtZ39/cUchwpoAAAA3qYbDOfzfV/Fcn1+ 3tlZ3cIzeE+rVgH9o6F3gPWWE7l7Qh8eLvdW563U7ftJTALYtLrIdvONaVtx3FeZPFbr3d5m nG393E7GaH8q1C7v7XWvP+vt5CdKOd7j4/nuTwAAAFiOCp5TWJZCrTZ4Hn+eFTzD6hNAs4ba /1gS+LaTVOQ/pLZXciqA8x9aAur9/QrSE6C3QXpaekwLfLPdjNM8317txzg4b5enXX+ytjdW Kqz1rAIAAGBYFTynQGw8p1R3rYeHGuvzu9YYsB70gGYtdFtmtN98tq0x8h9Wn76f7Ix7Rr+s nRRwdXVbkowD92W3FCk/+9msLVrK2ydBBAAAYL3Up/B8Tu/75bEWG2y3+fKV1SOAZo2kZUaC 1LOzNkitJ2S+Ab2/rzEtNPL3NoAeT1o423784hfztdhoXyDeO2htj2vZwXP84R/qAQ0AAMAk k3s8txXP9bn//T7Hwmqat5fzqgXWWnCwRtqWFvnpzVg9Idu/t5XT7eWZZHDcy7pvrPV/9avF HtfzSuq21cfLrT+mXb+93/xECQAAgGHMFjzX53TBM2wGATQrIa0iumP7H1AbtH750q738mSB uX67nee3l+XJkwqmhUVfQD02eb1x5XO3B/Pz43t5OfvR1wokva7j7q7Wn3cSRwAAAFikfG5v f6H88FDB88nJ0HsILI4AmhWSgDfjtF7PCVi/fev+tKBtOZEK5wS2V1f191RCp1L48bEbNGe2 3bZ38rJ6P2e/Ij2p+4/r5e21FdPPK8YBAADgPVTlc4LntsAqhVKHh0PvJ7B4AmjWQjc4Pj6u 8e5u8toJWtNrue+b0/zH1ga5CZzzH+C07Szq+BKwp0K6Dbqz/Lz39WR9LTsAAADgfVTwnAKy trBqHDxX5bNf7MIm+nVLgKF3A9gEVbH99WstnZ6ahBAAAGA7VfCcXzb39Xo+OalUatovfIF5 5Bf1805euCwqoAEAAABYiO4kg9fXNbbBc/3SWPAM20EADQAAAMACpeK5bQ15c1PBc1pPAttA AA0AAADAm1Tl8+VlLaX1RmSupuXNrQSsLgE0AAAAAK9SwfOXL7WUMTKp4PGxSQZhewmgAQAA AJhLd5LB8/PJayV4fnoaen+B4QigAQAAAJjJbJMMnp1V8Hx3N/T+AsMTQAMAAAAwh/R67ptk 8OJi6D0EVocAGgAAAIAXVeVzWm0cHXUvNckg0E8ADQAAAMBEFTwfHNTS6Wn30kwqeHJikkGg jwAaAAAAgI4KntNiI72eW+n1nApogOcE0AAAAABM0DfJ4MVFBc9XV0PvIbD6BNAAAAAA7Ozs pPI5kwx+/ty99OGhguezs6H3E1gfAmgAAACALVfB85cvtZQx0tv58HDo/QTWjwAaAAAAYEt1 g+dUPreOj00yCLyWABoAAABgy8wWPJ+cVPB8dzf0/gLrSwANAAAAsCXmC55NMgi8nQAaAAAA YMNV8Hx+XkuCZ+D9/HjoHQAAAABgOSp4TuDcTi4YgmdgeVRAAwAAAGwYwTOwKgTQAAAAABvi 5eD5+/caBc/A+9GCAwAAAGDNVND84UMtHR3VeHpa495ed+0Ez4eHFTw/PAy9/8D2EEADAAAA rLgKnBMsp7I5Y4LoluAZGJ4AGgAAAGDFVOB8cFBLqXDu6+XcSmuNi4sKnp+ehj4eYHsJoAEA AAAG1g2cz89r/Pz55WulwrkNnPN3gOEJoAEAAADeWbeHcyYNTKVzn7TQuLoyiSCwLgTQAAAA AO+kgue00kilc18P5wTMNzcVON/dDb3/APMSQAMAAAAsSXfywFQ6p9VGK72aT04EzsCm+NHQ OwAAAACwaSp4ToXz/X2NfcHzxUWN+/uCZ2DTCKBZit3d3d3d3dvbGkej5Wz/6KjG+/vcTo3f vtV4eVlj30+ZVk/t7+lpjY+P3ePK8unp5Oudn3fXn3fMGyMAAADmVYHz5881JnDO57f2c2l6 OSdwPjszeSCwqbTg4E0quMxPiTKml1XfN7tvvb1s9/p68lr5jz37kf06PBz6/nr5uPLGpC8I znEkaN7ZGY1Go9Eo35S/lTc6AAAA8+pWOj8vGCr5vHVxUUHzoj7HAaw+FdAswONjjbe3NU6b tfet2v/Q6z/w0Wh3t5Y/fcrfa8w3y6sugXnfcbVvUMbr13r1jflotLvbN9bax8fd7Tw8LDbI BgAA2FwVOB8cTK50bqWVRiqdfe4Cts+vg6mhd4N11a1Ijs+faxxX8nYD0NfeTiqbv31763a7 28t+JjjP3zP5Q802PBqdnc17f9T1+nt3dSvIE+THp091/aenWdeb7XbyBinqjdBL15/vfv36 tZZOT2u7Hz++dbsAAABDqaA5nxMTNE+rdM4kgjc3Q+8/sH3ScvWtedyiqIDmTRKwdoPWZVUc J9ge6/Z6bnsaX1+3PaC7y6nYTiVx3ijkOBLYpidzZiueJtvNOE1up71fx4HwywHx8+tPlv3P 8afC+u3BMwAAwKZJpXMtTat0TtBcBUKCZ4AxPaDZAAmQExwnqG4rmtMDOn/PemlBsb+fLVbg nMvzRuPLl/r71VWtv/qtPboV2Rmfnt6n5cZPfjLf5IbtFxkAAADvR6UzsKrmy1dWjwCaDXB4 mOCyG7imArl6c40D5baSumYp3t2dtRnNOLge+shn87xn9tB7BAAAsCq6wXM+Rz7/BW5J0Jzg 2WTuANMIoFkjz1tFtBWz3SC6XXvciqNr3tYhP//5rIH15PXS+iI9pZ8fV3o2T+4BPf1+6a7f 9uh+r2/m/+iPZu2dDQAA8N5mC57zeSuBs19sAu9v3nylcqG+X3C8PwE0K2HyZIZpjfH9ezeI zRuAvb38BCFPxJd/kpCAuX1DkaD2+Di39/J+/fSnizruvuOqMa1F8gKT5Ugrjb4ezmk1Emlx 4Rt6AABge80WPOfzY/3iVqUzwOuZhJAV0k7e1/eTp6ur7nImCUyl8fOWE93gNdfPcgLf+/va zu1tjY+P3f1JsP3X/3pmEW3Hdk8nr9f3jdW8x9Wu32orptelZQgAAMDiCZ4BhiGAZq10J887 OamxrQDOG4S21UWun8sz6WCC3LwRaSuec3vpNb34NyDd4+przZHls7PZJhHsa9kBAACwPQTP AMP6dUXm0LsBbIKq2P76tZZOT+v15ePHofcLAADYPoJnYFvlF/V9v9h/byqgAQAAgI0heAZY LQJoAAAAYO0JngFWkwAaAAAAWFsVPCdoFjwDrBoBNAAAALB2Knj+8qWWBM8Aq0oADQAAAKyN Cp7Pz2vp8rLGtN6Im5saBc8AQ/vx0DsAAAAA0Ge23s5xdlaB88XF0PsNQBFAAwAAACungueD g1q6vq6xrXROZfPxcQXPd3dD7zcAXVpwAAAAACujgufT01pKxXMbPKe386dPgmeA1SaABgAA AAaTFhs1ptI5PZ5bFxcVOO/v6+0MsB604AAAAADeXQXO6eWc4Hlvr7tWAub0dr66Gnq/AZiP CmgAAADg3VTw/OVLLd3f19gGz2mxcXgoeAZYbwJoAAAAYGm6LTYuL+uvGVs3NzUmeE4QDcC6 0oIDAAAAWLhui40EzllupcXGxcXQ+w3AYgmgAQAAgIXpttjIZIIfPnTXenqq8fhYpTPAZhNA AwAAAG/WbbGRALqVFhsnJxU8Z5JBADaVHtAAAADAq80WPF9cVOCcimfBM8C2UAENAAAAzO3l 4DkBcwLnu7uh9xeAYQigAQAAgJnNFjwfHurtDMDOjhYcAAAAwAwEzwC8hgAaAAAA6CV4BuAt BNAAAADA/68C5w8fBM8ALIIe0AAAAMD/HzzX0u1tjZ8/d9cSPAMwHxXQAAAAsMUqeE7QLHgG YLEE0AAAALBFJrfYuL+vUfAMwGIJoAEAAGALVOB8elpLj481tr2d4+6uxk+fBM8AvIUAGgAA ADZQBc4HBzWmwvn8vMb0eo6npxqPjytwTsVzKqAB4HVMQggAAAAboILmvb1aStB8dDR57QTL V1c1XlwInAFYBgE0AAAArLHJkwi2Fc5xc1Pj2VkFzql8BoDlEECzFLu7u7u7u/mm/fPn0Wg0 Go3Ozt7r9rqXXl3V7XtjBQAAbI4KntPDOZMJttK7OYFzejsDwPvQA5qFqiA4AXDeAGWSi2Xd Xn5i1t5exly++up4Tk9rfHyscTTqLj+/P+vv5+fd9ecd8xM9AABglVXwnPfvfcFzFeLs7Ozv C54BGJIKaN6kG1wm6O3rMbYsfW+41kc3WO4Lgse93Gr9nZ2q7L64WMxe6PUGAACrqN79p6VG Pi+k8rl1clKBc3o7A8CwVECzAAlO3y947rbcODio8eRkvut/+FDj5WWN377NWnG8HO0byJoE ZDTa3c1y3/ppcZL1+8Za+/i4u52Hh8UG2QAAwCJ0g+f0dm4/N6SQ5PhY8AzAKhJA8yaTA87D w2XdXoLjWkrl881N3X4m05jV9XWNeQOXN275aVpbcTy9RUWtd3ubcbb1czttq5D2jWO7vLfX vf6st5P7bfxGdb77DQAAWKbupIL39zW2c93k/fzhYQXP834eAoD3IYBmDbUVyfNWPreV05mc sHqjjUYJ0NsgPb2ZpwW+2W7GaZ5vr5008eVJFGftcZ3gOQF+KqxNzggAAKuggud8XklBS/t+ P5MKfvpUwXOWAWA16QHNWqjgN4FuAuj6idloNG/v4rZyIBIwT7t+3gCufnDbvd/Ggfv7tNz4 2c/S0mS29ROIn50Nd48BAMD7qU8f419e1tjX2jC/iKzWe+ZwAdge8+Urq0cAzRppK4qvr2cL jNMSIxXNbQCdN3yz9nr+xS/ma7HRvkC8d9DaHtd79Xr+wz+s4/z48X1uDwAAVlu3p3Pep6cl YP7eqs8POzsKNQC2Vbf17XSrFlhrwcEWan+idnU1bfK+7hP9V79a7P48r6RuW3283Ppj2vXb 4F5vOAAAeE/d1hrp6ZwAug2e83klvZ0FzwCsNwE0KyGtIrrj+I1YKoZnC4hb9cZtNMrkgm1g +/z2sjx5UsG0sJh++5PXG7+B7PZgbvernd26Xc5+9LUCaX+6d3f3upYlAADAPNJao8Z8jsgk 6G1hSd6fp7VGzU0znhwdANabAJoVkjdmGft6Nb9eBbDpnZbKgrwBfHzsBs2PjzW2vZOX1fs5 +xXpSZ2fTLStNNr1W32TlQAAAMtQgXN6ObefJ1p5P5/JBN+rVR4AvC8BNFssPaHbIDdvEFOJ kJ7NJyfL2pPupICpkG6D7iynEnzaG9S+lh0AAMAipKdzjalw7ptbJhXNqXA+OTGZIADb4Nct AYbeDWATVMX216+1dHpqEkIAADZRdzLBvl9wtq01pv2CEQAWI7+on3fywmX58dA7AAAAAOug gucEzX09nfPLxePjCp61wgNguwmgAQAA4AUVPKdVX4Ln8STmJUFzTYKutQYAFD2gAQAAYIIK nr98qaW02miD57TWEDwDwCQqoAEAAOA3VPB8fl5LfZMKXl1lMsGh9xcAVpkAGgAAgK3WnVQw wXMqn1snJyYVBIDZCaABAADYSrNNKpiWGgmeb26G3m8AWCd6QAMAALBVui027u9rbIPnp6ca 09tZ8AwAr6ECGgAAgI1WgXMC5svLGg8OJq+doDkVzyYVBIC3UAENAADARqrg+eiollLp3AbP bYuN42PBMwAsjgpoAAAANsJ8kwk+PNSYwDktNwCARRJAAwAAsNa6wXNfT+e4uKjA+exs6P0G gG0ggAYAAGADpLdz32SCabFxdzf0ngLANhFAAwAAsJaq8vn0tJbS6znSYuPwUE9nABiOSQgB AABYKxU8f/5cS+n13ErFs+AZAIYkgAYAAGAtdHs9p+VG6+ysgudUQAMAQxJAAwAAsEZS8ZwK 6Li5qeD54mLoPQQAxgTQAAAArLSqfE6P5y9fupemxcbJydD7CQA8J4AGAABgJVXwvLdXS30t N46P9XoGgNUlgAYAAGCFXV/XmN7PcXFRwfPd3dB7CAD0E0ADAACwUqryua/X88NDBc9nZ0Pv JwAwnQAaAACAlVDB88FBLZ2edi9Ni43j46H3EwCY3Y+H3gEAAAC2U3dywQTPWW6dnFTl89PT 0PsNAMxOAA0AAMBSVMCc3s1t0Jyx7e3curqq4PnmZujjAQDmJ4AGAABgISpwTuuMNmieVSqc EzhfXAx9XADA6wmgAQAAeJMKni8va+nLl9mu9fBQ491djTc3VemcvwMAm0AADQAAwFy6rTWu r2vsq3ROJXOC5QTNejkDwDYQQAMAADCTbvB8e1vj58/dtb5/r/HwUEUzAPCjoXcAAACA1VbB c4LmvuA5QbPgGQAYE0CzFLu7u7u7u7e3NY5Gi93uhw81Xl7W+O1bbqfGx8caz8+z/tD3x3zH d3raPY72uDKpS3u9HG/Wn3c8Px/6+AEAWC2CZwDgrbTg4E0quNzbq6WMmXRk3tmuZzWtx1z2 I0Ft3iAfHg57b/XrBst9QXCOK0Hzzs5oNBqNRouaFTw/lQQAYNvVu828387777awI5MHHh9X 8Oz9JADwnApoFuDxscZURBwdLfoWukF3GzyfnFQQu7tby2dn3csPDrrXX1XtbOEXF93jaoPm 8fq13tlZ1u8ba+3j4+52Hh4WG2QDALCuKnjO+8y8v2+D56urCpxT8Sx4BgD6CaBZgFQWZ2wD 4EXJG99UWtzdVXB6dZU1Xg5SxwH0vK08Zt3DWj+B9/QK8MkV5DE+rsnLe3uzBuvd9S4va8wH hTaQBgBgW2RSwRrzvjfvF1sJnk9Oht5vAGB9aMHBm1Tgm0A4QeeybmfcW65vvZcD2aenbk/o tofd01ONuZ0EyOnJ/OFD7ce0N9zZ7nivXl7/+f7W7WR/xsuT799cf7z+ZPkgkeNPxfS06wEA sGm6vZ3zPrHt7Rz1i8PnBREAANMJoNkI3WA5PeoirSwS4OYnhXmDnRYU+/vd7eXy+/sav3yp v1flxzgQX13dSuyMT0/v03LjJz+Zr4I8Fe3jLzQAAFisbqXz88mty/iXchU8e38GAEOa9xf6 q0YLDtZaPQHTczq9qFMRnN7QbUuQtrLj8+du643RqP6e4LnVVxmyqtoPFno9AwBsiwqcq3Xb +Jd6fcHzzU2Nnz4JngGARVEBzVrpVjrnp4IJoFORnOB51grlvLGedf2f/7wbVE/b33a9VGQn GH/eAiOtRLqV2/2tRfquX0ttL+p8sFi2P/qjyV8AAACwbBU4531y24otUulc708VKgDAapo3 X6lcqO8L5/cngGYlTJ60L60x2lm102Ij6ydArp8IPl+/1Qa2CWqfX3/yfv30p4s67m7AnP3K /qRVSF5gsjw+jpd7OOcDR6TFhVnKAQA2TSqdayk/0W3fD0YKL9Jiw5wgAMDyCKBZIe3kfZls 8O6u25O5DYSz/O3by5MgZnuZPCXfBOWN+v395CA443gSxApyn99SW/Hct95k2a9xT76Xv7Ga NglMWzG9+j2rAQCYTb3rTUVz3i9Oq3RKpbNfqAEA70cPaNZIXwXH7LoVwJl0MEFu3sC3AXd+ ipjgefEVxN1JAftac2T57Gy2SQT7WnYAALBuEjh3JxHMHCh9wXPeP+7vC54BgKHsVpA19G4A m6Aqtr9+raXT03p9+fhx6P0CAFhX3cA5LdnaXs6RwDmVztN+MQcAbKL8Qn++X+YvjxYcAAAA K6IC5wTNbcu4Vn6Zl6A5wbM5PwCA1SGABgAAGEgFzmkBl0rnzH3SEjgDAOtHAA0AAPBOupMH tq01+mTuD4EzALB+BNAAAABL1m2tkeC5r5fzzU2NNfn088mpAQDWhwAaAABgwSpwTiuNBM5p tdFKwJzAOQE0AMD6+9HQOzC0mhXy8+caLy9rfP4TuPr77W2NR0dD7zcAALA60lqjxgTO9/c1 9gXPaa2xvy94BgA21dYG0BUk541g3hgmeO6bZTrrX18LogEAgG6l8+1tjaenk9e+u6vx06cK nFPxrKczALC5tjaALqlMiLwh7Ks8yGzT0ffGEgAA2GQVPKcgJcFzguhIa43j4wqaDw/1dAYA ts3uaFRvgbZNVTC3R/7DD3V/9FcgtNer9Xd3hz4eWAX1/Pj6tZZOT+v58fHj0PsFALAo3RYb 0yqdEzyrcAYA3k/yy1XJLU1COKN64PpacwAAAJsovZ1r6fq6xv6ezmmtMfR+AwCsii0PoNNq Y/zTuQqa02ojP41L8NxOTmiSEAAA2ETd3s4JntuClFQ2n5yYRBAAYLItD6Az63QqGPIG8/Jy vusDAACboILnFJ6k1UYqoOPhocYEz1kGAKC1tZMQVg+UvFE8PKwxFQttj7Ys5/L9/e71AQCA ddbt7ZyClDZ4zueBTCbo8wAAwDRbXgHdBtHHx0PvDwAAsHzd3s4JnNOar3V2VoGzX0ACAMxr 6wPo6vmcN575qV1acqTHWyod0hP6+/cKrvV4AwCAddINnm9va0wrvsgvII+PK3i+uxt6vwEA 1tXWBtDd4Pn+vsZ2UpFWLj89revXT+9GI29IAQBglXUnFUzw3LbYSMFJgmctNgAA3mpre0CX 9HhLsJw3nH0/rWvfgKZiGgAAWEUVPKe1Rl/wnPf5NdeL4BkAYHG2PIBOgJzgOZMLnp21a3Zb buQNaV+POAAAYEgVPJ+e1tL1dY1t8Hx1VWMmFWwnIwcA4K22tgVHV3o6z/qG0xtTAABYRRU8 Z1LBvl8sXlxU4Py88AQAgMXa8gA6lcyfP1dP57TkeN7TuS5PBUUmKfTTPAAAGFJ3UsFUOuf9 euvkpILnVD4DALBsu1X5O/RuDHDgu7u7u7tpoZE3qvOqyUnGrTlgu9Xz6uvXWjo9refHx49D 7xcAsHm6wXN6O2eSwcgvF9NiQwEJALD5Kp8Z/dru7tD7s7U9oLvB8eFhjdPekHZnxRY8AwDA +6rgOUHz42ONbfCc9/WCZwCAoW15C44E0Wm5sb+fv9c3BeNWG/P1iAYAABapGzyn4rmdVLAN nr1/BwAY2tZWQEcFzV++1Hh7W2Pe2O7t1fj4mNL19IqusX3DCwAALFIFz5lM8P6+xvZ9eHo6 C54BAFbN1lZAJ3iupcySHXlDm0kJ2ze4mYwwzJ4NAACLVMFz3nfnfXnr6qoC55OTofcXAIDJ trwCOgF05I1rKp8TPI97P3fXzySGAADAIlTwnAKRvuD55ETwDACwHrY8gE6rjbu76vGcn+4l gI6bm+6kg+kZ3a4HAADMowLnDx9qTG/ntlAkLTUSPOd9OwAAq25rW3B07e11ezq3lc0JngEA gEXoTiqYiucsR4Ln9HbOJIMAAKyLLa+ATrCcSuZv37rLT09V+fzwUAH1wUH9PaM3wKuiHp+j o0wSOfT+AAAwWTd4TsVzGzznfbbgGQBg3W15AH1xUWN6PPddHgmeI604GEoFzm3lTDtJ5Pqo 4zk9rfHxscbRqLv8/PgSvHfXn3cU3AMAy1PBc1pr3N/X2E72nffXgmcAgE2xtS04UtlcS58+ dSucU/ncBtNZvrioy8/Ohj6ObdMNSlOpvv6TQXaD5b4gOMeboDnncftFyWvlJ64AAItT71ry /qavUODqyqSCAACbabcCrKF3Y4kH+OvWDLWUCotMOthX+cyqSsXutPXq8d3dfXk7OR/ygag9 T3J+1AeixQW9ffvz+FhLCZrHX3R0g/d8cMsXJZ8+zXc7Oc7r6xofHmo7+/uLOY6vX7Oftd2P H5d1vwEAqyeTCtZSfqHWVzBgUkEAgEVLfjYtH3svW9KCI5WdqXC+v68HImMqStvec6yaPHG6 T6DDw9dtLQFsfgqa8yQ//Wwrjqe3qKj1bm8zzrZ+bidjtB/E2uVMntleb9rt5INgjvf4+HX3 HwDAWAXPeb+R90Ft8NxOKih4BgDYdBsfQFdQmYrn4+Maf/ihLm1baFxfV1D37VuNl5c1fvnS rZhlXXUrgMctV2rc36/zI4F2G2ynN/O0wLedrHKa59trK/RfrtifHkCXBM85j1Nh7ZcAAMDr VfA8LvSocdqkguZSAQDYFhsfQPfpBtNnZ91WBmlFkGAub6gTTI8rp4c+Dl6jr9I9AXMe174A edbAd3jd3uZtj/PltRQpP/uZSRABYHNV8JzWYKl4NqkgAMCizZevrF6z5a2dhLBPtyL0eUDX raDVsmM9tY9bAuW+SXFav/jFfC022if+e09i2R7XsoPn+MM/1AMaADZHt7dzvjhOK7OWSQUB ABZl3l7OqxZEb20FdCuVom2rjfSGzuX1gN/cvG+AyGK1lTeZZHDcW7pvrPV/9avF7s/zFhht q4+XW39Mu35byX1zs+x7GADYHJN7O/cFz5lUUPAMAEDZ2gA6QXNaatRf84Y6gXMqO8aX198f H2ed/I1V1Aa2fV885PxoJxVMC4u+gHps8nrjLy66FfftfrUf7Nrl7EdfD+d20p+0nMnkPwAA /Wbr7Zz3FTWXhkkFAQBobW0AXRIw5410G8z1tWRI8Kxn7bqpADYfjFIJncczXywkaH58rLHt nbysSfvaD2zpSZ2fTLTn47QPeO0XJHouAgDTzdbbOe8rPn3S2xkAgJdseQCdCtEEz5mEsC+4 ++GH7vpthSnr5fCwxjbITeCcxzk9m5f3U9LupICpkG6D7ixn0sxpvZxV6AMA06XFRo3X1/XX vkKL9HZOxbNfVgEA8LItn4QwlRzj1gTp+dxdLz2fc3kC6ba3Lu+tHpfMrj57M/ZuK4oEy28P mOdtCj/5+gmWXz9ZYG0nATsAwHMVOLeTCbaVzpHezlpsAAAwny0PoBNApudzKprbyuZ20rZU lqr4AABgPXR7Ol9e1tj3i6kUXCR41mIDAIDX2fIWHKngSKVHfnKY5YeH9PytgDq98PJGPZW3 AACwWia31khP5zZ4TmFFtfoat9gQPAMA8DZbXgGdFgcJnPPTw/TabVsyZL1xb+ChjwAAAH7T fK01UpCR4Nkv/AAAWKzdqvAdejdWX1VAj1tvdHsIAzs7eZ58/VpLp6f1PPn4cej9AoBNVoFz AuZUOLdzmkQqmhM4+0UfAMCmqXxmNHrrXGWLsuUtOPKApAf05WWN377lgcpyrZ0WHH0VJAAA 8D5mC577WmsIngEAeB9b24KjguVMwpI37H3aFh1HR3X9w8P6JkFvPAAA3sdswXPen9b7Va01 AAAYypZXQKc3XrS9nw8Pu8u5PG/4M3s4AAAsl+AZAIB1tLUV0KV9w56K5gTNY1XxnJ8qPj5O vj4AACyW4BkAgHW25RXQbdA87Y16e7k39gAALIfgGQCATbDlAfTZWY15o55JCPf2skZ3uW25 cXEx9BEAALBZBM8AAGyS3Wo5MfRuDHDgu7u7u7t5Q5/JCBen7tfd3aGPE95TPa++fq2l09N6 Hnz8OPR+AcA6EDwDALAIlc+MRquST255BTQAAAxL8AwAwCbb8kkI04Ijb/gBAOB9VPCcX+Jd X9fYvi8VPAMAsN62NoCuEvS8oQcAgPdRwfPpaS2dn09eS/AMAMBm2PoWHJlksMZMQvjtW3ql dJefT1IIAAAvSYuNGjOpdV/wfHVVgfP+vuAZAIBNsLUV0N0g+f6+xr5WHPn7ly81Hh3V9euD wWj09DT08QAAsFoqcE4v5wTPbW/nBMxnZxU4X10Nvd8AALBIW14BnZ8+JmDOB4CTkxoPD7vL uTzr5/oAAFAqeD46qqW+SQVTwJAWG4JnAAA209ZWQJd8MIjj46povrtr16yK53xQyAeJXD8B NQAA26qC57TW6CtUyPvMet+pxQYAAJtuyyugxy03+oLnly/va9kBAMC26PZ27gueLy4qcDap IAAA22XLA+jxG/+qcD446Ftz8uU+OAAAbJvupIL5ZVzmColxa7cKnM/Oht5vAAAYwpa34Li5 qTEfGK6vK2jOB4S03Mhkhe1s5bk+AACbLsFzLfX1dk7wnErnh4eh9xsAAIa05QH0xUWN6eWc DxT5CWWffLDI9QEA2FQVPCdoTvDctmJL0JyKZ8EzAADs7GxxC47q6ZwK5/39GjP7eNtaI8u5 fH+/e30AADZNBc9pwTYteFbxDAAAk2x5BXQbRJ+cdEcAALZNBc9p0db3y7gUJpydmVQQAAD6 bX0ADQAAOzuzB88VOCtYAACAWQigAQDYarMFz+ntnMpnAABgFlvbAxoAgO0meAYAgOUTQAMA sFUEzwAA8H4E0Kyl3d3d3d3d8/MaHx9rHI26y+fnQ+/n647r9PTl4zo9nW07R0c13t93t/Pt W42XlzV++DD0cQPAexA8AwDA+9MDmrXSDZb7gti9vVxe6+/sjEaj0Wh0djb0/r98XDmevuA8 x5XgPcd1cdHdzsFBLV1fT95OAud8AM92Dw+Hvh8AYBkEzwAAMBwV0KyhNniuD4yj0e5ull9e f1Xlg3FcXHSPaxw0T16/73jb7Xz61N3ew8PQRw4AyyB4BgCA4e1WMDX0bsBs0kKillLJ+8MP dR5//95tKZH1np7q8gSv2U7WS8Xx0VF3u09PNd7czFpB3a1AToXy3d3L66cC+fGxe+mnT3X9 p6dp69X4/Xv3uHP7CZ7f6/H5+rWWTk/r9j9+fK/bB4CdHcEzAADbLa1Y3zsX6qMCmjXUBsG3 t93WHLe3NSaQbVtUJGDOevmAmvUTGLetPPo+wLay3YzT5HbGEjz3LU++/ufP7SXdXs/pAZ3x +loPaAA2QQXOe3s15v2A4BkAAFaBHtCshW5Q2gatWW7/nkC5lUrnrP/wUAHv/n739nL5/X2N X77U36+uav11aV2RgD3Beo6rrfhedA/on/xkvskg7+6mVYwDwM5OAuf8P5b/58a/QJpM8AwA wHqaL19ZPSqgWSOZVC8fNG9uakwLjrZX8rjFxrQAu60Qrr8neG49rzRebYeHdf8kYD4+7l5+ cNAN3AFgNVTQ/OFDKptrTCuqvC/oC57zyyHBMwAADEkFNGuk/YCZSuRxpXN6NVegmsn4+oLn SMXtrBXNP/95N6juN3m9TAqYViLPW2uk5/PkHtCtvtYcz3tQZ7m216696FYcf/RHs/bOBoCd nXErjVrK/+N9k+628v9dvT8Yf1ENAADrbd58pZuLDU8AzRpJ0JoPpmmJkRYamYSw7ycJuX4b 2GZ7x8dtoN1OKlh++tNFHVE3YH5+fDXmBab9AJ7JFcfH024n90c3mO+7f9alpQgAm6aC57xB nvbTwvw/nYC5vth96QtZAABgOL+eD3Ho3YCXVXA6bTb7PqmUPjnptuLIT3iz3AbUCYIzJqBN S4vnPabbiudZZxvtfjM1a0+fs7PafjvJ4rzbaSuyX69u/+vXWjo9re1+/PjW7QKwWdJao5Zm baWR/+9uburda99cDwAAsN2ST82aSy2bHtCshXrCpHdjehj3TVaXoDjB6slJdzv5wJpJB7Pd fBBuPwDnA29/8LyY48vt9LXmyPLz4HnydnLc7Xay/4sLngFgFhU85//ZfBHc/r+b/6fq/7ud nU+f0sNZ8AwAAOtHBTSwMCqgAZgkkwjWUl8vunyBnEkDtYYCAIDXWLUKaD2gAQBYqO5kgmmx 0TcZcH65k17OKpwBAGCTCKABAFiICp4zZ0MqntPiKhIwp9I5kwkCAACbSAANAMCbdIPnvsmC M3fD8bFKZwAA2B4mIQQA4FUqeE5rjb7gOa01ajJfwTMAAGwXFdAAAMylGzzf3k5e6+ysAuf0 eAYAALaRCmgAAGYyOXhuezxfXQmeAQCAEEADAPCiCp4TNKfVRl/wfHIy9P4CAACrQwANAMBE 3eA5Fc+pgI67O8EzAADQRwANAMAL+oLnh4caj4+H3kMAAGB1CaABAOioyue02ugLng8Pq/L5 +/eh9xcAAFhdAmgAgC1XgfPeXo3X1/XXL1+6ayVoPj4WPAMAALP68dA7AADA++r2dj49rTGB czu5YILmVDw/PQ29/wAAwPoQQAMAbLj5AudI0JyK57TeAAAAmJ0AGgBgw7wtcL64qMD56mro 4wAAANafABoAYENU8JzAOWNf4JzWGgmaEzzr7QwAACyOABoAYE1V4HxwUEuXlzXu7U1eW+AM AAC8PwE0AMCaqMA5AXMC5wTQLYEzAAAwPAE0AMCKmtzLOWOfNnBOb2cAAID3J4AGAFgx8/Vy vrurMYFzlgEAAIYngAYAGFi30vn2tsbPnyevnYrmBM6peAYAAFg9AmgAgIF0ezpfX9fYFzxf XGTUyxkAAFgXAmgAgHdWwXOC5lQ8ty02Hh5qPD7WyxkAAFhXAmgAgHcyX/B8eKjSGQAAWHc/ GnoHAAA2XQXPBwe11Bc8X11V4Ly/L3gGAAA2hQAaAGBJKnj+8qWWpgXPJydD7y8AAMCiCaAB ABasGzxfXk5eS/AMAABsPgE0AMCCVPB8elpLfcHz2ZngGQAA2BYmIQQAeKUKnPf2aimBc3o9 t05OKni+uhp6vwEAAN6LCmgAgDl1K53v72sUPAMAALQE0Kyl3d3d3d3do6Ma7+9rHI264/V1 jZ8/D72/8x3X6WmNj4/d48lyAo/tu38AhlKB84cPNV5f11/Pz2tsJxV8eKhxf1/wDAAAbDst OFgrFZimwiwBQJ+joxoTsH76NPT+v3xcCZYTaLTyE+/z81p/Z2c0Go1Go4uLTb9/AIZSr7Z5 vUyLjTZwjouLCpzPzobebwAAgFWhApo11FYA1wf+0Wh3d/L4PFitoLYq2XZ3Ly9r/PbttRXH i/HlS99xZfnl9Rd3/wBsq8mVzhmnVToLngEAAFoCaNZCAuNaants3t11W0rc3tbYF9BGAoWs 9/17tldjW3HcV5nc7mdu//Z2tvVzOxmj/cl2u7y3l+sv5/4B2B4VOOf18/GxxlQ+t1LpnOA5 QTQAAAAtLThYI329ivuC3oODBLRV6Xt2lt7IubzGp6caK0gYjb5/77ayyPbTm/nqqtbL9Z7f 7nzH1QbPaa0x3n6W03pj2vVfe/+85lEBWGf1qpovGPt+8ZKAOZMJCpwBAABmpQKaDTCtVUWC 41QI9wXZWS9BRF+QPC3wXTXz3j+L8rOfTZ78sG+cXmEO8FYVONcvR3Z27u/rr33Bs0pnAABg ePPlK6PR0PvbEkCzAcaB6suVvAme2wA6gXICiHZs/eIXsz7BVyNonff+WZQ//MOXe0+3owps YHm6kwkmeG5f99KK6fhYT2cAAGBVzJevPP/t/NAE0KyRvpYXY7NV8rYVbGmpMesT+Fe/WvZx dXtDP1+efP1F3T8Am6PbYmPWyQRvbobebwAAgE0hgGYtdHsit0FrW6ncLn//XtfP5ILt9dML eRxIZHnypIJPT7N+wzSt0vfl42onCWyXsx/jcTH3D8D6eluLjelf5AEAADAfATRr6Oqqu5we xmmB0QYN4/UraM1yKt5SWfz42A2aHx9rHE9W+PLkg8Md13K2A7A+KnDO6/W0FhuHh1psAAAA vA8BNGulAuD0ND45qbENhLOcyff6AobDwxrbADYBRoKKbCe3t+zjyv72HdfZWXf9Zd0/AKuv guf8QiRfILYtNvILj0+fKnj2iw8AAID38uuWAEPvBrAJqtL669daOj2t15ePH4feL2DzdIPn y8vJa1WP//EXcgAAAJsvv4RflUkJfzz0DgAAzKqC5wTObW/8ODmp4FmLIQAAgKFpwQEArDzB MwAAwHpSAQ0ArJwKnNPL+fq6xvToj/TqPz7W2xkAAGA1CaABgJXRDZ4zqeDnz921EjwfHlbw /PAw9H4DAAAwmRYcAMDgKnhO0NwXPCdoFjwDAACsCxXQAMBgKnhOa4202kgFdLTBcyqgAQAA WHUqoAGAd1fB8+lpLaXiuQ2eb25qFDwDAACsKxXQAMC7qeD58rKWvnyZvNbFRQXOZ2dD7y8A AABvI4AGAJZmtkkF4+Skguerq6H3GwAAgMUQQAMAC9edVDC9nff2umulpYZJBQEAADaVHtAA wMJU8Hx0VEupeG6D5wTN+/uCZwAAgM0mgAYAXq0C5729bm/nVDy3kwqmtUYqnp+eht5/AAAA lksLDgBgZt2ezqen3bGPSQUBAAC2lQAaAJiqgufz81r68qXGtsI5UtmcSQXv7obefwAAAIYh gAYAnqnAOUFzKpzbXs6RwDmVzmm1AQAAwLYTQAMAvw6cP3+upVQ6HxxMXvv79xoTNCd4zt8B AACgCKABYIt1g+fb2xr7WmskcD47EzgDAAAwix8NvQMAwPur4PnoqJb6guf0bv70qQLn9HQW PAMAADAbFdAAsEW6vZ0vLyevdXWVwHno/QUAAGC9qYAGgC1QwXN6O/cFz+nlLHgGAABgMVRA A8AGq+A5gXMqn1tprZEezwAAALAYKqABYINU4PzhQ43X1/XXNnhOD2fBMwAAAMulAhoANkCC 51rKpIKfP3fXSvB8eFjB88PD0PsNAADAZlMBDQBrrILng4NaenyssQ2en55qFDwDAADwvgTQ ALCGupMKpuI5FdCRoHl/X/AMAADAEATQALAGKnDe26vx/r7+eno6ee2LiwqcEzyn9QYAAAC8 Lz2gAWCFVeB8dFRLl5c1tpXO7aSCNzdD7zcAAADs7Aig2RC7u7u7u7t7e7WUMR4eRqPRaDRS AQisj26Ljb5K57TUOD6u4Dm9ngEAAGA1aMHBBkkP1HZsJ+NaXRWkn57W+PhY42jUXe4Lotrt HB3VeH/f3U7G6+tucA8M6W0tNgTPAAAArCYV0Ky1ClBTIbi+QWo3WM7xtHJ85+e1/s5OVXZf XHS3c3BQS9fXL99qftKf7e7vD30/wDaqZ3O+KOubTDC/4Eil893d0PsNAAAAs1ABzVqqoDUB zZcvNY6D2FmvX+PlZY3fvk2uOE5Qu2w5jqgKx9Fod3fy8bXrR1sx2W7nhx9qPDys8ezsfY4P +E0VPOd5nIrnNnhO0Pzpk+AZAACAdSSAZo21lcKzB9AlFcJtkJuAJ5XBaVUxa+uLVCj3VTK3 6/f1rr66enm5fqq/u5sxwVUqoOPmJi03use9t1fBtEAL3lO3t3MmFWxdXVXgfHhYox72AAAA rCctOFgrFaTmp+oJjs/OMslgWlO8fP1UNCeoTbBTFYbj7bQtMbI8Lehug+ppFcbPW4fUfox7 umZ58vFNaz3S95P+g4ME2LV9ldCwDPWszfMvgXPfLytOTipwbr9wAgAAgPUkgGYNJRB+eGh7 IM+mnZQw2xlXGGa73UrmtOw4OFivyuGqpByNzs66x5OgPJMeplXHoiot/8yfqe0mAJ/m5qZu X/DGZugGz32Toub5luD55mbo/QYAAGC1zJevrB4BNGthcuVyehjPqw2AUgk8Gs12/X/2n531 iT95uwl636vieBzQd4PotlI798uigvU//uP29l82rviGdTbbpII53zOp4MPD0PsNAADAKpu3 ALNt0TocATRrpA2Ob2+ntdzorpfAOkFPnogJXGcNgP6v/2uxx/U8eO22xkjrjb5WG7MHt91e 0cv2p3+6XpXi8DbdSQXHv5zorpXXGb2dAQAAmM28+cpsedn7MQkhW6gNbBPstpXJfd8s/Vf/ Va23u9uO7ZqT1xtXPnd7Pbf71U6O2C4/PeX6L2+nrXRul79/FxTD602eVLANnjOp4P6+4BkA AIBt8utAbOjdgMWY3PKiKg1/M2Ct9e7vaymV1W2Am78nSEqv6P39WW+/L5iefL120sNpMvni OCh/3XYW1xKkbv/r11o6Pa3tfvz41u3CKplvUsF6ns7/UykAAAB4neRTs+ZSy6YCmi2WlhyZ 9C6BUlpzpEIxwdFre05P1w2SEwS3lcxZfh48T97OycnL23nvXtSw3ip4zi8m0tu5DZ7zupHe zoJnAAAAtpsKaGBhVECziUwqCAAAwDpRAQ0Aa6A7qWBa9vRNKpjezoJnAAAA+E0CaAD4DRU8 p7dzxpZJBQEAAGAWPx56BwBgSN3ezgmc0wu+dXJSgXN6xwMAAAAvEUADsJUqeM4kggme2xYb 7aSCd3dD7zcAAACsEy04ANgqFTyfn9fS9XWN03o7C54BAADgNVRAA7DRui02Ejh//jx57YuL CpzPzobebwAAANgEAmgANlIFz1++1FIqnrXYAAAAgPckgAZgI1TgnIA5gXMC6FaC5gTPCaIB AACARdIDGoC1VsFzWmrc3tbYFzynxcbhoeAZAAAAlk8FNABrSYsNAAAAWH0CaADWghYbAAAA sH604ABgpWmxAQAAAOtLBTQAK0mLDQAAAFh/AmgAVoIWGwAAALB5BNAArJDr6xoPDiZfnhYb Z2dD7ykAAAAwnQAagEFV5fPlZS21wbMWGwAAALDOBNAADKIbPLetNhI8ZzLBh4eh9xcAAACY 34+G3gEAtksFz6entSR4BgAAgE0mgAbgXVTwnMA5kwy2BM8AAACwSQTQACxVN3hOy43WyYng GQAAADaPABqApajg+fPnWuqreE7wfHU19P4CAAAAiyeABmChusHz7W2NHz5017q4EDwDAADA 5hNAA7AQswXPV1cVPJ+dDb2/AAAAwPIJoAF4kwqej45qaVrwfHIy9P4CAAAA7+fHQ+8AAOul AucEzJlUMAF06+FB8AwAAADbSwU0ADOp4PngoJbu72vsC57T43l/f+j9BgAAAIajAhqAF1Xw fH5eS6enk9d6eqrx+LiC54eHofcbAAAAGJ4KaAA6Mplgjal07guer65q3N8XPAMAAAAtATRr ZXd3d3d398OHGs/Pa/z2rcbRqMbHx+7l7WRoq6v29/S0exztcfUFge12jo5qvL/vbif31+Xl ut0/LFcFzjm/Mpng58/dtb5/rzGVzicnNebvAAAAAGNacLCGpk16trdXY4K0BGiHh0PveZ9u sJxWB33HlWB9Z2c0Go1Go4uL7nbSo/f6evJ2Ejh/+dL9u0nits18kwne3dWY4FngDAAAAEyn Apq1UMFqAtg2IDs7qyB2dzfL3csPDrrXX1VtIFyTuI2Paxw0T14/2grpq6vudjIpXALFVb9f WLS02KilaZMJ1vNrZ+fwUPAMAAAAzEsAzRp5HpS2FcDtct/1u6080oqir5XH9JYXr9UNxtvj S2/dvuW9vVy/20ojFdAxDuTr/nl4qLECxdFodSvDWazuZIIJntvzLj2c09O57/kEAAAAMJ0A mrVQQendXSp5uxW9Yy9XOj89dYPa9LhNJXEqO9vK4LS86GuN0d5+AuzRaLaj6wvWn576lidf v+3VG+kp3Qbs19d6QG+2tNioMef7tMkEU+lsMkEAAADg7fSAZiN0g9S293FaWSSATuCcwDbB blV8jkbfv3d7KY+Du/p7Wlr0BcKrJoFjgvUcd1ou5H5bdCX0j3/cvR+neXpar/t1dVXg3PYC b79oyBcuabHRVtgDAAAAq2C+fGX1CKBZa/UETJCaSdTi5KQCzTZYm1YpPO1WU3G8LkFpWm3c 3U0O1tMj+/PntOhYzO3+1m/VOGsLk5ubGgWhr9VtsdF3v+fxreeHSmcAAABYB8trEbtsAmjW SrfSOYFzAuhusDZ7kJpAedYn8i9+UfuRAHfa/ratOFKRnd7Mz4PstBLpVm73txbpu/0Ez+3y 5KB90a04/u//W4/p5apHMedFKp37vmCp8+75JJ0AAADAKps3X5mvNezy6QHNGkrQluA5AWsq facFz21g+7y3dN9Y6//qV4s6km7LiXa/0iqkb3ncsqJvO23v6pd7WauEXRcVPOd8yGSCbfCc FhvHx4JnAAAAYCi/DtaG3g14WVpE1FICt3nlm6IErY+PNabyty8ITsuKBHrpFd1XuTx+RvVN ljj5eqnAnj7ZYanevaPRxcXbttNWZL9e3f7Xr7V0elrb/fjxrdvddplMsJbayv9WvpBJi411 aRUDAAAALELyqVlzqWVTAc0a6QvcZpdJBmtpf7/G9BxOwJfAOa0Ncnl/8LyY/UqQ3NeaI8vP g+fJ2zk5mbydHP/igmeWozuZYL546XsepMVG/RJA8AwAAACsAhXQwMKogF6M2SYTTMCcFhta qAAAAACrVwFtEkKAgXVbbGRyy77JBFORX5Xw44p2AAAAgNUjgAYYSAXPCZozuWZav0QC5vR0 vrkZer8BAAAAZqUHNMA7q+A5vZxT8dwGz2mpUb3HBc8AAADAOhJAA7yTCp7T0zkVz2m9EQma TSYIAAAArD8tOACWrILny8ta+vJl8loXFxU4n50Nvb8AAAAAiyKABliw7qSCqXQ+OJi8dno7 Z3JBAAAAgM0hgAZYkO6kgql4znJkUsG02EivZwAAAIDNowc0wBtV8JzWGplUsA2e20kFBc8A AADA5hNAA7xSBc/n57WUimeTCgIAAACEFhwAM6rAeW+vltLbua10DpMKAgAAAAigAaao4Pno qJb6Kp3T2/n4uILnu7uh9xsAAABgaFpwAPTotthIxXMbPCdo/vRJ8AwAAADQpQIa4Ne02AAA AABYLAE0sPUqeE7QfHtboxYbAAAAAG+lBQewtSp4/vKllu7va9RiAwAAAGBRBNDA1un2ds6k gq2rqwqcDw9rTAU0AAAAALPSggPYeBU4p7I5wXMqn1snJxU4X10Nvd8AAAAA604ADWysbvCc 3s7tpIKpbE7wfHMz9H4DAAAAbAoBNLBxupMKXl/XuLfXXSvBc1psPDwMvd8AAAAAm0YADWyM Cp6PjmopvZ3bSQUTNOvtvGl2d3/5y93dfNEw/sJhNPrlL0cjk0cCAADAEATQwNqr4Pn0tJbS 47mVns5nZ4Lnl/UFud3lvr+3gf9rPT1Nvp04OJjvePouzRcS7fmQ5ezHrJ5vTwAOAADANhNA A2urgudUOvdNKnhxUYHz2dnQ+zv9eCYFvwl0297VfcuLCoC3RXs/Ll43AE+gnbENrLP88FDB tS9KAAAAWG8CaGBtzDapYGRSwVQ+v8f+/fKXu7ttYNwXKLd/76v0XVd9Fb+zVy53tcFta9Ye 3u393/592YF0+3j33x/d4LoNqnM/tMvjv1eArbc5AAAAwxJAAytvVSYV7AbMCQ6zX+3ye5kW TC7rdravtcTkLximyXnRBt/zBvHzn1eTA+y+CuynJ4E1AAAAy7A7GlVUA/BWu7u7u7u7X7/W 0ulpvb58/PiW7c0+qeDxcb2azduz9zdv7z0D5rblQl/P4XHAu22B76ab3HKlbaXSnm+vrSCf V3ue9QXTfZXpKrABAACGUvnM6Nf6Z0V6t/0RQAOLsqgAuoLnTCaYyQVbr59UsBv8JdDLmMB7 Xrn9BHfjXr65XCDHItV53AbWfa1d2oD7vU37wuV5ZbYe2AAAAK8jgAY21lsD6NmC59knFewG zQmWM84bxPUFzHd3gmXWSTe4bnuV9/UuX3XTeoRP/4VBEXwDAADrTwANbKzFBNAfPuzs/Pzn v//7//P/vLPzd/7Ox4//wD+ws7O//1f/6l/7azs7/8w/82/8G3/zb3av1RckvzZASyA1HgXM 0NcypNW2CNnUSTef90SfTV8QHotqsSNIBwCAbSaABjZWvcD9lb9SS3/5L9fry09/Ov92/pV/ 5Z/8J3//93d2fvSjP/7jP/fndnb+7J9dfPx7c1NjAp+bG4HNZqjz8MuXWrq7q/Pw9b3BWY7J LUSmBdjz2pTAe1mmBenL+uJt1gBfkP5a9Tp4fl6vf9N/MQSLVOff+PW8zkNzWPC+vA4yJK+D rAIBNLB09UKTFhYJ4hLAJIi7uqrn/8XFYm83kwX+pb9U2//t355/O7/85e7u7W0tvXbStQQW 46C5gowss6nqPMz5Uy1bvOGjO8notMkd83rZTno6i//z/9zZ+Qt/YWfnt35rZ+cnP9nZ+fnP d3b+wX9w6ONnFm2v8veS/5cXGbT/jb9Rraz+qX9qZ2fa//PTWtjMq30+vfZ+fXqq/7d9gbhu EvxlWQDIEFYteGG7eB1kFaza66AAGjZIN3ge/4f3sprEbxFB9KICaHgLATRDmvUDx+QK8FhW 5fa03vev/cIPttG6/7+yjC8+4n/9X3d2fvd3x8u/8zs7O3/9r79uW69teRR9r2tv3e7y1Rcw 636eDWfVghe2iwCaVbBqr4MCaNgg9QLz+FhLCS4SwJ2ddf8jTFD99FSXf/q0mNsXQDMsATRD 8oEj98MsPcPjvVulvKXC/S0E/ADzecsvNL5/r9fd33yt935wNtPmrNg2rzlv/rv/bmfnX/vX dnb+7J+tX8L9zu/s7Pxb/9Z828jjkHHVW8ppnbZqBNDAwtULS/5DSgAdnz6lB+6s671tPwTQ DEsAzZAE0KyC9gPHyy1oWn3rLatidOhgfqgvJGLa4/La/79mfbwBYJkOD/2iYxirFkD/eOgd ABbl+TeibaDcDaL7ru+bbgDYJN2KpFk/AL7XnAk+kG6a+VoRbdtksdv6xcAQX/Q8PdUXXHt7 87/OTPtibNG98/ueB2+dm2Dbnl/AKlMBDRugO8tuKj/zhv951Jxvwrp/PTx8a6Vobff3fq+W /vJfrvFP/mS2a2e9P/qjoe5HNsmf+TM1/vEf1/infzr0HrFNfvKT7rLXNYbws5/V+Id/OPSe sI28DrIKvA7yox/t7Ozu7uz89m/v7Pz4nQsw/76/r7s86XNx9iv7+Vp/+qc7O3/v79Vt/L// 7+KP5bX34x/8wc7O//P/1P4tY7+2UV7XZvVbv6UCGthQ/9F/1F1uP4D0+fatOwIAAMBr/b2/ V+Pf/btD78lkq7pfff7O3xl6D/gLf2G+9VcnX1EBDRtgVXpAAwAAAMBv+tHQOwC8XTc4bgPk L19eXn56EjwDAAAAsAwCaNg4V1fd5dPTbs/n09OX1wcAAACAxdCCAzZQBc4JmlPxnNYbqXS+ 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 --6c2NcOVqGQ03X4Wi-- -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/