[PATCH] 2.4.19-pre8-ac4+preempt+iowait

Bill Davidsen (davidsen@tmr.com)
Wed, 15 May 2002 13:58:08 -0400 (EDT)


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.

--1170656797-2020537832-1021485488=:5726
Content-Type: TEXT/PLAIN; charset=US-ASCII

This is the hacked preempt from ac1, plus the also hacked iowait stuff
from Rik's original patch. Apply against pre8-ac4.

All I promise is that it runs on my machine and gives reasonable numbers
for the iowait. NOT tested SMP yet, give it an hour or so.

-- 
bill davidsen <davidsen@tmr.com>
  CTO, TMR Associates, Inc
Doing interesting things with little computers since 1979.

--1170656797-2020537832-1021485488=:5726 Content-Type: TEXT/PLAIN; charset=US-ASCII; name="patch-2.4.19-pre8-ac4p+iow" Content-Transfer-Encoding: BASE64 Content-ID: <Pine.LNX.3.96.1020515135808.5726B@gatekeeper.tmr.com> Content-Description:

ZGlmZiAtdSAtLW5ldy1maWxlIC1yIC1YIC91c3Ivc3JjL2V4Y2x1ZGUgL3Vz ci9zcmMvbGludXgtMi40LjE5LXByZTgtYWM0L0NSRURJVFMgL3Vzci9zcmMv bGludXgtMi40LjE5LXByZTgtYWM0cC9DUkVESVRTDQotLS0gL3Vzci9zcmMv bGludXgtMi40LjE5LXByZTgtYWM0L0NSRURJVFMJV2VkIE1heSAxNSAxMjox MzoyMSAyMDAyDQorKysgL3Vzci9zcmMvbGludXgtMi40LjE5LXByZTgtYWM0 cC9DUkVESVRTCVdlZCBNYXkgMTUgMTI6NDA6MjEgMjAwMg0KQEAgLTk5Niw4 ICs5OTYsOCBAQA0KIA0KIE46IE5pZ2VsIEdhbWJsZQ0KIEU6IG5pZ2VsQG5y Zy5vcmcNCi1FOiBuaWdlbEBzZ2kuY29tDQogRDogSW50ZXJydXB0LWRyaXZl biBwcmludGVyIGRyaXZlcg0KK0Q6IFByZWVtcHRpYmxlIGtlcm5lbA0KIFM6 IDEyMCBBbGxleSBXYXkNCiBTOiBNb3VudGFpbiBWaWV3LCBDYWxpZm9ybmlh IDk0MDQwDQogUzogVVNBDQpkaWZmIC11IC0tbmV3LWZpbGUgLXIgLVggL3Vz ci9zcmMvZXhjbHVkZSAvdXNyL3NyYy9saW51eC0yLjQuMTktcHJlOC1hYzQv RG9jdW1lbnRhdGlvbi9Db25maWd1cmUuaGVscCAvdXNyL3NyYy9saW51eC0y LjQuMTktcHJlOC1hYzRwL0RvY3VtZW50YXRpb24vQ29uZmlndXJlLmhlbHAN Ci0tLSAvdXNyL3NyYy9saW51eC0yLjQuMTktcHJlOC1hYzQvRG9jdW1lbnRh dGlvbi9Db25maWd1cmUuaGVscAlXZWQgTWF5IDE1IDEyOjEzOjIxIDIwMDIN CisrKyAvdXNyL3NyYy9saW51eC0yLjQuMTktcHJlOC1hYzRwL0RvY3VtZW50 YXRpb24vQ29uZmlndXJlLmhlbHAJV2VkIE1heSAxNSAxMjo0MDoyMSAyMDAy DQpAQCAtMjkxLDYgKzI5MSwxNyBAQA0KICAgSWYgeW91IGhhdmUgYSBzeXN0 ZW0gd2l0aCBzZXZlcmFsIENQVXMsIHlvdSBkbyBub3QgbmVlZCB0byBzYXkg WQ0KICAgaGVyZTogdGhlIGxvY2FsIEFQSUMgd2lsbCBiZSB1c2VkIGF1dG9t YXRpY2FsbHkuDQogDQorUHJlZW1wdGlibGUgS2VybmVsDQorQ09ORklHX1BS RUVNUFQNCisgIFRoaXMgb3B0aW9uIHJlZHVjZXMgdGhlIGxhdGVuY3kgb2Yg dGhlIGtlcm5lbCB3aGVuIHJlYWN0aW5nIHRvDQorICByZWFsLXRpbWUgb3Ig aW50ZXJhY3RpdmUgZXZlbnRzIGJ5IGFsbG93aW5nIGEgbG93IHByaW9yaXR5 IHByb2Nlc3MgdG8NCisgIGJlIHByZWVtcHRlZCBldmVuIGlmIGl0IGlzIGlu IGtlcm5lbCBtb2RlIGV4ZWN1dGluZyBhIHN5c3RlbSBjYWxsLg0KKyAgVGhp cyBhbGxvd3MgYXBwbGljYXRpb25zIHRvIHJ1biBtb3JlIHJlbGlhYmx5IGV2 ZW4gd2hlbiB0aGUgc3lzdGVtIGlzDQorICB1bmRlciBsb2FkLg0KKw0KKyAg U2F5IFkgaGVyZSBpZiB5b3UgYXJlIGJ1aWxkaW5nIGEga2VybmVsIGZvciBh IGRlc2t0b3AsIGVtYmVkZGVkDQorICByZWFsLXRpbWUgc3lzdGVtLiAgU2F5 IE4gaWYgeW91IGFyZSB1bnN1cmUuDQorDQogS2VybmVsIG1hdGggZW11bGF0 aW9uDQogQ09ORklHX01BVEhfRU1VTEFUSU9ODQogICBMaW51eCBjYW4gZW11 bGF0ZSBhIG1hdGggY29wcm9jZXNzb3IgKHVzZWQgZm9yIGZsb2F0aW5nIHBv aW50DQpkaWZmIC11IC0tbmV3LWZpbGUgLXIgLVggL3Vzci9zcmMvZXhjbHVk ZSAvdXNyL3NyYy9saW51eC0yLjQuMTktcHJlOC1hYzQvRG9jdW1lbnRhdGlv bi9wcmVlbXB0LWxvY2tpbmcudHh0IC91c3Ivc3JjL2xpbnV4LTIuNC4xOS1w cmU4LWFjNHAvRG9jdW1lbnRhdGlvbi9wcmVlbXB0LWxvY2tpbmcudHh0DQot LS0gL3Vzci9zcmMvbGludXgtMi40LjE5LXByZTgtYWM0L0RvY3VtZW50YXRp b24vcHJlZW1wdC1sb2NraW5nLnR4dAlXZWQgRGVjIDMxIDE5OjAwOjAwIDE5 NjkNCisrKyAvdXNyL3NyYy9saW51eC0yLjQuMTktcHJlOC1hYzRwL0RvY3Vt ZW50YXRpb24vcHJlZW1wdC1sb2NraW5nLnR4dAlXZWQgTWF5IDE1IDEyOjQw OjIxIDIwMDINCkBAIC0wLDAgKzEsMTA0IEBADQorCQkgIFByb3BlciBMb2Nr aW5nIFVuZGVyIGEgUHJlZW1wdGlibGUgS2VybmVsOg0KKwkJICAgICAgIEtl ZXBpbmcgS2VybmVsIENvZGUgUHJlZW1wdC1TYWZlDQorCQkJICBSb2JlcnQg TG92ZSA8cm1sQHRlY2g5Lm5ldD4NCisJCQkgICBMYXN0IFVwZGF0ZWQ6IDIy IEphbiAyMDAyDQorDQorDQorSU5UUk9EVUNUSU9ODQorDQorDQorQSBwcmVl bXB0aWJsZSBrZXJuZWwgY3JlYXRlcyBuZXcgbG9ja2luZyBpc3N1ZXMuICBU aGUgaXNzdWVzIGFyZSB0aGUgc2FtZSBhcw0KK3Rob3NlIHVuZGVyIFNNUDog Y29uY3VycmVuY3kgYW5kIHJlZW50cmFuY3kuICBUaGFua2Z1bGx5LCB0aGUg TGludXggcHJlZW1wdGlibGUNCitrZXJuZWwgbW9kZWwgbGV2ZXJhZ2VzIGV4 aXN0aW5nIFNNUCBsb2NraW5nIG1lY2hhbmlzbXMuICBUaHVzLCB0aGUga2Vy bmVsDQorcmVxdWlyZXMgZXhwbGljaXQgYWRkaXRpb25hbCBsb2NraW5nIGZv ciB2ZXJ5IGZldyBhZGRpdGlvbmFsIHNpdHVhdGlvbnMuDQorDQorVGhpcyBk b2N1bWVudCBpcyBmb3IgYWxsIGtlcm5lbCBoYWNrZXJzLiAgRGV2ZWxvcGlu ZyBjb2RlIGluIHRoZSBrZXJuZWwNCityZXF1aXJlcyBwcm90ZWN0aW5nIHRo ZXNlIHNpdHVhdGlvbnMuDQorIA0KKw0KK1JVTEUgIzE6IFBlci1DUFUgZGF0 YSBzdHJ1Y3R1cmVzIG5lZWQgZXhwbGljaXQgcHJvdGVjdGlvbg0KKw0KKw0K K1R3byBzaW1pbGFyIHByb2JsZW1zIGFyaXNlLiBBbiBleGFtcGxlIGNvZGUg c25pcHBldDoNCisNCisJc3RydWN0IHRoaXNfbmVlZHNfbG9ja2luZyB0dXhb TlJfQ1BVU107DQorCXR1eFtzbXBfcHJvY2Vzc29yX2lkKCldID0gc29tZV92 YWx1ZTsNCisJLyogdGFzayBpcyBwcmVlbXB0ZWQgaGVyZS4uLiAqLw0KKwlz b21ldGhpbmcgPSB0dXhbc21wX3Byb2Nlc3Nvcl9pZCgpXTsNCisNCitGaXJz dCwgc2luY2UgdGhlIGRhdGEgaXMgcGVyLUNQVSwgaXQgbWF5IG5vdCBoYXZl IGV4cGxpY2l0IFNNUCBsb2NraW5nLCBidXQNCityZXF1aXJlIGl0IG90aGVy d2lzZS4gIFNlY29uZCwgd2hlbiBhIHByZWVtcHRlZCB0YXNrIGlzIGZpbmFs bHkgcmVzY2hlZHVsZWQsDQordGhlIHByZXZpb3VzIHZhbHVlIG9mIHNtcF9w cm9jZXNzb3JfaWQgbWF5IG5vdCBlcXVhbCB0aGUgY3VycmVudC4gIFlvdSBt dXN0DQorcHJvdGVjdCB0aGVzZSBzaXR1YXRpb25zIGJ5IGRpc2FibGluZyBw cmVlbXB0aW9uIGFyb3VuZCB0aGVtLg0KKw0KKw0KK1JVTEUgIzI6IENQVSBz dGF0ZSBtdXN0IGJlIHByb3RlY3RlZC4NCisNCisNCitVbmRlciBwcmVlbXB0 aW9uLCB0aGUgc3RhdGUgb2YgdGhlIENQVSBtdXN0IGJlIHByb3RlY3RlZC4g IFRoaXMgaXMgYXJjaC0NCitkZXBlbmRlbnQsIGJ1dCBpbmNsdWRlcyBDUFUg c3RydWN0dXJlcyBhbmQgc3RhdGUgbm90IHByZXNlcnZlZCBvdmVyIGEgY29u dGV4dA0KK3N3aXRjaC4gIEZvciBleGFtcGxlLCBvbiB4ODYsIGVudGVyaW5n IGFuZCBleGl0aW5nIEZQVSBtb2RlIGlzIG5vdyBhIGNyaXRpY2FsDQorc2Vj dGlvbiB0aGF0IG11c3Qgb2NjdXIgd2hpbGUgcHJlZW1wdGlvbiBpcyBkaXNh YmxlZC4gIFRoaW5rIHdoYXQgd291bGQgaGFwcGVuDQoraWYgdGhlIGtlcm5l bCBpcyBleGVjdXRpbmcgYSBmbG9hdGluZy1wb2ludCBpbnN0cnVjdGlvbiBh bmQgaXMgdGhlbiBwcmVlbXB0ZWQuDQorUmVtZW1iZXIsIHRoZSBrZXJuZWwg ZG9lcyBub3Qgc2F2ZSBGUFUgc3RhdGUgZXhjZXB0IGZvciB1c2VyIHRhc2tz LiAgVGhlcmVmb3JlLA0KK3Vwb24gcHJlZW1wdGlvbiwgdGhlIEZQVSByZWdp c3RlcnMgd2lsbCBiZSBzb2xkIHRvIHRoZSBsb3dlc3QgYmlkZGVyLiAgVGh1 cywNCitwcmVlbXB0aW9uIG11c3QgYmUgZGlzYWJsZWQgYXJvdW5kIHN1Y2gg cmVnaW9ucy4NCisNCitOb3RlLCBzb21lIEZQVSBmdW5jdGlvbnMgYXJlIGFs cmVhZHkgZXhwbGljaXRseSBwcmVlbXB0IHNhZmUuICBGb3IgZXhhbXBsZSwN CitrZXJuZWxfZnB1X2JlZ2luIGFuZCBrZXJuZWxfZnB1X2VuZCB3aWxsIGRp c2FibGUgYW5kIGVuYWJsZSBwcmVlbXB0aW9uLg0KK0hvd2V2ZXIsIG1hdGhf c3RhdGVfcmVzdG9yZSBtdXN0IGJlIGNhbGxlZCB3aXRoIHByZWVtcHRpb24g ZGlzYWJsZWQuDQorDQorDQorUlVMRSAjMzogTG9jayBhY3F1aXJlIGFuZCBy ZWxlYXNlIG11c3QgYmUgcGVyZm9ybWVkIGJ5IHNhbWUgdGFzaw0KKw0KKw0K K0EgbG9jayBhY3F1aXJlZCBpbiBvbmUgdGFzayBtdXN0IGJlIHJlbGVhc2Vk IGJ5IHRoZSBzYW1lIHRhc2suICBUaGlzDQorbWVhbnMgeW91IGNhbid0IGRv IG9kZGJhbGwgdGhpbmdzIGxpa2UgYWNxdWlyZSBhIGxvY2sgYW5kIGdvIG9m ZiB0bw0KK3BsYXkgd2hpbGUgYW5vdGhlciB0YXNrIHJlbGVhc2VzIGl0LiAg SWYgeW91IHdhbnQgdG8gZG8gc29tZXRoaW5nDQorbGlrZSB0aGlzLCBhY3F1 aXJlIGFuZCByZWxlYXNlIHRoZSB0YXNrIGluIHRoZSBzYW1lIGNvZGUgcGF0 aCBhbmQNCitoYXZlIHRoZSBjYWxsZXIgd2FpdCBvbiBhbiBldmVudCBieSB0 aGUgb3RoZXIgdGFzay4NCisNCisNCitTT0xVVElPTg0KKw0KKw0KK0RhdGEg cHJvdGVjdGlvbiB1bmRlciBwcmVlbXB0aW9uIGlzIGFjaGlldmVkIGJ5IGRp c2FibGluZyBwcmVlbXB0aW9uIGZvciB0aGUNCitkdXJhdGlvbiBvZiB0aGUg Y3JpdGljYWwgcmVnaW9uLg0KKw0KK3ByZWVtcHRfZW5hYmxlKCkJCWRlY3Jl bWVudCB0aGUgcHJlZW1wdCBjb3VudGVyDQorcHJlZW1wdF9kaXNhYmxlKCkJ CWluY3JlbWVudCB0aGUgcHJlZW1wdCBjb3VudGVyDQorcHJlZW1wdF9lbmFi bGVfbm9fcmVzY2hlZCgpCWRlY3JlbWVudCwgYnV0IGRvIG5vdCBpbW1lZGlh dGVseSBwcmVlbXB0DQorcHJlZW1wdF9nZXRfY291bnQoKQkJcmV0dXJuIHRo ZSBwcmVlbXB0IGNvdW50ZXINCisNCitUaGUgZnVuY3Rpb25zIGFyZSBuZXN0 YWJsZS4gIEluIG90aGVyIHdvcmRzLCB5b3UgY2FuIGNhbGwgcHJlZW1wdF9k aXNhYmxlDQorbi10aW1lcyBpbiBhIGNvZGUgcGF0aCwgYW5kIHByZWVtcHRp b24gd2lsbCBub3QgYmUgcmVlbmFibGVkIHVudGlsIHRoZSBuLXRoDQorY2Fs bCB0byBwcmVlbXB0X2VuYWJsZS4gIFRoZSBwcmVlbXB0IHN0YXRlbWVudHMg ZGVmaW5lIHRvIG5vdGhpbmcgaWYNCitwcmVlbXB0aW9uIGlzIG5vdCBlbmFi bGVkLg0KKw0KK05vdGUgdGhhdCB5b3UgZG8gbm90IG5lZWQgdG8gZXhwbGlj aXRseSBwcmV2ZW50IHByZWVtcHRpb24gaWYgeW91IGFyZSBob2xkaW5nDQor YW55IGxvY2tzIG9yIGludGVycnVwdHMgYXJlIGRpc2FibGVkLCBzaW5jZSBw cmVlbXB0aW9uIGlzIGltcGxpY2l0bHkgZGlzYWJsZWQNCitpbiB0aG9zZSBj YXNlcy4NCisNCitFeGFtcGxlOg0KKw0KKwljcHVjYWNoZV90ICpjYzsgLyog dGhpcyBpcyBwZXItQ1BVICovDQorCXByZWVtcHRfZGlzYWJsZSgpOw0KKwlj YyA9IGNjX2RhdGEoc2VhcmNocCk7DQorCWlmIChjYyAmJiBjYy0+YXZhaWwp IHsNCisJCV9fZnJlZV9ibG9jayhzZWFyY2hwLCBjY19lbnRyeShjYyksIGNj LT5hdmFpbCk7DQorCQljYy0+YXZhaWwgPSAwOw0KKwl9DQorCXByZWVtcHRf ZW5hYmxlKCk7DQorCXJldHVybiAwOw0KKw0KK05vdGljZSBob3cgdGhlIHBy ZWVtcHRpb24gc3RhdGVtZW50cyBtdXN0IGVuY29tcGFzcyBldmVyeSByZWZl cmVuY2Ugb2YgdGhlDQorY3JpdGljYWwgdmFyaWFibGVzLiAgQW5vdGhlciBl eGFtcGxlOg0KKw0KKwlpbnQgYnVmW05SX0NQVVNdOw0KKwlzZXRfY3B1X3Zh bChidWYpOw0KKwlpZiAoYnVmW3NtcF9wcm9jZXNzb3JfaWQoKV0gPT0gLTEp IHByaW50ZihLRVJOX0lORk8gIndlZSFcbiIpOw0KKwlzcGluX2xvY2soJmJ1 Zl9sb2NrKTsNCisJLyogLi4uICovDQorDQorVGhpcyBjb2RlIGlzIG5vdCBw cmVlbXB0LXNhZmUsIGJ1dCBzZWUgaG93IGVhc2lseSB3ZSBjYW4gZml4IGl0 IGJ5IHNpbXBseQ0KK21vdmluZyB0aGUgc3Bpbl9sb2NrIHVwIHR3byBsaW5l cy4NCmRpZmYgLXUgLS1uZXctZmlsZSAtciAtWCAvdXNyL3NyYy9leGNsdWRl IC91c3Ivc3JjL2xpbnV4LTIuNC4xOS1wcmU4LWFjNC9NQUlOVEFJTkVSUyAv dXNyL3NyYy9saW51eC0yLjQuMTktcHJlOC1hYzRwL01BSU5UQUlORVJTDQot LS0gL3Vzci9zcmMvbGludXgtMi40LjE5LXByZTgtYWM0L01BSU5UQUlORVJT CVdlZCBNYXkgMTUgMTI6MTM6MjEgMjAwMg0KKysrIC91c3Ivc3JjL2xpbnV4 LTIuNC4xOS1wcmU4LWFjNHAvTUFJTlRBSU5FUlMJV2VkIE1heSAxNSAxMjo0 MDoyMSAyMDAyDQpAQCAtMTMxNyw2ICsxMzE3LDE0IEBADQogTToJbW9zdHJv d3NAc3R5eC51d2F0ZXJsb28uY2ENCiBTOglNYWludGFpbmVkDQogDQorUFJF RU1QVElCTEUgS0VSTkVMDQorUDoJUm9iZXJ0IE0uIExvdmUNCitNOglybWxA dGVjaDkubmV0DQorTDoJbGludXgta2VybmVsQHZnZXIua2VybmVsLm9yZw0K K0w6CWtwcmVlbXB0LXRlY2hAbGlzdHMuc291cmNlZm9yZ2UubmV0DQorVzoJ aHR0cDovL3RlY2g5Lm5ldC9ybWwvbGludXgNCitTOglTdXBwb3J0ZWQNCisN CiBQUk9NSVNFIERDNDAzMCBDQUNISU5HIERJU0sgQ09OVFJPTExFUiBEUklW RVINCiBQOglQZXRlciBEZW5pc29uDQogTToJcHJvbWlzZUBwbmQtcGMuZGVt b24uY28udWsNCmRpZmYgLXUgLS1uZXctZmlsZSAtciAtWCAvdXNyL3NyYy9l eGNsdWRlIC91c3Ivc3JjL2xpbnV4LTIuNC4xOS1wcmU4LWFjNC9NYWtlZmls ZSAvdXNyL3NyYy9saW51eC0yLjQuMTktcHJlOC1hYzRwL01ha2VmaWxlDQot LS0gL3Vzci9zcmMvbGludXgtMi40LjE5LXByZTgtYWM0L01ha2VmaWxlCVdl ZCBNYXkgMTUgMTI6MTM6MjEgMjAwMg0KKysrIC91c3Ivc3JjL2xpbnV4LTIu NC4xOS1wcmU4LWFjNHAvTWFrZWZpbGUJV2VkIE1heSAxNSAxMjo0MDo1NSAy MDAyDQpAQCAtMSw3ICsxLDcgQEANCiBWRVJTSU9OID0gMg0KIFBBVENITEVW RUwgPSA0DQogU1VCTEVWRUwgPSAxOQ0KLUVYVFJBVkVSU0lPTiA9IC1wcmU4 LWFjNA0KK0VYVFJBVkVSU0lPTiA9IC1wcmU4LWFjNHAraW93DQogDQogS0VS TkVMUkVMRUFTRT0kKFZFUlNJT04pLiQoUEFUQ0hMRVZFTCkuJChTVUJMRVZF TCkkKEVYVFJBVkVSU0lPTikNCiANCmRpZmYgLXUgLS1uZXctZmlsZSAtciAt WCAvdXNyL3NyYy9leGNsdWRlIC91c3Ivc3JjL2xpbnV4LTIuNC4xOS1wcmU4 LWFjNC9hcmNoL2FybS9jb25maWcuaW4gL3Vzci9zcmMvbGludXgtMi40LjE5 LXByZTgtYWM0cC9hcmNoL2FybS9jb25maWcuaW4NCi0tLSAvdXNyL3NyYy9s aW51eC0yLjQuMTktcHJlOC1hYzQvYXJjaC9hcm0vY29uZmlnLmluCVdlZCBN YXkgMTUgMTI6MTM6MjEgMjAwMg0KKysrIC91c3Ivc3JjL2xpbnV4LTIuNC4x OS1wcmU4LWFjNHAvYXJjaC9hcm0vY29uZmlnLmluCVdlZCBNYXkgMTUgMTI6 NDA6MjEgMjAwMg0KQEAgLTU1Miw2ICs1NTIsNyBAQA0KIGlmIFsgIiRDT05G SUdfSVNETiIgIT0gIm4iIF07IHRoZW4NCiAgICBzb3VyY2UgZHJpdmVycy9p c2RuL0NvbmZpZy5pbg0KIGZpDQorZGVwX2Jvb2wgJ1ByZWVtcHRpYmxlIEtl cm5lbCcgQ09ORklHX1BSRUVNUFQgJENPTkZJR19DUFVfMzINCiBlbmRtZW51 DQogDQogIw0KZGlmZiAtdSAtLW5ldy1maWxlIC1yIC1YIC91c3Ivc3JjL2V4 Y2x1ZGUgL3Vzci9zcmMvbGludXgtMi40LjE5LXByZTgtYWM0L2FyY2gvYXJt L2tlcm5lbC9lbnRyeS1hcm12LlMgL3Vzci9zcmMvbGludXgtMi40LjE5LXBy ZTgtYWM0cC9hcmNoL2FybS9rZXJuZWwvZW50cnktYXJtdi5TDQotLS0gL3Vz ci9zcmMvbGludXgtMi40LjE5LXByZTgtYWM0L2FyY2gvYXJtL2tlcm5lbC9l bnRyeS1hcm12LlMJV2VkIE1heSAxNSAxMjoxMzoyMSAyMDAyDQorKysgL3Vz ci9zcmMvbGludXgtMi40LjE5LXByZTgtYWM0cC9hcmNoL2FybS9rZXJuZWwv ZW50cnktYXJtdi5TCVdlZCBNYXkgMTUgMTI6NDA6MjEgMjAwMg0KQEAgLTY5 Nyw2ICs2OTcsMTIgQEANCiAJCWFkZAlyNCwgc3AsICNTX1NQDQogCQltb3YJ cjYsIGxyDQogCQlzdG1pYQlyNCwge3I1LCByNiwgcjcsIHI4LCByOX0JQCBz YXZlIHNwX1NWQywgbHJfU1ZDLCBwYywgY3Bzciwgb2xkX3JvDQorI2lmZGVm IENPTkZJR19QUkVFTVBUDQorCQlnZXRfY3VycmVudF90YXNrIHI5DQorCQls ZHIJcjgsIFtyOSwgI1RTS19QUkVFTVBUXQ0KKwkJYWRkCXI4LCByOCwgIzEN CisJCXN0cglyOCwgW3I5LCAjVFNLX1BSRUVNUFRdDQorI2VuZGlmDQogMToJ CWdldF9pcnFucl9hbmRfYmFzZSByMCwgcjYsIHI1LCBscg0KIAkJbW92bmUJ cjEsIHNwDQogCQlADQpAQCAtNzA0LDYgKzcxMCwyNSBAQA0KIAkJQA0KIAkJ YWRyc3ZjCW5lLCBsciwgMWINCiAJCWJuZQlkb19JUlENCisjaWZkZWYgQ09O RklHX1BSRUVNUFQNCisyOgkJbGRyCXI4LCBbcjksICNUU0tfUFJFRU1QVF0N CisJCXN1YnMJcjgsIHI4LCAjMQ0KKwkJYm5lCTNmDQorCQlsZHIJcjcsIFty OSwgI1RTS19ORUVEX1JFU0NIRURdDQorCQl0ZXEJcjcsICMwDQorCQliZXEJ M2YNCisJCWxkcglyNiwgLkxDaXJxc3RhdA0KKwkJbGRyCXIwLCBbcjYsICNJ UlFTVEFUX0JIX0NPVU5UXQ0KKwkJdGVxCXIwLCAjMA0KKwkJYm5lCTNmDQor CQltb3YJcjAsICNNT0RFX1NWQw0KKwkJbXNyCWNwc3JfYywgcjAJCUAgZW5h YmxlIGludGVycnVwdHMNCisJCWJsCVNZTUJPTF9OQU1FKHByZWVtcHRfc2No ZWR1bGUpDQorCQltb3YJcjAsICNJX0JJVCB8IE1PREVfU1ZDDQorCQltc3IJ Y3Bzcl9jLCByMCAgICAgICAgICAgICAgQCBkaXNhYmxlIGludGVycnVwdHMN CisJCWIJMmINCiszOgkJc3RyCXI4LCBbcjksICNUU0tfUFJFRU1QVF0NCisj ZW5kaWYNCiAJCWxkcglyMCwgW3NwLCAjU19QU1JdCQlAIGlycXMgYXJlIGFs cmVhZHkgZGlzYWJsZWQNCiAJCW1zcglzcHNyLCByMA0KIAkJbGRtaWEJc3As IHtyMCAtIHBjfV4JCQlAIGxvYWQgcjAgLSBwYywgY3Bzcg0KQEAgLTc2MSw2 ICs3ODYsOSBAQA0KIC5MQ3Byb2NmbnM6CS53b3JkCVNZTUJPTF9OQU1FKHBy b2Nlc3NvcikNCiAjZW5kaWYNCiAuTENmcDoJCS53b3JkCVNZTUJPTF9OQU1F KGZwX2VudGVyKQ0KKyNpZmRlZiBDT05GSUdfUFJFRU1QVA0KKy5MQ2lycXN0 YXQ6CS53b3JkCVNZTUJPTF9OQU1FKGlycV9zdGF0KQ0KKyNlbmRpZg0KIA0K IAkJaXJxX3ByaW9fdGFibGUNCiANCkBAIC04MDEsNiArODI5LDEyIEBADQog CQlzdG1kYglyOCwge3NwLCBscn1eDQogCQlhbGlnbm1lbnRfdHJhcCByNCwg cjcsIF9fdGVtcF9pcnENCiAJCXplcm9fZnANCisJCWdldF9jdXJyZW50X3Rh c2sgdHNrDQorI2lmZGVmIENPTkZJR19QUkVFTVBUDQorCQlsZHIJcjAsIFt0 c2ssICNUU0tfUFJFRU1QVF0NCisJCWFkZAlyMCwgcjAsICMxDQorCQlzdHIJ cjAsIFt0c2ssICNUU0tfUFJFRU1QVF0NCisjZW5kaWYNCiAxOgkJZ2V0X2ly cW5yX2FuZF9iYXNlIHIwLCByNiwgcjUsIGxyDQogCQltb3ZuZQlyMSwgc3AN CiAJCWFkcnN2YwluZSwgbHIsIDFiDQpAQCAtODA4LDggKzg0MiwxMiBAQA0K IAkJQCByb3V0aW5lIGNhbGxlZCB3aXRoIHIwID0gaXJxIG51bWJlciwgcjEg PSBzdHJ1Y3QgcHRfcmVncyAqDQogCQlADQogCQlibmUJZG9fSVJRDQorI2lm ZGVmIENPTkZJR19QUkVFTVBUDQorCQlsZHIJcjAsIFt0c2ssICNUU0tfUFJF RU1QVF0NCisJCXN1YglyMCwgcjAsICMxDQorCQlzdHIJcjAsIFt0c2ssICNU U0tfUFJFRU1QVF0NCisjZW5kaWYNCiAJCW1vdgl3aHksICMwDQotCQlnZXRf Y3VycmVudF90YXNrIHRzaw0KIAkJYglyZXRfdG9fdXNlcg0KIA0KIAkJLmFs aWduCTUNCmRpZmYgLXUgLS1uZXctZmlsZSAtciAtWCAvdXNyL3NyYy9leGNs dWRlIC91c3Ivc3JjL2xpbnV4LTIuNC4xOS1wcmU4LWFjNC9hcmNoL2FybS90 b29scy9nZXRjb25zdGFudHMuYyAvdXNyL3NyYy9saW51eC0yLjQuMTktcHJl OC1hYzRwL2FyY2gvYXJtL3Rvb2xzL2dldGNvbnN0YW50cy5jDQotLS0gL3Vz ci9zcmMvbGludXgtMi40LjE5LXByZTgtYWM0L2FyY2gvYXJtL3Rvb2xzL2dl dGNvbnN0YW50cy5jCVRodSBPY3QgMTEgMTI6MDQ6NTcgMjAwMQ0KKysrIC91 c3Ivc3JjL2xpbnV4LTIuNC4xOS1wcmU4LWFjNHAvYXJjaC9hcm0vdG9vbHMv Z2V0Y29uc3RhbnRzLmMJV2VkIE1heSAxNSAxMjo0MDoyMSAyMDAyDQpAQCAt MTMsNiArMTMsNyBAQA0KIA0KICNpbmNsdWRlIDxhc20vcGd0YWJsZS5oPg0K ICNpbmNsdWRlIDxhc20vdWFjY2Vzcy5oPg0KKyNpbmNsdWRlIDxhc20vaGFy ZGlycS5oPg0KIA0KIC8qDQogICogTWFrZSBzdXJlIHRoYXQgdGhlIGNvbXBp bGVyIGFuZCB0YXJnZXQgYXJlIGNvbXBhdGlibGUuDQpAQCAtMzgsNiArMzks MTEgQEANCiANCiBERUZOKCJUU1NfU0FWRSIsCQlPRkZfVFNLKHRocmVhZC5z YXZlKSk7DQogREVGTigiVFNTX0ZQRVNBVkUiLAkJT0ZGX1RTSyh0aHJlYWQu ZnBzdGF0ZS5zb2Z0LnNhdmUpKTsNCisNCisjaWZkZWYgQ09ORklHX1BSRUVN UFQNCitERUZOKCJUU0tfUFJFRU1QVCIsCQlPRkZfVFNLKHByZWVtcHRfY291 bnQpKTsNCitERUZOKCJJUlFTVEFUX0JIX0NPVU5UIiwJKHVuc2lnbmVkIGxv bmcpJigoKGlycV9jcHVzdGF0X3QgKikwKS0+X19sb2NhbF9iaF9jb3VudCkp Ow0KKyNlbmRpZg0KIA0KICNpZmRlZiBDT05GSUdfQ1BVXzMyDQogREVGTigi VFNTX0RPTUFJTiIsCQlPRkZfVFNLKHRocmVhZC5kb21haW4pKTsNCmRpZmYg LXUgLS1uZXctZmlsZSAtciAtWCAvdXNyL3NyYy9leGNsdWRlIC91c3Ivc3Jj L2xpbnV4LTIuNC4xOS1wcmU4LWFjNC9hcmNoL2kzODYvY29uZmlnLmluIC91 c3Ivc3JjL2xpbnV4LTIuNC4xOS1wcmU4LWFjNHAvYXJjaC9pMzg2L2NvbmZp Zy5pbg0KLS0tIC91c3Ivc3JjL2xpbnV4LTIuNC4xOS1wcmU4LWFjNC9hcmNo L2kzODYvY29uZmlnLmluCVdlZCBNYXkgMTUgMTI6MTM6MjEgMjAwMg0KKysr IC91c3Ivc3JjL2xpbnV4LTIuNC4xOS1wcmU4LWFjNHAvYXJjaC9pMzg2L2Nv bmZpZy5pbglXZWQgTWF5IDE1IDEyOjQwOjIxIDIwMDINCkBAIC0xOTksNiAr MTk5LDcgQEANCiBib29sICdNYXRoIGVtdWxhdGlvbicgQ09ORklHX01BVEhf RU1VTEFUSU9ODQogYm9vbCAnTVRSUiAoTWVtb3J5IFR5cGUgUmFuZ2UgUmVn aXN0ZXIpIHN1cHBvcnQnIENPTkZJR19NVFJSDQogYm9vbCAnU3ltbWV0cmlj IG11bHRpLXByb2Nlc3Npbmcgc3VwcG9ydCcgQ09ORklHX1NNUA0KK2Jvb2wg J1ByZWVtcHRpYmxlIEtlcm5lbCcgQ09ORklHX1BSRUVNUFQNCiBpZiBbICIk Q09ORklHX1NNUCIgIT0gInkiIF07IHRoZW4NCiAgICBib29sICdMb2NhbCBB UElDIHN1cHBvcnQgb24gdW5pcHJvY2Vzc29ycycgQ09ORklHX1g4Nl9VUF9B UElDDQogICAgZGVwX2Jvb2wgJ0lPLUFQSUMgc3VwcG9ydCBvbiB1bmlwcm9j ZXNzb3JzJyBDT05GSUdfWDg2X1VQX0lPQVBJQyAkQ09ORklHX1g4Nl9VUF9B UElDDQpAQCAtMjEyLDkgKzIxMywxMiBAQA0KICAgIGJvb2wgJ011bHRpcXVh ZCBOVU1BIHN5c3RlbScgQ09ORklHX01VTFRJUVVBRA0KIGZpDQogDQotaWYg WyAiJENPTkZJR19TTVAiID0gInkiIC1hICIkQ09ORklHX1g4Nl9DTVBYQ0hH IiA9ICJ5IiBdOyB0aGVuDQotICAgZGVmaW5lX2Jvb2wgQ09ORklHX0hBVkVf REVDX0xPQ0sgeQ0KK2lmIFsgIiRDT05GSUdfU01QIiA9ICJ5IiAtbyAiJENP TkZJR19QUkVFTVBUIiA9ICJ5IiBdOyB0aGVuDQorICAgaWYgWyAiJENPTkZJ R19YODZfQ01QWENIRyIgPSAieSIgXTsgdGhlbg0KKyAgICAgIGRlZmluZV9i b29sIENPTkZJR19IQVZFX0RFQ19MT0NLIHkNCisgICBmaQ0KIGZpDQorDQog ZW5kbWVudQ0KIA0KIG1haW5tZW51X29wdGlvbiBuZXh0X2NvbW1lbnQNCmRp ZmYgLXUgLS1uZXctZmlsZSAtciAtWCAvdXNyL3NyYy9leGNsdWRlIC91c3Iv c3JjL2xpbnV4LTIuNC4xOS1wcmU4LWFjNC9hcmNoL2kzODYva2VybmVsL2Vu dHJ5LlMgL3Vzci9zcmMvbGludXgtMi40LjE5LXByZTgtYWM0cC9hcmNoL2kz ODYva2VybmVsL2VudHJ5LlMNCi0tLSAvdXNyL3NyYy9saW51eC0yLjQuMTkt cHJlOC1hYzQvYXJjaC9pMzg2L2tlcm5lbC9lbnRyeS5TCVdlZCBNYXkgMTUg MTI6MTM6MjEgMjAwMg0KKysrIC91c3Ivc3JjL2xpbnV4LTIuNC4xOS1wcmU4 LWFjNHAvYXJjaC9pMzg2L2tlcm5lbC9lbnRyeS5TCVdlZCBNYXkgMTUgMTI6 NDA6MjEgMjAwMg0KQEAgLTcxLDcgKzcxLDcgQEANCiAgKiB0aGVzZSBhcmUg b2Zmc2V0cyBpbnRvIHRoZSB0YXNrLXN0cnVjdC4NCiAgKi8NCiBzdGF0ZQkJ PSAgMA0KLWZsYWdzCQk9ICA0DQorcHJlZW1wdF9jb3VudAk9ICA0DQogc2ln cGVuZGluZwk9ICA4DQogYWRkcl9saW1pdAk9IDEyDQogZXhlY19kb21haW4J PSAxNg0KQEAgLTc5LDggKzc5LDI4IEBADQogdHNrX3B0cmFjZQk9IDI0DQog Y3B1CQk9IDMyDQogDQorLyogVGhlc2UgYXJlIG9mZnNldHMgaW50byB0aGUg aXJxX3N0YXQgc3RydWN0dXJlDQorICogVGhlcmUgaXMgb25lIHBlciBjcHUg YW5kIGl0IGlzIGFsaWduZWQgdG8gMzINCisgKiBieXRlIGJvdW5kcnkgKHdl IHB1dCB0aGF0IGhlcmUgYXMgYSBzaGlmdCBjb3VudCkNCisgKi8NCitpcnFf YXJyYXlfc2hpZnQgICAgICAgICAgICAgICAgID0gQ09ORklHX1g4Nl9MMV9D QUNIRV9TSElGVA0KKw0KK2lycV9zdGF0X2xvY2FsX2lycV9jb3VudCAgICAg ICAgPSA0DQoraXJxX3N0YXRfbG9jYWxfYmhfY291bnQgICAgICAgICA9IDgN CisNCiBFTk9TWVMgPSAzOA0KIA0KKyNpZmRlZiBDT05GSUdfU01QDQorI2Rl ZmluZSBHRVRfQ1BVX0lORFgJbW92bCBjcHUoJWVieCksJWVheDsgIFwNCisg ICAgICAgICAgICAgICAgICAgICAgICBzaGxsICRpcnFfYXJyYXlfc2hpZnQs JWVheA0KKyNkZWZpbmUgR0VUX0NVUlJFTlRfQ1BVX0lORFggR0VUX0NVUlJF TlQoJWVieCk7IFwNCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEdF VF9DUFVfSU5EWA0KKyNkZWZpbmUgQ1BVX0lORFggKCwlZWF4KQ0KKyNlbHNl DQorI2RlZmluZSBHRVRfQ1BVX0lORFgNCisjZGVmaW5lIEdFVF9DVVJSRU5U X0NQVV9JTkRYIEdFVF9DVVJSRU5UKCVlYngpDQorI2RlZmluZSBDUFVfSU5E WA0KKyNlbmRpZg0KIA0KICNkZWZpbmUgU0FWRV9BTEwgXA0KIAljbGQ7IFwN CkBAIC0xNzYsNyArMTk2LDcgQEANCiANCiANCiBFTlRSWShyZXRfZnJvbV9m b3JrKQ0KLSNpZiBDT05GSUdfU01QDQorI2lmIENPTkZJR19TTVAgfHwgQ09O RklHX1BSRUVNUFQNCiAJcHVzaGwgJWVieA0KIAljYWxsIFNZTUJPTF9OQU1F KHNjaGVkdWxlX3RhaWwpDQogCWFkZGwgJDQsICVlc3ANCkBAIC0yNDksMTIg KzI2OSwzMCBAQA0KIAlBTElHTg0KIEVOVFJZKHJldF9mcm9tX2ludHIpDQog CUdFVF9DVVJSRU5UKCVlYngpDQorI2lmZGVmIENPTkZJR19QUkVFTVBUDQor CWNsaQ0KKwlkZWNsIHByZWVtcHRfY291bnQoJWVieCkNCisjZW5kaWYNCiBy ZXRfZnJvbV9leGNlcHRpb246DQogCW1vdmwgRUZMQUdTKCVlc3ApLCVlYXgJ CSMgbWl4IEVGTEFHUyBhbmQgQ1MNCiAJbW92YiBDUyglZXNwKSwlYWwNCiAJ dGVzdGwgJChWTV9NQVNLIHwgMyksJWVheAkjIHJldHVybiB0byBWTTg2IG1v ZGUgb3Igbm9uLXN1cGVydmlzb3I/DQogCWpuZSByZXRfZnJvbV9zeXNfY2Fs bA0KKyNpZmRlZiBDT05GSUdfUFJFRU1QVA0KKwljbXBsICQwLHByZWVtcHRf Y291bnQoJWVieCkNCisJam56IHJlc3RvcmVfYWxsDQorCWNtcGwgJDAsbmVl ZF9yZXNjaGVkKCVlYngpDQorCWp6IHJlc3RvcmVfYWxsDQorCW1vdmwgU1lN Qk9MX05BTUUoaXJxX3N0YXQpK2lycV9zdGF0X2xvY2FsX2JoX2NvdW50IENQ VV9JTkRYLCVlY3gNCisJYWRkbCBTWU1CT0xfTkFNRShpcnFfc3RhdCkraXJx X3N0YXRfbG9jYWxfaXJxX2NvdW50IENQVV9JTkRYLCVlY3gNCisJam56IHJl c3RvcmVfYWxsDQorCWluY2wgcHJlZW1wdF9jb3VudCglZWJ4KQ0KKwlzdGkN CisJY2FsbCBTWU1CT0xfTkFNRShwcmVlbXB0X3NjaGVkdWxlKQ0KKwlqbXAg cmV0X2Zyb21faW50cg0KKyNlbHNlDQogCWptcCByZXN0b3JlX2FsbA0KKyNl bmRpZg0KIA0KIAlBTElHTg0KIHJlc2NoZWR1bGU6DQpAQCAtMjkxLDYgKzMy OSw5IEBADQogCUdFVF9DVVJSRU5UKCVlYngpDQogCWNhbGwgKiVlZGkNCiAJ YWRkbCAkOCwlZXNwDQorI2lmZGVmIENPTkZJR19QUkVFTVBUDQorCWNsaQ0K KyNlbmRpZg0KIAlqbXAgcmV0X2Zyb21fZXhjZXB0aW9uDQogDQogRU5UUlko Y29wcm9jZXNzb3JfZXJyb3IpDQpAQCAtMzEwLDEyICszNTEsMTggQEANCiAJ bW92bCAlY3IwLCVlYXgNCiAJdGVzdGwgJDB4NCwlZWF4CQkJIyBFTSAobWF0 aCBlbXVsYXRpb24gYml0KQ0KIAlqbmUgZGV2aWNlX25vdF9hdmFpbGFibGVf ZW11bGF0ZQ0KKyNpZmRlZiBDT05GSUdfUFJFRU1QVA0KKwljbGkNCisjZW5k aWYNCiAJY2FsbCBTWU1CT0xfTkFNRShtYXRoX3N0YXRlX3Jlc3RvcmUpDQog CWptcCByZXRfZnJvbV9leGNlcHRpb24NCiBkZXZpY2Vfbm90X2F2YWlsYWJs ZV9lbXVsYXRlOg0KIAlwdXNobCAkMAkJIyB0ZW1wb3Jhcnkgc3RvcmFnZSBm b3IgT1JJR19FSVANCiAJY2FsbCAgU1lNQk9MX05BTUUobWF0aF9lbXVsYXRl KQ0KIAlhZGRsICQ0LCVlc3ANCisjaWZkZWYgQ09ORklHX1BSRUVNUFQNCisJ Y2xpDQorI2VuZGlmDQogCWptcCByZXRfZnJvbV9leGNlcHRpb24NCiANCiBF TlRSWShkZWJ1ZykNCmRpZmYgLXUgLS1uZXctZmlsZSAtciAtWCAvdXNyL3Ny Yy9leGNsdWRlIC91c3Ivc3JjL2xpbnV4LTIuNC4xOS1wcmU4LWFjNC9hcmNo L2kzODYva2VybmVsL2kzODcuYyAvdXNyL3NyYy9saW51eC0yLjQuMTktcHJl OC1hYzRwL2FyY2gvaTM4Ni9rZXJuZWwvaTM4Ny5jDQotLS0gL3Vzci9zcmMv bGludXgtMi40LjE5LXByZTgtYWM0L2FyY2gvaTM4Ni9rZXJuZWwvaTM4Ny5j CUZyaSBGZWIgMjMgMTM6MDk6MDggMjAwMQ0KKysrIC91c3Ivc3JjL2xpbnV4 LTIuNC4xOS1wcmU4LWFjNHAvYXJjaC9pMzg2L2tlcm5lbC9pMzg3LmMJV2Vk IE1heSAxNSAxMjo0MDoyMSAyMDAyDQpAQCAtMTAsNiArMTAsNyBAQA0KIA0K ICNpbmNsdWRlIDxsaW51eC9jb25maWcuaD4NCiAjaW5jbHVkZSA8bGludXgv c2NoZWQuaD4NCisjaW5jbHVkZSA8bGludXgvc3BpbmxvY2suaD4NCiAjaW5j bHVkZSA8YXNtL3Byb2Nlc3Nvci5oPg0KICNpbmNsdWRlIDxhc20vaTM4Ny5o Pg0KICNpbmNsdWRlIDxhc20vbWF0aF9lbXUuaD4NCkBAIC02NSw2ICs2Niw4 IEBADQogew0KIAlzdHJ1Y3QgdGFza19zdHJ1Y3QgKnRzayA9IGN1cnJlbnQ7 DQogDQorCXByZWVtcHRfZGlzYWJsZSgpOw0KKwkNCiAJaWYgKHRzay0+Zmxh Z3MgJiBQRl9VU0VERlBVKSB7DQogCQlfX3NhdmVfaW5pdF9mcHUodHNrKTsN CiAJCXJldHVybjsNCmRpZmYgLXUgLS1uZXctZmlsZSAtciAtWCAvdXNyL3Ny Yy9leGNsdWRlIC91c3Ivc3JjL2xpbnV4LTIuNC4xOS1wcmU4LWFjNC9hcmNo L2kzODYva2VybmVsL3RyYXBzLmMgL3Vzci9zcmMvbGludXgtMi40LjE5LXBy ZTgtYWM0cC9hcmNoL2kzODYva2VybmVsL3RyYXBzLmMNCi0tLSAvdXNyL3Ny Yy9saW51eC0yLjQuMTktcHJlOC1hYzQvYXJjaC9pMzg2L2tlcm5lbC90cmFw cy5jCVdlZCBNYXkgMTUgMTI6MTM6MjEgMjAwMg0KKysrIC91c3Ivc3JjL2xp bnV4LTIuNC4xOS1wcmU4LWFjNHAvYXJjaC9pMzg2L2tlcm5lbC90cmFwcy5j CVdlZCBNYXkgMTUgMTI6NDA6MjEgMjAwMg0KQEAgLTc1Niw2ICs3NTYsOCBA QA0KICAqDQogICogQ2FyZWZ1bC4uIFRoZXJlIGFyZSBwcm9ibGVtcyB3aXRo IElCTS1kZXNpZ25lZCBJUlExMyBiZWhhdmlvdXIuDQogICogRG9uJ3QgdG91 Y2ggdW5sZXNzIHlvdSAqcmVhbGx5KiBrbm93IGhvdyBpdCB3b3Jrcy4NCisg Kg0KKyAqIE11c3QgYmUgY2FsbGVkIHdpdGgga2VybmVsIHByZWVtcHRpb24g ZGlzYWJsZWQuDQogICovDQogYXNtbGlua2FnZSB2b2lkIG1hdGhfc3RhdGVf cmVzdG9yZShzdHJ1Y3QgcHRfcmVncyByZWdzKQ0KIHsNCmRpZmYgLXUgLS1u ZXctZmlsZSAtciAtWCAvdXNyL3NyYy9leGNsdWRlIC91c3Ivc3JjL2xpbnV4 LTIuNC4xOS1wcmU4LWFjNC9hcmNoL2kzODYvbGliL2RlY19hbmRfbG9jay5j IC91c3Ivc3JjL2xpbnV4LTIuNC4xOS1wcmU4LWFjNHAvYXJjaC9pMzg2L2xp Yi9kZWNfYW5kX2xvY2suYw0KLS0tIC91c3Ivc3JjL2xpbnV4LTIuNC4xOS1w cmU4LWFjNC9hcmNoL2kzODYvbGliL2RlY19hbmRfbG9jay5jCUZyaSBKdWwg IDcgMjE6MjA6MTYgMjAwMA0KKysrIC91c3Ivc3JjL2xpbnV4LTIuNC4xOS1w cmU4LWFjNHAvYXJjaC9pMzg2L2xpYi9kZWNfYW5kX2xvY2suYwlXZWQgTWF5 IDE1IDEyOjQwOjIxIDIwMDINCkBAIC04LDYgKzgsNyBAQA0KICAqLw0KIA0K ICNpbmNsdWRlIDxsaW51eC9zcGlubG9jay5oPg0KKyNpbmNsdWRlIDxsaW51 eC9zY2hlZC5oPg0KICNpbmNsdWRlIDxhc20vYXRvbWljLmg+DQogDQogaW50 IGF0b21pY19kZWNfYW5kX2xvY2soYXRvbWljX3QgKmF0b21pYywgc3Bpbmxv Y2tfdCAqbG9jaykNCmRpZmYgLXUgLS1uZXctZmlsZSAtciAtWCAvdXNyL3Ny Yy9leGNsdWRlIC91c3Ivc3JjL2xpbnV4LTIuNC4xOS1wcmU4LWFjNC9hcmNo L3NoL2NvbmZpZy5pbiAvdXNyL3NyYy9saW51eC0yLjQuMTktcHJlOC1hYzRw L2FyY2gvc2gvY29uZmlnLmluDQotLS0gL3Vzci9zcmMvbGludXgtMi40LjE5 LXByZTgtYWM0L2FyY2gvc2gvY29uZmlnLmluCVdlZCBNYXkgMTUgMTI6MTM6 MjUgMjAwMg0KKysrIC91c3Ivc3JjL2xpbnV4LTIuNC4xOS1wcmU4LWFjNHAv YXJjaC9zaC9jb25maWcuaW4JV2VkIE1heSAxNSAxMjo0MDoyMSAyMDAyDQpA QCAtMTI0LDYgKzEyNCw3IEBADQogICAgaGV4ICdQaHlzaWNhbCBtZW1vcnkg c3RhcnQgYWRkcmVzcycgQ09ORklHX01FTU9SWV9TVEFSVCAwODAwMDAwMA0K ICAgIGhleCAnUGh5c2ljYWwgbWVtb3J5IHNpemUnIENPTkZJR19NRU1PUllf U0laRSAwMDQwMDAwMA0KIGZpDQorYm9vbCAnUHJlZW1wdGlibGUgS2VybmVs JyBDT05GSUdfUFJFRU1QVA0KIGVuZG1lbnUNCiANCiBpZiBbICIkQ09ORklH X1NIX0hQNjkwIiA9ICJ5IiBdOyB0aGVuDQpkaWZmIC11IC0tbmV3LWZpbGUg LXIgLVggL3Vzci9zcmMvZXhjbHVkZSAvdXNyL3NyYy9saW51eC0yLjQuMTkt cHJlOC1hYzQvYXJjaC9zaC9rZXJuZWwvZW50cnkuUyAvdXNyL3NyYy9saW51 eC0yLjQuMTktcHJlOC1hYzRwL2FyY2gvc2gva2VybmVsL2VudHJ5LlMNCi0t LSAvdXNyL3NyYy9saW51eC0yLjQuMTktcHJlOC1hYzQvYXJjaC9zaC9rZXJu ZWwvZW50cnkuUwlXZWQgTWF5IDE1IDEyOjEzOjI1IDIwMDINCisrKyAvdXNy L3NyYy9saW51eC0yLjQuMTktcHJlOC1hYzRwL2FyY2gvc2gva2VybmVsL2Vu dHJ5LlMJV2VkIE1heSAxNSAxMjo0MDoyMSAyMDAyDQpAQCAtNjAsMTAgKzYw LDE4IEBADQogLyoNCiAgKiBUaGVzZSBhcmUgb2Zmc2V0cyBpbnRvIHRoZSB0 YXNrLXN0cnVjdC4NCiAgKi8NCi1mbGFncwkJPSAgNA0KK3ByZWVtcHRfY291 bnQJPSAgNA0KIHNpZ3BlbmRpbmcJPSAgOA0KIG5lZWRfcmVzY2hlZAk9IDIw DQogdHNrX3B0cmFjZQk9IDI0DQorZmxhZ3MJCT0gODQNCisNCisvKg0KKyAq IFRoZXNlIG9mZnNldHMgYXJlIGludG8gaXJxX3N0YXQuDQorICogKEZpbmQg aXJxX2NwdXN0YXRfdCBpbiBhc20tc2gvaGFyZGlycS5oKQ0KKyAqLw0KK2xv Y2FsX2lycV9jb3VudCA9ICA4DQorbG9jYWxfYmhfY291bnQgID0gMTINCiAN CiBQVF9UUkFDRVNZUyAgPSAweDAwMDAwMDAyDQogUEZfVVNFREZQVSAgID0g MHgwMDEwMDAwMA0KQEAgLTE0Myw3ICsxNTEsNyBAQA0KIAltb3YubAlfX0lO Vl9JTUFTSywgcjExOwlcDQogCXN0YwlzciwgcjEwOwkJXA0KIAlhbmQJcjEx LCByMTA7CQlcDQotCXN0YwlrX2dfaW1hc2ssIHIxMTsJXA0KKwlzdGMJa19n X2ltYXNrLCByMTE7CQlcDQogCW9yCXIxMSwgcjEwOwkJXA0KIAlsZGMJcjEw LCBzcg0KIA0KQEAgLTMwNCw4ICszMTIsOCBAQA0KIAltb3YubAlAKHRza19w dHJhY2UscjApLCByMAkhIElzIGN1cnJlbnQgUFRSQUNFX1NZU0NBTEwnZD8N CiAJbW92CSNQVF9UUkFDRVNZUywgcjENCiAJdHN0CXIxLCByMA0KLQlidAly ZXRfZnJvbV9zeXNjYWxsDQotCWJyYQlzeXNjYWxsX3JldF90cmFjZQ0KKwli ZglzeXNjYWxsX3JldF90cmFjZQ0KKwlicmEJcmV0X2Zyb21fc3lzY2FsbA0K IAkgbm9wCSANCiANCiAJLmFsaWduCTINCkBAIC01MDUsOCArNTEzLDYgQEAN CiAJLmxvbmcJc3lzY2FsbF9yZXRfdHJhY2UNCiBfX3N5c2NhbGxfcmV0Og0K IAkubG9uZwlzeXNjYWxsX3JldA0KLV9fSU5WX0lNQVNLOg0KLQkubG9uZwkw eGZmZmZmZjBmCSEgfihJTUFTSykNCiANCiANCiAJLmFsaWduCTINCkBAIC01 MTgsNyArNTI0LDg0IEBADQogCS5hbGlnbgkyDQogMToJLmxvbmcJU1lNQk9M X05BTUUoc2NoZWR1bGUpDQogDQorI2lmZGVmIENPTkZJR19QUkVFTVBUCQ0K KwkhDQorCSEgUmV0dXJuaW5nIGZyb20gaW50ZXJydXB0IGR1cmluZyBrZXJu ZWwgbW9kZTogY2hlY2sgaWYNCisJISBwcmVlbXB0X3NjaGVkdWxlIHNob3Vs ZCBiZSBjYWxsZWQuIElmIG5lZWRfcmVzY2hlZCBmbGFnDQorCSEgaXMgc2V0 LCBwcmVlbXB0X2NvdW50IGlzIHplcm8sIGFuZCB3ZSdyZSBub3QgY3VycmVu dGx5DQorCSEgaW4gYW4gaW50ZXJydXB0IGhhbmRsZXIgKGxvY2FsIGlycSBv ciBib3R0b20gaGFsZikgdGhlbg0KKwkhIGNhbGwgcHJlZW1wdF9zY2hlZHVs ZS4gDQorCSENCisJISBJbmNyZW1lbnQgcHJlZW1wdF9jb3VudCB0byBwcmV2 ZW50IGEgbmVzdGVkIGludGVycnVwdA0KKwkhIGZyb20gcmVlbnRlcmluZyBw cmVlbXB0X3NjaGVkdWxlLCB0aGVuIGRlY3JlbWVudCBhZnRlcg0KKwkhIGFu ZCBkcm9wIHRocm91Z2ggdG8gcmVndWxhciBpbnRlcnJ1cHQgcmV0dXJuIHdo aWNoIHdpbGwNCisJISBqdW1wIGJhY2sgYW5kIGNoZWNrIGFnYWluIGluIGNh c2Ugc3VjaCBhbiBpbnRlcnJ1cHQgZGlkDQorCSEgY29tZSBpbiAoYW5kIGRp ZG4ndCBwcmVlbXB0IGR1ZSB0byBwcmVlbXB0X2NvdW50KS4NCisJIQ0KKwkh IE5PVEU6CWJlY2F1c2Ugd2UganVzdCBjaGVja2VkIHRoYXQgcHJlZW1wdF9j b3VudCB3YXMNCisJISB6ZXJvIGJlZm9yZSBnZXR0aW5nIHRvIHRoZSBjYWxs LCBjYW4ndCB3ZSB1c2UgaW1tZWRpYXRlDQorCSEgdmFsdWVzICgxIGFuZCAw KSByYXRoZXIgdGhhbiBpbmMvZGVjPyBBbHNvLCByYXRoZXIgdGhhbg0KKwkh IGRyb3AgdGhyb3VnaCB0byByZXRfZnJvbV9pcnEsIHdlIGFscmVhZHkga25v dyB0aGlzIHRocmVhZA0KKwkhIGlzIGtlcm5lbCBtb2RlLCBjYW4ndCB3ZSBn byBkaXJlY3QgdG8gcmV0X2Zyb21fa2lycT8gSW4NCisJISBmYWN0LCB3aXRo IHByb3BlciBpbnRlcnJ1cHQgbmVzdGluZyBhbmQgc28gZm9ydGggY291bGQN CisJISB0aGUgbG9vcCBzaW1wbHkgYmUgb24gdGhlIG5lZWRfcmVzY2hlZCB3 L28gY2hlY2tpbmcgdGhlDQorCSEgb3RoZXIgc3R1ZmYgYWdhaW4/IE9wdGlt aXplIGxhdGVyLi4uDQorCSENCisJLmFsaWduCTINCityZXRfZnJvbV9raXJx Og0KKwkhIE5vbnplcm8gcHJlZW1wdF9jb3VudCBwcmV2ZW50cyBzY2hlZHVs aW5nDQorCXN0YwlrX2N1cnJlbnQsIHIxDQorCW1vdi5sCUAocHJlZW1wdF9j b3VudCxyMSksIHIwDQorCWNtcC9lcQkjMCwgcjANCisJYmYJcmVzdG9yZV9h bGwNCisJISBaZXJvIG5lZWRfcmVzY2hlZCBwcmV2ZW50cyBzY2hlZHVsaW5n DQorCW1vdi5sCUAobmVlZF9yZXNjaGVkLHIxKSwgcjANCisJY21wL2VxCSMw LCByMA0KKwlidAlyZXN0b3JlX2FsbA0KKwkhIElmIGluX2ludGVycnVwdCgp LCBkb24ndCBzY2hlZHVsZQ0KKwltb3YubAlfX2lycV9zdGF0LCByMQ0KKwlt b3YubAlAKGxvY2FsX2lycV9jb3VudCxyMSksIHIwDQorCW1vdi5sCUAobG9j YWxfYmhfY291bnQscjEpLCByMQ0KKwlvcglyMSwgcjANCisJY21wL2VxCSMw LCByMA0KKwliZglyZXN0b3JlX2FsbA0KKwkhIEFsbG93IHNjaGVkdWxpbmcg dXNpbmcgcHJlZW1wdF9zY2hlZHVsZQ0KKwkhIEFkanVzdCBwcmVlbXB0X2Nv dW50IGFuZCBTUiBhcyBuZWVkZWQuDQorCXN0YwlrX2N1cnJlbnQsIHIxDQor CW1vdi5sCUAocHJlZW1wdF9jb3VudCxyMSksIHIwCSEgQ291bGQgcmVwbGFj ZSB0aGlzIC4uLg0KKwlhZGQJIzEsIHIwCQkJISAuLi4gYW5kIHRoaXMgdy9t b3YgIzE/DQorCW1vdi5sCXIwLCBAKHByZWVtcHRfY291bnQscjEpDQorCVNU SSgpDQorCW1vdi5sCV9fcHJlZW1wdF9zY2hlZHVsZSwgcjANCisJanNyCUBy MA0KKwkgbm9wCQ0KKwkvKiBDTEkgKi8NCisJc3RjCXNyLCByMA0KKwlvcgkj MHhmMCwgcjANCisJbGRjCXIwLCBzcg0KKwkhDQorCXN0YwlrX2N1cnJlbnQs IHIxDQorCW1vdi5sCUAocHJlZW1wdF9jb3VudCxyMSksIHIwCSEgQ291bGQg cmVwbGFjZSB0aGlzIC4uLg0KKwlhZGQJIy0xLCByMAkJCSEgLi4uIGFuZCB0 aGlzIHcvbW92ICMwPw0KKwltb3YubAlyMCwgQChwcmVlbXB0X2NvdW50LHIx KQ0KKwkhIE1heWJlIHNob3VsZCBicmEgcmV0X2Zyb21fa2lycSwgb3IgbG9v cCBvdmVyIG5lZWRfcmVzY2hlZD8NCisJISBGb3Igbm93LCBmYWxsIHRocm91 Z2ggdG8gcmV0X2Zyb21faXJxIGFnYWluLi4uDQorI2VuZGlmIC8qIENPTkZJ R19QUkVFTVBUICovDQorCQ0KIHJldF9mcm9tX2lycToNCisJbW92CSNPRkZf U1IsIHIwDQorCW1vdi5sCUAocjAscjE1KSwgcjAJISBnZXQgc3RhdHVzIHJl Z2lzdGVyDQorCXNobGwJcjANCisJc2hsbAlyMAkJISBrZXJuZWwgc3BhY2U/ DQorI2lmbmRlZiBDT05GSUdfUFJFRU1QVA0KKwlidAlyZXN0b3JlX2FsbAkh IFllcywgaXQncyBmcm9tIGtlcm5lbCwgZ28gYmFjayBzb29uDQorI2Vsc2Ug LyogQ09ORklHX1BSRUVNUFQgKi8NCisJYnQJcmV0X2Zyb21fa2lycQkhIEZy b20ga2VybmVsOiBtYXliZSBwcmVlbXB0X3NjaGVkdWxlDQorI2VuZGlmIC8q IENPTkZJR19QUkVFTVBUICovDQorCSENCisJYnJhCXJldF9mcm9tX3N5c2Nh bGwNCisJIG5vcA0KKw0KIHJldF9mcm9tX2V4Y2VwdGlvbjoNCiAJbW92CSNP RkZfU1IsIHIwDQogCW1vdi5sCUAocjAscjE1KSwgcjAJISBnZXQgc3RhdHVz IHJlZ2lzdGVyDQpAQCAtNTY0LDYgKzY0NywxMyBAQA0KIAkubG9uZwlTWU1C T0xfTkFNRShkb19zaWduYWwpDQogX19pcnFfc3RhdDoNCiAJLmxvbmcJU1lN Qk9MX05BTUUoaXJxX3N0YXQpDQorI2lmZGVmIENPTkZJR19QUkVFTVBUDQor X19wcmVlbXB0X3NjaGVkdWxlOg0KKwkubG9uZwlTWU1CT0xfTkFNRShwcmVl bXB0X3NjaGVkdWxlKQ0KKyNlbmRpZiAvKiBDT05GSUdfUFJFRU1QVCAqLwkN CitfX0lOVl9JTUFTSzoNCisJLmxvbmcJMHhmZmZmZmYwZgkhIH4oSU1BU0sp DQorDQogDQogCS5hbGlnbiAyDQogcmVzdG9yZV9hbGw6DQpAQCAtNjc5LDcg Kzc2OSw3IEBADQogX19mcHVfcHJlcGFyZV9mZDoNCiAJLmxvbmcJU1lNQk9M X05BTUUoZnB1X3ByZXBhcmVfZmQpDQogX19pbml0X3Rhc2tfZmxhZ3M6DQot CS5sb25nCVNZTUJPTF9OQU1FKGluaXRfdGFza191bmlvbikrNA0KKwkubG9u ZwlTWU1CT0xfTkFNRShpbml0X3Rhc2tfdW5pb24pK2ZsYWdzDQogX19QRl9V U0VERlBVOg0KIAkubG9uZwlQRl9VU0VERlBVDQogI2VuZGlmDQpkaWZmIC11 IC0tbmV3LWZpbGUgLXIgLVggL3Vzci9zcmMvZXhjbHVkZSAvdXNyL3NyYy9s aW51eC0yLjQuMTktcHJlOC1hYzQvYXJjaC9zaC9rZXJuZWwvaXJxLmMgL3Vz ci9zcmMvbGludXgtMi40LjE5LXByZTgtYWM0cC9hcmNoL3NoL2tlcm5lbC9p cnEuYw0KLS0tIC91c3Ivc3JjL2xpbnV4LTIuNC4xOS1wcmU4LWFjNC9hcmNo L3NoL2tlcm5lbC9pcnEuYwlTYXQgU2VwICA4IDE1OjI5OjA5IDIwMDENCisr KyAvdXNyL3NyYy9saW51eC0yLjQuMTktcHJlOC1hYzRwL2FyY2gvc2gva2Vy bmVsL2lycS5jCVdlZCBNYXkgMTUgMTI6NDA6MjEgMjAwMg0KQEAgLTIyOSw2 ICsyMjksMTQgQEANCiAJc3RydWN0IGlycWFjdGlvbiAqIGFjdGlvbjsNCiAJ dW5zaWduZWQgaW50IHN0YXR1czsNCiANCisJLyoNCisJICogQXQgdGhpcyBw b2ludCB3ZSdyZSBub3cgYWJvdXQgdG8gYWN0dWFsbHkgY2FsbCBoYW5kbGVy cywNCisJICogYW5kIGludGVycnVwdHMgbWlnaHQgZ2V0IHJlZW5hYmxlZCBk dXJpbmcgdGhlbS4uLiBidW1wDQorCSAqIHByZWVtcHRfY291bnQgdG8gcHJl dmVudCBhbnkgcHJlZW1wdGlvbiB3aGlsZSB0aGUgaGFuZGxlcg0KKyAJICog Y2FsbGVkIGhlcmUgaXMgcGVuZGluZy4uLg0KKyAJICovDQorIAlwcmVlbXB0 X2Rpc2FibGUoKTsNCisNCiAJLyogR2V0IElSUSBudW1iZXIgKi8NCiAJYXNt IHZvbGF0aWxlKCJzdGMJcjJfYmFuaywgJTBcblx0Ig0KIAkJICAgICAic2hs cjIJJTBcblx0Ig0KQEAgLTI5OCw4ICszMDYsMTcgQEANCiAJZGVzYy0+aGFu ZGxlci0+ZW5kKGlycSk7DQogCXNwaW5fdW5sb2NrKCZkZXNjLT5sb2NrKTsN CiANCisNCiAJaWYgKHNvZnRpcnFfcGVuZGluZyhjcHUpKQ0KIAkJZG9fc29m dGlycSgpOw0KKw0KKwkvKg0KKwkgKiBXZSdyZSBkb25lIHdpdGggdGhlIGhh bmRsZXJzLCBpbnRlcnJ1cHRzIHNob3VsZCBiZQ0KKwkgKiBjdXJyZW50bHkg ZGlzYWJsZWQ7IGRlY3JlbWVudCBwcmVlbXB0X2NvdW50IG5vdyBzbw0KKwkg KiBhcyB3ZSByZXR1cm4gcHJlZW1wdGlvbiBtYXkgYmUgYWxsb3dlZC4uLg0K KwkgKi8NCisJcHJlZW1wdF9lbmFibGVfbm9fcmVzY2hlZCgpOw0KKw0KIAly ZXR1cm4gMTsNCiB9DQogDQpkaWZmIC11IC0tbmV3LWZpbGUgLXIgLVggL3Vz ci9zcmMvZXhjbHVkZSAvdXNyL3NyYy9saW51eC0yLjQuMTktcHJlOC1hYzQv ZHJpdmVycy9pZWVlMTM5NC9jc3IuYyAvdXNyL3NyYy9saW51eC0yLjQuMTkt cHJlOC1hYzRwL2RyaXZlcnMvaWVlZTEzOTQvY3NyLmMNCi0tLSAvdXNyL3Ny Yy9saW51eC0yLjQuMTktcHJlOC1hYzQvZHJpdmVycy9pZWVlMTM5NC9jc3Iu YwlXZWQgTWF5IDE1IDEyOjEzOjI1IDIwMDINCisrKyAvdXNyL3NyYy9saW51 eC0yLjQuMTktcHJlOC1hYzRwL2RyaXZlcnMvaWVlZTEzOTQvY3NyLmMJV2Vk IE1heSAxNSAxMjo0MDoyMSAyMDAyDQpAQCAtMTAsNiArMTAsNyBAQA0KICAq Lw0KIA0KICNpbmNsdWRlIDxsaW51eC9zdHJpbmcuaD4NCisjaW5jbHVkZSA8 bGludXgvc2NoZWQuaD4NCiANCiAjaW5jbHVkZSAiaWVlZTEzOTRfdHlwZXMu aCINCiAjaW5jbHVkZSAiaG9zdHMuaCINCmRpZmYgLXUgLS1uZXctZmlsZSAt ciAtWCAvdXNyL3NyYy9leGNsdWRlIC91c3Ivc3JjL2xpbnV4LTIuNC4xOS1w cmU4LWFjNC9kcml2ZXJzL3NvdW5kL3NvdW5kX2NvcmUuYyAvdXNyL3NyYy9s aW51eC0yLjQuMTktcHJlOC1hYzRwL2RyaXZlcnMvc291bmQvc291bmRfY29y ZS5jDQotLS0gL3Vzci9zcmMvbGludXgtMi40LjE5LXByZTgtYWM0L2RyaXZl cnMvc291bmQvc291bmRfY29yZS5jCVN1biBTZXAgMzAgMTU6MjY6MDggMjAw MQ0KKysrIC91c3Ivc3JjL2xpbnV4LTIuNC4xOS1wcmU4LWFjNHAvZHJpdmVy cy9zb3VuZC9zb3VuZF9jb3JlLmMJV2VkIE1heSAxNSAxMjo0MDoyMSAyMDAy DQpAQCAtMzcsNiArMzcsNyBAQA0KICNpbmNsdWRlIDxsaW51eC9jb25maWcu aD4NCiAjaW5jbHVkZSA8bGludXgvbW9kdWxlLmg+DQogI2luY2x1ZGUgPGxp bnV4L2luaXQuaD4NCisjaW5jbHVkZSA8bGludXgvc2NoZWQuaD4NCiAjaW5j bHVkZSA8bGludXgvc2xhYi5oPg0KICNpbmNsdWRlIDxsaW51eC90eXBlcy5o Pg0KICNpbmNsdWRlIDxsaW51eC9rZXJuZWwuaD4NCmRpZmYgLXUgLS1uZXct ZmlsZSAtciAtWCAvdXNyL3NyYy9leGNsdWRlIC91c3Ivc3JjL2xpbnV4LTIu NC4xOS1wcmU4LWFjNC9mcy9hZGZzL21hcC5jIC91c3Ivc3JjL2xpbnV4LTIu NC4xOS1wcmU4LWFjNHAvZnMvYWRmcy9tYXAuYw0KLS0tIC91c3Ivc3JjL2xp bnV4LTIuNC4xOS1wcmU4LWFjNC9mcy9hZGZzL21hcC5jCVRodSBPY3QgMjUg MTY6NTM6NTMgMjAwMQ0KKysrIC91c3Ivc3JjL2xpbnV4LTIuNC4xOS1wcmU4 LWFjNHAvZnMvYWRmcy9tYXAuYwlXZWQgTWF5IDE1IDEyOjQwOjIxIDIwMDIN CkBAIC0xMiw2ICsxMiw3IEBADQogI2luY2x1ZGUgPGxpbnV4L2ZzLmg+DQog I2luY2x1ZGUgPGxpbnV4L2FkZnNfZnMuaD4NCiAjaW5jbHVkZSA8bGludXgv c3BpbmxvY2suaD4NCisjaW5jbHVkZSA8bGludXgvc2NoZWQuaD4NCiANCiAj aW5jbHVkZSAiYWRmcy5oIg0KIA0KZGlmZiAtdSAtLW5ldy1maWxlIC1yIC1Y IC91c3Ivc3JjL2V4Y2x1ZGUgL3Vzci9zcmMvbGludXgtMi40LjE5LXByZTgt YWM0L2ZzL2J1ZmZlci5jIC91c3Ivc3JjL2xpbnV4LTIuNC4xOS1wcmU4LWFj NHAvZnMvYnVmZmVyLmMNCi0tLSAvdXNyL3NyYy9saW51eC0yLjQuMTktcHJl OC1hYzQvZnMvYnVmZmVyLmMJV2VkIE1heSAxNSAxMjoxMzozNSAyMDAyDQor KysgL3Vzci9zcmMvbGludXgtMi40LjE5LXByZTgtYWM0cC9mcy9idWZmZXIu YwlXZWQgTWF5IDE1IDEyOjQwOjIxIDIwMDINCkBAIC0xNTQsMTEgKzE1NCwx MyBAQA0KIAlnZXRfYmgoYmgpOw0KIAlhZGRfd2FpdF9xdWV1ZSgmYmgtPmJf d2FpdCwgJndhaXQpOw0KIAlkbyB7DQorCQlhdG9taWNfaW5jKCZucl9pb3dh aXRfdGFza3MpOw0KIAkJcnVuX3Rhc2tfcXVldWUoJnRxX2Rpc2spOw0KIAkJ c2V0X3Rhc2tfc3RhdGUodHNrLCBUQVNLX1VOSU5URVJSVVBUSUJMRSk7DQog CQlpZiAoIWJ1ZmZlcl9sb2NrZWQoYmgpKQ0KIAkJCWJyZWFrOw0KIAkJc2No ZWR1bGUoKTsNCisJCWF0b21pY19kZWMoJm5yX2lvd2FpdF90YXNrcyk7DQog CX0gd2hpbGUgKGJ1ZmZlcl9sb2NrZWQoYmgpKTsNCiAJdHNrLT5zdGF0ZSA9 IFRBU0tfUlVOTklORzsNCiAJcmVtb3ZlX3dhaXRfcXVldWUoJmJoLT5iX3dh aXQsICZ3YWl0KTsNCmRpZmYgLXUgLS1uZXctZmlsZSAtciAtWCAvdXNyL3Ny Yy9leGNsdWRlIC91c3Ivc3JjL2xpbnV4LTIuNC4xOS1wcmU4LWFjNC9mcy9l eGVjLmMgL3Vzci9zcmMvbGludXgtMi40LjE5LXByZTgtYWM0cC9mcy9leGVj LmMNCi0tLSAvdXNyL3NyYy9saW51eC0yLjQuMTktcHJlOC1hYzQvZnMvZXhl Yy5jCVdlZCBNYXkgMTUgMTI6MTM6MzUgMjAwMg0KKysrIC91c3Ivc3JjL2xp bnV4LTIuNC4xOS1wcmU4LWFjNHAvZnMvZXhlYy5jCVdlZCBNYXkgMTUgMTI6 NDA6MjEgMjAwMg0KQEAgLTQyNyw4ICs0MjcsOCBAQA0KIAkJYWN0aXZlX21t ID0gY3VycmVudC0+YWN0aXZlX21tOw0KIAkJY3VycmVudC0+bW0gPSBtbTsN CiAJCWN1cnJlbnQtPmFjdGl2ZV9tbSA9IG1tOw0KLQkJdGFza191bmxvY2so Y3VycmVudCk7DQogCQlhY3RpdmF0ZV9tbShhY3RpdmVfbW0sIG1tKTsNCisJ CXRhc2tfdW5sb2NrKGN1cnJlbnQpOw0KIAkJbW1fcmVsZWFzZSgpOw0KIAkJ aWYgKG9sZF9tbSkgew0KIAkJCWlmIChhY3RpdmVfbW0gIT0gb2xkX21tKSBC VUcoKTsNCmRpZmYgLXUgLS1uZXctZmlsZSAtciAtWCAvdXNyL3NyYy9leGNs dWRlIC91c3Ivc3JjL2xpbnV4LTIuNC4xOS1wcmU4LWFjNC9mcy9mYXQvY2Fj aGUuYyAvdXNyL3NyYy9saW51eC0yLjQuMTktcHJlOC1hYzRwL2ZzL2ZhdC9j YWNoZS5jDQotLS0gL3Vzci9zcmMvbGludXgtMi40LjE5LXByZTgtYWM0L2Zz L2ZhdC9jYWNoZS5jCUZyaSBPY3QgMTIgMTY6NDg6NDIgMjAwMQ0KKysrIC91 c3Ivc3JjL2xpbnV4LTIuNC4xOS1wcmU4LWFjNHAvZnMvZmF0L2NhY2hlLmMJ V2VkIE1heSAxNSAxMjo0MDoyMSAyMDAyDQpAQCAtMTQsNiArMTQsNyBAQA0K ICNpbmNsdWRlIDxsaW51eC9zdHJpbmcuaD4NCiAjaW5jbHVkZSA8bGludXgv c3RhdC5oPg0KICNpbmNsdWRlIDxsaW51eC9mYXRfY3ZmLmg+DQorI2luY2x1 ZGUgPGxpbnV4L3NjaGVkLmg+DQogDQogI2lmIDANCiAjICBkZWZpbmUgUFJJ TlRLKHgpIHByaW50ayB4DQpkaWZmIC11IC0tbmV3LWZpbGUgLXIgLVggL3Vz ci9zcmMvZXhjbHVkZSAvdXNyL3NyYy9saW51eC0yLjQuMTktcHJlOC1hYzQv ZnMvbmxzL25sc19iYXNlLmMgL3Vzci9zcmMvbGludXgtMi40LjE5LXByZTgt YWM0cC9mcy9ubHMvbmxzX2Jhc2UuYw0KLS0tIC91c3Ivc3JjL2xpbnV4LTIu NC4xOS1wcmU4LWFjNC9mcy9ubHMvbmxzX2Jhc2UuYwlXZWQgTWF5IDE1IDEy OjEzOjM1IDIwMDINCisrKyAvdXNyL3NyYy9saW51eC0yLjQuMTktcHJlOC1h YzRwL2ZzL25scy9ubHNfYmFzZS5jCVdlZCBNYXkgMTUgMTI6NDA6MjEgMjAw Mg0KQEAgLTE4LDYgKzE4LDcgQEANCiAjaWZkZWYgQ09ORklHX0tNT0QNCiAj aW5jbHVkZSA8bGludXgva21vZC5oPg0KICNlbmRpZg0KKyNpbmNsdWRlIDxs aW51eC9zY2hlZC5oPg0KICNpbmNsdWRlIDxsaW51eC9zcGlubG9jay5oPg0K IA0KIHN0YXRpYyBzdHJ1Y3QgbmxzX3RhYmxlICp0YWJsZXM7DQpkaWZmIC11 IC0tbmV3LWZpbGUgLXIgLVggL3Vzci9zcmMvZXhjbHVkZSAvdXNyL3NyYy9s aW51eC0yLjQuMTktcHJlOC1hYzQvZnMvcHJvYy9wcm9jX21pc2MuYyAvdXNy L3NyYy9saW51eC0yLjQuMTktcHJlOC1hYzRwL2ZzL3Byb2MvcHJvY19taXNj LmMNCi0tLSAvdXNyL3NyYy9saW51eC0yLjQuMTktcHJlOC1hYzQvZnMvcHJv Yy9wcm9jX21pc2MuYwlXZWQgTWF5IDE1IDEyOjEzOjM1IDIwMDINCisrKyAv dXNyL3NyYy9saW51eC0yLjQuMTktcHJlOC1hYzRwL2ZzL3Byb2MvcHJvY19t aXNjLmMJV2VkIE1heSAxNSAxMjo0MDoyMSAyMDAyDQpAQCAtMjczLDcgKzI3 Myw3IEBADQogCWludCBpLCBsZW47DQogCWV4dGVybiB1bnNpZ25lZCBsb25n IHRvdGFsX2ZvcmtzOw0KIAl1bnNpZ25lZCBsb25nIGppZiA9IGppZmZpZXM7 DQotCXVuc2lnbmVkIGludCBzdW0gPSAwLCB1c2VyID0gMCwgbmljZSA9IDAs IHN5c3RlbSA9IDA7DQorCXVuc2lnbmVkIGludCBzdW0gPSAwLCB1c2VyID0g MCwgbmljZSA9IDAsIHN5c3RlbSA9IDAsIGlvd2FpdCA9IDA7DQogCWludCBt YWpvciwgZGlzazsNCiANCiAJZm9yIChpID0gMCA7IGkgPCBzbXBfbnVtX2Nw dXM7IGkrKykgew0KQEAgLTI4MiwyMyArMjgyLDI2IEBADQogCQl1c2VyICs9 IGtzdGF0LnBlcl9jcHVfdXNlcltjcHVdOw0KIAkJbmljZSArPSBrc3RhdC5w ZXJfY3B1X25pY2VbY3B1XTsNCiAJCXN5c3RlbSArPSBrc3RhdC5wZXJfY3B1 X3N5c3RlbVtjcHVdOw0KKwkJaW93YWl0ICs9IGtzdGF0LnBlcl9jcHVfaW93 YWl0W2NwdV07DQogI2lmICFkZWZpbmVkKENPTkZJR19BUkNIX1MzOTApDQog CQlmb3IgKGogPSAwIDsgaiA8IE5SX0lSUVMgOyBqKyspDQogCQkJc3VtICs9 IGtzdGF0LmlycXNbY3B1XVtqXTsNCiAjZW5kaWYNCiAJfQ0KIA0KLQlsZW4g PSBzcHJpbnRmKHBhZ2UsICJjcHUgICV1ICV1ICV1ICVsdVxuIiwgdXNlciwg bmljZSwgc3lzdGVtLA0KLQkJICAgICAgamlmICogc21wX251bV9jcHVzIC0g KHVzZXIgKyBuaWNlICsgc3lzdGVtKSk7DQorCWxlbiA9IHNwcmludGYocGFn ZSwgImNwdSAgJXUgJXUgJXUgJWx1ICV1XG4iLCB1c2VyLCBuaWNlLCBzeXN0 ZW0sDQorCQkgICAgICBqaWYgKiBzbXBfbnVtX2NwdXMgLSAodXNlciArIG5p Y2UgKyBzeXN0ZW0pLA0KKwkJICAgICAgaW93YWl0KTsNCiAJZm9yIChpID0g MCA7IGkgPCBzbXBfbnVtX2NwdXM7IGkrKykNCi0JCWxlbiArPSBzcHJpbnRm KHBhZ2UgKyBsZW4sICJjcHUlZCAldSAldSAldSAlbHVcbiIsDQorCQlsZW4g Kz0gc3ByaW50ZihwYWdlICsgbGVuLCAiY3B1JWQgJXUgJXUgJXUgJWx1ICV1 XG4iLA0KIAkJCWksDQogCQkJa3N0YXQucGVyX2NwdV91c2VyW2NwdV9sb2dp Y2FsX21hcChpKV0sDQogCQkJa3N0YXQucGVyX2NwdV9uaWNlW2NwdV9sb2dp Y2FsX21hcChpKV0sDQogCQkJa3N0YXQucGVyX2NwdV9zeXN0ZW1bY3B1X2xv Z2ljYWxfbWFwKGkpXSwNCiAJCQlqaWYgLSAoICBrc3RhdC5wZXJfY3B1X3Vz ZXJbY3B1X2xvZ2ljYWxfbWFwKGkpXSBcDQogCQkJCSAgICsga3N0YXQucGVy X2NwdV9uaWNlW2NwdV9sb2dpY2FsX21hcChpKV0gXA0KLQkJCQkgICArIGtz dGF0LnBlcl9jcHVfc3lzdGVtW2NwdV9sb2dpY2FsX21hcChpKV0pKTsNCisJ CQkJICAgKyBrc3RhdC5wZXJfY3B1X3N5c3RlbVtjcHVfbG9naWNhbF9tYXAo aSldKSwNCisJCQlrc3RhdC5wZXJfY3B1X2lvd2FpdFtjcHVfbG9naWNhbF9t YXAoaSldKTsNCiAJbGVuICs9IHNwcmludGYocGFnZSArIGxlbiwNCiAJCSJw YWdlICV1ICV1XG4iDQogCQkic3dhcCAldSAldVxuIg0KZGlmZiAtdSAtLW5l dy1maWxlIC1yIC1YIC91c3Ivc3JjL2V4Y2x1ZGUgL3Vzci9zcmMvbGludXgt Mi40LjE5LXByZTgtYWM0L2luY2x1ZGUvYXNtLWFybS9kbWEuaCAvdXNyL3Ny Yy9saW51eC0yLjQuMTktcHJlOC1hYzRwL2luY2x1ZGUvYXNtLWFybS9kbWEu aA0KLS0tIC91c3Ivc3JjL2xpbnV4LTIuNC4xOS1wcmU4LWFjNC9pbmNsdWRl L2FzbS1hcm0vZG1hLmgJU3VuIEF1ZyAxMiAxNDoxNDowMCAyMDAxDQorKysg L3Vzci9zcmMvbGludXgtMi40LjE5LXByZTgtYWM0cC9pbmNsdWRlL2FzbS1h cm0vZG1hLmgJV2VkIE1heSAxNSAxMjo0MDoyMSAyMDAyDQpAQCAtNSw2ICs1 LDcgQEANCiANCiAjaW5jbHVkZSA8bGludXgvY29uZmlnLmg+DQogI2luY2x1 ZGUgPGxpbnV4L3NwaW5sb2NrLmg+DQorI2luY2x1ZGUgPGxpbnV4L3NjaGVk Lmg+DQogI2luY2x1ZGUgPGFzbS9zeXN0ZW0uaD4NCiAjaW5jbHVkZSA8YXNt L21lbW9yeS5oPg0KICNpbmNsdWRlIDxhc20vc2NhdHRlcmxpc3QuaD4NCmRp ZmYgLXUgLS1uZXctZmlsZSAtciAtWCAvdXNyL3NyYy9leGNsdWRlIC91c3Iv c3JjL2xpbnV4LTIuNC4xOS1wcmU4LWFjNC9pbmNsdWRlL2FzbS1hcm0vaGFy ZGlycS5oIC91c3Ivc3JjL2xpbnV4LTIuNC4xOS1wcmU4LWFjNHAvaW5jbHVk ZS9hc20tYXJtL2hhcmRpcnEuaA0KLS0tIC91c3Ivc3JjL2xpbnV4LTIuNC4x OS1wcmU4LWFjNC9pbmNsdWRlL2FzbS1hcm0vaGFyZGlycS5oCVRodSBPY3Qg MTEgMTI6MDQ6NTcgMjAwMQ0KKysrIC91c3Ivc3JjL2xpbnV4LTIuNC4xOS1w cmU4LWFjNHAvaW5jbHVkZS9hc20tYXJtL2hhcmRpcnEuaAlXZWQgTWF5IDE1 IDEyOjQwOjIxIDIwMDINCkBAIC0zNCw2ICszNCw3IEBADQogI2RlZmluZSBp cnFfZXhpdChjcHUsaXJxKQkobG9jYWxfaXJxX2NvdW50KGNwdSktLSkNCiAN CiAjZGVmaW5lIHN5bmNocm9uaXplX2lycSgpCWRvIHsgfSB3aGlsZSAoMCkN CisjZGVmaW5lIHJlbGVhc2VfaXJxbG9jayhjcHUpCWRvIHsgfSB3aGlsZSAo MCkNCiANCiAjZWxzZQ0KICNlcnJvciBTTVAgbm90IHN1cHBvcnRlZA0KZGlm ZiAtdSAtLW5ldy1maWxlIC1yIC1YIC91c3Ivc3JjL2V4Y2x1ZGUgL3Vzci9z cmMvbGludXgtMi40LjE5LXByZTgtYWM0L2luY2x1ZGUvYXNtLWFybS9wZ2Fs bG9jLmggL3Vzci9zcmMvbGludXgtMi40LjE5LXByZTgtYWM0cC9pbmNsdWRl L2FzbS1hcm0vcGdhbGxvYy5oDQotLS0gL3Vzci9zcmMvbGludXgtMi40LjE5 LXByZTgtYWM0L2luY2x1ZGUvYXNtLWFybS9wZ2FsbG9jLmgJU3VuIEF1ZyAx MiAxNDoxNDowMCAyMDAxDQorKysgL3Vzci9zcmMvbGludXgtMi40LjE5LXBy ZTgtYWM0cC9pbmNsdWRlL2FzbS1hcm0vcGdhbGxvYy5oCVdlZCBNYXkgMTUg MTI6NDA6MjEgMjAwMg0KQEAgLTU3LDQwICs1Nyw0OCBAQA0KIHsNCiAJdW5z aWduZWQgbG9uZyAqcmV0Ow0KIA0KKwlwcmVlbXB0X2Rpc2FibGUoKTsNCiAJ aWYgKChyZXQgPSBwZ2RfcXVpY2tsaXN0KSAhPSBOVUxMKSB7DQogCQlwZ2Rf cXVpY2tsaXN0ID0gKHVuc2lnbmVkIGxvbmcgKilfX3BnZF9uZXh0KHJldCk7 DQogCQlyZXRbMV0gPSByZXRbMl07DQogCQljbGVhbl9kY2FjaGVfZW50cnko cmV0ICsgMSk7DQogCQlwZ3RhYmxlX2NhY2hlX3NpemUtLTsNCiAJfQ0KKwlw cmVlbXB0X2VuYWJsZSgpOw0KIAlyZXR1cm4gKHBnZF90ICopcmV0Ow0KIH0N CiANCiBzdGF0aWMgaW5saW5lIHZvaWQgZnJlZV9wZ2RfZmFzdChwZ2RfdCAq cGdkKQ0KIHsNCisJcHJlZW1wdF9kaXNhYmxlKCk7DQogCV9fcGdkX25leHQo cGdkKSA9ICh1bnNpZ25lZCBsb25nKSBwZ2RfcXVpY2tsaXN0Ow0KIAlwZ2Rf cXVpY2tsaXN0ID0gKHVuc2lnbmVkIGxvbmcgKikgcGdkOw0KIAlwZ3RhYmxl X2NhY2hlX3NpemUrKzsNCisJcHJlZW1wdF9lbmFibGUoKTsNCiB9DQogDQog c3RhdGljIGlubGluZSBwdGVfdCAqcHRlX2FsbG9jX29uZV9mYXN0KHN0cnVj dCBtbV9zdHJ1Y3QgKm1tLCB1bnNpZ25lZCBsb25nIGFkZHJlc3MpDQogew0K IAl1bnNpZ25lZCBsb25nICpyZXQ7DQogDQorCXByZWVtcHRfZGlzYWJsZSgp Ow0KIAlpZigocmV0ID0gcHRlX3F1aWNrbGlzdCkgIT0gTlVMTCkgew0KIAkJ cHRlX3F1aWNrbGlzdCA9ICh1bnNpZ25lZCBsb25nICopX19wdGVfbmV4dChy ZXQpOw0KIAkJcmV0WzBdID0gMDsNCiAJCWNsZWFuX2RjYWNoZV9lbnRyeShy ZXQpOw0KIAkJcGd0YWJsZV9jYWNoZV9zaXplLS07DQogCX0NCisJcHJlZW1w dF9lbmFibGUoKTsNCiAJcmV0dXJuIChwdGVfdCAqKXJldDsNCiB9DQogDQog c3RhdGljIGlubGluZSB2b2lkIGZyZWVfcHRlX2Zhc3QocHRlX3QgKnB0ZSkN CiB7DQorCXByZWVtcHRfZGlzYWJsZSgpOw0KIAlfX3B0ZV9uZXh0KHB0ZSkg PSAodW5zaWduZWQgbG9uZykgcHRlX3F1aWNrbGlzdDsNCiAJcHRlX3F1aWNr bGlzdCA9ICh1bnNpZ25lZCBsb25nICopIHB0ZTsNCiAJcGd0YWJsZV9jYWNo ZV9zaXplKys7DQorCXByZWVtcHRfZW5hYmxlKCk7DQogfQ0KIA0KICNlbHNl CS8qIENPTkZJR19OT19QR1RfQ0FDSEUgKi8NCmRpZmYgLXUgLS1uZXctZmls ZSAtciAtWCAvdXNyL3NyYy9leGNsdWRlIC91c3Ivc3JjL2xpbnV4LTIuNC4x OS1wcmU4LWFjNC9pbmNsdWRlL2FzbS1hcm0vc21wbG9jay5oIC91c3Ivc3Jj L2xpbnV4LTIuNC4xOS1wcmU4LWFjNHAvaW5jbHVkZS9hc20tYXJtL3NtcGxv Y2suaA0KLS0tIC91c3Ivc3JjL2xpbnV4LTIuNC4xOS1wcmU4LWFjNC9pbmNs dWRlL2FzbS1hcm0vc21wbG9jay5oCVN1biBBdWcgMTIgMTQ6MTQ6MDAgMjAw MQ0KKysrIC91c3Ivc3JjL2xpbnV4LTIuNC4xOS1wcmU4LWFjNHAvaW5jbHVk ZS9hc20tYXJtL3NtcGxvY2suaAlXZWQgTWF5IDE1IDEyOjQwOjIxIDIwMDIN CkBAIC0zLDEyICszLDE3IEBADQogICoNCiAgKiBEZWZhdWx0IFNNUCBsb2Nr IGltcGxlbWVudGF0aW9uDQogICovDQorI2luY2x1ZGUgPGxpbnV4L2NvbmZp Zy5oPg0KICNpbmNsdWRlIDxsaW51eC9pbnRlcnJ1cHQuaD4NCiAjaW5jbHVk ZSA8bGludXgvc3BpbmxvY2suaD4NCiANCiBleHRlcm4gc3BpbmxvY2tfdCBr ZXJuZWxfZmxhZzsNCiANCisjaWZkZWYgQ09ORklHX1BSRUVNUFQNCisjZGVm aW5lIGtlcm5lbF9sb2NrZWQoKQkJcHJlZW1wdF9nZXRfY291bnQoKQ0KKyNl bHNlDQogI2RlZmluZSBrZXJuZWxfbG9ja2VkKCkJCXNwaW5faXNfbG9ja2Vk KCZrZXJuZWxfZmxhZykNCisjZW5kaWYNCiANCiAvKg0KICAqIFJlbGVhc2Ug Z2xvYmFsIGtlcm5lbCBsb2NrIGFuZCBnbG9iYWwgaW50ZXJydXB0IGxvY2sN CkBAIC00MCw4ICs0NSwxNCBAQA0KICAqLw0KIHN0YXRpYyBpbmxpbmUgdm9p ZCBsb2NrX2tlcm5lbCh2b2lkKQ0KIHsNCisjaWZkZWYgQ09ORklHX1BSRUVN UFQNCisJaWYgKGN1cnJlbnQtPmxvY2tfZGVwdGggPT0gLTEpDQorCQlzcGlu X2xvY2soJmtlcm5lbF9mbGFnKTsNCisJKytjdXJyZW50LT5sb2NrX2RlcHRo Ow0KKyNlbHNlDQogCWlmICghKytjdXJyZW50LT5sb2NrX2RlcHRoKQ0KIAkJ c3Bpbl9sb2NrKCZrZXJuZWxfZmxhZyk7DQorI2VuZGlmDQogfQ0KIA0KIHN0 YXRpYyBpbmxpbmUgdm9pZCB1bmxvY2tfa2VybmVsKHZvaWQpDQpkaWZmIC11 IC0tbmV3LWZpbGUgLXIgLVggL3Vzci9zcmMvZXhjbHVkZSAvdXNyL3NyYy9s aW51eC0yLjQuMTktcHJlOC1hYzQvaW5jbHVkZS9hc20tYXJtL3NvZnRpcnEu aCAvdXNyL3NyYy9saW51eC0yLjQuMTktcHJlOC1hYzRwL2luY2x1ZGUvYXNt LWFybS9zb2Z0aXJxLmgNCi0tLSAvdXNyL3NyYy9saW51eC0yLjQuMTktcHJl OC1hYzQvaW5jbHVkZS9hc20tYXJtL3NvZnRpcnEuaAlTYXQgU2VwICA4IDE1 OjAyOjMxIDIwMDENCisrKyAvdXNyL3NyYy9saW51eC0yLjQuMTktcHJlOC1h YzRwL2luY2x1ZGUvYXNtLWFybS9zb2Z0aXJxLmgJV2VkIE1heSAxNSAxMjo0 MDoyMSAyMDAyDQpAQCAtNSwyMCArNSwyMiBAQA0KICNpbmNsdWRlIDxhc20v aGFyZGlycS5oPg0KIA0KICNkZWZpbmUgX19jcHVfYmhfZW5hYmxlKGNwdSkg XA0KLQkJZG8geyBiYXJyaWVyKCk7IGxvY2FsX2JoX2NvdW50KGNwdSktLTsg fSB3aGlsZSAoMCkNCisJCWRvIHsgYmFycmllcigpOyBsb2NhbF9iaF9jb3Vu dChjcHUpLS07IHByZWVtcHRfZW5hYmxlKCk7IH0gd2hpbGUgKDApDQogI2Rl ZmluZSBjcHVfYmhfZGlzYWJsZShjcHUpIFwNCi0JCWRvIHsgbG9jYWxfYmhf Y291bnQoY3B1KSsrOyBiYXJyaWVyKCk7IH0gd2hpbGUgKDApDQorCQlkbyB7 IHByZWVtcHRfZGlzYWJsZSgpOyBsb2NhbF9iaF9jb3VudChjcHUpKys7IGJh cnJpZXIoKTsgfSB3aGlsZSAoMCkNCiANCiAjZGVmaW5lIGxvY2FsX2JoX2Rp c2FibGUoKQljcHVfYmhfZGlzYWJsZShzbXBfcHJvY2Vzc29yX2lkKCkpDQog I2RlZmluZSBfX2xvY2FsX2JoX2VuYWJsZSgpCV9fY3B1X2JoX2VuYWJsZShz bXBfcHJvY2Vzc29yX2lkKCkpDQogDQogI2RlZmluZSBpbl9zb2Z0aXJxKCkJ CShsb2NhbF9iaF9jb3VudChzbXBfcHJvY2Vzc29yX2lkKCkpICE9IDApDQog DQotI2RlZmluZSBsb2NhbF9iaF9lbmFibGUoKQkJCQkJCVwNCisjZGVmaW5l IF9sb2NhbF9iaF9lbmFibGUoKQkJCQkJCVwNCiBkbyB7CQkJCQkJCQkJXA0K IAl1bnNpZ25lZCBpbnQgKnB0ciA9ICZsb2NhbF9iaF9jb3VudChzbXBfcHJv Y2Vzc29yX2lkKCkpOwlcDQogCWlmICghLS0qcHRyICYmIHB0clstMl0pCQkJ CQkJXA0KIAkJX19hc21fXygiYmwlPyBfX2RvX3NvZnRpcnEiOiA6IDogImxy Iik7Lyogb3V0IG9mIGxpbmUgKi9cDQogfSB3aGlsZSAoMCkNCisNCisjZGVm aW5lIGxvY2FsX2JoX2VuYWJsZSgpIGRvIHsgX2xvY2FsX2JoX2VuYWJsZSgp OyBwcmVlbXB0X2VuYWJsZSgpOyB9IHdoaWxlICgwKQ0KIA0KICNlbmRpZgkv KiBfX0FTTV9TT0ZUSVJRX0ggKi8NCmRpZmYgLXUgLS1uZXctZmlsZSAtciAt WCAvdXNyL3NyYy9leGNsdWRlIC91c3Ivc3JjL2xpbnV4LTIuNC4xOS1wcmU4 LWFjNC9pbmNsdWRlL2FzbS1pMzg2L2hhcmRpcnEuaCAvdXNyL3NyYy9saW51 eC0yLjQuMTktcHJlOC1hYzRwL2luY2x1ZGUvYXNtLWkzODYvaGFyZGlycS5o DQotLS0gL3Vzci9zcmMvbGludXgtMi40LjE5LXByZTgtYWM0L2luY2x1ZGUv YXNtLWkzODYvaGFyZGlycS5oCVRodSBOb3YgMjIgMTQ6NDY6MTkgMjAwMQ0K KysrIC91c3Ivc3JjL2xpbnV4LTIuNC4xOS1wcmU4LWFjNHAvaW5jbHVkZS9h c20taTM4Ni9oYXJkaXJxLmgJV2VkIE1heSAxNSAxMjo0MDoyMSAyMDAyDQpA QCAtMzYsNiArMzYsOCBAQA0KIA0KICNkZWZpbmUgc3luY2hyb25pemVfaXJx KCkJYmFycmllcigpDQogDQorI2RlZmluZSByZWxlYXNlX2lycWxvY2soY3B1 KQlkbyB7IH0gd2hpbGUgKDApDQorDQogI2Vsc2UNCiANCiAjaW5jbHVkZSA8 YXNtL2F0b21pYy5oPg0KZGlmZiAtdSAtLW5ldy1maWxlIC1yIC1YIC91c3Iv c3JjL2V4Y2x1ZGUgL3Vzci9zcmMvbGludXgtMi40LjE5LXByZTgtYWM0L2lu Y2x1ZGUvYXNtLWkzODYvaGlnaG1lbS5oIC91c3Ivc3JjL2xpbnV4LTIuNC4x OS1wcmU4LWFjNHAvaW5jbHVkZS9hc20taTM4Ni9oaWdobWVtLmgNCi0tLSAv dXNyL3NyYy9saW51eC0yLjQuMTktcHJlOC1hYzQvaW5jbHVkZS9hc20taTM4 Ni9oaWdobWVtLmgJV2VkIE1heSAxNSAxMjoxMzozNSAyMDAyDQorKysgL3Vz ci9zcmMvbGludXgtMi40LjE5LXByZTgtYWM0cC9pbmNsdWRlL2FzbS1pMzg2 L2hpZ2htZW0uaAlXZWQgTWF5IDE1IDEyOjQwOjIxIDIwMDINCkBAIC04OCw2 ICs4OCw3IEBADQogCWVudW0gZml4ZWRfYWRkcmVzc2VzIGlkeDsNCiAJdW5z aWduZWQgbG9uZyB2YWRkcjsNCiANCisJcHJlZW1wdF9kaXNhYmxlKCk7DQog CWlmIChwYWdlIDwgaGlnaG1lbV9zdGFydF9wYWdlKQ0KIAkJcmV0dXJuIHBh Z2VfYWRkcmVzcyhwYWdlKTsNCiANCkBAIC0xMDksOCArMTEwLDEwIEBADQog CXVuc2lnbmVkIGxvbmcgdmFkZHIgPSAodW5zaWduZWQgbG9uZykga3ZhZGRy Ow0KIAllbnVtIGZpeGVkX2FkZHJlc3NlcyBpZHggPSB0eXBlICsgS01fVFlQ RV9OUipzbXBfcHJvY2Vzc29yX2lkKCk7DQogDQotCWlmICh2YWRkciA8IEZJ WEFERFJfU1RBUlQpIC8vIEZJWE1FDQorCWlmICh2YWRkciA8IEZJWEFERFJf U1RBUlQpIHsgLy8gRklYTUUNCisJCXByZWVtcHRfZW5hYmxlKCk7DQogCQly ZXR1cm47DQorCX0NCiANCiAJaWYgKHZhZGRyICE9IF9fZml4X3RvX3ZpcnQo RklYX0tNQVBfQkVHSU4raWR4KSkNCiAJCW91dF9vZl9saW5lX2J1ZygpOw0K QEAgLTEyMiw2ICsxMjUsOCBAQA0KIAlwdGVfY2xlYXIoa21hcF9wdGUtaWR4 KTsNCiAJX19mbHVzaF90bGJfb25lKHZhZGRyKTsNCiAjZW5kaWYNCisNCisJ cHJlZW1wdF9lbmFibGUoKTsNCiB9DQogDQogI2VuZGlmIC8qIF9fS0VSTkVM X18gKi8NCmRpZmYgLXUgLS1uZXctZmlsZSAtciAtWCAvdXNyL3NyYy9leGNs dWRlIC91c3Ivc3JjL2xpbnV4LTIuNC4xOS1wcmU4LWFjNC9pbmNsdWRlL2Fz bS1pMzg2L2h3X2lycS5oIC91c3Ivc3JjL2xpbnV4LTIuNC4xOS1wcmU4LWFj NHAvaW5jbHVkZS9hc20taTM4Ni9od19pcnEuaA0KLS0tIC91c3Ivc3JjL2xp bnV4LTIuNC4xOS1wcmU4LWFjNC9pbmNsdWRlL2FzbS1pMzg2L2h3X2lycS5o CVRodSBOb3YgMjIgMTQ6NDY6MTggMjAwMQ0KKysrIC91c3Ivc3JjL2xpbnV4 LTIuNC4xOS1wcmU4LWFjNHAvaW5jbHVkZS9hc20taTM4Ni9od19pcnEuaAlX ZWQgTWF5IDE1IDEyOjQwOjIxIDIwMDINCkBAIC05NSw2ICs5NSwxOCBAQA0K ICNkZWZpbmUgX19TVFIoeCkgI3gNCiAjZGVmaW5lIFNUUih4KSBfX1NUUih4 KQ0KIA0KKyNkZWZpbmUgR0VUX0NVUlJFTlQgXA0KKwkibW92bCAlZXNwLCAl ZWJ4XG5cdCIgXA0KKwkiYW5kbCAkLTgxOTIsICVlYnhcblx0Ig0KKw0KKyNp ZmRlZiBDT05GSUdfUFJFRU1QVA0KKyNkZWZpbmUgQlVNUF9MT0NLX0NPVU5U IFwNCisJR0VUX0NVUlJFTlQgXA0KKwkiaW5jbCA0KCVlYngpXG5cdCINCisj ZWxzZQ0KKyNkZWZpbmUgQlVNUF9MT0NLX0NPVU5UDQorI2VuZGlmDQorDQog I2RlZmluZSBTQVZFX0FMTCBcDQogCSJjbGRcblx0IiBcDQogCSJwdXNobCAl ZXNcblx0IiBcDQpAQCAtMTA4LDE0ICsxMjAsMTEgQEANCiAJInB1c2hsICVl Ynhcblx0IiBcDQogCSJtb3ZsICQiIFNUUihfX0tFUk5FTF9EUykgIiwlZWR4 XG5cdCIgXA0KIAkibW92bCAlZWR4LCVkc1xuXHQiIFwNCi0JIm1vdmwgJWVk eCwlZXNcblx0Ig0KKwkibW92bCAlZWR4LCVlc1xuXHQiIFwNCisJQlVNUF9M T0NLX0NPVU5UDQogDQogI2RlZmluZSBJUlFfTkFNRTIobnIpIG5yIyNfaW50 ZXJydXB0KHZvaWQpDQogI2RlZmluZSBJUlFfTkFNRShucikgSVJRX05BTUUy KElSUSMjbnIpDQotDQotI2RlZmluZSBHRVRfQ1VSUkVOVCBcDQotCSJtb3Zs ICVlc3AsICVlYnhcblx0IiBcDQotCSJhbmRsICQtODE5MiwgJWVieFxuXHQi DQogDQogLyoNCiAgKglTTVAgaGFzIGEgZmV3IHNwZWNpYWwgaW50ZXJydXB0 cyBmb3IgSVBJIG1lc3NhZ2VzDQpkaWZmIC11IC0tbmV3LWZpbGUgLXIgLVgg L3Vzci9zcmMvZXhjbHVkZSAvdXNyL3NyYy9saW51eC0yLjQuMTktcHJlOC1h YzQvaW5jbHVkZS9hc20taTM4Ni9pMzg3LmggL3Vzci9zcmMvbGludXgtMi40 LjE5LXByZTgtYWM0cC9pbmNsdWRlL2FzbS1pMzg2L2kzODcuaA0KLS0tIC91 c3Ivc3JjL2xpbnV4LTIuNC4xOS1wcmU4LWFjNC9pbmNsdWRlL2FzbS1pMzg2 L2kzODcuaAlUaHUgTm92IDIyIDE0OjQ4OjU4IDIwMDENCisrKyAvdXNyL3Ny Yy9saW51eC0yLjQuMTktcHJlOC1hYzRwL2luY2x1ZGUvYXNtLWkzODYvaTM4 Ny5oCVdlZCBNYXkgMTUgMTI6NDA6MjEgMjAwMg0KQEAgLTEyLDYgKzEyLDcg QEANCiAjZGVmaW5lIF9fQVNNX0kzODZfSTM4N19IDQogDQogI2luY2x1ZGUg PGxpbnV4L3NjaGVkLmg+DQorI2luY2x1ZGUgPGxpbnV4L3NwaW5sb2NrLmg+ DQogI2luY2x1ZGUgPGFzbS9wcm9jZXNzb3IuaD4NCiAjaW5jbHVkZSA8YXNt L3NpZ2NvbnRleHQuaD4NCiAjaW5jbHVkZSA8YXNtL3VzZXIuaD4NCkBAIC0y NCw3ICsyNSw3IEBADQogZXh0ZXJuIHZvaWQgcmVzdG9yZV9mcHUoIHN0cnVj dCB0YXNrX3N0cnVjdCAqdHNrICk7DQogDQogZXh0ZXJuIHZvaWQga2VybmVs X2ZwdV9iZWdpbih2b2lkKTsNCi0jZGVmaW5lIGtlcm5lbF9mcHVfZW5kKCkg c3R0cygpDQorI2RlZmluZSBrZXJuZWxfZnB1X2VuZCgpIGRvIHsgc3R0cygp OyBwcmVlbXB0X2VuYWJsZSgpOyB9IHdoaWxlKDApDQogDQogDQogI2RlZmlu ZSB1bmxhenlfZnB1KCB0c2sgKSBkbyB7IFwNCmRpZmYgLXUgLS1uZXctZmls ZSAtciAtWCAvdXNyL3NyYy9leGNsdWRlIC91c3Ivc3JjL2xpbnV4LTIuNC4x OS1wcmU4LWFjNC9pbmNsdWRlL2FzbS1pMzg2L3BnYWxsb2MuaCAvdXNyL3Ny Yy9saW51eC0yLjQuMTktcHJlOC1hYzRwL2luY2x1ZGUvYXNtLWkzODYvcGdh bGxvYy5oDQotLS0gL3Vzci9zcmMvbGludXgtMi40LjE5LXByZTgtYWM0L2lu Y2x1ZGUvYXNtLWkzODYvcGdhbGxvYy5oCVdlZCBNYXkgMTUgMTI6MTM6MzUg MjAwMg0KKysrIC91c3Ivc3JjL2xpbnV4LTIuNC4xOS1wcmU4LWFjNHAvaW5j bHVkZS9hc20taTM4Ni9wZ2FsbG9jLmgJV2VkIE1heSAxNSAxMjo0MDoyMSAy MDAyDQpAQCAtNzUsMjAgKzc1LDI2IEBADQogew0KIAl1bnNpZ25lZCBsb25n ICpyZXQ7DQogDQorCXByZWVtcHRfZGlzYWJsZSgpOw0KIAlpZiAoKHJldCA9 IHBnZF9xdWlja2xpc3QpICE9IE5VTEwpIHsNCiAJCXBnZF9xdWlja2xpc3Qg PSAodW5zaWduZWQgbG9uZyAqKSgqcmV0KTsNCiAJCXJldFswXSA9IDA7DQog CQlwZ3RhYmxlX2NhY2hlX3NpemUtLTsNCi0JfSBlbHNlDQorCQlwcmVlbXB0 X2VuYWJsZSgpOw0KKwl9IGVsc2Ugew0KKwkJcHJlZW1wdF9lbmFibGUoKTsN CiAJCXJldCA9ICh1bnNpZ25lZCBsb25nICopZ2V0X3BnZF9zbG93KCk7DQor CX0NCiAJcmV0dXJuIChwZ2RfdCAqKXJldDsNCiB9DQogDQogc3RhdGljIGlu bGluZSB2b2lkIGZyZWVfcGdkX2Zhc3QocGdkX3QgKnBnZCkNCiB7DQorCXBy ZWVtcHRfZGlzYWJsZSgpOw0KIAkqKHVuc2lnbmVkIGxvbmcgKilwZ2QgPSAo dW5zaWduZWQgbG9uZykgcGdkX3F1aWNrbGlzdDsNCiAJcGdkX3F1aWNrbGlz dCA9ICh1bnNpZ25lZCBsb25nICopIHBnZDsNCiAJcGd0YWJsZV9jYWNoZV9z aXplKys7DQorCXByZWVtcHRfZW5hYmxlKCk7DQogfQ0KIA0KIHN0YXRpYyBp bmxpbmUgdm9pZCBmcmVlX3BnZF9zbG93KHBnZF90ICpwZ2QpDQpAQCAtMTE5 LDExICsxMjUsMTMgQEANCiB7DQogCXVuc2lnbmVkIGxvbmcgKnJldDsNCiAN CisJcHJlZW1wdF9kaXNhYmxlKCk7DQogCWlmICgocmV0ID0gKHVuc2lnbmVk IGxvbmcgKilwdGVfcXVpY2tsaXN0KSAhPSBOVUxMKSB7DQogCQlwdGVfcXVp Y2tsaXN0ID0gKHVuc2lnbmVkIGxvbmcgKikoKnJldCk7DQogCQlyZXRbMF0g PSByZXRbMV07DQogCQlwZ3RhYmxlX2NhY2hlX3NpemUtLTsNCiAJfQ0KKwlw cmVlbXB0X2VuYWJsZSgpOw0KIAlyZXR1cm4gKHB0ZV90ICopcmV0Ow0KIH0N CiANCkBAIC0xMzUsMTIgKzE0MywxNCBAQA0KIGV4dGVybiBpbnQgcGd0X2Nh Y2hlX3dhdGVyW107DQogc3RhdGljIGlubGluZSB2b2lkIHB0ZV9mcmVlX2Zh c3QocHRlX3QgKnB0ZSkNCiB7DQorCXByZWVtcHRfZGlzYWJsZSgpOw0KIAlp ZiAocGd0YWJsZV9jYWNoZV9zaXplIDwgcGd0X2NhY2hlX3dhdGVyWzFdKSB7 DQogCQkqKHVuc2lnbmVkIGxvbmcgKilwdGUgPSAodW5zaWduZWQgbG9uZykg cHRlX3F1aWNrbGlzdDsNCiAJCXB0ZV9xdWlja2xpc3QgPSAodW5zaWduZWQg bG9uZyAqKSBwdGU7DQogCQlwZ3RhYmxlX2NhY2hlX3NpemUrKzsNCiAJfSBl bHNlDQogCQlwdGVfZnJlZV9zbG93KHB0ZSk7DQorCXByZWVtcHRfZW5hYmxl KCk7DQogfQ0KIA0KICNkZWZpbmUgcHRlX2ZyZWUocHRlKQkJcHRlX2ZyZWVf ZmFzdChwdGUpDQpkaWZmIC11IC0tbmV3LWZpbGUgLXIgLVggL3Vzci9zcmMv ZXhjbHVkZSAvdXNyL3NyYy9saW51eC0yLjQuMTktcHJlOC1hYzQvaW5jbHVk ZS9hc20taTM4Ni9zbXBsb2NrLmggL3Vzci9zcmMvbGludXgtMi40LjE5LXBy ZTgtYWM0cC9pbmNsdWRlL2FzbS1pMzg2L3NtcGxvY2suaA0KLS0tIC91c3Iv c3JjL2xpbnV4LTIuNC4xOS1wcmU4LWFjNC9pbmNsdWRlL2FzbS1pMzg2L3Nt cGxvY2suaAlXZWQgTWF5IDE1IDEyOjEzOjM1IDIwMDINCisrKyAvdXNyL3Ny Yy9saW51eC0yLjQuMTktcHJlOC1hYzRwL2luY2x1ZGUvYXNtLWkzODYvc21w bG9jay5oCVdlZCBNYXkgMTUgMTI6NDA6MjEgMjAwMg0KQEAgLTExLDcgKzEx LDE1IEBADQogZXh0ZXJuIHNwaW5sb2NrX2NhY2hlbGluZV90IGtlcm5lbF9m bGFnX2NhY2hlbGluZTsgIA0KICNkZWZpbmUga2VybmVsX2ZsYWcga2VybmVs X2ZsYWdfY2FjaGVsaW5lLmxvY2sgICAgICANCiANCisjaWZkZWYgQ09ORklH X1NNUA0KICNkZWZpbmUga2VybmVsX2xvY2tlZCgpCQlzcGluX2lzX2xvY2tl ZCgma2VybmVsX2ZsYWcpDQorI2Vsc2UNCisjaWZkZWYgQ09ORklHX1BSRUVN UFQNCisjZGVmaW5lIGtlcm5lbF9sb2NrZWQoKQkJcHJlZW1wdF9nZXRfY291 bnQoKQ0KKyNlbHNlDQorI2RlZmluZSBrZXJuZWxfbG9ja2VkKCkJCTENCisj ZW5kaWYNCisjZW5kaWYNCiANCiAvKg0KICAqIFJlbGVhc2UgZ2xvYmFsIGtl cm5lbCBsb2NrIGFuZCBnbG9iYWwgaW50ZXJydXB0IGxvY2sNCkBAIC00Myw2 ICs1MSwxMSBAQA0KICAqLw0KIHN0YXRpYyBfX2lubGluZV9fIHZvaWQgbG9j a19rZXJuZWwodm9pZCkNCiB7DQorI2lmZGVmIENPTkZJR19QUkVFTVBUDQor CWlmIChjdXJyZW50LT5sb2NrX2RlcHRoID09IC0xKQ0KKwkJc3Bpbl9sb2Nr KCZrZXJuZWxfZmxhZyk7DQorCSsrY3VycmVudC0+bG9ja19kZXB0aDsNCisj ZWxzZQ0KICNpZiAxDQogCWlmICghKytjdXJyZW50LT5sb2NrX2RlcHRoKQ0K IAkJc3Bpbl9sb2NrKCZrZXJuZWxfZmxhZyk7DQpAQCAtNTQsNiArNjcsNyBA QA0KIAkJIlxuOToiDQogCQk6Ij1tIiAoX19kdW1teV9sb2NrKCZrZXJuZWxf ZmxhZykpLA0KIAkJICI9bSIgKGN1cnJlbnQtPmxvY2tfZGVwdGgpKTsNCisj ZW5kaWYNCiAjZW5kaWYNCiB9DQogDQpkaWZmIC11IC0tbmV3LWZpbGUgLXIg LVggL3Vzci9zcmMvZXhjbHVkZSAvdXNyL3NyYy9saW51eC0yLjQuMTktcHJl OC1hYzQvaW5jbHVkZS9hc20taTM4Ni9zb2Z0aXJxLmggL3Vzci9zcmMvbGlu dXgtMi40LjE5LXByZTgtYWM0cC9pbmNsdWRlL2FzbS1pMzg2L3NvZnRpcnEu aA0KLS0tIC91c3Ivc3JjL2xpbnV4LTIuNC4xOS1wcmU4LWFjNC9pbmNsdWRl L2FzbS1pMzg2L3NvZnRpcnEuaAlXZWQgTWF5IDE1IDEyOjEzOjM1IDIwMDIN CisrKyAvdXNyL3NyYy9saW51eC0yLjQuMTktcHJlOC1hYzRwL2luY2x1ZGUv YXNtLWkzODYvc29mdGlycS5oCVdlZCBNYXkgMTUgMTI6NDA6MjEgMjAwMg0K QEAgLTUsOSArNSw5IEBADQogI2luY2x1ZGUgPGFzbS9oYXJkaXJxLmg+DQog DQogI2RlZmluZSBfX2NwdV9iaF9lbmFibGUoY3B1KSBcDQotCQlkbyB7IGJh cnJpZXIoKTsgbG9jYWxfYmhfY291bnQoY3B1KS0tOyB9IHdoaWxlICgwKQ0K KwkJZG8geyBiYXJyaWVyKCk7IGxvY2FsX2JoX2NvdW50KGNwdSktLTsgcHJl ZW1wdF9lbmFibGUoKTsgfSB3aGlsZSAoMCkNCiAjZGVmaW5lIGNwdV9iaF9k aXNhYmxlKGNwdSkgXA0KLQkJZG8geyBsb2NhbF9iaF9jb3VudChjcHUpKys7 IGJhcnJpZXIoKTsgfSB3aGlsZSAoMCkNCisJCWRvIHsgcHJlZW1wdF9kaXNh YmxlKCk7IGxvY2FsX2JoX2NvdW50KGNwdSkrKzsgYmFycmllcigpOyB9IHdo aWxlICgwKQ0KIA0KICNkZWZpbmUgbG9jYWxfYmhfZGlzYWJsZSgpCWNwdV9i aF9kaXNhYmxlKHNtcF9wcm9jZXNzb3JfaWQoKSkNCiAjZGVmaW5lIF9fbG9j YWxfYmhfZW5hYmxlKCkJX19jcHVfYmhfZW5hYmxlKHNtcF9wcm9jZXNzb3Jf aWQoKSkNCkBAIC0yMiw3ICsyMiw3IEBADQogICogSWYgeW91IGNoYW5nZSB0 aGUgb2Zmc2V0cyBpbiBpcnFfc3RhdCB0aGVuIHlvdSBoYXZlIHRvDQogICog dXBkYXRlIHRoaXMgY29kZSBhcyB3ZWxsLg0KICAqLw0KLSNkZWZpbmUgbG9j YWxfYmhfZW5hYmxlKCkJCQkJCQlcDQorI2RlZmluZSBfbG9jYWxfYmhfZW5h YmxlKCkJCQkJCQlcDQogZG8gewkJCQkJCQkJCVwNCiAJdW5zaWduZWQgaW50 ICpwdHIgPSAmbG9jYWxfYmhfY291bnQoc21wX3Byb2Nlc3Nvcl9pZCgpKTsJ XA0KIAkJCQkJCQkJCVwNCkBAIC00NCw1ICs0NCw3IEBADQogCQk6ICJyIiAo cHRyKSwgImkiIChkb19zb2Z0aXJxKQkJCQlcDQogCQkvKiBubyByZWdpc3Rl cnMgY2xvYmJlcmVkICovICk7CQkJCVwNCiB9IHdoaWxlICgwKQ0KKw0KKyNk ZWZpbmUgbG9jYWxfYmhfZW5hYmxlKCkgZG8geyBfbG9jYWxfYmhfZW5hYmxl KCk7IHByZWVtcHRfZW5hYmxlKCk7IH0gd2hpbGUgKDApDQogDQogI2VuZGlm CS8qIF9fQVNNX1NPRlRJUlFfSCAqLw0KZGlmZiAtdSAtLW5ldy1maWxlIC1y IC1YIC91c3Ivc3JjL2V4Y2x1ZGUgL3Vzci9zcmMvbGludXgtMi40LjE5LXBy ZTgtYWM0L2luY2x1ZGUvYXNtLWkzODYvc3BpbmxvY2suaCAvdXNyL3NyYy9s aW51eC0yLjQuMTktcHJlOC1hYzRwL2luY2x1ZGUvYXNtLWkzODYvc3Bpbmxv Y2suaA0KLS0tIC91c3Ivc3JjL2xpbnV4LTIuNC4xOS1wcmU4LWFjNC9pbmNs dWRlL2FzbS1pMzg2L3NwaW5sb2NrLmgJV2VkIE1heSAxNSAxMjoxMzozNSAy MDAyDQorKysgL3Vzci9zcmMvbGludXgtMi40LjE5LXByZTgtYWM0cC9pbmNs dWRlL2FzbS1pMzg2L3NwaW5sb2NrLmgJV2VkIE1heSAxNSAxMjo0MDoyMSAy MDAyDQpAQCAtNzcsNyArNzcsNyBAQA0KIAkJOiI9bSIgKGxvY2stPmxvY2sp IDogOiAibWVtb3J5Ig0KIA0KIA0KLXN0YXRpYyBpbmxpbmUgdm9pZCBzcGlu X3VubG9jayhzcGlubG9ja190ICpsb2NrKQ0KK3N0YXRpYyBpbmxpbmUgdm9p ZCBfcmF3X3NwaW5fdW5sb2NrKHNwaW5sb2NrX3QgKmxvY2spDQogew0KICNp ZiBTUElOTE9DS19ERUJVRw0KIAlpZiAobG9jay0+bWFnaWMgIT0gU1BJTkxP Q0tfTUFHSUMpDQpAQCAtOTcsNyArOTcsNyBAQA0KIAkJOiI9cSIgKG9sZHZh bCksICI9bSIgKGxvY2stPmxvY2spIFwNCiAJCToiMCIgKG9sZHZhbCkgOiAi bWVtb3J5Ig0KIA0KLXN0YXRpYyBpbmxpbmUgdm9pZCBzcGluX3VubG9jayhz cGlubG9ja190ICpsb2NrKQ0KK3N0YXRpYyBpbmxpbmUgdm9pZCBfcmF3X3Nw aW5fdW5sb2NrKHNwaW5sb2NrX3QgKmxvY2spDQogew0KIAljaGFyIG9sZHZh bCA9IDE7DQogI2lmIFNQSU5MT0NLX0RFQlVHDQpAQCAtMTEzLDcgKzExMyw3 IEBADQogDQogI2VuZGlmDQogDQotc3RhdGljIGlubGluZSBpbnQgc3Bpbl90 cnlsb2NrKHNwaW5sb2NrX3QgKmxvY2spDQorc3RhdGljIGlubGluZSBpbnQg X3Jhd19zcGluX3RyeWxvY2soc3BpbmxvY2tfdCAqbG9jaykNCiB7DQogCWNo YXIgb2xkdmFsOw0KIAlfX2FzbV9fIF9fdm9sYXRpbGVfXygNCkBAIC0xMjMs NyArMTIzLDcgQEANCiAJcmV0dXJuIG9sZHZhbCA+IDA7DQogfQ0KIA0KLXN0 YXRpYyBpbmxpbmUgdm9pZCBzcGluX2xvY2soc3BpbmxvY2tfdCAqbG9jaykN CitzdGF0aWMgaW5saW5lIHZvaWQgX3Jhd19zcGluX2xvY2soc3BpbmxvY2tf dCAqbG9jaykNCiB7DQogI2lmIFNQSU5MT0NLX0RFQlVHDQogCV9fbGFiZWxf XyBoZXJlOw0KQEAgLTE3OSw3ICsxNzksNyBAQA0KICAqLw0KIC8qIHRoZSBz cGlubG9jayBoZWxwZXJzIGFyZSBpbiBhcmNoL2kzODYva2VybmVsL3NlbWFw aG9yZS5jICovDQogDQotc3RhdGljIGlubGluZSB2b2lkIHJlYWRfbG9jayhy d2xvY2tfdCAqcncpDQorc3RhdGljIGlubGluZSB2b2lkIF9yYXdfcmVhZF9s b2NrKHJ3bG9ja190ICpydykNCiB7DQogI2lmIFNQSU5MT0NLX0RFQlVHDQog CWlmIChydy0+bWFnaWMgIT0gUldMT0NLX01BR0lDKQ0KQEAgLTE4OCw3ICsx ODgsNyBAQA0KIAlfX2J1aWxkX3JlYWRfbG9jayhydywgIl9fcmVhZF9sb2Nr X2ZhaWxlZCIpOw0KIH0NCiANCi1zdGF0aWMgaW5saW5lIHZvaWQgd3JpdGVf bG9jayhyd2xvY2tfdCAqcncpDQorc3RhdGljIGlubGluZSB2b2lkIF9yYXdf d3JpdGVfbG9jayhyd2xvY2tfdCAqcncpDQogew0KICNpZiBTUElOTE9DS19E RUJVRw0KIAlpZiAocnctPm1hZ2ljICE9IFJXTE9DS19NQUdJQykNCkBAIC0x OTcsMTAgKzE5NywxMCBAQA0KIAlfX2J1aWxkX3dyaXRlX2xvY2socncsICJf X3dyaXRlX2xvY2tfZmFpbGVkIik7DQogfQ0KIA0KLSNkZWZpbmUgcmVhZF91 bmxvY2socncpCQlhc20gdm9sYXRpbGUoImxvY2sgOyBpbmNsICUwIiA6Ij1t IiAoKHJ3KS0+bG9jaykgOiA6ICJtZW1vcnkiKQ0KLSNkZWZpbmUgd3JpdGVf dW5sb2NrKHJ3KQlhc20gdm9sYXRpbGUoImxvY2sgOyBhZGRsICQiIFJXX0xP Q0tfQklBU19TVFIgIiwlMCI6Ij1tIiAoKHJ3KS0+bG9jaykgOiA6ICJtZW1v cnkiKQ0KKyNkZWZpbmUgX3Jhd19yZWFkX3VubG9jayhydykJCWFzbSB2b2xh dGlsZSgibG9jayA7IGluY2wgJTAiIDoiPW0iICgocncpLT5sb2NrKSA6IDog Im1lbW9yeSIpDQorI2RlZmluZSBfcmF3X3dyaXRlX3VubG9jayhydykJYXNt IHZvbGF0aWxlKCJsb2NrIDsgYWRkbCAkIiBSV19MT0NLX0JJQVNfU1RSICIs JTAiOiI9bSIgKChydyktPmxvY2spIDogOiAibWVtb3J5IikNCiANCi1zdGF0 aWMgaW5saW5lIGludCB3cml0ZV90cnlsb2NrKHJ3bG9ja190ICpsb2NrKQ0K K3N0YXRpYyBpbmxpbmUgaW50IF9yYXdfd3JpdGVfdHJ5bG9jayhyd2xvY2tf dCAqbG9jaykNCiB7DQogCWF0b21pY190ICpjb3VudCA9IChhdG9taWNfdCAq KWxvY2s7DQogCWlmIChhdG9taWNfc3ViX2FuZF90ZXN0KFJXX0xPQ0tfQklB UywgY291bnQpKQ0KZGlmZiAtdSAtLW5ldy1maWxlIC1yIC1YIC91c3Ivc3Jj L2V4Y2x1ZGUgL3Vzci9zcmMvbGludXgtMi40LjE5LXByZTgtYWM0L2luY2x1 ZGUvYXNtLXNoL2hhcmRpcnEuaCAvdXNyL3NyYy9saW51eC0yLjQuMTktcHJl OC1hYzRwL2luY2x1ZGUvYXNtLXNoL2hhcmRpcnEuaA0KLS0tIC91c3Ivc3Jj L2xpbnV4LTIuNC4xOS1wcmU4LWFjNC9pbmNsdWRlL2FzbS1zaC9oYXJkaXJx LmgJU2F0IFNlcCAgOCAxNToyOTowOSAyMDAxDQorKysgL3Vzci9zcmMvbGlu dXgtMi40LjE5LXByZTgtYWM0cC9pbmNsdWRlL2FzbS1zaC9oYXJkaXJxLmgJ V2VkIE1heSAxNSAxMjo0MDoyMSAyMDAyDQpAQCAtMzQsNiArMzQsOCBAQA0K IA0KICNkZWZpbmUgc3luY2hyb25pemVfaXJxKCkJYmFycmllcigpDQogDQor I2RlZmluZSByZWxlYXNlX2lycWxvY2soY3B1KQlkbyB7IH0gd2hpbGUgKDAp DQorDQogI2Vsc2UNCiANCiAjZXJyb3IgU3VwZXItSCBTTVAgaXMgbm90IGF2 YWlsYWJsZQ0KZGlmZiAtdSAtLW5ldy1maWxlIC1yIC1YIC91c3Ivc3JjL2V4 Y2x1ZGUgL3Vzci9zcmMvbGludXgtMi40LjE5LXByZTgtYWM0L2luY2x1ZGUv YXNtLXNoL3NtcGxvY2suaCAvdXNyL3NyYy9saW51eC0yLjQuMTktcHJlOC1h YzRwL2luY2x1ZGUvYXNtLXNoL3NtcGxvY2suaA0KLS0tIC91c3Ivc3JjL2xp bnV4LTIuNC4xOS1wcmU4LWFjNC9pbmNsdWRlL2FzbS1zaC9zbXBsb2NrLmgJ U2F0IFNlcCAgOCAxNToyOTowOSAyMDAxDQorKysgL3Vzci9zcmMvbGludXgt Mi40LjE5LXByZTgtYWM0cC9pbmNsdWRlL2FzbS1zaC9zbXBsb2NrLmgJV2Vk IE1heSAxNSAxMjo0MDoyMSAyMDAyDQpAQCAtOSwxNSArOSw4OCBAQA0KIA0K ICNpbmNsdWRlIDxsaW51eC9jb25maWcuaD4NCiANCi0jaWZuZGVmIENPTkZJ R19TTVANCi0NCisjaWYgIWRlZmluZWQoQ09ORklHX1NNUCkgJiYgIWRlZmlu ZWQoQ09ORklHX1BSRUVNUFQpDQorLyoNCisgKiBTaG91bGQgbmV2ZXIgaGFw cGVuLCBzaW5jZSBsaW51eC9zbXBfbG9jay5oIGNhdGNoZXMgdGhpcyBjYXNl Ow0KKyAqIGJ1dCBpbiBjYXNlIHRoaXMgZmlsZSBpcyBpbmNsdWRlZCBkaXJl Y3RseSB3aXRoIG5laXRoZXIgU01QIG5vcg0KKyAqIFBSRUVNUFQgY29uZmln dXJhdGlvbiwgcHJvdmlkZSBzYW1lIGR1bW15cyBhcyBsaW51eC9zbXBfbG9j ay5oDQorICovDQogI2RlZmluZSBsb2NrX2tlcm5lbCgpCQkJCWRvIHsgfSB3 aGlsZSgwKQ0KICNkZWZpbmUgdW5sb2NrX2tlcm5lbCgpCQkJCWRvIHsgfSB3 aGlsZSgwKQ0KLSNkZWZpbmUgcmVsZWFzZV9rZXJuZWxfbG9jayh0YXNrLCBj cHUsIGRlcHRoKQkoKGRlcHRoKSA9IDEpDQotI2RlZmluZSByZWFjcXVpcmVf a2VybmVsX2xvY2sodGFzaywgY3B1LCBkZXB0aCkJZG8geyB9IHdoaWxlKDAp DQorI2RlZmluZSByZWxlYXNlX2tlcm5lbF9sb2NrKHRhc2ssIGNwdSkJCWRv IHsgfSB3aGlsZSgwKQ0KKyNkZWZpbmUgcmVhY3F1aXJlX2tlcm5lbF9sb2Nr KHRhc2spCQlkbyB7IH0gd2hpbGUoMCkNCisjZGVmaW5lIGtlcm5lbF9sb2Nr ZWQoKQkJMQ0KKw0KKyNlbHNlIC8qIENPTkZJR19TTVAgfHwgQ09ORklHX1BS RUVNUFQgKi8NCisNCisjaWYgQ09ORklHX1NNUA0KKyNlcnJvciAiV2UgZG8g bm90IHN1cHBvcnQgU01QIG9uIFNIIHlldCINCisjZW5kaWYNCisvKg0KKyAq IERlZmF1bHQgU01QIGxvY2sgaW1wbGVtZW50YXRpb24gKGkuZS4gdGhlIGkz ODYgdmVyc2lvbikNCisgKi8NCisNCisjaW5jbHVkZSA8bGludXgvaW50ZXJy dXB0Lmg+DQorI2luY2x1ZGUgPGxpbnV4L3NwaW5sb2NrLmg+DQorDQorZXh0 ZXJuIHNwaW5sb2NrX3Qga2VybmVsX2ZsYWc7DQorI2RlZmluZSBsb2NrX2Jr bCgpIHNwaW5fbG9jaygma2VybmVsX2ZsYWcpDQorI2RlZmluZSB1bmxvY2tf YmtsKCkgc3Bpbl91bmxvY2soJmtlcm5lbF9mbGFnKQ0KIA0KKyNpZmRlZiBD T05GSUdfU01QDQorI2RlZmluZSBrZXJuZWxfbG9ja2VkKCkJCXNwaW5faXNf bG9ja2VkKCZrZXJuZWxfZmxhZykNCisjZWxpZiAgQ09ORklHX1BSRUVNUFQN CisjZGVmaW5lIGtlcm5lbF9sb2NrZWQoKQkJcHJlZW1wdF9nZXRfY291bnQo KQ0KKyNlbHNlICAvKiBuZWl0aGVyICovDQorI2RlZmluZSBrZXJuZWxfbG9j a2VkKCkJCTENCisjZW5kaWYNCisNCisvKg0KKyAqIFJlbGVhc2UgZ2xvYmFs IGtlcm5lbCBsb2NrIGFuZCBnbG9iYWwgaW50ZXJydXB0IGxvY2sNCisgKi8N CisjZGVmaW5lIHJlbGVhc2Vfa2VybmVsX2xvY2sodGFzaywgY3B1KSBcDQor ZG8geyBcDQorCWlmICh0YXNrLT5sb2NrX2RlcHRoID49IDApIFwNCisJCXNw aW5fdW5sb2NrKCZrZXJuZWxfZmxhZyk7IFwNCisJcmVsZWFzZV9pcnFsb2Nr KGNwdSk7IFwNCisJX19zdGkoKTsgXA0KK30gd2hpbGUgKDApDQorDQorLyoN CisgKiBSZS1hY3F1aXJlIHRoZSBrZXJuZWwgbG9jaw0KKyAqLw0KKyNkZWZp bmUgcmVhY3F1aXJlX2tlcm5lbF9sb2NrKHRhc2spIFwNCitkbyB7IFwNCisJ aWYgKHRhc2stPmxvY2tfZGVwdGggPj0gMCkgXA0KKwkJc3Bpbl9sb2NrKCZr ZXJuZWxfZmxhZyk7IFwNCit9IHdoaWxlICgwKQ0KKw0KKy8qDQorICogR2V0 dGluZyB0aGUgYmlnIGtlcm5lbCBsb2NrLg0KKyAqDQorICogVGhpcyBjYW5u b3QgaGFwcGVuIGFzeW5jaHJvbm91c2x5LA0KKyAqIHNvIHdlIG9ubHkgbmVl ZCB0byB3b3JyeSBhYm91dCBvdGhlcg0KKyAqIENQVSdzLg0KKyAqLw0KK3N0 YXRpYyBfX2lubGluZV9fIHZvaWQgbG9ja19rZXJuZWwodm9pZCkNCit7DQor I2lmZGVmIENPTkZJR19QUkVFTVBUDQorCWlmIChjdXJyZW50LT5sb2NrX2Rl cHRoID09IC0xKQ0KKwkJc3Bpbl9sb2NrKCZrZXJuZWxfZmxhZyk7DQorCSsr Y3VycmVudC0+bG9ja19kZXB0aDsNCiAjZWxzZQ0KLSNlcnJvciAiV2UgZG8g bm90IHN1cHBvcnQgU01QIG9uIFNIIg0KLSNlbmRpZiAvKiBDT05GSUdfU01Q ICovDQorCWlmICghKytjdXJyZW50LT5sb2NrX2RlcHRoKQ0KKwkJc3Bpbl9s b2NrKCZrZXJuZWxfZmxhZyk7DQorI2VuZGlmDQorfQ0KKw0KK3N0YXRpYyBf X2lubGluZV9fIHZvaWQgdW5sb2NrX2tlcm5lbCh2b2lkKQ0KK3sNCisJaWYg KGN1cnJlbnQtPmxvY2tfZGVwdGggPCAwKQ0KKwkJQlVHKCk7DQorCWlmICgt LWN1cnJlbnQtPmxvY2tfZGVwdGggPCAwKQ0KKwkJc3Bpbl91bmxvY2soJmtl cm5lbF9mbGFnKTsNCit9DQorI2VuZGlmIC8qIENPTkZJR19TTVAgfHwgQ09O RklHX1BSRUVNUFQgKi8NCiANCiAjZW5kaWYgLyogX19BU01fU0hfU01QTE9D S19IICovDQpkaWZmIC11IC0tbmV3LWZpbGUgLXIgLVggL3Vzci9zcmMvZXhj bHVkZSAvdXNyL3NyYy9saW51eC0yLjQuMTktcHJlOC1hYzQvaW5jbHVkZS9h c20tc2gvc29mdGlycS5oIC91c3Ivc3JjL2xpbnV4LTIuNC4xOS1wcmU4LWFj NHAvaW5jbHVkZS9hc20tc2gvc29mdGlycS5oDQotLS0gL3Vzci9zcmMvbGlu dXgtMi40LjE5LXByZTgtYWM0L2luY2x1ZGUvYXNtLXNoL3NvZnRpcnEuaAlT YXQgU2VwICA4IDE1OjI5OjA5IDIwMDENCisrKyAvdXNyL3NyYy9saW51eC0y LjQuMTktcHJlOC1hYzRwL2luY2x1ZGUvYXNtLXNoL3NvZnRpcnEuaAlXZWQg TWF5IDE1IDEyOjQwOjIxIDIwMDINCkBAIC02LDYgKzYsNyBAQA0KIA0KICNk ZWZpbmUgbG9jYWxfYmhfZGlzYWJsZSgpCQkJXA0KIGRvIHsJCQkJCQlcDQor CXByZWVtcHRfZGlzYWJsZSgpOwkJCVwNCiAJbG9jYWxfYmhfY291bnQoc21w X3Byb2Nlc3Nvcl9pZCgpKSsrOwlcDQogCWJhcnJpZXIoKTsJCQkJXA0KIH0g d2hpbGUgKDApDQpAQCAtMTQsNiArMTUsNyBAQA0KIGRvIHsJCQkJCQlcDQog CWJhcnJpZXIoKTsJCQkJXA0KIAlsb2NhbF9iaF9jb3VudChzbXBfcHJvY2Vz c29yX2lkKCkpLS07CVwNCisJcHJlZW1wdF9lbmFibGUoKTsJCQlcDQogfSB3 aGlsZSAoMCkNCiANCiAjZGVmaW5lIGxvY2FsX2JoX2VuYWJsZSgpCQkJCVwN CkBAIC0yMyw2ICsyNSw3IEBADQogCSAgICAmJiBzb2Z0aXJxX3BlbmRpbmco c21wX3Byb2Nlc3Nvcl9pZCgpKSkgewlcDQogCQlkb19zb2Z0aXJxKCk7CQkJ CVwNCiAJfQkJCQkJCVwNCisJcHJlZW1wdF9lbmFibGUoKTsJCQkJXA0KIH0g d2hpbGUgKDApDQogDQogI2RlZmluZSBpbl9zb2Z0aXJxKCkgKGxvY2FsX2Jo X2NvdW50KHNtcF9wcm9jZXNzb3JfaWQoKSkgIT0gMCkNCmRpZmYgLXUgLS1u ZXctZmlsZSAtciAtWCAvdXNyL3NyYy9leGNsdWRlIC91c3Ivc3JjL2xpbnV4 LTIuNC4xOS1wcmU4LWFjNC9pbmNsdWRlL2xpbnV4L2JybG9jay5oIC91c3Iv c3JjL2xpbnV4LTIuNC4xOS1wcmU4LWFjNHAvaW5jbHVkZS9saW51eC9icmxv Y2suaA0KLS0tIC91c3Ivc3JjL2xpbnV4LTIuNC4xOS1wcmU4LWFjNC9pbmNs dWRlL2xpbnV4L2JybG9jay5oCVdlZCBNYXkgMTUgMTI6MTM6MzYgMjAwMg0K KysrIC91c3Ivc3JjL2xpbnV4LTIuNC4xOS1wcmU4LWFjNHAvaW5jbHVkZS9s aW51eC9icmxvY2suaAlXZWQgTWF5IDE1IDEyOjQwOjIxIDIwMDINCkBAIC0x NzMsMTEgKzE3MywxMSBAQA0KIH0NCiANCiAjZWxzZQ0KLSMgZGVmaW5lIGJy X3JlYWRfbG9jayhpZHgpCSgodm9pZCkoaWR4KSkNCi0jIGRlZmluZSBicl9y ZWFkX3VubG9jayhpZHgpCSgodm9pZCkoaWR4KSkNCi0jIGRlZmluZSBicl93 cml0ZV9sb2NrKGlkeCkJKCh2b2lkKShpZHgpKQ0KLSMgZGVmaW5lIGJyX3dy aXRlX3VubG9jayhpZHgpCSgodm9pZCkoaWR4KSkNCi0jZW5kaWYNCisjIGRl ZmluZSBicl9yZWFkX2xvY2soaWR4KQkoeyAodm9pZCkoaWR4KTsgcHJlZW1w dF9kaXNhYmxlKCk7IH0pDQorIyBkZWZpbmUgYnJfcmVhZF91bmxvY2soaWR4 KQkoeyAodm9pZCkoaWR4KTsgcHJlZW1wdF9lbmFibGUoKTsgfSkNCisjIGRl ZmluZSBicl93cml0ZV9sb2NrKGlkeCkJKHsgKHZvaWQpKGlkeCk7IHByZWVt cHRfZGlzYWJsZSgpOyB9KQ0KKyMgZGVmaW5lIGJyX3dyaXRlX3VubG9jayhp ZHgpCSh7ICh2b2lkKShpZHgpOyBwcmVlbXB0X2VuYWJsZSgpOyB9KQ0KKyNl bmRpZgkvKiBDT05GSUdfU01QICovDQogDQogLyoNCiAgKiBOb3cgZW51bWVy YXRlIGFsbCBvZiB0aGUgcG9zc2libGUgc3cvaHcgSVJRIHByb3RlY3RlZA0K ZGlmZiAtdSAtLW5ldy1maWxlIC1yIC1YIC91c3Ivc3JjL2V4Y2x1ZGUgL3Vz ci9zcmMvbGludXgtMi40LjE5LXByZTgtYWM0L2luY2x1ZGUvbGludXgvZGNh Y2hlLmggL3Vzci9zcmMvbGludXgtMi40LjE5LXByZTgtYWM0cC9pbmNsdWRl L2xpbnV4L2RjYWNoZS5oDQotLS0gL3Vzci9zcmMvbGludXgtMi40LjE5LXBy ZTgtYWM0L2luY2x1ZGUvbGludXgvZGNhY2hlLmgJV2VkIE1heSAxNSAxMjox MzozNiAyMDAyDQorKysgL3Vzci9zcmMvbGludXgtMi40LjE5LXByZTgtYWM0 cC9pbmNsdWRlL2xpbnV4L2RjYWNoZS5oCVdlZCBNYXkgMTUgMTI6NDA6MjEg MjAwMg0KQEAgLTEyNiwzMSArMTI2LDYgQEANCiANCiBleHRlcm4gc3Bpbmxv Y2tfdCBkY2FjaGVfbG9jazsNCiANCi0vKioNCi0gKiBkX2Ryb3AgLSBkcm9w IGEgZGVudHJ5DQotICogQGRlbnRyeTogZGVudHJ5IHRvIGRyb3ANCi0gKg0K LSAqIGRfZHJvcCgpIHVuaGFzaGVzIHRoZSBlbnRyeSBmcm9tIHRoZSBwYXJl bnQNCi0gKiBkZW50cnkgaGFzaGVzLCBzbyB0aGF0IGl0IHdvbid0IGJlIGZv dW5kIHRocm91Z2gNCi0gKiBhIFZGUyBsb29rdXAgYW55IG1vcmUuIE5vdGUg dGhhdCB0aGlzIGlzIGRpZmZlcmVudA0KLSAqIGZyb20gZGVsZXRpbmcgdGhl IGRlbnRyeSAtIGRfZGVsZXRlIHdpbGwgdHJ5IHRvDQotICogbWFyayB0aGUg ZGVudHJ5IG5lZ2F0aXZlIGlmIHBvc3NpYmxlLCBnaXZpbmcgYQ0KLSAqIHN1 Y2Nlc3NmdWwgX25lZ2F0aXZlXyBsb29rdXAsIHdoaWxlIGRfZHJvcCB3aWxs DQotICoganVzdCBtYWtlIHRoZSBjYWNoZSBsb29rdXAgZmFpbC4NCi0gKg0K LSAqIGRfZHJvcCgpIGlzIHVzZWQgbWFpbmx5IGZvciBzdHVmZiB0aGF0IHdh bnRzDQotICogdG8gaW52YWxpZGF0ZSBhIGRlbnRyeSBmb3Igc29tZSByZWFz b24gKE5GUw0KLSAqIHRpbWVvdXRzIG9yIGF1dG9mcyBkZWxldGVzKS4NCi0g Ki8NCi0NCi1zdGF0aWMgX19pbmxpbmVfXyB2b2lkIGRfZHJvcChzdHJ1Y3Qg ZGVudHJ5ICogZGVudHJ5KQ0KLXsNCi0Jc3Bpbl9sb2NrKCZkY2FjaGVfbG9j ayk7DQotCWxpc3RfZGVsKCZkZW50cnktPmRfaGFzaCk7DQotCUlOSVRfTElT VF9IRUFEKCZkZW50cnktPmRfaGFzaCk7DQotCXNwaW5fdW5sb2NrKCZkY2Fj aGVfbG9jayk7DQotfQ0KLQ0KIHN0YXRpYyBfX2lubGluZV9fIGludCBkbmFt ZV9leHRlcm5hbChzdHJ1Y3QgZGVudHJ5ICpkKQ0KIHsNCiAJcmV0dXJuIGQt PmRfbmFtZS5uYW1lICE9IGQtPmRfaW5hbWU7IA0KQEAgLTI3NSwzICsyNTAs MzQgQEANCiAjZW5kaWYgLyogX19LRVJORUxfXyAqLw0KIA0KICNlbmRpZgkv KiBfX0xJTlVYX0RDQUNIRV9IICovDQorDQorI2lmICFkZWZpbmVkKF9fTElO VVhfRENBQ0hFX0hfSU5MSU5FUykgJiYgZGVmaW5lZChfVEFTS19TVFJVQ1Rf REVGSU5FRCkNCisjZGVmaW5lIF9fTElOVVhfRENBQ0hFX0hfSU5MSU5FUw0K Kw0KKyNpZmRlZiBfX0tFUk5FTF9fDQorLyoqDQorICogZF9kcm9wIC0gZHJv cCBhIGRlbnRyeQ0KKyAqIEBkZW50cnk6IGRlbnRyeSB0byBkcm9wDQorICoN CisgKiBkX2Ryb3AoKSB1bmhhc2hlcyB0aGUgZW50cnkgZnJvbSB0aGUgcGFy ZW50DQorICogZGVudHJ5IGhhc2hlcywgc28gdGhhdCBpdCB3b24ndCBiZSBm b3VuZCB0aHJvdWdoDQorICogYSBWRlMgbG9va3VwIGFueSBtb3JlLiBOb3Rl IHRoYXQgdGhpcyBpcyBkaWZmZXJlbnQNCisgKiBmcm9tIGRlbGV0aW5nIHRo ZSBkZW50cnkgLSBkX2RlbGV0ZSB3aWxsIHRyeSB0bw0KKyAqIG1hcmsgdGhl IGRlbnRyeSBuZWdhdGl2ZSBpZiBwb3NzaWJsZSwgZ2l2aW5nIGENCisgKiBz dWNjZXNzZnVsIF9uZWdhdGl2ZV8gbG9va3VwLCB3aGlsZSBkX2Ryb3Agd2ls bA0KKyAqIGp1c3QgbWFrZSB0aGUgY2FjaGUgbG9va3VwIGZhaWwuDQorICoN CisgKiBkX2Ryb3AoKSBpcyB1c2VkIG1haW5seSBmb3Igc3R1ZmYgdGhhdCB3 YW50cw0KKyAqIHRvIGludmFsaWRhdGUgYSBkZW50cnkgZm9yIHNvbWUgcmVh c29uIChORlMNCisgKiB0aW1lb3V0cyBvciBhdXRvZnMgZGVsZXRlcykuDQor ICovDQorDQorc3RhdGljIF9faW5saW5lX18gdm9pZCBkX2Ryb3Aoc3RydWN0 IGRlbnRyeSAqIGRlbnRyeSkNCit7DQorCXNwaW5fbG9jaygmZGNhY2hlX2xv Y2spOw0KKwlsaXN0X2RlbCgmZGVudHJ5LT5kX2hhc2gpOw0KKwlJTklUX0xJ U1RfSEVBRCgmZGVudHJ5LT5kX2hhc2gpOw0KKwlzcGluX3VubG9jaygmZGNh Y2hlX2xvY2spOw0KK30NCisjZW5kaWYNCisjZW5kaWYNCmRpZmYgLXUgLS1u ZXctZmlsZSAtciAtWCAvdXNyL3NyYy9leGNsdWRlIC91c3Ivc3JjL2xpbnV4 LTIuNC4xOS1wcmU4LWFjNC9pbmNsdWRlL2xpbnV4L2ZzX3N0cnVjdC5oIC91 c3Ivc3JjL2xpbnV4LTIuNC4xOS1wcmU4LWFjNHAvaW5jbHVkZS9saW51eC9m c19zdHJ1Y3QuaA0KLS0tIC91c3Ivc3JjL2xpbnV4LTIuNC4xOS1wcmU4LWFj NC9pbmNsdWRlL2xpbnV4L2ZzX3N0cnVjdC5oCUZyaSBKdWwgMTMgMTg6MTA6 NDQgMjAwMQ0KKysrIC91c3Ivc3JjL2xpbnV4LTIuNC4xOS1wcmU4LWFjNHAv aW5jbHVkZS9saW51eC9mc19zdHJ1Y3QuaAlXZWQgTWF5IDE1IDEyOjQwOjIx IDIwMDINCkBAIC0yMCw2ICsyMCwxNSBAQA0KIGV4dGVybiB2b2lkIGV4aXRf ZnMoc3RydWN0IHRhc2tfc3RydWN0ICopOw0KIGV4dGVybiB2b2lkIHNldF9m c19hbHRyb290KHZvaWQpOw0KIA0KK3N0cnVjdCBmc19zdHJ1Y3QgKmNvcHlf ZnNfc3RydWN0KHN0cnVjdCBmc19zdHJ1Y3QgKm9sZCk7DQordm9pZCBwdXRf ZnNfc3RydWN0KHN0cnVjdCBmc19zdHJ1Y3QgKmZzKTsNCisNCisjZW5kaWYN CisjZW5kaWYNCisNCisjaWYgIWRlZmluZWQoX0xJTlVYX0ZTX1NUUlVDVF9I X0lOTElORVMpICYmIGRlZmluZWQoX1RBU0tfU1RSVUNUX0RFRklORUQpDQor I2RlZmluZSBfTElOVVhfRlNfU1RSVUNUX0hfSU5MSU5FUw0KKyNpZmRlZiBf X0tFUk5FTF9fDQogLyoNCiAgKiBSZXBsYWNlIHRoZSBmcy0+e3Jvb3RtbnQs cm9vdH0gd2l0aCB7bW50LGRlbnRyeX0uIFB1dCB0aGUgb2xkIHZhbHVlcy4N CiAgKiBJdCBjYW4gYmxvY2suIFJlcXVpcmVzIHRoZSBiaWcgbG9jayBoZWxk Lg0KQEAgLTY1LDkgKzc0LDUgQEANCiAJCW1udHB1dChvbGRfcHdkbW50KTsN CiAJfQ0KIH0NCi0NCi1zdHJ1Y3QgZnNfc3RydWN0ICpjb3B5X2ZzX3N0cnVj dChzdHJ1Y3QgZnNfc3RydWN0ICpvbGQpOw0KLXZvaWQgcHV0X2ZzX3N0cnVj dChzdHJ1Y3QgZnNfc3RydWN0ICpmcyk7DQotDQogI2VuZGlmDQogI2VuZGlm DQpkaWZmIC11IC0tbmV3LWZpbGUgLXIgLVggL3Vzci9zcmMvZXhjbHVkZSAv dXNyL3NyYy9saW51eC0yLjQuMTktcHJlOC1hYzQvaW5jbHVkZS9saW51eC9r ZXJuZWxfc3RhdC5oIC91c3Ivc3JjL2xpbnV4LTIuNC4xOS1wcmU4LWFjNHAv aW5jbHVkZS9saW51eC9rZXJuZWxfc3RhdC5oDQotLS0gL3Vzci9zcmMvbGlu dXgtMi40LjE5LXByZTgtYWM0L2luY2x1ZGUvbGludXgva2VybmVsX3N0YXQu aAlXZWQgTWF5IDE1IDEyOjEzOjM2IDIwMDINCisrKyAvdXNyL3NyYy9saW51 eC0yLjQuMTktcHJlOC1hYzRwL2luY2x1ZGUvbGludXgva2VybmVsX3N0YXQu aAlXZWQgTWF5IDE1IDEyOjQwOjIxIDIwMDINCkBAIC0xOCw3ICsxOCw4IEBA DQogc3RydWN0IGtlcm5lbF9zdGF0IHsNCiAJdW5zaWduZWQgaW50IHBlcl9j cHVfdXNlcltOUl9DUFVTXSwNCiAJICAgICAgICAgICAgIHBlcl9jcHVfbmlj ZVtOUl9DUFVTXSwNCi0JICAgICAgICAgICAgIHBlcl9jcHVfc3lzdGVtW05S X0NQVVNdOw0KKwkgICAgICAgICAgICAgcGVyX2NwdV9zeXN0ZW1bTlJfQ1BV U10sDQorCSAgICAgICAgICAgICBwZXJfY3B1X2lvd2FpdFtOUl9DUFVTXTsN CiAJdW5zaWduZWQgaW50IGRrX2RyaXZlW0RLX01BWF9NQUpPUl1bREtfTUFY X0RJU0tdOw0KIAl1bnNpZ25lZCBpbnQgZGtfZHJpdmVfcmlvW0RLX01BWF9N QUpPUl1bREtfTUFYX0RJU0tdOw0KIAl1bnNpZ25lZCBpbnQgZGtfZHJpdmVf d2lvW0RLX01BWF9NQUpPUl1bREtfTUFYX0RJU0tdOw0KZGlmZiAtdSAtLW5l dy1maWxlIC1yIC1YIC91c3Ivc3JjL2V4Y2x1ZGUgL3Vzci9zcmMvbGludXgt Mi40LjE5LXByZTgtYWM0L2luY2x1ZGUvbGludXgvc2NoZWQuaCAvdXNyL3Ny Yy9saW51eC0yLjQuMTktcHJlOC1hYzRwL2luY2x1ZGUvbGludXgvc2NoZWQu aA0KLS0tIC91c3Ivc3JjL2xpbnV4LTIuNC4xOS1wcmU4LWFjNC9pbmNsdWRl L2xpbnV4L3NjaGVkLmgJV2VkIE1heSAxNSAxMjoxMzozNiAyMDAyDQorKysg L3Vzci9zcmMvbGludXgtMi40LjE5LXByZTgtYWM0cC9pbmNsdWRlL2xpbnV4 L3NjaGVkLmgJV2VkIE1heSAxNSAxMjo0MDoyMSAyMDAyDQpAQCAtOTEsNiAr OTEsNyBAQA0KICNkZWZpbmUgVEFTS19VTklOVEVSUlVQVElCTEUJMg0KICNk ZWZpbmUgVEFTS19aT01CSUUJCTQNCiAjZGVmaW5lIFRBU0tfU1RPUFBFRAkJ OA0KKyNkZWZpbmUgUFJFRU1QVF9BQ1RJVkUJCTB4NDAwMDAwMA0KIA0KICNk ZWZpbmUgX19zZXRfdGFza19zdGF0ZSh0c2ssIHN0YXRlX3ZhbHVlKQkJXA0K IAlkbyB7ICh0c2spLT5zdGF0ZSA9IChzdGF0ZV92YWx1ZSk7IH0gd2hpbGUg KDApDQpAQCAtMTU2LDYgKzE1Nyw5IEBADQogI2RlZmluZQlNQVhfU0NIRURV TEVfVElNRU9VVAlMT05HX01BWA0KIGV4dGVybiBzaWduZWQgbG9uZyBGQVNU Q0FMTChzY2hlZHVsZV90aW1lb3V0KHNpZ25lZCBsb25nIHRpbWVvdXQpKTsN CiBhc21saW5rYWdlIHZvaWQgc2NoZWR1bGUodm9pZCk7DQorI2lmZGVmIENP TkZJR19QUkVFTVBUDQorYXNtbGlua2FnZSB2b2lkIHByZWVtcHRfc2NoZWR1 bGUodm9pZCk7DQorI2VuZGlmDQogDQogZXh0ZXJuIGludCBzY2hlZHVsZV90 YXNrKHN0cnVjdCB0cV9zdHJ1Y3QgKnRhc2spOw0KIGV4dGVybiB2b2lkIGZs dXNoX3NjaGVkdWxlZF90YXNrcyh2b2lkKTsNCkBAIC0yOTEsNyArMjk1LDcg QEANCiAJICogb2Zmc2V0cyBvZiB0aGVzZSBhcmUgaGFyZGNvZGVkIGVsc2V3 aGVyZSAtIHRvdWNoIHdpdGggY2FyZQ0KIAkgKi8NCiAJdm9sYXRpbGUgbG9u ZyBzdGF0ZTsJLyogLTEgdW5ydW5uYWJsZSwgMCBydW5uYWJsZSwgPjAgc3Rv cHBlZCAqLw0KLQl1bnNpZ25lZCBsb25nIGZsYWdzOwkvKiBwZXIgcHJvY2Vz cyBmbGFncywgZGVmaW5lZCBiZWxvdyAqLw0KKwlpbnQgcHJlZW1wdF9jb3Vu dDsJLyogMCA9PiBwcmVlbXB0YWJsZSwgPDAgPT4gQlVHICovDQogCWludCBz aWdwZW5kaW5nOw0KIAltbV9zZWdtZW50X3QgYWRkcl9saW1pdDsJLyogdGhy ZWFkIGFkZHJlc3Mgc3BhY2U6DQogCQkJCQkgCTAtMHhCRkZGRkZGRiBmb3Ig dXNlci10aGVhZA0KQEAgLTMxNyw2ICszMjEsNyBAQA0KIAl1bnNpZ25lZCBs b25nIHBvbGljeTsNCiAJdW5zaWduZWQgbG9uZyBjcHVzX2FsbG93ZWQ7DQog CXVuc2lnbmVkIGludCB0aW1lX3NsaWNlOw0KKwl1bnNpZ25lZCBsb25nIGZs YWdzOw0KIA0KIAl0YXNrX3QgKm5leHRfdGFzaywgKnByZXZfdGFzazsNCiAN CkBAIC0zNTgsNiArMzYzLDcgQEANCiAJc3RydWN0IHRtcyB0aW1lczsNCiAJ dW5zaWduZWQgbG9uZyBzdGFydF90aW1lOw0KIAlsb25nIHBlcl9jcHVfdXRp bWVbTlJfQ1BVU10sIHBlcl9jcHVfc3RpbWVbTlJfQ1BVU107DQorCWxvbmcg cGVyX2NwdV9pb3dhaXRbTlJfQ1BVU107DQogLyogbW0gZmF1bHQgYW5kIHN3 YXAgaW5mbzogdGhpcyBjYW4gYXJndWFibHkgYmUgc2VlbiBhcyBlaXRoZXIg bW0tc3BlY2lmaWMgb3IgdGhyZWFkLXNwZWNpZmljICovDQogCXVuc2lnbmVk IGxvbmcgbWluX2ZsdCwgbWFqX2ZsdCwgbnN3YXAsIGNtaW5fZmx0LCBjbWFq X2ZsdCwgY25zd2FwOw0KIAlpbnQgc3dhcHBhYmxlOjE7DQpAQCAtOTQyLDYg Kzk0OCwxMSBAQA0KIHsNCiAJcmV0dXJuIHVubGlrZWx5KGN1cnJlbnQtPm5l ZWRfcmVzY2hlZCk7DQogfQ0KKw0KKyNkZWZpbmUgX1RBU0tfU1RSVUNUX0RF RklORUQNCisjaW5jbHVkZSA8bGludXgvZGNhY2hlLmg+DQorI2luY2x1ZGUg PGxpbnV4L3RxdWV1ZS5oPg0KKyNpbmNsdWRlIDxsaW51eC9mc19zdHJ1Y3Qu aD4NCiANCiAjZW5kaWYgLyogX19LRVJORUxfXyAqLw0KIA0KZGlmZiAtdSAt LW5ldy1maWxlIC1yIC1YIC91c3Ivc3JjL2V4Y2x1ZGUgL3Vzci9zcmMvbGlu dXgtMi40LjE5LXByZTgtYWM0L2luY2x1ZGUvbGludXgvc21wLmggL3Vzci9z cmMvbGludXgtMi40LjE5LXByZTgtYWM0cC9pbmNsdWRlL2xpbnV4L3NtcC5o DQotLS0gL3Vzci9zcmMvbGludXgtMi40LjE5LXByZTgtYWM0L2luY2x1ZGUv bGludXgvc21wLmgJV2VkIE1heSAxNSAxMjoxMzozNiAyMDAyDQorKysgL3Vz ci9zcmMvbGludXgtMi40LjE5LXByZTgtYWM0cC9pbmNsdWRlL2xpbnV4L3Nt cC5oCVdlZCBNYXkgMTUgMTI6NDA6MjEgMjAwMg0KQEAgLTgxLDcgKzgxLDkg QEANCiAjZGVmaW5lIHNtcF9wcm9jZXNzb3JfaWQoKQkJCTANCiAjZGVmaW5l IGhhcmRfc21wX3Byb2Nlc3Nvcl9pZCgpCQkJMA0KICNkZWZpbmUgc21wX3Ro cmVhZHNfcmVhZHkJCQkxDQorI2lmbmRlZiBDT05GSUdfUFJFRU1QVA0KICNk ZWZpbmUga2VybmVsX2xvY2soKQ0KKyNlbmRpZg0KICNkZWZpbmUgY3B1X2xv Z2ljYWxfbWFwKGNwdSkJCQkwDQogI2RlZmluZSBjcHVfbnVtYmVyX21hcChj cHUpCQkJMA0KICNkZWZpbmUgc21wX2NhbGxfZnVuY3Rpb24oZnVuYyxpbmZv LHJldHJ5LHdhaXQpCSh7IDA7IH0pDQpkaWZmIC11IC0tbmV3LWZpbGUgLXIg LVggL3Vzci9zcmMvZXhjbHVkZSAvdXNyL3NyYy9saW51eC0yLjQuMTktcHJl OC1hYzQvaW5jbHVkZS9saW51eC9zbXBfbG9jay5oIC91c3Ivc3JjL2xpbnV4 LTIuNC4xOS1wcmU4LWFjNHAvaW5jbHVkZS9saW51eC9zbXBfbG9jay5oDQot LS0gL3Vzci9zcmMvbGludXgtMi40LjE5LXByZTgtYWM0L2luY2x1ZGUvbGlu dXgvc21wX2xvY2suaAlUaHUgTm92IDIyIDE0OjQ2OjI3IDIwMDENCisrKyAv dXNyL3NyYy9saW51eC0yLjQuMTktcHJlOC1hYzRwL2luY2x1ZGUvbGludXgv c21wX2xvY2suaAlXZWQgTWF5IDE1IDEyOjQwOjIxIDIwMDINCkBAIC0zLDcg KzMsNyBAQA0KIA0KICNpbmNsdWRlIDxsaW51eC9jb25maWcuaD4NCiANCi0j aWZuZGVmIENPTkZJR19TTVANCisjaWYgIWRlZmluZWQoQ09ORklHX1NNUCkg JiYgIWRlZmluZWQoQ09ORklHX1BSRUVNUFQpDQogDQogI2RlZmluZSBsb2Nr X2tlcm5lbCgpCQkJCWRvIHsgfSB3aGlsZSgwKQ0KICNkZWZpbmUgdW5sb2Nr X2tlcm5lbCgpCQkJCWRvIHsgfSB3aGlsZSgwKQ0KZGlmZiAtdSAtLW5ldy1m aWxlIC1yIC1YIC91c3Ivc3JjL2V4Y2x1ZGUgL3Vzci9zcmMvbGludXgtMi40 LjE5LXByZTgtYWM0L2luY2x1ZGUvbGludXgvc3BpbmxvY2suaCAvdXNyL3Ny Yy9saW51eC0yLjQuMTktcHJlOC1hYzRwL2luY2x1ZGUvbGludXgvc3Bpbmxv Y2suaA0KLS0tIC91c3Ivc3JjL2xpbnV4LTIuNC4xOS1wcmU4LWFjNC9pbmNs dWRlL2xpbnV4L3NwaW5sb2NrLmgJV2VkIE1heSAxNSAxMjoxMzozNiAyMDAy DQorKysgL3Vzci9zcmMvbGludXgtMi40LjE5LXByZTgtYWM0cC9pbmNsdWRl L2xpbnV4L3NwaW5sb2NrLmgJV2VkIE1heSAxNSAxMjo0MDoyMSAyMDAyDQpA QCAtMiw2ICsyLDcgQEANCiAjZGVmaW5lIF9fTElOVVhfU1BJTkxPQ0tfSA0K IA0KICNpbmNsdWRlIDxsaW51eC9jb25maWcuaD4NCisjaW5jbHVkZSA8bGlu dXgvY29tcGlsZXIuaD4NCiANCiAvKg0KICAqIFRoZXNlIGFyZSB0aGUgZ2Vu ZXJpYyB2ZXJzaW9ucyBvZiB0aGUgc3BpbmxvY2tzIGFuZCByZWFkLXdyaXRl DQpAQCAtNjIsOCArNjMsMTAgQEANCiANCiAjaWYgKERFQlVHX1NQSU5MT0NL UyA8IDEpDQogDQorI2lmbmRlZiBDT05GSUdfUFJFRU1QVA0KICNkZWZpbmUg YXRvbWljX2RlY19hbmRfbG9jayhhdG9taWMsbG9jaykgYXRvbWljX2RlY19h bmRfdGVzdChhdG9taWMpDQogI2RlZmluZSBBVE9NSUNfREVDX0FORF9MT0NL DQorI2VuZGlmDQogDQogLyoNCiAgKiBZb3VyIGJhc2ljIHNwaW5sb2Nrcywg YWxsb3dpbmcgb25seSBhIHNpbmdsZSBDUFUgYW55d2hlcmUNCkBAIC03OSwx MSArODIsMTEgQEANCiAjZW5kaWYNCiANCiAjZGVmaW5lIHNwaW5fbG9ja19p bml0KGxvY2spCWRvIHsgfSB3aGlsZSgwKQ0KLSNkZWZpbmUgc3Bpbl9sb2Nr KGxvY2spCQkodm9pZCkobG9jaykgLyogTm90ICJ1bnVzZWQgdmFyaWFibGUi LiAqLw0KKyNkZWZpbmUgX3Jhd19zcGluX2xvY2sobG9jaykJKHZvaWQpKGxv Y2spIC8qIE5vdCAidW51c2VkIHZhcmlhYmxlIi4gKi8NCiAjZGVmaW5lIHNw aW5faXNfbG9ja2VkKGxvY2spCSgwKQ0KLSNkZWZpbmUgc3Bpbl90cnlsb2Nr KGxvY2spCSh7MTsgfSkNCisjZGVmaW5lIF9yYXdfc3Bpbl90cnlsb2NrKGxv Y2spCSh7MTsgfSkNCiAjZGVmaW5lIHNwaW5fdW5sb2NrX3dhaXQobG9jaykJ ZG8geyB9IHdoaWxlKDApDQotI2RlZmluZSBzcGluX3VubG9jayhsb2NrKQlk byB7IH0gd2hpbGUoMCkNCisjZGVmaW5lIF9yYXdfc3Bpbl91bmxvY2sobG9j aykJZG8geyB9IHdoaWxlKDApDQogDQogI2VsaWYgKERFQlVHX1NQSU5MT0NL UyA8IDIpDQogDQpAQCAtMTQyLDEyICsxNDUsNzUgQEANCiAjZW5kaWYNCiAN CiAjZGVmaW5lIHJ3bG9ja19pbml0KGxvY2spCWRvIHsgfSB3aGlsZSgwKQ0K LSNkZWZpbmUgcmVhZF9sb2NrKGxvY2spCQkodm9pZCkobG9jaykgLyogTm90 ICJ1bnVzZWQgdmFyaWFibGUiLiAqLw0KLSNkZWZpbmUgcmVhZF91bmxvY2so bG9jaykJZG8geyB9IHdoaWxlKDApDQotI2RlZmluZSB3cml0ZV9sb2NrKGxv Y2spCSh2b2lkKShsb2NrKSAvKiBOb3QgInVudXNlZCB2YXJpYWJsZSIuICov DQotI2RlZmluZSB3cml0ZV91bmxvY2sobG9jaykJZG8geyB9IHdoaWxlKDAp DQorI2RlZmluZSBfcmF3X3JlYWRfbG9jayhsb2NrKQkodm9pZCkobG9jaykg LyogTm90ICJ1bnVzZWQgdmFyaWFibGUiLiAqLw0KKyNkZWZpbmUgX3Jhd19y ZWFkX3VubG9jayhsb2NrKQlkbyB7IH0gd2hpbGUoMCkNCisjZGVmaW5lIF9y YXdfd3JpdGVfbG9jayhsb2NrKQkodm9pZCkobG9jaykgLyogTm90ICJ1bnVz ZWQgdmFyaWFibGUiLiAqLw0KKyNkZWZpbmUgX3Jhd193cml0ZV91bmxvY2so bG9jaykJZG8geyB9IHdoaWxlKDApDQogDQogI2VuZGlmIC8qICFTTVAgKi8N CisNCisjaWZkZWYgQ09ORklHX1BSRUVNUFQNCisNCisjZGVmaW5lIHByZWVt cHRfZ2V0X2NvdW50KCkgKGN1cnJlbnQtPnByZWVtcHRfY291bnQpDQorDQor I2RlZmluZSBwcmVlbXB0X2Rpc2FibGUoKSBcDQorZG8geyBcDQorCSsrY3Vy cmVudC0+cHJlZW1wdF9jb3VudDsgXA0KKwliYXJyaWVyKCk7IFwNCit9IHdo aWxlICgwKQ0KKw0KKyNkZWZpbmUgcHJlZW1wdF9lbmFibGVfbm9fcmVzY2hl ZCgpIFwNCitkbyB7IFwNCisJLS1jdXJyZW50LT5wcmVlbXB0X2NvdW50OyBc DQorCWJhcnJpZXIoKTsgXA0KK30gd2hpbGUgKDApDQorDQorI2RlZmluZSBw cmVlbXB0X2VuYWJsZSgpIFwNCitkbyB7IFwNCisJLS1jdXJyZW50LT5wcmVl bXB0X2NvdW50OyBcDQorCWJhcnJpZXIoKTsgXA0KKwlpZiAodW5saWtlbHko Y3VycmVudC0+cHJlZW1wdF9jb3VudCA8IGN1cnJlbnQtPm5lZWRfcmVzY2hl ZCkpIFwNCisJCXByZWVtcHRfc2NoZWR1bGUoKTsgXA0KK30gd2hpbGUgKDAp DQorDQorI2RlZmluZSBzcGluX2xvY2sobG9jaykJXA0KK2RvIHsgXA0KKwlw cmVlbXB0X2Rpc2FibGUoKTsgXA0KKwlfcmF3X3NwaW5fbG9jayhsb2NrKTsg XA0KK30gd2hpbGUoMCkNCisNCisjZGVmaW5lIHNwaW5fdHJ5bG9jayhsb2Nr KQkoe3ByZWVtcHRfZGlzYWJsZSgpOyBfcmF3X3NwaW5fdHJ5bG9jayhsb2Nr KSA/IFwNCisJCQkJMSA6ICh7cHJlZW1wdF9lbmFibGUoKTsgMDt9KTt9KQ0K KyNkZWZpbmUgc3Bpbl91bmxvY2sobG9jaykgXA0KK2RvIHsgXA0KKwlfcmF3 X3NwaW5fdW5sb2NrKGxvY2spOyBcDQorCXByZWVtcHRfZW5hYmxlKCk7IFwN Cit9IHdoaWxlICgwKQ0KKw0KKyNkZWZpbmUgcmVhZF9sb2NrKGxvY2spCQko e3ByZWVtcHRfZGlzYWJsZSgpOyBfcmF3X3JlYWRfbG9jayhsb2NrKTt9KQ0K KyNkZWZpbmUgcmVhZF91bmxvY2sobG9jaykJKHtfcmF3X3JlYWRfdW5sb2Nr KGxvY2spOyBwcmVlbXB0X2VuYWJsZSgpO30pDQorI2RlZmluZSB3cml0ZV9s b2NrKGxvY2spCSh7cHJlZW1wdF9kaXNhYmxlKCk7IF9yYXdfd3JpdGVfbG9j ayhsb2NrKTt9KQ0KKyNkZWZpbmUgd3JpdGVfdW5sb2NrKGxvY2spCSh7X3Jh d193cml0ZV91bmxvY2sobG9jayk7IHByZWVtcHRfZW5hYmxlKCk7fSkNCisj ZGVmaW5lIHdyaXRlX3RyeWxvY2sobG9jaykJKHtwcmVlbXB0X2Rpc2FibGUo KTtfcmF3X3dyaXRlX3RyeWxvY2sobG9jaykgPyBcDQorCQkJCTEgOiAoe3By ZWVtcHRfZW5hYmxlKCk7IDA7fSk7fSkNCisNCisjZWxzZQ0KKw0KKyNkZWZp bmUgcHJlZW1wdF9nZXRfY291bnQoKQkoMCkNCisjZGVmaW5lIHByZWVtcHRf ZGlzYWJsZSgpCWRvIHsgfSB3aGlsZSAoMCkNCisjZGVmaW5lIHByZWVtcHRf ZW5hYmxlX25vX3Jlc2NoZWQoKQlkbyB7fSB3aGlsZSgwKQ0KKyNkZWZpbmUg cHJlZW1wdF9lbmFibGUoKQlkbyB7IH0gd2hpbGUgKDApDQorDQorI2RlZmlu ZSBzcGluX2xvY2sobG9jaykJCV9yYXdfc3Bpbl9sb2NrKGxvY2spDQorI2Rl ZmluZSBzcGluX3RyeWxvY2sobG9jaykJX3Jhd19zcGluX3RyeWxvY2sobG9j aykNCisjZGVmaW5lIHNwaW5fdW5sb2NrKGxvY2spCV9yYXdfc3Bpbl91bmxv Y2sobG9jaykNCisNCisjZGVmaW5lIHJlYWRfbG9jayhsb2NrKQkJX3Jhd19y ZWFkX2xvY2sobG9jaykNCisjZGVmaW5lIHJlYWRfdW5sb2NrKGxvY2spCV9y YXdfcmVhZF91bmxvY2sobG9jaykNCisjZGVmaW5lIHdyaXRlX2xvY2sobG9j aykJX3Jhd193cml0ZV9sb2NrKGxvY2spDQorI2RlZmluZSB3cml0ZV91bmxv Y2sobG9jaykJX3Jhd193cml0ZV91bmxvY2sobG9jaykNCisjZGVmaW5lIHdy aXRlX3RyeWxvY2sobG9jaykJX3Jhd193cml0ZV90cnlsb2NrKGxvY2spDQor I2VuZGlmDQogDQogLyogImxvY2sgb24gcmVmZXJlbmNlIGNvdW50IHplcm8i ICovDQogI2lmbmRlZiBBVE9NSUNfREVDX0FORF9MT0NLDQpkaWZmIC11IC0t bmV3LWZpbGUgLXIgLVggL3Vzci9zcmMvZXhjbHVkZSAvdXNyL3NyYy9saW51 eC0yLjQuMTktcHJlOC1hYzQvaW5jbHVkZS9saW51eC9zd2FwLmggL3Vzci9z cmMvbGludXgtMi40LjE5LXByZTgtYWM0cC9pbmNsdWRlL2xpbnV4L3N3YXAu aA0KLS0tIC91c3Ivc3JjL2xpbnV4LTIuNC4xOS1wcmU4LWFjNC9pbmNsdWRl L2xpbnV4L3N3YXAuaAlXZWQgTWF5IDE1IDEyOjEzOjM2IDIwMDINCisrKyAv dXNyL3NyYy9saW51eC0yLjQuMTktcHJlOC1hYzRwL2luY2x1ZGUvbGludXgv c3dhcC5oCVdlZCBNYXkgMTUgMTI6NDA6MjEgMjAwMg0KQEAgLTkwLDYgKzkw LDcgQEANCiBleHRlcm4gaW50IG5yX2luYWN0aXZlX2NsZWFuX3BhZ2VzOw0K IGV4dGVybiBhdG9taWNfdCBwYWdlX2NhY2hlX3NpemU7DQogZXh0ZXJuIGF0 b21pY190IGJ1ZmZlcm1lbV9wYWdlczsNCitleHRlcm4gYXRvbWljX3QgbnJf aW93YWl0X3Rhc2tzOw0KIGV4dGVybiBzcGlubG9ja19jYWNoZWxpbmVfdCBw YWdlY2FjaGVfbG9ja19jYWNoZWxpbmU7DQogI2RlZmluZSBwYWdlY2FjaGVf bG9jayAocGFnZWNhY2hlX2xvY2tfY2FjaGVsaW5lLmxvY2spDQogZXh0ZXJu IHZvaWQgX19yZW1vdmVfaW5vZGVfcGFnZShzdHJ1Y3QgcGFnZSAqKTsNCmRp ZmYgLXUgLS1uZXctZmlsZSAtciAtWCAvdXNyL3NyYy9leGNsdWRlIC91c3Iv c3JjL2xpbnV4LTIuNC4xOS1wcmU4LWFjNC9pbmNsdWRlL2xpbnV4L3RxdWV1 ZS5oIC91c3Ivc3JjL2xpbnV4LTIuNC4xOS1wcmU4LWFjNHAvaW5jbHVkZS9s aW51eC90cXVldWUuaA0KLS0tIC91c3Ivc3JjL2xpbnV4LTIuNC4xOS1wcmU4 LWFjNC9pbmNsdWRlL2xpbnV4L3RxdWV1ZS5oCVdlZCBNYXkgMTUgMTI6MTM6 MzYgMjAwMg0KKysrIC91c3Ivc3JjL2xpbnV4LTIuNC4xOS1wcmU4LWFjNHAv aW5jbHVkZS9saW51eC90cXVldWUuaAlXZWQgTWF5IDE1IDEyOjQwOjIxIDIw MDINCkBAIC05NCw2ICs5NCwyMiBAQA0KIGV4dGVybiBzcGlubG9ja190IHRx dWV1ZV9sb2NrOw0KIA0KIC8qDQorICogQ2FsbCBhbGwgImJvdHRvbSBoYWxm cyIgb24gYSBnaXZlbiBsaXN0Lg0KKyAqLw0KKw0KK2V4dGVybiB2b2lkIF9f cnVuX3Rhc2tfcXVldWUodGFza19xdWV1ZSAqbGlzdCk7DQorDQorc3RhdGlj IGlubGluZSB2b2lkIHJ1bl90YXNrX3F1ZXVlKHRhc2tfcXVldWUgKmxpc3Qp DQorew0KKwlpZiAoVFFfQUNUSVZFKCpsaXN0KSkNCisJCV9fcnVuX3Rhc2tf cXVldWUobGlzdCk7DQorfQ0KKw0KKyNlbmRpZiAvKiBfTElOVVhfVFFVRVVF X0ggKi8NCisNCisjaWYgIWRlZmluZWQoX0xJTlVYX1RRVUVVRV9IX0lOTElO RVMpICYmIGRlZmluZWQoX1RBU0tfU1RSVUNUX0RFRklORUQpDQorI2RlZmlu ZSBfTElOVVhfVFFVRVVFX0hfSU5MSU5FUw0KKy8qDQogICogUXVldWUgYSB0 YXNrIG9uIGEgdHEuICBSZXR1cm4gbm9uLXplcm8gaWYgaXQgd2FzIHN1Y2Nl c3NmdWxseQ0KICAqIGFkZGVkLg0KICAqLw0KQEAgLTEwOSwxNyArMTI1LDQg QEANCiAJfQ0KIAlyZXR1cm4gcmV0Ow0KIH0NCi0NCi0vKg0KLSAqIENhbGwg YWxsICJib3R0b20gaGFsZnMiIG9uIGEgZ2l2ZW4gbGlzdC4NCi0gKi8NCi0N Ci1leHRlcm4gdm9pZCBfX3J1bl90YXNrX3F1ZXVlKHRhc2tfcXVldWUgKmxp c3QpOw0KLQ0KLXN0YXRpYyBpbmxpbmUgdm9pZCBydW5fdGFza19xdWV1ZSh0 YXNrX3F1ZXVlICpsaXN0KQ0KLXsNCi0JaWYgKFRRX0FDVElWRSgqbGlzdCkp DQotCQlfX3J1bl90YXNrX3F1ZXVlKGxpc3QpOw0KLX0NCi0NCi0jZW5kaWYg LyogX0xJTlVYX1RRVUVVRV9IICovDQorI2VuZGlmDQpkaWZmIC11IC0tbmV3 LWZpbGUgLXIgLVggL3Vzci9zcmMvZXhjbHVkZSAvdXNyL3NyYy9saW51eC0y LjQuMTktcHJlOC1hYzQva2VybmVsL2V4aXQuYyAvdXNyL3NyYy9saW51eC0y LjQuMTktcHJlOC1hYzRwL2tlcm5lbC9leGl0LmMNCi0tLSAvdXNyL3NyYy9s aW51eC0yLjQuMTktcHJlOC1hYzQva2VybmVsL2V4aXQuYwlXZWQgTWF5IDE1 IDEyOjEzOjM3IDIwMDINCisrKyAvdXNyL3NyYy9saW51eC0yLjQuMTktcHJl OC1hYzRwL2tlcm5lbC9leGl0LmMJV2VkIE1heSAxNSAxMjo0MDoyMSAyMDAy DQpAQCAtMzczLDggKzM3Myw4IEBADQogCQkvKiBtb3JlIGEgbWVtb3J5IGJh cnJpZXIgdGhhbiBhIHJlYWwgbG9jayAqLw0KIAkJdGFza19sb2NrKHRzayk7 DQogCQl0c2stPm1tID0gTlVMTDsNCi0JCXRhc2tfdW5sb2NrKHRzayk7DQog CQllbnRlcl9sYXp5X3RsYihtbSwgY3VycmVudCwgc21wX3Byb2Nlc3Nvcl9p ZCgpKTsNCisJCXRhc2tfdW5sb2NrKHRzayk7DQogCQltbXB1dChtbSk7DQog CX0NCiB9DQpAQCAtNDk0LDYgKzQ5NCwxMSBAQA0KIAkJcGFuaWMoIkF0dGVt cHRlZCB0byBraWxsIGluaXQhIik7DQogCXRzay0+ZmxhZ3MgfD0gUEZfRVhJ VElORzsNCiAJZGVsX3RpbWVyX3N5bmMoJnRzay0+cmVhbF90aW1lcik7DQor DQorCWlmICh1bmxpa2VseShwcmVlbXB0X2dldF9jb3VudCgpKSkNCisJCXBy aW50ayhLRVJOX0VSUiAiJXNbJWRdIGV4aXRlZCB3aXRoIHByZWVtcHRfY291 bnQgJWRcbiIsDQorCQkJCWN1cnJlbnQtPmNvbW0sIGN1cnJlbnQtPnBpZCwN CisJCQkJcHJlZW1wdF9nZXRfY291bnQoKSk7DQogDQogZmFrZV92b2xhdGls ZToNCiAjaWZkZWYgQ09ORklHX0JTRF9QUk9DRVNTX0FDQ1QNCmRpZmYgLXUg LS1uZXctZmlsZSAtciAtWCAvdXNyL3NyYy9leGNsdWRlIC91c3Ivc3JjL2xp bnV4LTIuNC4xOS1wcmU4LWFjNC9rZXJuZWwvZm9yay5jIC91c3Ivc3JjL2xp bnV4LTIuNC4xOS1wcmU4LWFjNHAva2VybmVsL2ZvcmsuYw0KLS0tIC91c3Iv c3JjL2xpbnV4LTIuNC4xOS1wcmU4LWFjNC9rZXJuZWwvZm9yay5jCVdlZCBN YXkgMTUgMTI6MTM6MzcgMjAwMg0KKysrIC91c3Ivc3JjL2xpbnV4LTIuNC4x OS1wcmU4LWFjNHAva2VybmVsL2ZvcmsuYwlXZWQgTWF5IDE1IDEyOjQwOjIx IDIwMDINCkBAIC02NDAsNiArNjQwLDEzIEBADQogCWlmIChwLT5iaW5mbXQg JiYgcC0+YmluZm10LT5tb2R1bGUpDQogCQlfX01PRF9JTkNfVVNFX0NPVU5U KHAtPmJpbmZtdC0+bW9kdWxlKTsNCiANCisjaWZkZWYgQ09ORklHX1BSRUVN UFQNCisJLyoNCisJICogc2NoZWR1bGVfdGFpbCBkcm9wcyB0aGlzX3JxKCkt PmxvY2sgc28gY29tcGVuc2F0ZSB3aXRoIGEgY291bnQNCisJICogb2YgMS4g IEFsc28sIHdlIHdhbnQgdG8gc3RhcnQgd2l0aCBrZXJuZWwgcHJlZW1wdGlv biBkaXNhYmxlZC4NCisJICovDQorCXAtPnByZWVtcHRfY291bnQgPSAxOw0K KyNlbmRpZg0KIAlwLT5kaWRfZXhlYyA9IDA7DQogCXAtPnN3YXBwYWJsZSA9 IDA7DQogCXAtPnN0YXRlID0gVEFTS19VTklOVEVSUlVQVElCTEU7DQpkaWZm IC11IC0tbmV3LWZpbGUgLXIgLVggL3Vzci9zcmMvZXhjbHVkZSAvdXNyL3Ny Yy9saW51eC0yLjQuMTktcHJlOC1hYzQva2VybmVsL2tzeW1zLmMgL3Vzci9z cmMvbGludXgtMi40LjE5LXByZTgtYWM0cC9rZXJuZWwva3N5bXMuYw0KLS0t IC91c3Ivc3JjL2xpbnV4LTIuNC4xOS1wcmU4LWFjNC9rZXJuZWwva3N5bXMu YwlXZWQgTWF5IDE1IDEyOjEzOjM3IDIwMDINCisrKyAvdXNyL3NyYy9saW51 eC0yLjQuMTktcHJlOC1hYzRwL2tlcm5lbC9rc3ltcy5jCVdlZCBNYXkgMTUg MTI6NDA6MjEgMjAwMg0KQEAgLTQ0Miw2ICs0NDIsOSBAQA0KIEVYUE9SVF9T WU1CT0woaW50ZXJydXB0aWJsZV9zbGVlcF9vbik7DQogRVhQT1JUX1NZTUJP TChpbnRlcnJ1cHRpYmxlX3NsZWVwX29uX3RpbWVvdXQpOw0KIEVYUE9SVF9T WU1CT0woc2NoZWR1bGUpOw0KKyNpZmRlZiBDT05GSUdfUFJFRU1QVA0KK0VY UE9SVF9TWU1CT0wocHJlZW1wdF9zY2hlZHVsZSk7DQorI2VuZGlmDQogRVhQ T1JUX1NZTUJPTChzY2hlZHVsZV90aW1lb3V0KTsNCiBFWFBPUlRfU1lNQk9M KHN5c19zY2hlZF95aWVsZCk7DQogRVhQT1JUX1NZTUJPTChzZXRfdXNlcl9u aWNlKTsNCmRpZmYgLXUgLS1uZXctZmlsZSAtciAtWCAvdXNyL3NyYy9leGNs dWRlIC91c3Ivc3JjL2xpbnV4LTIuNC4xOS1wcmU4LWFjNC9rZXJuZWwvc2No ZWQuYyAvdXNyL3NyYy9saW51eC0yLjQuMTktcHJlOC1hYzRwL2tlcm5lbC9z Y2hlZC5jDQotLS0gL3Vzci9zcmMvbGludXgtMi40LjE5LXByZTgtYWM0L2tl cm5lbC9zY2hlZC5jCVdlZCBNYXkgMTUgMTI6MTM6MzcgMjAwMg0KKysrIC91 c3Ivc3JjL2xpbnV4LTIuNC4xOS1wcmU4LWFjNHAva2VybmVsL3NjaGVkLmMJ V2VkIE1heSAxNSAxMjo0MDoyMSAyMDAyDQpAQCAtMTY1LDEwICsxNjUsMTIg QEANCiAJc3RydWN0IHJ1bnF1ZXVlICpycTsNCiANCiByZXBlYXRfbG9ja190 YXNrOg0KKwlwcmVlbXB0X2Rpc2FibGUoKTsNCiAJcnEgPSB0YXNrX3JxKHAp Ow0KIAlzcGluX2xvY2tfaXJxc2F2ZSgmcnEtPmxvY2ssICpmbGFncyk7DQog CWlmICh1bmxpa2VseShycSAhPSB0YXNrX3JxKHApKSkgew0KIAkJc3Bpbl91 bmxvY2tfaXJxcmVzdG9yZSgmcnEtPmxvY2ssICpmbGFncyk7DQorCQlwcmVl bXB0X2VuYWJsZSgpOw0KIAkJZ290byByZXBlYXRfbG9ja190YXNrOw0KIAl9 DQogCXJldHVybiBycTsNCkBAIC0xNzcsNiArMTc5LDcgQEANCiBzdGF0aWMg aW5saW5lIHZvaWQgdGFza19ycV91bmxvY2socnVucXVldWVfdCAqcnEsIHVu c2lnbmVkIGxvbmcgKmZsYWdzKQ0KIHsNCiAJc3Bpbl91bmxvY2tfaXJxcmVz dG9yZSgmcnEtPmxvY2ssICpmbGFncyk7DQorCXByZWVtcHRfZW5hYmxlKCk7 DQogfQ0KIA0KIC8qDQpAQCAtMjU3LDExICsyNjAsMTMgQEANCiB7DQogCWlu dCBuZWVkX3Jlc2NoZWQ7DQogDQorCXByZWVtcHRfZGlzYWJsZSgpOw0KIAlu ZWVkX3Jlc2NoZWQgPSBwLT5uZWVkX3Jlc2NoZWQ7DQogCXdtYigpOw0KIAlz ZXRfdHNrX25lZWRfcmVzY2hlZChwKTsNCiAJaWYgKCFuZWVkX3Jlc2NoZWQg JiYgKHAtPmNwdSAhPSBzbXBfcHJvY2Vzc29yX2lkKCkpKQ0KIAkJc21wX3Nl bmRfcmVzY2hlZHVsZShwLT5jcHUpOw0KKwlwcmVlbXB0X2VuYWJsZSgpOw0K IH0NCiANCiAjaWZkZWYgQ09ORklHX1NNUA0KQEAgLTI3Niw2ICsyODEsNyBA QA0KIAlydW5xdWV1ZV90ICpycTsNCiANCiByZXBlYXQ6DQorCXByZWVtcHRf ZGlzYWJsZSgpOw0KIAlycSA9IHRhc2tfcnEocCk7DQogCXdoaWxlICh1bmxp a2VseShycS0+Y3VyciA9PSBwKSkgew0KIAkJY3B1X3JlbGF4KCk7DQpAQCAt Mjg0LDkgKzI5MCwxMSBAQA0KIAlycSA9IHRhc2tfcnFfbG9jayhwLCAmZmxh Z3MpOw0KIAlpZiAodW5saWtlbHkocnEtPmN1cnIgPT0gcCkpIHsNCiAJCXRh c2tfcnFfdW5sb2NrKHJxLCAmZmxhZ3MpOw0KKwkJcHJlZW1wdF9lbmFibGUo KTsNCiAJCWdvdG8gcmVwZWF0Ow0KIAl9DQogCXRhc2tfcnFfdW5sb2NrKHJx LCAmZmxhZ3MpOw0KKwlwcmVlbXB0X2VuYWJsZSgpOw0KIH0NCiANCiAvKg0K QEAgLTM0MCw2ICszNDgsNyBAQA0KIHsNCiAJcnVucXVldWVfdCAqcnE7DQog DQorCXByZWVtcHRfZGlzYWJsZSgpOw0KIAlycSA9IHRoaXNfcnEoKTsNCiAJ c3Bpbl9sb2NrX2lycSgmcnEtPmxvY2spOw0KIA0KQEAgLTM1Nyw2ICszNjYs NyBAQA0KIAlwLT5jcHUgPSBzbXBfcHJvY2Vzc29yX2lkKCk7DQogCWFjdGl2 YXRlX3Rhc2socCwgcnEpOw0KIAlzcGluX3VubG9ja19pcnEoJnJxLT5sb2Nr KTsNCisJcHJlZW1wdF9lbmFibGUoKTsNCiB9DQogDQogLyoNCkBAIC0zODQs NyArMzk0LDcgQEANCiAJCQlwLT5zbGVlcF9hdmcpIC8gKEVYSVRfV0VJR0hU ICsgMSk7DQogfQ0KIA0KLSNpZiBDT05GSUdfU01QDQorI2lmIENPTkZJR19T TVAgfHwgQ09ORklHX1BSRUVNUFQNCiBhc21saW5rYWdlIHZvaWQgc2NoZWR1 bGVfdGFpbCh0YXNrX3QgKnByZXYpDQogew0KIAlzcGluX3VubG9ja19pcnEo JnRoaXNfcnEoKS0+ZnJvemVuKTsNCkBAIC03MzksNiArNzQ5LDcgQEANCiAJ QlVHX09OKGluX2ludGVycnVwdCgpKTsNCiANCiBuZWVkX3Jlc2NoZWQ6DQor CXByZWVtcHRfZGlzYWJsZSgpOw0KIAlwcmV2ID0gY3VycmVudDsNCiAJcnEg PSB0aGlzX3JxKCk7DQogDQpAQCAtNzQ2LDYgKzc1NywxMyBAQA0KIAlwcmV2 LT5zbGVlcF90aW1lc3RhbXAgPSBqaWZmaWVzOw0KIAlzcGluX2xvY2tfaXJx KCZycS0+bG9jayk7DQogDQorCS8qDQorCSAqIGlmIGVudGVyaW5nIGZyb20g cHJlZW1wdF9zY2hlZHVsZSwgb2ZmIGEga2VybmVsIHByZWVtcHRpb24sDQor CSAqIGdvIHN0cmFpZ2h0IHRvIHBpY2tpbmcgdGhlIG5leHQgdGFzay4NCisJ ICovDQorCWlmICh1bmxpa2VseShwcmVlbXB0X2dldF9jb3VudCgpICYgUFJF RU1QVF9BQ1RJVkUpKQ0KKwkJZ290byBwaWNrX25leHRfdGFzazsNCisNCiAJ c3dpdGNoIChwcmV2LT5zdGF0ZSkgew0KIAljYXNlIFRBU0tfSU5URVJSVVBU SUJMRToNCiAJCWlmICh1bmxpa2VseShzaWduYWxfcGVuZGluZyhwcmV2KSkp IHsNCkBAIC03NTcsOSArNzc1LDcgQEANCiAJY2FzZSBUQVNLX1JVTk5JTkc6 DQogCQk7DQogCX0NCi0jaWYgQ09ORklHX1NNUA0KIHBpY2tfbmV4dF90YXNr Og0KLSNlbmRpZg0KIAlpZiAodW5saWtlbHkoIXJxLT5ucl9ydW5uaW5nKSkg ew0KICNpZiBDT05GSUdfU01QDQogCQlsb2FkX2JhbGFuY2UocnEsIDEpOw0K QEAgLTgxMCwxMSArODI2LDMwIEBADQogCX0NCiANCiAJcmVhY3F1aXJlX2tl cm5lbF9sb2NrKGN1cnJlbnQpOw0KKwlwcmVlbXB0X2VuYWJsZV9ub19yZXNj aGVkKCk7DQogCWlmIChuZWVkX3Jlc2NoZWQoKSkNCiAJCWdvdG8gbmVlZF9y ZXNjaGVkOw0KIAlyZXR1cm47DQogfQ0KIA0KKyNpZmRlZiBDT05GSUdfUFJF RU1QVA0KKy8qDQorICogdGhpcyBpcyBpcyB0aGUgZW50cnkgcG9pbnQgdG8g c2NoZWR1bGUoKSBmcm9tIGluLWtlcm5lbCBwcmVlbXB0aW9uLg0KKyovDQor YXNtbGlua2FnZSB2b2lkIHByZWVtcHRfc2NoZWR1bGUodm9pZCkNCit7DQor bmVlZF9yZXNjaGVkOg0KKwljdXJyZW50LT5wcmVlbXB0X2NvdW50ICs9IFBS RUVNUFRfQUNUSVZFOw0KKwlzY2hlZHVsZSgpOw0KKyAJY3VycmVudC0+cHJl ZW1wdF9jb3VudCAtPSBQUkVFTVBUX0FDVElWRTsNCisNCisJLyogd2UgY291 bGQgbWlzcyBhIHByZWVtcHRpb24gYmV0d2VlbiBzY2hlZHVsZSgpIGFuZCBu b3cgKi8NCisgCWJhcnJpZXIoKTsNCisJaWYgKHVubGlrZWx5KChjdXJyZW50 LT5uZWVkX3Jlc2NoZWQpKSkNCisJCWdvdG8gbmVlZF9yZXNjaGVkOw0KK30N CisjZW5kaWYgLyogQ09ORklHX1BSRUVNUCAqLw0KKw0KIC8qDQogICogVGhl IGNvcmUgd2FrZXVwIGZ1bmN0aW9uLiAgTm9uLWV4Y2x1c2l2ZSB3YWtldXBz IChucl9leGNsdXNpdmUgPT0gMCkganVzdA0KICAqIHdha2UgZXZlcnl0aGlu ZyB1cC4gIElmIGl0J3MgYW4gZXhjbHVzaXZlIHdha2V1cCAobnJfZXhjbHVz aXZlID09IHNtYWxsICt2ZQ0KQEAgLTExOTIsNiArMTIyNyw3IEBADQogCXJ1 bnF1ZXVlX3QgKnJxOw0KIAlwcmlvX2FycmF5X3QgKmFycmF5Ow0KIA0KKwlw cmVlbXB0X2Rpc2FibGUoKTsNCiAJcnEgPSB0aGlzX3JxKCk7DQogDQogCS8q DQpAQCAtMTIyMCw2ICsxMjU2LDcgQEANCiAJCV9fc2V0X2JpdChjdXJyZW50 LT5wcmlvLCBhcnJheS0+Yml0bWFwKTsNCiAJfQ0KIAlzcGluX3VubG9jaygm cnEtPmxvY2spOw0KKwlwcmVlbXB0X2VuYWJsZV9ub19yZXNjaGVkKCk7DQog DQogCXNjaGVkdWxlKCk7DQogDQpAQCAtMTQyNCw2ICsxNDYxLDkgQEANCiAJ ZG91YmxlX3JxX3VubG9jayhpZGxlX3JxLCBycSk7DQogCXNldF90c2tfbmVl ZF9yZXNjaGVkKGlkbGUpOw0KIAlfX3Jlc3RvcmVfZmxhZ3MoZmxhZ3MpOw0K Kw0KKwkvKiBTZXQgdGhlIHByZWVtcHQgY291bnQgX291dHNpZGVfIHRoZSBz cGlubG9ja3MhICovDQorCWlkbGUtPnByZWVtcHRfY291bnQgPSAoaWRsZS0+ bG9ja19kZXB0aCA+PSAwKTsNCiB9DQogDQogZXh0ZXJuIHZvaWQgaW5pdF90 aW1lcnZlY3Modm9pZCk7DQpAQCAtMTUyMCw2ICsxNTYwLDcgQEANCiAJaWYg KCFuZXdfbWFzaykNCiAJCUJVRygpOw0KIA0KKwlwcmVlbXB0X2Rpc2FibGUo KTsNCiAJcnEgPSB0YXNrX3JxX2xvY2socCwgJmZsYWdzKTsNCiAJcC0+Y3B1 c19hbGxvd2VkID0gbmV3X21hc2s7DQogCS8qDQpAQCAtMTUyOCw3ICsxNTY5 LDcgQEANCiAJICovDQogCWlmIChuZXdfbWFzayAmICgxVUwgPDwgcC0+Y3B1 KSkgew0KIAkJdGFza19ycV91bmxvY2socnEsICZmbGFncyk7DQotCQlyZXR1 cm47DQorCQlnb3RvIG91dDsNCiAJfQ0KIA0KIAlpbml0X01VVEVYX0xPQ0tF RCgmcmVxLnNlbSk7DQpAQCAtMTUzOCw2ICsxNTc5LDggQEANCiAJd2FrZV91 cF9wcm9jZXNzKHJxLT5taWdyYXRpb25fdGhyZWFkKTsNCiANCiAJZG93bigm cmVxLnNlbSk7DQorb3V0Og0KKwlwcmVlbXB0X2VuYWJsZSgpOw0KIH0NCiAN CiBzdGF0aWMgaW50IG1pZ3JhdGlvbl90aHJlYWQodm9pZCAqIGJpbmRfY3B1 KQ0KZGlmZiAtdSAtLW5ldy1maWxlIC1yIC1YIC91c3Ivc3JjL2V4Y2x1ZGUg L3Vzci9zcmMvbGludXgtMi40LjE5LXByZTgtYWM0L2tlcm5lbC90aW1lci5j IC91c3Ivc3JjL2xpbnV4LTIuNC4xOS1wcmU4LWFjNHAva2VybmVsL3RpbWVy LmMNCi0tLSAvdXNyL3NyYy9saW51eC0yLjQuMTktcHJlOC1hYzQva2VybmVs L3RpbWVyLmMJV2VkIE1heSAxNSAxMjoxMzozNyAyMDAyDQorKysgL3Vzci9z cmMvbGludXgtMi40LjE5LXByZTgtYWM0cC9rZXJuZWwvdGltZXIuYwlXZWQg TWF5IDE1IDEyOjQwOjIxIDIwMDINCkBAIC01ODUsNiArNTg1LDggQEANCiB7 DQogCXAtPnBlcl9jcHVfdXRpbWVbY3B1XSArPSB1c2VyOw0KIAlwLT5wZXJf Y3B1X3N0aW1lW2NwdV0gKz0gc3lzdGVtOw0KKwlpZiAoYXRvbWljX3JlYWQo Jm5yX2lvd2FpdF90YXNrcykgPiAwKQ0KKwkJa3N0YXQucGVyX2NwdV9pb3dh aXRbY3B1XSArPSBzeXN0ZW07DQogCWRvX3Byb2Nlc3NfdGltZXMocCwgdXNl ciwgc3lzdGVtKTsNCiAJZG9faXRfdmlydChwLCB1c2VyKTsNCiAJZG9faXRf cHJvZihwKTsNCmRpZmYgLXUgLS1uZXctZmlsZSAtciAtWCAvdXNyL3NyYy9l eGNsdWRlIC91c3Ivc3JjL2xpbnV4LTIuNC4xOS1wcmU4LWFjNC9saWIvZGVj X2FuZF9sb2NrLmMgL3Vzci9zcmMvbGludXgtMi40LjE5LXByZTgtYWM0cC9s aWIvZGVjX2FuZF9sb2NrLmMNCi0tLSAvdXNyL3NyYy9saW51eC0yLjQuMTkt cHJlOC1hYzQvbGliL2RlY19hbmRfbG9jay5jCVdlZCBPY3QgIDMgMTI6MTE6 MjYgMjAwMQ0KKysrIC91c3Ivc3JjL2xpbnV4LTIuNC4xOS1wcmU4LWFjNHAv bGliL2RlY19hbmRfbG9jay5jCVdlZCBNYXkgMTUgMTI6NDA6MjEgMjAwMg0K QEAgLTEsNSArMSw2IEBADQogI2luY2x1ZGUgPGxpbnV4L21vZHVsZS5oPg0K ICNpbmNsdWRlIDxsaW51eC9zcGlubG9jay5oPg0KKyNpbmNsdWRlIDxsaW51 eC9zY2hlZC5oPg0KICNpbmNsdWRlIDxhc20vYXRvbWljLmg+DQogDQogLyoN CmRpZmYgLXUgLS1uZXctZmlsZSAtciAtWCAvdXNyL3NyYy9leGNsdWRlIC91 c3Ivc3JjL2xpbnV4LTIuNC4xOS1wcmU4LWFjNC9tbS9maWxlbWFwLmMgL3Vz ci9zcmMvbGludXgtMi40LjE5LXByZTgtYWM0cC9tbS9maWxlbWFwLmMNCi0t LSAvdXNyL3NyYy9saW51eC0yLjQuMTktcHJlOC1hYzQvbW0vZmlsZW1hcC5j CVdlZCBNYXkgMTUgMTI6MTM6MzcgMjAwMg0KKysrIC91c3Ivc3JjL2xpbnV4 LTIuNC4xOS1wcmU4LWFjNHAvbW0vZmlsZW1hcC5jCVdlZCBNYXkgMTUgMTI6 NDA6MjEgMjAwMg0KQEAgLTQ1LDYgKzQ1LDcgQEANCiAgKi8NCiANCiBhdG9t aWNfdCBwYWdlX2NhY2hlX3NpemUgPSBBVE9NSUNfSU5JVCgwKTsNCithdG9t aWNfdCBucl9pb3dhaXRfdGFza3MgPSBBVE9NSUNfSU5JVCgwKTsNCiB1bnNp Z25lZCBpbnQgcGFnZV9oYXNoX2JpdHM7DQogc3RydWN0IHBhZ2UgKipwYWdl X2hhc2hfdGFibGU7DQogDQpAQCAtODI4LDggKzgyOSwxMCBAQA0KIAkJc2V0 X3Rhc2tfc3RhdGUodHNrLCBUQVNLX1VOSU5URVJSVVBUSUJMRSk7DQogCQlp ZiAoIVBhZ2VMb2NrZWQocGFnZSkpDQogCQkJYnJlYWs7DQorCQlhdG9taWNf aW5jKCZucl9pb3dhaXRfdGFza3MpOw0KIAkJc3luY19wYWdlKHBhZ2UpOw0K IAkJc2NoZWR1bGUoKTsNCisJCWF0b21pY19kZWMoJm5yX2lvd2FpdF90YXNr cyk7DQogCX0gd2hpbGUgKFBhZ2VMb2NrZWQocGFnZSkpOw0KIAlfX3NldF90 YXNrX3N0YXRlKHRzaywgVEFTS19SVU5OSU5HKTsNCiAJcmVtb3ZlX3dhaXRf cXVldWUod2FpdHF1ZXVlLCAmd2FpdCk7DQpAQCAtODc1LDggKzg3OCwxMCBA QA0KIAlmb3IgKDs7KSB7DQogCQlzZXRfdGFza19zdGF0ZSh0c2ssIFRBU0tf VU5JTlRFUlJVUFRJQkxFKTsNCiAJCWlmIChQYWdlTG9ja2VkKHBhZ2UpKSB7 DQorCQkJYXRvbWljX2luYygmbnJfaW93YWl0X3Rhc2tzKTsNCiAJCQlzeW5j X3BhZ2UocGFnZSk7DQogCQkJc2NoZWR1bGUoKTsNCisJCQlhdG9taWNfZGVj KCZucl9pb3dhaXRfdGFza3MpOw0KIAkJfQ0KIAkJaWYgKCFUcnlMb2NrUGFn ZShwYWdlKSkNCiAJCQlicmVhazsNCmRpZmYgLXUgLS1uZXctZmlsZSAtciAt WCAvdXNyL3NyYy9leGNsdWRlIC91c3Ivc3JjL2xpbnV4LTIuNC4xOS1wcmU4 LWFjNC9tbS9zbGFiLmMgL3Vzci9zcmMvbGludXgtMi40LjE5LXByZTgtYWM0 cC9tbS9zbGFiLmMNCi0tLSAvdXNyL3NyYy9saW51eC0yLjQuMTktcHJlOC1h YzQvbW0vc2xhYi5jCVdlZCBNYXkgMTUgMTI6MTM6MzcgMjAwMg0KKysrIC91 c3Ivc3JjL2xpbnV4LTIuNC4xOS1wcmU4LWFjNHAvbW0vc2xhYi5jCVdlZCBN YXkgMTUgMTI6NDA6MjEgMjAwMg0KQEAgLTQ5LDcgKzQ5LDggQEANCiAgKiAg Y29uc3RydWN0b3JzIGFuZCBkZXN0cnVjdG9ycyBhcmUgY2FsbGVkIHdpdGhv dXQgYW55IGxvY2tpbmcuDQogICogIFNldmVyYWwgbWVtYmVycyBpbiBrbWVt X2NhY2hlX3QgYW5kIHNsYWJfdCBuZXZlciBjaGFuZ2UsIHRoZXkNCiAgKglh cmUgYWNjZXNzZWQgd2l0aG91dCBhbnkgbG9ja2luZy4NCi0gKiAgVGhlIHBl ci1jcHUgYXJyYXlzIGFyZSBuZXZlciBhY2Nlc3NlZCBmcm9tIHRoZSB3cm9u ZyBjcHUsIG5vIGxvY2tpbmcuDQorICogIFRoZSBwZXItY3B1IGFycmF5cyBh cmUgbmV2ZXIgYWNjZXNzZWQgZnJvbSB0aGUgd3JvbmcgY3B1LCBubyBsb2Nr aW5nLA0KKyAqICAJYW5kIGxvY2FsIGludGVycnVwdHMgYXJlIGRpc2FibGVk IHNvIHNsYWIgY29kZSBpcyBwcmVlbXB0LXNhZmUuDQogICogIFRoZSBub24t Y29uc3RhbnQgbWVtYmVycyBhcmUgcHJvdGVjdGVkIHdpdGggYSBwZXItY2Fj aGUgaXJxIHNwaW5sb2NrLg0KICAqDQogICogRnVydGhlciBub3RlcyBmcm9t IHRoZSBvcmlnaW5hbCBkb2N1bWVudGF0aW9uOg0KZGlmZiAtdSAtLW5ldy1m aWxlIC1yIC1YIC91c3Ivc3JjL2V4Y2x1ZGUgL3Vzci9zcmMvbGludXgtMi40 LjE5LXByZTgtYWM0L25ldC9zb2NrZXQuYyAvdXNyL3NyYy9saW51eC0yLjQu MTktcHJlOC1hYzRwL25ldC9zb2NrZXQuYw0KLS0tIC91c3Ivc3JjL2xpbnV4 LTIuNC4xOS1wcmU4LWFjNC9uZXQvc29ja2V0LmMJV2VkIE1heSAxNSAxMjox MzozNyAyMDAyDQorKysgL3Vzci9zcmMvbGludXgtMi40LjE5LXByZTgtYWM0 cC9uZXQvc29ja2V0LmMJV2VkIE1heSAxNSAxMjo0MDoyMSAyMDAyDQpAQCAt MTMyLDcgKzEzMiw3IEBADQogDQogc3RhdGljIHN0cnVjdCBuZXRfcHJvdG9f ZmFtaWx5ICpuZXRfZmFtaWxpZXNbTlBST1RPXTsNCiANCi0jaWZkZWYgQ09O RklHX1NNUA0KKyNpZiBkZWZpbmVkKENPTkZJR19TTVApIHx8IGRlZmluZWQo Q09ORklHX1BSRUVNUFQpDQogc3RhdGljIGF0b21pY190IG5ldF9mYW1pbHlf bG9ja2N0ID0gQVRPTUlDX0lOSVQoMCk7DQogc3RhdGljIHNwaW5sb2NrX3Qg bmV0X2ZhbWlseV9sb2NrID0gU1BJTl9MT0NLX1VOTE9DS0VEOw0KIA0KZGlm ZiAtdSAtLW5ldy1maWxlIC1yIC1YIC91c3Ivc3JjL2V4Y2x1ZGUgL3Vzci9z cmMvbGludXgtMi40LjE5LXByZTgtYWM0L25ldC9zdW5ycGMvcG1hcF9jbG50 LmMgL3Vzci9zcmMvbGludXgtMi40LjE5LXByZTgtYWM0cC9uZXQvc3VucnBj L3BtYXBfY2xudC5jDQotLS0gL3Vzci9zcmMvbGludXgtMi40LjE5LXByZTgt YWM0L25ldC9zdW5ycGMvcG1hcF9jbG50LmMJV2VkIE1heSAxNSAxMjoxMzoz NyAyMDAyDQorKysgL3Vzci9zcmMvbGludXgtMi40LjE5LXByZTgtYWM0cC9u ZXQvc3VucnBjL3BtYXBfY2xudC5jCVdlZCBNYXkgMTUgMTI6NDA6MjEgMjAw Mg0KQEAgLTEyLDYgKzEyLDcgQEANCiAjaW5jbHVkZSA8bGludXgvY29uZmln Lmg+DQogI2luY2x1ZGUgPGxpbnV4L3R5cGVzLmg+DQogI2luY2x1ZGUgPGxp bnV4L3NvY2tldC5oPg0KKyNpbmNsdWRlIDxsaW51eC9zY2hlZC5oPg0KICNp bmNsdWRlIDxsaW51eC9rZXJuZWwuaD4NCiAjaW5jbHVkZSA8bGludXgvZXJy bm8uaD4NCiAjaW5jbHVkZSA8bGludXgvdWlvLmg+DQo= --1170656797-2020537832-1021485488=:5726-- - 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/