From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-1.0 required=3.0 tests=HEADER_FROM_DIFFERENT_DOMAINS, MAILING_LIST_MULTI,SPF_PASS autolearn=ham autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id A0A83C282D8 for ; Fri, 1 Feb 2019 21:45:22 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by mail.kernel.org (Postfix) with ESMTP id 1CCA320863 for ; Fri, 1 Feb 2019 21:45:22 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1726492AbfBAVpV (ORCPT ); Fri, 1 Feb 2019 16:45:21 -0500 Received: from shards.monkeyblade.net ([23.128.96.9]:50182 "EHLO shards.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1726116AbfBAVpV (ORCPT ); Fri, 1 Feb 2019 16:45:21 -0500 Received: from localhost (unknown [IPv6:2601:601:9f80:35cd::bf5]) (using TLSv1 with cipher AES256-SHA (256/256 bits)) (Client did not present a certificate) (Authenticated sender: davem-davemloft) by shards.monkeyblade.net (Postfix) with ESMTPSA id 20F72143D0E08 for ; Fri, 1 Feb 2019 13:45:16 -0800 (PST) Date: Fri, 01 Feb 2019 13:45:13 -0800 (PST) Message-Id: <20190201.134513.992654567472967219.davem@davemloft.net> To: stable@vger.kernel.org Subject: [PATCHES] Networking From: David Miller X-Mailer: Mew version 6.8 on Emacs 26.1 Mime-Version: 1.0 Content-Type: Multipart/Mixed; boundary="--Next_Part(Fri_Feb__1_13_45_13_2019_877)--" Content-Transfer-Encoding: 7bit X-Greylist: Sender succeeded SMTP AUTH, not delayed by milter-greylist-4.5.12 (shards.monkeyblade.net [149.20.54.216]); Fri, 01 Feb 2019 13:45:17 -0800 (PST) Sender: stable-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: stable@vger.kernel.org ----Next_Part(Fri_Feb__1_13_45_13_2019_877)-- Content-Type: Text/Plain; charset=us-ascii Content-Transfer-Encoding: 7bit Please queue up the following networking bug fixes for v4.19 and v4.20 -stable, respectively. Thanks! ----Next_Part(Fri_Feb__1_13_45_13_2019_877)-- Content-Type: Application/Octet-Stream Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="net_419.mbox" RnJvbSA0NDljNzFiMTc5ZmQyNTI2ZWNhMDgwZDg0ZDM1NzdkN2M3Mzk5ODQzIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBEYXZpZCBBaGVybiA8ZHNhaGVybkBnbWFpbC5jb20+CkRhdGU6 IFdlZCwgMiBKYW4gMjAxOSAxODo1NzowOSAtMDgwMApTdWJqZWN0OiBbUEFUQ0ggMDEvMzBdIGlw djY6IENvbnNpZGVyIHNrX2JvdW5kX2Rldl9pZiB3aGVuIGJpbmRpbmcgYSBzb2NrZXQgdG8KIGFu IGFkZHJlc3MKClsgVXBzdHJlYW0gY29tbWl0IGM1ZWUwNjYzMzNlYmMzMjJhMjRhMDBhNzQzZWQ5 NDFhMGM2ODYxN2UgXQoKSVB2NiBkb2VzIG5vdCBjb25zaWRlciBpZiB0aGUgc29ja2V0IGlzIGJv dW5kIHRvIGEgZGV2aWNlIHdoZW4gYmluZGluZwp0byBhbiBhZGRyZXNzLiBUaGUgcmVzdWx0IGlz IHRoYXQgYSBzb2NrZXQgY2FuIGJlIGJvdW5kIHRvIGV0aDAgYW5kIHRoZW4KYm91bmQgdG8gdGhl IGFkZHJlc3Mgb2YgZXRoMS4gSWYgdGhlIGRldmljZSBpcyBhIFZSRiwgdGhlIHJlc3VsdCBpcyB0 aGF0CmEgc29ja2V0IGNhbiBvbmx5IGJlIGJvdW5kIHRvIGFuIGFkZHJlc3MgaW4gdGhlIGRlZmF1 bHQgVlJGLgoKUmVzb2x2ZSBieSBjb25zaWRlcmluZyB0aGUgZGV2aWNlIGlmIHNrX2JvdW5kX2Rl dl9pZiBpcyBzZXQuCgpUaGlzIHByb2JsZW0gZXhpc3RzIGZyb20gdGhlIGJlZ2lubmluZyBvZiBn aXQgaGlzdG9yeS4KClNpZ25lZC1vZmYtYnk6IERhdmlkIEFoZXJuIDxkc2FoZXJuQGdtYWlsLmNv bT4KU2lnbmVkLW9mZi1ieTogRGF2aWQgUy4gTWlsbGVyIDxkYXZlbUBkYXZlbWxvZnQubmV0Pgot LS0KIG5ldC9pcHY2L2FmX2luZXQ2LmMgfCAzICsrKwogMSBmaWxlIGNoYW5nZWQsIDMgaW5zZXJ0 aW9ucygrKQoKZGlmZiAtLWdpdCBhL25ldC9pcHY2L2FmX2luZXQ2LmMgYi9uZXQvaXB2Ni9hZl9p bmV0Ni5jCmluZGV4IDUwNmIyYWUwN2JiMy4uNzlmY2Q5NTUwZmQyIDEwMDY0NAotLS0gYS9uZXQv aXB2Ni9hZl9pbmV0Ni5jCisrKyBiL25ldC9pcHY2L2FmX2luZXQ2LmMKQEAgLTM2MSw2ICszNjEs OSBAQCBzdGF0aWMgaW50IF9faW5ldDZfYmluZChzdHJ1Y3Qgc29jayAqc2ssIHN0cnVjdCBzb2Nr YWRkciAqdWFkZHIsIGludCBhZGRyX2xlbiwKIAkJCQkJZXJyID0gLUVJTlZBTDsKIAkJCQkJZ290 byBvdXRfdW5sb2NrOwogCQkJCX0KKwkJCX0KKworCQkJaWYgKHNrLT5za19ib3VuZF9kZXZfaWYp IHsKIAkJCQlkZXYgPSBkZXZfZ2V0X2J5X2luZGV4X3JjdShuZXQsIHNrLT5za19ib3VuZF9kZXZf aWYpOwogCQkJCWlmICghZGV2KSB7CiAJCQkJCWVyciA9IC1FTk9ERVY7Ci0tIAoyLjIwLjEKCgpG cm9tIDhmNjQxMzI5NDA5N2VlNjFhY2Y1MmEyM2Y5NWUzMTVjY2IzMTQ2OWIgTW9uIFNlcCAxNyAw MDowMDowMCAyMDAxCkZyb206IFlvaGVpIEthbmVtYXJ1IDx5b2hlaS5rYW5lbWFydUBnbWFpbC5j b20+CkRhdGU6IFR1ZSwgMjkgSmFuIDIwMTkgMTU6NTI6MzQgKzA5MDAKU3ViamVjdDogW1BBVENI IDAyLzMwXSBpcHY2OiBzcjogY2xlYXIgSVA2Q0Ioc2tiKSBvbiBTUkggaXA0aXA2IGVuY2Fwc3Vs YXRpb24KClsgVXBzdHJlYW0gY29tbWl0IGVmNDg5NzQ5YWFlNTA4ZTZmMTc4ODY3NzVjMDc1ZjEy ZmY5MTlmYjEgXQoKc2tiLT5jYiBtYXkgY29udGFpbiBkYXRhIGZyb20gcHJldmlvdXMgbGF5ZXJz IChpbiBhbiBvYnNlcnZlZCBjYXNlCklQdjQgd2l0aCBMMyBNYXN0ZXIgRGV2aWNlKS4gSW4gdGhl IG9ic2VydmVkIHNjZW5hcmlvLCB0aGUgZGF0YSBpbgpJUENCKHNrYiktPmZyYWdzIHdhcyBtaXNp bnRlcnByZXRlZCBhcyBJUDZDQihza2IpLT5mcmFnX21heF9zaXplLApldmVudHVhbGx5IGNhdXNl ZCBhbiB1bmV4cGVjdGVkIElQdjYgZnJhZ21lbnRhdGlvbiBpbiBpcDZfZnJhZ21lbnQoKQp0aHJv dWdoIGlwNl9maW5pc2hfb3V0cHV0KCkuCgpUaGlzIHBhdGNoIGNsZWFycyBJUDZDQihza2IpLCB3 aGljaCBwb3RlbnRpYWxseSBjb250YWlucyBnYXJiYWdlIGRhdGEsCm9uIHRoZSBTUkggaXA0aXA2 IGVuY2Fwc3VsYXRpb24uCgpGaXhlczogMzJkOTlkMGI2NzAyICgiaXB2Njogc3I6IGFkZCBzdXBw b3J0IGZvciBpcDRpcDYgZW5jYXBzdWxhdGlvbiIpClNpZ25lZC1vZmYtYnk6IFlvaGVpIEthbmVt YXJ1IDx5b2hlaS5rYW5lbWFydUBnbWFpbC5jb20+ClNpZ25lZC1vZmYtYnk6IERhdmlkIFMuIE1p bGxlciA8ZGF2ZW1AZGF2ZW1sb2Z0Lm5ldD4KLS0tCiBuZXQvaXB2Ni9zZWc2X2lwdHVubmVsLmMg fCAyICsrCiAxIGZpbGUgY2hhbmdlZCwgMiBpbnNlcnRpb25zKCspCgpkaWZmIC0tZ2l0IGEvbmV0 L2lwdjYvc2VnNl9pcHR1bm5lbC5jIGIvbmV0L2lwdjYvc2VnNl9pcHR1bm5lbC5jCmluZGV4IDgx ODFlZTdlMWUyNy4uZWU1NDAzY2JlNjU1IDEwMDY0NAotLS0gYS9uZXQvaXB2Ni9zZWc2X2lwdHVu bmVsLmMKKysrIGIvbmV0L2lwdjYvc2VnNl9pcHR1bm5lbC5jCkBAIC0xNDYsNiArMTQ2LDggQEAg aW50IHNlZzZfZG9fc3JoX2VuY2FwKHN0cnVjdCBza19idWZmICpza2IsIHN0cnVjdCBpcHY2X3Ny X2hkciAqb3NyaCwgaW50IHByb3RvKQogCX0gZWxzZSB7CiAJCWlwNl9mbG93X2hkcihoZHIsIDAs IGZsb3dsYWJlbCk7CiAJCWhkci0+aG9wX2xpbWl0ID0gaXA2X2RzdF9ob3BsaW1pdChza2JfZHN0 KHNrYikpOworCisJCW1lbXNldChJUDZDQihza2IpLCAwLCBzaXplb2YoKklQNkNCKHNrYikpKTsK IAl9CiAKIAloZHItPm5leHRoZHIgPSBORVhUSERSX1JPVVRJTkc7Ci0tIAoyLjIwLjEKCgpGcm9t IGVjMTIxMTc3ZGRhNWE4MDFhMjVhNzI0MDU0ZmY2NGMzNmJlYzFjNmEgTW9uIFNlcCAxNyAwMDow MDowMCAyMDAxCkZyb206IERhbmllbCBCb3JrbWFubiA8ZGFuaWVsQGlvZ2VhcmJveC5uZXQ+CkRh dGU6IFdlZCwgMzAgSmFuIDIwMTkgMTI6NDk6NDggKzAxMDAKU3ViamVjdDogW1BBVENIIDAzLzMw XSBpcHZsYW4sIGwzbWRldjogZml4IGJyb2tlbiBsM3MgbW9kZSB3cnQgbG9jYWwgcm91dGVzCgpb IFVwc3RyZWFtIGNvbW1pdCBkNTI1NjA4M2Y2MmUyNzIwZjc1YmIzYzVhOTI4YTBhZmU0N2Q2YmMz IF0KCldoaWxlIGltcGxlbWVudGluZyBpcHZsYW4gbDMgYW5kIGwzcyBtb2RlIGZvciBrdWJlcm5l dGVzIENOSSBwbHVnaW4sCkkgcmFuIGludG8gdGhlIGlzc3VlIHRoYXQgd2hpbGUgbDMgbW9kZSBp cyB3b3JraW5nIGZpbmUsIGwzcyBtb2RlCmRvZXMgbm90IGhhdmUgYW55IGNvbm5lY3Rpdml0eSB0 byBrdWJlLWFwaXNlcnZlciBhbmQgaGVuY2UgYWxsIHBvZHMKZW5kIHVwIGluIEVycm9yIHN0YXRl IGFzIHdlbGwuIFRoZSBpcHZsYW4gbWFzdGVyIGRldmljZSBzaXRzIG9uCnRvcCBvZiBhIGJvbmQg ZGV2aWNlIGFuZCBob3N0bnMgdHJhZmZpYyB0byBrdWJlLWFwaXNlcnZlciAoYWxzbyBydW5uaW5n CmluIGhvc3RucykgaXMgRE5BVGVkIGZyb20gMTAuMTUyLjE4My4xOjQ0MyB0byAxMzkuMTc4LjI5 LjIwNzozNzU3Mwp3aGVyZSB0aGUgbGF0dGVyIGlzIHRoZSBhZGRyZXNzIG9mIHRoZSBib25kMC4g V2hpbGUgaW4gbDMgbW9kZSwgYQpjdXJsIHRvIGh0dHBzOi8vMTAuMTUyLjE4My4xOjQ0MyBvciB0 byBodHRwczovLzEzOS4xNzguMjkuMjA3OjM3NTczCndvcmtzIGZpbmUgZnJvbSBob3N0bnMsIG5l aXRoZXIgb2YgdGhlbSBkbyBpbiBjYXNlIG9mIGwzcy4gSW4gdGhlCmxhdHRlciBvbmx5IGEgY3Vy bCB0byBodHRwczovLzEyNy4wLjAuMTozNzU3MyBhcHBlYXJlZCB0byB3b3JrIHdoZXJlCmZvciBs b2NhbCBhZGRyZXNzZXMgb2YgYm9uZDAgSSBzYXcga2VybmVsIHN1ZGRlbmx5IHN0YXJ0aW5nIHRv IGVtaXQKQVJQIHJlcXVlc3RzIHRvIHF1ZXJ5IEhXIGFkZHJlc3Mgb2YgYm9uZDAgd2hpY2ggcmVt YWluZWQgdW5hbnN3ZXJlZAphbmQgbmVpZ2hib3IgZW50cmllcyBpbiBJTkNPTVBMRVRFIHN0YXRl LiBUaGVzZSBBUlAgcmVxdWVzdHMgb25seQpoYXBwZW4gd2hpbGUgaW4gbDNzLgoKRGVidWdnaW5n IHRoaXMgZnVydGhlciwgSSBmb3VuZCB0aGUgaXNzdWUgaXMgdGhhdCBsM3MgbW9kZSBpcyBwaWdn eS0KYmFja2luZyBvbiBsMyBtYXN0ZXIgZGV2aWNlLCBhbmQgaW4gdGhpcyBjYXNlIGxvY2FsIHJv dXRlcyBhcmUgdXNpbmcKbDNtZGV2X21hc3Rlcl9kZXZfcmN1KGRldikgaW5zdGVhZCBvZiBuZXQt Pmxvb3BiYWNrX2RldiBhcyBwZXIgY29tbWl0CmY1YTBhYWI4NGI3NCAoIm5ldDogaXB2NDogZHN0 IGZvciBsb2NhbCBpbnB1dCByb3V0ZXMgc2hvdWxkIHVzZSBsM21kZXYKaWYgcmVsZXZhbnQiKSBh bmQgNWYwMmNlMjRjMjY5ICgibmV0OiBsM21kZXY6IEFsbG93IHRoZSBsM21kZXYgdG8gYmUKYSBs b29wYmFjayIpLiBJIGZvdW5kIHRoYXQgcmV2ZXJ0aW5nIHRoZW0gYmFjayBpbnRvIHVzaW5nIHRo ZQpuZXQtPmxvb3BiYWNrX2RldiBmaXhlZCBpcHZsYW4gbDNzIGNvbm5lY3Rpdml0eSBhbmQgZ290 IGV2ZXJ5dGhpbmcKd29ya2luZyBmb3IgdGhlIENOSS4KCk5vdyBqdWRnaW5nIGZyb20gNGZiYWU3 ZDgzYzk4ICgiaXB2bGFuOiBJbnRyb2R1Y2UgbDNzIG1vZGUiKSBhbmQgdGhlCmwzbWRldiBwYXBl ciBpbiBbMF0gdGhlIG9ubHkgc29sZSByZWFzb24gd2h5IGlwdmxhbiBsM3MgaXMgcmVseWluZwpv biBsMyBtYXN0ZXIgZGV2aWNlIGlzIHRvIGdldCB0aGUgbDNtZGV2X2lwX3JjdigpIHJlY2VpdmUg aG9vayBmb3IKc2V0dGluZyB0aGUgZHN0IGVudHJ5IG9mIHRoZSBpbnB1dCByb3V0ZSB3aXRob3V0 IGFkZGluZyBpdHMgb3duCmlwdmxhbiBzcGVjaWZpYyBoYWNrcyBpbnRvIHRoZSByZWNlaXZlIHBh dGgsIGhvd2V2ZXIsIGFueSBsMyBkb21haW4Kc2VtYW50aWNzIGJleW9uZCBqdXN0IHRoYXQgYXJl IGJyZWFraW5nIGwzcyBvcGVyYXRpb24uIE5vdGUgdGhhdAppcHZsYW4gYWxzbyBoYXMgdGhlIGFi aWxpdHkgdG8gZHluYW1pY2FsbHkgc3dpdGNoIGl0cyBpbnRlcm5hbApvcGVyYXRpb24gZnJvbSBs MyB0byBsM3MgZm9yIGFsbCBwb3J0cyB2aWEgaXB2bGFuX3NldF9wb3J0X21vZGUoKQphdCBydW50 aW1lLiBJbiBhbnkgY2FzZSwgbDMgdnMgbDNzIHNvbGV5IGRpc3Rpbmd1aXNoZXMgaXRzZWxmIGJ5 CidkZS1jb25mdXNpbmcnIG5ldGZpbHRlciB0aHJvdWdoIHN3aXRjaGluZyBza2ItPmRldiB0byBp cHZsYW4gc2xhdmUKZGV2aWNlIGxhdGUgaW4gTkZfSU5FVF9MT0NBTF9JTiBiZWZvcmUgaGFuZGlu ZyB0aGUgc2tiIHRvIEw0LgoKTWluaW1hbCBmaXggdGFrZW4gaGVyZSBpcyB0byBhZGQgYSBJRkZf TDNNREVWX1JYX0hBTkRMRVIgZmxhZyB3aGljaCwKaWYgc2V0IGZyb20gaXB2bGFuIHNldHVwLCBn ZXRzIHVzIG9ubHkgdGhlIHdhbnRlZCBsM21kZXZfbDNfcmN2KCkgaG9vawp3aXRob3V0IGFueSBh ZGRpdGlvbmFsIGwzbWRldiBzZW1hbnRpY3Mgb24gdG9wLiBUaGlzIHNob3VsZCBhbHNvIGhhdmUK bWluaW1hbCBpbXBhY3Qgc2luY2UgZGV2LT5wcml2X2ZsYWdzIGlzIGFscmVhZHkgaG90IGluIGNh Y2hlLiBXaXRoCnRoaXMgc2V0LCBsM3MgbW9kZSBpcyB3b3JraW5nIGZpbmUgYW5kIEkgYWxzbyBn ZXQgdGhpbmdzIGxpa2UKbWFzcXVlcmFkaW5nIHBvZCB0cmFmZmljIG9uIHRoZSBpcHZsYW4gbWFz dGVyIHByb3Blcmx5IHdvcmtpbmcuCgogIFswXSBodHRwczovL25ldGRldmNvbmYub3JnLzEuMi9w YXBlcnMvYWhlcm4td2hhdC1pcy1sM21kZXYtcGFwZXIucGRmCgpGaXhlczogZjVhMGFhYjg0Yjc0 ICgibmV0OiBpcHY0OiBkc3QgZm9yIGxvY2FsIGlucHV0IHJvdXRlcyBzaG91bGQgdXNlIGwzbWRl diBpZiByZWxldmFudCIpCkZpeGVzOiA1ZjAyY2UyNGMyNjkgKCJuZXQ6IGwzbWRldjogQWxsb3cg dGhlIGwzbWRldiB0byBiZSBhIGxvb3BiYWNrIikKRml4ZXM6IDRmYmFlN2Q4M2M5OCAoImlwdmxh bjogSW50cm9kdWNlIGwzcyBtb2RlIikKU2lnbmVkLW9mZi1ieTogRGFuaWVsIEJvcmttYW5uIDxk YW5pZWxAaW9nZWFyYm94Lm5ldD4KQ2M6IE1haGVzaCBCYW5kZXdhciA8bWFoZXNoYkBnb29nbGUu Y29tPgpDYzogRGF2aWQgQWhlcm4gPGRzYUBjdW11bHVzbmV0d29ya3MuY29tPgpDYzogRmxvcmlh biBXZXN0cGhhbCA8ZndAc3RybGVuLmRlPgpDYzogTWFydHluYXMgUHVtcHV0aXMgPG1AbGFtYmRh Lmx0PgpBY2tlZC1ieTogRGF2aWQgQWhlcm4gPGRzYUBjdW11bHVzbmV0d29ya3MuY29tPgpTaWdu ZWQtb2ZmLWJ5OiBEYXZpZCBTLiBNaWxsZXIgPGRhdmVtQGRhdmVtbG9mdC5uZXQ+Ci0tLQogZHJp dmVycy9uZXQvaXB2bGFuL2lwdmxhbl9tYWluLmMgfCA2ICsrKy0tLQogaW5jbHVkZS9saW51eC9u ZXRkZXZpY2UuaCAgICAgICAgfCA4ICsrKysrKysrCiBpbmNsdWRlL25ldC9sM21kZXYuaCAgICAg ICAgICAgICB8IDMgKystCiAzIGZpbGVzIGNoYW5nZWQsIDEzIGluc2VydGlvbnMoKyksIDQgZGVs ZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvaXB2bGFuL2lwdmxhbl9tYWluLmMg Yi9kcml2ZXJzL25ldC9pcHZsYW4vaXB2bGFuX21haW4uYwppbmRleCA0YTk0OTU2OWVjNGMuLjVm YjU0MTg5Nzg2MyAxMDA2NDQKLS0tIGEvZHJpdmVycy9uZXQvaXB2bGFuL2lwdmxhbl9tYWluLmMK KysrIGIvZHJpdmVycy9uZXQvaXB2bGFuL2lwdmxhbl9tYWluLmMKQEAgLTk3LDEyICs5NywxMiBA QCBzdGF0aWMgaW50IGlwdmxhbl9zZXRfcG9ydF9tb2RlKHN0cnVjdCBpcHZsX3BvcnQgKnBvcnQs IHUxNiBudmFsKQogCQkJZXJyID0gaXB2bGFuX3JlZ2lzdGVyX25mX2hvb2socmVhZF9wbmV0KCZw b3J0LT5wbmV0KSk7CiAJCQlpZiAoIWVycikgewogCQkJCW1kZXYtPmwzbWRldl9vcHMgPSAmaXB2 bF9sM21kZXZfb3BzOwotCQkJCW1kZXYtPnByaXZfZmxhZ3MgfD0gSUZGX0wzTURFVl9NQVNURVI7 CisJCQkJbWRldi0+cHJpdl9mbGFncyB8PSBJRkZfTDNNREVWX1JYX0hBTkRMRVI7CiAJCQl9IGVs c2UKIAkJCQlnb3RvIGZhaWw7CiAJCX0gZWxzZSBpZiAocG9ydC0+bW9kZSA9PSBJUFZMQU5fTU9E RV9MM1MpIHsKIAkJCS8qIE9sZCBtb2RlIHdhcyBMM1MgKi8KLQkJCW1kZXYtPnByaXZfZmxhZ3Mg Jj0gfklGRl9MM01ERVZfTUFTVEVSOworCQkJbWRldi0+cHJpdl9mbGFncyAmPSB+SUZGX0wzTURF Vl9SWF9IQU5ETEVSOwogCQkJaXB2bGFuX3VucmVnaXN0ZXJfbmZfaG9vayhyZWFkX3BuZXQoJnBv cnQtPnBuZXQpKTsKIAkJCW1kZXYtPmwzbWRldl9vcHMgPSBOVUxMOwogCQl9CkBAIC0xNjIsNyAr MTYyLDcgQEAgc3RhdGljIHZvaWQgaXB2bGFuX3BvcnRfZGVzdHJveShzdHJ1Y3QgbmV0X2Rldmlj ZSAqZGV2KQogCXN0cnVjdCBza19idWZmICpza2I7CiAKIAlpZiAocG9ydC0+bW9kZSA9PSBJUFZM QU5fTU9ERV9MM1MpIHsKLQkJZGV2LT5wcml2X2ZsYWdzICY9IH5JRkZfTDNNREVWX01BU1RFUjsK KwkJZGV2LT5wcml2X2ZsYWdzICY9IH5JRkZfTDNNREVWX1JYX0hBTkRMRVI7CiAJCWlwdmxhbl91 bnJlZ2lzdGVyX25mX2hvb2soZGV2X25ldChkZXYpKTsKIAkJZGV2LT5sM21kZXZfb3BzID0gTlVM TDsKIAl9CmRpZmYgLS1naXQgYS9pbmNsdWRlL2xpbnV4L25ldGRldmljZS5oIGIvaW5jbHVkZS9s aW51eC9uZXRkZXZpY2UuaAppbmRleCBkODM3ZGFkMjRiNGMuLjIxZmVmOGM1ZWNhNyAxMDA2NDQK LS0tIGEvaW5jbHVkZS9saW51eC9uZXRkZXZpY2UuaAorKysgYi9pbmNsdWRlL2xpbnV4L25ldGRl dmljZS5oCkBAIC0xNDU1LDYgKzE0NTUsNyBAQCBzdHJ1Y3QgbmV0X2RldmljZV9vcHMgewogICog QElGRl9OT19SWF9IQU5ETEVSOiBkZXZpY2UgZG9lc24ndCBzdXBwb3J0IHRoZSByeF9oYW5kbGVy IGhvb2sKICAqIEBJRkZfRkFJTE9WRVI6IGRldmljZSBpcyBhIGZhaWxvdmVyIG1hc3RlciBkZXZp Y2UKICAqIEBJRkZfRkFJTE9WRVJfU0xBVkU6IGRldmljZSBpcyBsb3dlciBkZXYgb2YgYSBmYWls b3ZlciBtYXN0ZXIgZGV2aWNlCisgKiBASUZGX0wzTURFVl9SWF9IQU5ETEVSOiBvbmx5IGludm9r ZSB0aGUgcnggaGFuZGxlciBvZiBMMyBtYXN0ZXIgZGV2aWNlCiAgKi8KIGVudW0gbmV0ZGV2X3By aXZfZmxhZ3MgewogCUlGRl84MDJfMVFfVkxBTgkJCT0gMTw8MCwKQEAgLTE0ODYsNiArMTQ4Nyw3 IEBAIGVudW0gbmV0ZGV2X3ByaXZfZmxhZ3MgewogCUlGRl9OT19SWF9IQU5ETEVSCQk9IDE8PDI2 LAogCUlGRl9GQUlMT1ZFUgkJCT0gMTw8MjcsCiAJSUZGX0ZBSUxPVkVSX1NMQVZFCQk9IDE8PDI4 LAorCUlGRl9MM01ERVZfUlhfSEFORExFUgkJPSAxPDwyOSwKIH07CiAKICNkZWZpbmUgSUZGXzgw Ml8xUV9WTEFOCQkJSUZGXzgwMl8xUV9WTEFOCkBAIC0xNTE2LDYgKzE1MTgsNyBAQCBlbnVtIG5l dGRldl9wcml2X2ZsYWdzIHsKICNkZWZpbmUgSUZGX05PX1JYX0hBTkRMRVIJCUlGRl9OT19SWF9I QU5ETEVSCiAjZGVmaW5lIElGRl9GQUlMT1ZFUgkJCUlGRl9GQUlMT1ZFUgogI2RlZmluZSBJRkZf RkFJTE9WRVJfU0xBVkUJCUlGRl9GQUlMT1ZFUl9TTEFWRQorI2RlZmluZSBJRkZfTDNNREVWX1JY X0hBTkRMRVIJCUlGRl9MM01ERVZfUlhfSEFORExFUgogCiAvKioKICAqCXN0cnVjdCBuZXRfZGV2 aWNlIC0gVGhlIERFVklDRSBzdHJ1Y3R1cmUuCkBAIC00NDY0LDYgKzQ0NjcsMTEgQEAgc3RhdGlj IGlubGluZSBib29sIG5ldGlmX3N1cHBvcnRzX25vZmNzKHN0cnVjdCBuZXRfZGV2aWNlICpkZXYp CiAJcmV0dXJuIGRldi0+cHJpdl9mbGFncyAmIElGRl9TVVBQX05PRkNTOwogfQogCitzdGF0aWMg aW5saW5lIGJvb2wgbmV0aWZfaGFzX2wzX3J4X2hhbmRsZXIoY29uc3Qgc3RydWN0IG5ldF9kZXZp Y2UgKmRldikKK3sKKwlyZXR1cm4gZGV2LT5wcml2X2ZsYWdzICYgSUZGX0wzTURFVl9SWF9IQU5E TEVSOworfQorCiBzdGF0aWMgaW5saW5lIGJvb2wgbmV0aWZfaXNfbDNfbWFzdGVyKGNvbnN0IHN0 cnVjdCBuZXRfZGV2aWNlICpkZXYpCiB7CiAJcmV0dXJuIGRldi0+cHJpdl9mbGFncyAmIElGRl9M M01ERVZfTUFTVEVSOwpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9uZXQvbDNtZGV2LmggYi9pbmNsdWRl L25ldC9sM21kZXYuaAppbmRleCAzODMyMDk5Mjg5YzUuLjEyODQ4NzY1OGZmNyAxMDA2NDQKLS0t IGEvaW5jbHVkZS9uZXQvbDNtZGV2LmgKKysrIGIvaW5jbHVkZS9uZXQvbDNtZGV2LmgKQEAgLTE0 Miw3ICsxNDIsOCBAQCBzdHJ1Y3Qgc2tfYnVmZiAqbDNtZGV2X2wzX3JjdihzdHJ1Y3Qgc2tfYnVm ZiAqc2tiLCB1MTYgcHJvdG8pCiAKIAlpZiAobmV0aWZfaXNfbDNfc2xhdmUoc2tiLT5kZXYpKQog CQltYXN0ZXIgPSBuZXRkZXZfbWFzdGVyX3VwcGVyX2Rldl9nZXRfcmN1KHNrYi0+ZGV2KTsKLQll bHNlIGlmIChuZXRpZl9pc19sM19tYXN0ZXIoc2tiLT5kZXYpKQorCWVsc2UgaWYgKG5ldGlmX2lz X2wzX21hc3Rlcihza2ItPmRldikgfHwKKwkJIG5ldGlmX2hhc19sM19yeF9oYW5kbGVyKHNrYi0+ ZGV2KSkKIAkJbWFzdGVyID0gc2tiLT5kZXY7CiAKIAlpZiAobWFzdGVyICYmIG1hc3Rlci0+bDNt ZGV2X29wcy0+bDNtZGV2X2wzX3JjdikKLS0gCjIuMjAuMQoKCkZyb20gOGJmNzlmYjdjOGI4YmIz NjZjYWMwOGE4MzhhYTY5MDRkMjU2ZTA4ZSBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJvbTog SmFjb2IgV2VuIDxqaWFuLncud2VuQG9yYWNsZS5jb20+CkRhdGU6IFRodSwgMzEgSmFuIDIwMTkg MTU6MTg6NTYgKzA4MDAKU3ViamVjdDogW1BBVENIIDA0LzMwXSBsMnRwOiBjb3B5IDQgbW9yZSBi eXRlcyB0byBsaW5lYXIgcGFydCBpZiBuZWNlc3NhcnkKClsgVXBzdHJlYW0gY29tbWl0IDkxYzUy NDcwOGRlNjIwN2Y1OWRkMzUxMjUxOGQ4YTFjN2I0MzRlZTMgXQoKVGhlIHNpemUgb2YgTDJUUHYy IGhlYWRlciB3aXRoIGFsbCBvcHRpb25hbCBmaWVsZHMgaXMgMTQgYnl0ZXMuCmwydHBfdWRwX3Jl Y3ZfY29yZSBvbmx5IG1vdmVzIDEwIGJ5dGVzIHRvIHRoZSBsaW5lYXIgcGFydCBvZiBhCnNrYi4g VGhpcyBtYXkgbGVhZCB0byBsMnRwX3JlY3ZfY29tbW9uIHJlYWQgZGF0YSBvdXRzaWRlIG9mIGEg c2tiLgoKVGhpcyBwYXRjaCBtYWtlIHN1cmUgdGhhdCB0aGVyZSBpcyBhdCBsZWFzdCAxNCBieXRl cyBpbiB0aGUgbGluZWFyCnBhcnQgb2YgYSBza2IgdG8gbWVldCB0aGUgbWF4aW11bSBuZWVkIG9m IGwydHBfdWRwX3JlY3ZfY29yZSBhbmQKbDJ0cF9yZWN2X2NvbW1vbi4gVGhlIG1pbmltdW0gc2l6 ZSBvZiBib3RoIFBQUCBIRExDLWxpa2UgZnJhbWUgYW5kCkV0aGVybmV0IGZyYW1lIGlzIGxhcmdl ciB0aGFuIDE0IGJ5dGVzLCBzbyB3ZSBhcmUgc2FmZSB0byBkbyBzby4KCkFsc28gcmVtb3ZlIEwy VFBfSERSX1NJWkVfTk9TRVEsIGl0IGlzIHVudXNlZCBub3cuCgpGaXhlczogZmQ1NThkMTg2ZGYy ICgibDJ0cDogU3BsaXQgcHBwb2wydHAgcGF0Y2ggaW50byBzZXBhcmF0ZSBsMnRwIGFuZCBwcHAg cGFydHMiKQpTdWdnZXN0ZWQtYnk6IEd1aWxsYXVtZSBOYXVsdCA8Z25hdWx0QHJlZGhhdC5jb20+ ClNpZ25lZC1vZmYtYnk6IEphY29iIFdlbiA8amlhbi53LndlbkBvcmFjbGUuY29tPgpBY2tlZC1i eTogR3VpbGxhdW1lIE5hdWx0IDxnbmF1bHRAcmVkaGF0LmNvbT4KU2lnbmVkLW9mZi1ieTogRGF2 aWQgUy4gTWlsbGVyIDxkYXZlbUBkYXZlbWxvZnQubmV0PgotLS0KIG5ldC9sMnRwL2wydHBfY29y ZS5jIHwgNSArKy0tLQogMSBmaWxlIGNoYW5nZWQsIDIgaW5zZXJ0aW9ucygrKSwgMyBkZWxldGlv bnMoLSkKCmRpZmYgLS1naXQgYS9uZXQvbDJ0cC9sMnRwX2NvcmUuYyBiL25ldC9sMnRwL2wydHBf Y29yZS5jCmluZGV4IDI2ZjFkNDM1Njk2YS4uOWFjY2FlYzE1YzMyIDEwMDY0NAotLS0gYS9uZXQv bDJ0cC9sMnRwX2NvcmUuYworKysgYi9uZXQvbDJ0cC9sMnRwX2NvcmUuYwpAQCAtODMsOCArODMs NyBAQAogI2RlZmluZSBMMlRQX1NMRkxBR19TCSAgIDB4NDAwMDAwMDAKICNkZWZpbmUgTDJUUF9T TF9TRVFfTUFTSyAgIDB4MDBmZmZmZmYKIAotI2RlZmluZSBMMlRQX0hEUl9TSVpFX1NFUQkJMTAK LSNkZWZpbmUgTDJUUF9IRFJfU0laRV9OT1NFUQkJNgorI2RlZmluZSBMMlRQX0hEUl9TSVpFX01B WAkJMTQKIAogLyogRGVmYXVsdCB0cmFjZSBmbGFncyAqLwogI2RlZmluZSBMMlRQX0RFRkFVTFRf REVCVUdfRkxBR1MJMApAQCAtODA4LDcgKzgwNyw3IEBAIHN0YXRpYyBpbnQgbDJ0cF91ZHBfcmVj dl9jb3JlKHN0cnVjdCBsMnRwX3R1bm5lbCAqdHVubmVsLCBzdHJ1Y3Qgc2tfYnVmZiAqc2tiKQog CV9fc2tiX3B1bGwoc2tiLCBzaXplb2Yoc3RydWN0IHVkcGhkcikpOwogCiAJLyogU2hvcnQgcGFj a2V0PyAqLwotCWlmICghcHNrYl9tYXlfcHVsbChza2IsIEwyVFBfSERSX1NJWkVfU0VRKSkgewor CWlmICghcHNrYl9tYXlfcHVsbChza2IsIEwyVFBfSERSX1NJWkVfTUFYKSkgewogCQlsMnRwX2lu Zm8odHVubmVsLCBMMlRQX01TR19EQVRBLAogCQkJICAiJXM6IHJlY3Ygc2hvcnQgcGFja2V0IChs ZW49JWQpXG4iLAogCQkJICB0dW5uZWwtPm5hbWUsIHNrYi0+bGVuKTsKLS0gCjIuMjAuMQoKCkZy b20gN2FhMjk5MWY3NDU2N2NlMjJkZWEzM2RiMzc1NTc0NzVmMjcwNWU4ZSBNb24gU2VwIDE3IDAw OjAwOjAwIDIwMDEKRnJvbTogSmFjb2IgV2VuIDxqaWFuLncud2VuQG9yYWNsZS5jb20+CkRhdGU6 IFdlZCwgMzAgSmFuIDIwMTkgMTQ6NTU6MTQgKzA4MDAKU3ViamVjdDogW1BBVENIIDA1LzMwXSBs MnRwOiBmaXggcmVhZGluZyBvcHRpb25hbCBmaWVsZHMgb2YgTDJUUHYzCgpbIFVwc3RyZWFtIGNv bW1pdCA0NTIyYTcwZGI3YWE1ZTc3NTI2YTQwNzk2Mjg1Nzg1OTk4MjFiMTkzIF0KClVzZSBwc2ti X21heV9wdWxsKCkgdG8gbWFrZSBzdXJlIHRoZSBvcHRpb25hbCBmaWVsZHMgYXJlIGluIHNrYiBs aW5lYXIKcGFydHMsIHNvIHdlIGNhbiBzYWZlbHkgcmVhZCB0aGVtIGxhdGVyLgoKSXQncyBlYXN5 IHRvIHJlcHJvZHVjZSB0aGUgaXNzdWUgd2l0aCBhIG5ldCBkcml2ZXIgdGhhdCBzdXBwb3J0cyBw YWdlZApza2IgZGF0YS4gSnVzdCBjcmVhdGUgYSBMMlRQdjMgb3ZlciBJUCB0dW5uZWwgYW5kIHRo ZW4gZ2VuZXJhdGVzIHNvbWUKbmV0d29yayB0cmFmZmljLgpPbmNlIHJlcHJvZHVjZWQsIHJ4IGVy ciBpbiAvc3lzL2tlcm5lbC9kZWJ1Zy9sMnRwL3R1bm5lbHMgd2lsbCBpbmNyZWFzZS4KCkNoYW5n ZXMgaW4gdjQ6CjEuIHMvbDJ0cF92M19wdWxsX29wdC9sMnRwX3YzX2Vuc3VyZV9vcHRfaW5fbGlu ZWFyLwoyLiBzL3R1bm5lbC0+dmVyc2lvbiAhPSBMMlRQX0hEUl9WRVJfMi90dW5uZWwtPnZlcnNp b24gPT0gTDJUUF9IRFJfVkVSXzMvCjMuIEFkZCAnRml4ZXMnIGluIGNvbW1pdCBtZXNzYWdlcy4K CkNoYW5nZXMgaW4gdjM6CjEuIFRvIGtlZXAgY29uc2lzdGVuY3ksIG1vdmUgdGhlIGNvZGUgb3V0 IG9mIGwydHBfcmVjdl9jb21tb24uCjIuIFVzZSAibmV0IiBpbnN0ZWFkIG9mICJuZXQtbmV4dCIs IHNpbmNlIHRoaXMgaXMgYSBidWcgZml4LgoKQ2hhbmdlcyBpbiB2MjoKMS4gT25seSBmaXggTDJU UHYzIHRvIG1ha2UgY29kZSBzaW1wbGUuCiAgIFRvIGZpeCBib3RoIEwyVFB2MyBhbmQgTDJUUHYy LCB3ZSdkIGJldHRlciByZWZhY3RvciBsMnRwX3JlY3ZfY29tbW9uLgogICBJdCdzIGNvbXBsaWNh dGVkIHRvIGRvIHNvLgoyLiBSZWxvYWRpbmcgcG9pbnRlcnMgYWZ0ZXIgcHNrYl9tYXlfcHVsbAoK Rml4ZXM6IGY3ZmFmZmEzZmY4ZSAoImwydHA6IEFkZCBMMlRQdjMgcHJvdG9jb2wgc3VwcG9ydCIp CkZpeGVzOiAwZDc2NzUxZmFkNzcgKCJsMnRwOiBBZGQgTDJUUHYzIElQIGVuY2Fwc3VsYXRpb24g KG5vIFVEUCkgc3VwcG9ydCIpCkZpeGVzOiBhMzJlMGVlYzcwNDIgKCJsMnRwOiBpbnRyb2R1Y2Ug TDJUUHYzIElQIGVuY2Fwc3VsYXRpb24gc3VwcG9ydCBmb3IgSVB2NiIpClNpZ25lZC1vZmYtYnk6 IEphY29iIFdlbiA8amlhbi53LndlbkBvcmFjbGUuY29tPgpBY2tlZC1ieTogR3VpbGxhdW1lIE5h dWx0IDxnbmF1bHRAcmVkaGF0LmNvbT4KU2lnbmVkLW9mZi1ieTogRGF2aWQgUy4gTWlsbGVyIDxk YXZlbUBkYXZlbWxvZnQubmV0PgotLS0KIG5ldC9sMnRwL2wydHBfY29yZS5jIHwgIDQgKysrKwog bmV0L2wydHAvbDJ0cF9jb3JlLmggfCAyMCArKysrKysrKysrKysrKysrKysrKwogbmV0L2wydHAv bDJ0cF9pcC5jICAgfCAgMyArKysKIG5ldC9sMnRwL2wydHBfaXA2LmMgIHwgIDMgKysrCiA0IGZp bGVzIGNoYW5nZWQsIDMwIGluc2VydGlvbnMoKykKCmRpZmYgLS1naXQgYS9uZXQvbDJ0cC9sMnRw X2NvcmUuYyBiL25ldC9sMnRwL2wydHBfY29yZS5jCmluZGV4IDlhY2NhZWMxNWMzMi4uZmVkNmJl Y2M1ZGFmIDEwMDY0NAotLS0gYS9uZXQvbDJ0cC9sMnRwX2NvcmUuYworKysgYi9uZXQvbDJ0cC9s MnRwX2NvcmUuYwpAQCAtODgzLDYgKzg4MywxMCBAQCBzdGF0aWMgaW50IGwydHBfdWRwX3JlY3Zf Y29yZShzdHJ1Y3QgbDJ0cF90dW5uZWwgKnR1bm5lbCwgc3RydWN0IHNrX2J1ZmYgKnNrYikKIAkJ Z290byBlcnJvcjsKIAl9CiAKKwlpZiAodHVubmVsLT52ZXJzaW9uID09IEwyVFBfSERSX1ZFUl8z ICYmCisJICAgIGwydHBfdjNfZW5zdXJlX29wdF9pbl9saW5lYXIoc2Vzc2lvbiwgc2tiLCAmcHRy LCAmb3B0cikpCisJCWdvdG8gZXJyb3I7CisKIAlsMnRwX3JlY3ZfY29tbW9uKHNlc3Npb24sIHNr YiwgcHRyLCBvcHRyLCBoZHJmbGFncywgbGVuZ3RoKTsKIAlsMnRwX3Nlc3Npb25fZGVjX3JlZmNv dW50KHNlc3Npb24pOwogCmRpZmYgLS1naXQgYS9uZXQvbDJ0cC9sMnRwX2NvcmUuaCBiL25ldC9s MnRwL2wydHBfY29yZS5oCmluZGV4IDljOWFmZTk0ZDM4OS4uYjJjZTkwMjYwYzM1IDEwMDY0NAot LS0gYS9uZXQvbDJ0cC9sMnRwX2NvcmUuaAorKysgYi9uZXQvbDJ0cC9sMnRwX2NvcmUuaApAQCAt MzAxLDYgKzMwMSwyNiBAQCBzdGF0aWMgaW5saW5lIGJvb2wgbDJ0cF90dW5uZWxfdXNlc194ZnJt KGNvbnN0IHN0cnVjdCBsMnRwX3R1bm5lbCAqdHVubmVsKQogfQogI2VuZGlmCiAKK3N0YXRpYyBp bmxpbmUgaW50IGwydHBfdjNfZW5zdXJlX29wdF9pbl9saW5lYXIoc3RydWN0IGwydHBfc2Vzc2lv biAqc2Vzc2lvbiwgc3RydWN0IHNrX2J1ZmYgKnNrYiwKKwkJCQkJICAgICAgIHVuc2lnbmVkIGNo YXIgKipwdHIsIHVuc2lnbmVkIGNoYXIgKipvcHRyKQoreworCWludCBvcHRfbGVuID0gc2Vzc2lv bi0+cGVlcl9jb29raWVfbGVuICsgbDJ0cF9nZXRfbDJzcGVjaWZpY19sZW4oc2Vzc2lvbik7CisK KwlpZiAob3B0X2xlbiA+IDApIHsKKwkJaW50IG9mZiA9ICpwdHIgLSAqb3B0cjsKKworCQlpZiAo IXBza2JfbWF5X3B1bGwoc2tiLCBvZmYgKyBvcHRfbGVuKSkKKwkJCXJldHVybiAtMTsKKworCQlp ZiAoc2tiLT5kYXRhICE9ICpvcHRyKSB7CisJCQkqb3B0ciA9IHNrYi0+ZGF0YTsKKwkJCSpwdHIg PSBza2ItPmRhdGEgKyBvZmY7CisJCX0KKwl9CisKKwlyZXR1cm4gMDsKK30KKwogI2RlZmluZSBs MnRwX3ByaW50ayhwdHIsIHR5cGUsIGZ1bmMsIGZtdCwgLi4uKQkJCQlcCiBkbyB7CQkJCQkJCQkJ XAogCWlmICgoKHB0ciktPmRlYnVnKSAmICh0eXBlKSkJCQkJCVwKZGlmZiAtLWdpdCBhL25ldC9s MnRwL2wydHBfaXAuYyBiL25ldC9sMnRwL2wydHBfaXAuYwppbmRleCAzNWY2Zjg2ZDRkY2MuLmQ0 YzYwNTIzYzU0OSAxMDA2NDQKLS0tIGEvbmV0L2wydHAvbDJ0cF9pcC5jCisrKyBiL25ldC9sMnRw L2wydHBfaXAuYwpAQCAtMTY1LDYgKzE2NSw5IEBAIHN0YXRpYyBpbnQgbDJ0cF9pcF9yZWN2KHN0 cnVjdCBza19idWZmICpza2IpCiAJCXByaW50X2hleF9kdW1wX2J5dGVzKCIiLCBEVU1QX1BSRUZJ WF9PRkZTRVQsIHB0ciwgbGVuZ3RoKTsKIAl9CiAKKwlpZiAobDJ0cF92M19lbnN1cmVfb3B0X2lu X2xpbmVhcihzZXNzaW9uLCBza2IsICZwdHIsICZvcHRyKSkKKwkJZ290byBkaXNjYXJkX3Nlc3M7 CisKIAlsMnRwX3JlY3ZfY29tbW9uKHNlc3Npb24sIHNrYiwgcHRyLCBvcHRyLCAwLCBza2ItPmxl bik7CiAJbDJ0cF9zZXNzaW9uX2RlY19yZWZjb3VudChzZXNzaW9uKTsKIApkaWZmIC0tZ2l0IGEv bmV0L2wydHAvbDJ0cF9pcDYuYyBiL25ldC9sMnRwL2wydHBfaXA2LmMKaW5kZXggMjM3ZjFhNGEw YjBjLi4wYWU2ODk5ZWRhYzAgMTAwNjQ0Ci0tLSBhL25ldC9sMnRwL2wydHBfaXA2LmMKKysrIGIv bmV0L2wydHAvbDJ0cF9pcDYuYwpAQCAtMTc4LDYgKzE3OCw5IEBAIHN0YXRpYyBpbnQgbDJ0cF9p cDZfcmVjdihzdHJ1Y3Qgc2tfYnVmZiAqc2tiKQogCQlwcmludF9oZXhfZHVtcF9ieXRlcygiIiwg RFVNUF9QUkVGSVhfT0ZGU0VULCBwdHIsIGxlbmd0aCk7CiAJfQogCisJaWYgKGwydHBfdjNfZW5z dXJlX29wdF9pbl9saW5lYXIoc2Vzc2lvbiwgc2tiLCAmcHRyLCAmb3B0cikpCisJCWdvdG8gZGlz Y2FyZF9zZXNzOworCiAJbDJ0cF9yZWN2X2NvbW1vbihzZXNzaW9uLCBza2IsIHB0ciwgb3B0ciwg MCwgc2tiLT5sZW4pOwogCWwydHBfc2Vzc2lvbl9kZWNfcmVmY291bnQoc2Vzc2lvbik7CiAKLS0g CjIuMjAuMQoKCkZyb20gM2FhMmViNGIzMDljNWUyMTJiZmEzYTVhOGNhNGFjMzY5YjZkZTBjMSBN b24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJvbTogTG9yZW56byBCaWFuY29uaSA8bG9yZW56by5i aWFuY29uaUByZWRoYXQuY29tPgpEYXRlOiBNb24sIDI4IEphbiAyMDE5IDIyOjIzOjQ4ICswMTAw ClN1YmplY3Q6IFtQQVRDSCAwNi8zMF0gbmV0OiBpcF9ncmU6IGFsd2F5cyByZXBvcnRzIG9fa2V5 IHRvIHVzZXJzcGFjZQoKWyBVcHN0cmVhbSBjb21taXQgZmVhZjVjNzk2YjNmMDI0MGYxMGQwZDZk MGI2ODY3MTVmZDU4YTA1YiBdCgpFcnNwYW4gcHJvdG9jb2wgKHZlcnNpb24gMSBhbmQgMikgcmVs aWVzIG9uIG9fa2V5IHRvIGNvbmZpZ3VyZQpzZXNzaW9uIGlkIGhlYWRlciBmaWVsZC4gSG93ZXZl ciBUVU5ORUxfS0VZIGJpdCBpcyBjbGVhcmVkIGluCmVyc3Bhbl94bWl0IHNpbmNlIEVSU1BBTiBw cm90b2NvbCBkb2VzIG5vdCBzZXQgdGhlIGtleSBmaWVsZApvZiB0aGUgZXh0ZXJuYWwgR1JFIGhl YWRlciBhbmQgc28gdGhlIGNvbmZpZ3VyZWQgb19rZXkgaXMgbm90IHJlcG9ydGVkCnRvIHVzZXJz cGFjZS4gVGhlIGlzc3VlIGNhbiBiZSB0cmlnZ2VyZWQgd2l0aCB0aGUgZm9sbG93aW5nIHJlcHJv ZHVjZXI6CgokaXAgbGluayBhZGQgZXJzcGFuMSB0eXBlIGVyc3BhbiBsb2NhbCAxOTIuMTY4LjAu MSByZW1vdGUgMTkyLjE2OC4wLjIgXAogICAga2V5IDEgc2VxIGVyc3Bhbl92ZXIgMQokaXAgbGlu ayBzZXQgZXJzcGFuMSB1cAokaXAgLWQgbGluayBzaCBlcnNwYW4xCgplcnNwYW4xQE5PTkU6IDxC Uk9BRENBU1QsTVVMVElDQVNULFVQLExPV0VSX1VQPiBtdHUgMTQ1MCBxZGlzYyBwZmlmb19mYXN0 IHN0YXRlIFVOS05PV04gbW9kZSBERUZBVUxUCiAgbGluay9ldGhlciA1MjphYTo5OTo5NTo5YTpi NSBicmQgZmY6ZmY6ZmY6ZmY6ZmY6ZmYgcHJvbWlzY3VpdHkgMCBtaW5tdHUgNjggbWF4bXR1IDE1 MDAKICBlcnNwYW4gcmVtb3RlIDE5Mi4xNjguMC4yIGxvY2FsIDE5Mi4xNjguMC4xIHR0bCBpbmhl cml0IGlrZXkgMC4wLjAuMSBpc2VxIG9zZXEgZXJzcGFuX2luZGV4IDAKCkZpeCB0aGUgaXNzdWUg YWRkaW5nIFRVTk5FTF9LRVkgYml0IHRvIHRoZSBvX2ZsYWdzIHBhcmFtZXRlciBpbgppcGdyZV9m aWxsX2luZm8KCkZpeGVzOiA4NGU1NGZlMGE1ZWEgKCJncmU6IGludHJvZHVjZSBuYXRpdmUgdHVu bmVsIHN1cHBvcnQgZm9yIEVSU1BBTiIpClNpZ25lZC1vZmYtYnk6IExvcmVuem8gQmlhbmNvbmkg PGxvcmVuem8uYmlhbmNvbmlAcmVkaGF0LmNvbT4KU2lnbmVkLW9mZi1ieTogRGF2aWQgUy4gTWls bGVyIDxkYXZlbUBkYXZlbWxvZnQubmV0PgotLS0KIG5ldC9pcHY0L2lwX2dyZS5jIHwgNyArKysr KystCiAxIGZpbGUgY2hhbmdlZCwgNiBpbnNlcnRpb25zKCspLCAxIGRlbGV0aW9uKC0pCgpkaWZm IC0tZ2l0IGEvbmV0L2lwdjQvaXBfZ3JlLmMgYi9uZXQvaXB2NC9pcF9ncmUuYwppbmRleCAwYmZh ZDNlNzI1MDkuLmMwOTdiZTU5MDk3NiAxMDA2NDQKLS0tIGEvbmV0L2lwdjQvaXBfZ3JlLmMKKysr IGIvbmV0L2lwdjQvaXBfZ3JlLmMKQEAgLTE0NzEsMTIgKzE0NzEsMTcgQEAgc3RhdGljIGludCBp cGdyZV9maWxsX2luZm8oc3RydWN0IHNrX2J1ZmYgKnNrYiwgY29uc3Qgc3RydWN0IG5ldF9kZXZp Y2UgKmRldikKIHsKIAlzdHJ1Y3QgaXBfdHVubmVsICp0ID0gbmV0ZGV2X3ByaXYoZGV2KTsKIAlz dHJ1Y3QgaXBfdHVubmVsX3Bhcm0gKnAgPSAmdC0+cGFybXM7CisJX19iZTE2IG9fZmxhZ3MgPSBw LT5vX2ZsYWdzOworCisJaWYgKCh0LT5lcnNwYW5fdmVyID09IDEgfHwgdC0+ZXJzcGFuX3ZlciA9 PSAyKSAmJgorCSAgICAhdC0+Y29sbGVjdF9tZCkKKwkJb19mbGFncyB8PSBUVU5ORUxfS0VZOwog CiAJaWYgKG5sYV9wdXRfdTMyKHNrYiwgSUZMQV9HUkVfTElOSywgcC0+bGluaykgfHwKIAkgICAg bmxhX3B1dF9iZTE2KHNrYiwgSUZMQV9HUkVfSUZMQUdTLAogCQkJIGdyZV90bmxfZmxhZ3NfdG9f Z3JlX2ZsYWdzKHAtPmlfZmxhZ3MpKSB8fAogCSAgICBubGFfcHV0X2JlMTYoc2tiLCBJRkxBX0dS RV9PRkxBR1MsCi0JCQkgZ3JlX3RubF9mbGFnc190b19ncmVfZmxhZ3MocC0+b19mbGFncykpIHx8 CisJCQkgZ3JlX3RubF9mbGFnc190b19ncmVfZmxhZ3Mob19mbGFncykpIHx8CiAJICAgIG5sYV9w dXRfYmUzMihza2IsIElGTEFfR1JFX0lLRVksIHAtPmlfa2V5KSB8fAogCSAgICBubGFfcHV0X2Jl MzIoc2tiLCBJRkxBX0dSRV9PS0VZLCBwLT5vX2tleSkgfHwKIAkgICAgbmxhX3B1dF9pbl9hZGRy KHNrYiwgSUZMQV9HUkVfTE9DQUwsIHAtPmlwaC5zYWRkcikgfHwKLS0gCjIuMjAuMQoKCkZyb20g YjFlOGJmZmZjNGYzNTcwOTJmN2RlOWJlYjFhZTQxMGQ3MDQ3NTRmNCBNb24gU2VwIDE3IDAwOjAw OjAwIDIwMDEKRnJvbTogTG9yZW56byBCaWFuY29uaSA8bG9yZW56by5iaWFuY29uaUByZWRoYXQu Y29tPgpEYXRlOiBGcmksIDE4IEphbiAyMDE5IDEyOjA1OjM5ICswMTAwClN1YmplY3Q6IFtQQVRD SCAwNy8zMF0gbmV0OiBpcF9ncmU6IHVzZSBlcnNwYW4ga2V5IGZpZWxkIGZvciB0dW5uZWwgbG9v a3VwCgpbIFVwc3RyZWFtIGNvbW1pdCBjYjczZWU0MGIxYjM4MWVhZjM3NDllNmRiZWVkNTY3YmIz OGU1MjU4IF0KClVzZSBFUlNQQU4ga2V5IGhlYWRlciBmaWVsZCBhcyB0dW5uZWwga2V5IGluIGdy ZV9wYXJzZV9oZWFkZXIgcm91dGluZQpzaW5jZSBFUlNQQU4gcHJvdG9jb2wgc2V0cyB0aGUga2V5 IGZpZWxkIG9mIHRoZSBleHRlcm5hbCBHUkUgaGVhZGVyIHRvCjAgcmVzdWx0aW5nIGluIGEgdHVu bmVsIGxvb2t1cCBmYWlsIGluIGlwNmdyZV9lcnIuCkluIGFkZGl0aW9uIHJlbW92ZSBrZXkgZmll bGQgcGFyc2luZyBhbmQgcHNrYl9tYXlfcHVsbCBjaGVjayBpbgplcnNwYW5fcmN2IGFuZCBpcDZl cnNwYW5fcmN2CgpGaXhlczogNWE5NjNlYjYxYjdjICgiaXA2X2dyZTogQWRkIEVSU1BBTiBuYXRp dmUgdHVubmVsIHN1cHBvcnQiKQpTaWduZWQtb2ZmLWJ5OiBMb3JlbnpvIEJpYW5jb25pIDxsb3Jl bnpvLmJpYW5jb25pQHJlZGhhdC5jb20+ClNpZ25lZC1vZmYtYnk6IERhdmlkIFMuIE1pbGxlciA8 ZGF2ZW1AZGF2ZW1sb2Z0Lm5ldD4KLS0tCiBuZXQvaXB2NC9ncmVfZGVtdXguYyB8IDE3ICsrKysr KysrKysrKysrKysrCiBuZXQvaXB2NC9pcF9ncmUuYyAgICB8ICA5IC0tLS0tLS0tLQogbmV0L2lw djYvaXA2X2dyZS5jICAgfCAgNCAtLS0tCiAzIGZpbGVzIGNoYW5nZWQsIDE3IGluc2VydGlvbnMo KyksIDEzIGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL25ldC9pcHY0L2dyZV9kZW11eC5jIGIv bmV0L2lwdjQvZ3JlX2RlbXV4LmMKaW5kZXggYjc5ODg2MmI2YmU1Li5mMjFlYTYxMjVmYzIgMTAw NjQ0Ci0tLSBhL25ldC9pcHY0L2dyZV9kZW11eC5jCisrKyBiL25ldC9pcHY0L2dyZV9kZW11eC5j CkBAIC0yNSw2ICsyNSw3IEBACiAjaW5jbHVkZSA8bGludXgvc3BpbmxvY2suaD4KICNpbmNsdWRl IDxuZXQvcHJvdG9jb2wuaD4KICNpbmNsdWRlIDxuZXQvZ3JlLmg+CisjaW5jbHVkZSA8bmV0L2Vy c3Bhbi5oPgogCiAjaW5jbHVkZSA8bmV0L2ljbXAuaD4KICNpbmNsdWRlIDxuZXQvcm91dGUuaD4K QEAgLTExOCw2ICsxMTksMjIgQEAgaW50IGdyZV9wYXJzZV9oZWFkZXIoc3RydWN0IHNrX2J1ZmYg KnNrYiwgc3RydWN0IHRubF9wdGtfaW5mbyAqdHBpLAogCQkJaGRyX2xlbiArPSA0OwogCX0KIAl0 cGktPmhkcl9sZW4gPSBoZHJfbGVuOworCisJLyogRVJTUEFOIHZlciAxIGFuZCAyIHByb3RvY29s IHNldHMgR1JFIGtleSBmaWVsZAorCSAqIHRvIDAgYW5kIHNldHMgdGhlIGNvbmZpZ3VyZWQga2V5 IGluIHRoZQorCSAqIGlubmVyIGVyc3BhbiBoZWFkZXIgZmllbGQKKwkgKi8KKwlpZiAoZ3JlaC0+ cHJvdG9jb2wgPT0gaHRvbnMoRVRIX1BfRVJTUEFOKSB8fAorCSAgICBncmVoLT5wcm90b2NvbCA9 PSBodG9ucyhFVEhfUF9FUlNQQU4yKSkgeworCQlzdHJ1Y3QgZXJzcGFuX2Jhc2VfaGRyICplcnNo ZHI7CisKKwkJaWYgKCFwc2tiX21heV9wdWxsKHNrYiwgbmhzICsgaGRyX2xlbiArIHNpemVvZigq ZXJzaGRyKSkpCisJCQlyZXR1cm4gLUVJTlZBTDsKKworCQllcnNoZHIgPSAoc3RydWN0IGVyc3Bh bl9iYXNlX2hkciAqKW9wdGlvbnM7CisJCXRwaS0+a2V5ID0gY3B1X3RvX2JlMzIoZ2V0X3Nlc3Np b25faWQoZXJzaGRyKSk7CisJfQorCiAJcmV0dXJuIGhkcl9sZW47CiB9CiBFWFBPUlRfU1lNQk9M KGdyZV9wYXJzZV9oZWFkZXIpOwpkaWZmIC0tZ2l0IGEvbmV0L2lwdjQvaXBfZ3JlLmMgYi9uZXQv aXB2NC9pcF9ncmUuYwppbmRleCBjMDk3YmU1OTA5NzYuLmYxOTk5NDVmNmU0YSAxMDA2NDQKLS0t IGEvbmV0L2lwdjQvaXBfZ3JlLmMKKysrIGIvbmV0L2lwdjQvaXBfZ3JlLmMKQEAgLTI2OSwyMCAr MjY5LDExIEBAIHN0YXRpYyBpbnQgZXJzcGFuX3JjdihzdHJ1Y3Qgc2tfYnVmZiAqc2tiLCBzdHJ1 Y3QgdG5sX3B0a19pbmZvICp0cGksCiAJaW50IGxlbjsKIAogCWl0biA9IG5ldF9nZW5lcmljKG5l dCwgZXJzcGFuX25ldF9pZCk7Ci0JbGVuID0gZ3JlX2hkcl9sZW4gKyBzaXplb2YoKmVyc2hkcik7 Ci0KLQkvKiBDaGVjayBiYXNlZCBoZHIgbGVuICovCi0JaWYgKHVubGlrZWx5KCFwc2tiX21heV9w dWxsKHNrYiwgbGVuKSkpCi0JCXJldHVybiBQQUNLRVRfUkVKRUNUOwogCiAJaXBoID0gaXBfaGRy KHNrYik7CiAJZXJzaGRyID0gKHN0cnVjdCBlcnNwYW5fYmFzZV9oZHIgKikoc2tiLT5kYXRhICsg Z3JlX2hkcl9sZW4pOwogCXZlciA9IGVyc2hkci0+dmVyOwogCi0JLyogVGhlIG9yaWdpbmFsIEdS RSBoZWFkZXIgZG9lcyBub3QgaGF2ZSBrZXkgZmllbGQsCi0JICogVXNlIEVSU1BBTiAxMC1iaXQg c2Vzc2lvbiBJRCBhcyBrZXkuCi0JICovCi0JdHBpLT5rZXkgPSBjcHVfdG9fYmUzMihnZXRfc2Vz c2lvbl9pZChlcnNoZHIpKTsKIAl0dW5uZWwgPSBpcF90dW5uZWxfbG9va3VwKGl0biwgc2tiLT5k ZXYtPmlmaW5kZXgsCiAJCQkJICB0cGktPmZsYWdzIHwgVFVOTkVMX0tFWSwKIAkJCQkgIGlwaC0+ c2FkZHIsIGlwaC0+ZGFkZHIsIHRwaS0+a2V5KTsKZGlmZiAtLWdpdCBhL25ldC9pcHY2L2lwNl9n cmUuYyBiL25ldC9pcHY2L2lwNl9ncmUuYwppbmRleCAzNDVlNjgzOWYwMzEuLjU4MDkwN2ViNDJj ZCAxMDA2NDQKLS0tIGEvbmV0L2lwdjYvaXA2X2dyZS5jCisrKyBiL25ldC9pcHY2L2lwNl9ncmUu YwpAQCAtNTUwLDEzICs1NTAsOSBAQCBzdGF0aWMgaW50IGlwNmVyc3Bhbl9yY3Yoc3RydWN0IHNr X2J1ZmYgKnNrYiwgaW50IGdyZV9oZHJfbGVuLAogCXN0cnVjdCBpcDZfdG5sICp0dW5uZWw7CiAJ dTggdmVyOwogCi0JaWYgKHVubGlrZWx5KCFwc2tiX21heV9wdWxsKHNrYiwgc2l6ZW9mKCplcnNo ZHIpKSkpCi0JCXJldHVybiBQQUNLRVRfUkVKRUNUOwotCiAJaXB2NmggPSBpcHY2X2hkcihza2Ip OwogCWVyc2hkciA9IChzdHJ1Y3QgZXJzcGFuX2Jhc2VfaGRyICopc2tiLT5kYXRhOwogCXZlciA9 IGVyc2hkci0+dmVyOwotCXRwaS0+a2V5ID0gY3B1X3RvX2JlMzIoZ2V0X3Nlc3Npb25faWQoZXJz aGRyKSk7CiAKIAl0dW5uZWwgPSBpcDZncmVfdHVubmVsX2xvb2t1cChza2ItPmRldiwKIAkJCQkg ICAgICAmaXB2NmgtPnNhZGRyLCAmaXB2NmgtPmRhZGRyLCB0cGktPmtleSwKLS0gCjIuMjAuMQoK CkZyb20gNGVhMWYzYzY0MjUzMjQ3NWIyYzI2ZDk1ZmQ2YTY5YjBiOWI3M2FiMCBNb24gU2VwIDE3 IDAwOjAwOjAwIDIwMDEKRnJvbTogQXlhIExldmluIDxheWFsQG1lbGxhbm94LmNvbT4KRGF0ZTog VHVlLCAyMiBKYW4gMjAxOSAxNToxOTo0NCArMDIwMApTdWJqZWN0OiBbUEFUQ0ggMDgvMzBdIG5l dC9tbHg0X2NvcmU6IEFkZCBtYXNraW5nIGZvciBhIGZldyBxdWVyaWVzIG9uIEhDQQogY2FwcwoK WyBVcHN0cmVhbSBjb21taXQgYTQwZGVkNjA0MzY1ODQ0NGVlNGRkNmVlMzc0MTE5ZTRlOThiMzNm YyBdCgpEcml2ZXIgcmVhZHMgdGhlIHF1ZXJ5IEhDQSBjYXBhYmlsaXRpZXMgd2l0aG91dCB0aGUg Y29ycmVzcG9uZGluZyBtYXNrcy4KV2l0aG91dCB0aGUgY29ycmVjdCBtYXNrcywgdGhlIGJhc2Ug YWRkcmVzc2VzIG9mIHRoZSBxdWV1ZXMgYXJlCnVuYWxpZ25lZC4gIEluIGFkZGl0aW9uIHNvbWUg cmVzZXJ2ZWQgYml0cyB3ZXJlIHdyb25nbHkgcmVhZC4gIFVzaW5nIHRoZQpjb3JyZWN0IG1hc2tz LCBlbnN1cmVzIGFsaWdubWVudCBvZiB0aGUgYmFzZSBhZGRyZXNzZXMgYW5kIGFsbG93cyBmdXR1 cmUKZmlybXdhcmUgdmVyc2lvbnMgc2FmZSB1c2Ugb2YgdGhlIHJlc2VydmVkIGJpdHMuCgpGaXhl czogYWI5YzE3YTAwOWVlICgibWx4NF9jb3JlOiBNb2RpZnkgZHJpdmVyIGluaXRpYWxpemF0aW9u IGZsb3cgdG8gYWNjb21tb2RhdGUgU1JJT1YgZm9yIEV0aGVybmV0IikKRml4ZXM6IDBmZjFmYjY1 NGJlYyAoIntORVQsIElCfS9tbHg0OiBBZGQgZGV2aWNlIG1hbmFnZWQgZmxvdyBzdGVlcmluZyBm aXJtd2FyZSBBUEkiKQpTaWduZWQtb2ZmLWJ5OiBBeWEgTGV2aW4gPGF5YWxAbWVsbGFub3guY29t PgpTaWduZWQtb2ZmLWJ5OiBUYXJpcSBUb3VrYW4gPHRhcmlxdEBtZWxsYW5veC5jb20+ClNpZ25l ZC1vZmYtYnk6IERhdmlkIFMuIE1pbGxlciA8ZGF2ZW1AZGF2ZW1sb2Z0Lm5ldD4KLS0tCiBkcml2 ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg0L2Z3LmMgfCA3NSArKysrKysrKysrKysrKyst LS0tLS0tLS0tCiAxIGZpbGUgY2hhbmdlZCwgNDYgaW5zZXJ0aW9ucygrKSwgMjkgZGVsZXRpb25z KC0pCgpkaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NC9mdy5j IGIvZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NC9mdy5jCmluZGV4IGJhYmNmZDlj MDU3MS4uNzUyMTMwNDY1NjNjIDEwMDY0NAotLS0gYS9kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxs YW5veC9tbHg0L2Z3LmMKKysrIGIvZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NC9m dy5jCkBAIC0yMDY0LDkgKzIwNjQsMTEgQEAgaW50IG1seDRfUVVFUllfSENBKHN0cnVjdCBtbHg0 X2RldiAqZGV2LAogewogCXN0cnVjdCBtbHg0X2NtZF9tYWlsYm94ICptYWlsYm94OwogCV9fYmUz MiAqb3V0Ym94OworCXU2NCBxd29yZF9maWVsZDsKIAl1MzIgZHdvcmRfZmllbGQ7Ci0JaW50IGVy cjsKKwl1MTYgd29yZF9maWVsZDsKIAl1OCBieXRlX2ZpZWxkOworCWludCBlcnI7CiAJc3RhdGlj IGNvbnN0IHU4IGEwX2RtZnNfcXVlcnlfaHdfc3RlZXJpbmdbXSA9ICB7CiAJCVswXSA9IE1MWDRf U1RFRVJJTkdfRE1GU19BMF9ERUZBVUxULAogCQlbMV0gPSBNTFg0X1NURUVSSU5HX0RNRlNfQTBf RFlOQU1JQywKQEAgLTIwOTQsMTkgKzIwOTYsMzIgQEAgaW50IG1seDRfUVVFUllfSENBKHN0cnVj dCBtbHg0X2RldiAqZGV2LAogCiAJLyogUVBDL0VFQy9DUUMvRVFDL1JETUFSQyBhdHRyaWJ1dGVz ICovCiAKLQlNTFg0X0dFVChwYXJhbS0+cXBjX2Jhc2UsICAgICAgb3V0Ym94LCBJTklUX0hDQV9R UENfQkFTRV9PRkZTRVQpOwotCU1MWDRfR0VUKHBhcmFtLT5sb2dfbnVtX3FwcywgICBvdXRib3gs IElOSVRfSENBX0xPR19RUF9PRkZTRVQpOwotCU1MWDRfR0VUKHBhcmFtLT5zcnFjX2Jhc2UsICAg ICBvdXRib3gsIElOSVRfSENBX1NSUUNfQkFTRV9PRkZTRVQpOwotCU1MWDRfR0VUKHBhcmFtLT5s b2dfbnVtX3NycXMsICBvdXRib3gsIElOSVRfSENBX0xPR19TUlFfT0ZGU0VUKTsKLQlNTFg0X0dF VChwYXJhbS0+Y3FjX2Jhc2UsICAgICAgb3V0Ym94LCBJTklUX0hDQV9DUUNfQkFTRV9PRkZTRVQp OwotCU1MWDRfR0VUKHBhcmFtLT5sb2dfbnVtX2NxcywgICBvdXRib3gsIElOSVRfSENBX0xPR19D UV9PRkZTRVQpOwotCU1MWDRfR0VUKHBhcmFtLT5hbHRjX2Jhc2UsICAgICBvdXRib3gsIElOSVRf SENBX0FMVENfQkFTRV9PRkZTRVQpOwotCU1MWDRfR0VUKHBhcmFtLT5hdXhjX2Jhc2UsICAgICBv dXRib3gsIElOSVRfSENBX0FVWENfQkFTRV9PRkZTRVQpOwotCU1MWDRfR0VUKHBhcmFtLT5lcWNf YmFzZSwgICAgICBvdXRib3gsIElOSVRfSENBX0VRQ19CQVNFX09GRlNFVCk7Ci0JTUxYNF9HRVQo cGFyYW0tPmxvZ19udW1fZXFzLCAgIG91dGJveCwgSU5JVF9IQ0FfTE9HX0VRX09GRlNFVCk7Ci0J TUxYNF9HRVQocGFyYW0tPm51bV9zeXNfZXFzLCAgIG91dGJveCwgSU5JVF9IQ0FfTlVNX1NZU19F UVNfT0ZGU0VUKTsKLQlNTFg0X0dFVChwYXJhbS0+cmRtYXJjX2Jhc2UsICAgb3V0Ym94LCBJTklU X0hDQV9SRE1BUkNfQkFTRV9PRkZTRVQpOwotCU1MWDRfR0VUKHBhcmFtLT5sb2dfcmRfcGVyX3Fw LCBvdXRib3gsIElOSVRfSENBX0xPR19SRF9PRkZTRVQpOworCU1MWDRfR0VUKHF3b3JkX2ZpZWxk LCBvdXRib3gsIElOSVRfSENBX1FQQ19CQVNFX09GRlNFVCk7CisJcGFyYW0tPnFwY19iYXNlID0g cXdvcmRfZmllbGQgJiB+KCh1NjQpMHgxZik7CisJTUxYNF9HRVQoYnl0ZV9maWVsZCwgb3V0Ym94 LCBJTklUX0hDQV9MT0dfUVBfT0ZGU0VUKTsKKwlwYXJhbS0+bG9nX251bV9xcHMgPSBieXRlX2Zp ZWxkICYgMHgxZjsKKwlNTFg0X0dFVChxd29yZF9maWVsZCwgb3V0Ym94LCBJTklUX0hDQV9TUlFD X0JBU0VfT0ZGU0VUKTsKKwlwYXJhbS0+c3JxY19iYXNlID0gcXdvcmRfZmllbGQgJiB+KCh1NjQp MHgxZik7CisJTUxYNF9HRVQoYnl0ZV9maWVsZCwgb3V0Ym94LCBJTklUX0hDQV9MT0dfU1JRX09G RlNFVCk7CisJcGFyYW0tPmxvZ19udW1fc3JxcyA9IGJ5dGVfZmllbGQgJiAweDFmOworCU1MWDRf R0VUKHF3b3JkX2ZpZWxkLCBvdXRib3gsIElOSVRfSENBX0NRQ19CQVNFX09GRlNFVCk7CisJcGFy YW0tPmNxY19iYXNlID0gcXdvcmRfZmllbGQgJiB+KCh1NjQpMHgxZik7CisJTUxYNF9HRVQoYnl0 ZV9maWVsZCwgb3V0Ym94LCBJTklUX0hDQV9MT0dfQ1FfT0ZGU0VUKTsKKwlwYXJhbS0+bG9nX251 bV9jcXMgPSBieXRlX2ZpZWxkICYgMHgxZjsKKwlNTFg0X0dFVChxd29yZF9maWVsZCwgb3V0Ym94 LCBJTklUX0hDQV9BTFRDX0JBU0VfT0ZGU0VUKTsKKwlwYXJhbS0+YWx0Y19iYXNlID0gcXdvcmRf ZmllbGQ7CisJTUxYNF9HRVQocXdvcmRfZmllbGQsIG91dGJveCwgSU5JVF9IQ0FfQVVYQ19CQVNF X09GRlNFVCk7CisJcGFyYW0tPmF1eGNfYmFzZSA9IHF3b3JkX2ZpZWxkOworCU1MWDRfR0VUKHF3 b3JkX2ZpZWxkLCBvdXRib3gsIElOSVRfSENBX0VRQ19CQVNFX09GRlNFVCk7CisJcGFyYW0tPmVx Y19iYXNlID0gcXdvcmRfZmllbGQgJiB+KCh1NjQpMHgxZik7CisJTUxYNF9HRVQoYnl0ZV9maWVs ZCwgb3V0Ym94LCBJTklUX0hDQV9MT0dfRVFfT0ZGU0VUKTsKKwlwYXJhbS0+bG9nX251bV9lcXMg PSBieXRlX2ZpZWxkICYgMHgxZjsKKwlNTFg0X0dFVCh3b3JkX2ZpZWxkLCBvdXRib3gsIElOSVRf SENBX05VTV9TWVNfRVFTX09GRlNFVCk7CisJcGFyYW0tPm51bV9zeXNfZXFzID0gd29yZF9maWVs ZCAmIDB4ZmZmOworCU1MWDRfR0VUKHF3b3JkX2ZpZWxkLCBvdXRib3gsIElOSVRfSENBX1JETUFS Q19CQVNFX09GRlNFVCk7CisJcGFyYW0tPnJkbWFyY19iYXNlID0gcXdvcmRfZmllbGQgJiB+KCh1 NjQpMHgxZik7CisJTUxYNF9HRVQoYnl0ZV9maWVsZCwgb3V0Ym94LCBJTklUX0hDQV9MT0dfUkRf T0ZGU0VUKTsKKwlwYXJhbS0+bG9nX3JkX3Blcl9xcCA9IGJ5dGVfZmllbGQgJiAweDc7CiAKIAlN TFg0X0dFVChkd29yZF9maWVsZCwgb3V0Ym94LCBJTklUX0hDQV9GTEFHU19PRkZTRVQpOwogCWlm IChkd29yZF9maWVsZCAmICgxIDw8IElOSVRfSENBX0RFVklDRV9NQU5BR0VEX0ZMT1dfU1RFRVJJ TkdfRU4pKSB7CkBAIC0yMTI1LDIyICsyMTQwLDIxIEBAIGludCBtbHg0X1FVRVJZX0hDQShzdHJ1 Y3QgbWx4NF9kZXYgKmRldiwKIAkvKiBzdGVlcmluZyBhdHRyaWJ1dGVzICovCiAJaWYgKHBhcmFt LT5zdGVlcmluZ19tb2RlID09IE1MWDRfU1RFRVJJTkdfTU9ERV9ERVZJQ0VfTUFOQUdFRCkgewog CQlNTFg0X0dFVChwYXJhbS0+bWNfYmFzZSwgb3V0Ym94LCBJTklUX0hDQV9GU19CQVNFX09GRlNF VCk7Ci0JCU1MWDRfR0VUKHBhcmFtLT5sb2dfbWNfZW50cnlfc3osIG91dGJveCwKLQkJCSBJTklU X0hDQV9GU19MT0dfRU5UUllfU1pfT0ZGU0VUKTsKLQkJTUxYNF9HRVQocGFyYW0tPmxvZ19tY190 YWJsZV9zeiwgb3V0Ym94LAotCQkJIElOSVRfSENBX0ZTX0xPR19UQUJMRV9TWl9PRkZTRVQpOwot CQlNTFg0X0dFVChieXRlX2ZpZWxkLCBvdXRib3gsCi0JCQkgSU5JVF9IQ0FfRlNfQTBfT0ZGU0VU KTsKKwkJTUxYNF9HRVQoYnl0ZV9maWVsZCwgb3V0Ym94LCBJTklUX0hDQV9GU19MT0dfRU5UUllf U1pfT0ZGU0VUKTsKKwkJcGFyYW0tPmxvZ19tY19lbnRyeV9zeiA9IGJ5dGVfZmllbGQgJiAweDFm OworCQlNTFg0X0dFVChieXRlX2ZpZWxkLCBvdXRib3gsIElOSVRfSENBX0ZTX0xPR19UQUJMRV9T Wl9PRkZTRVQpOworCQlwYXJhbS0+bG9nX21jX3RhYmxlX3N6ID0gYnl0ZV9maWVsZCAmIDB4MWY7 CisJCU1MWDRfR0VUKGJ5dGVfZmllbGQsIG91dGJveCwgSU5JVF9IQ0FfRlNfQTBfT0ZGU0VUKTsK IAkJcGFyYW0tPmRtZnNfaGlnaF9zdGVlcl9tb2RlID0KIAkJCWEwX2RtZnNfcXVlcnlfaHdfc3Rl ZXJpbmdbKGJ5dGVfZmllbGQgPj4gNikgJiAzXTsKIAl9IGVsc2UgewogCQlNTFg0X0dFVChwYXJh bS0+bWNfYmFzZSwgb3V0Ym94LCBJTklUX0hDQV9NQ19CQVNFX09GRlNFVCk7Ci0JCU1MWDRfR0VU KHBhcmFtLT5sb2dfbWNfZW50cnlfc3osIG91dGJveCwKLQkJCSBJTklUX0hDQV9MT0dfTUNfRU5U UllfU1pfT0ZGU0VUKTsKLQkJTUxYNF9HRVQocGFyYW0tPmxvZ19tY19oYXNoX3N6LCAgb3V0Ym94 LAotCQkJIElOSVRfSENBX0xPR19NQ19IQVNIX1NaX09GRlNFVCk7Ci0JCU1MWDRfR0VUKHBhcmFt LT5sb2dfbWNfdGFibGVfc3osIG91dGJveCwKLQkJCSBJTklUX0hDQV9MT0dfTUNfVEFCTEVfU1pf T0ZGU0VUKTsKKwkJTUxYNF9HRVQoYnl0ZV9maWVsZCwgb3V0Ym94LCBJTklUX0hDQV9MT0dfTUNf RU5UUllfU1pfT0ZGU0VUKTsKKwkJcGFyYW0tPmxvZ19tY19lbnRyeV9zeiA9IGJ5dGVfZmllbGQg JiAweDFmOworCQlNTFg0X0dFVChieXRlX2ZpZWxkLCAgb3V0Ym94LCBJTklUX0hDQV9MT0dfTUNf SEFTSF9TWl9PRkZTRVQpOworCQlwYXJhbS0+bG9nX21jX2hhc2hfc3ogPSBieXRlX2ZpZWxkICYg MHgxZjsKKwkJTUxYNF9HRVQoYnl0ZV9maWVsZCwgb3V0Ym94LCBJTklUX0hDQV9MT0dfTUNfVEFC TEVfU1pfT0ZGU0VUKTsKKwkJcGFyYW0tPmxvZ19tY190YWJsZV9zeiA9IGJ5dGVfZmllbGQgJiAw eDFmOwogCX0KIAogCS8qIENYMyBpcyBjYXBhYmxlIG9mIGV4dGVuZGluZyBDUUVzL0VRRXMgZnJv bSAzMiB0byA2NCBieXRlcyAqLwpAQCAtMjE2NCwxNSArMjE3OCwxOCBAQCBpbnQgbWx4NF9RVUVS WV9IQ0Eoc3RydWN0IG1seDRfZGV2ICpkZXYsCiAJLyogVFBUIGF0dHJpYnV0ZXMgKi8KIAogCU1M WDRfR0VUKHBhcmFtLT5kbXB0X2Jhc2UsICBvdXRib3gsIElOSVRfSENBX0RNUFRfQkFTRV9PRkZT RVQpOwotCU1MWDRfR0VUKHBhcmFtLT5td19lbmFibGVkLCBvdXRib3gsIElOSVRfSENBX1RQVF9N V19PRkZTRVQpOwotCU1MWDRfR0VUKHBhcmFtLT5sb2dfbXB0X3N6LCBvdXRib3gsIElOSVRfSENB X0xPR19NUFRfU1pfT0ZGU0VUKTsKKwlNTFg0X0dFVChieXRlX2ZpZWxkLCBvdXRib3gsIElOSVRf SENBX1RQVF9NV19PRkZTRVQpOworCXBhcmFtLT5td19lbmFibGVkID0gYnl0ZV9maWVsZCA+PiA3 OworCU1MWDRfR0VUKGJ5dGVfZmllbGQsIG91dGJveCwgSU5JVF9IQ0FfTE9HX01QVF9TWl9PRkZT RVQpOworCXBhcmFtLT5sb2dfbXB0X3N6ID0gYnl0ZV9maWVsZCAmIDB4M2Y7CiAJTUxYNF9HRVQo cGFyYW0tPm10dF9iYXNlLCAgIG91dGJveCwgSU5JVF9IQ0FfTVRUX0JBU0VfT0ZGU0VUKTsKIAlN TFg0X0dFVChwYXJhbS0+Y21wdF9iYXNlLCAgb3V0Ym94LCBJTklUX0hDQV9DTVBUX0JBU0VfT0ZG U0VUKTsKIAogCS8qIFVBUiBhdHRyaWJ1dGVzICovCiAKIAlNTFg0X0dFVChwYXJhbS0+dWFyX3Bh Z2Vfc3osIG91dGJveCwgSU5JVF9IQ0FfVUFSX1BBR0VfU1pfT0ZGU0VUKTsKLQlNTFg0X0dFVChw YXJhbS0+bG9nX3Vhcl9zeiwgb3V0Ym94LCBJTklUX0hDQV9MT0dfVUFSX1NaX09GRlNFVCk7CisJ TUxYNF9HRVQoYnl0ZV9maWVsZCwgb3V0Ym94LCBJTklUX0hDQV9MT0dfVUFSX1NaX09GRlNFVCk7 CisJcGFyYW0tPmxvZ191YXJfc3ogPSBieXRlX2ZpZWxkICYgMHhmOwogCiAJLyogcGh2X2NoZWNr IGVuYWJsZSAqLwogCU1MWDRfR0VUKGJ5dGVfZmllbGQsIG91dGJveCwgSU5JVF9IQ0FfQ0FDSEVM SU5FX1NaX09GRlNFVCk7Ci0tIAoyLjIwLjEKCgpGcm9tIDg5NTZkMjJlNTJlZWQzNTI3MmVmYjI2 MzcxOTA5MTI2YTlhYTJlZTQgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCkZyb206IENvbmcgV2Fu ZyA8eGl5b3Uud2FuZ2NvbmdAZ21haWwuY29tPgpEYXRlOiBUaHUsIDI0IEphbiAyMDE5IDE0OjE4 OjE4IC0wODAwClN1YmplY3Q6IFtQQVRDSCAwOS8zMF0gbmV0cm9tOiBzd2l0Y2ggdG8gc29jayB0 aW1lciBBUEkKClsgVXBzdHJlYW0gY29tbWl0IDYzMzQ2NjUwYzFhOTRhOTJiZTYxYTU3NDE2YWM4 OGMwYTQ3YzQzMjcgXQoKc2tfcmVzZXRfdGltZXIoKSBhbmQgc2tfc3RvcF90aW1lcigpIHByb3Bl cmx5IGhhbmRsZQpzb2NrIHJlZmNudCBmb3IgdGltZXIgZnVuY3Rpb24uIFN3aXRjaGluZyB0byB0 aGVtCmNvdWxkIGZpeCBhIHJlZmNvdW50aW5nIGJ1ZyByZXBvcnRlZCBieSBzeXpib3QuCgpSZXBv cnRlZC1hbmQtdGVzdGVkLWJ5OiBzeXpib3QrZGVmYTcwMGQxNmYxYmQxYjlhMDVAc3l6a2FsbGVy LmFwcHNwb3RtYWlsLmNvbQpDYzogUmFsZiBCYWVjaGxlIDxyYWxmQGxpbnV4LW1pcHMub3JnPgpD YzogbGludXgtaGFtc0B2Z2VyLmtlcm5lbC5vcmcKU2lnbmVkLW9mZi1ieTogQ29uZyBXYW5nIDx4 aXlvdS53YW5nY29uZ0BnbWFpbC5jb20+ClNpZ25lZC1vZmYtYnk6IERhdmlkIFMuIE1pbGxlciA8 ZGF2ZW1AZGF2ZW1sb2Z0Lm5ldD4KLS0tCiBuZXQvbmV0cm9tL25yX3RpbWVyLmMgfCAyMCArKysr KysrKysrLS0tLS0tLS0tLQogMSBmaWxlIGNoYW5nZWQsIDEwIGluc2VydGlvbnMoKyksIDEwIGRl bGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL25ldC9uZXRyb20vbnJfdGltZXIuYyBiL25ldC9uZXRy b20vbnJfdGltZXIuYwppbmRleCBjYmQ1MWVkNWEyZDcuLjkwOGU1M2FiNDdhNCAxMDA2NDQKLS0t IGEvbmV0L25ldHJvbS9ucl90aW1lci5jCisrKyBiL25ldC9uZXRyb20vbnJfdGltZXIuYwpAQCAt NTIsMjEgKzUyLDIxIEBAIHZvaWQgbnJfc3RhcnRfdDF0aW1lcihzdHJ1Y3Qgc29jayAqc2spCiB7 CiAJc3RydWN0IG5yX3NvY2sgKm5yID0gbnJfc2soc2spOwogCi0JbW9kX3RpbWVyKCZuci0+dDF0 aW1lciwgamlmZmllcyArIG5yLT50MSk7CisJc2tfcmVzZXRfdGltZXIoc2ssICZuci0+dDF0aW1l ciwgamlmZmllcyArIG5yLT50MSk7CiB9CiAKIHZvaWQgbnJfc3RhcnRfdDJ0aW1lcihzdHJ1Y3Qg c29jayAqc2spCiB7CiAJc3RydWN0IG5yX3NvY2sgKm5yID0gbnJfc2soc2spOwogCi0JbW9kX3Rp bWVyKCZuci0+dDJ0aW1lciwgamlmZmllcyArIG5yLT50Mik7CisJc2tfcmVzZXRfdGltZXIoc2ss ICZuci0+dDJ0aW1lciwgamlmZmllcyArIG5yLT50Mik7CiB9CiAKIHZvaWQgbnJfc3RhcnRfdDR0 aW1lcihzdHJ1Y3Qgc29jayAqc2spCiB7CiAJc3RydWN0IG5yX3NvY2sgKm5yID0gbnJfc2soc2sp OwogCi0JbW9kX3RpbWVyKCZuci0+dDR0aW1lciwgamlmZmllcyArIG5yLT50NCk7CisJc2tfcmVz ZXRfdGltZXIoc2ssICZuci0+dDR0aW1lciwgamlmZmllcyArIG5yLT50NCk7CiB9CiAKIHZvaWQg bnJfc3RhcnRfaWRsZXRpbWVyKHN0cnVjdCBzb2NrICpzaykKQEAgLTc0LDM3ICs3NCwzNyBAQCB2 b2lkIG5yX3N0YXJ0X2lkbGV0aW1lcihzdHJ1Y3Qgc29jayAqc2spCiAJc3RydWN0IG5yX3NvY2sg Km5yID0gbnJfc2soc2spOwogCiAJaWYgKG5yLT5pZGxlID4gMCkKLQkJbW9kX3RpbWVyKCZuci0+ aWRsZXRpbWVyLCBqaWZmaWVzICsgbnItPmlkbGUpOworCQlza19yZXNldF90aW1lcihzaywgJm5y LT5pZGxldGltZXIsIGppZmZpZXMgKyBuci0+aWRsZSk7CiB9CiAKIHZvaWQgbnJfc3RhcnRfaGVh cnRiZWF0KHN0cnVjdCBzb2NrICpzaykKIHsKLQltb2RfdGltZXIoJnNrLT5za190aW1lciwgamlm ZmllcyArIDUgKiBIWik7CisJc2tfcmVzZXRfdGltZXIoc2ssICZzay0+c2tfdGltZXIsIGppZmZp ZXMgKyA1ICogSFopOwogfQogCiB2b2lkIG5yX3N0b3BfdDF0aW1lcihzdHJ1Y3Qgc29jayAqc2sp CiB7Ci0JZGVsX3RpbWVyKCZucl9zayhzayktPnQxdGltZXIpOworCXNrX3N0b3BfdGltZXIoc2ss ICZucl9zayhzayktPnQxdGltZXIpOwogfQogCiB2b2lkIG5yX3N0b3BfdDJ0aW1lcihzdHJ1Y3Qg c29jayAqc2spCiB7Ci0JZGVsX3RpbWVyKCZucl9zayhzayktPnQydGltZXIpOworCXNrX3N0b3Bf dGltZXIoc2ssICZucl9zayhzayktPnQydGltZXIpOwogfQogCiB2b2lkIG5yX3N0b3BfdDR0aW1l cihzdHJ1Y3Qgc29jayAqc2spCiB7Ci0JZGVsX3RpbWVyKCZucl9zayhzayktPnQ0dGltZXIpOwor CXNrX3N0b3BfdGltZXIoc2ssICZucl9zayhzayktPnQ0dGltZXIpOwogfQogCiB2b2lkIG5yX3N0 b3BfaWRsZXRpbWVyKHN0cnVjdCBzb2NrICpzaykKIHsKLQlkZWxfdGltZXIoJm5yX3NrKHNrKS0+ aWRsZXRpbWVyKTsKKwlza19zdG9wX3RpbWVyKHNrLCAmbnJfc2soc2spLT5pZGxldGltZXIpOwog fQogCiB2b2lkIG5yX3N0b3BfaGVhcnRiZWF0KHN0cnVjdCBzb2NrICpzaykKIHsKLQlkZWxfdGlt ZXIoJnNrLT5za190aW1lcik7CisJc2tfc3RvcF90aW1lcihzaywgJnNrLT5za190aW1lcik7CiB9 CiAKIGludCBucl90MXRpbWVyX3J1bm5pbmcoc3RydWN0IHNvY2sgKnNrKQotLSAKMi4yMC4xCgoK RnJvbSA0ZjQyZGIwMWY4Yzg2ZjM0YjIxNTk5ZGUyNmVkNmMyNTVjMWViNzc0IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBCZXJuYXJkIFBpZG91eCA8ZjZidnBAZnJlZS5mcj4KRGF0ZTog RnJpLCAyNSBKYW4gMjAxOSAxMTo0Njo0MCArMDEwMApTdWJqZWN0OiBbUEFUQ0ggMTAvMzBdIG5l dC9yb3NlOiBmaXggTlVMTCBheDI1X2NiIGtlcm5lbCBwYW5pYwoKWyBVcHN0cmVhbSBjb21taXQg YjBjZjAyOTIzNGY5YjE4ZTEwNzAzYmE1MTQ3ZjAzODljMzgyYmNjYyBdCgpXaGVuIGFuIGludGVy bmFsbHkgZ2VuZXJhdGVkIGZyYW1lIGlzIGhhbmRsZWQgYnkgcm9zZV94bWl0KCksCnJvc2Vfcm91 dGVfZnJhbWUoKSBpcyBjYWxsZWQ6CgogICAgICAgIGlmICghcm9zZV9yb3V0ZV9mcmFtZShza2Is IE5VTEwpKSB7CiAgICAgICAgICAgICAgICBkZXZfa2ZyZWVfc2tiKHNrYik7CiAgICAgICAgICAg ICAgICBzdGF0cy0+dHhfZXJyb3JzKys7CiAgICAgICAgICAgICAgICByZXR1cm4gTkVUREVWX1RY X09LOwogICAgICAgIH0KCldlIGhhdmUgdGhlIHNhbWUgY29kZSBzZXF1ZW5jZSBpbiBOZXQvUm9t IHdoZXJlIGFuIGludGVybmFsbHkgZ2VuZXJhdGVkCmZyYW1lIGlzIGhhbmRsZWQgYnkgbnJfeG1p dCgpIGNhbGxpbmcgbnJfcm91dGVfZnJhbWUoc2tiLCBOVUxMKS4KSG93ZXZlciwgaW4gdGhpcyBm dW5jdGlvbiBOVUxMIGFyZ3VtZW50IGlzIHRlc3RlZCB3aGlsZSBpdCBpcyBub3QgaW4Kcm9zZV9y b3V0ZV9mcmFtZSgpLgpUaGVuIGtlcm5lbCBwYW5pYyBvY2N1cnMgbGF0ZXIgb24gd2hlbiBjYWxs aW5nIGF4MjVjbXAoKSB3aXRoIGEgTlVMTApheDI1X2NiIGFyZ3VtZW50IGFzIHJlcG9ydGVkIG1h bnkgdGltZXMgYW5kIHJlY2VudGx5IHdpdGggc3l6Ym90LgoKV2UgbmVlZCB0byB0ZXN0IGlmIGF4 MjUgaXMgTlVMTCBiZWZvcmUgdXNpbmcgaXQuCgpUZXN0aW5nOgpCdWlsdCBrZXJuZWwgd2l0aCBD T05GSUdfUk9TRT15LgoKU2lnbmVkLW9mZi1ieTogQmVybmFyZCBQaWRvdXggPGY2YnZwQGZyZWUu ZnI+CkFja2VkLWJ5OiBEbWl0cnkgVnl1a292IDxkdnl1a292QGdvb2dsZS5jb20+ClJlcG9ydGVk LWJ5OiBzeXpib3QrMWEyYzQ1NmExZWEwOGZhNWI1ZjdAc3l6a2FsbGVyLmFwcHNwb3RtYWlsLmNv bQpDYzogIkRhdmlkIFMuIE1pbGxlciIgPGRhdmVtQGRhdmVtbG9mdC5uZXQ+CkNjOiBSYWxmIEJh ZWNobGUgPHJhbGZAbGludXgtbWlwcy5vcmc+CkNjOiBCZXJuYXJkIFBpZG91eCA8ZjZidnBAZnJl ZS5mcj4KQ2M6IGxpbnV4LWhhbXNAdmdlci5rZXJuZWwub3JnCkNjOiBuZXRkZXZAdmdlci5rZXJu ZWwub3JnCkNjOiBsaW51eC1rZXJuZWxAdmdlci5rZXJuZWwub3JnClNpZ25lZC1vZmYtYnk6IERh dmlkIFMuIE1pbGxlciA8ZGF2ZW1AZGF2ZW1sb2Z0Lm5ldD4KLS0tCiBuZXQvcm9zZS9yb3NlX3Jv dXRlLmMgfCA1ICsrKysrCiAxIGZpbGUgY2hhbmdlZCwgNSBpbnNlcnRpb25zKCspCgpkaWZmIC0t Z2l0IGEvbmV0L3Jvc2Uvcm9zZV9yb3V0ZS5jIGIvbmV0L3Jvc2Uvcm9zZV9yb3V0ZS5jCmluZGV4 IDc3ZTlmODVhMmM5Mi4uZjJmZjIxZDdkZjA4IDEwMDY0NAotLS0gYS9uZXQvcm9zZS9yb3NlX3Jv dXRlLmMKKysrIGIvbmV0L3Jvc2Uvcm9zZV9yb3V0ZS5jCkBAIC04NTAsNiArODUwLDcgQEAgdm9p ZCByb3NlX2xpbmtfZGV2aWNlX2Rvd24oc3RydWN0IG5ldF9kZXZpY2UgKmRldikKIAogLyoKICAq CVJvdXRlIGEgZnJhbWUgdG8gYW4gYXBwcm9wcmlhdGUgQVguMjUgY29ubmVjdGlvbi4KKyAqCUEg TlVMTCBheDI1X2NiIGluZGljYXRlcyBhbiBpbnRlcm5hbGx5IGdlbmVyYXRlZCBmcmFtZS4KICAq LwogaW50IHJvc2Vfcm91dGVfZnJhbWUoc3RydWN0IHNrX2J1ZmYgKnNrYiwgYXgyNV9jYiAqYXgy NSkKIHsKQEAgLTg2Nyw2ICs4NjgsMTAgQEAgaW50IHJvc2Vfcm91dGVfZnJhbWUoc3RydWN0IHNr X2J1ZmYgKnNrYiwgYXgyNV9jYiAqYXgyNSkKIAogCWlmIChza2ItPmxlbiA8IFJPU0VfTUlOX0xF TikKIAkJcmV0dXJuIHJlczsKKworCWlmICghYXgyNSkKKwkJcmV0dXJuIHJvc2VfbG9vcGJhY2tf cXVldWUoc2tiLCBOVUxMKTsKKwogCWZyYW1ldHlwZSA9IHNrYi0+ZGF0YVsyXTsKIAlsY2kgPSAo KHNrYi0+ZGF0YVswXSA8PCA4KSAmIDB4RjAwKSArICgoc2tiLT5kYXRhWzFdIDw8IDApICYgMHgw RkYpOwogCWlmIChmcmFtZXR5cGUgPT0gUk9TRV9DQUxMX1JFUVVFU1QgJiYKLS0gCjIuMjAuMQoK CkZyb20gYTA3ZGI4Y2IxMDdjYmU4ZGMzMzY5ZTZjNjBlNjE2YjU4ZDA3ZTMwNiBNb24gU2VwIDE3 IDAwOjAwOjAwIDIwMDEKRnJvbTogSm9zaCBFbHNhc3NlciA8amVsc2Fzc2VyQGFwcG5ldGEuY29t PgpEYXRlOiBTYXQsIDI2IEphbiAyMDE5IDE0OjM4OjMzIC0wODAwClN1YmplY3Q6IFtQQVRDSCAx MS8zMF0gbmV0OiBzZXQgZGVmYXVsdCBuZXR3b3JrIG5hbWVzcGFjZSBpbgogaW5pdF9kdW1teV9u ZXRkZXYoKQoKWyBVcHN0cmVhbSBjb21taXQgMzVlZGZkYzc3ZjY4M2M4ZmQyN2Q3NzMyYWYwNmNm NjQ4OWFmNjBhNSBdCgpBc3NpZ24gYSBkZWZhdWx0IG5ldCBuYW1lc3BhY2UgdG8gbmV0ZGV2cyBj cmVhdGVkIGJ5IGluaXRfZHVtbXlfbmV0ZGV2KCkuCkZpeGVzIGEgTlVMTCBwb2ludGVyIGRlcmVm ZXJlbmNlIGNhdXNlZCBieSBidXN5LXBvbGxpbmcgYSBzb2NrZXQgYm91bmQgdG8KYW4gaXdsd2lm aSB3aXJlbGVzcyBkZXZpY2UsIHdoaWNoIGJ1bXBzIHRoZSBwZXItbmV0IEJVU1lQT0xMUlhQQUNL RVRTIHN0YXQKaWYgbmFwaV9wb2xsKCkgcmVjZWl2ZWQgcGFja2V0czoKCiAgQlVHOiB1bmFibGUg dG8gaGFuZGxlIGtlcm5lbCBOVUxMIHBvaW50ZXIgZGVyZWZlcmVuY2UgYXQgMDAwMDAwMDAwMDAw MDE5MAogIElQOiBuYXBpX2J1c3lfbG9vcCsweGQ2LzB4MjAwCiAgQ2FsbCBUcmFjZToKICAgIHNv Y2tfcG9sbCsweDVlLzB4ODAKICAgIGRvX3N5c19wb2xsKzB4MzI0LzB4NWEwCiAgICBTeVNfcG9s bCsweDZjLzB4ZjAKICAgIGRvX3N5c2NhbGxfNjQrMHg2Yi8weDFmMAogICAgZW50cnlfU1lTQ0FM TF82NF9hZnRlcl9od2ZyYW1lKzB4M2QvMHhhMgoKRml4ZXM6IDdkYjZiMDQ4ZGEzYiAoIm5ldDog Q29tbW9uaXplIGJ1c3kgcG9sbGluZyBjb2RlIHRvIGZvY3VzIG9uIG5hcGlfaWQgaW5zdGVhZCBv ZiBzb2NrZXQiKQpTaWduZWQtb2ZmLWJ5OiBKb3NoIEVsc2Fzc2VyIDxqZWxzYXNzZXJAYXBwbmV0 YS5jb20+ClNpZ25lZC1vZmYtYnk6IERhdmlkIFMuIE1pbGxlciA8ZGF2ZW1AZGF2ZW1sb2Z0Lm5l dD4KLS0tCiBuZXQvY29yZS9kZXYuYyB8IDMgKysrCiAxIGZpbGUgY2hhbmdlZCwgMyBpbnNlcnRp b25zKCspCgpkaWZmIC0tZ2l0IGEvbmV0L2NvcmUvZGV2LmMgYi9uZXQvY29yZS9kZXYuYwppbmRl eCAxZjFhYWUyN2Q0MWYuLmFmMDk3Y2E5Y2I0ZiAxMDA2NDQKLS0tIGEvbmV0L2NvcmUvZGV2LmMK KysrIGIvbmV0L2NvcmUvZGV2LmMKQEAgLTg1OTksNiArODU5OSw5IEBAIGludCBpbml0X2R1bW15 X25ldGRldihzdHJ1Y3QgbmV0X2RldmljZSAqZGV2KQogCXNldF9iaXQoX19MSU5LX1NUQVRFX1BS RVNFTlQsICZkZXYtPnN0YXRlKTsKIAlzZXRfYml0KF9fTElOS19TVEFURV9TVEFSVCwgJmRldi0+ c3RhdGUpOwogCisJLyogbmFwaV9idXN5X2xvb3Agc3RhdHMgYWNjb3VudGluZyB3YW50cyB0aGlz ICovCisJZGV2X25ldF9zZXQoZGV2LCAmaW5pdF9uZXQpOworCiAJLyogTm90ZSA6IFdlIGRvbnQg YWxsb2NhdGUgcGNwdV9yZWZjbnQgZm9yIGR1bW15IGRldmljZXMsCiAJICogYmVjYXVzZSB1c2Vy cyBvZiB0aGlzICdkZXZpY2UnIGRvbnQgbmVlZCB0byBjaGFuZ2UKIAkgKiBpdHMgcmVmY291bnQu Ci0tIAoyLjIwLjEKCgpGcm9tIGQ3MzI3NTE1ZjJjNWU5N2FhYTI5YmRiZjk1NGMwZDE4NDU1NWYx YTAgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCkZyb206IFNpbW9uIEhvcm1hbiA8aG9ybXMrcmVu ZXNhc0B2ZXJnZS5uZXQuYXU+CkRhdGU6IFdlZCwgMjMgSmFuIDIwMTkgMTI6MTQ6NTIgKzAxMDAK U3ViamVjdDogW1BBVENIIDEyLzMwXSByYXZiOiBleHBhbmQgcnggZGVzY3JpcHRvciBkYXRhIHRv IGFjY29tbW9kYXRlIGh3CiBjaGVja3N1bQoKWyBVcHN0cmVhbSBjb21taXQgMTJkYTY0MzAwZmJj NzZiODc1OTAwNDQ1ZjQxNDZjM2RjNjE3ZDQzZSBdCgpFdGhlckFWQiBtYXkgcHJvdmlkZSBhIGNo ZWNrc3VtIG9mIHBhY2tldCBkYXRhIGFwcGVuZGVkIHRvIHBhY2tldCBkYXRhLiBJbgpvcmRlciB0 byBhbGxvdyB0aGlzIGNoZWNrc3VtIHRvIGJlIHJlY2VpdmVkIGJ5IHRoZSBob3N0IGRlc2NyaXB0 b3IgZGF0YQpuZWVkcyB0byBiZSBlbmxhcmdlZCBieSAyIGJ5dGVzIHRvIGFjY29tbW9kYXRlIHRo ZSBjaGVja3N1bS4KCkluIHRoZSBjYXNlIG9mIE1UVS1zaXplZCBwYWNrZXRzIHdpdGhvdXQgYSBW TEFOIHRhZyB0aGUKY2hlY2tzdW0gd2VyZSBhbHJlYWR5IGFjY29tbW9kYXRlZCBieSB2aXJ0dWUg b2YgdGhlIHNwYWNlIHJlc2VydmVkIGZvciB0aGUKVkxBTiB0YWcuIEhvd2V2ZXIsIGEgcGFja2V0 IG9mIE1UVS1zaXplIHdpdGggYSAgVkxBTiB0YWcgY29uc3VtZWQgYWxsCnBhY2tldCBkYXRhIHNw YWNlIHByb3ZpZGVkIGJ5IGEgZGVzY3JpcHRvciBsZWF2aW5nIG5vIHNwYWNlIGZvciB0aGUKdHJh aWxpbmcgY2hlY2tzdW0uCgpUaGlzIHdhcyBub3QgZGV0ZWN0ZWQgYnkgdGhlIGRyaXZlciB3aGlj aCBpbmNvcnJlY3RseSB1c2VkIHRoZSBsYXN0IHR3bwpieXRlcyBvZiBwYWNrZXQgZGF0YSBhcyB0 aGUgY2hlY2tzdW0gYW5kIHRydW5jYXRlIHRoZSBwYWNrZXQgYnkgdHdvIGJ5dGVzLgpUaGlzIHJl c3VsdGVkIGFsbCBzdWNoIHBhY2tldHMgYmVpbmcgZHJvcHBlZC4KCkEgd29yayBhcm91bmQgaXMg dG8gZGlzYWJsZSBSWCBjaGVja3N1bSBvZmZsb2FkCiAjIGV0aHRvb2wgLUsgZXRoMCByeCBvZmYK ClRoaXMgcGF0Y2ggcmVzb2x2ZXMgdGhpcyBwcm9ibGVtIGJ5IGluY3JlYXNpbmcgdGhlIHNpemUg YXZhaWxhYmxlIGZvcgpwYWNrZXQgZGF0YSBpbiBSWCBkZXNjcmlwdG9ycyBieSB0d28gYnl0ZXMu CgpUZXN0ZWQgb24gUi1DYXIgRTMgKHI4YTc3OTkwKSBFUzEuMCBiYXNlZCBFYmlzdS00RCBib2Fy ZAoKdjIKKiBVc2Ugc2l6ZW9mKF9fc3VtMTYpIGRpcmVjdGx5IHJhdGhlciB0aGFuIGFkZGluZyBh IGRyaXZlci1sb2NhbAogICNkZWZpbmUgZm9yIHRoZSBzaXplIG9mIHRoZSBjaGVja3N1bSBwcm92 aWRlZCBieSB0aGUgaHcgKDIgYnl0ZXMpLgoKRml4ZXM6IDRkODZkMzgxODYyNyAoInJhdmI6IFJY IGNoZWNrc3VtIG9mZmxvYWQiKQpTaWduZWQtb2ZmLWJ5OiBTaW1vbiBIb3JtYW4gPGhvcm1zK3Jl bmVzYXNAdmVyZ2UubmV0LmF1PgpSZXZpZXdlZC1ieTogU2VyZ2VpIFNodHlseW92IDxzZXJnZWku c2h0eWx5b3ZAY29nZW50ZW1iZWRkZWQuY29tPgpTaWduZWQtb2ZmLWJ5OiBEYXZpZCBTLiBNaWxs ZXIgPGRhdmVtQGRhdmVtbG9mdC5uZXQ+Ci0tLQogZHJpdmVycy9uZXQvZXRoZXJuZXQvcmVuZXNh cy9yYXZiX21haW4uYyB8IDEyICsrKysrKystLS0tLQogMSBmaWxlIGNoYW5nZWQsIDcgaW5zZXJ0 aW9ucygrKSwgNSBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC9ldGhlcm5l dC9yZW5lc2FzL3JhdmJfbWFpbi5jIGIvZHJpdmVycy9uZXQvZXRoZXJuZXQvcmVuZXNhcy9yYXZi X21haW4uYwppbmRleCBkNmY3NTM5MjUzNTIuLjg0NDFjODZkOWYzYiAxMDA2NDQKLS0tIGEvZHJp dmVycy9uZXQvZXRoZXJuZXQvcmVuZXNhcy9yYXZiX21haW4uYworKysgYi9kcml2ZXJzL25ldC9l dGhlcm5ldC9yZW5lc2FzL3JhdmJfbWFpbi5jCkBAIC0zNDQsNyArMzQ0LDcgQEAgc3RhdGljIGlu dCByYXZiX3JpbmdfaW5pdChzdHJ1Y3QgbmV0X2RldmljZSAqbmRldiwgaW50IHEpCiAJaW50IGk7 CiAKIAlwcml2LT5yeF9idWZfc3ogPSAobmRldi0+bXR1IDw9IDE0OTIgPyBQS1RfQlVGX1NaIDog bmRldi0+bXR1KSArCi0JCUVUSF9ITEVOICsgVkxBTl9ITEVOOworCQlFVEhfSExFTiArIFZMQU5f SExFTiArIHNpemVvZihfX3N1bTE2KTsKIAogCS8qIEFsbG9jYXRlIFJYIGFuZCBUWCBza2Igcmlu Z3MgKi8KIAlwcml2LT5yeF9za2JbcV0gPSBrY2FsbG9jKHByaXYtPm51bV9yeF9yaW5nW3FdLApA QCAtNTI1LDEzICs1MjUsMTUgQEAgc3RhdGljIHZvaWQgcmF2Yl9yeF9jc3VtKHN0cnVjdCBza19i dWZmICpza2IpCiB7CiAJdTggKmh3X2NzdW07CiAKLQkvKiBUaGUgaGFyZHdhcmUgY2hlY2tzdW0g aXMgMiBieXRlcyBhcHBlbmRlZCB0byBwYWNrZXQgZGF0YSAqLwotCWlmICh1bmxpa2VseShza2It PmxlbiA8IDIpKQorCS8qIFRoZSBoYXJkd2FyZSBjaGVja3N1bSBpcyBjb250YWluZWQgaW4gc2l6 ZW9mKF9fc3VtMTYpICgyKSBieXRlcworCSAqIGFwcGVuZGVkIHRvIHBhY2tldCBkYXRhCisJICov CisJaWYgKHVubGlrZWx5KHNrYi0+bGVuIDwgc2l6ZW9mKF9fc3VtMTYpKSkKIAkJcmV0dXJuOwot CWh3X2NzdW0gPSBza2JfdGFpbF9wb2ludGVyKHNrYikgLSAyOworCWh3X2NzdW0gPSBza2JfdGFp bF9wb2ludGVyKHNrYikgLSBzaXplb2YoX19zdW0xNik7CiAJc2tiLT5jc3VtID0gY3N1bV91bmZv bGQoKF9fZm9yY2UgX19zdW0xNilnZXRfdW5hbGlnbmVkX2xlMTYoaHdfY3N1bSkpOwogCXNrYi0+ aXBfc3VtbWVkID0gQ0hFQ0tTVU1fQ09NUExFVEU7Ci0Jc2tiX3RyaW0oc2tiLCBza2ItPmxlbiAt IDIpOworCXNrYl90cmltKHNrYiwgc2tiLT5sZW4gLSBzaXplb2YoX19zdW0xNikpOwogfQogCiAv KiBQYWNrZXQgcmVjZWl2ZSBmdW5jdGlvbiBmb3IgRXRoZXJuZXQgQVZCICovCi0tIAoyLjIwLjEK CgpGcm9tIGQ5Nzc5MzQyN2I5MmE3ZTY4YTcyNWFjNzZiZTEzMDA1MmY5ZmQ1NTQgTW9uIFNlcCAx NyAwMDowMDowMCAyMDAxCkZyb206IFhpbiBMb25nIDxsdWNpZW4ueGluQGdtYWlsLmNvbT4KRGF0 ZTogVHVlLCAyMiBKYW4gMjAxOSAwMjozOTozNCArMDgwMApTdWJqZWN0OiBbUEFUQ0ggMTMvMzBd IHNjdHA6IGltcHJvdmUgdGhlIGV2ZW50cyBmb3Igc2N0cCBzdHJlYW0gcmVzZXQKClsgVXBzdHJl YW0gY29tbWl0IDJlNmRjNGQ5NTExMGJlY2ZlMGZmNGMzZDQ3NDljMzNlYTE2NmU5ZTcgXQoKVGhp cyBwYXRjaCBpcyB0byBpbXByb3ZlIHNjdHAgc3RyZWFtIHJlc2V0IGV2ZW50cyBpbiA0IHBsYWNl czoKCiAgMS4gSW4gc2N0cF9wcm9jZXNzX3N0cnJlc2V0X291dHJlcSgpLCB0aGUgZmxhZyBzaG91 bGQgYWx3YXlzIGJlIHNldCB3aXRoCiAgICAgU0NUUF9TVFJFQU1fUkVTRVRfSU5DT01JTkdfU1NO IGluc3RlYWQgb2YgT1VUR09JTkcsIGFzIHJlY2VpdmVyJ3MgaW4KICAgICBzdHJlYW0gaXMgcmVz ZXQgaGVyZS4KICAyLiBJbiBzY3RwX3Byb2Nlc3Nfc3RycmVzZXRfb3V0cmVxKCksIG1vdmUgdXAg U0NUUF9TVFJSRVNFVF9FUlJfV1JPTkdfU1NOCiAgICAgY2hlY2ssIGFzIHRoZSByZXNldCBoYXMg dG8gc3VjY2VlZCBhZnRlciByZWNvbmZfdGltZXIgc3RvcHMgZm9yIHRoZQogICAgIGluIHN0cmVh bSByZXNldCByZXF1ZXN0IHJldHJhbnNtaXNzaW9uLgogIDMuIEluIHNjdHBfcHJvY2Vzc19zdHJy ZXNldF9pbnJlcSgpLCBubyBldmVudCBzaG91bGQgYmUgc2VudCwgYXMgbm8gaW4KICAgICBvciBv dXQgc3RyZWFtIGlzIHJlc2V0IGhlcmUuCiAgNC4gSW4gc2N0cF9wcm9jZXNzX3N0cnJlc2V0X3Jl c3AoKSwgU0NUUF9TVFJFQU1fUkVTRVRfSU5DT01JTkdfU1NOIG9yCiAgICAgT1VUR09JTkcgZXZl bnQgc2hvdWxkIGFsd2F5cyBiZSBzZW50IGZvciBzdHJlYW0gcmVzZXQgcmVxdWVzdHMsIG5vCiAg ICAgbWF0dGVyIGl0IGZhaWxzIG9yIHN1Y2NlZWRzIHRvIHByb2Nlc3MgdGhlIHJlcXVlc3QuCgpG aXhlczogODEwNTQ0NzY0NTM2ICgic2N0cDogaW1wbGVtZW50IHJlY2VpdmVyLXNpZGUgcHJvY2Vk dXJlcyBmb3IgdGhlIE91dGdvaW5nIFNTTiBSZXNldCBSZXF1ZXN0IFBhcmFtZXRlciIpCkZpeGVz OiAxNmUxYTkxOTY1YjAgKCJzY3RwOiBpbXBsZW1lbnQgcmVjZWl2ZXItc2lkZSBwcm9jZWR1cmVz IGZvciB0aGUgSW5jb21pbmcgU1NOIFJlc2V0IFJlcXVlc3QgUGFyYW1ldGVyIikKRml4ZXM6IDEx YWU3NmU2N2ExNyAoInNjdHA6IGltcGxlbWVudCByZWNlaXZlci1zaWRlIHByb2NlZHVyZXMgZm9y IHRoZSBSZWNvbmYgUmVzcG9uc2UgUGFyYW1ldGVyIikKUmVwb3J0ZWQtYnk6IFlpbmcgWHUgPHlp bnh1QHJlZGhhdC5jb20+ClNpZ25lZC1vZmYtYnk6IFhpbiBMb25nIDxsdWNpZW4ueGluQGdtYWls LmNvbT4KU2lnbmVkLW9mZi1ieTogRGF2aWQgUy4gTWlsbGVyIDxkYXZlbUBkYXZlbWxvZnQubmV0 PgotLS0KIG5ldC9zY3RwL3N0cmVhbS5jIHwgMzkgKysrKysrKysrKysrKysrKystLS0tLS0tLS0t LS0tLS0tLS0tLS0tCiAxIGZpbGUgY2hhbmdlZCwgMTcgaW5zZXJ0aW9ucygrKSwgMjIgZGVsZXRp b25zKC0pCgpkaWZmIC0tZ2l0IGEvbmV0L3NjdHAvc3RyZWFtLmMgYi9uZXQvc2N0cC9zdHJlYW0u YwppbmRleCAzODkyZTc2MzBmM2EuLjZjMTg4YjA2ZTVlMSAxMDA2NDQKLS0tIGEvbmV0L3NjdHAv c3RyZWFtLmMKKysrIGIvbmV0L3NjdHAvc3RyZWFtLmMKQEAgLTU4NSw5ICs1ODUsOSBAQCBzdHJ1 Y3Qgc2N0cF9jaHVuayAqc2N0cF9wcm9jZXNzX3N0cnJlc2V0X291dHJlcSgKIAlzdHJ1Y3Qgc2N0 cF9zdHJyZXNldF9vdXRyZXEgKm91dHJlcSA9IHBhcmFtLnY7CiAJc3RydWN0IHNjdHBfc3RyZWFt ICpzdHJlYW0gPSAmYXNvYy0+c3RyZWFtOwogCV9fdTMyIHJlc3VsdCA9IFNDVFBfU1RSUkVTRVRf REVOSUVEOwotCV9fdTE2IGksIG51bXMsIGZsYWdzID0gMDsKIAlfX2JlMTYgKnN0cl9wID0gTlVM TDsKIAlfX3UzMiByZXF1ZXN0X3NlcTsKKwlfX3UxNiBpLCBudW1zOwogCiAJcmVxdWVzdF9zZXEg PSBudG9obChvdXRyZXEtPnJlcXVlc3Rfc2VxKTsKIApAQCAtNjE1LDYgKzYxNSwxNSBAQCBzdHJ1 Y3Qgc2N0cF9jaHVuayAqc2N0cF9wcm9jZXNzX3N0cnJlc2V0X291dHJlcSgKIAlpZiAoIShhc29j LT5zdHJyZXNldF9lbmFibGUgJiBTQ1RQX0VOQUJMRV9SRVNFVF9TVFJFQU1fUkVRKSkKIAkJZ290 byBvdXQ7CiAKKwludW1zID0gKG50b2hzKHBhcmFtLnAtPmxlbmd0aCkgLSBzaXplb2YoKm91dHJl cSkpIC8gc2l6ZW9mKF9fdTE2KTsKKwlzdHJfcCA9IG91dHJlcS0+bGlzdF9vZl9zdHJlYW1zOwor CWZvciAoaSA9IDA7IGkgPCBudW1zOyBpKyspIHsKKwkJaWYgKG50b2hzKHN0cl9wW2ldKSA+PSBz dHJlYW0tPmluY250KSB7CisJCQlyZXN1bHQgPSBTQ1RQX1NUUlJFU0VUX0VSUl9XUk9OR19TU047 CisJCQlnb3RvIG91dDsKKwkJfQorCX0KKwogCWlmIChhc29jLT5zdHJyZXNldF9jaHVuaykgewog CQlpZiAoIXNjdHBfY2h1bmtfbG9va3VwX3N0cnJlc2V0X3BhcmFtKAogCQkJCWFzb2MsIG91dHJl cS0+cmVzcG9uc2Vfc2VxLApAQCAtNjM3LDMyICs2NDYsMTkgQEAgc3RydWN0IHNjdHBfY2h1bmsg KnNjdHBfcHJvY2Vzc19zdHJyZXNldF9vdXRyZXEoCiAJCQlzY3RwX2NodW5rX3B1dChhc29jLT5z dHJyZXNldF9jaHVuayk7CiAJCQlhc29jLT5zdHJyZXNldF9jaHVuayA9IE5VTEw7CiAJCX0KLQot CQlmbGFncyA9IFNDVFBfU1RSRUFNX1JFU0VUX0lOQ09NSU5HX1NTTjsKIAl9CiAKLQludW1zID0g KG50b2hzKHBhcmFtLnAtPmxlbmd0aCkgLSBzaXplb2YoKm91dHJlcSkpIC8gc2l6ZW9mKF9fdTE2 KTsKLQlpZiAobnVtcykgewotCQlzdHJfcCA9IG91dHJlcS0+bGlzdF9vZl9zdHJlYW1zOwotCQlm b3IgKGkgPSAwOyBpIDwgbnVtczsgaSsrKSB7Ci0JCQlpZiAobnRvaHMoc3RyX3BbaV0pID49IHN0 cmVhbS0+aW5jbnQpIHsKLQkJCQlyZXN1bHQgPSBTQ1RQX1NUUlJFU0VUX0VSUl9XUk9OR19TU047 Ci0JCQkJZ290byBvdXQ7Ci0JCQl9Ci0JCX0KLQorCWlmIChudW1zKQogCQlmb3IgKGkgPSAwOyBp IDwgbnVtczsgaSsrKQogCQkJU0NUUF9TSShzdHJlYW0sIG50b2hzKHN0cl9wW2ldKSktPm1pZCA9 IDA7Ci0JfSBlbHNlIHsKKwllbHNlCiAJCWZvciAoaSA9IDA7IGkgPCBzdHJlYW0tPmluY250OyBp KyspCiAJCQlTQ1RQX1NJKHN0cmVhbSwgaSktPm1pZCA9IDA7Ci0JfQogCiAJcmVzdWx0ID0gU0NU UF9TVFJSRVNFVF9QRVJGT1JNRUQ7CiAKIAkqZXZwID0gc2N0cF91bHBldmVudF9tYWtlX3N0cmVh bV9yZXNldF9ldmVudChhc29jLAotCQlmbGFncyB8IFNDVFBfU1RSRUFNX1JFU0VUX09VVEdPSU5H X1NTTiwgbnVtcywgc3RyX3AsCi0JCUdGUF9BVE9NSUMpOworCQlTQ1RQX1NUUkVBTV9SRVNFVF9J TkNPTUlOR19TU04sIG51bXMsIHN0cl9wLCBHRlBfQVRPTUlDKTsKIAogb3V0OgogCXNjdHBfdXBk YXRlX3N0cnJlc2V0X3Jlc3VsdChhc29jLCByZXN1bHQpOwpAQCAtNzM4LDkgKzczNCw2IEBAIHN0 cnVjdCBzY3RwX2NodW5rICpzY3RwX3Byb2Nlc3Nfc3RycmVzZXRfaW5yZXEoCiAKIAlyZXN1bHQg PSBTQ1RQX1NUUlJFU0VUX1BFUkZPUk1FRDsKIAotCSpldnAgPSBzY3RwX3VscGV2ZW50X21ha2Vf c3RyZWFtX3Jlc2V0X2V2ZW50KGFzb2MsCi0JCVNDVFBfU1RSRUFNX1JFU0VUX0lOQ09NSU5HX1NT TiwgbnVtcywgc3RyX3AsIEdGUF9BVE9NSUMpOwotCiBvdXQ6CiAJc2N0cF91cGRhdGVfc3RycmVz ZXRfcmVzdWx0KGFzb2MsIHJlc3VsdCk7CiBlcnI6CkBAIC0xMDM2LDEwICsxMDI5LDEwIEBAIHN0 cnVjdCBzY3RwX2NodW5rICpzY3RwX3Byb2Nlc3Nfc3RycmVzZXRfcmVzcCgKIAkJCQkJc291dC0+ bWlkX3VvID0gMDsKIAkJCQl9CiAJCQl9Ci0KLQkJCWZsYWdzID0gU0NUUF9TVFJFQU1fUkVTRVRf T1VUR09JTkdfU1NOOwogCQl9CiAKKwkJZmxhZ3MgfD0gU0NUUF9TVFJFQU1fUkVTRVRfT1VUR09J TkdfU1NOOworCiAJCWZvciAoaSA9IDA7IGkgPCBzdHJlYW0tPm91dGNudDsgaSsrKQogCQkJU0NU UF9TTyhzdHJlYW0sIGkpLT5zdGF0ZSA9IFNDVFBfU1RSRUFNX09QRU47CiAKQEAgLTEwNTgsNiAr MTA1MSw4IEBAIHN0cnVjdCBzY3RwX2NodW5rICpzY3RwX3Byb2Nlc3Nfc3RycmVzZXRfcmVzcCgK IAkJbnVtcyA9IChudG9ocyhpbnJlcS0+cGFyYW1faGRyLmxlbmd0aCkgLSBzaXplb2YoKmlucmVx KSkgLwogCQkgICAgICAgc2l6ZW9mKF9fdTE2KTsKIAorCQlmbGFncyB8PSBTQ1RQX1NUUkVBTV9S RVNFVF9JTkNPTUlOR19TU047CisKIAkJKmV2cCA9IHNjdHBfdWxwZXZlbnRfbWFrZV9zdHJlYW1f cmVzZXRfZXZlbnQoYXNvYywgZmxhZ3MsCiAJCQludW1zLCBzdHJfcCwgR0ZQX0FUT01JQyk7CiAJ fSBlbHNlIGlmIChyZXEtPnR5cGUgPT0gU0NUUF9QQVJBTV9SRVNFVF9UU05fUkVRVUVTVCkgewot LSAKMi4yMC4xCgoKRnJvbSBhYTAyNTllMDAyYzQwODkwNDE0NzY0NDViZDNhNTQwYjQ2MDVjNWM0 IE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBHZW9yZ2UgQW1hbmFraXMgPGdhbWFuYWtp c0BnbWFpbC5jb20+CkRhdGU6IFR1ZSwgMjkgSmFuIDIwMTkgMjI6NTA6MTMgLTA1MDAKU3ViamVj dDogW1BBVENIIDE0LzMwXSB0dW46IG1vdmUgdGhlIGNhbGwgdG8gdHVuX3NldF9yZWFsX251bV9x dWV1ZXMKClsgVXBzdHJlYW0gY29tbWl0IDNhMDNjYjg0NTZjYzFkNjFjNDY3YTUzNzVlMGExMGU1 MjA3Yjk0OGMgXQoKQ2FsbCB0dW5fc2V0X3JlYWxfbnVtX3F1ZXVlcygpIGFmdGVyIHRoZSBpbmNy ZW1lbnQgb2YgdHVuLT5udW1xdWV1ZXMKc2luY2UgdGhlIGZvcm1lciBkZXBlbmRzIG9uIGl0LiBP dGhlcndpc2UsIHRoZSBudW1iZXIgb2YgcXVldWVzIGlzIG5vdApjb3JyZWN0bHkgYWNjb3VudGVk IGZvciwgd2hpY2ggcmVzdWx0cyB0byB3YXJuaW5ncyBzaW1pbGFyIHRvOgoidm5ldDAgc2VsZWN0 cyBUWCBxdWV1ZSAxMSwgYnV0IHJlYWwgbnVtYmVyIG9mIFRYIHF1ZXVlcyBpcyAxMSIuCgpGaXhl czogMGI3OTU5YjYyNTczICgidHVuOiBwdWJsaXNoIHRmaWxlIGFmdGVyIGl0J3MgZnVsbHkgaW5p dGlhbGl6ZWQiKQpSZXBvcnRlZC1hbmQtdGVzdGVkLWJ5OiBHZW9yZ2UgQW1hbmFraXMgPGdhbWFu YWtpc0BnbWFpbC5jb20+ClNpZ25lZC1vZmYtYnk6IEdlb3JnZSBBbWFuYWtpcyA8Z2FtYW5ha2lz QGdtYWlsLmNvbT4KU2lnbmVkLW9mZi1ieTogU3RhbmlzbGF2IEZvbWljaGV2IDxzZGZAZ29vZ2xl LmNvbT4KU2lnbmVkLW9mZi1ieTogRGF2aWQgUy4gTWlsbGVyIDxkYXZlbUBkYXZlbWxvZnQubmV0 PgotLS0KIGRyaXZlcnMvbmV0L3R1bi5jIHwgMyArLS0KIDEgZmlsZSBjaGFuZ2VkLCAxIGluc2Vy dGlvbigrKSwgMiBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC90dW4uYyBi L2RyaXZlcnMvbmV0L3R1bi5jCmluZGV4IDMzOTc4YjBjZGFjOC4uNjU4NDRmMjhkYjMwIDEwMDY0 NAotLS0gYS9kcml2ZXJzL25ldC90dW4uYworKysgYi9kcml2ZXJzL25ldC90dW4uYwpAQCAtODY2 LDggKzg2Niw2IEBAIHN0YXRpYyBpbnQgdHVuX2F0dGFjaChzdHJ1Y3QgdHVuX3N0cnVjdCAqdHVu LCBzdHJ1Y3QgZmlsZSAqZmlsZSwKIAkJdHVuX25hcGlfaW5pdCh0dW4sIHRmaWxlLCBuYXBpLCBu YXBpX2ZyYWdzKTsKIAl9CiAKLQl0dW5fc2V0X3JlYWxfbnVtX3F1ZXVlcyh0dW4pOwotCiAJLyog ZGV2aWNlIGlzIGFsbG93ZWQgdG8gZ28gYXdheSBmaXJzdCwgc28gbm8gbmVlZCB0byBob2xkIGV4 dHJhCiAJICogcmVmY250LgogCSAqLwpAQCAtODc5LDYgKzg3Nyw3IEBAIHN0YXRpYyBpbnQgdHVu X2F0dGFjaChzdHJ1Y3QgdHVuX3N0cnVjdCAqdHVuLCBzdHJ1Y3QgZmlsZSAqZmlsZSwKIAlyY3Vf YXNzaWduX3BvaW50ZXIodGZpbGUtPnR1biwgdHVuKTsKIAlyY3VfYXNzaWduX3BvaW50ZXIodHVu LT50ZmlsZXNbdHVuLT5udW1xdWV1ZXNdLCB0ZmlsZSk7CiAJdHVuLT5udW1xdWV1ZXMrKzsKKwl0 dW5fc2V0X3JlYWxfbnVtX3F1ZXVlcyh0dW4pOwogb3V0OgogCXJldHVybiBlcnI7CiB9Ci0tIAoy LjIwLjEKCgpGcm9tIDNmMzQ3NTEzOTZjZDY5MjJjZmVjYTQ0YmIwNzRlOWVkZTdiMWQzODIgTW9u IFNlcCAxNyAwMDowMDowMCAyMDAxCkZyb206IE1hdGhpYXMgVGhvcmUgPG1hdGhpYXMudGhvcmVA aW5maW5lcmEuY29tPgpEYXRlOiBNb24sIDI4IEphbiAyMDE5IDEwOjA3OjQ3ICswMTAwClN1Ympl Y3Q6IFtQQVRDSCAxNS8zMF0gdWNjX2dldGg6IFJlc2V0IEJRTCBxdWV1ZSB3aGVuIHN0b3BwaW5n IGRldmljZQoKWyBVcHN0cmVhbSBjb21taXQgZTE1YWEzYjJiMTM4OGMzOTljMWEyY2UwODU1MGQy Y2M0ZjdlM2UxNCBdCgpBZnRlciBhIHRpbWVvdXQgZXZlbnQgY2F1c2VkIGJ5IGZvciBleGFtcGxl IGEgYnJvYWRjYXN0IHN0b3JtLCB3aGVuCnRoZSBNQUMgYW5kIFBIWSBhcmUgcmVzZXQsIHRoZSBC UUwgVFggcXVldWUgbmVlZHMgdG8gYmUgcmVzZXQgYXMKd2VsbC4gT3RoZXJ3aXNlLCB0aGUgZGV2 aWNlIHdpbGwgZXhoaWJpdCBzZXZlcmUgcGVyZm9ybWFuY2UgaXNzdWVzCmV2ZW4gYWZ0ZXIgdGhl IHN0b3JtIGhhcyBlbmRlZC4KCkNvLWF1dGhvcmVkLWJ5OiBEYXZpZCBHb3VuYXJpcyA8ZGF2aWQu Z291bmFyaXNAaW5maW5lcmEuY29tPgpTaWduZWQtb2ZmLWJ5OiBNYXRoaWFzIFRob3JlIDxtYXRo aWFzLnRob3JlQGluZmluZXJhLmNvbT4KU2lnbmVkLW9mZi1ieTogRGF2aWQgUy4gTWlsbGVyIDxk YXZlbUBkYXZlbWxvZnQubmV0PgotLS0KIGRyaXZlcnMvbmV0L2V0aGVybmV0L2ZyZWVzY2FsZS91 Y2NfZ2V0aC5jIHwgMiArKwogMSBmaWxlIGNoYW5nZWQsIDIgaW5zZXJ0aW9ucygrKQoKZGlmZiAt LWdpdCBhL2RyaXZlcnMvbmV0L2V0aGVybmV0L2ZyZWVzY2FsZS91Y2NfZ2V0aC5jIGIvZHJpdmVy cy9uZXQvZXRoZXJuZXQvZnJlZXNjYWxlL3VjY19nZXRoLmMKaW5kZXggMjJhODE3ZGE4NjFlLi4x ZTJiNTNhOTM0ZmIgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvbmV0L2V0aGVybmV0L2ZyZWVzY2FsZS91 Y2NfZ2V0aC5jCisrKyBiL2RyaXZlcnMvbmV0L2V0aGVybmV0L2ZyZWVzY2FsZS91Y2NfZ2V0aC5j CkBAIC0xODg4LDYgKzE4ODgsOCBAQCBzdGF0aWMgdm9pZCB1Y2NfZ2V0aF9mcmVlX3R4KHN0cnVj dCB1Y2NfZ2V0aF9wcml2YXRlICp1Z2V0aCkKIAl1MTYgaSwgajsKIAl1OCBfX2lvbWVtICpiZDsK IAorCW5ldGRldl9yZXNldF9xdWV1ZSh1Z2V0aC0+bmRldik7CisKIAl1Z19pbmZvID0gdWdldGgt PnVnX2luZm87CiAJdWZfaW5mbyA9ICZ1Z19pbmZvLT51Zl9pbmZvOwogCi0tIAoyLjIwLjEKCgpG cm9tIDc4OWUxYjViYWFhOWY5N2NmNmIwY2JiZjcxOTc5ZmQ3Y2Y2MzkzOGQgTW9uIFNlcCAxNyAw MDowMDowMCAyMDAxCkZyb206IEphc29uIFdhbmcgPGphc293YW5nQHJlZGhhdC5jb20+CkRhdGU6 IE1vbiwgMjggSmFuIDIwMTkgMTU6MDU6MDUgKzA4MDAKU3ViamVjdDogW1BBVENIIDE2LzMwXSB2 aG9zdDogZml4IE9PQiBpbiBnZXRfcnhfYnVmcygpCgpbIFVwc3RyZWFtIGNvbW1pdCBiNDZhMGJm NzhhZDdiMTUwZWY1OTEwZGE4Mzg1OWY3ZjVhNTE0ZmZkIF0KCkFmdGVyIGJhdGNoZWQgdXNlZCBy aW5nIHVwZGF0aW5nIHdhcyBpbnRyb2R1Y2VkIGluIGNvbW1pdCBlMmIzYjM1ZWI5ODkKKCJ2aG9z dF9uZXQ6IGJhdGNoIHVzZWQgcmluZyB1cGRhdGUgaW4gcngiKS4gV2UgdGVuZCB0byBiYXRjaCBo ZWFkcyBpbgp2cS0+aGVhZHMgZm9yIG1vcmUgdGhhbiBvbmUgcGFja2V0LiBCdXQgdGhlIHF1b3Rh IHBhc3NlZCB0bwpnZXRfcnhfYnVmcygpIHdhcyBub3QgY29ycmVjdGx5IGxpbWl0ZWQsIHdoaWNo IGNhbiByZXN1bHQgYSBPT0Igd3JpdGUKaW4gdnEtPmhlYWRzLgoKICAgICAgICBoZWFkY291bnQg PSBnZXRfcnhfYnVmcyh2cSwgdnEtPmhlYWRzICsgbnZxLT5kb25lX2lkeCwKICAgICAgICAgICAg ICAgICAgICB2aG9zdF9sZW4sICZpbiwgdnFfbG9nLCAmbG9nLAogICAgICAgICAgICAgICAgICAg IGxpa2VseShtZXJnZWFibGUpID8gVUlPX01BWElPViA6IDEpOwoKVUlPX01BWElPViB3YXMgc3Rp bGwgdXNlZCB3aGljaCBpcyB3cm9uZyBzaW5jZSB3ZSBjb3VsZCBoYXZlIGJhdGNoZWQKdXNlZCBp biB2cS0+aGVhZHMsIHRoaXMgd2lsbCBjYXVzZSBPT0IgaWYgdGhlIG5leHQgYnVmZmVyIG5lZWRz IG1vcmUKdGhhbiA5NjAgKDEwMjQgKFVJT19NQVhJT1YpIC0gNjQgKFZIT1NUX05FVF9CQVRDSCkp IGhlYWRzIGFmdGVyIHdlJ3ZlCmJhdGNoZWQgNjQgKFZIT1NUX05FVF9CQVRDSCkgaGVhZHM6CkFj a2VkLWJ5OiBTdGVmYW4gSGFqbm9jemkgPHN0ZWZhbmhhQHJlZGhhdC5jb20+Cgo9PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PQpCVUcga21hbGxvYy04ayAoVGFpbnRlZDogRyAgICBCICAgICAgICAgICAgKTog UmVkem9uZSBvdmVyd3JpdHRlbgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKSU5GTzogMHgwMDAwMDAw MGZkOTNiN2EyLTB4MDAwMDAwMDBmMDcxMzM4NC4gRmlyc3QgYnl0ZSAweGE5IGluc3RlYWQgb2Yg MHhjYwpJTkZPOiBBbGxvY2F0ZWQgaW4gYWxsb2NfcGQrMHgyMi8weDYwIGFnZT0zOTMzNjc3IGNw dT0yIHBpZD0yNjc0CiAgICBrbWVtX2NhY2hlX2FsbG9jX3RyYWNlKzB4YmIvMHgxNDAKICAgIGFs bG9jX3BkKzB4MjIvMHg2MAogICAgZ2VuOF9wcGd0dF9jcmVhdGUrMHgxMWQvMHg1ZjAKICAgIGk5 MTVfcHBndHRfY3JlYXRlKzB4MTYvMHg4MAogICAgaTkxNV9nZW1fY3JlYXRlX2NvbnRleHQrMHgy NDgvMHgzOTAKICAgIGk5MTVfZ2VtX2NvbnRleHRfY3JlYXRlX2lvY3RsKzB4NGIvMHhlMAogICAg ZHJtX2lvY3RsX2tlcm5lbCsweGE1LzB4ZjAKICAgIGRybV9pb2N0bCsweDJlZC8weDNhMAogICAg ZG9fdmZzX2lvY3RsKzB4OWYvMHg2MjAKICAgIGtzeXNfaW9jdGwrMHg2Yi8weDgwCiAgICBfX3g2 NF9zeXNfaW9jdGwrMHgxMS8weDIwCiAgICBkb19zeXNjYWxsXzY0KzB4NDMvMHhmMAogICAgZW50 cnlfU1lTQ0FMTF82NF9hZnRlcl9od2ZyYW1lKzB4NDQvMHhhOQpJTkZPOiBTbGFiIDB4MDAwMDAw MDBkMTNlODdhZiBvYmplY3RzPTMgdXNlZD0zIGZwPTB4ICAgICAgICAgIChudWxsKSBmbGFncz0w eDIwMDAwMDAwMDAxMDIwMQpJTkZPOiBPYmplY3QgMHgwMDAwMDAwMDAzMjc4ODAyIEBvZmZzZXQ9 MTcwNjQgZnA9MHgwMDAwMDAwMGUyZTY2NTJiCgpGaXhpbmcgdGhpcyBieSBhbGxvY2F0aW5nIFVJ T19NQVhJT1YgKyBWSE9TVF9ORVRfQkFUQ0ggaW92cyBmb3IKdmhvc3QtbmV0LiBUaGlzIGlzIGRv bmUgdGhyb3VnaCBzZXQgdGhlIGxpbWl0YXRpb24gdGhyb3VnaAp2aG9zdF9kZXZfaW5pdCgpLCB0 aGVuIHNldF9vd25lciBjYW4gYWxsb2NhdGUgdGhlIG51bWJlciBvZiBpb3YgaW4gYQpwZXIgZGV2 aWNlIG1hbm5lci4KClRoaXMgZml4ZXMgQ1ZFLTIwMTgtMTY4ODAuCgpGaXhlczogZTJiM2IzNWVi OTg5ICgidmhvc3RfbmV0OiBiYXRjaCB1c2VkIHJpbmcgdXBkYXRlIGluIHJ4IikKU2lnbmVkLW9m Zi1ieTogSmFzb24gV2FuZyA8amFzb3dhbmdAcmVkaGF0LmNvbT4KU2lnbmVkLW9mZi1ieTogRGF2 aWQgUy4gTWlsbGVyIDxkYXZlbUBkYXZlbWxvZnQubmV0PgotLS0KIGRyaXZlcnMvdmhvc3QvbmV0 LmMgICB8IDMgKystCiBkcml2ZXJzL3Zob3N0L3Njc2kuYyAgfCAyICstCiBkcml2ZXJzL3Zob3N0 L3Zob3N0LmMgfCA3ICsrKystLS0KIGRyaXZlcnMvdmhvc3Qvdmhvc3QuaCB8IDQgKysrLQogZHJp dmVycy92aG9zdC92c29jay5jIHwgMiArLQogNSBmaWxlcyBjaGFuZ2VkLCAxMSBpbnNlcnRpb25z KCspLCA3IGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL2RyaXZlcnMvdmhvc3QvbmV0LmMgYi9k cml2ZXJzL3Zob3N0L25ldC5jCmluZGV4IGE4NmFhNjVhZDY2ZC4uMzkxNTVkN2NjODk0IDEwMDY0 NAotLS0gYS9kcml2ZXJzL3Zob3N0L25ldC5jCisrKyBiL2RyaXZlcnMvdmhvc3QvbmV0LmMKQEAg LTExMTQsNyArMTExNCw4IEBAIHN0YXRpYyBpbnQgdmhvc3RfbmV0X29wZW4oc3RydWN0IGlub2Rl ICppbm9kZSwgc3RydWN0IGZpbGUgKmYpCiAJCW4tPnZxc1tpXS5yeF9yaW5nID0gTlVMTDsKIAkJ dmhvc3RfbmV0X2J1Zl9pbml0KCZuLT52cXNbaV0ucnhxKTsKIAl9Ci0Jdmhvc3RfZGV2X2luaXQo ZGV2LCB2cXMsIFZIT1NUX05FVF9WUV9NQVgpOworCXZob3N0X2Rldl9pbml0KGRldiwgdnFzLCBW SE9TVF9ORVRfVlFfTUFYLAorCQkgICAgICAgVUlPX01BWElPViArIFZIT1NUX05FVF9CQVRDSCk7 CiAKIAl2aG9zdF9wb2xsX2luaXQobi0+cG9sbCArIFZIT1NUX05FVF9WUV9UWCwgaGFuZGxlX3R4 X25ldCwgRVBPTExPVVQsIGRldik7CiAJdmhvc3RfcG9sbF9pbml0KG4tPnBvbGwgKyBWSE9TVF9O RVRfVlFfUlgsIGhhbmRsZV9yeF9uZXQsIEVQT0xMSU4sIGRldik7CmRpZmYgLS1naXQgYS9kcml2 ZXJzL3Zob3N0L3Njc2kuYyBiL2RyaXZlcnMvdmhvc3Qvc2NzaS5jCmluZGV4IGU3ZTNhZTEzNTE2 ZC4uMGNmYTkyNWJlNGVjIDEwMDY0NAotLS0gYS9kcml2ZXJzL3Zob3N0L3Njc2kuYworKysgYi9k cml2ZXJzL3Zob3N0L3Njc2kuYwpAQCAtMTM5OCw3ICsxMzk4LDcgQEAgc3RhdGljIGludCB2aG9z dF9zY3NpX29wZW4oc3RydWN0IGlub2RlICppbm9kZSwgc3RydWN0IGZpbGUgKmYpCiAJCXZxc1tp XSA9ICZ2cy0+dnFzW2ldLnZxOwogCQl2cy0+dnFzW2ldLnZxLmhhbmRsZV9raWNrID0gdmhvc3Rf c2NzaV9oYW5kbGVfa2ljazsKIAl9Ci0Jdmhvc3RfZGV2X2luaXQoJnZzLT5kZXYsIHZxcywgVkhP U1RfU0NTSV9NQVhfVlEpOworCXZob3N0X2Rldl9pbml0KCZ2cy0+ZGV2LCB2cXMsIFZIT1NUX1ND U0lfTUFYX1ZRLCBVSU9fTUFYSU9WKTsKIAogCXZob3N0X3Njc2lfaW5pdF9pbmZsaWdodCh2cywg TlVMTCk7CiAKZGlmZiAtLWdpdCBhL2RyaXZlcnMvdmhvc3Qvdmhvc3QuYyBiL2RyaXZlcnMvdmhv c3Qvdmhvc3QuYwppbmRleCBjNjZmYzgzMDhiNWUuLmNmODJlNzI2NjM5NyAxMDA2NDQKLS0tIGEv ZHJpdmVycy92aG9zdC92aG9zdC5jCisrKyBiL2RyaXZlcnMvdmhvc3Qvdmhvc3QuYwpAQCAtMzkw LDkgKzM5MCw5IEBAIHN0YXRpYyBsb25nIHZob3N0X2Rldl9hbGxvY19pb3ZlY3Moc3RydWN0IHZo b3N0X2RldiAqZGV2KQogCQl2cS0+aW5kaXJlY3QgPSBrbWFsbG9jX2FycmF5KFVJT19NQVhJT1Ys CiAJCQkJCSAgICAgc2l6ZW9mKCp2cS0+aW5kaXJlY3QpLAogCQkJCQkgICAgIEdGUF9LRVJORUwp OwotCQl2cS0+bG9nID0ga21hbGxvY19hcnJheShVSU9fTUFYSU9WLCBzaXplb2YoKnZxLT5sb2cp LAorCQl2cS0+bG9nID0ga21hbGxvY19hcnJheShkZXYtPmlvdl9saW1pdCwgc2l6ZW9mKCp2cS0+ bG9nKSwKIAkJCQkJR0ZQX0tFUk5FTCk7Ci0JCXZxLT5oZWFkcyA9IGttYWxsb2NfYXJyYXkoVUlP X01BWElPViwgc2l6ZW9mKCp2cS0+aGVhZHMpLAorCQl2cS0+aGVhZHMgPSBrbWFsbG9jX2FycmF5 KGRldi0+aW92X2xpbWl0LCBzaXplb2YoKnZxLT5oZWFkcyksCiAJCQkJCSAgR0ZQX0tFUk5FTCk7 CiAJCWlmICghdnEtPmluZGlyZWN0IHx8ICF2cS0+bG9nIHx8ICF2cS0+aGVhZHMpCiAJCQlnb3Rv IGVycl9ub21lbTsKQEAgLTQxNCw3ICs0MTQsNyBAQCBzdGF0aWMgdm9pZCB2aG9zdF9kZXZfZnJl ZV9pb3ZlY3Moc3RydWN0IHZob3N0X2RldiAqZGV2KQogfQogCiB2b2lkIHZob3N0X2Rldl9pbml0 KHN0cnVjdCB2aG9zdF9kZXYgKmRldiwKLQkJICAgIHN0cnVjdCB2aG9zdF92aXJ0cXVldWUgKip2 cXMsIGludCBudnFzKQorCQkgICAgc3RydWN0IHZob3N0X3ZpcnRxdWV1ZSAqKnZxcywgaW50IG52 cXMsIGludCBpb3ZfbGltaXQpCiB7CiAJc3RydWN0IHZob3N0X3ZpcnRxdWV1ZSAqdnE7CiAJaW50 IGk7CkBAIC00MjcsNiArNDI3LDcgQEAgdm9pZCB2aG9zdF9kZXZfaW5pdChzdHJ1Y3Qgdmhvc3Rf ZGV2ICpkZXYsCiAJZGV2LT5pb3RsYiA9IE5VTEw7CiAJZGV2LT5tbSA9IE5VTEw7CiAJZGV2LT53 b3JrZXIgPSBOVUxMOworCWRldi0+aW92X2xpbWl0ID0gaW92X2xpbWl0OwogCWluaXRfbGxpc3Rf aGVhZCgmZGV2LT53b3JrX2xpc3QpOwogCWluaXRfd2FpdHF1ZXVlX2hlYWQoJmRldi0+d2FpdCk7 CiAJSU5JVF9MSVNUX0hFQUQoJmRldi0+cmVhZF9saXN0KTsKZGlmZiAtLWdpdCBhL2RyaXZlcnMv dmhvc3Qvdmhvc3QuaCBiL2RyaXZlcnMvdmhvc3Qvdmhvc3QuaAppbmRleCAxYjY3NWRhZDVlMDUu Ljk0OTBlN2RkYjM0MCAxMDA2NDQKLS0tIGEvZHJpdmVycy92aG9zdC92aG9zdC5oCisrKyBiL2Ry aXZlcnMvdmhvc3Qvdmhvc3QuaApAQCAtMTcwLDkgKzE3MCwxMSBAQCBzdHJ1Y3Qgdmhvc3RfZGV2 IHsKIAlzdHJ1Y3QgbGlzdF9oZWFkIHJlYWRfbGlzdDsKIAlzdHJ1Y3QgbGlzdF9oZWFkIHBlbmRp bmdfbGlzdDsKIAl3YWl0X3F1ZXVlX2hlYWRfdCB3YWl0OworCWludCBpb3ZfbGltaXQ7CiB9Owog Ci12b2lkIHZob3N0X2Rldl9pbml0KHN0cnVjdCB2aG9zdF9kZXYgKiwgc3RydWN0IHZob3N0X3Zp cnRxdWV1ZSAqKnZxcywgaW50IG52cXMpOwordm9pZCB2aG9zdF9kZXZfaW5pdChzdHJ1Y3Qgdmhv c3RfZGV2ICosIHN0cnVjdCB2aG9zdF92aXJ0cXVldWUgKip2cXMsCisJCSAgICBpbnQgbnZxcywg aW50IGlvdl9saW1pdCk7CiBsb25nIHZob3N0X2Rldl9zZXRfb3duZXIoc3RydWN0IHZob3N0X2Rl diAqZGV2KTsKIGJvb2wgdmhvc3RfZGV2X2hhc19vd25lcihzdHJ1Y3Qgdmhvc3RfZGV2ICpkZXYp OwogbG9uZyB2aG9zdF9kZXZfY2hlY2tfb3duZXIoc3RydWN0IHZob3N0X2RldiAqKTsKZGlmZiAt LWdpdCBhL2RyaXZlcnMvdmhvc3QvdnNvY2suYyBiL2RyaXZlcnMvdmhvc3QvdnNvY2suYwppbmRl eCA5OGVkNWJlMTMyYzYuLmZhOTNmNjcxMWQ4ZCAxMDA2NDQKLS0tIGEvZHJpdmVycy92aG9zdC92 c29jay5jCisrKyBiL2RyaXZlcnMvdmhvc3QvdnNvY2suYwpAQCAtNTMxLDcgKzUzMSw3IEBAIHN0 YXRpYyBpbnQgdmhvc3RfdnNvY2tfZGV2X29wZW4oc3RydWN0IGlub2RlICppbm9kZSwgc3RydWN0 IGZpbGUgKmZpbGUpCiAJdnNvY2stPnZxc1tWU09DS19WUV9UWF0uaGFuZGxlX2tpY2sgPSB2aG9z dF92c29ja19oYW5kbGVfdHhfa2ljazsKIAl2c29jay0+dnFzW1ZTT0NLX1ZRX1JYXS5oYW5kbGVf a2ljayA9IHZob3N0X3Zzb2NrX2hhbmRsZV9yeF9raWNrOwogCi0Jdmhvc3RfZGV2X2luaXQoJnZz b2NrLT5kZXYsIHZxcywgQVJSQVlfU0laRSh2c29jay0+dnFzKSk7CisJdmhvc3RfZGV2X2luaXQo JnZzb2NrLT5kZXYsIHZxcywgQVJSQVlfU0laRSh2c29jay0+dnFzKSwgVUlPX01BWElPVik7CiAK IAlmaWxlLT5wcml2YXRlX2RhdGEgPSB2c29jazsKIAlzcGluX2xvY2tfaW5pdCgmdnNvY2stPnNl bmRfcGt0X2xpc3RfbG9jayk7Ci0tIAoyLjIwLjEKCgpGcm9tIDJiYzNjNTAyOGRiYTFhOWY2ZTg2 OTczN2JkNTMzYmJkNzkxZGVkY2UgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCkZyb206IExvcmVu em8gQmlhbmNvbmkgPGxvcmVuem8uYmlhbmNvbmlAcmVkaGF0LmNvbT4KRGF0ZTogTW9uLCAyOCBK YW4gMjAxOSAyMjoyMzo0OSArMDEwMApTdWJqZWN0OiBbUEFUQ0ggMTcvMzBdIG5ldDogaXA2X2dy ZTogYWx3YXlzIHJlcG9ydHMgb19rZXkgdG8gdXNlcnNwYWNlCgpbIFVwc3RyZWFtIGNvbW1pdCBj NzA2ODYzYmM4OTAyZDBjMmQxYTVhMjdhYzhlMWVhZDVkMDZiNzlkIF0KCkFzIEVyc3Bhbl92NCwg RXJzcGFuX3Y2IHByb3RvY29sIHJlbGllcyBvbiBvX2tleSB0byBjb25maWd1cmUKc2Vzc2lvbiBp ZCBoZWFkZXIgZmllbGQuIEhvd2V2ZXIgVFVOTkVMX0tFWSBiaXQgaXMgY2xlYXJlZCBpbgppcDZl cnNwYW5fdHVubmVsX3htaXQgc2luY2UgRVJTUEFOIHByb3RvY29sIGRvZXMgbm90IHNldCB0aGUg a2V5IGZpZWxkCm9mIHRoZSBleHRlcm5hbCBHUkUgaGVhZGVyIGFuZCBzbyB0aGUgY29uZmlndXJl ZCBvX2tleSBpcyBub3QgcmVwb3J0ZWQKdG8gdXNlcnNwYWNlLiBUaGUgaXNzdWUgY2FuIGJlIHRy aWdnZXJlZCB3aXRoIHRoZSBmb2xsb3dpbmcgcmVwcm9kdWNlcjoKCiRpcCBsaW5rIGFkZCBpcDZl cnNwYW4xIHR5cGUgaXA2ZXJzcGFuIGxvY2FsIDIwMDA6OjEgcmVtb3RlIDIwMDA6OjIgXAogICAg a2V5IDEgc2VxIGVyc3Bhbl92ZXIgMQokaXAgbGluayBzZXQgaXA2ZXJzcGFuMSB1cAppcCAtZCBs aW5rIHNoIGlwNmVyc3BhbjEKCmlwNmVyc3BhbjFATk9ORTogPEJST0FEQ0FTVCxNVUxUSUNBU1Q+ IG10dSAxNDIyIHFkaXNjIG5vb3Agc3RhdGUgRE9XTiBtb2RlIERFRkFVTFQKICAgIGxpbmsvZXRo ZXIgYmE6ZmY6MDk6MjQ6YzM6MGUgYnJkIGZmOmZmOmZmOmZmOmZmOmZmIHByb21pc2N1aXR5IDAg bWlubXR1IDY4IG1heG10dSAxNTAwCiAgICBpcDZlcnNwYW4gcmVtb3RlIDIwMDA6OjIgbG9jYWwg MjAwMDo6MSBlbmNhcGxpbWl0IDQgZmxvd2xhYmVsIDB4MDAwMDAgaWtleSAwLjAuMC4xIGlzZXEg b3NlcQoKRml4IHRoZSBpc3N1ZSBhZGRpbmcgVFVOTkVMX0tFWSBiaXQgdG8gdGhlIG9fZmxhZ3Mg cGFyYW1ldGVyIGluCmlwNmdyZV9maWxsX2luZm8KCkZpeGVzOiA1YTk2M2ViNjFiN2MgKCJpcDZf Z3JlOiBBZGQgRVJTUEFOIG5hdGl2ZSB0dW5uZWwgc3VwcG9ydCIpClNpZ25lZC1vZmYtYnk6IExv cmVuem8gQmlhbmNvbmkgPGxvcmVuem8uYmlhbmNvbmlAcmVkaGF0LmNvbT4KU2lnbmVkLW9mZi1i eTogRGF2aWQgUy4gTWlsbGVyIDxkYXZlbUBkYXZlbWxvZnQubmV0PgotLS0KIG5ldC9pcHY2L2lw Nl9ncmUuYyB8IDcgKysrKysrLQogMSBmaWxlIGNoYW5nZWQsIDYgaW5zZXJ0aW9ucygrKSwgMSBk ZWxldGlvbigtKQoKZGlmZiAtLWdpdCBhL25ldC9pcHY2L2lwNl9ncmUuYyBiL25ldC9pcHY2L2lw Nl9ncmUuYwppbmRleCA1ODA5MDdlYjQyY2QuLmJlMDQ4NzdiMzgyNyAxMDA2NDQKLS0tIGEvbmV0 L2lwdjYvaXA2X2dyZS5jCisrKyBiL25ldC9pcHY2L2lwNl9ncmUuYwpAQCAtMjEyMCwxMiArMjEy MCwxNyBAQCBzdGF0aWMgaW50IGlwNmdyZV9maWxsX2luZm8oc3RydWN0IHNrX2J1ZmYgKnNrYiwg Y29uc3Qgc3RydWN0IG5ldF9kZXZpY2UgKmRldikKIHsKIAlzdHJ1Y3QgaXA2X3RubCAqdCA9IG5l dGRldl9wcml2KGRldik7CiAJc3RydWN0IF9faXA2X3RubF9wYXJtICpwID0gJnQtPnBhcm1zOwor CV9fYmUxNiBvX2ZsYWdzID0gcC0+b19mbGFnczsKKworCWlmICgocC0+ZXJzcGFuX3ZlciA9PSAx IHx8IHAtPmVyc3Bhbl92ZXIgPT0gMikgJiYKKwkgICAgIXAtPmNvbGxlY3RfbWQpCisJCW9fZmxh Z3MgfD0gVFVOTkVMX0tFWTsKIAogCWlmIChubGFfcHV0X3UzMihza2IsIElGTEFfR1JFX0xJTkss IHAtPmxpbmspIHx8CiAJICAgIG5sYV9wdXRfYmUxNihza2IsIElGTEFfR1JFX0lGTEFHUywKIAkJ CSBncmVfdG5sX2ZsYWdzX3RvX2dyZV9mbGFncyhwLT5pX2ZsYWdzKSkgfHwKIAkgICAgbmxhX3B1 dF9iZTE2KHNrYiwgSUZMQV9HUkVfT0ZMQUdTLAotCQkJIGdyZV90bmxfZmxhZ3NfdG9fZ3JlX2Zs YWdzKHAtPm9fZmxhZ3MpKSB8fAorCQkJIGdyZV90bmxfZmxhZ3NfdG9fZ3JlX2ZsYWdzKG9fZmxh Z3MpKSB8fAogCSAgICBubGFfcHV0X2JlMzIoc2tiLCBJRkxBX0dSRV9JS0VZLCBwLT5pX2tleSkg fHwKIAkgICAgbmxhX3B1dF9iZTMyKHNrYiwgSUZMQV9HUkVfT0tFWSwgcC0+b19rZXkpIHx8CiAJ ICAgIG5sYV9wdXRfaW42X2FkZHIoc2tiLCBJRkxBX0dSRV9MT0NBTCwgJnAtPmxhZGRyKSB8fAot LSAKMi4yMC4xCgoKRnJvbSAzMTM1MDQ3NzE5MzU5NzUzYmRmMGYyMGYxZDViYTY4ZDg4NDk2OTYx IE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBYaW4gTG9uZyA8bHVjaWVuLnhpbkBnbWFp bC5jb20+CkRhdGU6IFR1ZSwgMjIgSmFuIDIwMTkgMDI6NDA6MTIgKzA4MDAKU3ViamVjdDogW1BB VENIIDE4LzMwXSBzY3RwOiBpbXByb3ZlIHRoZSBldmVudHMgZm9yIHNjdHAgc3RyZWFtIGFkZGlu ZwoKWyBVcHN0cmVhbSBjb21taXQgODIyMGM4NzBjYjBmNGVhYTRlMzM1Yzk2NDVkYmQ5YTFjNDYx YzFkZCBdCgpUaGlzIHBhdGNoIGlzIHRvIGltcHJvdmUgc2N0cCBzdHJlYW0gYWRkaW5nIGV2ZW50 cyBpbiAyIHBsYWNlczoKCiAgMS4gSW4gc2N0cF9wcm9jZXNzX3N0cnJlc2V0X2FkZHN0cm1fb3V0 KCksIG1vdmUgdXAgU0NUUF9NQVhfU1RSRUFNCiAgICAgYW5kIGluIHN0cmVhbSBhbGxvY2F0aW9u IGZhaWx1cmUgY2hlY2tzLCBhcyB0aGUgYWRkaW5nIGhhcyB0bwogICAgIHN1Y2NlZWQgYWZ0ZXIg cmVjb25mX3RpbWVyIHN0b3BzIGZvciB0aGUgaW4gc3RyZWFtIGFkZGluZwogICAgIHJlcXVlc3Qg cmV0cmFuc21pc3Npb24uCgogIDMuIEluIHNjdHBfcHJvY2Vzc19zdHJyZXNldF9hZGRzdHJtX2lu KCksIG5vIGV2ZW50IHNob3VsZCBiZSBzZW50LAogICAgIGFzIG5vIGluIG9yIG91dCBzdHJlYW0g aXMgYWRkZWQgaGVyZS4KCkZpeGVzOiA1MGE0MTU5MWYxMTAgKCJzY3RwOiBpbXBsZW1lbnQgcmVj ZWl2ZXItc2lkZSBwcm9jZWR1cmVzIGZvciB0aGUgQWRkIE91dGdvaW5nIFN0cmVhbXMgUmVxdWVz dCBQYXJhbWV0ZXIiKQpGaXhlczogYzVjNGViYjNhYjg3ICgic2N0cDogaW1wbGVtZW50IHJlY2Vp dmVyLXNpZGUgcHJvY2VkdXJlcyBmb3IgdGhlIEFkZCBJbmNvbWluZyBTdHJlYW1zIFJlcXVlc3Qg UGFyYW1ldGVyIikKUmVwb3J0ZWQtYnk6IFlpbmcgWHUgPHlpbnh1QHJlZGhhdC5jb20+ClNpZ25l ZC1vZmYtYnk6IFhpbiBMb25nIDxsdWNpZW4ueGluQGdtYWlsLmNvbT4KU2lnbmVkLW9mZi1ieTog RGF2aWQgUy4gTWlsbGVyIDxkYXZlbUBkYXZlbWxvZnQubmV0PgotLS0KIG5ldC9zY3RwL3N0cmVh bS5jIHwgMTkgKysrKysrKystLS0tLS0tLS0tLQogMSBmaWxlIGNoYW5nZWQsIDggaW5zZXJ0aW9u cygrKSwgMTEgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvbmV0L3NjdHAvc3RyZWFtLmMgYi9u ZXQvc2N0cC9zdHJlYW0uYwppbmRleCA2YzE4OGIwNmU1ZTEuLjgwZTBhZTU1MzRlYyAxMDA2NDQK LS0tIGEvbmV0L3NjdHAvc3RyZWFtLmMKKysrIGIvbmV0L3NjdHAvc3RyZWFtLmMKQEAgLTg2Niw2 ICs4NjYsMTQgQEAgc3RydWN0IHNjdHBfY2h1bmsgKnNjdHBfcHJvY2Vzc19zdHJyZXNldF9hZGRz dHJtX291dCgKIAlpZiAoIShhc29jLT5zdHJyZXNldF9lbmFibGUgJiBTQ1RQX0VOQUJMRV9DSEFO R0VfQVNTT0NfUkVRKSkKIAkJZ290byBvdXQ7CiAKKwlpbiA9IG50b2hzKGFkZHN0cm0tPm51bWJl cl9vZl9zdHJlYW1zKTsKKwlpbmNudCA9IHN0cmVhbS0+aW5jbnQgKyBpbjsKKwlpZiAoIWluIHx8 IGluY250ID4gU0NUUF9NQVhfU1RSRUFNKQorCQlnb3RvIG91dDsKKworCWlmIChzY3RwX3N0cmVh bV9hbGxvY19pbihzdHJlYW0sIGluY250LCBHRlBfQVRPTUlDKSkKKwkJZ290byBvdXQ7CisKIAlp ZiAoYXNvYy0+c3RycmVzZXRfY2h1bmspIHsKIAkJaWYgKCFzY3RwX2NodW5rX2xvb2t1cF9zdHJy ZXNldF9wYXJhbSgKIAkJCWFzb2MsIDAsIFNDVFBfUEFSQU1fUkVTRVRfQUREX0lOX1NUUkVBTVMp KSB7CkBAIC04ODksMTQgKzg5Nyw2IEBAIHN0cnVjdCBzY3RwX2NodW5rICpzY3RwX3Byb2Nlc3Nf c3RycmVzZXRfYWRkc3RybV9vdXQoCiAJCX0KIAl9CiAKLQlpbiA9IG50b2hzKGFkZHN0cm0tPm51 bWJlcl9vZl9zdHJlYW1zKTsKLQlpbmNudCA9IHN0cmVhbS0+aW5jbnQgKyBpbjsKLQlpZiAoIWlu IHx8IGluY250ID4gU0NUUF9NQVhfU1RSRUFNKQotCQlnb3RvIG91dDsKLQotCWlmIChzY3RwX3N0 cmVhbV9hbGxvY19pbihzdHJlYW0sIGluY250LCBHRlBfQVRPTUlDKSkKLQkJZ290byBvdXQ7Ci0K IAlzdHJlYW0tPmluY250ID0gaW5jbnQ7CiAKIAlyZXN1bHQgPSBTQ1RQX1NUUlJFU0VUX1BFUkZP Uk1FRDsKQEAgLTk2Niw5ICs5NjYsNiBAQCBzdHJ1Y3Qgc2N0cF9jaHVuayAqc2N0cF9wcm9jZXNz X3N0cnJlc2V0X2FkZHN0cm1faW4oCiAKIAlyZXN1bHQgPSBTQ1RQX1NUUlJFU0VUX1BFUkZPUk1F RDsKIAotCSpldnAgPSBzY3RwX3VscGV2ZW50X21ha2Vfc3RyZWFtX2NoYW5nZV9ldmVudChhc29j LAotCQkwLCAwLCBudG9ocyhhZGRzdHJtLT5udW1iZXJfb2Zfc3RyZWFtcyksIEdGUF9BVE9NSUMp OwotCiBvdXQ6CiAJc2N0cF91cGRhdGVfc3RycmVzZXRfcmVzdWx0KGFzb2MsIHJlc3VsdCk7CiBl cnI6Ci0tIAoyLjIwLjEKCgpGcm9tIDAxNGNkYzU4ZWI5NDA4OTBkMGExNDEyMzU5ZjVkN2I3MjY2 NTQyNjAgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCkZyb206IEF5YSBMZXZpbiA8YXlhbEBtZWxs YW5veC5jb20+CkRhdGU6IE1vbiwgMjQgRGVjIDIwMTggMDk6NDg6NDIgKzAyMDAKU3ViamVjdDog W1BBVENIIDE5LzMwXSBuZXQvbWx4NWU6IEFsbG93IE1BQyBpbnZhbGlkYXRpb24gd2hpbGUgc3Bv b2ZjaGsgaXMgT04KClsgVXBzdHJlYW0gY29tbWl0IDlkMmNiZGM1ZDMzNDk2N2MzNWI1ZjU4Yzdi ZjMyMDhlMTczMjU2NDcgXQoKUHJpb3IgdG8gdGhpcyBwYXRjaCB0aGUgZHJpdmVyIHByb2hpYml0 ZWQgc3Bvb2YgY2hlY2tpbmcgb24gaW52YWxpZCBNQUMuCk5vdyB0aGUgdXNlciBjYW4gc2V0IHRo aXMgY29uZmlndXJhdGlvbiBpZiBpdCB3aXNoZXMgdG8uCgpUaGlzIGlzIHJlcXVpcmVkIHNpbmNl IGxpYnZpcnQgbWlnaHQgaW52YWxpZGF0ZSB0aGUgVkYgTWFjIGJ5IHNldHRpbmcgaXQKdG8gemVy bywgd2hpbGUgc3Bvb2ZjaGVjayBpcyBPTi4KCkZpeGVzOiAxYWIyMDY4YTRjNjYgKCJuZXQvbWx4 NTogSW1wbGVtZW50IHZwb3J0cyBhZG1pbiBzdGF0ZSBiYWNrdXAvcmVzdG9yZSIpClNpZ25lZC1v ZmYtYnk6IEF5YSBMZXZpbiA8YXlhbEBtZWxsYW5veC5jb20+ClJldmlld2VkLWJ5OiBFcmFuIEJl biBFbGlzaGEgPGVyYW5iZUBtZWxsYW5veC5jb20+ClNpZ25lZC1vZmYtYnk6IFNhZWVkIE1haGFt ZWVkIDxzYWVlZG1AbWVsbGFub3guY29tPgotLS0KIC4uLi9uZXQvZXRoZXJuZXQvbWVsbGFub3gv bWx4NS9jb3JlL2Vzd2l0Y2guYyAgfCAxOCArKysrKystLS0tLS0tLS0tLS0KIDEgZmlsZSBjaGFu Z2VkLCA2IGluc2VydGlvbnMoKyksIDEyIGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL2RyaXZl cnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9lc3dpdGNoLmMgYi9kcml2ZXJzL25l dC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvZXN3aXRjaC5jCmluZGV4IGVhN2RlZGMyZDVh ZC4uOThiZWZkMTI0ODZmIDEwMDY0NAotLS0gYS9kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5v eC9tbHg1L2NvcmUvZXN3aXRjaC5jCisrKyBiL2RyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94 L21seDUvY29yZS9lc3dpdGNoLmMKQEAgLTExMzMsMTMgKzExMzMsNiBAQCBzdGF0aWMgaW50IGVz d192cG9ydF9pbmdyZXNzX2NvbmZpZyhzdHJ1Y3QgbWx4NV9lc3dpdGNoICplc3csCiAJaW50IGVy ciA9IDA7CiAJdTggKnNtYWNfdjsKIAotCWlmICh2cG9ydC0+aW5mby5zcG9vZmNoayAmJiAhaXNf dmFsaWRfZXRoZXJfYWRkcih2cG9ydC0+aW5mby5tYWMpKSB7Ci0JCW1seDVfY29yZV93YXJuKGVz dy0+ZGV2LAotCQkJICAgICAgICJ2cG9ydFslZF0gY29uZmlndXJlIGluZ3Jlc3MgcnVsZXMgZmFp bGVkLCBpbGxlZ2FsIG1hYyB3aXRoIHNwb29mY2hrXG4iLAotCQkJICAgICAgIHZwb3J0LT52cG9y dCk7Ci0JCXJldHVybiAtRVBFUk07Ci0JfQotCiAJZXN3X3Zwb3J0X2NsZWFudXBfaW5ncmVzc19y dWxlcyhlc3csIHZwb3J0KTsKIAogCWlmICghdnBvcnQtPmluZm8udmxhbiAmJiAhdnBvcnQtPmlu Zm8ucW9zICYmICF2cG9ydC0+aW5mby5zcG9vZmNoaykgewpAQCAtMTgxMiwxMyArMTgwNSwxMCBA QCBpbnQgbWx4NV9lc3dpdGNoX3NldF92cG9ydF9tYWMoc3RydWN0IG1seDVfZXN3aXRjaCAqZXN3 LAogCW11dGV4X2xvY2soJmVzdy0+c3RhdGVfbG9jayk7CiAJZXZwb3J0ID0gJmVzdy0+dnBvcnRz W3Zwb3J0XTsKIAotCWlmIChldnBvcnQtPmluZm8uc3Bvb2ZjaGsgJiYgIWlzX3ZhbGlkX2V0aGVy X2FkZHIobWFjKSkgeworCWlmIChldnBvcnQtPmluZm8uc3Bvb2ZjaGsgJiYgIWlzX3ZhbGlkX2V0 aGVyX2FkZHIobWFjKSkKIAkJbWx4NV9jb3JlX3dhcm4oZXN3LT5kZXYsCi0JCQkgICAgICAgIk1B QyBpbnZhbGlkYXRpb24gaXMgbm90IGFsbG93ZWQgd2hlbiBzcG9vZmNoayBpcyBvbiwgdnBvcnQo JWQpXG4iLAorCQkJICAgICAgICJTZXQgaW52YWxpZCBNQUMgd2hpbGUgc3Bvb2ZjaGsgaXMgb24s IHZwb3J0KCVkKVxuIiwKIAkJCSAgICAgICB2cG9ydCk7Ci0JCWVyciA9IC1FUEVSTTsKLQkJZ290 byB1bmxvY2s7Ci0JfQogCiAJZXJyID0gbWx4NV9tb2RpZnlfbmljX3Zwb3J0X21hY19hZGRyZXNz KGVzdy0+ZGV2LCB2cG9ydCwgbWFjKTsKIAlpZiAoZXJyKSB7CkBAIC0xOTY0LDYgKzE5NTQsMTAg QEAgaW50IG1seDVfZXN3aXRjaF9zZXRfdnBvcnRfc3Bvb2ZjaGsoc3RydWN0IG1seDVfZXN3aXRj aCAqZXN3LAogCWV2cG9ydCA9ICZlc3ctPnZwb3J0c1t2cG9ydF07CiAJcHNjaGsgPSBldnBvcnQt PmluZm8uc3Bvb2ZjaGs7CiAJZXZwb3J0LT5pbmZvLnNwb29mY2hrID0gc3Bvb2ZjaGs7CisJaWYg KHBzY2hrICYmICFpc192YWxpZF9ldGhlcl9hZGRyKGV2cG9ydC0+aW5mby5tYWMpKQorCQltbHg1 X2NvcmVfd2Fybihlc3ctPmRldiwKKwkJCSAgICAgICAiU3Bvb2ZjaGsgaW4gc2V0IHdoaWxlIE1B QyBpcyBpbnZhbGlkLCB2cG9ydCglZClcbiIsCisJCQkgICAgICAgZXZwb3J0LT52cG9ydCk7CiAJ aWYgKGV2cG9ydC0+ZW5hYmxlZCAmJiBlc3ctPm1vZGUgPT0gU1JJT1ZfTEVHQUNZKQogCQllcnIg PSBlc3dfdnBvcnRfaW5ncmVzc19jb25maWcoZXN3LCBldnBvcnQpOwogCWlmIChlcnIpCi0tIAoy LjIwLjEKCgpGcm9tIDBlNmI4NzE4MDA1NTkzOWY5ZTNkZDJkY2EyZWZmM2I2YjA4ZDgyM2EgTW9u IFNlcCAxNyAwMDowMDowMCAyMDAxCkZyb206IE5pciBEb3RhbiA8bmlyZEBtZWxsYW5veC5jb20+ CkRhdGU6IFN1biwgMjcgSmFuIDIwMTkgMDk6MjY6MjIgKzAyMDAKU3ViamVjdDogW1BBVENIIDIw LzMwXSBpcDZtcjogRml4IG5vdGlmaWVycyBjYWxsIG9uIG1yb3V0ZV9jbGVhbl90YWJsZXMoKQoK WyBVcHN0cmVhbSBjb21taXQgMTQ2ODIwY2MyNDBmNDM4OWNmMzM0ODFjMDU4ZDk0OTNhZWY5NWUy NSBdCgpXaGVuIHRoZSBNQyByb3V0ZSBzb2NrZXQgaXMgY2xvc2VkLCBtcm91dGVfY2xlYW5fdGFi bGVzKCkgaXMgY2FsbGVkIHRvCmNsZWFudXAgZXhpc3Rpbmcgcm91dGVzLiBNaXN0YWtlbmx5IG5v dGlmaWVycyBjYWxsIHdhcyBwdXQgb24gdGhlIGNsZWFudXAKb2YgdGhlIHVucmVzb2x2ZWQgTUMg cm91dGUgZW50cmllcyBjYWNoZS4KSW4gYSBjYXNlIHdoZXJlIHRoZSBNQyBzb2NrZXQgY2xvc2Vz IGJlZm9yZSBhbiB1bnJlc29sdmVkIHJvdXRlIGV4cGlyZXMsCnRoZSBub3RpZmllciBjYWxsIGxl YWRzIHRvIGEgY3Jhc2gsIGNhdXNlZCBieSB0aGUgZHJpdmVyIHRyeWluZyB0bwppbmNyZW1lbnQg YSBub24gaW5pdGlhbGl6ZWQgcmVmY291bnRfdCBvYmplY3QgWzFdIGFuZCB0aGVuIHdoZW4gaGFu ZGxpbmcKaXMgZG9uZSwgdG8gZGVjcmVtZW50IGl0IFsyXS4gVGhpcyB3YXMgZGV0ZWN0ZWQgYnkg YSB0ZXN0IHJlY2VudGx5IGFkZGVkIGluCmNvbW1pdCA2ZDRlZmFkYTNiODIgKCJzZWxmdGVzdHM6 IGZvcndhcmRpbmc6IEFkZCBtdWx0aWNhc3Qgcm91dGluZyB0ZXN0IikuCgpGaXggdGhhdCBieSBw dXR0aW5nIG5vdGlmaWVycyBjYWxsIG9uIHRoZSByZXNvbHZlZCBlbnRyaWVzIHRyYXZlcnNhbCwK aW5zdGVhZCBvZiBvbiB0aGUgdW5yZXNvbHZlZCBlbnRyaWVzIHRyYXZlcnNhbC4KClsxXQoKWyAg MjQ1Ljc0ODk2N10gcmVmY291bnRfdDogaW5jcmVtZW50IG9uIDA7IHVzZS1hZnRlci1mcmVlLgpb ICAyNDUuNzU0ODI5XSBXQVJOSU5HOiBDUFU6IDMgUElEOiAzMjIzIGF0IGxpYi9yZWZjb3VudC5j OjE1MyByZWZjb3VudF9pbmNfY2hlY2tlZCsweDJiLzB4MzAKLi4uClsgIDI0NS44MDIzNTddIEhh cmR3YXJlIG5hbWU6IE1lbGxhbm94IFRlY2hub2xvZ2llcyBMdGQuIE1TTjI3NDAvU0EwMDEyMzcs IEJJT1MgNS42LjUgMDYvMDcvMjAxNgpbICAyNDUuODExODczXSBSSVA6IDAwMTA6cmVmY291bnRf aW5jX2NoZWNrZWQrMHgyYi8weDMwCi4uLgpbICAyNDUuOTA3NDg3XSBDYWxsIFRyYWNlOgpbICAy NDUuOTEwMjMxXSAgbWx4c3dfc3Bfcm91dGVyX2ZpYl9ldmVudC5jb2xkLjE4MSsweDQyLzB4NDcg W21seHN3X3NwZWN0cnVtXQpbICAyNDUuOTE3OTEzXSAgbm90aWZpZXJfY2FsbF9jaGFpbisweDQ1 LzB4NwpbICAyNDUuOTIyNDg0XSAgYXRvbWljX25vdGlmaWVyX2NhbGxfY2hhaW4rMHgxNS8weDIw ClsgIDI0NS45Mjc3MjldICBjYWxsX2ZpYl9ub3RpZmllcnMrMHgxNS8weDMwClsgIDI0NS45MzIy MDVdICBtcm91dGVfY2xlYW5fdGFibGVzKzB4MzcyLzB4M2YKWyAgMjQ1LjkzNjk3MV0gIGlwNm1y X3NrX2RvbmUrMHhiMS8weGMwClsgIDI0NS45NDA5NjBdICBpcDZfbXJvdXRlX3NldHNvY2tvcHQr MHgxZGEvMHg1ZjAKLi4uCgpbMl0KClsgIDI0Ni4xMjg0ODddIHJlZmNvdW50X3Q6IHVuZGVyZmxv dzsgdXNlLWFmdGVyLWZyZWUuClsgIDI0Ni4xMzM4NTldIFdBUk5JTkc6IENQVTogMCBQSUQ6IDcg YXQgbGliL3JlZmNvdW50LmM6MTg3IHJlZmNvdW50X3N1Yl9hbmRfdGVzdF9jaGVja2VkKzB4NGMv MHg2MApbICAyNDYuMTgzNTIxXSBIYXJkd2FyZSBuYW1lOiBNZWxsYW5veCBUZWNobm9sb2dpZXMg THRkLiBNU04yNzQwL1NBMDAxMjM3LCBCSU9TIDUuNi41IDA2LzA3LzIwMTYKLi4uClsgIDI0Ni4x OTMwNjJdIFdvcmtxdWV1ZTogbWx4c3dfY29yZV9vcmRlcmVkIG1seHN3X3NwX3JvdXRlcl9maWJt cl9ldmVudF93b3JrIFttbHhzd19zcGVjdHJ1bV0KWyAgMjQ2LjIwMjM5NF0gUklQOiAwMDEwOnJl ZmNvdW50X3N1Yl9hbmRfdGVzdF9jaGVja2VkKzB4NGMvMHg2MAouLi4KWyAgMjQ2LjI5ODg4OV0g Q2FsbCBUcmFjZToKWyAgMjQ2LjMwMTYxN10gIHJlZmNvdW50X2RlY19hbmRfdGVzdF9jaGVja2Vk KzB4MTEvMHgyMApbICAyNDYuMzA3MTcwXSAgbWx4c3dfc3Bfcm91dGVyX2ZpYm1yX2V2ZW50X3dv cmsuY29sZC4xOTYrMHg0Ny8weDc4IFttbHhzd19zcGVjdHJ1bV0KWyAgMjQ2LjMxNTUzMV0gIHBy b2Nlc3Nfb25lX3dvcmsrMHgxZmEvMHgzZjAKWyAgMjQ2LjMyMDAwNV0gIHdvcmtlcl90aHJlYWQr MHgyZi8weDNlMApbICAyNDYuMzI0MDgzXSAga3RocmVhZCsweDExOC8weDEzMApbICAyNDYuMzI3 NjgzXSAgPyB3cV91cGRhdGVfdW5ib3VuZF9udW1hKzB4MWIwLzB4MWIwClsgIDI0Ni4zMzI5MjZd ICA/IGt0aHJlYWRfcGFyaysweDgwLzB4ODAKWyAgMjQ2LjMzNzAxM10gIHJldF9mcm9tX2Zvcmsr MHgxZi8weDMwCgpGaXhlczogMDg4YWEzZWVjMmNlICgiaXA2bXI6IFN1cHBvcnQgZmliIG5vdGlm aWNhdGlvbnMiKQpTaWduZWQtb2ZmLWJ5OiBOaXIgRG90YW4gPG5pcmRAbWVsbGFub3guY29tPgpS ZXZpZXdlZC1ieTogSWRvIFNjaGltbWVsIDxpZG9zY2hAbWVsbGFub3guY29tPgpTaWduZWQtb2Zm LWJ5OiBEYXZpZCBTLiBNaWxsZXIgPGRhdmVtQGRhdmVtbG9mdC5uZXQ+Ci0tLQogbmV0L2lwdjYv aXA2bXIuYyB8IDcgKysrLS0tLQogMSBmaWxlIGNoYW5nZWQsIDMgaW5zZXJ0aW9ucygrKSwgNCBk ZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9uZXQvaXB2Ni9pcDZtci5jIGIvbmV0L2lwdjYvaXA2 bXIuYwppbmRleCAzMzFlNmI2ZGQyNTIuLjEwYWFmZWEzYWYwZiAxMDA2NDQKLS0tIGEvbmV0L2lw djYvaXA2bXIuYworKysgYi9uZXQvaXB2Ni9pcDZtci5jCkBAIC0xNTA2LDYgKzE1MDYsOSBAQCBz dGF0aWMgdm9pZCBtcm91dGVfY2xlYW5fdGFibGVzKHN0cnVjdCBtcl90YWJsZSAqbXJ0LCBib29s IGFsbCkKIAkJCWNvbnRpbnVlOwogCQlyaGx0YWJsZV9yZW1vdmUoJm1ydC0+bWZjX2hhc2gsICZj LT5tbm9kZSwgaXA2bXJfcmh0X3BhcmFtcyk7CiAJCWxpc3RfZGVsX3JjdSgmYy0+bGlzdCk7CisJ CWNhbGxfaXA2bXJfbWZjX2VudHJ5X25vdGlmaWVycyhyZWFkX3BuZXQoJm1ydC0+bmV0KSwKKwkJ CQkJICAgICAgIEZJQl9FVkVOVF9FTlRSWV9ERUwsCisJCQkJCSAgICAgICAoc3RydWN0IG1mYzZf Y2FjaGUgKiljLCBtcnQtPmlkKTsKIAkJbXI2X25ldGxpbmtfZXZlbnQobXJ0LCAoc3RydWN0IG1m YzZfY2FjaGUgKiljLCBSVE1fREVMUk9VVEUpOwogCQltcl9jYWNoZV9wdXQoYyk7CiAJfQpAQCAt MTUxNCwxMCArMTUxNyw2IEBAIHN0YXRpYyB2b2lkIG1yb3V0ZV9jbGVhbl90YWJsZXMoc3RydWN0 IG1yX3RhYmxlICptcnQsIGJvb2wgYWxsKQogCQlzcGluX2xvY2tfYmgoJm1mY191bnJlc19sb2Nr KTsKIAkJbGlzdF9mb3JfZWFjaF9lbnRyeV9zYWZlKGMsIHRtcCwgJm1ydC0+bWZjX3VucmVzX3F1 ZXVlLCBsaXN0KSB7CiAJCQlsaXN0X2RlbCgmYy0+bGlzdCk7Ci0JCQljYWxsX2lwNm1yX21mY19l bnRyeV9ub3RpZmllcnMocmVhZF9wbmV0KCZtcnQtPm5ldCksCi0JCQkJCQkgICAgICAgRklCX0VW RU5UX0VOVFJZX0RFTCwKLQkJCQkJCSAgICAgICAoc3RydWN0IG1mYzZfY2FjaGUgKiljLAotCQkJ CQkJICAgICAgIG1ydC0+aWQpOwogCQkJbXI2X25ldGxpbmtfZXZlbnQobXJ0LCAoc3RydWN0IG1m YzZfY2FjaGUgKiljLAogCQkJCQkgIFJUTV9ERUxST1VURSk7CiAJCQlpcDZtcl9kZXN0cm95X3Vu cmVzKG1ydCwgKHN0cnVjdCBtZmM2X2NhY2hlICopYyk7Ci0tIAoyLjIwLjEKCgpGcm9tIGUzMDI1 NDcxMWMyNTk0MTAzODJlZjNmNzZmYTQ2ZDU3OGU5OTc3MzIgTW9uIFNlcCAxNyAwMDowMDowMCAy MDAxCkZyb206IEJvZG9uZyBXYW5nIDxib2RvbmdAbWVsbGFub3guY29tPgpEYXRlOiBTdW4sIDEz IEphbiAyMDE5IDIyOjQ3OjI2IC0wNjAwClN1YmplY3Q6IFtQQVRDSCAyMS8zMF0gUmV2ZXJ0ICJu ZXQvbWx4NWU6IEUtU3dpdGNoLCBJbml0aWFsaXplIGVzd2l0Y2ggb25seSBpZgogZXN3aXRjaCBt YW5hZ2VyIgoKWyBVcHN0cmVhbSBjb21taXQgNGUwNDZkZTBmNTBlMDRhY2Q0OGViMzczZDZhOTA2 MWRkZjAxNGUwYyBdCgpUaGlzIHJldmVydHMgY29tbWl0IDVmNTk5MWYzNmRjZTFlNjlkZDhiZDc0 OTU3NjNlZWMyZTI4ZjA4ZTcuCgpXaXRoIHRoZSBvcmlnaW5hbCBjb21taXQsIGVzd2l0Y2ggaW5z dGFuY2Ugd2lsbCBub3QgYmUgaW5pdGlhbGl6ZWQgZm9yCmEgZnVuY3Rpb24gd2hpY2ggaXMgdnBv cnQgZ3JvdXAgbWFuYWdlciBidXQgbm90IGVzd2l0Y2ggbWFuYWdlciBzdWNoIGFzCmhvc3QgUEYg b24gU21hcnROSUMgKEJsdWVGaWVsZCkgY2FyZC4gVGhpcyB3aWxsIHJlc3VsdCBpbiBhIGtlcm5l bCBjcmFzaAp3aGVuIHN1Y2ggYSB2cG9ydCBncm91cCBtYW5hZ2VyIGlzIHRyeWluZyB0byBhY2Nl c3MgdnBvcnRzIGluIGl0cyBncm91cC4KRS5nLCBQRiB2cG9ydCBtYW5hZ2VyIChub3QgZXN3aXRj aCBtYW5hZ2VyKSB0cmllcyB0byBjb25maWd1cmUgdGhlIE1BQwpvZiBpdHMgVkYgdnBvcnQsIGEg a2VybmVsIHRyYWNlIHdpbGwgaGFwcGVuIHNpbWlsYXIgYXMgYmVsbG93OgoKIEJVRzogdW5hYmxl IHRvIGhhbmRsZSBrZXJuZWwgTlVMTCBwb2ludGVyIGRlcmVmZXJlbmNlIGF0IDAwMDAwMDAwMDAw MDAwMDAKIC4uLgogUklQOiAwMDEwOm1seDVfZXN3aXRjaF9nZXRfdnBvcnRfY29uZmlnKzB4Yy8w eDE4MCBbbWx4NV9jb3JlXQogLi4uCgpGaXhlczogNWY1OTkxZjM2ZGNlICgibmV0L21seDVlOiBF LVN3aXRjaCwgSW5pdGlhbGl6ZSBlc3dpdGNoIG9ubHkgaWYgZXN3aXRjaCBtYW5hZ2VyIikKU2ln bmVkLW9mZi1ieTogQm9kb25nIFdhbmcgPGJvZG9uZ0BtZWxsYW5veC5jb20+ClJlcG9ydGVkLWJ5 OiBZdXZhbCBBdm5lcnkgPHl1dmFsYXZAbWVsbGFub3guY29tPgpSZXZpZXdlZC1ieTogRGFuaWVs IEp1cmdlbnMgPGRhbmllbGpAbWVsbGFub3guY29tPgpSZXZpZXdlZC1ieTogT3IgR2VybGl0eiA8 b2dlcmxpdHpAbWVsbGFub3guY29tPgpTaWduZWQtb2ZmLWJ5OiBTYWVlZCBNYWhhbWVlZCA8c2Fl ZWRtQG1lbGxhbm94LmNvbT4KLS0tCiBkcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1 L2NvcmUvZXN3aXRjaC5jIHwgNCArKy0tCiAxIGZpbGUgY2hhbmdlZCwgMiBpbnNlcnRpb25zKCsp LCAyIGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxh bm94L21seDUvY29yZS9lc3dpdGNoLmMgYi9kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9t bHg1L2NvcmUvZXN3aXRjaC5jCmluZGV4IDk4YmVmZDEyNDg2Zi4uZDY3MDY0NzVhM2JhIDEwMDY0 NAotLS0gYS9kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvZXN3aXRjaC5j CisrKyBiL2RyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9lc3dpdGNoLmMK QEAgLTE2ODksNyArMTY4OSw3IEBAIGludCBtbHg1X2Vzd2l0Y2hfaW5pdChzdHJ1Y3QgbWx4NV9j b3JlX2RldiAqZGV2KQogCWludCB2cG9ydF9udW07CiAJaW50IGVycjsKIAotCWlmICghTUxYNV9F U1dJVENIX01BTkFHRVIoZGV2KSkKKwlpZiAoIU1MWDVfVlBPUlRfTUFOQUdFUihkZXYpKQogCQly ZXR1cm4gMDsKIAogCWVzd19pbmZvKGRldiwKQEAgLTE3NTgsNyArMTc1OCw3IEBAIGludCBtbHg1 X2Vzd2l0Y2hfaW5pdChzdHJ1Y3QgbWx4NV9jb3JlX2RldiAqZGV2KQogCiB2b2lkIG1seDVfZXN3 aXRjaF9jbGVhbnVwKHN0cnVjdCBtbHg1X2Vzd2l0Y2ggKmVzdykKIHsKLQlpZiAoIWVzdyB8fCAh TUxYNV9FU1dJVENIX01BTkFHRVIoZXN3LT5kZXYpKQorCWlmICghZXN3IHx8ICFNTFg1X1ZQT1JU X01BTkFHRVIoZXN3LT5kZXYpKQogCQlyZXR1cm47CiAKIAllc3dfaW5mbyhlc3ctPmRldiwgImNs ZWFudXBcbiIpOwotLSAKMi4yMC4xCgoKRnJvbSBiZGEyNDQ2MzhjNGY0NTIxOTNhYzJkNzY1ZDI1 ZDRlNTNmODJjNzc0IE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBYaW4gTG9uZyA8bHVj aWVuLnhpbkBnbWFpbC5jb20+CkRhdGU6IFR1ZSwgMjIgSmFuIDIwMTkgMDI6NDI6MDkgKzA4MDAK U3ViamVjdDogW1BBVENIIDIyLzMwXSBzY3RwOiBzZXQgY2h1bmsgdHJhbnNwb3J0IGNvcnJlY3Rs eSB3aGVuIGl0J3MgYSBuZXcKIGFzb2MKClsgVXBzdHJlYW0gY29tbWl0IDRmZjQwYjg2MjYyYjcz NTUzZWU0N2NjMzc4NGNlOGJhMGYyMjBiZDggXQoKSW4gdGhlIHBhdGhzOgoKICBzY3RwX3NmX2Rv X3VuZXhwZWN0ZWRfaW5pdCgpIC0+CiAgICBzY3RwX21ha2VfaW5pdF9hY2soKQogIHNjdHBfc2Zf ZG9fZHVwY29va19hL2IoKSgpIC0+CiAgICBzY3RwX3NmX2RvXzVfMURfY2UoKQoKVGhlIG5ldyBj aHVuayAncmV0dmFsJyB0cmFuc3BvcnQgaXMgc2V0IGZyb20gdGhlIGluY29taW5nIGNodW5rICdj aHVuaycKdHJhbnNwb3J0LiBIb3dldmVyLCAncmV0dmFsJyB0cmFuc3BvcnQgYmVsb25nIHRvIHRo ZSBuZXcgYXNvYywgd2hpY2gKaXMgYSBkaWZmZXJlbnQgb25lIGZyb20gJ2NodW5rJyB0cmFuc3Bv cnQncyBhc29jLgoKSXQgd2lsbCBjYXVzZSB0aGF0IHRoZSAncmV0dmFsJyBjaHVuayBnZXRzIHNl dCB3aXRoIGEgd3JvbmcgdHJhbnNwb3J0LgpMYXRlciB3aGVuIHNlbmRpbmcgaXQgYW5kIGJlY2F1 c2Ugb2YgQ29tbWl0IGI5ZmQ2ODM5ODJjOSAoInNjdHA6IGFkZApzY3RwX3BhY2tldF9zaW5nbGV0 b24iKSwgc2N0cF9wYWNrZXRfc2luZ2xldG9uKCkgd2lsbCBzZXQgc29tZSBmaWVsZHMsCmxpa2Ug dnRhZyB0byAncmV0dmFsJyBjaHVuayBmcm9tIHRoYXQgd3JvbmcgdHJhbnNwb3J0J3MgYXNvYy4K ClRoaXMgcGF0Y2ggaXMgdG8gZml4IGl0IGJ5IHNldHRpbmcgJ3JldHZhbCcgdHJhbnNwb3J0IGNv cnJlY3RseSB3aGljaApiZWxvbmdzIHRvIHRoZSByaWdodCBhc29jIGluIHNjdHBfbWFrZV9pbml0 X2FjaygpIGFuZApzY3RwX3NmX2RvXzVfMURfY2UoKS4KCkZpeGVzOiBiOWZkNjgzOTgyYzkgKCJz Y3RwOiBhZGQgc2N0cF9wYWNrZXRfc2luZ2xldG9uIikKUmVwb3J0ZWQtYnk6IFlpbmcgWHUgPHlp bnh1QHJlZGhhdC5jb20+ClNpZ25lZC1vZmYtYnk6IFhpbiBMb25nIDxsdWNpZW4ueGluQGdtYWls LmNvbT4KU2lnbmVkLW9mZi1ieTogRGF2aWQgUy4gTWlsbGVyIDxkYXZlbUBkYXZlbWxvZnQubmV0 PgotLS0KIG5ldC9zY3RwL3NtX21ha2VfY2h1bmsuYyB8IDExICsrKysrKysrLS0tCiAxIGZpbGUg Y2hhbmdlZCwgOCBpbnNlcnRpb25zKCspLCAzIGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL25l dC9zY3RwL3NtX21ha2VfY2h1bmsuYyBiL25ldC9zY3RwL3NtX21ha2VfY2h1bmsuYwppbmRleCBm NGFjNmM1OTJlMTMuLmQwNWM1NzY2NGUzNiAxMDA2NDQKLS0tIGEvbmV0L3NjdHAvc21fbWFrZV9j aHVuay5jCisrKyBiL25ldC9zY3RwL3NtX21ha2VfY2h1bmsuYwpAQCAtNDk1LDcgKzQ5NSwxMCBA QCBzdHJ1Y3Qgc2N0cF9jaHVuayAqc2N0cF9tYWtlX2luaXRfYWNrKGNvbnN0IHN0cnVjdCBzY3Rw X2Fzc29jaWF0aW9uICphc29jLAogCSAqCiAJICogW0lOSVQgQUNLIGJhY2sgdG8gd2hlcmUgdGhl IElOSVQgY2FtZSBmcm9tLl0KIAkgKi8KLQlyZXR2YWwtPnRyYW5zcG9ydCA9IGNodW5rLT50cmFu c3BvcnQ7CisJaWYgKGNodW5rLT50cmFuc3BvcnQpCisJCXJldHZhbC0+dHJhbnNwb3J0ID0KKwkJ CXNjdHBfYXNzb2NfbG9va3VwX3BhZGRyKGFzb2MsCisJCQkJCQkmY2h1bmstPnRyYW5zcG9ydC0+ aXBhZGRyKTsKIAogCXJldHZhbC0+c3ViaC5pbml0X2hkciA9CiAJCXNjdHBfYWRkdG9fY2h1bmso cmV0dmFsLCBzaXplb2YoaW5pdGFjayksICZpbml0YWNrKTsKQEAgLTY0Miw4ICs2NDUsMTAgQEAg c3RydWN0IHNjdHBfY2h1bmsgKnNjdHBfbWFrZV9jb29raWVfYWNrKGNvbnN0IHN0cnVjdCBzY3Rw X2Fzc29jaWF0aW9uICphc29jLAogCSAqCiAJICogW0NPT0tJRSBBQ0sgYmFjayB0byB3aGVyZSB0 aGUgQ09PS0lFIEVDSE8gY2FtZSBmcm9tLl0KIAkgKi8KLQlpZiAocmV0dmFsICYmIGNodW5rKQot CQlyZXR2YWwtPnRyYW5zcG9ydCA9IGNodW5rLT50cmFuc3BvcnQ7CisJaWYgKHJldHZhbCAmJiBj aHVuayAmJiBjaHVuay0+dHJhbnNwb3J0KQorCQlyZXR2YWwtPnRyYW5zcG9ydCA9CisJCQlzY3Rw X2Fzc29jX2xvb2t1cF9wYWRkcihhc29jLAorCQkJCQkJJmNodW5rLT50cmFuc3BvcnQtPmlwYWRk cik7CiAKIAlyZXR1cm4gcmV0dmFsOwogfQotLSAKMi4yMC4xCgoKRnJvbSBmOGQ2YWIyODUxZDQy MTdiODJjZGRkYTI4MzdjZTQ3MmY2Y2I5MDc4IE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9t OiBYaW4gTG9uZyA8bHVjaWVuLnhpbkBnbWFpbC5jb20+CkRhdGU6IFR1ZSwgMjIgSmFuIDIwMTkg MDI6NDI6NDEgKzA4MDAKU3ViamVjdDogW1BBVENIIDIzLzMwXSBzY3RwOiBzZXQgZmxvdyBzcG9y dCBmcm9tIHNhZGRyIG9ubHkgd2hlbiBpdCdzIDAKClsgVXBzdHJlYW0gY29tbWl0IGVjZjkzOGZl N2QwMDg4MDc3ZWUxMjgwNDE5YTJiM2M1NDI5YjQ3YzggXQoKTm93IHNjdHBfdHJhbnNwb3J0X3Bt dHUoKSBwYXNzZXMgdHJhbnNwb3J0LT5zYWRkciBpbnRvIC5nZXRfZHN0KCkgdG8gc2V0CmZsb3cg c3BvcnQgZnJvbSAnc2FkZHInLiBIb3dldmVyLCB0cmFuc3BvcnQtPnNhZGRyIGlzIHNldCBvbmx5 IHdoZW4KdHJhbnNwb3J0LT5kc3QgZXhpc3RzIGluIHNjdHBfdHJhbnNwb3J0X3JvdXRlKCkuCgpJ ZiBzY3RwX3RyYW5zcG9ydF9wbXR1KCkgaXMgY2FsbGVkIHdpdGhvdXQgdHJhbnNwb3J0LT5zYWRk ciBzZXQsIGxpa2UKd2hlbiB0cmFuc3BvcnQtPmRzdCBkb2Vzbid0IGV4aXN0cywgdGhlIGZsb3cg c3BvcnQgd2lsbCBiZSBzZXQgdG8gMApmcm9tIHRyYW5zcG9ydC0+c2FkZHIsIHdoaWNoIHdpbGwg Y2F1c2UgYSB3cm9uZyByb3V0ZSB0byBiZSBnb3QuCgpDb21taXQgNmU5MWI1NzhiZjNmICgic2N0 cDogcmUtdXNlIHNjdHBfdHJhbnNwb3J0X3BtdHUgaW4Kc2N0cF90cmFuc3BvcnRfcm91dGUiKSBt YWRlIHRoZSBpc3N1ZSBiZSB0cmlnZ2VyZWQgbW9yZSBlYXNpbHkKc2luY2Ugc2N0cF90cmFuc3Bv cnRfcG10dSgpIHdvdWxkIGJlIGNhbGxlZCBpbiBzY3RwX3RyYW5zcG9ydF9yb3V0ZSgpCmFmdGVy IHRoYXQuCgpJbiBnZXJuZXJhbCwgZmw0LT5mbDRfc3BvcnQgc2hvdWxkIGFsd2F5cyBiZSBzZXQg dG8KaHRvbnMoYXNvYy0+YmFzZS5iaW5kX2FkZHIucG9ydCksIHVubGVzcyB0cmFuc3BvcnQtPmFz b2MgZG9lc24ndCBleGlzdAppbiBzY3RwX3Y0LzZfZ2V0X2RzdCgpLCB3aGljaCBpcyB0aGUgY2Fz ZToKCiAgc2N0cF9vb3RiX3BrdF9uZXcoKSAtPgogICAgc2N0cF90cmFuc3BvcnRfcm91dGUoKQoK Rm9yIHRoYXQsIHdlIGNhbiBzaW1wbHkgaGFuZGxlIGl0IGJ5IHNldHRpbmcgZmxvdyBzcG9ydCBm cm9tIHNhZGRyIG9ubHkKd2hlbiBpdCdzIDAgaW4gc2N0cF92NC82X2dldF9kc3QoKS4KCkZpeGVz OiA2ZTkxYjU3OGJmM2YgKCJzY3RwOiByZS11c2Ugc2N0cF90cmFuc3BvcnRfcG10dSBpbiBzY3Rw X3RyYW5zcG9ydF9yb3V0ZSIpClJlcG9ydGVkLWJ5OiBZaW5nIFh1IDx5aW54dUByZWRoYXQuY29t PgpTaWduZWQtb2ZmLWJ5OiBYaW4gTG9uZyA8bHVjaWVuLnhpbkBnbWFpbC5jb20+ClNpZ25lZC1v ZmYtYnk6IERhdmlkIFMuIE1pbGxlciA8ZGF2ZW1AZGF2ZW1sb2Z0Lm5ldD4KLS0tCiBuZXQvc2N0 cC9pcHY2LmMgICAgIHwgMyArKy0KIG5ldC9zY3RwL3Byb3RvY29sLmMgfCAzICsrLQogMiBmaWxl cyBjaGFuZ2VkLCA0IGluc2VydGlvbnMoKyksIDIgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEv bmV0L3NjdHAvaXB2Ni5jIGIvbmV0L3NjdHAvaXB2Ni5jCmluZGV4IDBiYWUwN2U5YzllNy4uNGZl ZGU1NWI5MDEwIDEwMDY0NAotLS0gYS9uZXQvc2N0cC9pcHY2LmMKKysrIGIvbmV0L3NjdHAvaXB2 Ni5jCkBAIC0yNzcsNyArMjc3LDggQEAgc3RhdGljIHZvaWQgc2N0cF92Nl9nZXRfZHN0KHN0cnVj dCBzY3RwX3RyYW5zcG9ydCAqdCwgdW5pb24gc2N0cF9hZGRyICpzYWRkciwKIAogCWlmIChzYWRk cikgewogCQlmbDYtPnNhZGRyID0gc2FkZHItPnY2LnNpbjZfYWRkcjsKLQkJZmw2LT5mbDZfc3Bv cnQgPSBzYWRkci0+djYuc2luNl9wb3J0OworCQlpZiAoIWZsNi0+Zmw2X3Nwb3J0KQorCQkJZmw2 LT5mbDZfc3BvcnQgPSBzYWRkci0+djYuc2luNl9wb3J0OwogCiAJCXByX2RlYnVnKCJzcmM9JXBJ NiAtICIsICZmbDYtPnNhZGRyKTsKIAl9CmRpZmYgLS1naXQgYS9uZXQvc2N0cC9wcm90b2NvbC5j IGIvbmV0L3NjdHAvcHJvdG9jb2wuYwppbmRleCBkNDM1MjExMWU2OWQuLjFjOWYwNzllOGE1MCAx MDA2NDQKLS0tIGEvbmV0L3NjdHAvcHJvdG9jb2wuYworKysgYi9uZXQvc2N0cC9wcm90b2NvbC5j CkBAIC00NDAsNyArNDQwLDggQEAgc3RhdGljIHZvaWQgc2N0cF92NF9nZXRfZHN0KHN0cnVjdCBz Y3RwX3RyYW5zcG9ydCAqdCwgdW5pb24gc2N0cF9hZGRyICpzYWRkciwKIAl9CiAJaWYgKHNhZGRy KSB7CiAJCWZsNC0+c2FkZHIgPSBzYWRkci0+djQuc2luX2FkZHIuc19hZGRyOwotCQlmbDQtPmZs NF9zcG9ydCA9IHNhZGRyLT52NC5zaW5fcG9ydDsKKwkJaWYgKCFmbDQtPmZsNF9zcG9ydCkKKwkJ CWZsNC0+Zmw0X3Nwb3J0ID0gc2FkZHItPnY0LnNpbl9wb3J0OwogCX0KIAogCXByX2RlYnVnKCIl czogZHN0OiVwSTQsIHNyYzolcEk0IC0gIiwgX19mdW5jX18sICZmbDQtPmRhZGRyLAotLSAKMi4y MC4xCgoKRnJvbSBiODg1OWI5ZTM4YTVmYmM2NjU3Y2E4YWQ4OTc1NmZlNTM5OTBiNzMwIE1vbiBT ZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBUb3NoaWFraSBNYWtpdGEgPG1ha2l0YS50b3NoaWFr aUBsYWIubnR0LmNvLmpwPgpEYXRlOiBUdWUsIDI5IEphbiAyMDE5IDA5OjQ1OjUzICswOTAwClN1 YmplY3Q6IFtQQVRDSCAyNC8zMF0gdmlydGlvX25ldDogRG9uJ3QgZW5hYmxlIE5BUEkgd2hlbiBp bnRlcmZhY2UgaXMgZG93bgoKWyBVcHN0cmVhbSBjb21taXQgOGJlNGQ5YTQ5MmY4OGI5NmQ0ZDNh MDZjNmNiZWRiYzQwY2ExNGM4MyBdCgpDb21taXQgNGUwOWZmNTM2Mjg0ICgidmlydGlvLW5ldDog ZGlzYWJsZSBOQVBJIG9ubHkgd2hlbiBlbmFibGVkIGR1cmluZwpYRFAgc2V0IikgdHJpZWQgdG8g Zml4IGluYXBwcm9wcmlhdGUgTkFQSSBlbmFibGluZy9kaXNhYmxpbmcgd2hlbgohbmV0aWZfcnVu bmluZygpLCBidXQgd2FzIG5vdCBjb21wbGV0ZS4KCk9uIGVycm9yIHBhdGggdmlydGlvX25ldCBj b3VsZCBlbmFibGUgTkFQSSBldmVuIHdoZW4gIW5ldGlmX3J1bm5pbmcoKS4KVGhpcyBjYW4gY2F1 c2UgZW5hYmxpbmcgTkFQSSB0d2ljZSBvbiB2aXJ0bmV0X29wZW4oKSwgd2hpY2ggd291bGQKdHJp Z2dlciBCVUdfT04oKSBpbiBuYXBpX2VuYWJsZSgpLgoKRml4ZXM6IDQ5NDFkNDcyYmY5NWIgKCJ2 aXJ0aW8tbmV0OiBkbyBub3QgcmVzZXQgZHVyaW5nIFhEUCBzZXQiKQpTaWduZWQtb2ZmLWJ5OiBU b3NoaWFraSBNYWtpdGEgPG1ha2l0YS50b3NoaWFraUBsYWIubnR0LmNvLmpwPgpBY2tlZC1ieTog SmFzb24gV2FuZyA8amFzb3dhbmdAcmVkaGF0LmNvbT4KQWNrZWQtYnk6IE1pY2hhZWwgUy4gVHNp cmtpbiA8bXN0QHJlZGhhdC5jb20+ClNpZ25lZC1vZmYtYnk6IERhdmlkIFMuIE1pbGxlciA8ZGF2 ZW1AZGF2ZW1sb2Z0Lm5ldD4KLS0tCiBkcml2ZXJzL25ldC92aXJ0aW9fbmV0LmMgfCA2ICsrKyst LQogMSBmaWxlIGNoYW5nZWQsIDQgaW5zZXJ0aW9ucygrKSwgMiBkZWxldGlvbnMoLSkKCmRpZmYg LS1naXQgYS9kcml2ZXJzL25ldC92aXJ0aW9fbmV0LmMgYi9kcml2ZXJzL25ldC92aXJ0aW9fbmV0 LmMKaW5kZXggYWQxNGZiZmExODY0Li44ZGU3YjZmYmI1YzMgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMv bmV0L3ZpcnRpb19uZXQuYworKysgYi9kcml2ZXJzL25ldC92aXJ0aW9fbmV0LmMKQEAgLTIzODAs OCArMjM4MCwxMCBAQCBzdGF0aWMgaW50IHZpcnRuZXRfeGRwX3NldChzdHJ1Y3QgbmV0X2Rldmlj ZSAqZGV2LCBzdHJ1Y3QgYnBmX3Byb2cgKnByb2csCiAJcmV0dXJuIDA7CiAKIGVycjoKLQlmb3Ig KGkgPSAwOyBpIDwgdmktPm1heF9xdWV1ZV9wYWlyczsgaSsrKQotCQl2aXJ0bmV0X25hcGlfZW5h YmxlKHZpLT5ycVtpXS52cSwgJnZpLT5ycVtpXS5uYXBpKTsKKwlpZiAobmV0aWZfcnVubmluZyhk ZXYpKSB7CisJCWZvciAoaSA9IDA7IGkgPCB2aS0+bWF4X3F1ZXVlX3BhaXJzOyBpKyspCisJCQl2 aXJ0bmV0X25hcGlfZW5hYmxlKHZpLT5ycVtpXS52cSwgJnZpLT5ycVtpXS5uYXBpKTsKKwl9CiAJ aWYgKHByb2cpCiAJCWJwZl9wcm9nX3N1Yihwcm9nLCB2aS0+bWF4X3F1ZXVlX3BhaXJzIC0gMSk7 CiAJcmV0dXJuIGVycjsKLS0gCjIuMjAuMQoKCkZyb20gOTU5ODE3YzcxODFkNzJiMThiZjkzYzdj ZmZiMDg1MWU3NzUyNDVmNiBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJvbTogVG9zaGlha2kg TWFraXRhIDxtYWtpdGEudG9zaGlha2lAbGFiLm50dC5jby5qcD4KRGF0ZTogVHVlLCAyOSBKYW4g MjAxOSAwOTo0NTo1NCArMDkwMApTdWJqZWN0OiBbUEFUQ0ggMjUvMzBdIHZpcnRpb19uZXQ6IERv bid0IGNhbGwgZnJlZV9vbGRfeG1pdF9za2JzIGZvcgogeGRwX2ZyYW1lcwoKWyBVcHN0cmVhbSBj b21taXQgNTM0ZGE1ZTg1NjMzNGZiNTRjYjAyNzJhOWZiM2FmZWMyOGVhM2FlZCBdCgpXaGVuIG5h cGlfdHggaXMgZW5hYmxlZCwgdmlydG5ldF9wb2xsX2NsZWFudHgoKSBjYWxsZWQKZnJlZV9vbGRf eG1pdF9za2JzKCkgZXZlbiBmb3IgeGRwIHNlbmQgcXVldWUuClRoaXMgaXMgYm9ndXMgc2luY2Ug dGhlIHF1ZXVlIGhhcyB4ZHBfZnJhbWVzLCBub3Qgc2tfYnVmZnMsIHRodXMgbWFuZ2xlZApkZXZp Y2UgdHggYnl0ZXMgY291bnRlcnMgYmVjYXVzZSBza2ItPmxlbiBpcyBtZWFuaW5nbGVzcyB2YWx1 ZSwgYW5kIGV2ZW4KdHJpZ2dlcmVkIG9vcHMgZHVlIHRvIGdlbmVyYWwgcHJvdGVjdGlvbiBmYXVs dCBvbiBmcmVlaW5nIHRoZW0uCgpTaW5jZSB4ZHAgc2VuZCBxdWV1ZXMgZG8gbm90IGFxdWlyZSBs b2Nrcywgb2xkIHhkcF9mcmFtZXMgc2hvdWxkIGJlCmZyZWVkIG9ubHkgaW4gdmlydG5ldF94ZHBf eG1pdCgpLCBzbyBqdXN0IHNraXAgZnJlZV9vbGRfeG1pdF9za2JzKCkgZm9yCnhkcCBzZW5kIHF1 ZXVlcy4KClNpbWlsYXJseSB2aXJ0bmV0X3BvbGxfdHgoKSBjYWxsZWQgZnJlZV9vbGRfeG1pdF9z a2JzKCkuIFRoaXMgTkFQSQpoYW5kbGVyIGlzIGNhbGxlZCBldmVuIHdpdGhvdXQgY2FsbGluZyBz dGFydF94bWl0KCkgYmVjYXVzZSBjYiBmb3IgdHggaXMKYnkgZGVmYXVsdCBlbmFibGVkLiBPbmNl IHRoZSBoYW5kbGVyIGlzIGNhbGxlZCwgaXQgZW5hYmxlZCB0aGUgY2IgYWdhaW4sCmFuZCB0aGVu IHRoZSBoYW5kbGVyIHdvdWxkIGJlIGNhbGxlZCBhZ2Fpbi4gV2UgZG9uJ3QgbmVlZCB0aGlzIGhh bmRsZXIKZm9yIFhEUCwgc28gZG9uJ3QgZW5hYmxlIGNiIGFzIHdlbGwgYXMgbm90IGNhbGxpbmcg ZnJlZV9vbGRfeG1pdF9za2JzKCkuCgpBbHNvLCB3ZSBuZWVkIHRvIGRpc2FibGUgdHggTkFQSSB3 aGVuIGRpc2FibGluZyBYRFAsIHNvCnZpcnRuZXRfcG9sbF90eCgpIGNhbiBzYWZlbHkgYWNjZXNz IGN1cnJfcXVldWVfcGFpcnMgYW5kCnhkcF9xdWV1ZV9wYWlycywgd2hpY2ggYXJlIG5vdCBhdG9t aWNhbGx5IHVwZGF0ZWQgd2hpbGUgZGlzYWJsaW5nIFhEUC4KCkZpeGVzOiBiOTJmMWU2NzUxYTYg KCJ2aXJ0aW8tbmV0OiB0cmFuc21pdCBuYXBpIikKRml4ZXM6IDdiMDQxMWVmNGFhNiAoInZpcnRp by1uZXQ6IGNsZWFuIHR4IGRlc2NyaXB0b3JzIGZyb20gcnggbmFwaSIpClNpZ25lZC1vZmYtYnk6 IFRvc2hpYWtpIE1ha2l0YSA8bWFraXRhLnRvc2hpYWtpQGxhYi5udHQuY28uanA+CkFja2VkLWJ5 OiBKYXNvbiBXYW5nIDxqYXNvd2FuZ0ByZWRoYXQuY29tPgpBY2tlZC1ieTogTWljaGFlbCBTLiBU c2lya2luIDxtc3RAcmVkaGF0LmNvbT4KU2lnbmVkLW9mZi1ieTogRGF2aWQgUy4gTWlsbGVyIDxk YXZlbUBkYXZlbWxvZnQubmV0PgotLS0KIGRyaXZlcnMvbmV0L3ZpcnRpb19uZXQuYyB8IDQ5ICsr KysrKysrKysrKysrKysrKysrKysrKysrKy0tLS0tLS0tLS0tLS0KIDEgZmlsZSBjaGFuZ2VkLCAz MyBpbnNlcnRpb25zKCspLCAxNiBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9kcml2ZXJzL25l dC92aXJ0aW9fbmV0LmMgYi9kcml2ZXJzL25ldC92aXJ0aW9fbmV0LmMKaW5kZXggOGRlN2I2ZmJi NWMzLi40MDYxNzExOTQxMjEgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvbmV0L3ZpcnRpb19uZXQuYwor KysgYi9kcml2ZXJzL25ldC92aXJ0aW9fbmV0LmMKQEAgLTEzNTcsNiArMTM1NywxNiBAQCBzdGF0 aWMgdm9pZCBmcmVlX29sZF94bWl0X3NrYnMoc3RydWN0IHNlbmRfcXVldWUgKnNxKQogCXU2NF9z dGF0c191cGRhdGVfZW5kKCZzcS0+c3RhdHMuc3luY3ApOwogfQogCitzdGF0aWMgYm9vbCBpc194 ZHBfcmF3X2J1ZmZlcl9xdWV1ZShzdHJ1Y3QgdmlydG5ldF9pbmZvICp2aSwgaW50IHEpCit7CisJ aWYgKHEgPCAodmktPmN1cnJfcXVldWVfcGFpcnMgLSB2aS0+eGRwX3F1ZXVlX3BhaXJzKSkKKwkJ cmV0dXJuIGZhbHNlOworCWVsc2UgaWYgKHEgPCB2aS0+Y3Vycl9xdWV1ZV9wYWlycykKKwkJcmV0 dXJuIHRydWU7CisJZWxzZQorCQlyZXR1cm4gZmFsc2U7Cit9CisKIHN0YXRpYyB2b2lkIHZpcnRu ZXRfcG9sbF9jbGVhbnR4KHN0cnVjdCByZWNlaXZlX3F1ZXVlICpycSkKIHsKIAlzdHJ1Y3Qgdmly dG5ldF9pbmZvICp2aSA9IHJxLT52cS0+dmRldi0+cHJpdjsKQEAgLTEzNjQsNyArMTM3NCw3IEBA IHN0YXRpYyB2b2lkIHZpcnRuZXRfcG9sbF9jbGVhbnR4KHN0cnVjdCByZWNlaXZlX3F1ZXVlICpy cSkKIAlzdHJ1Y3Qgc2VuZF9xdWV1ZSAqc3EgPSAmdmktPnNxW2luZGV4XTsKIAlzdHJ1Y3QgbmV0 ZGV2X3F1ZXVlICp0eHEgPSBuZXRkZXZfZ2V0X3R4X3F1ZXVlKHZpLT5kZXYsIGluZGV4KTsKIAot CWlmICghc3EtPm5hcGkud2VpZ2h0KQorCWlmICghc3EtPm5hcGkud2VpZ2h0IHx8IGlzX3hkcF9y YXdfYnVmZmVyX3F1ZXVlKHZpLCBpbmRleCkpCiAJCXJldHVybjsKIAogCWlmIChfX25ldGlmX3R4 X3RyeWxvY2sodHhxKSkgewpAQCAtMTQ0MSw4ICsxNDUxLDE2IEBAIHN0YXRpYyBpbnQgdmlydG5l dF9wb2xsX3R4KHN0cnVjdCBuYXBpX3N0cnVjdCAqbmFwaSwgaW50IGJ1ZGdldCkKIHsKIAlzdHJ1 Y3Qgc2VuZF9xdWV1ZSAqc3EgPSBjb250YWluZXJfb2YobmFwaSwgc3RydWN0IHNlbmRfcXVldWUs IG5hcGkpOwogCXN0cnVjdCB2aXJ0bmV0X2luZm8gKnZpID0gc3EtPnZxLT52ZGV2LT5wcml2Owot CXN0cnVjdCBuZXRkZXZfcXVldWUgKnR4cSA9IG5ldGRldl9nZXRfdHhfcXVldWUodmktPmRldiwg dnEydHhxKHNxLT52cSkpOworCXVuc2lnbmVkIGludCBpbmRleCA9IHZxMnR4cShzcS0+dnEpOwor CXN0cnVjdCBuZXRkZXZfcXVldWUgKnR4cTsKIAorCWlmICh1bmxpa2VseShpc194ZHBfcmF3X2J1 ZmZlcl9xdWV1ZSh2aSwgaW5kZXgpKSkgeworCQkvKiBXZSBkb24ndCBuZWVkIHRvIGVuYWJsZSBj YiBmb3IgWERQICovCisJCW5hcGlfY29tcGxldGVfZG9uZShuYXBpLCAwKTsKKwkJcmV0dXJuIDA7 CisJfQorCisJdHhxID0gbmV0ZGV2X2dldF90eF9xdWV1ZSh2aS0+ZGV2LCBpbmRleCk7CiAJX19u ZXRpZl90eF9sb2NrKHR4cSwgcmF3X3NtcF9wcm9jZXNzb3JfaWQoKSk7CiAJZnJlZV9vbGRfeG1p dF9za2JzKHNxKTsKIAlfX25ldGlmX3R4X3VubG9jayh0eHEpOwpAQCAtMjM1Miw5ICsyMzcwLDEy IEBAIHN0YXRpYyBpbnQgdmlydG5ldF94ZHBfc2V0KHN0cnVjdCBuZXRfZGV2aWNlICpkZXYsIHN0 cnVjdCBicGZfcHJvZyAqcHJvZywKIAl9CiAKIAkvKiBNYWtlIHN1cmUgTkFQSSBpcyBub3QgdXNp bmcgYW55IFhEUCBUWCBxdWV1ZXMgZm9yIFJYLiAqLwotCWlmIChuZXRpZl9ydW5uaW5nKGRldikp Ci0JCWZvciAoaSA9IDA7IGkgPCB2aS0+bWF4X3F1ZXVlX3BhaXJzOyBpKyspCisJaWYgKG5ldGlm X3J1bm5pbmcoZGV2KSkgeworCQlmb3IgKGkgPSAwOyBpIDwgdmktPm1heF9xdWV1ZV9wYWlyczsg aSsrKSB7CiAJCQluYXBpX2Rpc2FibGUoJnZpLT5ycVtpXS5uYXBpKTsKKwkJCXZpcnRuZXRfbmFw aV90eF9kaXNhYmxlKCZ2aS0+c3FbaV0ubmFwaSk7CisJCX0KKwl9CiAKIAluZXRpZl9zZXRfcmVh bF9udW1fcnhfcXVldWVzKGRldiwgY3Vycl9xcCArIHhkcF9xcCk7CiAJZXJyID0gX3ZpcnRuZXRf c2V0X3F1ZXVlcyh2aSwgY3Vycl9xcCArIHhkcF9xcCk7CkBAIC0yMzczLDE2ICsyMzk0LDIyIEBA IHN0YXRpYyBpbnQgdmlydG5ldF94ZHBfc2V0KHN0cnVjdCBuZXRfZGV2aWNlICpkZXYsIHN0cnVj dCBicGZfcHJvZyAqcHJvZywKIAkJfQogCQlpZiAob2xkX3Byb2cpCiAJCQlicGZfcHJvZ19wdXQo b2xkX3Byb2cpOwotCQlpZiAobmV0aWZfcnVubmluZyhkZXYpKQorCQlpZiAobmV0aWZfcnVubmlu ZyhkZXYpKSB7CiAJCQl2aXJ0bmV0X25hcGlfZW5hYmxlKHZpLT5ycVtpXS52cSwgJnZpLT5ycVtp XS5uYXBpKTsKKwkJCXZpcnRuZXRfbmFwaV90eF9lbmFibGUodmksIHZpLT5zcVtpXS52cSwKKwkJ CQkJICAgICAgICZ2aS0+c3FbaV0ubmFwaSk7CisJCX0KIAl9CiAKIAlyZXR1cm4gMDsKIAogZXJy OgogCWlmIChuZXRpZl9ydW5uaW5nKGRldikpIHsKLQkJZm9yIChpID0gMDsgaSA8IHZpLT5tYXhf cXVldWVfcGFpcnM7IGkrKykKKwkJZm9yIChpID0gMDsgaSA8IHZpLT5tYXhfcXVldWVfcGFpcnM7 IGkrKykgewogCQkJdmlydG5ldF9uYXBpX2VuYWJsZSh2aS0+cnFbaV0udnEsICZ2aS0+cnFbaV0u bmFwaSk7CisJCQl2aXJ0bmV0X25hcGlfdHhfZW5hYmxlKHZpLCB2aS0+c3FbaV0udnEsCisJCQkJ CSAgICAgICAmdmktPnNxW2ldLm5hcGkpOworCQl9CiAJfQogCWlmIChwcm9nKQogCQlicGZfcHJv Z19zdWIocHJvZywgdmktPm1heF9xdWV1ZV9wYWlycyAtIDEpOwpAQCAtMjUzOSwxNiArMjU2Niw2 IEBAIHN0YXRpYyB2b2lkIGZyZWVfcmVjZWl2ZV9wYWdlX2ZyYWdzKHN0cnVjdCB2aXJ0bmV0X2lu Zm8gKnZpKQogCQkJcHV0X3BhZ2UodmktPnJxW2ldLmFsbG9jX2ZyYWcucGFnZSk7CiB9CiAKLXN0 YXRpYyBib29sIGlzX3hkcF9yYXdfYnVmZmVyX3F1ZXVlKHN0cnVjdCB2aXJ0bmV0X2luZm8gKnZp LCBpbnQgcSkKLXsKLQlpZiAocSA8ICh2aS0+Y3Vycl9xdWV1ZV9wYWlycyAtIHZpLT54ZHBfcXVl dWVfcGFpcnMpKQotCQlyZXR1cm4gZmFsc2U7Ci0JZWxzZSBpZiAocSA8IHZpLT5jdXJyX3F1ZXVl X3BhaXJzKQotCQlyZXR1cm4gdHJ1ZTsKLQllbHNlCi0JCXJldHVybiBmYWxzZTsKLX0KLQogc3Rh dGljIHZvaWQgZnJlZV91bnVzZWRfYnVmcyhzdHJ1Y3QgdmlydG5ldF9pbmZvICp2aSkKIHsKIAl2 b2lkICpidWY7Ci0tIAoyLjIwLjEKCgpGcm9tIDBmZGE0MTYyZTU5ZmJkYTUyY2ZlYTcyZDFlMjk0 ZjI3YTQxYmVkODMgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCkZyb206IFRvc2hpYWtpIE1ha2l0 YSA8bWFraXRhLnRvc2hpYWtpQGxhYi5udHQuY28uanA+CkRhdGU6IFR1ZSwgMjkgSmFuIDIwMTkg MDk6NDU6NTUgKzA5MDAKU3ViamVjdDogW1BBVENIIDI2LzMwXSB2aXJ0aW9fbmV0OiBGaXggbm90 IHJlc3RvcmluZyByZWFsX251bV9yeF9xdWV1ZXMKClsgVXBzdHJlYW0gY29tbWl0IDE4ODMxM2Mx MzdjNGY3NmFmZDA4NjJmNTBkYmMxODViMTk4YjllMmEgXQoKV2hlbiBfdmlydG5ldF9zZXRfcXVl dWVzKCkgZmFpbGVkIHdlIGRpZCBub3QgcmVzdG9yZSByZWFsX251bV9yeF9xdWV1ZXMuCkZpeCB0 aGlzIGJ5IHBsYWNpbmcgdGhlIGNoYW5nZSBvZiByZWFsX251bV9yeF9xdWV1ZXMgYWZ0ZXIKX3Zp cnRuZXRfc2V0X3F1ZXVlcygpLgpUaGlzIG9yZGVyIGlzIGFsc28gaW4gbGluZSB3aXRoIHZpcnRu ZXRfc2V0X2NoYW5uZWxzKCkuCgpGaXhlczogNDk0MWQ0NzJiZjk1ICgidmlydGlvLW5ldDogZG8g bm90IHJlc2V0IGR1cmluZyBYRFAgc2V0IikKU2lnbmVkLW9mZi1ieTogVG9zaGlha2kgTWFraXRh IDxtYWtpdGEudG9zaGlha2lAbGFiLm50dC5jby5qcD4KQWNrZWQtYnk6IEphc29uIFdhbmcgPGph c293YW5nQHJlZGhhdC5jb20+CkFja2VkLWJ5OiBNaWNoYWVsIFMuIFRzaXJraW4gPG1zdEByZWRo YXQuY29tPgpTaWduZWQtb2ZmLWJ5OiBEYXZpZCBTLiBNaWxsZXIgPGRhdmVtQGRhdmVtbG9mdC5u ZXQ+Ci0tLQogZHJpdmVycy9uZXQvdmlydGlvX25ldC5jIHwgMiArLQogMSBmaWxlIGNoYW5nZWQs IDEgaW5zZXJ0aW9uKCspLCAxIGRlbGV0aW9uKC0pCgpkaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQv dmlydGlvX25ldC5jIGIvZHJpdmVycy9uZXQvdmlydGlvX25ldC5jCmluZGV4IDQwNjE3MTE5NDEy MS4uNmJlYTFmZTVhMmE3IDEwMDY0NAotLS0gYS9kcml2ZXJzL25ldC92aXJ0aW9fbmV0LmMKKysr IGIvZHJpdmVycy9uZXQvdmlydGlvX25ldC5jCkBAIC0yMzc3LDEwICsyMzc3LDEwIEBAIHN0YXRp YyBpbnQgdmlydG5ldF94ZHBfc2V0KHN0cnVjdCBuZXRfZGV2aWNlICpkZXYsIHN0cnVjdCBicGZf cHJvZyAqcHJvZywKIAkJfQogCX0KIAotCW5ldGlmX3NldF9yZWFsX251bV9yeF9xdWV1ZXMoZGV2 LCBjdXJyX3FwICsgeGRwX3FwKTsKIAllcnIgPSBfdmlydG5ldF9zZXRfcXVldWVzKHZpLCBjdXJy X3FwICsgeGRwX3FwKTsKIAlpZiAoZXJyKQogCQlnb3RvIGVycjsKKwluZXRpZl9zZXRfcmVhbF9u dW1fcnhfcXVldWVzKGRldiwgY3Vycl9xcCArIHhkcF9xcCk7CiAJdmktPnhkcF9xdWV1ZV9wYWly cyA9IHhkcF9xcDsKIAogCWZvciAoaSA9IDA7IGkgPCB2aS0+bWF4X3F1ZXVlX3BhaXJzOyBpKysp IHsKLS0gCjIuMjAuMQoKCkZyb20gMTJiZTQ2M2VmMTNhMzBkYjE0MWZlZDIzYjRjNGJlMzlhZjYz NzE2ZCBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJvbTogVG9zaGlha2kgTWFraXRhIDxtYWtp dGEudG9zaGlha2lAbGFiLm50dC5jby5qcD4KRGF0ZTogVHVlLCAyOSBKYW4gMjAxOSAwOTo0NTo1 NiArMDkwMApTdWJqZWN0OiBbUEFUQ0ggMjcvMzBdIHZpcnRpb19uZXQ6IEZpeCBvdXQgb2YgYm91 bmRzIGFjY2VzcyBvZiBzcQoKWyBVcHN0cmVhbSBjb21taXQgMTY2N2MwOGE5ZDMxYzdjZGYwOWY0 ODkwODE2YmZiZjIwYjY4NTQ5NSBdCgpXaGVuIFhEUCBpcyBkaXNhYmxlZCwgY3Vycl9xdWV1ZV9w YWlycyArIHNtcF9wcm9jZXNzb3JfaWQoKSBjYW4gYmUKbGFyZ2VyIHRoYW4gbWF4X3F1ZXVlX3Bh aXJzLgpUaGVyZSBpcyBubyBndWFyYW50ZWUgdGhhdCB3ZSBoYXZlIGVub3VnaCBYRFAgc2VuZCBx dWV1ZXMgZGVkaWNhdGVkIGZvcgplYWNoIGNwdSB3aGVuIFhEUCBpcyBkaXNhYmxlZCwgc28gZG8g bm90IGNvdW50IGRyb3BzIG9uIHNxIGluIHRoYXQgY2FzZS4KCkZpeGVzOiA1YjhmM2M4ZDMwYTYg KCJ2aXJ0aW9fbmV0OiBBZGQgWERQIHJlbGF0ZWQgc3RhdHMiKQpTaWduZWQtb2ZmLWJ5OiBUb3No aWFraSBNYWtpdGEgPG1ha2l0YS50b3NoaWFraUBsYWIubnR0LmNvLmpwPgpBY2tlZC1ieTogSmFz b24gV2FuZyA8amFzb3dhbmdAcmVkaGF0LmNvbT4KQWNrZWQtYnk6IE1pY2hhZWwgUy4gVHNpcmtp biA8bXN0QHJlZGhhdC5jb20+ClNpZ25lZC1vZmYtYnk6IERhdmlkIFMuIE1pbGxlciA8ZGF2ZW1A ZGF2ZW1sb2Z0Lm5ldD4KLS0tCiBkcml2ZXJzL25ldC92aXJ0aW9fbmV0LmMgfCAxNyArKysrKysr LS0tLS0tLS0tLQogMSBmaWxlIGNoYW5nZWQsIDcgaW5zZXJ0aW9ucygrKSwgMTAgZGVsZXRpb25z KC0pCgpkaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvdmlydGlvX25ldC5jIGIvZHJpdmVycy9uZXQv dmlydGlvX25ldC5jCmluZGV4IDZiZWExZmU1YTJhNy4uOTRhNmY3MjkyMzZiIDEwMDY0NAotLS0g YS9kcml2ZXJzL25ldC92aXJ0aW9fbmV0LmMKKysrIGIvZHJpdmVycy9uZXQvdmlydGlvX25ldC5j CkBAIC00OTAsMjAgKzQ5MCwxNyBAQCBzdGF0aWMgaW50IHZpcnRuZXRfeGRwX3htaXQoc3RydWN0 IG5ldF9kZXZpY2UgKmRldiwKIAlpbnQgcmV0LCBlcnI7CiAJaW50IGk7CiAKLQlzcSA9IHZpcnRu ZXRfeGRwX3NxKHZpKTsKLQotCWlmICh1bmxpa2VseShmbGFncyAmIH5YRFBfWE1JVF9GTEFHU19N QVNLKSkgewotCQlyZXQgPSAtRUlOVkFMOwotCQlkcm9wcyA9IG47Ci0JCWdvdG8gb3V0OwotCX0K LQogCS8qIE9ubHkgYWxsb3cgbmRvX3hkcF94bWl0IGlmIFhEUCBpcyBsb2FkZWQgb24gZGV2LCBh cyB0aGlzCiAJICogaW5kaWNhdGUgWERQIHJlc291cmNlcyBoYXZlIGJlZW4gc3VjY2Vzc2Z1bGx5 IGFsbG9jYXRlZC4KIAkgKi8KIAl4ZHBfcHJvZyA9IHJjdV9kZXJlZmVyZW5jZShycS0+eGRwX3By b2cpOwotCWlmICgheGRwX3Byb2cpIHsKLQkJcmV0ID0gLUVOWElPOworCWlmICgheGRwX3Byb2cp CisJCXJldHVybiAtRU5YSU87CisKKwlzcSA9IHZpcnRuZXRfeGRwX3NxKHZpKTsKKworCWlmICh1 bmxpa2VseShmbGFncyAmIH5YRFBfWE1JVF9GTEFHU19NQVNLKSkgeworCQlyZXQgPSAtRUlOVkFM OwogCQlkcm9wcyA9IG47CiAJCWdvdG8gb3V0OwogCX0KLS0gCjIuMjAuMQoKCkZyb20gN2UzMTI0 ZmZjODkyNWNhM2ZmYzhiNGY1YTI2MDAyOTRiOTA3NzNlNSBNb24gU2VwIDE3IDAwOjAwOjAwIDIw MDEKRnJvbTogVG9zaGlha2kgTWFraXRhIDxtYWtpdGEudG9zaGlha2lAbGFiLm50dC5jby5qcD4K RGF0ZTogVHVlLCAyOSBKYW4gMjAxOSAwOTo0NTo1NyArMDkwMApTdWJqZWN0OiBbUEFUQ0ggMjgv MzBdIHZpcnRpb19uZXQ6IERvbid0IHByb2Nlc3MgcmVkaXJlY3RlZCBYRFAgZnJhbWVzIHdoZW4K IFhEUCBpcyBkaXNhYmxlZAoKWyBVcHN0cmVhbSBjb21taXQgMDNhYTZkMzQ4NjhjMDdiMmIxYjhi MmRiMDgwNjAyZDdlYzUyODE3MyBdCgpDb21taXQgOGRjYzViMGFiMGVjICgidmlydGlvX25ldDog Zml4IG5kb194ZHBfeG1pdCBjcmFzaCB0b3dhcmRzIGRldiBub3QKcmVhZHkgZm9yIFhEUCIpIHRy aWVkIHRvIGF2b2lkIGFjY2VzcyB0byB1bmV4cGVjdGVkIHNxIHdoaWxlIFhEUCBpcwpkaXNhYmxl ZCwgYnV0IHdhcyBub3QgY29tcGxldGUuCgpUaGVyZSB3YXMgYSBzbWFsbCB3aW5kb3cgd2hpY2gg Y2F1c2VzIG91dCBvZiBib3VuZHMgc3EgYWNjZXNzIGluCnZpcnRuZXRfeGRwX3htaXQoKSB3aGls ZSBkaXNhYmxpbmcgWERQLgoKQW4gZXhhbXBsZSBjYXNlIG9mCiAtIGN1cnJfcXVldWVfcGFpcnMg PSA2ICgyIGZvciBTS0IgYW5kIDQgZm9yIFhEUCkKIC0gb25saW5lX2NwdV9udW0gPSB4ZHBfcXVl dWVfcGFyaXMgPSA0CndoZW4gWERQIGlzIGVuYWJsZWQ6CgpDUFUgMCAgICAgICAgICAgICAgICAg ICAgICAgICBDUFUgMQooRGlzYWJsaW5nIFhEUCkgICAgICAgICAgICAgICAoUHJvY2Vzc2luZyBy ZWRpcmVjdGVkIFhEUCBmcmFtZXMpCgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2aXJ0 bmV0X3hkcF94bWl0KCkKdmlydG5ldF94ZHBfc2V0KCkKIF92aXJ0bmV0X3NldF9xdWV1ZXMoKQog IHNldCBjdXJyX3F1ZXVlX3BhaXJzICgyKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg Y2hlY2sgaWYgcnEtPnhkcF9wcm9nIGlzIG5vdCBOVUxMCiAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICB2aXJ0bmV0X3hkcF9zcSh2aSkKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICBxcCA9IGN1cnJfcXVldWVfcGFpcnMgLQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgeGRwX3F1ZXVlX3BhaXJzICsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIHNtcF9wcm9jZXNzb3JfaWQoKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ID0gMiAtIDQgKyAxID0gLTEKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzcSA9ICZ2 aS0+c3FbcXBdIC8vIG91dCBvZiBib3VuZHMgYWNjZXNzCiAgc2V0IHhkcF9xdWV1ZV9wYWlycyAo MCkKICBycS0+eGRwX3Byb2cgPSBOVUxMCgpCYXNpY2FsbHkgd2Ugc2hvdWxkIG5vdCBjaGFuZ2Ug Y3Vycl9xdWV1ZV9wYWlycyBhbmQgeGRwX3F1ZXVlX3BhaXJzCndoaWxlIHNvbWVvbmUgY2FuIHJl YWQgdGhlIHZhbHVlcy4gVGh1cywgd2hlbiBkaXNhYmxpbmcgWERQLCBhc3NpZ24gTlVMTAp0byBy cS0+eGRwX3Byb2cgZmlyc3QsIGFuZCB3YWl0IGZvciBSQ1UgZ3JhY2UgcGVyaW9kLCB0aGVuIGNo YW5nZQp4eHhfcXVldWVfcGFpcnMuCk5vdGUgdGhhdCB3ZSBuZWVkIHRvIGtlZXAgdGhlIGN1cnJl bnQgb3JkZXIgd2hlbiBlbmFibGluZyBYRFAgdGhvdWdoLgoKLSB2MjogTWFrZSByY3VfYXNzaWdu X3BvaW50ZXIvc3luY2hyb25pemVfbmV0IGNvbmRpdGlvbmFsIGluc3RlYWQgb2YKICAgICAgX3Zp cnRuZXRfc2V0X3F1ZXVlcy4KCkZpeGVzOiAxODZiM2M5OThjNTAgKCJ2aXJ0aW8tbmV0OiBzdXBw b3J0IFhEUF9SRURJUkVDVCIpClNpZ25lZC1vZmYtYnk6IFRvc2hpYWtpIE1ha2l0YSA8bWFraXRh LnRvc2hpYWtpQGxhYi5udHQuY28uanA+CkFja2VkLWJ5OiBKYXNvbiBXYW5nIDxqYXNvd2FuZ0By ZWRoYXQuY29tPgpBY2tlZC1ieTogTWljaGFlbCBTLiBUc2lya2luIDxtc3RAcmVkaGF0LmNvbT4K U2lnbmVkLW9mZi1ieTogRGF2aWQgUy4gTWlsbGVyIDxkYXZlbUBkYXZlbWxvZnQubmV0PgotLS0K IGRyaXZlcnMvbmV0L3ZpcnRpb19uZXQuYyB8IDMzICsrKysrKysrKysrKysrKysrKysrKysrKysr LS0tLS0tLQogMSBmaWxlIGNoYW5nZWQsIDI2IGluc2VydGlvbnMoKyksIDcgZGVsZXRpb25zKC0p CgpkaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvdmlydGlvX25ldC5jIGIvZHJpdmVycy9uZXQvdmly dGlvX25ldC5jCmluZGV4IDk0YTZmNzI5MjM2Yi4uMTg4MDQxNDQ3ZDE5IDEwMDY0NAotLS0gYS9k cml2ZXJzL25ldC92aXJ0aW9fbmV0LmMKKysrIGIvZHJpdmVycy9uZXQvdmlydGlvX25ldC5jCkBA IC0yMzYwLDYgKzIzNjAsMTAgQEAgc3RhdGljIGludCB2aXJ0bmV0X3hkcF9zZXQoc3RydWN0IG5l dF9kZXZpY2UgKmRldiwgc3RydWN0IGJwZl9wcm9nICpwcm9nLAogCQlyZXR1cm4gLUVOT01FTTsK IAl9CiAKKwlvbGRfcHJvZyA9IHJ0bmxfZGVyZWZlcmVuY2UodmktPnJxWzBdLnhkcF9wcm9nKTsK KwlpZiAoIXByb2cgJiYgIW9sZF9wcm9nKQorCQlyZXR1cm4gMDsKKwogCWlmIChwcm9nKSB7CiAJ CXByb2cgPSBicGZfcHJvZ19hZGQocHJvZywgdmktPm1heF9xdWV1ZV9wYWlycyAtIDEpOwogCQlp ZiAoSVNfRVJSKHByb2cpKQpAQCAtMjM3NCwyMSArMjM3OCwzMCBAQCBzdGF0aWMgaW50IHZpcnRu ZXRfeGRwX3NldChzdHJ1Y3QgbmV0X2RldmljZSAqZGV2LCBzdHJ1Y3QgYnBmX3Byb2cgKnByb2cs CiAJCX0KIAl9CiAKKwlpZiAoIXByb2cpIHsKKwkJZm9yIChpID0gMDsgaSA8IHZpLT5tYXhfcXVl dWVfcGFpcnM7IGkrKykgeworCQkJcmN1X2Fzc2lnbl9wb2ludGVyKHZpLT5ycVtpXS54ZHBfcHJv ZywgcHJvZyk7CisJCQlpZiAoaSA9PSAwKQorCQkJCXZpcnRuZXRfcmVzdG9yZV9ndWVzdF9vZmZs b2Fkcyh2aSk7CisJCX0KKwkJc3luY2hyb25pemVfbmV0KCk7CisJfQorCiAJZXJyID0gX3ZpcnRu ZXRfc2V0X3F1ZXVlcyh2aSwgY3Vycl9xcCArIHhkcF9xcCk7CiAJaWYgKGVycikKIAkJZ290byBl cnI7CiAJbmV0aWZfc2V0X3JlYWxfbnVtX3J4X3F1ZXVlcyhkZXYsIGN1cnJfcXAgKyB4ZHBfcXAp OwogCXZpLT54ZHBfcXVldWVfcGFpcnMgPSB4ZHBfcXA7CiAKLQlmb3IgKGkgPSAwOyBpIDwgdmkt Pm1heF9xdWV1ZV9wYWlyczsgaSsrKSB7Ci0JCW9sZF9wcm9nID0gcnRubF9kZXJlZmVyZW5jZSh2 aS0+cnFbaV0ueGRwX3Byb2cpOwotCQlyY3VfYXNzaWduX3BvaW50ZXIodmktPnJxW2ldLnhkcF9w cm9nLCBwcm9nKTsKLQkJaWYgKGkgPT0gMCkgewotCQkJaWYgKCFvbGRfcHJvZykKKwlpZiAocHJv ZykgeworCQlmb3IgKGkgPSAwOyBpIDwgdmktPm1heF9xdWV1ZV9wYWlyczsgaSsrKSB7CisJCQly Y3VfYXNzaWduX3BvaW50ZXIodmktPnJxW2ldLnhkcF9wcm9nLCBwcm9nKTsKKwkJCWlmIChpID09 IDAgJiYgIW9sZF9wcm9nKQogCQkJCXZpcnRuZXRfY2xlYXJfZ3Vlc3Rfb2ZmbG9hZHModmkpOwot CQkJaWYgKCFwcm9nKQotCQkJCXZpcnRuZXRfcmVzdG9yZV9ndWVzdF9vZmZsb2Fkcyh2aSk7CiAJ CX0KKwl9CisKKwlmb3IgKGkgPSAwOyBpIDwgdmktPm1heF9xdWV1ZV9wYWlyczsgaSsrKSB7CiAJ CWlmIChvbGRfcHJvZykKIAkJCWJwZl9wcm9nX3B1dChvbGRfcHJvZyk7CiAJCWlmIChuZXRpZl9y dW5uaW5nKGRldikpIHsKQEAgLTI0MDEsNiArMjQxNCwxMiBAQCBzdGF0aWMgaW50IHZpcnRuZXRf eGRwX3NldChzdHJ1Y3QgbmV0X2RldmljZSAqZGV2LCBzdHJ1Y3QgYnBmX3Byb2cgKnByb2csCiAJ cmV0dXJuIDA7CiAKIGVycjoKKwlpZiAoIXByb2cpIHsKKwkJdmlydG5ldF9jbGVhcl9ndWVzdF9v ZmZsb2Fkcyh2aSk7CisJCWZvciAoaSA9IDA7IGkgPCB2aS0+bWF4X3F1ZXVlX3BhaXJzOyBpKysp CisJCQlyY3VfYXNzaWduX3BvaW50ZXIodmktPnJxW2ldLnhkcF9wcm9nLCBvbGRfcHJvZyk7CisJ fQorCiAJaWYgKG5ldGlmX3J1bm5pbmcoZGV2KSkgewogCQlmb3IgKGkgPSAwOyBpIDwgdmktPm1h eF9xdWV1ZV9wYWlyczsgaSsrKSB7CiAJCQl2aXJ0bmV0X25hcGlfZW5hYmxlKHZpLT5ycVtpXS52 cSwgJnZpLT5ycVtpXS5uYXBpKTsKLS0gCjIuMjAuMQoKCkZyb20gMzJkMDM2YjhhNjhlNDFjYzAx ZWMxNDg5M2FiMmU4ZGZlMWU1YTNkOCBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJvbTogVG9z aGlha2kgTWFraXRhIDxtYWtpdGEudG9zaGlha2lAbGFiLm50dC5jby5qcD4KRGF0ZTogVHVlLCAy OSBKYW4gMjAxOSAwOTo0NTo1OCArMDkwMApTdWJqZWN0OiBbUEFUQ0ggMjkvMzBdIHZpcnRpb19u ZXQ6IFVzZSB4ZHBfcmV0dXJuX2ZyYW1lIHRvIGZyZWUgeGRwX2ZyYW1lcyBvbgogZGVzdHJveWlu ZyB2cXMKClsgVXBzdHJlYW0gY29tbWl0IDA3YjM0NGY0OTRkZGRhOWYwNjFiMzk2NDA3Yzk2ZGY4 YzQ2YzgyYjUgXQoKcHV0X3BhZ2UoKSBjYW4gd29yayBhcyBhIGZhbGxiYWNrIGZvciBmcmVlaW5n IHhkcF9mcmFtZXMsIGJ1dCB0aGUKYXBwcm9wcmlhdGUgd2F5IGlzIHRvIHVzZSB4ZHBfcmV0dXJu X2ZyYW1lKCkuCgpGaXhlczogY2FjMzIwYzg1MGVmICgidmlydGlvX25ldDogY29udmVydCB0byB1 c2UgZ2VuZXJpYyB4ZHBfZnJhbWUgYW5kIHhkcF9yZXR1cm5fZnJhbWUgQVBJIikKU2lnbmVkLW9m Zi1ieTogVG9zaGlha2kgTWFraXRhIDxtYWtpdGEudG9zaGlha2lAbGFiLm50dC5jby5qcD4KQWNr ZWQtYnk6IEphc29uIFdhbmcgPGphc293YW5nQHJlZGhhdC5jb20+CkFja2VkLWJ5OiBKZXNwZXIg RGFuZ2FhcmQgQnJvdWVyIDxicm91ZXJAcmVkaGF0LmNvbT4KQWNrZWQtYnk6IE1pY2hhZWwgUy4g VHNpcmtpbiA8bXN0QHJlZGhhdC5jb20+ClNpZ25lZC1vZmYtYnk6IERhdmlkIFMuIE1pbGxlciA8 ZGF2ZW1AZGF2ZW1sb2Z0Lm5ldD4KLS0tCiBkcml2ZXJzL25ldC92aXJ0aW9fbmV0LmMgfCAyICst CiAxIGZpbGUgY2hhbmdlZCwgMSBpbnNlcnRpb24oKyksIDEgZGVsZXRpb24oLSkKCmRpZmYgLS1n aXQgYS9kcml2ZXJzL25ldC92aXJ0aW9fbmV0LmMgYi9kcml2ZXJzL25ldC92aXJ0aW9fbmV0LmMK aW5kZXggMTg4MDQxNDQ3ZDE5Li43Zjk3YjI0YmFhZWUgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvbmV0 L3ZpcnRpb19uZXQuYworKysgYi9kcml2ZXJzL25ldC92aXJ0aW9fbmV0LmMKQEAgLTI1OTMsNyAr MjU5Myw3IEBAIHN0YXRpYyB2b2lkIGZyZWVfdW51c2VkX2J1ZnMoc3RydWN0IHZpcnRuZXRfaW5m byAqdmkpCiAJCQlpZiAoIWlzX3hkcF9yYXdfYnVmZmVyX3F1ZXVlKHZpLCBpKSkKIAkJCQlkZXZf a2ZyZWVfc2tiKGJ1Zik7CiAJCQllbHNlCi0JCQkJcHV0X3BhZ2UodmlydF90b19oZWFkX3BhZ2Uo YnVmKSk7CisJCQkJeGRwX3JldHVybl9mcmFtZShidWYpOwogCQl9CiAJfQogCi0tIAoyLjIwLjEK CgpGcm9tIGE0ZmU0NTAyYWQwMGQ5MzA2Zjk3OTAyM2QyMmQ4ZmRhOWIxYTA3MWQgTW9uIFNlcCAx NyAwMDowMDowMCAyMDAxCkZyb206IFRvc2hpYWtpIE1ha2l0YSA8bWFraXRhLnRvc2hpYWtpQGxh Yi5udHQuY28uanA+CkRhdGU6IFR1ZSwgMjkgSmFuIDIwMTkgMDk6NDU6NTkgKzA5MDAKU3ViamVj dDogW1BBVENIIDMwLzMwXSB2aXJ0aW9fbmV0OiBEaWZmZXJlbnRpYXRlIHNrX2J1ZmYgYW5kIHhk cF9mcmFtZSBvbgogZnJlZWluZwoKWyBVcHN0cmVhbSBjb21taXQgNTA1MDQ3MWQzNWQxMzE2YmEz MmRmY2JiNDA5OTc4MzM3ZWI5ZTc1ZQoKICBJIGhhZCB0byBmb2xkIGNvbW1pdCBkZjEzM2YzZjk2 MjUgKCJ2aXJ0aW9fbmV0OiBidWxrIGZyZWUgdHggc2ticyIpCiAgaW50byB0aGlzIHRvIG1ha2Ug aXQgd29yay4gIF0KCldlIGRvIG5vdCByZXNldCBvciBmcmVlIHVwIHVudXNlZCBidWZmZXJzIHdo ZW4gZW5hYmxpbmcvZGlzYWJsaW5nIFhEUCwKc28gaXQgY2FuIGhhcHBlbiB0aGF0IHhkcF9mcmFt ZXMgYXJlIGZyZWVkIGFmdGVyIGRpc2FibGluZyBYRFAgb3IKc2tfYnVmZnMgYXJlIGZyZWVkIGFm dGVyIGVuYWJsaW5nIFhEUCBvbiB4ZHAgdHggcXVldWVzLgpUaHVzIHdlIG5lZWQgdG8gaGFuZGxl IGJvdGggZm9ybXMgKHhkcF9mcmFtZXMgYW5kIHNrX2J1ZmZzKSByZWdhcmRsZXNzCm9mIFhEUCBz ZXR0aW5nLgpPbmUgd2F5IHRvIHRyaWdnZXIgdGhpcyBwcm9ibGVtIGlzIHRvIGRpc2FibGUgWERQ IHdoZW4gbmFwaV90eCBpcwplbmFibGVkLiBJbiB0aGF0IGNhc2UsIHZpcnRuZXRfeGRwX3NldCgp IGNhbGxzIHZpcnRuZXRfbmFwaV9lbmFibGUoKQp3aGljaCBraWNrcyBOQVBJLiBUaGUgTkFQSSBo YW5kbGVyIHdpbGwgY2FsbCB2aXJ0bmV0X3BvbGxfY2xlYW50eCgpCndoaWNoIGludm9rZXMgZnJl ZV9vbGRfeG1pdF9za2JzKCkgZm9yIHF1ZXVlcyB3aGljaCBoYXZlIGJlZW4gdXNlZCBieQpYRFAu CgpOb3RlIHRoYXQgZXZlbiB3aXRoIHRoaXMgY2hhbmdlIHdlIG5lZWQgdG8ga2VlcCBza2lwcGlu ZwpmcmVlX29sZF94bWl0X3NrYnMoKSBmcm9tIE5BUEkgaGFuZGxlcnMgd2hlbiBYRFAgaXMgZW5h YmxlZCwgYmVjYXVzZSBYRFAKdHggcXVldWVzIGRvIG5vdCBhcXVpcmUgcXVldWUgbG9ja3MuCgot IHYyOiBVc2UgbmFwaV9jb25zdW1lX3NrYigpIGluc3RlYWQgb2YgZGV2X2NvbnN1bWVfc2tiX2Fu eSgpCgpGaXhlczogNDk0MWQ0NzJiZjk1ICgidmlydGlvLW5ldDogZG8gbm90IHJlc2V0IGR1cmlu ZyBYRFAgc2V0IikKU2lnbmVkLW9mZi1ieTogVG9zaGlha2kgTWFraXRhIDxtYWtpdGEudG9zaGlh a2lAbGFiLm50dC5jby5qcD4KQWNrZWQtYnk6IEphc29uIFdhbmcgPGphc293YW5nQHJlZGhhdC5j b20+CkFja2VkLWJ5OiBNaWNoYWVsIFMuIFRzaXJraW4gPG1zdEByZWRoYXQuY29tPgpTaWduZWQt b2ZmLWJ5OiBEYXZpZCBTLiBNaWxsZXIgPGRhdmVtQGRhdmVtbG9mdC5uZXQ+Ci0tLQogZHJpdmVy cy9uZXQvdmlydGlvX25ldC5jIHwgNjQgKysrKysrKysrKysrKysrKysrKysrKysrKysrKystLS0t LS0tLS0tLQogMSBmaWxlIGNoYW5nZWQsIDQ3IGluc2VydGlvbnMoKyksIDE3IGRlbGV0aW9ucygt KQoKZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L3ZpcnRpb19uZXQuYyBiL2RyaXZlcnMvbmV0L3Zp cnRpb19uZXQuYwppbmRleCA3Zjk3YjI0YmFhZWUuLjQyZmVhYTRkMjkxNiAxMDA2NDQKLS0tIGEv ZHJpdmVycy9uZXQvdmlydGlvX25ldC5jCisrKyBiL2RyaXZlcnMvbmV0L3ZpcnRpb19uZXQuYwpA QCAtNTcsNiArNTcsOCBAQCBtb2R1bGVfcGFyYW0obmFwaV90eCwgYm9vbCwgMDY0NCk7CiAjZGVm aW5lIFZJUlRJT19YRFBfVFgJCUJJVCgwKQogI2RlZmluZSBWSVJUSU9fWERQX1JFRElSCUJJVCgx KQogCisjZGVmaW5lIFZJUlRJT19YRFBfRkxBRwlCSVQoMCkKKwogLyogUlggcGFja2V0IHNpemUg RVdNQS4gVGhlIGF2ZXJhZ2UgcGFja2V0IHNpemUgaXMgdXNlZCB0byBkZXRlcm1pbmUgdGhlIHBh Y2tldAogICogYnVmZmVyIHNpemUgd2hlbiByZWZpbGxpbmcgUlggcmluZ3MuIEFzIHRoZSBlbnRp cmUgUlggcmluZyBtYXkgYmUgcmVmaWxsZWQKICAqIGF0IG9uY2UsIHRoZSB3ZWlnaHQgaXMgY2hv c2VuIHNvIHRoYXQgdGhlIEVXTUEgd2lsbCBiZSBpbnNlbnNpdGl2ZSB0byBzaG9ydC0KQEAgLTI1 MSw2ICsyNTMsMjEgQEAgc3RydWN0IHBhZGRlZF92bmV0X2hkciB7CiAJY2hhciBwYWRkaW5nWzRd OwogfTsKIAorc3RhdGljIGJvb2wgaXNfeGRwX2ZyYW1lKHZvaWQgKnB0cikKK3sKKwlyZXR1cm4g KHVuc2lnbmVkIGxvbmcpcHRyICYgVklSVElPX1hEUF9GTEFHOworfQorCitzdGF0aWMgdm9pZCAq eGRwX3RvX3B0cihzdHJ1Y3QgeGRwX2ZyYW1lICpwdHIpCit7CisJcmV0dXJuICh2b2lkICopKCh1 bnNpZ25lZCBsb25nKXB0ciB8IFZJUlRJT19YRFBfRkxBRyk7Cit9CisKK3N0YXRpYyBzdHJ1Y3Qg eGRwX2ZyYW1lICpwdHJfdG9feGRwKHZvaWQgKnB0cikKK3sKKwlyZXR1cm4gKHN0cnVjdCB4ZHBf ZnJhbWUgKikoKHVuc2lnbmVkIGxvbmcpcHRyICYgflZJUlRJT19YRFBfRkxBRyk7Cit9CisKIC8q IENvbnZlcnRpbmcgYmV0d2VlbiB2aXJ0cXVldWUgbm8uIGFuZCBrZXJuZWwgdHgvcnggcXVldWUg bm8uCiAgKiAwOnJ4MCAxOnR4MCAyOnJ4MSAzOnR4MSAuLi4gMk46cnhOIDJOKzE6dHhOIDJOKzI6 Y3ZxCiAgKi8KQEAgLTQ2MSw3ICs0NzgsOCBAQCBzdGF0aWMgaW50IF9fdmlydG5ldF94ZHBfeG1p dF9vbmUoc3RydWN0IHZpcnRuZXRfaW5mbyAqdmksCiAKIAlzZ19pbml0X29uZShzcS0+c2csIHhk cGYtPmRhdGEsIHhkcGYtPmxlbik7CiAKLQllcnIgPSB2aXJ0cXVldWVfYWRkX291dGJ1ZihzcS0+ dnEsIHNxLT5zZywgMSwgeGRwZiwgR0ZQX0FUT01JQyk7CisJZXJyID0gdmlydHF1ZXVlX2FkZF9v dXRidWYoc3EtPnZxLCBzcS0+c2csIDEsIHhkcF90b19wdHIoeGRwZiksCisJCQkJICAgR0ZQX0FU T01JQyk7CiAJaWYgKHVubGlrZWx5KGVycikpCiAJCXJldHVybiAtRU5PU1BDOyAvKiBDYWxsZXIg aGFuZGxlIGZyZWUvcmVmY250ICovCiAKQEAgLTQ4MSwxMyArNDk5LDEzIEBAIHN0YXRpYyBpbnQg dmlydG5ldF94ZHBfeG1pdChzdHJ1Y3QgbmV0X2RldmljZSAqZGV2LAogewogCXN0cnVjdCB2aXJ0 bmV0X2luZm8gKnZpID0gbmV0ZGV2X3ByaXYoZGV2KTsKIAlzdHJ1Y3QgcmVjZWl2ZV9xdWV1ZSAq cnEgPSB2aS0+cnE7Ci0Jc3RydWN0IHhkcF9mcmFtZSAqeGRwZl9zZW50OwogCXN0cnVjdCBicGZf cHJvZyAqeGRwX3Byb2c7CiAJc3RydWN0IHNlbmRfcXVldWUgKnNxOwogCXVuc2lnbmVkIGludCBs ZW47CiAJaW50IGRyb3BzID0gMDsKIAlpbnQga2lja3MgPSAwOwogCWludCByZXQsIGVycjsKKwl2 b2lkICpwdHI7CiAJaW50IGk7CiAKIAkvKiBPbmx5IGFsbG93IG5kb194ZHBfeG1pdCBpZiBYRFAg aXMgbG9hZGVkIG9uIGRldiwgYXMgdGhpcwpAQCAtNTA2LDggKzUyNCwxMiBAQCBzdGF0aWMgaW50 IHZpcnRuZXRfeGRwX3htaXQoc3RydWN0IG5ldF9kZXZpY2UgKmRldiwKIAl9CiAKIAkvKiBGcmVl IHVwIGFueSBwZW5kaW5nIG9sZCBidWZmZXJzIGJlZm9yZSBxdWV1ZWluZyBuZXcgb25lcy4gKi8K LQl3aGlsZSAoKHhkcGZfc2VudCA9IHZpcnRxdWV1ZV9nZXRfYnVmKHNxLT52cSwgJmxlbikpICE9 IE5VTEwpCi0JCXhkcF9yZXR1cm5fZnJhbWUoeGRwZl9zZW50KTsKKwl3aGlsZSAoKHB0ciA9IHZp cnRxdWV1ZV9nZXRfYnVmKHNxLT52cSwgJmxlbikpICE9IE5VTEwpIHsKKwkJaWYgKGxpa2VseShp c194ZHBfZnJhbWUocHRyKSkpCisJCQl4ZHBfcmV0dXJuX2ZyYW1lKHB0cl90b194ZHAocHRyKSk7 CisJCWVsc2UKKwkJCW5hcGlfY29uc3VtZV9za2IocHRyLCBmYWxzZSk7CisJfQogCiAJZm9yIChp ID0gMDsgaSA8IG47IGkrKykgewogCQlzdHJ1Y3QgeGRwX2ZyYW1lICp4ZHBmID0gZnJhbWVzW2ld OwpAQCAtMTMyNiwyMCArMTM0OCwyOCBAQCBzdGF0aWMgaW50IHZpcnRuZXRfcmVjZWl2ZShzdHJ1 Y3QgcmVjZWl2ZV9xdWV1ZSAqcnEsIGludCBidWRnZXQsCiAJcmV0dXJuIHN0YXRzLnBhY2tldHM7 CiB9CiAKLXN0YXRpYyB2b2lkIGZyZWVfb2xkX3htaXRfc2ticyhzdHJ1Y3Qgc2VuZF9xdWV1ZSAq c3EpCitzdGF0aWMgdm9pZCBmcmVlX29sZF94bWl0X3NrYnMoc3RydWN0IHNlbmRfcXVldWUgKnNx LCBib29sIGluX25hcGkpCiB7Ci0Jc3RydWN0IHNrX2J1ZmYgKnNrYjsKIAl1bnNpZ25lZCBpbnQg bGVuOwogCXVuc2lnbmVkIGludCBwYWNrZXRzID0gMDsKIAl1bnNpZ25lZCBpbnQgYnl0ZXMgPSAw OworCXZvaWQgKnB0cjsKIAotCXdoaWxlICgoc2tiID0gdmlydHF1ZXVlX2dldF9idWYoc3EtPnZx LCAmbGVuKSkgIT0gTlVMTCkgewotCQlwcl9kZWJ1ZygiU2VudCBza2IgJXBcbiIsIHNrYik7CisJ d2hpbGUgKChwdHIgPSB2aXJ0cXVldWVfZ2V0X2J1ZihzcS0+dnEsICZsZW4pKSAhPSBOVUxMKSB7 CisJCWlmIChsaWtlbHkoIWlzX3hkcF9mcmFtZShwdHIpKSkgeworCQkJc3RydWN0IHNrX2J1ZmYg KnNrYiA9IHB0cjsKIAotCQlieXRlcyArPSBza2ItPmxlbjsKLQkJcGFja2V0cysrOworCQkJcHJf ZGVidWcoIlNlbnQgc2tiICVwXG4iLCBza2IpOwogCi0JCWRldl9jb25zdW1lX3NrYl9hbnkoc2ti KTsKKwkJCWJ5dGVzICs9IHNrYi0+bGVuOworCQkJbmFwaV9jb25zdW1lX3NrYihza2IsIGluX25h cGkpOworCQl9IGVsc2UgeworCQkJc3RydWN0IHhkcF9mcmFtZSAqZnJhbWUgPSBwdHJfdG9feGRw KHB0cik7CisKKwkJCWJ5dGVzICs9IGZyYW1lLT5sZW47CisJCQl4ZHBfcmV0dXJuX2ZyYW1lKGZy YW1lKTsKKwkJfQorCQlwYWNrZXRzKys7CiAJfQogCiAJLyogQXZvaWQgb3ZlcmhlYWQgd2hlbiBu byBwYWNrZXRzIGhhdmUgYmVlbiBwcm9jZXNzZWQKQEAgLTEzNzUsNyArMTQwNSw3IEBAIHN0YXRp YyB2b2lkIHZpcnRuZXRfcG9sbF9jbGVhbnR4KHN0cnVjdCByZWNlaXZlX3F1ZXVlICpycSkKIAkJ cmV0dXJuOwogCiAJaWYgKF9fbmV0aWZfdHhfdHJ5bG9jayh0eHEpKSB7Ci0JCWZyZWVfb2xkX3ht aXRfc2ticyhzcSk7CisJCWZyZWVfb2xkX3htaXRfc2ticyhzcSwgdHJ1ZSk7CiAJCV9fbmV0aWZf dHhfdW5sb2NrKHR4cSk7CiAJfQogCkBAIC0xNDU5LDcgKzE0ODksNyBAQCBzdGF0aWMgaW50IHZp cnRuZXRfcG9sbF90eChzdHJ1Y3QgbmFwaV9zdHJ1Y3QgKm5hcGksIGludCBidWRnZXQpCiAKIAl0 eHEgPSBuZXRkZXZfZ2V0X3R4X3F1ZXVlKHZpLT5kZXYsIGluZGV4KTsKIAlfX25ldGlmX3R4X2xv Y2sodHhxLCByYXdfc21wX3Byb2Nlc3Nvcl9pZCgpKTsKLQlmcmVlX29sZF94bWl0X3NrYnMoc3Ep OworCWZyZWVfb2xkX3htaXRfc2ticyhzcSwgdHJ1ZSk7CiAJX19uZXRpZl90eF91bmxvY2sodHhx KTsKIAogCXZpcnRxdWV1ZV9uYXBpX2NvbXBsZXRlKG5hcGksIHNxLT52cSwgMCk7CkBAIC0xNTI4 LDcgKzE1NTgsNyBAQCBzdGF0aWMgbmV0ZGV2X3R4X3Qgc3RhcnRfeG1pdChzdHJ1Y3Qgc2tfYnVm ZiAqc2tiLCBzdHJ1Y3QgbmV0X2RldmljZSAqZGV2KQogCWJvb2wgdXNlX25hcGkgPSBzcS0+bmFw aS53ZWlnaHQ7CiAKIAkvKiBGcmVlIHVwIGFueSBwZW5kaW5nIG9sZCBidWZmZXJzIGJlZm9yZSBx dWV1ZWluZyBuZXcgb25lcy4gKi8KLQlmcmVlX29sZF94bWl0X3NrYnMoc3EpOworCWZyZWVfb2xk X3htaXRfc2ticyhzcSwgZmFsc2UpOwogCiAJaWYgKHVzZV9uYXBpICYmIGtpY2spCiAJCXZpcnRx dWV1ZV9lbmFibGVfY2JfZGVsYXllZChzcS0+dnEpOwpAQCAtMTU3MSw3ICsxNjAxLDcgQEAgc3Rh dGljIG5ldGRldl90eF90IHN0YXJ0X3htaXQoc3RydWN0IHNrX2J1ZmYgKnNrYiwgc3RydWN0IG5l dF9kZXZpY2UgKmRldikKIAkJaWYgKCF1c2VfbmFwaSAmJgogCQkgICAgdW5saWtlbHkoIXZpcnRx dWV1ZV9lbmFibGVfY2JfZGVsYXllZChzcS0+dnEpKSkgewogCQkJLyogTW9yZSBqdXN0IGdvdCB1 c2VkLCBmcmVlIHRoZW0gdGhlbiByZWNoZWNrLiAqLwotCQkJZnJlZV9vbGRfeG1pdF9za2JzKHNx KTsKKwkJCWZyZWVfb2xkX3htaXRfc2ticyhzcSwgZmFsc2UpOwogCQkJaWYgKHNxLT52cS0+bnVt X2ZyZWUgPj0gMitNQVhfU0tCX0ZSQUdTKSB7CiAJCQkJbmV0aWZfc3RhcnRfc3VicXVldWUoZGV2 LCBxbnVtKTsKIAkJCQl2aXJ0cXVldWVfZGlzYWJsZV9jYihzcS0+dnEpOwpAQCAtMjU5MCwxMCAr MjYyMCwxMCBAQCBzdGF0aWMgdm9pZCBmcmVlX3VudXNlZF9idWZzKHN0cnVjdCB2aXJ0bmV0X2lu Zm8gKnZpKQogCWZvciAoaSA9IDA7IGkgPCB2aS0+bWF4X3F1ZXVlX3BhaXJzOyBpKyspIHsKIAkJ c3RydWN0IHZpcnRxdWV1ZSAqdnEgPSB2aS0+c3FbaV0udnE7CiAJCXdoaWxlICgoYnVmID0gdmly dHF1ZXVlX2RldGFjaF91bnVzZWRfYnVmKHZxKSkgIT0gTlVMTCkgewotCQkJaWYgKCFpc194ZHBf cmF3X2J1ZmZlcl9xdWV1ZSh2aSwgaSkpCisJCQlpZiAoIWlzX3hkcF9mcmFtZShidWYpKQogCQkJ CWRldl9rZnJlZV9za2IoYnVmKTsKIAkJCWVsc2UKLQkJCQl4ZHBfcmV0dXJuX2ZyYW1lKGJ1Zik7 CisJCQkJeGRwX3JldHVybl9mcmFtZShwdHJfdG9feGRwKGJ1ZikpOwogCQl9CiAJfQogCi0tIAoy LjIwLjEKCg== ----Next_Part(Fri_Feb__1_13_45_13_2019_877)-- Content-Type: Application/Octet-Stream Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="net_420.mbox" RnJvbSBiMGYyM2JmMjVmOTE2Y2Q5MzVlNDkzZTczZjJjNjE3NzZhYWM3ZDc5IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBZb2hlaSBLYW5lbWFydSA8eW9oZWkua2FuZW1hcnVAZ21haWwu Y29tPgpEYXRlOiBUdWUsIDI5IEphbiAyMDE5IDE1OjUyOjM0ICswOTAwClN1YmplY3Q6IFtQQVRD SCAwMS8zM10gaXB2Njogc3I6IGNsZWFyIElQNkNCKHNrYikgb24gU1JIIGlwNGlwNiBlbmNhcHN1 bGF0aW9uCgpbIFVwc3RyZWFtIGNvbW1pdCBlZjQ4OTc0OWFhZTUwOGU2ZjE3ODg2Nzc1YzA3NWYx MmZmOTE5ZmIxIF0KCnNrYi0+Y2IgbWF5IGNvbnRhaW4gZGF0YSBmcm9tIHByZXZpb3VzIGxheWVy cyAoaW4gYW4gb2JzZXJ2ZWQgY2FzZQpJUHY0IHdpdGggTDMgTWFzdGVyIERldmljZSkuIEluIHRo ZSBvYnNlcnZlZCBzY2VuYXJpbywgdGhlIGRhdGEgaW4KSVBDQihza2IpLT5mcmFncyB3YXMgbWlz aW50ZXJwcmV0ZWQgYXMgSVA2Q0Ioc2tiKS0+ZnJhZ19tYXhfc2l6ZSwKZXZlbnR1YWxseSBjYXVz ZWQgYW4gdW5leHBlY3RlZCBJUHY2IGZyYWdtZW50YXRpb24gaW4gaXA2X2ZyYWdtZW50KCkKdGhy b3VnaCBpcDZfZmluaXNoX291dHB1dCgpLgoKVGhpcyBwYXRjaCBjbGVhcnMgSVA2Q0Ioc2tiKSwg d2hpY2ggcG90ZW50aWFsbHkgY29udGFpbnMgZ2FyYmFnZSBkYXRhLApvbiB0aGUgU1JIIGlwNGlw NiBlbmNhcHN1bGF0aW9uLgoKRml4ZXM6IDMyZDk5ZDBiNjcwMiAoImlwdjY6IHNyOiBhZGQgc3Vw cG9ydCBmb3IgaXA0aXA2IGVuY2Fwc3VsYXRpb24iKQpTaWduZWQtb2ZmLWJ5OiBZb2hlaSBLYW5l bWFydSA8eW9oZWkua2FuZW1hcnVAZ21haWwuY29tPgpTaWduZWQtb2ZmLWJ5OiBEYXZpZCBTLiBN aWxsZXIgPGRhdmVtQGRhdmVtbG9mdC5uZXQ+Ci0tLQogbmV0L2lwdjYvc2VnNl9pcHR1bm5lbC5j IHwgMiArKwogMSBmaWxlIGNoYW5nZWQsIDIgaW5zZXJ0aW9ucygrKQoKZGlmZiAtLWdpdCBhL25l dC9pcHY2L3NlZzZfaXB0dW5uZWwuYyBiL25ldC9pcHY2L3NlZzZfaXB0dW5uZWwuYwppbmRleCA4 MTgxZWU3ZTFlMjcuLmVlNTQwM2NiZTY1NSAxMDA2NDQKLS0tIGEvbmV0L2lwdjYvc2VnNl9pcHR1 bm5lbC5jCisrKyBiL25ldC9pcHY2L3NlZzZfaXB0dW5uZWwuYwpAQCAtMTQ2LDYgKzE0Niw4IEBA IGludCBzZWc2X2RvX3NyaF9lbmNhcChzdHJ1Y3Qgc2tfYnVmZiAqc2tiLCBzdHJ1Y3QgaXB2Nl9z cl9oZHIgKm9zcmgsIGludCBwcm90bykKIAl9IGVsc2UgewogCQlpcDZfZmxvd19oZHIoaGRyLCAw LCBmbG93bGFiZWwpOwogCQloZHItPmhvcF9saW1pdCA9IGlwNl9kc3RfaG9wbGltaXQoc2tiX2Rz dChza2IpKTsKKworCQltZW1zZXQoSVA2Q0Ioc2tiKSwgMCwgc2l6ZW9mKCpJUDZDQihza2IpKSk7 CiAJfQogCiAJaGRyLT5uZXh0aGRyID0gTkVYVEhEUl9ST1VUSU5HOwotLSAKMi4yMC4xCgoKRnJv bSA5ZjljZTdiMzJiODY2OWI0NGU0NDNiZTQ2ZWE0YmM3MjFjYWNjMTI1IE1vbiBTZXAgMTcgMDA6 MDA6MDAgMjAwMQpGcm9tOiBEYW5pZWwgQm9ya21hbm4gPGRhbmllbEBpb2dlYXJib3gubmV0PgpE YXRlOiBXZWQsIDMwIEphbiAyMDE5IDEyOjQ5OjQ4ICswMTAwClN1YmplY3Q6IFtQQVRDSCAwMi8z M10gaXB2bGFuLCBsM21kZXY6IGZpeCBicm9rZW4gbDNzIG1vZGUgd3J0IGxvY2FsIHJvdXRlcwoK WyBVcHN0cmVhbSBjb21taXQgZDUyNTYwODNmNjJlMjcyMGY3NWJiM2M1YTkyOGEwYWZlNDdkNmJj MyBdCgpXaGlsZSBpbXBsZW1lbnRpbmcgaXB2bGFuIGwzIGFuZCBsM3MgbW9kZSBmb3Iga3ViZXJu ZXRlcyBDTkkgcGx1Z2luLApJIHJhbiBpbnRvIHRoZSBpc3N1ZSB0aGF0IHdoaWxlIGwzIG1vZGUg aXMgd29ya2luZyBmaW5lLCBsM3MgbW9kZQpkb2VzIG5vdCBoYXZlIGFueSBjb25uZWN0aXZpdHkg dG8ga3ViZS1hcGlzZXJ2ZXIgYW5kIGhlbmNlIGFsbCBwb2RzCmVuZCB1cCBpbiBFcnJvciBzdGF0 ZSBhcyB3ZWxsLiBUaGUgaXB2bGFuIG1hc3RlciBkZXZpY2Ugc2l0cyBvbgp0b3Agb2YgYSBib25k IGRldmljZSBhbmQgaG9zdG5zIHRyYWZmaWMgdG8ga3ViZS1hcGlzZXJ2ZXIgKGFsc28gcnVubmlu ZwppbiBob3N0bnMpIGlzIEROQVRlZCBmcm9tIDEwLjE1Mi4xODMuMTo0NDMgdG8gMTM5LjE3OC4y OS4yMDc6Mzc1NzMKd2hlcmUgdGhlIGxhdHRlciBpcyB0aGUgYWRkcmVzcyBvZiB0aGUgYm9uZDAu IFdoaWxlIGluIGwzIG1vZGUsIGEKY3VybCB0byBodHRwczovLzEwLjE1Mi4xODMuMTo0NDMgb3Ig dG8gaHR0cHM6Ly8xMzkuMTc4LjI5LjIwNzozNzU3Mwp3b3JrcyBmaW5lIGZyb20gaG9zdG5zLCBu ZWl0aGVyIG9mIHRoZW0gZG8gaW4gY2FzZSBvZiBsM3MuIEluIHRoZQpsYXR0ZXIgb25seSBhIGN1 cmwgdG8gaHR0cHM6Ly8xMjcuMC4wLjE6Mzc1NzMgYXBwZWFyZWQgdG8gd29yayB3aGVyZQpmb3Ig bG9jYWwgYWRkcmVzc2VzIG9mIGJvbmQwIEkgc2F3IGtlcm5lbCBzdWRkZW5seSBzdGFydGluZyB0 byBlbWl0CkFSUCByZXF1ZXN0cyB0byBxdWVyeSBIVyBhZGRyZXNzIG9mIGJvbmQwIHdoaWNoIHJl bWFpbmVkIHVuYW5zd2VyZWQKYW5kIG5laWdoYm9yIGVudHJpZXMgaW4gSU5DT01QTEVURSBzdGF0 ZS4gVGhlc2UgQVJQIHJlcXVlc3RzIG9ubHkKaGFwcGVuIHdoaWxlIGluIGwzcy4KCkRlYnVnZ2lu ZyB0aGlzIGZ1cnRoZXIsIEkgZm91bmQgdGhlIGlzc3VlIGlzIHRoYXQgbDNzIG1vZGUgaXMgcGln Z3ktCmJhY2tpbmcgb24gbDMgbWFzdGVyIGRldmljZSwgYW5kIGluIHRoaXMgY2FzZSBsb2NhbCBy b3V0ZXMgYXJlIHVzaW5nCmwzbWRldl9tYXN0ZXJfZGV2X3JjdShkZXYpIGluc3RlYWQgb2YgbmV0 LT5sb29wYmFja19kZXYgYXMgcGVyIGNvbW1pdApmNWEwYWFiODRiNzQgKCJuZXQ6IGlwdjQ6IGRz dCBmb3IgbG9jYWwgaW5wdXQgcm91dGVzIHNob3VsZCB1c2UgbDNtZGV2CmlmIHJlbGV2YW50Iikg YW5kIDVmMDJjZTI0YzI2OSAoIm5ldDogbDNtZGV2OiBBbGxvdyB0aGUgbDNtZGV2IHRvIGJlCmEg bG9vcGJhY2siKS4gSSBmb3VuZCB0aGF0IHJldmVydGluZyB0aGVtIGJhY2sgaW50byB1c2luZyB0 aGUKbmV0LT5sb29wYmFja19kZXYgZml4ZWQgaXB2bGFuIGwzcyBjb25uZWN0aXZpdHkgYW5kIGdv dCBldmVyeXRoaW5nCndvcmtpbmcgZm9yIHRoZSBDTkkuCgpOb3cganVkZ2luZyBmcm9tIDRmYmFl N2Q4M2M5OCAoImlwdmxhbjogSW50cm9kdWNlIGwzcyBtb2RlIikgYW5kIHRoZQpsM21kZXYgcGFw ZXIgaW4gWzBdIHRoZSBvbmx5IHNvbGUgcmVhc29uIHdoeSBpcHZsYW4gbDNzIGlzIHJlbHlpbmcK b24gbDMgbWFzdGVyIGRldmljZSBpcyB0byBnZXQgdGhlIGwzbWRldl9pcF9yY3YoKSByZWNlaXZl IGhvb2sgZm9yCnNldHRpbmcgdGhlIGRzdCBlbnRyeSBvZiB0aGUgaW5wdXQgcm91dGUgd2l0aG91 dCBhZGRpbmcgaXRzIG93bgppcHZsYW4gc3BlY2lmaWMgaGFja3MgaW50byB0aGUgcmVjZWl2ZSBw YXRoLCBob3dldmVyLCBhbnkgbDMgZG9tYWluCnNlbWFudGljcyBiZXlvbmQganVzdCB0aGF0IGFy ZSBicmVha2luZyBsM3Mgb3BlcmF0aW9uLiBOb3RlIHRoYXQKaXB2bGFuIGFsc28gaGFzIHRoZSBh YmlsaXR5IHRvIGR5bmFtaWNhbGx5IHN3aXRjaCBpdHMgaW50ZXJuYWwKb3BlcmF0aW9uIGZyb20g bDMgdG8gbDNzIGZvciBhbGwgcG9ydHMgdmlhIGlwdmxhbl9zZXRfcG9ydF9tb2RlKCkKYXQgcnVu dGltZS4gSW4gYW55IGNhc2UsIGwzIHZzIGwzcyBzb2xleSBkaXN0aW5ndWlzaGVzIGl0c2VsZiBi eQonZGUtY29uZnVzaW5nJyBuZXRmaWx0ZXIgdGhyb3VnaCBzd2l0Y2hpbmcgc2tiLT5kZXYgdG8g aXB2bGFuIHNsYXZlCmRldmljZSBsYXRlIGluIE5GX0lORVRfTE9DQUxfSU4gYmVmb3JlIGhhbmRp bmcgdGhlIHNrYiB0byBMNC4KCk1pbmltYWwgZml4IHRha2VuIGhlcmUgaXMgdG8gYWRkIGEgSUZG X0wzTURFVl9SWF9IQU5ETEVSIGZsYWcgd2hpY2gsCmlmIHNldCBmcm9tIGlwdmxhbiBzZXR1cCwg Z2V0cyB1cyBvbmx5IHRoZSB3YW50ZWQgbDNtZGV2X2wzX3JjdigpIGhvb2sKd2l0aG91dCBhbnkg YWRkaXRpb25hbCBsM21kZXYgc2VtYW50aWNzIG9uIHRvcC4gVGhpcyBzaG91bGQgYWxzbyBoYXZl Cm1pbmltYWwgaW1wYWN0IHNpbmNlIGRldi0+cHJpdl9mbGFncyBpcyBhbHJlYWR5IGhvdCBpbiBj YWNoZS4gV2l0aAp0aGlzIHNldCwgbDNzIG1vZGUgaXMgd29ya2luZyBmaW5lIGFuZCBJIGFsc28g Z2V0IHRoaW5ncyBsaWtlCm1hc3F1ZXJhZGluZyBwb2QgdHJhZmZpYyBvbiB0aGUgaXB2bGFuIG1h c3RlciBwcm9wZXJseSB3b3JraW5nLgoKICBbMF0gaHR0cHM6Ly9uZXRkZXZjb25mLm9yZy8xLjIv cGFwZXJzL2FoZXJuLXdoYXQtaXMtbDNtZGV2LXBhcGVyLnBkZgoKRml4ZXM6IGY1YTBhYWI4NGI3 NCAoIm5ldDogaXB2NDogZHN0IGZvciBsb2NhbCBpbnB1dCByb3V0ZXMgc2hvdWxkIHVzZSBsM21k ZXYgaWYgcmVsZXZhbnQiKQpGaXhlczogNWYwMmNlMjRjMjY5ICgibmV0OiBsM21kZXY6IEFsbG93 IHRoZSBsM21kZXYgdG8gYmUgYSBsb29wYmFjayIpCkZpeGVzOiA0ZmJhZTdkODNjOTggKCJpcHZs YW46IEludHJvZHVjZSBsM3MgbW9kZSIpClNpZ25lZC1vZmYtYnk6IERhbmllbCBCb3JrbWFubiA8 ZGFuaWVsQGlvZ2VhcmJveC5uZXQ+CkNjOiBNYWhlc2ggQmFuZGV3YXIgPG1haGVzaGJAZ29vZ2xl LmNvbT4KQ2M6IERhdmlkIEFoZXJuIDxkc2FAY3VtdWx1c25ldHdvcmtzLmNvbT4KQ2M6IEZsb3Jp YW4gV2VzdHBoYWwgPGZ3QHN0cmxlbi5kZT4KQ2M6IE1hcnR5bmFzIFB1bXB1dGlzIDxtQGxhbWJk YS5sdD4KQWNrZWQtYnk6IERhdmlkIEFoZXJuIDxkc2FAY3VtdWx1c25ldHdvcmtzLmNvbT4KU2ln bmVkLW9mZi1ieTogRGF2aWQgUy4gTWlsbGVyIDxkYXZlbUBkYXZlbWxvZnQubmV0PgotLS0KIGRy aXZlcnMvbmV0L2lwdmxhbi9pcHZsYW5fbWFpbi5jIHwgNiArKystLS0KIGluY2x1ZGUvbGludXgv bmV0ZGV2aWNlLmggICAgICAgIHwgOCArKysrKysrKwogaW5jbHVkZS9uZXQvbDNtZGV2LmggICAg ICAgICAgICAgfCAzICsrLQogMyBmaWxlcyBjaGFuZ2VkLCAxMyBpbnNlcnRpb25zKCspLCA0IGRl bGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L2lwdmxhbi9pcHZsYW5fbWFpbi5j IGIvZHJpdmVycy9uZXQvaXB2bGFuL2lwdmxhbl9tYWluLmMKaW5kZXggNGE5NDk1NjllYzRjLi41 ZmI1NDE4OTc4NjMgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvbmV0L2lwdmxhbi9pcHZsYW5fbWFpbi5j CisrKyBiL2RyaXZlcnMvbmV0L2lwdmxhbi9pcHZsYW5fbWFpbi5jCkBAIC05NywxMiArOTcsMTIg QEAgc3RhdGljIGludCBpcHZsYW5fc2V0X3BvcnRfbW9kZShzdHJ1Y3QgaXB2bF9wb3J0ICpwb3J0 LCB1MTYgbnZhbCkKIAkJCWVyciA9IGlwdmxhbl9yZWdpc3Rlcl9uZl9ob29rKHJlYWRfcG5ldCgm cG9ydC0+cG5ldCkpOwogCQkJaWYgKCFlcnIpIHsKIAkJCQltZGV2LT5sM21kZXZfb3BzID0gJmlw dmxfbDNtZGV2X29wczsKLQkJCQltZGV2LT5wcml2X2ZsYWdzIHw9IElGRl9MM01ERVZfTUFTVEVS OworCQkJCW1kZXYtPnByaXZfZmxhZ3MgfD0gSUZGX0wzTURFVl9SWF9IQU5ETEVSOwogCQkJfSBl bHNlCiAJCQkJZ290byBmYWlsOwogCQl9IGVsc2UgaWYgKHBvcnQtPm1vZGUgPT0gSVBWTEFOX01P REVfTDNTKSB7CiAJCQkvKiBPbGQgbW9kZSB3YXMgTDNTICovCi0JCQltZGV2LT5wcml2X2ZsYWdz ICY9IH5JRkZfTDNNREVWX01BU1RFUjsKKwkJCW1kZXYtPnByaXZfZmxhZ3MgJj0gfklGRl9MM01E RVZfUlhfSEFORExFUjsKIAkJCWlwdmxhbl91bnJlZ2lzdGVyX25mX2hvb2socmVhZF9wbmV0KCZw b3J0LT5wbmV0KSk7CiAJCQltZGV2LT5sM21kZXZfb3BzID0gTlVMTDsKIAkJfQpAQCAtMTYyLDcg KzE2Miw3IEBAIHN0YXRpYyB2b2lkIGlwdmxhbl9wb3J0X2Rlc3Ryb3koc3RydWN0IG5ldF9kZXZp Y2UgKmRldikKIAlzdHJ1Y3Qgc2tfYnVmZiAqc2tiOwogCiAJaWYgKHBvcnQtPm1vZGUgPT0gSVBW TEFOX01PREVfTDNTKSB7Ci0JCWRldi0+cHJpdl9mbGFncyAmPSB+SUZGX0wzTURFVl9NQVNURVI7 CisJCWRldi0+cHJpdl9mbGFncyAmPSB+SUZGX0wzTURFVl9SWF9IQU5ETEVSOwogCQlpcHZsYW5f dW5yZWdpc3Rlcl9uZl9ob29rKGRldl9uZXQoZGV2KSk7CiAJCWRldi0+bDNtZGV2X29wcyA9IE5V TEw7CiAJfQpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9saW51eC9uZXRkZXZpY2UuaCBiL2luY2x1ZGUv bGludXgvbmV0ZGV2aWNlLmgKaW5kZXggODU3ZjhhYmY3YjkxLi5kNWUzOGVkZGZiNDkgMTAwNjQ0 Ci0tLSBhL2luY2x1ZGUvbGludXgvbmV0ZGV2aWNlLmgKKysrIGIvaW5jbHVkZS9saW51eC9uZXRk ZXZpY2UuaApAQCAtMTQ4Nyw2ICsxNDg3LDcgQEAgc3RydWN0IG5ldF9kZXZpY2Vfb3BzIHsKICAq IEBJRkZfTk9fUlhfSEFORExFUjogZGV2aWNlIGRvZXNuJ3Qgc3VwcG9ydCB0aGUgcnhfaGFuZGxl ciBob29rCiAgKiBASUZGX0ZBSUxPVkVSOiBkZXZpY2UgaXMgYSBmYWlsb3ZlciBtYXN0ZXIgZGV2 aWNlCiAgKiBASUZGX0ZBSUxPVkVSX1NMQVZFOiBkZXZpY2UgaXMgbG93ZXIgZGV2IG9mIGEgZmFp bG92ZXIgbWFzdGVyIGRldmljZQorICogQElGRl9MM01ERVZfUlhfSEFORExFUjogb25seSBpbnZv a2UgdGhlIHJ4IGhhbmRsZXIgb2YgTDMgbWFzdGVyIGRldmljZQogICovCiBlbnVtIG5ldGRldl9w cml2X2ZsYWdzIHsKIAlJRkZfODAyXzFRX1ZMQU4JCQk9IDE8PDAsCkBAIC0xNTE4LDYgKzE1MTks NyBAQCBlbnVtIG5ldGRldl9wcml2X2ZsYWdzIHsKIAlJRkZfTk9fUlhfSEFORExFUgkJPSAxPDwy NiwKIAlJRkZfRkFJTE9WRVIJCQk9IDE8PDI3LAogCUlGRl9GQUlMT1ZFUl9TTEFWRQkJPSAxPDwy OCwKKwlJRkZfTDNNREVWX1JYX0hBTkRMRVIJCT0gMTw8MjksCiB9OwogCiAjZGVmaW5lIElGRl84 MDJfMVFfVkxBTgkJCUlGRl84MDJfMVFfVkxBTgpAQCAtMTU0OCw2ICsxNTUwLDcgQEAgZW51bSBu ZXRkZXZfcHJpdl9mbGFncyB7CiAjZGVmaW5lIElGRl9OT19SWF9IQU5ETEVSCQlJRkZfTk9fUlhf SEFORExFUgogI2RlZmluZSBJRkZfRkFJTE9WRVIJCQlJRkZfRkFJTE9WRVIKICNkZWZpbmUgSUZG X0ZBSUxPVkVSX1NMQVZFCQlJRkZfRkFJTE9WRVJfU0xBVkUKKyNkZWZpbmUgSUZGX0wzTURFVl9S WF9IQU5ETEVSCQlJRkZfTDNNREVWX1JYX0hBTkRMRVIKIAogLyoqCiAgKglzdHJ1Y3QgbmV0X2Rl dmljZSAtIFRoZSBERVZJQ0Ugc3RydWN0dXJlLgpAQCAtNDUyMyw2ICs0NTI2LDExIEBAIHN0YXRp YyBpbmxpbmUgYm9vbCBuZXRpZl9zdXBwb3J0c19ub2ZjcyhzdHJ1Y3QgbmV0X2RldmljZSAqZGV2 KQogCXJldHVybiBkZXYtPnByaXZfZmxhZ3MgJiBJRkZfU1VQUF9OT0ZDUzsKIH0KIAorc3RhdGlj IGlubGluZSBib29sIG5ldGlmX2hhc19sM19yeF9oYW5kbGVyKGNvbnN0IHN0cnVjdCBuZXRfZGV2 aWNlICpkZXYpCit7CisJcmV0dXJuIGRldi0+cHJpdl9mbGFncyAmIElGRl9MM01ERVZfUlhfSEFO RExFUjsKK30KKwogc3RhdGljIGlubGluZSBib29sIG5ldGlmX2lzX2wzX21hc3Rlcihjb25zdCBz dHJ1Y3QgbmV0X2RldmljZSAqZGV2KQogewogCXJldHVybiBkZXYtPnByaXZfZmxhZ3MgJiBJRkZf TDNNREVWX01BU1RFUjsKZGlmZiAtLWdpdCBhL2luY2x1ZGUvbmV0L2wzbWRldi5oIGIvaW5jbHVk ZS9uZXQvbDNtZGV2LmgKaW5kZXggMzgzMjA5OTI4OWM1Li4xMjg0ODc2NThmZjcgMTAwNjQ0Ci0t LSBhL2luY2x1ZGUvbmV0L2wzbWRldi5oCisrKyBiL2luY2x1ZGUvbmV0L2wzbWRldi5oCkBAIC0x NDIsNyArMTQyLDggQEAgc3RydWN0IHNrX2J1ZmYgKmwzbWRldl9sM19yY3Yoc3RydWN0IHNrX2J1 ZmYgKnNrYiwgdTE2IHByb3RvKQogCiAJaWYgKG5ldGlmX2lzX2wzX3NsYXZlKHNrYi0+ZGV2KSkK IAkJbWFzdGVyID0gbmV0ZGV2X21hc3Rlcl91cHBlcl9kZXZfZ2V0X3JjdShza2ItPmRldik7Ci0J ZWxzZSBpZiAobmV0aWZfaXNfbDNfbWFzdGVyKHNrYi0+ZGV2KSkKKwllbHNlIGlmIChuZXRpZl9p c19sM19tYXN0ZXIoc2tiLT5kZXYpIHx8CisJCSBuZXRpZl9oYXNfbDNfcnhfaGFuZGxlcihza2It PmRldikpCiAJCW1hc3RlciA9IHNrYi0+ZGV2OwogCiAJaWYgKG1hc3RlciAmJiBtYXN0ZXItPmwz bWRldl9vcHMtPmwzbWRldl9sM19yY3YpCi0tIAoyLjIwLjEKCgpGcm9tIGYzY2VhMDNlZTYwYTBm ZmIyOTdjYjUzMDNhYzllZjZlZjY3NjVlMzAgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCkZyb206 IEphY29iIFdlbiA8amlhbi53LndlbkBvcmFjbGUuY29tPgpEYXRlOiBUaHUsIDMxIEphbiAyMDE5 IDE1OjE4OjU2ICswODAwClN1YmplY3Q6IFtQQVRDSCAwMy8zM10gbDJ0cDogY29weSA0IG1vcmUg Ynl0ZXMgdG8gbGluZWFyIHBhcnQgaWYgbmVjZXNzYXJ5CgpbIFVwc3RyZWFtIGNvbW1pdCA5MWM1 MjQ3MDhkZTYyMDdmNTlkZDM1MTI1MThkOGExYzdiNDM0ZWUzIF0KClRoZSBzaXplIG9mIEwyVFB2 MiBoZWFkZXIgd2l0aCBhbGwgb3B0aW9uYWwgZmllbGRzIGlzIDE0IGJ5dGVzLgpsMnRwX3VkcF9y ZWN2X2NvcmUgb25seSBtb3ZlcyAxMCBieXRlcyB0byB0aGUgbGluZWFyIHBhcnQgb2YgYQpza2Iu IFRoaXMgbWF5IGxlYWQgdG8gbDJ0cF9yZWN2X2NvbW1vbiByZWFkIGRhdGEgb3V0c2lkZSBvZiBh IHNrYi4KClRoaXMgcGF0Y2ggbWFrZSBzdXJlIHRoYXQgdGhlcmUgaXMgYXQgbGVhc3QgMTQgYnl0 ZXMgaW4gdGhlIGxpbmVhcgpwYXJ0IG9mIGEgc2tiIHRvIG1lZXQgdGhlIG1heGltdW0gbmVlZCBv ZiBsMnRwX3VkcF9yZWN2X2NvcmUgYW5kCmwydHBfcmVjdl9jb21tb24uIFRoZSBtaW5pbXVtIHNp emUgb2YgYm90aCBQUFAgSERMQy1saWtlIGZyYW1lIGFuZApFdGhlcm5ldCBmcmFtZSBpcyBsYXJn ZXIgdGhhbiAxNCBieXRlcywgc28gd2UgYXJlIHNhZmUgdG8gZG8gc28uCgpBbHNvIHJlbW92ZSBM MlRQX0hEUl9TSVpFX05PU0VRLCBpdCBpcyB1bnVzZWQgbm93LgoKRml4ZXM6IGZkNTU4ZDE4NmRm MiAoImwydHA6IFNwbGl0IHBwcG9sMnRwIHBhdGNoIGludG8gc2VwYXJhdGUgbDJ0cCBhbmQgcHBw IHBhcnRzIikKU3VnZ2VzdGVkLWJ5OiBHdWlsbGF1bWUgTmF1bHQgPGduYXVsdEByZWRoYXQuY29t PgpTaWduZWQtb2ZmLWJ5OiBKYWNvYiBXZW4gPGppYW4udy53ZW5Ab3JhY2xlLmNvbT4KQWNrZWQt Ynk6IEd1aWxsYXVtZSBOYXVsdCA8Z25hdWx0QHJlZGhhdC5jb20+ClNpZ25lZC1vZmYtYnk6IERh dmlkIFMuIE1pbGxlciA8ZGF2ZW1AZGF2ZW1sb2Z0Lm5ldD4KLS0tCiBuZXQvbDJ0cC9sMnRwX2Nv cmUuYyB8IDUgKystLS0KIDEgZmlsZSBjaGFuZ2VkLCAyIGluc2VydGlvbnMoKyksIDMgZGVsZXRp b25zKC0pCgpkaWZmIC0tZ2l0IGEvbmV0L2wydHAvbDJ0cF9jb3JlLmMgYi9uZXQvbDJ0cC9sMnRw X2NvcmUuYwppbmRleCAyNmYxZDQzNTY5NmEuLjlhY2NhZWMxNWMzMiAxMDA2NDQKLS0tIGEvbmV0 L2wydHAvbDJ0cF9jb3JlLmMKKysrIGIvbmV0L2wydHAvbDJ0cF9jb3JlLmMKQEAgLTgzLDggKzgz LDcgQEAKICNkZWZpbmUgTDJUUF9TTEZMQUdfUwkgICAweDQwMDAwMDAwCiAjZGVmaW5lIEwyVFBf U0xfU0VRX01BU0sgICAweDAwZmZmZmZmCiAKLSNkZWZpbmUgTDJUUF9IRFJfU0laRV9TRVEJCTEw Ci0jZGVmaW5lIEwyVFBfSERSX1NJWkVfTk9TRVEJCTYKKyNkZWZpbmUgTDJUUF9IRFJfU0laRV9N QVgJCTE0CiAKIC8qIERlZmF1bHQgdHJhY2UgZmxhZ3MgKi8KICNkZWZpbmUgTDJUUF9ERUZBVUxU X0RFQlVHX0ZMQUdTCTAKQEAgLTgwOCw3ICs4MDcsNyBAQCBzdGF0aWMgaW50IGwydHBfdWRwX3Jl Y3ZfY29yZShzdHJ1Y3QgbDJ0cF90dW5uZWwgKnR1bm5lbCwgc3RydWN0IHNrX2J1ZmYgKnNrYikK IAlfX3NrYl9wdWxsKHNrYiwgc2l6ZW9mKHN0cnVjdCB1ZHBoZHIpKTsKIAogCS8qIFNob3J0IHBh Y2tldD8gKi8KLQlpZiAoIXBza2JfbWF5X3B1bGwoc2tiLCBMMlRQX0hEUl9TSVpFX1NFUSkpIHsK KwlpZiAoIXBza2JfbWF5X3B1bGwoc2tiLCBMMlRQX0hEUl9TSVpFX01BWCkpIHsKIAkJbDJ0cF9p bmZvKHR1bm5lbCwgTDJUUF9NU0dfREFUQSwKIAkJCSAgIiVzOiByZWN2IHNob3J0IHBhY2tldCAo bGVuPSVkKVxuIiwKIAkJCSAgdHVubmVsLT5uYW1lLCBza2ItPmxlbik7Ci0tIAoyLjIwLjEKCgpG cm9tIDc1OTAyODAwNTg2Y2FlNGNmZjg1ZGU1N2VhMTlmMGUzMjVmM2M1YzEgTW9uIFNlcCAxNyAw MDowMDowMCAyMDAxCkZyb206IEphY29iIFdlbiA8amlhbi53LndlbkBvcmFjbGUuY29tPgpEYXRl OiBXZWQsIDMwIEphbiAyMDE5IDE0OjU1OjE0ICswODAwClN1YmplY3Q6IFtQQVRDSCAwNC8zM10g bDJ0cDogZml4IHJlYWRpbmcgb3B0aW9uYWwgZmllbGRzIG9mIEwyVFB2MwoKWyBVcHN0cmVhbSBj b21taXQgNDUyMmE3MGRiN2FhNWU3NzUyNmE0MDc5NjI4NTc4NTk5ODIxYjE5MyBdCgpVc2UgcHNr Yl9tYXlfcHVsbCgpIHRvIG1ha2Ugc3VyZSB0aGUgb3B0aW9uYWwgZmllbGRzIGFyZSBpbiBza2Ig bGluZWFyCnBhcnRzLCBzbyB3ZSBjYW4gc2FmZWx5IHJlYWQgdGhlbSBsYXRlci4KCkl0J3MgZWFz eSB0byByZXByb2R1Y2UgdGhlIGlzc3VlIHdpdGggYSBuZXQgZHJpdmVyIHRoYXQgc3VwcG9ydHMg cGFnZWQKc2tiIGRhdGEuIEp1c3QgY3JlYXRlIGEgTDJUUHYzIG92ZXIgSVAgdHVubmVsIGFuZCB0 aGVuIGdlbmVyYXRlcyBzb21lCm5ldHdvcmsgdHJhZmZpYy4KT25jZSByZXByb2R1Y2VkLCByeCBl cnIgaW4gL3N5cy9rZXJuZWwvZGVidWcvbDJ0cC90dW5uZWxzIHdpbGwgaW5jcmVhc2UuCgpDaGFu Z2VzIGluIHY0OgoxLiBzL2wydHBfdjNfcHVsbF9vcHQvbDJ0cF92M19lbnN1cmVfb3B0X2luX2xp bmVhci8KMi4gcy90dW5uZWwtPnZlcnNpb24gIT0gTDJUUF9IRFJfVkVSXzIvdHVubmVsLT52ZXJz aW9uID09IEwyVFBfSERSX1ZFUl8zLwozLiBBZGQgJ0ZpeGVzJyBpbiBjb21taXQgbWVzc2FnZXMu CgpDaGFuZ2VzIGluIHYzOgoxLiBUbyBrZWVwIGNvbnNpc3RlbmN5LCBtb3ZlIHRoZSBjb2RlIG91 dCBvZiBsMnRwX3JlY3ZfY29tbW9uLgoyLiBVc2UgIm5ldCIgaW5zdGVhZCBvZiAibmV0LW5leHQi LCBzaW5jZSB0aGlzIGlzIGEgYnVnIGZpeC4KCkNoYW5nZXMgaW4gdjI6CjEuIE9ubHkgZml4IEwy VFB2MyB0byBtYWtlIGNvZGUgc2ltcGxlLgogICBUbyBmaXggYm90aCBMMlRQdjMgYW5kIEwyVFB2 Miwgd2UnZCBiZXR0ZXIgcmVmYWN0b3IgbDJ0cF9yZWN2X2NvbW1vbi4KICAgSXQncyBjb21wbGlj YXRlZCB0byBkbyBzby4KMi4gUmVsb2FkaW5nIHBvaW50ZXJzIGFmdGVyIHBza2JfbWF5X3B1bGwK CkZpeGVzOiBmN2ZhZmZhM2ZmOGUgKCJsMnRwOiBBZGQgTDJUUHYzIHByb3RvY29sIHN1cHBvcnQi KQpGaXhlczogMGQ3Njc1MWZhZDc3ICgibDJ0cDogQWRkIEwyVFB2MyBJUCBlbmNhcHN1bGF0aW9u IChubyBVRFApIHN1cHBvcnQiKQpGaXhlczogYTMyZTBlZWM3MDQyICgibDJ0cDogaW50cm9kdWNl IEwyVFB2MyBJUCBlbmNhcHN1bGF0aW9uIHN1cHBvcnQgZm9yIElQdjYiKQpTaWduZWQtb2ZmLWJ5 OiBKYWNvYiBXZW4gPGppYW4udy53ZW5Ab3JhY2xlLmNvbT4KQWNrZWQtYnk6IEd1aWxsYXVtZSBO YXVsdCA8Z25hdWx0QHJlZGhhdC5jb20+ClNpZ25lZC1vZmYtYnk6IERhdmlkIFMuIE1pbGxlciA8 ZGF2ZW1AZGF2ZW1sb2Z0Lm5ldD4KLS0tCiBuZXQvbDJ0cC9sMnRwX2NvcmUuYyB8ICA0ICsrKysK IG5ldC9sMnRwL2wydHBfY29yZS5oIHwgMjAgKysrKysrKysrKysrKysrKysrKysKIG5ldC9sMnRw L2wydHBfaXAuYyAgIHwgIDMgKysrCiBuZXQvbDJ0cC9sMnRwX2lwNi5jICB8ICAzICsrKwogNCBm aWxlcyBjaGFuZ2VkLCAzMCBpbnNlcnRpb25zKCspCgpkaWZmIC0tZ2l0IGEvbmV0L2wydHAvbDJ0 cF9jb3JlLmMgYi9uZXQvbDJ0cC9sMnRwX2NvcmUuYwppbmRleCA5YWNjYWVjMTVjMzIuLmZlZDZi ZWNjNWRhZiAxMDA2NDQKLS0tIGEvbmV0L2wydHAvbDJ0cF9jb3JlLmMKKysrIGIvbmV0L2wydHAv bDJ0cF9jb3JlLmMKQEAgLTg4Myw2ICs4ODMsMTAgQEAgc3RhdGljIGludCBsMnRwX3VkcF9yZWN2 X2NvcmUoc3RydWN0IGwydHBfdHVubmVsICp0dW5uZWwsIHN0cnVjdCBza19idWZmICpza2IpCiAJ CWdvdG8gZXJyb3I7CiAJfQogCisJaWYgKHR1bm5lbC0+dmVyc2lvbiA9PSBMMlRQX0hEUl9WRVJf MyAmJgorCSAgICBsMnRwX3YzX2Vuc3VyZV9vcHRfaW5fbGluZWFyKHNlc3Npb24sIHNrYiwgJnB0 ciwgJm9wdHIpKQorCQlnb3RvIGVycm9yOworCiAJbDJ0cF9yZWN2X2NvbW1vbihzZXNzaW9uLCBz a2IsIHB0ciwgb3B0ciwgaGRyZmxhZ3MsIGxlbmd0aCk7CiAJbDJ0cF9zZXNzaW9uX2RlY19yZWZj b3VudChzZXNzaW9uKTsKIApkaWZmIC0tZ2l0IGEvbmV0L2wydHAvbDJ0cF9jb3JlLmggYi9uZXQv bDJ0cC9sMnRwX2NvcmUuaAppbmRleCA5YzlhZmU5NGQzODkuLmIyY2U5MDI2MGMzNSAxMDA2NDQK LS0tIGEvbmV0L2wydHAvbDJ0cF9jb3JlLmgKKysrIGIvbmV0L2wydHAvbDJ0cF9jb3JlLmgKQEAg LTMwMSw2ICszMDEsMjYgQEAgc3RhdGljIGlubGluZSBib29sIGwydHBfdHVubmVsX3VzZXNfeGZy bShjb25zdCBzdHJ1Y3QgbDJ0cF90dW5uZWwgKnR1bm5lbCkKIH0KICNlbmRpZgogCitzdGF0aWMg aW5saW5lIGludCBsMnRwX3YzX2Vuc3VyZV9vcHRfaW5fbGluZWFyKHN0cnVjdCBsMnRwX3Nlc3Np b24gKnNlc3Npb24sIHN0cnVjdCBza19idWZmICpza2IsCisJCQkJCSAgICAgICB1bnNpZ25lZCBj aGFyICoqcHRyLCB1bnNpZ25lZCBjaGFyICoqb3B0cikKK3sKKwlpbnQgb3B0X2xlbiA9IHNlc3Np b24tPnBlZXJfY29va2llX2xlbiArIGwydHBfZ2V0X2wyc3BlY2lmaWNfbGVuKHNlc3Npb24pOwor CisJaWYgKG9wdF9sZW4gPiAwKSB7CisJCWludCBvZmYgPSAqcHRyIC0gKm9wdHI7CisKKwkJaWYg KCFwc2tiX21heV9wdWxsKHNrYiwgb2ZmICsgb3B0X2xlbikpCisJCQlyZXR1cm4gLTE7CisKKwkJ aWYgKHNrYi0+ZGF0YSAhPSAqb3B0cikgeworCQkJKm9wdHIgPSBza2ItPmRhdGE7CisJCQkqcHRy ID0gc2tiLT5kYXRhICsgb2ZmOworCQl9CisJfQorCisJcmV0dXJuIDA7Cit9CisKICNkZWZpbmUg bDJ0cF9wcmludGsocHRyLCB0eXBlLCBmdW5jLCBmbXQsIC4uLikJCQkJXAogZG8gewkJCQkJCQkJ CVwKIAlpZiAoKChwdHIpLT5kZWJ1ZykgJiAodHlwZSkpCQkJCQlcCmRpZmYgLS1naXQgYS9uZXQv bDJ0cC9sMnRwX2lwLmMgYi9uZXQvbDJ0cC9sMnRwX2lwLmMKaW5kZXggMzVmNmY4NmQ0ZGNjLi5k NGM2MDUyM2M1NDkgMTAwNjQ0Ci0tLSBhL25ldC9sMnRwL2wydHBfaXAuYworKysgYi9uZXQvbDJ0 cC9sMnRwX2lwLmMKQEAgLTE2NSw2ICsxNjUsOSBAQCBzdGF0aWMgaW50IGwydHBfaXBfcmVjdihz dHJ1Y3Qgc2tfYnVmZiAqc2tiKQogCQlwcmludF9oZXhfZHVtcF9ieXRlcygiIiwgRFVNUF9QUkVG SVhfT0ZGU0VULCBwdHIsIGxlbmd0aCk7CiAJfQogCisJaWYgKGwydHBfdjNfZW5zdXJlX29wdF9p bl9saW5lYXIoc2Vzc2lvbiwgc2tiLCAmcHRyLCAmb3B0cikpCisJCWdvdG8gZGlzY2FyZF9zZXNz OworCiAJbDJ0cF9yZWN2X2NvbW1vbihzZXNzaW9uLCBza2IsIHB0ciwgb3B0ciwgMCwgc2tiLT5s ZW4pOwogCWwydHBfc2Vzc2lvbl9kZWNfcmVmY291bnQoc2Vzc2lvbik7CiAKZGlmZiAtLWdpdCBh L25ldC9sMnRwL2wydHBfaXA2LmMgYi9uZXQvbDJ0cC9sMnRwX2lwNi5jCmluZGV4IDIzN2YxYTRh MGIwYy4uMGFlNjg5OWVkYWMwIDEwMDY0NAotLS0gYS9uZXQvbDJ0cC9sMnRwX2lwNi5jCisrKyBi L25ldC9sMnRwL2wydHBfaXA2LmMKQEAgLTE3OCw2ICsxNzgsOSBAQCBzdGF0aWMgaW50IGwydHBf aXA2X3JlY3Yoc3RydWN0IHNrX2J1ZmYgKnNrYikKIAkJcHJpbnRfaGV4X2R1bXBfYnl0ZXMoIiIs IERVTVBfUFJFRklYX09GRlNFVCwgcHRyLCBsZW5ndGgpOwogCX0KIAorCWlmIChsMnRwX3YzX2Vu c3VyZV9vcHRfaW5fbGluZWFyKHNlc3Npb24sIHNrYiwgJnB0ciwgJm9wdHIpKQorCQlnb3RvIGRp c2NhcmRfc2VzczsKKwogCWwydHBfcmVjdl9jb21tb24oc2Vzc2lvbiwgc2tiLCBwdHIsIG9wdHIs IDAsIHNrYi0+bGVuKTsKIAlsMnRwX3Nlc3Npb25fZGVjX3JlZmNvdW50KHNlc3Npb24pOwogCi0t IAoyLjIwLjEKCgpGcm9tIDljNDE5YmIwZDQ1ZTVmZThjZThmNWE5NTU3ODU3YjI5Nzk1ZGVmMGUg TW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCkZyb206IExvcmVuem8gQmlhbmNvbmkgPGxvcmVuem8u YmlhbmNvbmlAcmVkaGF0LmNvbT4KRGF0ZTogTW9uLCAyOCBKYW4gMjAxOSAyMjoyMzo0OCArMDEw MApTdWJqZWN0OiBbUEFUQ0ggMDUvMzNdIG5ldDogaXBfZ3JlOiBhbHdheXMgcmVwb3J0cyBvX2tl eSB0byB1c2Vyc3BhY2UKClsgVXBzdHJlYW0gY29tbWl0IGZlYWY1Yzc5NmIzZjAyNDBmMTBkMGQ2 ZDBiNjg2NzE1ZmQ1OGEwNWIgXQoKRXJzcGFuIHByb3RvY29sICh2ZXJzaW9uIDEgYW5kIDIpIHJl bGllcyBvbiBvX2tleSB0byBjb25maWd1cmUKc2Vzc2lvbiBpZCBoZWFkZXIgZmllbGQuIEhvd2V2 ZXIgVFVOTkVMX0tFWSBiaXQgaXMgY2xlYXJlZCBpbgplcnNwYW5feG1pdCBzaW5jZSBFUlNQQU4g cHJvdG9jb2wgZG9lcyBub3Qgc2V0IHRoZSBrZXkgZmllbGQKb2YgdGhlIGV4dGVybmFsIEdSRSBo ZWFkZXIgYW5kIHNvIHRoZSBjb25maWd1cmVkIG9fa2V5IGlzIG5vdCByZXBvcnRlZAp0byB1c2Vy c3BhY2UuIFRoZSBpc3N1ZSBjYW4gYmUgdHJpZ2dlcmVkIHdpdGggdGhlIGZvbGxvd2luZyByZXBy b2R1Y2VyOgoKJGlwIGxpbmsgYWRkIGVyc3BhbjEgdHlwZSBlcnNwYW4gbG9jYWwgMTkyLjE2OC4w LjEgcmVtb3RlIDE5Mi4xNjguMC4yIFwKICAgIGtleSAxIHNlcSBlcnNwYW5fdmVyIDEKJGlwIGxp bmsgc2V0IGVyc3BhbjEgdXAKJGlwIC1kIGxpbmsgc2ggZXJzcGFuMQoKZXJzcGFuMUBOT05FOiA8 QlJPQURDQVNULE1VTFRJQ0FTVCxVUCxMT1dFUl9VUD4gbXR1IDE0NTAgcWRpc2MgcGZpZm9fZmFz dCBzdGF0ZSBVTktOT1dOIG1vZGUgREVGQVVMVAogIGxpbmsvZXRoZXIgNTI6YWE6OTk6OTU6OWE6 YjUgYnJkIGZmOmZmOmZmOmZmOmZmOmZmIHByb21pc2N1aXR5IDAgbWlubXR1IDY4IG1heG10dSAx NTAwCiAgZXJzcGFuIHJlbW90ZSAxOTIuMTY4LjAuMiBsb2NhbCAxOTIuMTY4LjAuMSB0dGwgaW5o ZXJpdCBpa2V5IDAuMC4wLjEgaXNlcSBvc2VxIGVyc3Bhbl9pbmRleCAwCgpGaXggdGhlIGlzc3Vl IGFkZGluZyBUVU5ORUxfS0VZIGJpdCB0byB0aGUgb19mbGFncyBwYXJhbWV0ZXIgaW4KaXBncmVf ZmlsbF9pbmZvCgpGaXhlczogODRlNTRmZTBhNWVhICgiZ3JlOiBpbnRyb2R1Y2UgbmF0aXZlIHR1 bm5lbCBzdXBwb3J0IGZvciBFUlNQQU4iKQpTaWduZWQtb2ZmLWJ5OiBMb3JlbnpvIEJpYW5jb25p IDxsb3JlbnpvLmJpYW5jb25pQHJlZGhhdC5jb20+ClNpZ25lZC1vZmYtYnk6IERhdmlkIFMuIE1p bGxlciA8ZGF2ZW1AZGF2ZW1sb2Z0Lm5ldD4KLS0tCiBuZXQvaXB2NC9pcF9ncmUuYyB8IDcgKysr KysrLQogMSBmaWxlIGNoYW5nZWQsIDYgaW5zZXJ0aW9ucygrKSwgMSBkZWxldGlvbigtKQoKZGlm ZiAtLWdpdCBhL25ldC9pcHY0L2lwX2dyZS5jIGIvbmV0L2lwdjQvaXBfZ3JlLmMKaW5kZXggMzQw N2E4MmQ0NTQ5Li45MjgzMDcxMDMzMWUgMTAwNjQ0Ci0tLSBhL25ldC9pcHY0L2lwX2dyZS5jCisr KyBiL25ldC9pcHY0L2lwX2dyZS5jCkBAIC0xNDY4LDEyICsxNDY4LDE3IEBAIHN0YXRpYyBpbnQg aXBncmVfZmlsbF9pbmZvKHN0cnVjdCBza19idWZmICpza2IsIGNvbnN0IHN0cnVjdCBuZXRfZGV2 aWNlICpkZXYpCiB7CiAJc3RydWN0IGlwX3R1bm5lbCAqdCA9IG5ldGRldl9wcml2KGRldik7CiAJ c3RydWN0IGlwX3R1bm5lbF9wYXJtICpwID0gJnQtPnBhcm1zOworCV9fYmUxNiBvX2ZsYWdzID0g cC0+b19mbGFnczsKKworCWlmICgodC0+ZXJzcGFuX3ZlciA9PSAxIHx8IHQtPmVyc3Bhbl92ZXIg PT0gMikgJiYKKwkgICAgIXQtPmNvbGxlY3RfbWQpCisJCW9fZmxhZ3MgfD0gVFVOTkVMX0tFWTsK IAogCWlmIChubGFfcHV0X3UzMihza2IsIElGTEFfR1JFX0xJTkssIHAtPmxpbmspIHx8CiAJICAg IG5sYV9wdXRfYmUxNihza2IsIElGTEFfR1JFX0lGTEFHUywKIAkJCSBncmVfdG5sX2ZsYWdzX3Rv X2dyZV9mbGFncyhwLT5pX2ZsYWdzKSkgfHwKIAkgICAgbmxhX3B1dF9iZTE2KHNrYiwgSUZMQV9H UkVfT0ZMQUdTLAotCQkJIGdyZV90bmxfZmxhZ3NfdG9fZ3JlX2ZsYWdzKHAtPm9fZmxhZ3MpKSB8 fAorCQkJIGdyZV90bmxfZmxhZ3NfdG9fZ3JlX2ZsYWdzKG9fZmxhZ3MpKSB8fAogCSAgICBubGFf cHV0X2JlMzIoc2tiLCBJRkxBX0dSRV9JS0VZLCBwLT5pX2tleSkgfHwKIAkgICAgbmxhX3B1dF9i ZTMyKHNrYiwgSUZMQV9HUkVfT0tFWSwgcC0+b19rZXkpIHx8CiAJICAgIG5sYV9wdXRfaW5fYWRk cihza2IsIElGTEFfR1JFX0xPQ0FMLCBwLT5pcGguc2FkZHIpIHx8Ci0tIAoyLjIwLjEKCgpGcm9t IDE0ZGRjNzViZGRkOTRlZjA3NTI2NWQyN2U4NTRmYzIxMmMxNWI0NDggTW9uIFNlcCAxNyAwMDow MDowMCAyMDAxCkZyb206IExvcmVuem8gQmlhbmNvbmkgPGxvcmVuem8uYmlhbmNvbmlAcmVkaGF0 LmNvbT4KRGF0ZTogRnJpLCAxOCBKYW4gMjAxOSAxMjowNTozOSArMDEwMApTdWJqZWN0OiBbUEFU Q0ggMDYvMzNdIG5ldDogaXBfZ3JlOiB1c2UgZXJzcGFuIGtleSBmaWVsZCBmb3IgdHVubmVsIGxv b2t1cAoKWyBVcHN0cmVhbSBjb21taXQgY2I3M2VlNDBiMWIzODFlYWYzNzQ5ZTZkYmVlZDU2N2Ji MzhlNTI1OCBdCgpVc2UgRVJTUEFOIGtleSBoZWFkZXIgZmllbGQgYXMgdHVubmVsIGtleSBpbiBn cmVfcGFyc2VfaGVhZGVyIHJvdXRpbmUKc2luY2UgRVJTUEFOIHByb3RvY29sIHNldHMgdGhlIGtl eSBmaWVsZCBvZiB0aGUgZXh0ZXJuYWwgR1JFIGhlYWRlciB0bwowIHJlc3VsdGluZyBpbiBhIHR1 bm5lbCBsb29rdXAgZmFpbCBpbiBpcDZncmVfZXJyLgpJbiBhZGRpdGlvbiByZW1vdmUga2V5IGZp ZWxkIHBhcnNpbmcgYW5kIHBza2JfbWF5X3B1bGwgY2hlY2sgaW4KZXJzcGFuX3JjdiBhbmQgaXA2 ZXJzcGFuX3JjdgoKRml4ZXM6IDVhOTYzZWI2MWI3YyAoImlwNl9ncmU6IEFkZCBFUlNQQU4gbmF0 aXZlIHR1bm5lbCBzdXBwb3J0IikKU2lnbmVkLW9mZi1ieTogTG9yZW56byBCaWFuY29uaSA8bG9y ZW56by5iaWFuY29uaUByZWRoYXQuY29tPgpTaWduZWQtb2ZmLWJ5OiBEYXZpZCBTLiBNaWxsZXIg PGRhdmVtQGRhdmVtbG9mdC5uZXQ+Ci0tLQogbmV0L2lwdjQvZ3JlX2RlbXV4LmMgfCAxNyArKysr KysrKysrKysrKysrKwogbmV0L2lwdjQvaXBfZ3JlLmMgICAgfCAgOSAtLS0tLS0tLS0KIG5ldC9p cHY2L2lwNl9ncmUuYyAgIHwgIDQgLS0tLQogMyBmaWxlcyBjaGFuZ2VkLCAxNyBpbnNlcnRpb25z KCspLCAxMyBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9uZXQvaXB2NC9ncmVfZGVtdXguYyBi L25ldC9pcHY0L2dyZV9kZW11eC5jCmluZGV4IDdlZmU3NDBjMDZlYi4uNTExYjMyZWEyNTMzIDEw MDY0NAotLS0gYS9uZXQvaXB2NC9ncmVfZGVtdXguYworKysgYi9uZXQvaXB2NC9ncmVfZGVtdXgu YwpAQCAtMjUsNiArMjUsNyBAQAogI2luY2x1ZGUgPGxpbnV4L3NwaW5sb2NrLmg+CiAjaW5jbHVk ZSA8bmV0L3Byb3RvY29sLmg+CiAjaW5jbHVkZSA8bmV0L2dyZS5oPgorI2luY2x1ZGUgPG5ldC9l cnNwYW4uaD4KIAogI2luY2x1ZGUgPG5ldC9pY21wLmg+CiAjaW5jbHVkZSA8bmV0L3JvdXRlLmg+ CkBAIC0xMTksNiArMTIwLDIyIEBAIGludCBncmVfcGFyc2VfaGVhZGVyKHN0cnVjdCBza19idWZm ICpza2IsIHN0cnVjdCB0bmxfcHRrX2luZm8gKnRwaSwKIAkJCWhkcl9sZW4gKz0gNDsKIAl9CiAJ dHBpLT5oZHJfbGVuID0gaGRyX2xlbjsKKworCS8qIEVSU1BBTiB2ZXIgMSBhbmQgMiBwcm90b2Nv bCBzZXRzIEdSRSBrZXkgZmllbGQKKwkgKiB0byAwIGFuZCBzZXRzIHRoZSBjb25maWd1cmVkIGtl eSBpbiB0aGUKKwkgKiBpbm5lciBlcnNwYW4gaGVhZGVyIGZpZWxkCisJICovCisJaWYgKGdyZWgt PnByb3RvY29sID09IGh0b25zKEVUSF9QX0VSU1BBTikgfHwKKwkgICAgZ3JlaC0+cHJvdG9jb2wg PT0gaHRvbnMoRVRIX1BfRVJTUEFOMikpIHsKKwkJc3RydWN0IGVyc3Bhbl9iYXNlX2hkciAqZXJz aGRyOworCisJCWlmICghcHNrYl9tYXlfcHVsbChza2IsIG5ocyArIGhkcl9sZW4gKyBzaXplb2Yo KmVyc2hkcikpKQorCQkJcmV0dXJuIC1FSU5WQUw7CisKKwkJZXJzaGRyID0gKHN0cnVjdCBlcnNw YW5fYmFzZV9oZHIgKilvcHRpb25zOworCQl0cGktPmtleSA9IGNwdV90b19iZTMyKGdldF9zZXNz aW9uX2lkKGVyc2hkcikpOworCX0KKwogCXJldHVybiBoZHJfbGVuOwogfQogRVhQT1JUX1NZTUJP TChncmVfcGFyc2VfaGVhZGVyKTsKZGlmZiAtLWdpdCBhL25ldC9pcHY0L2lwX2dyZS5jIGIvbmV0 L2lwdjQvaXBfZ3JlLmMKaW5kZXggOTI4MzA3MTAzMzFlLi5iNTQ4OGM1MTk3YmMgMTAwNjQ0Ci0t LSBhL25ldC9pcHY0L2lwX2dyZS5jCisrKyBiL25ldC9pcHY0L2lwX2dyZS5jCkBAIC0yNjYsMjAg KzI2NiwxMSBAQCBzdGF0aWMgaW50IGVyc3Bhbl9yY3Yoc3RydWN0IHNrX2J1ZmYgKnNrYiwgc3Ry dWN0IHRubF9wdGtfaW5mbyAqdHBpLAogCWludCBsZW47CiAKIAlpdG4gPSBuZXRfZ2VuZXJpYyhu ZXQsIGVyc3Bhbl9uZXRfaWQpOwotCWxlbiA9IGdyZV9oZHJfbGVuICsgc2l6ZW9mKCplcnNoZHIp OwotCi0JLyogQ2hlY2sgYmFzZWQgaGRyIGxlbiAqLwotCWlmICh1bmxpa2VseSghcHNrYl9tYXlf cHVsbChza2IsIGxlbikpKQotCQlyZXR1cm4gUEFDS0VUX1JFSkVDVDsKIAogCWlwaCA9IGlwX2hk cihza2IpOwogCWVyc2hkciA9IChzdHJ1Y3QgZXJzcGFuX2Jhc2VfaGRyICopKHNrYi0+ZGF0YSAr IGdyZV9oZHJfbGVuKTsKIAl2ZXIgPSBlcnNoZHItPnZlcjsKIAotCS8qIFRoZSBvcmlnaW5hbCBH UkUgaGVhZGVyIGRvZXMgbm90IGhhdmUga2V5IGZpZWxkLAotCSAqIFVzZSBFUlNQQU4gMTAtYml0 IHNlc3Npb24gSUQgYXMga2V5LgotCSAqLwotCXRwaS0+a2V5ID0gY3B1X3RvX2JlMzIoZ2V0X3Nl c3Npb25faWQoZXJzaGRyKSk7CiAJdHVubmVsID0gaXBfdHVubmVsX2xvb2t1cChpdG4sIHNrYi0+ ZGV2LT5pZmluZGV4LAogCQkJCSAgdHBpLT5mbGFncyB8IFRVTk5FTF9LRVksCiAJCQkJICBpcGgt PnNhZGRyLCBpcGgtPmRhZGRyLCB0cGktPmtleSk7CmRpZmYgLS1naXQgYS9uZXQvaXB2Ni9pcDZf Z3JlLmMgYi9uZXQvaXB2Ni9pcDZfZ3JlLmMKaW5kZXggYjUyOWE3OWFjMjIyLi5hZDJkMmQyNjlj ZTQgMTAwNjQ0Ci0tLSBhL25ldC9pcHY2L2lwNl9ncmUuYworKysgYi9uZXQvaXB2Ni9pcDZfZ3Jl LmMKQEAgLTUzMiwxMyArNTMyLDkgQEAgc3RhdGljIGludCBpcDZlcnNwYW5fcmN2KHN0cnVjdCBz a19idWZmICpza2IsIGludCBncmVfaGRyX2xlbiwKIAlzdHJ1Y3QgaXA2X3RubCAqdHVubmVsOwog CXU4IHZlcjsKIAotCWlmICh1bmxpa2VseSghcHNrYl9tYXlfcHVsbChza2IsIHNpemVvZigqZXJz aGRyKSkpKQotCQlyZXR1cm4gUEFDS0VUX1JFSkVDVDsKLQogCWlwdjZoID0gaXB2Nl9oZHIoc2ti KTsKIAllcnNoZHIgPSAoc3RydWN0IGVyc3Bhbl9iYXNlX2hkciAqKXNrYi0+ZGF0YTsKIAl2ZXIg PSBlcnNoZHItPnZlcjsKLQl0cGktPmtleSA9IGNwdV90b19iZTMyKGdldF9zZXNzaW9uX2lkKGVy c2hkcikpOwogCiAJdHVubmVsID0gaXA2Z3JlX3R1bm5lbF9sb29rdXAoc2tiLT5kZXYsCiAJCQkJ ICAgICAgJmlwdjZoLT5zYWRkciwgJmlwdjZoLT5kYWRkciwgdHBpLT5rZXksCi0tIAoyLjIwLjEK CgpGcm9tIDVjOWQ3YzVhNjg0NWYzMzAxNjRiYjQ1ODJjZTFlNTdhNjQ2YWUyNzYgTW9uIFNlcCAx NyAwMDowMDowMCAyMDAxCkZyb206IEpha3ViIEtpY2luc2tpIDxqYWt1Yi5raWNpbnNraUBuZXRy b25vbWUuY29tPgpEYXRlOiBUdWUsIDIyIEphbiAyMDE5IDE0OjQ3OjE5IC0wODAwClN1YmplY3Q6 IFtQQVRDSCAwNy8zM10gbmV0L2lwdjY6IGRvbid0IHJldHVybiBwb3NpdGl2ZSBudW1iZXJzIHdo ZW4gbm90aGluZwogd2FzIGR1bXBlZAoKWyBVcHN0cmVhbSBjb21taXQgMTUxODAzOWY2YjVhYzc5 NDMxM2MyNGM3NmY4NWNlYWQwY2Q2MGY2YyBdCgppbjZfZHVtcF9hZGRycygpIHJldHVybnMgYSBw b3NpdGl2ZSAxIGlmIHRoZXJlIHdhcyBub3RoaW5nIHRvIGR1bXAuClRoaXMgcmV0dXJuIHZhbHVl IGNhbiBub3QgYmUgcGFzc2VkIGFzIHJldHVybiBmcm9tIGluZXQ2X2R1bXBfYWRkcigpCmFzIGlz LCBiZWNhdXNlIGl0IHdpbGwgY29uZnVzZSBydG5ldGxpbmssIHJlc3VsdGluZyBpbiBOTE1TR19E T05FCm5ldmVyIGdldHRpbmcgc2V0OgoKJCBpcCBhZGRyIGxpc3QgZGV2IGxvCkVPRiBvbiBuZXRs aW5rCkR1bXAgdGVybWluYXRlZAoKdjI6IGZsaXAgY29uZGl0aW9uIHRvIGF2b2lkIGEgbmV3IGdv dG8gKERhdmVBKQoKRml4ZXM6IDdjMWU4YTM4MTdjNSAoIm5ldGxpbms6IGZpeHVwIHJlZ3Jlc3Np b24gaW4gUlRNX0dFVEFERFIiKQpSZXBvcnRlZC1ieTogQnJlbmRhbiBHYWxsb3dheSA8YnJlbmRh bi5nYWxsb3dheUBuZXRyb25vbWUuY29tPgpTaWduZWQtb2ZmLWJ5OiBKYWt1YiBLaWNpbnNraSA8 amFrdWIua2ljaW5za2lAbmV0cm9ub21lLmNvbT4KUmV2aWV3ZWQtYnk6IERhdmlkIEFoZXJuIDxk c2FoZXJuQGdtYWlsLmNvbT4KVGVzdGVkLWJ5OiBEYXZpZCBBaGVybiA8ZHNhaGVybkBnbWFpbC5j b20+ClNpZ25lZC1vZmYtYnk6IERhdmlkIFMuIE1pbGxlciA8ZGF2ZW1AZGF2ZW1sb2Z0Lm5ldD4K LS0tCiBuZXQvaXB2Ni9hZGRyY29uZi5jIHwgMiArKwogMSBmaWxlIGNoYW5nZWQsIDIgaW5zZXJ0 aW9ucygrKQoKZGlmZiAtLWdpdCBhL25ldC9pcHY2L2FkZHJjb25mLmMgYi9uZXQvaXB2Ni9hZGRy Y29uZi5jCmluZGV4IGUzY2I1M2IwZWY2Ny4uZDJiNTk3Njc0ZDYwIDEwMDY0NAotLS0gYS9uZXQv aXB2Ni9hZGRyY29uZi5jCisrKyBiL25ldC9pcHY2L2FkZHJjb25mLmMKQEAgLTUxMjAsNiArNTEy MCw4IEBAIHN0YXRpYyBpbnQgaW5ldDZfZHVtcF9hZGRyKHN0cnVjdCBza19idWZmICpza2IsIHN0 cnVjdCBuZXRsaW5rX2NhbGxiYWNrICpjYiwKIAkJCWlmIChpZGV2KSB7CiAJCQkJZXJyID0gaW42 X2R1bXBfYWRkcnMoaWRldiwgc2tiLCBjYiwgc19pcF9pZHgsCiAJCQkJCQkgICAgICZmaWxsYXJn cyk7CisJCQkJaWYgKGVyciA+IDApCisJCQkJCWVyciA9IDA7CiAJCQl9CiAJCQlnb3RvIHB1dF90 Z3RfbmV0OwogCQl9Ci0tIAoyLjIwLjEKCgpGcm9tIGVmYjA2ZWY0OGNhODExYzY1MzE5Nzk0MDk3 YmQxNDVhZThlMDFmYmIgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCkZyb206IEF5YSBMZXZpbiA8 YXlhbEBtZWxsYW5veC5jb20+CkRhdGU6IFR1ZSwgMjIgSmFuIDIwMTkgMTU6MTk6NDQgKzAyMDAK U3ViamVjdDogW1BBVENIIDA4LzMzXSBuZXQvbWx4NF9jb3JlOiBBZGQgbWFza2luZyBmb3IgYSBm ZXcgcXVlcmllcyBvbiBIQ0EKIGNhcHMKClsgVXBzdHJlYW0gY29tbWl0IGE0MGRlZDYwNDM2NTg0 NDRlZTRkZDZlZTM3NDExOWU0ZTk4YjMzZmMgXQoKRHJpdmVyIHJlYWRzIHRoZSBxdWVyeSBIQ0Eg Y2FwYWJpbGl0aWVzIHdpdGhvdXQgdGhlIGNvcnJlc3BvbmRpbmcgbWFza3MuCldpdGhvdXQgdGhl IGNvcnJlY3QgbWFza3MsIHRoZSBiYXNlIGFkZHJlc3NlcyBvZiB0aGUgcXVldWVzIGFyZQp1bmFs aWduZWQuICBJbiBhZGRpdGlvbiBzb21lIHJlc2VydmVkIGJpdHMgd2VyZSB3cm9uZ2x5IHJlYWQu ICBVc2luZyB0aGUKY29ycmVjdCBtYXNrcywgZW5zdXJlcyBhbGlnbm1lbnQgb2YgdGhlIGJhc2Ug YWRkcmVzc2VzIGFuZCBhbGxvd3MgZnV0dXJlCmZpcm13YXJlIHZlcnNpb25zIHNhZmUgdXNlIG9m IHRoZSByZXNlcnZlZCBiaXRzLgoKRml4ZXM6IGFiOWMxN2EwMDllZSAoIm1seDRfY29yZTogTW9k aWZ5IGRyaXZlciBpbml0aWFsaXphdGlvbiBmbG93IHRvIGFjY29tbW9kYXRlIFNSSU9WIGZvciBF dGhlcm5ldCIpCkZpeGVzOiAwZmYxZmI2NTRiZWMgKCJ7TkVULCBJQn0vbWx4NDogQWRkIGRldmlj ZSBtYW5hZ2VkIGZsb3cgc3RlZXJpbmcgZmlybXdhcmUgQVBJIikKU2lnbmVkLW9mZi1ieTogQXlh IExldmluIDxheWFsQG1lbGxhbm94LmNvbT4KU2lnbmVkLW9mZi1ieTogVGFyaXEgVG91a2FuIDx0 YXJpcXRAbWVsbGFub3guY29tPgpTaWduZWQtb2ZmLWJ5OiBEYXZpZCBTLiBNaWxsZXIgPGRhdmVt QGRhdmVtbG9mdC5uZXQ+Ci0tLQogZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NC9m dy5jIHwgNzUgKysrKysrKysrKysrKysrLS0tLS0tLS0tLQogMSBmaWxlIGNoYW5nZWQsIDQ2IGlu c2VydGlvbnMoKyksIDI5IGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L2V0 aGVybmV0L21lbGxhbm94L21seDQvZncuYyBiL2RyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94 L21seDQvZncuYwppbmRleCBiYWJjZmQ5YzA1NzEuLjc1MjEzMDQ2NTYzYyAxMDA2NDQKLS0tIGEv ZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NC9mdy5jCisrKyBiL2RyaXZlcnMvbmV0 L2V0aGVybmV0L21lbGxhbm94L21seDQvZncuYwpAQCAtMjA2NCw5ICsyMDY0LDExIEBAIGludCBt bHg0X1FVRVJZX0hDQShzdHJ1Y3QgbWx4NF9kZXYgKmRldiwKIHsKIAlzdHJ1Y3QgbWx4NF9jbWRf bWFpbGJveCAqbWFpbGJveDsKIAlfX2JlMzIgKm91dGJveDsKKwl1NjQgcXdvcmRfZmllbGQ7CiAJ dTMyIGR3b3JkX2ZpZWxkOwotCWludCBlcnI7CisJdTE2IHdvcmRfZmllbGQ7CiAJdTggYnl0ZV9m aWVsZDsKKwlpbnQgZXJyOwogCXN0YXRpYyBjb25zdCB1OCBhMF9kbWZzX3F1ZXJ5X2h3X3N0ZWVy aW5nW10gPSAgewogCQlbMF0gPSBNTFg0X1NURUVSSU5HX0RNRlNfQTBfREVGQVVMVCwKIAkJWzFd ID0gTUxYNF9TVEVFUklOR19ETUZTX0EwX0RZTkFNSUMsCkBAIC0yMDk0LDE5ICsyMDk2LDMyIEBA IGludCBtbHg0X1FVRVJZX0hDQShzdHJ1Y3QgbWx4NF9kZXYgKmRldiwKIAogCS8qIFFQQy9FRUMv Q1FDL0VRQy9SRE1BUkMgYXR0cmlidXRlcyAqLwogCi0JTUxYNF9HRVQocGFyYW0tPnFwY19iYXNl LCAgICAgIG91dGJveCwgSU5JVF9IQ0FfUVBDX0JBU0VfT0ZGU0VUKTsKLQlNTFg0X0dFVChwYXJh bS0+bG9nX251bV9xcHMsICAgb3V0Ym94LCBJTklUX0hDQV9MT0dfUVBfT0ZGU0VUKTsKLQlNTFg0 X0dFVChwYXJhbS0+c3JxY19iYXNlLCAgICAgb3V0Ym94LCBJTklUX0hDQV9TUlFDX0JBU0VfT0ZG U0VUKTsKLQlNTFg0X0dFVChwYXJhbS0+bG9nX251bV9zcnFzLCAgb3V0Ym94LCBJTklUX0hDQV9M T0dfU1JRX09GRlNFVCk7Ci0JTUxYNF9HRVQocGFyYW0tPmNxY19iYXNlLCAgICAgIG91dGJveCwg SU5JVF9IQ0FfQ1FDX0JBU0VfT0ZGU0VUKTsKLQlNTFg0X0dFVChwYXJhbS0+bG9nX251bV9jcXMs ICAgb3V0Ym94LCBJTklUX0hDQV9MT0dfQ1FfT0ZGU0VUKTsKLQlNTFg0X0dFVChwYXJhbS0+YWx0 Y19iYXNlLCAgICAgb3V0Ym94LCBJTklUX0hDQV9BTFRDX0JBU0VfT0ZGU0VUKTsKLQlNTFg0X0dF VChwYXJhbS0+YXV4Y19iYXNlLCAgICAgb3V0Ym94LCBJTklUX0hDQV9BVVhDX0JBU0VfT0ZGU0VU KTsKLQlNTFg0X0dFVChwYXJhbS0+ZXFjX2Jhc2UsICAgICAgb3V0Ym94LCBJTklUX0hDQV9FUUNf QkFTRV9PRkZTRVQpOwotCU1MWDRfR0VUKHBhcmFtLT5sb2dfbnVtX2VxcywgICBvdXRib3gsIElO SVRfSENBX0xPR19FUV9PRkZTRVQpOwotCU1MWDRfR0VUKHBhcmFtLT5udW1fc3lzX2VxcywgICBv dXRib3gsIElOSVRfSENBX05VTV9TWVNfRVFTX09GRlNFVCk7Ci0JTUxYNF9HRVQocGFyYW0tPnJk bWFyY19iYXNlLCAgIG91dGJveCwgSU5JVF9IQ0FfUkRNQVJDX0JBU0VfT0ZGU0VUKTsKLQlNTFg0 X0dFVChwYXJhbS0+bG9nX3JkX3Blcl9xcCwgb3V0Ym94LCBJTklUX0hDQV9MT0dfUkRfT0ZGU0VU KTsKKwlNTFg0X0dFVChxd29yZF9maWVsZCwgb3V0Ym94LCBJTklUX0hDQV9RUENfQkFTRV9PRkZT RVQpOworCXBhcmFtLT5xcGNfYmFzZSA9IHF3b3JkX2ZpZWxkICYgfigodTY0KTB4MWYpOworCU1M WDRfR0VUKGJ5dGVfZmllbGQsIG91dGJveCwgSU5JVF9IQ0FfTE9HX1FQX09GRlNFVCk7CisJcGFy YW0tPmxvZ19udW1fcXBzID0gYnl0ZV9maWVsZCAmIDB4MWY7CisJTUxYNF9HRVQocXdvcmRfZmll bGQsIG91dGJveCwgSU5JVF9IQ0FfU1JRQ19CQVNFX09GRlNFVCk7CisJcGFyYW0tPnNycWNfYmFz ZSA9IHF3b3JkX2ZpZWxkICYgfigodTY0KTB4MWYpOworCU1MWDRfR0VUKGJ5dGVfZmllbGQsIG91 dGJveCwgSU5JVF9IQ0FfTE9HX1NSUV9PRkZTRVQpOworCXBhcmFtLT5sb2dfbnVtX3NycXMgPSBi eXRlX2ZpZWxkICYgMHgxZjsKKwlNTFg0X0dFVChxd29yZF9maWVsZCwgb3V0Ym94LCBJTklUX0hD QV9DUUNfQkFTRV9PRkZTRVQpOworCXBhcmFtLT5jcWNfYmFzZSA9IHF3b3JkX2ZpZWxkICYgfigo dTY0KTB4MWYpOworCU1MWDRfR0VUKGJ5dGVfZmllbGQsIG91dGJveCwgSU5JVF9IQ0FfTE9HX0NR X09GRlNFVCk7CisJcGFyYW0tPmxvZ19udW1fY3FzID0gYnl0ZV9maWVsZCAmIDB4MWY7CisJTUxY NF9HRVQocXdvcmRfZmllbGQsIG91dGJveCwgSU5JVF9IQ0FfQUxUQ19CQVNFX09GRlNFVCk7CisJ cGFyYW0tPmFsdGNfYmFzZSA9IHF3b3JkX2ZpZWxkOworCU1MWDRfR0VUKHF3b3JkX2ZpZWxkLCBv dXRib3gsIElOSVRfSENBX0FVWENfQkFTRV9PRkZTRVQpOworCXBhcmFtLT5hdXhjX2Jhc2UgPSBx d29yZF9maWVsZDsKKwlNTFg0X0dFVChxd29yZF9maWVsZCwgb3V0Ym94LCBJTklUX0hDQV9FUUNf QkFTRV9PRkZTRVQpOworCXBhcmFtLT5lcWNfYmFzZSA9IHF3b3JkX2ZpZWxkICYgfigodTY0KTB4 MWYpOworCU1MWDRfR0VUKGJ5dGVfZmllbGQsIG91dGJveCwgSU5JVF9IQ0FfTE9HX0VRX09GRlNF VCk7CisJcGFyYW0tPmxvZ19udW1fZXFzID0gYnl0ZV9maWVsZCAmIDB4MWY7CisJTUxYNF9HRVQo d29yZF9maWVsZCwgb3V0Ym94LCBJTklUX0hDQV9OVU1fU1lTX0VRU19PRkZTRVQpOworCXBhcmFt LT5udW1fc3lzX2VxcyA9IHdvcmRfZmllbGQgJiAweGZmZjsKKwlNTFg0X0dFVChxd29yZF9maWVs ZCwgb3V0Ym94LCBJTklUX0hDQV9SRE1BUkNfQkFTRV9PRkZTRVQpOworCXBhcmFtLT5yZG1hcmNf YmFzZSA9IHF3b3JkX2ZpZWxkICYgfigodTY0KTB4MWYpOworCU1MWDRfR0VUKGJ5dGVfZmllbGQs IG91dGJveCwgSU5JVF9IQ0FfTE9HX1JEX09GRlNFVCk7CisJcGFyYW0tPmxvZ19yZF9wZXJfcXAg PSBieXRlX2ZpZWxkICYgMHg3OwogCiAJTUxYNF9HRVQoZHdvcmRfZmllbGQsIG91dGJveCwgSU5J VF9IQ0FfRkxBR1NfT0ZGU0VUKTsKIAlpZiAoZHdvcmRfZmllbGQgJiAoMSA8PCBJTklUX0hDQV9E RVZJQ0VfTUFOQUdFRF9GTE9XX1NURUVSSU5HX0VOKSkgewpAQCAtMjEyNSwyMiArMjE0MCwyMSBA QCBpbnQgbWx4NF9RVUVSWV9IQ0Eoc3RydWN0IG1seDRfZGV2ICpkZXYsCiAJLyogc3RlZXJpbmcg YXR0cmlidXRlcyAqLwogCWlmIChwYXJhbS0+c3RlZXJpbmdfbW9kZSA9PSBNTFg0X1NURUVSSU5H X01PREVfREVWSUNFX01BTkFHRUQpIHsKIAkJTUxYNF9HRVQocGFyYW0tPm1jX2Jhc2UsIG91dGJv eCwgSU5JVF9IQ0FfRlNfQkFTRV9PRkZTRVQpOwotCQlNTFg0X0dFVChwYXJhbS0+bG9nX21jX2Vu dHJ5X3N6LCBvdXRib3gsCi0JCQkgSU5JVF9IQ0FfRlNfTE9HX0VOVFJZX1NaX09GRlNFVCk7Ci0J CU1MWDRfR0VUKHBhcmFtLT5sb2dfbWNfdGFibGVfc3osIG91dGJveCwKLQkJCSBJTklUX0hDQV9G U19MT0dfVEFCTEVfU1pfT0ZGU0VUKTsKLQkJTUxYNF9HRVQoYnl0ZV9maWVsZCwgb3V0Ym94LAot CQkJIElOSVRfSENBX0ZTX0EwX09GRlNFVCk7CisJCU1MWDRfR0VUKGJ5dGVfZmllbGQsIG91dGJv eCwgSU5JVF9IQ0FfRlNfTE9HX0VOVFJZX1NaX09GRlNFVCk7CisJCXBhcmFtLT5sb2dfbWNfZW50 cnlfc3ogPSBieXRlX2ZpZWxkICYgMHgxZjsKKwkJTUxYNF9HRVQoYnl0ZV9maWVsZCwgb3V0Ym94 LCBJTklUX0hDQV9GU19MT0dfVEFCTEVfU1pfT0ZGU0VUKTsKKwkJcGFyYW0tPmxvZ19tY190YWJs ZV9zeiA9IGJ5dGVfZmllbGQgJiAweDFmOworCQlNTFg0X0dFVChieXRlX2ZpZWxkLCBvdXRib3gs IElOSVRfSENBX0ZTX0EwX09GRlNFVCk7CiAJCXBhcmFtLT5kbWZzX2hpZ2hfc3RlZXJfbW9kZSA9 CiAJCQlhMF9kbWZzX3F1ZXJ5X2h3X3N0ZWVyaW5nWyhieXRlX2ZpZWxkID4+IDYpICYgM107CiAJ fSBlbHNlIHsKIAkJTUxYNF9HRVQocGFyYW0tPm1jX2Jhc2UsIG91dGJveCwgSU5JVF9IQ0FfTUNf QkFTRV9PRkZTRVQpOwotCQlNTFg0X0dFVChwYXJhbS0+bG9nX21jX2VudHJ5X3N6LCBvdXRib3gs Ci0JCQkgSU5JVF9IQ0FfTE9HX01DX0VOVFJZX1NaX09GRlNFVCk7Ci0JCU1MWDRfR0VUKHBhcmFt LT5sb2dfbWNfaGFzaF9zeiwgIG91dGJveCwKLQkJCSBJTklUX0hDQV9MT0dfTUNfSEFTSF9TWl9P RkZTRVQpOwotCQlNTFg0X0dFVChwYXJhbS0+bG9nX21jX3RhYmxlX3N6LCBvdXRib3gsCi0JCQkg SU5JVF9IQ0FfTE9HX01DX1RBQkxFX1NaX09GRlNFVCk7CisJCU1MWDRfR0VUKGJ5dGVfZmllbGQs IG91dGJveCwgSU5JVF9IQ0FfTE9HX01DX0VOVFJZX1NaX09GRlNFVCk7CisJCXBhcmFtLT5sb2df bWNfZW50cnlfc3ogPSBieXRlX2ZpZWxkICYgMHgxZjsKKwkJTUxYNF9HRVQoYnl0ZV9maWVsZCwg IG91dGJveCwgSU5JVF9IQ0FfTE9HX01DX0hBU0hfU1pfT0ZGU0VUKTsKKwkJcGFyYW0tPmxvZ19t Y19oYXNoX3N6ID0gYnl0ZV9maWVsZCAmIDB4MWY7CisJCU1MWDRfR0VUKGJ5dGVfZmllbGQsIG91 dGJveCwgSU5JVF9IQ0FfTE9HX01DX1RBQkxFX1NaX09GRlNFVCk7CisJCXBhcmFtLT5sb2dfbWNf dGFibGVfc3ogPSBieXRlX2ZpZWxkICYgMHgxZjsKIAl9CiAKIAkvKiBDWDMgaXMgY2FwYWJsZSBv ZiBleHRlbmRpbmcgQ1FFcy9FUUVzIGZyb20gMzIgdG8gNjQgYnl0ZXMgKi8KQEAgLTIxNjQsMTUg KzIxNzgsMTggQEAgaW50IG1seDRfUVVFUllfSENBKHN0cnVjdCBtbHg0X2RldiAqZGV2LAogCS8q IFRQVCBhdHRyaWJ1dGVzICovCiAKIAlNTFg0X0dFVChwYXJhbS0+ZG1wdF9iYXNlLCAgb3V0Ym94 LCBJTklUX0hDQV9ETVBUX0JBU0VfT0ZGU0VUKTsKLQlNTFg0X0dFVChwYXJhbS0+bXdfZW5hYmxl ZCwgb3V0Ym94LCBJTklUX0hDQV9UUFRfTVdfT0ZGU0VUKTsKLQlNTFg0X0dFVChwYXJhbS0+bG9n X21wdF9zeiwgb3V0Ym94LCBJTklUX0hDQV9MT0dfTVBUX1NaX09GRlNFVCk7CisJTUxYNF9HRVQo Ynl0ZV9maWVsZCwgb3V0Ym94LCBJTklUX0hDQV9UUFRfTVdfT0ZGU0VUKTsKKwlwYXJhbS0+bXdf ZW5hYmxlZCA9IGJ5dGVfZmllbGQgPj4gNzsKKwlNTFg0X0dFVChieXRlX2ZpZWxkLCBvdXRib3gs IElOSVRfSENBX0xPR19NUFRfU1pfT0ZGU0VUKTsKKwlwYXJhbS0+bG9nX21wdF9zeiA9IGJ5dGVf ZmllbGQgJiAweDNmOwogCU1MWDRfR0VUKHBhcmFtLT5tdHRfYmFzZSwgICBvdXRib3gsIElOSVRf SENBX01UVF9CQVNFX09GRlNFVCk7CiAJTUxYNF9HRVQocGFyYW0tPmNtcHRfYmFzZSwgIG91dGJv eCwgSU5JVF9IQ0FfQ01QVF9CQVNFX09GRlNFVCk7CiAKIAkvKiBVQVIgYXR0cmlidXRlcyAqLwog CiAJTUxYNF9HRVQocGFyYW0tPnVhcl9wYWdlX3N6LCBvdXRib3gsIElOSVRfSENBX1VBUl9QQUdF X1NaX09GRlNFVCk7Ci0JTUxYNF9HRVQocGFyYW0tPmxvZ191YXJfc3osIG91dGJveCwgSU5JVF9I Q0FfTE9HX1VBUl9TWl9PRkZTRVQpOworCU1MWDRfR0VUKGJ5dGVfZmllbGQsIG91dGJveCwgSU5J VF9IQ0FfTE9HX1VBUl9TWl9PRkZTRVQpOworCXBhcmFtLT5sb2dfdWFyX3N6ID0gYnl0ZV9maWVs ZCAmIDB4ZjsKIAogCS8qIHBodl9jaGVjayBlbmFibGUgKi8KIAlNTFg0X0dFVChieXRlX2ZpZWxk LCBvdXRib3gsIElOSVRfSENBX0NBQ0hFTElORV9TWl9PRkZTRVQpOwotLSAKMi4yMC4xCgoKRnJv bSAzMjk3OTVjMWNkYjM2M2MwMTIxNzY2OGNjZDUzODQzNDY2NzI5NGVjIE1vbiBTZXAgMTcgMDA6 MDA6MDAgMjAwMQpGcm9tOiBDb25nIFdhbmcgPHhpeW91Lndhbmdjb25nQGdtYWlsLmNvbT4KRGF0 ZTogVGh1LCAyNCBKYW4gMjAxOSAxNDoxODoxOCAtMDgwMApTdWJqZWN0OiBbUEFUQ0ggMDkvMzNd IG5ldHJvbTogc3dpdGNoIHRvIHNvY2sgdGltZXIgQVBJCgpbIFVwc3RyZWFtIGNvbW1pdCA2MzM0 NjY1MGMxYTk0YTkyYmU2MWE1NzQxNmFjODhjMGE0N2M0MzI3IF0KCnNrX3Jlc2V0X3RpbWVyKCkg YW5kIHNrX3N0b3BfdGltZXIoKSBwcm9wZXJseSBoYW5kbGUKc29jayByZWZjbnQgZm9yIHRpbWVy IGZ1bmN0aW9uLiBTd2l0Y2hpbmcgdG8gdGhlbQpjb3VsZCBmaXggYSByZWZjb3VudGluZyBidWcg cmVwb3J0ZWQgYnkgc3l6Ym90LgoKUmVwb3J0ZWQtYW5kLXRlc3RlZC1ieTogc3l6Ym90K2RlZmE3 MDBkMTZmMWJkMWI5YTA1QHN5emthbGxlci5hcHBzcG90bWFpbC5jb20KQ2M6IFJhbGYgQmFlY2hs ZSA8cmFsZkBsaW51eC1taXBzLm9yZz4KQ2M6IGxpbnV4LWhhbXNAdmdlci5rZXJuZWwub3JnClNp Z25lZC1vZmYtYnk6IENvbmcgV2FuZyA8eGl5b3Uud2FuZ2NvbmdAZ21haWwuY29tPgpTaWduZWQt b2ZmLWJ5OiBEYXZpZCBTLiBNaWxsZXIgPGRhdmVtQGRhdmVtbG9mdC5uZXQ+Ci0tLQogbmV0L25l dHJvbS9ucl90aW1lci5jIHwgMjAgKysrKysrKysrKy0tLS0tLS0tLS0KIDEgZmlsZSBjaGFuZ2Vk LCAxMCBpbnNlcnRpb25zKCspLCAxMCBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9uZXQvbmV0 cm9tL25yX3RpbWVyLmMgYi9uZXQvbmV0cm9tL25yX3RpbWVyLmMKaW5kZXggY2JkNTFlZDVhMmQ3 Li45MDhlNTNhYjQ3YTQgMTAwNjQ0Ci0tLSBhL25ldC9uZXRyb20vbnJfdGltZXIuYworKysgYi9u ZXQvbmV0cm9tL25yX3RpbWVyLmMKQEAgLTUyLDIxICs1MiwyMSBAQCB2b2lkIG5yX3N0YXJ0X3Qx dGltZXIoc3RydWN0IHNvY2sgKnNrKQogewogCXN0cnVjdCBucl9zb2NrICpuciA9IG5yX3NrKHNr KTsKIAotCW1vZF90aW1lcigmbnItPnQxdGltZXIsIGppZmZpZXMgKyBuci0+dDEpOworCXNrX3Jl c2V0X3RpbWVyKHNrLCAmbnItPnQxdGltZXIsIGppZmZpZXMgKyBuci0+dDEpOwogfQogCiB2b2lk IG5yX3N0YXJ0X3QydGltZXIoc3RydWN0IHNvY2sgKnNrKQogewogCXN0cnVjdCBucl9zb2NrICpu ciA9IG5yX3NrKHNrKTsKIAotCW1vZF90aW1lcigmbnItPnQydGltZXIsIGppZmZpZXMgKyBuci0+ dDIpOworCXNrX3Jlc2V0X3RpbWVyKHNrLCAmbnItPnQydGltZXIsIGppZmZpZXMgKyBuci0+dDIp OwogfQogCiB2b2lkIG5yX3N0YXJ0X3Q0dGltZXIoc3RydWN0IHNvY2sgKnNrKQogewogCXN0cnVj dCBucl9zb2NrICpuciA9IG5yX3NrKHNrKTsKIAotCW1vZF90aW1lcigmbnItPnQ0dGltZXIsIGpp ZmZpZXMgKyBuci0+dDQpOworCXNrX3Jlc2V0X3RpbWVyKHNrLCAmbnItPnQ0dGltZXIsIGppZmZp ZXMgKyBuci0+dDQpOwogfQogCiB2b2lkIG5yX3N0YXJ0X2lkbGV0aW1lcihzdHJ1Y3Qgc29jayAq c2spCkBAIC03NCwzNyArNzQsMzcgQEAgdm9pZCBucl9zdGFydF9pZGxldGltZXIoc3RydWN0IHNv Y2sgKnNrKQogCXN0cnVjdCBucl9zb2NrICpuciA9IG5yX3NrKHNrKTsKIAogCWlmIChuci0+aWRs ZSA+IDApCi0JCW1vZF90aW1lcigmbnItPmlkbGV0aW1lciwgamlmZmllcyArIG5yLT5pZGxlKTsK KwkJc2tfcmVzZXRfdGltZXIoc2ssICZuci0+aWRsZXRpbWVyLCBqaWZmaWVzICsgbnItPmlkbGUp OwogfQogCiB2b2lkIG5yX3N0YXJ0X2hlYXJ0YmVhdChzdHJ1Y3Qgc29jayAqc2spCiB7Ci0JbW9k X3RpbWVyKCZzay0+c2tfdGltZXIsIGppZmZpZXMgKyA1ICogSFopOworCXNrX3Jlc2V0X3RpbWVy KHNrLCAmc2stPnNrX3RpbWVyLCBqaWZmaWVzICsgNSAqIEhaKTsKIH0KIAogdm9pZCBucl9zdG9w X3QxdGltZXIoc3RydWN0IHNvY2sgKnNrKQogewotCWRlbF90aW1lcigmbnJfc2soc2spLT50MXRp bWVyKTsKKwlza19zdG9wX3RpbWVyKHNrLCAmbnJfc2soc2spLT50MXRpbWVyKTsKIH0KIAogdm9p ZCBucl9zdG9wX3QydGltZXIoc3RydWN0IHNvY2sgKnNrKQogewotCWRlbF90aW1lcigmbnJfc2so c2spLT50MnRpbWVyKTsKKwlza19zdG9wX3RpbWVyKHNrLCAmbnJfc2soc2spLT50MnRpbWVyKTsK IH0KIAogdm9pZCBucl9zdG9wX3Q0dGltZXIoc3RydWN0IHNvY2sgKnNrKQogewotCWRlbF90aW1l cigmbnJfc2soc2spLT50NHRpbWVyKTsKKwlza19zdG9wX3RpbWVyKHNrLCAmbnJfc2soc2spLT50 NHRpbWVyKTsKIH0KIAogdm9pZCBucl9zdG9wX2lkbGV0aW1lcihzdHJ1Y3Qgc29jayAqc2spCiB7 Ci0JZGVsX3RpbWVyKCZucl9zayhzayktPmlkbGV0aW1lcik7CisJc2tfc3RvcF90aW1lcihzaywg Jm5yX3NrKHNrKS0+aWRsZXRpbWVyKTsKIH0KIAogdm9pZCBucl9zdG9wX2hlYXJ0YmVhdChzdHJ1 Y3Qgc29jayAqc2spCiB7Ci0JZGVsX3RpbWVyKCZzay0+c2tfdGltZXIpOworCXNrX3N0b3BfdGlt ZXIoc2ssICZzay0+c2tfdGltZXIpOwogfQogCiBpbnQgbnJfdDF0aW1lcl9ydW5uaW5nKHN0cnVj dCBzb2NrICpzaykKLS0gCjIuMjAuMQoKCkZyb20gYzkxMzM3NTk5ZGUzZjFiZGEwZDQzZDljYTI5 MGJkNjQ5NGE5YzY5MyBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJvbTogQmVybmFyZCBQaWRv dXggPGY2YnZwQGZyZWUuZnI+CkRhdGU6IEZyaSwgMjUgSmFuIDIwMTkgMTE6NDY6NDAgKzAxMDAK U3ViamVjdDogW1BBVENIIDEwLzMzXSBuZXQvcm9zZTogZml4IE5VTEwgYXgyNV9jYiBrZXJuZWwg cGFuaWMKClsgVXBzdHJlYW0gY29tbWl0IGIwY2YwMjkyMzRmOWIxOGUxMDcwM2JhNTE0N2YwMzg5 YzM4MmJjY2MgXQoKV2hlbiBhbiBpbnRlcm5hbGx5IGdlbmVyYXRlZCBmcmFtZSBpcyBoYW5kbGVk IGJ5IHJvc2VfeG1pdCgpLApyb3NlX3JvdXRlX2ZyYW1lKCkgaXMgY2FsbGVkOgoKICAgICAgICBp ZiAoIXJvc2Vfcm91dGVfZnJhbWUoc2tiLCBOVUxMKSkgewogICAgICAgICAgICAgICAgZGV2X2tm cmVlX3NrYihza2IpOwogICAgICAgICAgICAgICAgc3RhdHMtPnR4X2Vycm9ycysrOwogICAgICAg ICAgICAgICAgcmV0dXJuIE5FVERFVl9UWF9PSzsKICAgICAgICB9CgpXZSBoYXZlIHRoZSBzYW1l IGNvZGUgc2VxdWVuY2UgaW4gTmV0L1JvbSB3aGVyZSBhbiBpbnRlcm5hbGx5IGdlbmVyYXRlZApm cmFtZSBpcyBoYW5kbGVkIGJ5IG5yX3htaXQoKSBjYWxsaW5nIG5yX3JvdXRlX2ZyYW1lKHNrYiwg TlVMTCkuCkhvd2V2ZXIsIGluIHRoaXMgZnVuY3Rpb24gTlVMTCBhcmd1bWVudCBpcyB0ZXN0ZWQg d2hpbGUgaXQgaXMgbm90IGluCnJvc2Vfcm91dGVfZnJhbWUoKS4KVGhlbiBrZXJuZWwgcGFuaWMg b2NjdXJzIGxhdGVyIG9uIHdoZW4gY2FsbGluZyBheDI1Y21wKCkgd2l0aCBhIE5VTEwKYXgyNV9j YiBhcmd1bWVudCBhcyByZXBvcnRlZCBtYW55IHRpbWVzIGFuZCByZWNlbnRseSB3aXRoIHN5emJv dC4KCldlIG5lZWQgdG8gdGVzdCBpZiBheDI1IGlzIE5VTEwgYmVmb3JlIHVzaW5nIGl0LgoKVGVz dGluZzoKQnVpbHQga2VybmVsIHdpdGggQ09ORklHX1JPU0U9eS4KClNpZ25lZC1vZmYtYnk6IEJl cm5hcmQgUGlkb3V4IDxmNmJ2cEBmcmVlLmZyPgpBY2tlZC1ieTogRG1pdHJ5IFZ5dWtvdiA8ZHZ5 dWtvdkBnb29nbGUuY29tPgpSZXBvcnRlZC1ieTogc3l6Ym90KzFhMmM0NTZhMWVhMDhmYTViNWY3 QHN5emthbGxlci5hcHBzcG90bWFpbC5jb20KQ2M6ICJEYXZpZCBTLiBNaWxsZXIiIDxkYXZlbUBk YXZlbWxvZnQubmV0PgpDYzogUmFsZiBCYWVjaGxlIDxyYWxmQGxpbnV4LW1pcHMub3JnPgpDYzog QmVybmFyZCBQaWRvdXggPGY2YnZwQGZyZWUuZnI+CkNjOiBsaW51eC1oYW1zQHZnZXIua2VybmVs Lm9yZwpDYzogbmV0ZGV2QHZnZXIua2VybmVsLm9yZwpDYzogbGludXgta2VybmVsQHZnZXIua2Vy bmVsLm9yZwpTaWduZWQtb2ZmLWJ5OiBEYXZpZCBTLiBNaWxsZXIgPGRhdmVtQGRhdmVtbG9mdC5u ZXQ+Ci0tLQogbmV0L3Jvc2Uvcm9zZV9yb3V0ZS5jIHwgNSArKysrKwogMSBmaWxlIGNoYW5nZWQs IDUgaW5zZXJ0aW9ucygrKQoKZGlmZiAtLWdpdCBhL25ldC9yb3NlL3Jvc2Vfcm91dGUuYyBiL25l dC9yb3NlL3Jvc2Vfcm91dGUuYwppbmRleCA3N2U5Zjg1YTJjOTIuLmYyZmYyMWQ3ZGYwOCAxMDA2 NDQKLS0tIGEvbmV0L3Jvc2Uvcm9zZV9yb3V0ZS5jCisrKyBiL25ldC9yb3NlL3Jvc2Vfcm91dGUu YwpAQCAtODUwLDYgKzg1MCw3IEBAIHZvaWQgcm9zZV9saW5rX2RldmljZV9kb3duKHN0cnVjdCBu ZXRfZGV2aWNlICpkZXYpCiAKIC8qCiAgKglSb3V0ZSBhIGZyYW1lIHRvIGFuIGFwcHJvcHJpYXRl IEFYLjI1IGNvbm5lY3Rpb24uCisgKglBIE5VTEwgYXgyNV9jYiBpbmRpY2F0ZXMgYW4gaW50ZXJu YWxseSBnZW5lcmF0ZWQgZnJhbWUuCiAgKi8KIGludCByb3NlX3JvdXRlX2ZyYW1lKHN0cnVjdCBz a19idWZmICpza2IsIGF4MjVfY2IgKmF4MjUpCiB7CkBAIC04NjcsNiArODY4LDEwIEBAIGludCBy b3NlX3JvdXRlX2ZyYW1lKHN0cnVjdCBza19idWZmICpza2IsIGF4MjVfY2IgKmF4MjUpCiAKIAlp ZiAoc2tiLT5sZW4gPCBST1NFX01JTl9MRU4pCiAJCXJldHVybiByZXM7CisKKwlpZiAoIWF4MjUp CisJCXJldHVybiByb3NlX2xvb3BiYWNrX3F1ZXVlKHNrYiwgTlVMTCk7CisKIAlmcmFtZXR5cGUg PSBza2ItPmRhdGFbMl07CiAJbGNpID0gKChza2ItPmRhdGFbMF0gPDwgOCkgJiAweEYwMCkgKyAo KHNrYi0+ZGF0YVsxXSA8PCAwKSAmIDB4MEZGKTsKIAlpZiAoZnJhbWV0eXBlID09IFJPU0VfQ0FM TF9SRVFVRVNUICYmCi0tIAoyLjIwLjEKCgpGcm9tIDRmYTBlOGI4OWM0NjlkYmI1NDhjNjA2Yzk5 Y2Q1ZWM4MTIxZWEyMTUgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCkZyb206IEpvc2ggRWxzYXNz ZXIgPGplbHNhc3NlckBhcHBuZXRhLmNvbT4KRGF0ZTogU2F0LCAyNiBKYW4gMjAxOSAxNDozODoz MyAtMDgwMApTdWJqZWN0OiBbUEFUQ0ggMTEvMzNdIG5ldDogc2V0IGRlZmF1bHQgbmV0d29yayBu YW1lc3BhY2UgaW4KIGluaXRfZHVtbXlfbmV0ZGV2KCkKClsgVXBzdHJlYW0gY29tbWl0IDM1ZWRm ZGM3N2Y2ODNjOGZkMjdkNzczMmFmMDZjZjY0ODlhZjYwYTUgXQoKQXNzaWduIGEgZGVmYXVsdCBu ZXQgbmFtZXNwYWNlIHRvIG5ldGRldnMgY3JlYXRlZCBieSBpbml0X2R1bW15X25ldGRldigpLgpG aXhlcyBhIE5VTEwgcG9pbnRlciBkZXJlZmVyZW5jZSBjYXVzZWQgYnkgYnVzeS1wb2xsaW5nIGEg c29ja2V0IGJvdW5kIHRvCmFuIGl3bHdpZmkgd2lyZWxlc3MgZGV2aWNlLCB3aGljaCBidW1wcyB0 aGUgcGVyLW5ldCBCVVNZUE9MTFJYUEFDS0VUUyBzdGF0CmlmIG5hcGlfcG9sbCgpIHJlY2VpdmVk IHBhY2tldHM6CgogIEJVRzogdW5hYmxlIHRvIGhhbmRsZSBrZXJuZWwgTlVMTCBwb2ludGVyIGRl cmVmZXJlbmNlIGF0IDAwMDAwMDAwMDAwMDAxOTAKICBJUDogbmFwaV9idXN5X2xvb3ArMHhkNi8w eDIwMAogIENhbGwgVHJhY2U6CiAgICBzb2NrX3BvbGwrMHg1ZS8weDgwCiAgICBkb19zeXNfcG9s bCsweDMyNC8weDVhMAogICAgU3lTX3BvbGwrMHg2Yy8weGYwCiAgICBkb19zeXNjYWxsXzY0KzB4 NmIvMHgxZjAKICAgIGVudHJ5X1NZU0NBTExfNjRfYWZ0ZXJfaHdmcmFtZSsweDNkLzB4YTIKCkZp eGVzOiA3ZGI2YjA0OGRhM2IgKCJuZXQ6IENvbW1vbml6ZSBidXN5IHBvbGxpbmcgY29kZSB0byBm b2N1cyBvbiBuYXBpX2lkIGluc3RlYWQgb2Ygc29ja2V0IikKU2lnbmVkLW9mZi1ieTogSm9zaCBF bHNhc3NlciA8amVsc2Fzc2VyQGFwcG5ldGEuY29tPgpTaWduZWQtb2ZmLWJ5OiBEYXZpZCBTLiBN aWxsZXIgPGRhdmVtQGRhdmVtbG9mdC5uZXQ+Ci0tLQogbmV0L2NvcmUvZGV2LmMgfCAzICsrKwog MSBmaWxlIGNoYW5nZWQsIDMgaW5zZXJ0aW9ucygrKQoKZGlmZiAtLWdpdCBhL25ldC9jb3JlL2Rl di5jIGIvbmV0L2NvcmUvZGV2LmMKaW5kZXggNzIyZDUwZGJmOGE0Li40M2Y4YTRmZDQ5NjggMTAw NjQ0Ci0tLSBhL25ldC9jb3JlL2Rldi5jCisrKyBiL25ldC9jb3JlL2Rldi5jCkBAIC04NjI0LDYg Kzg2MjQsOSBAQCBpbnQgaW5pdF9kdW1teV9uZXRkZXYoc3RydWN0IG5ldF9kZXZpY2UgKmRldikK IAlzZXRfYml0KF9fTElOS19TVEFURV9QUkVTRU5ULCAmZGV2LT5zdGF0ZSk7CiAJc2V0X2JpdChf X0xJTktfU1RBVEVfU1RBUlQsICZkZXYtPnN0YXRlKTsKIAorCS8qIG5hcGlfYnVzeV9sb29wIHN0 YXRzIGFjY291bnRpbmcgd2FudHMgdGhpcyAqLworCWRldl9uZXRfc2V0KGRldiwgJmluaXRfbmV0 KTsKKwogCS8qIE5vdGUgOiBXZSBkb250IGFsbG9jYXRlIHBjcHVfcmVmY250IGZvciBkdW1teSBk ZXZpY2VzLAogCSAqIGJlY2F1c2UgdXNlcnMgb2YgdGhpcyAnZGV2aWNlJyBkb250IG5lZWQgdG8g Y2hhbmdlCiAJICogaXRzIHJlZmNvdW50LgotLSAKMi4yMC4xCgoKRnJvbSBjOTJiYTU2Y2FmOGMx Y2IxZjc0OGNkOGE1OGM3NDE0Zjc5MmZiY2JlIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9t OiBTaW1vbiBIb3JtYW4gPGhvcm1zK3JlbmVzYXNAdmVyZ2UubmV0LmF1PgpEYXRlOiBXZWQsIDIz IEphbiAyMDE5IDEyOjE0OjUyICswMTAwClN1YmplY3Q6IFtQQVRDSCAxMi8zM10gcmF2YjogZXhw YW5kIHJ4IGRlc2NyaXB0b3IgZGF0YSB0byBhY2NvbW1vZGF0ZSBodwogY2hlY2tzdW0KClsgVXBz dHJlYW0gY29tbWl0IDEyZGE2NDMwMGZiYzc2Yjg3NTkwMDQ0NWY0MTQ2YzNkYzYxN2Q0M2UgXQoK RXRoZXJBVkIgbWF5IHByb3ZpZGUgYSBjaGVja3N1bSBvZiBwYWNrZXQgZGF0YSBhcHBlbmRlZCB0 byBwYWNrZXQgZGF0YS4gSW4Kb3JkZXIgdG8gYWxsb3cgdGhpcyBjaGVja3N1bSB0byBiZSByZWNl aXZlZCBieSB0aGUgaG9zdCBkZXNjcmlwdG9yIGRhdGEKbmVlZHMgdG8gYmUgZW5sYXJnZWQgYnkg MiBieXRlcyB0byBhY2NvbW1vZGF0ZSB0aGUgY2hlY2tzdW0uCgpJbiB0aGUgY2FzZSBvZiBNVFUt c2l6ZWQgcGFja2V0cyB3aXRob3V0IGEgVkxBTiB0YWcgdGhlCmNoZWNrc3VtIHdlcmUgYWxyZWFk eSBhY2NvbW1vZGF0ZWQgYnkgdmlydHVlIG9mIHRoZSBzcGFjZSByZXNlcnZlZCBmb3IgdGhlClZM QU4gdGFnLiBIb3dldmVyLCBhIHBhY2tldCBvZiBNVFUtc2l6ZSB3aXRoIGEgIFZMQU4gdGFnIGNv bnN1bWVkIGFsbApwYWNrZXQgZGF0YSBzcGFjZSBwcm92aWRlZCBieSBhIGRlc2NyaXB0b3IgbGVh dmluZyBubyBzcGFjZSBmb3IgdGhlCnRyYWlsaW5nIGNoZWNrc3VtLgoKVGhpcyB3YXMgbm90IGRl dGVjdGVkIGJ5IHRoZSBkcml2ZXIgd2hpY2ggaW5jb3JyZWN0bHkgdXNlZCB0aGUgbGFzdCB0d28K Ynl0ZXMgb2YgcGFja2V0IGRhdGEgYXMgdGhlIGNoZWNrc3VtIGFuZCB0cnVuY2F0ZSB0aGUgcGFj a2V0IGJ5IHR3byBieXRlcy4KVGhpcyByZXN1bHRlZCBhbGwgc3VjaCBwYWNrZXRzIGJlaW5nIGRy b3BwZWQuCgpBIHdvcmsgYXJvdW5kIGlzIHRvIGRpc2FibGUgUlggY2hlY2tzdW0gb2ZmbG9hZAog IyBldGh0b29sIC1LIGV0aDAgcnggb2ZmCgpUaGlzIHBhdGNoIHJlc29sdmVzIHRoaXMgcHJvYmxl bSBieSBpbmNyZWFzaW5nIHRoZSBzaXplIGF2YWlsYWJsZSBmb3IKcGFja2V0IGRhdGEgaW4gUlgg ZGVzY3JpcHRvcnMgYnkgdHdvIGJ5dGVzLgoKVGVzdGVkIG9uIFItQ2FyIEUzIChyOGE3Nzk5MCkg RVMxLjAgYmFzZWQgRWJpc3UtNEQgYm9hcmQKCnYyCiogVXNlIHNpemVvZihfX3N1bTE2KSBkaXJl Y3RseSByYXRoZXIgdGhhbiBhZGRpbmcgYSBkcml2ZXItbG9jYWwKICAjZGVmaW5lIGZvciB0aGUg c2l6ZSBvZiB0aGUgY2hlY2tzdW0gcHJvdmlkZWQgYnkgdGhlIGh3ICgyIGJ5dGVzKS4KCkZpeGVz OiA0ZDg2ZDM4MTg2MjcgKCJyYXZiOiBSWCBjaGVja3N1bSBvZmZsb2FkIikKU2lnbmVkLW9mZi1i eTogU2ltb24gSG9ybWFuIDxob3JtcytyZW5lc2FzQHZlcmdlLm5ldC5hdT4KUmV2aWV3ZWQtYnk6 IFNlcmdlaSBTaHR5bHlvdiA8c2VyZ2VpLnNodHlseW92QGNvZ2VudGVtYmVkZGVkLmNvbT4KU2ln bmVkLW9mZi1ieTogRGF2aWQgUy4gTWlsbGVyIDxkYXZlbUBkYXZlbWxvZnQubmV0PgotLS0KIGRy aXZlcnMvbmV0L2V0aGVybmV0L3JlbmVzYXMvcmF2Yl9tYWluLmMgfCAxMiArKysrKysrLS0tLS0K IDEgZmlsZSBjaGFuZ2VkLCA3IGluc2VydGlvbnMoKyksIDUgZGVsZXRpb25zKC0pCgpkaWZmIC0t Z2l0IGEvZHJpdmVycy9uZXQvZXRoZXJuZXQvcmVuZXNhcy9yYXZiX21haW4uYyBiL2RyaXZlcnMv bmV0L2V0aGVybmV0L3JlbmVzYXMvcmF2Yl9tYWluLmMKaW5kZXggZGVmZWQwZDBjNTFkLi5lN2Y4 YWI2ZTQzOTEgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvbmV0L2V0aGVybmV0L3JlbmVzYXMvcmF2Yl9t YWluLmMKKysrIGIvZHJpdmVycy9uZXQvZXRoZXJuZXQvcmVuZXNhcy9yYXZiX21haW4uYwpAQCAt MzUwLDcgKzM1MCw3IEBAIHN0YXRpYyBpbnQgcmF2Yl9yaW5nX2luaXQoc3RydWN0IG5ldF9kZXZp Y2UgKm5kZXYsIGludCBxKQogCWludCBpOwogCiAJcHJpdi0+cnhfYnVmX3N6ID0gKG5kZXYtPm10 dSA8PSAxNDkyID8gUEtUX0JVRl9TWiA6IG5kZXYtPm10dSkgKwotCQlFVEhfSExFTiArIFZMQU5f SExFTjsKKwkJRVRIX0hMRU4gKyBWTEFOX0hMRU4gKyBzaXplb2YoX19zdW0xNik7CiAKIAkvKiBB bGxvY2F0ZSBSWCBhbmQgVFggc2tiIHJpbmdzICovCiAJcHJpdi0+cnhfc2tiW3FdID0ga2NhbGxv Yyhwcml2LT5udW1fcnhfcmluZ1txXSwKQEAgLTUzMywxMyArNTMzLDE1IEBAIHN0YXRpYyB2b2lk IHJhdmJfcnhfY3N1bShzdHJ1Y3Qgc2tfYnVmZiAqc2tiKQogewogCXU4ICpod19jc3VtOwogCi0J LyogVGhlIGhhcmR3YXJlIGNoZWNrc3VtIGlzIDIgYnl0ZXMgYXBwZW5kZWQgdG8gcGFja2V0IGRh dGEgKi8KLQlpZiAodW5saWtlbHkoc2tiLT5sZW4gPCAyKSkKKwkvKiBUaGUgaGFyZHdhcmUgY2hl Y2tzdW0gaXMgY29udGFpbmVkIGluIHNpemVvZihfX3N1bTE2KSAoMikgYnl0ZXMKKwkgKiBhcHBl bmRlZCB0byBwYWNrZXQgZGF0YQorCSAqLworCWlmICh1bmxpa2VseShza2ItPmxlbiA8IHNpemVv ZihfX3N1bTE2KSkpCiAJCXJldHVybjsKLQlod19jc3VtID0gc2tiX3RhaWxfcG9pbnRlcihza2Ip IC0gMjsKKwlod19jc3VtID0gc2tiX3RhaWxfcG9pbnRlcihza2IpIC0gc2l6ZW9mKF9fc3VtMTYp OwogCXNrYi0+Y3N1bSA9IGNzdW1fdW5mb2xkKChfX2ZvcmNlIF9fc3VtMTYpZ2V0X3VuYWxpZ25l ZF9sZTE2KGh3X2NzdW0pKTsKIAlza2ItPmlwX3N1bW1lZCA9IENIRUNLU1VNX0NPTVBMRVRFOwot CXNrYl90cmltKHNrYiwgc2tiLT5sZW4gLSAyKTsKKwlza2JfdHJpbShza2IsIHNrYi0+bGVuIC0g c2l6ZW9mKF9fc3VtMTYpKTsKIH0KIAogLyogUGFja2V0IHJlY2VpdmUgZnVuY3Rpb24gZm9yIEV0 aGVybmV0IEFWQiAqLwotLSAKMi4yMC4xCgoKRnJvbSAzYzVjYmZhMTU1ODU1ZjI1ZDdjZjAwMmU3 Y2M0NjAxNWYwOWYwMTJkIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBYaW4gTG9uZyA8 bHVjaWVuLnhpbkBnbWFpbC5jb20+CkRhdGU6IFR1ZSwgMjIgSmFuIDIwMTkgMDI6Mzk6MzQgKzA4 MDAKU3ViamVjdDogW1BBVENIIDEzLzMzXSBzY3RwOiBpbXByb3ZlIHRoZSBldmVudHMgZm9yIHNj dHAgc3RyZWFtIHJlc2V0CgpbIFVwc3RyZWFtIGNvbW1pdCAyZTZkYzRkOTUxMTBiZWNmZTBmZjRj M2Q0NzQ5YzMzZWExNjZlOWU3IF0KClRoaXMgcGF0Y2ggaXMgdG8gaW1wcm92ZSBzY3RwIHN0cmVh bSByZXNldCBldmVudHMgaW4gNCBwbGFjZXM6CgogIDEuIEluIHNjdHBfcHJvY2Vzc19zdHJyZXNl dF9vdXRyZXEoKSwgdGhlIGZsYWcgc2hvdWxkIGFsd2F5cyBiZSBzZXQgd2l0aAogICAgIFNDVFBf U1RSRUFNX1JFU0VUX0lOQ09NSU5HX1NTTiBpbnN0ZWFkIG9mIE9VVEdPSU5HLCBhcyByZWNlaXZl cidzIGluCiAgICAgc3RyZWFtIGlzIHJlc2V0IGhlcmUuCiAgMi4gSW4gc2N0cF9wcm9jZXNzX3N0 cnJlc2V0X291dHJlcSgpLCBtb3ZlIHVwIFNDVFBfU1RSUkVTRVRfRVJSX1dST05HX1NTTgogICAg IGNoZWNrLCBhcyB0aGUgcmVzZXQgaGFzIHRvIHN1Y2NlZWQgYWZ0ZXIgcmVjb25mX3RpbWVyIHN0 b3BzIGZvciB0aGUKICAgICBpbiBzdHJlYW0gcmVzZXQgcmVxdWVzdCByZXRyYW5zbWlzc2lvbi4K ICAzLiBJbiBzY3RwX3Byb2Nlc3Nfc3RycmVzZXRfaW5yZXEoKSwgbm8gZXZlbnQgc2hvdWxkIGJl IHNlbnQsIGFzIG5vIGluCiAgICAgb3Igb3V0IHN0cmVhbSBpcyByZXNldCBoZXJlLgogIDQuIElu IHNjdHBfcHJvY2Vzc19zdHJyZXNldF9yZXNwKCksIFNDVFBfU1RSRUFNX1JFU0VUX0lOQ09NSU5H X1NTTiBvcgogICAgIE9VVEdPSU5HIGV2ZW50IHNob3VsZCBhbHdheXMgYmUgc2VudCBmb3Igc3Ry ZWFtIHJlc2V0IHJlcXVlc3RzLCBubwogICAgIG1hdHRlciBpdCBmYWlscyBvciBzdWNjZWVkcyB0 byBwcm9jZXNzIHRoZSByZXF1ZXN0LgoKRml4ZXM6IDgxMDU0NDc2NDUzNiAoInNjdHA6IGltcGxl bWVudCByZWNlaXZlci1zaWRlIHByb2NlZHVyZXMgZm9yIHRoZSBPdXRnb2luZyBTU04gUmVzZXQg UmVxdWVzdCBQYXJhbWV0ZXIiKQpGaXhlczogMTZlMWE5MTk2NWIwICgic2N0cDogaW1wbGVtZW50 IHJlY2VpdmVyLXNpZGUgcHJvY2VkdXJlcyBmb3IgdGhlIEluY29taW5nIFNTTiBSZXNldCBSZXF1 ZXN0IFBhcmFtZXRlciIpCkZpeGVzOiAxMWFlNzZlNjdhMTcgKCJzY3RwOiBpbXBsZW1lbnQgcmVj ZWl2ZXItc2lkZSBwcm9jZWR1cmVzIGZvciB0aGUgUmVjb25mIFJlc3BvbnNlIFBhcmFtZXRlciIp ClJlcG9ydGVkLWJ5OiBZaW5nIFh1IDx5aW54dUByZWRoYXQuY29tPgpTaWduZWQtb2ZmLWJ5OiBY aW4gTG9uZyA8bHVjaWVuLnhpbkBnbWFpbC5jb20+ClNpZ25lZC1vZmYtYnk6IERhdmlkIFMuIE1p bGxlciA8ZGF2ZW1AZGF2ZW1sb2Z0Lm5ldD4KLS0tCiBuZXQvc2N0cC9zdHJlYW0uYyB8IDM5ICsr KysrKysrKysrKysrKysrLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogMSBmaWxlIGNoYW5nZWQsIDE3 IGluc2VydGlvbnMoKyksIDIyIGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL25ldC9zY3RwL3N0 cmVhbS5jIGIvbmV0L3NjdHAvc3RyZWFtLmMKaW5kZXggMzg5MmU3NjMwZjNhLi42YzE4OGIwNmU1 ZTEgMTAwNjQ0Ci0tLSBhL25ldC9zY3RwL3N0cmVhbS5jCisrKyBiL25ldC9zY3RwL3N0cmVhbS5j CkBAIC01ODUsOSArNTg1LDkgQEAgc3RydWN0IHNjdHBfY2h1bmsgKnNjdHBfcHJvY2Vzc19zdHJy ZXNldF9vdXRyZXEoCiAJc3RydWN0IHNjdHBfc3RycmVzZXRfb3V0cmVxICpvdXRyZXEgPSBwYXJh bS52OwogCXN0cnVjdCBzY3RwX3N0cmVhbSAqc3RyZWFtID0gJmFzb2MtPnN0cmVhbTsKIAlfX3Uz MiByZXN1bHQgPSBTQ1RQX1NUUlJFU0VUX0RFTklFRDsKLQlfX3UxNiBpLCBudW1zLCBmbGFncyA9 IDA7CiAJX19iZTE2ICpzdHJfcCA9IE5VTEw7CiAJX191MzIgcmVxdWVzdF9zZXE7CisJX191MTYg aSwgbnVtczsKIAogCXJlcXVlc3Rfc2VxID0gbnRvaGwob3V0cmVxLT5yZXF1ZXN0X3NlcSk7CiAK QEAgLTYxNSw2ICs2MTUsMTUgQEAgc3RydWN0IHNjdHBfY2h1bmsgKnNjdHBfcHJvY2Vzc19zdHJy ZXNldF9vdXRyZXEoCiAJaWYgKCEoYXNvYy0+c3RycmVzZXRfZW5hYmxlICYgU0NUUF9FTkFCTEVf UkVTRVRfU1RSRUFNX1JFUSkpCiAJCWdvdG8gb3V0OwogCisJbnVtcyA9IChudG9ocyhwYXJhbS5w LT5sZW5ndGgpIC0gc2l6ZW9mKCpvdXRyZXEpKSAvIHNpemVvZihfX3UxNik7CisJc3RyX3AgPSBv dXRyZXEtPmxpc3Rfb2Zfc3RyZWFtczsKKwlmb3IgKGkgPSAwOyBpIDwgbnVtczsgaSsrKSB7CisJ CWlmIChudG9ocyhzdHJfcFtpXSkgPj0gc3RyZWFtLT5pbmNudCkgeworCQkJcmVzdWx0ID0gU0NU UF9TVFJSRVNFVF9FUlJfV1JPTkdfU1NOOworCQkJZ290byBvdXQ7CisJCX0KKwl9CisKIAlpZiAo YXNvYy0+c3RycmVzZXRfY2h1bmspIHsKIAkJaWYgKCFzY3RwX2NodW5rX2xvb2t1cF9zdHJyZXNl dF9wYXJhbSgKIAkJCQlhc29jLCBvdXRyZXEtPnJlc3BvbnNlX3NlcSwKQEAgLTYzNywzMiArNjQ2 LDE5IEBAIHN0cnVjdCBzY3RwX2NodW5rICpzY3RwX3Byb2Nlc3Nfc3RycmVzZXRfb3V0cmVxKAog CQkJc2N0cF9jaHVua19wdXQoYXNvYy0+c3RycmVzZXRfY2h1bmspOwogCQkJYXNvYy0+c3RycmVz ZXRfY2h1bmsgPSBOVUxMOwogCQl9Ci0KLQkJZmxhZ3MgPSBTQ1RQX1NUUkVBTV9SRVNFVF9JTkNP TUlOR19TU047CiAJfQogCi0JbnVtcyA9IChudG9ocyhwYXJhbS5wLT5sZW5ndGgpIC0gc2l6ZW9m KCpvdXRyZXEpKSAvIHNpemVvZihfX3UxNik7Ci0JaWYgKG51bXMpIHsKLQkJc3RyX3AgPSBvdXRy ZXEtPmxpc3Rfb2Zfc3RyZWFtczsKLQkJZm9yIChpID0gMDsgaSA8IG51bXM7IGkrKykgewotCQkJ aWYgKG50b2hzKHN0cl9wW2ldKSA+PSBzdHJlYW0tPmluY250KSB7Ci0JCQkJcmVzdWx0ID0gU0NU UF9TVFJSRVNFVF9FUlJfV1JPTkdfU1NOOwotCQkJCWdvdG8gb3V0OwotCQkJfQotCQl9Ci0KKwlp ZiAobnVtcykKIAkJZm9yIChpID0gMDsgaSA8IG51bXM7IGkrKykKIAkJCVNDVFBfU0koc3RyZWFt LCBudG9ocyhzdHJfcFtpXSkpLT5taWQgPSAwOwotCX0gZWxzZSB7CisJZWxzZQogCQlmb3IgKGkg PSAwOyBpIDwgc3RyZWFtLT5pbmNudDsgaSsrKQogCQkJU0NUUF9TSShzdHJlYW0sIGkpLT5taWQg PSAwOwotCX0KIAogCXJlc3VsdCA9IFNDVFBfU1RSUkVTRVRfUEVSRk9STUVEOwogCiAJKmV2cCA9 IHNjdHBfdWxwZXZlbnRfbWFrZV9zdHJlYW1fcmVzZXRfZXZlbnQoYXNvYywKLQkJZmxhZ3MgfCBT Q1RQX1NUUkVBTV9SRVNFVF9PVVRHT0lOR19TU04sIG51bXMsIHN0cl9wLAotCQlHRlBfQVRPTUlD KTsKKwkJU0NUUF9TVFJFQU1fUkVTRVRfSU5DT01JTkdfU1NOLCBudW1zLCBzdHJfcCwgR0ZQX0FU T01JQyk7CiAKIG91dDoKIAlzY3RwX3VwZGF0ZV9zdHJyZXNldF9yZXN1bHQoYXNvYywgcmVzdWx0 KTsKQEAgLTczOCw5ICs3MzQsNiBAQCBzdHJ1Y3Qgc2N0cF9jaHVuayAqc2N0cF9wcm9jZXNzX3N0 cnJlc2V0X2lucmVxKAogCiAJcmVzdWx0ID0gU0NUUF9TVFJSRVNFVF9QRVJGT1JNRUQ7CiAKLQkq ZXZwID0gc2N0cF91bHBldmVudF9tYWtlX3N0cmVhbV9yZXNldF9ldmVudChhc29jLAotCQlTQ1RQ X1NUUkVBTV9SRVNFVF9JTkNPTUlOR19TU04sIG51bXMsIHN0cl9wLCBHRlBfQVRPTUlDKTsKLQog b3V0OgogCXNjdHBfdXBkYXRlX3N0cnJlc2V0X3Jlc3VsdChhc29jLCByZXN1bHQpOwogZXJyOgpA QCAtMTAzNiwxMCArMTAyOSwxMCBAQCBzdHJ1Y3Qgc2N0cF9jaHVuayAqc2N0cF9wcm9jZXNzX3N0 cnJlc2V0X3Jlc3AoCiAJCQkJCXNvdXQtPm1pZF91byA9IDA7CiAJCQkJfQogCQkJfQotCi0JCQlm bGFncyA9IFNDVFBfU1RSRUFNX1JFU0VUX09VVEdPSU5HX1NTTjsKIAkJfQogCisJCWZsYWdzIHw9 IFNDVFBfU1RSRUFNX1JFU0VUX09VVEdPSU5HX1NTTjsKKwogCQlmb3IgKGkgPSAwOyBpIDwgc3Ry ZWFtLT5vdXRjbnQ7IGkrKykKIAkJCVNDVFBfU08oc3RyZWFtLCBpKS0+c3RhdGUgPSBTQ1RQX1NU UkVBTV9PUEVOOwogCkBAIC0xMDU4LDYgKzEwNTEsOCBAQCBzdHJ1Y3Qgc2N0cF9jaHVuayAqc2N0 cF9wcm9jZXNzX3N0cnJlc2V0X3Jlc3AoCiAJCW51bXMgPSAobnRvaHMoaW5yZXEtPnBhcmFtX2hk ci5sZW5ndGgpIC0gc2l6ZW9mKCppbnJlcSkpIC8KIAkJICAgICAgIHNpemVvZihfX3UxNik7CiAK KwkJZmxhZ3MgfD0gU0NUUF9TVFJFQU1fUkVTRVRfSU5DT01JTkdfU1NOOworCiAJCSpldnAgPSBz Y3RwX3VscGV2ZW50X21ha2Vfc3RyZWFtX3Jlc2V0X2V2ZW50KGFzb2MsIGZsYWdzLAogCQkJbnVt cywgc3RyX3AsIEdGUF9BVE9NSUMpOwogCX0gZWxzZSBpZiAocmVxLT50eXBlID09IFNDVFBfUEFS QU1fUkVTRVRfVFNOX1JFUVVFU1QpIHsKLS0gCjIuMjAuMQoKCkZyb20gMGMzNWY5NTc1Y2NhZGEy NWZiMTg2ZWU0YWEyNjZhODA1MDM2YWE0ZiBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJvbTog R2VvcmdlIEFtYW5ha2lzIDxnYW1hbmFraXNAZ21haWwuY29tPgpEYXRlOiBUdWUsIDI5IEphbiAy MDE5IDIyOjUwOjEzIC0wNTAwClN1YmplY3Q6IFtQQVRDSCAxNC8zM10gdHVuOiBtb3ZlIHRoZSBj YWxsIHRvIHR1bl9zZXRfcmVhbF9udW1fcXVldWVzCgpbIFVwc3RyZWFtIGNvbW1pdCAzYTAzY2I4 NDU2Y2MxZDYxYzQ2N2E1Mzc1ZTBhMTBlNTIwN2I5NDhjIF0KCkNhbGwgdHVuX3NldF9yZWFsX251 bV9xdWV1ZXMoKSBhZnRlciB0aGUgaW5jcmVtZW50IG9mIHR1bi0+bnVtcXVldWVzCnNpbmNlIHRo ZSBmb3JtZXIgZGVwZW5kcyBvbiBpdC4gT3RoZXJ3aXNlLCB0aGUgbnVtYmVyIG9mIHF1ZXVlcyBp cyBub3QKY29ycmVjdGx5IGFjY291bnRlZCBmb3IsIHdoaWNoIHJlc3VsdHMgdG8gd2FybmluZ3Mg c2ltaWxhciB0bzoKInZuZXQwIHNlbGVjdHMgVFggcXVldWUgMTEsIGJ1dCByZWFsIG51bWJlciBv ZiBUWCBxdWV1ZXMgaXMgMTEiLgoKRml4ZXM6IDBiNzk1OWI2MjU3MyAoInR1bjogcHVibGlzaCB0 ZmlsZSBhZnRlciBpdCdzIGZ1bGx5IGluaXRpYWxpemVkIikKUmVwb3J0ZWQtYW5kLXRlc3RlZC1i eTogR2VvcmdlIEFtYW5ha2lzIDxnYW1hbmFraXNAZ21haWwuY29tPgpTaWduZWQtb2ZmLWJ5OiBH ZW9yZ2UgQW1hbmFraXMgPGdhbWFuYWtpc0BnbWFpbC5jb20+ClNpZ25lZC1vZmYtYnk6IFN0YW5p c2xhdiBGb21pY2hldiA8c2RmQGdvb2dsZS5jb20+ClNpZ25lZC1vZmYtYnk6IERhdmlkIFMuIE1p bGxlciA8ZGF2ZW1AZGF2ZW1sb2Z0Lm5ldD4KLS0tCiBkcml2ZXJzL25ldC90dW4uYyB8IDMgKy0t CiAxIGZpbGUgY2hhbmdlZCwgMSBpbnNlcnRpb24oKyksIDIgZGVsZXRpb25zKC0pCgpkaWZmIC0t Z2l0IGEvZHJpdmVycy9uZXQvdHVuLmMgYi9kcml2ZXJzL25ldC90dW4uYwppbmRleCA2NjU4NjU4 MjQ2ZDIuLjFlNmYwZGExZmE4ZSAxMDA2NDQKLS0tIGEvZHJpdmVycy9uZXQvdHVuLmMKKysrIGIv ZHJpdmVycy9uZXQvdHVuLmMKQEAgLTg2Miw4ICs4NjIsNiBAQCBzdGF0aWMgaW50IHR1bl9hdHRh Y2goc3RydWN0IHR1bl9zdHJ1Y3QgKnR1biwgc3RydWN0IGZpbGUgKmZpbGUsCiAJaWYgKHJ0bmxf ZGVyZWZlcmVuY2UodHVuLT54ZHBfcHJvZykpCiAJCXNvY2tfc2V0X2ZsYWcoJnRmaWxlLT5zaywg U09DS19YRFApOwogCi0JdHVuX3NldF9yZWFsX251bV9xdWV1ZXModHVuKTsKLQogCS8qIGRldmlj ZSBpcyBhbGxvd2VkIHRvIGdvIGF3YXkgZmlyc3QsIHNvIG5vIG5lZWQgdG8gaG9sZCBleHRyYQog CSAqIHJlZmNudC4KIAkgKi8KQEAgLTg3NSw2ICs4NzMsNyBAQCBzdGF0aWMgaW50IHR1bl9hdHRh Y2goc3RydWN0IHR1bl9zdHJ1Y3QgKnR1biwgc3RydWN0IGZpbGUgKmZpbGUsCiAJcmN1X2Fzc2ln bl9wb2ludGVyKHRmaWxlLT50dW4sIHR1bik7CiAJcmN1X2Fzc2lnbl9wb2ludGVyKHR1bi0+dGZp bGVzW3R1bi0+bnVtcXVldWVzXSwgdGZpbGUpOwogCXR1bi0+bnVtcXVldWVzKys7CisJdHVuX3Nl dF9yZWFsX251bV9xdWV1ZXModHVuKTsKIG91dDoKIAlyZXR1cm4gZXJyOwogfQotLSAKMi4yMC4x CgoKRnJvbSA3YTk0MTNkNTRmMGI1YzE1NDY0NzVmOWM0NDEzMjdiMTljZTAxZWM0IE1vbiBTZXAg MTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBNYXRoaWFzIFRob3JlIDxtYXRoaWFzLnRob3JlQGluZmlu ZXJhLmNvbT4KRGF0ZTogTW9uLCAyOCBKYW4gMjAxOSAxMDowNzo0NyArMDEwMApTdWJqZWN0OiBb UEFUQ0ggMTUvMzNdIHVjY19nZXRoOiBSZXNldCBCUUwgcXVldWUgd2hlbiBzdG9wcGluZyBkZXZp Y2UKClsgVXBzdHJlYW0gY29tbWl0IGUxNWFhM2IyYjEzODhjMzk5YzFhMmNlMDg1NTBkMmNjNGY3 ZTNlMTQgXQoKQWZ0ZXIgYSB0aW1lb3V0IGV2ZW50IGNhdXNlZCBieSBmb3IgZXhhbXBsZSBhIGJy b2FkY2FzdCBzdG9ybSwgd2hlbgp0aGUgTUFDIGFuZCBQSFkgYXJlIHJlc2V0LCB0aGUgQlFMIFRY IHF1ZXVlIG5lZWRzIHRvIGJlIHJlc2V0IGFzCndlbGwuIE90aGVyd2lzZSwgdGhlIGRldmljZSB3 aWxsIGV4aGliaXQgc2V2ZXJlIHBlcmZvcm1hbmNlIGlzc3VlcwpldmVuIGFmdGVyIHRoZSBzdG9y bSBoYXMgZW5kZWQuCgpDby1hdXRob3JlZC1ieTogRGF2aWQgR291bmFyaXMgPGRhdmlkLmdvdW5h cmlzQGluZmluZXJhLmNvbT4KU2lnbmVkLW9mZi1ieTogTWF0aGlhcyBUaG9yZSA8bWF0aGlhcy50 aG9yZUBpbmZpbmVyYS5jb20+ClNpZ25lZC1vZmYtYnk6IERhdmlkIFMuIE1pbGxlciA8ZGF2ZW1A ZGF2ZW1sb2Z0Lm5ldD4KLS0tCiBkcml2ZXJzL25ldC9ldGhlcm5ldC9mcmVlc2NhbGUvdWNjX2dl dGguYyB8IDIgKysKIDEgZmlsZSBjaGFuZ2VkLCAyIGluc2VydGlvbnMoKykKCmRpZmYgLS1naXQg YS9kcml2ZXJzL25ldC9ldGhlcm5ldC9mcmVlc2NhbGUvdWNjX2dldGguYyBiL2RyaXZlcnMvbmV0 L2V0aGVybmV0L2ZyZWVzY2FsZS91Y2NfZ2V0aC5jCmluZGV4IDMyZTAyNzAwZmVhYS4uOTFkNzk2 NWIzZGFiIDEwMDY0NAotLS0gYS9kcml2ZXJzL25ldC9ldGhlcm5ldC9mcmVlc2NhbGUvdWNjX2dl dGguYworKysgYi9kcml2ZXJzL25ldC9ldGhlcm5ldC9mcmVlc2NhbGUvdWNjX2dldGguYwpAQCAt MTg4Myw2ICsxODgzLDggQEAgc3RhdGljIHZvaWQgdWNjX2dldGhfZnJlZV90eChzdHJ1Y3QgdWNj X2dldGhfcHJpdmF0ZSAqdWdldGgpCiAJdTE2IGksIGo7CiAJdTggX19pb21lbSAqYmQ7CiAKKwlu ZXRkZXZfcmVzZXRfcXVldWUodWdldGgtPm5kZXYpOworCiAJdWdfaW5mbyA9IHVnZXRoLT51Z19p bmZvOwogCXVmX2luZm8gPSAmdWdfaW5mby0+dWZfaW5mbzsKIAotLSAKMi4yMC4xCgoKRnJvbSA4 ZDgxYzJkNTNmYmM1Mzk2YmI1Zjc3ZWRjZDNjZWU1NzUxNjcxNDU3IE1vbiBTZXAgMTcgMDA6MDA6 MDAgMjAwMQpGcm9tOiBKYXNvbiBXYW5nIDxqYXNvd2FuZ0ByZWRoYXQuY29tPgpEYXRlOiBNb24s IDI4IEphbiAyMDE5IDE1OjA1OjA1ICswODAwClN1YmplY3Q6IFtQQVRDSCAxNi8zM10gdmhvc3Q6 IGZpeCBPT0IgaW4gZ2V0X3J4X2J1ZnMoKQoKWyBVcHN0cmVhbSBjb21taXQgYjQ2YTBiZjc4YWQ3 YjE1MGVmNTkxMGRhODM4NTlmN2Y1YTUxNGZmZCBdCgpBZnRlciBiYXRjaGVkIHVzZWQgcmluZyB1 cGRhdGluZyB3YXMgaW50cm9kdWNlZCBpbiBjb21taXQgZTJiM2IzNWViOTg5Cigidmhvc3RfbmV0 OiBiYXRjaCB1c2VkIHJpbmcgdXBkYXRlIGluIHJ4IikuIFdlIHRlbmQgdG8gYmF0Y2ggaGVhZHMg aW4KdnEtPmhlYWRzIGZvciBtb3JlIHRoYW4gb25lIHBhY2tldC4gQnV0IHRoZSBxdW90YSBwYXNz ZWQgdG8KZ2V0X3J4X2J1ZnMoKSB3YXMgbm90IGNvcnJlY3RseSBsaW1pdGVkLCB3aGljaCBjYW4g cmVzdWx0IGEgT09CIHdyaXRlCmluIHZxLT5oZWFkcy4KCiAgICAgICAgaGVhZGNvdW50ID0gZ2V0 X3J4X2J1ZnModnEsIHZxLT5oZWFkcyArIG52cS0+ZG9uZV9pZHgsCiAgICAgICAgICAgICAgICAg ICAgdmhvc3RfbGVuLCAmaW4sIHZxX2xvZywgJmxvZywKICAgICAgICAgICAgICAgICAgICBsaWtl bHkobWVyZ2VhYmxlKSA/IFVJT19NQVhJT1YgOiAxKTsKClVJT19NQVhJT1Ygd2FzIHN0aWxsIHVz ZWQgd2hpY2ggaXMgd3Jvbmcgc2luY2Ugd2UgY291bGQgaGF2ZSBiYXRjaGVkCnVzZWQgaW4gdnEt PmhlYWRzLCB0aGlzIHdpbGwgY2F1c2UgT09CIGlmIHRoZSBuZXh0IGJ1ZmZlciBuZWVkcyBtb3Jl CnRoYW4gOTYwICgxMDI0IChVSU9fTUFYSU9WKSAtIDY0IChWSE9TVF9ORVRfQkFUQ0gpKSBoZWFk cyBhZnRlciB3ZSd2ZQpiYXRjaGVkIDY0IChWSE9TVF9ORVRfQkFUQ0gpIGhlYWRzOgpBY2tlZC1i eTogU3RlZmFuIEhham5vY3ppIDxzdGVmYW5oYUByZWRoYXQuY29tPgoKPT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT0KQlVHIGttYWxsb2MtOGsgKFRhaW50ZWQ6IEcgICAgQiAgICAgICAgICAgICk6IFJlZHpv bmUgb3ZlcndyaXR0ZW4KLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCklORk86IDB4MDAwMDAwMDBmZDkz YjdhMi0weDAwMDAwMDAwZjA3MTMzODQuIEZpcnN0IGJ5dGUgMHhhOSBpbnN0ZWFkIG9mIDB4Y2MK SU5GTzogQWxsb2NhdGVkIGluIGFsbG9jX3BkKzB4MjIvMHg2MCBhZ2U9MzkzMzY3NyBjcHU9MiBw aWQ9MjY3NAogICAga21lbV9jYWNoZV9hbGxvY190cmFjZSsweGJiLzB4MTQwCiAgICBhbGxvY19w ZCsweDIyLzB4NjAKICAgIGdlbjhfcHBndHRfY3JlYXRlKzB4MTFkLzB4NWYwCiAgICBpOTE1X3Bw Z3R0X2NyZWF0ZSsweDE2LzB4ODAKICAgIGk5MTVfZ2VtX2NyZWF0ZV9jb250ZXh0KzB4MjQ4LzB4 MzkwCiAgICBpOTE1X2dlbV9jb250ZXh0X2NyZWF0ZV9pb2N0bCsweDRiLzB4ZTAKICAgIGRybV9p b2N0bF9rZXJuZWwrMHhhNS8weGYwCiAgICBkcm1faW9jdGwrMHgyZWQvMHgzYTAKICAgIGRvX3Zm c19pb2N0bCsweDlmLzB4NjIwCiAgICBrc3lzX2lvY3RsKzB4NmIvMHg4MAogICAgX194NjRfc3lz X2lvY3RsKzB4MTEvMHgyMAogICAgZG9fc3lzY2FsbF82NCsweDQzLzB4ZjAKICAgIGVudHJ5X1NZ U0NBTExfNjRfYWZ0ZXJfaHdmcmFtZSsweDQ0LzB4YTkKSU5GTzogU2xhYiAweDAwMDAwMDAwZDEz ZTg3YWYgb2JqZWN0cz0zIHVzZWQ9MyBmcD0weCAgICAgICAgICAobnVsbCkgZmxhZ3M9MHgyMDAw MDAwMDAwMTAyMDEKSU5GTzogT2JqZWN0IDB4MDAwMDAwMDAwMzI3ODgwMiBAb2Zmc2V0PTE3MDY0 IGZwPTB4MDAwMDAwMDBlMmU2NjUyYgoKRml4aW5nIHRoaXMgYnkgYWxsb2NhdGluZyBVSU9fTUFY SU9WICsgVkhPU1RfTkVUX0JBVENIIGlvdnMgZm9yCnZob3N0LW5ldC4gVGhpcyBpcyBkb25lIHRo cm91Z2ggc2V0IHRoZSBsaW1pdGF0aW9uIHRocm91Z2gKdmhvc3RfZGV2X2luaXQoKSwgdGhlbiBz ZXRfb3duZXIgY2FuIGFsbG9jYXRlIHRoZSBudW1iZXIgb2YgaW92IGluIGEKcGVyIGRldmljZSBt YW5uZXIuCgpUaGlzIGZpeGVzIENWRS0yMDE4LTE2ODgwLgoKRml4ZXM6IGUyYjNiMzVlYjk4OSAo InZob3N0X25ldDogYmF0Y2ggdXNlZCByaW5nIHVwZGF0ZSBpbiByeCIpClNpZ25lZC1vZmYtYnk6 IEphc29uIFdhbmcgPGphc293YW5nQHJlZGhhdC5jb20+ClNpZ25lZC1vZmYtYnk6IERhdmlkIFMu IE1pbGxlciA8ZGF2ZW1AZGF2ZW1sb2Z0Lm5ldD4KLS0tCiBkcml2ZXJzL3Zob3N0L25ldC5jICAg fCAzICsrLQogZHJpdmVycy92aG9zdC9zY3NpLmMgIHwgMiArLQogZHJpdmVycy92aG9zdC92aG9z dC5jIHwgNyArKysrLS0tCiBkcml2ZXJzL3Zob3N0L3Zob3N0LmggfCA0ICsrKy0KIGRyaXZlcnMv dmhvc3QvdnNvY2suYyB8IDIgKy0KIDUgZmlsZXMgY2hhbmdlZCwgMTEgaW5zZXJ0aW9ucygrKSwg NyBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9kcml2ZXJzL3Zob3N0L25ldC5jIGIvZHJpdmVy cy92aG9zdC9uZXQuYwppbmRleCA3ODRkZjJiNDk2MjguLjQ5NTQ3MThiMjc1NCAxMDA2NDQKLS0t IGEvZHJpdmVycy92aG9zdC9uZXQuYworKysgYi9kcml2ZXJzL3Zob3N0L25ldC5jCkBAIC0xMjkz LDcgKzEyOTMsOCBAQCBzdGF0aWMgaW50IHZob3N0X25ldF9vcGVuKHN0cnVjdCBpbm9kZSAqaW5v ZGUsIHN0cnVjdCBmaWxlICpmKQogCQluLT52cXNbaV0ucnhfcmluZyA9IE5VTEw7CiAJCXZob3N0 X25ldF9idWZfaW5pdCgmbi0+dnFzW2ldLnJ4cSk7CiAJfQotCXZob3N0X2Rldl9pbml0KGRldiwg dnFzLCBWSE9TVF9ORVRfVlFfTUFYKTsKKwl2aG9zdF9kZXZfaW5pdChkZXYsIHZxcywgVkhPU1Rf TkVUX1ZRX01BWCwKKwkJICAgICAgIFVJT19NQVhJT1YgKyBWSE9TVF9ORVRfQkFUQ0gpOwogCiAJ dmhvc3RfcG9sbF9pbml0KG4tPnBvbGwgKyBWSE9TVF9ORVRfVlFfVFgsIGhhbmRsZV90eF9uZXQs IEVQT0xMT1VULCBkZXYpOwogCXZob3N0X3BvbGxfaW5pdChuLT5wb2xsICsgVkhPU1RfTkVUX1ZR X1JYLCBoYW5kbGVfcnhfbmV0LCBFUE9MTElOLCBkZXYpOwpkaWZmIC0tZ2l0IGEvZHJpdmVycy92 aG9zdC9zY3NpLmMgYi9kcml2ZXJzL3Zob3N0L3Njc2kuYwppbmRleCA1MGRmZmU4MzcxNGMuLjcz YTRhZGVhYjA5NiAxMDA2NDQKLS0tIGEvZHJpdmVycy92aG9zdC9zY3NpLmMKKysrIGIvZHJpdmVy cy92aG9zdC9zY3NpLmMKQEAgLTE2MjgsNyArMTYyOCw3IEBAIHN0YXRpYyBpbnQgdmhvc3Rfc2Nz aV9vcGVuKHN0cnVjdCBpbm9kZSAqaW5vZGUsIHN0cnVjdCBmaWxlICpmKQogCQl2cXNbaV0gPSAm dnMtPnZxc1tpXS52cTsKIAkJdnMtPnZxc1tpXS52cS5oYW5kbGVfa2ljayA9IHZob3N0X3Njc2lf aGFuZGxlX2tpY2s7CiAJfQotCXZob3N0X2Rldl9pbml0KCZ2cy0+ZGV2LCB2cXMsIFZIT1NUX1ND U0lfTUFYX1ZRKTsKKwl2aG9zdF9kZXZfaW5pdCgmdnMtPmRldiwgdnFzLCBWSE9TVF9TQ1NJX01B WF9WUSwgVUlPX01BWElPVik7CiAKIAl2aG9zdF9zY3NpX2luaXRfaW5mbGlnaHQodnMsIE5VTEwp OwogCmRpZmYgLS1naXQgYS9kcml2ZXJzL3Zob3N0L3Zob3N0LmMgYi9kcml2ZXJzL3Zob3N0L3Zo b3N0LmMKaW5kZXggYzY2ZmM4MzA4YjVlLi5jZjgyZTcyNjYzOTcgMTAwNjQ0Ci0tLSBhL2RyaXZl cnMvdmhvc3Qvdmhvc3QuYworKysgYi9kcml2ZXJzL3Zob3N0L3Zob3N0LmMKQEAgLTM5MCw5ICsz OTAsOSBAQCBzdGF0aWMgbG9uZyB2aG9zdF9kZXZfYWxsb2NfaW92ZWNzKHN0cnVjdCB2aG9zdF9k ZXYgKmRldikKIAkJdnEtPmluZGlyZWN0ID0ga21hbGxvY19hcnJheShVSU9fTUFYSU9WLAogCQkJ CQkgICAgIHNpemVvZigqdnEtPmluZGlyZWN0KSwKIAkJCQkJICAgICBHRlBfS0VSTkVMKTsKLQkJ dnEtPmxvZyA9IGttYWxsb2NfYXJyYXkoVUlPX01BWElPViwgc2l6ZW9mKCp2cS0+bG9nKSwKKwkJ dnEtPmxvZyA9IGttYWxsb2NfYXJyYXkoZGV2LT5pb3ZfbGltaXQsIHNpemVvZigqdnEtPmxvZyks CiAJCQkJCUdGUF9LRVJORUwpOwotCQl2cS0+aGVhZHMgPSBrbWFsbG9jX2FycmF5KFVJT19NQVhJ T1YsIHNpemVvZigqdnEtPmhlYWRzKSwKKwkJdnEtPmhlYWRzID0ga21hbGxvY19hcnJheShkZXYt Pmlvdl9saW1pdCwgc2l6ZW9mKCp2cS0+aGVhZHMpLAogCQkJCQkgIEdGUF9LRVJORUwpOwogCQlp ZiAoIXZxLT5pbmRpcmVjdCB8fCAhdnEtPmxvZyB8fCAhdnEtPmhlYWRzKQogCQkJZ290byBlcnJf bm9tZW07CkBAIC00MTQsNyArNDE0LDcgQEAgc3RhdGljIHZvaWQgdmhvc3RfZGV2X2ZyZWVfaW92 ZWNzKHN0cnVjdCB2aG9zdF9kZXYgKmRldikKIH0KIAogdm9pZCB2aG9zdF9kZXZfaW5pdChzdHJ1 Y3Qgdmhvc3RfZGV2ICpkZXYsCi0JCSAgICBzdHJ1Y3Qgdmhvc3RfdmlydHF1ZXVlICoqdnFzLCBp bnQgbnZxcykKKwkJICAgIHN0cnVjdCB2aG9zdF92aXJ0cXVldWUgKip2cXMsIGludCBudnFzLCBp bnQgaW92X2xpbWl0KQogewogCXN0cnVjdCB2aG9zdF92aXJ0cXVldWUgKnZxOwogCWludCBpOwpA QCAtNDI3LDYgKzQyNyw3IEBAIHZvaWQgdmhvc3RfZGV2X2luaXQoc3RydWN0IHZob3N0X2RldiAq ZGV2LAogCWRldi0+aW90bGIgPSBOVUxMOwogCWRldi0+bW0gPSBOVUxMOwogCWRldi0+d29ya2Vy ID0gTlVMTDsKKwlkZXYtPmlvdl9saW1pdCA9IGlvdl9saW1pdDsKIAlpbml0X2xsaXN0X2hlYWQo JmRldi0+d29ya19saXN0KTsKIAlpbml0X3dhaXRxdWV1ZV9oZWFkKCZkZXYtPndhaXQpOwogCUlO SVRfTElTVF9IRUFEKCZkZXYtPnJlYWRfbGlzdCk7CmRpZmYgLS1naXQgYS9kcml2ZXJzL3Zob3N0 L3Zob3N0LmggYi9kcml2ZXJzL3Zob3N0L3Zob3N0LmgKaW5kZXggMWI2NzVkYWQ1ZTA1Li45NDkw ZTdkZGIzNDAgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvdmhvc3Qvdmhvc3QuaAorKysgYi9kcml2ZXJz L3Zob3N0L3Zob3N0LmgKQEAgLTE3MCw5ICsxNzAsMTEgQEAgc3RydWN0IHZob3N0X2RldiB7CiAJ c3RydWN0IGxpc3RfaGVhZCByZWFkX2xpc3Q7CiAJc3RydWN0IGxpc3RfaGVhZCBwZW5kaW5nX2xp c3Q7CiAJd2FpdF9xdWV1ZV9oZWFkX3Qgd2FpdDsKKwlpbnQgaW92X2xpbWl0OwogfTsKIAotdm9p ZCB2aG9zdF9kZXZfaW5pdChzdHJ1Y3Qgdmhvc3RfZGV2ICosIHN0cnVjdCB2aG9zdF92aXJ0cXVl dWUgKip2cXMsIGludCBudnFzKTsKK3ZvaWQgdmhvc3RfZGV2X2luaXQoc3RydWN0IHZob3N0X2Rl diAqLCBzdHJ1Y3Qgdmhvc3RfdmlydHF1ZXVlICoqdnFzLAorCQkgICAgaW50IG52cXMsIGludCBp b3ZfbGltaXQpOwogbG9uZyB2aG9zdF9kZXZfc2V0X293bmVyKHN0cnVjdCB2aG9zdF9kZXYgKmRl dik7CiBib29sIHZob3N0X2Rldl9oYXNfb3duZXIoc3RydWN0IHZob3N0X2RldiAqZGV2KTsKIGxv bmcgdmhvc3RfZGV2X2NoZWNrX293bmVyKHN0cnVjdCB2aG9zdF9kZXYgKik7CmRpZmYgLS1naXQg YS9kcml2ZXJzL3Zob3N0L3Zzb2NrLmMgYi9kcml2ZXJzL3Zob3N0L3Zzb2NrLmMKaW5kZXggOThl ZDViZTEzMmM2Li5mYTkzZjY3MTFkOGQgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvdmhvc3QvdnNvY2su YworKysgYi9kcml2ZXJzL3Zob3N0L3Zzb2NrLmMKQEAgLTUzMSw3ICs1MzEsNyBAQCBzdGF0aWMg aW50IHZob3N0X3Zzb2NrX2Rldl9vcGVuKHN0cnVjdCBpbm9kZSAqaW5vZGUsIHN0cnVjdCBmaWxl ICpmaWxlKQogCXZzb2NrLT52cXNbVlNPQ0tfVlFfVFhdLmhhbmRsZV9raWNrID0gdmhvc3RfdnNv Y2tfaGFuZGxlX3R4X2tpY2s7CiAJdnNvY2stPnZxc1tWU09DS19WUV9SWF0uaGFuZGxlX2tpY2sg PSB2aG9zdF92c29ja19oYW5kbGVfcnhfa2ljazsKIAotCXZob3N0X2Rldl9pbml0KCZ2c29jay0+ ZGV2LCB2cXMsIEFSUkFZX1NJWkUodnNvY2stPnZxcykpOworCXZob3N0X2Rldl9pbml0KCZ2c29j ay0+ZGV2LCB2cXMsIEFSUkFZX1NJWkUodnNvY2stPnZxcyksIFVJT19NQVhJT1YpOwogCiAJZmls ZS0+cHJpdmF0ZV9kYXRhID0gdnNvY2s7CiAJc3Bpbl9sb2NrX2luaXQoJnZzb2NrLT5zZW5kX3Br dF9saXN0X2xvY2spOwotLSAKMi4yMC4xCgoKRnJvbSAzNTEyZmUzNWI0ZWUwZGIzMjM0MTg3OWJl M2Y0OTA1YmU3ODFiZmUyIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBMb3JlbnpvIEJp YW5jb25pIDxsb3JlbnpvLmJpYW5jb25pQHJlZGhhdC5jb20+CkRhdGU6IE1vbiwgMjggSmFuIDIw MTkgMjI6MjM6NDkgKzAxMDAKU3ViamVjdDogW1BBVENIIDE3LzMzXSBuZXQ6IGlwNl9ncmU6IGFs d2F5cyByZXBvcnRzIG9fa2V5IHRvIHVzZXJzcGFjZQoKWyBVcHN0cmVhbSBjb21taXQgYzcwNjg2 M2JjODkwMmQwYzJkMWE1YTI3YWM4ZTFlYWQ1ZDA2Yjc5ZCBdCgpBcyBFcnNwYW5fdjQsIEVyc3Bh bl92NiBwcm90b2NvbCByZWxpZXMgb24gb19rZXkgdG8gY29uZmlndXJlCnNlc3Npb24gaWQgaGVh ZGVyIGZpZWxkLiBIb3dldmVyIFRVTk5FTF9LRVkgYml0IGlzIGNsZWFyZWQgaW4KaXA2ZXJzcGFu X3R1bm5lbF94bWl0IHNpbmNlIEVSU1BBTiBwcm90b2NvbCBkb2VzIG5vdCBzZXQgdGhlIGtleSBm aWVsZApvZiB0aGUgZXh0ZXJuYWwgR1JFIGhlYWRlciBhbmQgc28gdGhlIGNvbmZpZ3VyZWQgb19r ZXkgaXMgbm90IHJlcG9ydGVkCnRvIHVzZXJzcGFjZS4gVGhlIGlzc3VlIGNhbiBiZSB0cmlnZ2Vy ZWQgd2l0aCB0aGUgZm9sbG93aW5nIHJlcHJvZHVjZXI6CgokaXAgbGluayBhZGQgaXA2ZXJzcGFu MSB0eXBlIGlwNmVyc3BhbiBsb2NhbCAyMDAwOjoxIHJlbW90ZSAyMDAwOjoyIFwKICAgIGtleSAx IHNlcSBlcnNwYW5fdmVyIDEKJGlwIGxpbmsgc2V0IGlwNmVyc3BhbjEgdXAKaXAgLWQgbGluayBz aCBpcDZlcnNwYW4xCgppcDZlcnNwYW4xQE5PTkU6IDxCUk9BRENBU1QsTVVMVElDQVNUPiBtdHUg MTQyMiBxZGlzYyBub29wIHN0YXRlIERPV04gbW9kZSBERUZBVUxUCiAgICBsaW5rL2V0aGVyIGJh OmZmOjA5OjI0OmMzOjBlIGJyZCBmZjpmZjpmZjpmZjpmZjpmZiBwcm9taXNjdWl0eSAwIG1pbm10 dSA2OCBtYXhtdHUgMTUwMAogICAgaXA2ZXJzcGFuIHJlbW90ZSAyMDAwOjoyIGxvY2FsIDIwMDA6 OjEgZW5jYXBsaW1pdCA0IGZsb3dsYWJlbCAweDAwMDAwIGlrZXkgMC4wLjAuMSBpc2VxIG9zZXEK CkZpeCB0aGUgaXNzdWUgYWRkaW5nIFRVTk5FTF9LRVkgYml0IHRvIHRoZSBvX2ZsYWdzIHBhcmFt ZXRlciBpbgppcDZncmVfZmlsbF9pbmZvCgpGaXhlczogNWE5NjNlYjYxYjdjICgiaXA2X2dyZTog QWRkIEVSU1BBTiBuYXRpdmUgdHVubmVsIHN1cHBvcnQiKQpTaWduZWQtb2ZmLWJ5OiBMb3Jlbnpv IEJpYW5jb25pIDxsb3JlbnpvLmJpYW5jb25pQHJlZGhhdC5jb20+ClNpZ25lZC1vZmYtYnk6IERh dmlkIFMuIE1pbGxlciA8ZGF2ZW1AZGF2ZW1sb2Z0Lm5ldD4KLS0tCiBuZXQvaXB2Ni9pcDZfZ3Jl LmMgfCA3ICsrKysrKy0KIDEgZmlsZSBjaGFuZ2VkLCA2IGluc2VydGlvbnMoKyksIDEgZGVsZXRp b24oLSkKCmRpZmYgLS1naXQgYS9uZXQvaXB2Ni9pcDZfZ3JlLmMgYi9uZXQvaXB2Ni9pcDZfZ3Jl LmMKaW5kZXggYWQyZDJkMjY5Y2U0Li45NDkwMzA2MWYzMjQgMTAwNjQ0Ci0tLSBhL25ldC9pcHY2 L2lwNl9ncmUuYworKysgYi9uZXQvaXB2Ni9pcDZfZ3JlLmMKQEAgLTIxMDIsMTIgKzIxMDIsMTcg QEAgc3RhdGljIGludCBpcDZncmVfZmlsbF9pbmZvKHN0cnVjdCBza19idWZmICpza2IsIGNvbnN0 IHN0cnVjdCBuZXRfZGV2aWNlICpkZXYpCiB7CiAJc3RydWN0IGlwNl90bmwgKnQgPSBuZXRkZXZf cHJpdihkZXYpOwogCXN0cnVjdCBfX2lwNl90bmxfcGFybSAqcCA9ICZ0LT5wYXJtczsKKwlfX2Jl MTYgb19mbGFncyA9IHAtPm9fZmxhZ3M7CisKKwlpZiAoKHAtPmVyc3Bhbl92ZXIgPT0gMSB8fCBw LT5lcnNwYW5fdmVyID09IDIpICYmCisJICAgICFwLT5jb2xsZWN0X21kKQorCQlvX2ZsYWdzIHw9 IFRVTk5FTF9LRVk7CiAKIAlpZiAobmxhX3B1dF91MzIoc2tiLCBJRkxBX0dSRV9MSU5LLCBwLT5s aW5rKSB8fAogCSAgICBubGFfcHV0X2JlMTYoc2tiLCBJRkxBX0dSRV9JRkxBR1MsCiAJCQkgZ3Jl X3RubF9mbGFnc190b19ncmVfZmxhZ3MocC0+aV9mbGFncykpIHx8CiAJICAgIG5sYV9wdXRfYmUx Nihza2IsIElGTEFfR1JFX09GTEFHUywKLQkJCSBncmVfdG5sX2ZsYWdzX3RvX2dyZV9mbGFncyhw LT5vX2ZsYWdzKSkgfHwKKwkJCSBncmVfdG5sX2ZsYWdzX3RvX2dyZV9mbGFncyhvX2ZsYWdzKSkg fHwKIAkgICAgbmxhX3B1dF9iZTMyKHNrYiwgSUZMQV9HUkVfSUtFWSwgcC0+aV9rZXkpIHx8CiAJ ICAgIG5sYV9wdXRfYmUzMihza2IsIElGTEFfR1JFX09LRVksIHAtPm9fa2V5KSB8fAogCSAgICBu bGFfcHV0X2luNl9hZGRyKHNrYiwgSUZMQV9HUkVfTE9DQUwsICZwLT5sYWRkcikgfHwKLS0gCjIu MjAuMQoKCkZyb20gN2QzZGZiZDJjOWZmMDI4ZjBjNjdjZTFlMTIyZmVjMTUwMTkzYWVjOCBNb24g U2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJvbTogWGluIExvbmcgPGx1Y2llbi54aW5AZ21haWwuY29t PgpEYXRlOiBUdWUsIDIyIEphbiAyMDE5IDAyOjQwOjEyICswODAwClN1YmplY3Q6IFtQQVRDSCAx OC8zM10gc2N0cDogaW1wcm92ZSB0aGUgZXZlbnRzIGZvciBzY3RwIHN0cmVhbSBhZGRpbmcKClsg VXBzdHJlYW0gY29tbWl0IDgyMjBjODcwY2IwZjRlYWE0ZTMzNWM5NjQ1ZGJkOWExYzQ2MWMxZGQg XQoKVGhpcyBwYXRjaCBpcyB0byBpbXByb3ZlIHNjdHAgc3RyZWFtIGFkZGluZyBldmVudHMgaW4g MiBwbGFjZXM6CgogIDEuIEluIHNjdHBfcHJvY2Vzc19zdHJyZXNldF9hZGRzdHJtX291dCgpLCBt b3ZlIHVwIFNDVFBfTUFYX1NUUkVBTQogICAgIGFuZCBpbiBzdHJlYW0gYWxsb2NhdGlvbiBmYWls dXJlIGNoZWNrcywgYXMgdGhlIGFkZGluZyBoYXMgdG8KICAgICBzdWNjZWVkIGFmdGVyIHJlY29u Zl90aW1lciBzdG9wcyBmb3IgdGhlIGluIHN0cmVhbSBhZGRpbmcKICAgICByZXF1ZXN0IHJldHJh bnNtaXNzaW9uLgoKICAzLiBJbiBzY3RwX3Byb2Nlc3Nfc3RycmVzZXRfYWRkc3RybV9pbigpLCBu byBldmVudCBzaG91bGQgYmUgc2VudCwKICAgICBhcyBubyBpbiBvciBvdXQgc3RyZWFtIGlzIGFk ZGVkIGhlcmUuCgpGaXhlczogNTBhNDE1OTFmMTEwICgic2N0cDogaW1wbGVtZW50IHJlY2VpdmVy LXNpZGUgcHJvY2VkdXJlcyBmb3IgdGhlIEFkZCBPdXRnb2luZyBTdHJlYW1zIFJlcXVlc3QgUGFy YW1ldGVyIikKRml4ZXM6IGM1YzRlYmIzYWI4NyAoInNjdHA6IGltcGxlbWVudCByZWNlaXZlci1z aWRlIHByb2NlZHVyZXMgZm9yIHRoZSBBZGQgSW5jb21pbmcgU3RyZWFtcyBSZXF1ZXN0IFBhcmFt ZXRlciIpClJlcG9ydGVkLWJ5OiBZaW5nIFh1IDx5aW54dUByZWRoYXQuY29tPgpTaWduZWQtb2Zm LWJ5OiBYaW4gTG9uZyA8bHVjaWVuLnhpbkBnbWFpbC5jb20+ClNpZ25lZC1vZmYtYnk6IERhdmlk IFMuIE1pbGxlciA8ZGF2ZW1AZGF2ZW1sb2Z0Lm5ldD4KLS0tCiBuZXQvc2N0cC9zdHJlYW0uYyB8 IDE5ICsrKysrKysrLS0tLS0tLS0tLS0KIDEgZmlsZSBjaGFuZ2VkLCA4IGluc2VydGlvbnMoKyks IDExIGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL25ldC9zY3RwL3N0cmVhbS5jIGIvbmV0L3Nj dHAvc3RyZWFtLmMKaW5kZXggNmMxODhiMDZlNWUxLi44MGUwYWU1NTM0ZWMgMTAwNjQ0Ci0tLSBh L25ldC9zY3RwL3N0cmVhbS5jCisrKyBiL25ldC9zY3RwL3N0cmVhbS5jCkBAIC04NjYsNiArODY2 LDE0IEBAIHN0cnVjdCBzY3RwX2NodW5rICpzY3RwX3Byb2Nlc3Nfc3RycmVzZXRfYWRkc3RybV9v dXQoCiAJaWYgKCEoYXNvYy0+c3RycmVzZXRfZW5hYmxlICYgU0NUUF9FTkFCTEVfQ0hBTkdFX0FT U09DX1JFUSkpCiAJCWdvdG8gb3V0OwogCisJaW4gPSBudG9ocyhhZGRzdHJtLT5udW1iZXJfb2Zf c3RyZWFtcyk7CisJaW5jbnQgPSBzdHJlYW0tPmluY250ICsgaW47CisJaWYgKCFpbiB8fCBpbmNu dCA+IFNDVFBfTUFYX1NUUkVBTSkKKwkJZ290byBvdXQ7CisKKwlpZiAoc2N0cF9zdHJlYW1fYWxs b2NfaW4oc3RyZWFtLCBpbmNudCwgR0ZQX0FUT01JQykpCisJCWdvdG8gb3V0OworCiAJaWYgKGFz b2MtPnN0cnJlc2V0X2NodW5rKSB7CiAJCWlmICghc2N0cF9jaHVua19sb29rdXBfc3RycmVzZXRf cGFyYW0oCiAJCQlhc29jLCAwLCBTQ1RQX1BBUkFNX1JFU0VUX0FERF9JTl9TVFJFQU1TKSkgewpA QCAtODg5LDE0ICs4OTcsNiBAQCBzdHJ1Y3Qgc2N0cF9jaHVuayAqc2N0cF9wcm9jZXNzX3N0cnJl c2V0X2FkZHN0cm1fb3V0KAogCQl9CiAJfQogCi0JaW4gPSBudG9ocyhhZGRzdHJtLT5udW1iZXJf b2Zfc3RyZWFtcyk7Ci0JaW5jbnQgPSBzdHJlYW0tPmluY250ICsgaW47Ci0JaWYgKCFpbiB8fCBp bmNudCA+IFNDVFBfTUFYX1NUUkVBTSkKLQkJZ290byBvdXQ7Ci0KLQlpZiAoc2N0cF9zdHJlYW1f YWxsb2NfaW4oc3RyZWFtLCBpbmNudCwgR0ZQX0FUT01JQykpCi0JCWdvdG8gb3V0OwotCiAJc3Ry ZWFtLT5pbmNudCA9IGluY250OwogCiAJcmVzdWx0ID0gU0NUUF9TVFJSRVNFVF9QRVJGT1JNRUQ7 CkBAIC05NjYsOSArOTY2LDYgQEAgc3RydWN0IHNjdHBfY2h1bmsgKnNjdHBfcHJvY2Vzc19zdHJy ZXNldF9hZGRzdHJtX2luKAogCiAJcmVzdWx0ID0gU0NUUF9TVFJSRVNFVF9QRVJGT1JNRUQ7CiAK LQkqZXZwID0gc2N0cF91bHBldmVudF9tYWtlX3N0cmVhbV9jaGFuZ2VfZXZlbnQoYXNvYywKLQkJ MCwgMCwgbnRvaHMoYWRkc3RybS0+bnVtYmVyX29mX3N0cmVhbXMpLCBHRlBfQVRPTUlDKTsKLQog b3V0OgogCXNjdHBfdXBkYXRlX3N0cnJlc2V0X3Jlc3VsdChhc29jLCByZXN1bHQpOwogZXJyOgot LSAKMi4yMC4xCgoKRnJvbSAwZmQyMDUyY2UyNGI2OGU4ZTA2Y2JkMDMwNmFiZDhiMjM3OTkwYjNh IE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBBeWEgTGV2aW4gPGF5YWxAbWVsbGFub3gu Y29tPgpEYXRlOiBNb24sIDI0IERlYyAyMDE4IDA5OjQ4OjQyICswMjAwClN1YmplY3Q6IFtQQVRD SCAxOS8zM10gbmV0L21seDVlOiBBbGxvdyBNQUMgaW52YWxpZGF0aW9uIHdoaWxlIHNwb29mY2hr IGlzIE9OCgpbIFVwc3RyZWFtIGNvbW1pdCA5ZDJjYmRjNWQzMzQ5NjdjMzViNWY1OGM3YmYzMjA4 ZTE3MzI1NjQ3IF0KClByaW9yIHRvIHRoaXMgcGF0Y2ggdGhlIGRyaXZlciBwcm9oaWJpdGVkIHNw b29mIGNoZWNraW5nIG9uIGludmFsaWQgTUFDLgpOb3cgdGhlIHVzZXIgY2FuIHNldCB0aGlzIGNv bmZpZ3VyYXRpb24gaWYgaXQgd2lzaGVzIHRvLgoKVGhpcyBpcyByZXF1aXJlZCBzaW5jZSBsaWJ2 aXJ0IG1pZ2h0IGludmFsaWRhdGUgdGhlIFZGIE1hYyBieSBzZXR0aW5nIGl0CnRvIHplcm8sIHdo aWxlIHNwb29mY2hlY2sgaXMgT04uCgpGaXhlczogMWFiMjA2OGE0YzY2ICgibmV0L21seDU6IElt cGxlbWVudCB2cG9ydHMgYWRtaW4gc3RhdGUgYmFja3VwL3Jlc3RvcmUiKQpTaWduZWQtb2ZmLWJ5 OiBBeWEgTGV2aW4gPGF5YWxAbWVsbGFub3guY29tPgpSZXZpZXdlZC1ieTogRXJhbiBCZW4gRWxp c2hhIDxlcmFuYmVAbWVsbGFub3guY29tPgpTaWduZWQtb2ZmLWJ5OiBTYWVlZCBNYWhhbWVlZCA8 c2FlZWRtQG1lbGxhbm94LmNvbT4KLS0tCiAuLi4vbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUv Y29yZS9lc3dpdGNoLmMgIHwgMTggKysrKysrLS0tLS0tLS0tLS0tCiAxIGZpbGUgY2hhbmdlZCwg NiBpbnNlcnRpb25zKCspLCAxMiBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9kcml2ZXJzL25l dC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvZXN3aXRjaC5jIGIvZHJpdmVycy9uZXQvZXRo ZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2Vzd2l0Y2guYwppbmRleCBkMDA0OTU3MzI4ZjkuLjU5 OWUyOTMwNjIwYiAxMDA2NDQKLS0tIGEvZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4 NS9jb3JlL2Vzd2l0Y2guYworKysgYi9kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1 L2NvcmUvZXN3aXRjaC5jCkBAIC0xMTMzLDEzICsxMTMzLDYgQEAgc3RhdGljIGludCBlc3dfdnBv cnRfaW5ncmVzc19jb25maWcoc3RydWN0IG1seDVfZXN3aXRjaCAqZXN3LAogCWludCBlcnIgPSAw OwogCXU4ICpzbWFjX3Y7CiAKLQlpZiAodnBvcnQtPmluZm8uc3Bvb2ZjaGsgJiYgIWlzX3ZhbGlk X2V0aGVyX2FkZHIodnBvcnQtPmluZm8ubWFjKSkgewotCQltbHg1X2NvcmVfd2Fybihlc3ctPmRl diwKLQkJCSAgICAgICAidnBvcnRbJWRdIGNvbmZpZ3VyZSBpbmdyZXNzIHJ1bGVzIGZhaWxlZCwg aWxsZWdhbCBtYWMgd2l0aCBzcG9vZmNoa1xuIiwKLQkJCSAgICAgICB2cG9ydC0+dnBvcnQpOwot CQlyZXR1cm4gLUVQRVJNOwotCX0KLQogCWVzd192cG9ydF9jbGVhbnVwX2luZ3Jlc3NfcnVsZXMo ZXN3LCB2cG9ydCk7CiAKIAlpZiAoIXZwb3J0LT5pbmZvLnZsYW4gJiYgIXZwb3J0LT5pbmZvLnFv cyAmJiAhdnBvcnQtPmluZm8uc3Bvb2ZjaGspIHsKQEAgLTE4MTIsMTMgKzE4MDUsMTAgQEAgaW50 IG1seDVfZXN3aXRjaF9zZXRfdnBvcnRfbWFjKHN0cnVjdCBtbHg1X2Vzd2l0Y2ggKmVzdywKIAlt dXRleF9sb2NrKCZlc3ctPnN0YXRlX2xvY2spOwogCWV2cG9ydCA9ICZlc3ctPnZwb3J0c1t2cG9y dF07CiAKLQlpZiAoZXZwb3J0LT5pbmZvLnNwb29mY2hrICYmICFpc192YWxpZF9ldGhlcl9hZGRy KG1hYykpIHsKKwlpZiAoZXZwb3J0LT5pbmZvLnNwb29mY2hrICYmICFpc192YWxpZF9ldGhlcl9h ZGRyKG1hYykpCiAJCW1seDVfY29yZV93YXJuKGVzdy0+ZGV2LAotCQkJICAgICAgICJNQUMgaW52 YWxpZGF0aW9uIGlzIG5vdCBhbGxvd2VkIHdoZW4gc3Bvb2ZjaGsgaXMgb24sIHZwb3J0KCVkKVxu IiwKKwkJCSAgICAgICAiU2V0IGludmFsaWQgTUFDIHdoaWxlIHNwb29mY2hrIGlzIG9uLCB2cG9y dCglZClcbiIsCiAJCQkgICAgICAgdnBvcnQpOwotCQllcnIgPSAtRVBFUk07Ci0JCWdvdG8gdW5s b2NrOwotCX0KIAogCWVyciA9IG1seDVfbW9kaWZ5X25pY192cG9ydF9tYWNfYWRkcmVzcyhlc3ct PmRldiwgdnBvcnQsIG1hYyk7CiAJaWYgKGVycikgewpAQCAtMTk2NCw2ICsxOTU0LDEwIEBAIGlu dCBtbHg1X2Vzd2l0Y2hfc2V0X3Zwb3J0X3Nwb29mY2hrKHN0cnVjdCBtbHg1X2Vzd2l0Y2ggKmVz dywKIAlldnBvcnQgPSAmZXN3LT52cG9ydHNbdnBvcnRdOwogCXBzY2hrID0gZXZwb3J0LT5pbmZv LnNwb29mY2hrOwogCWV2cG9ydC0+aW5mby5zcG9vZmNoayA9IHNwb29mY2hrOworCWlmIChwc2No ayAmJiAhaXNfdmFsaWRfZXRoZXJfYWRkcihldnBvcnQtPmluZm8ubWFjKSkKKwkJbWx4NV9jb3Jl X3dhcm4oZXN3LT5kZXYsCisJCQkgICAgICAgIlNwb29mY2hrIGluIHNldCB3aGlsZSBNQUMgaXMg aW52YWxpZCwgdnBvcnQoJWQpXG4iLAorCQkJICAgICAgIGV2cG9ydC0+dnBvcnQpOwogCWlmIChl dnBvcnQtPmVuYWJsZWQgJiYgZXN3LT5tb2RlID09IFNSSU9WX0xFR0FDWSkKIAkJZXJyID0gZXN3 X3Zwb3J0X2luZ3Jlc3NfY29uZmlnKGVzdywgZXZwb3J0KTsKIAlpZiAoZXJyKQotLSAKMi4yMC4x CgoKRnJvbSA0OGNlNzE4NDY2ZmI4YmViNWM5Mjc3ZWU4NDIzOWJlYjlmZDYyNWMzIE1vbiBTZXAg MTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBOaXIgRG90YW4gPG5pcmRAbWVsbGFub3guY29tPgpEYXRl OiBTdW4sIDI3IEphbiAyMDE5IDA5OjI2OjIyICswMjAwClN1YmplY3Q6IFtQQVRDSCAyMC8zM10g aXA2bXI6IEZpeCBub3RpZmllcnMgY2FsbCBvbiBtcm91dGVfY2xlYW5fdGFibGVzKCkKClsgVXBz dHJlYW0gY29tbWl0IDE0NjgyMGNjMjQwZjQzODljZjMzNDgxYzA1OGQ5NDkzYWVmOTVlMjUgXQoK V2hlbiB0aGUgTUMgcm91dGUgc29ja2V0IGlzIGNsb3NlZCwgbXJvdXRlX2NsZWFuX3RhYmxlcygp IGlzIGNhbGxlZCB0bwpjbGVhbnVwIGV4aXN0aW5nIHJvdXRlcy4gTWlzdGFrZW5seSBub3RpZmll cnMgY2FsbCB3YXMgcHV0IG9uIHRoZSBjbGVhbnVwCm9mIHRoZSB1bnJlc29sdmVkIE1DIHJvdXRl IGVudHJpZXMgY2FjaGUuCkluIGEgY2FzZSB3aGVyZSB0aGUgTUMgc29ja2V0IGNsb3NlcyBiZWZv cmUgYW4gdW5yZXNvbHZlZCByb3V0ZSBleHBpcmVzLAp0aGUgbm90aWZpZXIgY2FsbCBsZWFkcyB0 byBhIGNyYXNoLCBjYXVzZWQgYnkgdGhlIGRyaXZlciB0cnlpbmcgdG8KaW5jcmVtZW50IGEgbm9u IGluaXRpYWxpemVkIHJlZmNvdW50X3Qgb2JqZWN0IFsxXSBhbmQgdGhlbiB3aGVuIGhhbmRsaW5n CmlzIGRvbmUsIHRvIGRlY3JlbWVudCBpdCBbMl0uIFRoaXMgd2FzIGRldGVjdGVkIGJ5IGEgdGVz dCByZWNlbnRseSBhZGRlZCBpbgpjb21taXQgNmQ0ZWZhZGEzYjgyICgic2VsZnRlc3RzOiBmb3J3 YXJkaW5nOiBBZGQgbXVsdGljYXN0IHJvdXRpbmcgdGVzdCIpLgoKRml4IHRoYXQgYnkgcHV0dGlu ZyBub3RpZmllcnMgY2FsbCBvbiB0aGUgcmVzb2x2ZWQgZW50cmllcyB0cmF2ZXJzYWwsCmluc3Rl YWQgb2Ygb24gdGhlIHVucmVzb2x2ZWQgZW50cmllcyB0cmF2ZXJzYWwuCgpbMV0KClsgIDI0NS43 NDg5NjddIHJlZmNvdW50X3Q6IGluY3JlbWVudCBvbiAwOyB1c2UtYWZ0ZXItZnJlZS4KWyAgMjQ1 Ljc1NDgyOV0gV0FSTklORzogQ1BVOiAzIFBJRDogMzIyMyBhdCBsaWIvcmVmY291bnQuYzoxNTMg cmVmY291bnRfaW5jX2NoZWNrZWQrMHgyYi8weDMwCi4uLgpbICAyNDUuODAyMzU3XSBIYXJkd2Fy ZSBuYW1lOiBNZWxsYW5veCBUZWNobm9sb2dpZXMgTHRkLiBNU04yNzQwL1NBMDAxMjM3LCBCSU9T IDUuNi41IDA2LzA3LzIwMTYKWyAgMjQ1LjgxMTg3M10gUklQOiAwMDEwOnJlZmNvdW50X2luY19j aGVja2VkKzB4MmIvMHgzMAouLi4KWyAgMjQ1LjkwNzQ4N10gQ2FsbCBUcmFjZToKWyAgMjQ1Ljkx MDIzMV0gIG1seHN3X3NwX3JvdXRlcl9maWJfZXZlbnQuY29sZC4xODErMHg0Mi8weDQ3IFttbHhz d19zcGVjdHJ1bV0KWyAgMjQ1LjkxNzkxM10gIG5vdGlmaWVyX2NhbGxfY2hhaW4rMHg0NS8weDcK WyAgMjQ1LjkyMjQ4NF0gIGF0b21pY19ub3RpZmllcl9jYWxsX2NoYWluKzB4MTUvMHgyMApbICAy NDUuOTI3NzI5XSAgY2FsbF9maWJfbm90aWZpZXJzKzB4MTUvMHgzMApbICAyNDUuOTMyMjA1XSAg bXJvdXRlX2NsZWFuX3RhYmxlcysweDM3Mi8weDNmClsgIDI0NS45MzY5NzFdICBpcDZtcl9za19k b25lKzB4YjEvMHhjMApbICAyNDUuOTQwOTYwXSAgaXA2X21yb3V0ZV9zZXRzb2Nrb3B0KzB4MWRh LzB4NWYwCi4uLgoKWzJdCgpbICAyNDYuMTI4NDg3XSByZWZjb3VudF90OiB1bmRlcmZsb3c7IHVz ZS1hZnRlci1mcmVlLgpbICAyNDYuMTMzODU5XSBXQVJOSU5HOiBDUFU6IDAgUElEOiA3IGF0IGxp Yi9yZWZjb3VudC5jOjE4NyByZWZjb3VudF9zdWJfYW5kX3Rlc3RfY2hlY2tlZCsweDRjLzB4NjAK WyAgMjQ2LjE4MzUyMV0gSGFyZHdhcmUgbmFtZTogTWVsbGFub3ggVGVjaG5vbG9naWVzIEx0ZC4g TVNOMjc0MC9TQTAwMTIzNywgQklPUyA1LjYuNSAwNi8wNy8yMDE2Ci4uLgpbICAyNDYuMTkzMDYy XSBXb3JrcXVldWU6IG1seHN3X2NvcmVfb3JkZXJlZCBtbHhzd19zcF9yb3V0ZXJfZmlibXJfZXZl bnRfd29yayBbbWx4c3dfc3BlY3RydW1dClsgIDI0Ni4yMDIzOTRdIFJJUDogMDAxMDpyZWZjb3Vu dF9zdWJfYW5kX3Rlc3RfY2hlY2tlZCsweDRjLzB4NjAKLi4uClsgIDI0Ni4yOTg4ODldIENhbGwg VHJhY2U6ClsgIDI0Ni4zMDE2MTddICByZWZjb3VudF9kZWNfYW5kX3Rlc3RfY2hlY2tlZCsweDEx LzB4MjAKWyAgMjQ2LjMwNzE3MF0gIG1seHN3X3NwX3JvdXRlcl9maWJtcl9ldmVudF93b3JrLmNv bGQuMTk2KzB4NDcvMHg3OCBbbWx4c3dfc3BlY3RydW1dClsgIDI0Ni4zMTU1MzFdICBwcm9jZXNz X29uZV93b3JrKzB4MWZhLzB4M2YwClsgIDI0Ni4zMjAwMDVdICB3b3JrZXJfdGhyZWFkKzB4MmYv MHgzZTAKWyAgMjQ2LjMyNDA4M10gIGt0aHJlYWQrMHgxMTgvMHgxMzAKWyAgMjQ2LjMyNzY4M10g ID8gd3FfdXBkYXRlX3VuYm91bmRfbnVtYSsweDFiMC8weDFiMApbICAyNDYuMzMyOTI2XSAgPyBr dGhyZWFkX3BhcmsrMHg4MC8weDgwClsgIDI0Ni4zMzcwMTNdICByZXRfZnJvbV9mb3JrKzB4MWYv MHgzMAoKRml4ZXM6IDA4OGFhM2VlYzJjZSAoImlwNm1yOiBTdXBwb3J0IGZpYiBub3RpZmljYXRp b25zIikKU2lnbmVkLW9mZi1ieTogTmlyIERvdGFuIDxuaXJkQG1lbGxhbm94LmNvbT4KUmV2aWV3 ZWQtYnk6IElkbyBTY2hpbW1lbCA8aWRvc2NoQG1lbGxhbm94LmNvbT4KU2lnbmVkLW9mZi1ieTog RGF2aWQgUy4gTWlsbGVyIDxkYXZlbUBkYXZlbWxvZnQubmV0PgotLS0KIG5ldC9pcHY2L2lwNm1y LmMgfCA3ICsrKy0tLS0KIDEgZmlsZSBjaGFuZ2VkLCAzIGluc2VydGlvbnMoKyksIDQgZGVsZXRp b25zKC0pCgpkaWZmIC0tZ2l0IGEvbmV0L2lwdjYvaXA2bXIuYyBiL25ldC9pcHY2L2lwNm1yLmMK aW5kZXggZWIzMjIwODEyYjU2Li5lZGRhM2Y5ZGFhYjkgMTAwNjQ0Ci0tLSBhL25ldC9pcHY2L2lw Nm1yLmMKKysrIGIvbmV0L2lwdjYvaXA2bXIuYwpAQCAtMTUxNiw2ICsxNTE2LDkgQEAgc3RhdGlj IHZvaWQgbXJvdXRlX2NsZWFuX3RhYmxlcyhzdHJ1Y3QgbXJfdGFibGUgKm1ydCwgYm9vbCBhbGwp CiAJCQljb250aW51ZTsKIAkJcmhsdGFibGVfcmVtb3ZlKCZtcnQtPm1mY19oYXNoLCAmYy0+bW5v ZGUsIGlwNm1yX3JodF9wYXJhbXMpOwogCQlsaXN0X2RlbF9yY3UoJmMtPmxpc3QpOworCQljYWxs X2lwNm1yX21mY19lbnRyeV9ub3RpZmllcnMocmVhZF9wbmV0KCZtcnQtPm5ldCksCisJCQkJCSAg ICAgICBGSUJfRVZFTlRfRU5UUllfREVMLAorCQkJCQkgICAgICAgKHN0cnVjdCBtZmM2X2NhY2hl ICopYywgbXJ0LT5pZCk7CiAJCW1yNl9uZXRsaW5rX2V2ZW50KG1ydCwgKHN0cnVjdCBtZmM2X2Nh Y2hlICopYywgUlRNX0RFTFJPVVRFKTsKIAkJbXJfY2FjaGVfcHV0KGMpOwogCX0KQEAgLTE1MjQs MTAgKzE1MjcsNiBAQCBzdGF0aWMgdm9pZCBtcm91dGVfY2xlYW5fdGFibGVzKHN0cnVjdCBtcl90 YWJsZSAqbXJ0LCBib29sIGFsbCkKIAkJc3Bpbl9sb2NrX2JoKCZtZmNfdW5yZXNfbG9jayk7CiAJ CWxpc3RfZm9yX2VhY2hfZW50cnlfc2FmZShjLCB0bXAsICZtcnQtPm1mY191bnJlc19xdWV1ZSwg bGlzdCkgewogCQkJbGlzdF9kZWwoJmMtPmxpc3QpOwotCQkJY2FsbF9pcDZtcl9tZmNfZW50cnlf bm90aWZpZXJzKHJlYWRfcG5ldCgmbXJ0LT5uZXQpLAotCQkJCQkJICAgICAgIEZJQl9FVkVOVF9F TlRSWV9ERUwsCi0JCQkJCQkgICAgICAgKHN0cnVjdCBtZmM2X2NhY2hlICopYywKLQkJCQkJCSAg ICAgICBtcnQtPmlkKTsKIAkJCW1yNl9uZXRsaW5rX2V2ZW50KG1ydCwgKHN0cnVjdCBtZmM2X2Nh Y2hlICopYywKIAkJCQkJICBSVE1fREVMUk9VVEUpOwogCQkJaXA2bXJfZGVzdHJveV91bnJlcyht cnQsIChzdHJ1Y3QgbWZjNl9jYWNoZSAqKWMpOwotLSAKMi4yMC4xCgoKRnJvbSAzODRkZTgwNDMw M2RhNTFkYTIzZDI5Y2Y3ZmRiZGE5Njg3OTFiODRkIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpG cm9tOiBCb2RvbmcgV2FuZyA8Ym9kb25nQG1lbGxhbm94LmNvbT4KRGF0ZTogU3VuLCAxMyBKYW4g MjAxOSAyMjo0NzoyNiAtMDYwMApTdWJqZWN0OiBbUEFUQ0ggMjEvMzNdIFJldmVydCAibmV0L21s eDVlOiBFLVN3aXRjaCwgSW5pdGlhbGl6ZSBlc3dpdGNoIG9ubHkgaWYKIGVzd2l0Y2ggbWFuYWdl ciIKClsgVXBzdHJlYW0gY29tbWl0IDRlMDQ2ZGUwZjUwZTA0YWNkNDhlYjM3M2Q2YTkwNjFkZGYw MTRlMGMgXQoKVGhpcyByZXZlcnRzIGNvbW1pdCA1ZjU5OTFmMzZkY2UxZTY5ZGQ4YmQ3NDk1NzYz ZWVjMmUyOGYwOGU3LgoKV2l0aCB0aGUgb3JpZ2luYWwgY29tbWl0LCBlc3dpdGNoIGluc3RhbmNl IHdpbGwgbm90IGJlIGluaXRpYWxpemVkIGZvcgphIGZ1bmN0aW9uIHdoaWNoIGlzIHZwb3J0IGdy b3VwIG1hbmFnZXIgYnV0IG5vdCBlc3dpdGNoIG1hbmFnZXIgc3VjaCBhcwpob3N0IFBGIG9uIFNt YXJ0TklDIChCbHVlRmllbGQpIGNhcmQuIFRoaXMgd2lsbCByZXN1bHQgaW4gYSBrZXJuZWwgY3Jh c2gKd2hlbiBzdWNoIGEgdnBvcnQgZ3JvdXAgbWFuYWdlciBpcyB0cnlpbmcgdG8gYWNjZXNzIHZw b3J0cyBpbiBpdHMgZ3JvdXAuCkUuZywgUEYgdnBvcnQgbWFuYWdlciAobm90IGVzd2l0Y2ggbWFu YWdlcikgdHJpZXMgdG8gY29uZmlndXJlIHRoZSBNQUMKb2YgaXRzIFZGIHZwb3J0LCBhIGtlcm5l bCB0cmFjZSB3aWxsIGhhcHBlbiBzaW1pbGFyIGFzIGJlbGxvdzoKCiBCVUc6IHVuYWJsZSB0byBo YW5kbGUga2VybmVsIE5VTEwgcG9pbnRlciBkZXJlZmVyZW5jZSBhdCAwMDAwMDAwMDAwMDAwMDAw CiAuLi4KIFJJUDogMDAxMDptbHg1X2Vzd2l0Y2hfZ2V0X3Zwb3J0X2NvbmZpZysweGMvMHgxODAg W21seDVfY29yZV0KIC4uLgoKRml4ZXM6IDVmNTk5MWYzNmRjZSAoIm5ldC9tbHg1ZTogRS1Td2l0 Y2gsIEluaXRpYWxpemUgZXN3aXRjaCBvbmx5IGlmIGVzd2l0Y2ggbWFuYWdlciIpClNpZ25lZC1v ZmYtYnk6IEJvZG9uZyBXYW5nIDxib2RvbmdAbWVsbGFub3guY29tPgpSZXBvcnRlZC1ieTogWXV2 YWwgQXZuZXJ5IDx5dXZhbGF2QG1lbGxhbm94LmNvbT4KUmV2aWV3ZWQtYnk6IERhbmllbCBKdXJn ZW5zIDxkYW5pZWxqQG1lbGxhbm94LmNvbT4KUmV2aWV3ZWQtYnk6IE9yIEdlcmxpdHogPG9nZXJs aXR6QG1lbGxhbm94LmNvbT4KU2lnbmVkLW9mZi1ieTogU2FlZWQgTWFoYW1lZWQgPHNhZWVkbUBt ZWxsYW5veC5jb20+Ci0tLQogZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3Jl L2Vzd2l0Y2guYyB8IDQgKystLQogMSBmaWxlIGNoYW5nZWQsIDIgaW5zZXJ0aW9ucygrKSwgMiBk ZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9t bHg1L2NvcmUvZXN3aXRjaC5jIGIvZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9j b3JlL2Vzd2l0Y2guYwppbmRleCA1OTllMjkzMDYyMGIuLjM5MDhlZDU1NDQ3NCAxMDA2NDQKLS0t IGEvZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2Vzd2l0Y2guYworKysg Yi9kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvZXN3aXRjaC5jCkBAIC0x Njg5LDcgKzE2ODksNyBAQCBpbnQgbWx4NV9lc3dpdGNoX2luaXQoc3RydWN0IG1seDVfY29yZV9k ZXYgKmRldikKIAlpbnQgdnBvcnRfbnVtOwogCWludCBlcnI7CiAKLQlpZiAoIU1MWDVfRVNXSVRD SF9NQU5BR0VSKGRldikpCisJaWYgKCFNTFg1X1ZQT1JUX01BTkFHRVIoZGV2KSkKIAkJcmV0dXJu IDA7CiAKIAllc3dfaW5mbyhkZXYsCkBAIC0xNzU4LDcgKzE3NTgsNyBAQCBpbnQgbWx4NV9lc3dp dGNoX2luaXQoc3RydWN0IG1seDVfY29yZV9kZXYgKmRldikKIAogdm9pZCBtbHg1X2Vzd2l0Y2hf Y2xlYW51cChzdHJ1Y3QgbWx4NV9lc3dpdGNoICplc3cpCiB7Ci0JaWYgKCFlc3cgfHwgIU1MWDVf RVNXSVRDSF9NQU5BR0VSKGVzdy0+ZGV2KSkKKwlpZiAoIWVzdyB8fCAhTUxYNV9WUE9SVF9NQU5B R0VSKGVzdy0+ZGV2KSkKIAkJcmV0dXJuOwogCiAJZXN3X2luZm8oZXN3LT5kZXYsICJjbGVhbnVw XG4iKTsKLS0gCjIuMjAuMQoKCkZyb20gM2M2MDU0NmE0ZjM5ZGEwMDVhNzNlNzdjYWYyOTMyMzJh YTFmZmYzOCBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJvbTogWGluIExvbmcgPGx1Y2llbi54 aW5AZ21haWwuY29tPgpEYXRlOiBUdWUsIDIyIEphbiAyMDE5IDAyOjQyOjA5ICswODAwClN1Ympl Y3Q6IFtQQVRDSCAyMi8zM10gc2N0cDogc2V0IGNodW5rIHRyYW5zcG9ydCBjb3JyZWN0bHkgd2hl biBpdCdzIGEgbmV3CiBhc29jCgpbIFVwc3RyZWFtIGNvbW1pdCA0ZmY0MGI4NjI2MmI3MzU1M2Vl NDdjYzM3ODRjZThiYTBmMjIwYmQ4IF0KCkluIHRoZSBwYXRoczoKCiAgc2N0cF9zZl9kb191bmV4 cGVjdGVkX2luaXQoKSAtPgogICAgc2N0cF9tYWtlX2luaXRfYWNrKCkKICBzY3RwX3NmX2RvX2R1 cGNvb2tfYS9iKCkoKSAtPgogICAgc2N0cF9zZl9kb181XzFEX2NlKCkKClRoZSBuZXcgY2h1bmsg J3JldHZhbCcgdHJhbnNwb3J0IGlzIHNldCBmcm9tIHRoZSBpbmNvbWluZyBjaHVuayAnY2h1bmsn CnRyYW5zcG9ydC4gSG93ZXZlciwgJ3JldHZhbCcgdHJhbnNwb3J0IGJlbG9uZyB0byB0aGUgbmV3 IGFzb2MsIHdoaWNoCmlzIGEgZGlmZmVyZW50IG9uZSBmcm9tICdjaHVuaycgdHJhbnNwb3J0J3Mg YXNvYy4KCkl0IHdpbGwgY2F1c2UgdGhhdCB0aGUgJ3JldHZhbCcgY2h1bmsgZ2V0cyBzZXQgd2l0 aCBhIHdyb25nIHRyYW5zcG9ydC4KTGF0ZXIgd2hlbiBzZW5kaW5nIGl0IGFuZCBiZWNhdXNlIG9m IENvbW1pdCBiOWZkNjgzOTgyYzkgKCJzY3RwOiBhZGQKc2N0cF9wYWNrZXRfc2luZ2xldG9uIiks IHNjdHBfcGFja2V0X3NpbmdsZXRvbigpIHdpbGwgc2V0IHNvbWUgZmllbGRzLApsaWtlIHZ0YWcg dG8gJ3JldHZhbCcgY2h1bmsgZnJvbSB0aGF0IHdyb25nIHRyYW5zcG9ydCdzIGFzb2MuCgpUaGlz IHBhdGNoIGlzIHRvIGZpeCBpdCBieSBzZXR0aW5nICdyZXR2YWwnIHRyYW5zcG9ydCBjb3JyZWN0 bHkgd2hpY2gKYmVsb25ncyB0byB0aGUgcmlnaHQgYXNvYyBpbiBzY3RwX21ha2VfaW5pdF9hY2so KSBhbmQKc2N0cF9zZl9kb181XzFEX2NlKCkuCgpGaXhlczogYjlmZDY4Mzk4MmM5ICgic2N0cDog YWRkIHNjdHBfcGFja2V0X3NpbmdsZXRvbiIpClJlcG9ydGVkLWJ5OiBZaW5nIFh1IDx5aW54dUBy ZWRoYXQuY29tPgpTaWduZWQtb2ZmLWJ5OiBYaW4gTG9uZyA8bHVjaWVuLnhpbkBnbWFpbC5jb20+ ClNpZ25lZC1vZmYtYnk6IERhdmlkIFMuIE1pbGxlciA8ZGF2ZW1AZGF2ZW1sb2Z0Lm5ldD4KLS0t CiBuZXQvc2N0cC9zbV9tYWtlX2NodW5rLmMgfCAxMSArKysrKysrKy0tLQogMSBmaWxlIGNoYW5n ZWQsIDggaW5zZXJ0aW9ucygrKSwgMyBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9uZXQvc2N0 cC9zbV9tYWtlX2NodW5rLmMgYi9uZXQvc2N0cC9zbV9tYWtlX2NodW5rLmMKaW5kZXggZjRhYzZj NTkyZTEzLi5kMDVjNTc2NjRlMzYgMTAwNjQ0Ci0tLSBhL25ldC9zY3RwL3NtX21ha2VfY2h1bmsu YworKysgYi9uZXQvc2N0cC9zbV9tYWtlX2NodW5rLmMKQEAgLTQ5NSw3ICs0OTUsMTAgQEAgc3Ry dWN0IHNjdHBfY2h1bmsgKnNjdHBfbWFrZV9pbml0X2Fjayhjb25zdCBzdHJ1Y3Qgc2N0cF9hc3Nv Y2lhdGlvbiAqYXNvYywKIAkgKgogCSAqIFtJTklUIEFDSyBiYWNrIHRvIHdoZXJlIHRoZSBJTklU IGNhbWUgZnJvbS5dCiAJICovCi0JcmV0dmFsLT50cmFuc3BvcnQgPSBjaHVuay0+dHJhbnNwb3J0 OworCWlmIChjaHVuay0+dHJhbnNwb3J0KQorCQlyZXR2YWwtPnRyYW5zcG9ydCA9CisJCQlzY3Rw X2Fzc29jX2xvb2t1cF9wYWRkcihhc29jLAorCQkJCQkJJmNodW5rLT50cmFuc3BvcnQtPmlwYWRk cik7CiAKIAlyZXR2YWwtPnN1YmguaW5pdF9oZHIgPQogCQlzY3RwX2FkZHRvX2NodW5rKHJldHZh bCwgc2l6ZW9mKGluaXRhY2spLCAmaW5pdGFjayk7CkBAIC02NDIsOCArNjQ1LDEwIEBAIHN0cnVj dCBzY3RwX2NodW5rICpzY3RwX21ha2VfY29va2llX2Fjayhjb25zdCBzdHJ1Y3Qgc2N0cF9hc3Nv Y2lhdGlvbiAqYXNvYywKIAkgKgogCSAqIFtDT09LSUUgQUNLIGJhY2sgdG8gd2hlcmUgdGhlIENP T0tJRSBFQ0hPIGNhbWUgZnJvbS5dCiAJICovCi0JaWYgKHJldHZhbCAmJiBjaHVuaykKLQkJcmV0 dmFsLT50cmFuc3BvcnQgPSBjaHVuay0+dHJhbnNwb3J0OworCWlmIChyZXR2YWwgJiYgY2h1bmsg JiYgY2h1bmstPnRyYW5zcG9ydCkKKwkJcmV0dmFsLT50cmFuc3BvcnQgPQorCQkJc2N0cF9hc3Nv Y19sb29rdXBfcGFkZHIoYXNvYywKKwkJCQkJCSZjaHVuay0+dHJhbnNwb3J0LT5pcGFkZHIpOwog CiAJcmV0dXJuIHJldHZhbDsKIH0KLS0gCjIuMjAuMQoKCkZyb20gNzZkOTA1OGI0OWQ1YjFkNDlj ZDQ3Nzc3MDk4OWFiNjgwYWFhNTFjNiBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJvbTogWGlu IExvbmcgPGx1Y2llbi54aW5AZ21haWwuY29tPgpEYXRlOiBUdWUsIDIyIEphbiAyMDE5IDAyOjQy OjQxICswODAwClN1YmplY3Q6IFtQQVRDSCAyMy8zM10gc2N0cDogc2V0IGZsb3cgc3BvcnQgZnJv bSBzYWRkciBvbmx5IHdoZW4gaXQncyAwCgpbIFVwc3RyZWFtIGNvbW1pdCBlY2Y5MzhmZTdkMDA4 ODA3N2VlMTI4MDQxOWEyYjNjNTQyOWI0N2M4IF0KCk5vdyBzY3RwX3RyYW5zcG9ydF9wbXR1KCkg cGFzc2VzIHRyYW5zcG9ydC0+c2FkZHIgaW50byAuZ2V0X2RzdCgpIHRvIHNldApmbG93IHNwb3J0 IGZyb20gJ3NhZGRyJy4gSG93ZXZlciwgdHJhbnNwb3J0LT5zYWRkciBpcyBzZXQgb25seSB3aGVu CnRyYW5zcG9ydC0+ZHN0IGV4aXN0cyBpbiBzY3RwX3RyYW5zcG9ydF9yb3V0ZSgpLgoKSWYgc2N0 cF90cmFuc3BvcnRfcG10dSgpIGlzIGNhbGxlZCB3aXRob3V0IHRyYW5zcG9ydC0+c2FkZHIgc2V0 LCBsaWtlCndoZW4gdHJhbnNwb3J0LT5kc3QgZG9lc24ndCBleGlzdHMsIHRoZSBmbG93IHNwb3J0 IHdpbGwgYmUgc2V0IHRvIDAKZnJvbSB0cmFuc3BvcnQtPnNhZGRyLCB3aGljaCB3aWxsIGNhdXNl IGEgd3Jvbmcgcm91dGUgdG8gYmUgZ290LgoKQ29tbWl0IDZlOTFiNTc4YmYzZiAoInNjdHA6IHJl LXVzZSBzY3RwX3RyYW5zcG9ydF9wbXR1IGluCnNjdHBfdHJhbnNwb3J0X3JvdXRlIikgbWFkZSB0 aGUgaXNzdWUgYmUgdHJpZ2dlcmVkIG1vcmUgZWFzaWx5CnNpbmNlIHNjdHBfdHJhbnNwb3J0X3Bt dHUoKSB3b3VsZCBiZSBjYWxsZWQgaW4gc2N0cF90cmFuc3BvcnRfcm91dGUoKQphZnRlciB0aGF0 LgoKSW4gZ2VybmVyYWwsIGZsNC0+Zmw0X3Nwb3J0IHNob3VsZCBhbHdheXMgYmUgc2V0IHRvCmh0 b25zKGFzb2MtPmJhc2UuYmluZF9hZGRyLnBvcnQpLCB1bmxlc3MgdHJhbnNwb3J0LT5hc29jIGRv ZXNuJ3QgZXhpc3QKaW4gc2N0cF92NC82X2dldF9kc3QoKSwgd2hpY2ggaXMgdGhlIGNhc2U6Cgog IHNjdHBfb290Yl9wa3RfbmV3KCkgLT4KICAgIHNjdHBfdHJhbnNwb3J0X3JvdXRlKCkKCkZvciB0 aGF0LCB3ZSBjYW4gc2ltcGx5IGhhbmRsZSBpdCBieSBzZXR0aW5nIGZsb3cgc3BvcnQgZnJvbSBz YWRkciBvbmx5CndoZW4gaXQncyAwIGluIHNjdHBfdjQvNl9nZXRfZHN0KCkuCgpGaXhlczogNmU5 MWI1NzhiZjNmICgic2N0cDogcmUtdXNlIHNjdHBfdHJhbnNwb3J0X3BtdHUgaW4gc2N0cF90cmFu c3BvcnRfcm91dGUiKQpSZXBvcnRlZC1ieTogWWluZyBYdSA8eWlueHVAcmVkaGF0LmNvbT4KU2ln bmVkLW9mZi1ieTogWGluIExvbmcgPGx1Y2llbi54aW5AZ21haWwuY29tPgpTaWduZWQtb2ZmLWJ5 OiBEYXZpZCBTLiBNaWxsZXIgPGRhdmVtQGRhdmVtbG9mdC5uZXQ+Ci0tLQogbmV0L3NjdHAvaXB2 Ni5jICAgICB8IDMgKystCiBuZXQvc2N0cC9wcm90b2NvbC5jIHwgMyArKy0KIDIgZmlsZXMgY2hh bmdlZCwgNCBpbnNlcnRpb25zKCspLCAyIGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL25ldC9z Y3RwL2lwdjYuYyBiL25ldC9zY3RwL2lwdjYuYwppbmRleCAwYmFlMDdlOWM5ZTcuLjRmZWRlNTVi OTAxMCAxMDA2NDQKLS0tIGEvbmV0L3NjdHAvaXB2Ni5jCisrKyBiL25ldC9zY3RwL2lwdjYuYwpA QCAtMjc3LDcgKzI3Nyw4IEBAIHN0YXRpYyB2b2lkIHNjdHBfdjZfZ2V0X2RzdChzdHJ1Y3Qgc2N0 cF90cmFuc3BvcnQgKnQsIHVuaW9uIHNjdHBfYWRkciAqc2FkZHIsCiAKIAlpZiAoc2FkZHIpIHsK IAkJZmw2LT5zYWRkciA9IHNhZGRyLT52Ni5zaW42X2FkZHI7Ci0JCWZsNi0+Zmw2X3Nwb3J0ID0g c2FkZHItPnY2LnNpbjZfcG9ydDsKKwkJaWYgKCFmbDYtPmZsNl9zcG9ydCkKKwkJCWZsNi0+Zmw2 X3Nwb3J0ID0gc2FkZHItPnY2LnNpbjZfcG9ydDsKIAogCQlwcl9kZWJ1Zygic3JjPSVwSTYgLSAi LCAmZmw2LT5zYWRkcik7CiAJfQpkaWZmIC0tZ2l0IGEvbmV0L3NjdHAvcHJvdG9jb2wuYyBiL25l dC9zY3RwL3Byb3RvY29sLmMKaW5kZXggODVhZjg3OGY1NjY4Li44NDEwY2NjNTdjNDAgMTAwNjQ0 Ci0tLSBhL25ldC9zY3RwL3Byb3RvY29sLmMKKysrIGIvbmV0L3NjdHAvcHJvdG9jb2wuYwpAQCAt NDQwLDcgKzQ0MCw4IEBAIHN0YXRpYyB2b2lkIHNjdHBfdjRfZ2V0X2RzdChzdHJ1Y3Qgc2N0cF90 cmFuc3BvcnQgKnQsIHVuaW9uIHNjdHBfYWRkciAqc2FkZHIsCiAJfQogCWlmIChzYWRkcikgewog CQlmbDQtPnNhZGRyID0gc2FkZHItPnY0LnNpbl9hZGRyLnNfYWRkcjsKLQkJZmw0LT5mbDRfc3Bv cnQgPSBzYWRkci0+djQuc2luX3BvcnQ7CisJCWlmICghZmw0LT5mbDRfc3BvcnQpCisJCQlmbDQt PmZsNF9zcG9ydCA9IHNhZGRyLT52NC5zaW5fcG9ydDsKIAl9CiAKIAlwcl9kZWJ1ZygiJXM6IGRz dDolcEk0LCBzcmM6JXBJNCAtICIsIF9fZnVuY19fLCAmZmw0LT5kYWRkciwKLS0gCjIuMjAuMQoK CkZyb20gZTRhNzcyYzY0NzU4OTM2NWFkNTQ3NmZhODkzODhkNjQ4MGQ5N2Y4OSBNb24gU2VwIDE3 IDAwOjAwOjAwIDIwMDEKRnJvbTogRGF2ZSBXYXRzb24gPGRhdmVqd2F0c29uQGZiLmNvbT4KRGF0 ZTogU3VuLCAyNyBKYW4gMjAxOSAwMDo1OTowMyArMDAwMApTdWJqZWN0OiBbUEFUQ0ggMjQvMzNd IG5ldDogdGxzOiBGaXggZGVhZGxvY2sgaW4gZnJlZV9yZXNvdXJjZXMgdHgKClsgVXBzdHJlYW0g Y29tbWl0IDEwMjMxMjEzNzVjNmIwYjNkYzAwMzM0OTgzYzc2MmJhMmI3NmNiMTkgXQoKSWYgdGhl cmUgYXJlIG91dHN0YW5kaW5nIGFzeW5jIHR4IHJlcXVlc3RzICh3aGVuIGNyeXB0byByZXR1cm5z IEVJTlBST0dSRVNTKSwKdGhlcmUgaXMgYSBwb3RlbnRpYWwgZGVhZGxvY2s6IHRoZSB0eCB3b3Jr IGFjcXVpcmVzIHRoZSBsb2NrLCB3aGlsZSB3ZQpjYW5jZWxfZGVsYXllZF93b3JrX3N5bmMoKSB3 aGlsZSBob2xkaW5nIHRoZSBsb2NrLiAgRHJvcCB0aGUgbG9jayB3aGlsZSB3YWl0aW5nCmZvciB0 aGUgd29yayB0byBjb21wbGV0ZS4KCkZpeGVzOiBhNDIwNTVlOGQyYzMwICgiQWRkIHN1cHBvcnQg Zm9yIGFzeW5jIGVuY3J5cHRpb24gb2YgcmVjb3Jkcy4uLiIpClNpZ25lZC1vZmYtYnk6IERhdmUg V2F0c29uIDxkYXZlandhdHNvbkBmYi5jb20+ClNpZ25lZC1vZmYtYnk6IERhdmlkIFMuIE1pbGxl ciA8ZGF2ZW1AZGF2ZW1sb2Z0Lm5ldD4KLS0tCiBuZXQvdGxzL3Rsc19zdy5jIHwgMiArKwogMSBm aWxlIGNoYW5nZWQsIDIgaW5zZXJ0aW9ucygrKQoKZGlmZiAtLWdpdCBhL25ldC90bHMvdGxzX3N3 LmMgYi9uZXQvdGxzL3Rsc19zdy5jCmluZGV4IDI5YjI3ODU4ZmZmMS4uNGJlMjMyMGVjN2NlIDEw MDY0NAotLS0gYS9uZXQvdGxzL3Rsc19zdy5jCisrKyBiL25ldC90bHMvdGxzX3N3LmMKQEAgLTE3 NjgsNyArMTc2OCw5IEBAIHZvaWQgdGxzX3N3X2ZyZWVfcmVzb3VyY2VzX3R4KHN0cnVjdCBzb2Nr ICpzaykKIAlpZiAoYXRvbWljX3JlYWQoJmN0eC0+ZW5jcnlwdF9wZW5kaW5nKSkKIAkJY3J5cHRv X3dhaXRfcmVxKC1FSU5QUk9HUkVTUywgJmN0eC0+YXN5bmNfd2FpdCk7CiAKKwlyZWxlYXNlX3Nv Y2soc2spOwogCWNhbmNlbF9kZWxheWVkX3dvcmtfc3luYygmY3R4LT50eF93b3JrLndvcmspOwor CWxvY2tfc29jayhzayk7CiAKIAkvKiBUeCB3aGF0ZXZlciByZWNvcmRzIHdlIGNhbiB0cmFuc21p dCBhbmQgYWJhbmRvbiB0aGUgcmVzdCAqLwogCXRsc190eF9yZWNvcmRzKHNrLCAtMSk7Ci0tIAoy LjIwLjEKCgpGcm9tIGZiNGY0MTg5MmJlNDFlZTkwYzBmNGI1ZWY3ODQ4M2QzZjE0NGJlMWIgTW9u IFNlcCAxNyAwMDowMDowMCAyMDAxCkZyb206IERhdmUgV2F0c29uIDxkYXZlandhdHNvbkBmYi5j b20+CkRhdGU6IFN1biwgMjcgSmFuIDIwMTkgMDA6NTc6MzggKzAwMDAKU3ViamVjdDogW1BBVENI IDI1LzMzXSBuZXQ6IHRsczogU2F2ZSBpdiBpbiB0bHNfcmVjIGZvciBhc3luYyBjcnlwdG8gcmVx dWVzdHMKClsgVXBzdHJlYW0gY29tbWl0IDMyZWI2N2I5M2M5ZTNjZDYyY2I0MjNlMzBiMDkwY2Rk NGFhOGQyNzUgXQoKYWVhZF9yZXF1ZXN0X3NldF9jcnlwdCB0YWtlcyBhbiBpdiBwb2ludGVyLCBh bmQgd2UgY2hhbmdlIHRoZSBpdgpzb29uIGFmdGVyIHNldHRpbmcgaXQuICBTb21lIGFzeW5jIGNy eXB0byBhbGdvcml0aG1zIGRvbid0IHNhdmUgdGhlIGl2LApzbyB3ZSBuZWVkIHRvIHNhdmUgaXQg aW4gdGhlIHRsc19yZWMgZm9yIGFzeW5jIHJlcXVlc3RzLgoKRm91bmQgYnkgaGFyZGNvZGluZyB4 NjQgYWVzbmkgdG8gdXNlIGFzeW5jIGNyeXB0byBtYW5hZ2VyICh0byB0ZXN0IHRoZSBhc3luYwpj b2RlcGF0aCksIGhvd2V2ZXIgSSBkb24ndCB0aGluayB0aGlzIGNvbWJpbmF0aW9uIGNhbiBoYXBw ZW4gaW4gdGhlIHdpbGQuClByZXN1bWFibHkgb3RoZXIgaGFyZHdhcmUgb2ZmbG9hZHMgd2lsbCBu ZWVkIHRoaXMgZml4LCBidXQgdGhlcmUgaGF2ZSBiZWVuCm5vIHVzZXIgcmVwb3J0cy4KCkZpeGVz OiBhNDIwNTVlOGQyYzMwICgiQWRkIHN1cHBvcnQgZm9yIGFzeW5jIGVuY3J5cHRpb24gb2YgcmVj b3Jkcy4uLiIpClNpZ25lZC1vZmYtYnk6IERhdmUgV2F0c29uIDxkYXZlandhdHNvbkBmYi5jb20+ ClNpZ25lZC1vZmYtYnk6IERhdmlkIFMuIE1pbGxlciA8ZGF2ZW1AZGF2ZW1sb2Z0Lm5ldD4KLS0t CiBpbmNsdWRlL25ldC90bHMuaCB8IDIgKysKIG5ldC90bHMvdGxzX3N3LmMgIHwgNCArKystCiAy IGZpbGVzIGNoYW5nZWQsIDUgaW5zZXJ0aW9ucygrKSwgMSBkZWxldGlvbigtKQoKZGlmZiAtLWdp dCBhL2luY2x1ZGUvbmV0L3Rscy5oIGIvaW5jbHVkZS9uZXQvdGxzLmgKaW5kZXggM2NiY2QxMjMw M2ZkLi45ZjE2N2U3N2Q4Y2EgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUvbmV0L3Rscy5oCisrKyBiL2lu Y2x1ZGUvbmV0L3Rscy5oCkBAIC0xMjAsNiArMTIwLDggQEAgc3RydWN0IHRsc19yZWMgewogCXN0 cnVjdCBzY2F0dGVybGlzdCBzZ19hZWFkX291dFsyXTsKIAogCWNoYXIgYWFkX3NwYWNlW1RMU19B QURfU1BBQ0VfU0laRV07CisJdTggaXZfZGF0YVtUTFNfQ0lQSEVSX0FFU19HQ01fMTI4X0lWX1NJ WkUgKworCQkgICBUTFNfQ0lQSEVSX0FFU19HQ01fMTI4X1NBTFRfU0laRV07CiAJc3RydWN0IGFl YWRfcmVxdWVzdCBhZWFkX3JlcTsKIAl1OCBhZWFkX3JlcV9jdHhbXTsKIH07CmRpZmYgLS1naXQg YS9uZXQvdGxzL3Rsc19zdy5jIGIvbmV0L3Rscy90bHNfc3cuYwppbmRleCA0YmUyMzIwZWM3Y2Uu LjQxOTMxNGJhOTRlYyAxMDA2NDQKLS0tIGEvbmV0L3Rscy90bHNfc3cuYworKysgYi9uZXQvdGxz L3Rsc19zdy5jCkBAIC00MzksNiArNDM5LDggQEAgc3RhdGljIGludCB0bHNfZG9fZW5jcnlwdGlv bihzdHJ1Y3Qgc29jayAqc2ssCiAJc3RydWN0IHNjYXR0ZXJsaXN0ICpzZ2UgPSBza19tc2dfZWxl bShtc2dfZW4sIHN0YXJ0KTsKIAlpbnQgcmM7CiAKKwltZW1jcHkocmVjLT5pdl9kYXRhLCB0bHNf Y3R4LT50eC5pdiwgc2l6ZW9mKHJlYy0+aXZfZGF0YSkpOworCiAJc2dlLT5vZmZzZXQgKz0gdGxz X2N0eC0+dHgucHJlcGVuZF9zaXplOwogCXNnZS0+bGVuZ3RoIC09IHRsc19jdHgtPnR4LnByZXBl bmRfc2l6ZTsKIApAQCAtNDQ4LDcgKzQ1MCw3IEBAIHN0YXRpYyBpbnQgdGxzX2RvX2VuY3J5cHRp b24oc3RydWN0IHNvY2sgKnNrLAogCWFlYWRfcmVxdWVzdF9zZXRfYWQoYWVhZF9yZXEsIFRMU19B QURfU1BBQ0VfU0laRSk7CiAJYWVhZF9yZXF1ZXN0X3NldF9jcnlwdChhZWFkX3JlcSwgcmVjLT5z Z19hZWFkX2luLAogCQkJICAgICAgIHJlYy0+c2dfYWVhZF9vdXQsCi0JCQkgICAgICAgZGF0YV9s ZW4sIHRsc19jdHgtPnR4Lml2KTsKKwkJCSAgICAgICBkYXRhX2xlbiwgcmVjLT5pdl9kYXRhKTsK IAogCWFlYWRfcmVxdWVzdF9zZXRfY2FsbGJhY2soYWVhZF9yZXEsIENSWVBUT19URk1fUkVRX01B WV9CQUNLTE9HLAogCQkJCSAgdGxzX2VuY3J5cHRfZG9uZSwgc2spOwotLSAKMi4yMC4xCgoKRnJv bSA2ZGY0NTcxYmQzYjE0MDc2ZjYzZDRhMmI3ZDYyYjg3ZDg0YmNhNTFiIE1vbiBTZXAgMTcgMDA6 MDA6MDAgMjAwMQpGcm9tOiBUb3NoaWFraSBNYWtpdGEgPG1ha2l0YS50b3NoaWFraUBsYWIubnR0 LmNvLmpwPgpEYXRlOiBUdWUsIDI5IEphbiAyMDE5IDA5OjQ1OjUzICswOTAwClN1YmplY3Q6IFtQ QVRDSCAyNi8zM10gdmlydGlvX25ldDogRG9uJ3QgZW5hYmxlIE5BUEkgd2hlbiBpbnRlcmZhY2Ug aXMgZG93bgoKWyBVcHN0cmVhbSBjb21taXQgOGJlNGQ5YTQ5MmY4OGI5NmQ0ZDNhMDZjNmNiZWRi YzQwY2ExNGM4MyBdCgpDb21taXQgNGUwOWZmNTM2Mjg0ICgidmlydGlvLW5ldDogZGlzYWJsZSBO QVBJIG9ubHkgd2hlbiBlbmFibGVkIGR1cmluZwpYRFAgc2V0IikgdHJpZWQgdG8gZml4IGluYXBw cm9wcmlhdGUgTkFQSSBlbmFibGluZy9kaXNhYmxpbmcgd2hlbgohbmV0aWZfcnVubmluZygpLCBi dXQgd2FzIG5vdCBjb21wbGV0ZS4KCk9uIGVycm9yIHBhdGggdmlydGlvX25ldCBjb3VsZCBlbmFi bGUgTkFQSSBldmVuIHdoZW4gIW5ldGlmX3J1bm5pbmcoKS4KVGhpcyBjYW4gY2F1c2UgZW5hYmxp bmcgTkFQSSB0d2ljZSBvbiB2aXJ0bmV0X29wZW4oKSwgd2hpY2ggd291bGQKdHJpZ2dlciBCVUdf T04oKSBpbiBuYXBpX2VuYWJsZSgpLgoKRml4ZXM6IDQ5NDFkNDcyYmY5NWIgKCJ2aXJ0aW8tbmV0 OiBkbyBub3QgcmVzZXQgZHVyaW5nIFhEUCBzZXQiKQpTaWduZWQtb2ZmLWJ5OiBUb3NoaWFraSBN YWtpdGEgPG1ha2l0YS50b3NoaWFraUBsYWIubnR0LmNvLmpwPgpBY2tlZC1ieTogSmFzb24gV2Fu ZyA8amFzb3dhbmdAcmVkaGF0LmNvbT4KQWNrZWQtYnk6IE1pY2hhZWwgUy4gVHNpcmtpbiA8bXN0 QHJlZGhhdC5jb20+ClNpZ25lZC1vZmYtYnk6IERhdmlkIFMuIE1pbGxlciA8ZGF2ZW1AZGF2ZW1s b2Z0Lm5ldD4KLS0tCiBkcml2ZXJzL25ldC92aXJ0aW9fbmV0LmMgfCA2ICsrKystLQogMSBmaWxl IGNoYW5nZWQsIDQgaW5zZXJ0aW9ucygrKSwgMiBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9k cml2ZXJzL25ldC92aXJ0aW9fbmV0LmMgYi9kcml2ZXJzL25ldC92aXJ0aW9fbmV0LmMKaW5kZXgg ZWE2NzIxNDVmNmE2Li41ZTcwNTI3NDliOGQgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvbmV0L3ZpcnRp b19uZXQuYworKysgYi9kcml2ZXJzL25ldC92aXJ0aW9fbmV0LmMKQEAgLTI0MjksOCArMjQyOSwx MCBAQCBzdGF0aWMgaW50IHZpcnRuZXRfeGRwX3NldChzdHJ1Y3QgbmV0X2RldmljZSAqZGV2LCBz dHJ1Y3QgYnBmX3Byb2cgKnByb2csCiAJcmV0dXJuIDA7CiAKIGVycjoKLQlmb3IgKGkgPSAwOyBp IDwgdmktPm1heF9xdWV1ZV9wYWlyczsgaSsrKQotCQl2aXJ0bmV0X25hcGlfZW5hYmxlKHZpLT5y cVtpXS52cSwgJnZpLT5ycVtpXS5uYXBpKTsKKwlpZiAobmV0aWZfcnVubmluZyhkZXYpKSB7CisJ CWZvciAoaSA9IDA7IGkgPCB2aS0+bWF4X3F1ZXVlX3BhaXJzOyBpKyspCisJCQl2aXJ0bmV0X25h cGlfZW5hYmxlKHZpLT5ycVtpXS52cSwgJnZpLT5ycVtpXS5uYXBpKTsKKwl9CiAJaWYgKHByb2cp CiAJCWJwZl9wcm9nX3N1Yihwcm9nLCB2aS0+bWF4X3F1ZXVlX3BhaXJzIC0gMSk7CiAJcmV0dXJu IGVycjsKLS0gCjIuMjAuMQoKCkZyb20gN2ZlOTE5ZjRkOTg0ODE4NzMzOTQ2YmRmMmZlYzdiZDc1 YmJjNTJjOSBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJvbTogVG9zaGlha2kgTWFraXRhIDxt YWtpdGEudG9zaGlha2lAbGFiLm50dC5jby5qcD4KRGF0ZTogVHVlLCAyOSBKYW4gMjAxOSAwOTo0 NTo1NCArMDkwMApTdWJqZWN0OiBbUEFUQ0ggMjcvMzNdIHZpcnRpb19uZXQ6IERvbid0IGNhbGwg ZnJlZV9vbGRfeG1pdF9za2JzIGZvcgogeGRwX2ZyYW1lcwoKWyBVcHN0cmVhbSBjb21taXQgNTM0 ZGE1ZTg1NjMzNGZiNTRjYjAyNzJhOWZiM2FmZWMyOGVhM2FlZCBdCgpXaGVuIG5hcGlfdHggaXMg ZW5hYmxlZCwgdmlydG5ldF9wb2xsX2NsZWFudHgoKSBjYWxsZWQKZnJlZV9vbGRfeG1pdF9za2Jz KCkgZXZlbiBmb3IgeGRwIHNlbmQgcXVldWUuClRoaXMgaXMgYm9ndXMgc2luY2UgdGhlIHF1ZXVl IGhhcyB4ZHBfZnJhbWVzLCBub3Qgc2tfYnVmZnMsIHRodXMgbWFuZ2xlZApkZXZpY2UgdHggYnl0 ZXMgY291bnRlcnMgYmVjYXVzZSBza2ItPmxlbiBpcyBtZWFuaW5nbGVzcyB2YWx1ZSwgYW5kIGV2 ZW4KdHJpZ2dlcmVkIG9vcHMgZHVlIHRvIGdlbmVyYWwgcHJvdGVjdGlvbiBmYXVsdCBvbiBmcmVl aW5nIHRoZW0uCgpTaW5jZSB4ZHAgc2VuZCBxdWV1ZXMgZG8gbm90IGFxdWlyZSBsb2Nrcywgb2xk IHhkcF9mcmFtZXMgc2hvdWxkIGJlCmZyZWVkIG9ubHkgaW4gdmlydG5ldF94ZHBfeG1pdCgpLCBz byBqdXN0IHNraXAgZnJlZV9vbGRfeG1pdF9za2JzKCkgZm9yCnhkcCBzZW5kIHF1ZXVlcy4KClNp bWlsYXJseSB2aXJ0bmV0X3BvbGxfdHgoKSBjYWxsZWQgZnJlZV9vbGRfeG1pdF9za2JzKCkuIFRo aXMgTkFQSQpoYW5kbGVyIGlzIGNhbGxlZCBldmVuIHdpdGhvdXQgY2FsbGluZyBzdGFydF94bWl0 KCkgYmVjYXVzZSBjYiBmb3IgdHggaXMKYnkgZGVmYXVsdCBlbmFibGVkLiBPbmNlIHRoZSBoYW5k bGVyIGlzIGNhbGxlZCwgaXQgZW5hYmxlZCB0aGUgY2IgYWdhaW4sCmFuZCB0aGVuIHRoZSBoYW5k bGVyIHdvdWxkIGJlIGNhbGxlZCBhZ2Fpbi4gV2UgZG9uJ3QgbmVlZCB0aGlzIGhhbmRsZXIKZm9y IFhEUCwgc28gZG9uJ3QgZW5hYmxlIGNiIGFzIHdlbGwgYXMgbm90IGNhbGxpbmcgZnJlZV9vbGRf eG1pdF9za2JzKCkuCgpBbHNvLCB3ZSBuZWVkIHRvIGRpc2FibGUgdHggTkFQSSB3aGVuIGRpc2Fi bGluZyBYRFAsIHNvCnZpcnRuZXRfcG9sbF90eCgpIGNhbiBzYWZlbHkgYWNjZXNzIGN1cnJfcXVl dWVfcGFpcnMgYW5kCnhkcF9xdWV1ZV9wYWlycywgd2hpY2ggYXJlIG5vdCBhdG9taWNhbGx5IHVw ZGF0ZWQgd2hpbGUgZGlzYWJsaW5nIFhEUC4KCkZpeGVzOiBiOTJmMWU2NzUxYTYgKCJ2aXJ0aW8t bmV0OiB0cmFuc21pdCBuYXBpIikKRml4ZXM6IDdiMDQxMWVmNGFhNiAoInZpcnRpby1uZXQ6IGNs ZWFuIHR4IGRlc2NyaXB0b3JzIGZyb20gcnggbmFwaSIpClNpZ25lZC1vZmYtYnk6IFRvc2hpYWtp IE1ha2l0YSA8bWFraXRhLnRvc2hpYWtpQGxhYi5udHQuY28uanA+CkFja2VkLWJ5OiBKYXNvbiBX YW5nIDxqYXNvd2FuZ0ByZWRoYXQuY29tPgpBY2tlZC1ieTogTWljaGFlbCBTLiBUc2lya2luIDxt c3RAcmVkaGF0LmNvbT4KU2lnbmVkLW9mZi1ieTogRGF2aWQgUy4gTWlsbGVyIDxkYXZlbUBkYXZl bWxvZnQubmV0PgotLS0KIGRyaXZlcnMvbmV0L3ZpcnRpb19uZXQuYyB8IDQ5ICsrKysrKysrKysr KysrKysrKysrKysrKysrKy0tLS0tLS0tLS0tLS0KIDEgZmlsZSBjaGFuZ2VkLCAzMyBpbnNlcnRp b25zKCspLCAxNiBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC92aXJ0aW9f bmV0LmMgYi9kcml2ZXJzL25ldC92aXJ0aW9fbmV0LmMKaW5kZXggNWU3MDUyNzQ5YjhkLi5lOTc2 M2IzMTMyNzQgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvbmV0L3ZpcnRpb19uZXQuYworKysgYi9kcml2 ZXJzL25ldC92aXJ0aW9fbmV0LmMKQEAgLTEzNTcsNiArMTM1NywxNiBAQCBzdGF0aWMgdm9pZCBm cmVlX29sZF94bWl0X3NrYnMoc3RydWN0IHNlbmRfcXVldWUgKnNxKQogCXU2NF9zdGF0c191cGRh dGVfZW5kKCZzcS0+c3RhdHMuc3luY3ApOwogfQogCitzdGF0aWMgYm9vbCBpc194ZHBfcmF3X2J1 ZmZlcl9xdWV1ZShzdHJ1Y3QgdmlydG5ldF9pbmZvICp2aSwgaW50IHEpCit7CisJaWYgKHEgPCAo dmktPmN1cnJfcXVldWVfcGFpcnMgLSB2aS0+eGRwX3F1ZXVlX3BhaXJzKSkKKwkJcmV0dXJuIGZh bHNlOworCWVsc2UgaWYgKHEgPCB2aS0+Y3Vycl9xdWV1ZV9wYWlycykKKwkJcmV0dXJuIHRydWU7 CisJZWxzZQorCQlyZXR1cm4gZmFsc2U7Cit9CisKIHN0YXRpYyB2b2lkIHZpcnRuZXRfcG9sbF9j bGVhbnR4KHN0cnVjdCByZWNlaXZlX3F1ZXVlICpycSkKIHsKIAlzdHJ1Y3QgdmlydG5ldF9pbmZv ICp2aSA9IHJxLT52cS0+dmRldi0+cHJpdjsKQEAgLTEzNjQsNyArMTM3NCw3IEBAIHN0YXRpYyB2 b2lkIHZpcnRuZXRfcG9sbF9jbGVhbnR4KHN0cnVjdCByZWNlaXZlX3F1ZXVlICpycSkKIAlzdHJ1 Y3Qgc2VuZF9xdWV1ZSAqc3EgPSAmdmktPnNxW2luZGV4XTsKIAlzdHJ1Y3QgbmV0ZGV2X3F1ZXVl ICp0eHEgPSBuZXRkZXZfZ2V0X3R4X3F1ZXVlKHZpLT5kZXYsIGluZGV4KTsKIAotCWlmICghc3Et Pm5hcGkud2VpZ2h0KQorCWlmICghc3EtPm5hcGkud2VpZ2h0IHx8IGlzX3hkcF9yYXdfYnVmZmVy X3F1ZXVlKHZpLCBpbmRleCkpCiAJCXJldHVybjsKIAogCWlmIChfX25ldGlmX3R4X3RyeWxvY2so dHhxKSkgewpAQCAtMTQ0MSw4ICsxNDUxLDE2IEBAIHN0YXRpYyBpbnQgdmlydG5ldF9wb2xsX3R4 KHN0cnVjdCBuYXBpX3N0cnVjdCAqbmFwaSwgaW50IGJ1ZGdldCkKIHsKIAlzdHJ1Y3Qgc2VuZF9x dWV1ZSAqc3EgPSBjb250YWluZXJfb2YobmFwaSwgc3RydWN0IHNlbmRfcXVldWUsIG5hcGkpOwog CXN0cnVjdCB2aXJ0bmV0X2luZm8gKnZpID0gc3EtPnZxLT52ZGV2LT5wcml2OwotCXN0cnVjdCBu ZXRkZXZfcXVldWUgKnR4cSA9IG5ldGRldl9nZXRfdHhfcXVldWUodmktPmRldiwgdnEydHhxKHNx LT52cSkpOworCXVuc2lnbmVkIGludCBpbmRleCA9IHZxMnR4cShzcS0+dnEpOworCXN0cnVjdCBu ZXRkZXZfcXVldWUgKnR4cTsKIAorCWlmICh1bmxpa2VseShpc194ZHBfcmF3X2J1ZmZlcl9xdWV1 ZSh2aSwgaW5kZXgpKSkgeworCQkvKiBXZSBkb24ndCBuZWVkIHRvIGVuYWJsZSBjYiBmb3IgWERQ ICovCisJCW5hcGlfY29tcGxldGVfZG9uZShuYXBpLCAwKTsKKwkJcmV0dXJuIDA7CisJfQorCisJ dHhxID0gbmV0ZGV2X2dldF90eF9xdWV1ZSh2aS0+ZGV2LCBpbmRleCk7CiAJX19uZXRpZl90eF9s b2NrKHR4cSwgcmF3X3NtcF9wcm9jZXNzb3JfaWQoKSk7CiAJZnJlZV9vbGRfeG1pdF9za2JzKHNx KTsKIAlfX25ldGlmX3R4X3VubG9jayh0eHEpOwpAQCAtMjQwMSw5ICsyNDE5LDEyIEBAIHN0YXRp YyBpbnQgdmlydG5ldF94ZHBfc2V0KHN0cnVjdCBuZXRfZGV2aWNlICpkZXYsIHN0cnVjdCBicGZf cHJvZyAqcHJvZywKIAl9CiAKIAkvKiBNYWtlIHN1cmUgTkFQSSBpcyBub3QgdXNpbmcgYW55IFhE UCBUWCBxdWV1ZXMgZm9yIFJYLiAqLwotCWlmIChuZXRpZl9ydW5uaW5nKGRldikpCi0JCWZvciAo aSA9IDA7IGkgPCB2aS0+bWF4X3F1ZXVlX3BhaXJzOyBpKyspCisJaWYgKG5ldGlmX3J1bm5pbmco ZGV2KSkgeworCQlmb3IgKGkgPSAwOyBpIDwgdmktPm1heF9xdWV1ZV9wYWlyczsgaSsrKSB7CiAJ CQluYXBpX2Rpc2FibGUoJnZpLT5ycVtpXS5uYXBpKTsKKwkJCXZpcnRuZXRfbmFwaV90eF9kaXNh YmxlKCZ2aS0+c3FbaV0ubmFwaSk7CisJCX0KKwl9CiAKIAluZXRpZl9zZXRfcmVhbF9udW1fcnhf cXVldWVzKGRldiwgY3Vycl9xcCArIHhkcF9xcCk7CiAJZXJyID0gX3ZpcnRuZXRfc2V0X3F1ZXVl cyh2aSwgY3Vycl9xcCArIHhkcF9xcCk7CkBAIC0yNDIyLDE2ICsyNDQzLDIyIEBAIHN0YXRpYyBp bnQgdmlydG5ldF94ZHBfc2V0KHN0cnVjdCBuZXRfZGV2aWNlICpkZXYsIHN0cnVjdCBicGZfcHJv ZyAqcHJvZywKIAkJfQogCQlpZiAob2xkX3Byb2cpCiAJCQlicGZfcHJvZ19wdXQob2xkX3Byb2cp OwotCQlpZiAobmV0aWZfcnVubmluZyhkZXYpKQorCQlpZiAobmV0aWZfcnVubmluZyhkZXYpKSB7 CiAJCQl2aXJ0bmV0X25hcGlfZW5hYmxlKHZpLT5ycVtpXS52cSwgJnZpLT5ycVtpXS5uYXBpKTsK KwkJCXZpcnRuZXRfbmFwaV90eF9lbmFibGUodmksIHZpLT5zcVtpXS52cSwKKwkJCQkJICAgICAg ICZ2aS0+c3FbaV0ubmFwaSk7CisJCX0KIAl9CiAKIAlyZXR1cm4gMDsKIAogZXJyOgogCWlmIChu ZXRpZl9ydW5uaW5nKGRldikpIHsKLQkJZm9yIChpID0gMDsgaSA8IHZpLT5tYXhfcXVldWVfcGFp cnM7IGkrKykKKwkJZm9yIChpID0gMDsgaSA8IHZpLT5tYXhfcXVldWVfcGFpcnM7IGkrKykgewog CQkJdmlydG5ldF9uYXBpX2VuYWJsZSh2aS0+cnFbaV0udnEsICZ2aS0+cnFbaV0ubmFwaSk7CisJ CQl2aXJ0bmV0X25hcGlfdHhfZW5hYmxlKHZpLCB2aS0+c3FbaV0udnEsCisJCQkJCSAgICAgICAm dmktPnNxW2ldLm5hcGkpOworCQl9CiAJfQogCWlmIChwcm9nKQogCQlicGZfcHJvZ19zdWIocHJv ZywgdmktPm1heF9xdWV1ZV9wYWlycyAtIDEpOwpAQCAtMjU4OCwxNiArMjYxNSw2IEBAIHN0YXRp YyB2b2lkIGZyZWVfcmVjZWl2ZV9wYWdlX2ZyYWdzKHN0cnVjdCB2aXJ0bmV0X2luZm8gKnZpKQog CQkJcHV0X3BhZ2UodmktPnJxW2ldLmFsbG9jX2ZyYWcucGFnZSk7CiB9CiAKLXN0YXRpYyBib29s IGlzX3hkcF9yYXdfYnVmZmVyX3F1ZXVlKHN0cnVjdCB2aXJ0bmV0X2luZm8gKnZpLCBpbnQgcSkK LXsKLQlpZiAocSA8ICh2aS0+Y3Vycl9xdWV1ZV9wYWlycyAtIHZpLT54ZHBfcXVldWVfcGFpcnMp KQotCQlyZXR1cm4gZmFsc2U7Ci0JZWxzZSBpZiAocSA8IHZpLT5jdXJyX3F1ZXVlX3BhaXJzKQot CQlyZXR1cm4gdHJ1ZTsKLQllbHNlCi0JCXJldHVybiBmYWxzZTsKLX0KLQogc3RhdGljIHZvaWQg ZnJlZV91bnVzZWRfYnVmcyhzdHJ1Y3QgdmlydG5ldF9pbmZvICp2aSkKIHsKIAl2b2lkICpidWY7 Ci0tIAoyLjIwLjEKCgpGcm9tIDJjNDc5MmQ3NWJiMzE2ZGRiMzlkYzY0ZmVjYmUyZTlhZmZiN2Ni NTMgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCkZyb206IFRvc2hpYWtpIE1ha2l0YSA8bWFraXRh LnRvc2hpYWtpQGxhYi5udHQuY28uanA+CkRhdGU6IFR1ZSwgMjkgSmFuIDIwMTkgMDk6NDU6NTUg KzA5MDAKU3ViamVjdDogW1BBVENIIDI4LzMzXSB2aXJ0aW9fbmV0OiBGaXggbm90IHJlc3Rvcmlu ZyByZWFsX251bV9yeF9xdWV1ZXMKClsgVXBzdHJlYW0gY29tbWl0IDE4ODMxM2MxMzdjNGY3NmFm ZDA4NjJmNTBkYmMxODViMTk4YjllMmEgXQoKV2hlbiBfdmlydG5ldF9zZXRfcXVldWVzKCkgZmFp bGVkIHdlIGRpZCBub3QgcmVzdG9yZSByZWFsX251bV9yeF9xdWV1ZXMuCkZpeCB0aGlzIGJ5IHBs YWNpbmcgdGhlIGNoYW5nZSBvZiByZWFsX251bV9yeF9xdWV1ZXMgYWZ0ZXIKX3ZpcnRuZXRfc2V0 X3F1ZXVlcygpLgpUaGlzIG9yZGVyIGlzIGFsc28gaW4gbGluZSB3aXRoIHZpcnRuZXRfc2V0X2No YW5uZWxzKCkuCgpGaXhlczogNDk0MWQ0NzJiZjk1ICgidmlydGlvLW5ldDogZG8gbm90IHJlc2V0 IGR1cmluZyBYRFAgc2V0IikKU2lnbmVkLW9mZi1ieTogVG9zaGlha2kgTWFraXRhIDxtYWtpdGEu dG9zaGlha2lAbGFiLm50dC5jby5qcD4KQWNrZWQtYnk6IEphc29uIFdhbmcgPGphc293YW5nQHJl ZGhhdC5jb20+CkFja2VkLWJ5OiBNaWNoYWVsIFMuIFRzaXJraW4gPG1zdEByZWRoYXQuY29tPgpT aWduZWQtb2ZmLWJ5OiBEYXZpZCBTLiBNaWxsZXIgPGRhdmVtQGRhdmVtbG9mdC5uZXQ+Ci0tLQog ZHJpdmVycy9uZXQvdmlydGlvX25ldC5jIHwgMiArLQogMSBmaWxlIGNoYW5nZWQsIDEgaW5zZXJ0 aW9uKCspLCAxIGRlbGV0aW9uKC0pCgpkaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvdmlydGlvX25l dC5jIGIvZHJpdmVycy9uZXQvdmlydGlvX25ldC5jCmluZGV4IGU5NzYzYjMxMzI3NC4uMTQ1NjQ1 ZGNjZjNlIDEwMDY0NAotLS0gYS9kcml2ZXJzL25ldC92aXJ0aW9fbmV0LmMKKysrIGIvZHJpdmVy cy9uZXQvdmlydGlvX25ldC5jCkBAIC0yNDI2LDEwICsyNDI2LDEwIEBAIHN0YXRpYyBpbnQgdmly dG5ldF94ZHBfc2V0KHN0cnVjdCBuZXRfZGV2aWNlICpkZXYsIHN0cnVjdCBicGZfcHJvZyAqcHJv ZywKIAkJfQogCX0KIAotCW5ldGlmX3NldF9yZWFsX251bV9yeF9xdWV1ZXMoZGV2LCBjdXJyX3Fw ICsgeGRwX3FwKTsKIAllcnIgPSBfdmlydG5ldF9zZXRfcXVldWVzKHZpLCBjdXJyX3FwICsgeGRw X3FwKTsKIAlpZiAoZXJyKQogCQlnb3RvIGVycjsKKwluZXRpZl9zZXRfcmVhbF9udW1fcnhfcXVl dWVzKGRldiwgY3Vycl9xcCArIHhkcF9xcCk7CiAJdmktPnhkcF9xdWV1ZV9wYWlycyA9IHhkcF9x cDsKIAogCWZvciAoaSA9IDA7IGkgPCB2aS0+bWF4X3F1ZXVlX3BhaXJzOyBpKyspIHsKLS0gCjIu MjAuMQoKCkZyb20gN2I2MWNhNTRlNTY4OTRlZTRlMDdjMTY0OTQ1MjNkYWQ2YTU1NjZmMyBNb24g U2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJvbTogVG9zaGlha2kgTWFraXRhIDxtYWtpdGEudG9zaGlh a2lAbGFiLm50dC5jby5qcD4KRGF0ZTogVHVlLCAyOSBKYW4gMjAxOSAwOTo0NTo1NiArMDkwMApT dWJqZWN0OiBbUEFUQ0ggMjkvMzNdIHZpcnRpb19uZXQ6IEZpeCBvdXQgb2YgYm91bmRzIGFjY2Vz cyBvZiBzcQoKWyBVcHN0cmVhbSBjb21taXQgMTY2N2MwOGE5ZDMxYzdjZGYwOWY0ODkwODE2YmZi ZjIwYjY4NTQ5NSBdCgpXaGVuIFhEUCBpcyBkaXNhYmxlZCwgY3Vycl9xdWV1ZV9wYWlycyArIHNt cF9wcm9jZXNzb3JfaWQoKSBjYW4gYmUKbGFyZ2VyIHRoYW4gbWF4X3F1ZXVlX3BhaXJzLgpUaGVy ZSBpcyBubyBndWFyYW50ZWUgdGhhdCB3ZSBoYXZlIGVub3VnaCBYRFAgc2VuZCBxdWV1ZXMgZGVk aWNhdGVkIGZvcgplYWNoIGNwdSB3aGVuIFhEUCBpcyBkaXNhYmxlZCwgc28gZG8gbm90IGNvdW50 IGRyb3BzIG9uIHNxIGluIHRoYXQgY2FzZS4KCkZpeGVzOiA1YjhmM2M4ZDMwYTYgKCJ2aXJ0aW9f bmV0OiBBZGQgWERQIHJlbGF0ZWQgc3RhdHMiKQpTaWduZWQtb2ZmLWJ5OiBUb3NoaWFraSBNYWtp dGEgPG1ha2l0YS50b3NoaWFraUBsYWIubnR0LmNvLmpwPgpBY2tlZC1ieTogSmFzb24gV2FuZyA8 amFzb3dhbmdAcmVkaGF0LmNvbT4KQWNrZWQtYnk6IE1pY2hhZWwgUy4gVHNpcmtpbiA8bXN0QHJl ZGhhdC5jb20+ClNpZ25lZC1vZmYtYnk6IERhdmlkIFMuIE1pbGxlciA8ZGF2ZW1AZGF2ZW1sb2Z0 Lm5ldD4KLS0tCiBkcml2ZXJzL25ldC92aXJ0aW9fbmV0LmMgfCAxNyArKysrKysrLS0tLS0tLS0t LQogMSBmaWxlIGNoYW5nZWQsIDcgaW5zZXJ0aW9ucygrKSwgMTAgZGVsZXRpb25zKC0pCgpkaWZm IC0tZ2l0IGEvZHJpdmVycy9uZXQvdmlydGlvX25ldC5jIGIvZHJpdmVycy9uZXQvdmlydGlvX25l dC5jCmluZGV4IDE0NTY0NWRjY2YzZS4uYzBhYjJkNDc4OWI5IDEwMDY0NAotLS0gYS9kcml2ZXJz L25ldC92aXJ0aW9fbmV0LmMKKysrIGIvZHJpdmVycy9uZXQvdmlydGlvX25ldC5jCkBAIC00OTAs MjAgKzQ5MCwxNyBAQCBzdGF0aWMgaW50IHZpcnRuZXRfeGRwX3htaXQoc3RydWN0IG5ldF9kZXZp Y2UgKmRldiwKIAlpbnQgcmV0LCBlcnI7CiAJaW50IGk7CiAKLQlzcSA9IHZpcnRuZXRfeGRwX3Nx KHZpKTsKLQotCWlmICh1bmxpa2VseShmbGFncyAmIH5YRFBfWE1JVF9GTEFHU19NQVNLKSkgewot CQlyZXQgPSAtRUlOVkFMOwotCQlkcm9wcyA9IG47Ci0JCWdvdG8gb3V0OwotCX0KLQogCS8qIE9u bHkgYWxsb3cgbmRvX3hkcF94bWl0IGlmIFhEUCBpcyBsb2FkZWQgb24gZGV2LCBhcyB0aGlzCiAJ ICogaW5kaWNhdGUgWERQIHJlc291cmNlcyBoYXZlIGJlZW4gc3VjY2Vzc2Z1bGx5IGFsbG9jYXRl ZC4KIAkgKi8KIAl4ZHBfcHJvZyA9IHJjdV9kZXJlZmVyZW5jZShycS0+eGRwX3Byb2cpOwotCWlm ICgheGRwX3Byb2cpIHsKLQkJcmV0ID0gLUVOWElPOworCWlmICgheGRwX3Byb2cpCisJCXJldHVy biAtRU5YSU87CisKKwlzcSA9IHZpcnRuZXRfeGRwX3NxKHZpKTsKKworCWlmICh1bmxpa2VseShm bGFncyAmIH5YRFBfWE1JVF9GTEFHU19NQVNLKSkgeworCQlyZXQgPSAtRUlOVkFMOwogCQlkcm9w cyA9IG47CiAJCWdvdG8gb3V0OwogCX0KLS0gCjIuMjAuMQoKCkZyb20gZjAyNDMxZTBkZTlmNjRi MWYwMzc2NDI2N2MxZDlmYzQ0ZTZkY2JmMSBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJvbTog VG9zaGlha2kgTWFraXRhIDxtYWtpdGEudG9zaGlha2lAbGFiLm50dC5jby5qcD4KRGF0ZTogVHVl LCAyOSBKYW4gMjAxOSAwOTo0NTo1NyArMDkwMApTdWJqZWN0OiBbUEFUQ0ggMzAvMzNdIHZpcnRp b19uZXQ6IERvbid0IHByb2Nlc3MgcmVkaXJlY3RlZCBYRFAgZnJhbWVzIHdoZW4KIFhEUCBpcyBk aXNhYmxlZAoKWyBVcHN0cmVhbSBjb21taXQgMDNhYTZkMzQ4NjhjMDdiMmIxYjhiMmRiMDgwNjAy ZDdlYzUyODE3MyBdCgpDb21taXQgOGRjYzViMGFiMGVjICgidmlydGlvX25ldDogZml4IG5kb194 ZHBfeG1pdCBjcmFzaCB0b3dhcmRzIGRldiBub3QKcmVhZHkgZm9yIFhEUCIpIHRyaWVkIHRvIGF2 b2lkIGFjY2VzcyB0byB1bmV4cGVjdGVkIHNxIHdoaWxlIFhEUCBpcwpkaXNhYmxlZCwgYnV0IHdh cyBub3QgY29tcGxldGUuCgpUaGVyZSB3YXMgYSBzbWFsbCB3aW5kb3cgd2hpY2ggY2F1c2VzIG91 dCBvZiBib3VuZHMgc3EgYWNjZXNzIGluCnZpcnRuZXRfeGRwX3htaXQoKSB3aGlsZSBkaXNhYmxp bmcgWERQLgoKQW4gZXhhbXBsZSBjYXNlIG9mCiAtIGN1cnJfcXVldWVfcGFpcnMgPSA2ICgyIGZv ciBTS0IgYW5kIDQgZm9yIFhEUCkKIC0gb25saW5lX2NwdV9udW0gPSB4ZHBfcXVldWVfcGFyaXMg PSA0CndoZW4gWERQIGlzIGVuYWJsZWQ6CgpDUFUgMCAgICAgICAgICAgICAgICAgICAgICAgICBD UFUgMQooRGlzYWJsaW5nIFhEUCkgICAgICAgICAgICAgICAoUHJvY2Vzc2luZyByZWRpcmVjdGVk IFhEUCBmcmFtZXMpCgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2aXJ0bmV0X3hkcF94 bWl0KCkKdmlydG5ldF94ZHBfc2V0KCkKIF92aXJ0bmV0X3NldF9xdWV1ZXMoKQogIHNldCBjdXJy X3F1ZXVlX3BhaXJzICgyKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2hlY2sgaWYg cnEtPnhkcF9wcm9nIGlzIG5vdCBOVUxMCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2 aXJ0bmV0X3hkcF9zcSh2aSkKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBxcCA9IGN1 cnJfcXVldWVfcGFpcnMgLQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgeGRw X3F1ZXVlX3BhaXJzICsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNtcF9w cm9jZXNzb3JfaWQoKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID0gMiAtIDQg KyAxID0gLTEKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzcSA9ICZ2aS0+c3FbcXBd IC8vIG91dCBvZiBib3VuZHMgYWNjZXNzCiAgc2V0IHhkcF9xdWV1ZV9wYWlycyAoMCkKICBycS0+ eGRwX3Byb2cgPSBOVUxMCgpCYXNpY2FsbHkgd2Ugc2hvdWxkIG5vdCBjaGFuZ2UgY3Vycl9xdWV1 ZV9wYWlycyBhbmQgeGRwX3F1ZXVlX3BhaXJzCndoaWxlIHNvbWVvbmUgY2FuIHJlYWQgdGhlIHZh bHVlcy4gVGh1cywgd2hlbiBkaXNhYmxpbmcgWERQLCBhc3NpZ24gTlVMTAp0byBycS0+eGRwX3By b2cgZmlyc3QsIGFuZCB3YWl0IGZvciBSQ1UgZ3JhY2UgcGVyaW9kLCB0aGVuIGNoYW5nZQp4eHhf cXVldWVfcGFpcnMuCk5vdGUgdGhhdCB3ZSBuZWVkIHRvIGtlZXAgdGhlIGN1cnJlbnQgb3JkZXIg d2hlbiBlbmFibGluZyBYRFAgdGhvdWdoLgoKLSB2MjogTWFrZSByY3VfYXNzaWduX3BvaW50ZXIv c3luY2hyb25pemVfbmV0IGNvbmRpdGlvbmFsIGluc3RlYWQgb2YKICAgICAgX3ZpcnRuZXRfc2V0 X3F1ZXVlcy4KCkZpeGVzOiAxODZiM2M5OThjNTAgKCJ2aXJ0aW8tbmV0OiBzdXBwb3J0IFhEUF9S RURJUkVDVCIpClNpZ25lZC1vZmYtYnk6IFRvc2hpYWtpIE1ha2l0YSA8bWFraXRhLnRvc2hpYWtp QGxhYi5udHQuY28uanA+CkFja2VkLWJ5OiBKYXNvbiBXYW5nIDxqYXNvd2FuZ0ByZWRoYXQuY29t PgpBY2tlZC1ieTogTWljaGFlbCBTLiBUc2lya2luIDxtc3RAcmVkaGF0LmNvbT4KU2lnbmVkLW9m Zi1ieTogRGF2aWQgUy4gTWlsbGVyIDxkYXZlbUBkYXZlbWxvZnQubmV0PgotLS0KIGRyaXZlcnMv bmV0L3ZpcnRpb19uZXQuYyB8IDMzICsrKysrKysrKysrKysrKysrKysrKysrKysrLS0tLS0tLQog MSBmaWxlIGNoYW5nZWQsIDI2IGluc2VydGlvbnMoKyksIDcgZGVsZXRpb25zKC0pCgpkaWZmIC0t Z2l0IGEvZHJpdmVycy9uZXQvdmlydGlvX25ldC5jIGIvZHJpdmVycy9uZXQvdmlydGlvX25ldC5j CmluZGV4IGMwYWIyZDQ3ODliOS4uZjUzMDkzMmI5MzhmIDEwMDY0NAotLS0gYS9kcml2ZXJzL25l dC92aXJ0aW9fbmV0LmMKKysrIGIvZHJpdmVycy9uZXQvdmlydGlvX25ldC5jCkBAIC0yNDA5LDYg KzI0MDksMTAgQEAgc3RhdGljIGludCB2aXJ0bmV0X3hkcF9zZXQoc3RydWN0IG5ldF9kZXZpY2Ug KmRldiwgc3RydWN0IGJwZl9wcm9nICpwcm9nLAogCQlyZXR1cm4gLUVOT01FTTsKIAl9CiAKKwlv bGRfcHJvZyA9IHJ0bmxfZGVyZWZlcmVuY2UodmktPnJxWzBdLnhkcF9wcm9nKTsKKwlpZiAoIXBy b2cgJiYgIW9sZF9wcm9nKQorCQlyZXR1cm4gMDsKKwogCWlmIChwcm9nKSB7CiAJCXByb2cgPSBi cGZfcHJvZ19hZGQocHJvZywgdmktPm1heF9xdWV1ZV9wYWlycyAtIDEpOwogCQlpZiAoSVNfRVJS KHByb2cpKQpAQCAtMjQyMywyMSArMjQyNywzMCBAQCBzdGF0aWMgaW50IHZpcnRuZXRfeGRwX3Nl dChzdHJ1Y3QgbmV0X2RldmljZSAqZGV2LCBzdHJ1Y3QgYnBmX3Byb2cgKnByb2csCiAJCX0KIAl9 CiAKKwlpZiAoIXByb2cpIHsKKwkJZm9yIChpID0gMDsgaSA8IHZpLT5tYXhfcXVldWVfcGFpcnM7 IGkrKykgeworCQkJcmN1X2Fzc2lnbl9wb2ludGVyKHZpLT5ycVtpXS54ZHBfcHJvZywgcHJvZyk7 CisJCQlpZiAoaSA9PSAwKQorCQkJCXZpcnRuZXRfcmVzdG9yZV9ndWVzdF9vZmZsb2Fkcyh2aSk7 CisJCX0KKwkJc3luY2hyb25pemVfbmV0KCk7CisJfQorCiAJZXJyID0gX3ZpcnRuZXRfc2V0X3F1 ZXVlcyh2aSwgY3Vycl9xcCArIHhkcF9xcCk7CiAJaWYgKGVycikKIAkJZ290byBlcnI7CiAJbmV0 aWZfc2V0X3JlYWxfbnVtX3J4X3F1ZXVlcyhkZXYsIGN1cnJfcXAgKyB4ZHBfcXApOwogCXZpLT54 ZHBfcXVldWVfcGFpcnMgPSB4ZHBfcXA7CiAKLQlmb3IgKGkgPSAwOyBpIDwgdmktPm1heF9xdWV1 ZV9wYWlyczsgaSsrKSB7Ci0JCW9sZF9wcm9nID0gcnRubF9kZXJlZmVyZW5jZSh2aS0+cnFbaV0u eGRwX3Byb2cpOwotCQlyY3VfYXNzaWduX3BvaW50ZXIodmktPnJxW2ldLnhkcF9wcm9nLCBwcm9n KTsKLQkJaWYgKGkgPT0gMCkgewotCQkJaWYgKCFvbGRfcHJvZykKKwlpZiAocHJvZykgeworCQlm b3IgKGkgPSAwOyBpIDwgdmktPm1heF9xdWV1ZV9wYWlyczsgaSsrKSB7CisJCQlyY3VfYXNzaWdu X3BvaW50ZXIodmktPnJxW2ldLnhkcF9wcm9nLCBwcm9nKTsKKwkJCWlmIChpID09IDAgJiYgIW9s ZF9wcm9nKQogCQkJCXZpcnRuZXRfY2xlYXJfZ3Vlc3Rfb2ZmbG9hZHModmkpOwotCQkJaWYgKCFw cm9nKQotCQkJCXZpcnRuZXRfcmVzdG9yZV9ndWVzdF9vZmZsb2Fkcyh2aSk7CiAJCX0KKwl9CisK Kwlmb3IgKGkgPSAwOyBpIDwgdmktPm1heF9xdWV1ZV9wYWlyczsgaSsrKSB7CiAJCWlmIChvbGRf cHJvZykKIAkJCWJwZl9wcm9nX3B1dChvbGRfcHJvZyk7CiAJCWlmIChuZXRpZl9ydW5uaW5nKGRl dikpIHsKQEAgLTI0NTAsNiArMjQ2MywxMiBAQCBzdGF0aWMgaW50IHZpcnRuZXRfeGRwX3NldChz dHJ1Y3QgbmV0X2RldmljZSAqZGV2LCBzdHJ1Y3QgYnBmX3Byb2cgKnByb2csCiAJcmV0dXJuIDA7 CiAKIGVycjoKKwlpZiAoIXByb2cpIHsKKwkJdmlydG5ldF9jbGVhcl9ndWVzdF9vZmZsb2Fkcyh2 aSk7CisJCWZvciAoaSA9IDA7IGkgPCB2aS0+bWF4X3F1ZXVlX3BhaXJzOyBpKyspCisJCQlyY3Vf YXNzaWduX3BvaW50ZXIodmktPnJxW2ldLnhkcF9wcm9nLCBvbGRfcHJvZyk7CisJfQorCiAJaWYg KG5ldGlmX3J1bm5pbmcoZGV2KSkgewogCQlmb3IgKGkgPSAwOyBpIDwgdmktPm1heF9xdWV1ZV9w YWlyczsgaSsrKSB7CiAJCQl2aXJ0bmV0X25hcGlfZW5hYmxlKHZpLT5ycVtpXS52cSwgJnZpLT5y cVtpXS5uYXBpKTsKLS0gCjIuMjAuMQoKCkZyb20gN2UyMGQzNzU2NmVkYzc0ZTg4YTQ4NTU4Y2M3 YzRmZGJmYmRiZTc4YiBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJvbTogVG9zaGlha2kgTWFr aXRhIDxtYWtpdGEudG9zaGlha2lAbGFiLm50dC5jby5qcD4KRGF0ZTogVHVlLCAyOSBKYW4gMjAx OSAwOTo0NTo1OCArMDkwMApTdWJqZWN0OiBbUEFUQ0ggMzEvMzNdIHZpcnRpb19uZXQ6IFVzZSB4 ZHBfcmV0dXJuX2ZyYW1lIHRvIGZyZWUgeGRwX2ZyYW1lcyBvbgogZGVzdHJveWluZyB2cXMKClsg VXBzdHJlYW0gY29tbWl0IDA3YjM0NGY0OTRkZGRhOWYwNjFiMzk2NDA3Yzk2ZGY4YzQ2YzgyYjUg XQoKcHV0X3BhZ2UoKSBjYW4gd29yayBhcyBhIGZhbGxiYWNrIGZvciBmcmVlaW5nIHhkcF9mcmFt ZXMsIGJ1dCB0aGUKYXBwcm9wcmlhdGUgd2F5IGlzIHRvIHVzZSB4ZHBfcmV0dXJuX2ZyYW1lKCku CgpGaXhlczogY2FjMzIwYzg1MGVmICgidmlydGlvX25ldDogY29udmVydCB0byB1c2UgZ2VuZXJp YyB4ZHBfZnJhbWUgYW5kIHhkcF9yZXR1cm5fZnJhbWUgQVBJIikKU2lnbmVkLW9mZi1ieTogVG9z aGlha2kgTWFraXRhIDxtYWtpdGEudG9zaGlha2lAbGFiLm50dC5jby5qcD4KQWNrZWQtYnk6IEph c29uIFdhbmcgPGphc293YW5nQHJlZGhhdC5jb20+CkFja2VkLWJ5OiBKZXNwZXIgRGFuZ2FhcmQg QnJvdWVyIDxicm91ZXJAcmVkaGF0LmNvbT4KQWNrZWQtYnk6IE1pY2hhZWwgUy4gVHNpcmtpbiA8 bXN0QHJlZGhhdC5jb20+ClNpZ25lZC1vZmYtYnk6IERhdmlkIFMuIE1pbGxlciA8ZGF2ZW1AZGF2 ZW1sb2Z0Lm5ldD4KLS0tCiBkcml2ZXJzL25ldC92aXJ0aW9fbmV0LmMgfCAyICstCiAxIGZpbGUg Y2hhbmdlZCwgMSBpbnNlcnRpb24oKyksIDEgZGVsZXRpb24oLSkKCmRpZmYgLS1naXQgYS9kcml2 ZXJzL25ldC92aXJ0aW9fbmV0LmMgYi9kcml2ZXJzL25ldC92aXJ0aW9fbmV0LmMKaW5kZXggZjUz MDkzMmI5MzhmLi4yMGUzNTA1ODMzMzcgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvbmV0L3ZpcnRpb19u ZXQuYworKysgYi9kcml2ZXJzL25ldC92aXJ0aW9fbmV0LmMKQEAgLTI2NDIsNyArMjY0Miw3IEBA IHN0YXRpYyB2b2lkIGZyZWVfdW51c2VkX2J1ZnMoc3RydWN0IHZpcnRuZXRfaW5mbyAqdmkpCiAJ CQlpZiAoIWlzX3hkcF9yYXdfYnVmZmVyX3F1ZXVlKHZpLCBpKSkKIAkJCQlkZXZfa2ZyZWVfc2ti KGJ1Zik7CiAJCQllbHNlCi0JCQkJcHV0X3BhZ2UodmlydF90b19oZWFkX3BhZ2UoYnVmKSk7CisJ CQkJeGRwX3JldHVybl9mcmFtZShidWYpOwogCQl9CiAJfQogCi0tIAoyLjIwLjEKCgpGcm9tIGNl MTkzZjdhZWZjZDMwODQ4NmJmYTRlNWQzNDFhODA4ZmMyZWUyNTggTW9uIFNlcCAxNyAwMDowMDow MCAyMDAxCkZyb206IFRvc2hpYWtpIE1ha2l0YSA8bWFraXRhLnRvc2hpYWtpQGxhYi5udHQuY28u anA+CkRhdGU6IFR1ZSwgMjkgSmFuIDIwMTkgMDk6NDU6NTkgKzA5MDAKU3ViamVjdDogW1BBVENI IDMyLzMzXSB2aXJ0aW9fbmV0OiBEaWZmZXJlbnRpYXRlIHNrX2J1ZmYgYW5kIHhkcF9mcmFtZSBv bgogZnJlZWluZwoKWyBVcHN0cmVhbSBjb21taXQgNTA1MDQ3MWQzNWQxMzE2YmEzMmRmY2JiNDA5 OTc4MzM3ZWI5ZTc1ZQoKICBJIGhhZCB0byBmb2xkIGNvbW1pdCBkZjEzM2YzZjk2MjUgKCJ2aXJ0 aW9fbmV0OiBidWxrIGZyZWUgdHggc2ticyIpCiAgaW50byB0aGlzIHRvIG1ha2UgaXQgd29yay4g IF0KCldlIGRvIG5vdCByZXNldCBvciBmcmVlIHVwIHVudXNlZCBidWZmZXJzIHdoZW4gZW5hYmxp bmcvZGlzYWJsaW5nIFhEUCwKc28gaXQgY2FuIGhhcHBlbiB0aGF0IHhkcF9mcmFtZXMgYXJlIGZy ZWVkIGFmdGVyIGRpc2FibGluZyBYRFAgb3IKc2tfYnVmZnMgYXJlIGZyZWVkIGFmdGVyIGVuYWJs aW5nIFhEUCBvbiB4ZHAgdHggcXVldWVzLgpUaHVzIHdlIG5lZWQgdG8gaGFuZGxlIGJvdGggZm9y bXMgKHhkcF9mcmFtZXMgYW5kIHNrX2J1ZmZzKSByZWdhcmRsZXNzCm9mIFhEUCBzZXR0aW5nLgpP bmUgd2F5IHRvIHRyaWdnZXIgdGhpcyBwcm9ibGVtIGlzIHRvIGRpc2FibGUgWERQIHdoZW4gbmFw aV90eCBpcwplbmFibGVkLiBJbiB0aGF0IGNhc2UsIHZpcnRuZXRfeGRwX3NldCgpIGNhbGxzIHZp cnRuZXRfbmFwaV9lbmFibGUoKQp3aGljaCBraWNrcyBOQVBJLiBUaGUgTkFQSSBoYW5kbGVyIHdp bGwgY2FsbCB2aXJ0bmV0X3BvbGxfY2xlYW50eCgpCndoaWNoIGludm9rZXMgZnJlZV9vbGRfeG1p dF9za2JzKCkgZm9yIHF1ZXVlcyB3aGljaCBoYXZlIGJlZW4gdXNlZCBieQpYRFAuCgpOb3RlIHRo YXQgZXZlbiB3aXRoIHRoaXMgY2hhbmdlIHdlIG5lZWQgdG8ga2VlcCBza2lwcGluZwpmcmVlX29s ZF94bWl0X3NrYnMoKSBmcm9tIE5BUEkgaGFuZGxlcnMgd2hlbiBYRFAgaXMgZW5hYmxlZCwgYmVj YXVzZSBYRFAKdHggcXVldWVzIGRvIG5vdCBhcXVpcmUgcXVldWUgbG9ja3MuCgotIHYyOiBVc2Ug bmFwaV9jb25zdW1lX3NrYigpIGluc3RlYWQgb2YgZGV2X2NvbnN1bWVfc2tiX2FueSgpCgpGaXhl czogNDk0MWQ0NzJiZjk1ICgidmlydGlvLW5ldDogZG8gbm90IHJlc2V0IGR1cmluZyBYRFAgc2V0 IikKU2lnbmVkLW9mZi1ieTogVG9zaGlha2kgTWFraXRhIDxtYWtpdGEudG9zaGlha2lAbGFiLm50 dC5jby5qcD4KQWNrZWQtYnk6IEphc29uIFdhbmcgPGphc293YW5nQHJlZGhhdC5jb20+CkFja2Vk LWJ5OiBNaWNoYWVsIFMuIFRzaXJraW4gPG1zdEByZWRoYXQuY29tPgpTaWduZWQtb2ZmLWJ5OiBE YXZpZCBTLiBNaWxsZXIgPGRhdmVtQGRhdmVtbG9mdC5uZXQ+Ci0tLQogZHJpdmVycy9uZXQvdmly dGlvX25ldC5jIHwgNjQgKysrKysrKysrKysrKysrKysrKysrKysrKysrKystLS0tLS0tLS0tLQog MSBmaWxlIGNoYW5nZWQsIDQ3IGluc2VydGlvbnMoKyksIDE3IGRlbGV0aW9ucygtKQoKZGlmZiAt LWdpdCBhL2RyaXZlcnMvbmV0L3ZpcnRpb19uZXQuYyBiL2RyaXZlcnMvbmV0L3ZpcnRpb19uZXQu YwppbmRleCAyMGUzNTA1ODMzMzcuLmRhNTAwYzc3YzViOSAxMDA2NDQKLS0tIGEvZHJpdmVycy9u ZXQvdmlydGlvX25ldC5jCisrKyBiL2RyaXZlcnMvbmV0L3ZpcnRpb19uZXQuYwpAQCAtNTcsNiAr NTcsOCBAQCBtb2R1bGVfcGFyYW0obmFwaV90eCwgYm9vbCwgMDY0NCk7CiAjZGVmaW5lIFZJUlRJ T19YRFBfVFgJCUJJVCgwKQogI2RlZmluZSBWSVJUSU9fWERQX1JFRElSCUJJVCgxKQogCisjZGVm aW5lIFZJUlRJT19YRFBfRkxBRwlCSVQoMCkKKwogLyogUlggcGFja2V0IHNpemUgRVdNQS4gVGhl IGF2ZXJhZ2UgcGFja2V0IHNpemUgaXMgdXNlZCB0byBkZXRlcm1pbmUgdGhlIHBhY2tldAogICog YnVmZmVyIHNpemUgd2hlbiByZWZpbGxpbmcgUlggcmluZ3MuIEFzIHRoZSBlbnRpcmUgUlggcmlu ZyBtYXkgYmUgcmVmaWxsZWQKICAqIGF0IG9uY2UsIHRoZSB3ZWlnaHQgaXMgY2hvc2VuIHNvIHRo YXQgdGhlIEVXTUEgd2lsbCBiZSBpbnNlbnNpdGl2ZSB0byBzaG9ydC0KQEAgLTI1MSw2ICsyNTMs MjEgQEAgc3RydWN0IHBhZGRlZF92bmV0X2hkciB7CiAJY2hhciBwYWRkaW5nWzRdOwogfTsKIAor c3RhdGljIGJvb2wgaXNfeGRwX2ZyYW1lKHZvaWQgKnB0cikKK3sKKwlyZXR1cm4gKHVuc2lnbmVk IGxvbmcpcHRyICYgVklSVElPX1hEUF9GTEFHOworfQorCitzdGF0aWMgdm9pZCAqeGRwX3RvX3B0 cihzdHJ1Y3QgeGRwX2ZyYW1lICpwdHIpCit7CisJcmV0dXJuICh2b2lkICopKCh1bnNpZ25lZCBs b25nKXB0ciB8IFZJUlRJT19YRFBfRkxBRyk7Cit9CisKK3N0YXRpYyBzdHJ1Y3QgeGRwX2ZyYW1l ICpwdHJfdG9feGRwKHZvaWQgKnB0cikKK3sKKwlyZXR1cm4gKHN0cnVjdCB4ZHBfZnJhbWUgKiko KHVuc2lnbmVkIGxvbmcpcHRyICYgflZJUlRJT19YRFBfRkxBRyk7Cit9CisKIC8qIENvbnZlcnRp bmcgYmV0d2VlbiB2aXJ0cXVldWUgbm8uIGFuZCBrZXJuZWwgdHgvcnggcXVldWUgbm8uCiAgKiAw OnJ4MCAxOnR4MCAyOnJ4MSAzOnR4MSAuLi4gMk46cnhOIDJOKzE6dHhOIDJOKzI6Y3ZxCiAgKi8K QEAgLTQ2MSw3ICs0NzgsOCBAQCBzdGF0aWMgaW50IF9fdmlydG5ldF94ZHBfeG1pdF9vbmUoc3Ry dWN0IHZpcnRuZXRfaW5mbyAqdmksCiAKIAlzZ19pbml0X29uZShzcS0+c2csIHhkcGYtPmRhdGEs IHhkcGYtPmxlbik7CiAKLQllcnIgPSB2aXJ0cXVldWVfYWRkX291dGJ1ZihzcS0+dnEsIHNxLT5z ZywgMSwgeGRwZiwgR0ZQX0FUT01JQyk7CisJZXJyID0gdmlydHF1ZXVlX2FkZF9vdXRidWYoc3Et PnZxLCBzcS0+c2csIDEsIHhkcF90b19wdHIoeGRwZiksCisJCQkJICAgR0ZQX0FUT01JQyk7CiAJ aWYgKHVubGlrZWx5KGVycikpCiAJCXJldHVybiAtRU5PU1BDOyAvKiBDYWxsZXIgaGFuZGxlIGZy ZWUvcmVmY250ICovCiAKQEAgLTQ4MSwxMyArNDk5LDEzIEBAIHN0YXRpYyBpbnQgdmlydG5ldF94 ZHBfeG1pdChzdHJ1Y3QgbmV0X2RldmljZSAqZGV2LAogewogCXN0cnVjdCB2aXJ0bmV0X2luZm8g KnZpID0gbmV0ZGV2X3ByaXYoZGV2KTsKIAlzdHJ1Y3QgcmVjZWl2ZV9xdWV1ZSAqcnEgPSB2aS0+ cnE7Ci0Jc3RydWN0IHhkcF9mcmFtZSAqeGRwZl9zZW50OwogCXN0cnVjdCBicGZfcHJvZyAqeGRw X3Byb2c7CiAJc3RydWN0IHNlbmRfcXVldWUgKnNxOwogCXVuc2lnbmVkIGludCBsZW47CiAJaW50 IGRyb3BzID0gMDsKIAlpbnQga2lja3MgPSAwOwogCWludCByZXQsIGVycjsKKwl2b2lkICpwdHI7 CiAJaW50IGk7CiAKIAkvKiBPbmx5IGFsbG93IG5kb194ZHBfeG1pdCBpZiBYRFAgaXMgbG9hZGVk IG9uIGRldiwgYXMgdGhpcwpAQCAtNTA2LDggKzUyNCwxMiBAQCBzdGF0aWMgaW50IHZpcnRuZXRf eGRwX3htaXQoc3RydWN0IG5ldF9kZXZpY2UgKmRldiwKIAl9CiAKIAkvKiBGcmVlIHVwIGFueSBw ZW5kaW5nIG9sZCBidWZmZXJzIGJlZm9yZSBxdWV1ZWluZyBuZXcgb25lcy4gKi8KLQl3aGlsZSAo KHhkcGZfc2VudCA9IHZpcnRxdWV1ZV9nZXRfYnVmKHNxLT52cSwgJmxlbikpICE9IE5VTEwpCi0J CXhkcF9yZXR1cm5fZnJhbWUoeGRwZl9zZW50KTsKKwl3aGlsZSAoKHB0ciA9IHZpcnRxdWV1ZV9n ZXRfYnVmKHNxLT52cSwgJmxlbikpICE9IE5VTEwpIHsKKwkJaWYgKGxpa2VseShpc194ZHBfZnJh bWUocHRyKSkpCisJCQl4ZHBfcmV0dXJuX2ZyYW1lKHB0cl90b194ZHAocHRyKSk7CisJCWVsc2UK KwkJCW5hcGlfY29uc3VtZV9za2IocHRyLCBmYWxzZSk7CisJfQogCiAJZm9yIChpID0gMDsgaSA8 IG47IGkrKykgewogCQlzdHJ1Y3QgeGRwX2ZyYW1lICp4ZHBmID0gZnJhbWVzW2ldOwpAQCAtMTMy NiwyMCArMTM0OCwyOCBAQCBzdGF0aWMgaW50IHZpcnRuZXRfcmVjZWl2ZShzdHJ1Y3QgcmVjZWl2 ZV9xdWV1ZSAqcnEsIGludCBidWRnZXQsCiAJcmV0dXJuIHN0YXRzLnBhY2tldHM7CiB9CiAKLXN0 YXRpYyB2b2lkIGZyZWVfb2xkX3htaXRfc2ticyhzdHJ1Y3Qgc2VuZF9xdWV1ZSAqc3EpCitzdGF0 aWMgdm9pZCBmcmVlX29sZF94bWl0X3NrYnMoc3RydWN0IHNlbmRfcXVldWUgKnNxLCBib29sIGlu X25hcGkpCiB7Ci0Jc3RydWN0IHNrX2J1ZmYgKnNrYjsKIAl1bnNpZ25lZCBpbnQgbGVuOwogCXVu c2lnbmVkIGludCBwYWNrZXRzID0gMDsKIAl1bnNpZ25lZCBpbnQgYnl0ZXMgPSAwOworCXZvaWQg KnB0cjsKIAotCXdoaWxlICgoc2tiID0gdmlydHF1ZXVlX2dldF9idWYoc3EtPnZxLCAmbGVuKSkg IT0gTlVMTCkgewotCQlwcl9kZWJ1ZygiU2VudCBza2IgJXBcbiIsIHNrYik7CisJd2hpbGUgKChw dHIgPSB2aXJ0cXVldWVfZ2V0X2J1ZihzcS0+dnEsICZsZW4pKSAhPSBOVUxMKSB7CisJCWlmIChs aWtlbHkoIWlzX3hkcF9mcmFtZShwdHIpKSkgeworCQkJc3RydWN0IHNrX2J1ZmYgKnNrYiA9IHB0 cjsKIAotCQlieXRlcyArPSBza2ItPmxlbjsKLQkJcGFja2V0cysrOworCQkJcHJfZGVidWcoIlNl bnQgc2tiICVwXG4iLCBza2IpOwogCi0JCWRldl9jb25zdW1lX3NrYl9hbnkoc2tiKTsKKwkJCWJ5 dGVzICs9IHNrYi0+bGVuOworCQkJbmFwaV9jb25zdW1lX3NrYihza2IsIGluX25hcGkpOworCQl9 IGVsc2UgeworCQkJc3RydWN0IHhkcF9mcmFtZSAqZnJhbWUgPSBwdHJfdG9feGRwKHB0cik7CisK KwkJCWJ5dGVzICs9IGZyYW1lLT5sZW47CisJCQl4ZHBfcmV0dXJuX2ZyYW1lKGZyYW1lKTsKKwkJ fQorCQlwYWNrZXRzKys7CiAJfQogCiAJLyogQXZvaWQgb3ZlcmhlYWQgd2hlbiBubyBwYWNrZXRz IGhhdmUgYmVlbiBwcm9jZXNzZWQKQEAgLTEzNzUsNyArMTQwNSw3IEBAIHN0YXRpYyB2b2lkIHZp cnRuZXRfcG9sbF9jbGVhbnR4KHN0cnVjdCByZWNlaXZlX3F1ZXVlICpycSkKIAkJcmV0dXJuOwog CiAJaWYgKF9fbmV0aWZfdHhfdHJ5bG9jayh0eHEpKSB7Ci0JCWZyZWVfb2xkX3htaXRfc2ticyhz cSk7CisJCWZyZWVfb2xkX3htaXRfc2ticyhzcSwgdHJ1ZSk7CiAJCV9fbmV0aWZfdHhfdW5sb2Nr KHR4cSk7CiAJfQogCkBAIC0xNDU5LDcgKzE0ODksNyBAQCBzdGF0aWMgaW50IHZpcnRuZXRfcG9s bF90eChzdHJ1Y3QgbmFwaV9zdHJ1Y3QgKm5hcGksIGludCBidWRnZXQpCiAKIAl0eHEgPSBuZXRk ZXZfZ2V0X3R4X3F1ZXVlKHZpLT5kZXYsIGluZGV4KTsKIAlfX25ldGlmX3R4X2xvY2sodHhxLCBy YXdfc21wX3Byb2Nlc3Nvcl9pZCgpKTsKLQlmcmVlX29sZF94bWl0X3NrYnMoc3EpOworCWZyZWVf b2xkX3htaXRfc2ticyhzcSwgdHJ1ZSk7CiAJX19uZXRpZl90eF91bmxvY2sodHhxKTsKIAogCXZp cnRxdWV1ZV9uYXBpX2NvbXBsZXRlKG5hcGksIHNxLT52cSwgMCk7CkBAIC0xNTI4LDcgKzE1NTgs NyBAQCBzdGF0aWMgbmV0ZGV2X3R4X3Qgc3RhcnRfeG1pdChzdHJ1Y3Qgc2tfYnVmZiAqc2tiLCBz dHJ1Y3QgbmV0X2RldmljZSAqZGV2KQogCWJvb2wgdXNlX25hcGkgPSBzcS0+bmFwaS53ZWlnaHQ7 CiAKIAkvKiBGcmVlIHVwIGFueSBwZW5kaW5nIG9sZCBidWZmZXJzIGJlZm9yZSBxdWV1ZWluZyBu ZXcgb25lcy4gKi8KLQlmcmVlX29sZF94bWl0X3NrYnMoc3EpOworCWZyZWVfb2xkX3htaXRfc2ti cyhzcSwgZmFsc2UpOwogCiAJaWYgKHVzZV9uYXBpICYmIGtpY2spCiAJCXZpcnRxdWV1ZV9lbmFi bGVfY2JfZGVsYXllZChzcS0+dnEpOwpAQCAtMTU3MSw3ICsxNjAxLDcgQEAgc3RhdGljIG5ldGRl dl90eF90IHN0YXJ0X3htaXQoc3RydWN0IHNrX2J1ZmYgKnNrYiwgc3RydWN0IG5ldF9kZXZpY2Ug KmRldikKIAkJaWYgKCF1c2VfbmFwaSAmJgogCQkgICAgdW5saWtlbHkoIXZpcnRxdWV1ZV9lbmFi bGVfY2JfZGVsYXllZChzcS0+dnEpKSkgewogCQkJLyogTW9yZSBqdXN0IGdvdCB1c2VkLCBmcmVl IHRoZW0gdGhlbiByZWNoZWNrLiAqLwotCQkJZnJlZV9vbGRfeG1pdF9za2JzKHNxKTsKKwkJCWZy ZWVfb2xkX3htaXRfc2ticyhzcSwgZmFsc2UpOwogCQkJaWYgKHNxLT52cS0+bnVtX2ZyZWUgPj0g MitNQVhfU0tCX0ZSQUdTKSB7CiAJCQkJbmV0aWZfc3RhcnRfc3VicXVldWUoZGV2LCBxbnVtKTsK IAkJCQl2aXJ0cXVldWVfZGlzYWJsZV9jYihzcS0+dnEpOwpAQCAtMjYzOSwxMCArMjY2OSwxMCBA QCBzdGF0aWMgdm9pZCBmcmVlX3VudXNlZF9idWZzKHN0cnVjdCB2aXJ0bmV0X2luZm8gKnZpKQog CWZvciAoaSA9IDA7IGkgPCB2aS0+bWF4X3F1ZXVlX3BhaXJzOyBpKyspIHsKIAkJc3RydWN0IHZp cnRxdWV1ZSAqdnEgPSB2aS0+c3FbaV0udnE7CiAJCXdoaWxlICgoYnVmID0gdmlydHF1ZXVlX2Rl dGFjaF91bnVzZWRfYnVmKHZxKSkgIT0gTlVMTCkgewotCQkJaWYgKCFpc194ZHBfcmF3X2J1ZmZl cl9xdWV1ZSh2aSwgaSkpCisJCQlpZiAoIWlzX3hkcF9mcmFtZShidWYpKQogCQkJCWRldl9rZnJl ZV9za2IoYnVmKTsKIAkJCWVsc2UKLQkJCQl4ZHBfcmV0dXJuX2ZyYW1lKGJ1Zik7CisJCQkJeGRw X3JldHVybl9mcmFtZShwdHJfdG9feGRwKGJ1ZikpOwogCQl9CiAJfQogCi0tIAoyLjIwLjEKCgpG cm9tIGQ5ZWExMGE3MjgxYjkxZGRjYjZiNDNlMTllYjE3OWNmMWYzOTNmN2MgTW9uIFNlcCAxNyAw MDowMDowMCAyMDAxCkZyb206IERhdmlkIEFoZXJuIDxkc2FoZXJuQGdtYWlsLmNvbT4KRGF0ZTog V2VkLCAyIEphbiAyMDE5IDE4OjU3OjA5IC0wODAwClN1YmplY3Q6IFtQQVRDSCAzMy8zM10gaXB2 NjogQ29uc2lkZXIgc2tfYm91bmRfZGV2X2lmIHdoZW4gYmluZGluZyBhIHNvY2tldCB0bwogYW4g YWRkcmVzcwoKWyBVcHN0cmVhbSBjb21taXQgYzVlZTA2NjMzM2ViYzMyMmEyNGEwMGE3NDNlZDk0 MWEwYzY4NjE3ZSBdCgpJUHY2IGRvZXMgbm90IGNvbnNpZGVyIGlmIHRoZSBzb2NrZXQgaXMgYm91 bmQgdG8gYSBkZXZpY2Ugd2hlbiBiaW5kaW5nCnRvIGFuIGFkZHJlc3MuIFRoZSByZXN1bHQgaXMg dGhhdCBhIHNvY2tldCBjYW4gYmUgYm91bmQgdG8gZXRoMCBhbmQgdGhlbgpib3VuZCB0byB0aGUg YWRkcmVzcyBvZiBldGgxLiBJZiB0aGUgZGV2aWNlIGlzIGEgVlJGLCB0aGUgcmVzdWx0IGlzIHRo YXQKYSBzb2NrZXQgY2FuIG9ubHkgYmUgYm91bmQgdG8gYW4gYWRkcmVzcyBpbiB0aGUgZGVmYXVs dCBWUkYuCgpSZXNvbHZlIGJ5IGNvbnNpZGVyaW5nIHRoZSBkZXZpY2UgaWYgc2tfYm91bmRfZGV2 X2lmIGlzIHNldC4KClRoaXMgcHJvYmxlbSBleGlzdHMgZnJvbSB0aGUgYmVnaW5uaW5nIG9mIGdp dCBoaXN0b3J5LgoKU2lnbmVkLW9mZi1ieTogRGF2aWQgQWhlcm4gPGRzYWhlcm5AZ21haWwuY29t PgpTaWduZWQtb2ZmLWJ5OiBEYXZpZCBTLiBNaWxsZXIgPGRhdmVtQGRhdmVtbG9mdC5uZXQ+Ci0t LQogbmV0L2lwdjYvYWZfaW5ldDYuYyB8IDMgKysrCiAxIGZpbGUgY2hhbmdlZCwgMyBpbnNlcnRp b25zKCspCgpkaWZmIC0tZ2l0IGEvbmV0L2lwdjYvYWZfaW5ldDYuYyBiL25ldC9pcHY2L2FmX2lu ZXQ2LmMKaW5kZXggNGRjOTM1ODM4MTg0Li5kOTk3NTNiNWUzOWIgMTAwNjQ0Ci0tLSBhL25ldC9p cHY2L2FmX2luZXQ2LmMKKysrIGIvbmV0L2lwdjYvYWZfaW5ldDYuYwpAQCAtMzYyLDYgKzM2Miw5 IEBAIHN0YXRpYyBpbnQgX19pbmV0Nl9iaW5kKHN0cnVjdCBzb2NrICpzaywgc3RydWN0IHNvY2th ZGRyICp1YWRkciwgaW50IGFkZHJfbGVuLAogCQkJCQllcnIgPSAtRUlOVkFMOwogCQkJCQlnb3Rv IG91dF91bmxvY2s7CiAJCQkJfQorCQkJfQorCisJCQlpZiAoc2stPnNrX2JvdW5kX2Rldl9pZikg ewogCQkJCWRldiA9IGRldl9nZXRfYnlfaW5kZXhfcmN1KG5ldCwgc2stPnNrX2JvdW5kX2Rldl9p Zik7CiAJCQkJaWYgKCFkZXYpIHsKIAkJCQkJZXJyID0gLUVOT0RFVjsKLS0gCjIuMjAuMQoK ----Next_Part(Fri_Feb__1_13_45_13_2019_877)----