Re: 2.5.74-mm1

William Lee Irwin III (wli@holomorphy.com)
Thu, 3 Jul 2003 13:25:37 -0700


This is a MIME-formatted message. If you see this text it means that your
E-mail software does not support MIME-formatted messages.

--=_courier-29302-1057264073-0001-2
Content-Type: text/plain; charset=us-ascii
Content-Transfer-Encoding: 7bit
Content-Disposition: inline

On Thu, Jul 03, 2003 at 02:37:14AM -0700, Andrew Morton wrote:
> ftp://ftp.kernel.org/pub/linux/kernel/people/akpm/patches/2.5/2.5.74/2.5.74-mm1/
> . Mainly a resync with various things and people. Plus a few fixlets.
> . I dropped out a few patches which weren't really proving useful.
> . Included Con's CPU scheduler changes. Feedback on the effectiveness of
> this and the usual benchmarks would be interesting.
> Changes to the CPU scheduler tend to cause surprising and subtle problems
> in areas where you least expect it, and these do take a long time to
> materialise. Alterations in there need to be made carefully and cautiously.
> We shall see...

Here's a resync of highpmd, the big PAE resource scalability patch that
saves 12KB per process of lowmem. It adds pmd accessors analogous to
pte_offset_map() etc., i.e. pmd_offset_map(), pmd_unmap(), etc.

-- wli

--=_courier-29302-1057264073-0001-2
Content-Type: application/octet-stream
Content-Transfer-Encoding: base64
Content-Description: highpmd-2.5.74-mm2-1.bz2
Content-Disposition: attachment; filename="mm1-2.5.74-2.bz2"

QlpoOTFBWSZTWTMjBHgAaFf/gH+1IAB7/////+///r////9gUb98fV7W0pEIgvddA9ch5tWZ
th2N2ut2axOnLiBoBbPAIdPbXmZOuuUKVa0qba1EbfW7Um2qihT3KrETq2wLOpndsPg8i7tF
7urNVjQVVUB21U+283ru3d93iRetZFZsB9M56x9MeK0rGsRpNttWu9zvZhylQAbsibr3VSnu
20WIV7alOzTVbU2NlYi1bud2VU2C021WqDo2t5Az24ldFaZ0lNhs3aKduqW2WsJZagkSAQRo
EATQAjKZADCCnqek81Mp6npD0xR6npqNqeoEpiIiENCCaQ0JoHoanlAaBoA0MnqBoAAADQhR
pqGT1GmTQ9TQNNMgHqbUeoDID1PQgaAGQBgSn6pJKaRpNHkIYgA0D1BoDIBoAAaDEABoCFIk
CCGjUyaTJ6Tammp6NKeQhoBsUaDR6nqPKANAb1TQKiSCmIEDU2pk00mlPJ6pk9T1ABoPUeoD
0gD1AAAHc8PnKz0mZJaC0S00WRMqmZUUTAwFEINMyh7sX35gQSNTYGlcTNBhogqXMswBkCzW
ANJRmRo1rAHSGltYo5BWiHc73hcmS6yULkzNRU1yrm89P0+uu1RE4zCK0YFBBFDWct6DQ0Lh
oDnMwsSIFituc5xrmK3nObvKhQRFCjoGMkcZJHHGEl27TFcqgpg24ZAVvcSMjJqxyS0GhSFh
ctssbsIFIpBSKCRp1SosKZ0pjMmAuNzjBbzmzZcpy5lmOsYCiiaWCzM1lmtCazA1NNLHHFzb
bR0GrdOYbtqz5Vcy3OEWttY7XNOM3a2mTVs7JubnWnN5NjucommSKNGsdEySGU83abtqvXz9
KKUikQpCUJClMk+6vX5mbTIObW4sMMVUklBEkzJqBygp5HQ5B0HoEKfDNR39+HFU237jFzpY
iUGYYEIbwRwkZKkaEqialXUmGRbO+44MqYy3m2ciYIt3aUMzd5buuSc41u5rk5tzduDAgW7b
McXOVy3Q3mbcaxu5syUqVqLUwprd1tqSs4gkhqYpMTCopqJzGiWIJkgNyUuawP3BG4pEIYHK
szDjiMHiS1joyMQta0NEEJCVE2MRl2XSJM5rc0Wsum7vGKF1c65V1jGSSpSUCMi3czmbbbbc
q5iIiJJrLls3M3d1zIwwSBGZGQzdtYKSW7bYzNaMRZxm9IQbaaTYtQmDsjFsMMCQoszIX+rn
8SL0/1/4ykUdle1p++NLqdWfulBYYzP5JhNpNgPJhz5y6tCoQgtE9XU3y5mpUVKv6VuPyyh0
tbpLe9WirjT+dNZbb/5NZ6re90tD+1/6SO2kBVfxNZCXCZP7r3UuRCXeVX8VZrypl3LmFtH/
rjG0URbbPdXbbX+2Azyhu0INJG04DqKDhGzDgrvfJEPqa4O94s0pNUYju28eZzG3rwOvrb4s
7g/p8+uyG0+T4uRygP+bnM0kJHjKE6x0ak0bNFn1NdbKdkBDXuYQmXdpR2tSYsTWjRSbqdJK
n/njLg+zyjgzPONWS113zW1oTq4UNN0KvyhcZhk1Yrsb+WXZZWHRo7qWz13C73aqHshi3Ju3
wzyT2zOLGWb1Vg1Tyru5YVXjeLTAk+Y2wnOKUhBLx4T5cTFmvGIei4SM2acpzrleCT9P5LAx
VheOd5KjaQHfqwSCyfWmGJqkIwaUeQpltFtgklAdPj5Pkf+nJ+D4r2NpweiWUjnVf1n29kOZ
1aFWXc3wjzM5Sj6nAElnEmPWDq7N1Jw2+q5HfEIHQgcDhIbi8QedQTalAxwQzvY2F3O8HrcO
bZOFKCv1eEl3j9zLsXWawtAY02M9TyZpEcVS+7dJ1KxQR3yjeBvTWWXUNGcsi4nEy9+k23b3
3nCOrbQJkgfkl/hbk8S+oijIwgouNfTs6qqNJI1iZF5/KygiLQkB0Q/Y6aovzaShk5wL/b4e
jLq9G8l6M+5HDNbfCPSzf28vXPm5MM6QSvTlB9tFaRWKsVFNAbQtusXVVrGEVEmC1Yi0xwHk
yH5U4x5pgas4LjxkGrKDBsztmhkoLkZvWMhZYQuEi00C98BUXf6Nar7lRLV71/BHTXJ6XLh2
OnEyE5flKHSrqja1bkuUHn9VuIdiGhplI0OhDmziVlW6HwSJUltqkxjbSTXk4rVQcmPOLMin
ZGWeX5YXqegtYeeS+IGbQfM0l9FKJAdOngBniy9p26fZVfLajTR3+Whx+i9VPNevTrM6Y51b
6LJE4yRkb22evZ0aVo68wlqvdp8dHroXGRDoSBCBKle9WGkeO3tUWqjcUbIKnHpELVSU1ap1
8SrBfYVbRu+Ps3a5VGRptrCWu7nefHZel9RTata+OMtzDWZdta7Z18N2qkf0yRxQS0hXRAKJ
y18TWa661rDUHHbFNzznJSgpNEZv1m/MN8L0h9BCNFFPddrUBvrlmyNAtahoE/NPaA6S9yiU
nKvdF/bHSNWyvZqTSl/IyYBQ/8vi5R0dfoIxLtxxYdnI3lN4f7+49RsAgI6/8zNJKE+xqGIi
IQVIfbo1+e8OH1gHwVX7T3JyCO27+m3tq82d6SiJRKZM3jWbBoSXyhfqdd/6ANBgm5eKzuhR
qGTaaLDMla5Nn8Vhj7ONQGrSIkB5MLzNcEIrQP8SVfePwfZTfvWTC/N4c89j1Rk+cioKmHMw
vp51mjY5z0b1W0RGVrGAF20xHJon3MpCoosFRVoFDTGCaZDS89PQ237aeEd1ET6818ScW/1w
v/va6KSTbY26wZU2mEymd5A3uRvYjagQJcRuQI1JANCm9YrqVyQpM92J8rffDVYRqC9f26cV
6lSEmL7+aorhQpKITDqP8/2cOl9LIRNuQ+duJFufQPEEseKsT/E2qVR6Uo/lW1U2/px2s3tW
WLe220sTRaM07ViEq+nnc2jHuFpS+FaEjaMVEVW3xjcRIlEpQQ4k3G/Tc/FHnbTb6C4dIErD
LR+kSQj6UISMdCn4jtAO5Dfj7UkI3fMBpLvchI9mMd7o+kkXrLZUn4NH6n8BF9RE8/kkBef5
N5l6ifq/nj95x/P+H857zmgbXnD8vA2LeeClSTAsonox+YaE2sjO4U6UtJjzcBdH6GQEhjOA
zE/98g0J5RxFx1NI63grmYoffLxCH96ckMlTrzdnKFeR0f07285yKXf4exTshUvgKdBrhyU8
OGhWYQhg2yZ7j4v5Wvmf3Pu370P7JqFq1eRGywQ2l80VxCX5xm7W3XCHdam0k2TlXVaOVxtH
FaFoc3Gqy6YbNOucZpBXKN2kzFREcbwuznlxHDdHsr6/al7w+01wD5T6ACq6Dasnay9/2qoE
6mXgfh+W3z2vcK98rv4muEZsTFM8Hk0X8+QiCrNUH/UafzQoZ+b8O2uBFETFJtSuGcJVqIql
L6sFN9vpxv+9NshMbYxRYvTQ3tZ14anak00m7UNIhDZqdfy+0HvhbtzM+CyQdZAyn3SaW5gY
IQsVr8LwZ7X4lqoQhtjAAbEhNjVIk0wyxNrSVISSr3yqUqe317yJ0G5OUKSZCTqrGPt8d9Az
DdWGP9F19cuCBVnnhLkuButfNtcbmROz1tQAvQ8MK5pDWV/5fLi/lXhlpoZGjppsOePxEHar
4xfXgV9GZG+V5mJwVDpE5LFQSkJkC2wFW0GmV0XuDpnJeiOB+gpIONUlt0mzySU5SenEibW7
dcfhwk0CqGxrgic6cMxjTTAbTE2MaqXyMEjK65aEKeumQWNM3wfdpAUeWrBd4vAV9fyY6rwb
nnFTaRoOtWKuvCJ8uEHsUxy4Yf3i3acFGhWCQkea7SWTbEmNtKJooIhaKQ33TOG/biHN0csw
MhlXE4gLqmxIOpDGXdenoZ58nvECEMqa9sV58EuBNupS+Uy3WYMjkWKiqw/A5Ueq2DPi6UGV
06dG6UKbxMO3KYhJTznFKpr71ZDa73d26urbyd+H5d4fI7+dheL8YAAAAAAAAAAAAAAAAAAA
AAAAAAAAAe+88AAea0AAHqtAAAAB5DWgAAAAAAAAAAAAANAAO/ZVef5e152+L0fO5nu3mXd3
ueLwyU5TPRTwLAqaaWO6DwymV/g5LfTUJczid2Ld3i5FsjdjeqFDM52584K7/Fc2GSENtth5
q67tRIww81A8wC3o7Icus6NhQ6Mndd1zlKlBlWEajrrUCtUIKDDfme6YVpYkJwNR2ETuT6c9
/YdcXjMTCDQFgD7jdg9Z6mbdc1xczNGMyg+7ghdbS3GWUjM3MjjrSOVqHexC1AZx3hwJ9y2S
WhTEgAm1NsnInNKbA4wjraIdcSbWPF6e7TTGDf2zHFSyxQ7W1Ld4FxvAgSNy+dqSBJdawdIk
kie6MzBas/CyIAYp1gUj0NTk4BIjKxA+02eF6TyP1dehsIaIh648rFtMSHW4HpDEP2oZRUQa
0DrefKqHQirvCrEaZEIZfF3VDboTb94tYxd3Whd6ru8N0zuqJYhfavlI08BrJrxwU3WEUeQ1
Hb2ZzeRz1VIi2Qfr0KCkgniEVkKJMs5L3+KDvDNdHmU204GhQfH0ctB4fjzt3QlUFNFRJUkl
FDQLVBSZyjDAxyehPlnP04YfXHb5sVHRvlhDsD8OHq6O++sdsLnqb60oYpYvUDw0tISy1uXA
IpbTy0zlZnc7YL5SGfcJ6i365FS+UxdFTrG+SOPKskkwpko8qnVx6/Bw7l3fs2/JgDoxM7on
ZTkrIXEhdrbttMpYPJz72pOH6Fn12xZTMMuEVVlg6xoYh2/LYkc6PvOWebPtvd9oSQR03mcD
78SXYeOlygzgSlyGrbtbwlPKcoSDyVlaHIgowMpkJjMhV/6/dp4uBPslfxwORE0BiioaaAjP
2tPzAvsQANnP4+mU3MWcltIbUdUfV9uzmEQ/xfPoxkjDHAoJIiJRwwpSWxCMxyGQIXMixJVZ
YFIViIhszCZg/gXiflz3zn1cFpE9QsAlIHUgqUEmYGA9/oLR+liENoBjPMHGI5y9Ln6ylg/N
8ALIIiG26rM2pas7Eqx0wDt1GZNb4/Brg47xl/1X9OkOZrG4/OfnNavdmFRK3usm4zPG794O
aisQQ43MhfZ4xIN70+xLjpRwNm9xeI5HKSka5HMopA54DEz2C2aXJOcGoMlcOCIMjPDmQ6C4
ea+Ei7q0QxNgVaQNlEbkOe3j66C9UfvhTUVAvLlCHWyul82f/ISM7GRLhnNI9qJEFctoVWpS
lJU75KBRcYzKkIlSHZrzk0viYxYcHM8SD5PsRoeoJ5BdrRSLyWkniRRqZRiNf06CjwcI2Yix
kp/ZOHd8eE9nqNDDDFCCHEKGk90Chy7Gjr41BvHEMnKKLROMOUNwYGwbnATGmkz6ysdDTmpJ
FWNAMzKkamspDM98kQ+B4I4xKdiHJPd5mgnzeeucZFXfdc1mYDC5g4OA5AYaFG1GSk3VSUmk
DQ0lwMHQpBiFOp0KdBTI2qcUysTEQPdBGKDYOCA17TY0Q0uk8Zz0YR4p6E2cHY8R5lsSGlN4
kRBBA89xVG8nIescJUTuAXaRmOTRixSJKoIqWKQ7ud+KNGMKy0i4TerJfZFIpDbEhpjdSZVz
dNiRvs6RtPYyPrwWPv1N++etvi9hBHOvnvKNC4QenGVXel7+DrLdOIfkhCLhyLDSH1Xl3X9f
PgY6XjW0dEUMlt1hzCYk/WBXnRE15XwrK4LgoIiSdG8HSV7+l9JpcO2LaEKjDA9nT+5NozNX
kUuIzkRL7kyWPpt1FwVxoHuHVh3nmy4zpRpQMsiDmDru0gKM7Clg0ZM6QZk7SMg95y7P2tGY
w/a/kfnVzm+cBkt2LFPkId7xPMJ4qNYI4Z7hy5l1SWZVaUNUOyEgaBUFQLuYhGEtRMMwxCCM
WBBC69FFD0xIxS10Y7TUhaHlSTcJA4DKu6EVF5Hoz4/szQXRTtmItOhWfu/vef6N5pCedMf5
bSXmF42tY+2wqO+DK+B3Zy+GGi4kZ8OBB6icMTZ+b488SFMbnlVVaPYwpoUljWI9935evo79
EriwuCEd27aVdukhJEdgpbSqmteMpTOs3ElhoGzgjN8WWndw4uxA2CkyrRQQlFHVYb8eUKR/
Pp+WH6cGeK8SPnmmvhepf3dzpw9a48WeHdtDTb6+6X0vKnLr38WayP7Q2Qv6XLnRCLQWmLQT
aV5EhP7zqLDUwl3Bu3FTJJrSBVge3eY6VbVgpF2XblXOrTZBs3mw3hkUkZhPq7mIC6CSwcWz
TQ7rM11n1elZB+z16wPFcLR8chFtEQRL2/E6uYUJS6iN3m4bVUOLqNfHkYRwebCLQobiejxL
czfv4uuOvoPf5FvVoSddCCao8E3E5dHGh6nLWczIuYJFkLqWJSJUkExtsYDbIVzSesBCGYdH
wLn8RcOLN1KQqWbsxaej432hpMoRgzGi6UYPLVdoeG3mh6dBIpmdFpqqw4H9BEpd1JW7SKje
tqO450/8dOqZN8FAjWfV93FGrEdbs8QQLsodhOdbUmcJGImeNyOqdrMfA4VyzrWbDb38H2f8
PB7M2FdL30g5El7FXWFNN506zjOZWrU0i7rYtvzczlYriUF268YwPnRYZK6cpYib6soKFTjW
JGKcaSnMtEw+MHC/C/PWNpSzvuzI61O+WpTrwpyIT0xFy8FHilCxWrkZmd8WKxOEuLmxjGYK
xIb4jevKmaV34PnfA0VOxlOm6WsfPEK/CEJCBGKrJFe/OrfwR7dMq67zlbQy1x2o3xZMzpSx
Lakmb9/7r67Z2vk2z9zUn3WrNwvqt15ZY4bDxFuk8uzFq6Q+6RLja+590rnsZfCA9JbKz7Jp
TY5bR95PFVU/HjTUr+e/zVVthSqaaKCL9+YBQsQQUkyxKlRKDBL3iMiBEAD+DngGlqGIp6sY
LJH9ChamI6Vakq4ZSlHJ3LiykT9oSP7FAApBpik4yMB/DJEUmEiMhI+n5akiHk+Xs9Zp+eo6
nXmYiKYLBiOGsKV48C13Ts/HPz0I93u93n8P6530jFa9kQ23Unu43r+qtd2KYbziPTGt899G
u6m6m9NoGOBphZFZTl75JSYm1+Ro9O/5bImX7pXm37Xv+Yj17//chZDQJoYwaBdMTIlkIBYY
9JmExeWPdAat2QEQbgvkeTtJ2UYMnEaEi9ODlS2ni0PG1yLi3owd2MOTSajmVc9jUdpAKsik
neoJfIcQ0UwJivOqJ/FPlrnYTFvtcdupUkNPqIDMSkd5872u5laDCCqSD5kHW+pAMEdiKJDI
dJwQNIrSaQgMjT0MnNjxAfCQsO5sSMTc4hhYsFHNQuLo5x4PsbIQq658sl9LfhhhNhOq3Ur2
uJaVFOyrprad/DlxAcSaeDmveOttBSNVVPfyX3uuyx9/8fp/D8/0fRStPonWfpuXdaUrSPa6
VnKHSGTV5xJi54utYzlXj1nOtl87T4Ui5nHOnzNNJb1zpa5lrjb3fN7zk51rDfNXo43ele+G
+NS+Dnibax1Hli1yybe0aWW+JZssxa41jUyK7WGtk55Y+LtbNnE2ahxWcbnM53nOt0uOOFvh
mWr41pjer3elzqw1zyruE5XN73p8849uxFm84LI843d3vcXNx8bivnV3B8b4XPBzc4psxF7X
irtOVJmMV4BxTGjVERzFASH2I+AlA/mk+5EMVEgxExBT+b36VE/Rrf8e/MVE8BUToKifx/MS
fQeJ7BUTgRfMkiMSRGQn3CyRSyId9Pl8tn3n6GIfPD9BgJQNPfyjej8fuH1odyD+J+H+zmH5
ikeMos9Tumj2UHTXvSP7Vfr3JOPLfQnMkR4Pv6bD8qNUNDvmExQYunw7/2dc2u3s8Nit55yz
lHbMu3aMUEucQlurOcR/oVjBF18IQj2e/0e8cej3yfrbZN1PWStOU/kbrSK1am8n2opk44hz
hsW9cY1xmzjNl5vNcN6VREnrAJuQ6Qj0k0ConIFRPEfsNx7Ge3sjf+ecsP/FCfJl5Uk5nZOC
fXFPhSzvGlK54ylh529dEmu0uJ2hpKlH2WY77anXMU6Qk7JJo12RnW4uunO2nO2O+2TtmKdo
Sdkk0a7IztcXbTnbTpCBYinXuY0fBDpJIja8Y3B4gZiYCVItU8Y26ZHMdpJJF5MLaoABrQjr
tzgFztztdawABrQjpKz3uXjysr43jpk+czUoqxh8nm8mfZtvNrx16HmSSSSSSSSSSSSSSSSS
SSSSSSSSSSSSSVVVVVwTvER5HgaNt19DY/pHBg23XB7DoYTuB9SjfhVVVWSSSSSSSSSSSSSS
SSSSSSSSSSSSSSSSSSSSSSSKqrsSP0HuOTRTvOSaJSjYzCAoFrjxUbbamxjGxsGMbM/PKcsX
07sy9aLtZetazS1rWuocci5A5BwQhCLg+0zS9BcVV4OA7h4HHPR01v227XiJ5p3HaG72prWt
63vFjWxb3Jpbe9q2sFvcmlq0kkkEDVzLvebz43FGa2rIXj1Hp62bzNY8x5u3sWN6j3N6x5u3
sWN6jZwUopSKdSjvOxhsOCEjb6fBMqMsn1H+fD3foEdwBgfZiLpKaJn9mNokw/L8PoJ/qgl3
1y92vZ04e+hUpL5JkTGTkTmx3nrNGaOPl3N8AS2m0m22VRVGiqoow/ZUJiQkf1Weeb/2+YSQ
jUSQj0Fcs5e0SAoeNmIsCikWlb57FVRRqHga0oF0W4tgqJbveGcjsUnPPUqfLJ5GB3XVU7pe
N7PbOu+mGmKoktYZe/5fb7jlGerz7/bkW7ae8qb3OlJUrbaOB4AkhGWVGYvXgJIR+0FyOnDy
vY8vyRfeZlEVFHQF6HPxufI5FVXV/BbsIDBnLGAwYaaYxvCBCuAXJcMYtw1Wurs5VUVUUXUU
DqPU9PI5ciKriqx8dcfpuYkkIFsrcl0UUIaSQrbXi1Yy+DmwZrBCzCRJefYVIV9uwdYecKEV
QCroIIkIXvoBensNZrpHO/p6TRM1kvwbnKStHGcwnXOt4wRaCW8EkIYMSQhhwDj0+UqqKM9U
KsT65IlwmlhDhZmRsXr4ly3kjoCKRdSzZldjWsbb9t6PEgVo11w4vgQq8fDoYZnDcqgouTN3
ml0GBRXf6NTTOQPKrK8QKK+2wr3Pm9+sj0+rvH6dXemnrxktZx3ucpcmJLcvFzNc86Wb53kq
qooQy+J5l9+gb+FZsalJuNiz9b9+ONaB8gZZZMZGKE7z0e62CaiqX4zz0b2Wo73cRbXBd2vK
VJiGeSdk4+gBK1pquVZfKJTlc5FaoLtAQNCWiTTKEDQGw+8DK8PJnpDub4U9tpIicXQ2rJwd
CsT2naUyVNa0BJCLk8YBAX+im9LftAo3E3DUnN6thqHO7mG4SbuF2QaaddPBkpuDOU3MvhOs
53khU0G1fMYb1sByuk+EWNvtDiWuU34+dyK7k75uq78zip+SFVRR5chnn52HC9uZlhOTTjJ4
rT120YqFvahR48b8bqjBBvMZAN46zJWvGu9UVEAkUUgXHeeJM6dc8Mvk1L1p3M1p5kmid0Gm
MqVQUcBQaBUCSElQJCElm87dvV7XFtGdLLYr7+8k6fjD5g+CEJJIQkmDb+JxRSJkkhFG4IkU
hJITp979Y0b450mxtJ+LfyBRPHytl9qHogcVN6Qej09PRd+7lrM36ZePjrJzJzynOI3YwkkI
pizc6TY54e43FalxJCIrMZeTohigmy9fAKqijplvUEIS6ByluQqNIMPcZ0bwzc7ubHuph7sq
3VnEqkWLOXiosHkrc+j4eW0eQsNsICSEfOCc8JFr9QLHIJAJfAA/uWscd+U9nLRNxQlmkCGQ
6hRoPYVW0HsNHbj09W5zLjRmcSTJ7GXeretX1Orl9vAcKqQ22klbTaOjeNpIRqZdrglmGIgl
luGRh8bstRPmUGkgGeKcjUjMoqHDhSsTDTHCKxuojrHHWyG3ObBCL2nOp2Ok8IDE7lIiaQUN
Rb0m+LmVDWt0Byg2qxVUQc8Oq5QXCm4WsgPHvPRB6b2S/VPy5n6cwoT/Lf3N4/z3OD2nb5bQ
fsJX5oiU7kZHlBkxBV0Tj/jAibQUauwKTnK7guzWSWGJfE3uOd2m2edRzZ0lO1XxxNVwot/v
7seVezTAcWJeTE2G9gZxlJea0aNedzNrxDkbngBquBAuWb5q51jwz8L1b/g+pdpb37VKuIe0
ldPGk9RGcYeE6k4jlUVZH8oaKXYZ6CDtykUJ9HB2NYYiT4D6MUxpINRiFQxBPbfCi1C1aC7N
cb+zg4rVdr9mZ0LBLAElYg38GDEB48Ooir6td2ReZfnKCtV4GavAM8lrq8LTDwba7eVbywt7
oBHsf0GcFj2s9vjM8nakCD8YVSBphCYuxtA/7j9vbSDotQfsjCTncuDZpdQByZOTvBUaVKQR
/aH8hg/muCJUmE/SYqHcaOiKGjR/ARFMf6ERSEFPuryXafuXu/EkgPs+gP7sokBT0+gX+5g0
WEpgI/yRMsSjBImBzt6fj+uyD9SoJeHXH6QG22Nj/oxxA4I/eftPj1fcSkwHuXjm65v01Jie
31nm7lPH0UVVGgsqtf8CKBjtx3CdNovd25ov7jw2X/QOWLH37DWAGrdasMNw1klcwDNDYRkB
UBZuaSMkYVgizOoSy7j1O0km7mLKo8PlKm9LS2bqiPLzfvRzMhdvECuySWAwkvDohBYGYEWQ
Lof5PvBeogafKUKATj+14xn/Yx0HZGhPYelbEJILUGwYzY/nebchEzS0+o7zHXJIFmPePXeO
e34u01bbb8ok6T3dAYSd6iPzcjonl5J+CcrVkn+08xPshSnqYvxgA0M7nhaocU1DSQ0djAIS
Ne+5MDwzDRosMz/7TOs9p1JZ3oQxI7RaAIxzEJfZ32SQ2US53i5mJgJ491LfuSQjkQbgGgmk
jpPfFO5V2k2GH7/tYk5T5mOz6PTr5n173YkipugmB5NLK88aEIkwsMlFEs+vN9mDBX8dH7zT
9F/Pwe/WNASRhAHKHL2Tm/oQPaGKv9RIcAfFlDCDkmJSmQwFR+tUZHI2mJqjunW4saqvtxqo
9O44hgUIU+oR1jOi2Boz7oztkQHnQyD40CFcSwPuEMPBJJhpJChADANPp/etnhKqJI21NwDQ
I69tFIErgI5aEkTCaNVl5pGySVlUgNdeQOYwSbVR+DTzVEbxGjAhexJLBcuEEFEkrEzColYw
JkZge5pGDIEvxmwNfQHoeaEVA9ySW/x2My8Qg7pkpM4gBw7ikgSp+bvD8C+r8oqH4DqgOi9J
CUMDzlm27W0Cp+BOGAb1QcczM5ELBMCyABPAYHQTZOhEBg00/WNpT8Q9nl5YPEyFoi+f3BP2
a/F2CaKs1uakzMZAyG2BDZ70waY7o3GdC6Gp02K8v1cc/RPykkpvHRQ8U115Nhslc68THu7t
o5cWGC2JlWGSZGReTt0b6Nr6j2nzHzh/dfzHVj4uC/ptM/kAkMUio2mJvWZmJok39etEymmA
h5qfECb9bb+FXwCzIusZlbLKCpEsUiVERASxQtSBVJSp8/0v/JPqbuZJkjMacSP8fTP39GOO
f6rSOkmoUVIwLKn6Os4dll3ytz+T99xLdN4ys4ulqu52u2+N97VKp44ZJ3zMHedi896zPw1Z
rrPK9GlSBFJLkoVeS/AjFz4JyXoN8Z+7TiRTsGL3XJaxJiluRC2FYqsmmpPEFImLOjeJvKlL
KoAhBk1PXSro+6D08gxdoB3ERKYnQk0iB7OXHCcSslBFKxCAFRKxFUiEpJVChAxEgmYQCacg
toH8Ni/8cJBjEDJpEtts25FRJDKEA2AyHLUkxXsGRV5FuCmVZfAfPZQJsCWUUFRheQbr4si7
fIeUW4oJqDKCILZ2fSzsLm0l6WbmZwq+w2Y2l8ONhkEZY8xe+QNjIbV4d6nQgm22SHVsdSCs
VbcLll6TmG5YnbeN3gN1SeI0iwVkJbypADaGjiRBV0MwZgvrK1YOQybW6hFMV+wuUyDrM5MY
pEMgtsTwpss01lzz68jzO9DkXVxUqeeMlWeTrck36AFBZ8ZmpVGhnYLHCkknBLdjDGmgumKN
ia6dgno9UaRIWiAJhAmWiYmInywxYSFI5YIOESB7s7a1GgOttdC4FB7GTFoRjUYCPe8m0Sxf
NvvOxl3I35XNo3W0sEgBExQ6CMVKWLevSKaHffYiUyEpSKItqinFBY2/1nLc4n2XeBpWUk0l
zGQytfEgJyhpSBXgUCYlwBdwkWtYo0HcDFVpF5AxKzR18iEkCWmDkhiL5BzAWfHTKSXA8jwM
fwejNhuBf+MlABuzHMhYjUpkIsVoZK1hZh20O3Zh3aUrAyMHJMisimxylyrFPDMl5mTKzNYN
cqq1HdKjJPphNDk4/rKk3wY4CdcHAlzHElKBOULuR1H/mUdSuoyKDCATw6+XgDlkEP5lIhpP
ekeR7OUizPf7vaQft13zaTeWeIk5PqQb5dQg/HJpe6x1s5fqCYFpi2QxCprYlyYBVTRjtEhQ
cLlEfPyFFD8UqhBCP9hKmBBzwwe41JKU8DoQ8RB3p1eVJPf7+A6uSFwLwEAscg466jLF+9cH
dJw4GfJMwHhoAifuOp9QF3l5p316vDyiE1FO2MH5S9tJz39obxAlPsrzFp1p+nUNEkI2SMBs
lXmdSO5dJ9BBRN85pT4hL4G4GYkDnGySSe+s8F+LjHJMZqI3uJ/GhGn6GQJ6jqkyKmIJAmK0
ixL9fknx1qzw8Ipd5GsWXmXizMooD2BsBAgPrpt7bu7pppu7uUySEgcqspOZUm6yc7PF4VH1
2MKUWrUmuJrpJqYscNljVOrZ4pvFqjb4Rv5c7x2CB2FOr9AbBH4MH2k79Id53Qu8cVFugXKo
3uBIRKFRB+tfskRoEfWwKq5CgClt/czHucHkPbEE7G5ZPUfD7F18Cq89p9dBiaQ1kwWYkqJJ
tmjaT7cQd5PG9cGuOHhOCcK0QKtjrWrQ+ycg0kMMGzME08ZmpImx1nLabzcciMMGx2bdYEUb
DegHRrezaJtphDDIlWaJSAiiWolqVHK3NGzN3ty5krVtkRSJhlM2bbbsRmRiKUqKGG2EYakM
giEoWywtFgubwMN5m8SyMZYRRgYhExZmZhCkRJUUopTJjEmFEkqgINxuXRFVFhimLMU0kwsl
FimSveV2xSMZLt3lBxxsjIzDDMcowhMlMcHClEpVSklkiIAjLMMMimKhiRYiP9OBhT0JTEKh
lGEIQGRlUZSl5EIOARaMMgoozMjWGPKwpZKSSED6hxAyYghVpqgopISkSEaEYCmqlMlUcFZe
eerw7g9z0BUQ92aMD0goncfBO0Y/eqCHZ7e3kAUL+1UTqm9zx60y9gJbNmhJaZlpmG1gGzSG
Dh5t9xJ1TQcxH7T/5YP3w/1mvv0YkTf0CYOPGa13JQnwu6+c38vvICir5cMVXyiIh9BzSx8f
b8+fR6F4/f342uPZ/r2mnSkSKUkE9s8G4YzUKeYO43pej4XPR0+0TnQk6TxthopFDv5mjzk6
ELzbo5fZxmzpg4bupajbggRQThHTcBEo36Q6no+7u6ev/StKGf3IJLBpTNaToq6zElXSSyFN
Xe+FUlCdjdK6xXSdqWnpBlnZTsoBiBR6yGMEJFjWkgQZwYGgkNkSUjIEsU2MUEssss7CZnAL
HXRnLn5Ybju4vBkehJV4sJhJSWmANHGdPDTyENmEQ2OHoOjhbKoq41GJvURupVJVRVlLMayq
lzbTOWhbNWZa2ZcpmXJ1sbNF2xp9ylWDvUzjJHGrxpnXWTUtiIp0IpNDpLQxiEuUxW6Y+Z9F
js0IcdRlTEaNZTo2OdSDaZYHI4MI3cgzBGhWqtUmJMOEMRmTKK12P2pW66fxGtawUw62FZmW
WRZmRKCcwUTzlVylvpTlG26boaEWxw3Muojii6IQMbgMKVTxLW2HBHZZrjjbwEmQ8cbjMbgQ
naG0Rh0EuEIahQ4UN04iXfqXVQ8B5UwGQ0qQntUQynVgQE6LaasTglHGCgYJQNCqaWxVPD20
+/EXOWEkA+R0OsqUKkrhM+YP8ivO61QaB1hkq17naWlzmYK0BJLOLGpu85pzsxOtiRxUNXmu
jblvL1IeQydlIhEQ9zjfm9XHcA0EgjAtCxVBp3SPP8UrhLkuDElcBIuQENCe5V/GKe3fM43f
V9vx4SW+CMOdA8Env+MNZ4tGgW4B2FwlVGTSFkxjNGdO4LpBpK+XFFHBC57pSlBI40SnuQTq
gR3JCSmZgjfq2NJD3gyYZtvzGmvbLUc26rSe022kOT3BLK28h0JPuoh9LJFsiWkFsBYQpG9B
wiBo7LIVzOnzbAUNykWwhVCSGWVJchDzx/YSCnIBPm6aZRfkAPpD3efkwn6PuxaClDzRQ/NJ
EUr6JnxxWrWsK1MmNYW2fWuicK4V1LzJ+n8ckiOk/BWpSCNeUnHzL1OqIhTLan0+1vInGxvY
2ipxNImL+jG2pcc3UPA1JtNoTR4oEfanZe57nJZkU9ECZKP0EKbJiR1WSqQdiyJEjTeJI8/S
4hopESxTJMpERRFMoyUsmCSaUQhqFYgsSMwCBSduw1oNOT8XhLJmv4289vMHfbD21AOXgF5d
yP25hEpkhQbF6+MnQ0qD2/kEj1pI/D9mmV+GxI1qem2ZvsSRhRRRHyOGjuibJHHlGLYrFTrh
pT9URIEyDgg+z2+0NLz9XfzXS3QieD79jk6NQRw3lkOFsljyk58C405nWxt8Ywx1J08Q8Opd
3yWc/RmuTuPIpQYCYB9SXlIFICvxy922DX2UmvQ0khd81MCwTh+P4vwDkghBKbsDZ6/kvH49
khNqD8JWZV3Iug+3ToxdKieiT0L1Oh4IwB26U0Ebj5zPNx9eVFk2UOI+9Edh9ftBROp+tU8g
DAU7wWVGIFWRlVgZD7MHuYANd7435fkzwqSls6R2Spg67hHYI403IFsCZ8wkh9nmGNv4V7fW
QonAXeRnZxQ5yhSc4UyBjU5CUt5qEBdiVj0UFwpvAD59g9Z0RyBHeqj5iz09gdhDS+KcBIQM
F6QdQHLwTzftr5p3eti1YWfbj+KkujBDpEd6CFSSW69xB/K/b7YPX4Ql6EtjoaEkt2cBK1Y0
ROGJYb3SEtZjPyrUK/5heBppNiGuYXKBLKZ8QqpIwgQvEE7zuiYfNVel+qYXkvSDFwe4Kr1b
6wb0dW5yPN55ThIUMIZBAQLK0sIEQSQkhSUlyiWTczJueZ6yeP6kPG+kQsd1acz5HpEhZCyi
LZEqrbUIfezJivNJOYa7+OG2cDn3WiV/cf8batW9fERMO8SEVYdXjqZT7Qg5Xwt7ZvhJJAfv
JT0oRwdkVA5mSQ9sBgiImaCmqqiCFHAxyHEVe+5b7a5HyITISbJGRhCYJ580iOYJCOoM5B8p
3r6nmekfe+ENXQTwKPRt06nBVIYSCSJViSpUygXQmFIlKSRmFqrbB9CkhShQoeOLbbhmW227
NESRqJ7x6FKfM7u6W3jSOlcMOWggx0UpQIwD81VVzDsuLx7Be+QJpIAMcGZXIkQlFohIAhOn
ywn11K0pS7piLTM2zK52NjYqRRLKVSrjtaRDaQ2MfdL1uQTY9SC8wZZu3lL3PKsGsjHXod8g
IbLIDNfZG7F/lfpWxpzekSpp6XzCSOQWDffg0TChZlJBYA8SlPi8JekPgDxJahQ3BlSUGSYI
X5yiczdtNmU3datlil1VttOWxm1NDLGWRUl942otWotO2dg4JSQcxJEYsBdft0+MeJu1GjIo
OiE7B0sifwvQJITBjDr5AK/GkLMPA+N1XC0ocpGE/F/E72ptzpmteKDgaJRmrjWtNE0sPlSM
EqNp/8J3Q2lWObkbR1JnBNiGG7n7Go2iNnsTmM6bQFMVZB7H2W4XdKmAaMQ08HAaSai5JusB
VK78iJDJElqCFY8fHJFXB8AFefNDh5esUDzef6H1xar1bYaGJtNHq2bGxscyd1qlYiVCmkZm
gCGPFlXKe4BahOcKDuUUlGNjiihs2h2lUhkLxBokgCxRG6XkUW7q8c8xrQikggYA1JkZpkC2
R7FE7VNCbZiTeUpiy1UmEjWKo1H4vv7VFU/FV+3X8jZEVUbK/PIR8uONRsyYtxDL0rwhWlWN
BtD29Ykg46MiBw/gr6R+Tid3vkew93Zqur4aPWZJEMtLEkG/LzpCRbznRGodpj2Y6kHLnZIC
6YEpLmudkYG/Uvn3NTtM2h6jRogHESSS88KISBkuXsmL8VksJAlULmCaQYRRdC5bcpdUI9FK
B0QGEjkl9yySyYEj7b1cikcQkDZj3XW6Q8ux8jYd9cxaN76MnSSGVPZ02b+UVOQa93poj8bh
vmZiYJ+iFaezGjiArMJdWkvP55ryCQkhL5ZJqUDBhBtLm58Zxpy57EHjePOENJaYQT2JCJuQ
8e0PLn5AvZsitSBBCPa5MzmICQkji0kmlA6/WYGBTRxnEawqMSKjnYGtai3D3ExqpopT9edE
sOamJvzJOCLGN/lT+3MJLQjoOWzp+UMR1G3PEQ2H5x9SMPdOz6JxvDJ450q6Pede0HoKY4Pr
tmyxyDZ3ggZtTu3jp/NGgeShkBevljomVbAxGJiQyyyfVw6E0GBTUYUQisTRRREOBmFFYZhE
mWTJERtcCSMU/UZp2YZsPkMNL12aNGllofhGy4nAOu2bjKUzuZaxNAmbuhBhDNMMphGGYOWU
5yJch1ZiwBjEusTAicCcAmMlDIKDnrANMEmbMghO5RyAoRpQoXR22fKJvP6mm9NLPdET2xW3
17dnNGTZaDNbObM2zVRnFxy1LaxbtlaykyssTJydckNwnekxYq8a3yMi6JwaV9scBppycshe
I1ElqGUbLUs2U3hY6EGeLLbwadN5UlRDCQppR0MbtJQQZC5dSqYDEdu5smLjzNBqYToYKbIW
mNWAkypkOlqTCOcCSa647NHlw9dHLXMLULGJzdJoOZoeJ3sSRIUYeAlc1g8RWWpELLBGJWhH
ZBVqzJwzRpzisK2gFoqYtwGUqkER6q0gaHQ4gS5QY2bNdOhg7IYEoGxsxpIs2aw3jnGbqU4z
WvVW0j3WY9PiPgUek+sWGSRG/SctLCaSSE5eoIFmNIoxOQjoFzyBGK2HRRC45R8M0XaNhg48
byJzbibp+chHYb+Qg16UWibLNZaAlK1UkCA6VJoaFFI0KKmotqV5sMjdL5hk02ilTpNKrQAO
SJA43or2chdaQWkjQ3Q1VHJzKmUucPNNYGyjmYsSBkNdYy3lY5GA5xaJrhc9U5pDPkhMNZJF
Os02sThU6D3SyggihOXEJbpZ2QiIgqurnoHoA36RPjtA0Mp8fb+MqudvJPN26D5J224yJbJs
VljdX4YyZWf8OJDRTkBwI5yiEnQME5WiQqRgiFmpU+MCZKEcZytFEQIcZg8jDMMNRqhgmhMd
BsO42nKeMts8nsaxcvgkTf8JIj8I4EWEog6JN3PRtzkOGTeJirwfH8Ip28Hs8/ycpAeHgjbz
VHOfYYHqKR1SQDkgEjuqxexJECDpCTB556ryQuOwL6hVA/s3zPfUUdtHKbWSLS0NsxHJGlNG
eXr6mYh3Jou6TzJuH6Sa7zfibroyEWOfFPhDY+MI2oshYtJVRVlCwqQC7Vg4pAQBoXwjgklZ
CRNdKowgaSP3WTt2mF2z6zg3NYhvZPEImmmbZlVIWRZ6nTw9+tac685PxsTSkdVQXLXMgPeE
kf/tLUmAxsaVvVWoctXawbXqZ0JlA5WjurzsaPdm4URCCBG5oG1o0hQ0NoJLUOtGWRtRnPba
r4KYfA8N7baxjbbbGNvvD1AcSQGS44NwjKnFE1UyqYphFOQqgFUpnyJcE8MY2Z1IU8FISILo
Rhz4Bfm2OT6EFDd5w4SXtzl0wFS5LKp+WZKLb2Tue08xppsfYXz8WneoDaKmZE/MbT4QpqOp
vDUiI1PZfc/DJu9/jodxMFFGeSSffbUlsZx3/kfM/LjmtRbMzJzxz0NHxiHa2kQTaQjeUOS4
8+uwTS5WDwbQ2FRoFPBdZdoD8hHrJczMzDMwYkcywVeEQPb1Hsa9J0iIpqC5RigE5AFKDQqq
X2MZmW3IlyflrHsN6ZMjDJ8glQL9c+0Pq18HW/rUye7MyQy0eAqGkCVUo0jSUoQgwAMuIHkX
o0dHfLbNQ2iFqg2rVeqCbZwqo4RxtFhKNkLsqgOM3r3PW0bKogaLLAaQ2ySFVaKukgD8aNks
rpsrDC6Key+jlVw4EGgOwZpF1xgh7dO9IiUphvWjNORtxJXBAK8OiEhU+psdhdKiIy9Ww1hB
IiMIVOt2BK67Eoly66pqKOSpJKmpfAqgo1DAniL5qJsBhhQtbsnVqg0AHGYIpwqkaJ77UnGE
8aXDRYMmRiWZkMYUybs7ocJNJtpXk8FzqOJIlD9IPudKmCiaJIVc2YY9XTFVb2LqSlQk750W
0JY76wzAMiXCXCaBQyAoUJIVDJWZQmARO+RTvDQnCIE30d2DxIdG+njCManTu1idUe6yI6bG
+puxkCiQgSwZrOWNJQSoOoxSQtUs+QxtGhJtA9/HeGUEMjEoxSG1H1Z0TyPfXs5MkyPAeJ7J
2jXTckJXp+O7xsQsvf7PM+h9uuG5eqiR1eHvPCyw1D3GmWeJuQ73qqJiOykQH1gokeJ9fY/I
gHO2SAcJYSO0DRbwT3Gh1fhus6IFyGgE8/rsBCDyiholpmYJgH6Z4dYmRWYyazNUZjJQsqOZ
k4bM08xI9YZ89mRfN72R2XS/A90/VJ+c7p6KClRvZ0OD0O7qkXzt+6sUsfnoyl2QnoMyO4/9
/PzTmcevzRHjXBcy8eg5o542/xBrulPwjPoOQ42OBl4pyDHUsDRIvpIU7QaB73s0DIUElEFs
Q+6Rse4qTakh4LJiwp6sPGHx74clk1xxvH/E1AKo9iGkUPpD2BVcgOQEBj6mEFzIIBnXJKEk
jQDoPQfi0CucpfwpdGpqLjZHFPh9Mkb5ZYWHx+cVPSaR5h9Su1r2npUPchkQ++RA+0skD0lQ
yvfBky0D/LZa/d+x6tP08CZCQQlJ0jIkOprFK1UQ0EECsjKP/8XckU4UJAzIwR4A

--=_courier-29302-1057264073-0001-2--