From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from shards.monkeyblade.net ([149.20.54.216]:40075 "EHLO shards.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1752553AbbH0GFP (ORCPT ); Thu, 27 Aug 2015 02:05:15 -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 E3229590B07 for ; Wed, 26 Aug 2015 23:05:12 -0700 (PDT) Date: Wed, 26 Aug 2015 23:05:12 -0700 (PDT) Message-Id: <20150826.230512.911383355891074955.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(Wed_Aug_26_23_05_12_2015_145)--" Content-Transfer-Encoding: 7bit Sender: stable-owner@vger.kernel.org List-ID: ----Next_Part(Wed_Aug_26_23_05_12_2015_145)-- Content-Type: Text/Plain; charset=us-ascii Content-Transfer-Encoding: 7bit Please queue up the following networking bug fixes for v3.12, v3.14, v3.18, and v4.1 -stable, respectively. Thanks! ----Next_Part(Wed_Aug_26_23_05_12_2015_145)-- Content-Type: Application/Octet-Stream Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="net_312.mbox" RnJvbSA2ODBmMzZmZDBmMTIxYjUyOGJmYTQ2ZTE2MDUyZWJmNmYxZWVkZjdhIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBBbmdnYSA8SGVybWluLkFuZ2dhd2lqYXlhQGFsbGllZHRlbGVz aXMuY28ubno+CkRhdGU6IEZyaSwgMyBKdWwgMjAxNSAxNDo0MDo1MiArMTIwMApTdWJqZWN0OiBb UEFUQ0ggMDEvMjFdIGlwdjY6IE1ha2UgTUxEIHBhY2tldHMgdG8gb25seSBiZSBwcm9jZXNzZWQg bG9jYWxseQoKWyBVcHN0cmVhbSBjb21taXQgNGM5MzhkMjJjODhhOWRkY2NjOGM1NWE4NWUwNDMw ZTljNjJiMWFjNSBdCgpCZWZvcmUgY29tbWl0IGRhYWQxNTEyNjNjZiAoImlwdjY6IE1ha2UgaXB2 Nl9pc19tbGQoKSBpbmxpbmUgYW5kIHVzZSBpdApmcm9tIGlwNl9tY19pbnB1dCgpLiIpIE1MRCBw YWNrZXRzIHdlcmUgb25seSBwcm9jZXNzZWQgbG9jYWxseS4gQWZ0ZXIgdGhlCmNoYW5nZSwgYSBj b3B5IG9mIE1MRCBwYWNrZXQgZ29lcyB0aHJvdWdoIGlwNl9tcl9pbnB1dCwgY2F1c2luZwpNUlQ2 TVNHX05PQ0FDSEUgbWVzc2FnZSB0byBiZSBnZW5lcmF0ZWQgdG8gdXNlciBzcGFjZS4KCk1ha2Ug TUxEIHBhY2tldCBvbmx5IHByb2Nlc3NlZCBsb2NhbGx5LgoKRml4ZXM6IGRhYWQxNTEyNjNjZiAo ImlwdjY6IE1ha2UgaXB2Nl9pc19tbGQoKSBpbmxpbmUgYW5kIHVzZSBpdCBmcm9tIGlwNl9tY19p bnB1dCgpLiIpClNpZ25lZC1vZmYtYnk6IEhlcm1pbiBBbmdnYXdpamF5YSA8aGVybWluLmFuZ2dh d2lqYXlhQGFsbGllZHRlbGVzaXMuY28ubno+ClNpZ25lZC1vZmYtYnk6IERhdmlkIFMuIE1pbGxl ciA8ZGF2ZW1AZGF2ZW1sb2Z0Lm5ldD4KLS0tCiBuZXQvaXB2Ni9pcDZfaW5wdXQuYyB8IDYgKysr LS0tCiAxIGZpbGUgY2hhbmdlZCwgMyBpbnNlcnRpb25zKCspLCAzIGRlbGV0aW9ucygtKQoKZGlm ZiAtLWdpdCBhL25ldC9pcHY2L2lwNl9pbnB1dC5jIGIvbmV0L2lwdjYvaXA2X2lucHV0LmMKaW5k ZXggNTFkNTRkYy4uMDVjOTRkOSAxMDA2NDQKLS0tIGEvbmV0L2lwdjYvaXA2X2lucHV0LmMKKysr IGIvbmV0L2lwdjYvaXA2X2lucHV0LmMKQEAgLTMyOSwxMCArMzI5LDEwIEBAIGludCBpcDZfbWNf aW5wdXQoc3RydWN0IHNrX2J1ZmYgKnNrYikKIAkJCQlpZiAob2Zmc2V0IDwgMCkKIAkJCQkJZ290 byBvdXQ7CiAKLQkJCQlpZiAoIWlwdjZfaXNfbWxkKHNrYiwgbmV4dGhkciwgb2Zmc2V0KSkKLQkJ CQkJZ290byBvdXQ7CisJCQkJaWYgKGlwdjZfaXNfbWxkKHNrYiwgbmV4dGhkciwgb2Zmc2V0KSkK KwkJCQkJZGVsaXZlciA9IHRydWU7CiAKLQkJCQlkZWxpdmVyID0gdHJ1ZTsKKwkJCQlnb3RvIG91 dDsKIAkJCX0KIAkJCS8qIHVua25vd24gUkEgLSBwcm9jZXNzIGl0IG5vcm1hbGx5ICovCiAJCX0K LS0gCjIuMS4wCgoKRnJvbSA0ZjYxMjYyZWYzNWVhYWQyNzgzNzhiNDdlZTJmNjcwNTJhOGNkMGU0 IE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBFcmljIER1bWF6ZXQgPGVkdW1hemV0QGdv b2dsZS5jb20+CkRhdGU6IE1vbiwgNiBKdWwgMjAxNSAxNzoxMzoyNiArMDIwMApTdWJqZWN0OiBb UEFUQ0ggMDIvMjFdIG5ldDogZ3JhY2VmdWwgZXhpdCBmcm9tIG5ldGlmX2FsbG9jX25ldGRldl9x dWV1ZXMoKQoKWyBVcHN0cmVhbSBjb21taXQgZDMzOTcyN2MyYjFhMTBmMjVlNjYzNjY3MGFiNmUx ODQxMTcwZTMyOCBdCgpVc2VyIHNwYWNlIGNhbiBjcmFzaCBrZXJuZWwgd2l0aAoKaXAgbGluayBh ZGQgaWZiMTAgbnVtdHhxdWV1ZXMgMTAwMDAwIHR5cGUgaWZiCgpXZSBtdXN0IHJlcGxhY2UgYSBC VUdfT04oKSBieSBwcm9wZXIgdGVzdCBhbmQgcmV0dXJuIC1FSU5WQUwgZm9yCmNyYXp5IHZhbHVl cy4KCkZpeGVzOiA2MDg3N2EzMmJjZTAwICgibmV0OiBhbGxvdyBsYXJnZSBudW1iZXIgb2YgdHgg cXVldWVzIikKU2lnbmVkLW9mZi1ieTogRXJpYyBEdW1hemV0IDxlZHVtYXpldEBnb29nbGUuY29t PgpTaWduZWQtb2ZmLWJ5OiBEYXZpZCBTLiBNaWxsZXIgPGRhdmVtQGRhdmVtbG9mdC5uZXQ+Ci0t LQogbmV0L2NvcmUvZGV2LmMgfCAzICsrLQogMSBmaWxlIGNoYW5nZWQsIDIgaW5zZXJ0aW9ucygr KSwgMSBkZWxldGlvbigtKQoKZGlmZiAtLWdpdCBhL25ldC9jb3JlL2Rldi5jIGIvbmV0L2NvcmUv ZGV2LmMKaW5kZXggM2NhNDg3ZS4uNWE0MDdmMCAxMDA2NDQKLS0tIGEvbmV0L2NvcmUvZGV2LmMK KysrIGIvbmV0L2NvcmUvZGV2LmMKQEAgLTU1NTksNyArNTU1OSw4IEBAIHN0YXRpYyBpbnQgbmV0 aWZfYWxsb2NfbmV0ZGV2X3F1ZXVlcyhzdHJ1Y3QgbmV0X2RldmljZSAqZGV2KQogCXN0cnVjdCBu ZXRkZXZfcXVldWUgKnR4OwogCXNpemVfdCBzeiA9IGNvdW50ICogc2l6ZW9mKCp0eCk7CiAKLQlC VUdfT04oY291bnQgPCAxIHx8IGNvdW50ID4gMHhmZmZmKTsKKwlpZiAoY291bnQgPCAxIHx8IGNv dW50ID4gMHhmZmZmKQorCQlyZXR1cm4gLUVJTlZBTDsKIAogCXR4ID0ga3phbGxvYyhzeiwgR0ZQ X0tFUk5FTCB8IF9fR0ZQX05PV0FSTiB8IF9fR0ZQX1JFUEVBVCk7CiAJaWYgKCF0eCkgewotLSAK Mi4xLjAKCgpGcm9tIDNlMDZhYWU5MGM1MWRiMThjNTRiY2RiMmM3OTQ4NTQ0MTNhOWJhMmEgTW9u IFNlcCAxNyAwMDowMDowMCAyMDAxCkZyb206IERhbmllbCBCb3JrbWFubiA8ZGFuaWVsQGlvZ2Vh cmJveC5uZXQ+CkRhdGU6IFR1ZSwgNyBKdWwgMjAxNSAwMDowNzo1MiArMDIwMApTdWJqZWN0OiBb UEFUQ0ggMDMvMjFdIHJ0bmV0bGluazogdmVyaWZ5IElGTEFfVkZfSU5GTyBhdHRyaWJ1dGVzIGJl Zm9yZQogcGFzc2luZyB0aGVtIHRvIGRyaXZlcgoKWyBVcHN0cmVhbSBjb21taXQgNGY3ZDJjZGZk ZGU3MWZmZTk2MjM5OWI3MDIwYzY3NDA1MDMyOTQyMyBdCgpKYXNvbiBHdW50aG9ycGUgcmVwb3J0 ZWQgdGhhdCBzaW5jZSBjb21taXQgYzAyZGI4YzYyOTBiICgicnRuZXRsaW5rOiBtYWtlClNSLUlP ViBWRiBpbnRlcmZhY2Ugc3ltbWV0cmljIiksIHdlIGRvbid0IHZlcmlmeSBJRkxBX1ZGX0lORk8g YXR0cmlidXRlcwphbnltb3JlIHdpdGggcmVzcGVjdCB0byB0aGVpciBwb2xpY3ksIHRoYXQgaXMs IGlmbGFfdmZpbmZvX3BvbGljeVtdLgoKQmVmb3JlLCB0aGV5IHdlcmUgcGFydCBvZiBpZmxhX3Bv bGljeVtdLCBidXQgdGhleSBoYXZlIGJlZW4gbmVzdGVkIHNpbmNlCnBsYWNlZCB1bmRlciBJRkxB X1ZGSU5GT19MSVNULCB0aGF0IGNvbnRhaW5zIHRoZSBhdHRyaWJ1dGUgSUZMQV9WRl9JTkZPLAp3 aGljaCBpcyBhbm90aGVyIG5lc3RlZCBhdHRyaWJ1dGUgZm9yIHRoZSBhY3R1YWwgVkYgYXR0cmli dXRlcyBzdWNoIGFzCklGTEFfVkZfTUFDLCBJRkxBX1ZGX1ZMQU4sIGV0Yy4KCkRlc3BpdGUgdGhl IHBvbGljeSBiZWluZyBzcGxpdCBvdXQgZnJvbSBpZmxhX3BvbGljeVtdIGluIHRoaXMgY29tbWl0 LAppdCdzIG5ldmVyIGFwcGxpZWQgYW55d2hlcmUuIG5sYV9mb3JfZWFjaF9uZXN0ZWQoKSBvbmx5 IGRvZXMgYmFzaWMgbmxhX29rKCkKdGVzdGluZyBmb3Igc3RydWN0IG5sYXR0ciwgYnV0IGl0IGRv ZXNuJ3Qga25vdyBhYm91dCB0aGUgZGF0YSBjb250ZXh0IGFuZAp0aGVpciByZXF1aXJlbWVudHMu CgpGaXgsIG9uIHRvcCBvZiBKYXNvbidzIGluaXRpYWwgd29yaywgZG9lcyAxKSBwYXJzaW5nIG9m IHRoZSBhdHRyaWJ1dGVzCndpdGggdGhlIHJpZ2h0IHBvbGljeSwgYW5kIDIpIHVzaW5nIHRoZSBy ZXN1bHRpbmcgcGFyc2VkIGF0dHJpYnV0ZSB0YWJsZQpmcm9tIDEpIGluc3RlYWQgb2YgdGhlIG5s YV9mb3JfZWFjaF9uZXN0ZWQoKSBsb29wIChqdXN0IGxpa2Ugd2UgdXNlZCB0bwpkbyB3aGVuIHN0 aWxsIHBhcnQgb2YgaWZsYV9wb2xpY3lbXSkuCgpSZWZlcmVuY2U6IGh0dHA6Ly90aHJlYWQuZ21h bmUub3JnL2dtYW5lLmxpbnV4Lm5ldHdvcmsvMzY4OTEzCkZpeGVzOiBjMDJkYjhjNjI5MGIgKCJy dG5ldGxpbms6IG1ha2UgU1ItSU9WIFZGIGludGVyZmFjZSBzeW1tZXRyaWMiKQpSZXBvcnRlZC1i eTogSmFzb24gR3VudGhvcnBlIDxqZ3VudGhvcnBlQG9ic2lkaWFucmVzZWFyY2guY29tPgpDYzog Q2hyaXMgV3JpZ2h0IDxjaHJpc3dAc291cy1zb2wub3JnPgpDYzogU3VjaGV0YSBDaGFrcmFib3J0 eSA8c3VjaGV0YS5jaGFrcmFib3J0eUBxbG9naWMuY29tPgpDYzogR3JlZyBSb3NlIDxncmVnb3J5 LnYucm9zZUBpbnRlbC5jb20+CkNjOiBKZWZmIEtpcnNoZXIgPGplZmZyZXkudC5raXJzaGVyQGlu dGVsLmNvbT4KQ2M6IFJvbnkgRWZyYWltIDxyb255ZUBtZWxsYW5veC5jb20+CkNjOiBWbGFkIFpv bG90YXJvdiA8dmxhZHpAY2xvdWRpdXMtc3lzdGVtcy5jb20+CkNjOiBOaWNvbGFzIERpY2h0ZWwg PG5pY29sYXMuZGljaHRlbEA2d2luZC5jb20+CkNjOiBUaG9tYXMgR3JhZiA8dGdyYWZAc3V1Zy5j aD4KU2lnbmVkLW9mZi1ieTogSmFzb24gR3VudGhvcnBlIDxqZ3VudGhvcnBlQG9ic2lkaWFucmVz ZWFyY2guY29tPgpTaWduZWQtb2ZmLWJ5OiBEYW5pZWwgQm9ya21hbm4gPGRhbmllbEBpb2dlYXJi b3gubmV0PgpBY2tlZC1ieTogVmxhZCBab2xvdGFyb3YgPHZsYWR6QGNsb3VkaXVzLXN5c3RlbXMu Y29tPgpTaWduZWQtb2ZmLWJ5OiBEYXZpZCBTLiBNaWxsZXIgPGRhdmVtQGRhdmVtbG9mdC5uZXQ+ Ci0tLQogbmV0L2NvcmUvcnRuZXRsaW5rLmMgfCAxMjggKysrKysrKysrKysrKysrKysrKysrKysr KystLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAxIGZpbGUgY2hhbmdlZCwgNjUgaW5zZXJ0aW9u cygrKSwgNjMgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvbmV0L2NvcmUvcnRuZXRsaW5rLmMg Yi9uZXQvY29yZS9ydG5ldGxpbmsuYwppbmRleCA3NmNjMjdmLi5mZDNhMTZlIDEwMDY0NAotLS0g YS9uZXQvY29yZS9ydG5ldGxpbmsuYworKysgYi9uZXQvY29yZS9ydG5ldGxpbmsuYwpAQCAtMTE5 NywxMCArMTE5Nyw2IEBAIHN0YXRpYyBjb25zdCBzdHJ1Y3QgbmxhX3BvbGljeSBpZmxhX2luZm9f cG9saWN5W0lGTEFfSU5GT19NQVgrMV0gPSB7CiAJW0lGTEFfSU5GT19EQVRBXQk9IHsgLnR5cGUg PSBOTEFfTkVTVEVEIH0sCiB9OwogCi1zdGF0aWMgY29uc3Qgc3RydWN0IG5sYV9wb2xpY3kgaWZs YV92ZmluZm9fcG9saWN5W0lGTEFfVkZfSU5GT19NQVgrMV0gPSB7Ci0JW0lGTEFfVkZfSU5GT10J CT0geyAudHlwZSA9IE5MQV9ORVNURUQgfSwKLX07Ci0KIHN0YXRpYyBjb25zdCBzdHJ1Y3Qgbmxh X3BvbGljeSBpZmxhX3ZmX3BvbGljeVtJRkxBX1ZGX01BWCsxXSA9IHsKIAlbSUZMQV9WRl9NQUNd CQk9IHsgLmxlbiA9IHNpemVvZihzdHJ1Y3QgaWZsYV92Zl9tYWMpIH0sCiAJW0lGTEFfVkZfVkxB Tl0JCT0geyAubGVuID0gc2l6ZW9mKHN0cnVjdCBpZmxhX3ZmX3ZsYW4pIH0sCkBAIC0xMjc0LDY3 ICsxMjcwLDY2IEBAIHN0YXRpYyBpbnQgdmFsaWRhdGVfbGlua21zZyhzdHJ1Y3QgbmV0X2Rldmlj ZSAqZGV2LCBzdHJ1Y3QgbmxhdHRyICp0YltdKQogCXJldHVybiAwOwogfQogCi1zdGF0aWMgaW50 IGRvX3NldHZmaW5mbyhzdHJ1Y3QgbmV0X2RldmljZSAqZGV2LCBzdHJ1Y3QgbmxhdHRyICphdHRy KQorc3RhdGljIGludCBkb19zZXR2ZmluZm8oc3RydWN0IG5ldF9kZXZpY2UgKmRldiwgc3RydWN0 IG5sYXR0ciAqKnRiKQogewotCWludCByZW0sIGVyciA9IC1FSU5WQUw7Ci0Jc3RydWN0IG5sYXR0 ciAqdmY7CiAJY29uc3Qgc3RydWN0IG5ldF9kZXZpY2Vfb3BzICpvcHMgPSBkZXYtPm5ldGRldl9v cHM7CisJaW50IGVyciA9IC1FSU5WQUw7CiAKLQlubGFfZm9yX2VhY2hfbmVzdGVkKHZmLCBhdHRy LCByZW0pIHsKLQkJc3dpdGNoIChubGFfdHlwZSh2ZikpIHsKLQkJY2FzZSBJRkxBX1ZGX01BQzog ewotCQkJc3RydWN0IGlmbGFfdmZfbWFjICppdm07Ci0JCQlpdm0gPSBubGFfZGF0YSh2Zik7Ci0J CQllcnIgPSAtRU9QTk9UU1VQUDsKLQkJCWlmIChvcHMtPm5kb19zZXRfdmZfbWFjKQotCQkJCWVy ciA9IG9wcy0+bmRvX3NldF92Zl9tYWMoZGV2LCBpdm0tPnZmLAotCQkJCQkJCSAgaXZtLT5tYWMp OwotCQkJYnJlYWs7Ci0JCX0KLQkJY2FzZSBJRkxBX1ZGX1ZMQU46IHsKLQkJCXN0cnVjdCBpZmxh X3ZmX3ZsYW4gKml2djsKLQkJCWl2diA9IG5sYV9kYXRhKHZmKTsKLQkJCWVyciA9IC1FT1BOT1RT VVBQOwotCQkJaWYgKG9wcy0+bmRvX3NldF92Zl92bGFuKQotCQkJCWVyciA9IG9wcy0+bmRvX3Nl dF92Zl92bGFuKGRldiwgaXZ2LT52ZiwKLQkJCQkJCQkgICBpdnYtPnZsYW4sCi0JCQkJCQkJICAg aXZ2LT5xb3MpOwotCQkJYnJlYWs7Ci0JCX0KLQkJY2FzZSBJRkxBX1ZGX1RYX1JBVEU6IHsKLQkJ CXN0cnVjdCBpZmxhX3ZmX3R4X3JhdGUgKml2dDsKLQkJCWl2dCA9IG5sYV9kYXRhKHZmKTsKLQkJ CWVyciA9IC1FT1BOT1RTVVBQOwotCQkJaWYgKG9wcy0+bmRvX3NldF92Zl90eF9yYXRlKQotCQkJ CWVyciA9IG9wcy0+bmRvX3NldF92Zl90eF9yYXRlKGRldiwgaXZ0LT52ZiwKLQkJCQkJCQkgICAg ICBpdnQtPnJhdGUpOwotCQkJYnJlYWs7Ci0JCX0KLQkJY2FzZSBJRkxBX1ZGX1NQT09GQ0hLOiB7 Ci0JCQlzdHJ1Y3QgaWZsYV92Zl9zcG9vZmNoayAqaXZzOwotCQkJaXZzID0gbmxhX2RhdGEodmYp OwotCQkJZXJyID0gLUVPUE5PVFNVUFA7Ci0JCQlpZiAob3BzLT5uZG9fc2V0X3ZmX3Nwb29mY2hr KQotCQkJCWVyciA9IG9wcy0+bmRvX3NldF92Zl9zcG9vZmNoayhkZXYsIGl2cy0+dmYsCi0JCQkJ CQkJICAgICAgIGl2cy0+c2V0dGluZyk7Ci0JCQlicmVhazsKLQkJfQotCQljYXNlIElGTEFfVkZf TElOS19TVEFURTogewotCQkJc3RydWN0IGlmbGFfdmZfbGlua19zdGF0ZSAqaXZsOwotCQkJaXZs ID0gbmxhX2RhdGEodmYpOwotCQkJZXJyID0gLUVPUE5PVFNVUFA7Ci0JCQlpZiAob3BzLT5uZG9f c2V0X3ZmX2xpbmtfc3RhdGUpCi0JCQkJZXJyID0gb3BzLT5uZG9fc2V0X3ZmX2xpbmtfc3RhdGUo ZGV2LCBpdmwtPnZmLAotCQkJCQkJCQkgaXZsLT5saW5rX3N0YXRlKTsKLQkJCWJyZWFrOwotCQl9 Ci0JCWRlZmF1bHQ6Ci0JCQllcnIgPSAtRUlOVkFMOwotCQkJYnJlYWs7Ci0JCX0KLQkJaWYgKGVy cikKLQkJCWJyZWFrOworCWlmICh0YltJRkxBX1ZGX01BQ10pIHsKKwkJc3RydWN0IGlmbGFfdmZf bWFjICppdm0gPSBubGFfZGF0YSh0YltJRkxBX1ZGX01BQ10pOworCisJCWVyciA9IC1FT1BOT1RT VVBQOworCQlpZiAob3BzLT5uZG9fc2V0X3ZmX21hYykKKwkJCWVyciA9IG9wcy0+bmRvX3NldF92 Zl9tYWMoZGV2LCBpdm0tPnZmLAorCQkJCQkJICBpdm0tPm1hYyk7CisJCWlmIChlcnIgPCAwKQor CQkJcmV0dXJuIGVycjsKKwl9CisKKwlpZiAodGJbSUZMQV9WRl9WTEFOXSkgeworCQlzdHJ1Y3Qg aWZsYV92Zl92bGFuICppdnYgPSBubGFfZGF0YSh0YltJRkxBX1ZGX1ZMQU5dKTsKKworCQllcnIg PSAtRU9QTk9UU1VQUDsKKwkJaWYgKG9wcy0+bmRvX3NldF92Zl92bGFuKQorCQkJZXJyID0gb3Bz LT5uZG9fc2V0X3ZmX3ZsYW4oZGV2LCBpdnYtPnZmLCBpdnYtPnZsYW4sCisJCQkJCQkgICBpdnYt PnFvcyk7CisJCWlmIChlcnIgPCAwKQorCQkJcmV0dXJuIGVycjsKKwl9CisKKwlpZiAodGJbSUZM QV9WRl9UWF9SQVRFXSkgeworCQlzdHJ1Y3QgaWZsYV92Zl90eF9yYXRlICppdnQgPSBubGFfZGF0 YSh0YltJRkxBX1ZGX1RYX1JBVEVdKTsKKworCQllcnIgPSAtRU9QTk9UU1VQUDsKKwkJaWYgKG9w cy0+bmRvX3NldF92Zl90eF9yYXRlKQorCQkJZXJyID0gb3BzLT5uZG9fc2V0X3ZmX3R4X3JhdGUo ZGV2LCBpdnQtPnZmLAorCQkJCQkJICAgICAgaXZ0LT5yYXRlKTsKKwkJaWYgKGVyciA8IDApCisJ CQlyZXR1cm4gZXJyOwogCX0KKworCWlmICh0YltJRkxBX1ZGX1NQT09GQ0hLXSkgeworCQlzdHJ1 Y3QgaWZsYV92Zl9zcG9vZmNoayAqaXZzID0gbmxhX2RhdGEodGJbSUZMQV9WRl9TUE9PRkNIS10p OworCisJCWVyciA9IC1FT1BOT1RTVVBQOworCQlpZiAob3BzLT5uZG9fc2V0X3ZmX3Nwb29mY2hr KQorCQkJZXJyID0gb3BzLT5uZG9fc2V0X3ZmX3Nwb29mY2hrKGRldiwgaXZzLT52ZiwKKwkJCQkJ CSAgICAgICBpdnMtPnNldHRpbmcpOworCQlpZiAoZXJyIDwgMCkKKwkJCXJldHVybiBlcnI7CisJ fQorCisJaWYgKHRiW0lGTEFfVkZfTElOS19TVEFURV0pIHsKKwkJc3RydWN0IGlmbGFfdmZfbGlu a19zdGF0ZSAqaXZsID0gbmxhX2RhdGEodGJbSUZMQV9WRl9MSU5LX1NUQVRFXSk7CisKKwkJZXJy ID0gLUVPUE5PVFNVUFA7CisJCWlmIChvcHMtPm5kb19zZXRfdmZfbGlua19zdGF0ZSkKKwkJCWVy ciA9IG9wcy0+bmRvX3NldF92Zl9saW5rX3N0YXRlKGRldiwgaXZsLT52ZiwKKwkJCQkJCQkgaXZs LT5saW5rX3N0YXRlKTsKKwkJaWYgKGVyciA8IDApCisJCQlyZXR1cm4gZXJyOworCX0KKwogCXJl dHVybiBlcnI7CiB9CiAKQEAgLTE1MTcsMTQgKzE1MTIsMjEgQEAgc3RhdGljIGludCBkb19zZXRs aW5rKGNvbnN0IHN0cnVjdCBza19idWZmICpza2IsCiAJfQogCiAJaWYgKHRiW0lGTEFfVkZJTkZP X0xJU1RdKSB7CisJCXN0cnVjdCBubGF0dHIgKnZmaW5mb1tJRkxBX1ZGX01BWCArIDFdOwogCQlz dHJ1Y3QgbmxhdHRyICphdHRyOwogCQlpbnQgcmVtOworCiAJCW5sYV9mb3JfZWFjaF9uZXN0ZWQo YXR0ciwgdGJbSUZMQV9WRklORk9fTElTVF0sIHJlbSkgewotCQkJaWYgKG5sYV90eXBlKGF0dHIp ICE9IElGTEFfVkZfSU5GTykgeworCQkJaWYgKG5sYV90eXBlKGF0dHIpICE9IElGTEFfVkZfSU5G TyB8fAorCQkJICAgIG5sYV9sZW4oYXR0cikgPCBOTEFfSERSTEVOKSB7CiAJCQkJZXJyID0gLUVJ TlZBTDsKIAkJCQlnb3RvIGVycm91dDsKIAkJCX0KLQkJCWVyciA9IGRvX3NldHZmaW5mbyhkZXYs IGF0dHIpOworCQkJZXJyID0gbmxhX3BhcnNlX25lc3RlZCh2ZmluZm8sIElGTEFfVkZfTUFYLCBh dHRyLAorCQkJCQkgICAgICAgaWZsYV92Zl9wb2xpY3kpOworCQkJaWYgKGVyciA8IDApCisJCQkJ Z290byBlcnJvdXQ7CisJCQllcnIgPSBkb19zZXR2ZmluZm8oZGV2LCB2ZmluZm8pOwogCQkJaWYg KGVyciA8IDApCiAJCQkJZ290byBlcnJvdXQ7CiAJCQltb2RpZmllZCA9IDE7Ci0tIAoyLjEuMAoK CkZyb20gMDE5MmZkN2QyYWI3NTIxYWIzNjNhNzUxMTMyMTM0NDRhZTcwN2NhNSBNb24gU2VwIDE3 IDAwOjAwOjAwIDIwMDEKRnJvbTogPT9VVEYtOD9xP1RpbW89MjBUZXI9QzM9QTRzPz0gPHRpbW8u dGVyYXNAaWtpLmZpPgpEYXRlOiBUdWUsIDcgSnVsIDIwMTUgMDg6MzQ6MTMgKzAzMDAKU3ViamVj dDogW1BBVENIIDA0LzIxXSBpcF90dW5uZWw6IGZpeCBpcHY0IHBtdHUgY2hlY2sgdG8gaG9ub3Ig aW5uZXIgaXAgaGVhZGVyCiBkZgpNSU1FLVZlcnNpb246IDEuMApDb250ZW50LVR5cGU6IHRleHQv cGxhaW47IGNoYXJzZXQ9VVRGLTgKQ29udGVudC1UcmFuc2Zlci1FbmNvZGluZzogOGJpdAoKWyBV cHN0cmVhbSBjb21taXQgZmMyNGYyYjIwOTQzNjZkYTg3ODZmNTlmMjYwNjMwN2U5MzRjZWExNyBd CgpGcmFnIG5lZWRlZCBzaG91bGQgYmUgc2VudCBvbmx5IGlmIHRoZSBpbm5lciBoZWFkZXIgYXNr ZWQKdG8gbm90IGZyYWdtZW50LiBDdXJyZW50bHkgZnJhZ21lbnRhdGlvbiBpcyBicm9rZW4gaWYg dGhlCnR1bm5lbCBoYXMgZGYgc2V0LCBidXQgZGYgd2FzIG5vdCBhc2tlZCBpbiB0aGUgb3JpZ2lu YWwKcGFja2V0LiBUaGUgdHVubmVsJ3MgZGYgbmVlZHMgdG8gYmUgc3RpbGwgY2hlY2tlZCB0byB1 cGRhdGUKaW50ZXJuYWxseSB0aGUgcG10dSBjYWNoZS4KCkNvbW1pdCAyM2EzNjQ3YmM0ZjkzYmFj IGJyb2tlIGl0LCBhbmQgdGhpcyBjb21taXQgZml4ZXMKdGhlIGlwdjQgZGYgY2hlY2sgYmFjayB0 byB0aGUgd2F5IGl0IHdhcy4KCkZpeGVzOiAyM2EzNjQ3YmM0ZjkzYmFjICgiaXBfdHVubmVsczog VXNlIHNrYi1sZW4gdG8gUE1UVSBjaGVjay4iKQpDYzogUHJhdmluIEIgU2hlbGFyIDxwc2hlbGFy QG5pY2lyYS5jb20+ClNpZ25lZC1vZmYtYnk6IFRpbW8gVGVyw6RzIDx0aW1vLnRlcmFzQGlraS5m aT4KQWNrZWQtYnk6IFByYXZpbiBCIFNoZWxhciA8cHNoZWxhckBuaWNpcmEuY29tPgpTaWduZWQt b2ZmLWJ5OiBEYXZpZCBTLiBNaWxsZXIgPGRhdmVtQGRhdmVtbG9mdC5uZXQ+Ci0tLQogbmV0L2lw djQvaXBfdHVubmVsLmMgfCA4ICsrKysrLS0tCiAxIGZpbGUgY2hhbmdlZCwgNSBpbnNlcnRpb25z KCspLCAzIGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL25ldC9pcHY0L2lwX3R1bm5lbC5jIGIv bmV0L2lwdjQvaXBfdHVubmVsLmMKaW5kZXggZWRkNWE4MS4uNjkxM2UyZiAxMDA2NDQKLS0tIGEv bmV0L2lwdjQvaXBfdHVubmVsLmMKKysrIGIvbmV0L2lwdjQvaXBfdHVubmVsLmMKQEAgLTQ3Niw3 ICs0NzYsOCBAQCBkcm9wOgogRVhQT1JUX1NZTUJPTF9HUEwoaXBfdHVubmVsX3Jjdik7CiAKIHN0 YXRpYyBpbnQgdG5sX3VwZGF0ZV9wbXR1KHN0cnVjdCBuZXRfZGV2aWNlICpkZXYsIHN0cnVjdCBz a19idWZmICpza2IsCi0JCQkgICAgc3RydWN0IHJ0YWJsZSAqcnQsIF9fYmUxNiBkZikKKwkJCSAg ICBzdHJ1Y3QgcnRhYmxlICpydCwgX19iZTE2IGRmLAorCQkJICAgIGNvbnN0IHN0cnVjdCBpcGhk ciAqaW5uZXJfaXBoKQogewogCXN0cnVjdCBpcF90dW5uZWwgKnR1bm5lbCA9IG5ldGRldl9wcml2 KGRldik7CiAJaW50IHBrdF9zaXplID0gc2tiLT5sZW4gLSB0dW5uZWwtPmhsZW4gLSBkZXYtPmhh cmRfaGVhZGVyX2xlbjsKQEAgLTQ5Myw3ICs0OTQsOCBAQCBzdGF0aWMgaW50IHRubF91cGRhdGVf cG10dShzdHJ1Y3QgbmV0X2RldmljZSAqZGV2LCBzdHJ1Y3Qgc2tfYnVmZiAqc2tiLAogCiAJaWYg KHNrYi0+cHJvdG9jb2wgPT0gaHRvbnMoRVRIX1BfSVApKSB7CiAJCWlmICghc2tiX2lzX2dzbyhz a2IpICYmCi0JCSAgICAoZGYgJiBodG9ucyhJUF9ERikpICYmIG10dSA8IHBrdF9zaXplKSB7CisJ CSAgICAoaW5uZXJfaXBoLT5mcmFnX29mZiAmIGh0b25zKElQX0RGKSkgJiYKKwkJICAgIG10dSA8 IHBrdF9zaXplKSB7CiAJCQltZW1zZXQoSVBDQihza2IpLCAwLCBzaXplb2YoKklQQ0Ioc2tiKSkp OwogCQkJaWNtcF9zZW5kKHNrYiwgSUNNUF9ERVNUX1VOUkVBQ0gsIElDTVBfRlJBR19ORUVERUQs IGh0b25sKG10dSkpOwogCQkJcmV0dXJuIC1FMkJJRzsKQEAgLTYxMSw3ICs2MTMsNyBAQCB2b2lk IGlwX3R1bm5lbF94bWl0KHN0cnVjdCBza19idWZmICpza2IsIHN0cnVjdCBuZXRfZGV2aWNlICpk ZXYsCiAJCWdvdG8gdHhfZXJyb3I7CiAJfQogCi0JaWYgKHRubF91cGRhdGVfcG10dShkZXYsIHNr YiwgcnQsIHRubF9wYXJhbXMtPmZyYWdfb2ZmKSkgeworCWlmICh0bmxfdXBkYXRlX3BtdHUoZGV2 LCBza2IsIHJ0LCB0bmxfcGFyYW1zLT5mcmFnX29mZiwgaW5uZXJfaXBoKSkgewogCQlpcF9ydF9w dXQocnQpOwogCQlnb3RvIHR4X2Vycm9yOwogCX0KLS0gCjIuMS4wCgoKRnJvbSBkNzc5YTIxYzg3 MWNkNDVkZGZmNWU5MDI3YTVjOWE5ODRmNzhlYzM5IE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpG cm9tOiBTdGVwaGVuIFNtYWxsZXkgPHNkc0B0eWNoby5uc2EuZ292PgpEYXRlOiBUdWUsIDcgSnVs IDIwMTUgMDk6NDM6NDUgLTA0MDAKU3ViamVjdDogW1BBVENIIDA1LzIxXSBuZXQvdGlwYzogaW5p dGlhbGl6ZSBzZWN1cml0eSBzdGF0ZSBmb3IgbmV3IGNvbm5lY3Rpb24KIHNvY2tldAoKWyBVcHN0 cmVhbSBjb21taXQgZmRkNzVlYThkZjM3MGYyMDZhODE2Mzc4NmU3NDcwYzEyNzdhNTA2NCBdCgpD YWxsaW5nIGNvbm5lY3QoKSB3aXRoIGFuIEFGX1RJUEMgc29ja2V0IHdvdWxkIHRyaWdnZXIgYSBz ZXJpZXMKb2YgZXJyb3IgbWVzc2FnZXMgZnJvbSBTRUxpbnV4IGFsb25nIHRoZSBsaW5lcyBvZjoK U0VMaW51eDogSW52YWxpZCBjbGFzcyAwCnR5cGU9QVZDIG1zZz1hdWRpdCgxNDM0MTI2NjU4LjQ4 NzozNDUwMCk6IGF2YzogIGRlbmllZCAgeyA8dW5wcmludGFibGU+IH0KICBmb3IgcGlkPTI5MiBj b21tPSJrd29ya2VyL3UxNjo1IiBzY29udGV4dD1zeXN0ZW1fdTpzeXN0ZW1fcjprZXJuZWxfdDpz MAogIHRjb250ZXh0PXN5c3RlbV91Om9iamVjdF9yOnVubGFiZWxlZF90OnMwIHRjbGFzcz08dW5w cmludGFibGU+CiAgcGVybWlzc2l2ZT0wCgpUaGlzIHdhcyBkdWUgdG8gYSBmYWlsdXJlIHRvIGlu aXRpYWxpemUgdGhlIHNlY3VyaXR5IHN0YXRlIG9mIHRoZSBuZXcKY29ubmVjdGlvbiBzb2NrIGJ5 IHRoZSB0aXBjIGNvZGUsIGxlYXZpbmcgaXQgd2l0aCBqdW5rIGluIHRoZSBzZWN1cml0eQpjbGFz cyBmaWVsZCBhbmQgYW4gdW5sYWJlbGVkIHNlY2lkLiAgQWRkIGEgY2FsbCB0byBzZWN1cml0eV9z a19jbG9uZSgpCnRvIGluaGVyaXQgdGhlIHNlY3VyaXR5IHN0YXRlIGZyb20gdGhlIHBhcmVudCBz b2NrZXQuCgpSZXBvcnRlZC1ieTogVGltIFNoZWFyZXIgPHRpbS5zaGVhcmVyQG92ZXJ0dXJlbmV0 d29ya3MuY29tPgpTaWduZWQtb2ZmLWJ5OiBTdGVwaGVuIFNtYWxsZXkgPHNkc0B0eWNoby5uc2Eu Z292PgpBY2tlZC1ieTogUGF1bCBNb29yZSA8cGF1bEBwYXVsLW1vb3JlLmNvbT4KQWNrZWQtYnk6 IFlpbmcgWHVlIDx5aW5nLnh1ZUB3aW5kcml2ZXIuY29tPgpTaWduZWQtb2ZmLWJ5OiBEYXZpZCBT LiBNaWxsZXIgPGRhdmVtQGRhdmVtbG9mdC5uZXQ+Ci0tLQogbmV0L3RpcGMvc29ja2V0LmMgfCAx ICsKIDEgZmlsZSBjaGFuZ2VkLCAxIGluc2VydGlvbigrKQoKZGlmZiAtLWdpdCBhL25ldC90aXBj L3NvY2tldC5jIGIvbmV0L3RpcGMvc29ja2V0LmMKaW5kZXggZGZmZGJlYS4uZDEyMzMwOCAxMDA2 NDQKLS0tIGEvbmV0L3RpcGMvc29ja2V0LmMKKysrIGIvbmV0L3RpcGMvc29ja2V0LmMKQEAgLTE2 MDcsNiArMTYwNyw3IEBAIHN0YXRpYyBpbnQgYWNjZXB0KHN0cnVjdCBzb2NrZXQgKnNvY2ssIHN0 cnVjdCBzb2NrZXQgKm5ld19zb2NrLCBpbnQgZmxhZ3MpCiAJcmVzID0gdGlwY19za19jcmVhdGUo c29ja19uZXQoc29jay0+c2spLCBuZXdfc29jaywgMCwgMSk7CiAJaWYgKHJlcykKIAkJZ290byBl eGl0OworCXNlY3VyaXR5X3NrX2Nsb25lKHNvY2stPnNrLCBuZXdfc29jay0+c2spOwogCiAJbmV3 X3NrID0gbmV3X3NvY2stPnNrOwogCW5ld190c29jayA9IHRpcGNfc2sobmV3X3NrKTsKLS0gCjIu MS4wCgoKRnJvbSA3YTk4MTY4YzdkODNhNmYyMzFmYjRiYTcyYWRhYzg4MWQ2YmUyNjYxIE1vbiBT ZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBOaWtvbGF5IEFsZWtzYW5kcm92IDxyYXpvckBibGFj a3dhbGwub3JnPgpEYXRlOiBUdWUsIDcgSnVsIDIwMTUgMTU6NTU6NTYgKzAyMDAKU3ViamVjdDog W1BBVENIIDA2LzIxXSBicmlkZ2U6IG1kYjogemVybyBvdXQgdGhlIGxvY2FsIGJyX2lwIHZhcmlh YmxlIGJlZm9yZQogdXNlCgpbIFVwc3RyZWFtIGNvbW1pdCBmMTE1OGI3NGU1NGYyZTI0NjJiYTVl MmY0NWExMTgyNDZkOWQ1YjQzIF0KClNpbmNlIGNvbW1pdCBiMGU5YTMwZGQ2NjkgKCJicmlkZ2U6 IEFkZCB2bGFuIGlkIHRvIG11bHRpY2FzdCBncm91cHMiKQp0aGVyZSdzIGEgY2hlY2sgaW4gYnJf aXBfZXF1YWwoKSBmb3IgYSBtYXRjaGluZyB2bGFuIGlkLCBidXQgdGhlIG1kYgpmdW5jdGlvbnMg d2VyZSBub3QgbW9kaWZpZWQgdG8gdXNlIChvciBhdCBsZWFzdCB6ZXJvIGl0KSBzbyB3aGVuIGFu CmVudHJ5IHdhcyBhZGRlZCBpdCB3b3VsZCBoYXZlIGEgZ2FyYmFnZSB2bGFuIGlkIChmcm9tIHRo ZSBsb2NhbCBicl9pcAp2YXJpYWJsZSBpbiBfX2JyX21kYl9hZGQvZGVsKSBhbmQgdGhpcyB3b3Vs ZCBwcmV2ZW50IGl0IGZyb20gYmVpbmcKbWF0Y2hlZCBhbmQgYWxzbyBkZWxldGVkLiBTbyB6ZXJv IG91dCB0aGUgd2hvbGUgbG9jYWwgaXAgdmFyIHRvIHByb3RlY3QKb3Vyc2VsdmVzIGZyb20gZnV0 dXJlIGNoYW5nZXMgYW5kIGFsc28gdG8gZml4IHRoZSBjdXJyZW50IGJ1Zywgc2luY2UKdGhlcmUn cyBubyB2bGFuIGlkIHN1cHBvcnQgaW4gdGhlIG1kYiB1YXBpIC0gdXNlIGFsd2F5cyB2bGFuIGlk IDAuCkV4YW1wbGUgYmVmb3JlIHBhdGNoOgpyb290QGRlYmlhbjp+IyBicmlkZ2UgbWRiIGFkZCBk ZXYgYnIwIHBvcnQgZXRoMSBncnAgMjM5LjAuMC4xIHBlcm1hbmVudApyb290QGRlYmlhbjp+IyBi cmlkZ2UgbWRiCmRldiBicjAgcG9ydCBldGgxIGdycCAyMzkuMC4wLjEgcGVybWFuZW50CnJvb3RA ZGViaWFuOn4jIGJyaWRnZSBtZGIgZGVsIGRldiBicjAgcG9ydCBldGgxIGdycCAyMzkuMC4wLjEg cGVybWFuZW50ClJUTkVUTElOSyBhbnN3ZXJzOiBJbnZhbGlkIGFyZ3VtZW50CgpBZnRlciBwYXRj aDoKcm9vdEBkZWJpYW46fiMgYnJpZGdlIG1kYiBhZGQgZGV2IGJyMCBwb3J0IGV0aDEgZ3JwIDIz OS4wLjAuMSBwZXJtYW5lbnQKcm9vdEBkZWJpYW46fiMgYnJpZGdlIG1kYgpkZXYgYnIwIHBvcnQg ZXRoMSBncnAgMjM5LjAuMC4xIHBlcm1hbmVudApyb290QGRlYmlhbjp+IyBicmlkZ2UgbWRiIGRl bCBkZXYgYnIwIHBvcnQgZXRoMSBncnAgMjM5LjAuMC4xIHBlcm1hbmVudApyb290QGRlYmlhbjp+ IyBicmlkZ2UgbWRiCgpTaWduZWQtb2ZmLWJ5OiBOaWtvbGF5IEFsZWtzYW5kcm92IDxyYXpvckBi bGFja3dhbGwub3JnPgpGaXhlczogYjBlOWEzMGRkNjY5ICgiYnJpZGdlOiBBZGQgdmxhbiBpZCB0 byBtdWx0aWNhc3QgZ3JvdXBzIikKU2lnbmVkLW9mZi1ieTogRGF2aWQgUy4gTWlsbGVyIDxkYXZl bUBkYXZlbWxvZnQubmV0PgotLS0KIG5ldC9icmlkZ2UvYnJfbWRiLmMgfCAyICsrCiAxIGZpbGUg Y2hhbmdlZCwgMiBpbnNlcnRpb25zKCspCgpkaWZmIC0tZ2l0IGEvbmV0L2JyaWRnZS9icl9tZGIu YyBiL25ldC9icmlkZ2UvYnJfbWRiLmMKaW5kZXggYjdiMTkxNC4uMTM0MjFiZiAxMDA2NDQKLS0t IGEvbmV0L2JyaWRnZS9icl9tZGIuYworKysgYi9uZXQvYnJpZGdlL2JyX21kYi5jCkBAIC0zNzAs NiArMzcwLDcgQEAgc3RhdGljIGludCBfX2JyX21kYl9hZGQoc3RydWN0IG5ldCAqbmV0LCBzdHJ1 Y3QgbmV0X2JyaWRnZSAqYnIsCiAJaWYgKCFwIHx8IHAtPmJyICE9IGJyIHx8IHAtPnN0YXRlID09 IEJSX1NUQVRFX0RJU0FCTEVEKQogCQlyZXR1cm4gLUVJTlZBTDsKIAorCW1lbXNldCgmaXAsIDAs IHNpemVvZihpcCkpOwogCWlwLnByb3RvID0gZW50cnktPmFkZHIucHJvdG87CiAJaWYgKGlwLnBy b3RvID09IGh0b25zKEVUSF9QX0lQKSkKIAkJaXAudS5pcDQgPSBlbnRyeS0+YWRkci51LmlwNDsK QEAgLTQxNiw2ICs0MTcsNyBAQCBzdGF0aWMgaW50IF9fYnJfbWRiX2RlbChzdHJ1Y3QgbmV0X2Jy aWRnZSAqYnIsIHN0cnVjdCBicl9tZGJfZW50cnkgKmVudHJ5KQogCWlmICghbmV0aWZfcnVubmlu Zyhici0+ZGV2KSB8fCBici0+bXVsdGljYXN0X2Rpc2FibGVkKQogCQlyZXR1cm4gLUVJTlZBTDsK IAorCW1lbXNldCgmaXAsIDAsIHNpemVvZihpcCkpOwogCWlwLnByb3RvID0gZW50cnktPmFkZHIu cHJvdG87CiAJaWYgKGlwLnByb3RvID09IGh0b25zKEVUSF9QX0lQKSkgewogCQlpZiAodGltZXJf cGVuZGluZygmYnItPmlwNF9xdWVyaWVyLnRpbWVyKSkKLS0gCjIuMS4wCgoKRnJvbSA0NTNjM2Ni MmJlZGYwNGQ5YjJkNTk0ZDYyMGZmMTA4ZTk0OWFjNGRmIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAw MQpGcm9tOiBPbGVnIE5lc3Rlcm92IDxvbGVnQHJlZGhhdC5jb20+CkRhdGU6IFdlZCwgOCBKdWwg MjAxNSAyMTo0MjoxMSArMDIwMApTdWJqZWN0OiBbUEFUQ0ggMDcvMjFdIG5ldDogcGt0Z2VuOiBm aXggcmFjZSBiZXR3ZWVuIHBrdGdlbl90aHJlYWRfd29ya2VyKCkKIGFuZCBrdGhyZWFkX3N0b3Ao KQoKWyBVcHN0cmVhbSBjb21taXQgZmVjZGY4YmUyZDkxZTA0YjBhOWE0Zjc5ZmYwNjQ5OWEzNmY1 ZDE0ZiBdCgpwa3RnZW5fdGhyZWFkX3dvcmtlcigpIGlzIG9idmlvdXNseSByYWN5LCBrdGhyZWFk X3N0b3AoKSBjYW4gY29tZQpiZXR3ZWVuIHRoZSBrdGhyZWFkX3Nob3VsZF9zdG9wKCkgY2hlY2sg YW5kIHNldF9jdXJyZW50X3N0YXRlKCkuCgpTaWduZWQtb2ZmLWJ5OiBPbGVnIE5lc3Rlcm92IDxv bGVnQHJlZGhhdC5jb20+ClJlcG9ydGVkLWJ5OiBKYW4gU3RhbmNlayA8anN0YW5jZWtAcmVkaGF0 LmNvbT4KUmVwb3J0ZWQtYnk6IE1hcmNlbG8gTGVpdG5lciA8bWxlaXRuZXJAcmVkaGF0LmNvbT4K U2lnbmVkLW9mZi1ieTogRGF2aWQgUy4gTWlsbGVyIDxkYXZlbUBkYXZlbWxvZnQubmV0PgotLS0K IG5ldC9jb3JlL3BrdGdlbi5jIHwgNCArKystCiAxIGZpbGUgY2hhbmdlZCwgMyBpbnNlcnRpb25z KCspLCAxIGRlbGV0aW9uKC0pCgpkaWZmIC0tZ2l0IGEvbmV0L2NvcmUvcGt0Z2VuLmMgYi9uZXQv Y29yZS9wa3RnZW4uYwppbmRleCBhMTA0YmEzLi5jZWE0NzM0IDEwMDY0NAotLS0gYS9uZXQvY29y ZS9wa3RnZW4uYworKysgYi9uZXQvY29yZS9wa3RnZW4uYwpAQCAtMzQyMyw4ICszNDIzLDEwIEBA IHN0YXRpYyBpbnQgcGt0Z2VuX3RocmVhZF93b3JrZXIodm9pZCAqYXJnKQogCXBrdGdlbl9yZW1f dGhyZWFkKHQpOwogCiAJLyogV2FpdCBmb3Iga3RocmVhZF9zdG9wICovCi0Jd2hpbGUgKCFrdGhy ZWFkX3Nob3VsZF9zdG9wKCkpIHsKKwlmb3IgKDs7KSB7CiAJCXNldF9jdXJyZW50X3N0YXRlKFRB U0tfSU5URVJSVVBUSUJMRSk7CisJCWlmIChrdGhyZWFkX3Nob3VsZF9zdG9wKCkpCisJCQlicmVh azsKIAkJc2NoZWR1bGUoKTsKIAl9CiAJX19zZXRfY3VycmVudF9zdGF0ZShUQVNLX1JVTk5JTkcp OwotLSAKMi4xLjAKCgpGcm9tIDg4ZjQyMDcxMWEzNWRmNTVhMGJlYTBiOWI5MzEyYjc0ZDQ0NDZj OWQgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCkZyb206IEp1bGlhbiBBbmFzdGFzb3YgPGphQHNz aS5iZz4KRGF0ZTogVGh1LCA5IEp1bCAyMDE1IDA5OjU5OjA5ICswMzAwClN1YmplY3Q6IFtQQVRD SCAwOC8yMV0gbmV0OiBkbyBub3QgcHJvY2VzcyBkZXZpY2UgYmFja2xvZyBkdXJpbmcKIHVucmVn aXN0cmF0aW9uCgpbIFVwc3RyZWFtIGNvbW1pdCBlOWU0ZGQzMjY3ZDBjNTIzNGM1YzBmNDc0NDA0 NTZiMTA4NzVkZWM5IF0KCmNvbW1pdCAzODFjNzU5ZDk5MTYgKCJpcHY0OiBBdm9pZCBjcmFzaGlu ZyBpbiBpcF9lcnJvciIpCmZpeGVzIGEgcHJvYmxlbSB3aGVyZSBwcm9jZXNzZWQgcGFja2V0IGNv bWVzIGZyb20gZGV2aWNlCndpdGggZGVzdHJveWVkIGluZXRkZXYgKGRldi0+aXBfcHRyKS4gVGhp cyBpcyBub3QgZXhwZWN0ZWQKYmVjYXVzZSBpbmV0ZGV2X2Rlc3Ryb3kgaXMgY2FsbGVkIGluIE5F VERFVl9VTlJFR0lTVEVSCnBoYXNlIGFuZCBwYWNrZXRzIHNob3VsZCBub3QgYmUgcHJvY2Vzc2Vk IGFmdGVyCmRldl9jbG9zZV9tYW55KCkgYW5kIHN5bmNocm9uaXplX25ldCgpLiBBYm92ZSBmaXgg aXMgc3RpbGwKcmVxdWlyZWQgYmVjYXVzZSBpbmV0ZGV2X2Rlc3Ryb3kgY2FuIGJlIGNhbGxlZCBm b3Igb3RoZXIKcmVhc29ucy4gQnV0IGl0IHNob3dzIHRoZSByZWFsIHByb2JsZW06IGJhY2tsb2cg Y2FuIGtlZXAKcGFja2V0cyBmb3IgbG9uZyB0aW1lIGFuZCB0aGV5IGRvIG5vdCBob2xkIHJlZmVy ZW5jZSB0bwpkZXZpY2UuIFN1Y2ggcGFja2V0cyBhcmUgdGhlbiBkZWxpdmVyZWQgdG8gdXBwZXIg bGV2ZWxzCmF0IHRoZSBzYW1lIHRpbWUgd2hlbiBkZXZpY2UgaXMgdW5yZWdpc3RlcmVkLgpDYWxs aW5nIGZsdXNoX2JhY2tsb2cgYWZ0ZXIgTkVUREVWX1VOUkVHSVNURVJfRklOQUwgc3RpbGwKYWNj b3VudHMgYWxsIHBhY2tldHMgZnJvbSBiYWNrbG9nIGJ1dCBiZWZvcmUgdGhhdCBzb21lIHBhY2tl dHMKY29udGludWUgdG8gYmUgZGVsaXZlcmVkIHRvIHVwcGVyIGxldmVscyBsb25nIGFmdGVyIHRo ZQpzeW5jaHJvbml6ZV9uZXQgY2FsbCB3aGljaCBpcyBzdXBwb3NlZCB0byB3YWl0IHRoZSBsYXN0 Cm9uZXMuIEFsc28sIGFzIEVyaWMgcG9pbnRlZCBvdXQsIHByb2Nlc3NlZCBwYWNrZXRzLCBtb3N0 bHkKZnJvbSBvdGhlciBkZXZpY2VzLCBjYW4gY29udGludWUgdG8gYWRkIG5ldyBwYWNrZXRzIHRv IGJhY2tsb2cuCgpGaXggdGhlIHByb2JsZW0gYnkgbW92aW5nIGZsdXNoX2JhY2tsb2cgZWFybHks IGFmdGVyIHRoZQpkZXZpY2UgZHJpdmVyIGlzIHN0b3BwZWQgYW5kIGJlZm9yZSB0aGUgc3luY2hy b25pemVfbmV0KCkgY2FsbC4KVGhlbiB1c2UgbmV0aWZfcnVubmluZyBjaGVjayB0byBtYWtlIHN1 cmUgd2UgZG8gbm90IGFkZCBtb3JlCnBhY2tldHMgdG8gYmFja2xvZy4gV2UgaGF2ZSB0byBkbyBp dCBpbiBlbnF1ZXVlX3RvX2JhY2tsb2cKY29udGV4dCB3aGVuIHRoZSBsb2NhbCBJUlEgaXMgZGlz YWJsZWQuIEFzIHJlc3VsdCwgYWZ0ZXIgdGhlCmZsdXNoX2JhY2tsb2cgYW5kIHN5bmNocm9uaXpl X25ldCBzZXF1ZW5jZSBhbGwgcGFja2V0cwpzaG91bGQgYmUgYWNjb3VudGVkLgoKVGhhbmtzIHRv IEVyaWMgVy4gQmllZGVybWFuIGZvciB0aGUgdGVzdCBzY3JpcHQgYW5kIGhpcwp2YWx1YWJsZSBm ZWVkYmFjayEKClJlcG9ydGVkLWJ5OiBWaXR0b3JpbyBHYW1iYWxldHRhIDxsaW51eGJ1Z3NAdml0 dGdhbS5uZXQ+CkZpeGVzOiA2ZTU4M2NlNTI0MmYgKCJuZXQ6IGVsaW1pbmF0ZSByZWZjb3VudGlu ZyBpbiBiYWNrbG9nIHF1ZXVlIikKQ2M6IEVyaWMgVy4gQmllZGVybWFuIDxlYmllZGVybUB4bWlz c2lvbi5jb20+CkNjOiBTdGVwaGVuIEhlbW1pbmdlciA8c3RlcGhlbkBuZXR3b3JrcGx1bWJlci5v cmc+ClNpZ25lZC1vZmYtYnk6IEp1bGlhbiBBbmFzdGFzb3YgPGphQHNzaS5iZz4KU2lnbmVkLW9m Zi1ieTogRGF2aWQgUy4gTWlsbGVyIDxkYXZlbUBkYXZlbWxvZnQubmV0PgotLS0KIG5ldC9jb3Jl L2Rldi5jIHwgNiArKysrLS0KIDEgZmlsZSBjaGFuZ2VkLCA0IGluc2VydGlvbnMoKyksIDIgZGVs ZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvbmV0L2NvcmUvZGV2LmMgYi9uZXQvY29yZS9kZXYuYwpp bmRleCA1YTQwN2YwLi44OWM2MTM0IDEwMDY0NAotLS0gYS9uZXQvY29yZS9kZXYuYworKysgYi9u ZXQvY29yZS9kZXYuYwpAQCAtMzE5Myw2ICszMTkzLDggQEAgc3RhdGljIGludCBlbnF1ZXVlX3Rv X2JhY2tsb2coc3RydWN0IHNrX2J1ZmYgKnNrYiwgaW50IGNwdSwKIAlsb2NhbF9pcnFfc2F2ZShm bGFncyk7CiAKIAlycHNfbG9jayhzZCk7CisJaWYgKCFuZXRpZl9ydW5uaW5nKHNrYi0+ZGV2KSkK KwkJZ290byBkcm9wOwogCXFsZW4gPSBza2JfcXVldWVfbGVuKCZzZC0+aW5wdXRfcGt0X3F1ZXVl KTsKIAlpZiAocWxlbiA8PSBuZXRkZXZfbWF4X2JhY2tsb2cgJiYgIXNrYl9mbG93X2xpbWl0KHNr YiwgcWxlbikpIHsKIAkJaWYgKHNrYl9xdWV1ZV9sZW4oJnNkLT5pbnB1dF9wa3RfcXVldWUpKSB7 CkBAIC0zMjE0LDYgKzMyMTYsNyBAQCBlbnF1ZXVlOgogCQlnb3RvIGVucXVldWU7CiAJfQogCitk cm9wOgogCXNkLT5kcm9wcGVkKys7CiAJcnBzX3VubG9jayhzZCk7CiAKQEAgLTUzMDIsNiArNTMw NSw3IEBAIHN0YXRpYyB2b2lkIHJvbGxiYWNrX3JlZ2lzdGVyZWRfbWFueShzdHJ1Y3QgbGlzdF9o ZWFkICpoZWFkKQogCQl1bmxpc3RfbmV0ZGV2aWNlKGRldik7CiAKIAkJZGV2LT5yZWdfc3RhdGUg PSBORVRSRUdfVU5SRUdJU1RFUklORzsKKwkJb25fZWFjaF9jcHUoZmx1c2hfYmFja2xvZywgZGV2 LCAxKTsKIAl9CiAKIAlzeW5jaHJvbml6ZV9uZXQoKTsKQEAgLTU5MTgsOCArNTkyMiw2IEBAIHZv aWQgbmV0ZGV2X3J1bl90b2RvKHZvaWQpCiAKIAkJZGV2LT5yZWdfc3RhdGUgPSBORVRSRUdfVU5S RUdJU1RFUkVEOwogCi0JCW9uX2VhY2hfY3B1KGZsdXNoX2JhY2tsb2csIGRldiwgMSk7Ci0KIAkJ bmV0ZGV2X3dhaXRfYWxscmVmcyhkZXYpOwogCiAJCS8qIHBhcmFub2lhICovCi0tIAoyLjEuMAoK CkZyb20gYmVhZmYwYWU4ZmEzZTJlMmU5Nzc3ZDE0MjM2OWY3MTU3OGQ1YjY4MiBNb24gU2VwIDE3 IDAwOjAwOjAwIDIwMDEKRnJvbTogSnVsaWFuIEFuYXN0YXNvdiA8amFAc3NpLmJnPgpEYXRlOiBU aHUsIDkgSnVsIDIwMTUgMDk6NTk6MTAgKzAzMDAKU3ViamVjdDogW1BBVENIIDA5LzIxXSBuZXQ6 IGNhbGwgcmN1X3JlYWRfbG9jayBlYXJseSBpbiBwcm9jZXNzX2JhY2tsb2cKClsgVXBzdHJlYW0g Y29tbWl0IDJjMTdkMjdjMzZkY2NlMmI2YmY2ODlmNDFhNDZiOWU5MDk4NzdjMjEgXQoKSW5jb21p bmcgcGFja2V0IHNob3VsZCBiZSBlaXRoZXIgaW4gYmFja2xvZyBxdWV1ZSBvcgppbiBSQ1UgcmVh ZC1zaWRlIHNlY3Rpb24uIE90aGVyd2lzZSwgdGhlIGZpbmFsIHNlcXVlbmNlIG9mCmZsdXNoX2Jh Y2tsb2coKSBhbmQgc3luY2hyb25pemVfbmV0KCkgbWF5IG1pc3MgcGFja2V0cwp0aGF0IGNhbiBy dW4gd2l0aG91dCBkZXZpY2UgcmVmZXJlbmNlOgoKQ1BVIDEgICAgICAgICAgICAgICAgICBDUFUg MgogICAgICAgICAgICAgICAgICAgICAgIHNrYi0+ZGV2OiBubyByZWZlcmVuY2UKICAgICAgICAg ICAgICAgICAgICAgICBwcm9jZXNzX2JhY2tsb2c6X19za2JfZGVxdWV1ZQogICAgICAgICAgICAg ICAgICAgICAgIHByb2Nlc3NfYmFja2xvZzpsb2NhbF9pcnFfZW5hYmxlCgpvbl9lYWNoX2NwdSBm b3IKZmx1c2hfYmFja2xvZyA9PiAgICAgICBJUEkoaGFyZGlycSk6IGZsdXNoX2JhY2tsb2cKICAg ICAgICAgICAgICAgICAgICAgICAtIHBhY2tldCBub3QgZm91bmQgaW4gYmFja2xvZwoKICAgICAg ICAgICAgICAgICAgICAgICBDUFUgZGVsYXllZCAuLi4Kc3luY2hyb25pemVfbmV0Ci0gbm8gb25n b2luZyBSQ1UKcmVhZC1zaWRlIHNlY3Rpb25zCgpuZXRkZXZfcnVuX3RvZG8sCnJjdV9iYXJyaWVy OiBubwpvbmdvaW5nIGNhbGxiYWNrcwogICAgICAgICAgICAgICAgICAgICAgIF9fbmV0aWZfcmVj ZWl2ZV9za2JfY29yZTpyY3VfcmVhZF9sb2NrCiAgICAgICAgICAgICAgICAgICAgICAgLSB0b28g bGF0ZQpmcmVlIGRldgogICAgICAgICAgICAgICAgICAgICAgIHByb2Nlc3MgcGFja2V0IGZvciBm cmVlZCBkZXYKCkZpeGVzOiA2ZTU4M2NlNTI0MmYgKCJuZXQ6IGVsaW1pbmF0ZSByZWZjb3VudGlu ZyBpbiBiYWNrbG9nIHF1ZXVlIikKQ2M6IEVyaWMgVy4gQmllZGVybWFuIDxlYmllZGVybUB4bWlz c2lvbi5jb20+CkNjOiBTdGVwaGVuIEhlbW1pbmdlciA8c3RlcGhlbkBuZXR3b3JrcGx1bWJlci5v cmc+ClNpZ25lZC1vZmYtYnk6IEp1bGlhbiBBbmFzdGFzb3YgPGphQHNzaS5iZz4KU2lnbmVkLW9m Zi1ieTogRGF2aWQgUy4gTWlsbGVyIDxkYXZlbUBkYXZlbWxvZnQubmV0PgotLS0KIG5ldC9jb3Jl L2Rldi5jIHwgMjkgKysrKysrKysrKysrKystLS0tLS0tLS0tLS0tLS0KIDEgZmlsZSBjaGFuZ2Vk LCAxNCBpbnNlcnRpb25zKCspLCAxNSBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9uZXQvY29y ZS9kZXYuYyBiL25ldC9jb3JlL2Rldi5jCmluZGV4IDg5YzYxMzQuLmY5OTFmNWQgMTAwNjQ0Ci0t LSBhL25ldC9jb3JlL2Rldi5jCisrKyBiL25ldC9jb3JlL2Rldi5jCkBAIC0zNTIxLDggKzM1MjEs NiBAQCBzdGF0aWMgaW50IF9fbmV0aWZfcmVjZWl2ZV9za2JfY29yZShzdHJ1Y3Qgc2tfYnVmZiAq c2tiLCBib29sIHBmbWVtYWxsb2MpCiAKIAlwdF9wcmV2ID0gTlVMTDsKIAotCXJjdV9yZWFkX2xv Y2soKTsKLQogYW5vdGhlcl9yb3VuZDoKIAlza2ItPnNrYl9paWYgPSBza2ItPmRldi0+aWZpbmRl eDsKIApAQCAtMzUzMiw3ICszNTMwLDcgQEAgYW5vdGhlcl9yb3VuZDoKIAkgICAgc2tiLT5wcm90 b2NvbCA9PSBjcHVfdG9fYmUxNihFVEhfUF84MDIxQUQpKSB7CiAJCXNrYiA9IHNrYl92bGFuX3Vu dGFnKHNrYik7CiAJCWlmICh1bmxpa2VseSghc2tiKSkKLQkJCWdvdG8gdW5sb2NrOworCQkJZ290 byBvdXQ7CiAJfQogCiAjaWZkZWYgQ09ORklHX05FVF9DTFNfQUNUCkBAIC0zNTU3LDcgKzM1NTUs NyBAQCBza2lwX3RhcHM6CiAjaWZkZWYgQ09ORklHX05FVF9DTFNfQUNUCiAJc2tiID0gaGFuZGxl X2luZyhza2IsICZwdF9wcmV2LCAmcmV0LCBvcmlnX2Rldik7CiAJaWYgKCFza2IpCi0JCWdvdG8g dW5sb2NrOworCQlnb3RvIG91dDsKIG5jbHM6CiAjZW5kaWYKIApAQCAtMzU3Miw3ICszNTcwLDcg QEAgbmNsczoKIAkJaWYgKHZsYW5fZG9fcmVjZWl2ZSgmc2tiKSkKIAkJCWdvdG8gYW5vdGhlcl9y b3VuZDsKIAkJZWxzZSBpZiAodW5saWtlbHkoIXNrYikpCi0JCQlnb3RvIHVubG9jazsKKwkJCWdv dG8gb3V0OwogCX0KIAogCXJ4X2hhbmRsZXIgPSByY3VfZGVyZWZlcmVuY2Uoc2tiLT5kZXYtPnJ4 X2hhbmRsZXIpOwpAQCAtMzU4NCw3ICszNTgyLDcgQEAgbmNsczoKIAkJc3dpdGNoIChyeF9oYW5k bGVyKCZza2IpKSB7CiAJCWNhc2UgUlhfSEFORExFUl9DT05TVU1FRDoKIAkJCXJldCA9IE5FVF9S WF9TVUNDRVNTOwotCQkJZ290byB1bmxvY2s7CisJCQlnb3RvIG91dDsKIAkJY2FzZSBSWF9IQU5E TEVSX0FOT1RIRVI6CiAJCQlnb3RvIGFub3RoZXJfcm91bmQ7CiAJCWNhc2UgUlhfSEFORExFUl9F WEFDVDoKQEAgLTM2MzYsOCArMzYzNCw2IEBAIGRyb3A6CiAJCXJldCA9IE5FVF9SWF9EUk9QOwog CX0KIAotdW5sb2NrOgotCXJjdV9yZWFkX3VubG9jaygpOwogb3V0OgogCXJldHVybiByZXQ7CiB9 CkBAIC0zNjg0LDI5ICszNjgwLDMwIEBAIHN0YXRpYyBpbnQgX19uZXRpZl9yZWNlaXZlX3NrYihz dHJ1Y3Qgc2tfYnVmZiAqc2tiKQogICovCiBpbnQgbmV0aWZfcmVjZWl2ZV9za2Ioc3RydWN0IHNr X2J1ZmYgKnNrYikKIHsKKwlpbnQgcmV0OworCiAJbmV0X3RpbWVzdGFtcF9jaGVjayhuZXRkZXZf dHN0YW1wX3ByZXF1ZXVlLCBza2IpOwogCiAJaWYgKHNrYl9kZWZlcl9yeF90aW1lc3RhbXAoc2ti KSkKIAkJcmV0dXJuIE5FVF9SWF9TVUNDRVNTOwogCisJcmN1X3JlYWRfbG9jaygpOworCiAjaWZk ZWYgQ09ORklHX1JQUwogCWlmIChzdGF0aWNfa2V5X2ZhbHNlKCZycHNfbmVlZGVkKSkgewogCQlz dHJ1Y3QgcnBzX2Rldl9mbG93IHZvaWRmbG93LCAqcmZsb3cgPSAmdm9pZGZsb3c7Ci0JCWludCBj cHUsIHJldDsKLQotCQlyY3VfcmVhZF9sb2NrKCk7Ci0KLQkJY3B1ID0gZ2V0X3Jwc19jcHUoc2ti LT5kZXYsIHNrYiwgJnJmbG93KTsKKwkJaW50IGNwdSA9IGdldF9ycHNfY3B1KHNrYi0+ZGV2LCBz a2IsICZyZmxvdyk7CiAKIAkJaWYgKGNwdSA+PSAwKSB7CiAJCQlyZXQgPSBlbnF1ZXVlX3RvX2Jh Y2tsb2coc2tiLCBjcHUsICZyZmxvdy0+bGFzdF9xdGFpbCk7CiAJCQlyY3VfcmVhZF91bmxvY2so KTsKIAkJCXJldHVybiByZXQ7CiAJCX0KLQkJcmN1X3JlYWRfdW5sb2NrKCk7CiAJfQogI2VuZGlm Ci0JcmV0dXJuIF9fbmV0aWZfcmVjZWl2ZV9za2Ioc2tiKTsKKwlyZXQgPSBfX25ldGlmX3JlY2Vp dmVfc2tiKHNrYik7CisJcmN1X3JlYWRfdW5sb2NrKCk7CisJcmV0dXJuIHJldDsKIH0KIEVYUE9S VF9TWU1CT0wobmV0aWZfcmVjZWl2ZV9za2IpOwogCkBAIC00MTE2LDggKzQxMTMsMTAgQEAgc3Rh dGljIGludCBwcm9jZXNzX2JhY2tsb2coc3RydWN0IG5hcGlfc3RydWN0ICpuYXBpLCBpbnQgcXVv dGEpCiAJCXVuc2lnbmVkIGludCBxbGVuOwogCiAJCXdoaWxlICgoc2tiID0gX19za2JfZGVxdWV1 ZSgmc2QtPnByb2Nlc3NfcXVldWUpKSkgeworCQkJcmN1X3JlYWRfbG9jaygpOwogCQkJbG9jYWxf aXJxX2VuYWJsZSgpOwogCQkJX19uZXRpZl9yZWNlaXZlX3NrYihza2IpOworCQkJcmN1X3JlYWRf dW5sb2NrKCk7CiAJCQlsb2NhbF9pcnFfZGlzYWJsZSgpOwogCQkJaW5wdXRfcXVldWVfaGVhZF9p bmNyKHNkKTsKIAkJCWlmICgrK3dvcmsgPj0gcXVvdGEpIHsKLS0gCjIuMS4wCgoKRnJvbSBiN2Y1 ZTc5M2FjYjI1ZGEwYmJlOWI1ZTVhMDcwODQ0Yjg4YjhkNDEyIE1vbiBTZXAgMTcgMDA6MDA6MDAg MjAwMQpGcm9tOiBIZXJiZXJ0IFh1IDxoZXJiZXJ0QGdvbmRvci5hcGFuYS5vcmcuYXU+CkRhdGU6 IE1vbiwgMTMgSnVsIDIwMTUgMTY6MDQ6MTMgKzA4MDAKU3ViamVjdDogW1BBVENIIDEwLzIxXSBu ZXQ6IENsb25lIHNrYiBiZWZvcmUgc2V0dGluZyBwZWVrZWQgZmxhZwoKWyBVcHN0cmVhbSBjb21t aXQgNzM4YWMxZWJiOTZkMDJlMGQyM2JjMzIwMzAyYTZlYTk0YzYxMmRlYyBdCgpTaGFyZWQgc2ti cyBtdXN0IG5vdCBiZSBtb2RpZmllZCBhbmQgdGhpcyBpcyBjcnVjaWFsIGZvciBicm9hZGNhc3QK YW5kL29yIG11bHRpY2FzdCBwYXRocyB3aGVyZSB3ZSB1c2UgaXQgYXMgYW4gb3B0aW1pc2F0aW9u IHRvIGF2b2lkCnVubmVjZXNzYXJ5IGNsb25pbmcuCgpUaGUgZnVuY3Rpb24gc2tiX3JlY3ZfZGF0 YWdyYW0gYnJlYWtzIHRoaXMgcnVsZSBieSBzZXR0aW5nIHBlZWtlZAp3aXRob3V0IGNsb25pbmcg dGhlIHNrYiBmaXJzdC4gIFRoaXMgY2F1c2VzIGZ1bmt5IHJhY2VzIHdoaWNoIGxlYWRzCnRvIGRv dWJsZS1mcmVlLgoKVGhpcyBwYXRjaCBmaXhlcyB0aGlzIGJ5IGNsb25pbmcgdGhlIHNrYiBhbmQg cmVwbGFjaW5nIHRoZSBza2IKaW4gdGhlIGxpc3Qgd2hlbiBzZXR0aW5nIHNrYi0+cGVla2VkLgoK Rml4ZXM6IGE1OTMyMmJlMDdjOSAoIltVRFBdOiBPbmx5IGluY3JlbWVudCBjb3VudGVyIG9uIGZp cnN0IHBlZWsvcmVjdiIpClJlcG9ydGVkLWJ5OiBLb25zdGFudGluIEtobGVibmlrb3YgPGtobGVi bmlrb3ZAeWFuZGV4LXRlYW0ucnU+ClNpZ25lZC1vZmYtYnk6IEhlcmJlcnQgWHUgPGhlcmJlcnRA Z29uZG9yLmFwYW5hLm9yZy5hdT4KU2lnbmVkLW9mZi1ieTogRGF2aWQgUy4gTWlsbGVyIDxkYXZl bUBkYXZlbWxvZnQubmV0PgotLS0KIG5ldC9jb3JlL2RhdGFncmFtLmMgfCA0MSArKysrKysrKysr KysrKysrKysrKysrKysrKysrKysrKysrKysrKy0tLQogMSBmaWxlIGNoYW5nZWQsIDM4IGluc2Vy dGlvbnMoKyksIDMgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvbmV0L2NvcmUvZGF0YWdyYW0u YyBiL25ldC9jb3JlL2RhdGFncmFtLmMKaW5kZXggYWY4MTRlNy4uMDA1MTMxZSAxMDA2NDQKLS0t IGEvbmV0L2NvcmUvZGF0YWdyYW0uYworKysgYi9uZXQvY29yZS9kYXRhZ3JhbS5jCkBAIC0xMzAs NiArMTMwLDM1IEBAIG91dF9ub2VycjoKIAlnb3RvIG91dDsKIH0KIAorc3RhdGljIGludCBza2Jf c2V0X3BlZWtlZChzdHJ1Y3Qgc2tfYnVmZiAqc2tiKQoreworCXN0cnVjdCBza19idWZmICpuc2ti OworCisJaWYgKHNrYi0+cGVla2VkKQorCQlyZXR1cm4gMDsKKworCS8qIFdlIGhhdmUgdG8gdW5z aGFyZSBhbiBza2IgYmVmb3JlIG1vZGlmeWluZyBpdC4gKi8KKwlpZiAoIXNrYl9zaGFyZWQoc2ti KSkKKwkJZ290byBkb25lOworCisJbnNrYiA9IHNrYl9jbG9uZShza2IsIEdGUF9BVE9NSUMpOwor CWlmICghbnNrYikKKwkJcmV0dXJuIC1FTk9NRU07CisKKwlza2ItPnByZXYtPm5leHQgPSBuc2ti OworCXNrYi0+bmV4dC0+cHJldiA9IG5za2I7CisJbnNrYi0+cHJldiA9IHNrYi0+cHJldjsKKwlu c2tiLT5uZXh0ID0gc2tiLT5uZXh0OworCisJY29uc3VtZV9za2Ioc2tiKTsKKwlza2IgPSBuc2ti OworCitkb25lOgorCXNrYi0+cGVla2VkID0gMTsKKworCXJldHVybiAwOworfQorCiAvKioKICAq CV9fc2tiX3JlY3ZfZGF0YWdyYW0gLSBSZWNlaXZlIGEgZGF0YWdyYW0gc2tidWZmCiAgKglAc2s6 IHNvY2tldApAQCAtMTY0LDcgKzE5Myw5IEBAIG91dF9ub2VycjoKIHN0cnVjdCBza19idWZmICpf X3NrYl9yZWN2X2RhdGFncmFtKHN0cnVjdCBzb2NrICpzaywgdW5zaWduZWQgaW50IGZsYWdzLAog CQkJCSAgICBpbnQgKnBlZWtlZCwgaW50ICpvZmYsIGludCAqZXJyKQogeworCXN0cnVjdCBza19i dWZmX2hlYWQgKnF1ZXVlID0gJnNrLT5za19yZWNlaXZlX3F1ZXVlOwogCXN0cnVjdCBza19idWZm ICpza2IsICpsYXN0OworCXVuc2lnbmVkIGxvbmcgY3B1X2ZsYWdzOwogCWxvbmcgdGltZW87CiAJ LyoKIAkgKiBDYWxsZXIgaXMgYWxsb3dlZCBub3QgdG8gY2hlY2sgc2stPnNrX2VyciBiZWZvcmUg c2tiX3JlY3ZfZGF0YWdyYW0oKQpAQCAtMTgzLDggKzIxNCw2IEBAIHN0cnVjdCBza19idWZmICpf X3NrYl9yZWN2X2RhdGFncmFtKHN0cnVjdCBzb2NrICpzaywgdW5zaWduZWQgaW50IGZsYWdzLAog CQkgKiBMb29rIGF0IGN1cnJlbnQgbmZzIGNsaWVudCBieSB0aGUgd2F5Li4uCiAJCSAqIEhvd2V2 ZXIsIHRoaXMgZnVuY3Rpb24gd2FzIGNvcnJlY3QgaW4gYW55IGNhc2UuIDgpCiAJCSAqLwotCQl1 bnNpZ25lZCBsb25nIGNwdV9mbGFnczsKLQkJc3RydWN0IHNrX2J1ZmZfaGVhZCAqcXVldWUgPSAm c2stPnNrX3JlY2VpdmVfcXVldWU7CiAJCWludCBfb2ZmID0gKm9mZjsKIAogCQlsYXN0ID0gKHN0 cnVjdCBza19idWZmICopcXVldWU7CkBAIC0xOTgsNyArMjI3LDExIEBAIHN0cnVjdCBza19idWZm ICpfX3NrYl9yZWN2X2RhdGFncmFtKHN0cnVjdCBzb2NrICpzaywgdW5zaWduZWQgaW50IGZsYWdz LAogCQkJCQlfb2ZmIC09IHNrYi0+bGVuOwogCQkJCQljb250aW51ZTsKIAkJCQl9Ci0JCQkJc2ti LT5wZWVrZWQgPSAxOworCisJCQkJZXJyb3IgPSBza2Jfc2V0X3BlZWtlZChza2IpOworCQkJCWlm IChlcnJvcikKKwkJCQkJZ290byB1bmxvY2tfZXJyOworCiAJCQkJYXRvbWljX2luYygmc2tiLT51 c2Vycyk7CiAJCQl9IGVsc2UKIAkJCQlfX3NrYl91bmxpbmsoc2tiLCBxdWV1ZSk7CkBAIC0yMjIs NiArMjU1LDggQEAgc3RydWN0IHNrX2J1ZmYgKl9fc2tiX3JlY3ZfZGF0YWdyYW0oc3RydWN0IHNv Y2sgKnNrLCB1bnNpZ25lZCBpbnQgZmxhZ3MsCiAKIAlyZXR1cm4gTlVMTDsKIAordW5sb2NrX2Vy cjoKKwlzcGluX3VubG9ja19pcnFyZXN0b3JlKCZxdWV1ZS0+bG9jaywgY3B1X2ZsYWdzKTsKIG5v X3BhY2tldDoKIAkqZXJyID0gZXJyb3I7CiAJcmV0dXJuIE5VTEw7Ci0tIAoyLjEuMAoKCkZyb20g ZDU4YmE1ZTUxZGVhODc5ZTU1NjZmNDU5OTQwNGZlNzU2NDJjZDljZSBNb24gU2VwIDE3IDAwOjAw OjAwIDIwMDEKRnJvbTogSGVyYmVydCBYdSA8aGVyYmVydEBnb25kb3IuYXBhbmEub3JnLmF1PgpE YXRlOiBNb24sIDEzIEp1bCAyMDE1IDIwOjAxOjQyICswODAwClN1YmplY3Q6IFtQQVRDSCAxMS8y MV0gbmV0OiBGaXggc2tiIGNzdW0gcmFjZXMgd2hlbiBwZWVraW5nCgpbIFVwc3RyZWFtIGNvbW1p dCA4OWMyMmQ4YzNiMjc4MjEyZWVmNmE4Y2M2NmI1NzBiYzg0MGE2ZjVhIF0KCldoZW4gd2UgY2Fs Y3VsYXRlIHRoZSBjaGVja3N1bSBvbiB0aGUgcmVjdiBwYXRoLCB3ZSBzdG9yZSB0aGUKcmVzdWx0 IGluIHRoZSBza2IgYXMgYW4gb3B0aW1pc2F0aW9uIGluIGNhc2Ugd2UgbmVlZCB0aGUgY2hlY2tz dW0KYWdhaW4gZG93biB0aGUgbGluZS4KClRoaXMgaXMgaW4gZmFjdCBib2d1cyBmb3IgdGhlIE1T R19QRUVLIGNhc2UgYXMgdGhpcyBpcyBkb25lIHdpdGhvdXQKYW55IGxvY2tpbmcuICBTbyBtdWx0 aXBsZSB0aHJlYWRzIGNhbiBwZWVrIGFuZCB0aGVuIHN0b3JlIHRoZSByZXN1bHQKdG8gdGhlIHNh bWUgc2tiLCBwb3RlbnRpYWxseSByZXN1bHRpbmcgaW4gYm9ndXMgc2tiIHN0YXRlcy4KClRoaXMg cGF0Y2ggZml4ZXMgdGhpcyBieSBvbmx5IHN0b3JpbmcgdGhlIHJlc3VsdCBpZiB0aGUgc2tiIGlz IG5vdApzaGFyZWQuICBUaGlzIHByZXNlcnZlcyB0aGUgb3B0aW1pc2F0aW9ucyBmb3IgdGhlIGZl dyBjYXNlcyB3aGVyZQppdCBjYW4gYmUgZG9uZSBzYWZlbHkgZHVlIHRvIGxvY2tpbmcgb3Igb3Ro ZXIgcmVhc29ucywgZS5nLiwgU0lPQ0lOUS4KClNpZ25lZC1vZmYtYnk6IEhlcmJlcnQgWHUgPGhl cmJlcnRAZ29uZG9yLmFwYW5hLm9yZy5hdT4KQWNrZWQtYnk6IEVyaWMgRHVtYXpldCA8ZWR1bWF6 ZXRAZ29vZ2xlLmNvbT4KU2lnbmVkLW9mZi1ieTogRGF2aWQgUy4gTWlsbGVyIDxkYXZlbUBkYXZl bWxvZnQubmV0PgotLS0KIG5ldC9jb3JlL2RhdGFncmFtLmMgfCAzICsrLQogMSBmaWxlIGNoYW5n ZWQsIDIgaW5zZXJ0aW9ucygrKSwgMSBkZWxldGlvbigtKQoKZGlmZiAtLWdpdCBhL25ldC9jb3Jl L2RhdGFncmFtLmMgYi9uZXQvY29yZS9kYXRhZ3JhbS5jCmluZGV4IDAwNTEzMWUuLmEyMmVjNmEg MTAwNjQ0Ci0tLSBhL25ldC9jb3JlL2RhdGFncmFtLmMKKysrIGIvbmV0L2NvcmUvZGF0YWdyYW0u YwpAQCAtNzc3LDcgKzc3Nyw4IEBAIF9fc3VtMTYgX19za2JfY2hlY2tzdW1fY29tcGxldGVfaGVh ZChzdHJ1Y3Qgc2tfYnVmZiAqc2tiLCBpbnQgbGVuKQogCWlmIChsaWtlbHkoIXN1bSkpIHsKIAkJ aWYgKHVubGlrZWx5KHNrYi0+aXBfc3VtbWVkID09IENIRUNLU1VNX0NPTVBMRVRFKSkKIAkJCW5l dGRldl9yeF9jc3VtX2ZhdWx0KHNrYi0+ZGV2KTsKLQkJc2tiLT5pcF9zdW1tZWQgPSBDSEVDS1NV TV9VTk5FQ0VTU0FSWTsKKwkJaWYgKCFza2Jfc2hhcmVkKHNrYikpCisJCQlza2ItPmlwX3N1bW1l ZCA9IENIRUNLU1VNX1VOTkVDRVNTQVJZOwogCX0KIAlyZXR1cm4gc3VtOwogfQotLSAKMi4xLjAK CgpGcm9tIDlkNTVhZjkxZTdiZjVkNDAyYWY1NWU3ZjdhZDczMDU0ZGExZDI1ZWIgTW9uIFNlcCAx NyAwMDowMDowMCAyMDAxCkZyb206IEhlcmJlcnQgWHUgPGhlcmJlcnRAZ29uZG9yLmFwYW5hLm9y Zy5hdT4KRGF0ZTogVHVlLCA0IEF1ZyAyMDE1IDE1OjQyOjQ3ICswODAwClN1YmplY3Q6IFtQQVRD SCAxMi8yMV0gbmV0OiBGaXggc2tiX3NldF9wZWVrZWQgdXNlLWFmdGVyLWZyZWUgYnVnCgpbIFVw c3RyZWFtIGNvbW1pdCBhMGEyYTY2MDI0OTZhNDVhZTgzOGE5NmRiOGI4MTczNzk0YjVkMzk4IF0K ClRoZSBjb21taXQgNzM4YWMxZWJiOTZkMDJlMGQyM2JjMzIwMzAyYTZlYTk0YzYxMmRlYyAoIm5l dDogQ2xvbmUKc2tiIGJlZm9yZSBzZXR0aW5nIHBlZWtlZCBmbGFnIikgaW50cm9kdWNlZCBhIHVz ZS1hZnRlci1mcmVlIGJ1ZwppbiBza2JfcmVjdl9kYXRhZ3JhbS4gIFRoaXMgaXMgYmVjYXVzZSBz a2Jfc2V0X3BlZWtlZCBtYXkgY3JlYXRlCmEgbmV3IHNrYiBhbmQgZnJlZSB0aGUgZXhpc3Rpbmcg b25lLiAgQXMgaXQgc3RhbmRzIHRoZSBjYWxsZXIgd2lsbApjb250aW51ZSB0byB1c2UgdGhlIG9s ZCBmcmVlZCBza2IuCgpUaGlzIHBhdGNoIGZpeGVzIGl0IGJ5IG1ha2luZyBza2Jfc2V0X3BlZWtl ZCByZXR1cm4gdGhlIG5ldyBza2IKKG9yIHRoZSBvbGQgb25lIGlmIHVuY2hhbmdlZCkuCgpGaXhl czogNzM4YWMxZWJiOTZkICgibmV0OiBDbG9uZSBza2IgYmVmb3JlIHNldHRpbmcgcGVla2VkIGZs YWciKQpSZXBvcnRlZC1ieTogQnJlbmRlbiBCbGFuY28gPGJibGFuY29AcGx1bWdyaWQuY29tPgpT aWduZWQtb2ZmLWJ5OiBIZXJiZXJ0IFh1IDxoZXJiZXJ0QGdvbmRvci5hcGFuYS5vcmcuYXU+ClRl c3RlZC1ieTogQnJlbmRlbiBCbGFuY28gPGJibGFuY29AcGx1bWdyaWQuY29tPgpSZXZpZXdlZC1i eTogS29uc3RhbnRpbiBLaGxlYm5pa292IDxraGxlYm5pa292QHlhbmRleC10ZWFtLnJ1PgpTaWdu ZWQtb2ZmLWJ5OiBEYXZpZCBTLiBNaWxsZXIgPGRhdmVtQGRhdmVtbG9mdC5uZXQ+Ci0tLQogbmV0 L2NvcmUvZGF0YWdyYW0uYyB8IDEzICsrKysrKystLS0tLS0KIDEgZmlsZSBjaGFuZ2VkLCA3IGlu c2VydGlvbnMoKyksIDYgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvbmV0L2NvcmUvZGF0YWdy YW0uYyBiL25ldC9jb3JlL2RhdGFncmFtLmMKaW5kZXggYTIyZWM2YS4uOThlM2Q2MSAxMDA2NDQK LS0tIGEvbmV0L2NvcmUvZGF0YWdyYW0uYworKysgYi9uZXQvY29yZS9kYXRhZ3JhbS5jCkBAIC0x MzAsMTIgKzEzMCwxMiBAQCBvdXRfbm9lcnI6CiAJZ290byBvdXQ7CiB9CiAKLXN0YXRpYyBpbnQg c2tiX3NldF9wZWVrZWQoc3RydWN0IHNrX2J1ZmYgKnNrYikKK3N0YXRpYyBzdHJ1Y3Qgc2tfYnVm ZiAqc2tiX3NldF9wZWVrZWQoc3RydWN0IHNrX2J1ZmYgKnNrYikKIHsKIAlzdHJ1Y3Qgc2tfYnVm ZiAqbnNrYjsKIAogCWlmIChza2ItPnBlZWtlZCkKLQkJcmV0dXJuIDA7CisJCXJldHVybiBza2I7 CiAKIAkvKiBXZSBoYXZlIHRvIHVuc2hhcmUgYW4gc2tiIGJlZm9yZSBtb2RpZnlpbmcgaXQuICov CiAJaWYgKCFza2Jfc2hhcmVkKHNrYikpCkBAIC0xNDMsNyArMTQzLDcgQEAgc3RhdGljIGludCBz a2Jfc2V0X3BlZWtlZChzdHJ1Y3Qgc2tfYnVmZiAqc2tiKQogCiAJbnNrYiA9IHNrYl9jbG9uZShz a2IsIEdGUF9BVE9NSUMpOwogCWlmICghbnNrYikKLQkJcmV0dXJuIC1FTk9NRU07CisJCXJldHVy biBFUlJfUFRSKC1FTk9NRU0pOwogCiAJc2tiLT5wcmV2LT5uZXh0ID0gbnNrYjsKIAlza2ItPm5l eHQtPnByZXYgPSBuc2tiOwpAQCAtMTU2LDcgKzE1Niw3IEBAIHN0YXRpYyBpbnQgc2tiX3NldF9w ZWVrZWQoc3RydWN0IHNrX2J1ZmYgKnNrYikKIGRvbmU6CiAJc2tiLT5wZWVrZWQgPSAxOwogCi0J cmV0dXJuIDA7CisJcmV0dXJuIHNrYjsKIH0KIAogLyoqCkBAIC0yMjgsOCArMjI4LDkgQEAgc3Ry dWN0IHNrX2J1ZmYgKl9fc2tiX3JlY3ZfZGF0YWdyYW0oc3RydWN0IHNvY2sgKnNrLCB1bnNpZ25l ZCBpbnQgZmxhZ3MsCiAJCQkJCWNvbnRpbnVlOwogCQkJCX0KIAotCQkJCWVycm9yID0gc2tiX3Nl dF9wZWVrZWQoc2tiKTsKLQkJCQlpZiAoZXJyb3IpCisJCQkJc2tiID0gc2tiX3NldF9wZWVrZWQo c2tiKTsKKwkJCQllcnJvciA9IFBUUl9FUlIoc2tiKTsKKwkJCQlpZiAoSVNfRVJSKHNrYikpCiAJ CQkJCWdvdG8gdW5sb2NrX2VycjsKIAogCQkJCWF0b21pY19pbmMoJnNrYi0+dXNlcnMpOwotLSAK Mi4xLjAKCgpGcm9tIDAxMmJhZTRkYmMzMGY5NWRiZjEwNjhjNjBhNmI2MjZhYzQzZjczN2YgTW9u IFNlcCAxNyAwMDowMDowMCAyMDAxCkZyb206IE5pa29sYXkgQWxla3NhbmRyb3YgPG5pa29sYXlA Y3VtdWx1c25ldHdvcmtzLmNvbT4KRGF0ZTogTW9uLCAxMyBKdWwgMjAxNSAwNjozNjoxOSAtMDcw MApTdWJqZWN0OiBbUEFUQ0ggMTMvMjFdIGJyaWRnZTogbWRiOiBmaXggZG91YmxlIGFkZCBub3Rp ZmljYXRpb24KClsgVXBzdHJlYW0gY29tbWl0IDVlYmM3ODQ2MjVlYTY4YTk1NzBkMWY3MDU1N2U3 OTMyOTg4Y2QxYjQgXQoKU2luY2UgdGhlIG1kYiBhZGQvZGVsIGNvZGUgd2FzIGludHJvZHVjZWQg dGhlcmUgaGF2ZSBiZWVuIDIgYnJfbWRiX25vdGlmeQpjYWxscyB3aGVuIGRvaW5nIGJyX21kYl9h ZGQoKSByZXN1bHRpbmcgaW4gMiBub3RpZmljYXRpb25zIG9uIGVhY2ggYWRkLgoKRXhhbXBsZToK IENvbW1hbmQ6IGJyaWRnZSBtZGIgYWRkIGRldiBicjAgcG9ydCBldGgxIGdycCAyMzkuMC4wLjEg cGVybWFuZW50CiBCZWZvcmUgcGF0Y2g6CiByb290QGRlYmlhbjp+IyBicmlkZ2UgbW9uaXRvciBh bGwKIFtNREJdZGV2IGJyMCBwb3J0IGV0aDEgZ3JwIDIzOS4wLjAuMSBwZXJtYW5lbnQKIFtNREJd ZGV2IGJyMCBwb3J0IGV0aDEgZ3JwIDIzOS4wLjAuMSBwZXJtYW5lbnQKCiBBZnRlciBwYXRjaDoK IHJvb3RAZGViaWFuOn4jIGJyaWRnZSBtb25pdG9yIGFsbAogW01EQl1kZXYgYnIwIHBvcnQgZXRo MSBncnAgMjM5LjAuMC4xIHBlcm1hbmVudAoKU2lnbmVkLW9mZi1ieTogTmlrb2xheSBBbGVrc2Fu ZHJvdiA8bmlrb2xheUBjdW11bHVzbmV0d29ya3MuY29tPgpGaXhlczogY2ZkNTY3NTQzNTkwICgi YnJpZGdlOiBhZGQgc3VwcG9ydCBvZiBhZGRpbmcgYW5kIGRlbGV0aW5nIG1kYiBlbnRyaWVzIikK U2lnbmVkLW9mZi1ieTogRGF2aWQgUy4gTWlsbGVyIDxkYXZlbUBkYXZlbWxvZnQubmV0PgotLS0K IG5ldC9icmlkZ2UvYnJfbWRiLmMgfCAxIC0KIDEgZmlsZSBjaGFuZ2VkLCAxIGRlbGV0aW9uKC0p CgpkaWZmIC0tZ2l0IGEvbmV0L2JyaWRnZS9icl9tZGIuYyBiL25ldC9icmlkZ2UvYnJfbWRiLmMK aW5kZXggMTM0MjFiZi4uMjdjZjEyOCAxMDA2NDQKLS0tIGEvbmV0L2JyaWRnZS9icl9tZGIuYwor KysgYi9uZXQvYnJpZGdlL2JyX21kYi5jCkBAIC0zNDcsNyArMzQ3LDYgQEAgc3RhdGljIGludCBi cl9tZGJfYWRkX2dyb3VwKHN0cnVjdCBuZXRfYnJpZGdlICpiciwgc3RydWN0IG5ldF9icmlkZ2Vf cG9ydCAqcG9ydCwKIAkJcmV0dXJuIC1FTk9NRU07CiAJcmN1X2Fzc2lnbl9wb2ludGVyKCpwcCwg cCk7CiAKLQlicl9tZGJfbm90aWZ5KGJyLT5kZXYsIHBvcnQsIGdyb3VwLCBSVE1fTkVXTURCKTsK IAlyZXR1cm4gMDsKIH0KIAotLSAKMi4xLjAKCgpGcm9tIGY2NDM5NDE2MTFkZGNlMDE2MjMxOWYw MjMwMGMzNTA0NDAyMGI1YWIgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCkZyb206IFRpbG1hbiBT Y2htaWR0IDx0aWxtYW5AaW1hcC5jYz4KRGF0ZTogVHVlLCAxNCBKdWwgMjAxNSAwMDozNzoxMyAr MDIwMApTdWJqZWN0OiBbUEFUQ0ggMTQvMjFdIGlzZG4vZ2lnYXNldDogcmVzZXQgdHR5LT5yZWNl aXZlX3Jvb20gd2hlbiBhdHRhY2hpbmcKIHNlcl9naWdhc2V0CgpbIFVwc3RyZWFtIGNvbW1pdCBm ZDk4ZTk0MTlkOGQ2MjJhNGRlOTFmNzZiMzA2YWY2YWE2MjdhYTljIF0KCkNvbW1pdCA3OTkwMTMx N2NlODAgKCJuX3R0eTogRG9uJ3QgZmx1c2ggYnVmZmVyIHdoZW4gY2xvc2luZyBsZGlzYyIpLApm aXJzdCBtZXJnZWQgaW4ga2VybmVsIHJlbGVhc2UgMy4xMCwgY2F1c2VkIHRoZSBmb2xsb3dpbmcg cmVncmVzc2lvbgppbiB0aGUgR2lnYXNldCBNMTAxIGRyaXZlcjoKCkJlZm9yZSB0aGF0IGNvbW1p dCwgd2hlbiBjbG9zaW5nIHRoZSBOX1RUWSBsaW5lIGRpc2NpcGxpbmUgaW4KcHJlcGFyYXRpb24g dG8gc3dpdGNoaW5nIHRvIE5fR0lHQVNFVF9NMTAxLCByZWNlaXZlX3Jvb20gd291bGQgYmUKcmVz ZXQgdG8gYSBub24temVybyB2YWx1ZSBieSB0aGUgY2FsbCB0byBuX3R0eV9mbHVzaF9idWZmZXIo KSBpbgpuX3R0eSdzIGNsb3NlIG1ldGhvZC4gV2l0aCB0aGUgcmVtb3ZhbCBvZiB0aGF0IGNhbGws IHJlY2VpdmVfcm9vbQptaWdodCBiZSBsZWZ0IGF0IHplcm8sIGJsb2NraW5nIGRhdGEgcmVjZXB0 aW9uIG9uIHRoZSBzZXJpYWwgbGluZS4KClRoZSBwcmVzZW50IHBhdGNoIGZpeGVzIHRoYXQgcmVn cmVzc2lvbiBieSBzZXR0aW5nIHJlY2VpdmVfcm9vbQp0byBhbiBhcHByb3ByaWF0ZSB2YWx1ZSBp biB0aGUgbGRpc2Mgb3BlbiBtZXRob2QuCgpGaXhlczogNzk5MDEzMTdjZTgwICgibl90dHk6IERv bid0IGZsdXNoIGJ1ZmZlciB3aGVuIGNsb3NpbmcgbGRpc2MiKQpTaWduZWQtb2ZmLWJ5OiBUaWxt YW4gU2NobWlkdCA8dGlsbWFuQGltYXAuY2M+ClNpZ25lZC1vZmYtYnk6IERhdmlkIFMuIE1pbGxl ciA8ZGF2ZW1AZGF2ZW1sb2Z0Lm5ldD4KLS0tCiBkcml2ZXJzL2lzZG4vZ2lnYXNldC9zZXItZ2ln YXNldC5jIHwgMTEgKysrKysrKysrKy0KIDEgZmlsZSBjaGFuZ2VkLCAxMCBpbnNlcnRpb25zKCsp LCAxIGRlbGV0aW9uKC0pCgpkaWZmIC0tZ2l0IGEvZHJpdmVycy9pc2RuL2dpZ2FzZXQvc2VyLWdp Z2FzZXQuYyBiL2RyaXZlcnMvaXNkbi9naWdhc2V0L3Nlci1naWdhc2V0LmMKaW5kZXggOGM5MWZk NS4uM2FjOWM0MSAxMDA2NDQKLS0tIGEvZHJpdmVycy9pc2RuL2dpZ2FzZXQvc2VyLWdpZ2FzZXQu YworKysgYi9kcml2ZXJzL2lzZG4vZ2lnYXNldC9zZXItZ2lnYXNldC5jCkBAIC01MjQsOSArNTI0 LDE4IEBAIGdpZ2FzZXRfdHR5X29wZW4oc3RydWN0IHR0eV9zdHJ1Y3QgKnR0eSkKIAljcy0+aHcu c2VyLT50dHkgPSB0dHk7CiAJYXRvbWljX3NldCgmY3MtPmh3LnNlci0+cmVmY250LCAxKTsKIAlp bml0X2NvbXBsZXRpb24oJmNzLT5ody5zZXItPmRlYWRfY21wKTsKLQogCXR0eS0+ZGlzY19kYXRh ID0gY3M7CiAKKwkvKiBTZXQgdGhlIGFtb3VudCBvZiBkYXRhIHdlJ3JlIHdpbGxpbmcgdG8gcmVj ZWl2ZSBwZXIgY2FsbAorCSAqIGZyb20gdGhlIGhhcmR3YXJlIGRyaXZlciB0byBoYWxmIG9mIHRo ZSBpbnB1dCBidWZmZXIgc2l6ZQorCSAqIHRvIGxlYXZlIHNvbWUgcmVzZXJ2ZS4KKwkgKiBOb3Rl OiBXZSBkb24ndCBkbyBmbG93IGNvbnRyb2wgdG93YXJkcyB0aGUgaGFyZHdhcmUgZHJpdmVyLgor CSAqIElmIG1vcmUgZGF0YSBpcyByZWNlaXZlZCB0aGFuIHdpbGwgZml0IGludG8gdGhlIGlucHV0 IGJ1ZmZlciwKKwkgKiBpdCB3aWxsIGJlIGRyb3BwZWQgYW5kIGFuIGVycm9yIHdpbGwgYmUgbG9n Z2VkLiBUaGlzIHNob3VsZAorCSAqIG5ldmVyIGhhcHBlbiBhcyB0aGUgZGV2aWNlIGlzIHNsb3cg YW5kIHRoZSBidWZmZXIgc2l6ZSBhbXBsZS4KKwkgKi8KKwl0dHktPnJlY2VpdmVfcm9vbSA9IFJC VUZTSVpFLzI7CisKIAkvKiBPSy4uIEluaXRpYWxpemF0aW9uIG9mIHRoZSBkYXRhc3RydWN0dXJl cyBhbmQgdGhlIEhXIGlzIGRvbmUuLiBOb3cKIAkgKiBzdGFydHVwIHN5c3RlbSBhbmQgbm90aWZ5 IHRoZSBMTCB0aGF0IHdlIGFyZSByZWFkeSB0byBydW4KIAkgKi8KLS0gCjIuMS4wCgoKRnJvbSAz ZjdhZWFhZTI4NjMwNDdhNTAyNTcxMzY1M2UyMmY3Mjg1ZGE0OWYxIE1vbiBTZXAgMTcgMDA6MDA6 MDAgMjAwMQpGcm9tOiBFcmljIER1bWF6ZXQgPGVkdW1hemV0QGdvb2dsZS5jb20+CkRhdGU6IFR1 ZSwgMTQgSnVsIDIwMTUgMDg6MTA6MjIgKzAyMDAKU3ViamVjdDogW1BBVENIIDE1LzIxXSBpcHY2 OiBsb2NrIHNvY2tldCBpbiBpcDZfZGF0YWdyYW1fY29ubmVjdCgpCgpbIFVwc3RyZWFtIGNvbW1p dCAwMzY0NWExMWE1NzBkNTJlNzA2MzE4MzhjYjc4NmViNDI1M2ViNDYzIF0KCmlwNl9kYXRhZ3Jh bV9jb25uZWN0KCkgaXMgZG9pbmcgYSBsb3Qgb2Ygc29ja2V0IGNoYW5nZXMgd2l0aG91dApzb2Nr ZXQgYmVpbmcgbG9ja2VkLgoKVGhpcyBsb29rcyB3cm9uZywgYXQgbGVhc3QgZm9yIHVkcF9saWJf cmVoYXNoKCkgd2hpY2ggY291bGQgY29ycnVwdApsaXN0cyBiZWNhdXNlIG9mIGNvbmN1cnJlbnQg dWRwX3NrKHNrKS0+dWRwX3BvcnRhZGRyX2hhc2ggYWNjZXNzZXMuCgpTaWduZWQtb2ZmLWJ5OiBF cmljIER1bWF6ZXQgPGVkdW1hemV0QGdvb2dsZS5jb20+CkFja2VkLWJ5OiBIZXJiZXJ0IFh1IDxo ZXJiZXJ0QGdvbmRvci5hcGFuYS5vcmcuYXU+ClNpZ25lZC1vZmYtYnk6IERhdmlkIFMuIE1pbGxl ciA8ZGF2ZW1AZGF2ZW1sb2Z0Lm5ldD4KLS0tCiBpbmNsdWRlL25ldC9pcC5oICAgIHwgIDEgKwog bmV0L2lwdjQvZGF0YWdyYW0uYyB8IDE2ICsrKysrKysrKysrKy0tLS0KIG5ldC9pcHY2L2RhdGFn cmFtLmMgfCAyMCArKysrKysrKysrKysrKystLS0tLQogMyBmaWxlcyBjaGFuZ2VkLCAyOCBpbnNl cnRpb25zKCspLCA5IGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL2luY2x1ZGUvbmV0L2lwLmgg Yi9pbmNsdWRlL25ldC9pcC5oCmluZGV4IDFiMTI2OWUuLjU1M2MwNzUgMTAwNjQ0Ci0tLSBhL2lu Y2x1ZGUvbmV0L2lwLmgKKysrIGIvaW5jbHVkZS9uZXQvaXAuaApAQCAtMTQxLDYgKzE0MSw3IEBA IHN0YXRpYyBpbmxpbmUgc3RydWN0IHNrX2J1ZmYgKmlwX2ZpbmlzaF9za2Ioc3RydWN0IHNvY2sg KnNrLCBzdHJ1Y3QgZmxvd2k0ICpmbDQpCiB9CiAKIC8qIGRhdGFncmFtLmMgKi8KK2ludCBfX2lw NF9kYXRhZ3JhbV9jb25uZWN0KHN0cnVjdCBzb2NrICpzaywgc3RydWN0IHNvY2thZGRyICp1YWRk ciwgaW50IGFkZHJfbGVuKTsKIGV4dGVybiBpbnQJCWlwNF9kYXRhZ3JhbV9jb25uZWN0KHN0cnVj dCBzb2NrICpzaywgCiAJCQkJCSAgICAgc3RydWN0IHNvY2thZGRyICp1YWRkciwgaW50IGFkZHJf bGVuKTsKIApkaWZmIC0tZ2l0IGEvbmV0L2lwdjQvZGF0YWdyYW0uYyBiL25ldC9pcHY0L2RhdGFn cmFtLmMKaW5kZXggNWYzZGMxZC4uMjkxYjA4MiAxMDA2NDQKLS0tIGEvbmV0L2lwdjQvZGF0YWdy YW0uYworKysgYi9uZXQvaXB2NC9kYXRhZ3JhbS5jCkBAIC0yMCw3ICsyMCw3IEBACiAjaW5jbHVk ZSA8bmV0L3JvdXRlLmg+CiAjaW5jbHVkZSA8bmV0L3RjcF9zdGF0ZXMuaD4KIAotaW50IGlwNF9k YXRhZ3JhbV9jb25uZWN0KHN0cnVjdCBzb2NrICpzaywgc3RydWN0IHNvY2thZGRyICp1YWRkciwg aW50IGFkZHJfbGVuKQoraW50IF9faXA0X2RhdGFncmFtX2Nvbm5lY3Qoc3RydWN0IHNvY2sgKnNr LCBzdHJ1Y3Qgc29ja2FkZHIgKnVhZGRyLCBpbnQgYWRkcl9sZW4pCiB7CiAJc3RydWN0IGluZXRf c29jayAqaW5ldCA9IGluZXRfc2soc2spOwogCXN0cnVjdCBzb2NrYWRkcl9pbiAqdXNpbiA9IChz dHJ1Y3Qgc29ja2FkZHJfaW4gKikgdWFkZHI7CkBAIC0zOSw4ICszOSw2IEBAIGludCBpcDRfZGF0 YWdyYW1fY29ubmVjdChzdHJ1Y3Qgc29jayAqc2ssIHN0cnVjdCBzb2NrYWRkciAqdWFkZHIsIGlu dCBhZGRyX2xlbikKIAogCXNrX2RzdF9yZXNldChzayk7CiAKLQlsb2NrX3NvY2soc2spOwotCiAJ b2lmID0gc2stPnNrX2JvdW5kX2Rldl9pZjsKIAlzYWRkciA9IGluZXQtPmluZXRfc2FkZHI7CiAJ aWYgKGlwdjRfaXNfbXVsdGljYXN0KHVzaW4tPnNpbl9hZGRyLnNfYWRkcikpIHsKQEAgLTgxLDkg Kzc5LDE5IEBAIGludCBpcDRfZGF0YWdyYW1fY29ubmVjdChzdHJ1Y3Qgc29jayAqc2ssIHN0cnVj dCBzb2NrYWRkciAqdWFkZHIsIGludCBhZGRyX2xlbikKIAlza19kc3Rfc2V0KHNrLCAmcnQtPmRz dCk7CiAJZXJyID0gMDsKIG91dDoKLQlyZWxlYXNlX3NvY2soc2spOwogCXJldHVybiBlcnI7CiB9 CitFWFBPUlRfU1lNQk9MKF9faXA0X2RhdGFncmFtX2Nvbm5lY3QpOworCitpbnQgaXA0X2RhdGFn cmFtX2Nvbm5lY3Qoc3RydWN0IHNvY2sgKnNrLCBzdHJ1Y3Qgc29ja2FkZHIgKnVhZGRyLCBpbnQg YWRkcl9sZW4pCit7CisJaW50IHJlczsKKworCWxvY2tfc29jayhzayk7CisJcmVzID0gX19pcDRf ZGF0YWdyYW1fY29ubmVjdChzaywgdWFkZHIsIGFkZHJfbGVuKTsKKwlyZWxlYXNlX3NvY2soc2sp OworCXJldHVybiByZXM7Cit9CiBFWFBPUlRfU1lNQk9MKGlwNF9kYXRhZ3JhbV9jb25uZWN0KTsK IAogLyogQmVjYXVzZSBVRFAgeG1pdCBwYXRoIGNhbiBtYW5pcHVsYXRlIHNrX2RzdF9jYWNoZSB3 aXRob3V0IGhvbGRpbmcKZGlmZiAtLWdpdCBhL25ldC9pcHY2L2RhdGFncmFtLmMgYi9uZXQvaXB2 Ni9kYXRhZ3JhbS5jCmluZGV4IDlmOWFkOTkuLmRhNDRjYjQgMTAwNjQ0Ci0tLSBhL25ldC9pcHY2 L2RhdGFncmFtLmMKKysrIGIvbmV0L2lwdjYvZGF0YWdyYW0uYwpAQCAtNDAsNyArNDAsNyBAQCBz dGF0aWMgYm9vbCBpcHY2X21hcHBlZF9hZGRyX2FueShjb25zdCBzdHJ1Y3QgaW42X2FkZHIgKmEp CiAJcmV0dXJuIGlwdjZfYWRkcl92NG1hcHBlZChhKSAmJiAoYS0+czZfYWRkcjMyWzNdID09IDAp OwogfQogCi1pbnQgaXA2X2RhdGFncmFtX2Nvbm5lY3Qoc3RydWN0IHNvY2sgKnNrLCBzdHJ1Y3Qg c29ja2FkZHIgKnVhZGRyLCBpbnQgYWRkcl9sZW4pCitzdGF0aWMgaW50IF9faXA2X2RhdGFncmFt X2Nvbm5lY3Qoc3RydWN0IHNvY2sgKnNrLCBzdHJ1Y3Qgc29ja2FkZHIgKnVhZGRyLCBpbnQgYWRk cl9sZW4pCiB7CiAJc3RydWN0IHNvY2thZGRyX2luNgkqdXNpbiA9IChzdHJ1Y3Qgc29ja2FkZHJf aW42ICopIHVhZGRyOwogCXN0cnVjdCBpbmV0X3NvY2sgICAgICAJKmluZXQgPSBpbmV0X3NrKHNr KTsKQEAgLTU2LDcgKzU2LDcgQEAgaW50IGlwNl9kYXRhZ3JhbV9jb25uZWN0KHN0cnVjdCBzb2Nr ICpzaywgc3RydWN0IHNvY2thZGRyICp1YWRkciwgaW50IGFkZHJfbGVuKQogCWlmICh1c2luLT5z aW42X2ZhbWlseSA9PSBBRl9JTkVUKSB7CiAJCWlmIChfX2lwdjZfb25seV9zb2NrKHNrKSkKIAkJ CXJldHVybiAtRUFGTk9TVVBQT1JUOwotCQllcnIgPSBpcDRfZGF0YWdyYW1fY29ubmVjdChzaywg dWFkZHIsIGFkZHJfbGVuKTsKKwkJZXJyID0gX19pcDRfZGF0YWdyYW1fY29ubmVjdChzaywgdWFk ZHIsIGFkZHJfbGVuKTsKIAkJZ290byBpcHY0X2Nvbm5lY3RlZDsKIAl9CiAKQEAgLTk5LDkgKzk5 LDkgQEAgaW50IGlwNl9kYXRhZ3JhbV9jb25uZWN0KHN0cnVjdCBzb2NrICpzaywgc3RydWN0IHNv Y2thZGRyICp1YWRkciwgaW50IGFkZHJfbGVuKQogCQlzaW4uc2luX2FkZHIuc19hZGRyID0gZGFk ZHItPnM2X2FkZHIzMlszXTsKIAkJc2luLnNpbl9wb3J0ID0gdXNpbi0+c2luNl9wb3J0OwogCi0J CWVyciA9IGlwNF9kYXRhZ3JhbV9jb25uZWN0KHNrLAotCQkJCQkgICAoc3RydWN0IHNvY2thZGRy ICopICZzaW4sCi0JCQkJCSAgIHNpemVvZihzaW4pKTsKKwkJZXJyID0gX19pcDRfZGF0YWdyYW1f Y29ubmVjdChzaywKKwkJCQkJICAgICAoc3RydWN0IHNvY2thZGRyICopICZzaW4sCisJCQkJCSAg ICAgc2l6ZW9mKHNpbikpOwogCiBpcHY0X2Nvbm5lY3RlZDoKIAkJaWYgKGVycikKQEAgLTIwNCw2 ICsyMDQsMTYgQEAgb3V0OgogCWZsNl9zb2NrX3JlbGVhc2UoZmxvd2xhYmVsKTsKIAlyZXR1cm4g ZXJyOwogfQorCitpbnQgaXA2X2RhdGFncmFtX2Nvbm5lY3Qoc3RydWN0IHNvY2sgKnNrLCBzdHJ1 Y3Qgc29ja2FkZHIgKnVhZGRyLCBpbnQgYWRkcl9sZW4pCit7CisJaW50IHJlczsKKworCWxvY2tf c29jayhzayk7CisJcmVzID0gX19pcDZfZGF0YWdyYW1fY29ubmVjdChzaywgdWFkZHIsIGFkZHJf bGVuKTsKKwlyZWxlYXNlX3NvY2soc2spOworCXJldHVybiByZXM7Cit9CiBFWFBPUlRfU1lNQk9M X0dQTChpcDZfZGF0YWdyYW1fY29ubmVjdCk7CiAKIHZvaWQgaXB2Nl9pY21wX2Vycm9yKHN0cnVj dCBzb2NrICpzaywgc3RydWN0IHNrX2J1ZmYgKnNrYiwgaW50IGVyciwKLS0gCjIuMS4wCgoKRnJv bSAzYjljNDNiMzFjZDgyOWM1ZTkwMThlNmRjZWFmNjZlYTU0MTFkZDMxIE1vbiBTZXAgMTcgMDA6 MDA6MDAgMjAwMQpGcm9tOiBOaWtvbGF5IEFsZWtzYW5kcm92IDxuaWtvbGF5QGN1bXVsdXNuZXR3 b3Jrcy5jb20+CkRhdGU6IFdlZCwgMTUgSnVsIDIwMTUgMjE6NTI6NTEgKzAyMDAKU3ViamVjdDog W1BBVENIIDE2LzIxXSBib25kaW5nOiBmaXggZGVzdHJ1Y3Rpb24gb2YgYm9uZCB3aXRoIGRldmlj ZXMgZGlmZmVyZW50CiBmcm9tIGFycGhyZF9ldGhlcgoKWyBVcHN0cmVhbSBjb21taXQgMDZmNmQx MDk0YWEwOTkyNDMyYjFlMmEwOTIwYjBlZTg2Y2NkODNiZiBdCgpXaGVuIHRoZSBib25kaW5nIGlz IGJlaW5nIHVubG9hZGVkIGFuZCB0aGUgbmV0ZGV2aWNlIG5vdGlmaWVyIGlzCnVucmVnaXN0ZXJl ZCBpdCBleGVjdXRlcyBORVRERVZfVU5SRUdJU1RFUiBmb3IgZWFjaCBkZXZpY2Ugd2hpY2ggc2hv dWxkCnJlbW92ZSB0aGUgYm9uZCdzIHByb2MgZW50cnkgYnV0IGlmIHRoZSBkZXZpY2UgZW5zbGF2 ZWQgaXMgbm90IG9mCkFSUEhSRF9FVEhFUiB0eXBlIGFuZCBpcyBpbiBmcm9udCBvZiB0aGUgYm9u ZGluZywgaXQgbWF5IGV4ZWN1dGUKYm9uZF9yZWxlYXNlX2FuZF9kZXN0cm95KCkgZmlyc3Qgd2hp Y2ggd291bGQgcmVsZWFzZSB0aGUgbGFzdCBzbGF2ZSBhbmQKZGVzdHJveSB0aGUgYm9uZCBkZXZp Y2UgbGVhdmluZyB0aGUgcHJvYyBlbnRyeSBhbmQgdGh1cyB3ZSB3aWxsIGdldCB0aGUKZm9sbG93 aW5nIGVycm9yICh3aXRoIGR5bmFtaWMgZGVidWcgb24gZm9yIGJvbmRfbmV0ZGV2X2V2ZW50IHRv IHNlZSB0aGUKZXZlbnRzIG9yZGVyKToKWyAgOTA4Ljk2MzA1MV0gZXFsOiBldmVudDogOQpbICA5 MDguOTYzMDUyXSBlcWw6IElGRl9TTEFWRQpbICA5MDguOTYzMDU0XSBlcWw6IGV2ZW50OiAyClsg IDkwOC45NjMwNTZdIGVxbDogSUZGX1NMQVZFClsgIDkwOC45NjMwNThdIGVxbDogZXZlbnQ6IDYK WyAgOTA4Ljk2MzA1OV0gZXFsOiBJRkZfU0xBVkUKWyAgOTA4Ljk2MzExMF0gYm9uZDA6IFJlbGVh c2luZyBhY3RpdmUgaW50ZXJmYWNlIGVxbApbICA5MDguOTc2MTY4XSBib25kMDogRGVzdHJveWlu ZyBib25kIGJvbmQwClsgIDkwOC45NzYyNjZdIGJvbmQwICh1bnJlZ2lzdGVyaW5nKTogUmVsZWFz ZWQgYWxsIHNsYXZlcwpbICA5MDguOTg0MDk3XSAtLS0tLS0tLS0tLS1bIGN1dCBoZXJlIF0tLS0t LS0tLS0tLS0KWyAgOTA4Ljk4NDEwN10gV0FSTklORzogQ1BVOiAwIFBJRDogMTc4NyBhdCBmcy9w cm9jL2dlbmVyaWMuYzo1NzUKcmVtb3ZlX3Byb2NfZW50cnkrMHgxMTIvMHgxNjAoKQpbICA5MDgu OTg0MTEwXSByZW1vdmVfcHJvY19lbnRyeTogcmVtb3Zpbmcgbm9uLWVtcHR5IGRpcmVjdG9yeQon bmV0L2JvbmRpbmcnLCBsZWFraW5nIGF0IGxlYXN0ICdib25kMCcKWyAgOTA4Ljk4NDExMV0gTW9k dWxlcyBsaW5rZWQgaW46IGJvbmRpbmcoLSkgZXFsKE8pIDlwIG5mc2QgYXV0aF9ycGNnc3MKb2lk X3JlZ2lzdHJ5IG5mc19hY2wgbmZzIGxvY2tkIGdyYWNlIGZzY2FjaGUgc3VucnBjIGNyY3QxMGRp Zl9wY2xtdWwKY3JjMzJfcGNsbXVsIGNyYzMyY19pbnRlbCBnaGFzaF9jbG11bG5pX2ludGVsIHBw ZGV2IHF4bCBkcm1fa21zX2hlbHBlcgpzbmRfaGRhX2NvZGVjX2dlbmVyaWMgYWVzbmlfaW50ZWwg dHRtIGFlc194ODZfNjQgZ2x1ZV9oZWxwZXIgcGNzcGtyIGxydwpnZjEyOG11bCBhYmxrX2hlbHBl ciBjcnlwdGQgc25kX2hkYV9pbnRlbCB2aXJ0aW9fY29uc29sZSBzbmRfaGRhX2NvZGVjCnBzbW91 c2Ugc2VyaW9fcmF3IHNuZF9od2RlcCBzbmRfaGRhX2NvcmUgOXBuZXRfdmlydGlvIDlwbmV0IGV2 ZGV2IGpveWRldgpkcm0gdmlydGlvX2JhbGxvb24gc25kX3BjbSBzbmRfdGltZXIgc25kIHNvdW5k Y29yZSBpMmNfcGlpeDQgaTJjX2NvcmUKcHZwYW5pYyBhY3BpX2NwdWZyZXEgcGFycG9ydF9wYyBw YXJwb3J0IHByb2Nlc3NvciB0aGVybWFsX3N5cyBidXR0b24KYXV0b2ZzNCBleHQ0IGNyYzE2IG1i Y2FjaGUgamJkMiBoaWRfZ2VuZXJpYyB1c2JoaWQgaGlkIHNnIHNyX21vZCBjZHJvbQphdGFfZ2Vu ZXJpYyB2aXJ0aW9fYmxrIHZpcnRpb19uZXQgZmxvcHB5IGF0YV9waWl4IGUxMDAwIGxpYmF0YSBl aGNpX3BjaQp2aXJ0aW9fcGNpIHNjc2lfbW9kIHVoY2lfaGNkIGVoY2lfaGNkIHZpcnRpb19yaW5n IHZpcnRpbyB1c2Jjb3JlCnVzYl9jb21tb24gW2xhc3QgdW5sb2FkZWQ6IGJvbmRpbmddCgpbICA5 MDguOTg0MTY4XSBDUFU6IDAgUElEOiAxNzg3IENvbW06IHJtbW9kIFRhaW50ZWQ6IEcgICAgICAg IFcgIE8KNC4yLjAtcmMyKyAjOApbICA5MDguOTg0MTcwXSBIYXJkd2FyZSBuYW1lOiBCb2NocyBC b2NocywgQklPUyBCb2NocyAwMS8wMS8yMDExClsgIDkwOC45ODQxNzJdICAwMDAwMDAwMDAwMDAw MDAwIGZmZmZmZmZmODE3MzJkNDEgZmZmZmZmZmY4MTUyNWIzNApmZmZmODgwMDM1OGRmZGE4Clsg IDkwOC45ODQxNzVdICBmZmZmZmZmZjgxMDZjNTIxIGZmZmY4ODAwMzU5NWFmNzggZmZmZjg4MDAz NTk1YWY0MApmZmZmODgwMDNlM2E0MjgwClsgIDkwOC45ODQxNzhdICBmZmZmZmZmZmEwNThkMDQw IDAwMDAwMDAwMDAwMDAwMDAgZmZmZmZmZmY4MTA2YzU5YQpmZmZmZmZmZjgxNzJlYmQwClsgIDkw OC45ODQxODFdIENhbGwgVHJhY2U6ClsgIDkwOC45ODQxODhdICBbPGZmZmZmZmZmODE1MjViMzQ+ XSA/IGR1bXBfc3RhY2srMHg0MC8weDUwClsgIDkwOC45ODQxOTNdICBbPGZmZmZmZmZmODEwNmM1 MjE+XSA/IHdhcm5fc2xvd3BhdGhfY29tbW9uKzB4ODEvMHhiMApbICA5MDguOTg0MTk2XSAgWzxm ZmZmZmZmZjgxMDZjNTlhPl0gPyB3YXJuX3Nsb3dwYXRoX2ZtdCsweDRhLzB4NTAKWyAgOTA4Ljk4 NDE5OV0gIFs8ZmZmZmZmZmY4MTIxODM1Mj5dID8gcmVtb3ZlX3Byb2NfZW50cnkrMHgxMTIvMHgx NjAKWyAgOTA4Ljk4NDIwNV0gIFs8ZmZmZmZmZmZhMDU4NTBlNj5dID8gYm9uZF9kZXN0cm95X3By b2NfZGlyKzB4MjYvMHgzMApbYm9uZGluZ10KWyAgOTA4Ljk4NDIwOF0gIFs8ZmZmZmZmZmZhMDU3 NTQwZT5dID8gYm9uZF9uZXRfZXhpdCsweDhlLzB4YTAgW2JvbmRpbmddClsgIDkwOC45ODQyMTdd ICBbPGZmZmZmZmZmODE0MmY0MDc+XSA/IG9wc19leGl0X2xpc3QuaXNyYS40KzB4MzcvMHg3MApb ICA5MDguOTg0MjI1XSAgWzxmZmZmZmZmZjgxNDJmNTJkPl0gPwp1bnJlZ2lzdGVyX3Blcm5ldF9v cGVyYXRpb25zKzB4OGQvMHhkMApbICA5MDguOTg0MjI4XSAgWzxmZmZmZmZmZjgxNDJmNThkPl0g Pwp1bnJlZ2lzdGVyX3Blcm5ldF9zdWJzeXMrMHgxZC8weDMwClsgIDkwOC45ODQyMzJdICBbPGZm ZmZmZmZmYTA1ODUyNjk+XSA/IGJvbmRpbmdfZXhpdCsweDIzLzB4ZGJhIFtib25kaW5nXQpbICA5 MDguOTg0MjM2XSAgWzxmZmZmZmZmZjgxMGUyOGJhPl0gPyBTeVNfZGVsZXRlX21vZHVsZSsweDE4 YS8weDI1MApbICA5MDguOTg0MjQxXSAgWzxmZmZmZmZmZjgxMDg2Zjk5Pl0gPyB0YXNrX3dvcmtf cnVuKzB4ODkvMHhjMApbICA5MDguOTg0MjQ0XSAgWzxmZmZmZmZmZjgxNTJiNzMyPl0gPwplbnRy eV9TWVNDQUxMXzY0X2Zhc3RwYXRoKzB4MTYvMHg3NQpbICA5MDguOTg0MjQ3XSAtLS1bIGVuZCB0 cmFjZSA3YzAwNmVkNGFiYmVmMjRiIF0tLS0KClRodXMgcmVtb3ZlIHRoZSBwcm9jIGVudHJ5IG1h bnVhbGx5IGlmIGJvbmRfcmVsZWFzZV9hbmRfZGVzdHJveSgpIGlzCnVzZWQuIEJlY2F1c2Ugb2Yg dGhlIGNoZWNrcyBpbiBib25kX3JlbW92ZV9wcm9jX2VudHJ5KCkgaXQncyBub3QgYQpwcm9ibGVt IGZvciBhIGJvbmQgZGV2aWNlIHRvIGNoYW5nZSBuYW1lc3BhY2VzICh0aGUgYnVnIGZpeGVkIGJ5 IHRoZQpGaXhlcyBjb21taXQpIGJ1dCBzaW5jZSBjb21taXQKZjkzOTk4MTQ5MjdhZCAoImJvbmRp bmc6IERvbid0IGFsbG93IGJvbmQgZGV2aWNlcyB0byBjaGFuZ2UgbmV0d29yawpuYW1lc3BhY2Vz LiIpIHRoYXQgY2FuJ3QgaGFwcGVuIGFueXdheS4KClJlcG9ydGVkLWJ5OiBDYXJvbCBTb3RvIDxj bHNvdG9AbGludXgudm5ldC5pYm0uY29tPgpTaWduZWQtb2ZmLWJ5OiBOaWtvbGF5IEFsZWtzYW5k cm92IDxuaWtvbGF5QGN1bXVsdXNuZXR3b3Jrcy5jb20+CkZpeGVzOiBhNjRkNDljM2RkNTAgKCJi b25kaW5nOiBNYW5hZ2UgL3Byb2MvbmV0L2JvbmRpbmcvIGVudHJpZXMgZnJvbQogICAgICAgICAg ICAgICAgICAgICAgdGhlIG5ldGRldiBldmVudHMiKQpUZXN0ZWQtYnk6IENhcm9sIEwgU290byA8 Y2xzb3RvQGxpbnV4LnZuZXQuaWJtLmNvbT4KU2lnbmVkLW9mZi1ieTogRGF2aWQgUy4gTWlsbGVy IDxkYXZlbUBkYXZlbWxvZnQubmV0PgotLS0KIGRyaXZlcnMvbmV0L2JvbmRpbmcvYm9uZF9tYWlu LmMgfCAxICsKIDEgZmlsZSBjaGFuZ2VkLCAxIGluc2VydGlvbigrKQoKZGlmZiAtLWdpdCBhL2Ry aXZlcnMvbmV0L2JvbmRpbmcvYm9uZF9tYWluLmMgYi9kcml2ZXJzL25ldC9ib25kaW5nL2JvbmRf bWFpbi5jCmluZGV4IDVmOTU1MzcuLjgwNmFkYTkgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvbmV0L2Jv bmRpbmcvYm9uZF9tYWluLmMKKysrIGIvZHJpdmVycy9uZXQvYm9uZGluZy9ib25kX21haW4uYwpA QCAtMTkxNyw2ICsxOTE3LDcgQEAgc3RhdGljIGludCAgYm9uZF9yZWxlYXNlX2FuZF9kZXN0cm95 KHN0cnVjdCBuZXRfZGV2aWNlICpib25kX2RldiwKIAkJYm9uZF9kZXYtPnByaXZfZmxhZ3MgfD0g SUZGX0RJU0FCTEVfTkVUUE9MTDsKIAkJcHJfaW5mbygiJXM6IGRlc3Ryb3lpbmcgYm9uZCAlcy5c biIsCiAJCQlib25kX2Rldi0+bmFtZSwgYm9uZF9kZXYtPm5hbWUpOworCQlib25kX3JlbW92ZV9w cm9jX2VudHJ5KGJvbmQpOwogCQl1bnJlZ2lzdGVyX25ldGRldmljZShib25kX2Rldik7CiAJfQog CXJldHVybiByZXQ7Ci0tIAoyLjEuMAoKCkZyb20gN2M4NTc2ZGQ5MGJjNmU4NTdmOGE5MDk2M2Ni YmRmYTg1YjA0OWE0MCBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJvbTogZGluZ3RpYW5ob25n IDxkaW5ndGlhbmhvbmdAaHVhd2VpLmNvbT4KRGF0ZTogVGh1LCAxNiBKdWwgMjAxNSAxNjozMDow MiArMDgwMApTdWJqZWN0OiBbUEFUQ0ggMTcvMjFdIGJvbmRpbmc6IGNvcnJlY3QgdGhlIE1BQyBh ZGRyZXNzIGZvciAiZm9sbG93IgogZmFpbF9vdmVyX21hYyBwb2xpY3kKClsgVXBzdHJlYW0gY29t bWl0IGE5NTFiYzFlNmJhNThmMTFkZjVlZDVkZGM0MTMxMWUxMGY1ZmQyMGIgXQoKVGhlICJmb2xs b3ciIGZhaWxfb3Zlcl9tYWMgcG9saWN5IGlzIHVzZWZ1bCBmb3IgbXVsdGlwb3J0IGRldmljZXMg dGhhdAplaXRoZXIgYmVjb21lIGNvbmZ1c2VkIG9yIGluY3VyIGEgcGVyZm9ybWFuY2UgcGVuYWx0 eSB3aGVuIG11bHRpcGxlCnBvcnRzIGFyZSBwcm9ncmFtbWVkIHdpdGggdGhlIHNhbWUgTUFDIGFk ZHJlc3MsIGJ1dCB0aGUgc2FtZSBNQUMKYWRkcmVzcyBzdGlsbCBtYXkgaGFwcGVuZWQgYnkgdGhp cyBzdGVwcyBmb3IgdGhpcyBwb2xpY3k6CgoxKSBlY2hvICtldGgwID4gL3N5cy9jbGFzcy9uZXQv Ym9uZDAvYm9uZGluZy9zbGF2ZXMKICAgYm9uZDAgaGFzIHRoZSBzYW1lIG1hYyBhZGRyZXNzIHdp dGggZXRoMCwgaXQgaXMgTUFDMS4KCjIpIGVjaG8gK2V0aDEgPiAvc3lzL2NsYXNzL25ldC9ib25k MC9ib25kaW5nL3NsYXZlcwogICBldGgxIGlzIGJhY2t1cCwgZXRoMSBoYXMgTUFDMi4KCjMpIGlm Y29uZmlnIGV0aDAgZG93bgogICBldGgxIGJlY2FtZSBhY3RpdmUgc2xhdmUsIGJvbmQgd2lsbCBz d2FwIE1BQyBmb3IgZXRoMCBhbmQgZXRoMSwKICAgc28gZXRoMSBoYXMgTUFDMSwgYW5kIGV0aDAg aGFzIE1BQzIuCgo0KSBpZmNvbmZpZyBldGgxIGRvd24KICAgdGhlcmUgaXMgbm8gYWN0aXZlIHNs YXZlLCBhbmQgZXRoMSBzdGlsbCBoYXMgTUFDMSwgZXRoMiBoYXMgTUFDMi4KCjUpIGlmY29uZmln IGV0aDAgdXAKICAgdGhlIGV0aDAgYmVjYW1lIGFjdGl2ZSBzbGF2ZSBhZ2FpbiwgdGhlIGJvbmQg c2V0IGV0aDAgdG8gTUFDMS4KClNvbWV0aGluZyB3cm9uZyBoZXJlLCB0aGVuIGlmIHlvdSBzZXQg ZXRoMSB1cCwgdGhlIGV0aDAgYW5kIGV0aDEgd2lsbCBoYXZlIHRoZSBzYW1lCk1BQyBhZGRyZXNz LCBpdCB3aWxsIGJyZWFrIHRoaXMgcG9saWN5IGZvciBBQ1RJVkVfQkFDS1VQIG1vZGUuCgpUaGlz IHBhdGNoIHdpbGwgZml4IHRoaXMgcHJvYmxlbSBieSBmaW5kaW5nIHRoZSBvbGQgYWN0aXZlIHNs YXZlIGFuZApzd2FwIHRoZW0gTUFDIGFkZHJlc3MgYmVmb3JlIGNoYW5nZSBhY3RpdmUgc2xhdmUu CgpTaWduZWQtb2ZmLWJ5OiBEaW5nIFRpYW5ob25nIDxkaW5ndGlhbmhvbmdAaHVhd2VpLmNvbT4K VGVzdGVkLWJ5OiBOaWtvbGF5IEFsZWtzYW5kcm92IDxuaWtvbGF5QGN1bXVsdXNuZXR3b3Jrcy5j b20+ClNpZ25lZC1vZmYtYnk6IERhdmlkIFMuIE1pbGxlciA8ZGF2ZW1AZGF2ZW1sb2Z0Lm5ldD4K LS0tCiBkcml2ZXJzL25ldC9ib25kaW5nL2JvbmRfbWFpbi5jIHwgMTkgKysrKysrKysrKysrKysr KysrKwogMSBmaWxlIGNoYW5nZWQsIDE5IGluc2VydGlvbnMoKykKCmRpZmYgLS1naXQgYS9kcml2 ZXJzL25ldC9ib25kaW5nL2JvbmRfbWFpbi5jIGIvZHJpdmVycy9uZXQvYm9uZGluZy9ib25kX21h aW4uYwppbmRleCA4MDZhZGE5Li5iMzg5MmIwIDEwMDY0NAotLS0gYS9kcml2ZXJzL25ldC9ib25k aW5nL2JvbmRfbWFpbi5jCisrKyBiL2RyaXZlcnMvbmV0L2JvbmRpbmcvYm9uZF9tYWluLmMKQEAg LTY3MSw2ICs2NzEsMjIgQEAgc3RhdGljIHZvaWQgYm9uZF9zZXRfZGV2X2FkZHIoc3RydWN0IG5l dF9kZXZpY2UgKmJvbmRfZGV2LAogCWNhbGxfbmV0ZGV2aWNlX25vdGlmaWVycyhORVRERVZfQ0hB TkdFQUREUiwgYm9uZF9kZXYpOwogfQogCitzdGF0aWMgc3RydWN0IHNsYXZlICpib25kX2dldF9v bGRfYWN0aXZlKHN0cnVjdCBib25kaW5nICpib25kLAorCQkJCQkgc3RydWN0IHNsYXZlICpuZXdf YWN0aXZlKQoreworCXN0cnVjdCBzbGF2ZSAqc2xhdmU7CisKKwlib25kX2Zvcl9lYWNoX3NsYXZl KGJvbmQsIHNsYXZlKSB7CisJCWlmIChzbGF2ZSA9PSBuZXdfYWN0aXZlKQorCQkJY29udGludWU7 CisKKwkJaWYgKGV0aGVyX2FkZHJfZXF1YWwoYm9uZC0+ZGV2LT5kZXZfYWRkciwgc2xhdmUtPmRl di0+ZGV2X2FkZHIpKQorCQkJcmV0dXJuIHNsYXZlOworCX0KKworCXJldHVybiBOVUxMOworfQor CiAvKgogICogYm9uZF9kb19mYWlsX292ZXJfbWFjCiAgKgpAQCAtNzEyLDYgKzcyOCw5IEBAIHN0 YXRpYyB2b2lkIGJvbmRfZG9fZmFpbF9vdmVyX21hYyhzdHJ1Y3QgYm9uZGluZyAqYm9uZCwKIAkJ d3JpdGVfdW5sb2NrX2JoKCZib25kLT5jdXJyX3NsYXZlX2xvY2spOwogCQlyZWFkX3VubG9jaygm Ym9uZC0+bG9jayk7CiAKKwkJaWYgKCFvbGRfYWN0aXZlKQorCQkJb2xkX2FjdGl2ZSA9IGJvbmRf Z2V0X29sZF9hY3RpdmUoYm9uZCwgbmV3X2FjdGl2ZSk7CisKIAkJaWYgKG9sZF9hY3RpdmUpIHsK IAkJCW1lbWNweSh0bXBfbWFjLCBuZXdfYWN0aXZlLT5kZXYtPmRldl9hZGRyLCBFVEhfQUxFTik7 CiAJCQltZW1jcHkoc2FkZHIuc2FfZGF0YSwgb2xkX2FjdGl2ZS0+ZGV2LT5kZXZfYWRkciwKLS0g CjIuMS4wCgoKRnJvbSBjN2Q3ODYzYTllNmYzMjkwYjBlY2M0ZTA0NjI3Y2NmZjg4NDE4ZjBhIE1v biBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBFZHdhcmQgSHl1bmtvbyBKZWUgPGVkamVlQGdv b2dsZS5jb20+CkRhdGU6IFR1ZSwgMjEgSnVsIDIwMTUgMDk6NDM6NTkgKzAyMDAKU3ViamVjdDog W1BBVENIIDE4LzIxXSBpbmV0OiBmcmFnczogZml4IGRlZnJhZ21lbnRlZCBwYWNrZXQncyBJUCBo ZWFkZXIgZm9yCiBhZl9wYWNrZXQKClsgVXBzdHJlYW0gY29tbWl0IDA4NDhmNjQyOGJhM2EyZTQy ZGIxMjRkNDFhYzZmNTQ4NjU1NzM1YmYgXQoKV2hlbiBpcF9mcmFnX3F1ZXVlKCkgY29tcHV0ZXMg cG9zaXRpb25zLCBpdCBhc3N1bWVzIHRoYXQgdGhlIHBhc3NlZApza19idWZmIGRvZXMgbm90IGNv bnRhaW4gTDIgaGVhZGVycy4KCkhvd2V2ZXIsIHdoZW4gUEFDS0VUX0ZBTk9VVF9GTEFHX0RFRlJB RyBpcyB1c2VkLCBJUCByZWFzc2VtYmx5CmZ1bmN0aW9ucyBjYW4gYmUgY2FsbGVkIG9uIG91dGdv aW5nIHBhY2tldHMgdGhhdCBjb250YWluIEwyIGhlYWRlcnMuCgpBbHNvLCBJUHY0IGNoZWNrc3Vt IGlzIG5vdCBjb3JyZWN0ZWQgYWZ0ZXIgcmVhc3NlbWJseS4KCkZpeGVzOiA3NzM2ZDMzZjQyNjIg KCJwYWNrZXQ6IEFkZCBwcmUtZGVmcmFnbWVudGF0aW9uIHN1cHBvcnQgZm9yIGlwdjQgZmFub3V0 cy4iKQpTaWduZWQtb2ZmLWJ5OiBFZHdhcmQgSHl1bmtvbyBKZWUgPGVkamVlQGdvb2dsZS5jb20+ ClNpZ25lZC1vZmYtYnk6IEVyaWMgRHVtYXpldCA8ZWR1bWF6ZXRAZ29vZ2xlLmNvbT4KQ2M6IFdp bGxlbSBkZSBCcnVpam4gPHdpbGxlbWJAZ29vZ2xlLmNvbT4KQ2M6IEplcnJ5IENodSA8aGtjaHVA Z29vZ2xlLmNvbT4KU2lnbmVkLW9mZi1ieTogRGF2aWQgUy4gTWlsbGVyIDxkYXZlbUBkYXZlbWxv ZnQubmV0PgotLS0KIG5ldC9pcHY0L2lwX2ZyYWdtZW50LmMgfCA3ICsrKysrLS0KIDEgZmlsZSBj aGFuZ2VkLCA1IGluc2VydGlvbnMoKyksIDIgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvbmV0 L2lwdjQvaXBfZnJhZ21lbnQuYyBiL25ldC9pcHY0L2lwX2ZyYWdtZW50LmMKaW5kZXggNGMxODg0 Zi4uNGQ5OGE2YiAxMDA2NDQKLS0tIGEvbmV0L2lwdjQvaXBfZnJhZ21lbnQuYworKysgYi9uZXQv aXB2NC9pcF9mcmFnbWVudC5jCkBAIC0zNTYsNyArMzU2LDcgQEAgc3RhdGljIGludCBpcF9mcmFn X3F1ZXVlKHN0cnVjdCBpcHEgKnFwLCBzdHJ1Y3Qgc2tfYnVmZiAqc2tiKQogCWlobCA9IGlwX2hk cmxlbihza2IpOwogCiAJLyogRGV0ZXJtaW5lIHRoZSBwb3NpdGlvbiBvZiB0aGlzIGZyYWdtZW50 LiAqLwotCWVuZCA9IG9mZnNldCArIHNrYi0+bGVuIC0gaWhsOworCWVuZCA9IG9mZnNldCArIHNr Yi0+bGVuIC0gc2tiX25ldHdvcmtfb2Zmc2V0KHNrYikgLSBpaGw7CiAJZXJyID0gLUVJTlZBTDsK IAogCS8qIElzIHRoaXMgdGhlIGZpbmFsIGZyYWdtZW50PyAqLwpAQCAtMzg2LDcgKzM4Niw3IEBA IHN0YXRpYyBpbnQgaXBfZnJhZ19xdWV1ZShzdHJ1Y3QgaXBxICpxcCwgc3RydWN0IHNrX2J1ZmYg KnNrYikKIAkJZ290byBlcnI7CiAKIAllcnIgPSAtRU5PTUVNOwotCWlmIChwc2tiX3B1bGwoc2ti LCBpaGwpID09IE5VTEwpCisJaWYgKCFwc2tiX3B1bGwoc2tiLCBza2JfbmV0d29ya19vZmZzZXQo c2tiKSArIGlobCkpCiAJCWdvdG8gZXJyOwogCiAJZXJyID0gcHNrYl90cmltX3Jjc3VtKHNrYiwg ZW5kIC0gb2Zmc2V0KTsKQEAgLTYyNyw2ICs2MjcsOSBAQCBzdGF0aWMgaW50IGlwX2ZyYWdfcmVh c20oc3RydWN0IGlwcSAqcXAsIHN0cnVjdCBza19idWZmICpwcmV2LAogCWlwaC0+ZnJhZ19vZmYg PSBxcC0+cS5tYXhfc2l6ZSA/IGh0b25zKElQX0RGKSA6IDA7CiAJaXBoLT50b3RfbGVuID0gaHRv bnMobGVuKTsKIAlpcGgtPnRvcyB8PSBlY247CisKKwlpcF9zZW5kX2NoZWNrKGlwaCk7CisKIAlJ UF9JTkNfU1RBVFNfQkgobmV0LCBJUFNUQVRTX01JQl9SRUFTTU9LUyk7CiAJcXAtPnEuZnJhZ21l bnRzID0gTlVMTDsKIAlxcC0+cS5mcmFnbWVudHNfdGFpbCA9IE5VTEw7Ci0tIAoyLjEuMAoKCkZy b20gNTdiZDM0ZjAzNTcwNTI4NzY5NzRjNDIwYmNmMzNmZDRiMjZkZTQyYiBNb24gU2VwIDE3IDAw OjAwOjAwIDIwMDEKRnJvbTogRmxvcmlhbiBXZXN0cGhhbCA8ZndAc3RybGVuLmRlPgpEYXRlOiBU dWUsIDIxIEp1bCAyMDE1IDE2OjMzOjUwICswMjAwClN1YmplY3Q6IFtQQVRDSCAxOS8yMV0gbmV0 bGluazogZG9uJ3QgaG9sZCBtdXRleCBpbiByY3UgY2FsbGJhY2sgd2hlbgogcmVsZWFzaW5nIG1t YXBkIHJpbmcKClsgVXBzdHJlYW0gY29tbWl0IDA0NzBlYjk5YjQ3MjE1ODZjY2FjOTU0ZmFhYzNm YTQ0NzJkYTA4NDUgXQoKS2lyaWxsIEEuIFNodXRlbW92IHNheXM6CgpUaGlzIHNpbXBsZSB0ZXN0 LWNhc2UgdHJpZ2VycyBmZXcgbG9ja2luZyBhc3NlcnRzIGluIGtlcm5lbDoKCmludCBtYWluKGlu dCBhcmdjLCBjaGFyICoqYXJndikKewogICAgICAgIHVuc2lnbmVkIGludCBibG9ja19zaXplID0g MTYgKiA0MDk2OwogICAgICAgIHN0cnVjdCBubF9tbWFwX3JlcSByZXEgPSB7CiAgICAgICAgICAg ICAgICAubm1fYmxvY2tfc2l6ZSAgICAgICAgICA9IGJsb2NrX3NpemUsCiAgICAgICAgICAgICAg ICAubm1fYmxvY2tfbnIgICAgICAgICAgICA9IDY0LAogICAgICAgICAgICAgICAgLm5tX2ZyYW1l X3NpemUgICAgICAgICAgPSAxNjM4NCwKICAgICAgICAgICAgICAgIC5ubV9mcmFtZV9uciAgICAg ICAgICAgID0gNjQgKiBibG9ja19zaXplIC8gMTYzODQsCiAgICAgICAgfTsKICAgICAgICB1bnNp Z25lZCBpbnQgcmluZ19zaXplOwoJaW50IGZkOwoKCWZkID0gc29ja2V0KEFGX05FVExJTkssIFNP Q0tfUkFXLCBORVRMSU5LX0dFTkVSSUMpOwogICAgICAgIGlmIChzZXRzb2Nrb3B0KGZkLCBTT0xf TkVUTElOSywgTkVUTElOS19SWF9SSU5HLCAmcmVxLCBzaXplb2YocmVxKSkgPCAwKQogICAgICAg ICAgICAgICAgZXhpdCgxKTsKICAgICAgICBpZiAoc2V0c29ja29wdChmZCwgU09MX05FVExJTkss IE5FVExJTktfVFhfUklORywgJnJlcSwgc2l6ZW9mKHJlcSkpIDwgMCkKICAgICAgICAgICAgICAg IGV4aXQoMSk7CgoJcmluZ19zaXplID0gcmVxLm5tX2Jsb2NrX25yICogcmVxLm5tX2Jsb2NrX3Np emU7CgltbWFwKE5VTEwsIDIgKiByaW5nX3NpemUsIFBST1RfUkVBRHxQUk9UX1dSSVRFLCBNQVBf U0hBUkVELCBmZCwgMCk7CglyZXR1cm4gMDsKfQoKKysrIGV4aXRlZCB3aXRoIDAgKysrCkJVRzog c2xlZXBpbmcgZnVuY3Rpb24gY2FsbGVkIGZyb20gaW52YWxpZCBjb250ZXh0IGF0IC9ob21lL2th cy9naXQvcHVibGljL2xpbnV4LW1tL2tlcm5lbC9sb2NraW5nL211dGV4LmM6NjE2CmluX2F0b21p YygpOiAxLCBpcnFzX2Rpc2FibGVkKCk6IDAsIHBpZDogMSwgbmFtZTogaW5pdAozIGxvY2tzIGhl bGQgYnkgaW5pdC8xOgogIzA6ICAocmVib290X211dGV4KXsrLisuLi59LCBhdDogWzxmZmZmZmZm ZjgxMDgwOTU5Pl0gU3lTX3JlYm9vdCsweGE5LzB4MjIwCiAjMTogICgocmVib290X25vdGlmaWVy X2xpc3QpLnJ3c2VtKXsuKy4rLi59LCBhdDogWzxmZmZmZmZmZjgxMDdmMzc5Pl0gX19ibG9ja2lu Z19ub3RpZmllcl9jYWxsX2NoYWluKzB4MzkvMHg3MAogIzI6ICAocmN1X2NhbGxiYWNrKXsuLi4u Li59LCBhdDogWzxmZmZmZmZmZjgxMGQzMmUwPl0gcmN1X2RvX2JhdGNoLmlzcmEuNDkrMHgxNjAv MHgxMGMwClByZWVtcHRpb24gZGlzYWJsZWQgYXQ6WzxmZmZmZmZmZjgxNDUzNjVmPl0gX19kZWxh eSsweGYvMHgyMAoKQ1BVOiAxIFBJRDogMSBDb21tOiBpbml0IE5vdCB0YWludGVkIDQuMS4wLTAw MDA5LWdiZGRmNGM0ODE4ZTAgIzI1MwpIYXJkd2FyZSBuYW1lOiBRRU1VIFN0YW5kYXJkIFBDIChR MzUgKyBJQ0g5LCAyMDA5KSwgQklPUyBEZWJpYW4tMS44LjItMSAwNC8wMS8yMDE0CiBmZmZmODgw MTdiM2Q4MDAwIGZmZmY4ODAyN2JjMDNjMzggZmZmZmZmZmY4MTkyOWNlYiAwMDAwMDAwMDAwMDAw MTAyCiAwMDAwMDAwMDAwMDAwMDAwIGZmZmY4ODAyN2JjMDNjNjggZmZmZmZmZmY4MTA4NWE5ZCAw MDAwMDAwMDAwMDAwMDAyCiBmZmZmZmZmZjgxY2EyYTIwIDAwMDAwMDAwMDAwMDAyNjggMDAwMDAw MDAwMDAwMDAwMCBmZmZmODgwMjdiYzAzYzk4CkNhbGwgVHJhY2U6CiA8SVJRPiAgWzxmZmZmZmZm ZjgxOTI5Y2ViPl0gZHVtcF9zdGFjaysweDRmLzB4N2IKIFs8ZmZmZmZmZmY4MTA4NWE5ZD5dIF9f X21pZ2h0X3NsZWVwKzB4MTZkLzB4MjcwCiBbPGZmZmZmZmZmODEwODViZWQ+XSBfX21pZ2h0X3Ns ZWVwKzB4NGQvMHg5MAogWzxmZmZmZmZmZjgxOTJlOTZmPl0gbXV0ZXhfbG9ja19uZXN0ZWQrMHgy Zi8weDQzMAogWzxmZmZmZmZmZjgxOTMyZmVkPl0gPyBfcmF3X3NwaW5fdW5sb2NrX2lycXJlc3Rv cmUrMHg1ZC8weDgwCiBbPGZmZmZmZmZmODE0NjQxNDM+XSA/IF9fdGhpc19jcHVfcHJlZW1wdF9j aGVjaysweDEzLzB4MjAKIFs8ZmZmZmZmZmY4MTgyZmMzZD5dIG5ldGxpbmtfc2V0X3JpbmcrMHgx ZWQvMHgzNTAKIFs8ZmZmZmZmZmY4MTgyZTAwMD5dID8gbmV0bGlua191bmRvX2JpbmQrMHg3MC8w eDcwCiBbPGZmZmZmZmZmODE4MmZlMjA+XSBuZXRsaW5rX3NvY2tfZGVzdHJ1Y3QrMHg4MC8weDE1 MAogWzxmZmZmZmZmZjgxN2U0ODRkPl0gX19za19mcmVlKzB4MWQvMHgxNjAKIFs8ZmZmZmZmZmY4 MTdlNDlhOT5dIHNrX2ZyZWUrMHgxOS8weDIwClsuLl0KCkNvbmcgV2FuZyBzYXlzOgoKV2UgY2Fu J3QgaG9sZCBtdXRleCBsb2NrIGluIGEgcmN1IGNhbGxiYWNrLCBbLi5dCgpUaG9tYXMgR3JhZiBz YXlzOgoKVGhlIHNvY2tldCBzaG91bGQgYmUgZGVhZCBhdCB0aGlzIHBvaW50LiBJdCBtaWdodCBi ZSBzaW1wbGVyIHRvCmFkZCBhIG5ldGxpbmtfcmVsZWFzZV9yaW5nKCkgZnVuY3Rpb24gd2hpY2gg ZG9lc24ndCByZXF1aXJlCmxvY2tpbmcgYXQgYWxsLgoKUmVwb3J0ZWQtYnk6ICJLaXJpbGwgQS4g U2h1dGVtb3YiIDxraXJpbGxAc2h1dGVtb3YubmFtZT4KRGlhZ25vc2VkLWJ5OiBDb25nIFdhbmcg PGN3YW5nQHR3b3BlbnNvdXJjZS5jb20+ClN1Z2dlc3RlZC1ieTogVGhvbWFzIEdyYWYgPHRncmFm QHN1dWcuY2g+ClNpZ25lZC1vZmYtYnk6IEZsb3JpYW4gV2VzdHBoYWwgPGZ3QHN0cmxlbi5kZT4K U2lnbmVkLW9mZi1ieTogRGF2aWQgUy4gTWlsbGVyIDxkYXZlbUBkYXZlbWxvZnQubmV0PgotLS0K IG5ldC9uZXRsaW5rL2FmX25ldGxpbmsuYyB8IDc5ICsrKysrKysrKysrKysrKysrKysrKysrKysr KystLS0tLS0tLS0tLS0tLS0tLS0tLQogMSBmaWxlIGNoYW5nZWQsIDQ3IGluc2VydGlvbnMoKyks IDMyIGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL25ldC9uZXRsaW5rL2FmX25ldGxpbmsuYyBi L25ldC9uZXRsaW5rL2FmX25ldGxpbmsuYwppbmRleCA1YTc1YTFlLi4yMmUwZjQ3IDEwMDY0NAot LS0gYS9uZXQvbmV0bGluay9hZl9uZXRsaW5rLmMKKysrIGIvbmV0L25ldGxpbmsvYWZfbmV0bGlu ay5jCkBAIC0zNDIsMjUgKzM0Miw1MiBAQCBlcnIxOgogCXJldHVybiBOVUxMOwogfQogCisKK3N0 YXRpYyB2b2lkCitfX25ldGxpbmtfc2V0X3Jpbmcoc3RydWN0IHNvY2sgKnNrLCBzdHJ1Y3Qgbmxf bW1hcF9yZXEgKnJlcSwgYm9vbCB0eF9yaW5nLCB2b2lkICoqcGdfdmVjLAorCQkgICB1bnNpZ25l ZCBpbnQgb3JkZXIpCit7CisJc3RydWN0IG5ldGxpbmtfc29jayAqbmxrID0gbmxrX3NrKHNrKTsK KwlzdHJ1Y3Qgc2tfYnVmZl9oZWFkICpxdWV1ZTsKKwlzdHJ1Y3QgbmV0bGlua19yaW5nICpyaW5n OworCisJcXVldWUgPSB0eF9yaW5nID8gJnNrLT5za193cml0ZV9xdWV1ZSA6ICZzay0+c2tfcmVj ZWl2ZV9xdWV1ZTsKKwlyaW5nICA9IHR4X3JpbmcgPyAmbmxrLT50eF9yaW5nIDogJm5say0+cnhf cmluZzsKKworCXNwaW5fbG9ja19iaCgmcXVldWUtPmxvY2spOworCisJcmluZy0+ZnJhbWVfbWF4 CQk9IHJlcS0+bm1fZnJhbWVfbnIgLSAxOworCXJpbmctPmhlYWQJCT0gMDsKKwlyaW5nLT5mcmFt ZV9zaXplCT0gcmVxLT5ubV9mcmFtZV9zaXplOworCXJpbmctPnBnX3ZlY19wYWdlcwk9IHJlcS0+ bm1fYmxvY2tfc2l6ZSAvIFBBR0VfU0laRTsKKworCXN3YXAocmluZy0+cGdfdmVjX2xlbiwgcmVx LT5ubV9ibG9ja19ucik7CisJc3dhcChyaW5nLT5wZ192ZWNfb3JkZXIsIG9yZGVyKTsKKwlzd2Fw KHJpbmctPnBnX3ZlYywgcGdfdmVjKTsKKworCV9fc2tiX3F1ZXVlX3B1cmdlKHF1ZXVlKTsKKwlz cGluX3VubG9ja19iaCgmcXVldWUtPmxvY2spOworCisJV0FSTl9PTihhdG9taWNfcmVhZCgmbmxr LT5tYXBwZWQpKTsKKworCWlmIChwZ192ZWMpCisJCWZyZWVfcGdfdmVjKHBnX3ZlYywgb3JkZXIs IHJlcS0+bm1fYmxvY2tfbnIpOworfQorCiBzdGF0aWMgaW50IG5ldGxpbmtfc2V0X3Jpbmcoc3Ry dWN0IHNvY2sgKnNrLCBzdHJ1Y3QgbmxfbW1hcF9yZXEgKnJlcSwKLQkJCSAgICBib29sIGNsb3Np bmcsIGJvb2wgdHhfcmluZykKKwkJCSAgICBib29sIHR4X3JpbmcpCiB7CiAJc3RydWN0IG5ldGxp bmtfc29jayAqbmxrID0gbmxrX3NrKHNrKTsKIAlzdHJ1Y3QgbmV0bGlua19yaW5nICpyaW5nOwot CXN0cnVjdCBza19idWZmX2hlYWQgKnF1ZXVlOwogCXZvaWQgKipwZ192ZWMgPSBOVUxMOwogCXVu c2lnbmVkIGludCBvcmRlciA9IDA7Ci0JaW50IGVycjsKIAogCXJpbmcgID0gdHhfcmluZyA/ICZu bGstPnR4X3JpbmcgOiAmbmxrLT5yeF9yaW5nOwotCXF1ZXVlID0gdHhfcmluZyA/ICZzay0+c2tf d3JpdGVfcXVldWUgOiAmc2stPnNrX3JlY2VpdmVfcXVldWU7CiAKLQlpZiAoIWNsb3NpbmcpIHsK LQkJaWYgKGF0b21pY19yZWFkKCZubGstPm1hcHBlZCkpCi0JCQlyZXR1cm4gLUVCVVNZOwotCQlp ZiAoYXRvbWljX3JlYWQoJnJpbmctPnBlbmRpbmcpKQotCQkJcmV0dXJuIC1FQlVTWTsKLQl9CisJ aWYgKGF0b21pY19yZWFkKCZubGstPm1hcHBlZCkpCisJCXJldHVybiAtRUJVU1k7CisJaWYgKGF0 b21pY19yZWFkKCZyaW5nLT5wZW5kaW5nKSkKKwkJcmV0dXJuIC1FQlVTWTsKIAogCWlmIChyZXEt Pm5tX2Jsb2NrX25yKSB7CiAJCWlmIChyaW5nLT5wZ192ZWMgIT0gTlVMTCkKQEAgLTM5MiwzMSAr NDE5LDE5IEBAIHN0YXRpYyBpbnQgbmV0bGlua19zZXRfcmluZyhzdHJ1Y3Qgc29jayAqc2ssIHN0 cnVjdCBubF9tbWFwX3JlcSAqcmVxLAogCQkJcmV0dXJuIC1FSU5WQUw7CiAJfQogCi0JZXJyID0g LUVCVVNZOwogCW11dGV4X2xvY2soJm5say0+cGdfdmVjX2xvY2spOwotCWlmIChjbG9zaW5nIHx8 IGF0b21pY19yZWFkKCZubGstPm1hcHBlZCkgPT0gMCkgewotCQllcnIgPSAwOwotCQlzcGluX2xv Y2tfYmgoJnF1ZXVlLT5sb2NrKTsKLQotCQlyaW5nLT5mcmFtZV9tYXgJCT0gcmVxLT5ubV9mcmFt ZV9uciAtIDE7Ci0JCXJpbmctPmhlYWQJCT0gMDsKLQkJcmluZy0+ZnJhbWVfc2l6ZQk9IHJlcS0+ bm1fZnJhbWVfc2l6ZTsKLQkJcmluZy0+cGdfdmVjX3BhZ2VzCT0gcmVxLT5ubV9ibG9ja19zaXpl IC8gUEFHRV9TSVpFOwotCi0JCXN3YXAocmluZy0+cGdfdmVjX2xlbiwgcmVxLT5ubV9ibG9ja19u cik7Ci0JCXN3YXAocmluZy0+cGdfdmVjX29yZGVyLCBvcmRlcik7Ci0JCXN3YXAocmluZy0+cGdf dmVjLCBwZ192ZWMpOwotCi0JCV9fc2tiX3F1ZXVlX3B1cmdlKHF1ZXVlKTsKLQkJc3Bpbl91bmxv Y2tfYmgoJnF1ZXVlLT5sb2NrKTsKLQotCQlXQVJOX09OKGF0b21pY19yZWFkKCZubGstPm1hcHBl ZCkpOworCWlmIChhdG9taWNfcmVhZCgmbmxrLT5tYXBwZWQpID09IDApIHsKKwkJX19uZXRsaW5r X3NldF9yaW5nKHNrLCByZXEsIHR4X3JpbmcsIHBnX3ZlYywgb3JkZXIpOworCQltdXRleF91bmxv Y2soJm5say0+cGdfdmVjX2xvY2spOworCQlyZXR1cm4gMDsKIAl9CisKIAltdXRleF91bmxvY2so Jm5say0+cGdfdmVjX2xvY2spOwogCiAJaWYgKHBnX3ZlYykKIAkJZnJlZV9wZ192ZWMocGdfdmVj LCBvcmRlciwgcmVxLT5ubV9ibG9ja19ucik7Ci0JcmV0dXJuIGVycjsKKworCXJldHVybiAtRUJV U1k7CiB9CiAKIHN0YXRpYyB2b2lkIG5ldGxpbmtfbW1fb3BlbihzdHJ1Y3Qgdm1fYXJlYV9zdHJ1 Y3QgKnZtYSkKQEAgLTg4NSwxMCArOTAwLDEwIEBAIHN0YXRpYyB2b2lkIG5ldGxpbmtfc29ja19k ZXN0cnVjdChzdHJ1Y3Qgc29jayAqc2spCiAKIAkJbWVtc2V0KCZyZXEsIDAsIHNpemVvZihyZXEp KTsKIAkJaWYgKG5say0+cnhfcmluZy5wZ192ZWMpCi0JCQluZXRsaW5rX3NldF9yaW5nKHNrLCAm cmVxLCB0cnVlLCBmYWxzZSk7CisJCQlfX25ldGxpbmtfc2V0X3Jpbmcoc2ssICZyZXEsIGZhbHNl LCBOVUxMLCAwKTsKIAkJbWVtc2V0KCZyZXEsIDAsIHNpemVvZihyZXEpKTsKIAkJaWYgKG5say0+ dHhfcmluZy5wZ192ZWMpCi0JCQluZXRsaW5rX3NldF9yaW5nKHNrLCAmcmVxLCB0cnVlLCB0cnVl KTsKKwkJCV9fbmV0bGlua19zZXRfcmluZyhzaywgJnJlcSwgdHJ1ZSwgTlVMTCwgMCk7CiAJfQog I2VuZGlmIC8qIENPTkZJR19ORVRMSU5LX01NQVAgKi8KIApAQCAtMjE4Miw3ICsyMTk3LDcgQEAg c3RhdGljIGludCBuZXRsaW5rX3NldHNvY2tvcHQoc3RydWN0IHNvY2tldCAqc29jaywgaW50IGxl dmVsLCBpbnQgb3B0bmFtZSwKIAkJCXJldHVybiAtRUlOVkFMOwogCQlpZiAoY29weV9mcm9tX3Vz ZXIoJnJlcSwgb3B0dmFsLCBzaXplb2YocmVxKSkpCiAJCQlyZXR1cm4gLUVGQVVMVDsKLQkJZXJy ID0gbmV0bGlua19zZXRfcmluZyhzaywgJnJlcSwgZmFsc2UsCisJCWVyciA9IG5ldGxpbmtfc2V0 X3Jpbmcoc2ssICZyZXEsCiAJCQkJICAgICAgIG9wdG5hbWUgPT0gTkVUTElOS19UWF9SSU5HKTsK IAkJYnJlYWs7CiAJfQotLSAKMi4xLjAKCgpGcm9tIGZlZjQwM2ZkYWNkNDZkMzcyM2MxYTExMDU0 Yjc5MDM3MTkyMThjMGQgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCkZyb206IEphY2sgTW9yZ2Vu c3RlaW4gPGphY2ttQGRldi5tZWxsYW5veC5jby5pbD4KRGF0ZTogV2VkLCAyMiBKdWwgMjAxNSAx Njo1Mzo0NyArMDMwMApTdWJqZWN0OiBbUEFUQ0ggMjAvMjFdIG5ldC9tbHg0X2NvcmU6IEZpeCB3 cm9uZyBpbmRleCBpbiBwcm9wYWdhdGluZyBwb3J0CiBjaGFuZ2UgZXZlbnQgdG8gVkZzCgpbIFVw c3RyZWFtIGNvbW1pdCAxYzFiZjM0OTUxZThkMTc5NDFiZjcwOGQxOTAxYzQ3ZTgxYjE1ZDU1IF0K ClRoZSBwb3J0LWNoYW5nZSBldmVudCBwcm9jZXNzaW5nIGluIHByb2NlZHVyZSBtbHg0X2VxX2lu dCgpIHVzZXMgInNsYXZlIgphcyB0aGUgdmZfb3BlciBhcnJheSBpbmRleC4gU2luY2UgdGhlIHZh bHVlIG9mICJzbGF2ZSIgaXMgdGhlIFBGIGZ1bmN0aW9uCmluZGV4LCB0aGUgcmVzdWx0IGlzIHRo YXQgdGhlIFBGIGxpbmsgc3RhdGUgaXMgdXNlZCBmb3IgZGVjaWRpbmcgdG8KcHJvcGFnYXRlIHRo ZSBldmVudCBmb3IgYWxsIHRoZSBWRnMuIFRoZSBWRiBsaW5rIHN0YXRlIHNob3VsZCBiZSB1c2Vk LApzbyB0aGUgVkYgZnVuY3Rpb24gaW5kZXggc2hvdWxkIGJlIHVzZWQgaGVyZS4KCkZpeGVzOiA5 NDhlMzA2ZDdkNjQgKCduZXQvbWx4NDogQWRkIFZGIGxpbmsgc3RhdGUgc3VwcG9ydCcpClNpZ25l ZC1vZmYtYnk6IEphY2sgTW9yZ2Vuc3RlaW4gPGphY2ttQGRldi5tZWxsYW5veC5jby5pbD4KU2ln bmVkLW9mZi1ieTogTWF0YW4gQmFyYWsgPG1hdGFuYkBtZWxsYW5veC5jb20+ClNpZ25lZC1vZmYt Ynk6IE9yIEdlcmxpdHogPG9nZXJsaXR6QG1lbGxhbm94LmNvbT4KU2lnbmVkLW9mZi1ieTogRGF2 aWQgUy4gTWlsbGVyIDxkYXZlbUBkYXZlbWxvZnQubmV0PgotLS0KIGRyaXZlcnMvbmV0L2V0aGVy bmV0L21lbGxhbm94L21seDQvZXEuYyB8IDQgKystLQogMSBmaWxlIGNoYW5nZWQsIDIgaW5zZXJ0 aW9ucygrKSwgMiBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC9ldGhlcm5l dC9tZWxsYW5veC9tbHg0L2VxLmMgYi9kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg0 L2VxLmMKaW5kZXggMDQxNmM1Yi4uMzk5MGI0MyAxMDA2NDQKLS0tIGEvZHJpdmVycy9uZXQvZXRo ZXJuZXQvbWVsbGFub3gvbWx4NC9lcS5jCisrKyBiL2RyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxh bm94L21seDQvZXEuYwpAQCAtNTU4LDcgKzU1OCw3IEBAIHN0YXRpYyBpbnQgbWx4NF9lcV9pbnQo c3RydWN0IG1seDRfZGV2ICpkZXYsIHN0cnVjdCBtbHg0X2VxICplcSkKIAkJCQkJCW1seDRfZGJn KGRldiwgIiVzOiBTZW5kaW5nIE1MWDRfUE9SVF9DSEFOR0VfU1VCVFlQRV9ET1dOIgogCQkJCQkJ CSAiIHRvIHNsYXZlOiAlZCwgcG9ydDolZFxuIiwKIAkJCQkJCQkgX19mdW5jX18sIGksIHBvcnQp OwotCQkJCQkJc19pbmZvID0gJnByaXYtPm1mdW5jLm1hc3Rlci52Zl9vcGVyW3NsYXZlXS52cG9y dFtwb3J0XS5zdGF0ZTsKKwkJCQkJCXNfaW5mbyA9ICZwcml2LT5tZnVuYy5tYXN0ZXIudmZfb3Bl cltpXS52cG9ydFtwb3J0XS5zdGF0ZTsKIAkJCQkJCWlmIChJRkxBX1ZGX0xJTktfU1RBVEVfQVVU TyA9PSBzX2luZm8tPmxpbmtfc3RhdGUpCiAJCQkJCQkJbWx4NF9zbGF2ZV9ldmVudChkZXYsIGks IGVxZSk7CiAJCQkJCX0gZWxzZSB7ICAvKiBJQiBwb3J0ICovCkBAIC01ODQsNyArNTg0LDcgQEAg c3RhdGljIGludCBtbHg0X2VxX2ludChzdHJ1Y3QgbWx4NF9kZXYgKmRldiwgc3RydWN0IG1seDRf ZXEgKmVxKQogCQkJCQlmb3IgKGkgPSAwOyBpIDwgZGV2LT5udW1fc2xhdmVzOyBpKyspIHsKIAkJ CQkJCWlmIChpID09IG1seDRfbWFzdGVyX2Z1bmNfbnVtKGRldikpCiAJCQkJCQkJY29udGludWU7 Ci0JCQkJCQlzX2luZm8gPSAmcHJpdi0+bWZ1bmMubWFzdGVyLnZmX29wZXJbc2xhdmVdLnZwb3J0 W3BvcnRdLnN0YXRlOworCQkJCQkJc19pbmZvID0gJnByaXYtPm1mdW5jLm1hc3Rlci52Zl9vcGVy W2ldLnZwb3J0W3BvcnRdLnN0YXRlOwogCQkJCQkJaWYgKElGTEFfVkZfTElOS19TVEFURV9BVVRP ID09IHNfaW5mby0+bGlua19zdGF0ZSkKIAkJCQkJCQltbHg0X3NsYXZlX2V2ZW50KGRldiwgaSwg ZXFlKTsKIAkJCQkJfQotLSAKMi4xLjAKCgpGcm9tIDc2YjE1MmIzMGYwZmNiOTNmN2NjZmUxZGFh NWEwMDQwM2JjZmE0NjYgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCkZyb206IERhbiBDYXJwZW50 ZXIgPGRhbi5jYXJwZW50ZXJAb3JhY2xlLmNvbT4KRGF0ZTogU2F0LCAxIEF1ZyAyMDE1IDE1OjMz OjI2ICswMzAwClN1YmplY3Q6IFtQQVRDSCAyMS8yMV0gcmRzOiBmaXggYW4gaW50ZWdlciBvdmVy ZmxvdyB0ZXN0IGluCiByZHNfaW5mb19nZXRzb2Nrb3B0KCkKClsgVXBzdHJlYW0gY29tbWl0IDQ2 OGI3MzJiNmY3NmIxMzhjMDkyNmVhZGYzOGFjODg0NjdkY2QyNzEgXQoKImxlbiIgaXMgYSBzaWdu ZWQgaW50ZWdlci4gIFdlIGNoZWNrIHRoYXQgbGVuIGlzIG5vdCBuZWdhdGl2ZSwgc28gaXQKZ29l cyBmcm9tIHplcm8gdG8gSU5UX01BWC4gIFBBR0VfU0laRSBpcyB1bnNpZ25lZCBsb25nIHNvIHRo ZSBjb21wYXJpc29uCmlzIHR5cGUgcHJvbW90ZWQgdG8gdW5zaWduZWQgbG9uZy4gIFVMT05HX01B WCAtIDQwOTUgaXMgYSBoaWdoZXIgdGhhbgpJTlRfTUFYIHNvIHRoZSBjb25kaXRpb24gY2FuIG5l dmVyIGJlIHRydWUuCgpJIGRvbid0IGtub3cgaWYgdGhpcyBpcyBoYXJtZnVsIGJ1dCBpdCBzZWVt cyBzYWZlIHRvIGxpbWl0ICJsZW4iIHRvCklOVF9NQVggLSA0MDk1LgoKRml4ZXM6IGE4Yzg3OWE3 ZWU5OCAoJ1JEUzogSW5mbyBhbmQgc3RhdHMnKQpTaWduZWQtb2ZmLWJ5OiBEYW4gQ2FycGVudGVy IDxkYW4uY2FycGVudGVyQG9yYWNsZS5jb20+ClNpZ25lZC1vZmYtYnk6IERhdmlkIFMuIE1pbGxl ciA8ZGF2ZW1AZGF2ZW1sb2Z0Lm5ldD4KLS0tCiBuZXQvcmRzL2luZm8uYyB8IDIgKy0KIDEgZmls ZSBjaGFuZ2VkLCAxIGluc2VydGlvbigrKSwgMSBkZWxldGlvbigtKQoKZGlmZiAtLWdpdCBhL25l dC9yZHMvaW5mby5jIGIvbmV0L3Jkcy9pbmZvLmMKaW5kZXggOWE2YjRmNi4uMTQwYTQ0YSAxMDA2 NDQKLS0tIGEvbmV0L3Jkcy9pbmZvLmMKKysrIGIvbmV0L3Jkcy9pbmZvLmMKQEAgLTE3Niw3ICsx NzYsNyBAQCBpbnQgcmRzX2luZm9fZ2V0c29ja29wdChzdHJ1Y3Qgc29ja2V0ICpzb2NrLCBpbnQg b3B0bmFtZSwgY2hhciBfX3VzZXIgKm9wdHZhbCwKIAogCS8qIGNoZWNrIGZvciBhbGwga2luZHMg b2Ygd3JhcHBpbmcgYW5kIHRoZSBsaWtlICovCiAJc3RhcnQgPSAodW5zaWduZWQgbG9uZylvcHR2 YWw7Ci0JaWYgKGxlbiA8IDAgfHwgbGVuICsgUEFHRV9TSVpFIC0gMSA8IGxlbiB8fCBzdGFydCAr IGxlbiA8IHN0YXJ0KSB7CisJaWYgKGxlbiA8IDAgfHwgbGVuID4gSU5UX01BWCAtIFBBR0VfU0la RSArIDEgfHwgc3RhcnQgKyBsZW4gPCBzdGFydCkgewogCQlyZXQgPSAtRUlOVkFMOwogCQlnb3Rv IG91dDsKIAl9Ci0tIAoyLjEuMAoK ----Next_Part(Wed_Aug_26_23_05_12_2015_145)-- Content-Type: Application/Octet-Stream Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="net_314.mbox" RnJvbSBmOWE5MzFjMTQ5Y2E3ZDBmNjM3MGIyZjRjMmNiOTU2ZTIwNzc4ZmFiIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBBbmdnYSA8SGVybWluLkFuZ2dhd2lqYXlhQGFsbGllZHRlbGVz aXMuY28ubno+CkRhdGU6IEZyaSwgMyBKdWwgMjAxNSAxNDo0MDo1MiArMTIwMApTdWJqZWN0OiBb UEFUQ0ggMDEvMjVdIGlwdjY6IE1ha2UgTUxEIHBhY2tldHMgdG8gb25seSBiZSBwcm9jZXNzZWQg bG9jYWxseQoKWyBVcHN0cmVhbSBjb21taXQgNGM5MzhkMjJjODhhOWRkY2NjOGM1NWE4NWUwNDMw ZTljNjJiMWFjNSBdCgpCZWZvcmUgY29tbWl0IGRhYWQxNTEyNjNjZiAoImlwdjY6IE1ha2UgaXB2 Nl9pc19tbGQoKSBpbmxpbmUgYW5kIHVzZSBpdApmcm9tIGlwNl9tY19pbnB1dCgpLiIpIE1MRCBw YWNrZXRzIHdlcmUgb25seSBwcm9jZXNzZWQgbG9jYWxseS4gQWZ0ZXIgdGhlCmNoYW5nZSwgYSBj b3B5IG9mIE1MRCBwYWNrZXQgZ29lcyB0aHJvdWdoIGlwNl9tcl9pbnB1dCwgY2F1c2luZwpNUlQ2 TVNHX05PQ0FDSEUgbWVzc2FnZSB0byBiZSBnZW5lcmF0ZWQgdG8gdXNlciBzcGFjZS4KCk1ha2Ug TUxEIHBhY2tldCBvbmx5IHByb2Nlc3NlZCBsb2NhbGx5LgoKRml4ZXM6IGRhYWQxNTEyNjNjZiAo ImlwdjY6IE1ha2UgaXB2Nl9pc19tbGQoKSBpbmxpbmUgYW5kIHVzZSBpdCBmcm9tIGlwNl9tY19p bnB1dCgpLiIpClNpZ25lZC1vZmYtYnk6IEhlcm1pbiBBbmdnYXdpamF5YSA8aGVybWluLmFuZ2dh d2lqYXlhQGFsbGllZHRlbGVzaXMuY28ubno+ClNpZ25lZC1vZmYtYnk6IERhdmlkIFMuIE1pbGxl ciA8ZGF2ZW1AZGF2ZW1sb2Z0Lm5ldD4KLS0tCiBuZXQvaXB2Ni9pcDZfaW5wdXQuYyB8IDYgKysr LS0tCiAxIGZpbGUgY2hhbmdlZCwgMyBpbnNlcnRpb25zKCspLCAzIGRlbGV0aW9ucygtKQoKZGlm ZiAtLWdpdCBhL25ldC9pcHY2L2lwNl9pbnB1dC5jIGIvbmV0L2lwdjYvaXA2X2lucHV0LmMKaW5k ZXggNTFkNTRkYy4uMDVjOTRkOSAxMDA2NDQKLS0tIGEvbmV0L2lwdjYvaXA2X2lucHV0LmMKKysr IGIvbmV0L2lwdjYvaXA2X2lucHV0LmMKQEAgLTMyOSwxMCArMzI5LDEwIEBAIGludCBpcDZfbWNf aW5wdXQoc3RydWN0IHNrX2J1ZmYgKnNrYikKIAkJCQlpZiAob2Zmc2V0IDwgMCkKIAkJCQkJZ290 byBvdXQ7CiAKLQkJCQlpZiAoIWlwdjZfaXNfbWxkKHNrYiwgbmV4dGhkciwgb2Zmc2V0KSkKLQkJ CQkJZ290byBvdXQ7CisJCQkJaWYgKGlwdjZfaXNfbWxkKHNrYiwgbmV4dGhkciwgb2Zmc2V0KSkK KwkJCQkJZGVsaXZlciA9IHRydWU7CiAKLQkJCQlkZWxpdmVyID0gdHJ1ZTsKKwkJCQlnb3RvIG91 dDsKIAkJCX0KIAkJCS8qIHVua25vd24gUkEgLSBwcm9jZXNzIGl0IG5vcm1hbGx5ICovCiAJCX0K LS0gCjIuMS4wCgoKRnJvbSAzOTIyMGJjM2E0ZWFiMTE3N2IwYmVmZTIwNTViZTk3NmYwZmE3ZTFm IE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBFcmljIER1bWF6ZXQgPGVkdW1hemV0QGdv b2dsZS5jb20+CkRhdGU6IE1vbiwgNiBKdWwgMjAxNSAxNzoxMzoyNiArMDIwMApTdWJqZWN0OiBb UEFUQ0ggMDIvMjVdIG5ldDogZ3JhY2VmdWwgZXhpdCBmcm9tIG5ldGlmX2FsbG9jX25ldGRldl9x dWV1ZXMoKQoKWyBVcHN0cmVhbSBjb21taXQgZDMzOTcyN2MyYjFhMTBmMjVlNjYzNjY3MGFiNmUx ODQxMTcwZTMyOCBdCgpVc2VyIHNwYWNlIGNhbiBjcmFzaCBrZXJuZWwgd2l0aAoKaXAgbGluayBh ZGQgaWZiMTAgbnVtdHhxdWV1ZXMgMTAwMDAwIHR5cGUgaWZiCgpXZSBtdXN0IHJlcGxhY2UgYSBC VUdfT04oKSBieSBwcm9wZXIgdGVzdCBhbmQgcmV0dXJuIC1FSU5WQUwgZm9yCmNyYXp5IHZhbHVl cy4KCkZpeGVzOiA2MDg3N2EzMmJjZTAwICgibmV0OiBhbGxvdyBsYXJnZSBudW1iZXIgb2YgdHgg cXVldWVzIikKU2lnbmVkLW9mZi1ieTogRXJpYyBEdW1hemV0IDxlZHVtYXpldEBnb29nbGUuY29t PgpTaWduZWQtb2ZmLWJ5OiBEYXZpZCBTLiBNaWxsZXIgPGRhdmVtQGRhdmVtbG9mdC5uZXQ+Ci0t LQogbmV0L2NvcmUvZGV2LmMgfCAzICsrLQogMSBmaWxlIGNoYW5nZWQsIDIgaW5zZXJ0aW9ucygr KSwgMSBkZWxldGlvbigtKQoKZGlmZiAtLWdpdCBhL25ldC9jb3JlL2Rldi5jIGIvbmV0L2NvcmUv ZGV2LmMKaW5kZXggMWI5ZTcwMC4uYmZiNTZjMCAxMDA2NDQKLS0tIGEvbmV0L2NvcmUvZGV2LmMK KysrIGIvbmV0L2NvcmUvZGV2LmMKQEAgLTU5NTEsNyArNTk1MSw4IEBAIHN0YXRpYyBpbnQgbmV0 aWZfYWxsb2NfbmV0ZGV2X3F1ZXVlcyhzdHJ1Y3QgbmV0X2RldmljZSAqZGV2KQogCXN0cnVjdCBu ZXRkZXZfcXVldWUgKnR4OwogCXNpemVfdCBzeiA9IGNvdW50ICogc2l6ZW9mKCp0eCk7CiAKLQlC VUdfT04oY291bnQgPCAxIHx8IGNvdW50ID4gMHhmZmZmKTsKKwlpZiAoY291bnQgPCAxIHx8IGNv dW50ID4gMHhmZmZmKQorCQlyZXR1cm4gLUVJTlZBTDsKIAogCXR4ID0ga3phbGxvYyhzeiwgR0ZQ X0tFUk5FTCB8IF9fR0ZQX05PV0FSTiB8IF9fR0ZQX1JFUEVBVCk7CiAJaWYgKCF0eCkgewotLSAK Mi4xLjAKCgpGcm9tIDZiZDAxOGY3ZTcxZWNkMGQ5MzIyZjU0NmNjYTQ1M2FhY2QyM2E1ZTEgTW9u IFNlcCAxNyAwMDowMDowMCAyMDAxCkZyb206IERhbmllbCBCb3JrbWFubiA8ZGFuaWVsQGlvZ2Vh cmJveC5uZXQ+CkRhdGU6IFR1ZSwgNyBKdWwgMjAxNSAwMDowNzo1MiArMDIwMApTdWJqZWN0OiBb UEFUQ0ggMDMvMjVdIHJ0bmV0bGluazogdmVyaWZ5IElGTEFfVkZfSU5GTyBhdHRyaWJ1dGVzIGJl Zm9yZQogcGFzc2luZyB0aGVtIHRvIGRyaXZlcgoKWyBVcHN0cmVhbSBjb21taXQgNGY3ZDJjZGZk ZGU3MWZmZTk2MjM5OWI3MDIwYzY3NDA1MDMyOTQyMyBdCgpKYXNvbiBHdW50aG9ycGUgcmVwb3J0 ZWQgdGhhdCBzaW5jZSBjb21taXQgYzAyZGI4YzYyOTBiICgicnRuZXRsaW5rOiBtYWtlClNSLUlP ViBWRiBpbnRlcmZhY2Ugc3ltbWV0cmljIiksIHdlIGRvbid0IHZlcmlmeSBJRkxBX1ZGX0lORk8g YXR0cmlidXRlcwphbnltb3JlIHdpdGggcmVzcGVjdCB0byB0aGVpciBwb2xpY3ksIHRoYXQgaXMs IGlmbGFfdmZpbmZvX3BvbGljeVtdLgoKQmVmb3JlLCB0aGV5IHdlcmUgcGFydCBvZiBpZmxhX3Bv bGljeVtdLCBidXQgdGhleSBoYXZlIGJlZW4gbmVzdGVkIHNpbmNlCnBsYWNlZCB1bmRlciBJRkxB X1ZGSU5GT19MSVNULCB0aGF0IGNvbnRhaW5zIHRoZSBhdHRyaWJ1dGUgSUZMQV9WRl9JTkZPLAp3 aGljaCBpcyBhbm90aGVyIG5lc3RlZCBhdHRyaWJ1dGUgZm9yIHRoZSBhY3R1YWwgVkYgYXR0cmli dXRlcyBzdWNoIGFzCklGTEFfVkZfTUFDLCBJRkxBX1ZGX1ZMQU4sIGV0Yy4KCkRlc3BpdGUgdGhl IHBvbGljeSBiZWluZyBzcGxpdCBvdXQgZnJvbSBpZmxhX3BvbGljeVtdIGluIHRoaXMgY29tbWl0 LAppdCdzIG5ldmVyIGFwcGxpZWQgYW55d2hlcmUuIG5sYV9mb3JfZWFjaF9uZXN0ZWQoKSBvbmx5 IGRvZXMgYmFzaWMgbmxhX29rKCkKdGVzdGluZyBmb3Igc3RydWN0IG5sYXR0ciwgYnV0IGl0IGRv ZXNuJ3Qga25vdyBhYm91dCB0aGUgZGF0YSBjb250ZXh0IGFuZAp0aGVpciByZXF1aXJlbWVudHMu CgpGaXgsIG9uIHRvcCBvZiBKYXNvbidzIGluaXRpYWwgd29yaywgZG9lcyAxKSBwYXJzaW5nIG9m IHRoZSBhdHRyaWJ1dGVzCndpdGggdGhlIHJpZ2h0IHBvbGljeSwgYW5kIDIpIHVzaW5nIHRoZSBy ZXN1bHRpbmcgcGFyc2VkIGF0dHJpYnV0ZSB0YWJsZQpmcm9tIDEpIGluc3RlYWQgb2YgdGhlIG5s YV9mb3JfZWFjaF9uZXN0ZWQoKSBsb29wIChqdXN0IGxpa2Ugd2UgdXNlZCB0bwpkbyB3aGVuIHN0 aWxsIHBhcnQgb2YgaWZsYV9wb2xpY3lbXSkuCgpSZWZlcmVuY2U6IGh0dHA6Ly90aHJlYWQuZ21h bmUub3JnL2dtYW5lLmxpbnV4Lm5ldHdvcmsvMzY4OTEzCkZpeGVzOiBjMDJkYjhjNjI5MGIgKCJy dG5ldGxpbms6IG1ha2UgU1ItSU9WIFZGIGludGVyZmFjZSBzeW1tZXRyaWMiKQpSZXBvcnRlZC1i eTogSmFzb24gR3VudGhvcnBlIDxqZ3VudGhvcnBlQG9ic2lkaWFucmVzZWFyY2guY29tPgpDYzog Q2hyaXMgV3JpZ2h0IDxjaHJpc3dAc291cy1zb2wub3JnPgpDYzogU3VjaGV0YSBDaGFrcmFib3J0 eSA8c3VjaGV0YS5jaGFrcmFib3J0eUBxbG9naWMuY29tPgpDYzogR3JlZyBSb3NlIDxncmVnb3J5 LnYucm9zZUBpbnRlbC5jb20+CkNjOiBKZWZmIEtpcnNoZXIgPGplZmZyZXkudC5raXJzaGVyQGlu dGVsLmNvbT4KQ2M6IFJvbnkgRWZyYWltIDxyb255ZUBtZWxsYW5veC5jb20+CkNjOiBWbGFkIFpv bG90YXJvdiA8dmxhZHpAY2xvdWRpdXMtc3lzdGVtcy5jb20+CkNjOiBOaWNvbGFzIERpY2h0ZWwg PG5pY29sYXMuZGljaHRlbEA2d2luZC5jb20+CkNjOiBUaG9tYXMgR3JhZiA8dGdyYWZAc3V1Zy5j aD4KU2lnbmVkLW9mZi1ieTogSmFzb24gR3VudGhvcnBlIDxqZ3VudGhvcnBlQG9ic2lkaWFucmVz ZWFyY2guY29tPgpTaWduZWQtb2ZmLWJ5OiBEYW5pZWwgQm9ya21hbm4gPGRhbmllbEBpb2dlYXJi b3gubmV0PgpBY2tlZC1ieTogVmxhZCBab2xvdGFyb3YgPHZsYWR6QGNsb3VkaXVzLXN5c3RlbXMu Y29tPgpTaWduZWQtb2ZmLWJ5OiBEYXZpZCBTLiBNaWxsZXIgPGRhdmVtQGRhdmVtbG9mdC5uZXQ+ Ci0tLQogbmV0L2NvcmUvcnRuZXRsaW5rLmMgfCAxMjggKysrKysrKysrKysrKysrKysrKysrKysr KystLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAxIGZpbGUgY2hhbmdlZCwgNjUgaW5zZXJ0aW9u cygrKSwgNjMgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvbmV0L2NvcmUvcnRuZXRsaW5rLmMg Yi9uZXQvY29yZS9ydG5ldGxpbmsuYwppbmRleCA4YWFkZDZhLi40NjUwOTJmIDEwMDY0NAotLS0g YS9uZXQvY29yZS9ydG5ldGxpbmsuYworKysgYi9uZXQvY29yZS9ydG5ldGxpbmsuYwpAQCAtMTI1 OSwxMCArMTI1OSw2IEBAIHN0YXRpYyBjb25zdCBzdHJ1Y3QgbmxhX3BvbGljeSBpZmxhX2luZm9f cG9saWN5W0lGTEFfSU5GT19NQVgrMV0gPSB7CiAJW0lGTEFfSU5GT19TTEFWRV9EQVRBXQk9IHsg LnR5cGUgPSBOTEFfTkVTVEVEIH0sCiB9OwogCi1zdGF0aWMgY29uc3Qgc3RydWN0IG5sYV9wb2xp Y3kgaWZsYV92ZmluZm9fcG9saWN5W0lGTEFfVkZfSU5GT19NQVgrMV0gPSB7Ci0JW0lGTEFfVkZf SU5GT10JCT0geyAudHlwZSA9IE5MQV9ORVNURUQgfSwKLX07Ci0KIHN0YXRpYyBjb25zdCBzdHJ1 Y3QgbmxhX3BvbGljeSBpZmxhX3ZmX3BvbGljeVtJRkxBX1ZGX01BWCsxXSA9IHsKIAlbSUZMQV9W Rl9NQUNdCQk9IHsgLmxlbiA9IHNpemVvZihzdHJ1Y3QgaWZsYV92Zl9tYWMpIH0sCiAJW0lGTEFf VkZfVkxBTl0JCT0geyAubGVuID0gc2l6ZW9mKHN0cnVjdCBpZmxhX3ZmX3ZsYW4pIH0sCkBAIC0x MzM2LDY3ICsxMzMyLDY2IEBAIHN0YXRpYyBpbnQgdmFsaWRhdGVfbGlua21zZyhzdHJ1Y3QgbmV0 X2RldmljZSAqZGV2LCBzdHJ1Y3QgbmxhdHRyICp0YltdKQogCXJldHVybiAwOwogfQogCi1zdGF0 aWMgaW50IGRvX3NldHZmaW5mbyhzdHJ1Y3QgbmV0X2RldmljZSAqZGV2LCBzdHJ1Y3QgbmxhdHRy ICphdHRyKQorc3RhdGljIGludCBkb19zZXR2ZmluZm8oc3RydWN0IG5ldF9kZXZpY2UgKmRldiwg c3RydWN0IG5sYXR0ciAqKnRiKQogewotCWludCByZW0sIGVyciA9IC1FSU5WQUw7Ci0Jc3RydWN0 IG5sYXR0ciAqdmY7CiAJY29uc3Qgc3RydWN0IG5ldF9kZXZpY2Vfb3BzICpvcHMgPSBkZXYtPm5l dGRldl9vcHM7CisJaW50IGVyciA9IC1FSU5WQUw7CiAKLQlubGFfZm9yX2VhY2hfbmVzdGVkKHZm LCBhdHRyLCByZW0pIHsKLQkJc3dpdGNoIChubGFfdHlwZSh2ZikpIHsKLQkJY2FzZSBJRkxBX1ZG X01BQzogewotCQkJc3RydWN0IGlmbGFfdmZfbWFjICppdm07Ci0JCQlpdm0gPSBubGFfZGF0YSh2 Zik7Ci0JCQllcnIgPSAtRU9QTk9UU1VQUDsKLQkJCWlmIChvcHMtPm5kb19zZXRfdmZfbWFjKQot CQkJCWVyciA9IG9wcy0+bmRvX3NldF92Zl9tYWMoZGV2LCBpdm0tPnZmLAotCQkJCQkJCSAgaXZt LT5tYWMpOwotCQkJYnJlYWs7Ci0JCX0KLQkJY2FzZSBJRkxBX1ZGX1ZMQU46IHsKLQkJCXN0cnVj dCBpZmxhX3ZmX3ZsYW4gKml2djsKLQkJCWl2diA9IG5sYV9kYXRhKHZmKTsKLQkJCWVyciA9IC1F T1BOT1RTVVBQOwotCQkJaWYgKG9wcy0+bmRvX3NldF92Zl92bGFuKQotCQkJCWVyciA9IG9wcy0+ bmRvX3NldF92Zl92bGFuKGRldiwgaXZ2LT52ZiwKLQkJCQkJCQkgICBpdnYtPnZsYW4sCi0JCQkJ CQkJICAgaXZ2LT5xb3MpOwotCQkJYnJlYWs7Ci0JCX0KLQkJY2FzZSBJRkxBX1ZGX1RYX1JBVEU6 IHsKLQkJCXN0cnVjdCBpZmxhX3ZmX3R4X3JhdGUgKml2dDsKLQkJCWl2dCA9IG5sYV9kYXRhKHZm KTsKLQkJCWVyciA9IC1FT1BOT1RTVVBQOwotCQkJaWYgKG9wcy0+bmRvX3NldF92Zl90eF9yYXRl KQotCQkJCWVyciA9IG9wcy0+bmRvX3NldF92Zl90eF9yYXRlKGRldiwgaXZ0LT52ZiwKLQkJCQkJ CQkgICAgICBpdnQtPnJhdGUpOwotCQkJYnJlYWs7Ci0JCX0KLQkJY2FzZSBJRkxBX1ZGX1NQT09G Q0hLOiB7Ci0JCQlzdHJ1Y3QgaWZsYV92Zl9zcG9vZmNoayAqaXZzOwotCQkJaXZzID0gbmxhX2Rh dGEodmYpOwotCQkJZXJyID0gLUVPUE5PVFNVUFA7Ci0JCQlpZiAob3BzLT5uZG9fc2V0X3ZmX3Nw b29mY2hrKQotCQkJCWVyciA9IG9wcy0+bmRvX3NldF92Zl9zcG9vZmNoayhkZXYsIGl2cy0+dmYs Ci0JCQkJCQkJICAgICAgIGl2cy0+c2V0dGluZyk7Ci0JCQlicmVhazsKLQkJfQotCQljYXNlIElG TEFfVkZfTElOS19TVEFURTogewotCQkJc3RydWN0IGlmbGFfdmZfbGlua19zdGF0ZSAqaXZsOwot CQkJaXZsID0gbmxhX2RhdGEodmYpOwotCQkJZXJyID0gLUVPUE5PVFNVUFA7Ci0JCQlpZiAob3Bz LT5uZG9fc2V0X3ZmX2xpbmtfc3RhdGUpCi0JCQkJZXJyID0gb3BzLT5uZG9fc2V0X3ZmX2xpbmtf c3RhdGUoZGV2LCBpdmwtPnZmLAotCQkJCQkJCQkgaXZsLT5saW5rX3N0YXRlKTsKLQkJCWJyZWFr OwotCQl9Ci0JCWRlZmF1bHQ6Ci0JCQllcnIgPSAtRUlOVkFMOwotCQkJYnJlYWs7Ci0JCX0KLQkJ aWYgKGVycikKLQkJCWJyZWFrOworCWlmICh0YltJRkxBX1ZGX01BQ10pIHsKKwkJc3RydWN0IGlm bGFfdmZfbWFjICppdm0gPSBubGFfZGF0YSh0YltJRkxBX1ZGX01BQ10pOworCisJCWVyciA9IC1F T1BOT1RTVVBQOworCQlpZiAob3BzLT5uZG9fc2V0X3ZmX21hYykKKwkJCWVyciA9IG9wcy0+bmRv X3NldF92Zl9tYWMoZGV2LCBpdm0tPnZmLAorCQkJCQkJICBpdm0tPm1hYyk7CisJCWlmIChlcnIg PCAwKQorCQkJcmV0dXJuIGVycjsKKwl9CisKKwlpZiAodGJbSUZMQV9WRl9WTEFOXSkgeworCQlz dHJ1Y3QgaWZsYV92Zl92bGFuICppdnYgPSBubGFfZGF0YSh0YltJRkxBX1ZGX1ZMQU5dKTsKKwor CQllcnIgPSAtRU9QTk9UU1VQUDsKKwkJaWYgKG9wcy0+bmRvX3NldF92Zl92bGFuKQorCQkJZXJy ID0gb3BzLT5uZG9fc2V0X3ZmX3ZsYW4oZGV2LCBpdnYtPnZmLCBpdnYtPnZsYW4sCisJCQkJCQkg ICBpdnYtPnFvcyk7CisJCWlmIChlcnIgPCAwKQorCQkJcmV0dXJuIGVycjsKKwl9CisKKwlpZiAo dGJbSUZMQV9WRl9UWF9SQVRFXSkgeworCQlzdHJ1Y3QgaWZsYV92Zl90eF9yYXRlICppdnQgPSBu bGFfZGF0YSh0YltJRkxBX1ZGX1RYX1JBVEVdKTsKKworCQllcnIgPSAtRU9QTk9UU1VQUDsKKwkJ aWYgKG9wcy0+bmRvX3NldF92Zl90eF9yYXRlKQorCQkJZXJyID0gb3BzLT5uZG9fc2V0X3ZmX3R4 X3JhdGUoZGV2LCBpdnQtPnZmLAorCQkJCQkJICAgICAgaXZ0LT5yYXRlKTsKKwkJaWYgKGVyciA8 IDApCisJCQlyZXR1cm4gZXJyOwogCX0KKworCWlmICh0YltJRkxBX1ZGX1NQT09GQ0hLXSkgewor CQlzdHJ1Y3QgaWZsYV92Zl9zcG9vZmNoayAqaXZzID0gbmxhX2RhdGEodGJbSUZMQV9WRl9TUE9P RkNIS10pOworCisJCWVyciA9IC1FT1BOT1RTVVBQOworCQlpZiAob3BzLT5uZG9fc2V0X3ZmX3Nw b29mY2hrKQorCQkJZXJyID0gb3BzLT5uZG9fc2V0X3ZmX3Nwb29mY2hrKGRldiwgaXZzLT52ZiwK KwkJCQkJCSAgICAgICBpdnMtPnNldHRpbmcpOworCQlpZiAoZXJyIDwgMCkKKwkJCXJldHVybiBl cnI7CisJfQorCisJaWYgKHRiW0lGTEFfVkZfTElOS19TVEFURV0pIHsKKwkJc3RydWN0IGlmbGFf dmZfbGlua19zdGF0ZSAqaXZsID0gbmxhX2RhdGEodGJbSUZMQV9WRl9MSU5LX1NUQVRFXSk7CisK KwkJZXJyID0gLUVPUE5PVFNVUFA7CisJCWlmIChvcHMtPm5kb19zZXRfdmZfbGlua19zdGF0ZSkK KwkJCWVyciA9IG9wcy0+bmRvX3NldF92Zl9saW5rX3N0YXRlKGRldiwgaXZsLT52ZiwKKwkJCQkJ CQkgaXZsLT5saW5rX3N0YXRlKTsKKwkJaWYgKGVyciA8IDApCisJCQlyZXR1cm4gZXJyOworCX0K KwogCXJldHVybiBlcnI7CiB9CiAKQEAgLTE1NzksMTQgKzE1NzQsMjEgQEAgc3RhdGljIGludCBk b19zZXRsaW5rKGNvbnN0IHN0cnVjdCBza19idWZmICpza2IsCiAJfQogCiAJaWYgKHRiW0lGTEFf VkZJTkZPX0xJU1RdKSB7CisJCXN0cnVjdCBubGF0dHIgKnZmaW5mb1tJRkxBX1ZGX01BWCArIDFd OwogCQlzdHJ1Y3QgbmxhdHRyICphdHRyOwogCQlpbnQgcmVtOworCiAJCW5sYV9mb3JfZWFjaF9u ZXN0ZWQoYXR0ciwgdGJbSUZMQV9WRklORk9fTElTVF0sIHJlbSkgewotCQkJaWYgKG5sYV90eXBl KGF0dHIpICE9IElGTEFfVkZfSU5GTykgeworCQkJaWYgKG5sYV90eXBlKGF0dHIpICE9IElGTEFf VkZfSU5GTyB8fAorCQkJICAgIG5sYV9sZW4oYXR0cikgPCBOTEFfSERSTEVOKSB7CiAJCQkJZXJy ID0gLUVJTlZBTDsKIAkJCQlnb3RvIGVycm91dDsKIAkJCX0KLQkJCWVyciA9IGRvX3NldHZmaW5m byhkZXYsIGF0dHIpOworCQkJZXJyID0gbmxhX3BhcnNlX25lc3RlZCh2ZmluZm8sIElGTEFfVkZf TUFYLCBhdHRyLAorCQkJCQkgICAgICAgaWZsYV92Zl9wb2xpY3kpOworCQkJaWYgKGVyciA8IDAp CisJCQkJZ290byBlcnJvdXQ7CisJCQllcnIgPSBkb19zZXR2ZmluZm8oZGV2LCB2ZmluZm8pOwog CQkJaWYgKGVyciA8IDApCiAJCQkJZ290byBlcnJvdXQ7CiAJCQltb2RpZmllZCA9IDE7Ci0tIAoy LjEuMAoKCkZyb20gMTI1YzQ2NTFiMjIyZjRhZWEyNDUzOTkxOWVlMWFkN2I3ZTQyYTBhMCBNb24g U2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJvbTogPT9VVEYtOD9xP1RpbW89MjBUZXI9QzM9QTRzPz0g PHRpbW8udGVyYXNAaWtpLmZpPgpEYXRlOiBUdWUsIDcgSnVsIDIwMTUgMDg6MzQ6MTMgKzAzMDAK U3ViamVjdDogW1BBVENIIDA0LzI1XSBpcF90dW5uZWw6IGZpeCBpcHY0IHBtdHUgY2hlY2sgdG8g aG9ub3IgaW5uZXIgaXAgaGVhZGVyCiBkZgpNSU1FLVZlcnNpb246IDEuMApDb250ZW50LVR5cGU6 IHRleHQvcGxhaW47IGNoYXJzZXQ9VVRGLTgKQ29udGVudC1UcmFuc2Zlci1FbmNvZGluZzogOGJp dAoKWyBVcHN0cmVhbSBjb21taXQgZmMyNGYyYjIwOTQzNjZkYTg3ODZmNTlmMjYwNjMwN2U5MzRj ZWExNyBdCgpGcmFnIG5lZWRlZCBzaG91bGQgYmUgc2VudCBvbmx5IGlmIHRoZSBpbm5lciBoZWFk ZXIgYXNrZWQKdG8gbm90IGZyYWdtZW50LiBDdXJyZW50bHkgZnJhZ21lbnRhdGlvbiBpcyBicm9r ZW4gaWYgdGhlCnR1bm5lbCBoYXMgZGYgc2V0LCBidXQgZGYgd2FzIG5vdCBhc2tlZCBpbiB0aGUg b3JpZ2luYWwKcGFja2V0LiBUaGUgdHVubmVsJ3MgZGYgbmVlZHMgdG8gYmUgc3RpbGwgY2hlY2tl ZCB0byB1cGRhdGUKaW50ZXJuYWxseSB0aGUgcG10dSBjYWNoZS4KCkNvbW1pdCAyM2EzNjQ3YmM0 ZjkzYmFjIGJyb2tlIGl0LCBhbmQgdGhpcyBjb21taXQgZml4ZXMKdGhlIGlwdjQgZGYgY2hlY2sg YmFjayB0byB0aGUgd2F5IGl0IHdhcy4KCkZpeGVzOiAyM2EzNjQ3YmM0ZjkzYmFjICgiaXBfdHVu bmVsczogVXNlIHNrYi1sZW4gdG8gUE1UVSBjaGVjay4iKQpDYzogUHJhdmluIEIgU2hlbGFyIDxw c2hlbGFyQG5pY2lyYS5jb20+ClNpZ25lZC1vZmYtYnk6IFRpbW8gVGVyw6RzIDx0aW1vLnRlcmFz QGlraS5maT4KQWNrZWQtYnk6IFByYXZpbiBCIFNoZWxhciA8cHNoZWxhckBuaWNpcmEuY29tPgpT aWduZWQtb2ZmLWJ5OiBEYXZpZCBTLiBNaWxsZXIgPGRhdmVtQGRhdmVtbG9mdC5uZXQ+Ci0tLQog bmV0L2lwdjQvaXBfdHVubmVsLmMgfCA4ICsrKysrLS0tCiAxIGZpbGUgY2hhbmdlZCwgNSBpbnNl cnRpb25zKCspLCAzIGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL25ldC9pcHY0L2lwX3R1bm5l bC5jIGIvbmV0L2lwdjQvaXBfdHVubmVsLmMKaW5kZXggMGE0YWYwOS4uMmQ0YmU2OSAxMDA2NDQK LS0tIGEvbmV0L2lwdjQvaXBfdHVubmVsLmMKKysrIGIvbmV0L2lwdjQvaXBfdHVubmVsLmMKQEAg LTQ4NCw3ICs0ODQsOCBAQCBkcm9wOgogRVhQT1JUX1NZTUJPTF9HUEwoaXBfdHVubmVsX3Jjdik7 CiAKIHN0YXRpYyBpbnQgdG5sX3VwZGF0ZV9wbXR1KHN0cnVjdCBuZXRfZGV2aWNlICpkZXYsIHN0 cnVjdCBza19idWZmICpza2IsCi0JCQkgICAgc3RydWN0IHJ0YWJsZSAqcnQsIF9fYmUxNiBkZikK KwkJCSAgICBzdHJ1Y3QgcnRhYmxlICpydCwgX19iZTE2IGRmLAorCQkJICAgIGNvbnN0IHN0cnVj dCBpcGhkciAqaW5uZXJfaXBoKQogewogCXN0cnVjdCBpcF90dW5uZWwgKnR1bm5lbCA9IG5ldGRl dl9wcml2KGRldik7CiAJaW50IHBrdF9zaXplID0gc2tiLT5sZW4gLSB0dW5uZWwtPmhsZW4gLSBk ZXYtPmhhcmRfaGVhZGVyX2xlbjsKQEAgLTUwMSw3ICs1MDIsOCBAQCBzdGF0aWMgaW50IHRubF91 cGRhdGVfcG10dShzdHJ1Y3QgbmV0X2RldmljZSAqZGV2LCBzdHJ1Y3Qgc2tfYnVmZiAqc2tiLAog CiAJaWYgKHNrYi0+cHJvdG9jb2wgPT0gaHRvbnMoRVRIX1BfSVApKSB7CiAJCWlmICghc2tiX2lz X2dzbyhza2IpICYmCi0JCSAgICAoZGYgJiBodG9ucyhJUF9ERikpICYmIG10dSA8IHBrdF9zaXpl KSB7CisJCSAgICAoaW5uZXJfaXBoLT5mcmFnX29mZiAmIGh0b25zKElQX0RGKSkgJiYKKwkJICAg IG10dSA8IHBrdF9zaXplKSB7CiAJCQltZW1zZXQoSVBDQihza2IpLCAwLCBzaXplb2YoKklQQ0Io c2tiKSkpOwogCQkJaWNtcF9zZW5kKHNrYiwgSUNNUF9ERVNUX1VOUkVBQ0gsIElDTVBfRlJBR19O RUVERUQsIGh0b25sKG10dSkpOwogCQkJcmV0dXJuIC1FMkJJRzsKQEAgLTYzMiw3ICs2MzQsNyBA QCB2b2lkIGlwX3R1bm5lbF94bWl0KHN0cnVjdCBza19idWZmICpza2IsIHN0cnVjdCBuZXRfZGV2 aWNlICpkZXYsCiAJCWdvdG8gdHhfZXJyb3I7CiAJfQogCi0JaWYgKHRubF91cGRhdGVfcG10dShk ZXYsIHNrYiwgcnQsIHRubF9wYXJhbXMtPmZyYWdfb2ZmKSkgeworCWlmICh0bmxfdXBkYXRlX3Bt dHUoZGV2LCBza2IsIHJ0LCB0bmxfcGFyYW1zLT5mcmFnX29mZiwgaW5uZXJfaXBoKSkgewogCQlp cF9ydF9wdXQocnQpOwogCQlnb3RvIHR4X2Vycm9yOwogCX0KLS0gCjIuMS4wCgoKRnJvbSAyNTE3 MTczNWQ4MDdiZTdkYTBhYjVlMTRiZTlhZTBkYjVmMWEzZjI1IE1vbiBTZXAgMTcgMDA6MDA6MDAg MjAwMQpGcm9tOiBTdGVwaGVuIFNtYWxsZXkgPHNkc0B0eWNoby5uc2EuZ292PgpEYXRlOiBUdWUs IDcgSnVsIDIwMTUgMDk6NDM6NDUgLTA0MDAKU3ViamVjdDogW1BBVENIIDA1LzI1XSBuZXQvdGlw YzogaW5pdGlhbGl6ZSBzZWN1cml0eSBzdGF0ZSBmb3IgbmV3IGNvbm5lY3Rpb24KIHNvY2tldAoK WyBVcHN0cmVhbSBjb21taXQgZmRkNzVlYThkZjM3MGYyMDZhODE2Mzc4NmU3NDcwYzEyNzdhNTA2 NCBdCgpDYWxsaW5nIGNvbm5lY3QoKSB3aXRoIGFuIEFGX1RJUEMgc29ja2V0IHdvdWxkIHRyaWdn ZXIgYSBzZXJpZXMKb2YgZXJyb3IgbWVzc2FnZXMgZnJvbSBTRUxpbnV4IGFsb25nIHRoZSBsaW5l cyBvZjoKU0VMaW51eDogSW52YWxpZCBjbGFzcyAwCnR5cGU9QVZDIG1zZz1hdWRpdCgxNDM0MTI2 NjU4LjQ4NzozNDUwMCk6IGF2YzogIGRlbmllZCAgeyA8dW5wcmludGFibGU+IH0KICBmb3IgcGlk PTI5MiBjb21tPSJrd29ya2VyL3UxNjo1IiBzY29udGV4dD1zeXN0ZW1fdTpzeXN0ZW1fcjprZXJu ZWxfdDpzMAogIHRjb250ZXh0PXN5c3RlbV91Om9iamVjdF9yOnVubGFiZWxlZF90OnMwIHRjbGFz cz08dW5wcmludGFibGU+CiAgcGVybWlzc2l2ZT0wCgpUaGlzIHdhcyBkdWUgdG8gYSBmYWlsdXJl IHRvIGluaXRpYWxpemUgdGhlIHNlY3VyaXR5IHN0YXRlIG9mIHRoZSBuZXcKY29ubmVjdGlvbiBz b2NrIGJ5IHRoZSB0aXBjIGNvZGUsIGxlYXZpbmcgaXQgd2l0aCBqdW5rIGluIHRoZSBzZWN1cml0 eQpjbGFzcyBmaWVsZCBhbmQgYW4gdW5sYWJlbGVkIHNlY2lkLiAgQWRkIGEgY2FsbCB0byBzZWN1 cml0eV9za19jbG9uZSgpCnRvIGluaGVyaXQgdGhlIHNlY3VyaXR5IHN0YXRlIGZyb20gdGhlIHBh cmVudCBzb2NrZXQuCgpSZXBvcnRlZC1ieTogVGltIFNoZWFyZXIgPHRpbS5zaGVhcmVyQG92ZXJ0 dXJlbmV0d29ya3MuY29tPgpTaWduZWQtb2ZmLWJ5OiBTdGVwaGVuIFNtYWxsZXkgPHNkc0B0eWNo by5uc2EuZ292PgpBY2tlZC1ieTogUGF1bCBNb29yZSA8cGF1bEBwYXVsLW1vb3JlLmNvbT4KQWNr ZWQtYnk6IFlpbmcgWHVlIDx5aW5nLnh1ZUB3aW5kcml2ZXIuY29tPgpTaWduZWQtb2ZmLWJ5OiBE YXZpZCBTLiBNaWxsZXIgPGRhdmVtQGRhdmVtbG9mdC5uZXQ+Ci0tLQogbmV0L3RpcGMvc29ja2V0 LmMgfCAxICsKIDEgZmlsZSBjaGFuZ2VkLCAxIGluc2VydGlvbigrKQoKZGlmZiAtLWdpdCBhL25l dC90aXBjL3NvY2tldC5jIGIvbmV0L3RpcGMvc29ja2V0LmMKaW5kZXggMGVkMGVhYS4uODMwZTQw YiAxMDA2NDQKLS0tIGEvbmV0L3RpcGMvc29ja2V0LmMKKysrIGIvbmV0L3RpcGMvc29ja2V0LmMK QEAgLTE2ODEsNiArMTY4MSw3IEBAIHN0YXRpYyBpbnQgYWNjZXB0KHN0cnVjdCBzb2NrZXQgKnNv Y2ssIHN0cnVjdCBzb2NrZXQgKm5ld19zb2NrLCBpbnQgZmxhZ3MpCiAJcmVzID0gdGlwY19za19j cmVhdGUoc29ja19uZXQoc29jay0+c2spLCBuZXdfc29jaywgMCwgMSk7CiAJaWYgKHJlcykKIAkJ Z290byBleGl0OworCXNlY3VyaXR5X3NrX2Nsb25lKHNvY2stPnNrLCBuZXdfc29jay0+c2spOwog CiAJbmV3X3NrID0gbmV3X3NvY2stPnNrOwogCW5ld190c29jayA9IHRpcGNfc2sobmV3X3NrKTsK LS0gCjIuMS4wCgoKRnJvbSA0OWY5ZThiYWVlMWRmMzliODQzZTk1OTQ0OTA4ZGQ5ZDgyNWE1YWVi IE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBOaWtvbGF5IEFsZWtzYW5kcm92IDxyYXpv ckBibGFja3dhbGwub3JnPgpEYXRlOiBUdWUsIDcgSnVsIDIwMTUgMTU6NTU6NTYgKzAyMDAKU3Vi amVjdDogW1BBVENIIDA2LzI1XSBicmlkZ2U6IG1kYjogemVybyBvdXQgdGhlIGxvY2FsIGJyX2lw IHZhcmlhYmxlIGJlZm9yZQogdXNlCgpbIFVwc3RyZWFtIGNvbW1pdCBmMTE1OGI3NGU1NGYyZTI0 NjJiYTVlMmY0NWExMTgyNDZkOWQ1YjQzIF0KClNpbmNlIGNvbW1pdCBiMGU5YTMwZGQ2NjkgKCJi cmlkZ2U6IEFkZCB2bGFuIGlkIHRvIG11bHRpY2FzdCBncm91cHMiKQp0aGVyZSdzIGEgY2hlY2sg aW4gYnJfaXBfZXF1YWwoKSBmb3IgYSBtYXRjaGluZyB2bGFuIGlkLCBidXQgdGhlIG1kYgpmdW5j dGlvbnMgd2VyZSBub3QgbW9kaWZpZWQgdG8gdXNlIChvciBhdCBsZWFzdCB6ZXJvIGl0KSBzbyB3 aGVuIGFuCmVudHJ5IHdhcyBhZGRlZCBpdCB3b3VsZCBoYXZlIGEgZ2FyYmFnZSB2bGFuIGlkIChm cm9tIHRoZSBsb2NhbCBicl9pcAp2YXJpYWJsZSBpbiBfX2JyX21kYl9hZGQvZGVsKSBhbmQgdGhp cyB3b3VsZCBwcmV2ZW50IGl0IGZyb20gYmVpbmcKbWF0Y2hlZCBhbmQgYWxzbyBkZWxldGVkLiBT byB6ZXJvIG91dCB0aGUgd2hvbGUgbG9jYWwgaXAgdmFyIHRvIHByb3RlY3QKb3Vyc2VsdmVzIGZy b20gZnV0dXJlIGNoYW5nZXMgYW5kIGFsc28gdG8gZml4IHRoZSBjdXJyZW50IGJ1Zywgc2luY2UK dGhlcmUncyBubyB2bGFuIGlkIHN1cHBvcnQgaW4gdGhlIG1kYiB1YXBpIC0gdXNlIGFsd2F5cyB2 bGFuIGlkIDAuCkV4YW1wbGUgYmVmb3JlIHBhdGNoOgpyb290QGRlYmlhbjp+IyBicmlkZ2UgbWRi IGFkZCBkZXYgYnIwIHBvcnQgZXRoMSBncnAgMjM5LjAuMC4xIHBlcm1hbmVudApyb290QGRlYmlh bjp+IyBicmlkZ2UgbWRiCmRldiBicjAgcG9ydCBldGgxIGdycCAyMzkuMC4wLjEgcGVybWFuZW50 CnJvb3RAZGViaWFuOn4jIGJyaWRnZSBtZGIgZGVsIGRldiBicjAgcG9ydCBldGgxIGdycCAyMzku MC4wLjEgcGVybWFuZW50ClJUTkVUTElOSyBhbnN3ZXJzOiBJbnZhbGlkIGFyZ3VtZW50CgpBZnRl ciBwYXRjaDoKcm9vdEBkZWJpYW46fiMgYnJpZGdlIG1kYiBhZGQgZGV2IGJyMCBwb3J0IGV0aDEg Z3JwIDIzOS4wLjAuMSBwZXJtYW5lbnQKcm9vdEBkZWJpYW46fiMgYnJpZGdlIG1kYgpkZXYgYnIw IHBvcnQgZXRoMSBncnAgMjM5LjAuMC4xIHBlcm1hbmVudApyb290QGRlYmlhbjp+IyBicmlkZ2Ug bWRiIGRlbCBkZXYgYnIwIHBvcnQgZXRoMSBncnAgMjM5LjAuMC4xIHBlcm1hbmVudApyb290QGRl Ymlhbjp+IyBicmlkZ2UgbWRiCgpTaWduZWQtb2ZmLWJ5OiBOaWtvbGF5IEFsZWtzYW5kcm92IDxy YXpvckBibGFja3dhbGwub3JnPgpGaXhlczogYjBlOWEzMGRkNjY5ICgiYnJpZGdlOiBBZGQgdmxh biBpZCB0byBtdWx0aWNhc3QgZ3JvdXBzIikKU2lnbmVkLW9mZi1ieTogRGF2aWQgUy4gTWlsbGVy IDxkYXZlbUBkYXZlbWxvZnQubmV0PgotLS0KIG5ldC9icmlkZ2UvYnJfbWRiLmMgfCAyICsrCiAx IGZpbGUgY2hhbmdlZCwgMiBpbnNlcnRpb25zKCspCgpkaWZmIC0tZ2l0IGEvbmV0L2JyaWRnZS9i cl9tZGIuYyBiL25ldC9icmlkZ2UvYnJfbWRiLmMKaW5kZXggYjdiMTkxNC4uMTM0MjFiZiAxMDA2 NDQKLS0tIGEvbmV0L2JyaWRnZS9icl9tZGIuYworKysgYi9uZXQvYnJpZGdlL2JyX21kYi5jCkBA IC0zNzAsNiArMzcwLDcgQEAgc3RhdGljIGludCBfX2JyX21kYl9hZGQoc3RydWN0IG5ldCAqbmV0 LCBzdHJ1Y3QgbmV0X2JyaWRnZSAqYnIsCiAJaWYgKCFwIHx8IHAtPmJyICE9IGJyIHx8IHAtPnN0 YXRlID09IEJSX1NUQVRFX0RJU0FCTEVEKQogCQlyZXR1cm4gLUVJTlZBTDsKIAorCW1lbXNldCgm aXAsIDAsIHNpemVvZihpcCkpOwogCWlwLnByb3RvID0gZW50cnktPmFkZHIucHJvdG87CiAJaWYg KGlwLnByb3RvID09IGh0b25zKEVUSF9QX0lQKSkKIAkJaXAudS5pcDQgPSBlbnRyeS0+YWRkci51 LmlwNDsKQEAgLTQxNiw2ICs0MTcsNyBAQCBzdGF0aWMgaW50IF9fYnJfbWRiX2RlbChzdHJ1Y3Qg bmV0X2JyaWRnZSAqYnIsIHN0cnVjdCBicl9tZGJfZW50cnkgKmVudHJ5KQogCWlmICghbmV0aWZf cnVubmluZyhici0+ZGV2KSB8fCBici0+bXVsdGljYXN0X2Rpc2FibGVkKQogCQlyZXR1cm4gLUVJ TlZBTDsKIAorCW1lbXNldCgmaXAsIDAsIHNpemVvZihpcCkpOwogCWlwLnByb3RvID0gZW50cnkt PmFkZHIucHJvdG87CiAJaWYgKGlwLnByb3RvID09IGh0b25zKEVUSF9QX0lQKSkgewogCQlpZiAo dGltZXJfcGVuZGluZygmYnItPmlwNF9xdWVyaWVyLnRpbWVyKSkKLS0gCjIuMS4wCgoKRnJvbSBk NzBjMmE1MjA2ODJiMjI3ODk3MWM1OGM2NjMyZGE1M2Q2M2NhYTRhIE1vbiBTZXAgMTcgMDA6MDA6 MDAgMjAwMQpGcm9tOiBPbGVnIE5lc3Rlcm92IDxvbGVnQHJlZGhhdC5jb20+CkRhdGU6IFdlZCwg OCBKdWwgMjAxNSAyMTo0MjoxMSArMDIwMApTdWJqZWN0OiBbUEFUQ0ggMDcvMjVdIG5ldDogcGt0 Z2VuOiBmaXggcmFjZSBiZXR3ZWVuIHBrdGdlbl90aHJlYWRfd29ya2VyKCkKIGFuZCBrdGhyZWFk X3N0b3AoKQoKWyBVcHN0cmVhbSBjb21taXQgZmVjZGY4YmUyZDkxZTA0YjBhOWE0Zjc5ZmYwNjQ5 OWEzNmY1ZDE0ZiBdCgpwa3RnZW5fdGhyZWFkX3dvcmtlcigpIGlzIG9idmlvdXNseSByYWN5LCBr dGhyZWFkX3N0b3AoKSBjYW4gY29tZQpiZXR3ZWVuIHRoZSBrdGhyZWFkX3Nob3VsZF9zdG9wKCkg Y2hlY2sgYW5kIHNldF9jdXJyZW50X3N0YXRlKCkuCgpTaWduZWQtb2ZmLWJ5OiBPbGVnIE5lc3Rl cm92IDxvbGVnQHJlZGhhdC5jb20+ClJlcG9ydGVkLWJ5OiBKYW4gU3RhbmNlayA8anN0YW5jZWtA cmVkaGF0LmNvbT4KUmVwb3J0ZWQtYnk6IE1hcmNlbG8gTGVpdG5lciA8bWxlaXRuZXJAcmVkaGF0 LmNvbT4KU2lnbmVkLW9mZi1ieTogRGF2aWQgUy4gTWlsbGVyIDxkYXZlbUBkYXZlbWxvZnQubmV0 PgotLS0KIG5ldC9jb3JlL3BrdGdlbi5jIHwgNCArKystCiAxIGZpbGUgY2hhbmdlZCwgMyBpbnNl cnRpb25zKCspLCAxIGRlbGV0aW9uKC0pCgpkaWZmIC0tZ2l0IGEvbmV0L2NvcmUvcGt0Z2VuLmMg Yi9uZXQvY29yZS9wa3RnZW4uYwppbmRleCBjYTY4ZDMyLi5kYmQ3OTdhIDEwMDY0NAotLS0gYS9u ZXQvY29yZS9wa3RnZW4uYworKysgYi9uZXQvY29yZS9wa3RnZW4uYwpAQCAtMzQ2NCw4ICszNDY0 LDEwIEBAIHN0YXRpYyBpbnQgcGt0Z2VuX3RocmVhZF93b3JrZXIodm9pZCAqYXJnKQogCXBrdGdl bl9yZW1fdGhyZWFkKHQpOwogCiAJLyogV2FpdCBmb3Iga3RocmVhZF9zdG9wICovCi0Jd2hpbGUg KCFrdGhyZWFkX3Nob3VsZF9zdG9wKCkpIHsKKwlmb3IgKDs7KSB7CiAJCXNldF9jdXJyZW50X3N0 YXRlKFRBU0tfSU5URVJSVVBUSUJMRSk7CisJCWlmIChrdGhyZWFkX3Nob3VsZF9zdG9wKCkpCisJ CQlicmVhazsKIAkJc2NoZWR1bGUoKTsKIAl9CiAJX19zZXRfY3VycmVudF9zdGF0ZShUQVNLX1JV Tk5JTkcpOwotLSAKMi4xLjAKCgpGcm9tIDQzZjQ3MGRlZjg4M2QxZTllMTZkNDBkNjY1NjhiZjM5 MmZiZDg3MWEgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCkZyb206IEp1bGlhbiBBbmFzdGFzb3Yg PGphQHNzaS5iZz4KRGF0ZTogVGh1LCA5IEp1bCAyMDE1IDA5OjU5OjA5ICswMzAwClN1YmplY3Q6 IFtQQVRDSCAwOC8yNV0gbmV0OiBkbyBub3QgcHJvY2VzcyBkZXZpY2UgYmFja2xvZyBkdXJpbmcK IHVucmVnaXN0cmF0aW9uCgpbIFVwc3RyZWFtIGNvbW1pdCBlOWU0ZGQzMjY3ZDBjNTIzNGM1YzBm NDc0NDA0NTZiMTA4NzVkZWM5IF0KCmNvbW1pdCAzODFjNzU5ZDk5MTYgKCJpcHY0OiBBdm9pZCBj cmFzaGluZyBpbiBpcF9lcnJvciIpCmZpeGVzIGEgcHJvYmxlbSB3aGVyZSBwcm9jZXNzZWQgcGFj a2V0IGNvbWVzIGZyb20gZGV2aWNlCndpdGggZGVzdHJveWVkIGluZXRkZXYgKGRldi0+aXBfcHRy KS4gVGhpcyBpcyBub3QgZXhwZWN0ZWQKYmVjYXVzZSBpbmV0ZGV2X2Rlc3Ryb3kgaXMgY2FsbGVk IGluIE5FVERFVl9VTlJFR0lTVEVSCnBoYXNlIGFuZCBwYWNrZXRzIHNob3VsZCBub3QgYmUgcHJv Y2Vzc2VkIGFmdGVyCmRldl9jbG9zZV9tYW55KCkgYW5kIHN5bmNocm9uaXplX25ldCgpLiBBYm92 ZSBmaXggaXMgc3RpbGwKcmVxdWlyZWQgYmVjYXVzZSBpbmV0ZGV2X2Rlc3Ryb3kgY2FuIGJlIGNh bGxlZCBmb3Igb3RoZXIKcmVhc29ucy4gQnV0IGl0IHNob3dzIHRoZSByZWFsIHByb2JsZW06IGJh Y2tsb2cgY2FuIGtlZXAKcGFja2V0cyBmb3IgbG9uZyB0aW1lIGFuZCB0aGV5IGRvIG5vdCBob2xk IHJlZmVyZW5jZSB0bwpkZXZpY2UuIFN1Y2ggcGFja2V0cyBhcmUgdGhlbiBkZWxpdmVyZWQgdG8g dXBwZXIgbGV2ZWxzCmF0IHRoZSBzYW1lIHRpbWUgd2hlbiBkZXZpY2UgaXMgdW5yZWdpc3RlcmVk LgpDYWxsaW5nIGZsdXNoX2JhY2tsb2cgYWZ0ZXIgTkVUREVWX1VOUkVHSVNURVJfRklOQUwgc3Rp bGwKYWNjb3VudHMgYWxsIHBhY2tldHMgZnJvbSBiYWNrbG9nIGJ1dCBiZWZvcmUgdGhhdCBzb21l IHBhY2tldHMKY29udGludWUgdG8gYmUgZGVsaXZlcmVkIHRvIHVwcGVyIGxldmVscyBsb25nIGFm dGVyIHRoZQpzeW5jaHJvbml6ZV9uZXQgY2FsbCB3aGljaCBpcyBzdXBwb3NlZCB0byB3YWl0IHRo ZSBsYXN0Cm9uZXMuIEFsc28sIGFzIEVyaWMgcG9pbnRlZCBvdXQsIHByb2Nlc3NlZCBwYWNrZXRz LCBtb3N0bHkKZnJvbSBvdGhlciBkZXZpY2VzLCBjYW4gY29udGludWUgdG8gYWRkIG5ldyBwYWNr ZXRzIHRvIGJhY2tsb2cuCgpGaXggdGhlIHByb2JsZW0gYnkgbW92aW5nIGZsdXNoX2JhY2tsb2cg ZWFybHksIGFmdGVyIHRoZQpkZXZpY2UgZHJpdmVyIGlzIHN0b3BwZWQgYW5kIGJlZm9yZSB0aGUg c3luY2hyb25pemVfbmV0KCkgY2FsbC4KVGhlbiB1c2UgbmV0aWZfcnVubmluZyBjaGVjayB0byBt YWtlIHN1cmUgd2UgZG8gbm90IGFkZCBtb3JlCnBhY2tldHMgdG8gYmFja2xvZy4gV2UgaGF2ZSB0 byBkbyBpdCBpbiBlbnF1ZXVlX3RvX2JhY2tsb2cKY29udGV4dCB3aGVuIHRoZSBsb2NhbCBJUlEg aXMgZGlzYWJsZWQuIEFzIHJlc3VsdCwgYWZ0ZXIgdGhlCmZsdXNoX2JhY2tsb2cgYW5kIHN5bmNo cm9uaXplX25ldCBzZXF1ZW5jZSBhbGwgcGFja2V0cwpzaG91bGQgYmUgYWNjb3VudGVkLgoKVGhh bmtzIHRvIEVyaWMgVy4gQmllZGVybWFuIGZvciB0aGUgdGVzdCBzY3JpcHQgYW5kIGhpcwp2YWx1 YWJsZSBmZWVkYmFjayEKClJlcG9ydGVkLWJ5OiBWaXR0b3JpbyBHYW1iYWxldHRhIDxsaW51eGJ1 Z3NAdml0dGdhbS5uZXQ+CkZpeGVzOiA2ZTU4M2NlNTI0MmYgKCJuZXQ6IGVsaW1pbmF0ZSByZWZj b3VudGluZyBpbiBiYWNrbG9nIHF1ZXVlIikKQ2M6IEVyaWMgVy4gQmllZGVybWFuIDxlYmllZGVy bUB4bWlzc2lvbi5jb20+CkNjOiBTdGVwaGVuIEhlbW1pbmdlciA8c3RlcGhlbkBuZXR3b3JrcGx1 bWJlci5vcmc+ClNpZ25lZC1vZmYtYnk6IEp1bGlhbiBBbmFzdGFzb3YgPGphQHNzaS5iZz4KU2ln bmVkLW9mZi1ieTogRGF2aWQgUy4gTWlsbGVyIDxkYXZlbUBkYXZlbWxvZnQubmV0PgotLS0KIG5l dC9jb3JlL2Rldi5jIHwgNiArKysrLS0KIDEgZmlsZSBjaGFuZ2VkLCA0IGluc2VydGlvbnMoKyks IDIgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvbmV0L2NvcmUvZGV2LmMgYi9uZXQvY29yZS9k ZXYuYwppbmRleCBiZmI1NmMwLi4xZmUwN2IyIDEwMDY0NAotLS0gYS9uZXQvY29yZS9kZXYuYwor KysgYi9uZXQvY29yZS9kZXYuYwpAQCAtMzIxNCw2ICszMjE0LDggQEAgc3RhdGljIGludCBlbnF1 ZXVlX3RvX2JhY2tsb2coc3RydWN0IHNrX2J1ZmYgKnNrYiwgaW50IGNwdSwKIAlsb2NhbF9pcnFf c2F2ZShmbGFncyk7CiAKIAlycHNfbG9jayhzZCk7CisJaWYgKCFuZXRpZl9ydW5uaW5nKHNrYi0+ ZGV2KSkKKwkJZ290byBkcm9wOwogCXFsZW4gPSBza2JfcXVldWVfbGVuKCZzZC0+aW5wdXRfcGt0 X3F1ZXVlKTsKIAlpZiAocWxlbiA8PSBuZXRkZXZfbWF4X2JhY2tsb2cgJiYgIXNrYl9mbG93X2xp bWl0KHNrYiwgcWxlbikpIHsKIAkJaWYgKHNrYl9xdWV1ZV9sZW4oJnNkLT5pbnB1dF9wa3RfcXVl dWUpKSB7CkBAIC0zMjM1LDYgKzMyMzcsNyBAQCBlbnF1ZXVlOgogCQlnb3RvIGVucXVldWU7CiAJ fQogCitkcm9wOgogCXNkLT5kcm9wcGVkKys7CiAJcnBzX3VubG9jayhzZCk7CiAKQEAgLTU2OTQs NiArNTY5Nyw3IEBAIHN0YXRpYyB2b2lkIHJvbGxiYWNrX3JlZ2lzdGVyZWRfbWFueShzdHJ1Y3Qg bGlzdF9oZWFkICpoZWFkKQogCQl1bmxpc3RfbmV0ZGV2aWNlKGRldik7CiAKIAkJZGV2LT5yZWdf c3RhdGUgPSBORVRSRUdfVU5SRUdJU1RFUklORzsKKwkJb25fZWFjaF9jcHUoZmx1c2hfYmFja2xv ZywgZGV2LCAxKTsKIAl9CiAKIAlzeW5jaHJvbml6ZV9uZXQoKTsKQEAgLTYzMTAsOCArNjMxNCw2 IEBAIHZvaWQgbmV0ZGV2X3J1bl90b2RvKHZvaWQpCiAKIAkJZGV2LT5yZWdfc3RhdGUgPSBORVRS RUdfVU5SRUdJU1RFUkVEOwogCi0JCW9uX2VhY2hfY3B1KGZsdXNoX2JhY2tsb2csIGRldiwgMSk7 Ci0KIAkJbmV0ZGV2X3dhaXRfYWxscmVmcyhkZXYpOwogCiAJCS8qIHBhcmFub2lhICovCi0tIAoy LjEuMAoKCkZyb20gZTVjMjhlZTJlMjlmMTViMzQ0ZTA5ZDdiZmUwOGViZjI1ZjRhOTMyMCBNb24g U2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJvbTogSnVsaWFuIEFuYXN0YXNvdiA8amFAc3NpLmJnPgpE YXRlOiBUaHUsIDkgSnVsIDIwMTUgMDk6NTk6MTAgKzAzMDAKU3ViamVjdDogW1BBVENIIDA5LzI1 XSBuZXQ6IGNhbGwgcmN1X3JlYWRfbG9jayBlYXJseSBpbiBwcm9jZXNzX2JhY2tsb2cKClsgVXBz dHJlYW0gY29tbWl0IDJjMTdkMjdjMzZkY2NlMmI2YmY2ODlmNDFhNDZiOWU5MDk4NzdjMjEgXQoK SW5jb21pbmcgcGFja2V0IHNob3VsZCBiZSBlaXRoZXIgaW4gYmFja2xvZyBxdWV1ZSBvcgppbiBS Q1UgcmVhZC1zaWRlIHNlY3Rpb24uIE90aGVyd2lzZSwgdGhlIGZpbmFsIHNlcXVlbmNlIG9mCmZs dXNoX2JhY2tsb2coKSBhbmQgc3luY2hyb25pemVfbmV0KCkgbWF5IG1pc3MgcGFja2V0cwp0aGF0 IGNhbiBydW4gd2l0aG91dCBkZXZpY2UgcmVmZXJlbmNlOgoKQ1BVIDEgICAgICAgICAgICAgICAg ICBDUFUgMgogICAgICAgICAgICAgICAgICAgICAgIHNrYi0+ZGV2OiBubyByZWZlcmVuY2UKICAg ICAgICAgICAgICAgICAgICAgICBwcm9jZXNzX2JhY2tsb2c6X19za2JfZGVxdWV1ZQogICAgICAg ICAgICAgICAgICAgICAgIHByb2Nlc3NfYmFja2xvZzpsb2NhbF9pcnFfZW5hYmxlCgpvbl9lYWNo X2NwdSBmb3IKZmx1c2hfYmFja2xvZyA9PiAgICAgICBJUEkoaGFyZGlycSk6IGZsdXNoX2JhY2ts b2cKICAgICAgICAgICAgICAgICAgICAgICAtIHBhY2tldCBub3QgZm91bmQgaW4gYmFja2xvZwoK ICAgICAgICAgICAgICAgICAgICAgICBDUFUgZGVsYXllZCAuLi4Kc3luY2hyb25pemVfbmV0Ci0g bm8gb25nb2luZyBSQ1UKcmVhZC1zaWRlIHNlY3Rpb25zCgpuZXRkZXZfcnVuX3RvZG8sCnJjdV9i YXJyaWVyOiBubwpvbmdvaW5nIGNhbGxiYWNrcwogICAgICAgICAgICAgICAgICAgICAgIF9fbmV0 aWZfcmVjZWl2ZV9za2JfY29yZTpyY3VfcmVhZF9sb2NrCiAgICAgICAgICAgICAgICAgICAgICAg LSB0b28gbGF0ZQpmcmVlIGRldgogICAgICAgICAgICAgICAgICAgICAgIHByb2Nlc3MgcGFja2V0 IGZvciBmcmVlZCBkZXYKCkZpeGVzOiA2ZTU4M2NlNTI0MmYgKCJuZXQ6IGVsaW1pbmF0ZSByZWZj b3VudGluZyBpbiBiYWNrbG9nIHF1ZXVlIikKQ2M6IEVyaWMgVy4gQmllZGVybWFuIDxlYmllZGVy bUB4bWlzc2lvbi5jb20+CkNjOiBTdGVwaGVuIEhlbW1pbmdlciA8c3RlcGhlbkBuZXR3b3JrcGx1 bWJlci5vcmc+ClNpZ25lZC1vZmYtYnk6IEp1bGlhbiBBbmFzdGFzb3YgPGphQHNzaS5iZz4KU2ln bmVkLW9mZi1ieTogRGF2aWQgUy4gTWlsbGVyIDxkYXZlbUBkYXZlbWxvZnQubmV0PgotLS0KIG5l dC9jb3JlL2Rldi5jIHwgMjkgKysrKysrKysrKysrKystLS0tLS0tLS0tLS0tLS0KIDEgZmlsZSBj aGFuZ2VkLCAxNCBpbnNlcnRpb25zKCspLCAxNSBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9u ZXQvY29yZS9kZXYuYyBiL25ldC9jb3JlL2Rldi5jCmluZGV4IDFmZTA3YjIuLmFlMzI2MGYgMTAw NjQ0Ci0tLSBhL25ldC9jb3JlL2Rldi5jCisrKyBiL25ldC9jb3JlL2Rldi5jCkBAIC0zNTU0LDgg KzM1NTQsNiBAQCBzdGF0aWMgaW50IF9fbmV0aWZfcmVjZWl2ZV9za2JfY29yZShzdHJ1Y3Qgc2tf YnVmZiAqc2tiLCBib29sIHBmbWVtYWxsb2MpCiAKIAlwdF9wcmV2ID0gTlVMTDsKIAotCXJjdV9y ZWFkX2xvY2soKTsKLQogYW5vdGhlcl9yb3VuZDoKIAlza2ItPnNrYl9paWYgPSBza2ItPmRldi0+ aWZpbmRleDsKIApAQCAtMzU2NSw3ICszNTYzLDcgQEAgYW5vdGhlcl9yb3VuZDoKIAkgICAgc2ti LT5wcm90b2NvbCA9PSBjcHVfdG9fYmUxNihFVEhfUF84MDIxQUQpKSB7CiAJCXNrYiA9IHNrYl92 bGFuX3VudGFnKHNrYik7CiAJCWlmICh1bmxpa2VseSghc2tiKSkKLQkJCWdvdG8gdW5sb2NrOwor CQkJZ290byBvdXQ7CiAJfQogCiAjaWZkZWYgQ09ORklHX05FVF9DTFNfQUNUCkBAIC0zNTkwLDcg KzM1ODgsNyBAQCBza2lwX3RhcHM6CiAjaWZkZWYgQ09ORklHX05FVF9DTFNfQUNUCiAJc2tiID0g aGFuZGxlX2luZyhza2IsICZwdF9wcmV2LCAmcmV0LCBvcmlnX2Rldik7CiAJaWYgKCFza2IpCi0J CWdvdG8gdW5sb2NrOworCQlnb3RvIG91dDsKIG5jbHM6CiAjZW5kaWYKIApAQCAtMzYwNSw3ICsz NjAzLDcgQEAgbmNsczoKIAkJaWYgKHZsYW5fZG9fcmVjZWl2ZSgmc2tiKSkKIAkJCWdvdG8gYW5v dGhlcl9yb3VuZDsKIAkJZWxzZSBpZiAodW5saWtlbHkoIXNrYikpCi0JCQlnb3RvIHVubG9jazsK KwkJCWdvdG8gb3V0OwogCX0KIAogCXJ4X2hhbmRsZXIgPSByY3VfZGVyZWZlcmVuY2Uoc2tiLT5k ZXYtPnJ4X2hhbmRsZXIpOwpAQCAtMzYxNyw3ICszNjE1LDcgQEAgbmNsczoKIAkJc3dpdGNoIChy eF9oYW5kbGVyKCZza2IpKSB7CiAJCWNhc2UgUlhfSEFORExFUl9DT05TVU1FRDoKIAkJCXJldCA9 IE5FVF9SWF9TVUNDRVNTOwotCQkJZ290byB1bmxvY2s7CisJCQlnb3RvIG91dDsKIAkJY2FzZSBS WF9IQU5ETEVSX0FOT1RIRVI6CiAJCQlnb3RvIGFub3RoZXJfcm91bmQ7CiAJCWNhc2UgUlhfSEFO RExFUl9FWEFDVDoKQEAgLTM2NjksOCArMzY2Nyw2IEBAIGRyb3A6CiAJCXJldCA9IE5FVF9SWF9E Uk9QOwogCX0KIAotdW5sb2NrOgotCXJjdV9yZWFkX3VubG9jaygpOwogb3V0OgogCXJldHVybiBy ZXQ7CiB9CkBAIC0zNzAyLDI5ICszNjk4LDMwIEBAIHN0YXRpYyBpbnQgX19uZXRpZl9yZWNlaXZl X3NrYihzdHJ1Y3Qgc2tfYnVmZiAqc2tiKQogCiBzdGF0aWMgaW50IG5ldGlmX3JlY2VpdmVfc2ti X2ludGVybmFsKHN0cnVjdCBza19idWZmICpza2IpCiB7CisJaW50IHJldDsKKwogCW5ldF90aW1l c3RhbXBfY2hlY2sobmV0ZGV2X3RzdGFtcF9wcmVxdWV1ZSwgc2tiKTsKIAogCWlmIChza2JfZGVm ZXJfcnhfdGltZXN0YW1wKHNrYikpCiAJCXJldHVybiBORVRfUlhfU1VDQ0VTUzsKIAorCXJjdV9y ZWFkX2xvY2soKTsKKwogI2lmZGVmIENPTkZJR19SUFMKIAlpZiAoc3RhdGljX2tleV9mYWxzZSgm cnBzX25lZWRlZCkpIHsKIAkJc3RydWN0IHJwc19kZXZfZmxvdyB2b2lkZmxvdywgKnJmbG93ID0g JnZvaWRmbG93OwotCQlpbnQgY3B1LCByZXQ7Ci0KLQkJcmN1X3JlYWRfbG9jaygpOwotCi0JCWNw dSA9IGdldF9ycHNfY3B1KHNrYi0+ZGV2LCBza2IsICZyZmxvdyk7CisJCWludCBjcHUgPSBnZXRf cnBzX2NwdShza2ItPmRldiwgc2tiLCAmcmZsb3cpOwogCiAJCWlmIChjcHUgPj0gMCkgewogCQkJ cmV0ID0gZW5xdWV1ZV90b19iYWNrbG9nKHNrYiwgY3B1LCAmcmZsb3ctPmxhc3RfcXRhaWwpOwog CQkJcmN1X3JlYWRfdW5sb2NrKCk7CiAJCQlyZXR1cm4gcmV0OwogCQl9Ci0JCXJjdV9yZWFkX3Vu bG9jaygpOwogCX0KICNlbmRpZgotCXJldHVybiBfX25ldGlmX3JlY2VpdmVfc2tiKHNrYik7CisJ cmV0ID0gX19uZXRpZl9yZWNlaXZlX3NrYihza2IpOworCXJjdV9yZWFkX3VubG9jaygpOworCXJl dHVybiByZXQ7CiB9CiAKIC8qKgpAQCAtNDE4NSw4ICs0MTgyLDEwIEBAIHN0YXRpYyBpbnQgcHJv Y2Vzc19iYWNrbG9nKHN0cnVjdCBuYXBpX3N0cnVjdCAqbmFwaSwgaW50IHF1b3RhKQogCQl1bnNp Z25lZCBpbnQgcWxlbjsKIAogCQl3aGlsZSAoKHNrYiA9IF9fc2tiX2RlcXVldWUoJnNkLT5wcm9j ZXNzX3F1ZXVlKSkpIHsKKwkJCXJjdV9yZWFkX2xvY2soKTsKIAkJCWxvY2FsX2lycV9lbmFibGUo KTsKIAkJCV9fbmV0aWZfcmVjZWl2ZV9za2Ioc2tiKTsKKwkJCXJjdV9yZWFkX3VubG9jaygpOwog CQkJbG9jYWxfaXJxX2Rpc2FibGUoKTsKIAkJCWlucHV0X3F1ZXVlX2hlYWRfaW5jcihzZCk7CiAJ CQlpZiAoKyt3b3JrID49IHF1b3RhKSB7Ci0tIAoyLjEuMAoKCkZyb20gMWRiNzRmY2ZlODgyMGNj OWZkMmIzOTUzNzAwNmUyOTU5ZWIxMGIyMCBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJvbTog SGVyYmVydCBYdSA8aGVyYmVydEBnb25kb3IuYXBhbmEub3JnLmF1PgpEYXRlOiBNb24sIDEzIEp1 bCAyMDE1IDE2OjA0OjEzICswODAwClN1YmplY3Q6IFtQQVRDSCAxMC8yNV0gbmV0OiBDbG9uZSBz a2IgYmVmb3JlIHNldHRpbmcgcGVla2VkIGZsYWcKClsgVXBzdHJlYW0gY29tbWl0IDczOGFjMWVi Yjk2ZDAyZTBkMjNiYzMyMDMwMmE2ZWE5NGM2MTJkZWMgXQoKU2hhcmVkIHNrYnMgbXVzdCBub3Qg YmUgbW9kaWZpZWQgYW5kIHRoaXMgaXMgY3J1Y2lhbCBmb3IgYnJvYWRjYXN0CmFuZC9vciBtdWx0 aWNhc3QgcGF0aHMgd2hlcmUgd2UgdXNlIGl0IGFzIGFuIG9wdGltaXNhdGlvbiB0byBhdm9pZAp1 bm5lY2Vzc2FyeSBjbG9uaW5nLgoKVGhlIGZ1bmN0aW9uIHNrYl9yZWN2X2RhdGFncmFtIGJyZWFr cyB0aGlzIHJ1bGUgYnkgc2V0dGluZyBwZWVrZWQKd2l0aG91dCBjbG9uaW5nIHRoZSBza2IgZmly c3QuICBUaGlzIGNhdXNlcyBmdW5reSByYWNlcyB3aGljaCBsZWFkcwp0byBkb3VibGUtZnJlZS4K ClRoaXMgcGF0Y2ggZml4ZXMgdGhpcyBieSBjbG9uaW5nIHRoZSBza2IgYW5kIHJlcGxhY2luZyB0 aGUgc2tiCmluIHRoZSBsaXN0IHdoZW4gc2V0dGluZyBza2ItPnBlZWtlZC4KCkZpeGVzOiBhNTkz MjJiZTA3YzkgKCJbVURQXTogT25seSBpbmNyZW1lbnQgY291bnRlciBvbiBmaXJzdCBwZWVrL3Jl Y3YiKQpSZXBvcnRlZC1ieTogS29uc3RhbnRpbiBLaGxlYm5pa292IDxraGxlYm5pa292QHlhbmRl eC10ZWFtLnJ1PgpTaWduZWQtb2ZmLWJ5OiBIZXJiZXJ0IFh1IDxoZXJiZXJ0QGdvbmRvci5hcGFu YS5vcmcuYXU+ClNpZ25lZC1vZmYtYnk6IERhdmlkIFMuIE1pbGxlciA8ZGF2ZW1AZGF2ZW1sb2Z0 Lm5ldD4KLS0tCiBuZXQvY29yZS9kYXRhZ3JhbS5jIHwgNDEgKysrKysrKysrKysrKysrKysrKysr KysrKysrKysrKysrKysrKystLS0KIDEgZmlsZSBjaGFuZ2VkLCAzOCBpbnNlcnRpb25zKCspLCAz IGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL25ldC9jb3JlL2RhdGFncmFtLmMgYi9uZXQvY29y ZS9kYXRhZ3JhbS5jCmluZGV4IGExNmVkN2IuLjdmNmY5MjkgMTAwNjQ0Ci0tLSBhL25ldC9jb3Jl L2RhdGFncmFtLmMKKysrIGIvbmV0L2NvcmUvZGF0YWdyYW0uYwpAQCAtMTMwLDYgKzEzMCwzNSBA QCBvdXRfbm9lcnI6CiAJZ290byBvdXQ7CiB9CiAKK3N0YXRpYyBpbnQgc2tiX3NldF9wZWVrZWQo c3RydWN0IHNrX2J1ZmYgKnNrYikKK3sKKwlzdHJ1Y3Qgc2tfYnVmZiAqbnNrYjsKKworCWlmIChz a2ItPnBlZWtlZCkKKwkJcmV0dXJuIDA7CisKKwkvKiBXZSBoYXZlIHRvIHVuc2hhcmUgYW4gc2ti IGJlZm9yZSBtb2RpZnlpbmcgaXQuICovCisJaWYgKCFza2Jfc2hhcmVkKHNrYikpCisJCWdvdG8g ZG9uZTsKKworCW5za2IgPSBza2JfY2xvbmUoc2tiLCBHRlBfQVRPTUlDKTsKKwlpZiAoIW5za2Ip CisJCXJldHVybiAtRU5PTUVNOworCisJc2tiLT5wcmV2LT5uZXh0ID0gbnNrYjsKKwlza2ItPm5l eHQtPnByZXYgPSBuc2tiOworCW5za2ItPnByZXYgPSBza2ItPnByZXY7CisJbnNrYi0+bmV4dCA9 IHNrYi0+bmV4dDsKKworCWNvbnN1bWVfc2tiKHNrYik7CisJc2tiID0gbnNrYjsKKworZG9uZToK Kwlza2ItPnBlZWtlZCA9IDE7CisKKwlyZXR1cm4gMDsKK30KKwogLyoqCiAgKglfX3NrYl9yZWN2 X2RhdGFncmFtIC0gUmVjZWl2ZSBhIGRhdGFncmFtIHNrYnVmZgogICoJQHNrOiBzb2NrZXQKQEAg LTE2NCw3ICsxOTMsOSBAQCBvdXRfbm9lcnI6CiBzdHJ1Y3Qgc2tfYnVmZiAqX19za2JfcmVjdl9k YXRhZ3JhbShzdHJ1Y3Qgc29jayAqc2ssIHVuc2lnbmVkIGludCBmbGFncywKIAkJCQkgICAgaW50 ICpwZWVrZWQsIGludCAqb2ZmLCBpbnQgKmVycikKIHsKKwlzdHJ1Y3Qgc2tfYnVmZl9oZWFkICpx dWV1ZSA9ICZzay0+c2tfcmVjZWl2ZV9xdWV1ZTsKIAlzdHJ1Y3Qgc2tfYnVmZiAqc2tiLCAqbGFz dDsKKwl1bnNpZ25lZCBsb25nIGNwdV9mbGFnczsKIAlsb25nIHRpbWVvOwogCS8qCiAJICogQ2Fs bGVyIGlzIGFsbG93ZWQgbm90IHRvIGNoZWNrIHNrLT5za19lcnIgYmVmb3JlIHNrYl9yZWN2X2Rh dGFncmFtKCkKQEAgLTE4Myw4ICsyMTQsNiBAQCBzdHJ1Y3Qgc2tfYnVmZiAqX19za2JfcmVjdl9k YXRhZ3JhbShzdHJ1Y3Qgc29jayAqc2ssIHVuc2lnbmVkIGludCBmbGFncywKIAkJICogTG9vayBh dCBjdXJyZW50IG5mcyBjbGllbnQgYnkgdGhlIHdheS4uLgogCQkgKiBIb3dldmVyLCB0aGlzIGZ1 bmN0aW9uIHdhcyBjb3JyZWN0IGluIGFueSBjYXNlLiA4KQogCQkgKi8KLQkJdW5zaWduZWQgbG9u ZyBjcHVfZmxhZ3M7Ci0JCXN0cnVjdCBza19idWZmX2hlYWQgKnF1ZXVlID0gJnNrLT5za19yZWNl aXZlX3F1ZXVlOwogCQlpbnQgX29mZiA9ICpvZmY7CiAKIAkJbGFzdCA9IChzdHJ1Y3Qgc2tfYnVm ZiAqKXF1ZXVlOwpAQCAtMTk4LDcgKzIyNywxMSBAQCBzdHJ1Y3Qgc2tfYnVmZiAqX19za2JfcmVj dl9kYXRhZ3JhbShzdHJ1Y3Qgc29jayAqc2ssIHVuc2lnbmVkIGludCBmbGFncywKIAkJCQkJX29m ZiAtPSBza2ItPmxlbjsKIAkJCQkJY29udGludWU7CiAJCQkJfQotCQkJCXNrYi0+cGVla2VkID0g MTsKKworCQkJCWVycm9yID0gc2tiX3NldF9wZWVrZWQoc2tiKTsKKwkJCQlpZiAoZXJyb3IpCisJ CQkJCWdvdG8gdW5sb2NrX2VycjsKKwogCQkJCWF0b21pY19pbmMoJnNrYi0+dXNlcnMpOwogCQkJ fSBlbHNlCiAJCQkJX19za2JfdW5saW5rKHNrYiwgcXVldWUpOwpAQCAtMjIyLDYgKzI1NSw4IEBA IHN0cnVjdCBza19idWZmICpfX3NrYl9yZWN2X2RhdGFncmFtKHN0cnVjdCBzb2NrICpzaywgdW5z aWduZWQgaW50IGZsYWdzLAogCiAJcmV0dXJuIE5VTEw7CiAKK3VubG9ja19lcnI6CisJc3Bpbl91 bmxvY2tfaXJxcmVzdG9yZSgmcXVldWUtPmxvY2ssIGNwdV9mbGFncyk7CiBub19wYWNrZXQ6CiAJ KmVyciA9IGVycm9yOwogCXJldHVybiBOVUxMOwotLSAKMi4xLjAKCgpGcm9tIDUxNDJkMTAyMDk3 ZTkzNTY0Njk4MTJmZGM3YmRjMzFmY2RkMWUyMzcgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCkZy b206IEhlcmJlcnQgWHUgPGhlcmJlcnRAZ29uZG9yLmFwYW5hLm9yZy5hdT4KRGF0ZTogTW9uLCAx MyBKdWwgMjAxNSAyMDowMTo0MiArMDgwMApTdWJqZWN0OiBbUEFUQ0ggMTEvMjVdIG5ldDogRml4 IHNrYiBjc3VtIHJhY2VzIHdoZW4gcGVla2luZwoKWyBVcHN0cmVhbSBjb21taXQgODljMjJkOGMz YjI3ODIxMmVlZjZhOGNjNjZiNTcwYmM4NDBhNmY1YSBdCgpXaGVuIHdlIGNhbGN1bGF0ZSB0aGUg Y2hlY2tzdW0gb24gdGhlIHJlY3YgcGF0aCwgd2Ugc3RvcmUgdGhlCnJlc3VsdCBpbiB0aGUgc2ti IGFzIGFuIG9wdGltaXNhdGlvbiBpbiBjYXNlIHdlIG5lZWQgdGhlIGNoZWNrc3VtCmFnYWluIGRv d24gdGhlIGxpbmUuCgpUaGlzIGlzIGluIGZhY3QgYm9ndXMgZm9yIHRoZSBNU0dfUEVFSyBjYXNl IGFzIHRoaXMgaXMgZG9uZSB3aXRob3V0CmFueSBsb2NraW5nLiAgU28gbXVsdGlwbGUgdGhyZWFk cyBjYW4gcGVlayBhbmQgdGhlbiBzdG9yZSB0aGUgcmVzdWx0CnRvIHRoZSBzYW1lIHNrYiwgcG90 ZW50aWFsbHkgcmVzdWx0aW5nIGluIGJvZ3VzIHNrYiBzdGF0ZXMuCgpUaGlzIHBhdGNoIGZpeGVz IHRoaXMgYnkgb25seSBzdG9yaW5nIHRoZSByZXN1bHQgaWYgdGhlIHNrYiBpcyBub3QKc2hhcmVk LiAgVGhpcyBwcmVzZXJ2ZXMgdGhlIG9wdGltaXNhdGlvbnMgZm9yIHRoZSBmZXcgY2FzZXMgd2hl cmUKaXQgY2FuIGJlIGRvbmUgc2FmZWx5IGR1ZSB0byBsb2NraW5nIG9yIG90aGVyIHJlYXNvbnMs IGUuZy4sIFNJT0NJTlEuCgpTaWduZWQtb2ZmLWJ5OiBIZXJiZXJ0IFh1IDxoZXJiZXJ0QGdvbmRv ci5hcGFuYS5vcmcuYXU+CkFja2VkLWJ5OiBFcmljIER1bWF6ZXQgPGVkdW1hemV0QGdvb2dsZS5j b20+ClNpZ25lZC1vZmYtYnk6IERhdmlkIFMuIE1pbGxlciA8ZGF2ZW1AZGF2ZW1sb2Z0Lm5ldD4K LS0tCiBuZXQvY29yZS9kYXRhZ3JhbS5jIHwgMyArKy0KIDEgZmlsZSBjaGFuZ2VkLCAyIGluc2Vy dGlvbnMoKyksIDEgZGVsZXRpb24oLSkKCmRpZmYgLS1naXQgYS9uZXQvY29yZS9kYXRhZ3JhbS5j IGIvbmV0L2NvcmUvZGF0YWdyYW0uYwppbmRleCA3ZjZmOTI5Li4zMmEwMDg3IDEwMDY0NAotLS0g YS9uZXQvY29yZS9kYXRhZ3JhbS5jCisrKyBiL25ldC9jb3JlL2RhdGFncmFtLmMKQEAgLTc3Nyw3 ICs3NzcsOCBAQCBfX3N1bTE2IF9fc2tiX2NoZWNrc3VtX2NvbXBsZXRlX2hlYWQoc3RydWN0IHNr X2J1ZmYgKnNrYiwgaW50IGxlbikKIAlpZiAobGlrZWx5KCFzdW0pKSB7CiAJCWlmICh1bmxpa2Vs eShza2ItPmlwX3N1bW1lZCA9PSBDSEVDS1NVTV9DT01QTEVURSkpCiAJCQluZXRkZXZfcnhfY3N1 bV9mYXVsdChza2ItPmRldik7Ci0JCXNrYi0+aXBfc3VtbWVkID0gQ0hFQ0tTVU1fVU5ORUNFU1NB Ulk7CisJCWlmICghc2tiX3NoYXJlZChza2IpKQorCQkJc2tiLT5pcF9zdW1tZWQgPSBDSEVDS1NV TV9VTk5FQ0VTU0FSWTsKIAl9CiAJcmV0dXJuIHN1bTsKIH0KLS0gCjIuMS4wCgoKRnJvbSBjY2Ew NGNhZTM2MDgyODVmNWJiNDZlZDA4MTZmZDdjY2Q0MjY2MjIzIE1vbiBTZXAgMTcgMDA6MDA6MDAg MjAwMQpGcm9tOiBIZXJiZXJ0IFh1IDxoZXJiZXJ0QGdvbmRvci5hcGFuYS5vcmcuYXU+CkRhdGU6 IFR1ZSwgNCBBdWcgMjAxNSAxNTo0Mjo0NyArMDgwMApTdWJqZWN0OiBbUEFUQ0ggMTIvMjVdIG5l dDogRml4IHNrYl9zZXRfcGVla2VkIHVzZS1hZnRlci1mcmVlIGJ1ZwoKWyBVcHN0cmVhbSBjb21t aXQgYTBhMmE2NjAyNDk2YTQ1YWU4MzhhOTZkYjhiODE3Mzc5NGI1ZDM5OCBdCgpUaGUgY29tbWl0 IDczOGFjMWViYjk2ZDAyZTBkMjNiYzMyMDMwMmE2ZWE5NGM2MTJkZWMgKCJuZXQ6IENsb25lCnNr YiBiZWZvcmUgc2V0dGluZyBwZWVrZWQgZmxhZyIpIGludHJvZHVjZWQgYSB1c2UtYWZ0ZXItZnJl ZSBidWcKaW4gc2tiX3JlY3ZfZGF0YWdyYW0uICBUaGlzIGlzIGJlY2F1c2Ugc2tiX3NldF9wZWVr ZWQgbWF5IGNyZWF0ZQphIG5ldyBza2IgYW5kIGZyZWUgdGhlIGV4aXN0aW5nIG9uZS4gIEFzIGl0 IHN0YW5kcyB0aGUgY2FsbGVyIHdpbGwKY29udGludWUgdG8gdXNlIHRoZSBvbGQgZnJlZWQgc2ti LgoKVGhpcyBwYXRjaCBmaXhlcyBpdCBieSBtYWtpbmcgc2tiX3NldF9wZWVrZWQgcmV0dXJuIHRo ZSBuZXcgc2tiCihvciB0aGUgb2xkIG9uZSBpZiB1bmNoYW5nZWQpLgoKRml4ZXM6IDczOGFjMWVi Yjk2ZCAoIm5ldDogQ2xvbmUgc2tiIGJlZm9yZSBzZXR0aW5nIHBlZWtlZCBmbGFnIikKUmVwb3J0 ZWQtYnk6IEJyZW5kZW4gQmxhbmNvIDxiYmxhbmNvQHBsdW1ncmlkLmNvbT4KU2lnbmVkLW9mZi1i eTogSGVyYmVydCBYdSA8aGVyYmVydEBnb25kb3IuYXBhbmEub3JnLmF1PgpUZXN0ZWQtYnk6IEJy ZW5kZW4gQmxhbmNvIDxiYmxhbmNvQHBsdW1ncmlkLmNvbT4KUmV2aWV3ZWQtYnk6IEtvbnN0YW50 aW4gS2hsZWJuaWtvdiA8a2hsZWJuaWtvdkB5YW5kZXgtdGVhbS5ydT4KU2lnbmVkLW9mZi1ieTog RGF2aWQgUy4gTWlsbGVyIDxkYXZlbUBkYXZlbWxvZnQubmV0PgotLS0KIG5ldC9jb3JlL2RhdGFn cmFtLmMgfCAxMyArKysrKysrLS0tLS0tCiAxIGZpbGUgY2hhbmdlZCwgNyBpbnNlcnRpb25zKCsp LCA2IGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL25ldC9jb3JlL2RhdGFncmFtLmMgYi9uZXQv Y29yZS9kYXRhZ3JhbS5jCmluZGV4IDMyYTAwODcuLjEzYmM3ZGEgMTAwNjQ0Ci0tLSBhL25ldC9j b3JlL2RhdGFncmFtLmMKKysrIGIvbmV0L2NvcmUvZGF0YWdyYW0uYwpAQCAtMTMwLDEyICsxMzAs MTIgQEAgb3V0X25vZXJyOgogCWdvdG8gb3V0OwogfQogCi1zdGF0aWMgaW50IHNrYl9zZXRfcGVl a2VkKHN0cnVjdCBza19idWZmICpza2IpCitzdGF0aWMgc3RydWN0IHNrX2J1ZmYgKnNrYl9zZXRf cGVla2VkKHN0cnVjdCBza19idWZmICpza2IpCiB7CiAJc3RydWN0IHNrX2J1ZmYgKm5za2I7CiAK IAlpZiAoc2tiLT5wZWVrZWQpCi0JCXJldHVybiAwOworCQlyZXR1cm4gc2tiOwogCiAJLyogV2Ug aGF2ZSB0byB1bnNoYXJlIGFuIHNrYiBiZWZvcmUgbW9kaWZ5aW5nIGl0LiAqLwogCWlmICghc2ti X3NoYXJlZChza2IpKQpAQCAtMTQzLDcgKzE0Myw3IEBAIHN0YXRpYyBpbnQgc2tiX3NldF9wZWVr ZWQoc3RydWN0IHNrX2J1ZmYgKnNrYikKIAogCW5za2IgPSBza2JfY2xvbmUoc2tiLCBHRlBfQVRP TUlDKTsKIAlpZiAoIW5za2IpCi0JCXJldHVybiAtRU5PTUVNOworCQlyZXR1cm4gRVJSX1BUUigt RU5PTUVNKTsKIAogCXNrYi0+cHJldi0+bmV4dCA9IG5za2I7CiAJc2tiLT5uZXh0LT5wcmV2ID0g bnNrYjsKQEAgLTE1Niw3ICsxNTYsNyBAQCBzdGF0aWMgaW50IHNrYl9zZXRfcGVla2VkKHN0cnVj dCBza19idWZmICpza2IpCiBkb25lOgogCXNrYi0+cGVla2VkID0gMTsKIAotCXJldHVybiAwOwor CXJldHVybiBza2I7CiB9CiAKIC8qKgpAQCAtMjI4LDggKzIyOCw5IEBAIHN0cnVjdCBza19idWZm ICpfX3NrYl9yZWN2X2RhdGFncmFtKHN0cnVjdCBzb2NrICpzaywgdW5zaWduZWQgaW50IGZsYWdz LAogCQkJCQljb250aW51ZTsKIAkJCQl9CiAKLQkJCQllcnJvciA9IHNrYl9zZXRfcGVla2VkKHNr Yik7Ci0JCQkJaWYgKGVycm9yKQorCQkJCXNrYiA9IHNrYl9zZXRfcGVla2VkKHNrYik7CisJCQkJ ZXJyb3IgPSBQVFJfRVJSKHNrYik7CisJCQkJaWYgKElTX0VSUihza2IpKQogCQkJCQlnb3RvIHVu bG9ja19lcnI7CiAKIAkJCQlhdG9taWNfaW5jKCZza2ItPnVzZXJzKTsKLS0gCjIuMS4wCgoKRnJv bSAzZjlhZWMzM2M1MDkyNmUzNjg0MGU3NTAzZGM1Yjk4MWRkOTgxZGU4IE1vbiBTZXAgMTcgMDA6 MDA6MDAgMjAwMQpGcm9tOiBOaWtvbGF5IEFsZWtzYW5kcm92IDxuaWtvbGF5QGN1bXVsdXNuZXR3 b3Jrcy5jb20+CkRhdGU6IE1vbiwgMTMgSnVsIDIwMTUgMDY6MzY6MTkgLTA3MDAKU3ViamVjdDog W1BBVENIIDEzLzI1XSBicmlkZ2U6IG1kYjogZml4IGRvdWJsZSBhZGQgbm90aWZpY2F0aW9uCgpb IFVwc3RyZWFtIGNvbW1pdCA1ZWJjNzg0NjI1ZWE2OGE5NTcwZDFmNzA1NTdlNzkzMjk4OGNkMWI0 IF0KClNpbmNlIHRoZSBtZGIgYWRkL2RlbCBjb2RlIHdhcyBpbnRyb2R1Y2VkIHRoZXJlIGhhdmUg YmVlbiAyIGJyX21kYl9ub3RpZnkKY2FsbHMgd2hlbiBkb2luZyBicl9tZGJfYWRkKCkgcmVzdWx0 aW5nIGluIDIgbm90aWZpY2F0aW9ucyBvbiBlYWNoIGFkZC4KCkV4YW1wbGU6CiBDb21tYW5kOiBi cmlkZ2UgbWRiIGFkZCBkZXYgYnIwIHBvcnQgZXRoMSBncnAgMjM5LjAuMC4xIHBlcm1hbmVudAog QmVmb3JlIHBhdGNoOgogcm9vdEBkZWJpYW46fiMgYnJpZGdlIG1vbml0b3IgYWxsCiBbTURCXWRl diBicjAgcG9ydCBldGgxIGdycCAyMzkuMC4wLjEgcGVybWFuZW50CiBbTURCXWRldiBicjAgcG9y dCBldGgxIGdycCAyMzkuMC4wLjEgcGVybWFuZW50CgogQWZ0ZXIgcGF0Y2g6CiByb290QGRlYmlh bjp+IyBicmlkZ2UgbW9uaXRvciBhbGwKIFtNREJdZGV2IGJyMCBwb3J0IGV0aDEgZ3JwIDIzOS4w LjAuMSBwZXJtYW5lbnQKClNpZ25lZC1vZmYtYnk6IE5pa29sYXkgQWxla3NhbmRyb3YgPG5pa29s YXlAY3VtdWx1c25ldHdvcmtzLmNvbT4KRml4ZXM6IGNmZDU2NzU0MzU5MCAoImJyaWRnZTogYWRk IHN1cHBvcnQgb2YgYWRkaW5nIGFuZCBkZWxldGluZyBtZGIgZW50cmllcyIpClNpZ25lZC1vZmYt Ynk6IERhdmlkIFMuIE1pbGxlciA8ZGF2ZW1AZGF2ZW1sb2Z0Lm5ldD4KLS0tCiBuZXQvYnJpZGdl L2JyX21kYi5jIHwgMSAtCiAxIGZpbGUgY2hhbmdlZCwgMSBkZWxldGlvbigtKQoKZGlmZiAtLWdp dCBhL25ldC9icmlkZ2UvYnJfbWRiLmMgYi9uZXQvYnJpZGdlL2JyX21kYi5jCmluZGV4IDEzNDIx YmYuLjI3Y2YxMjggMTAwNjQ0Ci0tLSBhL25ldC9icmlkZ2UvYnJfbWRiLmMKKysrIGIvbmV0L2Jy aWRnZS9icl9tZGIuYwpAQCAtMzQ3LDcgKzM0Nyw2IEBAIHN0YXRpYyBpbnQgYnJfbWRiX2FkZF9n cm91cChzdHJ1Y3QgbmV0X2JyaWRnZSAqYnIsIHN0cnVjdCBuZXRfYnJpZGdlX3BvcnQgKnBvcnQs CiAJCXJldHVybiAtRU5PTUVNOwogCXJjdV9hc3NpZ25fcG9pbnRlcigqcHAsIHApOwogCi0JYnJf bWRiX25vdGlmeShici0+ZGV2LCBwb3J0LCBncm91cCwgUlRNX05FV01EQik7CiAJcmV0dXJuIDA7 CiB9CiAKLS0gCjIuMS4wCgoKRnJvbSBkNmM4YmExN2YzNjU3ZjMwY2M2OGNmNzQxODA1ZmMxOWRh NDA1Mzg3IE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBUaWxtYW4gU2NobWlkdCA8dGls bWFuQGltYXAuY2M+CkRhdGU6IFR1ZSwgMTQgSnVsIDIwMTUgMDA6Mzc6MTMgKzAyMDAKU3ViamVj dDogW1BBVENIIDE0LzI1XSBpc2RuL2dpZ2FzZXQ6IHJlc2V0IHR0eS0+cmVjZWl2ZV9yb29tIHdo ZW4gYXR0YWNoaW5nCiBzZXJfZ2lnYXNldAoKWyBVcHN0cmVhbSBjb21taXQgZmQ5OGU5NDE5ZDhk NjIyYTRkZTkxZjc2YjMwNmFmNmFhNjI3YWE5YyBdCgpDb21taXQgNzk5MDEzMTdjZTgwICgibl90 dHk6IERvbid0IGZsdXNoIGJ1ZmZlciB3aGVuIGNsb3NpbmcgbGRpc2MiKSwKZmlyc3QgbWVyZ2Vk IGluIGtlcm5lbCByZWxlYXNlIDMuMTAsIGNhdXNlZCB0aGUgZm9sbG93aW5nIHJlZ3Jlc3Npb24K aW4gdGhlIEdpZ2FzZXQgTTEwMSBkcml2ZXI6CgpCZWZvcmUgdGhhdCBjb21taXQsIHdoZW4gY2xv c2luZyB0aGUgTl9UVFkgbGluZSBkaXNjaXBsaW5lIGluCnByZXBhcmF0aW9uIHRvIHN3aXRjaGlu ZyB0byBOX0dJR0FTRVRfTTEwMSwgcmVjZWl2ZV9yb29tIHdvdWxkIGJlCnJlc2V0IHRvIGEgbm9u LXplcm8gdmFsdWUgYnkgdGhlIGNhbGwgdG8gbl90dHlfZmx1c2hfYnVmZmVyKCkgaW4Kbl90dHkn cyBjbG9zZSBtZXRob2QuIFdpdGggdGhlIHJlbW92YWwgb2YgdGhhdCBjYWxsLCByZWNlaXZlX3Jv b20KbWlnaHQgYmUgbGVmdCBhdCB6ZXJvLCBibG9ja2luZyBkYXRhIHJlY2VwdGlvbiBvbiB0aGUg c2VyaWFsIGxpbmUuCgpUaGUgcHJlc2VudCBwYXRjaCBmaXhlcyB0aGF0IHJlZ3Jlc3Npb24gYnkg c2V0dGluZyByZWNlaXZlX3Jvb20KdG8gYW4gYXBwcm9wcmlhdGUgdmFsdWUgaW4gdGhlIGxkaXNj IG9wZW4gbWV0aG9kLgoKRml4ZXM6IDc5OTAxMzE3Y2U4MCAoIm5fdHR5OiBEb24ndCBmbHVzaCBi dWZmZXIgd2hlbiBjbG9zaW5nIGxkaXNjIikKU2lnbmVkLW9mZi1ieTogVGlsbWFuIFNjaG1pZHQg PHRpbG1hbkBpbWFwLmNjPgpTaWduZWQtb2ZmLWJ5OiBEYXZpZCBTLiBNaWxsZXIgPGRhdmVtQGRh dmVtbG9mdC5uZXQ+Ci0tLQogZHJpdmVycy9pc2RuL2dpZ2FzZXQvc2VyLWdpZ2FzZXQuYyB8IDEx ICsrKysrKysrKystCiAxIGZpbGUgY2hhbmdlZCwgMTAgaW5zZXJ0aW9ucygrKSwgMSBkZWxldGlv bigtKQoKZGlmZiAtLWdpdCBhL2RyaXZlcnMvaXNkbi9naWdhc2V0L3Nlci1naWdhc2V0LmMgYi9k cml2ZXJzL2lzZG4vZ2lnYXNldC9zZXItZ2lnYXNldC5jCmluZGV4IDhjOTFmZDUuLjNhYzljNDEg MTAwNjQ0Ci0tLSBhL2RyaXZlcnMvaXNkbi9naWdhc2V0L3Nlci1naWdhc2V0LmMKKysrIGIvZHJp dmVycy9pc2RuL2dpZ2FzZXQvc2VyLWdpZ2FzZXQuYwpAQCAtNTI0LDkgKzUyNCwxOCBAQCBnaWdh c2V0X3R0eV9vcGVuKHN0cnVjdCB0dHlfc3RydWN0ICp0dHkpCiAJY3MtPmh3LnNlci0+dHR5ID0g dHR5OwogCWF0b21pY19zZXQoJmNzLT5ody5zZXItPnJlZmNudCwgMSk7CiAJaW5pdF9jb21wbGV0 aW9uKCZjcy0+aHcuc2VyLT5kZWFkX2NtcCk7Ci0KIAl0dHktPmRpc2NfZGF0YSA9IGNzOwogCisJ LyogU2V0IHRoZSBhbW91bnQgb2YgZGF0YSB3ZSdyZSB3aWxsaW5nIHRvIHJlY2VpdmUgcGVyIGNh bGwKKwkgKiBmcm9tIHRoZSBoYXJkd2FyZSBkcml2ZXIgdG8gaGFsZiBvZiB0aGUgaW5wdXQgYnVm ZmVyIHNpemUKKwkgKiB0byBsZWF2ZSBzb21lIHJlc2VydmUuCisJICogTm90ZTogV2UgZG9uJ3Qg ZG8gZmxvdyBjb250cm9sIHRvd2FyZHMgdGhlIGhhcmR3YXJlIGRyaXZlci4KKwkgKiBJZiBtb3Jl IGRhdGEgaXMgcmVjZWl2ZWQgdGhhbiB3aWxsIGZpdCBpbnRvIHRoZSBpbnB1dCBidWZmZXIsCisJ ICogaXQgd2lsbCBiZSBkcm9wcGVkIGFuZCBhbiBlcnJvciB3aWxsIGJlIGxvZ2dlZC4gVGhpcyBz aG91bGQKKwkgKiBuZXZlciBoYXBwZW4gYXMgdGhlIGRldmljZSBpcyBzbG93IGFuZCB0aGUgYnVm ZmVyIHNpemUgYW1wbGUuCisJICovCisJdHR5LT5yZWNlaXZlX3Jvb20gPSBSQlVGU0laRS8yOwor CiAJLyogT0suLiBJbml0aWFsaXphdGlvbiBvZiB0aGUgZGF0YXN0cnVjdHVyZXMgYW5kIHRoZSBI VyBpcyBkb25lLi4gTm93CiAJICogc3RhcnR1cCBzeXN0ZW0gYW5kIG5vdGlmeSB0aGUgTEwgdGhh dCB3ZSBhcmUgcmVhZHkgdG8gcnVuCiAJICovCi0tIAoyLjEuMAoKCkZyb20gN2RjMWYzMjk2OTUz ZmYwMGU2OTA4ODNjNzA3MzdjOTRhZWU2YmJkOSBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJv bTogRXJpYyBEdW1hemV0IDxlZHVtYXpldEBnb29nbGUuY29tPgpEYXRlOiBUdWUsIDE0IEp1bCAy MDE1IDA4OjEwOjIyICswMjAwClN1YmplY3Q6IFtQQVRDSCAxNS8yNV0gaXB2NjogbG9jayBzb2Nr ZXQgaW4gaXA2X2RhdGFncmFtX2Nvbm5lY3QoKQoKWyBVcHN0cmVhbSBjb21taXQgMDM2NDVhMTFh NTcwZDUyZTcwNjMxODM4Y2I3ODZlYjQyNTNlYjQ2MyBdCgppcDZfZGF0YWdyYW1fY29ubmVjdCgp IGlzIGRvaW5nIGEgbG90IG9mIHNvY2tldCBjaGFuZ2VzIHdpdGhvdXQKc29ja2V0IGJlaW5nIGxv Y2tlZC4KClRoaXMgbG9va3Mgd3JvbmcsIGF0IGxlYXN0IGZvciB1ZHBfbGliX3JlaGFzaCgpIHdo aWNoIGNvdWxkIGNvcnJ1cHQKbGlzdHMgYmVjYXVzZSBvZiBjb25jdXJyZW50IHVkcF9zayhzaykt PnVkcF9wb3J0YWRkcl9oYXNoIGFjY2Vzc2VzLgoKU2lnbmVkLW9mZi1ieTogRXJpYyBEdW1hemV0 IDxlZHVtYXpldEBnb29nbGUuY29tPgpBY2tlZC1ieTogSGVyYmVydCBYdSA8aGVyYmVydEBnb25k b3IuYXBhbmEub3JnLmF1PgpTaWduZWQtb2ZmLWJ5OiBEYXZpZCBTLiBNaWxsZXIgPGRhdmVtQGRh dmVtbG9mdC5uZXQ+Ci0tLQogaW5jbHVkZS9uZXQvaXAuaCAgICB8ICAxICsKIG5ldC9pcHY0L2Rh dGFncmFtLmMgfCAxNiArKysrKysrKysrKystLS0tCiBuZXQvaXB2Ni9kYXRhZ3JhbS5jIHwgMjAg KysrKysrKysrKysrKysrLS0tLS0KIDMgZmlsZXMgY2hhbmdlZCwgMjggaW5zZXJ0aW9ucygrKSwg OSBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9pbmNsdWRlL25ldC9pcC5oIGIvaW5jbHVkZS9u ZXQvaXAuaAppbmRleCA1MTI4ZmE3Li40NzZiYWIyIDEwMDY0NAotLS0gYS9pbmNsdWRlL25ldC9p cC5oCisrKyBiL2luY2x1ZGUvbmV0L2lwLmgKQEAgLTE1NCw2ICsxNTQsNyBAQCBzdGF0aWMgaW5s aW5lIF9fdTggZ2V0X3J0Y29ubl9mbGFncyhzdHJ1Y3QgaXBjbV9jb29raWUqIGlwYywgc3RydWN0 IHNvY2sqIHNrKQogfQogCiAvKiBkYXRhZ3JhbS5jICovCitpbnQgX19pcDRfZGF0YWdyYW1fY29u bmVjdChzdHJ1Y3Qgc29jayAqc2ssIHN0cnVjdCBzb2NrYWRkciAqdWFkZHIsIGludCBhZGRyX2xl bik7CiBpbnQgaXA0X2RhdGFncmFtX2Nvbm5lY3Qoc3RydWN0IHNvY2sgKnNrLCBzdHJ1Y3Qgc29j a2FkZHIgKnVhZGRyLCBpbnQgYWRkcl9sZW4pOwogCiB2b2lkIGlwNF9kYXRhZ3JhbV9yZWxlYXNl X2NiKHN0cnVjdCBzb2NrICpzayk7CmRpZmYgLS1naXQgYS9uZXQvaXB2NC9kYXRhZ3JhbS5jIGIv bmV0L2lwdjQvZGF0YWdyYW0uYwppbmRleCBhMzA5NWZkLi5mMGMzMDdjIDEwMDY0NAotLS0gYS9u ZXQvaXB2NC9kYXRhZ3JhbS5jCisrKyBiL25ldC9pcHY0L2RhdGFncmFtLmMKQEAgLTIwLDcgKzIw LDcgQEAKICNpbmNsdWRlIDxuZXQvcm91dGUuaD4KICNpbmNsdWRlIDxuZXQvdGNwX3N0YXRlcy5o PgogCi1pbnQgaXA0X2RhdGFncmFtX2Nvbm5lY3Qoc3RydWN0IHNvY2sgKnNrLCBzdHJ1Y3Qgc29j a2FkZHIgKnVhZGRyLCBpbnQgYWRkcl9sZW4pCitpbnQgX19pcDRfZGF0YWdyYW1fY29ubmVjdChz dHJ1Y3Qgc29jayAqc2ssIHN0cnVjdCBzb2NrYWRkciAqdWFkZHIsIGludCBhZGRyX2xlbikKIHsK IAlzdHJ1Y3QgaW5ldF9zb2NrICppbmV0ID0gaW5ldF9zayhzayk7CiAJc3RydWN0IHNvY2thZGRy X2luICp1c2luID0gKHN0cnVjdCBzb2NrYWRkcl9pbiAqKSB1YWRkcjsKQEAgLTM5LDggKzM5LDYg QEAgaW50IGlwNF9kYXRhZ3JhbV9jb25uZWN0KHN0cnVjdCBzb2NrICpzaywgc3RydWN0IHNvY2th ZGRyICp1YWRkciwgaW50IGFkZHJfbGVuKQogCiAJc2tfZHN0X3Jlc2V0KHNrKTsKIAotCWxvY2tf c29jayhzayk7Ci0KIAlvaWYgPSBzay0+c2tfYm91bmRfZGV2X2lmOwogCXNhZGRyID0gaW5ldC0+ aW5ldF9zYWRkcjsKIAlpZiAoaXB2NF9pc19tdWx0aWNhc3QodXNpbi0+c2luX2FkZHIuc19hZGRy KSkgewpAQCAtODEsOSArNzksMTkgQEAgaW50IGlwNF9kYXRhZ3JhbV9jb25uZWN0KHN0cnVjdCBz b2NrICpzaywgc3RydWN0IHNvY2thZGRyICp1YWRkciwgaW50IGFkZHJfbGVuKQogCXNrX2RzdF9z ZXQoc2ssICZydC0+ZHN0KTsKIAllcnIgPSAwOwogb3V0OgotCXJlbGVhc2Vfc29jayhzayk7CiAJ cmV0dXJuIGVycjsKIH0KK0VYUE9SVF9TWU1CT0woX19pcDRfZGF0YWdyYW1fY29ubmVjdCk7CisK K2ludCBpcDRfZGF0YWdyYW1fY29ubmVjdChzdHJ1Y3Qgc29jayAqc2ssIHN0cnVjdCBzb2NrYWRk ciAqdWFkZHIsIGludCBhZGRyX2xlbikKK3sKKwlpbnQgcmVzOworCisJbG9ja19zb2NrKHNrKTsK KwlyZXMgPSBfX2lwNF9kYXRhZ3JhbV9jb25uZWN0KHNrLCB1YWRkciwgYWRkcl9sZW4pOworCXJl bGVhc2Vfc29jayhzayk7CisJcmV0dXJuIHJlczsKK30KIEVYUE9SVF9TWU1CT0woaXA0X2RhdGFn cmFtX2Nvbm5lY3QpOwogCiAvKiBCZWNhdXNlIFVEUCB4bWl0IHBhdGggY2FuIG1hbmlwdWxhdGUg c2tfZHN0X2NhY2hlIHdpdGhvdXQgaG9sZGluZwpkaWZmIC0tZ2l0IGEvbmV0L2lwdjYvZGF0YWdy YW0uYyBiL25ldC9pcHY2L2RhdGFncmFtLmMKaW5kZXggODQxY2ZhMi4uNmI4OWIyYSAxMDA2NDQK LS0tIGEvbmV0L2lwdjYvZGF0YWdyYW0uYworKysgYi9uZXQvaXB2Ni9kYXRhZ3JhbS5jCkBAIC00 MCw3ICs0MCw3IEBAIHN0YXRpYyBib29sIGlwdjZfbWFwcGVkX2FkZHJfYW55KGNvbnN0IHN0cnVj dCBpbjZfYWRkciAqYSkKIAlyZXR1cm4gaXB2Nl9hZGRyX3Y0bWFwcGVkKGEpICYmIChhLT5zNl9h ZGRyMzJbM10gPT0gMCk7CiB9CiAKLWludCBpcDZfZGF0YWdyYW1fY29ubmVjdChzdHJ1Y3Qgc29j ayAqc2ssIHN0cnVjdCBzb2NrYWRkciAqdWFkZHIsIGludCBhZGRyX2xlbikKK3N0YXRpYyBpbnQg X19pcDZfZGF0YWdyYW1fY29ubmVjdChzdHJ1Y3Qgc29jayAqc2ssIHN0cnVjdCBzb2NrYWRkciAq dWFkZHIsIGludCBhZGRyX2xlbikKIHsKIAlzdHJ1Y3Qgc29ja2FkZHJfaW42CSp1c2luID0gKHN0 cnVjdCBzb2NrYWRkcl9pbjYgKikgdWFkZHI7CiAJc3RydWN0IGluZXRfc29jayAgICAgIAkqaW5l dCA9IGluZXRfc2soc2spOwpAQCAtNTYsNyArNTYsNyBAQCBpbnQgaXA2X2RhdGFncmFtX2Nvbm5l Y3Qoc3RydWN0IHNvY2sgKnNrLCBzdHJ1Y3Qgc29ja2FkZHIgKnVhZGRyLCBpbnQgYWRkcl9sZW4p CiAJaWYgKHVzaW4tPnNpbjZfZmFtaWx5ID09IEFGX0lORVQpIHsKIAkJaWYgKF9faXB2Nl9vbmx5 X3NvY2soc2spKQogCQkJcmV0dXJuIC1FQUZOT1NVUFBPUlQ7Ci0JCWVyciA9IGlwNF9kYXRhZ3Jh bV9jb25uZWN0KHNrLCB1YWRkciwgYWRkcl9sZW4pOworCQllcnIgPSBfX2lwNF9kYXRhZ3JhbV9j b25uZWN0KHNrLCB1YWRkciwgYWRkcl9sZW4pOwogCQlnb3RvIGlwdjRfY29ubmVjdGVkOwogCX0K IApAQCAtOTgsOSArOTgsOSBAQCBpbnQgaXA2X2RhdGFncmFtX2Nvbm5lY3Qoc3RydWN0IHNvY2sg KnNrLCBzdHJ1Y3Qgc29ja2FkZHIgKnVhZGRyLCBpbnQgYWRkcl9sZW4pCiAJCXNpbi5zaW5fYWRk ci5zX2FkZHIgPSBkYWRkci0+czZfYWRkcjMyWzNdOwogCQlzaW4uc2luX3BvcnQgPSB1c2luLT5z aW42X3BvcnQ7CiAKLQkJZXJyID0gaXA0X2RhdGFncmFtX2Nvbm5lY3Qoc2ssCi0JCQkJCSAgIChz dHJ1Y3Qgc29ja2FkZHIgKikgJnNpbiwKLQkJCQkJICAgc2l6ZW9mKHNpbikpOworCQllcnIgPSBf X2lwNF9kYXRhZ3JhbV9jb25uZWN0KHNrLAorCQkJCQkgICAgIChzdHJ1Y3Qgc29ja2FkZHIgKikg JnNpbiwKKwkJCQkJICAgICBzaXplb2Yoc2luKSk7CiAKIGlwdjRfY29ubmVjdGVkOgogCQlpZiAo ZXJyKQpAQCAtMjAzLDYgKzIwMywxNiBAQCBvdXQ6CiAJZmw2X3NvY2tfcmVsZWFzZShmbG93bGFi ZWwpOwogCXJldHVybiBlcnI7CiB9CisKK2ludCBpcDZfZGF0YWdyYW1fY29ubmVjdChzdHJ1Y3Qg c29jayAqc2ssIHN0cnVjdCBzb2NrYWRkciAqdWFkZHIsIGludCBhZGRyX2xlbikKK3sKKwlpbnQg cmVzOworCisJbG9ja19zb2NrKHNrKTsKKwlyZXMgPSBfX2lwNl9kYXRhZ3JhbV9jb25uZWN0KHNr LCB1YWRkciwgYWRkcl9sZW4pOworCXJlbGVhc2Vfc29jayhzayk7CisJcmV0dXJuIHJlczsKK30K IEVYUE9SVF9TWU1CT0xfR1BMKGlwNl9kYXRhZ3JhbV9jb25uZWN0KTsKIAogaW50IGlwNl9kYXRh Z3JhbV9jb25uZWN0X3Y2X29ubHkoc3RydWN0IHNvY2sgKnNrLCBzdHJ1Y3Qgc29ja2FkZHIgKnVh ZGRyLAotLSAKMi4xLjAKCgpGcm9tIGFmODFkYTc3YWEwYzk2NWIwNDJjOTVmMzA2Y2ZhMzQzZGQ1 MGNmOTEgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCkZyb206IE5pa29sYXkgQWxla3NhbmRyb3Yg PG5pa29sYXlAY3VtdWx1c25ldHdvcmtzLmNvbT4KRGF0ZTogV2VkLCAxNSBKdWwgMjAxNSAyMTo1 Mjo1MSArMDIwMApTdWJqZWN0OiBbUEFUQ0ggMTYvMjVdIGJvbmRpbmc6IGZpeCBkZXN0cnVjdGlv biBvZiBib25kIHdpdGggZGV2aWNlcyBkaWZmZXJlbnQKIGZyb20gYXJwaHJkX2V0aGVyCgpbIFVw c3RyZWFtIGNvbW1pdCAwNmY2ZDEwOTRhYTA5OTI0MzJiMWUyYTA5MjBiMGVlODZjY2Q4M2JmIF0K CldoZW4gdGhlIGJvbmRpbmcgaXMgYmVpbmcgdW5sb2FkZWQgYW5kIHRoZSBuZXRkZXZpY2Ugbm90 aWZpZXIgaXMKdW5yZWdpc3RlcmVkIGl0IGV4ZWN1dGVzIE5FVERFVl9VTlJFR0lTVEVSIGZvciBl YWNoIGRldmljZSB3aGljaCBzaG91bGQKcmVtb3ZlIHRoZSBib25kJ3MgcHJvYyBlbnRyeSBidXQg aWYgdGhlIGRldmljZSBlbnNsYXZlZCBpcyBub3Qgb2YKQVJQSFJEX0VUSEVSIHR5cGUgYW5kIGlz IGluIGZyb250IG9mIHRoZSBib25kaW5nLCBpdCBtYXkgZXhlY3V0ZQpib25kX3JlbGVhc2VfYW5k X2Rlc3Ryb3koKSBmaXJzdCB3aGljaCB3b3VsZCByZWxlYXNlIHRoZSBsYXN0IHNsYXZlIGFuZApk ZXN0cm95IHRoZSBib25kIGRldmljZSBsZWF2aW5nIHRoZSBwcm9jIGVudHJ5IGFuZCB0aHVzIHdl IHdpbGwgZ2V0IHRoZQpmb2xsb3dpbmcgZXJyb3IgKHdpdGggZHluYW1pYyBkZWJ1ZyBvbiBmb3Ig Ym9uZF9uZXRkZXZfZXZlbnQgdG8gc2VlIHRoZQpldmVudHMgb3JkZXIpOgpbICA5MDguOTYzMDUx XSBlcWw6IGV2ZW50OiA5ClsgIDkwOC45NjMwNTJdIGVxbDogSUZGX1NMQVZFClsgIDkwOC45NjMw NTRdIGVxbDogZXZlbnQ6IDIKWyAgOTA4Ljk2MzA1Nl0gZXFsOiBJRkZfU0xBVkUKWyAgOTA4Ljk2 MzA1OF0gZXFsOiBldmVudDogNgpbICA5MDguOTYzMDU5XSBlcWw6IElGRl9TTEFWRQpbICA5MDgu OTYzMTEwXSBib25kMDogUmVsZWFzaW5nIGFjdGl2ZSBpbnRlcmZhY2UgZXFsClsgIDkwOC45NzYx NjhdIGJvbmQwOiBEZXN0cm95aW5nIGJvbmQgYm9uZDAKWyAgOTA4Ljk3NjI2Nl0gYm9uZDAgKHVu cmVnaXN0ZXJpbmcpOiBSZWxlYXNlZCBhbGwgc2xhdmVzClsgIDkwOC45ODQwOTddIC0tLS0tLS0t LS0tLVsgY3V0IGhlcmUgXS0tLS0tLS0tLS0tLQpbICA5MDguOTg0MTA3XSBXQVJOSU5HOiBDUFU6 IDAgUElEOiAxNzg3IGF0IGZzL3Byb2MvZ2VuZXJpYy5jOjU3NQpyZW1vdmVfcHJvY19lbnRyeSsw eDExMi8weDE2MCgpClsgIDkwOC45ODQxMTBdIHJlbW92ZV9wcm9jX2VudHJ5OiByZW1vdmluZyBu b24tZW1wdHkgZGlyZWN0b3J5CiduZXQvYm9uZGluZycsIGxlYWtpbmcgYXQgbGVhc3QgJ2JvbmQw JwpbICA5MDguOTg0MTExXSBNb2R1bGVzIGxpbmtlZCBpbjogYm9uZGluZygtKSBlcWwoTykgOXAg bmZzZCBhdXRoX3JwY2dzcwpvaWRfcmVnaXN0cnkgbmZzX2FjbCBuZnMgbG9ja2QgZ3JhY2UgZnNj YWNoZSBzdW5ycGMgY3JjdDEwZGlmX3BjbG11bApjcmMzMl9wY2xtdWwgY3JjMzJjX2ludGVsIGdo YXNoX2NsbXVsbmlfaW50ZWwgcHBkZXYgcXhsIGRybV9rbXNfaGVscGVyCnNuZF9oZGFfY29kZWNf Z2VuZXJpYyBhZXNuaV9pbnRlbCB0dG0gYWVzX3g4Nl82NCBnbHVlX2hlbHBlciBwY3Nwa3IgbHJ3 CmdmMTI4bXVsIGFibGtfaGVscGVyIGNyeXB0ZCBzbmRfaGRhX2ludGVsIHZpcnRpb19jb25zb2xl IHNuZF9oZGFfY29kZWMKcHNtb3VzZSBzZXJpb19yYXcgc25kX2h3ZGVwIHNuZF9oZGFfY29yZSA5 cG5ldF92aXJ0aW8gOXBuZXQgZXZkZXYgam95ZGV2CmRybSB2aXJ0aW9fYmFsbG9vbiBzbmRfcGNt IHNuZF90aW1lciBzbmQgc291bmRjb3JlIGkyY19waWl4NCBpMmNfY29yZQpwdnBhbmljIGFjcGlf Y3B1ZnJlcSBwYXJwb3J0X3BjIHBhcnBvcnQgcHJvY2Vzc29yIHRoZXJtYWxfc3lzIGJ1dHRvbgph dXRvZnM0IGV4dDQgY3JjMTYgbWJjYWNoZSBqYmQyIGhpZF9nZW5lcmljIHVzYmhpZCBoaWQgc2cg c3JfbW9kIGNkcm9tCmF0YV9nZW5lcmljIHZpcnRpb19ibGsgdmlydGlvX25ldCBmbG9wcHkgYXRh X3BpaXggZTEwMDAgbGliYXRhIGVoY2lfcGNpCnZpcnRpb19wY2kgc2NzaV9tb2QgdWhjaV9oY2Qg ZWhjaV9oY2QgdmlydGlvX3JpbmcgdmlydGlvIHVzYmNvcmUKdXNiX2NvbW1vbiBbbGFzdCB1bmxv YWRlZDogYm9uZGluZ10KClsgIDkwOC45ODQxNjhdIENQVTogMCBQSUQ6IDE3ODcgQ29tbTogcm1t b2QgVGFpbnRlZDogRyAgICAgICAgVyAgTwo0LjIuMC1yYzIrICM4ClsgIDkwOC45ODQxNzBdIEhh cmR3YXJlIG5hbWU6IEJvY2hzIEJvY2hzLCBCSU9TIEJvY2hzIDAxLzAxLzIwMTEKWyAgOTA4Ljk4 NDE3Ml0gIDAwMDAwMDAwMDAwMDAwMDAgZmZmZmZmZmY4MTczMmQ0MSBmZmZmZmZmZjgxNTI1YjM0 CmZmZmY4ODAwMzU4ZGZkYTgKWyAgOTA4Ljk4NDE3NV0gIGZmZmZmZmZmODEwNmM1MjEgZmZmZjg4 MDAzNTk1YWY3OCBmZmZmODgwMDM1OTVhZjQwCmZmZmY4ODAwM2UzYTQyODAKWyAgOTA4Ljk4NDE3 OF0gIGZmZmZmZmZmYTA1OGQwNDAgMDAwMDAwMDAwMDAwMDAwMCBmZmZmZmZmZjgxMDZjNTlhCmZm ZmZmZmZmODE3MmViZDAKWyAgOTA4Ljk4NDE4MV0gQ2FsbCBUcmFjZToKWyAgOTA4Ljk4NDE4OF0g IFs8ZmZmZmZmZmY4MTUyNWIzND5dID8gZHVtcF9zdGFjaysweDQwLzB4NTAKWyAgOTA4Ljk4NDE5 M10gIFs8ZmZmZmZmZmY4MTA2YzUyMT5dID8gd2Fybl9zbG93cGF0aF9jb21tb24rMHg4MS8weGIw ClsgIDkwOC45ODQxOTZdICBbPGZmZmZmZmZmODEwNmM1OWE+XSA/IHdhcm5fc2xvd3BhdGhfZm10 KzB4NGEvMHg1MApbICA5MDguOTg0MTk5XSAgWzxmZmZmZmZmZjgxMjE4MzUyPl0gPyByZW1vdmVf cHJvY19lbnRyeSsweDExMi8weDE2MApbICA5MDguOTg0MjA1XSAgWzxmZmZmZmZmZmEwNTg1MGU2 Pl0gPyBib25kX2Rlc3Ryb3lfcHJvY19kaXIrMHgyNi8weDMwCltib25kaW5nXQpbICA5MDguOTg0 MjA4XSAgWzxmZmZmZmZmZmEwNTc1NDBlPl0gPyBib25kX25ldF9leGl0KzB4OGUvMHhhMCBbYm9u ZGluZ10KWyAgOTA4Ljk4NDIxN10gIFs8ZmZmZmZmZmY4MTQyZjQwNz5dID8gb3BzX2V4aXRfbGlz dC5pc3JhLjQrMHgzNy8weDcwClsgIDkwOC45ODQyMjVdICBbPGZmZmZmZmZmODE0MmY1MmQ+XSA/ CnVucmVnaXN0ZXJfcGVybmV0X29wZXJhdGlvbnMrMHg4ZC8weGQwClsgIDkwOC45ODQyMjhdICBb PGZmZmZmZmZmODE0MmY1OGQ+XSA/CnVucmVnaXN0ZXJfcGVybmV0X3N1YnN5cysweDFkLzB4MzAK WyAgOTA4Ljk4NDIzMl0gIFs8ZmZmZmZmZmZhMDU4NTI2OT5dID8gYm9uZGluZ19leGl0KzB4MjMv MHhkYmEgW2JvbmRpbmddClsgIDkwOC45ODQyMzZdICBbPGZmZmZmZmZmODEwZTI4YmE+XSA/IFN5 U19kZWxldGVfbW9kdWxlKzB4MThhLzB4MjUwClsgIDkwOC45ODQyNDFdICBbPGZmZmZmZmZmODEw ODZmOTk+XSA/IHRhc2tfd29ya19ydW4rMHg4OS8weGMwClsgIDkwOC45ODQyNDRdICBbPGZmZmZm ZmZmODE1MmI3MzI+XSA/CmVudHJ5X1NZU0NBTExfNjRfZmFzdHBhdGgrMHgxNi8weDc1ClsgIDkw OC45ODQyNDddIC0tLVsgZW5kIHRyYWNlIDdjMDA2ZWQ0YWJiZWYyNGIgXS0tLQoKVGh1cyByZW1v dmUgdGhlIHByb2MgZW50cnkgbWFudWFsbHkgaWYgYm9uZF9yZWxlYXNlX2FuZF9kZXN0cm95KCkg aXMKdXNlZC4gQmVjYXVzZSBvZiB0aGUgY2hlY2tzIGluIGJvbmRfcmVtb3ZlX3Byb2NfZW50cnko KSBpdCdzIG5vdCBhCnByb2JsZW0gZm9yIGEgYm9uZCBkZXZpY2UgdG8gY2hhbmdlIG5hbWVzcGFj ZXMgKHRoZSBidWcgZml4ZWQgYnkgdGhlCkZpeGVzIGNvbW1pdCkgYnV0IHNpbmNlIGNvbW1pdApm OTM5OTgxNDkyN2FkICgiYm9uZGluZzogRG9uJ3QgYWxsb3cgYm9uZCBkZXZpY2VzIHRvIGNoYW5n ZSBuZXR3b3JrCm5hbWVzcGFjZXMuIikgdGhhdCBjYW4ndCBoYXBwZW4gYW55d2F5LgoKUmVwb3J0 ZWQtYnk6IENhcm9sIFNvdG8gPGNsc290b0BsaW51eC52bmV0LmlibS5jb20+ClNpZ25lZC1vZmYt Ynk6IE5pa29sYXkgQWxla3NhbmRyb3YgPG5pa29sYXlAY3VtdWx1c25ldHdvcmtzLmNvbT4KRml4 ZXM6IGE2NGQ0OWMzZGQ1MCAoImJvbmRpbmc6IE1hbmFnZSAvcHJvYy9uZXQvYm9uZGluZy8gZW50 cmllcyBmcm9tCiAgICAgICAgICAgICAgICAgICAgICB0aGUgbmV0ZGV2IGV2ZW50cyIpClRlc3Rl ZC1ieTogQ2Fyb2wgTCBTb3RvIDxjbHNvdG9AbGludXgudm5ldC5pYm0uY29tPgpTaWduZWQtb2Zm LWJ5OiBEYXZpZCBTLiBNaWxsZXIgPGRhdmVtQGRhdmVtbG9mdC5uZXQ+Ci0tLQogZHJpdmVycy9u ZXQvYm9uZGluZy9ib25kX21haW4uYyB8IDEgKwogMSBmaWxlIGNoYW5nZWQsIDEgaW5zZXJ0aW9u KCspCgpkaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvYm9uZGluZy9ib25kX21haW4uYyBiL2RyaXZl cnMvbmV0L2JvbmRpbmcvYm9uZF9tYWluLmMKaW5kZXggMzJiMGU3MDUuLjcwMDhjZjQgMTAwNjQ0 Ci0tLSBhL2RyaXZlcnMvbmV0L2JvbmRpbmcvYm9uZF9tYWluLmMKKysrIGIvZHJpdmVycy9uZXQv Ym9uZGluZy9ib25kX21haW4uYwpAQCAtMTgyNSw2ICsxODI1LDcgQEAgc3RhdGljIGludCAgYm9u ZF9yZWxlYXNlX2FuZF9kZXN0cm95KHN0cnVjdCBuZXRfZGV2aWNlICpib25kX2RldiwKIAkJYm9u ZF9kZXYtPnByaXZfZmxhZ3MgfD0gSUZGX0RJU0FCTEVfTkVUUE9MTDsKIAkJcHJfaW5mbygiJXM6 IGRlc3Ryb3lpbmcgYm9uZCAlcy5cbiIsCiAJCQlib25kX2Rldi0+bmFtZSwgYm9uZF9kZXYtPm5h bWUpOworCQlib25kX3JlbW92ZV9wcm9jX2VudHJ5KGJvbmQpOwogCQl1bnJlZ2lzdGVyX25ldGRl dmljZShib25kX2Rldik7CiAJfQogCXJldHVybiByZXQ7Ci0tIAoyLjEuMAoKCkZyb20gOWFmZWYw ZWZhMjE2MTZiNmFhMWM3NTZlM2M4ZDA2MjVmZjFkNmQxNiBNb24gU2VwIDE3IDAwOjAwOjAwIDIw MDEKRnJvbTogZGluZ3RpYW5ob25nIDxkaW5ndGlhbmhvbmdAaHVhd2VpLmNvbT4KRGF0ZTogVGh1 LCAxNiBKdWwgMjAxNSAxNjozMDowMiArMDgwMApTdWJqZWN0OiBbUEFUQ0ggMTcvMjVdIGJvbmRp bmc6IGNvcnJlY3QgdGhlIE1BQyBhZGRyZXNzIGZvciAiZm9sbG93IgogZmFpbF9vdmVyX21hYyBw b2xpY3kKClsgVXBzdHJlYW0gY29tbWl0IGE5NTFiYzFlNmJhNThmMTFkZjVlZDVkZGM0MTMxMWUx MGY1ZmQyMGIgXQoKVGhlICJmb2xsb3ciIGZhaWxfb3Zlcl9tYWMgcG9saWN5IGlzIHVzZWZ1bCBm b3IgbXVsdGlwb3J0IGRldmljZXMgdGhhdAplaXRoZXIgYmVjb21lIGNvbmZ1c2VkIG9yIGluY3Vy IGEgcGVyZm9ybWFuY2UgcGVuYWx0eSB3aGVuIG11bHRpcGxlCnBvcnRzIGFyZSBwcm9ncmFtbWVk IHdpdGggdGhlIHNhbWUgTUFDIGFkZHJlc3MsIGJ1dCB0aGUgc2FtZSBNQUMKYWRkcmVzcyBzdGls bCBtYXkgaGFwcGVuZWQgYnkgdGhpcyBzdGVwcyBmb3IgdGhpcyBwb2xpY3k6CgoxKSBlY2hvICtl dGgwID4gL3N5cy9jbGFzcy9uZXQvYm9uZDAvYm9uZGluZy9zbGF2ZXMKICAgYm9uZDAgaGFzIHRo ZSBzYW1lIG1hYyBhZGRyZXNzIHdpdGggZXRoMCwgaXQgaXMgTUFDMS4KCjIpIGVjaG8gK2V0aDEg PiAvc3lzL2NsYXNzL25ldC9ib25kMC9ib25kaW5nL3NsYXZlcwogICBldGgxIGlzIGJhY2t1cCwg ZXRoMSBoYXMgTUFDMi4KCjMpIGlmY29uZmlnIGV0aDAgZG93bgogICBldGgxIGJlY2FtZSBhY3Rp dmUgc2xhdmUsIGJvbmQgd2lsbCBzd2FwIE1BQyBmb3IgZXRoMCBhbmQgZXRoMSwKICAgc28gZXRo MSBoYXMgTUFDMSwgYW5kIGV0aDAgaGFzIE1BQzIuCgo0KSBpZmNvbmZpZyBldGgxIGRvd24KICAg dGhlcmUgaXMgbm8gYWN0aXZlIHNsYXZlLCBhbmQgZXRoMSBzdGlsbCBoYXMgTUFDMSwgZXRoMiBo YXMgTUFDMi4KCjUpIGlmY29uZmlnIGV0aDAgdXAKICAgdGhlIGV0aDAgYmVjYW1lIGFjdGl2ZSBz bGF2ZSBhZ2FpbiwgdGhlIGJvbmQgc2V0IGV0aDAgdG8gTUFDMS4KClNvbWV0aGluZyB3cm9uZyBo ZXJlLCB0aGVuIGlmIHlvdSBzZXQgZXRoMSB1cCwgdGhlIGV0aDAgYW5kIGV0aDEgd2lsbCBoYXZl IHRoZSBzYW1lCk1BQyBhZGRyZXNzLCBpdCB3aWxsIGJyZWFrIHRoaXMgcG9saWN5IGZvciBBQ1RJ VkVfQkFDS1VQIG1vZGUuCgpUaGlzIHBhdGNoIHdpbGwgZml4IHRoaXMgcHJvYmxlbSBieSBmaW5k aW5nIHRoZSBvbGQgYWN0aXZlIHNsYXZlIGFuZApzd2FwIHRoZW0gTUFDIGFkZHJlc3MgYmVmb3Jl IGNoYW5nZSBhY3RpdmUgc2xhdmUuCgpTaWduZWQtb2ZmLWJ5OiBEaW5nIFRpYW5ob25nIDxkaW5n dGlhbmhvbmdAaHVhd2VpLmNvbT4KVGVzdGVkLWJ5OiBOaWtvbGF5IEFsZWtzYW5kcm92IDxuaWtv bGF5QGN1bXVsdXNuZXR3b3Jrcy5jb20+ClNpZ25lZC1vZmYtYnk6IERhdmlkIFMuIE1pbGxlciA8 ZGF2ZW1AZGF2ZW1sb2Z0Lm5ldD4KLS0tCiBkcml2ZXJzL25ldC9ib25kaW5nL2JvbmRfbWFpbi5j IHwgMjAgKysrKysrKysrKysrKysrKysrKysKIDEgZmlsZSBjaGFuZ2VkLCAyMCBpbnNlcnRpb25z KCspCgpkaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvYm9uZGluZy9ib25kX21haW4uYyBiL2RyaXZl cnMvbmV0L2JvbmRpbmcvYm9uZF9tYWluLmMKaW5kZXggNzAwOGNmNC4uMDY5N2Q4ZiAxMDA2NDQK LS0tIGEvZHJpdmVycy9uZXQvYm9uZGluZy9ib25kX21haW4uYworKysgYi9kcml2ZXJzL25ldC9i b25kaW5nL2JvbmRfbWFpbi5jCkBAIC02MzYsNiArNjM2LDIzIEBAIHN0YXRpYyB2b2lkIGJvbmRf c2V0X2Rldl9hZGRyKHN0cnVjdCBuZXRfZGV2aWNlICpib25kX2RldiwKIAljYWxsX25ldGRldmlj ZV9ub3RpZmllcnMoTkVUREVWX0NIQU5HRUFERFIsIGJvbmRfZGV2KTsKIH0KIAorc3RhdGljIHN0 cnVjdCBzbGF2ZSAqYm9uZF9nZXRfb2xkX2FjdGl2ZShzdHJ1Y3QgYm9uZGluZyAqYm9uZCwKKwkJ CQkJIHN0cnVjdCBzbGF2ZSAqbmV3X2FjdGl2ZSkKK3sKKwlzdHJ1Y3Qgc2xhdmUgKnNsYXZlOwor CXN0cnVjdCBsaXN0X2hlYWQgKml0ZXI7CisKKwlib25kX2Zvcl9lYWNoX3NsYXZlKGJvbmQsIHNs YXZlLCBpdGVyKSB7CisJCWlmIChzbGF2ZSA9PSBuZXdfYWN0aXZlKQorCQkJY29udGludWU7CisK KwkJaWYgKGV0aGVyX2FkZHJfZXF1YWwoYm9uZC0+ZGV2LT5kZXZfYWRkciwgc2xhdmUtPmRldi0+ ZGV2X2FkZHIpKQorCQkJcmV0dXJuIHNsYXZlOworCX0KKworCXJldHVybiBOVUxMOworfQorCiAv KgogICogYm9uZF9kb19mYWlsX292ZXJfbWFjCiAgKgpAQCAtNjcyLDYgKzY4OSw5IEBAIHN0YXRp YyB2b2lkIGJvbmRfZG9fZmFpbF9vdmVyX21hYyhzdHJ1Y3QgYm9uZGluZyAqYm9uZCwKIAogCQl3 cml0ZV91bmxvY2tfYmgoJmJvbmQtPmN1cnJfc2xhdmVfbG9jayk7CiAKKwkJaWYgKCFvbGRfYWN0 aXZlKQorCQkJb2xkX2FjdGl2ZSA9IGJvbmRfZ2V0X29sZF9hY3RpdmUoYm9uZCwgbmV3X2FjdGl2 ZSk7CisKIAkJaWYgKG9sZF9hY3RpdmUpIHsKIAkJCW1lbWNweSh0bXBfbWFjLCBuZXdfYWN0aXZl LT5kZXYtPmRldl9hZGRyLCBFVEhfQUxFTik7CiAJCQltZW1jcHkoc2FkZHIuc2FfZGF0YSwgb2xk X2FjdGl2ZS0+ZGV2LT5kZXZfYWRkciwKLS0gCjIuMS4wCgoKRnJvbSAwOGI5ZGM4NTc4MjdkZGUx NGRmYWUxODc5OTE3MDFiNWQ2YjE2ZjM4IE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBF ZHdhcmQgSHl1bmtvbyBKZWUgPGVkamVlQGdvb2dsZS5jb20+CkRhdGU6IFR1ZSwgMjEgSnVsIDIw MTUgMDk6NDM6NTkgKzAyMDAKU3ViamVjdDogW1BBVENIIDE4LzI1XSBpbmV0OiBmcmFnczogZml4 IGRlZnJhZ21lbnRlZCBwYWNrZXQncyBJUCBoZWFkZXIgZm9yCiBhZl9wYWNrZXQKClsgVXBzdHJl YW0gY29tbWl0IDA4NDhmNjQyOGJhM2EyZTQyZGIxMjRkNDFhYzZmNTQ4NjU1NzM1YmYgXQoKV2hl biBpcF9mcmFnX3F1ZXVlKCkgY29tcHV0ZXMgcG9zaXRpb25zLCBpdCBhc3N1bWVzIHRoYXQgdGhl IHBhc3NlZApza19idWZmIGRvZXMgbm90IGNvbnRhaW4gTDIgaGVhZGVycy4KCkhvd2V2ZXIsIHdo ZW4gUEFDS0VUX0ZBTk9VVF9GTEFHX0RFRlJBRyBpcyB1c2VkLCBJUCByZWFzc2VtYmx5CmZ1bmN0 aW9ucyBjYW4gYmUgY2FsbGVkIG9uIG91dGdvaW5nIHBhY2tldHMgdGhhdCBjb250YWluIEwyIGhl YWRlcnMuCgpBbHNvLCBJUHY0IGNoZWNrc3VtIGlzIG5vdCBjb3JyZWN0ZWQgYWZ0ZXIgcmVhc3Nl bWJseS4KCkZpeGVzOiA3NzM2ZDMzZjQyNjIgKCJwYWNrZXQ6IEFkZCBwcmUtZGVmcmFnbWVudGF0 aW9uIHN1cHBvcnQgZm9yIGlwdjQgZmFub3V0cy4iKQpTaWduZWQtb2ZmLWJ5OiBFZHdhcmQgSHl1 bmtvbyBKZWUgPGVkamVlQGdvb2dsZS5jb20+ClNpZ25lZC1vZmYtYnk6IEVyaWMgRHVtYXpldCA8 ZWR1bWF6ZXRAZ29vZ2xlLmNvbT4KQ2M6IFdpbGxlbSBkZSBCcnVpam4gPHdpbGxlbWJAZ29vZ2xl LmNvbT4KQ2M6IEplcnJ5IENodSA8aGtjaHVAZ29vZ2xlLmNvbT4KU2lnbmVkLW9mZi1ieTogRGF2 aWQgUy4gTWlsbGVyIDxkYXZlbUBkYXZlbWxvZnQubmV0PgotLS0KIG5ldC9pcHY0L2lwX2ZyYWdt ZW50LmMgfCA3ICsrKysrLS0KIDEgZmlsZSBjaGFuZ2VkLCA1IGluc2VydGlvbnMoKyksIDIgZGVs ZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvbmV0L2lwdjQvaXBfZnJhZ21lbnQuYyBiL25ldC9pcHY0 L2lwX2ZyYWdtZW50LmMKaW5kZXggOWZmNDk3ZC4uM2YzYTQyNCAxMDA2NDQKLS0tIGEvbmV0L2lw djQvaXBfZnJhZ21lbnQuYworKysgYi9uZXQvaXB2NC9pcF9mcmFnbWVudC5jCkBAIC0zNTcsNyAr MzU3LDcgQEAgc3RhdGljIGludCBpcF9mcmFnX3F1ZXVlKHN0cnVjdCBpcHEgKnFwLCBzdHJ1Y3Qg c2tfYnVmZiAqc2tiKQogCWlobCA9IGlwX2hkcmxlbihza2IpOwogCiAJLyogRGV0ZXJtaW5lIHRo ZSBwb3NpdGlvbiBvZiB0aGlzIGZyYWdtZW50LiAqLwotCWVuZCA9IG9mZnNldCArIHNrYi0+bGVu IC0gaWhsOworCWVuZCA9IG9mZnNldCArIHNrYi0+bGVuIC0gc2tiX25ldHdvcmtfb2Zmc2V0KHNr YikgLSBpaGw7CiAJZXJyID0gLUVJTlZBTDsKIAogCS8qIElzIHRoaXMgdGhlIGZpbmFsIGZyYWdt ZW50PyAqLwpAQCAtMzg3LDcgKzM4Nyw3IEBAIHN0YXRpYyBpbnQgaXBfZnJhZ19xdWV1ZShzdHJ1 Y3QgaXBxICpxcCwgc3RydWN0IHNrX2J1ZmYgKnNrYikKIAkJZ290byBlcnI7CiAKIAllcnIgPSAt RU5PTUVNOwotCWlmIChwc2tiX3B1bGwoc2tiLCBpaGwpID09IE5VTEwpCisJaWYgKCFwc2tiX3B1 bGwoc2tiLCBza2JfbmV0d29ya19vZmZzZXQoc2tiKSArIGlobCkpCiAJCWdvdG8gZXJyOwogCiAJ ZXJyID0gcHNrYl90cmltX3Jjc3VtKHNrYiwgZW5kIC0gb2Zmc2V0KTsKQEAgLTYyOCw2ICs2Mjgs OSBAQCBzdGF0aWMgaW50IGlwX2ZyYWdfcmVhc20oc3RydWN0IGlwcSAqcXAsIHN0cnVjdCBza19i dWZmICpwcmV2LAogCWlwaC0+ZnJhZ19vZmYgPSBxcC0+cS5tYXhfc2l6ZSA/IGh0b25zKElQX0RG KSA6IDA7CiAJaXBoLT50b3RfbGVuID0gaHRvbnMobGVuKTsKIAlpcGgtPnRvcyB8PSBlY247CisK KwlpcF9zZW5kX2NoZWNrKGlwaCk7CisKIAlJUF9JTkNfU1RBVFNfQkgobmV0LCBJUFNUQVRTX01J Ql9SRUFTTU9LUyk7CiAJcXAtPnEuZnJhZ21lbnRzID0gTlVMTDsKIAlxcC0+cS5mcmFnbWVudHNf dGFpbCA9IE5VTEw7Ci0tIAoyLjEuMAoKCkZyb20gYWMxODcyMThiMWJjM2E5MDA0YTM4ZjY4MDRk ZjE1NWE5MjI4MmEyYiBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJvbTogRmxvcmlhbiBXZXN0 cGhhbCA8ZndAc3RybGVuLmRlPgpEYXRlOiBUdWUsIDIxIEp1bCAyMDE1IDE2OjMzOjUwICswMjAw ClN1YmplY3Q6IFtQQVRDSCAxOS8yNV0gbmV0bGluazogZG9uJ3QgaG9sZCBtdXRleCBpbiByY3Ug Y2FsbGJhY2sgd2hlbgogcmVsZWFzaW5nIG1tYXBkIHJpbmcKClsgVXBzdHJlYW0gY29tbWl0IDA0 NzBlYjk5YjQ3MjE1ODZjY2FjOTU0ZmFhYzNmYTQ0NzJkYTA4NDUgXQoKS2lyaWxsIEEuIFNodXRl bW92IHNheXM6CgpUaGlzIHNpbXBsZSB0ZXN0LWNhc2UgdHJpZ2VycyBmZXcgbG9ja2luZyBhc3Nl cnRzIGluIGtlcm5lbDoKCmludCBtYWluKGludCBhcmdjLCBjaGFyICoqYXJndikKewogICAgICAg IHVuc2lnbmVkIGludCBibG9ja19zaXplID0gMTYgKiA0MDk2OwogICAgICAgIHN0cnVjdCBubF9t bWFwX3JlcSByZXEgPSB7CiAgICAgICAgICAgICAgICAubm1fYmxvY2tfc2l6ZSAgICAgICAgICA9 IGJsb2NrX3NpemUsCiAgICAgICAgICAgICAgICAubm1fYmxvY2tfbnIgICAgICAgICAgICA9IDY0 LAogICAgICAgICAgICAgICAgLm5tX2ZyYW1lX3NpemUgICAgICAgICAgPSAxNjM4NCwKICAgICAg ICAgICAgICAgIC5ubV9mcmFtZV9uciAgICAgICAgICAgID0gNjQgKiBibG9ja19zaXplIC8gMTYz ODQsCiAgICAgICAgfTsKICAgICAgICB1bnNpZ25lZCBpbnQgcmluZ19zaXplOwoJaW50IGZkOwoK CWZkID0gc29ja2V0KEFGX05FVExJTkssIFNPQ0tfUkFXLCBORVRMSU5LX0dFTkVSSUMpOwogICAg ICAgIGlmIChzZXRzb2Nrb3B0KGZkLCBTT0xfTkVUTElOSywgTkVUTElOS19SWF9SSU5HLCAmcmVx LCBzaXplb2YocmVxKSkgPCAwKQogICAgICAgICAgICAgICAgZXhpdCgxKTsKICAgICAgICBpZiAo c2V0c29ja29wdChmZCwgU09MX05FVExJTkssIE5FVExJTktfVFhfUklORywgJnJlcSwgc2l6ZW9m KHJlcSkpIDwgMCkKICAgICAgICAgICAgICAgIGV4aXQoMSk7CgoJcmluZ19zaXplID0gcmVxLm5t X2Jsb2NrX25yICogcmVxLm5tX2Jsb2NrX3NpemU7CgltbWFwKE5VTEwsIDIgKiByaW5nX3NpemUs IFBST1RfUkVBRHxQUk9UX1dSSVRFLCBNQVBfU0hBUkVELCBmZCwgMCk7CglyZXR1cm4gMDsKfQoK KysrIGV4aXRlZCB3aXRoIDAgKysrCkJVRzogc2xlZXBpbmcgZnVuY3Rpb24gY2FsbGVkIGZyb20g aW52YWxpZCBjb250ZXh0IGF0IC9ob21lL2thcy9naXQvcHVibGljL2xpbnV4LW1tL2tlcm5lbC9s b2NraW5nL211dGV4LmM6NjE2CmluX2F0b21pYygpOiAxLCBpcnFzX2Rpc2FibGVkKCk6IDAsIHBp ZDogMSwgbmFtZTogaW5pdAozIGxvY2tzIGhlbGQgYnkgaW5pdC8xOgogIzA6ICAocmVib290X211 dGV4KXsrLisuLi59LCBhdDogWzxmZmZmZmZmZjgxMDgwOTU5Pl0gU3lTX3JlYm9vdCsweGE5LzB4 MjIwCiAjMTogICgocmVib290X25vdGlmaWVyX2xpc3QpLnJ3c2VtKXsuKy4rLi59LCBhdDogWzxm ZmZmZmZmZjgxMDdmMzc5Pl0gX19ibG9ja2luZ19ub3RpZmllcl9jYWxsX2NoYWluKzB4MzkvMHg3 MAogIzI6ICAocmN1X2NhbGxiYWNrKXsuLi4uLi59LCBhdDogWzxmZmZmZmZmZjgxMGQzMmUwPl0g cmN1X2RvX2JhdGNoLmlzcmEuNDkrMHgxNjAvMHgxMGMwClByZWVtcHRpb24gZGlzYWJsZWQgYXQ6 WzxmZmZmZmZmZjgxNDUzNjVmPl0gX19kZWxheSsweGYvMHgyMAoKQ1BVOiAxIFBJRDogMSBDb21t OiBpbml0IE5vdCB0YWludGVkIDQuMS4wLTAwMDA5LWdiZGRmNGM0ODE4ZTAgIzI1MwpIYXJkd2Fy ZSBuYW1lOiBRRU1VIFN0YW5kYXJkIFBDIChRMzUgKyBJQ0g5LCAyMDA5KSwgQklPUyBEZWJpYW4t MS44LjItMSAwNC8wMS8yMDE0CiBmZmZmODgwMTdiM2Q4MDAwIGZmZmY4ODAyN2JjMDNjMzggZmZm ZmZmZmY4MTkyOWNlYiAwMDAwMDAwMDAwMDAwMTAyCiAwMDAwMDAwMDAwMDAwMDAwIGZmZmY4ODAy N2JjMDNjNjggZmZmZmZmZmY4MTA4NWE5ZCAwMDAwMDAwMDAwMDAwMDAyCiBmZmZmZmZmZjgxY2Ey YTIwIDAwMDAwMDAwMDAwMDAyNjggMDAwMDAwMDAwMDAwMDAwMCBmZmZmODgwMjdiYzAzYzk4CkNh bGwgVHJhY2U6CiA8SVJRPiAgWzxmZmZmZmZmZjgxOTI5Y2ViPl0gZHVtcF9zdGFjaysweDRmLzB4 N2IKIFs8ZmZmZmZmZmY4MTA4NWE5ZD5dIF9fX21pZ2h0X3NsZWVwKzB4MTZkLzB4MjcwCiBbPGZm ZmZmZmZmODEwODViZWQ+XSBfX21pZ2h0X3NsZWVwKzB4NGQvMHg5MAogWzxmZmZmZmZmZjgxOTJl OTZmPl0gbXV0ZXhfbG9ja19uZXN0ZWQrMHgyZi8weDQzMAogWzxmZmZmZmZmZjgxOTMyZmVkPl0g PyBfcmF3X3NwaW5fdW5sb2NrX2lycXJlc3RvcmUrMHg1ZC8weDgwCiBbPGZmZmZmZmZmODE0NjQx NDM+XSA/IF9fdGhpc19jcHVfcHJlZW1wdF9jaGVjaysweDEzLzB4MjAKIFs8ZmZmZmZmZmY4MTgy ZmMzZD5dIG5ldGxpbmtfc2V0X3JpbmcrMHgxZWQvMHgzNTAKIFs8ZmZmZmZmZmY4MTgyZTAwMD5d ID8gbmV0bGlua191bmRvX2JpbmQrMHg3MC8weDcwCiBbPGZmZmZmZmZmODE4MmZlMjA+XSBuZXRs aW5rX3NvY2tfZGVzdHJ1Y3QrMHg4MC8weDE1MAogWzxmZmZmZmZmZjgxN2U0ODRkPl0gX19za19m cmVlKzB4MWQvMHgxNjAKIFs8ZmZmZmZmZmY4MTdlNDlhOT5dIHNrX2ZyZWUrMHgxOS8weDIwClsu Ll0KCkNvbmcgV2FuZyBzYXlzOgoKV2UgY2FuJ3QgaG9sZCBtdXRleCBsb2NrIGluIGEgcmN1IGNh bGxiYWNrLCBbLi5dCgpUaG9tYXMgR3JhZiBzYXlzOgoKVGhlIHNvY2tldCBzaG91bGQgYmUgZGVh ZCBhdCB0aGlzIHBvaW50LiBJdCBtaWdodCBiZSBzaW1wbGVyIHRvCmFkZCBhIG5ldGxpbmtfcmVs ZWFzZV9yaW5nKCkgZnVuY3Rpb24gd2hpY2ggZG9lc24ndCByZXF1aXJlCmxvY2tpbmcgYXQgYWxs LgoKUmVwb3J0ZWQtYnk6ICJLaXJpbGwgQS4gU2h1dGVtb3YiIDxraXJpbGxAc2h1dGVtb3YubmFt ZT4KRGlhZ25vc2VkLWJ5OiBDb25nIFdhbmcgPGN3YW5nQHR3b3BlbnNvdXJjZS5jb20+ClN1Z2dl c3RlZC1ieTogVGhvbWFzIEdyYWYgPHRncmFmQHN1dWcuY2g+ClNpZ25lZC1vZmYtYnk6IEZsb3Jp YW4gV2VzdHBoYWwgPGZ3QHN0cmxlbi5kZT4KU2lnbmVkLW9mZi1ieTogRGF2aWQgUy4gTWlsbGVy IDxkYXZlbUBkYXZlbWxvZnQubmV0PgotLS0KIG5ldC9uZXRsaW5rL2FmX25ldGxpbmsuYyB8IDc5 ICsrKysrKysrKysrKysrKysrKysrKysrKysrKystLS0tLS0tLS0tLS0tLS0tLS0tLQogMSBmaWxl IGNoYW5nZWQsIDQ3IGluc2VydGlvbnMoKyksIDMyIGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBh L25ldC9uZXRsaW5rL2FmX25ldGxpbmsuYyBiL25ldC9uZXRsaW5rL2FmX25ldGxpbmsuYwppbmRl eCBhMGIwZWE5Li4xNWRhYjljIDEwMDY0NAotLS0gYS9uZXQvbmV0bGluay9hZl9uZXRsaW5rLmMK KysrIGIvbmV0L25ldGxpbmsvYWZfbmV0bGluay5jCkBAIC0zNTAsMjUgKzM1MCw1MiBAQCBlcnIx OgogCXJldHVybiBOVUxMOwogfQogCisKK3N0YXRpYyB2b2lkCitfX25ldGxpbmtfc2V0X3Jpbmco c3RydWN0IHNvY2sgKnNrLCBzdHJ1Y3QgbmxfbW1hcF9yZXEgKnJlcSwgYm9vbCB0eF9yaW5nLCB2 b2lkICoqcGdfdmVjLAorCQkgICB1bnNpZ25lZCBpbnQgb3JkZXIpCit7CisJc3RydWN0IG5ldGxp bmtfc29jayAqbmxrID0gbmxrX3NrKHNrKTsKKwlzdHJ1Y3Qgc2tfYnVmZl9oZWFkICpxdWV1ZTsK KwlzdHJ1Y3QgbmV0bGlua19yaW5nICpyaW5nOworCisJcXVldWUgPSB0eF9yaW5nID8gJnNrLT5z a193cml0ZV9xdWV1ZSA6ICZzay0+c2tfcmVjZWl2ZV9xdWV1ZTsKKwlyaW5nICA9IHR4X3Jpbmcg PyAmbmxrLT50eF9yaW5nIDogJm5say0+cnhfcmluZzsKKworCXNwaW5fbG9ja19iaCgmcXVldWUt PmxvY2spOworCisJcmluZy0+ZnJhbWVfbWF4CQk9IHJlcS0+bm1fZnJhbWVfbnIgLSAxOworCXJp bmctPmhlYWQJCT0gMDsKKwlyaW5nLT5mcmFtZV9zaXplCT0gcmVxLT5ubV9mcmFtZV9zaXplOwor CXJpbmctPnBnX3ZlY19wYWdlcwk9IHJlcS0+bm1fYmxvY2tfc2l6ZSAvIFBBR0VfU0laRTsKKwor CXN3YXAocmluZy0+cGdfdmVjX2xlbiwgcmVxLT5ubV9ibG9ja19ucik7CisJc3dhcChyaW5nLT5w Z192ZWNfb3JkZXIsIG9yZGVyKTsKKwlzd2FwKHJpbmctPnBnX3ZlYywgcGdfdmVjKTsKKworCV9f c2tiX3F1ZXVlX3B1cmdlKHF1ZXVlKTsKKwlzcGluX3VubG9ja19iaCgmcXVldWUtPmxvY2spOwor CisJV0FSTl9PTihhdG9taWNfcmVhZCgmbmxrLT5tYXBwZWQpKTsKKworCWlmIChwZ192ZWMpCisJ CWZyZWVfcGdfdmVjKHBnX3ZlYywgb3JkZXIsIHJlcS0+bm1fYmxvY2tfbnIpOworfQorCiBzdGF0 aWMgaW50IG5ldGxpbmtfc2V0X3Jpbmcoc3RydWN0IHNvY2sgKnNrLCBzdHJ1Y3QgbmxfbW1hcF9y ZXEgKnJlcSwKLQkJCSAgICBib29sIGNsb3NpbmcsIGJvb2wgdHhfcmluZykKKwkJCSAgICBib29s IHR4X3JpbmcpCiB7CiAJc3RydWN0IG5ldGxpbmtfc29jayAqbmxrID0gbmxrX3NrKHNrKTsKIAlz dHJ1Y3QgbmV0bGlua19yaW5nICpyaW5nOwotCXN0cnVjdCBza19idWZmX2hlYWQgKnF1ZXVlOwog CXZvaWQgKipwZ192ZWMgPSBOVUxMOwogCXVuc2lnbmVkIGludCBvcmRlciA9IDA7Ci0JaW50IGVy cjsKIAogCXJpbmcgID0gdHhfcmluZyA/ICZubGstPnR4X3JpbmcgOiAmbmxrLT5yeF9yaW5nOwot CXF1ZXVlID0gdHhfcmluZyA/ICZzay0+c2tfd3JpdGVfcXVldWUgOiAmc2stPnNrX3JlY2VpdmVf cXVldWU7CiAKLQlpZiAoIWNsb3NpbmcpIHsKLQkJaWYgKGF0b21pY19yZWFkKCZubGstPm1hcHBl ZCkpCi0JCQlyZXR1cm4gLUVCVVNZOwotCQlpZiAoYXRvbWljX3JlYWQoJnJpbmctPnBlbmRpbmcp KQotCQkJcmV0dXJuIC1FQlVTWTsKLQl9CisJaWYgKGF0b21pY19yZWFkKCZubGstPm1hcHBlZCkp CisJCXJldHVybiAtRUJVU1k7CisJaWYgKGF0b21pY19yZWFkKCZyaW5nLT5wZW5kaW5nKSkKKwkJ cmV0dXJuIC1FQlVTWTsKIAogCWlmIChyZXEtPm5tX2Jsb2NrX25yKSB7CiAJCWlmIChyaW5nLT5w Z192ZWMgIT0gTlVMTCkKQEAgLTQwMCwzMSArNDI3LDE5IEBAIHN0YXRpYyBpbnQgbmV0bGlua19z ZXRfcmluZyhzdHJ1Y3Qgc29jayAqc2ssIHN0cnVjdCBubF9tbWFwX3JlcSAqcmVxLAogCQkJcmV0 dXJuIC1FSU5WQUw7CiAJfQogCi0JZXJyID0gLUVCVVNZOwogCW11dGV4X2xvY2soJm5say0+cGdf dmVjX2xvY2spOwotCWlmIChjbG9zaW5nIHx8IGF0b21pY19yZWFkKCZubGstPm1hcHBlZCkgPT0g MCkgewotCQllcnIgPSAwOwotCQlzcGluX2xvY2tfYmgoJnF1ZXVlLT5sb2NrKTsKLQotCQlyaW5n LT5mcmFtZV9tYXgJCT0gcmVxLT5ubV9mcmFtZV9uciAtIDE7Ci0JCXJpbmctPmhlYWQJCT0gMDsK LQkJcmluZy0+ZnJhbWVfc2l6ZQk9IHJlcS0+bm1fZnJhbWVfc2l6ZTsKLQkJcmluZy0+cGdfdmVj X3BhZ2VzCT0gcmVxLT5ubV9ibG9ja19zaXplIC8gUEFHRV9TSVpFOwotCi0JCXN3YXAocmluZy0+ cGdfdmVjX2xlbiwgcmVxLT5ubV9ibG9ja19ucik7Ci0JCXN3YXAocmluZy0+cGdfdmVjX29yZGVy LCBvcmRlcik7Ci0JCXN3YXAocmluZy0+cGdfdmVjLCBwZ192ZWMpOwotCi0JCV9fc2tiX3F1ZXVl X3B1cmdlKHF1ZXVlKTsKLQkJc3Bpbl91bmxvY2tfYmgoJnF1ZXVlLT5sb2NrKTsKLQotCQlXQVJO X09OKGF0b21pY19yZWFkKCZubGstPm1hcHBlZCkpOworCWlmIChhdG9taWNfcmVhZCgmbmxrLT5t YXBwZWQpID09IDApIHsKKwkJX19uZXRsaW5rX3NldF9yaW5nKHNrLCByZXEsIHR4X3JpbmcsIHBn X3ZlYywgb3JkZXIpOworCQltdXRleF91bmxvY2soJm5say0+cGdfdmVjX2xvY2spOworCQlyZXR1 cm4gMDsKIAl9CisKIAltdXRleF91bmxvY2soJm5say0+cGdfdmVjX2xvY2spOwogCiAJaWYgKHBn X3ZlYykKIAkJZnJlZV9wZ192ZWMocGdfdmVjLCBvcmRlciwgcmVxLT5ubV9ibG9ja19ucik7Ci0J cmV0dXJuIGVycjsKKworCXJldHVybiAtRUJVU1k7CiB9CiAKIHN0YXRpYyB2b2lkIG5ldGxpbmtf bW1fb3BlbihzdHJ1Y3Qgdm1fYXJlYV9zdHJ1Y3QgKnZtYSkKQEAgLTg5MywxMCArOTA4LDEwIEBA IHN0YXRpYyB2b2lkIG5ldGxpbmtfc29ja19kZXN0cnVjdChzdHJ1Y3Qgc29jayAqc2spCiAKIAkJ bWVtc2V0KCZyZXEsIDAsIHNpemVvZihyZXEpKTsKIAkJaWYgKG5say0+cnhfcmluZy5wZ192ZWMp Ci0JCQluZXRsaW5rX3NldF9yaW5nKHNrLCAmcmVxLCB0cnVlLCBmYWxzZSk7CisJCQlfX25ldGxp bmtfc2V0X3Jpbmcoc2ssICZyZXEsIGZhbHNlLCBOVUxMLCAwKTsKIAkJbWVtc2V0KCZyZXEsIDAs IHNpemVvZihyZXEpKTsKIAkJaWYgKG5say0+dHhfcmluZy5wZ192ZWMpCi0JCQluZXRsaW5rX3Nl dF9yaW5nKHNrLCAmcmVxLCB0cnVlLCB0cnVlKTsKKwkJCV9fbmV0bGlua19zZXRfcmluZyhzaywg JnJlcSwgdHJ1ZSwgTlVMTCwgMCk7CiAJfQogI2VuZGlmIC8qIENPTkZJR19ORVRMSU5LX01NQVAg Ki8KIApAQCAtMjE5MCw3ICsyMjA1LDcgQEAgc3RhdGljIGludCBuZXRsaW5rX3NldHNvY2tvcHQo c3RydWN0IHNvY2tldCAqc29jaywgaW50IGxldmVsLCBpbnQgb3B0bmFtZSwKIAkJCXJldHVybiAt RUlOVkFMOwogCQlpZiAoY29weV9mcm9tX3VzZXIoJnJlcSwgb3B0dmFsLCBzaXplb2YocmVxKSkp CiAJCQlyZXR1cm4gLUVGQVVMVDsKLQkJZXJyID0gbmV0bGlua19zZXRfcmluZyhzaywgJnJlcSwg ZmFsc2UsCisJCWVyciA9IG5ldGxpbmtfc2V0X3Jpbmcoc2ssICZyZXEsCiAJCQkJICAgICAgIG9w dG5hbWUgPT0gTkVUTElOS19UWF9SSU5HKTsKIAkJYnJlYWs7CiAJfQotLSAKMi4xLjAKCgpGcm9t IDAxOWY1YTk1ZDM1OTc0MDA0NWJmNTZiZjJjYmU3ZjU4ZjFjY2RlN2UgTW9uIFNlcCAxNyAwMDow MDowMCAyMDAxCkZyb206IEphY2sgTW9yZ2Vuc3RlaW4gPGphY2ttQGRldi5tZWxsYW5veC5jby5p bD4KRGF0ZTogV2VkLCAyMiBKdWwgMjAxNSAxNjo1Mzo0NyArMDMwMApTdWJqZWN0OiBbUEFUQ0gg MjAvMjVdIG5ldC9tbHg0X2NvcmU6IEZpeCB3cm9uZyBpbmRleCBpbiBwcm9wYWdhdGluZyBwb3J0 CiBjaGFuZ2UgZXZlbnQgdG8gVkZzCgpbIFVwc3RyZWFtIGNvbW1pdCAxYzFiZjM0OTUxZThkMTc5 NDFiZjcwOGQxOTAxYzQ3ZTgxYjE1ZDU1IF0KClRoZSBwb3J0LWNoYW5nZSBldmVudCBwcm9jZXNz aW5nIGluIHByb2NlZHVyZSBtbHg0X2VxX2ludCgpIHVzZXMgInNsYXZlIgphcyB0aGUgdmZfb3Bl ciBhcnJheSBpbmRleC4gU2luY2UgdGhlIHZhbHVlIG9mICJzbGF2ZSIgaXMgdGhlIFBGIGZ1bmN0 aW9uCmluZGV4LCB0aGUgcmVzdWx0IGlzIHRoYXQgdGhlIFBGIGxpbmsgc3RhdGUgaXMgdXNlZCBm b3IgZGVjaWRpbmcgdG8KcHJvcGFnYXRlIHRoZSBldmVudCBmb3IgYWxsIHRoZSBWRnMuIFRoZSBW RiBsaW5rIHN0YXRlIHNob3VsZCBiZSB1c2VkLApzbyB0aGUgVkYgZnVuY3Rpb24gaW5kZXggc2hv dWxkIGJlIHVzZWQgaGVyZS4KCkZpeGVzOiA5NDhlMzA2ZDdkNjQgKCduZXQvbWx4NDogQWRkIFZG IGxpbmsgc3RhdGUgc3VwcG9ydCcpClNpZ25lZC1vZmYtYnk6IEphY2sgTW9yZ2Vuc3RlaW4gPGph Y2ttQGRldi5tZWxsYW5veC5jby5pbD4KU2lnbmVkLW9mZi1ieTogTWF0YW4gQmFyYWsgPG1hdGFu YkBtZWxsYW5veC5jb20+ClNpZ25lZC1vZmYtYnk6IE9yIEdlcmxpdHogPG9nZXJsaXR6QG1lbGxh bm94LmNvbT4KU2lnbmVkLW9mZi1ieTogRGF2aWQgUy4gTWlsbGVyIDxkYXZlbUBkYXZlbWxvZnQu bmV0PgotLS0KIGRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDQvZXEuYyB8IDQgKyst LQogMSBmaWxlIGNoYW5nZWQsIDIgaW5zZXJ0aW9ucygrKSwgMiBkZWxldGlvbnMoLSkKCmRpZmYg LS1naXQgYS9kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg0L2VxLmMgYi9kcml2ZXJz L25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg0L2VxLmMKaW5kZXggODk5MmIzOC4uMzM5OGY3YSAx MDA2NDQKLS0tIGEvZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NC9lcS5jCisrKyBi L2RyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDQvZXEuYwpAQCAtNTU3LDcgKzU1Nyw3 IEBAIHN0YXRpYyBpbnQgbWx4NF9lcV9pbnQoc3RydWN0IG1seDRfZGV2ICpkZXYsIHN0cnVjdCBt bHg0X2VxICplcSkKIAkJCQkJCW1seDRfZGJnKGRldiwgIiVzOiBTZW5kaW5nIE1MWDRfUE9SVF9D SEFOR0VfU1VCVFlQRV9ET1dOIgogCQkJCQkJCSAiIHRvIHNsYXZlOiAlZCwgcG9ydDolZFxuIiwK IAkJCQkJCQkgX19mdW5jX18sIGksIHBvcnQpOwotCQkJCQkJc19pbmZvID0gJnByaXYtPm1mdW5j Lm1hc3Rlci52Zl9vcGVyW3NsYXZlXS52cG9ydFtwb3J0XS5zdGF0ZTsKKwkJCQkJCXNfaW5mbyA9 ICZwcml2LT5tZnVuYy5tYXN0ZXIudmZfb3BlcltpXS52cG9ydFtwb3J0XS5zdGF0ZTsKIAkJCQkJ CWlmIChJRkxBX1ZGX0xJTktfU1RBVEVfQVVUTyA9PSBzX2luZm8tPmxpbmtfc3RhdGUpCiAJCQkJ CQkJbWx4NF9zbGF2ZV9ldmVudChkZXYsIGksIGVxZSk7CiAJCQkJCX0gZWxzZSB7ICAvKiBJQiBw b3J0ICovCkBAIC01ODMsNyArNTgzLDcgQEAgc3RhdGljIGludCBtbHg0X2VxX2ludChzdHJ1Y3Qg bWx4NF9kZXYgKmRldiwgc3RydWN0IG1seDRfZXEgKmVxKQogCQkJCQlmb3IgKGkgPSAwOyBpIDwg ZGV2LT5udW1fc2xhdmVzOyBpKyspIHsKIAkJCQkJCWlmIChpID09IG1seDRfbWFzdGVyX2Z1bmNf bnVtKGRldikpCiAJCQkJCQkJY29udGludWU7Ci0JCQkJCQlzX2luZm8gPSAmcHJpdi0+bWZ1bmMu bWFzdGVyLnZmX29wZXJbc2xhdmVdLnZwb3J0W3BvcnRdLnN0YXRlOworCQkJCQkJc19pbmZvID0g JnByaXYtPm1mdW5jLm1hc3Rlci52Zl9vcGVyW3NsYXZlXS52cG9ydFtpXS5zdGF0ZTsKIAkJCQkJ CWlmIChJRkxBX1ZGX0xJTktfU1RBVEVfQVVUTyA9PSBzX2luZm8tPmxpbmtfc3RhdGUpCiAJCQkJ CQkJbWx4NF9zbGF2ZV9ldmVudChkZXYsIGksIGVxZSk7CiAJCQkJCX0KLS0gCjIuMS4wCgoKRnJv bSA2N2Y0OGViMTgyMzkzOTk1ZmIyNGUyZjc2NTdjYTYzZDZlYzUxNWU0IE1vbiBTZXAgMTcgMDA6 MDA6MDAgMjAwMQpGcm9tOiBMYXJzIFdlc3RlcmhvZmYgPGxhcnMud2VzdGVyaG9mZkBuZXd0ZWMu ZXU+CkRhdGU6IFR1ZSwgMjggSnVsIDIwMTUgMDE6MzI6MjEgKzAzMDAKU3ViamVjdDogW1BBVENI IDIxLzI1XSBwYWNrZXQ6IG1pc3NpbmcgZGV2X3B1dCgpIGluIHBhY2tldF9kb19iaW5kKCkKClsg VXBzdHJlYW0gY29tbWl0IDE1OGNkNGFmOGRlZGJkYTBkNjEyZDQ0OGM3MjRjNzE1ZDBkZGE2NDkg XQoKV2hlbiBiaW5kaW5nIGEgUEZfUEFDS0VUIHNvY2tldCwgdGhlIHVzZSBjb3VudCBvZiB0aGUg Ym91bmQgaW50ZXJmYWNlIGlzCmFsd2F5cyBpbmNyZWFzZWQgd2l0aCBkZXZfaG9sZCBpbiBkZXZf Z2V0X2J5X3tpbmRleCxuYW1lfS4gIEhvd2V2ZXIsCndoZW4gcmVib3VuZCB3aXRoIHRoZSBzYW1l IHByb3RvY29sIGFuZCBkZXZpY2UgYXMgaW4gdGhlIHByZXZpb3VzIGJpbmQKdGhlIHVzZSBjb3Vu dCBvZiB0aGUgaW50ZXJmYWNlIHdhcyBub3QgZGVjcmVhc2VkLiAgVWx0aW1hdGVseSwgdGhpcwpj YXVzZWQgdGhlIGRlbGV0aW9uIG9mIHRoZSBpbnRlcmZhY2UgdG8gZmFpbCB3aXRoIHRoZSBmb2xs b3dpbmcgbWVzc2FnZToKCnVucmVnaXN0ZXJfbmV0ZGV2aWNlOiB3YWl0aW5nIGZvciBkdW1teTAg dG8gYmVjb21lIGZyZWUuIFVzYWdlIGNvdW50ID0gMQoKVGhpcyBwYXRjaCBtb3ZlcyB0aGUgZGV2 X3B1dCBvdXQgb2YgdGhlIGNvbmRpdGlvbmFsIHBhcnQgdGhhdCB3YXMgb25seQpleGVjdXRlZCB3 aGVuIGVpdGhlciB0aGUgcHJvdG9jb2wgb3IgZGV2aWNlIGNoYW5nZWQgb24gYSBiaW5kLgoKRml4 ZXM6IDkwMmZlZmI4MmVmNyAoJ3BhY2tldDogaW1wcm92ZSBzb2NrZXQgY3JlYXRlL2JpbmQgbGF0 ZW5jeSBpbiBzb21lIGNhc2VzJykKU2lnbmVkLW9mZi1ieTogTGFycyBXZXN0ZXJob2ZmIDxsYXJz Lndlc3RlcmhvZmZAbmV3dGVjLmV1PgpTaWduZWQtb2ZmLWJ5OiBEYW4gQ2FycGVudGVyIDxkYW4u Y2FycGVudGVyQG9yYWNsZS5jb20+ClJldmlld2VkLWJ5OiBEYW5pZWwgQm9ya21hbm4gPGRib3Jr bWFuQHJlZGhhdC5jb20+ClNpZ25lZC1vZmYtYnk6IERhdmlkIFMuIE1pbGxlciA8ZGF2ZW1AZGF2 ZW1sb2Z0Lm5ldD4KLS0tCiBuZXQvcGFja2V0L2FmX3BhY2tldC5jIHwgOCArKystLS0tLQogMSBm aWxlIGNoYW5nZWQsIDMgaW5zZXJ0aW9ucygrKSwgNSBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQg YS9uZXQvcGFja2V0L2FmX3BhY2tldC5jIGIvbmV0L3BhY2tldC9hZl9wYWNrZXQuYwppbmRleCA4 NGE2MGI4Li5mZWU3ZGNjIDEwMDY0NAotLS0gYS9uZXQvcGFja2V0L2FmX3BhY2tldC5jCisrKyBi L25ldC9wYWNrZXQvYWZfcGFja2V0LmMKQEAgLTI2NDUsNyArMjY0NSw3IEBAIHN0YXRpYyBpbnQg cGFja2V0X3JlbGVhc2Uoc3RydWN0IHNvY2tldCAqc29jaykKIHN0YXRpYyBpbnQgcGFja2V0X2Rv X2JpbmQoc3RydWN0IHNvY2sgKnNrLCBzdHJ1Y3QgbmV0X2RldmljZSAqZGV2LCBfX2JlMTYgcHJv dG8pCiB7CiAJc3RydWN0IHBhY2tldF9zb2NrICpwbyA9IHBrdF9zayhzayk7Ci0JY29uc3Qgc3Ry dWN0IG5ldF9kZXZpY2UgKmRldl9jdXJyOworCXN0cnVjdCBuZXRfZGV2aWNlICpkZXZfY3VycjsK IAlfX2JlMTYgcHJvdG9fY3VycjsKIAlib29sIG5lZWRfcmVob29rOwogCkBAIC0yNjY5LDE1ICsy NjY5LDEzIEBAIHN0YXRpYyBpbnQgcGFja2V0X2RvX2JpbmQoc3RydWN0IHNvY2sgKnNrLCBzdHJ1 Y3QgbmV0X2RldmljZSAqZGV2LCBfX2JlMTYgcHJvdG8pCiAKIAkJcG8tPm51bSA9IHByb3RvOwog CQlwby0+cHJvdF9ob29rLnR5cGUgPSBwcm90bzsKLQotCQlpZiAocG8tPnByb3RfaG9vay5kZXYp Ci0JCQlkZXZfcHV0KHBvLT5wcm90X2hvb2suZGV2KTsKLQogCQlwby0+cHJvdF9ob29rLmRldiA9 IGRldjsKIAogCQlwby0+aWZpbmRleCA9IGRldiA/IGRldi0+aWZpbmRleCA6IDA7CiAJCXBhY2tl dF9jYWNoZWRfZGV2X2Fzc2lnbihwbywgZGV2KTsKIAl9CisJaWYgKGRldl9jdXJyKQorCQlkZXZf cHV0KGRldl9jdXJyKTsKIAogCWlmIChwcm90byA9PSAwIHx8ICFuZWVkX3JlaG9vaykKIAkJZ290 byBvdXRfdW5sb2NrOwotLSAKMi4xLjAKCgpGcm9tIGE1OTFmNTFmOTkzMTIxYzA5MGE3ZWE1ZTdm ODYwYTdhNWVkMGYyMzYgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCkZyb206IERhbiBDYXJwZW50 ZXIgPGRhbi5jYXJwZW50ZXJAb3JhY2xlLmNvbT4KRGF0ZTogU2F0LCAxIEF1ZyAyMDE1IDE1OjMz OjI2ICswMzAwClN1YmplY3Q6IFtQQVRDSCAyMi8yNV0gcmRzOiBmaXggYW4gaW50ZWdlciBvdmVy ZmxvdyB0ZXN0IGluCiByZHNfaW5mb19nZXRzb2Nrb3B0KCkKClsgVXBzdHJlYW0gY29tbWl0IDQ2 OGI3MzJiNmY3NmIxMzhjMDkyNmVhZGYzOGFjODg0NjdkY2QyNzEgXQoKImxlbiIgaXMgYSBzaWdu ZWQgaW50ZWdlci4gIFdlIGNoZWNrIHRoYXQgbGVuIGlzIG5vdCBuZWdhdGl2ZSwgc28gaXQKZ29l cyBmcm9tIHplcm8gdG8gSU5UX01BWC4gIFBBR0VfU0laRSBpcyB1bnNpZ25lZCBsb25nIHNvIHRo ZSBjb21wYXJpc29uCmlzIHR5cGUgcHJvbW90ZWQgdG8gdW5zaWduZWQgbG9uZy4gIFVMT05HX01B WCAtIDQwOTUgaXMgYSBoaWdoZXIgdGhhbgpJTlRfTUFYIHNvIHRoZSBjb25kaXRpb24gY2FuIG5l dmVyIGJlIHRydWUuCgpJIGRvbid0IGtub3cgaWYgdGhpcyBpcyBoYXJtZnVsIGJ1dCBpdCBzZWVt cyBzYWZlIHRvIGxpbWl0ICJsZW4iIHRvCklOVF9NQVggLSA0MDk1LgoKRml4ZXM6IGE4Yzg3OWE3 ZWU5OCAoJ1JEUzogSW5mbyBhbmQgc3RhdHMnKQpTaWduZWQtb2ZmLWJ5OiBEYW4gQ2FycGVudGVy IDxkYW4uY2FycGVudGVyQG9yYWNsZS5jb20+ClNpZ25lZC1vZmYtYnk6IERhdmlkIFMuIE1pbGxl ciA8ZGF2ZW1AZGF2ZW1sb2Z0Lm5ldD4KLS0tCiBuZXQvcmRzL2luZm8uYyB8IDIgKy0KIDEgZmls ZSBjaGFuZ2VkLCAxIGluc2VydGlvbigrKSwgMSBkZWxldGlvbigtKQoKZGlmZiAtLWdpdCBhL25l dC9yZHMvaW5mby5jIGIvbmV0L3Jkcy9pbmZvLmMKaW5kZXggOWE2YjRmNi4uMTQwYTQ0YSAxMDA2 NDQKLS0tIGEvbmV0L3Jkcy9pbmZvLmMKKysrIGIvbmV0L3Jkcy9pbmZvLmMKQEAgLTE3Niw3ICsx NzYsNyBAQCBpbnQgcmRzX2luZm9fZ2V0c29ja29wdChzdHJ1Y3Qgc29ja2V0ICpzb2NrLCBpbnQg b3B0bmFtZSwgY2hhciBfX3VzZXIgKm9wdHZhbCwKIAogCS8qIGNoZWNrIGZvciBhbGwga2luZHMg b2Ygd3JhcHBpbmcgYW5kIHRoZSBsaWtlICovCiAJc3RhcnQgPSAodW5zaWduZWQgbG9uZylvcHR2 YWw7Ci0JaWYgKGxlbiA8IDAgfHwgbGVuICsgUEFHRV9TSVpFIC0gMSA8IGxlbiB8fCBzdGFydCAr IGxlbiA8IHN0YXJ0KSB7CisJaWYgKGxlbiA8IDAgfHwgbGVuID4gSU5UX01BWCAtIFBBR0VfU0la RSArIDEgfHwgc3RhcnQgKyBsZW4gPCBzdGFydCkgewogCQlyZXQgPSAtRUlOVkFMOwogCQlnb3Rv IG91dDsKIAl9Ci0tIAoyLjEuMAoKCkZyb20gYWJjY2FkYWM0OTRmMDA0ZTUzYzc4NmZiM2E4N2Zh ZDE5Y2JkM2NiNSBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJvbTogRXJpYyBEdW1hemV0IDxl ZHVtYXpldEBnb29nbGUuY29tPgpEYXRlOiBTYXQsIDEgQXVnIDIwMTUgMTI6MTQ6MzMgKzAyMDAK U3ViamVjdDogW1BBVENIIDIzLzI1XSB1ZHA6IGZpeCBkc3QgcmFjZXMgd2l0aCBtdWx0aWNhc3Qg ZWFybHkgZGVtdXgKTUlNRS1WZXJzaW9uOiAxLjAKQ29udGVudC1UeXBlOiB0ZXh0L3BsYWluOyBj aGFyc2V0PVVURi04CkNvbnRlbnQtVHJhbnNmZXItRW5jb2Rpbmc6IDhiaXQKClsgVXBzdHJlYW0g Y29tbWl0IDEwZTJlYjg3OGYzY2EwN2FjMmYwNWZhNWNhNWU2YzRjOTE3NGEyN2EgXQoKTXVsdGlj YXN0IGRzdCBhcmUgbm90IGNhY2hlZC4gVGhleSBjYXJyeSBEU1RfTk9DQUNIRS4KCkFzIG1lbnRp b25lZCBpbiBjb21taXQgZjg4NjQ5NzIxMjY4OTkgKCJpcHY0OiBmaXggZHN0IHJhY2UgaW4Kc2tf ZHN0X2dldCgpIiksIHRoZXNlIGRzdCBuZWVkIHNwZWNpYWwgY2FyZSBiZWZvcmUgY2FjaGluZyB0 aGVtCmludG8gYSBzb2NrZXQuCgpDYWNoaW5nIHRoZW0gaXMgYWxsb3dlZCBvbmx5IGlmIHRoZWly IHJlZmNudCB3YXMgbm90IDAsIGllIHdlCm11c3QgdXNlIGF0b21pY19pbmNfbm90X3plcm8oKQoK QWxzbywgd2UgbXVzdCB1c2UgUkVBRF9PTkNFKCkgdG8gZmV0Y2ggc2stPnNrX3J4X2RzdCwgYXMg bWVudGlvbmVkCmluIGNvbW1pdCBkMGMyOTRjNTNhNzcxICgidGNwOiBwcmV2ZW50IGZldGNoaW5n IGRzdCB0d2ljZSBpbiBlYXJseSBkZW11eApjb2RlIikKCkZpeGVzOiA0MjFiMzg4NWJmNmQgKCJ1 ZHA6IGlwdjQ6IEFkZCB1ZHAgZWFybHkgZGVtdXgiKQpUZXN0ZWQtYnk6IEdyZWdvcnkgSG9nZ2Fy dGggPEdyZWdvcnkuSG9nZ2FydGhAYWxsaWVkdGVsZXNpcy5jby5uej4KU2lnbmVkLW9mZi1ieTog RXJpYyBEdW1hemV0IDxlZHVtYXpldEBnb29nbGUuY29tPgpSZXBvcnRlZC1ieTogR3JlZ29yeSBI b2dnYXJ0aCA8R3JlZ29yeS5Ib2dnYXJ0aEBhbGxpZWR0ZWxlc2lzLmNvLm56PgpSZXBvcnRlZC1i eTogQWxleCBHYXJ0cmVsbCA8YWdhcnRyZWxsQGZiLmNvbT4KQ2M6IE1pY2hhbCBLdWJlxI1layA8 bWt1YmVjZWtAc3VzZS5jej4KU2lnbmVkLW9mZi1ieTogRGF2aWQgUy4gTWlsbGVyIDxkYXZlbUBk YXZlbWxvZnQubmV0PgotLS0KIG5ldC9pcHY0L3VkcC5jIHwgMTMgKysrKysrKysrKy0tLQogMSBm aWxlIGNoYW5nZWQsIDEwIGluc2VydGlvbnMoKyksIDMgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0 IGEvbmV0L2lwdjQvdWRwLmMgYi9uZXQvaXB2NC91ZHAuYwppbmRleCAyMWEzYTllLi45NDdkY2Fl IDEwMDY0NAotLS0gYS9uZXQvaXB2NC91ZHAuYworKysgYi9uZXQvaXB2NC91ZHAuYwpAQCAtMTk1 NywxMiArMTk1NywxOSBAQCB2b2lkIHVkcF92NF9lYXJseV9kZW11eChzdHJ1Y3Qgc2tfYnVmZiAq c2tiKQogCiAJc2tiLT5zayA9IHNrOwogCXNrYi0+ZGVzdHJ1Y3RvciA9IHNvY2tfZWRlbXV4Owot CWRzdCA9IHNrLT5za19yeF9kc3Q7CisJZHN0ID0gQUNDRVNTX09OQ0Uoc2stPnNrX3J4X2RzdCk7 CiAKIAlpZiAoZHN0KQogCQlkc3QgPSBkc3RfY2hlY2soZHN0LCAwKTsKLQlpZiAoZHN0KQotCQlz a2JfZHN0X3NldF9ub3JlZihza2IsIGRzdCk7CisJaWYgKGRzdCkgeworCQkvKiBEU1RfTk9DQUNI RSBjYW4gbm90IGJlIHVzZWQgd2l0aG91dCB0YWtpbmcgYSByZWZlcmVuY2UgKi8KKwkJaWYgKGRz dC0+ZmxhZ3MgJiBEU1RfTk9DQUNIRSkgeworCQkJaWYgKGxpa2VseShhdG9taWNfaW5jX25vdF96 ZXJvKCZkc3QtPl9fcmVmY250KSkpCisJCQkJc2tiX2RzdF9zZXQoc2tiLCBkc3QpOworCQl9IGVs c2UgeworCQkJc2tiX2RzdF9zZXRfbm9yZWYoc2tiLCBkc3QpOworCQl9CisJfQogfQogCiBpbnQg dWRwX3JjdihzdHJ1Y3Qgc2tfYnVmZiAqc2tiKQotLSAKMi4xLjAKCgpGcm9tIDJlMmIxYjI5ZDBi NGVmMzRiYjk5YTU5MTM1ODIxMjc2MzNkYmFhODIgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCkZy b206IEl2YW4gVmVjZXJhIDxpdmVjZXJhQHJlZGhhdC5jb20+CkRhdGU6IFRodSwgNiBBdWcgMjAx NSAyMjo0ODoyMyArMDIwMApTdWJqZWN0OiBbUEFUQ0ggMjQvMjVdIGJuYTogZml4IGludGVycnVw dHMgc3Rvcm0gY2F1c2VkIGJ5IGVycm9uZW91cyBwYWNrZXRzCgpbIFVwc3RyZWFtIGNvbW1pdCBh ZGU0ZGMzZTYxNmUzM2M4MGQ3ZTYyODU1ZmUxYjZmOTg5NWJjN2MzIF0KClRoZSBjb21taXQgImUy OWFhMzMgYm5hOiBFbmFibGUgTXVsdGkgQnVmZmVyIFJYIiBtb3ZlZCBwYWNrZXRzIGNvdW50ZXIK aW5jcmVtZW50IGZyb20gdGhlIGJlZ2lubmluZyBvZiB0aGUgTkFQSSBwcm9jZXNzaW5nIGxvb3Ag YWZ0ZXIgdGhlIGNoZWNrCmZvciBlcnJvbmVvdXMgcGFja2V0cyBzbyB0aGV5IGFyZSBuZXZlciBh Y2NvdW50ZWQuIFRoaXMgY291bnRlciBpcyB1c2VkCnRvIGluZm9ybSBmaXJtd2FyZSBhYm91dCBu dW1iZXIgb2YgcHJvY2Vzc2VkIGNvbXBsZXRpb25zIChwYWNrZXRzKS4KQXMgdGhlc2UgcGFja2V0 cyBhcmUgbmV2ZXIgYWNrZWQgdGhlIGZpcm13YXJlIGZpcmVzIElSUXMgZm9yIHRoZW0gYWdhaW4K YW5kIGFnYWluLgoKRml4ZXM6IGUyOWFhMzMgKCJibmE6IEVuYWJsZSBNdWx0aSBCdWZmZXIgUlgi KQpTaWduZWQtb2ZmLWJ5OiBJdmFuIFZlY2VyYSA8aXZlY2VyYUByZWRoYXQuY29tPgpBY2tlZC1i eTogUmFzZXNoIE1vZHkgPHJhc2VzaC5tb2R5QHFsb2dpYy5jb20+ClNpZ25lZC1vZmYtYnk6IERh dmlkIFMuIE1pbGxlciA8ZGF2ZW1AZGF2ZW1sb2Z0Lm5ldD4KLS0tCiBkcml2ZXJzL25ldC9ldGhl cm5ldC9icm9jYWRlL2JuYS9ibmFkLmMgfCAyICstCiAxIGZpbGUgY2hhbmdlZCwgMSBpbnNlcnRp b24oKyksIDEgZGVsZXRpb24oLSkKCmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC9ldGhlcm5ldC9i cm9jYWRlL2JuYS9ibmFkLmMgYi9kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9jYWRlL2JuYS9ibmFk LmMKaW5kZXggNjY5ZWViNC4uZjA1MTc4MyAxMDA2NDQKLS0tIGEvZHJpdmVycy9uZXQvZXRoZXJu ZXQvYnJvY2FkZS9ibmEvYm5hZC5jCisrKyBiL2RyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2NhZGUv Ym5hL2JuYWQuYwpAQCAtNjc0LDYgKzY3NCw3IEBAIGJuYWRfY3FfcHJvY2VzcyhzdHJ1Y3QgYm5h ZCAqYm5hZCwgc3RydWN0IGJuYV9jY2IgKmNjYiwgaW50IGJ1ZGdldCkKIAkJCWlmICghbmV4dF9j bXBsLT52YWxpZCkKIAkJCQlicmVhazsKIAkJfQorCQlwYWNrZXRzKys7CiAKIAkJLyogVE9ETzog Qk5BX0NRX0VGX0xPQ0FMID8gKi8KIAkJaWYgKHVubGlrZWx5KGZsYWdzICYgKEJOQV9DUV9FRl9N QUNfRVJST1IgfApAQCAtNjkwLDcgKzY5MSw2IEBAIGJuYWRfY3FfcHJvY2VzcyhzdHJ1Y3QgYm5h ZCAqYm5hZCwgc3RydWN0IGJuYV9jY2IgKmNjYiwgaW50IGJ1ZGdldCkKIAkJZWxzZQogCQkJYm5h ZF9jcV9zZXR1cF9za2JfZnJhZ3MocmNiLCBza2IsIHNvcF9jaSwgbnZlY3MsIGxlbik7CiAKLQkJ cGFja2V0cysrOwogCQlyY2ItPnJ4cS0+cnhfcGFja2V0cysrOwogCQlyY2ItPnJ4cS0+cnhfYnl0 ZXMgKz0gdG90bGVuOwogCQljY2ItPmJ5dGVzX3Blcl9pbnRyICs9IHRvdGxlbjsKLS0gCjIuMS4w CgoKRnJvbSAxM2QxZWI1MDIxOWU4ZmI4YjFlMDNhMDZkNzRmZDE1NjEwMjg1MzhhIE1vbiBTZXAg MTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBGbG9yaWFuIFdlc3RwaGFsIDxmd0BzdHJsZW4uZGU+CkRh dGU6IFdlZCwgMjYgQXVnIDIwMTUgMjI6MTc6MzkgLTA3MDAKU3ViamVjdDogW1BBVENIIDI1LzI1 XSBTdWJqZWN0OiBbUEFUQ0ggMy4xNC1zdGFibGVdIG5ldDogZ3NvOiB1c2UgZmVhdHVyZSBmbGFn CiBhcmd1bWVudCBpbiBhbGwgcHJvdG9jb2wgZ3NvIGhhbmRsZXJzCgpbIFVwc3RyZWFtIGNvbW1p dCAxZTE2YWEzZGRmODYzYzZiOWYzN2VkZGY1MjUwMzIzMGE2MmRlZGIzIF0KCnNrYl9nc29fc2Vn bWVudCgpIGhhcyBhICdmZWF0dXJlcycgYXJndW1lbnQgcmVwcmVzZW50aW5nIG9mZmxvYWQgZmVh dHVyZXMKYXZhaWxhYmxlIHRvIHRoZSBvdXRwdXQgcGF0aC4KCkEgZmV3IGhhbmRsZXJzLCBlLmcu IEdSRSwgaW5zdGVhZCByZS1mZXRjaCB0aGUgZmVhdHVyZXMgb2Ygc2tiLT5kZXYgYW5kIHVzZQp0 aG9zZSBpbnN0ZWFkIG9mIHRoZSBwcm92aWRlZCBvbmVzIHdoZW4gaGFuZGluZyBlbmNhcHN1bGF0 aW9uL3R1bm5lbHMuCgpEZXBlbmRpbmcgb24gZGV2LT5od19lbmNfZmVhdHVyZXMgb2YgdGhlIG91 dHB1dCBkZXZpY2Ugc2tiX2dzb19zZWdtZW50KCkgY2FuCnRoZW4gcmV0dXJuIE5VTEwgZXZlbiB3 aGVuIHRoZSBjYWxsZXIgaGFzIGRpc2FibGVkIGFsbCBHU08gZmVhdHVyZSBiaXRzLAphcyBzZWdt ZW50YXRpb24gb2YgaW5uZXIgaGVhZGVyIHRoaW5rcyBkZXZpY2Ugd2lsbCB0YWtlIGNhcmUgb2Yg c2VnbWVudGF0aW9uLgoKVGhpcyBlLmcuIGFmZmVjdHMgdGhlIHRiZiBzY2hlZHVsZXIsIHdoaWNo IHdpbGwgc2lsZW50bHkgZHJvcCBHUkUtZW5jYXAgR1NPIHNrYnMKdGhhdCBkaWQgbm90IGZpdCB0 aGUgcmVtYWluaW5nIHRva2VuIHF1b3RhIGFzIHRoZSBzZWdtZW50YXRpb24gZG9lcyBub3Qgd29y awp3aGVuIGRldmljZSBzdXBwb3J0cyBjb3JyZXNwb25kaW5nIGh3IG9mZmxvYWQgY2FwYWJpbGl0 aWVzLgoKQ2M6IFByYXZpbiBCIFNoZWxhciA8cHNoZWxhckBuaWNpcmEuY29tPgpTaWduZWQtb2Zm LWJ5OiBGbG9yaWFuIFdlc3RwaGFsIDxmd0BzdHJsZW4uZGU+ClNpZ25lZC1vZmYtYnk6IERhdmlk IFMuIE1pbGxlciA8ZGF2ZW1AZGF2ZW1sb2Z0Lm5ldD4KW2pheS52b3NidXJnaDogYmFja3BvcnRl ZCB0byAzLjE0LiBdClNpZ25lZC1vZmYtYnk6IEpheSBWb3NidXJnaCA8amF5LnZvc2J1cmdoQGNh bm9uaWNhbC5jb20+Ci0tLQogbmV0L2lwdjQvYWZfaW5ldC5jICAgICB8IDIgKy0KIG5ldC9pcHY0 L2dyZV9vZmZsb2FkLmMgfCAyICstCiBuZXQvaXB2NC91ZHAuYyAgICAgICAgIHwgMiArLQogbmV0 L2lwdjYvaXA2X29mZmxvYWQuYyB8IDIgKy0KIG5ldC9tcGxzL21wbHNfZ3NvLmMgICAgfCAyICst CiA1IGZpbGVzIGNoYW5nZWQsIDUgaW5zZXJ0aW9ucygrKSwgNSBkZWxldGlvbnMoLSkKCmRpZmYg LS1naXQgYS9uZXQvaXB2NC9hZl9pbmV0LmMgYi9uZXQvaXB2NC9hZl9pbmV0LmMKaW5kZXggOTUx ZmU1NS4uZjRjODA0ZCAxMDA2NDQKLS0tIGEvbmV0L2lwdjQvYWZfaW5ldC5jCisrKyBiL25ldC9p cHY0L2FmX2luZXQuYwpAQCAtMTI5MSw3ICsxMjkxLDcgQEAgc3RhdGljIHN0cnVjdCBza19idWZm ICppbmV0X2dzb19zZWdtZW50KHN0cnVjdCBza19idWZmICpza2IsCiAKIAllbmNhcCA9IFNLQl9H U09fQ0Ioc2tiKS0+ZW5jYXBfbGV2ZWwgPiAwOwogCWlmIChlbmNhcCkKLQkJZmVhdHVyZXMgPSBz a2ItPmRldi0+aHdfZW5jX2ZlYXR1cmVzICYgbmV0aWZfc2tiX2ZlYXR1cmVzKHNrYik7CisJCWZl YXR1cmVzICY9IHNrYi0+ZGV2LT5od19lbmNfZmVhdHVyZXM7CiAJU0tCX0dTT19DQihza2IpLT5l bmNhcF9sZXZlbCArPSBpaGw7CiAKIAlza2JfcmVzZXRfdHJhbnNwb3J0X2hlYWRlcihza2IpOwpk aWZmIC0tZ2l0IGEvbmV0L2lwdjQvZ3JlX29mZmxvYWQuYyBiL25ldC9pcHY0L2dyZV9vZmZsb2Fk LmMKaW5kZXggMjc4ODM2Zi4uMGRhNTEzZSAxMDA2NDQKLS0tIGEvbmV0L2lwdjQvZ3JlX29mZmxv YWQuYworKysgYi9uZXQvaXB2NC9ncmVfb2ZmbG9hZC5jCkBAIC02OSw3ICs2OSw3IEBAIHN0YXRp YyBzdHJ1Y3Qgc2tfYnVmZiAqZ3JlX2dzb19zZWdtZW50KHN0cnVjdCBza19idWZmICpza2IsCiAJ c2tiLT5tYWNfbGVuID0gc2tiX2lubmVyX25ldHdvcmtfb2Zmc2V0KHNrYik7CiAKIAkvKiBzZWdt ZW50IGlubmVyIHBhY2tldC4gKi8KLQllbmNfZmVhdHVyZXMgPSBza2ItPmRldi0+aHdfZW5jX2Zl YXR1cmVzICYgbmV0aWZfc2tiX2ZlYXR1cmVzKHNrYik7CisJZW5jX2ZlYXR1cmVzID0gc2tiLT5k ZXYtPmh3X2VuY19mZWF0dXJlcyAmIGZlYXR1cmVzOwogCXNlZ3MgPSBza2JfbWFjX2dzb19zZWdt ZW50KHNrYiwgZW5jX2ZlYXR1cmVzKTsKIAlpZiAoIXNlZ3MgfHwgSVNfRVJSKHNlZ3MpKSB7CiAJ CXNrYl9nc29fZXJyb3JfdW53aW5kKHNrYiwgcHJvdG9jb2wsIGdobCwgbWFjX29mZnNldCwgbWFj X2xlbik7CmRpZmYgLS1naXQgYS9uZXQvaXB2NC91ZHAuYyBiL25ldC9pcHY0L3VkcC5jCmluZGV4 IDk0N2RjYWUuLjY5NzBlMzYgMTAwNjQ0Ci0tLSBhL25ldC9pcHY0L3VkcC5jCisrKyBiL25ldC9p cHY0L3VkcC5jCkBAIC0yNTE3LDcgKzI1MTcsNyBAQCBzdHJ1Y3Qgc2tfYnVmZiAqc2tiX3VkcF90 dW5uZWxfc2VnbWVudChzdHJ1Y3Qgc2tfYnVmZiAqc2tiLAogCXNrYi0+cHJvdG9jb2wgPSBodG9u cyhFVEhfUF9URUIpOwogCiAJLyogc2VnbWVudCBpbm5lciBwYWNrZXQuICovCi0JZW5jX2ZlYXR1 cmVzID0gc2tiLT5kZXYtPmh3X2VuY19mZWF0dXJlcyAmIG5ldGlmX3NrYl9mZWF0dXJlcyhza2Ip OworCWVuY19mZWF0dXJlcyA9IHNrYi0+ZGV2LT5od19lbmNfZmVhdHVyZXMgJiBmZWF0dXJlczsK IAlzZWdzID0gc2tiX21hY19nc29fc2VnbWVudChza2IsIGVuY19mZWF0dXJlcyk7CiAJaWYgKCFz ZWdzIHx8IElTX0VSUihzZWdzKSkgewogCQlza2JfZ3NvX2Vycm9yX3Vud2luZChza2IsIHByb3Rv Y29sLCB0bmxfaGxlbiwgbWFjX29mZnNldCwKZGlmZiAtLWdpdCBhL25ldC9pcHY2L2lwNl9vZmZs b2FkLmMgYi9uZXQvaXB2Ni9pcDZfb2ZmbG9hZC5jCmluZGV4IGIyZjA5MTUuLmRjNDZlYmEgMTAw NjQ0Ci0tLSBhL25ldC9pcHY2L2lwNl9vZmZsb2FkLmMKKysrIGIvbmV0L2lwdjYvaXA2X29mZmxv YWQuYwpAQCAtMTEyLDcgKzExMiw3IEBAIHN0YXRpYyBzdHJ1Y3Qgc2tfYnVmZiAqaXB2Nl9nc29f c2VnbWVudChzdHJ1Y3Qgc2tfYnVmZiAqc2tiLAogCiAJZW5jYXAgPSBTS0JfR1NPX0NCKHNrYikt PmVuY2FwX2xldmVsID4gMDsKIAlpZiAoZW5jYXApCi0JCWZlYXR1cmVzID0gc2tiLT5kZXYtPmh3 X2VuY19mZWF0dXJlcyAmIG5ldGlmX3NrYl9mZWF0dXJlcyhza2IpOworCQlmZWF0dXJlcyAmPSBz a2ItPmRldi0+aHdfZW5jX2ZlYXR1cmVzOwogCVNLQl9HU09fQ0Ioc2tiKS0+ZW5jYXBfbGV2ZWwg Kz0gc2l6ZW9mKCppcHY2aCk7CiAKIAlpcHY2aCA9IGlwdjZfaGRyKHNrYik7CmRpZmYgLS1naXQg YS9uZXQvbXBscy9tcGxzX2dzby5jIGIvbmV0L21wbHMvbXBsc19nc28uYwppbmRleCA4NTFjZDg4 Li4wYzk3MGNiIDEwMDY0NAotLS0gYS9uZXQvbXBscy9tcGxzX2dzby5jCisrKyBiL25ldC9tcGxz L21wbHNfZ3NvLmMKQEAgLTQ3LDcgKzQ3LDcgQEAgc3RhdGljIHN0cnVjdCBza19idWZmICptcGxz X2dzb19zZWdtZW50KHN0cnVjdCBza19idWZmICpza2IsCiAJX19za2JfcHVzaChza2IsIHNrYi0+ bWFjX2xlbik7CiAKIAkvKiBTZWdtZW50IGlubmVyIHBhY2tldC4gKi8KLQltcGxzX2ZlYXR1cmVz ID0gc2tiLT5kZXYtPm1wbHNfZmVhdHVyZXMgJiBuZXRpZl9za2JfZmVhdHVyZXMoc2tiKTsKKwlt cGxzX2ZlYXR1cmVzID0gc2tiLT5kZXYtPm1wbHNfZmVhdHVyZXMgJiBmZWF0dXJlczsKIAlzZWdz ID0gc2tiX21hY19nc29fc2VnbWVudChza2IsIG1wbHNfZmVhdHVyZXMpOwogCiAKLS0gCjIuMS4w Cgo= ----Next_Part(Wed_Aug_26_23_05_12_2015_145)-- Content-Type: Application/Octet-Stream Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="net_318.mbox" RnJvbSBiYmQ3MjVmMGQ5ZTg1MTVlNjFjZDUwZWM1YWU5YzY1NWI2ZmQ5ZmEwIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBBbmdnYSA8SGVybWluLkFuZ2dhd2lqYXlhQGFsbGllZHRlbGVz aXMuY28ubno+CkRhdGU6IEZyaSwgMyBKdWwgMjAxNSAxNDo0MDo1MiArMTIwMApTdWJqZWN0OiBb UEFUQ0ggMDEvMzJdIGlwdjY6IE1ha2UgTUxEIHBhY2tldHMgdG8gb25seSBiZSBwcm9jZXNzZWQg bG9jYWxseQoKWyBVcHN0cmVhbSBjb21taXQgNGM5MzhkMjJjODhhOWRkY2NjOGM1NWE4NWUwNDMw ZTljNjJiMWFjNSBdCgpCZWZvcmUgY29tbWl0IGRhYWQxNTEyNjNjZiAoImlwdjY6IE1ha2UgaXB2 Nl9pc19tbGQoKSBpbmxpbmUgYW5kIHVzZSBpdApmcm9tIGlwNl9tY19pbnB1dCgpLiIpIE1MRCBw YWNrZXRzIHdlcmUgb25seSBwcm9jZXNzZWQgbG9jYWxseS4gQWZ0ZXIgdGhlCmNoYW5nZSwgYSBj b3B5IG9mIE1MRCBwYWNrZXQgZ29lcyB0aHJvdWdoIGlwNl9tcl9pbnB1dCwgY2F1c2luZwpNUlQ2 TVNHX05PQ0FDSEUgbWVzc2FnZSB0byBiZSBnZW5lcmF0ZWQgdG8gdXNlciBzcGFjZS4KCk1ha2Ug TUxEIHBhY2tldCBvbmx5IHByb2Nlc3NlZCBsb2NhbGx5LgoKRml4ZXM6IGRhYWQxNTEyNjNjZiAo ImlwdjY6IE1ha2UgaXB2Nl9pc19tbGQoKSBpbmxpbmUgYW5kIHVzZSBpdCBmcm9tIGlwNl9tY19p bnB1dCgpLiIpClNpZ25lZC1vZmYtYnk6IEhlcm1pbiBBbmdnYXdpamF5YSA8aGVybWluLmFuZ2dh d2lqYXlhQGFsbGllZHRlbGVzaXMuY28ubno+ClNpZ25lZC1vZmYtYnk6IERhdmlkIFMuIE1pbGxl ciA8ZGF2ZW1AZGF2ZW1sb2Z0Lm5ldD4KLS0tCiBuZXQvaXB2Ni9pcDZfaW5wdXQuYyB8IDYgKysr LS0tCiAxIGZpbGUgY2hhbmdlZCwgMyBpbnNlcnRpb25zKCspLCAzIGRlbGV0aW9ucygtKQoKZGlm ZiAtLWdpdCBhL25ldC9pcHY2L2lwNl9pbnB1dC5jIGIvbmV0L2lwdjYvaXA2X2lucHV0LmMKaW5k ZXggYTMwODRhYi4uYWM1ZTk3MyAxMDA2NDQKLS0tIGEvbmV0L2lwdjYvaXA2X2lucHV0LmMKKysr IGIvbmV0L2lwdjYvaXA2X2lucHV0LmMKQEAgLTMyOSwxMCArMzI5LDEwIEBAIGludCBpcDZfbWNf aW5wdXQoc3RydWN0IHNrX2J1ZmYgKnNrYikKIAkJCQlpZiAob2Zmc2V0IDwgMCkKIAkJCQkJZ290 byBvdXQ7CiAKLQkJCQlpZiAoIWlwdjZfaXNfbWxkKHNrYiwgbmV4dGhkciwgb2Zmc2V0KSkKLQkJ CQkJZ290byBvdXQ7CisJCQkJaWYgKGlwdjZfaXNfbWxkKHNrYiwgbmV4dGhkciwgb2Zmc2V0KSkK KwkJCQkJZGVsaXZlciA9IHRydWU7CiAKLQkJCQlkZWxpdmVyID0gdHJ1ZTsKKwkJCQlnb3RvIG91 dDsKIAkJCX0KIAkJCS8qIHVua25vd24gUkEgLSBwcm9jZXNzIGl0IG5vcm1hbGx5ICovCiAJCX0K LS0gCjIuMS4wCgoKRnJvbSBlZDZkZmI1OTdiNDhjODVjNGUwZGNiYmJmNWJkMjQ4MGEwMDk0MGQ3 IE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBFcmljIER1bWF6ZXQgPGVkdW1hemV0QGdv b2dsZS5jb20+CkRhdGU6IE1vbiwgNiBKdWwgMjAxNSAxNzoxMzoyNiArMDIwMApTdWJqZWN0OiBb UEFUQ0ggMDIvMzJdIG5ldDogZ3JhY2VmdWwgZXhpdCBmcm9tIG5ldGlmX2FsbG9jX25ldGRldl9x dWV1ZXMoKQoKWyBVcHN0cmVhbSBjb21taXQgZDMzOTcyN2MyYjFhMTBmMjVlNjYzNjY3MGFiNmUx ODQxMTcwZTMyOCBdCgpVc2VyIHNwYWNlIGNhbiBjcmFzaCBrZXJuZWwgd2l0aAoKaXAgbGluayBh ZGQgaWZiMTAgbnVtdHhxdWV1ZXMgMTAwMDAwIHR5cGUgaWZiCgpXZSBtdXN0IHJlcGxhY2UgYSBC VUdfT04oKSBieSBwcm9wZXIgdGVzdCBhbmQgcmV0dXJuIC1FSU5WQUwgZm9yCmNyYXp5IHZhbHVl cy4KCkZpeGVzOiA2MDg3N2EzMmJjZTAwICgibmV0OiBhbGxvdyBsYXJnZSBudW1iZXIgb2YgdHgg cXVldWVzIikKU2lnbmVkLW9mZi1ieTogRXJpYyBEdW1hemV0IDxlZHVtYXpldEBnb29nbGUuY29t PgpTaWduZWQtb2ZmLWJ5OiBEYXZpZCBTLiBNaWxsZXIgPGRhdmVtQGRhdmVtbG9mdC5uZXQ+Ci0t LQogbmV0L2NvcmUvZGV2LmMgfCAzICsrLQogMSBmaWxlIGNoYW5nZWQsIDIgaW5zZXJ0aW9ucygr KSwgMSBkZWxldGlvbigtKQoKZGlmZiAtLWdpdCBhL25ldC9jb3JlL2Rldi5jIGIvbmV0L2NvcmUv ZGV2LmMKaW5kZXggZmI5NjI1OC4uN2I2NWM1OCAxMDA2NDQKLS0tIGEvbmV0L2NvcmUvZGV2LmMK KysrIGIvbmV0L2NvcmUvZGV2LmMKQEAgLTYxMjgsNyArNjEyOCw4IEBAIHN0YXRpYyBpbnQgbmV0 aWZfYWxsb2NfbmV0ZGV2X3F1ZXVlcyhzdHJ1Y3QgbmV0X2RldmljZSAqZGV2KQogCXN0cnVjdCBu ZXRkZXZfcXVldWUgKnR4OwogCXNpemVfdCBzeiA9IGNvdW50ICogc2l6ZW9mKCp0eCk7CiAKLQlC VUdfT04oY291bnQgPCAxIHx8IGNvdW50ID4gMHhmZmZmKTsKKwlpZiAoY291bnQgPCAxIHx8IGNv dW50ID4gMHhmZmZmKQorCQlyZXR1cm4gLUVJTlZBTDsKIAogCXR4ID0ga3phbGxvYyhzeiwgR0ZQ X0tFUk5FTCB8IF9fR0ZQX05PV0FSTiB8IF9fR0ZQX1JFUEVBVCk7CiAJaWYgKCF0eCkgewotLSAK Mi4xLjAKCgpGcm9tIDc0YmY2NzQ1MjJkYTM5ZGJhMDFlZDVmYTdmYmQ2YjMwODA2ZjQ2ZmYgTW9u IFNlcCAxNyAwMDowMDowMCAyMDAxCkZyb206IERhbmllbCBCb3JrbWFubiA8ZGFuaWVsQGlvZ2Vh cmJveC5uZXQ+CkRhdGU6IFR1ZSwgNyBKdWwgMjAxNSAwMDowNzo1MiArMDIwMApTdWJqZWN0OiBb UEFUQ0ggMDMvMzJdIHJ0bmV0bGluazogdmVyaWZ5IElGTEFfVkZfSU5GTyBhdHRyaWJ1dGVzIGJl Zm9yZQogcGFzc2luZyB0aGVtIHRvIGRyaXZlcgoKWyBVcHN0cmVhbSBjb21taXQgNGY3ZDJjZGZk ZGU3MWZmZTk2MjM5OWI3MDIwYzY3NDA1MDMyOTQyMyBdCgpKYXNvbiBHdW50aG9ycGUgcmVwb3J0 ZWQgdGhhdCBzaW5jZSBjb21taXQgYzAyZGI4YzYyOTBiICgicnRuZXRsaW5rOiBtYWtlClNSLUlP ViBWRiBpbnRlcmZhY2Ugc3ltbWV0cmljIiksIHdlIGRvbid0IHZlcmlmeSBJRkxBX1ZGX0lORk8g YXR0cmlidXRlcwphbnltb3JlIHdpdGggcmVzcGVjdCB0byB0aGVpciBwb2xpY3ksIHRoYXQgaXMs IGlmbGFfdmZpbmZvX3BvbGljeVtdLgoKQmVmb3JlLCB0aGV5IHdlcmUgcGFydCBvZiBpZmxhX3Bv bGljeVtdLCBidXQgdGhleSBoYXZlIGJlZW4gbmVzdGVkIHNpbmNlCnBsYWNlZCB1bmRlciBJRkxB X1ZGSU5GT19MSVNULCB0aGF0IGNvbnRhaW5zIHRoZSBhdHRyaWJ1dGUgSUZMQV9WRl9JTkZPLAp3 aGljaCBpcyBhbm90aGVyIG5lc3RlZCBhdHRyaWJ1dGUgZm9yIHRoZSBhY3R1YWwgVkYgYXR0cmli dXRlcyBzdWNoIGFzCklGTEFfVkZfTUFDLCBJRkxBX1ZGX1ZMQU4sIGV0Yy4KCkRlc3BpdGUgdGhl IHBvbGljeSBiZWluZyBzcGxpdCBvdXQgZnJvbSBpZmxhX3BvbGljeVtdIGluIHRoaXMgY29tbWl0 LAppdCdzIG5ldmVyIGFwcGxpZWQgYW55d2hlcmUuIG5sYV9mb3JfZWFjaF9uZXN0ZWQoKSBvbmx5 IGRvZXMgYmFzaWMgbmxhX29rKCkKdGVzdGluZyBmb3Igc3RydWN0IG5sYXR0ciwgYnV0IGl0IGRv ZXNuJ3Qga25vdyBhYm91dCB0aGUgZGF0YSBjb250ZXh0IGFuZAp0aGVpciByZXF1aXJlbWVudHMu CgpGaXgsIG9uIHRvcCBvZiBKYXNvbidzIGluaXRpYWwgd29yaywgZG9lcyAxKSBwYXJzaW5nIG9m IHRoZSBhdHRyaWJ1dGVzCndpdGggdGhlIHJpZ2h0IHBvbGljeSwgYW5kIDIpIHVzaW5nIHRoZSBy ZXN1bHRpbmcgcGFyc2VkIGF0dHJpYnV0ZSB0YWJsZQpmcm9tIDEpIGluc3RlYWQgb2YgdGhlIG5s YV9mb3JfZWFjaF9uZXN0ZWQoKSBsb29wIChqdXN0IGxpa2Ugd2UgdXNlZCB0bwpkbyB3aGVuIHN0 aWxsIHBhcnQgb2YgaWZsYV9wb2xpY3lbXSkuCgpSZWZlcmVuY2U6IGh0dHA6Ly90aHJlYWQuZ21h bmUub3JnL2dtYW5lLmxpbnV4Lm5ldHdvcmsvMzY4OTEzCkZpeGVzOiBjMDJkYjhjNjI5MGIgKCJy dG5ldGxpbms6IG1ha2UgU1ItSU9WIFZGIGludGVyZmFjZSBzeW1tZXRyaWMiKQpSZXBvcnRlZC1i eTogSmFzb24gR3VudGhvcnBlIDxqZ3VudGhvcnBlQG9ic2lkaWFucmVzZWFyY2guY29tPgpDYzog Q2hyaXMgV3JpZ2h0IDxjaHJpc3dAc291cy1zb2wub3JnPgpDYzogU3VjaGV0YSBDaGFrcmFib3J0 eSA8c3VjaGV0YS5jaGFrcmFib3J0eUBxbG9naWMuY29tPgpDYzogR3JlZyBSb3NlIDxncmVnb3J5 LnYucm9zZUBpbnRlbC5jb20+CkNjOiBKZWZmIEtpcnNoZXIgPGplZmZyZXkudC5raXJzaGVyQGlu dGVsLmNvbT4KQ2M6IFJvbnkgRWZyYWltIDxyb255ZUBtZWxsYW5veC5jb20+CkNjOiBWbGFkIFpv bG90YXJvdiA8dmxhZHpAY2xvdWRpdXMtc3lzdGVtcy5jb20+CkNjOiBOaWNvbGFzIERpY2h0ZWwg PG5pY29sYXMuZGljaHRlbEA2d2luZC5jb20+CkNjOiBUaG9tYXMgR3JhZiA8dGdyYWZAc3V1Zy5j aD4KU2lnbmVkLW9mZi1ieTogSmFzb24gR3VudGhvcnBlIDxqZ3VudGhvcnBlQG9ic2lkaWFucmVz ZWFyY2guY29tPgpTaWduZWQtb2ZmLWJ5OiBEYW5pZWwgQm9ya21hbm4gPGRhbmllbEBpb2dlYXJi b3gubmV0PgpBY2tlZC1ieTogVmxhZCBab2xvdGFyb3YgPHZsYWR6QGNsb3VkaXVzLXN5c3RlbXMu Y29tPgpTaWduZWQtb2ZmLWJ5OiBEYXZpZCBTLiBNaWxsZXIgPGRhdmVtQGRhdmVtbG9mdC5uZXQ+ Ci0tLQogbmV0L2NvcmUvcnRuZXRsaW5rLmMgfCAxNjYgKysrKysrKysrKysrKysrKysrKysrKysr KystLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAxIGZpbGUgY2hhbmdlZCwgODUgaW5zZXJ0aW9u cygrKSwgODEgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvbmV0L2NvcmUvcnRuZXRsaW5rLmMg Yi9uZXQvY29yZS9ydG5ldGxpbmsuYwppbmRleCBjNTIyZjdhLi4zNGZlMTczIDEwMDY0NAotLS0g YS9uZXQvY29yZS9ydG5ldGxpbmsuYworKysgYi9uZXQvY29yZS9ydG5ldGxpbmsuYwpAQCAtMTIw NywxMCArMTIwNyw2IEBAIHN0YXRpYyBjb25zdCBzdHJ1Y3QgbmxhX3BvbGljeSBpZmxhX2luZm9f cG9saWN5W0lGTEFfSU5GT19NQVgrMV0gPSB7CiAJW0lGTEFfSU5GT19TTEFWRV9EQVRBXQk9IHsg LnR5cGUgPSBOTEFfTkVTVEVEIH0sCiB9OwogCi1zdGF0aWMgY29uc3Qgc3RydWN0IG5sYV9wb2xp Y3kgaWZsYV92ZmluZm9fcG9saWN5W0lGTEFfVkZfSU5GT19NQVgrMV0gPSB7Ci0JW0lGTEFfVkZf SU5GT10JCT0geyAudHlwZSA9IE5MQV9ORVNURUQgfSwKLX07Ci0KIHN0YXRpYyBjb25zdCBzdHJ1 Y3QgbmxhX3BvbGljeSBpZmxhX3ZmX3BvbGljeVtJRkxBX1ZGX01BWCsxXSA9IHsKIAlbSUZMQV9W Rl9NQUNdCQk9IHsgLmxlbiA9IHNpemVvZihzdHJ1Y3QgaWZsYV92Zl9tYWMpIH0sCiAJW0lGTEFf VkZfVkxBTl0JCT0geyAubGVuID0gc2l6ZW9mKHN0cnVjdCBpZmxhX3ZmX3ZsYW4pIH0sCkBAIC0x MzU2LDg1ICsxMzUyLDg2IEBAIHN0YXRpYyBpbnQgdmFsaWRhdGVfbGlua21zZyhzdHJ1Y3QgbmV0 X2RldmljZSAqZGV2LCBzdHJ1Y3QgbmxhdHRyICp0YltdKQogCXJldHVybiAwOwogfQogCi1zdGF0 aWMgaW50IGRvX3NldHZmaW5mbyhzdHJ1Y3QgbmV0X2RldmljZSAqZGV2LCBzdHJ1Y3QgbmxhdHRy ICphdHRyKQorc3RhdGljIGludCBkb19zZXR2ZmluZm8oc3RydWN0IG5ldF9kZXZpY2UgKmRldiwg c3RydWN0IG5sYXR0ciAqKnRiKQogewotCWludCByZW0sIGVyciA9IC1FSU5WQUw7Ci0Jc3RydWN0 IG5sYXR0ciAqdmY7CiAJY29uc3Qgc3RydWN0IG5ldF9kZXZpY2Vfb3BzICpvcHMgPSBkZXYtPm5l dGRldl9vcHM7CisJaW50IGVyciA9IC1FSU5WQUw7CiAKLQlubGFfZm9yX2VhY2hfbmVzdGVkKHZm LCBhdHRyLCByZW0pIHsKLQkJc3dpdGNoIChubGFfdHlwZSh2ZikpIHsKLQkJY2FzZSBJRkxBX1ZG X01BQzogewotCQkJc3RydWN0IGlmbGFfdmZfbWFjICppdm07Ci0JCQlpdm0gPSBubGFfZGF0YSh2 Zik7Ci0JCQllcnIgPSAtRU9QTk9UU1VQUDsKLQkJCWlmIChvcHMtPm5kb19zZXRfdmZfbWFjKQot CQkJCWVyciA9IG9wcy0+bmRvX3NldF92Zl9tYWMoZGV2LCBpdm0tPnZmLAotCQkJCQkJCSAgaXZt LT5tYWMpOwotCQkJYnJlYWs7Ci0JCX0KLQkJY2FzZSBJRkxBX1ZGX1ZMQU46IHsKLQkJCXN0cnVj dCBpZmxhX3ZmX3ZsYW4gKml2djsKLQkJCWl2diA9IG5sYV9kYXRhKHZmKTsKLQkJCWVyciA9IC1F T1BOT1RTVVBQOwotCQkJaWYgKG9wcy0+bmRvX3NldF92Zl92bGFuKQotCQkJCWVyciA9IG9wcy0+ bmRvX3NldF92Zl92bGFuKGRldiwgaXZ2LT52ZiwKLQkJCQkJCQkgICBpdnYtPnZsYW4sCi0JCQkJ CQkJICAgaXZ2LT5xb3MpOwotCQkJYnJlYWs7Ci0JCX0KLQkJY2FzZSBJRkxBX1ZGX1RYX1JBVEU6 IHsKLQkJCXN0cnVjdCBpZmxhX3ZmX3R4X3JhdGUgKml2dDsKLQkJCXN0cnVjdCBpZmxhX3ZmX2lu Zm8gaXZmOwotCQkJaXZ0ID0gbmxhX2RhdGEodmYpOwotCQkJZXJyID0gLUVPUE5PVFNVUFA7Ci0J CQlpZiAob3BzLT5uZG9fZ2V0X3ZmX2NvbmZpZykKLQkJCQllcnIgPSBvcHMtPm5kb19nZXRfdmZf Y29uZmlnKGRldiwgaXZ0LT52ZiwKLQkJCQkJCQkgICAgICZpdmYpOwotCQkJaWYgKGVycikKLQkJ CQlicmVhazsKLQkJCWVyciA9IC1FT1BOT1RTVVBQOwotCQkJaWYgKG9wcy0+bmRvX3NldF92Zl9y YXRlKQotCQkJCWVyciA9IG9wcy0+bmRvX3NldF92Zl9yYXRlKGRldiwgaXZ0LT52ZiwKLQkJCQkJ CQkgICBpdmYubWluX3R4X3JhdGUsCi0JCQkJCQkJICAgaXZ0LT5yYXRlKTsKLQkJCWJyZWFrOwot CQl9Ci0JCWNhc2UgSUZMQV9WRl9SQVRFOiB7Ci0JCQlzdHJ1Y3QgaWZsYV92Zl9yYXRlICppdnQ7 Ci0JCQlpdnQgPSBubGFfZGF0YSh2Zik7Ci0JCQllcnIgPSAtRU9QTk9UU1VQUDsKLQkJCWlmIChv cHMtPm5kb19zZXRfdmZfcmF0ZSkKLQkJCQllcnIgPSBvcHMtPm5kb19zZXRfdmZfcmF0ZShkZXYs IGl2dC0+dmYsCi0JCQkJCQkJICAgaXZ0LT5taW5fdHhfcmF0ZSwKLQkJCQkJCQkgICBpdnQtPm1h eF90eF9yYXRlKTsKLQkJCWJyZWFrOwotCQl9Ci0JCWNhc2UgSUZMQV9WRl9TUE9PRkNISzogewot CQkJc3RydWN0IGlmbGFfdmZfc3Bvb2ZjaGsgKml2czsKLQkJCWl2cyA9IG5sYV9kYXRhKHZmKTsK LQkJCWVyciA9IC1FT1BOT1RTVVBQOwotCQkJaWYgKG9wcy0+bmRvX3NldF92Zl9zcG9vZmNoaykK LQkJCQllcnIgPSBvcHMtPm5kb19zZXRfdmZfc3Bvb2ZjaGsoZGV2LCBpdnMtPnZmLAotCQkJCQkJ CSAgICAgICBpdnMtPnNldHRpbmcpOwotCQkJYnJlYWs7Ci0JCX0KLQkJY2FzZSBJRkxBX1ZGX0xJ TktfU1RBVEU6IHsKLQkJCXN0cnVjdCBpZmxhX3ZmX2xpbmtfc3RhdGUgKml2bDsKLQkJCWl2bCA9 IG5sYV9kYXRhKHZmKTsKLQkJCWVyciA9IC1FT1BOT1RTVVBQOwotCQkJaWYgKG9wcy0+bmRvX3Nl dF92Zl9saW5rX3N0YXRlKQotCQkJCWVyciA9IG9wcy0+bmRvX3NldF92Zl9saW5rX3N0YXRlKGRl diwgaXZsLT52ZiwKLQkJCQkJCQkJIGl2bC0+bGlua19zdGF0ZSk7Ci0JCQlicmVhazsKLQkJfQot CQlkZWZhdWx0OgotCQkJZXJyID0gLUVJTlZBTDsKLQkJCWJyZWFrOwotCQl9Ci0JCWlmIChlcnIp Ci0JCQlicmVhazsKKwlpZiAodGJbSUZMQV9WRl9NQUNdKSB7CisJCXN0cnVjdCBpZmxhX3ZmX21h YyAqaXZtID0gbmxhX2RhdGEodGJbSUZMQV9WRl9NQUNdKTsKKworCQllcnIgPSAtRU9QTk9UU1VQ UDsKKwkJaWYgKG9wcy0+bmRvX3NldF92Zl9tYWMpCisJCQllcnIgPSBvcHMtPm5kb19zZXRfdmZf bWFjKGRldiwgaXZtLT52ZiwKKwkJCQkJCSAgaXZtLT5tYWMpOworCQlpZiAoZXJyIDwgMCkKKwkJ CXJldHVybiBlcnI7CisJfQorCisJaWYgKHRiW0lGTEFfVkZfVkxBTl0pIHsKKwkJc3RydWN0IGlm bGFfdmZfdmxhbiAqaXZ2ID0gbmxhX2RhdGEodGJbSUZMQV9WRl9WTEFOXSk7CisKKwkJZXJyID0g LUVPUE5PVFNVUFA7CisJCWlmIChvcHMtPm5kb19zZXRfdmZfdmxhbikKKwkJCWVyciA9IG9wcy0+ bmRvX3NldF92Zl92bGFuKGRldiwgaXZ2LT52ZiwgaXZ2LT52bGFuLAorCQkJCQkJICAgaXZ2LT5x b3MpOworCQlpZiAoZXJyIDwgMCkKKwkJCXJldHVybiBlcnI7CisJfQorCisJaWYgKHRiW0lGTEFf VkZfVFhfUkFURV0pIHsKKwkJc3RydWN0IGlmbGFfdmZfdHhfcmF0ZSAqaXZ0ID0gbmxhX2RhdGEo dGJbSUZMQV9WRl9UWF9SQVRFXSk7CisJCXN0cnVjdCBpZmxhX3ZmX2luZm8gaXZmOworCisJCWVy ciA9IC1FT1BOT1RTVVBQOworCQlpZiAob3BzLT5uZG9fZ2V0X3ZmX2NvbmZpZykKKwkJCWVyciA9 IG9wcy0+bmRvX2dldF92Zl9jb25maWcoZGV2LCBpdnQtPnZmLCAmaXZmKTsKKwkJaWYgKGVyciA8 IDApCisJCQlyZXR1cm4gZXJyOworCisJCWVyciA9IC1FT1BOT1RTVVBQOworCQlpZiAob3BzLT5u ZG9fc2V0X3ZmX3JhdGUpCisJCQllcnIgPSBvcHMtPm5kb19zZXRfdmZfcmF0ZShkZXYsIGl2dC0+ dmYsCisJCQkJCQkgICBpdmYubWluX3R4X3JhdGUsCisJCQkJCQkgICBpdnQtPnJhdGUpOworCQlp ZiAoZXJyIDwgMCkKKwkJCXJldHVybiBlcnI7CiAJfQorCisJaWYgKHRiW0lGTEFfVkZfUkFURV0p IHsKKwkJc3RydWN0IGlmbGFfdmZfcmF0ZSAqaXZ0ID0gbmxhX2RhdGEodGJbSUZMQV9WRl9SQVRF XSk7CisKKwkJZXJyID0gLUVPUE5PVFNVUFA7CisJCWlmIChvcHMtPm5kb19zZXRfdmZfcmF0ZSkK KwkJCWVyciA9IG9wcy0+bmRvX3NldF92Zl9yYXRlKGRldiwgaXZ0LT52ZiwKKwkJCQkJCSAgIGl2 dC0+bWluX3R4X3JhdGUsCisJCQkJCQkgICBpdnQtPm1heF90eF9yYXRlKTsKKwkJaWYgKGVyciA8 IDApCisJCQlyZXR1cm4gZXJyOworCX0KKworCWlmICh0YltJRkxBX1ZGX1NQT09GQ0hLXSkgewor CQlzdHJ1Y3QgaWZsYV92Zl9zcG9vZmNoayAqaXZzID0gbmxhX2RhdGEodGJbSUZMQV9WRl9TUE9P RkNIS10pOworCisJCWVyciA9IC1FT1BOT1RTVVBQOworCQlpZiAob3BzLT5uZG9fc2V0X3ZmX3Nw b29mY2hrKQorCQkJZXJyID0gb3BzLT5uZG9fc2V0X3ZmX3Nwb29mY2hrKGRldiwgaXZzLT52ZiwK KwkJCQkJCSAgICAgICBpdnMtPnNldHRpbmcpOworCQlpZiAoZXJyIDwgMCkKKwkJCXJldHVybiBl cnI7CisJfQorCisJaWYgKHRiW0lGTEFfVkZfTElOS19TVEFURV0pIHsKKwkJc3RydWN0IGlmbGFf dmZfbGlua19zdGF0ZSAqaXZsID0gbmxhX2RhdGEodGJbSUZMQV9WRl9MSU5LX1NUQVRFXSk7CisK KwkJZXJyID0gLUVPUE5PVFNVUFA7CisJCWlmIChvcHMtPm5kb19zZXRfdmZfbGlua19zdGF0ZSkK KwkJCWVyciA9IG9wcy0+bmRvX3NldF92Zl9saW5rX3N0YXRlKGRldiwgaXZsLT52ZiwKKwkJCQkJ CQkgaXZsLT5saW5rX3N0YXRlKTsKKwkJaWYgKGVyciA8IDApCisJCQlyZXR1cm4gZXJyOworCX0K KwogCXJldHVybiBlcnI7CiB9CiAKQEAgLTE2MzAsMTQgKzE2MjcsMjEgQEAgc3RhdGljIGludCBk b19zZXRsaW5rKGNvbnN0IHN0cnVjdCBza19idWZmICpza2IsCiAJfQogCiAJaWYgKHRiW0lGTEFf VkZJTkZPX0xJU1RdKSB7CisJCXN0cnVjdCBubGF0dHIgKnZmaW5mb1tJRkxBX1ZGX01BWCArIDFd OwogCQlzdHJ1Y3QgbmxhdHRyICphdHRyOwogCQlpbnQgcmVtOworCiAJCW5sYV9mb3JfZWFjaF9u ZXN0ZWQoYXR0ciwgdGJbSUZMQV9WRklORk9fTElTVF0sIHJlbSkgewotCQkJaWYgKG5sYV90eXBl KGF0dHIpICE9IElGTEFfVkZfSU5GTykgeworCQkJaWYgKG5sYV90eXBlKGF0dHIpICE9IElGTEFf VkZfSU5GTyB8fAorCQkJICAgIG5sYV9sZW4oYXR0cikgPCBOTEFfSERSTEVOKSB7CiAJCQkJZXJy ID0gLUVJTlZBTDsKIAkJCQlnb3RvIGVycm91dDsKIAkJCX0KLQkJCWVyciA9IGRvX3NldHZmaW5m byhkZXYsIGF0dHIpOworCQkJZXJyID0gbmxhX3BhcnNlX25lc3RlZCh2ZmluZm8sIElGTEFfVkZf TUFYLCBhdHRyLAorCQkJCQkgICAgICAgaWZsYV92Zl9wb2xpY3kpOworCQkJaWYgKGVyciA8IDAp CisJCQkJZ290byBlcnJvdXQ7CisJCQllcnIgPSBkb19zZXR2ZmluZm8oZGV2LCB2ZmluZm8pOwog CQkJaWYgKGVyciA8IDApCiAJCQkJZ290byBlcnJvdXQ7CiAJCQlzdGF0dXMgfD0gRE9fU0VUTElO S19OT1RJRlk7Ci0tIAoyLjEuMAoKCkZyb20gNDkwZTdkMjQyYTJkMzIxYzVkYmQxOWM3MjJlNjJh ZGY1MjNlNGYwNiBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJvbTogPT9VVEYtOD9xP1RpbW89 MjBUZXI9QzM9QTRzPz0gPHRpbW8udGVyYXNAaWtpLmZpPgpEYXRlOiBUdWUsIDcgSnVsIDIwMTUg MDg6MzQ6MTMgKzAzMDAKU3ViamVjdDogW1BBVENIIDA0LzMyXSBpcF90dW5uZWw6IGZpeCBpcHY0 IHBtdHUgY2hlY2sgdG8gaG9ub3IgaW5uZXIgaXAgaGVhZGVyCiBkZgpNSU1FLVZlcnNpb246IDEu MApDb250ZW50LVR5cGU6IHRleHQvcGxhaW47IGNoYXJzZXQ9VVRGLTgKQ29udGVudC1UcmFuc2Zl ci1FbmNvZGluZzogOGJpdAoKWyBVcHN0cmVhbSBjb21taXQgZmMyNGYyYjIwOTQzNjZkYTg3ODZm NTlmMjYwNjMwN2U5MzRjZWExNyBdCgpGcmFnIG5lZWRlZCBzaG91bGQgYmUgc2VudCBvbmx5IGlm IHRoZSBpbm5lciBoZWFkZXIgYXNrZWQKdG8gbm90IGZyYWdtZW50LiBDdXJyZW50bHkgZnJhZ21l bnRhdGlvbiBpcyBicm9rZW4gaWYgdGhlCnR1bm5lbCBoYXMgZGYgc2V0LCBidXQgZGYgd2FzIG5v dCBhc2tlZCBpbiB0aGUgb3JpZ2luYWwKcGFja2V0LiBUaGUgdHVubmVsJ3MgZGYgbmVlZHMgdG8g YmUgc3RpbGwgY2hlY2tlZCB0byB1cGRhdGUKaW50ZXJuYWxseSB0aGUgcG10dSBjYWNoZS4KCkNv bW1pdCAyM2EzNjQ3YmM0ZjkzYmFjIGJyb2tlIGl0LCBhbmQgdGhpcyBjb21taXQgZml4ZXMKdGhl IGlwdjQgZGYgY2hlY2sgYmFjayB0byB0aGUgd2F5IGl0IHdhcy4KCkZpeGVzOiAyM2EzNjQ3YmM0 ZjkzYmFjICgiaXBfdHVubmVsczogVXNlIHNrYi1sZW4gdG8gUE1UVSBjaGVjay4iKQpDYzogUHJh dmluIEIgU2hlbGFyIDxwc2hlbGFyQG5pY2lyYS5jb20+ClNpZ25lZC1vZmYtYnk6IFRpbW8gVGVy w6RzIDx0aW1vLnRlcmFzQGlraS5maT4KQWNrZWQtYnk6IFByYXZpbiBCIFNoZWxhciA8cHNoZWxh ckBuaWNpcmEuY29tPgpTaWduZWQtb2ZmLWJ5OiBEYXZpZCBTLiBNaWxsZXIgPGRhdmVtQGRhdmVt bG9mdC5uZXQ+Ci0tLQogbmV0L2lwdjQvaXBfdHVubmVsLmMgfCA4ICsrKysrLS0tCiAxIGZpbGUg Y2hhbmdlZCwgNSBpbnNlcnRpb25zKCspLCAzIGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL25l dC9pcHY0L2lwX3R1bm5lbC5jIGIvbmV0L2lwdjQvaXBfdHVubmVsLmMKaW5kZXggMGJiOGUxNC4u NjgyMjU3MiAxMDA2NDQKLS0tIGEvbmV0L2lwdjQvaXBfdHVubmVsLmMKKysrIGIvbmV0L2lwdjQv aXBfdHVubmVsLmMKQEAgLTU4Nyw3ICs1ODcsOCBAQCBpbnQgaXBfdHVubmVsX2VuY2FwKHN0cnVj dCBza19idWZmICpza2IsIHN0cnVjdCBpcF90dW5uZWwgKnQsCiBFWFBPUlRfU1lNQk9MKGlwX3R1 bm5lbF9lbmNhcCk7CiAKIHN0YXRpYyBpbnQgdG5sX3VwZGF0ZV9wbXR1KHN0cnVjdCBuZXRfZGV2 aWNlICpkZXYsIHN0cnVjdCBza19idWZmICpza2IsCi0JCQkgICAgc3RydWN0IHJ0YWJsZSAqcnQs IF9fYmUxNiBkZikKKwkJCSAgICBzdHJ1Y3QgcnRhYmxlICpydCwgX19iZTE2IGRmLAorCQkJICAg IGNvbnN0IHN0cnVjdCBpcGhkciAqaW5uZXJfaXBoKQogewogCXN0cnVjdCBpcF90dW5uZWwgKnR1 bm5lbCA9IG5ldGRldl9wcml2KGRldik7CiAJaW50IHBrdF9zaXplID0gc2tiLT5sZW4gLSB0dW5u ZWwtPmhsZW4gLSBkZXYtPmhhcmRfaGVhZGVyX2xlbjsKQEAgLTYwNCw3ICs2MDUsOCBAQCBzdGF0 aWMgaW50IHRubF91cGRhdGVfcG10dShzdHJ1Y3QgbmV0X2RldmljZSAqZGV2LCBzdHJ1Y3Qgc2tf YnVmZiAqc2tiLAogCiAJaWYgKHNrYi0+cHJvdG9jb2wgPT0gaHRvbnMoRVRIX1BfSVApKSB7CiAJ CWlmICghc2tiX2lzX2dzbyhza2IpICYmCi0JCSAgICAoZGYgJiBodG9ucyhJUF9ERikpICYmIG10 dSA8IHBrdF9zaXplKSB7CisJCSAgICAoaW5uZXJfaXBoLT5mcmFnX29mZiAmIGh0b25zKElQX0RG KSkgJiYKKwkJICAgIG10dSA8IHBrdF9zaXplKSB7CiAJCQltZW1zZXQoSVBDQihza2IpLCAwLCBz aXplb2YoKklQQ0Ioc2tiKSkpOwogCQkJaWNtcF9zZW5kKHNrYiwgSUNNUF9ERVNUX1VOUkVBQ0gs IElDTVBfRlJBR19ORUVERUQsIGh0b25sKG10dSkpOwogCQkJcmV0dXJuIC1FMkJJRzsKQEAgLTcz OCw3ICs3NDAsNyBAQCB2b2lkIGlwX3R1bm5lbF94bWl0KHN0cnVjdCBza19idWZmICpza2IsIHN0 cnVjdCBuZXRfZGV2aWNlICpkZXYsCiAJCWdvdG8gdHhfZXJyb3I7CiAJfQogCi0JaWYgKHRubF91 cGRhdGVfcG10dShkZXYsIHNrYiwgcnQsIHRubF9wYXJhbXMtPmZyYWdfb2ZmKSkgeworCWlmICh0 bmxfdXBkYXRlX3BtdHUoZGV2LCBza2IsIHJ0LCB0bmxfcGFyYW1zLT5mcmFnX29mZiwgaW5uZXJf aXBoKSkgewogCQlpcF9ydF9wdXQocnQpOwogCQlnb3RvIHR4X2Vycm9yOwogCX0KLS0gCjIuMS4w CgoKRnJvbSBlZjJhMWY2ZDBiZjA2YWZmZGEyZTIzOTEwY2EyNTNhMzI5ZjJmZTc1IE1vbiBTZXAg MTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBTdGVwaGVuIFNtYWxsZXkgPHNkc0B0eWNoby5uc2EuZ292 PgpEYXRlOiBUdWUsIDcgSnVsIDIwMTUgMDk6NDM6NDUgLTA0MDAKU3ViamVjdDogW1BBVENIIDA1 LzMyXSBuZXQvdGlwYzogaW5pdGlhbGl6ZSBzZWN1cml0eSBzdGF0ZSBmb3IgbmV3IGNvbm5lY3Rp b24KIHNvY2tldAoKWyBVcHN0cmVhbSBjb21taXQgZmRkNzVlYThkZjM3MGYyMDZhODE2Mzc4NmU3 NDcwYzEyNzdhNTA2NCBdCgpDYWxsaW5nIGNvbm5lY3QoKSB3aXRoIGFuIEFGX1RJUEMgc29ja2V0 IHdvdWxkIHRyaWdnZXIgYSBzZXJpZXMKb2YgZXJyb3IgbWVzc2FnZXMgZnJvbSBTRUxpbnV4IGFs b25nIHRoZSBsaW5lcyBvZjoKU0VMaW51eDogSW52YWxpZCBjbGFzcyAwCnR5cGU9QVZDIG1zZz1h dWRpdCgxNDM0MTI2NjU4LjQ4NzozNDUwMCk6IGF2YzogIGRlbmllZCAgeyA8dW5wcmludGFibGU+ IH0KICBmb3IgcGlkPTI5MiBjb21tPSJrd29ya2VyL3UxNjo1IiBzY29udGV4dD1zeXN0ZW1fdTpz eXN0ZW1fcjprZXJuZWxfdDpzMAogIHRjb250ZXh0PXN5c3RlbV91Om9iamVjdF9yOnVubGFiZWxl ZF90OnMwIHRjbGFzcz08dW5wcmludGFibGU+CiAgcGVybWlzc2l2ZT0wCgpUaGlzIHdhcyBkdWUg dG8gYSBmYWlsdXJlIHRvIGluaXRpYWxpemUgdGhlIHNlY3VyaXR5IHN0YXRlIG9mIHRoZSBuZXcK Y29ubmVjdGlvbiBzb2NrIGJ5IHRoZSB0aXBjIGNvZGUsIGxlYXZpbmcgaXQgd2l0aCBqdW5rIGlu IHRoZSBzZWN1cml0eQpjbGFzcyBmaWVsZCBhbmQgYW4gdW5sYWJlbGVkIHNlY2lkLiAgQWRkIGEg Y2FsbCB0byBzZWN1cml0eV9za19jbG9uZSgpCnRvIGluaGVyaXQgdGhlIHNlY3VyaXR5IHN0YXRl IGZyb20gdGhlIHBhcmVudCBzb2NrZXQuCgpSZXBvcnRlZC1ieTogVGltIFNoZWFyZXIgPHRpbS5z aGVhcmVyQG92ZXJ0dXJlbmV0d29ya3MuY29tPgpTaWduZWQtb2ZmLWJ5OiBTdGVwaGVuIFNtYWxs ZXkgPHNkc0B0eWNoby5uc2EuZ292PgpBY2tlZC1ieTogUGF1bCBNb29yZSA8cGF1bEBwYXVsLW1v b3JlLmNvbT4KQWNrZWQtYnk6IFlpbmcgWHVlIDx5aW5nLnh1ZUB3aW5kcml2ZXIuY29tPgpTaWdu ZWQtb2ZmLWJ5OiBEYXZpZCBTLiBNaWxsZXIgPGRhdmVtQGRhdmVtbG9mdC5uZXQ+Ci0tLQogbmV0 L3RpcGMvc29ja2V0LmMgfCAxICsKIDEgZmlsZSBjaGFuZ2VkLCAxIGluc2VydGlvbigrKQoKZGlm ZiAtLWdpdCBhL25ldC90aXBjL3NvY2tldC5jIGIvbmV0L3RpcGMvc29ja2V0LmMKaW5kZXggNTFi ZGRjMi4uODIyNDAxNiAxMDA2NDQKLS0tIGEvbmV0L3RpcGMvc29ja2V0LmMKKysrIGIvbmV0L3Rp cGMvc29ja2V0LmMKQEAgLTE5OTYsNiArMTk5Niw3IEBAIHN0YXRpYyBpbnQgdGlwY19hY2NlcHQo c3RydWN0IHNvY2tldCAqc29jaywgc3RydWN0IHNvY2tldCAqbmV3X3NvY2ssIGludCBmbGFncykK IAlyZXMgPSB0aXBjX3NrX2NyZWF0ZShzb2NrX25ldChzb2NrLT5zayksIG5ld19zb2NrLCAwLCAx KTsKIAlpZiAocmVzKQogCQlnb3RvIGV4aXQ7CisJc2VjdXJpdHlfc2tfY2xvbmUoc29jay0+c2ss IG5ld19zb2NrLT5zayk7CiAKIAluZXdfc2sgPSBuZXdfc29jay0+c2s7CiAJbmV3X3Rzb2NrID0g dGlwY19zayhuZXdfc2spOwotLSAKMi4xLjAKCgpGcm9tIDNlNzE4NTQzNDE5ZTEyODI3Nzg2NTQz OTQ5OGJmOGJkMDE1ZTNlYzIgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCkZyb206IE5pa29sYXkg QWxla3NhbmRyb3YgPHJhem9yQGJsYWNrd2FsbC5vcmc+CkRhdGU6IFR1ZSwgNyBKdWwgMjAxNSAx NTo1NTo1NiArMDIwMApTdWJqZWN0OiBbUEFUQ0ggMDYvMzJdIGJyaWRnZTogbWRiOiB6ZXJvIG91 dCB0aGUgbG9jYWwgYnJfaXAgdmFyaWFibGUgYmVmb3JlCiB1c2UKClsgVXBzdHJlYW0gY29tbWl0 IGYxMTU4Yjc0ZTU0ZjJlMjQ2MmJhNWUyZjQ1YTExODI0NmQ5ZDViNDMgXQoKU2luY2UgY29tbWl0 IGIwZTlhMzBkZDY2OSAoImJyaWRnZTogQWRkIHZsYW4gaWQgdG8gbXVsdGljYXN0IGdyb3VwcyIp CnRoZXJlJ3MgYSBjaGVjayBpbiBicl9pcF9lcXVhbCgpIGZvciBhIG1hdGNoaW5nIHZsYW4gaWQs IGJ1dCB0aGUgbWRiCmZ1bmN0aW9ucyB3ZXJlIG5vdCBtb2RpZmllZCB0byB1c2UgKG9yIGF0IGxl YXN0IHplcm8gaXQpIHNvIHdoZW4gYW4KZW50cnkgd2FzIGFkZGVkIGl0IHdvdWxkIGhhdmUgYSBn YXJiYWdlIHZsYW4gaWQgKGZyb20gdGhlIGxvY2FsIGJyX2lwCnZhcmlhYmxlIGluIF9fYnJfbWRi X2FkZC9kZWwpIGFuZCB0aGlzIHdvdWxkIHByZXZlbnQgaXQgZnJvbSBiZWluZwptYXRjaGVkIGFu ZCBhbHNvIGRlbGV0ZWQuIFNvIHplcm8gb3V0IHRoZSB3aG9sZSBsb2NhbCBpcCB2YXIgdG8gcHJv dGVjdApvdXJzZWx2ZXMgZnJvbSBmdXR1cmUgY2hhbmdlcyBhbmQgYWxzbyB0byBmaXggdGhlIGN1 cnJlbnQgYnVnLCBzaW5jZQp0aGVyZSdzIG5vIHZsYW4gaWQgc3VwcG9ydCBpbiB0aGUgbWRiIHVh cGkgLSB1c2UgYWx3YXlzIHZsYW4gaWQgMC4KRXhhbXBsZSBiZWZvcmUgcGF0Y2g6CnJvb3RAZGVi aWFuOn4jIGJyaWRnZSBtZGIgYWRkIGRldiBicjAgcG9ydCBldGgxIGdycCAyMzkuMC4wLjEgcGVy bWFuZW50CnJvb3RAZGViaWFuOn4jIGJyaWRnZSBtZGIKZGV2IGJyMCBwb3J0IGV0aDEgZ3JwIDIz OS4wLjAuMSBwZXJtYW5lbnQKcm9vdEBkZWJpYW46fiMgYnJpZGdlIG1kYiBkZWwgZGV2IGJyMCBw b3J0IGV0aDEgZ3JwIDIzOS4wLjAuMSBwZXJtYW5lbnQKUlRORVRMSU5LIGFuc3dlcnM6IEludmFs aWQgYXJndW1lbnQKCkFmdGVyIHBhdGNoOgpyb290QGRlYmlhbjp+IyBicmlkZ2UgbWRiIGFkZCBk ZXYgYnIwIHBvcnQgZXRoMSBncnAgMjM5LjAuMC4xIHBlcm1hbmVudApyb290QGRlYmlhbjp+IyBi cmlkZ2UgbWRiCmRldiBicjAgcG9ydCBldGgxIGdycCAyMzkuMC4wLjEgcGVybWFuZW50CnJvb3RA ZGViaWFuOn4jIGJyaWRnZSBtZGIgZGVsIGRldiBicjAgcG9ydCBldGgxIGdycCAyMzkuMC4wLjEg cGVybWFuZW50CnJvb3RAZGViaWFuOn4jIGJyaWRnZSBtZGIKClNpZ25lZC1vZmYtYnk6IE5pa29s YXkgQWxla3NhbmRyb3YgPHJhem9yQGJsYWNrd2FsbC5vcmc+CkZpeGVzOiBiMGU5YTMwZGQ2Njkg KCJicmlkZ2U6IEFkZCB2bGFuIGlkIHRvIG11bHRpY2FzdCBncm91cHMiKQpTaWduZWQtb2ZmLWJ5 OiBEYXZpZCBTLiBNaWxsZXIgPGRhdmVtQGRhdmVtbG9mdC5uZXQ+Ci0tLQogbmV0L2JyaWRnZS9i cl9tZGIuYyB8IDIgKysKIDEgZmlsZSBjaGFuZ2VkLCAyIGluc2VydGlvbnMoKykKCmRpZmYgLS1n aXQgYS9uZXQvYnJpZGdlL2JyX21kYi5jIGIvbmV0L2JyaWRnZS9icl9tZGIuYwppbmRleCA1ZGYw NTI2Li5iMDc3NjY0IDEwMDY0NAotLS0gYS9uZXQvYnJpZGdlL2JyX21kYi5jCisrKyBiL25ldC9i cmlkZ2UvYnJfbWRiLmMKQEAgLTM3MCw2ICszNzAsNyBAQCBzdGF0aWMgaW50IF9fYnJfbWRiX2Fk ZChzdHJ1Y3QgbmV0ICpuZXQsIHN0cnVjdCBuZXRfYnJpZGdlICpiciwKIAlpZiAoIXAgfHwgcC0+ YnIgIT0gYnIgfHwgcC0+c3RhdGUgPT0gQlJfU1RBVEVfRElTQUJMRUQpCiAJCXJldHVybiAtRUlO VkFMOwogCisJbWVtc2V0KCZpcCwgMCwgc2l6ZW9mKGlwKSk7CiAJaXAucHJvdG8gPSBlbnRyeS0+ YWRkci5wcm90bzsKIAlpZiAoaXAucHJvdG8gPT0gaHRvbnMoRVRIX1BfSVApKQogCQlpcC51Lmlw NCA9IGVudHJ5LT5hZGRyLnUuaXA0OwpAQCAtNDE2LDYgKzQxNyw3IEBAIHN0YXRpYyBpbnQgX19i cl9tZGJfZGVsKHN0cnVjdCBuZXRfYnJpZGdlICpiciwgc3RydWN0IGJyX21kYl9lbnRyeSAqZW50 cnkpCiAJaWYgKCFuZXRpZl9ydW5uaW5nKGJyLT5kZXYpIHx8IGJyLT5tdWx0aWNhc3RfZGlzYWJs ZWQpCiAJCXJldHVybiAtRUlOVkFMOwogCisJbWVtc2V0KCZpcCwgMCwgc2l6ZW9mKGlwKSk7CiAJ aXAucHJvdG8gPSBlbnRyeS0+YWRkci5wcm90bzsKIAlpZiAoaXAucHJvdG8gPT0gaHRvbnMoRVRI X1BfSVApKSB7CiAJCWlmICh0aW1lcl9wZW5kaW5nKCZici0+aXA0X290aGVyX3F1ZXJ5LnRpbWVy KSkKLS0gCjIuMS4wCgoKRnJvbSAwY2NiYTA5YzFlZDIxM2NkYmU0MTBlZjcwZThjNjYzOTgwM2Ew ZGUyIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBPbGVnIE5lc3Rlcm92IDxvbGVnQHJl ZGhhdC5jb20+CkRhdGU6IFdlZCwgOCBKdWwgMjAxNSAyMTo0MjoxMSArMDIwMApTdWJqZWN0OiBb UEFUQ0ggMDcvMzJdIG5ldDogcGt0Z2VuOiBmaXggcmFjZSBiZXR3ZWVuIHBrdGdlbl90aHJlYWRf d29ya2VyKCkKIGFuZCBrdGhyZWFkX3N0b3AoKQoKWyBVcHN0cmVhbSBjb21taXQgZmVjZGY4YmUy ZDkxZTA0YjBhOWE0Zjc5ZmYwNjQ5OWEzNmY1ZDE0ZiBdCgpwa3RnZW5fdGhyZWFkX3dvcmtlcigp IGlzIG9idmlvdXNseSByYWN5LCBrdGhyZWFkX3N0b3AoKSBjYW4gY29tZQpiZXR3ZWVuIHRoZSBr dGhyZWFkX3Nob3VsZF9zdG9wKCkgY2hlY2sgYW5kIHNldF9jdXJyZW50X3N0YXRlKCkuCgpTaWdu ZWQtb2ZmLWJ5OiBPbGVnIE5lc3Rlcm92IDxvbGVnQHJlZGhhdC5jb20+ClJlcG9ydGVkLWJ5OiBK YW4gU3RhbmNlayA8anN0YW5jZWtAcmVkaGF0LmNvbT4KUmVwb3J0ZWQtYnk6IE1hcmNlbG8gTGVp dG5lciA8bWxlaXRuZXJAcmVkaGF0LmNvbT4KU2lnbmVkLW9mZi1ieTogRGF2aWQgUy4gTWlsbGVy IDxkYXZlbUBkYXZlbWxvZnQubmV0PgotLS0KIG5ldC9jb3JlL3BrdGdlbi5jIHwgNCArKystCiAx IGZpbGUgY2hhbmdlZCwgMyBpbnNlcnRpb25zKCspLCAxIGRlbGV0aW9uKC0pCgpkaWZmIC0tZ2l0 IGEvbmV0L2NvcmUvcGt0Z2VuLmMgYi9uZXQvY29yZS9wa3RnZW4uYwppbmRleCAwYjMyMGQ5Li40 ZmYzZWFjIDEwMDY0NAotLS0gYS9uZXQvY29yZS9wa3RnZW4uYworKysgYi9uZXQvY29yZS9wa3Rn ZW4uYwpAQCAtMzQ5MCw4ICszNDkwLDEwIEBAIHN0YXRpYyBpbnQgcGt0Z2VuX3RocmVhZF93b3Jr ZXIodm9pZCAqYXJnKQogCXBrdGdlbl9yZW1fdGhyZWFkKHQpOwogCiAJLyogV2FpdCBmb3Iga3Ro cmVhZF9zdG9wICovCi0Jd2hpbGUgKCFrdGhyZWFkX3Nob3VsZF9zdG9wKCkpIHsKKwlmb3IgKDs7 KSB7CiAJCXNldF9jdXJyZW50X3N0YXRlKFRBU0tfSU5URVJSVVBUSUJMRSk7CisJCWlmIChrdGhy ZWFkX3Nob3VsZF9zdG9wKCkpCisJCQlicmVhazsKIAkJc2NoZWR1bGUoKTsKIAl9CiAJX19zZXRf Y3VycmVudF9zdGF0ZShUQVNLX1JVTk5JTkcpOwotLSAKMi4xLjAKCgpGcm9tIDVhMzEwODUzNzYz NzI2MTllYjI5MjYxNTc3ZTViOTEyZjA0ZDE0YjUgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCkZy b206IEp1bGlhbiBBbmFzdGFzb3YgPGphQHNzaS5iZz4KRGF0ZTogVGh1LCA5IEp1bCAyMDE1IDA5 OjU5OjA5ICswMzAwClN1YmplY3Q6IFtQQVRDSCAwOC8zMl0gbmV0OiBkbyBub3QgcHJvY2VzcyBk ZXZpY2UgYmFja2xvZyBkdXJpbmcKIHVucmVnaXN0cmF0aW9uCgpbIFVwc3RyZWFtIGNvbW1pdCBl OWU0ZGQzMjY3ZDBjNTIzNGM1YzBmNDc0NDA0NTZiMTA4NzVkZWM5IF0KCmNvbW1pdCAzODFjNzU5 ZDk5MTYgKCJpcHY0OiBBdm9pZCBjcmFzaGluZyBpbiBpcF9lcnJvciIpCmZpeGVzIGEgcHJvYmxl bSB3aGVyZSBwcm9jZXNzZWQgcGFja2V0IGNvbWVzIGZyb20gZGV2aWNlCndpdGggZGVzdHJveWVk IGluZXRkZXYgKGRldi0+aXBfcHRyKS4gVGhpcyBpcyBub3QgZXhwZWN0ZWQKYmVjYXVzZSBpbmV0 ZGV2X2Rlc3Ryb3kgaXMgY2FsbGVkIGluIE5FVERFVl9VTlJFR0lTVEVSCnBoYXNlIGFuZCBwYWNr ZXRzIHNob3VsZCBub3QgYmUgcHJvY2Vzc2VkIGFmdGVyCmRldl9jbG9zZV9tYW55KCkgYW5kIHN5 bmNocm9uaXplX25ldCgpLiBBYm92ZSBmaXggaXMgc3RpbGwKcmVxdWlyZWQgYmVjYXVzZSBpbmV0 ZGV2X2Rlc3Ryb3kgY2FuIGJlIGNhbGxlZCBmb3Igb3RoZXIKcmVhc29ucy4gQnV0IGl0IHNob3dz IHRoZSByZWFsIHByb2JsZW06IGJhY2tsb2cgY2FuIGtlZXAKcGFja2V0cyBmb3IgbG9uZyB0aW1l IGFuZCB0aGV5IGRvIG5vdCBob2xkIHJlZmVyZW5jZSB0bwpkZXZpY2UuIFN1Y2ggcGFja2V0cyBh cmUgdGhlbiBkZWxpdmVyZWQgdG8gdXBwZXIgbGV2ZWxzCmF0IHRoZSBzYW1lIHRpbWUgd2hlbiBk ZXZpY2UgaXMgdW5yZWdpc3RlcmVkLgpDYWxsaW5nIGZsdXNoX2JhY2tsb2cgYWZ0ZXIgTkVUREVW X1VOUkVHSVNURVJfRklOQUwgc3RpbGwKYWNjb3VudHMgYWxsIHBhY2tldHMgZnJvbSBiYWNrbG9n IGJ1dCBiZWZvcmUgdGhhdCBzb21lIHBhY2tldHMKY29udGludWUgdG8gYmUgZGVsaXZlcmVkIHRv IHVwcGVyIGxldmVscyBsb25nIGFmdGVyIHRoZQpzeW5jaHJvbml6ZV9uZXQgY2FsbCB3aGljaCBp cyBzdXBwb3NlZCB0byB3YWl0IHRoZSBsYXN0Cm9uZXMuIEFsc28sIGFzIEVyaWMgcG9pbnRlZCBv dXQsIHByb2Nlc3NlZCBwYWNrZXRzLCBtb3N0bHkKZnJvbSBvdGhlciBkZXZpY2VzLCBjYW4gY29u dGludWUgdG8gYWRkIG5ldyBwYWNrZXRzIHRvIGJhY2tsb2cuCgpGaXggdGhlIHByb2JsZW0gYnkg bW92aW5nIGZsdXNoX2JhY2tsb2cgZWFybHksIGFmdGVyIHRoZQpkZXZpY2UgZHJpdmVyIGlzIHN0 b3BwZWQgYW5kIGJlZm9yZSB0aGUgc3luY2hyb25pemVfbmV0KCkgY2FsbC4KVGhlbiB1c2UgbmV0 aWZfcnVubmluZyBjaGVjayB0byBtYWtlIHN1cmUgd2UgZG8gbm90IGFkZCBtb3JlCnBhY2tldHMg dG8gYmFja2xvZy4gV2UgaGF2ZSB0byBkbyBpdCBpbiBlbnF1ZXVlX3RvX2JhY2tsb2cKY29udGV4 dCB3aGVuIHRoZSBsb2NhbCBJUlEgaXMgZGlzYWJsZWQuIEFzIHJlc3VsdCwgYWZ0ZXIgdGhlCmZs dXNoX2JhY2tsb2cgYW5kIHN5bmNocm9uaXplX25ldCBzZXF1ZW5jZSBhbGwgcGFja2V0cwpzaG91 bGQgYmUgYWNjb3VudGVkLgoKVGhhbmtzIHRvIEVyaWMgVy4gQmllZGVybWFuIGZvciB0aGUgdGVz dCBzY3JpcHQgYW5kIGhpcwp2YWx1YWJsZSBmZWVkYmFjayEKClJlcG9ydGVkLWJ5OiBWaXR0b3Jp byBHYW1iYWxldHRhIDxsaW51eGJ1Z3NAdml0dGdhbS5uZXQ+CkZpeGVzOiA2ZTU4M2NlNTI0MmYg KCJuZXQ6IGVsaW1pbmF0ZSByZWZjb3VudGluZyBpbiBiYWNrbG9nIHF1ZXVlIikKQ2M6IEVyaWMg Vy4gQmllZGVybWFuIDxlYmllZGVybUB4bWlzc2lvbi5jb20+CkNjOiBTdGVwaGVuIEhlbW1pbmdl ciA8c3RlcGhlbkBuZXR3b3JrcGx1bWJlci5vcmc+ClNpZ25lZC1vZmYtYnk6IEp1bGlhbiBBbmFz dGFzb3YgPGphQHNzaS5iZz4KU2lnbmVkLW9mZi1ieTogRGF2aWQgUy4gTWlsbGVyIDxkYXZlbUBk YXZlbWxvZnQubmV0PgotLS0KIG5ldC9jb3JlL2Rldi5jIHwgNiArKysrLS0KIDEgZmlsZSBjaGFu Z2VkLCA0IGluc2VydGlvbnMoKyksIDIgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvbmV0L2Nv cmUvZGV2LmMgYi9uZXQvY29yZS9kZXYuYwppbmRleCA3YjY1YzU4Li4xYWQ3ZDVmIDEwMDY0NAot LS0gYS9uZXQvY29yZS9kZXYuYworKysgYi9uZXQvY29yZS9kZXYuYwpAQCAtMzMwOSw2ICszMzA5 LDggQEAgc3RhdGljIGludCBlbnF1ZXVlX3RvX2JhY2tsb2coc3RydWN0IHNrX2J1ZmYgKnNrYiwg aW50IGNwdSwKIAlsb2NhbF9pcnFfc2F2ZShmbGFncyk7CiAKIAlycHNfbG9jayhzZCk7CisJaWYg KCFuZXRpZl9ydW5uaW5nKHNrYi0+ZGV2KSkKKwkJZ290byBkcm9wOwogCXFsZW4gPSBza2JfcXVl dWVfbGVuKCZzZC0+aW5wdXRfcGt0X3F1ZXVlKTsKIAlpZiAocWxlbiA8PSBuZXRkZXZfbWF4X2Jh Y2tsb2cgJiYgIXNrYl9mbG93X2xpbWl0KHNrYiwgcWxlbikpIHsKIAkJaWYgKHNrYl9xdWV1ZV9s ZW4oJnNkLT5pbnB1dF9wa3RfcXVldWUpKSB7CkBAIC0zMzMwLDYgKzMzMzIsNyBAQCBlbnF1ZXVl OgogCQlnb3RvIGVucXVldWU7CiAJfQogCitkcm9wOgogCXNkLT5kcm9wcGVkKys7CiAJcnBzX3Vu bG9jayhzZCk7CiAKQEAgLTU4NjcsNiArNTg3MCw3IEBAIHN0YXRpYyB2b2lkIHJvbGxiYWNrX3Jl Z2lzdGVyZWRfbWFueShzdHJ1Y3QgbGlzdF9oZWFkICpoZWFkKQogCQl1bmxpc3RfbmV0ZGV2aWNl KGRldik7CiAKIAkJZGV2LT5yZWdfc3RhdGUgPSBORVRSRUdfVU5SRUdJU1RFUklORzsKKwkJb25f ZWFjaF9jcHUoZmx1c2hfYmFja2xvZywgZGV2LCAxKTsKIAl9CiAKIAlzeW5jaHJvbml6ZV9uZXQo KTsKQEAgLTY0ODcsOCArNjQ5MSw2IEBAIHZvaWQgbmV0ZGV2X3J1bl90b2RvKHZvaWQpCiAKIAkJ ZGV2LT5yZWdfc3RhdGUgPSBORVRSRUdfVU5SRUdJU1RFUkVEOwogCi0JCW9uX2VhY2hfY3B1KGZs dXNoX2JhY2tsb2csIGRldiwgMSk7Ci0KIAkJbmV0ZGV2X3dhaXRfYWxscmVmcyhkZXYpOwogCiAJ CS8qIHBhcmFub2lhICovCi0tIAoyLjEuMAoKCkZyb20gYjQ4MDRkNGI2ZGQ3M2JiMmI4NzJmYjM0 YWI1NTBhNjI3ZGIxNDEyMyBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJvbTogSnVsaWFuIEFu YXN0YXNvdiA8amFAc3NpLmJnPgpEYXRlOiBUaHUsIDkgSnVsIDIwMTUgMDk6NTk6MTAgKzAzMDAK U3ViamVjdDogW1BBVENIIDA5LzMyXSBuZXQ6IGNhbGwgcmN1X3JlYWRfbG9jayBlYXJseSBpbiBw cm9jZXNzX2JhY2tsb2cKClsgVXBzdHJlYW0gY29tbWl0IDJjMTdkMjdjMzZkY2NlMmI2YmY2ODlm NDFhNDZiOWU5MDk4NzdjMjEgXQoKSW5jb21pbmcgcGFja2V0IHNob3VsZCBiZSBlaXRoZXIgaW4g YmFja2xvZyBxdWV1ZSBvcgppbiBSQ1UgcmVhZC1zaWRlIHNlY3Rpb24uIE90aGVyd2lzZSwgdGhl IGZpbmFsIHNlcXVlbmNlIG9mCmZsdXNoX2JhY2tsb2coKSBhbmQgc3luY2hyb25pemVfbmV0KCkg bWF5IG1pc3MgcGFja2V0cwp0aGF0IGNhbiBydW4gd2l0aG91dCBkZXZpY2UgcmVmZXJlbmNlOgoK Q1BVIDEgICAgICAgICAgICAgICAgICBDUFUgMgogICAgICAgICAgICAgICAgICAgICAgIHNrYi0+ ZGV2OiBubyByZWZlcmVuY2UKICAgICAgICAgICAgICAgICAgICAgICBwcm9jZXNzX2JhY2tsb2c6 X19za2JfZGVxdWV1ZQogICAgICAgICAgICAgICAgICAgICAgIHByb2Nlc3NfYmFja2xvZzpsb2Nh bF9pcnFfZW5hYmxlCgpvbl9lYWNoX2NwdSBmb3IKZmx1c2hfYmFja2xvZyA9PiAgICAgICBJUEko aGFyZGlycSk6IGZsdXNoX2JhY2tsb2cKICAgICAgICAgICAgICAgICAgICAgICAtIHBhY2tldCBu b3QgZm91bmQgaW4gYmFja2xvZwoKICAgICAgICAgICAgICAgICAgICAgICBDUFUgZGVsYXllZCAu Li4Kc3luY2hyb25pemVfbmV0Ci0gbm8gb25nb2luZyBSQ1UKcmVhZC1zaWRlIHNlY3Rpb25zCgpu ZXRkZXZfcnVuX3RvZG8sCnJjdV9iYXJyaWVyOiBubwpvbmdvaW5nIGNhbGxiYWNrcwogICAgICAg ICAgICAgICAgICAgICAgIF9fbmV0aWZfcmVjZWl2ZV9za2JfY29yZTpyY3VfcmVhZF9sb2NrCiAg ICAgICAgICAgICAgICAgICAgICAgLSB0b28gbGF0ZQpmcmVlIGRldgogICAgICAgICAgICAgICAg ICAgICAgIHByb2Nlc3MgcGFja2V0IGZvciBmcmVlZCBkZXYKCkZpeGVzOiA2ZTU4M2NlNTI0MmYg KCJuZXQ6IGVsaW1pbmF0ZSByZWZjb3VudGluZyBpbiBiYWNrbG9nIHF1ZXVlIikKQ2M6IEVyaWMg Vy4gQmllZGVybWFuIDxlYmllZGVybUB4bWlzc2lvbi5jb20+CkNjOiBTdGVwaGVuIEhlbW1pbmdl ciA8c3RlcGhlbkBuZXR3b3JrcGx1bWJlci5vcmc+ClNpZ25lZC1vZmYtYnk6IEp1bGlhbiBBbmFz dGFzb3YgPGphQHNzaS5iZz4KU2lnbmVkLW9mZi1ieTogRGF2aWQgUy4gTWlsbGVyIDxkYXZlbUBk YXZlbWxvZnQubmV0PgotLS0KIG5ldC9jb3JlL2Rldi5jIHwgMzAgKysrKysrKysrKysrKysrLS0t LS0tLS0tLS0tLS0tCiAxIGZpbGUgY2hhbmdlZCwgMTUgaW5zZXJ0aW9ucygrKSwgMTUgZGVsZXRp b25zKC0pCgpkaWZmIC0tZ2l0IGEvbmV0L2NvcmUvZGV2LmMgYi9uZXQvY29yZS9kZXYuYwppbmRl eCAxYWQ3ZDVmLi45MzYxMmIyIDEwMDY0NAotLS0gYS9uZXQvY29yZS9kZXYuYworKysgYi9uZXQv Y29yZS9kZXYuYwpAQCAtMzY0MSw4ICszNjQxLDYgQEAgc3RhdGljIGludCBfX25ldGlmX3JlY2Vp dmVfc2tiX2NvcmUoc3RydWN0IHNrX2J1ZmYgKnNrYiwgYm9vbCBwZm1lbWFsbG9jKQogCiAJcHRf cHJldiA9IE5VTEw7CiAKLQlyY3VfcmVhZF9sb2NrKCk7Ci0KIGFub3RoZXJfcm91bmQ6CiAJc2ti LT5za2JfaWlmID0gc2tiLT5kZXYtPmlmaW5kZXg7CiAKQEAgLTM2NTIsNyArMzY1MCw3IEBAIGFu b3RoZXJfcm91bmQ6CiAJICAgIHNrYi0+cHJvdG9jb2wgPT0gY3B1X3RvX2JlMTYoRVRIX1BfODAy MUFEKSkgewogCQlza2IgPSBza2Jfdmxhbl91bnRhZyhza2IpOwogCQlpZiAodW5saWtlbHkoIXNr YikpCi0JCQlnb3RvIHVubG9jazsKKwkJCWdvdG8gb3V0OwogCX0KIAogI2lmZGVmIENPTkZJR19O RVRfQ0xTX0FDVApAQCAtMzY3Nyw3ICszNjc1LDcgQEAgc2tpcF90YXBzOgogI2lmZGVmIENPTkZJ R19ORVRfQ0xTX0FDVAogCXNrYiA9IGhhbmRsZV9pbmcoc2tiLCAmcHRfcHJldiwgJnJldCwgb3Jp Z19kZXYpOwogCWlmICghc2tiKQotCQlnb3RvIHVubG9jazsKKwkJZ290byBvdXQ7CiBuY2xzOgog I2VuZGlmCiAKQEAgLTM2OTIsNyArMzY5MCw3IEBAIG5jbHM6CiAJCWlmICh2bGFuX2RvX3JlY2Vp dmUoJnNrYikpCiAJCQlnb3RvIGFub3RoZXJfcm91bmQ7CiAJCWVsc2UgaWYgKHVubGlrZWx5KCFz a2IpKQotCQkJZ290byB1bmxvY2s7CisJCQlnb3RvIG91dDsKIAl9CiAKIAlyeF9oYW5kbGVyID0g cmN1X2RlcmVmZXJlbmNlKHNrYi0+ZGV2LT5yeF9oYW5kbGVyKTsKQEAgLTM3MDQsNyArMzcwMiw3 IEBAIG5jbHM6CiAJCXN3aXRjaCAocnhfaGFuZGxlcigmc2tiKSkgewogCQljYXNlIFJYX0hBTkRM RVJfQ09OU1VNRUQ6CiAJCQlyZXQgPSBORVRfUlhfU1VDQ0VTUzsKLQkJCWdvdG8gdW5sb2NrOwor CQkJZ290byBvdXQ7CiAJCWNhc2UgUlhfSEFORExFUl9BTk9USEVSOgogCQkJZ290byBhbm90aGVy X3JvdW5kOwogCQljYXNlIFJYX0hBTkRMRVJfRVhBQ1Q6CkBAIC0zNzU2LDggKzM3NTQsNyBAQCBk cm9wOgogCQlyZXQgPSBORVRfUlhfRFJPUDsKIAl9CiAKLXVubG9jazoKLQlyY3VfcmVhZF91bmxv Y2soKTsKK291dDoKIAlyZXR1cm4gcmV0OwogfQogCkBAIC0zNzg4LDI5ICszNzg1LDMwIEBAIHN0 YXRpYyBpbnQgX19uZXRpZl9yZWNlaXZlX3NrYihzdHJ1Y3Qgc2tfYnVmZiAqc2tiKQogCiBzdGF0 aWMgaW50IG5ldGlmX3JlY2VpdmVfc2tiX2ludGVybmFsKHN0cnVjdCBza19idWZmICpza2IpCiB7 CisJaW50IHJldDsKKwogCW5ldF90aW1lc3RhbXBfY2hlY2sobmV0ZGV2X3RzdGFtcF9wcmVxdWV1 ZSwgc2tiKTsKIAogCWlmIChza2JfZGVmZXJfcnhfdGltZXN0YW1wKHNrYikpCiAJCXJldHVybiBO RVRfUlhfU1VDQ0VTUzsKIAorCXJjdV9yZWFkX2xvY2soKTsKKwogI2lmZGVmIENPTkZJR19SUFMK IAlpZiAoc3RhdGljX2tleV9mYWxzZSgmcnBzX25lZWRlZCkpIHsKIAkJc3RydWN0IHJwc19kZXZf ZmxvdyB2b2lkZmxvdywgKnJmbG93ID0gJnZvaWRmbG93OwotCQlpbnQgY3B1LCByZXQ7Ci0KLQkJ cmN1X3JlYWRfbG9jaygpOwotCi0JCWNwdSA9IGdldF9ycHNfY3B1KHNrYi0+ZGV2LCBza2IsICZy Zmxvdyk7CisJCWludCBjcHUgPSBnZXRfcnBzX2NwdShza2ItPmRldiwgc2tiLCAmcmZsb3cpOwog CiAJCWlmIChjcHUgPj0gMCkgewogCQkJcmV0ID0gZW5xdWV1ZV90b19iYWNrbG9nKHNrYiwgY3B1 LCAmcmZsb3ctPmxhc3RfcXRhaWwpOwogCQkJcmN1X3JlYWRfdW5sb2NrKCk7CiAJCQlyZXR1cm4g cmV0OwogCQl9Ci0JCXJjdV9yZWFkX3VubG9jaygpOwogCX0KICNlbmRpZgotCXJldHVybiBfX25l dGlmX3JlY2VpdmVfc2tiKHNrYik7CisJcmV0ID0gX19uZXRpZl9yZWNlaXZlX3NrYihza2IpOwor CXJjdV9yZWFkX3VubG9jaygpOworCXJldHVybiByZXQ7CiB9CiAKIC8qKgpAQCAtNDM0Niw4ICs0 MzQ0LDEwIEBAIHN0YXRpYyBpbnQgcHJvY2Vzc19iYWNrbG9nKHN0cnVjdCBuYXBpX3N0cnVjdCAq bmFwaSwgaW50IHF1b3RhKQogCQlzdHJ1Y3Qgc2tfYnVmZiAqc2tiOwogCiAJCXdoaWxlICgoc2ti ID0gX19za2JfZGVxdWV1ZSgmc2QtPnByb2Nlc3NfcXVldWUpKSkgeworCQkJcmN1X3JlYWRfbG9j aygpOwogCQkJbG9jYWxfaXJxX2VuYWJsZSgpOwogCQkJX19uZXRpZl9yZWNlaXZlX3NrYihza2Ip OworCQkJcmN1X3JlYWRfdW5sb2NrKCk7CiAJCQlsb2NhbF9pcnFfZGlzYWJsZSgpOwogCQkJaW5w dXRfcXVldWVfaGVhZF9pbmNyKHNkKTsKIAkJCWlmICgrK3dvcmsgPj0gcXVvdGEpIHsKLS0gCjIu MS4wCgoKRnJvbSBkZTBhY2I1ZDYyNGFmYzNkNjhkZmUwMGJiMTQ4MDcwMGFlZDczNGJhIE1vbiBT ZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBEYW4gQ2FycGVudGVyIDxkYW4uY2FycGVudGVyQG9y YWNsZS5jb20+CkRhdGU6IFN1biwgMTIgSnVsIDIwMTUgMDE6MjA6NTUgKzAzMDAKU3ViamVjdDog W1BBVENIIDEwLzMyXSBuZXQveGVuLW5ldGJhY2s6IG9mZiBieSBvbmUgaW4gQlVHX09OKCkgY29u ZGl0aW9uCgpbIFVwc3RyZWFtIGNvbW1pdCA1MGMyZTRkZDY3NDk3MjUzMzg2MjFmZmY0NTZiMjZk M2E1OTIyNTlmIF0KClRoZSA+IHNob3VsZCBiZSA+PS4gIEkgYWxzbyBhZGRlZCBzcGFjZXMgYXJv dW5kIHRoZSAnLScgb3BlcmF0aW9ucyBzbwp0aGUgY29kZSBpcyBhIGxpdHRsZSBtb3JlIGNvbnNp c3RlbnQgYW5kIG1hdGNoZXMgdGhlIGNvbmRpdGlvbiBiZXR0ZXIuCgpGaXhlczogZjUzYzNmZThk YWQ3ICgneGVuLW5ldGJhY2s6IEludHJvZHVjZSBUWCBncmFudCBtYXBwaW5nJykKU2lnbmVkLW9m Zi1ieTogRGFuIENhcnBlbnRlciA8ZGFuLmNhcnBlbnRlckBvcmFjbGUuY29tPgpTaWduZWQtb2Zm LWJ5OiBEYXZpZCBTLiBNaWxsZXIgPGRhdmVtQGRhdmVtbG9mdC5uZXQ+Ci0tLQogZHJpdmVycy9u ZXQveGVuLW5ldGJhY2svbmV0YmFjay5jIHwgNiArKystLS0KIDEgZmlsZSBjaGFuZ2VkLCAzIGlu c2VydGlvbnMoKyksIDMgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQveGVu LW5ldGJhY2svbmV0YmFjay5jIGIvZHJpdmVycy9uZXQveGVuLW5ldGJhY2svbmV0YmFjay5jCmlu ZGV4IGMzOWFhY2UuLmJjY2Q0YjYgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvbmV0L3hlbi1uZXRiYWNr L25ldGJhY2suYworKysgYi9kcml2ZXJzL25ldC94ZW4tbmV0YmFjay9uZXRiYWNrLmMKQEAgLTE3 NjAsMTMgKzE3NjAsMTMgQEAgc3RhdGljIGlubGluZSB2b2lkIHhlbnZpZl90eF9kZWFsbG9jX2Fj dGlvbihzdHJ1Y3QgeGVudmlmX3F1ZXVlICpxdWV1ZSkKIAkJc21wX3JtYigpOwogCiAJCXdoaWxl IChkYyAhPSBkcCkgewotCQkJQlVHX09OKGdvcCAtIHF1ZXVlLT50eF91bm1hcF9vcHMgPiBNQVhf UEVORElOR19SRVFTKTsKKwkJCUJVR19PTihnb3AgLSBxdWV1ZS0+dHhfdW5tYXBfb3BzID49IE1B WF9QRU5ESU5HX1JFUVMpOwogCQkJcGVuZGluZ19pZHggPQogCQkJCXF1ZXVlLT5kZWFsbG9jX3Jp bmdbcGVuZGluZ19pbmRleChkYysrKV07CiAKLQkJCXBlbmRpbmdfaWR4X3JlbGVhc2VbZ29wLXF1 ZXVlLT50eF91bm1hcF9vcHNdID0KKwkJCXBlbmRpbmdfaWR4X3JlbGVhc2VbZ29wIC0gcXVldWUt PnR4X3VubWFwX29wc10gPQogCQkJCXBlbmRpbmdfaWR4OwotCQkJcXVldWUtPnBhZ2VzX3RvX3Vu bWFwW2dvcC1xdWV1ZS0+dHhfdW5tYXBfb3BzXSA9CisJCQlxdWV1ZS0+cGFnZXNfdG9fdW5tYXBb Z29wIC0gcXVldWUtPnR4X3VubWFwX29wc10gPQogCQkJCXF1ZXVlLT5tbWFwX3BhZ2VzW3BlbmRp bmdfaWR4XTsKIAkJCWdudHRhYl9zZXRfdW5tYXBfb3AoZ29wLAogCQkJCQkgICAgaWR4X3RvX2th ZGRyKHF1ZXVlLCBwZW5kaW5nX2lkeCksCi0tIAoyLjEuMAoKCkZyb20gYWM1MGVkOWI4ZmQ0OTVl ZjYwOGE0M2Q1ZmY5ZDE4ZmUxNzY4Zjk4YiBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJvbTog SGVyYmVydCBYdSA8aGVyYmVydEBnb25kb3IuYXBhbmEub3JnLmF1PgpEYXRlOiBNb24sIDEzIEp1 bCAyMDE1IDE2OjA0OjEzICswODAwClN1YmplY3Q6IFtQQVRDSCAxMS8zMl0gbmV0OiBDbG9uZSBz a2IgYmVmb3JlIHNldHRpbmcgcGVla2VkIGZsYWcKClsgVXBzdHJlYW0gY29tbWl0IDczOGFjMWVi Yjk2ZDAyZTBkMjNiYzMyMDMwMmE2ZWE5NGM2MTJkZWMgXQoKU2hhcmVkIHNrYnMgbXVzdCBub3Qg YmUgbW9kaWZpZWQgYW5kIHRoaXMgaXMgY3J1Y2lhbCBmb3IgYnJvYWRjYXN0CmFuZC9vciBtdWx0 aWNhc3QgcGF0aHMgd2hlcmUgd2UgdXNlIGl0IGFzIGFuIG9wdGltaXNhdGlvbiB0byBhdm9pZAp1 bm5lY2Vzc2FyeSBjbG9uaW5nLgoKVGhlIGZ1bmN0aW9uIHNrYl9yZWN2X2RhdGFncmFtIGJyZWFr cyB0aGlzIHJ1bGUgYnkgc2V0dGluZyBwZWVrZWQKd2l0aG91dCBjbG9uaW5nIHRoZSBza2IgZmly c3QuICBUaGlzIGNhdXNlcyBmdW5reSByYWNlcyB3aGljaCBsZWFkcwp0byBkb3VibGUtZnJlZS4K ClRoaXMgcGF0Y2ggZml4ZXMgdGhpcyBieSBjbG9uaW5nIHRoZSBza2IgYW5kIHJlcGxhY2luZyB0 aGUgc2tiCmluIHRoZSBsaXN0IHdoZW4gc2V0dGluZyBza2ItPnBlZWtlZC4KCkZpeGVzOiBhNTkz MjJiZTA3YzkgKCJbVURQXTogT25seSBpbmNyZW1lbnQgY291bnRlciBvbiBmaXJzdCBwZWVrL3Jl Y3YiKQpSZXBvcnRlZC1ieTogS29uc3RhbnRpbiBLaGxlYm5pa292IDxraGxlYm5pa292QHlhbmRl eC10ZWFtLnJ1PgpTaWduZWQtb2ZmLWJ5OiBIZXJiZXJ0IFh1IDxoZXJiZXJ0QGdvbmRvci5hcGFu YS5vcmcuYXU+ClNpZ25lZC1vZmYtYnk6IERhdmlkIFMuIE1pbGxlciA8ZGF2ZW1AZGF2ZW1sb2Z0 Lm5ldD4KLS0tCiBuZXQvY29yZS9kYXRhZ3JhbS5jIHwgNDEgKysrKysrKysrKysrKysrKysrKysr KysrKysrKysrKysrKysrKystLS0KIDEgZmlsZSBjaGFuZ2VkLCAzOCBpbnNlcnRpb25zKCspLCAz IGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL25ldC9jb3JlL2RhdGFncmFtLmMgYi9uZXQvY29y ZS9kYXRhZ3JhbS5jCmluZGV4IGZkYmM5YTguLmEzYzAxODkgMTAwNjQ0Ci0tLSBhL25ldC9jb3Jl L2RhdGFncmFtLmMKKysrIGIvbmV0L2NvcmUvZGF0YWdyYW0uYwpAQCAtMTMwLDYgKzEzMCwzNSBA QCBvdXRfbm9lcnI6CiAJZ290byBvdXQ7CiB9CiAKK3N0YXRpYyBpbnQgc2tiX3NldF9wZWVrZWQo c3RydWN0IHNrX2J1ZmYgKnNrYikKK3sKKwlzdHJ1Y3Qgc2tfYnVmZiAqbnNrYjsKKworCWlmIChz a2ItPnBlZWtlZCkKKwkJcmV0dXJuIDA7CisKKwkvKiBXZSBoYXZlIHRvIHVuc2hhcmUgYW4gc2ti IGJlZm9yZSBtb2RpZnlpbmcgaXQuICovCisJaWYgKCFza2Jfc2hhcmVkKHNrYikpCisJCWdvdG8g ZG9uZTsKKworCW5za2IgPSBza2JfY2xvbmUoc2tiLCBHRlBfQVRPTUlDKTsKKwlpZiAoIW5za2Ip CisJCXJldHVybiAtRU5PTUVNOworCisJc2tiLT5wcmV2LT5uZXh0ID0gbnNrYjsKKwlza2ItPm5l eHQtPnByZXYgPSBuc2tiOworCW5za2ItPnByZXYgPSBza2ItPnByZXY7CisJbnNrYi0+bmV4dCA9 IHNrYi0+bmV4dDsKKworCWNvbnN1bWVfc2tiKHNrYik7CisJc2tiID0gbnNrYjsKKworZG9uZToK Kwlza2ItPnBlZWtlZCA9IDE7CisKKwlyZXR1cm4gMDsKK30KKwogLyoqCiAgKglfX3NrYl9yZWN2 X2RhdGFncmFtIC0gUmVjZWl2ZSBhIGRhdGFncmFtIHNrYnVmZgogICoJQHNrOiBzb2NrZXQKQEAg LTE2NCw3ICsxOTMsOSBAQCBvdXRfbm9lcnI6CiBzdHJ1Y3Qgc2tfYnVmZiAqX19za2JfcmVjdl9k YXRhZ3JhbShzdHJ1Y3Qgc29jayAqc2ssIHVuc2lnbmVkIGludCBmbGFncywKIAkJCQkgICAgaW50 ICpwZWVrZWQsIGludCAqb2ZmLCBpbnQgKmVycikKIHsKKwlzdHJ1Y3Qgc2tfYnVmZl9oZWFkICpx dWV1ZSA9ICZzay0+c2tfcmVjZWl2ZV9xdWV1ZTsKIAlzdHJ1Y3Qgc2tfYnVmZiAqc2tiLCAqbGFz dDsKKwl1bnNpZ25lZCBsb25nIGNwdV9mbGFnczsKIAlsb25nIHRpbWVvOwogCS8qCiAJICogQ2Fs bGVyIGlzIGFsbG93ZWQgbm90IHRvIGNoZWNrIHNrLT5za19lcnIgYmVmb3JlIHNrYl9yZWN2X2Rh dGFncmFtKCkKQEAgLTE4Myw4ICsyMTQsNiBAQCBzdHJ1Y3Qgc2tfYnVmZiAqX19za2JfcmVjdl9k YXRhZ3JhbShzdHJ1Y3Qgc29jayAqc2ssIHVuc2lnbmVkIGludCBmbGFncywKIAkJICogTG9vayBh dCBjdXJyZW50IG5mcyBjbGllbnQgYnkgdGhlIHdheS4uLgogCQkgKiBIb3dldmVyLCB0aGlzIGZ1 bmN0aW9uIHdhcyBjb3JyZWN0IGluIGFueSBjYXNlLiA4KQogCQkgKi8KLQkJdW5zaWduZWQgbG9u ZyBjcHVfZmxhZ3M7Ci0JCXN0cnVjdCBza19idWZmX2hlYWQgKnF1ZXVlID0gJnNrLT5za19yZWNl aXZlX3F1ZXVlOwogCQlpbnQgX29mZiA9ICpvZmY7CiAKIAkJbGFzdCA9IChzdHJ1Y3Qgc2tfYnVm ZiAqKXF1ZXVlOwpAQCAtMTk4LDcgKzIyNywxMSBAQCBzdHJ1Y3Qgc2tfYnVmZiAqX19za2JfcmVj dl9kYXRhZ3JhbShzdHJ1Y3Qgc29jayAqc2ssIHVuc2lnbmVkIGludCBmbGFncywKIAkJCQkJX29m ZiAtPSBza2ItPmxlbjsKIAkJCQkJY29udGludWU7CiAJCQkJfQotCQkJCXNrYi0+cGVla2VkID0g MTsKKworCQkJCWVycm9yID0gc2tiX3NldF9wZWVrZWQoc2tiKTsKKwkJCQlpZiAoZXJyb3IpCisJ CQkJCWdvdG8gdW5sb2NrX2VycjsKKwogCQkJCWF0b21pY19pbmMoJnNrYi0+dXNlcnMpOwogCQkJ fSBlbHNlCiAJCQkJX19za2JfdW5saW5rKHNrYiwgcXVldWUpOwpAQCAtMjIyLDYgKzI1NSw4IEBA IHN0cnVjdCBza19idWZmICpfX3NrYl9yZWN2X2RhdGFncmFtKHN0cnVjdCBzb2NrICpzaywgdW5z aWduZWQgaW50IGZsYWdzLAogCiAJcmV0dXJuIE5VTEw7CiAKK3VubG9ja19lcnI6CisJc3Bpbl91 bmxvY2tfaXJxcmVzdG9yZSgmcXVldWUtPmxvY2ssIGNwdV9mbGFncyk7CiBub19wYWNrZXQ6CiAJ KmVyciA9IGVycm9yOwogCXJldHVybiBOVUxMOwotLSAKMi4xLjAKCgpGcm9tIDA3NTRjMjhiZWQ0 MWI0NDJlZGQ3NGY0NTVkMzUwNGM4YjczYzIwZTggTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCkZy b206IEhlcmJlcnQgWHUgPGhlcmJlcnRAZ29uZG9yLmFwYW5hLm9yZy5hdT4KRGF0ZTogTW9uLCAx MyBKdWwgMjAxNSAyMDowMTo0MiArMDgwMApTdWJqZWN0OiBbUEFUQ0ggMTIvMzJdIG5ldDogRml4 IHNrYiBjc3VtIHJhY2VzIHdoZW4gcGVla2luZwoKWyBVcHN0cmVhbSBjb21taXQgODljMjJkOGMz YjI3ODIxMmVlZjZhOGNjNjZiNTcwYmM4NDBhNmY1YSBdCgpXaGVuIHdlIGNhbGN1bGF0ZSB0aGUg Y2hlY2tzdW0gb24gdGhlIHJlY3YgcGF0aCwgd2Ugc3RvcmUgdGhlCnJlc3VsdCBpbiB0aGUgc2ti IGFzIGFuIG9wdGltaXNhdGlvbiBpbiBjYXNlIHdlIG5lZWQgdGhlIGNoZWNrc3VtCmFnYWluIGRv d24gdGhlIGxpbmUuCgpUaGlzIGlzIGluIGZhY3QgYm9ndXMgZm9yIHRoZSBNU0dfUEVFSyBjYXNl IGFzIHRoaXMgaXMgZG9uZSB3aXRob3V0CmFueSBsb2NraW5nLiAgU28gbXVsdGlwbGUgdGhyZWFk cyBjYW4gcGVlayBhbmQgdGhlbiBzdG9yZSB0aGUgcmVzdWx0CnRvIHRoZSBzYW1lIHNrYiwgcG90 ZW50aWFsbHkgcmVzdWx0aW5nIGluIGJvZ3VzIHNrYiBzdGF0ZXMuCgpUaGlzIHBhdGNoIGZpeGVz IHRoaXMgYnkgb25seSBzdG9yaW5nIHRoZSByZXN1bHQgaWYgdGhlIHNrYiBpcyBub3QKc2hhcmVk LiAgVGhpcyBwcmVzZXJ2ZXMgdGhlIG9wdGltaXNhdGlvbnMgZm9yIHRoZSBmZXcgY2FzZXMgd2hl cmUKaXQgY2FuIGJlIGRvbmUgc2FmZWx5IGR1ZSB0byBsb2NraW5nIG9yIG90aGVyIHJlYXNvbnMs IGUuZy4sIFNJT0NJTlEuCgpTaWduZWQtb2ZmLWJ5OiBIZXJiZXJ0IFh1IDxoZXJiZXJ0QGdvbmRv ci5hcGFuYS5vcmcuYXU+CkFja2VkLWJ5OiBFcmljIER1bWF6ZXQgPGVkdW1hemV0QGdvb2dsZS5j b20+ClNpZ25lZC1vZmYtYnk6IERhdmlkIFMuIE1pbGxlciA8ZGF2ZW1AZGF2ZW1sb2Z0Lm5ldD4K LS0tCiBuZXQvY29yZS9kYXRhZ3JhbS5jIHwgMTUgKysrKysrKysrLS0tLS0tCiAxIGZpbGUgY2hh bmdlZCwgOSBpbnNlcnRpb25zKCspLCA2IGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL25ldC9j b3JlL2RhdGFncmFtLmMgYi9uZXQvY29yZS9kYXRhZ3JhbS5jCmluZGV4IGEzYzAxODkuLjYxZTk5 ZjMgMTAwNjQ0Ci0tLSBhL25ldC9jb3JlL2RhdGFncmFtLmMKKysrIGIvbmV0L2NvcmUvZGF0YWdy YW0uYwpAQCAtNzc5LDcgKzc3OSw4IEBAIF9fc3VtMTYgX19za2JfY2hlY2tzdW1fY29tcGxldGVf aGVhZChzdHJ1Y3Qgc2tfYnVmZiAqc2tiLCBpbnQgbGVuKQogCQkgICAgIXNrYi0+Y3N1bV9jb21w bGV0ZV9zdykKIAkJCW5ldGRldl9yeF9jc3VtX2ZhdWx0KHNrYi0+ZGV2KTsKIAl9Ci0Jc2tiLT5j c3VtX3ZhbGlkID0gIXN1bTsKKwlpZiAoIXNrYl9zaGFyZWQoc2tiKSkKKwkJc2tiLT5jc3VtX3Zh bGlkID0gIXN1bTsKIAlyZXR1cm4gc3VtOwogfQogRVhQT1JUX1NZTUJPTChfX3NrYl9jaGVja3N1 bV9jb21wbGV0ZV9oZWFkKTsKQEAgLTc5OSwxMSArODAwLDEzIEBAIF9fc3VtMTYgX19za2JfY2hl Y2tzdW1fY29tcGxldGUoc3RydWN0IHNrX2J1ZmYgKnNrYikKIAkJCW5ldGRldl9yeF9jc3VtX2Zh dWx0KHNrYi0+ZGV2KTsKIAl9CiAKLQkvKiBTYXZlIGZ1bGwgcGFja2V0IGNoZWNrc3VtICovCi0J c2tiLT5jc3VtID0gY3N1bTsKLQlza2ItPmlwX3N1bW1lZCA9IENIRUNLU1VNX0NPTVBMRVRFOwot CXNrYi0+Y3N1bV9jb21wbGV0ZV9zdyA9IDE7Ci0Jc2tiLT5jc3VtX3ZhbGlkID0gIXN1bTsKKwlp ZiAoIXNrYl9zaGFyZWQoc2tiKSkgeworCQkvKiBTYXZlIGZ1bGwgcGFja2V0IGNoZWNrc3VtICov CisJCXNrYi0+Y3N1bSA9IGNzdW07CisJCXNrYi0+aXBfc3VtbWVkID0gQ0hFQ0tTVU1fQ09NUExF VEU7CisJCXNrYi0+Y3N1bV9jb21wbGV0ZV9zdyA9IDE7CisJCXNrYi0+Y3N1bV92YWxpZCA9ICFz dW07CisJfQogCiAJcmV0dXJuIHN1bTsKIH0KLS0gCjIuMS4wCgoKRnJvbSBiZjEyODU3MWU4NGNi NTAwZmNlNjg3ODkwODY5MmNjMjM5ZmFiNDUwIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9t OiBIZXJiZXJ0IFh1IDxoZXJiZXJ0QGdvbmRvci5hcGFuYS5vcmcuYXU+CkRhdGU6IFR1ZSwgNCBB dWcgMjAxNSAxNTo0Mjo0NyArMDgwMApTdWJqZWN0OiBbUEFUQ0ggMTMvMzJdIG5ldDogRml4IHNr Yl9zZXRfcGVla2VkIHVzZS1hZnRlci1mcmVlIGJ1ZwoKWyBVcHN0cmVhbSBjb21taXQgYTBhMmE2 NjAyNDk2YTQ1YWU4MzhhOTZkYjhiODE3Mzc5NGI1ZDM5OCBdCgpUaGUgY29tbWl0IDczOGFjMWVi Yjk2ZDAyZTBkMjNiYzMyMDMwMmE2ZWE5NGM2MTJkZWMgKCJuZXQ6IENsb25lCnNrYiBiZWZvcmUg c2V0dGluZyBwZWVrZWQgZmxhZyIpIGludHJvZHVjZWQgYSB1c2UtYWZ0ZXItZnJlZSBidWcKaW4g c2tiX3JlY3ZfZGF0YWdyYW0uICBUaGlzIGlzIGJlY2F1c2Ugc2tiX3NldF9wZWVrZWQgbWF5IGNy ZWF0ZQphIG5ldyBza2IgYW5kIGZyZWUgdGhlIGV4aXN0aW5nIG9uZS4gIEFzIGl0IHN0YW5kcyB0 aGUgY2FsbGVyIHdpbGwKY29udGludWUgdG8gdXNlIHRoZSBvbGQgZnJlZWQgc2tiLgoKVGhpcyBw YXRjaCBmaXhlcyBpdCBieSBtYWtpbmcgc2tiX3NldF9wZWVrZWQgcmV0dXJuIHRoZSBuZXcgc2ti CihvciB0aGUgb2xkIG9uZSBpZiB1bmNoYW5nZWQpLgoKRml4ZXM6IDczOGFjMWViYjk2ZCAoIm5l dDogQ2xvbmUgc2tiIGJlZm9yZSBzZXR0aW5nIHBlZWtlZCBmbGFnIikKUmVwb3J0ZWQtYnk6IEJy ZW5kZW4gQmxhbmNvIDxiYmxhbmNvQHBsdW1ncmlkLmNvbT4KU2lnbmVkLW9mZi1ieTogSGVyYmVy dCBYdSA8aGVyYmVydEBnb25kb3IuYXBhbmEub3JnLmF1PgpUZXN0ZWQtYnk6IEJyZW5kZW4gQmxh bmNvIDxiYmxhbmNvQHBsdW1ncmlkLmNvbT4KUmV2aWV3ZWQtYnk6IEtvbnN0YW50aW4gS2hsZWJu aWtvdiA8a2hsZWJuaWtvdkB5YW5kZXgtdGVhbS5ydT4KU2lnbmVkLW9mZi1ieTogRGF2aWQgUy4g TWlsbGVyIDxkYXZlbUBkYXZlbWxvZnQubmV0PgotLS0KIG5ldC9jb3JlL2RhdGFncmFtLmMgfCAx MyArKysrKysrLS0tLS0tCiAxIGZpbGUgY2hhbmdlZCwgNyBpbnNlcnRpb25zKCspLCA2IGRlbGV0 aW9ucygtKQoKZGlmZiAtLWdpdCBhL25ldC9jb3JlL2RhdGFncmFtLmMgYi9uZXQvY29yZS9kYXRh Z3JhbS5jCmluZGV4IDYxZTk5ZjMuLjI4NTBhYjMgMTAwNjQ0Ci0tLSBhL25ldC9jb3JlL2RhdGFn cmFtLmMKKysrIGIvbmV0L2NvcmUvZGF0YWdyYW0uYwpAQCAtMTMwLDEyICsxMzAsMTIgQEAgb3V0 X25vZXJyOgogCWdvdG8gb3V0OwogfQogCi1zdGF0aWMgaW50IHNrYl9zZXRfcGVla2VkKHN0cnVj dCBza19idWZmICpza2IpCitzdGF0aWMgc3RydWN0IHNrX2J1ZmYgKnNrYl9zZXRfcGVla2VkKHN0 cnVjdCBza19idWZmICpza2IpCiB7CiAJc3RydWN0IHNrX2J1ZmYgKm5za2I7CiAKIAlpZiAoc2ti LT5wZWVrZWQpCi0JCXJldHVybiAwOworCQlyZXR1cm4gc2tiOwogCiAJLyogV2UgaGF2ZSB0byB1 bnNoYXJlIGFuIHNrYiBiZWZvcmUgbW9kaWZ5aW5nIGl0LiAqLwogCWlmICghc2tiX3NoYXJlZChz a2IpKQpAQCAtMTQzLDcgKzE0Myw3IEBAIHN0YXRpYyBpbnQgc2tiX3NldF9wZWVrZWQoc3RydWN0 IHNrX2J1ZmYgKnNrYikKIAogCW5za2IgPSBza2JfY2xvbmUoc2tiLCBHRlBfQVRPTUlDKTsKIAlp ZiAoIW5za2IpCi0JCXJldHVybiAtRU5PTUVNOworCQlyZXR1cm4gRVJSX1BUUigtRU5PTUVNKTsK IAogCXNrYi0+cHJldi0+bmV4dCA9IG5za2I7CiAJc2tiLT5uZXh0LT5wcmV2ID0gbnNrYjsKQEAg LTE1Niw3ICsxNTYsNyBAQCBzdGF0aWMgaW50IHNrYl9zZXRfcGVla2VkKHN0cnVjdCBza19idWZm ICpza2IpCiBkb25lOgogCXNrYi0+cGVla2VkID0gMTsKIAotCXJldHVybiAwOworCXJldHVybiBz a2I7CiB9CiAKIC8qKgpAQCAtMjI4LDggKzIyOCw5IEBAIHN0cnVjdCBza19idWZmICpfX3NrYl9y ZWN2X2RhdGFncmFtKHN0cnVjdCBzb2NrICpzaywgdW5zaWduZWQgaW50IGZsYWdzLAogCQkJCQlj b250aW51ZTsKIAkJCQl9CiAKLQkJCQllcnJvciA9IHNrYl9zZXRfcGVla2VkKHNrYik7Ci0JCQkJ aWYgKGVycm9yKQorCQkJCXNrYiA9IHNrYl9zZXRfcGVla2VkKHNrYik7CisJCQkJZXJyb3IgPSBQ VFJfRVJSKHNrYik7CisJCQkJaWYgKElTX0VSUihza2IpKQogCQkJCQlnb3RvIHVubG9ja19lcnI7 CiAKIAkJCQlhdG9taWNfaW5jKCZza2ItPnVzZXJzKTsKLS0gCjIuMS4wCgoKRnJvbSBkODM3OTQx MjlmNjcxOGI4OTIxZmU2Mzg3MjQ3ZGY1NTE0ZTYzZmFlIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAw MQpGcm9tOiBOaWtvbGF5IEFsZWtzYW5kcm92IDxuaWtvbGF5QGN1bXVsdXNuZXR3b3Jrcy5jb20+ CkRhdGU6IE1vbiwgMTMgSnVsIDIwMTUgMDY6MzY6MTkgLTA3MDAKU3ViamVjdDogW1BBVENIIDE0 LzMyXSBicmlkZ2U6IG1kYjogZml4IGRvdWJsZSBhZGQgbm90aWZpY2F0aW9uCgpbIFVwc3RyZWFt IGNvbW1pdCA1ZWJjNzg0NjI1ZWE2OGE5NTcwZDFmNzA1NTdlNzkzMjk4OGNkMWI0IF0KClNpbmNl IHRoZSBtZGIgYWRkL2RlbCBjb2RlIHdhcyBpbnRyb2R1Y2VkIHRoZXJlIGhhdmUgYmVlbiAyIGJy X21kYl9ub3RpZnkKY2FsbHMgd2hlbiBkb2luZyBicl9tZGJfYWRkKCkgcmVzdWx0aW5nIGluIDIg bm90aWZpY2F0aW9ucyBvbiBlYWNoIGFkZC4KCkV4YW1wbGU6CiBDb21tYW5kOiBicmlkZ2UgbWRi IGFkZCBkZXYgYnIwIHBvcnQgZXRoMSBncnAgMjM5LjAuMC4xIHBlcm1hbmVudAogQmVmb3JlIHBh dGNoOgogcm9vdEBkZWJpYW46fiMgYnJpZGdlIG1vbml0b3IgYWxsCiBbTURCXWRldiBicjAgcG9y dCBldGgxIGdycCAyMzkuMC4wLjEgcGVybWFuZW50CiBbTURCXWRldiBicjAgcG9ydCBldGgxIGdy cCAyMzkuMC4wLjEgcGVybWFuZW50CgogQWZ0ZXIgcGF0Y2g6CiByb290QGRlYmlhbjp+IyBicmlk Z2UgbW9uaXRvciBhbGwKIFtNREJdZGV2IGJyMCBwb3J0IGV0aDEgZ3JwIDIzOS4wLjAuMSBwZXJt YW5lbnQKClNpZ25lZC1vZmYtYnk6IE5pa29sYXkgQWxla3NhbmRyb3YgPG5pa29sYXlAY3VtdWx1 c25ldHdvcmtzLmNvbT4KRml4ZXM6IGNmZDU2NzU0MzU5MCAoImJyaWRnZTogYWRkIHN1cHBvcnQg b2YgYWRkaW5nIGFuZCBkZWxldGluZyBtZGIgZW50cmllcyIpClNpZ25lZC1vZmYtYnk6IERhdmlk IFMuIE1pbGxlciA8ZGF2ZW1AZGF2ZW1sb2Z0Lm5ldD4KLS0tCiBuZXQvYnJpZGdlL2JyX21kYi5j IHwgMSAtCiAxIGZpbGUgY2hhbmdlZCwgMSBkZWxldGlvbigtKQoKZGlmZiAtLWdpdCBhL25ldC9i cmlkZ2UvYnJfbWRiLmMgYi9uZXQvYnJpZGdlL2JyX21kYi5jCmluZGV4IGIwNzc2NjQuLmNjNjQx NTQgMTAwNjQ0Ci0tLSBhL25ldC9icmlkZ2UvYnJfbWRiLmMKKysrIGIvbmV0L2JyaWRnZS9icl9t ZGIuYwpAQCAtMzQ3LDcgKzM0Nyw2IEBAIHN0YXRpYyBpbnQgYnJfbWRiX2FkZF9ncm91cChzdHJ1 Y3QgbmV0X2JyaWRnZSAqYnIsIHN0cnVjdCBuZXRfYnJpZGdlX3BvcnQgKnBvcnQsCiAJCXJldHVy biAtRU5PTUVNOwogCXJjdV9hc3NpZ25fcG9pbnRlcigqcHAsIHApOwogCi0JYnJfbWRiX25vdGlm eShici0+ZGV2LCBwb3J0LCBncm91cCwgUlRNX05FV01EQik7CiAJcmV0dXJuIDA7CiB9CiAKLS0g CjIuMS4wCgoKRnJvbSAzZGVjNWExYWYwMWRhOTA5MTM2OGMyYzAwNWE4OTdlODBjODhmYTlmIE1v biBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBXQU5HIENvbmcgPHhpeW91Lndhbmdjb25nQGdt YWlsLmNvbT4KRGF0ZTogTW9uLCAxMyBKdWwgMjAxNSAxMjozMDowNyAtMDcwMApTdWJqZWN0OiBb UEFUQ0ggMTUvMzJdIGZxX2NvZGVsOiBmaXggYSB1c2UtYWZ0ZXItZnJlZQoKWyBVcHN0cmVhbSBj b21taXQgMDUyY2JkYTQxZmRjMjQzYThkNDBjY2U3YWIzYTYzMjdiNGIyODg3ZSBdCgpGaXhlczog MjUzMzFkNmNlNDJiICgibmV0OiBzY2hlZDogaW1wbGVtZW50IHFzdGF0IGhlbHBlciByb3V0aW5l cyIpCkNjOiBKb2huIEZhc3RhYmVuZCA8am9obi5mYXN0YWJlbmRAZ21haWwuY29tPgpTaWduZWQt b2ZmLWJ5OiBDb25nIFdhbmcgPHhpeW91Lndhbmdjb25nQGdtYWlsLmNvbT4KU2lnbmVkLW9mZi1i eTogQ29uZyBXYW5nIDxjd2FuZ0B0d29wZW5zb3VyY2UuY29tPgpBY2tlZC1ieTogRXJpYyBEdW1h emV0IDxlZHVtYXpldEBnb29nbGUuY29tPgpTaWduZWQtb2ZmLWJ5OiBEYXZpZCBTLiBNaWxsZXIg PGRhdmVtQGRhdmVtbG9mdC5uZXQ+Ci0tLQogbmV0L3NjaGVkL3NjaF9mcV9jb2RlbC5jIHwgMiAr LQogMSBmaWxlIGNoYW5nZWQsIDEgaW5zZXJ0aW9uKCspLCAxIGRlbGV0aW9uKC0pCgpkaWZmIC0t Z2l0IGEvbmV0L3NjaGVkL3NjaF9mcV9jb2RlbC5jIGIvbmV0L3NjaGVkL3NjaF9mcV9jb2RlbC5j CmluZGV4IDFlNTJkZWMuLmI2MWZkODQgMTAwNjQ0Ci0tLSBhL25ldC9zY2hlZC9zY2hfZnFfY29k ZWwuYworKysgYi9uZXQvc2NoZWQvc2NoX2ZxX2NvZGVsLmMKQEAgLTE2MiwxMCArMTYyLDEwIEBA IHN0YXRpYyB1bnNpZ25lZCBpbnQgZnFfY29kZWxfZHJvcChzdHJ1Y3QgUWRpc2MgKnNjaCkKIAlz a2IgPSBkZXF1ZXVlX2hlYWQoZmxvdyk7CiAJbGVuID0gcWRpc2NfcGt0X2xlbihza2IpOwogCXEt PmJhY2tsb2dzW2lkeF0gLT0gbGVuOwotCWtmcmVlX3NrYihza2IpOwogCXNjaC0+cS5xbGVuLS07 CiAJcWRpc2NfcXN0YXRzX2Ryb3Aoc2NoKTsKIAlxZGlzY19xc3RhdHNfYmFja2xvZ19kZWMoc2No LCBza2IpOworCWtmcmVlX3NrYihza2IpOwogCWZsb3ctPmRyb3BwZWQrKzsKIAlyZXR1cm4gaWR4 OwogfQotLSAKMi4xLjAKCgpGcm9tIDQzNWE2OTIxOGY3OWM3ZTkwZmQzZGU5NjVkYjQ3NGZhNjI5 ZjhlOTAgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCkZyb206IFRpbG1hbiBTY2htaWR0IDx0aWxt YW5AaW1hcC5jYz4KRGF0ZTogVHVlLCAxNCBKdWwgMjAxNSAwMDozNzoxMyArMDIwMApTdWJqZWN0 OiBbUEFUQ0ggMTYvMzJdIGlzZG4vZ2lnYXNldDogcmVzZXQgdHR5LT5yZWNlaXZlX3Jvb20gd2hl biBhdHRhY2hpbmcKIHNlcl9naWdhc2V0CgpbIFVwc3RyZWFtIGNvbW1pdCBmZDk4ZTk0MTlkOGQ2 MjJhNGRlOTFmNzZiMzA2YWY2YWE2MjdhYTljIF0KCkNvbW1pdCA3OTkwMTMxN2NlODAgKCJuX3R0 eTogRG9uJ3QgZmx1c2ggYnVmZmVyIHdoZW4gY2xvc2luZyBsZGlzYyIpLApmaXJzdCBtZXJnZWQg aW4ga2VybmVsIHJlbGVhc2UgMy4xMCwgY2F1c2VkIHRoZSBmb2xsb3dpbmcgcmVncmVzc2lvbgpp biB0aGUgR2lnYXNldCBNMTAxIGRyaXZlcjoKCkJlZm9yZSB0aGF0IGNvbW1pdCwgd2hlbiBjbG9z aW5nIHRoZSBOX1RUWSBsaW5lIGRpc2NpcGxpbmUgaW4KcHJlcGFyYXRpb24gdG8gc3dpdGNoaW5n IHRvIE5fR0lHQVNFVF9NMTAxLCByZWNlaXZlX3Jvb20gd291bGQgYmUKcmVzZXQgdG8gYSBub24t emVybyB2YWx1ZSBieSB0aGUgY2FsbCB0byBuX3R0eV9mbHVzaF9idWZmZXIoKSBpbgpuX3R0eSdz IGNsb3NlIG1ldGhvZC4gV2l0aCB0aGUgcmVtb3ZhbCBvZiB0aGF0IGNhbGwsIHJlY2VpdmVfcm9v bQptaWdodCBiZSBsZWZ0IGF0IHplcm8sIGJsb2NraW5nIGRhdGEgcmVjZXB0aW9uIG9uIHRoZSBz ZXJpYWwgbGluZS4KClRoZSBwcmVzZW50IHBhdGNoIGZpeGVzIHRoYXQgcmVncmVzc2lvbiBieSBz ZXR0aW5nIHJlY2VpdmVfcm9vbQp0byBhbiBhcHByb3ByaWF0ZSB2YWx1ZSBpbiB0aGUgbGRpc2Mg b3BlbiBtZXRob2QuCgpGaXhlczogNzk5MDEzMTdjZTgwICgibl90dHk6IERvbid0IGZsdXNoIGJ1 ZmZlciB3aGVuIGNsb3NpbmcgbGRpc2MiKQpTaWduZWQtb2ZmLWJ5OiBUaWxtYW4gU2NobWlkdCA8 dGlsbWFuQGltYXAuY2M+ClNpZ25lZC1vZmYtYnk6IERhdmlkIFMuIE1pbGxlciA8ZGF2ZW1AZGF2 ZW1sb2Z0Lm5ldD4KLS0tCiBkcml2ZXJzL2lzZG4vZ2lnYXNldC9zZXItZ2lnYXNldC5jIHwgMTEg KysrKysrKysrKy0KIDEgZmlsZSBjaGFuZ2VkLCAxMCBpbnNlcnRpb25zKCspLCAxIGRlbGV0aW9u KC0pCgpkaWZmIC0tZ2l0IGEvZHJpdmVycy9pc2RuL2dpZ2FzZXQvc2VyLWdpZ2FzZXQuYyBiL2Ry aXZlcnMvaXNkbi9naWdhc2V0L3Nlci1naWdhc2V0LmMKaW5kZXggOGM5MWZkNS4uM2FjOWM0MSAx MDA2NDQKLS0tIGEvZHJpdmVycy9pc2RuL2dpZ2FzZXQvc2VyLWdpZ2FzZXQuYworKysgYi9kcml2 ZXJzL2lzZG4vZ2lnYXNldC9zZXItZ2lnYXNldC5jCkBAIC01MjQsOSArNTI0LDE4IEBAIGdpZ2Fz ZXRfdHR5X29wZW4oc3RydWN0IHR0eV9zdHJ1Y3QgKnR0eSkKIAljcy0+aHcuc2VyLT50dHkgPSB0 dHk7CiAJYXRvbWljX3NldCgmY3MtPmh3LnNlci0+cmVmY250LCAxKTsKIAlpbml0X2NvbXBsZXRp b24oJmNzLT5ody5zZXItPmRlYWRfY21wKTsKLQogCXR0eS0+ZGlzY19kYXRhID0gY3M7CiAKKwkv KiBTZXQgdGhlIGFtb3VudCBvZiBkYXRhIHdlJ3JlIHdpbGxpbmcgdG8gcmVjZWl2ZSBwZXIgY2Fs bAorCSAqIGZyb20gdGhlIGhhcmR3YXJlIGRyaXZlciB0byBoYWxmIG9mIHRoZSBpbnB1dCBidWZm ZXIgc2l6ZQorCSAqIHRvIGxlYXZlIHNvbWUgcmVzZXJ2ZS4KKwkgKiBOb3RlOiBXZSBkb24ndCBk byBmbG93IGNvbnRyb2wgdG93YXJkcyB0aGUgaGFyZHdhcmUgZHJpdmVyLgorCSAqIElmIG1vcmUg ZGF0YSBpcyByZWNlaXZlZCB0aGFuIHdpbGwgZml0IGludG8gdGhlIGlucHV0IGJ1ZmZlciwKKwkg KiBpdCB3aWxsIGJlIGRyb3BwZWQgYW5kIGFuIGVycm9yIHdpbGwgYmUgbG9nZ2VkLiBUaGlzIHNo b3VsZAorCSAqIG5ldmVyIGhhcHBlbiBhcyB0aGUgZGV2aWNlIGlzIHNsb3cgYW5kIHRoZSBidWZm ZXIgc2l6ZSBhbXBsZS4KKwkgKi8KKwl0dHktPnJlY2VpdmVfcm9vbSA9IFJCVUZTSVpFLzI7CisK IAkvKiBPSy4uIEluaXRpYWxpemF0aW9uIG9mIHRoZSBkYXRhc3RydWN0dXJlcyBhbmQgdGhlIEhX IGlzIGRvbmUuLiBOb3cKIAkgKiBzdGFydHVwIHN5c3RlbSBhbmQgbm90aWZ5IHRoZSBMTCB0aGF0 IHdlIGFyZSByZWFkeSB0byBydW4KIAkgKi8KLS0gCjIuMS4wCgoKRnJvbSAwNjllMzFjMDU0ZWI5 YzEzMGRmNjAxYjEyNTA0Y2M1ZTM5YzliMjk3IE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9t OiBFcmljIER1bWF6ZXQgPGVkdW1hemV0QGdvb2dsZS5jb20+CkRhdGU6IFR1ZSwgMTQgSnVsIDIw MTUgMDg6MTA6MjIgKzAyMDAKU3ViamVjdDogW1BBVENIIDE3LzMyXSBpcHY2OiBsb2NrIHNvY2tl dCBpbiBpcDZfZGF0YWdyYW1fY29ubmVjdCgpCgpbIFVwc3RyZWFtIGNvbW1pdCAwMzY0NWExMWE1 NzBkNTJlNzA2MzE4MzhjYjc4NmViNDI1M2ViNDYzIF0KCmlwNl9kYXRhZ3JhbV9jb25uZWN0KCkg aXMgZG9pbmcgYSBsb3Qgb2Ygc29ja2V0IGNoYW5nZXMgd2l0aG91dApzb2NrZXQgYmVpbmcgbG9j a2VkLgoKVGhpcyBsb29rcyB3cm9uZywgYXQgbGVhc3QgZm9yIHVkcF9saWJfcmVoYXNoKCkgd2hp Y2ggY291bGQgY29ycnVwdApsaXN0cyBiZWNhdXNlIG9mIGNvbmN1cnJlbnQgdWRwX3NrKHNrKS0+ dWRwX3BvcnRhZGRyX2hhc2ggYWNjZXNzZXMuCgpTaWduZWQtb2ZmLWJ5OiBFcmljIER1bWF6ZXQg PGVkdW1hemV0QGdvb2dsZS5jb20+CkFja2VkLWJ5OiBIZXJiZXJ0IFh1IDxoZXJiZXJ0QGdvbmRv ci5hcGFuYS5vcmcuYXU+ClNpZ25lZC1vZmYtYnk6IERhdmlkIFMuIE1pbGxlciA8ZGF2ZW1AZGF2 ZW1sb2Z0Lm5ldD4KLS0tCiBpbmNsdWRlL25ldC9pcC5oICAgIHwgIDEgKwogbmV0L2lwdjQvZGF0 YWdyYW0uYyB8IDE2ICsrKysrKysrKysrKy0tLS0KIG5ldC9pcHY2L2RhdGFncmFtLmMgfCAyMCAr KysrKysrKysrKysrKystLS0tLQogMyBmaWxlcyBjaGFuZ2VkLCAyOCBpbnNlcnRpb25zKCspLCA5 IGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL2luY2x1ZGUvbmV0L2lwLmggYi9pbmNsdWRlL25l dC9pcC5oCmluZGV4IGMwYzI2YzMuLmQwMGViZGYgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUvbmV0L2lw LmgKKysrIGIvaW5jbHVkZS9uZXQvaXAuaApAQCAtMTYwLDYgKzE2MCw3IEBAIHN0YXRpYyBpbmxp bmUgX191OCBnZXRfcnRjb25uX2ZsYWdzKHN0cnVjdCBpcGNtX2Nvb2tpZSogaXBjLCBzdHJ1Y3Qg c29jayogc2spCiB9CiAKIC8qIGRhdGFncmFtLmMgKi8KK2ludCBfX2lwNF9kYXRhZ3JhbV9jb25u ZWN0KHN0cnVjdCBzb2NrICpzaywgc3RydWN0IHNvY2thZGRyICp1YWRkciwgaW50IGFkZHJfbGVu KTsKIGludCBpcDRfZGF0YWdyYW1fY29ubmVjdChzdHJ1Y3Qgc29jayAqc2ssIHN0cnVjdCBzb2Nr YWRkciAqdWFkZHIsIGludCBhZGRyX2xlbik7CiAKIHZvaWQgaXA0X2RhdGFncmFtX3JlbGVhc2Vf Y2Ioc3RydWN0IHNvY2sgKnNrKTsKZGlmZiAtLWdpdCBhL25ldC9pcHY0L2RhdGFncmFtLmMgYi9u ZXQvaXB2NC9kYXRhZ3JhbS5jCmluZGV4IDkwYzBlODMuLjU3NGZhZDkgMTAwNjQ0Ci0tLSBhL25l dC9pcHY0L2RhdGFncmFtLmMKKysrIGIvbmV0L2lwdjQvZGF0YWdyYW0uYwpAQCAtMjAsNyArMjAs NyBAQAogI2luY2x1ZGUgPG5ldC9yb3V0ZS5oPgogI2luY2x1ZGUgPG5ldC90Y3Bfc3RhdGVzLmg+ CiAKLWludCBpcDRfZGF0YWdyYW1fY29ubmVjdChzdHJ1Y3Qgc29jayAqc2ssIHN0cnVjdCBzb2Nr YWRkciAqdWFkZHIsIGludCBhZGRyX2xlbikKK2ludCBfX2lwNF9kYXRhZ3JhbV9jb25uZWN0KHN0 cnVjdCBzb2NrICpzaywgc3RydWN0IHNvY2thZGRyICp1YWRkciwgaW50IGFkZHJfbGVuKQogewog CXN0cnVjdCBpbmV0X3NvY2sgKmluZXQgPSBpbmV0X3NrKHNrKTsKIAlzdHJ1Y3Qgc29ja2FkZHJf aW4gKnVzaW4gPSAoc3RydWN0IHNvY2thZGRyX2luICopIHVhZGRyOwpAQCAtMzksOCArMzksNiBA QCBpbnQgaXA0X2RhdGFncmFtX2Nvbm5lY3Qoc3RydWN0IHNvY2sgKnNrLCBzdHJ1Y3Qgc29ja2Fk ZHIgKnVhZGRyLCBpbnQgYWRkcl9sZW4pCiAKIAlza19kc3RfcmVzZXQoc2spOwogCi0JbG9ja19z b2NrKHNrKTsKLQogCW9pZiA9IHNrLT5za19ib3VuZF9kZXZfaWY7CiAJc2FkZHIgPSBpbmV0LT5p bmV0X3NhZGRyOwogCWlmIChpcHY0X2lzX211bHRpY2FzdCh1c2luLT5zaW5fYWRkci5zX2FkZHIp KSB7CkBAIC04Miw5ICs4MCwxOSBAQCBpbnQgaXA0X2RhdGFncmFtX2Nvbm5lY3Qoc3RydWN0IHNv Y2sgKnNrLCBzdHJ1Y3Qgc29ja2FkZHIgKnVhZGRyLCBpbnQgYWRkcl9sZW4pCiAJc2tfZHN0X3Nl dChzaywgJnJ0LT5kc3QpOwogCWVyciA9IDA7CiBvdXQ6Ci0JcmVsZWFzZV9zb2NrKHNrKTsKIAly ZXR1cm4gZXJyOwogfQorRVhQT1JUX1NZTUJPTChfX2lwNF9kYXRhZ3JhbV9jb25uZWN0KTsKKwor aW50IGlwNF9kYXRhZ3JhbV9jb25uZWN0KHN0cnVjdCBzb2NrICpzaywgc3RydWN0IHNvY2thZGRy ICp1YWRkciwgaW50IGFkZHJfbGVuKQoreworCWludCByZXM7CisKKwlsb2NrX3NvY2soc2spOwor CXJlcyA9IF9faXA0X2RhdGFncmFtX2Nvbm5lY3Qoc2ssIHVhZGRyLCBhZGRyX2xlbik7CisJcmVs ZWFzZV9zb2NrKHNrKTsKKwlyZXR1cm4gcmVzOworfQogRVhQT1JUX1NZTUJPTChpcDRfZGF0YWdy YW1fY29ubmVjdCk7CiAKIC8qIEJlY2F1c2UgVURQIHhtaXQgcGF0aCBjYW4gbWFuaXB1bGF0ZSBz a19kc3RfY2FjaGUgd2l0aG91dCBob2xkaW5nCmRpZmYgLS1naXQgYS9uZXQvaXB2Ni9kYXRhZ3Jh bS5jIGIvbmV0L2lwdjYvZGF0YWdyYW0uYwppbmRleCAxMWUzOTQ1Li5lMDY5YWViMiAxMDA2NDQK LS0tIGEvbmV0L2lwdjYvZGF0YWdyYW0uYworKysgYi9uZXQvaXB2Ni9kYXRhZ3JhbS5jCkBAIC00 MCw3ICs0MCw3IEBAIHN0YXRpYyBib29sIGlwdjZfbWFwcGVkX2FkZHJfYW55KGNvbnN0IHN0cnVj dCBpbjZfYWRkciAqYSkKIAlyZXR1cm4gaXB2Nl9hZGRyX3Y0bWFwcGVkKGEpICYmIChhLT5zNl9h ZGRyMzJbM10gPT0gMCk7CiB9CiAKLWludCBpcDZfZGF0YWdyYW1fY29ubmVjdChzdHJ1Y3Qgc29j ayAqc2ssIHN0cnVjdCBzb2NrYWRkciAqdWFkZHIsIGludCBhZGRyX2xlbikKK3N0YXRpYyBpbnQg X19pcDZfZGF0YWdyYW1fY29ubmVjdChzdHJ1Y3Qgc29jayAqc2ssIHN0cnVjdCBzb2NrYWRkciAq dWFkZHIsIGludCBhZGRyX2xlbikKIHsKIAlzdHJ1Y3Qgc29ja2FkZHJfaW42CSp1c2luID0gKHN0 cnVjdCBzb2NrYWRkcl9pbjYgKikgdWFkZHI7CiAJc3RydWN0IGluZXRfc29jawkqaW5ldCA9IGlu ZXRfc2soc2spOwpAQCAtNTYsNyArNTYsNyBAQCBpbnQgaXA2X2RhdGFncmFtX2Nvbm5lY3Qoc3Ry dWN0IHNvY2sgKnNrLCBzdHJ1Y3Qgc29ja2FkZHIgKnVhZGRyLCBpbnQgYWRkcl9sZW4pCiAJaWYg KHVzaW4tPnNpbjZfZmFtaWx5ID09IEFGX0lORVQpIHsKIAkJaWYgKF9faXB2Nl9vbmx5X3NvY2so c2spKQogCQkJcmV0dXJuIC1FQUZOT1NVUFBPUlQ7Ci0JCWVyciA9IGlwNF9kYXRhZ3JhbV9jb25u ZWN0KHNrLCB1YWRkciwgYWRkcl9sZW4pOworCQllcnIgPSBfX2lwNF9kYXRhZ3JhbV9jb25uZWN0 KHNrLCB1YWRkciwgYWRkcl9sZW4pOwogCQlnb3RvIGlwdjRfY29ubmVjdGVkOwogCX0KIApAQCAt OTgsOSArOTgsOSBAQCBpbnQgaXA2X2RhdGFncmFtX2Nvbm5lY3Qoc3RydWN0IHNvY2sgKnNrLCBz dHJ1Y3Qgc29ja2FkZHIgKnVhZGRyLCBpbnQgYWRkcl9sZW4pCiAJCXNpbi5zaW5fYWRkci5zX2Fk ZHIgPSBkYWRkci0+czZfYWRkcjMyWzNdOwogCQlzaW4uc2luX3BvcnQgPSB1c2luLT5zaW42X3Bv cnQ7CiAKLQkJZXJyID0gaXA0X2RhdGFncmFtX2Nvbm5lY3Qoc2ssCi0JCQkJCSAgIChzdHJ1Y3Qg c29ja2FkZHIgKikgJnNpbiwKLQkJCQkJICAgc2l6ZW9mKHNpbikpOworCQllcnIgPSBfX2lwNF9k YXRhZ3JhbV9jb25uZWN0KHNrLAorCQkJCQkgICAgIChzdHJ1Y3Qgc29ja2FkZHIgKikgJnNpbiwK KwkJCQkJICAgICBzaXplb2Yoc2luKSk7CiAKIGlwdjRfY29ubmVjdGVkOgogCQlpZiAoZXJyKQpA QCAtMjA0LDYgKzIwNCwxNiBAQCBvdXQ6CiAJZmw2X3NvY2tfcmVsZWFzZShmbG93bGFiZWwpOwog CXJldHVybiBlcnI7CiB9CisKK2ludCBpcDZfZGF0YWdyYW1fY29ubmVjdChzdHJ1Y3Qgc29jayAq c2ssIHN0cnVjdCBzb2NrYWRkciAqdWFkZHIsIGludCBhZGRyX2xlbikKK3sKKwlpbnQgcmVzOwor CisJbG9ja19zb2NrKHNrKTsKKwlyZXMgPSBfX2lwNl9kYXRhZ3JhbV9jb25uZWN0KHNrLCB1YWRk ciwgYWRkcl9sZW4pOworCXJlbGVhc2Vfc29jayhzayk7CisJcmV0dXJuIHJlczsKK30KIEVYUE9S VF9TWU1CT0xfR1BMKGlwNl9kYXRhZ3JhbV9jb25uZWN0KTsKIAogaW50IGlwNl9kYXRhZ3JhbV9j b25uZWN0X3Y2X29ubHkoc3RydWN0IHNvY2sgKnNrLCBzdHJ1Y3Qgc29ja2FkZHIgKnVhZGRyLAot LSAKMi4xLjAKCgpGcm9tIDc1ZDlmYmM3ZTQyZmU0NWQ5YzVmNDBiNmQ3ZWY4YTg5ZWExMjc4ZTQg TW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCkZyb206IE5pa29sYXkgQWxla3NhbmRyb3YgPG5pa29s YXlAY3VtdWx1c25ldHdvcmtzLmNvbT4KRGF0ZTogV2VkLCAxNSBKdWwgMjAxNSAyMTo1Mjo1MSAr MDIwMApTdWJqZWN0OiBbUEFUQ0ggMTgvMzJdIGJvbmRpbmc6IGZpeCBkZXN0cnVjdGlvbiBvZiBi b25kIHdpdGggZGV2aWNlcyBkaWZmZXJlbnQKIGZyb20gYXJwaHJkX2V0aGVyCgpbIFVwc3RyZWFt IGNvbW1pdCAwNmY2ZDEwOTRhYTA5OTI0MzJiMWUyYTA5MjBiMGVlODZjY2Q4M2JmIF0KCldoZW4g dGhlIGJvbmRpbmcgaXMgYmVpbmcgdW5sb2FkZWQgYW5kIHRoZSBuZXRkZXZpY2Ugbm90aWZpZXIg aXMKdW5yZWdpc3RlcmVkIGl0IGV4ZWN1dGVzIE5FVERFVl9VTlJFR0lTVEVSIGZvciBlYWNoIGRl dmljZSB3aGljaCBzaG91bGQKcmVtb3ZlIHRoZSBib25kJ3MgcHJvYyBlbnRyeSBidXQgaWYgdGhl IGRldmljZSBlbnNsYXZlZCBpcyBub3Qgb2YKQVJQSFJEX0VUSEVSIHR5cGUgYW5kIGlzIGluIGZy b250IG9mIHRoZSBib25kaW5nLCBpdCBtYXkgZXhlY3V0ZQpib25kX3JlbGVhc2VfYW5kX2Rlc3Ry b3koKSBmaXJzdCB3aGljaCB3b3VsZCByZWxlYXNlIHRoZSBsYXN0IHNsYXZlIGFuZApkZXN0cm95 IHRoZSBib25kIGRldmljZSBsZWF2aW5nIHRoZSBwcm9jIGVudHJ5IGFuZCB0aHVzIHdlIHdpbGwg Z2V0IHRoZQpmb2xsb3dpbmcgZXJyb3IgKHdpdGggZHluYW1pYyBkZWJ1ZyBvbiBmb3IgYm9uZF9u ZXRkZXZfZXZlbnQgdG8gc2VlIHRoZQpldmVudHMgb3JkZXIpOgpbICA5MDguOTYzMDUxXSBlcWw6 IGV2ZW50OiA5ClsgIDkwOC45NjMwNTJdIGVxbDogSUZGX1NMQVZFClsgIDkwOC45NjMwNTRdIGVx bDogZXZlbnQ6IDIKWyAgOTA4Ljk2MzA1Nl0gZXFsOiBJRkZfU0xBVkUKWyAgOTA4Ljk2MzA1OF0g ZXFsOiBldmVudDogNgpbICA5MDguOTYzMDU5XSBlcWw6IElGRl9TTEFWRQpbICA5MDguOTYzMTEw XSBib25kMDogUmVsZWFzaW5nIGFjdGl2ZSBpbnRlcmZhY2UgZXFsClsgIDkwOC45NzYxNjhdIGJv bmQwOiBEZXN0cm95aW5nIGJvbmQgYm9uZDAKWyAgOTA4Ljk3NjI2Nl0gYm9uZDAgKHVucmVnaXN0 ZXJpbmcpOiBSZWxlYXNlZCBhbGwgc2xhdmVzClsgIDkwOC45ODQwOTddIC0tLS0tLS0tLS0tLVsg Y3V0IGhlcmUgXS0tLS0tLS0tLS0tLQpbICA5MDguOTg0MTA3XSBXQVJOSU5HOiBDUFU6IDAgUElE OiAxNzg3IGF0IGZzL3Byb2MvZ2VuZXJpYy5jOjU3NQpyZW1vdmVfcHJvY19lbnRyeSsweDExMi8w eDE2MCgpClsgIDkwOC45ODQxMTBdIHJlbW92ZV9wcm9jX2VudHJ5OiByZW1vdmluZyBub24tZW1w dHkgZGlyZWN0b3J5CiduZXQvYm9uZGluZycsIGxlYWtpbmcgYXQgbGVhc3QgJ2JvbmQwJwpbICA5 MDguOTg0MTExXSBNb2R1bGVzIGxpbmtlZCBpbjogYm9uZGluZygtKSBlcWwoTykgOXAgbmZzZCBh dXRoX3JwY2dzcwpvaWRfcmVnaXN0cnkgbmZzX2FjbCBuZnMgbG9ja2QgZ3JhY2UgZnNjYWNoZSBz dW5ycGMgY3JjdDEwZGlmX3BjbG11bApjcmMzMl9wY2xtdWwgY3JjMzJjX2ludGVsIGdoYXNoX2Ns bXVsbmlfaW50ZWwgcHBkZXYgcXhsIGRybV9rbXNfaGVscGVyCnNuZF9oZGFfY29kZWNfZ2VuZXJp YyBhZXNuaV9pbnRlbCB0dG0gYWVzX3g4Nl82NCBnbHVlX2hlbHBlciBwY3Nwa3IgbHJ3CmdmMTI4 bXVsIGFibGtfaGVscGVyIGNyeXB0ZCBzbmRfaGRhX2ludGVsIHZpcnRpb19jb25zb2xlIHNuZF9o ZGFfY29kZWMKcHNtb3VzZSBzZXJpb19yYXcgc25kX2h3ZGVwIHNuZF9oZGFfY29yZSA5cG5ldF92 aXJ0aW8gOXBuZXQgZXZkZXYgam95ZGV2CmRybSB2aXJ0aW9fYmFsbG9vbiBzbmRfcGNtIHNuZF90 aW1lciBzbmQgc291bmRjb3JlIGkyY19waWl4NCBpMmNfY29yZQpwdnBhbmljIGFjcGlfY3B1ZnJl cSBwYXJwb3J0X3BjIHBhcnBvcnQgcHJvY2Vzc29yIHRoZXJtYWxfc3lzIGJ1dHRvbgphdXRvZnM0 IGV4dDQgY3JjMTYgbWJjYWNoZSBqYmQyIGhpZF9nZW5lcmljIHVzYmhpZCBoaWQgc2cgc3JfbW9k IGNkcm9tCmF0YV9nZW5lcmljIHZpcnRpb19ibGsgdmlydGlvX25ldCBmbG9wcHkgYXRhX3BpaXgg ZTEwMDAgbGliYXRhIGVoY2lfcGNpCnZpcnRpb19wY2kgc2NzaV9tb2QgdWhjaV9oY2QgZWhjaV9o Y2QgdmlydGlvX3JpbmcgdmlydGlvIHVzYmNvcmUKdXNiX2NvbW1vbiBbbGFzdCB1bmxvYWRlZDog Ym9uZGluZ10KClsgIDkwOC45ODQxNjhdIENQVTogMCBQSUQ6IDE3ODcgQ29tbTogcm1tb2QgVGFp bnRlZDogRyAgICAgICAgVyAgTwo0LjIuMC1yYzIrICM4ClsgIDkwOC45ODQxNzBdIEhhcmR3YXJl IG5hbWU6IEJvY2hzIEJvY2hzLCBCSU9TIEJvY2hzIDAxLzAxLzIwMTEKWyAgOTA4Ljk4NDE3Ml0g IDAwMDAwMDAwMDAwMDAwMDAgZmZmZmZmZmY4MTczMmQ0MSBmZmZmZmZmZjgxNTI1YjM0CmZmZmY4 ODAwMzU4ZGZkYTgKWyAgOTA4Ljk4NDE3NV0gIGZmZmZmZmZmODEwNmM1MjEgZmZmZjg4MDAzNTk1 YWY3OCBmZmZmODgwMDM1OTVhZjQwCmZmZmY4ODAwM2UzYTQyODAKWyAgOTA4Ljk4NDE3OF0gIGZm ZmZmZmZmYTA1OGQwNDAgMDAwMDAwMDAwMDAwMDAwMCBmZmZmZmZmZjgxMDZjNTlhCmZmZmZmZmZm ODE3MmViZDAKWyAgOTA4Ljk4NDE4MV0gQ2FsbCBUcmFjZToKWyAgOTA4Ljk4NDE4OF0gIFs8ZmZm ZmZmZmY4MTUyNWIzND5dID8gZHVtcF9zdGFjaysweDQwLzB4NTAKWyAgOTA4Ljk4NDE5M10gIFs8 ZmZmZmZmZmY4MTA2YzUyMT5dID8gd2Fybl9zbG93cGF0aF9jb21tb24rMHg4MS8weGIwClsgIDkw OC45ODQxOTZdICBbPGZmZmZmZmZmODEwNmM1OWE+XSA/IHdhcm5fc2xvd3BhdGhfZm10KzB4NGEv MHg1MApbICA5MDguOTg0MTk5XSAgWzxmZmZmZmZmZjgxMjE4MzUyPl0gPyByZW1vdmVfcHJvY19l bnRyeSsweDExMi8weDE2MApbICA5MDguOTg0MjA1XSAgWzxmZmZmZmZmZmEwNTg1MGU2Pl0gPyBi b25kX2Rlc3Ryb3lfcHJvY19kaXIrMHgyNi8weDMwCltib25kaW5nXQpbICA5MDguOTg0MjA4XSAg WzxmZmZmZmZmZmEwNTc1NDBlPl0gPyBib25kX25ldF9leGl0KzB4OGUvMHhhMCBbYm9uZGluZ10K WyAgOTA4Ljk4NDIxN10gIFs8ZmZmZmZmZmY4MTQyZjQwNz5dID8gb3BzX2V4aXRfbGlzdC5pc3Jh LjQrMHgzNy8weDcwClsgIDkwOC45ODQyMjVdICBbPGZmZmZmZmZmODE0MmY1MmQ+XSA/CnVucmVn aXN0ZXJfcGVybmV0X29wZXJhdGlvbnMrMHg4ZC8weGQwClsgIDkwOC45ODQyMjhdICBbPGZmZmZm ZmZmODE0MmY1OGQ+XSA/CnVucmVnaXN0ZXJfcGVybmV0X3N1YnN5cysweDFkLzB4MzAKWyAgOTA4 Ljk4NDIzMl0gIFs8ZmZmZmZmZmZhMDU4NTI2OT5dID8gYm9uZGluZ19leGl0KzB4MjMvMHhkYmEg W2JvbmRpbmddClsgIDkwOC45ODQyMzZdICBbPGZmZmZmZmZmODEwZTI4YmE+XSA/IFN5U19kZWxl dGVfbW9kdWxlKzB4MThhLzB4MjUwClsgIDkwOC45ODQyNDFdICBbPGZmZmZmZmZmODEwODZmOTk+ XSA/IHRhc2tfd29ya19ydW4rMHg4OS8weGMwClsgIDkwOC45ODQyNDRdICBbPGZmZmZmZmZmODE1 MmI3MzI+XSA/CmVudHJ5X1NZU0NBTExfNjRfZmFzdHBhdGgrMHgxNi8weDc1ClsgIDkwOC45ODQy NDddIC0tLVsgZW5kIHRyYWNlIDdjMDA2ZWQ0YWJiZWYyNGIgXS0tLQoKVGh1cyByZW1vdmUgdGhl IHByb2MgZW50cnkgbWFudWFsbHkgaWYgYm9uZF9yZWxlYXNlX2FuZF9kZXN0cm95KCkgaXMKdXNl ZC4gQmVjYXVzZSBvZiB0aGUgY2hlY2tzIGluIGJvbmRfcmVtb3ZlX3Byb2NfZW50cnkoKSBpdCdz IG5vdCBhCnByb2JsZW0gZm9yIGEgYm9uZCBkZXZpY2UgdG8gY2hhbmdlIG5hbWVzcGFjZXMgKHRo ZSBidWcgZml4ZWQgYnkgdGhlCkZpeGVzIGNvbW1pdCkgYnV0IHNpbmNlIGNvbW1pdApmOTM5OTgx NDkyN2FkICgiYm9uZGluZzogRG9uJ3QgYWxsb3cgYm9uZCBkZXZpY2VzIHRvIGNoYW5nZSBuZXR3 b3JrCm5hbWVzcGFjZXMuIikgdGhhdCBjYW4ndCBoYXBwZW4gYW55d2F5LgoKUmVwb3J0ZWQtYnk6 IENhcm9sIFNvdG8gPGNsc290b0BsaW51eC52bmV0LmlibS5jb20+ClNpZ25lZC1vZmYtYnk6IE5p a29sYXkgQWxla3NhbmRyb3YgPG5pa29sYXlAY3VtdWx1c25ldHdvcmtzLmNvbT4KRml4ZXM6IGE2 NGQ0OWMzZGQ1MCAoImJvbmRpbmc6IE1hbmFnZSAvcHJvYy9uZXQvYm9uZGluZy8gZW50cmllcyBm cm9tCiAgICAgICAgICAgICAgICAgICAgICB0aGUgbmV0ZGV2IGV2ZW50cyIpClRlc3RlZC1ieTog Q2Fyb2wgTCBTb3RvIDxjbHNvdG9AbGludXgudm5ldC5pYm0uY29tPgpTaWduZWQtb2ZmLWJ5OiBE YXZpZCBTLiBNaWxsZXIgPGRhdmVtQGRhdmVtbG9mdC5uZXQ+Ci0tLQogZHJpdmVycy9uZXQvYm9u ZGluZy9ib25kX21haW4uYyB8IDEgKwogMSBmaWxlIGNoYW5nZWQsIDEgaW5zZXJ0aW9uKCspCgpk aWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvYm9uZGluZy9ib25kX21haW4uYyBiL2RyaXZlcnMvbmV0 L2JvbmRpbmcvYm9uZF9tYWluLmMKaW5kZXggMWNjMDZjMC4uZjMyZDUwYSAxMDA2NDQKLS0tIGEv ZHJpdmVycy9uZXQvYm9uZGluZy9ib25kX21haW4uYworKysgYi9kcml2ZXJzL25ldC9ib25kaW5n L2JvbmRfbWFpbi5jCkBAIC0xODA1LDYgKzE4MDUsNyBAQCBzdGF0aWMgaW50ICBib25kX3JlbGVh c2VfYW5kX2Rlc3Ryb3koc3RydWN0IG5ldF9kZXZpY2UgKmJvbmRfZGV2LAogCQlib25kX2Rldi0+ cHJpdl9mbGFncyB8PSBJRkZfRElTQUJMRV9ORVRQT0xMOwogCQluZXRkZXZfaW5mbyhib25kX2Rl diwgIkRlc3Ryb3lpbmcgYm9uZCAlc1xuIiwKIAkJCSAgICBib25kX2Rldi0+bmFtZSk7CisJCWJv bmRfcmVtb3ZlX3Byb2NfZW50cnkoYm9uZCk7CiAJCXVucmVnaXN0ZXJfbmV0ZGV2aWNlKGJvbmRf ZGV2KTsKIAl9CiAJcmV0dXJuIHJldDsKLS0gCjIuMS4wCgoKRnJvbSBiY2ViMDFjN2EwNGQ3N2Fl NTg3NGIxYjBjYzJiMDdlM2ZkYWY5M2E1IE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBI ZXJiZXJ0IFh1IDxoZXJiZXJ0QGdvbmRvci5hcGFuYS5vcmcuYXU+CkRhdGU6IE1vbiwgMjAgSnVs IDIwMTUgMTc6NTU6MzggKzA4MDAKU3ViamVjdDogW1BBVENIIDE5LzMyXSBSZXZlcnQgInNpdDog QWRkIGdybyBjYWxsYmFja3MgdG8gc2l0X29mZmxvYWQiCgpbIFVwc3RyZWFtIGNvbW1pdCBmZGJm NWIwOTdiYmQ5NjkzYTg2YzBiOGJmZGQwNzFhOWEyMTE3Y2ZjIF0KClRoaXMgcGF0Y2ggcmV2ZXJ0 cyAxOTQyNGUwNTJmYjQ0ZGEyZjAwZDFhODY4Y2JiNTFmM2U5ZjRiYmI1ICgic2l0OgpBZGQgZ3Jv IGNhbGxiYWNrcyB0byBzaXRfb2ZmbG9hZCIpIGJlY2F1c2UgaXQgZ2VuZXJhdGVzIHBhY2tldHMK dGhhdCBjYW5ub3QgYmUgaGFuZGxlZCBldmVuIGJ5IG91ciBvd24gR1NPLgoKUmVwb3J0ZWQtYnk6 IFdvbGZnYW5nIFdhbHRlciA8bGludXhAc3R3bS5kZT4KU2lnbmVkLW9mZi1ieTogSGVyYmVydCBY dSA8aGVyYmVydEBnb25kb3IuYXBhbmEub3JnLmF1PgpTaWduZWQtb2ZmLWJ5OiBEYXZpZCBTLiBN aWxsZXIgPGRhdmVtQGRhdmVtbG9mdC5uZXQ+Ci0tLQogbmV0L2lwdjYvaXA2X29mZmxvYWQuYyB8 IDIgLS0KIDEgZmlsZSBjaGFuZ2VkLCAyIGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL25ldC9p cHY2L2lwNl9vZmZsb2FkLmMgYi9uZXQvaXB2Ni9pcDZfb2ZmbG9hZC5jCmluZGV4IDAxZTEyZDAu LmJmZDU5OTAgMTAwNjQ0Ci0tLSBhL25ldC9pcHY2L2lwNl9vZmZsb2FkLmMKKysrIGIvbmV0L2lw djYvaXA2X29mZmxvYWQuYwpAQCAtMjkyLDggKzI5Miw2IEBAIHN0YXRpYyBzdHJ1Y3QgcGFja2V0 X29mZmxvYWQgaXB2Nl9wYWNrZXRfb2ZmbG9hZCBfX3JlYWRfbW9zdGx5ID0gewogc3RhdGljIGNv bnN0IHN0cnVjdCBuZXRfb2ZmbG9hZCBzaXRfb2ZmbG9hZCA9IHsKIAkuY2FsbGJhY2tzID0gewog CQkuZ3NvX3NlZ21lbnQJPSBpcHY2X2dzb19zZWdtZW50LAotCQkuZ3JvX3JlY2VpdmUJPSBpcHY2 X2dyb19yZWNlaXZlLAotCQkuZ3JvX2NvbXBsZXRlCT0gaXB2Nl9ncm9fY29tcGxldGUsCiAJfSwK IH07CiAKLS0gCjIuMS4wCgoKRnJvbSAyYzJlMWZmNjZhNjk5YTM0YzBkMmVhYWI0MmQxMjg1Nzdm MGJmNzUwIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBkaW5ndGlhbmhvbmcgPGRpbmd0 aWFuaG9uZ0BodWF3ZWkuY29tPgpEYXRlOiBUaHUsIDE2IEp1bCAyMDE1IDE2OjMwOjAyICswODAw ClN1YmplY3Q6IFtQQVRDSCAyMC8zMl0gYm9uZGluZzogY29ycmVjdCB0aGUgTUFDIGFkZHJlc3Mg Zm9yICJmb2xsb3ciCiBmYWlsX292ZXJfbWFjIHBvbGljeQoKWyBVcHN0cmVhbSBjb21taXQgYTk1 MWJjMWU2YmE1OGYxMWRmNWVkNWRkYzQxMzExZTEwZjVmZDIwYiBdCgpUaGUgImZvbGxvdyIgZmFp bF9vdmVyX21hYyBwb2xpY3kgaXMgdXNlZnVsIGZvciBtdWx0aXBvcnQgZGV2aWNlcyB0aGF0CmVp dGhlciBiZWNvbWUgY29uZnVzZWQgb3IgaW5jdXIgYSBwZXJmb3JtYW5jZSBwZW5hbHR5IHdoZW4g bXVsdGlwbGUKcG9ydHMgYXJlIHByb2dyYW1tZWQgd2l0aCB0aGUgc2FtZSBNQUMgYWRkcmVzcywg YnV0IHRoZSBzYW1lIE1BQwphZGRyZXNzIHN0aWxsIG1heSBoYXBwZW5lZCBieSB0aGlzIHN0ZXBz IGZvciB0aGlzIHBvbGljeToKCjEpIGVjaG8gK2V0aDAgPiAvc3lzL2NsYXNzL25ldC9ib25kMC9i b25kaW5nL3NsYXZlcwogICBib25kMCBoYXMgdGhlIHNhbWUgbWFjIGFkZHJlc3Mgd2l0aCBldGgw LCBpdCBpcyBNQUMxLgoKMikgZWNobyArZXRoMSA+IC9zeXMvY2xhc3MvbmV0L2JvbmQwL2JvbmRp bmcvc2xhdmVzCiAgIGV0aDEgaXMgYmFja3VwLCBldGgxIGhhcyBNQUMyLgoKMykgaWZjb25maWcg ZXRoMCBkb3duCiAgIGV0aDEgYmVjYW1lIGFjdGl2ZSBzbGF2ZSwgYm9uZCB3aWxsIHN3YXAgTUFD IGZvciBldGgwIGFuZCBldGgxLAogICBzbyBldGgxIGhhcyBNQUMxLCBhbmQgZXRoMCBoYXMgTUFD Mi4KCjQpIGlmY29uZmlnIGV0aDEgZG93bgogICB0aGVyZSBpcyBubyBhY3RpdmUgc2xhdmUsIGFu ZCBldGgxIHN0aWxsIGhhcyBNQUMxLCBldGgyIGhhcyBNQUMyLgoKNSkgaWZjb25maWcgZXRoMCB1 cAogICB0aGUgZXRoMCBiZWNhbWUgYWN0aXZlIHNsYXZlIGFnYWluLCB0aGUgYm9uZCBzZXQgZXRo MCB0byBNQUMxLgoKU29tZXRoaW5nIHdyb25nIGhlcmUsIHRoZW4gaWYgeW91IHNldCBldGgxIHVw LCB0aGUgZXRoMCBhbmQgZXRoMSB3aWxsIGhhdmUgdGhlIHNhbWUKTUFDIGFkZHJlc3MsIGl0IHdp bGwgYnJlYWsgdGhpcyBwb2xpY3kgZm9yIEFDVElWRV9CQUNLVVAgbW9kZS4KClRoaXMgcGF0Y2gg d2lsbCBmaXggdGhpcyBwcm9ibGVtIGJ5IGZpbmRpbmcgdGhlIG9sZCBhY3RpdmUgc2xhdmUgYW5k CnN3YXAgdGhlbSBNQUMgYWRkcmVzcyBiZWZvcmUgY2hhbmdlIGFjdGl2ZSBzbGF2ZS4KClNpZ25l ZC1vZmYtYnk6IERpbmcgVGlhbmhvbmcgPGRpbmd0aWFuaG9uZ0BodWF3ZWkuY29tPgpUZXN0ZWQt Ynk6IE5pa29sYXkgQWxla3NhbmRyb3YgPG5pa29sYXlAY3VtdWx1c25ldHdvcmtzLmNvbT4KU2ln bmVkLW9mZi1ieTogRGF2aWQgUy4gTWlsbGVyIDxkYXZlbUBkYXZlbWxvZnQubmV0PgotLS0KIGRy aXZlcnMvbmV0L2JvbmRpbmcvYm9uZF9tYWluLmMgfCAyMCArKysrKysrKysrKysrKysrKysrKwog MSBmaWxlIGNoYW5nZWQsIDIwIGluc2VydGlvbnMoKykKCmRpZmYgLS1naXQgYS9kcml2ZXJzL25l dC9ib25kaW5nL2JvbmRfbWFpbi5jIGIvZHJpdmVycy9uZXQvYm9uZGluZy9ib25kX21haW4uYwpp bmRleCBmMzJkNTBhLi4wODFkZDcwIDEwMDY0NAotLS0gYS9kcml2ZXJzL25ldC9ib25kaW5nL2Jv bmRfbWFpbi5jCisrKyBiL2RyaXZlcnMvbmV0L2JvbmRpbmcvYm9uZF9tYWluLmMKQEAgLTYyMiw2 ICs2MjIsMjMgQEAgc3RhdGljIHZvaWQgYm9uZF9zZXRfZGV2X2FkZHIoc3RydWN0IG5ldF9kZXZp Y2UgKmJvbmRfZGV2LAogCWNhbGxfbmV0ZGV2aWNlX25vdGlmaWVycyhORVRERVZfQ0hBTkdFQURE UiwgYm9uZF9kZXYpOwogfQogCitzdGF0aWMgc3RydWN0IHNsYXZlICpib25kX2dldF9vbGRfYWN0 aXZlKHN0cnVjdCBib25kaW5nICpib25kLAorCQkJCQkgc3RydWN0IHNsYXZlICpuZXdfYWN0aXZl KQoreworCXN0cnVjdCBzbGF2ZSAqc2xhdmU7CisJc3RydWN0IGxpc3RfaGVhZCAqaXRlcjsKKwor CWJvbmRfZm9yX2VhY2hfc2xhdmUoYm9uZCwgc2xhdmUsIGl0ZXIpIHsKKwkJaWYgKHNsYXZlID09 IG5ld19hY3RpdmUpCisJCQljb250aW51ZTsKKworCQlpZiAoZXRoZXJfYWRkcl9lcXVhbChib25k LT5kZXYtPmRldl9hZGRyLCBzbGF2ZS0+ZGV2LT5kZXZfYWRkcikpCisJCQlyZXR1cm4gc2xhdmU7 CisJfQorCisJcmV0dXJuIE5VTEw7Cit9CisKIC8qIGJvbmRfZG9fZmFpbF9vdmVyX21hYwogICoK ICAqIFBlcmZvcm0gc3BlY2lhbCBNQUMgYWRkcmVzcyBzd2FwcGluZyBmb3IgZmFpbF9vdmVyX21h YyBzZXR0aW5ncwpAQCAtNjQ5LDYgKzY2Niw5IEBAIHN0YXRpYyB2b2lkIGJvbmRfZG9fZmFpbF9v dmVyX21hYyhzdHJ1Y3QgYm9uZGluZyAqYm9uZCwKIAkJaWYgKCFuZXdfYWN0aXZlKQogCQkJcmV0 dXJuOwogCisJCWlmICghb2xkX2FjdGl2ZSkKKwkJCW9sZF9hY3RpdmUgPSBib25kX2dldF9vbGRf YWN0aXZlKGJvbmQsIG5ld19hY3RpdmUpOworCiAJCWlmIChvbGRfYWN0aXZlKSB7CiAJCQlldGhl cl9hZGRyX2NvcHkodG1wX21hYywgbmV3X2FjdGl2ZS0+ZGV2LT5kZXZfYWRkcik7CiAJCQlldGhl cl9hZGRyX2NvcHkoc2FkZHIuc2FfZGF0YSwKLS0gCjIuMS4wCgoKRnJvbSBjODk5MThmMTQyNDJh MzczMjdlYzdhODhiYTAzNmVmZTVlNTg5YjNlIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9t OiBEYW5pZWwgQm9ya21hbm4gPGRhbmllbEBpb2dlYXJib3gubmV0PgpEYXRlOiBGcmksIDE3IEp1 bCAyMDE1IDIyOjM4OjQzICswMjAwClN1YmplY3Q6IFtQQVRDSCAyMS8zMl0gc2NoZWQ6IGNsc19i cGY6IGZpeCBwYW5pYyBvbiBmaWx0ZXIgcmVwbGFjZQoKWyBVcHN0cmVhbSBjb21taXQgZjZiZmM0 NmRhNjI5MmI2MzBiYTM4OTU5MjEyM2YwZGQwMjA2NjE3MiBdCgpUaGUgZm9sbG93aW5nIHRlc3Qg Y2FzZSBjYXVzZXMgYSBOVUxMIHBvaW50ZXIgZGVyZWZlcmVuY2UgaW4gY2xzX2JwZjoKCiAgRk9P PSIxLDYgMCAwIDQyOTQ5NjcyOTUsIgogIHRjIGZpbHRlciBhZGQgZGV2IGZvbyBwYXJlbnQgMTog YnBmIGJ5dGVjb2RlICIkRk9PIiBmbG93aWQgMToxIGFjdGlvbiBvawogIHRjIGZpbHRlciByZXBs YWNlIGRldiBmb28gcGFyZW50IDE6IHByZWYgNDkxNTIgaGFuZGxlIDB4MSBcCiAgICAgICAgICAg IGJwZiBieXRlY29kZSAiJEZPTyIgZmxvd2lkIDE6MSBhY3Rpb24gZHJvcAoKVGhlIHByb2JsZW0g aXMgdGhhdCBjb21taXQgMWY5NDdiZjE1MWU5ICgibmV0OiBzY2hlZDogcmN1J2lmeSBjbHNfYnBm IikKYWNjaWRlbnRhbGx5IHN3YXBwZWQgdGhlIGFyZ3VtZW50cyBvZiBsaXN0X3JlcGxhY2VfcmN1 KCksIHRoZSBvbGQKZWxlbWVudCBuZWVkcyB0byBiZSB0aGUgZmlyc3QgYXJndW1lbnQgYW5kIHRo ZSBuZXcgZWxlbWVudCB0aGUgc2Vjb25kLgoKRml4ZXM6IDFmOTQ3YmYxNTFlOSAoIm5ldDogc2No ZWQ6IHJjdSdpZnkgY2xzX2JwZiIpClNpZ25lZC1vZmYtYnk6IERhbmllbCBCb3JrbWFubiA8ZGFu aWVsQGlvZ2VhcmJveC5uZXQ+CkFja2VkLWJ5OiBKb2huIEZhc3RhYmVuZCA8am9obi5yLmZhc3Rh YmVuZEBpbnRlbC5jb20+CkFja2VkLWJ5OiBBbGV4ZWkgU3Rhcm92b2l0b3YgPGFzdEBwbHVtZ3Jp ZC5jb20+ClNpZ25lZC1vZmYtYnk6IERhdmlkIFMuIE1pbGxlciA8ZGF2ZW1AZGF2ZW1sb2Z0Lm5l dD4KLS0tCiBuZXQvc2NoZWQvY2xzX2JwZi5jIHwgMiArLQogMSBmaWxlIGNoYW5nZWQsIDEgaW5z ZXJ0aW9uKCspLCAxIGRlbGV0aW9uKC0pCgpkaWZmIC0tZ2l0IGEvbmV0L3NjaGVkL2Nsc19icGYu YyBiL25ldC9zY2hlZC9jbHNfYnBmLmMKaW5kZXggZWVkNDlkMS4uZDkyM2FkZCAxMDA2NDQKLS0t IGEvbmV0L3NjaGVkL2Nsc19icGYuYworKysgYi9uZXQvc2NoZWQvY2xzX2JwZi5jCkBAIC0yODIs NyArMjgyLDcgQEAgc3RhdGljIGludCBjbHNfYnBmX2NoYW5nZShzdHJ1Y3QgbmV0ICpuZXQsIHN0 cnVjdCBza19idWZmICppbl9za2IsCiAJCWdvdG8gZXJyb3V0OwogCiAJaWYgKG9sZHByb2cpIHsK LQkJbGlzdF9yZXBsYWNlX3JjdSgmcHJvZy0+bGluaywgJm9sZHByb2ctPmxpbmspOworCQlsaXN0 X3JlcGxhY2VfcmN1KCZvbGRwcm9nLT5saW5rLCAmcHJvZy0+bGluayk7CiAJCXRjZl91bmJpbmRf ZmlsdGVyKHRwLCAmb2xkcHJvZy0+cmVzKTsKIAkJY2FsbF9yY3UoJm9sZHByb2ctPnJjdSwgX19j bHNfYnBmX2RlbGV0ZV9wcm9nKTsKIAl9IGVsc2UgewotLSAKMi4xLjAKCgpGcm9tIGNkZGM1YWI2 YjFjYzc3NWUzN2ViNTkxNGNmOGQ0ODdkY2JmNDU2YzcgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAx CkZyb206IERhbmllbCBCb3JrbWFubiA8ZGFuaWVsQGlvZ2VhcmJveC5uZXQ+CkRhdGU6IEZyaSwg MTcgSnVsIDIwMTUgMjI6Mzg6NDUgKzAyMDAKU3ViamVjdDogW1BBVENIIDIyLzMyXSBzY2hlZDog Y2xzX2Zsb3c6IGZpeCBwYW5pYyBvbiBmaWx0ZXIgcmVwbGFjZQoKWyBVcHN0cmVhbSBjb21taXQg MzJiMmY0YjE5NmIzNzY5NWZkYjQyYjMxYWZjYmMxNTM5OWQ2ZWY5MSBdCgpUaGUgZm9sbG93aW5n IHRlc3QgY2FzZSBjYXVzZXMgYSBOVUxMIHBvaW50ZXIgZGVyZWZlcmVuY2UgaW4gY2xzX2Zsb3c6 CgogIHRjIGZpbHRlciBhZGQgZGV2IGZvbyBwYXJlbnQgMTogaGFuZGxlIDB4MSBmbG93IGhhc2gg a2V5cyBkc3QgYWN0aW9uIG9rCiAgdGMgZmlsdGVyIHJlcGxhY2UgZGV2IGZvbyBwYXJlbnQgMTog cHJlZiA0OTE1MiBoYW5kbGUgMHgxIFwKICAgICAgICAgICAgZmxvdyBoYXNoIGtleXMgbWFyayBh Y3Rpb24gZHJvcAoKVG8gYmUgbW9yZSBwcmVjaXNlLCBhY3R1YWxseSB0d28gZGlmZmVyZW50IHBh bmljcyBhcmUgZml4ZWQsIHRoZSBmaXJzdApvY2N1cnMgYmVjYXVzZSB0Y2ZfZXh0c19pbml0KCkg aXMgbm90IGNhbGxlZCBvbiB0aGUgbmV3bHkgYWxsb2NhdGVkCmZpbHRlciB3aGVuIHdlIGRvIGEg cmVwbGFjZS4gQW5kIHRoZSBzZWNvbmQgcGFuaWMgdW5jb3ZlcmVkIGFmdGVyIHRoYXQKaGFwcGVu cyBzaW5jZSB0aGUgYXJndW1lbnRzIG9mIGxpc3RfcmVwbGFjZV9yY3UoKSBhcmUgc3dhcHBlZCwg dGhlIG9sZAplbGVtZW50IG5lZWRzIHRvIGJlIHRoZSBmaXJzdCBhcmd1bWVudCBhbmQgdGhlIG5l dyBlbGVtZW50IHRoZSBzZWNvbmQuCgpGaXhlczogNzBkYTlmMGJmOTk5ICgibmV0OiBzY2hlZDog Y2xzX2Zsb3cgdXNlIFJDVSIpClNpZ25lZC1vZmYtYnk6IERhbmllbCBCb3JrbWFubiA8ZGFuaWVs QGlvZ2VhcmJveC5uZXQ+CkFja2VkLWJ5OiBKb2huIEZhc3RhYmVuZCA8am9obi5yLmZhc3RhYmVu ZEBpbnRlbC5jb20+ClNpZ25lZC1vZmYtYnk6IERhdmlkIFMuIE1pbGxlciA8ZGF2ZW1AZGF2ZW1s b2Z0Lm5ldD4KLS0tCiBuZXQvc2NoZWQvY2xzX2Zsb3cuYyB8IDUgKysrLS0KIDEgZmlsZSBjaGFu Z2VkLCAzIGluc2VydGlvbnMoKyksIDIgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvbmV0L3Nj aGVkL2Nsc19mbG93LmMgYi9uZXQvc2NoZWQvY2xzX2Zsb3cuYwppbmRleCA0YWM1MTVmLi44MWE5 NGIyIDEwMDY0NAotLS0gYS9uZXQvc2NoZWQvY2xzX2Zsb3cuYworKysgYi9uZXQvc2NoZWQvY2xz X2Zsb3cuYwpAQCAtNDE5LDYgKzQxOSw4IEBAIHN0YXRpYyBpbnQgZmxvd19jaGFuZ2Uoc3RydWN0 IG5ldCAqbmV0LCBzdHJ1Y3Qgc2tfYnVmZiAqaW5fc2tiLAogCWlmICghZm5ldykKIAkJZ290byBl cnIyOwogCisJdGNmX2V4dHNfaW5pdCgmZm5ldy0+ZXh0cywgVENBX0ZMT1dfQUNULCBUQ0FfRkxP V19QT0xJQ0UpOworCiAJZm9sZCA9IChzdHJ1Y3QgZmxvd19maWx0ZXIgKikqYXJnOwogCWlmIChm b2xkKSB7CiAJCWVyciA9IC1FSU5WQUw7CkBAIC00ODMsNyArNDg1LDYgQEAgc3RhdGljIGludCBm bG93X2NoYW5nZShzdHJ1Y3QgbmV0ICpuZXQsIHN0cnVjdCBza19idWZmICppbl9za2IsCiAJCWZu ZXctPm1hc2sgID0gfjBVOwogCQlmbmV3LT50cCA9IHRwOwogCQlnZXRfcmFuZG9tX2J5dGVzKCZm bmV3LT5oYXNocm5kLCA0KTsKLQkJdGNmX2V4dHNfaW5pdCgmZm5ldy0+ZXh0cywgVENBX0ZMT1df QUNULCBUQ0FfRkxPV19QT0xJQ0UpOwogCX0KIAogCWZuZXctPnBlcnR1cmJfdGltZXIuZnVuY3Rp b24gPSBmbG93X3BlcnR1cmJhdGlvbjsKQEAgLTUyMyw3ICs1MjQsNyBAQCBzdGF0aWMgaW50IGZs b3dfY2hhbmdlKHN0cnVjdCBuZXQgKm5ldCwgc3RydWN0IHNrX2J1ZmYgKmluX3NrYiwKIAlpZiAo KmFyZyA9PSAwKQogCQlsaXN0X2FkZF90YWlsX3JjdSgmZm5ldy0+bGlzdCwgJmhlYWQtPmZpbHRl cnMpOwogCWVsc2UKLQkJbGlzdF9yZXBsYWNlX3JjdSgmZm5ldy0+bGlzdCwgJmZvbGQtPmxpc3Qp OworCQlsaXN0X3JlcGxhY2VfcmN1KCZmb2xkLT5saXN0LCAmZm5ldy0+bGlzdCk7CiAKIAkqYXJn ID0gKHVuc2lnbmVkIGxvbmcpZm5ldzsKIAotLSAKMi4xLjAKCgpGcm9tIDZhZjRlZjE2NGZkNTY1 OGU5NmQxMzEyYjFkOTE3YjBiMzM0NTEwZWMgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCkZyb206 IEVkd2FyZCBIeXVua29vIEplZSA8ZWRqZWVAZ29vZ2xlLmNvbT4KRGF0ZTogVHVlLCAyMSBKdWwg MjAxNSAwOTo0Mzo1OSArMDIwMApTdWJqZWN0OiBbUEFUQ0ggMjMvMzJdIGluZXQ6IGZyYWdzOiBm aXggZGVmcmFnbWVudGVkIHBhY2tldCdzIElQIGhlYWRlciBmb3IKIGFmX3BhY2tldAoKWyBVcHN0 cmVhbSBjb21taXQgMDg0OGY2NDI4YmEzYTJlNDJkYjEyNGQ0MWFjNmY1NDg2NTU3MzViZiBdCgpX aGVuIGlwX2ZyYWdfcXVldWUoKSBjb21wdXRlcyBwb3NpdGlvbnMsIGl0IGFzc3VtZXMgdGhhdCB0 aGUgcGFzc2VkCnNrX2J1ZmYgZG9lcyBub3QgY29udGFpbiBMMiBoZWFkZXJzLgoKSG93ZXZlciwg d2hlbiBQQUNLRVRfRkFOT1VUX0ZMQUdfREVGUkFHIGlzIHVzZWQsIElQIHJlYXNzZW1ibHkKZnVu Y3Rpb25zIGNhbiBiZSBjYWxsZWQgb24gb3V0Z29pbmcgcGFja2V0cyB0aGF0IGNvbnRhaW4gTDIg aGVhZGVycy4KCkFsc28sIElQdjQgY2hlY2tzdW0gaXMgbm90IGNvcnJlY3RlZCBhZnRlciByZWFz c2VtYmx5LgoKRml4ZXM6IDc3MzZkMzNmNDI2MiAoInBhY2tldDogQWRkIHByZS1kZWZyYWdtZW50 YXRpb24gc3VwcG9ydCBmb3IgaXB2NCBmYW5vdXRzLiIpClNpZ25lZC1vZmYtYnk6IEVkd2FyZCBI eXVua29vIEplZSA8ZWRqZWVAZ29vZ2xlLmNvbT4KU2lnbmVkLW9mZi1ieTogRXJpYyBEdW1hemV0 IDxlZHVtYXpldEBnb29nbGUuY29tPgpDYzogV2lsbGVtIGRlIEJydWlqbiA8d2lsbGVtYkBnb29n bGUuY29tPgpDYzogSmVycnkgQ2h1IDxoa2NodUBnb29nbGUuY29tPgpTaWduZWQtb2ZmLWJ5OiBE YXZpZCBTLiBNaWxsZXIgPGRhdmVtQGRhdmVtbG9mdC5uZXQ+Ci0tLQogbmV0L2lwdjQvaXBfZnJh Z21lbnQuYyB8IDcgKysrKystLQogMSBmaWxlIGNoYW5nZWQsIDUgaW5zZXJ0aW9ucygrKSwgMiBk ZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9uZXQvaXB2NC9pcF9mcmFnbWVudC5jIGIvbmV0L2lw djQvaXBfZnJhZ21lbnQuYwppbmRleCBiNDhlMDNjZDYuLjk1MTYwMzE4IDEwMDY0NAotLS0gYS9u ZXQvaXB2NC9pcF9mcmFnbWVudC5jCisrKyBiL25ldC9pcHY0L2lwX2ZyYWdtZW50LmMKQEAgLTM0 Miw3ICszNDIsNyBAQCBzdGF0aWMgaW50IGlwX2ZyYWdfcXVldWUoc3RydWN0IGlwcSAqcXAsIHN0 cnVjdCBza19idWZmICpza2IpCiAJaWhsID0gaXBfaGRybGVuKHNrYik7CiAKIAkvKiBEZXRlcm1p bmUgdGhlIHBvc2l0aW9uIG9mIHRoaXMgZnJhZ21lbnQuICovCi0JZW5kID0gb2Zmc2V0ICsgc2ti LT5sZW4gLSBpaGw7CisJZW5kID0gb2Zmc2V0ICsgc2tiLT5sZW4gLSBza2JfbmV0d29ya19vZmZz ZXQoc2tiKSAtIGlobDsKIAllcnIgPSAtRUlOVkFMOwogCiAJLyogSXMgdGhpcyB0aGUgZmluYWwg ZnJhZ21lbnQ/ICovCkBAIC0zNzIsNyArMzcyLDcgQEAgc3RhdGljIGludCBpcF9mcmFnX3F1ZXVl KHN0cnVjdCBpcHEgKnFwLCBzdHJ1Y3Qgc2tfYnVmZiAqc2tiKQogCQlnb3RvIGVycjsKIAogCWVy ciA9IC1FTk9NRU07Ci0JaWYgKHBza2JfcHVsbChza2IsIGlobCkgPT0gTlVMTCkKKwlpZiAoIXBz a2JfcHVsbChza2IsIHNrYl9uZXR3b3JrX29mZnNldChza2IpICsgaWhsKSkKIAkJZ290byBlcnI7 CiAKIAllcnIgPSBwc2tiX3RyaW1fcmNzdW0oc2tiLCBlbmQgLSBvZmZzZXQpOwpAQCAtNjEyLDYg KzYxMiw5IEBAIHN0YXRpYyBpbnQgaXBfZnJhZ19yZWFzbShzdHJ1Y3QgaXBxICpxcCwgc3RydWN0 IHNrX2J1ZmYgKnByZXYsCiAJaXBoLT5mcmFnX29mZiA9IHFwLT5xLm1heF9zaXplID8gaHRvbnMo SVBfREYpIDogMDsKIAlpcGgtPnRvdF9sZW4gPSBodG9ucyhsZW4pOwogCWlwaC0+dG9zIHw9IGVj bjsKKworCWlwX3NlbmRfY2hlY2soaXBoKTsKKwogCUlQX0lOQ19TVEFUU19CSChuZXQsIElQU1RB VFNfTUlCX1JFQVNNT0tTKTsKIAlxcC0+cS5mcmFnbWVudHMgPSBOVUxMOwogCXFwLT5xLmZyYWdt ZW50c190YWlsID0gTlVMTDsKLS0gCjIuMS4wCgoKRnJvbSAzM2EzYjllZmEzMzE4ZGRhNmUxZTRh YmY3NDJlMWY2ZTQzMzUzMWRkIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBGbG9yaWFu IFdlc3RwaGFsIDxmd0BzdHJsZW4uZGU+CkRhdGU6IFR1ZSwgMjEgSnVsIDIwMTUgMTY6MzM6NTAg KzAyMDAKU3ViamVjdDogW1BBVENIIDI0LzMyXSBuZXRsaW5rOiBkb24ndCBob2xkIG11dGV4IGlu IHJjdSBjYWxsYmFjayB3aGVuCiByZWxlYXNpbmcgbW1hcGQgcmluZwoKWyBVcHN0cmVhbSBjb21t aXQgMDQ3MGViOTliNDcyMTU4NmNjYWM5NTRmYWFjM2ZhNDQ3MmRhMDg0NSBdCgpLaXJpbGwgQS4g U2h1dGVtb3Ygc2F5czoKClRoaXMgc2ltcGxlIHRlc3QtY2FzZSB0cmlnZXJzIGZldyBsb2NraW5n IGFzc2VydHMgaW4ga2VybmVsOgoKaW50IG1haW4oaW50IGFyZ2MsIGNoYXIgKiphcmd2KQp7CiAg ICAgICAgdW5zaWduZWQgaW50IGJsb2NrX3NpemUgPSAxNiAqIDQwOTY7CiAgICAgICAgc3RydWN0 IG5sX21tYXBfcmVxIHJlcSA9IHsKICAgICAgICAgICAgICAgIC5ubV9ibG9ja19zaXplICAgICAg ICAgID0gYmxvY2tfc2l6ZSwKICAgICAgICAgICAgICAgIC5ubV9ibG9ja19uciAgICAgICAgICAg ID0gNjQsCiAgICAgICAgICAgICAgICAubm1fZnJhbWVfc2l6ZSAgICAgICAgICA9IDE2Mzg0LAog ICAgICAgICAgICAgICAgLm5tX2ZyYW1lX25yICAgICAgICAgICAgPSA2NCAqIGJsb2NrX3NpemUg LyAxNjM4NCwKICAgICAgICB9OwogICAgICAgIHVuc2lnbmVkIGludCByaW5nX3NpemU7CglpbnQg ZmQ7CgoJZmQgPSBzb2NrZXQoQUZfTkVUTElOSywgU09DS19SQVcsIE5FVExJTktfR0VORVJJQyk7 CiAgICAgICAgaWYgKHNldHNvY2tvcHQoZmQsIFNPTF9ORVRMSU5LLCBORVRMSU5LX1JYX1JJTkcs ICZyZXEsIHNpemVvZihyZXEpKSA8IDApCiAgICAgICAgICAgICAgICBleGl0KDEpOwogICAgICAg IGlmIChzZXRzb2Nrb3B0KGZkLCBTT0xfTkVUTElOSywgTkVUTElOS19UWF9SSU5HLCAmcmVxLCBz aXplb2YocmVxKSkgPCAwKQogICAgICAgICAgICAgICAgZXhpdCgxKTsKCglyaW5nX3NpemUgPSBy ZXEubm1fYmxvY2tfbnIgKiByZXEubm1fYmxvY2tfc2l6ZTsKCW1tYXAoTlVMTCwgMiAqIHJpbmdf c2l6ZSwgUFJPVF9SRUFEfFBST1RfV1JJVEUsIE1BUF9TSEFSRUQsIGZkLCAwKTsKCXJldHVybiAw Owp9CgorKysgZXhpdGVkIHdpdGggMCArKysKQlVHOiBzbGVlcGluZyBmdW5jdGlvbiBjYWxsZWQg ZnJvbSBpbnZhbGlkIGNvbnRleHQgYXQgL2hvbWUva2FzL2dpdC9wdWJsaWMvbGludXgtbW0va2Vy bmVsL2xvY2tpbmcvbXV0ZXguYzo2MTYKaW5fYXRvbWljKCk6IDEsIGlycXNfZGlzYWJsZWQoKTog MCwgcGlkOiAxLCBuYW1lOiBpbml0CjMgbG9ja3MgaGVsZCBieSBpbml0LzE6CiAjMDogIChyZWJv b3RfbXV0ZXgpeysuKy4uLn0sIGF0OiBbPGZmZmZmZmZmODEwODA5NTk+XSBTeVNfcmVib290KzB4 YTkvMHgyMjAKICMxOiAgKChyZWJvb3Rfbm90aWZpZXJfbGlzdCkucndzZW0pey4rLisuLn0sIGF0 OiBbPGZmZmZmZmZmODEwN2YzNzk+XSBfX2Jsb2NraW5nX25vdGlmaWVyX2NhbGxfY2hhaW4rMHgz OS8weDcwCiAjMjogIChyY3VfY2FsbGJhY2spey4uLi4uLn0sIGF0OiBbPGZmZmZmZmZmODEwZDMy ZTA+XSByY3VfZG9fYmF0Y2guaXNyYS40OSsweDE2MC8weDEwYzAKUHJlZW1wdGlvbiBkaXNhYmxl ZCBhdDpbPGZmZmZmZmZmODE0NTM2NWY+XSBfX2RlbGF5KzB4Zi8weDIwCgpDUFU6IDEgUElEOiAx IENvbW06IGluaXQgTm90IHRhaW50ZWQgNC4xLjAtMDAwMDktZ2JkZGY0YzQ4MThlMCAjMjUzCkhh cmR3YXJlIG5hbWU6IFFFTVUgU3RhbmRhcmQgUEMgKFEzNSArIElDSDksIDIwMDkpLCBCSU9TIERl Ymlhbi0xLjguMi0xIDA0LzAxLzIwMTQKIGZmZmY4ODAxN2IzZDgwMDAgZmZmZjg4MDI3YmMwM2Mz OCBmZmZmZmZmZjgxOTI5Y2ViIDAwMDAwMDAwMDAwMDAxMDIKIDAwMDAwMDAwMDAwMDAwMDAgZmZm Zjg4MDI3YmMwM2M2OCBmZmZmZmZmZjgxMDg1YTlkIDAwMDAwMDAwMDAwMDAwMDIKIGZmZmZmZmZm ODFjYTJhMjAgMDAwMDAwMDAwMDAwMDI2OCAwMDAwMDAwMDAwMDAwMDAwIGZmZmY4ODAyN2JjMDNj OTgKQ2FsbCBUcmFjZToKIDxJUlE+ICBbPGZmZmZmZmZmODE5MjljZWI+XSBkdW1wX3N0YWNrKzB4 NGYvMHg3YgogWzxmZmZmZmZmZjgxMDg1YTlkPl0gX19fbWlnaHRfc2xlZXArMHgxNmQvMHgyNzAK IFs8ZmZmZmZmZmY4MTA4NWJlZD5dIF9fbWlnaHRfc2xlZXArMHg0ZC8weDkwCiBbPGZmZmZmZmZm ODE5MmU5NmY+XSBtdXRleF9sb2NrX25lc3RlZCsweDJmLzB4NDMwCiBbPGZmZmZmZmZmODE5MzJm ZWQ+XSA/IF9yYXdfc3Bpbl91bmxvY2tfaXJxcmVzdG9yZSsweDVkLzB4ODAKIFs8ZmZmZmZmZmY4 MTQ2NDE0Mz5dID8gX190aGlzX2NwdV9wcmVlbXB0X2NoZWNrKzB4MTMvMHgyMAogWzxmZmZmZmZm ZjgxODJmYzNkPl0gbmV0bGlua19zZXRfcmluZysweDFlZC8weDM1MAogWzxmZmZmZmZmZjgxODJl MDAwPl0gPyBuZXRsaW5rX3VuZG9fYmluZCsweDcwLzB4NzAKIFs8ZmZmZmZmZmY4MTgyZmUyMD5d IG5ldGxpbmtfc29ja19kZXN0cnVjdCsweDgwLzB4MTUwCiBbPGZmZmZmZmZmODE3ZTQ4NGQ+XSBf X3NrX2ZyZWUrMHgxZC8weDE2MAogWzxmZmZmZmZmZjgxN2U0OWE5Pl0gc2tfZnJlZSsweDE5LzB4 MjAKWy4uXQoKQ29uZyBXYW5nIHNheXM6CgpXZSBjYW4ndCBob2xkIG11dGV4IGxvY2sgaW4gYSBy Y3UgY2FsbGJhY2ssIFsuLl0KClRob21hcyBHcmFmIHNheXM6CgpUaGUgc29ja2V0IHNob3VsZCBi ZSBkZWFkIGF0IHRoaXMgcG9pbnQuIEl0IG1pZ2h0IGJlIHNpbXBsZXIgdG8KYWRkIGEgbmV0bGlu a19yZWxlYXNlX3JpbmcoKSBmdW5jdGlvbiB3aGljaCBkb2Vzbid0IHJlcXVpcmUKbG9ja2luZyBh dCBhbGwuCgpSZXBvcnRlZC1ieTogIktpcmlsbCBBLiBTaHV0ZW1vdiIgPGtpcmlsbEBzaHV0ZW1v di5uYW1lPgpEaWFnbm9zZWQtYnk6IENvbmcgV2FuZyA8Y3dhbmdAdHdvcGVuc291cmNlLmNvbT4K U3VnZ2VzdGVkLWJ5OiBUaG9tYXMgR3JhZiA8dGdyYWZAc3V1Zy5jaD4KU2lnbmVkLW9mZi1ieTog RmxvcmlhbiBXZXN0cGhhbCA8ZndAc3RybGVuLmRlPgpTaWduZWQtb2ZmLWJ5OiBEYXZpZCBTLiBN aWxsZXIgPGRhdmVtQGRhdmVtbG9mdC5uZXQ+Ci0tLQogbmV0L25ldGxpbmsvYWZfbmV0bGluay5j IHwgNzkgKysrKysrKysrKysrKysrKysrKysrKysrKysrKy0tLS0tLS0tLS0tLS0tLS0tLS0tCiAx IGZpbGUgY2hhbmdlZCwgNDcgaW5zZXJ0aW9ucygrKSwgMzIgZGVsZXRpb25zKC0pCgpkaWZmIC0t Z2l0IGEvbmV0L25ldGxpbmsvYWZfbmV0bGluay5jIGIvbmV0L25ldGxpbmsvYWZfbmV0bGluay5j CmluZGV4IGM4MmIyZTMuLjZmZmQxZWIgMTAwNjQ0Ci0tLSBhL25ldC9uZXRsaW5rL2FmX25ldGxp bmsuYworKysgYi9uZXQvbmV0bGluay9hZl9uZXRsaW5rLmMKQEAgLTM2NiwyNSArMzY2LDUyIEBA IGVycjE6CiAJcmV0dXJuIE5VTEw7CiB9CiAKKworc3RhdGljIHZvaWQKK19fbmV0bGlua19zZXRf cmluZyhzdHJ1Y3Qgc29jayAqc2ssIHN0cnVjdCBubF9tbWFwX3JlcSAqcmVxLCBib29sIHR4X3Jp bmcsIHZvaWQgKipwZ192ZWMsCisJCSAgIHVuc2lnbmVkIGludCBvcmRlcikKK3sKKwlzdHJ1Y3Qg bmV0bGlua19zb2NrICpubGsgPSBubGtfc2soc2spOworCXN0cnVjdCBza19idWZmX2hlYWQgKnF1 ZXVlOworCXN0cnVjdCBuZXRsaW5rX3JpbmcgKnJpbmc7CisKKwlxdWV1ZSA9IHR4X3JpbmcgPyAm c2stPnNrX3dyaXRlX3F1ZXVlIDogJnNrLT5za19yZWNlaXZlX3F1ZXVlOworCXJpbmcgID0gdHhf cmluZyA/ICZubGstPnR4X3JpbmcgOiAmbmxrLT5yeF9yaW5nOworCisJc3Bpbl9sb2NrX2JoKCZx dWV1ZS0+bG9jayk7CisKKwlyaW5nLT5mcmFtZV9tYXgJCT0gcmVxLT5ubV9mcmFtZV9uciAtIDE7 CisJcmluZy0+aGVhZAkJPSAwOworCXJpbmctPmZyYW1lX3NpemUJPSByZXEtPm5tX2ZyYW1lX3Np emU7CisJcmluZy0+cGdfdmVjX3BhZ2VzCT0gcmVxLT5ubV9ibG9ja19zaXplIC8gUEFHRV9TSVpF OworCisJc3dhcChyaW5nLT5wZ192ZWNfbGVuLCByZXEtPm5tX2Jsb2NrX25yKTsKKwlzd2FwKHJp bmctPnBnX3ZlY19vcmRlciwgb3JkZXIpOworCXN3YXAocmluZy0+cGdfdmVjLCBwZ192ZWMpOwor CisJX19za2JfcXVldWVfcHVyZ2UocXVldWUpOworCXNwaW5fdW5sb2NrX2JoKCZxdWV1ZS0+bG9j ayk7CisKKwlXQVJOX09OKGF0b21pY19yZWFkKCZubGstPm1hcHBlZCkpOworCisJaWYgKHBnX3Zl YykKKwkJZnJlZV9wZ192ZWMocGdfdmVjLCBvcmRlciwgcmVxLT5ubV9ibG9ja19ucik7Cit9CisK IHN0YXRpYyBpbnQgbmV0bGlua19zZXRfcmluZyhzdHJ1Y3Qgc29jayAqc2ssIHN0cnVjdCBubF9t bWFwX3JlcSAqcmVxLAotCQkJICAgIGJvb2wgY2xvc2luZywgYm9vbCB0eF9yaW5nKQorCQkJICAg IGJvb2wgdHhfcmluZykKIHsKIAlzdHJ1Y3QgbmV0bGlua19zb2NrICpubGsgPSBubGtfc2soc2sp OwogCXN0cnVjdCBuZXRsaW5rX3JpbmcgKnJpbmc7Ci0Jc3RydWN0IHNrX2J1ZmZfaGVhZCAqcXVl dWU7CiAJdm9pZCAqKnBnX3ZlYyA9IE5VTEw7CiAJdW5zaWduZWQgaW50IG9yZGVyID0gMDsKLQlp bnQgZXJyOwogCiAJcmluZyAgPSB0eF9yaW5nID8gJm5say0+dHhfcmluZyA6ICZubGstPnJ4X3Jp bmc7Ci0JcXVldWUgPSB0eF9yaW5nID8gJnNrLT5za193cml0ZV9xdWV1ZSA6ICZzay0+c2tfcmVj ZWl2ZV9xdWV1ZTsKIAotCWlmICghY2xvc2luZykgewotCQlpZiAoYXRvbWljX3JlYWQoJm5say0+ bWFwcGVkKSkKLQkJCXJldHVybiAtRUJVU1k7Ci0JCWlmIChhdG9taWNfcmVhZCgmcmluZy0+cGVu ZGluZykpCi0JCQlyZXR1cm4gLUVCVVNZOwotCX0KKwlpZiAoYXRvbWljX3JlYWQoJm5say0+bWFw cGVkKSkKKwkJcmV0dXJuIC1FQlVTWTsKKwlpZiAoYXRvbWljX3JlYWQoJnJpbmctPnBlbmRpbmcp KQorCQlyZXR1cm4gLUVCVVNZOwogCiAJaWYgKHJlcS0+bm1fYmxvY2tfbnIpIHsKIAkJaWYgKHJp bmctPnBnX3ZlYyAhPSBOVUxMKQpAQCAtNDE2LDMxICs0NDMsMTkgQEAgc3RhdGljIGludCBuZXRs aW5rX3NldF9yaW5nKHN0cnVjdCBzb2NrICpzaywgc3RydWN0IG5sX21tYXBfcmVxICpyZXEsCiAJ CQlyZXR1cm4gLUVJTlZBTDsKIAl9CiAKLQllcnIgPSAtRUJVU1k7CiAJbXV0ZXhfbG9jaygmbmxr LT5wZ192ZWNfbG9jayk7Ci0JaWYgKGNsb3NpbmcgfHwgYXRvbWljX3JlYWQoJm5say0+bWFwcGVk KSA9PSAwKSB7Ci0JCWVyciA9IDA7Ci0JCXNwaW5fbG9ja19iaCgmcXVldWUtPmxvY2spOwotCi0J CXJpbmctPmZyYW1lX21heAkJPSByZXEtPm5tX2ZyYW1lX25yIC0gMTsKLQkJcmluZy0+aGVhZAkJ PSAwOwotCQlyaW5nLT5mcmFtZV9zaXplCT0gcmVxLT5ubV9mcmFtZV9zaXplOwotCQlyaW5nLT5w Z192ZWNfcGFnZXMJPSByZXEtPm5tX2Jsb2NrX3NpemUgLyBQQUdFX1NJWkU7Ci0KLQkJc3dhcChy aW5nLT5wZ192ZWNfbGVuLCByZXEtPm5tX2Jsb2NrX25yKTsKLQkJc3dhcChyaW5nLT5wZ192ZWNf b3JkZXIsIG9yZGVyKTsKLQkJc3dhcChyaW5nLT5wZ192ZWMsIHBnX3ZlYyk7Ci0KLQkJX19za2Jf cXVldWVfcHVyZ2UocXVldWUpOwotCQlzcGluX3VubG9ja19iaCgmcXVldWUtPmxvY2spOwotCi0J CVdBUk5fT04oYXRvbWljX3JlYWQoJm5say0+bWFwcGVkKSk7CisJaWYgKGF0b21pY19yZWFkKCZu bGstPm1hcHBlZCkgPT0gMCkgeworCQlfX25ldGxpbmtfc2V0X3Jpbmcoc2ssIHJlcSwgdHhfcmlu ZywgcGdfdmVjLCBvcmRlcik7CisJCW11dGV4X3VubG9jaygmbmxrLT5wZ192ZWNfbG9jayk7CisJ CXJldHVybiAwOwogCX0KKwogCW11dGV4X3VubG9jaygmbmxrLT5wZ192ZWNfbG9jayk7CiAKIAlp ZiAocGdfdmVjKQogCQlmcmVlX3BnX3ZlYyhwZ192ZWMsIG9yZGVyLCByZXEtPm5tX2Jsb2NrX25y KTsKLQlyZXR1cm4gZXJyOworCisJcmV0dXJuIC1FQlVTWTsKIH0KIAogc3RhdGljIHZvaWQgbmV0 bGlua19tbV9vcGVuKHN0cnVjdCB2bV9hcmVhX3N0cnVjdCAqdm1hKQpAQCAtOTA5LDEwICs5MjQs MTAgQEAgc3RhdGljIHZvaWQgbmV0bGlua19zb2NrX2Rlc3RydWN0KHN0cnVjdCBzb2NrICpzaykK IAogCQltZW1zZXQoJnJlcSwgMCwgc2l6ZW9mKHJlcSkpOwogCQlpZiAobmxrLT5yeF9yaW5nLnBn X3ZlYykKLQkJCW5ldGxpbmtfc2V0X3Jpbmcoc2ssICZyZXEsIHRydWUsIGZhbHNlKTsKKwkJCV9f bmV0bGlua19zZXRfcmluZyhzaywgJnJlcSwgZmFsc2UsIE5VTEwsIDApOwogCQltZW1zZXQoJnJl cSwgMCwgc2l6ZW9mKHJlcSkpOwogCQlpZiAobmxrLT50eF9yaW5nLnBnX3ZlYykKLQkJCW5ldGxp bmtfc2V0X3Jpbmcoc2ssICZyZXEsIHRydWUsIHRydWUpOworCQkJX19uZXRsaW5rX3NldF9yaW5n KHNrLCAmcmVxLCB0cnVlLCBOVUxMLCAwKTsKIAl9CiAjZW5kaWYgLyogQ09ORklHX05FVExJTktf TU1BUCAqLwogCkBAIC0yMTYzLDcgKzIxNzgsNyBAQCBzdGF0aWMgaW50IG5ldGxpbmtfc2V0c29j a29wdChzdHJ1Y3Qgc29ja2V0ICpzb2NrLCBpbnQgbGV2ZWwsIGludCBvcHRuYW1lLAogCQkJcmV0 dXJuIC1FSU5WQUw7CiAJCWlmIChjb3B5X2Zyb21fdXNlcigmcmVxLCBvcHR2YWwsIHNpemVvZihy ZXEpKSkKIAkJCXJldHVybiAtRUZBVUxUOwotCQllcnIgPSBuZXRsaW5rX3NldF9yaW5nKHNrLCAm cmVxLCBmYWxzZSwKKwkJZXJyID0gbmV0bGlua19zZXRfcmluZyhzaywgJnJlcSwKIAkJCQkgICAg ICAgb3B0bmFtZSA9PSBORVRMSU5LX1RYX1JJTkcpOwogCQlicmVhazsKIAl9Ci0tIAoyLjEuMAoK CkZyb20gMDY0YmY0OTI0Yjg3ZDE1M2Q5OWIwYWZhZjRlMGYyZDdkOTVjNTc1MSBNb24gU2VwIDE3 IDAwOjAwOjAwIDIwMDEKRnJvbTogTmlrb2xheSBBbGVrc2FuZHJvdiA8bmlrb2xheUBjdW11bHVz bmV0d29ya3MuY29tPgpEYXRlOiBXZWQsIDIyIEp1bCAyMDE1IDEzOjAzOjQwICswMjAwClN1Ympl Y3Q6IFtQQVRDSCAyNS8zMl0gYnJpZGdlOiBuZXRsaW5rOiBmaXggc2xhdmVfY2hhbmdlbGluay9i cl9zZXRwb3J0IHJhY2UKIGNvbmRpdGlvbnMKClsgVXBzdHJlYW0gY29tbWl0IDk2M2FkOTQ4NTMw MDBhYjEwMGY1ZmYxOWVlYTgwMDk1NjYwZDQxYjQgXQoKU2luY2Ugc2xhdmVfY2hhbmdlbGluayBz dXBwb3J0IHdhcyBhZGRlZCB0aGVyZSBoYXZlIGJlZW4gYSBmZXcgcmFjZQpjb25kaXRpb25zIHdo ZW4gdXNpbmcgYnJfc2V0cG9ydCgpIHNpbmNlIHNvbWUgb2YgdGhlIHBvcnQgZnVuY3Rpb25zIGl0 CnVzZXMgcmVxdWlyZSB0aGUgYnJpZGdlIGxvY2suIEl0IGlzIHZlcnkgZWFzeSB0byB0cmlnZ2Vy IGEgbG9ja3VwIGR1ZSB0bwpzb21lIGludGVybmFsIHNwaW5fbG9jaygpIHVzYWdlIHdpdGhvdXQg YmggZGlzYWJsZWQsIGFsc28gaXQncyBwb3NzaWJsZSB0bwpnZXQgdGhlIGJyaWRnZSBpbnRvIGFu IGluY29uc2lzdGVudCBzdGF0ZS4KClNpZ25lZC1vZmYtYnk6IE5pa29sYXkgQWxla3NhbmRyb3Yg PG5pa29sYXlAY3VtdWx1c25ldHdvcmtzLmNvbT4KRml4ZXM6IDNhYzYzNmI4NTkxYyAoImJyaWRn ZTogaW1wbGVtZW50IHJ0bmxfbGlua19vcHMtPnNsYXZlX2NoYW5nZWxpbmsiKQpSZXZpZXdlZC1i eTogSmlyaSBQaXJrbyA8amlyaUByZXNudWxsaS51cz4KU2lnbmVkLW9mZi1ieTogRGF2aWQgUy4g TWlsbGVyIDxkYXZlbUBkYXZlbWxvZnQubmV0PgotLS0KIG5ldC9icmlkZ2UvYnJfbmV0bGluay5j IHwgMTAgKysrKysrKysrLQogMSBmaWxlIGNoYW5nZWQsIDkgaW5zZXJ0aW9ucygrKSwgMSBkZWxl dGlvbigtKQoKZGlmZiAtLWdpdCBhL25ldC9icmlkZ2UvYnJfbmV0bGluay5jIGIvbmV0L2JyaWRn ZS9icl9uZXRsaW5rLmMKaW5kZXggZTVlYzQ3MC4uMzY1OWY5MCAxMDA2NDQKLS0tIGEvbmV0L2Jy aWRnZS9icl9uZXRsaW5rLmMKKysrIGIvbmV0L2JyaWRnZS9icl9uZXRsaW5rLmMKQEAgLTQ2NCw5 ICs0NjQsMTcgQEAgc3RhdGljIGludCBicl9wb3J0X3NsYXZlX2NoYW5nZWxpbmsoc3RydWN0IG5l dF9kZXZpY2UgKmJyZGV2LAogCQkJCSAgICBzdHJ1Y3QgbmxhdHRyICp0YltdLAogCQkJCSAgICBz dHJ1Y3QgbmxhdHRyICpkYXRhW10pCiB7CisJc3RydWN0IG5ldF9icmlkZ2UgKmJyID0gbmV0ZGV2 X3ByaXYoYnJkZXYpOworCWludCByZXQ7CisKIAlpZiAoIWRhdGEpCiAJCXJldHVybiAwOwotCXJl dHVybiBicl9zZXRwb3J0KGJyX3BvcnRfZ2V0X3J0bmwoZGV2KSwgZGF0YSk7CisKKwlzcGluX2xv Y2tfYmgoJmJyLT5sb2NrKTsKKwlyZXQgPSBicl9zZXRwb3J0KGJyX3BvcnRfZ2V0X3J0bmwoZGV2 KSwgZGF0YSk7CisJc3Bpbl91bmxvY2tfYmgoJmJyLT5sb2NrKTsKKworCXJldHVybiByZXQ7CiB9 CiAKIHN0YXRpYyBpbnQgYnJfcG9ydF9maWxsX3NsYXZlX2luZm8oc3RydWN0IHNrX2J1ZmYgKnNr YiwKLS0gCjIuMS4wCgoKRnJvbSBiOTk0OTA5NjE4YWMzMDU1MTVmMGJiOTZhOTFjMjQwMzMyNzE4 NTlhIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBKYWNrIE1vcmdlbnN0ZWluIDxqYWNr bUBkZXYubWVsbGFub3guY28uaWw+CkRhdGU6IFdlZCwgMjIgSnVsIDIwMTUgMTY6NTM6NDcgKzAz MDAKU3ViamVjdDogW1BBVENIIDI2LzMyXSBuZXQvbWx4NF9jb3JlOiBGaXggd3JvbmcgaW5kZXgg aW4gcHJvcGFnYXRpbmcgcG9ydAogY2hhbmdlIGV2ZW50IHRvIFZGcwoKWyBVcHN0cmVhbSBjb21t aXQgMWMxYmYzNDk1MWU4ZDE3OTQxYmY3MDhkMTkwMWM0N2U4MWIxNWQ1NSBdCgpUaGUgcG9ydC1j aGFuZ2UgZXZlbnQgcHJvY2Vzc2luZyBpbiBwcm9jZWR1cmUgbWx4NF9lcV9pbnQoKSB1c2VzICJz bGF2ZSIKYXMgdGhlIHZmX29wZXIgYXJyYXkgaW5kZXguIFNpbmNlIHRoZSB2YWx1ZSBvZiAic2xh dmUiIGlzIHRoZSBQRiBmdW5jdGlvbgppbmRleCwgdGhlIHJlc3VsdCBpcyB0aGF0IHRoZSBQRiBs aW5rIHN0YXRlIGlzIHVzZWQgZm9yIGRlY2lkaW5nIHRvCnByb3BhZ2F0ZSB0aGUgZXZlbnQgZm9y IGFsbCB0aGUgVkZzLiBUaGUgVkYgbGluayBzdGF0ZSBzaG91bGQgYmUgdXNlZCwKc28gdGhlIFZG IGZ1bmN0aW9uIGluZGV4IHNob3VsZCBiZSB1c2VkIGhlcmUuCgpGaXhlczogOTQ4ZTMwNmQ3ZDY0 ICgnbmV0L21seDQ6IEFkZCBWRiBsaW5rIHN0YXRlIHN1cHBvcnQnKQpTaWduZWQtb2ZmLWJ5OiBK YWNrIE1vcmdlbnN0ZWluIDxqYWNrbUBkZXYubWVsbGFub3guY28uaWw+ClNpZ25lZC1vZmYtYnk6 IE1hdGFuIEJhcmFrIDxtYXRhbmJAbWVsbGFub3guY29tPgpTaWduZWQtb2ZmLWJ5OiBPciBHZXJs aXR6IDxvZ2VybGl0ekBtZWxsYW5veC5jb20+ClNpZ25lZC1vZmYtYnk6IERhdmlkIFMuIE1pbGxl ciA8ZGF2ZW1AZGF2ZW1sb2Z0Lm5ldD4KLS0tCiBkcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5v eC9tbHg0L2VxLmMgfCA0ICsrLS0KIDEgZmlsZSBjaGFuZ2VkLCAyIGluc2VydGlvbnMoKyksIDIg ZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gv bWx4NC9lcS5jIGIvZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NC9lcS5jCmluZGV4 IDQ5MjkwYTQuLmFmNjdlN2QgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxh bm94L21seDQvZXEuYworKysgYi9kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg0L2Vx LmMKQEAgLTU2OCw3ICs1NjgsNyBAQCBzdGF0aWMgaW50IG1seDRfZXFfaW50KHN0cnVjdCBtbHg0 X2RldiAqZGV2LCBzdHJ1Y3QgbWx4NF9lcSAqZXEpCiAJCQkJCQkJY29udGludWU7CiAJCQkJCQlt bHg0X2RiZyhkZXYsICIlczogU2VuZGluZyBNTFg0X1BPUlRfQ0hBTkdFX1NVQlRZUEVfRE9XTiB0 byBzbGF2ZTogJWQsIHBvcnQ6JWRcbiIsCiAJCQkJCQkJIF9fZnVuY19fLCBpLCBwb3J0KTsKLQkJ CQkJCXNfaW5mbyA9ICZwcml2LT5tZnVuYy5tYXN0ZXIudmZfb3BlcltzbGF2ZV0udnBvcnRbcG9y dF0uc3RhdGU7CisJCQkJCQlzX2luZm8gPSAmcHJpdi0+bWZ1bmMubWFzdGVyLnZmX29wZXJbaV0u dnBvcnRbcG9ydF0uc3RhdGU7CiAJCQkJCQlpZiAoSUZMQV9WRl9MSU5LX1NUQVRFX0FVVE8gPT0g c19pbmZvLT5saW5rX3N0YXRlKSB7CiAJCQkJCQkJZXFlLT5ldmVudC5wb3J0X2NoYW5nZS5wb3J0 ID0KIAkJCQkJCQkJY3B1X3RvX2JlMzIoCkBAIC02MDEsNyArNjAxLDcgQEAgc3RhdGljIGludCBt bHg0X2VxX2ludChzdHJ1Y3QgbWx4NF9kZXYgKmRldiwgc3RydWN0IG1seDRfZXEgKmVxKQogCQkJ CQkJCWNvbnRpbnVlOwogCQkJCQkJaWYgKGkgPT0gbWx4NF9tYXN0ZXJfZnVuY19udW0oZGV2KSkK IAkJCQkJCQljb250aW51ZTsKLQkJCQkJCXNfaW5mbyA9ICZwcml2LT5tZnVuYy5tYXN0ZXIudmZf b3BlcltzbGF2ZV0udnBvcnRbcG9ydF0uc3RhdGU7CisJCQkJCQlzX2luZm8gPSAmcHJpdi0+bWZ1 bmMubWFzdGVyLnZmX29wZXJbaV0udnBvcnRbcG9ydF0uc3RhdGU7CiAJCQkJCQlpZiAoSUZMQV9W Rl9MSU5LX1NUQVRFX0FVVE8gPT0gc19pbmZvLT5saW5rX3N0YXRlKSB7CiAJCQkJCQkJZXFlLT5l dmVudC5wb3J0X2NoYW5nZS5wb3J0ID0KIAkJCQkJCQkJY3B1X3RvX2JlMzIoCi0tIAoyLjEuMAoK CkZyb20gYTU3NTI1ODI1NjJhYWQwNGYxODYwODU4MGNkMjA5ZDNmODJhZmNhYyBNb24gU2VwIDE3 IDAwOjAwOjAwIDIwMDEKRnJvbTogTGFycyBXZXN0ZXJob2ZmIDxsYXJzLndlc3RlcmhvZmZAbmV3 dGVjLmV1PgpEYXRlOiBUdWUsIDI4IEp1bCAyMDE1IDAxOjMyOjIxICswMzAwClN1YmplY3Q6IFtQ QVRDSCAyNy8zMl0gcGFja2V0OiBtaXNzaW5nIGRldl9wdXQoKSBpbiBwYWNrZXRfZG9fYmluZCgp CgpbIFVwc3RyZWFtIGNvbW1pdCAxNThjZDRhZjhkZWRiZGEwZDYxMmQ0NDhjNzI0YzcxNWQwZGRh NjQ5IF0KCldoZW4gYmluZGluZyBhIFBGX1BBQ0tFVCBzb2NrZXQsIHRoZSB1c2UgY291bnQgb2Yg dGhlIGJvdW5kIGludGVyZmFjZSBpcwphbHdheXMgaW5jcmVhc2VkIHdpdGggZGV2X2hvbGQgaW4g ZGV2X2dldF9ieV97aW5kZXgsbmFtZX0uICBIb3dldmVyLAp3aGVuIHJlYm91bmQgd2l0aCB0aGUg c2FtZSBwcm90b2NvbCBhbmQgZGV2aWNlIGFzIGluIHRoZSBwcmV2aW91cyBiaW5kCnRoZSB1c2Ug Y291bnQgb2YgdGhlIGludGVyZmFjZSB3YXMgbm90IGRlY3JlYXNlZC4gIFVsdGltYXRlbHksIHRo aXMKY2F1c2VkIHRoZSBkZWxldGlvbiBvZiB0aGUgaW50ZXJmYWNlIHRvIGZhaWwgd2l0aCB0aGUg Zm9sbG93aW5nIG1lc3NhZ2U6Cgp1bnJlZ2lzdGVyX25ldGRldmljZTogd2FpdGluZyBmb3IgZHVt bXkwIHRvIGJlY29tZSBmcmVlLiBVc2FnZSBjb3VudCA9IDEKClRoaXMgcGF0Y2ggbW92ZXMgdGhl IGRldl9wdXQgb3V0IG9mIHRoZSBjb25kaXRpb25hbCBwYXJ0IHRoYXQgd2FzIG9ubHkKZXhlY3V0 ZWQgd2hlbiBlaXRoZXIgdGhlIHByb3RvY29sIG9yIGRldmljZSBjaGFuZ2VkIG9uIGEgYmluZC4K CkZpeGVzOiA5MDJmZWZiODJlZjcgKCdwYWNrZXQ6IGltcHJvdmUgc29ja2V0IGNyZWF0ZS9iaW5k IGxhdGVuY3kgaW4gc29tZSBjYXNlcycpClNpZ25lZC1vZmYtYnk6IExhcnMgV2VzdGVyaG9mZiA8 bGFycy53ZXN0ZXJob2ZmQG5ld3RlYy5ldT4KU2lnbmVkLW9mZi1ieTogRGFuIENhcnBlbnRlciA8 ZGFuLmNhcnBlbnRlckBvcmFjbGUuY29tPgpSZXZpZXdlZC1ieTogRGFuaWVsIEJvcmttYW5uIDxk Ym9ya21hbkByZWRoYXQuY29tPgpTaWduZWQtb2ZmLWJ5OiBEYXZpZCBTLiBNaWxsZXIgPGRhdmVt QGRhdmVtbG9mdC5uZXQ+Ci0tLQogbmV0L3BhY2tldC9hZl9wYWNrZXQuYyB8IDggKysrLS0tLS0K IDEgZmlsZSBjaGFuZ2VkLCAzIGluc2VydGlvbnMoKyksIDUgZGVsZXRpb25zKC0pCgpkaWZmIC0t Z2l0IGEvbmV0L3BhY2tldC9hZl9wYWNrZXQuYyBiL25ldC9wYWNrZXQvYWZfcGFja2V0LmMKaW5k ZXggNWRjZmUwNS4uYmY2MDk3NyAxMDA2NDQKLS0tIGEvbmV0L3BhY2tldC9hZl9wYWNrZXQuYwor KysgYi9uZXQvcGFja2V0L2FmX3BhY2tldC5jCkBAIC0yNjQ1LDcgKzI2NDUsNyBAQCBzdGF0aWMg aW50IHBhY2tldF9yZWxlYXNlKHN0cnVjdCBzb2NrZXQgKnNvY2spCiBzdGF0aWMgaW50IHBhY2tl dF9kb19iaW5kKHN0cnVjdCBzb2NrICpzaywgc3RydWN0IG5ldF9kZXZpY2UgKmRldiwgX19iZTE2 IHByb3RvKQogewogCXN0cnVjdCBwYWNrZXRfc29jayAqcG8gPSBwa3Rfc2soc2spOwotCWNvbnN0 IHN0cnVjdCBuZXRfZGV2aWNlICpkZXZfY3VycjsKKwlzdHJ1Y3QgbmV0X2RldmljZSAqZGV2X2N1 cnI7CiAJX19iZTE2IHByb3RvX2N1cnI7CiAJYm9vbCBuZWVkX3JlaG9vazsKIApAQCAtMjY2OSwx NSArMjY2OSwxMyBAQCBzdGF0aWMgaW50IHBhY2tldF9kb19iaW5kKHN0cnVjdCBzb2NrICpzaywg c3RydWN0IG5ldF9kZXZpY2UgKmRldiwgX19iZTE2IHByb3RvKQogCiAJCXBvLT5udW0gPSBwcm90 bzsKIAkJcG8tPnByb3RfaG9vay50eXBlID0gcHJvdG87Ci0KLQkJaWYgKHBvLT5wcm90X2hvb2su ZGV2KQotCQkJZGV2X3B1dChwby0+cHJvdF9ob29rLmRldik7Ci0KIAkJcG8tPnByb3RfaG9vay5k ZXYgPSBkZXY7CiAKIAkJcG8tPmlmaW5kZXggPSBkZXYgPyBkZXYtPmlmaW5kZXggOiAwOwogCQlw YWNrZXRfY2FjaGVkX2Rldl9hc3NpZ24ocG8sIGRldik7CiAJfQorCWlmIChkZXZfY3VycikKKwkJ ZGV2X3B1dChkZXZfY3Vycik7CiAKIAlpZiAocHJvdG8gPT0gMCB8fCAhbmVlZF9yZWhvb2spCiAJ CWdvdG8gb3V0X3VubG9jazsKLS0gCjIuMS4wCgoKRnJvbSA1ZWMyMmRkMWZlN2RmZDZhNjVlZDZh ZDk5ODMzMDFiYThlYTJmNTI5IE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBBbGV4YW5k ZXIgRHJvemRvdiA8YWwuZHJvemRvdkBnbWFpbC5jb20+CkRhdGU6IFR1ZSwgMjggSnVsIDIwMTUg MTM6NTc6MDEgKzAzMDAKU3ViamVjdDogW1BBVENIIDI4LzMyXSBwYWNrZXQ6IHRwYWNrZXRfc25k KCk6IGZpeCBzaWduZWQvdW5zaWduZWQgY29tcGFyaXNvbgoKWyBVcHN0cmVhbSBjb21taXQgZGJk NDZhYjQxMmI4ZmIzOTVmMmIwZmY2ZjZhN2VlYzlkZjMxMTU1MCBdCgp0cGFja2V0X2ZpbGxfc2ti KCkgY2FuIHJldHVybiBhIG5lZ2F0aXZlIHZhbHVlICgtZXJybm8pIHdoaWNoCmlzIHN0b3JlZCBp biB0cF9sZW4gdmFyaWFibGUuIEluIHRoYXQgY2FzZSB0aGUgZm9sbG93aW5nCmNvbmRpdGlvbiB3 aWxsIGJlIChidXQgc2hvdWxkbid0IGJlKSB0cnVlOgoKdHBfbGVuID4gZGV2LT5tdHUgKyBkZXYt PmhhcmRfaGVhZGVyX2xlbgoKYXMgZGV2LT5tdHUgYW5kIGRldi0+aGFyZF9oZWFkZXJfbGVuIGFy ZSBib3RoIHVuc2lnbmVkLgoKVGhhdCBtYXkgbGVhZCB0byBqdXN0IHJldHVybmluZyBhbiBpbmNv cnJlY3QgRU1TR1NJWkUgZXJybm8KdG8gdGhlIHVzZXIuCgpGaXhlczogNTJmMTQ1NGY2MjlmYSAo InBhY2tldDogYWxsb3cgdG8gdHJhbnNtaXQgKzQgYnl0ZSBpbiBUWF9SSU5HIHNsb3QgZm9yIFZM QU4gY2FzZSIpClNpZ25lZC1vZmYtYnk6IEFsZXhhbmRlciBEcm96ZG92IDxhbC5kcm96ZG92QGdt YWlsLmNvbT4KQWNrZWQtYnk6IERhbmllbCBCb3JrbWFubiA8ZGFuaWVsQGlvZ2VhcmJveC5uZXQ+ ClNpZ25lZC1vZmYtYnk6IERhdmlkIFMuIE1pbGxlciA8ZGF2ZW1AZGF2ZW1sb2Z0Lm5ldD4KLS0t CiBuZXQvcGFja2V0L2FmX3BhY2tldC5jIHwgMyArKy0KIDEgZmlsZSBjaGFuZ2VkLCAyIGluc2Vy dGlvbnMoKyksIDEgZGVsZXRpb24oLSkKCmRpZmYgLS1naXQgYS9uZXQvcGFja2V0L2FmX3BhY2tl dC5jIGIvbmV0L3BhY2tldC9hZl9wYWNrZXQuYwppbmRleCBiZjYwOTc3Li43ODUyNTZmIDEwMDY0 NAotLS0gYS9uZXQvcGFja2V0L2FmX3BhY2tldC5jCisrKyBiL25ldC9wYWNrZXQvYWZfcGFja2V0 LmMKQEAgLTIyNzQsNyArMjI3NCw4IEBAIHN0YXRpYyBpbnQgdHBhY2tldF9zbmQoc3RydWN0IHBh Y2tldF9zb2NrICpwbywgc3RydWN0IG1zZ2hkciAqbXNnKQogCiAJCXRwX2xlbiA9IHRwYWNrZXRf ZmlsbF9za2IocG8sIHNrYiwgcGgsIGRldiwgc2l6ZV9tYXgsIHByb3RvLAogCQkJCQkgIGFkZHIs IGhsZW4pOwotCQlpZiAodHBfbGVuID4gZGV2LT5tdHUgKyBkZXYtPmhhcmRfaGVhZGVyX2xlbikg eworCQlpZiAobGlrZWx5KHRwX2xlbiA+PSAwKSAmJgorCQkgICAgdHBfbGVuID4gZGV2LT5tdHUg KyBkZXYtPmhhcmRfaGVhZGVyX2xlbikgewogCQkJc3RydWN0IGV0aGhkciAqZWhkcjsKIAkJCS8q IEVhcmxpZXIgY29kZSBhc3N1bWVkIHRoaXMgd291bGQgYmUgYSBWTEFOIHBrdCwKIAkJCSAqIGRv dWJsZS1jaGVjayB0aGlzIG5vdyB0aGF0IHdlIGhhdmUgdGhlIGFjdHVhbAotLSAKMi4xLjAKCgpG cm9tIGQ3NGUzNzFkYzI1ZDM1MmM0ZGQ5NDQ2ZGYyYmY0NmRkODBjZjBmNzEgTW9uIFNlcCAxNyAw MDowMDowMCAyMDAxCkZyb206IERhbmllbCBCb3JrbWFubiA8ZGFuaWVsQGlvZ2VhcmJveC5uZXQ+ CkRhdGU6IFdlZCwgMjkgSnVsIDIwMTUgMjM6MzU6MjUgKzAyMDAKU3ViamVjdDogW1BBVENIIDI5 LzMyXSBuZXQ6IHNjaGVkOiBmaXggcmVmY291bnQgaW1iYWxhbmNlIGluIGFjdGlvbnMKClsgVXBz dHJlYW0gY29tbWl0IDI4ZTZiNjdmMGIyOTJmNTU3NDY4YzEzOTA4NTMwM2IxNWYxYTY3OGYgXQoK U2luY2UgY29tbWl0IDU1MzM0YTVkYjVjZCAoIm5ldF9zY2hlZDogYWN0OiByZWZ1c2UgdG8gcmVt b3ZlIGJvdW5kIGFjdGlvbgpvdXRzaWRlIiksIHdlIGVuZCB1cCB3aXRoIGEgd3JvbmcgcmVmZXJl bmNlIGNvdW50IGZvciBhIHRjIGFjdGlvbi4KClRlc3QgY2FzZSAxOgoKICBGT089IjEsNiAwIDAg NDI5NDk2NzI5NSwiCiAgQkFSPSIxLDYgMCAwIDQyOTQ5NjcyOTQsIgogIHRjIGZpbHRlciBhZGQg ZGV2IGZvbyBwYXJlbnQgMTogYnBmIGJ5dGVjb2RlICIkRk9PIiBmbG93aWQgMToxIFwKICAgICBh Y3Rpb24gYnBmIGJ5dGVjb2RlICIkRk9PIgogIHRjIGFjdGlvbnMgc2hvdyBhY3Rpb24gYnBmCiAg ICBhY3Rpb24gb3JkZXIgMDogYnBmIGJ5dGVjb2RlICcxLDYgMCAwIDQyOTQ5NjcyOTUnIGRlZmF1 bHQtYWN0aW9uIHBpcGUKICAgIGluZGV4IDEgcmVmIDEgYmluZCAxCiAgdGMgYWN0aW9ucyByZXBs YWNlIGFjdGlvbiBicGYgYnl0ZWNvZGUgIiRCQVIiIGluZGV4IDEKICB0YyBhY3Rpb25zIHNob3cg YWN0aW9uIGJwZgogICAgYWN0aW9uIG9yZGVyIDA6IGJwZiBieXRlY29kZSAnMSw2IDAgMCA0Mjk0 OTY3Mjk0JyBkZWZhdWx0LWFjdGlvbiBwaXBlCiAgICBpbmRleCAxIHJlZiAyIGJpbmQgMQogIHRj IGFjdGlvbnMgcmVwbGFjZSBhY3Rpb24gYnBmIGJ5dGVjb2RlICIkRk9PIiBpbmRleCAxCiAgdGMg YWN0aW9ucyBzaG93IGFjdGlvbiBicGYKICAgIGFjdGlvbiBvcmRlciAwOiBicGYgYnl0ZWNvZGUg JzEsNiAwIDAgNDI5NDk2NzI5NScgZGVmYXVsdC1hY3Rpb24gcGlwZQogICAgaW5kZXggMSByZWYg MyBiaW5kIDEKClRlc3QgY2FzZSAyOgoKICBGT089IjEsNiAwIDAgNDI5NDk2NzI5NSwiCiAgdGMg ZmlsdGVyIGFkZCBkZXYgZm9vIHBhcmVudCAxOiBicGYgYnl0ZWNvZGUgIiRGT08iIGZsb3dpZCAx OjEgYWN0aW9uIG9rCiAgdGMgYWN0aW9ucyBzaG93IGFjdGlvbiBnYWN0CiAgICBhY3Rpb24gb3Jk ZXIgMDogZ2FjdCBhY3Rpb24gcGFzcwogICAgcmFuZG9tIHR5cGUgbm9uZSBwYXNzIHZhbCAwCiAg ICAgaW5kZXggMSByZWYgMSBiaW5kIDEKICB0YyBhY3Rpb25zIGFkZCBhY3Rpb24gZHJvcCBpbmRl eCAxCiAgICBSVE5FVExJTksgYW5zd2VyczogRmlsZSBleGlzdHMgWy4uLl0KICB0YyBhY3Rpb25z IHNob3cgYWN0aW9uIGdhY3QKICAgIGFjdGlvbiBvcmRlciAwOiBnYWN0IGFjdGlvbiBwYXNzCiAg ICAgcmFuZG9tIHR5cGUgbm9uZSBwYXNzIHZhbCAwCiAgICAgaW5kZXggMSByZWYgMiBiaW5kIDEK ICB0YyBhY3Rpb25zIGFkZCBhY3Rpb24gZHJvcCBpbmRleCAxCiAgICBSVE5FVExJTksgYW5zd2Vy czogRmlsZSBleGlzdHMgWy4uLl0KICB0YyBhY3Rpb25zIHNob3cgYWN0aW9uIGdhY3QKICAgIGFj dGlvbiBvcmRlciAwOiBnYWN0IGFjdGlvbiBwYXNzCiAgICAgcmFuZG9tIHR5cGUgbm9uZSBwYXNz IHZhbCAwCiAgICAgaW5kZXggMSByZWYgMyBiaW5kIDEKCldoYXQgaGFwcGVucyBpcyB0aGF0IGlu IHRjZl9oYXNoX2NoZWNrKCksIHdlIGNoZWNrIHRjZl9jb21tb24gZm9yIGEgZ2l2ZW4KaW5kZXgg YW5kIGluY3JlYXNlIHRjZmNfcmVmY250IGFuZCBjb25kaXRpb25hbGx5IHRjZmNfYmluZGNudCB3 aGVuIHdlJ3ZlCmZvdW5kIGFuIGV4aXN0aW5nIGFjdGlvbi4gTm93IHRoZXJlIGFyZSB0aGUgZm9s bG93aW5nIGNhc2VzOgoKICAxKSBXZSBkbyBhIGxhdGUgYmluZGluZyBvZiBhbiBhY3Rpb24uIElu IHRoYXQgY2FzZSwgd2UgbGVhdmUgdGhlCiAgICAgdGNmY19yZWZjbnQvdGNmY19iaW5kY250IGlu Y3JlYXNlZCBhbmQgYXJlIGRvbmUgd2l0aCB0aGUgLT5pbml0KCkKICAgICBoYW5kbGVyLiBUaGlz IGlzIGNvcnJlY3RseSBoYW5kZWxlZC4KCiAgMikgV2UgcmVwbGFjZSB0aGUgZ2l2ZW4gYWN0aW9u LCBvciB3ZSB0cnkgdG8gYWRkIG9uZSB3aXRob3V0IHJlcGxhY2luZwogICAgIGFuZCBmaW5kIG91 dCB0aGF0IHRoZSBhY3Rpb24gYXQgYSBzcGVjaWZpYyBpbmRleCBhbHJlYWR5IGV4aXN0cwogICAg ICh0aHVzLCB3ZSBnbyBvdXQgd2l0aCBlcnJvciBpbiB0aGF0IGNhc2UpLgoKSW4gY2FzZSBvZiAy KSwgd2UgaGF2ZSB0byB1bmRvIHRoZSByZWZlcmVuY2UgY291bnQgaW5jcmVhc2UgZnJvbQp0Y2Zf aGFzaF9jaGVjaygpIGluIHRoZSB0Y2ZfaGFzaF9jaGVjaygpIGZ1bmN0aW9uLiBDdXJyZW50bHks IHdlIGZhaWwgdG8KZG8gc28gYmVjYXVzZSBvZiB0aGUgJ3RjZmNfYmluZGNudCA+IDAnIGNoZWNr IHdoaWNoIGJhaWxzIG91dCBlYXJseSB3aXRoCmFuIC1FUEVSTSBlcnJvci4KCk5vdywgd2hpbGUg Y29tbWl0IDU1MzM0YTVkYjVjZCBwcmV2ZW50cyAndGMgYWN0aW9ucyBkZWwgYWN0aW9uIC4uLicg b24gYW4KYWxyZWFkeSBjbGFzc2lmaWVyLWJvdW5kIGFjdGlvbiB0byBkcm9wIHRoZSByZWZlcmVu Y2UgY291bnQgKHdoaWNoIGNvdWxkCnRoZW4gYmVjb21lIG5lZ2F0aXZlLCB3cmFwIGFyb3VuZCBl dGMpLCB0aGlzIHJlc3RyaWN0aW9uIG9ubHkgYWNjb3VudHMgZm9yCmludm9jYXRpb25zIG91dHNp ZGUgYSBzcGVjaWZpYyBhY3Rpb24ncyAtPmluaXQoKSBoYW5kbGVyLgoKT25lIHBvc3NpYmxlIHNv bHV0aW9uIHdvdWxkIGJlIHRvIGFkZCBhIGZsYWcgdGh1cyB3ZSBwb3NzaWJseSB0cmlnZ2VyCnRo ZSAtRVBFUk0gb255IGluIHNpdHVhdGlvbnMgd2hlcmUgaXQgaXMgaW5kZWVkIHJlbGV2YW50LgoK QWZ0ZXIgdGhlIHBhdGNoLCBhYm92ZSB0ZXN0IGNhc2VzIGhhdmUgY29ycmVjdCByZWZlcmVuY2Ug Y291bnQgYWdhaW4uCgpGaXhlczogNTUzMzRhNWRiNWNkICgibmV0X3NjaGVkOiBhY3Q6IHJlZnVz ZSB0byByZW1vdmUgYm91bmQgYWN0aW9uIG91dHNpZGUiKQpTaWduZWQtb2ZmLWJ5OiBEYW5pZWwg Qm9ya21hbm4gPGRhbmllbEBpb2dlYXJib3gubmV0PgpSZXZpZXdlZC1ieTogQ29uZyBXYW5nIDxj d2FuZ0B0d29wZW5zb3VyY2UuY29tPgpTaWduZWQtb2ZmLWJ5OiBEYXZpZCBTLiBNaWxsZXIgPGRh dmVtQGRhdmVtbG9mdC5uZXQ+Ci0tLQogaW5jbHVkZS9uZXQvYWN0X2FwaS5oIHwgIDggKysrKysr Ky0KIG5ldC9zY2hlZC9hY3RfYXBpLmMgICB8IDExICsrKysrKy0tLS0tCiAyIGZpbGVzIGNoYW5n ZWQsIDEzIGluc2VydGlvbnMoKyksIDYgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvaW5jbHVk ZS9uZXQvYWN0X2FwaS5oIGIvaW5jbHVkZS9uZXQvYWN0X2FwaS5oCmluZGV4IDNlZTRjOTIuLjkz MTczOGIgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUvbmV0L2FjdF9hcGkuaAorKysgYi9pbmNsdWRlL25l dC9hY3RfYXBpLmgKQEAgLTk5LDcgKzk5LDYgQEAgc3RydWN0IHRjX2FjdGlvbl9vcHMgewogCiBp bnQgdGNmX2hhc2hfc2VhcmNoKHN0cnVjdCB0Y19hY3Rpb24gKmEsIHUzMiBpbmRleCk7CiB2b2lk IHRjZl9oYXNoX2Rlc3Ryb3koc3RydWN0IHRjX2FjdGlvbiAqYSk7Ci1pbnQgdGNmX2hhc2hfcmVs ZWFzZShzdHJ1Y3QgdGNfYWN0aW9uICphLCBpbnQgYmluZCk7CiB1MzIgdGNmX2hhc2hfbmV3X2lu ZGV4KHN0cnVjdCB0Y2ZfaGFzaGluZm8gKmhpbmZvKTsKIGludCB0Y2ZfaGFzaF9jaGVjayh1MzIg aW5kZXgsIHN0cnVjdCB0Y19hY3Rpb24gKmEsIGludCBiaW5kKTsKIGludCB0Y2ZfaGFzaF9jcmVh dGUodTMyIGluZGV4LCBzdHJ1Y3QgbmxhdHRyICplc3QsIHN0cnVjdCB0Y19hY3Rpb24gKmEsCkBA IC0xMDcsNiArMTA2LDEzIEBAIGludCB0Y2ZfaGFzaF9jcmVhdGUodTMyIGluZGV4LCBzdHJ1Y3Qg bmxhdHRyICplc3QsIHN0cnVjdCB0Y19hY3Rpb24gKmEsCiB2b2lkIHRjZl9oYXNoX2NsZWFudXAo c3RydWN0IHRjX2FjdGlvbiAqYSwgc3RydWN0IG5sYXR0ciAqZXN0KTsKIHZvaWQgdGNmX2hhc2hf aW5zZXJ0KHN0cnVjdCB0Y19hY3Rpb24gKmEpOwogCitpbnQgX190Y2ZfaGFzaF9yZWxlYXNlKHN0 cnVjdCB0Y19hY3Rpb24gKmEsIGJvb2wgYmluZCwgYm9vbCBzdHJpY3QpOworCitzdGF0aWMgaW5s aW5lIGludCB0Y2ZfaGFzaF9yZWxlYXNlKHN0cnVjdCB0Y19hY3Rpb24gKmEsIGJvb2wgYmluZCkK K3sKKwlyZXR1cm4gX190Y2ZfaGFzaF9yZWxlYXNlKGEsIGJpbmQsIGZhbHNlKTsKK30KKwogaW50 IHRjZl9yZWdpc3Rlcl9hY3Rpb24oc3RydWN0IHRjX2FjdGlvbl9vcHMgKmEsIHVuc2lnbmVkIGlu dCBtYXNrKTsKIGludCB0Y2ZfdW5yZWdpc3Rlcl9hY3Rpb24oc3RydWN0IHRjX2FjdGlvbl9vcHMg KmEpOwogaW50IHRjZl9hY3Rpb25fZGVzdHJveShzdHJ1Y3QgbGlzdF9oZWFkICphY3Rpb25zLCBp bnQgYmluZCk7CmRpZmYgLS1naXQgYS9uZXQvc2NoZWQvYWN0X2FwaS5jIGIvbmV0L3NjaGVkL2Fj dF9hcGkuYwppbmRleCAzZDQzZTQ5Li5mOGQ5YzJhIDEwMDY0NAotLS0gYS9uZXQvc2NoZWQvYWN0 X2FwaS5jCisrKyBiL25ldC9zY2hlZC9hY3RfYXBpLmMKQEAgLTQ1LDcgKzQ1LDcgQEAgdm9pZCB0 Y2ZfaGFzaF9kZXN0cm95KHN0cnVjdCB0Y19hY3Rpb24gKmEpCiB9CiBFWFBPUlRfU1lNQk9MKHRj Zl9oYXNoX2Rlc3Ryb3kpOwogCi1pbnQgdGNmX2hhc2hfcmVsZWFzZShzdHJ1Y3QgdGNfYWN0aW9u ICphLCBpbnQgYmluZCkKK2ludCBfX3RjZl9oYXNoX3JlbGVhc2Uoc3RydWN0IHRjX2FjdGlvbiAq YSwgYm9vbCBiaW5kLCBib29sIHN0cmljdCkKIHsKIAlzdHJ1Y3QgdGNmX2NvbW1vbiAqcCA9IGEt PnByaXY7CiAJaW50IHJldCA9IDA7CkBAIC01Myw3ICs1Myw3IEBAIGludCB0Y2ZfaGFzaF9yZWxl YXNlKHN0cnVjdCB0Y19hY3Rpb24gKmEsIGludCBiaW5kKQogCWlmIChwKSB7CiAJCWlmIChiaW5k KQogCQkJcC0+dGNmY19iaW5kY250LS07Ci0JCWVsc2UgaWYgKHAtPnRjZmNfYmluZGNudCA+IDAp CisJCWVsc2UgaWYgKHN0cmljdCAmJiBwLT50Y2ZjX2JpbmRjbnQgPiAwKQogCQkJcmV0dXJuIC1F UEVSTTsKIAogCQlwLT50Y2ZjX3JlZmNudC0tOwpAQCAtNjQsOSArNjQsMTAgQEAgaW50IHRjZl9o YXNoX3JlbGVhc2Uoc3RydWN0IHRjX2FjdGlvbiAqYSwgaW50IGJpbmQpCiAJCQlyZXQgPSAxOwog CQl9CiAJfQorCiAJcmV0dXJuIHJldDsKIH0KLUVYUE9SVF9TWU1CT0wodGNmX2hhc2hfcmVsZWFz ZSk7CitFWFBPUlRfU1lNQk9MKF9fdGNmX2hhc2hfcmVsZWFzZSk7CiAKIHN0YXRpYyBpbnQgdGNm X2R1bXBfd2Fsa2VyKHN0cnVjdCBza19idWZmICpza2IsIHN0cnVjdCBuZXRsaW5rX2NhbGxiYWNr ICpjYiwKIAkJCSAgIHN0cnVjdCB0Y19hY3Rpb24gKmEpCkBAIC0xMzYsNyArMTM3LDcgQEAgc3Rh dGljIGludCB0Y2ZfZGVsX3dhbGtlcihzdHJ1Y3Qgc2tfYnVmZiAqc2tiLCBzdHJ1Y3QgdGNfYWN0 aW9uICphKQogCQloZWFkID0gJmhpbmZvLT5odGFiW3RjZl9oYXNoKGksIGhpbmZvLT5obWFzayld OwogCQlobGlzdF9mb3JfZWFjaF9lbnRyeV9zYWZlKHAsIG4sIGhlYWQsIHRjZmNfaGVhZCkgewog CQkJYS0+cHJpdiA9IHA7Ci0JCQlyZXQgPSB0Y2ZfaGFzaF9yZWxlYXNlKGEsIDApOworCQkJcmV0 ID0gX190Y2ZfaGFzaF9yZWxlYXNlKGEsIGZhbHNlLCB0cnVlKTsKIAkJCWlmIChyZXQgPT0gQUNU X1BfREVMRVRFRCkgewogCQkJCW1vZHVsZV9wdXQoYS0+b3BzLT5vd25lcik7CiAJCQkJbl9pKys7 CkBAIC00MTMsNyArNDE0LDcgQEAgaW50IHRjZl9hY3Rpb25fZGVzdHJveShzdHJ1Y3QgbGlzdF9o ZWFkICphY3Rpb25zLCBpbnQgYmluZCkKIAlpbnQgcmV0ID0gMDsKIAogCWxpc3RfZm9yX2VhY2hf ZW50cnlfc2FmZShhLCB0bXAsIGFjdGlvbnMsIGxpc3QpIHsKLQkJcmV0ID0gdGNmX2hhc2hfcmVs ZWFzZShhLCBiaW5kKTsKKwkJcmV0ID0gX190Y2ZfaGFzaF9yZWxlYXNlKGEsIGJpbmQsIHRydWUp OwogCQlpZiAocmV0ID09IEFDVF9QX0RFTEVURUQpCiAJCQltb2R1bGVfcHV0KGEtPm9wcy0+b3du ZXIpOwogCQllbHNlIGlmIChyZXQgPCAwKQotLSAKMi4xLjAKCgpGcm9tIDJhMzQ2MDE4NmYzNzg2 MmZjNjliYzRiMDAzYzBmZDkzNmE5NDJmMmYgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCkZyb206 IERhbiBDYXJwZW50ZXIgPGRhbi5jYXJwZW50ZXJAb3JhY2xlLmNvbT4KRGF0ZTogU2F0LCAxIEF1 ZyAyMDE1IDE1OjMzOjI2ICswMzAwClN1YmplY3Q6IFtQQVRDSCAzMC8zMl0gcmRzOiBmaXggYW4g aW50ZWdlciBvdmVyZmxvdyB0ZXN0IGluCiByZHNfaW5mb19nZXRzb2Nrb3B0KCkKClsgVXBzdHJl YW0gY29tbWl0IDQ2OGI3MzJiNmY3NmIxMzhjMDkyNmVhZGYzOGFjODg0NjdkY2QyNzEgXQoKImxl biIgaXMgYSBzaWduZWQgaW50ZWdlci4gIFdlIGNoZWNrIHRoYXQgbGVuIGlzIG5vdCBuZWdhdGl2 ZSwgc28gaXQKZ29lcyBmcm9tIHplcm8gdG8gSU5UX01BWC4gIFBBR0VfU0laRSBpcyB1bnNpZ25l ZCBsb25nIHNvIHRoZSBjb21wYXJpc29uCmlzIHR5cGUgcHJvbW90ZWQgdG8gdW5zaWduZWQgbG9u Zy4gIFVMT05HX01BWCAtIDQwOTUgaXMgYSBoaWdoZXIgdGhhbgpJTlRfTUFYIHNvIHRoZSBjb25k aXRpb24gY2FuIG5ldmVyIGJlIHRydWUuCgpJIGRvbid0IGtub3cgaWYgdGhpcyBpcyBoYXJtZnVs IGJ1dCBpdCBzZWVtcyBzYWZlIHRvIGxpbWl0ICJsZW4iIHRvCklOVF9NQVggLSA0MDk1LgoKRml4 ZXM6IGE4Yzg3OWE3ZWU5OCAoJ1JEUzogSW5mbyBhbmQgc3RhdHMnKQpTaWduZWQtb2ZmLWJ5OiBE YW4gQ2FycGVudGVyIDxkYW4uY2FycGVudGVyQG9yYWNsZS5jb20+ClNpZ25lZC1vZmYtYnk6IERh dmlkIFMuIE1pbGxlciA8ZGF2ZW1AZGF2ZW1sb2Z0Lm5ldD4KLS0tCiBuZXQvcmRzL2luZm8uYyB8 IDIgKy0KIDEgZmlsZSBjaGFuZ2VkLCAxIGluc2VydGlvbigrKSwgMSBkZWxldGlvbigtKQoKZGlm ZiAtLWdpdCBhL25ldC9yZHMvaW5mby5jIGIvbmV0L3Jkcy9pbmZvLmMKaW5kZXggOWE2YjRmNi4u MTQwYTQ0YSAxMDA2NDQKLS0tIGEvbmV0L3Jkcy9pbmZvLmMKKysrIGIvbmV0L3Jkcy9pbmZvLmMK QEAgLTE3Niw3ICsxNzYsNyBAQCBpbnQgcmRzX2luZm9fZ2V0c29ja29wdChzdHJ1Y3Qgc29ja2V0 ICpzb2NrLCBpbnQgb3B0bmFtZSwgY2hhciBfX3VzZXIgKm9wdHZhbCwKIAogCS8qIGNoZWNrIGZv ciBhbGwga2luZHMgb2Ygd3JhcHBpbmcgYW5kIHRoZSBsaWtlICovCiAJc3RhcnQgPSAodW5zaWdu ZWQgbG9uZylvcHR2YWw7Ci0JaWYgKGxlbiA8IDAgfHwgbGVuICsgUEFHRV9TSVpFIC0gMSA8IGxl biB8fCBzdGFydCArIGxlbiA8IHN0YXJ0KSB7CisJaWYgKGxlbiA8IDAgfHwgbGVuID4gSU5UX01B WCAtIFBBR0VfU0laRSArIDEgfHwgc3RhcnQgKyBsZW4gPCBzdGFydCkgewogCQlyZXQgPSAtRUlO VkFMOwogCQlnb3RvIG91dDsKIAl9Ci0tIAoyLjEuMAoKCkZyb20gMTQ2NmE5M2NkOTUzODFkOWNh YjNlOTk0YTg4ZjBiYTU2Y2NkNGZkMSBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJvbTogRXJp YyBEdW1hemV0IDxlZHVtYXpldEBnb29nbGUuY29tPgpEYXRlOiBTYXQsIDEgQXVnIDIwMTUgMTI6 MTQ6MzMgKzAyMDAKU3ViamVjdDogW1BBVENIIDMxLzMyXSB1ZHA6IGZpeCBkc3QgcmFjZXMgd2l0 aCBtdWx0aWNhc3QgZWFybHkgZGVtdXgKTUlNRS1WZXJzaW9uOiAxLjAKQ29udGVudC1UeXBlOiB0 ZXh0L3BsYWluOyBjaGFyc2V0PVVURi04CkNvbnRlbnQtVHJhbnNmZXItRW5jb2Rpbmc6IDhiaXQK ClsgVXBzdHJlYW0gY29tbWl0IDEwZTJlYjg3OGYzY2EwN2FjMmYwNWZhNWNhNWU2YzRjOTE3NGEy N2EgXQoKTXVsdGljYXN0IGRzdCBhcmUgbm90IGNhY2hlZC4gVGhleSBjYXJyeSBEU1RfTk9DQUNI RS4KCkFzIG1lbnRpb25lZCBpbiBjb21taXQgZjg4NjQ5NzIxMjY4OTkgKCJpcHY0OiBmaXggZHN0 IHJhY2UgaW4Kc2tfZHN0X2dldCgpIiksIHRoZXNlIGRzdCBuZWVkIHNwZWNpYWwgY2FyZSBiZWZv cmUgY2FjaGluZyB0aGVtCmludG8gYSBzb2NrZXQuCgpDYWNoaW5nIHRoZW0gaXMgYWxsb3dlZCBv bmx5IGlmIHRoZWlyIHJlZmNudCB3YXMgbm90IDAsIGllIHdlCm11c3QgdXNlIGF0b21pY19pbmNf bm90X3plcm8oKQoKQWxzbywgd2UgbXVzdCB1c2UgUkVBRF9PTkNFKCkgdG8gZmV0Y2ggc2stPnNr X3J4X2RzdCwgYXMgbWVudGlvbmVkCmluIGNvbW1pdCBkMGMyOTRjNTNhNzcxICgidGNwOiBwcmV2 ZW50IGZldGNoaW5nIGRzdCB0d2ljZSBpbiBlYXJseSBkZW11eApjb2RlIikKCkZpeGVzOiA0MjFi Mzg4NWJmNmQgKCJ1ZHA6IGlwdjQ6IEFkZCB1ZHAgZWFybHkgZGVtdXgiKQpUZXN0ZWQtYnk6IEdy ZWdvcnkgSG9nZ2FydGggPEdyZWdvcnkuSG9nZ2FydGhAYWxsaWVkdGVsZXNpcy5jby5uej4KU2ln bmVkLW9mZi1ieTogRXJpYyBEdW1hemV0IDxlZHVtYXpldEBnb29nbGUuY29tPgpSZXBvcnRlZC1i eTogR3JlZ29yeSBIb2dnYXJ0aCA8R3JlZ29yeS5Ib2dnYXJ0aEBhbGxpZWR0ZWxlc2lzLmNvLm56 PgpSZXBvcnRlZC1ieTogQWxleCBHYXJ0cmVsbCA8YWdhcnRyZWxsQGZiLmNvbT4KQ2M6IE1pY2hh bCBLdWJlxI1layA8bWt1YmVjZWtAc3VzZS5jej4KU2lnbmVkLW9mZi1ieTogRGF2aWQgUy4gTWls bGVyIDxkYXZlbUBkYXZlbWxvZnQubmV0PgotLS0KIG5ldC9pcHY0L3VkcC5jIHwgMTMgKysrKysr KysrKy0tLQogMSBmaWxlIGNoYW5nZWQsIDEwIGluc2VydGlvbnMoKyksIDMgZGVsZXRpb25zKC0p CgpkaWZmIC0tZ2l0IGEvbmV0L2lwdjQvdWRwLmMgYi9uZXQvaXB2NC91ZHAuYwppbmRleCBjNWUz MTk0Li40ZWE5NzUzIDEwMDY0NAotLS0gYS9uZXQvaXB2NC91ZHAuYworKysgYi9uZXQvaXB2NC91 ZHAuYwpAQCAtMTk4MywxMiArMTk4MywxOSBAQCB2b2lkIHVkcF92NF9lYXJseV9kZW11eChzdHJ1 Y3Qgc2tfYnVmZiAqc2tiKQogCiAJc2tiLT5zayA9IHNrOwogCXNrYi0+ZGVzdHJ1Y3RvciA9IHNv Y2tfZWZyZWU7Ci0JZHN0ID0gc2stPnNrX3J4X2RzdDsKKwlkc3QgPSBSRUFEX09OQ0Uoc2stPnNr X3J4X2RzdCk7CiAKIAlpZiAoZHN0KQogCQlkc3QgPSBkc3RfY2hlY2soZHN0LCAwKTsKLQlpZiAo ZHN0KQotCQlza2JfZHN0X3NldF9ub3JlZihza2IsIGRzdCk7CisJaWYgKGRzdCkgeworCQkvKiBE U1RfTk9DQUNIRSBjYW4gbm90IGJlIHVzZWQgd2l0aG91dCB0YWtpbmcgYSByZWZlcmVuY2UgKi8K KwkJaWYgKGRzdC0+ZmxhZ3MgJiBEU1RfTk9DQUNIRSkgeworCQkJaWYgKGxpa2VseShhdG9taWNf aW5jX25vdF96ZXJvKCZkc3QtPl9fcmVmY250KSkpCisJCQkJc2tiX2RzdF9zZXQoc2tiLCBkc3Qp OworCQl9IGVsc2UgeworCQkJc2tiX2RzdF9zZXRfbm9yZWYoc2tiLCBkc3QpOworCQl9CisJfQog fQogCiBpbnQgdWRwX3JjdihzdHJ1Y3Qgc2tfYnVmZiAqc2tiKQotLSAKMi4xLjAKCgpGcm9tIGFi ZGEzNmVkYzM3YWE2NmZmOWNiZWM3NDAzNjY1OThiMTQ0YWIyN2YgTW9uIFNlcCAxNyAwMDowMDow MCAyMDAxCkZyb206IEl2YW4gVmVjZXJhIDxpdmVjZXJhQHJlZGhhdC5jb20+CkRhdGU6IFRodSwg NiBBdWcgMjAxNSAyMjo0ODoyMyArMDIwMApTdWJqZWN0OiBbUEFUQ0ggMzIvMzJdIGJuYTogZml4 IGludGVycnVwdHMgc3Rvcm0gY2F1c2VkIGJ5IGVycm9uZW91cyBwYWNrZXRzCgpbIFVwc3RyZWFt IGNvbW1pdCBhZGU0ZGMzZTYxNmUzM2M4MGQ3ZTYyODU1ZmUxYjZmOTg5NWJjN2MzIF0KClRoZSBj b21taXQgImUyOWFhMzMgYm5hOiBFbmFibGUgTXVsdGkgQnVmZmVyIFJYIiBtb3ZlZCBwYWNrZXRz IGNvdW50ZXIKaW5jcmVtZW50IGZyb20gdGhlIGJlZ2lubmluZyBvZiB0aGUgTkFQSSBwcm9jZXNz aW5nIGxvb3AgYWZ0ZXIgdGhlIGNoZWNrCmZvciBlcnJvbmVvdXMgcGFja2V0cyBzbyB0aGV5IGFy ZSBuZXZlciBhY2NvdW50ZWQuIFRoaXMgY291bnRlciBpcyB1c2VkCnRvIGluZm9ybSBmaXJtd2Fy ZSBhYm91dCBudW1iZXIgb2YgcHJvY2Vzc2VkIGNvbXBsZXRpb25zIChwYWNrZXRzKS4KQXMgdGhl c2UgcGFja2V0cyBhcmUgbmV2ZXIgYWNrZWQgdGhlIGZpcm13YXJlIGZpcmVzIElSUXMgZm9yIHRo ZW0gYWdhaW4KYW5kIGFnYWluLgoKRml4ZXM6IGUyOWFhMzMgKCJibmE6IEVuYWJsZSBNdWx0aSBC dWZmZXIgUlgiKQpTaWduZWQtb2ZmLWJ5OiBJdmFuIFZlY2VyYSA8aXZlY2VyYUByZWRoYXQuY29t PgpBY2tlZC1ieTogUmFzZXNoIE1vZHkgPHJhc2VzaC5tb2R5QHFsb2dpYy5jb20+ClNpZ25lZC1v ZmYtYnk6IERhdmlkIFMuIE1pbGxlciA8ZGF2ZW1AZGF2ZW1sb2Z0Lm5ldD4KLS0tCiBkcml2ZXJz L25ldC9ldGhlcm5ldC9icm9jYWRlL2JuYS9ibmFkLmMgfCAyICstCiAxIGZpbGUgY2hhbmdlZCwg MSBpbnNlcnRpb24oKyksIDEgZGVsZXRpb24oLSkKCmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC9l dGhlcm5ldC9icm9jYWRlL2JuYS9ibmFkLmMgYi9kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9jYWRl L2JuYS9ibmFkLmMKaW5kZXggYzM4NjFkZS4uZDg2NDYxNCAxMDA2NDQKLS0tIGEvZHJpdmVycy9u ZXQvZXRoZXJuZXQvYnJvY2FkZS9ibmEvYm5hZC5jCisrKyBiL2RyaXZlcnMvbmV0L2V0aGVybmV0 L2Jyb2NhZGUvYm5hL2JuYWQuYwpAQCAtNjc0LDYgKzY3NCw3IEBAIGJuYWRfY3FfcHJvY2Vzcyhz dHJ1Y3QgYm5hZCAqYm5hZCwgc3RydWN0IGJuYV9jY2IgKmNjYiwgaW50IGJ1ZGdldCkKIAkJCWlm ICghbmV4dF9jbXBsLT52YWxpZCkKIAkJCQlicmVhazsKIAkJfQorCQlwYWNrZXRzKys7CiAKIAkJ LyogVE9ETzogQk5BX0NRX0VGX0xPQ0FMID8gKi8KIAkJaWYgKHVubGlrZWx5KGZsYWdzICYgKEJO QV9DUV9FRl9NQUNfRVJST1IgfApAQCAtNjkwLDcgKzY5MSw2IEBAIGJuYWRfY3FfcHJvY2Vzcyhz dHJ1Y3QgYm5hZCAqYm5hZCwgc3RydWN0IGJuYV9jY2IgKmNjYiwgaW50IGJ1ZGdldCkKIAkJZWxz ZQogCQkJYm5hZF9jcV9zZXR1cF9za2JfZnJhZ3MocmNiLCBza2IsIHNvcF9jaSwgbnZlY3MsIGxl bik7CiAKLQkJcGFja2V0cysrOwogCQlyY2ItPnJ4cS0+cnhfcGFja2V0cysrOwogCQlyY2ItPnJ4 cS0+cnhfYnl0ZXMgKz0gdG90bGVuOwogCQljY2ItPmJ5dGVzX3Blcl9pbnRyICs9IHRvdGxlbjsK LS0gCjIuMS4wCgo= ----Next_Part(Wed_Aug_26_23_05_12_2015_145)-- Content-Type: Application/Octet-Stream Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="net_41.mbox" RnJvbSA4YzI4NTRkZjEzZmJkZmIxNjNiYzY2OTM5ZDZkMDliYjBjYTMwNmY2IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBBbmdnYSA8SGVybWluLkFuZ2dhd2lqYXlhQGFsbGllZHRlbGVz aXMuY28ubno+CkRhdGU6IEZyaSwgMyBKdWwgMjAxNSAxNDo0MDo1MiArMTIwMApTdWJqZWN0OiBb UEFUQ0ggMDEvNDZdIGlwdjY6IE1ha2UgTUxEIHBhY2tldHMgdG8gb25seSBiZSBwcm9jZXNzZWQg bG9jYWxseQoKWyBVcHN0cmVhbSBjb21taXQgNGM5MzhkMjJjODhhOWRkY2NjOGM1NWE4NWUwNDMw ZTljNjJiMWFjNSBdCgpCZWZvcmUgY29tbWl0IGRhYWQxNTEyNjNjZiAoImlwdjY6IE1ha2UgaXB2 Nl9pc19tbGQoKSBpbmxpbmUgYW5kIHVzZSBpdApmcm9tIGlwNl9tY19pbnB1dCgpLiIpIE1MRCBw YWNrZXRzIHdlcmUgb25seSBwcm9jZXNzZWQgbG9jYWxseS4gQWZ0ZXIgdGhlCmNoYW5nZSwgYSBj b3B5IG9mIE1MRCBwYWNrZXQgZ29lcyB0aHJvdWdoIGlwNl9tcl9pbnB1dCwgY2F1c2luZwpNUlQ2 TVNHX05PQ0FDSEUgbWVzc2FnZSB0byBiZSBnZW5lcmF0ZWQgdG8gdXNlciBzcGFjZS4KCk1ha2Ug TUxEIHBhY2tldCBvbmx5IHByb2Nlc3NlZCBsb2NhbGx5LgoKRml4ZXM6IGRhYWQxNTEyNjNjZiAo ImlwdjY6IE1ha2UgaXB2Nl9pc19tbGQoKSBpbmxpbmUgYW5kIHVzZSBpdCBmcm9tIGlwNl9tY19p bnB1dCgpLiIpClNpZ25lZC1vZmYtYnk6IEhlcm1pbiBBbmdnYXdpamF5YSA8aGVybWluLmFuZ2dh d2lqYXlhQGFsbGllZHRlbGVzaXMuY28ubno+ClNpZ25lZC1vZmYtYnk6IERhdmlkIFMuIE1pbGxl ciA8ZGF2ZW1AZGF2ZW1sb2Z0Lm5ldD4KLS0tCiBuZXQvaXB2Ni9pcDZfaW5wdXQuYyB8IDYgKysr LS0tCiAxIGZpbGUgY2hhbmdlZCwgMyBpbnNlcnRpb25zKCspLCAzIGRlbGV0aW9ucygtKQoKZGlm ZiAtLWdpdCBhL25ldC9pcHY2L2lwNl9pbnB1dC5jIGIvbmV0L2lwdjYvaXA2X2lucHV0LmMKaW5k ZXggZjJlNDY0ZS4uNTc5OTBjOSAxMDA2NDQKLS0tIGEvbmV0L2lwdjYvaXA2X2lucHV0LmMKKysr IGIvbmV0L2lwdjYvaXA2X2lucHV0LmMKQEAgLTMzMSwxMCArMzMxLDEwIEBAIGludCBpcDZfbWNf aW5wdXQoc3RydWN0IHNrX2J1ZmYgKnNrYikKIAkJCQlpZiAob2Zmc2V0IDwgMCkKIAkJCQkJZ290 byBvdXQ7CiAKLQkJCQlpZiAoIWlwdjZfaXNfbWxkKHNrYiwgbmV4dGhkciwgb2Zmc2V0KSkKLQkJ CQkJZ290byBvdXQ7CisJCQkJaWYgKGlwdjZfaXNfbWxkKHNrYiwgbmV4dGhkciwgb2Zmc2V0KSkK KwkJCQkJZGVsaXZlciA9IHRydWU7CiAKLQkJCQlkZWxpdmVyID0gdHJ1ZTsKKwkJCQlnb3RvIG91 dDsKIAkJCX0KIAkJCS8qIHVua25vd24gUkEgLSBwcm9jZXNzIGl0IG5vcm1hbGx5ICovCiAJCX0K LS0gCjIuMS4wCgoKRnJvbSBiOGMyYzlhMmFlMTc1ZGEzODU2NDlmMDg1NWI5YjlmYjAzYjZhNzk5 IE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBQaGlsIFN1dHRlciA8cGhpbEBud2wuY2M+ CkRhdGU6IE1vbiwgNiBKdWwgMjAxNSAxNTo1MToyMCArMDIwMApTdWJqZWN0OiBbUEFUQ0ggMDIv NDZdIHJoYXNodGFibGU6IGZpeCBmb3IgcmVzaXplIGV2ZW50cyBkdXJpbmcgdGFibGUgd2FsawoK WyBVcHN0cmVhbSBjb21taXQgMTQyYjk0MmE3NWNiMTBlZGUxYjQyYmY4NTM2OGQ0MTQ0OWFiNGUz YiBdCgpJZiByaGFzaHRhYmxlX3dhbGtfbmV4dCBkZXRlY3RzIGEgcmVzaXplIG9wZXJhdGlvbiBp biBwcm9ncmVzcywgaXQganVtcHMKdG8gdGhlIG5ldyB0YWJsZSBhbmQgY29udGludWVzIHdhbGtp bmcgdGhhdCBvbmUuIEJ1dCBpdCBtaXNzZXMgdG8gZHJvcAp0aGUgcmVmZXJlbmNlIHRvIGl0J3Mg Y3VycmVudCBpdGVtLCBsZWFkaW5nIGl0IHRvIGNvbnRpbnVlIHRyYXZlcnNpbmcKdGhlIG5ldyB0 YWJsZSdzIGJ1Y2tldCBpbiB3aGljaCB0aGUgY3VycmVudCBpdGVtIGlzIHNvcnRlZCBpbnRvLCBh bmQKYWZ0ZXIgcmVhY2hpbmcgdGhhdCBidWNrZXQncyBlbmQgY29udGludWVzIHRyYXZlcnNpbmcg dGhlIG5ldyB0YWJsZSdzCnNlY29uZCBidWNrZXQgaW5zdGVhZCBvZiB0aGUgZmlyc3Qgb25lLCB0 aGVyZWJ5IHBvdGVudGlhbGx5IG1pc3NpbmcKaXRlbXMuCgpUaGlzIGZpeGVzIHRoZSByaGFzaHRh YmxlIHJ1bnRpbWUgdGVzdCBmb3IgbWUuIEJ1ZyBwcm9iYWJseSBpbnRyb2R1Y2VkCmJ5IEhlcmJl cnQgWHUncyBwYXRjaCBlZGRlZTViYSAoInJoYXNodGFibGU6IEZpeCB3YWxrZXIgYmVoYXZpb3Vy IGR1cmluZwpyZWhhc2giKSBhbHRob3VnaCBub3QgZXhwbGljaXRseSB0ZXN0ZWQuCgpGaXhlczog ZWRkZWU1YmEgKCJyaGFzaHRhYmxlOiBGaXggd2Fsa2VyIGJlaGF2aW91ciBkdXJpbmcgcmVoYXNo IikKU2lnbmVkLW9mZi1ieTogUGhpbCBTdXR0ZXIgPHBoaWxAbndsLmNjPgpBY2tlZC1ieTogSGVy YmVydCBYdSA8aGVyYmVydEBnb25kb3IuYXBhbmEub3JnLmF1PgpTaWduZWQtb2ZmLWJ5OiBEYXZp ZCBTLiBNaWxsZXIgPGRhdmVtQGRhdmVtbG9mdC5uZXQ+Ci0tLQogbGliL3JoYXNodGFibGUuYyB8 IDQgKystLQogMSBmaWxlIGNoYW5nZWQsIDIgaW5zZXJ0aW9ucygrKSwgMiBkZWxldGlvbnMoLSkK CmRpZmYgLS1naXQgYS9saWIvcmhhc2h0YWJsZS5jIGIvbGliL3JoYXNodGFibGUuYwppbmRleCA4 NjA5Mzc4Li5jZjkxMGU0IDEwMDY0NAotLS0gYS9saWIvcmhhc2h0YWJsZS5jCisrKyBiL2xpYi9y aGFzaHRhYmxlLmMKQEAgLTYxMiw2ICs2MTIsOCBAQCBuZXh0OgogCQlpdGVyLT5za2lwID0gMDsK IAl9CiAKKwlpdGVyLT5wID0gTlVMTDsKKwogCS8qIEVuc3VyZSB3ZSBzZWUgYW55IG5ldyB0YWJs ZXMuICovCiAJc21wX3JtYigpOwogCkBAIC02MjIsOCArNjI0LDYgQEAgbmV4dDoKIAkJcmV0dXJu IEVSUl9QVFIoLUVBR0FJTik7CiAJfQogCi0JaXRlci0+cCA9IE5VTEw7Ci0KIG91dDoKIAogCXJl dHVybiBvYmo7Ci0tIAoyLjEuMAoKCkZyb20gMWFiNjM5YTdlOGFiNGYyMjYzYTVmZGQ2MTFiMzNl MGI5YWZmNmIwOSBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJvbTogRXJpYyBEdW1hemV0IDxl ZHVtYXpldEBnb29nbGUuY29tPgpEYXRlOiBNb24sIDYgSnVsIDIwMTUgMTc6MTM6MjYgKzAyMDAK U3ViamVjdDogW1BBVENIIDAzLzQ2XSBuZXQ6IGdyYWNlZnVsIGV4aXQgZnJvbSBuZXRpZl9hbGxv Y19uZXRkZXZfcXVldWVzKCkKClsgVXBzdHJlYW0gY29tbWl0IGQzMzk3MjdjMmIxYTEwZjI1ZTY2 MzY2NzBhYjZlMTg0MTE3MGUzMjggXQoKVXNlciBzcGFjZSBjYW4gY3Jhc2gga2VybmVsIHdpdGgK CmlwIGxpbmsgYWRkIGlmYjEwIG51bXR4cXVldWVzIDEwMDAwMCB0eXBlIGlmYgoKV2UgbXVzdCBy ZXBsYWNlIGEgQlVHX09OKCkgYnkgcHJvcGVyIHRlc3QgYW5kIHJldHVybiAtRUlOVkFMIGZvcgpj cmF6eSB2YWx1ZXMuCgpGaXhlczogNjA4NzdhMzJiY2UwMCAoIm5ldDogYWxsb3cgbGFyZ2UgbnVt YmVyIG9mIHR4IHF1ZXVlcyIpClNpZ25lZC1vZmYtYnk6IEVyaWMgRHVtYXpldCA8ZWR1bWF6ZXRA Z29vZ2xlLmNvbT4KU2lnbmVkLW9mZi1ieTogRGF2aWQgUy4gTWlsbGVyIDxkYXZlbUBkYXZlbWxv ZnQubmV0PgotLS0KIG5ldC9jb3JlL2Rldi5jIHwgMyArKy0KIDEgZmlsZSBjaGFuZ2VkLCAyIGlu c2VydGlvbnMoKyksIDEgZGVsZXRpb24oLSkKCmRpZmYgLS1naXQgYS9uZXQvY29yZS9kZXYuYyBi L25ldC9jb3JlL2Rldi5jCmluZGV4IGFhODJmOWEuLjQ3MjM5MTQgMTAwNjQ0Ci0tLSBhL25ldC9j b3JlL2Rldi5jCisrKyBiL25ldC9jb3JlL2Rldi5jCkBAIC02Mjk3LDcgKzYyOTcsOCBAQCBzdGF0 aWMgaW50IG5ldGlmX2FsbG9jX25ldGRldl9xdWV1ZXMoc3RydWN0IG5ldF9kZXZpY2UgKmRldikK IAlzdHJ1Y3QgbmV0ZGV2X3F1ZXVlICp0eDsKIAlzaXplX3Qgc3ogPSBjb3VudCAqIHNpemVvZigq dHgpOwogCi0JQlVHX09OKGNvdW50IDwgMSB8fCBjb3VudCA+IDB4ZmZmZik7CisJaWYgKGNvdW50 IDwgMSB8fCBjb3VudCA+IDB4ZmZmZikKKwkJcmV0dXJuIC1FSU5WQUw7CiAKIAl0eCA9IGt6YWxs b2Moc3osIEdGUF9LRVJORUwgfCBfX0dGUF9OT1dBUk4gfCBfX0dGUF9SRVBFQVQpOwogCWlmICgh dHgpIHsKLS0gCjIuMS4wCgoKRnJvbSBmYTcyNTU3YTg1ZTAwMzJhODE5YmNkODU3ZGUxODVkYTEw Nzk5ZGQ0IE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBOaWNvbGFzIERpY2h0ZWwgPG5p Y29sYXMuZGljaHRlbEA2d2luZC5jb20+CkRhdGU6IE1vbiwgNiBKdWwgMjAxNSAxNzoyNToxMCAr MDIwMApTdWJqZWN0OiBbUEFUQ0ggMDQvNDZdIFJldmVydCAiZGV2OiBzZXQgaWZsaW5rIHRvIDAg Zm9yIHZpcnR1YWwgaW50ZXJmYWNlcyIKClsgVXBzdHJlYW0gY29tbWl0IDk1ZWM2NTViYzQ2NWNj YjJhMzMyOWQ0YWZmOWE0NWUzYzgxODhkYjUgXQoKVGhpcyByZXZlcnRzIGNvbW1pdCBlMTYyMmJh ZjU0ZGY4Y2M5NThiZjI5ZDcxZGU1YWQ1NDVlYTdkOTNjLgoKVGhlIHNpZGUgZWZmZWN0IG9mIHRo aXMgY29tbWl0IGlzIHRvIGFkZCBhICdATk9ORScgYWZ0ZXIgZWFjaCB2aXJ0dWFsCmludGVyZmFj ZSBuYW1lIHdpdGggYSAnaXAgbGluaycuIEl0IG1heSBicmVhayBleGlzdGluZyBzY3JpcHRzLgoK UmVwb3J0ZWQtYnk6IE9saXZpZXIgSGFydGtvcHAgPHNvY2tldGNhbkBoYXJ0a29wcC5uZXQ+ClNp Z25lZC1vZmYtYnk6IE5pY29sYXMgRGljaHRlbCA8bmljb2xhcy5kaWNodGVsQDZ3aW5kLmNvbT4K VGVzdGVkLWJ5OiBPbGl2ZXIgSGFydGtvcHAgPHNvY2tldGNhbkBoYXJ0a29wcC5uZXQ+ClNpZ25l ZC1vZmYtYnk6IERhdmlkIFMuIE1pbGxlciA8ZGF2ZW1AZGF2ZW1sb2Z0Lm5ldD4KLS0tCiBuZXQv Y29yZS9kZXYuYyB8IDQgLS0tLQogMSBmaWxlIGNoYW5nZWQsIDQgZGVsZXRpb25zKC0pCgpkaWZm IC0tZ2l0IGEvbmV0L2NvcmUvZGV2LmMgYi9uZXQvY29yZS9kZXYuYwppbmRleCA0NzIzOTE0Li44 NzdlYzU3IDEwMDY0NAotLS0gYS9uZXQvY29yZS9kZXYuYworKysgYi9uZXQvY29yZS9kZXYuYwpA QCAtNjcyLDEwICs2NzIsNiBAQCBpbnQgZGV2X2dldF9pZmxpbmsoY29uc3Qgc3RydWN0IG5ldF9k ZXZpY2UgKmRldikKIAlpZiAoZGV2LT5uZXRkZXZfb3BzICYmIGRldi0+bmV0ZGV2X29wcy0+bmRv X2dldF9pZmxpbmspCiAJCXJldHVybiBkZXYtPm5ldGRldl9vcHMtPm5kb19nZXRfaWZsaW5rKGRl dik7CiAKLQkvKiBJZiBkZXYtPnJ0bmxfbGlua19vcHMgaXMgc2V0LCBpdCdzIGEgdmlydHVhbCBp bnRlcmZhY2UuICovCi0JaWYgKGRldi0+cnRubF9saW5rX29wcykKLQkJcmV0dXJuIDA7Ci0KIAly ZXR1cm4gZGV2LT5pZmluZGV4OwogfQogRVhQT1JUX1NZTUJPTChkZXZfZ2V0X2lmbGluayk7Ci0t IAoyLjEuMAoKCkZyb20gNzVjZWFkMzE5OTExZWFiMWI5ODEzYzU1Mjc0YjM5MTEyODMyOWQ5YiBN b24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJvbTogRGFuaWVsIEJvcmttYW5uIDxkYW5pZWxAaW9n ZWFyYm94Lm5ldD4KRGF0ZTogVHVlLCA3IEp1bCAyMDE1IDAwOjA3OjUyICswMjAwClN1YmplY3Q6 IFtQQVRDSCAwNS80Nl0gcnRuZXRsaW5rOiB2ZXJpZnkgSUZMQV9WRl9JTkZPIGF0dHJpYnV0ZXMg YmVmb3JlCiBwYXNzaW5nIHRoZW0gdG8gZHJpdmVyCgpbIFVwc3RyZWFtIGNvbW1pdCA0ZjdkMmNk ZmRkZTcxZmZlOTYyMzk5YjcwMjBjNjc0MDUwMzI5NDIzIF0KCkphc29uIEd1bnRob3JwZSByZXBv cnRlZCB0aGF0IHNpbmNlIGNvbW1pdCBjMDJkYjhjNjI5MGIgKCJydG5ldGxpbms6IG1ha2UKU1It SU9WIFZGIGludGVyZmFjZSBzeW1tZXRyaWMiKSwgd2UgZG9uJ3QgdmVyaWZ5IElGTEFfVkZfSU5G TyBhdHRyaWJ1dGVzCmFueW1vcmUgd2l0aCByZXNwZWN0IHRvIHRoZWlyIHBvbGljeSwgdGhhdCBp cywgaWZsYV92ZmluZm9fcG9saWN5W10uCgpCZWZvcmUsIHRoZXkgd2VyZSBwYXJ0IG9mIGlmbGFf cG9saWN5W10sIGJ1dCB0aGV5IGhhdmUgYmVlbiBuZXN0ZWQgc2luY2UKcGxhY2VkIHVuZGVyIElG TEFfVkZJTkZPX0xJU1QsIHRoYXQgY29udGFpbnMgdGhlIGF0dHJpYnV0ZSBJRkxBX1ZGX0lORk8s CndoaWNoIGlzIGFub3RoZXIgbmVzdGVkIGF0dHJpYnV0ZSBmb3IgdGhlIGFjdHVhbCBWRiBhdHRy aWJ1dGVzIHN1Y2ggYXMKSUZMQV9WRl9NQUMsIElGTEFfVkZfVkxBTiwgZXRjLgoKRGVzcGl0ZSB0 aGUgcG9saWN5IGJlaW5nIHNwbGl0IG91dCBmcm9tIGlmbGFfcG9saWN5W10gaW4gdGhpcyBjb21t aXQsCml0J3MgbmV2ZXIgYXBwbGllZCBhbnl3aGVyZS4gbmxhX2Zvcl9lYWNoX25lc3RlZCgpIG9u bHkgZG9lcyBiYXNpYyBubGFfb2soKQp0ZXN0aW5nIGZvciBzdHJ1Y3QgbmxhdHRyLCBidXQgaXQg ZG9lc24ndCBrbm93IGFib3V0IHRoZSBkYXRhIGNvbnRleHQgYW5kCnRoZWlyIHJlcXVpcmVtZW50 cy4KCkZpeCwgb24gdG9wIG9mIEphc29uJ3MgaW5pdGlhbCB3b3JrLCBkb2VzIDEpIHBhcnNpbmcg b2YgdGhlIGF0dHJpYnV0ZXMKd2l0aCB0aGUgcmlnaHQgcG9saWN5LCBhbmQgMikgdXNpbmcgdGhl IHJlc3VsdGluZyBwYXJzZWQgYXR0cmlidXRlIHRhYmxlCmZyb20gMSkgaW5zdGVhZCBvZiB0aGUg bmxhX2Zvcl9lYWNoX25lc3RlZCgpIGxvb3AgKGp1c3QgbGlrZSB3ZSB1c2VkIHRvCmRvIHdoZW4g c3RpbGwgcGFydCBvZiBpZmxhX3BvbGljeVtdKS4KClJlZmVyZW5jZTogaHR0cDovL3RocmVhZC5n bWFuZS5vcmcvZ21hbmUubGludXgubmV0d29yay8zNjg5MTMKRml4ZXM6IGMwMmRiOGM2MjkwYiAo InJ0bmV0bGluazogbWFrZSBTUi1JT1YgVkYgaW50ZXJmYWNlIHN5bW1ldHJpYyIpClJlcG9ydGVk LWJ5OiBKYXNvbiBHdW50aG9ycGUgPGpndW50aG9ycGVAb2JzaWRpYW5yZXNlYXJjaC5jb20+CkNj OiBDaHJpcyBXcmlnaHQgPGNocmlzd0Bzb3VzLXNvbC5vcmc+CkNjOiBTdWNoZXRhIENoYWtyYWJv cnR5IDxzdWNoZXRhLmNoYWtyYWJvcnR5QHFsb2dpYy5jb20+CkNjOiBHcmVnIFJvc2UgPGdyZWdv cnkudi5yb3NlQGludGVsLmNvbT4KQ2M6IEplZmYgS2lyc2hlciA8amVmZnJleS50LmtpcnNoZXJA aW50ZWwuY29tPgpDYzogUm9ueSBFZnJhaW0gPHJvbnllQG1lbGxhbm94LmNvbT4KQ2M6IFZsYWQg Wm9sb3Rhcm92IDx2bGFkekBjbG91ZGl1cy1zeXN0ZW1zLmNvbT4KQ2M6IE5pY29sYXMgRGljaHRl bCA8bmljb2xhcy5kaWNodGVsQDZ3aW5kLmNvbT4KQ2M6IFRob21hcyBHcmFmIDx0Z3JhZkBzdXVn LmNoPgpTaWduZWQtb2ZmLWJ5OiBKYXNvbiBHdW50aG9ycGUgPGpndW50aG9ycGVAb2JzaWRpYW5y ZXNlYXJjaC5jb20+ClNpZ25lZC1vZmYtYnk6IERhbmllbCBCb3JrbWFubiA8ZGFuaWVsQGlvZ2Vh cmJveC5uZXQ+CkFja2VkLWJ5OiBWbGFkIFpvbG90YXJvdiA8dmxhZHpAY2xvdWRpdXMtc3lzdGVt cy5jb20+ClNpZ25lZC1vZmYtYnk6IERhdmlkIFMuIE1pbGxlciA8ZGF2ZW1AZGF2ZW1sb2Z0Lm5l dD4KLS0tCiBuZXQvY29yZS9ydG5ldGxpbmsuYyB8IDE4NyArKysrKysrKysrKysrKysrKysrKysr KysrKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIDEgZmlsZSBjaGFuZ2VkLCA5NiBpbnNlcnRp b25zKCspLCA5MSBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9uZXQvY29yZS9ydG5ldGxpbmsu YyBiL25ldC9jb3JlL3J0bmV0bGluay5jCmluZGV4IDhkZTM2ODIuLmZlOTVjYjcgMTAwNjQ0Ci0t LSBhL25ldC9jb3JlL3J0bmV0bGluay5jCisrKyBiL25ldC9jb3JlL3J0bmV0bGluay5jCkBAIC0x Mjg3LDEwICsxMjg3LDYgQEAgc3RhdGljIGNvbnN0IHN0cnVjdCBubGFfcG9saWN5IGlmbGFfaW5m b19wb2xpY3lbSUZMQV9JTkZPX01BWCsxXSA9IHsKIAlbSUZMQV9JTkZPX1NMQVZFX0RBVEFdCT0g eyAudHlwZSA9IE5MQV9ORVNURUQgfSwKIH07CiAKLXN0YXRpYyBjb25zdCBzdHJ1Y3QgbmxhX3Bv bGljeSBpZmxhX3ZmaW5mb19wb2xpY3lbSUZMQV9WRl9JTkZPX01BWCsxXSA9IHsKLQlbSUZMQV9W Rl9JTkZPXQkJPSB7IC50eXBlID0gTkxBX05FU1RFRCB9LAotfTsKLQogc3RhdGljIGNvbnN0IHN0 cnVjdCBubGFfcG9saWN5IGlmbGFfdmZfcG9saWN5W0lGTEFfVkZfTUFYKzFdID0gewogCVtJRkxB X1ZGX01BQ10JCT0geyAubGVuID0gc2l6ZW9mKHN0cnVjdCBpZmxhX3ZmX21hYykgfSwKIAlbSUZM QV9WRl9WTEFOXQkJPSB7IC5sZW4gPSBzaXplb2Yoc3RydWN0IGlmbGFfdmZfdmxhbikgfSwKQEAg LTE0MzcsOTYgKzE0MzMsOTggQEAgc3RhdGljIGludCB2YWxpZGF0ZV9saW5rbXNnKHN0cnVjdCBu ZXRfZGV2aWNlICpkZXYsIHN0cnVjdCBubGF0dHIgKnRiW10pCiAJcmV0dXJuIDA7CiB9CiAKLXN0 YXRpYyBpbnQgZG9fc2V0dmZpbmZvKHN0cnVjdCBuZXRfZGV2aWNlICpkZXYsIHN0cnVjdCBubGF0 dHIgKmF0dHIpCitzdGF0aWMgaW50IGRvX3NldHZmaW5mbyhzdHJ1Y3QgbmV0X2RldmljZSAqZGV2 LCBzdHJ1Y3QgbmxhdHRyICoqdGIpCiB7Ci0JaW50IHJlbSwgZXJyID0gLUVJTlZBTDsKLQlzdHJ1 Y3QgbmxhdHRyICp2ZjsKIAljb25zdCBzdHJ1Y3QgbmV0X2RldmljZV9vcHMgKm9wcyA9IGRldi0+ bmV0ZGV2X29wczsKKwlpbnQgZXJyID0gLUVJTlZBTDsKIAotCW5sYV9mb3JfZWFjaF9uZXN0ZWQo dmYsIGF0dHIsIHJlbSkgewotCQlzd2l0Y2ggKG5sYV90eXBlKHZmKSkgewotCQljYXNlIElGTEFf VkZfTUFDOiB7Ci0JCQlzdHJ1Y3QgaWZsYV92Zl9tYWMgKml2bTsKLQkJCWl2bSA9IG5sYV9kYXRh KHZmKTsKLQkJCWVyciA9IC1FT1BOT1RTVVBQOwotCQkJaWYgKG9wcy0+bmRvX3NldF92Zl9tYWMp Ci0JCQkJZXJyID0gb3BzLT5uZG9fc2V0X3ZmX21hYyhkZXYsIGl2bS0+dmYsCi0JCQkJCQkJICBp dm0tPm1hYyk7Ci0JCQlicmVhazsKLQkJfQotCQljYXNlIElGTEFfVkZfVkxBTjogewotCQkJc3Ry dWN0IGlmbGFfdmZfdmxhbiAqaXZ2OwotCQkJaXZ2ID0gbmxhX2RhdGEodmYpOwotCQkJZXJyID0g LUVPUE5PVFNVUFA7Ci0JCQlpZiAob3BzLT5uZG9fc2V0X3ZmX3ZsYW4pCi0JCQkJZXJyID0gb3Bz LT5uZG9fc2V0X3ZmX3ZsYW4oZGV2LCBpdnYtPnZmLAotCQkJCQkJCSAgIGl2di0+dmxhbiwKLQkJ CQkJCQkgICBpdnYtPnFvcyk7Ci0JCQlicmVhazsKLQkJfQotCQljYXNlIElGTEFfVkZfVFhfUkFU RTogewotCQkJc3RydWN0IGlmbGFfdmZfdHhfcmF0ZSAqaXZ0OwotCQkJc3RydWN0IGlmbGFfdmZf aW5mbyBpdmY7Ci0JCQlpdnQgPSBubGFfZGF0YSh2Zik7Ci0JCQllcnIgPSAtRU9QTk9UU1VQUDsK LQkJCWlmIChvcHMtPm5kb19nZXRfdmZfY29uZmlnKQotCQkJCWVyciA9IG9wcy0+bmRvX2dldF92 Zl9jb25maWcoZGV2LCBpdnQtPnZmLAotCQkJCQkJCSAgICAgJml2Zik7Ci0JCQlpZiAoZXJyKQot CQkJCWJyZWFrOwotCQkJZXJyID0gLUVPUE5PVFNVUFA7Ci0JCQlpZiAob3BzLT5uZG9fc2V0X3Zm X3JhdGUpCi0JCQkJZXJyID0gb3BzLT5uZG9fc2V0X3ZmX3JhdGUoZGV2LCBpdnQtPnZmLAotCQkJ CQkJCSAgIGl2Zi5taW5fdHhfcmF0ZSwKLQkJCQkJCQkgICBpdnQtPnJhdGUpOwotCQkJYnJlYWs7 Ci0JCX0KLQkJY2FzZSBJRkxBX1ZGX1JBVEU6IHsKLQkJCXN0cnVjdCBpZmxhX3ZmX3JhdGUgKml2 dDsKLQkJCWl2dCA9IG5sYV9kYXRhKHZmKTsKLQkJCWVyciA9IC1FT1BOT1RTVVBQOwotCQkJaWYg KG9wcy0+bmRvX3NldF92Zl9yYXRlKQotCQkJCWVyciA9IG9wcy0+bmRvX3NldF92Zl9yYXRlKGRl diwgaXZ0LT52ZiwKLQkJCQkJCQkgICBpdnQtPm1pbl90eF9yYXRlLAotCQkJCQkJCSAgIGl2dC0+ bWF4X3R4X3JhdGUpOwotCQkJYnJlYWs7Ci0JCX0KLQkJY2FzZSBJRkxBX1ZGX1NQT09GQ0hLOiB7 Ci0JCQlzdHJ1Y3QgaWZsYV92Zl9zcG9vZmNoayAqaXZzOwotCQkJaXZzID0gbmxhX2RhdGEodmYp OwotCQkJZXJyID0gLUVPUE5PVFNVUFA7Ci0JCQlpZiAob3BzLT5uZG9fc2V0X3ZmX3Nwb29mY2hr KQotCQkJCWVyciA9IG9wcy0+bmRvX3NldF92Zl9zcG9vZmNoayhkZXYsIGl2cy0+dmYsCi0JCQkJ CQkJICAgICAgIGl2cy0+c2V0dGluZyk7Ci0JCQlicmVhazsKLQkJfQotCQljYXNlIElGTEFfVkZf TElOS19TVEFURTogewotCQkJc3RydWN0IGlmbGFfdmZfbGlua19zdGF0ZSAqaXZsOwotCQkJaXZs ID0gbmxhX2RhdGEodmYpOwotCQkJZXJyID0gLUVPUE5PVFNVUFA7Ci0JCQlpZiAob3BzLT5uZG9f c2V0X3ZmX2xpbmtfc3RhdGUpCi0JCQkJZXJyID0gb3BzLT5uZG9fc2V0X3ZmX2xpbmtfc3RhdGUo ZGV2LCBpdmwtPnZmLAotCQkJCQkJCQkgaXZsLT5saW5rX3N0YXRlKTsKLQkJCWJyZWFrOwotCQl9 Ci0JCWNhc2UgSUZMQV9WRl9SU1NfUVVFUllfRU46IHsKLQkJCXN0cnVjdCBpZmxhX3ZmX3Jzc19x dWVyeV9lbiAqaXZyc3NxX2VuOworCWlmICh0YltJRkxBX1ZGX01BQ10pIHsKKwkJc3RydWN0IGlm bGFfdmZfbWFjICppdm0gPSBubGFfZGF0YSh0YltJRkxBX1ZGX01BQ10pOwogCi0JCQlpdnJzc3Ff ZW4gPSBubGFfZGF0YSh2Zik7Ci0JCQllcnIgPSAtRU9QTk9UU1VQUDsKLQkJCWlmIChvcHMtPm5k b19zZXRfdmZfcnNzX3F1ZXJ5X2VuKQotCQkJCWVyciA9IG9wcy0+bmRvX3NldF92Zl9yc3NfcXVl cnlfZW4oZGV2LAotCQkJCQkJCSAgICBpdnJzc3FfZW4tPnZmLAotCQkJCQkJCSAgICBpdnJzc3Ff ZW4tPnNldHRpbmcpOwotCQkJYnJlYWs7Ci0JCX0KLQkJZGVmYXVsdDoKLQkJCWVyciA9IC1FSU5W QUw7Ci0JCQlicmVhazsKLQkJfQotCQlpZiAoZXJyKQotCQkJYnJlYWs7CisJCWVyciA9IC1FT1BO T1RTVVBQOworCQlpZiAob3BzLT5uZG9fc2V0X3ZmX21hYykKKwkJCWVyciA9IG9wcy0+bmRvX3Nl dF92Zl9tYWMoZGV2LCBpdm0tPnZmLAorCQkJCQkJICBpdm0tPm1hYyk7CisJCWlmIChlcnIgPCAw KQorCQkJcmV0dXJuIGVycjsKKwl9CisKKwlpZiAodGJbSUZMQV9WRl9WTEFOXSkgeworCQlzdHJ1 Y3QgaWZsYV92Zl92bGFuICppdnYgPSBubGFfZGF0YSh0YltJRkxBX1ZGX1ZMQU5dKTsKKworCQll cnIgPSAtRU9QTk9UU1VQUDsKKwkJaWYgKG9wcy0+bmRvX3NldF92Zl92bGFuKQorCQkJZXJyID0g b3BzLT5uZG9fc2V0X3ZmX3ZsYW4oZGV2LCBpdnYtPnZmLCBpdnYtPnZsYW4sCisJCQkJCQkgICBp dnYtPnFvcyk7CisJCWlmIChlcnIgPCAwKQorCQkJcmV0dXJuIGVycjsKKwl9CisKKwlpZiAodGJb SUZMQV9WRl9UWF9SQVRFXSkgeworCQlzdHJ1Y3QgaWZsYV92Zl90eF9yYXRlICppdnQgPSBubGFf ZGF0YSh0YltJRkxBX1ZGX1RYX1JBVEVdKTsKKwkJc3RydWN0IGlmbGFfdmZfaW5mbyBpdmY7CisK KwkJZXJyID0gLUVPUE5PVFNVUFA7CisJCWlmIChvcHMtPm5kb19nZXRfdmZfY29uZmlnKQorCQkJ ZXJyID0gb3BzLT5uZG9fZ2V0X3ZmX2NvbmZpZyhkZXYsIGl2dC0+dmYsICZpdmYpOworCQlpZiAo ZXJyIDwgMCkKKwkJCXJldHVybiBlcnI7CisKKwkJZXJyID0gLUVPUE5PVFNVUFA7CisJCWlmIChv cHMtPm5kb19zZXRfdmZfcmF0ZSkKKwkJCWVyciA9IG9wcy0+bmRvX3NldF92Zl9yYXRlKGRldiwg aXZ0LT52ZiwKKwkJCQkJCSAgIGl2Zi5taW5fdHhfcmF0ZSwKKwkJCQkJCSAgIGl2dC0+cmF0ZSk7 CisJCWlmIChlcnIgPCAwKQorCQkJcmV0dXJuIGVycjsKKwl9CisKKwlpZiAodGJbSUZMQV9WRl9S QVRFXSkgeworCQlzdHJ1Y3QgaWZsYV92Zl9yYXRlICppdnQgPSBubGFfZGF0YSh0YltJRkxBX1ZG X1JBVEVdKTsKKworCQllcnIgPSAtRU9QTk9UU1VQUDsKKwkJaWYgKG9wcy0+bmRvX3NldF92Zl9y YXRlKQorCQkJZXJyID0gb3BzLT5uZG9fc2V0X3ZmX3JhdGUoZGV2LCBpdnQtPnZmLAorCQkJCQkJ ICAgaXZ0LT5taW5fdHhfcmF0ZSwKKwkJCQkJCSAgIGl2dC0+bWF4X3R4X3JhdGUpOworCQlpZiAo ZXJyIDwgMCkKKwkJCXJldHVybiBlcnI7CiAJfQorCisJaWYgKHRiW0lGTEFfVkZfU1BPT0ZDSEtd KSB7CisJCXN0cnVjdCBpZmxhX3ZmX3Nwb29mY2hrICppdnMgPSBubGFfZGF0YSh0YltJRkxBX1ZG X1NQT09GQ0hLXSk7CisKKwkJZXJyID0gLUVPUE5PVFNVUFA7CisJCWlmIChvcHMtPm5kb19zZXRf dmZfc3Bvb2ZjaGspCisJCQllcnIgPSBvcHMtPm5kb19zZXRfdmZfc3Bvb2ZjaGsoZGV2LCBpdnMt PnZmLAorCQkJCQkJICAgICAgIGl2cy0+c2V0dGluZyk7CisJCWlmIChlcnIgPCAwKQorCQkJcmV0 dXJuIGVycjsKKwl9CisKKwlpZiAodGJbSUZMQV9WRl9MSU5LX1NUQVRFXSkgeworCQlzdHJ1Y3Qg aWZsYV92Zl9saW5rX3N0YXRlICppdmwgPSBubGFfZGF0YSh0YltJRkxBX1ZGX0xJTktfU1RBVEVd KTsKKworCQllcnIgPSAtRU9QTk9UU1VQUDsKKwkJaWYgKG9wcy0+bmRvX3NldF92Zl9saW5rX3N0 YXRlKQorCQkJZXJyID0gb3BzLT5uZG9fc2V0X3ZmX2xpbmtfc3RhdGUoZGV2LCBpdmwtPnZmLAor CQkJCQkJCSBpdmwtPmxpbmtfc3RhdGUpOworCQlpZiAoZXJyIDwgMCkKKwkJCXJldHVybiBlcnI7 CisJfQorCisJaWYgKHRiW0lGTEFfVkZfUlNTX1FVRVJZX0VOXSkgeworCQlzdHJ1Y3QgaWZsYV92 Zl9yc3NfcXVlcnlfZW4gKml2cnNzcV9lbjsKKworCQllcnIgPSAtRU9QTk9UU1VQUDsKKwkJaXZy c3NxX2VuID0gbmxhX2RhdGEodGJbSUZMQV9WRl9SU1NfUVVFUllfRU5dKTsKKwkJaWYgKG9wcy0+ bmRvX3NldF92Zl9yc3NfcXVlcnlfZW4pCisJCQllcnIgPSBvcHMtPm5kb19zZXRfdmZfcnNzX3F1 ZXJ5X2VuKGRldiwgaXZyc3NxX2VuLT52ZiwKKwkJCQkJCQkgICBpdnJzc3FfZW4tPnNldHRpbmcp OworCQlpZiAoZXJyIDwgMCkKKwkJCXJldHVybiBlcnI7CisJfQorCiAJcmV0dXJuIGVycjsKIH0K IApAQCAtMTcyMiwxNCArMTcyMCwyMSBAQCBzdGF0aWMgaW50IGRvX3NldGxpbmsoY29uc3Qgc3Ry dWN0IHNrX2J1ZmYgKnNrYiwKIAl9CiAKIAlpZiAodGJbSUZMQV9WRklORk9fTElTVF0pIHsKKwkJ c3RydWN0IG5sYXR0ciAqdmZpbmZvW0lGTEFfVkZfTUFYICsgMV07CiAJCXN0cnVjdCBubGF0dHIg KmF0dHI7CiAJCWludCByZW07CisKIAkJbmxhX2Zvcl9lYWNoX25lc3RlZChhdHRyLCB0YltJRkxB X1ZGSU5GT19MSVNUXSwgcmVtKSB7Ci0JCQlpZiAobmxhX3R5cGUoYXR0cikgIT0gSUZMQV9WRl9J TkZPKSB7CisJCQlpZiAobmxhX3R5cGUoYXR0cikgIT0gSUZMQV9WRl9JTkZPIHx8CisJCQkgICAg bmxhX2xlbihhdHRyKSA8IE5MQV9IRFJMRU4pIHsKIAkJCQllcnIgPSAtRUlOVkFMOwogCQkJCWdv dG8gZXJyb3V0OwogCQkJfQotCQkJZXJyID0gZG9fc2V0dmZpbmZvKGRldiwgYXR0cik7CisJCQll cnIgPSBubGFfcGFyc2VfbmVzdGVkKHZmaW5mbywgSUZMQV9WRl9NQVgsIGF0dHIsCisJCQkJCSAg ICAgICBpZmxhX3ZmX3BvbGljeSk7CisJCQlpZiAoZXJyIDwgMCkKKwkJCQlnb3RvIGVycm91dDsK KwkJCWVyciA9IGRvX3NldHZmaW5mbyhkZXYsIHZmaW5mbyk7CiAJCQlpZiAoZXJyIDwgMCkKIAkJ CQlnb3RvIGVycm91dDsKIAkJCXN0YXR1cyB8PSBET19TRVRMSU5LX05PVElGWTsKLS0gCjIuMS4w CgoKRnJvbSBlMjIwNWM0MmMxZTgyZDM1N2Y3YzUwMDdmMTUwN2UwYjlmMzQxMDkyIE1vbiBTZXAg MTcgMDA6MDA6MDAgMjAwMQpGcm9tOiA9P1VURi04P3E/VGltbz0yMFRlcj1DMz1BNHM/PSA8dGlt by50ZXJhc0Bpa2kuZmk+CkRhdGU6IFR1ZSwgNyBKdWwgMjAxNSAwODozNDoxMyArMDMwMApTdWJq ZWN0OiBbUEFUQ0ggMDYvNDZdIGlwX3R1bm5lbDogZml4IGlwdjQgcG10dSBjaGVjayB0byBob25v ciBpbm5lciBpcCBoZWFkZXIKIGRmCk1JTUUtVmVyc2lvbjogMS4wCkNvbnRlbnQtVHlwZTogdGV4 dC9wbGFpbjsgY2hhcnNldD1VVEYtOApDb250ZW50LVRyYW5zZmVyLUVuY29kaW5nOiA4Yml0Cgpb IFVwc3RyZWFtIGNvbW1pdCBmYzI0ZjJiMjA5NDM2NmRhODc4NmY1OWYyNjA2MzA3ZTkzNGNlYTE3 IF0KCkZyYWcgbmVlZGVkIHNob3VsZCBiZSBzZW50IG9ubHkgaWYgdGhlIGlubmVyIGhlYWRlciBh c2tlZAp0byBub3QgZnJhZ21lbnQuIEN1cnJlbnRseSBmcmFnbWVudGF0aW9uIGlzIGJyb2tlbiBp ZiB0aGUKdHVubmVsIGhhcyBkZiBzZXQsIGJ1dCBkZiB3YXMgbm90IGFza2VkIGluIHRoZSBvcmln aW5hbApwYWNrZXQuIFRoZSB0dW5uZWwncyBkZiBuZWVkcyB0byBiZSBzdGlsbCBjaGVja2VkIHRv IHVwZGF0ZQppbnRlcm5hbGx5IHRoZSBwbXR1IGNhY2hlLgoKQ29tbWl0IDIzYTM2NDdiYzRmOTNi YWMgYnJva2UgaXQsIGFuZCB0aGlzIGNvbW1pdCBmaXhlcwp0aGUgaXB2NCBkZiBjaGVjayBiYWNr IHRvIHRoZSB3YXkgaXQgd2FzLgoKRml4ZXM6IDIzYTM2NDdiYzRmOTNiYWMgKCJpcF90dW5uZWxz OiBVc2Ugc2tiLWxlbiB0byBQTVRVIGNoZWNrLiIpCkNjOiBQcmF2aW4gQiBTaGVsYXIgPHBzaGVs YXJAbmljaXJhLmNvbT4KU2lnbmVkLW9mZi1ieTogVGltbyBUZXLDpHMgPHRpbW8udGVyYXNAaWtp LmZpPgpBY2tlZC1ieTogUHJhdmluIEIgU2hlbGFyIDxwc2hlbGFyQG5pY2lyYS5jb20+ClNpZ25l ZC1vZmYtYnk6IERhdmlkIFMuIE1pbGxlciA8ZGF2ZW1AZGF2ZW1sb2Z0Lm5ldD4KLS0tCiBuZXQv aXB2NC9pcF90dW5uZWwuYyB8IDggKysrKystLS0KIDEgZmlsZSBjaGFuZ2VkLCA1IGluc2VydGlv bnMoKyksIDMgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvbmV0L2lwdjQvaXBfdHVubmVsLmMg Yi9uZXQvaXB2NC9pcF90dW5uZWwuYwppbmRleCA0YzJjM2JhLi42MjZkOWU1IDEwMDY0NAotLS0g YS9uZXQvaXB2NC9pcF90dW5uZWwuYworKysgYi9uZXQvaXB2NC9pcF90dW5uZWwuYwpAQCAtNTg2 LDcgKzU4Niw4IEBAIGludCBpcF90dW5uZWxfZW5jYXAoc3RydWN0IHNrX2J1ZmYgKnNrYiwgc3Ry dWN0IGlwX3R1bm5lbCAqdCwKIEVYUE9SVF9TWU1CT0woaXBfdHVubmVsX2VuY2FwKTsKIAogc3Rh dGljIGludCB0bmxfdXBkYXRlX3BtdHUoc3RydWN0IG5ldF9kZXZpY2UgKmRldiwgc3RydWN0IHNr X2J1ZmYgKnNrYiwKLQkJCSAgICBzdHJ1Y3QgcnRhYmxlICpydCwgX19iZTE2IGRmKQorCQkJICAg IHN0cnVjdCBydGFibGUgKnJ0LCBfX2JlMTYgZGYsCisJCQkgICAgY29uc3Qgc3RydWN0IGlwaGRy ICppbm5lcl9pcGgpCiB7CiAJc3RydWN0IGlwX3R1bm5lbCAqdHVubmVsID0gbmV0ZGV2X3ByaXYo ZGV2KTsKIAlpbnQgcGt0X3NpemUgPSBza2ItPmxlbiAtIHR1bm5lbC0+aGxlbiAtIGRldi0+aGFy ZF9oZWFkZXJfbGVuOwpAQCAtNjAzLDcgKzYwNCw4IEBAIHN0YXRpYyBpbnQgdG5sX3VwZGF0ZV9w bXR1KHN0cnVjdCBuZXRfZGV2aWNlICpkZXYsIHN0cnVjdCBza19idWZmICpza2IsCiAKIAlpZiAo c2tiLT5wcm90b2NvbCA9PSBodG9ucyhFVEhfUF9JUCkpIHsKIAkJaWYgKCFza2JfaXNfZ3NvKHNr YikgJiYKLQkJICAgIChkZiAmIGh0b25zKElQX0RGKSkgJiYgbXR1IDwgcGt0X3NpemUpIHsKKwkJ ICAgIChpbm5lcl9pcGgtPmZyYWdfb2ZmICYgaHRvbnMoSVBfREYpKSAmJgorCQkgICAgbXR1IDwg cGt0X3NpemUpIHsKIAkJCW1lbXNldChJUENCKHNrYiksIDAsIHNpemVvZigqSVBDQihza2IpKSk7 CiAJCQlpY21wX3NlbmQoc2tiLCBJQ01QX0RFU1RfVU5SRUFDSCwgSUNNUF9GUkFHX05FRURFRCwg aHRvbmwobXR1KSk7CiAJCQlyZXR1cm4gLUUyQklHOwpAQCAtNzM3LDcgKzczOSw3IEBAIHZvaWQg aXBfdHVubmVsX3htaXQoc3RydWN0IHNrX2J1ZmYgKnNrYiwgc3RydWN0IG5ldF9kZXZpY2UgKmRl diwKIAkJZ290byB0eF9lcnJvcjsKIAl9CiAKLQlpZiAodG5sX3VwZGF0ZV9wbXR1KGRldiwgc2ti LCBydCwgdG5sX3BhcmFtcy0+ZnJhZ19vZmYpKSB7CisJaWYgKHRubF91cGRhdGVfcG10dShkZXYs IHNrYiwgcnQsIHRubF9wYXJhbXMtPmZyYWdfb2ZmLCBpbm5lcl9pcGgpKSB7CiAJCWlwX3J0X3B1 dChydCk7CiAJCWdvdG8gdHhfZXJyb3I7CiAJfQotLSAKMi4xLjAKCgpGcm9tIGI2NjNlNTllNTIx YzkyYWVjNTcwNzhlNTEyZjU0ZmE2Y2FiZTk5OGEgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCkZy b206IFN0ZXBoZW4gU21hbGxleSA8c2RzQHR5Y2hvLm5zYS5nb3Y+CkRhdGU6IFR1ZSwgNyBKdWwg MjAxNSAwOTo0Mzo0NSAtMDQwMApTdWJqZWN0OiBbUEFUQ0ggMDcvNDZdIG5ldC90aXBjOiBpbml0 aWFsaXplIHNlY3VyaXR5IHN0YXRlIGZvciBuZXcgY29ubmVjdGlvbgogc29ja2V0CgpbIFVwc3Ry ZWFtIGNvbW1pdCBmZGQ3NWVhOGRmMzcwZjIwNmE4MTYzNzg2ZTc0NzBjMTI3N2E1MDY0IF0KCkNh bGxpbmcgY29ubmVjdCgpIHdpdGggYW4gQUZfVElQQyBzb2NrZXQgd291bGQgdHJpZ2dlciBhIHNl cmllcwpvZiBlcnJvciBtZXNzYWdlcyBmcm9tIFNFTGludXggYWxvbmcgdGhlIGxpbmVzIG9mOgpT RUxpbnV4OiBJbnZhbGlkIGNsYXNzIDAKdHlwZT1BVkMgbXNnPWF1ZGl0KDE0MzQxMjY2NTguNDg3 OjM0NTAwKTogYXZjOiAgZGVuaWVkICB7IDx1bnByaW50YWJsZT4gfQogIGZvciBwaWQ9MjkyIGNv bW09Imt3b3JrZXIvdTE2OjUiIHNjb250ZXh0PXN5c3RlbV91OnN5c3RlbV9yOmtlcm5lbF90OnMw CiAgdGNvbnRleHQ9c3lzdGVtX3U6b2JqZWN0X3I6dW5sYWJlbGVkX3Q6czAgdGNsYXNzPTx1bnBy aW50YWJsZT4KICBwZXJtaXNzaXZlPTAKClRoaXMgd2FzIGR1ZSB0byBhIGZhaWx1cmUgdG8gaW5p dGlhbGl6ZSB0aGUgc2VjdXJpdHkgc3RhdGUgb2YgdGhlIG5ldwpjb25uZWN0aW9uIHNvY2sgYnkg dGhlIHRpcGMgY29kZSwgbGVhdmluZyBpdCB3aXRoIGp1bmsgaW4gdGhlIHNlY3VyaXR5CmNsYXNz IGZpZWxkIGFuZCBhbiB1bmxhYmVsZWQgc2VjaWQuICBBZGQgYSBjYWxsIHRvIHNlY3VyaXR5X3Nr X2Nsb25lKCkKdG8gaW5oZXJpdCB0aGUgc2VjdXJpdHkgc3RhdGUgZnJvbSB0aGUgcGFyZW50IHNv Y2tldC4KClJlcG9ydGVkLWJ5OiBUaW0gU2hlYXJlciA8dGltLnNoZWFyZXJAb3ZlcnR1cmVuZXR3 b3Jrcy5jb20+ClNpZ25lZC1vZmYtYnk6IFN0ZXBoZW4gU21hbGxleSA8c2RzQHR5Y2hvLm5zYS5n b3Y+CkFja2VkLWJ5OiBQYXVsIE1vb3JlIDxwYXVsQHBhdWwtbW9vcmUuY29tPgpBY2tlZC1ieTog WWluZyBYdWUgPHlpbmcueHVlQHdpbmRyaXZlci5jb20+ClNpZ25lZC1vZmYtYnk6IERhdmlkIFMu IE1pbGxlciA8ZGF2ZW1AZGF2ZW1sb2Z0Lm5ldD4KLS0tCiBuZXQvdGlwYy9zb2NrZXQuYyB8IDEg KwogMSBmaWxlIGNoYW5nZWQsIDEgaW5zZXJ0aW9uKCspCgpkaWZmIC0tZ2l0IGEvbmV0L3RpcGMv c29ja2V0LmMgYi9uZXQvdGlwYy9zb2NrZXQuYwppbmRleCBmNDg1NjAwLi4yMGNjNmRmIDEwMDY0 NAotLS0gYS9uZXQvdGlwYy9zb2NrZXQuYworKysgYi9uZXQvdGlwYy9zb2NrZXQuYwpAQCAtMjAw OSw2ICsyMDA5LDcgQEAgc3RhdGljIGludCB0aXBjX2FjY2VwdChzdHJ1Y3Qgc29ja2V0ICpzb2Nr LCBzdHJ1Y3Qgc29ja2V0ICpuZXdfc29jaywgaW50IGZsYWdzKQogCXJlcyA9IHRpcGNfc2tfY3Jl YXRlKHNvY2tfbmV0KHNvY2stPnNrKSwgbmV3X3NvY2ssIDAsIDEpOwogCWlmIChyZXMpCiAJCWdv dG8gZXhpdDsKKwlzZWN1cml0eV9za19jbG9uZShzb2NrLT5zaywgbmV3X3NvY2stPnNrKTsKIAog CW5ld19zayA9IG5ld19zb2NrLT5zazsKIAluZXdfdHNvY2sgPSB0aXBjX3NrKG5ld19zayk7Ci0t IAoyLjEuMAoKCkZyb20gYjVlMzBlYmZiZjhjMmI5Mzk3MDQ5MmFiNjZiZTE3NzhiMzExNDMzMiBN b24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJvbTogTmlrb2xheSBBbGVrc2FuZHJvdiA8cmF6b3JA YmxhY2t3YWxsLm9yZz4KRGF0ZTogVHVlLCA3IEp1bCAyMDE1IDE1OjU1OjU2ICswMjAwClN1Ympl Y3Q6IFtQQVRDSCAwOC80Nl0gYnJpZGdlOiBtZGI6IHplcm8gb3V0IHRoZSBsb2NhbCBicl9pcCB2 YXJpYWJsZSBiZWZvcmUKIHVzZQoKWyBVcHN0cmVhbSBjb21taXQgZjExNThiNzRlNTRmMmUyNDYy YmE1ZTJmNDVhMTE4MjQ2ZDlkNWI0MyBdCgpTaW5jZSBjb21taXQgYjBlOWEzMGRkNjY5ICgiYnJp ZGdlOiBBZGQgdmxhbiBpZCB0byBtdWx0aWNhc3QgZ3JvdXBzIikKdGhlcmUncyBhIGNoZWNrIGlu IGJyX2lwX2VxdWFsKCkgZm9yIGEgbWF0Y2hpbmcgdmxhbiBpZCwgYnV0IHRoZSBtZGIKZnVuY3Rp b25zIHdlcmUgbm90IG1vZGlmaWVkIHRvIHVzZSAob3IgYXQgbGVhc3QgemVybyBpdCkgc28gd2hl biBhbgplbnRyeSB3YXMgYWRkZWQgaXQgd291bGQgaGF2ZSBhIGdhcmJhZ2UgdmxhbiBpZCAoZnJv bSB0aGUgbG9jYWwgYnJfaXAKdmFyaWFibGUgaW4gX19icl9tZGJfYWRkL2RlbCkgYW5kIHRoaXMg d291bGQgcHJldmVudCBpdCBmcm9tIGJlaW5nCm1hdGNoZWQgYW5kIGFsc28gZGVsZXRlZC4gU28g emVybyBvdXQgdGhlIHdob2xlIGxvY2FsIGlwIHZhciB0byBwcm90ZWN0Cm91cnNlbHZlcyBmcm9t IGZ1dHVyZSBjaGFuZ2VzIGFuZCBhbHNvIHRvIGZpeCB0aGUgY3VycmVudCBidWcsIHNpbmNlCnRo ZXJlJ3Mgbm8gdmxhbiBpZCBzdXBwb3J0IGluIHRoZSBtZGIgdWFwaSAtIHVzZSBhbHdheXMgdmxh biBpZCAwLgpFeGFtcGxlIGJlZm9yZSBwYXRjaDoKcm9vdEBkZWJpYW46fiMgYnJpZGdlIG1kYiBh ZGQgZGV2IGJyMCBwb3J0IGV0aDEgZ3JwIDIzOS4wLjAuMSBwZXJtYW5lbnQKcm9vdEBkZWJpYW46 fiMgYnJpZGdlIG1kYgpkZXYgYnIwIHBvcnQgZXRoMSBncnAgMjM5LjAuMC4xIHBlcm1hbmVudApy b290QGRlYmlhbjp+IyBicmlkZ2UgbWRiIGRlbCBkZXYgYnIwIHBvcnQgZXRoMSBncnAgMjM5LjAu MC4xIHBlcm1hbmVudApSVE5FVExJTksgYW5zd2VyczogSW52YWxpZCBhcmd1bWVudAoKQWZ0ZXIg cGF0Y2g6CnJvb3RAZGViaWFuOn4jIGJyaWRnZSBtZGIgYWRkIGRldiBicjAgcG9ydCBldGgxIGdy cCAyMzkuMC4wLjEgcGVybWFuZW50CnJvb3RAZGViaWFuOn4jIGJyaWRnZSBtZGIKZGV2IGJyMCBw b3J0IGV0aDEgZ3JwIDIzOS4wLjAuMSBwZXJtYW5lbnQKcm9vdEBkZWJpYW46fiMgYnJpZGdlIG1k YiBkZWwgZGV2IGJyMCBwb3J0IGV0aDEgZ3JwIDIzOS4wLjAuMSBwZXJtYW5lbnQKcm9vdEBkZWJp YW46fiMgYnJpZGdlIG1kYgoKU2lnbmVkLW9mZi1ieTogTmlrb2xheSBBbGVrc2FuZHJvdiA8cmF6 b3JAYmxhY2t3YWxsLm9yZz4KRml4ZXM6IGIwZTlhMzBkZDY2OSAoImJyaWRnZTogQWRkIHZsYW4g aWQgdG8gbXVsdGljYXN0IGdyb3VwcyIpClNpZ25lZC1vZmYtYnk6IERhdmlkIFMuIE1pbGxlciA8 ZGF2ZW1AZGF2ZW1sb2Z0Lm5ldD4KLS0tCiBuZXQvYnJpZGdlL2JyX21kYi5jIHwgMiArKwogMSBm aWxlIGNoYW5nZWQsIDIgaW5zZXJ0aW9ucygrKQoKZGlmZiAtLWdpdCBhL25ldC9icmlkZ2UvYnJf bWRiLmMgYi9uZXQvYnJpZGdlL2JyX21kYi5jCmluZGV4IGUyOWFkNzAuLmNjMDAwNjYgMTAwNjQ0 Ci0tLSBhL25ldC9icmlkZ2UvYnJfbWRiLmMKKysrIGIvbmV0L2JyaWRnZS9icl9tZGIuYwpAQCAt MzcxLDYgKzM3MSw3IEBAIHN0YXRpYyBpbnQgX19icl9tZGJfYWRkKHN0cnVjdCBuZXQgKm5ldCwg c3RydWN0IG5ldF9icmlkZ2UgKmJyLAogCWlmICghcCB8fCBwLT5iciAhPSBiciB8fCBwLT5zdGF0 ZSA9PSBCUl9TVEFURV9ESVNBQkxFRCkKIAkJcmV0dXJuIC1FSU5WQUw7CiAKKwltZW1zZXQoJmlw LCAwLCBzaXplb2YoaXApKTsKIAlpcC5wcm90byA9IGVudHJ5LT5hZGRyLnByb3RvOwogCWlmIChp cC5wcm90byA9PSBodG9ucyhFVEhfUF9JUCkpCiAJCWlwLnUuaXA0ID0gZW50cnktPmFkZHIudS5p cDQ7CkBAIC00MTcsNiArNDE4LDcgQEAgc3RhdGljIGludCBfX2JyX21kYl9kZWwoc3RydWN0IG5l dF9icmlkZ2UgKmJyLCBzdHJ1Y3QgYnJfbWRiX2VudHJ5ICplbnRyeSkKIAlpZiAoIW5ldGlmX3J1 bm5pbmcoYnItPmRldikgfHwgYnItPm11bHRpY2FzdF9kaXNhYmxlZCkKIAkJcmV0dXJuIC1FSU5W QUw7CiAKKwltZW1zZXQoJmlwLCAwLCBzaXplb2YoaXApKTsKIAlpcC5wcm90byA9IGVudHJ5LT5h ZGRyLnByb3RvOwogCWlmIChpcC5wcm90byA9PSBodG9ucyhFVEhfUF9JUCkpIHsKIAkJaWYgKHRp bWVyX3BlbmRpbmcoJmJyLT5pcDRfb3RoZXJfcXVlcnkudGltZXIpKQotLSAKMi4xLjAKCgpGcm9t IGZlOThjNDQzMTk1N2UzMDg1OTVjYzVhZjc5OWNiOWY4NmMwODc1ZDEgTW9uIFNlcCAxNyAwMDow MDowMCAyMDAxCkZyb206IE9sZWcgTmVzdGVyb3YgPG9sZWdAcmVkaGF0LmNvbT4KRGF0ZTogV2Vk LCA4IEp1bCAyMDE1IDIxOjQyOjExICswMjAwClN1YmplY3Q6IFtQQVRDSCAwOS80Nl0gbmV0OiBw a3RnZW46IGZpeCByYWNlIGJldHdlZW4gcGt0Z2VuX3RocmVhZF93b3JrZXIoKQogYW5kIGt0aHJl YWRfc3RvcCgpCgpbIFVwc3RyZWFtIGNvbW1pdCBmZWNkZjhiZTJkOTFlMDRiMGE5YTRmNzlmZjA2 NDk5YTM2ZjVkMTRmIF0KCnBrdGdlbl90aHJlYWRfd29ya2VyKCkgaXMgb2J2aW91c2x5IHJhY3ks IGt0aHJlYWRfc3RvcCgpIGNhbiBjb21lCmJldHdlZW4gdGhlIGt0aHJlYWRfc2hvdWxkX3N0b3Ao KSBjaGVjayBhbmQgc2V0X2N1cnJlbnRfc3RhdGUoKS4KClNpZ25lZC1vZmYtYnk6IE9sZWcgTmVz dGVyb3YgPG9sZWdAcmVkaGF0LmNvbT4KUmVwb3J0ZWQtYnk6IEphbiBTdGFuY2VrIDxqc3RhbmNl a0ByZWRoYXQuY29tPgpSZXBvcnRlZC1ieTogTWFyY2VsbyBMZWl0bmVyIDxtbGVpdG5lckByZWRo YXQuY29tPgpTaWduZWQtb2ZmLWJ5OiBEYXZpZCBTLiBNaWxsZXIgPGRhdmVtQGRhdmVtbG9mdC5u ZXQ+Ci0tLQogbmV0L2NvcmUvcGt0Z2VuLmMgfCA0ICsrKy0KIDEgZmlsZSBjaGFuZ2VkLCAzIGlu c2VydGlvbnMoKyksIDEgZGVsZXRpb24oLSkKCmRpZmYgLS1naXQgYS9uZXQvY29yZS9wa3RnZW4u YyBiL25ldC9jb3JlL3BrdGdlbi5jCmluZGV4IDUwODE1NWIuLjA0M2VhMTg2IDEwMDY0NAotLS0g YS9uZXQvY29yZS9wa3RnZW4uYworKysgYi9uZXQvY29yZS9wa3RnZW4uYwpAQCAtMzQ5MCw4ICsz NDkwLDEwIEBAIHN0YXRpYyBpbnQgcGt0Z2VuX3RocmVhZF93b3JrZXIodm9pZCAqYXJnKQogCXBr dGdlbl9yZW1fdGhyZWFkKHQpOwogCiAJLyogV2FpdCBmb3Iga3RocmVhZF9zdG9wICovCi0Jd2hp bGUgKCFrdGhyZWFkX3Nob3VsZF9zdG9wKCkpIHsKKwlmb3IgKDs7KSB7CiAJCXNldF9jdXJyZW50 X3N0YXRlKFRBU0tfSU5URVJSVVBUSUJMRSk7CisJCWlmIChrdGhyZWFkX3Nob3VsZF9zdG9wKCkp CisJCQlicmVhazsKIAkJc2NoZWR1bGUoKTsKIAl9CiAJX19zZXRfY3VycmVudF9zdGF0ZShUQVNL X1JVTk5JTkcpOwotLSAKMi4xLjAKCgpGcm9tIDE1ZDUwYzRmMjk1ZDg0MDNmNmZkODE4MzkxZTA0 YjJjNGYzZTk2MzcgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCkZyb206IEVyaWMgRHVtYXpldCA8 ZWR1bWF6ZXRAZ29vZ2xlLmNvbT4KRGF0ZTogVGh1LCA5IEp1bCAyMDE1IDE4OjU2OjA3ICswMjAw ClN1YmplY3Q6IFtQQVRDSCAxMC80Nl0gYnJpZGdlOiBmaXggcG90ZW50aWFsIGNyYXNoIGluIF9f bmV0ZGV2X3BpY2tfdHgoKQoKWyBVcHN0cmVhbSBjb21taXQgYTdkMzVmOWQ3M2U5ZmZhNzRhMDIz MDRiODE3ZTU3OWVlYzYzMmY2NyBdCgpDb21taXQgYzI5MzkwYzZkZmVlICgieHBzOiBtdXN0IGNs ZWFyIHNlbmRlcl9jcHUgYmVmb3JlIGZvcndhcmRpbmciKQpmaXhlZCBhbiBpc3N1ZSBpbiBub3Jt YWwgZm9yd2FyZCBwYXRoLCBjYXVzZWQgYnkgc2VuZGVyX2NwdSAmIG5hcGlfaWQKc2tiIGZpZWxk cyBiZWluZyBhbiB1bmlvbi4KCkJyaWRnZSBpcyBhbm90aGVyIHBvaW50IHdoZXJlIHNrYiBjYW4g YmUgZm9yd2FyZGVkLCBzbyB3ZSBuZWVkCnRoZSBzYW1lIGN1cmUuCgpCdWcgdHJpZ2dlcnMgaWYg cGFja2V0IHdhcyByZWNlaXZlZCBvbiBhIE5JQyB1c2luZyBza2JfbWFya19uYXBpX2lkKCkKCkZp eGVzOiAyYmQ4MjQ4NGJiNGMgKCJ4cHM6IGZpeCB4cHMgZm9yIHN0YWNrZWQgZGV2aWNlcyIpClNp Z25lZC1vZmYtYnk6IEVyaWMgRHVtYXpldCA8ZWR1bWF6ZXRAZ29vZ2xlLmNvbT4KUmVwb3J0ZWQt Ynk6IEJvYiBMaXUgPGJvYi5saXVAb3JhY2xlLmNvbT4KVGVzdGVkLWJ5OiBCb2IgTGl1IDxib2Iu bGl1QG9yYWNsZS5jb20+ClNpZ25lZC1vZmYtYnk6IERhdmlkIFMuIE1pbGxlciA8ZGF2ZW1AZGF2 ZW1sb2Z0Lm5ldD4KLS0tCiBuZXQvYnJpZGdlL2JyX2ZvcndhcmQuYyB8IDEgKwogMSBmaWxlIGNo YW5nZWQsIDEgaW5zZXJ0aW9uKCspCgpkaWZmIC0tZ2l0IGEvbmV0L2JyaWRnZS9icl9mb3J3YXJk LmMgYi9uZXQvYnJpZGdlL2JyX2ZvcndhcmQuYwppbmRleCBlOTc1NzJiLi4wZmY2ZTFiIDEwMDY0 NAotLS0gYS9uZXQvYnJpZGdlL2JyX2ZvcndhcmQuYworKysgYi9uZXQvYnJpZGdlL2JyX2Zvcndh cmQuYwpAQCAtNDIsNiArNDIsNyBAQCBpbnQgYnJfZGV2X3F1ZXVlX3B1c2hfeG1pdChzdHJ1Y3Qg c29jayAqc2ssIHN0cnVjdCBza19idWZmICpza2IpCiAJfSBlbHNlIHsKIAkJc2tiX3B1c2goc2ti LCBFVEhfSExFTik7CiAJCWJyX2Ryb3BfZmFrZV9ydGFibGUoc2tiKTsKKwkJc2tiX3NlbmRlcl9j cHVfY2xlYXIoc2tiKTsKIAkJZGV2X3F1ZXVlX3htaXQoc2tiKTsKIAl9CiAKLS0gCjIuMS4wCgoK RnJvbSA3YmI4NWMyYmQwNzI1MTFkZDA5NWMzYzhlY2JlMDYzMDY0YmEyYzVmIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBKdWxpYW4gQW5hc3Rhc292IDxqYUBzc2kuYmc+CkRhdGU6IFRo dSwgOSBKdWwgMjAxNSAwOTo1OTowOSArMDMwMApTdWJqZWN0OiBbUEFUQ0ggMTEvNDZdIG5ldDog ZG8gbm90IHByb2Nlc3MgZGV2aWNlIGJhY2tsb2cgZHVyaW5nCiB1bnJlZ2lzdHJhdGlvbgoKWyBV cHN0cmVhbSBjb21taXQgZTllNGRkMzI2N2QwYzUyMzRjNWMwZjQ3NDQwNDU2YjEwODc1ZGVjOSBd Cgpjb21taXQgMzgxYzc1OWQ5OTE2ICgiaXB2NDogQXZvaWQgY3Jhc2hpbmcgaW4gaXBfZXJyb3Ii KQpmaXhlcyBhIHByb2JsZW0gd2hlcmUgcHJvY2Vzc2VkIHBhY2tldCBjb21lcyBmcm9tIGRldmlj ZQp3aXRoIGRlc3Ryb3llZCBpbmV0ZGV2IChkZXYtPmlwX3B0cikuIFRoaXMgaXMgbm90IGV4cGVj dGVkCmJlY2F1c2UgaW5ldGRldl9kZXN0cm95IGlzIGNhbGxlZCBpbiBORVRERVZfVU5SRUdJU1RF UgpwaGFzZSBhbmQgcGFja2V0cyBzaG91bGQgbm90IGJlIHByb2Nlc3NlZCBhZnRlcgpkZXZfY2xv c2VfbWFueSgpIGFuZCBzeW5jaHJvbml6ZV9uZXQoKS4gQWJvdmUgZml4IGlzIHN0aWxsCnJlcXVp cmVkIGJlY2F1c2UgaW5ldGRldl9kZXN0cm95IGNhbiBiZSBjYWxsZWQgZm9yIG90aGVyCnJlYXNv bnMuIEJ1dCBpdCBzaG93cyB0aGUgcmVhbCBwcm9ibGVtOiBiYWNrbG9nIGNhbiBrZWVwCnBhY2tl dHMgZm9yIGxvbmcgdGltZSBhbmQgdGhleSBkbyBub3QgaG9sZCByZWZlcmVuY2UgdG8KZGV2aWNl LiBTdWNoIHBhY2tldHMgYXJlIHRoZW4gZGVsaXZlcmVkIHRvIHVwcGVyIGxldmVscwphdCB0aGUg c2FtZSB0aW1lIHdoZW4gZGV2aWNlIGlzIHVucmVnaXN0ZXJlZC4KQ2FsbGluZyBmbHVzaF9iYWNr bG9nIGFmdGVyIE5FVERFVl9VTlJFR0lTVEVSX0ZJTkFMIHN0aWxsCmFjY291bnRzIGFsbCBwYWNr ZXRzIGZyb20gYmFja2xvZyBidXQgYmVmb3JlIHRoYXQgc29tZSBwYWNrZXRzCmNvbnRpbnVlIHRv IGJlIGRlbGl2ZXJlZCB0byB1cHBlciBsZXZlbHMgbG9uZyBhZnRlciB0aGUKc3luY2hyb25pemVf bmV0IGNhbGwgd2hpY2ggaXMgc3VwcG9zZWQgdG8gd2FpdCB0aGUgbGFzdApvbmVzLiBBbHNvLCBh cyBFcmljIHBvaW50ZWQgb3V0LCBwcm9jZXNzZWQgcGFja2V0cywgbW9zdGx5CmZyb20gb3RoZXIg ZGV2aWNlcywgY2FuIGNvbnRpbnVlIHRvIGFkZCBuZXcgcGFja2V0cyB0byBiYWNrbG9nLgoKRml4 IHRoZSBwcm9ibGVtIGJ5IG1vdmluZyBmbHVzaF9iYWNrbG9nIGVhcmx5LCBhZnRlciB0aGUKZGV2 aWNlIGRyaXZlciBpcyBzdG9wcGVkIGFuZCBiZWZvcmUgdGhlIHN5bmNocm9uaXplX25ldCgpIGNh bGwuClRoZW4gdXNlIG5ldGlmX3J1bm5pbmcgY2hlY2sgdG8gbWFrZSBzdXJlIHdlIGRvIG5vdCBh ZGQgbW9yZQpwYWNrZXRzIHRvIGJhY2tsb2cuIFdlIGhhdmUgdG8gZG8gaXQgaW4gZW5xdWV1ZV90 b19iYWNrbG9nCmNvbnRleHQgd2hlbiB0aGUgbG9jYWwgSVJRIGlzIGRpc2FibGVkLiBBcyByZXN1 bHQsIGFmdGVyIHRoZQpmbHVzaF9iYWNrbG9nIGFuZCBzeW5jaHJvbml6ZV9uZXQgc2VxdWVuY2Ug YWxsIHBhY2tldHMKc2hvdWxkIGJlIGFjY291bnRlZC4KClRoYW5rcyB0byBFcmljIFcuIEJpZWRl cm1hbiBmb3IgdGhlIHRlc3Qgc2NyaXB0IGFuZCBoaXMKdmFsdWFibGUgZmVlZGJhY2shCgpSZXBv cnRlZC1ieTogVml0dG9yaW8gR2FtYmFsZXR0YSA8bGludXhidWdzQHZpdHRnYW0ubmV0PgpGaXhl czogNmU1ODNjZTUyNDJmICgibmV0OiBlbGltaW5hdGUgcmVmY291bnRpbmcgaW4gYmFja2xvZyBx dWV1ZSIpCkNjOiBFcmljIFcuIEJpZWRlcm1hbiA8ZWJpZWRlcm1AeG1pc3Npb24uY29tPgpDYzog U3RlcGhlbiBIZW1taW5nZXIgPHN0ZXBoZW5AbmV0d29ya3BsdW1iZXIub3JnPgpTaWduZWQtb2Zm LWJ5OiBKdWxpYW4gQW5hc3Rhc292IDxqYUBzc2kuYmc+ClNpZ25lZC1vZmYtYnk6IERhdmlkIFMu IE1pbGxlciA8ZGF2ZW1AZGF2ZW1sb2Z0Lm5ldD4KLS0tCiBuZXQvY29yZS9kZXYuYyB8IDYgKysr Ky0tCiAxIGZpbGUgY2hhbmdlZCwgNCBpbnNlcnRpb25zKCspLCAyIGRlbGV0aW9ucygtKQoKZGlm ZiAtLWdpdCBhL25ldC9jb3JlL2Rldi5jIGIvbmV0L2NvcmUvZGV2LmMKaW5kZXggODc3ZWM1Ny4u Y2I0OWUwMSAxMDA2NDQKLS0tIGEvbmV0L2NvcmUvZGV2LmMKKysrIGIvbmV0L2NvcmUvZGV2LmMK QEAgLTMzMzcsNiArMzMzNyw4IEBAIHN0YXRpYyBpbnQgZW5xdWV1ZV90b19iYWNrbG9nKHN0cnVj dCBza19idWZmICpza2IsIGludCBjcHUsCiAJbG9jYWxfaXJxX3NhdmUoZmxhZ3MpOwogCiAJcnBz X2xvY2soc2QpOworCWlmICghbmV0aWZfcnVubmluZyhza2ItPmRldikpCisJCWdvdG8gZHJvcDsK IAlxbGVuID0gc2tiX3F1ZXVlX2xlbigmc2QtPmlucHV0X3BrdF9xdWV1ZSk7CiAJaWYgKHFsZW4g PD0gbmV0ZGV2X21heF9iYWNrbG9nICYmICFza2JfZmxvd19saW1pdChza2IsIHFsZW4pKSB7CiAJ CWlmIChxbGVuKSB7CkBAIC0zMzU4LDYgKzMzNjAsNyBAQCBlbnF1ZXVlOgogCQlnb3RvIGVucXVl dWU7CiAJfQogCitkcm9wOgogCXNkLT5kcm9wcGVkKys7CiAJcnBzX3VubG9jayhzZCk7CiAKQEAg LTYwMjMsNiArNjAyNiw3IEBAIHN0YXRpYyB2b2lkIHJvbGxiYWNrX3JlZ2lzdGVyZWRfbWFueShz dHJ1Y3QgbGlzdF9oZWFkICpoZWFkKQogCQl1bmxpc3RfbmV0ZGV2aWNlKGRldik7CiAKIAkJZGV2 LT5yZWdfc3RhdGUgPSBORVRSRUdfVU5SRUdJU1RFUklORzsKKwkJb25fZWFjaF9jcHUoZmx1c2hf YmFja2xvZywgZGV2LCAxKTsKIAl9CiAKIAlzeW5jaHJvbml6ZV9uZXQoKTsKQEAgLTY2NDcsOCAr NjY1MSw2IEBAIHZvaWQgbmV0ZGV2X3J1bl90b2RvKHZvaWQpCiAKIAkJZGV2LT5yZWdfc3RhdGUg PSBORVRSRUdfVU5SRUdJU1RFUkVEOwogCi0JCW9uX2VhY2hfY3B1KGZsdXNoX2JhY2tsb2csIGRl diwgMSk7Ci0KIAkJbmV0ZGV2X3dhaXRfYWxscmVmcyhkZXYpOwogCiAJCS8qIHBhcmFub2lhICov Ci0tIAoyLjEuMAoKCkZyb20gYzk3OWMwZTExODAwYzc5NjM0YjZiOWQzM2RkYjhmNGNjMDNjODFm YSBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJvbTogSnVsaWFuIEFuYXN0YXNvdiA8amFAc3Np LmJnPgpEYXRlOiBUaHUsIDkgSnVsIDIwMTUgMDk6NTk6MTAgKzAzMDAKU3ViamVjdDogW1BBVENI IDEyLzQ2XSBuZXQ6IGNhbGwgcmN1X3JlYWRfbG9jayBlYXJseSBpbiBwcm9jZXNzX2JhY2tsb2cK ClsgVXBzdHJlYW0gY29tbWl0IDJjMTdkMjdjMzZkY2NlMmI2YmY2ODlmNDFhNDZiOWU5MDk4Nzdj MjEgXQoKSW5jb21pbmcgcGFja2V0IHNob3VsZCBiZSBlaXRoZXIgaW4gYmFja2xvZyBxdWV1ZSBv cgppbiBSQ1UgcmVhZC1zaWRlIHNlY3Rpb24uIE90aGVyd2lzZSwgdGhlIGZpbmFsIHNlcXVlbmNl IG9mCmZsdXNoX2JhY2tsb2coKSBhbmQgc3luY2hyb25pemVfbmV0KCkgbWF5IG1pc3MgcGFja2V0 cwp0aGF0IGNhbiBydW4gd2l0aG91dCBkZXZpY2UgcmVmZXJlbmNlOgoKQ1BVIDEgICAgICAgICAg ICAgICAgICBDUFUgMgogICAgICAgICAgICAgICAgICAgICAgIHNrYi0+ZGV2OiBubyByZWZlcmVu Y2UKICAgICAgICAgICAgICAgICAgICAgICBwcm9jZXNzX2JhY2tsb2c6X19za2JfZGVxdWV1ZQog ICAgICAgICAgICAgICAgICAgICAgIHByb2Nlc3NfYmFja2xvZzpsb2NhbF9pcnFfZW5hYmxlCgpv bl9lYWNoX2NwdSBmb3IKZmx1c2hfYmFja2xvZyA9PiAgICAgICBJUEkoaGFyZGlycSk6IGZsdXNo X2JhY2tsb2cKICAgICAgICAgICAgICAgICAgICAgICAtIHBhY2tldCBub3QgZm91bmQgaW4gYmFj a2xvZwoKICAgICAgICAgICAgICAgICAgICAgICBDUFUgZGVsYXllZCAuLi4Kc3luY2hyb25pemVf bmV0Ci0gbm8gb25nb2luZyBSQ1UKcmVhZC1zaWRlIHNlY3Rpb25zCgpuZXRkZXZfcnVuX3RvZG8s CnJjdV9iYXJyaWVyOiBubwpvbmdvaW5nIGNhbGxiYWNrcwogICAgICAgICAgICAgICAgICAgICAg IF9fbmV0aWZfcmVjZWl2ZV9za2JfY29yZTpyY3VfcmVhZF9sb2NrCiAgICAgICAgICAgICAgICAg ICAgICAgLSB0b28gbGF0ZQpmcmVlIGRldgogICAgICAgICAgICAgICAgICAgICAgIHByb2Nlc3Mg cGFja2V0IGZvciBmcmVlZCBkZXYKCkZpeGVzOiA2ZTU4M2NlNTI0MmYgKCJuZXQ6IGVsaW1pbmF0 ZSByZWZjb3VudGluZyBpbiBiYWNrbG9nIHF1ZXVlIikKQ2M6IEVyaWMgVy4gQmllZGVybWFuIDxl YmllZGVybUB4bWlzc2lvbi5jb20+CkNjOiBTdGVwaGVuIEhlbW1pbmdlciA8c3RlcGhlbkBuZXR3 b3JrcGx1bWJlci5vcmc+ClNpZ25lZC1vZmYtYnk6IEp1bGlhbiBBbmFzdGFzb3YgPGphQHNzaS5i Zz4KU2lnbmVkLW9mZi1ieTogRGF2aWQgUy4gTWlsbGVyIDxkYXZlbUBkYXZlbWxvZnQubmV0Pgot LS0KIG5ldC9jb3JlL2Rldi5jIHwgMzAgKysrKysrKysrKysrKysrLS0tLS0tLS0tLS0tLS0tCiAx IGZpbGUgY2hhbmdlZCwgMTUgaW5zZXJ0aW9ucygrKSwgMTUgZGVsZXRpb25zKC0pCgpkaWZmIC0t Z2l0IGEvbmV0L2NvcmUvZGV2LmMgYi9uZXQvY29yZS9kZXYuYwppbmRleCBjYjQ5ZTAxLi5hNDJi MjMyIDEwMDY0NAotLS0gYS9uZXQvY29yZS9kZXYuYworKysgYi9uZXQvY29yZS9kZXYuYwpAQCAt MzY2Niw4ICszNjY2LDYgQEAgc3RhdGljIGludCBfX25ldGlmX3JlY2VpdmVfc2tiX2NvcmUoc3Ry dWN0IHNrX2J1ZmYgKnNrYiwgYm9vbCBwZm1lbWFsbG9jKQogCiAJcHRfcHJldiA9IE5VTEw7CiAK LQlyY3VfcmVhZF9sb2NrKCk7Ci0KIGFub3RoZXJfcm91bmQ6CiAJc2tiLT5za2JfaWlmID0gc2ti LT5kZXYtPmlmaW5kZXg7CiAKQEAgLTM2NzcsNyArMzY3NSw3IEBAIGFub3RoZXJfcm91bmQ6CiAJ ICAgIHNrYi0+cHJvdG9jb2wgPT0gY3B1X3RvX2JlMTYoRVRIX1BfODAyMUFEKSkgewogCQlza2Ig PSBza2Jfdmxhbl91bnRhZyhza2IpOwogCQlpZiAodW5saWtlbHkoIXNrYikpCi0JCQlnb3RvIHVu bG9jazsKKwkJCWdvdG8gb3V0OwogCX0KIAogI2lmZGVmIENPTkZJR19ORVRfQ0xTX0FDVApAQCAt MzcwNyw3ICszNzA1LDcgQEAgc2tpcF90YXBzOgogCWlmIChzdGF0aWNfa2V5X2ZhbHNlKCZpbmdy ZXNzX25lZWRlZCkpIHsKIAkJc2tiID0gaGFuZGxlX2luZyhza2IsICZwdF9wcmV2LCAmcmV0LCBv cmlnX2Rldik7CiAJCWlmICghc2tiKQotCQkJZ290byB1bmxvY2s7CisJCQlnb3RvIG91dDsKIAl9 CiAKIAlza2ItPnRjX3ZlcmQgPSAwOwpAQCAtMzcyNCw3ICszNzIyLDcgQEAgbmNsczoKIAkJaWYg KHZsYW5fZG9fcmVjZWl2ZSgmc2tiKSkKIAkJCWdvdG8gYW5vdGhlcl9yb3VuZDsKIAkJZWxzZSBp ZiAodW5saWtlbHkoIXNrYikpCi0JCQlnb3RvIHVubG9jazsKKwkJCWdvdG8gb3V0OwogCX0KIAog CXJ4X2hhbmRsZXIgPSByY3VfZGVyZWZlcmVuY2Uoc2tiLT5kZXYtPnJ4X2hhbmRsZXIpOwpAQCAt MzczNiw3ICszNzM0LDcgQEAgbmNsczoKIAkJc3dpdGNoIChyeF9oYW5kbGVyKCZza2IpKSB7CiAJ CWNhc2UgUlhfSEFORExFUl9DT05TVU1FRDoKIAkJCXJldCA9IE5FVF9SWF9TVUNDRVNTOwotCQkJ Z290byB1bmxvY2s7CisJCQlnb3RvIG91dDsKIAkJY2FzZSBSWF9IQU5ETEVSX0FOT1RIRVI6CiAJ CQlnb3RvIGFub3RoZXJfcm91bmQ7CiAJCWNhc2UgUlhfSEFORExFUl9FWEFDVDoKQEAgLTM3OTAs OCArMzc4OCw3IEBAIGRyb3A6CiAJCXJldCA9IE5FVF9SWF9EUk9QOwogCX0KIAotdW5sb2NrOgot CXJjdV9yZWFkX3VubG9jaygpOworb3V0OgogCXJldHVybiByZXQ7CiB9CiAKQEAgLTM4MjIsMjkg KzM4MTksMzAgQEAgc3RhdGljIGludCBfX25ldGlmX3JlY2VpdmVfc2tiKHN0cnVjdCBza19idWZm ICpza2IpCiAKIHN0YXRpYyBpbnQgbmV0aWZfcmVjZWl2ZV9za2JfaW50ZXJuYWwoc3RydWN0IHNr X2J1ZmYgKnNrYikKIHsKKwlpbnQgcmV0OworCiAJbmV0X3RpbWVzdGFtcF9jaGVjayhuZXRkZXZf dHN0YW1wX3ByZXF1ZXVlLCBza2IpOwogCiAJaWYgKHNrYl9kZWZlcl9yeF90aW1lc3RhbXAoc2ti KSkKIAkJcmV0dXJuIE5FVF9SWF9TVUNDRVNTOwogCisJcmN1X3JlYWRfbG9jaygpOworCiAjaWZk ZWYgQ09ORklHX1JQUwogCWlmIChzdGF0aWNfa2V5X2ZhbHNlKCZycHNfbmVlZGVkKSkgewogCQlz dHJ1Y3QgcnBzX2Rldl9mbG93IHZvaWRmbG93LCAqcmZsb3cgPSAmdm9pZGZsb3c7Ci0JCWludCBj cHUsIHJldDsKLQotCQlyY3VfcmVhZF9sb2NrKCk7Ci0KLQkJY3B1ID0gZ2V0X3Jwc19jcHUoc2ti LT5kZXYsIHNrYiwgJnJmbG93KTsKKwkJaW50IGNwdSA9IGdldF9ycHNfY3B1KHNrYi0+ZGV2LCBz a2IsICZyZmxvdyk7CiAKIAkJaWYgKGNwdSA+PSAwKSB7CiAJCQlyZXQgPSBlbnF1ZXVlX3RvX2Jh Y2tsb2coc2tiLCBjcHUsICZyZmxvdy0+bGFzdF9xdGFpbCk7CiAJCQlyY3VfcmVhZF91bmxvY2so KTsKIAkJCXJldHVybiByZXQ7CiAJCX0KLQkJcmN1X3JlYWRfdW5sb2NrKCk7CiAJfQogI2VuZGlm Ci0JcmV0dXJuIF9fbmV0aWZfcmVjZWl2ZV9za2Ioc2tiKTsKKwlyZXQgPSBfX25ldGlmX3JlY2Vp dmVfc2tiKHNrYik7CisJcmN1X3JlYWRfdW5sb2NrKCk7CisJcmV0dXJuIHJldDsKIH0KIAogLyoq CkBAIC00Mzg5LDggKzQzODcsMTAgQEAgc3RhdGljIGludCBwcm9jZXNzX2JhY2tsb2coc3RydWN0 IG5hcGlfc3RydWN0ICpuYXBpLCBpbnQgcXVvdGEpCiAJCXN0cnVjdCBza19idWZmICpza2I7CiAK IAkJd2hpbGUgKChza2IgPSBfX3NrYl9kZXF1ZXVlKCZzZC0+cHJvY2Vzc19xdWV1ZSkpKSB7CisJ CQlyY3VfcmVhZF9sb2NrKCk7CiAJCQlsb2NhbF9pcnFfZW5hYmxlKCk7CiAJCQlfX25ldGlmX3Jl Y2VpdmVfc2tiKHNrYik7CisJCQlyY3VfcmVhZF91bmxvY2soKTsKIAkJCWxvY2FsX2lycV9kaXNh YmxlKCk7CiAJCQlpbnB1dF9xdWV1ZV9oZWFkX2luY3Ioc2QpOwogCQkJaWYgKCsrd29yayA+PSBx dW90YSkgewotLSAKMi4xLjAKCgpGcm9tIDk2NDhhN2VkYWE0MzI2MjgyZmVmM2RiYjhkZTk3NTZk OGVkYmZkMGEgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCkZyb206IERhbiBDYXJwZW50ZXIgPGRh bi5jYXJwZW50ZXJAb3JhY2xlLmNvbT4KRGF0ZTogU3VuLCAxMiBKdWwgMjAxNSAwMToyMDo1NSAr MDMwMApTdWJqZWN0OiBbUEFUQ0ggMTMvNDZdIG5ldC94ZW4tbmV0YmFjazogb2ZmIGJ5IG9uZSBp biBCVUdfT04oKSBjb25kaXRpb24KClsgVXBzdHJlYW0gY29tbWl0IDUwYzJlNGRkNjc0OTcyNTMz ODYyMWZmZjQ1NmIyNmQzYTU5MjI1OWYgXQoKVGhlID4gc2hvdWxkIGJlID49LiAgSSBhbHNvIGFk ZGVkIHNwYWNlcyBhcm91bmQgdGhlICctJyBvcGVyYXRpb25zIHNvCnRoZSBjb2RlIGlzIGEgbGl0 dGxlIG1vcmUgY29uc2lzdGVudCBhbmQgbWF0Y2hlcyB0aGUgY29uZGl0aW9uIGJldHRlci4KCkZp eGVzOiBmNTNjM2ZlOGRhZDcgKCd4ZW4tbmV0YmFjazogSW50cm9kdWNlIFRYIGdyYW50IG1hcHBp bmcnKQpTaWduZWQtb2ZmLWJ5OiBEYW4gQ2FycGVudGVyIDxkYW4uY2FycGVudGVyQG9yYWNsZS5j b20+ClNpZ25lZC1vZmYtYnk6IERhdmlkIFMuIE1pbGxlciA8ZGF2ZW1AZGF2ZW1sb2Z0Lm5ldD4K LS0tCiBkcml2ZXJzL25ldC94ZW4tbmV0YmFjay9uZXRiYWNrLmMgfCA2ICsrKy0tLQogMSBmaWxl IGNoYW5nZWQsIDMgaW5zZXJ0aW9ucygrKSwgMyBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9k cml2ZXJzL25ldC94ZW4tbmV0YmFjay9uZXRiYWNrLmMgYi9kcml2ZXJzL25ldC94ZW4tbmV0YmFj ay9uZXRiYWNrLmMKaW5kZXggMGQyNTk0My4uMDg2NmM1ZCAxMDA2NDQKLS0tIGEvZHJpdmVycy9u ZXQveGVuLW5ldGJhY2svbmV0YmFjay5jCisrKyBiL2RyaXZlcnMvbmV0L3hlbi1uZXRiYWNrL25l dGJhY2suYwpAQCAtMTU3MSwxMyArMTU3MSwxMyBAQCBzdGF0aWMgaW5saW5lIHZvaWQgeGVudmlm X3R4X2RlYWxsb2NfYWN0aW9uKHN0cnVjdCB4ZW52aWZfcXVldWUgKnF1ZXVlKQogCQlzbXBfcm1i KCk7CiAKIAkJd2hpbGUgKGRjICE9IGRwKSB7Ci0JCQlCVUdfT04oZ29wIC0gcXVldWUtPnR4X3Vu bWFwX29wcyA+IE1BWF9QRU5ESU5HX1JFUVMpOworCQkJQlVHX09OKGdvcCAtIHF1ZXVlLT50eF91 bm1hcF9vcHMgPj0gTUFYX1BFTkRJTkdfUkVRUyk7CiAJCQlwZW5kaW5nX2lkeCA9CiAJCQkJcXVl dWUtPmRlYWxsb2NfcmluZ1twZW5kaW5nX2luZGV4KGRjKyspXTsKIAotCQkJcGVuZGluZ19pZHhf cmVsZWFzZVtnb3AtcXVldWUtPnR4X3VubWFwX29wc10gPQorCQkJcGVuZGluZ19pZHhfcmVsZWFz ZVtnb3AgLSBxdWV1ZS0+dHhfdW5tYXBfb3BzXSA9CiAJCQkJcGVuZGluZ19pZHg7Ci0JCQlxdWV1 ZS0+cGFnZXNfdG9fdW5tYXBbZ29wLXF1ZXVlLT50eF91bm1hcF9vcHNdID0KKwkJCXF1ZXVlLT5w YWdlc190b191bm1hcFtnb3AgLSBxdWV1ZS0+dHhfdW5tYXBfb3BzXSA9CiAJCQkJcXVldWUtPm1t YXBfcGFnZXNbcGVuZGluZ19pZHhdOwogCQkJZ250dGFiX3NldF91bm1hcF9vcChnb3AsCiAJCQkJ CSAgICBpZHhfdG9fa2FkZHIocXVldWUsIHBlbmRpbmdfaWR4KSwKLS0gCjIuMS4wCgoKRnJvbSBk MDE1ZGIxYjA2NDk1MzlmNDQ3MzExM2FlYzI0NTg5YTg0YzQ5ZGRhIE1vbiBTZXAgMTcgMDA6MDA6 MDAgMjAwMQpGcm9tOiBIZXJiZXJ0IFh1IDxoZXJiZXJ0QGdvbmRvci5hcGFuYS5vcmcuYXU+CkRh dGU6IE1vbiwgMTMgSnVsIDIwMTUgMTY6MDQ6MTMgKzA4MDAKU3ViamVjdDogW1BBVENIIDE0LzQ2 XSBuZXQ6IENsb25lIHNrYiBiZWZvcmUgc2V0dGluZyBwZWVrZWQgZmxhZwoKWyBVcHN0cmVhbSBj b21taXQgNzM4YWMxZWJiOTZkMDJlMGQyM2JjMzIwMzAyYTZlYTk0YzYxMmRlYyBdCgpTaGFyZWQg c2ticyBtdXN0IG5vdCBiZSBtb2RpZmllZCBhbmQgdGhpcyBpcyBjcnVjaWFsIGZvciBicm9hZGNh c3QKYW5kL29yIG11bHRpY2FzdCBwYXRocyB3aGVyZSB3ZSB1c2UgaXQgYXMgYW4gb3B0aW1pc2F0 aW9uIHRvIGF2b2lkCnVubmVjZXNzYXJ5IGNsb25pbmcuCgpUaGUgZnVuY3Rpb24gc2tiX3JlY3Zf ZGF0YWdyYW0gYnJlYWtzIHRoaXMgcnVsZSBieSBzZXR0aW5nIHBlZWtlZAp3aXRob3V0IGNsb25p bmcgdGhlIHNrYiBmaXJzdC4gIFRoaXMgY2F1c2VzIGZ1bmt5IHJhY2VzIHdoaWNoIGxlYWRzCnRv IGRvdWJsZS1mcmVlLgoKVGhpcyBwYXRjaCBmaXhlcyB0aGlzIGJ5IGNsb25pbmcgdGhlIHNrYiBh bmQgcmVwbGFjaW5nIHRoZSBza2IKaW4gdGhlIGxpc3Qgd2hlbiBzZXR0aW5nIHNrYi0+cGVla2Vk LgoKRml4ZXM6IGE1OTMyMmJlMDdjOSAoIltVRFBdOiBPbmx5IGluY3JlbWVudCBjb3VudGVyIG9u IGZpcnN0IHBlZWsvcmVjdiIpClJlcG9ydGVkLWJ5OiBLb25zdGFudGluIEtobGVibmlrb3YgPGto bGVibmlrb3ZAeWFuZGV4LXRlYW0ucnU+ClNpZ25lZC1vZmYtYnk6IEhlcmJlcnQgWHUgPGhlcmJl cnRAZ29uZG9yLmFwYW5hLm9yZy5hdT4KU2lnbmVkLW9mZi1ieTogRGF2aWQgUy4gTWlsbGVyIDxk YXZlbUBkYXZlbWxvZnQubmV0PgotLS0KIG5ldC9jb3JlL2RhdGFncmFtLmMgfCA0MSArKysrKysr KysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKy0tLQogMSBmaWxlIGNoYW5nZWQsIDM4IGlu c2VydGlvbnMoKyksIDMgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvbmV0L2NvcmUvZGF0YWdy YW0uYyBiL25ldC9jb3JlL2RhdGFncmFtLmMKaW5kZXggYjgwZmI5MS4uNGU5YTNmNiAxMDA2NDQK LS0tIGEvbmV0L2NvcmUvZGF0YWdyYW0uYworKysgYi9uZXQvY29yZS9kYXRhZ3JhbS5jCkBAIC0x MzEsNiArMTMxLDM1IEBAIG91dF9ub2VycjoKIAlnb3RvIG91dDsKIH0KIAorc3RhdGljIGludCBz a2Jfc2V0X3BlZWtlZChzdHJ1Y3Qgc2tfYnVmZiAqc2tiKQoreworCXN0cnVjdCBza19idWZmICpu c2tiOworCisJaWYgKHNrYi0+cGVla2VkKQorCQlyZXR1cm4gMDsKKworCS8qIFdlIGhhdmUgdG8g dW5zaGFyZSBhbiBza2IgYmVmb3JlIG1vZGlmeWluZyBpdC4gKi8KKwlpZiAoIXNrYl9zaGFyZWQo c2tiKSkKKwkJZ290byBkb25lOworCisJbnNrYiA9IHNrYl9jbG9uZShza2IsIEdGUF9BVE9NSUMp OworCWlmICghbnNrYikKKwkJcmV0dXJuIC1FTk9NRU07CisKKwlza2ItPnByZXYtPm5leHQgPSBu c2tiOworCXNrYi0+bmV4dC0+cHJldiA9IG5za2I7CisJbnNrYi0+cHJldiA9IHNrYi0+cHJldjsK Kwluc2tiLT5uZXh0ID0gc2tiLT5uZXh0OworCisJY29uc3VtZV9za2Ioc2tiKTsKKwlza2IgPSBu c2tiOworCitkb25lOgorCXNrYi0+cGVla2VkID0gMTsKKworCXJldHVybiAwOworfQorCiAvKioK ICAqCV9fc2tiX3JlY3ZfZGF0YWdyYW0gLSBSZWNlaXZlIGEgZGF0YWdyYW0gc2tidWZmCiAgKglA c2s6IHNvY2tldApAQCAtMTY1LDcgKzE5NCw5IEBAIG91dF9ub2VycjoKIHN0cnVjdCBza19idWZm ICpfX3NrYl9yZWN2X2RhdGFncmFtKHN0cnVjdCBzb2NrICpzaywgdW5zaWduZWQgaW50IGZsYWdz LAogCQkJCSAgICBpbnQgKnBlZWtlZCwgaW50ICpvZmYsIGludCAqZXJyKQogeworCXN0cnVjdCBz a19idWZmX2hlYWQgKnF1ZXVlID0gJnNrLT5za19yZWNlaXZlX3F1ZXVlOwogCXN0cnVjdCBza19i dWZmICpza2IsICpsYXN0OworCXVuc2lnbmVkIGxvbmcgY3B1X2ZsYWdzOwogCWxvbmcgdGltZW87 CiAJLyoKIAkgKiBDYWxsZXIgaXMgYWxsb3dlZCBub3QgdG8gY2hlY2sgc2stPnNrX2VyciBiZWZv cmUgc2tiX3JlY3ZfZGF0YWdyYW0oKQpAQCAtMTg0LDggKzIxNSw2IEBAIHN0cnVjdCBza19idWZm ICpfX3NrYl9yZWN2X2RhdGFncmFtKHN0cnVjdCBzb2NrICpzaywgdW5zaWduZWQgaW50IGZsYWdz LAogCQkgKiBMb29rIGF0IGN1cnJlbnQgbmZzIGNsaWVudCBieSB0aGUgd2F5Li4uCiAJCSAqIEhv d2V2ZXIsIHRoaXMgZnVuY3Rpb24gd2FzIGNvcnJlY3QgaW4gYW55IGNhc2UuIDgpCiAJCSAqLwot CQl1bnNpZ25lZCBsb25nIGNwdV9mbGFnczsKLQkJc3RydWN0IHNrX2J1ZmZfaGVhZCAqcXVldWUg PSAmc2stPnNrX3JlY2VpdmVfcXVldWU7CiAJCWludCBfb2ZmID0gKm9mZjsKIAogCQlsYXN0ID0g KHN0cnVjdCBza19idWZmICopcXVldWU7CkBAIC0xOTksNyArMjI4LDExIEBAIHN0cnVjdCBza19i dWZmICpfX3NrYl9yZWN2X2RhdGFncmFtKHN0cnVjdCBzb2NrICpzaywgdW5zaWduZWQgaW50IGZs YWdzLAogCQkJCQlfb2ZmIC09IHNrYi0+bGVuOwogCQkJCQljb250aW51ZTsKIAkJCQl9Ci0JCQkJ c2tiLT5wZWVrZWQgPSAxOworCisJCQkJZXJyb3IgPSBza2Jfc2V0X3BlZWtlZChza2IpOworCQkJ CWlmIChlcnJvcikKKwkJCQkJZ290byB1bmxvY2tfZXJyOworCiAJCQkJYXRvbWljX2luYygmc2ti LT51c2Vycyk7CiAJCQl9IGVsc2UKIAkJCQlfX3NrYl91bmxpbmsoc2tiLCBxdWV1ZSk7CkBAIC0y MjMsNiArMjU2LDggQEAgc3RydWN0IHNrX2J1ZmYgKl9fc2tiX3JlY3ZfZGF0YWdyYW0oc3RydWN0 IHNvY2sgKnNrLCB1bnNpZ25lZCBpbnQgZmxhZ3MsCiAKIAlyZXR1cm4gTlVMTDsKIAordW5sb2Nr X2VycjoKKwlzcGluX3VubG9ja19pcnFyZXN0b3JlKCZxdWV1ZS0+bG9jaywgY3B1X2ZsYWdzKTsK IG5vX3BhY2tldDoKIAkqZXJyID0gZXJyb3I7CiAJcmV0dXJuIE5VTEw7Ci0tIAoyLjEuMAoKCkZy b20gY2YyNDkyOTE4ZDUyZGVlNWYzNWIxNmNiYmE2NWQ3MDAwZmYzNWNlMiBNb24gU2VwIDE3IDAw OjAwOjAwIDIwMDEKRnJvbTogSGVyYmVydCBYdSA8aGVyYmVydEBnb25kb3IuYXBhbmEub3JnLmF1 PgpEYXRlOiBNb24sIDEzIEp1bCAyMDE1IDIwOjAxOjQyICswODAwClN1YmplY3Q6IFtQQVRDSCAx NS80Nl0gbmV0OiBGaXggc2tiIGNzdW0gcmFjZXMgd2hlbiBwZWVraW5nCgpbIFVwc3RyZWFtIGNv bW1pdCA4OWMyMmQ4YzNiMjc4MjEyZWVmNmE4Y2M2NmI1NzBiYzg0MGE2ZjVhIF0KCldoZW4gd2Ug Y2FsY3VsYXRlIHRoZSBjaGVja3N1bSBvbiB0aGUgcmVjdiBwYXRoLCB3ZSBzdG9yZSB0aGUKcmVz dWx0IGluIHRoZSBza2IgYXMgYW4gb3B0aW1pc2F0aW9uIGluIGNhc2Ugd2UgbmVlZCB0aGUgY2hl Y2tzdW0KYWdhaW4gZG93biB0aGUgbGluZS4KClRoaXMgaXMgaW4gZmFjdCBib2d1cyBmb3IgdGhl IE1TR19QRUVLIGNhc2UgYXMgdGhpcyBpcyBkb25lIHdpdGhvdXQKYW55IGxvY2tpbmcuICBTbyBt dWx0aXBsZSB0aHJlYWRzIGNhbiBwZWVrIGFuZCB0aGVuIHN0b3JlIHRoZSByZXN1bHQKdG8gdGhl IHNhbWUgc2tiLCBwb3RlbnRpYWxseSByZXN1bHRpbmcgaW4gYm9ndXMgc2tiIHN0YXRlcy4KClRo aXMgcGF0Y2ggZml4ZXMgdGhpcyBieSBvbmx5IHN0b3JpbmcgdGhlIHJlc3VsdCBpZiB0aGUgc2ti IGlzIG5vdApzaGFyZWQuICBUaGlzIHByZXNlcnZlcyB0aGUgb3B0aW1pc2F0aW9ucyBmb3IgdGhl IGZldyBjYXNlcyB3aGVyZQppdCBjYW4gYmUgZG9uZSBzYWZlbHkgZHVlIHRvIGxvY2tpbmcgb3Ig b3RoZXIgcmVhc29ucywgZS5nLiwgU0lPQ0lOUS4KClNpZ25lZC1vZmYtYnk6IEhlcmJlcnQgWHUg PGhlcmJlcnRAZ29uZG9yLmFwYW5hLm9yZy5hdT4KQWNrZWQtYnk6IEVyaWMgRHVtYXpldCA8ZWR1 bWF6ZXRAZ29vZ2xlLmNvbT4KU2lnbmVkLW9mZi1ieTogRGF2aWQgUy4gTWlsbGVyIDxkYXZlbUBk YXZlbWxvZnQubmV0PgotLS0KIG5ldC9jb3JlL2RhdGFncmFtLmMgfCAxNSArKysrKysrKystLS0t LS0KIDEgZmlsZSBjaGFuZ2VkLCA5IGluc2VydGlvbnMoKyksIDYgZGVsZXRpb25zKC0pCgpkaWZm IC0tZ2l0IGEvbmV0L2NvcmUvZGF0YWdyYW0uYyBiL25ldC9jb3JlL2RhdGFncmFtLmMKaW5kZXgg NGU5YTNmNi4uNDk2NzI2MiAxMDA2NDQKLS0tIGEvbmV0L2NvcmUvZGF0YWdyYW0uYworKysgYi9u ZXQvY29yZS9kYXRhZ3JhbS5jCkBAIC02NTcsNyArNjU3LDggQEAgX19zdW0xNiBfX3NrYl9jaGVj a3N1bV9jb21wbGV0ZV9oZWFkKHN0cnVjdCBza19idWZmICpza2IsIGludCBsZW4pCiAJCSAgICAh c2tiLT5jc3VtX2NvbXBsZXRlX3N3KQogCQkJbmV0ZGV2X3J4X2NzdW1fZmF1bHQoc2tiLT5kZXYp OwogCX0KLQlza2ItPmNzdW1fdmFsaWQgPSAhc3VtOworCWlmICghc2tiX3NoYXJlZChza2IpKQor CQlza2ItPmNzdW1fdmFsaWQgPSAhc3VtOwogCXJldHVybiBzdW07CiB9CiBFWFBPUlRfU1lNQk9M KF9fc2tiX2NoZWNrc3VtX2NvbXBsZXRlX2hlYWQpOwpAQCAtNjc3LDExICs2NzgsMTMgQEAgX19z dW0xNiBfX3NrYl9jaGVja3N1bV9jb21wbGV0ZShzdHJ1Y3Qgc2tfYnVmZiAqc2tiKQogCQkJbmV0 ZGV2X3J4X2NzdW1fZmF1bHQoc2tiLT5kZXYpOwogCX0KIAotCS8qIFNhdmUgZnVsbCBwYWNrZXQg Y2hlY2tzdW0gKi8KLQlza2ItPmNzdW0gPSBjc3VtOwotCXNrYi0+aXBfc3VtbWVkID0gQ0hFQ0tT VU1fQ09NUExFVEU7Ci0Jc2tiLT5jc3VtX2NvbXBsZXRlX3N3ID0gMTsKLQlza2ItPmNzdW1fdmFs aWQgPSAhc3VtOworCWlmICghc2tiX3NoYXJlZChza2IpKSB7CisJCS8qIFNhdmUgZnVsbCBwYWNr ZXQgY2hlY2tzdW0gKi8KKwkJc2tiLT5jc3VtID0gY3N1bTsKKwkJc2tiLT5pcF9zdW1tZWQgPSBD SEVDS1NVTV9DT01QTEVURTsKKwkJc2tiLT5jc3VtX2NvbXBsZXRlX3N3ID0gMTsKKwkJc2tiLT5j c3VtX3ZhbGlkID0gIXN1bTsKKwl9CiAKIAlyZXR1cm4gc3VtOwogfQotLSAKMi4xLjAKCgpGcm9t IGUyZDNlN2JjZjY2NzlkYTIyYzNhNjg4MzdjNGIzYzc4ZGIzZWMxMTAgTW9uIFNlcCAxNyAwMDow MDowMCAyMDAxCkZyb206IEhlcmJlcnQgWHUgPGhlcmJlcnRAZ29uZG9yLmFwYW5hLm9yZy5hdT4K RGF0ZTogVHVlLCA0IEF1ZyAyMDE1IDE1OjQyOjQ3ICswODAwClN1YmplY3Q6IFtQQVRDSCAxNi80 Nl0gbmV0OiBGaXggc2tiX3NldF9wZWVrZWQgdXNlLWFmdGVyLWZyZWUgYnVnCgpbIFVwc3RyZWFt IGNvbW1pdCBhMGEyYTY2MDI0OTZhNDVhZTgzOGE5NmRiOGI4MTczNzk0YjVkMzk4IF0KClRoZSBj b21taXQgNzM4YWMxZWJiOTZkMDJlMGQyM2JjMzIwMzAyYTZlYTk0YzYxMmRlYyAoIm5ldDogQ2xv bmUKc2tiIGJlZm9yZSBzZXR0aW5nIHBlZWtlZCBmbGFnIikgaW50cm9kdWNlZCBhIHVzZS1hZnRl ci1mcmVlIGJ1ZwppbiBza2JfcmVjdl9kYXRhZ3JhbS4gIFRoaXMgaXMgYmVjYXVzZSBza2Jfc2V0 X3BlZWtlZCBtYXkgY3JlYXRlCmEgbmV3IHNrYiBhbmQgZnJlZSB0aGUgZXhpc3Rpbmcgb25lLiAg QXMgaXQgc3RhbmRzIHRoZSBjYWxsZXIgd2lsbApjb250aW51ZSB0byB1c2UgdGhlIG9sZCBmcmVl ZCBza2IuCgpUaGlzIHBhdGNoIGZpeGVzIGl0IGJ5IG1ha2luZyBza2Jfc2V0X3BlZWtlZCByZXR1 cm4gdGhlIG5ldyBza2IKKG9yIHRoZSBvbGQgb25lIGlmIHVuY2hhbmdlZCkuCgpGaXhlczogNzM4 YWMxZWJiOTZkICgibmV0OiBDbG9uZSBza2IgYmVmb3JlIHNldHRpbmcgcGVla2VkIGZsYWciKQpS ZXBvcnRlZC1ieTogQnJlbmRlbiBCbGFuY28gPGJibGFuY29AcGx1bWdyaWQuY29tPgpTaWduZWQt b2ZmLWJ5OiBIZXJiZXJ0IFh1IDxoZXJiZXJ0QGdvbmRvci5hcGFuYS5vcmcuYXU+ClRlc3RlZC1i eTogQnJlbmRlbiBCbGFuY28gPGJibGFuY29AcGx1bWdyaWQuY29tPgpSZXZpZXdlZC1ieTogS29u c3RhbnRpbiBLaGxlYm5pa292IDxraGxlYm5pa292QHlhbmRleC10ZWFtLnJ1PgpTaWduZWQtb2Zm LWJ5OiBEYXZpZCBTLiBNaWxsZXIgPGRhdmVtQGRhdmVtbG9mdC5uZXQ+Ci0tLQogbmV0L2NvcmUv ZGF0YWdyYW0uYyB8IDEzICsrKysrKystLS0tLS0KIDEgZmlsZSBjaGFuZ2VkLCA3IGluc2VydGlv bnMoKyksIDYgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvbmV0L2NvcmUvZGF0YWdyYW0uYyBi L25ldC9jb3JlL2RhdGFncmFtLmMKaW5kZXggNDk2NzI2Mi4uNjE3MDg4YSAxMDA2NDQKLS0tIGEv bmV0L2NvcmUvZGF0YWdyYW0uYworKysgYi9uZXQvY29yZS9kYXRhZ3JhbS5jCkBAIC0xMzEsMTIg KzEzMSwxMiBAQCBvdXRfbm9lcnI6CiAJZ290byBvdXQ7CiB9CiAKLXN0YXRpYyBpbnQgc2tiX3Nl dF9wZWVrZWQoc3RydWN0IHNrX2J1ZmYgKnNrYikKK3N0YXRpYyBzdHJ1Y3Qgc2tfYnVmZiAqc2ti X3NldF9wZWVrZWQoc3RydWN0IHNrX2J1ZmYgKnNrYikKIHsKIAlzdHJ1Y3Qgc2tfYnVmZiAqbnNr YjsKIAogCWlmIChza2ItPnBlZWtlZCkKLQkJcmV0dXJuIDA7CisJCXJldHVybiBza2I7CiAKIAkv KiBXZSBoYXZlIHRvIHVuc2hhcmUgYW4gc2tiIGJlZm9yZSBtb2RpZnlpbmcgaXQuICovCiAJaWYg KCFza2Jfc2hhcmVkKHNrYikpCkBAIC0xNDQsNyArMTQ0LDcgQEAgc3RhdGljIGludCBza2Jfc2V0 X3BlZWtlZChzdHJ1Y3Qgc2tfYnVmZiAqc2tiKQogCiAJbnNrYiA9IHNrYl9jbG9uZShza2IsIEdG UF9BVE9NSUMpOwogCWlmICghbnNrYikKLQkJcmV0dXJuIC1FTk9NRU07CisJCXJldHVybiBFUlJf UFRSKC1FTk9NRU0pOwogCiAJc2tiLT5wcmV2LT5uZXh0ID0gbnNrYjsKIAlza2ItPm5leHQtPnBy ZXYgPSBuc2tiOwpAQCAtMTU3LDcgKzE1Nyw3IEBAIHN0YXRpYyBpbnQgc2tiX3NldF9wZWVrZWQo c3RydWN0IHNrX2J1ZmYgKnNrYikKIGRvbmU6CiAJc2tiLT5wZWVrZWQgPSAxOwogCi0JcmV0dXJu IDA7CisJcmV0dXJuIHNrYjsKIH0KIAogLyoqCkBAIC0yMjksOCArMjI5LDkgQEAgc3RydWN0IHNr X2J1ZmYgKl9fc2tiX3JlY3ZfZGF0YWdyYW0oc3RydWN0IHNvY2sgKnNrLCB1bnNpZ25lZCBpbnQg ZmxhZ3MsCiAJCQkJCWNvbnRpbnVlOwogCQkJCX0KIAotCQkJCWVycm9yID0gc2tiX3NldF9wZWVr ZWQoc2tiKTsKLQkJCQlpZiAoZXJyb3IpCisJCQkJc2tiID0gc2tiX3NldF9wZWVrZWQoc2tiKTsK KwkJCQllcnJvciA9IFBUUl9FUlIoc2tiKTsKKwkJCQlpZiAoSVNfRVJSKHNrYikpCiAJCQkJCWdv dG8gdW5sb2NrX2VycjsKIAogCQkJCWF0b21pY19pbmMoJnNrYi0+dXNlcnMpOwotLSAKMi4xLjAK CgpGcm9tIGY4MmUzZmQwNzg2NTJhOWI2NGY2YjEyOWQ1YjhlZGRiNzY0ODEwOTMgTW9uIFNlcCAx NyAwMDowMDowMCAyMDAxCkZyb206IE5pa29sYXkgQWxla3NhbmRyb3YgPG5pa29sYXlAY3VtdWx1 c25ldHdvcmtzLmNvbT4KRGF0ZTogTW9uLCAxMyBKdWwgMjAxNSAwNjozNjoxOSAtMDcwMApTdWJq ZWN0OiBbUEFUQ0ggMTcvNDZdIGJyaWRnZTogbWRiOiBmaXggZG91YmxlIGFkZCBub3RpZmljYXRp b24KClsgVXBzdHJlYW0gY29tbWl0IDVlYmM3ODQ2MjVlYTY4YTk1NzBkMWY3MDU1N2U3OTMyOTg4 Y2QxYjQgXQoKU2luY2UgdGhlIG1kYiBhZGQvZGVsIGNvZGUgd2FzIGludHJvZHVjZWQgdGhlcmUg aGF2ZSBiZWVuIDIgYnJfbWRiX25vdGlmeQpjYWxscyB3aGVuIGRvaW5nIGJyX21kYl9hZGQoKSBy ZXN1bHRpbmcgaW4gMiBub3RpZmljYXRpb25zIG9uIGVhY2ggYWRkLgoKRXhhbXBsZToKIENvbW1h bmQ6IGJyaWRnZSBtZGIgYWRkIGRldiBicjAgcG9ydCBldGgxIGdycCAyMzkuMC4wLjEgcGVybWFu ZW50CiBCZWZvcmUgcGF0Y2g6CiByb290QGRlYmlhbjp+IyBicmlkZ2UgbW9uaXRvciBhbGwKIFtN REJdZGV2IGJyMCBwb3J0IGV0aDEgZ3JwIDIzOS4wLjAuMSBwZXJtYW5lbnQKIFtNREJdZGV2IGJy MCBwb3J0IGV0aDEgZ3JwIDIzOS4wLjAuMSBwZXJtYW5lbnQKCiBBZnRlciBwYXRjaDoKIHJvb3RA ZGViaWFuOn4jIGJyaWRnZSBtb25pdG9yIGFsbAogW01EQl1kZXYgYnIwIHBvcnQgZXRoMSBncnAg MjM5LjAuMC4xIHBlcm1hbmVudAoKU2lnbmVkLW9mZi1ieTogTmlrb2xheSBBbGVrc2FuZHJvdiA8 bmlrb2xheUBjdW11bHVzbmV0d29ya3MuY29tPgpGaXhlczogY2ZkNTY3NTQzNTkwICgiYnJpZGdl OiBhZGQgc3VwcG9ydCBvZiBhZGRpbmcgYW5kIGRlbGV0aW5nIG1kYiBlbnRyaWVzIikKU2lnbmVk LW9mZi1ieTogRGF2aWQgUy4gTWlsbGVyIDxkYXZlbUBkYXZlbWxvZnQubmV0PgotLS0KIG5ldC9i cmlkZ2UvYnJfbWRiLmMgfCAxIC0KIDEgZmlsZSBjaGFuZ2VkLCAxIGRlbGV0aW9uKC0pCgpkaWZm IC0tZ2l0IGEvbmV0L2JyaWRnZS9icl9tZGIuYyBiL25ldC9icmlkZ2UvYnJfbWRiLmMKaW5kZXgg Y2MwMDA2Ni4uZDFmOTEwYyAxMDA2NDQKLS0tIGEvbmV0L2JyaWRnZS9icl9tZGIuYworKysgYi9u ZXQvYnJpZGdlL2JyX21kYi5jCkBAIC0zNDgsNyArMzQ4LDYgQEAgc3RhdGljIGludCBicl9tZGJf YWRkX2dyb3VwKHN0cnVjdCBuZXRfYnJpZGdlICpiciwgc3RydWN0IG5ldF9icmlkZ2VfcG9ydCAq cG9ydCwKIAkJcmV0dXJuIC1FTk9NRU07CiAJcmN1X2Fzc2lnbl9wb2ludGVyKCpwcCwgcCk7CiAK LQlicl9tZGJfbm90aWZ5KGJyLT5kZXYsIHBvcnQsIGdyb3VwLCBSVE1fTkVXTURCKTsKIAlyZXR1 cm4gMDsKIH0KIAotLSAKMi4xLjAKCgpGcm9tIDhlOTZiZDZkZTVkOGM0YWNkMmZhZWI5Yjk1MGJk MmZmNDJhODI3NWEgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCkZyb206IFdBTkcgQ29uZyA8eGl5 b3Uud2FuZ2NvbmdAZ21haWwuY29tPgpEYXRlOiBNb24sIDEzIEp1bCAyMDE1IDEyOjMwOjA3IC0w NzAwClN1YmplY3Q6IFtQQVRDSCAxOC80Nl0gZnFfY29kZWw6IGZpeCBhIHVzZS1hZnRlci1mcmVl CgpbIFVwc3RyZWFtIGNvbW1pdCAwNTJjYmRhNDFmZGMyNDNhOGQ0MGNjZTdhYjNhNjMyN2I0YjI4 ODdlIF0KCkZpeGVzOiAyNTMzMWQ2Y2U0MmIgKCJuZXQ6IHNjaGVkOiBpbXBsZW1lbnQgcXN0YXQg aGVscGVyIHJvdXRpbmVzIikKQ2M6IEpvaG4gRmFzdGFiZW5kIDxqb2huLmZhc3RhYmVuZEBnbWFp bC5jb20+ClNpZ25lZC1vZmYtYnk6IENvbmcgV2FuZyA8eGl5b3Uud2FuZ2NvbmdAZ21haWwuY29t PgpTaWduZWQtb2ZmLWJ5OiBDb25nIFdhbmcgPGN3YW5nQHR3b3BlbnNvdXJjZS5jb20+CkFja2Vk LWJ5OiBFcmljIER1bWF6ZXQgPGVkdW1hemV0QGdvb2dsZS5jb20+ClNpZ25lZC1vZmYtYnk6IERh dmlkIFMuIE1pbGxlciA8ZGF2ZW1AZGF2ZW1sb2Z0Lm5ldD4KLS0tCiBuZXQvc2NoZWQvc2NoX2Zx X2NvZGVsLmMgfCAyICstCiAxIGZpbGUgY2hhbmdlZCwgMSBpbnNlcnRpb24oKyksIDEgZGVsZXRp b24oLSkKCmRpZmYgLS1naXQgYS9uZXQvc2NoZWQvc2NoX2ZxX2NvZGVsLmMgYi9uZXQvc2NoZWQv c2NoX2ZxX2NvZGVsLmMKaW5kZXggYzI0NGM0NWIuLjkyOTE1OTggMTAwNjQ0Ci0tLSBhL25ldC9z Y2hlZC9zY2hfZnFfY29kZWwuYworKysgYi9uZXQvc2NoZWQvc2NoX2ZxX2NvZGVsLmMKQEAgLTE2 MiwxMCArMTYyLDEwIEBAIHN0YXRpYyB1bnNpZ25lZCBpbnQgZnFfY29kZWxfZHJvcChzdHJ1Y3Qg UWRpc2MgKnNjaCkKIAlza2IgPSBkZXF1ZXVlX2hlYWQoZmxvdyk7CiAJbGVuID0gcWRpc2NfcGt0 X2xlbihza2IpOwogCXEtPmJhY2tsb2dzW2lkeF0gLT0gbGVuOwotCWtmcmVlX3NrYihza2IpOwog CXNjaC0+cS5xbGVuLS07CiAJcWRpc2NfcXN0YXRzX2Ryb3Aoc2NoKTsKIAlxZGlzY19xc3RhdHNf YmFja2xvZ19kZWMoc2NoLCBza2IpOworCWtmcmVlX3NrYihza2IpOwogCWZsb3ctPmRyb3BwZWQr KzsKIAlyZXR1cm4gaWR4OwogfQotLSAKMi4xLjAKCgpGcm9tIGQ0NjU3NTgxZDAxZmFhZDk0YTUw YjAzZjMxYmJlMzNjM2I2ZGNiMTQgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCkZyb206IFRpbG1h biBTY2htaWR0IDx0aWxtYW5AaW1hcC5jYz4KRGF0ZTogVHVlLCAxNCBKdWwgMjAxNSAwMDozNzox MyArMDIwMApTdWJqZWN0OiBbUEFUQ0ggMTkvNDZdIGlzZG4vZ2lnYXNldDogcmVzZXQgdHR5LT5y ZWNlaXZlX3Jvb20gd2hlbiBhdHRhY2hpbmcKIHNlcl9naWdhc2V0CgpbIFVwc3RyZWFtIGNvbW1p dCBmZDk4ZTk0MTlkOGQ2MjJhNGRlOTFmNzZiMzA2YWY2YWE2MjdhYTljIF0KCkNvbW1pdCA3OTkw MTMxN2NlODAgKCJuX3R0eTogRG9uJ3QgZmx1c2ggYnVmZmVyIHdoZW4gY2xvc2luZyBsZGlzYyIp LApmaXJzdCBtZXJnZWQgaW4ga2VybmVsIHJlbGVhc2UgMy4xMCwgY2F1c2VkIHRoZSBmb2xsb3dp bmcgcmVncmVzc2lvbgppbiB0aGUgR2lnYXNldCBNMTAxIGRyaXZlcjoKCkJlZm9yZSB0aGF0IGNv bW1pdCwgd2hlbiBjbG9zaW5nIHRoZSBOX1RUWSBsaW5lIGRpc2NpcGxpbmUgaW4KcHJlcGFyYXRp b24gdG8gc3dpdGNoaW5nIHRvIE5fR0lHQVNFVF9NMTAxLCByZWNlaXZlX3Jvb20gd291bGQgYmUK cmVzZXQgdG8gYSBub24temVybyB2YWx1ZSBieSB0aGUgY2FsbCB0byBuX3R0eV9mbHVzaF9idWZm ZXIoKSBpbgpuX3R0eSdzIGNsb3NlIG1ldGhvZC4gV2l0aCB0aGUgcmVtb3ZhbCBvZiB0aGF0IGNh bGwsIHJlY2VpdmVfcm9vbQptaWdodCBiZSBsZWZ0IGF0IHplcm8sIGJsb2NraW5nIGRhdGEgcmVj ZXB0aW9uIG9uIHRoZSBzZXJpYWwgbGluZS4KClRoZSBwcmVzZW50IHBhdGNoIGZpeGVzIHRoYXQg cmVncmVzc2lvbiBieSBzZXR0aW5nIHJlY2VpdmVfcm9vbQp0byBhbiBhcHByb3ByaWF0ZSB2YWx1 ZSBpbiB0aGUgbGRpc2Mgb3BlbiBtZXRob2QuCgpGaXhlczogNzk5MDEzMTdjZTgwICgibl90dHk6 IERvbid0IGZsdXNoIGJ1ZmZlciB3aGVuIGNsb3NpbmcgbGRpc2MiKQpTaWduZWQtb2ZmLWJ5OiBU aWxtYW4gU2NobWlkdCA8dGlsbWFuQGltYXAuY2M+ClNpZ25lZC1vZmYtYnk6IERhdmlkIFMuIE1p bGxlciA8ZGF2ZW1AZGF2ZW1sb2Z0Lm5ldD4KLS0tCiBkcml2ZXJzL2lzZG4vZ2lnYXNldC9zZXIt Z2lnYXNldC5jIHwgMTEgKysrKysrKysrKy0KIDEgZmlsZSBjaGFuZ2VkLCAxMCBpbnNlcnRpb25z KCspLCAxIGRlbGV0aW9uKC0pCgpkaWZmIC0tZ2l0IGEvZHJpdmVycy9pc2RuL2dpZ2FzZXQvc2Vy LWdpZ2FzZXQuYyBiL2RyaXZlcnMvaXNkbi9naWdhc2V0L3Nlci1naWdhc2V0LmMKaW5kZXggOGM5 MWZkNS4uM2FjOWM0MSAxMDA2NDQKLS0tIGEvZHJpdmVycy9pc2RuL2dpZ2FzZXQvc2VyLWdpZ2Fz ZXQuYworKysgYi9kcml2ZXJzL2lzZG4vZ2lnYXNldC9zZXItZ2lnYXNldC5jCkBAIC01MjQsOSAr NTI0LDE4IEBAIGdpZ2FzZXRfdHR5X29wZW4oc3RydWN0IHR0eV9zdHJ1Y3QgKnR0eSkKIAljcy0+ aHcuc2VyLT50dHkgPSB0dHk7CiAJYXRvbWljX3NldCgmY3MtPmh3LnNlci0+cmVmY250LCAxKTsK IAlpbml0X2NvbXBsZXRpb24oJmNzLT5ody5zZXItPmRlYWRfY21wKTsKLQogCXR0eS0+ZGlzY19k YXRhID0gY3M7CiAKKwkvKiBTZXQgdGhlIGFtb3VudCBvZiBkYXRhIHdlJ3JlIHdpbGxpbmcgdG8g cmVjZWl2ZSBwZXIgY2FsbAorCSAqIGZyb20gdGhlIGhhcmR3YXJlIGRyaXZlciB0byBoYWxmIG9m IHRoZSBpbnB1dCBidWZmZXIgc2l6ZQorCSAqIHRvIGxlYXZlIHNvbWUgcmVzZXJ2ZS4KKwkgKiBO b3RlOiBXZSBkb24ndCBkbyBmbG93IGNvbnRyb2wgdG93YXJkcyB0aGUgaGFyZHdhcmUgZHJpdmVy LgorCSAqIElmIG1vcmUgZGF0YSBpcyByZWNlaXZlZCB0aGFuIHdpbGwgZml0IGludG8gdGhlIGlu cHV0IGJ1ZmZlciwKKwkgKiBpdCB3aWxsIGJlIGRyb3BwZWQgYW5kIGFuIGVycm9yIHdpbGwgYmUg bG9nZ2VkLiBUaGlzIHNob3VsZAorCSAqIG5ldmVyIGhhcHBlbiBhcyB0aGUgZGV2aWNlIGlzIHNs b3cgYW5kIHRoZSBidWZmZXIgc2l6ZSBhbXBsZS4KKwkgKi8KKwl0dHktPnJlY2VpdmVfcm9vbSA9 IFJCVUZTSVpFLzI7CisKIAkvKiBPSy4uIEluaXRpYWxpemF0aW9uIG9mIHRoZSBkYXRhc3RydWN0 dXJlcyBhbmQgdGhlIEhXIGlzIGRvbmUuLiBOb3cKIAkgKiBzdGFydHVwIHN5c3RlbSBhbmQgbm90 aWZ5IHRoZSBMTCB0aGF0IHdlIGFyZSByZWFkeSB0byBydW4KIAkgKi8KLS0gCjIuMS4wCgoKRnJv bSBhNTgwMmE3OGQ3MDIxOWJiMWYyZTVmNjcyNjQ4NmUzODM0YjEyNzBkIE1vbiBTZXAgMTcgMDA6 MDA6MDAgMjAwMQpGcm9tOiBFcmljIER1bWF6ZXQgPGVkdW1hemV0QGdvb2dsZS5jb20+CkRhdGU6 IFR1ZSwgMTQgSnVsIDIwMTUgMDg6MTA6MjIgKzAyMDAKU3ViamVjdDogW1BBVENIIDIwLzQ2XSBp cHY2OiBsb2NrIHNvY2tldCBpbiBpcDZfZGF0YWdyYW1fY29ubmVjdCgpCgpbIFVwc3RyZWFtIGNv bW1pdCAwMzY0NWExMWE1NzBkNTJlNzA2MzE4MzhjYjc4NmViNDI1M2ViNDYzIF0KCmlwNl9kYXRh Z3JhbV9jb25uZWN0KCkgaXMgZG9pbmcgYSBsb3Qgb2Ygc29ja2V0IGNoYW5nZXMgd2l0aG91dApz b2NrZXQgYmVpbmcgbG9ja2VkLgoKVGhpcyBsb29rcyB3cm9uZywgYXQgbGVhc3QgZm9yIHVkcF9s aWJfcmVoYXNoKCkgd2hpY2ggY291bGQgY29ycnVwdApsaXN0cyBiZWNhdXNlIG9mIGNvbmN1cnJl bnQgdWRwX3NrKHNrKS0+dWRwX3BvcnRhZGRyX2hhc2ggYWNjZXNzZXMuCgpTaWduZWQtb2ZmLWJ5 OiBFcmljIER1bWF6ZXQgPGVkdW1hemV0QGdvb2dsZS5jb20+CkFja2VkLWJ5OiBIZXJiZXJ0IFh1 IDxoZXJiZXJ0QGdvbmRvci5hcGFuYS5vcmcuYXU+ClNpZ25lZC1vZmYtYnk6IERhdmlkIFMuIE1p bGxlciA8ZGF2ZW1AZGF2ZW1sb2Z0Lm5ldD4KLS0tCiBpbmNsdWRlL25ldC9pcC5oICAgIHwgIDEg KwogbmV0L2lwdjQvZGF0YWdyYW0uYyB8IDE2ICsrKysrKysrKysrKy0tLS0KIG5ldC9pcHY2L2Rh dGFncmFtLmMgfCAyMCArKysrKysrKysrKysrKystLS0tLQogMyBmaWxlcyBjaGFuZ2VkLCAyOCBp bnNlcnRpb25zKCspLCA5IGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL2luY2x1ZGUvbmV0L2lw LmggYi9pbmNsdWRlL25ldC9pcC5oCmluZGV4IGQxNGFmN2UuLmY0MWZjNDkgMTAwNjQ0Ci0tLSBh L2luY2x1ZGUvbmV0L2lwLmgKKysrIGIvaW5jbHVkZS9uZXQvaXAuaApAQCAtMTYxLDYgKzE2MSw3 IEBAIHN0YXRpYyBpbmxpbmUgX191OCBnZXRfcnRjb25uX2ZsYWdzKHN0cnVjdCBpcGNtX2Nvb2tp ZSogaXBjLCBzdHJ1Y3Qgc29jayogc2spCiB9CiAKIC8qIGRhdGFncmFtLmMgKi8KK2ludCBfX2lw NF9kYXRhZ3JhbV9jb25uZWN0KHN0cnVjdCBzb2NrICpzaywgc3RydWN0IHNvY2thZGRyICp1YWRk ciwgaW50IGFkZHJfbGVuKTsKIGludCBpcDRfZGF0YWdyYW1fY29ubmVjdChzdHJ1Y3Qgc29jayAq c2ssIHN0cnVjdCBzb2NrYWRkciAqdWFkZHIsIGludCBhZGRyX2xlbik7CiAKIHZvaWQgaXA0X2Rh dGFncmFtX3JlbGVhc2VfY2Ioc3RydWN0IHNvY2sgKnNrKTsKZGlmZiAtLWdpdCBhL25ldC9pcHY0 L2RhdGFncmFtLmMgYi9uZXQvaXB2NC9kYXRhZ3JhbS5jCmluZGV4IDkwYzBlODMuLjU3NGZhZDkg MTAwNjQ0Ci0tLSBhL25ldC9pcHY0L2RhdGFncmFtLmMKKysrIGIvbmV0L2lwdjQvZGF0YWdyYW0u YwpAQCAtMjAsNyArMjAsNyBAQAogI2luY2x1ZGUgPG5ldC9yb3V0ZS5oPgogI2luY2x1ZGUgPG5l dC90Y3Bfc3RhdGVzLmg+CiAKLWludCBpcDRfZGF0YWdyYW1fY29ubmVjdChzdHJ1Y3Qgc29jayAq c2ssIHN0cnVjdCBzb2NrYWRkciAqdWFkZHIsIGludCBhZGRyX2xlbikKK2ludCBfX2lwNF9kYXRh Z3JhbV9jb25uZWN0KHN0cnVjdCBzb2NrICpzaywgc3RydWN0IHNvY2thZGRyICp1YWRkciwgaW50 IGFkZHJfbGVuKQogewogCXN0cnVjdCBpbmV0X3NvY2sgKmluZXQgPSBpbmV0X3NrKHNrKTsKIAlz dHJ1Y3Qgc29ja2FkZHJfaW4gKnVzaW4gPSAoc3RydWN0IHNvY2thZGRyX2luICopIHVhZGRyOwpA QCAtMzksOCArMzksNiBAQCBpbnQgaXA0X2RhdGFncmFtX2Nvbm5lY3Qoc3RydWN0IHNvY2sgKnNr LCBzdHJ1Y3Qgc29ja2FkZHIgKnVhZGRyLCBpbnQgYWRkcl9sZW4pCiAKIAlza19kc3RfcmVzZXQo c2spOwogCi0JbG9ja19zb2NrKHNrKTsKLQogCW9pZiA9IHNrLT5za19ib3VuZF9kZXZfaWY7CiAJ c2FkZHIgPSBpbmV0LT5pbmV0X3NhZGRyOwogCWlmIChpcHY0X2lzX211bHRpY2FzdCh1c2luLT5z aW5fYWRkci5zX2FkZHIpKSB7CkBAIC04Miw5ICs4MCwxOSBAQCBpbnQgaXA0X2RhdGFncmFtX2Nv bm5lY3Qoc3RydWN0IHNvY2sgKnNrLCBzdHJ1Y3Qgc29ja2FkZHIgKnVhZGRyLCBpbnQgYWRkcl9s ZW4pCiAJc2tfZHN0X3NldChzaywgJnJ0LT5kc3QpOwogCWVyciA9IDA7CiBvdXQ6Ci0JcmVsZWFz ZV9zb2NrKHNrKTsKIAlyZXR1cm4gZXJyOwogfQorRVhQT1JUX1NZTUJPTChfX2lwNF9kYXRhZ3Jh bV9jb25uZWN0KTsKKworaW50IGlwNF9kYXRhZ3JhbV9jb25uZWN0KHN0cnVjdCBzb2NrICpzaywg c3RydWN0IHNvY2thZGRyICp1YWRkciwgaW50IGFkZHJfbGVuKQoreworCWludCByZXM7CisKKwls b2NrX3NvY2soc2spOworCXJlcyA9IF9faXA0X2RhdGFncmFtX2Nvbm5lY3Qoc2ssIHVhZGRyLCBh ZGRyX2xlbik7CisJcmVsZWFzZV9zb2NrKHNrKTsKKwlyZXR1cm4gcmVzOworfQogRVhQT1JUX1NZ TUJPTChpcDRfZGF0YWdyYW1fY29ubmVjdCk7CiAKIC8qIEJlY2F1c2UgVURQIHhtaXQgcGF0aCBj YW4gbWFuaXB1bGF0ZSBza19kc3RfY2FjaGUgd2l0aG91dCBob2xkaW5nCmRpZmYgLS1naXQgYS9u ZXQvaXB2Ni9kYXRhZ3JhbS5jIGIvbmV0L2lwdjYvZGF0YWdyYW0uYwppbmRleCA2MmQ5MDhlLi5i MTBhODg5IDEwMDY0NAotLS0gYS9uZXQvaXB2Ni9kYXRhZ3JhbS5jCisrKyBiL25ldC9pcHY2L2Rh dGFncmFtLmMKQEAgLTQwLDcgKzQwLDcgQEAgc3RhdGljIGJvb2wgaXB2Nl9tYXBwZWRfYWRkcl9h bnkoY29uc3Qgc3RydWN0IGluNl9hZGRyICphKQogCXJldHVybiBpcHY2X2FkZHJfdjRtYXBwZWQo YSkgJiYgKGEtPnM2X2FkZHIzMlszXSA9PSAwKTsKIH0KIAotaW50IGlwNl9kYXRhZ3JhbV9jb25u ZWN0KHN0cnVjdCBzb2NrICpzaywgc3RydWN0IHNvY2thZGRyICp1YWRkciwgaW50IGFkZHJfbGVu KQorc3RhdGljIGludCBfX2lwNl9kYXRhZ3JhbV9jb25uZWN0KHN0cnVjdCBzb2NrICpzaywgc3Ry dWN0IHNvY2thZGRyICp1YWRkciwgaW50IGFkZHJfbGVuKQogewogCXN0cnVjdCBzb2NrYWRkcl9p bjYJKnVzaW4gPSAoc3RydWN0IHNvY2thZGRyX2luNiAqKSB1YWRkcjsKIAlzdHJ1Y3QgaW5ldF9z b2NrCSppbmV0ID0gaW5ldF9zayhzayk7CkBAIC01Niw3ICs1Niw3IEBAIGludCBpcDZfZGF0YWdy YW1fY29ubmVjdChzdHJ1Y3Qgc29jayAqc2ssIHN0cnVjdCBzb2NrYWRkciAqdWFkZHIsIGludCBh ZGRyX2xlbikKIAlpZiAodXNpbi0+c2luNl9mYW1pbHkgPT0gQUZfSU5FVCkgewogCQlpZiAoX19p cHY2X29ubHlfc29jayhzaykpCiAJCQlyZXR1cm4gLUVBRk5PU1VQUE9SVDsKLQkJZXJyID0gaXA0 X2RhdGFncmFtX2Nvbm5lY3Qoc2ssIHVhZGRyLCBhZGRyX2xlbik7CisJCWVyciA9IF9faXA0X2Rh dGFncmFtX2Nvbm5lY3Qoc2ssIHVhZGRyLCBhZGRyX2xlbik7CiAJCWdvdG8gaXB2NF9jb25uZWN0 ZWQ7CiAJfQogCkBAIC05OCw5ICs5OCw5IEBAIGludCBpcDZfZGF0YWdyYW1fY29ubmVjdChzdHJ1 Y3Qgc29jayAqc2ssIHN0cnVjdCBzb2NrYWRkciAqdWFkZHIsIGludCBhZGRyX2xlbikKIAkJc2lu LnNpbl9hZGRyLnNfYWRkciA9IGRhZGRyLT5zNl9hZGRyMzJbM107CiAJCXNpbi5zaW5fcG9ydCA9 IHVzaW4tPnNpbjZfcG9ydDsKIAotCQllcnIgPSBpcDRfZGF0YWdyYW1fY29ubmVjdChzaywKLQkJ CQkJICAgKHN0cnVjdCBzb2NrYWRkciAqKSAmc2luLAotCQkJCQkgICBzaXplb2Yoc2luKSk7CisJ CWVyciA9IF9faXA0X2RhdGFncmFtX2Nvbm5lY3Qoc2ssCisJCQkJCSAgICAgKHN0cnVjdCBzb2Nr YWRkciAqKSAmc2luLAorCQkJCQkgICAgIHNpemVvZihzaW4pKTsKIAogaXB2NF9jb25uZWN0ZWQ6 CiAJCWlmIChlcnIpCkBAIC0yMDQsNiArMjA0LDE2IEBAIG91dDoKIAlmbDZfc29ja19yZWxlYXNl KGZsb3dsYWJlbCk7CiAJcmV0dXJuIGVycjsKIH0KKworaW50IGlwNl9kYXRhZ3JhbV9jb25uZWN0 KHN0cnVjdCBzb2NrICpzaywgc3RydWN0IHNvY2thZGRyICp1YWRkciwgaW50IGFkZHJfbGVuKQor eworCWludCByZXM7CisKKwlsb2NrX3NvY2soc2spOworCXJlcyA9IF9faXA2X2RhdGFncmFtX2Nv bm5lY3Qoc2ssIHVhZGRyLCBhZGRyX2xlbik7CisJcmVsZWFzZV9zb2NrKHNrKTsKKwlyZXR1cm4g cmVzOworfQogRVhQT1JUX1NZTUJPTF9HUEwoaXA2X2RhdGFncmFtX2Nvbm5lY3QpOwogCiBpbnQg aXA2X2RhdGFncmFtX2Nvbm5lY3RfdjZfb25seShzdHJ1Y3Qgc29jayAqc2ssIHN0cnVjdCBzb2Nr YWRkciAqdWFkZHIsCi0tIAoyLjEuMAoKCkZyb20gMWMwZGY2YmRjNzMxZjc2OTJhMWZhZmQ5YzYw NjEzNWJhNzE0ZTdjNiBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJvbTogTmlrb2xheSBBbGVr c2FuZHJvdiA8bmlrb2xheUBjdW11bHVzbmV0d29ya3MuY29tPgpEYXRlOiBXZWQsIDE1IEp1bCAy MDE1IDIxOjUyOjUxICswMjAwClN1YmplY3Q6IFtQQVRDSCAyMS80Nl0gYm9uZGluZzogZml4IGRl c3RydWN0aW9uIG9mIGJvbmQgd2l0aCBkZXZpY2VzIGRpZmZlcmVudAogZnJvbSBhcnBocmRfZXRo ZXIKClsgVXBzdHJlYW0gY29tbWl0IDA2ZjZkMTA5NGFhMDk5MjQzMmIxZTJhMDkyMGIwZWU4NmNj ZDgzYmYgXQoKV2hlbiB0aGUgYm9uZGluZyBpcyBiZWluZyB1bmxvYWRlZCBhbmQgdGhlIG5ldGRl dmljZSBub3RpZmllciBpcwp1bnJlZ2lzdGVyZWQgaXQgZXhlY3V0ZXMgTkVUREVWX1VOUkVHSVNU RVIgZm9yIGVhY2ggZGV2aWNlIHdoaWNoIHNob3VsZApyZW1vdmUgdGhlIGJvbmQncyBwcm9jIGVu dHJ5IGJ1dCBpZiB0aGUgZGV2aWNlIGVuc2xhdmVkIGlzIG5vdCBvZgpBUlBIUkRfRVRIRVIgdHlw ZSBhbmQgaXMgaW4gZnJvbnQgb2YgdGhlIGJvbmRpbmcsIGl0IG1heSBleGVjdXRlCmJvbmRfcmVs ZWFzZV9hbmRfZGVzdHJveSgpIGZpcnN0IHdoaWNoIHdvdWxkIHJlbGVhc2UgdGhlIGxhc3Qgc2xh dmUgYW5kCmRlc3Ryb3kgdGhlIGJvbmQgZGV2aWNlIGxlYXZpbmcgdGhlIHByb2MgZW50cnkgYW5k IHRodXMgd2Ugd2lsbCBnZXQgdGhlCmZvbGxvd2luZyBlcnJvciAod2l0aCBkeW5hbWljIGRlYnVn IG9uIGZvciBib25kX25ldGRldl9ldmVudCB0byBzZWUgdGhlCmV2ZW50cyBvcmRlcik6ClsgIDkw OC45NjMwNTFdIGVxbDogZXZlbnQ6IDkKWyAgOTA4Ljk2MzA1Ml0gZXFsOiBJRkZfU0xBVkUKWyAg OTA4Ljk2MzA1NF0gZXFsOiBldmVudDogMgpbICA5MDguOTYzMDU2XSBlcWw6IElGRl9TTEFWRQpb ICA5MDguOTYzMDU4XSBlcWw6IGV2ZW50OiA2ClsgIDkwOC45NjMwNTldIGVxbDogSUZGX1NMQVZF ClsgIDkwOC45NjMxMTBdIGJvbmQwOiBSZWxlYXNpbmcgYWN0aXZlIGludGVyZmFjZSBlcWwKWyAg OTA4Ljk3NjE2OF0gYm9uZDA6IERlc3Ryb3lpbmcgYm9uZCBib25kMApbICA5MDguOTc2MjY2XSBi b25kMCAodW5yZWdpc3RlcmluZyk6IFJlbGVhc2VkIGFsbCBzbGF2ZXMKWyAgOTA4Ljk4NDA5N10g LS0tLS0tLS0tLS0tWyBjdXQgaGVyZSBdLS0tLS0tLS0tLS0tClsgIDkwOC45ODQxMDddIFdBUk5J Tkc6IENQVTogMCBQSUQ6IDE3ODcgYXQgZnMvcHJvYy9nZW5lcmljLmM6NTc1CnJlbW92ZV9wcm9j X2VudHJ5KzB4MTEyLzB4MTYwKCkKWyAgOTA4Ljk4NDExMF0gcmVtb3ZlX3Byb2NfZW50cnk6IHJl bW92aW5nIG5vbi1lbXB0eSBkaXJlY3RvcnkKJ25ldC9ib25kaW5nJywgbGVha2luZyBhdCBsZWFz dCAnYm9uZDAnClsgIDkwOC45ODQxMTFdIE1vZHVsZXMgbGlua2VkIGluOiBib25kaW5nKC0pIGVx bChPKSA5cCBuZnNkIGF1dGhfcnBjZ3NzCm9pZF9yZWdpc3RyeSBuZnNfYWNsIG5mcyBsb2NrZCBn cmFjZSBmc2NhY2hlIHN1bnJwYyBjcmN0MTBkaWZfcGNsbXVsCmNyYzMyX3BjbG11bCBjcmMzMmNf aW50ZWwgZ2hhc2hfY2xtdWxuaV9pbnRlbCBwcGRldiBxeGwgZHJtX2ttc19oZWxwZXIKc25kX2hk YV9jb2RlY19nZW5lcmljIGFlc25pX2ludGVsIHR0bSBhZXNfeDg2XzY0IGdsdWVfaGVscGVyIHBj c3BrciBscncKZ2YxMjhtdWwgYWJsa19oZWxwZXIgY3J5cHRkIHNuZF9oZGFfaW50ZWwgdmlydGlv X2NvbnNvbGUgc25kX2hkYV9jb2RlYwpwc21vdXNlIHNlcmlvX3JhdyBzbmRfaHdkZXAgc25kX2hk YV9jb3JlIDlwbmV0X3ZpcnRpbyA5cG5ldCBldmRldiBqb3lkZXYKZHJtIHZpcnRpb19iYWxsb29u IHNuZF9wY20gc25kX3RpbWVyIHNuZCBzb3VuZGNvcmUgaTJjX3BpaXg0IGkyY19jb3JlCnB2cGFu aWMgYWNwaV9jcHVmcmVxIHBhcnBvcnRfcGMgcGFycG9ydCBwcm9jZXNzb3IgdGhlcm1hbF9zeXMg YnV0dG9uCmF1dG9mczQgZXh0NCBjcmMxNiBtYmNhY2hlIGpiZDIgaGlkX2dlbmVyaWMgdXNiaGlk IGhpZCBzZyBzcl9tb2QgY2Ryb20KYXRhX2dlbmVyaWMgdmlydGlvX2JsayB2aXJ0aW9fbmV0IGZs b3BweSBhdGFfcGlpeCBlMTAwMCBsaWJhdGEgZWhjaV9wY2kKdmlydGlvX3BjaSBzY3NpX21vZCB1 aGNpX2hjZCBlaGNpX2hjZCB2aXJ0aW9fcmluZyB2aXJ0aW8gdXNiY29yZQp1c2JfY29tbW9uIFts YXN0IHVubG9hZGVkOiBib25kaW5nXQoKWyAgOTA4Ljk4NDE2OF0gQ1BVOiAwIFBJRDogMTc4NyBD b21tOiBybW1vZCBUYWludGVkOiBHICAgICAgICBXICBPCjQuMi4wLXJjMisgIzgKWyAgOTA4Ljk4 NDE3MF0gSGFyZHdhcmUgbmFtZTogQm9jaHMgQm9jaHMsIEJJT1MgQm9jaHMgMDEvMDEvMjAxMQpb ICA5MDguOTg0MTcyXSAgMDAwMDAwMDAwMDAwMDAwMCBmZmZmZmZmZjgxNzMyZDQxIGZmZmZmZmZm ODE1MjViMzQKZmZmZjg4MDAzNThkZmRhOApbICA5MDguOTg0MTc1XSAgZmZmZmZmZmY4MTA2YzUy MSBmZmZmODgwMDM1OTVhZjc4IGZmZmY4ODAwMzU5NWFmNDAKZmZmZjg4MDAzZTNhNDI4MApbICA5 MDguOTg0MTc4XSAgZmZmZmZmZmZhMDU4ZDA0MCAwMDAwMDAwMDAwMDAwMDAwIGZmZmZmZmZmODEw NmM1OWEKZmZmZmZmZmY4MTcyZWJkMApbICA5MDguOTg0MTgxXSBDYWxsIFRyYWNlOgpbICA5MDgu OTg0MTg4XSAgWzxmZmZmZmZmZjgxNTI1YjM0Pl0gPyBkdW1wX3N0YWNrKzB4NDAvMHg1MApbICA5 MDguOTg0MTkzXSAgWzxmZmZmZmZmZjgxMDZjNTIxPl0gPyB3YXJuX3Nsb3dwYXRoX2NvbW1vbisw eDgxLzB4YjAKWyAgOTA4Ljk4NDE5Nl0gIFs8ZmZmZmZmZmY4MTA2YzU5YT5dID8gd2Fybl9zbG93 cGF0aF9mbXQrMHg0YS8weDUwClsgIDkwOC45ODQxOTldICBbPGZmZmZmZmZmODEyMTgzNTI+XSA/ IHJlbW92ZV9wcm9jX2VudHJ5KzB4MTEyLzB4MTYwClsgIDkwOC45ODQyMDVdICBbPGZmZmZmZmZm YTA1ODUwZTY+XSA/IGJvbmRfZGVzdHJveV9wcm9jX2RpcisweDI2LzB4MzAKW2JvbmRpbmddClsg IDkwOC45ODQyMDhdICBbPGZmZmZmZmZmYTA1NzU0MGU+XSA/IGJvbmRfbmV0X2V4aXQrMHg4ZS8w eGEwIFtib25kaW5nXQpbICA5MDguOTg0MjE3XSAgWzxmZmZmZmZmZjgxNDJmNDA3Pl0gPyBvcHNf ZXhpdF9saXN0LmlzcmEuNCsweDM3LzB4NzAKWyAgOTA4Ljk4NDIyNV0gIFs8ZmZmZmZmZmY4MTQy ZjUyZD5dID8KdW5yZWdpc3Rlcl9wZXJuZXRfb3BlcmF0aW9ucysweDhkLzB4ZDAKWyAgOTA4Ljk4 NDIyOF0gIFs8ZmZmZmZmZmY4MTQyZjU4ZD5dID8KdW5yZWdpc3Rlcl9wZXJuZXRfc3Vic3lzKzB4 MWQvMHgzMApbICA5MDguOTg0MjMyXSAgWzxmZmZmZmZmZmEwNTg1MjY5Pl0gPyBib25kaW5nX2V4 aXQrMHgyMy8weGRiYSBbYm9uZGluZ10KWyAgOTA4Ljk4NDIzNl0gIFs8ZmZmZmZmZmY4MTBlMjhi YT5dID8gU3lTX2RlbGV0ZV9tb2R1bGUrMHgxOGEvMHgyNTAKWyAgOTA4Ljk4NDI0MV0gIFs8ZmZm ZmZmZmY4MTA4NmY5OT5dID8gdGFza193b3JrX3J1bisweDg5LzB4YzAKWyAgOTA4Ljk4NDI0NF0g IFs8ZmZmZmZmZmY4MTUyYjczMj5dID8KZW50cnlfU1lTQ0FMTF82NF9mYXN0cGF0aCsweDE2LzB4 NzUKWyAgOTA4Ljk4NDI0N10gLS0tWyBlbmQgdHJhY2UgN2MwMDZlZDRhYmJlZjI0YiBdLS0tCgpU aHVzIHJlbW92ZSB0aGUgcHJvYyBlbnRyeSBtYW51YWxseSBpZiBib25kX3JlbGVhc2VfYW5kX2Rl c3Ryb3koKSBpcwp1c2VkLiBCZWNhdXNlIG9mIHRoZSBjaGVja3MgaW4gYm9uZF9yZW1vdmVfcHJv Y19lbnRyeSgpIGl0J3Mgbm90IGEKcHJvYmxlbSBmb3IgYSBib25kIGRldmljZSB0byBjaGFuZ2Ug bmFtZXNwYWNlcyAodGhlIGJ1ZyBmaXhlZCBieSB0aGUKRml4ZXMgY29tbWl0KSBidXQgc2luY2Ug Y29tbWl0CmY5Mzk5ODE0OTI3YWQgKCJib25kaW5nOiBEb24ndCBhbGxvdyBib25kIGRldmljZXMg dG8gY2hhbmdlIG5ldHdvcmsKbmFtZXNwYWNlcy4iKSB0aGF0IGNhbid0IGhhcHBlbiBhbnl3YXku CgpSZXBvcnRlZC1ieTogQ2Fyb2wgU290byA8Y2xzb3RvQGxpbnV4LnZuZXQuaWJtLmNvbT4KU2ln bmVkLW9mZi1ieTogTmlrb2xheSBBbGVrc2FuZHJvdiA8bmlrb2xheUBjdW11bHVzbmV0d29ya3Mu Y29tPgpGaXhlczogYTY0ZDQ5YzNkZDUwICgiYm9uZGluZzogTWFuYWdlIC9wcm9jL25ldC9ib25k aW5nLyBlbnRyaWVzIGZyb20KICAgICAgICAgICAgICAgICAgICAgIHRoZSBuZXRkZXYgZXZlbnRz IikKVGVzdGVkLWJ5OiBDYXJvbCBMIFNvdG8gPGNsc290b0BsaW51eC52bmV0LmlibS5jb20+ClNp Z25lZC1vZmYtYnk6IERhdmlkIFMuIE1pbGxlciA8ZGF2ZW1AZGF2ZW1sb2Z0Lm5ldD4KLS0tCiBk cml2ZXJzL25ldC9ib25kaW5nL2JvbmRfbWFpbi5jIHwgMSArCiAxIGZpbGUgY2hhbmdlZCwgMSBp bnNlcnRpb24oKykKCmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC9ib25kaW5nL2JvbmRfbWFpbi5j IGIvZHJpdmVycy9uZXQvYm9uZGluZy9ib25kX21haW4uYwppbmRleCBkNWZlNWQ1Li42YTRlNTIz IDEwMDY0NAotLS0gYS9kcml2ZXJzL25ldC9ib25kaW5nL2JvbmRfbWFpbi5jCisrKyBiL2RyaXZl cnMvbmV0L2JvbmRpbmcvYm9uZF9tYWluLmMKQEAgLTE5MDIsNiArMTkwMiw3IEBAIHN0YXRpYyBp bnQgIGJvbmRfcmVsZWFzZV9hbmRfZGVzdHJveShzdHJ1Y3QgbmV0X2RldmljZSAqYm9uZF9kZXYs CiAJCWJvbmRfZGV2LT5wcml2X2ZsYWdzIHw9IElGRl9ESVNBQkxFX05FVFBPTEw7CiAJCW5ldGRl dl9pbmZvKGJvbmRfZGV2LCAiRGVzdHJveWluZyBib25kICVzXG4iLAogCQkJICAgIGJvbmRfZGV2 LT5uYW1lKTsKKwkJYm9uZF9yZW1vdmVfcHJvY19lbnRyeShib25kKTsKIAkJdW5yZWdpc3Rlcl9u ZXRkZXZpY2UoYm9uZF9kZXYpOwogCX0KIAlyZXR1cm4gcmV0OwotLSAKMi4xLjAKCgpGcm9tIDY5 MjAwYzc3ZjMzZTIzYTgxNjA5YmM2MTg2NTlhNDg1OWMxODhhOTggTW9uIFNlcCAxNyAwMDowMDow MCAyMDAxCkZyb206IEhlcmJlcnQgWHUgPGhlcmJlcnRAZ29uZG9yLmFwYW5hLm9yZy5hdT4KRGF0 ZTogTW9uLCAyMCBKdWwgMjAxNSAxNzo1NTozOCArMDgwMApTdWJqZWN0OiBbUEFUQ0ggMjIvNDZd IFJldmVydCAic2l0OiBBZGQgZ3JvIGNhbGxiYWNrcyB0byBzaXRfb2ZmbG9hZCIKClsgVXBzdHJl YW0gY29tbWl0IGZkYmY1YjA5N2JiZDk2OTNhODZjMGI4YmZkZDA3MWE5YTIxMTdjZmMgXQoKVGhp cyBwYXRjaCByZXZlcnRzIDE5NDI0ZTA1MmZiNDRkYTJmMDBkMWE4NjhjYmI1MWYzZTlmNGJiYjUg KCJzaXQ6CkFkZCBncm8gY2FsbGJhY2tzIHRvIHNpdF9vZmZsb2FkIikgYmVjYXVzZSBpdCBnZW5l cmF0ZXMgcGFja2V0cwp0aGF0IGNhbm5vdCBiZSBoYW5kbGVkIGV2ZW4gYnkgb3VyIG93biBHU08u CgpSZXBvcnRlZC1ieTogV29sZmdhbmcgV2FsdGVyIDxsaW51eEBzdHdtLmRlPgpTaWduZWQtb2Zm LWJ5OiBIZXJiZXJ0IFh1IDxoZXJiZXJ0QGdvbmRvci5hcGFuYS5vcmcuYXU+ClNpZ25lZC1vZmYt Ynk6IERhdmlkIFMuIE1pbGxlciA8ZGF2ZW1AZGF2ZW1sb2Z0Lm5ldD4KLS0tCiBuZXQvaXB2Ni9p cDZfb2ZmbG9hZC5jIHwgMiAtLQogMSBmaWxlIGNoYW5nZWQsIDIgZGVsZXRpb25zKC0pCgpkaWZm IC0tZ2l0IGEvbmV0L2lwdjYvaXA2X29mZmxvYWQuYyBiL25ldC9pcHY2L2lwNl9vZmZsb2FkLmMK aW5kZXggZTg5M2NkMS4uMDhiNjIwNCAxMDA2NDQKLS0tIGEvbmV0L2lwdjYvaXA2X29mZmxvYWQu YworKysgYi9uZXQvaXB2Ni9pcDZfb2ZmbG9hZC5jCkBAIC0yOTIsOCArMjkyLDYgQEAgc3RhdGlj IHN0cnVjdCBwYWNrZXRfb2ZmbG9hZCBpcHY2X3BhY2tldF9vZmZsb2FkIF9fcmVhZF9tb3N0bHkg PSB7CiBzdGF0aWMgY29uc3Qgc3RydWN0IG5ldF9vZmZsb2FkIHNpdF9vZmZsb2FkID0gewogCS5j YWxsYmFja3MgPSB7CiAJCS5nc29fc2VnbWVudAk9IGlwdjZfZ3NvX3NlZ21lbnQsCi0JCS5ncm9f cmVjZWl2ZQk9IGlwdjZfZ3JvX3JlY2VpdmUsCi0JCS5ncm9fY29tcGxldGUJPSBpcHY2X2dyb19j b21wbGV0ZSwKIAl9LAogfTsKIAotLSAKMi4xLjAKCgpGcm9tIDA0NzlhZDg4YTRlYjZkZDBkMDVh NTcxMmZmMWQ0ODlmYzI3ZmVhYTQgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCkZyb206IGRpbmd0 aWFuaG9uZyA8ZGluZ3RpYW5ob25nQGh1YXdlaS5jb20+CkRhdGU6IFRodSwgMTYgSnVsIDIwMTUg MTY6MzA6MDIgKzA4MDAKU3ViamVjdDogW1BBVENIIDIzLzQ2XSBib25kaW5nOiBjb3JyZWN0IHRo ZSBNQUMgYWRkcmVzcyBmb3IgImZvbGxvdyIKIGZhaWxfb3Zlcl9tYWMgcG9saWN5CgpbIFVwc3Ry ZWFtIGNvbW1pdCBhOTUxYmMxZTZiYTU4ZjExZGY1ZWQ1ZGRjNDEzMTFlMTBmNWZkMjBiIF0KClRo ZSAiZm9sbG93IiBmYWlsX292ZXJfbWFjIHBvbGljeSBpcyB1c2VmdWwgZm9yIG11bHRpcG9ydCBk ZXZpY2VzIHRoYXQKZWl0aGVyIGJlY29tZSBjb25mdXNlZCBvciBpbmN1ciBhIHBlcmZvcm1hbmNl IHBlbmFsdHkgd2hlbiBtdWx0aXBsZQpwb3J0cyBhcmUgcHJvZ3JhbW1lZCB3aXRoIHRoZSBzYW1l IE1BQyBhZGRyZXNzLCBidXQgdGhlIHNhbWUgTUFDCmFkZHJlc3Mgc3RpbGwgbWF5IGhhcHBlbmVk IGJ5IHRoaXMgc3RlcHMgZm9yIHRoaXMgcG9saWN5OgoKMSkgZWNobyArZXRoMCA+IC9zeXMvY2xh c3MvbmV0L2JvbmQwL2JvbmRpbmcvc2xhdmVzCiAgIGJvbmQwIGhhcyB0aGUgc2FtZSBtYWMgYWRk cmVzcyB3aXRoIGV0aDAsIGl0IGlzIE1BQzEuCgoyKSBlY2hvICtldGgxID4gL3N5cy9jbGFzcy9u ZXQvYm9uZDAvYm9uZGluZy9zbGF2ZXMKICAgZXRoMSBpcyBiYWNrdXAsIGV0aDEgaGFzIE1BQzIu CgozKSBpZmNvbmZpZyBldGgwIGRvd24KICAgZXRoMSBiZWNhbWUgYWN0aXZlIHNsYXZlLCBib25k IHdpbGwgc3dhcCBNQUMgZm9yIGV0aDAgYW5kIGV0aDEsCiAgIHNvIGV0aDEgaGFzIE1BQzEsIGFu ZCBldGgwIGhhcyBNQUMyLgoKNCkgaWZjb25maWcgZXRoMSBkb3duCiAgIHRoZXJlIGlzIG5vIGFj dGl2ZSBzbGF2ZSwgYW5kIGV0aDEgc3RpbGwgaGFzIE1BQzEsIGV0aDIgaGFzIE1BQzIuCgo1KSBp ZmNvbmZpZyBldGgwIHVwCiAgIHRoZSBldGgwIGJlY2FtZSBhY3RpdmUgc2xhdmUgYWdhaW4sIHRo ZSBib25kIHNldCBldGgwIHRvIE1BQzEuCgpTb21ldGhpbmcgd3JvbmcgaGVyZSwgdGhlbiBpZiB5 b3Ugc2V0IGV0aDEgdXAsIHRoZSBldGgwIGFuZCBldGgxIHdpbGwgaGF2ZSB0aGUgc2FtZQpNQUMg YWRkcmVzcywgaXQgd2lsbCBicmVhayB0aGlzIHBvbGljeSBmb3IgQUNUSVZFX0JBQ0tVUCBtb2Rl LgoKVGhpcyBwYXRjaCB3aWxsIGZpeCB0aGlzIHByb2JsZW0gYnkgZmluZGluZyB0aGUgb2xkIGFj dGl2ZSBzbGF2ZSBhbmQKc3dhcCB0aGVtIE1BQyBhZGRyZXNzIGJlZm9yZSBjaGFuZ2UgYWN0aXZl IHNsYXZlLgoKU2lnbmVkLW9mZi1ieTogRGluZyBUaWFuaG9uZyA8ZGluZ3RpYW5ob25nQGh1YXdl aS5jb20+ClRlc3RlZC1ieTogTmlrb2xheSBBbGVrc2FuZHJvdiA8bmlrb2xheUBjdW11bHVzbmV0 d29ya3MuY29tPgpTaWduZWQtb2ZmLWJ5OiBEYXZpZCBTLiBNaWxsZXIgPGRhdmVtQGRhdmVtbG9m dC5uZXQ+Ci0tLQogZHJpdmVycy9uZXQvYm9uZGluZy9ib25kX21haW4uYyB8IDIwICsrKysrKysr KysrKysrKysrKysrCiAxIGZpbGUgY2hhbmdlZCwgMjAgaW5zZXJ0aW9ucygrKQoKZGlmZiAtLWdp dCBhL2RyaXZlcnMvbmV0L2JvbmRpbmcvYm9uZF9tYWluLmMgYi9kcml2ZXJzL25ldC9ib25kaW5n L2JvbmRfbWFpbi5jCmluZGV4IDZhNGU1MjMuLjE2ZDg3YmYgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMv bmV0L2JvbmRpbmcvYm9uZF9tYWluLmMKKysrIGIvZHJpdmVycy9uZXQvYm9uZGluZy9ib25kX21h aW4uYwpAQCAtNjI1LDYgKzYyNSwyMyBAQCBzdGF0aWMgdm9pZCBib25kX3NldF9kZXZfYWRkcihz dHJ1Y3QgbmV0X2RldmljZSAqYm9uZF9kZXYsCiAJY2FsbF9uZXRkZXZpY2Vfbm90aWZpZXJzKE5F VERFVl9DSEFOR0VBRERSLCBib25kX2Rldik7CiB9CiAKK3N0YXRpYyBzdHJ1Y3Qgc2xhdmUgKmJv bmRfZ2V0X29sZF9hY3RpdmUoc3RydWN0IGJvbmRpbmcgKmJvbmQsCisJCQkJCSBzdHJ1Y3Qgc2xh dmUgKm5ld19hY3RpdmUpCit7CisJc3RydWN0IHNsYXZlICpzbGF2ZTsKKwlzdHJ1Y3QgbGlzdF9o ZWFkICppdGVyOworCisJYm9uZF9mb3JfZWFjaF9zbGF2ZShib25kLCBzbGF2ZSwgaXRlcikgewor CQlpZiAoc2xhdmUgPT0gbmV3X2FjdGl2ZSkKKwkJCWNvbnRpbnVlOworCisJCWlmIChldGhlcl9h ZGRyX2VxdWFsKGJvbmQtPmRldi0+ZGV2X2FkZHIsIHNsYXZlLT5kZXYtPmRldl9hZGRyKSkKKwkJ CXJldHVybiBzbGF2ZTsKKwl9CisKKwlyZXR1cm4gTlVMTDsKK30KKwogLyogYm9uZF9kb19mYWls X292ZXJfbWFjCiAgKgogICogUGVyZm9ybSBzcGVjaWFsIE1BQyBhZGRyZXNzIHN3YXBwaW5nIGZv ciBmYWlsX292ZXJfbWFjIHNldHRpbmdzCkBAIC02NTIsNiArNjY5LDkgQEAgc3RhdGljIHZvaWQg Ym9uZF9kb19mYWlsX292ZXJfbWFjKHN0cnVjdCBib25kaW5nICpib25kLAogCQlpZiAoIW5ld19h Y3RpdmUpCiAJCQlyZXR1cm47CiAKKwkJaWYgKCFvbGRfYWN0aXZlKQorCQkJb2xkX2FjdGl2ZSA9 IGJvbmRfZ2V0X29sZF9hY3RpdmUoYm9uZCwgbmV3X2FjdGl2ZSk7CisKIAkJaWYgKG9sZF9hY3Rp dmUpIHsKIAkJCWV0aGVyX2FkZHJfY29weSh0bXBfbWFjLCBuZXdfYWN0aXZlLT5kZXYtPmRldl9h ZGRyKTsKIAkJCWV0aGVyX2FkZHJfY29weShzYWRkci5zYV9kYXRhLAotLSAKMi4xLjAKCgpGcm9t IDZmZWY2ZTJhNGY5N2Q2N2VhMGMyMDQ3M2QyMjhlNzU1ZTNmOTZhMjEgTW9uIFNlcCAxNyAwMDow MDowMCAyMDAxCkZyb206IERhbmllbCBCb3JrbWFubiA8ZGFuaWVsQGlvZ2VhcmJveC5uZXQ+CkRh dGU6IEZyaSwgMTcgSnVsIDIwMTUgMjI6Mzg6NDMgKzAyMDAKU3ViamVjdDogW1BBVENIIDI0LzQ2 XSBzY2hlZDogY2xzX2JwZjogZml4IHBhbmljIG9uIGZpbHRlciByZXBsYWNlCgpbIFVwc3RyZWFt IGNvbW1pdCBmNmJmYzQ2ZGE2MjkyYjYzMGJhMzg5NTkyMTIzZjBkZDAyMDY2MTcyIF0KClRoZSBm b2xsb3dpbmcgdGVzdCBjYXNlIGNhdXNlcyBhIE5VTEwgcG9pbnRlciBkZXJlZmVyZW5jZSBpbiBj bHNfYnBmOgoKICBGT089IjEsNiAwIDAgNDI5NDk2NzI5NSwiCiAgdGMgZmlsdGVyIGFkZCBkZXYg Zm9vIHBhcmVudCAxOiBicGYgYnl0ZWNvZGUgIiRGT08iIGZsb3dpZCAxOjEgYWN0aW9uIG9rCiAg dGMgZmlsdGVyIHJlcGxhY2UgZGV2IGZvbyBwYXJlbnQgMTogcHJlZiA0OTE1MiBoYW5kbGUgMHgx IFwKICAgICAgICAgICAgYnBmIGJ5dGVjb2RlICIkRk9PIiBmbG93aWQgMToxIGFjdGlvbiBkcm9w CgpUaGUgcHJvYmxlbSBpcyB0aGF0IGNvbW1pdCAxZjk0N2JmMTUxZTkgKCJuZXQ6IHNjaGVkOiBy Y3UnaWZ5IGNsc19icGYiKQphY2NpZGVudGFsbHkgc3dhcHBlZCB0aGUgYXJndW1lbnRzIG9mIGxp c3RfcmVwbGFjZV9yY3UoKSwgdGhlIG9sZAplbGVtZW50IG5lZWRzIHRvIGJlIHRoZSBmaXJzdCBh cmd1bWVudCBhbmQgdGhlIG5ldyBlbGVtZW50IHRoZSBzZWNvbmQuCgpGaXhlczogMWY5NDdiZjE1 MWU5ICgibmV0OiBzY2hlZDogcmN1J2lmeSBjbHNfYnBmIikKU2lnbmVkLW9mZi1ieTogRGFuaWVs IEJvcmttYW5uIDxkYW5pZWxAaW9nZWFyYm94Lm5ldD4KQWNrZWQtYnk6IEpvaG4gRmFzdGFiZW5k IDxqb2huLnIuZmFzdGFiZW5kQGludGVsLmNvbT4KQWNrZWQtYnk6IEFsZXhlaSBTdGFyb3ZvaXRv diA8YXN0QHBsdW1ncmlkLmNvbT4KU2lnbmVkLW9mZi1ieTogRGF2aWQgUy4gTWlsbGVyIDxkYXZl bUBkYXZlbWxvZnQubmV0PgotLS0KIG5ldC9zY2hlZC9jbHNfYnBmLmMgfCAyICstCiAxIGZpbGUg Y2hhbmdlZCwgMSBpbnNlcnRpb24oKyksIDEgZGVsZXRpb24oLSkKCmRpZmYgLS1naXQgYS9uZXQv c2NoZWQvY2xzX2JwZi5jIGIvbmV0L3NjaGVkL2Nsc19icGYuYwppbmRleCA5MWJkOWMxLi5jMGI4 NmYyIDEwMDY0NAotLS0gYS9uZXQvc2NoZWQvY2xzX2JwZi5jCisrKyBiL25ldC9zY2hlZC9jbHNf YnBmLmMKQEAgLTM2NCw3ICszNjQsNyBAQCBzdGF0aWMgaW50IGNsc19icGZfY2hhbmdlKHN0cnVj dCBuZXQgKm5ldCwgc3RydWN0IHNrX2J1ZmYgKmluX3NrYiwKIAkJZ290byBlcnJvdXQ7CiAKIAlp ZiAob2xkcHJvZykgewotCQlsaXN0X3JlcGxhY2VfcmN1KCZwcm9nLT5saW5rLCAmb2xkcHJvZy0+ bGluayk7CisJCWxpc3RfcmVwbGFjZV9yY3UoJm9sZHByb2ctPmxpbmssICZwcm9nLT5saW5rKTsK IAkJdGNmX3VuYmluZF9maWx0ZXIodHAsICZvbGRwcm9nLT5yZXMpOwogCQljYWxsX3JjdSgmb2xk cHJvZy0+cmN1LCBfX2Nsc19icGZfZGVsZXRlX3Byb2cpOwogCX0gZWxzZSB7Ci0tIAoyLjEuMAoK CkZyb20gOGMyMTExNDA2YzljYzgwNzc2N2VjYzY0YWUyOWE0MDljZjQ4NmM5NCBNb24gU2VwIDE3 IDAwOjAwOjAwIDIwMDEKRnJvbTogRGFuaWVsIEJvcmttYW5uIDxkYW5pZWxAaW9nZWFyYm94Lm5l dD4KRGF0ZTogRnJpLCAxNyBKdWwgMjAxNSAyMjozODo0NSArMDIwMApTdWJqZWN0OiBbUEFUQ0gg MjUvNDZdIHNjaGVkOiBjbHNfZmxvdzogZml4IHBhbmljIG9uIGZpbHRlciByZXBsYWNlCgpbIFVw c3RyZWFtIGNvbW1pdCAzMmIyZjRiMTk2YjM3Njk1ZmRiNDJiMzFhZmNiYzE1Mzk5ZDZlZjkxIF0K ClRoZSBmb2xsb3dpbmcgdGVzdCBjYXNlIGNhdXNlcyBhIE5VTEwgcG9pbnRlciBkZXJlZmVyZW5j ZSBpbiBjbHNfZmxvdzoKCiAgdGMgZmlsdGVyIGFkZCBkZXYgZm9vIHBhcmVudCAxOiBoYW5kbGUg MHgxIGZsb3cgaGFzaCBrZXlzIGRzdCBhY3Rpb24gb2sKICB0YyBmaWx0ZXIgcmVwbGFjZSBkZXYg Zm9vIHBhcmVudCAxOiBwcmVmIDQ5MTUyIGhhbmRsZSAweDEgXAogICAgICAgICAgICBmbG93IGhh c2gga2V5cyBtYXJrIGFjdGlvbiBkcm9wCgpUbyBiZSBtb3JlIHByZWNpc2UsIGFjdHVhbGx5IHR3 byBkaWZmZXJlbnQgcGFuaWNzIGFyZSBmaXhlZCwgdGhlIGZpcnN0Cm9jY3VycyBiZWNhdXNlIHRj Zl9leHRzX2luaXQoKSBpcyBub3QgY2FsbGVkIG9uIHRoZSBuZXdseSBhbGxvY2F0ZWQKZmlsdGVy IHdoZW4gd2UgZG8gYSByZXBsYWNlLiBBbmQgdGhlIHNlY29uZCBwYW5pYyB1bmNvdmVyZWQgYWZ0 ZXIgdGhhdApoYXBwZW5zIHNpbmNlIHRoZSBhcmd1bWVudHMgb2YgbGlzdF9yZXBsYWNlX3JjdSgp IGFyZSBzd2FwcGVkLCB0aGUgb2xkCmVsZW1lbnQgbmVlZHMgdG8gYmUgdGhlIGZpcnN0IGFyZ3Vt ZW50IGFuZCB0aGUgbmV3IGVsZW1lbnQgdGhlIHNlY29uZC4KCkZpeGVzOiA3MGRhOWYwYmY5OTkg KCJuZXQ6IHNjaGVkOiBjbHNfZmxvdyB1c2UgUkNVIikKU2lnbmVkLW9mZi1ieTogRGFuaWVsIEJv cmttYW5uIDxkYW5pZWxAaW9nZWFyYm94Lm5ldD4KQWNrZWQtYnk6IEpvaG4gRmFzdGFiZW5kIDxq b2huLnIuZmFzdGFiZW5kQGludGVsLmNvbT4KU2lnbmVkLW9mZi1ieTogRGF2aWQgUy4gTWlsbGVy IDxkYXZlbUBkYXZlbWxvZnQubmV0PgotLS0KIG5ldC9zY2hlZC9jbHNfZmxvdy5jIHwgNSArKyst LQogMSBmaWxlIGNoYW5nZWQsIDMgaW5zZXJ0aW9ucygrKSwgMiBkZWxldGlvbnMoLSkKCmRpZmYg LS1naXQgYS9uZXQvc2NoZWQvY2xzX2Zsb3cuYyBiL25ldC9zY2hlZC9jbHNfZmxvdy5jCmluZGV4 IGE2MjBjNGUuLjc1ZGY5MjMgMTAwNjQ0Ci0tLSBhL25ldC9zY2hlZC9jbHNfZmxvdy5jCisrKyBi L25ldC9zY2hlZC9jbHNfZmxvdy5jCkBAIC00MTksNiArNDE5LDggQEAgc3RhdGljIGludCBmbG93 X2NoYW5nZShzdHJ1Y3QgbmV0ICpuZXQsIHN0cnVjdCBza19idWZmICppbl9za2IsCiAJaWYgKCFm bmV3KQogCQlnb3RvIGVycjI7CiAKKwl0Y2ZfZXh0c19pbml0KCZmbmV3LT5leHRzLCBUQ0FfRkxP V19BQ1QsIFRDQV9GTE9XX1BPTElDRSk7CisKIAlmb2xkID0gKHN0cnVjdCBmbG93X2ZpbHRlciAq KSphcmc7CiAJaWYgKGZvbGQpIHsKIAkJZXJyID0gLUVJTlZBTDsKQEAgLTQ4MCw3ICs0ODIsNiBA QCBzdGF0aWMgaW50IGZsb3dfY2hhbmdlKHN0cnVjdCBuZXQgKm5ldCwgc3RydWN0IHNrX2J1ZmYg KmluX3NrYiwKIAkJZm5ldy0+bWFzayAgPSB+MFU7CiAJCWZuZXctPnRwID0gdHA7CiAJCWdldF9y YW5kb21fYnl0ZXMoJmZuZXctPmhhc2hybmQsIDQpOwotCQl0Y2ZfZXh0c19pbml0KCZmbmV3LT5l eHRzLCBUQ0FfRkxPV19BQ1QsIFRDQV9GTE9XX1BPTElDRSk7CiAJfQogCiAJZm5ldy0+cGVydHVy Yl90aW1lci5mdW5jdGlvbiA9IGZsb3dfcGVydHVyYmF0aW9uOwpAQCAtNTIwLDcgKzUyMSw3IEBA IHN0YXRpYyBpbnQgZmxvd19jaGFuZ2Uoc3RydWN0IG5ldCAqbmV0LCBzdHJ1Y3Qgc2tfYnVmZiAq aW5fc2tiLAogCWlmICgqYXJnID09IDApCiAJCWxpc3RfYWRkX3RhaWxfcmN1KCZmbmV3LT5saXN0 LCAmaGVhZC0+ZmlsdGVycyk7CiAJZWxzZQotCQlsaXN0X3JlcGxhY2VfcmN1KCZmbmV3LT5saXN0 LCAmZm9sZC0+bGlzdCk7CisJCWxpc3RfcmVwbGFjZV9yY3UoJmZvbGQtPmxpc3QsICZmbmV3LT5s aXN0KTsKIAogCSphcmcgPSAodW5zaWduZWQgbG9uZylmbmV3OwogCi0tIAoyLjEuMAoKCkZyb20g ZmUwZTA1NzRhNzA4MzIwNTE3MzMwY2E1Nzg2NWYxZDRkMjUzMGNmYyBNb24gU2VwIDE3IDAwOjAw OjAwIDIwMDEKRnJvbTogRWR3YXJkIEh5dW5rb28gSmVlIDxlZGplZUBnb29nbGUuY29tPgpEYXRl OiBUdWUsIDIxIEp1bCAyMDE1IDA5OjQzOjU5ICswMjAwClN1YmplY3Q6IFtQQVRDSCAyNi80Nl0g aW5ldDogZnJhZ3M6IGZpeCBkZWZyYWdtZW50ZWQgcGFja2V0J3MgSVAgaGVhZGVyIGZvcgogYWZf cGFja2V0CgpbIFVwc3RyZWFtIGNvbW1pdCAwODQ4ZjY0MjhiYTNhMmU0MmRiMTI0ZDQxYWM2ZjU0 ODY1NTczNWJmIF0KCldoZW4gaXBfZnJhZ19xdWV1ZSgpIGNvbXB1dGVzIHBvc2l0aW9ucywgaXQg YXNzdW1lcyB0aGF0IHRoZSBwYXNzZWQKc2tfYnVmZiBkb2VzIG5vdCBjb250YWluIEwyIGhlYWRl cnMuCgpIb3dldmVyLCB3aGVuIFBBQ0tFVF9GQU5PVVRfRkxBR19ERUZSQUcgaXMgdXNlZCwgSVAg cmVhc3NlbWJseQpmdW5jdGlvbnMgY2FuIGJlIGNhbGxlZCBvbiBvdXRnb2luZyBwYWNrZXRzIHRo YXQgY29udGFpbiBMMiBoZWFkZXJzLgoKQWxzbywgSVB2NCBjaGVja3N1bSBpcyBub3QgY29ycmVj dGVkIGFmdGVyIHJlYXNzZW1ibHkuCgpGaXhlczogNzczNmQzM2Y0MjYyICgicGFja2V0OiBBZGQg cHJlLWRlZnJhZ21lbnRhdGlvbiBzdXBwb3J0IGZvciBpcHY0IGZhbm91dHMuIikKU2lnbmVkLW9m Zi1ieTogRWR3YXJkIEh5dW5rb28gSmVlIDxlZGplZUBnb29nbGUuY29tPgpTaWduZWQtb2ZmLWJ5 OiBFcmljIER1bWF6ZXQgPGVkdW1hemV0QGdvb2dsZS5jb20+CkNjOiBXaWxsZW0gZGUgQnJ1aWpu IDx3aWxsZW1iQGdvb2dsZS5jb20+CkNjOiBKZXJyeSBDaHUgPGhrY2h1QGdvb2dsZS5jb20+ClNp Z25lZC1vZmYtYnk6IERhdmlkIFMuIE1pbGxlciA8ZGF2ZW1AZGF2ZW1sb2Z0Lm5ldD4KLS0tCiBu ZXQvaXB2NC9pcF9mcmFnbWVudC5jIHwgNyArKysrKy0tCiAxIGZpbGUgY2hhbmdlZCwgNSBpbnNl cnRpb25zKCspLCAyIGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL25ldC9pcHY0L2lwX2ZyYWdt ZW50LmMgYi9uZXQvaXB2NC9pcF9mcmFnbWVudC5jCmluZGV4IGNjMWRhNmQuLmNhZTIyYTEgMTAw NjQ0Ci0tLSBhL25ldC9pcHY0L2lwX2ZyYWdtZW50LmMKKysrIGIvbmV0L2lwdjQvaXBfZnJhZ21l bnQuYwpAQCAtMzQyLDcgKzM0Miw3IEBAIHN0YXRpYyBpbnQgaXBfZnJhZ19xdWV1ZShzdHJ1Y3Qg aXBxICpxcCwgc3RydWN0IHNrX2J1ZmYgKnNrYikKIAlpaGwgPSBpcF9oZHJsZW4oc2tiKTsKIAog CS8qIERldGVybWluZSB0aGUgcG9zaXRpb24gb2YgdGhpcyBmcmFnbWVudC4gKi8KLQllbmQgPSBv ZmZzZXQgKyBza2ItPmxlbiAtIGlobDsKKwllbmQgPSBvZmZzZXQgKyBza2ItPmxlbiAtIHNrYl9u ZXR3b3JrX29mZnNldChza2IpIC0gaWhsOwogCWVyciA9IC1FSU5WQUw7CiAKIAkvKiBJcyB0aGlz IHRoZSBmaW5hbCBmcmFnbWVudD8gKi8KQEAgLTM3Miw3ICszNzIsNyBAQCBzdGF0aWMgaW50IGlw X2ZyYWdfcXVldWUoc3RydWN0IGlwcSAqcXAsIHN0cnVjdCBza19idWZmICpza2IpCiAJCWdvdG8g ZXJyOwogCiAJZXJyID0gLUVOT01FTTsKLQlpZiAoIXBza2JfcHVsbChza2IsIGlobCkpCisJaWYg KCFwc2tiX3B1bGwoc2tiLCBza2JfbmV0d29ya19vZmZzZXQoc2tiKSArIGlobCkpCiAJCWdvdG8g ZXJyOwogCiAJZXJyID0gcHNrYl90cmltX3Jjc3VtKHNrYiwgZW5kIC0gb2Zmc2V0KTsKQEAgLTYx Myw2ICs2MTMsOSBAQCBzdGF0aWMgaW50IGlwX2ZyYWdfcmVhc20oc3RydWN0IGlwcSAqcXAsIHN0 cnVjdCBza19idWZmICpwcmV2LAogCWlwaC0+ZnJhZ19vZmYgPSBxcC0+cS5tYXhfc2l6ZSA/IGh0 b25zKElQX0RGKSA6IDA7CiAJaXBoLT50b3RfbGVuID0gaHRvbnMobGVuKTsKIAlpcGgtPnRvcyB8 PSBlY247CisKKwlpcF9zZW5kX2NoZWNrKGlwaCk7CisKIAlJUF9JTkNfU1RBVFNfQkgobmV0LCBJ UFNUQVRTX01JQl9SRUFTTU9LUyk7CiAJcXAtPnEuZnJhZ21lbnRzID0gTlVMTDsKIAlxcC0+cS5m cmFnbWVudHNfdGFpbCA9IE5VTEw7Ci0tIAoyLjEuMAoKCkZyb20gNWRmY2Q0YTA3NDlkOWQ0MjFl YzA0ZGVkZjM3ZDlmMDdhMGMyMmYzYSBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJvbTogRmxv cmlhbiBXZXN0cGhhbCA8ZndAc3RybGVuLmRlPgpEYXRlOiBUdWUsIDIxIEp1bCAyMDE1IDE2OjMz OjUwICswMjAwClN1YmplY3Q6IFtQQVRDSCAyNy80Nl0gbmV0bGluazogZG9uJ3QgaG9sZCBtdXRl eCBpbiByY3UgY2FsbGJhY2sgd2hlbgogcmVsZWFzaW5nIG1tYXBkIHJpbmcKClsgVXBzdHJlYW0g Y29tbWl0IDA0NzBlYjk5YjQ3MjE1ODZjY2FjOTU0ZmFhYzNmYTQ0NzJkYTA4NDUgXQoKS2lyaWxs IEEuIFNodXRlbW92IHNheXM6CgpUaGlzIHNpbXBsZSB0ZXN0LWNhc2UgdHJpZ2VycyBmZXcgbG9j a2luZyBhc3NlcnRzIGluIGtlcm5lbDoKCmludCBtYWluKGludCBhcmdjLCBjaGFyICoqYXJndikK ewogICAgICAgIHVuc2lnbmVkIGludCBibG9ja19zaXplID0gMTYgKiA0MDk2OwogICAgICAgIHN0 cnVjdCBubF9tbWFwX3JlcSByZXEgPSB7CiAgICAgICAgICAgICAgICAubm1fYmxvY2tfc2l6ZSAg ICAgICAgICA9IGJsb2NrX3NpemUsCiAgICAgICAgICAgICAgICAubm1fYmxvY2tfbnIgICAgICAg ICAgICA9IDY0LAogICAgICAgICAgICAgICAgLm5tX2ZyYW1lX3NpemUgICAgICAgICAgPSAxNjM4 NCwKICAgICAgICAgICAgICAgIC5ubV9mcmFtZV9uciAgICAgICAgICAgID0gNjQgKiBibG9ja19z aXplIC8gMTYzODQsCiAgICAgICAgfTsKICAgICAgICB1bnNpZ25lZCBpbnQgcmluZ19zaXplOwoJ aW50IGZkOwoKCWZkID0gc29ja2V0KEFGX05FVExJTkssIFNPQ0tfUkFXLCBORVRMSU5LX0dFTkVS SUMpOwogICAgICAgIGlmIChzZXRzb2Nrb3B0KGZkLCBTT0xfTkVUTElOSywgTkVUTElOS19SWF9S SU5HLCAmcmVxLCBzaXplb2YocmVxKSkgPCAwKQogICAgICAgICAgICAgICAgZXhpdCgxKTsKICAg ICAgICBpZiAoc2V0c29ja29wdChmZCwgU09MX05FVExJTkssIE5FVExJTktfVFhfUklORywgJnJl cSwgc2l6ZW9mKHJlcSkpIDwgMCkKICAgICAgICAgICAgICAgIGV4aXQoMSk7CgoJcmluZ19zaXpl ID0gcmVxLm5tX2Jsb2NrX25yICogcmVxLm5tX2Jsb2NrX3NpemU7CgltbWFwKE5VTEwsIDIgKiBy aW5nX3NpemUsIFBST1RfUkVBRHxQUk9UX1dSSVRFLCBNQVBfU0hBUkVELCBmZCwgMCk7CglyZXR1 cm4gMDsKfQoKKysrIGV4aXRlZCB3aXRoIDAgKysrCkJVRzogc2xlZXBpbmcgZnVuY3Rpb24gY2Fs bGVkIGZyb20gaW52YWxpZCBjb250ZXh0IGF0IC9ob21lL2thcy9naXQvcHVibGljL2xpbnV4LW1t L2tlcm5lbC9sb2NraW5nL211dGV4LmM6NjE2CmluX2F0b21pYygpOiAxLCBpcnFzX2Rpc2FibGVk KCk6IDAsIHBpZDogMSwgbmFtZTogaW5pdAozIGxvY2tzIGhlbGQgYnkgaW5pdC8xOgogIzA6ICAo cmVib290X211dGV4KXsrLisuLi59LCBhdDogWzxmZmZmZmZmZjgxMDgwOTU5Pl0gU3lTX3JlYm9v dCsweGE5LzB4MjIwCiAjMTogICgocmVib290X25vdGlmaWVyX2xpc3QpLnJ3c2VtKXsuKy4rLi59 LCBhdDogWzxmZmZmZmZmZjgxMDdmMzc5Pl0gX19ibG9ja2luZ19ub3RpZmllcl9jYWxsX2NoYWlu KzB4MzkvMHg3MAogIzI6ICAocmN1X2NhbGxiYWNrKXsuLi4uLi59LCBhdDogWzxmZmZmZmZmZjgx MGQzMmUwPl0gcmN1X2RvX2JhdGNoLmlzcmEuNDkrMHgxNjAvMHgxMGMwClByZWVtcHRpb24gZGlz YWJsZWQgYXQ6WzxmZmZmZmZmZjgxNDUzNjVmPl0gX19kZWxheSsweGYvMHgyMAoKQ1BVOiAxIFBJ RDogMSBDb21tOiBpbml0IE5vdCB0YWludGVkIDQuMS4wLTAwMDA5LWdiZGRmNGM0ODE4ZTAgIzI1 MwpIYXJkd2FyZSBuYW1lOiBRRU1VIFN0YW5kYXJkIFBDIChRMzUgKyBJQ0g5LCAyMDA5KSwgQklP UyBEZWJpYW4tMS44LjItMSAwNC8wMS8yMDE0CiBmZmZmODgwMTdiM2Q4MDAwIGZmZmY4ODAyN2Jj MDNjMzggZmZmZmZmZmY4MTkyOWNlYiAwMDAwMDAwMDAwMDAwMTAyCiAwMDAwMDAwMDAwMDAwMDAw IGZmZmY4ODAyN2JjMDNjNjggZmZmZmZmZmY4MTA4NWE5ZCAwMDAwMDAwMDAwMDAwMDAyCiBmZmZm ZmZmZjgxY2EyYTIwIDAwMDAwMDAwMDAwMDAyNjggMDAwMDAwMDAwMDAwMDAwMCBmZmZmODgwMjdi YzAzYzk4CkNhbGwgVHJhY2U6CiA8SVJRPiAgWzxmZmZmZmZmZjgxOTI5Y2ViPl0gZHVtcF9zdGFj aysweDRmLzB4N2IKIFs8ZmZmZmZmZmY4MTA4NWE5ZD5dIF9fX21pZ2h0X3NsZWVwKzB4MTZkLzB4 MjcwCiBbPGZmZmZmZmZmODEwODViZWQ+XSBfX21pZ2h0X3NsZWVwKzB4NGQvMHg5MAogWzxmZmZm ZmZmZjgxOTJlOTZmPl0gbXV0ZXhfbG9ja19uZXN0ZWQrMHgyZi8weDQzMAogWzxmZmZmZmZmZjgx OTMyZmVkPl0gPyBfcmF3X3NwaW5fdW5sb2NrX2lycXJlc3RvcmUrMHg1ZC8weDgwCiBbPGZmZmZm ZmZmODE0NjQxNDM+XSA/IF9fdGhpc19jcHVfcHJlZW1wdF9jaGVjaysweDEzLzB4MjAKIFs8ZmZm ZmZmZmY4MTgyZmMzZD5dIG5ldGxpbmtfc2V0X3JpbmcrMHgxZWQvMHgzNTAKIFs8ZmZmZmZmZmY4 MTgyZTAwMD5dID8gbmV0bGlua191bmRvX2JpbmQrMHg3MC8weDcwCiBbPGZmZmZmZmZmODE4MmZl MjA+XSBuZXRsaW5rX3NvY2tfZGVzdHJ1Y3QrMHg4MC8weDE1MAogWzxmZmZmZmZmZjgxN2U0ODRk Pl0gX19za19mcmVlKzB4MWQvMHgxNjAKIFs8ZmZmZmZmZmY4MTdlNDlhOT5dIHNrX2ZyZWUrMHgx OS8weDIwClsuLl0KCkNvbmcgV2FuZyBzYXlzOgoKV2UgY2FuJ3QgaG9sZCBtdXRleCBsb2NrIGlu IGEgcmN1IGNhbGxiYWNrLCBbLi5dCgpUaG9tYXMgR3JhZiBzYXlzOgoKVGhlIHNvY2tldCBzaG91 bGQgYmUgZGVhZCBhdCB0aGlzIHBvaW50LiBJdCBtaWdodCBiZSBzaW1wbGVyIHRvCmFkZCBhIG5l dGxpbmtfcmVsZWFzZV9yaW5nKCkgZnVuY3Rpb24gd2hpY2ggZG9lc24ndCByZXF1aXJlCmxvY2tp bmcgYXQgYWxsLgoKUmVwb3J0ZWQtYnk6ICJLaXJpbGwgQS4gU2h1dGVtb3YiIDxraXJpbGxAc2h1 dGVtb3YubmFtZT4KRGlhZ25vc2VkLWJ5OiBDb25nIFdhbmcgPGN3YW5nQHR3b3BlbnNvdXJjZS5j b20+ClN1Z2dlc3RlZC1ieTogVGhvbWFzIEdyYWYgPHRncmFmQHN1dWcuY2g+ClNpZ25lZC1vZmYt Ynk6IEZsb3JpYW4gV2VzdHBoYWwgPGZ3QHN0cmxlbi5kZT4KU2lnbmVkLW9mZi1ieTogRGF2aWQg Uy4gTWlsbGVyIDxkYXZlbUBkYXZlbWxvZnQubmV0PgotLS0KIG5ldC9uZXRsaW5rL2FmX25ldGxp bmsuYyB8IDc5ICsrKysrKysrKysrKysrKysrKysrKysrKysrKystLS0tLS0tLS0tLS0tLS0tLS0t LQogMSBmaWxlIGNoYW5nZWQsIDQ3IGluc2VydGlvbnMoKyksIDMyIGRlbGV0aW9ucygtKQoKZGlm ZiAtLWdpdCBhL25ldC9uZXRsaW5rL2FmX25ldGxpbmsuYyBiL25ldC9uZXRsaW5rL2FmX25ldGxp bmsuYwppbmRleCBiZjZlNzY2Li5lYTVlZDdhIDEwMDY0NAotLS0gYS9uZXQvbmV0bGluay9hZl9u ZXRsaW5rLmMKKysrIGIvbmV0L25ldGxpbmsvYWZfbmV0bGluay5jCkBAIC0zNTUsMjUgKzM1NSw1 MiBAQCBlcnIxOgogCXJldHVybiBOVUxMOwogfQogCisKK3N0YXRpYyB2b2lkCitfX25ldGxpbmtf c2V0X3Jpbmcoc3RydWN0IHNvY2sgKnNrLCBzdHJ1Y3QgbmxfbW1hcF9yZXEgKnJlcSwgYm9vbCB0 eF9yaW5nLCB2b2lkICoqcGdfdmVjLAorCQkgICB1bnNpZ25lZCBpbnQgb3JkZXIpCit7CisJc3Ry dWN0IG5ldGxpbmtfc29jayAqbmxrID0gbmxrX3NrKHNrKTsKKwlzdHJ1Y3Qgc2tfYnVmZl9oZWFk ICpxdWV1ZTsKKwlzdHJ1Y3QgbmV0bGlua19yaW5nICpyaW5nOworCisJcXVldWUgPSB0eF9yaW5n ID8gJnNrLT5za193cml0ZV9xdWV1ZSA6ICZzay0+c2tfcmVjZWl2ZV9xdWV1ZTsKKwlyaW5nICA9 IHR4X3JpbmcgPyAmbmxrLT50eF9yaW5nIDogJm5say0+cnhfcmluZzsKKworCXNwaW5fbG9ja19i aCgmcXVldWUtPmxvY2spOworCisJcmluZy0+ZnJhbWVfbWF4CQk9IHJlcS0+bm1fZnJhbWVfbnIg LSAxOworCXJpbmctPmhlYWQJCT0gMDsKKwlyaW5nLT5mcmFtZV9zaXplCT0gcmVxLT5ubV9mcmFt ZV9zaXplOworCXJpbmctPnBnX3ZlY19wYWdlcwk9IHJlcS0+bm1fYmxvY2tfc2l6ZSAvIFBBR0Vf U0laRTsKKworCXN3YXAocmluZy0+cGdfdmVjX2xlbiwgcmVxLT5ubV9ibG9ja19ucik7CisJc3dh cChyaW5nLT5wZ192ZWNfb3JkZXIsIG9yZGVyKTsKKwlzd2FwKHJpbmctPnBnX3ZlYywgcGdfdmVj KTsKKworCV9fc2tiX3F1ZXVlX3B1cmdlKHF1ZXVlKTsKKwlzcGluX3VubG9ja19iaCgmcXVldWUt PmxvY2spOworCisJV0FSTl9PTihhdG9taWNfcmVhZCgmbmxrLT5tYXBwZWQpKTsKKworCWlmIChw Z192ZWMpCisJCWZyZWVfcGdfdmVjKHBnX3ZlYywgb3JkZXIsIHJlcS0+bm1fYmxvY2tfbnIpOwor fQorCiBzdGF0aWMgaW50IG5ldGxpbmtfc2V0X3Jpbmcoc3RydWN0IHNvY2sgKnNrLCBzdHJ1Y3Qg bmxfbW1hcF9yZXEgKnJlcSwKLQkJCSAgICBib29sIGNsb3NpbmcsIGJvb2wgdHhfcmluZykKKwkJ CSAgICBib29sIHR4X3JpbmcpCiB7CiAJc3RydWN0IG5ldGxpbmtfc29jayAqbmxrID0gbmxrX3Nr KHNrKTsKIAlzdHJ1Y3QgbmV0bGlua19yaW5nICpyaW5nOwotCXN0cnVjdCBza19idWZmX2hlYWQg KnF1ZXVlOwogCXZvaWQgKipwZ192ZWMgPSBOVUxMOwogCXVuc2lnbmVkIGludCBvcmRlciA9IDA7 Ci0JaW50IGVycjsKIAogCXJpbmcgID0gdHhfcmluZyA/ICZubGstPnR4X3JpbmcgOiAmbmxrLT5y eF9yaW5nOwotCXF1ZXVlID0gdHhfcmluZyA/ICZzay0+c2tfd3JpdGVfcXVldWUgOiAmc2stPnNr X3JlY2VpdmVfcXVldWU7CiAKLQlpZiAoIWNsb3NpbmcpIHsKLQkJaWYgKGF0b21pY19yZWFkKCZu bGstPm1hcHBlZCkpCi0JCQlyZXR1cm4gLUVCVVNZOwotCQlpZiAoYXRvbWljX3JlYWQoJnJpbmct PnBlbmRpbmcpKQotCQkJcmV0dXJuIC1FQlVTWTsKLQl9CisJaWYgKGF0b21pY19yZWFkKCZubGst Pm1hcHBlZCkpCisJCXJldHVybiAtRUJVU1k7CisJaWYgKGF0b21pY19yZWFkKCZyaW5nLT5wZW5k aW5nKSkKKwkJcmV0dXJuIC1FQlVTWTsKIAogCWlmIChyZXEtPm5tX2Jsb2NrX25yKSB7CiAJCWlm IChyaW5nLT5wZ192ZWMgIT0gTlVMTCkKQEAgLTQwNSwzMSArNDMyLDE5IEBAIHN0YXRpYyBpbnQg bmV0bGlua19zZXRfcmluZyhzdHJ1Y3Qgc29jayAqc2ssIHN0cnVjdCBubF9tbWFwX3JlcSAqcmVx LAogCQkJcmV0dXJuIC1FSU5WQUw7CiAJfQogCi0JZXJyID0gLUVCVVNZOwogCW11dGV4X2xvY2so Jm5say0+cGdfdmVjX2xvY2spOwotCWlmIChjbG9zaW5nIHx8IGF0b21pY19yZWFkKCZubGstPm1h cHBlZCkgPT0gMCkgewotCQllcnIgPSAwOwotCQlzcGluX2xvY2tfYmgoJnF1ZXVlLT5sb2NrKTsK LQotCQlyaW5nLT5mcmFtZV9tYXgJCT0gcmVxLT5ubV9mcmFtZV9uciAtIDE7Ci0JCXJpbmctPmhl YWQJCT0gMDsKLQkJcmluZy0+ZnJhbWVfc2l6ZQk9IHJlcS0+bm1fZnJhbWVfc2l6ZTsKLQkJcmlu Zy0+cGdfdmVjX3BhZ2VzCT0gcmVxLT5ubV9ibG9ja19zaXplIC8gUEFHRV9TSVpFOwotCi0JCXN3 YXAocmluZy0+cGdfdmVjX2xlbiwgcmVxLT5ubV9ibG9ja19ucik7Ci0JCXN3YXAocmluZy0+cGdf dmVjX29yZGVyLCBvcmRlcik7Ci0JCXN3YXAocmluZy0+cGdfdmVjLCBwZ192ZWMpOwotCi0JCV9f c2tiX3F1ZXVlX3B1cmdlKHF1ZXVlKTsKLQkJc3Bpbl91bmxvY2tfYmgoJnF1ZXVlLT5sb2NrKTsK LQotCQlXQVJOX09OKGF0b21pY19yZWFkKCZubGstPm1hcHBlZCkpOworCWlmIChhdG9taWNfcmVh ZCgmbmxrLT5tYXBwZWQpID09IDApIHsKKwkJX19uZXRsaW5rX3NldF9yaW5nKHNrLCByZXEsIHR4 X3JpbmcsIHBnX3ZlYywgb3JkZXIpOworCQltdXRleF91bmxvY2soJm5say0+cGdfdmVjX2xvY2sp OworCQlyZXR1cm4gMDsKIAl9CisKIAltdXRleF91bmxvY2soJm5say0+cGdfdmVjX2xvY2spOwog CiAJaWYgKHBnX3ZlYykKIAkJZnJlZV9wZ192ZWMocGdfdmVjLCBvcmRlciwgcmVxLT5ubV9ibG9j a19ucik7Ci0JcmV0dXJuIGVycjsKKworCXJldHVybiAtRUJVU1k7CiB9CiAKIHN0YXRpYyB2b2lk IG5ldGxpbmtfbW1fb3BlbihzdHJ1Y3Qgdm1fYXJlYV9zdHJ1Y3QgKnZtYSkKQEAgLTg5OCwxMCAr OTEzLDEwIEBAIHN0YXRpYyB2b2lkIG5ldGxpbmtfc29ja19kZXN0cnVjdChzdHJ1Y3Qgc29jayAq c2spCiAKIAkJbWVtc2V0KCZyZXEsIDAsIHNpemVvZihyZXEpKTsKIAkJaWYgKG5say0+cnhfcmlu Zy5wZ192ZWMpCi0JCQluZXRsaW5rX3NldF9yaW5nKHNrLCAmcmVxLCB0cnVlLCBmYWxzZSk7CisJ CQlfX25ldGxpbmtfc2V0X3Jpbmcoc2ssICZyZXEsIGZhbHNlLCBOVUxMLCAwKTsKIAkJbWVtc2V0 KCZyZXEsIDAsIHNpemVvZihyZXEpKTsKIAkJaWYgKG5say0+dHhfcmluZy5wZ192ZWMpCi0JCQlu ZXRsaW5rX3NldF9yaW5nKHNrLCAmcmVxLCB0cnVlLCB0cnVlKTsKKwkJCV9fbmV0bGlua19zZXRf cmluZyhzaywgJnJlcSwgdHJ1ZSwgTlVMTCwgMCk7CiAJfQogI2VuZGlmIC8qIENPTkZJR19ORVRM SU5LX01NQVAgKi8KIApAQCAtMjE5Nyw3ICsyMjEyLDcgQEAgc3RhdGljIGludCBuZXRsaW5rX3Nl dHNvY2tvcHQoc3RydWN0IHNvY2tldCAqc29jaywgaW50IGxldmVsLCBpbnQgb3B0bmFtZSwKIAkJ CXJldHVybiAtRUlOVkFMOwogCQlpZiAoY29weV9mcm9tX3VzZXIoJnJlcSwgb3B0dmFsLCBzaXpl b2YocmVxKSkpCiAJCQlyZXR1cm4gLUVGQVVMVDsKLQkJZXJyID0gbmV0bGlua19zZXRfcmluZyhz aywgJnJlcSwgZmFsc2UsCisJCWVyciA9IG5ldGxpbmtfc2V0X3Jpbmcoc2ssICZyZXEsCiAJCQkJ ICAgICAgIG9wdG5hbWUgPT0gTkVUTElOS19UWF9SSU5HKTsKIAkJYnJlYWs7CiAJfQotLSAKMi4x LjAKCgpGcm9tIGM4YTk1OGQ2MzQ0M2UyZDE0M2QxNzEwZWU0MzdjMTc0MzhmZDEyZTUgTW9uIFNl cCAxNyAwMDowMDowMCAyMDAxCkZyb206ICJNaWNoYWVsIFMuIFRzaXJraW4iIDxtc3RAcmVkaGF0 LmNvbT4KRGF0ZTogV2VkLCAxNSBKdWwgMjAxNSAxNToyNjoxOSArMDMwMApTdWJqZWN0OiBbUEFU Q0ggMjgvNDZdIHZpcnRpb19uZXQ6IGRvbid0IHJlcXVpcmUgQU5ZX0xBWU9VVCB3aXRoIFZFUlNJ T05fMQoKWyBVcHN0cmVhbSBjb21taXQgNzU5OTMzMDBkMDA4ZjQxOGVlMjU2OWE2MzIxODVmYzFk N2Q1MDY3NCBdCgpBTllfTEFZT1VUIGlzIGEgY29tcGF0aWJpbGl0eSBmZWF0dXJlLiBJdCdzIGlt cGxpZWQKZm9yIFZFUlNJT05fMSBkZXZpY2VzLCBhbmQgbm9uLXRyYW5zaXRpb25hbCBkZXZpY2Vz Cm1pZ2h0IG5vdCBvZmZlciBpdC4gQ2hhbmdlIGNvZGUgdG8gYmVoYXZlIGFjY29yZGluZ2x5LgoK U2lnbmVkLW9mZi1ieTogTWljaGFlbCBTLiBUc2lya2luIDxtc3RAcmVkaGF0LmNvbT4KUmV2aWV3 ZWQtYnk6IFBhb2xvIEJvbnppbmkgPHBib256aW5pQHJlZGhhdC5jb20+ClJldmlld2VkLWJ5OiBT dGVmYW4gSGFqbm9jemkgPHN0ZWZhbmhhQHJlZGhhdC5jb20+ClNpZ25lZC1vZmYtYnk6IERhdmlk IFMuIE1pbGxlciA8ZGF2ZW1AZGF2ZW1sb2Z0Lm5ldD4KLS0tCiBkcml2ZXJzL25ldC92aXJ0aW9f bmV0LmMgfCAzICsrLQogMSBmaWxlIGNoYW5nZWQsIDIgaW5zZXJ0aW9ucygrKSwgMSBkZWxldGlv bigtKQoKZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L3ZpcnRpb19uZXQuYyBiL2RyaXZlcnMvbmV0 L3ZpcnRpb19uZXQuYwppbmRleCA2M2M3ODEwLi43ZmJjYTM3IDEwMDY0NAotLS0gYS9kcml2ZXJz L25ldC92aXJ0aW9fbmV0LmMKKysrIGIvZHJpdmVycy9uZXQvdmlydGlvX25ldC5jCkBAIC0xODI4 LDcgKzE4MjgsOCBAQCBzdGF0aWMgaW50IHZpcnRuZXRfcHJvYmUoc3RydWN0IHZpcnRpb19kZXZp Y2UgKnZkZXYpCiAJZWxzZQogCQl2aS0+aGRyX2xlbiA9IHNpemVvZihzdHJ1Y3QgdmlydGlvX25l dF9oZHIpOwogCi0JaWYgKHZpcnRpb19oYXNfZmVhdHVyZSh2ZGV2LCBWSVJUSU9fRl9BTllfTEFZ T1VUKSkKKwlpZiAodmlydGlvX2hhc19mZWF0dXJlKHZkZXYsIFZJUlRJT19GX0FOWV9MQVlPVVQp IHx8CisJICAgIHZpcnRpb19oYXNfZmVhdHVyZSh2ZGV2LCBWSVJUSU9fRl9WRVJTSU9OXzEpKQog CQl2aS0+YW55X2hlYWRlcl9zZyA9IHRydWU7CiAKIAlpZiAodmlydGlvX2hhc19mZWF0dXJlKHZk ZXYsIFZJUlRJT19ORVRfRl9DVFJMX1ZRKSkKLS0gCjIuMS4wCgoKRnJvbSBkNWRmMmFiYzkzZDUw MjdlYzYyZmI3MTRkNmJiOWIxNGJlZDY1NTQ4IE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9t OiBOaWtvbGF5IEFsZWtzYW5kcm92IDxuaWtvbGF5QGN1bXVsdXNuZXR3b3Jrcy5jb20+CkRhdGU6 IFdlZCwgMjIgSnVsIDIwMTUgMTM6MDM6NDAgKzAyMDAKU3ViamVjdDogW1BBVENIIDI5LzQ2XSBi cmlkZ2U6IG5ldGxpbms6IGZpeCBzbGF2ZV9jaGFuZ2VsaW5rL2JyX3NldHBvcnQgcmFjZQogY29u ZGl0aW9ucwoKWyBVcHN0cmVhbSBjb21taXQgOTYzYWQ5NDg1MzAwMGFiMTAwZjVmZjE5ZWVhODAw OTU2NjBkNDFiNCBdCgpTaW5jZSBzbGF2ZV9jaGFuZ2VsaW5rIHN1cHBvcnQgd2FzIGFkZGVkIHRo ZXJlIGhhdmUgYmVlbiBhIGZldyByYWNlCmNvbmRpdGlvbnMgd2hlbiB1c2luZyBicl9zZXRwb3J0 KCkgc2luY2Ugc29tZSBvZiB0aGUgcG9ydCBmdW5jdGlvbnMgaXQKdXNlcyByZXF1aXJlIHRoZSBi cmlkZ2UgbG9jay4gSXQgaXMgdmVyeSBlYXN5IHRvIHRyaWdnZXIgYSBsb2NrdXAgZHVlIHRvCnNv bWUgaW50ZXJuYWwgc3Bpbl9sb2NrKCkgdXNhZ2Ugd2l0aG91dCBiaCBkaXNhYmxlZCwgYWxzbyBp dCdzIHBvc3NpYmxlIHRvCmdldCB0aGUgYnJpZGdlIGludG8gYW4gaW5jb25zaXN0ZW50IHN0YXRl LgoKU2lnbmVkLW9mZi1ieTogTmlrb2xheSBBbGVrc2FuZHJvdiA8bmlrb2xheUBjdW11bHVzbmV0 d29ya3MuY29tPgpGaXhlczogM2FjNjM2Yjg1OTFjICgiYnJpZGdlOiBpbXBsZW1lbnQgcnRubF9s aW5rX29wcy0+c2xhdmVfY2hhbmdlbGluayIpClJldmlld2VkLWJ5OiBKaXJpIFBpcmtvIDxqaXJp QHJlc251bGxpLnVzPgpTaWduZWQtb2ZmLWJ5OiBEYXZpZCBTLiBNaWxsZXIgPGRhdmVtQGRhdmVt bG9mdC5uZXQ+Ci0tLQogbmV0L2JyaWRnZS9icl9uZXRsaW5rLmMgfCAxMCArKysrKysrKystCiAx IGZpbGUgY2hhbmdlZCwgOSBpbnNlcnRpb25zKCspLCAxIGRlbGV0aW9uKC0pCgpkaWZmIC0tZ2l0 IGEvbmV0L2JyaWRnZS9icl9uZXRsaW5rLmMgYi9uZXQvYnJpZGdlL2JyX25ldGxpbmsuYwppbmRl eCA0YjVjMjM2Li4yMGUwNmE5IDEwMDY0NAotLS0gYS9uZXQvYnJpZGdlL2JyX25ldGxpbmsuYwor KysgYi9uZXQvYnJpZGdlL2JyX25ldGxpbmsuYwpAQCAtNzExLDkgKzcxMSwxNyBAQCBzdGF0aWMg aW50IGJyX3BvcnRfc2xhdmVfY2hhbmdlbGluayhzdHJ1Y3QgbmV0X2RldmljZSAqYnJkZXYsCiAJ CQkJICAgIHN0cnVjdCBubGF0dHIgKnRiW10sCiAJCQkJICAgIHN0cnVjdCBubGF0dHIgKmRhdGFb XSkKIHsKKwlzdHJ1Y3QgbmV0X2JyaWRnZSAqYnIgPSBuZXRkZXZfcHJpdihicmRldik7CisJaW50 IHJldDsKKwogCWlmICghZGF0YSkKIAkJcmV0dXJuIDA7Ci0JcmV0dXJuIGJyX3NldHBvcnQoYnJf cG9ydF9nZXRfcnRubChkZXYpLCBkYXRhKTsKKworCXNwaW5fbG9ja19iaCgmYnItPmxvY2spOwor CXJldCA9IGJyX3NldHBvcnQoYnJfcG9ydF9nZXRfcnRubChkZXYpLCBkYXRhKTsKKwlzcGluX3Vu bG9ja19iaCgmYnItPmxvY2spOworCisJcmV0dXJuIHJldDsKIH0KIAogc3RhdGljIGludCBicl9w b3J0X2ZpbGxfc2xhdmVfaW5mbyhzdHJ1Y3Qgc2tfYnVmZiAqc2tiLAotLSAKMi4xLjAKCgpGcm9t IDgwMDI1NDBhZWM2NGI1N2U4YTJhOTNhZGY0YWQ4OTNiMDg1ZjlhZTYgTW9uIFNlcCAxNyAwMDow MDowMCAyMDAxCkZyb206IEphY2sgTW9yZ2Vuc3RlaW4gPGphY2ttQGRldi5tZWxsYW5veC5jby5p bD4KRGF0ZTogV2VkLCAyMiBKdWwgMjAxNSAxNjo1Mzo0NyArMDMwMApTdWJqZWN0OiBbUEFUQ0gg MzAvNDZdIG5ldC9tbHg0X2NvcmU6IEZpeCB3cm9uZyBpbmRleCBpbiBwcm9wYWdhdGluZyBwb3J0 CiBjaGFuZ2UgZXZlbnQgdG8gVkZzCgpbIFVwc3RyZWFtIGNvbW1pdCAxYzFiZjM0OTUxZThkMTc5 NDFiZjcwOGQxOTAxYzQ3ZTgxYjE1ZDU1IF0KClRoZSBwb3J0LWNoYW5nZSBldmVudCBwcm9jZXNz aW5nIGluIHByb2NlZHVyZSBtbHg0X2VxX2ludCgpIHVzZXMgInNsYXZlIgphcyB0aGUgdmZfb3Bl ciBhcnJheSBpbmRleC4gU2luY2UgdGhlIHZhbHVlIG9mICJzbGF2ZSIgaXMgdGhlIFBGIGZ1bmN0 aW9uCmluZGV4LCB0aGUgcmVzdWx0IGlzIHRoYXQgdGhlIFBGIGxpbmsgc3RhdGUgaXMgdXNlZCBm b3IgZGVjaWRpbmcgdG8KcHJvcGFnYXRlIHRoZSBldmVudCBmb3IgYWxsIHRoZSBWRnMuIFRoZSBW RiBsaW5rIHN0YXRlIHNob3VsZCBiZSB1c2VkLApzbyB0aGUgVkYgZnVuY3Rpb24gaW5kZXggc2hv dWxkIGJlIHVzZWQgaGVyZS4KCkZpeGVzOiA5NDhlMzA2ZDdkNjQgKCduZXQvbWx4NDogQWRkIFZG IGxpbmsgc3RhdGUgc3VwcG9ydCcpClNpZ25lZC1vZmYtYnk6IEphY2sgTW9yZ2Vuc3RlaW4gPGph Y2ttQGRldi5tZWxsYW5veC5jby5pbD4KU2lnbmVkLW9mZi1ieTogTWF0YW4gQmFyYWsgPG1hdGFu YkBtZWxsYW5veC5jb20+ClNpZ25lZC1vZmYtYnk6IE9yIEdlcmxpdHogPG9nZXJsaXR6QG1lbGxh bm94LmNvbT4KU2lnbmVkLW9mZi1ieTogRGF2aWQgUy4gTWlsbGVyIDxkYXZlbUBkYXZlbWxvZnQu bmV0PgotLS0KIGRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDQvZXEuYyB8IDQgKyst LQogMSBmaWxlIGNoYW5nZWQsIDIgaW5zZXJ0aW9ucygrKSwgMiBkZWxldGlvbnMoLSkKCmRpZmYg LS1naXQgYS9kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg0L2VxLmMgYi9kcml2ZXJz L25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg0L2VxLmMKaW5kZXggMjYxOWM5Zi4uOTgzYjFkNSAx MDA2NDQKLS0tIGEvZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NC9lcS5jCisrKyBi L2RyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDQvZXEuYwpAQCAtNTczLDcgKzU3Myw3 IEBAIHN0YXRpYyBpbnQgbWx4NF9lcV9pbnQoc3RydWN0IG1seDRfZGV2ICpkZXYsIHN0cnVjdCBt bHg0X2VxICplcSkKIAkJCQkJCQljb250aW51ZTsKIAkJCQkJCW1seDRfZGJnKGRldiwgIiVzOiBT ZW5kaW5nIE1MWDRfUE9SVF9DSEFOR0VfU1VCVFlQRV9ET1dOIHRvIHNsYXZlOiAlZCwgcG9ydDol ZFxuIiwKIAkJCQkJCQkgX19mdW5jX18sIGksIHBvcnQpOwotCQkJCQkJc19pbmZvID0gJnByaXYt Pm1mdW5jLm1hc3Rlci52Zl9vcGVyW3NsYXZlXS52cG9ydFtwb3J0XS5zdGF0ZTsKKwkJCQkJCXNf aW5mbyA9ICZwcml2LT5tZnVuYy5tYXN0ZXIudmZfb3BlcltpXS52cG9ydFtwb3J0XS5zdGF0ZTsK IAkJCQkJCWlmIChJRkxBX1ZGX0xJTktfU1RBVEVfQVVUTyA9PSBzX2luZm8tPmxpbmtfc3RhdGUp IHsKIAkJCQkJCQllcWUtPmV2ZW50LnBvcnRfY2hhbmdlLnBvcnQgPQogCQkJCQkJCQljcHVfdG9f YmUzMigKQEAgLTYwOCw3ICs2MDgsNyBAQCBzdGF0aWMgaW50IG1seDRfZXFfaW50KHN0cnVjdCBt bHg0X2RldiAqZGV2LCBzdHJ1Y3QgbWx4NF9lcSAqZXEpCiAJCQkJCQkJY29udGludWU7CiAJCQkJ CQlpZiAoaSA9PSBtbHg0X21hc3Rlcl9mdW5jX251bShkZXYpKQogCQkJCQkJCWNvbnRpbnVlOwot CQkJCQkJc19pbmZvID0gJnByaXYtPm1mdW5jLm1hc3Rlci52Zl9vcGVyW3NsYXZlXS52cG9ydFtw b3J0XS5zdGF0ZTsKKwkJCQkJCXNfaW5mbyA9ICZwcml2LT5tZnVuYy5tYXN0ZXIudmZfb3Blcltp XS52cG9ydFtwb3J0XS5zdGF0ZTsKIAkJCQkJCWlmIChJRkxBX1ZGX0xJTktfU1RBVEVfQVVUTyA9 PSBzX2luZm8tPmxpbmtfc3RhdGUpIHsKIAkJCQkJCQllcWUtPmV2ZW50LnBvcnRfY2hhbmdlLnBv cnQgPQogCQkJCQkJCQljcHVfdG9fYmUzMigKLS0gCjIuMS4wCgoKRnJvbSA5ZGY5YmI5YWUwYzE1 NzlhNGU2ZTYzZmM2ZWJmYjdkMWUwYTE2ZWJiIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9t OiBBbGV4YW5kZXIgRHV5Y2sgPGFsZXhhbmRlci5oLmR1eWNrQHJlZGhhdC5jb20+CkRhdGU6IE1v biwgMjcgSnVsIDIwMTUgMTM6MDg6MDYgLTA3MDAKU3ViamVjdDogW1BBVENIIDMxLzQ2XSBmaWJf dHJpZTogRHJvcCB1bm5lY2Vzc2FyeSBjYWxscyB0byBsZWFmX3B1bGxfc3VmZml4CgpbIFVwc3Ry ZWFtIGNvbW1pdCAxNTEzMDY5ZWRjZjhkZDg2Y2ZkOGQ1ZGFlZjQ4MmI5N2Q2YjkzZGY2IF0KCkl0 IHdhcyByZXBvcnRlZCB0aGF0IHVwZGF0ZV9zdWZmaXggd2FzIHRha2luZyBhIGxvbmcgdGltZSBv biBzeXN0ZW1zIHdoZXJlCmEgbGFyZ2UgbnVtYmVyIG9mIGxlYXZlcyB3ZXJlIGF0dGFjaGVkIHRv IGEgc2luZ2xlIG5vZGUuICBBcyBpdCB0dXJucyBvdXQKZmliX3RhYmxlX2ZsdXNoIHdhcyBjYWxs aW5nIHVwZGF0ZV9zdWZmaXggZm9yIGVhY2ggbGVhZiB0aGF0IGRpZG4ndCBoYXZlIGFsbApvZiB0 aGUgYWxpYXNlcyBzdHJpcHBlZCBmcm9tIGl0LiAgQXMgYSByZXN1bHQsIG9uIHRoaXMgbGFyZ2Ug bm9kZSByZW1vdmluZwpvbmUgbGVhZiB3b3VsZCByZXN1bHQgaW4gdXMgY2FsbGluZyB1cGRhdGVf c3VmZml4IGZvciBldmVyeSBvdGhlciBsZWFmIG9uCnRoZSBub2RlLgoKVGhlIGZpeCBpcyB0byBq dXN0IHJlbW92ZSB0aGUgY2FsbHMgdG8gbGVhZl9wdWxsX3N1ZmZpeCBzaW5jZSB0aGV5IGFyZQpy ZWR1bmRhbnQgYXMgd2UgYWxyZWFkeSBoYXZlIGEgY2FsbCBpbiByZXNpemUgdGhhdCB3aWxsIGdv IHRocm91Z2ggYW5kCnVwZGF0ZSB0aGUgc3VmZml4IGxlbmd0aCBmb3IgdGhlIG5vZGUgYmVmb3Jl IHdlIGV4aXQgb3V0IG9mCmZpYl90YWJsZV9mbHVzaCBvciBmaWJfdGFibGVfZmx1c2hfZXh0ZXJu YWwuCgpSZXBvcnRlZC1ieTogRGF2aWQgQWhlcm4gPGRzYUBjdW11bHVzbmV0d29ya3MuY29tPgpT aWduZWQtb2ZmLWJ5OiBBbGV4YW5kZXIgRHV5Y2sgPGFsZXhhbmRlci5oLmR1eWNrQHJlZGhhdC5j b20+ClRlc3RlZC1ieTogRGF2aWQgQWhlcm4gPGRzYUBjdW11bHVzbmV0d29ya3MuY29tPgpTaWdu ZWQtb2ZmLWJ5OiBEYXZpZCBTLiBNaWxsZXIgPGRhdmVtQGRhdmVtbG9mdC5uZXQ+Ci0tLQogbmV0 L2lwdjQvZmliX3RyaWUuYyB8IDQgLS0tLQogMSBmaWxlIGNoYW5nZWQsIDQgZGVsZXRpb25zKC0p CgpkaWZmIC0tZ2l0IGEvbmV0L2lwdjQvZmliX3RyaWUuYyBiL25ldC9pcHY0L2ZpYl90cmllLmMK aW5kZXggMDliNjJlMS4uMjEwY2VjYSAxMDA2NDQKLS0tIGEvbmV0L2lwdjQvZmliX3RyaWUuYwor KysgYi9uZXQvaXB2NC9maWJfdHJpZS5jCkBAIC0xNzgwLDggKzE3ODAsNiBAQCB2b2lkIGZpYl90 YWJsZV9mbHVzaF9leHRlcm5hbChzdHJ1Y3QgZmliX3RhYmxlICp0YikKIAkJaWYgKGhsaXN0X2Vt cHR5KCZuLT5sZWFmKSkgewogCQkJcHV0X2NoaWxkX3Jvb3QocG4sIG4tPmtleSwgTlVMTCk7CiAJ CQlub2RlX2ZyZWUobik7Ci0JCX0gZWxzZSB7Ci0JCQlsZWFmX3B1bGxfc3VmZml4KHBuLCBuKTsK IAkJfQogCX0KIH0KQEAgLTE4NTIsOCArMTg1MCw2IEBAIGludCBmaWJfdGFibGVfZmx1c2goc3Ry dWN0IGZpYl90YWJsZSAqdGIpCiAJCWlmIChobGlzdF9lbXB0eSgmbi0+bGVhZikpIHsKIAkJCXB1 dF9jaGlsZF9yb290KHBuLCBuLT5rZXksIE5VTEwpOwogCQkJbm9kZV9mcmVlKG4pOwotCQl9IGVs c2UgewotCQkJbGVhZl9wdWxsX3N1ZmZpeChwbiwgbik7CiAJCX0KIAl9CiAKLS0gCjIuMS4wCgoK RnJvbSA5MTE5YzViYzhmNGVmNDczNTA2NTkwNDc3ZTBkYzE5NmMyYmM0OTZkIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBMYXJzIFdlc3RlcmhvZmYgPGxhcnMud2VzdGVyaG9mZkBuZXd0 ZWMuZXU+CkRhdGU6IFR1ZSwgMjggSnVsIDIwMTUgMDE6MzI6MjEgKzAzMDAKU3ViamVjdDogW1BB VENIIDMyLzQ2XSBwYWNrZXQ6IG1pc3NpbmcgZGV2X3B1dCgpIGluIHBhY2tldF9kb19iaW5kKCkK ClsgVXBzdHJlYW0gY29tbWl0IDE1OGNkNGFmOGRlZGJkYTBkNjEyZDQ0OGM3MjRjNzE1ZDBkZGE2 NDkgXQoKV2hlbiBiaW5kaW5nIGEgUEZfUEFDS0VUIHNvY2tldCwgdGhlIHVzZSBjb3VudCBvZiB0 aGUgYm91bmQgaW50ZXJmYWNlIGlzCmFsd2F5cyBpbmNyZWFzZWQgd2l0aCBkZXZfaG9sZCBpbiBk ZXZfZ2V0X2J5X3tpbmRleCxuYW1lfS4gIEhvd2V2ZXIsCndoZW4gcmVib3VuZCB3aXRoIHRoZSBz YW1lIHByb3RvY29sIGFuZCBkZXZpY2UgYXMgaW4gdGhlIHByZXZpb3VzIGJpbmQKdGhlIHVzZSBj b3VudCBvZiB0aGUgaW50ZXJmYWNlIHdhcyBub3QgZGVjcmVhc2VkLiAgVWx0aW1hdGVseSwgdGhp cwpjYXVzZWQgdGhlIGRlbGV0aW9uIG9mIHRoZSBpbnRlcmZhY2UgdG8gZmFpbCB3aXRoIHRoZSBm b2xsb3dpbmcgbWVzc2FnZToKCnVucmVnaXN0ZXJfbmV0ZGV2aWNlOiB3YWl0aW5nIGZvciBkdW1t eTAgdG8gYmVjb21lIGZyZWUuIFVzYWdlIGNvdW50ID0gMQoKVGhpcyBwYXRjaCBtb3ZlcyB0aGUg ZGV2X3B1dCBvdXQgb2YgdGhlIGNvbmRpdGlvbmFsIHBhcnQgdGhhdCB3YXMgb25seQpleGVjdXRl ZCB3aGVuIGVpdGhlciB0aGUgcHJvdG9jb2wgb3IgZGV2aWNlIGNoYW5nZWQgb24gYSBiaW5kLgoK Rml4ZXM6IDkwMmZlZmI4MmVmNyAoJ3BhY2tldDogaW1wcm92ZSBzb2NrZXQgY3JlYXRlL2JpbmQg bGF0ZW5jeSBpbiBzb21lIGNhc2VzJykKU2lnbmVkLW9mZi1ieTogTGFycyBXZXN0ZXJob2ZmIDxs YXJzLndlc3RlcmhvZmZAbmV3dGVjLmV1PgpTaWduZWQtb2ZmLWJ5OiBEYW4gQ2FycGVudGVyIDxk YW4uY2FycGVudGVyQG9yYWNsZS5jb20+ClJldmlld2VkLWJ5OiBEYW5pZWwgQm9ya21hbm4gPGRi b3JrbWFuQHJlZGhhdC5jb20+ClNpZ25lZC1vZmYtYnk6IERhdmlkIFMuIE1pbGxlciA8ZGF2ZW1A ZGF2ZW1sb2Z0Lm5ldD4KLS0tCiBuZXQvcGFja2V0L2FmX3BhY2tldC5jIHwgOCArKystLS0tLQog MSBmaWxlIGNoYW5nZWQsIDMgaW5zZXJ0aW9ucygrKSwgNSBkZWxldGlvbnMoLSkKCmRpZmYgLS1n aXQgYS9uZXQvcGFja2V0L2FmX3BhY2tldC5jIGIvbmV0L3BhY2tldC9hZl9wYWNrZXQuYwppbmRl eCBmZTE2MTBkLi43MzNlZjVhIDEwMDY0NAotLS0gYS9uZXQvcGFja2V0L2FmX3BhY2tldC5jCisr KyBiL25ldC9wYWNrZXQvYWZfcGFja2V0LmMKQEAgLTI2ODgsNyArMjY4OCw3IEBAIHN0YXRpYyBp bnQgcGFja2V0X3JlbGVhc2Uoc3RydWN0IHNvY2tldCAqc29jaykKIHN0YXRpYyBpbnQgcGFja2V0 X2RvX2JpbmQoc3RydWN0IHNvY2sgKnNrLCBzdHJ1Y3QgbmV0X2RldmljZSAqZGV2LCBfX2JlMTYg cHJvdG8pCiB7CiAJc3RydWN0IHBhY2tldF9zb2NrICpwbyA9IHBrdF9zayhzayk7Ci0JY29uc3Qg c3RydWN0IG5ldF9kZXZpY2UgKmRldl9jdXJyOworCXN0cnVjdCBuZXRfZGV2aWNlICpkZXZfY3Vy cjsKIAlfX2JlMTYgcHJvdG9fY3VycjsKIAlib29sIG5lZWRfcmVob29rOwogCkBAIC0yNzEyLDE1 ICsyNzEyLDEzIEBAIHN0YXRpYyBpbnQgcGFja2V0X2RvX2JpbmQoc3RydWN0IHNvY2sgKnNrLCBz dHJ1Y3QgbmV0X2RldmljZSAqZGV2LCBfX2JlMTYgcHJvdG8pCiAKIAkJcG8tPm51bSA9IHByb3Rv OwogCQlwby0+cHJvdF9ob29rLnR5cGUgPSBwcm90bzsKLQotCQlpZiAocG8tPnByb3RfaG9vay5k ZXYpCi0JCQlkZXZfcHV0KHBvLT5wcm90X2hvb2suZGV2KTsKLQogCQlwby0+cHJvdF9ob29rLmRl diA9IGRldjsKIAogCQlwby0+aWZpbmRleCA9IGRldiA/IGRldi0+aWZpbmRleCA6IDA7CiAJCXBh Y2tldF9jYWNoZWRfZGV2X2Fzc2lnbihwbywgZGV2KTsKIAl9CisJaWYgKGRldl9jdXJyKQorCQlk ZXZfcHV0KGRldl9jdXJyKTsKIAogCWlmIChwcm90byA9PSAwIHx8ICFuZWVkX3JlaG9vaykKIAkJ Z290byBvdXRfdW5sb2NrOwotLSAKMi4xLjAKCgpGcm9tIGRiZDM1MDFiMGY2ODAxNjExMTA5NDdj YjdiYTQ5YjMwOGEyZDE4MmUgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCkZyb206IEFsZXhhbmRl ciBEcm96ZG92IDxhbC5kcm96ZG92QGdtYWlsLmNvbT4KRGF0ZTogVHVlLCAyOCBKdWwgMjAxNSAx Mzo1NzowMSArMDMwMApTdWJqZWN0OiBbUEFUQ0ggMzMvNDZdIHBhY2tldDogdHBhY2tldF9zbmQo KTogZml4IHNpZ25lZC91bnNpZ25lZCBjb21wYXJpc29uCgpbIFVwc3RyZWFtIGNvbW1pdCBkYmQ0 NmFiNDEyYjhmYjM5NWYyYjBmZjZmNmE3ZWVjOWRmMzExNTUwIF0KCnRwYWNrZXRfZmlsbF9za2Io KSBjYW4gcmV0dXJuIGEgbmVnYXRpdmUgdmFsdWUgKC1lcnJubykgd2hpY2gKaXMgc3RvcmVkIGlu IHRwX2xlbiB2YXJpYWJsZS4gSW4gdGhhdCBjYXNlIHRoZSBmb2xsb3dpbmcKY29uZGl0aW9uIHdp bGwgYmUgKGJ1dCBzaG91bGRuJ3QgYmUpIHRydWU6Cgp0cF9sZW4gPiBkZXYtPm10dSArIGRldi0+ aGFyZF9oZWFkZXJfbGVuCgphcyBkZXYtPm10dSBhbmQgZGV2LT5oYXJkX2hlYWRlcl9sZW4gYXJl IGJvdGggdW5zaWduZWQuCgpUaGF0IG1heSBsZWFkIHRvIGp1c3QgcmV0dXJuaW5nIGFuIGluY29y cmVjdCBFTVNHU0laRSBlcnJubwp0byB0aGUgdXNlci4KCkZpeGVzOiA1MmYxNDU0ZjYyOWZhICgi cGFja2V0OiBhbGxvdyB0byB0cmFuc21pdCArNCBieXRlIGluIFRYX1JJTkcgc2xvdCBmb3IgVkxB TiBjYXNlIikKU2lnbmVkLW9mZi1ieTogQWxleGFuZGVyIERyb3pkb3YgPGFsLmRyb3pkb3ZAZ21h aWwuY29tPgpBY2tlZC1ieTogRGFuaWVsIEJvcmttYW5uIDxkYW5pZWxAaW9nZWFyYm94Lm5ldD4K U2lnbmVkLW9mZi1ieTogRGF2aWQgUy4gTWlsbGVyIDxkYXZlbUBkYXZlbWxvZnQubmV0PgotLS0K IG5ldC9wYWNrZXQvYWZfcGFja2V0LmMgfCAzICsrLQogMSBmaWxlIGNoYW5nZWQsIDIgaW5zZXJ0 aW9ucygrKSwgMSBkZWxldGlvbigtKQoKZGlmZiAtLWdpdCBhL25ldC9wYWNrZXQvYWZfcGFja2V0 LmMgYi9uZXQvcGFja2V0L2FmX3BhY2tldC5jCmluZGV4IDczM2VmNWEuLmUxZWE1ZDQgMTAwNjQ0 Ci0tLSBhL25ldC9wYWNrZXQvYWZfcGFja2V0LmMKKysrIGIvbmV0L3BhY2tldC9hZl9wYWNrZXQu YwpAQCAtMjMwNyw3ICsyMzA3LDggQEAgc3RhdGljIGludCB0cGFja2V0X3NuZChzdHJ1Y3QgcGFj a2V0X3NvY2sgKnBvLCBzdHJ1Y3QgbXNnaGRyICptc2cpCiAJCX0KIAkJdHBfbGVuID0gdHBhY2tl dF9maWxsX3NrYihwbywgc2tiLCBwaCwgZGV2LCBzaXplX21heCwgcHJvdG8sCiAJCQkJCSAgYWRk ciwgaGxlbik7Ci0JCWlmICh0cF9sZW4gPiBkZXYtPm10dSArIGRldi0+aGFyZF9oZWFkZXJfbGVu KSB7CisJCWlmIChsaWtlbHkodHBfbGVuID49IDApICYmCisJCSAgICB0cF9sZW4gPiBkZXYtPm10 dSArIGRldi0+aGFyZF9oZWFkZXJfbGVuKSB7CiAJCQlzdHJ1Y3QgZXRoaGRyICplaGRyOwogCQkJ LyogRWFybGllciBjb2RlIGFzc3VtZWQgdGhpcyB3b3VsZCBiZSBhIFZMQU4gcGt0LAogCQkJICog ZG91YmxlLWNoZWNrIHRoaXMgbm93IHRoYXQgd2UgaGF2ZSB0aGUgYWN0dWFsCi0tIAoyLjEuMAoK CkZyb20gOWYwN2ExODI1YmFjM2VmYTM0ZGNiMmQ1MDk0NDM3N2VkY2YzOWQzOCBNb24gU2VwIDE3 IDAwOjAwOjAwIDIwMDEKRnJvbTogRGFuaWVsIEJvcmttYW5uIDxkYW5pZWxAaW9nZWFyYm94Lm5l dD4KRGF0ZTogV2VkLCAyOSBKdWwgMjAxNSAxODo0MDo1NiArMDIwMApTdWJqZWN0OiBbUEFUQ0gg MzQvNDZdIGFjdF9icGY6IGZpeCBtZW1vcnkgbGVha3Mgd2hlbiByZXBsYWNpbmcgYnBmIHByb2dy YW1zCgpbIFVwc3RyZWFtIGNvbW1pdCBmNGVhZWQyOGM3ODM0ZmMwNDljNzU0ZjYzZTY5ODhiYmQ3 Mzc3OGQ5IF0KCldlIGN1cnJlbnRseSB0cmlnZ2VyIG11bHRpcGxlIG1lbW9yeSBsZWFrcyB3aGVu IHJlcGxhY2luZyBicGYKYWN0aW9ucywgYmVzaWRlcyBvdGhlcnM6CgogIGNvbW0gInRjIiwgcGlk IDE5MDksIGppZmZpZXMgNDI5NDg1MTMxMCAoYWdlIDE2MDIuNzk2cykKICBoZXggZHVtcCAoZmly c3QgMzIgYnl0ZXMpOgogICAgMDEgMDAgMDAgMDAgMDMgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAg MDAgMDAgMDAgIC4uLi4uLi4uLi4uLi4uLi4KICAgIDE4IGIwIDk4IDZkIDAwIDg4IGZmIGZmIDAw IDAwIDAwIDAwIDAwIDAwIDAwIDAwICAuLi5tLi4uLi4uLi4uLi4uCiAgYmFja3RyYWNlOgogICAg WzxmZmZmZmZmZjgxN2U2MjNlPl0ga21lbWxlYWtfYWxsb2MrMHg0ZS8weGIwCiAgICBbPGZmZmZm ZmZmODEyMGEyMmQ+XSBfX3ZtYWxsb2Nfbm9kZV9yYW5nZSsweDFiZC8weDJjMAogICAgWzxmZmZm ZmZmZjgxMjBhMzdhPl0gX192bWFsbG9jKzB4NGEvMHg1MAogICAgWzxmZmZmZmZmZjgxMWE4ZDBh Pl0gYnBmX3Byb2dfYWxsb2MrMHgzYS8weGEwCiAgICBbPGZmZmZmZmZmODE2YzA2ODQ+XSBicGZf cHJvZ19jcmVhdGUrMHg0NC8weGEwCiAgICBbPGZmZmZmZmZmYTA5YmE0ZWI+XSB0Y2ZfYnBmX2lu aXQrMHgyOGIvMHgzYzAgW2FjdF9icGZdCiAgICBbPGZmZmZmZmZmODE2ZDcwMDE+XSB0Y2ZfYWN0 aW9uX2luaXRfMSsweDE5MS8weDFiMAogICAgWzxmZmZmZmZmZjgxNmQ3MGEyPl0gdGNmX2FjdGlv bl9pbml0KzB4ODIvMHhmMAogICAgWzxmZmZmZmZmZjgxNmQ0ZDEyPl0gdGNmX2V4dHNfdmFsaWRh dGUrMHhiMi8weGMwCiAgICBbPGZmZmZmZmZmYTA5YjU4Mzg+XSBjbHNfYnBmX21vZGlmeV9leGlz dGluZysweDk4LzB4MzQwIFtjbHNfYnBmXQogICAgWzxmZmZmZmZmZmEwOWI1Y2Q2Pl0gY2xzX2Jw Zl9jaGFuZ2UrMHgxYTYvMHgyNzQgW2Nsc19icGZdCiAgICBbPGZmZmZmZmZmODE2ZDU2ZTU+XSB0 Y19jdGxfdGZpbHRlcisweDMzNS8weDkxMAogICAgWzxmZmZmZmZmZjgxNmI5MTQ1Pl0gcnRuZXRs aW5rX3Jjdl9tc2crMHg5NS8weDI0MAogICAgWzxmZmZmZmZmZjgxNmRmMzRmPl0gbmV0bGlua19y Y3Zfc2tiKzB4YWYvMHhjMAogICAgWzxmZmZmZmZmZjgxNmI5MDllPl0gcnRuZXRsaW5rX3Jjdisw eDJlLzB4NDAKICAgIFs8ZmZmZmZmZmY4MTZkZWFhZj5dIG5ldGxpbmtfdW5pY2FzdCsweGVmLzB4 MWIwCgpJc3N1ZSBpcyB0aGF0IHRoZSBvbGQgY29udGVudCBmcm9tIHRjZl9icGYgaXMgYWxsb2Nh dGVkIGFuZCBuZWVkcwp0byBiZSByZWxlYXNlZCB3aGVuIHdlIHJlcGxhY2UgaXQuIFdlIHNlZW0g dG8gZG8gdGhhdCBzaW5jZSB0aGUKYmVnaW5uaW5nIG9mIGFjdF9icGYgb24gdGhlIGZpbHRlciBh bmQgaW5zbnMsIGxhdGVyIG9uIHRoZSBuYW1lIGFzCndlbGwuCgpFeGFtcGxlIHRlc3QgY2FzZSwg YWZ0ZXIgcGF0Y2g6CgogICMgRk9PPSIxLDYgMCAwIDQyOTQ5NjcyOTUsIgogICMgQkFSPSIxLDYg MCAwIDQyOTQ5NjcyOTQsIgogICMgdGMgYWN0aW9ucyBhZGQgYWN0aW9uIGJwZiBieXRlY29kZSAi JEZPTyIgaW5kZXggMgogICMgdGMgYWN0aW9ucyBzaG93IGFjdGlvbiBicGYKICAgYWN0aW9uIG9y ZGVyIDA6IGJwZiBieXRlY29kZSAnMSw2IDAgMCA0Mjk0OTY3Mjk1JyBkZWZhdWx0LWFjdGlvbiBw aXBlCiAgIGluZGV4IDIgcmVmIDEgYmluZCAwCiAgIyB0YyBhY3Rpb25zIHJlcGxhY2UgYWN0aW9u IGJwZiBieXRlY29kZSAiJEJBUiIgaW5kZXggMgogICMgdGMgYWN0aW9ucyBzaG93IGFjdGlvbiBi cGYKICAgYWN0aW9uIG9yZGVyIDA6IGJwZiBieXRlY29kZSAnMSw2IDAgMCA0Mjk0OTY3Mjk0JyBk ZWZhdWx0LWFjdGlvbiBwaXBlCiAgIGluZGV4IDIgcmVmIDEgYmluZCAwCiAgIyB0YyBhY3Rpb25z IHJlcGxhY2UgYWN0aW9uIGJwZiBieXRlY29kZSAiJEZPTyIgaW5kZXggMgogICMgdGMgYWN0aW9u cyBzaG93IGFjdGlvbiBicGYKICAgYWN0aW9uIG9yZGVyIDA6IGJwZiBieXRlY29kZSAnMSw2IDAg MCA0Mjk0OTY3Mjk1JyBkZWZhdWx0LWFjdGlvbiBwaXBlCiAgIGluZGV4IDIgcmVmIDEgYmluZCAw CiAgIyB0YyBhY3Rpb25zIGRlbCBhY3Rpb24gYnBmIGluZGV4IDIKICBbLi4uXQogICMgZWNobyAi c2NhbiIgPiAvc3lzL2tlcm5lbC9kZWJ1Zy9rbWVtbGVhawogICMgY2F0IC9zeXMva2VybmVsL2Rl YnVnL2ttZW1sZWFrIHwgZ3JlcCAiY29tbSBcInRjXCIiIHwgd2MgLWwKICAwCgpGaXhlczogZDIz YjhhZDhhYjIzICgidGM6IGFkZCBCUEYgYmFzZWQgYWN0aW9uIikKU2lnbmVkLW9mZi1ieTogRGFu aWVsIEJvcmttYW5uIDxkYW5pZWxAaW9nZWFyYm94Lm5ldD4KU2lnbmVkLW9mZi1ieTogRGF2aWQg Uy4gTWlsbGVyIDxkYXZlbUBkYXZlbWxvZnQubmV0PgotLS0KIG5ldC9zY2hlZC9hY3RfYnBmLmMg fCA1MCArKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKy0tLS0tLS0tLS0tLS0tLQog MSBmaWxlIGNoYW5nZWQsIDM1IGluc2VydGlvbnMoKyksIDE1IGRlbGV0aW9ucygtKQoKZGlmZiAt LWdpdCBhL25ldC9zY2hlZC9hY3RfYnBmLmMgYi9uZXQvc2NoZWQvYWN0X2JwZi5jCmluZGV4IGRj NmEyZDMuLjUyMWZmY2EgMTAwNjQ0Ci0tLSBhL25ldC9zY2hlZC9hY3RfYnBmLmMKKysrIGIvbmV0 L3NjaGVkL2FjdF9icGYuYwpAQCAtMjcsOSArMjcsMTAgQEAKIHN0cnVjdCB0Y2ZfYnBmX2NmZyB7 CiAJc3RydWN0IGJwZl9wcm9nICpmaWx0ZXI7CiAJc3RydWN0IHNvY2tfZmlsdGVyICpicGZfb3Bz OwotCWNoYXIgKmJwZl9uYW1lOworCWNvbnN0IGNoYXIgKmJwZl9uYW1lOwogCXUzMiBicGZfZmQ7 CiAJdTE2IGJwZl9udW1fb3BzOworCWJvb2wgaXNfZWJwZjsKIH07CiAKIHN0YXRpYyBpbnQgdGNm X2JwZihzdHJ1Y3Qgc2tfYnVmZiAqc2tiLCBjb25zdCBzdHJ1Y3QgdGNfYWN0aW9uICphY3QsCkBA IC0yMDAsNiArMjAxLDcgQEAgc3RhdGljIGludCB0Y2ZfYnBmX2luaXRfZnJvbV9vcHMoc3RydWN0 IG5sYXR0ciAqKnRiLCBzdHJ1Y3QgdGNmX2JwZl9jZmcgKmNmZykKIAljZmctPmJwZl9vcHMgPSBi cGZfb3BzOwogCWNmZy0+YnBmX251bV9vcHMgPSBicGZfbnVtX29wczsKIAljZmctPmZpbHRlciA9 IGZwOworCWNmZy0+aXNfZWJwZiA9IGZhbHNlOwogCiAJcmV0dXJuIDA7CiB9CkBAIC0yMzQsMTgg KzIzNiw0MCBAQCBzdGF0aWMgaW50IHRjZl9icGZfaW5pdF9mcm9tX2VmZChzdHJ1Y3QgbmxhdHRy ICoqdGIsIHN0cnVjdCB0Y2ZfYnBmX2NmZyAqY2ZnKQogCWNmZy0+YnBmX2ZkID0gYnBmX2ZkOwog CWNmZy0+YnBmX25hbWUgPSBuYW1lOwogCWNmZy0+ZmlsdGVyID0gZnA7CisJY2ZnLT5pc19lYnBm ID0gdHJ1ZTsKIAogCXJldHVybiAwOwogfQogCitzdGF0aWMgdm9pZCB0Y2ZfYnBmX2NmZ19jbGVh bnVwKGNvbnN0IHN0cnVjdCB0Y2ZfYnBmX2NmZyAqY2ZnKQoreworCWlmIChjZmctPmlzX2VicGYp CisJCWJwZl9wcm9nX3B1dChjZmctPmZpbHRlcik7CisJZWxzZQorCQlicGZfcHJvZ19kZXN0cm95 KGNmZy0+ZmlsdGVyKTsKKworCWtmcmVlKGNmZy0+YnBmX29wcyk7CisJa2ZyZWUoY2ZnLT5icGZf bmFtZSk7Cit9CisKK3N0YXRpYyB2b2lkIHRjZl9icGZfcHJvZ19maWxsX2NmZyhjb25zdCBzdHJ1 Y3QgdGNmX2JwZiAqcHJvZywKKwkJCQkgIHN0cnVjdCB0Y2ZfYnBmX2NmZyAqY2ZnKQoreworCWNm Zy0+aXNfZWJwZiA9IHRjZl9icGZfaXNfZWJwZihwcm9nKTsKKwljZmctPmZpbHRlciA9IHByb2ct PmZpbHRlcjsKKworCWNmZy0+YnBmX29wcyA9IHByb2ctPmJwZl9vcHM7CisJY2ZnLT5icGZfbmFt ZSA9IHByb2ctPmJwZl9uYW1lOworfQorCiBzdGF0aWMgaW50IHRjZl9icGZfaW5pdChzdHJ1Y3Qg bmV0ICpuZXQsIHN0cnVjdCBubGF0dHIgKm5sYSwKIAkJCXN0cnVjdCBubGF0dHIgKmVzdCwgc3Ry dWN0IHRjX2FjdGlvbiAqYWN0LAogCQkJaW50IHJlcGxhY2UsIGludCBiaW5kKQogewogCXN0cnVj dCBubGF0dHIgKnRiW1RDQV9BQ1RfQlBGX01BWCArIDFdOworCXN0cnVjdCB0Y2ZfYnBmX2NmZyBj ZmcsIG9sZDsKIAlzdHJ1Y3QgdGNfYWN0X2JwZiAqcGFybTsKIAlzdHJ1Y3QgdGNmX2JwZiAqcHJv ZzsKLQlzdHJ1Y3QgdGNmX2JwZl9jZmcgY2ZnOwogCWJvb2wgaXNfYnBmLCBpc19lYnBmOwogCWlu dCByZXQ7CiAKQEAgLTI5NCw2ICszMTgsOSBAQCBzdGF0aWMgaW50IHRjZl9icGZfaW5pdChzdHJ1 Y3QgbmV0ICpuZXQsIHN0cnVjdCBubGF0dHIgKm5sYSwKIAlwcm9nID0gdG9fYnBmKGFjdCk7CiAJ c3Bpbl9sb2NrX2JoKCZwcm9nLT50Y2ZfbG9jayk7CiAKKwlpZiAocmV0ICE9IEFDVF9QX0NSRUFU RUQpCisJCXRjZl9icGZfcHJvZ19maWxsX2NmZyhwcm9nLCAmb2xkKTsKKwogCXByb2ctPmJwZl9v cHMgPSBjZmcuYnBmX29wczsKIAlwcm9nLT5icGZfbmFtZSA9IGNmZy5icGZfbmFtZTsKIApAQCAt MzA5LDI5ICszMzYsMjIgQEAgc3RhdGljIGludCB0Y2ZfYnBmX2luaXQoc3RydWN0IG5ldCAqbmV0 LCBzdHJ1Y3QgbmxhdHRyICpubGEsCiAKIAlpZiAocmV0ID09IEFDVF9QX0NSRUFURUQpCiAJCXRj Zl9oYXNoX2luc2VydChhY3QpOworCWVsc2UKKwkJdGNmX2JwZl9jZmdfY2xlYW51cCgmb2xkKTsK IAogCXJldHVybiByZXQ7CiAKIGRlc3Ryb3lfZnA6Ci0JaWYgKGlzX2VicGYpCi0JCWJwZl9wcm9n X3B1dChjZmcuZmlsdGVyKTsKLQllbHNlCi0JCWJwZl9wcm9nX2Rlc3Ryb3koY2ZnLmZpbHRlcik7 Ci0KLQlrZnJlZShjZmcuYnBmX29wcyk7Ci0Ja2ZyZWUoY2ZnLmJwZl9uYW1lKTsKLQorCXRjZl9i cGZfY2ZnX2NsZWFudXAoJmNmZyk7CiAJcmV0dXJuIHJldDsKIH0KIAogc3RhdGljIHZvaWQgdGNm X2JwZl9jbGVhbnVwKHN0cnVjdCB0Y19hY3Rpb24gKmFjdCwgaW50IGJpbmQpCiB7Ci0JY29uc3Qg c3RydWN0IHRjZl9icGYgKnByb2cgPSBhY3QtPnByaXY7CisJc3RydWN0IHRjZl9icGZfY2ZnIHRt cDsKIAotCWlmICh0Y2ZfYnBmX2lzX2VicGYocHJvZykpCi0JCWJwZl9wcm9nX3B1dChwcm9nLT5m aWx0ZXIpOwotCWVsc2UKLQkJYnBmX3Byb2dfZGVzdHJveShwcm9nLT5maWx0ZXIpOworCXRjZl9i cGZfcHJvZ19maWxsX2NmZyhhY3QtPnByaXYsICZ0bXApOworCXRjZl9icGZfY2ZnX2NsZWFudXAo JnRtcCk7CiB9CiAKIHN0YXRpYyBzdHJ1Y3QgdGNfYWN0aW9uX29wcyBhY3RfYnBmX29wcyBfX3Jl YWRfbW9zdGx5ID0gewotLSAKMi4xLjAKCgpGcm9tIGEzNzZmYTM4ZGRmYTQzMTI3MGVkMzEyNzg3 MzU1MDI4MmQ2NzdmZTcgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCkZyb206IERhbmllbCBCb3Jr bWFubiA8ZGFuaWVsQGlvZ2VhcmJveC5uZXQ+CkRhdGU6IFdlZCwgMjkgSnVsIDIwMTUgMjM6MzU6 MjUgKzAyMDAKU3ViamVjdDogW1BBVENIIDM1LzQ2XSBuZXQ6IHNjaGVkOiBmaXggcmVmY291bnQg aW1iYWxhbmNlIGluIGFjdGlvbnMKClsgVXBzdHJlYW0gY29tbWl0IDI4ZTZiNjdmMGIyOTJmNTU3 NDY4YzEzOTA4NTMwM2IxNWYxYTY3OGYgXQoKU2luY2UgY29tbWl0IDU1MzM0YTVkYjVjZCAoIm5l dF9zY2hlZDogYWN0OiByZWZ1c2UgdG8gcmVtb3ZlIGJvdW5kIGFjdGlvbgpvdXRzaWRlIiksIHdl IGVuZCB1cCB3aXRoIGEgd3JvbmcgcmVmZXJlbmNlIGNvdW50IGZvciBhIHRjIGFjdGlvbi4KClRl c3QgY2FzZSAxOgoKICBGT089IjEsNiAwIDAgNDI5NDk2NzI5NSwiCiAgQkFSPSIxLDYgMCAwIDQy OTQ5NjcyOTQsIgogIHRjIGZpbHRlciBhZGQgZGV2IGZvbyBwYXJlbnQgMTogYnBmIGJ5dGVjb2Rl ICIkRk9PIiBmbG93aWQgMToxIFwKICAgICBhY3Rpb24gYnBmIGJ5dGVjb2RlICIkRk9PIgogIHRj IGFjdGlvbnMgc2hvdyBhY3Rpb24gYnBmCiAgICBhY3Rpb24gb3JkZXIgMDogYnBmIGJ5dGVjb2Rl ICcxLDYgMCAwIDQyOTQ5NjcyOTUnIGRlZmF1bHQtYWN0aW9uIHBpcGUKICAgIGluZGV4IDEgcmVm IDEgYmluZCAxCiAgdGMgYWN0aW9ucyByZXBsYWNlIGFjdGlvbiBicGYgYnl0ZWNvZGUgIiRCQVIi IGluZGV4IDEKICB0YyBhY3Rpb25zIHNob3cgYWN0aW9uIGJwZgogICAgYWN0aW9uIG9yZGVyIDA6 IGJwZiBieXRlY29kZSAnMSw2IDAgMCA0Mjk0OTY3Mjk0JyBkZWZhdWx0LWFjdGlvbiBwaXBlCiAg ICBpbmRleCAxIHJlZiAyIGJpbmQgMQogIHRjIGFjdGlvbnMgcmVwbGFjZSBhY3Rpb24gYnBmIGJ5 dGVjb2RlICIkRk9PIiBpbmRleCAxCiAgdGMgYWN0aW9ucyBzaG93IGFjdGlvbiBicGYKICAgIGFj dGlvbiBvcmRlciAwOiBicGYgYnl0ZWNvZGUgJzEsNiAwIDAgNDI5NDk2NzI5NScgZGVmYXVsdC1h Y3Rpb24gcGlwZQogICAgaW5kZXggMSByZWYgMyBiaW5kIDEKClRlc3QgY2FzZSAyOgoKICBGT089 IjEsNiAwIDAgNDI5NDk2NzI5NSwiCiAgdGMgZmlsdGVyIGFkZCBkZXYgZm9vIHBhcmVudCAxOiBi cGYgYnl0ZWNvZGUgIiRGT08iIGZsb3dpZCAxOjEgYWN0aW9uIG9rCiAgdGMgYWN0aW9ucyBzaG93 IGFjdGlvbiBnYWN0CiAgICBhY3Rpb24gb3JkZXIgMDogZ2FjdCBhY3Rpb24gcGFzcwogICAgcmFu ZG9tIHR5cGUgbm9uZSBwYXNzIHZhbCAwCiAgICAgaW5kZXggMSByZWYgMSBiaW5kIDEKICB0YyBh Y3Rpb25zIGFkZCBhY3Rpb24gZHJvcCBpbmRleCAxCiAgICBSVE5FVExJTksgYW5zd2VyczogRmls ZSBleGlzdHMgWy4uLl0KICB0YyBhY3Rpb25zIHNob3cgYWN0aW9uIGdhY3QKICAgIGFjdGlvbiBv cmRlciAwOiBnYWN0IGFjdGlvbiBwYXNzCiAgICAgcmFuZG9tIHR5cGUgbm9uZSBwYXNzIHZhbCAw CiAgICAgaW5kZXggMSByZWYgMiBiaW5kIDEKICB0YyBhY3Rpb25zIGFkZCBhY3Rpb24gZHJvcCBp bmRleCAxCiAgICBSVE5FVExJTksgYW5zd2VyczogRmlsZSBleGlzdHMgWy4uLl0KICB0YyBhY3Rp b25zIHNob3cgYWN0aW9uIGdhY3QKICAgIGFjdGlvbiBvcmRlciAwOiBnYWN0IGFjdGlvbiBwYXNz CiAgICAgcmFuZG9tIHR5cGUgbm9uZSBwYXNzIHZhbCAwCiAgICAgaW5kZXggMSByZWYgMyBiaW5k IDEKCldoYXQgaGFwcGVucyBpcyB0aGF0IGluIHRjZl9oYXNoX2NoZWNrKCksIHdlIGNoZWNrIHRj Zl9jb21tb24gZm9yIGEgZ2l2ZW4KaW5kZXggYW5kIGluY3JlYXNlIHRjZmNfcmVmY250IGFuZCBj b25kaXRpb25hbGx5IHRjZmNfYmluZGNudCB3aGVuIHdlJ3ZlCmZvdW5kIGFuIGV4aXN0aW5nIGFj dGlvbi4gTm93IHRoZXJlIGFyZSB0aGUgZm9sbG93aW5nIGNhc2VzOgoKICAxKSBXZSBkbyBhIGxh dGUgYmluZGluZyBvZiBhbiBhY3Rpb24uIEluIHRoYXQgY2FzZSwgd2UgbGVhdmUgdGhlCiAgICAg dGNmY19yZWZjbnQvdGNmY19iaW5kY250IGluY3JlYXNlZCBhbmQgYXJlIGRvbmUgd2l0aCB0aGUg LT5pbml0KCkKICAgICBoYW5kbGVyLiBUaGlzIGlzIGNvcnJlY3RseSBoYW5kZWxlZC4KCiAgMikg V2UgcmVwbGFjZSB0aGUgZ2l2ZW4gYWN0aW9uLCBvciB3ZSB0cnkgdG8gYWRkIG9uZSB3aXRob3V0 IHJlcGxhY2luZwogICAgIGFuZCBmaW5kIG91dCB0aGF0IHRoZSBhY3Rpb24gYXQgYSBzcGVjaWZp YyBpbmRleCBhbHJlYWR5IGV4aXN0cwogICAgICh0aHVzLCB3ZSBnbyBvdXQgd2l0aCBlcnJvciBp biB0aGF0IGNhc2UpLgoKSW4gY2FzZSBvZiAyKSwgd2UgaGF2ZSB0byB1bmRvIHRoZSByZWZlcmVu Y2UgY291bnQgaW5jcmVhc2UgZnJvbQp0Y2ZfaGFzaF9jaGVjaygpIGluIHRoZSB0Y2ZfaGFzaF9j aGVjaygpIGZ1bmN0aW9uLiBDdXJyZW50bHksIHdlIGZhaWwgdG8KZG8gc28gYmVjYXVzZSBvZiB0 aGUgJ3RjZmNfYmluZGNudCA+IDAnIGNoZWNrIHdoaWNoIGJhaWxzIG91dCBlYXJseSB3aXRoCmFu IC1FUEVSTSBlcnJvci4KCk5vdywgd2hpbGUgY29tbWl0IDU1MzM0YTVkYjVjZCBwcmV2ZW50cyAn dGMgYWN0aW9ucyBkZWwgYWN0aW9uIC4uLicgb24gYW4KYWxyZWFkeSBjbGFzc2lmaWVyLWJvdW5k IGFjdGlvbiB0byBkcm9wIHRoZSByZWZlcmVuY2UgY291bnQgKHdoaWNoIGNvdWxkCnRoZW4gYmVj b21lIG5lZ2F0aXZlLCB3cmFwIGFyb3VuZCBldGMpLCB0aGlzIHJlc3RyaWN0aW9uIG9ubHkgYWNj b3VudHMgZm9yCmludm9jYXRpb25zIG91dHNpZGUgYSBzcGVjaWZpYyBhY3Rpb24ncyAtPmluaXQo KSBoYW5kbGVyLgoKT25lIHBvc3NpYmxlIHNvbHV0aW9uIHdvdWxkIGJlIHRvIGFkZCBhIGZsYWcg dGh1cyB3ZSBwb3NzaWJseSB0cmlnZ2VyCnRoZSAtRVBFUk0gb255IGluIHNpdHVhdGlvbnMgd2hl cmUgaXQgaXMgaW5kZWVkIHJlbGV2YW50LgoKQWZ0ZXIgdGhlIHBhdGNoLCBhYm92ZSB0ZXN0IGNh c2VzIGhhdmUgY29ycmVjdCByZWZlcmVuY2UgY291bnQgYWdhaW4uCgpGaXhlczogNTUzMzRhNWRi NWNkICgibmV0X3NjaGVkOiBhY3Q6IHJlZnVzZSB0byByZW1vdmUgYm91bmQgYWN0aW9uIG91dHNp ZGUiKQpTaWduZWQtb2ZmLWJ5OiBEYW5pZWwgQm9ya21hbm4gPGRhbmllbEBpb2dlYXJib3gubmV0 PgpSZXZpZXdlZC1ieTogQ29uZyBXYW5nIDxjd2FuZ0B0d29wZW5zb3VyY2UuY29tPgpTaWduZWQt b2ZmLWJ5OiBEYXZpZCBTLiBNaWxsZXIgPGRhdmVtQGRhdmVtbG9mdC5uZXQ+Ci0tLQogaW5jbHVk ZS9uZXQvYWN0X2FwaS5oIHwgIDggKysrKysrKy0KIG5ldC9zY2hlZC9hY3RfYXBpLmMgICB8IDEx ICsrKysrKy0tLS0tCiAyIGZpbGVzIGNoYW5nZWQsIDEzIGluc2VydGlvbnMoKyksIDYgZGVsZXRp b25zKC0pCgpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9uZXQvYWN0X2FwaS5oIGIvaW5jbHVkZS9uZXQv YWN0X2FwaS5oCmluZGV4IDNlZTRjOTIuLjkzMTczOGIgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUvbmV0 L2FjdF9hcGkuaAorKysgYi9pbmNsdWRlL25ldC9hY3RfYXBpLmgKQEAgLTk5LDcgKzk5LDYgQEAg c3RydWN0IHRjX2FjdGlvbl9vcHMgewogCiBpbnQgdGNmX2hhc2hfc2VhcmNoKHN0cnVjdCB0Y19h Y3Rpb24gKmEsIHUzMiBpbmRleCk7CiB2b2lkIHRjZl9oYXNoX2Rlc3Ryb3koc3RydWN0IHRjX2Fj dGlvbiAqYSk7Ci1pbnQgdGNmX2hhc2hfcmVsZWFzZShzdHJ1Y3QgdGNfYWN0aW9uICphLCBpbnQg YmluZCk7CiB1MzIgdGNmX2hhc2hfbmV3X2luZGV4KHN0cnVjdCB0Y2ZfaGFzaGluZm8gKmhpbmZv KTsKIGludCB0Y2ZfaGFzaF9jaGVjayh1MzIgaW5kZXgsIHN0cnVjdCB0Y19hY3Rpb24gKmEsIGlu dCBiaW5kKTsKIGludCB0Y2ZfaGFzaF9jcmVhdGUodTMyIGluZGV4LCBzdHJ1Y3QgbmxhdHRyICpl c3QsIHN0cnVjdCB0Y19hY3Rpb24gKmEsCkBAIC0xMDcsNiArMTA2LDEzIEBAIGludCB0Y2ZfaGFz aF9jcmVhdGUodTMyIGluZGV4LCBzdHJ1Y3QgbmxhdHRyICplc3QsIHN0cnVjdCB0Y19hY3Rpb24g KmEsCiB2b2lkIHRjZl9oYXNoX2NsZWFudXAoc3RydWN0IHRjX2FjdGlvbiAqYSwgc3RydWN0IG5s YXR0ciAqZXN0KTsKIHZvaWQgdGNmX2hhc2hfaW5zZXJ0KHN0cnVjdCB0Y19hY3Rpb24gKmEpOwog CitpbnQgX190Y2ZfaGFzaF9yZWxlYXNlKHN0cnVjdCB0Y19hY3Rpb24gKmEsIGJvb2wgYmluZCwg Ym9vbCBzdHJpY3QpOworCitzdGF0aWMgaW5saW5lIGludCB0Y2ZfaGFzaF9yZWxlYXNlKHN0cnVj dCB0Y19hY3Rpb24gKmEsIGJvb2wgYmluZCkKK3sKKwlyZXR1cm4gX190Y2ZfaGFzaF9yZWxlYXNl KGEsIGJpbmQsIGZhbHNlKTsKK30KKwogaW50IHRjZl9yZWdpc3Rlcl9hY3Rpb24oc3RydWN0IHRj X2FjdGlvbl9vcHMgKmEsIHVuc2lnbmVkIGludCBtYXNrKTsKIGludCB0Y2ZfdW5yZWdpc3Rlcl9h Y3Rpb24oc3RydWN0IHRjX2FjdGlvbl9vcHMgKmEpOwogaW50IHRjZl9hY3Rpb25fZGVzdHJveShz dHJ1Y3QgbGlzdF9oZWFkICphY3Rpb25zLCBpbnQgYmluZCk7CmRpZmYgLS1naXQgYS9uZXQvc2No ZWQvYWN0X2FwaS5jIGIvbmV0L3NjaGVkL2FjdF9hcGkuYwppbmRleCAzZDQzZTQ5Li5mOGQ5YzJh IDEwMDY0NAotLS0gYS9uZXQvc2NoZWQvYWN0X2FwaS5jCisrKyBiL25ldC9zY2hlZC9hY3RfYXBp LmMKQEAgLTQ1LDcgKzQ1LDcgQEAgdm9pZCB0Y2ZfaGFzaF9kZXN0cm95KHN0cnVjdCB0Y19hY3Rp b24gKmEpCiB9CiBFWFBPUlRfU1lNQk9MKHRjZl9oYXNoX2Rlc3Ryb3kpOwogCi1pbnQgdGNmX2hh c2hfcmVsZWFzZShzdHJ1Y3QgdGNfYWN0aW9uICphLCBpbnQgYmluZCkKK2ludCBfX3RjZl9oYXNo X3JlbGVhc2Uoc3RydWN0IHRjX2FjdGlvbiAqYSwgYm9vbCBiaW5kLCBib29sIHN0cmljdCkKIHsK IAlzdHJ1Y3QgdGNmX2NvbW1vbiAqcCA9IGEtPnByaXY7CiAJaW50IHJldCA9IDA7CkBAIC01Myw3 ICs1Myw3IEBAIGludCB0Y2ZfaGFzaF9yZWxlYXNlKHN0cnVjdCB0Y19hY3Rpb24gKmEsIGludCBi aW5kKQogCWlmIChwKSB7CiAJCWlmIChiaW5kKQogCQkJcC0+dGNmY19iaW5kY250LS07Ci0JCWVs c2UgaWYgKHAtPnRjZmNfYmluZGNudCA+IDApCisJCWVsc2UgaWYgKHN0cmljdCAmJiBwLT50Y2Zj X2JpbmRjbnQgPiAwKQogCQkJcmV0dXJuIC1FUEVSTTsKIAogCQlwLT50Y2ZjX3JlZmNudC0tOwpA QCAtNjQsOSArNjQsMTAgQEAgaW50IHRjZl9oYXNoX3JlbGVhc2Uoc3RydWN0IHRjX2FjdGlvbiAq YSwgaW50IGJpbmQpCiAJCQlyZXQgPSAxOwogCQl9CiAJfQorCiAJcmV0dXJuIHJldDsKIH0KLUVY UE9SVF9TWU1CT0wodGNmX2hhc2hfcmVsZWFzZSk7CitFWFBPUlRfU1lNQk9MKF9fdGNmX2hhc2hf cmVsZWFzZSk7CiAKIHN0YXRpYyBpbnQgdGNmX2R1bXBfd2Fsa2VyKHN0cnVjdCBza19idWZmICpz a2IsIHN0cnVjdCBuZXRsaW5rX2NhbGxiYWNrICpjYiwKIAkJCSAgIHN0cnVjdCB0Y19hY3Rpb24g KmEpCkBAIC0xMzYsNyArMTM3LDcgQEAgc3RhdGljIGludCB0Y2ZfZGVsX3dhbGtlcihzdHJ1Y3Qg c2tfYnVmZiAqc2tiLCBzdHJ1Y3QgdGNfYWN0aW9uICphKQogCQloZWFkID0gJmhpbmZvLT5odGFi W3RjZl9oYXNoKGksIGhpbmZvLT5obWFzayldOwogCQlobGlzdF9mb3JfZWFjaF9lbnRyeV9zYWZl KHAsIG4sIGhlYWQsIHRjZmNfaGVhZCkgewogCQkJYS0+cHJpdiA9IHA7Ci0JCQlyZXQgPSB0Y2Zf aGFzaF9yZWxlYXNlKGEsIDApOworCQkJcmV0ID0gX190Y2ZfaGFzaF9yZWxlYXNlKGEsIGZhbHNl LCB0cnVlKTsKIAkJCWlmIChyZXQgPT0gQUNUX1BfREVMRVRFRCkgewogCQkJCW1vZHVsZV9wdXQo YS0+b3BzLT5vd25lcik7CiAJCQkJbl9pKys7CkBAIC00MTMsNyArNDE0LDcgQEAgaW50IHRjZl9h Y3Rpb25fZGVzdHJveShzdHJ1Y3QgbGlzdF9oZWFkICphY3Rpb25zLCBpbnQgYmluZCkKIAlpbnQg cmV0ID0gMDsKIAogCWxpc3RfZm9yX2VhY2hfZW50cnlfc2FmZShhLCB0bXAsIGFjdGlvbnMsIGxp c3QpIHsKLQkJcmV0ID0gdGNmX2hhc2hfcmVsZWFzZShhLCBiaW5kKTsKKwkJcmV0ID0gX190Y2Zf aGFzaF9yZWxlYXNlKGEsIGJpbmQsIHRydWUpOwogCQlpZiAocmV0ID09IEFDVF9QX0RFTEVURUQp CiAJCQltb2R1bGVfcHV0KGEtPm9wcy0+b3duZXIpOwogCQllbHNlIGlmIChyZXQgPCAwKQotLSAK Mi4xLjAKCgpGcm9tIDQwZGY5NTg4ZjQ0MTVhOTc2ZjFiNjdmMzQ0NzU3ZDI2ZjE1N2U0ZjggTW9u IFNlcCAxNyAwMDowMDowMCAyMDAxCkZyb206IElkbyBTY2hpbW1lbCA8aWRvc2NoQG1lbGxhbm94 LmNvbT4KRGF0ZTogU3VuLCAyIEF1ZyAyMDE1IDE5OjI5OjE2ICswMjAwClN1YmplY3Q6IFtQQVRD SCAzNi80Nl0gcm9ja2VyOiBmcmVlIG5ldGRldmljZSBkdXJpbmcgbmV0ZGV2aWNlIHJlbW92YWwK ClsgVXBzdHJlYW0gY29tbWl0IDFlYmQ0N2VmYTRlMTczOTFkZmFjOGNhYTM0OWM2YThkMzVmOTk2 ZDEgXQoKV2hlbiByZW1vdmluZyBhIHBvcnQncyBuZXRkZXZpY2UgaW4gJ3JvY2tlcl9yZW1vdmVf cG9ydHMnLCB3ZSBzaG91bGQKYWxzbyBmcmVlIHRoZSBhbGxvY2F0ZWQgJ25ldF9kZXZpY2UnIHN0 cnVjdHVyZS4gRG8gdGhhdCBieSBjYWxsaW5nCidmcmVlX25ldGRldicgYWZ0ZXIgdW5yZWdpc3Rl cmluZyBpdC4KClNpZ25lZC1vZmYtYnk6IElkbyBTY2hpbW1lbCA8aWRvc2NoQG1lbGxhbm94LmNv bT4KU2lnbmVkLW9mZi1ieTogSmlyaSBQaXJrbyA8amlyaUByZXNudWxsaS51cz4KRml4ZXM6IDRi OGFjOTY2MGFmICgicm9ja2VyOiBpbnRyb2R1Y2Ugcm9ja2VyIHN3aXRjaCBkcml2ZXIiKQpBY2tl ZC1ieTogU2NvdHQgRmVsZG1hbiA8c2ZlbGRtYUBnbWFpbC5jb20+ClNpZ25lZC1vZmYtYnk6IERh dmlkIFMuIE1pbGxlciA8ZGF2ZW1AZGF2ZW1sb2Z0Lm5ldD4KLS0tCiBkcml2ZXJzL25ldC9ldGhl cm5ldC9yb2NrZXIvcm9ja2VyLmMgfCAxICsKIDEgZmlsZSBjaGFuZ2VkLCAxIGluc2VydGlvbigr KQoKZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L2V0aGVybmV0L3JvY2tlci9yb2NrZXIuYyBiL2Ry aXZlcnMvbmV0L2V0aGVybmV0L3JvY2tlci9yb2NrZXIuYwppbmRleCBjZjk4Y2M5Li43M2I2ZmMy IDEwMDY0NAotLS0gYS9kcml2ZXJzL25ldC9ldGhlcm5ldC9yb2NrZXIvcm9ja2VyLmMKKysrIGIv ZHJpdmVycy9uZXQvZXRoZXJuZXQvcm9ja2VyL3JvY2tlci5jCkBAIC00NTg3LDYgKzQ1ODcsNyBA QCBzdGF0aWMgdm9pZCByb2NrZXJfcmVtb3ZlX3BvcnRzKHN0cnVjdCByb2NrZXIgKnJvY2tlcikK IAkJcm9ja2VyX3BvcnQgPSByb2NrZXItPnBvcnRzW2ldOwogCQlyb2NrZXJfcG9ydF9pZ190Ymwo cm9ja2VyX3BvcnQsIFJPQ0tFUl9PUF9GTEFHX1JFTU9WRSk7CiAJCXVucmVnaXN0ZXJfbmV0ZGV2 KHJvY2tlcl9wb3J0LT5kZXYpOworCQlmcmVlX25ldGRldihyb2NrZXJfcG9ydC0+ZGV2KTsKIAl9 CiAJa2ZyZWUocm9ja2VyLT5wb3J0cyk7CiB9Ci0tIAoyLjEuMAoKCkZyb20gYjJjMTc3YzY0ZGUx Zjg2M2RlODMyZGE2NjdlZjZmNjI2Y2NkZGI0OCBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJv bTogRGFuIENhcnBlbnRlciA8ZGFuLmNhcnBlbnRlckBvcmFjbGUuY29tPgpEYXRlOiBTYXQsIDEg QXVnIDIwMTUgMTU6MzM6MjYgKzAzMDAKU3ViamVjdDogW1BBVENIIDM3LzQ2XSByZHM6IGZpeCBh biBpbnRlZ2VyIG92ZXJmbG93IHRlc3QgaW4KIHJkc19pbmZvX2dldHNvY2tvcHQoKQoKWyBVcHN0 cmVhbSBjb21taXQgNDY4YjczMmI2Zjc2YjEzOGMwOTI2ZWFkZjM4YWM4ODQ2N2RjZDI3MSBdCgoi bGVuIiBpcyBhIHNpZ25lZCBpbnRlZ2VyLiAgV2UgY2hlY2sgdGhhdCBsZW4gaXMgbm90IG5lZ2F0 aXZlLCBzbyBpdApnb2VzIGZyb20gemVybyB0byBJTlRfTUFYLiAgUEFHRV9TSVpFIGlzIHVuc2ln bmVkIGxvbmcgc28gdGhlIGNvbXBhcmlzb24KaXMgdHlwZSBwcm9tb3RlZCB0byB1bnNpZ25lZCBs b25nLiAgVUxPTkdfTUFYIC0gNDA5NSBpcyBhIGhpZ2hlciB0aGFuCklOVF9NQVggc28gdGhlIGNv bmRpdGlvbiBjYW4gbmV2ZXIgYmUgdHJ1ZS4KCkkgZG9uJ3Qga25vdyBpZiB0aGlzIGlzIGhhcm1m dWwgYnV0IGl0IHNlZW1zIHNhZmUgdG8gbGltaXQgImxlbiIgdG8KSU5UX01BWCAtIDQwOTUuCgpG aXhlczogYThjODc5YTdlZTk4ICgnUkRTOiBJbmZvIGFuZCBzdGF0cycpClNpZ25lZC1vZmYtYnk6 IERhbiBDYXJwZW50ZXIgPGRhbi5jYXJwZW50ZXJAb3JhY2xlLmNvbT4KU2lnbmVkLW9mZi1ieTog RGF2aWQgUy4gTWlsbGVyIDxkYXZlbUBkYXZlbWxvZnQubmV0PgotLS0KIG5ldC9yZHMvaW5mby5j IHwgMiArLQogMSBmaWxlIGNoYW5nZWQsIDEgaW5zZXJ0aW9uKCspLCAxIGRlbGV0aW9uKC0pCgpk aWZmIC0tZ2l0IGEvbmV0L3Jkcy9pbmZvLmMgYi9uZXQvcmRzL2luZm8uYwppbmRleCA5YTZiNGY2 Li4xNDBhNDRhIDEwMDY0NAotLS0gYS9uZXQvcmRzL2luZm8uYworKysgYi9uZXQvcmRzL2luZm8u YwpAQCAtMTc2LDcgKzE3Niw3IEBAIGludCByZHNfaW5mb19nZXRzb2Nrb3B0KHN0cnVjdCBzb2Nr ZXQgKnNvY2ssIGludCBvcHRuYW1lLCBjaGFyIF9fdXNlciAqb3B0dmFsLAogCiAJLyogY2hlY2sg Zm9yIGFsbCBraW5kcyBvZiB3cmFwcGluZyBhbmQgdGhlIGxpa2UgKi8KIAlzdGFydCA9ICh1bnNp Z25lZCBsb25nKW9wdHZhbDsKLQlpZiAobGVuIDwgMCB8fCBsZW4gKyBQQUdFX1NJWkUgLSAxIDwg bGVuIHx8IHN0YXJ0ICsgbGVuIDwgc3RhcnQpIHsKKwlpZiAobGVuIDwgMCB8fCBsZW4gPiBJTlRf TUFYIC0gUEFHRV9TSVpFICsgMSB8fCBzdGFydCArIGxlbiA8IHN0YXJ0KSB7CiAJCXJldCA9IC1F SU5WQUw7CiAJCWdvdG8gb3V0OwogCX0KLS0gCjIuMS4wCgoKRnJvbSAzNDZmMDUzNTc2NTkwOWQw ZjVmZGEzNjRmMzY1ZTA1ZjhlNjAyODc5IE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBF cmljIER1bWF6ZXQgPGVkdW1hemV0QGdvb2dsZS5jb20+CkRhdGU6IFNhdCwgMSBBdWcgMjAxNSAx MjoxNDozMyArMDIwMApTdWJqZWN0OiBbUEFUQ0ggMzgvNDZdIHVkcDogZml4IGRzdCByYWNlcyB3 aXRoIG11bHRpY2FzdCBlYXJseSBkZW11eApNSU1FLVZlcnNpb246IDEuMApDb250ZW50LVR5cGU6 IHRleHQvcGxhaW47IGNoYXJzZXQ9VVRGLTgKQ29udGVudC1UcmFuc2Zlci1FbmNvZGluZzogOGJp dAoKWyBVcHN0cmVhbSBjb21taXQgMTBlMmViODc4ZjNjYTA3YWMyZjA1ZmE1Y2E1ZTZjNGM5MTc0 YTI3YSBdCgpNdWx0aWNhc3QgZHN0IGFyZSBub3QgY2FjaGVkLiBUaGV5IGNhcnJ5IERTVF9OT0NB Q0hFLgoKQXMgbWVudGlvbmVkIGluIGNvbW1pdCBmODg2NDk3MjEyNjg5OSAoImlwdjQ6IGZpeCBk c3QgcmFjZSBpbgpza19kc3RfZ2V0KCkiKSwgdGhlc2UgZHN0IG5lZWQgc3BlY2lhbCBjYXJlIGJl Zm9yZSBjYWNoaW5nIHRoZW0KaW50byBhIHNvY2tldC4KCkNhY2hpbmcgdGhlbSBpcyBhbGxvd2Vk IG9ubHkgaWYgdGhlaXIgcmVmY250IHdhcyBub3QgMCwgaWUgd2UKbXVzdCB1c2UgYXRvbWljX2lu Y19ub3RfemVybygpCgpBbHNvLCB3ZSBtdXN0IHVzZSBSRUFEX09OQ0UoKSB0byBmZXRjaCBzay0+ c2tfcnhfZHN0LCBhcyBtZW50aW9uZWQKaW4gY29tbWl0IGQwYzI5NGM1M2E3NzEgKCJ0Y3A6IHBy ZXZlbnQgZmV0Y2hpbmcgZHN0IHR3aWNlIGluIGVhcmx5IGRlbXV4CmNvZGUiKQoKRml4ZXM6IDQy MWIzODg1YmY2ZCAoInVkcDogaXB2NDogQWRkIHVkcCBlYXJseSBkZW11eCIpClRlc3RlZC1ieTog R3JlZ29yeSBIb2dnYXJ0aCA8R3JlZ29yeS5Ib2dnYXJ0aEBhbGxpZWR0ZWxlc2lzLmNvLm56PgpT aWduZWQtb2ZmLWJ5OiBFcmljIER1bWF6ZXQgPGVkdW1hemV0QGdvb2dsZS5jb20+ClJlcG9ydGVk LWJ5OiBHcmVnb3J5IEhvZ2dhcnRoIDxHcmVnb3J5LkhvZ2dhcnRoQGFsbGllZHRlbGVzaXMuY28u bno+ClJlcG9ydGVkLWJ5OiBBbGV4IEdhcnRyZWxsIDxhZ2FydHJlbGxAZmIuY29tPgpDYzogTWlj aGFsIEt1YmXEjWVrIDxta3ViZWNla0BzdXNlLmN6PgpTaWduZWQtb2ZmLWJ5OiBEYXZpZCBTLiBN aWxsZXIgPGRhdmVtQGRhdmVtbG9mdC5uZXQ+Ci0tLQogbmV0L2lwdjQvdWRwLmMgfCAxMyArKysr KysrKysrLS0tCiAxIGZpbGUgY2hhbmdlZCwgMTAgaW5zZXJ0aW9ucygrKSwgMyBkZWxldGlvbnMo LSkKCmRpZmYgLS1naXQgYS9uZXQvaXB2NC91ZHAuYyBiL25ldC9pcHY0L3VkcC5jCmluZGV4IDgz YWE2MDQuLjFiOGM1YmEgMTAwNjQ0Ci0tLSBhL25ldC9pcHY0L3VkcC5jCisrKyBiL25ldC9pcHY0 L3VkcC5jCkBAIC0xOTk1LDEyICsxOTk1LDE5IEBAIHZvaWQgdWRwX3Y0X2Vhcmx5X2RlbXV4KHN0 cnVjdCBza19idWZmICpza2IpCiAKIAlza2ItPnNrID0gc2s7CiAJc2tiLT5kZXN0cnVjdG9yID0g c29ja19lZnJlZTsKLQlkc3QgPSBzay0+c2tfcnhfZHN0OworCWRzdCA9IFJFQURfT05DRShzay0+ c2tfcnhfZHN0KTsKIAogCWlmIChkc3QpCiAJCWRzdCA9IGRzdF9jaGVjayhkc3QsIDApOwotCWlm IChkc3QpCi0JCXNrYl9kc3Rfc2V0X25vcmVmKHNrYiwgZHN0KTsKKwlpZiAoZHN0KSB7CisJCS8q IERTVF9OT0NBQ0hFIGNhbiBub3QgYmUgdXNlZCB3aXRob3V0IHRha2luZyBhIHJlZmVyZW5jZSAq LworCQlpZiAoZHN0LT5mbGFncyAmIERTVF9OT0NBQ0hFKSB7CisJCQlpZiAobGlrZWx5KGF0b21p Y19pbmNfbm90X3plcm8oJmRzdC0+X19yZWZjbnQpKSkKKwkJCQlza2JfZHN0X3NldChza2IsIGRz dCk7CisJCX0gZWxzZSB7CisJCQlza2JfZHN0X3NldF9ub3JlZihza2IsIGRzdCk7CisJCX0KKwl9 CiB9CiAKIGludCB1ZHBfcmN2KHN0cnVjdCBza19idWZmICpza2IpCi0tIAoyLjEuMAoKCkZyb20g NDY5ZTFlYmY3ZjlmODM1MTZjZDgwNWYwYThmMjM5MmQxYjgyOThhMyBNb24gU2VwIDE3IDAwOjAw OjAwIDIwMDEKRnJvbTogTmlrb2xheSBBbGVrc2FuZHJvdiA8bmlrb2xheUBjdW11bHVzbmV0d29y a3MuY29tPgpEYXRlOiBUdWUsIDQgQXVnIDIwMTUgMTk6MDY6MzIgKzAyMDAKU3ViamVjdDogW1BB VENIIDM5LzQ2XSBicmlkZ2U6IG5ldGxpbms6IGFjY291bnQgZm9yIHRoZSBJRkxBX0JSUE9SVF9Q Uk9YWUFSUAogYXR0cmlidXRlIHNpemUgYW5kIHBvbGljeQoKWyBVcHN0cmVhbSBjb21taXQgMzU1 YjlmOWRmMWYwMzExZjIwMDg3MzUwYWVlOGFkOTZlZWRjYThhOSBdCgpUaGUgYXR0cmlidXRlIHNp emUgd2Fzbid0IGFjY291bnRlZCBmb3IgaW4gdGhlIGdldF9zbGF2ZV9zaXplKCkgY2FsbGJhY2sK KGJyX3BvcnRfZ2V0X3NsYXZlX3NpemUpIHdoZW4gaXQgd2FzIGludHJvZHVjZWQsIHNvIGZpeCBp dCBub3cuIEFsc28gYWRkCmEgcG9saWN5IGVudHJ5IGZvciBpdCBpbiBicl9wb3J0X3BvbGljeS4K ClNpZ25lZC1vZmYtYnk6IE5pa29sYXkgQWxla3NhbmRyb3YgPG5pa29sYXlAY3VtdWx1c25ldHdv cmtzLmNvbT4KRml4ZXM6IDk1ODUwMTE2M2RkZCAoImJyaWRnZTogQWRkIHN1cHBvcnQgZm9yIElF RUUgODAyLjExIFByb3h5IEFSUCIpClNpZ25lZC1vZmYtYnk6IERhdmlkIFMuIE1pbGxlciA8ZGF2 ZW1AZGF2ZW1sb2Z0Lm5ldD4KLS0tCiBuZXQvYnJpZGdlL2JyX25ldGxpbmsuYyB8IDIgKysKIDEg ZmlsZSBjaGFuZ2VkLCAyIGluc2VydGlvbnMoKykKCmRpZmYgLS1naXQgYS9uZXQvYnJpZGdlL2Jy X25ldGxpbmsuYyBiL25ldC9icmlkZ2UvYnJfbmV0bGluay5jCmluZGV4IDIwZTA2YTkuLjk1ZWYw MzIgMTAwNjQ0Ci0tLSBhL25ldC9icmlkZ2UvYnJfbmV0bGluay5jCisrKyBiL25ldC9icmlkZ2Uv YnJfbmV0bGluay5jCkBAIC0xMTIsNiArMTEyLDcgQEAgc3RhdGljIGlubGluZSBzaXplX3QgYnJf cG9ydF9pbmZvX3NpemUodm9pZCkKIAkJKyBubGFfdG90YWxfc2l6ZSgxKQkvKiBJRkxBX0JSUE9S VF9GQVNUX0xFQVZFICovCiAJCSsgbmxhX3RvdGFsX3NpemUoMSkJLyogSUZMQV9CUlBPUlRfTEVB Uk5JTkcgKi8KIAkJKyBubGFfdG90YWxfc2l6ZSgxKQkvKiBJRkxBX0JSUE9SVF9VTklDQVNUX0ZM T09EICovCisJCSsgbmxhX3RvdGFsX3NpemUoMSkJLyogSUZMQV9CUlBPUlRfUFJPWFlBUlAgKi8K IAkJKyAwOwogfQogCkBAIC01MDQsNiArNTA1LDcgQEAgc3RhdGljIGNvbnN0IHN0cnVjdCBubGFf cG9saWN5IGJyX3BvcnRfcG9saWN5W0lGTEFfQlJQT1JUX01BWCArIDFdID0gewogCVtJRkxBX0JS UE9SVF9GQVNUX0xFQVZFXT0geyAudHlwZSA9IE5MQV9VOCB9LAogCVtJRkxBX0JSUE9SVF9MRUFS TklOR10JPSB7IC50eXBlID0gTkxBX1U4IH0sCiAJW0lGTEFfQlJQT1JUX1VOSUNBU1RfRkxPT0Rd ID0geyAudHlwZSA9IE5MQV9VOCB9LAorCVtJRkxBX0JSUE9SVF9QUk9YWUFSUF0JPSB7IC50eXBl ID0gTkxBX1U4IH0sCiB9OwogCiAvKiBDaGFuZ2UgdGhlIHN0YXRlIG9mIHRoZSBwb3J0IGFuZCBu b3RpZnkgc3Bhbm5pbmcgdHJlZSAqLwotLSAKMi4xLjAKCgpGcm9tIDdjZWE4YmE3MjhlMzc3MTQ1 ZGRiM2MwYzQ0OWJlY2E3OTIxNzExMDkgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCkZyb206IE5p a29sYXkgQWxla3NhbmRyb3YgPG5pa29sYXlAY3VtdWx1c25ldHdvcmtzLmNvbT4KRGF0ZTogVHVl LCA0IEF1ZyAyMDE1IDE5OjA2OjMzICswMjAwClN1YmplY3Q6IFtQQVRDSCA0MC80Nl0gYnJpZGdl OiBuZXRsaW5rOiBhY2NvdW50IGZvciB0aGUKIElGTEFfQlJQT1JUX1BST1hZQVJQX1dJRkkgYXR0 cmlidXRlIHNpemUgYW5kIHBvbGljeQoKWyBVcHN0cmVhbSBjb21taXQgNzg2YzIwNzdlYzhlOWVh YjM3YTg4ZmMxNGFhYzQzMDlhODA2MWUxOCBdCgpUaGUgYXR0cmlidXRlIHNpemUgd2Fzbid0IGFj Y291bnRlZCBmb3IgaW4gdGhlIGdldF9zbGF2ZV9zaXplKCkgY2FsbGJhY2sKKGJyX3BvcnRfZ2V0 X3NsYXZlX3NpemUpIHdoZW4gaXQgd2FzIGludHJvZHVjZWQsIHNvIGZpeCBpdCBub3cuIEFsc28g YWRkCmEgcG9saWN5IGVudHJ5IGZvciBpdCBpbiBicl9wb3J0X3BvbGljeS4KClNpZ25lZC1vZmYt Ynk6IE5pa29sYXkgQWxla3NhbmRyb3YgPG5pa29sYXlAY3VtdWx1c25ldHdvcmtzLmNvbT4KRml4 ZXM6IDg0MmE5YWUwOGEyNSAoImJyaWRnZTogRXh0ZW5kIFByb3h5IEFSUCBkZXNpZ24gdG8gYWxs b3cgb3B0aW9uYWwgcnVsZXMgZm9yIFdpLUZpIikKU2lnbmVkLW9mZi1ieTogRGF2aWQgUy4gTWls bGVyIDxkYXZlbUBkYXZlbWxvZnQubmV0PgotLS0KIG5ldC9icmlkZ2UvYnJfbmV0bGluay5jIHwg MiArKwogMSBmaWxlIGNoYW5nZWQsIDIgaW5zZXJ0aW9ucygrKQoKZGlmZiAtLWdpdCBhL25ldC9i cmlkZ2UvYnJfbmV0bGluay5jIGIvbmV0L2JyaWRnZS9icl9uZXRsaW5rLmMKaW5kZXggOTVlZjAz Mi4uYTc1NTllZiAxMDA2NDQKLS0tIGEvbmV0L2JyaWRnZS9icl9uZXRsaW5rLmMKKysrIGIvbmV0 L2JyaWRnZS9icl9uZXRsaW5rLmMKQEAgLTExMyw2ICsxMTMsNyBAQCBzdGF0aWMgaW5saW5lIHNp emVfdCBicl9wb3J0X2luZm9fc2l6ZSh2b2lkKQogCQkrIG5sYV90b3RhbF9zaXplKDEpCS8qIElG TEFfQlJQT1JUX0xFQVJOSU5HICovCiAJCSsgbmxhX3RvdGFsX3NpemUoMSkJLyogSUZMQV9CUlBP UlRfVU5JQ0FTVF9GTE9PRCAqLwogCQkrIG5sYV90b3RhbF9zaXplKDEpCS8qIElGTEFfQlJQT1JU X1BST1hZQVJQICovCisJCSsgbmxhX3RvdGFsX3NpemUoMSkJLyogSUZMQV9CUlBPUlRfUFJPWFlB UlBfV0lGSSAqLwogCQkrIDA7CiB9CiAKQEAgLTUwNiw2ICs1MDcsNyBAQCBzdGF0aWMgY29uc3Qg c3RydWN0IG5sYV9wb2xpY3kgYnJfcG9ydF9wb2xpY3lbSUZMQV9CUlBPUlRfTUFYICsgMV0gPSB7 CiAJW0lGTEFfQlJQT1JUX0xFQVJOSU5HXQk9IHsgLnR5cGUgPSBOTEFfVTggfSwKIAlbSUZMQV9C UlBPUlRfVU5JQ0FTVF9GTE9PRF0gPSB7IC50eXBlID0gTkxBX1U4IH0sCiAJW0lGTEFfQlJQT1JU X1BST1hZQVJQXQk9IHsgLnR5cGUgPSBOTEFfVTggfSwKKwlbSUZMQV9CUlBPUlRfUFJPWFlBUlBf V0lGSV0gPSB7IC50eXBlID0gTkxBX1U4IH0sCiB9OwogCiAvKiBDaGFuZ2UgdGhlIHN0YXRlIG9m IHRoZSBwb3J0IGFuZCBub3RpZnkgc3Bhbm5pbmcgdHJlZSAqLwotLSAKMi4xLjAKCgpGcm9tIDYx YzIyNmNiMzkxMTY1MzE0YjVlZTQyY2M2ZjcyYmM5YjI5YmM4OTcgTW9uIFNlcCAxNyAwMDowMDow MCAyMDAxCkZyb206IEl2YW4gVmVjZXJhIDxpdmVjZXJhQHJlZGhhdC5jb20+CkRhdGU6IFRodSwg NiBBdWcgMjAxNSAyMjo0ODoyMyArMDIwMApTdWJqZWN0OiBbUEFUQ0ggNDEvNDZdIGJuYTogZml4 IGludGVycnVwdHMgc3Rvcm0gY2F1c2VkIGJ5IGVycm9uZW91cyBwYWNrZXRzCgpbIFVwc3RyZWFt IGNvbW1pdCBhZGU0ZGMzZTYxNmUzM2M4MGQ3ZTYyODU1ZmUxYjZmOTg5NWJjN2MzIF0KClRoZSBj b21taXQgImUyOWFhMzMgYm5hOiBFbmFibGUgTXVsdGkgQnVmZmVyIFJYIiBtb3ZlZCBwYWNrZXRz IGNvdW50ZXIKaW5jcmVtZW50IGZyb20gdGhlIGJlZ2lubmluZyBvZiB0aGUgTkFQSSBwcm9jZXNz aW5nIGxvb3AgYWZ0ZXIgdGhlIGNoZWNrCmZvciBlcnJvbmVvdXMgcGFja2V0cyBzbyB0aGV5IGFy ZSBuZXZlciBhY2NvdW50ZWQuIFRoaXMgY291bnRlciBpcyB1c2VkCnRvIGluZm9ybSBmaXJtd2Fy ZSBhYm91dCBudW1iZXIgb2YgcHJvY2Vzc2VkIGNvbXBsZXRpb25zIChwYWNrZXRzKS4KQXMgdGhl c2UgcGFja2V0cyBhcmUgbmV2ZXIgYWNrZWQgdGhlIGZpcm13YXJlIGZpcmVzIElSUXMgZm9yIHRo ZW0gYWdhaW4KYW5kIGFnYWluLgoKRml4ZXM6IGUyOWFhMzMgKCJibmE6IEVuYWJsZSBNdWx0aSBC dWZmZXIgUlgiKQpTaWduZWQtb2ZmLWJ5OiBJdmFuIFZlY2VyYSA8aXZlY2VyYUByZWRoYXQuY29t PgpBY2tlZC1ieTogUmFzZXNoIE1vZHkgPHJhc2VzaC5tb2R5QHFsb2dpYy5jb20+ClNpZ25lZC1v ZmYtYnk6IERhdmlkIFMuIE1pbGxlciA8ZGF2ZW1AZGF2ZW1sb2Z0Lm5ldD4KLS0tCiBkcml2ZXJz L25ldC9ldGhlcm5ldC9icm9jYWRlL2JuYS9ibmFkLmMgfCAyICstCiAxIGZpbGUgY2hhbmdlZCwg MSBpbnNlcnRpb24oKyksIDEgZGVsZXRpb24oLSkKCmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC9l dGhlcm5ldC9icm9jYWRlL2JuYS9ibmFkLmMgYi9kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9jYWRl L2JuYS9ibmFkLmMKaW5kZXggY2FhZTZjYi4uYTFjMzBlZSAxMDA2NDQKLS0tIGEvZHJpdmVycy9u ZXQvZXRoZXJuZXQvYnJvY2FkZS9ibmEvYm5hZC5jCisrKyBiL2RyaXZlcnMvbmV0L2V0aGVybmV0 L2Jyb2NhZGUvYm5hL2JuYWQuYwpAQCAtNjc1LDYgKzY3NSw3IEBAIGJuYWRfY3FfcHJvY2Vzcyhz dHJ1Y3QgYm5hZCAqYm5hZCwgc3RydWN0IGJuYV9jY2IgKmNjYiwgaW50IGJ1ZGdldCkKIAkJCWlm ICghbmV4dF9jbXBsLT52YWxpZCkKIAkJCQlicmVhazsKIAkJfQorCQlwYWNrZXRzKys7CiAKIAkJ LyogVE9ETzogQk5BX0NRX0VGX0xPQ0FMID8gKi8KIAkJaWYgKHVubGlrZWx5KGZsYWdzICYgKEJO QV9DUV9FRl9NQUNfRVJST1IgfApAQCAtNjkxLDcgKzY5Miw2IEBAIGJuYWRfY3FfcHJvY2Vzcyhz dHJ1Y3QgYm5hZCAqYm5hZCwgc3RydWN0IGJuYV9jY2IgKmNjYiwgaW50IGJ1ZGdldCkKIAkJZWxz ZQogCQkJYm5hZF9jcV9zZXR1cF9za2JfZnJhZ3MocmNiLCBza2IsIHNvcF9jaSwgbnZlY3MsIGxl bik7CiAKLQkJcGFja2V0cysrOwogCQlyY2ItPnJ4cS0+cnhfcGFja2V0cysrOwogCQlyY2ItPnJ4 cS0+cnhfYnl0ZXMgKz0gdG90bGVuOwogCQljY2ItPmJ5dGVzX3Blcl9pbnRyICs9IHRvdGxlbjsK LS0gCjIuMS4wCgoKRnJvbSBhNGY1MGI3NTAxZjk4YjVlNzZlNjk1YmIzZjhjODkyNDI5MDgyZjkw IE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBEYW5pZWwgQm9ya21hbm4gPGRhbmllbEBp b2dlYXJib3gubmV0PgpEYXRlOiBGcmksIDcgQXVnIDIwMTUgMDA6MjY6NDEgKzAyMDAKU3ViamVj dDogW1BBVENIIDQyLzQ2XSBuZXRsaW5rOiBtYWtlIHN1cmUgLUVCVVNZIHdvbid0IGVzY2FwZSBm cm9tCiBuZXRsaW5rX2luc2VydAoKWyBVcHN0cmVhbSBjb21taXQgNGU3YzEzMzA2ODllMjc1NTZk ZTQwN2QzZmRhZGM2NWZmZmY1ZWIxMiBdCgpMaW51cyByZXBvcnRzIHRoZSBmb2xsb3dpbmcgZGVh ZGxvY2sgb24gcnRubF9tdXRleDsgdHJpZ2dlcmVkIG9ubHkKb25jZSBzbyBmYXIgKGV4dHJhY3Qp OgoKWzEyMjM2LjY5NDIwOV0gTmV0d29ya01hbmFnZXIgIEQgMDAwMDAwMDAwMDAxM2I4MCAgICAg MCAgMTA0NyAgICAgIDEgMHgwMDAwMDAwMApbMTIyMzYuNjk0MjE4XSAgZmZmZjg4MDAzZjkwMjY0 MCAwMDAwMDAwMDAwMDAwMDAwIGZmZmZmZmZmODE1ZDE1YTkgMDAwMDAwMDAwMDAwMDAxOApbMTIy MzYuNjk0MjI0XSAgZmZmZjg4MDExOTUzODAwMCBmZmZmODgwMDNmOTAyNjQwIGZmZmZmZmZmODFh OGZmODQgMDAwMDAwMDBmZmZmZmZmZgpbMTIyMzYuNjk0MjMwXSAgZmZmZmZmZmY4MWE4ZmY4OCBm ZmZmODgwMTE5YzQ3ZjAwIGZmZmZmZmZmODE1ZDEzM2EgZmZmZmZmZmY4MWE4ZmY4MApbMTIyMzYu Njk0MjM1XSBDYWxsIFRyYWNlOgpbMTIyMzYuNjk0MjUwXSAgWzxmZmZmZmZmZjgxNWQxNWE5Pl0g PyBzY2hlZHVsZV9wcmVlbXB0X2Rpc2FibGVkKzB4OS8weDEwClsxMjIzNi42OTQyNTddICBbPGZm ZmZmZmZmODE1ZDEzM2E+XSA/IHNjaGVkdWxlKzB4MmEvMHg3MApbMTIyMzYuNjk0MjYzXSAgWzxm ZmZmZmZmZjgxNWQxNWE5Pl0gPyBzY2hlZHVsZV9wcmVlbXB0X2Rpc2FibGVkKzB4OS8weDEwClsx MjIzNi42OTQyNzFdICBbPGZmZmZmZmZmODE1ZDJjM2Y+XSA/IF9fbXV0ZXhfbG9ja19zbG93cGF0 aCsweDdmLzB4ZjAKWzEyMjM2LjY5NDI4MF0gIFs8ZmZmZmZmZmY4MTVkMmNjNj5dID8gbXV0ZXhf bG9jaysweDE2LzB4MzAKWzEyMjM2LjY5NDI5MV0gIFs8ZmZmZmZmZmY4MTRmMWY5MD5dID8gcnRu ZXRsaW5rX3JjdisweDEwLzB4MzAKWzEyMjM2LjY5NDI5OV0gIFs8ZmZmZmZmZmY4MTUwY2UzYj5d ID8gbmV0bGlua191bmljYXN0KzB4ZmIvMHgxODAKWzEyMjM2LjY5NDMwOV0gIFs8ZmZmZmZmZmY4 MTRmNWFkMz5dID8gcnRubF9nZXRsaW5rKzB4MTEzLzB4MTkwClsxMjIzNi42OTQzMTldICBbPGZm ZmZmZmZmODE0ZjIwMmE+XSA/IHJ0bmV0bGlua19yY3ZfbXNnKzB4N2EvMHgyMTAKWzEyMjM2LjY5 NDMzMV0gIFs8ZmZmZmZmZmY4MTI0NTY1Yz5dID8gc29ja19oYXNfcGVybSsweDVjLzB4NzAKWzEy MjM2LjY5NDMzOV0gIFs8ZmZmZmZmZmY4MTRmMWZiMD5dID8gcnRuZXRsaW5rX3JjdisweDMwLzB4 MzAKWzEyMjM2LjY5NDM0Nl0gIFs8ZmZmZmZmZmY4MTUwZDYyYz5dID8gbmV0bGlua19yY3Zfc2ti KzB4OWMvMHhjMApbMTIyMzYuNjk0MzU0XSAgWzxmZmZmZmZmZjgxNGYxZjlmPl0gPyBydG5ldGxp bmtfcmN2KzB4MWYvMHgzMApbMTIyMzYuNjk0MzYwXSAgWzxmZmZmZmZmZjgxNTBjZTNiPl0gPyBu ZXRsaW5rX3VuaWNhc3QrMHhmYi8weDE4MApbMTIyMzYuNjk0MzY3XSAgWzxmZmZmZmZmZjgxNTBk MzQ0Pl0gPyBuZXRsaW5rX3NlbmRtc2crMHg0ODQvMHg1ZDAKWzEyMjM2LjY5NDM3Nl0gIFs8ZmZm ZmZmZmY4MTBhMjM2Zj5dID8gX193YWtlX3VwKzB4MmYvMHg1MApbMTIyMzYuNjk0Mzg3XSAgWzxm ZmZmZmZmZjgxNGNhZDIzPl0gPyBzb2NrX3NlbmRtc2crMHgzMy8weDQwClsxMjIzNi42OTQzOTZd ICBbPGZmZmZmZmZmODE0Y2IwNWU+XSA/IF9fX3N5c19zZW5kbXNnKzB4MjJlLzB4MjQwClsxMjIz Ni42OTQ0MDVdICBbPGZmZmZmZmZmODE0Y2FiNzU+XSA/IF9fX3N5c19yZWN2bXNnKzB4MTM1LzB4 MWEwClsxMjIzNi42OTQ0MTVdICBbPGZmZmZmZmZmODExYTlkMTI+XSA/IGV2ZW50ZmRfd3JpdGUr MHg4Mi8weDIxMApbMTIyMzYuNjk0NDIzXSAgWzxmZmZmZmZmZjgxMWEwZjllPl0gPyBmc25vdGlm eSsweDMyZS8weDRjMApbMTIyMzYuNjk0NDI5XSAgWzxmZmZmZmZmZjgxMDhjYjcwPl0gPyB3YWtl X3VwX3ErMHg2MC8weDYwClsxMjIzNi42OTQ0MzRdICBbPGZmZmZmZmZmODE0Y2JhMDk+XSA/IF9f c3lzX3NlbmRtc2crMHgzOS8weDcwClsxMjIzNi42OTQ0NDBdICBbPGZmZmZmZmZmODE1ZDQ3OTc+ XSA/IGVudHJ5X1NZU0NBTExfNjRfZmFzdHBhdGgrMHgxMi8weDZhCgpJdCBzZWVtcyBzbyBmYXIg cGxhdXNpYmxlIHRoYXQgdGhlIHJlY3Vyc2l2ZSBjYWxsIGludG8gcnRuZXRsaW5rX3JjdigpCmxv b2tzIHN1c3BpY2lvdXMuIE9uZSB3YXksIHdoZXJlIHRoaXMgY291bGQgdHJpZ2dlciBpcyB0aGF0 IHRoZSBzZW5kZXJzCk5FVExJTktfQ0Ioc2tiKS5wb3J0aWQgd2FzIHdyb25nbHkgMCAod2hpY2gg aXMgcnRuZXRsaW5rIHNvY2tldCksIHNvCnRoZSBydG5sX2dldGxpbmsoKSByZXF1ZXN0J3MgYW5z d2VyIHdvdWxkIGJlIHNlbnQgdG8gdGhlIGtlcm5lbCBpbnN0ZWFkCnRvIHRoZSBhY3R1YWwgdXNl ciBwcm9jZXNzLCB0aHVzIGdyYWJiaW5nIHJ0bmxfbXV0ZXgoKSB0d2ljZS4KCk9uZSB0aGVvcnkg d291bGQgYmUgdGhhdCBuZXRsaW5rX2F1dG9iaW5kKCkgdHJpZ2dlcmVkIHZpYSBuZXRsaW5rX3Nl bmRtc2coKQppbnRlcm5hbGx5IG92ZXJ3cml0ZXMgdGhlIC1FQlVTWSBlcnJvciB0byAwLCBidXQg d2hlcmUgaXQgaXMgd3JvbmdseQpvcmlnaW5hdGluZyBmcm9tIF9fbmV0bGlua19pbnNlcnQoKSBp bnN0ZWFkLiBUaGF0IHdvdWxkIHJlc2V0IHRoZQpzb2NrZXQncyBwb3J0aWQgdG8gMCwgd2hpY2gg aXMgdGhlbiBmaWxsZWQgaW50byBORVRMSU5LX0NCKHNrYikucG9ydGlkCmxhdGVyIG9uLiBBcyBj b21taXQgZDQ3MGUzYjQ4M2RjICgiW05FVExJTktdOiBGaXggdHdvIHNvY2tldCBoYXNoaW5nIGJ1 Z3MuIikKYWxzbyBwdXRzIGl0LCAtRUJVU1kgc2hvdWxkIG5vdCBiZSBwcm9wYWdhdGVkIGZyb20g bmV0bGlua19pbnNlcnQoKS4KCkl0IGxvb2tzIGxpa2UgaXQncyB2ZXJ5IHVubGlrZWx5IHRvIHJl cHJvZHVjZS4gV2UgbmVlZCB0byB0cmlnZ2VyIHRoZQpyaGFzaHRhYmxlX2luc2VydF9yZWhhc2go KSBoYW5kbGVyIHVuZGVyIGEgc2l0dWF0aW9uIHdoZXJlIHJlaGFzaGluZwpjdXJyZW50bHkgb2Nj dXJzIChvbmUgL3JhcmUvIHdheSB3b3VsZCBiZSB0byBoaXQgaHQtPmVsYXN0aWNpdHkgbGltaXRz CndoaWxlIG5vdCBmaWxsZWQgZW5vdWdoIHRvIGV4cGFuZCB0aGUgaGFzaHRhYmxlLCBidXQgdGhh dCB3b3VsZCByYXRoZXIKcmVxdWlyZSBhIHNwZWNpZmljYWxseSBjcmFmdGVkIGJpbmQoKSBzZXF1 ZW5jZSB3aXRoIGtub3dsZWRnZSBhYm91dApkZXN0aW5hdGlvbiBzbG90cywgc2VlbXMgdW5saWtl bHkpLiBJdCBwcm9iYWJseSBtYWtlcyBzZW5zZSB0byBndWFyZApfX25ldGxpbmtfaW5zZXJ0KCkg aW4gYW55IGNhc2UgYW5kIHJlbWFwIHRoYXQgZXJyb3IuIEl0IHdhcyBzdWdnZXN0ZWQKdGhhdCBF T1ZFUkZMT1cgbWlnaHQgYmUgYmV0dGVyIHRoYW4gYW4gYWxyZWFkeSBvdmVybG9hZGVkIEVOT01F TS4KClJlZmVyZW5jZTogaHR0cDovL3RocmVhZC5nbWFuZS5vcmcvZ21hbmUubGludXgubmV0d29y ay8zNzI2NzYKUmVwb3J0ZWQtYnk6IExpbnVzIFRvcnZhbGRzIDx0b3J2YWxkc0BsaW51eC1mb3Vu ZGF0aW9uLm9yZz4KU2lnbmVkLW9mZi1ieTogRGFuaWVsIEJvcmttYW5uIDxkYW5pZWxAaW9nZWFy Ym94Lm5ldD4KQWNrZWQtYnk6IEhlcmJlcnQgWHUgPGhlcmJlcnRAZ29uZG9yLmFwYW5hLm9yZy5h dT4KQWNrZWQtYnk6IFRob21hcyBHcmFmIDx0Z3JhZkBzdXVnLmNoPgpTaWduZWQtb2ZmLWJ5OiBE YXZpZCBTLiBNaWxsZXIgPGRhdmVtQGRhdmVtbG9mdC5uZXQ+Ci0tLQogbmV0L25ldGxpbmsvYWZf bmV0bGluay5jIHwgNSArKysrKwogMSBmaWxlIGNoYW5nZWQsIDUgaW5zZXJ0aW9ucygrKQoKZGlm ZiAtLWdpdCBhL25ldC9uZXRsaW5rL2FmX25ldGxpbmsuYyBiL25ldC9uZXRsaW5rL2FmX25ldGxp bmsuYwppbmRleCBlYTVlZDdhLi40ODU2ZDk3IDEwMDY0NAotLS0gYS9uZXQvbmV0bGluay9hZl9u ZXRsaW5rLmMKKysrIGIvbmV0L25ldGxpbmsvYWZfbmV0bGluay5jCkBAIC0xMDk0LDYgKzEwOTQs MTEgQEAgc3RhdGljIGludCBuZXRsaW5rX2luc2VydChzdHJ1Y3Qgc29jayAqc2ssIHUzMiBwb3J0 aWQpCiAKIAllcnIgPSBfX25ldGxpbmtfaW5zZXJ0KHRhYmxlLCBzayk7CiAJaWYgKGVycikgewor CQkvKiBJbiBjYXNlIHRoZSBoYXNodGFibGUgYmFja2VuZCByZXR1cm5zIHdpdGggLUVCVVNZCisJ CSAqIGZyb20gaGVyZSwgaXQgbXVzdCBub3QgZXNjYXBlIHRvIHRoZSBjYWxsZXIuCisJCSAqLwor CQlpZiAodW5saWtlbHkoZXJyID09IC1FQlVTWSkpCisJCQllcnIgPSAtRU9WRVJGTE9XOwogCQlp ZiAoZXJyID09IC1FRVhJU1QpCiAJCQllcnIgPSAtRUFERFJJTlVTRTsKIAkJbmxrX3NrKHNrKS0+ cG9ydGlkID0gMDsKLS0gCjIuMS4wCgoKRnJvbSA1MzhjNTA5YjdmMjI4N2Y3NzM2M2M2NDEwMjE2 MTYwZDA4MmRiYTIyIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBFcmljIER1bWF6ZXQg PGVkdW1hemV0QGdvb2dsZS5jb20+CkRhdGU6IE1vbiwgMTAgQXVnIDIwMTUgMTU6MDc6MzQgLTA3 MDAKU3ViamVjdDogW1BBVENIIDQzLzQ2XSBpbmV0OiBmaXggcG9zc2libGUgcmVxdWVzdCBzb2Nr ZXQgbGVhawoKWyBVcHN0cmVhbSBjb21taXQgMzI1N2Q4YjEyZjk1NGM0NjJkMjlkZTYyMDE2NjRh ODQ2MzI4YTUyMiBdCgpJbiBjb21taXQgYjM1N2EzNjRjNTdjOSAoImluZXQ6IGZpeCBwb3NzaWJs ZSBwYW5pYyBpbgpyZXFza19xdWV1ZV91bmxpbmsoKSIpLCBJIG1pc3NlZCBmYWN0IHRoYXQgdGNw X2NoZWNrX3JlcSgpCmNhbiByZXR1cm4gdGhlIGxpc3RlbmVyIHNvY2tldCBpbiBvbmUgY2FzZSwg YW5kIHRoYXQgd2UgbXVzdApyZWxlYXNlIHRoZSByZXF1ZXN0IHNvY2tldCByZWZjb3VudCBvciB3 ZSBsZWFrIGl0LgoKVGVzdGVkOgoKIEZvbGxvd2luZyBwYWNrZXRkcmlsbCB0ZXN0IHRlbXBsYXRl IHNob3dzIHRoZSBpc3N1ZQoKMCAgICAgc29ja2V0KC4uLiwgU09DS19TVFJFQU0sIElQUFJPVE9f VENQKSA9IDMKKzAgICAgc2V0c29ja29wdCgzLCBTT0xfU09DS0VULCBTT19SRVVTRUFERFIsIFsx XSwgNCkgPSAwCiswICAgIGJpbmQoMywgLi4uLCAuLi4pID0gMAorMCAgICBsaXN0ZW4oMywgMSkg PSAwCgorMCAgICA8IFMgMDowKDApIHdpbiAyOTIwIDxtc3MgMTQ2MCxzYWNrT0ssbm9wLG5vcD4K KzAgICAgPiBTLiAwOjAoMCkgYWNrIDEgPG1zcyAxNDYwLG5vcCxub3Asc2Fja09LPgorLjAwMiA8 IC4gMToxKDApIGFjayAyMSB3aW4gMjkyMAorMCAgICA+IFIgMjE6MjEoMCkKCkZpeGVzOiBiMzU3 YTM2NGM1N2M5ICgiaW5ldDogZml4IHBvc3NpYmxlIHBhbmljIGluIHJlcXNrX3F1ZXVlX3VubGlu aygpIikKU2lnbmVkLW9mZi1ieTogRXJpYyBEdW1hemV0IDxlZHVtYXpldEBnb29nbGUuY29tPgpT aWduZWQtb2ZmLWJ5OiBEYXZpZCBTLiBNaWxsZXIgPGRhdmVtQGRhdmVtbG9mdC5uZXQ+Ci0tLQog bmV0L2lwdjQvdGNwX2lwdjQuYyB8IDIgKy0KIG5ldC9pcHY2L3RjcF9pcHY2LmMgfCAyICstCiAy IGZpbGVzIGNoYW5nZWQsIDIgaW5zZXJ0aW9ucygrKSwgMiBkZWxldGlvbnMoLSkKCmRpZmYgLS1n aXQgYS9uZXQvaXB2NC90Y3BfaXB2NC5jIGIvbmV0L2lwdjQvdGNwX2lwdjQuYwppbmRleCBmYzFj NjU4Li40NDFjYTZmIDEwMDY0NAotLS0gYS9uZXQvaXB2NC90Y3BfaXB2NC5jCisrKyBiL25ldC9p cHY0L3RjcF9pcHY0LmMKQEAgLTEzNDgsNyArMTM0OCw3IEBAIHN0YXRpYyBzdHJ1Y3Qgc29jayAq dGNwX3Y0X2huZF9yZXEoc3RydWN0IHNvY2sgKnNrLCBzdHJ1Y3Qgc2tfYnVmZiAqc2tiKQogCXJl cSA9IGluZXRfY3NrX3NlYXJjaF9yZXEoc2ssIHRoLT5zb3VyY2UsIGlwaC0+c2FkZHIsIGlwaC0+ ZGFkZHIpOwogCWlmIChyZXEpIHsKIAkJbnNrID0gdGNwX2NoZWNrX3JlcShzaywgc2tiLCByZXEs IGZhbHNlKTsKLQkJaWYgKCFuc2spCisJCWlmICghbnNrIHx8IG5zayA9PSBzaykKIAkJCXJlcXNr X3B1dChyZXEpOwogCQlyZXR1cm4gbnNrOwogCX0KZGlmZiAtLWdpdCBhL25ldC9pcHY2L3RjcF9p cHY2LmMgYi9uZXQvaXB2Ni90Y3BfaXB2Ni5jCmluZGV4IDNhZGZmYjMuLmU1NDFkNjggMTAwNjQ0 Ci0tLSBhL25ldC9pcHY2L3RjcF9pcHY2LmMKKysrIGIvbmV0L2lwdjYvdGNwX2lwdjYuYwpAQCAt OTQ2LDcgKzk0Niw3IEBAIHN0YXRpYyBzdHJ1Y3Qgc29jayAqdGNwX3Y2X2huZF9yZXEoc3RydWN0 IHNvY2sgKnNrLCBzdHJ1Y3Qgc2tfYnVmZiAqc2tiKQogCQkJCSAgICZpcHY2X2hkcihza2IpLT5k YWRkciwgdGNwX3Y2X2lpZihza2IpKTsKIAlpZiAocmVxKSB7CiAJCW5zayA9IHRjcF9jaGVja19y ZXEoc2ssIHNrYiwgcmVxLCBmYWxzZSk7Ci0JCWlmICghbnNrKQorCQlpZiAoIW5zayB8fCBuc2sg PT0gc2spCiAJCQlyZXFza19wdXQocmVxKTsKIAkJcmV0dXJuIG5zazsKIAl9Ci0tIAoyLjEuMAoK CkZyb20gNTcxMmNjOWZhNjRhNTFiMDViYWExZmExZTdhNTZlOTExYWQ0N2UzZSBNb24gU2VwIDE3 IDAwOjAwOjAwIDIwMDEKRnJvbTogRXJpYyBEdW1hemV0IDxlZHVtYXpldEBnb29nbGUuY29tPgpE YXRlOiBNb24sIDEwIEF1ZyAyMDE1IDA5OjA5OjEzIC0wNzAwClN1YmplY3Q6IFtQQVRDSCA0NC80 Nl0gaW5ldDogZml4IHJhY2VzIHdpdGggcmVxc2sgdGltZXJzCgpbIFVwc3RyZWFtIGNvbW1pdCAy MjM1ZjJhYzc1ZmQyNTAxYzI1MWIwYjY5OWE5NjMyZTgwMjM5YTZkIF0KCnJlcXNrX3F1ZXVlX2Rl c3Ryb3koKSBhbmQgcmVxc2tfcXVldWVfdW5saW5rKCkgc2hvdWxkIHVzZQpkZWxfdGltZXJfc3lu YygpIGluc3RlYWQgb2YgZGVsX3RpbWVyKCkgYmVmb3JlIGNhbGxpbmcgcmVxc2tfcHV0KCksCm90 aGVyd2lzZSB3ZSBjb3VsZCBmcmVlIGEgcmVxIHN0aWxsIHVzZWQgYnkgYW5vdGhlciBjcHUuCgpC dXQgYmVmb3JlIGRvaW5nIHNvLCByZXFza19xdWV1ZV9kZXN0cm95KCkgbXVzdCByZWxlYXNlIHN5 bl93YWl0X2xvY2sKc3BpbmxvY2sgb3IgcmlzayBhIGRlYWQgbG9jaywgYXMgcmVxc2tfdGltZXJf aGFuZGxlcigpIG1pZ2h0Cm5lZWQgdG8gdGFrZSB0aGlzIHNhbWUgc3BpbmxvY2sgZnJvbSByZXFz a19xdWV1ZV91bmxpbmsoKSAoY2FsbGVkIGZyb20KaW5ldF9jc2tfcmVxc2tfcXVldWVfZHJvcCgp KQoKRml4ZXM6IGZhNzZjZTczMjhiMiAoImluZXQ6IGdldCByaWQgb2YgY2VudHJhbCB0Y3AvZGNj cCBsaXN0ZW5lciB0aW1lciIpClNpZ25lZC1vZmYtYnk6IEVyaWMgRHVtYXpldCA8ZWR1bWF6ZXRA Z29vZ2xlLmNvbT4KU2lnbmVkLW9mZi1ieTogRGF2aWQgUy4gTWlsbGVyIDxkYXZlbUBkYXZlbWxv ZnQubmV0PgotLS0KIG5ldC9jb3JlL3JlcXVlc3Rfc29jay5jICAgICAgICAgfCA4ICsrKysrKyst CiBuZXQvaXB2NC9pbmV0X2Nvbm5lY3Rpb25fc29jay5jIHwgMiArLQogMiBmaWxlcyBjaGFuZ2Vk LCA4IGluc2VydGlvbnMoKyksIDIgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvbmV0L2NvcmUv cmVxdWVzdF9zb2NrLmMgYi9uZXQvY29yZS9yZXF1ZXN0X3NvY2suYwppbmRleCA4N2IyMmMwLi5i NDJmMGUyIDEwMDY0NAotLS0gYS9uZXQvY29yZS9yZXF1ZXN0X3NvY2suYworKysgYi9uZXQvY29y ZS9yZXF1ZXN0X3NvY2suYwpAQCAtMTAzLDEwICsxMDMsMTYgQEAgdm9pZCByZXFza19xdWV1ZV9k ZXN0cm95KHN0cnVjdCByZXF1ZXN0X3NvY2tfcXVldWUgKnF1ZXVlKQogCQkJc3Bpbl9sb2NrX2Jo KCZxdWV1ZS0+c3luX3dhaXRfbG9jayk7CiAJCQl3aGlsZSAoKHJlcSA9IGxvcHQtPnN5bl90YWJs ZVtpXSkgIT0gTlVMTCkgewogCQkJCWxvcHQtPnN5bl90YWJsZVtpXSA9IHJlcS0+ZGxfbmV4dDsK KwkJCQkvKiBCZWNhdXNlIG9mIGZvbGxvd2luZyBkZWxfdGltZXJfc3luYygpLAorCQkJCSAqIHdl IG11c3QgcmVsZWFzZSB0aGUgc3BpbmxvY2sgaGVyZQorCQkJCSAqIG9yIHJpc2sgYSBkZWFkIGxv Y2suCisJCQkJICovCisJCQkJc3Bpbl91bmxvY2tfYmgoJnF1ZXVlLT5zeW5fd2FpdF9sb2NrKTsK IAkJCQlhdG9taWNfaW5jKCZsb3B0LT5xbGVuX2RlYyk7Ci0JCQkJaWYgKGRlbF90aW1lcigmcmVx LT5yc2tfdGltZXIpKQorCQkJCWlmIChkZWxfdGltZXJfc3luYygmcmVxLT5yc2tfdGltZXIpKQog CQkJCQlyZXFza19wdXQocmVxKTsKIAkJCQlyZXFza19wdXQocmVxKTsKKwkJCQlzcGluX2xvY2tf YmgoJnF1ZXVlLT5zeW5fd2FpdF9sb2NrKTsKIAkJCX0KIAkJCXNwaW5fdW5sb2NrX2JoKCZxdWV1 ZS0+c3luX3dhaXRfbG9jayk7CiAJCX0KZGlmZiAtLWdpdCBhL25ldC9pcHY0L2luZXRfY29ubmVj dGlvbl9zb2NrLmMgYi9uZXQvaXB2NC9pbmV0X2Nvbm5lY3Rpb25fc29jay5jCmluZGV4IDg5NzZj YTQuLmIyN2ZjNDAgMTAwNjQ0Ci0tLSBhL25ldC9pcHY0L2luZXRfY29ubmVjdGlvbl9zb2NrLmMK KysrIGIvbmV0L2lwdjQvaW5ldF9jb25uZWN0aW9uX3NvY2suYwpAQCAtNTg0LDcgKzU4NCw3IEBA IHN0YXRpYyBib29sIHJlcXNrX3F1ZXVlX3VubGluayhzdHJ1Y3QgcmVxdWVzdF9zb2NrX3F1ZXVl ICpxdWV1ZSwKIAl9CiAKIAlzcGluX3VubG9jaygmcXVldWUtPnN5bl93YWl0X2xvY2spOwotCWlm IChkZWxfdGltZXIoJnJlcS0+cnNrX3RpbWVyKSkKKwlpZiAoZGVsX3RpbWVyX3N5bmMoJnJlcS0+ cnNrX3RpbWVyKSkKIAkJcmVxc2tfcHV0KHJlcSk7CiAJcmV0dXJuIGZvdW5kOwogfQotLSAKMi4x LjAKCgpGcm9tIDZmNTA4N2U0MmExZDliMmViYjczNDBlZWVhOTQ4Yjk1MjRlNTQ4NjIgTW9uIFNl cCAxNyAwMDowMDowMCAyMDAxCkZyb206IEZsb3JpYW4gRmFpbmVsbGkgPGYuZmFpbmVsbGlAZ21h aWwuY29tPgpEYXRlOiBTYXQsIDggQXVnIDIwMTUgMTI6NTg6NTcgLTA3MDAKU3ViamVjdDogW1BB VENIIDQ1LzQ2XSBuZXQ6IGRzYTogRG8gbm90IG92ZXJyaWRlIFBIWSBpbnRlcmZhY2UgaWYgYWxy ZWFkeQogY29uZmlndXJlZAoKWyBVcHN0cmVhbSBjb21taXQgMjExYzUwNGE0NDQ3MTBiMWQ4Y2Uz NDMxYWMxOWYyNTc4NjAyY2EyNyBdCgpJbiBjYXNlIHdlIG5lZWQgdG8gZGl2ZXJ0IHJlYWRzL3dy aXRlcyB1c2luZyB0aGUgc2xhdmUgTUlJIGJ1cywgd2UgbWF5IGhhdmUKYWxyZWFkeSBmZXRjaGVk IGEgdmFsaWQgUEhZIGludGVyZmFjZSBwcm9wZXJ0eSBmcm9tIERldmljZSBUcmVlLCBhbmQgdGhh dAptb2RlIGlzIHVzZWQgYnkgdGhlIFBIWSBkcml2ZXIgdG8gbWFrZSBjb25maWd1cmF0aW9uIGRl Y2lzaW9ucy4KCklmIHdlIGNvdWxkIG5vdCBmZXRjaCB0aGUgInBoeS1tb2RlIiBwcm9wZXJ0eSwg d2Ugd2lsbCBhc3NpZ24gcC0+cGh5X2ludGVyZmFjZQp0byBQSFlfSU5URVJGQUNFX01PREVfTkEs IHN1Y2ggdGhhdCB3ZSBjYW4gYWN0dWFsbHkgY2hlY2sgZm9yIHRoYXQgY29uZGl0aW9uIGFzCnRv IHdoZXRoZXIgb3Igbm90IHdlIHNob3VsZCBvdmVycmlkZSB0aGUgaW50ZXJmYWNlIHZhbHVlLgoK Rml4ZXM6IDE5MzM0OTIwZWFmNyAoIm5ldDogZHNhOiBTZXQgdmFsaWQgcGh5IGludGVyZmFjZSB0 eXBlIikKU2lnbmVkLW9mZi1ieTogRmxvcmlhbiBGYWluZWxsaSA8Zi5mYWluZWxsaUBnbWFpbC5j b20+ClNpZ25lZC1vZmYtYnk6IERhdmlkIFMuIE1pbGxlciA8ZGF2ZW1AZGF2ZW1sb2Z0Lm5ldD4K LS0tCiBuZXQvZHNhL3NsYXZlLmMgfCAzICsrLQogMSBmaWxlIGNoYW5nZWQsIDIgaW5zZXJ0aW9u cygrKSwgMSBkZWxldGlvbigtKQoKZGlmZiAtLWdpdCBhL25ldC9kc2Evc2xhdmUuYyBiL25ldC9k c2Evc2xhdmUuYwppbmRleCA4MjdjZGE1Ni4uNTc5NzhjNSAxMDA2NDQKLS0tIGEvbmV0L2RzYS9z bGF2ZS5jCisrKyBiL25ldC9kc2Evc2xhdmUuYwpAQCAtNzMyLDcgKzczMiw4IEBAIHN0YXRpYyBp bnQgZHNhX3NsYXZlX3BoeV9jb25uZWN0KHN0cnVjdCBkc2Ffc2xhdmVfcHJpdiAqcCwKIAkJcmV0 dXJuIC1FTk9ERVY7CiAKIAkvKiBVc2UgYWxyZWFkeSBjb25maWd1cmVkIHBoeSBtb2RlICovCi0J cC0+cGh5X2ludGVyZmFjZSA9IHAtPnBoeS0+aW50ZXJmYWNlOworCWlmIChwLT5waHlfaW50ZXJm YWNlID09IFBIWV9JTlRFUkZBQ0VfTU9ERV9OQSkKKwkJcC0+cGh5X2ludGVyZmFjZSA9IHAtPnBo eS0+aW50ZXJmYWNlOwogCXBoeV9jb25uZWN0X2RpcmVjdChzbGF2ZV9kZXYsIHAtPnBoeSwgZHNh X3NsYXZlX2FkanVzdF9saW5rLAogCQkJICAgcC0+cGh5X2ludGVyZmFjZSk7CiAKLS0gCjIuMS4w CgoKRnJvbSA3NWVlZmVkNGZlZDBmZDYzMDU1NjE0NGVlZGNmZWQ3ZTAxN2NhOTZhIE1vbiBTZXAg MTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBBbmR5IFdoaXRjcm9mdCA8YXB3QGNhbm9uaWNhbC5jb20+ CkRhdGU6IFRodSwgMTMgQXVnIDIwMTUgMjA6NDk6MDEgKzAxMDAKU3ViamVjdDogW1BBVENIIDQ2 LzQ2XSBpcHY0OiBvZmYtYnktb25lIGluIGNvbnRpbnVhdGlvbiBoYW5kbGluZyBpbgogL3Byb2Mv bmV0L3JvdXRlCgpbIFVwc3RyZWFtIGNvbW1pdCAyNWI5N2MwMTZiMjYwMzk5ODJkYWFhMmMxMWQ4 Mzk3OWY5M2I3MWFiIF0KCldoZW4gZ2VuZXJhdGluZyAvcHJvYy9uZXQvcm91dGUgd2UgZW1pdCBh IGhlYWRlciBmb2xsb3dlZCBieSBhIGxpbmUgZm9yCmVhY2ggcm91dGUuICBXaGVuIGEgc2hvcnQg cmVhZCBpcyBwZXJmb3JtZWQgd2Ugd2lsbCByZXN0YXJ0IHRoaXMgcHJvY2VzcwpiYXNlZCBvbiB0 aGUgb3BlbiBmaWxlIGRlc2NyaXB0b3IuICBXaGVuIGNhbGN1bGF0aW5nIHRoZSBzdGFydCBwb2lu dCB3ZQpmYWlsIHRvIHRha2UgaW50byBhY2NvdW50IHRoYXQgdGhlIDB0aCBlbnRyeSBpcyB0aGUg aGVhZGVyLiAgVGhpcyBsZWFkcwp1cyB0byBza2lwIHRoZSBmaXJzdCBlbnRyeSB3aGVuIGRvaW5n IGEgY29udGludWF0aW9uIHJlYWQuCgpUaGlzIGNhbiBiZSBlYXNpbHkgc2VlbiB3aXRoIHRoZSBj b21wYXJpc29uIGJlbG93OgoKICB3aGlsZSByZWFkIGw7IGRvIGVjaG8gIiRsIjsgZG9uZSA8L3By b2MvbmV0L3JvdXRlID5BCiAgY2F0IC9wcm9jL25ldC9yb3V0ZSA+QgogIGRpZmYgLWJ1IEEgQiB8 IGdyZXAgJ15bKy1dJwoKT24gbXkgZXhhbXBsZSBtYWNoaW5lIEkgaGF2ZSBhcHByb3hpbWF0bHkg MTBLQiBvZiByb3V0ZSBvdXRwdXQuICBUaGVyZSB3ZQpzZWUgdGhlIHZlcnkgZmlyc3Qgbm9uLXRp dGxlIGVsZW1lbnQgaXMgbG9zdCBpbiB0aGUgd2hpbGUgcmVhZCBjYXNlLAphbmQgYW4gZW50cnkg YXJvdW5kIHRoZSA4SyBtYXJrIGluIHRoZSBjYXQgY2FzZToKCiAgK3dsYW4wIDAwMDAwMDAwIDAy MDIxRUFDIDAwMDMgMCAwIDQwMCAwMDAwMDAwMCAwIDAgMAogIC10dW4xICAwMEMwQUMwQSAwMDAw MDAwMCAwMDAxIDAgMCA5NTAgMDBDMEZGRkYgMCAwIDAKCkZpeCB1cCB0aGUgb2ZmLWJ5LW9uZSB3 aGVuIHJlYXF1aXJpbmcgcG9zaXRpb24gb24gY29udGludWF0aW9uLgoKRml4ZXM6IDhiZTMzZTk1 NWNiOSAoImZpYl90cmllOiBGaWIgd2FsayByY3Ugc2hvdWxkIHRha2UgYSB0bm9kZSBhbmQga2V5 IGluc3RlYWQgb2YgYSB0cmllIGFuZCBhIGxlYWYiKQpCdWdMaW5rOiBodHRwOi8vYnVncy5sYXVu Y2hwYWQubmV0L2J1Z3MvMTQ4MzQ0MApBY2tlZC1ieTogQWxleGFuZGVyIER1eWNrIDxhbGV4YW5k ZXIuaC5kdXlja0ByZWRoYXQuY29tPgpTaWduZWQtb2ZmLWJ5OiBBbmR5IFdoaXRjcm9mdCA8YXB3 QGNhbm9uaWNhbC5jb20+ClNpZ25lZC1vZmYtYnk6IERhdmlkIFMuIE1pbGxlciA8ZGF2ZW1AZGF2 ZW1sb2Z0Lm5ldD4KLS0tCiBuZXQvaXB2NC9maWJfdHJpZS5jIHwgMiArLQogMSBmaWxlIGNoYW5n ZWQsIDEgaW5zZXJ0aW9uKCspLCAxIGRlbGV0aW9uKC0pCgpkaWZmIC0tZ2l0IGEvbmV0L2lwdjQv ZmliX3RyaWUuYyBiL25ldC9pcHY0L2ZpYl90cmllLmMKaW5kZXggMjEwY2VjYS4uMGNhOTMzZCAx MDA2NDQKLS0tIGEvbmV0L2lwdjQvZmliX3RyaWUuYworKysgYi9uZXQvaXB2NC9maWJfdHJpZS5j CkBAIC0yNDUzLDcgKzI0NTMsNyBAQCBzdGF0aWMgc3RydWN0IGtleV92ZWN0b3IgKmZpYl9yb3V0 ZV9nZXRfaWR4KHN0cnVjdCBmaWJfcm91dGVfaXRlciAqaXRlciwKIAkJa2V5ID0gbC0+a2V5ICsg MTsKIAkJaXRlci0+cG9zKys7CiAKLQkJaWYgKHBvcy0tIDw9IDApCisJCWlmICgtLXBvcyA8PSAw KQogCQkJYnJlYWs7CiAKIAkJbCA9IE5VTEw7Ci0tIAoyLjEuMAoK ----Next_Part(Wed_Aug_26_23_05_12_2015_145)----