This message generated a parse failure. Raw output follows here. Please use 'back' to navigate. From devnull@lkml.org Sat Apr 27 13:40:14 2024 Received: from entropy.muc.muohio.edu (entropy.muc.muohio.edu [134.53.213.10]) by herbie.ucs.indiana.edu (8.8.8/8.8.8) with ESMTP id RAA26649 for ; Tue, 2 Jun 1998 17:53:52 -0500 (EST) Received: from vger.rutgers.edu (root@vger.rutgers.edu [128.6.190.2]) by entropy.muc.muohio.edu (8.8.7/8.8.7) with ESMTP id SAA21933; Tue, 2 Jun 1998 18:48:57 -0400 Received: by vger.rutgers.edu id <970925-31949>; Tue, 2 Jun 1998 17:32:03 -0400 Received: from main.cyclades.com ([208.138.19.2]:21011 "EHLO main.cyclades.com" ident: "root") by vger.rutgers.edu with ESMTP id <971092-31949>; Tue, 2 Jun 1998 17:31:45 -0400 Received: from cyclades.com (bahia.cyclades.com [208.138.19.232]) by main.cyclades.com (8.8.5/8.8.5) with ESMTP id PAA13397; Tue, 2 Jun 1998 15:53:21 -0700 Message-Id: <35747FCC.9116DEA5@cyclades.com> Date: Tue, 02 Jun 1998 15:42:20 -0700 From: Ivan Passos Reply-To: ivan@cyclades.com Organization: Cyclades Corporation X-Mailer: Mozilla 4.05 [en] (Win95; I) Mime-Version: 1.0 To: linux-kernel@vger.rutgers.edu Cc: Linus Torvalds Subject: Cyclades driver patches (against 2.1.103) (fwd) Content-Type: multipart/mixed; boundary="------------5BF0EB88171236E6F3BC415D" X-Orcpt: rfc822;linux-kernel@vger.rutgers.edu Sender: owner-linux-kernel@vger.rutgers.edu Precedence: bulk X-Loop: majordomo@vger.rutgers.edu This is a multi-part message in MIME format. --------------5BF0EB88171236E6F3BC415D Content-Type: text/plain; charset=us-ascii Content-Transfer-Encoding: 7bit Hi, there, Just to make sure, I'm re-sending those patches to the Cyclades Linux driver against kernel 2.1.103 (I originally sent this msg just to Linus, but since I didn't get any answer ...). Just one question about submitting changes to the kernel: does Linus answer to you letting you know that he has received your patches ?? I know that, besides being very busy, he probably receives tons of patches, so I wouldn't be surprised if he didn't answer to everybody. Just wanted to know what the expected behavior is ... :) Thanks in advance. Regards, -- ******************************************************************* Cyclades Corporation Tel.: (510)770-9727 ext. 202 Ivan Passos E-mail : mailto:ivan@cyclades.com Software Engineer WWW : http://www.cyclades.com ******************************************************************* --------------5BF0EB88171236E6F3BC415D Content-Type: message/rfc822 Content-Transfer-Encoding: 7bit Content-Disposition: inline Received: from kelly.cyclades.com (kelly.cyclades.com [208.138.19.244]) by main.cyclades.com (8.8.5/8.8.5) with ESMTP id LAA32526 for ; Mon, 1 Jun 1998 11:45:18 -0700 From: ivan@kelly.cyclades.com Received: from localhost (ivan@localhost) by kelly.cyclades.com (8.8.7/8.8.7) with SMTP id LAA16288; Mon, 1 Jun 1998 11:38:39 -0700 Date: Mon, 1 Jun 1998 11:38:39 -0700 (PDT) Reply-To: ivan@cyclades.com To: torvalds@transmeta.com Subject: Cyclades driver patches (against 2.1.103) Message-ID: MIME-Version: 1.0 Content-Type: MULTIPART/MIXED; BOUNDARY="-1966017517-580703082-896726319=:16285" 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. ---1966017517-580703082-896726319=:16285 Content-Type: TEXT/PLAIN; charset=US-ASCII Hi, Linus, The attached file contains the first batch of patches to the Cyclades driver. Basically it does a major clean up in the code (so that it get closer to the serial driver) plus some minor changes (removal of the PCI conditional compilation, for instance). I'm about to add the /proc "awareness" to the driver, but this should be submitted after I understand its use in the serial driver. Please, if possible, let me know whether you received this e-mail and in which kernel version (2.1.104 ??) the patch will make to the official src tree. Thanks in advance. Regards, Ivan Passos ---1966017517-580703082-896726319=:16285 Content-Type: TEXT/PLAIN; charset=US-ASCII; name="cyclades.diff.980601" Content-Transfer-Encoding: BASE64 Content-ID: Content-Description: LS0tIGxpbnV4L2RyaXZlcnMvY2hhci9jeWNsYWRlcy5jLm9yaQlXZWQgTWF5 IDI3IDE5OjMzOjA4IDE5OTgNCisrKyBsaW51eC9kcml2ZXJzL2NoYXIvY3lj bGFkZXMuYwlNb24gSnVuICAxIDExOjI0OjE0IDE5OTgNCkBAIC0xLDkgKzEs NyBAQA0KICNkZWZpbmUgQkxPQ0tNT1ZFDQotI2RlZmluZQlORVdfSU5UUl9G TE9XDQogI2RlZmluZQlaX1dBS0UNCi0jZGVmaW5lCU5FV19QQ0kNCiBzdGF0 aWMgY2hhciByY3NpZFtdID0NCi0iJFJldmlzaW9uOiAyLjIuMS4xICQkRGF0 ZTogMTk5OC8wMy8xOSAxNjo0MzoxMiAkIjsNCisiJFJldmlzaW9uOiAyLjIu MS4zICQkRGF0ZTogMTk5OC8wNi8wMSAxMjowOToxMCAkIjsNCiANCiAvKg0K ICAqICBsaW51eC9kcml2ZXJzL2NoYXIvY3ljbGFkZXMuYw0KQEAgLTMzLDYg KzMxLDEzIEBADQogICogICB2b2lkIGNsZWFudXBfbW9kdWxlKHZvaWQpOw0K ICAqDQogICogJExvZzogY3ljbGFkZXMuYyx2ICQNCisgKiBSZXZpc2lvbiAy LjIuMS4zICAxOTk4LzA2LzAxIDEyOjA5OjEwIGl2YW4NCisgKiBHZW5lcmFs IGNvZGUgcmV2aWV3IGluIG9yZGVyIHRvIGNvbXBseSB3aXRoIDIuMSBrZXJu ZWwgc3RhbmRhcmRzOw0KKyAqIGRhdGEgbG9zcyBwcmV2ZW50aW9uIGZvciBz bG93IGRldmljZXMgcmV2aXNpdGVkIChjeV93YWl0X3VudGlsX3NlbnQNCisg KiB3YXMgY3JlYXRlZCk7DQorICogcmVtb3ZlZCBjb25kaXRpb25hbCBjb21w aWxhdGlvbiBmb3IgbmV3L29sZCBQQ0kgc3RydWN0dXJlIHN1cHBvcnQgDQor ICogKG5vdyB0aGUgZHJpdmVyIG9ubHkgc3VwcG9ydHMgdGhlIG5ldyBQQ0kg c3RydWN0dXJlKS4NCisgKg0KICAqIFJldmlzaW9uIDIuMi4xLjEgIDE5OTgv MDMvMTkgMTY6NDM6MTIgaXZhbg0KICAqIGFkZGVkIGNvbmRpdGlvbmFsIGNv bXBpbGF0aW9uIGZvciBuZXcvb2xkIFBDSSBzdHJ1Y3R1cmUgc3VwcG9ydDsN CiAgKiByZW1vdmVkIGtlcm5lbCBzZXJpZXMgKDIuMC54IC8gMi4xLngpIGNv bmRpdGlvbmFsIGNvbXBpbGF0aW9uLg0KQEAgLTQwLDcgKzQ1LDcgQEANCiAg KiBSZXZpc2lvbiAyLjEuMS4zICAxOTk4LzAzLzE2IDE4OjAxOjEyIGl2YW4N CiAgKiBjbGVhbmVkIHVwIHRoZSBkYXRhIGxvc3MgZml4Ow0KICAqIGZpeGVk IFhPTi9YT0ZGIGhhbmRsaW5nIG9uY2UgbW9yZSAoQ3ljbGFkZXMtWik7DQot ICogZ2VuZXJhbCByZXZpc2lvbiBpbiB0aGUgZHJpdmVyIHJvdXRpbmVzOw0K KyAqIGdlbmVyYWwgcmV2aWV3IG9mIHRoZSBkcml2ZXIgcm91dGluZXM7DQog ICogaW50cm9kdWN0aW9uIG9mIGEgbWVjaGFuaXNtIHRvIHByZXZlbnQgZGF0 YSBsb3NzIHdpdGggc2xvdyANCiAgKiBwcmludGVycywgYnkgZm9yY2luZyBh IGRlbGF5IGJlZm9yZSBjbG9zaW5nIHRoZSBwb3J0Lg0KICAqDQpAQCAtNDgy LDE0ICs0ODcsMTUgQEANCiAjZGVmaW5lIFpFX1YxCTINCiANCiAjZGVmaW5l CVNFUklBTF9QQVJBTk9JQV9DSEVDSw0KLSN1bmRlZglTRVJJQUxfREVCVUdf T1BFTg0KLSN1bmRlZglTRVJJQUxfREVCVUdfVEhST1RUTEUNCi0jdW5kZWYJ U0VSSUFMX0RFQlVHX09USEVSDQotI3VuZGVmCVNFUklBTF9ERUJVR19JTw0K LSN1bmRlZglTRVJJQUxfREVCVUdfQ09VTlQNCi0jdW5kZWYJU0VSSUFMX0RF QlVHX0RUUg0KLSN1bmRlZglDWUNMT01fMTZZX0hBQ0sNCi0jdW5kZWYJQ1lD TE9NX0VOQUJMRV9NT05JVE9SSU5HDQorI3VuZGVmCUNZX0RFQlVHX09QRU4N CisjdW5kZWYJQ1lfREVCVUdfVEhST1RUTEUNCisjdW5kZWYJQ1lfREVCVUdf T1RIRVINCisjdW5kZWYJQ1lfREVCVUdfSU8NCisjdW5kZWYJQ1lfREVCVUdf Q09VTlQNCisjdW5kZWYJQ1lfREVCVUdfRFRSDQorI3VuZGVmCUNZX0RFQlVH X1dBSVRfVU5USUxfU0VOVA0KKyN1bmRlZglDWV8xNllfSEFDSw0KKyN1bmRl ZglDWV9FTkFCTEVfTU9OSVRPUklORw0KICN1bmRlZglDWV9QQ0lfREVCVUcN CiANCiAjaWYgMA0KQEAgLTUxOSw0MCArNTI1LDM4IEBADQogCQkgIChjeV9y ZWFkbCgmYnVmX2N0cmwtPnR4X2J1ZnNpemUpIC0gMSkpDQogI2VuZGlmDQog DQorLyoNCisgKiBJbmNsdWRlIHNlY3Rpb24gDQorICovDQorI2luY2x1ZGUg PGxpbnV4L2NvbmZpZy5oPg0KICNpbmNsdWRlIDxsaW51eC9tb2R1bGUuaD4N Ci0NCiAjaW5jbHVkZSA8bGludXgvZXJybm8uaD4NCiAjaW5jbHVkZSA8bGlu dXgvc2lnbmFsLmg+DQogI2luY2x1ZGUgPGxpbnV4L3NjaGVkLmg+DQogI2lu Y2x1ZGUgPGxpbnV4L3RpbWVyLmg+DQorI2luY2x1ZGUgPGxpbnV4L2ludGVy cnVwdC5oPg0KICNpbmNsdWRlIDxsaW51eC90dHkuaD4NCiAjaW5jbHVkZSA8 bGludXgvc2VyaWFsLmg+DQotI2luY2x1ZGUgPGxpbnV4L2ludGVycnVwdC5o Pg0KKyNpbmNsdWRlIDxsaW51eC9tYWpvci5oPg0KICNpbmNsdWRlIDxsaW51 eC9zdHJpbmcuaD4NCiAjaW5jbHVkZSA8bGludXgvZmNudGwuaD4NCiAjaW5j bHVkZSA8bGludXgvcHRyYWNlLmg+DQogI2luY2x1ZGUgPGxpbnV4L2N5Y2xh ZGVzLmg+DQotI2luY2x1ZGUgPGxpbnV4L2RlbGF5Lmg+DQotI2luY2x1ZGUg PGxpbnV4L21ham9yLmg+DQogI2luY2x1ZGUgPGxpbnV4L21tLmg+DQorI2lu Y2x1ZGUgPGxpbnV4L2luaXQuaD4NCisjaW5jbHVkZSA8bGludXgvZGVsYXku aD4NCiANCiAjaW5jbHVkZSA8YXNtL3N5c3RlbS5oPg0KICNpbmNsdWRlIDxh c20vaW8uaD4NCi0jaW5jbHVkZSA8YXNtL3NlZ21lbnQuaD4NCisjaW5jbHVk ZSA8YXNtL2lycS5oPg0KKyNpbmNsdWRlIDxhc20vdWFjY2Vzcy5oPg0KICNp bmNsdWRlIDxhc20vYml0b3BzLmg+DQogDQotI2luY2x1ZGUgPGxpbnV4L2Nv bmZpZy5oPg0KICNpbmNsdWRlIDxsaW51eC90eXBlcy5oPg0KICNpbmNsdWRl IDxsaW51eC9rZXJuZWwuaD4NCi0jaWZuZGVmIE5FV19QQ0kNCi0jaW5jbHVk ZSA8bGludXgvYmlvczMyLmg+DQotI2VuZGlmDQogI2luY2x1ZGUgPGxpbnV4 L3BjaS5oPg0KLQ0KICNpbmNsdWRlIDxsaW51eC92ZXJzaW9uLmg+DQogDQot I2luY2x1ZGUgPGFzbS91YWNjZXNzLmg+DQotI2luY2x1ZGUgPGxpbnV4L2lu aXQuaD4NCiANCiAjZGVmaW5lIGN5X3B1dF91c2VyCXB1dF91c2VyDQogDQpA QCAtNTg1LDE5ICs1ODksMTYgQEANCiANCiAjZGVmaW5lIFNURF9DT01fRkxB R1MgKDApDQogDQotI2RlZmluZSBTRVJJQUxfVFlQRV9OT1JNQUwgIDENCi0j ZGVmaW5lIFNFUklBTF9UWVBFX0NBTExPVVQgMg0KLQ0KIHN0YXRpYyBERUNM QVJFX1RBU0tfUVVFVUUodHFfY3ljbGFkZXMpOw0KIA0KIHN0YXRpYyBzdHJ1 Y3QgdHR5X2RyaXZlciBjeV9zZXJpYWxfZHJpdmVyLCBjeV9jYWxsb3V0X2Ry aXZlcjsNCitzdGF0aWMgaW50IHNlcmlhbF9yZWZjb3VudDsNCiANCiBzdGF0 aWMgdm9sYXRpbGUgaW50IGN5X2lycV90cmlnZ2VyZWQ7DQogc3RhdGljIHZv bGF0aWxlIGludCBjeV90cmlnZ2VyZWQ7DQogc3RhdGljIGludCBjeV93aWxk X2ludF9tYXNrOw0KIHN0YXRpYyB2b2xhdGlsZSB1Y2NoYXIgKmludHJfYmFz ZV9hZGRyOw0KIA0KLQ0KIC8qIFRoaXMgaXMgdGhlIGFkZHJlc3MgbG9va3Vw IHRhYmxlLiBUaGUgZHJpdmVyIHdpbGwgcHJvYmUgZm9yDQogICAgQ3ljbG9t LVkvSVNBIGJvYXJkcyBhdCBhbGwgYWRkcmVzc2VzIGluIGhlcmUuIElmIHlv dSB3YW50IHRoZQ0KICAgIGRyaXZlciB0byBwcm9iZSBhZGRyZXNzZXMgYXQg YSBkaWZmZXJlbnQgYWRkcmVzcywgYWRkIGl0IHRvDQpAQCAtNjMyLDggKzYz Myw2IEBADQogDQogc3RhdGljIGludCBjeV9uZXh0X2NoYW5uZWwgPSAwOyAv KiBuZXh0IG1pbm9yIGF2YWlsYWJsZSAqLw0KIA0KLXN0YXRpYyBpbnQgc2Vy aWFsX3JlZmNvdW50Ow0KLQ0KIHN0YXRpYyBzdHJ1Y3QgdHR5X3N0cnVjdCAq c2VyaWFsX3RhYmxlW05SX1BPUlRTXTsNCiBzdGF0aWMgc3RydWN0IHRlcm1p b3MgKnNlcmlhbF90ZXJtaW9zW05SX1BPUlRTXTsNCiBzdGF0aWMgc3RydWN0 IHRlcm1pb3MgKnNlcmlhbF90ZXJtaW9zX2xvY2tlZFtOUl9QT1JUU107DQpA QCAtNjQxLDggKzY0MCw3IEBADQogLyogVGhpcyBpcyB0aGUgcGVyLWlycSBk YXRhIHN0cnVjdHVyZSwNCiAgICBpdCBtYXBzIGFuIGlycSB0byB0aGUgY29y cmVzcG9uZGluZyBjYXJkICovDQogDQotc3RhdGljIHN0cnVjdCBjeWNsYWRl c19jYXJkICAgICAqSVJRX2NhcmRzWzE2XTsNCi0NCitzdGF0aWMgc3RydWN0 IGN5Y2xhZGVzX2NhcmQgICAgICpJUlFfY2FyZHNbTlJfSVJRU107DQogDQog LyoNCiAgKiB0bXBfYnVmIGlzIHVzZWQgYXMgYSB0ZW1wb3JhcnkgYnVmZmVy IGJ5IHNlcmlhbF93cml0ZS4gIFdlIG5lZWQgdG8NCkBAIC02NTQsNyArNjUy LDcgQEANCiAgKiBtZW1vcnkgaWYgbGFyZ2UgbnVtYmVycyBvZiBzZXJpYWwg cG9ydHMgYXJlIG9wZW4uICBUaGlzIGJ1ZmZlciBpcw0KICAqIGFsbG9jYXRl ZCB3aGVuIHRoZSBmaXJzdCBjeV9vcGVuIG9jY3Vycy4NCiAgKi8NCi1zdGF0 aWMgdW5zaWduZWQgY2hhciAqdG1wX2J1ZiA9IDA7DQorc3RhdGljIHVuc2ln bmVkIGNoYXIgKnRtcF9idWY7DQogc3RhdGljIHN0cnVjdCBzZW1hcGhvcmUg dG1wX2J1Zl9zZW0gPSBNVVRFWDsNCiANCiAvKg0KQEAgLTc5OSw0MSArNzk3 LDYgQEANCiAgICAgICAgIHJldHVybiAwOw0KIH0gLyogc2VyaWFsX3BhcmFu b2lhX2NoZWNrICovDQogDQotDQotLyogVGhlIGZvbGxvd2luZyBkaWFnbm9z dGljIHJvdXRpbmVzIGFsbG93IHRoZSBkcml2ZXIgdG8gc3Bldw0KLSAgIGlu Zm9ybWF0aW9uIG9uIHRoZSBzY3JlZW4sIGV2ZW4gKGVzcGVjaWFsbHkhKSBk dXJpbmcgaW50ZXJydXB0cy4NCi0gKi8NCi1zdGF0aWMgdm9pZA0KLVNQKGNo YXIgKmRhdGEpew0KLSAgdW5zaWduZWQgbG9uZyBmbGFnczsNCi0gICAgc2F2 ZV9mbGFncyhmbGFncyk7IGNsaSgpOw0KLSAgICAgICAgY29uc29sZV9wcmlu dChkYXRhKTsNCi0gICAgcmVzdG9yZV9mbGFncyhmbGFncyk7DQotfS8qIFNQ ICovDQotDQotc3RhdGljIHZvaWQNCi1DUChjaGFyIGRhdGEpew0KLSAgdW5z aWduZWQgbG9uZyBmbGFnczsNCi0gIGNoYXIgc2NyblsyXTsNCi0gICAgc2F2 ZV9mbGFncyhmbGFncyk7IGNsaSgpOw0KLSAgICAgICAgc2NyblswXSA9IGRh dGE7DQotICAgICAgICBzY3JuWzFdID0gJ1wwJzsNCi0gICAgICAgIGNvbnNv bGVfcHJpbnQoc2Nybik7DQotICAgIHJlc3RvcmVfZmxhZ3MoZmxhZ3MpOw0K LX0vKiBDUCAqLw0KLQ0KLXN0YXRpYyB2b2lkIENQNChpbnQgZGF0YSkNCi0g ICAgeyAoZGF0YTwxMCk/ICBDUChkYXRhKycwJyk6IENQKGRhdGErJ0EnLTEw KTsgfS8qIENQNCAqLw0KLXN0YXRpYyB2b2lkIENQOChpbnQgZGF0YSkNCi0g ICAgeyBDUDQoKGRhdGE+PjQpICYgMHgwZik7IENQNCggZGF0YSAmIDB4MGYp OyB9LyogQ1A4ICovDQotI2lmIDANCi1zdGF0aWMgdm9pZCBDUDE2KGludCBk YXRhKQ0KLSAgICB7IENQOCgoZGF0YT4+OCkgJiAweGZmKTsgQ1A4KGRhdGEg JiAweGZmKTsgfS8qIENQMTYgKi8NCi1zdGF0aWMgdm9pZCBDUDMyKGxvbmcg ZGF0YSkNCi0gICAgeyBDUDE2KChkYXRhPj4xNikgJiAweGZmZmYpOyBDUDE2 KGRhdGEgJiAweGZmZmYpOyB9LyogQ1AzMiAqLw0KLSNlbmRpZg0KLQ0KLQ0K IC8qDQogICogVGhpcyByb3V0aW5lIGlzIHVzZWQgYnkgdGhlIGludGVycnVw dCBoYW5kbGVyIHRvIHNjaGVkdWxlDQogICogcHJvY2Vzc2luZyBpbiB0aGUg c29mdHdhcmUgaW50ZXJydXB0IHBvcnRpb24gb2YgdGhlIGRyaXZlcg0KQEAg LTExMjUsMTEgKzEwODgsNiBAQA0KICAgICAgICAgaWYoY3lfcmVhZGIoaW50 cl9iYXNlX2FkZHIrKEN5U1ZSUjw8aW5kZXgpKSAhPSAwKSB7DQogICAgICAg ICAgICAgc2F2ZV94aXIgPSAodV9jaGFyKSBjeV9yZWFkYihpbnRyX2Jhc2Vf YWRkcisoQ3lUSVI8PGluZGV4KSk7DQogICAgICAgICAgICAgc2F2ZV9jYXIg PSBjeV9yZWFkYihpbnRyX2Jhc2VfYWRkcisoQ3lDQVI8PGluZGV4KSk7DQot ICAgICAgICAgICAgaWYgKChzYXZlX3hpciAmIDB4MykgIT0gMCl7DQotICAg ICAgICAgICAgICAgIFNQKCJjaGFubmVsICIpOw0KLSAgICAgICAgICAgICAg ICBDUDgoc2F2ZV94aXIpOw0KLSAgICAgICAgICAgICAgICBTUCgiIHJlcXVl c3RpbmcgdW5leHBlY3RlZCBpbnRlcnJ1cHRcbiIpOw0KLSAgICAgICAgICAg IH0NCiAgICAgICAgICAgICBjeV93cml0ZWIoKHVfbG9uZylpbnRyX2Jhc2Vf YWRkcisoQ3lDQVI8PGluZGV4KSwgKHNhdmVfeGlyICYgMHgzKSk7DQogICAg ICAgICAgICAgY3lfd3JpdGViKCh1X2xvbmcpaW50cl9iYXNlX2FkZHIrKEN5 U1JFUjw8aW5kZXgpLA0KICAgICAgICAgICAgICAgICBjeV9yZWFkYihpbnRy X2Jhc2VfYWRkcisoQ3lTUkVSPDxpbmRleCkpICYgfkN5VHhNcHR5KTsNCkBA IC0xMjg2LDcgKzEyNDQsNyBAQA0KICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAvKiBsb2FkICMgY2hhcnMgYXZhaWxhYmxlIGZyb20gdGhlIGNoaXAg Ki8NCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2hhcl9jb3VudCA9 IGN5X3JlYWRiKGJhc2VfYWRkcisoQ3lSRENSPDxpbmRleCkpOw0KIA0KLSNp ZmRlZiBDWUNMT01fRU5BQkxFX01PTklUT1JJTkcNCisjaWZkZWYgQ1lfRU5B QkxFX01PTklUT1JJTkcNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg KytpbmZvLT5tb24uaW50X2NvdW50Ow0KICAgICAgICAgICAgICAgICAgICAg ICAgICAgICBpbmZvLT5tb24uY2hhcl9jb3VudCArPSBjaGFyX2NvdW50Ow0K ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoY2hhcl9jb3VudCA+ IGluZm8tPm1vbi5jaGFyX21heCkNCkBAIC0xMzAxLDcgKzEyNTksNyBAQA0K ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGF0YSA9IGN5X3Jl YWRiKGJhc2VfYWRkcisoQ3lSRFNSPDxpbmRleCkpOw0KICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgKnR0eS0+ZmxpcC5mbGFnX2J1Zl9wdHIr KyA9IFRUWV9OT1JNQUw7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAqdHR5LT5mbGlwLmNoYXJfYnVmX3B0cisrID0gZGF0YTsNCi0jaWZk ZWYgQ1lDTE9NXzE2WV9IQUNLDQorI2lmZGVmIENZXzE2WV9IQUNLDQogICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1ZGVsYXkoMTBMKTsNCiAj ZW5kaWYNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQ0KQEAgLTEz ODcsMTEgKzEzNDUsOSBAQA0KICAgICAgICAgICAgICAgICAgICAgICAgIGlu Zm8tPnhfYnJlYWsgPSAwOw0KICAgICAgICAgICAgICAgICAgICAgfQ0KIA0K LSNpZmRlZiBORVdfSU5UUl9GTE9XDQogICAgICAgICAgICAgICAgICAgICBp ZiAoIWluZm8tPnhtaXRfY250KXsNCiAgICAgICAgICAgICAgICAgICAgICAg ICBjeV93cml0ZWIoKHVfbG9uZyliYXNlX2FkZHIrKEN5U1JFUjw8aW5kZXgp LA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIGN5X3JlYWRiKGJhc2Vf YWRkcisoQ3lTUkVSPDxpbmRleCkpICYgfkN5VHhNcHR5KTsNCi0gICAgICAg ICAgICAgICAgICAgICAgICBjeV9zY2hlZF9ldmVudChpbmZvLCBDeV9FVkVO VF9TSFVURE9XTl9XQUtFVVApOw0KICAgICAgICAgICAgICAgICAgICAgICAg IGdvdG8gdHhkb25lOw0KICAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAg ICAgICAgICAgICAgICAgaWYgKGluZm8tPnhtaXRfYnVmID09IDApew0KQEAg LTE0MDQsMjggKzEzNjAsMTAgQEANCiAgICAgICAgICAgICAgICAgICAgICAg ICAgICBjeV9yZWFkYihiYXNlX2FkZHIrKEN5U1JFUjw8aW5kZXgpKSAmIH5D eVR4TXB0eSk7DQogICAgICAgICAgICAgICAgICAgICAgICAgZ290byB0eGRv bmU7DQogICAgICAgICAgICAgICAgICAgICB9DQotI2VuZGlmDQogICAgICAg ICAgICAgICAgICAgICB3aGlsZSAoY2hhcl9jb3VudC0tID4gMCl7DQotI2lm ZGVmIE5FV19JTlRSX0ZMT1cNCiAgICAgICAgICAgICAgICAgICAgICAgICBp ZiAoIWluZm8tPnhtaXRfY250KXsNCiAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgZ290byB0eGRvbmU7DQogICAgICAgICAgICAgICAgICAgICAgICAg fQ0KLSNlbHNlDQotICAgICAgICAgICAgICAgICAgICAgICAgaWYgKCFpbmZv LT54bWl0X2NudCl7DQotICAgICAgICAgICAgICAgICAgICAgICAgICAgIGN5 X3dyaXRlYigodV9sb25nKWJhc2VfYWRkcisoQ3lTUkVSPDxpbmRleCksDQot ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGN5X3JlYWRiKGJhc2Vf YWRkcisoQ3lTUkVSPDxpbmRleCkpICYgfkN5VHhNcHR5KTsNCi0gICAgICAg ICAgICAgICAgICAgICAgICAgICAgZ290byB0eGRvbmU7DQotICAgICAgICAg ICAgICAgICAgICAgICAgfQ0KLSAgICAgICAgICAgICAgICAgICAgICAgIGlm IChpbmZvLT54bWl0X2J1ZiA9PSAwKXsNCi0gICAgICAgICAgICAgICAgICAg ICAgICAgICAgY3lfd3JpdGViKCh1X2xvbmcpYmFzZV9hZGRyKyhDeVNSRVI8 PGluZGV4KSwNCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY3lf cmVhZGIoYmFzZV9hZGRyKyhDeVNSRVI8PGluZGV4KSkgJiB+Q3lUeE1wdHkp Ow0KLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBnb3RvIHR4ZG9uZTsN Ci0gICAgICAgICAgICAgICAgICAgICAgICB9DQotICAgICAgICAgICAgICAg ICAgICAgICAgaWYgKGluZm8tPnR0eS0+c3RvcHBlZCB8fCBpbmZvLT50dHkt Pmh3X3N0b3BwZWQpew0KLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBj eV93cml0ZWIoKHVfbG9uZyliYXNlX2FkZHIrKEN5U1JFUjw8aW5kZXgpLA0K LSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjeV9yZWFkYihiYXNl X2FkZHIrKEN5U1JFUjw8aW5kZXgpKSAmIH5DeVR4TXB0eSk7DQotCQkJfQ0K LSNlbmRpZg0KICAgICAgICAgICAgICAgICAgICAgICAgIC8qIEJlY2F1c2Ug dGhlIEVtYmVkZGVkIFRyYW5zbWl0IENvbW1hbmRzIGhhdmUNCiAgICAgICAg ICAgICAgICAgICAgICAgICAgICBiZWVuIGVuYWJsZWQsIHdlIG11c3QgY2hl Y2sgdG8gc2VlIGlmIHRoZQ0KIAkJCSAgIGVzY2FwZSBjaGFyYWN0ZXIsIE5V TEwsIGlzIGJlaW5nIHNlbnQuICBJZiBpdA0KQEAgLTE3MjUsMTQgKzE2NjMs MTIgQEANCiAJCSAgICBpZiAoKGZ3X3ZlciA+IDI0MSA/IA0KICAgICAgICAg ICAgICAgICAgICAgICAgICAgKCh1X2xvbmcpcGFyYW0pIDogDQogICAgICAg ICAgICAgICAgICAgICAgICAgICBjeV9yZWFkbCgmY2hfY3RybFtjaGFubmVs XS5yc19zdGF0dXMpKSAmIENfUlNfRENEKSB7DQotCQkJLyogU1AoIk9wZW4g V2FrZXVwXG4iKTsgKi8NCiAJCQljeV9zY2hlZF9ldmVudChpbmZvLA0KIAkJ CSAgICBDeV9FVkVOVF9PUEVOX1dBS0VVUCk7DQogCQkgICAgfWVsc2UgaWYo ISgoaW5mby0+ZmxhZ3MNCiAJCQkJJiBBU1lOQ19DQUxMT1VUX0FDVElWRSkN CiAJCQkgJiYoaW5mby0+ZmxhZ3MNCiAJCQkgICAgJiBBU1lOQ19DQUxMT1VU X05PSFVQKSkpew0KLQkJCS8qIFNQKCJIYW5ndXBcbiIpOyAqLw0KIAkJCWN5 X3NjaGVkX2V2ZW50KGluZm8sDQogCQkJICAgIEN5X0VWRU5UX0hBTkdVUCk7 DQogCQkgICAgfQ0KQEAgLTE3NDQsNyArMTY4MCw2IEBADQogCQkJaWYoIGN5 X3JlYWRsKCZjaF9jdHJsW2NoYW5uZWxdLnJzX3N0YXR1cykgJiBDX1JTX0RD RCl7DQogCQkJICAgIC8qIGN5X3N0YXJ0IGlzbid0IHVzZWQgYmVjYXVzZS4u LiANCiAJCQkgICAgICAgSFcgZmxvdyBpcyBoYW5kbGVkIGJ5IHRoZSBib2Fy ZCAqLw0KLQkJCSAgICAvKiBTUCgiV3JpdGUgV2FrZXVwXG4iKTsgKi8NCiAJ CQkgICAgY3lfc2NoZWRfZXZlbnQoaW5mbywNCiAJCQkJQ3lfRVZFTlRfV1JJ VEVfV0FLRVVQKTsNCiAJCQl9DQpAQCAtMTc1Miw3ICsxNjg3LDYgQEANCiAJ CQlpZighKGN5X3JlYWRsKCZjaF9jdHJsW2NoYW5uZWxdLnJzX3N0YXR1cykg JiBDX1JTX0NUUykpew0KIAkJCSAgICAvKiBjeV9zdG9wIGlzbid0IHVzZWQg YmVjYXVzZSANCiAJCQkgICAgICAgSFcgZmxvdyBpcyBoYW5kbGVkIGJ5IHRo ZSBib2FyZCAqLw0KLQkJCSAgICAvKiBTUCgiV3JpdGUgc3RvcFxuIik7ICov DQogCQkJfQ0KIAkJICAgIH0NCiAJCX0NCkBAIC0xNzk2LDcgKzE3MzAsNyBA QA0KIAkJaW5mby0+bGFzdF9hY3RpdmUgPSBqaWZmaWVzOw0KIAkJaW5mby0+ amlmZmllc1sxXSA9IGppZmZpZXM7DQogDQotI2lmZGVmIENZQ0xPTV9FTkFC TEVfTU9OSVRPUklORw0KKyNpZmRlZiBDWV9FTkFCTEVfTU9OSVRPUklORw0K IAkJaW5mby0+bW9uLmludF9jb3VudCsrOw0KIAkJaW5mby0+bW9uLmNoYXJf Y291bnQgKz0gY2hhcl9jb3VudDsNCiAJCWlmIChjaGFyX2NvdW50ID4gaW5m by0+bW9uLmNoYXJfbWF4KQ0KQEAgLTE4MDYsNyArMTc0MCw2IEBADQogCQlp ZiggdHR5ID09IDApew0KIAkJICAgIC8qIGZsdXNoIHJlY2VpdmVkIGNoYXJh Y3RlcnMgKi8NCiAJCSAgICByeF9nZXQgPSAocnhfZ2V0ICsgY2hhcl9jb3Vu dCkgJiAocnhfYnVmc2l6ZSAtIDEpOw0KLQkJICAgIC8qIFNQKCItIik7ICov DQogCQkgICAgaW5mby0+cmZsdXNoX2NvdW50Kys7DQogCQl9ZWxzZXsNCiAj aWZkZWYgQkxPQ0tNT1ZFDQpAQCAtMTk4Niw3ICsxOTE5LDcgQEANCiAJYmFz ZV9hZGRyID0gKHVuc2lnbmVkIGNoYXIqKQ0KIAkJICAgKGN5X2NhcmRbY2Fy ZF0uYmFzZV9hZGRyICsgKGN5X2NoaXBfb2Zmc2V0W2NoaXBdPDxpbmRleCkp Ow0KIA0KLSNpZmRlZiBTRVJJQUxfREVCVUdfT1BFTg0KKyNpZmRlZiBDWV9E RUJVR19PUEVODQogCXByaW50aygiY3ljIHN0YXJ0dXAgY2FyZCAlZCwgY2hp cCAlZCwgY2hhbm5lbCAlZCwgYmFzZV9hZGRyICVseFxuIiwNCiAJICAgICBj YXJkLCBjaGlwLCBjaGFubmVsLCAobG9uZyliYXNlX2FkZHIpOy8qKi8NCiAj ZW5kaWYNCkBAIC0yMDA0LDcgKzE5MzcsNyBAQA0KIAkgICAgY3lfd3JpdGVi KCh1bG9uZyliYXNlX2FkZHIrKEN5TVNWUjE8PGluZGV4KSwgQ3lSVFMpOw0K IAkgICAgY3lfd3JpdGViKCh1bG9uZyliYXNlX2FkZHIrKEN5TVNWUjI8PGlu ZGV4KSwgQ3lEVFIpOw0KIA0KLSNpZmRlZiBTRVJJQUxfREVCVUdfRFRSDQor I2lmZGVmIENZX0RFQlVHX0RUUg0KIAkgICAgcHJpbnRrKCJjeWM6c3RhcnR1 cCByYWlzaW5nIERUUlxuIik7DQogCSAgICBwcmludGsoIiAgICAgc3RhdHVz OiAweCV4LCAweCV4XG4iLA0KIAkJICAgY3lfcmVhZGIoYmFzZV9hZGRyKyhD eU1TVlIxPDxpbmRleCkpLCANCkBAIC0yMDQwLDcgKzE5NzMsNyBAQA0KIAli b2FyZF9jdHJsID0gJnpmd19jdHJsLT5ib2FyZF9jdHJsOw0KIAljaF9jdHJs ID0gemZ3X2N0cmwtPmNoX2N0cmw7DQogDQotI2lmZGVmIFNFUklBTF9ERUJV R19PUEVODQorI2lmZGVmIENZX0RFQlVHX09QRU4NCiAJcHJpbnRrKCJjeWMg c3RhcnR1cCBaIGNhcmQgJWQsIGNoYW5uZWwgJWQsIGJhc2VfYWRkciAlbHhc biIsDQogCSAgICAgY2FyZCwgY2hhbm5lbCwgKGxvbmcpYmFzZV9hZGRyKTsv KiovDQogI2VuZGlmDQpAQCAtMjA2OCw3ICsyMDAxLDcgQEANCiAJaWYgKHJl dHZhbCAhPSAwKXsNCiAJICAgIHByaW50aygiY3ljOnN0YXJ0dXAoMikgcmV0 dmFsIHdhcyAleFxuIiwgcmV0dmFsKTsNCiAJfQ0KLSNpZmRlZiBTRVJJQUxf REVCVUdfRFRSDQorI2lmZGVmIENZX0RFQlVHX0RUUg0KIAkgICAgcHJpbnRr KCJjeWM6c3RhcnR1cCByYWlzaW5nIFogRFRSXG4iKTsNCiAjZW5kaWYNCiAN CkBAIC0yMDgyLDcgKzIwMTUsNyBAQA0KIA0KICAgICB9DQogDQotI2lmZGVm IFNFUklBTF9ERUJVR19PUEVODQorI2lmZGVmIENZX0RFQlVHX09QRU4NCiAJ cHJpbnRrKCIgY3ljIHN0YXJ0dXAgZG9uZVxuIik7DQogI2VuZGlmDQogCXJl dHVybiAwOw0KQEAgLTIxNDIsNyArMjA3NSw3IEBADQogCQkgICAgICAgKGN5 X2NhcmRbY2FyZF0uYmFzZV9hZGRyDQogCQkgICAgICAgKyAoY3lfY2hpcF9v ZmZzZXRbY2hpcF08PGluZGV4KSk7DQogDQotI2lmZGVmIFNFUklBTF9ERUJV R19PUEVODQorI2lmZGVmIENZX0RFQlVHX09QRU4NCiAgICAgcHJpbnRrKCJj eWMgc2h1dGRvd24gWSBjYXJkICVkLCBjaGlwICVkLCBjaGFubmVsICVkLCBi YXNlX2FkZHIgJWx4XG4iLA0KIAkJY2FyZCwgY2hpcCwgY2hhbm5lbCwgKGxv bmcpYmFzZV9hZGRyKTsNCiAjZW5kaWYNCkBAIC0yMTU5LDcgKzIwOTIsNyBA QA0KIAkgICAgaWYgKCFpbmZvLT50dHkgfHwgKGluZm8tPnR0eS0+dGVybWlv cy0+Y19jZmxhZyAmIEhVUENMKSkgew0KIAkJY3lfd3JpdGViKCh1X2xvbmcp YmFzZV9hZGRyKyhDeU1TVlIxPDxpbmRleCksIH5DeVJUUyk7DQogCQljeV93 cml0ZWIoKHVfbG9uZyliYXNlX2FkZHIrKEN5TVNWUjI8PGluZGV4KSwgfkN5 RFRSKTsNCi0jaWZkZWYgU0VSSUFMX0RFQlVHX0RUUg0KKyNpZmRlZiBDWV9E RUJVR19EVFINCiAJCXByaW50aygiY3ljIHNodXRkb3duIGRyb3BwaW5nIERU UlxuIik7DQogCQlwcmludGsoIiAgICAgc3RhdHVzOiAweCV4LCAweCV4XG4i LA0KIAkJICAgIGN5X3JlYWRiKGJhc2VfYWRkcisoQ3lNU1ZSMTw8aW5kZXgp KSwgDQpAQCAtMjE4Myw3ICsyMTE2LDcgQEANCiAgICAgICBpbnQgcmV0dmFs Ow0KIA0KIAliYXNlX2FkZHIgPSAodW5zaWduZWQgY2hhciopIChjeV9jYXJk W2NhcmRdLmJhc2VfYWRkcik7DQotI2lmZGVmIFNFUklBTF9ERUJVR19PUEVO DQorI2lmZGVmIENZX0RFQlVHX09QRU4NCiAgICAgcHJpbnRrKCJjeWMgc2h1 dGRvd24gWiBjYXJkICVkLCBjaGFubmVsICVkLCBiYXNlX2FkZHIgJWx4XG4i LA0KIAkJY2FyZCwgY2hhbm5lbCwgKGxvbmcpYmFzZV9hZGRyKTsNCiAjZW5k aWYNCkBAIC0yMjE3LDcgKzIxNTAsNyBAQA0KIAkJaWYgKHJldHZhbCAhPSAw KXsNCiAJCSAgICBwcmludGsoImN5YzpzaHV0ZG93biByZXR2YWwgKDIpIHdh cyAleFxuIiwgcmV0dmFsKTsNCiAJCX0NCi0jaWZkZWYgU0VSSUFMX0RFQlVH X0RUUg0KKyNpZmRlZiBDWV9ERUJVR19EVFINCiAJCXByaW50aygiY3ljOnNo dXRkb3duIGRyb3BwaW5nIFogRFRSXG4iKTsNCiAjZW5kaWYNCiAJICAgIH0N CkBAIC0yMjMwLDcgKzIxNjMsNyBAQA0KIAlyZXN0b3JlX2ZsYWdzKGZsYWdz KTsNCiAgICAgfQ0KIA0KLSNpZmRlZiBTRVJJQUxfREVCVUdfT1BFTg0KKyNp ZmRlZiBDWV9ERUJVR19PUEVODQogICAgIHByaW50aygiIGN5YyBzaHV0ZG93 biBkb25lXG4iKTsNCiAjZW5kaWYNCiAgICAgcmV0dXJuOw0KQEAgLTIyNjIs MTEgKzIxOTUsNyBAQA0KIAlpZiAoaW5mby0+ZmxhZ3MgJiBBU1lOQ19DTE9T SU5HKSB7DQogICAgICAgICAgICAgaW50ZXJydXB0aWJsZV9zbGVlcF9vbigm aW5mby0+Y2xvc2Vfd2FpdCk7DQogCX0NCi0gICAgICAgIGlmIChpbmZvLT5m bGFncyAmIEFTWU5DX0hVUF9OT1RJRlkpew0KLSAgICAgICAgICAgIHJldHVy biAtRUFHQUlOOw0KLSAgICAgICAgfWVsc2V7DQotICAgICAgICAgICAgcmV0 dXJuIC1FUkVTVEFSVFNZUzsNCi0gICAgICAgIH0NCisgICAgICAgIHJldHVy biAoKGluZm8tPmZsYWdzICYgQVNZTkNfSFVQX05PVElGWSkgPyAtRUFHQUlO IDogLUVSRVNUQVJUU1lTKTsNCiAgICAgfQ0KIA0KICAgICAvKg0KQEAgLTIz MTMsNyArMjI0Miw3IEBADQogICAgICAqLw0KICAgICByZXR2YWwgPSAwOw0K ICAgICBhZGRfd2FpdF9xdWV1ZSgmaW5mby0+b3Blbl93YWl0LCAmd2FpdCk7 DQotI2lmZGVmIFNFUklBTF9ERUJVR19PUEVODQorI2lmZGVmIENZX0RFQlVH X09QRU4NCiAgICAgcHJpbnRrKCJjeWMgYmxvY2tfdGlsX3JlYWR5IGJlZm9y ZSBibG9jazogdHR5QyVkLCBjb3VudCA9ICVkXG4iLA0KICAgICAgICAgICAg aW5mby0+bGluZSwgaW5mby0+Y291bnQpOy8qKi8NCiAjZW5kaWYNCkBAIC0y MzIxLDcgKzIyNTAsNyBAQA0KICAgICBpZiAoIXR0eV9odW5nX3VwX3AoZmls cCkpDQogCWluZm8tPmNvdW50LS07DQogICAgIHJlc3RvcmVfZmxhZ3MoZmxh Z3MpOw0KLSNpZmRlZiBTRVJJQUxfREVCVUdfQ09VTlQNCisjaWZkZWYgQ1lf REVCVUdfQ09VTlQNCiAgICAgcHJpbnRrKCJjeWMgYmxvY2tfdGlsX3JlYWR5 OiAoJWQpOiBkZWNyZW1lbnRpbmcgY291bnQgdG8gJWRcbiIsDQogICAgICAg ICBjdXJyZW50LT5waWQsIGluZm8tPmNvdW50KTsNCiAjZW5kaWYNCkBAIC0y MzM4LDExICsyMjY3LDEyIEBADQogDQogCXdoaWxlICgxKSB7DQogCSAgICBz YXZlX2ZsYWdzKGZsYWdzKTsgY2xpKCk7DQotCQlpZiAoIShpbmZvLT5mbGFn cyAmIEFTWU5DX0NBTExPVVRfQUNUSVZFKSl7DQorCQlpZiAoIShpbmZvLT5m bGFncyAmIEFTWU5DX0NBTExPVVRfQUNUSVZFKSAmJg0KKwkJICAgICh0dHkt PnRlcm1pb3MtPmNfY2ZsYWcgJiBDQkFVRCkpew0KIAkJICAgIGN5X3dyaXRl YigodV9sb25nKWJhc2VfYWRkcisoQ3lDQVI8PGluZGV4KSwgKHVfY2hhcilj aGFubmVsKTsNCiAJCSAgICBjeV93cml0ZWIoKHVfbG9uZyliYXNlX2FkZHIr KEN5TVNWUjE8PGluZGV4KSwgQ3lSVFMpOw0KIAkJICAgIGN5X3dyaXRlYigo dV9sb25nKWJhc2VfYWRkcisoQ3lNU1ZSMjw8aW5kZXgpLCBDeURUUik7DQot I2lmZGVmIFNFUklBTF9ERUJVR19EVFINCisjaWZkZWYgQ1lfREVCVUdfRFRS DQogCQkgICAgcHJpbnRrKCJjeWM6YmxvY2tfdGlsX3JlYWR5IHJhaXNpbmcg RFRSXG4iKTsNCiAJCSAgICBwcmludGsoIiAgICAgc3RhdHVzOiAweCV4LCAw eCV4XG4iLA0KIAkJCWN5X3JlYWRiKGJhc2VfYWRkcisoQ3lNU1ZSMTw8aW5k ZXgpKSwgDQpAQCAtMjM1MywxMSArMjI4Myw4IEBADQogCSAgICBjdXJyZW50 LT5zdGF0ZSA9IFRBU0tfSU5URVJSVVBUSUJMRTsNCiAJICAgIGlmICh0dHlf aHVuZ191cF9wKGZpbHApDQogCSAgICB8fCAhKGluZm8tPmZsYWdzICYgQVNZ TkNfSU5JVElBTElaRUQpICl7DQotCQlpZiAoaW5mby0+ZmxhZ3MgJiBBU1lO Q19IVVBfTk9USUZZKSB7DQotCQkgICAgcmV0dmFsID0gLUVBR0FJTjsNCi0J CX1lbHNlew0KLQkJICAgIHJldHZhbCA9IC1FUkVTVEFSVFNZUzsNCi0JCX0N CisJCXJldHVybiAoKGluZm8tPmZsYWdzICYgQVNZTkNfSFVQX05PVElGWSkg PyANCisJCSAgICAtRUFHQUlOIDogLUVSRVNUQVJUU1lTKTsNCiAJCWJyZWFr Ow0KIAkgICAgfQ0KIAkgICAgc2F2ZV9mbGFncyhmbGFncyk7IGNsaSgpOw0K QEAgLTIzNzQsNyArMjMwMSw3IEBADQogCQlyZXR2YWwgPSAtRVJFU1RBUlRT WVM7DQogCQlicmVhazsNCiAJICAgIH0NCi0jaWZkZWYgU0VSSUFMX0RFQlVH X09QRU4NCisjaWZkZWYgQ1lfREVCVUdfT1BFTg0KIAkgICAgcHJpbnRrKCJj eWMgYmxvY2tfdGlsX3JlYWR5IGJsb2NraW5nOiB0dHlDJWQsIGNvdW50ID0g JWRcbiIsDQogCQkgICBpbmZvLT5saW5lLCBpbmZvLT5jb3VudCk7LyoqLw0K ICNlbmRpZg0KQEAgLTI0MDgsMTggKzIzMzUsMTUgQEANCiAJICAgIGlmIChy ZXR2YWwgIT0gMCl7DQogCQlwcmludGsoImN5YzpibG9ja190aWxfcmVhZHkg cmV0dmFsIHdhcyAleFxuIiwgcmV0dmFsKTsNCiAJICAgIH0NCi0jaWZkZWYg U0VSSUFMX0RFQlVHX0RUUg0KKyNpZmRlZiBDWV9ERUJVR19EVFINCiAJCSAg ICBwcmludGsoImN5YzpibG9ja190aWxfcmVhZHkgcmFpc2luZyBaIERUUlxu Iik7DQogI2VuZGlmDQogDQogCSAgICBjdXJyZW50LT5zdGF0ZSA9IFRBU0tf SU5URVJSVVBUSUJMRTsNCiAJICAgIGlmICh0dHlfaHVuZ191cF9wKGZpbHAp DQogCSAgICB8fCAhKGluZm8tPmZsYWdzICYgQVNZTkNfSU5JVElBTElaRUQp ICl7DQotCQlpZiAoaW5mby0+ZmxhZ3MgJiBBU1lOQ19IVVBfTk9USUZZKSB7 DQotCQkgICAgcmV0dmFsID0gLUVBR0FJTjsNCi0JCX1lbHNlew0KLQkJICAg IHJldHZhbCA9IC1FUkVTVEFSVFNZUzsNCi0JCX0NCisJCXJldHVybiAoKGlu Zm8tPmZsYWdzICYgQVNZTkNfSFVQX05PVElGWSkgPw0KKwkJICAgIC1FQUdB SU4gOiAtRVJFU1RBUlRTWVMpOw0KIAkJYnJlYWs7DQogCSAgICB9DQogCSAg ICBpZiAoIShpbmZvLT5mbGFncyAmIEFTWU5DX0NBTExPVVRfQUNUSVZFKQ0K QEAgLTI0MzIsNyArMjM1Niw3IEBADQogCQlyZXR2YWwgPSAtRVJFU1RBUlRT WVM7DQogCQlicmVhazsNCiAJICAgIH0NCi0jaWZkZWYgU0VSSUFMX0RFQlVH X09QRU4NCisjaWZkZWYgQ1lfREVCVUdfT1BFTg0KIAkgICAgcHJpbnRrKCJj eWMgYmxvY2tfdGlsX3JlYWR5IGJsb2NraW5nOiB0dHlDJWQsIGNvdW50ID0g JWRcbiIsDQogCQkgICBpbmZvLT5saW5lLCBpbmZvLT5jb3VudCk7LyoqLw0K ICNlbmRpZg0KQEAgLTI0NDMsMTMgKzIzNjcsMTMgQEANCiAgICAgcmVtb3Zl X3dhaXRfcXVldWUoJmluZm8tPm9wZW5fd2FpdCwgJndhaXQpOw0KICAgICBp ZiAoIXR0eV9odW5nX3VwX3AoZmlscCkpew0KIAlpbmZvLT5jb3VudCsrOw0K LSNpZmRlZiBTRVJJQUxfREVCVUdfQ09VTlQNCisjaWZkZWYgQ1lfREVCVUdf Q09VTlQNCiAJcHJpbnRrKCJjeWM6YmxvY2tfdGlsX3JlYWR5ICglZCk6IGlu Y3JlbWVudGluZyBjb3VudCB0byAlZFxuIiwNCiAJICAgIGN1cnJlbnQtPnBp ZCwgaW5mby0+Y291bnQpOw0KICNlbmRpZg0KICAgICB9DQogICAgIGluZm8t PmJsb2NrZWRfb3Blbi0tOw0KLSNpZmRlZiBTRVJJQUxfREVCVUdfT1BFTg0K KyNpZmRlZiBDWV9ERUJVR19PUEVODQogICAgIHByaW50aygiY3ljOmJsb2Nr X3RpbF9yZWFkeSBhZnRlciBibG9ja2luZzogdHR5QyVkLCBjb3VudCA9ICVk XG4iLA0KIAkgICBpbmZvLT5saW5lLCBpbmZvLT5jb3VudCk7LyoqLw0KICNl bmRpZg0KQEAgLTI0NjQsMTEgKzIzODgsMTIgQEANCiAgKiBUaGlzIHJvdXRp bmUgaXMgY2FsbGVkIHdoZW5ldmVyIGEgc2VyaWFsIHBvcnQgaXMgb3BlbmVk LiAgSXQNCiAgKiBwZXJmb3JtcyB0aGUgc2VyaWFsLXNwZWNpZmljIGluaXRp YWxpemF0aW9uIGZvciB0aGUgdHR5IHN0cnVjdHVyZS4NCiAgKi8NCi1pbnQN CitzdGF0aWMgaW50DQogY3lfb3BlbihzdHJ1Y3QgdHR5X3N0cnVjdCAqdHR5 LCBzdHJ1Y3QgZmlsZSAqIGZpbHApDQogew0KICAgc3RydWN0IGN5Y2xhZGVz X3BvcnQgICppbmZvOw0KICAgaW50IHJldHZhbCwgbGluZTsNCisgIHVuc2ln bmVkIGxvbmcgcGFnZTsNCiANCiAgICAgbGluZSA9IE1JTk9SKHR0eS0+ZGV2 aWNlKSAtIHR0eS0+ZHJpdmVyLm1pbm9yX3N0YXJ0Ow0KICAgICBpZiAoKGxp bmUgPCAwKSB8fCAoTlJfUE9SVFMgPD0gbGluZSkpew0KQEAgLTI0OTEsNDYg KzI0MTYsNTAgQEANCiAJCShaRklSTV9ITFQ9PWN5X3JlYWRsKCYoKHN0cnVj dCBGSVJNX0lEICopDQogCQkoKGN5X2NhcmRbaW5mby0+Y2FyZF0pLmJhc2Vf YWRkcitJRF9BRERSRVNTKSktPnNpZ25hdHVyZSkpKQ0KIAkgICAgew0KLQkJ cHJpbnRrICgiQ3ljbGFkZXMtWiBFcnJvcjogeW91IG5lZWQgYW4gZXh0ZXJu YWwgcG93ZXIgc3VwcGx5IGZvciB0aGlzIG51bWJlciBvZiBwb3J0cy5cblxy RmlybXdhcmUgaGFsdGVkLlxyXG4iKTsNCisJCXByaW50ayAoImN5YzpDeWNs YWRlcy1aIEVycm9yOiB5b3UgbmVlZCBhbiBleHRlcm5hbCBwb3dlciBzdXBw bHkgZm9yIHRoaXMgbnVtYmVyIG9mIHBvcnRzLlxuXHJGaXJtd2FyZSBoYWx0 ZWQuXHJcbiIpOw0KIAkgICAgfSBlbHNlIHsNCi0JCXByaW50aygiQ3ljbGFk ZXMtWiBmaXJtd2FyZSBub3QgeWV0IGxvYWRlZFxuIik7DQorCQlwcmludGso ImN5YzpDeWNsYWRlcy1aIGZpcm13YXJlIG5vdCB5ZXQgbG9hZGVkXG4iKTsN CiAJICAgIH0NCiAJICAgIHJldHVybiAtRU5PREVWOw0KIAl9DQogICAgIH0N Ci0jaWZkZWYgU0VSSUFMX0RFQlVHX09USEVSDQorI2lmZGVmIENZX0RFQlVH X09USEVSDQogICAgIHByaW50aygiY3ljOmN5X29wZW4gdHR5QyVkXG4iLCBp bmZvLT5saW5lKTsgLyogKi8NCiAjZW5kaWYNCiAgICAgaWYgKHNlcmlhbF9w YXJhbm9pYV9jaGVjayhpbmZvLCB0dHktPmRldmljZSwgImN5X29wZW4iKSl7 DQogICAgICAgICByZXR1cm4gLUVOT0RFVjsNCiAgICAgfQ0KLSNpZmRlZiBT RVJJQUxfREVCVUdfT1BFTg0KKyNpZmRlZiBDWV9ERUJVR19PUEVODQogICAg IHByaW50aygiY3ljOmN5X29wZW4gdHR5QyVkLCBjb3VudCA9ICVkXG4iLA0K ICAgICAgICAgaW5mby0+bGluZSwgaW5mby0+Y291bnQpOy8qKi8NCiAjZW5k aWYNCiAgICAgaW5mby0+Y291bnQrKzsNCi0jaWZkZWYgU0VSSUFMX0RFQlVH X0NPVU5UDQorI2lmZGVmIENZX0RFQlVHX0NPVU5UDQogICAgIHByaW50aygi Y3ljOmN5X29wZW4gKCVkKTogaW5jcmVtZW50aW5nIGNvdW50IHRvICVkXG4i LA0KICAgICAgICAgY3VycmVudC0+cGlkLCBpbmZvLT5jb3VudCk7DQogI2Vu ZGlmDQogICAgIHR0eS0+ZHJpdmVyX2RhdGEgPSBpbmZvOw0KICAgICBpbmZv LT50dHkgPSB0dHk7DQogDQotICAgIC8qIFNvbWUgZHJpdmVycyBoYXZlIChp bmNvcnJlY3QvaW5jb21wbGV0ZSkgY29kZSB0byB0ZXN0DQotICAgICAgIGFn YWluc3QgYSByYWNlIGNvbmRpdGlvbi4gIFNob3VsZCBhZGQgZ29vZCBjb2Rl IGhlcmUhISEgKi8NCiAgICAgaWYgKCF0bXBfYnVmKSB7DQotICAgICAgICB0 bXBfYnVmID0gKHVuc2lnbmVkIGNoYXIgKikgZ2V0X2ZyZWVfcGFnZShHRlBf S0VSTkVMKTsNCi0gICAgICAgIGlmICghdG1wX2J1Zil7DQotICAgICAgICAg ICAgcmV0dXJuIC1FTk9NRU07DQotICAgICAgICB9DQorCXBhZ2UgPSBnZXRf ZnJlZV9wYWdlKEdGUF9LRVJORUwpOw0KKwlpZiAoIXBhZ2UpDQorCSAgICBy ZXR1cm4gLUVOT01FTTsNCisJaWYgKHRtcF9idWYpDQorCSAgICBmcmVlX3Bh Z2UocGFnZSk7DQorCWVsc2UNCisJICAgIHRtcF9idWYgPSAodW5zaWduZWQg Y2hhciAqKSBwYWdlOw0KICAgICB9DQogDQotICAgIGlmICgoaW5mby0+Y291 bnQgPT0gMSkgJiYgKGluZm8tPmZsYWdzICYgQVNZTkNfU1BMSVRfVEVSTUlP UykpIHsNCi0gICAgICAgIGlmICh0dHktPmRyaXZlci5zdWJ0eXBlID09IFNF UklBTF9UWVBFX05PUk1BTCkNCi0gICAgICAgICAgICAqdHR5LT50ZXJtaW9z ID0gaW5mby0+bm9ybWFsX3Rlcm1pb3M7DQotICAgICAgICBlbHNlIA0KLSAg ICAgICAgICAgICp0dHktPnRlcm1pb3MgPSBpbmZvLT5jYWxsb3V0X3Rlcm1p b3M7DQorICAgIC8qDQorICAgICAqIElmIHRoZSBwb3J0IGlzIHRoZSBtaWRk bGUgb2YgY2xvc2luZywgYmFpbCBvdXQgbm93DQorICAgICAqLw0KKyAgICBp ZiAodHR5X2h1bmdfdXBfcChmaWxwKSB8fCAoaW5mby0+ZmxhZ3MgJiBBU1lO Q19DTE9TSU5HKSkgew0KKwlpZiAoaW5mby0+ZmxhZ3MgJiBBU1lOQ19DTE9T SU5HKQ0KKwkgICAgaW50ZXJydXB0aWJsZV9zbGVlcF9vbigmaW5mby0+Y2xv c2Vfd2FpdCk7DQorCXJldHVybiAoKGluZm8tPmZsYWdzICYgQVNZTkNfSFVQ X05PVElGWSkgPyAtRUFHQUlOIDogLUVSRVNUQVJUU1lTKTsNCiAgICAgfQ0K Kw0KICAgICAvKg0KICAgICAgKiBTdGFydCB1cCBzZXJpYWwgcG9ydA0KICAg ICAgKi8NCkBAIC0yNTQzLDE3ICsyNDcyLDI0IEBADQogDQogICAgIHJldHZh bCA9IGJsb2NrX3RpbF9yZWFkeSh0dHksIGZpbHAsIGluZm8pOw0KICAgICBp ZiAocmV0dmFsKSB7DQotI2lmZGVmIFNFUklBTF9ERUJVR19PUEVODQorI2lm ZGVmIENZX0RFQlVHX09QRU4NCiAgICAgICAgIHByaW50aygiY3ljOmN5X29w ZW4gcmV0dXJuaW5nIGFmdGVyIGJsb2NrX3RpbF9yZWFkeSB3aXRoICVkXG4i LA0KICAgICAgICAgICAgICAgIHJldHZhbCk7DQogI2VuZGlmDQogICAgICAg ICByZXR1cm4gcmV0dmFsOw0KICAgICB9DQogDQorICAgIGlmICgoaW5mby0+ Y291bnQgPT0gMSkgJiYgKGluZm8tPmZsYWdzICYgQVNZTkNfU1BMSVRfVEVS TUlPUykpIHsNCisgICAgICAgIGlmICh0dHktPmRyaXZlci5zdWJ0eXBlID09 IFNFUklBTF9UWVBFX05PUk1BTCkNCisgICAgICAgICAgICAqdHR5LT50ZXJt aW9zID0gaW5mby0+bm9ybWFsX3Rlcm1pb3M7DQorICAgICAgICBlbHNlIA0K KyAgICAgICAgICAgICp0dHktPnRlcm1pb3MgPSBpbmZvLT5jYWxsb3V0X3Rl cm1pb3M7DQorICAgIH0NCisNCiAgICAgaW5mby0+c2Vzc2lvbiA9IGN1cnJl bnQtPnNlc3Npb247DQogICAgIGluZm8tPnBncnAgPSBjdXJyZW50LT5wZ3Jw Ow0KIA0KLSNpZmRlZiBTRVJJQUxfREVCVUdfT1BFTg0KKyNpZmRlZiBDWV9E RUJVR19PUEVODQogICAgIHByaW50aygiIGN5YzpjeV9vcGVuIGRvbmVcbiIp Oy8qKi8NCiAjZW5kaWYNCiANCkBAIC0yNTYyLDYgKzI0OTgsNzYgQEANCiAN CiANCiAvKg0KKyAqIGN5X3dhaXRfdW50aWxfc2VudCgpIC0tLSB3YWl0IHVu dGlsIHRoZSB0cmFuc21pdHRlciBpcyBlbXB0eQ0KKyAqLw0KK3N0YXRpYyB2 b2lkIGN5X3dhaXRfdW50aWxfc2VudChzdHJ1Y3QgdHR5X3N0cnVjdCAqdHR5 LCBpbnQgdGltZW91dCkNCit7DQorICBzdHJ1Y3QgY3ljbGFkZXNfcG9ydCAq IGluZm8gPSAoc3RydWN0IGN5Y2xhZGVzX3BvcnQgKil0dHktPmRyaXZlcl9k YXRhOw0KKyAgdW5zaWduZWQgY2hhciAqYmFzZV9hZGRyOw0KKyAgaW50IGNh cmQsY2hpcCxjaGFubmVsLGluZGV4Ow0KKyAgdW5zaWduZWQgbG9uZyBvcmln X2ppZmZpZXMsIGNoYXJfdGltZTsNCisJDQorICAgIGlmIChzZXJpYWxfcGFy YW5vaWFfY2hlY2soaW5mbywgdHR5LT5kZXZpY2UsICJjeV93YWl0X3VudGls X3NlbnQiKSkNCisJcmV0dXJuOw0KKw0KKyAgICBvcmlnX2ppZmZpZXMgPSBq aWZmaWVzOw0KKyAgICAvKg0KKyAgICAgKiBTZXQgdGhlIGNoZWNrIGludGVy dmFsIHRvIGJlIDEvNSBvZiB0aGUgZXN0aW1hdGVkIHRpbWUgdG8NCisgICAg ICogc2VuZCBhIHNpbmdsZSBjaGFyYWN0ZXIsIGFuZCBtYWtlIGl0IGF0IGxl YXN0IDEuICBUaGUgY2hlY2sNCisgICAgICogaW50ZXJ2YWwgc2hvdWxkIGFs c28gYmUgbGVzcyB0aGFuIHRoZSB0aW1lb3V0Lg0KKyAgICAgKiANCisgICAg ICogTm90ZTogd2UgaGF2ZSB0byB1c2UgcHJldHR5IHRpZ2h0IHRpbWluZ3Mg aGVyZSB0byBzYXRpc2Z5DQorICAgICAqIHRoZSBOSVNULVBDVFMuDQorICAg ICAqLw0KKyAgICBjaGFyX3RpbWUgPSAoaW5mby0+dGltZW91dCAtIEhaLzUw KSAvIGluZm8tPnhtaXRfZmlmb19zaXplOw0KKyAgICBjaGFyX3RpbWUgPSBj aGFyX3RpbWUgLyA1Ow0KKyAgICBpZiAoY2hhcl90aW1lID09IDApDQorCWNo YXJfdGltZSA9IDE7DQorICAgIGlmICh0aW1lb3V0IDwgMCkNCisJdGltZW91 dCA9IDA7DQorICAgIGlmICh0aW1lb3V0KQ0KKwljaGFyX3RpbWUgPSBNSU4o Y2hhcl90aW1lLCB0aW1lb3V0KTsNCisjaWZkZWYgQ1lfREVCVUdfV0FJVF9V TlRJTF9TRU5UDQorICAgIHByaW50aygiSW4gY3lfd2FpdF91bnRpbF9zZW50 KCVkKSBjaGVjaz0lbHUuLi4iLCB0aW1lb3V0LCBjaGFyX3RpbWUpOw0KKyAg ICBwcmludGsoImppZmY9JWx1Li4uIiwgamlmZmllcyk7DQorI2VuZGlmDQor ICAgIGNhcmQgPSBpbmZvLT5jYXJkOw0KKyAgICBjaGFubmVsID0gKGluZm8t PmxpbmUpIC0gKGN5X2NhcmRbY2FyZF0uZmlyc3RfbGluZSk7DQorICAgIGlm ICghSVNfQ1lDX1ooY3lfY2FyZFtjYXJkXSkpIHsNCisJY2hpcCA9IGNoYW5u ZWw+PjI7DQorCWNoYW5uZWwgJj0gMHgwMzsNCisJaW5kZXggPSBjeV9jYXJk W2NhcmRdLmJ1c19pbmRleDsNCisJYmFzZV9hZGRyID0gKHVuc2lnbmVkIGNo YXIgKikNCisJCShjeV9jYXJkW2NhcmRdLmJhc2VfYWRkciArIChjeV9jaGlw X29mZnNldFtjaGlwXTw8aW5kZXgpKTsNCisJd2hpbGUgKGN5X3JlYWRiKGJh c2VfYWRkcisoQ3lTUkVSPDxpbmRleCkpICYgQ3lUeE1wdHkpIHsNCisjaWZk ZWYgQ1lfREVCVUdfV0FJVF9VTlRJTF9TRU5UDQorCSAgICBwcmludGsoIk5v dCBjbGVhbiAoamlmZj0lbHUpLi4uIiwgamlmZmllcyk7DQorI2VuZGlmDQor CSAgICBjdXJyZW50LT5zdGF0ZSA9IFRBU0tfSU5URVJSVVBUSUJMRTsNCisJ ICAgIGN1cnJlbnQtPmNvdW50ZXIgPSAwOwkvKiBtYWtlIHVzIGxvdy1wcmlv cml0eSAqLw0KKwkgICAgY3VycmVudC0+dGltZW91dCA9IGppZmZpZXMgKyBj aGFyX3RpbWU7DQorCSAgICBzY2hlZHVsZSgpOw0KKwkgICAgaWYgKHNpZ25h bF9wZW5kaW5nKGN1cnJlbnQpKQ0KKwkJYnJlYWs7DQorCSAgICBpZiAodGlt ZW91dCAmJiAoKG9yaWdfamlmZmllcyArIHRpbWVvdXQpIDwgamlmZmllcykp DQorCQlicmVhazsNCisJfQ0KKwljdXJyZW50LT5zdGF0ZSA9IFRBU0tfUlVO TklORzsNCisgICAgfSBlbHNlIHsNCisJLy8gTm90aGluZyB0byBkbyENCisg ICAgfQ0KKyAgICAvKiBSdW4gb25lIG1vcmUgY2hhciBjeWNsZSAqLw0KKyAg ICBjdXJyZW50LT5zdGF0ZSA9IFRBU0tfSU5URVJSVVBUSUJMRTsNCisgICAg Y3VycmVudC0+Y291bnRlciA9IDA7CS8qIG1ha2UgdXMgbG93LXByaW9yaXR5 ICovDQorICAgIGN1cnJlbnQtPnRpbWVvdXQgPSBqaWZmaWVzICsgKGNoYXJf dGltZSAqIDUpOw0KKyAgICBzY2hlZHVsZSgpOw0KKyAgICBjdXJyZW50LT5z dGF0ZSA9IFRBU0tfUlVOTklORzsNCisjaWZkZWYgQ1lfREVCVUdfV0FJVF9V TlRJTF9TRU5UDQorICAgIHByaW50aygiQ2xlYW4gKGppZmY9JWx1KS4uLmRv bmVcbiIsIGppZmZpZXMpOw0KKyNlbmRpZg0KK30NCisNCisvKg0KICAqIFRo aXMgcm91dGluZSBpcyBjYWxsZWQgd2hlbiBhIHBhcnRpY3VsYXIgdHR5IGRl dmljZSBpcyBjbG9zZWQuDQogICovDQogc3RhdGljIHZvaWQNCkBAIC0yNTcw LDcgKzI1NzYsNyBAQA0KICAgc3RydWN0IGN5Y2xhZGVzX3BvcnQgKiBpbmZv ID0gKHN0cnVjdCBjeWNsYWRlc19wb3J0ICopdHR5LT5kcml2ZXJfZGF0YTsN CiAgIHVuc2lnbmVkIGxvbmcgZmxhZ3M7DQogDQotI2lmZGVmIFNFUklBTF9E RUJVR19PVEhFUg0KKyNpZmRlZiBDWV9ERUJVR19PVEhFUg0KICAgICBwcmlu dGsoImN5YzpjeV9jbG9zZSB0dHlDJWRcbiIsIGluZm8tPmxpbmUpOw0KICNl bmRpZg0KIA0KQEAgLTI1NzgsNyArMjU4NCw3IEBADQogICAgIHx8IHNlcmlh bF9wYXJhbm9pYV9jaGVjayhpbmZvLCB0dHktPmRldmljZSwgImN5X2Nsb3Nl Iikpew0KICAgICAgICAgcmV0dXJuOw0KICAgICB9DQotI2lmZGVmIFNFUklB TF9ERUJVR19PUEVODQorI2lmZGVmIENZX0RFQlVHX09QRU4NCiAgICAgcHJp bnRrKCJjeWM6Y3lfY2xvc2UgdHR5QyVkLCBjb3VudCA9ICVkXG4iLCBpbmZv LT5saW5lLCBpbmZvLT5jb3VudCk7DQogI2VuZGlmDQogDQpAQCAtMjU4Niw2 ICsyNTkyLDcgQEANCiANCiAgICAgLyogSWYgdGhlIFRUWSBpcyBiZWluZyBo dW5nIHVwLCBub3RoaW5nIHRvIGRvICovDQogICAgIGlmICh0dHlfaHVuZ191 cF9wKGZpbHApKSB7DQorCU1PRF9ERUNfVVNFX0NPVU5UOw0KICAgICAgICAg cmVzdG9yZV9mbGFncyhmbGFncyk7DQogICAgICAgICByZXR1cm47DQogICAg IH0NCkBAIC0yNjAyLDE4ICsyNjA5LDE4IEBADQogICAgICAgICAgICAiaW5m by0+Y291bnQgaXMgJWRcbiIsIGluZm8tPmNvdW50KTsNCiAgICAgICAgIGlu Zm8tPmNvdW50ID0gMTsNCiAgICAgfQ0KLSNpZmRlZiBTRVJJQUxfREVCVUdf Q09VTlQNCisjaWZkZWYgQ1lfREVCVUdfQ09VTlQNCiAgICAgcHJpbnRrKCJj eWM6Y3lfY2xvc2UgYXQgKCVkKTogZGVjcmVtZW50aW5nIGNvdW50IHRvICVk XG4iLA0KICAgICAgICAgY3VycmVudC0+cGlkLCBpbmZvLT5jb3VudCAtIDEp Ow0KICNlbmRpZg0KICAgICBpZiAoLS1pbmZvLT5jb3VudCA8IDApIHsNCi0j aWZkZWYgU0VSSUFMX0RFQlVHX0NPVU5UDQorI2lmZGVmIENZX0RFQlVHX0NP VU5UDQogICAgIHByaW50aygiY3ljOmN5Y19jbG9zZSBzZXR0aW5nIGNvdW50 IHRvIDBcbiIpOw0KICNlbmRpZg0KICAgICAgICAgaW5mby0+Y291bnQgPSAw Ow0KICAgICB9DQogICAgIGlmIChpbmZvLT5jb3VudCkgew0KLSAgICAgICAg TU9EX0RFQ19VU0VfQ09VTlQ7DQorCU1PRF9ERUNfVVNFX0NPVU5UOw0KICAg ICAgICAgcmVzdG9yZV9mbGFncyhmbGFncyk7DQogICAgICAgICByZXR1cm47 DQogICAgIH0NCkBAIC0yNjMyLDI4ICsyNjM5LDI1IEBADQogICAgICogdGhl IGxpbmUgZGlzY2lwbGluZSB0byBvbmx5IHByb2Nlc3MgWE9OL1hPRkYgY2hh cmFjdGVycy4NCiAgICAgKi8NCiAgICAgdHR5LT5jbG9zaW5nID0gMTsNCi0g ICAgaWYgKGluZm8tPmNsb3Npbmdfd2FpdDIgIT0gMCkgeyAvKiBUaGUgcG9y dCdzIGJlaW5nIGZvcmNlZCB0byB3YWl0LCANCi0JCQkJICAgICAgIGluZGVw ZW5kZW50IG9uIHRoZSBwb3J0IHNldHRpbmdzICovDQotCXR0eV93YWl0X3Vu dGlsX3NlbnQodHR5LCBpbmZvLT5jbG9zaW5nX3dhaXQyKkhaKTsNCi0gICAg fSBlbHNlIHsNCi0JaWYgKGluZm8tPmNsb3Npbmdfd2FpdCAhPSBBU1lOQ19D TE9TSU5HX1dBSVRfTk9ORSkNCi0JICAgIHR0eV93YWl0X3VudGlsX3NlbnQo dHR5LCBpbmZvLT5jbG9zaW5nX3dhaXQqSFopOw0KKyAgICBpZiAoaW5mby0+ Y2xvc2luZ193YWl0ICE9IENZX0NMT1NJTkdfV0FJVF9OT05FKSB7DQorCXR0 eV93YWl0X3VudGlsX3NlbnQodHR5LCBpbmZvLT5jbG9zaW5nX3dhaXQpOw0K ICAgICB9DQogDQotICAgIC8qIFdhaXRpbmcgZm9yIG9uLWJvYXJkIGJ1ZmZl cnMgdG8gYmUgZW1wdHkgYmVmb3JlIGNsb3NpbmcgdGhlIHBvcnQgKi8NCiAg ICAgaWYgKCFJU19DWUNfWihjeV9jYXJkW2luZm8tPmNhcmRdKSkgew0KLSNp ZmRlZiBORVdfSU5UUl9GTE9XDQogCXVuc2lnbmVkIGNoYXIgKmJhc2VfYWRk ciA9ICh1bnNpZ25lZCBjaGFyICopIA0KIAkJCQkJY3lfY2FyZFtpbmZvLT5j YXJkXS5iYXNlX2FkZHI7DQogCWludCBpbmRleCA9IGN5X2NhcmRbaW5mby0+ Y2FyZF0uYnVzX2luZGV4Ow0KLQ0KLQlpZiAoY3lfcmVhZGIoYmFzZV9hZGRy KyhDeVNSRVI8PGluZGV4KSkgJiBDeVR4TXB0eSkgew0KLQkgICAgLyogSW50 ZXJydXB0cyBhcmUgZW5hYmxlZCwgc28gZ28gdG8gc2xlZXAgKi8NCi0gICAg ICAgICAgICBpbnRlcnJ1cHRpYmxlX3NsZWVwX29uKCZpbmZvLT5zaHV0ZG93 bl93YWl0KTsNCisJLyogU3RvcCBhY2NlcHRpbmcgaW5wdXQgKi8NCisJY3lf d3JpdGViKCh1X2xvbmcpYmFzZV9hZGRyKyhDeVNSRVI8PGluZGV4KSwNCisJ CQljeV9yZWFkYihiYXNlX2FkZHIrKEN5U1JFUjw8aW5kZXgpKSAmIH5DeVJ4 RGF0YSk7DQorCWlmIChpbmZvLT5mbGFncyAmIEFTWU5DX0lOSVRJQUxJWkVE KSB7DQorCSAgICAvKiBXYWl0aW5nIGZvciBvbi1ib2FyZCBidWZmZXJzIHRv IGJlIGVtcHR5IGJlZm9yZSBjbG9zaW5nIA0KKwkgICAgICAgdGhlIHBvcnQg Ki8NCisJICAgIGN5X3dhaXRfdW50aWxfc2VudCh0dHksIGluZm8tPnRpbWVv dXQpOw0KIAl9DQotI2VuZGlmDQogICAgIH0gZWxzZSB7DQogI2lmZGVmIFpf V0FLRQ0KKwkvKiBXYWl0aW5nIGZvciBvbi1ib2FyZCBidWZmZXJzIHRvIGJl IGVtcHR5IGJlZm9yZSBjbG9zaW5nIHRoZSBwb3J0ICovDQogCXVuc2lnbmVk IGNoYXIgKmJhc2VfYWRkciA9ICh1bnNpZ25lZCBjaGFyICopIA0KIAkJCQkJ Y3lfY2FyZFtpbmZvLT5jYXJkXS5iYXNlX2FkZHI7DQogCXN0cnVjdCBGSVJN X0lEICpmaXJtX2lkID0gKHN0cnVjdCBGSVJNX0lEICopIChiYXNlX2FkZHIg KyBJRF9BRERSRVNTKTsNCkBAIC0yNjkzLDcgKzI2OTcsNyBAQA0KICAgICAg ICAgICAgICAgICAgICAgIEFTWU5DX0NMT1NJTkcpOw0KICAgICB3YWtlX3Vw X2ludGVycnVwdGlibGUoJmluZm8tPmNsb3NlX3dhaXQpOw0KIA0KLSNpZmRl ZiBTRVJJQUxfREVCVUdfT1RIRVINCisjaWZkZWYgQ1lfREVCVUdfT1RIRVIN CiAgICAgcHJpbnRrKCIgY3ljOmN5X2Nsb3NlIGRvbmVcbiIpOw0KICNlbmRp Zg0KIA0KQEAgLTI3MjIsOSArMjcyNiw5IEBADQogew0KICAgc3RydWN0IGN5 Y2xhZGVzX3BvcnQgKmluZm8gPSAoc3RydWN0IGN5Y2xhZGVzX3BvcnQgKil0 dHktPmRyaXZlcl9kYXRhOw0KICAgdW5zaWduZWQgbG9uZyBmbGFnczsNCi0g IGludCBjLCB0b3RhbCA9IDA7DQorICBpbnQgYywgcmV0ID0gMDsNCiANCi0j aWZkZWYgU0VSSUFMX0RFQlVHX0lPDQorI2lmZGVmIENZX0RFQlVHX0lPDQog ICAgIHByaW50aygiY3ljOmN5X3dyaXRlIHR0eUMlZFxuIiwgaW5mby0+bGlu ZSk7IC8qICovDQogI2VuZGlmDQogDQpAQCAtMjczNiw0MiArMjc0MCw1NyBA QA0KICAgICAgICAgcmV0dXJuIDA7DQogICAgIH0NCiANCi0gICAgaWYgKGZy b21fdXNlcikNCi0JZG93bigmdG1wX2J1Zl9zZW0pOw0KICAgICBzYXZlX2Zs YWdzKGZsYWdzKTsgICAgICAgICAgICAgICANCi0gICAgd2hpbGUgKDEpIHsN Ci0gICAgICAgIGNsaSgpOyAgICAgICAgICAgICAgIA0KLSAgICAgICAgYyA9 IE1JTihjb3VudCwgTUlOKFNFUklBTF9YTUlUX1NJWkUgLSBpbmZvLT54bWl0 X2NudCAtIDEsDQotICAgICAgICAgICAgICAgICAgICAgICAgICAgU0VSSUFM X1hNSVRfU0laRSAtIGluZm8tPnhtaXRfaGVhZCkpOw0KLSAgICAgICAgaWYg KGMgPD0gMCkNCi0gICAgICAgICAgICBicmVhazsNCiANCi0gICAgICAgIGlm IChmcm9tX3VzZXIpIHsNCi0gICAgICAgICAgICBjb3B5X2Zyb21fdXNlcih0 bXBfYnVmLCBidWYsIGMpOw0KLSAgICAgICAgICAgIGMgPSBNSU4oYywgTUlO KFNFUklBTF9YTUlUX1NJWkUgLSBpbmZvLT54bWl0X2NudCAtIDEsDQotICAg ICAgICAgICAgICAgICAgICAgICBTRVJJQUxfWE1JVF9TSVpFIC0gaW5mby0+ eG1pdF9oZWFkKSk7DQotICAgICAgICAgICAgbWVtY3B5KGluZm8tPnhtaXRf YnVmICsgaW5mby0+eG1pdF9oZWFkLCB0bXBfYnVmLCBjKTsNCi0gICAgICAg IH0gZWxzZQ0KLSAgICAgICAgICAgIG1lbWNweShpbmZvLT54bWl0X2J1ZiAr IGluZm8tPnhtaXRfaGVhZCwgYnVmLCBjKTsNCi0gICAgICAgIGluZm8tPnht aXRfaGVhZCA9IChpbmZvLT54bWl0X2hlYWQgKyBjKSAmIChTRVJJQUxfWE1J VF9TSVpFLTEpOw0KLSAgICAgICAgaW5mby0+eG1pdF9jbnQgKz0gYzsNCi0g ICAgICAgIHJlc3RvcmVfZmxhZ3MoZmxhZ3MpOw0KLSAgICAgICAgYnVmICs9 IGM7DQotICAgICAgICBjb3VudCAtPSBjOw0KLSAgICAgICAgdG90YWwgKz0g YzsNCi0jaWYgMA0KLSAgICAgICAgU1AoIkNXIik7DQotCUNQMTYoYyk7DQot CVNQKCIgIik7DQotI2VuZGlmDQotICAgIH0NCi0gICAgaWYgKGZyb21fdXNl cikNCisgICAgaWYgKGZyb21fdXNlcikgew0KKwlkb3duKCZ0bXBfYnVmX3Nl bSk7DQorCXdoaWxlICgxKSB7DQorCSAgICBjID0gTUlOKGNvdW50LCBNSU4o U0VSSUFMX1hNSVRfU0laRSAtIGluZm8tPnhtaXRfY250IC0gMSwNCisJCQkJ U0VSSUFMX1hNSVRfU0laRSAtIGluZm8tPnhtaXRfaGVhZCkpOw0KKwkgICAg aWYgKGMgPD0gMCkNCisJCWJyZWFrOw0KKw0KKwkgICAgYyAtPSBjb3B5X2Zy b21fdXNlcih0bXBfYnVmLCBidWYsIGMpOw0KKwkgICAgaWYgKCFjKSB7DQor CQlpZiAoIXJldCkgew0KKwkJICAgIHJldCA9IC1FRkFVTFQ7DQorCQl9DQor CQlicmVhazsNCisJICAgIH0NCisJICAgIGNsaSgpOyAgICAgICAgICAgICAg IA0KKwkgICAgYyA9IE1JTihjLCBNSU4oU0VSSUFMX1hNSVRfU0laRSAtIGlu Zm8tPnhtaXRfY250IC0gMSwNCisJCQlTRVJJQUxfWE1JVF9TSVpFIC0gaW5m by0+eG1pdF9oZWFkKSk7DQorCSAgICBtZW1jcHkoaW5mby0+eG1pdF9idWYg KyBpbmZvLT54bWl0X2hlYWQsIHRtcF9idWYsIGMpOw0KKwkgICAgaW5mby0+ eG1pdF9oZWFkID0gKChpbmZvLT54bWl0X2hlYWQgKyBjKSAmIChTRVJJQUxf WE1JVF9TSVpFLTEpKTsNCisJICAgIGluZm8tPnhtaXRfY250ICs9IGM7DQor CSAgICByZXN0b3JlX2ZsYWdzKGZsYWdzKTsNCisJICAgIGJ1ZiArPSBjOw0K KwkgICAgY291bnQgLT0gYzsNCisJICAgIHJldCArPSBjOw0KKwl9DQogCXVw KCZ0bXBfYnVmX3NlbSk7DQorICAgIH0gZWxzZSB7DQorCXdoaWxlICgxKSB7 DQorCSAgICBjbGkoKTsNCisJICAgIGMgPSBNSU4oY291bnQsIE1JTihTRVJJ QUxfWE1JVF9TSVpFIC0gaW5mby0+eG1pdF9jbnQgLSAxLCANCisJCQlTRVJJ QUxfWE1JVF9TSVpFIC0gaW5mby0+eG1pdF9oZWFkKSk7DQorCSAgICBpZiAo YyA8PSAwKSB7DQorCQlyZXN0b3JlX2ZsYWdzKGZsYWdzKTsNCisJCWJyZWFr Ow0KKwkgICAgfQ0KKwkgICAgbWVtY3B5KGluZm8tPnhtaXRfYnVmICsgaW5m by0+eG1pdF9oZWFkLCBidWYsIGMpOw0KKwkgICAgaW5mby0+eG1pdF9oZWFk ID0gKGluZm8tPnhtaXRfaGVhZCArIGMpICYgKFNFUklBTF9YTUlUX1NJWkUt MSk7DQorCSAgICBpbmZvLT54bWl0X2NudCArPSBjOw0KKwkgICAgcmVzdG9y ZV9mbGFncyhmbGFncyk7DQorCSAgICBidWYgKz0gYzsNCisJICAgIGNvdW50 IC09IGM7DQorCSAgICByZXQgKz0gYzsNCisJfQ0KKyAgICB9DQogICAgIGlm IChpbmZvLT54bWl0X2NudCAmJiAhdHR5LT5zdG9wcGVkICYmICF0dHktPmh3 X3N0b3BwZWQpIHsNCiAgICAgICAgIHN0YXJ0X3htaXQoaW5mbyk7DQogICAg IH0NCi0gICAgcmVzdG9yZV9mbGFncyhmbGFncyk7DQotICAgIHJldHVybiB0 b3RhbDsNCisgICAgcmV0dXJuIHJldDsNCiB9IC8qIGN5X3dyaXRlICovDQog DQogDQpAQCAtMjc4OCw3ICsyODA3LDcgQEANCiAgIHN0cnVjdCBjeWNsYWRl c19wb3J0ICppbmZvID0gKHN0cnVjdCBjeWNsYWRlc19wb3J0ICopdHR5LT5k cml2ZXJfZGF0YTsNCiAgIHVuc2lnbmVkIGxvbmcgZmxhZ3M7DQogDQotI2lm ZGVmIFNFUklBTF9ERUJVR19JTw0KKyNpZmRlZiBDWV9ERUJVR19JTw0KICAg ICBwcmludGsoImN5YzpjeV9wdXRfY2hhciB0dHlDJWRcbiIsIGluZm8tPmxp bmUpOw0KICNlbmRpZg0KIA0KQEAgLTI4MDgsOSArMjgyNyw2IEBADQogICAg ICAgICBpbmZvLT54bWl0X2hlYWQgJj0gU0VSSUFMX1hNSVRfU0laRSAtIDE7 DQogICAgICAgICBpbmZvLT54bWl0X2NudCsrOw0KICAgICByZXN0b3JlX2Zs YWdzKGZsYWdzKTsNCi0jaWYgMA0KLQlTUCgiKyIpOw0KLSNlbmRpZg0KIH0g LyogY3lfcHV0X2NoYXIgKi8NCiANCiANCkBAIC0yODI2LDcgKzI4NDIsNyBA QA0KICAgdW5zaWduZWQgY2hhciAqYmFzZV9hZGRyOw0KICAgaW50IGNhcmQs Y2hpcCxjaGFubmVsLGluZGV4Ow0KICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgDQotI2lmZGVmIFNFUklBTF9ERUJVR19JTw0KKyNpZmRlZiBD WV9ERUJVR19JTw0KICAgICBwcmludGsoImN5YzpjeV9mbHVzaF9jaGFycyB0 dHlDJWRcbiIsIGluZm8tPmxpbmUpOyAvKiAqLw0KICNlbmRpZg0KIA0KQEAg LTI4NzEsNyArMjg4Nyw3IEBADQogICBzdHJ1Y3QgY3ljbGFkZXNfcG9ydCAq aW5mbyA9IChzdHJ1Y3QgY3ljbGFkZXNfcG9ydCAqKXR0eS0+ZHJpdmVyX2Rh dGE7DQogICBpbnQgICByZXQ7DQogICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICANCi0jaWZkZWYgU0VSSUFMX0RFQlVHX0lPDQorI2lmZGVmIENZ X0RFQlVHX0lPDQogICAgIHByaW50aygiY3ljOmN5X3dyaXRlX3Jvb20gdHR5 QyVkXG4iLCBpbmZvLT5saW5lKTsgLyogKi8NCiAjZW5kaWYNCiANCkBAIC0y ODk3LDcgKzI5MTMsNyBAQA0KICAgICBjaGFubmVsID0gKGluZm8tPmxpbmUp IC0gKGN5X2NhcmRbY2FyZF0uZmlyc3RfbGluZSk7DQogDQogICAgIGlmICgh SVNfQ1lDX1ooY3lfY2FyZFtjYXJkXSkpIHsNCi0jaWZkZWYgU0VSSUFMX0RF QlVHX0lPDQorI2lmZGVmIENZX0RFQlVHX0lPDQogCXByaW50aygiY3ljOmN5 X2NoYXJzX2luX2J1ZmZlciB0dHlDJWQgJWRcbiIsDQogCQlpbmZvLT5saW5l LCBpbmZvLT54bWl0X2NudCk7IC8qICovDQogI2VuZGlmDQpAQCAtMjkyMyw3 ICsyOTM5LDcgQEANCiAJICAgIGNoYXJfY291bnQgPSB0eF9wdXQgLSB0eF9n ZXQ7DQogCWVsc2UNCiAJICAgIGNoYXJfY291bnQgPSB0eF9wdXQgLSB0eF9n ZXQgKyB0eF9idWZzaXplOw0KLSNpZmRlZiBTRVJJQUxfREVCVUdfSU8NCisj aWZkZWYgQ1lfREVCVUdfSU8NCiAJcHJpbnRrKCJjeWM6Y3lfY2hhcnNfaW5f YnVmZmVyIHR0eUMlZCAlZFxuIiwNCiAJCWluZm8tPmxpbmUsIGluZm8tPnht aXRfY250ICsgY2hhcl9jb3VudCk7IC8qICovDQogI2VuZGlmDQpAQCAtMjk1 MSw2ICsyOTY3LDcgQEANCiAgIGludCBjYXJkLGNoaXAsY2hhbm5lbCxpbmRl eDsNCiAgIHVuc2lnbmVkIGNmbGFnLCBpZmxhZzsNCiAgIHVuc2lnbmVkIHNo b3J0IGNoaXBfbnVtYmVyOw0KKyAgaW50IGJhdWQ7DQogICBpbnQgICBpOw0K IA0KIA0KQEAgLTI5NzIsNDcgKzI5ODksMjEgQEANCiAJaW5kZXggPSBjeV9j YXJkW2NhcmRdLmJ1c19pbmRleDsNCiANCiAJLyogYmF1ZCByYXRlICovDQot CWkgPSBjZmxhZyAmIENCQVVEOw0KLSAgICAgDQotCWlmIChpICYgQ0JBVURF WCkgew0KLQkgICAgaWYgKGkgPT0gQjU3NjAwKQ0KLQkJaSA9IDE2Ow0KLSNp ZmRlZiBCNzY4MDANCi0JICAgIGVsc2UgaWYoaSA9PSBCNzY4MDApIA0KLQkJ aSA9IDE3Ow0KLSNlbmRpZg0KLQkgICAgZWxzZSBpZihpID09IEIxMTUyMDAp IA0KLQkJaSA9IDE4Ow0KLQkgICAgZWxzZSBpZihpID09IEIyMzA0MDAgJiYg KGluZm8tPmNoaXBfcmV2ID49IENEMTQwMF9SRVZfSikpIHsNCi0JCS8qIEl0 IGlzIGEgQ0QxNDAwIHJldi4gSiBvciBsYXRlciAqLw0KLQkJaSA9IDIwOw0K KwliYXVkID0gdHR5X2dldF9iYXVkX3JhdGUoaW5mby0+dHR5KTsNCisJaWYg KGJhdWQgPiBDRDE0MDBfTUFYX1NQRUVEKSB7DQorCSAgICBiYXVkID0gQ0Qx NDAwX01BWF9TUEVFRDsNCisJfQ0KKwkvKiBmaW5kIHRoZSBiYXVkIGluZGV4 ICovDQorCWZvciAoaSA9IDA7IGkgPCAyMDsgaSsrKSB7DQorCSAgICBpZiAo YmF1ZCA9PSBiYXVkX3RhYmxlW2ldKSB7DQorCQlicmVhazsNCiAJICAgIH0N Ci0JICAgIGVsc2UNCi0JCWluZm8tPnR0eS0+dGVybWlvcy0+Y19jZmxhZyAm PSB+Q0JBVURFWDsNCiAJfQ0KKwlpZiAoaSA9PSAyMCkgew0KKwkgICAgaSA9 IDE5OyAvKiBDRDE0MDBfTUFYX1NQRUVEICovDQorCX0gDQorDQogDQotCWlm IChpID09IDE1KSB7DQotCSAgICBpZiAoKGluZm8tPmZsYWdzICYgQVNZTkNf U1BEX01BU0spID09IEFTWU5DX1NQRF9ISSkNCi0JCWkgKz0gMTsNCi0JICAg IGlmICgoaW5mby0+ZmxhZ3MgJiBBU1lOQ19TUERfTUFTSykgPT0gQVNZTkNf U1BEX1ZISSkNCi0JCWkgKz0gMzsNCi0gICAgICAgCSAgICBpZiAoKGluZm8t PmZsYWdzICYgQVNZTkNfU1BEX01BU0spID09IEFTWU5DX1NQRF9DVVNUKXsN Ci0gICAgICAgICAgICAgICAgc3dpdGNoKGluZm8tPmJhdWQpIHsNCi0JCSAg ICBjYXNlIDU3NjAwOg0KLQkJCWkgKz0gMTsgYnJlYWs7DQotI2lmZGVmIEI3 NjgwMA0KLQkJICAgIGNhc2UgNzY4MDA6IA0KLQkJCWkgKz0gMjsgYnJlYWs7 DQotI2VuZGlmDQotCQkgICAgY2FzZSAxMTUyMDA6DQotCQkJaSArPSAzOyBi cmVhazsNCi0JCSAgICBjYXNlIDIzMDQwMDoNCi0JCQlpICs9IDU7IGJyZWFr Ow0KLQkJICAgIGRlZmF1bHQ6DQotCQkJYnJlYWs7DQotCSAgICAgICAgfQ0K LSAgICAgICAgICAgIH0NCi0JfQ0KIAlpZihpbmZvLT5jaGlwX3JldiA+PSBD RDE0MDBfUkVWX0opIHsNCiAJICAgIC8qIEl0IGlzIGEgQ0QxNDAwIHJldi4g SiBvciBsYXRlciAqLw0KIAkgICAgaW5mby0+dGJwciA9IGJhdWRfYnByXzYw W2ldOyAvKiBUeCBCUFIgKi8NCkBAIC0zMDI2LDcgKzMwMTcsNyBAQA0KIAkg ICAgaW5mby0+cmNvID0gYmF1ZF9jb18yNVtpXTsgLyogUnggQ08gKi8NCiAJ fQ0KIAlpZiAoYmF1ZF90YWJsZVtpXSA9PSAxMzQpIHsNCi0JICAgIGluZm8t PnRpbWVvdXQgPSAoaW5mby0+eG1pdF9maWZvX3NpemUqSFoqMzAvMjY5KSAr IDI7DQorCSAgICBpbmZvLT50aW1lb3V0ID0gKGluZm8tPnhtaXRfZmlmb19z aXplKkhaKjE1LzI2OSkgKyAyOw0KIAkgICAgLyogZ2V0IGl0IHJpZ2h0IGZv ciAxMzQuNSBiYXVkICovDQogCX0gZWxzZSBpZiAoYmF1ZF90YWJsZVtpXSkg ew0KIAkgICAgaW5mby0+dGltZW91dCA9IChpbmZvLT54bWl0X2ZpZm9fc2l6 ZSpIWioxNS9iYXVkX3RhYmxlW2ldKSArIDI7DQpAQCAtMzE2OCw3ICszMTU5 LDcgQEANCiAJCX0gZWxzZSB7DQogICAgICAgICAgICAgICAgICAgICAgICAg Y3lfd3JpdGViKCh1X2xvbmcpYmFzZV9hZGRyKyhDeU1TVlIyPDxpbmRleCks IH5DeURUUik7DQogCQl9DQotI2lmZGVmIFNFUklBTF9ERUJVR19EVFINCisj aWZkZWYgQ1lfREVCVUdfRFRSDQogCQlwcmludGsoImN5YzpzZXRfbGluZV9j aGFyIGRyb3BwaW5nIERUUlxuIik7DQogCQlwcmludGsoIiAgICAgc3RhdHVz OiAweCV4LA0KIAkJICAgIDB4JXhcbiIsIGN5X3JlYWRiKGJhc2VfYWRkciso Q3lNU1ZSMTw8aW5kZXgpKSwNCkBAIC0zMTgwLDcgKzMxNzEsNyBAQA0KICAg ICAgICAgICAgICAgICB9IGVsc2Ugew0KIAkJCWN5X3dyaXRlYigodV9sb25n KWJhc2VfYWRkcisoQ3lNU1ZSMjw8aW5kZXgpLCBDeURUUik7DQogICAgICAg ICAgICAgICAgIH0NCi0jaWZkZWYgU0VSSUFMX0RFQlVHX0RUUg0KKyNpZmRl ZiBDWV9ERUJVR19EVFINCiAJCXByaW50aygiY3ljOnNldF9saW5lX2NoYXIg cmFpc2luZyBEVFJcbiIpOw0KIAkJcHJpbnRrKCIgICAgIHN0YXR1czogMHgl eCwgMHgleFxuIiwNCiAJCSAgICBjeV9yZWFkYihiYXNlX2FkZHIrKEN5TVNW UjE8PGluZGV4KSksDQpAQCAtMzIxNCw0OSArMzIwNSwxNyBAQA0KIAlidWZf Y3RybCA9ICZ6ZndfY3RybC0+YnVmX2N0cmxbY2hhbm5lbF07DQogDQogCS8q IGJhdWQgcmF0ZSAqLw0KLQlzd2l0Y2goaSA9IGNmbGFnICYgQ0JBVUQpew0K LQkvKg0KLSAgICAgICAgY2FzZSBCMDogY3lfd3JpdGVsKCZjaF9jdHJsLT5j b21tX2JhdWQgLCAwKTsgYnJlYWs7DQotCSovDQotICAgICAgICBjYXNlIEI1 MDogY3lfd3JpdGVsKCZjaF9jdHJsLT5jb21tX2JhdWQgLCA1MCk7IGJyZWFr Ow0KLSAgICAgICAgY2FzZSBCNzU6IGN5X3dyaXRlbCgmY2hfY3RybC0+Y29t bV9iYXVkICwgNzUpOyBicmVhazsNCi0gICAgICAgIGNhc2UgQjExMDogY3lf d3JpdGVsKCZjaF9jdHJsLT5jb21tX2JhdWQgLCAxMTApOyBicmVhazsNCi0g ICAgICAgIGNhc2UgQjEzNDogY3lfd3JpdGVsKCZjaF9jdHJsLT5jb21tX2Jh dWQgLCAxMzQpOyBicmVhazsNCi0gICAgICAgIGNhc2UgQjE1MDogY3lfd3Jp dGVsKCZjaF9jdHJsLT5jb21tX2JhdWQgLCAxNTApOyBicmVhazsNCi0gICAg ICAgIGNhc2UgQjIwMDogY3lfd3JpdGVsKCZjaF9jdHJsLT5jb21tX2JhdWQg LCAyMDApOyBicmVhazsNCi0gICAgICAgIGNhc2UgQjMwMDogY3lfd3JpdGVs KCZjaF9jdHJsLT5jb21tX2JhdWQgLCAzMDApOyBicmVhazsNCi0gICAgICAg IGNhc2UgQjYwMDogY3lfd3JpdGVsKCZjaF9jdHJsLT5jb21tX2JhdWQgLCA2 MDApOyBicmVhazsNCi0gICAgICAgIGNhc2UgQjEyMDA6IGN5X3dyaXRlbCgm Y2hfY3RybC0+Y29tbV9iYXVkICwgMTIwMCk7IGJyZWFrOw0KLSAgICAgICAg Y2FzZSBCMTgwMDogY3lfd3JpdGVsKCZjaF9jdHJsLT5jb21tX2JhdWQgLCAx ODAwKTsgYnJlYWs7DQotICAgICAgICBjYXNlIEIyNDAwOiBjeV93cml0ZWwo JmNoX2N0cmwtPmNvbW1fYmF1ZCAsIDI0MDApOyBicmVhazsNCi0gICAgICAg IGNhc2UgQjQ4MDA6IGN5X3dyaXRlbCgmY2hfY3RybC0+Y29tbV9iYXVkICwg NDgwMCk7IGJyZWFrOw0KLSAgICAgICAgY2FzZSBCOTYwMDogY3lfd3JpdGVs KCZjaF9jdHJsLT5jb21tX2JhdWQgLCA5NjAwKTsgYnJlYWs7DQotICAgICAg ICBjYXNlIEIxOTIwMDogY3lfd3JpdGVsKCZjaF9jdHJsLT5jb21tX2JhdWQg LCAxOTIwMCk7IGJyZWFrOw0KLSAgICAgICAgY2FzZSBCMzg0MDA6DQotICAg ICAgICAgICAgaWYgKChpbmZvLT5mbGFncyAmIEFTWU5DX1NQRF9NQVNLKSA9 PSBBU1lOQ19TUERfSEkpew0KLSAgICAgICAgICAgICAgICBjeV93cml0ZWwo JmNoX2N0cmwtPmNvbW1fYmF1ZCAsIDU3NjAwKTsNCi0gICAgICAgICAgICB9 ZWxzZSBpZiAoKGluZm8tPmZsYWdzICYgQVNZTkNfU1BEX01BU0spID09IEFT WU5DX1NQRF9WSEkpew0KLSAgICAgICAgICAgICAgICBjeV93cml0ZWwoJmNo X2N0cmwtPmNvbW1fYmF1ZCAsIDExNTIwMCk7DQotICAgICAgICAgICAgfWVs c2UgaWYgKChpbmZvLT5mbGFncyAmIEFTWU5DX1NQRF9NQVNLKSA9PSBBU1lO Q19TUERfQ1VTVCl7DQotICAgICAgICAgICAgICAgIGN5X3dyaXRlbCgmY2hf Y3RybC0+Y29tbV9iYXVkICwgaW5mby0+YmF1ZCk7DQotICAgICAgICAgICAg fWVsc2V7DQotICAgICAgICAgICAgICAgIGN5X3dyaXRlbCgmY2hfY3RybC0+ Y29tbV9iYXVkICwgMzg0MDApOw0KLSAgICAgICAgICAgIH0NCi0gICAgICAg ICAgICBicmVhazsNCi0gICAgICAgIGNhc2UgQjU3NjAwOiBjeV93cml0ZWwo JmNoX2N0cmwtPmNvbW1fYmF1ZCAsIDU3NjAwKTsgYnJlYWs7DQotI2lmZGVm IEI3NjgwMA0KLSAgICAgICAgY2FzZSBCNzY4MDA6IGN5X3dyaXRlbCgmY2hf Y3RybC0+Y29tbV9iYXVkICwgNzY4MDApOyBicmVhazsNCi0jZW5kaWYNCi0g ICAgICAgIGNhc2UgQjExNTIwMDogY3lfd3JpdGVsKCZjaF9jdHJsLT5jb21t X2JhdWQgLCAxMTUyMDApOyBicmVhazsNCi0gICAgICAgIGNhc2UgQjIzMDQw MDogY3lfd3JpdGVsKCZjaF9jdHJsLT5jb21tX2JhdWQgLCAyMzA0MDApOyBi cmVhazsNCi0gICAgICAgIGNhc2UgQjQ2MDgwMDogY3lfd3JpdGVsKCZjaF9j dHJsLT5jb21tX2JhdWQgLCA0NjA4MDApOyBicmVhazsNCisJYmF1ZCA9IHR0 eV9nZXRfYmF1ZF9yYXRlKGluZm8tPnR0eSk7DQorCWlmIChiYXVkID4gQ0Qx NDAwX01BWF9TUEVFRCkgew0KKwkgICAgYmF1ZCA9IENEMTQwMF9NQVhfU1BF RUQ7DQogCX0NCisJY3lfd3JpdGVsKCZjaF9jdHJsLT5jb21tX2JhdWQgLCBi YXVkKTsNCiANCi0JaWYgKChpID0gY3lfcmVhZGwoJmNoX2N0cmwtPmNvbW1f YmF1ZCkpID09IDEzNCkgew0KKwlpZiAoYmF1ZCA9PSAxMzQpIHsNCiAJICAg IGluZm8tPnRpbWVvdXQgPSAoaW5mby0+eG1pdF9maWZvX3NpemUqSFoqMzAv MjY5KSArIDI7DQogCSAgICAvKiBnZXQgaXQgcmlnaHQgZm9yIDEzNC41IGJh dWQgKi8NCi0JfSBlbHNlIGlmIChpKSB7DQotCSAgICBpbmZvLT50aW1lb3V0 ID0gKGluZm8tPnhtaXRfZmlmb19zaXplKkhaKjE1L2kpICsgMjsNCisJfSBl bHNlIGlmIChiYXVkKSB7DQorCSAgICBpbmZvLT50aW1lb3V0ID0gKGluZm8t PnhtaXRfZmlmb19zaXplKkhaKjE1L2JhdWQpICsgMjsNCiAJICAgIC8qIHRo aXMgbmVlZHMgdG8gYmUgcHJvcGFnYXRlZCBpbnRvIHRoZSBjYXJkIGluZm8g Ki8NCiAJfSBlbHNlIHsNCiAJICAgIGluZm8tPnRpbWVvdXQgPSAwOw0KQEAg LTMzMTgsMTYgKzMyNzcsMTYgQEANCiAJCWN5X3JlYWRsKCZjaF9jdHJsLT5z d19mbG93KSAmIH5DX0ZMX09YWCk7DQogCX0NCiANCi0JaWYoaSA9PSAwKXsg LyogYmF1ZCByYXRlIGlzIHplcm8sIHR1cm4gb2ZmIGxpbmUgKi8NCisJaWYo YmF1ZCA9PSAwKXsgLyogYmF1ZCByYXRlIGlzIHplcm8sIHR1cm4gb2ZmIGxp bmUgKi8NCiAJICAgIGN5X3dyaXRlbCgmY2hfY3RybC0+cnNfY29udHJvbCwN CiAgICAgICAgICAgICAgICBjeV9yZWFkbCgmY2hfY3RybC0+cnNfY29udHJv bCkgJiB+Q19SU19EVFIpOw0KLSNpZmRlZiBTRVJJQUxfREVCVUdfRFRSDQor I2lmZGVmIENZX0RFQlVHX0RUUg0KIAkgICAgcHJpbnRrKCJjeWM6c2V0X2xp bmVfY2hhciBkcm9wcGluZyBaIERUUlxuIik7DQogI2VuZGlmDQogCX1lbHNl ew0KIAkgICAgY3lfd3JpdGVsKCZjaF9jdHJsLT5yc19jb250cm9sLA0KICAg ICAgICAgICAgICAgIGN5X3JlYWRsKCZjaF9jdHJsLT5yc19jb250cm9sKSB8 IENfUlNfRFRSKTsNCi0jaWZkZWYgU0VSSUFMX0RFQlVHX0RUUg0KKyNpZmRl ZiBDWV9ERUJVR19EVFINCiAJICAgIHByaW50aygiY3ljOnNldF9saW5lX2No YXIgcmFpc2luZyBaIERUUlxuIik7DQogI2VuZGlmDQogCX0NCkBAIC0zMzQz LDYgKzMzMDIsMjEgQEANCiAJfQ0KICAgICB9DQogDQorICAgIC8qDQorICAg ICAqIFNldCB1cCB0aGUgdHR5LT5hbHRfc3BlZWQga2x1ZGdlDQorICAgICAq Lw0KKyAgICBpZiAoaW5mby0+dHR5KSB7DQorCWlmICgoaW5mby0+ZmxhZ3Mg JiBBU1lOQ19TUERfTUFTSykgPT0gQVNZTkNfU1BEX0hJKQ0KKwkgICAgaW5m by0+dHR5LT5hbHRfc3BlZWQgPSA1NzYwMDsNCisJaWYgKChpbmZvLT5mbGFn cyAmIEFTWU5DX1NQRF9NQVNLKSA9PSBBU1lOQ19TUERfVkhJKQ0KKwkgICAg aW5mby0+dHR5LT5hbHRfc3BlZWQgPSAxMTUyMDA7DQorCWlmICgoaW5mby0+ ZmxhZ3MgJiBBU1lOQ19TUERfTUFTSykgPT0gQVNZTkNfU1BEX1NISSkNCisJ ICAgIGluZm8tPnR0eS0+YWx0X3NwZWVkID0gMjMwNDAwOw0KKwlpZiAoKGlu Zm8tPmZsYWdzICYgQVNZTkNfU1BEX01BU0spID09IEFTWU5DX1NQRF9XQVJQ KQ0KKwkgICAgaW5mby0+dHR5LT5hbHRfc3BlZWQgPSA0NjA4MDA7DQorICAg IH0NCisNCisNCiB9IC8qIHNldF9saW5lX2NoYXIgKi8NCiANCiANCkBAIC0z Mzc3LDkgKzMzNTEsOCBAQA0KICAgc3RydWN0IHNlcmlhbF9zdHJ1Y3QgbmV3 X3NlcmlhbDsNCiAgIHN0cnVjdCBjeWNsYWRlc19wb3J0IG9sZF9pbmZvOw0K IA0KLSAgICBpZiAoIW5ld19pbmZvKQ0KLSAgICAgICAgICAgIHJldHVybiAt RUZBVUxUOw0KLSAgICBjb3B5X2Zyb21fdXNlcigmbmV3X3NlcmlhbCxuZXdf aW5mbyxzaXplb2YobmV3X3NlcmlhbCkpOw0KKyAgICBpZiAoY29weV9mcm9t X3VzZXIoJm5ld19zZXJpYWwsbmV3X2luZm8sc2l6ZW9mKG5ld19zZXJpYWwp KSkNCisJcmV0dXJuIC1FRkFVTFQ7DQogICAgIG9sZF9pbmZvID0gKmluZm87 DQogDQogICAgIGlmICghY2FwYWJsZShDQVBfU1lTX0FETUlOKSkgew0KQEAg LTM0MDUsNyArMzM3OCw2IEBADQogICAgICAgICAgICAgICAgICAgICAobmV3 X3NlcmlhbC5mbGFncyAmIEFTWU5DX0ZMQUdTKSk7DQogICAgIGluZm8tPmNs b3NlX2RlbGF5ID0gbmV3X3NlcmlhbC5jbG9zZV9kZWxheSAqIEhaLzEwMDsN CiAgICAgaW5mby0+Y2xvc2luZ193YWl0ID0gbmV3X3NlcmlhbC5jbG9zaW5n X3dhaXQgKiBIWi8xMDA7DQotIA0KIA0KIGNoZWNrX2FuZF9leGl0Og0KICAg ICBpZiAoaW5mby0+ZmxhZ3MgJiBBU1lOQ19JTklUSUFMSVpFRCl7DQpAQCAt MzQ4Niw4ICszNDU4LDcgQEANCiAJfQ0KIA0KICAgICB9DQotICAgIGN5X3B1 dF91c2VyKHJlc3VsdCwodW5zaWduZWQgbG9uZyAqKSB2YWx1ZSk7DQotICAg IHJldHVybiAwOw0KKyAgICByZXR1cm4gY3lfcHV0X3VzZXIocmVzdWx0LCh1 bnNpZ25lZCBsb25nICopIHZhbHVlKTsNCiB9IC8qIGdldF9tb2RlbV9pbmZv ICovDQogDQogDQpAQCAtMzUzNSw3ICszNTA2LDcgQEANCiAgICAgICAgICAg ICAgICAgfSBlbHNlIHsNCiAJCSAgICBjeV93cml0ZWIoKHVfbG9uZyliYXNl X2FkZHIrKEN5TVNWUjI8PGluZGV4KSwgQ3lEVFIpOw0KICAgICAgICAgICAg ICAgICB9DQotI2lmZGVmIFNFUklBTF9ERUJVR19EVFINCisjaWZkZWYgQ1lf REVCVUdfRFRSDQogCQlwcmludGsoImN5YzpzZXRfbW9kZW1faW5mbyByYWlz aW5nIERUUlxuIik7DQogCQlwcmludGsoIiAgICAgc3RhdHVzOiAweCV4LCAw eCV4XG4iLA0KIAkJICAgIGN5X3JlYWRiKGJhc2VfYWRkcisoQ3lNU1ZSMTw8 aW5kZXgpKSwgDQpAQCAtMzU2NCw3ICszNTM1LDcgQEANCiAgICAgICAgICAg ICAgICAgfSBlbHNlIHsNCiAJCQljeV93cml0ZWIoKHVfbG9uZyliYXNlX2Fk ZHIrKEN5TVNWUjI8PGluZGV4KSwgfkN5RFRSKTsNCiAgICAgICAgICAgICAg ICAgfQ0KLSNpZmRlZiBTRVJJQUxfREVCVUdfRFRSDQorI2lmZGVmIENZX0RF QlVHX0RUUg0KIAkJcHJpbnRrKCJjeWM6c2V0X21vZGVtX2luZm8gZHJvcHBp bmcgRFRSXG4iKTsNCiAJCXByaW50aygiICAgICBzdGF0dXM6IDB4JXgsIDB4 JXhcbiIsDQogCQkgICAgY3lfcmVhZGIoYmFzZV9hZGRyKyhDeU1TVlIxPDxp bmRleCkpLCANCkBAIC0zNjAxLDcgKzM1NzIsNyBAQA0KICAgICAgICAgICAg ICAgICB9IGVsc2Ugew0KIAkJCWN5X3dyaXRlYigodV9sb25nKWJhc2VfYWRk cisoQ3lNU1ZSMjw8aW5kZXgpLCBDeURUUik7DQogICAgICAgICAgICAgICAg IH0NCi0jaWZkZWYgU0VSSUFMX0RFQlVHX0RUUg0KKyNpZmRlZiBDWV9ERUJV R19EVFINCiAJCXByaW50aygiY3ljOnNldF9tb2RlbV9pbmZvIHJhaXNpbmcg RFRSXG4iKTsNCiAJCXByaW50aygiICAgICBzdGF0dXM6IDB4JXgsIDB4JXhc biIsDQogCQkgICAgY3lfcmVhZGIoYmFzZV9hZGRyKyhDeU1TVlIxPDxpbmRl eCkpLCANCkBAIC0zNjE3LDcgKzM1ODgsNyBAQA0KIAkJCWN5X3dyaXRlYigo dV9sb25nKWJhc2VfYWRkcisoQ3lNU1ZSMjw8aW5kZXgpLCB+Q3lEVFIpOw0K ICAgICAgICAgICAgICAgICB9DQogDQotI2lmZGVmIFNFUklBTF9ERUJVR19E VFINCisjaWZkZWYgQ1lfREVCVUdfRFRSDQogCQlwcmludGsoImN5YzpzZXRf bW9kZW1faW5mbyBkcm9wcGluZyBEVFJcbiIpOw0KIAkJcHJpbnRrKCIgICAg IHN0YXR1czogMHgleCwgMHgleFxuIiwNCiAJCSAgICBjeV9yZWFkYihiYXNl X2FkZHIrKEN5TVNWUjE8PGluZGV4KSksIA0KQEAgLTM2NDksNyArMzYyMCw3 IEBADQogCQlpZiAoYXJnICYgVElPQ01fRFRSKXsNCiAJCSAgICBjeV93cml0 ZWwoJmNoX2N0cmxbY2hhbm5lbF0ucnNfY29udHJvbCwNCiAgICAgICAgICAg ICAgICAgICAgICAgIGN5X3JlYWRsKCZjaF9jdHJsW2NoYW5uZWxdLnJzX2Nv bnRyb2wpIHwgQ19SU19EVFIpOw0KLSNpZmRlZiBTRVJJQUxfREVCVUdfRFRS DQorI2lmZGVmIENZX0RFQlVHX0RUUg0KIAkJICAgIHByaW50aygiY3ljOnNl dF9tb2RlbV9pbmZvIHJhaXNpbmcgWiBEVFJcbiIpOw0KICNlbmRpZg0KIAkJ fQ0KQEAgLTM2NjIsNyArMzYzMyw3IEBADQogCQlpZiAoYXJnICYgVElPQ01f RFRSKXsNCiAJCSAgICBjeV93cml0ZWwoJmNoX2N0cmxbY2hhbm5lbF0ucnNf Y29udHJvbCwNCiAgICAgICAgICAgICAgICAgICAgICAgIGN5X3JlYWRsKCZj aF9jdHJsW2NoYW5uZWxdLnJzX2NvbnRyb2wpICYgfkNfUlNfRFRSKTsNCi0j aWZkZWYgU0VSSUFMX0RFQlVHX0RUUg0KKyNpZmRlZiBDWV9ERUJVR19EVFIN CiAJCSAgICBwcmludGsoImN5YzpzZXRfbW9kZW1faW5mbyBjbGVhcmluZyBa IERUUlxuIik7DQogI2VuZGlmDQogCQl9DQpAQCAtMzY3OCwxMyArMzY0OSwx MyBAQA0KIAkJaWYgKGFyZyAmIFRJT0NNX0RUUil7DQogCQkgICAgY3lfd3Jp dGVsKCZjaF9jdHJsW2NoYW5uZWxdLnJzX2NvbnRyb2wsDQogICAgICAgICAg ICAgICAgICAgICAgICBjeV9yZWFkbCgmY2hfY3RybFtjaGFubmVsXS5yc19j b250cm9sKSB8IENfUlNfRFRSKTsNCi0jaWZkZWYgU0VSSUFMX0RFQlVHX0RU Ug0KKyNpZmRlZiBDWV9ERUJVR19EVFINCiAJCSAgICBwcmludGsoImN5Yzpz ZXRfbW9kZW1faW5mbyByYWlzaW5nIFogRFRSXG4iKTsNCiAjZW5kaWYNCiAJ CX1lbHNlew0KIAkJICAgIGN5X3dyaXRlbCgmY2hfY3RybFtjaGFubmVsXS5y c19jb250cm9sLA0KICAgICAgICAgICAgICAgICAgICAgICAgY3lfcmVhZGwo JmNoX2N0cmxbY2hhbm5lbF0ucnNfY29udHJvbCkgJiB+Q19SU19EVFIpOw0K LSNpZmRlZiBTRVJJQUxfREVCVUdfRFRSDQorI2lmZGVmIENZX0RFQlVHX0RU Ug0KIAkJICAgIHByaW50aygiY3ljOnNldF9tb2RlbV9pbmZvIGNsZWFyaW5n IFogRFRSXG4iKTsNCiAjZW5kaWYNCiAJCX0NCkBAIC0zNzA1LDcgKzM2NzYs NiBAQA0KICAgICByZXR1cm4gMDsNCiB9IC8qIHNldF9tb2RlbV9pbmZvICov DQogDQotDQogc3RhdGljIHZvaWQNCiBzZW5kX2JyZWFrKCBzdHJ1Y3QgY3lj bGFkZXNfcG9ydCAqIGluZm8sIGludCBkdXJhdGlvbikNCiB7DQpAQCAtMzcz Nyw3ICszNzA3LDYgQEANCiAgICAgfQ0KIH0gLyogc2VuZF9icmVhayAqLw0K IA0KLQ0KIHN0YXRpYyBpbnQNCiBnZXRfbW9uX2luZm8oc3RydWN0IGN5Y2xh ZGVzX3BvcnQgKiBpbmZvLCBzdHJ1Y3QgY3ljbGFkZXNfbW9uaXRvciAqIG1v bikNCiB7DQpAQCAtMzc5NiwxMSArMzc2NSwxMSBAQA0KIAkJICAgICAgICsg KGN5X2NoaXBfb2Zmc2V0W2NoaXBdPDxpbmRleCkpOw0KIA0KIAl0bXAgPSBj eV9yZWFkYihiYXNlX2FkZHIrKEN5Q09SMzw8aW5kZXgpKSAmIEN5UkVDX0ZJ Rk87DQotCWN5X3B1dF91c2VyKHRtcCx2YWx1ZSk7DQorCXJldHVybiBjeV9w dXRfdXNlcih0bXAsdmFsdWUpOw0KICAgICB9IGVsc2Ugew0KIAkvLyBOb3Ro aW5nIHRvIGRvIQ0KKwlyZXR1cm4gMDsNCiAgICAgfQ0KLSAgICByZXR1cm4g MDsNCiB9LyogZ2V0X3RocmVzaG9sZCAqLw0KIA0KIA0KQEAgLTM4MTUsOCAr Mzc4NCw3IEBADQogc3RhdGljIGludA0KIGdldF9kZWZhdWx0X3RocmVzaG9s ZChzdHJ1Y3QgY3ljbGFkZXNfcG9ydCAqIGluZm8sIHVuc2lnbmVkIGxvbmcg KnZhbHVlKQ0KIHsNCi0gICAgY3lfcHV0X3VzZXIoaW5mby0+ZGVmYXVsdF90 aHJlc2hvbGQsdmFsdWUpOw0KLSAgICByZXR1cm4gMDsNCisgICAgcmV0dXJu IGN5X3B1dF91c2VyKGluZm8tPmRlZmF1bHRfdGhyZXNob2xkLHZhbHVlKTsN CiB9LyogZ2V0X2RlZmF1bHRfdGhyZXNob2xkICovDQogDQogDQpAQCAtMzg2 MiwxMSArMzgzMCwxMSBAQA0KIAkJICAgICAgICsgKGN5X2NoaXBfb2Zmc2V0 W2NoaXBdPDxpbmRleCkpOw0KIA0KIAl0bXAgPSBjeV9yZWFkYihiYXNlX2Fk ZHIrKEN5UlRQUjw8aW5kZXgpKTsNCi0JY3lfcHV0X3VzZXIodG1wLHZhbHVl KTsNCisJcmV0dXJuIGN5X3B1dF91c2VyKHRtcCx2YWx1ZSk7DQogICAgIH0g ZWxzZSB7DQogCS8vIE5vdGhpbmcgdG8gZG8hDQorCXJldHVybiAwOw0KICAg ICB9DQotICAgIHJldHVybiAwOw0KIH0vKiBnZXRfdGltZW91dCAqLw0KIA0K IA0KQEAgLTM4ODEsOCArMzg0OSw3IEBADQogc3RhdGljIGludA0KIGdldF9k ZWZhdWx0X3RpbWVvdXQoc3RydWN0IGN5Y2xhZGVzX3BvcnQgKiBpbmZvLCB1 bnNpZ25lZCBsb25nICp2YWx1ZSkNCiB7DQotICAgIGN5X3B1dF91c2VyKGlu Zm8tPmRlZmF1bHRfdGltZW91dCx2YWx1ZSk7DQotICAgIHJldHVybiAwOw0K KyAgICByZXR1cm4gY3lfcHV0X3VzZXIoaW5mby0+ZGVmYXVsdF90aW1lb3V0 LHZhbHVlKTsNCiB9LyogZ2V0X2RlZmF1bHRfdGltZW91dCAqLw0KIA0KIC8q DQpAQCAtMzg5NCw2OCArMzg2MSw0MCBAQA0KIGN5X2lvY3RsKHN0cnVjdCB0 dHlfc3RydWN0ICp0dHksIHN0cnVjdCBmaWxlICogZmlsZSwNCiAgICAgICAg ICAgICB1bnNpZ25lZCBpbnQgY21kLCB1bnNpZ25lZCBsb25nIGFyZykNCiB7 DQotICBpbnQgZXJyb3I7DQogICBzdHJ1Y3QgY3ljbGFkZXNfcG9ydCAqIGlu Zm8gPSAoc3RydWN0IGN5Y2xhZGVzX3BvcnQgKil0dHktPmRyaXZlcl9kYXRh Ow0KICAgaW50IHJldF92YWwgPSAwOw0KIA0KLSNpZmRlZiBTRVJJQUxfREVC VUdfT1RIRVINCisgICAgaWYgKHNlcmlhbF9wYXJhbm9pYV9jaGVjayhpbmZv LCB0dHktPmRldmljZSwgImN5X2lvY3RsIikpDQorCXJldHVybiAtRU5PREVW Ow0KKw0KKyNpZmRlZiBDWV9ERUJVR19PVEhFUg0KICAgICBwcmludGsoImN5 YzpjeV9pb2N0bCB0dHlDJWQsIGNtZCA9ICV4IGFyZyA9ICVseFxuIiwNCiAg ICAgICAgIGluZm8tPmxpbmUsIGNtZCwgYXJnKTsgLyogKi8NCiAjZW5kaWYN CiANCiAgICAgc3dpdGNoIChjbWQpIHsNCiAgICAgICAgIGNhc2UgQ1lHRVRN T046DQotICAgICAgICAgICAgZXJyb3IgPSB2ZXJpZnlfYXJlYShWRVJJRllf V1JJVEUsICh2b2lkICopIGFyZw0KLSAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgLHNpemVvZihzdHJ1Y3QgY3ljbGFkZXNfbW9uaXRvcikpOw0K LSAgICAgICAgICAgIGlmIChlcnJvcil7DQotICAgICAgICAgICAgICAgIHJl dF92YWwgPSBlcnJvcjsNCi0gICAgICAgICAgICAgICAgYnJlYWs7DQotICAg ICAgICAgICAgfQ0KICAgICAgICAgICAgIHJldF92YWwgPSBnZXRfbW9uX2lu Zm8oaW5mbywgKHN0cnVjdCBjeWNsYWRlc19tb25pdG9yICopYXJnKTsNCiAg ICAgICAgICAgICBicmVhazsNCiAgICAgICAgIGNhc2UgQ1lHRVRUSFJFU0g6 DQotICAgICAgICAgICAgZXJyb3IgPSB2ZXJpZnlfYXJlYShWRVJJRllfV1JJ VEUsICh2b2lkICopIGFyZw0KLSAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgLHNpemVvZih1bnNpZ25lZCBsb25nKSk7DQotICAgICAgICAgICAg aWYgKGVycm9yKXsNCi0gICAgICAgICAgICAgICAgcmV0X3ZhbCA9IGVycm9y Ow0KLSAgICAgICAgICAgICAgICBicmVhazsNCi0gICAgICAgICAgICB9DQog ICAgICAgICAgICAgcmV0X3ZhbCA9IGdldF90aHJlc2hvbGQoaW5mbywgKHVu c2lnbmVkIGxvbmcgKilhcmcpOw0KICAgICAgICAgICAgIGJyZWFrOw0KICAg ICAgICAgY2FzZSBDWVNFVFRIUkVTSDoNCiAgICAgICAgICAgICByZXRfdmFs ID0gc2V0X3RocmVzaG9sZChpbmZvLCAodW5zaWduZWQgbG9uZylhcmcpOw0K ICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgY2FzZSBDWUdFVERFRlRI UkVTSDoNCi0gICAgICAgICAgICBlcnJvciA9IHZlcmlmeV9hcmVhKFZFUklG WV9XUklURSwgKHZvaWQgKikgYXJnDQotICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAsc2l6ZW9mKHVuc2lnbmVkIGxvbmcpKTsNCi0gICAgICAg ICAgICBpZiAoZXJyb3Ipew0KLSAgICAgICAgICAgICAgICByZXRfdmFsID0g ZXJyb3I7DQotICAgICAgICAgICAgICAgIGJyZWFrOw0KLSAgICAgICAgICAg IH0NCiAgICAgICAgICAgICByZXRfdmFsID0gZ2V0X2RlZmF1bHRfdGhyZXNo b2xkKGluZm8sICh1bnNpZ25lZCBsb25nICopYXJnKTsNCiAgICAgICAgICAg ICBicmVhazsNCiAgICAgICAgIGNhc2UgQ1lTRVRERUZUSFJFU0g6DQogICAg ICAgICAgICAgcmV0X3ZhbCA9IHNldF9kZWZhdWx0X3RocmVzaG9sZChpbmZv LCAodW5zaWduZWQgbG9uZylhcmcpOw0KICAgICAgICAgICAgIGJyZWFrOw0K ICAgICAgICAgY2FzZSBDWUdFVFRJTUVPVVQ6DQotICAgICAgICAgICAgZXJy b3IgPSB2ZXJpZnlfYXJlYShWRVJJRllfV1JJVEUsICh2b2lkICopIGFyZw0K LSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLHNpemVvZih1bnNp Z25lZCBsb25nKSk7DQotICAgICAgICAgICAgaWYgKGVycm9yKXsNCi0gICAg ICAgICAgICAgICAgcmV0X3ZhbCA9IGVycm9yOw0KLSAgICAgICAgICAgICAg ICBicmVhazsNCi0gICAgICAgICAgICB9DQogICAgICAgICAgICAgcmV0X3Zh bCA9IGdldF90aW1lb3V0KGluZm8sICh1bnNpZ25lZCBsb25nICopYXJnKTsN CiAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgIGNhc2UgQ1lTRVRUSU1F T1VUOg0KICAgICAgICAgICAgIHJldF92YWwgPSBzZXRfdGltZW91dChpbmZv LCAodW5zaWduZWQgbG9uZylhcmcpOw0KICAgICAgICAgICAgIGJyZWFrOw0K ICAgICAgICAgY2FzZSBDWUdFVERFRlRJTUVPVVQ6DQotICAgICAgICAgICAg ZXJyb3IgPSB2ZXJpZnlfYXJlYShWRVJJRllfV1JJVEUsICh2b2lkICopIGFy Zw0KLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLHNpemVvZih1 bnNpZ25lZCBsb25nKSk7DQotICAgICAgICAgICAgaWYgKGVycm9yKXsNCi0g ICAgICAgICAgICAgICAgcmV0X3ZhbCA9IGVycm9yOw0KLSAgICAgICAgICAg ICAgICBicmVhazsNCi0gICAgICAgICAgICB9DQogICAgICAgICAgICAgcmV0 X3ZhbCA9IGdldF9kZWZhdWx0X3RpbWVvdXQoaW5mbywgKHVuc2lnbmVkIGxv bmcgKilhcmcpOw0KICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgY2Fz ZSBDWVNFVERFRlRJTUVPVVQ6DQpAQCAtMzk3NiwxNCArMzkxNSwxMCBAQA0K IAkgICAgcmV0X3ZhbCA9IGluZm8tPnJ0c2R0cl9pbnY7DQogCSAgICBicmVh azsNCiAJY2FzZSBDWUdFVENBUkRJTkZPOg0KLSAgICAgICAgICAgIGVycm9y ID0gdmVyaWZ5X2FyZWEoVkVSSUZZX1dSSVRFLCAodm9pZCAqKSBhcmcNCi0g ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICxzaXplb2Yoc3RydWN0 IGN5Y2xhZGVzX2NhcmQpKTsNCi0gICAgICAgICAgICBpZiAoZXJyb3Ipew0K LSAgICAgICAgICAgICAgICByZXRfdmFsID0gZXJyb3I7DQotICAgICAgICAg ICAgICAgIGJyZWFrOw0KLSAgICAgICAgICAgIH0NCi0gICAgICAgICAgICBj b3B5X3RvX3VzZXIoKHZvaWQgKilhcmcsICh2b2lkICopJmN5X2NhcmRbaW5m by0+Y2FyZF0sIA0KLQkJCSBzaXplb2YgKHN0cnVjdCBjeWNsYWRlc19jYXJk KSk7DQorICAgICAgICAgICAgaWYgKGNvcHlfdG9fdXNlcigodm9pZCAqKWFy ZywgKHZvaWQgKikmY3lfY2FyZFtpbmZvLT5jYXJkXSwgDQorCQkJc2l6ZW9m IChzdHJ1Y3QgY3ljbGFkZXNfY2FyZCkpKSB7DQorCQlyZXRfdmFsID0gLUVG QVVMVDsNCisJICAgIH0NCiAJICAgIHJldF92YWwgPSAwOw0KICAgICAgICAg ICAgIGJyZWFrOw0KIAljYXNlIENZR0VUQ0QxNDAwVkVSOg0KQEAgLTM5OTQs OTEgKzM5MjksNDYgQEANCiAJICAgIHJldF92YWwgPSAwOw0KIAkgICAgYnJl YWs7DQogCWNhc2UgQ1lTRVRXQUlUOg0KLSAgICAJICAgIGluZm8tPmNsb3Np bmdfd2FpdDIgPSAodW5zaWduZWQgc2hvcnQpYXJnOw0KKyAgICAJICAgIGlu Zm8tPmNsb3Npbmdfd2FpdCA9ICh1bnNpZ25lZCBzaG9ydClhcmcgKiBIWi8x MDA7DQogCSAgICByZXRfdmFsID0gMDsNCiAJICAgIGJyZWFrOw0KIAljYXNl IENZR0VUV0FJVDoNCi0JICAgIHJldF92YWwgPSBpbmZvLT5jbG9zaW5nX3dh aXQyOw0KKwkgICAgcmV0X3ZhbCA9IGluZm8tPmNsb3Npbmdfd2FpdCAvIChI Wi8xMDApOw0KIAkgICAgYnJlYWs7DQotICAgICAgICBjYXNlIFRDU0JSSzog ICAgLyogU1ZJRCB2ZXJzaW9uOiBub24temVybyBhcmcgLS0+IG5vIGJyZWFr ICovDQotICAgICAgICAgICAgcmV0X3ZhbCA9IHR0eV9jaGVja19jaGFuZ2Uo dHR5KTsNCi0gICAgICAgICAgICBpZiAocmV0X3ZhbCkNCi0gICAgICAgICAg ICAgICAgcmV0dXJuIHJldF92YWw7DQotICAgICAgICAgICAgdHR5X3dhaXRf dW50aWxfc2VudCh0dHksMCk7DQotICAgICAgICAgICAgaWYgKCFhcmcpDQot ICAgICAgICAgICAgICAgIHNlbmRfYnJlYWsoaW5mbywgSFovNCk7IC8qIDEv NCBzZWNvbmQgKi8NCi0gICAgICAgICAgICBicmVhazsNCi0gICAgICAgIGNh c2UgVENTQlJLUDogICAvKiBzdXBwb3J0IGZvciBQT1NJWCB0Y3NlbmRicmVh aygpICovDQotICAgICAgICAgICAgcmV0X3ZhbCA9IHR0eV9jaGVja19jaGFu Z2UodHR5KTsNCi0gICAgICAgICAgICBpZiAocmV0X3ZhbCkNCi0gICAgICAg ICAgICAgICAgcmV0dXJuIHJldF92YWw7DQotICAgICAgICAgICAgdHR5X3dh aXRfdW50aWxfc2VudCh0dHksMCk7DQotICAgICAgICAgICAgc2VuZF9icmVh ayhpbmZvLCBhcmcgPyBhcmcqKEhaLzEwKSA6IEhaLzQpOw0KKwljYXNlIFRD U0JSSzogICAgLyogU1ZJRCB2ZXJzaW9uOiBub24temVybyBhcmcgLS0+IG5v IGJyZWFrICovDQorCSAgICByZXRfdmFsID0gdHR5X2NoZWNrX2NoYW5nZSh0 dHkpOw0KKwkgICAgaWYgKHJldF92YWwpDQorCQlyZXR1cm4gcmV0X3ZhbDsN CisJICAgIHR0eV93YWl0X3VudGlsX3NlbnQodHR5LDApOw0KKwkgICAgaWYg KCFhcmcpDQorCQlzZW5kX2JyZWFrKGluZm8sIEhaLzQpOyAvKiAxLzQgc2Vj b25kICovDQorCSAgICBicmVhazsNCisJY2FzZSBUQ1NCUktQOiAgIC8qIHN1 cHBvcnQgZm9yIFBPU0lYIHRjc2VuZGJyZWFrKCkgKi8NCisJICAgIHJldF92 YWwgPSB0dHlfY2hlY2tfY2hhbmdlKHR0eSk7DQorCSAgICBpZiAocmV0X3Zh bCkNCisJCXJldHVybiByZXRfdmFsOw0KKwkgICAgdHR5X3dhaXRfdW50aWxf c2VudCh0dHksMCk7DQorCSAgICBzZW5kX2JyZWFrKGluZm8sIGFyZyA/IGFy ZyooSFovMTApIDogSFovNCk7DQorCSAgICBicmVhazsNCisgICAgICAgIGNh c2UgVElPQ01HRVQ6DQorICAgICAgICAgICAgcmV0X3ZhbCA9IGdldF9tb2Rl bV9pbmZvKGluZm8sICh1bnNpZ25lZCBpbnQgKikgYXJnKTsNCiAgICAgICAg ICAgICBicmVhazsNCiAgICAgICAgIGNhc2UgVElPQ01CSVM6DQogICAgICAg ICBjYXNlIFRJT0NNQklDOg0KICAgICAgICAgY2FzZSBUSU9DTVNFVDoNCiAg ICAgICAgICAgICByZXRfdmFsID0gc2V0X21vZGVtX2luZm8oaW5mbywgY21k LCAodW5zaWduZWQgaW50ICopIGFyZyk7DQogICAgICAgICAgICAgYnJlYWs7 DQotDQotLyogVGhlIGZvbGxvd2luZyBjb21tYW5kcyBhcmUgaW5jb21wbGV0 ZWx5IGltcGxlbWVudGVkISEhICovDQotICAgICAgICBjYXNlIFRJT0NHU09G VENBUjoNCi0gICAgICAgICAgICBlcnJvciA9IHZlcmlmeV9hcmVhKFZFUklG WV9XUklURSwgKHZvaWQgKikgYXJnDQotICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAsc2l6ZW9mKHVuc2lnbmVkIGludCAqKSk7DQotICAgICAg ICAgICAgaWYgKGVycm9yKXsNCi0gICAgICAgICAgICAgICAgcmV0X3ZhbCA9 IGVycm9yOw0KLSAgICAgICAgICAgICAgICBicmVhazsNCi0gICAgICAgICAg ICB9DQotICAgICAgICAgICAgY3lfcHV0X3VzZXIoQ19DTE9DQUwodHR5KSA/ IDEgOiAwLA0KLSAgICAgICAgICAgICAgICAgICAgICAgICh1bnNpZ25lZCBs b25nICopIGFyZyk7DQotICAgICAgICAgICAgYnJlYWs7DQotICAgICAgICBj YXNlIFRJT0NTU09GVENBUjoNCi0gICAgICAgICAgIGVycm9yID0gdmVyaWZ5 X2FyZWEoVkVSSUZZX1JFQUQsICh2b2lkICopIGFyZw0KLSAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgLHNpemVvZih1bnNpZ25lZCBsb25nICop KTsNCi0gICAgICAgICAgIGlmIChlcnJvcikgew0KLSAgICAgICAgICAgICAg ICByZXRfdmFsID0gZXJyb3I7DQotICAgICAgICAgICAgICAgIGJyZWFrOw0K LSAgICAgICAgICAgfQ0KLQ0KLSAgICAgICAgICAgIGFyZyA9IGN5X2dldF91 c2VyKCh1bnNpZ25lZCBsb25nICopIGFyZyk7DQotICAgICAgICAgICAgdHR5 LT50ZXJtaW9zLT5jX2NmbGFnID0NCi0gICAgICAgICAgICAgICAgICAgICgo dHR5LT50ZXJtaW9zLT5jX2NmbGFnICYgfkNMT0NBTCkgfA0KLSAgICAgICAg ICAgICAgICAgICAgIChhcmcgPyBDTE9DQUwgOiAwKSk7DQotICAgICAgICAg ICAgYnJlYWs7DQotICAgICAgICBjYXNlIFRJT0NNR0VUOg0KLSAgICAgICAg ICAgIGVycm9yID0gdmVyaWZ5X2FyZWEoVkVSSUZZX1dSSVRFLCAodm9pZCAq KSBhcmcNCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICxzaXpl b2YodW5zaWduZWQgaW50ICopKTsNCi0gICAgICAgICAgICBpZiAoZXJyb3Ip ew0KLSAgICAgICAgICAgICAgICByZXRfdmFsID0gZXJyb3I7DQotICAgICAg ICAgICAgICAgIGJyZWFrOw0KLSAgICAgICAgICAgIH0NCi0gICAgICAgICAg ICByZXRfdmFsID0gZ2V0X21vZGVtX2luZm8oaW5mbywgKHVuc2lnbmVkIGlu dCAqKSBhcmcpOw0KLSAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgY2Fz ZSBUSU9DR1NFUklBTDoNCi0gICAgICAgICAgICBlcnJvciA9IHZlcmlmeV9h cmVhKFZFUklGWV9XUklURSwgKHZvaWQgKikgYXJnDQotICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAsc2l6ZW9mKHN0cnVjdCBzZXJpYWxfc3Ry dWN0KSk7DQotICAgICAgICAgICAgaWYgKGVycm9yKXsNCi0gICAgICAgICAg ICAgICAgcmV0X3ZhbCA9IGVycm9yOw0KLSAgICAgICAgICAgICAgICBicmVh azsNCi0gICAgICAgICAgICB9DQotICAgICAgICAgICAgcmV0X3ZhbCA9IGdl dF9zZXJpYWxfaW5mbyhpbmZvLA0KLSAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgKHN0cnVjdCBzZXJpYWxfc3RydWN0ICopIGFyZyk7DQor ICAgICAgICAgICAgcmV0X3ZhbCA9IGdldF9zZXJpYWxfaW5mbyhpbmZvLCAo c3RydWN0IHNlcmlhbF9zdHJ1Y3QgKikgYXJnKTsNCiAgICAgICAgICAgICBi cmVhazsNCiAgICAgICAgIGNhc2UgVElPQ1NTRVJJQUw6DQotICAgICAgICAg ICAgZXJyb3IgPSB2ZXJpZnlfYXJlYShWRVJJRllfUkVBRCwgKHZvaWQgKikg YXJnDQotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAsc2l6ZW9m KHN0cnVjdCBzZXJpYWxfc3RydWN0KSk7DQotICAgICAgICAgICAgaWYgKGVy cm9yKXsNCi0gICAgICAgICAgICAgICAgcmV0X3ZhbCA9IGVycm9yOw0KLSAg ICAgICAgICAgICAgICBicmVhazsNCi0gICAgICAgICAgICB9DQotICAgICAg ICAgICAgcmV0X3ZhbCA9IHNldF9zZXJpYWxfaW5mbyhpbmZvLA0KLSAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKHN0cnVjdCBzZXJpYWxf c3RydWN0ICopIGFyZyk7DQorICAgICAgICAgICAgcmV0X3ZhbCA9IHNldF9z ZXJpYWxfaW5mbyhpbmZvLCAoc3RydWN0IHNlcmlhbF9zdHJ1Y3QgKikgYXJn KTsNCiAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgIGRlZmF1bHQ6DQog ICAgICAgICAgICAgcmV0X3ZhbCA9IC1FTk9JT0NUTENNRDsNCiAgICAgfQ0K IA0KLSNpZmRlZiBTRVJJQUxfREVCVUdfT1RIRVINCisjaWZkZWYgQ1lfREVC VUdfT1RIRVINCiAgICAgcHJpbnRrKCIgY3ljOmN5X2lvY3RsIGRvbmVcbiIp Ow0KICNlbmRpZg0KIA0KQEAgLTQwOTcsNyArMzk4Nyw3IEBADQogew0KICAg c3RydWN0IGN5Y2xhZGVzX3BvcnQgKmluZm8gPSAoc3RydWN0IGN5Y2xhZGVz X3BvcnQgKil0dHktPmRyaXZlcl9kYXRhOw0KIA0KLSNpZmRlZiBTRVJJQUxf REVCVUdfT1RIRVINCisjaWZkZWYgQ1lfREVCVUdfT1RIRVINCiAgICAgcHJp bnRrKCJjeWM6Y3lfc2V0X3Rlcm1pb3MgdHR5QyVkXG4iLCBpbmZvLT5saW5l KTsNCiAjZW5kaWYNCiANCkBAIC00MTQxLDcgKzQwMzEsNyBAQA0KICAgdW5z aWduZWQgY2hhciAqYmFzZV9hZGRyOw0KICAgaW50IGNhcmQsY2hpcCxjaGFu bmVsLGluZGV4Ow0KIA0KLSNpZmRlZiBTRVJJQUxfREVCVUdfVEhST1RUTEUN CisjaWZkZWYgQ1lfREVCVUdfVEhST1RUTEUNCiAgIGNoYXIgYnVmWzY0XTsN CiANCiAgICAgcHJpbnRrKCJjeWM6dGhyb3R0bGUgJXM6ICVkLi4uLnR0eUMl ZFxuIiwgDQpAQCAtNDE5Nyw3ICs0MDg3LDcgQEANCiAgIHVuc2lnbmVkIGNo YXIgKmJhc2VfYWRkcjsNCiAgIGludCBjYXJkLGNoaXAsY2hhbm5lbCxpbmRl eDsNCiANCi0jaWZkZWYgU0VSSUFMX0RFQlVHX1RIUk9UVExFDQorI2lmZGVm IENZX0RFQlVHX1RIUk9UVExFDQogICBjaGFyIGJ1Zls2NF07DQogICAgICAg ICANCiAgICAgcHJpbnRrKCJjeWM6dW50aHJvdHRsZSAlczogJWQuLi4udHR5 QyVkXG4iLCANCkBAIC00MjU1LDcgKzQxNDUsNyBAQA0KICAgaW50IGNoaXAs Y2hhbm5lbCxpbmRleDsNCiAgIHVuc2lnbmVkIGxvbmcgZmxhZ3M7DQogDQot I2lmZGVmIFNFUklBTF9ERUJVR19PVEhFUg0KKyNpZmRlZiBDWV9ERUJVR19P VEhFUg0KICAgICBwcmludGsoImN5YzpjeV9zdG9wIHR0eUMlZFxuIiwgaW5m by0+bGluZSk7IC8qICovDQogI2VuZGlmDQogDQpAQCAtNDI5NSw3ICs0MTg1 LDcgQEANCiAgIGludCBjaGlwLGNoYW5uZWwsaW5kZXg7DQogICB1bnNpZ25l ZCBsb25nIGZsYWdzOw0KIA0KLSNpZmRlZiBTRVJJQUxfREVCVUdfT1RIRVIN CisjaWZkZWYgQ1lfREVCVUdfT1RIRVINCiAgICAgcHJpbnRrKCJjeWM6Y3lf c3RhcnQgdHR5QyVkXG4iLCBpbmZvLT5saW5lKTsgLyogKi8NCiAjZW5kaWYN CiANCkBAIC00MzMzLDcgKzQyMjMsNyBAQA0KICAgaW50IGNhcmQsIGNoYW5u ZWw7DQogICB1bnNpZ25lZCBsb25nIGZsYWdzOw0KICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgDQotI2lmZGVmIFNFUklBTF9ERUJVR19JTw0K KyNpZmRlZiBDWV9ERUJVR19JTw0KICAgICBwcmludGsoImN5YzpjeV9mbHVz aF9idWZmZXIgdHR5QyVkXG4iLCBpbmZvLT5saW5lKTsgLyogKi8NCiAjZW5k aWYNCiANCkBAIC00Mzc3LDcgKzQyNjcsNyBAQA0KIHsNCiAgIHN0cnVjdCBj eWNsYWRlc19wb3J0ICogaW5mbyA9IChzdHJ1Y3QgY3ljbGFkZXNfcG9ydCAq KXR0eS0+ZHJpdmVyX2RhdGE7DQogICAgICAgICANCi0jaWZkZWYgU0VSSUFM X0RFQlVHX09USEVSDQorI2lmZGVmIENZX0RFQlVHX09USEVSDQogICAgIHBy aW50aygiY3ljOmN5X2hhbmd1cCB0dHlDJWRcbiIsIGluZm8tPmxpbmUpOyAv KiAqLw0KICNlbmRpZg0KIA0KQEAgLTQzODgsNyArNDI3OCw3IEBADQogICAg IHNodXRkb3duKGluZm8pOw0KICAgICBpbmZvLT5ldmVudCA9IDA7DQogICAg IGluZm8tPmNvdW50ID0gMDsNCi0jaWZkZWYgU0VSSUFMX0RFQlVHX0NPVU5U DQorI2lmZGVmIENZX0RFQlVHX0NPVU5UDQogICAgIHByaW50aygiY3ljOmN5 X2hhbmd1cCAoJWQpOiBzZXR0aW5nIGNvdW50IHRvIDBcbiIsIGN1cnJlbnQt PnBpZCk7DQogI2VuZGlmDQogICAgIGluZm8tPnR0eSA9IDA7DQpAQCAtNDU5 Myw4OCArNDQ4Myw0NSBAQA0KIHsNCiAjaWZkZWYgQ09ORklHX1BDSQ0KIA0K LSNpZmRlZiBORVdfUENJDQogICBzdHJ1Y3QgcGNpX2RldgkqcGRldiA9IE5V TEw7DQogICB1bnNpZ25lZCBjaGFyCQljeXlfcmV2X2lkOw0KLSNlbHNlDQot ICB1bnNpZ25lZCBjaGFyICAgICAgICAgY3l5X2J1cywgY3l5X2Rldl9mbiwg Y3l5X3Jldl9pZDsNCi0jZW5kaWYNCiAgIHVuc2lnbmVkIGxvbmcgICAgICAg ICBwY2lfaW50cl9jdHJsOw0KLSAgdW5zaWduZWQgY2hhciAgICAgICAgIGN5 X3BjaV9pcnE7DQorICB1bnNpZ25lZCBjaGFyICAgICAgICAgY3lfcGNpX2ly cSA9IDA7DQogICB1Y2xvbmcgICAgICAgICAgICAgICAgY3lfcGNpX2FkZHIw LCBjeV9wY2lfYWRkcjEsIGN5X3BjaV9hZGRyMjsNCiAgIHVuc2lnbmVkIHNo b3J0ICAgICAgICBpLGosY3lfcGNpX25jaGFuOw0KICAgdW5zaWduZWQgc2hv cnQgICAgICAgIGRldmljZV9pZCxkZXZfaW5kZXggPSAwOw0KLSNpZm5kZWYg TkVXX1BDSQ0KLSAgdW5zaWduZWQgc2hvcnQJYm9hcmRfaW5kZXggPSAwOw0K LSNlbmRpZg0KICAgdWNsb25nCQltYWlsYm94Ow0KICAgdWNsb25nCQlaZV9h ZGRyMFtOUl9DQVJEU10sIFplX2FkZHIyW05SX0NBUkRTXSwgWmVJbmRleCA9 IDA7DQogDQotI2lmZGVmIE5FV19QQ0kNCiAgICAgICAgIGlmKHBjaV9wcmVz ZW50KCkgPT0gMCkgeyAgICAvKiBQQ0kgYnVzIG5vdCBwcmVzZW50ICovDQot I2Vsc2UNCi0gICAgICAgIGlmKHBjaWJpb3NfcHJlc2VudCgpID09IDApIHsg ICAgLyogUENJIGJ1cyBub3QgcHJlc2VudCAqLw0KLSNlbmRpZg0KICAgICAg ICAgICAgICAgICByZXR1cm4oMCk7DQogICAgICAgICB9DQogICAgICAgICBm b3IgKGkgPSAwOyBpIDwgTlJfQ0FSRFM7IGkrKykgew0KICAgICAgICAgICAg ICAgICAvKiBsb29rIGZvciBhIEN5Y2xhZGVzIGNhcmQgYnkgdmVuZG9yIGFu ZCBkZXZpY2UgaWQgKi8NCiAgICAgICAgICAgICAgICAgd2hpbGUoKGRldmlj ZV9pZCA9IGN5X3BjaV9kZXZfaWRbZGV2X2luZGV4XSkgIT0gMCkgew0KLSNp ZmRlZiBORVdfUENJDQogICAgICAgICAgICAgICAgICAgICAgICAgaWYoKHBk ZXYgPSBwY2lfZmluZF9kZXZpY2UoUENJX1ZFTkRPUl9JRF9DWUNMQURFUywN CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGV2 aWNlX2lkLCBwZGV2KSkgPT0gTlVMTCkgew0KICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgZGV2X2luZGV4Kys7ICAgIC8qIHRyeSBuZXh0IGRl dmljZSBpZCAqLw0KICAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7 DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBicmVhazsgICAg ICAgICAgLyogZm91bmQgYSBib2FyZCAqLw0KICAgICAgICAgICAgICAgICAg ICAgICAgIH0NCi0jZWxzZQ0KLSAgICAgICAgICAgICAgICAgICAgICAgIGlm KHBjaWJpb3NfZmluZF9kZXZpY2UoUENJX1ZFTkRPUl9JRF9DWUNMQURFUywN Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGV2 aWNlX2lkLGJvYXJkX2luZGV4LA0KLSAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAmY3l5X2J1cywgJmN5eV9kZXZfZm4pICE9IDAp IHsNCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRldl9pbmRl eCsrOyAgICAvKiB0cnkgbmV4dCBkZXZpY2UgaWQgKi8NCi0gICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIGJvYXJkX2luZGV4ID0gMDsNCi0gICAg ICAgICAgICAgICAgICAgICAgICB9IGVsc2Ugew0KLSAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgYm9hcmRfaW5kZXgrKzsNCi0gICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOyAgICAgICAgICAvKiBmb3Vu ZCBhIGJvYXJkICovDQotICAgICAgICAgICAgICAgICAgICAgICAgfQ0KLSNl bmRpZg0KICAgICAgICAgICAgICAgICB9DQogDQogCQlpZiAoZGV2aWNlX2lk ID09IDApDQogCQkgICAgYnJlYWs7DQogDQogICAgICAgICAgICAgICAgIC8q IHJlYWQgUENJIGNvbmZpZ3VyYXRpb24gYXJlYSAqLw0KLSNpZmRlZiBORVdf UENJDQogCQljeV9wY2lfaXJxID0gcGRldi0+aXJxOw0KIAkJY3lfcGNpX2Fk ZHIwID0gcGRldi0+YmFzZV9hZGRyZXNzWzBdOw0KIAkJY3lfcGNpX2FkZHIx ID0gcGRldi0+YmFzZV9hZGRyZXNzWzFdOyANCiAJCWN5X3BjaV9hZGRyMiA9 IHBkZXYtPmJhc2VfYWRkcmVzc1syXTsgDQogICAgICAgICAgICAgICAgIHBj aV9yZWFkX2NvbmZpZ19ieXRlKHBkZXYsIFBDSV9SRVZJU0lPTl9JRCwgJmN5 eV9yZXZfaWQpOw0KLSNlbHNlDQotICAgICAgICAgICAgICAgIHBjaWJpb3Nf cmVhZF9jb25maWdfYnl0ZShjeXlfYnVzLCBjeXlfZGV2X2ZuLA0KLSAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIFBDSV9JTlRFUlJVUFRfTElO RSwgJmN5X3BjaV9pcnEpOw0KLSAgICAgICAgICAgICAgICBwY2liaW9zX3Jl YWRfY29uZmlnX2R3b3JkKGN5eV9idXMsIGN5eV9kZXZfZm4sDQotICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIFBDSV9CQVNFX0FERFJFU1Nf MCwgDQotCQkJCSAgKHVuc2lnbmVkIGludCAqKSAmY3lfcGNpX2FkZHIwKTsN Ci0gICAgICAgICAgICAgICAgcGNpYmlvc19yZWFkX2NvbmZpZ19kd29yZChj eXlfYnVzLCBjeXlfZGV2X2ZuLA0KLSAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICBQQ0lfQkFTRV9BRERSRVNTXzEsIA0KLQkJCQkgICh1bnNp Z25lZCBpbnQgKikgJmN5X3BjaV9hZGRyMSk7DQotICAgICAgICAgICAgICAg IHBjaWJpb3NfcmVhZF9jb25maWdfZHdvcmQoY3l5X2J1cywgY3l5X2Rldl9m biwNCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUENJX0JB U0VfQUREUkVTU18yLCANCi0JCQkJICAodW5zaWduZWQgaW50ICopICZjeV9w Y2lfYWRkcjIpOw0KLSAgICAgICAgICAgICAgICBwY2liaW9zX3JlYWRfY29u ZmlnX2J5dGUoY3l5X2J1cywgY3l5X2Rldl9mbiwNCi0gICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgUENJX1JFVklTSU9OX0lELCAmY3l5X3Jl dl9pZCk7DQotI2VuZGlmDQogDQogICAgIGlmICgoZGV2aWNlX2lkID09IFBD SV9ERVZJQ0VfSURfQ1lDTE9NX1lfTG8pDQogCSAgIHx8IChkZXZpY2VfaWQg PT0gUENJX0RFVklDRV9JRF9DWUNMT01fWV9IaSkpew0KICNpZmRlZiBDWV9Q Q0lfREVCVUcNCiAgICAgICAgICAgICBwcmludGsoIkN5Y2xvbS1ZL1BDSSAo YnVzPTB4MCV4LCBwY2lfaWQ9MHgleCwgIiwNCi0jaWZkZWYgTkVXX1BDSQ0K IAkJcGRldi0+YnVzLT5udW1iZXIsIHBkZXYtPmRldmZuKTsNCi0jZWxzZQ0K LQkJY3l5X2J1cywgY3l5X2Rldl9mbik7DQotI2VuZGlmDQogICAgICAgICAg ICAgcHJpbnRrKCJyZXZfaWQ9JWQpIElSUSVkXG4iLA0KIAkJY3l5X3Jldl9p ZCwgKGludCljeV9wY2lfaXJxKTsNCiAgICAgICAgICAgICBwcmludGsoIkN5 Y2xvbS1ZL1BDSTpmb3VuZCAgd2luYWRkcj0weCVseCBpb2FkZHI9MHglbHhc biIsDQpAQCAtNDY4NiwxMSArNDUzMyw3IEBADQogI2lmIGRlZmluZWQoX19h bHBoYV9fKQ0KICAgICAgICAgICAgICAgICBpZiAoZGV2aWNlX2lkICA9PSBQ Q0lfREVWSUNFX0lEX0NZQ0xPTV9ZX0xvKSB7IC8qIGJlbG93IDFNPyAqLw0K IAkJICAgIHByaW50aygiQ3ljbG9tLVkvUENJIChidXM9MHgwJXgsIHBjaV9p ZD0weCV4LCAiLA0KLSNpZmRlZiBORVdfUENJDQogCQkJcGRldi0+YnVzLT5u dW1iZXIsIHBkZXYtPmRldmZuKTsNCi0jZWxzZQ0KLQkJCWN5eV9idXMsIGN5 eV9kZXZfZm4pOw0KLSNlbmRpZg0KIAkJICAgIHByaW50aygicmV2X2lkPSVk KSBJUlElZFxuIiwNCiAJCSAgICAgICAgY3l5X3Jldl9pZCwgKGludCljeV9w Y2lfaXJxKTsNCiAgICAgICAgICAgICAgICAgICAgIHByaW50aygiQ3ljbG9t LVkvUENJOmZvdW5kICB3aW5hZGRyPTB4JWx4IGlvYWRkcj0weCVseFxuIiwN CkBAIC00Nzc1LDExICs0NjE4LDcgQEANCiAgICAgfWVsc2UgaWYgKGRldmlj ZV9pZCA9PSBQQ0lfREVWSUNFX0lEX0NZQ0xPTV9aX0xvKXsNCiAJICAgIC8q IHByaW50IG1lc3NhZ2UgKi8NCiAJCXByaW50aygiQ3ljbGFkZXMtWi9QQ0kg KGJ1cz0weDAleCwgcGNpX2lkPTB4JXgsICIsDQotI2lmZGVmIE5FV19QQ0kN CiAJCSAgICBwZGV2LT5idXMtPm51bWJlciwgcGRldi0+ZGV2Zm4pOw0KLSNl bHNlDQotCQkgICAgY3l5X2J1cywgY3l5X2Rldl9mbik7DQotI2VuZGlmDQog CQlwcmludGsoInJldl9pZD0lZCkgSVJRJWRcbiIsDQogCQkgICAgY3l5X3Jl dl9pZCwgKGludCljeV9wY2lfaXJxKTsNCiAJCXByaW50aygiQ3ljbGFkZXMt Wi9QQ0k6IGZvdW5kIHdpbmFkZHI9MHglbHggY3RsYWRkcj0weCVseFxuIiwN CkBAIC00Nzg5LDExICs0NjI4LDcgQEANCiAgICAgfWVsc2UgaWYgKGRldmlj ZV9pZCA9PSBQQ0lfREVWSUNFX0lEX0NZQ0xPTV9aX0hpKXsNCiAjaWZkZWYg Q1lfUENJX0RFQlVHDQogICAgICAgICAgICAgcHJpbnRrKCJDeWNsYWRlcy1a L1BDSSAoYnVzPTB4MCV4LCBwY2lfaWQ9MHgleCwgIiwNCi0jaWZkZWYgTkVX X1BDSQ0KIAkgICAgICAgIHBkZXYtPmJ1cy0+bnVtYmVyLCBwZGV2LT5kZXZm bik7DQotI2Vsc2UNCi0JICAgICAgICBjeXlfYnVzLCBjeXlfZGV2X2ZuKTsN Ci0jZW5kaWYNCiAgICAgICAgICAgICBwcmludGsoInJldl9pZD0lZCkgSVJR JWRcbiIsDQogCQljeXlfcmV2X2lkLCAoaW50KWN5X3BjaV9pcnEpOw0KICAg ICAgICAgICAgIHByaW50aygiQ3ljbGFkZXMtWi9QQ0k6IGZvdW5kIHdpbmFk ZHI9MHglbHggY3RsYWRkcj0weCVseFxuIiwNCkBAIC01MDc3LDYgKzQ5MTIs NyBAQA0KICAgICANCiAgICAgbWVtc2V0KCZjeV9zZXJpYWxfZHJpdmVyLCAw LCBzaXplb2Yoc3RydWN0IHR0eV9kcml2ZXIpKTsNCiAgICAgY3lfc2VyaWFs X2RyaXZlci5tYWdpYyA9IFRUWV9EUklWRVJfTUFHSUM7DQorICAgIGN5X3Nl cmlhbF9kcml2ZXIubmFtZSA9ICJjeWNsYWRlcyI7DQogICAgIGN5X3Nlcmlh bF9kcml2ZXIubmFtZSA9ICJ0dHlDIjsNCiAgICAgY3lfc2VyaWFsX2RyaXZl ci5tYWpvciA9IENZQ0xBREVTX01BSk9SOw0KICAgICBjeV9zZXJpYWxfZHJp dmVyLm1pbm9yX3N0YXJ0ID0gMDsNCkBAIC01MTA2LDYgKzQ5NDIsNyBAQA0K ICAgICBjeV9zZXJpYWxfZHJpdmVyLnN0b3AgPSBjeV9zdG9wOw0KICAgICBj eV9zZXJpYWxfZHJpdmVyLnN0YXJ0ID0gY3lfc3RhcnQ7DQogICAgIGN5X3Nl cmlhbF9kcml2ZXIuaGFuZ3VwID0gY3lfaGFuZ3VwOw0KKyAgICBjeV9zZXJp YWxfZHJpdmVyLndhaXRfdW50aWxfc2VudCA9IGN5X3dhaXRfdW50aWxfc2Vu dDsNCiANCiAgICAgLyoNCiAgICAgICogVGhlIGNhbGxvdXQgZGV2aWNlIGlz IGp1c3QgbGlrZSBub3JtYWwgZGV2aWNlIGV4Y2VwdCBmb3INCkBAIC01MTE1 LDYgKzQ5NTIsOSBAQA0KICAgICBjeV9jYWxsb3V0X2RyaXZlci5uYW1lID0g ImN1YiI7DQogICAgIGN5X2NhbGxvdXRfZHJpdmVyLm1ham9yID0gQ1lDTEFE RVNBVVhfTUFKT1I7DQogICAgIGN5X2NhbGxvdXRfZHJpdmVyLnN1YnR5cGUg PSBTRVJJQUxfVFlQRV9DQUxMT1VUOw0KKyAgICBjeV9jYWxsb3V0X2RyaXZl ci5yZWFkX3Byb2MgPSAwOw0KKyAgICBjeV9jYWxsb3V0X2RyaXZlci5wcm9j X2VudHJ5ID0gMDsNCisNCiANCiAgICAgaWYgKHR0eV9yZWdpc3Rlcl9kcml2 ZXIoJmN5X3NlcmlhbF9kcml2ZXIpKQ0KICAgICAgICAgICAgIHBhbmljKCJD b3VsZG4ndCByZWdpc3RlciBDeWNsYWRlcyBzZXJpYWwgZHJpdmVyXG4iKTsN CkBAIC01MTIzLDcgKzQ5NjMsNyBAQA0KIA0KICAgICBpbml0X2JoKENZQ0xB REVTX0JILCBkb19jeWNsYWRlc19iaCk7DQogDQotICAgIGZvciAoaSA9IDA7 IGkgPCAxNjsgaSsrKSB7DQorICAgIGZvciAoaSA9IDA7IGkgPCBOUl9JUlFT OyBpKyspIHsNCiAgICAgICAgICAgICBJUlFfY2FyZHNbaV0gPSAwOw0KICAg ICB9DQogDQpAQCAtNTE5OSwxMSArNTAzOSwxMCBAQA0KICAgICAgICAgICAg ICAgICAgICAgaW5mby0+cmNvID0gMDsNCiAgICAgICAgICAgICAgICAgICAg IGluZm8tPmNsb3NlX2RlbGF5ID0gNSpIWi8xMDsNCiAJCSAgICBpbmZvLT5j bG9zaW5nX3dhaXQgPSBDTE9TSU5HX1dBSVRfREVMQVk7DQotCQkgICAgaW5m by0+Y2xvc2luZ193YWl0MiA9IDA7DQogICAgICAgICAgICAgICAgICAgICBp bmZvLT54X2NoYXIgPSAwOw0KICAgICAgICAgICAgICAgICAgICAgaW5mby0+ ZXZlbnQgPSAwOw0KICAgICAgICAgICAgICAgICAgICAgaW5mby0+Y291bnQg PSAwOw0KLSNpZmRlZiBTRVJJQUxfREVCVUdfQ09VTlQNCisjaWZkZWYgQ1lf REVCVUdfQ09VTlQNCiAvLyAgICAgICAgcHJpbnRrKCJjeWM6Y3lfaW5pdCgx KSBzZXR0aW5nIFogY291bnQgdG8gMFxuIik7DQogI2VuZGlmDQogICAgICAg ICAgICAgICAgICAgICBpbmZvLT5ibG9ja2VkX29wZW4gPSAwOw0KQEAgLTUy NTAsNyArNTA4OSw2IEBADQogICAgICAgICAgICAgICAgICAgICBpbmZvLT5j b3I1ID0gMDsNCiAgICAgICAgICAgICAgICAgICAgIGluZm8tPmNsb3NlX2Rl bGF5ID0gNSpIWi8xMDsNCiAJCSAgICBpbmZvLT5jbG9zaW5nX3dhaXQgPSBD TE9TSU5HX1dBSVRfREVMQVk7DQotCQkgICAgaW5mby0+Y2xvc2luZ193YWl0 MiA9IDA7DQogCQkgICAgY2hpcF9udW1iZXIgPSAocG9ydCAtIGNpbmZvLT5m aXJzdF9saW5lKSAvIDQ7DQogICAgICAgICAgICAgICAgICAgICBpZiAoKGlu Zm8tPmNoaXBfcmV2ID0gY3lfcmVhZGIoY2luZm8tPmJhc2VfYWRkciArDQog CSAgICAgICAgICAgICAgIAkJIChjeV9jaGlwX29mZnNldFtjaGlwX251bWJl cl08PGluZGV4KSArDQpAQCAtNTI3Myw3ICs1MTExLDcgQEANCiAgICAgICAg ICAgICAgICAgICAgIGluZm8tPnhfY2hhciA9IDA7DQogICAgICAgICAgICAg ICAgICAgICBpbmZvLT5ldmVudCA9IDA7DQogICAgICAgICAgICAgICAgICAg ICBpbmZvLT5jb3VudCA9IDA7DQotI2lmZGVmIFNFUklBTF9ERUJVR19DT1VO VA0KKyNpZmRlZiBDWV9ERUJVR19DT1VOVA0KIC8vICAgICAgICBwcmludGso ImN5YzpjeV9pbml0KDIpIHNldHRpbmcgWSBjb3VudCB0byAwXG4iKTsNCiAj ZW5kaWYNCiAgICAgICAgICAgICAgICAgICAgIGluZm8tPmJsb2NrZWRfb3Bl biA9IDA7DQotLS0gbGludXgvaW5jbHVkZS9saW51eC9jeWNsYWRlcy5oLm9y aQlXZWQgTWF5IDI3IDE5OjMzOjI3IDE5OTgNCisrKyBsaW51eC9pbmNsdWRl L2xpbnV4L2N5Y2xhZGVzLmgJTW9uIEp1biAgMSAxMToyNjozMSAxOTk4DQpA QCAtMSw0ICsxLDQgQEANCi0vKiAkUmV2aXNpb246IDIuMyAkJERhdGU6IDE5 OTgvMDMvMTYgMTg6MDE6MTIgJA0KKy8qICRSZXZpc2lvbjogMi40ICQkRGF0 ZTogMTk5OC8wNi8wMSAxMjowOTo1MyAkDQogICogbGludXgvaW5jbHVkZS9s aW51eC9jeWNsYWRlcy5oDQogICoNCiAgKiBUaGlzIGZpbGUgaXMgbWFpbnRh aW5lZCBieSBJdmFuIFBhc3NvcyA8aXZhbkBjeWNsYWRlcy5jb20+LCANCkBA IC03LDEwICs3LDE0IEBADQogICoNCiAgKiBUaGlzIGZpbGUgY29udGFpbnMg dGhlIGdlbmVyYWwgZGVmaW5pdGlvbnMgZm9yIHRoZSBjeWNsYWRlcy5jIGRy aXZlcg0KICAqJExvZzogY3ljbGFkZXMuaCx2ICQNCisgKlJldmlzaW9uIDIu NCAgMTk5OC8wNi8wMSAxMjowOTo1MyAgaXZhbg0KKyAqcmVtb3ZlZCBjbG9z aW5nX3dhaXQyIGZyb20gY3ljbGFkZXNfcG9ydCBzdHJ1Y3R1cmU7DQorICoN CiAgKlJldmlzaW9uIDIuMyAgMTk5OC8wMy8xNiAxODowMToxMiAgaXZhbg0K ICAqY2hhbmdlcyBpbiB0aGUgY3ljbGFkZXNfcG9ydCBzdHJ1Y3R1cmUgdG8g Z2V0IGl0IGNsb3NlciB0byB0aGUgDQogICpzdGFuZGFyZCBzZXJpYWwgcG9y dCBzdHJ1Y3R1cmU7DQogICphZGRlZCBjb25zdGFudHMgZm9yIG5ldyBpb2N0 bHM7DQorICoNCiAgKlJldmlzaW9uIDIuMiAgMTk5OC8wMi8xNyAxNjo1MDow MCAgaXZhbg0KICAqY2hhbmdlcyBpbiB0aGUgY3ljbGFkZXNfcG9ydCBzdHJ1 Y3R1cmUgKGFkZGl0aW9uIG9mIHNodXRkb3duX3dhaXQgYW5kIA0KICAqY2hp cF9yZXYgdmFyaWFibGVzKTsNCkBAIC04OSw4ICs5Myw4IEBADQogI2RlZmlu ZSBDWl9ERUZfUE9MTAkoSFovMjUpDQogDQogI2RlZmluZSBNQVhfQk9BUkQg ICAgICAgNCAgICAgICAvKiBNYXggbnVtYmVyIG9mIGJvYXJkcyAqLw0KLSNk ZWZpbmUgTUFYX1BPUlQgICAgICAgIDEyOCAgICAgLyogTWF4IG51bWJlciBv ZiBwb3J0cyBwZXIgYm9hcmQgKi8NCiAjZGVmaW5lIE1BWF9ERVYgICAgICAg ICAyNTYgICAgIC8qIE1heCBudW1iZXIgb2YgcG9ydHMgdG90YWwgKi8NCisj ZGVmaW5lCUNZWl9NQVhfU1BFRUQJOTIxNjAwDQogDQogI2RlZmluZQlDWVpf RklGT19TSVpFCTE2DQogDQpAQCAtNTA4LDcgKzUxMiw2IEBADQogCWludCAg ICAgICAgICAgICAgICAgICAgIHhfY2hhcjsgLyogdG8gYmUgcHVzaGVkIG91 dCBBU0FQICovDQogCWludAkJCWNsb3NlX2RlbGF5Ow0KIAl1bnNpZ25lZCBz aG9ydAkJY2xvc2luZ193YWl0Ow0KLQl1bnNpZ25lZCBzaG9ydAkJY2xvc2lu Z193YWl0MjsNCiAJdW5zaWduZWQgbG9uZwkJZXZlbnQ7DQogCXVuc2lnbmVk IGxvbmcJCWxhc3RfYWN0aXZlOw0KIAlpbnQJCQljb3VudDsJLyogIyBvZiBm ZCBvbiBkZXZpY2UgKi8NCkBAIC01NDQsMTEgKzU0NywxNSBAQA0KICNkZWZp bmUgQ3lfRVZFTlRfT1BFTl9XQUtFVVAJCTQNCiAjZGVmaW5lIEN5X0VWRU5U X1NIVVRET1dOX1dBS0VVUAk1DQogDQotI2RlZmluZQlDTE9TSU5HX1dBSVRf REVMQVkJMzANCisjZGVmaW5lCUNMT1NJTkdfV0FJVF9ERUxBWQkzMCpIWg0K KyNkZWZpbmUgQ1lfQ0xPU0lOR19XQUlUX05PTkUJNjU1MzUNCisjZGVmaW5l IENZX0NMT1NJTkdfV0FJVF9JTkYJMA0KKw0KIA0KICNkZWZpbmUgQ3lNQVhf Q0hJUFNfUEVSX0NBUkQJOA0KICNkZWZpbmUgQ3lNQVhfQ0hBUl9GSUZPCQkx Mg0KICNkZWZpbmUgQ3lQT1JUU19QRVJfQ0hJUAk0DQorI2RlZmluZQlDRDE0 MDBfTUFYX1NQRUVECTExNTIwMA0KIA0KICNkZWZpbmUJQ3lJU0FfWXdpbgkw eDIwMDANCiANCg== ---1966017517-580703082-896726319=:16285-- --------------5BF0EB88171236E6F3BC415D-- - To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.rutgers.edu