BadRAM patch for 2.5.73-mm2

Steven Newbury (s_j_newbury@yahoo.co.uk)
Wed, 2 Jul 2003 02:27:06 +0100 (BST)


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-6255-1057109625-0001-2
Content-Type: text/plain; charset=iso-8859-1
Content-Transfer-Encoding: 7bit
Content-Id:
Content-Disposition: inline
X-Mime-Autoconverted: from 8bit to 7bit by courier 0.39

I have ported the BadRAM patch to 2.5.73-mm2.

It will probably apply cleanly to 2.5.73 as well but I haven't checked it
yet...

I am running it now, it seems to work for me.

It is based it on
http://rick.vanrein.org/linux/badram/software/BadRAM-2.4.20.1.patch

=====
Steve

__________________________________________________
Yahoo! Plus - For a better Internet experience
http://uk.promotions.yahoo.com/yplus/yoffer.html
--=_courier-6255-1057109625-0001-2
Content-Type: application/octet-stream; name="BadRAM-2.5.73-mm2.diff"
Content-Transfer-Encoding: base64
Content-Description: BadRAM-2.5.73-mm2.diff
Content-Disposition: attachment; filename="BadRAM-2.5.73-mm2.diff"

ZGlmZiAtdXJOIGxpbnV4LTIuNS43My1tbTIvQ1JFRElUUyBsaW51eC0yLjUv
Q1JFRElUUwotLS0gbGludXgtMi41LjczLW1tMi9DUkVESVRTCTIwMDMtMDYt
MTcgMDU6MjA6MDcuMDAwMDAwMDAwICswMTAwCisrKyBsaW51eC0yLjUvQ1JF
RElUUwkyMDAzLTA3LTAyIDAxOjU4OjUyLjE0NjE5Nzk3MCArMDEwMApAQCAt
MjM2NSw2ICsyMzY1LDEyIEBACiBTOiA1NTEyNyBNYWluegogUzogR2VybWFu
eQogCitOOiBTdGV2ZW4gTmV3YnVyeQorRTogc19qX25ld2J1cnlAeWFob28u
Y28udWsKK0Q6IEZvcndhcmQgcG9ydGVkIEJhZFJBTSBwYXRjaCB0byAyLjUu
NzMgZnJvbSAyLjQuMjAKK1M6IERlcmJ5CitTOiBVbml0ZWQgS2luZ2RvbQor
CiBOOiBEYXZpZCBDLiBOaWVtaQogRTogbmllbWlAdHV4Lm9yZwogVzogaHR0
cDovL3d3dy50dXgub3JnL35uaWVtaS8KQEAgLTI2MDEsNiArMjYwNywxNCBA
QAogUzogTWFsdmVybiwgUGVubnN5bHZhbmlhIDE5MzU1CiBTOiBVU0EKIAor
TjogUmljayB2YW4gUmVpbgorRTogdmFucmVpbkBjcy51dHdlbnRlLm5sCitX
OiBodHRwOi8vd3d3LmNzLnV0d2VudGUubmwvfnZhbnJlaW4KK0Q6IE1lbW9y
eSwgdGhlIEJhZFJBTSBzdWJzeXN0ZW0gZGVhbGluZyB3aXRoIHN0YXRpY2Fs
bHkgY2hhbGxhbmdlZCBSQU0gbW9kdWxlcy4KK1M6IEJpbm5lbmVzIDY3CitT
OiA5NDA3IENYIEFzc2VuCitTOiBUaGUgTmV0aGVybGFuZHMKKwogTjogU3Rl
ZmFuIFJlaW5hdWVyCiBFOiBzdGVwYW5AbGludXguZGUKIFc6IGh0dHA6Ly93
d3cuZnJlaWJ1cmcubGludXguZGUvfnN0ZXBhbi8KQEAgLTI4MTksNiArMjgz
MywxMyBAQAogRToKIEQ6IE1hY2ludG9zaCBJREUgRHJpdmVyCiAKK046IE5p
Y28gU2NobW9pZ2wKK0U6IG5pY29Ad3JpdGVtYWlsLmNvbQorVzogaHR0cDov
L3dlYnJ1bS51bmktbWFubmhlaW0uZGUvbWF0aC9zY2htb2lnbC9saW51eC8K
K0Q6IE1pZ3JhdGlvbiBvZiBCYWRSQU0gcGF0Y2ggdG8gMi40LjQgc2VyaWVz
ICh3aXRoIFJpY2sgdmFuIFJlaW4pCitTOiBNYW5uaGVpbSwgQlcsIEdlcm1h
bnkKK1A6IDIwNDcvMzhGQzlFMDMgIDVEIERCIDA5IEU0IDNGIEYzIENEIDA5
IDc1IDU5IC0gMTEgMTcgOUMgMDMgNDYgRTMgMzggRkMgOUUgMDMKKwogTjog
UGV0ZXIgRGUgU2NocmlqdmVyCiBFOiBzdHVkMTFAY2M0Lmt1bGV1dmVuLmFj
LmJlCiBEOiBNaXRzdW1pIENELVJPTSBkcml2ZXIgcGF0Y2hlcyBNYXJjaCB2
ZXJzaW9uCmRpZmYgLXVyTiBsaW51eC0yLjUuNzMtbW0yL0RvY3VtZW50YXRp
b24vYmFkcmFtLnR4dCBsaW51eC0yLjUvRG9jdW1lbnRhdGlvbi9iYWRyYW0u
dHh0Ci0tLSBsaW51eC0yLjUuNzMtbW0yL0RvY3VtZW50YXRpb24vYmFkcmFt
LnR4dAkxOTcwLTAxLTAxIDAxOjAwOjAwLjAwMDAwMDAwMCArMDEwMAorKysg
bGludXgtMi41L0RvY3VtZW50YXRpb24vYmFkcmFtLnR4dAkyMDAzLTA3LTAx
IDIwOjAyOjI3LjAwMDAwMDAwMCArMDEwMApAQCAtMCwwICsxLDI2NiBAQAor
SU5GT1JNQVRJT04gT04gVVNJTkcgQkFEIFJBTSBNT0RVTEVTCis9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKworSW50cm9kdWN0aW9u
CisJUkFNIGlzIGdldHRpbmcgc21hbGxlciBhbmQgc21hbGxlciwgYW5kIGFz
IGEgcmVzdWx0LCBhbHNvIG1vcmUgYW5kIG1vcmUKKwl2dWxuZXJhYmxlLiBU
aGlzIG1ha2VzIHRoZSBtYW51ZmFjdHVyaW5nIG9mIGhhcmR3YXJlIG1vcmUg
ZXhwZW5zaXZlLAorCXNpbmNlIGFuIGV4Y2Vzc2l2ZSBhbW91bnQgb2YgUkFN
IGNoaXBzIG11c3QgYmUgZGlzY2FyZGVkIG9uIGFjY291bnQgb2YKKwlhIHNp
bmdsZSBjZWxsIHRoYXQgaXMgd3JvbmcuIFNpbWlsYXJseSwgc3RhdGljIGRp
c2NoYXJnZSBtYXkgZGFtYWdlIGEKKwlSQU0gbW9kdWxlIGZvcmV2ZXIsIHdo
aWNoIGlzIHVzdWFsbHkgcmVtZWRpZWQgYnkgcmVwbGFjaW5nIGl0CisJZW50
aXJlbHkuCisKKwlUaGlzIGlzIG5vdCBuZWNlc3NhcnksIGFzIHRoZSBCYWRS
QU0gY29kZSBzaG93czogQnkgaW5mb3JtaW5nIHRoZSBMaW51eAorCWtlcm5l
bCB3aGljaCBhZGRyZXNzZXMgaW4gYSBSQU0gYXJlIGRhbWFnZWQsIHRoZSBr
ZXJuZWwgc2ltcGx5IGF2b2lkcworCWV2ZXIgYWxsb2NhdGluZyBzdWNoIGFk
ZHJlc3NlcyBidXQgbWFrZXMgYWxsIHRoZSByZXN0IGF2YWlsYWJsZS4KKwor
UmVhc29ucyBmb3IgdGhpcyBmZWF0dXJlCisJVGhlcmUgYXJlIG1hbnkgcmVh
c29ucyB3aHkgdGhpcyBrZXJuZWwgZmVhdHVyZSBpcyB1c2VmdWw6CisJLSBD
aGlwIG1hbnVmYWN0dXJlIGlzIHJlc291cmNlIGludGVuc2l2ZTsgd2FzdGUg
bGVzcyBhbmQgc2xlZXAgYmV0dGVyCisJLSBJdCdzIGFub3RoZXIgY2hhbmNl
IHRvIHByb21vdGUgTGludXggYXMgInRoZSBmbGV4aWJsZSBPUyIKKwktIFNv
bWUgbGFwdG9wcyBoYXZlIHRoZWlyIFJBTSBzb2xkZXJlZCBpbi4uLiBhbmQg
dGhlbiBpdCBmYWlscyEKKwktIEl0J3MgcGxhaW4gY29vbCA7LSkKKworUnVu
bmluZyBleGFtcGxlCisJVG8gcnVuIHRoaXMgcHJvamVjdCwgSSB3YXMgZ2l2
ZW4gdHdvIERJTU1zLCAzMiBNQiBlYWNoLiBPbmUsIHRoYXQgd2UKKwlzaGFs
bCB1c2UgYXMgYSBydW5uaW5nIGV4YW1wbGUgaW4gdGhpcyB0ZXh0LCBjb250
YWluZWQgNTEyIGZhdWx0eSBiaXRzLAorCXNwcmVhZCBvdmVyIDEvNCBvZiB0
aGUgYWRkcmVzcyByYW5nZSBpbiBhIHJlZ3VsYXIgcGF0dGVybi4gU29tZSB0
cmlja3MKKwl3aXRoIGEgUkFNIHRlc3RlciBhbmQgYSBmZXcgYmluYXJ5IGNh
bGN1bGF0aW9ucyB3ZXJlIHN1ZmZpY2llbnQgdG8KKwl3cml0ZSB0aGVzZSBm
YXVsdHMgZG93biBpbiAyIGxvbmd3b3JkIG51bWJlcnMuCisKKwlUaGUga2Vy
bmVsIHJlY29nbmlzZWQgdGhlIGNvcnJlY3QgbnVtYmVyIG9mIHBhZ2VzIHdp
dGggZmF1bHRzIGFuZCBkaWQKKwlub3QgZ2l2ZSB0aGVtIG91dCBmb3IgYWxs
b2NhdGlvbi4gVGhlIGFsbG9jYXRpb24gcm91dGluZXMgY291bGQKKwl0aGVy
ZWZvcmUgcHJvZ3Jlc3MgYXMgbm9ybWFsbHksIHdpdGhvdXQgYW55IGFkYXB0
aW9uLgorCVNvLCBJIGdhaW5lZCAzMCBNQiBvZiBESU1NIHdoaWNoIHdvdWxk
IG90aGVyd2lzZSBoYXZlIGJlZW4gdGhyb3duCisJYXdheS4gQWZ0ZXIgYm9v
dGluZyB0aGUga2VybmVsLCB0aGUga2VybmVsIGJlaGF2ZWQgZXhhY3RseSBh
cyBpdAorCWFsd2F5cyBoYWQuCisKK0luaXRpYWwgY2hlY2tzCisJSWYgeW91
IGV4cGVyaWVuY2UgUkFNIHRyb3VibGUsIGZpcnN0IHJlYWQgL3Vzci9zcmMv
bGludXgvbWVtb3J5LnR4dAorCWFuZCB0cnkgb3V0IHRoZSBtZW09NE0gdHJp
Y2sgdG8gc2VlIGlmIGF0IGxlYXN0IHNvbWUgaW5pdGlhbCBwYXJ0cworCW9m
IHlvdXIgUkFNIHdvcmsgd2VsbC4gVGhlIEJhZFJBTSByb3V0aW5lcyBoYWx0
IHRoZSBrZXJuZWwgaW4gcGFuaWMKKwlpZiB0aGUgcmVzZXJ2ZWQgYXJlYSBv
ZiBtZW1vcnkgKGNvbnRhaW5pbmcga2VybmVsIHN0dWZmKSBjb250YWlucwor
CWEgZmF1bHR5IGFkZHJlc3MuCisKK1J1bm5pbmcgYSBSQU0gY2hlY2tlcgor
CVRoZSBtZW1vcnkgY2hlY2tlciBpcyBub3QgYnVpbHQgaW50byB0aGUga2Vy
bmVsLCB0byBhdm9pZCBkZWxheXMgYXQKKwlydW50aW1lLiBJZiB5b3UgZXhw
ZXJpZW5jZSBwcm9ibGVtcyB0aGF0IG1heSBiZSBjYXVzZWQgYnkgUkFNLCBy
dW4KKwlhIGdvb2QgUkFNIGNoZWNrZXIsIHN1Y2ggYXMKKwkJaHR0cDovL3Jl
YWxpdHkuc2dpLmNvbS9jYnJhZHlfZGVudmVyL21lbXRlc3Q4NgorCVRoZSBv
dXRwdXQgb2YgYSBSQU0gY2hlY2tlciBwcm92aWRlcyBhZGRyZXNzZXMgdGhh
dCB3ZW50IHdyb25nLiBJbgorCXRoZSAzMiBNQiBjaGlwIHdpdGggNTEyIGZh
dWx0eSBiaXRzIG1lbnRpb25lZCBhYm92ZSwgdGhlIGVycm9ycyB3ZXJlCisJ
Zm91bmQgaW4gdGhlIDhNQi0xNk1CIHJhbmdlICh0aGUgRElNTSB3YXMgaW4g
c2xvdCAjMCkgYXQgYWRkcmVzc2VzCisJCXh4eDQyZjQKKwkJeHh4NjJmNAor
CQl4eHhjMmY0CisJCXh4eGUyZjQKKwlhbmQgdGhlIGVycm9yIHdhcyBhICJz
dGlja3kgMSBiaXQiLCBhIG1lbW9yeSBiaXQgdGhhdCBzdGF5ZWQgIjEiIG5v
CisJbWF0dGVyIHdoYXQgd2FzIHdyaXR0ZW4gdG8gaXQuIFRoZSByZWd1bGFy
aXR5IG9mIHRoaXMgcGF0dGVybgorCXN1Z2dlc3RzIHRoZSBkZWF0aCBvZiBh
IGJ1ZmZlciBhdCB0aGUgb3V0cHV0IHN0YWdlcyBvZiBhIHJvdyBvbiBvbmUg
b2YKKwl0aGUgY2hpcHMuIEkgZXhwZWN0IHN1Y2ggcmVndWxhcml0eSB0byBi
ZSBjb21tb25wbGFjZS4gRmluZGluZyB0aGlzCisJcmVndWxhcml0eSBjdXJy
ZW50bHkgaXMgaHVtYW4gZWZmb3J0LCBidXQgaXQgc2hvdWxkIG5vdCBiZSBo
YXJkIHRvCisJYWx0ZXIgYSBSQU0gY2hlY2tlciB0byBjYXB0dXJlIGl0IGlu
IHNvbWUgc29ydCBvZiBwYXR0ZXJuLCBwb3NzaWJseQorCXRoZSBCYWRSQU0g
cGF0dGVybnMgZGVzY3JpYmVkIGJlbG93LgorCisJQnkgdGhlIHdheSwgaWYg
eW91IG1hbmFnZSB0byBnZXQgaG9sZCBvZiBtZW10ZXN0ODYgdmVyc2lvbiAy
LjMgb3IKKwliZXlvbmQsIHlvdSBjYW4gY29uZmlndXJlIHRoZSBwcmludGlu
ZyBtb2RlIHRvIHByb2R1Y2UgQmFkUkFNIHBhdHRlcm5zLAorCXdoaWNoIGZp
bmQgb3V0IGV4YWN0bHkgd2hhdCB5b3UgbXVzdCBlbnRlciBvbiB0aGUgTElM
TzogY29tbWFuZGxpbmUsCisJZXhjZXB0IHRoYXQgeW91IHNob3VsZG4ndCBt
ZW50aW9uIHRoZSBhZGRlZCBzcGFjaW5nLiBUaGF0IG1lYW5zIHRoYXQKKwl5
b3UgY2FuIHNraXAgdGhlIGZvbGxvd2luZyBzdGVwLCB3aGljaCBzYXZlcyB5
b3UgYSAqbG90KiBvZiB3b3JrLgorCisJQWxzbyBieSB0aGUgd2F5LCBpZiB5
b3VyIG1hY2hpbmUgaGFzIHRoZSBJU0EgbWVtb3J5IGdhcCBpbiB0aGUgMTVN
LTE2TQorCXJhbmdlIHVuc3RvcHBhYmxlLCBMaW51eCBjYW4gZ2V0IGluIHRy
b3VibGUuIE9uZSB3YXkgb2YgaGFuZGxpbmcgdGhhdAorCXNpdHVhdGlvbiBp
cyBieSBzcGVjaWZ5aW5nIHRoZSB0b3RhbCBtZW1vcnkgc2l6ZSB0byBMaW51
eCB3aXRoIGEgYm9vdAorCXBhcmFtZXRlciBtZW09Li4uIGFuZCB0aGVuIHRv
IHRlbGwgaXQgdG8gdHJlYXQgdGhlIDE1TS0xNk0gcmFuZ2UgYXMKKwlmYXVs
dHkgd2l0aCBhbiBhZGRpdGlvbmFsIGJvb3QgcGFyYW1ldGVyLCBmb3IgaW5z
dGFuY2U6CisJCW1lbT0yNE0gYmFkcmFtPTB4MDBmMDAwMDAsMHhmZmYwMDAw
MAorCWlmIHlvdSBpbnN0YWxsZWQgMjRNQiBvZiBSQU0gaW4gdG90YWwuCisK
K0NhcHR1cmluZyBlcnJvcnMgaW4gYSBwYXR0ZXJuCisJSW5zdGVhZCBvZiBt
YW51YWxseSBwcm92aWRpbmcgYWxsIDUxMiBlcnJvcnMgdG8gdGhlIGtlcm5l
bCwgaXQncyBuaWNlcgorCXRvIGdlbmVyYXRlIGEgcGF0dGVybi4gU2luY2Ug
dGhlIHJlZ3VsYXJpdHkgaXMgYmFzZWQgb24gYWRkcmVzcyBkZWNvZGluZwor
CXNvZnR3YXJlLCB3aGljaCBnZW5lcmFsbHkgdGFrZXMgY2VydGFpbiBiaXRz
IGludG8gYWNjb3VudCBhbmQgaWdub3JlcworCW90aGVycywgd2Ugc2hhbGwg
cHJvdmlkZSBhIGZhdWx0eSBhZGRyZXNzIEYsIHRvZ2V0aGVyIHdpdGggYSBi
aXQgbWFzayBNCisJdGhhdCBzcGVjaWZpZXMgd2hpY2ggYml0cyBtdXN0IGJl
IGVxdWFsIHRvIEYuIEluIEMgY29kZSwgYW4gYWRkcmVzcyBBCisJaXMgZmF1
bHR5IGlmIGFuZCBvbmx5IGlmCisJCShGICYgTSkgPT0gKEEgJiBNKQorCW9y
IGFsdGVybmF0ZWx5IChjbG9zZXIgdG8gYSBoYXJkd2FyZSBpbXBsZW1lbnRh
dGlvbik6CisJCX4oKEYgXiBBKSAmIE0pCisJSW4gdGhlIGV4YW1wbGUgMzIg
TUIgY2hpcCwgd2UgaGFkIHRoZSBmYXVsdHkgYWRkcmVzc2VzIGluIDhNQi0x
Nk1COgorCQl4eHg0MmY0ICAgICAgICAgLi4uLjAxMDAuLi4uCisJCXh4eDYy
ZjQgICAgICAgICAuLi4uMDExMC4uLi4KKwkJeHh4YzJmNCAgICAgICAgIC4u
Li4xMTAwLi4uLgorCQl4eHhlMmY0ICAgICAgICAgLi4uLjExMTAuLi4uCisJ
VGhlIHNlY29uZCBjb2x1bW4gcmVwcmVzZW50cyB0aGUgYWx0ZXJuYXRpbmcg
aGV4IGRpZ2l0IGluIGJpbmFyeSBmb3JtLgorCUFwcGVyYW50bHksIHRoZSBm
aXJzdCBhbmQgb25lLWJ1dCBsYXN0IGJpbmFyeSBkaWdpdCBjYW4gYmUgYW55
dGhpbmcsCisJc28gdGhlIGJpbmFyeSBtYXNrIGZvciB0aGF0IHBhcnQgaXMg
MDEwMS4gVGhlIG1hc2sgZm9yIHRoZSBwYXJ0IGFmdGVyCisJdGhpcyBpcyAw
eGZmZiwgYW5kIHRoZSBwYXJ0IGJlZm9yZSBzaG91bGQgc2VsZWN0IGFueXRo
aW5nIGluIHRoZSByYW5nZQorCThNQi0xNk1CLCBvciAweDAwODAwMDAwLTB4
MDEwMDAwMDA7IHRoaXMgaXMgZG9uZSB3aXRoIGEgYml0bWFzaworCTB4ZmY4
MHh4eHguIENvbWJpbmluZyB0aGVzZSBwYXJ0aWFsIG1hc2tzLCB3ZSBnZXQ6
CisJCUY9MHgwMDgwNDJmNCAgICBNPTB4ZmY4MDVmZmYKKwlUaGF0IGNvdmVy
cyBldmVyeXRoaW5nIGZvciB0aGlzIERJTU07IGZvciBtb3JlIGNvbXBsaWNh
dGVkIGZhaWxpbmcKKwlESU1Ncywgb3IgZm9yIGEgY29tYmluYXRpb24gb2Yg
bXVsdGlwbGUgZmFpbGluZyBESU1NcywgaXQgY2FuIGJlCisJbmVjZXNzYXJ5
IHRvIHNldCB1cCBhIG51bWJlciBvZiBzdWNoIEYvTSBwYWlycy4KKworUmVi
b290aW5nIExpbnV4CisJTm93IHRoYXQgdGhlc2UgcGF0dGVybnMgYXJlIGtu
b3duIChhbmQgZG91YmxlLWNoZWNrZWQsIHRoZSBjYWxjdWxhdGlvbnMKKwlh
cmUgaGlnaGx5IGVycm9yLXByb25lLi4uIGl0IHdvdWxkIGJlIG5lYXQgdG8g
dGVzdCB0aGVtIGluIHRoZSBSQU0KKwljaGVja2VyLi4uKSB3ZSBzaW1wbHkg
cmVzdGFydCBMaW51eCB3aXRoIHRoZXNlIEYvTSBwYWlycyBhcyBhIHBhcmFt
ZXRlci4KKwlJZiB5b3Ugbm9ybWFsbHkgYm9vdCBhcyBmb2xsb3dzOgorCSAg
ICAgICBMSUxPOiBsaW51eAorCXlvdSBzaG91bGQgbm93IGJvb3Qgd2l0aAor
CSAgICAgICBMSUxPOiBsaW51eCBiYWRyYW09MHgwMDgwNDJmNCwweGZmODA1
ZmZmCisJb3IgcGVyaGFwcyBieSBtZW50aW9uaW5nIG1vcmUgRi9NIHBhaXJz
IGluIGFuIG9yZGVyIEYwLE0wLEYxLE0xLC4uLgorCVdoZW4geW91IHByb3Zp
ZGUgYW4gb2RkIG51bWJlciBvZiBhcmd1bWVudHMgdG8gYmFkcmFtLCB0aGUg
ZGVmYXVsdCBtYXNrCisJMHhmZmZmZmZmZiAob25seSBvbmUgYWRkcmVzcyBt
YXRjaGVkKSBpcyBhcHBsaWVkIHRvIHRoZSBwYXR0ZXJuLgorCisJQmV3YXJl
IG9mIHRoZSBjb21tYW5kbGluZSBsZW5ndGguIEF0IGxlYXN0IHVwIHRvIExJ
TE8gdmVyc2lvbiAwLjIxLAorCXRoZSBjb21tYW5kbGluZSBpcyBjdXQgb2Zm
IGFmdGVyIHRoZSA3OHRoIGNoYXJhY3RlcjsgbGF0ZXIgdmVyc2lvbnMKKwlt
YXkgZ28gYXMgZmFyIGFzIHRoZSBrZXJuZWwgZ29lcywgbmFtZWx5IDI1NSBj
aGFyYWN0ZXJzLiBJbiBubyB3YXkgaXMKKwlpdCBwb3NzaWJsZSB0byBlbnRl
ciBtb3JlIHRoYW4gMTAgbnVtYmVycyB0byB0aGUgYmFkcmFtIGJvb3Qgb3B0
aW9uLgorCisJV2hlbiB0aGUga2VybmVsIG5vdyBib290cywgaXQgc2hvdWxk
IG5vdCBnaXZlIGFueSB0cm91YmxlIHdpdGggUkFNLgorCU1pbmQgeW91LCB0
aGlzIGlzIHVuZGVyIHRoZSBhc3N1bXB0aW9uIHRoYXQgdGhlIGtlcm5lbCBh
bmQgaXRzIGRhdGEKKwlzdG9yYWdlIGRvIG5vdCBvdmVybGFwIGFuIGVycm9u
ZW91cyBwYXJ0LiBJZiB0aGlzIGhhcHBlbnMsIGFuZCB0aGUKKwlrZXJuZWwg
ZG9lcyBub3QgY2hva2Ugb24gaXQgcmlnaHQgYXdheSwgaXQgd2lsbCBzdG9w
IHdpdGggYSBwYW5pYy4KKwlZb3Ugd2lsbCBuZWVkIHRvIHByb3ZpZGUgYSBS
QU0gd2hlcmUgdGhlIGluaXRpYWwsIHNheSAyTUIsIGlzIGZhdWx0bGVzcy4K
KworCU5vdyBsb29rIHVwIHlvdXIgbWVtb3J5IHN0YXR1cyB3aXRoCisJICAg
ICAgIGRtZXNnIHwgZ3JlcCBeTWVtb3J5OgorCXdoaWNoIHByaW50cyBhIHNp
bmdsZSBsaW5lIHdpdGggaW5mb3JtYXRpb24gbGlrZQorCQlNZW1vcnk6IDE1
ODUyNGsvMTYzODQwayBhdmFpbGFibGUKKwkJCSg5NDBrIGtlcm5lbCBjb2Rl
LAorCQkJNDEyayByZXNlcnZlZCwKKwkJCTE4NTZrIGRhdGEsCisJCQk2MGsg
aW5pdCwKKwkJCTBrIGhpZ2htZW0sCisJCQkyMDQ4ayBCYWRSQU0pCisJVGhl
IGxhdHRlciBlbnRyeSwgdGhlIGJhZHJhbSwgaXMgMjA0OGsgdG8gcmVwcmVz
ZW50IHRoZSBsb3NzIG9mIDJNQgorCW9mIGdlbmVyYWwgcHVycG9zZSBSQU0g
ZHVlIHRvIHRoZSBlcnJvcnMuIE9yLCBwb3NpdGl2ZWx5IHJlcGhyYXNlZCwK
KwlpbnN0ZWFkIG9mIHRocm93aW5nIG91dCAzMk1CIGFzIHVzZWxlc3MsIHlv
dSBvbmx5IHRocm93IG91dCAyTUIuCisKKwlJZiB0aGUgc3lzdGVtIGlzIHN0
YWJsZSAodHJ5IGNvbXBpbGluZyBhIGZldyBrZXJuZWxzLCBhbmQgZG8gYSBm
ZXcKKwlmaW5kcyBpbiAvIG9yIHNvKSB5b3UgbWF5IGFkZCB0aGUgYm9vdCBw
YXJhbWV0ZXIgdG8gL2V0Yy9saWxvLmNvbmYKKwlhcyBhIGxpbmUgdG8gX2Fs
bF8gdGhlIGtlcm5lbHMgdGhhdCBoYW5kbGUgdGhpcyB0cm91YmxlIHdpdGgg
YSBsaW5lCisJCWFwcGVuZD0iYmFkcmFtPTB4MDA4MDQyZjQsMHhmZjgwNWZm
ZiIKKwlhZnRlciB3aGljaCB5b3UgcnVuICJsaWxvIi4KKwlXYXJuaW5nOiBE
b24ndCBleHBlcmltZW50IHdpdGggdGhlc2Ugc2V0dGluZ3Mgb24geW91ciBv
bmx5IGJvb3QgaW1hZ2UuCisJSWYgdGhlIEJhZFJBTSBvdmVybGF5cyBrZXJu
ZWwgY29kZSwgZGF0YSwgaW5pdCwgb3Igb3RoZXIgcmVzZXJ2ZWQKKwltZW1v
cnksIHRoZSBrZXJuZWwgd2lsbCBoYWx0IGluIHBhbmljLiBUcnkgc2V0dGlu
Z3Mgb24gYSB0ZXN0IGJvb3QKKwlpbWFnZSBmaXJzdCwgYW5kIGlmIHlvdSBn
ZXQgYSBwYW5pYyB5b3Ugc2hvdWxkIGNoYW5nZSB0aGUgb3JkZXIgb2YKKwl5
b3VyIERJTU1zIFt3aGljaCBtYXkgaW52b2x2ZSBidXlpbmcgYSBuZXcgb25l
IGp1c3QgdG8gYmUgYWJsZSB0bworCWNoYW5nZSB0aGUgb3JkZXJdLgorCisJ
WW91IGFyZSBhbGxvd2VkIHRvIGVudGVyIGFueSBudW1iZXIgb2YgQmFkUkFN
IHBhdHRlcm5zIGluIGFsbCB0aGUKKwlwbGFjZXMgZG9jdW1lbnRlZCBpbiB0
aGlzIGZpbGUuIFRoZXkgd2lsbCBhbGwgYXBwbHkuIEl0IGlzIGV2ZW4KKwlw
b3NzaWJsZSB0byBtZW50aW9uIHNldmVyYWwgQmFkUkFNIHBhdHRlcm5zIGlu
IGEgc2luZ2xlIHBsYWNlLiBUaGUKKwljb21wbGV0aW9uIG9mIGFuIG9kZCBu
dW1iZXIgb2YgYXJndW1lbnRzIHdpdGggdGhlIGRlZmF1bHQgbWFzayBpcwor
CWRvbmUgc2VwYXJhdGVseSBmb3IgZWFjaCBiYWRyYW09Li4uIG9wdGlvbi4K
KworS2VybmVsIEN1c3RvbWlzYXRpb24KKwlTb21lIHBlb3BsZSBwcmVmZXIg
dG8gZW50ZXIgdGhlaXIgYmFkcmFtIHBhdHRlcm5zIGluIHRoZSBrZXJuZWws
IGFuZAorCXRoaXMgaXMgYWxzbyBwb3NzaWJsZS4gSW4gbW0vcGFnZV9hbGxv
Yy5jIHRoZXJlIGlzIGFuIGFycmF5IG9mIHVuc2lnbmVkCisJbG9uZyBpbnRl
Z2VycyBpbnRvIHdoaWNoIHRoZSBwYXJhbWV0ZXJzIGNhbiBiZSBlbnRlcmVk
LCBwcmVmaXhlZCB3aXRoCisJdGhlIG51bWJlciBvZiBpbnRlZ2VycyAodHdp
Y2UgdGhlIG51bWJlciBvZiBwYXR0ZXJucykuIFRoZSBhcnJheSBpcworCW5h
bWVkIGJhZHJhbV9jdXN0b20gYW5kIGl0IHdpbGwgYmUgYWRkZWQgdG8gdGhl
IEJhZFJBTSBsaXN0IHdoZW5ldmVyIGFuCisJb3B0aW9uICdiYWRyYW0nIGlz
IHByb3ZpZGVkIG9uIHRoZSBjb21tYW5kbGluZSB3aGVuIGJvb3RpbmcsIGVh
ZCBSQU0gcGFnZXMKIAkJICovCiAJCWlmIChwYWdlX2lzX3JhbSh0bXApICYm
IFBhZ2VSZXNlcnZlZChwZm5fdG9fcGFnZSh0bXApKSkKIAkJCXJlc2VydmVk
cGFnZXMrKzsKLQorI2lmZGVmIENPTkZJR19CQURSQU0KKwkJaWYgKHBhZ2Vf
aXNfcmFtKHRtcCkgJiYgUGFnZUJhZChwZm5fdG9fcGFnZSh0bXApKSkKKwkJ
CWJhZHBhZ2VzKys7CisjZW5kaWYKIAlzZXRfaGlnaG1lbV9wYWdlc19pbml0
KGJhZF9wcHJvKTsKIAogCWNvZGVzaXplID0gICh1bnNpZ25lZCBsb25nKSAm
X2V0ZXh0IC0gKHVuc2lnbmVkIGxvbmcpICZfdGV4dDsKQEAgLTQ4NCw2ICs1
MDEsMTggQEAKIAlrY2xpc3RfYWRkKCZrY29yZV92bWFsbG9jLCAodm9pZCAq
KVZNQUxMT0NfU1RBUlQsIAogCQkgICBWTUFMTE9DX0VORC1WTUFMTE9DX1NU
QVJUKTsKIAorI2lmZGVmIENPTkZJR19CQURSQU0KKwlwcmludGsoS0VSTl9J
TkZPICJNZW1vcnk6ICVsdWsvJWx1ayBhdmFpbGFibGUgKCVkayBrZXJuZWwg
Y29kZSwgJWRrIHJlc2VydmVkLCAlZGsgZGF0YSwgJWRrIGluaXQsICVsZGsg
aGlnaG1lbSwgJWxkayBCYWRSQU0pXG4iLAorCQkodW5zaWduZWQgbG9uZykg
bnJfZnJlZV9wYWdlcygpIDw8IChQQUdFX1NISUZULTEwKSwKKwkJbWF4X21h
cG5yIDw8IChQQUdFX1NISUZULTEwKSwKKwkJY29kZXNpemUgPj4gMTAsCisJ
CXJlc2VydmVkcGFnZXMgPDwgKFBBR0VfU0hJRlQtMTApLAorCQlkYXRhc2l6
ZSA+PiAxMCwKKwkJaW5pdHNpemUgPj4gMTAsCisJCSh1bnNpZ25lZCBsb25n
KSAodG90YWxoaWdoX3BhZ2VzIDw8IChQQUdFX1NISUZULTEwKSksCisJCWJh
ZHBhZ2VzIDw8IChQQUdFX1NISUZULTEwKQorCSAgICAgICApOworI2Vsc2UK
IAlwcmludGsoS0VSTl9JTkZPICJNZW1vcnk6ICVsdWsvJWx1ayBhdmFpbGFi
bGUgKCVkayBrZXJuZWwgY29kZSwgJWRrIHJlc2VydmVkLCAlZGsgZGF0YSwg
JWRrIGluaXQsICVsZGsgaGlnaG1lbSlcbiIsCiAJCSh1bnNpZ25lZCBsb25n
KSBucl9mcmVlX3BhZ2VzKCkgPDwgKFBBR0VfU0hJRlQtMTApLAogCQludW1f
cGh5c3BhZ2VzIDw8IChQQUdFX1NISUZULTEwKSwKQEAgLTQ5Myw2ICs1MjIs
NyBAQAogCQlpbml0c2l6ZSA+PiAxMCwKIAkJKHVuc2lnbmVkIGxvbmcpICh0
b3RhbGhpZ2hfcGFnZXMgPDwgKFBBR0VfU0hJRlQtMTApKQogCSAgICAgICAp
OworI2VuZGlmCiAKICNpZmRlZiBDT05GSUdfWDg2X1BBRQogCWlmICghY3B1
X2hhc19wYWUpCmRpZmYgLXVyTiBsaW51eC0yLjUuNzMtbW0yL2luY2x1ZGUv
YXNtLWkzODYvcGFnZS5oIGxpbnV4LTIuNS9pbmNsdWRlL2FzbS1pMzg2L3Bh
Z2UuaAotLS0gbGludXgtMi41LjczLW1tMi9pbmNsdWRlL2FzbS1pMzg2L3Bh
Z2UuaAkyMDAzLTA3LTAxIDE5OjU5OjUyLjAwMDAwMDAwMCArMDEwMAorKysg
bGludXgtMi41L2luY2x1ZGUvCisJTm90ZSB0aGF0IHRoaXMgc2NoZW1lIGhh
cyBkZWxpYmFkIFJBTSBwYWdlcwogCQkgKi8KIAkJaWYgKHBhZ2VfaXNfcmFt
KHRtcCkgJiYgUGFnZVJlc2VydmVkKHBmbl90b19wYWdlKHRtcCkpKQogCQkJ
cmVzZXJ2ZWRwYWdlcysrOwotCisjaWZkZWYgQ09ORklHX0JBRFJBTQorCQlp
ZiAocGFnZV9pc19yYW0odG1wKSAmJiBQYWdlQmFkKHBmbl90b19wYWdlKHRt
cCkpKQorCQkJYmFkcGFnZXMrKzsKKyNlbmRpZgogCXNldF9oaWdobWVtX3Bh
Z2VzX2luaXQoYmFkX3Bwcm8pOwogCiAJY29kZXNpemUgPSAgKHVuc2lnbmVk
IGxvbmcpICZfZXRleHQgLSAodW5zaWduZWQgbG9uZykgJl90ZXh0OwpAQCAt
NDg0LDYgKzUwMSwxOCBAQAogCWtjbGlzdF9hZGQoJmtjb3JlX3ZtYWxsb2Ms
ICh2b2lkICopVk1BTExPQ19TVEFSVCwgCiAJCSAgIFZNQUxMT0NfRU5ELVZN
QUxMT0NfU1RBUlQpOwogCisjaWZkZWYgQ09ORklHX0JBRFJBTQorCXByaW50
ayhLRVJOX0lORk8gIk1lbW9yeTogJWx1ay8lbHVrIGF2YWlsYWJsZSAoJWRr
IGtlcm5lbCBjb2RlLCAlZGsgcmVzZXJ2ZWQsICVkayBkYXRhLCAlZGsgaW5p
dCwgJWxkayBoaWdobWVtLCAlbGRrIEJhZFJBTSlcbiIsCisJCSh1bnNpZ25l
ZCBsb25nKSBucl9mcmVlX3BhZ2VzKCkgPDwgKFBBR0VfU0hJRlQtMTApLAor
CQltYXhfbWFwbnIgPDwgKFBBR0VfU0hJRlQtMTApLAorCQljb2Rlc2l6ZSA+
PiAxMCwKKwkJcmVzZXJ2ZWRwYWdlcyA8PCAoUEFHRV9TSElGVC0xMCksCisJ
CWRhdGFzaXplID4+IDEwLAorCQlpbml0c2l6ZSA+PiAxMCwKKwkJKHVuc2ln
bmVkIGxvbmcpICh0b3RhbGhpZ2hfcGFnZXMgPDwgKFBBR0VfU0hJRlQtMTAp
KSwKKwkJYmFkcGFnZXMgPDwgKFBBR0VfU0hJRlQtMTApCisJICAgICAgICk7
CisjZWxzZQogCXByaW50ayhLRVJOX0lORk8gIk1lbW9yeTogJWx1ay8lbHVr
IGF2YWlsYWJsZSAoJWRrIGtlcm5lbCBjb2RlLCAlZGsgcmVzZXJ2ZWQsICVk
ayBkYXRhLCAlZGsgaW5pdCwgJWxkayBoaWdobWVtKVxuIiwKIAkJKHVuc2ln
bmVkIGxvbmcpIG5yX2ZyZWVfcGFnZXMoKSA8PCAoUEFHRV9TSElGVC0xMCks
CiAJCW51bV9waHlzcGFnZXMgPDwgKFBBR0VfU0hJRlQtMTApLApAQCAtNDkz
LDYgKzUyMiw3IEBACiAJCWluaXRzaXplID4+IDEwLAogCQkodW5zaWduZWQg
bG9uZykgKHRvdGFsaGlnaF9wYWdlcyA8PCAoUEFHRV9TSElGVC0xMCkpCiAJ
ICAgICAgICk7CisjZW5kaWYKIAogI2lmZGVmIENPTkZJR19YODZfUEFFCiAJ
aWYgKCFjcHVfaGFzX3BhZSkKZGlmZiAtdXJOIGxpbnV4LTIuNS43My1tbTIv
aW5jbHVkZS9hc20taTM4Ni9wYWdlLmggbGludXgtMi41L2luY2x1ZGUvYXNt
LWkzODYvcGFnZS5oCi0tLSBsaW51eC0yLjUuNzMtbW0yL2luY2x1ZGUvYXNt
LWkzODYvcGFnZS5oCTIwMDMtMDctMDEgMTk6NTk6NTIuMDAwMDAwMDAwICsw
MTAwCisrKyBsaW51eC0yLjUvaW5jbHVkZS8gYSBwcmVmZXJlbmNlIGZvciBC
YWRSQU0gcGFnZXMsIGFuYWQgUkFNIHBhZ2VzCiAJCSAqLwogCQlpZiAocGFn
ZV9pc19yYW0odG1wKSAmJiBQYWdlUmVzZXJ2ZWQocGZuX3RvX3BhZ2UodG1w
KSkpCiAJCQlyZXNlcnZlZHBhZ2VzKys7Ci0KKyNpZmRlZiBDT05GSUdfQkFE
UkFNCisJCWlmIChwYWdlX2lzX3JhbSh0bXApICYmIFBhZ2VCYWQocGZuX3Rv
X3BhZ2UodG1wKSkpCisJCQliYWRwYWdlcysrOworI2VuZGlmCiAJc2V0X2hp
Z2htZW1fcGFnZXNfaW5pdChiYWRfcHBybyk7CiAKIAljb2Rlc2l6ZSA9ICAo
dW5zaWduZWQgbG9uZykgJl9ldGV4dCAtICh1bnNpZ25lZCBsb25nKSAmX3Rl
eHQ7CkBAIC00ODQsNiArNTAxLDE4IEBACiAJa2NsaXN0X2FkZCgma2NvcmVf
dm1hbGxvYywgKHZvaWQgKilWTUFMTE9DX1NUQVJULCAKIAkJICAgVk1BTExP
Q19FTkQtVk1BTExPQ19TVEFSVCk7CiAKKyNpZmRlZiBDT05GSUdfQkFEUkFN
CisJcHJpbnRrKEtFUk5fSU5GTyAiTWVtb3J5OiAlbHVrLyVsdWsgYXZhaWxh
YmxlICglZGsga2VybmVsIGNvZGUsICVkayByZXNlcnZlZCwgJWRrIGRhdGEs
ICVkayBpbml0LCAlbGRrIGhpZ2htZW0sICVsZGsgQmFkUkFNKVxuIiwKKwkJ
KHVuc2lnbmVkIGxvbmcpIG5yX2ZyZWVfcGFnZXMoKSA8PCAoUEFHRV9TSElG
VC0xMCksCisJCW1heF9tYXBuciA8PCAoUEFHRV9TSElGVC0xMCksCisJCWNv
ZGVzaXplID4+IDEwLAorCQlyZXNlcnZlZHBhZ2VzIDw8IChQQUdFX1NISUZU
LTEwKSwKKwkJZGF0YXNpemUgPj4gMTAsCisJCWluaXRzaXplID4+IDEwLAor
CQkodW5zaWduZWQgbG9uZykgKHRvdGFsaGlnaF9wYWdlcyA8PCAoUEFHRV9T
SElGVC0xMCkpLAorCQliYWRwYWdlcyA8PCAoUEFHRV9TSElGVC0xMCkKKwkg
ICAgICAgKTsKKyNlbHNlCiAJcHJpbnRrKEtFUk5fSU5GTyAiTWVtb3J5OiAl
bHVrLyVsdWsgYXZhaWxhYmxlICglZGsga2VybmVsIGNvZGUsICVkayByZXNl
cnZlZCwgJWRrIGRhdGEsICVkayBpbml0LCAlbGRrIGhpZ2htZW0pXG4iLAog
CQkodW5zaWduZWQgbG9uZykgbnJfZnJlZV9wYWdlcygpIDw8IChQQUdFX1NI
SUZULTEwKSwKIAkJbnVtX3BoeXNwYWdlcyA8PCAoUEFHRV9TSElGVC0xMCks
CkBAIC00OTMsNiArNTIyLDcgQEAKIAkJaW5pdHNpemUgPj4gMTAsCiAJCSh1
bnNpZ25lZCBsb25nKSAodG90YWxoaWdoX3BhZ2VzIDw8IChQQUdFX1NISUZU
LTEwKSkKIAkgICAgICAgKTsKKyNlbmRpZgogCiAjaWZkZWYgQ09ORklHX1g4
Nl9QQUUKIAlpZiAoIWNwdV9oYXNfcGFlKQpkaWZmIC11ck4gbGludXgtMi41
LjczLW1tMi9pbmNsdWRlL2FzbS1pMzg2L3BhZ2UuaCBsaW51eC0yLjUvaW5j
bHVkZS9hc20taTM4Ni9wYWdlLmgKLS0tIGxpbnV4LTIuNS43My1tbTIvaW5j
bHVkZS9hc20taTM4Ni9wYWdlLmgJMjAwMy0wNy0wMSAxOTo1OTo1Mi4wMDAw
MDAwMDAgKzAxMDAKKysrIGxpbnV4LTIuNS9pbmNsdWRlL2plY3QgaXMgYW4g
aWRlYSBhbmQgaW1wbGVtZW50YXRpb25hZCBSQU0gcGFnZXMKIAkJICovCiAJ
CWlmIChwYWdlX2lzX3JhbSh0bXApICYmIFBhZ2VSZXNlcnZlZChwZm5fdG9f
cGFnZSh0bXApKSkKIAkJCXJlc2VydmVkcGFnZXMrKzsKLQorI2lmZGVmIENP
TkZJR19CQURSQU0KKwkJaWYgKHBhZ2VfaXNfcmFtKHRtcCkgJiYgUGFnZUJh
ZChwZm5fdG9fcGFnZSh0bXApKSkKKwkJCWJhZHBhZ2VzKys7CisjZW5kaWYK
IAlzZXRfaGlnaG1lbV9wYWdlc19pbml0KGJhZF9wcHJvKTsKIAogCWNvZGVz
aXplID0gICh1bnNpZ25lZCBsb25nKSAmX2V0ZXh0IC0gKHVuc2lnbmVkIGxv
bmcpICZfdGV4dDsKQEAgLTQ4NCw2ICs1MDEsMTggQEAKIAlrY2xpc3RfYWRk
KCZrY29yZV92bWFsbG9jLCAodm9pZCAqKVZNQUxMT0NfU1RBUlQsIAogCQkg
ICBWTUFMTE9DX0VORC1WTUFMTE9DX1NUQVJUKTsKIAorI2lmZGVmIENPTkZJ
R19CQURSQU0KKwlwcmludGsoS0VSTl9JTkZPICJNZW1vcnk6ICVsdWsvJWx1
ayBhdmFpbGFibGUgKCVkayBrZXJuZWwgY29kZSwgJWRrIHJlc2VydmVkLCAl
ZGsgZGF0YSwgJWRrIGluaXQsICVsZGsgaGlnaG1lbSwgJWxkayBCYWRSQU0p
XG4iLAorCQkodW5zaWduZWQgbG9uZykgbnJfZnJlZV9wYWdlcygpIDw8IChQ
QUdFX1NISUZULTEwKSwKKwkJbWF4X21hcG5yIDw8IChQQUdFX1NISUZULTEw
KSwKKwkJY29kZXNpemUgPj4gMTAsCisJCXJlc2VydmVkcGFnZXMgPDwgKFBB
R0VfU0hJRlQtMTApLAorCQlkYXRhc2l6ZSA+PiAxMCwKKwkJaW5pdHNpemUg
Pj4gMTAsCisJCSh1bnNpZ25lZCBsb25nKSAodG90YWxoaWdoX3BhZ2VzIDw8
IChQQUdFX1NISUZULTEwKSksCisJCWJhZHBhZ2VzIDw8IChQQUdFX1NISUZU
LTEwKQorCSAgICAgICApOworI2Vsc2UKIAlwcmludGsoS0VSTl9JTkZPICJN
ZW1vcnk6ICVsdWsvJWx1ayBhdmFpbGFibGUgKCVkayBrZXJuZWwgY29kZSwg
JWRrIHJlc2VydmVkLCAlZGsgZGF0YSwgJWRrIGluaXQsICVsZGsgaGlnaG1l
bSlcbiIsCiAJCSh1bnNpZ25lZCBsb25nKSBucl9mcmVlX3BhZ2VzKCkgPDwg
KFBBR0VfU0hJRlQtMTApLAogCQludW1fcGh5c3BhZ2VzIDw8IChQQUdFX1NI
SUZULTEwKSwKQEAgLTQ5Myw2ICs1MjIsNyBAQAogCQlpbml0c2l6ZSA+PiAx
MCwKIAkJKHVuc2lnbmVkIGxvbmcpICh0b3RhbGhpZ2hfcGFnZXMgPDwgKFBB
R0VfU0hJRlQtMTApKQogCSAgICAgICApOworI2VuZGlmCiAKICNpZmRlZiBD
T05GSUdfWDg2X1BBRQogCWlmICghY3B1X2hhc19wYWUpCmRpZmYgLXVyTiBs
aW51eC0yLjUuNzMtbW0yL2luY2x1ZGUvYXNtLWkzODYvcGFnZS5oIGxpbnV4
LTIuNS9pbmNsdWRlL2FzbS1pMzg2L3BhZ2UuaAotLS0gbGludXgtMi41Ljcz
LW1tMi9pbmNsdWRlL2FzbS1pMzg2L3BhZ2UuaAkyMDAzLTA3LTAxIDE5OjU5
OjUyLjAwMDAwMDAwMCArMDEwMAorKysgbGludXgtMi41L2luY2x1ZGUvZXhj
aGFuZ2luZyB5b3VyIAogICAgICAgICAgICBtb3RoZWFkIFJBTSBwYWdlcwog
CQkgKi8KIAkJaWYgKHBhZ2VfaXNfcmFtKHRtcCkgJiYgUGFnZVJlc2VydmVk
KHBmbl90b19wYWdlKHRtcCkpKQogCQkJcmVzZXJ2ZWRwYWdlcysrOwotCisj
aWZkZWYgQ09ORklHX0JBRFJBTQorCQlpZiAocGFnZV9pc19yYW0odG1wKSAm
JiBQYWdlQmFkKHBmbl90b19wYWdlKHRtcCkpKQorCQkJYmFkcGFnZXMrKzsK
KyNlbmRpZgogCXNldF9oaWdobWVtX3BhZ2VzX2luaXQoYmFkX3Bwcm8pOwog
CiAJY29kZXNpemUgPSAgKHVuc2lnbmVkIGxvbmcpICZfZXRleHQgLSAodW5z
aWduZWQgbG9uZykgJl90ZXh0OwpAQCAtNDg0LDYgKzUwMSwxOCBAQAogCWtj
bGlzdF9hZGQoJmtjb3JlX3ZtYWxsb2MsICh2b2lkICopVk1BTExPQ19TVEFS
VCwgCiAJCSAgIFZNQUxMT0NfRU5ELVZNQUxMT0NfU1RBUlQpOwogCisjaWZk
ZWYgQ09ORklHX0JBRFJBTQorCXByaW50ayhLRVJOX0lORk8gIk1lbW9yeTog
JWx1ay8lbHVrIGF2YWlsYWJsZSAoJWRrIGtlcm5lbCBjb2RlLCAlZGsgcmVz
ZXJ2ZWQsICVkayBkYXRhLCAlZGsgaW5pdCwgJWxkayBoaWdobWVtLCAlbGRr
IEJhZFJBTSlcbiIsCisJCSh1bnNpZ25lZCBsb25nKSBucl9mcmVlX3BhZ2Vz
KCkgPDwgKFBBR0VfU0hJRlQtMTApLAorCQltYXhfbWFwbnIgPDwgKFBBR0Vf
U0hJRlQtMTApLAorCQljb2Rlc2l6ZSA+PiAxMCwKKwkJcmVzZXJ2ZWRwYWdl
cyA8PCAoUEFHRV9TSElGVC0xMCksCisJCWRhdGFzaXplID4+IDEwLAorCQlp
bml0c2l6ZSA+PiAxMCwKKwkJKHVuc2lnbmVkIGxvbmcpICh0b3RhbGhpZ2hf
cGFnZXMgPDwgKFBBR0VfU0hJRlQtMTApKSwKKwkJYmFkcGFnZXMgPDwgKFBB
R0VfU0hJRlQtMTApCisJICAgICAgICk7CisjZWxzZQogCXByaW50ayhLRVJO
X0lORk8gIk1lbW9yeTogJWx1ay8lbHVrIGF2YWlsYWJsZSAoJWRrIGtlcm5l
bCBjb2RlLCAlZGsgcmVzZXJ2ZWQsICVkayBkYXRhLCAlZGsgaW5pdCwgJWxk
ayBoaWdobWVtKVxuIiwKIAkJKHVuc2lnbmVkIGxvbmcpIG5yX2ZyZWVfcGFn
ZXMoKSA8PCAoUEFHRV9TSElGVC0xMCksCiAJCW51bV9waHlzcGFnZXMgPDwg
KFBBR0VfU0hJRlQtMTApLApAQCAtNDkzLDYgKzUyMiw3IEBACiAJCWluaXRz
aXplID4+IDEwLAogCQkodW5zaWduZWQgbG9uZykgKHRvdGFsaGlnaF9wYWdl
cyA8PCAoUEFHRV9TSElGVC0xMCkpCiAJICAgICAgICk7CisjZW5kaWYKIAog
I2lmZGVmIENPTkZJR19YODZfUEFFCiAJaWYgKCFjcHVfaGFzX3BhZSkKZGlm
ZiAtdXJOIGxpbnV4LTIuNS43My1tbTIvaW5jbHVkZS9hc20taTM4Ni9wYWdl
LmggbGludXgtMi41L2luY2x1ZGUvYXNtLWkzODYvcGFnZS5oCi0tLSBsaW51
eC0yLjUuNzMtbW0yL2luY2x1ZGUvYXNtLWkzODYvcGFnZS5oCTIwMDMtMDct
MDEgMTk6NTk6NTIuMDAwMDAwMDAwICswMTAwCisrKyBsaW51eC0yLjUvaW5j
bHVkZS8wCkBAIC0yMjMsMTMgKzIyMywyNCBAQAogCXBrbWFwX3BhZ2VfdGFi
bGUgPSBwdGU7CQogfQogCi12b2lkIF9faW5pdCBvbmVfaGlnaHBhZ2VfaW5p
dChzdHJ1Y3QgcGFnZSAqcGFnZSwgaW50IHBmbiwgaW50IGJhZF9wcHJvKQor
LyoqCisgKiBAcGFyYW0gYmFkCXNldCBvbiByZXR1cm4gdG8gd2hldGhlciB0
aGUgcGFnZSBpcyBiYWQgUkFNCisgKi8KK3ZvaWQgX19pbml0IG9uZV9oaWdo
cGFnZV9pbml0KHN0cnVjdCBwYWdlICpwYWdlLCBpbnQgcGZuLCBpbnQgYmFk
X3Bwcm8sCisJCQkJX0Jvb2wgKmJhZCkKIHsKKwkqYmFkID0gMDsKIAlpZiAo
cGFnZV9pc19yYW0ocGZuKSAmJiAhKGJhZF9wcHJvICYmIHBhZ2Vfa2lsbHNf
cHBybyhwZm4pKSkgewogCQlDbGVhclBhZ2VSZXNlcnZlZChwYWdlKTsKIAkJ
c2V0X2JpdChQR19oaWdobWVtLCAmcGFnZS0+ZmxhZ3MpOwogCQlzZXRfcGFn
ZV9jb3VudChwYWdlLCAxKTsKLQkJX19mcmVlX3BhZ2UocGFnZSk7CisjaWZk
ZWYgQ09ORklHX0JBRFJBTQorCQlpZiAoUGFnZUJhZChwYWdlKSkKKwkJCSpi
YWQgPSAxOworCQllbHNlCisjZWxzZQorCSAJCV9fZnJlZV9wYWdlKHBhZ2Up
OworI2VuZGlmCiAJCXRvdGFsaGlnaF9wYWdlcysrOwogCX0gZWxzZQogCQlT
ZXRQYWdlUmVzZXJ2ZWQocGFnZSk7CkBAIC0yMzksOCArMjUwLDEwIEBACiB2
b2lkIF9faW5pdCBzZXRfaGlnaG1lbV9wYWdlc19pbml0KGludCBiYWRfcHBy
bykgCiB7CiAJaW50IHBmbjsKLQlmb3IgKHBmbiA9IGhpZ2hzdGFydF9wZm47
IHBmbiA8IGhpZ2hlbmRfcGZuOyBwZm4rKykKLQkJb25lX2hpZ2hwYWdlX2lu
aXQocGZuX3RvX3BhZ2UocGZuKSwgcGZuLCBiYWRfcHBybyk7CisJZm9yIChw
Zm4gPSBoaWdoc3RhcnRfcGZuOyBwZm4gPCBoaWdoZW5kX3BmbjsgcGZuKysp
IHsKKwkJb25lX2hpZ2hwYWdlX2luaXQocGZuX3RvX3BhZ2UocGZuKSwgcGZu
LCBiYWRfcHBybywgJmJhZCk7CisJCWlmIChiYWQpIGJhZHBhZ2VzKys7CisJ
fQogCXRvdGFscmFtX3BhZ2VzICs9IHRvdGFsaGlnaF9wYWdlczsKIH0KICNl
bHNlCkBAIC00MzEsNyArNDQ0LDcgQEAKIHZvaWQgX19pbml0IG1lbV9pbml0
KHZvaWQpCiB7CiAJZXh0ZXJuIGludCBwcHJvX3dpdGhfcmFtX2J1Zyh2b2lk
KTsKLQlpbnQgY29kZXNpemUsIHJlc2VydmVkcGFnZXMsIGRhdGFzaXplLCBp
bml0c2l6ZTsKKwlpbnQgY29kZXNpemUsIHJlc2VydmVkcGFnZXMsIGJhZHBh
Z2VzLCBkYXRhc2l6ZSwgaW5pdHNpemU7CiAJaW50IHRtcDsKIAlpbnQgYmFk
X3Bwcm87CiAKQEAgLTQ2NywxMyArNDgwLDE3IEBACiAJdG90YWxyYW1fcGFn
ZXMgKz0gX19mcmVlX2FsbF9ib290bWVtKCk7CiAKIAlyZXNlcnZlZHBhZ2Vz
ID0gMDsKKwliYWRwYWdlcyA9IDA7CiAJZm9yICh0bXAgPSAwOyB0bXAgPCBt
YXhfbG93X3BmbjsgdG1wKyspCiAJCS8qCi0JCSAqIE9ubHkgY291bnQgcmVz
ZXJ2ZWQgUkFNIHBhZ2VzCisJCSAqIE9ubHkgY291bnQgcmVzZXJ2ZWQgYW5k
IGJhZCBSQU0gcGFnZXMKIAkJICovCiAJCWlmIChwYWdlX2lzX3JhbSh0bXAp
ICYmIFBhZ2VSZXNlcnZlZChwZm5fdG9fcGFnZSh0bXApKSkKIAkJCXJlc2Vy
dmVkcGFnZXMrKzsKLQorI2lmZGVmIENPTkZJR19CQURSQU0KKwkJaWYgKHBh
Z2VfaXNfcmFtKHRtcCkgJiYgUGFnZUJhZChwZm5fdG9fcGFnZSh0bXApKSkK
KwkJCWJhZHBhZ2VzKys7CisjZW5kaWYKIAlzZXRfaGlnaG1lbV9wYWdlc19p
bml0KGJhZF9wcHJvKTsKIAogCWNvZGVzaXplID0gICh1bnNpZ25lZCBsb25n
KSAmX2V0ZXh0IC0gKHVuc2lnbmVkIGxvbmcpICZfdGV4dDsKQEAgLTQ4NCw2
ICs1MDEsMTggQEAKIAlrY2xpc3RfYWRkKCZrY29yZV92bWFsbG9jLCAodm9p
ZCAqKVZNQUxMT0NfU1RBUlQsIAogCQkgICBWTUFMTE9DX0VORC1WTUFMTE9D
X1NUQVJUKTsKIAorI2lmZGVmIENPTkZJR19CQURSQU0KKwlwcmludGsoS0VS
Tl9JTkZPICJNZW1vcnk6ICVsdWsvJWx1ayBhdmFpbGFibGUgKCVkayBrZXJu
ZWwgY29kZSwgJWRrIHJlc2VydmVkLCAlZGsgZGF0YSwgJWRrIGluaXQsICVs
ZGsgaGlnaG1lbSwgJWxkayBCYWRSQU0pXG4iLAorCQkodW5zaWduZWQgbG9u
ZykgbnJfZnJlZV9wYWdlcygpIDw8IChQQUdFX1NISUZULTEwKSwKKwkJbWF4
X21hcG5yIDw8IChQQUdFX1NISUZULTEwKSwKKwkJY29kZXNpemUgPj4gMTAs
CisJCXJlc2VydmVkcGFnZXMgPDwgKFBBR0VfU0hJRlQtMTApLAorCQlkYXRh
c2l6ZSA+PiAxMCwKKwkJaW5pdHNpemUgPj4gMTAsCisJCSh1bnNpZ25lZCBs
b25nKSAodG90YWxoaWdoX3BhZ2VzIDw8IChQQUdFX1NISUZULTEwKSksCisJ
CWJhZHBhZ2VzIDw8IChQQUdFX1NISUZULTEwKQorCSAgICAgICApOworI2Vs
c2UKIAlwcmludGsoS0VSTl9JTkZPICJNZW1vcnk6ICVsdWsvJWx1ayBhdmFp
bGFibGUgKCVkayBrZXJuZWwgY29kZSwgJWRrIHJlc2VydmVkLCAlZGsgZGF0
YSwgJWRrIGluaXQsICVsZGsgaGlnaG1lbSlcbiIsCiAJCSh1bnNpZ25lZCBs
b25nKSBucl9mcmVlX3BhZ2VzKCkgPDwgKFBBR0VfU0hJRlQtMTApLAogCQlu
dW1fcGh5c3BhZ2VzIDw8IChQQUdFX1NISUZULTEwKSwKQEAgLTQ5Myw2ICs1
MjIsNyBAQAogCQlpbml0c2l6ZSA+PiAxMCwKIAkJKHVuc2lnbmVkIGxvbmcp
ICh0b3RhbGhpZ2hfcGFnZXMgPDwgKFBBR0VfU0hJRlQtMTApKQogCSAgICAg
ICApOworI2VuZGlmCiAKICNpZmRlZiBDT05GSUdfWDg2X1BBRQogCWlmICgh
Y3B1X2hhc19wYWUpCmRpZmYgLXVyTiBsaW51eC0yLjUuNzMtbW0yL2luY2x1
ZGUvYXNtLWkzODYvcGFnZS5oIGxpbnV4LTIuNS9pbmNsdWRlL2FzbS1pMzg2
L3BhZ2UuaAotLS0gbGludXgtMi41LjczLW1tMi9pbmNsdWRlL2FzbS1pMzg2
L3BhZ2UuaAkyMDAzLTA3LTAxIDE5OjU5OjUyLjAwMDAwMDAwMCArMDEwMAor
KysgbGludXgtMi41L2luY2x1ZGUvYXNtLWkzODYvcGFnZS5oCTIwMDMtMDct
MDEgMjA6NDk6MjIuMDAwMDAwMDAwICswMTAwCkBAIC0xNTQsNiArMTU0LDcg
QEAKICNkZWZpbmUgcGZuX3ZhbGlkKHBmbikJCSgocGZuKSA8IG1heF9tYXBu
cikKICNlbmRpZiAvKiAhQ09ORklHX0RJU0NPTlRJR01FTSAqLwogI2RlZmlu
ZSB2aXJ0X3RvX3BhZ2Uoa2FkZHIpCXBmbl90b19wYWdlKF9fcGEoa2FkZHIp
ID4+IFBBR0VfU0hJRlQpCisjZGVmaW5lIHBoeXNfdG9fcGFnZSh4KQkJKG1l
bV9tYXAgKyAoKHVuc2lnbmVkIGxvbmcpKHgpID4+IFBBR0VfU0hJRlQpKQog
CiAjZGVmaW5lIHZpcnRfYWRkcl92YWxpZChrYWRkcikJcGZuX3ZhbGlkKF9f
cGEoa2FkZHIpID4+IFBBR0VfU0hJRlQpCiAKZGlmZiAtdXJOIGxpbnV4LTIu
NS43My1tbTIvbW0vYm9vdG1lbS5jIGxpbnV4LTIuNS9tbS9ib290bWVtLmMK
LS0tIGxpbnV4LTIuNS43My1tbTIvbW0vYm9vdG1lbS5jCTIwMDMtMDYtMTcg
MDU6MTk6NDcuMDAwMDAwMDAwICswMTAwCisrKyBsaW51eC0yLjUvbW0vYm9v
dG1lbS5jCTIwMDMtMDctMDEgMjA6NDI6MjUuMDAwMDAwMDAwICswMTAwCkBA
IC0yNzQsOCArMjc0LDE3IEBACiAJCQkJaWYgKHYgJiBtKSB7CiAJCQkJCWNv
dW50Kys7CiAJCQkJCUNsZWFyUGFnZVJlc2VydmVkKHBhZ2UpOworCisjaWZk
ZWYgQ09ORklHX0JBRFJBTQorCQkJCQlpZiAoIVBhZ2VCYWQocGFnZSkpIHsK
KwkJCQkJCXNldF9wYWdlX2NvdW50KHBhZ2UsIDEpOworCQkJCQkJX19mcmVl
X3BhZ2UocGFnZSk7CisJCQkJCX0KKyNlbHNlCisKIAkJCQkJc2V0X3BhZ2Vf
Y291bnQocGFnZSwgMSk7CiAJCQkJCV9fZnJlZV9wYWdlKHBhZ2UpOworI2Vu
ZGlmCiAJCQkJfQogCQkJfQogCQl9IGVsc2UgewpAQCAtMjk0LDggKzMwMywx
NiBAQAogCWZvciAoaSA9IDA7IGkgPCAoKGJkYXRhLT5ub2RlX2xvd19wZm4t
KGJkYXRhLT5ub2RlX2Jvb3Rfc3RhcnQgPj4gUEFHRV9TSElGVCkpLzggKyBQ
QUdFX1NJWkUtMSkvUEFHRV9TSVpFOyBpKysscGFnZSsrKSB7CiAJCWNvdW50
Kys7CiAJCUNsZWFyUGFnZVJlc2VydmVkKHBhZ2UpOwotCQlzZXRfcGFnZV9j
b3VudChwYWdlLCAxKTsKKworI2lmZGVmIENPTkZJR19CQURSQU0KKwkJaWYg
KCFQYWdlQmFkKHBhZ2UpKSB7CisJCQlzZXRfcGFnZV9jb3VudChwYWdlLCAx
KTsKKwkJCV9fZnJlZV9wYWdlKHBhZ2UpOworCQl9CisjZWxzZQorIAkJc2V0
X3BhZ2VfY291bnQocGFnZSwgMSk7CiAJCV9fZnJlZV9wYWdlKHBhZ2UpOwor
I2VuZGlmCiAJfQogCXRvdGFsICs9IGNvdW50OwogCWJkYXRhLT5ub2RlX2Jv
b3RtZW1fbWFwID0gTlVMTDsKZGlmZiAtdXJOIGxpbnV4LTIuNS43My1tbTIv
bW0vcGFnZV9hbGxvYy5jIGxpbnV4LTIuNS9tbS9wYWdlX2FsbG9jLmMKLS0t
IGxpbnV4LTIuNS43My1tbTIvbW0vcGFnZV9hbGxvYy5jCTIwMDMtMDctMDEg
MTk6NTk6NTcuMDAwMDAwMDAwICswMTAwCisrKyBsaW51eC0yLjUvbW0vcGFn
ZV9hbGxvYy5jCTIwMDMtMDctMDIgMDE6MTI6MDkuMDAwMDAwMDAwICswMTAw
CkBAIC0xMiw2ICsxMiw3IEBACiAgKiAgWm9uZSBiYWxhbmNpbmcsIEthbm9q
IFNhcmNhciwgU0dJLCBKYW4gMjAwMAogICogIFBlciBjcHUgaG90L2NvbGQg
cGFnZSBsaXN0cywgYnVsayBhbGxvY2F0aW9uLCBNYXJ0aW4gSi4gQmxpZ2gs
IFNlcHQgMjAwMgogICogICAgICAgICAgKGxvdHMgb2YgYml0cyBib3Jyb3dl
ZCBmcm9tIEluZ28gTW9sbmFyICYgQW5kcmV3IE1vcnRvbikKKyAqICBCYWRS
QU0gaGFuZGxpbmcsIFJpY2sgdmFuIFJlaW4sIEZlYiAyMDAxCiAgKi8KIAog
I2luY2x1ZGUgPGxpbnV4L2NvbmZpZy5oPgpAQCAtMTYxNSwzICsxNjE2LDk2
IEBACiAJc2V0dXBfcGVyX3pvbmVfcGFnZXNfbWluKCk7CiAJcmV0dXJuIDA7
CiB9CisKKworI2lmZGVmIENPTkZJR19CQURSQU0KKworLyogR2l2ZW4gYSBw
b2ludGVkLWF0IGFkZHJlc3MgYW5kIGEgbWFzaywgaW5jcmVtZW50IHRoZSBw
YWdlIHNvIHRoYXQgdGhlCisgKiBtYXNrIGhpZGVzIHRoZSBpbmNyZW1lbnQu
IFJldHVybiAwIGlmIG5vIGluY3JlbWVudCBpcyBwb3NzaWJsZS4KKyAqLwor
c3RhdGljIGludCBfX2luaXQgbmV4dF9tYXNrZWRfYWRkcmVzcyAodW5zaWdu
ZWQgbG9uZyAqYWRkcnAsIHVuc2lnbmVkIGxvbmcgbWFzaykKK3sKKyAgICAg
ICAgdW5zaWduZWQgbG9uZyBpbmM9MTsKKyAgICAgICAgdW5zaWduZWQgbG9u
ZyBuZXd2YWwgPSAqYWRkcnA7CisJd2hpbGUgKGluYyAmIG1hc2spCisJCWlu
YyArPSBpbmM7CisgICAgICAgIHdoaWxlIChpbmMgIT0gMCkgeworCQluZXd2
YWwgKz0gaW5jOworCQluZXd2YWwgJj0gfm1hc2s7CisJCW5ld3ZhbCB8PSAo
KCphZGRycCkgJiBtYXNrKTsKKwkJaWYgKG5ld3ZhbCA+ICphZGRycCkgewor
CQkJKmFkZHJwID0gbmV3dmFsOworCQkJcmV0dXJuIDE7CisJCX0KKwkJZG8g
eworCQkJaW5jICs9IGluYzsKKwkJfSB3aGlsZSAoaW5jICYgfm1hc2spOwor
CQl3aGlsZSAoaW5jICYgbWFzaykKKwkJCWluYyArPSBpbmM7CisgICAgICAg
IH0KKyAgICAgICAgcmV0dXJuIDA7Cit9CisKKwordm9pZCBfX2luaXQgYmFk
cmFtX21hcmtwYWdlcyAoaW50IGFyZ2MsIHVuc2lnbmVkIGxvbmcgKmFyZ3Yp
IHsKKwl1bnNpZ25lZCBsb25nIGFkZHIsIG1hc2s7CisgICAgICAgIHdoaWxl
IChhcmdjLS0gPiAwKSB7CisgICAgICAgICAgICAgICAgYWRkciA9ICphcmd2
Kys7CisgICAgICAgICAgICAgICAgbWFzayA9IChhcmdjLS0gPiAwKSA/ICph
cmd2KysgOiB+MEw7CisgICAgICAgICAgICAgICAgbWFzayB8PSB+UEFHRV9N
QVNLOwkvLyBPcHRpbWFsaXNhdGlvbgorCQlhZGRyICY9IG1hc2s7CQkvLyAg
Tm9ybWFsaXNhdGlvbgorICAgICAgICAgICAgICAgIGRvIHsKKwkJCXN0cnVj
dCBwYWdlICpwZyA9IHBoeXNfdG9fcGFnZShhZGRyKTsKK3ByaW50ayAoIiUw
NWx4ICIsIF9fcGEoX192YShhZGRyKSkgPj4gUEFHRV9TSElGVCk7Citwcmlu
dGsgKCI9JTA1bHgvJTA1bHggIiwgcGctbWVtX21hcCwgbWF4X21hcG5yKTsK
KwkJCS8vIGlmIChWQUxJRF9QQUdFKHBnKSkgeworCQkJCWlmIChQYWdlVGVz
dGFuZFNldEJhZCAocGcpKSB7CisJCQkJCXJlc2VydmVfYm9vdG1lbSAoYWRk
ciwgUEFHRV9TSVpFKTsKK3ByaW50ayAoIkJBRCAiKTsKKwkJCQl9CitlbHNl
IHByaW50ayAoIkJGUiAiKTsKKwkJCS8vIH0KKy8vIGVsc2UgcHJpbnRrICgi
SU5WICIpOworICAgICAgICAgICAgICAgIH0gd2hpbGUgKG5leHRfbWFza2Vk
X2FkZHJlc3MgKCZhZGRyLG1hc2spKTsKKyAgICAgICAgfQorfQorCisKKwor
LyoqKioqKioqKioqIENPTkZJR19CQURSQU06IENVU1RPTUlTQUJMRSBTRUNU
SU9OIFNUQVJUUyBIRVJFICoqKioqKioqKioqKioqKioqKi8KKworCisvLyBF
bnRlciB5b3VyIGN1c3RvbSBCYWRSQU0gcGF0dGVybnMgaGVyZSBhcyBwYWly
cyBvZiB1bnNpZ25lZCBsb25nIGludGVnZXJzLgorLy8gRm9yIG1vcmUgaW5m
b3JtYXRpb24gb24gdGhlc2UgRi9NIHBhaXJzLCByZWZlciB0byBEb2N1bWVu
dGF0aW9uL2JhZHJhbS50eHQKKworCitzdGF0aWMgdW5zaWduZWQgbG9uZyBf
X2RldmluaXRkYXRhIGJhZHJhbV9jdXN0b21bXSA9IHsKKwkwLAkvLyBOdW1i
ZXIgb2YgbG9uZ3dvcmRzIHRoYXQgZm9sbG93LCBhcyBGL00gcGFpcnMKK307
CisKKworLyoqKioqKioqKioqIENPTkZJR19CQURSQU06IENVU1RPTUlTQUJM
RSBTRUNUSU9OIEVORFMgSEVSRSAqKioqKioqKioqKioqKioqKioqKi8KKwor
CisKK3N0YXRpYyBpbnQgX19pbml0IGJhZHJhbV9zZXR1cCAoY2hhciAqc3Ry
KQoreworCXVuc2lnbmVkIGxvbmcgb3B0c1szXTsKKwlpZiAoIW1lbV9tYXAp
IEJVRygpOworcHJpbnRrICgiUEFHRV9PRkZTRVQ9MHglMDhseFxuIiwgUEFH
RV9PRkZTRVQpOworcHJpbnRrICgiQmFkUkFNIG9wdGlvbiBpcyAlc1xuIiwg
c3RyKTsKKwlpZiAoKnN0cisrID09ICc9JykKKwkJd2hpbGUgKHN0cj1nZXRf
b3B0aW9ucyAoc3RyLCAzLCAoaW50ICopIG9wdHMpLCAqb3B0cykgeworcHJp
bnRrICgiICAgLS0+IG1hcmtpbmcgMHglMDhseCwgMHglMDhseCAgWyVsZF1c
biIsIG9wdHNbMV0sIG9wdHNbMl0sIG9wdHNbMF0pOworCQkJYmFkcmFtX21h
cmtwYWdlcyAoKm9wdHMsIG9wdHMrMSk7CisJCQlpZiAoKm9wdHM9PTEpCisJ
CQkJYnJlYWs7CisJCX07CisJYmFkcmFtX21hcmtwYWdlcyAoKmJhZHJhbV9j
dXN0b20sIGJhZHJhbV9jdXN0b20rMSk7CisJcmV0dXJuIDA7Cit9CisKK19f
c2V0dXAoImJhZHJhbSIsIGJhZHJhbV9zZXR1cCk7CisKKyNlbmRpZiAvKiBD
T05GSUdfQkFEUkFNICovCisK

--=_courier-6255-1057109625-0001-2--