Re: Pentium memcpy patch for 2.1.63-VGER

AndroSyn (androsyn@geocities.com)
Wed, 19 Nov 1997 07:36:42 -0500 (EST)


This message is in MIME format. The first part should be readable text,
while the remaining parts are likely unreadable without MIME-aware tools.
Send mail to mime@docserver.cac.washington.edu for more info.

--1881985792-820929610-879943002=:7174
Content-Type: TEXT/PLAIN; charset=US-ASCII

On Tue, 18 Nov 1997, linux kernel account wrote:

> I dont mean to sound thick, but, where is it? :)
Oops...forgot to include it...silly me....

>
> Is this patch feature wise mature enough for kernel inclusion? (I.e. is it
> a config option and/or is it commandline disableable.. Does it detect when
> it can operated and when it cant (does it only bother on intel chips)?
I have it been using it for close to 3 months now. It seems pretty stable
to me. Its a config option of course...and as far as I can tell it'll
only really benefit intel cpus.

> Does it work with SMP?)
I don't have a SMP machine to try it on....

>
> Is this patch stibility wise mature currently? (Could I toss it on a
> production server and expect not to get fired because of it locking of
> corupting memory)
The only problems I've heard of is with some video cards...

Any other problems I'm not sure of, basically I've just updated the patch
from 2.1.40 so it'll apply cleanly to 2.1.63-VGER. I forget who the
orginal author is though, but I'm sure hes on linux-kernel...

Laters,

Aaron

________________________________________________

Visit my homepage or die........
http://www.geocities.com/SunsetStrip/Alley/7014/
________________________________________________

My soul lies offered as I'm waiting,
Intoxicate me when you step inside...
--Sopor Aeternus 'Tanz der Grausamkeit'
________________________________________________

--1881985792-820929610-879943002=:7174
Content-Type: TEXT/PLAIN; charset=US-ASCII; name="pentium-memcpy.2.1.63.patch"
Content-Transfer-Encoding: BASE64
Content-ID: <Pine.LNX.3.96.971119073642.7174D@n3ryb.ampr.org>
Content-Description:

ZGlmZiAtdU5yIGxpbnV4LmNsZWFuL0RvY3VtZW50YXRpb24vQ29uZmlndXJl
LmhlbHAgbGludXgvRG9jdW1lbnRhdGlvbi9Db25maWd1cmUuaGVscA0KLS0t
IGxpbnV4LmNsZWFuL0RvY3VtZW50YXRpb24vQ29uZmlndXJlLmhlbHAJU3Vu
IE5vdiAgMiAxOTowMzowNSAxOTk3DQorKysgbGludXgvRG9jdW1lbnRhdGlv
bi9Db25maWd1cmUuaGVscAlUdWUgTm92IDE4IDA4OjQ2OjQzIDE5OTcNCkBA
IC04OTAsNiArODkwLDIwIEBADQogICBzcGVjaWZ5ICJQZW50aXVtIiBldmVu
IGlmIHJ1bm5pbmcgb24gYSA0ODY6IHRoZSBrZXJuZWwgd2lsbCBiZQ0KICAg
c21hbGxlciBidXQgc2xvd2VyLiBJZiB5b3UgZG9uJ3Qga25vdyB3aGF0IHRv
IGRvLCBzYXkgIjM4NiIuDQogDQorVXNlIFBlbnRpdW0tb3B0aW1pemVkIGNv
cHkgcm91dGluZQ0KK0NPTkZJR19NNTg2X0NPUFkNCisgIFRoaXMgZW5hYmxl
cyBzcGVjaWFsIHJvdXRpbmVzIGZvciBjb3B5aW5nIGFuZCB6ZXJvaW5nIGNo
dW5rcyBvZg0KKyAgbWVtb3J5IHRoYXQgdXNlIHRoZSBGUFUgdG8gbW92ZSA2
NCBiaXQgY2h1bmtzIG9mIG1lbW9yeSwgd2hpY2ggaXMNCisgIG90aGVyd2lz
ZSBub3QgcG9zc2libGUgb24gdGhlIFBlbnRpdW0gcHJvY2Vzc29yLiAgRGVw
ZW5kaW5nIHVwb24NCisgIHlvdXIgcGFydGljdWxhciBzeXN0ZW0gY29uZmln
dXJhdGlvbiwgbWVtb3J5IGNvcHkgcGVyZm9ybWFuY2UgbWF5DQorICBpbXBy
b3ZlIGJ5IDM1JSBvciBzbywgZ2l2aW5nIGFuIG92ZXJhbGwgc3lzdGVtIHBl
cmZvcm1hbmNlDQorICBpbXByb3ZlbWVudCBvZiA1LTEwJSBpbiBzb21lIHNp
dHVhdGlvbnMuICBUaGlzIHJvdXRpbmUgYWxzbyBnaXZlcyBhDQorICBzbWFs
bCBwZXJmb3JtYW5jZSBpbXByb3ZlbWVudCB3aXRoIGF0IGxlYXN0IHNvbWUg
UGVudGl1bSBQcm8NCisgIHNpdHVhdGlvbnMsIGJ1dCBwZXJmb3JtYW5jZSBv
biBub24tSW50ZWwgQ1BVJ3MgaXMgdW5rbm93bi4gIFdpdGgNCisgIFMzIHZp
ZGVvIGNhcmRzLCBhbmQgcHJvYmFibHkgc29tZSBvdGhlcnMsIHRoaXMgY2Fu
IGNhdXNlIGEgc3lzdGVtDQorICBwYW5pYyBpZiB5b3UgcmVhZCBmcm9tIHRo
ZSBWR0EgcmFuZ2UgaW4gL2Rldi9rbWVtLiAgSWYgeW91IGRvbid0DQorICBr
bm93IHdoYXQgdG8gZG8sIGFuc3dlciBOLg0KKw0KIFZpZGVvIG1vZGUgc2Vs
ZWN0aW9uIHN1cHBvcnQNCiBDT05GSUdfVklERU9fU0VMRUNUDQogICBUaGlz
IGVuYWJsZXMgc3VwcG9ydCBmb3IgdGV4dCBtb2RlIHNlbGVjdGlvbiBvbiBr
ZXJuZWwgc3RhcnR1cC4gSWYNCmRpZmYgLXVOciBsaW51eC5jbGVhbi9hcmNo
L2kzODYvY29uZmlnLmluIGxpbnV4L2FyY2gvaTM4Ni9jb25maWcuaW4NCi0t
LSBsaW51eC5jbGVhbi9hcmNoL2kzODYvY29uZmlnLmluCVN1biBOb3YgIDIg
MTk6MDM6MTcgMTk5Nw0KKysrIGxpbnV4L2FyY2gvaTM4Ni9jb25maWcuaW4J
VHVlIE5vdiAxOCAwODo0OTowOSAxOTk3DQpAQCAtMTYsNiArMTYsMTEgQEAN
CiAJIDQ4Ni9DeDQ4NgkJQ09ORklHX000ODYJXA0KIAkgUGVudGl1bS9LNS81
eDg2LzZ4ODYJQ09ORklHX001ODYJXA0KIAkgUFByby9LNi82eDg2TVgJCUNP
TkZJR19NNjg2IiBQZW50aXVtDQorIGlmIFsgIiRDT05GSUdfRVhQRVJJTUVO
VEFMIiA9ICJ5IiBdOyB0aGVuDQorICBpZiBbICIkQ09ORklHX001ODYiID0g
InkiIC1vICIkQ09ORklHX002ODYiID0gInkiIF07IHRoZW4NCisgICAgIGJv
b2wgJ1VzZSBQZW50aXVtLW9wdGltaXplZCBjb3B5IHJvdXRpbmUnIENPTkZJ
R19NNTg2X0NPUFkgeQ0KKyAgIGZpDQorIGZpDQogYm9vbCAnQ3lyaXggcHJv
Y2Vzc29yIHJlY29nbml0aW9uJyBDT05GSUdfQ1lSSVgNCiBpZiBbICIkQ09O
RklHX0NZUklYIiA9ICJ5IiBdOyB0aGVuDQogICBib29sICcgICBFbmFibGUg
c3VzcGVuZCBvbiBoYWx0IHBvd2VyIHNhdmluZycgQ09ORklHX0NZUklYX1NV
U1BfSExUDQpkaWZmIC11TnIgbGludXguY2xlYW4vYXJjaC9pMzg2L2xpYi9N
YWtlZmlsZSBsaW51eC9hcmNoL2kzODYvbGliL01ha2VmaWxlDQotLS0gbGlu
dXguY2xlYW4vYXJjaC9pMzg2L2xpYi9NYWtlZmlsZQlUaHUgT2N0IDIzIDE4
OjUwOjA2IDE5OTcNCisrKyBsaW51eC9hcmNoL2kzODYvbGliL01ha2VmaWxl
CVR1ZSBOb3YgMTggMDg6NDY6NDMgMTk5Nw0KQEAgLTEzLDQgKzEzLDggQEAN
CiBMX1RBUkdFVCA9IGxpYi5hDQogTF9PQkpTICA9IGNoZWNrc3VtLm8gc2Vt
YXBob3JlLm8gbG9ja3Mubw0KIA0KK2lmZGVmIENPTkZJR19NNTg2X0NPUFkN
CitMX09CSlMgKz0gY29weS5vDQorZW5kaWYNCisNCiBpbmNsdWRlICQoVE9Q
RElSKS9SdWxlcy5tYWtlDQpkaWZmIC11TnIgbGludXguY2xlYW4vYXJjaC9p
Mzg2L2xpYi9jb3B5LmMgbGludXgvYXJjaC9pMzg2L2xpYi9jb3B5LmMNCi0t
LSBsaW51eC5jbGVhbi9hcmNoL2kzODYvbGliL2NvcHkuYwlXZWQgRGVjIDMx
IDE5OjAwOjAwIDE5NjkNCisrKyBsaW51eC9hcmNoL2kzODYvbGliL2NvcHku
YwlUdWUgTm92IDE4IDA4OjQ2OjQzIDE5OTcNCkBAIC0wLDAgKzEsMzUzIEBA
DQorLyoNCisgKiBjb3B5LmMgLS0gZmFzdCBtZW1jcHkgcm91dGluZXMgZm9y
IFBlbnRpdW0gdXNpbmcgRlBVDQorICogQ29weXJpZ2h0IChjKSAxOTk1LCAx
OTk2IFJvYmVydCBLcmF3aXR6IDxybGtAdGlhYy5uZXQ+DQorICogYW5kIEdl
cmhhcmQgS29lcnRpbmcgKEcuS29lcnRpbmdAdGVjaGVtLnJ1aHItdW5pLWJv
Y2h1bS5kZSkNCisgKiBFeGNlcHRpb24gaGFuZGxpbmcgaW4ga2VybmVsL3Vz
ZXJzcGFjZSByb3V0aW5lcyBieSBHZXJoYXJkDQorICogS29lcnRpbmcuDQor
ICogTWF5IGJlIHVzZWQgYW5kIHJlZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIHRl
cm1zIG9mIHRoZSBHTlUgUHVibGljIExpY2Vuc2UNCisgKi8NCisNCisjaW5j
bHVkZSA8bGludXgvdHlwZXMuaD4NCisNCisjZGVmaW5lIENBQ0hFTElORSAz
Mg0KKyNkZWZpbmUgQ0FDSEVNQVNLIChDQUNIRUxJTkUgLSAxKQ0KKyNkZWZp
bmUgQklHTUFTSyAofjI1NSkNCisjZGVmaW5lIFNNQUxMTUFTSyAofjMxKQ0K
Kw0KK3ZvaWQgKg0KK19fX3plcm9fY2h1bmsgKHZvaWQgKl90bywgX19rZXJu
ZWxfc2l6ZV90IF9ieXRlcykNCit7DQorICB1bnNpZ25lZCBsb25nIHRlbXAw
LCB0ZW1wMTsNCisgIHJlZ2lzdGVyIHVuc2lnbmVkIGxvbmcgdG8gYXNtKCJk
aSIpID0gKHVuc2lnbmVkIGxvbmcpX3RvOw0KKyAgcmVnaXN0ZXIgdW5zaWdu
ZWQgbG9uZyBieXRlcyBhc20gKCJkeCIpID0gKHVuc2lnbmVkIGxvbmcpX2J5
dGVzOw0KKyAgY2hhciBzYXZlWzQyXTsNCisgIHVuc2lnbmVkIGxvbmcgemJ1
ZlsyXT17MCwwfTsNCisgIHRlbXAwID0gdG8gJiA3Ow0KKyAgaWYgKHRlbXAw
KSB7DQorICAgICBieXRlcyAtPSB0ZW1wMDsNCisgICAgIGFzbSBfX3ZvbGF0
aWxlX18gKA0KKyAgICAgICAgImNsZFxuXHQiDQorICAgICAgICAicmVwOyBz
dG9zYlxuXHQiDQorICAgICAgICAgOiAiPUQiICh0bykNCisgICAgICAgICA6
ICJEIiAodG8pLCAiYSIgKDApLCAiYyIgKHRlbXAwKQ0KKyAgICAgICAgIDog
ImN4IiApOw0KKyAgfQ0KKyAgYXNtIF9fdm9sYXRpbGVfXyAoDQorICAgICAg
ICJzaHJsICQzLCAlMFxuXHQiDQorICAgICAgICJmc3RlbnYgJTRcblx0Ig0K
KyAgICAgICAiZnN0cHQgMzIrJTRcblx0Ig0KKyAgICAgICAibW92bCAoJTEp
LCAlMlxuXHQiDQorICAgICAgICJmaWxkcSAlM1xuIg0KKyAgICAgICAiMjpc
blx0Ig0KKyAgICAgICAiZnN0bCAoJTEpXG5cdCINCisgICAgICAgImFkZGwg
JDgsICUxXG5cdCINCisgICAgICAgImRlY2wgJTBcblx0Ig0KKyAgICAgICAi
am5lIDJiXG5cdCINCisgICAgICAgImZzdHBsICUlc3Rcblx0Ig0KKyAgICAg
ICAiZmxkdCAzMislNFxuXHQiDQorICAgICAgICJmbGRlbnYgJTRcblx0Ig0K
KyAgICAgICA6ICI9JnIiICh0ZW1wMCksICI9JnIiICh0byksICI9JnIiICh0
ZW1wMSkNCisgICAgICAgOiAibSIgKCooY2hhciAqKXpidWYpLCAibSIgKCoo
Y2hhciAqKXNhdmUpLCAiMCIgKGJ5dGVzKSwgIjEiICh0bykNCisgICAgICAg
KTsNCisgICBieXRlcyAmPSA3Ow0KKyAgIGlmIChieXRlcykgew0KKyAgICAg
IGFzbSBfX3ZvbGF0aWxlX18gKA0KKyAgICAgICAgInNocmwgJDIsICUlZWN4
XG5cdCINCisgICAgICAgICJjbGRcblx0Ig0KKyAgICAgICAgInJlcCA7IHN0
b3NsXG5cdCINCisgICAgICAgICJ0ZXN0YiAkMiwlJWRsXG5cdCINCisgICAg
ICAgICJqZSAxMTFmXG5cdCINCisgICAgICAgICJzdG9zd1xuIg0KKyAgICAg
ICAgIjExMTpcdHRlc3RiICQxLCUlZGxcblx0Ig0KKyAgICAgICAgImplIDEx
MmZcblx0Ig0KKyAgICAgICAgInN0b3NiXG4iDQorICAgICAgICAiMTEyOiIN
CisgICAgICAgIDogIj1EIiAodG8pDQorICAgICAgICA6ICJEIiAodG8pLCAi
YSIgKDApLCAiYyIgKGJ5dGVzKSwgImQiIChieXRlcykNCisgICAgICAgIDog
ImN4IiwibWVtb3J5Iik7DQorICAgIH0NCisgICByZXR1cm4gX3RvOw0KK30N
CisNCit2b2lkICoNCitfX21lbWNweV9nICh2b2lkICpfdG8sIGNvbnN0IHZv
aWQgKl9mcm9tLCBfX2tlcm5lbF9zaXplX3QgX2J5dGVzKQ0KK3sNCisgIHJl
Z2lzdGVyIHVuc2lnbmVkIGxvbmcgZnJvbSBhc20gKCJzaSIpID0gKHVuc2ln
bmVkIGxvbmcpX2Zyb207DQorICByZWdpc3RlciB1bnNpZ25lZCBsb25nIHRv
ICAgYXNtICgiZGkiKSA9ICh1bnNpZ25lZCBsb25nKV90bzsNCisgIHJlZ2lz
dGVyIHVuc2lnbmVkIGxvbmcgYnl0ZXMgYXNtICgiZHgiKSA9ICh1bnNpZ25l
ZCBsb25nKV9ieXRlczsNCisgIGlmIChieXRlcyA+PSAxMDI0KSB7DQorICAg
ICB1bnNpZ25lZCBsb25nIHRlbXAwLCB0ZW1wMTsNCisgICAgIGNoYXIgc2F2
ZVsxMDhdOw0KKw0KKyAgICAgdGVtcDAgPSB0byAmIDc7DQorICAgICBpZiAo
dGVtcDApIHsNCisgICAgICAgIGJ5dGVzIC09IHRlbXAwOw0KKyAgICAgICAg
YXNtIF9fdm9sYXRpbGVfXyAoDQorICAgICAgICAgICAiY2xkXG5cdCINCisg
ICAgICAgICAgICJyZXA7IG1vdnNiXG5cdCINCisgICAgICAgICAgICA6ICI9
RCIgKHRvKSwgIj1TIiAoZnJvbSkNCisgICAgICAgICAgICA6ICJEIiAodG8p
LCAiUyIgKGZyb20pLCAiYyIgKHRlbXAwKQ0KKyAgICAgICAgICAgIDogImN4
IiApOw0KKyAgICAgfQ0KKyAgICAgYXNtIF9fdm9sYXRpbGVfXyAoDQorICAg
ICAgICAic2hybCAkOCwgJTBcblx0Ig0KKyAgICAgICAgIm1vdmwgKCUyKSwg
JTNcblx0Ig0KKyAgICAgICAgIm1vdmwgKCUxKSwgJTNcblx0Ig0KKyAgICAg
ICAgImZzYXZlICU0XG4iDQorICAgICAgICAiMTpcblx0Ig0KKyAgICAgICAg
Im1vdmwgJDQsICUzXG4iDQorICAgICAgICAiMjpcblx0Ig0KKw0KKyAgICAg
ICAgImZpbGRxIDB4MCglMilcblx0Ig0KKyAgICAgICAgImZpbGRxIDB4MjAo
JTIpXG5cdCINCisgICAgICAgICJmaWxkcSAweDQwKCUyKVxuXHQiDQorICAg
ICAgICAiZmlsZHEgMHg2MCglMilcblx0Ig0KKyAgICAgICAgImZpbGRxIDB4
ODAoJTIpXG5cdCINCisgICAgICAgICJmaWxkcSAweGEwKCUyKVxuXHQiDQor
ICAgICAgICAiZmlsZHEgMHhjMCglMilcblx0Ig0KKyAgICAgICAgImZpbGRx
IDB4ZTAoJTIpXG5cdCINCisgICAgICAgICJmeGNoXG5cdCINCisgICAgICAg
ICJmaXN0cHEgMHhjMCglMSlcblx0Ig0KKyAgICAgICAgImZpc3RwcSAweGUw
KCUxKVxuXHQiDQorICAgICAgICAiZmlzdHBxIDB4YTAoJTEpXG5cdCINCisg
ICAgICAgICJmaXN0cHEgMHg4MCglMSlcblx0Ig0KKyAgICAgICAgImZpc3Rw
cSAweDYwKCUxKVxuXHQiDQorICAgICAgICAiZmlzdHBxIDB4NDAoJTEpXG5c
dCINCisgICAgICAgICJmaXN0cHEgMHgyMCglMSlcblx0Ig0KKyAgICAgICAg
ImZpc3RwcSAweDAoJTEpXG5cdCINCisNCisgICAgICAgICJhZGRsICQ4LCAl
MlxuXHQiDQorICAgICAgICAiYWRkbCAkOCwgJTFcblx0Ig0KKyAgICAgICAg
ImRlY2wgJTNcblx0Ig0KKyAgICAgICAgImpuZSAyYlxuXHQiDQorDQorICAg
ICAgICAiYWRkbCAkMjI0LCAlMlxuXHQiDQorICAgICAgICAiYWRkbCAkMjI0
LCAlMVxuXHQiDQorICAgICAgICAiZGVjbCAlMFxuXHQiDQorICAgICAgICAi
am5lIDFiXG5cdCINCisgICAgICAgICJmcnN0b3IgJTRcblx0Ig0KKyAgICAg
ICAgOiAiPSZyIiAodGVtcDApLCAiPSZyIiAodG8pLCAiPSZyIiAoZnJvbSks
ICI9JnIiICh0ZW1wMSkNCisgICAgICAgIDogIm0iIChzYXZlWzBdKSwgIjAi
IChieXRlcyksICIxIiAodG8pLCAiMiIgKGZyb20pDQorICAgICAgICA6ICJt
ZW1vcnkiICk7ICAgICAgICAgICAgIA0KKyAgICAgYnl0ZXMgJj0gMjU1Ow0K
KyAgIH0NCisgICBpZiAoYnl0ZXMpIHsNCisgICAgICBhc20gX192b2xhdGls
ZV9fICgNCisgICAgICAgICJzaHJsICQyLCAlJWVjeFxuXHQiDQorICAgICAg
ICAiY2xkXG5cdCINCisgICAgICAgICJyZXAgOyBtb3ZzbFxuXHQiDQorICAg
ICAgICAidGVzdGIgJDIsJSVkbFxuXHQiDQorICAgICAgICAiamUgMTExZlxu
XHQiDQorICAgICAgICAibW92c3dcbiINCisgICAgICAgICIxMTE6XHR0ZXN0
YiAkMSwlJWRsXG5cdCINCisgICAgICAgICJqZSAxMTJmXG5cdCINCisgICAg
ICAgICJtb3ZzYlxuIg0KKyAgICAgICAgIjExMjoiDQorICAgICAgICA6ICI9
RCIgKHRvKSwgIj1TIiAoZnJvbSkNCisgICAgICAgIDogIkQiICh0byksICJT
IiAoZnJvbSksICJjIiAoYnl0ZXMpLCAiZCIgKGJ5dGVzKQ0KKyAgICAgICAg
OiAiY3giLCJtZW1vcnkiKTsNCisgICAgfQ0KKyAgcmV0dXJuIF90bzsNCit9
DQorDQordW5zaWduZWQgbG9uZw0KK19fX2NvcHlfdXNlcih2b2lkICpfdG8s
IGNvbnN0IHZvaWQgKl9mcm9tLCB1bnNpZ25lZCBsb25nIGJ5dGVzKQ0KK3sN
CisgIHJlZ2lzdGVyIHVuc2lnbmVkIGxvbmcgZnJvbSBhc20gKCJzaSIpID0g
KHVuc2lnbmVkIGxvbmcpX2Zyb207DQorICByZWdpc3RlciB1bnNpZ25lZCBs
b25nIHRvICAgYXNtICgiZGkiKSA9ICh1bnNpZ25lZCBsb25nKV90bzsNCisg
IHVuc2lnbmVkIGxvbmcgcmV0dmFsOw0KKyAgY2hhciBzYXZlWzEwOF07DQor
DQorICBhc20gX192b2xhdGlsZV9fICgiY2xkXG4iKTsNCisgIHJldHZhbCA9
IHRvICYgNzsNCisgIGlmIChyZXR2YWwgJiYgYnl0ZXM+PXJldHZhbCkgew0K
KyAgICAgYnl0ZXMgLT0gcmV0dmFsOw0KKyAgICAgYXNtIF9fdm9sYXRpbGVf
XyAoDQorICAgICAgICAiMToJcmVwOyBtb3ZzYlxuIg0KKyAgICAgICAgIjI6
XG4iDQorICAgICAgICAiLnNlY3Rpb24gLmZpeHVwLFwiYXhcIlxuIg0KKyAg
ICAgICAgIjM6CWFkZGwgJTMsICUwXG4iDQorICAgICAgICAiCXhvcmwgJTMs
ICUzXG4iDQorICAgICAgICAiCWptcCAyYlxuIg0KKwkiLnByZXZpb3VzXG4i
DQorICAgICAgICAiLnNlY3Rpb24gX19leF90YWJsZSxcImFcIlxuIg0KKyAg
ICAgICAgIgkuYWxpZ24gNFxuIg0KKyAgICAgICAgIgkubG9uZyAxYiwzYlxu
Ig0KKwkiLnByZXZpb3VzXG4iDQorICAgICAgICAgOiAiPWMiIChyZXR2YWwp
LCAiPUQiICh0byksICI9UyIgKGZyb20pLCAiPXIiIChieXRlcykNCisgICAg
ICAgICA6ICIwIiAocmV0dmFsKSwgIjEiICh0byksICIyIiAoZnJvbSksICIz
IiAoYnl0ZXMpDQorICAgICAgICAgOiAibWVtb3J5IiApOw0KKyAgICAgfQ0K
KyAgaWYgKGJ5dGVzID49IDEwMjQpIHsNCisgICAgIHVuc2lnbmVkIGxvbmcg
dGVtcDA7DQorDQorICAgICBhc20gX192b2xhdGlsZV9fICgNCisgICAgICAg
ICIJZnNhdmUgJTRcbiINCisgICAgICAgICIxOgltb3ZsICglMSksICUzXG4i
DQorICAgICAgICAiMjoJbW92bCAoJTApLCAlM1xuIg0KKyAgICAgICAgIjM6
CW1vdmwgJDQsICUzXG4iDQorICAgICAgICAiNDoJZmlsZHEgMHgwKCUxKVxu
Ig0KKyAgICAgICAgIjU6CWZpbGRxIDB4MjAoJTEpXG4iDQorICAgICAgICAi
NjoJZmlsZHEgMHg0MCglMSlcbiINCisgICAgICAgICI3OglmaWxkcSAweDYw
KCUxKVxuIg0KKyAgICAgICAgIjg6CWZpbGRxIDB4ODAoJTEpXG4iDQorICAg
ICAgICAiOToJZmlsZHEgMHhhMCglMSlcbiINCisgICAgICAgICIxMDoJZmls
ZHEgMHhjMCglMSlcbiINCisgICAgICAgICIxMToJZmlsZHEgMHhlMCglMSlc
biINCisgICAgICAgICIJZnhjaFxuIg0KKyAgICAgICAgIjEyOglmaXN0cHEg
MHhjMCglMClcbiINCisgICAgICAgICIxMzoJZmlzdHBxIDB4ZTAoJTApXG4i
DQorICAgICAgICAiMTQ6CWZpc3RwcSAweGEwKCUwKVxuIg0KKyAgICAgICAg
IjE1OglmaXN0cHEgMHg4MCglMClcbiINCisgICAgICAgICIxNjoJZmlzdHBx
IDB4NjAoJTApXG4iDQorICAgICAgICAiMTc6CWZpc3RwcSAweDQwKCUwKVxu
Ig0KKyAgICAgICAgIjE4OglmaXN0cHEgMHgyMCglMClcbiINCisgICAgICAg
ICIxOToJZmlzdHBxIDB4MCglMClcbiINCisgICAgICAgICIJYWRkbCAkOCwg
JTFcbiINCisgICAgICAgICIJYWRkbCAkOCwgJTBcbiINCisgICAgICAgICIJ
ZGVjbCAlM1xuIg0KKyAgICAgICAgIglqbmUgNGJcbiINCisNCisgICAgICAg
ICIJc3VibCAkMjU2LCAlMlxuIg0KKyAgICAgICAgIglhZGRsICQyMjQsICUx
XG4iDQorICAgICAgICAiCWFkZGwgJDIyNCwgJTBcbiINCisgICAgICAgICIJ
Y21wbCAkMjU2LCAlMlxuIg0KKyAgICAgICAgIglqbmIgM2JcbiINCisgICAg
ICAgICIyMDoJZnJzdG9yICU0XG4iDQorICAgICAgICAiLnNlY3Rpb24gLmZp
eHVwLFwiYXhcIlxuIg0KKyAgICAgICAgIjIxOgljbXBsICQ0LCAlM1xuIg0K
KyAgICAgICAgIglqZSAyMGJcbiINCisgICAgICAgICIJc3VibCAkOCwgJTFc
biINCisgICAgICAgICIJc3VibCAkOCwgJTBcbiINCisgICAgICAgICIJaW5j
bCAlM1xuIg0KKyAgICAgICAgIglqbXAgMjFiXG4iDQorCSIucHJldmlvdXNc
biINCisgICAgICAgICIuc2VjdGlvbiBfX2V4X3RhYmxlLFwiYVwiXG4iDQor
ICAgICAgICAiCS5hbGlnbiA0XG4iDQorICAgICAgICAiCS5sb25nIDFiLDIw
YlxuIg0KKyAgICAgICAgIgkubG9uZyAyYiwyMGJcbiINCisgICAgICAgICIJ
LmxvbmcgNGIsMjFiXG4iDQorICAgICAgICAiCS5sb25nIDViLDIxYlxuIg0K
KyAgICAgICAgIgkubG9uZyA2YiwyMWJcbiINCisgICAgICAgICIJLmxvbmcg
N2IsMjFiXG4iDQorICAgICAgICAiCS5sb25nIDhiLDIxYlxuIg0KKyAgICAg
ICAgIgkubG9uZyA5YiwyMWJcbiINCisgICAgICAgICIJLmxvbmcgMTBiLDIx
YlxuIg0KKyAgICAgICAgIgkubG9uZyAxMWIsMjFiXG4iDQorICAgICAgICAi
CS5sb25nIDEyYiwyMWJcbiINCisgICAgICAgICIJLmxvbmcgMTNiLDIxYlxu
Ig0KKyAgICAgICAgIgkubG9uZyAxNGIsMjFiXG4iDQorICAgICAgICAiCS5s
b25nIDE1YiwyMWJcbiINCisgICAgICAgICIJLmxvbmcgMTZiLDIxYlxuIg0K
KyAgICAgICAgIgkubG9uZyAxN2IsMjFiXG4iDQorICAgICAgICAiCS5sb25n
IDE4YiwyMWJcbiINCisgICAgICAgICIJLmxvbmcgMTliLDIxYlxuIg0KKwki
LnByZXZpb3VzXG4iDQorICAgICAgICA6ICI9JnIiICh0byksICI9JnIiIChm
cm9tKSwgIj0mciIgKGJ5dGVzKSwgIj0mciIgKHRlbXAwKQ0KKyAgICAgICAg
OiAibSIgKHNhdmVbMF0pLCAiMCIgKHRvKSwgIjEiIChmcm9tKSwgIjIiIChi
eXRlcykNCisgICAgICAgIDogIm1lbW9yeSIgKTsNCisgICB9DQorICAgaWYg
KGJ5dGVzKSB7DQorICAgICAgYXNtIF9fdm9sYXRpbGVfXyAoDQorICAgICAg
ICAiCW1vdmwgJTEsICUwXG4iDQorICAgICAgICAiCWFuZGwgJDMsICUxXG4i
DQorICAgICAgICAiCXNocmwgJDIsICUwXG4iDQorICAgICAgICAiMToJcmVw
OyBtb3ZzbFxuIg0KKyAgICAgICAgIgltb3ZsICUxLCAlMFxuIg0KKyAgICAg
ICAgIjI6CXJlcDsgbW92c2JcbiINCisgICAgICAgICIzOlxuIg0KKyAgICAg
ICAgIi5zZWN0aW9uIC5maXh1cCxcImF4XCJcbiINCisgICAgICAgICI0Ogls
ZWEgMCglMSwlMCw0KSwgJTBcbiINCisJIglqbXAgM2JcbiINCisJIi5wcmV2
aW91c1xuIg0KKyAgICAgICAgIi5zZWN0aW9uIF9fZXhfdGFibGUsXCJhXCJc
biINCisgICAgICAgICIJLmFsaWduIDRcbiINCisgICAgICAgICIJLmxvbmcg
MWIsNGJcbiINCisgICAgICAgICIJLmxvbmcgMmIsM2JcbiINCisJIi5wcmV2
aW91c1xuIg0KKyAgICAgICAgOiAiPWMiIChyZXR2YWwpDQorICAgICAgICA6
ICJyIiAoYnl0ZXMpLCAiRCIgKHRvKSwgIlMiIChmcm9tKQ0KKyAgICAgICAg
OiAiZGkiLCAic2kiLCAibWVtb3J5Iik7DQorICAgIH0NCisgIHJldHVybiBy
ZXR2YWw7DQorfQ0KKw0KK3Vuc2lnbmVkIGxvbmcNCitfX19jbGVhcl91c2Vy
IChjaGFyICpfdG8sIHVuc2lnbmVkIGxvbmcgYnl0ZXMpDQorew0KKyAgcmVn
aXN0ZXIgdW5zaWduZWQgbG9uZyB0byBhc20oImRpIikgPSAodW5zaWduZWQg
bG9uZylfdG87DQorICBjaGFyIHNhdmVbNDJdOw0KKyAgdW5zaWduZWQgbG9u
ZyB6YnVmWzJdPXswLDB9Ow0KKyAgdW5zaWduZWQgbG9uZyByZXR2YWw7DQor
DQorICBhc20gX192b2xhdGlsZV9fICgiY2xkXG4iKTsNCisgIHJldHZhbCA9
IHRvICYgNzsNCisgIGlmIChyZXR2YWwgJiYgYnl0ZXM+PXJldHZhbCkgew0K
KyAgICAgYnl0ZXMgLT0gcmV0dmFsOw0KKyAgICAgYXNtIF9fdm9sYXRpbGVf
XyAoDQorICAgICAgICAiMToJcmVwOyBzdG9zYlxuIg0KKyAgICAgICAgIjI6
XG4iDQorICAgICAgICAiLnNlY3Rpb24gLmZpeHVwLFwiYXhcIlxuIg0KKwki
MzoJYWRkbCAlMiwgJTBcbiINCisgICAgICAgICIJeG9ybCAlMiwgJTJcbiIN
CisgICAgICAgICIJam1wIDJiXG4iDQorCSIucHJldmlvdXNcbiINCisgICAg
ICAgICIuc2VjdGlvbiBfX2V4X3RhYmxlLFwiYVwiXG4iDQorICAgICAgICAi
CS5hbGlnbiA0XG4iDQorICAgICAgICAiCS5sb25nIDFiLCAzYlxuIg0KKwki
LnByZXZpb3VzXG4iDQorICAgICAgICAgOiAiPWMiIChyZXR2YWwpLCAiPUQi
ICh0byksICI9ciIgKGJ5dGVzKQ0KKyAgICAgICAgIDogImEiICgwKSwgIjAi
IChyZXR2YWwpLCAiMSIgKHRvKSwgIjIiIChieXRlcykNCisgICAgICAgICA6
ICJtZW1vcnkiICk7DQorICB9DQorICBpZiAoYnl0ZXMgPj0gNTEyKQ0KKyAg
ICB7IHVuc2lnbmVkIGxvbmcgdGVtcDA7DQorDQorICAgICAgYXNtIF9fdm9s
YXRpbGVfXyAoDQorICAgICAgICIJZnN0ZW52ICU0XG4iDQorICAgICAgICIJ
ZnN0cHQgMzIrJTRcbiINCisgICAgICAgIglmaWxkcSAlM1xuIg0KKyAgICAg
ICAiMToJbW92bCAoJTEpLCAlMFxuIg0KKyAgICAgICAiCW1vdmwgJTIsICUw
XG4iDQorICAgICAgICIJc2hybCAkMywgJTBcbiINCisgICAgICAgIjI6CWZz
dGwgKCUxKVxuIg0KKyAgICAgICAiCWFkZGwgJDgsICUxXG4iDQorICAgICAg
ICIJc3VibCAkOCwgJTJcbiINCisgICAgICAgIglkZWNsICUwXG4iDQorICAg
ICAgICIJam5lIDJiXG4iDQorICAgICAgICIzOglmc3RwbCAlJXN0XG4iDQor
ICAgICAgICIJZmxkdCAzMislNFxuIg0KKyAgICAgICAiCWZsZGVudiAlNFxu
Ig0KKyAgICAgICAiLnNlY3Rpb24gX19leF90YWJsZSxcImFcIlxuIg0KKyAg
ICAgICAiCS5hbGlnbiA0XG4iDQorICAgICAgICIJLmxvbmcgMWIsIDNiXG4i
DQorICAgICAgICIJLmxvbmcgMmIsIDNiXG4iDQorICAgICAgICIucHJldmlv
dXNcbiINCisgICAgICAgOiAiPSZyIiAodGVtcDApLCAiPSZyIiAodG8pLCAi
PSZyIiAoYnl0ZXMpDQorICAgICAgIDogIm0iICgqKGNoYXIgKil6YnVmKSwg
Im0iICgqKGNoYXIgKilzYXZlKSwgIjEiICh0byksICIyIiAoYnl0ZXMpDQor
ICAgICAgICk7DQorICAgIH0NCisgICBpZiAoYnl0ZXMpIHsNCisgICAgICBh
c20gX192b2xhdGlsZV9fICgNCisJIgltb3ZsICUxLCAlMFxuIg0KKwkiCWFu
ZGwgJDMsICUxXG4iDQorCSIJc2hybCAkMiwgJTBcbiINCisgICAgICAgICIx
OglyZXA7IHN0b3NsXG4iDQorICAgICAgICAiCW1vdmwgJTEsICUwXG4iDQor
ICAgICAgICAiMjoJcmVwOyBzdG9zYlxuIg0KKwkiMzpcbiINCisJIi5zZWN0
aW9uIC5maXh1cCxcImF4XCJcbiINCisJIjQ6CWxlYSAwKCUxLCUwLDQpLCAl
MFxuIg0KKwkiCWptcCAzYlxuIg0KKwkiLnByZXZpb3VzXG4iDQorCSIuc2Vj
dGlvbiBfX2V4X3RhYmxlLFwiYVwiXG4iDQorCSIJLmFsaWduIDRcbiINCisJ
IgkubG9uZyAxYiwgNGJcbiINCisJIgkubG9uZyAyYiwgM2JcbiINCisJIi5w
cmV2aW91c1xuIg0KKyAgICAgICAgOiAiPWMiIChyZXR2YWwpDQorICAgICAg
ICA6ICJyIiAoYnl0ZXMpLCAiYSIgKDApLCAiRCIgKHRvKQ0KKyAgICAgICAg
OiAiZGkiLCAibWVtb3J5Iik7DQorICAgIH0NCisgIHJldHVybiByZXR2YWw7
DQorfQ0KZGlmZiAtdU5yIGxpbnV4LmNsZWFuL2luY2x1ZGUvYXNtLWkzODYv
c3RyaW5nLTQ4Ni5oIGxpbnV4L2luY2x1ZGUvYXNtLWkzODYvc3RyaW5nLTQ4
Ni5oDQotLS0gbGludXguY2xlYW4vaW5jbHVkZS9hc20taTM4Ni9zdHJpbmct
NDg2LmgJVGh1IE9jdCAyMyAyMDoxNDo1NiAxOTk3DQorKysgbGludXgvaW5j
bHVkZS9hc20taTM4Ni9zdHJpbmctNDg2LmgJVHVlIE5vdiAxOCAwODo0Njo0
MyAxOTk3DQpAQCAtMSw2ICsxLDggQEANCiAjaWZuZGVmIF9JMzg2X1NUUklO
R19JNDg2X0hfDQogI2RlZmluZSBfSTM4Nl9TVFJJTkdfSTQ4Nl9IXw0KIA0K
KyNpbmNsdWRlIDxsaW51eC9jb25maWcuaD4NCisNCiAvKg0KICAqIFRoaXMg
c3RyaW5nLWluY2x1ZGUgZGVmaW5lcyBhbGwgc3RyaW5nIGZ1bmN0aW9ucyBh
cyBpbmxpbmUNCiAgKiBmdW5jdGlvbnMuIFVzZSBnY2MuIEl0IGFsc28gYXNz
dW1lcyBkcz1lcz1kYXRhIHNwYWNlLCB0aGlzIHNob3VsZCBiZQ0KQEAgLTQx
Niw3ICs0MTgsNyBAQA0KIA0KICNkZWZpbmUgX19IQVZFX0FSQ0hfTUVNQ1BZ
DQogI2RlZmluZSBtZW1jcHkoZCxzLGNvdW50KSBcDQotKF9fYnVpbHRpbl9j
b25zdGFudF9wKGNvdW50KSA/IFwNCisoKCgoY291bnQpIDwgMjU2KSAmJiAo
X19idWlsdGluX2NvbnN0YW50X3AoY291bnQpKSkgPyBcDQogIF9fbWVtY3B5
X2MoKGQpLChzKSwoY291bnQpKSA6IFwNCiAgX19tZW1jcHlfZygoZCksKHMp
LChjb3VudCkpKQ0KIA0KQEAgLTQ2Miw2ICs0NjQsOSBAQA0KIHJldHVybiAo
dG8pOw0KIH0NCiANCisjaWZkZWYgQ09ORklHX001ODZfQ09QWQ0KK2V4dGVy
biB2b2lkICpfX21lbWNweV9nKHZvaWQgKnRvLCBjb25zdCB2b2lkICpmcm9t
LCBzaXplX3Qgbik7DQorI2Vsc2UNCiBleHRlcm4gaW5saW5lIHZvaWQgKiBf
X21lbWNweV9nKHZvaWQgKiB0bywgY29uc3Qgdm9pZCAqIGZyb20sIHNpemVf
dCBuKQ0KIHsNCiByZWdpc3RlciB2b2lkICp0bXAgPSAodm9pZCAqKXRvOw0K
QEAgLTQ4MCw2ICs0ODUsNyBAQA0KIAk6ImN4IiwiZGkiLCJzaSIsIm1lbW9y
eSIpOw0KIHJldHVybiAodG8pOw0KIH0NCisjZW5kaWYNCiANCiANCiAjZGVm
aW5lIF9fSEFWRV9BUkNIX01FTU1PVkUNCkBAIC01NTUsNiArNTYxLDE5IEBA
DQogICBfX21lbXNldF9nZygocyksKGMpLChjb3VudCkpKSkNCiANCiAjZGVm
aW5lIF9fSEFWRV9BUkNIX01FTVNFVA0KKyNpZmRlZiBDT05GSUdfTTU4Nl9D
T1BZDQorZXh0ZXJuIHZvaWQgKiBfX196ZXJvX2NodW5rKHZvaWQgKnRvLCBz
aXplX3QgYnl0ZXMpOw0KKyNkZWZpbmUgbWVtc2V0KHMsIGMsIGNvdW50KSBc
DQorKCgoKGMpID09IDApICYmICEoKCh1bnNpZ25lZCBsb25nKSBzKSAmIDcp
ICYmICEoKGNvdW50KSAmIDcpICYmICgoY291bnQpID49IDUxMikpID8gXA0K
KyBfX196ZXJvX2NodW5rKChzKSwoY291bnQpKSA6IFwNCisoX19idWlsdGlu
X2NvbnN0YW50X3AoYykgPyBcDQorIChfX2J1aWx0aW5fY29uc3RhbnRfcChj
b3VudCkgPyBcDQorICBfX21lbXNldF9jYygocyksKGMpLChjb3VudCkpIDog
XA0KKyAgX19tZW1zZXRfY2coKHMpLChjKSwoY291bnQpKSkgOiBcDQorIChf
X2J1aWx0aW5fY29uc3RhbnRfcChjb3VudCkgPyBcDQorICBfX21lbXNldF9n
YygocyksKGMpLChjb3VudCkpIDogXA0KKyAgX19tZW1zZXRfZ2coKHMpLChj
KSwoY291bnQpKSkpKQ0KKyNlbHNlDQogI2RlZmluZSBtZW1zZXQocyxjLGNv
dW50KSBcDQogKF9fYnVpbHRpbl9jb25zdGFudF9wKGMpID8gXA0KICAoX19i
dWlsdGluX2NvbnN0YW50X3AoY291bnQpID8gXA0KQEAgLTU2Myw2ICs1ODIs
NyBAQA0KICAoX19idWlsdGluX2NvbnN0YW50X3AoY291bnQpID8gXA0KICAg
X19tZW1zZXRfZ2MoKHMpLChjKSwoY291bnQpKSA6IFwNCiAgIF9fbWVtc2V0
X2dnKChzKSwoYyksKGNvdW50KSkpKQ0KKyNlbmRpZg0KIA0KIGV4dGVybiBp
bmxpbmUgdm9pZCAqIF9fbWVtc2V0X2NjX2J5NCh2b2lkICogcywgY2hhciBj
LCBzaXplX3QgY291bnQpDQogew0KZGlmZiAtdU5yIGxpbnV4LmNsZWFuL2lu
Y2x1ZGUvYXNtLWkzODYvc3RyaW5nLmggbGludXgvaW5jbHVkZS9hc20taTM4
Ni9zdHJpbmcuaA0KLS0tIGxpbnV4LmNsZWFuL2luY2x1ZGUvYXNtLWkzODYv
c3RyaW5nLmgJVGh1IE9jdCAyMyAyMDoxNDo1OCAxOTk3DQorKysgbGludXgv
aW5jbHVkZS9hc20taTM4Ni9zdHJpbmcuaAlUdWUgTm92IDE4IDA4OjQ2OjQz
IDE5OTcNCkBAIC0xLDYgKzEsNyBAQA0KICNpZm5kZWYgX0kzODZfU1RSSU5H
X0hfDQogI2RlZmluZSBfSTM4Nl9TVFJJTkdfSF8NCiANCisjaW5jbHVkZSA8
bGludXgvY29uZmlnLmg+DQogLyoNCiAgKiBPbiBhIDQ4NiBvciBQZW50aXVt
LCB3ZSBhcmUgYmV0dGVyIG9mZiBub3QgdXNpbmcgdGhlDQogICogYnl0ZSBz
dHJpbmcgb3BlcmF0aW9ucy4gQnV0IG9uIGEgMzg2IG9yIGEgUFBybyB0aGUN
CkBAIC0zNjMsNiArMzY0LDEwIEBADQogcmV0dXJuIF9fcmVzOw0KIH0NCiAN
CisjaWZkZWYgQ09ORklHX001ODZfQ09QWQ0KKyNkZWZpbmUgX19tZW1jcHkg
X19tZW1jcHlfZw0KK2V4dGVybiB2b2lkICpfX21lbWNweSh2b2lkICp0bywg
Y29uc3Qgdm9pZCAqZnJvbSwgc2l6ZV90IG4pOw0KKyNlbHNlDQogZXh0ZXJu
IGlubGluZSB2b2lkICogX19tZW1jcHkodm9pZCAqIHRvLCBjb25zdCB2b2lk
ICogZnJvbSwgc2l6ZV90IG4pDQogew0KIF9fYXNtX18gX192b2xhdGlsZV9f
KA0KQEAgLTM4MCw2ICszODUsNyBAQA0KIAk6ICJjeCIsImRpIiwic2kiLCJt
ZW1vcnkiKTsNCiByZXR1cm4gKHRvKTsNCiB9DQorI2VuZGlmDQogDQogLyoN
CiAgKiBUaGlzIGxvb2tzIGhvcnJpYmx5IHVnbHksIGJ1dCB0aGUgY29tcGls
ZXIgY2FuIG9wdGltaXplIGl0IHRvdGFsbHksDQpAQCAtNDQ5LDcgKzQ1NSw3
IEBADQogDQogI2RlZmluZSBfX0hBVkVfQVJDSF9NRU1DUFkNCiAjZGVmaW5l
IG1lbWNweSh0LCBmLCBuKSBcDQotKF9fYnVpbHRpbl9jb25zdGFudF9wKG4p
ID8gXA0KKygoKChuKSA8IDI1NikgJiYgKF9fYnVpbHRpbl9jb25zdGFudF9w
KG4pKSkgPyBcDQogIF9fY29uc3RhbnRfbWVtY3B5KCh0KSwoZiksKG4pKSA6
IFwNCiAgX19tZW1jcHkoKHQpLChmKSwobikpKQ0KIA0KQEAgLTYwOSwxMCAr
NjE1LDIwIEBADQogIF9fbWVtc2V0X2dlbmVyaWMoKHMpLChjKSwoY291bnQp
KSkNCiANCiAjZGVmaW5lIF9fSEFWRV9BUkNIX01FTVNFVA0KKyNpZmRlZiBD
T05GSUdfTTU4Nl9DT1BZDQorZXh0ZXJuIHZvaWQgKiBfX196ZXJvX2NodW5r
KHZvaWQgKnRvLCBzaXplX3QgYnl0ZXMpOw0KKyNkZWZpbmUgbWVtc2V0KHMs
IGMsIGNvdW50KSBcDQorKCgoYykgPT0gMCkgJiYgKChjb3VudCkgPj0gNTEy
KSA/IFwNCisgX19femVyb19jaHVuaygocyksKGNvdW50KSkgOiBcDQorIF9f
YnVpbHRpbl9jb25zdGFudF9wKGMpID8gXA0KKyAgX19jb25zdGFudF9jX3hf
bWVtc2V0KChzKSwoMHgwMTAxMDEwMVVMKih1bnNpZ25lZCBjaGFyKWMpLChj
b3VudCkpIDogXA0KKyAgX19tZW1zZXQoKHMpLChjKSwoY291bnQpKSkNCisj
ZWxzZQ0KICNkZWZpbmUgbWVtc2V0KHMsIGMsIGNvdW50KSBcDQogKF9fYnVp
bHRpbl9jb25zdGFudF9wKGMpID8gXA0KICBfX2NvbnN0YW50X2NfeF9tZW1z
ZXQoKHMpLCgweDAxMDEwMTAxVUwqKHVuc2lnbmVkIGNoYXIpYyksKGNvdW50
KSkgOiBcDQogIF9fbWVtc2V0KChzKSwoYyksKGNvdW50KSkpDQorI2VuZGlm
DQogDQogLyoNCiAgKiBmaW5kIHRoZSBmaXJzdCBvY2N1cnJlbmNlIG9mIGJ5
dGUgJ2MnLCBvciAxIHBhc3QgdGhlIGFyZWEgaWYgbm9uZQ0KZGlmZiAtdU5y
IGxpbnV4LmNsZWFuL2luY2x1ZGUvYXNtLWkzODYvdWFjY2Vzcy5oIGxpbnV4
L2luY2x1ZGUvYXNtLWkzODYvdWFjY2Vzcy5oDQotLS0gbGludXguY2xlYW4v
aW5jbHVkZS9hc20taTM4Ni91YWNjZXNzLmgJTW9uIE5vdiAgMyAxNDoxNjoy
NiAxOTk3DQorKysgbGludXgvaW5jbHVkZS9hc20taTM4Ni91YWNjZXNzLmgJ
VHVlIE5vdiAxOCAwODo0Njo0MyAxOTk3DQpAQCAtNCw2ICs0LDcgQEANCiAv
Kg0KICAqIFVzZXIgc3BhY2UgbWVtb3J5IGFjY2VzcyBmdW5jdGlvbnMNCiAg
Ki8NCisjaW5jbHVkZSA8bGludXgvY29uZmlnLmg+DQogI2luY2x1ZGUgPGxp
bnV4L3NjaGVkLmg+DQogI2luY2x1ZGUgPGFzbS9zZWdtZW50Lmg+DQogDQpA
QCAtMjQwLDYgKzI0MSw0MCBAQA0KICAqIENvcHkgVG8vRnJvbSBVc2Vyc3Bh
Y2UNCiAgKi8NCiANCisjaWZkZWYgQ09ORklHX001ODZfQ09QWQ0KKw0KK2V4
dGVybiB1bnNpZ25lZCBsb25nIF9fX2NvcHlfdXNlcih2b2lkICpfdG8sIGNv
bnN0IHZvaWQgKl9mcm9tLCB1bnNpZ25lZCBsb25nIF9ieXRlcyk7DQorDQor
LyogR2VuZXJpYyBhcmJpdHJhcnkgc2l6ZWQgY29weS4gICovDQorI2RlZmlu
ZSBfX19fY29weV91c2VyKHRvLGZyb20sc2l6ZSkJCQkJCVwNCisJX19hc21f
XyBfX3ZvbGF0aWxlX18oCQkJCQkJXA0KKwkJIjA6CXJlcDsgbW92c2xcbiIJ
CQkJCVwNCisJCSIJbW92bCAlMSwlMFxuIgkJCQkJXA0KKwkJIjE6CXJlcDsg
bW92c2JcbiIJCQkJCVwNCisJCSIyOlxuIgkJCQkJCQlcDQorCQkiLnNlY3Rp
b24gLmZpeHVwLFwiYXhcIlxuIgkJCQlcDQorCQkiMzoJbGVhIDAoJTEsJTAs
NCksJTBcbiIJCQkJXA0KKwkJIglqbXAgMmJcbiIJCQkJCVwNCisgICAgICAg
ICAgICAgICAgIi5wcmV2aW91c1xuIiAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBcDQorCQkiLnNlY3Rpb24gX19leF90YWJs
ZSxcImFcIlxuIgkJCQlcDQorCQkiCS5hbGlnbiA0XG4iCQkJCQlcDQorCQki
CS5sb25nIDBiLDNiXG4iCQkJCQlcDQorCQkiCS5sb25nIDFiLDJiXG4iCQkJ
CQlcDQorICAgICAgICAgICAgICAgICIucHJldmlvdXNcbiIgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXA0KKwkJOiAiPWMi
KHNpemUpCQkJCQkJXA0KKwkJOiAiciIoc2l6ZSAmIDMpLCAiMCIoc2l6ZSAv
IDQpLCAiRCIodG8pLCAiUyIoZnJvbSkJXA0KKwkJOiAiZGkiLCAic2kiLCAi
bWVtb3J5IikNCisNCisjZGVmaW5lIF9fY29weV91c2VyKHRvLGZyb20sc2l6
ZSkJCQlcDQorICAgICBkbyB7CQkJCQkJXA0KKyAgICAgICAgaWYgKChzaXpl
KSA+PSA1MTIpCQkJCVwNCisgICAgICAgICAgICAgICAgc2l6ZSA9IF9fX2Nv
cHlfdXNlcih0byxmcm9tLHNpemUpOwlcDQorICAgICAgICBlbHNlCQkJCQkJ
XA0KKyAgICAgICAgICAgICAgICBfX19fY29weV91c2VyKHRvLGZyb20sc2l6
ZSk7CQlcDQorICAgICB9IHdoaWxlICgwKQ0KKw0KKyNlbHNlDQorDQogLyog
R2VuZXJpYyBhcmJpdHJhcnkgc2l6ZWQgY29weS4gICovDQogI2RlZmluZSBf
X2NvcHlfdXNlcih0byxmcm9tLHNpemUpCQkJCQlcDQogCV9fYXNtX18gX192
b2xhdGlsZV9fKAkJCQkJCVwNCkBAIC0yNjAsNiArMjk1LDggQEANCiAJCTog
InIiKHNpemUgJiAzKSwgIjAiKHNpemUgLyA0KSwgIkQiKHRvKSwgIlMiKGZy
b20pCVwNCiAJCTogImRpIiwgInNpIiwgIm1lbW9yeSIpDQogDQorI2VuZGlm
DQorDQogLyogT3B0aW1pemUganVzdCBhIGxpdHRsZSBiaXQgd2hlbiB3ZSBr
bm93IHRoZSBzaXplIG9mIHRoZSBtb3ZlLiAqLw0KICNkZWZpbmUgX19jb25z
dGFudF9jb3B5X3VzZXIodG8sIGZyb20sIHNpemUpCQkJXA0KIGRvIHsJCQkJ
CQkJCVwNCkBAIC00MDQsMTIgKzQ0MSwxMiBAQA0KIH0NCiANCiAjZGVmaW5l
IGNvcHlfdG9fdXNlcih0byxmcm9tLG4pCQkJCVwNCi0JKF9fYnVpbHRpbl9j
b25zdGFudF9wKG4pID8JCQlcDQorCSgoX19idWlsdGluX2NvbnN0YW50X3Ao
bikgJiYgKChuKSA8IDI1NikpPwlcDQogCSBfX2NvbnN0YW50X2NvcHlfdG9f
dXNlcigodG8pLChmcm9tKSwobikpIDoJXA0KIAkgX19nZW5lcmljX2NvcHlf
dG9fdXNlcigodG8pLChmcm9tKSwobikpKQ0KIA0KICNkZWZpbmUgY29weV9m
cm9tX3VzZXIodG8sZnJvbSxuKQkJCVwNCi0JKF9fYnVpbHRpbl9jb25zdGFu
dF9wKG4pID8JCQlcDQorCSgoX19idWlsdGluX2NvbnN0YW50X3AobikgJiYg
KChuKSA8IDI1NikpPwlcDQogCSBfX2NvbnN0YW50X2NvcHlfZnJvbV91c2Vy
KCh0byksKGZyb20pLChuKSkgOglcDQogCSBfX2dlbmVyaWNfY29weV9mcm9t
X3VzZXIoKHRvKSwoZnJvbSksKG4pKSkNCiANCkBAIC00MzgsNiArNDc1LDM5
IEBADQogICogWmVybyBVc2Vyc3BhY2UNCiAgKi8NCiANCisjaWZkZWYgQ09O
RklHX001ODZfQ09QWQ0KKw0KK2V4dGVybiB1bnNpZ25lZCBsb25nIF9fX2Ns
ZWFyX3VzZXIoY2hhciAqYWRkciwgdW5zaWduZWQgbG9uZyBzaXplKTsNCisN
CisjZGVmaW5lIF9fX19jbGVhcl91c2VyKGFkZHIsc2l6ZSkJCQkJCVwNCisJ
X19hc21fXyBfX3ZvbGF0aWxlX18oCQkJCQkJXA0KKwkJIjA6CXJlcDsgc3Rv
c2xcbiIJCQkJCVwNCisJCSIJbW92bCAlMSwlMFxuIgkJCQkJXA0KKwkJIjE6
CXJlcDsgc3Rvc2JcbiIJCQkJCVwNCisJCSIyOlxuIgkJCQkJCQlcDQorCQki
LnNlY3Rpb24gLmZpeHVwLFwiYXhcIlxuIgkJCQlcDQorCQkiMzoJbGVhIDAo
JTEsJTAsNCksJTBcbiIJCQkJXA0KKwkJIglqbXAgMmJcbiIJCQkJCVwNCisg
ICAgICAgICAgICAgICAgIi5wcmV2aW91c1xuIiAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICBcDQorCQkiLnNlY3Rpb24gX19l
eF90YWJsZSxcImFcIlxuIgkJCQlcDQorCQkiCS5hbGlnbiA0XG4iCQkJCQlc
DQorCQkiCS5sb25nIDBiLDNiXG4iCQkJCQlcDQorCQkiCS5sb25nIDFiLDJi
XG4iCQkJCQlcDQorICAgICAgICAgICAgICAgICIucHJldmlvdXNcbiIgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXA0KKwkJ
OiAiPWMiKHNpemUpCQkJCQkJXA0KKwkJOiAiciIoc2l6ZSAmIDMpLCAiMCIo
c2l6ZSAvIDQpLCAiRCIoYWRkciksICJhIigwKQlcDQorCQk6ICJkaSIpDQor
DQorI2RlZmluZSBfX2RvX2NsZWFyX3VzZXIoYWRkcixzaXplKQkJCVwNCisg
ICAgIGRvIHsJCQkJCQlcDQorICAgICAgICBpZiAoKHNpemUpID49IDI1NikJ
CQkJXA0KKyAgICAgICAgICAgICAgICBzaXplID0gX19fY2xlYXJfdXNlcihh
ZGRyLHNpemUpOwlcDQorICAgICAgICBlbHNlCQkJCQkJXA0KKyAgICAgICAg
ICAgICAgICBfX19fY2xlYXJfdXNlcihhZGRyLHNpemUpOwkJXA0KKyAgICAg
fSB3aGlsZSAoMCkNCisNCisjZWxzZQ0KKw0KICNkZWZpbmUgX19kb19jbGVh
cl91c2VyKGFkZHIsc2l6ZSkJCQkJCQlcDQogCV9fYXNtX18gX192b2xhdGls
ZV9fKAkJCQkJCVwNCiAJCSIwOglyZXA7IHN0b3NsXG4iCQkJCQlcDQpAQCAt
NDU2LDYgKzUyNiw4IEBADQogCQk6ICI9YyIoc2l6ZSkJCQkJCQlcDQogCQk6
ICJyIihzaXplICYgMyksICIwIihzaXplIC8gNCksICJEIihhZGRyKSwgImEi
KDApCVwNCiAJCTogImRpIikNCisNCisjZW5kaWYNCiANCiBzdGF0aWMgaW5s
aW5lIHVuc2lnbmVkIGxvbmcNCiBjbGVhcl91c2VyKHZvaWQgKnRvLCB1bnNp
Z25lZCBsb25nIG4pDQpkaWZmIC11TnIgbGludXguY2xlYW4va2VybmVsL2tz
eW1zLmMgbGludXgva2VybmVsL2tzeW1zLmMNCi0tLSBsaW51eC5jbGVhbi9r
ZXJuZWwva3N5bXMuYwlNb24gT2N0IDI3IDE1OjU3OjI4IDE5OTcNCisrKyBs
aW51eC9rZXJuZWwva3N5bXMuYwlUdWUgTm92IDE4IDA4OjQ2OjQzIDE5OTcN
CkBAIC04Myw2ICs4MywxMSBAQA0KIGV4dGVybiBpbnQgcmVxdWVzdF9kbWEo
dW5zaWduZWQgaW50IGRtYW5yLCBjaGFyICogZGV2aWNlSUQpOw0KIGV4dGVy
biB2b2lkIGZyZWVfZG1hKHVuc2lnbmVkIGludCBkbWFucik7DQogDQorI2lm
ZGVmIENPTkZJR19NNTg2X0NPUFkNCisjaW5jbHVkZSA8YXNtL3N0cmluZy5o
Pg0KKyNpbmNsdWRlIDxhc20vdWFjY2Vzcy5oPg0KKyNlbmRpZg0KKw0KICNp
ZmRlZiBNT0RWRVJTSU9OUw0KIGNvbnN0IHN0cnVjdCBtb2R1bGVfc3ltYm9s
IF9fZXhwb3J0X1VzaW5nX1ZlcnNpb25zDQogX19hdHRyaWJ1dGVfXygoc2Vj
dGlvbigiX19rc3ltdGFiIikpKSA9IHsNCkBAIC00MDMsMyArNDA4LDExIEBA
DQogLyogYmluZm10X2FvdXQgKi8NCiBFWFBPUlRfU1lNQk9MKGdldF93cml0
ZV9hY2Nlc3MpOw0KIEVYUE9SVF9TWU1CT0wocHV0X3dyaXRlX2FjY2Vzcyk7
DQorDQorI2lmZGVmIENPTkZJR19NNTg2X0NPUFkNCisvKiBQZW50aXVtIG1l
bWNweSAqLw0KK0VYUE9SVF9TWU1CT0woX19femVyb19jaHVuayk7DQorRVhQ
T1JUX1NZTUJPTChfX21lbWNweV9nKTsNCitFWFBPUlRfU1lNQk9MKF9fX2Ns
ZWFyX3VzZXIpOw0KK0VYUE9SVF9TWU1CT0woX19fY29weV91c2VyKTsNCisj
ZW5kaWYNCg==
--1881985792-820929610-879943002=:7174--