From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from shards.monkeyblade.net ([149.20.54.216]:44789 "EHLO shards.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1752884AbbFJDBI (ORCPT ); Tue, 9 Jun 2015 23:01:08 -0400 Received: from localhost (74-93-104-98-Washington.hfc.comcastbusiness.net [74.93.104.98]) (Authenticated sender: davem-davemloft) by shards.monkeyblade.net (Postfix) with ESMTPSA id 02B1D590ADC for ; Tue, 9 Jun 2015 20:01:05 -0700 (PDT) Date: Tue, 09 Jun 2015 20:01:04 -0700 (PDT) Message-Id: <20150609.200104.1734731282833063783.davem@davemloft.net> To: stable@vger.kernel.org Subject: [PATCHES] Networking From: David Miller Mime-Version: 1.0 Content-Type: Multipart/Mixed; boundary="--Next_Part(Tue_Jun__9_20_01_04_2015_064)--" Content-Transfer-Encoding: 7bit Sender: stable-owner@vger.kernel.org List-ID: ----Next_Part(Tue_Jun__9_20_01_04_2015_064)-- Content-Type: Text/Plain; charset=us-ascii Content-Transfer-Encoding: 7bit Please queue up the following networking bug fixes for 3.12.x, 3.14.x, 3.18.x, and 4.0.x -stable, respectively. Thanks a lot! ----Next_Part(Tue_Jun__9_20_01_04_2015_064)-- Content-Type: Application/Octet-Stream Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="net_312.mbox" RnJvbSBiOTYyYTliZGE4ZDYyZjA1NWJkMDlhZmE3MGMwNzQ3YjYwNGMxNTdmIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBBbGV4ZWkgU3Rhcm92b2l0b3YgPGFzdEBwbHVtZ3JpZC5jb20+ CkRhdGU6IEZyaSwgMjIgTWF5IDIwMTUgMTU6NDI6NTUgLTA3MDAKU3ViamVjdDogW1BBVENIIDEv OF0geDg2OiBicGZfaml0OiBmaXggY29tcGlsYXRpb24gb2YgbGFyZ2UgYnBmIHByb2dyYW1zCgpb IFVwc3RyZWFtIGNvbW1pdCAzZjczNTJiZjIxZjhmZDdiYTNlMmZjZWY5NDg4NzU2ZjE4OGUxMmJl IF0KCng4NiBoYXMgdmFyaWFibGUgbGVuZ3RoIGVuY29kaW5nLiB4ODYgSklUIGNvbXBpbGVyIGlz IHRyeWluZwp0byBwaWNrIHRoZSBzaG9ydGVzdCBlbmNvZGluZyBmb3IgZ2l2ZW4gYnBmIGluc3Ry dWN0aW9uLgpXaGlsZSBkb2luZyBzbyB0aGUganVtcCB0YXJnZXRzIGFyZSBjaGFuZ2luZywgc28g SklUIGlzIGRvaW5nCm11bHRpcGxlIHBhc3NlcyBvdmVyIHRoZSBwcm9ncmFtLiBUeXBpY2FsIHBy b2dyYW0gbmVlZHMgMyBwYXNzZXMuClNvbWUgdmVyeSBzaG9ydCBwcm9ncmFtcyBjb252ZXJnZSB3 aXRoIDIgcGFzc2VzLiBMYXJnZSBwcm9ncmFtcwptYXkgbmVlZCA0IG9yIDUuIEJ1dCBzcGVjaWFs bHkgY3JhZnRlZCBicGYgcHJvZ3JhbXMgbWF5IGhpdCB0aGUKcGFzcyBsaW1pdCBhbmQgaWYgdGhl IHByb2dyYW0gY29udmVyZ2VzIG9uIHRoZSBsYXN0IGl0ZXJhdGlvbgp0aGUgSklUIGNvbXBpbGVy IHdpbGwgYmUgcHJvZHVjaW5nIGFuIGltYWdlIGZ1bGwgb2YgJ2ludCAzJyBpbnNucy4KRml4IHRo aXMgY29ybmVyIGNhc2UgYnkgZG9pbmcgZmluYWwgaXRlcmF0aW9uIG92ZXIgYnBmIHByb2dyYW0u CgpGaXhlczogMGExNDg0MmY1YTNjICgibmV0OiBmaWx0ZXI6IEp1c3QgSW4gVGltZSBjb21waWxl ciBmb3IgeDg2LTY0IikKUmVwb3J0ZWQtYnk6IERhbmllbCBCb3JrbWFubiA8ZGFuaWVsQGlvZ2Vh cmJveC5uZXQ+ClNpZ25lZC1vZmYtYnk6IEFsZXhlaSBTdGFyb3ZvaXRvdiA8YXN0QHBsdW1ncmlk LmNvbT4KVGVzdGVkLWJ5OiBEYW5pZWwgQm9ya21hbm4gPGRhbmllbEBpb2dlYXJib3gubmV0PgpB Y2tlZC1ieTogRGFuaWVsIEJvcmttYW5uIDxkYW5pZWxAaW9nZWFyYm94Lm5ldD4KU2lnbmVkLW9m Zi1ieTogRGF2aWQgUy4gTWlsbGVyIDxkYXZlbUBkYXZlbWxvZnQubmV0PgotLS0KIGFyY2gveDg2 L25ldC9icGZfaml0X2NvbXAuYyB8IDcgKysrKysrLQogMSBmaWxlIGNoYW5nZWQsIDYgaW5zZXJ0 aW9ucygrKSwgMSBkZWxldGlvbigtKQoKZGlmZiAtLWdpdCBhL2FyY2gveDg2L25ldC9icGZfaml0 X2NvbXAuYyBiL2FyY2gveDg2L25ldC9icGZfaml0X2NvbXAuYwppbmRleCA0ZWQ3NWRkLi4xYjcy MDAwIDEwMDY0NAotLS0gYS9hcmNoL3g4Ni9uZXQvYnBmX2ppdF9jb21wLmMKKysrIGIvYXJjaC94 ODYvbmV0L2JwZl9qaXRfY29tcC5jCkBAIC0yMTEsNyArMjExLDEyIEBAIHZvaWQgYnBmX2ppdF9j b21waWxlKHN0cnVjdCBza19maWx0ZXIgKmZwKQogCX0KIAljbGVhbnVwX2FkZHIgPSBwcm9nbGVu OyAvKiBlcGlsb2d1ZSBhZGRyZXNzICovCiAKLQlmb3IgKHBhc3MgPSAwOyBwYXNzIDwgMTA7IHBh c3MrKykgeworCS8qIEpJVGVkIGltYWdlIHNocmlua3Mgd2l0aCBldmVyeSBwYXNzIGFuZCB0aGUg bG9vcCBpdGVyYXRlcworCSAqIHVudGlsIHRoZSBpbWFnZSBzdG9wcyBzaHJpbmtpbmcuIFZlcnkg bGFyZ2UgYnBmIHByb2dyYW1zCisJICogbWF5IGNvbnZlcmdlIG9uIHRoZSBsYXN0IHBhc3MuIElu IHN1Y2ggY2FzZSBkbyBvbmUgbW9yZQorCSAqIHBhc3MgdG8gZW1pdCB0aGUgZmluYWwgaW1hZ2UK KwkgKi8KKwlmb3IgKHBhc3MgPSAwOyBwYXNzIDwgMTAgfHwgaW1hZ2U7IHBhc3MrKykgewogCQl1 OCBzZWVuX29yX3Bhc3MwID0gKHBhc3MgPT0gMCkgPyAoU0VFTl9YUkVHIHwgU0VFTl9EQVRBUkVG IHwgU0VFTl9NRU0pIDogc2VlbjsKIAkJLyogbm8gcHJvbG9ndWUvZXBpbG9ndWUgZm9yIHRyaXZp YWwgZmlsdGVycyAoUkVUIHNvbWV0aGluZykgKi8KIAkJcHJvZ2xlbiA9IDA7Ci0tIAoyLjEuMAoK CkZyb20gNGRkYTg5ZmY0MmMwYzZkOThhODkzY2FhNDEyZGNlOWQ3M2RlYjlhZSBNb24gU2VwIDE3 IDAwOjAwOjAwIDIwMDEKRnJvbTogIkVyaWMgVy4gQmllZGVybWFuIiA8ZWJpZWRlcm1AeG1pc3Np b24uY29tPgpEYXRlOiBGcmksIDIyIE1heSAyMDE1IDA0OjU4OjEyIC0wNTAwClN1YmplY3Q6IFtQ QVRDSCAyLzhdIGlwdjQ6IEF2b2lkIGNyYXNoaW5nIGluIGlwX2Vycm9yCgpbIFVwc3RyZWFtIGNv bW1pdCAzODFjNzU5ZDk5MTZjNDI5NTk1MTVhZDM0YTZkNDY3ZTI0YTg4ZTkzIF0KCmlwX2Vycm9y IGRvZXMgbm90IGNoZWNrIGlmIGluX2RldiBpcyBOVUxMIGJlZm9yZSBkZXJlZmVyZW5jaW5nIGl0 LgoKSVRoZSBmb2xsb3dpbmcgc2VxdWVuY2Ugb2YgY2FsbHMgaXMgcG9zc2libGU6CkNQVSBBICAg ICAgICAgICAgICAgICAgICAgICAgICBDUFUgQgppcF9yY3ZfZmluaXNoCiAgICBpcF9yb3V0ZV9p bnB1dF9ub3JlZigpCiAgICAgICAgaXBfcm91dGVfaW5wdXRfc2xvdygpCiAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICBpbmV0ZGV2X2Rlc3Ryb3koKQogICAgZHN0X2lucHV0KCkKCldpdGgg dGhlIHJlc3VsdCB0aGF0IGEgbmV0d29yayBkZXZpY2UgY2FuIGJlIGRlc3Ryb3llZCB3aGlsZSBw cm9jZXNzaW5nCmFuIGlucHV0IHBhY2tldC4KCkEgY3Jhc2ggd2FzIHRyaWdnZXJlZCB3aXRoIG9u bHkgdW5pY2FzdCBwYWNrZXRzIGluIGZsaWdodCwgYW5kCmZvcndhcmRpbmcgZW5hYmxlZCBvbiB0 aGUgb25seSBuZXR3b3JrIGRldmljZS4gICBUaGUgZXJyb3IgY29uZGl0aW9uCndhcyBjcmVhdGVk IGJ5IHRoZSByZW1vdmFsIG9mIHRoZSBuZXR3b3JrIGRldmljZS4KCkFzIHN1Y2ggaXQgaXMgbGlr ZWx5IHRoZSB0aGF0IGVycm9yIGNvZGUgd2FzIC1FSE9TVFVOUkVBQ0gsIGFuZCB0aGUKYWN0aW9u IHRha2VuIGJ5IGlwX2Vycm9yIChpZiBpbl9kZXYgaGFkIGJlZW4gYWNjZXNzaWJsZSkgd291bGQg aGF2ZQpiZWVuIHRvIG5vdCBpbmNyZW1lbnQgYW55IGNvdW50ZXJzIGFuZCB0byBoYXZlIHRyaWVk IGFuZCBsaWtlbHkgZmFpbGVkCnRvIHNlbmQgYW4gaWNtcCBlcnJvciBhcyB0aGUgbmV0d29yayBk ZXZpY2UgaXMgZ29pbmcgYXdheS4KClRoZXJlZm9yZSBoYW5kbGUgdGhpcyB3ZWlyZCBjYXNlIGJ5 IGp1c3QgZHJvcHBpbmcgdGhlIHBhY2tldCBpZgohaW5fZGV2LiAgSXQgd2lsbCByZXN1bHQgaW4g ZHJvcHBpbmcgdGhlIHBhY2tldCBzb29uZXIsIGFuZCB3aWxsIG5vdApyZXN1bHQgaW4gYW4gYWN0 dWFsIGNoYW5nZSBvZiBiZWhhdmlvci4KCkZpeGVzOiAyNTFkYTQxMzAxMTViICgiaXB2NDogQ2Fj aGUgaXBfZXJyb3IoKSByb3V0ZXMgZXZlbiB3aGVuIG5vdCBmb3J3YXJkaW5nLiIpClJlcG9ydGVk LWJ5OiBWaXR0b3JpbyBHYW1iYWxldHRhIDxsaW51eGJ1Z3NAdml0dGdhbS5uZXQ+ClRlc3RlZC1i eTogVml0dG9yaW8gR2FtYmFsZXR0YSA8bGludXhidWdzQHZpdHRnYW0ubmV0PgpTaWduZWQtb2Zm LWJ5OiBWaXR0b3JpbyBHYW1iYWxldHRhIDxsaW51eGJ1Z3NAdml0dGdhbS5uZXQ+ClNpZ25lZC1v ZmYtYnk6ICJFcmljIFcuIEJpZWRlcm1hbiIgPGViaWVkZXJtQHhtaXNzaW9uLmNvbT4KQWNrZWQt Ynk6IEVyaWMgRHVtYXpldCA8ZWR1bWF6ZXRAZ29vZ2xlLmNvbT4KU2lnbmVkLW9mZi1ieTogRGF2 aWQgUy4gTWlsbGVyIDxkYXZlbUBkYXZlbWxvZnQubmV0PgotLS0KIG5ldC9pcHY0L3JvdXRlLmMg fCA0ICsrKysKIDEgZmlsZSBjaGFuZ2VkLCA0IGluc2VydGlvbnMoKykKCmRpZmYgLS1naXQgYS9u ZXQvaXB2NC9yb3V0ZS5jIGIvbmV0L2lwdjQvcm91dGUuYwppbmRleCAzNjYzMjAwLi5iZDVmMzQ2 IDEwMDY0NAotLS0gYS9uZXQvaXB2NC9yb3V0ZS5jCisrKyBiL25ldC9pcHY0L3JvdXRlLmMKQEAg LTkyMSw2ICs5MjEsMTAgQEAgc3RhdGljIGludCBpcF9lcnJvcihzdHJ1Y3Qgc2tfYnVmZiAqc2ti KQogCWJvb2wgc2VuZDsKIAlpbnQgY29kZTsKIAorCS8qIElQIG9uIHRoaXMgZGV2aWNlIGlzIGRp c2FibGVkLiAqLworCWlmICghaW5fZGV2KQorCQlnb3RvIG91dDsKKwogCW5ldCA9IGRldl9uZXQo cnQtPmRzdC5kZXYpOwogCWlmICghSU5fREVWX0ZPUldBUkQoaW5fZGV2KSkgewogCQlzd2l0Y2gg KHJ0LT5kc3QuZXJyb3IpIHsKLS0gCjIuMS4wCgoKRnJvbSA2ZDUzNjFjZTBjMDk4MGQ5MzI5OGQ0 NGVkNzkxNmJiZTllNjk1M2I1IE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBUaGFkZXUg TGltYSBkZSBTb3V6YSBDYXNjYXJkbyA8Y2FzY2FyZG9AcmVkaGF0LmNvbT4KRGF0ZTogRnJpLCAy MiBNYXkgMjAxNSAxMjoxODo1OSAtMDMwMApTdWJqZWN0OiBbUEFUQ0ggMy84XSBicmlkZ2U6IGZp eCBwYXJzaW5nIG9mIE1MRHYyIHJlcG9ydHMKClsgVXBzdHJlYW0gY29tbWl0IDQ3Y2M4NGNlMGMy ZmU3NWM5OWVhNTk2M2M0YjU3MDRkZDc4ZWFkNTQgXQoKV2hlbiBtb3JlIHRoYW4gYSBtdWx0aWNh c3QgYWRkcmVzcyBpcyBwcmVzZW50IGluIGEgTUxEdjIgcmVwb3J0LCBhbGwgYnV0CnRoZSBmaXJz dCBhZGRyZXNzIGlzIGlnbm9yZWQsIGJlY2F1c2UgdGhlIGNvZGUgYnJlYWtzIG91dCBvZiB0aGUg bG9vcCBpZgp0aGVyZSBoYXMgbm90IGJlZW4gYW4gZXJyb3IgYWRkaW5nIHRoYXQgYWRkcmVzcy4K ClRoaXMgaGFzIGNhdXNlZCBmYWlsdXJlcyB3aGVuIHR3byBndWVzdHMgY29ubmVjdGVkIHRocm91 Z2ggdGhlIGJyaWRnZQp0cmllZCB0byBjb21tdW5pY2F0ZSB1c2luZyBJUHY2LiBOZWlnaGJvciBk aXNjb3ZlcmllcyB3b3VsZCBub3QgYmUKdHJhbnNtaXR0ZWQgdG8gdGhlIG90aGVyIGd1ZXN0IHdo ZW4gYm90aCB1c2VkIGEgbGluay1sb2NhbCBhZGRyZXNzIGFuZCBhCnN0YXRpYyBhZGRyZXNzLgoK VGhpcyBvbmx5IGhhcHBlbnMgd2hlbiB0aGVyZSBpcyBhIE1MRHYyIHF1ZXJpZXIgaW4gdGhlIG5l dHdvcmsuCgpUaGUgZml4IHdpbGwgb25seSBicmVhayBvdXQgb2YgdGhlIGxvb3Agd2hlbiB0aGVy ZSBpcyBhIGZhaWx1cmUgYWRkaW5nIGEKbXVsdGljYXN0IGFkZHJlc3MuCgpUaGUgbWRiIGJlZm9y ZSB0aGUgcGF0Y2g6CgpkZXYgb3ZpcnRtZ210IHBvcnQgdm5ldDAgZ3JwIGZmMDI6OjE6ZmY3ZDo2 NjAzIHRlbXAKZGV2IG92aXJ0bWdtdCBwb3J0IHZuZXQxIGdycCBmZjAyOjoxOmZmN2Q6NjYwNCB0 ZW1wCmRldiBvdmlydG1nbXQgcG9ydCBib25kMC44NiBncnAgZmYwMjo6MiB0ZW1wCgpBZnRlciB0 aGUgcGF0Y2g6CgpkZXYgb3ZpcnRtZ210IHBvcnQgdm5ldDAgZ3JwIGZmMDI6OjE6ZmY3ZDo2NjAz IHRlbXAKZGV2IG92aXJ0bWdtdCBwb3J0IHZuZXQxIGdycCBmZjAyOjoxOmZmN2Q6NjYwNCB0ZW1w CmRldiBvdmlydG1nbXQgcG9ydCBib25kMC44NiBncnAgZmYwMjo6ZmIgdGVtcApkZXYgb3ZpcnRt Z210IHBvcnQgYm9uZDAuODYgZ3JwIGZmMDI6OjIgdGVtcApkZXYgb3ZpcnRtZ210IHBvcnQgYm9u ZDAuODYgZ3JwIGZmMDI6OmQgdGVtcApkZXYgb3ZpcnRtZ210IHBvcnQgdm5ldDAgZ3JwIGZmMDI6 OjE6ZmYwMDo3NiB0ZW1wCmRldiBvdmlydG1nbXQgcG9ydCBib25kMC44NiBncnAgZmYwMjo6MTYg dGVtcApkZXYgb3ZpcnRtZ210IHBvcnQgdm5ldDEgZ3JwIGZmMDI6OjE6ZmYwMDo3NyB0ZW1wCmRl diBvdmlydG1nbXQgcG9ydCBib25kMC44NiBncnAgZmYwMjo6MTpmZjAwOmRlZiB0ZW1wCmRldiBv dmlydG1nbXQgcG9ydCBib25kMC44NiBncnAgZmYwMjo6MTpmZmExOjQwYmYgdGVtcAoKRml4ZXM6 IDA4YjIwMmI2NzI2NCAoImJyaWRnZSBicl9tdWx0aWNhc3Q6IElQdjYgTUxEIHN1cHBvcnQuIikK UmVwb3J0ZWQtYnk6IFJpayBUaGV5cyA8UmlrLlRoZXlzQGVzYXQua3VsZXV2ZW4uYmU+ClNpZ25l ZC1vZmYtYnk6IFRoYWRldSBMaW1hIGRlIFNvdXphIENhc2NhcmRvIDxjYXNjYXJkb0ByZWRoYXQu Y29tPgpUZXN0ZWQtYnk6IFJpayBUaGV5cyA8UmlrLlRoZXlzQGVzYXQua3VsZXV2ZW4uYmU+ClNp Z25lZC1vZmYtYnk6IERhdmlkIFMuIE1pbGxlciA8ZGF2ZW1AZGF2ZW1sb2Z0Lm5ldD4KLS0tCiBu ZXQvYnJpZGdlL2JyX211bHRpY2FzdC5jIHwgMiArLQogMSBmaWxlIGNoYW5nZWQsIDEgaW5zZXJ0 aW9uKCspLCAxIGRlbGV0aW9uKC0pCgpkaWZmIC0tZ2l0IGEvbmV0L2JyaWRnZS9icl9tdWx0aWNh c3QuYyBiL25ldC9icmlkZ2UvYnJfbXVsdGljYXN0LmMKaW5kZXggMTYyZDZjNy4uYjExNzM2YSAx MDA2NDQKLS0tIGEvbmV0L2JyaWRnZS9icl9tdWx0aWNhc3QuYworKysgYi9uZXQvYnJpZGdlL2Jy X211bHRpY2FzdC5jCkBAIC0xMDU4LDcgKzEwNTgsNyBAQCBzdGF0aWMgaW50IGJyX2lwNl9tdWx0 aWNhc3RfbWxkMl9yZXBvcnQoc3RydWN0IG5ldF9icmlkZ2UgKmJyLAogCiAJCWVyciA9IGJyX2lw Nl9tdWx0aWNhc3RfYWRkX2dyb3VwKGJyLCBwb3J0LCAmZ3JlYy0+Z3JlY19tY2EsCiAJCQkJCQkg dmlkKTsKLQkJaWYgKCFlcnIpCisJCWlmIChlcnIpCiAJCQlicmVhazsKIAl9CiAKLS0gCjIuMS4w CgoKRnJvbSAxNGE1ZjY4OTFhZTVjMWNmYTE5MWQ5MjVjODc3YTY2YWY3NmQ5NjRiIE1vbiBTZXAg MTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBSaWNoYXJkIENvY2hyYW4gPHJpY2hhcmRjb2NocmFuQGdt YWlsLmNvbT4KRGF0ZTogTW9uLCAyNSBNYXkgMjAxNSAxMTo1NTo0MyArMDIwMApTdWJqZWN0OiBb UEFUQ0ggNC84XSBuZXQ6IGRwODM2NDA6IGZpeCBicm9rZW4gY2FsaWJyYXRpb24gcm91dGluZS4K ClsgVXBzdHJlYW0gY29tbWl0IDM5N2EyNTNhZjUwMzFkZTRhNDYxMjIxMDA1NTkzNTMwOWFmNDQ3 MmMgXQoKQ3VycmVudGx5LCB0aGUgY2FsaWJyYXRpb24gZnVuY3Rpb24gdGhhdCBjb3JyZWN0cyB0 aGUgaW5pdGlhbCBvZmZzZXRzCmFtb25nIG11bHRpcGxlIGRldmljZXMgb25seSB3b3JrcyB0aGUg Zmlyc3QgdGltZS4gIElmIHRoZSBmdW5jdGlvbiBpcwpjYWxsZWQgbW9yZSB0aGFuIG9uY2UsIHRo ZSBjYWxpYnJhdGlvbiBmYWlscyBhbmQgYm9ndXMgb2Zmc2V0cyB3aWxsIGJlCnByb2dyYW1tZWQg aW50byB0aGUgZGV2aWNlcy4KCkluIGEgd2VsbCBoaWRkZW4gc3BvdCwgdGhlIGRldmljZSBkb2N1 bWVudGF0aW9uIHRlbGxzIHRoYXQgdHJpZ2dlciBpbmRleGVzCjAgYW5kIDEgYXJlIHNwZWNpYWwg aW4gYWxsb3dpbmcgdGhlIFRSSUdfSUZfTEFURSBmbGFnIHRvIGFjdHVhbGx5IHdvcmsuCgpUaGlz IHBhdGNoIGZpeGVzIHRoZSBpc3N1ZSBieSB1c2luZyBvbmUgb2YgdGhlIHNwZWNpYWwgdHJpZ2dl cnMgZHVyaW5nIHRoZQpyZWNhbGlicmF0aW9uIG1ldGhvZC4KClNpZ25lZC1vZmYtYnk6IFJpY2hh cmQgQ29jaHJhbiA8cmljaGFyZGNvY2hyYW5AZ21haWwuY29tPgpTaWduZWQtb2ZmLWJ5OiBEYXZp ZCBTLiBNaWxsZXIgPGRhdmVtQGRhdmVtbG9mdC5uZXQ+Ci0tLQogZHJpdmVycy9uZXQvcGh5L2Rw ODM2NDAuYyB8IDIgKy0KIDEgZmlsZSBjaGFuZ2VkLCAxIGluc2VydGlvbigrKSwgMSBkZWxldGlv bigtKQoKZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L3BoeS9kcDgzNjQwLmMgYi9kcml2ZXJzL25l dC9waHkvZHA4MzY0MC5jCmluZGV4IDc0OTBiNmMuLmQyOTA3YTYgMTAwNjQ0Ci0tLSBhL2RyaXZl cnMvbmV0L3BoeS9kcDgzNjQwLmMKKysrIGIvZHJpdmVycy9uZXQvcGh5L2RwODM2NDAuYwpAQCAt NDUsNyArNDUsNyBAQAogI2RlZmluZSBQU0ZfVFgJCTB4MTAwMAogI2RlZmluZSBFWFRfRVZFTlQJ MQogI2RlZmluZSBDQUxfRVZFTlQJNwotI2RlZmluZSBDQUxfVFJJR0dFUgk3CisjZGVmaW5lIENB TF9UUklHR0VSCTEKICNkZWZpbmUgUEVSX1RSSUdHRVIJNgogCiAjZGVmaW5lIE1JSV9EUDgzNjQw X01JQ1IgMHgxMQotLSAKMi4xLjAKCgpGcm9tIDkwZDViYTBhYmFjMzA3ZjlmN2Q3ODA0Y2RkNjQ4 YjIzOWQ0ZWNiZjQgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCkZyb206IE1hcmsgU2FseXp5biA8 c2FseXp5bkBhbmRyb2lkLmNvbT4KRGF0ZTogVHVlLCAyNiBNYXkgMjAxNSAwODoyMjoxOSAtMDcw MApTdWJqZWN0OiBbUEFUQ0ggNS84XSB1bml4L2NhaWY6IHNrX3NvY2tldCBjYW4gZGlzYXBwZWFy IHdoZW4gc3RhdGUgaXMgdW5sb2NrZWQKClsgVXBzdHJlYW0gY29tbWl0IGI0ODczMmU0YTQ4ZDgw ZWQ0YTE0ODEyZjBiYWIwOTU2MDg0NjUxNGUgXQoKZ290IGEgcmFyZSBOVUxMIHBvaW50ZXIgZGVy ZWZlcmVuY2UgaW4gY2xlYXJfYml0CgpTaWduZWQtb2ZmLWJ5OiBNYXJrIFNhbHl6eW4gPHNhbHl6 eW5AYW5kcm9pZC5jb20+CkFja2VkLWJ5OiBIYW5uZXMgRnJlZGVyaWMgU293YSA8aGFubmVzQHN0 cmVzc2luZHVrdGlvbi5vcmc+Ci0tLS0KdjI6IHN3aXRjaCB0byBzb2NrX2ZsYWcoc2ssIFNPQ0tf REVBRCkgYW5kIGFkZGVkIG5ldC9jYWlmL2NhaWZfc29ja2V0LmMKdjM6IHJldHVybiAtRUNPTk5S RVNFVCBpbiB1cHN0cmVhbSBjYWxsZXIgb2Ygd2FpdCBmdW5jdGlvbiBmb3IgU09DS19ERUFEClNp Z25lZC1vZmYtYnk6IERhdmlkIFMuIE1pbGxlciA8ZGF2ZW1AZGF2ZW1sb2Z0Lm5ldD4KLS0tCiBu ZXQvY2FpZi9jYWlmX3NvY2tldC5jIHwgOCArKysrKysrKwogbmV0L3VuaXgvYWZfdW5peC5jICAg ICB8IDggKysrKysrKysKIDIgZmlsZXMgY2hhbmdlZCwgMTYgaW5zZXJ0aW9ucygrKQoKZGlmZiAt LWdpdCBhL25ldC9jYWlmL2NhaWZfc29ja2V0LmMgYi9uZXQvY2FpZi9jYWlmX3NvY2tldC5jCmlu ZGV4IDUyNmJmNTYuLmFmZWI4ZTAgMTAwNjQ0Ci0tLSBhL25ldC9jYWlmL2NhaWZfc29ja2V0LmMK KysrIGIvbmV0L2NhaWYvY2FpZl9zb2NrZXQuYwpAQCAtMzMyLDYgKzMzMiwxMCBAQCBzdGF0aWMg bG9uZyBjYWlmX3N0cmVhbV9kYXRhX3dhaXQoc3RydWN0IHNvY2sgKnNrLCBsb25nIHRpbWVvKQog CQlyZWxlYXNlX3NvY2soc2spOwogCQl0aW1lbyA9IHNjaGVkdWxlX3RpbWVvdXQodGltZW8pOwog CQlsb2NrX3NvY2soc2spOworCisJCWlmIChzb2NrX2ZsYWcoc2ssIFNPQ0tfREVBRCkpCisJCQli cmVhazsKKwogCQljbGVhcl9iaXQoU09DS19BU1lOQ19XQUlUREFUQSwgJnNrLT5za19zb2NrZXQt PmZsYWdzKTsKIAl9CiAKQEAgLTM3Niw2ICszODAsMTAgQEAgc3RhdGljIGludCBjYWlmX3N0cmVh bV9yZWN2bXNnKHN0cnVjdCBraW9jYiAqaW9jYiwgc3RydWN0IHNvY2tldCAqc29jaywKIAkJc3Ry dWN0IHNrX2J1ZmYgKnNrYjsKIAogCQlsb2NrX3NvY2soc2spOworCQlpZiAoc29ja19mbGFnKHNr LCBTT0NLX0RFQUQpKSB7CisJCQllcnIgPSAtRUNPTk5SRVNFVDsKKwkJCWdvdG8gdW5sb2NrOwor CQl9CiAJCXNrYiA9IHNrYl9kZXF1ZXVlKCZzay0+c2tfcmVjZWl2ZV9xdWV1ZSk7CiAJCWNhaWZf Y2hlY2tfZmxvd19yZWxlYXNlKHNrKTsKIApkaWZmIC0tZ2l0IGEvbmV0L3VuaXgvYWZfdW5peC5j IGIvbmV0L3VuaXgvYWZfdW5peC5jCmluZGV4IGMzOTc1YmMuLjlhZmEzNjIgMTAwNjQ0Ci0tLSBh L25ldC91bml4L2FmX3VuaXguYworKysgYi9uZXQvdW5peC9hZl91bml4LmMKQEAgLTE4OTEsNiAr MTg5MSwxMCBAQCBzdGF0aWMgbG9uZyB1bml4X3N0cmVhbV9kYXRhX3dhaXQoc3RydWN0IHNvY2sg KnNrLCBsb25nIHRpbWVvLAogCQl1bml4X3N0YXRlX3VubG9jayhzayk7CiAJCXRpbWVvID0gZnJl ZXphYmxlX3NjaGVkdWxlX3RpbWVvdXQodGltZW8pOwogCQl1bml4X3N0YXRlX2xvY2soc2spOwor CisJCWlmIChzb2NrX2ZsYWcoc2ssIFNPQ0tfREVBRCkpCisJCQlicmVhazsKKwogCQljbGVhcl9i aXQoU09DS19BU1lOQ19XQUlUREFUQSwgJnNrLT5za19zb2NrZXQtPmZsYWdzKTsKIAl9CiAKQEAg LTE5NTUsNiArMTk1OSwxMCBAQCBzdGF0aWMgaW50IHVuaXhfc3RyZWFtX3JlY3Ztc2coc3RydWN0 IGtpb2NiICppb2NiLCBzdHJ1Y3Qgc29ja2V0ICpzb2NrLAogCQlzdHJ1Y3Qgc2tfYnVmZiAqc2ti LCAqbGFzdDsKIAogCQl1bml4X3N0YXRlX2xvY2soc2spOworCQlpZiAoc29ja19mbGFnKHNrLCBT T0NLX0RFQUQpKSB7CisJCQllcnIgPSAtRUNPTk5SRVNFVDsKKwkJCWdvdG8gdW5sb2NrOworCQl9 CiAJCWxhc3QgPSBza2IgPSBza2JfcGVlaygmc2stPnNrX3JlY2VpdmVfcXVldWUpOwogYWdhaW46 CiAJCWlmIChza2IgPT0gTlVMTCkgewotLSAKMi4xLjAKCgpGcm9tIDk4ZTJhNzVjYjZlMDgxZTZm MDA3N2RkYTc5MjFjNTg0NjExYTA2ZjUgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCkZyb206IFdB TkcgQ29uZyA8eGl5b3Uud2FuZ2NvbmdAZ21haWwuY29tPgpEYXRlOiBUdWUsIDI2IE1heSAyMDE1 IDE2OjA4OjQ4IC0wNzAwClN1YmplY3Q6IFtQQVRDSCA2LzhdIG5ldF9zY2hlZDogaW52b2tlIC0+ YXR0YWNoKCkgYWZ0ZXIgc2V0dGluZyBkZXYtPnFkaXNjCgpbIFVwc3RyZWFtIGNvbW1pdCA4NmUz NjNkYzNiNTBiZmQ1MGExZjMxNTkzNDU4M2ZiZGE2NzNhYjhkIF0KCkZvciBtcSBxZGlzYywgd2Ug YWRkIHBlciB0eCBxdWV1ZSBxZGlzYyB0byByb290IHFkaXNjCmZvciBkaXNwbGF5IHB1cnBvc2Us IGhvd2V2ZXIsIHRoYXQgaGFwcGVucyB0b28gZWFybHksCmJlZm9yZSB0aGUgbmV3IGRldi0+cWRp c2MgaXMgZmluYWxseSBzZXQsIHRoaXMgY2F1c2VzCnEtPmxpc3QgcG9pbnRzIHRvIGFuIG9sZCBy b290IHFkaXNjIHdoaWNoIGlzIGdvaW5nIHRvIGJlCmZyZWVkIHJpZ2h0IGJlZm9yZSBhc3NpZ25p bmcgd2l0aCBhIG5ldyBvbmUuCgpGaXggdGhpcyBieSBtb3ZpbmcgLT5hdHRhY2goKSBhZnRlciBz ZXR0aW5nIGRldi0+cWRpc2MuCgpGb3IgdGhlIHJlY29yZCwgdGhpcyBmaXhlcyB0aGUgZm9sbG93 aW5nIGNyYXNoOgoKIC0tLS0tLS0tLS0tLVsgY3V0IGhlcmUgXS0tLS0tLS0tLS0tLQogV0FSTklO RzogQ1BVOiAxIFBJRDogOTc1IGF0IGxpYi9saXN0X2RlYnVnLmM6NTkgX19saXN0X2RlbF9lbnRy eSsweDVhLzB4OTgoKQogbGlzdF9kZWwgY29ycnVwdGlvbi4gcHJldi0+bmV4dCBzaG91bGQgYmUg ZmZmZjg4MDBkMTk5OGFlOCwgYnV0IHdhcyA2YjZiNmI2YjZiNmI2YjZiCiBDUFU6IDEgUElEOiA5 NzUgQ29tbTogdGMgTm90IHRhaW50ZWQgNC4xLjAtcmM0KyAjMTAxOQogSGFyZHdhcmUgbmFtZTog Qm9jaHMgQm9jaHMsIEJJT1MgQm9jaHMgMDEvMDEvMjAxMQogIDAwMDAwMDAwMDAwMDAwMDkgZmZm Zjg4MDBkNzNmYjkyOCBmZmZmZmZmZjgxYTQ0ZTdmIDAwMDAwMDAwNDc1NzQ3NTYKICBmZmZmODgw MGQ3M2ZiOTc4IGZmZmY4ODAwZDczZmI5NjggZmZmZmZmZmY4MTA3OTBkYSBmZmZmODgwMGNmYzRj ZDIwCiAgZmZmZmZmZmY4MTRlNzI1YiBmZmZmODgwMGQxOTk4YWU4IGZmZmZmZmZmODIzODEyNTAg MDAwMDAwMDAwMDAwMDAwMAogQ2FsbCBUcmFjZToKICBbPGZmZmZmZmZmODFhNDRlN2Y+XSBkdW1w X3N0YWNrKzB4NGMvMHg2NQogIFs8ZmZmZmZmZmY4MTA3OTBkYT5dIHdhcm5fc2xvd3BhdGhfY29t bW9uKzB4OWMvMHhiNgogIFs8ZmZmZmZmZmY4MTRlNzI1Yj5dID8gX19saXN0X2RlbF9lbnRyeSsw eDVhLzB4OTgKICBbPGZmZmZmZmZmODEwNzkxNjI+XSB3YXJuX3Nsb3dwYXRoX2ZtdCsweDQ2LzB4 NDgKICBbPGZmZmZmZmZmODE4MjBlYjA+XSA/IGRldl9ncmFmdF9xZGlzYysweDVlLzB4NmEKICBb PGZmZmZmZmZmODE0ZTcyNWI+XSBfX2xpc3RfZGVsX2VudHJ5KzB4NWEvMHg5OAogIFs8ZmZmZmZm ZmY4MTRlNzJhNz5dIGxpc3RfZGVsKzB4ZS8weDJkCiAgWzxmZmZmZmZmZjgxODIyZjA1Pl0gcWRp c2NfbGlzdF9kZWwrMHgxZS8weDIwCiAgWzxmZmZmZmZmZjgxODIwY2QxPl0gcWRpc2NfZGVzdHJv eSsweDMwLzB4ZDYKICBbPGZmZmZmZmZmODE4MjI2NzY+XSBxZGlzY19ncmFmdCsweDExZC8weDI0 MwogIFs8ZmZmZmZmZmY4MTgyMzNjMT5dIHRjX2dldF9xZGlzYysweDFhNi8weDFkNAogIFs8ZmZm ZmZmZmY4MTBiNWVhZj5dID8gbWFya19sb2NrKzB4MmUvMHgyMjYKICBbPGZmZmZmZmZmODE3ZmY4 ZjU+XSBydG5ldGxpbmtfcmN2X21zZysweDE4MS8weDE5NAogIFs8ZmZmZmZmZmY4MTdmZjcyZT5d ID8gcnRubF9sb2NrKzB4MTcvMHgxOQogIFs8ZmZmZmZmZmY4MTdmZjcyZT5dID8gcnRubF9sb2Nr KzB4MTcvMHgxOQogIFs8ZmZmZmZmZmY4MTdmZjc3ND5dID8gX19ydG5sX3VubG9jaysweDE3LzB4 MTcKICBbPGZmZmZmZmZmODE4NTVkYzY+XSBuZXRsaW5rX3Jjdl9za2IrMHg0ZC8weDkzCiAgWzxm ZmZmZmZmZjgxN2ZmNzU2Pl0gcnRuZXRsaW5rX3JjdisweDI2LzB4MmQKICBbPGZmZmZmZmZmODE4 NTQ0YjI+XSBuZXRsaW5rX3VuaWNhc3QrMHhjYi8weDE1MAogIFs8ZmZmZmZmZmY4MTE2MWRiOT5d ID8gbWlnaHRfZmF1bHQrMHg1OS8weGE5CiAgWzxmZmZmZmZmZjgxODU0Zjc4Pl0gbmV0bGlua19z ZW5kbXNnKzB4NGZhLzB4NTFjCiAgWzxmZmZmZmZmZjgxN2Q2ZTA5Pl0gc29ja19zZW5kbXNnX25v c2VjKzB4MTIvMHgxZAogIFs8ZmZmZmZmZmY4MTdkODk2Nz5dIHNvY2tfc2VuZG1zZysweDI5LzB4 MmUKICBbPGZmZmZmZmZmODE3ZDhjZjM+XSBfX19zeXNfc2VuZG1zZysweDFiNC8weDIzYQogIFs8 ZmZmZmZmZmY4MTAwYTFiOD5dID8gbmF0aXZlX3NjaGVkX2Nsb2NrKzB4MzUvMHgzNwogIFs8ZmZm ZmZmZmY4MTBhMWQ4Mz5dID8gc2NoZWRfY2xvY2tfbG9jYWwrMHgxMi8weDcyCiAgWzxmZmZmZmZm ZjgxMGExZmQ0Pl0gPyBzY2hlZF9jbG9ja19jcHUrMHg5ZS8weGI3CiAgWzxmZmZmZmZmZjgxMGRl ZjJhPl0gPyBjdXJyZW50X2tlcm5lbF90aW1lKzB4ZS8weDMyCiAgWzxmZmZmZmZmZjgxMGI0YmM1 Pl0gPyBsb2NrX3JlbGVhc2VfaG9sZHRpbWUucGFydC4yOSsweDcxLzB4N2YKICBbPGZmZmZmZmZm ODEwZGRlYmY+XSA/IHJlYWRfc2VxY291bnRfYmVnaW4uY29uc3Rwcm9wLjI3KzB4NWYvMHg3Ngog IFs8ZmZmZmZmZmY4MTBiNjI5Mj5dID8gdHJhY2VfaGFyZGlycXNfb25fY2FsbGVyKzB4MTdkLzB4 MTk5CiAgWzxmZmZmZmZmZjgxMWIxNGQ1Pl0gPyBfX2ZnZXRfbGlnaHQrMHg1MC8weDc4CiAgWzxm ZmZmZmZmZjgxN2Q5ODA4Pl0gX19zeXNfc2VuZG1zZysweDQyLzB4NjAKICBbPGZmZmZmZmZmODE3 ZDk4Mzg+XSBTeVNfc2VuZG1zZysweDEyLzB4MWMKICBbPGZmZmZmZmZmODFhNTBlOTc+XSBzeXN0 ZW1fY2FsbF9mYXN0cGF0aCsweDEyLzB4NmYKIC0tLVsgZW5kIHRyYWNlIGVmMjlkM2ZiMjhlOTdh ZTcgXS0tLQoKRm9yIGxvbmcgdGVybSwgd2UgcHJvYmFibHkgbmVlZCB0byBjbGVhbiB1cCB0aGUg cWRpc2NfZ3JhZnQoKSBjb2RlCmluIGNhc2UgaXQgaGlkZXMgb3RoZXIgYnVncyBsaWtlIHRoaXMu CgpGaXhlczogOTVkYzE5Mjk5Zjc0ICgicGt0X3NjaGVkOiBnaXZlIHZpc2liaWxpdHkgdG8gbXEg c2xhdmUgcWRpc2NzIikKQ2M6IEphbWFsIEhhZGkgU2FsaW0gPGpoc0Btb2phdGF0dS5jb20+ClNp Z25lZC1vZmYtYnk6IENvbmcgV2FuZyA8eGl5b3Uud2FuZ2NvbmdAZ21haWwuY29tPgpBY2tlZC1i eTogRXJpYyBEdW1hemV0IDxlZHVtYXpldEBnb29nbGUuY29tPgpTaWduZWQtb2ZmLWJ5OiBEYXZp ZCBTLiBNaWxsZXIgPGRhdmVtQGRhdmVtbG9mdC5uZXQ+Ci0tLQogbmV0L3NjaGVkL3NjaF9hcGku YyB8IDEwICsrKysrKy0tLS0KIDEgZmlsZSBjaGFuZ2VkLCA2IGluc2VydGlvbnMoKyksIDQgZGVs ZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvbmV0L3NjaGVkL3NjaF9hcGkuYyBiL25ldC9zY2hlZC9z Y2hfYXBpLmMKaW5kZXggM2Y1ZmUwMy4uMWI2OTNhOCAxMDA2NDQKLS0tIGEvbmV0L3NjaGVkL3Nj aF9hcGkuYworKysgYi9uZXQvc2NoZWQvc2NoX2FwaS5jCkBAIC04MDQsMTAgKzgwNCw4IEBAIHN0 YXRpYyBpbnQgcWRpc2NfZ3JhZnQoc3RydWN0IG5ldF9kZXZpY2UgKmRldiwgc3RydWN0IFFkaXNj ICpwYXJlbnQsCiAJCWlmIChkZXYtPmZsYWdzICYgSUZGX1VQKQogCQkJZGV2X2RlYWN0aXZhdGUo ZGV2KTsKIAotCQlpZiAobmV3ICYmIG5ldy0+b3BzLT5hdHRhY2gpIHsKLQkJCW5ldy0+b3BzLT5h dHRhY2gobmV3KTsKLQkJCW51bV9xID0gMDsKLQkJfQorCQlpZiAobmV3ICYmIG5ldy0+b3BzLT5h dHRhY2gpCisJCQlnb3RvIHNraXA7CiAKIAkJZm9yIChpID0gMDsgaSA8IG51bV9xOyBpKyspIHsK IAkJCXN0cnVjdCBuZXRkZXZfcXVldWUgKmRldl9xdWV1ZSA9IGRldl9pbmdyZXNzX3F1ZXVlKGRl dik7CkBAIC04MjMsMTIgKzgyMSwxNiBAQCBzdGF0aWMgaW50IHFkaXNjX2dyYWZ0KHN0cnVjdCBu ZXRfZGV2aWNlICpkZXYsIHN0cnVjdCBRZGlzYyAqcGFyZW50LAogCQkJCXFkaXNjX2Rlc3Ryb3ko b2xkKTsKIAkJfQogCitza2lwOgogCQlpZiAoIWluZ3Jlc3MpIHsKIAkJCW5vdGlmeV9hbmRfZGVz dHJveShuZXQsIHNrYiwgbiwgY2xhc3NpZCwKIAkJCQkJICAgZGV2LT5xZGlzYywgbmV3KTsKIAkJ CWlmIChuZXcgJiYgIW5ldy0+b3BzLT5hdHRhY2gpCiAJCQkJYXRvbWljX2luYygmbmV3LT5yZWZj bnQpOwogCQkJZGV2LT5xZGlzYyA9IG5ldyA/IDogJm5vb3BfcWRpc2M7CisKKwkJCWlmIChuZXcg JiYgbmV3LT5vcHMtPmF0dGFjaCkKKwkJCQluZXctPm9wcy0+YXR0YWNoKG5ldyk7CiAJCX0gZWxz ZSB7CiAJCQlub3RpZnlfYW5kX2Rlc3Ryb3kobmV0LCBza2IsIG4sIGNsYXNzaWQsIG9sZCwgbmV3 KTsKIAkJfQotLSAKMi4xLjAKCgpGcm9tIGQ2MGFiMmNjM2Y2OGZmMGQ3MWYzNDE1NTI0MjFmNmRi Zjc2YzVlMTggTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCkZyb206IEVyaWMgRHVtYXpldCA8ZWR1 bWF6ZXRAZ29vZ2xlLmNvbT4KRGF0ZTogU2F0LCAzMCBNYXkgMjAxNSAwOToxNjo1MyAtMDcwMApT dWJqZWN0OiBbUEFUQ0ggNy84XSB1ZHA6IGZpeCBiZWhhdmlvciBvZiB3cm9uZyBjaGVja3N1bXMK ClsgVXBzdHJlYW0gY29tbWl0IGJlYjM5ZGI1OWQxNDk5MGU0MDFlMjM1ZmFmNjZhNmI5YjMxMjQw YjAgXQoKV2UgaGF2ZSB0d28gcHJvYmxlbXMgaW4gVURQIHN0YWNrIHJlbGF0ZWQgdG8gYm9ndXMg Y2hlY2tzdW1zIDoKCjEpIFdlIHJldHVybiAtRUFHQUlOIHRvIGFwcGxpY2F0aW9uIGV2ZW4gaWYg cmVjZWl2ZSBxdWV1ZSBpcyBub3QgZW1wdHkuCiAgIFRoaXMgYnJlYWtzIGFwcGxpY2F0aW9ucyB1 c2luZyBlZGdlIHRyaWdnZXIgZXBvbGwoKQoKMikgVW5kZXIgVURQIGZsb29kLCB3ZSBjYW4gbG9v cCBmb3JldmVyIHdpdGhvdXQgeWllbGRpbmcgdG8gb3RoZXIKICAgcHJvY2Vzc2VzLCBwb3RlbnRp YWxseSBoYW5naW5nIHRoZSBob3N0LCBlc3BlY2lhbGx5IG9uIG5vbiBTTVAuCgpUaGlzIHBhdGNo IGlzIGFuIGF0dGVtcHQgdG8gbWFrZSB0aGluZ3MgYmV0dGVyLgoKV2UgbWlnaHQgaW4gdGhlIGZ1 dHVyZSBhZGQgZXh0cmEgc3VwcG9ydCBmb3IgcnQgYXBwbGljYXRpb25zCndhbnRpbmcgdG8gYmV0 dGVyIGNvbnRyb2wgdGltZSBzcGVudCBkb2luZyBhIHJlY3YoKSBpbiBhIGhvc3RpbGUKZW52aXJv bm1lbnQuIEZvciBleGFtcGxlIHdlIGNvdWxkIHZhbGlkYXRlIGNoZWNrc3VtcyBiZWZvcmUgcXVl dWluZwpwYWNrZXRzIGluIHNvY2tldCByZWNlaXZlIHF1ZXVlLgoKU2lnbmVkLW9mZi1ieTogRXJp YyBEdW1hemV0IDxlZHVtYXpldEBnb29nbGUuY29tPgpDYzogV2lsbGVtIGRlIEJydWlqbiA8d2ls bGVtYkBnb29nbGUuY29tPgpTaWduZWQtb2ZmLWJ5OiBEYXZpZCBTLiBNaWxsZXIgPGRhdmVtQGRh dmVtbG9mdC5uZXQ+Ci0tLQogbmV0L2lwdjQvdWRwLmMgfCA2ICsrLS0tLQogbmV0L2lwdjYvdWRw LmMgfCA2ICsrLS0tLQogMiBmaWxlcyBjaGFuZ2VkLCA0IGluc2VydGlvbnMoKyksIDggZGVsZXRp b25zKC0pCgpkaWZmIC0tZ2l0IGEvbmV0L2lwdjQvdWRwLmMgYi9uZXQvaXB2NC91ZHAuYwppbmRl eCA2Y2E5OTA3Li4yNjhlZDI1IDEwMDY0NAotLS0gYS9uZXQvaXB2NC91ZHAuYworKysgYi9uZXQv aXB2NC91ZHAuYwpAQCAtMTI5NSwxMCArMTI5NSw4IEBAIGNzdW1fY29weV9lcnI6CiAJfQogCXVu bG9ja19zb2NrX2Zhc3Qoc2ssIHNsb3cpOwogCi0JaWYgKG5vYmxvY2spCi0JCXJldHVybiAtRUFH QUlOOwotCi0JLyogc3RhcnRpbmcgb3ZlciBmb3IgYSBuZXcgcGFja2V0ICovCisJLyogc3RhcnRp bmcgb3ZlciBmb3IgYSBuZXcgcGFja2V0LCBidXQgY2hlY2sgaWYgd2UgbmVlZCB0byB5aWVsZCAq LworCWNvbmRfcmVzY2hlZCgpOwogCW1zZy0+bXNnX2ZsYWdzICY9IH5NU0dfVFJVTkM7CiAJZ290 byB0cnlfYWdhaW47CiB9CmRpZmYgLS1naXQgYS9uZXQvaXB2Ni91ZHAuYyBiL25ldC9pcHY2L3Vk cC5jCmluZGV4IDNkMjc1OGQuLmUwOWNhMjggMTAwNjQ0Ci0tLSBhL25ldC9pcHY2L3VkcC5jCisr KyBiL25ldC9pcHY2L3VkcC5jCkBAIC00OTUsMTAgKzQ5NSw4IEBAIGNzdW1fY29weV9lcnI6CiAJ fQogCXVubG9ja19zb2NrX2Zhc3Qoc2ssIHNsb3cpOwogCi0JaWYgKG5vYmxvY2spCi0JCXJldHVy biAtRUFHQUlOOwotCi0JLyogc3RhcnRpbmcgb3ZlciBmb3IgYSBuZXcgcGFja2V0ICovCisJLyog c3RhcnRpbmcgb3ZlciBmb3IgYSBuZXcgcGFja2V0LCBidXQgY2hlY2sgaWYgd2UgbmVlZCB0byB5 aWVsZCAqLworCWNvbmRfcmVzY2hlZCgpOwogCW1zZy0+bXNnX2ZsYWdzICY9IH5NU0dfVFJVTkM7 CiAJZ290byB0cnlfYWdhaW47CiB9Ci0tIAoyLjEuMAoKCkZyb20gYWYxMDBiMGM5YjY3NjEyNWZj MzQ0ZmFiYmZlMTljZGMxMmE3NzRkZCBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJvbTogSWFu IENhbXBiZWxsIDxJYW4uQ2FtcGJlbGxAY2l0cml4LmNvbT4KRGF0ZTogTW9uLCAxIEp1biAyMDE1 IDExOjMwOjI0ICswMTAwClN1YmplY3Q6IFtQQVRDSCA4LzhdIHhlbjogbmV0YmFjazogcmVhZCBo b3RwbHVnIHNjcmlwdCBvbmNlIGF0IHN0YXJ0IG9mIGRheS4KClsgVXBzdHJlYW0gY29tbWl0IDMx YTQxODk4NmE1ODUyMDM0ZDUyMGE1YmFiNTQ2ODIxZmYxY2NmM2QgXQoKV2hlbiB3ZSBjb21lIHRv IHRlYXIgdGhpbmdzIGRvd24gaW4gbmV0YmFja19yZW1vdmUoKSBhbmQgZ2VuZXJhdGUgdGhlCnVl dmVudCBpdCBpcyBwb3NzaWJsZSB0aGF0IHRoZSB4ZW5zdG9yZSBkaXJlY3RvcnkgaGFzIGFscmVh ZHkgYmVlbgpyZW1vdmVkIChkZXRhaWxzIGJlbG93KS4KCkluIHN1Y2ggY2FzZXMgbmV0YmFja191 ZXZlbnQoKSB3b24ndCBiZSBhYmxlIHRvIHJlYWQgdGhlIGhvdHBsdWcKc2NyaXB0IGFuZCB3aWxs IHdyaXRlIGEgeGVuc3RvcmUgZXJyb3Igbm9kZS4KCkEgcmVjZW50IGNoYW5nZSB0byB0aGUgaHlw ZXJ2aXNvciBleHBvc2VkIHRoaXMgcmFjZSBzdWNoIHRoYXQgd2Ugbm93CnNvbWV0aW1lcyBsb3Nl IGl0ICh3aGVyZSBhcHBhcmVudGx5IHdlIGRpZG4ndCBldmVyIGJlZm9yZSkuCgpJbnN0ZWFkIHJl YWQgdGhlIGhvdHBsdWcgc2NyaXB0IGNvbmZpZ3VyYXRpb24gZHVyaW5nIHNldHVwIGFuZCB1c2Ug aXQKZm9yIHRoZSBsaWZldGltZSBvZiB0aGUgYmFja2VuZCBkZXZpY2UuCgpUaGUgYXBwYXJlbnRs eSBtb3JlIG9idmlvdXMgZml4IG9mIG1vdmluZyB0aGUgdHJhbnNpdGlvbiB0bwpzdGF0ZT1DbG9z ZWQgaW4gbmV0YmFja19yZW1vdmUoKSB0byBhZnRlciB0aGUgdWV2ZW50IGRvZXMgbm90IHdvcmsK YmVjYXVzZSBpdCBpcyBwb3NzaWJsZSB0aGF0IHdlIGFyZSBhbHJlYWR5IGluIHN0YXRlPUNsb3Nl ZCAoaW4KcmVhY3Rpb24gdG8gdGhlIGd1ZXN0IGhhdmluZyBkaXNjb25uZWN0ZWQgYXMgaXQgc2h1 dGRvd24pLiBCZWluZwphbHJlYWR5IGluIENsb3NlZCBtZWFucyB0aGUgdG9vbHN0YWNrIGlzIGF0 IGxpYmVydHkgdG8gc3RhcnQgdGVhcmluZwpkb3duIHRoZSB4ZW5zdG9yZSBkaXJlY3Rvcmllcy4g SW4gcHJpbmNpcGFsIGl0IG1pZ2h0IGJlIHBvc3NpYmxlIHRvCmFycmFuZ2UgdG8gdW5yZWdpc3Rl ciB0aGUgZGV2aWNlIHNvb25lciAoZS5nIG9uIHRyYW5zaXRpb24gdG8gQ2xvc2luZykKc3VjaCB0 aGF0IHhlbnN0b3JlIHdvdWxkIHN0aWxsIGJlIHRoZXJlIGJ1dCB0aGlzIHN0YXRlIG1hY2hpbmUg aXMKZnJhZ2lsZSBhbmQgcHJvbmUgdG8gYW5nZXIuLi4KCkEgbW9kZXJuIFhlbiBzeXN0ZW0gb25s eSByZWxpZXMgb24gdGhlIGhvdHBsdWcgdWV2ZW50IGZvciBkcml2ZXIKZG9tYWlucywgd2hlbiB0 aGUgYmFja2VuZCBpcyBpbiB0aGUgc2FtZSBkb21haW4gYXMgdGhlIHRvb2xzdGFjayBpdAp3aWxs IHJ1biB0aGUgbmVjZXNzYXJ5IHNldHVwL3RlYXJkb3duIGRpcmVjdGx5IGluIHRoZSBjb3JyZWN0 IHNlcXVlbmNlCndydCB4ZW5zdG9yZSBjaGFuZ2VzLgoKU2lnbmVkLW9mZi1ieTogSWFuIENhbXBi ZWxsIDxpYW4uY2FtcGJlbGxAY2l0cml4LmNvbT4KQWNrZWQtYnk6IFdlaSBMaXUgPHdlaS5saXUy QGNpdHJpeC5jb20+ClNpZ25lZC1vZmYtYnk6IERhdmlkIFMuIE1pbGxlciA8ZGF2ZW1AZGF2ZW1s b2Z0Lm5ldD4KLS0tCiBkcml2ZXJzL25ldC94ZW4tbmV0YmFjay94ZW5idXMuYyB8IDMzICsrKysr KysrKysrKysrKysrKystLS0tLS0tLS0tLS0tLQogMSBmaWxlIGNoYW5nZWQsIDE5IGluc2VydGlv bnMoKyksIDE0IGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L3hlbi1uZXRi YWNrL3hlbmJ1cy5jIGIvZHJpdmVycy9uZXQveGVuLW5ldGJhY2sveGVuYnVzLmMKaW5kZXggMWIw OGQ4Ny4uNjU5YTZmMiAxMDA2NDQKLS0tIGEvZHJpdmVycy9uZXQveGVuLW5ldGJhY2sveGVuYnVz LmMKKysrIGIvZHJpdmVycy9uZXQveGVuLW5ldGJhY2sveGVuYnVzLmMKQEAgLTMzLDYgKzMzLDgg QEAgc3RydWN0IGJhY2tlbmRfaW5mbyB7CiAJZW51bSB4ZW5idXNfc3RhdGUgZnJvbnRlbmRfc3Rh dGU7CiAJc3RydWN0IHhlbmJ1c193YXRjaCBob3RwbHVnX3N0YXR1c193YXRjaDsKIAl1OCBoYXZl X2hvdHBsdWdfc3RhdHVzX3dhdGNoOjE7CisKKwljb25zdCBjaGFyICpob3RwbHVnX3NjcmlwdDsK IH07CiAKIHN0YXRpYyBpbnQgY29ubmVjdF9yaW5ncyhzdHJ1Y3QgYmFja2VuZF9pbmZvICopOwpA QCAtNTUsNiArNTcsNyBAQCBzdGF0aWMgaW50IG5ldGJhY2tfcmVtb3ZlKHN0cnVjdCB4ZW5idXNf ZGV2aWNlICpkZXYpCiAJCXhlbnZpZl9mcmVlKGJlLT52aWYpOwogCQliZS0+dmlmID0gTlVMTDsK IAl9CisJa2ZyZWUoYmUtPmhvdHBsdWdfc2NyaXB0KTsKIAlrZnJlZShiZSk7CiAJZGV2X3NldF9k cnZkYXRhKCZkZXYtPmRldiwgTlVMTCk7CiAJcmV0dXJuIDA7CkBAIC03Miw2ICs3NSw3IEBAIHN0 YXRpYyBpbnQgbmV0YmFja19wcm9iZShzdHJ1Y3QgeGVuYnVzX2RldmljZSAqZGV2LAogCXN0cnVj dCB4ZW5idXNfdHJhbnNhY3Rpb24geGJ0OwogCWludCBlcnI7CiAJaW50IHNnOworCWNvbnN0IGNo YXIgKnNjcmlwdDsKIAlzdHJ1Y3QgYmFja2VuZF9pbmZvICpiZSA9IGt6YWxsb2Moc2l6ZW9mKHN0 cnVjdCBiYWNrZW5kX2luZm8pLAogCQkJCQkgIEdGUF9LRVJORUwpOwogCWlmICghYmUpIHsKQEAg LTE0Miw2ICsxNDYsMTUgQEAgc3RhdGljIGludCBuZXRiYWNrX3Byb2JlKHN0cnVjdCB4ZW5idXNf ZGV2aWNlICpkZXYsCiAJaWYgKGVycikKIAkJcHJfZGVidWcoIkVycm9yIHdyaXRpbmcgZmVhdHVy ZS1zcGxpdC1ldmVudC1jaGFubmVsc1xuIik7CiAKKwlzY3JpcHQgPSB4ZW5idXNfcmVhZChYQlRf TklMLCBkZXYtPm5vZGVuYW1lLCAic2NyaXB0IiwgTlVMTCk7CisJaWYgKElTX0VSUihzY3JpcHQp KSB7CisJCWVyciA9IFBUUl9FUlIoc2NyaXB0KTsKKwkJeGVuYnVzX2Rldl9mYXRhbChkZXYsIGVy ciwgInJlYWRpbmcgc2NyaXB0Iik7CisJCWdvdG8gZmFpbDsKKwl9CisKKwliZS0+aG90cGx1Z19z Y3JpcHQgPSBzY3JpcHQ7CisKIAllcnIgPSB4ZW5idXNfc3dpdGNoX3N0YXRlKGRldiwgWGVuYnVz U3RhdGVJbml0V2FpdCk7CiAJaWYgKGVycikKIAkJZ290byBmYWlsOwpAQCAtMTcyLDIyICsxODUs MTQgQEAgc3RhdGljIGludCBuZXRiYWNrX3VldmVudChzdHJ1Y3QgeGVuYnVzX2RldmljZSAqeGRl diwKIAkJCSAgc3RydWN0IGtvYmpfdWV2ZW50X2VudiAqZW52KQogewogCXN0cnVjdCBiYWNrZW5k X2luZm8gKmJlID0gZGV2X2dldF9kcnZkYXRhKCZ4ZGV2LT5kZXYpOwotCWNoYXIgKnZhbDsKIAot CXZhbCA9IHhlbmJ1c19yZWFkKFhCVF9OSUwsIHhkZXYtPm5vZGVuYW1lLCAic2NyaXB0IiwgTlVM TCk7Ci0JaWYgKElTX0VSUih2YWwpKSB7Ci0JCWludCBlcnIgPSBQVFJfRVJSKHZhbCk7Ci0JCXhl bmJ1c19kZXZfZmF0YWwoeGRldiwgZXJyLCAicmVhZGluZyBzY3JpcHQiKTsKLQkJcmV0dXJuIGVy cjsKLQl9IGVsc2UgewotCQlpZiAoYWRkX3VldmVudF92YXIoZW52LCAic2NyaXB0PSVzIiwgdmFs KSkgewotCQkJa2ZyZWUodmFsKTsKLQkJCXJldHVybiAtRU5PTUVNOwotCQl9Ci0JCWtmcmVlKHZh bCk7Ci0JfQorCWlmICghYmUpCisJCXJldHVybiAwOworCisJaWYgKGFkZF91ZXZlbnRfdmFyKGVu diwgInNjcmlwdD0lcyIsIGJlLT5ob3RwbHVnX3NjcmlwdCkpCisJCXJldHVybiAtRU5PTUVNOwog Ci0JaWYgKCFiZSB8fCAhYmUtPnZpZikKKwlpZiAoIWJlLT52aWYpCiAJCXJldHVybiAwOwogCiAJ cmV0dXJuIGFkZF91ZXZlbnRfdmFyKGVudiwgInZpZj0lcyIsIGJlLT52aWYtPmRldi0+bmFtZSk7 Ci0tIAoyLjEuMAoK ----Next_Part(Tue_Jun__9_20_01_04_2015_064)-- Content-Type: Application/Octet-Stream Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="net_314.mbox" RnJvbSA2MDFhODZlNjU4ZDk2YWY4ZWQ4ZjA3ZjE2OTQ5MTA4NmY5ODNmYWUyIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBWbGFkIFlhc2V2aWNoIDx2eWFzZXZpY2hAZ21haWwuY29tPgpE YXRlOiBTYXQsIDIgTWF5IDIwMTUgMjE6MzM6NDQgLTA0MDAKU3ViamVjdDogW1BBVENIIDAxLzE0 XSBuZXQ6IGNvcmU6IENvcnJlY3QgYW4gb3Zlci1zdHJpbmdlbnQgZGV2aWNlIGxvb3AKIGRldGVj dGlvbi4KClsgVXBzdHJlYW0gY29tbWl0IGQ2NmJmN2RkMjc1NzNlZTVlYTkwNDg0ODk5ZWU5NTJj MTljY2IxOTQgXQoKVGhlIGNvZGUgaW4gX19uZXRkZXZfdXBwZXJfZGV2X2xpbmsoKSBoYXMgYW4g b3Zlci1zdHJpbmdlbnQKbG9vcCBkZXRlY3Rpb24gbG9naWMgdGhhdCBhY3R1YWxseSBwcmV2ZW50 cyB2YWxpZCBjb25maWd1cmF0aW9ucwpmcm9tIHdvcmtpbmcgY29ycmVjdGx5LgoKSW4gcGFydGlj dWxhciwgdGhlIGxvZ2ljIHJldHVybnMgYW4gZXJyb3IgaWYgYW4gdXBwZXIgZGV2aWNlCmlzIGFs cmVhZHkgaW4gdGhlIGxpc3Qgb2YgYWxsIHVwcGVyIGRldmljZXMgZm9yIGEgZ2l2ZW4gZGV2LgpU aGlzIHBhcnRpY3VsYXIgY2hlY2sgc2VlbXMgdG8gYmUgYSBvdmVyemVhbG91cyBhcyBpdCBkaXNh bGxvd3MKcGVyZmVjdGx5IHZhbGlkIGNvbmZpZ3VyYXRpb25zLiAgRm9yIGV4YW1wbGU6CiAgIyBp cCBsIGEgbGluayBldGgwIG5hbWUgZXRoMC4xMCB0eXBlIHZsYW4gaWQgMTAKICAjIGlwIGwgYSBk ZXYgYnIwIHR5cCBicmlkZ2UKICAjIGlwIGwgcyBldGgwLjEwIG1hc3RlciBicjAKICAjIGlwIGwg cyBldGgwIG1hc3RlciBicjAgIDwtLS0gV2lsbCBmYWlsCgpJZiB5b3Ugc3dpdGNoIHRoZSBsYXN0 IHR3byBjb21tYW5kcyAoYWRkIGV0aDAgZmlyc3QpLCB0aGVuIGJvdGgKd2lsbCBzdWNjZWVkLiAg SWYgYWZ0ZXIgdGhhdCwgeW91IHJlbW92ZSBldGgwIGFuZCB0cnkgdG8gcmUtYWRkCml0LCBpdCB3 aWxsIGZhaWwhCgpJdCBhcHBlYXJzIHRvIGJlIGVub3VnaCB0byBzaW1wbHkgY2hlY2sgYWRqX2xp c3QgdG8ga2VlcHMgdGhpbmdzCnNhZmUuCgpJJ3ZlIHRyaWVkIHN0YWNraW5nIG11bHRpcGxlIGRl dmljZXMgbXVsdGlwbGUgdGltZXMgaW4gYWxsIGRpZmZlcmVudApjb21iaW5hdGlvbnMsIGFuZCBl aXRoZXIgcnhfaGFuZGxlciByZWdpc3RyYXRpb24gcHJldmVudGVkIHRoZSBzdGFja2luZwpvZiB0 aGUgZGV2aWNlIGxpbmtpbmcgY291Z2h0IHRoZSBlcnJvci4KClNpZ25lZC1vZmYtYnk6IFZsYWRp c2xhdiBZYXNldmljaCA8dnlhc2V2aWNAcmVkaGF0LmNvbT4KQWNrZWQtYnk6IEppcmkgUGlya28g PGppcmlAcmVzbnVsbGkudXM+CkFja2VkLWJ5OiBWZWFjZXNsYXYgRmFsaWNvIDx2ZmFsaWNvQGdt YWlsLmNvbT4KU2lnbmVkLW9mZi1ieTogRGF2aWQgUy4gTWlsbGVyIDxkYXZlbUBkYXZlbWxvZnQu bmV0PgotLS0KIG5ldC9jb3JlL2Rldi5jIHwgMiArLQogMSBmaWxlIGNoYW5nZWQsIDEgaW5zZXJ0 aW9uKCspLCAxIGRlbGV0aW9uKC0pCgpkaWZmIC0tZ2l0IGEvbmV0L2NvcmUvZGV2LmMgYi9uZXQv Y29yZS9kZXYuYwppbmRleCA3M2FiYmQ3Li4xYjllNzAwIDEwMDY0NAotLS0gYS9uZXQvY29yZS9k ZXYuYworKysgYi9uZXQvY29yZS9kZXYuYwpAQCAtNDkwMyw3ICs0OTAzLDcgQEAgc3RhdGljIGlu dCBfX25ldGRldl91cHBlcl9kZXZfbGluayhzdHJ1Y3QgbmV0X2RldmljZSAqZGV2LAogCWlmIChf X25ldGRldl9maW5kX2Fkaih1cHBlcl9kZXYsIGRldiwgJnVwcGVyX2Rldi0+YWxsX2Fkal9saXN0 LnVwcGVyKSkKIAkJcmV0dXJuIC1FQlVTWTsKIAotCWlmIChfX25ldGRldl9maW5kX2FkaihkZXYs IHVwcGVyX2RldiwgJmRldi0+YWxsX2Fkal9saXN0LnVwcGVyKSkKKwlpZiAoX19uZXRkZXZfZmlu ZF9hZGooZGV2LCB1cHBlcl9kZXYsICZkZXYtPmFkal9saXN0LnVwcGVyKSkKIAkJcmV0dXJuIC1F RVhJU1Q7CiAKIAlpZiAobWFzdGVyICYmIG5ldGRldl9tYXN0ZXJfdXBwZXJfZGV2X2dldChkZXYp KQotLSAKMi4xLjAKCgpGcm9tIDliNDdmNGE5OTQwODgxMWViYTA3Mjg1OGMwYTQzZDY0MGRiMTJl ZjIgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCkZyb206IEFsZXhlaSBTdGFyb3ZvaXRvdiA8YXN0 QHBsdW1ncmlkLmNvbT4KRGF0ZTogRnJpLCAyMiBNYXkgMjAxNSAxNTo0Mjo1NSAtMDcwMApTdWJq ZWN0OiBbUEFUQ0ggMDIvMTRdIHg4NjogYnBmX2ppdDogZml4IGNvbXBpbGF0aW9uIG9mIGxhcmdl IGJwZiBwcm9ncmFtcwoKWyBVcHN0cmVhbSBjb21taXQgM2Y3MzUyYmYyMWY4ZmQ3YmEzZTJmY2Vm OTQ4ODc1NmYxODhlMTJiZSBdCgp4ODYgaGFzIHZhcmlhYmxlIGxlbmd0aCBlbmNvZGluZy4geDg2 IEpJVCBjb21waWxlciBpcyB0cnlpbmcKdG8gcGljayB0aGUgc2hvcnRlc3QgZW5jb2RpbmcgZm9y IGdpdmVuIGJwZiBpbnN0cnVjdGlvbi4KV2hpbGUgZG9pbmcgc28gdGhlIGp1bXAgdGFyZ2V0cyBh cmUgY2hhbmdpbmcsIHNvIEpJVCBpcyBkb2luZwptdWx0aXBsZSBwYXNzZXMgb3ZlciB0aGUgcHJv Z3JhbS4gVHlwaWNhbCBwcm9ncmFtIG5lZWRzIDMgcGFzc2VzLgpTb21lIHZlcnkgc2hvcnQgcHJv Z3JhbXMgY29udmVyZ2Ugd2l0aCAyIHBhc3Nlcy4gTGFyZ2UgcHJvZ3JhbXMKbWF5IG5lZWQgNCBv ciA1LiBCdXQgc3BlY2lhbGx5IGNyYWZ0ZWQgYnBmIHByb2dyYW1zIG1heSBoaXQgdGhlCnBhc3Mg bGltaXQgYW5kIGlmIHRoZSBwcm9ncmFtIGNvbnZlcmdlcyBvbiB0aGUgbGFzdCBpdGVyYXRpb24K dGhlIEpJVCBjb21waWxlciB3aWxsIGJlIHByb2R1Y2luZyBhbiBpbWFnZSBmdWxsIG9mICdpbnQg MycgaW5zbnMuCkZpeCB0aGlzIGNvcm5lciBjYXNlIGJ5IGRvaW5nIGZpbmFsIGl0ZXJhdGlvbiBv dmVyIGJwZiBwcm9ncmFtLgoKRml4ZXM6IDBhMTQ4NDJmNWEzYyAoIm5ldDogZmlsdGVyOiBKdXN0 IEluIFRpbWUgY29tcGlsZXIgZm9yIHg4Ni02NCIpClJlcG9ydGVkLWJ5OiBEYW5pZWwgQm9ya21h bm4gPGRhbmllbEBpb2dlYXJib3gubmV0PgpTaWduZWQtb2ZmLWJ5OiBBbGV4ZWkgU3Rhcm92b2l0 b3YgPGFzdEBwbHVtZ3JpZC5jb20+ClRlc3RlZC1ieTogRGFuaWVsIEJvcmttYW5uIDxkYW5pZWxA aW9nZWFyYm94Lm5ldD4KQWNrZWQtYnk6IERhbmllbCBCb3JrbWFubiA8ZGFuaWVsQGlvZ2VhcmJv eC5uZXQ+ClNpZ25lZC1vZmYtYnk6IERhdmlkIFMuIE1pbGxlciA8ZGF2ZW1AZGF2ZW1sb2Z0Lm5l dD4KLS0tCiBhcmNoL3g4Ni9uZXQvYnBmX2ppdF9jb21wLmMgfCA3ICsrKysrKy0KIDEgZmlsZSBj aGFuZ2VkLCA2IGluc2VydGlvbnMoKyksIDEgZGVsZXRpb24oLSkKCmRpZmYgLS1naXQgYS9hcmNo L3g4Ni9uZXQvYnBmX2ppdF9jb21wLmMgYi9hcmNoL3g4Ni9uZXQvYnBmX2ppdF9jb21wLmMKaW5k ZXggYWYyZDQzMS4uMWZlZDEzOSAxMDA2NDQKLS0tIGEvYXJjaC94ODYvbmV0L2JwZl9qaXRfY29t cC5jCisrKyBiL2FyY2gveDg2L25ldC9icGZfaml0X2NvbXAuYwpAQCAtMjExLDcgKzIxMSwxMiBA QCB2b2lkIGJwZl9qaXRfY29tcGlsZShzdHJ1Y3Qgc2tfZmlsdGVyICpmcCkKIAl9CiAJY2xlYW51 cF9hZGRyID0gcHJvZ2xlbjsgLyogZXBpbG9ndWUgYWRkcmVzcyAqLwogCi0JZm9yIChwYXNzID0g MDsgcGFzcyA8IDEwOyBwYXNzKyspIHsKKwkvKiBKSVRlZCBpbWFnZSBzaHJpbmtzIHdpdGggZXZl cnkgcGFzcyBhbmQgdGhlIGxvb3AgaXRlcmF0ZXMKKwkgKiB1bnRpbCB0aGUgaW1hZ2Ugc3RvcHMg c2hyaW5raW5nLiBWZXJ5IGxhcmdlIGJwZiBwcm9ncmFtcworCSAqIG1heSBjb252ZXJnZSBvbiB0 aGUgbGFzdCBwYXNzLiBJbiBzdWNoIGNhc2UgZG8gb25lIG1vcmUKKwkgKiBwYXNzIHRvIGVtaXQg dGhlIGZpbmFsIGltYWdlCisJICovCisJZm9yIChwYXNzID0gMDsgcGFzcyA8IDEwIHx8IGltYWdl OyBwYXNzKyspIHsKIAkJdTggc2Vlbl9vcl9wYXNzMCA9IChwYXNzID09IDApID8gKFNFRU5fWFJF RyB8IFNFRU5fREFUQVJFRiB8IFNFRU5fTUVNKSA6IHNlZW47CiAJCS8qIG5vIHByb2xvZ3VlL2Vw aWxvZ3VlIGZvciB0cml2aWFsIGZpbHRlcnMgKFJFVCBzb21ldGhpbmcpICovCiAJCXByb2dsZW4g PSAwOwotLSAKMi4xLjAKCgpGcm9tIGQwMDQ3ZGU2NWM5ZDljODEyODFiYjhlMDczMGIwYmY5NDAw ZmM2MGQgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCkZyb206IEZsb3JpYW4gRmFpbmVsbGkgPGYu ZmFpbmVsbGlAZ21haWwuY29tPgpEYXRlOiBGcmksIDE1IE1heSAyMDE1IDE2OjMwOjQxIC0wNzAw ClN1YmplY3Q6IFtQQVRDSCAwMy8xNF0gbmV0OiBwaHk6IEFsbG93IEVFRSBmb3IgYWxsIFJHTUlJ IHZhcmlhbnRzCgpbIFVwc3RyZWFtIGNvbW1pdCA3ZTE0MDY5NjUxNTkxYzgxMDQ2ZmZhZWMxM2Mz ZGFjOGNiNzBmNWZiIF0KClJHTUlJIGludGVyZmFjZXMgY29tZSBpbiBtdWx0aXBsZSBmbGF2b3Jz OiBSR01JSSB3aXRoIHRyYW5zbWl0IG9yCnJlY2VpdmUgaW50ZXJuYWwgZGVsYXksIG5vIGRlbGF5 cyBhdCBhbGwsIG9yIGRlbGF5cyBpbiBib3RoIGRpcmVjdGlvbi4KClRoaXMgY2hhbmdlIGV4dGVu ZHMgdGhlIGluaXRpYWwgY2hlY2sgZm9yIFBIWV9JTlRFUkZBQ0VfTU9ERV9SR01JSSB0bwpjb3Zl ciBhbGwgb2YgdGhlc2UgdmFyaWFudHMgc2luY2UgRUVFIHNob3VsZCBiZSBhbGxvd2VkIGZvciBh bnkgb2YgdGhlc2UKbW9kZXMsIHNpbmNlIGl0IGlzIGEgcHJvcGVydHkgb2YgdGhlIFJHTUlJLCBo ZW5jZSBHaWdhYml0IFBIWSBjYXBhYmlsaXR5Cm1vcmUgdGhhbiB0aGUgUkdNSUkgZWxlY3RyaWNh bCBpbnRlcmZhY2UgYW5kIGl0cyBkZWxheXMuCgpGaXhlczogYTU5YTRkMTkyMTY2ICgicGh5OiBh ZGQgdGhlIEVFRSBzdXBwb3J0IGFuZCB0aGUgd2F5IHRvIGFjY2VzcyB0byB0aGUgTU1EIHJlZ2lz dGVycyIpClNpZ25lZC1vZmYtYnk6IEZsb3JpYW4gRmFpbmVsbGkgPGYuZmFpbmVsbGlAZ21haWwu Y29tPgpTaWduZWQtb2ZmLWJ5OiBEYXZpZCBTLiBNaWxsZXIgPGRhdmVtQGRhdmVtbG9mdC5uZXQ+ Ci0tLQogZHJpdmVycy9uZXQvcGh5L3BoeS5jIHwgNiArKysrLS0KIDEgZmlsZSBjaGFuZ2VkLCA0 IGluc2VydGlvbnMoKyksIDIgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQv cGh5L3BoeS5jIGIvZHJpdmVycy9uZXQvcGh5L3BoeS5jCmluZGV4IDFkNTY4NzguLjY1Y2ZjNWEg MTAwNjQ0Ci0tLSBhL2RyaXZlcnMvbmV0L3BoeS9waHkuYworKysgYi9kcml2ZXJzL25ldC9waHkv cGh5LmMKQEAgLTk2NSwxMiArOTY1LDE0IEBAIGludCBwaHlfaW5pdF9lZWUoc3RydWN0IHBoeV9k ZXZpY2UgKnBoeWRldiwgYm9vbCBjbGtfc3RvcF9lbmFibGUpCiB7CiAJLyogQWNjb3JkaW5nIHRv IDgwMi4zYXosdGhlIEVFRSBpcyBzdXBwb3J0ZWQgb25seSBpbiBmdWxsIGR1cGxleC1tb2RlLgog CSAqIEFsc28gRUVFIGZlYXR1cmUgaXMgYWN0aXZlIHdoZW4gY29yZSBpcyBvcGVyYXRpbmcgd2l0 aCBNSUksIEdNSUkKLQkgKiBvciBSR01JSS4KKwkgKiBvciBSR01JSSAoYWxsIGtpbmRzKS4gSW50 ZXJuYWwgUEhZcyBhcmUgYWxzbyBhbGxvd2VkIHRvIHByb2NlZWQgYW5kCisJICogc2hvdWxkIHJl dHVybiBhbiBlcnJvciBpZiB0aGV5IGRvIG5vdCBzdXBwb3J0IEVFRS4KIAkgKi8KIAlpZiAoKHBo eWRldi0+ZHVwbGV4ID09IERVUExFWF9GVUxMKSAmJgogCSAgICAoKHBoeWRldi0+aW50ZXJmYWNl ID09IFBIWV9JTlRFUkZBQ0VfTU9ERV9NSUkpIHx8CiAJICAgIChwaHlkZXYtPmludGVyZmFjZSA9 PSBQSFlfSU5URVJGQUNFX01PREVfR01JSSkgfHwKLQkgICAgKHBoeWRldi0+aW50ZXJmYWNlID09 IFBIWV9JTlRFUkZBQ0VfTU9ERV9SR01JSSkpKSB7CisJICAgICAocGh5ZGV2LT5pbnRlcmZhY2Ug Pj0gUEhZX0lOVEVSRkFDRV9NT0RFX1JHTUlJICYmCisJICAgICAgcGh5ZGV2LT5pbnRlcmZhY2Ug PD0gUEhZX0lOVEVSRkFDRV9NT0RFX1JHTUlJX1RYSUQpKSkgewogCQlpbnQgZWVlX2xwLCBlZWVf Y2FwLCBlZWVfYWR2OwogCQl1MzIgbHAsIGNhcCwgYWR2OwogCQlpbnQgc3RhdHVzOwotLSAKMi4x LjAKCgpGcm9tIDE4ZWRjNGMwMTliYjdmMmM4ZjM1NzhiMzU2YzEyZmY2MjgyYzBlZTAgTW9uIFNl cCAxNyAwMDowMDowMCAyMDAxCkZyb206IEZsb3JlbnQgRm91cmNvdCA8ZmxvcmVudC5mb3VyY290 QGVuc3QtYnJldGFnbmUuZnI+CkRhdGU6IFNhdCwgMTYgTWF5IDIwMTUgMDA6MjQ6NTkgKzAyMDAK U3ViamVjdDogW1BBVENIIDA0LzE0XSB0Y3AvaXB2NjogZml4IGZsb3cgbGFiZWwgc2V0dGluZyBp biBUSU1FX1dBSVQgc3RhdGUKClsgVXBzdHJlYW0gY29tbWl0IDIxODU4Y2QwMmRhYmNmMjkwNTY0 Y2JmNDc2OWIxMDFlYmE1NGQ3YmIgXQoKY29tbWl0IDFkMTNhOTZjNzRmYyAoImlwdjY6IHRjcDog Zml4IGZsb3dsYWJlbCB2YWx1ZSBpbiBBQ0sgbWVzc2FnZXMKc2VuZCBmcm9tIFRJTUVfV0FJVCIp IGFkZGVkIHRoZSBmbG93IGxhYmVsIGluIHRoZSBsYXN0IFRDUCBwYWNrZXRzLgpVbmZvcnR1bmF0 ZWx5LCBpdCB3YXMgbm90IGNhc3RlZCBwcm9wZXJseS4KClRoaXMgcGF0Y2ggcmVwbGFjZSB0aGUg YnVnZ3kgc2hpZnQgd2l0aCBiZTMyX3RvX2NwdS9jcHVfdG9fYmUzMi4KCkZpeGVzOiAxZDEzYTk2 Yzc0ZmMgKCJpcHY2OiB0Y3A6IGZpeCBmbG93bGFiZWwgdmFsdWUgaW4gQUNLIG1lc3NhZ2VzIikK UmVwb3J0ZWQtYnk6IEVyaWMgRHVtYXpldCA8ZXJpYy5kdW1hemV0QGdtYWlsLmNvbT4KU2lnbmVk LW9mZi1ieTogRmxvcmVudCBGb3VyY290IDxmbG9yZW50LmZvdXJjb3RAZW5zdC1icmV0YWduZS5m cj4KQWNrZWQtYnk6IEVyaWMgRHVtYXpldCA8ZWR1bWF6ZXRAZ29vZ2xlLmNvbT4KU2lnbmVkLW9m Zi1ieTogRGF2aWQgUy4gTWlsbGVyIDxkYXZlbUBkYXZlbWxvZnQubmV0PgotLS0KIG5ldC9pcHY0 L3RjcF9taW5pc29ja3MuYyB8IDIgKy0KIG5ldC9pcHY2L3RjcF9pcHY2LmMgICAgICB8IDIgKy0K IDIgZmlsZXMgY2hhbmdlZCwgMiBpbnNlcnRpb25zKCspLCAyIGRlbGV0aW9ucygtKQoKZGlmZiAt LWdpdCBhL25ldC9pcHY0L3RjcF9taW5pc29ja3MuYyBiL25ldC9pcHY0L3RjcF9taW5pc29ja3Mu YwppbmRleCA3YTQzNmM1Li45MTI4ZDBhIDEwMDY0NAotLS0gYS9uZXQvaXB2NC90Y3BfbWluaXNv Y2tzLmMKKysrIGIvbmV0L2lwdjQvdGNwX21pbmlzb2Nrcy5jCkBAIC0yOTcsNyArMjk3LDcgQEAg dm9pZCB0Y3BfdGltZV93YWl0KHN0cnVjdCBzb2NrICpzaywgaW50IHN0YXRlLCBpbnQgdGltZW8p CiAJCQl0dy0+dHdfdjZfZGFkZHIgPSBzay0+c2tfdjZfZGFkZHI7CiAJCQl0dy0+dHdfdjZfcmN2 X3NhZGRyID0gc2stPnNrX3Y2X3Jjdl9zYWRkcjsKIAkJCXR3LT50d190Y2xhc3MgPSBucC0+dGNs YXNzOwotCQkJdHctPnR3X2Zsb3dsYWJlbCA9IG5wLT5mbG93X2xhYmVsID4+IDEyOworCQkJdHct PnR3X2Zsb3dsYWJlbCA9IGJlMzJfdG9fY3B1KG5wLT5mbG93X2xhYmVsICYgSVBWNl9GTE9XTEFC RUxfTUFTSyk7CiAJCQl0dy0+dHdfaXB2Nm9ubHkgPSBucC0+aXB2Nm9ubHk7CiAJCX0KICNlbmRp ZgpkaWZmIC0tZ2l0IGEvbmV0L2lwdjYvdGNwX2lwdjYuYyBiL25ldC9pcHY2L3RjcF9pcHY2LmMK aW5kZXggOWQ0MzMyZC4uYjUwYWUyOSAxMDA2NDQKLS0tIGEvbmV0L2lwdjYvdGNwX2lwdjYuYwor KysgYi9uZXQvaXB2Ni90Y3BfaXB2Ni5jCkBAIC05MDUsNyArOTA1LDcgQEAgc3RhdGljIHZvaWQg dGNwX3Y2X3RpbWV3YWl0X2FjayhzdHJ1Y3Qgc29jayAqc2ssIHN0cnVjdCBza19idWZmICpza2Ip CiAJCQl0Y3B0dy0+dHdfcmN2X3duZCA+PiB0dy0+dHdfcmN2X3dzY2FsZSwKIAkJCXRjcF90aW1l X3N0YW1wICsgdGNwdHctPnR3X3RzX29mZnNldCwKIAkJCXRjcHR3LT50d190c19yZWNlbnQsIHRj cF90d3NrX21kNV9rZXkodGNwdHcpLAotCQkJdHctPnR3X3RjbGFzcywgKHR3LT50d19mbG93bGFi ZWwgPDwgMTIpKTsKKwkJCXR3LT50d190Y2xhc3MsIGNwdV90b19iZTMyKHR3LT50d19mbG93bGFi ZWwpKTsKIAogCWluZXRfdHdza19wdXQodHcpOwogfQotLSAKMi4xLjAKCgpGcm9tIGEwOTFiMmMw Y2I4MzU4ODhjYTAwM2U4NThlMDA0NmM2MDJkODk4ZDIgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAx CkZyb206ICJFcmljIFcuIEJpZWRlcm1hbiIgPGViaWVkZXJtQHhtaXNzaW9uLmNvbT4KRGF0ZTog RnJpLCAyMiBNYXkgMjAxNSAwNDo1ODoxMiAtMDUwMApTdWJqZWN0OiBbUEFUQ0ggMDUvMTRdIGlw djQ6IEF2b2lkIGNyYXNoaW5nIGluIGlwX2Vycm9yCgpbIFVwc3RyZWFtIGNvbW1pdCAzODFjNzU5 ZDk5MTZjNDI5NTk1MTVhZDM0YTZkNDY3ZTI0YTg4ZTkzIF0KCmlwX2Vycm9yIGRvZXMgbm90IGNo ZWNrIGlmIGluX2RldiBpcyBOVUxMIGJlZm9yZSBkZXJlZmVyZW5jaW5nIGl0LgoKSVRoZSBmb2xs b3dpbmcgc2VxdWVuY2Ugb2YgY2FsbHMgaXMgcG9zc2libGU6CkNQVSBBICAgICAgICAgICAgICAg ICAgICAgICAgICBDUFUgQgppcF9yY3ZfZmluaXNoCiAgICBpcF9yb3V0ZV9pbnB1dF9ub3JlZigp CiAgICAgICAgaXBfcm91dGVfaW5wdXRfc2xvdygpCiAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICBpbmV0ZGV2X2Rlc3Ryb3koKQogICAgZHN0X2lucHV0KCkKCldpdGggdGhlIHJlc3VsdCB0 aGF0IGEgbmV0d29yayBkZXZpY2UgY2FuIGJlIGRlc3Ryb3llZCB3aGlsZSBwcm9jZXNzaW5nCmFu IGlucHV0IHBhY2tldC4KCkEgY3Jhc2ggd2FzIHRyaWdnZXJlZCB3aXRoIG9ubHkgdW5pY2FzdCBw YWNrZXRzIGluIGZsaWdodCwgYW5kCmZvcndhcmRpbmcgZW5hYmxlZCBvbiB0aGUgb25seSBuZXR3 b3JrIGRldmljZS4gICBUaGUgZXJyb3IgY29uZGl0aW9uCndhcyBjcmVhdGVkIGJ5IHRoZSByZW1v dmFsIG9mIHRoZSBuZXR3b3JrIGRldmljZS4KCkFzIHN1Y2ggaXQgaXMgbGlrZWx5IHRoZSB0aGF0 IGVycm9yIGNvZGUgd2FzIC1FSE9TVFVOUkVBQ0gsIGFuZCB0aGUKYWN0aW9uIHRha2VuIGJ5IGlw X2Vycm9yIChpZiBpbl9kZXYgaGFkIGJlZW4gYWNjZXNzaWJsZSkgd291bGQgaGF2ZQpiZWVuIHRv IG5vdCBpbmNyZW1lbnQgYW55IGNvdW50ZXJzIGFuZCB0byBoYXZlIHRyaWVkIGFuZCBsaWtlbHkg ZmFpbGVkCnRvIHNlbmQgYW4gaWNtcCBlcnJvciBhcyB0aGUgbmV0d29yayBkZXZpY2UgaXMgZ29p bmcgYXdheS4KClRoZXJlZm9yZSBoYW5kbGUgdGhpcyB3ZWlyZCBjYXNlIGJ5IGp1c3QgZHJvcHBp bmcgdGhlIHBhY2tldCBpZgohaW5fZGV2LiAgSXQgd2lsbCByZXN1bHQgaW4gZHJvcHBpbmcgdGhl IHBhY2tldCBzb29uZXIsIGFuZCB3aWxsIG5vdApyZXN1bHQgaW4gYW4gYWN0dWFsIGNoYW5nZSBv ZiBiZWhhdmlvci4KCkZpeGVzOiAyNTFkYTQxMzAxMTViICgiaXB2NDogQ2FjaGUgaXBfZXJyb3Io KSByb3V0ZXMgZXZlbiB3aGVuIG5vdCBmb3J3YXJkaW5nLiIpClJlcG9ydGVkLWJ5OiBWaXR0b3Jp byBHYW1iYWxldHRhIDxsaW51eGJ1Z3NAdml0dGdhbS5uZXQ+ClRlc3RlZC1ieTogVml0dG9yaW8g R2FtYmFsZXR0YSA8bGludXhidWdzQHZpdHRnYW0ubmV0PgpTaWduZWQtb2ZmLWJ5OiBWaXR0b3Jp byBHYW1iYWxldHRhIDxsaW51eGJ1Z3NAdml0dGdhbS5uZXQ+ClNpZ25lZC1vZmYtYnk6ICJFcmlj IFcuIEJpZWRlcm1hbiIgPGViaWVkZXJtQHhtaXNzaW9uLmNvbT4KQWNrZWQtYnk6IEVyaWMgRHVt YXpldCA8ZWR1bWF6ZXRAZ29vZ2xlLmNvbT4KU2lnbmVkLW9mZi1ieTogRGF2aWQgUy4gTWlsbGVy IDxkYXZlbUBkYXZlbWxvZnQubmV0PgotLS0KIG5ldC9pcHY0L3JvdXRlLmMgfCA0ICsrKysKIDEg ZmlsZSBjaGFuZ2VkLCA0IGluc2VydGlvbnMoKykKCmRpZmYgLS1naXQgYS9uZXQvaXB2NC9yb3V0 ZS5jIGIvbmV0L2lwdjQvcm91dGUuYwppbmRleCBiNjQzMzBmLi42MjU2MTVjIDEwMDY0NAotLS0g YS9uZXQvaXB2NC9yb3V0ZS5jCisrKyBiL25ldC9pcHY0L3JvdXRlLmMKQEAgLTkxMCw2ICs5MTAs MTAgQEAgc3RhdGljIGludCBpcF9lcnJvcihzdHJ1Y3Qgc2tfYnVmZiAqc2tiKQogCWJvb2wgc2Vu ZDsKIAlpbnQgY29kZTsKIAorCS8qIElQIG9uIHRoaXMgZGV2aWNlIGlzIGRpc2FibGVkLiAqLwor CWlmICghaW5fZGV2KQorCQlnb3RvIG91dDsKKwogCW5ldCA9IGRldl9uZXQocnQtPmRzdC5kZXYp OwogCWlmICghSU5fREVWX0ZPUldBUkQoaW5fZGV2KSkgewogCQlzd2l0Y2ggKHJ0LT5kc3QuZXJy b3IpIHsKLS0gCjIuMS4wCgoKRnJvbSAxYTkwYWU3MzdhYTBkNjM5M2JlOGJlODY1NzQ0NzBkODlm NGFjYzQzIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBUaGFkZXUgTGltYSBkZSBTb3V6 YSBDYXNjYXJkbyA8Y2FzY2FyZG9AcmVkaGF0LmNvbT4KRGF0ZTogRnJpLCAyMiBNYXkgMjAxNSAx MjoxODo1OSAtMDMwMApTdWJqZWN0OiBbUEFUQ0ggMDYvMTRdIGJyaWRnZTogZml4IHBhcnNpbmcg b2YgTUxEdjIgcmVwb3J0cwoKWyBVcHN0cmVhbSBjb21taXQgNDdjYzg0Y2UwYzJmZTc1Yzk5ZWE1 OTYzYzRiNTcwNGRkNzhlYWQ1NCBdCgpXaGVuIG1vcmUgdGhhbiBhIG11bHRpY2FzdCBhZGRyZXNz IGlzIHByZXNlbnQgaW4gYSBNTER2MiByZXBvcnQsIGFsbCBidXQKdGhlIGZpcnN0IGFkZHJlc3Mg aXMgaWdub3JlZCwgYmVjYXVzZSB0aGUgY29kZSBicmVha3Mgb3V0IG9mIHRoZSBsb29wIGlmCnRo ZXJlIGhhcyBub3QgYmVlbiBhbiBlcnJvciBhZGRpbmcgdGhhdCBhZGRyZXNzLgoKVGhpcyBoYXMg Y2F1c2VkIGZhaWx1cmVzIHdoZW4gdHdvIGd1ZXN0cyBjb25uZWN0ZWQgdGhyb3VnaCB0aGUgYnJp ZGdlCnRyaWVkIHRvIGNvbW11bmljYXRlIHVzaW5nIElQdjYuIE5laWdoYm9yIGRpc2NvdmVyaWVz IHdvdWxkIG5vdCBiZQp0cmFuc21pdHRlZCB0byB0aGUgb3RoZXIgZ3Vlc3Qgd2hlbiBib3RoIHVz ZWQgYSBsaW5rLWxvY2FsIGFkZHJlc3MgYW5kIGEKc3RhdGljIGFkZHJlc3MuCgpUaGlzIG9ubHkg aGFwcGVucyB3aGVuIHRoZXJlIGlzIGEgTUxEdjIgcXVlcmllciBpbiB0aGUgbmV0d29yay4KClRo ZSBmaXggd2lsbCBvbmx5IGJyZWFrIG91dCBvZiB0aGUgbG9vcCB3aGVuIHRoZXJlIGlzIGEgZmFp bHVyZSBhZGRpbmcgYQptdWx0aWNhc3QgYWRkcmVzcy4KClRoZSBtZGIgYmVmb3JlIHRoZSBwYXRj aDoKCmRldiBvdmlydG1nbXQgcG9ydCB2bmV0MCBncnAgZmYwMjo6MTpmZjdkOjY2MDMgdGVtcApk ZXYgb3ZpcnRtZ210IHBvcnQgdm5ldDEgZ3JwIGZmMDI6OjE6ZmY3ZDo2NjA0IHRlbXAKZGV2IG92 aXJ0bWdtdCBwb3J0IGJvbmQwLjg2IGdycCBmZjAyOjoyIHRlbXAKCkFmdGVyIHRoZSBwYXRjaDoK CmRldiBvdmlydG1nbXQgcG9ydCB2bmV0MCBncnAgZmYwMjo6MTpmZjdkOjY2MDMgdGVtcApkZXYg b3ZpcnRtZ210IHBvcnQgdm5ldDEgZ3JwIGZmMDI6OjE6ZmY3ZDo2NjA0IHRlbXAKZGV2IG92aXJ0 bWdtdCBwb3J0IGJvbmQwLjg2IGdycCBmZjAyOjpmYiB0ZW1wCmRldiBvdmlydG1nbXQgcG9ydCBi b25kMC44NiBncnAgZmYwMjo6MiB0ZW1wCmRldiBvdmlydG1nbXQgcG9ydCBib25kMC44NiBncnAg ZmYwMjo6ZCB0ZW1wCmRldiBvdmlydG1nbXQgcG9ydCB2bmV0MCBncnAgZmYwMjo6MTpmZjAwOjc2 IHRlbXAKZGV2IG92aXJ0bWdtdCBwb3J0IGJvbmQwLjg2IGdycCBmZjAyOjoxNiB0ZW1wCmRldiBv dmlydG1nbXQgcG9ydCB2bmV0MSBncnAgZmYwMjo6MTpmZjAwOjc3IHRlbXAKZGV2IG92aXJ0bWdt dCBwb3J0IGJvbmQwLjg2IGdycCBmZjAyOjoxOmZmMDA6ZGVmIHRlbXAKZGV2IG92aXJ0bWdtdCBw b3J0IGJvbmQwLjg2IGdycCBmZjAyOjoxOmZmYTE6NDBiZiB0ZW1wCgpGaXhlczogMDhiMjAyYjY3 MjY0ICgiYnJpZGdlIGJyX211bHRpY2FzdDogSVB2NiBNTEQgc3VwcG9ydC4iKQpSZXBvcnRlZC1i eTogUmlrIFRoZXlzIDxSaWsuVGhleXNAZXNhdC5rdWxldXZlbi5iZT4KU2lnbmVkLW9mZi1ieTog VGhhZGV1IExpbWEgZGUgU291emEgQ2FzY2FyZG8gPGNhc2NhcmRvQHJlZGhhdC5jb20+ClRlc3Rl ZC1ieTogUmlrIFRoZXlzIDxSaWsuVGhleXNAZXNhdC5rdWxldXZlbi5iZT4KU2lnbmVkLW9mZi1i eTogRGF2aWQgUy4gTWlsbGVyIDxkYXZlbUBkYXZlbWxvZnQubmV0PgotLS0KIG5ldC9icmlkZ2Uv YnJfbXVsdGljYXN0LmMgfCAyICstCiAxIGZpbGUgY2hhbmdlZCwgMSBpbnNlcnRpb24oKyksIDEg ZGVsZXRpb24oLSkKCmRpZmYgLS1naXQgYS9uZXQvYnJpZGdlL2JyX211bHRpY2FzdC5jIGIvbmV0 L2JyaWRnZS9icl9tdWx0aWNhc3QuYwppbmRleCA5MzA2N2VjLi4xMWEyZTZjIDEwMDY0NAotLS0g YS9uZXQvYnJpZGdlL2JyX211bHRpY2FzdC5jCisrKyBiL25ldC9icmlkZ2UvYnJfbXVsdGljYXN0 LmMKQEAgLTEwNTYsNyArMTA1Niw3IEBAIHN0YXRpYyBpbnQgYnJfaXA2X211bHRpY2FzdF9tbGQy X3JlcG9ydChzdHJ1Y3QgbmV0X2JyaWRnZSAqYnIsCiAKIAkJZXJyID0gYnJfaXA2X211bHRpY2Fz dF9hZGRfZ3JvdXAoYnIsIHBvcnQsICZncmVjLT5ncmVjX21jYSwKIAkJCQkJCSB2aWQpOwotCQlp ZiAoIWVycikKKwkJaWYgKGVycikKIAkJCWJyZWFrOwogCX0KIAotLSAKMi4xLjAKCgpGcm9tIGI1 YmVhZjFlMTY3NzE3NDU3MmZiN2UwNjIwNWY2YmQ0YjQzMDgyYWEgTW9uIFNlcCAxNyAwMDowMDow MCAyMDAxCkZyb206IFJpY2hhcmQgQ29jaHJhbiA8cmljaGFyZGNvY2hyYW5AZ21haWwuY29tPgpE YXRlOiBNb24sIDI1IE1heSAyMDE1IDExOjU1OjQzICswMjAwClN1YmplY3Q6IFtQQVRDSCAwNy8x NF0gbmV0OiBkcDgzNjQwOiBmaXggYnJva2VuIGNhbGlicmF0aW9uIHJvdXRpbmUuCgpbIFVwc3Ry ZWFtIGNvbW1pdCAzOTdhMjUzYWY1MDMxZGU0YTQ2MTIyMTAwNTU5MzUzMDlhZjQ0NzJjIF0KCkN1 cnJlbnRseSwgdGhlIGNhbGlicmF0aW9uIGZ1bmN0aW9uIHRoYXQgY29ycmVjdHMgdGhlIGluaXRp YWwgb2Zmc2V0cwphbW9uZyBtdWx0aXBsZSBkZXZpY2VzIG9ubHkgd29ya3MgdGhlIGZpcnN0IHRp bWUuICBJZiB0aGUgZnVuY3Rpb24gaXMKY2FsbGVkIG1vcmUgdGhhbiBvbmNlLCB0aGUgY2FsaWJy YXRpb24gZmFpbHMgYW5kIGJvZ3VzIG9mZnNldHMgd2lsbCBiZQpwcm9ncmFtbWVkIGludG8gdGhl IGRldmljZXMuCgpJbiBhIHdlbGwgaGlkZGVuIHNwb3QsIHRoZSBkZXZpY2UgZG9jdW1lbnRhdGlv biB0ZWxscyB0aGF0IHRyaWdnZXIgaW5kZXhlcwowIGFuZCAxIGFyZSBzcGVjaWFsIGluIGFsbG93 aW5nIHRoZSBUUklHX0lGX0xBVEUgZmxhZyB0byBhY3R1YWxseSB3b3JrLgoKVGhpcyBwYXRjaCBm aXhlcyB0aGUgaXNzdWUgYnkgdXNpbmcgb25lIG9mIHRoZSBzcGVjaWFsIHRyaWdnZXJzIGR1cmlu ZyB0aGUKcmVjYWxpYnJhdGlvbiBtZXRob2QuCgpTaWduZWQtb2ZmLWJ5OiBSaWNoYXJkIENvY2hy YW4gPHJpY2hhcmRjb2NocmFuQGdtYWlsLmNvbT4KU2lnbmVkLW9mZi1ieTogRGF2aWQgUy4gTWls bGVyIDxkYXZlbUBkYXZlbWxvZnQubmV0PgotLS0KIGRyaXZlcnMvbmV0L3BoeS9kcDgzNjQwLmMg fCAyICstCiAxIGZpbGUgY2hhbmdlZCwgMSBpbnNlcnRpb24oKyksIDEgZGVsZXRpb24oLSkKCmRp ZmYgLS1naXQgYS9kcml2ZXJzL25ldC9waHkvZHA4MzY0MC5jIGIvZHJpdmVycy9uZXQvcGh5L2Rw ODM2NDAuYwppbmRleCA5OGU3Y2JmLi44NTdlYjc2IDEwMDY0NAotLS0gYS9kcml2ZXJzL25ldC9w aHkvZHA4MzY0MC5jCisrKyBiL2RyaXZlcnMvbmV0L3BoeS9kcDgzNjQwLmMKQEAgLTQ1LDcgKzQ1 LDcgQEAKICNkZWZpbmUgUFNGX1RYCQkweDEwMDAKICNkZWZpbmUgRVhUX0VWRU5UCTEKICNkZWZp bmUgQ0FMX0VWRU5UCTcKLSNkZWZpbmUgQ0FMX1RSSUdHRVIJNworI2RlZmluZSBDQUxfVFJJR0dF UgkxCiAjZGVmaW5lIFBFUl9UUklHR0VSCTYKIAogI2RlZmluZSBNSUlfRFA4MzY0MF9NSUNSIDB4 MTEKLS0gCjIuMS4wCgoKRnJvbSA0MjZiNDYyMzRmYWVlZWM5YzVkOTZkYjM1MTI2ZTQ3OGExZDdi NzZjIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBSaWNoYXJkIENvY2hyYW4gPHJpY2hh cmRjb2NocmFuQGdtYWlsLmNvbT4KRGF0ZTogTW9uLCAyNSBNYXkgMjAxNSAxMTo1NTo0NCArMDIw MApTdWJqZWN0OiBbUEFUQ0ggMDgvMTRdIG5ldDogZHA4MzY0MDogcmVpbmZvcmNlIGxvY2tpbmcg cnVsZXMuCgpbIFVwc3RyZWFtIGNvbW1pdCBhOTM1ODY1YzgyOGM4Y2QyMDUwMWY2MThjNjlmNjU5 YTViNmQ2YTVmIF0KCkNhbGxlcnMgb2YgdGhlIGV4dF93cml0ZSBmdW5jdGlvbiBhcmUgc3VwcG9z ZWQgdG8gaG9sZCBhIG11dGV4IHRoYXQKcHJvdGVjdHMgdGhlIHN0YXRlIG9mIHRoZSBkaWFsZWQg cGFnZSwgYnV0IG9uZSBjYWxsZXIgd2FzIG1pc3NpbmcgdGhlCmxvY2sgZnJvbSB0aGUgdmVyeSBz dGFydCwgYW5kIG92ZXIgdGltZSB0aGUgY29kZSBoYXMgYmVlbiBjaGFuZ2VkCndpdGhvdXQgZm9s bG93aW5nIHRoZSBydWxlLiAgVGhpcyBwYXRjaCBjbGVhbnMgdXAgdGhlIGNhbGwgc2l0ZXMgaW4K dmlvbGF0aW9uIG9mIHRoZSBydWxlLgoKU2lnbmVkLW9mZi1ieTogUmljaGFyZCBDb2NocmFuIDxy aWNoYXJkY29jaHJhbkBnbWFpbC5jb20+ClNpZ25lZC1vZmYtYnk6IERhdmlkIFMuIE1pbGxlciA8 ZGF2ZW1AZGF2ZW1sb2Z0Lm5ldD4KLS0tCiBkcml2ZXJzL25ldC9waHkvZHA4MzY0MC5jIHwgMTcg KysrKysrKysrKysrKysrKy0KIDEgZmlsZSBjaGFuZ2VkLCAxNiBpbnNlcnRpb25zKCspLCAxIGRl bGV0aW9uKC0pCgpkaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvcGh5L2RwODM2NDAuYyBiL2RyaXZl cnMvbmV0L3BoeS9kcDgzNjQwLmMKaW5kZXggODU3ZWI3Ni4uMGJlM2Y5ZCAxMDA2NDQKLS0tIGEv ZHJpdmVycy9uZXQvcGh5L2RwODM2NDAuYworKysgYi9kcml2ZXJzL25ldC9waHkvZHA4MzY0MC5j CkBAIC00NDIsNyArNDQyLDkgQEAgc3RhdGljIGludCBwdHBfZHA4MzY0MF9lbmFibGUoc3RydWN0 IHB0cF9jbG9ja19pbmZvICpwdHAsCiAJCQllbHNlCiAJCQkJZXZudCB8PSBFVk5UX1JJU0U7CiAJ CX0KKwkJbXV0ZXhfbG9jaygmY2xvY2stPmV4dHJlZ19sb2NrKTsKIAkJZXh0X3dyaXRlKDAsIHBo eWRldiwgUEFHRTUsIFBUUF9FVk5ULCBldm50KTsKKwkJbXV0ZXhfdW5sb2NrKCZjbG9jay0+ZXh0 cmVnX2xvY2spOwogCQlyZXR1cm4gMDsKIAogCWNhc2UgUFRQX0NMS19SRVFfUEVST1VUOgpAQCAt NDYzLDYgKzQ2NSw4IEBAIHN0YXRpYyB1OCBzdGF0dXNfZnJhbWVfc3JjWzZdID0geyAweDA4LCAw eDAwLCAweDE3LCAweDBCLCAweDZCLCAweDBGIH07CiAKIHN0YXRpYyB2b2lkIGVuYWJsZV9zdGF0 dXNfZnJhbWVzKHN0cnVjdCBwaHlfZGV2aWNlICpwaHlkZXYsIGJvb2wgb24pCiB7CisJc3RydWN0 IGRwODM2NDBfcHJpdmF0ZSAqZHA4MzY0MCA9IHBoeWRldi0+cHJpdjsKKwlzdHJ1Y3QgZHA4MzY0 MF9jbG9jayAqY2xvY2sgPSBkcDgzNjQwLT5jbG9jazsKIAl1MTYgY2ZnMCA9IDAsIHZlcjsKIAog CWlmIChvbikKQEAgLTQ3MCw5ICs0NzQsMTMgQEAgc3RhdGljIHZvaWQgZW5hYmxlX3N0YXR1c19m cmFtZXMoc3RydWN0IHBoeV9kZXZpY2UgKnBoeWRldiwgYm9vbCBvbikKIAogCXZlciA9IChQU0Zf UFRQVkVSICYgVkVSU0lPTlBUUF9NQVNLKSA8PCBWRVJTSU9OUFRQX1NISUZUOwogCisJbXV0ZXhf bG9jaygmY2xvY2stPmV4dHJlZ19sb2NrKTsKKwogCWV4dF93cml0ZSgwLCBwaHlkZXYsIFBBR0U1 LCBQU0ZfQ0ZHMCwgY2ZnMCk7CiAJZXh0X3dyaXRlKDAsIHBoeWRldiwgUEFHRTYsIFBTRl9DRkcx LCB2ZXIpOwogCisJbXV0ZXhfdW5sb2NrKCZjbG9jay0+ZXh0cmVnX2xvY2spOworCiAJaWYgKCFw aHlkZXYtPmF0dGFjaGVkX2RldikgewogCQlwcl93YXJuKCJleHBlY3RlZCB0byBmaW5kIGFuIGF0 dGFjaGVkIG5ldGRldmljZVxuIik7CiAJCXJldHVybjsKQEAgLTEwNjMsMTEgKzEwNzEsMTggQEAg c3RhdGljIGludCBkcDgzNjQwX2NvbmZpZ19pbml0KHN0cnVjdCBwaHlfZGV2aWNlICpwaHlkZXYp CiAKIAlpZiAoY2xvY2stPmNob3NlbiAmJiAhbGlzdF9lbXB0eSgmY2xvY2stPnBoeWxpc3QpKQog CQlyZWNhbGlicmF0ZShjbG9jayk7Ci0JZWxzZQorCWVsc2UgeworCQltdXRleF9sb2NrKCZjbG9j ay0+ZXh0cmVnX2xvY2spOwogCQllbmFibGVfYnJvYWRjYXN0KHBoeWRldiwgY2xvY2stPnBhZ2Us IDEpOworCQltdXRleF91bmxvY2soJmNsb2NrLT5leHRyZWdfbG9jayk7CisJfQogCiAJZW5hYmxl X3N0YXR1c19mcmFtZXMocGh5ZGV2LCB0cnVlKTsKKworCW11dGV4X2xvY2soJmNsb2NrLT5leHRy ZWdfbG9jayk7CiAJZXh0X3dyaXRlKDAsIHBoeWRldiwgUEFHRTQsIFBUUF9DVEwsIFBUUF9FTkFC TEUpOworCW11dGV4X3VubG9jaygmY2xvY2stPmV4dHJlZ19sb2NrKTsKKwogCXJldHVybiAwOwog fQogCi0tIAoyLjEuMAoKCkZyb20gODg0ZTRjNmFjMWEzNDBmY2I2NjdiMmExYTBmYWRkYTFiMWIy OGRjZSBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJvbTogTWFyayBTYWx5enluIDxzYWx5enlu QGFuZHJvaWQuY29tPgpEYXRlOiBUdWUsIDI2IE1heSAyMDE1IDA4OjIyOjE5IC0wNzAwClN1Ympl Y3Q6IFtQQVRDSCAwOS8xNF0gdW5peC9jYWlmOiBza19zb2NrZXQgY2FuIGRpc2FwcGVhciB3aGVu IHN0YXRlIGlzCiB1bmxvY2tlZAoKWyBVcHN0cmVhbSBjb21taXQgYjQ4NzMyZTRhNDhkODBlZDRh MTQ4MTJmMGJhYjA5NTYwODQ2NTE0ZSBdCgpnb3QgYSByYXJlIE5VTEwgcG9pbnRlciBkZXJlZmVy ZW5jZSBpbiBjbGVhcl9iaXQKClNpZ25lZC1vZmYtYnk6IE1hcmsgU2FseXp5biA8c2FseXp5bkBh bmRyb2lkLmNvbT4KQWNrZWQtYnk6IEhhbm5lcyBGcmVkZXJpYyBTb3dhIDxoYW5uZXNAc3RyZXNz aW5kdWt0aW9uLm9yZz4KLS0tLQp2Mjogc3dpdGNoIHRvIHNvY2tfZmxhZyhzaywgU09DS19ERUFE KSBhbmQgYWRkZWQgbmV0L2NhaWYvY2FpZl9zb2NrZXQuYwp2MzogcmV0dXJuIC1FQ09OTlJFU0VU IGluIHVwc3RyZWFtIGNhbGxlciBvZiB3YWl0IGZ1bmN0aW9uIGZvciBTT0NLX0RFQUQKU2lnbmVk LW9mZi1ieTogRGF2aWQgUy4gTWlsbGVyIDxkYXZlbUBkYXZlbWxvZnQubmV0PgotLS0KIG5ldC9j YWlmL2NhaWZfc29ja2V0LmMgfCA4ICsrKysrKysrCiBuZXQvdW5peC9hZl91bml4LmMgICAgIHwg OCArKysrKysrKwogMiBmaWxlcyBjaGFuZ2VkLCAxNiBpbnNlcnRpb25zKCspCgpkaWZmIC0tZ2l0 IGEvbmV0L2NhaWYvY2FpZl9zb2NrZXQuYyBiL25ldC9jYWlmL2NhaWZfc29ja2V0LmMKaW5kZXgg NTI2YmY1Ni4uYWZlYjhlMCAxMDA2NDQKLS0tIGEvbmV0L2NhaWYvY2FpZl9zb2NrZXQuYworKysg Yi9uZXQvY2FpZi9jYWlmX3NvY2tldC5jCkBAIC0zMzIsNiArMzMyLDEwIEBAIHN0YXRpYyBsb25n IGNhaWZfc3RyZWFtX2RhdGFfd2FpdChzdHJ1Y3Qgc29jayAqc2ssIGxvbmcgdGltZW8pCiAJCXJl bGVhc2Vfc29jayhzayk7CiAJCXRpbWVvID0gc2NoZWR1bGVfdGltZW91dCh0aW1lbyk7CiAJCWxv Y2tfc29jayhzayk7CisKKwkJaWYgKHNvY2tfZmxhZyhzaywgU09DS19ERUFEKSkKKwkJCWJyZWFr OworCiAJCWNsZWFyX2JpdChTT0NLX0FTWU5DX1dBSVREQVRBLCAmc2stPnNrX3NvY2tldC0+Zmxh Z3MpOwogCX0KIApAQCAtMzc2LDYgKzM4MCwxMCBAQCBzdGF0aWMgaW50IGNhaWZfc3RyZWFtX3Jl Y3Ztc2coc3RydWN0IGtpb2NiICppb2NiLCBzdHJ1Y3Qgc29ja2V0ICpzb2NrLAogCQlzdHJ1Y3Qg c2tfYnVmZiAqc2tiOwogCiAJCWxvY2tfc29jayhzayk7CisJCWlmIChzb2NrX2ZsYWcoc2ssIFNP Q0tfREVBRCkpIHsKKwkJCWVyciA9IC1FQ09OTlJFU0VUOworCQkJZ290byB1bmxvY2s7CisJCX0K IAkJc2tiID0gc2tiX2RlcXVldWUoJnNrLT5za19yZWNlaXZlX3F1ZXVlKTsKIAkJY2FpZl9jaGVj a19mbG93X3JlbGVhc2Uoc2spOwogCmRpZmYgLS1naXQgYS9uZXQvdW5peC9hZl91bml4LmMgYi9u ZXQvdW5peC9hZl91bml4LmMKaW5kZXggOTQ0MDRmMS4uNDc1N2YxYyAxMDA2NDQKLS0tIGEvbmV0 L3VuaXgvYWZfdW5peC5jCisrKyBiL25ldC91bml4L2FmX3VuaXguYwpAQCAtMTg5Myw2ICsxODkz LDEwIEBAIHN0YXRpYyBsb25nIHVuaXhfc3RyZWFtX2RhdGFfd2FpdChzdHJ1Y3Qgc29jayAqc2ss IGxvbmcgdGltZW8sCiAJCXVuaXhfc3RhdGVfdW5sb2NrKHNrKTsKIAkJdGltZW8gPSBmcmVlemFi bGVfc2NoZWR1bGVfdGltZW91dCh0aW1lbyk7CiAJCXVuaXhfc3RhdGVfbG9jayhzayk7CisKKwkJ aWYgKHNvY2tfZmxhZyhzaywgU09DS19ERUFEKSkKKwkJCWJyZWFrOworCiAJCWNsZWFyX2JpdChT T0NLX0FTWU5DX1dBSVREQVRBLCAmc2stPnNrX3NvY2tldC0+ZmxhZ3MpOwogCX0KIApAQCAtMTk1 Nyw2ICsxOTYxLDEwIEBAIHN0YXRpYyBpbnQgdW5peF9zdHJlYW1fcmVjdm1zZyhzdHJ1Y3Qga2lv Y2IgKmlvY2IsIHN0cnVjdCBzb2NrZXQgKnNvY2ssCiAJCXN0cnVjdCBza19idWZmICpza2IsICps YXN0OwogCiAJCXVuaXhfc3RhdGVfbG9jayhzayk7CisJCWlmIChzb2NrX2ZsYWcoc2ssIFNPQ0tf REVBRCkpIHsKKwkJCWVyciA9IC1FQ09OTlJFU0VUOworCQkJZ290byB1bmxvY2s7CisJCX0KIAkJ bGFzdCA9IHNrYiA9IHNrYl9wZWVrKCZzay0+c2tfcmVjZWl2ZV9xdWV1ZSk7CiBhZ2FpbjoKIAkJ aWYgKHNrYiA9PSBOVUxMKSB7Ci0tIAoyLjEuMAoKCkZyb20gYjQ3NjNiNDQyNDRlNzc4ZWRmZmFi YWY5YThhMTQxYjViNDE4ZmY5MyBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJvbTogV0FORyBD b25nIDx4aXlvdS53YW5nY29uZ0BnbWFpbC5jb20+CkRhdGU6IFR1ZSwgMjYgTWF5IDIwMTUgMTY6 MDg6NDggLTA3MDAKU3ViamVjdDogW1BBVENIIDEwLzE0XSBuZXRfc2NoZWQ6IGludm9rZSAtPmF0 dGFjaCgpIGFmdGVyIHNldHRpbmcgZGV2LT5xZGlzYwoKWyBVcHN0cmVhbSBjb21taXQgODZlMzYz ZGMzYjUwYmZkNTBhMWYzMTU5MzQ1ODNmYmRhNjczYWI4ZCBdCgpGb3IgbXEgcWRpc2MsIHdlIGFk ZCBwZXIgdHggcXVldWUgcWRpc2MgdG8gcm9vdCBxZGlzYwpmb3IgZGlzcGxheSBwdXJwb3NlLCBo b3dldmVyLCB0aGF0IGhhcHBlbnMgdG9vIGVhcmx5LApiZWZvcmUgdGhlIG5ldyBkZXYtPnFkaXNj IGlzIGZpbmFsbHkgc2V0LCB0aGlzIGNhdXNlcwpxLT5saXN0IHBvaW50cyB0byBhbiBvbGQgcm9v dCBxZGlzYyB3aGljaCBpcyBnb2luZyB0byBiZQpmcmVlZCByaWdodCBiZWZvcmUgYXNzaWduaW5n IHdpdGggYSBuZXcgb25lLgoKRml4IHRoaXMgYnkgbW92aW5nIC0+YXR0YWNoKCkgYWZ0ZXIgc2V0 dGluZyBkZXYtPnFkaXNjLgoKRm9yIHRoZSByZWNvcmQsIHRoaXMgZml4ZXMgdGhlIGZvbGxvd2lu ZyBjcmFzaDoKCiAtLS0tLS0tLS0tLS1bIGN1dCBoZXJlIF0tLS0tLS0tLS0tLS0KIFdBUk5JTkc6 IENQVTogMSBQSUQ6IDk3NSBhdCBsaWIvbGlzdF9kZWJ1Zy5jOjU5IF9fbGlzdF9kZWxfZW50cnkr MHg1YS8weDk4KCkKIGxpc3RfZGVsIGNvcnJ1cHRpb24uIHByZXYtPm5leHQgc2hvdWxkIGJlIGZm ZmY4ODAwZDE5OThhZTgsIGJ1dCB3YXMgNmI2YjZiNmI2YjZiNmI2YgogQ1BVOiAxIFBJRDogOTc1 IENvbW06IHRjIE5vdCB0YWludGVkIDQuMS4wLXJjNCsgIzEwMTkKIEhhcmR3YXJlIG5hbWU6IEJv Y2hzIEJvY2hzLCBCSU9TIEJvY2hzIDAxLzAxLzIwMTEKICAwMDAwMDAwMDAwMDAwMDA5IGZmZmY4 ODAwZDczZmI5MjggZmZmZmZmZmY4MWE0NGU3ZiAwMDAwMDAwMDQ3NTc0NzU2CiAgZmZmZjg4MDBk NzNmYjk3OCBmZmZmODgwMGQ3M2ZiOTY4IGZmZmZmZmZmODEwNzkwZGEgZmZmZjg4MDBjZmM0Y2Qy MAogIGZmZmZmZmZmODE0ZTcyNWIgZmZmZjg4MDBkMTk5OGFlOCBmZmZmZmZmZjgyMzgxMjUwIDAw MDAwMDAwMDAwMDAwMDAKIENhbGwgVHJhY2U6CiAgWzxmZmZmZmZmZjgxYTQ0ZTdmPl0gZHVtcF9z dGFjaysweDRjLzB4NjUKICBbPGZmZmZmZmZmODEwNzkwZGE+XSB3YXJuX3Nsb3dwYXRoX2NvbW1v bisweDljLzB4YjYKICBbPGZmZmZmZmZmODE0ZTcyNWI+XSA/IF9fbGlzdF9kZWxfZW50cnkrMHg1 YS8weDk4CiAgWzxmZmZmZmZmZjgxMDc5MTYyPl0gd2Fybl9zbG93cGF0aF9mbXQrMHg0Ni8weDQ4 CiAgWzxmZmZmZmZmZjgxODIwZWIwPl0gPyBkZXZfZ3JhZnRfcWRpc2MrMHg1ZS8weDZhCiAgWzxm ZmZmZmZmZjgxNGU3MjViPl0gX19saXN0X2RlbF9lbnRyeSsweDVhLzB4OTgKICBbPGZmZmZmZmZm ODE0ZTcyYTc+XSBsaXN0X2RlbCsweGUvMHgyZAogIFs8ZmZmZmZmZmY4MTgyMmYwNT5dIHFkaXNj X2xpc3RfZGVsKzB4MWUvMHgyMAogIFs8ZmZmZmZmZmY4MTgyMGNkMT5dIHFkaXNjX2Rlc3Ryb3kr MHgzMC8weGQ2CiAgWzxmZmZmZmZmZjgxODIyNjc2Pl0gcWRpc2NfZ3JhZnQrMHgxMWQvMHgyNDMK ICBbPGZmZmZmZmZmODE4MjMzYzE+XSB0Y19nZXRfcWRpc2MrMHgxYTYvMHgxZDQKICBbPGZmZmZm ZmZmODEwYjVlYWY+XSA/IG1hcmtfbG9jaysweDJlLzB4MjI2CiAgWzxmZmZmZmZmZjgxN2ZmOGY1 Pl0gcnRuZXRsaW5rX3Jjdl9tc2crMHgxODEvMHgxOTQKICBbPGZmZmZmZmZmODE3ZmY3MmU+XSA/ IHJ0bmxfbG9jaysweDE3LzB4MTkKICBbPGZmZmZmZmZmODE3ZmY3MmU+XSA/IHJ0bmxfbG9jaysw eDE3LzB4MTkKICBbPGZmZmZmZmZmODE3ZmY3NzQ+XSA/IF9fcnRubF91bmxvY2srMHgxNy8weDE3 CiAgWzxmZmZmZmZmZjgxODU1ZGM2Pl0gbmV0bGlua19yY3Zfc2tiKzB4NGQvMHg5MwogIFs8ZmZm ZmZmZmY4MTdmZjc1Nj5dIHJ0bmV0bGlua19yY3YrMHgyNi8weDJkCiAgWzxmZmZmZmZmZjgxODU0 NGIyPl0gbmV0bGlua191bmljYXN0KzB4Y2IvMHgxNTAKICBbPGZmZmZmZmZmODExNjFkYjk+XSA/ IG1pZ2h0X2ZhdWx0KzB4NTkvMHhhOQogIFs8ZmZmZmZmZmY4MTg1NGY3OD5dIG5ldGxpbmtfc2Vu ZG1zZysweDRmYS8weDUxYwogIFs8ZmZmZmZmZmY4MTdkNmUwOT5dIHNvY2tfc2VuZG1zZ19ub3Nl YysweDEyLzB4MWQKICBbPGZmZmZmZmZmODE3ZDg5Njc+XSBzb2NrX3NlbmRtc2crMHgyOS8weDJl CiAgWzxmZmZmZmZmZjgxN2Q4Y2YzPl0gX19fc3lzX3NlbmRtc2crMHgxYjQvMHgyM2EKICBbPGZm ZmZmZmZmODEwMGExYjg+XSA/IG5hdGl2ZV9zY2hlZF9jbG9jaysweDM1LzB4MzcKICBbPGZmZmZm ZmZmODEwYTFkODM+XSA/IHNjaGVkX2Nsb2NrX2xvY2FsKzB4MTIvMHg3MgogIFs8ZmZmZmZmZmY4 MTBhMWZkND5dID8gc2NoZWRfY2xvY2tfY3B1KzB4OWUvMHhiNwogIFs8ZmZmZmZmZmY4MTBkZWYy YT5dID8gY3VycmVudF9rZXJuZWxfdGltZSsweGUvMHgzMgogIFs8ZmZmZmZmZmY4MTBiNGJjNT5d ID8gbG9ja19yZWxlYXNlX2hvbGR0aW1lLnBhcnQuMjkrMHg3MS8weDdmCiAgWzxmZmZmZmZmZjgx MGRkZWJmPl0gPyByZWFkX3NlcWNvdW50X2JlZ2luLmNvbnN0cHJvcC4yNysweDVmLzB4NzYKICBb PGZmZmZmZmZmODEwYjYyOTI+XSA/IHRyYWNlX2hhcmRpcnFzX29uX2NhbGxlcisweDE3ZC8weDE5 OQogIFs8ZmZmZmZmZmY4MTFiMTRkNT5dID8gX19mZ2V0X2xpZ2h0KzB4NTAvMHg3OAogIFs8ZmZm ZmZmZmY4MTdkOTgwOD5dIF9fc3lzX3NlbmRtc2crMHg0Mi8weDYwCiAgWzxmZmZmZmZmZjgxN2Q5 ODM4Pl0gU3lTX3NlbmRtc2crMHgxMi8weDFjCiAgWzxmZmZmZmZmZjgxYTUwZTk3Pl0gc3lzdGVt X2NhbGxfZmFzdHBhdGgrMHgxMi8weDZmCiAtLS1bIGVuZCB0cmFjZSBlZjI5ZDNmYjI4ZTk3YWU3 IF0tLS0KCkZvciBsb25nIHRlcm0sIHdlIHByb2JhYmx5IG5lZWQgdG8gY2xlYW4gdXAgdGhlIHFk aXNjX2dyYWZ0KCkgY29kZQppbiBjYXNlIGl0IGhpZGVzIG90aGVyIGJ1Z3MgbGlrZSB0aGlzLgoK Rml4ZXM6IDk1ZGMxOTI5OWY3NCAoInBrdF9zY2hlZDogZ2l2ZSB2aXNpYmlsaXR5IHRvIG1xIHNs YXZlIHFkaXNjcyIpCkNjOiBKYW1hbCBIYWRpIFNhbGltIDxqaHNAbW9qYXRhdHUuY29tPgpTaWdu ZWQtb2ZmLWJ5OiBDb25nIFdhbmcgPHhpeW91Lndhbmdjb25nQGdtYWlsLmNvbT4KQWNrZWQtYnk6 IEVyaWMgRHVtYXpldCA8ZWR1bWF6ZXRAZ29vZ2xlLmNvbT4KU2lnbmVkLW9mZi1ieTogRGF2aWQg Uy4gTWlsbGVyIDxkYXZlbUBkYXZlbWxvZnQubmV0PgotLS0KIG5ldC9zY2hlZC9zY2hfYXBpLmMg fCAxMCArKysrKystLS0tCiAxIGZpbGUgY2hhbmdlZCwgNiBpbnNlcnRpb25zKCspLCA0IGRlbGV0 aW9ucygtKQoKZGlmZiAtLWdpdCBhL25ldC9zY2hlZC9zY2hfYXBpLmMgYi9uZXQvc2NoZWQvc2No X2FwaS5jCmluZGV4IDk4NTMyY2YuLmJkYWVkMzEgMTAwNjQ0Ci0tLSBhL25ldC9zY2hlZC9zY2hf YXBpLmMKKysrIGIvbmV0L3NjaGVkL3NjaF9hcGkuYwpAQCAtODEyLDEwICs4MTIsOCBAQCBzdGF0 aWMgaW50IHFkaXNjX2dyYWZ0KHN0cnVjdCBuZXRfZGV2aWNlICpkZXYsIHN0cnVjdCBRZGlzYyAq cGFyZW50LAogCQlpZiAoZGV2LT5mbGFncyAmIElGRl9VUCkKIAkJCWRldl9kZWFjdGl2YXRlKGRl dik7CiAKLQkJaWYgKG5ldyAmJiBuZXctPm9wcy0+YXR0YWNoKSB7Ci0JCQluZXctPm9wcy0+YXR0 YWNoKG5ldyk7Ci0JCQludW1fcSA9IDA7Ci0JCX0KKwkJaWYgKG5ldyAmJiBuZXctPm9wcy0+YXR0 YWNoKQorCQkJZ290byBza2lwOwogCiAJCWZvciAoaSA9IDA7IGkgPCBudW1fcTsgaSsrKSB7CiAJ CQlzdHJ1Y3QgbmV0ZGV2X3F1ZXVlICpkZXZfcXVldWUgPSBkZXZfaW5ncmVzc19xdWV1ZShkZXYp OwpAQCAtODMxLDEyICs4MjksMTYgQEAgc3RhdGljIGludCBxZGlzY19ncmFmdChzdHJ1Y3QgbmV0 X2RldmljZSAqZGV2LCBzdHJ1Y3QgUWRpc2MgKnBhcmVudCwKIAkJCQlxZGlzY19kZXN0cm95KG9s ZCk7CiAJCX0KIAorc2tpcDoKIAkJaWYgKCFpbmdyZXNzKSB7CiAJCQlub3RpZnlfYW5kX2Rlc3Ry b3kobmV0LCBza2IsIG4sIGNsYXNzaWQsCiAJCQkJCSAgIGRldi0+cWRpc2MsIG5ldyk7CiAJCQlp ZiAobmV3ICYmICFuZXctPm9wcy0+YXR0YWNoKQogCQkJCWF0b21pY19pbmMoJm5ldy0+cmVmY250 KTsKIAkJCWRldi0+cWRpc2MgPSBuZXcgPyA6ICZub29wX3FkaXNjOworCisJCQlpZiAobmV3ICYm IG5ldy0+b3BzLT5hdHRhY2gpCisJCQkJbmV3LT5vcHMtPmF0dGFjaChuZXcpOwogCQl9IGVsc2Ug ewogCQkJbm90aWZ5X2FuZF9kZXN0cm95KG5ldCwgc2tiLCBuLCBjbGFzc2lkLCBvbGQsIG5ldyk7 CiAJCX0KLS0gCjIuMS4wCgoKRnJvbSBmOGZjNGY4NjljYTFhNmEwYzI3MWNhMGU5MzFlNzYyMzJj ZWVlNWU0IE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBFcmljIER1bWF6ZXQgPGVkdW1h emV0QGdvb2dsZS5jb20+CkRhdGU6IFNhdCwgMzAgTWF5IDIwMTUgMDk6MTY6NTMgLTA3MDAKU3Vi amVjdDogW1BBVENIIDExLzE0XSB1ZHA6IGZpeCBiZWhhdmlvciBvZiB3cm9uZyBjaGVja3N1bXMK ClsgVXBzdHJlYW0gY29tbWl0IGJlYjM5ZGI1OWQxNDk5MGU0MDFlMjM1ZmFmNjZhNmI5YjMxMjQw YjAgXQoKV2UgaGF2ZSB0d28gcHJvYmxlbXMgaW4gVURQIHN0YWNrIHJlbGF0ZWQgdG8gYm9ndXMg Y2hlY2tzdW1zIDoKCjEpIFdlIHJldHVybiAtRUFHQUlOIHRvIGFwcGxpY2F0aW9uIGV2ZW4gaWYg cmVjZWl2ZSBxdWV1ZSBpcyBub3QgZW1wdHkuCiAgIFRoaXMgYnJlYWtzIGFwcGxpY2F0aW9ucyB1 c2luZyBlZGdlIHRyaWdnZXIgZXBvbGwoKQoKMikgVW5kZXIgVURQIGZsb29kLCB3ZSBjYW4gbG9v cCBmb3JldmVyIHdpdGhvdXQgeWllbGRpbmcgdG8gb3RoZXIKICAgcHJvY2Vzc2VzLCBwb3RlbnRp YWxseSBoYW5naW5nIHRoZSBob3N0LCBlc3BlY2lhbGx5IG9uIG5vbiBTTVAuCgpUaGlzIHBhdGNo IGlzIGFuIGF0dGVtcHQgdG8gbWFrZSB0aGluZ3MgYmV0dGVyLgoKV2UgbWlnaHQgaW4gdGhlIGZ1 dHVyZSBhZGQgZXh0cmEgc3VwcG9ydCBmb3IgcnQgYXBwbGljYXRpb25zCndhbnRpbmcgdG8gYmV0 dGVyIGNvbnRyb2wgdGltZSBzcGVudCBkb2luZyBhIHJlY3YoKSBpbiBhIGhvc3RpbGUKZW52aXJv bm1lbnQuIEZvciBleGFtcGxlIHdlIGNvdWxkIHZhbGlkYXRlIGNoZWNrc3VtcyBiZWZvcmUgcXVl dWluZwpwYWNrZXRzIGluIHNvY2tldCByZWNlaXZlIHF1ZXVlLgoKU2lnbmVkLW9mZi1ieTogRXJp YyBEdW1hemV0IDxlZHVtYXpldEBnb29nbGUuY29tPgpDYzogV2lsbGVtIGRlIEJydWlqbiA8d2ls bGVtYkBnb29nbGUuY29tPgpTaWduZWQtb2ZmLWJ5OiBEYXZpZCBTLiBNaWxsZXIgPGRhdmVtQGRh dmVtbG9mdC5uZXQ+Ci0tLQogbmV0L2lwdjQvdWRwLmMgfCA2ICsrLS0tLQogbmV0L2lwdjYvdWRw LmMgfCA2ICsrLS0tLQogMiBmaWxlcyBjaGFuZ2VkLCA0IGluc2VydGlvbnMoKyksIDggZGVsZXRp b25zKC0pCgpkaWZmIC0tZ2l0IGEvbmV0L2lwdjQvdWRwLmMgYi9uZXQvaXB2NC91ZHAuYwppbmRl eCBiMjVlODUyLi41ZGIzZTJjIDEwMDY0NAotLS0gYS9uZXQvaXB2NC91ZHAuYworKysgYi9uZXQv aXB2NC91ZHAuYwpAQCAtMTMxNywxMCArMTMxNyw4IEBAIGNzdW1fY29weV9lcnI6CiAJfQogCXVu bG9ja19zb2NrX2Zhc3Qoc2ssIHNsb3cpOwogCi0JaWYgKG5vYmxvY2spCi0JCXJldHVybiAtRUFH QUlOOwotCi0JLyogc3RhcnRpbmcgb3ZlciBmb3IgYSBuZXcgcGFja2V0ICovCisJLyogc3RhcnRp bmcgb3ZlciBmb3IgYSBuZXcgcGFja2V0LCBidXQgY2hlY2sgaWYgd2UgbmVlZCB0byB5aWVsZCAq LworCWNvbmRfcmVzY2hlZCgpOwogCW1zZy0+bXNnX2ZsYWdzICY9IH5NU0dfVFJVTkM7CiAJZ290 byB0cnlfYWdhaW47CiB9CmRpZmYgLS1naXQgYS9uZXQvaXB2Ni91ZHAuYyBiL25ldC9pcHY2L3Vk cC5jCmluZGV4IDIwYjYzZDIuLjM4NjI1YTkgMTAwNjQ0Ci0tLSBhL25ldC9pcHY2L3VkcC5jCisr KyBiL25ldC9pcHY2L3VkcC5jCkBAIC01MTUsMTAgKzUxNSw4IEBAIGNzdW1fY29weV9lcnI6CiAJ fQogCXVubG9ja19zb2NrX2Zhc3Qoc2ssIHNsb3cpOwogCi0JaWYgKG5vYmxvY2spCi0JCXJldHVy biAtRUFHQUlOOwotCi0JLyogc3RhcnRpbmcgb3ZlciBmb3IgYSBuZXcgcGFja2V0ICovCisJLyog c3RhcnRpbmcgb3ZlciBmb3IgYSBuZXcgcGFja2V0LCBidXQgY2hlY2sgaWYgd2UgbmVlZCB0byB5 aWVsZCAqLworCWNvbmRfcmVzY2hlZCgpOwogCW1zZy0+bXNnX2ZsYWdzICY9IH5NU0dfVFJVTkM7 CiAJZ290byB0cnlfYWdhaW47CiB9Ci0tIAoyLjEuMAoKCkZyb20gNjg2NGEwYjBhYTlkMTMwNTk3 ZDJkMjU3ODlhZGExODc3MmE2YmY4YSBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJvbTogSWFu IENhbXBiZWxsIDxJYW4uQ2FtcGJlbGxAY2l0cml4LmNvbT4KRGF0ZTogTW9uLCAxIEp1biAyMDE1 IDExOjMwOjI0ICswMTAwClN1YmplY3Q6IFtQQVRDSCAxMi8xNF0geGVuOiBuZXRiYWNrOiByZWFk IGhvdHBsdWcgc2NyaXB0IG9uY2UgYXQgc3RhcnQgb2YgZGF5LgoKWyBVcHN0cmVhbSBjb21taXQg MzFhNDE4OTg2YTU4NTIwMzRkNTIwYTViYWI1NDY4MjFmZjFjY2YzZCBdCgpXaGVuIHdlIGNvbWUg dG8gdGVhciB0aGluZ3MgZG93biBpbiBuZXRiYWNrX3JlbW92ZSgpIGFuZCBnZW5lcmF0ZSB0aGUK dWV2ZW50IGl0IGlzIHBvc3NpYmxlIHRoYXQgdGhlIHhlbnN0b3JlIGRpcmVjdG9yeSBoYXMgYWxy ZWFkeSBiZWVuCnJlbW92ZWQgKGRldGFpbHMgYmVsb3cpLgoKSW4gc3VjaCBjYXNlcyBuZXRiYWNr X3VldmVudCgpIHdvbid0IGJlIGFibGUgdG8gcmVhZCB0aGUgaG90cGx1ZwpzY3JpcHQgYW5kIHdp bGwgd3JpdGUgYSB4ZW5zdG9yZSBlcnJvciBub2RlLgoKQSByZWNlbnQgY2hhbmdlIHRvIHRoZSBo eXBlcnZpc29yIGV4cG9zZWQgdGhpcyByYWNlIHN1Y2ggdGhhdCB3ZSBub3cKc29tZXRpbWVzIGxv c2UgaXQgKHdoZXJlIGFwcGFyZW50bHkgd2UgZGlkbid0IGV2ZXIgYmVmb3JlKS4KCkluc3RlYWQg cmVhZCB0aGUgaG90cGx1ZyBzY3JpcHQgY29uZmlndXJhdGlvbiBkdXJpbmcgc2V0dXAgYW5kIHVz ZSBpdApmb3IgdGhlIGxpZmV0aW1lIG9mIHRoZSBiYWNrZW5kIGRldmljZS4KClRoZSBhcHBhcmVu dGx5IG1vcmUgb2J2aW91cyBmaXggb2YgbW92aW5nIHRoZSB0cmFuc2l0aW9uIHRvCnN0YXRlPUNs b3NlZCBpbiBuZXRiYWNrX3JlbW92ZSgpIHRvIGFmdGVyIHRoZSB1ZXZlbnQgZG9lcyBub3Qgd29y awpiZWNhdXNlIGl0IGlzIHBvc3NpYmxlIHRoYXQgd2UgYXJlIGFscmVhZHkgaW4gc3RhdGU9Q2xv c2VkIChpbgpyZWFjdGlvbiB0byB0aGUgZ3Vlc3QgaGF2aW5nIGRpc2Nvbm5lY3RlZCBhcyBpdCBz aHV0ZG93bikuIEJlaW5nCmFscmVhZHkgaW4gQ2xvc2VkIG1lYW5zIHRoZSB0b29sc3RhY2sgaXMg YXQgbGliZXJ0eSB0byBzdGFydCB0ZWFyaW5nCmRvd24gdGhlIHhlbnN0b3JlIGRpcmVjdG9yaWVz LiBJbiBwcmluY2lwYWwgaXQgbWlnaHQgYmUgcG9zc2libGUgdG8KYXJyYW5nZSB0byB1bnJlZ2lz dGVyIHRoZSBkZXZpY2Ugc29vbmVyIChlLmcgb24gdHJhbnNpdGlvbiB0byBDbG9zaW5nKQpzdWNo IHRoYXQgeGVuc3RvcmUgd291bGQgc3RpbGwgYmUgdGhlcmUgYnV0IHRoaXMgc3RhdGUgbWFjaGlu ZSBpcwpmcmFnaWxlIGFuZCBwcm9uZSB0byBhbmdlci4uLgoKQSBtb2Rlcm4gWGVuIHN5c3RlbSBv bmx5IHJlbGllcyBvbiB0aGUgaG90cGx1ZyB1ZXZlbnQgZm9yIGRyaXZlcgpkb21haW5zLCB3aGVu IHRoZSBiYWNrZW5kIGlzIGluIHRoZSBzYW1lIGRvbWFpbiBhcyB0aGUgdG9vbHN0YWNrIGl0Cndp bGwgcnVuIHRoZSBuZWNlc3Nhcnkgc2V0dXAvdGVhcmRvd24gZGlyZWN0bHkgaW4gdGhlIGNvcnJl Y3Qgc2VxdWVuY2UKd3J0IHhlbnN0b3JlIGNoYW5nZXMuCgpTaWduZWQtb2ZmLWJ5OiBJYW4gQ2Ft cGJlbGwgPGlhbi5jYW1wYmVsbEBjaXRyaXguY29tPgpBY2tlZC1ieTogV2VpIExpdSA8d2VpLmxp dTJAY2l0cml4LmNvbT4KU2lnbmVkLW9mZi1ieTogRGF2aWQgUy4gTWlsbGVyIDxkYXZlbUBkYXZl bWxvZnQubmV0PgotLS0KIGRyaXZlcnMvbmV0L3hlbi1uZXRiYWNrL3hlbmJ1cy5jIHwgMzMgKysr KysrKysrKysrKysrKysrKy0tLS0tLS0tLS0tLS0tCiAxIGZpbGUgY2hhbmdlZCwgMTkgaW5zZXJ0 aW9ucygrKSwgMTQgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQveGVuLW5l dGJhY2sveGVuYnVzLmMgYi9kcml2ZXJzL25ldC94ZW4tbmV0YmFjay94ZW5idXMuYwppbmRleCA3 YTIwNmNmLi5kMThlNjUzIDEwMDY0NAotLS0gYS9kcml2ZXJzL25ldC94ZW4tbmV0YmFjay94ZW5i dXMuYworKysgYi9kcml2ZXJzL25ldC94ZW4tbmV0YmFjay94ZW5idXMuYwpAQCAtMzIsNiArMzIs OCBAQCBzdHJ1Y3QgYmFja2VuZF9pbmZvIHsKIAllbnVtIHhlbmJ1c19zdGF0ZSBmcm9udGVuZF9z dGF0ZTsKIAlzdHJ1Y3QgeGVuYnVzX3dhdGNoIGhvdHBsdWdfc3RhdHVzX3dhdGNoOwogCXU4IGhh dmVfaG90cGx1Z19zdGF0dXNfd2F0Y2g6MTsKKworCWNvbnN0IGNoYXIgKmhvdHBsdWdfc2NyaXB0 OwogfTsKIAogc3RhdGljIGludCBjb25uZWN0X3JpbmdzKHN0cnVjdCBiYWNrZW5kX2luZm8gKik7 CkBAIC01NCw2ICs1Niw3IEBAIHN0YXRpYyBpbnQgbmV0YmFja19yZW1vdmUoc3RydWN0IHhlbmJ1 c19kZXZpY2UgKmRldikKIAkJeGVudmlmX2ZyZWUoYmUtPnZpZik7CiAJCWJlLT52aWYgPSBOVUxM OwogCX0KKwlrZnJlZShiZS0+aG90cGx1Z19zY3JpcHQpOwogCWtmcmVlKGJlKTsKIAlkZXZfc2V0 X2RydmRhdGEoJmRldi0+ZGV2LCBOVUxMKTsKIAlyZXR1cm4gMDsKQEAgLTcxLDYgKzc0LDcgQEAg c3RhdGljIGludCBuZXRiYWNrX3Byb2JlKHN0cnVjdCB4ZW5idXNfZGV2aWNlICpkZXYsCiAJc3Ry dWN0IHhlbmJ1c190cmFuc2FjdGlvbiB4YnQ7CiAJaW50IGVycjsKIAlpbnQgc2c7CisJY29uc3Qg Y2hhciAqc2NyaXB0OwogCXN0cnVjdCBiYWNrZW5kX2luZm8gKmJlID0ga3phbGxvYyhzaXplb2Yo c3RydWN0IGJhY2tlbmRfaW5mbyksCiAJCQkJCSAgR0ZQX0tFUk5FTCk7CiAJaWYgKCFiZSkgewpA QCAtMTU3LDYgKzE2MSwxNSBAQCBzdGF0aWMgaW50IG5ldGJhY2tfcHJvYmUoc3RydWN0IHhlbmJ1 c19kZXZpY2UgKmRldiwKIAlpZiAoZXJyKQogCQlwcl9kZWJ1ZygiRXJyb3Igd3JpdGluZyBmZWF0 dXJlLXNwbGl0LWV2ZW50LWNoYW5uZWxzXG4iKTsKIAorCXNjcmlwdCA9IHhlbmJ1c19yZWFkKFhC VF9OSUwsIGRldi0+bm9kZW5hbWUsICJzY3JpcHQiLCBOVUxMKTsKKwlpZiAoSVNfRVJSKHNjcmlw dCkpIHsKKwkJZXJyID0gUFRSX0VSUihzY3JpcHQpOworCQl4ZW5idXNfZGV2X2ZhdGFsKGRldiwg ZXJyLCAicmVhZGluZyBzY3JpcHQiKTsKKwkJZ290byBmYWlsOworCX0KKworCWJlLT5ob3RwbHVn X3NjcmlwdCA9IHNjcmlwdDsKKwogCWVyciA9IHhlbmJ1c19zd2l0Y2hfc3RhdGUoZGV2LCBYZW5i dXNTdGF0ZUluaXRXYWl0KTsKIAlpZiAoZXJyKQogCQlnb3RvIGZhaWw7CkBAIC0xODcsMjIgKzIw MCwxNCBAQCBzdGF0aWMgaW50IG5ldGJhY2tfdWV2ZW50KHN0cnVjdCB4ZW5idXNfZGV2aWNlICp4 ZGV2LAogCQkJICBzdHJ1Y3Qga29ial91ZXZlbnRfZW52ICplbnYpCiB7CiAJc3RydWN0IGJhY2tl bmRfaW5mbyAqYmUgPSBkZXZfZ2V0X2RydmRhdGEoJnhkZXYtPmRldik7Ci0JY2hhciAqdmFsOwog Ci0JdmFsID0geGVuYnVzX3JlYWQoWEJUX05JTCwgeGRldi0+bm9kZW5hbWUsICJzY3JpcHQiLCBO VUxMKTsKLQlpZiAoSVNfRVJSKHZhbCkpIHsKLQkJaW50IGVyciA9IFBUUl9FUlIodmFsKTsKLQkJ eGVuYnVzX2Rldl9mYXRhbCh4ZGV2LCBlcnIsICJyZWFkaW5nIHNjcmlwdCIpOwotCQlyZXR1cm4g ZXJyOwotCX0gZWxzZSB7Ci0JCWlmIChhZGRfdWV2ZW50X3ZhcihlbnYsICJzY3JpcHQ9JXMiLCB2 YWwpKSB7Ci0JCQlrZnJlZSh2YWwpOwotCQkJcmV0dXJuIC1FTk9NRU07Ci0JCX0KLQkJa2ZyZWUo dmFsKTsKLQl9CisJaWYgKCFiZSkKKwkJcmV0dXJuIDA7CisKKwlpZiAoYWRkX3VldmVudF92YXIo ZW52LCAic2NyaXB0PSVzIiwgYmUtPmhvdHBsdWdfc2NyaXB0KSkKKwkJcmV0dXJuIC1FTk9NRU07 CiAKLQlpZiAoIWJlIHx8ICFiZS0+dmlmKQorCWlmICghYmUtPnZpZikKIAkJcmV0dXJuIDA7CiAK IAlyZXR1cm4gYWRkX3VldmVudF92YXIoZW52LCAidmlmPSVzIiwgYmUtPnZpZi0+ZGV2LT5uYW1l KTsKLS0gCjIuMS4wCgoKRnJvbSA0Y2U3YWVmZjYyZDRiYWMzOWY3MzM5YTIxYmEzYzUwMTU2NzM4 NjJlIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBTaGF3biBCb2hyZXIgPHNib2hyZXJA cmdtYWR2aXNvcnMuY29tPgpEYXRlOiBXZWQsIDMgSnVuIDIwMTUgMTY6Mjc6MzggLTA1MDAKU3Vi amVjdDogW1BBVENIIDEzLzE0XSBpcHY0L3VkcDogVmVyaWZ5IG11bHRpY2FzdCBncm91cCBpcyBv dXJzIGluCiB1cGRfdjRfZWFybHlfZGVtdXgoKQoKWyBVcHN0cmVhbSBjb21taXQgNmU1NDAzMDkz MjYxODhmNzY5ZTAzYmI0YzZkZDhmZjY3NTI5MzBjMiBdCgo0MjFiMzg4NWJmNmQ1NjM5MTI5Nzg0 NGY0M2ZiNzE1NGE2Mzk2ZTEyICJ1ZHA6IGlwdjQ6IEFkZCB1ZHAgZWFybHkKZGVtdXgiIGludHJv ZHVjZWQgYSByZWdyZXNzaW9uIHRoYXQgYWxsb3dlZCBzb2NrZXRzIGJvdW5kIHRvIElOQUREUl9B TlkKdG8gcmVjZWl2ZSBwYWNrZXRzIGZyb20gbXVsdGljYXN0IGdyb3VwcyB0aGF0IHRoZSBzb2Nr ZXQgaGFkIG5vdCBqb2luZWQuCkZvciBleGFtcGxlIGEgc29ja2V0IHRoYXQgaGFkIGpvaW5lZCAy MjQuMTY4LjIuOSBjb3VsZCBhbHNvIHJlY2VpdmUKcGFja2V0cyBmcm9tIDIyNS4xNjguMi45IGRl c3BpdGUgbm90IGhhdmluZyBqb2luZWQgdGhhdCBncm91cCBpZgppcF9lYXJseV9kZW11eCBpcyBl bmFibGVkLgoKRml4IHRoaXMgYnkgY2FsbGluZyBpcF9jaGVja19tY19yY3UoKSBpbiB1ZHBfdjRf ZWFybHlfZGVtdXgoKSB0byB2ZXJpZnkKdGhhdCB0aGUgbXVsdGljYXN0IHBhY2tldCBpcyBpbmRl ZWQgb3Vycy4KClNpZ25lZC1vZmYtYnk6IFNoYXduIEJvaHJlciA8c2JvaHJlckByZ21hZHZpc29y cy5jb20+ClJlcG9ydGVkLWJ5OiBZdXJpaiBNLiBQbG90bmlrb3YgPFl1cmlqLlBsb3RuaWtvdkBv a3RldGxhYnMucnU+ClNpZ25lZC1vZmYtYnk6IERhdmlkIFMuIE1pbGxlciA8ZGF2ZW1AZGF2ZW1s b2Z0Lm5ldD4KLS0tCiBuZXQvaXB2NC91ZHAuYyB8IDE4ICsrKysrKysrKysrKysrKy0tLQogMSBm aWxlIGNoYW5nZWQsIDE1IGluc2VydGlvbnMoKyksIDMgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0 IGEvbmV0L2lwdjQvdWRwLmMgYi9uZXQvaXB2NC91ZHAuYwppbmRleCA1ZGIzZTJjLi4yMWEzYTll IDEwMDY0NAotLS0gYS9uZXQvaXB2NC91ZHAuYworKysgYi9uZXQvaXB2NC91ZHAuYwpAQCAtOTAs NiArOTAsNyBAQAogI2luY2x1ZGUgPGxpbnV4L3NvY2tldC5oPgogI2luY2x1ZGUgPGxpbnV4L3Nv Y2tpb3MuaD4KICNpbmNsdWRlIDxsaW51eC9pZ21wLmg+CisjaW5jbHVkZSA8bGludXgvaW5ldGRl dmljZS5oPgogI2luY2x1ZGUgPGxpbnV4L2luLmg+CiAjaW5jbHVkZSA8bGludXgvZXJybm8uaD4K ICNpbmNsdWRlIDxsaW51eC90aW1lci5oPgpAQCAtMTkyMiw2ICsxOTIzLDcgQEAgdm9pZCB1ZHBf djRfZWFybHlfZGVtdXgoc3RydWN0IHNrX2J1ZmYgKnNrYikKIAlzdHJ1Y3Qgc29jayAqc2s7CiAJ c3RydWN0IGRzdF9lbnRyeSAqZHN0OwogCWludCBkaWYgPSBza2ItPmRldi0+aWZpbmRleDsKKwlp bnQgb3VyczsKIAogCS8qIHZhbGlkYXRlIHRoZSBwYWNrZXQgKi8KIAlpZiAoIXBza2JfbWF5X3B1 bGwoc2tiLCBza2JfdHJhbnNwb3J0X29mZnNldChza2IpICsgc2l6ZW9mKHN0cnVjdCB1ZHBoZHIp KSkKQEAgLTE5MzEsMTQgKzE5MzMsMjQgQEAgdm9pZCB1ZHBfdjRfZWFybHlfZGVtdXgoc3RydWN0 IHNrX2J1ZmYgKnNrYikKIAl1aCA9IHVkcF9oZHIoc2tiKTsKIAogCWlmIChza2ItPnBrdF90eXBl ID09IFBBQ0tFVF9CUk9BRENBU1QgfHwKLQkgICAgc2tiLT5wa3RfdHlwZSA9PSBQQUNLRVRfTVVM VElDQVNUKQorCSAgICBza2ItPnBrdF90eXBlID09IFBBQ0tFVF9NVUxUSUNBU1QpIHsKKwkJc3Ry dWN0IGluX2RldmljZSAqaW5fZGV2ID0gX19pbl9kZXZfZ2V0X3JjdShza2ItPmRldik7CisKKwkJ aWYgKCFpbl9kZXYpCisJCQlyZXR1cm47CisKKwkJb3VycyA9IGlwX2NoZWNrX21jX3JjdShpbl9k ZXYsIGlwaC0+ZGFkZHIsIGlwaC0+c2FkZHIsCisJCQkJICAgICAgIGlwaC0+cHJvdG9jb2wpOwor CQlpZiAoIW91cnMpCisJCQlyZXR1cm47CiAJCXNrID0gX191ZHA0X2xpYl9tY2FzdF9kZW11eF9s b29rdXAobmV0LCB1aC0+ZGVzdCwgaXBoLT5kYWRkciwKIAkJCQkJCSAgIHVoLT5zb3VyY2UsIGlw aC0+c2FkZHIsIGRpZik7Ci0JZWxzZSBpZiAoc2tiLT5wa3RfdHlwZSA9PSBQQUNLRVRfSE9TVCkK Kwl9IGVsc2UgaWYgKHNrYi0+cGt0X3R5cGUgPT0gUEFDS0VUX0hPU1QpIHsKIAkJc2sgPSBfX3Vk cDRfbGliX2RlbXV4X2xvb2t1cChuZXQsIHVoLT5kZXN0LCBpcGgtPmRhZGRyLAogCQkJCQkgICAg IHVoLT5zb3VyY2UsIGlwaC0+c2FkZHIsIGRpZik7Ci0JZWxzZQorCX0gZWxzZSB7CiAJCXJldHVy bjsKKwl9CiAKIAlpZiAoIXNrKQogCQlyZXR1cm47Ci0tIAoyLjEuMAoKCkZyb20gYmY4MDQ4YjJl YzEzNGViZDI2NDBjMmZmYjZjNTAzYTU5MTExMjkyYSBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEK RnJvbTogTmlrb2xheSBBbGVrc2FuZHJvdiA8bmlrb2xheUBjdW11bHVzbmV0d29ya3MuY29tPgpE YXRlOiBTYXQsIDYgSnVuIDIwMTUgMDY6NDk6MDAgLTA3MDAKU3ViamVjdDogW1BBVENIIDE0LzE0 XSBicmlkZ2U6IGRpc2FibGUgc29mdGlycXMgYXJvdW5kIGJyX2ZkYl91cGRhdGUgdG8gYXZvaWQK IGxvY2t1cAoKWyBVcHN0cmVhbSBjb21taXQgYzRjODMyZjg5ZGM0NjhjZjExZGMwZGQxNzIwNmJh Y2U0NDUyNjY1MSBdCgpicl9mZGJfdXBkYXRlKCkgY2FuIGJlIGNhbGxlZCBpbiBwcm9jZXNzIGNv bnRleHQgaW4gdGhlIGZvbGxvd2luZyB3YXk6CmJyX2ZkYl9hZGQoKSAtPiBfX2JyX2ZkYl9hZGQo KSAtPiBicl9mZGJfdXBkYXRlKCkgKGlmIE5URl9VU0UgZmxhZyBpcyBzZXQpCnNvIHdlIG5lZWQg dG8gZGlzYWJsZSBzb2Z0aXJxcyBiZWNhdXNlIHRoZXJlIGFyZSBzb2Z0aXJxIHVzZXJzIG9mIHRo ZQpoYXNoX2xvY2suIE9uZSBlYXN5IHdheSB0byByZXByb2R1Y2UgdGhpcyBpcyB0byBtb2RpZnkg dGhlIGJyaWRnZSB1dGlsaXR5CnRvIHNldCBOVEZfVVNFLCBlbmFibGUgc3RwIGFuZCB0aGVuIHNl dCBtYXhhZ2VpbmcgdG8gYSBsb3cgdmFsdWUgc28KYnJfZmRiX2NsZWFudXAoKSBpcyBjYWxsZWQg ZnJlcXVlbnRseSBhbmQgdGhlbiBqdXN0IGFkZCBuZXcgZW50cmllcyBpbgphIGxvb3AuIFRoaXMg aGFwcGVucyBiZWNhdXNlIGJyX2ZkYl9jbGVhbnVwKCkgaXMgY2FsbGVkIGZyb20gdGltZXIvc29m dGlycQpjb250ZXh0LiBUaGUgc3BpbiBsb2NrcyBpbiBicl9mZGJfdXBkYXRlIHdlcmUgX2JoIGJl Zm9yZSBjb21taXQgZjhhZTczN2RlZWExCigiW0JSSURHRV06IGZvcndhcmRpbmcgcmVtb3ZlIHVu bmVlZGVkIHByZWVtcHQgYW5kIGJoIGRpYXNhYmxlcyIpCmFuZCBhdCB0aGUgdGltZSB0aGF0IGNv bW1pdCB3YXMgY29ycmVjdCBiZWNhdXNlIGJyX2ZkYl91cGRhdGUoKSBjb3VsZG4ndCBiZQpjYWxs ZWQgZnJvbSBwcm9jZXNzIGNvbnRleHQsIGJ1dCB0aGF0IGNoYW5nZWQgYWZ0ZXIgY29tbWl0Ogoy OTJkMTM5ODk4M2YgKCJicmlkZ2U6IGFkZCBOVEZfVVNFIHN1cHBvcnQiKQpVc2luZyBsb2NhbF9i aF9kaXNhYmxlL2VuYWJsZSBhcm91bmQgYnJfZmRiX3VwZGF0ZSgpIGFsbG93cyB1cyB0byBrZWVw CnVzaW5nIHRoZSBzcGluX2xvY2svdW5sb2NrIGluIGJyX2ZkYl91cGRhdGUgZm9yIHRoZSBmYXN0 LXBhdGguCgpTaWduZWQtb2ZmLWJ5OiBOaWtvbGF5IEFsZWtzYW5kcm92IDxuaWtvbGF5QGN1bXVs dXNuZXR3b3Jrcy5jb20+CkZpeGVzOiAyOTJkMTM5ODk4M2YgKCJicmlkZ2U6IGFkZCBOVEZfVVNF IHN1cHBvcnQiKQpTaWduZWQtb2ZmLWJ5OiBEYXZpZCBTLiBNaWxsZXIgPGRhdmVtQGRhdmVtbG9m dC5uZXQ+Ci0tLQogbmV0L2JyaWRnZS9icl9mZGIuYyB8IDIgKysKIDEgZmlsZSBjaGFuZ2VkLCAy IGluc2VydGlvbnMoKykKCmRpZmYgLS1naXQgYS9uZXQvYnJpZGdlL2JyX2ZkYi5jIGIvbmV0L2Jy aWRnZS9icl9mZGIuYwppbmRleCA5MjAzZDVhLi4wOTE1MmQxIDEwMDY0NAotLS0gYS9uZXQvYnJp ZGdlL2JyX2ZkYi5jCisrKyBiL25ldC9icmlkZ2UvYnJfZmRiLmMKQEAgLTcwNSw5ICs3MDUsMTEg QEAgc3RhdGljIGludCBfX2JyX2ZkYl9hZGQoc3RydWN0IG5kbXNnICpuZG0sIHN0cnVjdCBuZXRf YnJpZGdlX3BvcnQgKnAsCiAJaW50IGVyciA9IDA7CiAKIAlpZiAobmRtLT5uZG1fZmxhZ3MgJiBO VEZfVVNFKSB7CisJCWxvY2FsX2JoX2Rpc2FibGUoKTsKIAkJcmN1X3JlYWRfbG9jaygpOwogCQli cl9mZGJfdXBkYXRlKHAtPmJyLCBwLCBhZGRyLCB2aWQsIHRydWUpOwogCQlyY3VfcmVhZF91bmxv Y2soKTsKKwkJbG9jYWxfYmhfZW5hYmxlKCk7CiAJfSBlbHNlIHsKIAkJc3Bpbl9sb2NrX2JoKCZw LT5ici0+aGFzaF9sb2NrKTsKIAkJZXJyID0gZmRiX2FkZF9lbnRyeShwLCBhZGRyLCBuZG0tPm5k bV9zdGF0ZSwKLS0gCjIuMS4wCgo= ----Next_Part(Tue_Jun__9_20_01_04_2015_064)-- Content-Type: Application/Octet-Stream Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="net_318.mbox" RnJvbSAzYzQ3ZTgxZGFmNWEzYmYzMmZhZWNiZjIwMTliZWI3Zjc5MDY0NDM5IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBWbGFkIFlhc2V2aWNoIDx2eWFzZXZpY2hAZ21haWwuY29tPgpE YXRlOiBTYXQsIDIgTWF5IDIwMTUgMjE6MzM6NDQgLTA0MDAKU3ViamVjdDogW1BBVENIIDAxLzI1 XSBuZXQ6IGNvcmU6IENvcnJlY3QgYW4gb3Zlci1zdHJpbmdlbnQgZGV2aWNlIGxvb3AKIGRldGVj dGlvbi4KClsgVXBzdHJlYW0gY29tbWl0IGQ2NmJmN2RkMjc1NzNlZTVlYTkwNDg0ODk5ZWU5NTJj MTljY2IxOTQgXQoKVGhlIGNvZGUgaW4gX19uZXRkZXZfdXBwZXJfZGV2X2xpbmsoKSBoYXMgYW4g b3Zlci1zdHJpbmdlbnQKbG9vcCBkZXRlY3Rpb24gbG9naWMgdGhhdCBhY3R1YWxseSBwcmV2ZW50 cyB2YWxpZCBjb25maWd1cmF0aW9ucwpmcm9tIHdvcmtpbmcgY29ycmVjdGx5LgoKSW4gcGFydGlj dWxhciwgdGhlIGxvZ2ljIHJldHVybnMgYW4gZXJyb3IgaWYgYW4gdXBwZXIgZGV2aWNlCmlzIGFs cmVhZHkgaW4gdGhlIGxpc3Qgb2YgYWxsIHVwcGVyIGRldmljZXMgZm9yIGEgZ2l2ZW4gZGV2LgpU aGlzIHBhcnRpY3VsYXIgY2hlY2sgc2VlbXMgdG8gYmUgYSBvdmVyemVhbG91cyBhcyBpdCBkaXNh bGxvd3MKcGVyZmVjdGx5IHZhbGlkIGNvbmZpZ3VyYXRpb25zLiAgRm9yIGV4YW1wbGU6CiAgIyBp cCBsIGEgbGluayBldGgwIG5hbWUgZXRoMC4xMCB0eXBlIHZsYW4gaWQgMTAKICAjIGlwIGwgYSBk ZXYgYnIwIHR5cCBicmlkZ2UKICAjIGlwIGwgcyBldGgwLjEwIG1hc3RlciBicjAKICAjIGlwIGwg cyBldGgwIG1hc3RlciBicjAgIDwtLS0gV2lsbCBmYWlsCgpJZiB5b3Ugc3dpdGNoIHRoZSBsYXN0 IHR3byBjb21tYW5kcyAoYWRkIGV0aDAgZmlyc3QpLCB0aGVuIGJvdGgKd2lsbCBzdWNjZWVkLiAg SWYgYWZ0ZXIgdGhhdCwgeW91IHJlbW92ZSBldGgwIGFuZCB0cnkgdG8gcmUtYWRkCml0LCBpdCB3 aWxsIGZhaWwhCgpJdCBhcHBlYXJzIHRvIGJlIGVub3VnaCB0byBzaW1wbHkgY2hlY2sgYWRqX2xp c3QgdG8ga2VlcHMgdGhpbmdzCnNhZmUuCgpJJ3ZlIHRyaWVkIHN0YWNraW5nIG11bHRpcGxlIGRl dmljZXMgbXVsdGlwbGUgdGltZXMgaW4gYWxsIGRpZmZlcmVudApjb21iaW5hdGlvbnMsIGFuZCBl aXRoZXIgcnhfaGFuZGxlciByZWdpc3RyYXRpb24gcHJldmVudGVkIHRoZSBzdGFja2luZwpvZiB0 aGUgZGV2aWNlIGxpbmtpbmcgY291Z2h0IHRoZSBlcnJvci4KClNpZ25lZC1vZmYtYnk6IFZsYWRp c2xhdiBZYXNldmljaCA8dnlhc2V2aWNAcmVkaGF0LmNvbT4KQWNrZWQtYnk6IEppcmkgUGlya28g PGppcmlAcmVzbnVsbGkudXM+CkFja2VkLWJ5OiBWZWFjZXNsYXYgRmFsaWNvIDx2ZmFsaWNvQGdt YWlsLmNvbT4KU2lnbmVkLW9mZi1ieTogRGF2aWQgUy4gTWlsbGVyIDxkYXZlbUBkYXZlbWxvZnQu bmV0PgotLS0KIG5ldC9jb3JlL2Rldi5jIHwgMiArLQogMSBmaWxlIGNoYW5nZWQsIDEgaW5zZXJ0 aW9uKCspLCAxIGRlbGV0aW9uKC0pCgpkaWZmIC0tZ2l0IGEvbmV0L2NvcmUvZGV2LmMgYi9uZXQv Y29yZS9kZXYuYwppbmRleCA1Y2RiYzFiLi5mYjk2MjU4IDEwMDY0NAotLS0gYS9uZXQvY29yZS9k ZXYuYworKysgYi9uZXQvY29yZS9kZXYuYwpAQCAtNTA4MCw3ICs1MDgwLDcgQEAgc3RhdGljIGlu dCBfX25ldGRldl91cHBlcl9kZXZfbGluayhzdHJ1Y3QgbmV0X2RldmljZSAqZGV2LAogCWlmIChf X25ldGRldl9maW5kX2Fkaih1cHBlcl9kZXYsIGRldiwgJnVwcGVyX2Rldi0+YWxsX2Fkal9saXN0 LnVwcGVyKSkKIAkJcmV0dXJuIC1FQlVTWTsKIAotCWlmIChfX25ldGRldl9maW5kX2FkaihkZXYs IHVwcGVyX2RldiwgJmRldi0+YWxsX2Fkal9saXN0LnVwcGVyKSkKKwlpZiAoX19uZXRkZXZfZmlu ZF9hZGooZGV2LCB1cHBlcl9kZXYsICZkZXYtPmFkal9saXN0LnVwcGVyKSkKIAkJcmV0dXJuIC1F RVhJU1Q7CiAKIAlpZiAobWFzdGVyICYmIG5ldGRldl9tYXN0ZXJfdXBwZXJfZGV2X2dldChkZXYp KQotLSAKMi4xLjAKCgpGcm9tIGExMTliYWU0ZTdlMTI4YzBjNzY1M2JiNmU0ZmRkOTI5NjgzMmMx MGIgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCkZyb206IEFsZXhlaSBTdGFyb3ZvaXRvdiA8YXN0 QHBsdW1ncmlkLmNvbT4KRGF0ZTogTW9uLCAxMSBNYXkgMjAxNSAyMzoyNToxNiAtMDcwMApTdWJq ZWN0OiBbUEFUQ0ggMDIvMjVdIHg4NjogYnBmX2ppdDogZml4IEZST01fQkUxNiBhbmQgRlJPTV9M RTE2LzMyCiBpbnN0cnVjdGlvbnMKClsgVXBzdHJlYW0gY29tbWl0IDM0M2Y4NDViMzc1OTg5ZjE3 NTNmNjA1OTAyOTMxZmE5MzlhYTIyMjMgXQoKRlJPTV9CRTE2Ogoncm9yICVyZWcsIDgnIGRvZXNu J3QgY2xlYXIgdXBwZXIgYml0cyBvZiB0aGUgcmVnaXN0ZXIsCnNvIHVzZSBhZGRpdGlvbmFsICdt b3Z6d2wnIGluc24gdG8gemVybyBleHRlbmQgMTYgYml0cyBpbnRvIDY0CgpGUk9NX0xFMTY6CnNo b3VsZCB6ZXJvIGV4dGVuZCBsb3dlciAxNiBiaXRzIGludG8gNjQgYml0CgpGUk9NX0xFMzI6CnNo b3VsZCB6ZXJvIGV4dGVuZCBsb3dlciAzMiBiaXRzIGludG8gNjQgYml0CgpGaXhlczogODlhYTA3 NTgzMmIwICgibmV0OiBzb2NrOiBhbGxvdyBlQlBGIHByb2dyYW1zIHRvIGJlIGF0dGFjaGVkIHRv IHNvY2tldHMiKQpTaWduZWQtb2ZmLWJ5OiBBbGV4ZWkgU3Rhcm92b2l0b3YgPGFzdEBwbHVtZ3Jp ZC5jb20+ClNpZ25lZC1vZmYtYnk6IERhdmlkIFMuIE1pbGxlciA8ZGF2ZW1AZGF2ZW1sb2Z0Lm5l dD4KLS0tCiBhcmNoL3g4Ni9uZXQvYnBmX2ppdF9jb21wLmMgfCAyOCArKysrKysrKysrKysrKysr KysrKysrKysrKysrCiAxIGZpbGUgY2hhbmdlZCwgMjggaW5zZXJ0aW9ucygrKQoKZGlmZiAtLWdp dCBhL2FyY2gveDg2L25ldC9icGZfaml0X2NvbXAuYyBiL2FyY2gveDg2L25ldC9icGZfaml0X2Nv bXAuYwppbmRleCAzZjYyNzM0Li4zZGU4ODZmIDEwMDY0NAotLS0gYS9hcmNoL3g4Ni9uZXQvYnBm X2ppdF9jb21wLmMKKysrIGIvYXJjaC94ODYvbmV0L2JwZl9qaXRfY29tcC5jCkBAIC01NTgsNiAr NTU4LDEzIEBAIHN0YXRpYyBpbnQgZG9faml0KHN0cnVjdCBicGZfcHJvZyAqYnBmX3Byb2csIGlu dCAqYWRkcnMsIHU4ICppbWFnZSwKIAkJCQlpZiAoaXNfZXJlZyhkc3RfcmVnKSkKIAkJCQkJRU1J VDEoMHg0MSk7CiAJCQkJRU1JVDMoMHhDMSwgYWRkXzFyZWcoMHhDOCwgZHN0X3JlZyksIDgpOwor CisJCQkJLyogZW1pdCAnbW92endsIGVheCwgYXgnICovCisJCQkJaWYgKGlzX2VyZWcoZHN0X3Jl ZykpCisJCQkJCUVNSVQzKDB4NDUsIDB4MEYsIDB4QjcpOworCQkJCWVsc2UKKwkJCQkJRU1JVDIo MHgwRiwgMHhCNyk7CisJCQkJRU1JVDEoYWRkXzJyZWcoMHhDMCwgZHN0X3JlZywgZHN0X3JlZykp OwogCQkJCWJyZWFrOwogCQkJY2FzZSAzMjoKIAkJCQkvKiBlbWl0ICdic3dhcCBlYXgnIHRvIHN3 YXAgbG93ZXIgNCBieXRlcyAqLwpAQCAtNTc2LDYgKzU4MywyNyBAQCBzdGF0aWMgaW50IGRvX2pp dChzdHJ1Y3QgYnBmX3Byb2cgKmJwZl9wcm9nLCBpbnQgKmFkZHJzLCB1OCAqaW1hZ2UsCiAJCQli cmVhazsKIAogCQljYXNlIEJQRl9BTFUgfCBCUEZfRU5EIHwgQlBGX0ZST01fTEU6CisJCQlzd2l0 Y2ggKGltbTMyKSB7CisJCQljYXNlIDE2OgorCQkJCS8qIGVtaXQgJ21vdnp3bCBlYXgsIGF4JyB0 byB6ZXJvIGV4dGVuZCAxNi1iaXQKKwkJCQkgKiBpbnRvIDY0IGJpdAorCQkJCSAqLworCQkJCWlm IChpc19lcmVnKGRzdF9yZWcpKQorCQkJCQlFTUlUMygweDQ1LCAweDBGLCAweEI3KTsKKwkJCQll bHNlCisJCQkJCUVNSVQyKDB4MEYsIDB4QjcpOworCQkJCUVNSVQxKGFkZF8ycmVnKDB4QzAsIGRz dF9yZWcsIGRzdF9yZWcpKTsKKwkJCQlicmVhazsKKwkJCWNhc2UgMzI6CisJCQkJLyogZW1pdCAn bW92IGVheCwgZWF4JyB0byBjbGVhciB1cHBlciAzMi1iaXRzICovCisJCQkJaWYgKGlzX2VyZWco ZHN0X3JlZykpCisJCQkJCUVNSVQxKDB4NDUpOworCQkJCUVNSVQyKDB4ODksIGFkZF8ycmVnKDB4 QzAsIGRzdF9yZWcsIGRzdF9yZWcpKTsKKwkJCQlicmVhazsKKwkJCWNhc2UgNjQ6CisJCQkJLyog bm9wICovCisJCQkJYnJlYWs7CisJCQl9CiAJCQlicmVhazsKIAogCQkJLyogU1Q6ICoodTgqKShk c3RfcmVnICsgb2ZmKSA9IGltbSAqLwotLSAKMi4xLjAKCgpGcm9tIDM1NDI5NWFiNDE4YjBhMzFl MGJhYmYxOWQwZDZkNmNmMWE2NjExNTAgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCkZyb206IEFs ZXhlaSBTdGFyb3ZvaXRvdiA8YXN0QHBsdW1ncmlkLmNvbT4KRGF0ZTogRnJpLCAyMiBNYXkgMjAx NSAxNTo0Mjo1NSAtMDcwMApTdWJqZWN0OiBbUEFUQ0ggMDMvMjVdIHg4NjogYnBmX2ppdDogZml4 IGNvbXBpbGF0aW9uIG9mIGxhcmdlIGJwZiBwcm9ncmFtcwoKWyBVcHN0cmVhbSBjb21taXQgM2Y3 MzUyYmYyMWY4ZmQ3YmEzZTJmY2VmOTQ4ODc1NmYxODhlMTJiZSBdCgp4ODYgaGFzIHZhcmlhYmxl IGxlbmd0aCBlbmNvZGluZy4geDg2IEpJVCBjb21waWxlciBpcyB0cnlpbmcKdG8gcGljayB0aGUg c2hvcnRlc3QgZW5jb2RpbmcgZm9yIGdpdmVuIGJwZiBpbnN0cnVjdGlvbi4KV2hpbGUgZG9pbmcg c28gdGhlIGp1bXAgdGFyZ2V0cyBhcmUgY2hhbmdpbmcsIHNvIEpJVCBpcyBkb2luZwptdWx0aXBs ZSBwYXNzZXMgb3ZlciB0aGUgcHJvZ3JhbS4gVHlwaWNhbCBwcm9ncmFtIG5lZWRzIDMgcGFzc2Vz LgpTb21lIHZlcnkgc2hvcnQgcHJvZ3JhbXMgY29udmVyZ2Ugd2l0aCAyIHBhc3Nlcy4gTGFyZ2Ug cHJvZ3JhbXMKbWF5IG5lZWQgNCBvciA1LiBCdXQgc3BlY2lhbGx5IGNyYWZ0ZWQgYnBmIHByb2dy YW1zIG1heSBoaXQgdGhlCnBhc3MgbGltaXQgYW5kIGlmIHRoZSBwcm9ncmFtIGNvbnZlcmdlcyBv biB0aGUgbGFzdCBpdGVyYXRpb24KdGhlIEpJVCBjb21waWxlciB3aWxsIGJlIHByb2R1Y2luZyBh biBpbWFnZSBmdWxsIG9mICdpbnQgMycgaW5zbnMuCkZpeCB0aGlzIGNvcm5lciBjYXNlIGJ5IGRv aW5nIGZpbmFsIGl0ZXJhdGlvbiBvdmVyIGJwZiBwcm9ncmFtLgoKRml4ZXM6IDBhMTQ4NDJmNWEz YyAoIm5ldDogZmlsdGVyOiBKdXN0IEluIFRpbWUgY29tcGlsZXIgZm9yIHg4Ni02NCIpClJlcG9y dGVkLWJ5OiBEYW5pZWwgQm9ya21hbm4gPGRhbmllbEBpb2dlYXJib3gubmV0PgpTaWduZWQtb2Zm LWJ5OiBBbGV4ZWkgU3Rhcm92b2l0b3YgPGFzdEBwbHVtZ3JpZC5jb20+ClRlc3RlZC1ieTogRGFu aWVsIEJvcmttYW5uIDxkYW5pZWxAaW9nZWFyYm94Lm5ldD4KQWNrZWQtYnk6IERhbmllbCBCb3Jr bWFubiA8ZGFuaWVsQGlvZ2VhcmJveC5uZXQ+ClNpZ25lZC1vZmYtYnk6IERhdmlkIFMuIE1pbGxl ciA8ZGF2ZW1AZGF2ZW1sb2Z0Lm5ldD4KLS0tCiBhcmNoL3g4Ni9uZXQvYnBmX2ppdF9jb21wLmMg fCA3ICsrKysrKy0KIDEgZmlsZSBjaGFuZ2VkLCA2IGluc2VydGlvbnMoKyksIDEgZGVsZXRpb24o LSkKCmRpZmYgLS1naXQgYS9hcmNoL3g4Ni9uZXQvYnBmX2ppdF9jb21wLmMgYi9hcmNoL3g4Ni9u ZXQvYnBmX2ppdF9jb21wLmMKaW5kZXggM2RlODg2Zi4uODIwMDNhMyAxMDA2NDQKLS0tIGEvYXJj aC94ODYvbmV0L2JwZl9qaXRfY29tcC5jCisrKyBiL2FyY2gveDg2L25ldC9icGZfaml0X2NvbXAu YwpAQCAtOTY0LDcgKzk2NCwxMiBAQCB2b2lkIGJwZl9pbnRfaml0X2NvbXBpbGUoc3RydWN0IGJw Zl9wcm9nICpwcm9nKQogCX0KIAljdHguY2xlYW51cF9hZGRyID0gcHJvZ2xlbjsKIAotCWZvciAo cGFzcyA9IDA7IHBhc3MgPCAxMDsgcGFzcysrKSB7CisJLyogSklUZWQgaW1hZ2Ugc2hyaW5rcyB3 aXRoIGV2ZXJ5IHBhc3MgYW5kIHRoZSBsb29wIGl0ZXJhdGVzCisJICogdW50aWwgdGhlIGltYWdl IHN0b3BzIHNocmlua2luZy4gVmVyeSBsYXJnZSBicGYgcHJvZ3JhbXMKKwkgKiBtYXkgY29udmVy Z2Ugb24gdGhlIGxhc3QgcGFzcy4gSW4gc3VjaCBjYXNlIGRvIG9uZSBtb3JlCisJICogcGFzcyB0 byBlbWl0IHRoZSBmaW5hbCBpbWFnZQorCSAqLworCWZvciAocGFzcyA9IDA7IHBhc3MgPCAxMCB8 fCBpbWFnZTsgcGFzcysrKSB7CiAJCXByb2dsZW4gPSBkb19qaXQocHJvZywgYWRkcnMsIGltYWdl LCBvbGRwcm9nbGVuLCAmY3R4KTsKIAkJaWYgKHByb2dsZW4gPD0gMCkgewogCQkJaW1hZ2UgPSBO VUxMOwotLSAKMi4xLjAKCgpGcm9tIGM4OGU5NTU0YTZlZTIzN2IxZmVhYzEzMzA3MzhmOGYxNWVk M2JiMzYgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCkZyb206IEZsb3JpYW4gRmFpbmVsbGkgPGYu ZmFpbmVsbGlAZ21haWwuY29tPgpEYXRlOiBGcmksIDE1IE1heSAyMDE1IDE2OjMwOjQxIC0wNzAw ClN1YmplY3Q6IFtQQVRDSCAwNC8yNV0gbmV0OiBwaHk6IEFsbG93IEVFRSBmb3IgYWxsIFJHTUlJ IHZhcmlhbnRzCgpbIFVwc3RyZWFtIGNvbW1pdCA3ZTE0MDY5NjUxNTkxYzgxMDQ2ZmZhZWMxM2Mz ZGFjOGNiNzBmNWZiIF0KClJHTUlJIGludGVyZmFjZXMgY29tZSBpbiBtdWx0aXBsZSBmbGF2b3Jz OiBSR01JSSB3aXRoIHRyYW5zbWl0IG9yCnJlY2VpdmUgaW50ZXJuYWwgZGVsYXksIG5vIGRlbGF5 cyBhdCBhbGwsIG9yIGRlbGF5cyBpbiBib3RoIGRpcmVjdGlvbi4KClRoaXMgY2hhbmdlIGV4dGVu ZHMgdGhlIGluaXRpYWwgY2hlY2sgZm9yIFBIWV9JTlRFUkZBQ0VfTU9ERV9SR01JSSB0bwpjb3Zl ciBhbGwgb2YgdGhlc2UgdmFyaWFudHMgc2luY2UgRUVFIHNob3VsZCBiZSBhbGxvd2VkIGZvciBh bnkgb2YgdGhlc2UKbW9kZXMsIHNpbmNlIGl0IGlzIGEgcHJvcGVydHkgb2YgdGhlIFJHTUlJLCBo ZW5jZSBHaWdhYml0IFBIWSBjYXBhYmlsaXR5Cm1vcmUgdGhhbiB0aGUgUkdNSUkgZWxlY3RyaWNh bCBpbnRlcmZhY2UgYW5kIGl0cyBkZWxheXMuCgpGaXhlczogYTU5YTRkMTkyMTY2ICgicGh5OiBh ZGQgdGhlIEVFRSBzdXBwb3J0IGFuZCB0aGUgd2F5IHRvIGFjY2VzcyB0byB0aGUgTU1EIHJlZ2lz dGVycyIpClNpZ25lZC1vZmYtYnk6IEZsb3JpYW4gRmFpbmVsbGkgPGYuZmFpbmVsbGlAZ21haWwu Y29tPgpTaWduZWQtb2ZmLWJ5OiBEYXZpZCBTLiBNaWxsZXIgPGRhdmVtQGRhdmVtbG9mdC5uZXQ+ Ci0tLQogZHJpdmVycy9uZXQvcGh5L3BoeS5jIHwgNyArKysrLS0tCiAxIGZpbGUgY2hhbmdlZCwg NCBpbnNlcnRpb25zKCspLCAzIGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0 L3BoeS9waHkuYyBiL2RyaXZlcnMvbmV0L3BoeS9waHkuYwppbmRleCBkYzFmNmYwLi45MWQ2ZDAz IDEwMDY0NAotLS0gYS9kcml2ZXJzL25ldC9waHkvcGh5LmMKKysrIGIvZHJpdmVycy9uZXQvcGh5 L3BoeS5jCkBAIC0xMDUwLDEzICsxMDUwLDE0IEBAIGludCBwaHlfaW5pdF9lZWUoc3RydWN0IHBo eV9kZXZpY2UgKnBoeWRldiwgYm9vbCBjbGtfc3RvcF9lbmFibGUpCiB7CiAJLyogQWNjb3JkaW5n IHRvIDgwMi4zYXosdGhlIEVFRSBpcyBzdXBwb3J0ZWQgb25seSBpbiBmdWxsIGR1cGxleC1tb2Rl LgogCSAqIEFsc28gRUVFIGZlYXR1cmUgaXMgYWN0aXZlIHdoZW4gY29yZSBpcyBvcGVyYXRpbmcg d2l0aCBNSUksIEdNSUkKLQkgKiBvciBSR01JSS4gSW50ZXJuYWwgUEhZcyBhcmUgYWxzbyBhbGxv d2VkIHRvIHByb2NlZWQgYW5kIHNob3VsZAotCSAqIHJldHVybiBhbiBlcnJvciBpZiB0aGV5IGRv IG5vdCBzdXBwb3J0IEVFRS4KKwkgKiBvciBSR01JSSAoYWxsIGtpbmRzKS4gSW50ZXJuYWwgUEhZ cyBhcmUgYWxzbyBhbGxvd2VkIHRvIHByb2NlZWQgYW5kCisJICogc2hvdWxkIHJldHVybiBhbiBl cnJvciBpZiB0aGV5IGRvIG5vdCBzdXBwb3J0IEVFRS4KIAkgKi8KIAlpZiAoKHBoeWRldi0+ZHVw bGV4ID09IERVUExFWF9GVUxMKSAmJgogCSAgICAoKHBoeWRldi0+aW50ZXJmYWNlID09IFBIWV9J TlRFUkZBQ0VfTU9ERV9NSUkpIHx8CiAJICAgIChwaHlkZXYtPmludGVyZmFjZSA9PSBQSFlfSU5U RVJGQUNFX01PREVfR01JSSkgfHwKLQkgICAgKHBoeWRldi0+aW50ZXJmYWNlID09IFBIWV9JTlRF UkZBQ0VfTU9ERV9SR01JSSkgfHwKKwkgICAgKHBoeWRldi0+aW50ZXJmYWNlID49IFBIWV9JTlRF UkZBQ0VfTU9ERV9SR01JSSAmJgorCSAgICAgcGh5ZGV2LT5pbnRlcmZhY2UgPD0gUEhZX0lOVEVS RkFDRV9NT0RFX1JHTUlJX1RYSUQpIHx8CiAJICAgICBwaHlfaXNfaW50ZXJuYWwocGh5ZGV2KSkp IHsKIAkJaW50IGVlZV9scCwgZWVlX2NhcCwgZWVlX2FkdjsKIAkJdTMyIGxwLCBjYXAsIGFkdjsK LS0gCjIuMS4wCgoKRnJvbSAzNjgyM2U3MDAxNmE2NTAxNDg1MjFjNTMyMmZmNDI1NzA3MjU0MzFl IE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBOaWNvbGFzIERpY2h0ZWwgPG5pY29sYXMu ZGljaHRlbEA2d2luZC5jb20+CkRhdGU6IFdlZCwgMTMgTWF5IDIwMTUgMTQ6MTk6NDIgKzAyMDAK U3ViamVjdDogW1BBVENIIDA1LzI1XSBydG5sL2JvbmQ6IGRvbid0IHNlbmQgcnRubCBtc2cgZm9y IHVucmVnaXN0ZXJlZCBpZmFjZQoKWyBVcHN0cmVhbSBjb21taXQgZWQyYTgwYWI3Yjc2ZjExYWYw YjJjNjI1NTcwOWM0ZWJmMTY0YjY2NyBdCgpCZWZvcmUgdGhlIHBhdGNoLCB0aGUgY29tbWFuZCAn aXAgbGluayBhZGQgYm9uZDIgdHlwZSBib25kIG1vZGUgODAyLjNhZCcKY2F1c2VzIHRoZSBrZXJu ZWwgdG8gc2VuZCBhIHJ0bmwgbWVzc2FnZSBmb3IgdGhlIGJvbmQyIGludGVyZmFjZSwgd2l0aCBh bgppZmluZGV4IDAuCgonaXAgbW9uaXRvcicgc2hvd3M6CjA6IGJvbmQyOiA8QlJPQURDQVNULE1V TFRJQ0FTVCxNQVNURVI+IG10dSAxNTAwIHN0YXRlIERPV04gZ3JvdXAgZGVmYXVsdAogICAgbGlu ay9ldGhlciAwMDowMDowMDowMDowMDowMCBicmQgZmY6ZmY6ZmY6ZmY6ZmY6ZmYKOTogYm9uZDJA Tk9ORTogPEJST0FEQ0FTVCxNVUxUSUNBU1QsTUFTVEVSPiBtdHUgMTUwMCBxZGlzYyBub29wIHN0 YXRlIERPV04gZ3JvdXAgZGVmYXVsdAogICAgbGluay9ldGhlciBlYTozZToxZjo1Mzo5Mjo3YiBi cmQgZmY6ZmY6ZmY6ZmY6ZmY6ZmYKW3NuaXBdCgpUaGUgcGF0Y2ggZml4ZXMgdGhlIHNwb3R0ZWQg YnVnIGJ5IGNoZWNraW5nIGluIGJvbmQgZHJpdmVyIGlmIHRoZSBpbnRlcmZhY2UKaXMgcmVnaXN0 ZXJlZCBiZWZvcmUgY2FsbGluZyB0aGUgbm90aWZpZXIgY2hhaW4uCkl0IGFsc28gYWRkcyBhIGNo ZWNrIGluIHJ0bXNnX2lmaW5mbygpIHRvIHByZXZlbnQgdGhpcyBraW5kIG9mIGJ1ZyBpbiB0aGUK ZnV0dXJlLgoKRml4ZXM6IGQ0MjYxZTU2NTAwMCAoImJvbmRpbmc6IGNyZWF0ZSBuZXRsaW5rIGV2 ZW50IHdoZW4gYm9uZGluZyBvcHRpb24gaXMgY2hhbmdlZCIpCkNDOiBKaXJpIFBpcmtvIDxqaXJp QHJlc251bGxpLnVzPgpSZXBvcnRlZC1ieTogSnVsaWVuIE1ldW5pZXIgPGp1bGllbi5tZXVuaWVy QDZ3aW5kLmNvbT4KU2lnbmVkLW9mZi1ieTogTmljb2xhcyBEaWNodGVsIDxuaWNvbGFzLmRpY2h0 ZWxANndpbmQuY29tPgpTaWduZWQtb2ZmLWJ5OiBEYXZpZCBTLiBNaWxsZXIgPGRhdmVtQGRhdmVt bG9mdC5uZXQ+Ci0tLQogZHJpdmVycy9uZXQvYm9uZGluZy9ib25kX29wdGlvbnMuYyB8IDIgKy0K IG5ldC9jb3JlL3J0bmV0bGluay5jICAgICAgICAgICAgICAgfCAzICsrKwogMiBmaWxlcyBjaGFu Z2VkLCA0IGluc2VydGlvbnMoKyksIDEgZGVsZXRpb24oLSkKCmRpZmYgLS1naXQgYS9kcml2ZXJz L25ldC9ib25kaW5nL2JvbmRfb3B0aW9ucy5jIGIvZHJpdmVycy9uZXQvYm9uZGluZy9ib25kX29w dGlvbnMuYwppbmRleCBiNjI2OTdmLi5mMWM1Mzk0IDEwMDY0NAotLS0gYS9kcml2ZXJzL25ldC9i b25kaW5nL2JvbmRfb3B0aW9ucy5jCisrKyBiL2RyaXZlcnMvbmV0L2JvbmRpbmcvYm9uZF9vcHRp b25zLmMKQEAgLTYyNSw3ICs2MjUsNyBAQCBpbnQgX19ib25kX29wdF9zZXQoc3RydWN0IGJvbmRp bmcgKmJvbmQsCiBvdXQ6CiAJaWYgKHJldCkKIAkJYm9uZF9vcHRfZXJyb3JfaW50ZXJwcmV0KGJv bmQsIG9wdCwgcmV0LCB2YWwpOwotCWVsc2UKKwllbHNlIGlmIChib25kLT5kZXYtPnJlZ19zdGF0 ZSA9PSBORVRSRUdfUkVHSVNURVJFRCkKIAkJY2FsbF9uZXRkZXZpY2Vfbm90aWZpZXJzKE5FVERF Vl9DSEFOR0VJTkZPREFUQSwgYm9uZC0+ZGV2KTsKIAogCXJldHVybiByZXQ7CmRpZmYgLS1naXQg YS9uZXQvY29yZS9ydG5ldGxpbmsuYyBiL25ldC9jb3JlL3J0bmV0bGluay5jCmluZGV4IGM1MjJm N2EuLjI0ZDMyNDIgMTAwNjQ0Ci0tLSBhL25ldC9jb3JlL3J0bmV0bGluay5jCisrKyBiL25ldC9j b3JlL3J0bmV0bGluay5jCkBAIC0yMjI5LDYgKzIyMjksOSBAQCB2b2lkIHJ0bXNnX2lmaW5mbyhp bnQgdHlwZSwgc3RydWN0IG5ldF9kZXZpY2UgKmRldiwgdW5zaWduZWQgaW50IGNoYW5nZSwKIAlp bnQgZXJyID0gLUVOT0JVRlM7CiAJc2l6ZV90IGlmX2luZm9fc2l6ZTsKIAorCWlmIChkZXYtPnJl Z19zdGF0ZSAhPSBORVRSRUdfUkVHSVNURVJFRCkKKwkJcmV0dXJuOworCiAJc2tiID0gbmxtc2df bmV3KChpZl9pbmZvX3NpemUgPSBpZl9ubG1zZ19zaXplKGRldiwgMCkpLCBmbGFncyk7CiAJaWYg KHNrYiA9PSBOVUxMKQogCQlnb3RvIGVycm91dDsKLS0gCjIuMS4wCgoKRnJvbSA1OTA5MTAwZjcz YjgxMDFjNDA0ODEwMmZlODM5ZTNmMjY2YzgyMWRlIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpG cm9tOiBGbG9yZW50IEZvdXJjb3QgPGZsb3JlbnQuZm91cmNvdEBlbnN0LWJyZXRhZ25lLmZyPgpE YXRlOiBTYXQsIDE2IE1heSAyMDE1IDAwOjI0OjU5ICswMjAwClN1YmplY3Q6IFtQQVRDSCAwNi8y NV0gdGNwL2lwdjY6IGZpeCBmbG93IGxhYmVsIHNldHRpbmcgaW4gVElNRV9XQUlUIHN0YXRlCgpb IFVwc3RyZWFtIGNvbW1pdCAyMTg1OGNkMDJkYWJjZjI5MDU2NGNiZjQ3NjliMTAxZWJhNTRkN2Ji IF0KCmNvbW1pdCAxZDEzYTk2Yzc0ZmMgKCJpcHY2OiB0Y3A6IGZpeCBmbG93bGFiZWwgdmFsdWUg aW4gQUNLIG1lc3NhZ2VzCnNlbmQgZnJvbSBUSU1FX1dBSVQiKSBhZGRlZCB0aGUgZmxvdyBsYWJl bCBpbiB0aGUgbGFzdCBUQ1AgcGFja2V0cy4KVW5mb3J0dW5hdGVseSwgaXQgd2FzIG5vdCBjYXN0 ZWQgcHJvcGVybHkuCgpUaGlzIHBhdGNoIHJlcGxhY2UgdGhlIGJ1Z2d5IHNoaWZ0IHdpdGggYmUz Ml90b19jcHUvY3B1X3RvX2JlMzIuCgpGaXhlczogMWQxM2E5NmM3NGZjICgiaXB2NjogdGNwOiBm aXggZmxvd2xhYmVsIHZhbHVlIGluIEFDSyBtZXNzYWdlcyIpClJlcG9ydGVkLWJ5OiBFcmljIER1 bWF6ZXQgPGVyaWMuZHVtYXpldEBnbWFpbC5jb20+ClNpZ25lZC1vZmYtYnk6IEZsb3JlbnQgRm91 cmNvdCA8ZmxvcmVudC5mb3VyY290QGVuc3QtYnJldGFnbmUuZnI+CkFja2VkLWJ5OiBFcmljIER1 bWF6ZXQgPGVkdW1hemV0QGdvb2dsZS5jb20+ClNpZ25lZC1vZmYtYnk6IERhdmlkIFMuIE1pbGxl ciA8ZGF2ZW1AZGF2ZW1sb2Z0Lm5ldD4KLS0tCiBuZXQvaXB2NC90Y3BfbWluaXNvY2tzLmMgfCAy ICstCiBuZXQvaXB2Ni90Y3BfaXB2Ni5jICAgICAgfCAyICstCiAyIGZpbGVzIGNoYW5nZWQsIDIg aW5zZXJ0aW9ucygrKSwgMiBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9uZXQvaXB2NC90Y3Bf bWluaXNvY2tzLmMgYi9uZXQvaXB2NC90Y3BfbWluaXNvY2tzLmMKaW5kZXggNjNkMjY4MC4uNzFk MDAxZCAxMDA2NDQKLS0tIGEvbmV0L2lwdjQvdGNwX21pbmlzb2Nrcy5jCisrKyBiL25ldC9pcHY0 L3RjcF9taW5pc29ja3MuYwpAQCAtMjk3LDcgKzI5Nyw3IEBAIHZvaWQgdGNwX3RpbWVfd2FpdChz dHJ1Y3Qgc29jayAqc2ssIGludCBzdGF0ZSwgaW50IHRpbWVvKQogCQkJdHctPnR3X3Y2X2RhZGRy ID0gc2stPnNrX3Y2X2RhZGRyOwogCQkJdHctPnR3X3Y2X3Jjdl9zYWRkciA9IHNrLT5za192Nl9y Y3Zfc2FkZHI7CiAJCQl0dy0+dHdfdGNsYXNzID0gbnAtPnRjbGFzczsKLQkJCXR3LT50d19mbG93 bGFiZWwgPSBucC0+Zmxvd19sYWJlbCA+PiAxMjsKKwkJCXR3LT50d19mbG93bGFiZWwgPSBiZTMy X3RvX2NwdShucC0+Zmxvd19sYWJlbCAmIElQVjZfRkxPV0xBQkVMX01BU0spOwogCQkJdHctPnR3 X2lwdjZvbmx5ID0gc2stPnNrX2lwdjZvbmx5OwogCQl9CiAjZW5kaWYKZGlmZiAtLWdpdCBhL25l dC9pcHY2L3RjcF9pcHY2LmMgYi9uZXQvaXB2Ni90Y3BfaXB2Ni5jCmluZGV4IDc5ZmU1ODUxLi5h M2Y5ZjExIDEwMDY0NAotLS0gYS9uZXQvaXB2Ni90Y3BfaXB2Ni5jCisrKyBiL25ldC9pcHY2L3Rj cF9pcHY2LmMKQEAgLTk3NSw3ICs5NzUsNyBAQCBzdGF0aWMgdm9pZCB0Y3BfdjZfdGltZXdhaXRf YWNrKHN0cnVjdCBzb2NrICpzaywgc3RydWN0IHNrX2J1ZmYgKnNrYikKIAkJCXRjcHR3LT50d19y Y3Zfd25kID4+IHR3LT50d19yY3Zfd3NjYWxlLAogCQkJdGNwX3RpbWVfc3RhbXAgKyB0Y3B0dy0+ dHdfdHNfb2Zmc2V0LAogCQkJdGNwdHctPnR3X3RzX3JlY2VudCwgdHctPnR3X2JvdW5kX2Rldl9p ZiwgdGNwX3R3c2tfbWQ1X2tleSh0Y3B0dyksCi0JCQl0dy0+dHdfdGNsYXNzLCAodHctPnR3X2Zs b3dsYWJlbCA8PCAxMikpOworCQkJdHctPnR3X3RjbGFzcywgY3B1X3RvX2JlMzIodHctPnR3X2Zs b3dsYWJlbCkpOwogCiAJaW5ldF90d3NrX3B1dCh0dyk7CiB9Ci0tIAoyLjEuMAoKCkZyb20gZDlm MTk2NzYxMTQyNDQwMmJiNDdhMzA0MjJmMWM2MzdiY2EyYzU3YiBNb24gU2VwIDE3IDAwOjAwOjAw IDIwMDEKRnJvbTogSGVubmluZyBSb2dnZSA8aHJvZ2dlQGdtYWlsLmNvbT4KRGF0ZTogTW9uLCAx OCBNYXkgMjAxNSAyMTowODo0OSArMDIwMApTdWJqZWN0OiBbUEFUQ0ggMDcvMjVdIG5ldC9pcHY2 L3VkcDogRml4IGlwdjYgbXVsdGljYXN0IHNvY2tldCBmaWx0ZXIKIHJlZ3Jlc3Npb24KClsgVXBz dHJlYW0gY29tbWl0IDMzYjRiMDE1ZTFhMWNhN2E4ZmRjZTQwYWY1ZTcxNjQyYThlYTM1NWMgXQoK Q29tbWl0IDw1Y2YzZDQ2MTkyZmM+ICgidWRwOiBTaW1wbGlmeV9fdWRwKl9saWJfbWNhc3RfZGVs aXZlciIpCnNpbXBsaWZpZWQgdGhlIGZpbHRlciBmb3IgaW5jb21pbmcgSVB2NiBtdWx0aWNhc3Qg YnV0IHJlbW92ZWQKdGhlIGNoZWNrIG9mIHRoZSBsb2NhbCBzb2NrZXQgYWRkcmVzcyBhbmQgdGhl IFVEUCBkZXN0aW5hdGlvbgphZGRyZXNzLgoKVGhpcyBwYXRjaCByZXN0b3JlcyB0aGUgZmlsdGVy IHRvIHByZXZlbnQgc29ja2V0cyBib3VuZCB0byBhIElQdjYKbXVsdGljYXN0IElQIHRvIHJlY2Vp dmUgb3RoZXIgVURQIHRyYWZmaWMgbGluayB1bmljYXN0LgoKU2lnbmVkLW9mZi1ieTogSGVubmlu ZyBSb2dnZSA8aHJvZ2dlQGdtYWlsLmNvbT4KRml4ZXM6IDVjZjNkNDYxOTJmYyAoInVkcDogU2lt cGxpZnlfX3VkcCpfbGliX21jYXN0X2RlbGl2ZXIiKQpDYzogIkRhdmlkIFMuIE1pbGxlciIgPGRh dmVtQGRhdmVtbG9mdC5uZXQ+CkFja2VkLWJ5OiBFcmljIER1bWF6ZXQgPGVkdW1hemV0QGdvb2ds ZS5jb20+ClNpZ25lZC1vZmYtYnk6IERhdmlkIFMuIE1pbGxlciA8ZGF2ZW1AZGF2ZW1sb2Z0Lm5l dD4KLS0tCiBuZXQvaXB2Ni91ZHAuYyB8IDQgKysrLQogMSBmaWxlIGNoYW5nZWQsIDMgaW5zZXJ0 aW9ucygrKSwgMSBkZWxldGlvbigtKQoKZGlmZiAtLWdpdCBhL25ldC9pcHY2L3VkcC5jIGIvbmV0 L2lwdjYvdWRwLmMKaW5kZXggZjZiYTUzNS4uZDY1MTY5MSAxMDA2NDQKLS0tIGEvbmV0L2lwdjYv dWRwLmMKKysrIGIvbmV0L2lwdjYvdWRwLmMKQEAgLTcyMSw3ICs3MjEsOSBAQCBzdGF0aWMgYm9v bCBfX3VkcF92Nl9pc19tY2FzdF9zb2NrKHN0cnVjdCBuZXQgKm5ldCwgc3RydWN0IHNvY2sgKnNr LAogCSAgICAoaW5ldC0+aW5ldF9kcG9ydCAmJiBpbmV0LT5pbmV0X2Rwb3J0ICE9IHJtdF9wb3J0 KSB8fAogCSAgICAoIWlwdjZfYWRkcl9hbnkoJnNrLT5za192Nl9kYWRkcikgJiYKIAkJICAgICFp cHY2X2FkZHJfZXF1YWwoJnNrLT5za192Nl9kYWRkciwgcm10X2FkZHIpKSB8fAotCSAgICAoc2st PnNrX2JvdW5kX2Rldl9pZiAmJiBzay0+c2tfYm91bmRfZGV2X2lmICE9IGRpZikpCisJICAgIChz ay0+c2tfYm91bmRfZGV2X2lmICYmIHNrLT5za19ib3VuZF9kZXZfaWYgIT0gZGlmKSB8fAorCSAg ICAoIWlwdjZfYWRkcl9hbnkoJnNrLT5za192Nl9yY3Zfc2FkZHIpICYmCisJCSAgICAhaXB2Nl9h ZGRyX2VxdWFsKCZzay0+c2tfdjZfcmN2X3NhZGRyLCBsb2NfYWRkcikpKQogCQlyZXR1cm4gZmFs c2U7CiAJaWYgKCFpbmV0Nl9tY19jaGVjayhzaywgbG9jX2FkZHIsIHJtdF9hZGRyKSkKIAkJcmV0 dXJuIGZhbHNlOwotLSAKMi4xLjAKCgpGcm9tIDlmYjJkNDZjMzExZWRkNDdhZGZlYmFmZTI2ZTc3 YWFjYzE1ZDE1YjIgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCkZyb206IERhbmllbCBCb3JrbWFu biA8ZGFuaWVsQGlvZ2VhcmJveC5uZXQ+CkRhdGU6IFdlZCwgMjAgTWF5IDIwMTUgMTc6MTM6MzMg KzAyMDAKU3ViamVjdDogW1BBVENIIDA4LzI1XSBuZXQ6IHNjaGVkOiBmaXggY2FsbF9yY3UoKSBy YWNlIG9uIGNsYXNzaWZpZXIgbW9kdWxlCiB1bmxvYWRzCgpbIFVwc3RyZWFtIGNvbW1pdCBjNzhl MTc0NmQzYWQ3ZDU0OGJkZjNmZTQ5MTg5OGNjNDUzOTExYTQ5IF0KClZpamF5IHJlcG9ydGVkIHRo YXQgYSBsb29wIGFzIHNpbXBsZSBhcyAuLi4KCiAgd2hpbGUgdHJ1ZTsgZG8KICAgIHRjIHFkaXNj IGFkZCBkZXYgZm9vIHJvb3QgaGFuZGxlIDE6IHByaW8KICAgIHRjIGZpbHRlciBhZGQgZGV2IGZv byBwYXJlbnQgMTogdTMyIG1hdGNoIHUzMiAwIDAgIGZsb3dpZCAxCiAgICB0YyBxZGlzYyBkZWwg ZGV2IGZvbyByb290CiAgICBybW1vZCBjbHNfdTMyCiAgZG9uZQoKLi4uIHdpbGwgcGFuaWMgdGhl IGtlcm5lbC4gTW9yZW92ZXIsIGhlIGJpc2VjdGVkIHRoZSBjaGFuZ2UKYXBwYXJlbnRseSBpbnRy b2R1Y2luZyBpdCB0byA3OGZkMWQwYWIwNzIgKCJuZXRsaW5rOiBSZS1hZGQKbG9ja2luZyB0byBu ZXRsaW5rX2xvb2t1cCgpIGFuZCBzZXEgd2Fsa2VyIikuCgpUaGUgcmVtb3ZhbCBvZiBzeW5jaHJv bml6ZV9uZXQoKSBmcm9tIHRoZSBuZXRsaW5rIHNvY2tldAp0cmlnZ2VyaW5nIHRoZSBxZGlzYyB0 byBiZSByZW1vdmVkLCBzZWVtcyB0byBoYXZlIHVuY292ZXJlZAphbiBSQ1UgcmVzcC4gbW9kdWxl IHJlZmVyZW5jZSBjb3VudCByYWNlIGZyb20gdGhlIHRjIEFQSS4KR2l2ZW4gdGhhdCBSQ1UgY29u dmVyc2lvbiB3YXMgZG9uZSBhZnRlciBlMzQxNjk0ZTNlYjUgKCJuZXRsaW5rOgpDb252ZXJ0IG5l dGxpbmtfbG9va3VwKCkgdG8gdXNlIFJDVSBwcm90ZWN0ZWQgaGFzaCB0YWJsZSIpCndoaWNoIGFk ZGVkIHRoZSBzeW5jaHJvbml6ZV9uZXQoKSBvcmlnaW5hbGx5LCBvY2Nhc2lvbiBvZgpoaXR0aW5n IHRoZSBidWcgd2FzIGxlc3MgbGlrZWx5IChub3QgaW1wb3NzaWJsZSB0aG91Z2gpOgoKV2hlbiBx ZGlzY3MgdGhhdCBpKSBzdXBwb3J0IGF0dGFjaGluZyBjbGFzc2lmaWVycyBhbmQsCmlpKSBoYXZl IGF0IGxlYXN0IG9uZSBvZiB0aGVtIGF0dGFjaGVkLCBnZXQgZGVsZXRlZCwgdGhleQppbnZva2Ug dGNmX2Rlc3Ryb3lfY2hhaW4oKSwgYW5kIHRodXMgY2FsbCBpbnRvIC0+ZGVzdHJveSgpCmhhbmRs ZXIgZnJvbSBhIGNsYXNzaWZpZXIgbW9kdWxlLgoKQWZ0ZXIgUkNVIGNvbnZlcnNpb24sIGFsbCBj bGFzc2lmaWVyIHRoYXQgaGF2ZSBhbiBpbnRlcm5hbApwcmlvIGxpc3QsIHVubGluayB0aGVtIGFu ZCBpbml0aWF0ZSBmcmVlaW5nIHZpYSBjYWxsX3JjdSgpCmRlZmVycmFsLgoKTWVhbmhpbGUsIHRj Zl9kZXN0cm95KCkgcmVsZWFzZXMgYWxyZWFkeSByZWZlcmVuY2UgdG8gdGhlCnRwLT5vcHMtPm93 bmVyIG1vZHVsZSBiZWZvcmUgdGhlIHF1ZXVlZCBSQ1UgY2FsbGJhY2sgaGFuZGxlcgpoYXMgYmVl biBpbnZva2VkLgoKU3Vic2VxdWVudCBybW1vZCBvbiB0aGUgY2xhc3NpZmllciBtb2R1bGUgaXMg dGhlbiBub3QgcHJldmVudGVkCnNpbmNlIGFsbCBtb2R1bGUgcmVmZXJlbmNlcyBhcmUgYWxyZWFk eSBkcm9wcGVkLgoKQnkgdGhlIHRpbWUsIHRoZSBrZXJuZWwgaW52b2tlcyB0aGUgUkNVIGNhbGxi YWNrIGhhbmRsZXIgZnJvbQp0aGUgbW9kdWxlLCB0aGF0IGZ1bmN0aW9uIGFkZHJlc3MgaXMgdGhl biBpbnZhbGlkLgoKT25lIHdheSB0byBmaXggaXQgd291bGQgYmUgdG8gYWRkIGFuIHJjdV9iYXJy aWVyKCkgdG8KdW5yZWdpc3Rlcl90Y2ZfcHJvdG9fb3BzKCkgdG8gd2FpdCBmb3IgYWxsIHBlbmRp bmcgY2FsbF9yY3UoKXMKdG8gY29tcGxldGUuCgpzeW5jaHJvbml6ZV9yY3UoKSBpcyBub3QgYXBw cm9wcmlhdGUgYXMgdW5kZXIgaGVhdnkgUkNVCmNhbGxiYWNrIGxvYWQsIHJlZ2lzdGVyZWQgY2Fs bF9yY3UoKXMgY291bGQgYmUgZGVmZXJyZWQKbG9uZ2VyIHRoYW4gYSBncmFjZSBwZXJpb2QuIElu IGNhc2Ugd2UgZG9uJ3QgaGF2ZSBhbnkgcGVuZGluZwpjYWxsX3JjdSgpcywgdGhlIGJhcnJpZXIg aXMgYWxsb3dlZCB0byByZXR1cm4gaW1tZWRpYXRlbHkuCgpTaW5jZSB3ZSBjYW1lIGhlcmUgdmlh IHVucmVnaXN0ZXJfdGNmX3Byb3RvX29wcygpLCB0aGVyZQphcmUgbm8gdXNlcnMgb2YgYSBnaXZl biBjbGFzc2lmaWVyIGFueW1vcmUuIEZ1cnRoZXIgbmVzdGVkCmNhbGxfcmN1KClzIHBvaW50aW5n IGludG8gdGhlIG1vZHVsZSBzcGFjZSBhcmUgbm90IGJlaW5nCmRvbmUgYW55d2hlcmUuCgpPbmx5 IGNsc19icGZfZGVsZXRlX3Byb2coKSBtYXkgc2NoZWR1bGUgYSB3b3JrIGl0ZW0sIHRvCnVubG9j ayBwYWdlcyBldmVudHVhbGx5LCBidXQgdGhhdCBpcyBub3QgaW4gdGhlIHJhbmdlL2NvbnRleHQK b2YgY2xzX2JwZiBhbnltb3JlLgoKRml4ZXM6IDI1ZDhjMGQ1NWYyNCAoIm5ldDogcmN1LWlmeSB0 Y2ZfcHJvdG8iKQpGaXhlczogOTg4OGZhZWZlMTMyICgibmV0OiBzY2hlZDogY2xzX2Jhc2ljIHVz ZSBSQ1UiKQpSZXBvcnRlZC1ieTogVmlqYXkgU3VicmFtYW5pYW4gPHN1YnJhbWFuaWFuLnZpamF5 QGdtYWlsLmNvbT4KU2lnbmVkLW9mZi1ieTogRGFuaWVsIEJvcmttYW5uIDxkYW5pZWxAaW9nZWFy Ym94Lm5ldD4KQ2M6IEpvaG4gRmFzdGFiZW5kIDxqb2huLnIuZmFzdGFiZW5kQGludGVsLmNvbT4K Q2M6IEVyaWMgRHVtYXpldCA8ZWR1bWF6ZXRAZ29vZ2xlLmNvbT4KQ2M6IFRob21hcyBHcmFmIDx0 Z3JhZkBzdXVnLmNoPgpDYzogSmFtYWwgSGFkaSBTYWxpbSA8amhzQG1vamF0YXR1LmNvbT4KQ2M6 IEFsZXhlaSBTdGFyb3ZvaXRvdiA8YXN0QHBsdW1ncmlkLmNvbT4KVGVzdGVkLWJ5OiBWaWpheSBT dWJyYW1hbmlhbiA8c3VicmFtYW5pYW4udmlqYXlAZ21haWwuY29tPgpBY2tlZC1ieTogQWxleGVp IFN0YXJvdm9pdG92IDxhc3RAcGx1bWdyaWQuY29tPgpBY2tlZC1ieTogRXJpYyBEdW1hemV0IDxl ZHVtYXpldEBnb29nbGUuY29tPgpTaWduZWQtb2ZmLWJ5OiBEYXZpZCBTLiBNaWxsZXIgPGRhdmVt QGRhdmVtbG9mdC5uZXQ+Ci0tLQogbmV0L3NjaGVkL2Nsc19hcGkuYyB8IDUgKysrKysKIDEgZmls ZSBjaGFuZ2VkLCA1IGluc2VydGlvbnMoKykKCmRpZmYgLS1naXQgYS9uZXQvc2NoZWQvY2xzX2Fw aS5jIGIvbmV0L3NjaGVkL2Nsc19hcGkuYwppbmRleCBhYWQ2YTY3Li5mYWU4ODcwIDEwMDY0NAot LS0gYS9uZXQvc2NoZWQvY2xzX2FwaS5jCisrKyBiL25ldC9zY2hlZC9jbHNfYXBpLmMKQEAgLTgx LDYgKzgxLDExIEBAIGludCB1bnJlZ2lzdGVyX3RjZl9wcm90b19vcHMoc3RydWN0IHRjZl9wcm90 b19vcHMgKm9wcykKIAlzdHJ1Y3QgdGNmX3Byb3RvX29wcyAqdDsKIAlpbnQgcmMgPSAtRU5PRU5U OwogCisJLyogV2FpdCBmb3Igb3V0c3RhbmRpbmcgY2FsbF9yY3UoKXMsIGlmIGFueSwgZnJvbSBh CisJICogdGNmX3Byb3RvX29wcydzIGRlc3Ryb3koKSBoYW5kbGVyLgorCSAqLworCXJjdV9iYXJy aWVyKCk7CisKIAl3cml0ZV9sb2NrKCZjbHNfbW9kX2xvY2spOwogCWxpc3RfZm9yX2VhY2hfZW50 cnkodCwgJnRjZl9wcm90b19iYXNlLCBoZWFkKSB7CiAJCWlmICh0ID09IG9wcykgewotLSAKMi4x LjAKCgpGcm9tIGJmYWYzZjc1MjJhYmQ5Yzg2ODAzNTMyN2I5YmJlMWE0YzVkZWVhNDIgTW9uIFNl cCAxNyAwMDowMDowMCAyMDAxCkZyb206ICJFcmljIFcuIEJpZWRlcm1hbiIgPGViaWVkZXJtQHht aXNzaW9uLmNvbT4KRGF0ZTogRnJpLCAyMiBNYXkgMjAxNSAwNDo1ODoxMiAtMDUwMApTdWJqZWN0 OiBbUEFUQ0ggMDkvMjVdIGlwdjQ6IEF2b2lkIGNyYXNoaW5nIGluIGlwX2Vycm9yCgpbIFVwc3Ry ZWFtIGNvbW1pdCAzODFjNzU5ZDk5MTZjNDI5NTk1MTVhZDM0YTZkNDY3ZTI0YTg4ZTkzIF0KCmlw X2Vycm9yIGRvZXMgbm90IGNoZWNrIGlmIGluX2RldiBpcyBOVUxMIGJlZm9yZSBkZXJlZmVyZW5j aW5nIGl0LgoKSVRoZSBmb2xsb3dpbmcgc2VxdWVuY2Ugb2YgY2FsbHMgaXMgcG9zc2libGU6CkNQ VSBBICAgICAgICAgICAgICAgICAgICAgICAgICBDUFUgQgppcF9yY3ZfZmluaXNoCiAgICBpcF9y b3V0ZV9pbnB1dF9ub3JlZigpCiAgICAgICAgaXBfcm91dGVfaW5wdXRfc2xvdygpCiAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICBpbmV0ZGV2X2Rlc3Ryb3koKQogICAgZHN0X2lucHV0KCkK CldpdGggdGhlIHJlc3VsdCB0aGF0IGEgbmV0d29yayBkZXZpY2UgY2FuIGJlIGRlc3Ryb3llZCB3 aGlsZSBwcm9jZXNzaW5nCmFuIGlucHV0IHBhY2tldC4KCkEgY3Jhc2ggd2FzIHRyaWdnZXJlZCB3 aXRoIG9ubHkgdW5pY2FzdCBwYWNrZXRzIGluIGZsaWdodCwgYW5kCmZvcndhcmRpbmcgZW5hYmxl ZCBvbiB0aGUgb25seSBuZXR3b3JrIGRldmljZS4gICBUaGUgZXJyb3IgY29uZGl0aW9uCndhcyBj cmVhdGVkIGJ5IHRoZSByZW1vdmFsIG9mIHRoZSBuZXR3b3JrIGRldmljZS4KCkFzIHN1Y2ggaXQg aXMgbGlrZWx5IHRoZSB0aGF0IGVycm9yIGNvZGUgd2FzIC1FSE9TVFVOUkVBQ0gsIGFuZCB0aGUK YWN0aW9uIHRha2VuIGJ5IGlwX2Vycm9yIChpZiBpbl9kZXYgaGFkIGJlZW4gYWNjZXNzaWJsZSkg d291bGQgaGF2ZQpiZWVuIHRvIG5vdCBpbmNyZW1lbnQgYW55IGNvdW50ZXJzIGFuZCB0byBoYXZl IHRyaWVkIGFuZCBsaWtlbHkgZmFpbGVkCnRvIHNlbmQgYW4gaWNtcCBlcnJvciBhcyB0aGUgbmV0 d29yayBkZXZpY2UgaXMgZ29pbmcgYXdheS4KClRoZXJlZm9yZSBoYW5kbGUgdGhpcyB3ZWlyZCBj YXNlIGJ5IGp1c3QgZHJvcHBpbmcgdGhlIHBhY2tldCBpZgohaW5fZGV2LiAgSXQgd2lsbCByZXN1 bHQgaW4gZHJvcHBpbmcgdGhlIHBhY2tldCBzb29uZXIsIGFuZCB3aWxsIG5vdApyZXN1bHQgaW4g YW4gYWN0dWFsIGNoYW5nZSBvZiBiZWhhdmlvci4KCkZpeGVzOiAyNTFkYTQxMzAxMTViICgiaXB2 NDogQ2FjaGUgaXBfZXJyb3IoKSByb3V0ZXMgZXZlbiB3aGVuIG5vdCBmb3J3YXJkaW5nLiIpClJl cG9ydGVkLWJ5OiBWaXR0b3JpbyBHYW1iYWxldHRhIDxsaW51eGJ1Z3NAdml0dGdhbS5uZXQ+ClRl c3RlZC1ieTogVml0dG9yaW8gR2FtYmFsZXR0YSA8bGludXhidWdzQHZpdHRnYW0ubmV0PgpTaWdu ZWQtb2ZmLWJ5OiBWaXR0b3JpbyBHYW1iYWxldHRhIDxsaW51eGJ1Z3NAdml0dGdhbS5uZXQ+ClNp Z25lZC1vZmYtYnk6ICJFcmljIFcuIEJpZWRlcm1hbiIgPGViaWVkZXJtQHhtaXNzaW9uLmNvbT4K QWNrZWQtYnk6IEVyaWMgRHVtYXpldCA8ZWR1bWF6ZXRAZ29vZ2xlLmNvbT4KU2lnbmVkLW9mZi1i eTogRGF2aWQgUy4gTWlsbGVyIDxkYXZlbUBkYXZlbWxvZnQubmV0PgotLS0KIG5ldC9pcHY0L3Jv dXRlLmMgfCA0ICsrKysKIDEgZmlsZSBjaGFuZ2VkLCA0IGluc2VydGlvbnMoKykKCmRpZmYgLS1n aXQgYS9uZXQvaXB2NC9yb3V0ZS5jIGIvbmV0L2lwdjQvcm91dGUuYwppbmRleCBkNThkZDBlLi5i N2FjNDk4IDEwMDY0NAotLS0gYS9uZXQvaXB2NC9yb3V0ZS5jCisrKyBiL25ldC9pcHY0L3JvdXRl LmMKQEAgLTkwMyw2ICs5MDMsMTAgQEAgc3RhdGljIGludCBpcF9lcnJvcihzdHJ1Y3Qgc2tfYnVm ZiAqc2tiKQogCWJvb2wgc2VuZDsKIAlpbnQgY29kZTsKIAorCS8qIElQIG9uIHRoaXMgZGV2aWNl IGlzIGRpc2FibGVkLiAqLworCWlmICghaW5fZGV2KQorCQlnb3RvIG91dDsKKwogCW5ldCA9IGRl dl9uZXQocnQtPmRzdC5kZXYpOwogCWlmICghSU5fREVWX0ZPUldBUkQoaW5fZGV2KSkgewogCQlz d2l0Y2ggKHJ0LT5kc3QuZXJyb3IpIHsKLS0gCjIuMS4wCgoKRnJvbSA2ZjY3ZjNkNjhjYjdlOGI3 YmQ4Y2NkZjIwZDMwYjM2YzFhYzBhYTg1IE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiA9 P1VURi04P3E/Qmo9QzM9Qjhybj0yME1vcms/PSA8Ympvcm5AbW9yay5ubz4KRGF0ZTogRnJpLCAy MiBNYXkgMjAxNSAxMzoxNToyMiArMDIwMApTdWJqZWN0OiBbUEFUQ0ggMTAvMjVdIGNkY19uY206 IEZpeCB0eF9ieXRlcyBzdGF0aXN0aWNzCk1JTUUtVmVyc2lvbjogMS4wCkNvbnRlbnQtVHlwZTog dGV4dC9wbGFpbjsgY2hhcnNldD1VVEYtOApDb250ZW50LVRyYW5zZmVyLUVuY29kaW5nOiA4Yml0 CgpbIFVwc3RyZWFtIGNvbW1pdCA0NGY2NzMxZDhiNjhmYTAyZjVlZDY1ZWFjZWFjNDFmOGMzYzky NzllIF0KClRoZSB0eF9jdXJyX2ZyYW1lX3BheWxvYWQgZmllbGQgaXMgdTMyLiBXaGVuIHdlIHRy eSB0byBjYWxjdWxhdGUgYQpzbWFsbCBuZWdhdGl2ZSBkZWx0YSBiYXNlZCBvbiBpdCwgd2UgZW5k IHVwIHdpdGggYSBwb3NpdGl2ZSBpbnRlZ2VyCmNsb3NlIHRvIDJeMzIgaW5zdGVhZC4gIFNvIHRo ZSB0eF9ieXRlcyBwb2ludGVyIGluY3JlYXNlcyBieSBhYm91dAoyXjMyIGZvciBldmVyeSB0cmFu c21pdHRlZCBmcmFtZS4KCkZpeCBieSBjYWxjdWxhdGluZyB0aGUgZGVsdGEgYXMgYSBzaWduZWQg bG9uZy4KCkNjOiBCZW4gSHV0Y2hpbmdzIDxiZW4uaHV0Y2hpbmdzQGNvZGV0aGluay5jby51az4K UmVwb3J0ZWQtYnk6IEZsb3JpYW4gQnJ1aGluIDxtZUB0aGUtY29tcGlsZXIub3JnPgpGaXhlczog N2ExZTg5MGUyMTY4ICgidXNibmV0OiBGaXggdHhfYnl0ZXMgc3RhdGlzdGljIHJ1bm5pbmcgYmFj a3dhcmQgaW4gY2RjX25jbSIpClNpZ25lZC1vZmYtYnk6IEJqw7hybiBNb3JrIDxiam9ybkBtb3Jr Lm5vPgpTaWduZWQtb2ZmLWJ5OiBEYXZpZCBTLiBNaWxsZXIgPGRhdmVtQGRhdmVtbG9mdC5uZXQ+ Ci0tLQogZHJpdmVycy9uZXQvdXNiL2NkY19uY20uYyB8IDIgKy0KIDEgZmlsZSBjaGFuZ2VkLCAx IGluc2VydGlvbigrKSwgMSBkZWxldGlvbigtKQoKZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L3Vz Yi9jZGNfbmNtLmMgYi9kcml2ZXJzL25ldC91c2IvY2RjX25jbS5jCmluZGV4IGMzZTRkYTkuLjgw NjdiOGYgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvbmV0L3VzYi9jZGNfbmNtLmMKKysrIGIvZHJpdmVy cy9uZXQvdXNiL2NkY19uY20uYwpAQCAtMTE4Miw3ICsxMTgyLDcgQEAgY2RjX25jbV9maWxsX3R4 X2ZyYW1lKHN0cnVjdCB1c2JuZXQgKmRldiwgc3RydWN0IHNrX2J1ZmYgKnNrYiwgX19sZTMyIHNp Z24pCiAJICogcGF5bG9hZCBkYXRhIGluc3RlYWQuCiAJICovCiAJdXNibmV0X3NldF9za2JfdHhf c3RhdHMoc2tiX291dCwgbiwKLQkJCQljdHgtPnR4X2N1cnJfZnJhbWVfcGF5bG9hZCAtIHNrYl9v dXQtPmxlbik7CisJCQkJKGxvbmcpY3R4LT50eF9jdXJyX2ZyYW1lX3BheWxvYWQgLSBza2Jfb3V0 LT5sZW4pOwogCiAJcmV0dXJuIHNrYl9vdXQ7CiAKLS0gCjIuMS4wCgoKRnJvbSA0ZmQyZTFhNzY0 MmMyYWUyMzI3OGIxN2U2OTRiNjZmNWQzNmYzNzBiIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpG cm9tOiBUaGFkZXUgTGltYSBkZSBTb3V6YSBDYXNjYXJkbyA8Y2FzY2FyZG9AcmVkaGF0LmNvbT4K RGF0ZTogRnJpLCAyMiBNYXkgMjAxNSAxMjoxODo1OSAtMDMwMApTdWJqZWN0OiBbUEFUQ0ggMTEv MjVdIGJyaWRnZTogZml4IHBhcnNpbmcgb2YgTUxEdjIgcmVwb3J0cwoKWyBVcHN0cmVhbSBjb21t aXQgNDdjYzg0Y2UwYzJmZTc1Yzk5ZWE1OTYzYzRiNTcwNGRkNzhlYWQ1NCBdCgpXaGVuIG1vcmUg dGhhbiBhIG11bHRpY2FzdCBhZGRyZXNzIGlzIHByZXNlbnQgaW4gYSBNTER2MiByZXBvcnQsIGFs bCBidXQKdGhlIGZpcnN0IGFkZHJlc3MgaXMgaWdub3JlZCwgYmVjYXVzZSB0aGUgY29kZSBicmVh a3Mgb3V0IG9mIHRoZSBsb29wIGlmCnRoZXJlIGhhcyBub3QgYmVlbiBhbiBlcnJvciBhZGRpbmcg dGhhdCBhZGRyZXNzLgoKVGhpcyBoYXMgY2F1c2VkIGZhaWx1cmVzIHdoZW4gdHdvIGd1ZXN0cyBj b25uZWN0ZWQgdGhyb3VnaCB0aGUgYnJpZGdlCnRyaWVkIHRvIGNvbW11bmljYXRlIHVzaW5nIElQ djYuIE5laWdoYm9yIGRpc2NvdmVyaWVzIHdvdWxkIG5vdCBiZQp0cmFuc21pdHRlZCB0byB0aGUg b3RoZXIgZ3Vlc3Qgd2hlbiBib3RoIHVzZWQgYSBsaW5rLWxvY2FsIGFkZHJlc3MgYW5kIGEKc3Rh dGljIGFkZHJlc3MuCgpUaGlzIG9ubHkgaGFwcGVucyB3aGVuIHRoZXJlIGlzIGEgTUxEdjIgcXVl cmllciBpbiB0aGUgbmV0d29yay4KClRoZSBmaXggd2lsbCBvbmx5IGJyZWFrIG91dCBvZiB0aGUg bG9vcCB3aGVuIHRoZXJlIGlzIGEgZmFpbHVyZSBhZGRpbmcgYQptdWx0aWNhc3QgYWRkcmVzcy4K ClRoZSBtZGIgYmVmb3JlIHRoZSBwYXRjaDoKCmRldiBvdmlydG1nbXQgcG9ydCB2bmV0MCBncnAg ZmYwMjo6MTpmZjdkOjY2MDMgdGVtcApkZXYgb3ZpcnRtZ210IHBvcnQgdm5ldDEgZ3JwIGZmMDI6 OjE6ZmY3ZDo2NjA0IHRlbXAKZGV2IG92aXJ0bWdtdCBwb3J0IGJvbmQwLjg2IGdycCBmZjAyOjoy IHRlbXAKCkFmdGVyIHRoZSBwYXRjaDoKCmRldiBvdmlydG1nbXQgcG9ydCB2bmV0MCBncnAgZmYw Mjo6MTpmZjdkOjY2MDMgdGVtcApkZXYgb3ZpcnRtZ210IHBvcnQgdm5ldDEgZ3JwIGZmMDI6OjE6 ZmY3ZDo2NjA0IHRlbXAKZGV2IG92aXJ0bWdtdCBwb3J0IGJvbmQwLjg2IGdycCBmZjAyOjpmYiB0 ZW1wCmRldiBvdmlydG1nbXQgcG9ydCBib25kMC44NiBncnAgZmYwMjo6MiB0ZW1wCmRldiBvdmly dG1nbXQgcG9ydCBib25kMC44NiBncnAgZmYwMjo6ZCB0ZW1wCmRldiBvdmlydG1nbXQgcG9ydCB2 bmV0MCBncnAgZmYwMjo6MTpmZjAwOjc2IHRlbXAKZGV2IG92aXJ0bWdtdCBwb3J0IGJvbmQwLjg2 IGdycCBmZjAyOjoxNiB0ZW1wCmRldiBvdmlydG1nbXQgcG9ydCB2bmV0MSBncnAgZmYwMjo6MTpm ZjAwOjc3IHRlbXAKZGV2IG92aXJ0bWdtdCBwb3J0IGJvbmQwLjg2IGdycCBmZjAyOjoxOmZmMDA6 ZGVmIHRlbXAKZGV2IG92aXJ0bWdtdCBwb3J0IGJvbmQwLjg2IGdycCBmZjAyOjoxOmZmYTE6NDBi ZiB0ZW1wCgpGaXhlczogMDhiMjAyYjY3MjY0ICgiYnJpZGdlIGJyX211bHRpY2FzdDogSVB2NiBN TEQgc3VwcG9ydC4iKQpSZXBvcnRlZC1ieTogUmlrIFRoZXlzIDxSaWsuVGhleXNAZXNhdC5rdWxl dXZlbi5iZT4KU2lnbmVkLW9mZi1ieTogVGhhZGV1IExpbWEgZGUgU291emEgQ2FzY2FyZG8gPGNh c2NhcmRvQHJlZGhhdC5jb20+ClRlc3RlZC1ieTogUmlrIFRoZXlzIDxSaWsuVGhleXNAZXNhdC5r dWxldXZlbi5iZT4KU2lnbmVkLW9mZi1ieTogRGF2aWQgUy4gTWlsbGVyIDxkYXZlbUBkYXZlbWxv ZnQubmV0PgotLS0KIG5ldC9icmlkZ2UvYnJfbXVsdGljYXN0LmMgfCAyICstCiAxIGZpbGUgY2hh bmdlZCwgMSBpbnNlcnRpb24oKyksIDEgZGVsZXRpb24oLSkKCmRpZmYgLS1naXQgYS9uZXQvYnJp ZGdlL2JyX211bHRpY2FzdC5jIGIvbmV0L2JyaWRnZS9icl9tdWx0aWNhc3QuYwppbmRleCBjNDY1 ODc2Li5jZDAyMTg1IDEwMDY0NAotLS0gYS9uZXQvYnJpZGdlL2JyX211bHRpY2FzdC5jCisrKyBi L25ldC9icmlkZ2UvYnJfbXVsdGljYXN0LmMKQEAgLTEwNzEsNyArMTA3MSw3IEBAIHN0YXRpYyBp bnQgYnJfaXA2X211bHRpY2FzdF9tbGQyX3JlcG9ydChzdHJ1Y3QgbmV0X2JyaWRnZSAqYnIsCiAK IAkJZXJyID0gYnJfaXA2X211bHRpY2FzdF9hZGRfZ3JvdXAoYnIsIHBvcnQsICZncmVjLT5ncmVj X21jYSwKIAkJCQkJCSB2aWQpOwotCQlpZiAoIWVycikKKwkJaWYgKGVycikKIAkJCWJyZWFrOwog CX0KIAotLSAKMi4xLjAKCgpGcm9tIGVjM2VlZGU0ZjFmYWU5OGMzYzM5YzY2MGRmODUyNDViN2I4 N2FhMmIgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCkZyb206IFJpY2hhcmQgQ29jaHJhbiA8cmlj aGFyZGNvY2hyYW5AZ21haWwuY29tPgpEYXRlOiBNb24sIDI1IE1heSAyMDE1IDExOjU1OjQzICsw MjAwClN1YmplY3Q6IFtQQVRDSCAxMi8yNV0gbmV0OiBkcDgzNjQwOiBmaXggYnJva2VuIGNhbGli cmF0aW9uIHJvdXRpbmUuCgpbIFVwc3RyZWFtIGNvbW1pdCAzOTdhMjUzYWY1MDMxZGU0YTQ2MTIy MTAwNTU5MzUzMDlhZjQ0NzJjIF0KCkN1cnJlbnRseSwgdGhlIGNhbGlicmF0aW9uIGZ1bmN0aW9u IHRoYXQgY29ycmVjdHMgdGhlIGluaXRpYWwgb2Zmc2V0cwphbW9uZyBtdWx0aXBsZSBkZXZpY2Vz IG9ubHkgd29ya3MgdGhlIGZpcnN0IHRpbWUuICBJZiB0aGUgZnVuY3Rpb24gaXMKY2FsbGVkIG1v cmUgdGhhbiBvbmNlLCB0aGUgY2FsaWJyYXRpb24gZmFpbHMgYW5kIGJvZ3VzIG9mZnNldHMgd2ls bCBiZQpwcm9ncmFtbWVkIGludG8gdGhlIGRldmljZXMuCgpJbiBhIHdlbGwgaGlkZGVuIHNwb3Qs IHRoZSBkZXZpY2UgZG9jdW1lbnRhdGlvbiB0ZWxscyB0aGF0IHRyaWdnZXIgaW5kZXhlcwowIGFu ZCAxIGFyZSBzcGVjaWFsIGluIGFsbG93aW5nIHRoZSBUUklHX0lGX0xBVEUgZmxhZyB0byBhY3R1 YWxseSB3b3JrLgoKVGhpcyBwYXRjaCBmaXhlcyB0aGUgaXNzdWUgYnkgdXNpbmcgb25lIG9mIHRo ZSBzcGVjaWFsIHRyaWdnZXJzIGR1cmluZyB0aGUKcmVjYWxpYnJhdGlvbiBtZXRob2QuCgpTaWdu ZWQtb2ZmLWJ5OiBSaWNoYXJkIENvY2hyYW4gPHJpY2hhcmRjb2NocmFuQGdtYWlsLmNvbT4KU2ln bmVkLW9mZi1ieTogRGF2aWQgUy4gTWlsbGVyIDxkYXZlbUBkYXZlbWxvZnQubmV0PgotLS0KIGRy aXZlcnMvbmV0L3BoeS9kcDgzNjQwLmMgfCAyICstCiAxIGZpbGUgY2hhbmdlZCwgMSBpbnNlcnRp b24oKyksIDEgZGVsZXRpb24oLSkKCmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC9waHkvZHA4MzY0 MC5jIGIvZHJpdmVycy9uZXQvcGh5L2RwODM2NDAuYwppbmRleCBlMjJlNjAyLi41ZWIzYzhlIDEw MDY0NAotLS0gYS9kcml2ZXJzL25ldC9waHkvZHA4MzY0MC5jCisrKyBiL2RyaXZlcnMvbmV0L3Bo eS9kcDgzNjQwLmMKQEAgLTQ3LDcgKzQ3LDcgQEAKICNkZWZpbmUgUFNGX1RYCQkweDEwMDAKICNk ZWZpbmUgRVhUX0VWRU5UCTEKICNkZWZpbmUgQ0FMX0VWRU5UCTcKLSNkZWZpbmUgQ0FMX1RSSUdH RVIJNworI2RlZmluZSBDQUxfVFJJR0dFUgkxCiAjZGVmaW5lIERQODM2NDBfTl9QSU5TCTEyCiAK ICNkZWZpbmUgTUlJX0RQODM2NDBfTUlDUiAweDExCi0tIAoyLjEuMAoKCkZyb20gNjJmYzg1YTk4 ZGQyZDI3NWE0MGFlMDIxOGRlZTgzNDAxODUwZTIxZSBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEK RnJvbTogUmljaGFyZCBDb2NocmFuIDxyaWNoYXJkY29jaHJhbkBnbWFpbC5jb20+CkRhdGU6IE1v biwgMjUgTWF5IDIwMTUgMTE6NTU6NDQgKzAyMDAKU3ViamVjdDogW1BBVENIIDEzLzI1XSBuZXQ6 IGRwODM2NDA6IHJlaW5mb3JjZSBsb2NraW5nIHJ1bGVzLgoKWyBVcHN0cmVhbSBjb21taXQgYTkz NTg2NWM4MjhjOGNkMjA1MDFmNjE4YzY5ZjY1OWE1YjZkNmE1ZiBdCgpDYWxsZXJzIG9mIHRoZSBl eHRfd3JpdGUgZnVuY3Rpb24gYXJlIHN1cHBvc2VkIHRvIGhvbGQgYSBtdXRleCB0aGF0CnByb3Rl Y3RzIHRoZSBzdGF0ZSBvZiB0aGUgZGlhbGVkIHBhZ2UsIGJ1dCBvbmUgY2FsbGVyIHdhcyBtaXNz aW5nIHRoZQpsb2NrIGZyb20gdGhlIHZlcnkgc3RhcnQsIGFuZCBvdmVyIHRpbWUgdGhlIGNvZGUg aGFzIGJlZW4gY2hhbmdlZAp3aXRob3V0IGZvbGxvd2luZyB0aGUgcnVsZS4gIFRoaXMgcGF0Y2gg Y2xlYW5zIHVwIHRoZSBjYWxsIHNpdGVzIGluCnZpb2xhdGlvbiBvZiB0aGUgcnVsZS4KClNpZ25l ZC1vZmYtYnk6IFJpY2hhcmQgQ29jaHJhbiA8cmljaGFyZGNvY2hyYW5AZ21haWwuY29tPgpTaWdu ZWQtb2ZmLWJ5OiBEYXZpZCBTLiBNaWxsZXIgPGRhdmVtQGRhdmVtbG9mdC5uZXQ+Ci0tLQogZHJp dmVycy9uZXQvcGh5L2RwODM2NDAuYyB8IDE3ICsrKysrKysrKysrKysrKystCiAxIGZpbGUgY2hh bmdlZCwgMTYgaW5zZXJ0aW9ucygrKSwgMSBkZWxldGlvbigtKQoKZGlmZiAtLWdpdCBhL2RyaXZl cnMvbmV0L3BoeS9kcDgzNjQwLmMgYi9kcml2ZXJzL25ldC9waHkvZHA4MzY0MC5jCmluZGV4IDVl YjNjOGUuLjRmM2NmMWIgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvbmV0L3BoeS9kcDgzNjQwLmMKKysr IGIvZHJpdmVycy9uZXQvcGh5L2RwODM2NDAuYwpAQCAtNDk1LDcgKzQ5NSw5IEBAIHN0YXRpYyBp bnQgcHRwX2RwODM2NDBfZW5hYmxlKHN0cnVjdCBwdHBfY2xvY2tfaW5mbyAqcHRwLAogCQkJZWxz ZQogCQkJCWV2bnQgfD0gRVZOVF9SSVNFOwogCQl9CisJCW11dGV4X2xvY2soJmNsb2NrLT5leHRy ZWdfbG9jayk7CiAJCWV4dF93cml0ZSgwLCBwaHlkZXYsIFBBR0U1LCBQVFBfRVZOVCwgZXZudCk7 CisJCW11dGV4X3VubG9jaygmY2xvY2stPmV4dHJlZ19sb2NrKTsKIAkJcmV0dXJuIDA7CiAKIAlj YXNlIFBUUF9DTEtfUkVRX1BFUk9VVDoKQEAgLTUzMSw2ICs1MzMsOCBAQCBzdGF0aWMgdTggc3Rh dHVzX2ZyYW1lX3NyY1s2XSA9IHsgMHgwOCwgMHgwMCwgMHgxNywgMHgwQiwgMHg2QiwgMHgwRiB9 OwogCiBzdGF0aWMgdm9pZCBlbmFibGVfc3RhdHVzX2ZyYW1lcyhzdHJ1Y3QgcGh5X2RldmljZSAq cGh5ZGV2LCBib29sIG9uKQogeworCXN0cnVjdCBkcDgzNjQwX3ByaXZhdGUgKmRwODM2NDAgPSBw aHlkZXYtPnByaXY7CisJc3RydWN0IGRwODM2NDBfY2xvY2sgKmNsb2NrID0gZHA4MzY0MC0+Y2xv Y2s7CiAJdTE2IGNmZzAgPSAwLCB2ZXI7CiAKIAlpZiAob24pCkBAIC01MzgsOSArNTQyLDEzIEBA IHN0YXRpYyB2b2lkIGVuYWJsZV9zdGF0dXNfZnJhbWVzKHN0cnVjdCBwaHlfZGV2aWNlICpwaHlk ZXYsIGJvb2wgb24pCiAKIAl2ZXIgPSAoUFNGX1BUUFZFUiAmIFZFUlNJT05QVFBfTUFTSykgPDwg VkVSU0lPTlBUUF9TSElGVDsKIAorCW11dGV4X2xvY2soJmNsb2NrLT5leHRyZWdfbG9jayk7CisK IAlleHRfd3JpdGUoMCwgcGh5ZGV2LCBQQUdFNSwgUFNGX0NGRzAsIGNmZzApOwogCWV4dF93cml0 ZSgwLCBwaHlkZXYsIFBBR0U2LCBQU0ZfQ0ZHMSwgdmVyKTsKIAorCW11dGV4X3VubG9jaygmY2xv Y2stPmV4dHJlZ19sb2NrKTsKKwogCWlmICghcGh5ZGV2LT5hdHRhY2hlZF9kZXYpIHsKIAkJcHJf d2FybigiZXhwZWN0ZWQgdG8gZmluZCBhbiBhdHRhY2hlZCBuZXRkZXZpY2VcbiIpOwogCQlyZXR1 cm47CkBAIC0xMTcyLDExICsxMTgwLDE4IEBAIHN0YXRpYyBpbnQgZHA4MzY0MF9jb25maWdfaW5p dChzdHJ1Y3QgcGh5X2RldmljZSAqcGh5ZGV2KQogCiAJaWYgKGNsb2NrLT5jaG9zZW4gJiYgIWxp c3RfZW1wdHkoJmNsb2NrLT5waHlsaXN0KSkKIAkJcmVjYWxpYnJhdGUoY2xvY2spOwotCWVsc2UK KwllbHNlIHsKKwkJbXV0ZXhfbG9jaygmY2xvY2stPmV4dHJlZ19sb2NrKTsKIAkJZW5hYmxlX2Jy b2FkY2FzdChwaHlkZXYsIGNsb2NrLT5wYWdlLCAxKTsKKwkJbXV0ZXhfdW5sb2NrKCZjbG9jay0+ ZXh0cmVnX2xvY2spOworCX0KIAogCWVuYWJsZV9zdGF0dXNfZnJhbWVzKHBoeWRldiwgdHJ1ZSk7 CisKKwltdXRleF9sb2NrKCZjbG9jay0+ZXh0cmVnX2xvY2spOwogCWV4dF93cml0ZSgwLCBwaHlk ZXYsIFBBR0U0LCBQVFBfQ1RMLCBQVFBfRU5BQkxFKTsKKwltdXRleF91bmxvY2soJmNsb2NrLT5l eHRyZWdfbG9jayk7CisKIAlyZXR1cm4gMDsKIH0KIAotLSAKMi4xLjAKCgpGcm9tIDQyMWVkNGY2 NThmMzFkMTMxODI4NzVhMTU3NjU4ODlkMzNhZmQ3ZDYgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAx CkZyb206IFJpY2hhcmQgQ29jaHJhbiA8cmljaGFyZGNvY2hyYW5AZ21haWwuY29tPgpEYXRlOiBN b24sIDI1IE1heSAyMDE1IDExOjU1OjQ1ICswMjAwClN1YmplY3Q6IFtQQVRDSCAxNC8yNV0gbmV0 OiBkcDgzNjQwOiBmaXggaW1wcm9wZXIgZG91YmxlIHNwaW4gbG9ja2luZy4KClsgVXBzdHJlYW0g Y29tbWl0IGFkYmUwODhmNmY4YjBiNzcwMWZlMDdmNTFmZTZmMmJkNjAyYTY2NjUgXQoKQSBwYWly IG9mIG5lc3RlZCBzcGluIGxvY2tzIHdhcyBpbnRyb2R1Y2VkIGluIGNvbW1pdCA2MzUwMmI4ZDAK ImRwODM2NDA6IEZpeCByZWNlaXZlIHRpbWVzdGFtcCByYWNlIGNvbmRpdGlvbiIuCgpVbmZvcnR1 bmF0ZWx5IHRoZSAnZmxhZ3MnIHBhcmFtZXRlciB3YXMgcmV1c2VkIGZvciB0aGUgaW5uZXIgbG9j aywKY2xvYmJlcmluZyB0aGUgb3JpZ2luYWxseSBzYXZlZCBJUlEgc3RhdGUuICBUaGlzIHBhdGNo IGZpeGVzIHRoZSBpc3N1ZQpieSBjaGFuZ2luZyB0aGUgaW5uZXIgbG9jayB0byBwbGFpbiBzcGlu X2xvY2sgd2l0aG91dCBpcnFzYXZlLgoKU2lnbmVkLW9mZi1ieTogUmljaGFyZCBDb2NocmFuIDxy aWNoYXJkY29jaHJhbkBnbWFpbC5jb20+ClNpZ25lZC1vZmYtYnk6IERhdmlkIFMuIE1pbGxlciA8 ZGF2ZW1AZGF2ZW1sb2Z0Lm5ldD4KLS0tCiBkcml2ZXJzL25ldC9waHkvZHA4MzY0MC5jIHwgNCAr Ky0tCiAxIGZpbGUgY2hhbmdlZCwgMiBpbnNlcnRpb25zKCspLCAyIGRlbGV0aW9ucygtKQoKZGlm ZiAtLWdpdCBhL2RyaXZlcnMvbmV0L3BoeS9kcDgzNjQwLmMgYi9kcml2ZXJzL25ldC9waHkvZHA4 MzY0MC5jCmluZGV4IDRmM2NmMWIuLmM1Nzg5Y2QgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvbmV0L3Bo eS9kcDgzNjQwLmMKKysrIGIvZHJpdmVycy9uZXQvcGh5L2RwODM2NDAuYwpAQCAtODQ1LDcgKzg0 NSw3IEBAIHN0YXRpYyB2b2lkIGRlY29kZV9yeHRzKHN0cnVjdCBkcDgzNjQwX3ByaXZhdGUgKmRw ODM2NDAsCiAJbGlzdF9kZWxfaW5pdCgmcnh0cy0+bGlzdCk7CiAJcGh5MnJ4dHMocGh5X3J4dHMs IHJ4dHMpOwogCi0Jc3Bpbl9sb2NrX2lycXNhdmUoJmRwODM2NDAtPnJ4X3F1ZXVlLmxvY2ssIGZs YWdzKTsKKwlzcGluX2xvY2soJmRwODM2NDAtPnJ4X3F1ZXVlLmxvY2spOwogCXNrYl9xdWV1ZV93 YWxrKCZkcDgzNjQwLT5yeF9xdWV1ZSwgc2tiKSB7CiAJCXN0cnVjdCBkcDgzNjQwX3NrYl9pbmZv ICpza2JfaW5mbzsKIApAQCAtODYwLDcgKzg2MCw3IEBAIHN0YXRpYyB2b2lkIGRlY29kZV9yeHRz KHN0cnVjdCBkcDgzNjQwX3ByaXZhdGUgKmRwODM2NDAsCiAJCQlicmVhazsKIAkJfQogCX0KLQlz cGluX3VubG9ja19pcnFyZXN0b3JlKCZkcDgzNjQwLT5yeF9xdWV1ZS5sb2NrLCBmbGFncyk7CisJ c3Bpbl91bmxvY2soJmRwODM2NDAtPnJ4X3F1ZXVlLmxvY2spOwogCiAJaWYgKCFzaGh3dHN0YW1w cykKIAkJbGlzdF9hZGRfdGFpbCgmcnh0cy0+bGlzdCwgJmRwODM2NDAtPnJ4dHMpOwotLSAKMi4x LjAKCgpGcm9tIDZmYWY1NzAwNjA2YWJlYTAxMThkZWZkZWIyZTY1YzA2ZGFjNTJhMDIgTW9uIFNl cCAxNyAwMDowMDowMCAyMDAxCkZyb206IE1hcmsgU2FseXp5biA8c2FseXp5bkBhbmRyb2lkLmNv bT4KRGF0ZTogVHVlLCAyNiBNYXkgMjAxNSAwODoyMjoxOSAtMDcwMApTdWJqZWN0OiBbUEFUQ0gg MTUvMjVdIHVuaXgvY2FpZjogc2tfc29ja2V0IGNhbiBkaXNhcHBlYXIgd2hlbiBzdGF0ZSBpcwog dW5sb2NrZWQKClsgVXBzdHJlYW0gY29tbWl0IGI0ODczMmU0YTQ4ZDgwZWQ0YTE0ODEyZjBiYWIw OTU2MDg0NjUxNGUgXQoKZ290IGEgcmFyZSBOVUxMIHBvaW50ZXIgZGVyZWZlcmVuY2UgaW4gY2xl YXJfYml0CgpTaWduZWQtb2ZmLWJ5OiBNYXJrIFNhbHl6eW4gPHNhbHl6eW5AYW5kcm9pZC5jb20+ CkFja2VkLWJ5OiBIYW5uZXMgRnJlZGVyaWMgU293YSA8aGFubmVzQHN0cmVzc2luZHVrdGlvbi5v cmc+Ci0tLS0KdjI6IHN3aXRjaCB0byBzb2NrX2ZsYWcoc2ssIFNPQ0tfREVBRCkgYW5kIGFkZGVk IG5ldC9jYWlmL2NhaWZfc29ja2V0LmMKdjM6IHJldHVybiAtRUNPTk5SRVNFVCBpbiB1cHN0cmVh bSBjYWxsZXIgb2Ygd2FpdCBmdW5jdGlvbiBmb3IgU09DS19ERUFEClNpZ25lZC1vZmYtYnk6IERh dmlkIFMuIE1pbGxlciA8ZGF2ZW1AZGF2ZW1sb2Z0Lm5ldD4KLS0tCiBuZXQvY2FpZi9jYWlmX3Nv Y2tldC5jIHwgOCArKysrKysrKwogbmV0L3VuaXgvYWZfdW5peC5jICAgICB8IDggKysrKysrKysK IDIgZmlsZXMgY2hhbmdlZCwgMTYgaW5zZXJ0aW9ucygrKQoKZGlmZiAtLWdpdCBhL25ldC9jYWlm L2NhaWZfc29ja2V0LmMgYi9uZXQvY2FpZi9jYWlmX3NvY2tldC5jCmluZGV4IDc2NWM3ODEuLjVl MTBlZTAgMTAwNjQ0Ci0tLSBhL25ldC9jYWlmL2NhaWZfc29ja2V0LmMKKysrIGIvbmV0L2NhaWYv Y2FpZl9zb2NrZXQuYwpAQCAtMzMwLDYgKzMzMCwxMCBAQCBzdGF0aWMgbG9uZyBjYWlmX3N0cmVh bV9kYXRhX3dhaXQoc3RydWN0IHNvY2sgKnNrLCBsb25nIHRpbWVvKQogCQlyZWxlYXNlX3NvY2so c2spOwogCQl0aW1lbyA9IHNjaGVkdWxlX3RpbWVvdXQodGltZW8pOwogCQlsb2NrX3NvY2soc2sp OworCisJCWlmIChzb2NrX2ZsYWcoc2ssIFNPQ0tfREVBRCkpCisJCQlicmVhazsKKwogCQljbGVh cl9iaXQoU09DS19BU1lOQ19XQUlUREFUQSwgJnNrLT5za19zb2NrZXQtPmZsYWdzKTsKIAl9CiAK QEAgLTM3NCw2ICszNzgsMTAgQEAgc3RhdGljIGludCBjYWlmX3N0cmVhbV9yZWN2bXNnKHN0cnVj dCBraW9jYiAqaW9jYiwgc3RydWN0IHNvY2tldCAqc29jaywKIAkJc3RydWN0IHNrX2J1ZmYgKnNr YjsKIAogCQlsb2NrX3NvY2soc2spOworCQlpZiAoc29ja19mbGFnKHNrLCBTT0NLX0RFQUQpKSB7 CisJCQllcnIgPSAtRUNPTk5SRVNFVDsKKwkJCWdvdG8gdW5sb2NrOworCQl9CiAJCXNrYiA9IHNr Yl9kZXF1ZXVlKCZzay0+c2tfcmVjZWl2ZV9xdWV1ZSk7CiAJCWNhaWZfY2hlY2tfZmxvd19yZWxl YXNlKHNrKTsKIApkaWZmIC0tZ2l0IGEvbmV0L3VuaXgvYWZfdW5peC5jIGIvbmV0L3VuaXgvYWZf dW5peC5jCmluZGV4IGU5Njg4NDMuLjgyMzIxMTggMTAwNjQ0Ci0tLSBhL25ldC91bml4L2FmX3Vu aXguYworKysgYi9uZXQvdW5peC9hZl91bml4LmMKQEAgLTE4OTksNiArMTg5OSwxMCBAQCBzdGF0 aWMgbG9uZyB1bml4X3N0cmVhbV9kYXRhX3dhaXQoc3RydWN0IHNvY2sgKnNrLCBsb25nIHRpbWVv LAogCQl1bml4X3N0YXRlX3VubG9jayhzayk7CiAJCXRpbWVvID0gZnJlZXphYmxlX3NjaGVkdWxl X3RpbWVvdXQodGltZW8pOwogCQl1bml4X3N0YXRlX2xvY2soc2spOworCisJCWlmIChzb2NrX2Zs YWcoc2ssIFNPQ0tfREVBRCkpCisJCQlicmVhazsKKwogCQljbGVhcl9iaXQoU09DS19BU1lOQ19X QUlUREFUQSwgJnNrLT5za19zb2NrZXQtPmZsYWdzKTsKIAl9CiAKQEAgLTE5NjMsNiArMTk2Nywx MCBAQCBzdGF0aWMgaW50IHVuaXhfc3RyZWFtX3JlY3Ztc2coc3RydWN0IGtpb2NiICppb2NiLCBz dHJ1Y3Qgc29ja2V0ICpzb2NrLAogCQlzdHJ1Y3Qgc2tfYnVmZiAqc2tiLCAqbGFzdDsKIAogCQl1 bml4X3N0YXRlX2xvY2soc2spOworCQlpZiAoc29ja19mbGFnKHNrLCBTT0NLX0RFQUQpKSB7CisJ CQllcnIgPSAtRUNPTk5SRVNFVDsKKwkJCWdvdG8gdW5sb2NrOworCQl9CiAJCWxhc3QgPSBza2Ig PSBza2JfcGVlaygmc2stPnNrX3JlY2VpdmVfcXVldWUpOwogYWdhaW46CiAJCWlmIChza2IgPT0g TlVMTCkgewotLSAKMi4xLjAKCgpGcm9tIDU2N2U3YmFjMTkyYmYwZDdhNzA2NjNmMGQ4ZDY1N2Vj ZjM0MDE4NDYgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCkZyb206IFJvc3MgTGFnZXJ3YWxsIDxy b3NzLmxhZ2Vyd2FsbEBjaXRyaXguY29tPgpEYXRlOiBXZWQsIDI3IE1heSAyMDE1IDExOjQ0OjMy ICswMTAwClN1YmplY3Q6IFtQQVRDSCAxNi8yNV0geGVuL25ldGJhY2s6IFByb3Blcmx5IGluaXRp YWxpemUgY3JlZGl0X2J5dGVzCgpbIFVwc3RyZWFtIGNvbW1pdCBjZTBlNWM1MjJkMzkyNDA5MGMy MGU3NzQzNTk4MDlhN2FhMDhjNDRjIF0KCkNvbW1pdCBlOWNlN2NiNmIxMDcgKCJ4ZW4tbmV0YmFj azogRmFjdG9yIHF1ZXVlLXNwZWNpZmljIGRhdGEgaW50byBxdWV1ZQpzdHJ1Y3QiKSBpbnRyb2R1 Y2VkIGEgcmVncmVzc2lvbiB3aGVuIG1vdmluZyBxdWV1ZS1zcGVjaWZpYyBkYXRhIGludG8KdGhl IHF1ZXVlIHN0cnVjdCBieSBmYWlsaW5nIHRvIHNldCB0aGUgY3JlZGl0X2J5dGVzIGZpZWxkLiBU aGlzCnByZXZlbnRlZCBiYW5kd2lkdGggbGltaXRpbmcgZnJvbSB3b3JraW5nLiBJbml0aWFsaXpl IHRoZSBmaWVsZCBhcyBpdAp3YXMgZG9uZSBiZWZvcmUgbXVsdGlxdWV1ZSBzdXBwb3J0IHdhcyBh ZGRlZC4KClNpZ25lZC1vZmYtYnk6IFJvc3MgTGFnZXJ3YWxsIDxyb3NzLmxhZ2Vyd2FsbEBjaXRy aXguY29tPgpBY2tlZC1ieTogV2VpIExpdSA8d2VpLmxpdTJAY2l0cml4LmNvbT4KU2lnbmVkLW9m Zi1ieTogRGF2aWQgUy4gTWlsbGVyIDxkYXZlbUBkYXZlbWxvZnQubmV0PgotLS0KIGRyaXZlcnMv bmV0L3hlbi1uZXRiYWNrL3hlbmJ1cy5jIHwgMSArCiAxIGZpbGUgY2hhbmdlZCwgMSBpbnNlcnRp b24oKykKCmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC94ZW4tbmV0YmFjay94ZW5idXMuYyBiL2Ry aXZlcnMvbmV0L3hlbi1uZXRiYWNrL3hlbmJ1cy5jCmluZGV4IGMwNDcyODIuLjdjZGE3YTQgMTAw NjQ0Ci0tLSBhL2RyaXZlcnMvbmV0L3hlbi1uZXRiYWNrL3hlbmJ1cy5jCisrKyBiL2RyaXZlcnMv bmV0L3hlbi1uZXRiYWNrL3hlbmJ1cy5jCkBAIC03MzUsNiArNzM1LDcgQEAgc3RhdGljIHZvaWQg Y29ubmVjdChzdHJ1Y3QgYmFja2VuZF9pbmZvICpiZSkKIAkJCWdvdG8gZXJyOwogCQl9CiAKKwkJ cXVldWUtPmNyZWRpdF9ieXRlcyA9IGNyZWRpdF9ieXRlczsKIAkJcXVldWUtPnJlbWFpbmluZ19j cmVkaXQgPSBjcmVkaXRfYnl0ZXM7CiAJCXF1ZXVlLT5jcmVkaXRfdXNlYyA9IGNyZWRpdF91c2Vj OwogCi0tIAoyLjEuMAoKCkZyb20gNTdiYTQ1OWVkMzkxODZlNzdjZGI2MTgzY2Y3OGY4NjI0YTk5 YzJkMCBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJvbTogV0FORyBDb25nIDx4aXlvdS53YW5n Y29uZ0BnbWFpbC5jb20+CkRhdGU6IFR1ZSwgMjYgTWF5IDIwMTUgMTY6MDg6NDggLTA3MDAKU3Vi amVjdDogW1BBVENIIDE3LzI1XSBuZXRfc2NoZWQ6IGludm9rZSAtPmF0dGFjaCgpIGFmdGVyIHNl dHRpbmcgZGV2LT5xZGlzYwoKWyBVcHN0cmVhbSBjb21taXQgODZlMzYzZGMzYjUwYmZkNTBhMWYz MTU5MzQ1ODNmYmRhNjczYWI4ZCBdCgpGb3IgbXEgcWRpc2MsIHdlIGFkZCBwZXIgdHggcXVldWUg cWRpc2MgdG8gcm9vdCBxZGlzYwpmb3IgZGlzcGxheSBwdXJwb3NlLCBob3dldmVyLCB0aGF0IGhh cHBlbnMgdG9vIGVhcmx5LApiZWZvcmUgdGhlIG5ldyBkZXYtPnFkaXNjIGlzIGZpbmFsbHkgc2V0 LCB0aGlzIGNhdXNlcwpxLT5saXN0IHBvaW50cyB0byBhbiBvbGQgcm9vdCBxZGlzYyB3aGljaCBp cyBnb2luZyB0byBiZQpmcmVlZCByaWdodCBiZWZvcmUgYXNzaWduaW5nIHdpdGggYSBuZXcgb25l LgoKRml4IHRoaXMgYnkgbW92aW5nIC0+YXR0YWNoKCkgYWZ0ZXIgc2V0dGluZyBkZXYtPnFkaXNj LgoKRm9yIHRoZSByZWNvcmQsIHRoaXMgZml4ZXMgdGhlIGZvbGxvd2luZyBjcmFzaDoKCiAtLS0t LS0tLS0tLS1bIGN1dCBoZXJlIF0tLS0tLS0tLS0tLS0KIFdBUk5JTkc6IENQVTogMSBQSUQ6IDk3 NSBhdCBsaWIvbGlzdF9kZWJ1Zy5jOjU5IF9fbGlzdF9kZWxfZW50cnkrMHg1YS8weDk4KCkKIGxp c3RfZGVsIGNvcnJ1cHRpb24uIHByZXYtPm5leHQgc2hvdWxkIGJlIGZmZmY4ODAwZDE5OThhZTgs IGJ1dCB3YXMgNmI2YjZiNmI2YjZiNmI2YgogQ1BVOiAxIFBJRDogOTc1IENvbW06IHRjIE5vdCB0 YWludGVkIDQuMS4wLXJjNCsgIzEwMTkKIEhhcmR3YXJlIG5hbWU6IEJvY2hzIEJvY2hzLCBCSU9T IEJvY2hzIDAxLzAxLzIwMTEKICAwMDAwMDAwMDAwMDAwMDA5IGZmZmY4ODAwZDczZmI5MjggZmZm ZmZmZmY4MWE0NGU3ZiAwMDAwMDAwMDQ3NTc0NzU2CiAgZmZmZjg4MDBkNzNmYjk3OCBmZmZmODgw MGQ3M2ZiOTY4IGZmZmZmZmZmODEwNzkwZGEgZmZmZjg4MDBjZmM0Y2QyMAogIGZmZmZmZmZmODE0 ZTcyNWIgZmZmZjg4MDBkMTk5OGFlOCBmZmZmZmZmZjgyMzgxMjUwIDAwMDAwMDAwMDAwMDAwMDAK IENhbGwgVHJhY2U6CiAgWzxmZmZmZmZmZjgxYTQ0ZTdmPl0gZHVtcF9zdGFjaysweDRjLzB4NjUK ICBbPGZmZmZmZmZmODEwNzkwZGE+XSB3YXJuX3Nsb3dwYXRoX2NvbW1vbisweDljLzB4YjYKICBb PGZmZmZmZmZmODE0ZTcyNWI+XSA/IF9fbGlzdF9kZWxfZW50cnkrMHg1YS8weDk4CiAgWzxmZmZm ZmZmZjgxMDc5MTYyPl0gd2Fybl9zbG93cGF0aF9mbXQrMHg0Ni8weDQ4CiAgWzxmZmZmZmZmZjgx ODIwZWIwPl0gPyBkZXZfZ3JhZnRfcWRpc2MrMHg1ZS8weDZhCiAgWzxmZmZmZmZmZjgxNGU3MjVi Pl0gX19saXN0X2RlbF9lbnRyeSsweDVhLzB4OTgKICBbPGZmZmZmZmZmODE0ZTcyYTc+XSBsaXN0 X2RlbCsweGUvMHgyZAogIFs8ZmZmZmZmZmY4MTgyMmYwNT5dIHFkaXNjX2xpc3RfZGVsKzB4MWUv MHgyMAogIFs8ZmZmZmZmZmY4MTgyMGNkMT5dIHFkaXNjX2Rlc3Ryb3krMHgzMC8weGQ2CiAgWzxm ZmZmZmZmZjgxODIyNjc2Pl0gcWRpc2NfZ3JhZnQrMHgxMWQvMHgyNDMKICBbPGZmZmZmZmZmODE4 MjMzYzE+XSB0Y19nZXRfcWRpc2MrMHgxYTYvMHgxZDQKICBbPGZmZmZmZmZmODEwYjVlYWY+XSA/ IG1hcmtfbG9jaysweDJlLzB4MjI2CiAgWzxmZmZmZmZmZjgxN2ZmOGY1Pl0gcnRuZXRsaW5rX3Jj dl9tc2crMHgxODEvMHgxOTQKICBbPGZmZmZmZmZmODE3ZmY3MmU+XSA/IHJ0bmxfbG9jaysweDE3 LzB4MTkKICBbPGZmZmZmZmZmODE3ZmY3MmU+XSA/IHJ0bmxfbG9jaysweDE3LzB4MTkKICBbPGZm ZmZmZmZmODE3ZmY3NzQ+XSA/IF9fcnRubF91bmxvY2srMHgxNy8weDE3CiAgWzxmZmZmZmZmZjgx ODU1ZGM2Pl0gbmV0bGlua19yY3Zfc2tiKzB4NGQvMHg5MwogIFs8ZmZmZmZmZmY4MTdmZjc1Nj5d IHJ0bmV0bGlua19yY3YrMHgyNi8weDJkCiAgWzxmZmZmZmZmZjgxODU0NGIyPl0gbmV0bGlua191 bmljYXN0KzB4Y2IvMHgxNTAKICBbPGZmZmZmZmZmODExNjFkYjk+XSA/IG1pZ2h0X2ZhdWx0KzB4 NTkvMHhhOQogIFs8ZmZmZmZmZmY4MTg1NGY3OD5dIG5ldGxpbmtfc2VuZG1zZysweDRmYS8weDUx YwogIFs8ZmZmZmZmZmY4MTdkNmUwOT5dIHNvY2tfc2VuZG1zZ19ub3NlYysweDEyLzB4MWQKICBb PGZmZmZmZmZmODE3ZDg5Njc+XSBzb2NrX3NlbmRtc2crMHgyOS8weDJlCiAgWzxmZmZmZmZmZjgx N2Q4Y2YzPl0gX19fc3lzX3NlbmRtc2crMHgxYjQvMHgyM2EKICBbPGZmZmZmZmZmODEwMGExYjg+ XSA/IG5hdGl2ZV9zY2hlZF9jbG9jaysweDM1LzB4MzcKICBbPGZmZmZmZmZmODEwYTFkODM+XSA/ IHNjaGVkX2Nsb2NrX2xvY2FsKzB4MTIvMHg3MgogIFs8ZmZmZmZmZmY4MTBhMWZkND5dID8gc2No ZWRfY2xvY2tfY3B1KzB4OWUvMHhiNwogIFs8ZmZmZmZmZmY4MTBkZWYyYT5dID8gY3VycmVudF9r ZXJuZWxfdGltZSsweGUvMHgzMgogIFs8ZmZmZmZmZmY4MTBiNGJjNT5dID8gbG9ja19yZWxlYXNl X2hvbGR0aW1lLnBhcnQuMjkrMHg3MS8weDdmCiAgWzxmZmZmZmZmZjgxMGRkZWJmPl0gPyByZWFk X3NlcWNvdW50X2JlZ2luLmNvbnN0cHJvcC4yNysweDVmLzB4NzYKICBbPGZmZmZmZmZmODEwYjYy OTI+XSA/IHRyYWNlX2hhcmRpcnFzX29uX2NhbGxlcisweDE3ZC8weDE5OQogIFs8ZmZmZmZmZmY4 MTFiMTRkNT5dID8gX19mZ2V0X2xpZ2h0KzB4NTAvMHg3OAogIFs8ZmZmZmZmZmY4MTdkOTgwOD5d IF9fc3lzX3NlbmRtc2crMHg0Mi8weDYwCiAgWzxmZmZmZmZmZjgxN2Q5ODM4Pl0gU3lTX3NlbmRt c2crMHgxMi8weDFjCiAgWzxmZmZmZmZmZjgxYTUwZTk3Pl0gc3lzdGVtX2NhbGxfZmFzdHBhdGgr MHgxMi8weDZmCiAtLS1bIGVuZCB0cmFjZSBlZjI5ZDNmYjI4ZTk3YWU3IF0tLS0KCkZvciBsb25n IHRlcm0sIHdlIHByb2JhYmx5IG5lZWQgdG8gY2xlYW4gdXAgdGhlIHFkaXNjX2dyYWZ0KCkgY29k ZQppbiBjYXNlIGl0IGhpZGVzIG90aGVyIGJ1Z3MgbGlrZSB0aGlzLgoKRml4ZXM6IDk1ZGMxOTI5 OWY3NCAoInBrdF9zY2hlZDogZ2l2ZSB2aXNpYmlsaXR5IHRvIG1xIHNsYXZlIHFkaXNjcyIpCkNj OiBKYW1hbCBIYWRpIFNhbGltIDxqaHNAbW9qYXRhdHUuY29tPgpTaWduZWQtb2ZmLWJ5OiBDb25n IFdhbmcgPHhpeW91Lndhbmdjb25nQGdtYWlsLmNvbT4KQWNrZWQtYnk6IEVyaWMgRHVtYXpldCA8 ZWR1bWF6ZXRAZ29vZ2xlLmNvbT4KU2lnbmVkLW9mZi1ieTogRGF2aWQgUy4gTWlsbGVyIDxkYXZl bUBkYXZlbWxvZnQubmV0PgotLS0KIG5ldC9zY2hlZC9zY2hfYXBpLmMgfCAxMCArKysrKystLS0t CiAxIGZpbGUgY2hhbmdlZCwgNiBpbnNlcnRpb25zKCspLCA0IGRlbGV0aW9ucygtKQoKZGlmZiAt LWdpdCBhL25ldC9zY2hlZC9zY2hfYXBpLmMgYi9uZXQvc2NoZWQvc2NoX2FwaS5jCmluZGV4IDc2 ZjQwMmUuLmEyNWZhZTMgMTAwNjQ0Ci0tLSBhL25ldC9zY2hlZC9zY2hfYXBpLmMKKysrIGIvbmV0 L3NjaGVkL3NjaF9hcGkuYwpAQCAtODE1LDEwICs4MTUsOCBAQCBzdGF0aWMgaW50IHFkaXNjX2dy YWZ0KHN0cnVjdCBuZXRfZGV2aWNlICpkZXYsIHN0cnVjdCBRZGlzYyAqcGFyZW50LAogCQlpZiAo ZGV2LT5mbGFncyAmIElGRl9VUCkKIAkJCWRldl9kZWFjdGl2YXRlKGRldik7CiAKLQkJaWYgKG5l dyAmJiBuZXctPm9wcy0+YXR0YWNoKSB7Ci0JCQluZXctPm9wcy0+YXR0YWNoKG5ldyk7Ci0JCQlu dW1fcSA9IDA7Ci0JCX0KKwkJaWYgKG5ldyAmJiBuZXctPm9wcy0+YXR0YWNoKQorCQkJZ290byBz a2lwOwogCiAJCWZvciAoaSA9IDA7IGkgPCBudW1fcTsgaSsrKSB7CiAJCQlzdHJ1Y3QgbmV0ZGV2 X3F1ZXVlICpkZXZfcXVldWUgPSBkZXZfaW5ncmVzc19xdWV1ZShkZXYpOwpAQCAtODM0LDEyICs4 MzIsMTYgQEAgc3RhdGljIGludCBxZGlzY19ncmFmdChzdHJ1Y3QgbmV0X2RldmljZSAqZGV2LCBz dHJ1Y3QgUWRpc2MgKnBhcmVudCwKIAkJCQlxZGlzY19kZXN0cm95KG9sZCk7CiAJCX0KIAorc2tp cDoKIAkJaWYgKCFpbmdyZXNzKSB7CiAJCQlub3RpZnlfYW5kX2Rlc3Ryb3kobmV0LCBza2IsIG4s IGNsYXNzaWQsCiAJCQkJCSAgIGRldi0+cWRpc2MsIG5ldyk7CiAJCQlpZiAobmV3ICYmICFuZXct Pm9wcy0+YXR0YWNoKQogCQkJCWF0b21pY19pbmMoJm5ldy0+cmVmY250KTsKIAkJCWRldi0+cWRp c2MgPSBuZXcgPyA6ICZub29wX3FkaXNjOworCisJCQlpZiAobmV3ICYmIG5ldy0+b3BzLT5hdHRh Y2gpCisJCQkJbmV3LT5vcHMtPmF0dGFjaChuZXcpOwogCQl9IGVsc2UgewogCQkJbm90aWZ5X2Fu ZF9kZXN0cm95KG5ldCwgc2tiLCBuLCBjbGFzc2lkLCBvbGQsIG5ldyk7CiAJCX0KLS0gCjIuMS4w CgoKRnJvbSAwYmMyMWU3ODI5ZDE5YjFhODhlOWJiNmI3YTVjMWVmMDhhNDhmOTg1IE1vbiBTZXAg MTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBKYXNvbiBHdW50aG9ycGUgPGpndW50aG9ycGVAb2JzaWRp YW5yZXNlYXJjaC5jb20+CkRhdGU6IFR1ZSwgMjYgTWF5IDIwMTUgMTc6MzA6MTcgLTA2MDAKU3Vi amVjdDogW1BBVENIIDE4LzI1XSBzY3RwOiBGaXggbWFuZ2xlZCBJUHY0IGFkZHJlc3NlcyBvbiBh IElQdjYgbGlzdGVuaW5nCiBzb2NrZXQKClsgVXBzdHJlYW0gY29tbWl0IDkzMDJkN2JiMGM1Y2Q0 NmJlNTcwNjg1OTMwMWYxOGMxMzdiMjQzOWYgXQoKc2N0cF92NF9tYXBfdjYgd2FzIHN1YnRseSB3 cml0aW5nIGFuZCByZWFkaW5nIGZyb20gbWVtYmVycwpvZiBhIHVuaW9uIGluIGEgd2F5IHRoZSBj bG9iYmVyZWQgZGF0YSBpdCBuZWVkZWQgdG8gcmVhZCBiZWZvcmUKaXQgcmVhZCBpdC4KClplcm9p bmcgdGhlIHY2IGZsb3dpbmZvIG92ZXJ3cml0ZXMgdGhlIHY0IHNpbl9hZGRyIHdpdGggMCwgbWVh bmluZwp0aGF0IGV2ZXJ5IHBsYWNlIHRoYXQgY2FsbHMgc2N0cF92NF9tYXBfdjYgZ2V0cyA6OmZm ZmY6MC4wLjAuMCBhcyB0aGUKcmVzdWx0LgoKUmVvcmRlciB0aGluZ3MgdG8gZ3VhcmFudGVlIGNv cnJlY3QgYmVoYXZpb3VyIG5vIG1hdHRlciB3aGF0IHRoZQp1bmlvbiBsYXlvdXQgaXMuCgpUaGlz IGltcGFjdHMgdXNlciBzcGFjZSBjbGllbnRzIHRoYXQgb3BlbiBhbiBJUHY2IFNDVFAgc29ja2V0 IGFuZApyZWNlaXZlIElQdjQgY29ubmVjdGlvbnMuIFByaW9yIHRvIDI5OWVlIHVzZXIgc3BhY2Ug d291bGQgc2VlIGEKc29ja2FkZHIgd2l0aCBBRl9JTkVUIGFuZCBhIGNvcnJlY3QgYWRkcmVzcywg YWZ0ZXIgMjk5ZWUgdGhlIHNvY2thZGRyCmlzIEFGX0lORVQ2LCBidXQgdGhlIGFkZHJlc3MgaXMg d3JvbmcuCgpGaXhlczogMjk5ZWUxMjNlMTk4IChzY3RwOiBGaXh1cCB2NG1hcHBlZCBiZWhhdmlv dXIgdG8gY29tcGx5IHdpdGggU29jayBBUEkpClNpZ25lZC1vZmYtYnk6IEphc29uIEd1bnRob3Jw ZSA8amd1bnRob3JwZUBvYnNpZGlhbnJlc2VhcmNoLmNvbT4KQWNrZWQtYnk6IERhbmllbCBCb3Jr bWFubiA8ZGFuaWVsQGlvZ2VhcmJveC5uZXQ+CkFja2VkLWJ5OiBOZWlsIEhvcm1hbiA8bmhvcm1h bkB0dXhkcml2ZXIuY29tPgpTaWduZWQtb2ZmLWJ5OiBEYXZpZCBTLiBNaWxsZXIgPGRhdmVtQGRh dmVtbG9mdC5uZXQ+Ci0tLQogaW5jbHVkZS9uZXQvc2N0cC9zY3RwLmggfCA3ICsrKysrLS0KIDEg ZmlsZSBjaGFuZ2VkLCA1IGluc2VydGlvbnMoKyksIDIgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0 IGEvaW5jbHVkZS9uZXQvc2N0cC9zY3RwLmggYi9pbmNsdWRlL25ldC9zY3RwL3NjdHAuaAppbmRl eCA4NTZmMDFjLi4yMzA3NzVmIDEwMDY0NAotLS0gYS9pbmNsdWRlL25ldC9zY3RwL3NjdHAuaAor KysgYi9pbmNsdWRlL25ldC9zY3RwL3NjdHAuaApAQCAtNTcxLDExICs1NzEsMTQgQEAgc3RhdGlj IGlubGluZSB2b2lkIHNjdHBfdjZfbWFwX3Y0KHVuaW9uIHNjdHBfYWRkciAqYWRkcikKIC8qIE1h cCB2NCBhZGRyZXNzIHRvIHY0LW1hcHBlZCB2NiBhZGRyZXNzICovCiBzdGF0aWMgaW5saW5lIHZv aWQgc2N0cF92NF9tYXBfdjYodW5pb24gc2N0cF9hZGRyICphZGRyKQogeworCV9fYmUxNiBwb3J0 OworCisJcG9ydCA9IGFkZHItPnY0LnNpbl9wb3J0OworCWFkZHItPnY2LnNpbjZfYWRkci5zNl9h ZGRyMzJbM10gPSBhZGRyLT52NC5zaW5fYWRkci5zX2FkZHI7CisJYWRkci0+djYuc2luNl9wb3J0 ID0gcG9ydDsKIAlhZGRyLT52Ni5zaW42X2ZhbWlseSA9IEFGX0lORVQ2OwogCWFkZHItPnY2LnNp bjZfZmxvd2luZm8gPSAwOwogCWFkZHItPnY2LnNpbjZfc2NvcGVfaWQgPSAwOwotCWFkZHItPnY2 LnNpbjZfcG9ydCA9IGFkZHItPnY0LnNpbl9wb3J0OwotCWFkZHItPnY2LnNpbjZfYWRkci5zNl9h ZGRyMzJbM10gPSBhZGRyLT52NC5zaW5fYWRkci5zX2FkZHI7CiAJYWRkci0+djYuc2luNl9hZGRy LnM2X2FkZHIzMlswXSA9IDA7CiAJYWRkci0+djYuc2luNl9hZGRyLnM2X2FkZHIzMlsxXSA9IDA7 CiAJYWRkci0+djYuc2luNl9hZGRyLnM2X2FkZHIzMlsyXSA9IGh0b25sKDB4MDAwMGZmZmYpOwot LSAKMi4xLjAKCgpGcm9tIGFmZWI1ZTU4YzIwZDhhYjQ1ZDM0Y2Y5MzM2N2ZhZjMwMmEyOGYwYTMg TW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCkZyb206IEVyaWMgRHVtYXpldCA8ZWR1bWF6ZXRAZ29v Z2xlLmNvbT4KRGF0ZTogVGh1LCAyOCBNYXkgMjAxNSAwNDo0Mjo1NCAtMDcwMApTdWJqZWN0OiBb UEFUQ0ggMTkvMjVdIGJyaWRnZTogZml4IGJyX211bHRpY2FzdF9xdWVyeV9leHBpcmVkKCkgYnVn Ck1JTUUtVmVyc2lvbjogMS4wCkNvbnRlbnQtVHlwZTogdGV4dC9wbGFpbjsgY2hhcnNldD1VVEYt OApDb250ZW50LVRyYW5zZmVyLUVuY29kaW5nOiA4Yml0CgpbIFVwc3RyZWFtIGNvbW1pdCA3MWQ5 ZjYxNDljYWM4ZmM2NjQ2YWRmYjJhNmYzYjBkZTZkZGQyM2Y2IF0KCmJyX211bHRpY2FzdF9xdWVy eV9leHBpcmVkKCkgcXVlcmllciBhcmd1bWVudCBpcyBhIHBvaW50ZXIgdG8KYSBzdHJ1Y3QgYnJp ZGdlX21jYXN0X3F1ZXJpZXIgOgoKc3RydWN0IGJyaWRnZV9tY2FzdF9xdWVyaWVyIHsKICAgICAg ICBzdHJ1Y3QgYnJfaXAgYWRkcjsKICAgICAgICBzdHJ1Y3QgbmV0X2JyaWRnZV9wb3J0IF9fcmN1 ICAgICpwb3J0Owp9OwoKSW50ZW50IG9mIHRoZSBjb2RlIHdhcyB0byBjbGVhciBwb3J0IGZpZWxk LCBub3QgdGhlIHBvaW50ZXIgdG8gcXVlcmllci4KCkZpeGVzOiAyY2Q0MTQzMTkyZTggKCJicmlk Z2U6IG1lbW9yaXplIGFuZCBleHBvcnQgc2VsZWN0ZWQgSUdNUC9NTEQgcXVlcmllciBwb3J0IikK U2lnbmVkLW9mZi1ieTogRXJpYyBEdW1hemV0IDxlZHVtYXpldEBnb29nbGUuY29tPgpBY2tlZC1i eTogVGhhZGV1IExpbWEgZGUgU291emEgQ2FzY2FyZG8gPGNhc2NhcmRvQHJlZGhhdC5jb20+CkFj a2VkLWJ5OiBMaW51cyBMw7xzc2luZyA8bGludXMubHVlc3NpbmdAYzBkMy5ibHVlPgpDYzogTGlu dXMgTMO8c3NpbmcgPGxpbnVzLmx1ZXNzaW5nQHdlYi5kZT4KQ2M6IFN0ZWluYXIgSC4gR3VuZGVy c29uIDxzZXNzZUBzYW1mdW5kZXQubm8+ClNpZ25lZC1vZmYtYnk6IERhdmlkIFMuIE1pbGxlciA8 ZGF2ZW1AZGF2ZW1sb2Z0Lm5ldD4KLS0tCiBuZXQvYnJpZGdlL2JyX211bHRpY2FzdC5jIHwgMiAr LQogMSBmaWxlIGNoYW5nZWQsIDEgaW5zZXJ0aW9uKCspLCAxIGRlbGV0aW9uKC0pCgpkaWZmIC0t Z2l0IGEvbmV0L2JyaWRnZS9icl9tdWx0aWNhc3QuYyBiL25ldC9icmlkZ2UvYnJfbXVsdGljYXN0 LmMKaW5kZXggY2QwMjE4NS4uYjBhZWU3OCAxMDA2NDQKLS0tIGEvbmV0L2JyaWRnZS9icl9tdWx0 aWNhc3QuYworKysgYi9uZXQvYnJpZGdlL2JyX211bHRpY2FzdC5jCkBAIC0xODIxLDcgKzE4MjEs NyBAQCBzdGF0aWMgdm9pZCBicl9tdWx0aWNhc3RfcXVlcnlfZXhwaXJlZChzdHJ1Y3QgbmV0X2Jy aWRnZSAqYnIsCiAJaWYgKHF1ZXJ5LT5zdGFydHVwX3NlbnQgPCBici0+bXVsdGljYXN0X3N0YXJ0 dXBfcXVlcnlfY291bnQpCiAJCXF1ZXJ5LT5zdGFydHVwX3NlbnQrKzsKIAotCVJDVV9JTklUX1BP SU5URVIocXVlcmllciwgTlVMTCk7CisJUkNVX0lOSVRfUE9JTlRFUihxdWVyaWVyLT5wb3J0LCBO VUxMKTsKIAlicl9tdWx0aWNhc3Rfc2VuZF9xdWVyeShiciwgTlVMTCwgcXVlcnkpOwogCXNwaW5f dW5sb2NrKCZici0+bXVsdGljYXN0X2xvY2spOwogfQotLSAKMi4xLjAKCgpGcm9tIDY3NDg2MGJh ZjAyMGY5ODRlM2M2ZWJmZDU1MWRhM2IwM2IxM2E5YTcgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAx CkZyb206IEVyaWMgRHVtYXpldCA8ZWR1bWF6ZXRAZ29vZ2xlLmNvbT4KRGF0ZTogU2F0LCAzMCBN YXkgMjAxNSAwOToxNjo1MyAtMDcwMApTdWJqZWN0OiBbUEFUQ0ggMjAvMjVdIHVkcDogZml4IGJl aGF2aW9yIG9mIHdyb25nIGNoZWNrc3VtcwoKWyBVcHN0cmVhbSBjb21taXQgYmViMzlkYjU5ZDE0 OTkwZTQwMWUyMzVmYWY2NmE2YjliMzEyNDBiMCBdCgpXZSBoYXZlIHR3byBwcm9ibGVtcyBpbiBV RFAgc3RhY2sgcmVsYXRlZCB0byBib2d1cyBjaGVja3N1bXMgOgoKMSkgV2UgcmV0dXJuIC1FQUdB SU4gdG8gYXBwbGljYXRpb24gZXZlbiBpZiByZWNlaXZlIHF1ZXVlIGlzIG5vdCBlbXB0eS4KICAg VGhpcyBicmVha3MgYXBwbGljYXRpb25zIHVzaW5nIGVkZ2UgdHJpZ2dlciBlcG9sbCgpCgoyKSBV bmRlciBVRFAgZmxvb2QsIHdlIGNhbiBsb29wIGZvcmV2ZXIgd2l0aG91dCB5aWVsZGluZyB0byBv dGhlcgogICBwcm9jZXNzZXMsIHBvdGVudGlhbGx5IGhhbmdpbmcgdGhlIGhvc3QsIGVzcGVjaWFs bHkgb24gbm9uIFNNUC4KClRoaXMgcGF0Y2ggaXMgYW4gYXR0ZW1wdCB0byBtYWtlIHRoaW5ncyBi ZXR0ZXIuCgpXZSBtaWdodCBpbiB0aGUgZnV0dXJlIGFkZCBleHRyYSBzdXBwb3J0IGZvciBydCBh cHBsaWNhdGlvbnMKd2FudGluZyB0byBiZXR0ZXIgY29udHJvbCB0aW1lIHNwZW50IGRvaW5nIGEg cmVjdigpIGluIGEgaG9zdGlsZQplbnZpcm9ubWVudC4gRm9yIGV4YW1wbGUgd2UgY291bGQgdmFs aWRhdGUgY2hlY2tzdW1zIGJlZm9yZSBxdWV1aW5nCnBhY2tldHMgaW4gc29ja2V0IHJlY2VpdmUg cXVldWUuCgpTaWduZWQtb2ZmLWJ5OiBFcmljIER1bWF6ZXQgPGVkdW1hemV0QGdvb2dsZS5jb20+ CkNjOiBXaWxsZW0gZGUgQnJ1aWpuIDx3aWxsZW1iQGdvb2dsZS5jb20+ClNpZ25lZC1vZmYtYnk6 IERhdmlkIFMuIE1pbGxlciA8ZGF2ZW1AZGF2ZW1sb2Z0Lm5ldD4KLS0tCiBuZXQvaXB2NC91ZHAu YyB8IDYgKystLS0tCiBuZXQvaXB2Ni91ZHAuYyB8IDYgKystLS0tCiAyIGZpbGVzIGNoYW5nZWQs IDQgaW5zZXJ0aW9ucygrKSwgOCBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9uZXQvaXB2NC91 ZHAuYyBiL25ldC9pcHY0L3VkcC5jCmluZGV4IGNkMGRiNTQuLjUyZDJkYjggMTAwNjQ0Ci0tLSBh L25ldC9pcHY0L3VkcC5jCisrKyBiL25ldC9pcHY0L3VkcC5jCkBAIC0xMzM2LDEwICsxMzM2LDgg QEAgY3N1bV9jb3B5X2VycjoKIAl9CiAJdW5sb2NrX3NvY2tfZmFzdChzaywgc2xvdyk7CiAKLQlp ZiAobm9ibG9jaykKLQkJcmV0dXJuIC1FQUdBSU47Ci0KLQkvKiBzdGFydGluZyBvdmVyIGZvciBh IG5ldyBwYWNrZXQgKi8KKwkvKiBzdGFydGluZyBvdmVyIGZvciBhIG5ldyBwYWNrZXQsIGJ1dCBj aGVjayBpZiB3ZSBuZWVkIHRvIHlpZWxkICovCisJY29uZF9yZXNjaGVkKCk7CiAJbXNnLT5tc2df ZmxhZ3MgJj0gfk1TR19UUlVOQzsKIAlnb3RvIHRyeV9hZ2FpbjsKIH0KZGlmZiAtLWdpdCBhL25l dC9pcHY2L3VkcC5jIGIvbmV0L2lwdjYvdWRwLmMKaW5kZXggZDY1MTY5MS4uZGQ1MzBmMCAxMDA2 NDQKLS0tIGEvbmV0L2lwdjYvdWRwLmMKKysrIGIvbmV0L2lwdjYvdWRwLmMKQEAgLTUxNCwxMCAr NTE0LDggQEAgY3N1bV9jb3B5X2VycjoKIAl9CiAJdW5sb2NrX3NvY2tfZmFzdChzaywgc2xvdyk7 CiAKLQlpZiAobm9ibG9jaykKLQkJcmV0dXJuIC1FQUdBSU47Ci0KLQkvKiBzdGFydGluZyBvdmVy IGZvciBhIG5ldyBwYWNrZXQgKi8KKwkvKiBzdGFydGluZyBvdmVyIGZvciBhIG5ldyBwYWNrZXQs IGJ1dCBjaGVjayBpZiB3ZSBuZWVkIHRvIHlpZWxkICovCisJY29uZF9yZXNjaGVkKCk7CiAJbXNn LT5tc2dfZmxhZ3MgJj0gfk1TR19UUlVOQzsKIAlnb3RvIHRyeV9hZ2FpbjsKIH0KLS0gCjIuMS4w CgoKRnJvbSBkZmI2MjFlMjViNTk1YjNmMjRmZTgwZTVlNjlmMDI5ZmRmOGRiNTJiIE1vbiBTZXAg MTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBOZWFsIENhcmR3ZWxsIDxuY2FyZHdlbGxAZ29vZ2xlLmNv bT4KRGF0ZTogRnJpLCAyOSBNYXkgMjAxNSAxMzo0NzowNyAtMDQwMApTdWJqZWN0OiBbUEFUQ0gg MjEvMjVdIHRjcDogZml4IGNoaWxkIHNvY2tldHMgdG8gdXNlIHN5c3RlbSBkZWZhdWx0IGNvbmdl c3Rpb24KIGNvbnRyb2wgaWYgbm90IHNldAoKWyBVcHN0cmVhbSBjb21taXQgOWY5NTA0MTVlNGUy OGU3Y2ZhZTJlNDE2YjQzZTg2MmU4MTAxZDk5NiBdCgpMaW51eCAzLjE3IGFuZCBlYXJsaWVyIGFy ZSBleHBsaWNpdGx5IGVuZ2luZWVyZWQgc28gdGhhdCBpZiB0aGUgYXBwCmRvZXNuJ3Qgc3BlY2lm aWNhbGx5IHJlcXVlc3QgYSBDQyBtb2R1bGUgb24gYSBsaXN0ZW5lciBiZWZvcmUgdGhlIFNZTgph cnJpdmVzLCB0aGVuIHRoZSBjaGlsZCBnZXRzIHRoZSBzeXN0ZW0gZGVmYXVsdCBDQyB3aGVuIHRo ZSBjb25uZWN0aW9uCmlzIGVzdGFibGlzaGVkLiBTZWUgdGNwX2luaXRfY29uZ2VzdGlvbl9jb250 cm9sKCkgaW4gMy4xNyBvciBlYXJsaWVyLAp3aGljaCBzYXlzICJpZiBubyBjaG9pY2UgbWFkZSB5 ZXQgYXNzaWduIHRoZSBjdXJyZW50IHZhbHVlIHNldCBhcwpkZWZhdWx0Ii4gVGhlIGNoYW5nZSAo Im5ldDogdGNwOiBhc3NpZ24gdGNwIGNvbmdfb3BzIHdoZW4gdGNwIHNrIGlzCmNyZWF0ZWQiKSBh bHRlcmVkIHRoZXNlIHNlbWFudGljcywgc28gdGhhdCBjaGlsZHJlbiBnb3QgdGhlaXIgcGFyZW50 Cmxpc3RlbmVyJ3MgY29uZ2VzdGlvbiBjb250cm9sIGV2ZW4gaWYgdGhlIHN5c3RlbSBkZWZhdWx0 IGhhZCBjaGFuZ2VkCmFmdGVyIHRoZSBsaXN0ZW5lciB3YXMgY3JlYXRlZC4KClRoaXMgY29tbWl0 IHJldHVybnMgdG8gdGhvc2Ugb3JpZ2luYWwgc2VtYW50aWNzIGZyb20gMy4xNyBhbmQgZWFybGll ciwKc2luY2UgdGhleSBhcmUgdGhlIG9yaWdpbmFsIHNlbWFudGljcyBmcm9tIDIwMDcgaW4gNGQ0 ZDNkMWU4ICgiW1RDUF06CkNvbmdlc3Rpb24gY29udHJvbCBpbml0aWFsaXphdGlvbi4iKSwgYW5k IHNvbWUgTGludXggY29uZ2VzdGlvbgpjb250cm9sIHdvcmtmbG93cyBkZXBlbmQgb24gdGhhdC4K CkluIHN1bW1hcnksIGlmIGEgbGlzdGVuZXIgc29ja2V0IHNwZWNpZmljYWxseSBzZXRzIFRDUF9D T05HRVNUSU9OIHRvCiJ4Iiwgb3IgdGhlIHJvdXRlIGxvY2tzIHRoZSBDQyBtb2R1bGUgdG8gIngi LCB0aGVuIHRoZSBjaGlsZCBnZXRzCiJ4Ii4gT3RoZXJ3aXNlIHRoZSBjaGlsZCBnZXRzIGN1cnJl bnQgc3lzdGVtIGRlZmF1bHQgZnJvbQpuZXQuaXB2NC50Y3BfY29uZ2VzdGlvbl9jb250cm9sLiBU aGF0J3MgdGhlIGJlaGF2aW9yIGluIDMuMTcgYW5kCmVhcmxpZXIsIGFuZCB0aGlzIGNvbW1pdCBy ZXN0b3JlcyB0aGF0LgoKRml4ZXM6IDU1ZDg2OTRmYTgyYyAoIm5ldDogdGNwOiBhc3NpZ24gdGNw IGNvbmdfb3BzIHdoZW4gdGNwIHNrIGlzIGNyZWF0ZWQiKQpDYzogRmxvcmlhbiBXZXN0cGhhbCA8 ZndAc3RybGVuLmRlPgpDYzogRGFuaWVsIEJvcmttYW5uIDxkYm9ya21hbkByZWRoYXQuY29tPgpD YzogR2xlbm4gSnVkZCA8Z2xlbm4uanVkZEBtb3JnYW5zdGFubGV5LmNvbT4KQ2M6IFN0ZXBoZW4g SGVtbWluZ2VyIDxzdGVwaGVuQG5ldHdvcmtwbHVtYmVyLm9yZz4KU2lnbmVkLW9mZi1ieTogTmVh bCBDYXJkd2VsbCA8bmNhcmR3ZWxsQGdvb2dsZS5jb20+ClNpZ25lZC1vZmYtYnk6IEVyaWMgRHVt YXpldCA8ZWR1bWF6ZXRAZ29vZ2xlLmNvbT4KU2lnbmVkLW9mZi1ieTogWXVjaHVuZyBDaGVuZyA8 eWNoZW5nQGdvb2dsZS5jb20+CkFja2VkLWJ5OiBEYW5pZWwgQm9ya21hbm4gPGRhbmllbEBpb2dl YXJib3gubmV0PgpTaWduZWQtb2ZmLWJ5OiBEYXZpZCBTLiBNaWxsZXIgPGRhdmVtQGRhdmVtbG9m dC5uZXQ+Ci0tLQogaW5jbHVkZS9uZXQvaW5ldF9jb25uZWN0aW9uX3NvY2suaCB8IDMgKystCiBu ZXQvaXB2NC90Y3BfY29uZy5jICAgICAgICAgICAgICAgIHwgNiArKysrLS0KIG5ldC9pcHY0L3Rj cF9taW5pc29ja3MuYyAgICAgICAgICAgfCAzICsrLQogMyBmaWxlcyBjaGFuZ2VkLCA4IGluc2Vy dGlvbnMoKyksIDQgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9uZXQvaW5ldF9j b25uZWN0aW9uX3NvY2suaCBiL2luY2x1ZGUvbmV0L2luZXRfY29ubmVjdGlvbl9zb2NrLmgKaW5k ZXggODQ4ZTg1Yy4uMjRkNWMwOSAxMDA2NDQKLS0tIGEvaW5jbHVkZS9uZXQvaW5ldF9jb25uZWN0 aW9uX3NvY2suaAorKysgYi9pbmNsdWRlL25ldC9pbmV0X2Nvbm5lY3Rpb25fc29jay5oCkBAIC05 OCw3ICs5OCw4IEBAIHN0cnVjdCBpbmV0X2Nvbm5lY3Rpb25fc29jayB7CiAJY29uc3Qgc3RydWN0 IHRjcF9jb25nZXN0aW9uX29wcyAqaWNza19jYV9vcHM7CiAJY29uc3Qgc3RydWN0IGluZXRfY29u bmVjdGlvbl9zb2NrX2FmX29wcyAqaWNza19hZl9vcHM7CiAJdW5zaWduZWQgaW50CQkgICgqaWNz a19zeW5jX21zcykoc3RydWN0IHNvY2sgKnNrLCB1MzIgcG10dSk7Ci0JX191OAkJCSAgaWNza19j YV9zdGF0ZTsKKwlfX3U4CQkJICBpY3NrX2NhX3N0YXRlOjcsCisJCQkJICBpY3NrX2NhX3NldHNv Y2tvcHQ6MTsKIAlfX3U4CQkJICBpY3NrX3JldHJhbnNtaXRzOwogCV9fdTgJCQkgIGljc2tfcGVu ZGluZzsKIAlfX3U4CQkJICBpY3NrX2JhY2tvZmY7CmRpZmYgLS1naXQgYS9uZXQvaXB2NC90Y3Bf Y29uZy5jIGIvbmV0L2lwdjQvdGNwX2NvbmcuYwppbmRleCBiMWM1OTcwLi5iMzMxNmM4IDEwMDY0 NAotLS0gYS9uZXQvaXB2NC90Y3BfY29uZy5jCisrKyBiL25ldC9pcHY0L3RjcF9jb25nLmMKQEAg LTI0OCw5ICsyNDgsMTAgQEAgaW50IHRjcF9zZXRfY29uZ2VzdGlvbl9jb250cm9sKHN0cnVjdCBz b2NrICpzaywgY29uc3QgY2hhciAqbmFtZSkKIAljYSA9IHRjcF9jYV9maW5kKG5hbWUpOwogCiAJ Lyogbm8gY2hhbmdlIGFza2luZyBmb3IgZXhpc3RpbmcgdmFsdWUgKi8KLQlpZiAoY2EgPT0gaWNz ay0+aWNza19jYV9vcHMpCisJaWYgKGNhID09IGljc2stPmljc2tfY2Ffb3BzKSB7CisJCWljc2st Pmljc2tfY2Ffc2V0c29ja29wdCA9IDE7CiAJCWdvdG8gb3V0OwotCisJfQogI2lmZGVmIENPTkZJ R19NT0RVTEVTCiAJLyogbm90IGZvdW5kIGF0dGVtcHQgdG8gYXV0b2xvYWQgbW9kdWxlICovCiAJ aWYgKCFjYSAmJiBjYXBhYmxlKENBUF9ORVRfQURNSU4pKSB7CkBAIC0yNzMsNiArMjc0LDcgQEAg aW50IHRjcF9zZXRfY29uZ2VzdGlvbl9jb250cm9sKHN0cnVjdCBzb2NrICpzaywgY29uc3QgY2hh ciAqbmFtZSkKIAllbHNlIHsKIAkJdGNwX2NsZWFudXBfY29uZ2VzdGlvbl9jb250cm9sKHNrKTsK IAkJaWNzay0+aWNza19jYV9vcHMgPSBjYTsKKwkJaWNzay0+aWNza19jYV9zZXRzb2Nrb3B0ID0g MTsKIAogCQlpZiAoc2stPnNrX3N0YXRlICE9IFRDUF9DTE9TRSAmJiBpY3NrLT5pY3NrX2NhX29w cy0+aW5pdCkKIAkJCWljc2stPmljc2tfY2Ffb3BzLT5pbml0KHNrKTsKZGlmZiAtLWdpdCBhL25l dC9pcHY0L3RjcF9taW5pc29ja3MuYyBiL25ldC9pcHY0L3RjcF9taW5pc29ja3MuYwppbmRleCA3 MWQwMDFkLi4yZjY2NjcxIDEwMDY0NAotLS0gYS9uZXQvaXB2NC90Y3BfbWluaXNvY2tzLmMKKysr IGIvbmV0L2lwdjQvdGNwX21pbmlzb2Nrcy5jCkBAIC00NTEsNyArNDUxLDggQEAgc3RydWN0IHNv Y2sgKnRjcF9jcmVhdGVfb3BlbnJlcV9jaGlsZChzdHJ1Y3Qgc29jayAqc2ssIHN0cnVjdCByZXF1 ZXN0X3NvY2sgKnJlcSwKIAkJbmV3dHAtPnNuZF9jd25kID0gVENQX0lOSVRfQ1dORDsKIAkJbmV3 dHAtPnNuZF9jd25kX2NudCA9IDA7CiAKLQkJaWYgKCF0cnlfbW9kdWxlX2dldChuZXdpY3NrLT5p Y3NrX2NhX29wcy0+b3duZXIpKQorCQlpZiAoIW5ld2ljc2stPmljc2tfY2Ffc2V0c29ja29wdCB8 fAorCQkgICAgIXRyeV9tb2R1bGVfZ2V0KG5ld2ljc2stPmljc2tfY2Ffb3BzLT5vd25lcikpCiAJ CQl0Y3BfYXNzaWduX2Nvbmdlc3Rpb25fY29udHJvbChuZXdzayk7CiAKIAkJdGNwX3NldF9jYV9z dGF0ZShuZXdzaywgVENQX0NBX09wZW4pOwotLSAKMi4xLjAKCgpGcm9tIDJiMGUzZjFjNzQxOTI5 ZDIxMGM1OGJkZjNkYjYxMDU5MThhZTcwYjAgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCkZyb206 IElhbiBDYW1wYmVsbCA8SWFuLkNhbXBiZWxsQGNpdHJpeC5jb20+CkRhdGU6IE1vbiwgMSBKdW4g MjAxNSAxMTozMDoyNCArMDEwMApTdWJqZWN0OiBbUEFUQ0ggMjIvMjVdIHhlbjogbmV0YmFjazog cmVhZCBob3RwbHVnIHNjcmlwdCBvbmNlIGF0IHN0YXJ0IG9mIGRheS4KClsgVXBzdHJlYW0gY29t bWl0IDMxYTQxODk4NmE1ODUyMDM0ZDUyMGE1YmFiNTQ2ODIxZmYxY2NmM2QgXQoKV2hlbiB3ZSBj b21lIHRvIHRlYXIgdGhpbmdzIGRvd24gaW4gbmV0YmFja19yZW1vdmUoKSBhbmQgZ2VuZXJhdGUg dGhlCnVldmVudCBpdCBpcyBwb3NzaWJsZSB0aGF0IHRoZSB4ZW5zdG9yZSBkaXJlY3RvcnkgaGFz IGFscmVhZHkgYmVlbgpyZW1vdmVkIChkZXRhaWxzIGJlbG93KS4KCkluIHN1Y2ggY2FzZXMgbmV0 YmFja191ZXZlbnQoKSB3b24ndCBiZSBhYmxlIHRvIHJlYWQgdGhlIGhvdHBsdWcKc2NyaXB0IGFu ZCB3aWxsIHdyaXRlIGEgeGVuc3RvcmUgZXJyb3Igbm9kZS4KCkEgcmVjZW50IGNoYW5nZSB0byB0 aGUgaHlwZXJ2aXNvciBleHBvc2VkIHRoaXMgcmFjZSBzdWNoIHRoYXQgd2Ugbm93CnNvbWV0aW1l cyBsb3NlIGl0ICh3aGVyZSBhcHBhcmVudGx5IHdlIGRpZG4ndCBldmVyIGJlZm9yZSkuCgpJbnN0 ZWFkIHJlYWQgdGhlIGhvdHBsdWcgc2NyaXB0IGNvbmZpZ3VyYXRpb24gZHVyaW5nIHNldHVwIGFu ZCB1c2UgaXQKZm9yIHRoZSBsaWZldGltZSBvZiB0aGUgYmFja2VuZCBkZXZpY2UuCgpUaGUgYXBw YXJlbnRseSBtb3JlIG9idmlvdXMgZml4IG9mIG1vdmluZyB0aGUgdHJhbnNpdGlvbiB0bwpzdGF0 ZT1DbG9zZWQgaW4gbmV0YmFja19yZW1vdmUoKSB0byBhZnRlciB0aGUgdWV2ZW50IGRvZXMgbm90 IHdvcmsKYmVjYXVzZSBpdCBpcyBwb3NzaWJsZSB0aGF0IHdlIGFyZSBhbHJlYWR5IGluIHN0YXRl PUNsb3NlZCAoaW4KcmVhY3Rpb24gdG8gdGhlIGd1ZXN0IGhhdmluZyBkaXNjb25uZWN0ZWQgYXMg aXQgc2h1dGRvd24pLiBCZWluZwphbHJlYWR5IGluIENsb3NlZCBtZWFucyB0aGUgdG9vbHN0YWNr IGlzIGF0IGxpYmVydHkgdG8gc3RhcnQgdGVhcmluZwpkb3duIHRoZSB4ZW5zdG9yZSBkaXJlY3Rv cmllcy4gSW4gcHJpbmNpcGFsIGl0IG1pZ2h0IGJlIHBvc3NpYmxlIHRvCmFycmFuZ2UgdG8gdW5y ZWdpc3RlciB0aGUgZGV2aWNlIHNvb25lciAoZS5nIG9uIHRyYW5zaXRpb24gdG8gQ2xvc2luZykK c3VjaCB0aGF0IHhlbnN0b3JlIHdvdWxkIHN0aWxsIGJlIHRoZXJlIGJ1dCB0aGlzIHN0YXRlIG1h Y2hpbmUgaXMKZnJhZ2lsZSBhbmQgcHJvbmUgdG8gYW5nZXIuLi4KCkEgbW9kZXJuIFhlbiBzeXN0 ZW0gb25seSByZWxpZXMgb24gdGhlIGhvdHBsdWcgdWV2ZW50IGZvciBkcml2ZXIKZG9tYWlucywg d2hlbiB0aGUgYmFja2VuZCBpcyBpbiB0aGUgc2FtZSBkb21haW4gYXMgdGhlIHRvb2xzdGFjayBp dAp3aWxsIHJ1biB0aGUgbmVjZXNzYXJ5IHNldHVwL3RlYXJkb3duIGRpcmVjdGx5IGluIHRoZSBj b3JyZWN0IHNlcXVlbmNlCndydCB4ZW5zdG9yZSBjaGFuZ2VzLgoKU2lnbmVkLW9mZi1ieTogSWFu IENhbXBiZWxsIDxpYW4uY2FtcGJlbGxAY2l0cml4LmNvbT4KQWNrZWQtYnk6IFdlaSBMaXUgPHdl aS5saXUyQGNpdHJpeC5jb20+ClNpZ25lZC1vZmYtYnk6IERhdmlkIFMuIE1pbGxlciA8ZGF2ZW1A ZGF2ZW1sb2Z0Lm5ldD4KLS0tCiBkcml2ZXJzL25ldC94ZW4tbmV0YmFjay94ZW5idXMuYyB8IDMz ICsrKysrKysrKysrKysrKysrKystLS0tLS0tLS0tLS0tLQogMSBmaWxlIGNoYW5nZWQsIDE5IGlu c2VydGlvbnMoKyksIDE0IGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L3hl bi1uZXRiYWNrL3hlbmJ1cy5jIGIvZHJpdmVycy9uZXQveGVuLW5ldGJhY2sveGVuYnVzLmMKaW5k ZXggN2NkYTdhNC4uZDlkMWUyYSAxMDA2NDQKLS0tIGEvZHJpdmVycy9uZXQveGVuLW5ldGJhY2sv eGVuYnVzLmMKKysrIGIvZHJpdmVycy9uZXQveGVuLW5ldGJhY2sveGVuYnVzLmMKQEAgLTM0LDYg KzM0LDggQEAgc3RydWN0IGJhY2tlbmRfaW5mbyB7CiAJZW51bSB4ZW5idXNfc3RhdGUgZnJvbnRl bmRfc3RhdGU7CiAJc3RydWN0IHhlbmJ1c193YXRjaCBob3RwbHVnX3N0YXR1c193YXRjaDsKIAl1 OCBoYXZlX2hvdHBsdWdfc3RhdHVzX3dhdGNoOjE7CisKKwljb25zdCBjaGFyICpob3RwbHVnX3Nj cmlwdDsKIH07CiAKIHN0YXRpYyBpbnQgY29ubmVjdF9yaW5ncyhzdHJ1Y3QgYmFja2VuZF9pbmZv ICpiZSwgc3RydWN0IHhlbnZpZl9xdWV1ZSAqcXVldWUpOwpAQCAtMjM2LDYgKzIzOCw3IEBAIHN0 YXRpYyBpbnQgbmV0YmFja19yZW1vdmUoc3RydWN0IHhlbmJ1c19kZXZpY2UgKmRldikKIAkJeGVu dmlmX2ZyZWUoYmUtPnZpZik7CiAJCWJlLT52aWYgPSBOVUxMOwogCX0KKwlrZnJlZShiZS0+aG90 cGx1Z19zY3JpcHQpOwogCWtmcmVlKGJlKTsKIAlkZXZfc2V0X2RydmRhdGEoJmRldi0+ZGV2LCBO VUxMKTsKIAlyZXR1cm4gMDsKQEAgLTI1Myw2ICsyNTYsNyBAQCBzdGF0aWMgaW50IG5ldGJhY2tf cHJvYmUoc3RydWN0IHhlbmJ1c19kZXZpY2UgKmRldiwKIAlzdHJ1Y3QgeGVuYnVzX3RyYW5zYWN0 aW9uIHhidDsKIAlpbnQgZXJyOwogCWludCBzZzsKKwljb25zdCBjaGFyICpzY3JpcHQ7CiAJc3Ry dWN0IGJhY2tlbmRfaW5mbyAqYmUgPSBremFsbG9jKHNpemVvZihzdHJ1Y3QgYmFja2VuZF9pbmZv KSwKIAkJCQkJICBHRlBfS0VSTkVMKTsKIAlpZiAoIWJlKSB7CkBAIC0zNDUsNiArMzQ5LDE1IEBA IHN0YXRpYyBpbnQgbmV0YmFja19wcm9iZShzdHJ1Y3QgeGVuYnVzX2RldmljZSAqZGV2LAogCWlm IChlcnIpCiAJCXByX2RlYnVnKCJFcnJvciB3cml0aW5nIG11bHRpLXF1ZXVlLW1heC1xdWV1ZXNc biIpOwogCisJc2NyaXB0ID0geGVuYnVzX3JlYWQoWEJUX05JTCwgZGV2LT5ub2RlbmFtZSwgInNj cmlwdCIsIE5VTEwpOworCWlmIChJU19FUlIoc2NyaXB0KSkgeworCQllcnIgPSBQVFJfRVJSKHNj cmlwdCk7CisJCXhlbmJ1c19kZXZfZmF0YWwoZGV2LCBlcnIsICJyZWFkaW5nIHNjcmlwdCIpOwor CQlnb3RvIGZhaWw7CisJfQorCisJYmUtPmhvdHBsdWdfc2NyaXB0ID0gc2NyaXB0OworCiAJZXJy ID0geGVuYnVzX3N3aXRjaF9zdGF0ZShkZXYsIFhlbmJ1c1N0YXRlSW5pdFdhaXQpOwogCWlmIChl cnIpCiAJCWdvdG8gZmFpbDsKQEAgLTM3NywyMiArMzkwLDE0IEBAIHN0YXRpYyBpbnQgbmV0YmFj a191ZXZlbnQoc3RydWN0IHhlbmJ1c19kZXZpY2UgKnhkZXYsCiAJCQkgIHN0cnVjdCBrb2JqX3Vl dmVudF9lbnYgKmVudikKIHsKIAlzdHJ1Y3QgYmFja2VuZF9pbmZvICpiZSA9IGRldl9nZXRfZHJ2 ZGF0YSgmeGRldi0+ZGV2KTsKLQljaGFyICp2YWw7CiAKLQl2YWwgPSB4ZW5idXNfcmVhZChYQlRf TklMLCB4ZGV2LT5ub2RlbmFtZSwgInNjcmlwdCIsIE5VTEwpOwotCWlmIChJU19FUlIodmFsKSkg ewotCQlpbnQgZXJyID0gUFRSX0VSUih2YWwpOwotCQl4ZW5idXNfZGV2X2ZhdGFsKHhkZXYsIGVy ciwgInJlYWRpbmcgc2NyaXB0Iik7Ci0JCXJldHVybiBlcnI7Ci0JfSBlbHNlIHsKLQkJaWYgKGFk ZF91ZXZlbnRfdmFyKGVudiwgInNjcmlwdD0lcyIsIHZhbCkpIHsKLQkJCWtmcmVlKHZhbCk7Ci0J CQlyZXR1cm4gLUVOT01FTTsKLQkJfQotCQlrZnJlZSh2YWwpOwotCX0KKwlpZiAoIWJlKQorCQly ZXR1cm4gMDsKKworCWlmIChhZGRfdWV2ZW50X3ZhcihlbnYsICJzY3JpcHQ9JXMiLCBiZS0+aG90 cGx1Z19zY3JpcHQpKQorCQlyZXR1cm4gLUVOT01FTTsKIAotCWlmICghYmUgfHwgIWJlLT52aWYp CisJaWYgKCFiZS0+dmlmKQogCQlyZXR1cm4gMDsKIAogCXJldHVybiBhZGRfdWV2ZW50X3Zhcihl bnYsICJ2aWY9JXMiLCBiZS0+dmlmLT5kZXYtPm5hbWUpOwotLSAKMi4xLjAKCgpGcm9tIDJjNjJm Y2IzNDc1NzRlYzY5YWRhZDNhMmYyMDc1MWMxZDcxYWQ2NTMgTW9uIFNlcCAxNyAwMDowMDowMCAy MDAxCkZyb206IFNoYXduIEJvaHJlciA8c2JvaHJlckByZ21hZHZpc29ycy5jb20+CkRhdGU6IFdl ZCwgMyBKdW4gMjAxNSAxNjoyNzozOCAtMDUwMApTdWJqZWN0OiBbUEFUQ0ggMjMvMjVdIGlwdjQv dWRwOiBWZXJpZnkgbXVsdGljYXN0IGdyb3VwIGlzIG91cnMgaW4KIHVwZF92NF9lYXJseV9kZW11 eCgpCgpbIFVwc3RyZWFtIGNvbW1pdCA2ZTU0MDMwOTMyNjE4OGY3NjllMDNiYjRjNmRkOGZmNjc1 MjkzMGMyIF0KCjQyMWIzODg1YmY2ZDU2MzkxMjk3ODQ0ZjQzZmI3MTU0YTYzOTZlMTIgInVkcDog aXB2NDogQWRkIHVkcCBlYXJseQpkZW11eCIgaW50cm9kdWNlZCBhIHJlZ3Jlc3Npb24gdGhhdCBh bGxvd2VkIHNvY2tldHMgYm91bmQgdG8gSU5BRERSX0FOWQp0byByZWNlaXZlIHBhY2tldHMgZnJv bSBtdWx0aWNhc3QgZ3JvdXBzIHRoYXQgdGhlIHNvY2tldCBoYWQgbm90IGpvaW5lZC4KRm9yIGV4 YW1wbGUgYSBzb2NrZXQgdGhhdCBoYWQgam9pbmVkIDIyNC4xNjguMi45IGNvdWxkIGFsc28gcmVj ZWl2ZQpwYWNrZXRzIGZyb20gMjI1LjE2OC4yLjkgZGVzcGl0ZSBub3QgaGF2aW5nIGpvaW5lZCB0 aGF0IGdyb3VwIGlmCmlwX2Vhcmx5X2RlbXV4IGlzIGVuYWJsZWQuCgpGaXggdGhpcyBieSBjYWxs aW5nIGlwX2NoZWNrX21jX3JjdSgpIGluIHVkcF92NF9lYXJseV9kZW11eCgpIHRvIHZlcmlmeQp0 aGF0IHRoZSBtdWx0aWNhc3QgcGFja2V0IGlzIGluZGVlZCBvdXJzLgoKU2lnbmVkLW9mZi1ieTog U2hhd24gQm9ocmVyIDxzYm9ocmVyQHJnbWFkdmlzb3JzLmNvbT4KUmVwb3J0ZWQtYnk6IFl1cmlq IE0uIFBsb3RuaWtvdiA8WXVyaWouUGxvdG5pa292QG9rdGV0bGFicy5ydT4KU2lnbmVkLW9mZi1i eTogRGF2aWQgUy4gTWlsbGVyIDxkYXZlbUBkYXZlbWxvZnQubmV0PgotLS0KIG5ldC9pcHY0L3Vk cC5jIHwgMTggKysrKysrKysrKysrKysrLS0tCiAxIGZpbGUgY2hhbmdlZCwgMTUgaW5zZXJ0aW9u cygrKSwgMyBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9uZXQvaXB2NC91ZHAuYyBiL25ldC9p cHY0L3VkcC5jCmluZGV4IDUyZDJkYjguLmM1ZTMxOTQgMTAwNjQ0Ci0tLSBhL25ldC9pcHY0L3Vk cC5jCisrKyBiL25ldC9pcHY0L3VkcC5jCkBAIC05MCw2ICs5MCw3IEBACiAjaW5jbHVkZSA8bGlu dXgvc29ja2V0Lmg+CiAjaW5jbHVkZSA8bGludXgvc29ja2lvcy5oPgogI2luY2x1ZGUgPGxpbnV4 L2lnbXAuaD4KKyNpbmNsdWRlIDxsaW51eC9pbmV0ZGV2aWNlLmg+CiAjaW5jbHVkZSA8bGludXgv aW4uaD4KICNpbmNsdWRlIDxsaW51eC9lcnJuby5oPgogI2luY2x1ZGUgPGxpbnV4L3RpbWVyLmg+ CkBAIC0xOTQ4LDYgKzE5NDksNyBAQCB2b2lkIHVkcF92NF9lYXJseV9kZW11eChzdHJ1Y3Qgc2tf YnVmZiAqc2tiKQogCXN0cnVjdCBzb2NrICpzazsKIAlzdHJ1Y3QgZHN0X2VudHJ5ICpkc3Q7CiAJ aW50IGRpZiA9IHNrYi0+ZGV2LT5pZmluZGV4OworCWludCBvdXJzOwogCiAJLyogdmFsaWRhdGUg dGhlIHBhY2tldCAqLwogCWlmICghcHNrYl9tYXlfcHVsbChza2IsIHNrYl90cmFuc3BvcnRfb2Zm c2V0KHNrYikgKyBzaXplb2Yoc3RydWN0IHVkcGhkcikpKQpAQCAtMTk1NywxNCArMTk1OSwyNCBA QCB2b2lkIHVkcF92NF9lYXJseV9kZW11eChzdHJ1Y3Qgc2tfYnVmZiAqc2tiKQogCXVoID0gdWRw X2hkcihza2IpOwogCiAJaWYgKHNrYi0+cGt0X3R5cGUgPT0gUEFDS0VUX0JST0FEQ0FTVCB8fAot CSAgICBza2ItPnBrdF90eXBlID09IFBBQ0tFVF9NVUxUSUNBU1QpCisJICAgIHNrYi0+cGt0X3R5 cGUgPT0gUEFDS0VUX01VTFRJQ0FTVCkgeworCQlzdHJ1Y3QgaW5fZGV2aWNlICppbl9kZXYgPSBf X2luX2Rldl9nZXRfcmN1KHNrYi0+ZGV2KTsKKworCQlpZiAoIWluX2RldikKKwkJCXJldHVybjsK KworCQlvdXJzID0gaXBfY2hlY2tfbWNfcmN1KGluX2RldiwgaXBoLT5kYWRkciwgaXBoLT5zYWRk ciwKKwkJCQkgICAgICAgaXBoLT5wcm90b2NvbCk7CisJCWlmICghb3VycykKKwkJCXJldHVybjsK IAkJc2sgPSBfX3VkcDRfbGliX21jYXN0X2RlbXV4X2xvb2t1cChuZXQsIHVoLT5kZXN0LCBpcGgt PmRhZGRyLAogCQkJCQkJICAgdWgtPnNvdXJjZSwgaXBoLT5zYWRkciwgZGlmKTsKLQllbHNlIGlm IChza2ItPnBrdF90eXBlID09IFBBQ0tFVF9IT1NUKQorCX0gZWxzZSBpZiAoc2tiLT5wa3RfdHlw ZSA9PSBQQUNLRVRfSE9TVCkgewogCQlzayA9IF9fdWRwNF9saWJfZGVtdXhfbG9va3VwKG5ldCwg dWgtPmRlc3QsIGlwaC0+ZGFkZHIsCiAJCQkJCSAgICAgdWgtPnNvdXJjZSwgaXBoLT5zYWRkciwg ZGlmKTsKLQllbHNlCisJfSBlbHNlIHsKIAkJcmV0dXJuOworCX0KIAogCWlmICghc2spCiAJCXJl dHVybjsKLS0gCjIuMS4wCgoKRnJvbSA1ZjA0ZTc5N2EyYjViMTkyNGI1ZmIyOGNmYTFmMDhlZDdm YWRkZjFjIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBTcmloYXJzaGEgQmFzYXZhcGF0 bmEgPHNyaWhhcnNoYS5iYXNhdmFwYXRuYUBhdmFnb3RlY2guY29tPgpEYXRlOiBGcmksIDUgSnVu IDIwMTUgMTU6MzM6NTkgKzA1MzAKU3ViamVjdDogW1BBVENIIDI0LzI1XSBiZTJuZXQ6IFJlcGxh Y2UgZG1hL3BjaV9hbGxvY19jb2hlcmVudCgpIGNhbGxzIHdpdGgKIGRtYV96YWxsb2NfY29oZXJl bnQoKQoKWyBVcHN0cmVhbSBjb21taXQgZTUxMDAwZGI0Yzg4MDE2NWVhYjA2ZWMwOTkwNjA1ZjI0 ZTc1MjAzZiBdCgpUaGVyZSBhcmUgc2V2ZXJhbCBwbGFjZXMgaW4gdGhlIGRyaXZlciAoYWxsIGlu IGNvbnRyb2wgcGF0aHMpIHdoZXJlCmNvaGVyZW50IGRtYSBtZW1vcnkgaXMgYmVpbmcgYWxsb2Nh dGVkIHVzaW5nIGVpdGhlciBkbWFfYWxsb2NfY29oZXJlbnQoKQpvciB0aGUgZGVwcmVjYXRlZCBw Y2lfYWxsb2NfY29uc2lzdGVudCgpLiBBbGwgdGhlc2UgY2FsbHMgc2hvdWxkIGJlCmNoYW5nZWQg dG8gdXNlIGRtYV96YWxsb2NfY29oZXJlbnQoKSB0byBhdm9pZCB1bmluaXRpYWxpemVkIGZpZWxk cyBpbgpkYXRhIHN0cnVjdHVyZXMgYmFja2VkIGJ5IHRoaXMgbWVtb3J5LgoKUmVwb3J0ZWQtYnk6 IEpvZXJnIFJvZWRlbCA8anJvZWRlbEBzdXNlLmRlPgpUZXN0ZWQtYnk6IEpvZXJnIFJvZWRlbCA8 anJvZWRlbEBzdXNlLmRlPgpTaWduZWQtb2ZmLWJ5OiBTcmloYXJzaGEgQmFzYXZhcGF0bmEgPHNy aWhhcnNoYS5iYXNhdmFwYXRuYUBhdmFnb3RlY2guY29tPgpTaWduZWQtb2ZmLWJ5OiBEYXZpZCBT LiBNaWxsZXIgPGRhdmVtQGRhdmVtbG9mdC5uZXQ+Ci0tLQogZHJpdmVycy9uZXQvZXRoZXJuZXQv ZW11bGV4L2JlbmV0L2JlX2NtZHMuYyAgICB8IDg3ICsrKysrKysrKysrKysrKy0tLS0tLS0tLS0t CiBkcml2ZXJzL25ldC9ldGhlcm5ldC9lbXVsZXgvYmVuZXQvYmVfZXRodG9vbC5jIHwgMTggKysr LS0tCiBkcml2ZXJzL25ldC9ldGhlcm5ldC9lbXVsZXgvYmVuZXQvYmVfbWFpbi5jICAgIHwgMTYg KystLS0KIDMgZmlsZXMgY2hhbmdlZCwgNjggaW5zZXJ0aW9ucygrKSwgNTMgZGVsZXRpb25zKC0p CgpkaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvZXRoZXJuZXQvZW11bGV4L2JlbmV0L2JlX2NtZHMu YyBiL2RyaXZlcnMvbmV0L2V0aGVybmV0L2VtdWxleC9iZW5ldC9iZV9jbWRzLmMKaW5kZXggZmVh ZDVjNi4uOWM4MjdiNyAxMDA2NDQKLS0tIGEvZHJpdmVycy9uZXQvZXRoZXJuZXQvZW11bGV4L2Jl bmV0L2JlX2NtZHMuYworKysgYi9kcml2ZXJzL25ldC9ldGhlcm5ldC9lbXVsZXgvYmVuZXQvYmVf Y21kcy5jCkBAIC0xNzA1LDkgKzE3MDUsOSBAQCBpbnQgYmVfY21kX2dldF9yZWdzKHN0cnVjdCBi ZV9hZGFwdGVyICphZGFwdGVyLCB1MzIgYnVmX2xlbiwgdm9pZCAqYnVmKQogCXRvdGFsX3NpemUg PSBidWZfbGVuOwogCiAJZ2V0X2ZhdF9jbWQuc2l6ZSA9IHNpemVvZihzdHJ1Y3QgYmVfY21kX3Jl cV9nZXRfZmF0KSArIDYwKjEwMjQ7Ci0JZ2V0X2ZhdF9jbWQudmEgPSBwY2lfYWxsb2NfY29uc2lz dGVudChhZGFwdGVyLT5wZGV2LAotCQkJCQkgICAgICBnZXRfZmF0X2NtZC5zaXplLAotCQkJCQkg ICAgICAmZ2V0X2ZhdF9jbWQuZG1hKTsKKwlnZXRfZmF0X2NtZC52YSA9IGRtYV96YWxsb2NfY29o ZXJlbnQoJmFkYXB0ZXItPnBkZXYtPmRldiwKKwkJCQkJICAgICBnZXRfZmF0X2NtZC5zaXplLAor CQkJCQkgICAgICZnZXRfZmF0X2NtZC5kbWEsIEdGUF9BVE9NSUMpOwogCWlmICghZ2V0X2ZhdF9j bWQudmEpIHsKIAkJZGV2X2VycigmYWRhcHRlci0+cGRldi0+ZGV2LAogCQkJIk1lbW9yeSBhbGxv Y2F0aW9uIGZhaWx1cmUgd2hpbGUgcmVhZGluZyBGQVQgZGF0YVxuIik7CkBAIC0xNzUyLDggKzE3 NTIsOCBAQCBpbnQgYmVfY21kX2dldF9yZWdzKHN0cnVjdCBiZV9hZGFwdGVyICphZGFwdGVyLCB1 MzIgYnVmX2xlbiwgdm9pZCAqYnVmKQogCQlsb2dfb2Zmc2V0ICs9IGJ1Zl9zaXplOwogCX0KIGVy cjoKLQlwY2lfZnJlZV9jb25zaXN0ZW50KGFkYXB0ZXItPnBkZXYsIGdldF9mYXRfY21kLnNpemUs Ci0JCQkgICAgZ2V0X2ZhdF9jbWQudmEsIGdldF9mYXRfY21kLmRtYSk7CisJZG1hX2ZyZWVfY29o ZXJlbnQoJmFkYXB0ZXItPnBkZXYtPmRldiwgZ2V0X2ZhdF9jbWQuc2l6ZSwKKwkJCSAgZ2V0X2Zh dF9jbWQudmEsIGdldF9mYXRfY21kLmRtYSk7CiAJc3Bpbl91bmxvY2tfYmgoJmFkYXB0ZXItPm1j Y19sb2NrKTsKIAlyZXR1cm4gc3RhdHVzOwogfQpAQCAtMjIyMywxMiArMjIyMywxMiBAQCBpbnQg YmVfY21kX3JlYWRfcG9ydF90cmFuc2NlaXZlcl9kYXRhKHN0cnVjdCBiZV9hZGFwdGVyICphZGFw dGVyLAogCQlyZXR1cm4gLUVJTlZBTDsKIAogCWNtZC5zaXplID0gc2l6ZW9mKHN0cnVjdCBiZV9j bWRfcmVzcF9wb3J0X3R5cGUpOwotCWNtZC52YSA9IHBjaV9hbGxvY19jb25zaXN0ZW50KGFkYXB0 ZXItPnBkZXYsIGNtZC5zaXplLCAmY21kLmRtYSk7CisJY21kLnZhID0gZG1hX3phbGxvY19jb2hl cmVudCgmYWRhcHRlci0+cGRldi0+ZGV2LCBjbWQuc2l6ZSwgJmNtZC5kbWEsCisJCQkJICAgICBH RlBfQVRPTUlDKTsKIAlpZiAoIWNtZC52YSkgewogCQlkZXZfZXJyKCZhZGFwdGVyLT5wZGV2LT5k ZXYsICJNZW1vcnkgYWxsb2NhdGlvbiBmYWlsZWRcbiIpOwogCQlyZXR1cm4gLUVOT01FTTsKIAl9 Ci0JbWVtc2V0KGNtZC52YSwgMCwgY21kLnNpemUpOwogCiAJc3Bpbl9sb2NrX2JoKCZhZGFwdGVy LT5tY2NfbG9jayk7CiAKQEAgLTIyNTMsNyArMjI1Myw3IEBAIGludCBiZV9jbWRfcmVhZF9wb3J0 X3RyYW5zY2VpdmVyX2RhdGEoc3RydWN0IGJlX2FkYXB0ZXIgKmFkYXB0ZXIsCiAJfQogZXJyOgog CXNwaW5fdW5sb2NrX2JoKCZhZGFwdGVyLT5tY2NfbG9jayk7Ci0JcGNpX2ZyZWVfY29uc2lzdGVu dChhZGFwdGVyLT5wZGV2LCBjbWQuc2l6ZSwgY21kLnZhLCBjbWQuZG1hKTsKKwlkbWFfZnJlZV9j b2hlcmVudCgmYWRhcHRlci0+cGRldi0+ZGV2LCBjbWQuc2l6ZSwgY21kLnZhLCBjbWQuZG1hKTsK IAlyZXR1cm4gc3RhdHVzOwogfQogCkBAIC0yNzAyLDcgKzI3MDIsOCBAQCBpbnQgYmVfY21kX2dl dF9waHlfaW5mbyhzdHJ1Y3QgYmVfYWRhcHRlciAqYWRhcHRlcikKIAkJZ290byBlcnI7CiAJfQog CWNtZC5zaXplID0gc2l6ZW9mKHN0cnVjdCBiZV9jbWRfcmVxX2dldF9waHlfaW5mbyk7Ci0JY21k LnZhID0gcGNpX2FsbG9jX2NvbnNpc3RlbnQoYWRhcHRlci0+cGRldiwgY21kLnNpemUsICZjbWQu ZG1hKTsKKwljbWQudmEgPSBkbWFfemFsbG9jX2NvaGVyZW50KCZhZGFwdGVyLT5wZGV2LT5kZXYs IGNtZC5zaXplLCAmY21kLmRtYSwKKwkJCQkgICAgIEdGUF9BVE9NSUMpOwogCWlmICghY21kLnZh KSB7CiAJCWRldl9lcnIoJmFkYXB0ZXItPnBkZXYtPmRldiwgIk1lbW9yeSBhbGxvYyBmYWlsdXJl XG4iKTsKIAkJc3RhdHVzID0gLUVOT01FTTsKQEAgLTI3MzYsNyArMjczNyw3IEBAIGludCBiZV9j bWRfZ2V0X3BoeV9pbmZvKHN0cnVjdCBiZV9hZGFwdGVyICphZGFwdGVyKQogCQkJCUJFX1NVUFBP UlRFRF9TUEVFRF8xR0JQUzsKIAkJfQogCX0KLQlwY2lfZnJlZV9jb25zaXN0ZW50KGFkYXB0ZXIt PnBkZXYsIGNtZC5zaXplLCBjbWQudmEsIGNtZC5kbWEpOworCWRtYV9mcmVlX2NvaGVyZW50KCZh ZGFwdGVyLT5wZGV2LT5kZXYsIGNtZC5zaXplLCBjbWQudmEsIGNtZC5kbWEpOwogZXJyOgogCXNw aW5fdW5sb2NrX2JoKCZhZGFwdGVyLT5tY2NfbG9jayk7CiAJcmV0dXJuIHN0YXR1czsKQEAgLTI3 ODcsOCArMjc4OCw5IEBAIGludCBiZV9jbWRfZ2V0X2NudGxfYXR0cmlidXRlcyhzdHJ1Y3QgYmVf YWRhcHRlciAqYWRhcHRlcikKIAogCW1lbXNldCgmYXR0cmlic19jbWQsIDAsIHNpemVvZihzdHJ1 Y3QgYmVfZG1hX21lbSkpOwogCWF0dHJpYnNfY21kLnNpemUgPSBzaXplb2Yoc3RydWN0IGJlX2Nt ZF9yZXNwX2NudGxfYXR0cmlicyk7Ci0JYXR0cmlic19jbWQudmEgPSBwY2lfYWxsb2NfY29uc2lz dGVudChhZGFwdGVyLT5wZGV2LCBhdHRyaWJzX2NtZC5zaXplLAotCQkJCQkgICAgICAmYXR0cmli c19jbWQuZG1hKTsKKwlhdHRyaWJzX2NtZC52YSA9IGRtYV96YWxsb2NfY29oZXJlbnQoJmFkYXB0 ZXItPnBkZXYtPmRldiwKKwkJCQkJICAgICBhdHRyaWJzX2NtZC5zaXplLAorCQkJCQkgICAgICZh dHRyaWJzX2NtZC5kbWEsIEdGUF9BVE9NSUMpOwogCWlmICghYXR0cmlic19jbWQudmEpIHsKIAkJ ZGV2X2VycigmYWRhcHRlci0+cGRldi0+ZGV2LCAiTWVtb3J5IGFsbG9jYXRpb24gZmFpbHVyZVxu Iik7CiAJCXN0YXR1cyA9IC1FTk9NRU07CkBAIC0yODE1LDggKzI4MTcsOCBAQCBpbnQgYmVfY21k X2dldF9jbnRsX2F0dHJpYnV0ZXMoc3RydWN0IGJlX2FkYXB0ZXIgKmFkYXB0ZXIpCiBlcnI6CiAJ bXV0ZXhfdW5sb2NrKCZhZGFwdGVyLT5tYm94X2xvY2spOwogCWlmIChhdHRyaWJzX2NtZC52YSkK LQkJcGNpX2ZyZWVfY29uc2lzdGVudChhZGFwdGVyLT5wZGV2LCBhdHRyaWJzX2NtZC5zaXplLAot CQkJCSAgICBhdHRyaWJzX2NtZC52YSwgYXR0cmlic19jbWQuZG1hKTsKKwkJZG1hX2ZyZWVfY29o ZXJlbnQoJmFkYXB0ZXItPnBkZXYtPmRldiwgYXR0cmlic19jbWQuc2l6ZSwKKwkJCQkgIGF0dHJp YnNfY21kLnZhLCBhdHRyaWJzX2NtZC5kbWEpOwogCXJldHVybiBzdGF0dXM7CiB9CiAKQEAgLTI5 NTQsOSArMjk1NiwxMCBAQCBpbnQgYmVfY21kX2dldF9tYWNfZnJvbV9saXN0KHN0cnVjdCBiZV9h ZGFwdGVyICphZGFwdGVyLCB1OCAqbWFjLAogCiAJbWVtc2V0KCZnZXRfbWFjX2xpc3RfY21kLCAw LCBzaXplb2Yoc3RydWN0IGJlX2RtYV9tZW0pKTsKIAlnZXRfbWFjX2xpc3RfY21kLnNpemUgPSBz aXplb2Yoc3RydWN0IGJlX2NtZF9yZXNwX2dldF9tYWNfbGlzdCk7Ci0JZ2V0X21hY19saXN0X2Nt ZC52YSA9IHBjaV9hbGxvY19jb25zaXN0ZW50KGFkYXB0ZXItPnBkZXYsCi0JCQkJCQkgICBnZXRf bWFjX2xpc3RfY21kLnNpemUsCi0JCQkJCQkgICAmZ2V0X21hY19saXN0X2NtZC5kbWEpOworCWdl dF9tYWNfbGlzdF9jbWQudmEgPSBkbWFfemFsbG9jX2NvaGVyZW50KCZhZGFwdGVyLT5wZGV2LT5k ZXYsCisJCQkJCQkgIGdldF9tYWNfbGlzdF9jbWQuc2l6ZSwKKwkJCQkJCSAgJmdldF9tYWNfbGlz dF9jbWQuZG1hLAorCQkJCQkJICBHRlBfQVRPTUlDKTsKIAogCWlmICghZ2V0X21hY19saXN0X2Nt ZC52YSkgewogCQlkZXZfZXJyKCZhZGFwdGVyLT5wZGV2LT5kZXYsCkBAIC0zMDI5LDggKzMwMzIs OCBAQCBpbnQgYmVfY21kX2dldF9tYWNfZnJvbV9saXN0KHN0cnVjdCBiZV9hZGFwdGVyICphZGFw dGVyLCB1OCAqbWFjLAogCiBvdXQ6CiAJc3Bpbl91bmxvY2tfYmgoJmFkYXB0ZXItPm1jY19sb2Nr KTsKLQlwY2lfZnJlZV9jb25zaXN0ZW50KGFkYXB0ZXItPnBkZXYsIGdldF9tYWNfbGlzdF9jbWQu c2l6ZSwKLQkJCSAgICBnZXRfbWFjX2xpc3RfY21kLnZhLCBnZXRfbWFjX2xpc3RfY21kLmRtYSk7 CisJZG1hX2ZyZWVfY29oZXJlbnQoJmFkYXB0ZXItPnBkZXYtPmRldiwgZ2V0X21hY19saXN0X2Nt ZC5zaXplLAorCQkJICBnZXRfbWFjX2xpc3RfY21kLnZhLCBnZXRfbWFjX2xpc3RfY21kLmRtYSk7 CiAJcmV0dXJuIHN0YXR1czsKIH0KIApAQCAtMzA4Myw4ICszMDg2LDggQEAgaW50IGJlX2NtZF9z ZXRfbWFjX2xpc3Qoc3RydWN0IGJlX2FkYXB0ZXIgKmFkYXB0ZXIsIHU4ICptYWNfYXJyYXksCiAK IAltZW1zZXQoJmNtZCwgMCwgc2l6ZW9mKHN0cnVjdCBiZV9kbWFfbWVtKSk7CiAJY21kLnNpemUg PSBzaXplb2Yoc3RydWN0IGJlX2NtZF9yZXFfc2V0X21hY19saXN0KTsKLQljbWQudmEgPSBkbWFf YWxsb2NfY29oZXJlbnQoJmFkYXB0ZXItPnBkZXYtPmRldiwgY21kLnNpemUsCi0JCQkJICAgICZj bWQuZG1hLCBHRlBfS0VSTkVMKTsKKwljbWQudmEgPSBkbWFfemFsbG9jX2NvaGVyZW50KCZhZGFw dGVyLT5wZGV2LT5kZXYsIGNtZC5zaXplLCAmY21kLmRtYSwKKwkJCQkgICAgIEdGUF9LRVJORUwp OwogCWlmICghY21kLnZhKQogCQlyZXR1cm4gLUVOT01FTTsKIApAQCAtMzI1NSw3ICszMjU4LDgg QEAgaW50IGJlX2NtZF9nZXRfYWNwaV93b2xfY2FwKHN0cnVjdCBiZV9hZGFwdGVyICphZGFwdGVy KQogCiAJbWVtc2V0KCZjbWQsIDAsIHNpemVvZihzdHJ1Y3QgYmVfZG1hX21lbSkpOwogCWNtZC5z aXplID0gc2l6ZW9mKHN0cnVjdCBiZV9jbWRfcmVzcF9hY3BpX3dvbF9tYWdpY19jb25maWdfdjEp OwotCWNtZC52YSA9IHBjaV9hbGxvY19jb25zaXN0ZW50KGFkYXB0ZXItPnBkZXYsIGNtZC5zaXpl LCAmY21kLmRtYSk7CisJY21kLnZhID0gZG1hX3phbGxvY19jb2hlcmVudCgmYWRhcHRlci0+cGRl di0+ZGV2LCBjbWQuc2l6ZSwgJmNtZC5kbWEsCisJCQkJICAgICBHRlBfQVRPTUlDKTsKIAlpZiAo IWNtZC52YSkgewogCQlkZXZfZXJyKCZhZGFwdGVyLT5wZGV2LT5kZXYsICJNZW1vcnkgYWxsb2Nh dGlvbiBmYWlsdXJlXG4iKTsKIAkJc3RhdHVzID0gLUVOT01FTTsKQEAgLTMyOTAsNyArMzI5NCw4 IEBAIGludCBiZV9jbWRfZ2V0X2FjcGlfd29sX2NhcChzdHJ1Y3QgYmVfYWRhcHRlciAqYWRhcHRl cikKIGVycjoKIAltdXRleF91bmxvY2soJmFkYXB0ZXItPm1ib3hfbG9jayk7CiAJaWYgKGNtZC52 YSkKLQkJcGNpX2ZyZWVfY29uc2lzdGVudChhZGFwdGVyLT5wZGV2LCBjbWQuc2l6ZSwgY21kLnZh LCBjbWQuZG1hKTsKKwkJZG1hX2ZyZWVfY29oZXJlbnQoJmFkYXB0ZXItPnBkZXYtPmRldiwgY21k LnNpemUsIGNtZC52YSwKKwkJCQkgIGNtZC5kbWEpOwogCXJldHVybiBzdGF0dXM7CiAKIH0KQEAg LTMzMDQsOCArMzMwOSw5IEBAIGludCBiZV9jbWRfc2V0X2Z3X2xvZ19sZXZlbChzdHJ1Y3QgYmVf YWRhcHRlciAqYWRhcHRlciwgdTMyIGxldmVsKQogCiAJbWVtc2V0KCZleHRmYXRfY21kLCAwLCBz aXplb2Yoc3RydWN0IGJlX2RtYV9tZW0pKTsKIAlleHRmYXRfY21kLnNpemUgPSBzaXplb2Yoc3Ry dWN0IGJlX2NtZF9yZXNwX2dldF9leHRfZmF0X2NhcHMpOwotCWV4dGZhdF9jbWQudmEgPSBwY2lf YWxsb2NfY29uc2lzdGVudChhZGFwdGVyLT5wZGV2LCBleHRmYXRfY21kLnNpemUsCi0JCQkJCSAg ICAgJmV4dGZhdF9jbWQuZG1hKTsKKwlleHRmYXRfY21kLnZhID0gZG1hX3phbGxvY19jb2hlcmVu dCgmYWRhcHRlci0+cGRldi0+ZGV2LAorCQkJCQkgICAgZXh0ZmF0X2NtZC5zaXplLCAmZXh0ZmF0 X2NtZC5kbWEsCisJCQkJCSAgICBHRlBfQVRPTUlDKTsKIAlpZiAoIWV4dGZhdF9jbWQudmEpCiAJ CXJldHVybiAtRU5PTUVNOwogCkBAIC0zMzI3LDggKzMzMzMsOCBAQCBpbnQgYmVfY21kX3NldF9m d19sb2dfbGV2ZWwoc3RydWN0IGJlX2FkYXB0ZXIgKmFkYXB0ZXIsIHUzMiBsZXZlbCkKIAogCXN0 YXR1cyA9IGJlX2NtZF9zZXRfZXh0X2ZhdF9jYXBhYmlsaXRlcyhhZGFwdGVyLCAmZXh0ZmF0X2Nt ZCwgY2Zncyk7CiBlcnI6Ci0JcGNpX2ZyZWVfY29uc2lzdGVudChhZGFwdGVyLT5wZGV2LCBleHRm YXRfY21kLnNpemUsIGV4dGZhdF9jbWQudmEsCi0JCQkgICAgZXh0ZmF0X2NtZC5kbWEpOworCWRt YV9mcmVlX2NvaGVyZW50KCZhZGFwdGVyLT5wZGV2LT5kZXYsIGV4dGZhdF9jbWQuc2l6ZSwgZXh0 ZmF0X2NtZC52YSwKKwkJCSAgZXh0ZmF0X2NtZC5kbWEpOwogCXJldHVybiBzdGF0dXM7CiB9CiAK QEAgLTMzNDEsOCArMzM0Nyw5IEBAIGludCBiZV9jbWRfZ2V0X2Z3X2xvZ19sZXZlbChzdHJ1Y3Qg YmVfYWRhcHRlciAqYWRhcHRlcikKIAogCW1lbXNldCgmZXh0ZmF0X2NtZCwgMCwgc2l6ZW9mKHN0 cnVjdCBiZV9kbWFfbWVtKSk7CiAJZXh0ZmF0X2NtZC5zaXplID0gc2l6ZW9mKHN0cnVjdCBiZV9j bWRfcmVzcF9nZXRfZXh0X2ZhdF9jYXBzKTsKLQlleHRmYXRfY21kLnZhID0gcGNpX2FsbG9jX2Nv bnNpc3RlbnQoYWRhcHRlci0+cGRldiwgZXh0ZmF0X2NtZC5zaXplLAotCQkJCQkgICAgICZleHRm YXRfY21kLmRtYSk7CisJZXh0ZmF0X2NtZC52YSA9IGRtYV96YWxsb2NfY29oZXJlbnQoJmFkYXB0 ZXItPnBkZXYtPmRldiwKKwkJCQkJICAgIGV4dGZhdF9jbWQuc2l6ZSwgJmV4dGZhdF9jbWQuZG1h LAorCQkJCQkgICAgR0ZQX0FUT01JQyk7CiAKIAlpZiAoIWV4dGZhdF9jbWQudmEpIHsKIAkJZGV2 X2VycigmYWRhcHRlci0+cGRldi0+ZGV2LCAiJXM6IE1lbW9yeSBhbGxvY2F0aW9uIGZhaWx1cmVc biIsCkBAIC0zMzYwLDggKzMzNjcsOCBAQCBpbnQgYmVfY21kX2dldF9md19sb2dfbGV2ZWwoc3Ry dWN0IGJlX2FkYXB0ZXIgKmFkYXB0ZXIpCiAJCQkJbGV2ZWwgPSBjZmdzLT5tb2R1bGVbMF0udHJh Y2VfbHZsW2pdLmRiZ19sdmw7CiAJCX0KIAl9Ci0JcGNpX2ZyZWVfY29uc2lzdGVudChhZGFwdGVy LT5wZGV2LCBleHRmYXRfY21kLnNpemUsIGV4dGZhdF9jbWQudmEsCi0JCQkgICAgZXh0ZmF0X2Nt ZC5kbWEpOworCWRtYV9mcmVlX2NvaGVyZW50KCZhZGFwdGVyLT5wZGV2LT5kZXYsIGV4dGZhdF9j bWQuc2l6ZSwgZXh0ZmF0X2NtZC52YSwKKwkJCSAgZXh0ZmF0X2NtZC5kbWEpOwogZXJyOgogCXJl dHVybiBsZXZlbDsKIH0KQEAgLTM1NjcsNyArMzU3NCw4IEBAIGludCBiZV9jbWRfZ2V0X2Z1bmNf Y29uZmlnKHN0cnVjdCBiZV9hZGFwdGVyICphZGFwdGVyLCBzdHJ1Y3QgYmVfcmVzb3VyY2VzICpy ZXMpCiAKIAltZW1zZXQoJmNtZCwgMCwgc2l6ZW9mKHN0cnVjdCBiZV9kbWFfbWVtKSk7CiAJY21k LnNpemUgPSBzaXplb2Yoc3RydWN0IGJlX2NtZF9yZXNwX2dldF9mdW5jX2NvbmZpZyk7Ci0JY21k LnZhID0gcGNpX2FsbG9jX2NvbnNpc3RlbnQoYWRhcHRlci0+cGRldiwgY21kLnNpemUsICZjbWQu ZG1hKTsKKwljbWQudmEgPSBkbWFfemFsbG9jX2NvaGVyZW50KCZhZGFwdGVyLT5wZGV2LT5kZXYs IGNtZC5zaXplLCAmY21kLmRtYSwKKwkJCQkgICAgIEdGUF9BVE9NSUMpOwogCWlmICghY21kLnZh KSB7CiAJCWRldl9lcnIoJmFkYXB0ZXItPnBkZXYtPmRldiwgIk1lbW9yeSBhbGxvYyBmYWlsdXJl XG4iKTsKIAkJc3RhdHVzID0gLUVOT01FTTsKQEAgLTM2MDcsNyArMzYxNSw4IEBAIGludCBiZV9j bWRfZ2V0X2Z1bmNfY29uZmlnKHN0cnVjdCBiZV9hZGFwdGVyICphZGFwdGVyLCBzdHJ1Y3QgYmVf cmVzb3VyY2VzICpyZXMpCiBlcnI6CiAJbXV0ZXhfdW5sb2NrKCZhZGFwdGVyLT5tYm94X2xvY2sp OwogCWlmIChjbWQudmEpCi0JCXBjaV9mcmVlX2NvbnNpc3RlbnQoYWRhcHRlci0+cGRldiwgY21k LnNpemUsIGNtZC52YSwgY21kLmRtYSk7CisJCWRtYV9mcmVlX2NvaGVyZW50KCZhZGFwdGVyLT5w ZGV2LT5kZXYsIGNtZC5zaXplLCBjbWQudmEsCisJCQkJICBjbWQuZG1hKTsKIAlyZXR1cm4gc3Rh dHVzOwogfQogCkBAIC0zNjI4LDcgKzM2MzcsOCBAQCBpbnQgYmVfY21kX2dldF9wcm9maWxlX2Nv bmZpZyhzdHJ1Y3QgYmVfYWRhcHRlciAqYWRhcHRlciwKIAogCW1lbXNldCgmY21kLCAwLCBzaXpl b2Yoc3RydWN0IGJlX2RtYV9tZW0pKTsKIAljbWQuc2l6ZSA9IHNpemVvZihzdHJ1Y3QgYmVfY21k X3Jlc3BfZ2V0X3Byb2ZpbGVfY29uZmlnKTsKLQljbWQudmEgPSBwY2lfYWxsb2NfY29uc2lzdGVu dChhZGFwdGVyLT5wZGV2LCBjbWQuc2l6ZSwgJmNtZC5kbWEpOworCWNtZC52YSA9IGRtYV96YWxs b2NfY29oZXJlbnQoJmFkYXB0ZXItPnBkZXYtPmRldiwgY21kLnNpemUsICZjbWQuZG1hLAorCQkJ CSAgICAgR0ZQX0FUT01JQyk7CiAJaWYgKCFjbWQudmEpCiAJCXJldHVybiAtRU5PTUVNOwogCkBA IC0zNjY3LDcgKzM2NzcsOCBAQCBpbnQgYmVfY21kX2dldF9wcm9maWxlX2NvbmZpZyhzdHJ1Y3Qg YmVfYWRhcHRlciAqYWRhcHRlciwKIAkJcmVzLT52Zl9pZl9jYXBfZmxhZ3MgPSB2Zl9yZXMtPmNh cF9mbGFnczsKIGVycjoKIAlpZiAoY21kLnZhKQotCQlwY2lfZnJlZV9jb25zaXN0ZW50KGFkYXB0 ZXItPnBkZXYsIGNtZC5zaXplLCBjbWQudmEsIGNtZC5kbWEpOworCQlkbWFfZnJlZV9jb2hlcmVu dCgmYWRhcHRlci0+cGRldi0+ZGV2LCBjbWQuc2l6ZSwgY21kLnZhLAorCQkJCSAgY21kLmRtYSk7 CiAJcmV0dXJuIHN0YXR1czsKIH0KIApAQCAtMzY4Miw3ICszNjkzLDggQEAgc3RhdGljIGludCBi ZV9jbWRfc2V0X3Byb2ZpbGVfY29uZmlnKHN0cnVjdCBiZV9hZGFwdGVyICphZGFwdGVyLCB2b2lk ICpkZXNjLAogCiAJbWVtc2V0KCZjbWQsIDAsIHNpemVvZihzdHJ1Y3QgYmVfZG1hX21lbSkpOwog CWNtZC5zaXplID0gc2l6ZW9mKHN0cnVjdCBiZV9jbWRfcmVxX3NldF9wcm9maWxlX2NvbmZpZyk7 Ci0JY21kLnZhID0gcGNpX2FsbG9jX2NvbnNpc3RlbnQoYWRhcHRlci0+cGRldiwgY21kLnNpemUs ICZjbWQuZG1hKTsKKwljbWQudmEgPSBkbWFfemFsbG9jX2NvaGVyZW50KCZhZGFwdGVyLT5wZGV2 LT5kZXYsIGNtZC5zaXplLCAmY21kLmRtYSwKKwkJCQkgICAgIEdGUF9BVE9NSUMpOwogCWlmICgh Y21kLnZhKQogCQlyZXR1cm4gLUVOT01FTTsKIApAQCAtMzY5OCw3ICszNzEwLDggQEAgc3RhdGlj IGludCBiZV9jbWRfc2V0X3Byb2ZpbGVfY29uZmlnKHN0cnVjdCBiZV9hZGFwdGVyICphZGFwdGVy LCB2b2lkICpkZXNjLAogCXN0YXR1cyA9IGJlX2NtZF9ub3RpZnlfd2FpdChhZGFwdGVyLCAmd3Ji KTsKIAogCWlmIChjbWQudmEpCi0JCXBjaV9mcmVlX2NvbnNpc3RlbnQoYWRhcHRlci0+cGRldiwg Y21kLnNpemUsIGNtZC52YSwgY21kLmRtYSk7CisJCWRtYV9mcmVlX2NvaGVyZW50KCZhZGFwdGVy LT5wZGV2LT5kZXYsIGNtZC5zaXplLCBjbWQudmEsCisJCQkJICBjbWQuZG1hKTsKIAlyZXR1cm4g c3RhdHVzOwogfQogCmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC9ldGhlcm5ldC9lbXVsZXgvYmVu ZXQvYmVfZXRodG9vbC5jIGIvZHJpdmVycy9uZXQvZXRoZXJuZXQvZW11bGV4L2JlbmV0L2JlX2V0 aHRvb2wuYwppbmRleCBlNDJhNzkxLi5hMTFjNWUwIDEwMDY0NAotLS0gYS9kcml2ZXJzL25ldC9l dGhlcm5ldC9lbXVsZXgvYmVuZXQvYmVfZXRodG9vbC5jCisrKyBiL2RyaXZlcnMvbmV0L2V0aGVy bmV0L2VtdWxleC9iZW5ldC9iZV9ldGh0b29sLmMKQEAgLTI2Niw4ICsyNjYsOCBAQCBzdGF0aWMg aW50IGxhbmNlcl9jbWRfcmVhZF9maWxlKHN0cnVjdCBiZV9hZGFwdGVyICphZGFwdGVyLCB1OCAq ZmlsZV9uYW1lLAogCWludCBzdGF0dXMgPSAwOwogCiAJcmVhZF9jbWQuc2l6ZSA9IExBTkNFUl9S RUFEX0ZJTEVfQ0hVTks7Ci0JcmVhZF9jbWQudmEgPSBwY2lfYWxsb2NfY29uc2lzdGVudChhZGFw dGVyLT5wZGV2LCByZWFkX2NtZC5zaXplLAotCQkJCQkgICAmcmVhZF9jbWQuZG1hKTsKKwlyZWFk X2NtZC52YSA9IGRtYV96YWxsb2NfY29oZXJlbnQoJmFkYXB0ZXItPnBkZXYtPmRldiwgcmVhZF9j bWQuc2l6ZSwKKwkJCQkJICAmcmVhZF9jbWQuZG1hLCBHRlBfQVRPTUlDKTsKIAogCWlmICghcmVh ZF9jbWQudmEpIHsKIAkJZGV2X2VycigmYWRhcHRlci0+cGRldi0+ZGV2LApAQCAtMjkxLDggKzI5 MSw4IEBAIHN0YXRpYyBpbnQgbGFuY2VyX2NtZF9yZWFkX2ZpbGUoc3RydWN0IGJlX2FkYXB0ZXIg KmFkYXB0ZXIsIHU4ICpmaWxlX25hbWUsCiAJCQlicmVhazsKIAkJfQogCX0KLQlwY2lfZnJlZV9j b25zaXN0ZW50KGFkYXB0ZXItPnBkZXYsIHJlYWRfY21kLnNpemUsIHJlYWRfY21kLnZhLAotCQkJ ICAgIHJlYWRfY21kLmRtYSk7CisJZG1hX2ZyZWVfY29oZXJlbnQoJmFkYXB0ZXItPnBkZXYtPmRl diwgcmVhZF9jbWQuc2l6ZSwgcmVhZF9jbWQudmEsCisJCQkgIHJlYWRfY21kLmRtYSk7CiAKIAly ZXR1cm4gc3RhdHVzOwogfQpAQCAtODE4LDggKzgxOCw5IEBAIHN0YXRpYyBpbnQgYmVfdGVzdF9k ZHJfZG1hKHN0cnVjdCBiZV9hZGFwdGVyICphZGFwdGVyKQogCX07CiAKIAlkZHJkbWFfY21kLnNp emUgPSBzaXplb2Yoc3RydWN0IGJlX2NtZF9yZXFfZGRyZG1hX3Rlc3QpOwotCWRkcmRtYV9jbWQu dmEgPSBkbWFfYWxsb2NfY29oZXJlbnQoJmFkYXB0ZXItPnBkZXYtPmRldiwgZGRyZG1hX2NtZC5z aXplLAotCQkJCQkgICAmZGRyZG1hX2NtZC5kbWEsIEdGUF9LRVJORUwpOworCWRkcmRtYV9jbWQu dmEgPSBkbWFfemFsbG9jX2NvaGVyZW50KCZhZGFwdGVyLT5wZGV2LT5kZXYsCisJCQkJCSAgICBk ZHJkbWFfY21kLnNpemUsICZkZHJkbWFfY21kLmRtYSwKKwkJCQkJICAgIEdGUF9LRVJORUwpOwog CWlmICghZGRyZG1hX2NtZC52YSkKIAkJcmV0dXJuIC1FTk9NRU07CiAKQEAgLTk0MSw4ICs5NDIs OSBAQCBzdGF0aWMgaW50IGJlX3JlYWRfZWVwcm9tKHN0cnVjdCBuZXRfZGV2aWNlICpuZXRkZXYs CiAKIAltZW1zZXQoJmVlcHJvbV9jbWQsIDAsIHNpemVvZihzdHJ1Y3QgYmVfZG1hX21lbSkpOwog CWVlcHJvbV9jbWQuc2l6ZSA9IHNpemVvZihzdHJ1Y3QgYmVfY21kX3JlcV9zZWVwcm9tX3JlYWQp OwotCWVlcHJvbV9jbWQudmEgPSBkbWFfYWxsb2NfY29oZXJlbnQoJmFkYXB0ZXItPnBkZXYtPmRl diwgZWVwcm9tX2NtZC5zaXplLAotCQkJCQkgICAmZWVwcm9tX2NtZC5kbWEsIEdGUF9LRVJORUwp OworCWVlcHJvbV9jbWQudmEgPSBkbWFfemFsbG9jX2NvaGVyZW50KCZhZGFwdGVyLT5wZGV2LT5k ZXYsCisJCQkJCSAgICBlZXByb21fY21kLnNpemUsICZlZXByb21fY21kLmRtYSwKKwkJCQkJICAg IEdGUF9LRVJORUwpOwogCiAJaWYgKCFlZXByb21fY21kLnZhKQogCQlyZXR1cm4gLUVOT01FTTsK ZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L2V0aGVybmV0L2VtdWxleC9iZW5ldC9iZV9tYWluLmMg Yi9kcml2ZXJzL25ldC9ldGhlcm5ldC9lbXVsZXgvYmVuZXQvYmVfbWFpbi5jCmluZGV4IGU1MWZh ZjAuLmZkZDM2NzkgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvbmV0L2V0aGVybmV0L2VtdWxleC9iZW5l dC9iZV9tYWluLmMKKysrIGIvZHJpdmVycy9uZXQvZXRoZXJuZXQvZW11bGV4L2JlbmV0L2JlX21h aW4uYwpAQCAtNDExMyw4ICs0MTEzLDggQEAgc3RhdGljIGludCBsYW5jZXJfZndfZG93bmxvYWQo c3RydWN0IGJlX2FkYXB0ZXIgKmFkYXB0ZXIsCiAKIAlmbGFzaF9jbWQuc2l6ZSA9IHNpemVvZihz dHJ1Y3QgbGFuY2VyX2NtZF9yZXFfd3JpdGVfb2JqZWN0KQogCQkJCSsgTEFOQ0VSX0ZXX0RPV05M T0FEX0NIVU5LOwotCWZsYXNoX2NtZC52YSA9IGRtYV9hbGxvY19jb2hlcmVudChkZXYsIGZsYXNo X2NtZC5zaXplLAotCQkJCQkgICZmbGFzaF9jbWQuZG1hLCBHRlBfS0VSTkVMKTsKKwlmbGFzaF9j bWQudmEgPSBkbWFfemFsbG9jX2NvaGVyZW50KGRldiwgZmxhc2hfY21kLnNpemUsCisJCQkJCSAg ICZmbGFzaF9jbWQuZG1hLCBHRlBfS0VSTkVMKTsKIAlpZiAoIWZsYXNoX2NtZC52YSkKIAkJcmV0 dXJuIC1FTk9NRU07CiAKQEAgLTQyMDksOCArNDIwOSw4IEBAIHN0YXRpYyBpbnQgYmVfZndfZG93 bmxvYWQoc3RydWN0IGJlX2FkYXB0ZXIgKmFkYXB0ZXIsIGNvbnN0IHN0cnVjdCBmaXJtd2FyZSog ZncpCiAJaW50IHN0YXR1cyA9IDAsIGkgPSAwLCBudW1faW1ncyA9IDAsIHVmaV90eXBlID0gMDsK IAogCWZsYXNoX2NtZC5zaXplID0gc2l6ZW9mKHN0cnVjdCBiZV9jbWRfd3JpdGVfZmxhc2hyb20p OwotCWZsYXNoX2NtZC52YSA9IGRtYV9hbGxvY19jb2hlcmVudCgmYWRhcHRlci0+cGRldi0+ZGV2 LCBmbGFzaF9jbWQuc2l6ZSwKLQkJCQkJICAmZmxhc2hfY21kLmRtYSwgR0ZQX0tFUk5FTCk7CisJ Zmxhc2hfY21kLnZhID0gZG1hX3phbGxvY19jb2hlcmVudCgmYWRhcHRlci0+cGRldi0+ZGV2LCBm bGFzaF9jbWQuc2l6ZSwKKwkJCQkJICAgJmZsYXNoX2NtZC5kbWEsIEdGUF9LRVJORUwpOwogCWlm ICghZmxhc2hfY21kLnZhKSB7CiAJCXN0YXR1cyA9IC1FTk9NRU07CiAJCWdvdG8gYmVfZndfZXhp dDsKQEAgLTQ1ODcsMTAgKzQ1ODcsMTAgQEAgc3RhdGljIGludCBiZV9jdHJsX2luaXQoc3RydWN0 IGJlX2FkYXB0ZXIgKmFkYXB0ZXIpCiAJCWdvdG8gZG9uZTsKIAogCW1ib3hfbWVtX2FsbG9jLT5z aXplID0gc2l6ZW9mKHN0cnVjdCBiZV9tY2NfbWFpbGJveCkgKyAxNjsKLQltYm94X21lbV9hbGxv Yy0+dmEgPSBkbWFfYWxsb2NfY29oZXJlbnQoJmFkYXB0ZXItPnBkZXYtPmRldiwKLQkJCQkJCW1i b3hfbWVtX2FsbG9jLT5zaXplLAotCQkJCQkJJm1ib3hfbWVtX2FsbG9jLT5kbWEsCi0JCQkJCQlH RlBfS0VSTkVMKTsKKwltYm94X21lbV9hbGxvYy0+dmEgPSBkbWFfemFsbG9jX2NvaGVyZW50KCZh ZGFwdGVyLT5wZGV2LT5kZXYsCisJCQkJCQkgbWJveF9tZW1fYWxsb2MtPnNpemUsCisJCQkJCQkg Jm1ib3hfbWVtX2FsbG9jLT5kbWEsCisJCQkJCQkgR0ZQX0tFUk5FTCk7CiAJaWYgKCFtYm94X21l bV9hbGxvYy0+dmEpIHsKIAkJc3RhdHVzID0gLUVOT01FTTsKIAkJZ290byB1bm1hcF9wY2lfYmFy czsKLS0gCjIuMS4wCgoKRnJvbSA2NzAxZjljZTc2NTBjN2I3YmVlNWI3MGE1YTIyMTQxM2M3Yzk3 OTA1IE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBOaWtvbGF5IEFsZWtzYW5kcm92IDxu aWtvbGF5QGN1bXVsdXNuZXR3b3Jrcy5jb20+CkRhdGU6IFNhdCwgNiBKdW4gMjAxNSAwNjo0OTow MCAtMDcwMApTdWJqZWN0OiBbUEFUQ0ggMjUvMjVdIGJyaWRnZTogZGlzYWJsZSBzb2Z0aXJxcyBh cm91bmQgYnJfZmRiX3VwZGF0ZSB0byBhdm9pZAogbG9ja3VwCgpbIFVwc3RyZWFtIGNvbW1pdCBj NGM4MzJmODlkYzQ2OGNmMTFkYzBkZDE3MjA2YmFjZTQ0NTI2NjUxIF0KCmJyX2ZkYl91cGRhdGUo KSBjYW4gYmUgY2FsbGVkIGluIHByb2Nlc3MgY29udGV4dCBpbiB0aGUgZm9sbG93aW5nIHdheToK YnJfZmRiX2FkZCgpIC0+IF9fYnJfZmRiX2FkZCgpIC0+IGJyX2ZkYl91cGRhdGUoKSAoaWYgTlRG X1VTRSBmbGFnIGlzIHNldCkKc28gd2UgbmVlZCB0byBkaXNhYmxlIHNvZnRpcnFzIGJlY2F1c2Ug dGhlcmUgYXJlIHNvZnRpcnEgdXNlcnMgb2YgdGhlCmhhc2hfbG9jay4gT25lIGVhc3kgd2F5IHRv IHJlcHJvZHVjZSB0aGlzIGlzIHRvIG1vZGlmeSB0aGUgYnJpZGdlIHV0aWxpdHkKdG8gc2V0IE5U Rl9VU0UsIGVuYWJsZSBzdHAgYW5kIHRoZW4gc2V0IG1heGFnZWluZyB0byBhIGxvdyB2YWx1ZSBz bwpicl9mZGJfY2xlYW51cCgpIGlzIGNhbGxlZCBmcmVxdWVudGx5IGFuZCB0aGVuIGp1c3QgYWRk IG5ldyBlbnRyaWVzIGluCmEgbG9vcC4gVGhpcyBoYXBwZW5zIGJlY2F1c2UgYnJfZmRiX2NsZWFu dXAoKSBpcyBjYWxsZWQgZnJvbSB0aW1lci9zb2Z0aXJxCmNvbnRleHQuIFRoZSBzcGluIGxvY2tz IGluIGJyX2ZkYl91cGRhdGUgd2VyZSBfYmggYmVmb3JlIGNvbW1pdCBmOGFlNzM3ZGVlYTEKKCJb QlJJREdFXTogZm9yd2FyZGluZyByZW1vdmUgdW5uZWVkZWQgcHJlZW1wdCBhbmQgYmggZGlhc2Fi bGVzIikKYW5kIGF0IHRoZSB0aW1lIHRoYXQgY29tbWl0IHdhcyBjb3JyZWN0IGJlY2F1c2UgYnJf ZmRiX3VwZGF0ZSgpIGNvdWxkbid0IGJlCmNhbGxlZCBmcm9tIHByb2Nlc3MgY29udGV4dCwgYnV0 IHRoYXQgY2hhbmdlZCBhZnRlciBjb21taXQ6CjI5MmQxMzk4OTgzZiAoImJyaWRnZTogYWRkIE5U Rl9VU0Ugc3VwcG9ydCIpClVzaW5nIGxvY2FsX2JoX2Rpc2FibGUvZW5hYmxlIGFyb3VuZCBicl9m ZGJfdXBkYXRlKCkgYWxsb3dzIHVzIHRvIGtlZXAKdXNpbmcgdGhlIHNwaW5fbG9jay91bmxvY2sg aW4gYnJfZmRiX3VwZGF0ZSBmb3IgdGhlIGZhc3QtcGF0aC4KClNpZ25lZC1vZmYtYnk6IE5pa29s YXkgQWxla3NhbmRyb3YgPG5pa29sYXlAY3VtdWx1c25ldHdvcmtzLmNvbT4KRml4ZXM6IDI5MmQx Mzk4OTgzZiAoImJyaWRnZTogYWRkIE5URl9VU0Ugc3VwcG9ydCIpClNpZ25lZC1vZmYtYnk6IERh dmlkIFMuIE1pbGxlciA8ZGF2ZW1AZGF2ZW1sb2Z0Lm5ldD4KLS0tCiBuZXQvYnJpZGdlL2JyX2Zk Yi5jIHwgMiArKwogMSBmaWxlIGNoYW5nZWQsIDIgaW5zZXJ0aW9ucygrKQoKZGlmZiAtLWdpdCBh L25ldC9icmlkZ2UvYnJfZmRiLmMgYi9uZXQvYnJpZGdlL2JyX2ZkYi5jCmluZGV4IDZmNmM5NWMu LmVhYjg4NjIgMTAwNjQ0Ci0tLSBhL25ldC9icmlkZ2UvYnJfZmRiLmMKKysrIGIvbmV0L2JyaWRn ZS9icl9mZGIuYwpAQCAtNzg5LDkgKzc4OSwxMSBAQCBzdGF0aWMgaW50IF9fYnJfZmRiX2FkZChz dHJ1Y3QgbmRtc2cgKm5kbSwgc3RydWN0IG5ldF9icmlkZ2VfcG9ydCAqcCwKIAlpbnQgZXJyID0g MDsKIAogCWlmIChuZG0tPm5kbV9mbGFncyAmIE5URl9VU0UpIHsKKwkJbG9jYWxfYmhfZGlzYWJs ZSgpOwogCQlyY3VfcmVhZF9sb2NrKCk7CiAJCWJyX2ZkYl91cGRhdGUocC0+YnIsIHAsIGFkZHIs IHZpZCwgdHJ1ZSk7CiAJCXJjdV9yZWFkX3VubG9jaygpOworCQlsb2NhbF9iaF9lbmFibGUoKTsK IAl9IGVsc2UgewogCQlzcGluX2xvY2tfYmgoJnAtPmJyLT5oYXNoX2xvY2spOwogCQllcnIgPSBm ZGJfYWRkX2VudHJ5KHAsIGFkZHIsIG5kbS0+bmRtX3N0YXRlLAotLSAKMi4xLjAKCg== ----Next_Part(Tue_Jun__9_20_01_04_2015_064)-- Content-Type: Application/Octet-Stream Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="net_40.mbox" RnJvbSBiZGM1NmQ0NGY0ZGNhZmFiNTMwZGI1MmU2MjViMjI1ZWUxMDRmMmJjIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBWbGFkIFlhc2V2aWNoIDx2eWFzZXZpY2hAZ21haWwuY29tPgpE YXRlOiBTYXQsIDIgTWF5IDIwMTUgMjE6MzM6NDQgLTA0MDAKU3ViamVjdDogW1BBVENIIDAxLzI3 XSBuZXQ6IGNvcmU6IENvcnJlY3QgYW4gb3Zlci1zdHJpbmdlbnQgZGV2aWNlIGxvb3AKIGRldGVj dGlvbi4KClsgVXBzdHJlYW0gY29tbWl0IGQ2NmJmN2RkMjc1NzNlZTVlYTkwNDg0ODk5ZWU5NTJj MTljY2IxOTQgXQoKVGhlIGNvZGUgaW4gX19uZXRkZXZfdXBwZXJfZGV2X2xpbmsoKSBoYXMgYW4g b3Zlci1zdHJpbmdlbnQKbG9vcCBkZXRlY3Rpb24gbG9naWMgdGhhdCBhY3R1YWxseSBwcmV2ZW50 cyB2YWxpZCBjb25maWd1cmF0aW9ucwpmcm9tIHdvcmtpbmcgY29ycmVjdGx5LgoKSW4gcGFydGlj dWxhciwgdGhlIGxvZ2ljIHJldHVybnMgYW4gZXJyb3IgaWYgYW4gdXBwZXIgZGV2aWNlCmlzIGFs cmVhZHkgaW4gdGhlIGxpc3Qgb2YgYWxsIHVwcGVyIGRldmljZXMgZm9yIGEgZ2l2ZW4gZGV2LgpU aGlzIHBhcnRpY3VsYXIgY2hlY2sgc2VlbXMgdG8gYmUgYSBvdmVyemVhbG91cyBhcyBpdCBkaXNh bGxvd3MKcGVyZmVjdGx5IHZhbGlkIGNvbmZpZ3VyYXRpb25zLiAgRm9yIGV4YW1wbGU6CiAgIyBp cCBsIGEgbGluayBldGgwIG5hbWUgZXRoMC4xMCB0eXBlIHZsYW4gaWQgMTAKICAjIGlwIGwgYSBk ZXYgYnIwIHR5cCBicmlkZ2UKICAjIGlwIGwgcyBldGgwLjEwIG1hc3RlciBicjAKICAjIGlwIGwg cyBldGgwIG1hc3RlciBicjAgIDwtLS0gV2lsbCBmYWlsCgpJZiB5b3Ugc3dpdGNoIHRoZSBsYXN0 IHR3byBjb21tYW5kcyAoYWRkIGV0aDAgZmlyc3QpLCB0aGVuIGJvdGgKd2lsbCBzdWNjZWVkLiAg SWYgYWZ0ZXIgdGhhdCwgeW91IHJlbW92ZSBldGgwIGFuZCB0cnkgdG8gcmUtYWRkCml0LCBpdCB3 aWxsIGZhaWwhCgpJdCBhcHBlYXJzIHRvIGJlIGVub3VnaCB0byBzaW1wbHkgY2hlY2sgYWRqX2xp c3QgdG8ga2VlcHMgdGhpbmdzCnNhZmUuCgpJJ3ZlIHRyaWVkIHN0YWNraW5nIG11bHRpcGxlIGRl dmljZXMgbXVsdGlwbGUgdGltZXMgaW4gYWxsIGRpZmZlcmVudApjb21iaW5hdGlvbnMsIGFuZCBl aXRoZXIgcnhfaGFuZGxlciByZWdpc3RyYXRpb24gcHJldmVudGVkIHRoZSBzdGFja2luZwpvZiB0 aGUgZGV2aWNlIGxpbmtpbmcgY291Z2h0IHRoZSBlcnJvci4KClNpZ25lZC1vZmYtYnk6IFZsYWRp c2xhdiBZYXNldmljaCA8dnlhc2V2aWNAcmVkaGF0LmNvbT4KQWNrZWQtYnk6IEppcmkgUGlya28g PGppcmlAcmVzbnVsbGkudXM+CkFja2VkLWJ5OiBWZWFjZXNsYXYgRmFsaWNvIDx2ZmFsaWNvQGdt YWlsLmNvbT4KU2lnbmVkLW9mZi1ieTogRGF2aWQgUy4gTWlsbGVyIDxkYXZlbUBkYXZlbWxvZnQu bmV0PgotLS0KIG5ldC9jb3JlL2Rldi5jIHwgMiArLQogMSBmaWxlIGNoYW5nZWQsIDEgaW5zZXJ0 aW9uKCspLCAxIGRlbGV0aW9uKC0pCgpkaWZmIC0tZ2l0IGEvbmV0L2NvcmUvZGV2LmMgYi9uZXQv Y29yZS9kZXYuYwppbmRleCAyMmE1M2FjLi5lOTc3ZTE1IDEwMDY0NAotLS0gYS9uZXQvY29yZS9k ZXYuYworKysgYi9uZXQvY29yZS9kZXYuYwpAQCAtNTE3MCw3ICs1MTcwLDcgQEAgc3RhdGljIGlu dCBfX25ldGRldl91cHBlcl9kZXZfbGluayhzdHJ1Y3QgbmV0X2RldmljZSAqZGV2LAogCWlmIChf X25ldGRldl9maW5kX2Fkaih1cHBlcl9kZXYsIGRldiwgJnVwcGVyX2Rldi0+YWxsX2Fkal9saXN0 LnVwcGVyKSkKIAkJcmV0dXJuIC1FQlVTWTsKIAotCWlmIChfX25ldGRldl9maW5kX2FkaihkZXYs IHVwcGVyX2RldiwgJmRldi0+YWxsX2Fkal9saXN0LnVwcGVyKSkKKwlpZiAoX19uZXRkZXZfZmlu ZF9hZGooZGV2LCB1cHBlcl9kZXYsICZkZXYtPmFkal9saXN0LnVwcGVyKSkKIAkJcmV0dXJuIC1F RVhJU1Q7CiAKIAlpZiAobWFzdGVyICYmIG5ldGRldl9tYXN0ZXJfdXBwZXJfZGV2X2dldChkZXYp KQotLSAKMi4xLjAKCgpGcm9tIDVjNGI3YWQ5YzljMzVhMjkyNmU4OGRmNTBjOTc1MzQzOTMyZWEw MDMgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCkZyb206IEFsZXhlaSBTdGFyb3ZvaXRvdiA8YXN0 QHBsdW1ncmlkLmNvbT4KRGF0ZTogTW9uLCAxMSBNYXkgMjAxNSAyMzoyNToxNiAtMDcwMApTdWJq ZWN0OiBbUEFUQ0ggMDIvMjddIHg4NjogYnBmX2ppdDogZml4IEZST01fQkUxNiBhbmQgRlJPTV9M RTE2LzMyCiBpbnN0cnVjdGlvbnMKClsgVXBzdHJlYW0gY29tbWl0IDM0M2Y4NDViMzc1OTg5ZjE3 NTNmNjA1OTAyOTMxZmE5MzlhYTIyMjMgXQoKRlJPTV9CRTE2Ogoncm9yICVyZWcsIDgnIGRvZXNu J3QgY2xlYXIgdXBwZXIgYml0cyBvZiB0aGUgcmVnaXN0ZXIsCnNvIHVzZSBhZGRpdGlvbmFsICdt b3Z6d2wnIGluc24gdG8gemVybyBleHRlbmQgMTYgYml0cyBpbnRvIDY0CgpGUk9NX0xFMTY6CnNo b3VsZCB6ZXJvIGV4dGVuZCBsb3dlciAxNiBiaXRzIGludG8gNjQgYml0CgpGUk9NX0xFMzI6CnNo b3VsZCB6ZXJvIGV4dGVuZCBsb3dlciAzMiBiaXRzIGludG8gNjQgYml0CgpGaXhlczogODlhYTA3 NTgzMmIwICgibmV0OiBzb2NrOiBhbGxvdyBlQlBGIHByb2dyYW1zIHRvIGJlIGF0dGFjaGVkIHRv IHNvY2tldHMiKQpTaWduZWQtb2ZmLWJ5OiBBbGV4ZWkgU3Rhcm92b2l0b3YgPGFzdEBwbHVtZ3Jp ZC5jb20+ClNpZ25lZC1vZmYtYnk6IERhdmlkIFMuIE1pbGxlciA8ZGF2ZW1AZGF2ZW1sb2Z0Lm5l dD4KLS0tCiBhcmNoL3g4Ni9uZXQvYnBmX2ppdF9jb21wLmMgfCAyOCArKysrKysrKysrKysrKysr KysrKysrKysrKysrCiAxIGZpbGUgY2hhbmdlZCwgMjggaW5zZXJ0aW9ucygrKQoKZGlmZiAtLWdp dCBhL2FyY2gveDg2L25ldC9icGZfaml0X2NvbXAuYyBiL2FyY2gveDg2L25ldC9icGZfaml0X2Nv bXAuYwppbmRleCA5ODc1MTQzLi45OWY3NjEwIDEwMDY0NAotLS0gYS9hcmNoL3g4Ni9uZXQvYnBm X2ppdF9jb21wLmMKKysrIGIvYXJjaC94ODYvbmV0L2JwZl9qaXRfY29tcC5jCkBAIC01NTksNiAr NTU5LDEzIEBAIHN0YXRpYyBpbnQgZG9faml0KHN0cnVjdCBicGZfcHJvZyAqYnBmX3Byb2csIGlu dCAqYWRkcnMsIHU4ICppbWFnZSwKIAkJCQlpZiAoaXNfZXJlZyhkc3RfcmVnKSkKIAkJCQkJRU1J VDEoMHg0MSk7CiAJCQkJRU1JVDMoMHhDMSwgYWRkXzFyZWcoMHhDOCwgZHN0X3JlZyksIDgpOwor CisJCQkJLyogZW1pdCAnbW92endsIGVheCwgYXgnICovCisJCQkJaWYgKGlzX2VyZWcoZHN0X3Jl ZykpCisJCQkJCUVNSVQzKDB4NDUsIDB4MEYsIDB4QjcpOworCQkJCWVsc2UKKwkJCQkJRU1JVDIo MHgwRiwgMHhCNyk7CisJCQkJRU1JVDEoYWRkXzJyZWcoMHhDMCwgZHN0X3JlZywgZHN0X3JlZykp OwogCQkJCWJyZWFrOwogCQkJY2FzZSAzMjoKIAkJCQkvKiBlbWl0ICdic3dhcCBlYXgnIHRvIHN3 YXAgbG93ZXIgNCBieXRlcyAqLwpAQCAtNTc3LDYgKzU4NCwyNyBAQCBzdGF0aWMgaW50IGRvX2pp dChzdHJ1Y3QgYnBmX3Byb2cgKmJwZl9wcm9nLCBpbnQgKmFkZHJzLCB1OCAqaW1hZ2UsCiAJCQli cmVhazsKIAogCQljYXNlIEJQRl9BTFUgfCBCUEZfRU5EIHwgQlBGX0ZST01fTEU6CisJCQlzd2l0 Y2ggKGltbTMyKSB7CisJCQljYXNlIDE2OgorCQkJCS8qIGVtaXQgJ21vdnp3bCBlYXgsIGF4JyB0 byB6ZXJvIGV4dGVuZCAxNi1iaXQKKwkJCQkgKiBpbnRvIDY0IGJpdAorCQkJCSAqLworCQkJCWlm IChpc19lcmVnKGRzdF9yZWcpKQorCQkJCQlFTUlUMygweDQ1LCAweDBGLCAweEI3KTsKKwkJCQll bHNlCisJCQkJCUVNSVQyKDB4MEYsIDB4QjcpOworCQkJCUVNSVQxKGFkZF8ycmVnKDB4QzAsIGRz dF9yZWcsIGRzdF9yZWcpKTsKKwkJCQlicmVhazsKKwkJCWNhc2UgMzI6CisJCQkJLyogZW1pdCAn bW92IGVheCwgZWF4JyB0byBjbGVhciB1cHBlciAzMi1iaXRzICovCisJCQkJaWYgKGlzX2VyZWco ZHN0X3JlZykpCisJCQkJCUVNSVQxKDB4NDUpOworCQkJCUVNSVQyKDB4ODksIGFkZF8ycmVnKDB4 QzAsIGRzdF9yZWcsIGRzdF9yZWcpKTsKKwkJCQlicmVhazsKKwkJCWNhc2UgNjQ6CisJCQkJLyog bm9wICovCisJCQkJYnJlYWs7CisJCQl9CiAJCQlicmVhazsKIAogCQkJLyogU1Q6ICoodTgqKShk c3RfcmVnICsgb2ZmKSA9IGltbSAqLwotLSAKMi4xLjAKCgpGcm9tIDQ1YmQzNzlkNGYzZWEwODM3 OGM3MWE1NjQ1NGVlZTVhYTBiNzRhMDUgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCkZyb206IEFs ZXhlaSBTdGFyb3ZvaXRvdiA8YXN0QHBsdW1ncmlkLmNvbT4KRGF0ZTogRnJpLCAyMiBNYXkgMjAx NSAxNTo0Mjo1NSAtMDcwMApTdWJqZWN0OiBbUEFUQ0ggMDMvMjddIHg4NjogYnBmX2ppdDogZml4 IGNvbXBpbGF0aW9uIG9mIGxhcmdlIGJwZiBwcm9ncmFtcwoKWyBVcHN0cmVhbSBjb21taXQgM2Y3 MzUyYmYyMWY4ZmQ3YmEzZTJmY2VmOTQ4ODc1NmYxODhlMTJiZSBdCgp4ODYgaGFzIHZhcmlhYmxl IGxlbmd0aCBlbmNvZGluZy4geDg2IEpJVCBjb21waWxlciBpcyB0cnlpbmcKdG8gcGljayB0aGUg c2hvcnRlc3QgZW5jb2RpbmcgZm9yIGdpdmVuIGJwZiBpbnN0cnVjdGlvbi4KV2hpbGUgZG9pbmcg c28gdGhlIGp1bXAgdGFyZ2V0cyBhcmUgY2hhbmdpbmcsIHNvIEpJVCBpcyBkb2luZwptdWx0aXBs ZSBwYXNzZXMgb3ZlciB0aGUgcHJvZ3JhbS4gVHlwaWNhbCBwcm9ncmFtIG5lZWRzIDMgcGFzc2Vz LgpTb21lIHZlcnkgc2hvcnQgcHJvZ3JhbXMgY29udmVyZ2Ugd2l0aCAyIHBhc3Nlcy4gTGFyZ2Ug cHJvZ3JhbXMKbWF5IG5lZWQgNCBvciA1LiBCdXQgc3BlY2lhbGx5IGNyYWZ0ZWQgYnBmIHByb2dy YW1zIG1heSBoaXQgdGhlCnBhc3MgbGltaXQgYW5kIGlmIHRoZSBwcm9ncmFtIGNvbnZlcmdlcyBv biB0aGUgbGFzdCBpdGVyYXRpb24KdGhlIEpJVCBjb21waWxlciB3aWxsIGJlIHByb2R1Y2luZyBh biBpbWFnZSBmdWxsIG9mICdpbnQgMycgaW5zbnMuCkZpeCB0aGlzIGNvcm5lciBjYXNlIGJ5IGRv aW5nIGZpbmFsIGl0ZXJhdGlvbiBvdmVyIGJwZiBwcm9ncmFtLgoKRml4ZXM6IDBhMTQ4NDJmNWEz YyAoIm5ldDogZmlsdGVyOiBKdXN0IEluIFRpbWUgY29tcGlsZXIgZm9yIHg4Ni02NCIpClJlcG9y dGVkLWJ5OiBEYW5pZWwgQm9ya21hbm4gPGRhbmllbEBpb2dlYXJib3gubmV0PgpTaWduZWQtb2Zm LWJ5OiBBbGV4ZWkgU3Rhcm92b2l0b3YgPGFzdEBwbHVtZ3JpZC5jb20+ClRlc3RlZC1ieTogRGFu aWVsIEJvcmttYW5uIDxkYW5pZWxAaW9nZWFyYm94Lm5ldD4KQWNrZWQtYnk6IERhbmllbCBCb3Jr bWFubiA8ZGFuaWVsQGlvZ2VhcmJveC5uZXQ+ClNpZ25lZC1vZmYtYnk6IERhdmlkIFMuIE1pbGxl ciA8ZGF2ZW1AZGF2ZW1sb2Z0Lm5ldD4KLS0tCiBhcmNoL3g4Ni9uZXQvYnBmX2ppdF9jb21wLmMg fCA3ICsrKysrKy0KIDEgZmlsZSBjaGFuZ2VkLCA2IGluc2VydGlvbnMoKyksIDEgZGVsZXRpb24o LSkKCmRpZmYgLS1naXQgYS9hcmNoL3g4Ni9uZXQvYnBmX2ppdF9jb21wLmMgYi9hcmNoL3g4Ni9u ZXQvYnBmX2ppdF9jb21wLmMKaW5kZXggOTlmNzYxMC4uZGRlZmY0OCAxMDA2NDQKLS0tIGEvYXJj aC94ODYvbmV0L2JwZl9qaXRfY29tcC5jCisrKyBiL2FyY2gveDg2L25ldC9icGZfaml0X2NvbXAu YwpAQCAtOTY2LDcgKzk2NiwxMiBAQCB2b2lkIGJwZl9pbnRfaml0X2NvbXBpbGUoc3RydWN0IGJw Zl9wcm9nICpwcm9nKQogCX0KIAljdHguY2xlYW51cF9hZGRyID0gcHJvZ2xlbjsKIAotCWZvciAo cGFzcyA9IDA7IHBhc3MgPCAxMDsgcGFzcysrKSB7CisJLyogSklUZWQgaW1hZ2Ugc2hyaW5rcyB3 aXRoIGV2ZXJ5IHBhc3MgYW5kIHRoZSBsb29wIGl0ZXJhdGVzCisJICogdW50aWwgdGhlIGltYWdl IHN0b3BzIHNocmlua2luZy4gVmVyeSBsYXJnZSBicGYgcHJvZ3JhbXMKKwkgKiBtYXkgY29udmVy Z2Ugb24gdGhlIGxhc3QgcGFzcy4gSW4gc3VjaCBjYXNlIGRvIG9uZSBtb3JlCisJICogcGFzcyB0 byBlbWl0IHRoZSBmaW5hbCBpbWFnZQorCSAqLworCWZvciAocGFzcyA9IDA7IHBhc3MgPCAxMCB8 fCBpbWFnZTsgcGFzcysrKSB7CiAJCXByb2dsZW4gPSBkb19qaXQocHJvZywgYWRkcnMsIGltYWdl LCBvbGRwcm9nbGVuLCAmY3R4KTsKIAkJaWYgKHByb2dsZW4gPD0gMCkgewogCQkJaW1hZ2UgPSBO VUxMOwotLSAKMi4xLjAKCgpGcm9tIDUzM2QxMDQ4ODQ3YjE3MGYyOThiZDkxMzEzYmU5Yjg1MDdl NTE5MDkgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCkZyb206IEZsb3JpYW4gRmFpbmVsbGkgPGYu ZmFpbmVsbGlAZ21haWwuY29tPgpEYXRlOiBGcmksIDE1IE1heSAyMDE1IDE2OjMwOjQxIC0wNzAw ClN1YmplY3Q6IFtQQVRDSCAwNC8yN10gbmV0OiBwaHk6IEFsbG93IEVFRSBmb3IgYWxsIFJHTUlJ IHZhcmlhbnRzCgpbIFVwc3RyZWFtIGNvbW1pdCA3ZTE0MDY5NjUxNTkxYzgxMDQ2ZmZhZWMxM2Mz ZGFjOGNiNzBmNWZiIF0KClJHTUlJIGludGVyZmFjZXMgY29tZSBpbiBtdWx0aXBsZSBmbGF2b3Jz OiBSR01JSSB3aXRoIHRyYW5zbWl0IG9yCnJlY2VpdmUgaW50ZXJuYWwgZGVsYXksIG5vIGRlbGF5 cyBhdCBhbGwsIG9yIGRlbGF5cyBpbiBib3RoIGRpcmVjdGlvbi4KClRoaXMgY2hhbmdlIGV4dGVu ZHMgdGhlIGluaXRpYWwgY2hlY2sgZm9yIFBIWV9JTlRFUkZBQ0VfTU9ERV9SR01JSSB0bwpjb3Zl ciBhbGwgb2YgdGhlc2UgdmFyaWFudHMgc2luY2UgRUVFIHNob3VsZCBiZSBhbGxvd2VkIGZvciBh bnkgb2YgdGhlc2UKbW9kZXMsIHNpbmNlIGl0IGlzIGEgcHJvcGVydHkgb2YgdGhlIFJHTUlJLCBo ZW5jZSBHaWdhYml0IFBIWSBjYXBhYmlsaXR5Cm1vcmUgdGhhbiB0aGUgUkdNSUkgZWxlY3RyaWNh bCBpbnRlcmZhY2UgYW5kIGl0cyBkZWxheXMuCgpGaXhlczogYTU5YTRkMTkyMTY2ICgicGh5OiBh ZGQgdGhlIEVFRSBzdXBwb3J0IGFuZCB0aGUgd2F5IHRvIGFjY2VzcyB0byB0aGUgTU1EIHJlZ2lz dGVycyIpClNpZ25lZC1vZmYtYnk6IEZsb3JpYW4gRmFpbmVsbGkgPGYuZmFpbmVsbGlAZ21haWwu Y29tPgpTaWduZWQtb2ZmLWJ5OiBEYXZpZCBTLiBNaWxsZXIgPGRhdmVtQGRhdmVtbG9mdC5uZXQ+ Ci0tLQogZHJpdmVycy9uZXQvcGh5L3BoeS5jIHwgNyArKysrLS0tCiAxIGZpbGUgY2hhbmdlZCwg NCBpbnNlcnRpb25zKCspLCAzIGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0 L3BoeS9waHkuYyBiL2RyaXZlcnMvbmV0L3BoeS9waHkuYwppbmRleCA1MmNkOGRiLi43NTdmMjhh IDEwMDY0NAotLS0gYS9kcml2ZXJzL25ldC9waHkvcGh5LmMKKysrIGIvZHJpdmVycy9uZXQvcGh5 L3BoeS5jCkBAIC0xMDUzLDEzICsxMDUzLDE0IEBAIGludCBwaHlfaW5pdF9lZWUoc3RydWN0IHBo eV9kZXZpY2UgKnBoeWRldiwgYm9vbCBjbGtfc3RvcF9lbmFibGUpCiB7CiAJLyogQWNjb3JkaW5n IHRvIDgwMi4zYXosdGhlIEVFRSBpcyBzdXBwb3J0ZWQgb25seSBpbiBmdWxsIGR1cGxleC1tb2Rl LgogCSAqIEFsc28gRUVFIGZlYXR1cmUgaXMgYWN0aXZlIHdoZW4gY29yZSBpcyBvcGVyYXRpbmcg d2l0aCBNSUksIEdNSUkKLQkgKiBvciBSR01JSS4gSW50ZXJuYWwgUEhZcyBhcmUgYWxzbyBhbGxv d2VkIHRvIHByb2NlZWQgYW5kIHNob3VsZAotCSAqIHJldHVybiBhbiBlcnJvciBpZiB0aGV5IGRv IG5vdCBzdXBwb3J0IEVFRS4KKwkgKiBvciBSR01JSSAoYWxsIGtpbmRzKS4gSW50ZXJuYWwgUEhZ cyBhcmUgYWxzbyBhbGxvd2VkIHRvIHByb2NlZWQgYW5kCisJICogc2hvdWxkIHJldHVybiBhbiBl cnJvciBpZiB0aGV5IGRvIG5vdCBzdXBwb3J0IEVFRS4KIAkgKi8KIAlpZiAoKHBoeWRldi0+ZHVw bGV4ID09IERVUExFWF9GVUxMKSAmJgogCSAgICAoKHBoeWRldi0+aW50ZXJmYWNlID09IFBIWV9J TlRFUkZBQ0VfTU9ERV9NSUkpIHx8CiAJICAgIChwaHlkZXYtPmludGVyZmFjZSA9PSBQSFlfSU5U RVJGQUNFX01PREVfR01JSSkgfHwKLQkgICAgKHBoeWRldi0+aW50ZXJmYWNlID09IFBIWV9JTlRF UkZBQ0VfTU9ERV9SR01JSSkgfHwKKwkgICAgKHBoeWRldi0+aW50ZXJmYWNlID49IFBIWV9JTlRF UkZBQ0VfTU9ERV9SR01JSSAmJgorCSAgICAgcGh5ZGV2LT5pbnRlcmZhY2UgPD0gUEhZX0lOVEVS RkFDRV9NT0RFX1JHTUlJX1RYSUQpIHx8CiAJICAgICBwaHlfaXNfaW50ZXJuYWwocGh5ZGV2KSkp IHsKIAkJaW50IGVlZV9scCwgZWVlX2NhcCwgZWVlX2FkdjsKIAkJdTMyIGxwLCBjYXAsIGFkdjsK LS0gCjIuMS4wCgoKRnJvbSA5YjY3ZjI4MWIyZTI5N2YzOGRhMGRlYTMxOTg2YTEyZWViZWYwNzI2 IE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBIZXJiZXJ0IFh1IDxoZXJiZXJ0QGdvbmRv ci5hcGFuYS5vcmcuYXU+CkRhdGU6IFNhdCwgMTYgTWF5IDIwMTUgMjE6NTA6MjggKzA4MDAKU3Vi amVjdDogW1BBVENIIDA1LzI3XSBuZXRsaW5rOiBSZXNldCBwb3J0aWQgYWZ0ZXIgbmV0bGlua19p bnNlcnQgZmFpbHVyZQoKWyBVcHN0cmVhbSBjb21taXQgYzBiYjA3ZGY3ZDk4MWU0MDkxNDMyNzU0 ZTMwYzljNzIwZTJjMGM3OCBdCgpUaGUgY29tbWl0IGM1YWRkZTk0NjhiMDcxNGEwNTFlYWM3Zjk2 NjZmMjNlYjEwYjYxZjcgKCJuZXRsaW5rOgplbGltaW5hdGUgbmxfc2tfaGFzaF9sb2NrIikgYnJl YWtzIHRoZSBhdXRvYmluZCByZXRyeSBtZWNoYW5pc20KYmVjYXVzZSBpdCBkb2Vzbid0IHJlc2V0 IHBvcnRpZCBhZnRlciBhIGZhaWxlZCBuZXRsaW5rX2luc2VydC4KClRoaXMgbWVhbnMgdGhhdCBz aG91bGQgYXV0b2JpbmQgZmFpbCB0aGUgZmlyc3QgdGltZSBhcm91bmQsIHRoZW4KdGhlIHNvY2tl dCB3aWxsIGJlIHN0dWNrIGluIGxpbWJvIGFzIGl0IGNhbiBuZXZlciBiZSBib3VuZCBhZ2Fpbgpz aW5jZSBpdCBhbHJlYWR5IGhhcyBhIG5vbi16ZXJvIHBvcnRpZC4KCkZpeGVzOiBjNWFkZGU5NDY4 YjAgKCJuZXRsaW5rOiBlbGltaW5hdGUgbmxfc2tfaGFzaF9sb2NrIikKU2lnbmVkLW9mZi1ieTog SGVyYmVydCBYdSA8aGVyYmVydEBnb25kb3IuYXBhbmEub3JnLmF1PgpTaWduZWQtb2ZmLWJ5OiBE YXZpZCBTLiBNaWxsZXIgPGRhdmVtQGRhdmVtbG9mdC5uZXQ+Ci0tLQogbmV0L25ldGxpbmsvYWZf bmV0bGluay5jIHwgMSArCiAxIGZpbGUgY2hhbmdlZCwgMSBpbnNlcnRpb24oKykKCmRpZmYgLS1n aXQgYS9uZXQvbmV0bGluay9hZl9uZXRsaW5rLmMgYi9uZXQvbmV0bGluay9hZl9uZXRsaW5rLmMK aW5kZXggZDFkN2E4MS4uZTk4ZGM1MyAxMDA2NDQKLS0tIGEvbmV0L25ldGxpbmsvYWZfbmV0bGlu ay5jCisrKyBiL25ldC9uZXRsaW5rL2FmX25ldGxpbmsuYwpAQCAtMTA2OSw2ICsxMDY5LDcgQEAg c3RhdGljIGludCBuZXRsaW5rX2luc2VydChzdHJ1Y3Qgc29jayAqc2ssIHUzMiBwb3J0aWQpCiAJ ZXJyID0gMDsKIAlpZiAoIV9fbmV0bGlua19pbnNlcnQodGFibGUsIHNrKSkgewogCQllcnIgPSAt RUFERFJJTlVTRTsKKwkJbmxrX3NrKHNrKS0+cG9ydGlkID0gMDsKIAkJc29ja19wdXQoc2spOwog CX0KIAotLSAKMi4xLjAKCgpGcm9tIDk5YTdiNjdjN2Y0NGQ2YzI0YWQ2MzEzYWU1OTYyN2ZjZDQy ODNhNzUgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCkZyb206IE5pY29sYXMgRGljaHRlbCA8bmlj b2xhcy5kaWNodGVsQDZ3aW5kLmNvbT4KRGF0ZTogV2VkLCAxMyBNYXkgMjAxNSAxNDoxOTo0MiAr MDIwMApTdWJqZWN0OiBbUEFUQ0ggMDYvMjddIHJ0bmwvYm9uZDogZG9uJ3Qgc2VuZCBydG5sIG1z ZyBmb3IgdW5yZWdpc3RlcmVkIGlmYWNlCgpbIFVwc3RyZWFtIGNvbW1pdCBlZDJhODBhYjdiNzZm MTFhZjBiMmM2MjU1NzA5YzRlYmYxNjRiNjY3IF0KCkJlZm9yZSB0aGUgcGF0Y2gsIHRoZSBjb21t YW5kICdpcCBsaW5rIGFkZCBib25kMiB0eXBlIGJvbmQgbW9kZSA4MDIuM2FkJwpjYXVzZXMgdGhl IGtlcm5lbCB0byBzZW5kIGEgcnRubCBtZXNzYWdlIGZvciB0aGUgYm9uZDIgaW50ZXJmYWNlLCB3 aXRoIGFuCmlmaW5kZXggMC4KCidpcCBtb25pdG9yJyBzaG93czoKMDogYm9uZDI6IDxCUk9BRENB U1QsTVVMVElDQVNULE1BU1RFUj4gbXR1IDE1MDAgc3RhdGUgRE9XTiBncm91cCBkZWZhdWx0CiAg ICBsaW5rL2V0aGVyIDAwOjAwOjAwOjAwOjAwOjAwIGJyZCBmZjpmZjpmZjpmZjpmZjpmZgo5OiBi b25kMkBOT05FOiA8QlJPQURDQVNULE1VTFRJQ0FTVCxNQVNURVI+IG10dSAxNTAwIHFkaXNjIG5v b3Agc3RhdGUgRE9XTiBncm91cCBkZWZhdWx0CiAgICBsaW5rL2V0aGVyIGVhOjNlOjFmOjUzOjky OjdiIGJyZCBmZjpmZjpmZjpmZjpmZjpmZgpbc25pcF0KClRoZSBwYXRjaCBmaXhlcyB0aGUgc3Bv dHRlZCBidWcgYnkgY2hlY2tpbmcgaW4gYm9uZCBkcml2ZXIgaWYgdGhlIGludGVyZmFjZQppcyBy ZWdpc3RlcmVkIGJlZm9yZSBjYWxsaW5nIHRoZSBub3RpZmllciBjaGFpbi4KSXQgYWxzbyBhZGRz IGEgY2hlY2sgaW4gcnRtc2dfaWZpbmZvKCkgdG8gcHJldmVudCB0aGlzIGtpbmQgb2YgYnVnIGlu IHRoZQpmdXR1cmUuCgpGaXhlczogZDQyNjFlNTY1MDAwICgiYm9uZGluZzogY3JlYXRlIG5ldGxp bmsgZXZlbnQgd2hlbiBib25kaW5nIG9wdGlvbiBpcyBjaGFuZ2VkIikKQ0M6IEppcmkgUGlya28g PGppcmlAcmVzbnVsbGkudXM+ClJlcG9ydGVkLWJ5OiBKdWxpZW4gTWV1bmllciA8anVsaWVuLm1l dW5pZXJANndpbmQuY29tPgpTaWduZWQtb2ZmLWJ5OiBOaWNvbGFzIERpY2h0ZWwgPG5pY29sYXMu ZGljaHRlbEA2d2luZC5jb20+ClNpZ25lZC1vZmYtYnk6IERhdmlkIFMuIE1pbGxlciA8ZGF2ZW1A ZGF2ZW1sb2Z0Lm5ldD4KLS0tCiBkcml2ZXJzL25ldC9ib25kaW5nL2JvbmRfb3B0aW9ucy5jIHwg MiArLQogbmV0L2NvcmUvcnRuZXRsaW5rLmMgICAgICAgICAgICAgICB8IDMgKysrCiAyIGZpbGVz IGNoYW5nZWQsIDQgaW5zZXJ0aW9ucygrKSwgMSBkZWxldGlvbigtKQoKZGlmZiAtLWdpdCBhL2Ry aXZlcnMvbmV0L2JvbmRpbmcvYm9uZF9vcHRpb25zLmMgYi9kcml2ZXJzL25ldC9ib25kaW5nL2Jv bmRfb3B0aW9ucy5jCmluZGV4IDRkZjI4OTQuLmU4ZDNjMWQgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMv bmV0L2JvbmRpbmcvYm9uZF9vcHRpb25zLmMKKysrIGIvZHJpdmVycy9uZXQvYm9uZGluZy9ib25k X29wdGlvbnMuYwpAQCAtNjI0LDcgKzYyNCw3IEBAIGludCBfX2JvbmRfb3B0X3NldChzdHJ1Y3Qg Ym9uZGluZyAqYm9uZCwKIG91dDoKIAlpZiAocmV0KQogCQlib25kX29wdF9lcnJvcl9pbnRlcnBy ZXQoYm9uZCwgb3B0LCByZXQsIHZhbCk7Ci0JZWxzZQorCWVsc2UgaWYgKGJvbmQtPmRldi0+cmVn X3N0YXRlID09IE5FVFJFR19SRUdJU1RFUkVEKQogCQljYWxsX25ldGRldmljZV9ub3RpZmllcnMo TkVUREVWX0NIQU5HRUlORk9EQVRBLCBib25kLT5kZXYpOwogCiAJcmV0dXJuIHJldDsKZGlmZiAt LWdpdCBhL25ldC9jb3JlL3J0bmV0bGluay5jIGIvbmV0L2NvcmUvcnRuZXRsaW5rLmMKaW5kZXgg N2ViZWQ1NS4uYTJiOTBlMSAxMDA2NDQKLS0tIGEvbmV0L2NvcmUvcnRuZXRsaW5rLmMKKysrIGIv bmV0L2NvcmUvcnRuZXRsaW5rLmMKQEAgLTIzMzcsNiArMjMzNyw5IEBAIHZvaWQgcnRtc2dfaWZp bmZvKGludCB0eXBlLCBzdHJ1Y3QgbmV0X2RldmljZSAqZGV2LCB1bnNpZ25lZCBpbnQgY2hhbmdl LAogewogCXN0cnVjdCBza19idWZmICpza2I7CiAKKwlpZiAoZGV2LT5yZWdfc3RhdGUgIT0gTkVU UkVHX1JFR0lTVEVSRUQpCisJCXJldHVybjsKKwogCXNrYiA9IHJ0bXNnX2lmaW5mb19idWlsZF9z a2IodHlwZSwgZGV2LCBjaGFuZ2UsIGZsYWdzKTsKIAlpZiAoc2tiKQogCQlydG1zZ19pZmluZm9f c2VuZChza2IsIGRldiwgZmxhZ3MpOwotLSAKMi4xLjAKCgpGcm9tIDc2ZDI3ZTJkM2MwN2MxODZj MWMxMzA0NjgwMmVjOGU2ODVkZTJiZTAgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCkZyb206IEZs b3JlbnQgRm91cmNvdCA8ZmxvcmVudC5mb3VyY290QGVuc3QtYnJldGFnbmUuZnI+CkRhdGU6IFNh dCwgMTYgTWF5IDIwMTUgMDA6MjQ6NTkgKzAyMDAKU3ViamVjdDogW1BBVENIIDA3LzI3XSB0Y3Av aXB2NjogZml4IGZsb3cgbGFiZWwgc2V0dGluZyBpbiBUSU1FX1dBSVQgc3RhdGUKClsgVXBzdHJl YW0gY29tbWl0IDIxODU4Y2QwMmRhYmNmMjkwNTY0Y2JmNDc2OWIxMDFlYmE1NGQ3YmIgXQoKY29t bWl0IDFkMTNhOTZjNzRmYyAoImlwdjY6IHRjcDogZml4IGZsb3dsYWJlbCB2YWx1ZSBpbiBBQ0sg bWVzc2FnZXMKc2VuZCBmcm9tIFRJTUVfV0FJVCIpIGFkZGVkIHRoZSBmbG93IGxhYmVsIGluIHRo ZSBsYXN0IFRDUCBwYWNrZXRzLgpVbmZvcnR1bmF0ZWx5LCBpdCB3YXMgbm90IGNhc3RlZCBwcm9w ZXJseS4KClRoaXMgcGF0Y2ggcmVwbGFjZSB0aGUgYnVnZ3kgc2hpZnQgd2l0aCBiZTMyX3RvX2Nw dS9jcHVfdG9fYmUzMi4KCkZpeGVzOiAxZDEzYTk2Yzc0ZmMgKCJpcHY2OiB0Y3A6IGZpeCBmbG93 bGFiZWwgdmFsdWUgaW4gQUNLIG1lc3NhZ2VzIikKUmVwb3J0ZWQtYnk6IEVyaWMgRHVtYXpldCA8 ZXJpYy5kdW1hemV0QGdtYWlsLmNvbT4KU2lnbmVkLW9mZi1ieTogRmxvcmVudCBGb3VyY290IDxm bG9yZW50LmZvdXJjb3RAZW5zdC1icmV0YWduZS5mcj4KQWNrZWQtYnk6IEVyaWMgRHVtYXpldCA8 ZWR1bWF6ZXRAZ29vZ2xlLmNvbT4KU2lnbmVkLW9mZi1ieTogRGF2aWQgUy4gTWlsbGVyIDxkYXZl bUBkYXZlbWxvZnQubmV0PgotLS0KIG5ldC9pcHY0L3RjcF9taW5pc29ja3MuYyB8IDIgKy0KIG5l dC9pcHY2L3RjcF9pcHY2LmMgICAgICB8IDIgKy0KIDIgZmlsZXMgY2hhbmdlZCwgMiBpbnNlcnRp b25zKCspLCAyIGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL25ldC9pcHY0L3RjcF9taW5pc29j a3MuYyBiL25ldC9pcHY0L3RjcF9taW5pc29ja3MuYwppbmRleCBkZDExYWM3Li4xMTQzNzQ4IDEw MDY0NAotLS0gYS9uZXQvaXB2NC90Y3BfbWluaXNvY2tzLmMKKysrIGIvbmV0L2lwdjQvdGNwX21p bmlzb2Nrcy5jCkBAIC0zMTYsNyArMzE2LDcgQEAgdm9pZCB0Y3BfdGltZV93YWl0KHN0cnVjdCBz b2NrICpzaywgaW50IHN0YXRlLCBpbnQgdGltZW8pCiAJCQl0dy0+dHdfdjZfZGFkZHIgPSBzay0+ c2tfdjZfZGFkZHI7CiAJCQl0dy0+dHdfdjZfcmN2X3NhZGRyID0gc2stPnNrX3Y2X3Jjdl9zYWRk cjsKIAkJCXR3LT50d190Y2xhc3MgPSBucC0+dGNsYXNzOwotCQkJdHctPnR3X2Zsb3dsYWJlbCA9 IG5wLT5mbG93X2xhYmVsID4+IDEyOworCQkJdHctPnR3X2Zsb3dsYWJlbCA9IGJlMzJfdG9fY3B1 KG5wLT5mbG93X2xhYmVsICYgSVBWNl9GTE9XTEFCRUxfTUFTSyk7CiAJCQl0dy0+dHdfaXB2Nm9u bHkgPSBzay0+c2tfaXB2Nm9ubHk7CiAJCX0KICNlbmRpZgpkaWZmIC0tZ2l0IGEvbmV0L2lwdjYv dGNwX2lwdjYuYyBiL25ldC9pcHY2L3RjcF9pcHY2LmMKaW5kZXggMWY1ZTYyMi4uNWNhM2JjOCAx MDA2NDQKLS0tIGEvbmV0L2lwdjYvdGNwX2lwdjYuYworKysgYi9uZXQvaXB2Ni90Y3BfaXB2Ni5j CkBAIC05NzUsNyArOTc1LDcgQEAgc3RhdGljIHZvaWQgdGNwX3Y2X3RpbWV3YWl0X2FjayhzdHJ1 Y3Qgc29jayAqc2ssIHN0cnVjdCBza19idWZmICpza2IpCiAJCQl0Y3B0dy0+dHdfcmN2X3duZCA+ PiB0dy0+dHdfcmN2X3dzY2FsZSwKIAkJCXRjcF90aW1lX3N0YW1wICsgdGNwdHctPnR3X3RzX29m ZnNldCwKIAkJCXRjcHR3LT50d190c19yZWNlbnQsIHR3LT50d19ib3VuZF9kZXZfaWYsIHRjcF90 d3NrX21kNV9rZXkodGNwdHcpLAotCQkJdHctPnR3X3RjbGFzcywgKHR3LT50d19mbG93bGFiZWwg PDwgMTIpKTsKKwkJCXR3LT50d190Y2xhc3MsIGNwdV90b19iZTMyKHR3LT50d19mbG93bGFiZWwp KTsKIAogCWluZXRfdHdza19wdXQodHcpOwogfQotLSAKMi4xLjAKCgpGcm9tIDM1OTdjNWQ1Zjg0 YWE0YzY5NGUzMjU3ZWEwNTdhMjc0Y2ZkZTdjYjUgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCkZy b206IEhlbm5pbmcgUm9nZ2UgPGhyb2dnZUBnbWFpbC5jb20+CkRhdGU6IE1vbiwgMTggTWF5IDIw MTUgMjE6MDg6NDkgKzAyMDAKU3ViamVjdDogW1BBVENIIDA4LzI3XSBuZXQvaXB2Ni91ZHA6IEZp eCBpcHY2IG11bHRpY2FzdCBzb2NrZXQgZmlsdGVyCiByZWdyZXNzaW9uCgpbIFVwc3RyZWFtIGNv bW1pdCAzM2I0YjAxNWUxYTFjYTdhOGZkY2U0MGFmNWU3MTY0MmE4ZWEzNTVjIF0KCkNvbW1pdCA8 NWNmM2Q0NjE5MmZjPiAoInVkcDogU2ltcGxpZnlfX3VkcCpfbGliX21jYXN0X2RlbGl2ZXIiKQpz aW1wbGlmaWVkIHRoZSBmaWx0ZXIgZm9yIGluY29taW5nIElQdjYgbXVsdGljYXN0IGJ1dCByZW1v dmVkCnRoZSBjaGVjayBvZiB0aGUgbG9jYWwgc29ja2V0IGFkZHJlc3MgYW5kIHRoZSBVRFAgZGVz dGluYXRpb24KYWRkcmVzcy4KClRoaXMgcGF0Y2ggcmVzdG9yZXMgdGhlIGZpbHRlciB0byBwcmV2 ZW50IHNvY2tldHMgYm91bmQgdG8gYSBJUHY2Cm11bHRpY2FzdCBJUCB0byByZWNlaXZlIG90aGVy IFVEUCB0cmFmZmljIGxpbmsgdW5pY2FzdC4KClNpZ25lZC1vZmYtYnk6IEhlbm5pbmcgUm9nZ2Ug PGhyb2dnZUBnbWFpbC5jb20+CkZpeGVzOiA1Y2YzZDQ2MTkyZmMgKCJ1ZHA6IFNpbXBsaWZ5X191 ZHAqX2xpYl9tY2FzdF9kZWxpdmVyIikKQ2M6ICJEYXZpZCBTLiBNaWxsZXIiIDxkYXZlbUBkYXZl bWxvZnQubmV0PgpBY2tlZC1ieTogRXJpYyBEdW1hemV0IDxlZHVtYXpldEBnb29nbGUuY29tPgpT aWduZWQtb2ZmLWJ5OiBEYXZpZCBTLiBNaWxsZXIgPGRhdmVtQGRhdmVtbG9mdC5uZXQ+Ci0tLQog bmV0L2lwdjYvdWRwLmMgfCA0ICsrKy0KIDEgZmlsZSBjaGFuZ2VkLCAzIGluc2VydGlvbnMoKyks IDEgZGVsZXRpb24oLSkKCmRpZmYgLS1naXQgYS9uZXQvaXB2Ni91ZHAuYyBiL25ldC9pcHY2L3Vk cC5jCmluZGV4IGQwNDhkNDYuLjBjODBjYTcgMTAwNjQ0Ci0tLSBhL25ldC9pcHY2L3VkcC5jCisr KyBiL25ldC9pcHY2L3VkcC5jCkBAIC03MzQsNyArNzM0LDkgQEAgc3RhdGljIGJvb2wgX191ZHBf djZfaXNfbWNhc3Rfc29jayhzdHJ1Y3QgbmV0ICpuZXQsIHN0cnVjdCBzb2NrICpzaywKIAkgICAg KGluZXQtPmluZXRfZHBvcnQgJiYgaW5ldC0+aW5ldF9kcG9ydCAhPSBybXRfcG9ydCkgfHwKIAkg ICAgKCFpcHY2X2FkZHJfYW55KCZzay0+c2tfdjZfZGFkZHIpICYmCiAJCSAgICAhaXB2Nl9hZGRy X2VxdWFsKCZzay0+c2tfdjZfZGFkZHIsIHJtdF9hZGRyKSkgfHwKLQkgICAgKHNrLT5za19ib3Vu ZF9kZXZfaWYgJiYgc2stPnNrX2JvdW5kX2Rldl9pZiAhPSBkaWYpKQorCSAgICAoc2stPnNrX2Jv dW5kX2Rldl9pZiAmJiBzay0+c2tfYm91bmRfZGV2X2lmICE9IGRpZikgfHwKKwkgICAgKCFpcHY2 X2FkZHJfYW55KCZzay0+c2tfdjZfcmN2X3NhZGRyKSAmJgorCQkgICAgIWlwdjZfYWRkcl9lcXVh bCgmc2stPnNrX3Y2X3Jjdl9zYWRkciwgbG9jX2FkZHIpKSkKIAkJcmV0dXJuIGZhbHNlOwogCWlm ICghaW5ldDZfbWNfY2hlY2soc2ssIGxvY19hZGRyLCBybXRfYWRkcikpCiAJCXJldHVybiBmYWxz ZTsKLS0gCjIuMS4wCgoKRnJvbSBmOGE2ZDU2MmE5NzM1ZDkyM2RhMTg5OTljOGM4YmY4M2UzODJl NDZkIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBEYW5pZWwgQm9ya21hbm4gPGRhbmll bEBpb2dlYXJib3gubmV0PgpEYXRlOiBXZWQsIDIwIE1heSAyMDE1IDE3OjEzOjMzICswMjAwClN1 YmplY3Q6IFtQQVRDSCAwOS8yN10gbmV0OiBzY2hlZDogZml4IGNhbGxfcmN1KCkgcmFjZSBvbiBj bGFzc2lmaWVyIG1vZHVsZQogdW5sb2FkcwoKWyBVcHN0cmVhbSBjb21taXQgYzc4ZTE3NDZkM2Fk N2Q1NDhiZGYzZmU0OTE4OThjYzQ1MzkxMWE0OSBdCgpWaWpheSByZXBvcnRlZCB0aGF0IGEgbG9v cCBhcyBzaW1wbGUgYXMgLi4uCgogIHdoaWxlIHRydWU7IGRvCiAgICB0YyBxZGlzYyBhZGQgZGV2 IGZvbyByb290IGhhbmRsZSAxOiBwcmlvCiAgICB0YyBmaWx0ZXIgYWRkIGRldiBmb28gcGFyZW50 IDE6IHUzMiBtYXRjaCB1MzIgMCAwICBmbG93aWQgMQogICAgdGMgcWRpc2MgZGVsIGRldiBmb28g cm9vdAogICAgcm1tb2QgY2xzX3UzMgogIGRvbmUKCi4uLiB3aWxsIHBhbmljIHRoZSBrZXJuZWwu IE1vcmVvdmVyLCBoZSBiaXNlY3RlZCB0aGUgY2hhbmdlCmFwcGFyZW50bHkgaW50cm9kdWNpbmcg aXQgdG8gNzhmZDFkMGFiMDcyICgibmV0bGluazogUmUtYWRkCmxvY2tpbmcgdG8gbmV0bGlua19s b29rdXAoKSBhbmQgc2VxIHdhbGtlciIpLgoKVGhlIHJlbW92YWwgb2Ygc3luY2hyb25pemVfbmV0 KCkgZnJvbSB0aGUgbmV0bGluayBzb2NrZXQKdHJpZ2dlcmluZyB0aGUgcWRpc2MgdG8gYmUgcmVt b3ZlZCwgc2VlbXMgdG8gaGF2ZSB1bmNvdmVyZWQKYW4gUkNVIHJlc3AuIG1vZHVsZSByZWZlcmVu Y2UgY291bnQgcmFjZSBmcm9tIHRoZSB0YyBBUEkuCkdpdmVuIHRoYXQgUkNVIGNvbnZlcnNpb24g d2FzIGRvbmUgYWZ0ZXIgZTM0MTY5NGUzZWI1ICgibmV0bGluazoKQ29udmVydCBuZXRsaW5rX2xv b2t1cCgpIHRvIHVzZSBSQ1UgcHJvdGVjdGVkIGhhc2ggdGFibGUiKQp3aGljaCBhZGRlZCB0aGUg c3luY2hyb25pemVfbmV0KCkgb3JpZ2luYWxseSwgb2NjYXNpb24gb2YKaGl0dGluZyB0aGUgYnVn IHdhcyBsZXNzIGxpa2VseSAobm90IGltcG9zc2libGUgdGhvdWdoKToKCldoZW4gcWRpc2NzIHRo YXQgaSkgc3VwcG9ydCBhdHRhY2hpbmcgY2xhc3NpZmllcnMgYW5kLAppaSkgaGF2ZSBhdCBsZWFz dCBvbmUgb2YgdGhlbSBhdHRhY2hlZCwgZ2V0IGRlbGV0ZWQsIHRoZXkKaW52b2tlIHRjZl9kZXN0 cm95X2NoYWluKCksIGFuZCB0aHVzIGNhbGwgaW50byAtPmRlc3Ryb3koKQpoYW5kbGVyIGZyb20g YSBjbGFzc2lmaWVyIG1vZHVsZS4KCkFmdGVyIFJDVSBjb252ZXJzaW9uLCBhbGwgY2xhc3NpZmll ciB0aGF0IGhhdmUgYW4gaW50ZXJuYWwKcHJpbyBsaXN0LCB1bmxpbmsgdGhlbSBhbmQgaW5pdGlh dGUgZnJlZWluZyB2aWEgY2FsbF9yY3UoKQpkZWZlcnJhbC4KCk1lYW5oaWxlLCB0Y2ZfZGVzdHJv eSgpIHJlbGVhc2VzIGFscmVhZHkgcmVmZXJlbmNlIHRvIHRoZQp0cC0+b3BzLT5vd25lciBtb2R1 bGUgYmVmb3JlIHRoZSBxdWV1ZWQgUkNVIGNhbGxiYWNrIGhhbmRsZXIKaGFzIGJlZW4gaW52b2tl ZC4KClN1YnNlcXVlbnQgcm1tb2Qgb24gdGhlIGNsYXNzaWZpZXIgbW9kdWxlIGlzIHRoZW4gbm90 IHByZXZlbnRlZApzaW5jZSBhbGwgbW9kdWxlIHJlZmVyZW5jZXMgYXJlIGFscmVhZHkgZHJvcHBl ZC4KCkJ5IHRoZSB0aW1lLCB0aGUga2VybmVsIGludm9rZXMgdGhlIFJDVSBjYWxsYmFjayBoYW5k bGVyIGZyb20KdGhlIG1vZHVsZSwgdGhhdCBmdW5jdGlvbiBhZGRyZXNzIGlzIHRoZW4gaW52YWxp ZC4KCk9uZSB3YXkgdG8gZml4IGl0IHdvdWxkIGJlIHRvIGFkZCBhbiByY3VfYmFycmllcigpIHRv CnVucmVnaXN0ZXJfdGNmX3Byb3RvX29wcygpIHRvIHdhaXQgZm9yIGFsbCBwZW5kaW5nIGNhbGxf cmN1KClzCnRvIGNvbXBsZXRlLgoKc3luY2hyb25pemVfcmN1KCkgaXMgbm90IGFwcHJvcHJpYXRl IGFzIHVuZGVyIGhlYXZ5IFJDVQpjYWxsYmFjayBsb2FkLCByZWdpc3RlcmVkIGNhbGxfcmN1KClz IGNvdWxkIGJlIGRlZmVycmVkCmxvbmdlciB0aGFuIGEgZ3JhY2UgcGVyaW9kLiBJbiBjYXNlIHdl IGRvbid0IGhhdmUgYW55IHBlbmRpbmcKY2FsbF9yY3UoKXMsIHRoZSBiYXJyaWVyIGlzIGFsbG93 ZWQgdG8gcmV0dXJuIGltbWVkaWF0ZWx5LgoKU2luY2Ugd2UgY2FtZSBoZXJlIHZpYSB1bnJlZ2lz dGVyX3RjZl9wcm90b19vcHMoKSwgdGhlcmUKYXJlIG5vIHVzZXJzIG9mIGEgZ2l2ZW4gY2xhc3Np ZmllciBhbnltb3JlLiBGdXJ0aGVyIG5lc3RlZApjYWxsX3JjdSgpcyBwb2ludGluZyBpbnRvIHRo ZSBtb2R1bGUgc3BhY2UgYXJlIG5vdCBiZWluZwpkb25lIGFueXdoZXJlLgoKT25seSBjbHNfYnBm X2RlbGV0ZV9wcm9nKCkgbWF5IHNjaGVkdWxlIGEgd29yayBpdGVtLCB0bwp1bmxvY2sgcGFnZXMg ZXZlbnR1YWxseSwgYnV0IHRoYXQgaXMgbm90IGluIHRoZSByYW5nZS9jb250ZXh0Cm9mIGNsc19i cGYgYW55bW9yZS4KCkZpeGVzOiAyNWQ4YzBkNTVmMjQgKCJuZXQ6IHJjdS1pZnkgdGNmX3Byb3Rv IikKRml4ZXM6IDk4ODhmYWVmZTEzMiAoIm5ldDogc2NoZWQ6IGNsc19iYXNpYyB1c2UgUkNVIikK UmVwb3J0ZWQtYnk6IFZpamF5IFN1YnJhbWFuaWFuIDxzdWJyYW1hbmlhbi52aWpheUBnbWFpbC5j b20+ClNpZ25lZC1vZmYtYnk6IERhbmllbCBCb3JrbWFubiA8ZGFuaWVsQGlvZ2VhcmJveC5uZXQ+ CkNjOiBKb2huIEZhc3RhYmVuZCA8am9obi5yLmZhc3RhYmVuZEBpbnRlbC5jb20+CkNjOiBFcmlj IER1bWF6ZXQgPGVkdW1hemV0QGdvb2dsZS5jb20+CkNjOiBUaG9tYXMgR3JhZiA8dGdyYWZAc3V1 Zy5jaD4KQ2M6IEphbWFsIEhhZGkgU2FsaW0gPGpoc0Btb2phdGF0dS5jb20+CkNjOiBBbGV4ZWkg U3Rhcm92b2l0b3YgPGFzdEBwbHVtZ3JpZC5jb20+ClRlc3RlZC1ieTogVmlqYXkgU3VicmFtYW5p YW4gPHN1YnJhbWFuaWFuLnZpamF5QGdtYWlsLmNvbT4KQWNrZWQtYnk6IEFsZXhlaSBTdGFyb3Zv aXRvdiA8YXN0QHBsdW1ncmlkLmNvbT4KQWNrZWQtYnk6IEVyaWMgRHVtYXpldCA8ZWR1bWF6ZXRA Z29vZ2xlLmNvbT4KU2lnbmVkLW9mZi1ieTogRGF2aWQgUy4gTWlsbGVyIDxkYXZlbUBkYXZlbWxv ZnQubmV0PgotLS0KIG5ldC9zY2hlZC9jbHNfYXBpLmMgfCA1ICsrKysrCiAxIGZpbGUgY2hhbmdl ZCwgNSBpbnNlcnRpb25zKCspCgpkaWZmIC0tZ2l0IGEvbmV0L3NjaGVkL2Nsc19hcGkuYyBiL25l dC9zY2hlZC9jbHNfYXBpLmMKaW5kZXggYmFlZjk4Ny4uZDMzMjhhMSAxMDA2NDQKLS0tIGEvbmV0 L3NjaGVkL2Nsc19hcGkuYworKysgYi9uZXQvc2NoZWQvY2xzX2FwaS5jCkBAIC04MSw2ICs4MSwx MSBAQCBpbnQgdW5yZWdpc3Rlcl90Y2ZfcHJvdG9fb3BzKHN0cnVjdCB0Y2ZfcHJvdG9fb3BzICpv cHMpCiAJc3RydWN0IHRjZl9wcm90b19vcHMgKnQ7CiAJaW50IHJjID0gLUVOT0VOVDsKIAorCS8q IFdhaXQgZm9yIG91dHN0YW5kaW5nIGNhbGxfcmN1KClzLCBpZiBhbnksIGZyb20gYQorCSAqIHRj Zl9wcm90b19vcHMncyBkZXN0cm95KCkgaGFuZGxlci4KKwkgKi8KKwlyY3VfYmFycmllcigpOwor CiAJd3JpdGVfbG9jaygmY2xzX21vZF9sb2NrKTsKIAlsaXN0X2Zvcl9lYWNoX2VudHJ5KHQsICZ0 Y2ZfcHJvdG9fYmFzZSwgaGVhZCkgewogCQlpZiAodCA9PSBvcHMpIHsKLS0gCjIuMS4wCgoKRnJv bSAxODBjY2VhMDE2ODc1MDkwYjcxNzcyZThlZjA2Mjk4MjhmOWEwNmNmIE1vbiBTZXAgMTcgMDA6 MDA6MDAgMjAwMQpGcm9tOiAiRXJpYyBXLiBCaWVkZXJtYW4iIDxlYmllZGVybUB4bWlzc2lvbi5j b20+CkRhdGU6IEZyaSwgMjIgTWF5IDIwMTUgMDQ6NTg6MTIgLTA1MDAKU3ViamVjdDogW1BBVENI IDEwLzI3XSBpcHY0OiBBdm9pZCBjcmFzaGluZyBpbiBpcF9lcnJvcgoKWyBVcHN0cmVhbSBjb21t aXQgMzgxYzc1OWQ5OTE2YzQyOTU5NTE1YWQzNGE2ZDQ2N2UyNGE4OGU5MyBdCgppcF9lcnJvciBk b2VzIG5vdCBjaGVjayBpZiBpbl9kZXYgaXMgTlVMTCBiZWZvcmUgZGVyZWZlcmVuY2luZyBpdC4K CklUaGUgZm9sbG93aW5nIHNlcXVlbmNlIG9mIGNhbGxzIGlzIHBvc3NpYmxlOgpDUFUgQSAgICAg ICAgICAgICAgICAgICAgICAgICAgQ1BVIEIKaXBfcmN2X2ZpbmlzaAogICAgaXBfcm91dGVfaW5w dXRfbm9yZWYoKQogICAgICAgIGlwX3JvdXRlX2lucHV0X3Nsb3coKQogICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgaW5ldGRldl9kZXN0cm95KCkKICAgIGRzdF9pbnB1dCgpCgpXaXRoIHRo ZSByZXN1bHQgdGhhdCBhIG5ldHdvcmsgZGV2aWNlIGNhbiBiZSBkZXN0cm95ZWQgd2hpbGUgcHJv Y2Vzc2luZwphbiBpbnB1dCBwYWNrZXQuCgpBIGNyYXNoIHdhcyB0cmlnZ2VyZWQgd2l0aCBvbmx5 IHVuaWNhc3QgcGFja2V0cyBpbiBmbGlnaHQsIGFuZApmb3J3YXJkaW5nIGVuYWJsZWQgb24gdGhl IG9ubHkgbmV0d29yayBkZXZpY2UuICAgVGhlIGVycm9yIGNvbmRpdGlvbgp3YXMgY3JlYXRlZCBi eSB0aGUgcmVtb3ZhbCBvZiB0aGUgbmV0d29yayBkZXZpY2UuCgpBcyBzdWNoIGl0IGlzIGxpa2Vs eSB0aGUgdGhhdCBlcnJvciBjb2RlIHdhcyAtRUhPU1RVTlJFQUNILCBhbmQgdGhlCmFjdGlvbiB0 YWtlbiBieSBpcF9lcnJvciAoaWYgaW5fZGV2IGhhZCBiZWVuIGFjY2Vzc2libGUpIHdvdWxkIGhh dmUKYmVlbiB0byBub3QgaW5jcmVtZW50IGFueSBjb3VudGVycyBhbmQgdG8gaGF2ZSB0cmllZCBh bmQgbGlrZWx5IGZhaWxlZAp0byBzZW5kIGFuIGljbXAgZXJyb3IgYXMgdGhlIG5ldHdvcmsgZGV2 aWNlIGlzIGdvaW5nIGF3YXkuCgpUaGVyZWZvcmUgaGFuZGxlIHRoaXMgd2VpcmQgY2FzZSBieSBq dXN0IGRyb3BwaW5nIHRoZSBwYWNrZXQgaWYKIWluX2Rldi4gIEl0IHdpbGwgcmVzdWx0IGluIGRy b3BwaW5nIHRoZSBwYWNrZXQgc29vbmVyLCBhbmQgd2lsbCBub3QKcmVzdWx0IGluIGFuIGFjdHVh bCBjaGFuZ2Ugb2YgYmVoYXZpb3IuCgpGaXhlczogMjUxZGE0MTMwMTE1YiAoImlwdjQ6IENhY2hl IGlwX2Vycm9yKCkgcm91dGVzIGV2ZW4gd2hlbiBub3QgZm9yd2FyZGluZy4iKQpSZXBvcnRlZC1i eTogVml0dG9yaW8gR2FtYmFsZXR0YSA8bGludXhidWdzQHZpdHRnYW0ubmV0PgpUZXN0ZWQtYnk6 IFZpdHRvcmlvIEdhbWJhbGV0dGEgPGxpbnV4YnVnc0B2aXR0Z2FtLm5ldD4KU2lnbmVkLW9mZi1i eTogVml0dG9yaW8gR2FtYmFsZXR0YSA8bGludXhidWdzQHZpdHRnYW0ubmV0PgpTaWduZWQtb2Zm LWJ5OiAiRXJpYyBXLiBCaWVkZXJtYW4iIDxlYmllZGVybUB4bWlzc2lvbi5jb20+CkFja2VkLWJ5 OiBFcmljIER1bWF6ZXQgPGVkdW1hemV0QGdvb2dsZS5jb20+ClNpZ25lZC1vZmYtYnk6IERhdmlk IFMuIE1pbGxlciA8ZGF2ZW1AZGF2ZW1sb2Z0Lm5ldD4KLS0tCiBuZXQvaXB2NC9yb3V0ZS5jIHwg NCArKysrCiAxIGZpbGUgY2hhbmdlZCwgNCBpbnNlcnRpb25zKCspCgpkaWZmIC0tZ2l0IGEvbmV0 L2lwdjQvcm91dGUuYyBiL25ldC9pcHY0L3JvdXRlLmMKaW5kZXggMjBmYzAyMC4uZTI2MmEwOCAx MDA2NDQKLS0tIGEvbmV0L2lwdjQvcm91dGUuYworKysgYi9uZXQvaXB2NC9yb3V0ZS5jCkBAIC05 MDMsNiArOTAzLDEwIEBAIHN0YXRpYyBpbnQgaXBfZXJyb3Ioc3RydWN0IHNrX2J1ZmYgKnNrYikK IAlib29sIHNlbmQ7CiAJaW50IGNvZGU7CiAKKwkvKiBJUCBvbiB0aGlzIGRldmljZSBpcyBkaXNh YmxlZC4gKi8KKwlpZiAoIWluX2RldikKKwkJZ290byBvdXQ7CisKIAluZXQgPSBkZXZfbmV0KHJ0 LT5kc3QuZGV2KTsKIAlpZiAoIUlOX0RFVl9GT1JXQVJEKGluX2RldikpIHsKIAkJc3dpdGNoIChy dC0+ZHN0LmVycm9yKSB7Ci0tIAoyLjEuMAoKCkZyb20gZDM2MTRhMDAxNmQzOThiMDg5ZmY2NzA5 YjI4MTY4N2EyMjZmM2E5ZiBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJvbTogPT9VVEYtOD9x P0JqPUMzPUI4cm49MjBNb3JrPz0gPGJqb3JuQG1vcmsubm8+CkRhdGU6IEZyaSwgMjIgTWF5IDIw MTUgMTM6MTU6MjIgKzAyMDAKU3ViamVjdDogW1BBVENIIDExLzI3XSBjZGNfbmNtOiBGaXggdHhf Ynl0ZXMgc3RhdGlzdGljcwpNSU1FLVZlcnNpb246IDEuMApDb250ZW50LVR5cGU6IHRleHQvcGxh aW47IGNoYXJzZXQ9VVRGLTgKQ29udGVudC1UcmFuc2Zlci1FbmNvZGluZzogOGJpdAoKWyBVcHN0 cmVhbSBjb21taXQgNDRmNjczMWQ4YjY4ZmEwMmY1ZWQ2NWVhY2VhYzQxZjhjM2M5Mjc5ZSBdCgpU aGUgdHhfY3Vycl9mcmFtZV9wYXlsb2FkIGZpZWxkIGlzIHUzMi4gV2hlbiB3ZSB0cnkgdG8gY2Fs Y3VsYXRlIGEKc21hbGwgbmVnYXRpdmUgZGVsdGEgYmFzZWQgb24gaXQsIHdlIGVuZCB1cCB3aXRo IGEgcG9zaXRpdmUgaW50ZWdlcgpjbG9zZSB0byAyXjMyIGluc3RlYWQuICBTbyB0aGUgdHhfYnl0 ZXMgcG9pbnRlciBpbmNyZWFzZXMgYnkgYWJvdXQKMl4zMiBmb3IgZXZlcnkgdHJhbnNtaXR0ZWQg ZnJhbWUuCgpGaXggYnkgY2FsY3VsYXRpbmcgdGhlIGRlbHRhIGFzIGEgc2lnbmVkIGxvbmcuCgpD YzogQmVuIEh1dGNoaW5ncyA8YmVuLmh1dGNoaW5nc0Bjb2RldGhpbmsuY28udWs+ClJlcG9ydGVk LWJ5OiBGbG9yaWFuIEJydWhpbiA8bWVAdGhlLWNvbXBpbGVyLm9yZz4KRml4ZXM6IDdhMWU4OTBl MjE2OCAoInVzYm5ldDogRml4IHR4X2J5dGVzIHN0YXRpc3RpYyBydW5uaW5nIGJhY2t3YXJkIGlu IGNkY19uY20iKQpTaWduZWQtb2ZmLWJ5OiBCasO4cm4gTW9yayA8Ympvcm5AbW9yay5ubz4KU2ln bmVkLW9mZi1ieTogRGF2aWQgUy4gTWlsbGVyIDxkYXZlbUBkYXZlbWxvZnQubmV0PgotLS0KIGRy aXZlcnMvbmV0L3VzYi9jZGNfbmNtLmMgfCAyICstCiAxIGZpbGUgY2hhbmdlZCwgMSBpbnNlcnRp b24oKyksIDEgZGVsZXRpb24oLSkKCmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC91c2IvY2RjX25j bS5jIGIvZHJpdmVycy9uZXQvdXNiL2NkY19uY20uYwppbmRleCBjM2U0ZGE5Li44MDY3YjhmIDEw MDY0NAotLS0gYS9kcml2ZXJzL25ldC91c2IvY2RjX25jbS5jCisrKyBiL2RyaXZlcnMvbmV0L3Vz Yi9jZGNfbmNtLmMKQEAgLTExODIsNyArMTE4Miw3IEBAIGNkY19uY21fZmlsbF90eF9mcmFtZShz dHJ1Y3QgdXNibmV0ICpkZXYsIHN0cnVjdCBza19idWZmICpza2IsIF9fbGUzMiBzaWduKQogCSAq IHBheWxvYWQgZGF0YSBpbnN0ZWFkLgogCSAqLwogCXVzYm5ldF9zZXRfc2tiX3R4X3N0YXRzKHNr Yl9vdXQsIG4sCi0JCQkJY3R4LT50eF9jdXJyX2ZyYW1lX3BheWxvYWQgLSBza2Jfb3V0LT5sZW4p OworCQkJCShsb25nKWN0eC0+dHhfY3Vycl9mcmFtZV9wYXlsb2FkIC0gc2tiX291dC0+bGVuKTsK IAogCXJldHVybiBza2Jfb3V0OwogCi0tIAoyLjEuMAoKCkZyb20gYWI3MmQzN2UxY2Q3MTY2YjY4 NWI4ZGUyODI5YTU3OGI3NjIyYzc4ZSBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJvbTogVGhh ZGV1IExpbWEgZGUgU291emEgQ2FzY2FyZG8gPGNhc2NhcmRvQHJlZGhhdC5jb20+CkRhdGU6IEZy aSwgMjIgTWF5IDIwMTUgMTI6MTg6NTkgLTAzMDAKU3ViamVjdDogW1BBVENIIDEyLzI3XSBicmlk Z2U6IGZpeCBwYXJzaW5nIG9mIE1MRHYyIHJlcG9ydHMKClsgVXBzdHJlYW0gY29tbWl0IDQ3Y2M4 NGNlMGMyZmU3NWM5OWVhNTk2M2M0YjU3MDRkZDc4ZWFkNTQgXQoKV2hlbiBtb3JlIHRoYW4gYSBt dWx0aWNhc3QgYWRkcmVzcyBpcyBwcmVzZW50IGluIGEgTUxEdjIgcmVwb3J0LCBhbGwgYnV0CnRo ZSBmaXJzdCBhZGRyZXNzIGlzIGlnbm9yZWQsIGJlY2F1c2UgdGhlIGNvZGUgYnJlYWtzIG91dCBv ZiB0aGUgbG9vcCBpZgp0aGVyZSBoYXMgbm90IGJlZW4gYW4gZXJyb3IgYWRkaW5nIHRoYXQgYWRk cmVzcy4KClRoaXMgaGFzIGNhdXNlZCBmYWlsdXJlcyB3aGVuIHR3byBndWVzdHMgY29ubmVjdGVk IHRocm91Z2ggdGhlIGJyaWRnZQp0cmllZCB0byBjb21tdW5pY2F0ZSB1c2luZyBJUHY2LiBOZWln aGJvciBkaXNjb3ZlcmllcyB3b3VsZCBub3QgYmUKdHJhbnNtaXR0ZWQgdG8gdGhlIG90aGVyIGd1 ZXN0IHdoZW4gYm90aCB1c2VkIGEgbGluay1sb2NhbCBhZGRyZXNzIGFuZCBhCnN0YXRpYyBhZGRy ZXNzLgoKVGhpcyBvbmx5IGhhcHBlbnMgd2hlbiB0aGVyZSBpcyBhIE1MRHYyIHF1ZXJpZXIgaW4g dGhlIG5ldHdvcmsuCgpUaGUgZml4IHdpbGwgb25seSBicmVhayBvdXQgb2YgdGhlIGxvb3Agd2hl biB0aGVyZSBpcyBhIGZhaWx1cmUgYWRkaW5nIGEKbXVsdGljYXN0IGFkZHJlc3MuCgpUaGUgbWRi IGJlZm9yZSB0aGUgcGF0Y2g6CgpkZXYgb3ZpcnRtZ210IHBvcnQgdm5ldDAgZ3JwIGZmMDI6OjE6 ZmY3ZDo2NjAzIHRlbXAKZGV2IG92aXJ0bWdtdCBwb3J0IHZuZXQxIGdycCBmZjAyOjoxOmZmN2Q6 NjYwNCB0ZW1wCmRldiBvdmlydG1nbXQgcG9ydCBib25kMC44NiBncnAgZmYwMjo6MiB0ZW1wCgpB ZnRlciB0aGUgcGF0Y2g6CgpkZXYgb3ZpcnRtZ210IHBvcnQgdm5ldDAgZ3JwIGZmMDI6OjE6ZmY3 ZDo2NjAzIHRlbXAKZGV2IG92aXJ0bWdtdCBwb3J0IHZuZXQxIGdycCBmZjAyOjoxOmZmN2Q6NjYw NCB0ZW1wCmRldiBvdmlydG1nbXQgcG9ydCBib25kMC44NiBncnAgZmYwMjo6ZmIgdGVtcApkZXYg b3ZpcnRtZ210IHBvcnQgYm9uZDAuODYgZ3JwIGZmMDI6OjIgdGVtcApkZXYgb3ZpcnRtZ210IHBv cnQgYm9uZDAuODYgZ3JwIGZmMDI6OmQgdGVtcApkZXYgb3ZpcnRtZ210IHBvcnQgdm5ldDAgZ3Jw IGZmMDI6OjE6ZmYwMDo3NiB0ZW1wCmRldiBvdmlydG1nbXQgcG9ydCBib25kMC44NiBncnAgZmYw Mjo6MTYgdGVtcApkZXYgb3ZpcnRtZ210IHBvcnQgdm5ldDEgZ3JwIGZmMDI6OjE6ZmYwMDo3NyB0 ZW1wCmRldiBvdmlydG1nbXQgcG9ydCBib25kMC44NiBncnAgZmYwMjo6MTpmZjAwOmRlZiB0ZW1w CmRldiBvdmlydG1nbXQgcG9ydCBib25kMC44NiBncnAgZmYwMjo6MTpmZmExOjQwYmYgdGVtcAoK Rml4ZXM6IDA4YjIwMmI2NzI2NCAoImJyaWRnZSBicl9tdWx0aWNhc3Q6IElQdjYgTUxEIHN1cHBv cnQuIikKUmVwb3J0ZWQtYnk6IFJpayBUaGV5cyA8UmlrLlRoZXlzQGVzYXQua3VsZXV2ZW4uYmU+ ClNpZ25lZC1vZmYtYnk6IFRoYWRldSBMaW1hIGRlIFNvdXphIENhc2NhcmRvIDxjYXNjYXJkb0By ZWRoYXQuY29tPgpUZXN0ZWQtYnk6IFJpayBUaGV5cyA8UmlrLlRoZXlzQGVzYXQua3VsZXV2ZW4u YmU+ClNpZ25lZC1vZmYtYnk6IERhdmlkIFMuIE1pbGxlciA8ZGF2ZW1AZGF2ZW1sb2Z0Lm5ldD4K LS0tCiBuZXQvYnJpZGdlL2JyX211bHRpY2FzdC5jIHwgMiArLQogMSBmaWxlIGNoYW5nZWQsIDEg aW5zZXJ0aW9uKCspLCAxIGRlbGV0aW9uKC0pCgpkaWZmIC0tZ2l0IGEvbmV0L2JyaWRnZS9icl9t dWx0aWNhc3QuYyBiL25ldC9icmlkZ2UvYnJfbXVsdGljYXN0LmMKaW5kZXggYzQ2NTg3Ni4uY2Qw MjE4NSAxMDA2NDQKLS0tIGEvbmV0L2JyaWRnZS9icl9tdWx0aWNhc3QuYworKysgYi9uZXQvYnJp ZGdlL2JyX211bHRpY2FzdC5jCkBAIC0xMDcxLDcgKzEwNzEsNyBAQCBzdGF0aWMgaW50IGJyX2lw Nl9tdWx0aWNhc3RfbWxkMl9yZXBvcnQoc3RydWN0IG5ldF9icmlkZ2UgKmJyLAogCiAJCWVyciA9 IGJyX2lwNl9tdWx0aWNhc3RfYWRkX2dyb3VwKGJyLCBwb3J0LCAmZ3JlYy0+Z3JlY19tY2EsCiAJ CQkJCQkgdmlkKTsKLQkJaWYgKCFlcnIpCisJCWlmIChlcnIpCiAJCQlicmVhazsKIAl9CiAKLS0g CjIuMS4wCgoKRnJvbSAyMWRhMGU3YWJiYzlkMjYwZDQ2N2Q3ZTdkYTVmODRjMTlmNjc2ZjY2IE1v biBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBSaWNoYXJkIENvY2hyYW4gPHJpY2hhcmRjb2No cmFuQGdtYWlsLmNvbT4KRGF0ZTogTW9uLCAyNSBNYXkgMjAxNSAxMTo1NTo0MyArMDIwMApTdWJq ZWN0OiBbUEFUQ0ggMTMvMjddIG5ldDogZHA4MzY0MDogZml4IGJyb2tlbiBjYWxpYnJhdGlvbiBy b3V0aW5lLgoKWyBVcHN0cmVhbSBjb21taXQgMzk3YTI1M2FmNTAzMWRlNGE0NjEyMjEwMDU1OTM1 MzA5YWY0NDcyYyBdCgpDdXJyZW50bHksIHRoZSBjYWxpYnJhdGlvbiBmdW5jdGlvbiB0aGF0IGNv cnJlY3RzIHRoZSBpbml0aWFsIG9mZnNldHMKYW1vbmcgbXVsdGlwbGUgZGV2aWNlcyBvbmx5IHdv cmtzIHRoZSBmaXJzdCB0aW1lLiAgSWYgdGhlIGZ1bmN0aW9uIGlzCmNhbGxlZCBtb3JlIHRoYW4g b25jZSwgdGhlIGNhbGlicmF0aW9uIGZhaWxzIGFuZCBib2d1cyBvZmZzZXRzIHdpbGwgYmUKcHJv Z3JhbW1lZCBpbnRvIHRoZSBkZXZpY2VzLgoKSW4gYSB3ZWxsIGhpZGRlbiBzcG90LCB0aGUgZGV2 aWNlIGRvY3VtZW50YXRpb24gdGVsbHMgdGhhdCB0cmlnZ2VyIGluZGV4ZXMKMCBhbmQgMSBhcmUg c3BlY2lhbCBpbiBhbGxvd2luZyB0aGUgVFJJR19JRl9MQVRFIGZsYWcgdG8gYWN0dWFsbHkgd29y ay4KClRoaXMgcGF0Y2ggZml4ZXMgdGhlIGlzc3VlIGJ5IHVzaW5nIG9uZSBvZiB0aGUgc3BlY2lh bCB0cmlnZ2VycyBkdXJpbmcgdGhlCnJlY2FsaWJyYXRpb24gbWV0aG9kLgoKU2lnbmVkLW9mZi1i eTogUmljaGFyZCBDb2NocmFuIDxyaWNoYXJkY29jaHJhbkBnbWFpbC5jb20+ClNpZ25lZC1vZmYt Ynk6IERhdmlkIFMuIE1pbGxlciA8ZGF2ZW1AZGF2ZW1sb2Z0Lm5ldD4KLS0tCiBkcml2ZXJzL25l dC9waHkvZHA4MzY0MC5jIHwgMiArLQogMSBmaWxlIGNoYW5nZWQsIDEgaW5zZXJ0aW9uKCspLCAx IGRlbGV0aW9uKC0pCgpkaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvcGh5L2RwODM2NDAuYyBiL2Ry aXZlcnMvbmV0L3BoeS9kcDgzNjQwLmMKaW5kZXggZTIyZTYwMi4uNWViM2M4ZSAxMDA2NDQKLS0t IGEvZHJpdmVycy9uZXQvcGh5L2RwODM2NDAuYworKysgYi9kcml2ZXJzL25ldC9waHkvZHA4MzY0 MC5jCkBAIC00Nyw3ICs0Nyw3IEBACiAjZGVmaW5lIFBTRl9UWAkJMHgxMDAwCiAjZGVmaW5lIEVY VF9FVkVOVAkxCiAjZGVmaW5lIENBTF9FVkVOVAk3Ci0jZGVmaW5lIENBTF9UUklHR0VSCTcKKyNk ZWZpbmUgQ0FMX1RSSUdHRVIJMQogI2RlZmluZSBEUDgzNjQwX05fUElOUwkxMgogCiAjZGVmaW5l IE1JSV9EUDgzNjQwX01JQ1IgMHgxMQotLSAKMi4xLjAKCgpGcm9tIDlkNTJlMWEzOTFjNGI3ZjVh YTM4YjQ5ZjU2Nzk5ZDI5NmJlMmUwMmIgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCkZyb206IFJp Y2hhcmQgQ29jaHJhbiA8cmljaGFyZGNvY2hyYW5AZ21haWwuY29tPgpEYXRlOiBNb24sIDI1IE1h eSAyMDE1IDExOjU1OjQ0ICswMjAwClN1YmplY3Q6IFtQQVRDSCAxNC8yN10gbmV0OiBkcDgzNjQw OiByZWluZm9yY2UgbG9ja2luZyBydWxlcy4KClsgVXBzdHJlYW0gY29tbWl0IGE5MzU4NjVjODI4 YzhjZDIwNTAxZjYxOGM2OWY2NTlhNWI2ZDZhNWYgXQoKQ2FsbGVycyBvZiB0aGUgZXh0X3dyaXRl IGZ1bmN0aW9uIGFyZSBzdXBwb3NlZCB0byBob2xkIGEgbXV0ZXggdGhhdApwcm90ZWN0cyB0aGUg c3RhdGUgb2YgdGhlIGRpYWxlZCBwYWdlLCBidXQgb25lIGNhbGxlciB3YXMgbWlzc2luZyB0aGUK bG9jayBmcm9tIHRoZSB2ZXJ5IHN0YXJ0LCBhbmQgb3ZlciB0aW1lIHRoZSBjb2RlIGhhcyBiZWVu IGNoYW5nZWQKd2l0aG91dCBmb2xsb3dpbmcgdGhlIHJ1bGUuICBUaGlzIHBhdGNoIGNsZWFucyB1 cCB0aGUgY2FsbCBzaXRlcyBpbgp2aW9sYXRpb24gb2YgdGhlIHJ1bGUuCgpTaWduZWQtb2ZmLWJ5 OiBSaWNoYXJkIENvY2hyYW4gPHJpY2hhcmRjb2NocmFuQGdtYWlsLmNvbT4KU2lnbmVkLW9mZi1i eTogRGF2aWQgUy4gTWlsbGVyIDxkYXZlbUBkYXZlbWxvZnQubmV0PgotLS0KIGRyaXZlcnMvbmV0 L3BoeS9kcDgzNjQwLmMgfCAxNyArKysrKysrKysrKysrKysrLQogMSBmaWxlIGNoYW5nZWQsIDE2 IGluc2VydGlvbnMoKyksIDEgZGVsZXRpb24oLSkKCmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC9w aHkvZHA4MzY0MC5jIGIvZHJpdmVycy9uZXQvcGh5L2RwODM2NDAuYwppbmRleCA1ZWIzYzhlLi40 ZjNjZjFiIDEwMDY0NAotLS0gYS9kcml2ZXJzL25ldC9waHkvZHA4MzY0MC5jCisrKyBiL2RyaXZl cnMvbmV0L3BoeS9kcDgzNjQwLmMKQEAgLTQ5NSw3ICs0OTUsOSBAQCBzdGF0aWMgaW50IHB0cF9k cDgzNjQwX2VuYWJsZShzdHJ1Y3QgcHRwX2Nsb2NrX2luZm8gKnB0cCwKIAkJCWVsc2UKIAkJCQll dm50IHw9IEVWTlRfUklTRTsKIAkJfQorCQltdXRleF9sb2NrKCZjbG9jay0+ZXh0cmVnX2xvY2sp OwogCQlleHRfd3JpdGUoMCwgcGh5ZGV2LCBQQUdFNSwgUFRQX0VWTlQsIGV2bnQpOworCQltdXRl eF91bmxvY2soJmNsb2NrLT5leHRyZWdfbG9jayk7CiAJCXJldHVybiAwOwogCiAJY2FzZSBQVFBf Q0xLX1JFUV9QRVJPVVQ6CkBAIC01MzEsNiArNTMzLDggQEAgc3RhdGljIHU4IHN0YXR1c19mcmFt ZV9zcmNbNl0gPSB7IDB4MDgsIDB4MDAsIDB4MTcsIDB4MEIsIDB4NkIsIDB4MEYgfTsKIAogc3Rh dGljIHZvaWQgZW5hYmxlX3N0YXR1c19mcmFtZXMoc3RydWN0IHBoeV9kZXZpY2UgKnBoeWRldiwg Ym9vbCBvbikKIHsKKwlzdHJ1Y3QgZHA4MzY0MF9wcml2YXRlICpkcDgzNjQwID0gcGh5ZGV2LT5w cml2OworCXN0cnVjdCBkcDgzNjQwX2Nsb2NrICpjbG9jayA9IGRwODM2NDAtPmNsb2NrOwogCXUx NiBjZmcwID0gMCwgdmVyOwogCiAJaWYgKG9uKQpAQCAtNTM4LDkgKzU0MiwxMyBAQCBzdGF0aWMg dm9pZCBlbmFibGVfc3RhdHVzX2ZyYW1lcyhzdHJ1Y3QgcGh5X2RldmljZSAqcGh5ZGV2LCBib29s IG9uKQogCiAJdmVyID0gKFBTRl9QVFBWRVIgJiBWRVJTSU9OUFRQX01BU0spIDw8IFZFUlNJT05Q VFBfU0hJRlQ7CiAKKwltdXRleF9sb2NrKCZjbG9jay0+ZXh0cmVnX2xvY2spOworCiAJZXh0X3dy aXRlKDAsIHBoeWRldiwgUEFHRTUsIFBTRl9DRkcwLCBjZmcwKTsKIAlleHRfd3JpdGUoMCwgcGh5 ZGV2LCBQQUdFNiwgUFNGX0NGRzEsIHZlcik7CiAKKwltdXRleF91bmxvY2soJmNsb2NrLT5leHRy ZWdfbG9jayk7CisKIAlpZiAoIXBoeWRldi0+YXR0YWNoZWRfZGV2KSB7CiAJCXByX3dhcm4oImV4 cGVjdGVkIHRvIGZpbmQgYW4gYXR0YWNoZWQgbmV0ZGV2aWNlXG4iKTsKIAkJcmV0dXJuOwpAQCAt MTE3MiwxMSArMTE4MCwxOCBAQCBzdGF0aWMgaW50IGRwODM2NDBfY29uZmlnX2luaXQoc3RydWN0 IHBoeV9kZXZpY2UgKnBoeWRldikKIAogCWlmIChjbG9jay0+Y2hvc2VuICYmICFsaXN0X2VtcHR5 KCZjbG9jay0+cGh5bGlzdCkpCiAJCXJlY2FsaWJyYXRlKGNsb2NrKTsKLQllbHNlCisJZWxzZSB7 CisJCW11dGV4X2xvY2soJmNsb2NrLT5leHRyZWdfbG9jayk7CiAJCWVuYWJsZV9icm9hZGNhc3Qo cGh5ZGV2LCBjbG9jay0+cGFnZSwgMSk7CisJCW11dGV4X3VubG9jaygmY2xvY2stPmV4dHJlZ19s b2NrKTsKKwl9CiAKIAllbmFibGVfc3RhdHVzX2ZyYW1lcyhwaHlkZXYsIHRydWUpOworCisJbXV0 ZXhfbG9jaygmY2xvY2stPmV4dHJlZ19sb2NrKTsKIAlleHRfd3JpdGUoMCwgcGh5ZGV2LCBQQUdF NCwgUFRQX0NUTCwgUFRQX0VOQUJMRSk7CisJbXV0ZXhfdW5sb2NrKCZjbG9jay0+ZXh0cmVnX2xv Y2spOworCiAJcmV0dXJuIDA7CiB9CiAKLS0gCjIuMS4wCgoKRnJvbSAzZTgyZjU2ZWU0NTU0OTZl ZTU2NDc1Y2MwMjFjZmM2ZTBmOGUwNWM4IE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBS aWNoYXJkIENvY2hyYW4gPHJpY2hhcmRjb2NocmFuQGdtYWlsLmNvbT4KRGF0ZTogTW9uLCAyNSBN YXkgMjAxNSAxMTo1NTo0NSArMDIwMApTdWJqZWN0OiBbUEFUQ0ggMTUvMjddIG5ldDogZHA4MzY0 MDogZml4IGltcHJvcGVyIGRvdWJsZSBzcGluIGxvY2tpbmcuCgpbIFVwc3RyZWFtIGNvbW1pdCBh ZGJlMDg4ZjZmOGIwYjc3MDFmZTA3ZjUxZmU2ZjJiZDYwMmE2NjY1IF0KCkEgcGFpciBvZiBuZXN0 ZWQgc3BpbiBsb2NrcyB3YXMgaW50cm9kdWNlZCBpbiBjb21taXQgNjM1MDJiOGQwCiJkcDgzNjQw OiBGaXggcmVjZWl2ZSB0aW1lc3RhbXAgcmFjZSBjb25kaXRpb24iLgoKVW5mb3J0dW5hdGVseSB0 aGUgJ2ZsYWdzJyBwYXJhbWV0ZXIgd2FzIHJldXNlZCBmb3IgdGhlIGlubmVyIGxvY2ssCmNsb2Ji ZXJpbmcgdGhlIG9yaWdpbmFsbHkgc2F2ZWQgSVJRIHN0YXRlLiAgVGhpcyBwYXRjaCBmaXhlcyB0 aGUgaXNzdWUKYnkgY2hhbmdpbmcgdGhlIGlubmVyIGxvY2sgdG8gcGxhaW4gc3Bpbl9sb2NrIHdp dGhvdXQgaXJxc2F2ZS4KClNpZ25lZC1vZmYtYnk6IFJpY2hhcmQgQ29jaHJhbiA8cmljaGFyZGNv Y2hyYW5AZ21haWwuY29tPgpTaWduZWQtb2ZmLWJ5OiBEYXZpZCBTLiBNaWxsZXIgPGRhdmVtQGRh dmVtbG9mdC5uZXQ+Ci0tLQogZHJpdmVycy9uZXQvcGh5L2RwODM2NDAuYyB8IDQgKystLQogMSBm aWxlIGNoYW5nZWQsIDIgaW5zZXJ0aW9ucygrKSwgMiBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQg YS9kcml2ZXJzL25ldC9waHkvZHA4MzY0MC5jIGIvZHJpdmVycy9uZXQvcGh5L2RwODM2NDAuYwpp bmRleCA0ZjNjZjFiLi5jNTc4OWNkIDEwMDY0NAotLS0gYS9kcml2ZXJzL25ldC9waHkvZHA4MzY0 MC5jCisrKyBiL2RyaXZlcnMvbmV0L3BoeS9kcDgzNjQwLmMKQEAgLTg0NSw3ICs4NDUsNyBAQCBz dGF0aWMgdm9pZCBkZWNvZGVfcnh0cyhzdHJ1Y3QgZHA4MzY0MF9wcml2YXRlICpkcDgzNjQwLAog CWxpc3RfZGVsX2luaXQoJnJ4dHMtPmxpc3QpOwogCXBoeTJyeHRzKHBoeV9yeHRzLCByeHRzKTsK IAotCXNwaW5fbG9ja19pcnFzYXZlKCZkcDgzNjQwLT5yeF9xdWV1ZS5sb2NrLCBmbGFncyk7CisJ c3Bpbl9sb2NrKCZkcDgzNjQwLT5yeF9xdWV1ZS5sb2NrKTsKIAlza2JfcXVldWVfd2FsaygmZHA4 MzY0MC0+cnhfcXVldWUsIHNrYikgewogCQlzdHJ1Y3QgZHA4MzY0MF9za2JfaW5mbyAqc2tiX2lu Zm87CiAKQEAgLTg2MCw3ICs4NjAsNyBAQCBzdGF0aWMgdm9pZCBkZWNvZGVfcnh0cyhzdHJ1Y3Qg ZHA4MzY0MF9wcml2YXRlICpkcDgzNjQwLAogCQkJYnJlYWs7CiAJCX0KIAl9Ci0Jc3Bpbl91bmxv Y2tfaXJxcmVzdG9yZSgmZHA4MzY0MC0+cnhfcXVldWUubG9jaywgZmxhZ3MpOworCXNwaW5fdW5s b2NrKCZkcDgzNjQwLT5yeF9xdWV1ZS5sb2NrKTsKIAogCWlmICghc2hod3RzdGFtcHMpCiAJCWxp c3RfYWRkX3RhaWwoJnJ4dHMtPmxpc3QsICZkcDgzNjQwLT5yeHRzKTsKLS0gCjIuMS4wCgoKRnJv bSA2MmE4NzllZDQ0OWEzNDMzYmNhYzI5MDljNWRlMzkyNGEyNzYxNjBmIE1vbiBTZXAgMTcgMDA6 MDA6MDAgMjAwMQpGcm9tOiBNYXJrIFNhbHl6eW4gPHNhbHl6eW5AYW5kcm9pZC5jb20+CkRhdGU6 IFR1ZSwgMjYgTWF5IDIwMTUgMDg6MjI6MTkgLTA3MDAKU3ViamVjdDogW1BBVENIIDE2LzI3XSB1 bml4L2NhaWY6IHNrX3NvY2tldCBjYW4gZGlzYXBwZWFyIHdoZW4gc3RhdGUgaXMKIHVubG9ja2Vk CgpbIFVwc3RyZWFtIGNvbW1pdCBiNDg3MzJlNGE0OGQ4MGVkNGExNDgxMmYwYmFiMDk1NjA4NDY1 MTRlIF0KCmdvdCBhIHJhcmUgTlVMTCBwb2ludGVyIGRlcmVmZXJlbmNlIGluIGNsZWFyX2JpdAoK U2lnbmVkLW9mZi1ieTogTWFyayBTYWx5enluIDxzYWx5enluQGFuZHJvaWQuY29tPgpBY2tlZC1i eTogSGFubmVzIEZyZWRlcmljIFNvd2EgPGhhbm5lc0BzdHJlc3NpbmR1a3Rpb24ub3JnPgotLS0t CnYyOiBzd2l0Y2ggdG8gc29ja19mbGFnKHNrLCBTT0NLX0RFQUQpIGFuZCBhZGRlZCBuZXQvY2Fp Zi9jYWlmX3NvY2tldC5jCnYzOiByZXR1cm4gLUVDT05OUkVTRVQgaW4gdXBzdHJlYW0gY2FsbGVy IG9mIHdhaXQgZnVuY3Rpb24gZm9yIFNPQ0tfREVBRApTaWduZWQtb2ZmLWJ5OiBEYXZpZCBTLiBN aWxsZXIgPGRhdmVtQGRhdmVtbG9mdC5uZXQ+Ci0tLQogbmV0L2NhaWYvY2FpZl9zb2NrZXQuYyB8 IDggKysrKysrKysKIG5ldC91bml4L2FmX3VuaXguYyAgICAgfCA4ICsrKysrKysrCiAyIGZpbGVz IGNoYW5nZWQsIDE2IGluc2VydGlvbnMoKykKCmRpZmYgLS1naXQgYS9uZXQvY2FpZi9jYWlmX3Nv Y2tldC5jIGIvbmV0L2NhaWYvY2FpZl9zb2NrZXQuYwppbmRleCBhNmUyZGEwLi45ODIxMDFjIDEw MDY0NAotLS0gYS9uZXQvY2FpZi9jYWlmX3NvY2tldC5jCisrKyBiL25ldC9jYWlmL2NhaWZfc29j a2V0LmMKQEAgLTMzMCw2ICszMzAsMTAgQEAgc3RhdGljIGxvbmcgY2FpZl9zdHJlYW1fZGF0YV93 YWl0KHN0cnVjdCBzb2NrICpzaywgbG9uZyB0aW1lbykKIAkJcmVsZWFzZV9zb2NrKHNrKTsKIAkJ dGltZW8gPSBzY2hlZHVsZV90aW1lb3V0KHRpbWVvKTsKIAkJbG9ja19zb2NrKHNrKTsKKworCQlp ZiAoc29ja19mbGFnKHNrLCBTT0NLX0RFQUQpKQorCQkJYnJlYWs7CisKIAkJY2xlYXJfYml0KFNP Q0tfQVNZTkNfV0FJVERBVEEsICZzay0+c2tfc29ja2V0LT5mbGFncyk7CiAJfQogCkBAIC0zNzQs NiArMzc4LDEwIEBAIHN0YXRpYyBpbnQgY2FpZl9zdHJlYW1fcmVjdm1zZyhzdHJ1Y3Qga2lvY2Ig KmlvY2IsIHN0cnVjdCBzb2NrZXQgKnNvY2ssCiAJCXN0cnVjdCBza19idWZmICpza2I7CiAKIAkJ bG9ja19zb2NrKHNrKTsKKwkJaWYgKHNvY2tfZmxhZyhzaywgU09DS19ERUFEKSkgeworCQkJZXJy ID0gLUVDT05OUkVTRVQ7CisJCQlnb3RvIHVubG9jazsKKwkJfQogCQlza2IgPSBza2JfZGVxdWV1 ZSgmc2stPnNrX3JlY2VpdmVfcXVldWUpOwogCQljYWlmX2NoZWNrX2Zsb3dfcmVsZWFzZShzayk7 CiAKZGlmZiAtLWdpdCBhL25ldC91bml4L2FmX3VuaXguYyBiL25ldC91bml4L2FmX3VuaXguYwpp bmRleCA1MjZiNmVkLi4xNDY4ODFmIDEwMDY0NAotLS0gYS9uZXQvdW5peC9hZl91bml4LmMKKysr IGIvbmV0L3VuaXgvYWZfdW5peC5jCkBAIC0xODg3LDYgKzE4ODcsMTAgQEAgc3RhdGljIGxvbmcg dW5peF9zdHJlYW1fZGF0YV93YWl0KHN0cnVjdCBzb2NrICpzaywgbG9uZyB0aW1lbywKIAkJdW5p eF9zdGF0ZV91bmxvY2soc2spOwogCQl0aW1lbyA9IGZyZWV6YWJsZV9zY2hlZHVsZV90aW1lb3V0 KHRpbWVvKTsKIAkJdW5peF9zdGF0ZV9sb2NrKHNrKTsKKworCQlpZiAoc29ja19mbGFnKHNrLCBT T0NLX0RFQUQpKQorCQkJYnJlYWs7CisKIAkJY2xlYXJfYml0KFNPQ0tfQVNZTkNfV0FJVERBVEEs ICZzay0+c2tfc29ja2V0LT5mbGFncyk7CiAJfQogCkBAIC0xOTQ3LDYgKzE5NTEsMTAgQEAgc3Rh dGljIGludCB1bml4X3N0cmVhbV9yZWN2bXNnKHN0cnVjdCBraW9jYiAqaW9jYiwgc3RydWN0IHNv Y2tldCAqc29jaywKIAkJc3RydWN0IHNrX2J1ZmYgKnNrYiwgKmxhc3Q7CiAKIAkJdW5peF9zdGF0 ZV9sb2NrKHNrKTsKKwkJaWYgKHNvY2tfZmxhZyhzaywgU09DS19ERUFEKSkgeworCQkJZXJyID0g LUVDT05OUkVTRVQ7CisJCQlnb3RvIHVubG9jazsKKwkJfQogCQlsYXN0ID0gc2tiID0gc2tiX3Bl ZWsoJnNrLT5za19yZWNlaXZlX3F1ZXVlKTsKIGFnYWluOgogCQlpZiAoc2tiID09IE5VTEwpIHsK LS0gCjIuMS4wCgoKRnJvbSAzYzZkZjkzYjBkODgwNDc4ZTY0ZmVmZjA1MjM3NjMxMDE4NTQzNDU5 IE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBSb3NzIExhZ2Vyd2FsbCA8cm9zcy5sYWdl cndhbGxAY2l0cml4LmNvbT4KRGF0ZTogV2VkLCAyNyBNYXkgMjAxNSAxMTo0NDozMiArMDEwMApT dWJqZWN0OiBbUEFUQ0ggMTcvMjddIHhlbi9uZXRiYWNrOiBQcm9wZXJseSBpbml0aWFsaXplIGNy ZWRpdF9ieXRlcwoKWyBVcHN0cmVhbSBjb21taXQgY2UwZTVjNTIyZDM5MjQwOTBjMjBlNzc0MzU5 ODA5YTdhYTA4YzQ0YyBdCgpDb21taXQgZTljZTdjYjZiMTA3ICgieGVuLW5ldGJhY2s6IEZhY3Rv ciBxdWV1ZS1zcGVjaWZpYyBkYXRhIGludG8gcXVldWUKc3RydWN0IikgaW50cm9kdWNlZCBhIHJl Z3Jlc3Npb24gd2hlbiBtb3ZpbmcgcXVldWUtc3BlY2lmaWMgZGF0YSBpbnRvCnRoZSBxdWV1ZSBz dHJ1Y3QgYnkgZmFpbGluZyB0byBzZXQgdGhlIGNyZWRpdF9ieXRlcyBmaWVsZC4gVGhpcwpwcmV2 ZW50ZWQgYmFuZHdpZHRoIGxpbWl0aW5nIGZyb20gd29ya2luZy4gSW5pdGlhbGl6ZSB0aGUgZmll bGQgYXMgaXQKd2FzIGRvbmUgYmVmb3JlIG11bHRpcXVldWUgc3VwcG9ydCB3YXMgYWRkZWQuCgpT aWduZWQtb2ZmLWJ5OiBSb3NzIExhZ2Vyd2FsbCA8cm9zcy5sYWdlcndhbGxAY2l0cml4LmNvbT4K QWNrZWQtYnk6IFdlaSBMaXUgPHdlaS5saXUyQGNpdHJpeC5jb20+ClNpZ25lZC1vZmYtYnk6IERh dmlkIFMuIE1pbGxlciA8ZGF2ZW1AZGF2ZW1sb2Z0Lm5ldD4KLS0tCiBkcml2ZXJzL25ldC94ZW4t bmV0YmFjay94ZW5idXMuYyB8IDEgKwogMSBmaWxlIGNoYW5nZWQsIDEgaW5zZXJ0aW9uKCspCgpk aWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQveGVuLW5ldGJhY2sveGVuYnVzLmMgYi9kcml2ZXJzL25l dC94ZW4tbmV0YmFjay94ZW5idXMuYwppbmRleCA3OTQyMDRlLi43ODRhNjI0IDEwMDY0NAotLS0g YS9kcml2ZXJzL25ldC94ZW4tbmV0YmFjay94ZW5idXMuYworKysgYi9kcml2ZXJzL25ldC94ZW4t bmV0YmFjay94ZW5idXMuYwpAQCAtNzM2LDYgKzczNiw3IEBAIHN0YXRpYyB2b2lkIGNvbm5lY3Qo c3RydWN0IGJhY2tlbmRfaW5mbyAqYmUpCiAJCQlnb3RvIGVycjsKIAkJfQogCisJCXF1ZXVlLT5j cmVkaXRfYnl0ZXMgPSBjcmVkaXRfYnl0ZXM7CiAJCXF1ZXVlLT5yZW1haW5pbmdfY3JlZGl0ID0g Y3JlZGl0X2J5dGVzOwogCQlxdWV1ZS0+Y3JlZGl0X3VzZWMgPSBjcmVkaXRfdXNlYzsKIAotLSAK Mi4xLjAKCgpGcm9tIDY2Y2ExYTI5MWEzMDZjZDQ2OGRkZWU0NDYxOWRjNjAyZTBhZTJiMWYgTW9u IFNlcCAxNyAwMDowMDowMCAyMDAxCkZyb206IFdBTkcgQ29uZyA8eGl5b3Uud2FuZ2NvbmdAZ21h aWwuY29tPgpEYXRlOiBUdWUsIDI2IE1heSAyMDE1IDE2OjA4OjQ4IC0wNzAwClN1YmplY3Q6IFtQ QVRDSCAxOC8yN10gbmV0X3NjaGVkOiBpbnZva2UgLT5hdHRhY2goKSBhZnRlciBzZXR0aW5nIGRl di0+cWRpc2MKClsgVXBzdHJlYW0gY29tbWl0IDg2ZTM2M2RjM2I1MGJmZDUwYTFmMzE1OTM0NTgz ZmJkYTY3M2FiOGQgXQoKRm9yIG1xIHFkaXNjLCB3ZSBhZGQgcGVyIHR4IHF1ZXVlIHFkaXNjIHRv IHJvb3QgcWRpc2MKZm9yIGRpc3BsYXkgcHVycG9zZSwgaG93ZXZlciwgdGhhdCBoYXBwZW5zIHRv byBlYXJseSwKYmVmb3JlIHRoZSBuZXcgZGV2LT5xZGlzYyBpcyBmaW5hbGx5IHNldCwgdGhpcyBj YXVzZXMKcS0+bGlzdCBwb2ludHMgdG8gYW4gb2xkIHJvb3QgcWRpc2Mgd2hpY2ggaXMgZ29pbmcg dG8gYmUKZnJlZWQgcmlnaHQgYmVmb3JlIGFzc2lnbmluZyB3aXRoIGEgbmV3IG9uZS4KCkZpeCB0 aGlzIGJ5IG1vdmluZyAtPmF0dGFjaCgpIGFmdGVyIHNldHRpbmcgZGV2LT5xZGlzYy4KCkZvciB0 aGUgcmVjb3JkLCB0aGlzIGZpeGVzIHRoZSBmb2xsb3dpbmcgY3Jhc2g6CgogLS0tLS0tLS0tLS0t WyBjdXQgaGVyZSBdLS0tLS0tLS0tLS0tCiBXQVJOSU5HOiBDUFU6IDEgUElEOiA5NzUgYXQgbGli L2xpc3RfZGVidWcuYzo1OSBfX2xpc3RfZGVsX2VudHJ5KzB4NWEvMHg5OCgpCiBsaXN0X2RlbCBj b3JydXB0aW9uLiBwcmV2LT5uZXh0IHNob3VsZCBiZSBmZmZmODgwMGQxOTk4YWU4LCBidXQgd2Fz IDZiNmI2YjZiNmI2YjZiNmIKIENQVTogMSBQSUQ6IDk3NSBDb21tOiB0YyBOb3QgdGFpbnRlZCA0 LjEuMC1yYzQrICMxMDE5CiBIYXJkd2FyZSBuYW1lOiBCb2NocyBCb2NocywgQklPUyBCb2NocyAw MS8wMS8yMDExCiAgMDAwMDAwMDAwMDAwMDAwOSBmZmZmODgwMGQ3M2ZiOTI4IGZmZmZmZmZmODFh NDRlN2YgMDAwMDAwMDA0NzU3NDc1NgogIGZmZmY4ODAwZDczZmI5NzggZmZmZjg4MDBkNzNmYjk2 OCBmZmZmZmZmZjgxMDc5MGRhIGZmZmY4ODAwY2ZjNGNkMjAKICBmZmZmZmZmZjgxNGU3MjViIGZm ZmY4ODAwZDE5OThhZTggZmZmZmZmZmY4MjM4MTI1MCAwMDAwMDAwMDAwMDAwMDAwCiBDYWxsIFRy YWNlOgogIFs8ZmZmZmZmZmY4MWE0NGU3Zj5dIGR1bXBfc3RhY2srMHg0Yy8weDY1CiAgWzxmZmZm ZmZmZjgxMDc5MGRhPl0gd2Fybl9zbG93cGF0aF9jb21tb24rMHg5Yy8weGI2CiAgWzxmZmZmZmZm ZjgxNGU3MjViPl0gPyBfX2xpc3RfZGVsX2VudHJ5KzB4NWEvMHg5OAogIFs8ZmZmZmZmZmY4MTA3 OTE2Mj5dIHdhcm5fc2xvd3BhdGhfZm10KzB4NDYvMHg0OAogIFs8ZmZmZmZmZmY4MTgyMGViMD5d ID8gZGV2X2dyYWZ0X3FkaXNjKzB4NWUvMHg2YQogIFs8ZmZmZmZmZmY4MTRlNzI1Yj5dIF9fbGlz dF9kZWxfZW50cnkrMHg1YS8weDk4CiAgWzxmZmZmZmZmZjgxNGU3MmE3Pl0gbGlzdF9kZWwrMHhl LzB4MmQKICBbPGZmZmZmZmZmODE4MjJmMDU+XSBxZGlzY19saXN0X2RlbCsweDFlLzB4MjAKICBb PGZmZmZmZmZmODE4MjBjZDE+XSBxZGlzY19kZXN0cm95KzB4MzAvMHhkNgogIFs8ZmZmZmZmZmY4 MTgyMjY3Nj5dIHFkaXNjX2dyYWZ0KzB4MTFkLzB4MjQzCiAgWzxmZmZmZmZmZjgxODIzM2MxPl0g dGNfZ2V0X3FkaXNjKzB4MWE2LzB4MWQ0CiAgWzxmZmZmZmZmZjgxMGI1ZWFmPl0gPyBtYXJrX2xv Y2srMHgyZS8weDIyNgogIFs8ZmZmZmZmZmY4MTdmZjhmNT5dIHJ0bmV0bGlua19yY3ZfbXNnKzB4 MTgxLzB4MTk0CiAgWzxmZmZmZmZmZjgxN2ZmNzJlPl0gPyBydG5sX2xvY2srMHgxNy8weDE5CiAg WzxmZmZmZmZmZjgxN2ZmNzJlPl0gPyBydG5sX2xvY2srMHgxNy8weDE5CiAgWzxmZmZmZmZmZjgx N2ZmNzc0Pl0gPyBfX3J0bmxfdW5sb2NrKzB4MTcvMHgxNwogIFs8ZmZmZmZmZmY4MTg1NWRjNj5d IG5ldGxpbmtfcmN2X3NrYisweDRkLzB4OTMKICBbPGZmZmZmZmZmODE3ZmY3NTY+XSBydG5ldGxp bmtfcmN2KzB4MjYvMHgyZAogIFs8ZmZmZmZmZmY4MTg1NDRiMj5dIG5ldGxpbmtfdW5pY2FzdCsw eGNiLzB4MTUwCiAgWzxmZmZmZmZmZjgxMTYxZGI5Pl0gPyBtaWdodF9mYXVsdCsweDU5LzB4YTkK ICBbPGZmZmZmZmZmODE4NTRmNzg+XSBuZXRsaW5rX3NlbmRtc2crMHg0ZmEvMHg1MWMKICBbPGZm ZmZmZmZmODE3ZDZlMDk+XSBzb2NrX3NlbmRtc2dfbm9zZWMrMHgxMi8weDFkCiAgWzxmZmZmZmZm ZjgxN2Q4OTY3Pl0gc29ja19zZW5kbXNnKzB4MjkvMHgyZQogIFs8ZmZmZmZmZmY4MTdkOGNmMz5d IF9fX3N5c19zZW5kbXNnKzB4MWI0LzB4MjNhCiAgWzxmZmZmZmZmZjgxMDBhMWI4Pl0gPyBuYXRp dmVfc2NoZWRfY2xvY2srMHgzNS8weDM3CiAgWzxmZmZmZmZmZjgxMGExZDgzPl0gPyBzY2hlZF9j bG9ja19sb2NhbCsweDEyLzB4NzIKICBbPGZmZmZmZmZmODEwYTFmZDQ+XSA/IHNjaGVkX2Nsb2Nr X2NwdSsweDllLzB4YjcKICBbPGZmZmZmZmZmODEwZGVmMmE+XSA/IGN1cnJlbnRfa2VybmVsX3Rp bWUrMHhlLzB4MzIKICBbPGZmZmZmZmZmODEwYjRiYzU+XSA/IGxvY2tfcmVsZWFzZV9ob2xkdGlt ZS5wYXJ0LjI5KzB4NzEvMHg3ZgogIFs8ZmZmZmZmZmY4MTBkZGViZj5dID8gcmVhZF9zZXFjb3Vu dF9iZWdpbi5jb25zdHByb3AuMjcrMHg1Zi8weDc2CiAgWzxmZmZmZmZmZjgxMGI2MjkyPl0gPyB0 cmFjZV9oYXJkaXJxc19vbl9jYWxsZXIrMHgxN2QvMHgxOTkKICBbPGZmZmZmZmZmODExYjE0ZDU+ XSA/IF9fZmdldF9saWdodCsweDUwLzB4NzgKICBbPGZmZmZmZmZmODE3ZDk4MDg+XSBfX3N5c19z ZW5kbXNnKzB4NDIvMHg2MAogIFs8ZmZmZmZmZmY4MTdkOTgzOD5dIFN5U19zZW5kbXNnKzB4MTIv MHgxYwogIFs8ZmZmZmZmZmY4MWE1MGU5Nz5dIHN5c3RlbV9jYWxsX2Zhc3RwYXRoKzB4MTIvMHg2 ZgogLS0tWyBlbmQgdHJhY2UgZWYyOWQzZmIyOGU5N2FlNyBdLS0tCgpGb3IgbG9uZyB0ZXJtLCB3 ZSBwcm9iYWJseSBuZWVkIHRvIGNsZWFuIHVwIHRoZSBxZGlzY19ncmFmdCgpIGNvZGUKaW4gY2Fz ZSBpdCBoaWRlcyBvdGhlciBidWdzIGxpa2UgdGhpcy4KCkZpeGVzOiA5NWRjMTkyOTlmNzQgKCJw a3Rfc2NoZWQ6IGdpdmUgdmlzaWJpbGl0eSB0byBtcSBzbGF2ZSBxZGlzY3MiKQpDYzogSmFtYWwg SGFkaSBTYWxpbSA8amhzQG1vamF0YXR1LmNvbT4KU2lnbmVkLW9mZi1ieTogQ29uZyBXYW5nIDx4 aXlvdS53YW5nY29uZ0BnbWFpbC5jb20+CkFja2VkLWJ5OiBFcmljIER1bWF6ZXQgPGVkdW1hemV0 QGdvb2dsZS5jb20+ClNpZ25lZC1vZmYtYnk6IERhdmlkIFMuIE1pbGxlciA8ZGF2ZW1AZGF2ZW1s b2Z0Lm5ldD4KLS0tCiBuZXQvc2NoZWQvc2NoX2FwaS5jIHwgMTAgKysrKysrLS0tLQogMSBmaWxl IGNoYW5nZWQsIDYgaW5zZXJ0aW9ucygrKSwgNCBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9u ZXQvc2NoZWQvc2NoX2FwaS5jIGIvbmV0L3NjaGVkL3NjaF9hcGkuYwppbmRleCAyNDNiN2QxLi5k OWMyZWU2IDEwMDY0NAotLS0gYS9uZXQvc2NoZWQvc2NoX2FwaS5jCisrKyBiL25ldC9zY2hlZC9z Y2hfYXBpLmMKQEAgLTgxNSwxMCArODE1LDggQEAgc3RhdGljIGludCBxZGlzY19ncmFmdChzdHJ1 Y3QgbmV0X2RldmljZSAqZGV2LCBzdHJ1Y3QgUWRpc2MgKnBhcmVudCwKIAkJaWYgKGRldi0+Zmxh Z3MgJiBJRkZfVVApCiAJCQlkZXZfZGVhY3RpdmF0ZShkZXYpOwogCi0JCWlmIChuZXcgJiYgbmV3 LT5vcHMtPmF0dGFjaCkgewotCQkJbmV3LT5vcHMtPmF0dGFjaChuZXcpOwotCQkJbnVtX3EgPSAw OwotCQl9CisJCWlmIChuZXcgJiYgbmV3LT5vcHMtPmF0dGFjaCkKKwkJCWdvdG8gc2tpcDsKIAog CQlmb3IgKGkgPSAwOyBpIDwgbnVtX3E7IGkrKykgewogCQkJc3RydWN0IG5ldGRldl9xdWV1ZSAq ZGV2X3F1ZXVlID0gZGV2X2luZ3Jlc3NfcXVldWUoZGV2KTsKQEAgLTgzNCwxMiArODMyLDE2IEBA IHN0YXRpYyBpbnQgcWRpc2NfZ3JhZnQoc3RydWN0IG5ldF9kZXZpY2UgKmRldiwgc3RydWN0IFFk aXNjICpwYXJlbnQsCiAJCQkJcWRpc2NfZGVzdHJveShvbGQpOwogCQl9CiAKK3NraXA6CiAJCWlm ICghaW5ncmVzcykgewogCQkJbm90aWZ5X2FuZF9kZXN0cm95KG5ldCwgc2tiLCBuLCBjbGFzc2lk LAogCQkJCQkgICBkZXYtPnFkaXNjLCBuZXcpOwogCQkJaWYgKG5ldyAmJiAhbmV3LT5vcHMtPmF0 dGFjaCkKIAkJCQlhdG9taWNfaW5jKCZuZXctPnJlZmNudCk7CiAJCQlkZXYtPnFkaXNjID0gbmV3 ID8gOiAmbm9vcF9xZGlzYzsKKworCQkJaWYgKG5ldyAmJiBuZXctPm9wcy0+YXR0YWNoKQorCQkJ CW5ldy0+b3BzLT5hdHRhY2gobmV3KTsKIAkJfSBlbHNlIHsKIAkJCW5vdGlmeV9hbmRfZGVzdHJv eShuZXQsIHNrYiwgbiwgY2xhc3NpZCwgb2xkLCBuZXcpOwogCQl9Ci0tIAoyLjEuMAoKCkZyb20g ZWNmMmJlOGRjZDI3YmRmMDhhYjJhNzQ2YjAyNmQ2OWI2YTZjMWIyYiBNb24gU2VwIDE3IDAwOjAw OjAwIDIwMDEKRnJvbTogSmFzb24gR3VudGhvcnBlIDxqZ3VudGhvcnBlQG9ic2lkaWFucmVzZWFy Y2guY29tPgpEYXRlOiBUdWUsIDI2IE1heSAyMDE1IDE3OjMwOjE3IC0wNjAwClN1YmplY3Q6IFtQ QVRDSCAxOS8yN10gc2N0cDogRml4IG1hbmdsZWQgSVB2NCBhZGRyZXNzZXMgb24gYSBJUHY2IGxp c3RlbmluZwogc29ja2V0CgpbIFVwc3RyZWFtIGNvbW1pdCA5MzAyZDdiYjBjNWNkNDZiZTU3MDY4 NTkzMDFmMThjMTM3YjI0MzlmIF0KCnNjdHBfdjRfbWFwX3Y2IHdhcyBzdWJ0bHkgd3JpdGluZyBh bmQgcmVhZGluZyBmcm9tIG1lbWJlcnMKb2YgYSB1bmlvbiBpbiBhIHdheSB0aGUgY2xvYmJlcmVk IGRhdGEgaXQgbmVlZGVkIHRvIHJlYWQgYmVmb3JlCml0IHJlYWQgaXQuCgpaZXJvaW5nIHRoZSB2 NiBmbG93aW5mbyBvdmVyd3JpdGVzIHRoZSB2NCBzaW5fYWRkciB3aXRoIDAsIG1lYW5pbmcKdGhh dCBldmVyeSBwbGFjZSB0aGF0IGNhbGxzIHNjdHBfdjRfbWFwX3Y2IGdldHMgOjpmZmZmOjAuMC4w LjAgYXMgdGhlCnJlc3VsdC4KClJlb3JkZXIgdGhpbmdzIHRvIGd1YXJhbnRlZSBjb3JyZWN0IGJl aGF2aW91ciBubyBtYXR0ZXIgd2hhdCB0aGUKdW5pb24gbGF5b3V0IGlzLgoKVGhpcyBpbXBhY3Rz IHVzZXIgc3BhY2UgY2xpZW50cyB0aGF0IG9wZW4gYW4gSVB2NiBTQ1RQIHNvY2tldCBhbmQKcmVj ZWl2ZSBJUHY0IGNvbm5lY3Rpb25zLiBQcmlvciB0byAyOTllZSB1c2VyIHNwYWNlIHdvdWxkIHNl ZSBhCnNvY2thZGRyIHdpdGggQUZfSU5FVCBhbmQgYSBjb3JyZWN0IGFkZHJlc3MsIGFmdGVyIDI5 OWVlIHRoZSBzb2NrYWRkcgppcyBBRl9JTkVUNiwgYnV0IHRoZSBhZGRyZXNzIGlzIHdyb25nLgoK Rml4ZXM6IDI5OWVlMTIzZTE5OCAoc2N0cDogRml4dXAgdjRtYXBwZWQgYmVoYXZpb3VyIHRvIGNv bXBseSB3aXRoIFNvY2sgQVBJKQpTaWduZWQtb2ZmLWJ5OiBKYXNvbiBHdW50aG9ycGUgPGpndW50 aG9ycGVAb2JzaWRpYW5yZXNlYXJjaC5jb20+CkFja2VkLWJ5OiBEYW5pZWwgQm9ya21hbm4gPGRh bmllbEBpb2dlYXJib3gubmV0PgpBY2tlZC1ieTogTmVpbCBIb3JtYW4gPG5ob3JtYW5AdHV4ZHJp dmVyLmNvbT4KU2lnbmVkLW9mZi1ieTogRGF2aWQgUy4gTWlsbGVyIDxkYXZlbUBkYXZlbWxvZnQu bmV0PgotLS0KIGluY2x1ZGUvbmV0L3NjdHAvc2N0cC5oIHwgNyArKysrKy0tCiAxIGZpbGUgY2hh bmdlZCwgNSBpbnNlcnRpb25zKCspLCAyIGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL2luY2x1 ZGUvbmV0L3NjdHAvc2N0cC5oIGIvaW5jbHVkZS9uZXQvc2N0cC9zY3RwLmgKaW5kZXggODU2ZjAx Yy4uMjMwNzc1ZiAxMDA2NDQKLS0tIGEvaW5jbHVkZS9uZXQvc2N0cC9zY3RwLmgKKysrIGIvaW5j bHVkZS9uZXQvc2N0cC9zY3RwLmgKQEAgLTU3MSwxMSArNTcxLDE0IEBAIHN0YXRpYyBpbmxpbmUg dm9pZCBzY3RwX3Y2X21hcF92NCh1bmlvbiBzY3RwX2FkZHIgKmFkZHIpCiAvKiBNYXAgdjQgYWRk cmVzcyB0byB2NC1tYXBwZWQgdjYgYWRkcmVzcyAqLwogc3RhdGljIGlubGluZSB2b2lkIHNjdHBf djRfbWFwX3Y2KHVuaW9uIHNjdHBfYWRkciAqYWRkcikKIHsKKwlfX2JlMTYgcG9ydDsKKworCXBv cnQgPSBhZGRyLT52NC5zaW5fcG9ydDsKKwlhZGRyLT52Ni5zaW42X2FkZHIuczZfYWRkcjMyWzNd ID0gYWRkci0+djQuc2luX2FkZHIuc19hZGRyOworCWFkZHItPnY2LnNpbjZfcG9ydCA9IHBvcnQ7 CiAJYWRkci0+djYuc2luNl9mYW1pbHkgPSBBRl9JTkVUNjsKIAlhZGRyLT52Ni5zaW42X2Zsb3dp bmZvID0gMDsKIAlhZGRyLT52Ni5zaW42X3Njb3BlX2lkID0gMDsKLQlhZGRyLT52Ni5zaW42X3Bv cnQgPSBhZGRyLT52NC5zaW5fcG9ydDsKLQlhZGRyLT52Ni5zaW42X2FkZHIuczZfYWRkcjMyWzNd ID0gYWRkci0+djQuc2luX2FkZHIuc19hZGRyOwogCWFkZHItPnY2LnNpbjZfYWRkci5zNl9hZGRy MzJbMF0gPSAwOwogCWFkZHItPnY2LnNpbjZfYWRkci5zNl9hZGRyMzJbMV0gPSAwOwogCWFkZHIt PnY2LnNpbjZfYWRkci5zNl9hZGRyMzJbMl0gPSBodG9ubCgweDAwMDBmZmZmKTsKLS0gCjIuMS4w CgoKRnJvbSA0MGUwNWRlNTM1NjU2MTk3YzVhYWMxNGE3ZmIwYWY1NTc5YTI3N2QwIE1vbiBTZXAg MTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBFcmljIER1bWF6ZXQgPGVkdW1hemV0QGdvb2dsZS5jb20+ CkRhdGU6IFRodSwgMjggTWF5IDIwMTUgMDQ6NDI6NTQgLTA3MDAKU3ViamVjdDogW1BBVENIIDIw LzI3XSBicmlkZ2U6IGZpeCBicl9tdWx0aWNhc3RfcXVlcnlfZXhwaXJlZCgpIGJ1ZwpNSU1FLVZl cnNpb246IDEuMApDb250ZW50LVR5cGU6IHRleHQvcGxhaW47IGNoYXJzZXQ9VVRGLTgKQ29udGVu dC1UcmFuc2Zlci1FbmNvZGluZzogOGJpdAoKWyBVcHN0cmVhbSBjb21taXQgNzFkOWY2MTQ5Y2Fj OGZjNjY0NmFkZmIyYTZmM2IwZGU2ZGRkMjNmNiBdCgpicl9tdWx0aWNhc3RfcXVlcnlfZXhwaXJl ZCgpIHF1ZXJpZXIgYXJndW1lbnQgaXMgYSBwb2ludGVyIHRvCmEgc3RydWN0IGJyaWRnZV9tY2Fz dF9xdWVyaWVyIDoKCnN0cnVjdCBicmlkZ2VfbWNhc3RfcXVlcmllciB7CiAgICAgICAgc3RydWN0 IGJyX2lwIGFkZHI7CiAgICAgICAgc3RydWN0IG5ldF9icmlkZ2VfcG9ydCBfX3JjdSAgICAqcG9y dDsKfTsKCkludGVudCBvZiB0aGUgY29kZSB3YXMgdG8gY2xlYXIgcG9ydCBmaWVsZCwgbm90IHRo ZSBwb2ludGVyIHRvIHF1ZXJpZXIuCgpGaXhlczogMmNkNDE0MzE5MmU4ICgiYnJpZGdlOiBtZW1v cml6ZSBhbmQgZXhwb3J0IHNlbGVjdGVkIElHTVAvTUxEIHF1ZXJpZXIgcG9ydCIpClNpZ25lZC1v ZmYtYnk6IEVyaWMgRHVtYXpldCA8ZWR1bWF6ZXRAZ29vZ2xlLmNvbT4KQWNrZWQtYnk6IFRoYWRl dSBMaW1hIGRlIFNvdXphIENhc2NhcmRvIDxjYXNjYXJkb0ByZWRoYXQuY29tPgpBY2tlZC1ieTog TGludXMgTMO8c3NpbmcgPGxpbnVzLmx1ZXNzaW5nQGMwZDMuYmx1ZT4KQ2M6IExpbnVzIEzDvHNz aW5nIDxsaW51cy5sdWVzc2luZ0B3ZWIuZGU+CkNjOiBTdGVpbmFyIEguIEd1bmRlcnNvbiA8c2Vz c2VAc2FtZnVuZGV0Lm5vPgpTaWduZWQtb2ZmLWJ5OiBEYXZpZCBTLiBNaWxsZXIgPGRhdmVtQGRh dmVtbG9mdC5uZXQ+Ci0tLQogbmV0L2JyaWRnZS9icl9tdWx0aWNhc3QuYyB8IDIgKy0KIDEgZmls ZSBjaGFuZ2VkLCAxIGluc2VydGlvbigrKSwgMSBkZWxldGlvbigtKQoKZGlmZiAtLWdpdCBhL25l dC9icmlkZ2UvYnJfbXVsdGljYXN0LmMgYi9uZXQvYnJpZGdlL2JyX211bHRpY2FzdC5jCmluZGV4 IGNkMDIxODUuLmIwYWVlNzggMTAwNjQ0Ci0tLSBhL25ldC9icmlkZ2UvYnJfbXVsdGljYXN0LmMK KysrIGIvbmV0L2JyaWRnZS9icl9tdWx0aWNhc3QuYwpAQCAtMTgyMSw3ICsxODIxLDcgQEAgc3Rh dGljIHZvaWQgYnJfbXVsdGljYXN0X3F1ZXJ5X2V4cGlyZWQoc3RydWN0IG5ldF9icmlkZ2UgKmJy LAogCWlmIChxdWVyeS0+c3RhcnR1cF9zZW50IDwgYnItPm11bHRpY2FzdF9zdGFydHVwX3F1ZXJ5 X2NvdW50KQogCQlxdWVyeS0+c3RhcnR1cF9zZW50Kys7CiAKLQlSQ1VfSU5JVF9QT0lOVEVSKHF1 ZXJpZXIsIE5VTEwpOworCVJDVV9JTklUX1BPSU5URVIocXVlcmllci0+cG9ydCwgTlVMTCk7CiAJ YnJfbXVsdGljYXN0X3NlbmRfcXVlcnkoYnIsIE5VTEwsIHF1ZXJ5KTsKIAlzcGluX3VubG9jaygm YnItPm11bHRpY2FzdF9sb2NrKTsKIH0KLS0gCjIuMS4wCgoKRnJvbSBkMDk1MjQwNzFiNjVmYThk YmViOTE3NjdhZTFlMDNlOGVlN2RkNWFkIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBF cmljIER1bWF6ZXQgPGVkdW1hemV0QGdvb2dsZS5jb20+CkRhdGU6IFNhdCwgMzAgTWF5IDIwMTUg MDk6MTY6NTMgLTA3MDAKU3ViamVjdDogW1BBVENIIDIxLzI3XSB1ZHA6IGZpeCBiZWhhdmlvciBv ZiB3cm9uZyBjaGVja3N1bXMKClsgVXBzdHJlYW0gY29tbWl0IGJlYjM5ZGI1OWQxNDk5MGU0MDFl MjM1ZmFmNjZhNmI5YjMxMjQwYjAgXQoKV2UgaGF2ZSB0d28gcHJvYmxlbXMgaW4gVURQIHN0YWNr IHJlbGF0ZWQgdG8gYm9ndXMgY2hlY2tzdW1zIDoKCjEpIFdlIHJldHVybiAtRUFHQUlOIHRvIGFw cGxpY2F0aW9uIGV2ZW4gaWYgcmVjZWl2ZSBxdWV1ZSBpcyBub3QgZW1wdHkuCiAgIFRoaXMgYnJl YWtzIGFwcGxpY2F0aW9ucyB1c2luZyBlZGdlIHRyaWdnZXIgZXBvbGwoKQoKMikgVW5kZXIgVURQ IGZsb29kLCB3ZSBjYW4gbG9vcCBmb3JldmVyIHdpdGhvdXQgeWllbGRpbmcgdG8gb3RoZXIKICAg cHJvY2Vzc2VzLCBwb3RlbnRpYWxseSBoYW5naW5nIHRoZSBob3N0LCBlc3BlY2lhbGx5IG9uIG5v biBTTVAuCgpUaGlzIHBhdGNoIGlzIGFuIGF0dGVtcHQgdG8gbWFrZSB0aGluZ3MgYmV0dGVyLgoK V2UgbWlnaHQgaW4gdGhlIGZ1dHVyZSBhZGQgZXh0cmEgc3VwcG9ydCBmb3IgcnQgYXBwbGljYXRp b25zCndhbnRpbmcgdG8gYmV0dGVyIGNvbnRyb2wgdGltZSBzcGVudCBkb2luZyBhIHJlY3YoKSBp biBhIGhvc3RpbGUKZW52aXJvbm1lbnQuIEZvciBleGFtcGxlIHdlIGNvdWxkIHZhbGlkYXRlIGNo ZWNrc3VtcyBiZWZvcmUgcXVldWluZwpwYWNrZXRzIGluIHNvY2tldCByZWNlaXZlIHF1ZXVlLgoK U2lnbmVkLW9mZi1ieTogRXJpYyBEdW1hemV0IDxlZHVtYXpldEBnb29nbGUuY29tPgpDYzogV2ls bGVtIGRlIEJydWlqbiA8d2lsbGVtYkBnb29nbGUuY29tPgpTaWduZWQtb2ZmLWJ5OiBEYXZpZCBT LiBNaWxsZXIgPGRhdmVtQGRhdmVtbG9mdC5uZXQ+Ci0tLQogbmV0L2lwdjQvdWRwLmMgfCA2ICsr LS0tLQogbmV0L2lwdjYvdWRwLmMgfCA2ICsrLS0tLQogMiBmaWxlcyBjaGFuZ2VkLCA0IGluc2Vy dGlvbnMoKyksIDggZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvbmV0L2lwdjQvdWRwLmMgYi9u ZXQvaXB2NC91ZHAuYwppbmRleCA5N2VmMWY4Yi4uZTA5Y2Q0NyAxMDA2NDQKLS0tIGEvbmV0L2lw djQvdWRwLmMKKysrIGIvbmV0L2lwdjQvdWRwLmMKQEAgLTEzNDgsMTAgKzEzNDgsOCBAQCBjc3Vt X2NvcHlfZXJyOgogCX0KIAl1bmxvY2tfc29ja19mYXN0KHNrLCBzbG93KTsKIAotCWlmIChub2Js b2NrKQotCQlyZXR1cm4gLUVBR0FJTjsKLQotCS8qIHN0YXJ0aW5nIG92ZXIgZm9yIGEgbmV3IHBh Y2tldCAqLworCS8qIHN0YXJ0aW5nIG92ZXIgZm9yIGEgbmV3IHBhY2tldCwgYnV0IGNoZWNrIGlm IHdlIG5lZWQgdG8geWllbGQgKi8KKwljb25kX3Jlc2NoZWQoKTsKIAltc2ctPm1zZ19mbGFncyAm PSB+TVNHX1RSVU5DOwogCWdvdG8gdHJ5X2FnYWluOwogfQpkaWZmIC0tZ2l0IGEvbmV0L2lwdjYv dWRwLmMgYi9uZXQvaXB2Ni91ZHAuYwppbmRleCAwYzgwY2E3Li4xYzk1MTJhIDEwMDY0NAotLS0g YS9uZXQvaXB2Ni91ZHAuYworKysgYi9uZXQvaXB2Ni91ZHAuYwpAQCAtNTI4LDEwICs1MjgsOCBA QCBjc3VtX2NvcHlfZXJyOgogCX0KIAl1bmxvY2tfc29ja19mYXN0KHNrLCBzbG93KTsKIAotCWlm IChub2Jsb2NrKQotCQlyZXR1cm4gLUVBR0FJTjsKLQotCS8qIHN0YXJ0aW5nIG92ZXIgZm9yIGEg bmV3IHBhY2tldCAqLworCS8qIHN0YXJ0aW5nIG92ZXIgZm9yIGEgbmV3IHBhY2tldCwgYnV0IGNo ZWNrIGlmIHdlIG5lZWQgdG8geWllbGQgKi8KKwljb25kX3Jlc2NoZWQoKTsKIAltc2ctPm1zZ19m bGFncyAmPSB+TVNHX1RSVU5DOwogCWdvdG8gdHJ5X2FnYWluOwogfQotLSAKMi4xLjAKCgpGcm9t IDhlMzg5NmUzYThiZWUzZDNkMDkzYTViYTJmMmQyMGI5YWE0NjFkNDYgTW9uIFNlcCAxNyAwMDow MDowMCAyMDAxCkZyb206IE5lYWwgQ2FyZHdlbGwgPG5jYXJkd2VsbEBnb29nbGUuY29tPgpEYXRl OiBGcmksIDI5IE1heSAyMDE1IDEzOjQ3OjA3IC0wNDAwClN1YmplY3Q6IFtQQVRDSCAyMi8yN10g dGNwOiBmaXggY2hpbGQgc29ja2V0cyB0byB1c2Ugc3lzdGVtIGRlZmF1bHQgY29uZ2VzdGlvbgog Y29udHJvbCBpZiBub3Qgc2V0CgpbIFVwc3RyZWFtIGNvbW1pdCA5Zjk1MDQxNWU0ZTI4ZTdjZmFl MmU0MTZiNDNlODYyZTgxMDFkOTk2IF0KCkxpbnV4IDMuMTcgYW5kIGVhcmxpZXIgYXJlIGV4cGxp Y2l0bHkgZW5naW5lZXJlZCBzbyB0aGF0IGlmIHRoZSBhcHAKZG9lc24ndCBzcGVjaWZpY2FsbHkg cmVxdWVzdCBhIENDIG1vZHVsZSBvbiBhIGxpc3RlbmVyIGJlZm9yZSB0aGUgU1lOCmFycml2ZXMs IHRoZW4gdGhlIGNoaWxkIGdldHMgdGhlIHN5c3RlbSBkZWZhdWx0IENDIHdoZW4gdGhlIGNvbm5l Y3Rpb24KaXMgZXN0YWJsaXNoZWQuIFNlZSB0Y3BfaW5pdF9jb25nZXN0aW9uX2NvbnRyb2woKSBp biAzLjE3IG9yIGVhcmxpZXIsCndoaWNoIHNheXMgImlmIG5vIGNob2ljZSBtYWRlIHlldCBhc3Np Z24gdGhlIGN1cnJlbnQgdmFsdWUgc2V0IGFzCmRlZmF1bHQiLiBUaGUgY2hhbmdlICgibmV0OiB0 Y3A6IGFzc2lnbiB0Y3AgY29uZ19vcHMgd2hlbiB0Y3Agc2sgaXMKY3JlYXRlZCIpIGFsdGVyZWQg dGhlc2Ugc2VtYW50aWNzLCBzbyB0aGF0IGNoaWxkcmVuIGdvdCB0aGVpciBwYXJlbnQKbGlzdGVu ZXIncyBjb25nZXN0aW9uIGNvbnRyb2wgZXZlbiBpZiB0aGUgc3lzdGVtIGRlZmF1bHQgaGFkIGNo YW5nZWQKYWZ0ZXIgdGhlIGxpc3RlbmVyIHdhcyBjcmVhdGVkLgoKVGhpcyBjb21taXQgcmV0dXJu cyB0byB0aG9zZSBvcmlnaW5hbCBzZW1hbnRpY3MgZnJvbSAzLjE3IGFuZCBlYXJsaWVyLApzaW5j ZSB0aGV5IGFyZSB0aGUgb3JpZ2luYWwgc2VtYW50aWNzIGZyb20gMjAwNyBpbiA0ZDRkM2QxZTgg KCJbVENQXToKQ29uZ2VzdGlvbiBjb250cm9sIGluaXRpYWxpemF0aW9uLiIpLCBhbmQgc29tZSBM aW51eCBjb25nZXN0aW9uCmNvbnRyb2wgd29ya2Zsb3dzIGRlcGVuZCBvbiB0aGF0LgoKSW4gc3Vt bWFyeSwgaWYgYSBsaXN0ZW5lciBzb2NrZXQgc3BlY2lmaWNhbGx5IHNldHMgVENQX0NPTkdFU1RJ T04gdG8KIngiLCBvciB0aGUgcm91dGUgbG9ja3MgdGhlIENDIG1vZHVsZSB0byAieCIsIHRoZW4g dGhlIGNoaWxkIGdldHMKIngiLiBPdGhlcndpc2UgdGhlIGNoaWxkIGdldHMgY3VycmVudCBzeXN0 ZW0gZGVmYXVsdCBmcm9tCm5ldC5pcHY0LnRjcF9jb25nZXN0aW9uX2NvbnRyb2wuIFRoYXQncyB0 aGUgYmVoYXZpb3IgaW4gMy4xNyBhbmQKZWFybGllciwgYW5kIHRoaXMgY29tbWl0IHJlc3RvcmVz IHRoYXQuCgpGaXhlczogNTVkODY5NGZhODJjICgibmV0OiB0Y3A6IGFzc2lnbiB0Y3AgY29uZ19v cHMgd2hlbiB0Y3Agc2sgaXMgY3JlYXRlZCIpCkNjOiBGbG9yaWFuIFdlc3RwaGFsIDxmd0BzdHJs ZW4uZGU+CkNjOiBEYW5pZWwgQm9ya21hbm4gPGRib3JrbWFuQHJlZGhhdC5jb20+CkNjOiBHbGVu biBKdWRkIDxnbGVubi5qdWRkQG1vcmdhbnN0YW5sZXkuY29tPgpDYzogU3RlcGhlbiBIZW1taW5n ZXIgPHN0ZXBoZW5AbmV0d29ya3BsdW1iZXIub3JnPgpTaWduZWQtb2ZmLWJ5OiBOZWFsIENhcmR3 ZWxsIDxuY2FyZHdlbGxAZ29vZ2xlLmNvbT4KU2lnbmVkLW9mZi1ieTogRXJpYyBEdW1hemV0IDxl ZHVtYXpldEBnb29nbGUuY29tPgpTaWduZWQtb2ZmLWJ5OiBZdWNodW5nIENoZW5nIDx5Y2hlbmdA Z29vZ2xlLmNvbT4KQWNrZWQtYnk6IERhbmllbCBCb3JrbWFubiA8ZGFuaWVsQGlvZ2VhcmJveC5u ZXQ+ClNpZ25lZC1vZmYtYnk6IERhdmlkIFMuIE1pbGxlciA8ZGF2ZW1AZGF2ZW1sb2Z0Lm5ldD4K LS0tCiBpbmNsdWRlL25ldC9pbmV0X2Nvbm5lY3Rpb25fc29jay5oIHwgMyArKy0KIG5ldC9pcHY0 L3RjcF9jb25nLmMgICAgICAgICAgICAgICAgfCA1ICsrKystCiBuZXQvaXB2NC90Y3BfbWluaXNv Y2tzLmMgICAgICAgICAgIHwgNSArKysrLQogMyBmaWxlcyBjaGFuZ2VkLCAxMCBpbnNlcnRpb25z KCspLCAzIGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL2luY2x1ZGUvbmV0L2luZXRfY29ubmVj dGlvbl9zb2NrLmggYi9pbmNsdWRlL25ldC9pbmV0X2Nvbm5lY3Rpb25fc29jay5oCmluZGV4IDU5 NzZiZGUuLjlmZTg2NWMgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUvbmV0L2luZXRfY29ubmVjdGlvbl9z b2NrLmgKKysrIGIvaW5jbHVkZS9uZXQvaW5ldF9jb25uZWN0aW9uX3NvY2suaApAQCAtOTgsNyAr OTgsOCBAQCBzdHJ1Y3QgaW5ldF9jb25uZWN0aW9uX3NvY2sgewogCWNvbnN0IHN0cnVjdCB0Y3Bf Y29uZ2VzdGlvbl9vcHMgKmljc2tfY2Ffb3BzOwogCWNvbnN0IHN0cnVjdCBpbmV0X2Nvbm5lY3Rp b25fc29ja19hZl9vcHMgKmljc2tfYWZfb3BzOwogCXVuc2lnbmVkIGludAkJICAoKmljc2tfc3lu Y19tc3MpKHN0cnVjdCBzb2NrICpzaywgdTMyIHBtdHUpOwotCV9fdTgJCQkgIGljc2tfY2Ffc3Rh dGU6NywKKwlfX3U4CQkJICBpY3NrX2NhX3N0YXRlOjYsCisJCQkJICBpY3NrX2NhX3NldHNvY2tv cHQ6MSwKIAkJCQkgIGljc2tfY2FfZHN0X2xvY2tlZDoxOwogCV9fdTgJCQkgIGljc2tfcmV0cmFu c21pdHM7CiAJX191OAkJCSAgaWNza19wZW5kaW5nOwpkaWZmIC0tZ2l0IGEvbmV0L2lwdjQvdGNw X2NvbmcuYyBiL25ldC9pcHY0L3RjcF9jb25nLmMKaW5kZXggNjI4NTZlMS4uOWQyZmJkOCAxMDA2 NDQKLS0tIGEvbmV0L2lwdjQvdGNwX2NvbmcuYworKysgYi9uZXQvaXB2NC90Y3BfY29uZy5jCkBA IC0xODcsNiArMTg3LDcgQEAgc3RhdGljIHZvaWQgdGNwX3JlaW5pdF9jb25nZXN0aW9uX2NvbnRy b2woc3RydWN0IHNvY2sgKnNrLAogCiAJdGNwX2NsZWFudXBfY29uZ2VzdGlvbl9jb250cm9sKHNr KTsKIAlpY3NrLT5pY3NrX2NhX29wcyA9IGNhOworCWljc2stPmljc2tfY2Ffc2V0c29ja29wdCA9 IDE7CiAKIAlpZiAoc2stPnNrX3N0YXRlICE9IFRDUF9DTE9TRSAmJiBpY3NrLT5pY3NrX2NhX29w cy0+aW5pdCkKIAkJaWNzay0+aWNza19jYV9vcHMtPmluaXQoc2spOwpAQCAtMzM1LDggKzMzNiwx MCBAQCBpbnQgdGNwX3NldF9jb25nZXN0aW9uX2NvbnRyb2woc3RydWN0IHNvY2sgKnNrLCBjb25z dCBjaGFyICpuYW1lKQogCXJjdV9yZWFkX2xvY2soKTsKIAljYSA9IF9fdGNwX2NhX2ZpbmRfYXV0 b2xvYWQobmFtZSk7CiAJLyogTm8gY2hhbmdlIGFza2luZyBmb3IgZXhpc3RpbmcgdmFsdWUgKi8K LQlpZiAoY2EgPT0gaWNzay0+aWNza19jYV9vcHMpCisJaWYgKGNhID09IGljc2stPmljc2tfY2Ff b3BzKSB7CisJCWljc2stPmljc2tfY2Ffc2V0c29ja29wdCA9IDE7CiAJCWdvdG8gb3V0OworCX0K IAlpZiAoIWNhKQogCQllcnIgPSAtRU5PRU5UOwogCWVsc2UgaWYgKCEoKGNhLT5mbGFncyAmIFRD UF9DT05HX05PTl9SRVNUUklDVEVEKSB8fApkaWZmIC0tZ2l0IGEvbmV0L2lwdjQvdGNwX21pbmlz b2Nrcy5jIGIvbmV0L2lwdjQvdGNwX21pbmlzb2Nrcy5jCmluZGV4IDExNDM3NDguLjUwMjc3YWYg MTAwNjQ0Ci0tLSBhL25ldC9pcHY0L3RjcF9taW5pc29ja3MuYworKysgYi9uZXQvaXB2NC90Y3Bf bWluaXNvY2tzLmMKQEAgLTQzNyw3ICs0MzcsMTAgQEAgdm9pZCB0Y3BfY2Ffb3BlbnJlcV9jaGls ZChzdHJ1Y3Qgc29jayAqc2ssIGNvbnN0IHN0cnVjdCBkc3RfZW50cnkgKmRzdCkKIAkJcmN1X3Jl YWRfdW5sb2NrKCk7CiAJfQogCi0JaWYgKCFjYV9nb3RfZHN0ICYmICF0cnlfbW9kdWxlX2dldChp Y3NrLT5pY3NrX2NhX29wcy0+b3duZXIpKQorCS8qIElmIG5vIHZhbGlkIGNob2ljZSBtYWRlIHll dCwgYXNzaWduIGN1cnJlbnQgc3lzdGVtIGRlZmF1bHQgY2EuICovCisJaWYgKCFjYV9nb3RfZHN0 ICYmCisJICAgICghaWNzay0+aWNza19jYV9zZXRzb2Nrb3B0IHx8CisJICAgICAhdHJ5X21vZHVs ZV9nZXQoaWNzay0+aWNza19jYV9vcHMtPm93bmVyKSkpCiAJCXRjcF9hc3NpZ25fY29uZ2VzdGlv bl9jb250cm9sKHNrKTsKIAogCXRjcF9zZXRfY2Ffc3RhdGUoc2ssIFRDUF9DQV9PcGVuKTsKLS0g CjIuMS4wCgoKRnJvbSA4ZWNiNjExM2I4MTg3YzU2YTM3MjBmYjVjYjE0OGIzZDk4ZjZhMjMwIE1v biBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBJYW4gQ2FtcGJlbGwgPElhbi5DYW1wYmVsbEBj aXRyaXguY29tPgpEYXRlOiBNb24sIDEgSnVuIDIwMTUgMTE6MzA6MjQgKzAxMDAKU3ViamVjdDog W1BBVENIIDIzLzI3XSB4ZW46IG5ldGJhY2s6IHJlYWQgaG90cGx1ZyBzY3JpcHQgb25jZSBhdCBz dGFydCBvZiBkYXkuCgpbIFVwc3RyZWFtIGNvbW1pdCAzMWE0MTg5ODZhNTg1MjAzNGQ1MjBhNWJh YjU0NjgyMWZmMWNjZjNkIF0KCldoZW4gd2UgY29tZSB0byB0ZWFyIHRoaW5ncyBkb3duIGluIG5l dGJhY2tfcmVtb3ZlKCkgYW5kIGdlbmVyYXRlIHRoZQp1ZXZlbnQgaXQgaXMgcG9zc2libGUgdGhh dCB0aGUgeGVuc3RvcmUgZGlyZWN0b3J5IGhhcyBhbHJlYWR5IGJlZW4KcmVtb3ZlZCAoZGV0YWls cyBiZWxvdykuCgpJbiBzdWNoIGNhc2VzIG5ldGJhY2tfdWV2ZW50KCkgd29uJ3QgYmUgYWJsZSB0 byByZWFkIHRoZSBob3RwbHVnCnNjcmlwdCBhbmQgd2lsbCB3cml0ZSBhIHhlbnN0b3JlIGVycm9y IG5vZGUuCgpBIHJlY2VudCBjaGFuZ2UgdG8gdGhlIGh5cGVydmlzb3IgZXhwb3NlZCB0aGlzIHJh Y2Ugc3VjaCB0aGF0IHdlIG5vdwpzb21ldGltZXMgbG9zZSBpdCAod2hlcmUgYXBwYXJlbnRseSB3 ZSBkaWRuJ3QgZXZlciBiZWZvcmUpLgoKSW5zdGVhZCByZWFkIHRoZSBob3RwbHVnIHNjcmlwdCBj b25maWd1cmF0aW9uIGR1cmluZyBzZXR1cCBhbmQgdXNlIGl0CmZvciB0aGUgbGlmZXRpbWUgb2Yg dGhlIGJhY2tlbmQgZGV2aWNlLgoKVGhlIGFwcGFyZW50bHkgbW9yZSBvYnZpb3VzIGZpeCBvZiBt b3ZpbmcgdGhlIHRyYW5zaXRpb24gdG8Kc3RhdGU9Q2xvc2VkIGluIG5ldGJhY2tfcmVtb3ZlKCkg dG8gYWZ0ZXIgdGhlIHVldmVudCBkb2VzIG5vdCB3b3JrCmJlY2F1c2UgaXQgaXMgcG9zc2libGUg dGhhdCB3ZSBhcmUgYWxyZWFkeSBpbiBzdGF0ZT1DbG9zZWQgKGluCnJlYWN0aW9uIHRvIHRoZSBn dWVzdCBoYXZpbmcgZGlzY29ubmVjdGVkIGFzIGl0IHNodXRkb3duKS4gQmVpbmcKYWxyZWFkeSBp biBDbG9zZWQgbWVhbnMgdGhlIHRvb2xzdGFjayBpcyBhdCBsaWJlcnR5IHRvIHN0YXJ0IHRlYXJp bmcKZG93biB0aGUgeGVuc3RvcmUgZGlyZWN0b3JpZXMuIEluIHByaW5jaXBhbCBpdCBtaWdodCBi ZSBwb3NzaWJsZSB0bwphcnJhbmdlIHRvIHVucmVnaXN0ZXIgdGhlIGRldmljZSBzb29uZXIgKGUu ZyBvbiB0cmFuc2l0aW9uIHRvIENsb3NpbmcpCnN1Y2ggdGhhdCB4ZW5zdG9yZSB3b3VsZCBzdGls bCBiZSB0aGVyZSBidXQgdGhpcyBzdGF0ZSBtYWNoaW5lIGlzCmZyYWdpbGUgYW5kIHByb25lIHRv IGFuZ2VyLi4uCgpBIG1vZGVybiBYZW4gc3lzdGVtIG9ubHkgcmVsaWVzIG9uIHRoZSBob3RwbHVn IHVldmVudCBmb3IgZHJpdmVyCmRvbWFpbnMsIHdoZW4gdGhlIGJhY2tlbmQgaXMgaW4gdGhlIHNh bWUgZG9tYWluIGFzIHRoZSB0b29sc3RhY2sgaXQKd2lsbCBydW4gdGhlIG5lY2Vzc2FyeSBzZXR1 cC90ZWFyZG93biBkaXJlY3RseSBpbiB0aGUgY29ycmVjdCBzZXF1ZW5jZQp3cnQgeGVuc3RvcmUg Y2hhbmdlcy4KClNpZ25lZC1vZmYtYnk6IElhbiBDYW1wYmVsbCA8aWFuLmNhbXBiZWxsQGNpdHJp eC5jb20+CkFja2VkLWJ5OiBXZWkgTGl1IDx3ZWkubGl1MkBjaXRyaXguY29tPgpTaWduZWQtb2Zm LWJ5OiBEYXZpZCBTLiBNaWxsZXIgPGRhdmVtQGRhdmVtbG9mdC5uZXQ+Ci0tLQogZHJpdmVycy9u ZXQveGVuLW5ldGJhY2sveGVuYnVzLmMgfCAzMyArKysrKysrKysrKysrKysrKysrLS0tLS0tLS0t LS0tLS0KIDEgZmlsZSBjaGFuZ2VkLCAxOSBpbnNlcnRpb25zKCspLCAxNCBkZWxldGlvbnMoLSkK CmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC94ZW4tbmV0YmFjay94ZW5idXMuYyBiL2RyaXZlcnMv bmV0L3hlbi1uZXRiYWNrL3hlbmJ1cy5jCmluZGV4IDc4NGE2MjQuLjE1MjEzMWEgMTAwNjQ0Ci0t LSBhL2RyaXZlcnMvbmV0L3hlbi1uZXRiYWNrL3hlbmJ1cy5jCisrKyBiL2RyaXZlcnMvbmV0L3hl bi1uZXRiYWNrL3hlbmJ1cy5jCkBAIC0zNCw2ICszNCw4IEBAIHN0cnVjdCBiYWNrZW5kX2luZm8g ewogCWVudW0geGVuYnVzX3N0YXRlIGZyb250ZW5kX3N0YXRlOwogCXN0cnVjdCB4ZW5idXNfd2F0 Y2ggaG90cGx1Z19zdGF0dXNfd2F0Y2g7CiAJdTggaGF2ZV9ob3RwbHVnX3N0YXR1c193YXRjaDox OworCisJY29uc3QgY2hhciAqaG90cGx1Z19zY3JpcHQ7CiB9OwogCiBzdGF0aWMgaW50IGNvbm5l Y3RfcmluZ3Moc3RydWN0IGJhY2tlbmRfaW5mbyAqYmUsIHN0cnVjdCB4ZW52aWZfcXVldWUgKnF1 ZXVlKTsKQEAgLTIzNiw2ICsyMzgsNyBAQCBzdGF0aWMgaW50IG5ldGJhY2tfcmVtb3ZlKHN0cnVj dCB4ZW5idXNfZGV2aWNlICpkZXYpCiAJCXhlbnZpZl9mcmVlKGJlLT52aWYpOwogCQliZS0+dmlm ID0gTlVMTDsKIAl9CisJa2ZyZWUoYmUtPmhvdHBsdWdfc2NyaXB0KTsKIAlrZnJlZShiZSk7CiAJ ZGV2X3NldF9kcnZkYXRhKCZkZXYtPmRldiwgTlVMTCk7CiAJcmV0dXJuIDA7CkBAIC0yNTMsNiAr MjU2LDcgQEAgc3RhdGljIGludCBuZXRiYWNrX3Byb2JlKHN0cnVjdCB4ZW5idXNfZGV2aWNlICpk ZXYsCiAJc3RydWN0IHhlbmJ1c190cmFuc2FjdGlvbiB4YnQ7CiAJaW50IGVycjsKIAlpbnQgc2c7 CisJY29uc3QgY2hhciAqc2NyaXB0OwogCXN0cnVjdCBiYWNrZW5kX2luZm8gKmJlID0ga3phbGxv YyhzaXplb2Yoc3RydWN0IGJhY2tlbmRfaW5mbyksCiAJCQkJCSAgR0ZQX0tFUk5FTCk7CiAJaWYg KCFiZSkgewpAQCAtMzQ1LDYgKzM0OSwxNSBAQCBzdGF0aWMgaW50IG5ldGJhY2tfcHJvYmUoc3Ry dWN0IHhlbmJ1c19kZXZpY2UgKmRldiwKIAlpZiAoZXJyKQogCQlwcl9kZWJ1ZygiRXJyb3Igd3Jp dGluZyBtdWx0aS1xdWV1ZS1tYXgtcXVldWVzXG4iKTsKIAorCXNjcmlwdCA9IHhlbmJ1c19yZWFk KFhCVF9OSUwsIGRldi0+bm9kZW5hbWUsICJzY3JpcHQiLCBOVUxMKTsKKwlpZiAoSVNfRVJSKHNj cmlwdCkpIHsKKwkJZXJyID0gUFRSX0VSUihzY3JpcHQpOworCQl4ZW5idXNfZGV2X2ZhdGFsKGRl diwgZXJyLCAicmVhZGluZyBzY3JpcHQiKTsKKwkJZ290byBmYWlsOworCX0KKworCWJlLT5ob3Rw bHVnX3NjcmlwdCA9IHNjcmlwdDsKKwogCWVyciA9IHhlbmJ1c19zd2l0Y2hfc3RhdGUoZGV2LCBY ZW5idXNTdGF0ZUluaXRXYWl0KTsKIAlpZiAoZXJyKQogCQlnb3RvIGZhaWw7CkBAIC0zNzcsMjIg KzM5MCwxNCBAQCBzdGF0aWMgaW50IG5ldGJhY2tfdWV2ZW50KHN0cnVjdCB4ZW5idXNfZGV2aWNl ICp4ZGV2LAogCQkJICBzdHJ1Y3Qga29ial91ZXZlbnRfZW52ICplbnYpCiB7CiAJc3RydWN0IGJh Y2tlbmRfaW5mbyAqYmUgPSBkZXZfZ2V0X2RydmRhdGEoJnhkZXYtPmRldik7Ci0JY2hhciAqdmFs OwogCi0JdmFsID0geGVuYnVzX3JlYWQoWEJUX05JTCwgeGRldi0+bm9kZW5hbWUsICJzY3JpcHQi LCBOVUxMKTsKLQlpZiAoSVNfRVJSKHZhbCkpIHsKLQkJaW50IGVyciA9IFBUUl9FUlIodmFsKTsK LQkJeGVuYnVzX2Rldl9mYXRhbCh4ZGV2LCBlcnIsICJyZWFkaW5nIHNjcmlwdCIpOwotCQlyZXR1 cm4gZXJyOwotCX0gZWxzZSB7Ci0JCWlmIChhZGRfdWV2ZW50X3ZhcihlbnYsICJzY3JpcHQ9JXMi LCB2YWwpKSB7Ci0JCQlrZnJlZSh2YWwpOwotCQkJcmV0dXJuIC1FTk9NRU07Ci0JCX0KLQkJa2Zy ZWUodmFsKTsKLQl9CisJaWYgKCFiZSkKKwkJcmV0dXJuIDA7CisKKwlpZiAoYWRkX3VldmVudF92 YXIoZW52LCAic2NyaXB0PSVzIiwgYmUtPmhvdHBsdWdfc2NyaXB0KSkKKwkJcmV0dXJuIC1FTk9N RU07CiAKLQlpZiAoIWJlIHx8ICFiZS0+dmlmKQorCWlmICghYmUtPnZpZikKIAkJcmV0dXJuIDA7 CiAKIAlyZXR1cm4gYWRkX3VldmVudF92YXIoZW52LCAidmlmPSVzIiwgYmUtPnZpZi0+ZGV2LT5u YW1lKTsKLS0gCjIuMS4wCgoKRnJvbSBhZjNlYjIwMzczNGYwYWNjMDdlYzEwNDc4Y2VjYzJmNWYy ZWM3YTI5IE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBTaGF3biBCb2hyZXIgPHNib2hy ZXJAcmdtYWR2aXNvcnMuY29tPgpEYXRlOiBXZWQsIDMgSnVuIDIwMTUgMTY6Mjc6MzggLTA1MDAK U3ViamVjdDogW1BBVENIIDI0LzI3XSBpcHY0L3VkcDogVmVyaWZ5IG11bHRpY2FzdCBncm91cCBp cyBvdXJzIGluCiB1cGRfdjRfZWFybHlfZGVtdXgoKQoKWyBVcHN0cmVhbSBjb21taXQgNmU1NDAz MDkzMjYxODhmNzY5ZTAzYmI0YzZkZDhmZjY3NTI5MzBjMiBdCgo0MjFiMzg4NWJmNmQ1NjM5MTI5 Nzg0NGY0M2ZiNzE1NGE2Mzk2ZTEyICJ1ZHA6IGlwdjQ6IEFkZCB1ZHAgZWFybHkKZGVtdXgiIGlu dHJvZHVjZWQgYSByZWdyZXNzaW9uIHRoYXQgYWxsb3dlZCBzb2NrZXRzIGJvdW5kIHRvIElOQURE Ul9BTlkKdG8gcmVjZWl2ZSBwYWNrZXRzIGZyb20gbXVsdGljYXN0IGdyb3VwcyB0aGF0IHRoZSBz b2NrZXQgaGFkIG5vdCBqb2luZWQuCkZvciBleGFtcGxlIGEgc29ja2V0IHRoYXQgaGFkIGpvaW5l ZCAyMjQuMTY4LjIuOSBjb3VsZCBhbHNvIHJlY2VpdmUKcGFja2V0cyBmcm9tIDIyNS4xNjguMi45 IGRlc3BpdGUgbm90IGhhdmluZyBqb2luZWQgdGhhdCBncm91cCBpZgppcF9lYXJseV9kZW11eCBp cyBlbmFibGVkLgoKRml4IHRoaXMgYnkgY2FsbGluZyBpcF9jaGVja19tY19yY3UoKSBpbiB1ZHBf djRfZWFybHlfZGVtdXgoKSB0byB2ZXJpZnkKdGhhdCB0aGUgbXVsdGljYXN0IHBhY2tldCBpcyBp bmRlZWQgb3Vycy4KClNpZ25lZC1vZmYtYnk6IFNoYXduIEJvaHJlciA8c2JvaHJlckByZ21hZHZp c29ycy5jb20+ClJlcG9ydGVkLWJ5OiBZdXJpaiBNLiBQbG90bmlrb3YgPFl1cmlqLlBsb3RuaWtv dkBva3RldGxhYnMucnU+ClNpZ25lZC1vZmYtYnk6IERhdmlkIFMuIE1pbGxlciA8ZGF2ZW1AZGF2 ZW1sb2Z0Lm5ldD4KLS0tCiBuZXQvaXB2NC91ZHAuYyB8IDE4ICsrKysrKysrKysrKysrKy0tLQog MSBmaWxlIGNoYW5nZWQsIDE1IGluc2VydGlvbnMoKyksIDMgZGVsZXRpb25zKC0pCgpkaWZmIC0t Z2l0IGEvbmV0L2lwdjQvdWRwLmMgYi9uZXQvaXB2NC91ZHAuYwppbmRleCBlMDljZDQ3Li41MWYx NzQ1IDEwMDY0NAotLS0gYS9uZXQvaXB2NC91ZHAuYworKysgYi9uZXQvaXB2NC91ZHAuYwpAQCAt OTAsNiArOTAsNyBAQAogI2luY2x1ZGUgPGxpbnV4L3NvY2tldC5oPgogI2luY2x1ZGUgPGxpbnV4 L3NvY2tpb3MuaD4KICNpbmNsdWRlIDxsaW51eC9pZ21wLmg+CisjaW5jbHVkZSA8bGludXgvaW5l dGRldmljZS5oPgogI2luY2x1ZGUgPGxpbnV4L2luLmg+CiAjaW5jbHVkZSA8bGludXgvZXJybm8u aD4KICNpbmNsdWRlIDxsaW51eC90aW1lci5oPgpAQCAtMTk2Niw2ICsxOTY3LDcgQEAgdm9pZCB1 ZHBfdjRfZWFybHlfZGVtdXgoc3RydWN0IHNrX2J1ZmYgKnNrYikKIAlzdHJ1Y3Qgc29jayAqc2s7 CiAJc3RydWN0IGRzdF9lbnRyeSAqZHN0OwogCWludCBkaWYgPSBza2ItPmRldi0+aWZpbmRleDsK KwlpbnQgb3VyczsKIAogCS8qIHZhbGlkYXRlIHRoZSBwYWNrZXQgKi8KIAlpZiAoIXBza2JfbWF5 X3B1bGwoc2tiLCBza2JfdHJhbnNwb3J0X29mZnNldChza2IpICsgc2l6ZW9mKHN0cnVjdCB1ZHBo ZHIpKSkKQEAgLTE5NzUsMTQgKzE5NzcsMjQgQEAgdm9pZCB1ZHBfdjRfZWFybHlfZGVtdXgoc3Ry dWN0IHNrX2J1ZmYgKnNrYikKIAl1aCA9IHVkcF9oZHIoc2tiKTsKIAogCWlmIChza2ItPnBrdF90 eXBlID09IFBBQ0tFVF9CUk9BRENBU1QgfHwKLQkgICAgc2tiLT5wa3RfdHlwZSA9PSBQQUNLRVRf TVVMVElDQVNUKQorCSAgICBza2ItPnBrdF90eXBlID09IFBBQ0tFVF9NVUxUSUNBU1QpIHsKKwkJ c3RydWN0IGluX2RldmljZSAqaW5fZGV2ID0gX19pbl9kZXZfZ2V0X3JjdShza2ItPmRldik7CisK KwkJaWYgKCFpbl9kZXYpCisJCQlyZXR1cm47CisKKwkJb3VycyA9IGlwX2NoZWNrX21jX3JjdShp bl9kZXYsIGlwaC0+ZGFkZHIsIGlwaC0+c2FkZHIsCisJCQkJICAgICAgIGlwaC0+cHJvdG9jb2wp OworCQlpZiAoIW91cnMpCisJCQlyZXR1cm47CiAJCXNrID0gX191ZHA0X2xpYl9tY2FzdF9kZW11 eF9sb29rdXAobmV0LCB1aC0+ZGVzdCwgaXBoLT5kYWRkciwKIAkJCQkJCSAgIHVoLT5zb3VyY2Us IGlwaC0+c2FkZHIsIGRpZik7Ci0JZWxzZSBpZiAoc2tiLT5wa3RfdHlwZSA9PSBQQUNLRVRfSE9T VCkKKwl9IGVsc2UgaWYgKHNrYi0+cGt0X3R5cGUgPT0gUEFDS0VUX0hPU1QpIHsKIAkJc2sgPSBf X3VkcDRfbGliX2RlbXV4X2xvb2t1cChuZXQsIHVoLT5kZXN0LCBpcGgtPmRhZGRyLAogCQkJCQkg ICAgIHVoLT5zb3VyY2UsIGlwaC0+c2FkZHIsIGRpZik7Ci0JZWxzZQorCX0gZWxzZSB7CiAJCXJl dHVybjsKKwl9CiAKIAlpZiAoIXNrKQogCQlyZXR1cm47Ci0tIAoyLjEuMAoKCkZyb20gZWJmMDIw MmU0NGQyMTg2NzIyY2ExNTRmNWU3ZDZlMmQ4MDM3YWViYSBNb24gU2VwIDE3IDAwOjAwOjAwIDIw MDEKRnJvbTogU3JpaGFyc2hhIEJhc2F2YXBhdG5hIDxzcmloYXJzaGEuYmFzYXZhcGF0bmFAYXZh Z290ZWNoLmNvbT4KRGF0ZTogRnJpLCA1IEp1biAyMDE1IDE1OjMzOjU5ICswNTMwClN1YmplY3Q6 IFtQQVRDSCAyNS8yN10gYmUybmV0OiBSZXBsYWNlIGRtYS9wY2lfYWxsb2NfY29oZXJlbnQoKSBj YWxscyB3aXRoCiBkbWFfemFsbG9jX2NvaGVyZW50KCkKClsgVXBzdHJlYW0gY29tbWl0IGU1MTAw MGRiNGM4ODAxNjVlYWIwNmVjMDk5MDYwNWYyNGU3NTIwM2YgXQoKVGhlcmUgYXJlIHNldmVyYWwg cGxhY2VzIGluIHRoZSBkcml2ZXIgKGFsbCBpbiBjb250cm9sIHBhdGhzKSB3aGVyZQpjb2hlcmVu dCBkbWEgbWVtb3J5IGlzIGJlaW5nIGFsbG9jYXRlZCB1c2luZyBlaXRoZXIgZG1hX2FsbG9jX2Nv aGVyZW50KCkKb3IgdGhlIGRlcHJlY2F0ZWQgcGNpX2FsbG9jX2NvbnNpc3RlbnQoKS4gQWxsIHRo ZXNlIGNhbGxzIHNob3VsZCBiZQpjaGFuZ2VkIHRvIHVzZSBkbWFfemFsbG9jX2NvaGVyZW50KCkg dG8gYXZvaWQgdW5pbml0aWFsaXplZCBmaWVsZHMgaW4KZGF0YSBzdHJ1Y3R1cmVzIGJhY2tlZCBi eSB0aGlzIG1lbW9yeS4KClJlcG9ydGVkLWJ5OiBKb2VyZyBSb2VkZWwgPGpyb2VkZWxAc3VzZS5k ZT4KVGVzdGVkLWJ5OiBKb2VyZyBSb2VkZWwgPGpyb2VkZWxAc3VzZS5kZT4KU2lnbmVkLW9mZi1i eTogU3JpaGFyc2hhIEJhc2F2YXBhdG5hIDxzcmloYXJzaGEuYmFzYXZhcGF0bmFAYXZhZ290ZWNo LmNvbT4KU2lnbmVkLW9mZi1ieTogRGF2aWQgUy4gTWlsbGVyIDxkYXZlbUBkYXZlbWxvZnQubmV0 PgotLS0KIGRyaXZlcnMvbmV0L2V0aGVybmV0L2VtdWxleC9iZW5ldC9iZV9jbWRzLmMgICAgfCA4 NyArKysrKysrKysrKysrKystLS0tLS0tLS0tLQogZHJpdmVycy9uZXQvZXRoZXJuZXQvZW11bGV4 L2JlbmV0L2JlX2V0aHRvb2wuYyB8IDE4ICsrKy0tLQogZHJpdmVycy9uZXQvZXRoZXJuZXQvZW11 bGV4L2JlbmV0L2JlX21haW4uYyAgICB8IDE2ICsrLS0tCiAzIGZpbGVzIGNoYW5nZWQsIDY4IGlu c2VydGlvbnMoKyksIDUzIGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L2V0 aGVybmV0L2VtdWxleC9iZW5ldC9iZV9jbWRzLmMgYi9kcml2ZXJzL25ldC9ldGhlcm5ldC9lbXVs ZXgvYmVuZXQvYmVfY21kcy5jCmluZGV4IDdmMDVmMzAuLmRhMzZiY2YgMTAwNjQ0Ci0tLSBhL2Ry aXZlcnMvbmV0L2V0aGVybmV0L2VtdWxleC9iZW5ldC9iZV9jbWRzLmMKKysrIGIvZHJpdmVycy9u ZXQvZXRoZXJuZXQvZW11bGV4L2JlbmV0L2JlX2NtZHMuYwpAQCAtMTc3Myw5ICsxNzczLDkgQEAg aW50IGJlX2NtZF9nZXRfcmVncyhzdHJ1Y3QgYmVfYWRhcHRlciAqYWRhcHRlciwgdTMyIGJ1Zl9s ZW4sIHZvaWQgKmJ1ZikKIAl0b3RhbF9zaXplID0gYnVmX2xlbjsKIAogCWdldF9mYXRfY21kLnNp emUgPSBzaXplb2Yoc3RydWN0IGJlX2NtZF9yZXFfZ2V0X2ZhdCkgKyA2MCoxMDI0OwotCWdldF9m YXRfY21kLnZhID0gcGNpX2FsbG9jX2NvbnNpc3RlbnQoYWRhcHRlci0+cGRldiwKLQkJCQkJICAg ICAgZ2V0X2ZhdF9jbWQuc2l6ZSwKLQkJCQkJICAgICAgJmdldF9mYXRfY21kLmRtYSk7CisJZ2V0 X2ZhdF9jbWQudmEgPSBkbWFfemFsbG9jX2NvaGVyZW50KCZhZGFwdGVyLT5wZGV2LT5kZXYsCisJ CQkJCSAgICAgZ2V0X2ZhdF9jbWQuc2l6ZSwKKwkJCQkJICAgICAmZ2V0X2ZhdF9jbWQuZG1hLCBH RlBfQVRPTUlDKTsKIAlpZiAoIWdldF9mYXRfY21kLnZhKSB7CiAJCWRldl9lcnIoJmFkYXB0ZXIt PnBkZXYtPmRldiwKIAkJCSJNZW1vcnkgYWxsb2NhdGlvbiBmYWlsdXJlIHdoaWxlIHJlYWRpbmcg RkFUIGRhdGFcbiIpOwpAQCAtMTgyMCw4ICsxODIwLDggQEAgaW50IGJlX2NtZF9nZXRfcmVncyhz dHJ1Y3QgYmVfYWRhcHRlciAqYWRhcHRlciwgdTMyIGJ1Zl9sZW4sIHZvaWQgKmJ1ZikKIAkJbG9n X29mZnNldCArPSBidWZfc2l6ZTsKIAl9CiBlcnI6Ci0JcGNpX2ZyZWVfY29uc2lzdGVudChhZGFw dGVyLT5wZGV2LCBnZXRfZmF0X2NtZC5zaXplLAotCQkJICAgIGdldF9mYXRfY21kLnZhLCBnZXRf ZmF0X2NtZC5kbWEpOworCWRtYV9mcmVlX2NvaGVyZW50KCZhZGFwdGVyLT5wZGV2LT5kZXYsIGdl dF9mYXRfY21kLnNpemUsCisJCQkgIGdldF9mYXRfY21kLnZhLCBnZXRfZmF0X2NtZC5kbWEpOwog CXNwaW5fdW5sb2NrX2JoKCZhZGFwdGVyLT5tY2NfbG9jayk7CiAJcmV0dXJuIHN0YXR1czsKIH0K QEAgLTIyNzIsMTIgKzIyNzIsMTIgQEAgaW50IGJlX2NtZF9yZWFkX3BvcnRfdHJhbnNjZWl2ZXJf ZGF0YShzdHJ1Y3QgYmVfYWRhcHRlciAqYWRhcHRlciwKIAkJcmV0dXJuIC1FSU5WQUw7CiAKIAlj bWQuc2l6ZSA9IHNpemVvZihzdHJ1Y3QgYmVfY21kX3Jlc3BfcG9ydF90eXBlKTsKLQljbWQudmEg PSBwY2lfYWxsb2NfY29uc2lzdGVudChhZGFwdGVyLT5wZGV2LCBjbWQuc2l6ZSwgJmNtZC5kbWEp OworCWNtZC52YSA9IGRtYV96YWxsb2NfY29oZXJlbnQoJmFkYXB0ZXItPnBkZXYtPmRldiwgY21k LnNpemUsICZjbWQuZG1hLAorCQkJCSAgICAgR0ZQX0FUT01JQyk7CiAJaWYgKCFjbWQudmEpIHsK IAkJZGV2X2VycigmYWRhcHRlci0+cGRldi0+ZGV2LCAiTWVtb3J5IGFsbG9jYXRpb24gZmFpbGVk XG4iKTsKIAkJcmV0dXJuIC1FTk9NRU07CiAJfQotCW1lbXNldChjbWQudmEsIDAsIGNtZC5zaXpl KTsKIAogCXNwaW5fbG9ja19iaCgmYWRhcHRlci0+bWNjX2xvY2spOwogCkBAIC0yMzAyLDcgKzIz MDIsNyBAQCBpbnQgYmVfY21kX3JlYWRfcG9ydF90cmFuc2NlaXZlcl9kYXRhKHN0cnVjdCBiZV9h ZGFwdGVyICphZGFwdGVyLAogCX0KIGVycjoKIAlzcGluX3VubG9ja19iaCgmYWRhcHRlci0+bWNj X2xvY2spOwotCXBjaV9mcmVlX2NvbnNpc3RlbnQoYWRhcHRlci0+cGRldiwgY21kLnNpemUsIGNt ZC52YSwgY21kLmRtYSk7CisJZG1hX2ZyZWVfY29oZXJlbnQoJmFkYXB0ZXItPnBkZXYtPmRldiwg Y21kLnNpemUsIGNtZC52YSwgY21kLmRtYSk7CiAJcmV0dXJuIHN0YXR1czsKIH0KIApAQCAtMjc3 Nyw3ICsyNzc3LDggQEAgaW50IGJlX2NtZF9nZXRfcGh5X2luZm8oc3RydWN0IGJlX2FkYXB0ZXIg KmFkYXB0ZXIpCiAJCWdvdG8gZXJyOwogCX0KIAljbWQuc2l6ZSA9IHNpemVvZihzdHJ1Y3QgYmVf Y21kX3JlcV9nZXRfcGh5X2luZm8pOwotCWNtZC52YSA9IHBjaV9hbGxvY19jb25zaXN0ZW50KGFk YXB0ZXItPnBkZXYsIGNtZC5zaXplLCAmY21kLmRtYSk7CisJY21kLnZhID0gZG1hX3phbGxvY19j b2hlcmVudCgmYWRhcHRlci0+cGRldi0+ZGV2LCBjbWQuc2l6ZSwgJmNtZC5kbWEsCisJCQkJICAg ICBHRlBfQVRPTUlDKTsKIAlpZiAoIWNtZC52YSkgewogCQlkZXZfZXJyKCZhZGFwdGVyLT5wZGV2 LT5kZXYsICJNZW1vcnkgYWxsb2MgZmFpbHVyZVxuIik7CiAJCXN0YXR1cyA9IC1FTk9NRU07CkBA IC0yODExLDcgKzI4MTIsNyBAQCBpbnQgYmVfY21kX2dldF9waHlfaW5mbyhzdHJ1Y3QgYmVfYWRh cHRlciAqYWRhcHRlcikKIAkJCQlCRV9TVVBQT1JURURfU1BFRURfMUdCUFM7CiAJCX0KIAl9Ci0J cGNpX2ZyZWVfY29uc2lzdGVudChhZGFwdGVyLT5wZGV2LCBjbWQuc2l6ZSwgY21kLnZhLCBjbWQu ZG1hKTsKKwlkbWFfZnJlZV9jb2hlcmVudCgmYWRhcHRlci0+cGRldi0+ZGV2LCBjbWQuc2l6ZSwg Y21kLnZhLCBjbWQuZG1hKTsKIGVycjoKIAlzcGluX3VubG9ja19iaCgmYWRhcHRlci0+bWNjX2xv Y2spOwogCXJldHVybiBzdGF0dXM7CkBAIC0yODYyLDggKzI4NjMsOSBAQCBpbnQgYmVfY21kX2dl dF9jbnRsX2F0dHJpYnV0ZXMoc3RydWN0IGJlX2FkYXB0ZXIgKmFkYXB0ZXIpCiAKIAltZW1zZXQo JmF0dHJpYnNfY21kLCAwLCBzaXplb2Yoc3RydWN0IGJlX2RtYV9tZW0pKTsKIAlhdHRyaWJzX2Nt ZC5zaXplID0gc2l6ZW9mKHN0cnVjdCBiZV9jbWRfcmVzcF9jbnRsX2F0dHJpYnMpOwotCWF0dHJp YnNfY21kLnZhID0gcGNpX2FsbG9jX2NvbnNpc3RlbnQoYWRhcHRlci0+cGRldiwgYXR0cmlic19j bWQuc2l6ZSwKLQkJCQkJICAgICAgJmF0dHJpYnNfY21kLmRtYSk7CisJYXR0cmlic19jbWQudmEg PSBkbWFfemFsbG9jX2NvaGVyZW50KCZhZGFwdGVyLT5wZGV2LT5kZXYsCisJCQkJCSAgICAgYXR0 cmlic19jbWQuc2l6ZSwKKwkJCQkJICAgICAmYXR0cmlic19jbWQuZG1hLCBHRlBfQVRPTUlDKTsK IAlpZiAoIWF0dHJpYnNfY21kLnZhKSB7CiAJCWRldl9lcnIoJmFkYXB0ZXItPnBkZXYtPmRldiwg Ik1lbW9yeSBhbGxvY2F0aW9uIGZhaWx1cmVcbiIpOwogCQlzdGF0dXMgPSAtRU5PTUVNOwpAQCAt Mjg5MCw4ICsyODkyLDggQEAgaW50IGJlX2NtZF9nZXRfY250bF9hdHRyaWJ1dGVzKHN0cnVjdCBi ZV9hZGFwdGVyICphZGFwdGVyKQogZXJyOgogCW11dGV4X3VubG9jaygmYWRhcHRlci0+bWJveF9s b2NrKTsKIAlpZiAoYXR0cmlic19jbWQudmEpCi0JCXBjaV9mcmVlX2NvbnNpc3RlbnQoYWRhcHRl ci0+cGRldiwgYXR0cmlic19jbWQuc2l6ZSwKLQkJCQkgICAgYXR0cmlic19jbWQudmEsIGF0dHJp YnNfY21kLmRtYSk7CisJCWRtYV9mcmVlX2NvaGVyZW50KCZhZGFwdGVyLT5wZGV2LT5kZXYsIGF0 dHJpYnNfY21kLnNpemUsCisJCQkJICBhdHRyaWJzX2NtZC52YSwgYXR0cmlic19jbWQuZG1hKTsK IAlyZXR1cm4gc3RhdHVzOwogfQogCkBAIC0zMDI5LDkgKzMwMzEsMTAgQEAgaW50IGJlX2NtZF9n ZXRfbWFjX2Zyb21fbGlzdChzdHJ1Y3QgYmVfYWRhcHRlciAqYWRhcHRlciwgdTggKm1hYywKIAog CW1lbXNldCgmZ2V0X21hY19saXN0X2NtZCwgMCwgc2l6ZW9mKHN0cnVjdCBiZV9kbWFfbWVtKSk7 CiAJZ2V0X21hY19saXN0X2NtZC5zaXplID0gc2l6ZW9mKHN0cnVjdCBiZV9jbWRfcmVzcF9nZXRf bWFjX2xpc3QpOwotCWdldF9tYWNfbGlzdF9jbWQudmEgPSBwY2lfYWxsb2NfY29uc2lzdGVudChh ZGFwdGVyLT5wZGV2LAotCQkJCQkJICAgZ2V0X21hY19saXN0X2NtZC5zaXplLAotCQkJCQkJICAg JmdldF9tYWNfbGlzdF9jbWQuZG1hKTsKKwlnZXRfbWFjX2xpc3RfY21kLnZhID0gZG1hX3phbGxv Y19jb2hlcmVudCgmYWRhcHRlci0+cGRldi0+ZGV2LAorCQkJCQkJICBnZXRfbWFjX2xpc3RfY21k LnNpemUsCisJCQkJCQkgICZnZXRfbWFjX2xpc3RfY21kLmRtYSwKKwkJCQkJCSAgR0ZQX0FUT01J Qyk7CiAKIAlpZiAoIWdldF9tYWNfbGlzdF9jbWQudmEpIHsKIAkJZGV2X2VycigmYWRhcHRlci0+ cGRldi0+ZGV2LApAQCAtMzEwNCw4ICszMTA3LDggQEAgaW50IGJlX2NtZF9nZXRfbWFjX2Zyb21f bGlzdChzdHJ1Y3QgYmVfYWRhcHRlciAqYWRhcHRlciwgdTggKm1hYywKIAogb3V0OgogCXNwaW5f dW5sb2NrX2JoKCZhZGFwdGVyLT5tY2NfbG9jayk7Ci0JcGNpX2ZyZWVfY29uc2lzdGVudChhZGFw dGVyLT5wZGV2LCBnZXRfbWFjX2xpc3RfY21kLnNpemUsCi0JCQkgICAgZ2V0X21hY19saXN0X2Nt ZC52YSwgZ2V0X21hY19saXN0X2NtZC5kbWEpOworCWRtYV9mcmVlX2NvaGVyZW50KCZhZGFwdGVy LT5wZGV2LT5kZXYsIGdldF9tYWNfbGlzdF9jbWQuc2l6ZSwKKwkJCSAgZ2V0X21hY19saXN0X2Nt ZC52YSwgZ2V0X21hY19saXN0X2NtZC5kbWEpOwogCXJldHVybiBzdGF0dXM7CiB9CiAKQEAgLTMx NTgsOCArMzE2MSw4IEBAIGludCBiZV9jbWRfc2V0X21hY19saXN0KHN0cnVjdCBiZV9hZGFwdGVy ICphZGFwdGVyLCB1OCAqbWFjX2FycmF5LAogCiAJbWVtc2V0KCZjbWQsIDAsIHNpemVvZihzdHJ1 Y3QgYmVfZG1hX21lbSkpOwogCWNtZC5zaXplID0gc2l6ZW9mKHN0cnVjdCBiZV9jbWRfcmVxX3Nl dF9tYWNfbGlzdCk7Ci0JY21kLnZhID0gZG1hX2FsbG9jX2NvaGVyZW50KCZhZGFwdGVyLT5wZGV2 LT5kZXYsIGNtZC5zaXplLAotCQkJCSAgICAmY21kLmRtYSwgR0ZQX0tFUk5FTCk7CisJY21kLnZh ID0gZG1hX3phbGxvY19jb2hlcmVudCgmYWRhcHRlci0+cGRldi0+ZGV2LCBjbWQuc2l6ZSwgJmNt ZC5kbWEsCisJCQkJICAgICBHRlBfS0VSTkVMKTsKIAlpZiAoIWNtZC52YSkKIAkJcmV0dXJuIC1F Tk9NRU07CiAKQEAgLTMzNDgsNyArMzM1MSw4IEBAIGludCBiZV9jbWRfZ2V0X2FjcGlfd29sX2Nh cChzdHJ1Y3QgYmVfYWRhcHRlciAqYWRhcHRlcikKIAogCW1lbXNldCgmY21kLCAwLCBzaXplb2Yo c3RydWN0IGJlX2RtYV9tZW0pKTsKIAljbWQuc2l6ZSA9IHNpemVvZihzdHJ1Y3QgYmVfY21kX3Jl c3BfYWNwaV93b2xfbWFnaWNfY29uZmlnX3YxKTsKLQljbWQudmEgPSBwY2lfYWxsb2NfY29uc2lz dGVudChhZGFwdGVyLT5wZGV2LCBjbWQuc2l6ZSwgJmNtZC5kbWEpOworCWNtZC52YSA9IGRtYV96 YWxsb2NfY29oZXJlbnQoJmFkYXB0ZXItPnBkZXYtPmRldiwgY21kLnNpemUsICZjbWQuZG1hLAor CQkJCSAgICAgR0ZQX0FUT01JQyk7CiAJaWYgKCFjbWQudmEpIHsKIAkJZGV2X2VycigmYWRhcHRl ci0+cGRldi0+ZGV2LCAiTWVtb3J5IGFsbG9jYXRpb24gZmFpbHVyZVxuIik7CiAJCXN0YXR1cyA9 IC1FTk9NRU07CkBAIC0zMzgzLDcgKzMzODcsOCBAQCBpbnQgYmVfY21kX2dldF9hY3BpX3dvbF9j YXAoc3RydWN0IGJlX2FkYXB0ZXIgKmFkYXB0ZXIpCiBlcnI6CiAJbXV0ZXhfdW5sb2NrKCZhZGFw dGVyLT5tYm94X2xvY2spOwogCWlmIChjbWQudmEpCi0JCXBjaV9mcmVlX2NvbnNpc3RlbnQoYWRh cHRlci0+cGRldiwgY21kLnNpemUsIGNtZC52YSwgY21kLmRtYSk7CisJCWRtYV9mcmVlX2NvaGVy ZW50KCZhZGFwdGVyLT5wZGV2LT5kZXYsIGNtZC5zaXplLCBjbWQudmEsCisJCQkJICBjbWQuZG1h KTsKIAlyZXR1cm4gc3RhdHVzOwogCiB9CkBAIC0zMzk3LDggKzM0MDIsOSBAQCBpbnQgYmVfY21k X3NldF9md19sb2dfbGV2ZWwoc3RydWN0IGJlX2FkYXB0ZXIgKmFkYXB0ZXIsIHUzMiBsZXZlbCkK IAogCW1lbXNldCgmZXh0ZmF0X2NtZCwgMCwgc2l6ZW9mKHN0cnVjdCBiZV9kbWFfbWVtKSk7CiAJ ZXh0ZmF0X2NtZC5zaXplID0gc2l6ZW9mKHN0cnVjdCBiZV9jbWRfcmVzcF9nZXRfZXh0X2ZhdF9j YXBzKTsKLQlleHRmYXRfY21kLnZhID0gcGNpX2FsbG9jX2NvbnNpc3RlbnQoYWRhcHRlci0+cGRl diwgZXh0ZmF0X2NtZC5zaXplLAotCQkJCQkgICAgICZleHRmYXRfY21kLmRtYSk7CisJZXh0ZmF0 X2NtZC52YSA9IGRtYV96YWxsb2NfY29oZXJlbnQoJmFkYXB0ZXItPnBkZXYtPmRldiwKKwkJCQkJ ICAgIGV4dGZhdF9jbWQuc2l6ZSwgJmV4dGZhdF9jbWQuZG1hLAorCQkJCQkgICAgR0ZQX0FUT01J Qyk7CiAJaWYgKCFleHRmYXRfY21kLnZhKQogCQlyZXR1cm4gLUVOT01FTTsKIApAQCAtMzQyMCw4 ICszNDI2LDggQEAgaW50IGJlX2NtZF9zZXRfZndfbG9nX2xldmVsKHN0cnVjdCBiZV9hZGFwdGVy ICphZGFwdGVyLCB1MzIgbGV2ZWwpCiAKIAlzdGF0dXMgPSBiZV9jbWRfc2V0X2V4dF9mYXRfY2Fw YWJpbGl0ZXMoYWRhcHRlciwgJmV4dGZhdF9jbWQsIGNmZ3MpOwogZXJyOgotCXBjaV9mcmVlX2Nv bnNpc3RlbnQoYWRhcHRlci0+cGRldiwgZXh0ZmF0X2NtZC5zaXplLCBleHRmYXRfY21kLnZhLAot CQkJICAgIGV4dGZhdF9jbWQuZG1hKTsKKwlkbWFfZnJlZV9jb2hlcmVudCgmYWRhcHRlci0+cGRl di0+ZGV2LCBleHRmYXRfY21kLnNpemUsIGV4dGZhdF9jbWQudmEsCisJCQkgIGV4dGZhdF9jbWQu ZG1hKTsKIAlyZXR1cm4gc3RhdHVzOwogfQogCkBAIC0zNDM0LDggKzM0NDAsOSBAQCBpbnQgYmVf Y21kX2dldF9md19sb2dfbGV2ZWwoc3RydWN0IGJlX2FkYXB0ZXIgKmFkYXB0ZXIpCiAKIAltZW1z ZXQoJmV4dGZhdF9jbWQsIDAsIHNpemVvZihzdHJ1Y3QgYmVfZG1hX21lbSkpOwogCWV4dGZhdF9j bWQuc2l6ZSA9IHNpemVvZihzdHJ1Y3QgYmVfY21kX3Jlc3BfZ2V0X2V4dF9mYXRfY2Fwcyk7Ci0J ZXh0ZmF0X2NtZC52YSA9IHBjaV9hbGxvY19jb25zaXN0ZW50KGFkYXB0ZXItPnBkZXYsIGV4dGZh dF9jbWQuc2l6ZSwKLQkJCQkJICAgICAmZXh0ZmF0X2NtZC5kbWEpOworCWV4dGZhdF9jbWQudmEg PSBkbWFfemFsbG9jX2NvaGVyZW50KCZhZGFwdGVyLT5wZGV2LT5kZXYsCisJCQkJCSAgICBleHRm YXRfY21kLnNpemUsICZleHRmYXRfY21kLmRtYSwKKwkJCQkJICAgIEdGUF9BVE9NSUMpOwogCiAJ aWYgKCFleHRmYXRfY21kLnZhKSB7CiAJCWRldl9lcnIoJmFkYXB0ZXItPnBkZXYtPmRldiwgIiVz OiBNZW1vcnkgYWxsb2NhdGlvbiBmYWlsdXJlXG4iLApAQCAtMzQ1Myw4ICszNDYwLDggQEAgaW50 IGJlX2NtZF9nZXRfZndfbG9nX2xldmVsKHN0cnVjdCBiZV9hZGFwdGVyICphZGFwdGVyKQogCQkJ CWxldmVsID0gY2Zncy0+bW9kdWxlWzBdLnRyYWNlX2x2bFtqXS5kYmdfbHZsOwogCQl9CiAJfQot CXBjaV9mcmVlX2NvbnNpc3RlbnQoYWRhcHRlci0+cGRldiwgZXh0ZmF0X2NtZC5zaXplLCBleHRm YXRfY21kLnZhLAotCQkJICAgIGV4dGZhdF9jbWQuZG1hKTsKKwlkbWFfZnJlZV9jb2hlcmVudCgm YWRhcHRlci0+cGRldi0+ZGV2LCBleHRmYXRfY21kLnNpemUsIGV4dGZhdF9jbWQudmEsCisJCQkg IGV4dGZhdF9jbWQuZG1hKTsKIGVycjoKIAlyZXR1cm4gbGV2ZWw7CiB9CkBAIC0zNjUyLDcgKzM2 NTksOCBAQCBpbnQgYmVfY21kX2dldF9mdW5jX2NvbmZpZyhzdHJ1Y3QgYmVfYWRhcHRlciAqYWRh cHRlciwgc3RydWN0IGJlX3Jlc291cmNlcyAqcmVzKQogCiAJbWVtc2V0KCZjbWQsIDAsIHNpemVv ZihzdHJ1Y3QgYmVfZG1hX21lbSkpOwogCWNtZC5zaXplID0gc2l6ZW9mKHN0cnVjdCBiZV9jbWRf cmVzcF9nZXRfZnVuY19jb25maWcpOwotCWNtZC52YSA9IHBjaV9hbGxvY19jb25zaXN0ZW50KGFk YXB0ZXItPnBkZXYsIGNtZC5zaXplLCAmY21kLmRtYSk7CisJY21kLnZhID0gZG1hX3phbGxvY19j b2hlcmVudCgmYWRhcHRlci0+cGRldi0+ZGV2LCBjbWQuc2l6ZSwgJmNtZC5kbWEsCisJCQkJICAg ICBHRlBfQVRPTUlDKTsKIAlpZiAoIWNtZC52YSkgewogCQlkZXZfZXJyKCZhZGFwdGVyLT5wZGV2 LT5kZXYsICJNZW1vcnkgYWxsb2MgZmFpbHVyZVxuIik7CiAJCXN0YXR1cyA9IC1FTk9NRU07CkBA IC0zNjkyLDcgKzM3MDAsOCBAQCBpbnQgYmVfY21kX2dldF9mdW5jX2NvbmZpZyhzdHJ1Y3QgYmVf YWRhcHRlciAqYWRhcHRlciwgc3RydWN0IGJlX3Jlc291cmNlcyAqcmVzKQogZXJyOgogCW11dGV4 X3VubG9jaygmYWRhcHRlci0+bWJveF9sb2NrKTsKIAlpZiAoY21kLnZhKQotCQlwY2lfZnJlZV9j b25zaXN0ZW50KGFkYXB0ZXItPnBkZXYsIGNtZC5zaXplLCBjbWQudmEsIGNtZC5kbWEpOworCQlk bWFfZnJlZV9jb2hlcmVudCgmYWRhcHRlci0+cGRldi0+ZGV2LCBjbWQuc2l6ZSwgY21kLnZhLAor CQkJCSAgY21kLmRtYSk7CiAJcmV0dXJuIHN0YXR1czsKIH0KIApAQCAtMzcxMyw3ICszNzIyLDgg QEAgaW50IGJlX2NtZF9nZXRfcHJvZmlsZV9jb25maWcoc3RydWN0IGJlX2FkYXB0ZXIgKmFkYXB0 ZXIsCiAKIAltZW1zZXQoJmNtZCwgMCwgc2l6ZW9mKHN0cnVjdCBiZV9kbWFfbWVtKSk7CiAJY21k LnNpemUgPSBzaXplb2Yoc3RydWN0IGJlX2NtZF9yZXNwX2dldF9wcm9maWxlX2NvbmZpZyk7Ci0J Y21kLnZhID0gcGNpX2FsbG9jX2NvbnNpc3RlbnQoYWRhcHRlci0+cGRldiwgY21kLnNpemUsICZj bWQuZG1hKTsKKwljbWQudmEgPSBkbWFfemFsbG9jX2NvaGVyZW50KCZhZGFwdGVyLT5wZGV2LT5k ZXYsIGNtZC5zaXplLCAmY21kLmRtYSwKKwkJCQkgICAgIEdGUF9BVE9NSUMpOwogCWlmICghY21k LnZhKQogCQlyZXR1cm4gLUVOT01FTTsKIApAQCAtMzc1Miw3ICszNzYyLDggQEAgaW50IGJlX2Nt ZF9nZXRfcHJvZmlsZV9jb25maWcoc3RydWN0IGJlX2FkYXB0ZXIgKmFkYXB0ZXIsCiAJCXJlcy0+ dmZfaWZfY2FwX2ZsYWdzID0gdmZfcmVzLT5jYXBfZmxhZ3M7CiBlcnI6CiAJaWYgKGNtZC52YSkK LQkJcGNpX2ZyZWVfY29uc2lzdGVudChhZGFwdGVyLT5wZGV2LCBjbWQuc2l6ZSwgY21kLnZhLCBj bWQuZG1hKTsKKwkJZG1hX2ZyZWVfY29oZXJlbnQoJmFkYXB0ZXItPnBkZXYtPmRldiwgY21kLnNp emUsIGNtZC52YSwKKwkJCQkgIGNtZC5kbWEpOwogCXJldHVybiBzdGF0dXM7CiB9CiAKQEAgLTM3 NjcsNyArMzc3OCw4IEBAIHN0YXRpYyBpbnQgYmVfY21kX3NldF9wcm9maWxlX2NvbmZpZyhzdHJ1 Y3QgYmVfYWRhcHRlciAqYWRhcHRlciwgdm9pZCAqZGVzYywKIAogCW1lbXNldCgmY21kLCAwLCBz aXplb2Yoc3RydWN0IGJlX2RtYV9tZW0pKTsKIAljbWQuc2l6ZSA9IHNpemVvZihzdHJ1Y3QgYmVf Y21kX3JlcV9zZXRfcHJvZmlsZV9jb25maWcpOwotCWNtZC52YSA9IHBjaV9hbGxvY19jb25zaXN0 ZW50KGFkYXB0ZXItPnBkZXYsIGNtZC5zaXplLCAmY21kLmRtYSk7CisJY21kLnZhID0gZG1hX3ph bGxvY19jb2hlcmVudCgmYWRhcHRlci0+cGRldi0+ZGV2LCBjbWQuc2l6ZSwgJmNtZC5kbWEsCisJ CQkJICAgICBHRlBfQVRPTUlDKTsKIAlpZiAoIWNtZC52YSkKIAkJcmV0dXJuIC1FTk9NRU07CiAK QEAgLTM3ODMsNyArMzc5NSw4IEBAIHN0YXRpYyBpbnQgYmVfY21kX3NldF9wcm9maWxlX2NvbmZp ZyhzdHJ1Y3QgYmVfYWRhcHRlciAqYWRhcHRlciwgdm9pZCAqZGVzYywKIAlzdGF0dXMgPSBiZV9j bWRfbm90aWZ5X3dhaXQoYWRhcHRlciwgJndyYik7CiAKIAlpZiAoY21kLnZhKQotCQlwY2lfZnJl ZV9jb25zaXN0ZW50KGFkYXB0ZXItPnBkZXYsIGNtZC5zaXplLCBjbWQudmEsIGNtZC5kbWEpOwor CQlkbWFfZnJlZV9jb2hlcmVudCgmYWRhcHRlci0+cGRldi0+ZGV2LCBjbWQuc2l6ZSwgY21kLnZh LAorCQkJCSAgY21kLmRtYSk7CiAJcmV0dXJuIHN0YXR1czsKIH0KIApkaWZmIC0tZ2l0IGEvZHJp dmVycy9uZXQvZXRoZXJuZXQvZW11bGV4L2JlbmV0L2JlX2V0aHRvb2wuYyBiL2RyaXZlcnMvbmV0 L2V0aGVybmV0L2VtdWxleC9iZW5ldC9iZV9ldGh0b29sLmMKaW5kZXggNGQyZGU0Ny4uMjJmZmNk OCAxMDA2NDQKLS0tIGEvZHJpdmVycy9uZXQvZXRoZXJuZXQvZW11bGV4L2JlbmV0L2JlX2V0aHRv b2wuYworKysgYi9kcml2ZXJzL25ldC9ldGhlcm5ldC9lbXVsZXgvYmVuZXQvYmVfZXRodG9vbC5j CkBAIC0yNjQsOCArMjY0LDggQEAgc3RhdGljIGludCBsYW5jZXJfY21kX3JlYWRfZmlsZShzdHJ1 Y3QgYmVfYWRhcHRlciAqYWRhcHRlciwgdTggKmZpbGVfbmFtZSwKIAlpbnQgc3RhdHVzID0gMDsK IAogCXJlYWRfY21kLnNpemUgPSBMQU5DRVJfUkVBRF9GSUxFX0NIVU5LOwotCXJlYWRfY21kLnZh ID0gcGNpX2FsbG9jX2NvbnNpc3RlbnQoYWRhcHRlci0+cGRldiwgcmVhZF9jbWQuc2l6ZSwKLQkJ CQkJICAgJnJlYWRfY21kLmRtYSk7CisJcmVhZF9jbWQudmEgPSBkbWFfemFsbG9jX2NvaGVyZW50 KCZhZGFwdGVyLT5wZGV2LT5kZXYsIHJlYWRfY21kLnNpemUsCisJCQkJCSAgJnJlYWRfY21kLmRt YSwgR0ZQX0FUT01JQyk7CiAKIAlpZiAoIXJlYWRfY21kLnZhKSB7CiAJCWRldl9lcnIoJmFkYXB0 ZXItPnBkZXYtPmRldiwKQEAgLTI4OSw4ICsyODksOCBAQCBzdGF0aWMgaW50IGxhbmNlcl9jbWRf cmVhZF9maWxlKHN0cnVjdCBiZV9hZGFwdGVyICphZGFwdGVyLCB1OCAqZmlsZV9uYW1lLAogCQkJ YnJlYWs7CiAJCX0KIAl9Ci0JcGNpX2ZyZWVfY29uc2lzdGVudChhZGFwdGVyLT5wZGV2LCByZWFk X2NtZC5zaXplLCByZWFkX2NtZC52YSwKLQkJCSAgICByZWFkX2NtZC5kbWEpOworCWRtYV9mcmVl X2NvaGVyZW50KCZhZGFwdGVyLT5wZGV2LT5kZXYsIHJlYWRfY21kLnNpemUsIHJlYWRfY21kLnZh LAorCQkJICByZWFkX2NtZC5kbWEpOwogCiAJcmV0dXJuIHN0YXR1czsKIH0KQEAgLTgxOCw4ICs4 MTgsOSBAQCBzdGF0aWMgaW50IGJlX3Rlc3RfZGRyX2RtYShzdHJ1Y3QgYmVfYWRhcHRlciAqYWRh cHRlcikKIAl9OwogCiAJZGRyZG1hX2NtZC5zaXplID0gc2l6ZW9mKHN0cnVjdCBiZV9jbWRfcmVx X2RkcmRtYV90ZXN0KTsKLQlkZHJkbWFfY21kLnZhID0gZG1hX2FsbG9jX2NvaGVyZW50KCZhZGFw dGVyLT5wZGV2LT5kZXYsIGRkcmRtYV9jbWQuc2l6ZSwKLQkJCQkJICAgJmRkcmRtYV9jbWQuZG1h LCBHRlBfS0VSTkVMKTsKKwlkZHJkbWFfY21kLnZhID0gZG1hX3phbGxvY19jb2hlcmVudCgmYWRh cHRlci0+cGRldi0+ZGV2LAorCQkJCQkgICAgZGRyZG1hX2NtZC5zaXplLCAmZGRyZG1hX2NtZC5k bWEsCisJCQkJCSAgICBHRlBfS0VSTkVMKTsKIAlpZiAoIWRkcmRtYV9jbWQudmEpCiAJCXJldHVy biAtRU5PTUVNOwogCkBAIC05NDEsOCArOTQyLDkgQEAgc3RhdGljIGludCBiZV9yZWFkX2VlcHJv bShzdHJ1Y3QgbmV0X2RldmljZSAqbmV0ZGV2LAogCiAJbWVtc2V0KCZlZXByb21fY21kLCAwLCBz aXplb2Yoc3RydWN0IGJlX2RtYV9tZW0pKTsKIAllZXByb21fY21kLnNpemUgPSBzaXplb2Yoc3Ry dWN0IGJlX2NtZF9yZXFfc2VlcHJvbV9yZWFkKTsKLQllZXByb21fY21kLnZhID0gZG1hX2FsbG9j X2NvaGVyZW50KCZhZGFwdGVyLT5wZGV2LT5kZXYsIGVlcHJvbV9jbWQuc2l6ZSwKLQkJCQkJICAg JmVlcHJvbV9jbWQuZG1hLCBHRlBfS0VSTkVMKTsKKwllZXByb21fY21kLnZhID0gZG1hX3phbGxv Y19jb2hlcmVudCgmYWRhcHRlci0+cGRldi0+ZGV2LAorCQkJCQkgICAgZWVwcm9tX2NtZC5zaXpl LCAmZWVwcm9tX2NtZC5kbWEsCisJCQkJCSAgICBHRlBfS0VSTkVMKTsKIAogCWlmICghZWVwcm9t X2NtZC52YSkKIAkJcmV0dXJuIC1FTk9NRU07CmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC9ldGhl cm5ldC9lbXVsZXgvYmVuZXQvYmVfbWFpbi5jIGIvZHJpdmVycy9uZXQvZXRoZXJuZXQvZW11bGV4 L2JlbmV0L2JlX21haW4uYwppbmRleCBlNmI3OTBmLi44OTM3NTNmIDEwMDY0NAotLS0gYS9kcml2 ZXJzL25ldC9ldGhlcm5ldC9lbXVsZXgvYmVuZXQvYmVfbWFpbi5jCisrKyBiL2RyaXZlcnMvbmV0 L2V0aGVybmV0L2VtdWxleC9iZW5ldC9iZV9tYWluLmMKQEAgLTQzOTIsOCArNDM5Miw4IEBAIHN0 YXRpYyBpbnQgbGFuY2VyX2Z3X2Rvd25sb2FkKHN0cnVjdCBiZV9hZGFwdGVyICphZGFwdGVyLAog CiAJZmxhc2hfY21kLnNpemUgPSBzaXplb2Yoc3RydWN0IGxhbmNlcl9jbWRfcmVxX3dyaXRlX29i amVjdCkKIAkJCQkrIExBTkNFUl9GV19ET1dOTE9BRF9DSFVOSzsKLQlmbGFzaF9jbWQudmEgPSBk bWFfYWxsb2NfY29oZXJlbnQoZGV2LCBmbGFzaF9jbWQuc2l6ZSwKLQkJCQkJICAmZmxhc2hfY21k LmRtYSwgR0ZQX0tFUk5FTCk7CisJZmxhc2hfY21kLnZhID0gZG1hX3phbGxvY19jb2hlcmVudChk ZXYsIGZsYXNoX2NtZC5zaXplLAorCQkJCQkgICAmZmxhc2hfY21kLmRtYSwgR0ZQX0tFUk5FTCk7 CiAJaWYgKCFmbGFzaF9jbWQudmEpCiAJCXJldHVybiAtRU5PTUVNOwogCkBAIC00NTI2LDggKzQ1 MjYsOCBAQCBzdGF0aWMgaW50IGJlX2Z3X2Rvd25sb2FkKHN0cnVjdCBiZV9hZGFwdGVyICphZGFw dGVyLCBjb25zdCBzdHJ1Y3QgZmlybXdhcmUqIGZ3KQogCX0KIAogCWZsYXNoX2NtZC5zaXplID0g c2l6ZW9mKHN0cnVjdCBiZV9jbWRfd3JpdGVfZmxhc2hyb20pOwotCWZsYXNoX2NtZC52YSA9IGRt YV9hbGxvY19jb2hlcmVudChkZXYsIGZsYXNoX2NtZC5zaXplLCAmZmxhc2hfY21kLmRtYSwKLQkJ CQkJICBHRlBfS0VSTkVMKTsKKwlmbGFzaF9jbWQudmEgPSBkbWFfemFsbG9jX2NvaGVyZW50KGRl diwgZmxhc2hfY21kLnNpemUsICZmbGFzaF9jbWQuZG1hLAorCQkJCQkgICBHRlBfS0VSTkVMKTsK IAlpZiAoIWZsYXNoX2NtZC52YSkKIAkJcmV0dXJuIC1FTk9NRU07CiAKQEAgLTQ5NDEsMTAgKzQ5 NDEsMTAgQEAgc3RhdGljIGludCBiZV9jdHJsX2luaXQoc3RydWN0IGJlX2FkYXB0ZXIgKmFkYXB0 ZXIpCiAJCWdvdG8gZG9uZTsKIAogCW1ib3hfbWVtX2FsbG9jLT5zaXplID0gc2l6ZW9mKHN0cnVj dCBiZV9tY2NfbWFpbGJveCkgKyAxNjsKLQltYm94X21lbV9hbGxvYy0+dmEgPSBkbWFfYWxsb2Nf Y29oZXJlbnQoJmFkYXB0ZXItPnBkZXYtPmRldiwKLQkJCQkJCW1ib3hfbWVtX2FsbG9jLT5zaXpl LAotCQkJCQkJJm1ib3hfbWVtX2FsbG9jLT5kbWEsCi0JCQkJCQlHRlBfS0VSTkVMKTsKKwltYm94 X21lbV9hbGxvYy0+dmEgPSBkbWFfemFsbG9jX2NvaGVyZW50KCZhZGFwdGVyLT5wZGV2LT5kZXYs CisJCQkJCQkgbWJveF9tZW1fYWxsb2MtPnNpemUsCisJCQkJCQkgJm1ib3hfbWVtX2FsbG9jLT5k bWEsCisJCQkJCQkgR0ZQX0tFUk5FTCk7CiAJaWYgKCFtYm94X21lbV9hbGxvYy0+dmEpIHsKIAkJ c3RhdHVzID0gLUVOT01FTTsKIAkJZ290byB1bm1hcF9wY2lfYmFyczsKLS0gCjIuMS4wCgoKRnJv bSA5ZTU5Y2Q1ZTUxMjZkMjU3MmZhNDRhODc2NmNiZDc2Y2UwZmI1MDNiIE1vbiBTZXAgMTcgMDA6 MDA6MDAgMjAwMQpGcm9tOiBOaWtvbGF5IEFsZWtzYW5kcm92IDxuaWtvbGF5QGN1bXVsdXNuZXR3 b3Jrcy5jb20+CkRhdGU6IFNhdCwgNiBKdW4gMjAxNSAwNjo0OTowMCAtMDcwMApTdWJqZWN0OiBb UEFUQ0ggMjYvMjddIGJyaWRnZTogZGlzYWJsZSBzb2Z0aXJxcyBhcm91bmQgYnJfZmRiX3VwZGF0 ZSB0byBhdm9pZAogbG9ja3VwCgpbIFVwc3RyZWFtIGNvbW1pdCBjNGM4MzJmODlkYzQ2OGNmMTFk YzBkZDE3MjA2YmFjZTQ0NTI2NjUxIF0KCmJyX2ZkYl91cGRhdGUoKSBjYW4gYmUgY2FsbGVkIGlu IHByb2Nlc3MgY29udGV4dCBpbiB0aGUgZm9sbG93aW5nIHdheToKYnJfZmRiX2FkZCgpIC0+IF9f YnJfZmRiX2FkZCgpIC0+IGJyX2ZkYl91cGRhdGUoKSAoaWYgTlRGX1VTRSBmbGFnIGlzIHNldCkK c28gd2UgbmVlZCB0byBkaXNhYmxlIHNvZnRpcnFzIGJlY2F1c2UgdGhlcmUgYXJlIHNvZnRpcnEg dXNlcnMgb2YgdGhlCmhhc2hfbG9jay4gT25lIGVhc3kgd2F5IHRvIHJlcHJvZHVjZSB0aGlzIGlz IHRvIG1vZGlmeSB0aGUgYnJpZGdlIHV0aWxpdHkKdG8gc2V0IE5URl9VU0UsIGVuYWJsZSBzdHAg YW5kIHRoZW4gc2V0IG1heGFnZWluZyB0byBhIGxvdyB2YWx1ZSBzbwpicl9mZGJfY2xlYW51cCgp IGlzIGNhbGxlZCBmcmVxdWVudGx5IGFuZCB0aGVuIGp1c3QgYWRkIG5ldyBlbnRyaWVzIGluCmEg bG9vcC4gVGhpcyBoYXBwZW5zIGJlY2F1c2UgYnJfZmRiX2NsZWFudXAoKSBpcyBjYWxsZWQgZnJv bSB0aW1lci9zb2Z0aXJxCmNvbnRleHQuIFRoZSBzcGluIGxvY2tzIGluIGJyX2ZkYl91cGRhdGUg d2VyZSBfYmggYmVmb3JlIGNvbW1pdCBmOGFlNzM3ZGVlYTEKKCJbQlJJREdFXTogZm9yd2FyZGlu ZyByZW1vdmUgdW5uZWVkZWQgcHJlZW1wdCBhbmQgYmggZGlhc2FibGVzIikKYW5kIGF0IHRoZSB0 aW1lIHRoYXQgY29tbWl0IHdhcyBjb3JyZWN0IGJlY2F1c2UgYnJfZmRiX3VwZGF0ZSgpIGNvdWxk bid0IGJlCmNhbGxlZCBmcm9tIHByb2Nlc3MgY29udGV4dCwgYnV0IHRoYXQgY2hhbmdlZCBhZnRl ciBjb21taXQ6CjI5MmQxMzk4OTgzZiAoImJyaWRnZTogYWRkIE5URl9VU0Ugc3VwcG9ydCIpClVz aW5nIGxvY2FsX2JoX2Rpc2FibGUvZW5hYmxlIGFyb3VuZCBicl9mZGJfdXBkYXRlKCkgYWxsb3dz IHVzIHRvIGtlZXAKdXNpbmcgdGhlIHNwaW5fbG9jay91bmxvY2sgaW4gYnJfZmRiX3VwZGF0ZSBm b3IgdGhlIGZhc3QtcGF0aC4KClNpZ25lZC1vZmYtYnk6IE5pa29sYXkgQWxla3NhbmRyb3YgPG5p a29sYXlAY3VtdWx1c25ldHdvcmtzLmNvbT4KRml4ZXM6IDI5MmQxMzk4OTgzZiAoImJyaWRnZTog YWRkIE5URl9VU0Ugc3VwcG9ydCIpClNpZ25lZC1vZmYtYnk6IERhdmlkIFMuIE1pbGxlciA8ZGF2 ZW1AZGF2ZW1sb2Z0Lm5ldD4KLS0tCiBuZXQvYnJpZGdlL2JyX2ZkYi5jIHwgMiArKwogMSBmaWxl IGNoYW5nZWQsIDIgaW5zZXJ0aW9ucygrKQoKZGlmZiAtLWdpdCBhL25ldC9icmlkZ2UvYnJfZmRi LmMgYi9uZXQvYnJpZGdlL2JyX2ZkYi5jCmluZGV4IGUwNjcwZDcuLjY1OWZiOTYgMTAwNjQ0Ci0t LSBhL25ldC9icmlkZ2UvYnJfZmRiLmMKKysrIGIvbmV0L2JyaWRnZS9icl9mZGIuYwpAQCAtNzk2 LDkgKzc5NiwxMSBAQCBzdGF0aWMgaW50IF9fYnJfZmRiX2FkZChzdHJ1Y3QgbmRtc2cgKm5kbSwg c3RydWN0IG5ldF9icmlkZ2VfcG9ydCAqcCwKIAlpbnQgZXJyID0gMDsKIAogCWlmIChuZG0tPm5k bV9mbGFncyAmIE5URl9VU0UpIHsKKwkJbG9jYWxfYmhfZGlzYWJsZSgpOwogCQlyY3VfcmVhZF9s b2NrKCk7CiAJCWJyX2ZkYl91cGRhdGUocC0+YnIsIHAsIGFkZHIsIHZpZCwgdHJ1ZSk7CiAJCXJj dV9yZWFkX3VubG9jaygpOworCQlsb2NhbF9iaF9lbmFibGUoKTsKIAl9IGVsc2UgewogCQlzcGlu X2xvY2tfYmgoJnAtPmJyLT5oYXNoX2xvY2spOwogCQllcnIgPSBmZGJfYWRkX2VudHJ5KHAsIGFk ZHIsIG5kbS0+bmRtX3N0YXRlLAotLSAKMi4xLjAKCgpGcm9tIDUyZmMwNTA1YjQyOGZkYjVjZmVi NDAxNWFmNzkzZWZjM2IzOTMzZDUgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCkZyb206IEhlcmJl cnQgWHUgPGhlcmJlcnRAZ29uZG9yLmFwYW5hLm9yZy5hdT4KRGF0ZTogU2F0LCAxNiBNYXkgMjAx NSAyMToxNjoyOCArMDgwMApTdWJqZWN0OiBbUEFUQ0ggMjcvMjddIG5ldGxpbms6IERpc2FibGUg aW5zZXJ0aW9ucy9yZW1vdmFscyBkdXJpbmcgcmVoYXNoCgpbIFVwc3RyZWFtIGNvbW1pdDogTm90 IGFwcGxpY2FibGUgXQoKVGhlIGN1cnJlbnQgcmhhc2h0YWJsZSByZWhhc2ggY29kZSBpcyBidWdn eSBhbmQgY2FuJ3QgZGVhbCB3aXRoCnBhcmFsbGVsIGluc2VydGlvbnMvcmVtb3ZhbHMgd2l0aG91 dCBjb3JydXB0aW5nIHRoZSBoYXNoIHRhYmxlLgoKVGhpcyBwYXRjaCBkaXNhYmxlcyBpdCBieSBw YXJ0aWFsbHkgcmV2ZXJ0aW5nCmM1YWRkZTk0NjhiMDcxNGEwNTFlYWM3Zjk2NjZmMjNlYjEwYjYx ZjcgKCJuZXRsaW5rOiBlbGltaW5hdGUKbmxfc2tfaGFzaF9sb2NrIikuCgpTaWduZWQtb2ZmLWJ5 OiBIZXJiZXJ0IFh1IDxoZXJiZXJ0QGdvbmRvci5hcGFuYS5vcmcuYXU+Ci0tLQogbmV0L25ldGxp bmsvYWZfbmV0bGluay5jIHwgNiArKysrLS0KIDEgZmlsZSBjaGFuZ2VkLCA0IGluc2VydGlvbnMo KyksIDIgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvbmV0L25ldGxpbmsvYWZfbmV0bGluay5j IGIvbmV0L25ldGxpbmsvYWZfbmV0bGluay5jCmluZGV4IGU5OGRjNTMuLjBlOWMyOGQgMTAwNjQ0 Ci0tLSBhL25ldC9uZXRsaW5rL2FmX25ldGxpbmsuYworKysgYi9uZXQvbmV0bGluay9hZl9uZXRs aW5rLmMKQEAgLTEwNTIsNyArMTA1Miw3IEBAIHN0YXRpYyBpbnQgbmV0bGlua19pbnNlcnQoc3Ry dWN0IHNvY2sgKnNrLCB1MzIgcG9ydGlkKQogCXN0cnVjdCBuZXRsaW5rX3RhYmxlICp0YWJsZSA9 ICZubF90YWJsZVtzay0+c2tfcHJvdG9jb2xdOwogCWludCBlcnI7CiAKLQlsb2NrX3NvY2soc2sp OworCW11dGV4X2xvY2soJnRhYmxlLT5oYXNoLm11dGV4KTsKIAogCWVyciA9IC1FQlVTWTsKIAlp ZiAobmxrX3NrKHNrKS0+cG9ydGlkKQpAQCAtMTA3NCw3ICsxMDc0LDcgQEAgc3RhdGljIGludCBu ZXRsaW5rX2luc2VydChzdHJ1Y3Qgc29jayAqc2ssIHUzMiBwb3J0aWQpCiAJfQogCiBlcnI6Ci0J cmVsZWFzZV9zb2NrKHNrKTsKKwltdXRleF91bmxvY2soJnRhYmxlLT5oYXNoLm11dGV4KTsKIAly ZXR1cm4gZXJyOwogfQogCkBAIC0xMDgzLDEwICsxMDgzLDEyIEBAIHN0YXRpYyB2b2lkIG5ldGxp bmtfcmVtb3ZlKHN0cnVjdCBzb2NrICpzaykKIAlzdHJ1Y3QgbmV0bGlua190YWJsZSAqdGFibGU7 CiAKIAl0YWJsZSA9ICZubF90YWJsZVtzay0+c2tfcHJvdG9jb2xdOworCW11dGV4X2xvY2soJnRh YmxlLT5oYXNoLm11dGV4KTsKIAlpZiAocmhhc2h0YWJsZV9yZW1vdmUoJnRhYmxlLT5oYXNoLCAm bmxrX3NrKHNrKS0+bm9kZSkpIHsKIAkJV0FSTl9PTihhdG9taWNfcmVhZCgmc2stPnNrX3JlZmNu dCkgPT0gMSk7CiAJCV9fc29ja19wdXQoc2spOwogCX0KKwltdXRleF91bmxvY2soJnRhYmxlLT5o YXNoLm11dGV4KTsKIAogCW5ldGxpbmtfdGFibGVfZ3JhYigpOwogCWlmIChubGtfc2soc2spLT5z dWJzY3JpcHRpb25zKSB7Ci0tIAoyLjEuMAoK ----Next_Part(Tue_Jun__9_20_01_04_2015_064)----