From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from shards.monkeyblade.net ([184.105.139.130]:58138 "EHLO shards.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1751105AbdE3XOT (ORCPT ); Tue, 30 May 2017 19:14:19 -0400 Received: from localhost (cpe-66-108-81-97.nyc.res.rr.com [66.108.81.97]) (using TLSv1 with cipher AES256-SHA (256/256 bits)) (Client did not present a certificate) (Authenticated sender: davem-davemloft) by shards.monkeyblade.net (Postfix) with ESMTPSA id CF599122F0CCA for ; Tue, 30 May 2017 15:32:39 -0700 (PDT) Date: Tue, 30 May 2017 19:14:13 -0400 (EDT) Message-Id: <20170530.191413.1877604214095989911.davem@davemloft.net> To: stable@vger.kernel.org Subject: [PATCHES] Networking From: David Miller Mime-Version: 1.0 Content-Type: Multipart/Mixed; boundary="--Next_Part(Tue_May_30_19_14_13_2017_543)--" Content-Transfer-Encoding: 7bit Sender: stable-owner@vger.kernel.org List-ID: ----Next_Part(Tue_May_30_19_14_13_2017_543)-- Content-Type: Text/Plain; charset=us-ascii Content-Transfer-Encoding: 7bit Please queue up the following networking bug fixes for v4.9 and v4.11 -stable, respectively. Thanks! ----Next_Part(Tue_May_30_19_14_13_2017_543)-- Content-Type: Application/Octet-Stream Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="net_490.mbox" RnJvbSAyY2EwNTIyNjNjNzJhYWU3M2VlMmM2MGJkYWNlZTYzYWM3MTE3ZmYzIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBFcmljIER1bWF6ZXQgPGVkdW1hemV0QGdvb2dsZS5jb20+CkRh dGU6IFR1ZSwgOSBNYXkgMjAxNyAwNjoyOToxOSAtMDcwMApTdWJqZWN0OiBbUEFUQ0ggMDEvMzRd IGRjY3AvdGNwOiBkbyBub3QgaW5oZXJpdCBtY19saXN0IGZyb20gcGFyZW50CgpbIFVwc3RyZWFt IGNvbW1pdCA2NTc4MzFmZmMzOGUzMDA5MmEyZDVmMDNkMzg1ZDcxMGViODhiMDlhIF0KCnN5emth bGxlciBmb3VuZCBhIHdheSB0byB0cmlnZ2VyIGRvdWJsZSBmcmVlcyBmcm9tIGlwX21jX2Ryb3Bf c29ja2V0KCkKCkl0IHR1cm5zIG91dCB0aGF0IGxlYXZlIGEgY29weSBvZiBwYXJlbnQgbWNfbGlz dCBhdCBhY2NlcHQoKSB0aW1lLAp3aGljaCBpcyB2ZXJ5IGJhZC4KClZlcnkgc2ltaWxhciB0byBj b21taXQgOGI0ODVjZTY5ODc2ICgidGNwOiBkbyBub3QgaW5oZXJpdApmYXN0b3Blbl9yZXEgZnJv bSBwYXJlbnQiKQoKSW5pdGlhbCByZXBvcnQgZnJvbSBQcmF5M3IsIGNvbXBsZXRlZCBieSBBbmRy ZXkgb25lLgpUaGFua3MgYSBsb3QgdG8gdGhlbSAhCgpTaWduZWQtb2ZmLWJ5OiBFcmljIER1bWF6 ZXQgPGVkdW1hemV0QGdvb2dsZS5jb20+ClJlcG9ydGVkLWJ5OiBQcmF5M3IgPHByYXkzci56QGdt YWlsLmNvbT4KUmVwb3J0ZWQtYnk6IEFuZHJleSBLb25vdmFsb3YgPGFuZHJleWtudmxAZ29vZ2xl LmNvbT4KVGVzdGVkLWJ5OiBBbmRyZXkgS29ub3ZhbG92IDxhbmRyZXlrbnZsQGdvb2dsZS5jb20+ ClNpZ25lZC1vZmYtYnk6IERhdmlkIFMuIE1pbGxlciA8ZGF2ZW1AZGF2ZW1sb2Z0Lm5ldD4KLS0t CiBuZXQvaXB2NC9pbmV0X2Nvbm5lY3Rpb25fc29jay5jIHwgMiArKwogMSBmaWxlIGNoYW5nZWQs IDIgaW5zZXJ0aW9ucygrKQoKZGlmZiAtLWdpdCBhL25ldC9pcHY0L2luZXRfY29ubmVjdGlvbl9z b2NrLmMgYi9uZXQvaXB2NC9pbmV0X2Nvbm5lY3Rpb25fc29jay5jCmluZGV4IDYxYTlkZWUuLmNm M2Q1NjcgMTAwNjQ0Ci0tLSBhL25ldC9pcHY0L2luZXRfY29ubmVjdGlvbl9zb2NrLmMKKysrIGIv bmV0L2lwdjQvaW5ldF9jb25uZWN0aW9uX3NvY2suYwpAQCAtNjY1LDYgKzY2NSw4IEBAIHN0cnVj dCBzb2NrICppbmV0X2Nza19jbG9uZV9sb2NrKGNvbnN0IHN0cnVjdCBzb2NrICpzaywKIAkJLyog bGlzdGVuZXJzIGhhdmUgU09DS19SQ1VfRlJFRSwgbm90IHRoZSBjaGlsZHJlbiAqLwogCQlzb2Nr X3Jlc2V0X2ZsYWcobmV3c2ssIFNPQ0tfUkNVX0ZSRUUpOwogCisJCWluZXRfc2sobmV3c2spLT5t Y19saXN0ID0gTlVMTDsKKwogCQluZXdzay0+c2tfbWFyayA9IGluZXRfcnNrKHJlcSktPmlyX21h cms7CiAJCWF0b21pYzY0X3NldCgmbmV3c2stPnNrX2Nvb2tpZSwKIAkJCSAgICAgYXRvbWljNjRf cmVhZCgmaW5ldF9yc2socmVxKS0+aXJfY29va2llKSk7Ci0tIAoyLjkuNAoKCkZyb20gMjg2Njk4 ZjBlNDRjMmI3NTM2ZGI0YmFhMWQxNmVhMDFlZDgyM2U1OSBNb24gU2VwIDE3IDAwOjAwOjAwIDIw MDEKRnJvbTogR2FvIEZlbmcgPGdmcmVlLndpbmRAdmlwLjE2My5jb20+CkRhdGU6IFR1ZSwgOSBN YXkgMjAxNyAxODoyNzozMyArMDgwMApTdWJqZWN0OiBbUEFUQ0ggMDIvMzRdIGRyaXZlcjogdnJm OiBGaXggb25lIHBvc3NpYmxlIHVzZS1hZnRlci1mcmVlIGlzc3VlCgpbIFVwc3RyZWFtIGNvbW1p dCAxYTRhNWJmNTJhNGFkYjQ3N2FkYjA3NWU1YWZjZTkyNTgyNGFkMTMyIF0KClRoZSBjdXJyZW50 IGNvZGVzIG9ubHkgZGVhbCB3aXRoIHRoZSBjYXNlIHRoYXQgdGhlIHNrYiBpcyBkcm9wcGVkLCBp dAptYXkgbWVldCBvbmUgdXNlLWFmdGVyLWZyZWUgaXNzdWUgd2hlbiBORl9IT09LIHJldHVybnMg MCB0aGF0IG1lYW5zCnRoZSBza2IgaXMgc3RvbGVuIGJ5IG9uZSBuZXRmaWx0ZXIgcnVsZSBvciBo b29rLgoKV2hlbiBvbmUgbmV0ZmlsdGVyIHJ1bGUgb3IgaG9vayBzdG9sZXMgdGhlIHNrYiBhbmQg cmV0dXJuIE5GX1NUT0xFTiwKaXQgbWVhbnMgdGhlIHNrYiBpcyB0YWtlbiBieSB0aGUgcnVsZSwg YW5kIG90aGVyIG1vZHVsZXMgc2hvdWxkIG5vdAp0b3VjaCB0aGlzIHNrYiBldmVyLiBNYXliZSB0 aGUgc2tiIGlzIHF1ZXVlZCBvciBmcmVlZCBkaXJlY3RseSBieSB0aGUKcnVsZS4KCk5vdyB1c2Vz IHRoZSBuZl9ob29rIGluc3RlYWQgb2YgTkZfSE9PSyB0byBnZXQgdGhlIHJlc3VsdCBvZiBuZXRm aWx0ZXIsCmFuZCBjaGVjayB0aGUgcmV0dXJuIHZhbHVlIG9mIG5mX2hvb2suIE9ubHkgd2hlbiBp dHMgdmFsdWUgZXF1YWxzIDEsIGl0Cm1lYW5zIHRoZSBza2IgY291bGQgZ28gYWhlYWQuIE9yIHJl c2V0IHRoZSBza2IgYXMgTlVMTC4KCkJUVywgYmVjYXVzZSB2cmZfcmN2X2ZpbmlzaCBpcyBlbXB0 eSBmdW5jdGlvbiwgc28gbmVlZG4ndCBpbnZva2UgaXQKZXZlbiB0aG91Z2ggbmZfaG9vayByZXR1 cm5zIDEuIEJ1dCB3ZSBuZWVkIHRvIG1vZGlmeSB2cmZfcmN2X2ZpbmlzaAp0byBkZWFsIHdpdGgg dGhlIE5GX1NUT0xFTiBjYXNlLgoKVGhlcmUgYXJlIHR3byBjYXNlcyB3aGVuIHNrYiBpcyBzdG9s ZW4uCjEuIFRoZSBza2IgaXMgc3RvbGVuIGFuZCBmcmVlZCBkaXJlY3RseS4KICAgVGhlcmUgaXMg bm90aGluZyB3ZSBuZWVkIHRvIGRvLCBhbmQgdnJmX3Jjdl9maW5pc2ggaXNuJ3QgaW52b2tlZC4K Mi4gVGhlIHNrYiBpcyBxdWV1ZWQgYW5kIHJlaW5qZWN0ZWQgYWdhaW4uCiAgIFRoZSB2cmZfcmN2 X2ZpbmlzaCB3b3VsZCBiZSBpbnZva2VkIGFzIG9rZm4sIHNvIG5lZWQgdG8gZnJlZSB0aGUKICAg c2tiIGluIGl0LgoKU2lnbmVkLW9mZi1ieTogR2FvIEZlbmcgPGdmcmVlLndpbmRAdmlwLjE2My5j b20+ClNpZ25lZC1vZmYtYnk6IERhdmlkIFMuIE1pbGxlciA8ZGF2ZW1AZGF2ZW1sb2Z0Lm5ldD4K LS0tCiBkcml2ZXJzL25ldC92cmYuYyB8IDMgKystCiAxIGZpbGUgY2hhbmdlZCwgMiBpbnNlcnRp b25zKCspLCAxIGRlbGV0aW9uKC0pCgpkaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvdnJmLmMgYi9k cml2ZXJzL25ldC92cmYuYwppbmRleCA4MGVmNDg2Li5lZTAyNjA1IDEwMDY0NAotLS0gYS9kcml2 ZXJzL25ldC92cmYuYworKysgYi9kcml2ZXJzL25ldC92cmYuYwpAQCAtODUwLDYgKzg1MCw3IEBA IHN0YXRpYyB1MzIgdnJmX2ZpYl90YWJsZShjb25zdCBzdHJ1Y3QgbmV0X2RldmljZSAqZGV2KQog CiBzdGF0aWMgaW50IHZyZl9yY3ZfZmluaXNoKHN0cnVjdCBuZXQgKm5ldCwgc3RydWN0IHNvY2sg KnNrLCBzdHJ1Y3Qgc2tfYnVmZiAqc2tiKQogeworCWtmcmVlX3NrYihza2IpOwogCXJldHVybiAw OwogfQogCkBAIC04NTksNyArODYwLDcgQEAgc3RhdGljIHN0cnVjdCBza19idWZmICp2cmZfcmN2 X25maG9vayh1OCBwZiwgdW5zaWduZWQgaW50IGhvb2ssCiB7CiAJc3RydWN0IG5ldCAqbmV0ID0g ZGV2X25ldChkZXYpOwogCi0JaWYgKE5GX0hPT0socGYsIGhvb2ssIG5ldCwgTlVMTCwgc2tiLCBk ZXYsIE5VTEwsIHZyZl9yY3ZfZmluaXNoKSA8IDApCisJaWYgKG5mX2hvb2socGYsIGhvb2ssIG5l dCwgTlVMTCwgc2tiLCBkZXYsIE5VTEwsIHZyZl9yY3ZfZmluaXNoKSAhPSAxKQogCQlza2IgPSBO VUxMOyAgICAvKiBrZnJlZV9za2Ioc2tiKSBoYW5kbGVkIGJ5IG5mIGNvZGUgKi8KIAogCXJldHVy biBza2I7Ci0tIAoyLjkuNAoKCkZyb20gMzQ2MzhkYjk2MDg2M2NhNDllNGNmYWRmM2QwYjExZjU1 ZTkwMTRhOSBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJvbTogV0FORyBDb25nIDx4aXlvdS53 YW5nY29uZ0BnbWFpbC5jb20+CkRhdGU6IFR1ZSwgOSBNYXkgMjAxNyAxNjo1OTo1NCAtMDcwMApT dWJqZWN0OiBbUEFUQ0ggMDMvMzRdIGlwdjYvZGNjcDogZG8gbm90IGluaGVyaXQgaXB2Nl9tY19s aXN0IGZyb20gcGFyZW50CgpbIFVwc3RyZWFtIGNvbW1pdCA4M2VhZGRhYjQzNzhkYjI1NmQwMGQy OTViZGE2Y2E5OTdjZDEzYTUyIF0KCkxpa2UgY29tbWl0IDY1NzgzMWZmYzM4ZSAoImRjY3AvdGNw OiBkbyBub3QgaW5oZXJpdCBtY19saXN0IGZyb20gcGFyZW50IikKd2Ugc2hvdWxkIGNsZWFyIGlw djZfbWNfbGlzdCBldGMuIGZvciBJUHY2IHNvY2tldHMgdG9vLgoKQ2M6IEVyaWMgRHVtYXpldCA8 ZWR1bWF6ZXRAZ29vZ2xlLmNvbT4KU2lnbmVkLW9mZi1ieTogQ29uZyBXYW5nIDx4aXlvdS53YW5n Y29uZ0BnbWFpbC5jb20+CkFja2VkLWJ5OiBFcmljIER1bWF6ZXQgPGVkdW1hemV0QGdvb2dsZS5j b20+ClNpZ25lZC1vZmYtYnk6IERhdmlkIFMuIE1pbGxlciA8ZGF2ZW1AZGF2ZW1sb2Z0Lm5ldD4K LS0tCiBuZXQvZGNjcC9pcHY2LmMgICAgIHwgNiArKysrKysKIG5ldC9pcHY2L3RjcF9pcHY2LmMg fCAyICsrCiAyIGZpbGVzIGNoYW5nZWQsIDggaW5zZXJ0aW9ucygrKQoKZGlmZiAtLWdpdCBhL25l dC9kY2NwL2lwdjYuYyBiL25ldC9kY2NwL2lwdjYuYwppbmRleCAyMzdkNjJjLi4yYWM5ZDJhIDEw MDY0NAotLS0gYS9uZXQvZGNjcC9pcHY2LmMKKysrIGIvbmV0L2RjY3AvaXB2Ni5jCkBAIC00MjYs NiArNDI2LDkgQEAgc3RhdGljIHN0cnVjdCBzb2NrICpkY2NwX3Y2X3JlcXVlc3RfcmVjdl9zb2Nr KGNvbnN0IHN0cnVjdCBzb2NrICpzaywKIAkJbmV3c2stPnNrX2JhY2tsb2dfcmN2ID0gZGNjcF92 NF9kb19yY3Y7CiAJCW5ld25wLT5wa3RvcHRpb25zICA9IE5VTEw7CiAJCW5ld25wLT5vcHQJICAg PSBOVUxMOworCQluZXducC0+aXB2Nl9tY19saXN0ID0gTlVMTDsKKwkJbmV3bnAtPmlwdjZfYWNf bGlzdCA9IE5VTEw7CisJCW5ld25wLT5pcHY2X2ZsX2xpc3QgPSBOVUxMOwogCQluZXducC0+bWNh c3Rfb2lmICAgPSBpbmV0Nl9paWYoc2tiKTsKIAkJbmV3bnAtPm1jYXN0X2hvcHMgID0gaXB2Nl9o ZHIoc2tiKS0+aG9wX2xpbWl0OwogCkBAIC00OTAsNiArNDkzLDkgQEAgc3RhdGljIHN0cnVjdCBz b2NrICpkY2NwX3Y2X3JlcXVlc3RfcmVjdl9zb2NrKGNvbnN0IHN0cnVjdCBzb2NrICpzaywKIAkv KiBDbG9uZSBSWCBiaXRzICovCiAJbmV3bnAtPnJ4b3B0LmFsbCA9IG5wLT5yeG9wdC5hbGw7CiAK KwluZXducC0+aXB2Nl9tY19saXN0ID0gTlVMTDsKKwluZXducC0+aXB2Nl9hY19saXN0ID0gTlVM TDsKKwluZXducC0+aXB2Nl9mbF9saXN0ID0gTlVMTDsKIAluZXducC0+cGt0b3B0aW9ucyA9IE5V TEw7CiAJbmV3bnAtPm9wdAkgID0gTlVMTDsKIAluZXducC0+bWNhc3Rfb2lmICA9IGluZXQ2X2lp Zihza2IpOwpkaWZmIC0tZ2l0IGEvbmV0L2lwdjYvdGNwX2lwdjYuYyBiL25ldC9pcHY2L3RjcF9p cHY2LmMKaW5kZXggYjJlNjFhMC4uYWVmOWIyOCAxMDA2NDQKLS0tIGEvbmV0L2lwdjYvdGNwX2lw djYuYworKysgYi9uZXQvaXB2Ni90Y3BfaXB2Ni5jCkBAIC0xMDQ2LDYgKzEwNDYsNyBAQCBzdGF0 aWMgc3RydWN0IHNvY2sgKnRjcF92Nl9zeW5fcmVjdl9zb2NrKGNvbnN0IHN0cnVjdCBzb2NrICpz aywgc3RydWN0IHNrX2J1ZmYgKgogCQluZXd0cC0+YWZfc3BlY2lmaWMgPSAmdGNwX3NvY2tfaXB2 Nl9tYXBwZWRfc3BlY2lmaWM7CiAjZW5kaWYKIAorCQluZXducC0+aXB2Nl9tY19saXN0ID0gTlVM TDsKIAkJbmV3bnAtPmlwdjZfYWNfbGlzdCA9IE5VTEw7CiAJCW5ld25wLT5pcHY2X2ZsX2xpc3Qg PSBOVUxMOwogCQluZXducC0+cGt0b3B0aW9ucyAgPSBOVUxMOwpAQCAtMTExNSw2ICsxMTE2LDcg QEAgc3RhdGljIHN0cnVjdCBzb2NrICp0Y3BfdjZfc3luX3JlY3Zfc29jayhjb25zdCBzdHJ1Y3Qg c29jayAqc2ssIHN0cnVjdCBza19idWZmICoKIAkgICBGaXJzdDogbm8gSVB2NCBvcHRpb25zLgog CSAqLwogCW5ld2luZXQtPmluZXRfb3B0ID0gTlVMTDsKKwluZXducC0+aXB2Nl9tY19saXN0ID0g TlVMTDsKIAluZXducC0+aXB2Nl9hY19saXN0ID0gTlVMTDsKIAluZXducC0+aXB2Nl9mbF9saXN0 ID0gTlVMTDsKIAotLSAKMi45LjQKCgpGcm9tIGExODhmZDRhOWEzNTkxNDZmZGI0YzU3YjEzYWNj NTY4MDBkMGVjMDUgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCkZyb206IFVyc3VsYSBCcmF1biA8 dWJyYXVuQGxpbnV4LnZuZXQuaWJtLmNvbT4KRGF0ZTogV2VkLCAxMCBNYXkgMjAxNyAxOTowNzo1 MSArMDIwMApTdWJqZWN0OiBbUEFUQ0ggMDQvMzRdIHMzOTAvcWV0aDogaGFuZGxlIHN5c2ZzIGVy cm9yIGR1cmluZyBpbml0aWFsaXphdGlvbgoKWyBVcHN0cmVhbSBjb21taXQgOTExMWU3ODgwY2Nm NDE5NTQ4YzdiMDg4N2RmMDIwYjA4ZWFkYjA3NSBdCgpXaGVuIHNldHRpbmcgdXAgdGhlIGRldmlj ZSBmcm9tIHdpdGhpbiB0aGUgbGF5ZXIgZGlzY2lwbGluZSdzCnByb2JlIHJvdXRpbmUsIGNyZWF0 aW5nIHRoZSBsYXllci1zcGVjaWZpYyBzeXNmcyBhdHRyaWJ1dGVzIGNhbiBmYWlsLgpSZXBvcnQg dGhpcyBlcnJvciBiYWNrIHRvIHRoZSBjYWxsZXIsIGFuZCBoYW5kbGUgaXQgYnkKcmVsZWFzaW5n IHRoZSBsYXllciBkaXNjaXBsaW5lLgoKU2lnbmVkLW9mZi1ieTogVXJzdWxhIEJyYXVuIDx1YnJh dW5AbGludXgudm5ldC5pYm0uY29tPgpbandpOiB1cGRhdGVkIGNvbW1pdCBtc2csIG1vdmVkIGFu IE9TTiBjaGFuZ2UgdG8gYSBzdWJzZXF1ZW50IHBhdGNoXQpTaWduZWQtb2ZmLWJ5OiBKdWxpYW4g V2llZG1hbm4gPGp3aUBsaW51eC52bmV0LmlibS5jb20+ClNpZ25lZC1vZmYtYnk6IERhdmlkIFMu IE1pbGxlciA8ZGF2ZW1AZGF2ZW1sb2Z0Lm5ldD4KLS0tCiBkcml2ZXJzL3MzOTAvbmV0L3FldGhf Y29yZV9tYWluLmMgfCA0ICsrKy0KIGRyaXZlcnMvczM5MC9uZXQvcWV0aF9jb3JlX3N5cy5jICB8 IDIgKysKIGRyaXZlcnMvczM5MC9uZXQvcWV0aF9sMl9tYWluLmMgICB8IDUgKysrKy0KIGRyaXZl cnMvczM5MC9uZXQvcWV0aF9sM19tYWluLmMgICB8IDUgKysrKy0KIDQgZmlsZXMgY2hhbmdlZCwg MTMgaW5zZXJ0aW9ucygrKSwgMyBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9kcml2ZXJzL3Mz OTAvbmV0L3FldGhfY29yZV9tYWluLmMgYi9kcml2ZXJzL3MzOTAvbmV0L3FldGhfY29yZV9tYWlu LmMKaW5kZXggMjBjZjI5Ni4uNGJmMWY2MCAxMDA2NDQKLS0tIGEvZHJpdmVycy9zMzkwL25ldC9x ZXRoX2NvcmVfbWFpbi5jCisrKyBiL2RyaXZlcnMvczM5MC9uZXQvcWV0aF9jb3JlX21haW4uYwpA QCAtNTY2Myw4ICs1NjYzLDEwIEBAIHN0YXRpYyBpbnQgcWV0aF9jb3JlX3NldF9vbmxpbmUoc3Ry dWN0IGNjd2dyb3VwX2RldmljZSAqZ2RldikKIAkJaWYgKHJjKQogCQkJZ290byBlcnI7CiAJCXJj ID0gY2FyZC0+ZGlzY2lwbGluZS0+c2V0dXAoY2FyZC0+Z2Rldik7Ci0JCWlmIChyYykKKwkJaWYg KHJjKSB7CisJCQlxZXRoX2NvcmVfZnJlZV9kaXNjaXBsaW5lKGNhcmQpOwogCQkJZ290byBlcnI7 CisJCX0KIAl9CiAJcmMgPSBjYXJkLT5kaXNjaXBsaW5lLT5zZXRfb25saW5lKGdkZXYpOwogZXJy OgpkaWZmIC0tZ2l0IGEvZHJpdmVycy9zMzkwL25ldC9xZXRoX2NvcmVfc3lzLmMgYi9kcml2ZXJz L3MzOTAvbmV0L3FldGhfY29yZV9zeXMuYwppbmRleCA3NWIyOWZkMi4uNDEyZmY2MSAxMDA2NDQK LS0tIGEvZHJpdmVycy9zMzkwL25ldC9xZXRoX2NvcmVfc3lzLmMKKysrIGIvZHJpdmVycy9zMzkw L25ldC9xZXRoX2NvcmVfc3lzLmMKQEAgLTQyNiw2ICs0MjYsOCBAQCBzdGF0aWMgc3NpemVfdCBx ZXRoX2Rldl9sYXllcjJfc3RvcmUoc3RydWN0IGRldmljZSAqZGV2LAogCQlnb3RvIG91dDsKIAog CXJjID0gY2FyZC0+ZGlzY2lwbGluZS0+c2V0dXAoY2FyZC0+Z2Rldik7CisJaWYgKHJjKQorCQlx ZXRoX2NvcmVfZnJlZV9kaXNjaXBsaW5lKGNhcmQpOwogb3V0OgogCW11dGV4X3VubG9jaygmY2Fy ZC0+ZGlzY2lwbGluZV9tdXRleCk7CiAJcmV0dXJuIHJjID8gcmMgOiBjb3VudDsKZGlmZiAtLWdp dCBhL2RyaXZlcnMvczM5MC9uZXQvcWV0aF9sMl9tYWluLmMgYi9kcml2ZXJzL3MzOTAvbmV0L3Fl dGhfbDJfbWFpbi5jCmluZGV4IGJiMjcwNTguLjczMjYwYTQgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMv czM5MC9uZXQvcWV0aF9sMl9tYWluLmMKKysrIGIvZHJpdmVycy9zMzkwL25ldC9xZXRoX2wyX21h aW4uYwpAQCAtMTAyNCw4ICsxMDI0LDExIEBAIHN0YXRpYyBpbnQgcWV0aF9sMl9zdG9wKHN0cnVj dCBuZXRfZGV2aWNlICpkZXYpCiBzdGF0aWMgaW50IHFldGhfbDJfcHJvYmVfZGV2aWNlKHN0cnVj dCBjY3dncm91cF9kZXZpY2UgKmdkZXYpCiB7CiAJc3RydWN0IHFldGhfY2FyZCAqY2FyZCA9IGRl dl9nZXRfZHJ2ZGF0YSgmZ2Rldi0+ZGV2KTsKKwlpbnQgcmM7CiAKLQlxZXRoX2wyX2NyZWF0ZV9k ZXZpY2VfYXR0cmlidXRlcygmZ2Rldi0+ZGV2KTsKKwlyYyA9IHFldGhfbDJfY3JlYXRlX2Rldmlj ZV9hdHRyaWJ1dGVzKCZnZGV2LT5kZXYpOworCWlmIChyYykKKwkJcmV0dXJuIHJjOwogCUlOSVRf TElTVF9IRUFEKCZjYXJkLT52aWRfbGlzdCk7CiAJaGFzaF9pbml0KGNhcmQtPm1hY19odGFibGUp OwogCWNhcmQtPm9wdGlvbnMubGF5ZXIyID0gMTsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvczM5MC9u ZXQvcWV0aF9sM19tYWluLmMgYi9kcml2ZXJzL3MzOTAvbmV0L3FldGhfbDNfbWFpbi5jCmluZGV4 IDI3MmQ5ZTcuLjkzZmEzMzEgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvczM5MC9uZXQvcWV0aF9sM19t YWluLmMKKysrIGIvZHJpdmVycy9zMzkwL25ldC9xZXRoX2wzX21haW4uYwpAQCAtMzE1Nyw4ICsz MTU3LDExIEBAIHN0YXRpYyBpbnQgcWV0aF9sM19zZXR1cF9uZXRkZXYoc3RydWN0IHFldGhfY2Fy ZCAqY2FyZCkKIHN0YXRpYyBpbnQgcWV0aF9sM19wcm9iZV9kZXZpY2Uoc3RydWN0IGNjd2dyb3Vw X2RldmljZSAqZ2RldikKIHsKIAlzdHJ1Y3QgcWV0aF9jYXJkICpjYXJkID0gZGV2X2dldF9kcnZk YXRhKCZnZGV2LT5kZXYpOworCWludCByYzsKIAotCXFldGhfbDNfY3JlYXRlX2RldmljZV9hdHRy aWJ1dGVzKCZnZGV2LT5kZXYpOworCXJjID0gcWV0aF9sM19jcmVhdGVfZGV2aWNlX2F0dHJpYnV0 ZXMoJmdkZXYtPmRldik7CisJaWYgKHJjKQorCQlyZXR1cm4gcmM7CiAJY2FyZC0+b3B0aW9ucy5s YXllcjIgPSAwOwogCWNhcmQtPmluZm8uaHd0cmFwID0gMDsKIAlyZXR1cm4gMDsKLS0gCjIuOS40 CgoKRnJvbSAxNzQ4MmIzMDlmN2RjMWU5YjNkOWI2NDNmYmI1Mzk3ZjlhNGJlYzg5IE1vbiBTZXAg MTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBKdWxpYW4gV2llZG1hbm4gPGp3aUBsaW51eC52bmV0Lmli bS5jb20+CkRhdGU6IFdlZCwgMTAgTWF5IDIwMTcgMTk6MDc6NTIgKzAyMDAKU3ViamVjdDogW1BB VENIIDA1LzM0XSBzMzkwL3FldGg6IHVuYnJlYWsgT1NNIGFuZCBPU04gc3VwcG9ydAoKWyBVcHN0 cmVhbSBjb21taXQgMmQyZWJiM2VkMGM2YWNmYjAxNGY5OGU0MjcyOTg2NzNhNWQwN2I4MiBdCgpj b21taXQgYjRkNzJjMDhiMzU4ICgicWV0aDogYnJpZGdlcG9ydCBzdXBwb3J0IC0gYmFzaWMgY29u dHJvbCIpCmJyb2tlIHRoZSBzdXBwb3J0IGZvciBPU00gYW5kIE9TTiBkZXZpY2VzIGFzIGZvbGxv d3M6CgpBcyBPU00gYW5kIE9TTiBhcmUgTDIgb25seSwgcWV0aF9jb3JlX3Byb2JlX2RldmljZSgp IGRvZXMgYW4gZWFybHkKc2V0dXAgYnkgbG9hZGluZyB0aGUgbDIgZGlzY2lwbGluZSBhbmQgY2Fs bGluZyBxZXRoX2wyX3Byb2JlX2RldmljZSgpLgpJbiB0aGlzIGNvbnRleHQsIGFkZGluZyB0aGUg bDItc3BlY2lmaWMgYnJpZGdlcG9ydCBzeXNmcyBhdHRyaWJ1dGVzCnZpYSBxZXRoX2wyX2NyZWF0 ZV9kZXZpY2VfYXR0cmlidXRlcygpIGhpdHMgYSBCVUdfT04gaW4gZnMvc3lzZnMvZ3JvdXAuYywK c2luY2UgdGhlIGJhc2ljIHN5c2ZzIGluZnJhc3RydWN0dXJlIGZvciB0aGUgZGV2aWNlIGhhc24n dCBiZWVuCmVzdGFibGlzaGVkIHlldC4KCk5vdGUgdGhhdCBPU04gYWN0dWFsbHkgaGFzIGl0cyBv d24gdW5pcXVlIHN5c2ZzIGF0dHJpYnV0ZXMKKHFldGhfb3NuX2RldnR5cGUpLCBzbyB0aGUgYWRk aXRpb25hbCBhdHRyaWJ1dGVzIHNob3VsZG4ndCBiZSBjcmVhdGVkCmF0IGFsbC4KRm9yIE9TTSwg YWRkIGEgbmV3IHFldGhfbDJfZGV2dHlwZSB0aGF0IGNvbnRhaW5zIGFsbCB0aGUgY29tbW9uCmFu ZCBsMi1zcGVjaWZpYyBzeXNmcyBhdHRyaWJ1dGVzLgpXaGVuIHFldGhfY29yZV9wcm9iZV9kZXZp Y2UoKSBkb2VzIGVhcmx5IHNldHVwIGZvciBPU00gb3IgT1NOLCBhc3NpZ24KdGhlIGNvcnJlc3Bv bmRpbmcgZGV2dHlwZSBzbyB0aGF0IHRoZSBjY3dncm91cCBwcm9iZSBjb2RlIGNyZWF0ZXMgdGhl CmZ1bGwgc2V0IG9mIHN5c2ZzIGF0dHJpYnV0ZXMuClRoaXMgYWxsb3dzIHVzIHRvIHNraXAgcWV0 aF9sMl9jcmVhdGVfZGV2aWNlX2F0dHJpYnV0ZXMoKSBpbiBjYXNlCm9mIGFuIGVhcmx5IHNldHVw LgoKQW55IGRldmljZSB0aGF0IGNhbid0IGRvIGVhcmx5IHNldHVwIHdpbGwgaW5pdGlhbGx5IGhh dmUgb25seSB0aGUKZ2VuZXJpYyBzeXNmcyBhdHRyaWJ1dGVzLCBhbmQgd2hlbiBpdCdzIHByb2Jl ZCBsYXRlcgpxZXRoX2wyX3Byb2JlX2RldmljZSgpIGFkZHMgdGhlIGwyLXNwZWNpZmljIGF0dHJp YnV0ZXMuCgpJZiBhbiBlYXJseS1zZXR1cCBkZXZpY2UgaXMgcmVtb3ZlZCAoYnkgY2FsbGluZyBj Y3dncm91cF91bmdyb3VwKCkpLApkZXZpY2VfdW5yZWdpc3RlcigpIHdpbGwgLSB1c2luZyB0aGUg ZGV2dHlwZSAtIGRlbGV0ZSB0aGUKbDItc3BlY2lmaWMgYXR0cmlidXRlcyBiZWZvcmUgcWV0aF9s Ml9yZW1vdmVfZGV2aWNlKCkgaXMgY2FsbGVkLgpTbyBtYWtlIHN1cmUgdG8gbm90IHJlbW92ZSB0 aGVtIHR3aWNlLgoKV2hhdCBjb21wbGljYXRlcyB0aGUgaXNzdWUgaXMgdGhhdCBxZXRoX2wyX3By b2JlX2RldmljZSgpIGFuZApxZXRoX2wyX3JlbW92ZV9kZXZpY2UoKSBpcyBhbHNvIGNhbGxlZCBv biBhIGRldmljZSB3aGVuIGl0cwpsYXllcjIgYXR0cmlidXRlIGNoYW5nZXMgKGllLiBpdHMgbGF5 ZXIgbW9kZSBpcyBzd2l0Y2hlZCkuCkZvciBlYXJseS1zZXR1cCBkZXZpY2VzIHRoaXMgd291bGRu J3Qgd29yayBwcm9wZXJseSAtIHdlIHdvdWxkbid0CnJlbW92ZSB0aGUgbDItc3BlY2lmaWMgYXR0 cmlidXRlcyB3aGVuIHN3aXRjaGluZyB0byBMMy4KQnV0IHN3aXRjaGluZyB0aGUgbGF5ZXIgbW9k ZSBkb2Vzbid0IGFjdHVhbGx5IG1ha2UgYW55IHNlbnNlOwp3ZSBhbHJlYWR5IGRlY2lkZWQgdGhh dCB0aGUgZGV2aWNlIGNhbiBvbmx5IG9wZXJhdGUgaW4gTDIhClNvIGp1c3QgcmVmdXNlIHRvIHN3 aXRjaCB0aGUgbGF5ZXIgbW9kZSBvbiBzdWNoIGRldmljZXMuIE5vdGUgdGhhdApPU04gZG9lc24n dCBoYXZlIGEgbGF5ZXIyIGF0dHJpYnV0ZSwgc28gd2Ugb25seSBuZWVkIHRvIHNwZWNpYWwtY2Fz ZQpPU00uCgpCYXNlZCBvbiBhbiBpbml0aWFsIHBhdGNoIGJ5IFVyc3VsYSBCcmF1bi4KCkZpeGVz OiBiNGQ3MmMwOGIzNTggKCJxZXRoOiBicmlkZ2Vwb3J0IHN1cHBvcnQgLSBiYXNpYyBjb250cm9s IikKU2lnbmVkLW9mZi1ieTogSnVsaWFuIFdpZWRtYW5uIDxqd2lAbGludXgudm5ldC5pYm0uY29t PgpTaWduZWQtb2ZmLWJ5OiBEYXZpZCBTLiBNaWxsZXIgPGRhdmVtQGRhdmVtbG9mdC5uZXQ+Ci0t LQogZHJpdmVycy9zMzkwL25ldC9xZXRoX2NvcmUuaCAgICAgIHwgIDQgKysrKwogZHJpdmVycy9z MzkwL25ldC9xZXRoX2NvcmVfbWFpbi5jIHwgMTcgKysrKysrKysrLS0tLS0tLS0KIGRyaXZlcnMv czM5MC9uZXQvcWV0aF9jb3JlX3N5cy5jICB8IDIyICsrKysrKysrKysrKysrLS0tLS0tLS0KIGRy aXZlcnMvczM5MC9uZXQvcWV0aF9sMi5oICAgICAgICB8ICAyICsrCiBkcml2ZXJzL3MzOTAvbmV0 L3FldGhfbDJfbWFpbi5jICAgfCAxNyArKysrKysrKysrKysrLS0tLQogZHJpdmVycy9zMzkwL25l dC9xZXRoX2wyX3N5cy5jICAgIHwgIDggKysrKysrKysKIGRyaXZlcnMvczM5MC9uZXQvcWV0aF9s M19tYWluLmMgICB8ICAxICsKIDcgZmlsZXMgY2hhbmdlZCwgNTEgaW5zZXJ0aW9ucygrKSwgMjAg ZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvZHJpdmVycy9zMzkwL25ldC9xZXRoX2NvcmUuaCBi L2RyaXZlcnMvczM5MC9uZXQvcWV0aF9jb3JlLmgKaW5kZXggNmQ0YjY4YzQuLmYzNzU2Y2EgMTAw NjQ0Ci0tLSBhL2RyaXZlcnMvczM5MC9uZXQvcWV0aF9jb3JlLmgKKysrIGIvZHJpdmVycy9zMzkw L25ldC9xZXRoX2NvcmUuaApAQCAtNzE4LDYgKzcxOCw3IEBAIGVudW0gcWV0aF9kaXNjaXBsaW5l X2lkIHsKIH07CiAKIHN0cnVjdCBxZXRoX2Rpc2NpcGxpbmUgeworCWNvbnN0IHN0cnVjdCBkZXZp Y2VfdHlwZSAqZGV2dHlwZTsKIAl2b2lkICgqc3RhcnRfcG9sbCkoc3RydWN0IGNjd19kZXZpY2Ug KiwgaW50LCB1bnNpZ25lZCBsb25nKTsKIAlxZGlvX2hhbmRsZXJfdCAqaW5wdXRfaGFuZGxlcjsK IAlxZGlvX2hhbmRsZXJfdCAqb3V0cHV0X2hhbmRsZXI7CkBAIC04OTMsNiArODk0LDkgQEAgZXh0 ZXJuIHN0cnVjdCBxZXRoX2Rpc2NpcGxpbmUgcWV0aF9sMl9kaXNjaXBsaW5lOwogZXh0ZXJuIHN0 cnVjdCBxZXRoX2Rpc2NpcGxpbmUgcWV0aF9sM19kaXNjaXBsaW5lOwogZXh0ZXJuIGNvbnN0IHN0 cnVjdCBhdHRyaWJ1dGVfZ3JvdXAgKnFldGhfZ2VuZXJpY19hdHRyX2dyb3Vwc1tdOwogZXh0ZXJu IGNvbnN0IHN0cnVjdCBhdHRyaWJ1dGVfZ3JvdXAgKnFldGhfb3NuX2F0dHJfZ3JvdXBzW107Citl eHRlcm4gY29uc3Qgc3RydWN0IGF0dHJpYnV0ZV9ncm91cCBxZXRoX2RldmljZV9hdHRyX2dyb3Vw OworZXh0ZXJuIGNvbnN0IHN0cnVjdCBhdHRyaWJ1dGVfZ3JvdXAgcWV0aF9kZXZpY2VfYmxrdF9n cm91cDsKK2V4dGVybiBjb25zdCBzdHJ1Y3QgZGV2aWNlX3R5cGUgcWV0aF9nZW5lcmljX2RldnR5 cGU7CiBleHRlcm4gc3RydWN0IHdvcmtxdWV1ZV9zdHJ1Y3QgKnFldGhfd3E7CiAKIGludCBxZXRo X2NhcmRfaHdfaXNfcmVhY2hhYmxlKHN0cnVjdCBxZXRoX2NhcmQgKik7CmRpZmYgLS1naXQgYS9k cml2ZXJzL3MzOTAvbmV0L3FldGhfY29yZV9tYWluLmMgYi9kcml2ZXJzL3MzOTAvbmV0L3FldGhf Y29yZV9tYWluLmMKaW5kZXggNGJmMWY2MC4uZThjNDgzMCAxMDA2NDQKLS0tIGEvZHJpdmVycy9z MzkwL25ldC9xZXRoX2NvcmVfbWFpbi5jCisrKyBiL2RyaXZlcnMvczM5MC9uZXQvcWV0aF9jb3Jl X21haW4uYwpAQCAtNTQ2MiwxMCArNTQ2MiwxMiBAQCB2b2lkIHFldGhfY29yZV9mcmVlX2Rpc2Np cGxpbmUoc3RydWN0IHFldGhfY2FyZCAqY2FyZCkKIAljYXJkLT5kaXNjaXBsaW5lID0gTlVMTDsK IH0KIAotc3RhdGljIGNvbnN0IHN0cnVjdCBkZXZpY2VfdHlwZSBxZXRoX2dlbmVyaWNfZGV2dHlw ZSA9IHsKK2NvbnN0IHN0cnVjdCBkZXZpY2VfdHlwZSBxZXRoX2dlbmVyaWNfZGV2dHlwZSA9IHsK IAkubmFtZSA9ICJxZXRoX2dlbmVyaWMiLAogCS5ncm91cHMgPSBxZXRoX2dlbmVyaWNfYXR0cl9n cm91cHMsCiB9OworRVhQT1JUX1NZTUJPTF9HUEwocWV0aF9nZW5lcmljX2RldnR5cGUpOworCiBz dGF0aWMgY29uc3Qgc3RydWN0IGRldmljZV90eXBlIHFldGhfb3NuX2RldnR5cGUgPSB7CiAJLm5h bWUgPSAicWV0aF9vc24iLAogCS5ncm91cHMgPSBxZXRoX29zbl9hdHRyX2dyb3VwcywKQEAgLTU1 OTEsMjMgKzU1OTMsMjIgQEAgc3RhdGljIGludCBxZXRoX2NvcmVfcHJvYmVfZGV2aWNlKHN0cnVj dCBjY3dncm91cF9kZXZpY2UgKmdkZXYpCiAJCWdvdG8gZXJyX2NhcmQ7CiAJfQogCi0JaWYgKGNh cmQtPmluZm8udHlwZSA9PSBRRVRIX0NBUkRfVFlQRV9PU04pCi0JCWdkZXYtPmRldi50eXBlID0g JnFldGhfb3NuX2RldnR5cGU7Ci0JZWxzZQotCQlnZGV2LT5kZXYudHlwZSA9ICZxZXRoX2dlbmVy aWNfZGV2dHlwZTsKLQogCXN3aXRjaCAoY2FyZC0+aW5mby50eXBlKSB7CiAJY2FzZSBRRVRIX0NB UkRfVFlQRV9PU046CiAJY2FzZSBRRVRIX0NBUkRfVFlQRV9PU006CiAJCXJjID0gcWV0aF9jb3Jl X2xvYWRfZGlzY2lwbGluZShjYXJkLCBRRVRIX0RJU0NJUExJTkVfTEFZRVIyKTsKIAkJaWYgKHJj KQogCQkJZ290byBlcnJfY2FyZDsKKworCQlnZGV2LT5kZXYudHlwZSA9IChjYXJkLT5pbmZvLnR5 cGUgIT0gUUVUSF9DQVJEX1RZUEVfT1NOKQorCQkJCQk/IGNhcmQtPmRpc2NpcGxpbmUtPmRldnR5 cGUKKwkJCQkJOiAmcWV0aF9vc25fZGV2dHlwZTsKIAkJcmMgPSBjYXJkLT5kaXNjaXBsaW5lLT5z ZXR1cChjYXJkLT5nZGV2KTsKIAkJaWYgKHJjKQogCQkJZ290byBlcnJfZGlzYzsKLQljYXNlIFFF VEhfQ0FSRF9UWVBFX09TRDoKLQljYXNlIFFFVEhfQ0FSRF9UWVBFX09TWDoKKwkJYnJlYWs7CiAJ ZGVmYXVsdDoKKwkJZ2Rldi0+ZGV2LnR5cGUgPSAmcWV0aF9nZW5lcmljX2RldnR5cGU7CiAJCWJy ZWFrOwogCX0KIApkaWZmIC0tZ2l0IGEvZHJpdmVycy9zMzkwL25ldC9xZXRoX2NvcmVfc3lzLmMg Yi9kcml2ZXJzL3MzOTAvbmV0L3FldGhfY29yZV9zeXMuYwppbmRleCA0MTJmZjYxLi5kYjZhMjg1 IDEwMDY0NAotLS0gYS9kcml2ZXJzL3MzOTAvbmV0L3FldGhfY29yZV9zeXMuYworKysgYi9kcml2 ZXJzL3MzOTAvbmV0L3FldGhfY29yZV9zeXMuYwpAQCAtNDEzLDEyICs0MTMsMTYgQEAgc3RhdGlj IHNzaXplX3QgcWV0aF9kZXZfbGF5ZXIyX3N0b3JlKHN0cnVjdCBkZXZpY2UgKmRldiwKIAogCWlm IChjYXJkLT5vcHRpb25zLmxheWVyMiA9PSBuZXdkaXMpCiAJCWdvdG8gb3V0OwotCWVsc2Ugewot CQljYXJkLT5pbmZvLm1hY19iaXRzICA9IDA7Ci0JCWlmIChjYXJkLT5kaXNjaXBsaW5lKSB7Ci0J CQljYXJkLT5kaXNjaXBsaW5lLT5yZW1vdmUoY2FyZC0+Z2Rldik7Ci0JCQlxZXRoX2NvcmVfZnJl ZV9kaXNjaXBsaW5lKGNhcmQpOwotCQl9CisJaWYgKGNhcmQtPmluZm8udHlwZSA9PSBRRVRIX0NB UkRfVFlQRV9PU00pIHsKKwkJLyogZml4ZWQgbGF5ZXIsIGNhbid0IHN3aXRjaCAqLworCQlyYyA9 IC1FT1BOT1RTVVBQOworCQlnb3RvIG91dDsKKwl9CisKKwljYXJkLT5pbmZvLm1hY19iaXRzID0g MDsKKwlpZiAoY2FyZC0+ZGlzY2lwbGluZSkgeworCQljYXJkLT5kaXNjaXBsaW5lLT5yZW1vdmUo Y2FyZC0+Z2Rldik7CisJCXFldGhfY29yZV9mcmVlX2Rpc2NpcGxpbmUoY2FyZCk7CiAJfQogCiAJ cmMgPSBxZXRoX2NvcmVfbG9hZF9kaXNjaXBsaW5lKGNhcmQsIG5ld2Rpcyk7CkBAIC03MDUsMTAg KzcwOSwxMSBAQCBzdGF0aWMgc3RydWN0IGF0dHJpYnV0ZSAqcWV0aF9ibGt0X2RldmljZV9hdHRy c1tdID0gewogCSZkZXZfYXR0cl9pbnRlcl9qdW1iby5hdHRyLAogCU5VTEwsCiB9Owotc3RhdGlj IHN0cnVjdCBhdHRyaWJ1dGVfZ3JvdXAgcWV0aF9kZXZpY2VfYmxrdF9ncm91cCA9IHsKK2NvbnN0 IHN0cnVjdCBhdHRyaWJ1dGVfZ3JvdXAgcWV0aF9kZXZpY2VfYmxrdF9ncm91cCA9IHsKIAkubmFt ZSA9ICJibGt0IiwKIAkuYXR0cnMgPSBxZXRoX2Jsa3RfZGV2aWNlX2F0dHJzLAogfTsKK0VYUE9S VF9TWU1CT0xfR1BMKHFldGhfZGV2aWNlX2Jsa3RfZ3JvdXApOwogCiBzdGF0aWMgc3RydWN0IGF0 dHJpYnV0ZSAqcWV0aF9kZXZpY2VfYXR0cnNbXSA9IHsKIAkmZGV2X2F0dHJfc3RhdGUuYXR0ciwK QEAgLTcyOCw5ICs3MzMsMTAgQEAgc3RhdGljIHN0cnVjdCBhdHRyaWJ1dGUgKnFldGhfZGV2aWNl X2F0dHJzW10gPSB7CiAJJmRldl9hdHRyX3N3aXRjaF9hdHRycy5hdHRyLAogCU5VTEwsCiB9Owot c3RhdGljIHN0cnVjdCBhdHRyaWJ1dGVfZ3JvdXAgcWV0aF9kZXZpY2VfYXR0cl9ncm91cCA9IHsK K2NvbnN0IHN0cnVjdCBhdHRyaWJ1dGVfZ3JvdXAgcWV0aF9kZXZpY2VfYXR0cl9ncm91cCA9IHsK IAkuYXR0cnMgPSBxZXRoX2RldmljZV9hdHRycywKIH07CitFWFBPUlRfU1lNQk9MX0dQTChxZXRo X2RldmljZV9hdHRyX2dyb3VwKTsKIAogY29uc3Qgc3RydWN0IGF0dHJpYnV0ZV9ncm91cCAqcWV0 aF9nZW5lcmljX2F0dHJfZ3JvdXBzW10gPSB7CiAJJnFldGhfZGV2aWNlX2F0dHJfZ3JvdXAsCmRp ZmYgLS1naXQgYS9kcml2ZXJzL3MzOTAvbmV0L3FldGhfbDIuaCBiL2RyaXZlcnMvczM5MC9uZXQv cWV0aF9sMi5oCmluZGV4IDI5ZDlmYjMuLjBkNTlmOWEgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvczM5 MC9uZXQvcWV0aF9sMi5oCisrKyBiL2RyaXZlcnMvczM5MC9uZXQvcWV0aF9sMi5oCkBAIC04LDYg KzgsOCBAQAogCiAjaW5jbHVkZSAicWV0aF9jb3JlLmgiCiAKK2V4dGVybiBjb25zdCBzdHJ1Y3Qg YXR0cmlidXRlX2dyb3VwICpxZXRoX2wyX2F0dHJfZ3JvdXBzW107CisKIGludCBxZXRoX2wyX2Ny ZWF0ZV9kZXZpY2VfYXR0cmlidXRlcyhzdHJ1Y3QgZGV2aWNlICopOwogdm9pZCBxZXRoX2wyX3Jl bW92ZV9kZXZpY2VfYXR0cmlidXRlcyhzdHJ1Y3QgZGV2aWNlICopOwogdm9pZCBxZXRoX2wyX3Nl dHVwX2JyaWRnZXBvcnRfYXR0cnMoc3RydWN0IHFldGhfY2FyZCAqY2FyZCk7CmRpZmYgLS1naXQg YS9kcml2ZXJzL3MzOTAvbmV0L3FldGhfbDJfbWFpbi5jIGIvZHJpdmVycy9zMzkwL25ldC9xZXRo X2wyX21haW4uYwppbmRleCA3MzI2MGE0Li5jZGIwMzQwIDEwMDY0NAotLS0gYS9kcml2ZXJzL3Mz OTAvbmV0L3FldGhfbDJfbWFpbi5jCisrKyBiL2RyaXZlcnMvczM5MC9uZXQvcWV0aF9sMl9tYWlu LmMKQEAgLTEwMjEsMTQgKzEwMjEsMjEgQEAgc3RhdGljIGludCBxZXRoX2wyX3N0b3Aoc3RydWN0 IG5ldF9kZXZpY2UgKmRldikKIAlyZXR1cm4gMDsKIH0KIAorc3RhdGljIGNvbnN0IHN0cnVjdCBk ZXZpY2VfdHlwZSBxZXRoX2wyX2RldnR5cGUgPSB7CisJLm5hbWUgPSAicWV0aF9sYXllcjIiLAor CS5ncm91cHMgPSBxZXRoX2wyX2F0dHJfZ3JvdXBzLAorfTsKKwogc3RhdGljIGludCBxZXRoX2wy X3Byb2JlX2RldmljZShzdHJ1Y3QgY2N3Z3JvdXBfZGV2aWNlICpnZGV2KQogewogCXN0cnVjdCBx ZXRoX2NhcmQgKmNhcmQgPSBkZXZfZ2V0X2RydmRhdGEoJmdkZXYtPmRldik7CiAJaW50IHJjOwog Ci0JcmMgPSBxZXRoX2wyX2NyZWF0ZV9kZXZpY2VfYXR0cmlidXRlcygmZ2Rldi0+ZGV2KTsKLQlp ZiAocmMpCi0JCXJldHVybiByYzsKKwlpZiAoZ2Rldi0+ZGV2LnR5cGUgPT0gJnFldGhfZ2VuZXJp Y19kZXZ0eXBlKSB7CisJCXJjID0gcWV0aF9sMl9jcmVhdGVfZGV2aWNlX2F0dHJpYnV0ZXMoJmdk ZXYtPmRldik7CisJCWlmIChyYykKKwkJCXJldHVybiByYzsKKwl9CiAJSU5JVF9MSVNUX0hFQUQo JmNhcmQtPnZpZF9saXN0KTsKIAloYXNoX2luaXQoY2FyZC0+bWFjX2h0YWJsZSk7CiAJY2FyZC0+ b3B0aW9ucy5sYXllcjIgPSAxOwpAQCAtMTA0MCw3ICsxMDQ3LDggQEAgc3RhdGljIHZvaWQgcWV0 aF9sMl9yZW1vdmVfZGV2aWNlKHN0cnVjdCBjY3dncm91cF9kZXZpY2UgKmNnZGV2KQogewogCXN0 cnVjdCBxZXRoX2NhcmQgKmNhcmQgPSBkZXZfZ2V0X2RydmRhdGEoJmNnZGV2LT5kZXYpOwogCi0J cWV0aF9sMl9yZW1vdmVfZGV2aWNlX2F0dHJpYnV0ZXMoJmNnZGV2LT5kZXYpOworCWlmIChjZ2Rl di0+ZGV2LnR5cGUgPT0gJnFldGhfZ2VuZXJpY19kZXZ0eXBlKQorCQlxZXRoX2wyX3JlbW92ZV9k ZXZpY2VfYXR0cmlidXRlcygmY2dkZXYtPmRldik7CiAJcWV0aF9zZXRfYWxsb3dlZF90aHJlYWRz KGNhcmQsIDAsIDEpOwogCXdhaXRfZXZlbnQoY2FyZC0+d2FpdF9xLCBxZXRoX3RocmVhZHNfcnVu bmluZyhjYXJkLCAweGZmZmZmZmZmKSA9PSAwKTsKIApAQCAtMTQzNyw2ICsxNDQ1LDcgQEAgc3Rh dGljIGludCBxZXRoX2wyX2NvbnRyb2xfZXZlbnQoc3RydWN0IHFldGhfY2FyZCAqY2FyZCwKIH0K IAogc3RydWN0IHFldGhfZGlzY2lwbGluZSBxZXRoX2wyX2Rpc2NpcGxpbmUgPSB7CisJLmRldnR5 cGUgPSAmcWV0aF9sMl9kZXZ0eXBlLAogCS5zdGFydF9wb2xsID0gcWV0aF9xZGlvX3N0YXJ0X3Bv bGwsCiAJLmlucHV0X2hhbmRsZXIgPSAocWRpb19oYW5kbGVyX3QgKikgcWV0aF9xZGlvX2lucHV0 X2hhbmRsZXIsCiAJLm91dHB1dF9oYW5kbGVyID0gKHFkaW9faGFuZGxlcl90ICopIHFldGhfcWRp b19vdXRwdXRfaGFuZGxlciwKZGlmZiAtLWdpdCBhL2RyaXZlcnMvczM5MC9uZXQvcWV0aF9sMl9z eXMuYyBiL2RyaXZlcnMvczM5MC9uZXQvcWV0aF9sMl9zeXMuYwppbmRleCA2OTJkYjQ5Li5hNDhl ZDllIDEwMDY0NAotLS0gYS9kcml2ZXJzL3MzOTAvbmV0L3FldGhfbDJfc3lzLmMKKysrIGIvZHJp dmVycy9zMzkwL25ldC9xZXRoX2wyX3N5cy5jCkBAIC0yNzIsMyArMjcyLDExIEBAIHZvaWQgcWV0 aF9sMl9zZXR1cF9icmlkZ2Vwb3J0X2F0dHJzKHN0cnVjdCBxZXRoX2NhcmQgKmNhcmQpCiAJfSBl bHNlCiAJCXFldGhfYnJpZGdlcG9ydF9hbl9zZXQoY2FyZCwgMCk7CiB9CisKK2NvbnN0IHN0cnVj dCBhdHRyaWJ1dGVfZ3JvdXAgKnFldGhfbDJfYXR0cl9ncm91cHNbXSA9IHsKKwkmcWV0aF9kZXZp Y2VfYXR0cl9ncm91cCwKKwkmcWV0aF9kZXZpY2VfYmxrdF9ncm91cCwKKwkvKiBsMiBzcGVjaWZp Yywgc2VlIGwyX3tjcmVhdGUscmVtb3ZlfV9kZXZpY2VfYXR0cmlidXRlcygpOiAqLworCSZxZXRo X2wyX2JyaWRnZXBvcnRfYXR0cl9ncm91cCwKKwlOVUxMLAorfTsKZGlmZiAtLWdpdCBhL2RyaXZl cnMvczM5MC9uZXQvcWV0aF9sM19tYWluLmMgYi9kcml2ZXJzL3MzOTAvbmV0L3FldGhfbDNfbWFp bi5jCmluZGV4IDkzZmEzMzEuLmFkNGVhNTggMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvczM5MC9uZXQv cWV0aF9sM19tYWluLmMKKysrIGIvZHJpdmVycy9zMzkwL25ldC9xZXRoX2wzX21haW4uYwpAQCAt MzQ1Myw2ICszNDUzLDcgQEAgc3RhdGljIGludCBxZXRoX2wzX2NvbnRyb2xfZXZlbnQoc3RydWN0 IHFldGhfY2FyZCAqY2FyZCwKIH0KIAogc3RydWN0IHFldGhfZGlzY2lwbGluZSBxZXRoX2wzX2Rp c2NpcGxpbmUgPSB7CisJLmRldnR5cGUgPSAmcWV0aF9nZW5lcmljX2RldnR5cGUsCiAJLnN0YXJ0 X3BvbGwgPSBxZXRoX3FkaW9fc3RhcnRfcG9sbCwKIAkuaW5wdXRfaGFuZGxlciA9IChxZGlvX2hh bmRsZXJfdCAqKSBxZXRoX3FkaW9faW5wdXRfaGFuZGxlciwKIAkub3V0cHV0X2hhbmRsZXIgPSAo cWRpb19oYW5kbGVyX3QgKikgcWV0aF9xZGlvX291dHB1dF9oYW5kbGVyLAotLSAKMi45LjQKCgpG cm9tIDNhMzUyNWYxNmRmMjlkYjkwZWFkMmYwOWQzOGFiYzJjNjYwY2IyZTEgTW9uIFNlcCAxNyAw MDowMDowMCAyMDAxCkZyb206IEp1bGlhbiBXaWVkbWFubiA8andpQGxpbnV4LnZuZXQuaWJtLmNv bT4KRGF0ZTogV2VkLCAxMCBNYXkgMjAxNyAxOTowNzo1MyArMDIwMApTdWJqZWN0OiBbUEFUQ0gg MDYvMzRdIHMzOTAvcWV0aDogYXZvaWQgbnVsbCBwb2ludGVyIGRlcmVmZXJlbmNlIG9uIE9TTgoK WyBVcHN0cmVhbSBjb21taXQgMjVlMmMzNDFlNzgxOGEzOTRkYTlhYmM0MDM3MTYyNzhlZTY0NjAx NCBdCgpBY2Nlc3MgY2FyZC0+ZGV2IG9ubHkgYWZ0ZXIgY2hlY2tpbmcgd2hldGhlcidzIGl0cyB2 YWxpZC4KClNpZ25lZC1vZmYtYnk6IEp1bGlhbiBXaWVkbWFubiA8andpQGxpbnV4LnZuZXQuaWJt LmNvbT4KUmV2aWV3ZWQtYnk6IFVyc3VsYSBCcmF1biA8dWJyYXVuQGxpbnV4LnZuZXQuaWJtLmNv bT4KU2lnbmVkLW9mZi1ieTogRGF2aWQgUy4gTWlsbGVyIDxkYXZlbUBkYXZlbWxvZnQubmV0Pgot LS0KIGRyaXZlcnMvczM5MC9uZXQvcWV0aF9sMl9tYWluLmMgfCAxMCArKysrKystLS0tCiAxIGZp bGUgY2hhbmdlZCwgNiBpbnNlcnRpb25zKCspLCA0IGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBh L2RyaXZlcnMvczM5MC9uZXQvcWV0aF9sMl9tYWluLmMgYi9kcml2ZXJzL3MzOTAvbmV0L3FldGhf bDJfbWFpbi5jCmluZGV4IGNkYjAzNDAuLjVkMDEwYWEgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvczM5 MC9uZXQvcWV0aF9sMl9tYWluLmMKKysrIGIvZHJpdmVycy9zMzkwL25ldC9xZXRoX2wyX21haW4u YwpAQCAtMTEwNiw3ICsxMTA2LDYgQEAgc3RhdGljIGludCBxZXRoX2wyX3NldHVwX25ldGRldihz dHJ1Y3QgcWV0aF9jYXJkICpjYXJkKQogCWNhc2UgUUVUSF9DQVJEX1RZUEVfT1NOOgogCQljYXJk LT5kZXYgPSBhbGxvY19uZXRkZXYoMCwgIm9zbiVkIiwgTkVUX05BTUVfVU5LTk9XTiwKIAkJCQkJ IGV0aGVyX3NldHVwKTsKLQkJY2FyZC0+ZGV2LT5mbGFncyB8PSBJRkZfTk9BUlA7CiAJCWJyZWFr OwogCWRlZmF1bHQ6CiAJCWNhcmQtPmRldiA9IGFsbG9jX2V0aGVyZGV2KDApOwpAQCAtMTExOSw5 ICsxMTE4LDEyIEBAIHN0YXRpYyBpbnQgcWV0aF9sMl9zZXR1cF9uZXRkZXYoc3RydWN0IHFldGhf Y2FyZCAqY2FyZCkKIAljYXJkLT5kZXYtPndhdGNoZG9nX3RpbWVvID0gUUVUSF9UWF9USU1FT1VU OwogCWNhcmQtPmRldi0+bXR1ID0gY2FyZC0+aW5mby5pbml0aWFsX210dTsKIAljYXJkLT5kZXYt Pm5ldGRldl9vcHMgPSAmcWV0aF9sMl9uZXRkZXZfb3BzOwotCWNhcmQtPmRldi0+ZXRodG9vbF9v cHMgPQotCQkoY2FyZC0+aW5mby50eXBlICE9IFFFVEhfQ0FSRF9UWVBFX09TTikgPwotCQkmcWV0 aF9sMl9ldGh0b29sX29wcyA6ICZxZXRoX2wyX29zbl9vcHM7CisJaWYgKGNhcmQtPmluZm8udHlw ZSA9PSBRRVRIX0NBUkRfVFlQRV9PU04pIHsKKwkJY2FyZC0+ZGV2LT5ldGh0b29sX29wcyA9ICZx ZXRoX2wyX29zbl9vcHM7CisJCWNhcmQtPmRldi0+ZmxhZ3MgfD0gSUZGX05PQVJQOworCX0gZWxz ZSB7CisJCWNhcmQtPmRldi0+ZXRodG9vbF9vcHMgPSAmcWV0aF9sMl9ldGh0b29sX29wczsKKwl9 CiAJY2FyZC0+ZGV2LT5mZWF0dXJlcyB8PSBORVRJRl9GX0hXX1ZMQU5fQ1RBR19GSUxURVI7CiAJ aWYgKGNhcmQtPmluZm8udHlwZSA9PSBRRVRIX0NBUkRfVFlQRV9PU0QgJiYgIWNhcmQtPmluZm8u Z3Vlc3RsYW4pIHsKIAkJY2FyZC0+ZGV2LT5od19mZWF0dXJlcyA9IE5FVElGX0ZfU0c7Ci0tIAoy LjkuNAoKCkZyb20gMmYzZTFlY2FmYWE0M2VkMjJjMjI2NDNjNzllOWU3YTYzN2EyN2IxOSBNb24g U2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJvbTogVXJzdWxhIEJyYXVuIDx1YnJhdW5AbGludXgudm5l dC5pYm0uY29tPgpEYXRlOiBXZWQsIDEwIE1heSAyMDE3IDE5OjA3OjU0ICswMjAwClN1YmplY3Q6 IFtQQVRDSCAwNy8zNF0gczM5MC9xZXRoOiBhZGQgbWlzc2luZyBoYXNoIHRhYmxlIGluaXRpYWxp emF0aW9ucwoKWyBVcHN0cmVhbSBjb21taXQgZWJjY2M3Mzk3ZTRhNDlmZjY0YzhmNDRhNTQ4OTVk ZTlkMzJmZTc0MiBdCgpjb21taXQgNWY3OGUyOWNlZWJmICgicWV0aDogb3B0aW1pemUgSVAgaGFu ZGxpbmcgaW4gcnhfbW9kZSBjYWxsYmFjayIpCmFkZGVkIG5ldyBoYXNoIHRhYmxlcywgYnV0IG1p c3NlZCB0byBpbml0aWFsaXplIHRoZW0uCgpGaXhlczogNWY3OGUyOWNlZWJmICgicWV0aDogb3B0 aW1pemUgSVAgaGFuZGxpbmcgaW4gcnhfbW9kZSBjYWxsYmFjayIpClNpZ25lZC1vZmYtYnk6IFVy c3VsYSBCcmF1biA8dWJyYXVuQGxpbnV4LnZuZXQuaWJtLmNvbT4KUmV2aWV3ZWQtYnk6IEp1bGlh biBXaWVkbWFubiA8andpQGxpbnV4LnZuZXQuaWJtLmNvbT4KU2lnbmVkLW9mZi1ieTogSnVsaWFu IFdpZWRtYW5uIDxqd2lAbGludXgudm5ldC5pYm0uY29tPgpTaWduZWQtb2ZmLWJ5OiBEYXZpZCBT LiBNaWxsZXIgPGRhdmVtQGRhdmVtbG9mdC5uZXQ+Ci0tLQogZHJpdmVycy9zMzkwL25ldC9xZXRo X2wzX21haW4uYyB8IDIgKysKIDEgZmlsZSBjaGFuZ2VkLCAyIGluc2VydGlvbnMoKykKCmRpZmYg LS1naXQgYS9kcml2ZXJzL3MzOTAvbmV0L3FldGhfbDNfbWFpbi5jIGIvZHJpdmVycy9zMzkwL25l dC9xZXRoX2wzX21haW4uYwppbmRleCBhZDRlYTU4Li4xNzFiZTVlIDEwMDY0NAotLS0gYS9kcml2 ZXJzL3MzOTAvbmV0L3FldGhfbDNfbWFpbi5jCisrKyBiL2RyaXZlcnMvczM5MC9uZXQvcWV0aF9s M19tYWluLmMKQEAgLTMxNjIsNiArMzE2Miw4IEBAIHN0YXRpYyBpbnQgcWV0aF9sM19wcm9iZV9k ZXZpY2Uoc3RydWN0IGNjd2dyb3VwX2RldmljZSAqZ2RldikKIAlyYyA9IHFldGhfbDNfY3JlYXRl X2RldmljZV9hdHRyaWJ1dGVzKCZnZGV2LT5kZXYpOwogCWlmIChyYykKIAkJcmV0dXJuIHJjOwor CWhhc2hfaW5pdChjYXJkLT5pcF9odGFibGUpOworCWhhc2hfaW5pdChjYXJkLT5pcF9tY19odGFi bGUpOwogCWNhcmQtPm9wdGlvbnMubGF5ZXIyID0gMDsKIAljYXJkLT5pbmZvLmh3dHJhcCA9IDA7 CiAJcmV0dXJuIDA7Ci0tIAoyLjkuNAoKCkZyb20gZmI4ZDZjNmE2N2I5YjQ3ODAxNzU1NjdiNjUy ZWRjYzgyYzk3MWJhYyBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJvbTogRGFuaWVsIEJvcmtt YW5uIDxkYW5pZWxAaW9nZWFyYm94Lm5ldD4KRGF0ZTogVGh1LCAxMSBNYXkgMjAxNyAwMTo1Mzox NSArMDIwMApTdWJqZWN0OiBbUEFUQ0ggMDgvMzRdIGJwZiwgYXJtNjQ6IGZpeCBmYXVsdHkgZW1p c3Npb24gb2YgbWFwIGFjY2VzcyBpbiB0YWlsCiBjYWxscwoKWyBVcHN0cmVhbSBjb21taXQgZDhi NTQxMTBlZTk0NGRlNTIyY2NkMzUzMTE5MWYzOTk4NmVjMjBmOSBdCgpTaHViaGFtIHdhcyByZWNl bnRseSBhc2tpbmcgb24gbmV0ZGV2IHdoeSBpbiBhcm02NCBKSVQgd2UgZG9uJ3QgbXVsdGlwbHkK dGhlIGluZGV4IGZvciBhY2Nlc3NpbmcgdGhlIHRhaWwgY2FsbCBtYXAgYnkgOC4gVGhhdCBsZWQg bWUgaW50byB0ZXN0aW5nCm91dCBhcm02NCBKSVQgd3J0IHRhaWwgY2FsbHMgYW5kIGl0IHR1cm5l ZCBvdXQgSSBnb3QgYSBOVUxMIHBvaW50ZXIKZGVyZWZlcmVuY2Ugb24gdGhlIHRhaWwgY2FsbC4K ClRoZSBidWdneSBhY2Nlc3MgaXMgYXQ6CgogIHByb2cgPSBhcnJheS0+cHRyc1tpbmRleF07CiAg aWYgKHByb2cgPT0gTlVMTCkKICAgICAgZ290byBvdXQ7CgogIFsuLi5dCiAgMDAwMDAwNjA6ICBk MjgwMGUwYSAgbW92IHgxMCwgIzB4NzAgLy8gIzExMgogIDAwMDAwMDY0OiAgZjg2YTY4MmEgIGxk ciB4MTAsIFt4MSx4MTBdCiAgMDAwMDAwNjg6ICBmODYyNjk0YiAgbGRyIHgxMSwgW3gxMCx4Ml0K ICAwMDAwMDA2YzogIGI0MDAwMGFiICBjYnogeDExLCAweDAwMDAwMDgwCiAgWy4uLl0KClRoZSBj b2RlIHRyaWdnZXJpbmcgdGhlIGNyYXNoIGlzIGY4NjI2OTRiLiB4MSBhdCB0aGUgdGltZSBjb250 YWlucyB0aGUKYWRkcmVzcyBvZiB0aGUgYnBmIGFycmF5LCB4MTAgb2Zmc2V0b2Yoc3RydWN0IGJw Zl9hcnJheSwgcHRycykuIE1lYW5pbmcsCmFib3ZlIHdlIGxvYWQgdGhlIHBvaW50ZXIgdG8gdGhl IHByb2dyYW0gYXQgbWFwIHNsb3QgMCBpbnRvIHgxMC4geDEwCmNhbiB0aGVuIGJlIE5VTEwgaWYg dGhlIHNsb3QgaXMgbm90IG9jY3VwaWVkLCB3aGljaCB3ZSBsYXRlciBvbiB0cnkgdG8KYWNjZXNz IHdpdGggYSB1c2VyIGdpdmVuIG9mZnNldCBpbiB4MiB0aGF0IGlzIHRoZSBtYXAgaW5kZXguCgpG aXggdGhpcyBieSBlbWl0dGluZyB0aGUgZm9sbG93aW5nIGluc3RlYWQ6CgogIFsuLi5dCiAgMDAw MDAwNjA6ICBkMjgwMGUwYSAgbW92IHgxMCwgIzB4NzAgLy8gIzExMgogIDAwMDAwMDY0OiAgOGIw YTAwMmEgIGFkZCB4MTAsIHgxLCB4MTAKICAwMDAwMDA2ODogIGQzN2RmMDRiICBsc2wgeDExLCB4 MiwgIzMKICAwMDAwMDA2YzogIGY4NmI2OTRiICBsZHIgeDExLCBbeDEwLHgxMV0KICAwMDAwMDA3 MDogIGI0MDAwMGFiICBjYnogeDExLCAweDAwMDAwMDg0CiAgWy4uLl0KClRoaXMgYmFzaWNhbGx5 IGFkZHMgdGhlIG9mZnNldCB0byBwdHJzIHRvIHRoZSBiYXNlIGFkZHJlc3Mgb2YgdGhlIGJwZgph cnJheSB3ZSBnb3QgYW5kIHdlIGxhdGVyIG9uIGFjY2VzcyB0aGUgbWFwIHdpdGggYW4gaW5kZXgg KiA4IG9mZnNldApyZWxhdGl2ZSB0byB0aGF0LiBUaGUgdGFpbCBjYWxsIG1hcCBpdHNlbGYgaXMg YmFzaWNhbGx5IG9uZSBsYXJnZSBhcmVhCndpdGggbWV0YSBkYXRhIGF0IHRoZSBoZWFkIGZvbGxv d2VkIGJ5IHRoZSBhcnJheSBvZiBwcm9nIHBvaW50ZXJzLgpUaGlzIG1ha2VzIHRhaWwgY2FsbHMg d29ya2luZyBhZ2FpbiwgdGVzdGVkIG9uIENhdml1bSBUaHVuZGVyWCBBUk12OC4KCkZpeGVzOiBk ZGI1NTk5MmIwNGQgKCJhcm02NDogYnBmOiBpbXBsZW1lbnQgYnBmX3RhaWxfY2FsbCgpIGhlbHBl ciIpClJlcG9ydGVkLWJ5OiBTaHViaGFtIEJhbnNhbCA8aWxsdXNpb25pc3QubmVvQGdtYWlsLmNv bT4KU2lnbmVkLW9mZi1ieTogRGFuaWVsIEJvcmttYW5uIDxkYW5pZWxAaW9nZWFyYm94Lm5ldD4K U2lnbmVkLW9mZi1ieTogRGF2aWQgUy4gTWlsbGVyIDxkYXZlbUBkYXZlbWxvZnQubmV0PgotLS0K IGFyY2gvYXJtNjQvbmV0L2JwZl9qaXRfY29tcC5jIHwgNSArKystLQogMSBmaWxlIGNoYW5nZWQs IDMgaW5zZXJ0aW9ucygrKSwgMiBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9hcmNoL2FybTY0 L25ldC9icGZfaml0X2NvbXAuYyBiL2FyY2gvYXJtNjQvbmV0L2JwZl9qaXRfY29tcC5jCmluZGV4 IDljNGI1N2EuLmQ4MTk5ZTEgMTAwNjQ0Ci0tLSBhL2FyY2gvYXJtNjQvbmV0L2JwZl9qaXRfY29t cC5jCisrKyBiL2FyY2gvYXJtNjQvbmV0L2JwZl9qaXRfY29tcC5jCkBAIC0yNTIsOCArMjUyLDkg QEAgc3RhdGljIGludCBlbWl0X2JwZl90YWlsX2NhbGwoc3RydWN0IGppdF9jdHggKmN0eCkKIAkg Ki8KIAlvZmYgPSBvZmZzZXRvZihzdHJ1Y3QgYnBmX2FycmF5LCBwdHJzKTsKIAllbWl0X2E2NF9t b3ZfaTY0KHRtcCwgb2ZmLCBjdHgpOwotCWVtaXQoQTY0X0xEUjY0KHRtcCwgcjIsIHRtcCksIGN0 eCk7Ci0JZW1pdChBNjRfTERSNjQocHJnLCB0bXAsIHIzKSwgY3R4KTsKKwllbWl0KEE2NF9BREQo MSwgdG1wLCByMiwgdG1wKSwgY3R4KTsKKwllbWl0KEE2NF9MU0woMSwgcHJnLCByMywgMyksIGN0 eCk7CisJZW1pdChBNjRfTERSNjQocHJnLCB0bXAsIHByZyksIGN0eCk7CiAJZW1pdChBNjRfQ0Ja KDEsIHByZywgam1wX29mZnNldCksIGN0eCk7CiAKIAkvKiBnb3RvICoocHJvZy0+YnBmX2Z1bmMg KyBwcm9sb2d1ZV9zaXplKTsgKi8KLS0gCjIuOS40CgoKRnJvbSBkYjFkNWViNGE4ZWE3M2E3NGJl ZTU1MWU1ZjM4ZGZkYTg5NTM0OTYyIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBFcmlj IER1bWF6ZXQgPGVkdW1hemV0QGdvb2dsZS5jb20+CkRhdGU6IFRodSwgMTEgTWF5IDIwMTcgMTU6 MjQ6NDEgLTA3MDAKU3ViamVjdDogW1BBVENIIDA5LzM0XSBuZXRlbTogZml4IHNrYl9vcnBoYW5f cGFydGlhbCgpCgpbIFVwc3RyZWFtIGNvbW1pdCBmNmJhOGQzM2NmYmI0NmRmNTY5OTcyZTY0ZGJi NWJiN2U5MjliZmQ5IF0KCkkgc2hvdWxkIGhhdmUga25vd24gdGhhdCBsb3dlcmluZyBza2ItPnRy dWVzaXplIHdhcyBkYW5nZXJvdXMgOi8KCkluIGNhc2UgcGFja2V0cyBhcmUgbm90IGxlYXZpbmcg dGhlIGhvc3QgdmlhIGEgc3RhbmRhcmQgRXRoZXJuZXQgZGV2aWNlLApidXQgbG9vcGVkIGJhY2sg dG8gbG9jYWwgc29ja2V0cywgYmFkIHRoaW5ncyBjYW4gaGFwcGVuLCBhcyByZXBvcnRlZApieSBN aWNoYWVsIE1hZHNlbiAoIGh0dHBzOi8vYnVnemlsbGEua2VybmVsLm9yZy9zaG93X2J1Zy5jZ2k/ aWQ9MTk1NzEzICkKClNvIGluc3RlYWQgb2YgdHdlYWtpbmcgc2tiLT50cnVlc2l6ZSwgbGV0cyBj aGFuZ2Ugc2tiLT5kZXN0cnVjdG9yCmFuZCBrZWVwIGEgcmVmZXJlbmNlIG9uIHRoZSBvd25lciBz b2NrZXQgdmlhIGl0cyBza19yZWZjbnQuCgpGaXhlczogZjJmODcyZjkyNzJhICgibmV0ZW06IElu dHJvZHVjZSBza2Jfb3JwaGFuX3BhcnRpYWwoKSBoZWxwZXIiKQpTaWduZWQtb2ZmLWJ5OiBFcmlj IER1bWF6ZXQgPGVkdW1hemV0QGdvb2dsZS5jb20+ClJlcG9ydGVkLWJ5OiBNaWNoYWVsIE1hZHNl biA8bWttQG5hYnRvLmNvbT4KU2lnbmVkLW9mZi1ieTogRGF2aWQgUy4gTWlsbGVyIDxkYXZlbUBk YXZlbWxvZnQubmV0PgotLS0KIG5ldC9jb3JlL3NvY2suYyB8IDIwICsrKysrKysrLS0tLS0tLS0t LS0tCiAxIGZpbGUgY2hhbmdlZCwgOCBpbnNlcnRpb25zKCspLCAxMiBkZWxldGlvbnMoLSkKCmRp ZmYgLS1naXQgYS9uZXQvY29yZS9zb2NrLmMgYi9uZXQvY29yZS9zb2NrLmMKaW5kZXggNDcwYTIw NC4uMDNkY2ZjNSAxMDA2NDQKLS0tIGEvbmV0L2NvcmUvc29jay5jCisrKyBiL25ldC9jb3JlL3Nv Y2suYwpAQCAtMTY4NywyOCArMTY4NywyNCBAQCBFWFBPUlRfU1lNQk9MKHNrYl9zZXRfb3duZXJf dyk7CiAgKiBkZWxheSBxdWV1ZS4gV2Ugd2FudCB0byBhbGxvdyB0aGUgb3duZXIgc29ja2V0IHRv IHNlbmQgbW9yZQogICogcGFja2V0cywgYXMgaWYgdGhleSB3ZXJlIGFscmVhZHkgVFggY29tcGxl dGVkIGJ5IGEgdHlwaWNhbCBkcml2ZXIuCiAgKiBCdXQgd2UgYWxzbyB3YW50IHRvIGtlZXAgc2ti LT5zayBzZXQgYmVjYXVzZSBzb21lIHBhY2tldCBzY2hlZHVsZXJzCi0gKiByZWx5IG9uIGl0IChz Y2hfZnEgZm9yIGV4YW1wbGUpLiBTbyB3ZSBzZXQgc2tiLT50cnVlc2l6ZSB0byBhIHNtYWxsCi0g KiBhbW91bnQgKDEpIGFuZCBkZWNyZWFzZSBza193bWVtX2FsbG9jIGFjY29yZGluZ2x5LgorICog cmVseSBvbiBpdCAoc2NoX2ZxIGZvciBleGFtcGxlKS4KICAqLwogdm9pZCBza2Jfb3JwaGFuX3Bh cnRpYWwoc3RydWN0IHNrX2J1ZmYgKnNrYikKIHsKLQkvKiBJZiB0aGlzIHNrYiBpcyBhIFRDUCBw dXJlIEFDSyBvciBhbHJlYWR5IHdlbnQgaGVyZSwKLQkgKiB3ZSBoYXZlIG5vdGhpbmcgdG8gZG8u IDIgaXMgYWxyZWFkeSBhIHZlcnkgc21hbGwgdHJ1ZXNpemUuCi0JICovCi0JaWYgKHNrYi0+dHJ1 ZXNpemUgPD0gMikKKwlpZiAoc2tiX2lzX3RjcF9wdXJlX2Fjayhza2IpKQogCQlyZXR1cm47CiAK LQkvKiBUQ1Agc3RhY2sgc2V0cyBza2ItPm9vb19va2F5IGJhc2VkIG9uIHNrX3dtZW1fYWxsb2Ms Ci0JICogc28gd2UgZG8gbm90IGNvbXBsZXRlbHkgb3JwaGFuIHNrYiwgYnV0IHRyYW5zZmVydCBh bGwKLQkgKiBhY2NvdW50ZWQgYnl0ZXMgYnV0IG9uZSwgdG8gYXZvaWQgdW5leHBlY3RlZCByZW9y ZGVycy4KLQkgKi8KIAlpZiAoc2tiLT5kZXN0cnVjdG9yID09IHNvY2tfd2ZyZWUKICNpZmRlZiBD T05GSUdfSU5FVAogCSAgICB8fCBza2ItPmRlc3RydWN0b3IgPT0gdGNwX3dmcmVlCiAjZW5kaWYK IAkJKSB7Ci0JCWF0b21pY19zdWIoc2tiLT50cnVlc2l6ZSAtIDEsICZza2ItPnNrLT5za193bWVt X2FsbG9jKTsKLQkJc2tiLT50cnVlc2l6ZSA9IDE7CisJCXN0cnVjdCBzb2NrICpzayA9IHNrYi0+ c2s7CisKKwkJaWYgKGF0b21pY19pbmNfbm90X3plcm8oJnNrLT5za19yZWZjbnQpKSB7CisJCQlh dG9taWNfc3ViKHNrYi0+dHJ1ZXNpemUsICZzay0+c2tfd21lbV9hbGxvYyk7CisJCQlza2ItPmRl c3RydWN0b3IgPSBzb2NrX2VmcmVlOworCQl9CiAJfSBlbHNlIHsKIAkJc2tiX29ycGhhbihza2Ip OwogCX0KLS0gCjIuOS40CgoKRnJvbSA5MzNkZjQ2MWFjYzg1NThmYTA3NGNlY2E5MTMzMDUzMDA5 YmM0MTRmIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBFcmljIER1bWF6ZXQgPGVkdW1h emV0QGdvb2dsZS5jb20+CkRhdGU6IFR1ZSwgMTYgTWF5IDIwMTcgMTM6Mjc6NTMgLTA3MDAKU3Vi amVjdDogW1BBVENIIDEwLzM0XSBuZXQ6IGZpeCBjb21waWxlIGVycm9yIGluIHNrYl9vcnBoYW5f cGFydGlhbCgpCk1JTUUtVmVyc2lvbjogMS4wCkNvbnRlbnQtVHlwZTogdGV4dC9wbGFpbjsgY2hh cnNldD1VVEYtOApDb250ZW50LVRyYW5zZmVyLUVuY29kaW5nOiA4Yml0CgpbIFVwc3RyZWFtIGNv bW1pdCA5MTQyZTkwMDdmMmQ3YWI1OGE1ODdhMWUxZDkyMWIwMDY0YTMzOWFhIF0KCklmIENPTkZJ R19JTkVUIGlzIG5vdCBzZXQsIG5ldC9jb3JlL3NvY2suYyBjYW4gbm90IGNvbXBpbGUgOgoKbmV0 L2NvcmUvc29jay5jOiBJbiBmdW5jdGlvbiDigJhza2Jfb3JwaGFuX3BhcnRpYWzigJk6Cm5ldC9j b3JlL3NvY2suYzoxODEwOjI6IGVycm9yOiBpbXBsaWNpdCBkZWNsYXJhdGlvbiBvZiBmdW5jdGlv bgrigJhza2JfaXNfdGNwX3B1cmVfYWNr4oCZIFstV2Vycm9yPWltcGxpY2l0LWZ1bmN0aW9uLWRl Y2xhcmF0aW9uXQogIGlmIChza2JfaXNfdGNwX3B1cmVfYWNrKHNrYikpCiAgXgoKRml4IHRoaXMg YnkgYWx3YXlzIGluY2x1ZGluZyA8bmV0L3RjcC5oPgoKRml4ZXM6IGY2YmE4ZDMzY2ZiYiAoIm5l dGVtOiBmaXggc2tiX29ycGhhbl9wYXJ0aWFsKCkiKQpTaWduZWQtb2ZmLWJ5OiBFcmljIER1bWF6 ZXQgPGVkdW1hemV0QGdvb2dsZS5jb20+ClJlcG9ydGVkLWJ5OiBQYXVsIEdvcnRtYWtlciA8cGF1 bC5nb3J0bWFrZXJAd2luZHJpdmVyLmNvbT4KUmVwb3J0ZWQtYnk6IFJhbmR5IER1bmxhcCA8cmR1 bmxhcEBpbmZyYWRlYWQub3JnPgpSZXBvcnRlZC1ieTogU3RlcGhlbiBSb3Rod2VsbCA8c2ZyQGNh bmIuYXV1Zy5vcmcuYXU+ClNpZ25lZC1vZmYtYnk6IERhdmlkIFMuIE1pbGxlciA8ZGF2ZW1AZGF2 ZW1sb2Z0Lm5ldD4KLS0tCiBuZXQvY29yZS9zb2NrLmMgfCAzIC0tLQogMSBmaWxlIGNoYW5nZWQs IDMgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvbmV0L2NvcmUvc29jay5jIGIvbmV0L2NvcmUv c29jay5jCmluZGV4IDAzZGNmYzUuLjE5ODliM2QgMTAwNjQ0Ci0tLSBhL25ldC9jb3JlL3NvY2su YworKysgYi9uZXQvY29yZS9zb2NrLmMKQEAgLTEzOCwxMCArMTM4LDcgQEAKIAogI2luY2x1ZGUg PHRyYWNlL2V2ZW50cy9zb2NrLmg+CiAKLSNpZmRlZiBDT05GSUdfSU5FVAogI2luY2x1ZGUgPG5l dC90Y3AuaD4KLSNlbmRpZgotCiAjaW5jbHVkZSA8bmV0L2J1c3lfcG9sbC5oPgogCiBzdGF0aWMg REVGSU5FX01VVEVYKHByb3RvX2xpc3RfbXV0ZXgpOwotLSAKMi45LjQKCgpGcm9tIDdmODU2Zjli MzU4NmNlNzQxZjM2NzI0OTkxYjEwMmI1ZjcwODIwNDkgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAx CkZyb206IFl1Y2h1bmcgQ2hlbmcgPHljaGVuZ0Bnb29nbGUuY29tPgpEYXRlOiBXZWQsIDEwIE1h eSAyMDE3IDE3OjAxOjI3IC0wNzAwClN1YmplY3Q6IFtQQVRDSCAxMS8zNF0gdGNwOiBhdm9pZCBm cmFnbWVudGluZyBwZWN1bGlhciBza2JzIGluIFNBQ0sKClsgVXBzdHJlYW0gY29tbWl0IGI0NTFl NWQyNGJhNjY4N2M2ZjBlNzMxOWM3MjdhNzA5YTE4NDZjMDYgXQoKVGhpcyBwYXRjaCBmaXhlcyBh IGJ1ZyBpbiBzcGxpdHRpbmcgYW4gU0tCIGR1cmluZyBTQUNLCnByb2Nlc3NpbmcuIFNwZWNpZmlj YWxseSBpZiBhbiBza2IgY29udGFpbnMgbXVsdGlwbGUKcGFja2V0cyBhbmQgaXMgb25seSBwYXJ0 aWFsbHkgc2Fja2VkIGluIHRoZSBoaWdoZXIgc2VxdWVuY2VzLAp0Y3BfbWF0Y2hfc2Fja190b19z a2IoKSBzcGxpdHMgdGhlIHNrYiBhbmQgbWFya3MgdGhlIHNlY29uZCBmcmFnbWVudAphcyBTQUNL ZWQuCgpUaGUgY3VycmVudCBjb2RlIGZ1cnRoZXIgYXR0ZW1wdHMgcm91bmRpbmcgdXAgdGhlIGZp cnN0IGZyYWdtZW50CnRvIE1TUyBib3VuZGFyaWVzLiBCdXQgaXQgbWlzc2VzIGEgYm91bmRhcnkg Y29uZGl0aW9uIHdoZW4gdGhlCnJvdW5kZWQtdXAgZnJhZ21lbnQgc2l6ZSAocGt0X2xlbikgaXMg ZXhhY3RseSBza2Igc2l6ZS4gIFNwbGl0aW5nCnN1Y2ggYW4gc2tiIGlzIHBvaW50bGVzcyBhbmQg Y2F1c3NlcyBhIGtlcm5lbCB3YXJuaW5nIGFuZCBhYm9ydHMKdGhlIFNBQ0sgcHJvY2Vzc2luZy4g VGhpcyBwYXRjaCB1bml2ZXJzYWxseSBjaGVja3Mgc3VjaCBvdmVyLXNwbGl0CmJlZm9yZSBjYWxs aW5nIHRjcF9mcmFnbWVudCB0byBwcmV2ZW50IHRoZXNlIHVubmVjZXNzYXJ5IHdhcm5pbmdzLgoK Rml4ZXM6IGFkYjkyZGI4NTdlZSAoInRjcDogTWFrZSBTQUNLIGNvZGUgdG8gc3BsaXQgb25seSBh dCBtc3MgYm91bmRhcmllcyIpClNpZ25lZC1vZmYtYnk6IFl1Y2h1bmcgQ2hlbmcgPHljaGVuZ0Bn b29nbGUuY29tPgpTaWduZWQtb2ZmLWJ5OiBFcmljIER1bWF6ZXQgPGVkdW1hemV0QGdvb2dsZS5j b20+ClNpZ25lZC1vZmYtYnk6IFNvaGVpbCBIYXNzYXMgWWVnYW5laCA8c29oZWlsQGdvb2dsZS5j b20+CkFja2VkLWJ5OiBOZWFsIENhcmR3ZWxsIDxuY2FyZHdlbGxAZ29vZ2xlLmNvbT4KU2lnbmVk LW9mZi1ieTogRGF2aWQgUy4gTWlsbGVyIDxkYXZlbUBkYXZlbWxvZnQubmV0PgotLS0KIG5ldC9p cHY0L3RjcF9pbnB1dC5jIHwgOSArKysrKy0tLS0KIDEgZmlsZSBjaGFuZ2VkLCA1IGluc2VydGlv bnMoKyksIDQgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvbmV0L2lwdjQvdGNwX2lucHV0LmMg Yi9uZXQvaXB2NC90Y3BfaW5wdXQuYwppbmRleCA3NzI3ZmZlLi4yMjMzNWQ4IDEwMDY0NAotLS0g YS9uZXQvaXB2NC90Y3BfaW5wdXQuYworKysgYi9uZXQvaXB2NC90Y3BfaW5wdXQuYwpAQCAtMTE3 NywxMyArMTE3NywxNCBAQCBzdGF0aWMgaW50IHRjcF9tYXRjaF9za2JfdG9fc2FjayhzdHJ1Y3Qg c29jayAqc2ssIHN0cnVjdCBza19idWZmICpza2IsCiAJCSAqLwogCQlpZiAocGt0X2xlbiA+IG1z cykgewogCQkJdW5zaWduZWQgaW50IG5ld19sZW4gPSAocGt0X2xlbiAvIG1zcykgKiBtc3M7Ci0J CQlpZiAoIWluX3NhY2sgJiYgbmV3X2xlbiA8IHBrdF9sZW4pIHsKKwkJCWlmICghaW5fc2FjayAm JiBuZXdfbGVuIDwgcGt0X2xlbikKIAkJCQluZXdfbGVuICs9IG1zczsKLQkJCQlpZiAobmV3X2xl biA+PSBza2ItPmxlbikKLQkJCQkJcmV0dXJuIDA7Ci0JCQl9CiAJCQlwa3RfbGVuID0gbmV3X2xl bjsKIAkJfQorCisJCWlmIChwa3RfbGVuID49IHNrYi0+bGVuICYmICFpbl9zYWNrKQorCQkJcmV0 dXJuIDA7CisKIAkJZXJyID0gdGNwX2ZyYWdtZW50KHNrLCBza2IsIHBrdF9sZW4sIG1zcywgR0ZQ X0FUT01JQyk7CiAJCWlmIChlcnIgPCAwKQogCQkJcmV0dXJuIGVycjsKLS0gCjIuOS40CgoKRnJv bSBkNTBlODRjYzIyMDA5NTM4MzlkOWFmMWIxMzEzN2QwZTJlZmI1MWRjIE1vbiBTZXAgMTcgMDA6 MDA6MDAgMjAwMQpGcm9tOiBYaW4gTG9uZyA8bHVjaWVuLnhpbkBnbWFpbC5jb20+CkRhdGU6IEZy aSwgMTIgTWF5IDIwMTcgMTQ6Mzk6NTIgKzA4MDAKU3ViamVjdDogW1BBVENIIDEyLzM0XSBzY3Rw OiBmaXggc3JjIGFkZHJlc3Mgc2VsZWN0aW9uIGlmIHVzaW5nIHNlY29uZGFyeQogYWRkcmVzc2Vz IGZvciBpcHY2CgpbIFVwc3RyZWFtIGNvbW1pdCBkYmMyYjVlOWEwOWU5YTY2NjQ2NzlhNjY3ZmY4 MWNmZjZlNWYyNjQxIF0KCkNvbW1pdCAwY2E1MGQxMmZlNDYgKCJzY3RwOiBmaXggc3JjIGFkZHJl c3Mgc2VsZWN0aW9uIGlmIHVzaW5nIHNlY29uZGFyeQphZGRyZXNzZXMiKSBoYXMgZml4ZWQgYSBz cmMgYWRkcmVzcyBzZWxlY3Rpb24gaXNzdWUgd2hlbiB1c2luZyBzZWNvbmRhcnkKYWRkcmVzc2Vz IGZvciBpcHY0LgoKTm93IHNjdHAgaXB2NiBhbHNvIGhhcyB0aGUgc2ltaWxhciBpc3N1ZS4gV2hl biB1c2luZyBhIHNlY29uZGFyeSBhZGRyZXNzLApzY3RwX3Y2X2dldF9kc3QgdHJpZXMgdG8gY2hv b3NlIHRoZSBzYWRkciB3aGljaCBoYXMgdGhlIG1vc3Qgc2FtZSBiaXRzCndpdGggdGhlIGRhZGRy IGJ5IHNjdHBfdjZfYWRkcl9tYXRjaF9sZW4uIEl0IG1heSBtYWtlIHNvbWUgY2FzZXMgbm90IHdv cmsKYXMgZXhwZWN0ZWQuCgpob3N0QToKICBbMV0gZmQyMTozNTZiOjQ1OWE6Y2YxMDo6MTEgKGV0 aDEpCiAgWzJdIGZkMjE6MzU2Yjo0NTlhOmNmMjA6OjExIChldGgyKQoKaG9zdEI6CiAgW2FdIGZk MjE6MzU2Yjo0NTlhOmNmMzA6OjIgIChldGgxKQogIFtiXSBmZDIxOjM1NmI6NDU5YTpjZjQwOjoy ICAoZXRoMikKCnJvdXRlIGZyb20gaG9zdEEgdG8gaG9zdEI6CiAgZmQyMTozNTZiOjQ1OWE6Y2Yz MDo6LzY0IGRldiBldGgxICBtZXRyaWMgMTAyNCAgbXR1IDE1MDAKClRoZSBleHBlY3RlZCBwYXRo IHNob3VsZCBiZToKICBmZDIxOjM1NmI6NDU5YTpjZjEwOjoxMSA8LT4gZmQyMTozNTZiOjQ1OWE6 Y2YzMDo6MgpCdXQgYWRkclsyXSBtYXRjaGVzIGFkZHJbYV0gbW9yZSBiaXRzIHRoYW4gYWRkclsx XSBkb2VzLCBhY2NvcmRpbmcgdG8Kc2N0cF92Nl9hZGRyX21hdGNoX2xlbi4gSXQgY2F1c2VzIHRo ZSBwYXRoIHRvIGJlOgogIGZkMjE6MzU2Yjo0NTlhOmNmMjA6OjExIDwtPiBmZDIxOjM1NmI6NDU5 YTpjZjMwOjoyCgpUaGlzIHBhdGNoIGlzIHRvIGZpeCBpdCB3aXRoIHRoZSBzYW1lIHdheSBhcyBN YXJjZWxvJ3MgZml4IGZvciBzY3RwIGlwdjQuCkFzIG5vIGlwX2Rldl9maW5kIGZvciBpcHY2LCB0 aGlzIHBhdGNoIGlzIHRvIHVzZSBpcHY2X2Noa19hZGRyIHRvIGNoZWNrCmlmIHRoZSBzYWRkciBp cyBpbiBhIGRldiBpbnN0ZWFkLgoKTm90ZSB0aGF0IGZvciBiYWNrd2FyZHMgY29tcGF0aWJpbGl0 eSwgaXQgd2lsbCBzdGlsbCBkbyB0aGUgYWRkcl9tYXRjaF9sZW4KY2hlY2sgaGVyZSB3aGVuIG5v IG9wdGltYWwgaXMgZm91bmQuCgpSZXBvcnRlZC1ieTogUGF0cmljayBUYWxiZXJ0IDxwdGFsYmVy dEByZWRoYXQuY29tPgpTaWduZWQtb2ZmLWJ5OiBYaW4gTG9uZyA8bHVjaWVuLnhpbkBnbWFpbC5j b20+ClNpZ25lZC1vZmYtYnk6IERhdmlkIFMuIE1pbGxlciA8ZGF2ZW1AZGF2ZW1sb2Z0Lm5ldD4K LS0tCiBuZXQvc2N0cC9pcHY2LmMgfCA0NiArKysrKysrKysrKysrKysrKysrKysrKysrKysrKy0t LS0tLS0tLS0tLS0tLS0tCiAxIGZpbGUgY2hhbmdlZCwgMjkgaW5zZXJ0aW9ucygrKSwgMTcgZGVs ZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvbmV0L3NjdHAvaXB2Ni5jIGIvbmV0L3NjdHAvaXB2Ni5j CmluZGV4IDZhMjUzMmQuLmI5Y2JkZjUgMTAwNjQ0Ci0tLSBhL25ldC9zY3RwL2lwdjYuYworKysg Yi9uZXQvc2N0cC9pcHY2LmMKQEAgLTI0MCwxMiArMjQwLDEwIEBAIHN0YXRpYyB2b2lkIHNjdHBf djZfZ2V0X2RzdChzdHJ1Y3Qgc2N0cF90cmFuc3BvcnQgKnQsIHVuaW9uIHNjdHBfYWRkciAqc2Fk ZHIsCiAJc3RydWN0IHNjdHBfYmluZF9hZGRyICpicDsKIAlzdHJ1Y3QgaXB2Nl9waW5mbyAqbnAg PSBpbmV0Nl9zayhzayk7CiAJc3RydWN0IHNjdHBfc29ja2FkZHJfZW50cnkgKmxhZGRyOwotCXVu aW9uIHNjdHBfYWRkciAqYmFkZHIgPSBOVUxMOwogCXVuaW9uIHNjdHBfYWRkciAqZGFkZHIgPSAm dC0+aXBhZGRyOwogCXVuaW9uIHNjdHBfYWRkciBkc3Rfc2FkZHI7CiAJc3RydWN0IGluNl9hZGRy ICpmaW5hbF9wLCBmaW5hbDsKIAlfX3U4IG1hdGNobGVuID0gMDsKLQlfX3U4IGJtYXRjaGxlbjsK IAlzY3RwX3Njb3BlX3Qgc2NvcGU7CiAKIAltZW1zZXQoZmw2LCAwLCBzaXplb2Yoc3RydWN0IGZs b3dpNikpOwpAQCAtMzEyLDIzICszMTAsMzcgQEAgc3RhdGljIHZvaWQgc2N0cF92Nl9nZXRfZHN0 KHN0cnVjdCBzY3RwX3RyYW5zcG9ydCAqdCwgdW5pb24gc2N0cF9hZGRyICpzYWRkciwKIAkgKi8K IAlyY3VfcmVhZF9sb2NrKCk7CiAJbGlzdF9mb3JfZWFjaF9lbnRyeV9yY3UobGFkZHIsICZicC0+ YWRkcmVzc19saXN0LCBsaXN0KSB7Ci0JCWlmICghbGFkZHItPnZhbGlkKQorCQlzdHJ1Y3QgZHN0 X2VudHJ5ICpiZHN0OworCQlfX3U4IGJtYXRjaGxlbjsKKworCQlpZiAoIWxhZGRyLT52YWxpZCB8 fAorCQkgICAgbGFkZHItPnN0YXRlICE9IFNDVFBfQUREUl9TUkMgfHwKKwkJICAgIGxhZGRyLT5h LnNhLnNhX2ZhbWlseSAhPSBBRl9JTkVUNiB8fAorCQkgICAgc2NvcGUgPiBzY3RwX3Njb3BlKCZs YWRkci0+YSkpCiAJCQljb250aW51ZTsKLQkJaWYgKChsYWRkci0+c3RhdGUgPT0gU0NUUF9BRERS X1NSQykgJiYKLQkJICAgIChsYWRkci0+YS5zYS5zYV9mYW1pbHkgPT0gQUZfSU5FVDYpICYmCi0J CSAgICAoc2NvcGUgPD0gc2N0cF9zY29wZSgmbGFkZHItPmEpKSkgewotCQkJYm1hdGNobGVuID0g c2N0cF92Nl9hZGRyX21hdGNoX2xlbihkYWRkciwgJmxhZGRyLT5hKTsKLQkJCWlmICghYmFkZHIg fHwgKG1hdGNobGVuIDwgYm1hdGNobGVuKSkgewotCQkJCWJhZGRyID0gJmxhZGRyLT5hOwotCQkJ CW1hdGNobGVuID0gYm1hdGNobGVuOwotCQkJfQotCQl9Ci0JfQotCWlmIChiYWRkcikgewotCQlm bDYtPnNhZGRyID0gYmFkZHItPnY2LnNpbjZfYWRkcjsKLQkJZmw2LT5mbDZfc3BvcnQgPSBiYWRk ci0+djYuc2luNl9wb3J0OworCisJCWZsNi0+c2FkZHIgPSBsYWRkci0+YS52Ni5zaW42X2FkZHI7 CisJCWZsNi0+Zmw2X3Nwb3J0ID0gbGFkZHItPmEudjYuc2luNl9wb3J0OwogCQlmaW5hbF9wID0g Zmw2X3VwZGF0ZV9kc3QoZmw2LCByY3VfZGVyZWZlcmVuY2UobnAtPm9wdCksICZmaW5hbCk7Ci0J CWRzdCA9IGlwNl9kc3RfbG9va3VwX2Zsb3coc2ssIGZsNiwgZmluYWxfcCk7CisJCWJkc3QgPSBp cDZfZHN0X2xvb2t1cF9mbG93KHNrLCBmbDYsIGZpbmFsX3ApOworCisJCWlmICghSVNfRVJSKGJk c3QpICYmCisJCSAgICBpcHY2X2Noa19hZGRyKGRldl9uZXQoYmRzdC0+ZGV2KSwKKwkJCQkgICZs YWRkci0+YS52Ni5zaW42X2FkZHIsIGJkc3QtPmRldiwgMSkpIHsKKwkJCWlmICghSVNfRVJSX09S X05VTEwoZHN0KSkKKwkJCQlkc3RfcmVsZWFzZShkc3QpOworCQkJZHN0ID0gYmRzdDsKKwkJCWJy ZWFrOworCQl9CisKKwkJYm1hdGNobGVuID0gc2N0cF92Nl9hZGRyX21hdGNoX2xlbihkYWRkciwg JmxhZGRyLT5hKTsKKwkJaWYgKG1hdGNobGVuID4gYm1hdGNobGVuKQorCQkJY29udGludWU7CisK KwkJaWYgKCFJU19FUlJfT1JfTlVMTChkc3QpKQorCQkJZHN0X3JlbGVhc2UoZHN0KTsKKwkJZHN0 ID0gYmRzdDsKKwkJbWF0Y2hsZW4gPSBibWF0Y2hsZW47CiAJfQogCXJjdV9yZWFkX3VubG9jaygp OwogCi0tIAoyLjkuNAoKCkZyb20gODY3N2VjOTJkZDVkMjgxNzNlYmM1NTA5YzliMzU4OGQ3YmMy NWQ1MCBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJvbTogRXJpYyBEdW1hemV0IDxlZHVtYXpl dEBnb29nbGUuY29tPgpEYXRlOiBXZWQsIDE3IE1heSAyMDE3IDA3OjE2OjQwIC0wNzAwClN1Ympl Y3Q6IFtQQVRDSCAxMy8zNF0gc2N0cDogZG8gbm90IGluaGVyaXQgaXB2Nl97bWN8YWN8Zmx9X2xp c3QgZnJvbSBwYXJlbnQKClsgVXBzdHJlYW0gY29tbWl0IGZkY2VlMmNiYjg0Mzg3MDJlYTFiMzI4 ZmI2ZTBhYzVlOWE0MGM3ZjggXQoKU0NUUCBuZWVkcyBmaXhlcyBzaW1pbGFyIHRvIDgzZWFkZGFi NDM3OCAoImlwdjYvZGNjcDogZG8gbm90IGluaGVyaXQKaXB2Nl9tY19saXN0IGZyb20gcGFyZW50 IiksIG90aGVyd2lzZSBiYWQgdGhpbmdzIGNhbiBoYXBwZW4uCgpTaWduZWQtb2ZmLWJ5OiBFcmlj IER1bWF6ZXQgPGVkdW1hemV0QGdvb2dsZS5jb20+ClJlcG9ydGVkLWJ5OiBBbmRyZXkgS29ub3Zh bG92IDxhbmRyZXlrbnZsQGdvb2dsZS5jb20+ClRlc3RlZC1ieTogQW5kcmV5IEtvbm92YWxvdiA8 YW5kcmV5a252bEBnb29nbGUuY29tPgpTaWduZWQtb2ZmLWJ5OiBEYXZpZCBTLiBNaWxsZXIgPGRh dmVtQGRhdmVtbG9mdC5uZXQ+Ci0tLQogbmV0L3NjdHAvaXB2Ni5jIHwgMyArKysKIDEgZmlsZSBj aGFuZ2VkLCAzIGluc2VydGlvbnMoKykKCmRpZmYgLS1naXQgYS9uZXQvc2N0cC9pcHY2LmMgYi9u ZXQvc2N0cC9pcHY2LmMKaW5kZXggYjljYmRmNS4uMGMwOTA2MCAxMDA2NDQKLS0tIGEvbmV0L3Nj dHAvaXB2Ni5jCisrKyBiL25ldC9zY3RwL2lwdjYuYwpAQCAtNjc4LDYgKzY3OCw5IEBAIHN0YXRp YyBzdHJ1Y3Qgc29jayAqc2N0cF92Nl9jcmVhdGVfYWNjZXB0X3NrKHN0cnVjdCBzb2NrICpzaywK IAluZXducCA9IGluZXQ2X3NrKG5ld3NrKTsKIAogCW1lbWNweShuZXducCwgbnAsIHNpemVvZihz dHJ1Y3QgaXB2Nl9waW5mbykpOworCW5ld25wLT5pcHY2X21jX2xpc3QgPSBOVUxMOworCW5ld25w LT5pcHY2X2FjX2xpc3QgPSBOVUxMOworCW5ld25wLT5pcHY2X2ZsX2xpc3QgPSBOVUxMOwogCiAJ cmN1X3JlYWRfbG9jaygpOwogCW9wdCA9IHJjdV9kZXJlZmVyZW5jZShucC0+b3B0KTsKLS0gCjIu OS40CgoKRnJvbSAyNjYzZWVlYWJhZGQzMDE0MmI3MGYxZGQ4NTA3MWQ1OGFhOTYxNjg0IE1vbiBT ZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBEb3VnbGFzIENhZXRhbm8gZG9zIFNhbnRvcyA8ZG91 Z2xhc2NzQHRhZ2hvcy5jb20uYnI+CkRhdGU6IEZyaSwgMTIgTWF5IDIwMTcgMTU6MTk6MTUgLTAz MDAKU3ViamVjdDogW1BBVENIIDE0LzM0XSBuZXQvcGFja2V0OiBmaXggbWlzc2luZyBuZXRfZGV2 aWNlIHJlZmVyZW5jZSByZWxlYXNlCgpbIFVwc3RyZWFtIGNvbW1pdCBkMTliMTgzY2RjMWZhM2Q3 MGQ2YWJlMmE0YzM2OWU3NDhjZDdlYmI4IF0KCldoZW4gdXNpbmcgYSBUWCByaW5nIGJ1ZmZlciwg aWYgYW4gZXJyb3Igb2NjdXJzIHByb2Nlc3NpbmcgYSBjb250cm9sCm1lc3NhZ2UgKGUuZy4gaW52 YWxpZCBtZXNzYWdlKSwgdGhlIG5ldF9kZXZpY2UgcmVmZXJlbmNlIGlzIG5vdApyZWxlYXNlZC4K CkZpeGVzIGMxNGFjOTQ1MWMzNDggKCJzb2NrOiBlbmFibGUgdGltZXN0YW1waW5nIHVzaW5nIGNv bnRyb2wgbWVzc2FnZXMiKQpTaWduZWQtb2ZmLWJ5OiBEb3VnbGFzIENhZXRhbm8gZG9zIFNhbnRv cyA8ZG91Z2xhc2NzQHRhZ2hvcy5jb20uYnI+CkFja2VkLWJ5OiBTb2hlaWwgSGFzc2FzIFllZ2Fu ZWggPHNvaGVpbEBnb29nbGUuY29tPgpTaWduZWQtb2ZmLWJ5OiBEYXZpZCBTLiBNaWxsZXIgPGRh dmVtQGRhdmVtbG9mdC5uZXQ+Ci0tLQogbmV0L3BhY2tldC9hZl9wYWNrZXQuYyB8IDE0ICsrKysr KystLS0tLS0tCiAxIGZpbGUgY2hhbmdlZCwgNyBpbnNlcnRpb25zKCspLCA3IGRlbGV0aW9ucygt KQoKZGlmZiAtLWdpdCBhL25ldC9wYWNrZXQvYWZfcGFja2V0LmMgYi9uZXQvcGFja2V0L2FmX3Bh Y2tldC5jCmluZGV4IGNiNzZmZjMuLjZhNTYzZTYgMTAwNjQ0Ci0tLSBhL25ldC9wYWNrZXQvYWZf cGFja2V0LmMKKysrIGIvbmV0L3BhY2tldC9hZl9wYWNrZXQuYwpAQCAtMjY1MiwxMyArMjY1Miw2 IEBAIHN0YXRpYyBpbnQgdHBhY2tldF9zbmQoc3RydWN0IHBhY2tldF9zb2NrICpwbywgc3RydWN0 IG1zZ2hkciAqbXNnKQogCQlkZXYgPSBkZXZfZ2V0X2J5X2luZGV4KHNvY2tfbmV0KCZwby0+c2sp LCBzYWRkci0+c2xsX2lmaW5kZXgpOwogCX0KIAotCXNvY2tjLnRzZmxhZ3MgPSBwby0+c2suc2tf dHNmbGFnczsKLQlpZiAobXNnLT5tc2dfY29udHJvbGxlbikgewotCQllcnIgPSBzb2NrX2Ntc2df c2VuZCgmcG8tPnNrLCBtc2csICZzb2NrYyk7Ci0JCWlmICh1bmxpa2VseShlcnIpKQotCQkJZ290 byBvdXQ7Ci0JfQotCiAJZXJyID0gLUVOWElPOwogCWlmICh1bmxpa2VseShkZXYgPT0gTlVMTCkp CiAJCWdvdG8gb3V0OwpAQCAtMjY2Niw2ICsyNjU5LDEzIEBAIHN0YXRpYyBpbnQgdHBhY2tldF9z bmQoc3RydWN0IHBhY2tldF9zb2NrICpwbywgc3RydWN0IG1zZ2hkciAqbXNnKQogCWlmICh1bmxp a2VseSghKGRldi0+ZmxhZ3MgJiBJRkZfVVApKSkKIAkJZ290byBvdXRfcHV0OwogCisJc29ja2Mu dHNmbGFncyA9IHBvLT5zay5za190c2ZsYWdzOworCWlmIChtc2ctPm1zZ19jb250cm9sbGVuKSB7 CisJCWVyciA9IHNvY2tfY21zZ19zZW5kKCZwby0+c2ssIG1zZywgJnNvY2tjKTsKKwkJaWYgKHVu bGlrZWx5KGVycikpCisJCQlnb3RvIG91dF9wdXQ7CisJfQorCiAJaWYgKHBvLT5zay5za19zb2Nr ZXQtPnR5cGUgPT0gU09DS19SQVcpCiAJCXJlc2VydmUgPSBkZXYtPmhhcmRfaGVhZGVyX2xlbjsK IAlzaXplX21heCA9IHBvLT50eF9yaW5nLmZyYW1lX3NpemUKLS0gCjIuOS40CgoKRnJvbSAxMmQ2 ZjY4MjZkMzExZDliYzdkOGRlNGI2MDA0MTE4YTBmNDQzNjM4IE1vbiBTZXAgMTcgMDA6MDA6MDAg MjAwMQpGcm9tOiBHYWwgUHJlc3NtYW4gPGdhbHBAbWVsbGFub3guY29tPgpEYXRlOiBNb24sIDMg QXByIDIwMTcgMTU6MTE6MjIgKzAzMDAKU3ViamVjdDogW1BBVENIIDE1LzM0XSBuZXQvbWx4NWU6 IFVzZSB0aGUgY29ycmVjdCBwYXVzZSB2YWx1ZXMgZm9yIGV0aHRvb2wKIGFkdmVydGlzaW5nCgpb IFVwc3RyZWFtIGNvbW1pdCBiMzgzYjU0NGYyNjY2ZDY3NDQ2Yjk1MWE5YTk3YWYyMzlkYWZlZDVk IF0KClF1ZXJ5IHRoZSBvcGVyYXRpb25hbCBwYXVzZSBmcm9tIGZpcm13YXJlIChQRkNDIHJlZ2lz dGVyKSBpbnN0ZWFkIG9mCmFsd2F5cyBwYXNzaW5nIHplcm9zLgoKRml4ZXM6IDY2NWJjNTM5Njlk NyAoIm5ldC9tbHg1ZTogVXNlIG5ldyBldGh0b29sIGdldC9zZXQgbGluayBrc2V0dGluZ3MgQVBJ IikKU2lnbmVkLW9mZi1ieTogR2FsIFByZXNzbWFuIDxnYWxwQG1lbGxhbm94LmNvbT4KQ2M6IGtl cm5lbC10ZWFtQGZiLmNvbQpTaWduZWQtb2ZmLWJ5OiBTYWVlZCBNYWhhbWVlZCA8c2FlZWRtQG1l bGxhbm94LmNvbT4KLS0tCiBkcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUv ZW5fZXRodG9vbC5jIHwgNiArKysrKy0KIDEgZmlsZSBjaGFuZ2VkLCA1IGluc2VydGlvbnMoKyks IDEgZGVsZXRpb24oLSkKCmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5v eC9tbHg1L2NvcmUvZW5fZXRodG9vbC5jIGIvZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gv bWx4NS9jb3JlL2VuX2V0aHRvb2wuYwppbmRleCAxMjZjZmViLi42YTkxNTVmIDEwMDY0NAotLS0g YS9kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvZW5fZXRodG9vbC5jCisr KyBiL2RyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9lbl9ldGh0b29sLmMK QEAgLTgwNiw2ICs4MDYsOCBAQCBzdGF0aWMgaW50IG1seDVlX2dldF9saW5rX2tzZXR0aW5ncyhz dHJ1Y3QgbmV0X2RldmljZSAqbmV0ZGV2LAogCXN0cnVjdCBtbHg1ZV9wcml2ICpwcml2ICAgID0g bmV0ZGV2X3ByaXYobmV0ZGV2KTsKIAlzdHJ1Y3QgbWx4NV9jb3JlX2RldiAqbWRldiA9IHByaXYt Pm1kZXY7CiAJdTMyIG91dFtNTFg1X1NUX1NaX0RXKHB0eXNfcmVnKV0gPSB7MH07CisJdTMyIHJ4 X3BhdXNlID0gMDsKKwl1MzIgdHhfcGF1c2UgPSAwOwogCXUzMiBldGhfcHJvdG9fY2FwOwogCXUz MiBldGhfcHJvdG9fYWRtaW47CiAJdTMyIGV0aF9wcm90b19scDsKQEAgLTgyOCwxMSArODMwLDEz IEBAIHN0YXRpYyBpbnQgbWx4NWVfZ2V0X2xpbmtfa3NldHRpbmdzKHN0cnVjdCBuZXRfZGV2aWNl ICpuZXRkZXYsCiAJYW5fZGlzYWJsZV9hZG1pbiA9IE1MWDVfR0VUKHB0eXNfcmVnLCBvdXQsIGFu X2Rpc2FibGVfYWRtaW4pOwogCWFuX3N0YXR1cyAgICAgICAgPSBNTFg1X0dFVChwdHlzX3JlZywg b3V0LCBhbl9zdGF0dXMpOwogCisJbWx4NV9xdWVyeV9wb3J0X3BhdXNlKG1kZXYsICZyeF9wYXVz ZSwgJnR4X3BhdXNlKTsKKwogCWV0aHRvb2xfbGlua19rc2V0dGluZ3NfemVyb19saW5rX21vZGUo bGlua19rc2V0dGluZ3MsIHN1cHBvcnRlZCk7CiAJZXRodG9vbF9saW5rX2tzZXR0aW5nc196ZXJv X2xpbmtfbW9kZShsaW5rX2tzZXR0aW5ncywgYWR2ZXJ0aXNpbmcpOwogCiAJZ2V0X3N1cHBvcnRl ZChldGhfcHJvdG9fY2FwLCBsaW5rX2tzZXR0aW5ncyk7Ci0JZ2V0X2FkdmVydGlzaW5nKGV0aF9w cm90b19hZG1pbiwgMCwgMCwgbGlua19rc2V0dGluZ3MpOworCWdldF9hZHZlcnRpc2luZyhldGhf cHJvdG9fYWRtaW4sIHR4X3BhdXNlLCByeF9wYXVzZSwgbGlua19rc2V0dGluZ3MpOwogCWdldF9z cGVlZF9kdXBsZXgobmV0ZGV2LCBldGhfcHJvdG9fb3BlciwgbGlua19rc2V0dGluZ3MpOwogCiAJ ZXRoX3Byb3RvX29wZXIgPSBldGhfcHJvdG9fb3BlciA/IGV0aF9wcm90b19vcGVyIDogZXRoX3By b3RvX2NhcDsKLS0gCjIuOS40CgoKRnJvbSA3NTU0ZDEzYTMzYTQ1NzBhMTllMzk2NzdhNzk2MjI0 NDI1YzBjMjBhIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBHYWwgUHJlc3NtYW4gPGdh bHBAbWVsbGFub3guY29tPgpEYXRlOiBXZWQsIDE5IEFwciAyMDE3IDE0OjM1OjE1ICswMzAwClN1 YmplY3Q6IFtQQVRDSCAxNi8zNF0gbmV0L21seDVlOiBGaXggZXRodG9vbCBwYXVzZSBzdXBwb3J0 IGFuZCBhZHZlcnRpc2UKIHJlcG9ydGluZwoKWyBVcHN0cmVhbSBjb21taXQgZTNjMTk1MDM3MTJk NjM2MDIzOWIxOWMxNGNkZWQ1NmRkNjNjNDBkNyBdCgpQYXVzZSBiaXQgc2hvdWxkIHNldCB3aGVu IFJYIHBhdXNlIGlzIG9uLCBub3QgVFggcGF1c2UuCkFsc28sIHNldHRpbmcgQXN5bV9QYXVzZSBp cyBpbmNvcnJlY3QsIGFuZCBzaG91bGQgYmUgdHVybmVkIG9mZi4KCkZpeGVzOiA2NjViYzUzOTY5 ZDcgKCJuZXQvbWx4NWU6IFVzZSBuZXcgZXRodG9vbCBnZXQvc2V0IGxpbmsga3NldHRpbmdzIEFQ SSIpClNpZ25lZC1vZmYtYnk6IEdhbCBQcmVzc21hbiA8Z2FscEBtZWxsYW5veC5jb20+CkNjOiBr ZXJuZWwtdGVhbUBmYi5jb20KU2lnbmVkLW9mZi1ieTogU2FlZWQgTWFoYW1lZWQgPHNhZWVkbUBt ZWxsYW5veC5jb20+Ci0tLQogZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3Jl L2VuX2V0aHRvb2wuYyB8IDMgKy0tCiAxIGZpbGUgY2hhbmdlZCwgMSBpbnNlcnRpb24oKyksIDIg ZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gv bWx4NS9jb3JlL2VuX2V0aHRvb2wuYyBiL2RyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21s eDUvY29yZS9lbl9ldGh0b29sLmMKaW5kZXggNmE5MTU1Zi4uMzc0NGUyZiAxMDA2NDQKLS0tIGEv ZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2VuX2V0aHRvb2wuYworKysg Yi9kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvZW5fZXRodG9vbC5jCkBA IC03NTEsNyArNzUxLDYgQEAgc3RhdGljIHZvaWQgZ2V0X3N1cHBvcnRlZCh1MzIgZXRoX3Byb3Rv X2NhcCwKIAlwdHlzMmV0aHRvb2xfc3VwcG9ydGVkX3BvcnQobGlua19rc2V0dGluZ3MsIGV0aF9w cm90b19jYXApOwogCXB0eXMyZXRodG9vbF9zdXBwb3J0ZWRfbGluayhzdXBwb3J0ZWQsIGV0aF9w cm90b19jYXApOwogCWV0aHRvb2xfbGlua19rc2V0dGluZ3NfYWRkX2xpbmtfbW9kZShsaW5rX2tz ZXR0aW5ncywgc3VwcG9ydGVkLCBQYXVzZSk7Ci0JZXRodG9vbF9saW5rX2tzZXR0aW5nc19hZGRf bGlua19tb2RlKGxpbmtfa3NldHRpbmdzLCBzdXBwb3J0ZWQsIEFzeW1fUGF1c2UpOwogfQogCiBz dGF0aWMgdm9pZCBnZXRfYWR2ZXJ0aXNpbmcodTMyIGV0aF9wcm90b19jYXAsIHU4IHR4X3BhdXNl LApAQCAtNzYxLDcgKzc2MCw3IEBAIHN0YXRpYyB2b2lkIGdldF9hZHZlcnRpc2luZyh1MzIgZXRo X3Byb3RvX2NhcCwgdTggdHhfcGF1c2UsCiAJdW5zaWduZWQgbG9uZyAqYWR2ZXJ0aXNpbmcgPSBs aW5rX2tzZXR0aW5ncy0+bGlua19tb2Rlcy5hZHZlcnRpc2luZzsKIAogCXB0eXMyZXRodG9vbF9h ZHZlcl9saW5rKGFkdmVydGlzaW5nLCBldGhfcHJvdG9fY2FwKTsKLQlpZiAodHhfcGF1c2UpCisJ aWYgKHJ4X3BhdXNlKQogCQlldGh0b29sX2xpbmtfa3NldHRpbmdzX2FkZF9saW5rX21vZGUobGlu a19rc2V0dGluZ3MsIGFkdmVydGlzaW5nLCBQYXVzZSk7CiAJaWYgKHR4X3BhdXNlIF4gcnhfcGF1 c2UpCiAJCWV0aHRvb2xfbGlua19rc2V0dGluZ3NfYWRkX2xpbmtfbW9kZShsaW5rX2tzZXR0aW5n cywgYWR2ZXJ0aXNpbmcsIEFzeW1fUGF1c2UpOwotLSAKMi45LjQKCgpGcm9tIGM2Mzc0OWE4NWU0 N2ZkMDhiOGY5NmJiMTg0NDE1ZmU0OWEyNWFjYWEgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCkZy b206IFNvaGVpbCBIYXNzYXMgWWVnYW5laCA8c29oZWlsQGdvb2dsZS5jb20+CkRhdGU6IE1vbiwg MTUgTWF5IDIwMTcgMTc6MDU6NDcgLTA0MDAKU3ViamVjdDogW1BBVENIIDE3LzM0XSB0Y3A6IGVs aW1pbmF0ZSBuZWdhdGl2ZSByZW9yZGVyaW5nIGluCiB0Y3BfY2xlYW5fcnR4X3F1ZXVlCgpbIFVw c3RyZWFtIGNvbW1pdCBiYWZiYjljNzMyNDE3NjAwMjNkODk4MTE5MWRkZDMwYmIxYzZkYmFjIF0K CnRjcF9hY2soKSBjYW4gY2FsbCB0Y3BfZnJhZ21lbnQoKSB3aGljaCBtYXkgZGVkZWR1Y3QgdGhl CnZhbHVlIHRwLT5mYWNrZXRzX291dCB3aGVuIE1TUyBjaGFuZ2VzLiBXaGVuIHByaW9yX2ZhY2tl dHMKaXMgbGFyZ2VyIHRoYW4gdHAtPmZhY2tldHNfb3V0LCB0Y3BfY2xlYW5fcnR4X3F1ZXVlKCkg Y2FuCmludm9rZSB0Y3BfdXBkYXRlX3Jlb3JkZXJpbmcoKSB3aXRoIG5lZ2F0aXZlIHZhbHVlcy4g VGhpcwpyZXN1bHRzIGluIGFic3VyZCB0cC0+cmVvZGVyaW5nIHZhbHVlcyBoaWdoZXIgdGhhbgpz eXNjdGxfdGNwX21heF9yZW9yZGVyaW5nLgoKTm90ZSB0aGF0IHRjcF91cGRhdGVfcmVvcmRlcmlu ZyBpbmRlZWRzIHNldHMgdHAtPnJlb3JkZXJpbmcKdG8gbWluKHN5c2N0bF90Y3BfbWF4X3Jlb3Jk ZXJpbmcsIG1ldHJpYyksIGJ1dCBiZWNhdXNlCnRoZSBjb21wYXJpc29uIGlzIHNpZ25lZCwgYSBu ZWdhdGl2ZSBtZXRyaWMgYWx3YXlzIHdpbnMuCgpGaXhlczogYzdjYWY4ZDNlZDdhICgiW1RDUF06 IEZpeCByZW9yZCBkZXRlY3Rpb24gZHVlIHRvIHNuZF91bmEgY292ZXJlZCBob2xlcyIpClJlcG9y dGVkLWJ5OiBSZWJlY2NhIElzYWFjcyA8cmlzYWFjc0Bnb29nbGUuY29tPgpTaWduZWQtb2ZmLWJ5 OiBTb2hlaWwgSGFzc2FzIFllZ2FuZWggPHNvaGVpbEBnb29nbGUuY29tPgpTaWduZWQtb2ZmLWJ5 OiBOZWFsIENhcmR3ZWxsIDxuY2FyZHdlbGxAZ29vZ2xlLmNvbT4KU2lnbmVkLW9mZi1ieTogWXVj aHVuZyBDaGVuZyA8eWNoZW5nQGdvb2dsZS5jb20+ClNpZ25lZC1vZmYtYnk6IEVyaWMgRHVtYXpl dCA8ZWR1bWF6ZXRAZ29vZ2xlLmNvbT4KU2lnbmVkLW9mZi1ieTogRGF2aWQgUy4gTWlsbGVyIDxk YXZlbUBkYXZlbWxvZnQubmV0PgotLS0KIG5ldC9pcHY0L3RjcF9pbnB1dC5jIHwgMiArLQogMSBm aWxlIGNoYW5nZWQsIDEgaW5zZXJ0aW9uKCspLCAxIGRlbGV0aW9uKC0pCgpkaWZmIC0tZ2l0IGEv bmV0L2lwdjQvdGNwX2lucHV0LmMgYi9uZXQvaXB2NC90Y3BfaW5wdXQuYwppbmRleCAyMjMzNWQ4 Li4wMTMzNmFhIDEwMDY0NAotLS0gYS9uZXQvaXB2NC90Y3BfaW5wdXQuYworKysgYi9uZXQvaXB2 NC90Y3BfaW5wdXQuYwpAQCAtMzIzMyw3ICszMjMzLDcgQEAgc3RhdGljIGludCB0Y3BfY2xlYW5f cnR4X3F1ZXVlKHN0cnVjdCBzb2NrICpzaywgaW50IHByaW9yX2ZhY2tldHMsCiAJCQlpbnQgZGVs dGE7CiAKIAkJCS8qIE5vbi1yZXRyYW5zbWl0dGVkIGhvbGUgZ290IGZpbGxlZD8gVGhhdCdzIHJl b3JkZXJpbmcgKi8KLQkJCWlmIChyZW9yZCA8IHByaW9yX2ZhY2tldHMpCisJCQlpZiAocmVvcmQg PCBwcmlvcl9mYWNrZXRzICYmIHJlb3JkIDw9IHRwLT5mYWNrZXRzX291dCkKIAkJCQl0Y3BfdXBk YXRlX3Jlb3JkZXJpbmcoc2ssIHRwLT5mYWNrZXRzX291dCAtIHJlb3JkLCAwKTsKIAogCQkJZGVs dGEgPSB0Y3BfaXNfZmFjayh0cCkgPyBwa3RzX2Fja2VkIDoKLS0gCjIuOS40CgoKRnJvbSA1NTc2 OGRmNjc1NjBlNDQ3MTQ1OTlhMmZlMmQyYTdhZDJkNmU5YzQ4IE1vbiBTZXAgMTcgMDA6MDA6MDAg MjAwMQpGcm9tOiBEYXZpZCBBaGVybiA8ZHNhaGVybkBnbWFpbC5jb20+CkRhdGU6IE1vbiwgMTUg TWF5IDIwMTcgMjM6MTk6MTcgLTA3MDAKU3ViamVjdDogW1BBVENIIDE4LzM0XSBuZXQ6IEltcHJv dmUgaGFuZGxpbmcgb2YgZmFpbHVyZXMgb24gbGluayBhbmQgcm91dGUKIGR1bXBzCgpbIFVwc3Ry ZWFtIGNvbW1pdCBmNmM1Nzc1ZmYwYmZhNjJiMDcyZmFjZTZiZjFkNDBmNjU5ZjE5NGIyIF0KCklu IGdlbmVyYWwsIHJ0bmV0bGluayBkdW1wcyBkbyBub3QgYW50aWNpcGF0ZSBmYWlsdXJlIHRvIGR1 bXAgYSBzaW5nbGUKb2JqZWN0IChlLmcuLCBsaW5rIG9yIHJvdXRlKSBvbiBhIHNpbmdsZSBwYXNz LiBBcyBib3RoIHJvdXRlIGFuZCBsaW5rCm9iamVjdHMgaGF2ZSBncm93biB2aWEgbW9yZSBhdHRy aWJ1dGVzLCB0aGF0IGlzIG5vIGxvbmdlciBhIGdpdmVuLgoKbmV0bGluayBkdW1wcyBjYW4gaGFu ZGxlIGEgZmFpbHVyZSBpZiB0aGUgZHVtcCBmdW5jdGlvbiByZXR1cm5zIGFuCmVycm9yOyBzcGVj aWZpY2FsbHksIG5ldGxpbmtfZHVtcCBhZGRzIHRoZSByZXR1cm4gY29kZSB0byB0aGUgcmVzcG9u c2UKaWYgaXQgaXMgPD0gMCBzbyB1c2Vyc3BhY2UgaXMgbm90aWZpZWQgb2YgdGhlIGZhaWx1cmUu IFRoZSBtaXNzaW5nCnBpZWNlIGlzIHRoZSBydG5ldGxpbmsgZHVtcCBmdW5jdGlvbnMgcmV0dXJu aW5nIHRoZSBlcnJvci4KCkZpeCByb3V0ZSBhbmQgbGluayBkdW1wIGZ1bmN0aW9ucyB0byByZXR1 cm4gdGhlIGVycm9ycyBpZiBubyBvYmplY3QgaXMKYWRkZWQgdG8gYW4gc2tiIChkZXRlY3RlZCBi eSBza2ItPmxlbiAhPSAwKS4gSVB2NiByb3V0ZSBkdW1wcwoocnQ2X2R1bXBfcm91dGUpIGFscmVh ZHkgcmV0dXJuIHRoZSBlcnJvcjsgdGhpcyBwYXRjaCB1cGRhdGVzIElQdjQgYW5kCmxpbmsgZHVt cHMuIE90aGVyIGR1bXAgZnVuY3Rpb25zIG1heSBuZWVkIHRvIGJlIGFqdXN0ZWQgYXMgd2VsbC4K ClJlcG9ydGVkLWJ5OiBKYW4gTW9za3l0byBNYXRlamthIDxtcUB1Y3cuY3o+ClNpZ25lZC1vZmYt Ynk6IERhdmlkIEFoZXJuIDxkc2FoZXJuQGdtYWlsLmNvbT4KU2lnbmVkLW9mZi1ieTogRGF2aWQg Uy4gTWlsbGVyIDxkYXZlbUBkYXZlbWxvZnQubmV0PgotLS0KIG5ldC9jb3JlL3J0bmV0bGluay5j ICAgIHwgMzYgKysrKysrKysrKysrKysrKysrKysrKysrLS0tLS0tLS0tLS0tCiBuZXQvaXB2NC9m aWJfZnJvbnRlbmQuYyB8IDE1ICsrKysrKysrKysrLS0tLQogbmV0L2lwdjQvZmliX3RyaWUuYyAg ICAgfCAyNiArKysrKysrKysrKysrKy0tLS0tLS0tLS0tLQogMyBmaWxlcyBjaGFuZ2VkLCA0OSBp bnNlcnRpb25zKCspLCAyOCBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9uZXQvY29yZS9ydG5l dGxpbmsuYyBiL25ldC9jb3JlL3J0bmV0bGluay5jCmluZGV4IGI0OTBhZjYuLjFkOTE2MDcgMTAw NjQ0Ci0tLSBhL25ldC9jb3JlL3J0bmV0bGluay5jCisrKyBiL25ldC9jb3JlL3J0bmV0bGluay5j CkBAIC0xNjE3LDEzICsxNjE3LDEzIEBAIHN0YXRpYyBpbnQgcnRubF9kdW1wX2lmaW5mbyhzdHJ1 Y3Qgc2tfYnVmZiAqc2tiLCBzdHJ1Y3QgbmV0bGlua19jYWxsYmFjayAqY2IpCiAJCQkJCSAgICAg ICBjYi0+bmxoLT5ubG1zZ19zZXEsIDAsCiAJCQkJCSAgICAgICBmbGFncywKIAkJCQkJICAgICAg IGV4dF9maWx0ZXJfbWFzayk7Ci0JCQkvKiBJZiB3ZSByYW4gb3V0IG9mIHJvb20gb24gdGhlIGZp cnN0IG1lc3NhZ2UsCi0JCQkgKiB3ZSdyZSBpbiB0cm91YmxlCi0JCQkgKi8KLQkJCVdBUk5fT04o KGVyciA9PSAtRU1TR1NJWkUpICYmIChza2ItPmxlbiA9PSAwKSk7CiAKLQkJCWlmIChlcnIgPCAw KQotCQkJCWdvdG8gb3V0OworCQkJaWYgKGVyciA8IDApIHsKKwkJCQlpZiAobGlrZWx5KHNrYi0+ bGVuKSkKKwkJCQkJZ290byBvdXQ7CisKKwkJCQlnb3RvIG91dF9lcnI7CisJCQl9CiAKIAkJCW5s X2R1bXBfY2hlY2tfY29uc2lzdGVudChjYiwgbmxtc2dfaGRyKHNrYikpOwogY29udDoKQEAgLTE2 MzEsMTAgKzE2MzEsMTIgQEAgc3RhdGljIGludCBydG5sX2R1bXBfaWZpbmZvKHN0cnVjdCBza19i dWZmICpza2IsIHN0cnVjdCBuZXRsaW5rX2NhbGxiYWNrICpjYikKIAkJfQogCX0KIG91dDoKKwll cnIgPSBza2ItPmxlbjsKK291dF9lcnI6CiAJY2ItPmFyZ3NbMV0gPSBpZHg7CiAJY2ItPmFyZ3Nb MF0gPSBoOwogCi0JcmV0dXJuIHNrYi0+bGVuOworCXJldHVybiBlcnI7CiB9CiAKIGludCBydG5s X25sYV9wYXJzZV9pZmxhKHN0cnVjdCBubGF0dHIgKip0YiwgY29uc3Qgc3RydWN0IG5sYXR0ciAq aGVhZCwgaW50IGxlbikKQEAgLTM0MTMsOCArMzQxNSwxMiBAQCBzdGF0aWMgaW50IHJ0bmxfYnJp ZGdlX2dldGxpbmsoc3RydWN0IHNrX2J1ZmYgKnNrYiwgc3RydWN0IG5ldGxpbmtfY2FsbGJhY2sg KmNiKQogCQkJCWVyciA9IGJyX2Rldi0+bmV0ZGV2X29wcy0+bmRvX2JyaWRnZV9nZXRsaW5rKAog CQkJCQkJc2tiLCBwb3J0aWQsIHNlcSwgZGV2LAogCQkJCQkJZmlsdGVyX21hc2ssIE5MTV9GX01V TFRJKTsKLQkJCQlpZiAoZXJyIDwgMCAmJiBlcnIgIT0gLUVPUE5PVFNVUFApCi0JCQkJCWJyZWFr OworCQkJCWlmIChlcnIgPCAwICYmIGVyciAhPSAtRU9QTk9UU1VQUCkgeworCQkJCQlpZiAobGlr ZWx5KHNrYi0+bGVuKSkKKwkJCQkJCWJyZWFrOworCisJCQkJCWdvdG8gb3V0X2VycjsKKwkJCQl9 CiAJCQl9CiAJCQlpZHgrKzsKIAkJfQpAQCAtMzQyNSwxNiArMzQzMSwyMiBAQCBzdGF0aWMgaW50 IHJ0bmxfYnJpZGdlX2dldGxpbmsoc3RydWN0IHNrX2J1ZmYgKnNrYiwgc3RydWN0IG5ldGxpbmtf Y2FsbGJhY2sgKmNiKQogCQkJCQkJCSAgICAgIHNlcSwgZGV2LAogCQkJCQkJCSAgICAgIGZpbHRl cl9tYXNrLAogCQkJCQkJCSAgICAgIE5MTV9GX01VTFRJKTsKLQkJCQlpZiAoZXJyIDwgMCAmJiBl cnIgIT0gLUVPUE5PVFNVUFApCi0JCQkJCWJyZWFrOworCQkJCWlmIChlcnIgPCAwICYmIGVyciAh PSAtRU9QTk9UU1VQUCkgeworCQkJCQlpZiAobGlrZWx5KHNrYi0+bGVuKSkKKwkJCQkJCWJyZWFr OworCisJCQkJCWdvdG8gb3V0X2VycjsKKwkJCQl9CiAJCQl9CiAJCQlpZHgrKzsKIAkJfQogCX0K KwllcnIgPSBza2ItPmxlbjsKK291dF9lcnI6CiAJcmN1X3JlYWRfdW5sb2NrKCk7CiAJY2ItPmFy Z3NbMF0gPSBpZHg7CiAKLQlyZXR1cm4gc2tiLT5sZW47CisJcmV0dXJuIGVycjsKIH0KIAogc3Rh dGljIGlubGluZSBzaXplX3QgYnJpZGdlX25sbXNnX3NpemUodm9pZCkKZGlmZiAtLWdpdCBhL25l dC9pcHY0L2ZpYl9mcm9udGVuZC5jIGIvbmV0L2lwdjQvZmliX2Zyb250ZW5kLmMKaW5kZXggNjc4 OWU0OC4uM2Q5MjUzNCAxMDA2NDQKLS0tIGEvbmV0L2lwdjQvZmliX2Zyb250ZW5kLmMKKysrIGIv bmV0L2lwdjQvZmliX2Zyb250ZW5kLmMKQEAgLTc1OCw3ICs3NTgsNyBAQCBzdGF0aWMgaW50IGlu ZXRfZHVtcF9maWIoc3RydWN0IHNrX2J1ZmYgKnNrYiwgc3RydWN0IG5ldGxpbmtfY2FsbGJhY2sg KmNiKQogCXVuc2lnbmVkIGludCBlID0gMCwgc19lOwogCXN0cnVjdCBmaWJfdGFibGUgKnRiOwog CXN0cnVjdCBobGlzdF9oZWFkICpoZWFkOwotCWludCBkdW1wZWQgPSAwOworCWludCBkdW1wZWQg PSAwLCBlcnI7CiAKIAlpZiAobmxtc2dfbGVuKGNiLT5ubGgpID49IHNpemVvZihzdHJ1Y3QgcnRt c2cpICYmCiAJICAgICgoc3RydWN0IHJ0bXNnICopIG5sbXNnX2RhdGEoY2ItPm5saCkpLT5ydG1f ZmxhZ3MgJiBSVE1fRl9DTE9ORUQpCkBAIC03NzgsMjAgKzc3OCwyNyBAQCBzdGF0aWMgaW50IGlu ZXRfZHVtcF9maWIoc3RydWN0IHNrX2J1ZmYgKnNrYiwgc3RydWN0IG5ldGxpbmtfY2FsbGJhY2sg KmNiKQogCQkJaWYgKGR1bXBlZCkKIAkJCQltZW1zZXQoJmNiLT5hcmdzWzJdLCAwLCBzaXplb2Yo Y2ItPmFyZ3MpIC0KIAkJCQkJCSAyICogc2l6ZW9mKGNiLT5hcmdzWzBdKSk7Ci0JCQlpZiAoZmli X3RhYmxlX2R1bXAodGIsIHNrYiwgY2IpIDwgMCkKLQkJCQlnb3RvIG91dDsKKwkJCWVyciA9IGZp Yl90YWJsZV9kdW1wKHRiLCBza2IsIGNiKTsKKwkJCWlmIChlcnIgPCAwKSB7CisJCQkJaWYgKGxp a2VseShza2ItPmxlbikpCisJCQkJCWdvdG8gb3V0OworCisJCQkJZ290byBvdXRfZXJyOworCQkJ fQogCQkJZHVtcGVkID0gMTsKIG5leHQ6CiAJCQllKys7CiAJCX0KIAl9CiBvdXQ6CisJZXJyID0g c2tiLT5sZW47CitvdXRfZXJyOgogCXJjdV9yZWFkX3VubG9jaygpOwogCiAJY2ItPmFyZ3NbMV0g PSBlOwogCWNiLT5hcmdzWzBdID0gaDsKIAotCXJldHVybiBza2ItPmxlbjsKKwlyZXR1cm4gZXJy OwogfQogCiAvKiBQcmVwYXJlIGFuZCBmZWVkIGludHJhLWtlcm5lbCByb3V0aW5nIHJlcXVlc3Qu CmRpZmYgLS1naXQgYS9uZXQvaXB2NC9maWJfdHJpZS5jIGIvbmV0L2lwdjQvZmliX3RyaWUuYwpp bmRleCBlMzY2NWJmLi5lZjQwYmI2IDEwMDY0NAotLS0gYS9uZXQvaXB2NC9maWJfdHJpZS5jCisr KyBiL25ldC9pcHY0L2ZpYl90cmllLmMKQEAgLTE5MzIsNiArMTkzMiw4IEBAIHN0YXRpYyBpbnQg Zm5fdHJpZV9kdW1wX2xlYWYoc3RydWN0IGtleV92ZWN0b3IgKmwsIHN0cnVjdCBmaWJfdGFibGUg KnRiLAogCiAJLyogcmN1X3JlYWRfbG9jayBpcyBob2xkIGJ5IGNhbGxlciAqLwogCWhsaXN0X2Zv cl9lYWNoX2VudHJ5X3JjdShmYSwgJmwtPmxlYWYsIGZhX2xpc3QpIHsKKwkJaW50IGVycjsKKwog CQlpZiAoaSA8IHNfaSkgewogCQkJaSsrOwogCQkJY29udGludWU7CkBAIC0xOTQyLDE3ICsxOTQ0 LDE0IEBAIHN0YXRpYyBpbnQgZm5fdHJpZV9kdW1wX2xlYWYoc3RydWN0IGtleV92ZWN0b3IgKmws IHN0cnVjdCBmaWJfdGFibGUgKnRiLAogCQkJY29udGludWU7CiAJCX0KIAotCQlpZiAoZmliX2R1 bXBfaW5mbyhza2IsIE5FVExJTktfQ0IoY2ItPnNrYikucG9ydGlkLAotCQkJCSAgY2ItPm5saC0+ bmxtc2dfc2VxLAotCQkJCSAgUlRNX05FV1JPVVRFLAotCQkJCSAgdGItPnRiX2lkLAotCQkJCSAg ZmEtPmZhX3R5cGUsCi0JCQkJICB4a2V5LAotCQkJCSAgS0VZTEVOR1RIIC0gZmEtPmZhX3NsZW4s Ci0JCQkJICBmYS0+ZmFfdG9zLAotCQkJCSAgZmEtPmZhX2luZm8sIE5MTV9GX01VTFRJKSA8IDAp IHsKKwkJZXJyID0gZmliX2R1bXBfaW5mbyhza2IsIE5FVExJTktfQ0IoY2ItPnNrYikucG9ydGlk LAorCQkJCSAgICBjYi0+bmxoLT5ubG1zZ19zZXEsIFJUTV9ORVdST1VURSwKKwkJCQkgICAgdGIt PnRiX2lkLCBmYS0+ZmFfdHlwZSwKKwkJCQkgICAgeGtleSwgS0VZTEVOR1RIIC0gZmEtPmZhX3Ns ZW4sCisJCQkJICAgIGZhLT5mYV90b3MsIGZhLT5mYV9pbmZvLCBOTE1fRl9NVUxUSSk7CisJCWlm IChlcnIgPCAwKSB7CiAJCQljYi0+YXJnc1s0XSA9IGk7Ci0JCQlyZXR1cm4gLTE7CisJCQlyZXR1 cm4gZXJyOwogCQl9CiAJCWkrKzsKIAl9CkBAIC0xOTc0LDEwICsxOTczLDEzIEBAIGludCBmaWJf dGFibGVfZHVtcChzdHJ1Y3QgZmliX3RhYmxlICp0Yiwgc3RydWN0IHNrX2J1ZmYgKnNrYiwKIAl0 X2tleSBrZXkgPSBjYi0+YXJnc1szXTsKIAogCXdoaWxlICgobCA9IGxlYWZfd2Fsa19yY3UoJnRw LCBrZXkpKSAhPSBOVUxMKSB7Ci0JCWlmIChmbl90cmllX2R1bXBfbGVhZihsLCB0Yiwgc2tiLCBj YikgPCAwKSB7CisJCWludCBlcnI7CisKKwkJZXJyID0gZm5fdHJpZV9kdW1wX2xlYWYobCwgdGIs IHNrYiwgY2IpOworCQlpZiAoZXJyIDwgMCkgewogCQkJY2ItPmFyZ3NbM10gPSBrZXk7CiAJCQlj Yi0+YXJnc1syXSA9IGNvdW50OwotCQkJcmV0dXJuIC0xOworCQkJcmV0dXJuIGVycjsKIAkJfQog CiAJCSsrY291bnQ7Ci0tIAoyLjkuNAoKCkZyb20gMWRiZWNhNWQxODgxYzYzYmJmOTMxZjYxMDIw YjFmNTg2NTkzNWE1YiBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJvbTogQ3JhaWcgR2FsbGVr IDxrcmFpZ0Bnb29nbGUuY29tPgpEYXRlOiBUdWUsIDE2IE1heSAyMDE3IDE0OjM2OjIzIC0wNDAw ClN1YmplY3Q6IFtQQVRDSCAxOS8zNF0gaXB2NjogUHJldmVudCBvdmVycnVuIHdoZW4gcGFyc2lu ZyB2NiBoZWFkZXIgb3B0aW9ucwoKWyBVcHN0cmVhbSBjb21taXQgMjQyMzQ5NmFmMzVkOTRhODcx NTZiMDYzZWE1Y2VkZmZjMTBhNzBhMSBdCgpUaGUgS0FTQU4gd2FybmluZyByZXBvdGVkIGJlbG93 IHdhcyBkaXNjb3ZlcmVkIHdpdGggYSBzeXprYWxsZXIKcHJvZ3JhbS4gIFRoZSByZXByb2R1Y2Vy IGlzIGJhc2ljYWxseToKICBpbnQgcyA9IHNvY2tldChBRl9JTkVUNiwgU09DS19SQVcsIE5FWFRI RFJfSE9QKTsKICBzZW5kKHMsICZvbmVfYnl0ZV9vZl9kYXRhLCAxLCBNU0dfTU9SRSk7CiAgc2Vu ZChzLCAmbW9yZV90aGFuX210dV9ieXRlc19kYXRhLCAyMDAwLCAwKTsKClRoZSBzb2NrZXQoKSBj YWxsIHNldHMgdGhlIG5leHRoZHIgZmllbGQgb2YgdGhlIHY2IGhlYWRlciB0bwpORVhUSERSX0hP UCwgdGhlIGZpcnN0IHNlbmQgY2FsbCBwcmltZXMgdGhlIHBheWxvYWQgd2l0aCBhIG5vbiB6ZXJv CmJ5dGUgb2YgZGF0YSwgYW5kIHRoZSBzZWNvbmQgc2VuZCBjYWxsIHRyaWdnZXJzIHRoZSBmcmFn bWVudGF0aW9uIHBhdGguCgpUaGUgZnJhZ21lbnRhdGlvbiBjb2RlIHRyaWVzIHRvIHBhcnNlIHRo ZSBoZWFkZXIgb3B0aW9ucyBpbiBvcmRlcgp0byBmaWd1cmUgb3V0IHdoZXJlIHRvIGluc2VydCB0 aGUgZnJhZ21lbnQgb3B0aW9uLiAgU2luY2UgbmV4dGhkciBwb2ludHMKdG8gYW4gaW52YWxpZCBv cHRpb24sIHRoZSBjYWxjdWxhdGlvbiBvZiB0aGUgc2l6ZSBvZiB0aGUgbmV0d29yayBoZWFkZXIK Y2FuIG1hZGUgdG8gYmUgbXVjaCBsYXJnZXIgdGhhbiB0aGUgbGluZWFyIHNlY3Rpb24gb2YgdGhl IHNrYiBhbmQgZGF0YQppcyByZWFkIG91dHNpZGUgb2YgaXQuCgpUaGlzIGZpeCBtYWtlcyBpcDZf ZmluZF8xc3RmcmFnIHJldHVybiBhbiBlcnJvciBpZiBpdCBkZXRlY3RzCnJ1bm5pbmcgb3V0LW9m LWJvdW5kcy4KClsgICA0Mi4zNjE0ODddID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQpbICAgNDIuMzY0NDEyXSBCVUc6IEtB U0FOOiBzbGFiLW91dC1vZi1ib3VuZHMgaW4gaXA2X2ZyYWdtZW50KzB4MTFjOC8weDM3MzAKWyAg IDQyLjM2NTQ3MV0gUmVhZCBvZiBzaXplIDg0MCBhdCBhZGRyIGZmZmY4ODAwMDk2OWU3OTggYnkg dGFzayBpcDZfZnJhZ21lbnQtb28vMzc4OQpbICAgNDIuMzY2NDY5XQpbICAgNDIuMzY2Njk2XSBD UFU6IDEgUElEOiAzNzg5IENvbW06IGlwNl9mcmFnbWVudC1vbyBOb3QgdGFpbnRlZCA0LjExLjAr ICM0MQpbICAgNDIuMzY3NjI4XSBIYXJkd2FyZSBuYW1lOiBRRU1VIFN0YW5kYXJkIFBDIChpNDQw RlggKyBQSUlYLCAxOTk2KSwgQklPUyAxLjEwLjEtMXVidW50dTEgMDQvMDEvMjAxNApbICAgNDIu MzY4ODI0XSBDYWxsIFRyYWNlOgpbICAgNDIuMzY5MTgzXSAgZHVtcF9zdGFjaysweGIzLzB4MTBi ClsgICA0Mi4zNjk2NjRdICBwcmludF9hZGRyZXNzX2Rlc2NyaXB0aW9uKzB4NzMvMHgyOTAKWyAg IDQyLjM3MDMyNV0gIGthc2FuX3JlcG9ydCsweDI1Mi8weDM3MApbICAgNDIuMzcwODM5XSAgPyBp cDZfZnJhZ21lbnQrMHgxMWM4LzB4MzczMApbICAgNDIuMzcxMzk2XSAgY2hlY2tfbWVtb3J5X3Jl Z2lvbisweDEzYy8weDFhMApbICAgNDIuMzcxOTc4XSAgbWVtY3B5KzB4MjMvMHg1MApbICAgNDIu MzcyMzk1XSAgaXA2X2ZyYWdtZW50KzB4MTFjOC8weDM3MzAKWyAgIDQyLjM3MjkyMF0gID8gbmZf Y3RfZXhwZWN0X3VucmVnaXN0ZXJfbm90aWZpZXIrMHgxMTAvMHgxMTAKWyAgIDQyLjM3MzY4MV0g ID8gaXA2X2NvcHlfbWV0YWRhdGErMHg3ZjAvMHg3ZjAKWyAgIDQyLjM3NDI2M10gID8gaXA2X2Zv cndhcmQrMHgyZTMwLzB4MmUzMApbICAgNDIuMzc0ODAzXSAgaXA2X2ZpbmlzaF9vdXRwdXQrMHg1 ODQvMHg5OTAKWyAgIDQyLjM3NTM1MF0gIGlwNl9vdXRwdXQrMHgxYjcvMHg2OTAKWyAgIDQyLjM3 NTgzNl0gID8gaXA2X2ZpbmlzaF9vdXRwdXQrMHg5OTAvMHg5OTAKWyAgIDQyLjM3NjQxMV0gID8g aXA2X2ZyYWdtZW50KzB4MzczMC8weDM3MzAKWyAgIDQyLjM3Njk2OF0gIGlwNl9sb2NhbF9vdXQr MHg5NS8weDE2MApbICAgNDIuMzc3NDcxXSAgaXA2X3NlbmRfc2tiKzB4YTEvMHgzMzAKWyAgIDQy LjM3Nzk2OV0gIGlwNl9wdXNoX3BlbmRpbmdfZnJhbWVzKzB4YjMvMHhlMApbICAgNDIuMzc4NTg5 XSAgcmF3djZfc2VuZG1zZysweDIwNTEvMHgyZGIwClsgICA0Mi4zNzkxMjldICA/IHJhd3Y2X2Jp bmQrMHg4YjAvMHg4YjAKWyAgIDQyLjM3OTYzM10gID8gX2NvcHlfZnJvbV91c2VyKzB4ODQvMHhl MApbICAgNDIuMzgwMTkzXSAgPyBkZWJ1Z19jaGVja19ub19sb2Nrc19mcmVlZCsweDI5MC8weDI5 MApbICAgNDIuMzgwODc4XSAgPyBfX19zeXNfc2VuZG1zZysweDE2Mi8weDkzMApbICAgNDIuMzgx NDI3XSAgPyByY3VfcmVhZF9sb2NrX3NjaGVkX2hlbGQrMHhhMy8weDEyMApbICAgNDIuMzgyMDc0 XSAgPyBzb2NrX2hhc19wZXJtKzB4MWY2LzB4MjkwClsgICA0Mi4zODI2MTRdICA/IF9fX3N5c19z ZW5kbXNnKzB4MTY3LzB4OTMwClsgICA0Mi4zODMxNzNdICA/IGxvY2tfZG93bmdyYWRlKzB4NjYw LzB4NjYwClsgICA0Mi4zODM3MjddICBpbmV0X3NlbmRtc2crMHgxMjMvMHg1MDAKWyAgIDQyLjM4 NDIyNl0gID8gaW5ldF9zZW5kbXNnKzB4MTIzLzB4NTAwClsgICA0Mi4zODQ3NDhdICA/IGluZXRf cmVjdm1zZysweDU0MC8weDU0MApbICAgNDIuMzg1MjYzXSAgc29ja19zZW5kbXNnKzB4Y2EvMHgx MTAKWyAgIDQyLjM4NTc1OF0gIFNZU0Nfc2VuZHRvKzB4MjE3LzB4MzgwClsgICA0Mi4zODYyNDld ICA/IFNZU0NfY29ubmVjdCsweDMxMC8weDMxMApbICAgNDIuMzg2NzgzXSAgPyBfX21pZ2h0X2Zh dWx0KzB4MTEwLzB4MWQwClsgICA0Mi4zODczMjRdICA/IGxvY2tfZG93bmdyYWRlKzB4NjYwLzB4 NjYwClsgICA0Mi4zODc4ODBdICA/IF9fZmdldF9saWdodCsweGExLzB4MWYwClsgICA0Mi4zODg0 MDNdICA/IF9fZmRnZXQrMHgxOC8weDIwClsgICA0Mi4zODg4NTFdICA/IHNvY2tfY29tbW9uX3Nl dHNvY2tvcHQrMHg5NS8weGQwClsgICA0Mi4zODk0NzJdICA/IFN5U19zZXRzb2Nrb3B0KzB4MTdm LzB4MjYwClsgICA0Mi4zOTAwMjFdICA/IGVudHJ5X1NZU0NBTExfNjRfZmFzdHBhdGgrMHg1LzB4 YmUKWyAgIDQyLjM5MDY1MF0gIFN5U19zZW5kdG8rMHg0MC8weDUwClsgICA0Mi4zOTExMDNdICBl bnRyeV9TWVNDQUxMXzY0X2Zhc3RwYXRoKzB4MWYvMHhiZQpbICAgNDIuMzkxNzMxXSBSSVA6IDAw MzM6MHg3ZmJiYjcxMWUzODMKWyAgIDQyLjM5MjIxN10gUlNQOiAwMDJiOjAwMDA3ZmZmZjRkMzRm MjggRUZMQUdTOiAwMDAwMDI0NiBPUklHX1JBWDogMDAwMDAwMDAwMDAwMDAyYwpbICAgNDIuMzkz MjM1XSBSQVg6IGZmZmZmZmZmZmZmZmZmZGEgUkJYOiAwMDAwMDAwMDAwMDAwMDAwIFJDWDogMDAw MDdmYmJiNzExZTM4MwpbICAgNDIuMzk0MTk1XSBSRFg6IDAwMDAwMDAwMDAwMDEwMDAgUlNJOiAw MDAwN2ZmZmY0ZDM0ZjYwIFJESTogMDAwMDAwMDAwMDAwMDAwMwpbICAgNDIuMzk1MTQ1XSBSQlA6 IDAwMDAwMDAwMDAwMDAwNDYgUjA4OiAwMDAwN2ZmZmY0ZDM0ZjQwIFIwOTogMDAwMDAwMDAwMDAw MDAxOApbICAgNDIuMzk2MDU2XSBSMTA6IDAwMDAwMDAwMDAwMDAwMDAgUjExOiAwMDAwMDAwMDAw MDAwMjQ2IFIxMjogMDAwMDAwMDAwMDQwMGFhZApbICAgNDIuMzk2NTk4XSBSMTM6IDAwMDAwMDAw MDAwMDAwNjYgUjE0OiAwMDAwN2ZmZmY0ZDM0ZWUwIFIxNTogMDAwMDdmYmJiNzE3YWYwMApbICAg NDIuMzk3MjU3XQpbICAgNDIuMzk3NDExXSBBbGxvY2F0ZWQgYnkgdGFzayAzNzg5OgpbICAgNDIu Mzk3NzAyXSAgc2F2ZV9zdGFja190cmFjZSsweDE2LzB4MjAKWyAgIDQyLjM5ODAwNV0gIHNhdmVf c3RhY2srMHg0Ni8weGQwClsgICA0Mi4zOTgyNjddICBrYXNhbl9rbWFsbG9jKzB4YWQvMHhlMApb ICAgNDIuMzk4NTQ4XSAga2FzYW5fc2xhYl9hbGxvYysweDEyLzB4MjAKWyAgIDQyLjM5ODg0OF0g IF9fa21hbGxvY19ub2RlX3RyYWNrX2NhbGxlcisweGNiLzB4MzgwClsgICA0Mi4zOTkyMjRdICBf X2ttYWxsb2NfcmVzZXJ2ZS5pc3JhLjMyKzB4NDEvMHhlMApbICAgNDIuMzk5NjU0XSAgX19hbGxv Y19za2IrMHhmOC8weDU4MApbICAgNDIuNDAwMDAzXSAgc29ja193bWFsbG9jKzB4YWIvMHhmMApb ICAgNDIuNDAwMzQ2XSAgX19pcDZfYXBwZW5kX2RhdGEuaXNyYS40MSsweDI0NzIvMHgzM2QwClsg ICA0Mi40MDA4MTNdICBpcDZfYXBwZW5kX2RhdGErMHgxYTgvMHgyZjAKWyAgIDQyLjQwMTEyMl0g IHJhd3Y2X3NlbmRtc2crMHgxMWVlLzB4MmRiMApbICAgNDIuNDAxNTA1XSAgaW5ldF9zZW5kbXNn KzB4MTIzLzB4NTAwClsgICA0Mi40MDE4NjBdICBzb2NrX3NlbmRtc2crMHhjYS8weDExMApbICAg NDIuNDAyMjA5XSAgX19fc3lzX3NlbmRtc2crMHg3Y2IvMHg5MzAKWyAgIDQyLjQwMjU4Ml0gIF9f c3lzX3NlbmRtc2crMHhkOS8weDE5MApbICAgNDIuNDAyOTQxXSAgU3lTX3NlbmRtc2crMHgyZC8w eDUwClsgICA0Mi40MDMyNzNdICBlbnRyeV9TWVNDQUxMXzY0X2Zhc3RwYXRoKzB4MWYvMHhiZQpb ICAgNDIuNDAzNzE4XQpbICAgNDIuNDAzODcxXSBGcmVlZCBieSB0YXNrIDE3OTQ6ClsgICA0Mi40 MDQxNDZdICBzYXZlX3N0YWNrX3RyYWNlKzB4MTYvMHgyMApbICAgNDIuNDA0NTE1XSAgc2F2ZV9z dGFjaysweDQ2LzB4ZDAKWyAgIDQyLjQwNDgyN10gIGthc2FuX3NsYWJfZnJlZSsweDcyLzB4YzAK WyAgIDQyLjQwNTE2N10gIGtmcmVlKzB4ZTgvMHgyYjAKWyAgIDQyLjQwNTQ2Ml0gIHNrYl9mcmVl X2hlYWQrMHg3NC8weGIwClsgICA0Mi40MDU4MDZdICBza2JfcmVsZWFzZV9kYXRhKzB4MzBlLzB4 M2EwClsgICA0Mi40MDYxOThdICBza2JfcmVsZWFzZV9hbGwrMHg0YS8weDYwClsgICA0Mi40MDY1 NjNdICBjb25zdW1lX3NrYisweDExMy8weDJlMApbICAgNDIuNDA2OTEwXSAgc2tiX2ZyZWVfZGF0 YWdyYW0rMHgxYS8weGUwClsgICA0Mi40MDcyODhdICBuZXRsaW5rX3JlY3Ztc2crMHg2MGQvMHhl NDAKWyAgIDQyLjQwNzY2N10gIHNvY2tfcmVjdm1zZysweGQ3LzB4MTEwClsgICA0Mi40MDgwMjJd ICBfX19zeXNfcmVjdm1zZysweDI1Yy8weDU4MApbICAgNDIuNDA4Mzk1XSAgX19zeXNfcmVjdm1z ZysweGQ2LzB4MTkwClsgICA0Mi40MDg3NTNdICBTeVNfcmVjdm1zZysweDJkLzB4NTAKWyAgIDQy LjQwOTA4Nl0gIGVudHJ5X1NZU0NBTExfNjRfZmFzdHBhdGgrMHgxZi8weGJlClsgICA0Mi40MDk1 MTNdClsgICA0Mi40MDk2NjVdIFRoZSBidWdneSBhZGRyZXNzIGJlbG9uZ3MgdG8gdGhlIG9iamVj dCBhdCBmZmZmODgwMDA5NjllNzgwClsgICA0Mi40MDk2NjVdICB3aGljaCBiZWxvbmdzIHRvIHRo ZSBjYWNoZSBrbWFsbG9jLTUxMiBvZiBzaXplIDUxMgpbICAgNDIuNDEwODQ2XSBUaGUgYnVnZ3kg YWRkcmVzcyBpcyBsb2NhdGVkIDI0IGJ5dGVzIGluc2lkZSBvZgpbICAgNDIuNDEwODQ2XSAgNTEy LWJ5dGUgcmVnaW9uIFtmZmZmODgwMDA5NjllNzgwLCBmZmZmODgwMDA5NjllOTgwKQpbICAgNDIu NDExOTQxXSBUaGUgYnVnZ3kgYWRkcmVzcyBiZWxvbmdzIHRvIHRoZSBwYWdlOgpbICAgNDIuNDEy NDA1XSBwYWdlOmZmZmZlYTAwMDAyNWE3ODAgY291bnQ6MSBtYXBjb3VudDowIG1hcHBpbmc6ICAg ICAgICAgIChudWxsKSBpbmRleDoweDAgY29tcG91bmRfbWFwY291bnQ6IDAKWyAgIDQyLjQxMzI5 OF0gZmxhZ3M6IDB4MTAwMDAwMDAwMDA4MTAwKHNsYWJ8aGVhZCkKWyAgIDQyLjQxMzcyOV0gcmF3 OiAwMTAwMDAwMDAwMDA4MTAwIDAwMDAwMDAwMDAwMDAwMDAgMDAwMDAwMDAwMDAwMDAwMCAwMDAw MDAwMTgwMGMwMDBjClsgICA0Mi40MTQzODddIHJhdzogZmZmZmVhMDAwMDJhOTUwMCAwMDAwMDAw OTAwMDAwMDA3IGZmZmY4ODAwMGM0MDEyODAgMDAwMDAwMDAwMDAwMDAwMApbICAgNDIuNDE1MDc0 XSBwYWdlIGR1bXBlZCBiZWNhdXNlOiBrYXNhbjogYmFkIGFjY2VzcyBkZXRlY3RlZApbICAgNDIu NDE1NjA0XQpbICAgNDIuNDE1NzU3XSBNZW1vcnkgc3RhdGUgYXJvdW5kIHRoZSBidWdneSBhZGRy ZXNzOgpbICAgNDIuNDE2MjIyXSAgZmZmZjg4MDAwOTY5ZTg4MDogMDAgMDAgMDAgMDAgMDAgMDAg MDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAKWyAgIDQyLjQxNjkwNF0gIGZmZmY4ODAwMDk2 OWU5MDA6IDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwClsg ICA0Mi40MTc1OTFdID5mZmZmODgwMDA5NjllOTgwOiBmYyBmYyBmYyBmYyBmYyBmYyBmYyBmYyBm YyBmYyBmYyBmYyBmYyBmYyBmYyBmYwpbICAgNDIuNDE4MjczXSAgICAgICAgICAgICAgICAgICAg XgpbICAgNDIuNDE4NTg4XSAgZmZmZjg4MDAwOTY5ZWEwMDogZmIgZmIgZmIgZmIgZmIgZmIgZmIg ZmIgZmIgZmIgZmIgZmIgZmIgZmIgZmIgZmIKWyAgIDQyLjQxOTI3M10gIGZmZmY4ODAwMDk2OWVh ODA6IGZiIGZiIGZiIGZiIGZiIGZiIGZiIGZiIGZiIGZiIGZiIGZiIGZiIGZiIGZiIGZiClsgICA0 Mi40MTk4ODJdID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PQoKUmVwb3J0ZWQtYnk6IEFuZHJleSBLb25vdmFsb3YgPGFuZHJl eWtudmxAZ29vZ2xlLmNvbT4KU2lnbmVkLW9mZi1ieTogQ3JhaWcgR2FsbGVrIDxrcmFpZ0Bnb29n bGUuY29tPgpTaWduZWQtb2ZmLWJ5OiBEYXZpZCBTLiBNaWxsZXIgPGRhdmVtQGRhdmVtbG9mdC5u ZXQ+Ci0tLQogbmV0L2lwdjYvaXA2X29mZmxvYWQuYyB8ICAyICsrCiBuZXQvaXB2Ni9pcDZfb3V0 cHV0LmMgIHwgIDQgKysrKwogbmV0L2lwdjYvb3V0cHV0X2NvcmUuYyB8IDE0ICsrKysrKysrLS0t LS0tCiBuZXQvaXB2Ni91ZHBfb2ZmbG9hZC5jIHwgIDIgKysKIDQgZmlsZXMgY2hhbmdlZCwgMTYg aW5zZXJ0aW9ucygrKSwgNiBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9uZXQvaXB2Ni9pcDZf b2ZmbG9hZC5jIGIvbmV0L2lwdjYvaXA2X29mZmxvYWQuYwppbmRleCAzM2IwNGVjLi45ODgxYTg3 IDEwMDY0NAotLS0gYS9uZXQvaXB2Ni9pcDZfb2ZmbG9hZC5jCisrKyBiL25ldC9pcHY2L2lwNl9v ZmZsb2FkLmMKQEAgLTExNyw2ICsxMTcsOCBAQCBzdGF0aWMgc3RydWN0IHNrX2J1ZmYgKmlwdjZf Z3NvX3NlZ21lbnQoc3RydWN0IHNrX2J1ZmYgKnNrYiwKIAogCQlpZiAodWRwZnJhZykgewogCQkJ dW5mcmFnX2lwNmhsZW4gPSBpcDZfZmluZF8xc3RmcmFnb3B0KHNrYiwgJnByZXZoZHIpOworCQkJ aWYgKHVuZnJhZ19pcDZobGVuIDwgMCkKKwkJCQlyZXR1cm4gRVJSX1BUUih1bmZyYWdfaXA2aGxl bik7CiAJCQlmcHRyID0gKHN0cnVjdCBmcmFnX2hkciAqKSgodTggKilpcHY2aCArIHVuZnJhZ19p cDZobGVuKTsKIAkJCWZwdHItPmZyYWdfb2ZmID0gaHRvbnMob2Zmc2V0KTsKIAkJCWlmIChza2It Pm5leHQpCmRpZmYgLS1naXQgYS9uZXQvaXB2Ni9pcDZfb3V0cHV0LmMgYi9uZXQvaXB2Ni9pcDZf b3V0cHV0LmMKaW5kZXggZTI3YjhmZC4uNmUwYmI3NyAxMDA2NDQKLS0tIGEvbmV0L2lwdjYvaXA2 X291dHB1dC5jCisrKyBiL25ldC9pcHY2L2lwNl9vdXRwdXQuYwpAQCAtNTg3LDYgKzU4NywxMCBA QCBpbnQgaXA2X2ZyYWdtZW50KHN0cnVjdCBuZXQgKm5ldCwgc3RydWN0IHNvY2sgKnNrLCBzdHJ1 Y3Qgc2tfYnVmZiAqc2tiLAogCXU4ICpwcmV2aGRyLCBuZXh0aGRyID0gMDsKIAogCWhsZW4gPSBp cDZfZmluZF8xc3RmcmFnb3B0KHNrYiwgJnByZXZoZHIpOworCWlmIChobGVuIDwgMCkgeworCQll cnIgPSBobGVuOworCQlnb3RvIGZhaWw7CisJfQogCW5leHRoZHIgPSAqcHJldmhkcjsKIAogCW10 dSA9IGlwNl9za2JfZHN0X210dShza2IpOwpkaWZmIC0tZ2l0IGEvbmV0L2lwdjYvb3V0cHV0X2Nv cmUuYyBiL25ldC9pcHY2L291dHB1dF9jb3JlLmMKaW5kZXggY2Q0MjUyMy4uZTkwNjViOCAxMDA2 NDQKLS0tIGEvbmV0L2lwdjYvb3V0cHV0X2NvcmUuYworKysgYi9uZXQvaXB2Ni9vdXRwdXRfY29y ZS5jCkBAIC03OSwxNCArNzksMTMgQEAgRVhQT1JUX1NZTUJPTChpcHY2X3NlbGVjdF9pZGVudCk7 CiBpbnQgaXA2X2ZpbmRfMXN0ZnJhZ29wdChzdHJ1Y3Qgc2tfYnVmZiAqc2tiLCB1OCAqKm5leHRo ZHIpCiB7CiAJdTE2IG9mZnNldCA9IHNpemVvZihzdHJ1Y3QgaXB2Nmhkcik7Ci0Jc3RydWN0IGlw djZfb3B0X2hkciAqZXh0aGRyID0KLQkJCQkoc3RydWN0IGlwdjZfb3B0X2hkciAqKShpcHY2X2hk cihza2IpICsgMSk7CiAJdW5zaWduZWQgaW50IHBhY2tldF9sZW4gPSBza2JfdGFpbF9wb2ludGVy KHNrYikgLQogCQlza2JfbmV0d29ya19oZWFkZXIoc2tiKTsKIAlpbnQgZm91bmRfcmhkciA9IDA7 CiAJKm5leHRoZHIgPSAmaXB2Nl9oZHIoc2tiKS0+bmV4dGhkcjsKIAotCXdoaWxlIChvZmZzZXQg KyAxIDw9IHBhY2tldF9sZW4pIHsKKwl3aGlsZSAob2Zmc2V0IDw9IHBhY2tldF9sZW4pIHsKKwkJ c3RydWN0IGlwdjZfb3B0X2hkciAqZXh0aGRyOwogCiAJCXN3aXRjaCAoKipuZXh0aGRyKSB7CiAK QEAgLTEwNywxMyArMTA2LDE2IEBAIGludCBpcDZfZmluZF8xc3RmcmFnb3B0KHN0cnVjdCBza19i dWZmICpza2IsIHU4ICoqbmV4dGhkcikKIAkJCXJldHVybiBvZmZzZXQ7CiAJCX0KIAotCQlvZmZz ZXQgKz0gaXB2Nl9vcHRsZW4oZXh0aGRyKTsKLQkJKm5leHRoZHIgPSAmZXh0aGRyLT5uZXh0aGRy OworCQlpZiAob2Zmc2V0ICsgc2l6ZW9mKHN0cnVjdCBpcHY2X29wdF9oZHIpID4gcGFja2V0X2xl bikKKwkJCXJldHVybiAtRUlOVkFMOworCiAJCWV4dGhkciA9IChzdHJ1Y3QgaXB2Nl9vcHRfaGRy ICopKHNrYl9uZXR3b3JrX2hlYWRlcihza2IpICsKIAkJCQkJCSBvZmZzZXQpOworCQlvZmZzZXQg Kz0gaXB2Nl9vcHRsZW4oZXh0aGRyKTsKKwkJKm5leHRoZHIgPSAmZXh0aGRyLT5uZXh0aGRyOwog CX0KIAotCXJldHVybiBvZmZzZXQ7CisJcmV0dXJuIC1FSU5WQUw7CiB9CiBFWFBPUlRfU1lNQk9M KGlwNl9maW5kXzFzdGZyYWdvcHQpOwogCmRpZmYgLS1naXQgYS9uZXQvaXB2Ni91ZHBfb2ZmbG9h ZC5jIGIvbmV0L2lwdjYvdWRwX29mZmxvYWQuYwppbmRleCBhYzg1OGM0Li5iMzQ4Y2ZmIDEwMDY0 NAotLS0gYS9uZXQvaXB2Ni91ZHBfb2ZmbG9hZC5jCisrKyBiL25ldC9pcHY2L3VkcF9vZmZsb2Fk LmMKQEAgLTkxLDYgKzkxLDggQEAgc3RhdGljIHN0cnVjdCBza19idWZmICp1ZHA2X3Vmb19mcmFn bWVudChzdHJ1Y3Qgc2tfYnVmZiAqc2tiLAogCQkgKiBieXRlcyB0byBpbnNlcnQgZnJhZ21lbnQg aGVhZGVyLgogCQkgKi8KIAkJdW5mcmFnX2lwNmhsZW4gPSBpcDZfZmluZF8xc3RmcmFnb3B0KHNr YiwgJnByZXZoZHIpOworCQlpZiAodW5mcmFnX2lwNmhsZW4gPCAwKQorCQkJcmV0dXJuIEVSUl9Q VFIodW5mcmFnX2lwNmhsZW4pOwogCQluZXh0aGRyID0gKnByZXZoZHI7CiAJCSpwcmV2aGRyID0g TkVYVEhEUl9GUkFHTUVOVDsKIAkJdW5mcmFnX2xlbiA9IChza2JfbmV0d29ya19oZWFkZXIoc2ti KSAtIHNrYl9tYWNfaGVhZGVyKHNrYikpICsKLS0gCjIuOS40CgoKRnJvbSBhMWMyODk2NjQ3NWUw YjE1NGQ4OTUxNzk3MTkxYjdjYjNiY2U1OTkzIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9t OiAiRGF2aWQgUy4gTWlsbGVyIiA8ZGF2ZW1AZGF2ZW1sb2Z0Lm5ldD4KRGF0ZTogV2VkLCAxNyBN YXkgMjAxNyAyMjo1NDoxMSAtMDQwMApTdWJqZWN0OiBbUEFUQ0ggMjAvMzRdIGlwdjY6IENoZWNr IGlwNl9maW5kXzFzdGZyYWdvcHQoKSByZXR1cm4gdmFsdWUKIHByb3Blcmx5LgoKWyBVcHN0cmVh bSBjb21taXQgN2RkN2ViOTUxM2JkMDIxODRkNDVmMDAwYWI2OWQ3OGNiMWZhMTUzMSBdCgpEbyBu b3QgdXNlIHVuc2lnbmVkIHZhcmlhYmxlcyB0byBzZWUgaWYgaXQgcmV0dXJucyBhIG5lZ2F0aXZl CmVycm9yIG9yIG5vdC4KCkZpeGVzOiAyNDIzNDk2YWYzNWQgKCJpcHY2OiBQcmV2ZW50IG92ZXJy dW4gd2hlbiBwYXJzaW5nIHY2IGhlYWRlciBvcHRpb25zIikKUmVwb3J0ZWQtYnk6IEp1bGlhIExh d2FsbCA8anVsaWEubGF3YWxsQGxpcDYuZnI+ClNpZ25lZC1vZmYtYnk6IERhdmlkIFMuIE1pbGxl ciA8ZGF2ZW1AZGF2ZW1sb2Z0Lm5ldD4KLS0tCiBuZXQvaXB2Ni9pcDZfb2ZmbG9hZC5jIHwgOSAr KysrLS0tLS0KIG5ldC9pcHY2L2lwNl9vdXRwdXQuYyAgfCA3ICsrKy0tLS0KIG5ldC9pcHY2L3Vk cF9vZmZsb2FkLmMgfCA4ICsrKysrLS0tCiAzIGZpbGVzIGNoYW5nZWQsIDEyIGluc2VydGlvbnMo KyksIDEyIGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL25ldC9pcHY2L2lwNl9vZmZsb2FkLmMg Yi9uZXQvaXB2Ni9pcDZfb2ZmbG9hZC5jCmluZGV4IDk4ODFhODcuLjAxMzA4NmIgMTAwNjQ0Ci0t LSBhL25ldC9pcHY2L2lwNl9vZmZsb2FkLmMKKysrIGIvbmV0L2lwdjYvaXA2X29mZmxvYWQuYwpA QCAtNjMsNyArNjMsNiBAQCBzdGF0aWMgc3RydWN0IHNrX2J1ZmYgKmlwdjZfZ3NvX3NlZ21lbnQo c3RydWN0IHNrX2J1ZmYgKnNrYiwKIAljb25zdCBzdHJ1Y3QgbmV0X29mZmxvYWQgKm9wczsKIAlp bnQgcHJvdG87CiAJc3RydWN0IGZyYWdfaGRyICpmcHRyOwotCXVuc2lnbmVkIGludCB1bmZyYWdf aXA2aGxlbjsKIAl1bnNpZ25lZCBpbnQgcGF5bG9hZF9sZW47CiAJdTggKnByZXZoZHI7CiAJaW50 IG9mZnNldCA9IDA7CkBAIC0xMTYsMTAgKzExNSwxMCBAQCBzdGF0aWMgc3RydWN0IHNrX2J1ZmYg KmlwdjZfZ3NvX3NlZ21lbnQoc3RydWN0IHNrX2J1ZmYgKnNrYiwKIAkJc2tiLT5uZXR3b3JrX2hl YWRlciA9ICh1OCAqKWlwdjZoIC0gc2tiLT5oZWFkOwogCiAJCWlmICh1ZHBmcmFnKSB7Ci0JCQl1 bmZyYWdfaXA2aGxlbiA9IGlwNl9maW5kXzFzdGZyYWdvcHQoc2tiLCAmcHJldmhkcik7Ci0JCQlp ZiAodW5mcmFnX2lwNmhsZW4gPCAwKQotCQkJCXJldHVybiBFUlJfUFRSKHVuZnJhZ19pcDZobGVu KTsKLQkJCWZwdHIgPSAoc3RydWN0IGZyYWdfaGRyICopKCh1OCAqKWlwdjZoICsgdW5mcmFnX2lw NmhsZW4pOworCQkJaW50IGVyciA9IGlwNl9maW5kXzFzdGZyYWdvcHQoc2tiLCAmcHJldmhkcik7 CisJCQlpZiAoZXJyIDwgMCkKKwkJCQlyZXR1cm4gRVJSX1BUUihlcnIpOworCQkJZnB0ciA9IChz dHJ1Y3QgZnJhZ19oZHIgKikoKHU4ICopaXB2NmggKyBlcnIpOwogCQkJZnB0ci0+ZnJhZ19vZmYg PSBodG9ucyhvZmZzZXQpOwogCQkJaWYgKHNrYi0+bmV4dCkKIAkJCQlmcHRyLT5mcmFnX29mZiB8 PSBodG9ucyhJUDZfTUYpOwpkaWZmIC0tZ2l0IGEvbmV0L2lwdjYvaXA2X291dHB1dC5jIGIvbmV0 L2lwdjYvaXA2X291dHB1dC5jCmluZGV4IDZlMGJiNzcuLmIxZThlZTUgMTAwNjQ0Ci0tLSBhL25l dC9pcHY2L2lwNl9vdXRwdXQuYworKysgYi9uZXQvaXB2Ni9pcDZfb3V0cHV0LmMKQEAgLTU4Niwx MSArNTg2LDEwIEBAIGludCBpcDZfZnJhZ21lbnQoc3RydWN0IG5ldCAqbmV0LCBzdHJ1Y3Qgc29j ayAqc2ssIHN0cnVjdCBza19idWZmICpza2IsCiAJaW50IHB0ciwgb2Zmc2V0ID0gMCwgZXJyID0g MDsKIAl1OCAqcHJldmhkciwgbmV4dGhkciA9IDA7CiAKLQlobGVuID0gaXA2X2ZpbmRfMXN0ZnJh Z29wdChza2IsICZwcmV2aGRyKTsKLQlpZiAoaGxlbiA8IDApIHsKLQkJZXJyID0gaGxlbjsKKwll cnIgPSBpcDZfZmluZF8xc3RmcmFnb3B0KHNrYiwgJnByZXZoZHIpOworCWlmIChlcnIgPCAwKQog CQlnb3RvIGZhaWw7Ci0JfQorCWhsZW4gPSBlcnI7CiAJbmV4dGhkciA9ICpwcmV2aGRyOwogCiAJ bXR1ID0gaXA2X3NrYl9kc3RfbXR1KHNrYik7CmRpZmYgLS1naXQgYS9uZXQvaXB2Ni91ZHBfb2Zm bG9hZC5jIGIvbmV0L2lwdjYvdWRwX29mZmxvYWQuYwppbmRleCBiMzQ4Y2ZmLi5hMjI2N2Y4IDEw MDY0NAotLS0gYS9uZXQvaXB2Ni91ZHBfb2ZmbG9hZC5jCisrKyBiL25ldC9pcHY2L3VkcF9vZmZs b2FkLmMKQEAgLTI5LDYgKzI5LDcgQEAgc3RhdGljIHN0cnVjdCBza19idWZmICp1ZHA2X3Vmb19m cmFnbWVudChzdHJ1Y3Qgc2tfYnVmZiAqc2tiLAogCXU4IGZyYWdfaGRyX3N6ID0gc2l6ZW9mKHN0 cnVjdCBmcmFnX2hkcik7CiAJX193c3VtIGNzdW07CiAJaW50IHRubF9obGVuOworCWludCBlcnI7 CiAKIAltc3MgPSBza2Jfc2hpbmZvKHNrYiktPmdzb19zaXplOwogCWlmICh1bmxpa2VseShza2It PmxlbiA8PSBtc3MpKQpAQCAtOTAsOSArOTEsMTAgQEAgc3RhdGljIHN0cnVjdCBza19idWZmICp1 ZHA2X3Vmb19mcmFnbWVudChzdHJ1Y3Qgc2tfYnVmZiAqc2tiLAogCQkvKiBGaW5kIHRoZSB1bmZy YWdtZW50YWJsZSBoZWFkZXIgYW5kIHNoaWZ0IGl0IGxlZnQgYnkgZnJhZ19oZHJfc3oKIAkJICog Ynl0ZXMgdG8gaW5zZXJ0IGZyYWdtZW50IGhlYWRlci4KIAkJICovCi0JCXVuZnJhZ19pcDZobGVu ID0gaXA2X2ZpbmRfMXN0ZnJhZ29wdChza2IsICZwcmV2aGRyKTsKLQkJaWYgKHVuZnJhZ19pcDZo bGVuIDwgMCkKLQkJCXJldHVybiBFUlJfUFRSKHVuZnJhZ19pcDZobGVuKTsKKwkJZXJyID0gaXA2 X2ZpbmRfMXN0ZnJhZ29wdChza2IsICZwcmV2aGRyKTsKKwkJaWYgKGVyciA8IDApCisJCQlyZXR1 cm4gRVJSX1BUUihlcnIpOworCQl1bmZyYWdfaXA2aGxlbiA9IGVycjsKIAkJbmV4dGhkciA9ICpw cmV2aGRyOwogCQkqcHJldmhkciA9IE5FWFRIRFJfRlJBR01FTlQ7CiAJCXVuZnJhZ19sZW4gPSAo c2tiX25ldHdvcmtfaGVhZGVyKHNrYikgLSBza2JfbWFjX2hlYWRlcihza2IpKSArCi0tIAoyLjku NAoKCkZyb20gYWU0ZWMxNzJkMmY3MGNjM2I5NTFiOTdlMjQzMzg2NDk4MzIwNWFjNyBNb24gU2Vw IDE3IDAwOjAwOjAwIDIwMDEKRnJvbTogVG9iaWFzIEp1bmdlbCA8dG9iaWFzLmp1bmdlbEBiaXNk bi5kZT4KRGF0ZTogV2VkLCAxNyBNYXkgMjAxNyAwOToyOToxMiArMDIwMApTdWJqZWN0OiBbUEFU Q0ggMjEvMzRdIGJyaWRnZTogbmV0bGluazogY2hlY2sgdmxhbl9kZWZhdWx0X3B2aWQgcmFuZ2UK ClsgVXBzdHJlYW0gY29tbWl0IGEyODU4NjAyMTFiZjI1N2IwZTZkNTIyZGFjNjAwNjc5NGJlMzQ4 YWYgXQoKQ3VycmVudGx5IGl0IGlzIGFsbG93ZWQgdG8gc2V0IHRoZSBkZWZhdWx0IHB2aWQgb2Yg YSBicmlkZ2UgdG8gYSB2YWx1ZQphYm92ZSBWTEFOX1ZJRF9NQVNLICgweGZmZikuIFRoaXMgcGF0 Y2ggYWRkcyBhIGNoZWNrIHRvIGJyX3ZhbGlkYXRlIGFuZApyZXR1cm5zIC1FSU5WQUwgaW4gY2Fz ZSB0aGUgcHZpZCBpcyBvdXQgb2YgYm91bmRzLgoKUmVwcm9kdWNlIGJ5IGNhbGxpbmc6Cgpbcm9v dEB0ZXN0IH5dIyBpcCBsIGEgdHlwZSBicmlkZ2UKW3Jvb3RAdGVzdCB+XSMgaXAgbCBhIHR5cGUg ZHVtbXkKW3Jvb3RAdGVzdCB+XSMgaXAgbCBzIGJyaWRnZTAgdHlwZSBicmlkZ2Ugdmxhbl9maWx0 ZXJpbmcgMQpbcm9vdEB0ZXN0IH5dIyBpcCBsIHMgYnJpZGdlMCB0eXBlIGJyaWRnZSB2bGFuX2Rl ZmF1bHRfcHZpZCA5OTk5Cltyb290QHRlc3Qgfl0jIGlwIGwgcyBkdW1teTAgbWFzdGVyIGJyaWRn ZTAKW3Jvb3RAdGVzdCB+XSMgYnJpZGdlIHZsYW4KcG9ydAl2bGFuIGlkcwpicmlkZ2UwCSA5OTk5 IFBWSUQgRWdyZXNzIFVudGFnZ2VkCgpkdW1teTAJIDk5OTkgUFZJRCBFZ3Jlc3MgVW50YWdnZWQK CkZpeGVzOiAwZjk2M2I3NTkyZWYgKCJicmlkZ2U6IG5ldGxpbms6IGFkZCBzdXBwb3J0IGZvciBk ZWZhdWx0X3B2aWQiKQpBY2tlZC1ieTogTmlrb2xheSBBbGVrc2FuZHJvdiA8bmlrb2xheUBjdW11 bHVzbmV0d29ya3MuY29tPgpTaWduZWQtb2ZmLWJ5OiBUb2JpYXMgSnVuZ2VsIDx0b2JpYXMuanVu Z2VsQGJpc2RuLmRlPgpBY2tlZC1ieTogU2FicmluYSBEdWJyb2NhIDxzZEBxdWVhc3lzbmFpbC5u ZXQ+ClNpZ25lZC1vZmYtYnk6IERhdmlkIFMuIE1pbGxlciA8ZGF2ZW1AZGF2ZW1sb2Z0Lm5ldD4K LS0tCiBuZXQvYnJpZGdlL2JyX25ldGxpbmsuYyB8IDcgKysrKysrKwogMSBmaWxlIGNoYW5nZWQs IDcgaW5zZXJ0aW9ucygrKQoKZGlmZiAtLWdpdCBhL25ldC9icmlkZ2UvYnJfbmV0bGluay5jIGIv bmV0L2JyaWRnZS9icl9uZXRsaW5rLmMKaW5kZXggMDQ3NDEwNi4uNzYyNWVjOCAxMDA2NDQKLS0t IGEvbmV0L2JyaWRnZS9icl9uZXRsaW5rLmMKKysrIGIvbmV0L2JyaWRnZS9icl9uZXRsaW5rLmMK QEAgLTc3Niw2ICs3NzYsMTMgQEAgc3RhdGljIGludCBicl92YWxpZGF0ZShzdHJ1Y3QgbmxhdHRy ICp0YltdLCBzdHJ1Y3QgbmxhdHRyICpkYXRhW10pCiAJCQlyZXR1cm4gLUVQUk9UT05PU1VQUE9S VDsKIAkJfQogCX0KKworCWlmIChkYXRhW0lGTEFfQlJfVkxBTl9ERUZBVUxUX1BWSURdKSB7CisJ CV9fdTE2IGRlZnB2aWQgPSBubGFfZ2V0X3UxNihkYXRhW0lGTEFfQlJfVkxBTl9ERUZBVUxUX1BW SURdKTsKKworCQlpZiAoZGVmcHZpZCA+PSBWTEFOX1ZJRF9NQVNLKQorCQkJcmV0dXJuIC1FSU5W QUw7CisJfQogI2VuZGlmCiAKIAlyZXR1cm4gMDsKLS0gCjIuOS40CgoKRnJvbSA0NmNjNWY2ZjNk ZDFiMDYwY2M5OTU0OTg0MzE2ZjZiZGUzZjdiZjM0IE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpG cm9tOiA9P1VURi04P3E/Qmo9QzM9Qjhybj0yME1vcms/PSA8Ympvcm5AbW9yay5ubz4KRGF0ZTog V2VkLCAxNyBNYXkgMjAxNyAxNjozMTo0MSArMDIwMApTdWJqZWN0OiBbUEFUQ0ggMjIvMzRdIHFt aV93d2FuOiBhZGQgYW5vdGhlciBMZW5vdm8gRU03NHh4IGRldmljZSBJRApNSU1FLVZlcnNpb246 IDEuMApDb250ZW50LVR5cGU6IHRleHQvcGxhaW47IGNoYXJzZXQ9VVRGLTgKQ29udGVudC1UcmFu c2Zlci1FbmNvZGluZzogOGJpdAoKWyBVcHN0cmVhbSBjb21taXQgNDg2MTgxYmNiMzI0OGUyZjE5 NzdmNGU2OTM4N2E4OTgyMzRhNGUxZSBdCgpJbiB0aGVpciBpbmZpbml0ZSB3aXNkb20sIGFuZCBu ZXZlciBlbmRpbmcgcXVlc3QgZm9yIGVuZCB1c2VyIGZydXN0cmF0aW9uLApMZW5vdm8gaGFzIGRl Y2lkZWQgdG8gdXNlIGEgbmV3IFVTQiBkZXZpY2UgSUQgZm9yIHRoZSB3d2FuIG1vZHVsZXMgaW4K dGhlaXIgMjAxNyBsYXB0b3BzLiAgVGhlIGFjdHVhbCBoYXJkd2FyZSBpcyBzdGlsbCB0aGUgU2ll cnJhIFdpcmVsZXNzCkVNNzQ1NSBvciBFTTc0MzAsIGRlcGVuZGluZyBvbiByZWdpb24uCgpTaWdu ZWQtb2ZmLWJ5OiBCasO4cm4gTW9yayA8Ympvcm5AbW9yay5ubz4KU2lnbmVkLW9mZi1ieTogRGF2 aWQgUy4gTWlsbGVyIDxkYXZlbUBkYXZlbWxvZnQubmV0PgotLS0KIGRyaXZlcnMvbmV0L3VzYi9x bWlfd3dhbi5jIHwgMiArKwogMSBmaWxlIGNoYW5nZWQsIDIgaW5zZXJ0aW9ucygrKQoKZGlmZiAt LWdpdCBhL2RyaXZlcnMvbmV0L3VzYi9xbWlfd3dhbi5jIGIvZHJpdmVycy9uZXQvdXNiL3FtaV93 d2FuLmMKaW5kZXggMzRkOTk3Yy4uMmYyNjBjNiAxMDA2NDQKLS0tIGEvZHJpdmVycy9uZXQvdXNi L3FtaV93d2FuLmMKKysrIGIvZHJpdmVycy9uZXQvdXNiL3FtaV93d2FuLmMKQEAgLTg5Nyw2ICs4 OTcsOCBAQCBzdGF0aWMgY29uc3Qgc3RydWN0IHVzYl9kZXZpY2VfaWQgcHJvZHVjdHNbXSA9IHsK IAl7UU1JX0ZJWEVEX0lOVEYoMHgxMTk5LCAweDkwNzEsIDEwKX0sCS8qIFNpZXJyYSBXaXJlbGVz cyBNQzc0eHggKi8KIAl7UU1JX0ZJWEVEX0lOVEYoMHgxMTk5LCAweDkwNzksIDgpfSwJLyogU2ll cnJhIFdpcmVsZXNzIEVNNzR4eCAqLwogCXtRTUlfRklYRURfSU5URigweDExOTksIDB4OTA3OSwg MTApfSwJLyogU2llcnJhIFdpcmVsZXNzIEVNNzR4eCAqLworCXtRTUlfRklYRURfSU5URigweDEx OTksIDB4OTA3YiwgOCl9LAkvKiBTaWVycmEgV2lyZWxlc3MgRU03NHh4ICovCisJe1FNSV9GSVhF RF9JTlRGKDB4MTE5OSwgMHg5MDdiLCAxMCl9LAkvKiBTaWVycmEgV2lyZWxlc3MgRU03NHh4ICov CiAJe1FNSV9GSVhFRF9JTlRGKDB4MWJiYiwgMHgwMTFlLCA0KX0sCS8qIFRlbGVrb20gU3BlZWRz dGljayBMVEUgSUkgKEFsY2F0ZWwgT25lIFRvdWNoIEwxMDBWIExURSkgKi8KIAl7UU1JX0ZJWEVE X0lOVEYoMHgxYmJiLCAweDAyMDMsIDIpfSwJLyogQWxjYXRlbCBMODAwTUEgKi8KIAl7UU1JX0ZJ WEVEX0lOVEYoMHgyMzU3LCAweDAyMDEsIDQpfSwJLyogVFAtTElOSyBIU1VQQSBNb2RlbSBNQTE4 MCAqLwotLSAKMi45LjQKCgpGcm9tIDQ3ZjcyNmEwNjQ5ZWVjYWEwNTFiOWMyZTg2MDNmNTVhOWI5 OTYxMGYgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCkZyb206IFhpbiBMb25nIDxsdWNpZW4ueGlu QGdtYWlsLmNvbT4KRGF0ZTogRnJpLCAxOSBNYXkgMjAxNyAyMjoyMDoyOSArMDgwMApTdWJqZWN0 OiBbUEFUQ0ggMjMvMzRdIGJyaWRnZTogc3RhcnQgaGVsbG9fdGltZXIgd2hlbiBlbmFibGluZyBL RVJORUxfU1RQIGluCiBicl9zdHBfc3RhcnQKClsgVXBzdHJlYW0gY29tbWl0IDZkMThjNzMyYjk1 YzBhOWQzNWU5Zjk3OGI0NDM4YmJhMTU0MTIyODQgXQoKU2luY2UgY29tbWl0IDc2YjkxYzMyZGQ4 NiAoImJyaWRnZTogc3RwOiB3aGVuIHVzaW5nIHVzZXJzcGFjZSBzdHAgc3RvcAprZXJuZWwgaGVs bG8gYW5kIGhvbGQgdGltZXJzIiksIGJyaWRnZSB3b3VsZCBub3Qgc3RhcnQgaGVsbG9fdGltZXIg aWYKc3RwX2VuYWJsZWQgaXMgbm90IEtFUk5FTF9TVFAgd2hlbiBicl9kZXZfb3Blbi4KClRoZSBw cm9ibGVtIGlzIGV2ZW4gaWYgdXNlcnMgc2V0IHN0cF9lbmFibGVkIHdpdGggS0VSTkVMX1NUUCBs YXRlciwKdGhlIHRpbWVyIHdpbGwgc3RpbGwgbm90IGJlIHN0YXJ0ZWQuIEl0IGNhdXNlcyB0aGF0 IEtFUk5FTF9TVFAgY2FuCm5vdCByZWFsbHkgd29yay4gVXNlcnMgaGF2ZSB0byByZS1pZnVwIHRo ZSBicmlkZ2UgdG8gYXZvaWQgdGhpcy4KClRoaXMgcGF0Y2ggaXMgdG8gZml4IGl0IGJ5IHN0YXJ0 aW5nIGJyLT5oZWxsb190aW1lciB3aGVuIGVuYWJsaW5nCktFUk5FTF9TVFAgaW4gYnJfc3RwX3N0 YXJ0LgoKQXMgYW4gaW1wcm92ZW1lbnQsIGl0J3MgYWxzbyB0byBzdGFydCBoZWxsb190aW1lciBh Z2FpbiBvbmx5IHdoZW4KYnItPnN0cF9lbmFibGVkIGlzIEtFUk5FTF9TVFAgaW4gYnJfaGVsbG9f dGltZXJfZXhwaXJlZCwgdGhlcmUgaXMKbm8gcmVhc29uIHRvIHN0YXJ0IHRoZSB0aW1lciBhZ2Fp biB3aGVuIGl0J3MgTk9fU1RQLgoKRml4ZXM6IDc2YjkxYzMyZGQ4NiAoImJyaWRnZTogc3RwOiB3 aGVuIHVzaW5nIHVzZXJzcGFjZSBzdHAgc3RvcCBrZXJuZWwgaGVsbG8gYW5kIGhvbGQgdGltZXJz IikKUmVwb3J0ZWQtYnk6IEhhaWRvbmcgTGkgPGhhaWxpQHJlZGhhdC5jb20+ClNpZ25lZC1vZmYt Ynk6IFhpbiBMb25nIDxsdWNpZW4ueGluQGdtYWlsLmNvbT4KQWNrZWQtYnk6IE5pa29sYXkgQWxl a3NhbmRyb3YgPG5pa29sYXlAY3VtdWx1c25ldHdvcmtzLmNvbT4KUmV2aWV3ZWQtYnk6IEl2YW4g VmVjZXJhIDxjZXJhQGNlcmEuY3o+ClNpZ25lZC1vZmYtYnk6IERhdmlkIFMuIE1pbGxlciA8ZGF2 ZW1AZGF2ZW1sb2Z0Lm5ldD4KLS0tCiBuZXQvYnJpZGdlL2JyX3N0cF9pZi5jICAgIHwgMSArCiBu ZXQvYnJpZGdlL2JyX3N0cF90aW1lci5jIHwgMiArLQogMiBmaWxlcyBjaGFuZ2VkLCAyIGluc2Vy dGlvbnMoKyksIDEgZGVsZXRpb24oLSkKCmRpZmYgLS1naXQgYS9uZXQvYnJpZGdlL2JyX3N0cF9p Zi5jIGIvbmV0L2JyaWRnZS9icl9zdHBfaWYuYwppbmRleCBkOGFkNzNiLi41YTc4MmY1IDEwMDY0 NAotLS0gYS9uZXQvYnJpZGdlL2JyX3N0cF9pZi5jCisrKyBiL25ldC9icmlkZ2UvYnJfc3RwX2lm LmMKQEAgLTE4NSw2ICsxODUsNyBAQCBzdGF0aWMgdm9pZCBicl9zdHBfc3RhcnQoc3RydWN0IG5l dF9icmlkZ2UgKmJyKQogCQlicl9kZWJ1ZyhiciwgInVzaW5nIGtlcm5lbCBTVFBcbiIpOwogCiAJ CS8qIFRvIHN0YXJ0IHRpbWVycyBvbiBhbnkgcG9ydHMgbGVmdCBpbiBibG9ja2luZyAqLworCQlt b2RfdGltZXIoJmJyLT5oZWxsb190aW1lciwgamlmZmllcyArIGJyLT5oZWxsb190aW1lKTsKIAkJ YnJfcG9ydF9zdGF0ZV9zZWxlY3Rpb24oYnIpOwogCX0KIApkaWZmIC0tZ2l0IGEvbmV0L2JyaWRn ZS9icl9zdHBfdGltZXIuYyBiL25ldC9icmlkZ2UvYnJfc3RwX3RpbWVyLmMKaW5kZXggZGEwNThi OC4uMTU4MjZmZCAxMDA2NDQKLS0tIGEvbmV0L2JyaWRnZS9icl9zdHBfdGltZXIuYworKysgYi9u ZXQvYnJpZGdlL2JyX3N0cF90aW1lci5jCkBAIC00MCw3ICs0MCw3IEBAIHN0YXRpYyB2b2lkIGJy X2hlbGxvX3RpbWVyX2V4cGlyZWQodW5zaWduZWQgbG9uZyBhcmcpCiAJaWYgKGJyLT5kZXYtPmZs YWdzICYgSUZGX1VQKSB7CiAJCWJyX2NvbmZpZ19icGR1X2dlbmVyYXRpb24oYnIpOwogCi0JCWlm IChici0+c3RwX2VuYWJsZWQgIT0gQlJfVVNFUl9TVFApCisJCWlmIChici0+c3RwX2VuYWJsZWQg PT0gQlJfS0VSTkVMX1NUUCkKIAkJCW1vZF90aW1lcigmYnItPmhlbGxvX3RpbWVyLAogCQkJCSAg cm91bmRfamlmZmllcyhqaWZmaWVzICsgYnItPmhlbGxvX3RpbWUpKTsKIAl9Ci0tIAoyLjkuNAoK CkZyb20gMGEzZjFjMDcwNDJjZDI0MzExMjJhYjQ3YWJiZWRlYTU2NDYxYjMxNCBNb24gU2VwIDE3 IDAwOjAwOjAwIDIwMDEKRnJvbTogRXJpYyBEdW1hemV0IDxlZHVtYXpldEBnb29nbGUuY29tPgpE YXRlOiBGcmksIDE5IE1heSAyMDE3IDE0OjE3OjQ4IC0wNzAwClN1YmplY3Q6IFtQQVRDSCAyNC8z NF0gaXB2NjogZml4IG91dCBvZiBib3VuZCB3cml0ZXMgaW4gX19pcDZfYXBwZW5kX2RhdGEoKQoK WyBVcHN0cmVhbSBjb21taXQgMjMyY2QzNWQwODA0Y2MyNDFlYjg4N2JiOGQ0ZDliM2I5ODgxYzY0 YSBdCgpBbmRyZXkgS29ub3ZhbG92IGFuZCBpZGFpZmlzaEBnbWFpbC5jb20gcmVwb3J0ZWQgY3Jh c2hlcyBjYXVzZWQgYnkKb25lIHNrYiBzaGFyZWRfaW5mbyBiZWluZyBvdmVyd3JpdHRlbiBmcm9t IF9faXA2X2FwcGVuZF9kYXRhKCkKCkFuZHJleSBwcm9ncmFtIGxlYWQgdG8gZm9sbG93aW5nIHN0 YXRlIDoKCmNvcHkgLTQyMDAgZGF0YWxlbiAyMDAwIGZyYWdsZW4gMjA0MAptYXhmcmFnbGVuIDIw NDAgYWxsb2NsZW4gMjA0OCB0cmFuc2hkcmxlbiAwIG9mZnNldCAwIGZyYWdnYXAgNjIwMAoKVGhl IHNrYl9jb3B5X2FuZF9jc3VtX2JpdHMoc2tiX3ByZXYsIG1heGZyYWdsZW4sIGRhdGEgKyB0cmFu c2hkcmxlbiwKZnJhZ2dhcCwgMCk7IGlzIG92ZXJ3cml0aW5nIHNrYi0+aGVhZCBhbmQgc2tiX3No YXJlZF9pbmZvCgpTaW5jZSB3ZSBhcHBhcmVudGx5IGRldGVjdCB0aGlzIHJhcmUgY29uZGl0aW9u IHRvbyBsYXRlLCBtb3ZlIHRoZQpjb2RlIGVhcmxpZXIgdG8gZXZlbiBhdm9pZCBhbGxvY2F0aW5n IHNrYiBhbmQgcmlza2luZyBjcmFzaGVzLgoKT25jZSBhZ2FpbiwgbWFueSB0aGFua3MgdG8gQW5k cmV5IGFuZCBzeXprYWxsZXIgdGVhbS4KClNpZ25lZC1vZmYtYnk6IEVyaWMgRHVtYXpldCA8ZWR1 bWF6ZXRAZ29vZ2xlLmNvbT4KUmVwb3J0ZWQtYnk6IEFuZHJleSBLb25vdmFsb3YgPGFuZHJleWtu dmxAZ29vZ2xlLmNvbT4KVGVzdGVkLWJ5OiBBbmRyZXkgS29ub3ZhbG92IDxhbmRyZXlrbnZsQGdv b2dsZS5jb20+ClJlcG9ydGVkLWJ5OiA8aWRhaWZpc2hAZ21haWwuY29tPgpTaWduZWQtb2ZmLWJ5 OiBEYXZpZCBTLiBNaWxsZXIgPGRhdmVtQGRhdmVtbG9mdC5uZXQ+Ci0tLQogbmV0L2lwdjYvaXA2 X291dHB1dC5jIHwgMTUgKysrKysrKystLS0tLS0tCiAxIGZpbGUgY2hhbmdlZCwgOCBpbnNlcnRp b25zKCspLCA3IGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL25ldC9pcHY2L2lwNl9vdXRwdXQu YyBiL25ldC9pcHY2L2lwNl9vdXRwdXQuYwppbmRleCBiMWU4ZWU1Li4xYWMzY2VhIDEwMDY0NAot LS0gYS9uZXQvaXB2Ni9pcDZfb3V0cHV0LmMKKysrIGIvbmV0L2lwdjYvaXA2X291dHB1dC5jCkBA IC0xNDQ3LDYgKzE0NDcsMTEgQEAgc3RhdGljIGludCBfX2lwNl9hcHBlbmRfZGF0YShzdHJ1Y3Qg c29jayAqc2ssCiAJCQkgKi8KIAkJCWFsbG9jbGVuICs9IHNpemVvZihzdHJ1Y3QgZnJhZ19oZHIp OwogCisJCQljb3B5ID0gZGF0YWxlbiAtIHRyYW5zaGRybGVuIC0gZnJhZ2dhcDsKKwkJCWlmIChj b3B5IDwgMCkgeworCQkJCWVyciA9IC1FSU5WQUw7CisJCQkJZ290byBlcnJvcjsKKwkJCX0KIAkJ CWlmICh0cmFuc2hkcmxlbikgewogCQkJCXNrYiA9IHNvY2tfYWxsb2Nfc2VuZF9za2Ioc2ssCiAJ CQkJCQlhbGxvY2xlbiArIGhoX2xlbiwKQEAgLTE0OTYsMTMgKzE1MDEsOSBAQCBzdGF0aWMgaW50 IF9faXA2X2FwcGVuZF9kYXRhKHN0cnVjdCBzb2NrICpzaywKIAkJCQlkYXRhICs9IGZyYWdnYXA7 CiAJCQkJcHNrYl90cmltX3VuaXF1ZShza2JfcHJldiwgbWF4ZnJhZ2xlbik7CiAJCQl9Ci0JCQlj b3B5ID0gZGF0YWxlbiAtIHRyYW5zaGRybGVuIC0gZnJhZ2dhcDsKLQotCQkJaWYgKGNvcHkgPCAw KSB7Ci0JCQkJZXJyID0gLUVJTlZBTDsKLQkJCQlrZnJlZV9za2Ioc2tiKTsKLQkJCQlnb3RvIGVy cm9yOwotCQkJfSBlbHNlIGlmIChjb3B5ID4gMCAmJiBnZXRmcmFnKGZyb20sIGRhdGEgKyB0cmFu c2hkcmxlbiwgb2Zmc2V0LCBjb3B5LCBmcmFnZ2FwLCBza2IpIDwgMCkgeworCQkJaWYgKGNvcHkg PiAwICYmCisJCQkgICAgZ2V0ZnJhZyhmcm9tLCBkYXRhICsgdHJhbnNoZHJsZW4sIG9mZnNldCwK KwkJCQkgICAgY29weSwgZnJhZ2dhcCwgc2tiKSA8IDApIHsKIAkJCQllcnIgPSAtRUZBVUxUOwog CQkJCWtmcmVlX3NrYihza2IpOwogCQkJCWdvdG8gZXJyb3I7Ci0tIAoyLjkuNAoKCkZyb20gODNj Zjg4ZTQzNjQxMjhmZjJjZjdjMDVjNWFiODQ4YjExMjIwOTBhMSBNb24gU2VwIDE3IDAwOjAwOjAw IDIwMDEKRnJvbTogSmFyb2QgV2lsc29uIDxqYXJvZEByZWRoYXQuY29tPgpEYXRlOiBGcmksIDE5 IE1heSAyMDE3IDE5OjQzOjQ1IC0wNDAwClN1YmplY3Q6IFtQQVRDSCAyNS8zNF0gYm9uZGluZzog Zml4IGFjY291bnRpbmcgb2YgYWN0aXZlIHBvcnRzIGluIDNhZAoKWyBVcHN0cmVhbSBjb21taXQg NzUxZGEyYTY5YjdjYzgyZDgzZGMzMTBlZDc2MDYyMjVmMmQ2ZTAxNCBdCgpBcyBvZiA3YmIxMWRj OWY1OWQgYW5kIDA2MjJjYWIwMzQxYywgYm9uZCBzbGF2ZXMgaW4gYSAzYWQgYm9uZCBhcmUgbm90 CnJlbW92ZWQgZnJvbSB0aGUgYWdncmVnYXRvciB3aGVuIHRoZXkgYXJlIGRvd24sIGFuZCB0aGUg YWN0aXZlIHNsYXZlIGNvdW50CmlzIE5PVCBlcXVhbCB0byBudW1iZXIgb2YgcG9ydHMgaW4gdGhl IGFnZ3JlZ2F0b3IsIGJ1dCByYXRoZXIgdGhlIG51bWJlcgpvZiBwb3J0cyBpbiB0aGUgYWdncmVn YXRvciB0aGF0IGFyZSBzdGlsbCBlbmFibGVkLiBUaGUgc3lzZnMgc3BldyBmb3IKYm9uZGluZ19z aG93X2FkX251bV9wb3J0cygpIGhhcyBhIGNvbW1lbnQgdGhhdCBzYXlzICJTaG93IG51bWJlciBv ZiBhY3RpdmUKODAyLjNhZCBwb3J0cy4iLCBidXQgaXQncyBjdXJyZW50bHkgc2hvd2luZyB0b3Rh bCBudW1iZXIgb2YgcG9ydHMsIGJvdGgKYWN0aXZlIGFuZCBpbmFjdGl2ZS4gUmVtZWR5IGl0IGJ5 IHVzaW5nIHRoZSBzYW1lIGxvZ2ljIGludHJvZHVjZWQgaW4KMDYyMmNhYjAzNDFjIGluIF9fYm9u ZF8zYWRfZ2V0X2FjdGl2ZV9hZ2dfaW5mbygpLCBzbyBzeXNmcywgcHJvY2ZzIGFuZApuZXRsaW5r IGFsbCByZXBvcnQgdGhlIG51bWJlciBvZiBhY3RpdmUgcG9ydHMuIE5vdGUgdGhhdCB0aGlzIG1l YW5zIHRoYXQKSUZMQV9CT05EX0FEX0lORk9fTlVNX1BPUlRTIHJlYWxseSBtZWFucyBOVU1fQUNU SVZFX1BPUlRTIGluc3RlYWQgb2YKTlVNX1BPUlRTLCBhbmQgdGh1cyBwZXJoYXBzIHNob3VsZCBi ZSByZW5hbWVkIGZvciBjbGFyaXR5LgoKTGlnaHRseSB0ZXN0ZWQgb24gYSBkdWFsIGk0MGUgbGFj cCBib25kLCBzaW11bGF0aW5nIGxpbmsgZG93bnMgd2l0aCBhbiBpcApsaW5rIHNldCBkZXYgPHNs YXZlMj4gZG93biwgd2FzIGFibGUgdG8gcHJvZHVjZSB0aGUgc3RhdGUgd2hlcmUgSSBjb3VsZApz ZWUgYm90aCBpbiB0aGUgc2FtZSBhZ2dyZWdhdG9yLCBidXQgYSBudW1iZXIgb2YgcG9ydHMgY291 bnQgb2YgMS4KCk1JSSBTdGF0dXM6IHVwCkFjdGl2ZSBBZ2dyZWdhdG9yIEluZm86CiAgICAgICAg QWdncmVnYXRvciBJRDogMQogICAgICAgIE51bWJlciBvZiBwb3J0czogMiA8LS0tClNsYXZlIElu dGVyZmFjZTogZW5zMTAKTUlJIFN0YXR1czogdXAgPC0tLQpBZ2dyZWdhdG9yIElEOiAxClNsYXZl IEludGVyZmFjZTogZW5zMTEKTUlJIFN0YXR1czogdXAKQWdncmVnYXRvciBJRDogMQoKTUlJIFN0 YXR1czogdXAKQWN0aXZlIEFnZ3JlZ2F0b3IgSW5mbzoKICAgICAgICBBZ2dyZWdhdG9yIElEOiAx CiAgICAgICAgTnVtYmVyIG9mIHBvcnRzOiAxIDwtLS0KU2xhdmUgSW50ZXJmYWNlOiBlbnMxMApN SUkgU3RhdHVzOiBkb3duIDwtLS0KQWdncmVnYXRvciBJRDogMQpTbGF2ZSBJbnRlcmZhY2U6IGVu czExCk1JSSBTdGF0dXM6IHVwCkFnZ3JlZ2F0b3IgSUQ6IDEKCkNDOiBKYXkgVm9zYnVyZ2ggPGou dm9zYnVyZ2hAZ21haWwuY29tPgpDQzogVmVhY2VzbGF2IEZhbGljbyA8dmZhbGljb0BnbWFpbC5j b20+CkNDOiBBbmR5IEdvc3BvZGFyZWsgPGFuZHlAZ3JleWhvdXNlLm5ldD4KQ0M6IG5ldGRldkB2 Z2VyLmtlcm5lbC5vcmcKU2lnbmVkLW9mZi1ieTogSmFyb2QgV2lsc29uIDxqYXJvZEByZWRoYXQu Y29tPgpTaWduZWQtb2ZmLWJ5OiBEYXZpZCBTLiBNaWxsZXIgPGRhdmVtQGRhdmVtbG9mdC5uZXQ+ Ci0tLQogZHJpdmVycy9uZXQvYm9uZGluZy9ib25kXzNhZC5jIHwgMiArLQogMSBmaWxlIGNoYW5n ZWQsIDEgaW5zZXJ0aW9uKCspLCAxIGRlbGV0aW9uKC0pCgpkaWZmIC0tZ2l0IGEvZHJpdmVycy9u ZXQvYm9uZGluZy9ib25kXzNhZC5jIGIvZHJpdmVycy9uZXQvYm9uZGluZy9ib25kXzNhZC5jCmlu ZGV4IGVkYzcwZmYuLjZkY2M0MmQgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvbmV0L2JvbmRpbmcvYm9u ZF8zYWQuYworKysgYi9kcml2ZXJzL25ldC9ib25kaW5nL2JvbmRfM2FkLmMKQEAgLTI1NzMsNyAr MjU3Myw3IEBAIGludCBfX2JvbmRfM2FkX2dldF9hY3RpdmVfYWdnX2luZm8oc3RydWN0IGJvbmRp bmcgKmJvbmQsCiAJCXJldHVybiAtMTsKIAogCWFkX2luZm8tPmFnZ3JlZ2F0b3JfaWQgPSBhZ2dy ZWdhdG9yLT5hZ2dyZWdhdG9yX2lkZW50aWZpZXI7Ci0JYWRfaW5mby0+cG9ydHMgPSBhZ2dyZWdh dG9yLT5udW1fb2ZfcG9ydHM7CisJYWRfaW5mby0+cG9ydHMgPSBfX2FnZ19hY3RpdmVfcG9ydHMo YWdncmVnYXRvcik7CiAJYWRfaW5mby0+YWN0b3Jfa2V5ID0gYWdncmVnYXRvci0+YWN0b3Jfb3Bl cl9hZ2dyZWdhdG9yX2tleTsKIAlhZF9pbmZvLT5wYXJ0bmVyX2tleSA9IGFnZ3JlZ2F0b3ItPnBh cnRuZXJfb3Blcl9hZ2dyZWdhdG9yX2tleTsKIAlldGhlcl9hZGRyX2NvcHkoYWRfaW5mby0+cGFy dG5lcl9zeXN0ZW0sCi0tIAoyLjkuNAoKCkZyb20gZmY0YmZmNTFkNzg1MWQwZWRiNTFlYjU0ZWUx ODdjMGI5OWFmODYzOSBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJvbTogTW9oYW1hZCBIYWog WWFoaWEgPG1vaGFtYWRAbWVsbGFub3guY29tPgpEYXRlOiBUaHUsIDIzIEZlYiAyMDE3IDExOjE5 OjM2ICswMjAwClN1YmplY3Q6IFtQQVRDSCAyNi8zNF0gbmV0L21seDU6IEF2b2lkIHVzaW5nIHBl bmRpbmcgY29tbWFuZCBpbnRlcmZhY2Ugc2xvdHMKClsgVXBzdHJlYW0gY29tbWl0IDczZGQzYTQ4 MzljMWQyN2MzNmQ0ZGNjOTJlMWZmNDQyMjVlY2JlYjcgXQoKQ3VycmVudGx5IHdoZW4gZmlybXdh cmUgY29tbWFuZCBnZXRzIHN0dWNrIG9yIGl0IHRha2VzIGxvbmcgdGltZSB0bwpjb21wbGV0ZSwg dGhlIGRyaXZlciBjb21tYW5kIHdpbGwgZ2V0IHRpbWVvdXQgYW5kIHRoZSBjb21tYW5kIHNsb3Qg aXMKZnJlZWQgYW5kIGNhbiBiZSB1c2VkIGZvciBuZXcgY29tbWFuZHMsIGFuZCBpZiB0aGUgZmly bXdhcmUgcmVjZWl2ZSBuZXcKY29tbWFuZCBvbiB0aGUgb2xkIGJ1c3kgc2xvdCBpdHMgYmVoYXZp b3IgaXMgdW5leHBlY3RlZCBhbmQgdGhpcyBjb3VsZApiZSBoYXJtZnVsLgpUbyBmaXggdGhpcyB3 aGVuIHRoZSBkcml2ZXIgY29tbWFuZCBnZXRzIHRpbWVvdXQgd2UgcmV0dXJuIGZhaWx1cmUsCmJ1 dCB3ZSBkb24ndCBmcmVlIHRoZSBjb21tYW5kIHNsb3QgYW5kIHdlIHdhaXQgZm9yIHRoZSBmaXJt d2FyZSB0bwpleHBsaWNpdGx5IHJlc3BvbmQgdG8gdGhhdCBjb21tYW5kLgpPbmNlIGFsbCB0aGUg ZW50cmllcyBhcmUgYnVzeSB3ZSB3aWxsIHN0b3AgcHJvY2Vzc2luZyBuZXcgZmlybXdhcmUKY29t bWFuZHMuCgpGaXhlczogOWNiYTRlYmNmMzc0ICgnbmV0L21seDU6IEZpeCBwb3RlbnRpYWwgZGVh ZGxvY2sgaW4gY29tbWFuZCBtb2RlIGNoYW5nZScpClNpZ25lZC1vZmYtYnk6IE1vaGFtYWQgSGFq IFlhaGlhIDxtb2hhbWFkQG1lbGxhbm94LmNvbT4KQ2M6IGtlcm5lbC10ZWFtQGZiLmNvbQpTaWdu ZWQtb2ZmLWJ5OiBTYWVlZCBNYWhhbWVlZCA8c2FlZWRtQG1lbGxhbm94LmNvbT4KLS0tCiBkcml2 ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvY21kLmMgICAgfCA0MSArKysrKysr KysrKysrKysrKysrKystLS0KIGRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29y ZS9lcS5jICAgICB8ICAyICstCiBkcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2Nv cmUvaGVhbHRoLmMgfCAgMiArLQogaW5jbHVkZS9saW51eC9tbHg1L2RyaXZlci5oICAgICAgICAg ICAgICAgICAgICAgIHwgIDcgKysrLQogNCBmaWxlcyBjaGFuZ2VkLCA0NCBpbnNlcnRpb25zKCsp LCA4IGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxh bm94L21seDUvY29yZS9jbWQuYyBiL2RyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUv Y29yZS9jbWQuYwppbmRleCAzZjUxYTQ0Li5jYjQ1MzkwIDEwMDY0NAotLS0gYS9kcml2ZXJzL25l dC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvY21kLmMKKysrIGIvZHJpdmVycy9uZXQvZXRo ZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2NtZC5jCkBAIC03NjcsNyArNzY3LDcgQEAgc3RhdGlj IHZvaWQgY2JfdGltZW91dF9oYW5kbGVyKHN0cnVjdCB3b3JrX3N0cnVjdCAqd29yaykKIAltbHg1 X2NvcmVfd2FybihkZXYsICIlcygweCV4KSB0aW1lb3V0LiBXaWxsIGNhdXNlIGEgbGVhayBvZiBh IGNvbW1hbmQgcmVzb3VyY2VcbiIsCiAJCSAgICAgICBtbHg1X2NvbW1hbmRfc3RyKG1zZ190b19v cGNvZGUoZW50LT5pbikpLAogCQkgICAgICAgbXNnX3RvX29wY29kZShlbnQtPmluKSk7Ci0JbWx4 NV9jbWRfY29tcF9oYW5kbGVyKGRldiwgMVVMIDw8IGVudC0+aWR4KTsKKwltbHg1X2NtZF9jb21w X2hhbmRsZXIoZGV2LCAxVUwgPDwgZW50LT5pZHgsIHRydWUpOwogfQogCiBzdGF0aWMgdm9pZCBj bWRfd29ya19oYW5kbGVyKHN0cnVjdCB3b3JrX3N0cnVjdCAqd29yaykKQEAgLTc5Nyw2ICs3OTcs NyBAQCBzdGF0aWMgdm9pZCBjbWRfd29ya19oYW5kbGVyKHN0cnVjdCB3b3JrX3N0cnVjdCAqd29y aykKIAl9CiAKIAljbWQtPmVudF9hcnJbZW50LT5pZHhdID0gZW50OworCXNldF9iaXQoTUxYNV9D TURfRU5UX1NUQVRFX1BFTkRJTkdfQ09NUCwgJmVudC0+c3RhdGUpOwogCWxheSA9IGdldF9pbnN0 KGNtZCwgZW50LT5pZHgpOwogCWVudC0+bGF5ID0gbGF5OwogCW1lbXNldChsYXksIDAsIHNpemVv ZigqbGF5KSk7CkBAIC04MTgsNiArODE5LDIwIEBAIHN0YXRpYyB2b2lkIGNtZF93b3JrX2hhbmRs ZXIoc3RydWN0IHdvcmtfc3RydWN0ICp3b3JrKQogCWlmIChlbnQtPmNhbGxiYWNrKQogCQlzY2hl ZHVsZV9kZWxheWVkX3dvcmsoJmVudC0+Y2JfdGltZW91dF93b3JrLCBjYl90aW1lb3V0KTsKIAor CS8qIFNraXAgc2VuZGluZyBjb21tYW5kIHRvIGZ3IGlmIGludGVybmFsIGVycm9yICovCisJaWYg KHBjaV9jaGFubmVsX29mZmxpbmUoZGV2LT5wZGV2KSB8fAorCSAgICBkZXYtPnN0YXRlID09IE1M WDVfREVWSUNFX1NUQVRFX0lOVEVSTkFMX0VSUk9SKSB7CisJCXU4IHN0YXR1cyA9IDA7CisJCXUz MiBkcnZfc3luZDsKKworCQllbnQtPnJldCA9IG1seDVfaW50ZXJuYWxfZXJyX3JldF92YWx1ZShk ZXYsIG1zZ190b19vcGNvZGUoZW50LT5pbiksICZkcnZfc3luZCwgJnN0YXR1cyk7CisJCU1MWDVf U0VUKG1ib3hfb3V0LCBlbnQtPm91dCwgc3RhdHVzLCBzdGF0dXMpOworCQlNTFg1X1NFVChtYm94 X291dCwgZW50LT5vdXQsIHN5bmRyb21lLCBkcnZfc3luZCk7CisKKwkJbWx4NV9jbWRfY29tcF9o YW5kbGVyKGRldiwgMVVMIDw8IGVudC0+aWR4LCB0cnVlKTsKKwkJcmV0dXJuOworCX0KKwogCS8q IHJpbmcgZG9vcmJlbGwgYWZ0ZXIgdGhlIGRlc2NyaXB0b3IgaXMgdmFsaWQgKi8KIAltbHg1X2Nv cmVfZGJnKGRldiwgIndyaXRpbmcgMHgleCB0byBjb21tYW5kIGRvb3JiZWxsXG4iLCAxIDw8IGVu dC0+aWR4KTsKIAl3bWIoKTsKQEAgLTgyOCw3ICs4NDMsNyBAQCBzdGF0aWMgdm9pZCBjbWRfd29y a19oYW5kbGVyKHN0cnVjdCB3b3JrX3N0cnVjdCAqd29yaykKIAkJcG9sbF90aW1lb3V0KGVudCk7 CiAJCS8qIG1ha2Ugc3VyZSB3ZSByZWFkIHRoZSBkZXNjcmlwdG9yIGFmdGVyIG93bmVyc2hpcCBp cyBTVyAqLwogCQlybWIoKTsKLQkJbWx4NV9jbWRfY29tcF9oYW5kbGVyKGRldiwgMVVMIDw8IGVu dC0+aWR4KTsKKwkJbWx4NV9jbWRfY29tcF9oYW5kbGVyKGRldiwgMVVMIDw8IGVudC0+aWR4LCAo ZW50LT5yZXQgPT0gLUVUSU1FRE9VVCkpOwogCX0KIH0KIApAQCAtODcyLDcgKzg4Nyw3IEBAIHN0 YXRpYyBpbnQgd2FpdF9mdW5jKHN0cnVjdCBtbHg1X2NvcmVfZGV2ICpkZXYsIHN0cnVjdCBtbHg1 X2NtZF93b3JrX2VudCAqZW50KQogCQl3YWl0X2Zvcl9jb21wbGV0aW9uKCZlbnQtPmRvbmUpOwog CX0gZWxzZSBpZiAoIXdhaXRfZm9yX2NvbXBsZXRpb25fdGltZW91dCgmZW50LT5kb25lLCB0aW1l b3V0KSkgewogCQllbnQtPnJldCA9IC1FVElNRURPVVQ7Ci0JCW1seDVfY21kX2NvbXBfaGFuZGxl cihkZXYsIDFVTCA8PCBlbnQtPmlkeCk7CisJCW1seDVfY21kX2NvbXBfaGFuZGxlcihkZXYsIDFV TCA8PCBlbnQtPmlkeCwgdHJ1ZSk7CiAJfQogCiAJZXJyID0gZW50LT5yZXQ7CkBAIC0xMzY5LDcg KzEzODQsNyBAQCBzdGF0aWMgdm9pZCBmcmVlX21zZyhzdHJ1Y3QgbWx4NV9jb3JlX2RldiAqZGV2 LCBzdHJ1Y3QgbWx4NV9jbWRfbXNnICptc2cpCiAJfQogfQogCi12b2lkIG1seDVfY21kX2NvbXBf aGFuZGxlcihzdHJ1Y3QgbWx4NV9jb3JlX2RldiAqZGV2LCB1NjQgdmVjKQordm9pZCBtbHg1X2Nt ZF9jb21wX2hhbmRsZXIoc3RydWN0IG1seDVfY29yZV9kZXYgKmRldiwgdTY0IHZlYywgYm9vbCBm b3JjZWQpCiB7CiAJc3RydWN0IG1seDVfY21kICpjbWQgPSAmZGV2LT5jbWQ7CiAJc3RydWN0IG1s eDVfY21kX3dvcmtfZW50ICplbnQ7CkBAIC0xMzg5LDYgKzE0MDQsMTkgQEAgdm9pZCBtbHg1X2Nt ZF9jb21wX2hhbmRsZXIoc3RydWN0IG1seDVfY29yZV9kZXYgKmRldiwgdTY0IHZlYykKIAkJCXN0 cnVjdCBzZW1hcGhvcmUgKnNlbTsKIAogCQkJZW50ID0gY21kLT5lbnRfYXJyW2ldOworCisJCQkv KiBpZiB3ZSBhbHJlYWR5IGNvbXBsZXRlZCB0aGUgY29tbWFuZCwgaWdub3JlIGl0ICovCisJCQlp ZiAoIXRlc3RfYW5kX2NsZWFyX2JpdChNTFg1X0NNRF9FTlRfU1RBVEVfUEVORElOR19DT01QLAor CQkJCQkJJmVudC0+c3RhdGUpKSB7CisJCQkJLyogb25seSByZWFsIGNvbXBsZXRpb24gY2FuIGZy ZWUgdGhlIGNtZCBzbG90ICovCisJCQkJaWYgKCFmb3JjZWQpIHsKKwkJCQkJbWx4NV9jb3JlX2Vy cihkZXYsICJDb21tYW5kIGNvbXBsZXRpb24gYXJyaXZlZCBhZnRlciB0aW1lb3V0IChlbnRyeSBp ZHggPSAlZCkuXG4iLAorCQkJCQkJICAgICAgZW50LT5pZHgpOworCQkJCQlmcmVlX2VudChjbWQs IGVudC0+aWR4KTsKKwkJCQl9CisJCQkJY29udGludWU7CisJCQl9CisKIAkJCWlmIChlbnQtPmNh bGxiYWNrKQogCQkJCWNhbmNlbF9kZWxheWVkX3dvcmsoJmVudC0+Y2JfdGltZW91dF93b3JrKTsK IAkJCWlmIChlbnQtPnBhZ2VfcXVldWUpCkBAIC0xNDExLDcgKzE0MzksMTAgQEAgdm9pZCBtbHg1 X2NtZF9jb21wX2hhbmRsZXIoc3RydWN0IG1seDVfY29yZV9kZXYgKmRldiwgdTY0IHZlYykKIAkJ CQltbHg1X2NvcmVfZGJnKGRldiwgImNvbW1hbmQgY29tcGxldGVkLiByZXQgMHgleCwgZGVsaXZl cnkgc3RhdHVzICVzKDB4JXgpXG4iLAogCQkJCQkgICAgICBlbnQtPnJldCwgZGVsaXZfc3RhdHVz X3RvX3N0cihlbnQtPnN0YXR1cyksIGVudC0+c3RhdHVzKTsKIAkJCX0KLQkJCWZyZWVfZW50KGNt ZCwgZW50LT5pZHgpOworCisJCQkvKiBvbmx5IHJlYWwgY29tcGxldGlvbiB3aWxsIGZyZWUgdGhl IGVudHJ5IHNsb3QgKi8KKwkJCWlmICghZm9yY2VkKQorCQkJCWZyZWVfZW50KGNtZCwgZW50LT5p ZHgpOwogCiAJCQlpZiAoZW50LT5jYWxsYmFjaykgewogCQkJCWRzID0gZW50LT50czIgLSBlbnQt PnRzMTsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29y ZS9lcS5jIGIvZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2VxLmMKaW5k ZXggYWFjYTA5MC4uZjg2ZTlmZiAxMDA2NDQKLS0tIGEvZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVs bGFub3gvbWx4NS9jb3JlL2VxLmMKKysrIGIvZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gv bWx4NS9jb3JlL2VxLmMKQEAgLTIzNCw3ICsyMzQsNyBAQCBzdGF0aWMgaW50IG1seDVfZXFfaW50 KHN0cnVjdCBtbHg1X2NvcmVfZGV2ICpkZXYsIHN0cnVjdCBtbHg1X2VxICplcSkKIAkJCWJyZWFr OwogCiAJCWNhc2UgTUxYNV9FVkVOVF9UWVBFX0NNRDoKLQkJCW1seDVfY21kX2NvbXBfaGFuZGxl cihkZXYsIGJlMzJfdG9fY3B1KGVxZS0+ZGF0YS5jbWQudmVjdG9yKSk7CisJCQltbHg1X2NtZF9j b21wX2hhbmRsZXIoZGV2LCBiZTMyX3RvX2NwdShlcWUtPmRhdGEuY21kLnZlY3RvciksIGZhbHNl KTsKIAkJCWJyZWFrOwogCiAJCWNhc2UgTUxYNV9FVkVOVF9UWVBFX1BPUlRfQ0hBTkdFOgpkaWZm IC0tZ2l0IGEvZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2hlYWx0aC5j IGIvZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2hlYWx0aC5jCmluZGV4 IDViY2Y5MzQuLjIxMTVjOGEgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxh bm94L21seDUvY29yZS9oZWFsdGguYworKysgYi9kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5v eC9tbHg1L2NvcmUvaGVhbHRoLmMKQEAgLTkwLDcgKzkwLDcgQEAgc3RhdGljIHZvaWQgdHJpZ2dl cl9jbWRfY29tcGxldGlvbnMoc3RydWN0IG1seDVfY29yZV9kZXYgKmRldikKIAlzcGluX3VubG9j a19pcnFyZXN0b3JlKCZkZXYtPmNtZC5hbGxvY19sb2NrLCBmbGFncyk7CiAKIAltbHg1X2NvcmVf ZGJnKGRldiwgInZlY3RvciAweCVsbHhcbiIsIHZlY3Rvcik7Ci0JbWx4NV9jbWRfY29tcF9oYW5k bGVyKGRldiwgdmVjdG9yKTsKKwltbHg1X2NtZF9jb21wX2hhbmRsZXIoZGV2LCB2ZWN0b3IsIHRy dWUpOwogCXJldHVybjsKIAogbm9fdHJpZzoKZGlmZiAtLWdpdCBhL2luY2x1ZGUvbGludXgvbWx4 NS9kcml2ZXIuaCBiL2luY2x1ZGUvbGludXgvbWx4NS9kcml2ZXIuaAppbmRleCBlY2M0NTFkLi5l MWE5MDNhIDEwMDY0NAotLS0gYS9pbmNsdWRlL2xpbnV4L21seDUvZHJpdmVyLmgKKysrIGIvaW5j bHVkZS9saW51eC9tbHg1L2RyaXZlci5oCkBAIC02NDAsNyArNjQwLDEyIEBAIGVudW0gewogCiB0 eXBlZGVmIHZvaWQgKCptbHg1X2NtZF9jYmtfdCkoaW50IHN0YXR1cywgdm9pZCAqY29udGV4dCk7 CiAKK2VudW0geworCU1MWDVfQ01EX0VOVF9TVEFURV9QRU5ESU5HX0NPTVAsCit9OworCiBzdHJ1 Y3QgbWx4NV9jbWRfd29ya19lbnQgeworCXVuc2lnbmVkIGxvbmcJCXN0YXRlOwogCXN0cnVjdCBt bHg1X2NtZF9tc2cgICAgKmluOwogCXN0cnVjdCBtbHg1X2NtZF9tc2cgICAgKm91dDsKIAl2b2lk CQkgICAgICAgKnVvdXQ7CkBAIC04MzgsNyArODQzLDcgQEAgdm9pZCBtbHg1X2VxX3BhZ2VmYXVs dChzdHJ1Y3QgbWx4NV9jb3JlX2RldiAqZGV2LCBzdHJ1Y3QgbWx4NV9lcWUgKmVxZSk7CiAjZW5k aWYKIHZvaWQgbWx4NV9zcnFfZXZlbnQoc3RydWN0IG1seDVfY29yZV9kZXYgKmRldiwgdTMyIHNy cW4sIGludCBldmVudF90eXBlKTsKIHN0cnVjdCBtbHg1X2NvcmVfc3JxICptbHg1X2NvcmVfZ2V0 X3NycShzdHJ1Y3QgbWx4NV9jb3JlX2RldiAqZGV2LCB1MzIgc3Jxbik7Ci12b2lkIG1seDVfY21k X2NvbXBfaGFuZGxlcihzdHJ1Y3QgbWx4NV9jb3JlX2RldiAqZGV2LCB1NjQgdmVjKTsKK3ZvaWQg bWx4NV9jbWRfY29tcF9oYW5kbGVyKHN0cnVjdCBtbHg1X2NvcmVfZGV2ICpkZXYsIHU2NCB2ZWMs IGJvb2wgZm9yY2VkKTsKIHZvaWQgbWx4NV9jcV9ldmVudChzdHJ1Y3QgbWx4NV9jb3JlX2RldiAq ZGV2LCB1MzIgY3FuLCBpbnQgZXZlbnRfdHlwZSk7CiBpbnQgbWx4NV9jcmVhdGVfbWFwX2VxKHN0 cnVjdCBtbHg1X2NvcmVfZGV2ICpkZXYsIHN0cnVjdCBtbHg1X2VxICplcSwgdTggdmVjaWR4LAog CQkgICAgICAgaW50IG5lbnQsIHU2NCBtYXNrLCBjb25zdCBjaGFyICpuYW1lLCBzdHJ1Y3QgbWx4 NV91YXIgKnVhcik7Ci0tIAoyLjkuNAoKCkZyb20gNDNkZDJmNTM1Mzk4MDFkNjYwMDNjODA3YjEw ODQ2N2U5ODE2MzgzYyBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJvbTogQW5kcmV3IEx1bm4g PGFuZHJld0BsdW5uLmNoPgpEYXRlOiBUdWUsIDIzIE1heSAyMDE3IDE3OjQ5OjEzICswMjAwClN1 YmplY3Q6IFtQQVRDSCAyNy8zNF0gbmV0OiBwaHk6IG1hcnZlbGw6IExpbWl0IGVycmF0YSB0byA4 OG0xMTAxCgpbIFVwc3RyZWFtIGNvbW1pdCBmMjg5OTc4ODM1M2MxMzg5MTQxMmIyNzNmZGZmNWYw MmQ0OWFhNDBmIF0KClRoZSA4OG0xMTAxIGhhcyBhbiBlcnJhdGEgd2hlbiBjb25maWd1cmluZyBh dXRvbmVnLiBIb3dldmVyLCBpdCB3YXMKYmVpbmcgYXBwbGllZCB0byBtYW55IG90aGVyIE1hcnZl bGwgUEhZcyBhcyB3ZWxsLiBMaW1pdCBpdHMgc2NvcGUgdG8KanVzdCB0aGUgODhtMTEwMS4KCkZp eGVzOiA3Njg4NDY3OWM2NDQgKCJwaHlsaWI6IEFkZCBzdXBwb3J0IGZvciBNYXJ2ZWxsIDg4ZTEx MTFTIGFuZCA4OGUxMTQ1IikKUmVwb3J0ZWQtYnk6IERhbmllbCBXYWxrZXIgPGRhbmllbHdhQGNp c2NvLmNvbT4KU2lnbmVkLW9mZi1ieTogQW5kcmV3IEx1bm4gPGFuZHJld0BsdW5uLmNoPgpBY2tl ZC1ieTogSGFyaW5pIEthdGFrYW0gPGhhcmluaWtAeGlsaW54LmNvbT4KUmV2aWV3ZWQtYnk6IEZs b3JpYW4gRmFpbmVsbGkgPGYuZmFpbmVsbGlAZ21haWwuY29tPgpTaWduZWQtb2ZmLWJ5OiBEYXZp ZCBTLiBNaWxsZXIgPGRhdmVtQGRhdmVtbG9mdC5uZXQ+Ci0tLQogZHJpdmVycy9uZXQvcGh5L21h cnZlbGwuYyB8IDY2ICsrKysrKysrKysrKysrKysrKysrKysrKysrLS0tLS0tLS0tLS0tLS0tLS0t LS0tCiAxIGZpbGUgY2hhbmdlZCwgMzcgaW5zZXJ0aW9ucygrKSwgMjkgZGVsZXRpb25zKC0pCgpk aWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvcGh5L21hcnZlbGwuYyBiL2RyaXZlcnMvbmV0L3BoeS9t YXJ2ZWxsLmMKaW5kZXggYzJkY2YwMi4uZDZhNTQxYiAxMDA2NDQKLS0tIGEvZHJpdmVycy9uZXQv cGh5L21hcnZlbGwuYworKysgYi9kcml2ZXJzL25ldC9waHkvbWFydmVsbC5jCkBAIC0yNDAsMzQg KzI0MCw2IEBAIHN0YXRpYyBpbnQgbWFydmVsbF9jb25maWdfYW5lZyhzdHJ1Y3QgcGh5X2Rldmlj ZSAqcGh5ZGV2KQogewogCWludCBlcnI7CiAKLQkvKiBUaGUgTWFydmVsbCBQSFkgaGFzIGFuIGVy cmF0YSB3aGljaCByZXF1aXJlcwotCSAqIHRoYXQgY2VydGFpbiByZWdpc3RlcnMgZ2V0IHdyaXR0 ZW4gaW4gb3JkZXIKLQkgKiB0byByZXN0YXJ0IGF1dG9uZWdvdGlhdGlvbiAqLwotCWVyciA9IHBo eV93cml0ZShwaHlkZXYsIE1JSV9CTUNSLCBCTUNSX1JFU0VUKTsKLQotCWlmIChlcnIgPCAwKQot CQlyZXR1cm4gZXJyOwotCi0JZXJyID0gcGh5X3dyaXRlKHBoeWRldiwgMHgxZCwgMHgxZik7Ci0J aWYgKGVyciA8IDApCi0JCXJldHVybiBlcnI7Ci0KLQllcnIgPSBwaHlfd3JpdGUocGh5ZGV2LCAw eDFlLCAweDIwMGMpOwotCWlmIChlcnIgPCAwKQotCQlyZXR1cm4gZXJyOwotCi0JZXJyID0gcGh5 X3dyaXRlKHBoeWRldiwgMHgxZCwgMHg1KTsKLQlpZiAoZXJyIDwgMCkKLQkJcmV0dXJuIGVycjsK LQotCWVyciA9IHBoeV93cml0ZShwaHlkZXYsIDB4MWUsIDApOwotCWlmIChlcnIgPCAwKQotCQly ZXR1cm4gZXJyOwotCi0JZXJyID0gcGh5X3dyaXRlKHBoeWRldiwgMHgxZSwgMHgxMDApOwotCWlm IChlcnIgPCAwKQotCQlyZXR1cm4gZXJyOwotCiAJZXJyID0gbWFydmVsbF9zZXRfcG9sYXJpdHko cGh5ZGV2LCBwaHlkZXYtPm1kaXgpOwogCWlmIChlcnIgPCAwKQogCQlyZXR1cm4gZXJyOwpAQCAt MzAxLDYgKzI3Myw0MiBAQCBzdGF0aWMgaW50IG1hcnZlbGxfY29uZmlnX2FuZWcoc3RydWN0IHBo eV9kZXZpY2UgKnBoeWRldikKIAlyZXR1cm4gMDsKIH0KIAorc3RhdGljIGludCBtODhlMTEwMV9j b25maWdfYW5lZyhzdHJ1Y3QgcGh5X2RldmljZSAqcGh5ZGV2KQoreworCWludCBlcnI7CisKKwkv KiBUaGlzIE1hcnZlbGwgUEhZIGhhcyBhbiBlcnJhdGEgd2hpY2ggcmVxdWlyZXMKKwkgKiB0aGF0 IGNlcnRhaW4gcmVnaXN0ZXJzIGdldCB3cml0dGVuIGluIG9yZGVyCisJICogdG8gcmVzdGFydCBh dXRvbmVnb3RpYXRpb24KKwkgKi8KKwllcnIgPSBwaHlfd3JpdGUocGh5ZGV2LCBNSUlfQk1DUiwg Qk1DUl9SRVNFVCk7CisKKwlpZiAoZXJyIDwgMCkKKwkJcmV0dXJuIGVycjsKKworCWVyciA9IHBo eV93cml0ZShwaHlkZXYsIDB4MWQsIDB4MWYpOworCWlmIChlcnIgPCAwKQorCQlyZXR1cm4gZXJy OworCisJZXJyID0gcGh5X3dyaXRlKHBoeWRldiwgMHgxZSwgMHgyMDBjKTsKKwlpZiAoZXJyIDwg MCkKKwkJcmV0dXJuIGVycjsKKworCWVyciA9IHBoeV93cml0ZShwaHlkZXYsIDB4MWQsIDB4NSk7 CisJaWYgKGVyciA8IDApCisJCXJldHVybiBlcnI7CisKKwllcnIgPSBwaHlfd3JpdGUocGh5ZGV2 LCAweDFlLCAwKTsKKwlpZiAoZXJyIDwgMCkKKwkJcmV0dXJuIGVycjsKKworCWVyciA9IHBoeV93 cml0ZShwaHlkZXYsIDB4MWUsIDB4MTAwKTsKKwlpZiAoZXJyIDwgMCkKKwkJcmV0dXJuIGVycjsK KworCXJldHVybiBtYXJ2ZWxsX2NvbmZpZ19hbmVnKHBoeWRldik7Cit9CisKIHN0YXRpYyBpbnQg bTg4ZTExMTFfY29uZmlnX2FuZWcoc3RydWN0IHBoeV9kZXZpY2UgKnBoeWRldikKIHsKIAlpbnQg ZXJyOwpAQCAtMTQ5MSw3ICsxNDk5LDcgQEAgc3RhdGljIHN0cnVjdCBwaHlfZHJpdmVyIG1hcnZl bGxfZHJpdmVyc1tdID0gewogCQkucHJvYmUgPSBtYXJ2ZWxsX3Byb2JlLAogCQkuZmxhZ3MgPSBQ SFlfSEFTX0lOVEVSUlVQVCwKIAkJLmNvbmZpZ19pbml0ID0gJm1hcnZlbGxfY29uZmlnX2luaXQs Ci0JCS5jb25maWdfYW5lZyA9ICZtYXJ2ZWxsX2NvbmZpZ19hbmVnLAorCQkuY29uZmlnX2FuZWcg PSAmbTg4ZTExMDFfY29uZmlnX2FuZWcsCiAJCS5yZWFkX3N0YXR1cyA9ICZnZW5waHlfcmVhZF9z dGF0dXMsCiAJCS5hY2tfaW50ZXJydXB0ID0gJm1hcnZlbGxfYWNrX2ludGVycnVwdCwKIAkJLmNv bmZpZ19pbnRyID0gJm1hcnZlbGxfY29uZmlnX2ludHIsCi0tIAoyLjkuNAoKCkZyb20gZjEwNjll MDgwN2E0MTIxOWZlZDBmNWFkZDUyMDE0ODkwN2MzZmQwNSBNb24gU2VwIDE3IDAwOjAwOjAwIDIw MDEKRnJvbTogVmxhZCBZYXNldmljaCA8dnlhc2V2aWNoQGdtYWlsLmNvbT4KRGF0ZTogVHVlLCAy MyBNYXkgMjAxNyAxMzozODo0MSAtMDQwMApTdWJqZWN0OiBbUEFUQ0ggMjgvMzRdIHZsYW46IEZp eCB0Y3AgY2hlY2tzdW0gb2ZmbG9hZHMgaW4gUS1pbi1RIHZsYW5zCgpbIFVwc3RyZWFtIGNvbW1p dCAzNWQyZjgwYjA3YmJlMDNmYjM1OGFmYjBiZGVmZjc0MzdhN2Q2N2ZmIF0KCkl0IGFwcGVhcnMg dGhhdCBUQ1AgY2hlY2tzdW0gb2ZmbG9hZGluZyBoYXMgYmVlbiBicm9rZW4gZm9yClEtaW4tUSB2 bGFucy4gIFRoZSBiZWhhdmlvciB3YXMgZXhlY2VyYmF0ZWQgYnkgdGhlCnNlcmllcwogICAgY29t bWl0IGFmYjBiYzk3MmI1MiAoIk1lcmdlIGJyYW5jaCAnc3RhY2tlZF92bGFuX3RzbyciKQp0aGF0 IHRoYXQgZW5hYmxlZCBhY2NsZWxlcmF0aW9uIGZlYXR1cmVzIG9uIHN0YWNrZWQgdmxhbnMuCgpI b3dldmVyLCBldmVudCB3aXRob3V0IHRoYXQgc2VyaWVzLCBpdCBpcyBwb3NzaWJsZSB0byB0cmln Z2VyCnRoaXMgaXNzdWUuICBJdCBqdXN0IHJlcXVpcmVzIGEgbG90IG1vcmUgc3BlY2lhbGl6ZWQg Y29uZmlndXJhdGlvbi4KClRoZSByb290IGNhdXNlIGlzIHRoZSBpbnRlcmFjdGlvbiBiZXR3ZWVu IGhvdwpuZXRkZXZfaW50ZXJzZWN0X2ZlYXR1cmVzKCkgd29ya3MsIHRoZSBmZWF0dXJlcyBhY3R1 YWxseSBzZXQgb24KdGhlIHZsYW4gZGV2aWNlcyBhbmQgSFcgaGF2aW5nIHRoZSBhYmlsaXR5IHRv IHJ1biBjaGVja3N1bSB3aXRoCmxvbmdlciBoZWFkZXJzLgoKVGhlIGlzc3VlIHN0YXJ0cyB3aGVu IG5ldGRldl9pbnRlcmVzZWN0X2ZlYXR1cmVzKCkgcmVwbGFjZXMKTkVUSUZfRl9IV19DU1VNIHdp dGggYSBjb21iaW5hdGlvbiBvZiBORVRJRl9GX0lQX0NTVU0gfCBORVRJRl9GX0lQVjZfQ1NVTSwK aWYgdGhlIEhXIGFkdmVydGlzZXMgSVB8SVBWNiBzcGVjaWZpYyBjaGVja3N1bXMuICBUaGlzIGhh cHBlbnMKZm9yIHRhZ2dlZCBhbmQgbXVsdGktdGFnZ2VkIHBhY2tldHMuICAgSG93ZXZlciwgSFcg dGhhdCBlbmFibGVzCklQfElQVjYgY2hlY2tzdW0gb2ZmbG9hZGluZyBkb2Vzbid0IGd1cmFudGVl IHRoYXQgcGFja2V0cyB3aXRoCmFyYml0cmFyaWx5IGxvbmcgaGVhZGVycyBjYW4gYmUgY2hlY2tz dW1tZWQuCgpUaGlzIHBhdGNoIGRpc2FibGVzIElQfElQVjYgY2hlY2tzdW1zIG9uIHRoZSBwYWNr ZXQgZm9yIG11bHRpLXRhZ2dlZApwYWNrZXRzLgoKQ0M6IFRvc2hpYWtpIE1ha2l0YSA8bWFraXRh LnRvc2hpYWtpQGxhYi5udHQuY28uanA+CkNDOiBNaWNoYWwgS3ViZWNlayA8bWt1YmVjZWtAc3Vz ZS5jej4KU2lnbmVkLW9mZi1ieTogVmxhZGlzbGF2IFlhc2V2aWNoIDx2eWFzZXZpY0ByZWRoYXQu Y29tPgpBY2tlZC1ieTogVG9zaGlha2kgTWFraXRhIDxtYWtpdGEudG9zaGlha2lAbGFiLm50dC5j by5qcD4KU2lnbmVkLW9mZi1ieTogRGF2aWQgUy4gTWlsbGVyIDxkYXZlbUBkYXZlbWxvZnQubmV0 PgotLS0KIGluY2x1ZGUvbGludXgvaWZfdmxhbi5oIHwgMTggKysrKysrKysrKy0tLS0tLS0tCiAx IGZpbGUgY2hhbmdlZCwgMTAgaW5zZXJ0aW9ucygrKSwgOCBkZWxldGlvbnMoLSkKCmRpZmYgLS1n aXQgYS9pbmNsdWRlL2xpbnV4L2lmX3ZsYW4uaCBiL2luY2x1ZGUvbGludXgvaWZfdmxhbi5oCmlu ZGV4IDMzMTlkOTcuLjhmZWVjZDUgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUvbGludXgvaWZfdmxhbi5o CisrKyBiL2luY2x1ZGUvbGludXgvaWZfdmxhbi5oCkBAIC02MzAsMTQgKzYzMCwxNiBAQCBzdGF0 aWMgaW5saW5lIGJvb2wgc2tiX3ZsYW5fdGFnZ2VkX211bHRpKGNvbnN0IHN0cnVjdCBza19idWZm ICpza2IpCiBzdGF0aWMgaW5saW5lIG5ldGRldl9mZWF0dXJlc190IHZsYW5fZmVhdHVyZXNfY2hl Y2soY29uc3Qgc3RydWN0IHNrX2J1ZmYgKnNrYiwKIAkJCQkJCSAgICBuZXRkZXZfZmVhdHVyZXNf dCBmZWF0dXJlcykKIHsKLQlpZiAoc2tiX3ZsYW5fdGFnZ2VkX211bHRpKHNrYikpCi0JCWZlYXR1 cmVzID0gbmV0ZGV2X2ludGVyc2VjdF9mZWF0dXJlcyhmZWF0dXJlcywKLQkJCQkJCSAgICAgTkVU SUZfRl9TRyB8Ci0JCQkJCQkgICAgIE5FVElGX0ZfSElHSERNQSB8Ci0JCQkJCQkgICAgIE5FVElG X0ZfRlJBR0xJU1QgfAotCQkJCQkJICAgICBORVRJRl9GX0hXX0NTVU0gfAotCQkJCQkJICAgICBO RVRJRl9GX0hXX1ZMQU5fQ1RBR19UWCB8Ci0JCQkJCQkgICAgIE5FVElGX0ZfSFdfVkxBTl9TVEFH X1RYKTsKKwlpZiAoc2tiX3ZsYW5fdGFnZ2VkX211bHRpKHNrYikpIHsKKwkJLyogSW4gdGhlIGNh c2Ugb2YgbXVsdGktdGFnZ2VkIHBhY2tldHMsIHVzZSBhIGRpcmVjdCBtYXNrCisJCSAqIGluc3Rl YWQgb2YgdXNpbmcgbmV0ZGV2X2ludGVyZXNlY3RfZmVhdHVyZXMoKSwgdG8gbWFrZQorCQkgKiBz dXJlIHRoYXQgb25seSBkZXZpY2VzIHN1cHBvcnRpbmcgTkVUSUZfRl9IV19DU1VNIHdpbGwKKwkJ ICogaGF2ZSBjaGVja3N1bSBvZmZsb2FkaW5nIHN1cHBvcnQuCisJCSAqLworCQlmZWF0dXJlcyAm PSBORVRJRl9GX1NHIHwgTkVUSUZfRl9ISUdIRE1BIHwgTkVUSUZfRl9IV19DU1VNIHwKKwkJCSAg ICBORVRJRl9GX0ZSQUdMSVNUIHwgTkVUSUZfRl9IV19WTEFOX0NUQUdfVFggfAorCQkJICAgIE5F VElGX0ZfSFdfVkxBTl9TVEFHX1RYOworCX0KIAogCXJldHVybiBmZWF0dXJlczsKIH0KLS0gCjIu OS40CgoKRnJvbSA5NzkxMDE0NjM2OGU0N2Q0MWJlOTU1NzdiZjZlMDdlNDE4MzEwZjIxIE1vbiBT ZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBWbGFkIFlhc2V2aWNoIDx2eWFzZXZpY2hAZ21haWwu Y29tPgpEYXRlOiBUdWUsIDIzIE1heSAyMDE3IDEzOjM4OjQyIC0wNDAwClN1YmplY3Q6IFtQQVRD SCAyOS8zNF0gYmUybmV0OiBGaXggb2ZmbG9hZCBmZWF0dXJlcyBmb3IgUS1pbi1RIHBhY2tldHMK ClsgVXBzdHJlYW0gY29tbWl0IGNjNmU5ZGU2MmE3Zjg0YzkyOTNhMmVhNDFiYzQxMmI1NWJiNDZl ODUgXQoKQXQgbGVhc3Qgc29tZSBvZiB0aGUgYmUybmV0IGNhcmRzIGRvIG5vdCBzZWVtIHRvIGJl IGNhcGFibGVkCm9mIHBlcmZvcm1pbmcgY2hlY2tzdW0gb2ZmbG9hZCBjb21wdXRpb25zIG9uIFEt aW4tUSBwYWNrZXRzLgpJbiB0aGVzZSBjYXNlLCB0aGUgcmVjZXZpZWQgY2hlY2tzdW0gb24gdGhl IHJlbW90ZSBpcyBpbnZhbGlkCmFuZCBUQ1Agc3luIHBhY2tldHMgYXJlIGRyb3BwZWQuCgpUaGlz IHBhdGNoIGFkZHMgYSBjYWxsIHRvIGNoZWNrIGRpc2JsZWQgYWNjZWxlcmF0aW9uIGZlYXR1cmVz Cm9uIFEtaW4tUSB0YWdnZWQgdHJhZmZpYy4KCkNDOiBTYXRoeWEgUGVybGEgPHNhdGh5YS5wZXJs YUBicm9hZGNvbS5jb20+CkNDOiBBaml0IEtoYXBhcmRlIDxhaml0LmtoYXBhcmRlQGJyb2FkY29t LmNvbT4KQ0M6IFNyaWhhcnNoYSBCYXNhdmFwYXRuYSA8c3JpaGFyc2hhLmJhc2F2YXBhdG5hQGJy b2FkY29tLmNvbT4KQ0M6IFNvbW5hdGggS290dXIgPHNvbW5hdGgua290dXJAYnJvYWRjb20uY29t PgpTaWduZWQtb2ZmLWJ5OiBWbGFkaXNsYXYgWWFzZXZpY2ggPHZ5YXNldmljQHJlZGhhdC5jb20+ ClNpZ25lZC1vZmYtYnk6IERhdmlkIFMuIE1pbGxlciA8ZGF2ZW1AZGF2ZW1sb2Z0Lm5ldD4KLS0t CiBkcml2ZXJzL25ldC9ldGhlcm5ldC9lbXVsZXgvYmVuZXQvYmVfbWFpbi5jIHwgNCArKystCiAx IGZpbGUgY2hhbmdlZCwgMyBpbnNlcnRpb25zKCspLCAxIGRlbGV0aW9uKC0pCgpkaWZmIC0tZ2l0 IGEvZHJpdmVycy9uZXQvZXRoZXJuZXQvZW11bGV4L2JlbmV0L2JlX21haW4uYyBiL2RyaXZlcnMv bmV0L2V0aGVybmV0L2VtdWxleC9iZW5ldC9iZV9tYWluLmMKaW5kZXggOTNhYTI5My4uOTcxMWNh NCAxMDA2NDQKLS0tIGEvZHJpdmVycy9uZXQvZXRoZXJuZXQvZW11bGV4L2JlbmV0L2JlX21haW4u YworKysgYi9kcml2ZXJzL25ldC9ldGhlcm5ldC9lbXVsZXgvYmVuZXQvYmVfbWFpbi5jCkBAIC01 MTQ0LDkgKzUxNDQsMTEgQEAgc3RhdGljIG5ldGRldl9mZWF0dXJlc190IGJlX2ZlYXR1cmVzX2No ZWNrKHN0cnVjdCBza19idWZmICpza2IsCiAJc3RydWN0IGJlX2FkYXB0ZXIgKmFkYXB0ZXIgPSBu ZXRkZXZfcHJpdihkZXYpOwogCXU4IGw0X2hkciA9IDA7CiAKLQkvKiBUaGUgY29kZSBiZWxvdyBy ZXN0cmljdHMgb2ZmbG9hZCBmZWF0dXJlcyBmb3Igc29tZSB0dW5uZWxlZCBwYWNrZXRzLgorCS8q IFRoZSBjb2RlIGJlbG93IHJlc3RyaWN0cyBvZmZsb2FkIGZlYXR1cmVzIGZvciBzb21lIHR1bm5l bGVkIGFuZAorCSAqIFEtaW4tUSBwYWNrZXRzLgogCSAqIE9mZmxvYWQgZmVhdHVyZXMgZm9yIG5v cm1hbCAobm9uIHR1bm5lbCkgcGFja2V0cyBhcmUgdW5jaGFuZ2VkLgogCSAqLworCWZlYXR1cmVz ID0gdmxhbl9mZWF0dXJlc19jaGVjayhza2IsIGZlYXR1cmVzKTsKIAlpZiAoIXNrYi0+ZW5jYXBz dWxhdGlvbiB8fAogCSAgICAhKGFkYXB0ZXItPmZsYWdzICYgQkVfRkxBR1NfVlhMQU5fT0ZGTE9B RFMpKQogCQlyZXR1cm4gZmVhdHVyZXM7Ci0tIAoyLjkuNAoKCkZyb20gMWY0OTI4ODgxNWQ5OTc3 M2Y5ODVmOWJmZDQ4NzJjN2FiYzliYjZkMCBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJvbTog VmxhZCBZYXNldmljaCA8dnlhc2V2aWNoQGdtYWlsLmNvbT4KRGF0ZTogVHVlLCAyMyBNYXkgMjAx NyAxMzozODo0MyAtMDQwMApTdWJqZWN0OiBbUEFUQ0ggMzAvMzRdIHZpcnRpby1uZXQ6IGVuYWJs ZSBUU08vY2hlY2tzdW0gb2ZmbG9hZHMgZm9yIFEtaW4tUQogdmxhbnMKClsgVXBzdHJlYW0gY29t bWl0IDI4MzZiNGYyMjRkNGZkN2QxYTJiMjNjM2VlY2FmMGYwYWUxOTlhNzQgXQoKU2luY2Ugdmly dGlvIGRvZXMgbm90IHByb3ZpZGUgaXQncyBvd24gbmRvX2ZlYXR1cmVzX2NoZWNrIGhhbmRsZXIs ClRTTywgYW5kIG5vdyBjaGVja3N1bSBvZmZsb2FkLCBhcmUgZGlzYWJsZWQgZm9yIHN0YWNrZWQg dmxhbnMuClJlLWVuYWJsZSB0aGUgc3VwcG9ydCBhbmQgbGV0IHRoZSBob3N0IHRha2UgY2FyZSBv ZiBpdC4gIFRoaXMKcmVzdG9yZXMvaW1wcm92ZXMgR3Vlc3QtdG8tR3Vlc3QgcGVyZm9ybWFuY2Ug b3ZlciBRLWluLVEgdmxhbnMuCgpBY2tlZC1ieTogSmFzb24gV2FuZyA8amFzb3dhbmdAcmVkaGF0 LmNvbT4KQWNrZWQtYnk6IE1pY2hhZWwgUy4gVHNpcmtpbiA8bXN0QHJlZGhhdC5jb20+ClNpZ25l ZC1vZmYtYnk6IFZsYWRpc2xhdiBZYXNldmljaCA8dnlhc2V2aWNAcmVkaGF0LmNvbT4KU2lnbmVk LW9mZi1ieTogRGF2aWQgUy4gTWlsbGVyIDxkYXZlbUBkYXZlbWxvZnQubmV0PgotLS0KIGRyaXZl cnMvbmV0L3ZpcnRpb19uZXQuYyB8IDEgKwogMSBmaWxlIGNoYW5nZWQsIDEgaW5zZXJ0aW9uKCsp CgpkaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvdmlydGlvX25ldC5jIGIvZHJpdmVycy9uZXQvdmly dGlvX25ldC5jCmluZGV4IDUxZmMwYzMuLjdjYTk5ODkgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvbmV0 L3ZpcnRpb19uZXQuYworKysgYi9kcml2ZXJzL25ldC92aXJ0aW9fbmV0LmMKQEAgLTE0NTYsNiAr MTQ1Niw3IEBAIHN0YXRpYyBjb25zdCBzdHJ1Y3QgbmV0X2RldmljZV9vcHMgdmlydG5ldF9uZXRk ZXYgPSB7CiAjaWZkZWYgQ09ORklHX05FVF9SWF9CVVNZX1BPTEwKIAkubmRvX2J1c3lfcG9sbAkJ PSB2aXJ0bmV0X2J1c3lfcG9sbCwKICNlbmRpZgorCS5uZG9fZmVhdHVyZXNfY2hlY2sJPSBwYXNz dGhydV9mZWF0dXJlc19jaGVjaywKIH07CiAKIHN0YXRpYyB2b2lkIHZpcnRuZXRfY29uZmlnX2No YW5nZWRfd29yayhzdHJ1Y3Qgd29ya19zdHJ1Y3QgKndvcmspCi0tIAoyLjkuNAoKCkZyb20gNzA4 MzdkMjYxMGY1NjE3ZDU4OWE4NTg1YTgxY2YxYmQ3ZTQzYTNjMyBNb24gU2VwIDE3IDAwOjAwOjAw IDIwMDEKRnJvbTogV2VpIFdhbmcgPHdlaXdhbkBnb29nbGUuY29tPgpEYXRlOiBXZWQsIDI0IE1h eSAyMDE3IDA5OjU5OjMxIC0wNzAwClN1YmplY3Q6IFtQQVRDSCAzMS8zNF0gdGNwOiBhdm9pZCBm YXN0b3BlbiBBUEkgdG8gYmUgdXNlZCBvbiBBRl9VTlNQRUMKClsgVXBzdHJlYW0gY29tbWl0IGJh NjE1ZjY3NTI4MWQ3NmZkMTlhYTAzNTU4Nzc3ZjgxZmI2YjYwODQgXQoKRmFzdG9wZW4gQVBJIHNo b3VsZCBiZSB1c2VkIHRvIHBlcmZvcm0gZmFzdG9wZW4gb3BlcmF0aW9ucyBvbiB0aGUgVENQCnNv Y2tldC4gSXQgZG9lcyBub3QgbWFrZSBzZW5zZSB0byB1c2UgZmFzdG9wZW4gQVBJIHRvIHBlcmZv cm0gZGlzY29ubmVjdApieSBjYWxsaW5nIGl0IHdpdGggQUZfVU5TUEVDLiBUaGUgZmFzdG9wZW4g ZGF0YSBwYXRoIGlzIGFsc28gcHJvbmUgdG8KcmFjZSBjb25kaXRpb25zIGFuZCBidWdzIHdoZW4g dXNpbmcgd2l0aCBBRl9VTlNQRUMuCgpPbmUgaXNzdWUgcmVwb3J0ZWQgYW5kIGFuYWx5emVkIGJ5 IFZlZ2FyZCBOb3NzdW0gaXMgYXMgZm9sbG93czoKKysrKysrKysrKysrKysrKysrKysrKysrKysr KysrKysrKysrKysrKysrKysrKysrKysrKysrKysrClRocmVhZCBBOiAgICAgICAgICAgICAgICAg ICAgICAgICAgICBUaHJlYWQgQjoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCnNlbmR0bygpCiAtIHRjcF9zZW5k bXNnKCkKICAgICAtIHNrX3N0cmVhbV9tZW1vcnlfZnJlZSgpID0gMAogICAgICAgICAtIGdvdG8g d2FpdF9mb3Jfc25kYnVmCgkgICAgIC0gc2tfc3RyZWFtX3dhaXRfbWVtb3J5KCkKCSAgICAgICAg LSBza193YWl0X2V2ZW50KCkgLy8gc2xlZXAKICAgICAgICAgIHwgICAgICAgICAgICAgICAgICAg ICAgICAgIHNlbmR0byhmbGFncz1NU0dfRkFTVE9QRU4sIGRlc3RfYWRkcj1BRl9VTlNQRUMpCgkg IHwgICAgICAgICAgICAgICAgICAgICAgICAgICAtIHRjcF9zZW5kbXNnKCkKCSAgfCAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIC0gdGNwX3NlbmRtc2dfZmFzdG9wZW4oKQoJICB8ICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgLSBfX2luZXRfc3RyZWFtX2Nvbm5lY3QoKQoJICB8 ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLSB0Y3BfZGlzY29ubmVjdCgpIC8v YmVjYXVzZSBvZiBBRl9VTlNQRUMKCSAgfCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIC0gdGNwX3RyYW5zbWl0X3NrYigpLy8gc2VuZCBSU1QKCSAgfCAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIC0gcmV0dXJuIDA7IC8vIG5vIHJlY29ubmVjdCEKCSAgfCAg ICAgICAgICAgICAgICAgICAgICAgICAgIC0gc2tfc3RyZWFtX3dhaXRfY29ubmVjdCgpCgkgIHwg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAtIHNvY2tfZXJyb3IoKQoJICB8ICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLSB4Y2hnKCZzay0+c2tfZXJyLCAwKQoJICB8 ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLSByZXR1cm4gLUVDT05OUkVTRVQK CS0gLi4uIC8vIHdha2UgdXAsIHNlZSBzay0+c2tfZXJyID09IDAKICAgIC0gc2tiX2VudGFpbCgp IG9uIFRDUF9DTE9TRSBzb2NrZXQKCklmIHRoZSBjb25uZWN0aW9uIGlzIHJlb3BlbmVkIHRoZW4g d2Ugd2lsbCBzZW5kIGEgYnJhbmQgbmV3IFNZTiBwYWNrZXQKYWZ0ZXIgdGhyZWFkIEEgaGFzIGFs cmVhZHkgcXVldWVkIGEgYnVmZmVyLiBBdCB0aGlzIHBvaW50IEkgdGhpbmsgdGhlCnNvY2tldCBp bnRlcm5hbCBzdGF0ZSAoc2VxdWVuY2UgbnVtYmVycyBldGMuKSBiZWNvbWVzIG1lc3NlZCB1cC4K CldoZW4gdGhlIG5ldyBjb25uZWN0aW9uIGlzIGNsb3NlZCwgdGhlIEZJTi1BQ0sgaXMgcmVqZWN0 ZWQgYmVjYXVzZSB0aGUKc2VxdWVuY2UgbnVtYmVyIGlzIG91dHNpZGUgdGhlIHdpbmRvdy4gVGhl IG90aGVyIHNpZGUgdHJpZXMgdG8KcmV0cmFuc21pdCwKYnV0IF9fdGNwX3JldHJhbnNtaXRfc2ti KCkgY2FsbHMgdGNwX3RyaW1faGVhZCgpIG9uIGFuIGVtcHR5IHNrYiB3aGljaApjb3JydXB0cyB0 aGUgc2tiIGRhdGEgbGVuZ3RoIGFuZCBoaXRzIGEgQlVHKCkgaW4gY29weV9hbmRfY3N1bV9iaXRz KCkuCisrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysr KysrKwoKSGVuY2UsIHRoaXMgcGF0Y2ggYWRkcyBhIGNoZWNrIGZvciBBRl9VTlNQRUMgaW4gdGhl IGZhc3RvcGVuIGRhdGEgcGF0aAphbmQgcmV0dXJuIEVPUE5PVFNVUFAgdG8gdXNlciBpZiBzdWNo IGNhc2UgaGFwcGVucy4KCkZpeGVzOiBjZjYwYWYwM2NhNGU3ICgidGNwOiBGYXN0IE9wZW4gY2xp ZW50IC0gc2VuZG1zZyhNU0dfRkFTVE9QRU4pIikKUmVwb3J0ZWQtYnk6IFZlZ2FyZCBOb3NzdW0g PHZlZ2FyZC5ub3NzdW1Ab3JhY2xlLmNvbT4KU2lnbmVkLW9mZi1ieTogV2VpIFdhbmcgPHdlaXdh bkBnb29nbGUuY29tPgpTaWduZWQtb2ZmLWJ5OiBFcmljIER1bWF6ZXQgPGVkdW1hemV0QGdvb2ds ZS5jb20+ClNpZ25lZC1vZmYtYnk6IERhdmlkIFMuIE1pbGxlciA8ZGF2ZW1AZGF2ZW1sb2Z0Lm5l dD4KLS0tCiBuZXQvaXB2NC90Y3AuYyB8IDcgKysrKystLQogMSBmaWxlIGNoYW5nZWQsIDUgaW5z ZXJ0aW9ucygrKSwgMiBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9uZXQvaXB2NC90Y3AuYyBi L25ldC9pcHY0L3RjcC5jCmluZGV4IGViMTQyY2EuLjg2ZmJmMGYgMTAwNjQ0Ci0tLSBhL25ldC9p cHY0L3RjcC5jCisrKyBiL25ldC9pcHY0L3RjcC5jCkBAIC0xMDc4LDkgKzEwNzgsMTIgQEAgc3Rh dGljIGludCB0Y3Bfc2VuZG1zZ19mYXN0b3BlbihzdHJ1Y3Qgc29jayAqc2ssIHN0cnVjdCBtc2do ZHIgKm1zZywKIAkJCQlpbnQgKmNvcGllZCwgc2l6ZV90IHNpemUpCiB7CiAJc3RydWN0IHRjcF9z b2NrICp0cCA9IHRjcF9zayhzayk7CisJc3RydWN0IHNvY2thZGRyICp1YWRkciA9IG1zZy0+bXNn X25hbWU7CiAJaW50IGVyciwgZmxhZ3M7CiAKLQlpZiAoIShzeXNjdGxfdGNwX2Zhc3RvcGVuICYg VEZPX0NMSUVOVF9FTkFCTEUpKQorCWlmICghKHN5c2N0bF90Y3BfZmFzdG9wZW4gJiBURk9fQ0xJ RU5UX0VOQUJMRSkgfHwKKwkgICAgKHVhZGRyICYmIG1zZy0+bXNnX25hbWVsZW4gPj0gc2l6ZW9m KHVhZGRyLT5zYV9mYW1pbHkpICYmCisJICAgICB1YWRkci0+c2FfZmFtaWx5ID09IEFGX1VOU1BF QykpCiAJCXJldHVybiAtRU9QTk9UU1VQUDsKIAlpZiAodHAtPmZhc3RvcGVuX3JlcSkKIAkJcmV0 dXJuIC1FQUxSRUFEWTsgLyogQW5vdGhlciBGYXN0IE9wZW4gaXMgaW4gcHJvZ3Jlc3MgKi8KQEAg LTEwOTMsNyArMTA5Niw3IEBAIHN0YXRpYyBpbnQgdGNwX3NlbmRtc2dfZmFzdG9wZW4oc3RydWN0 IHNvY2sgKnNrLCBzdHJ1Y3QgbXNnaGRyICptc2csCiAJdHAtPmZhc3RvcGVuX3JlcS0+c2l6ZSA9 IHNpemU7CiAKIAlmbGFncyA9IChtc2ctPm1zZ19mbGFncyAmIE1TR19ET05UV0FJVCkgPyBPX05P TkJMT0NLIDogMDsKLQllcnIgPSBfX2luZXRfc3RyZWFtX2Nvbm5lY3Qoc2stPnNrX3NvY2tldCwg bXNnLT5tc2dfbmFtZSwKKwllcnIgPSBfX2luZXRfc3RyZWFtX2Nvbm5lY3Qoc2stPnNrX3NvY2tl dCwgdWFkZHIsCiAJCQkJICAgIG1zZy0+bXNnX25hbWVsZW4sIGZsYWdzKTsKIAkqY29waWVkID0g dHAtPmZhc3RvcGVuX3JlcS0+Y29waWVkOwogCXRjcF9mcmVlX2Zhc3RvcGVuX3JlcSh0cCk7Ci0t IAoyLjkuNAoKCkZyb20gNzVhMzU4MzA0N2VjMTVhODc0Y2Y4NDgzY2I3YjIwZmZjZDI4Yjc0ZiBN b24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJvbTogRGF2aWRlIENhcmF0dGkgPGRjYXJhdHRpQHJl ZGhhdC5jb20+CkRhdGU6IFRodSwgMjUgTWF5IDIwMTcgMTk6MTQ6NTYgKzAyMDAKU3ViamVjdDog W1BBVENIIDMyLzM0XSBzY3RwOiBmaXggSUNNUCBwcm9jZXNzaW5nIGlmIHNrYiBpcyBub24tbGlu ZWFyCgpbIFVwc3RyZWFtIGNvbW1pdCA4MDRlYzdlYmU4ZWEwMDM5OTljYThkMWJmYzQ5OWVkYzZh OWUwN2RmIF0KCnNvbWV0aW1lcyBJQ01QIHJlcGxpZXMgdG8gSU5JVCBjaHVua3MgYXJlIGlnbm9y ZWQgYnkgdGhlIGNsaWVudCwgZXZlbiBpZgp0aGUgZW5jYXBzdWxhdGVkIFNDVFAgaGVhZGVycyBt YXRjaCBhbiBvcGVuIHNvY2tldC4gVGhpcyBoYXBwZW5zIHdoZW4gdGhlCklDTVAgcGFja2V0IGlz IGNhcnJpZWQgYnkgYSBwYWdlZCBza2I6IHVzZSBza2JfaGVhZGVyX3BvaW50ZXIoKSB0byByZWFk CnBhY2tldCBjb250ZW50cyBiZXlvbmQgdGhlIFNDVFAgaGVhZGVyLCBzbyB0aGF0IGNodW5rIGhl YWRlciBhbmQgaW5pdGlhdGUKdGFnIGFyZSB2YWxpZGF0ZWQgY29ycmVjdGx5LgoKdjI6Ci0gZG9u J3QgdXNlIHNrYl9oZWFkZXJfcG9pbnRlcigpIHRvIHJlYWQgdGhlIHRyYW5zcG9ydCBoZWFkZXIs IHNpbmNlCiAgaWNtcF9zb2NrZXRfZGVsaXZlcigpIGFscmVhZHkgcHV0cyB0aGVzZSA4IGJ5dGVz IGluIHRoZSBsaW5lYXIgYXJlYS4KLSBjaGFuZ2UgY29tbWl0IG1lc3NhZ2UgdG8gbWFrZSBzcGVj aWZpYyByZWZlcmVuY2UgdG8gSU5JVCBjaHVua3MuCgpTaWduZWQtb2ZmLWJ5OiBEYXZpZGUgQ2Fy YXR0aSA8ZGNhcmF0dGlAcmVkaGF0LmNvbT4KQWNrZWQtYnk6IE1hcmNlbG8gUmljYXJkbyBMZWl0 bmVyIDxtYXJjZWxvLmxlaXRuZXJAZ21haWwuY29tPgpBY2tlZC1ieTogVmxhZCBZYXNldmljaCA8 dnlhc2V2aWNoQGdtYWlsLmNvbT4KUmV2aWV3ZWQtYnk6IFhpbiBMb25nIDxsdWNpZW4ueGluQGdt YWlsLmNvbT4KU2lnbmVkLW9mZi1ieTogRGF2aWQgUy4gTWlsbGVyIDxkYXZlbUBkYXZlbWxvZnQu bmV0PgotLS0KIG5ldC9zY3RwL2lucHV0LmMgfCAxNiArKysrKysrKystLS0tLS0tCiAxIGZpbGUg Y2hhbmdlZCwgOSBpbnNlcnRpb25zKCspLCA3IGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL25l dC9zY3RwL2lucHV0LmMgYi9uZXQvc2N0cC9pbnB1dC5jCmluZGV4IGEwMWE1NmUuLjZjNzk5MTUg MTAwNjQ0Ci0tLSBhL25ldC9zY3RwL2lucHV0LmMKKysrIGIvbmV0L3NjdHAvaW5wdXQuYwpAQCAt NDczLDE1ICs0NzMsMTQgQEAgc3RydWN0IHNvY2sgKnNjdHBfZXJyX2xvb2t1cChzdHJ1Y3QgbmV0 ICpuZXQsIGludCBmYW1pbHksIHN0cnVjdCBza19idWZmICpza2IsCiAJCQkgICAgIHN0cnVjdCBz Y3RwX2Fzc29jaWF0aW9uICoqYXBwLAogCQkJICAgICBzdHJ1Y3Qgc2N0cF90cmFuc3BvcnQgKip0 cHApCiB7CisJc3RydWN0IHNjdHBfaW5pdF9jaHVuayAqY2h1bmtoZHIsIF9jaHVua2hkcjsKIAl1 bmlvbiBzY3RwX2FkZHIgc2FkZHI7CiAJdW5pb24gc2N0cF9hZGRyIGRhZGRyOwogCXN0cnVjdCBz Y3RwX2FmICphZjsKIAlzdHJ1Y3Qgc29jayAqc2sgPSBOVUxMOwogCXN0cnVjdCBzY3RwX2Fzc29j aWF0aW9uICphc29jOwogCXN0cnVjdCBzY3RwX3RyYW5zcG9ydCAqdHJhbnNwb3J0ID0gTlVMTDsK LQlzdHJ1Y3Qgc2N0cF9pbml0X2NodW5rICpjaHVua2hkcjsKIAlfX3UzMiB2dGFnID0gbnRvaGwo c2N0cGhkci0+dnRhZyk7Ci0JaW50IGxlbiA9IHNrYi0+bGVuIC0gKCh2b2lkICopc2N0cGhkciAt ICh2b2lkICopc2tiLT5kYXRhKTsKIAogCSphcHAgPSBOVUxMOyAqdHBwID0gTlVMTDsKIApAQCAt NTE2LDEzICs1MTUsMTYgQEAgc3RydWN0IHNvY2sgKnNjdHBfZXJyX2xvb2t1cChzdHJ1Y3QgbmV0 ICpuZXQsIGludCBmYW1pbHksIHN0cnVjdCBza19idWZmICpza2IsCiAJICogZGlzY2FyZCB0aGUg cGFja2V0LgogCSAqLwogCWlmICh2dGFnID09IDApIHsKLQkJY2h1bmtoZHIgPSAodm9pZCAqKXNj dHBoZHIgKyBzaXplb2Yoc3RydWN0IHNjdHBoZHIpOwotCQlpZiAobGVuIDwgc2l6ZW9mKHN0cnVj dCBzY3RwaGRyKSArIHNpemVvZihzY3RwX2NodW5raGRyX3QpCi0JCQkgICsgc2l6ZW9mKF9fYmUz MikgfHwKKwkJLyogY2h1bmsgaGVhZGVyICsgZmlyc3QgNCBvY3RlY3RzIG9mIGluaXQgaGVhZGVy ICovCisJCWNodW5raGRyID0gc2tiX2hlYWRlcl9wb2ludGVyKHNrYiwgc2tiX3RyYW5zcG9ydF9v ZmZzZXQoc2tiKSArCisJCQkJCSAgICAgIHNpemVvZihzdHJ1Y3Qgc2N0cGhkciksCisJCQkJCSAg ICAgIHNpemVvZihzdHJ1Y3Qgc2N0cF9jaHVua2hkcikgKworCQkJCQkgICAgICBzaXplb2YoX19i ZTMyKSwgJl9jaHVua2hkcik7CisJCWlmICghY2h1bmtoZHIgfHwKIAkJICAgIGNodW5raGRyLT5j aHVua19oZHIudHlwZSAhPSBTQ1RQX0NJRF9JTklUIHx8Ci0JCSAgICBudG9obChjaHVua2hkci0+ aW5pdF9oZHIuaW5pdF90YWcpICE9IGFzb2MtPmMubXlfdnRhZykgeworCQkgICAgbnRvaGwoY2h1 bmtoZHItPmluaXRfaGRyLmluaXRfdGFnKSAhPSBhc29jLT5jLm15X3Z0YWcpCiAJCQlnb3RvIG91 dDsKLQkJfQorCiAJfSBlbHNlIGlmICh2dGFnICE9IGFzb2MtPmMucGVlcl92dGFnKSB7CiAJCWdv dG8gb3V0OwogCX0KLS0gCjIuOS40CgoKRnJvbSA1Mjc3MGNlNGQyYWI4ZGE2ZWRlZjk1Y2UxNjAw NWIxNmRhZDgyYjljIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBFcmljIER1bWF6ZXQg PGVkdW1hemV0QGdvb2dsZS5jb20+CkRhdGU6IFRodSwgMjUgTWF5IDIwMTcgMTQ6Mjc6MzUgLTA3 MDAKU3ViamVjdDogW1BBVENIIDMzLzM0XSBpcHY0OiBhZGQgcmVmZXJlbmNlIGNvdW50aW5nIHRv IG1ldHJpY3MKClsgVXBzdHJlYW0gY29tbWl0IDNmYjA3ZGFmZjhlOTkyNDMzNjZhMDgxZTUxMjk1 NjA3MzRkZTRhZGEgXQoKQW5kcmV5IEtvbm92YWxvdiByZXBvcnRlZCBjcmFzaGVzIGluIGlwdjRf bXR1KCkKCkkgY291bGQgcmVwcm9kdWNlIHRoZSBpc3N1ZSB3aXRoIEtBU0FOIGtlcm5lbHMsIGJl dHdlZW4KMTAuMjQ2LjcuMTUxIGFuZCAxMC4yNDYuNy4xNTIgOgoKMSkgMjAgY29uY3VycmVudCBu ZXRwZXJmIC10IFRDUF9SUiAtSCAxMC4yNDYuNy4xNTIgLWwgMTAwMCAmCgoyKSBBdCB0aGUgc2Ft ZSB0aW1lIHJ1biBmb2xsb3dpbmcgbG9vcCA6CndoaWxlIDoKZG8KIGlwIHJvIGFkZCAxMC4yNDYu Ny4xNTIgZGV2IGV0aDAgc3JjIDEwLjI0Ni43LjE1MSBtdHUgMTUwMAogaXAgcm8gZGVsIDEwLjI0 Ni43LjE1MiBkZXYgZXRoMCBzcmMgMTAuMjQ2LjcuMTUxIG10dSAxNTAwCmRvbmUKCkNvbmcgV2Fu ZyBhdHRlbXB0ZWQgdG8gYWRkIGJhY2sgcnQtPmZpIGluIGNvbW1pdAo4MjQ4NmFhNmYxYjkgKCJp cHY0OiByZXN0b3JlIHJ0LT5maSBmb3IgcmVmZXJlbmNlIGNvdW50aW5nIikKYnV0IHRoaXMgcHJv dmVkIHRvIGFkZCBzb21lIGlzc3VlcyB0aGF0IHdlcmUgY29tcGxleCB0byBzb2x2ZS4KCkluc3Rl YWQsIEkgc3VnZ2VzdGVkIHRvIGFkZCBhIHJlZmNvdW50IHRvIHRoZSBtZXRyaWNzIHRoZW1zZWx2 ZXMsCmJlaW5nIGEgc3RhbmRhbG9uZSBvYmplY3QgKGluIHBhcnRpY3VsYXIsIG5vIHJlZmVyZW5j ZSB0byBvdGhlciBvYmplY3RzKQoKSSB0cmllZCB0byBtYWtlIHRoaXMgcGF0Y2ggYXMgc21hbGwg YXMgcG9zc2libGUgdG8gZWFzZSBpdHMgYmFja3BvcnQsCmluc3RlYWQgb2YgYmVpbmcgc3VwZXIg Y2xlYW4uIE5vdGUgdGhhdCB3ZSBiZWxpZXZlIHRoYXQgb25seSBpcHY0IGRzdApuZWVkIHRvIHRh a2UgY2FyZSBvZiB0aGUgbWV0cmljIHJlZmNvdW50LiBCdXQgaWYgdGhpcyBpcyB3cm9uZywKdGhp cyBwYXRjaCBhZGRzIHRoZSBiYXNpYyBpbmZyYXN0cnVjdHVyZSB0byBleHRlbmQgdGhpcyB0byBv dGhlcgpmYW1pbGllcy4KCk1hbnkgdGhhbmtzIHRvIEp1bGlhbiBBbmFzdGFzb3YgZm9yIHJldmll d2luZyB0aGlzIHBhdGNoLCBhbmQgQ29uZyBXYW5nCmZvciBoaXMgZWZmb3J0cyBvbiB0aGlzIHBy b2JsZW0uCgpGaXhlczogMjg2MDU4M2ZlODQwICgiaXB2NDogS2lsbCBydC0+ZmkiKQpTaWduZWQt b2ZmLWJ5OiBFcmljIER1bWF6ZXQgPGVkdW1hemV0QGdvb2dsZS5jb20+ClJlcG9ydGVkLWJ5OiBB bmRyZXkgS29ub3ZhbG92IDxhbmRyZXlrbnZsQGdvb2dsZS5jb20+ClJldmlld2VkLWJ5OiBKdWxp YW4gQW5hc3Rhc292IDxqYUBzc2kuYmc+CkFja2VkLWJ5OiBDb25nIFdhbmcgPHhpeW91Lndhbmdj b25nQGdtYWlsLmNvbT4KU2lnbmVkLW9mZi1ieTogRGF2aWQgUy4gTWlsbGVyIDxkYXZlbUBkYXZl bWxvZnQubmV0PgotLS0KIGluY2x1ZGUvbmV0L2RzdC5oICAgICAgICB8ICA4ICsrKysrKystCiBp bmNsdWRlL25ldC9pcF9maWIuaCAgICAgfCAxMCArKysrKy0tLS0tCiBuZXQvY29yZS9kc3QuYyAg ICAgICAgICAgfCAyMyArKysrKysrKysrKysrKy0tLS0tLS0tLQogbmV0L2lwdjQvZmliX3NlbWFu dGljcy5jIHwgMTcgKysrKysrKysrKy0tLS0tLS0KIG5ldC9pcHY0L3JvdXRlLmMgICAgICAgICB8 IDEwICsrKysrKysrKy0KIDUgZmlsZXMgY2hhbmdlZCwgNDUgaW5zZXJ0aW9ucygrKSwgMjMgZGVs ZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9uZXQvZHN0LmggYi9pbmNsdWRlL25ldC9k c3QuaAppbmRleCA2ODM1ZDIyLi5kZGNmZjE3IDEwMDY0NAotLS0gYS9pbmNsdWRlL25ldC9kc3Qu aAorKysgYi9pbmNsdWRlL25ldC9kc3QuaApAQCAtMTA3LDEwICsxMDcsMTYgQEAgc3RydWN0IGRz dF9lbnRyeSB7CiAJfTsKIH07CiAKK3N0cnVjdCBkc3RfbWV0cmljcyB7CisJdTMyCQltZXRyaWNz W1JUQVhfTUFYXTsKKwlhdG9taWNfdAlyZWZjbnQ7Cit9OworZXh0ZXJuIGNvbnN0IHN0cnVjdCBk c3RfbWV0cmljcyBkc3RfZGVmYXVsdF9tZXRyaWNzOworCiB1MzIgKmRzdF9jb3dfbWV0cmljc19n ZW5lcmljKHN0cnVjdCBkc3RfZW50cnkgKmRzdCwgdW5zaWduZWQgbG9uZyBvbGQpOwotZXh0ZXJu IGNvbnN0IHUzMiBkc3RfZGVmYXVsdF9tZXRyaWNzW107CiAKICNkZWZpbmUgRFNUX01FVFJJQ1Nf UkVBRF9PTkxZCQkweDFVTAorI2RlZmluZSBEU1RfTUVUUklDU19SRUZDT1VOVEVECQkweDJVTAog I2RlZmluZSBEU1RfTUVUUklDU19GTEFHUwkJMHgzVUwKICNkZWZpbmUgX19EU1RfTUVUUklDU19Q VFIoWSkJXAogCSgodTMyICopKChZKSAmIH5EU1RfTUVUUklDU19GTEFHUykpCmRpZmYgLS1naXQg YS9pbmNsdWRlL25ldC9pcF9maWIuaCBiL2luY2x1ZGUvbmV0L2lwX2ZpYi5oCmluZGV4IGYzOTBj M2IuLmFhNzU4MjggMTAwNjQ0Ci0tLSBhL2luY2x1ZGUvbmV0L2lwX2ZpYi5oCisrKyBiL2luY2x1 ZGUvbmV0L2lwX2ZpYi5oCkBAIC0xMTQsMTEgKzExNCwxMSBAQCBzdHJ1Y3QgZmliX2luZm8gewog CV9fYmUzMgkJCWZpYl9wcmVmc3JjOwogCXUzMgkJCWZpYl90Yl9pZDsKIAl1MzIJCQlmaWJfcHJp b3JpdHk7Ci0JdTMyCQkJKmZpYl9tZXRyaWNzOwotI2RlZmluZSBmaWJfbXR1IGZpYl9tZXRyaWNz W1JUQVhfTVRVLTFdCi0jZGVmaW5lIGZpYl93aW5kb3cgZmliX21ldHJpY3NbUlRBWF9XSU5ET1ct MV0KLSNkZWZpbmUgZmliX3J0dCBmaWJfbWV0cmljc1tSVEFYX1JUVC0xXQotI2RlZmluZSBmaWJf YWR2bXNzIGZpYl9tZXRyaWNzW1JUQVhfQURWTVNTLTFdCisJc3RydWN0IGRzdF9tZXRyaWNzCSpm aWJfbWV0cmljczsKKyNkZWZpbmUgZmliX210dSBmaWJfbWV0cmljcy0+bWV0cmljc1tSVEFYX01U VS0xXQorI2RlZmluZSBmaWJfd2luZG93IGZpYl9tZXRyaWNzLT5tZXRyaWNzW1JUQVhfV0lORE9X LTFdCisjZGVmaW5lIGZpYl9ydHQgZmliX21ldHJpY3MtPm1ldHJpY3NbUlRBWF9SVFQtMV0KKyNk ZWZpbmUgZmliX2Fkdm1zcyBmaWJfbWV0cmljcy0+bWV0cmljc1tSVEFYX0FEVk1TUy0xXQogCWlu dAkJCWZpYl9uaHM7CiAjaWZkZWYgQ09ORklHX0lQX1JPVVRFX01VTFRJUEFUSAogCWludAkJCWZp Yl93ZWlnaHQ7CmRpZmYgLS1naXQgYS9uZXQvY29yZS9kc3QuYyBiL25ldC9jb3JlL2RzdC5jCmlu ZGV4IGI1Y2JiZTAuLjY1NmI3MGQgMTAwNjQ0Ci0tLSBhL25ldC9jb3JlL2RzdC5jCisrKyBiL25l dC9jb3JlL2RzdC5jCkBAIC0xNTEsMTMgKzE1MSwxMyBAQCBpbnQgZHN0X2Rpc2NhcmRfb3V0KHN0 cnVjdCBuZXQgKm5ldCwgc3RydWN0IHNvY2sgKnNrLCBzdHJ1Y3Qgc2tfYnVmZiAqc2tiKQogfQog RVhQT1JUX1NZTUJPTChkc3RfZGlzY2FyZF9vdXQpOwogCi1jb25zdCB1MzIgZHN0X2RlZmF1bHRf bWV0cmljc1tSVEFYX01BWCArIDFdID0geworY29uc3Qgc3RydWN0IGRzdF9tZXRyaWNzIGRzdF9k ZWZhdWx0X21ldHJpY3MgPSB7CiAJLyogVGhpcyBpbml0aWFsaXplciBpcyBuZWVkZWQgdG8gZm9y Y2UgbGlua2VyIHRvIHBsYWNlIHRoaXMgdmFyaWFibGUKIAkgKiBpbnRvIGNvbnN0IHNlY3Rpb24u IE90aGVyd2lzZSBpdCBtaWdodCBlbmQgaW50byBic3Mgc2VjdGlvbi4KIAkgKiBXZSByZWFsbHkg d2FudCB0byBhdm9pZCBmYWxzZSBzaGFyaW5nIG9uIHRoaXMgdmFyaWFibGUsIGFuZCBjYXRjaAog CSAqIGFueSB3cml0ZXMgb24gaXQuCiAJICovCi0JW1JUQVhfTUFYXSA9IDB4ZGVhZGJlZWYsCisJ LnJlZmNudCA9IEFUT01JQ19JTklUKDEpLAogfTsKIAogdm9pZCBkc3RfaW5pdChzdHJ1Y3QgZHN0 X2VudHJ5ICpkc3QsIHN0cnVjdCBkc3Rfb3BzICpvcHMsCkBAIC0xNjksNyArMTY5LDcgQEAgdm9p ZCBkc3RfaW5pdChzdHJ1Y3QgZHN0X2VudHJ5ICpkc3QsIHN0cnVjdCBkc3Rfb3BzICpvcHMsCiAJ aWYgKGRldikKIAkJZGV2X2hvbGQoZGV2KTsKIAlkc3QtPm9wcyA9IG9wczsKLQlkc3RfaW5pdF9t ZXRyaWNzKGRzdCwgZHN0X2RlZmF1bHRfbWV0cmljcywgdHJ1ZSk7CisJZHN0X2luaXRfbWV0cmlj cyhkc3QsIGRzdF9kZWZhdWx0X21ldHJpY3MubWV0cmljcywgdHJ1ZSk7CiAJZHN0LT5leHBpcmVz ID0gMFVMOwogCWRzdC0+cGF0aCA9IGRzdDsKIAlkc3QtPmZyb20gPSBOVUxMOwpAQCAtMzE1LDI1 ICszMTUsMzAgQEAgRVhQT1JUX1NZTUJPTChkc3RfcmVsZWFzZSk7CiAKIHUzMiAqZHN0X2Nvd19t ZXRyaWNzX2dlbmVyaWMoc3RydWN0IGRzdF9lbnRyeSAqZHN0LCB1bnNpZ25lZCBsb25nIG9sZCkK IHsKLQl1MzIgKnAgPSBrbWFsbG9jKHNpemVvZih1MzIpICogUlRBWF9NQVgsIEdGUF9BVE9NSUMp OworCXN0cnVjdCBkc3RfbWV0cmljcyAqcCA9IGttYWxsb2Moc2l6ZW9mKCpwKSwgR0ZQX0FUT01J Qyk7CiAKIAlpZiAocCkgewotCQl1MzIgKm9sZF9wID0gX19EU1RfTUVUUklDU19QVFIob2xkKTsK KwkJc3RydWN0IGRzdF9tZXRyaWNzICpvbGRfcCA9IChzdHJ1Y3QgZHN0X21ldHJpY3MgKilfX0RT VF9NRVRSSUNTX1BUUihvbGQpOwogCQl1bnNpZ25lZCBsb25nIHByZXYsIG5ldzsKIAotCQltZW1j cHkocCwgb2xkX3AsIHNpemVvZih1MzIpICogUlRBWF9NQVgpOworCQlhdG9taWNfc2V0KCZwLT5y ZWZjbnQsIDEpOworCQltZW1jcHkocC0+bWV0cmljcywgb2xkX3AtPm1ldHJpY3MsIHNpemVvZihw LT5tZXRyaWNzKSk7CiAKIAkJbmV3ID0gKHVuc2lnbmVkIGxvbmcpIHA7CiAJCXByZXYgPSBjbXB4 Y2hnKCZkc3QtPl9tZXRyaWNzLCBvbGQsIG5ldyk7CiAKIAkJaWYgKHByZXYgIT0gb2xkKSB7CiAJ CQlrZnJlZShwKTsKLQkJCXAgPSBfX0RTVF9NRVRSSUNTX1BUUihwcmV2KTsKKwkJCXAgPSAoc3Ry dWN0IGRzdF9tZXRyaWNzICopX19EU1RfTUVUUklDU19QVFIocHJldik7CiAJCQlpZiAocHJldiAm IERTVF9NRVRSSUNTX1JFQURfT05MWSkKIAkJCQlwID0gTlVMTDsKKwkJfSBlbHNlIGlmIChwcmV2 ICYgRFNUX01FVFJJQ1NfUkVGQ09VTlRFRCkgeworCQkJaWYgKGF0b21pY19kZWNfYW5kX3Rlc3Qo Jm9sZF9wLT5yZWZjbnQpKQorCQkJCWtmcmVlKG9sZF9wKTsKIAkJfQogCX0KLQlyZXR1cm4gcDsK KwlCVUlMRF9CVUdfT04ob2Zmc2V0b2Yoc3RydWN0IGRzdF9tZXRyaWNzLCBtZXRyaWNzKSAhPSAw KTsKKwlyZXR1cm4gKHUzMiAqKXA7CiB9CiBFWFBPUlRfU1lNQk9MKGRzdF9jb3dfbWV0cmljc19n ZW5lcmljKTsKIApAQCAtMzQyLDcgKzM0Nyw3IEBAIHZvaWQgX19kc3RfZGVzdHJveV9tZXRyaWNz X2dlbmVyaWMoc3RydWN0IGRzdF9lbnRyeSAqZHN0LCB1bnNpZ25lZCBsb25nIG9sZCkKIHsKIAl1 bnNpZ25lZCBsb25nIHByZXYsIG5ldzsKIAotCW5ldyA9ICgodW5zaWduZWQgbG9uZykgZHN0X2Rl ZmF1bHRfbWV0cmljcykgfCBEU1RfTUVUUklDU19SRUFEX09OTFk7CisJbmV3ID0gKCh1bnNpZ25l ZCBsb25nKSAmZHN0X2RlZmF1bHRfbWV0cmljcykgfCBEU1RfTUVUUklDU19SRUFEX09OTFk7CiAJ cHJldiA9IGNtcHhjaGcoJmRzdC0+X21ldHJpY3MsIG9sZCwgbmV3KTsKIAlpZiAocHJldiA9PSBv bGQpCiAJCWtmcmVlKF9fRFNUX01FVFJJQ1NfUFRSKG9sZCkpOwpkaWZmIC0tZ2l0IGEvbmV0L2lw djQvZmliX3NlbWFudGljcy5jIGIvbmV0L2lwdjQvZmliX3NlbWFudGljcy5jCmluZGV4IDZhNDA2 ODAuLjc1NjM4MzEgMTAwNjQ0Ci0tLSBhL25ldC9pcHY0L2ZpYl9zZW1hbnRpY3MuYworKysgYi9u ZXQvaXB2NC9maWJfc2VtYW50aWNzLmMKQEAgLTIwNCw2ICsyMDQsNyBAQCBzdGF0aWMgdm9pZCBy dF9maWJpbmZvX2ZyZWVfY3B1cyhzdHJ1Y3QgcnRhYmxlIF9fcmN1ICogX19wZXJjcHUgKnJ0cCkK IHN0YXRpYyB2b2lkIGZyZWVfZmliX2luZm9fcmN1KHN0cnVjdCByY3VfaGVhZCAqaGVhZCkKIHsK IAlzdHJ1Y3QgZmliX2luZm8gKmZpID0gY29udGFpbmVyX29mKGhlYWQsIHN0cnVjdCBmaWJfaW5m bywgcmN1KTsKKwlzdHJ1Y3QgZHN0X21ldHJpY3MgKm07CiAKIAljaGFuZ2VfbmV4dGhvcHMoZmkp IHsKIAkJaWYgKG5leHRob3BfbmgtPm5oX2RldikKQEAgLTIxNCw4ICsyMTUsOSBAQCBzdGF0aWMg dm9pZCBmcmVlX2ZpYl9pbmZvX3JjdShzdHJ1Y3QgcmN1X2hlYWQgKmhlYWQpCiAJCXJ0X2ZpYmlu Zm9fZnJlZSgmbmV4dGhvcF9uaC0+bmhfcnRoX2lucHV0KTsKIAl9IGVuZGZvcl9uZXh0aG9wcyhm aSk7CiAKLQlpZiAoZmktPmZpYl9tZXRyaWNzICE9ICh1MzIgKikgZHN0X2RlZmF1bHRfbWV0cmlj cykKLQkJa2ZyZWUoZmktPmZpYl9tZXRyaWNzKTsKKwltID0gZmktPmZpYl9tZXRyaWNzOworCWlm IChtICE9ICZkc3RfZGVmYXVsdF9tZXRyaWNzICYmIGF0b21pY19kZWNfYW5kX3Rlc3QoJm0tPnJl ZmNudCkpCisJCWtmcmVlKG0pOwogCWtmcmVlKGZpKTsKIH0KIApAQCAtOTgyLDExICs5ODQsMTEg QEAgZmliX2NvbnZlcnRfbWV0cmljcyhzdHJ1Y3QgZmliX2luZm8gKmZpLCBjb25zdCBzdHJ1Y3Qg ZmliX2NvbmZpZyAqY2ZnKQogCQkJdmFsID0gMjU1OwogCQlpZiAodHlwZSA9PSBSVEFYX0ZFQVRV UkVTICYmICh2YWwgJiB+UlRBWF9GRUFUVVJFX01BU0spKQogCQkJcmV0dXJuIC1FSU5WQUw7Ci0J CWZpLT5maWJfbWV0cmljc1t0eXBlIC0gMV0gPSB2YWw7CisJCWZpLT5maWJfbWV0cmljcy0+bWV0 cmljc1t0eXBlIC0gMV0gPSB2YWw7CiAJfQogCiAJaWYgKGVjbl9jYSkKLQkJZmktPmZpYl9tZXRy aWNzW1JUQVhfRkVBVFVSRVMgLSAxXSB8PSBEU1RfRkVBVFVSRV9FQ05fQ0E7CisJCWZpLT5maWJf bWV0cmljcy0+bWV0cmljc1tSVEFYX0ZFQVRVUkVTIC0gMV0gfD0gRFNUX0ZFQVRVUkVfRUNOX0NB OwogCiAJcmV0dXJuIDA7CiB9CkBAIC0xMDQ0LDExICsxMDQ2LDEyIEBAIHN0cnVjdCBmaWJfaW5m byAqZmliX2NyZWF0ZV9pbmZvKHN0cnVjdCBmaWJfY29uZmlnICpjZmcpCiAJCWdvdG8gZmFpbHVy ZTsKIAlmaWJfaW5mb19jbnQrKzsKIAlpZiAoY2ZnLT5mY19teCkgewotCQlmaS0+ZmliX21ldHJp Y3MgPSBremFsbG9jKHNpemVvZih1MzIpICogUlRBWF9NQVgsIEdGUF9LRVJORUwpOworCQlmaS0+ ZmliX21ldHJpY3MgPSBremFsbG9jKHNpemVvZigqZmktPmZpYl9tZXRyaWNzKSwgR0ZQX0tFUk5F TCk7CiAJCWlmICghZmktPmZpYl9tZXRyaWNzKQogCQkJZ290byBmYWlsdXJlOworCQlhdG9taWNf c2V0KCZmaS0+ZmliX21ldHJpY3MtPnJlZmNudCwgMSk7CiAJfSBlbHNlCi0JCWZpLT5maWJfbWV0 cmljcyA9ICh1MzIgKikgZHN0X2RlZmF1bHRfbWV0cmljczsKKwkJZmktPmZpYl9tZXRyaWNzID0g KHN0cnVjdCBkc3RfbWV0cmljcyAqKSZkc3RfZGVmYXVsdF9tZXRyaWNzOwogCiAJZmktPmZpYl9u ZXQgPSBuZXQ7CiAJZmktPmZpYl9wcm90b2NvbCA9IGNmZy0+ZmNfcHJvdG9jb2w7CkBAIC0xMjUy LDcgKzEyNTUsNyBAQCBpbnQgZmliX2R1bXBfaW5mbyhzdHJ1Y3Qgc2tfYnVmZiAqc2tiLCB1MzIg cG9ydGlkLCB1MzIgc2VxLCBpbnQgZXZlbnQsCiAJaWYgKGZpLT5maWJfcHJpb3JpdHkgJiYKIAkg ICAgbmxhX3B1dF91MzIoc2tiLCBSVEFfUFJJT1JJVFksIGZpLT5maWJfcHJpb3JpdHkpKQogCQln b3RvIG5sYV9wdXRfZmFpbHVyZTsKLQlpZiAocnRuZXRsaW5rX3B1dF9tZXRyaWNzKHNrYiwgZmkt PmZpYl9tZXRyaWNzKSA8IDApCisJaWYgKHJ0bmV0bGlua19wdXRfbWV0cmljcyhza2IsIGZpLT5m aWJfbWV0cmljcy0+bWV0cmljcykgPCAwKQogCQlnb3RvIG5sYV9wdXRfZmFpbHVyZTsKIAogCWlm IChmaS0+ZmliX3ByZWZzcmMgJiYKZGlmZiAtLWdpdCBhL25ldC9pcHY0L3JvdXRlLmMgYi9uZXQv aXB2NC9yb3V0ZS5jCmluZGV4IDZkYmNiMzcuLjZjZDQ5ZmQgMTAwNjQ0Ci0tLSBhL25ldC9pcHY0 L3JvdXRlLmMKKysrIGIvbmV0L2lwdjQvcm91dGUuYwpAQCAtMTM2NCw4ICsxMzY0LDEyIEBAIHN0 YXRpYyB2b2lkIHJ0X2FkZF91bmNhY2hlZF9saXN0KHN0cnVjdCBydGFibGUgKnJ0KQogCiBzdGF0 aWMgdm9pZCBpcHY0X2RzdF9kZXN0cm95KHN0cnVjdCBkc3RfZW50cnkgKmRzdCkKIHsKKwlzdHJ1 Y3QgZHN0X21ldHJpY3MgKnAgPSAoc3RydWN0IGRzdF9tZXRyaWNzICopRFNUX01FVFJJQ1NfUFRS KGRzdCk7CiAJc3RydWN0IHJ0YWJsZSAqcnQgPSAoc3RydWN0IHJ0YWJsZSAqKSBkc3Q7CiAKKwlp ZiAocCAhPSAmZHN0X2RlZmF1bHRfbWV0cmljcyAmJiBhdG9taWNfZGVjX2FuZF90ZXN0KCZwLT5y ZWZjbnQpKQorCQlrZnJlZShwKTsKKwogCWlmICghbGlzdF9lbXB0eSgmcnQtPnJ0X3VuY2FjaGVk KSkgewogCQlzdHJ1Y3QgdW5jYWNoZWRfbGlzdCAqdWwgPSBydC0+cnRfdW5jYWNoZWRfbGlzdDsK IApAQCAtMTQxNyw3ICsxNDIxLDExIEBAIHN0YXRpYyB2b2lkIHJ0X3NldF9uZXh0aG9wKHN0cnVj dCBydGFibGUgKnJ0LCBfX2JlMzIgZGFkZHIsCiAJCQlydC0+cnRfZ2F0ZXdheSA9IG5oLT5uaF9n dzsKIAkJCXJ0LT5ydF91c2VzX2dhdGV3YXkgPSAxOwogCQl9Ci0JCWRzdF9pbml0X21ldHJpY3Mo JnJ0LT5kc3QsIGZpLT5maWJfbWV0cmljcywgdHJ1ZSk7CisJCWRzdF9pbml0X21ldHJpY3MoJnJ0 LT5kc3QsIGZpLT5maWJfbWV0cmljcy0+bWV0cmljcywgdHJ1ZSk7CisJCWlmIChmaS0+ZmliX21l dHJpY3MgIT0gJmRzdF9kZWZhdWx0X21ldHJpY3MpIHsKKwkJCXJ0LT5kc3QuX21ldHJpY3MgfD0g RFNUX01FVFJJQ1NfUkVGQ09VTlRFRDsKKwkJCWF0b21pY19pbmMoJmZpLT5maWJfbWV0cmljcy0+ cmVmY250KTsKKwkJfQogI2lmZGVmIENPTkZJR19JUF9ST1VURV9DTEFTU0lECiAJCXJ0LT5kc3Qu dGNsYXNzaWQgPSBuaC0+bmhfdGNsYXNzaWQ7CiAjZW5kaWYKLS0gCjIuOS40CgoKRnJvbSBiYzU2 YjFmNjllODA1YjBhNGM1M2QzN2U2MTEyMjkwNmY4NTA1YmM2IE1vbiBTZXAgMTcgMDA6MDA6MDAg MjAwMQpGcm9tOiBEYW5pZWwgQm9ya21hbm4gPGRhbmllbEBpb2dlYXJib3gubmV0PgpEYXRlOiBU aHUsIDI1IE1heSAyMDE3IDAxOjA1OjA3ICswMjAwClN1YmplY3Q6IFtQQVRDSCAzNC8zNF0gYnBm OiBhZGQgYnBmX2Nsb25lX3JlZGlyZWN0IHRvCiBicGZfaGVscGVyX2NoYW5nZXNfcGt0X2RhdGEK ClsgVXBzdHJlYW0gY29tbWl0IDQxNzAzYTczMTA2NmZkZTc5YzNlNWNjZjMzOTFjZjc3YTk4YWVk YTUgXQoKVGhlIGJwZl9jbG9uZV9yZWRpcmVjdCgpIHN0aWxsIG5lZWRzIHRvIGJlIGxpc3RlZCBp bgpicGZfaGVscGVyX2NoYW5nZXNfcGt0X2RhdGEoKSBzaW5jZSB3ZSBjYWxsIGludG8KYnBmX3Ry eV9tYWtlX2hlYWRfd3JpdGFibGUoKSBmcm9tIHRoZXJlLCB0aHVzIHdlIG5lZWQKdG8gaW52YWxp ZGF0ZSBwcmlvciBwa3QgcmVncyBhcyB3ZWxsLgoKRml4ZXM6IDM2YmJlZjUyYzdlYiAoImJwZjog ZGlyZWN0IHBhY2tldCB3cml0ZSBhbmQgYWNjZXNzIGZvciBoZWxwZXJzIGZvciBjbHNhY3QgcHJv Z3MiKQpTaWduZWQtb2ZmLWJ5OiBEYW5pZWwgQm9ya21hbm4gPGRhbmllbEBpb2dlYXJib3gubmV0 PgpBY2tlZC1ieTogQWxleGVpIFN0YXJvdm9pdG92IDxhc3RAa2VybmVsLm9yZz4KU2lnbmVkLW9m Zi1ieTogRGF2aWQgUy4gTWlsbGVyIDxkYXZlbUBkYXZlbWxvZnQubmV0PgotLS0KIG5ldC9jb3Jl L2ZpbHRlci5jIHwgMSArCiAxIGZpbGUgY2hhbmdlZCwgMSBpbnNlcnRpb24oKykKCmRpZmYgLS1n aXQgYS9uZXQvY29yZS9maWx0ZXIuYyBiL25ldC9jb3JlL2ZpbHRlci5jCmluZGV4IGIzOTEyMDku LjRlYjRjZTAgMTAwNjQ0Ci0tLSBhL25ldC9jb3JlL2ZpbHRlci5jCisrKyBiL25ldC9jb3JlL2Zp bHRlci5jCkBAIC0yMTk4LDYgKzIxOTgsNyBAQCBib29sIGJwZl9oZWxwZXJfY2hhbmdlc19za2Jf ZGF0YSh2b2lkICpmdW5jKQogCSAgICBmdW5jID09IGJwZl9za2JfY2hhbmdlX3Byb3RvIHx8CiAJ ICAgIGZ1bmMgPT0gYnBmX3NrYl9jaGFuZ2VfdGFpbCB8fAogCSAgICBmdW5jID09IGJwZl9za2Jf cHVsbF9kYXRhIHx8CisJICAgIGZ1bmMgPT0gYnBmX2Nsb25lX3JlZGlyZWN0IHx8CiAJICAgIGZ1 bmMgPT0gYnBmX2wzX2NzdW1fcmVwbGFjZSB8fAogCSAgICBmdW5jID09IGJwZl9sNF9jc3VtX3Jl cGxhY2UpCiAJCXJldHVybiB0cnVlOwotLSAKMi45LjQKCg== ----Next_Part(Tue_May_30_19_14_13_2017_543)-- Content-Type: Application/Octet-Stream Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="net_411.mbox" RnJvbSAyN2JkN2MzMDI2NDgxZmFjYzkyNDFiM2EzNTNiMjllZjAzYmQzYTA2IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBFcmljIER1bWF6ZXQgPGVkdW1hemV0QGdvb2dsZS5jb20+CkRh dGU6IFR1ZSwgOSBNYXkgMjAxNyAwNjoyOToxOSAtMDcwMApTdWJqZWN0OiBbUEFUQ0ggMDEvNDFd IGRjY3AvdGNwOiBkbyBub3QgaW5oZXJpdCBtY19saXN0IGZyb20gcGFyZW50CgpbIFVwc3RyZWFt IGNvbW1pdCA2NTc4MzFmZmMzOGUzMDA5MmEyZDVmMDNkMzg1ZDcxMGViODhiMDlhIF0KCnN5emth bGxlciBmb3VuZCBhIHdheSB0byB0cmlnZ2VyIGRvdWJsZSBmcmVlcyBmcm9tIGlwX21jX2Ryb3Bf c29ja2V0KCkKCkl0IHR1cm5zIG91dCB0aGF0IGxlYXZlIGEgY29weSBvZiBwYXJlbnQgbWNfbGlz dCBhdCBhY2NlcHQoKSB0aW1lLAp3aGljaCBpcyB2ZXJ5IGJhZC4KClZlcnkgc2ltaWxhciB0byBj b21taXQgOGI0ODVjZTY5ODc2ICgidGNwOiBkbyBub3QgaW5oZXJpdApmYXN0b3Blbl9yZXEgZnJv bSBwYXJlbnQiKQoKSW5pdGlhbCByZXBvcnQgZnJvbSBQcmF5M3IsIGNvbXBsZXRlZCBieSBBbmRy ZXkgb25lLgpUaGFua3MgYSBsb3QgdG8gdGhlbSAhCgpTaWduZWQtb2ZmLWJ5OiBFcmljIER1bWF6 ZXQgPGVkdW1hemV0QGdvb2dsZS5jb20+ClJlcG9ydGVkLWJ5OiBQcmF5M3IgPHByYXkzci56QGdt YWlsLmNvbT4KUmVwb3J0ZWQtYnk6IEFuZHJleSBLb25vdmFsb3YgPGFuZHJleWtudmxAZ29vZ2xl LmNvbT4KVGVzdGVkLWJ5OiBBbmRyZXkgS29ub3ZhbG92IDxhbmRyZXlrbnZsQGdvb2dsZS5jb20+ ClNpZ25lZC1vZmYtYnk6IERhdmlkIFMuIE1pbGxlciA8ZGF2ZW1AZGF2ZW1sb2Z0Lm5ldD4KLS0t CiBuZXQvaXB2NC9pbmV0X2Nvbm5lY3Rpb25fc29jay5jIHwgMiArKwogMSBmaWxlIGNoYW5nZWQs IDIgaW5zZXJ0aW9ucygrKQoKZGlmZiAtLWdpdCBhL25ldC9pcHY0L2luZXRfY29ubmVjdGlvbl9z b2NrLmMgYi9uZXQvaXB2NC9pbmV0X2Nvbm5lY3Rpb25fc29jay5jCmluZGV4IDVlMzEzYzEuLjEw NTRkMzMgMTAwNjQ0Ci0tLSBhL25ldC9pcHY0L2luZXRfY29ubmVjdGlvbl9zb2NrLmMKKysrIGIv bmV0L2lwdjQvaW5ldF9jb25uZWN0aW9uX3NvY2suYwpAQCAtNzk0LDYgKzc5NCw4IEBAIHN0cnVj dCBzb2NrICppbmV0X2Nza19jbG9uZV9sb2NrKGNvbnN0IHN0cnVjdCBzb2NrICpzaywKIAkJLyog bGlzdGVuZXJzIGhhdmUgU09DS19SQ1VfRlJFRSwgbm90IHRoZSBjaGlsZHJlbiAqLwogCQlzb2Nr X3Jlc2V0X2ZsYWcobmV3c2ssIFNPQ0tfUkNVX0ZSRUUpOwogCisJCWluZXRfc2sobmV3c2spLT5t Y19saXN0ID0gTlVMTDsKKwogCQluZXdzay0+c2tfbWFyayA9IGluZXRfcnNrKHJlcSktPmlyX21h cms7CiAJCWF0b21pYzY0X3NldCgmbmV3c2stPnNrX2Nvb2tpZSwKIAkJCSAgICAgYXRvbWljNjRf cmVhZCgmaW5ldF9yc2socmVxKS0+aXJfY29va2llKSk7Ci0tIAoyLjQuMTEKCgpGcm9tIGE4NTJh NGZjY2FlN2IyYzdlNTE2NzQ2NTEwYjIzOWJiMDExMjNmMzEgTW9uIFNlcCAxNyAwMDowMDowMCAy MDAxCkZyb206IEdhbyBGZW5nIDxnZnJlZS53aW5kQHZpcC4xNjMuY29tPgpEYXRlOiBUdWUsIDkg TWF5IDIwMTcgMTg6Mjc6MzMgKzA4MDAKU3ViamVjdDogW1BBVENIIDAyLzQxXSBkcml2ZXI6IHZy ZjogRml4IG9uZSBwb3NzaWJsZSB1c2UtYWZ0ZXItZnJlZSBpc3N1ZQoKWyBVcHN0cmVhbSBjb21t aXQgMWE0YTViZjUyYTRhZGI0NzdhZGIwNzVlNWFmY2U5MjU4MjRhZDEzMiBdCgpUaGUgY3VycmVu dCBjb2RlcyBvbmx5IGRlYWwgd2l0aCB0aGUgY2FzZSB0aGF0IHRoZSBza2IgaXMgZHJvcHBlZCwg aXQKbWF5IG1lZXQgb25lIHVzZS1hZnRlci1mcmVlIGlzc3VlIHdoZW4gTkZfSE9PSyByZXR1cm5z IDAgdGhhdCBtZWFucwp0aGUgc2tiIGlzIHN0b2xlbiBieSBvbmUgbmV0ZmlsdGVyIHJ1bGUgb3Ig aG9vay4KCldoZW4gb25lIG5ldGZpbHRlciBydWxlIG9yIGhvb2sgc3RvbGVzIHRoZSBza2IgYW5k IHJldHVybiBORl9TVE9MRU4sCml0IG1lYW5zIHRoZSBza2IgaXMgdGFrZW4gYnkgdGhlIHJ1bGUs IGFuZCBvdGhlciBtb2R1bGVzIHNob3VsZCBub3QKdG91Y2ggdGhpcyBza2IgZXZlci4gTWF5YmUg dGhlIHNrYiBpcyBxdWV1ZWQgb3IgZnJlZWQgZGlyZWN0bHkgYnkgdGhlCnJ1bGUuCgpOb3cgdXNl cyB0aGUgbmZfaG9vayBpbnN0ZWFkIG9mIE5GX0hPT0sgdG8gZ2V0IHRoZSByZXN1bHQgb2YgbmV0 ZmlsdGVyLAphbmQgY2hlY2sgdGhlIHJldHVybiB2YWx1ZSBvZiBuZl9ob29rLiBPbmx5IHdoZW4g aXRzIHZhbHVlIGVxdWFscyAxLCBpdAptZWFucyB0aGUgc2tiIGNvdWxkIGdvIGFoZWFkLiBPciBy ZXNldCB0aGUgc2tiIGFzIE5VTEwuCgpCVFcsIGJlY2F1c2UgdnJmX3Jjdl9maW5pc2ggaXMgZW1w dHkgZnVuY3Rpb24sIHNvIG5lZWRuJ3QgaW52b2tlIGl0CmV2ZW4gdGhvdWdoIG5mX2hvb2sgcmV0 dXJucyAxLiBCdXQgd2UgbmVlZCB0byBtb2RpZnkgdnJmX3Jjdl9maW5pc2gKdG8gZGVhbCB3aXRo IHRoZSBORl9TVE9MRU4gY2FzZS4KClRoZXJlIGFyZSB0d28gY2FzZXMgd2hlbiBza2IgaXMgc3Rv bGVuLgoxLiBUaGUgc2tiIGlzIHN0b2xlbiBhbmQgZnJlZWQgZGlyZWN0bHkuCiAgIFRoZXJlIGlz IG5vdGhpbmcgd2UgbmVlZCB0byBkbywgYW5kIHZyZl9yY3ZfZmluaXNoIGlzbid0IGludm9rZWQu CjIuIFRoZSBza2IgaXMgcXVldWVkIGFuZCByZWluamVjdGVkIGFnYWluLgogICBUaGUgdnJmX3Jj dl9maW5pc2ggd291bGQgYmUgaW52b2tlZCBhcyBva2ZuLCBzbyBuZWVkIHRvIGZyZWUgdGhlCiAg IHNrYiBpbiBpdC4KClNpZ25lZC1vZmYtYnk6IEdhbyBGZW5nIDxnZnJlZS53aW5kQHZpcC4xNjMu Y29tPgpTaWduZWQtb2ZmLWJ5OiBEYXZpZCBTLiBNaWxsZXIgPGRhdmVtQGRhdmVtbG9mdC5uZXQ+ Ci0tLQogZHJpdmVycy9uZXQvdnJmLmMgfCAzICsrLQogMSBmaWxlIGNoYW5nZWQsIDIgaW5zZXJ0 aW9ucygrKSwgMSBkZWxldGlvbigtKQoKZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L3ZyZi5jIGIv ZHJpdmVycy9uZXQvdnJmLmMKaW5kZXggN2Q5MDljOC4uZGY3NGVmYyAxMDA2NDQKLS0tIGEvZHJp dmVycy9uZXQvdnJmLmMKKysrIGIvZHJpdmVycy9uZXQvdnJmLmMKQEAgLTg1MSw2ICs4NTEsNyBA QCBzdGF0aWMgdTMyIHZyZl9maWJfdGFibGUoY29uc3Qgc3RydWN0IG5ldF9kZXZpY2UgKmRldikK IAogc3RhdGljIGludCB2cmZfcmN2X2ZpbmlzaChzdHJ1Y3QgbmV0ICpuZXQsIHN0cnVjdCBzb2Nr ICpzaywgc3RydWN0IHNrX2J1ZmYgKnNrYikKIHsKKwlrZnJlZV9za2Ioc2tiKTsKIAlyZXR1cm4g MDsKIH0KIApAQCAtODYwLDcgKzg2MSw3IEBAIHN0YXRpYyBzdHJ1Y3Qgc2tfYnVmZiAqdnJmX3Jj dl9uZmhvb2sodTggcGYsIHVuc2lnbmVkIGludCBob29rLAogewogCXN0cnVjdCBuZXQgKm5ldCA9 IGRldl9uZXQoZGV2KTsKIAotCWlmIChORl9IT09LKHBmLCBob29rLCBuZXQsIE5VTEwsIHNrYiwg ZGV2LCBOVUxMLCB2cmZfcmN2X2ZpbmlzaCkgPCAwKQorCWlmIChuZl9ob29rKHBmLCBob29rLCBu ZXQsIE5VTEwsIHNrYiwgZGV2LCBOVUxMLCB2cmZfcmN2X2ZpbmlzaCkgIT0gMSkKIAkJc2tiID0g TlVMTDsgICAgLyoga2ZyZWVfc2tiKHNrYikgaGFuZGxlZCBieSBuZiBjb2RlICovCiAKIAlyZXR1 cm4gc2tiOwotLSAKMi40LjExCgoKRnJvbSBjNmM4ZmI2MzFhZWJkNzIwNjcxNGU5NmEyY2UwNTc3 NzkwMTE3ZTJjIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBXQU5HIENvbmcgPHhpeW91 Lndhbmdjb25nQGdtYWlsLmNvbT4KRGF0ZTogVHVlLCA5IE1heSAyMDE3IDE2OjU5OjU0IC0wNzAw ClN1YmplY3Q6IFtQQVRDSCAwMy80MV0gaXB2Ni9kY2NwOiBkbyBub3QgaW5oZXJpdCBpcHY2X21j X2xpc3QgZnJvbSBwYXJlbnQKClsgVXBzdHJlYW0gY29tbWl0IDgzZWFkZGFiNDM3OGRiMjU2ZDAw ZDI5NWJkYTZjYTk5N2NkMTNhNTIgXQoKTGlrZSBjb21taXQgNjU3ODMxZmZjMzhlICgiZGNjcC90 Y3A6IGRvIG5vdCBpbmhlcml0IG1jX2xpc3QgZnJvbSBwYXJlbnQiKQp3ZSBzaG91bGQgY2xlYXIg aXB2Nl9tY19saXN0IGV0Yy4gZm9yIElQdjYgc29ja2V0cyB0b28uCgpDYzogRXJpYyBEdW1hemV0 IDxlZHVtYXpldEBnb29nbGUuY29tPgpTaWduZWQtb2ZmLWJ5OiBDb25nIFdhbmcgPHhpeW91Lndh bmdjb25nQGdtYWlsLmNvbT4KQWNrZWQtYnk6IEVyaWMgRHVtYXpldCA8ZWR1bWF6ZXRAZ29vZ2xl LmNvbT4KU2lnbmVkLW9mZi1ieTogRGF2aWQgUy4gTWlsbGVyIDxkYXZlbUBkYXZlbWxvZnQubmV0 PgotLS0KIG5ldC9kY2NwL2lwdjYuYyAgICAgfCA2ICsrKysrKwogbmV0L2lwdjYvdGNwX2lwdjYu YyB8IDIgKysKIDIgZmlsZXMgY2hhbmdlZCwgOCBpbnNlcnRpb25zKCspCgpkaWZmIC0tZ2l0IGEv bmV0L2RjY3AvaXB2Ni5jIGIvbmV0L2RjY3AvaXB2Ni5jCmluZGV4IGQ5YjZhNGUuLmI2YmJiNzEg MTAwNjQ0Ci0tLSBhL25ldC9kY2NwL2lwdjYuYworKysgYi9uZXQvZGNjcC9pcHY2LmMKQEAgLTQy Niw2ICs0MjYsOSBAQCBzdGF0aWMgc3RydWN0IHNvY2sgKmRjY3BfdjZfcmVxdWVzdF9yZWN2X3Nv Y2soY29uc3Qgc3RydWN0IHNvY2sgKnNrLAogCQluZXdzay0+c2tfYmFja2xvZ19yY3YgPSBkY2Nw X3Y0X2RvX3JjdjsKIAkJbmV3bnAtPnBrdG9wdGlvbnMgID0gTlVMTDsKIAkJbmV3bnAtPm9wdAkg ICA9IE5VTEw7CisJCW5ld25wLT5pcHY2X21jX2xpc3QgPSBOVUxMOworCQluZXducC0+aXB2Nl9h Y19saXN0ID0gTlVMTDsKKwkJbmV3bnAtPmlwdjZfZmxfbGlzdCA9IE5VTEw7CiAJCW5ld25wLT5t Y2FzdF9vaWYgICA9IGluZXQ2X2lpZihza2IpOwogCQluZXducC0+bWNhc3RfaG9wcyAgPSBpcHY2 X2hkcihza2IpLT5ob3BfbGltaXQ7CiAKQEAgLTQ5MCw2ICs0OTMsOSBAQCBzdGF0aWMgc3RydWN0 IHNvY2sgKmRjY3BfdjZfcmVxdWVzdF9yZWN2X3NvY2soY29uc3Qgc3RydWN0IHNvY2sgKnNrLAog CS8qIENsb25lIFJYIGJpdHMgKi8KIAluZXducC0+cnhvcHQuYWxsID0gbnAtPnJ4b3B0LmFsbDsK IAorCW5ld25wLT5pcHY2X21jX2xpc3QgPSBOVUxMOworCW5ld25wLT5pcHY2X2FjX2xpc3QgPSBO VUxMOworCW5ld25wLT5pcHY2X2ZsX2xpc3QgPSBOVUxMOwogCW5ld25wLT5wa3RvcHRpb25zID0g TlVMTDsKIAluZXducC0+b3B0CSAgPSBOVUxMOwogCW5ld25wLT5tY2FzdF9vaWYgID0gaW5ldDZf aWlmKHNrYik7CmRpZmYgLS1naXQgYS9uZXQvaXB2Ni90Y3BfaXB2Ni5jIGIvbmV0L2lwdjYvdGNw X2lwdjYuYwppbmRleCA0YzRhZmRjLi5mZjVmODc2IDEwMDY0NAotLS0gYS9uZXQvaXB2Ni90Y3Bf aXB2Ni5jCisrKyBiL25ldC9pcHY2L3RjcF9pcHY2LmMKQEAgLTEwNzAsNiArMTA3MCw3IEBAIHN0 YXRpYyBzdHJ1Y3Qgc29jayAqdGNwX3Y2X3N5bl9yZWN2X3NvY2soY29uc3Qgc3RydWN0IHNvY2sg KnNrLCBzdHJ1Y3Qgc2tfYnVmZiAqCiAJCW5ld3RwLT5hZl9zcGVjaWZpYyA9ICZ0Y3Bfc29ja19p cHY2X21hcHBlZF9zcGVjaWZpYzsKICNlbmRpZgogCisJCW5ld25wLT5pcHY2X21jX2xpc3QgPSBO VUxMOwogCQluZXducC0+aXB2Nl9hY19saXN0ID0gTlVMTDsKIAkJbmV3bnAtPmlwdjZfZmxfbGlz dCA9IE5VTEw7CiAJCW5ld25wLT5wa3RvcHRpb25zICA9IE5VTEw7CkBAIC0xMTM5LDYgKzExNDAs NyBAQCBzdGF0aWMgc3RydWN0IHNvY2sgKnRjcF92Nl9zeW5fcmVjdl9zb2NrKGNvbnN0IHN0cnVj dCBzb2NrICpzaywgc3RydWN0IHNrX2J1ZmYgKgogCSAgIEZpcnN0OiBubyBJUHY0IG9wdGlvbnMu CiAJICovCiAJbmV3aW5ldC0+aW5ldF9vcHQgPSBOVUxMOworCW5ld25wLT5pcHY2X21jX2xpc3Qg PSBOVUxMOwogCW5ld25wLT5pcHY2X2FjX2xpc3QgPSBOVUxMOwogCW5ld25wLT5pcHY2X2ZsX2xp c3QgPSBOVUxMOwogCi0tIAoyLjQuMTEKCgpGcm9tIDdmYmQ0MTdiMzA4ZDJhYjgyMzBhNzgxNGRj ZTA0NmNhZjQ2NDI5NmIgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCkZyb206IFVyc3VsYSBCcmF1 biA8dWJyYXVuQGxpbnV4LnZuZXQuaWJtLmNvbT4KRGF0ZTogV2VkLCAxMCBNYXkgMjAxNyAxOTow Nzo1MSArMDIwMApTdWJqZWN0OiBbUEFUQ0ggMDQvNDFdIHMzOTAvcWV0aDogaGFuZGxlIHN5c2Zz IGVycm9yIGR1cmluZyBpbml0aWFsaXphdGlvbgoKWyBVcHN0cmVhbSBjb21taXQgOTExMWU3ODgw Y2NmNDE5NTQ4YzdiMDg4N2RmMDIwYjA4ZWFkYjA3NSBdCgpXaGVuIHNldHRpbmcgdXAgdGhlIGRl dmljZSBmcm9tIHdpdGhpbiB0aGUgbGF5ZXIgZGlzY2lwbGluZSdzCnByb2JlIHJvdXRpbmUsIGNy ZWF0aW5nIHRoZSBsYXllci1zcGVjaWZpYyBzeXNmcyBhdHRyaWJ1dGVzIGNhbiBmYWlsLgpSZXBv cnQgdGhpcyBlcnJvciBiYWNrIHRvIHRoZSBjYWxsZXIsIGFuZCBoYW5kbGUgaXQgYnkKcmVsZWFz aW5nIHRoZSBsYXllciBkaXNjaXBsaW5lLgoKU2lnbmVkLW9mZi1ieTogVXJzdWxhIEJyYXVuIDx1 YnJhdW5AbGludXgudm5ldC5pYm0uY29tPgpbandpOiB1cGRhdGVkIGNvbW1pdCBtc2csIG1vdmVk IGFuIE9TTiBjaGFuZ2UgdG8gYSBzdWJzZXF1ZW50IHBhdGNoXQpTaWduZWQtb2ZmLWJ5OiBKdWxp YW4gV2llZG1hbm4gPGp3aUBsaW51eC52bmV0LmlibS5jb20+ClNpZ25lZC1vZmYtYnk6IERhdmlk IFMuIE1pbGxlciA8ZGF2ZW1AZGF2ZW1sb2Z0Lm5ldD4KLS0tCiBkcml2ZXJzL3MzOTAvbmV0L3Fl dGhfY29yZV9tYWluLmMgfCA0ICsrKy0KIGRyaXZlcnMvczM5MC9uZXQvcWV0aF9jb3JlX3N5cy5j ICB8IDIgKysKIGRyaXZlcnMvczM5MC9uZXQvcWV0aF9sMl9tYWluLmMgICB8IDUgKysrKy0KIGRy aXZlcnMvczM5MC9uZXQvcWV0aF9sM19tYWluLmMgICB8IDUgKysrKy0KIDQgZmlsZXMgY2hhbmdl ZCwgMTMgaW5zZXJ0aW9ucygrKSwgMyBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9kcml2ZXJz L3MzOTAvbmV0L3FldGhfY29yZV9tYWluLmMgYi9kcml2ZXJzL3MzOTAvbmV0L3FldGhfY29yZV9t YWluLmMKaW5kZXggOWE1Zjk5Yy4uNWMwNzJiNyAxMDA2NDQKLS0tIGEvZHJpdmVycy9zMzkwL25l dC9xZXRoX2NvcmVfbWFpbi5jCisrKyBiL2RyaXZlcnMvczM5MC9uZXQvcWV0aF9jb3JlX21haW4u YwpAQCAtNTY2MSw4ICs1NjYxLDEwIEBAIHN0YXRpYyBpbnQgcWV0aF9jb3JlX3NldF9vbmxpbmUo c3RydWN0IGNjd2dyb3VwX2RldmljZSAqZ2RldikKIAkJaWYgKHJjKQogCQkJZ290byBlcnI7CiAJ CXJjID0gY2FyZC0+ZGlzY2lwbGluZS0+c2V0dXAoY2FyZC0+Z2Rldik7Ci0JCWlmIChyYykKKwkJ aWYgKHJjKSB7CisJCQlxZXRoX2NvcmVfZnJlZV9kaXNjaXBsaW5lKGNhcmQpOwogCQkJZ290byBl cnI7CisJCX0KIAl9CiAJcmMgPSBjYXJkLT5kaXNjaXBsaW5lLT5zZXRfb25saW5lKGdkZXYpOwog ZXJyOgpkaWZmIC0tZ2l0IGEvZHJpdmVycy9zMzkwL25ldC9xZXRoX2NvcmVfc3lzLmMgYi9kcml2 ZXJzL3MzOTAvbmV0L3FldGhfY29yZV9zeXMuYwppbmRleCA3NWIyOWZkMi4uNDEyZmY2MSAxMDA2 NDQKLS0tIGEvZHJpdmVycy9zMzkwL25ldC9xZXRoX2NvcmVfc3lzLmMKKysrIGIvZHJpdmVycy9z MzkwL25ldC9xZXRoX2NvcmVfc3lzLmMKQEAgLTQyNiw2ICs0MjYsOCBAQCBzdGF0aWMgc3NpemVf dCBxZXRoX2Rldl9sYXllcjJfc3RvcmUoc3RydWN0IGRldmljZSAqZGV2LAogCQlnb3RvIG91dDsK IAogCXJjID0gY2FyZC0+ZGlzY2lwbGluZS0+c2V0dXAoY2FyZC0+Z2Rldik7CisJaWYgKHJjKQor CQlxZXRoX2NvcmVfZnJlZV9kaXNjaXBsaW5lKGNhcmQpOwogb3V0OgogCW11dGV4X3VubG9jaygm Y2FyZC0+ZGlzY2lwbGluZV9tdXRleCk7CiAJcmV0dXJuIHJjID8gcmMgOiBjb3VudDsKZGlmZiAt LWdpdCBhL2RyaXZlcnMvczM5MC9uZXQvcWV0aF9sMl9tYWluLmMgYi9kcml2ZXJzL3MzOTAvbmV0 L3FldGhfbDJfbWFpbi5jCmluZGV4IGFmNGU2YTYuLjk1ZDNlYzggMTAwNjQ0Ci0tLSBhL2RyaXZl cnMvczM5MC9uZXQvcWV0aF9sMl9tYWluLmMKKysrIGIvZHJpdmVycy9zMzkwL25ldC9xZXRoX2wy X21haW4uYwpAQCAtMTAwOSw4ICsxMDA5LDExIEBAIHN0YXRpYyBpbnQgcWV0aF9sMl9zdG9wKHN0 cnVjdCBuZXRfZGV2aWNlICpkZXYpCiBzdGF0aWMgaW50IHFldGhfbDJfcHJvYmVfZGV2aWNlKHN0 cnVjdCBjY3dncm91cF9kZXZpY2UgKmdkZXYpCiB7CiAJc3RydWN0IHFldGhfY2FyZCAqY2FyZCA9 IGRldl9nZXRfZHJ2ZGF0YSgmZ2Rldi0+ZGV2KTsKKwlpbnQgcmM7CiAKLQlxZXRoX2wyX2NyZWF0 ZV9kZXZpY2VfYXR0cmlidXRlcygmZ2Rldi0+ZGV2KTsKKwlyYyA9IHFldGhfbDJfY3JlYXRlX2Rl dmljZV9hdHRyaWJ1dGVzKCZnZGV2LT5kZXYpOworCWlmIChyYykKKwkJcmV0dXJuIHJjOwogCUlO SVRfTElTVF9IRUFEKCZjYXJkLT52aWRfbGlzdCk7CiAJaGFzaF9pbml0KGNhcmQtPm1hY19odGFi bGUpOwogCWNhcmQtPm9wdGlvbnMubGF5ZXIyID0gMTsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvczM5 MC9uZXQvcWV0aF9sM19tYWluLmMgYi9kcml2ZXJzL3MzOTAvbmV0L3FldGhfbDNfbWFpbi5jCmlu ZGV4IDY1M2YwZmIuLjVmZTM3ZmEgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvczM5MC9uZXQvcWV0aF9s M19tYWluLmMKKysrIGIvZHJpdmVycy9zMzkwL25ldC9xZXRoX2wzX21haW4uYwpAQCAtMzE1Myw4 ICszMTUzLDExIEBAIHN0YXRpYyBpbnQgcWV0aF9sM19zZXR1cF9uZXRkZXYoc3RydWN0IHFldGhf Y2FyZCAqY2FyZCkKIHN0YXRpYyBpbnQgcWV0aF9sM19wcm9iZV9kZXZpY2Uoc3RydWN0IGNjd2dy b3VwX2RldmljZSAqZ2RldikKIHsKIAlzdHJ1Y3QgcWV0aF9jYXJkICpjYXJkID0gZGV2X2dldF9k cnZkYXRhKCZnZGV2LT5kZXYpOworCWludCByYzsKIAotCXFldGhfbDNfY3JlYXRlX2RldmljZV9h dHRyaWJ1dGVzKCZnZGV2LT5kZXYpOworCXJjID0gcWV0aF9sM19jcmVhdGVfZGV2aWNlX2F0dHJp YnV0ZXMoJmdkZXYtPmRldik7CisJaWYgKHJjKQorCQlyZXR1cm4gcmM7CiAJY2FyZC0+b3B0aW9u cy5sYXllcjIgPSAwOwogCWNhcmQtPmluZm8uaHd0cmFwID0gMDsKIAlyZXR1cm4gMDsKLS0gCjIu NC4xMQoKCkZyb20gYTQ3MjZjZmFmM2EyNDk3NWIwMjM1ZWQyZDgzN2FjMWU1NGVlOTYzZCBNb24g U2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJvbTogSnVsaWFuIFdpZWRtYW5uIDxqd2lAbGludXgudm5l dC5pYm0uY29tPgpEYXRlOiBXZWQsIDEwIE1heSAyMDE3IDE5OjA3OjUyICswMjAwClN1YmplY3Q6 IFtQQVRDSCAwNS80MV0gczM5MC9xZXRoOiB1bmJyZWFrIE9TTSBhbmQgT1NOIHN1cHBvcnQKClsg VXBzdHJlYW0gY29tbWl0IDJkMmViYjNlZDBjNmFjZmIwMTRmOThlNDI3Mjk4NjczYTVkMDdiODIg XQoKY29tbWl0IGI0ZDcyYzA4YjM1OCAoInFldGg6IGJyaWRnZXBvcnQgc3VwcG9ydCAtIGJhc2lj IGNvbnRyb2wiKQpicm9rZSB0aGUgc3VwcG9ydCBmb3IgT1NNIGFuZCBPU04gZGV2aWNlcyBhcyBm b2xsb3dzOgoKQXMgT1NNIGFuZCBPU04gYXJlIEwyIG9ubHksIHFldGhfY29yZV9wcm9iZV9kZXZp Y2UoKSBkb2VzIGFuIGVhcmx5CnNldHVwIGJ5IGxvYWRpbmcgdGhlIGwyIGRpc2NpcGxpbmUgYW5k IGNhbGxpbmcgcWV0aF9sMl9wcm9iZV9kZXZpY2UoKS4KSW4gdGhpcyBjb250ZXh0LCBhZGRpbmcg dGhlIGwyLXNwZWNpZmljIGJyaWRnZXBvcnQgc3lzZnMgYXR0cmlidXRlcwp2aWEgcWV0aF9sMl9j cmVhdGVfZGV2aWNlX2F0dHJpYnV0ZXMoKSBoaXRzIGEgQlVHX09OIGluIGZzL3N5c2ZzL2dyb3Vw LmMsCnNpbmNlIHRoZSBiYXNpYyBzeXNmcyBpbmZyYXN0cnVjdHVyZSBmb3IgdGhlIGRldmljZSBo YXNuJ3QgYmVlbgplc3RhYmxpc2hlZCB5ZXQuCgpOb3RlIHRoYXQgT1NOIGFjdHVhbGx5IGhhcyBp dHMgb3duIHVuaXF1ZSBzeXNmcyBhdHRyaWJ1dGVzCihxZXRoX29zbl9kZXZ0eXBlKSwgc28gdGhl IGFkZGl0aW9uYWwgYXR0cmlidXRlcyBzaG91bGRuJ3QgYmUgY3JlYXRlZAphdCBhbGwuCkZvciBP U00sIGFkZCBhIG5ldyBxZXRoX2wyX2RldnR5cGUgdGhhdCBjb250YWlucyBhbGwgdGhlIGNvbW1v bgphbmQgbDItc3BlY2lmaWMgc3lzZnMgYXR0cmlidXRlcy4KV2hlbiBxZXRoX2NvcmVfcHJvYmVf ZGV2aWNlKCkgZG9lcyBlYXJseSBzZXR1cCBmb3IgT1NNIG9yIE9TTiwgYXNzaWduCnRoZSBjb3Jy ZXNwb25kaW5nIGRldnR5cGUgc28gdGhhdCB0aGUgY2N3Z3JvdXAgcHJvYmUgY29kZSBjcmVhdGVz IHRoZQpmdWxsIHNldCBvZiBzeXNmcyBhdHRyaWJ1dGVzLgpUaGlzIGFsbG93cyB1cyB0byBza2lw IHFldGhfbDJfY3JlYXRlX2RldmljZV9hdHRyaWJ1dGVzKCkgaW4gY2FzZQpvZiBhbiBlYXJseSBz ZXR1cC4KCkFueSBkZXZpY2UgdGhhdCBjYW4ndCBkbyBlYXJseSBzZXR1cCB3aWxsIGluaXRpYWxs eSBoYXZlIG9ubHkgdGhlCmdlbmVyaWMgc3lzZnMgYXR0cmlidXRlcywgYW5kIHdoZW4gaXQncyBw cm9iZWQgbGF0ZXIKcWV0aF9sMl9wcm9iZV9kZXZpY2UoKSBhZGRzIHRoZSBsMi1zcGVjaWZpYyBh dHRyaWJ1dGVzLgoKSWYgYW4gZWFybHktc2V0dXAgZGV2aWNlIGlzIHJlbW92ZWQgKGJ5IGNhbGxp bmcgY2N3Z3JvdXBfdW5ncm91cCgpKSwKZGV2aWNlX3VucmVnaXN0ZXIoKSB3aWxsIC0gdXNpbmcg dGhlIGRldnR5cGUgLSBkZWxldGUgdGhlCmwyLXNwZWNpZmljIGF0dHJpYnV0ZXMgYmVmb3JlIHFl dGhfbDJfcmVtb3ZlX2RldmljZSgpIGlzIGNhbGxlZC4KU28gbWFrZSBzdXJlIHRvIG5vdCByZW1v dmUgdGhlbSB0d2ljZS4KCldoYXQgY29tcGxpY2F0ZXMgdGhlIGlzc3VlIGlzIHRoYXQgcWV0aF9s Ml9wcm9iZV9kZXZpY2UoKSBhbmQKcWV0aF9sMl9yZW1vdmVfZGV2aWNlKCkgaXMgYWxzbyBjYWxs ZWQgb24gYSBkZXZpY2Ugd2hlbiBpdHMKbGF5ZXIyIGF0dHJpYnV0ZSBjaGFuZ2VzIChpZS4gaXRz IGxheWVyIG1vZGUgaXMgc3dpdGNoZWQpLgpGb3IgZWFybHktc2V0dXAgZGV2aWNlcyB0aGlzIHdv dWxkbid0IHdvcmsgcHJvcGVybHkgLSB3ZSB3b3VsZG4ndApyZW1vdmUgdGhlIGwyLXNwZWNpZmlj IGF0dHJpYnV0ZXMgd2hlbiBzd2l0Y2hpbmcgdG8gTDMuCkJ1dCBzd2l0Y2hpbmcgdGhlIGxheWVy IG1vZGUgZG9lc24ndCBhY3R1YWxseSBtYWtlIGFueSBzZW5zZTsKd2UgYWxyZWFkeSBkZWNpZGVk IHRoYXQgdGhlIGRldmljZSBjYW4gb25seSBvcGVyYXRlIGluIEwyIQpTbyBqdXN0IHJlZnVzZSB0 byBzd2l0Y2ggdGhlIGxheWVyIG1vZGUgb24gc3VjaCBkZXZpY2VzLiBOb3RlIHRoYXQKT1NOIGRv ZXNuJ3QgaGF2ZSBhIGxheWVyMiBhdHRyaWJ1dGUsIHNvIHdlIG9ubHkgbmVlZCB0byBzcGVjaWFs LWNhc2UKT1NNLgoKQmFzZWQgb24gYW4gaW5pdGlhbCBwYXRjaCBieSBVcnN1bGEgQnJhdW4uCgpG aXhlczogYjRkNzJjMDhiMzU4ICgicWV0aDogYnJpZGdlcG9ydCBzdXBwb3J0IC0gYmFzaWMgY29u dHJvbCIpClNpZ25lZC1vZmYtYnk6IEp1bGlhbiBXaWVkbWFubiA8andpQGxpbnV4LnZuZXQuaWJt LmNvbT4KU2lnbmVkLW9mZi1ieTogRGF2aWQgUy4gTWlsbGVyIDxkYXZlbUBkYXZlbWxvZnQubmV0 PgotLS0KIGRyaXZlcnMvczM5MC9uZXQvcWV0aF9jb3JlLmggICAgICB8ICA0ICsrKysKIGRyaXZl cnMvczM5MC9uZXQvcWV0aF9jb3JlX21haW4uYyB8IDE3ICsrKysrKysrKy0tLS0tLS0tCiBkcml2 ZXJzL3MzOTAvbmV0L3FldGhfY29yZV9zeXMuYyAgfCAyMiArKysrKysrKysrKysrKy0tLS0tLS0t CiBkcml2ZXJzL3MzOTAvbmV0L3FldGhfbDIuaCAgICAgICAgfCAgMiArKwogZHJpdmVycy9zMzkw L25ldC9xZXRoX2wyX21haW4uYyAgIHwgMTcgKysrKysrKysrKysrKy0tLS0KIGRyaXZlcnMvczM5 MC9uZXQvcWV0aF9sMl9zeXMuYyAgICB8ICA4ICsrKysrKysrCiBkcml2ZXJzL3MzOTAvbmV0L3Fl dGhfbDNfbWFpbi5jICAgfCAgMSArCiA3IGZpbGVzIGNoYW5nZWQsIDUxIGluc2VydGlvbnMoKyks IDIwIGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL2RyaXZlcnMvczM5MC9uZXQvcWV0aF9jb3Jl LmggYi9kcml2ZXJzL3MzOTAvbmV0L3FldGhfY29yZS5oCmluZGV4IGQ5NTYxZTMuLmEyNmI3ZTgg MTAwNjQ0Ci0tLSBhL2RyaXZlcnMvczM5MC9uZXQvcWV0aF9jb3JlLmgKKysrIGIvZHJpdmVycy9z MzkwL25ldC9xZXRoX2NvcmUuaApAQCAtNzE0LDYgKzcxNCw3IEBAIGVudW0gcWV0aF9kaXNjaXBs aW5lX2lkIHsKIH07CiAKIHN0cnVjdCBxZXRoX2Rpc2NpcGxpbmUgeworCWNvbnN0IHN0cnVjdCBk ZXZpY2VfdHlwZSAqZGV2dHlwZTsKIAl2b2lkICgqc3RhcnRfcG9sbCkoc3RydWN0IGNjd19kZXZp Y2UgKiwgaW50LCB1bnNpZ25lZCBsb25nKTsKIAlxZGlvX2hhbmRsZXJfdCAqaW5wdXRfaGFuZGxl cjsKIAlxZGlvX2hhbmRsZXJfdCAqb3V0cHV0X2hhbmRsZXI7CkBAIC04ODksNiArODkwLDkgQEAg ZXh0ZXJuIHN0cnVjdCBxZXRoX2Rpc2NpcGxpbmUgcWV0aF9sMl9kaXNjaXBsaW5lOwogZXh0ZXJu IHN0cnVjdCBxZXRoX2Rpc2NpcGxpbmUgcWV0aF9sM19kaXNjaXBsaW5lOwogZXh0ZXJuIGNvbnN0 IHN0cnVjdCBhdHRyaWJ1dGVfZ3JvdXAgKnFldGhfZ2VuZXJpY19hdHRyX2dyb3Vwc1tdOwogZXh0 ZXJuIGNvbnN0IHN0cnVjdCBhdHRyaWJ1dGVfZ3JvdXAgKnFldGhfb3NuX2F0dHJfZ3JvdXBzW107 CitleHRlcm4gY29uc3Qgc3RydWN0IGF0dHJpYnV0ZV9ncm91cCBxZXRoX2RldmljZV9hdHRyX2dy b3VwOworZXh0ZXJuIGNvbnN0IHN0cnVjdCBhdHRyaWJ1dGVfZ3JvdXAgcWV0aF9kZXZpY2VfYmxr dF9ncm91cDsKK2V4dGVybiBjb25zdCBzdHJ1Y3QgZGV2aWNlX3R5cGUgcWV0aF9nZW5lcmljX2Rl dnR5cGU7CiBleHRlcm4gc3RydWN0IHdvcmtxdWV1ZV9zdHJ1Y3QgKnFldGhfd3E7CiAKIGludCBx ZXRoX2NhcmRfaHdfaXNfcmVhY2hhYmxlKHN0cnVjdCBxZXRoX2NhcmQgKik7CmRpZmYgLS1naXQg YS9kcml2ZXJzL3MzOTAvbmV0L3FldGhfY29yZV9tYWluLmMgYi9kcml2ZXJzL3MzOTAvbmV0L3Fl dGhfY29yZV9tYWluLmMKaW5kZXggNWMwNzJiNy4uM2E4ZmY3NSAxMDA2NDQKLS0tIGEvZHJpdmVy cy9zMzkwL25ldC9xZXRoX2NvcmVfbWFpbi5jCisrKyBiL2RyaXZlcnMvczM5MC9uZXQvcWV0aF9j b3JlX21haW4uYwpAQCAtNTQ2MCwxMCArNTQ2MCwxMiBAQCB2b2lkIHFldGhfY29yZV9mcmVlX2Rp c2NpcGxpbmUoc3RydWN0IHFldGhfY2FyZCAqY2FyZCkKIAljYXJkLT5kaXNjaXBsaW5lID0gTlVM TDsKIH0KIAotc3RhdGljIGNvbnN0IHN0cnVjdCBkZXZpY2VfdHlwZSBxZXRoX2dlbmVyaWNfZGV2 dHlwZSA9IHsKK2NvbnN0IHN0cnVjdCBkZXZpY2VfdHlwZSBxZXRoX2dlbmVyaWNfZGV2dHlwZSA9 IHsKIAkubmFtZSA9ICJxZXRoX2dlbmVyaWMiLAogCS5ncm91cHMgPSBxZXRoX2dlbmVyaWNfYXR0 cl9ncm91cHMsCiB9OworRVhQT1JUX1NZTUJPTF9HUEwocWV0aF9nZW5lcmljX2RldnR5cGUpOwor CiBzdGF0aWMgY29uc3Qgc3RydWN0IGRldmljZV90eXBlIHFldGhfb3NuX2RldnR5cGUgPSB7CiAJ Lm5hbWUgPSAicWV0aF9vc24iLAogCS5ncm91cHMgPSBxZXRoX29zbl9hdHRyX2dyb3VwcywKQEAg LTU1ODksMjMgKzU1OTEsMjIgQEAgc3RhdGljIGludCBxZXRoX2NvcmVfcHJvYmVfZGV2aWNlKHN0 cnVjdCBjY3dncm91cF9kZXZpY2UgKmdkZXYpCiAJCWdvdG8gZXJyX2NhcmQ7CiAJfQogCi0JaWYg KGNhcmQtPmluZm8udHlwZSA9PSBRRVRIX0NBUkRfVFlQRV9PU04pCi0JCWdkZXYtPmRldi50eXBl ID0gJnFldGhfb3NuX2RldnR5cGU7Ci0JZWxzZQotCQlnZGV2LT5kZXYudHlwZSA9ICZxZXRoX2dl bmVyaWNfZGV2dHlwZTsKLQogCXN3aXRjaCAoY2FyZC0+aW5mby50eXBlKSB7CiAJY2FzZSBRRVRI X0NBUkRfVFlQRV9PU046CiAJY2FzZSBRRVRIX0NBUkRfVFlQRV9PU006CiAJCXJjID0gcWV0aF9j b3JlX2xvYWRfZGlzY2lwbGluZShjYXJkLCBRRVRIX0RJU0NJUExJTkVfTEFZRVIyKTsKIAkJaWYg KHJjKQogCQkJZ290byBlcnJfY2FyZDsKKworCQlnZGV2LT5kZXYudHlwZSA9IChjYXJkLT5pbmZv LnR5cGUgIT0gUUVUSF9DQVJEX1RZUEVfT1NOKQorCQkJCQk/IGNhcmQtPmRpc2NpcGxpbmUtPmRl dnR5cGUKKwkJCQkJOiAmcWV0aF9vc25fZGV2dHlwZTsKIAkJcmMgPSBjYXJkLT5kaXNjaXBsaW5l LT5zZXR1cChjYXJkLT5nZGV2KTsKIAkJaWYgKHJjKQogCQkJZ290byBlcnJfZGlzYzsKLQljYXNl IFFFVEhfQ0FSRF9UWVBFX09TRDoKLQljYXNlIFFFVEhfQ0FSRF9UWVBFX09TWDoKKwkJYnJlYWs7 CiAJZGVmYXVsdDoKKwkJZ2Rldi0+ZGV2LnR5cGUgPSAmcWV0aF9nZW5lcmljX2RldnR5cGU7CiAJ CWJyZWFrOwogCX0KIApkaWZmIC0tZ2l0IGEvZHJpdmVycy9zMzkwL25ldC9xZXRoX2NvcmVfc3lz LmMgYi9kcml2ZXJzL3MzOTAvbmV0L3FldGhfY29yZV9zeXMuYwppbmRleCA0MTJmZjYxLi5kYjZh Mjg1IDEwMDY0NAotLS0gYS9kcml2ZXJzL3MzOTAvbmV0L3FldGhfY29yZV9zeXMuYworKysgYi9k cml2ZXJzL3MzOTAvbmV0L3FldGhfY29yZV9zeXMuYwpAQCAtNDEzLDEyICs0MTMsMTYgQEAgc3Rh dGljIHNzaXplX3QgcWV0aF9kZXZfbGF5ZXIyX3N0b3JlKHN0cnVjdCBkZXZpY2UgKmRldiwKIAog CWlmIChjYXJkLT5vcHRpb25zLmxheWVyMiA9PSBuZXdkaXMpCiAJCWdvdG8gb3V0OwotCWVsc2Ug ewotCQljYXJkLT5pbmZvLm1hY19iaXRzICA9IDA7Ci0JCWlmIChjYXJkLT5kaXNjaXBsaW5lKSB7 Ci0JCQljYXJkLT5kaXNjaXBsaW5lLT5yZW1vdmUoY2FyZC0+Z2Rldik7Ci0JCQlxZXRoX2NvcmVf ZnJlZV9kaXNjaXBsaW5lKGNhcmQpOwotCQl9CisJaWYgKGNhcmQtPmluZm8udHlwZSA9PSBRRVRI X0NBUkRfVFlQRV9PU00pIHsKKwkJLyogZml4ZWQgbGF5ZXIsIGNhbid0IHN3aXRjaCAqLworCQly YyA9IC1FT1BOT1RTVVBQOworCQlnb3RvIG91dDsKKwl9CisKKwljYXJkLT5pbmZvLm1hY19iaXRz ID0gMDsKKwlpZiAoY2FyZC0+ZGlzY2lwbGluZSkgeworCQljYXJkLT5kaXNjaXBsaW5lLT5yZW1v dmUoY2FyZC0+Z2Rldik7CisJCXFldGhfY29yZV9mcmVlX2Rpc2NpcGxpbmUoY2FyZCk7CiAJfQog CiAJcmMgPSBxZXRoX2NvcmVfbG9hZF9kaXNjaXBsaW5lKGNhcmQsIG5ld2Rpcyk7CkBAIC03MDUs MTAgKzcwOSwxMSBAQCBzdGF0aWMgc3RydWN0IGF0dHJpYnV0ZSAqcWV0aF9ibGt0X2RldmljZV9h dHRyc1tdID0gewogCSZkZXZfYXR0cl9pbnRlcl9qdW1iby5hdHRyLAogCU5VTEwsCiB9Owotc3Rh dGljIHN0cnVjdCBhdHRyaWJ1dGVfZ3JvdXAgcWV0aF9kZXZpY2VfYmxrdF9ncm91cCA9IHsKK2Nv bnN0IHN0cnVjdCBhdHRyaWJ1dGVfZ3JvdXAgcWV0aF9kZXZpY2VfYmxrdF9ncm91cCA9IHsKIAku bmFtZSA9ICJibGt0IiwKIAkuYXR0cnMgPSBxZXRoX2Jsa3RfZGV2aWNlX2F0dHJzLAogfTsKK0VY UE9SVF9TWU1CT0xfR1BMKHFldGhfZGV2aWNlX2Jsa3RfZ3JvdXApOwogCiBzdGF0aWMgc3RydWN0 IGF0dHJpYnV0ZSAqcWV0aF9kZXZpY2VfYXR0cnNbXSA9IHsKIAkmZGV2X2F0dHJfc3RhdGUuYXR0 ciwKQEAgLTcyOCw5ICs3MzMsMTAgQEAgc3RhdGljIHN0cnVjdCBhdHRyaWJ1dGUgKnFldGhfZGV2 aWNlX2F0dHJzW10gPSB7CiAJJmRldl9hdHRyX3N3aXRjaF9hdHRycy5hdHRyLAogCU5VTEwsCiB9 Owotc3RhdGljIHN0cnVjdCBhdHRyaWJ1dGVfZ3JvdXAgcWV0aF9kZXZpY2VfYXR0cl9ncm91cCA9 IHsKK2NvbnN0IHN0cnVjdCBhdHRyaWJ1dGVfZ3JvdXAgcWV0aF9kZXZpY2VfYXR0cl9ncm91cCA9 IHsKIAkuYXR0cnMgPSBxZXRoX2RldmljZV9hdHRycywKIH07CitFWFBPUlRfU1lNQk9MX0dQTChx ZXRoX2RldmljZV9hdHRyX2dyb3VwKTsKIAogY29uc3Qgc3RydWN0IGF0dHJpYnV0ZV9ncm91cCAq cWV0aF9nZW5lcmljX2F0dHJfZ3JvdXBzW10gPSB7CiAJJnFldGhfZGV2aWNlX2F0dHJfZ3JvdXAs CmRpZmYgLS1naXQgYS9kcml2ZXJzL3MzOTAvbmV0L3FldGhfbDIuaCBiL2RyaXZlcnMvczM5MC9u ZXQvcWV0aF9sMi5oCmluZGV4IDI5ZDlmYjMuLjBkNTlmOWEgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMv czM5MC9uZXQvcWV0aF9sMi5oCisrKyBiL2RyaXZlcnMvczM5MC9uZXQvcWV0aF9sMi5oCkBAIC04 LDYgKzgsOCBAQAogCiAjaW5jbHVkZSAicWV0aF9jb3JlLmgiCiAKK2V4dGVybiBjb25zdCBzdHJ1 Y3QgYXR0cmlidXRlX2dyb3VwICpxZXRoX2wyX2F0dHJfZ3JvdXBzW107CisKIGludCBxZXRoX2wy X2NyZWF0ZV9kZXZpY2VfYXR0cmlidXRlcyhzdHJ1Y3QgZGV2aWNlICopOwogdm9pZCBxZXRoX2wy X3JlbW92ZV9kZXZpY2VfYXR0cmlidXRlcyhzdHJ1Y3QgZGV2aWNlICopOwogdm9pZCBxZXRoX2wy X3NldHVwX2JyaWRnZXBvcnRfYXR0cnMoc3RydWN0IHFldGhfY2FyZCAqY2FyZCk7CmRpZmYgLS1n aXQgYS9kcml2ZXJzL3MzOTAvbmV0L3FldGhfbDJfbWFpbi5jIGIvZHJpdmVycy9zMzkwL25ldC9x ZXRoX2wyX21haW4uYwppbmRleCA5NWQzZWM4Li45MThlNzRmIDEwMDY0NAotLS0gYS9kcml2ZXJz L3MzOTAvbmV0L3FldGhfbDJfbWFpbi5jCisrKyBiL2RyaXZlcnMvczM5MC9uZXQvcWV0aF9sMl9t YWluLmMKQEAgLTEwMDYsMTQgKzEwMDYsMjEgQEAgc3RhdGljIGludCBxZXRoX2wyX3N0b3Aoc3Ry dWN0IG5ldF9kZXZpY2UgKmRldikKIAlyZXR1cm4gMDsKIH0KIAorc3RhdGljIGNvbnN0IHN0cnVj dCBkZXZpY2VfdHlwZSBxZXRoX2wyX2RldnR5cGUgPSB7CisJLm5hbWUgPSAicWV0aF9sYXllcjIi LAorCS5ncm91cHMgPSBxZXRoX2wyX2F0dHJfZ3JvdXBzLAorfTsKKwogc3RhdGljIGludCBxZXRo X2wyX3Byb2JlX2RldmljZShzdHJ1Y3QgY2N3Z3JvdXBfZGV2aWNlICpnZGV2KQogewogCXN0cnVj dCBxZXRoX2NhcmQgKmNhcmQgPSBkZXZfZ2V0X2RydmRhdGEoJmdkZXYtPmRldik7CiAJaW50IHJj OwogCi0JcmMgPSBxZXRoX2wyX2NyZWF0ZV9kZXZpY2VfYXR0cmlidXRlcygmZ2Rldi0+ZGV2KTsK LQlpZiAocmMpCi0JCXJldHVybiByYzsKKwlpZiAoZ2Rldi0+ZGV2LnR5cGUgPT0gJnFldGhfZ2Vu ZXJpY19kZXZ0eXBlKSB7CisJCXJjID0gcWV0aF9sMl9jcmVhdGVfZGV2aWNlX2F0dHJpYnV0ZXMo JmdkZXYtPmRldik7CisJCWlmIChyYykKKwkJCXJldHVybiByYzsKKwl9CiAJSU5JVF9MSVNUX0hF QUQoJmNhcmQtPnZpZF9saXN0KTsKIAloYXNoX2luaXQoY2FyZC0+bWFjX2h0YWJsZSk7CiAJY2Fy ZC0+b3B0aW9ucy5sYXllcjIgPSAxOwpAQCAtMTAyNSw3ICsxMDMyLDggQEAgc3RhdGljIHZvaWQg cWV0aF9sMl9yZW1vdmVfZGV2aWNlKHN0cnVjdCBjY3dncm91cF9kZXZpY2UgKmNnZGV2KQogewog CXN0cnVjdCBxZXRoX2NhcmQgKmNhcmQgPSBkZXZfZ2V0X2RydmRhdGEoJmNnZGV2LT5kZXYpOwog Ci0JcWV0aF9sMl9yZW1vdmVfZGV2aWNlX2F0dHJpYnV0ZXMoJmNnZGV2LT5kZXYpOworCWlmIChj Z2Rldi0+ZGV2LnR5cGUgPT0gJnFldGhfZ2VuZXJpY19kZXZ0eXBlKQorCQlxZXRoX2wyX3JlbW92 ZV9kZXZpY2VfYXR0cmlidXRlcygmY2dkZXYtPmRldik7CiAJcWV0aF9zZXRfYWxsb3dlZF90aHJl YWRzKGNhcmQsIDAsIDEpOwogCXdhaXRfZXZlbnQoY2FyZC0+d2FpdF9xLCBxZXRoX3RocmVhZHNf cnVubmluZyhjYXJkLCAweGZmZmZmZmZmKSA9PSAwKTsKIApAQCAtMTQwOSw2ICsxNDE3LDcgQEAg c3RhdGljIGludCBxZXRoX2wyX2NvbnRyb2xfZXZlbnQoc3RydWN0IHFldGhfY2FyZCAqY2FyZCwK IH0KIAogc3RydWN0IHFldGhfZGlzY2lwbGluZSBxZXRoX2wyX2Rpc2NpcGxpbmUgPSB7CisJLmRl dnR5cGUgPSAmcWV0aF9sMl9kZXZ0eXBlLAogCS5zdGFydF9wb2xsID0gcWV0aF9xZGlvX3N0YXJ0 X3BvbGwsCiAJLmlucHV0X2hhbmRsZXIgPSAocWRpb19oYW5kbGVyX3QgKikgcWV0aF9xZGlvX2lu cHV0X2hhbmRsZXIsCiAJLm91dHB1dF9oYW5kbGVyID0gKHFkaW9faGFuZGxlcl90ICopIHFldGhf cWRpb19vdXRwdXRfaGFuZGxlciwKZGlmZiAtLWdpdCBhL2RyaXZlcnMvczM5MC9uZXQvcWV0aF9s Ml9zeXMuYyBiL2RyaXZlcnMvczM5MC9uZXQvcWV0aF9sMl9zeXMuYwppbmRleCA2OTJkYjQ5Li5h NDhlZDllIDEwMDY0NAotLS0gYS9kcml2ZXJzL3MzOTAvbmV0L3FldGhfbDJfc3lzLmMKKysrIGIv ZHJpdmVycy9zMzkwL25ldC9xZXRoX2wyX3N5cy5jCkBAIC0yNzIsMyArMjcyLDExIEBAIHZvaWQg cWV0aF9sMl9zZXR1cF9icmlkZ2Vwb3J0X2F0dHJzKHN0cnVjdCBxZXRoX2NhcmQgKmNhcmQpCiAJ fSBlbHNlCiAJCXFldGhfYnJpZGdlcG9ydF9hbl9zZXQoY2FyZCwgMCk7CiB9CisKK2NvbnN0IHN0 cnVjdCBhdHRyaWJ1dGVfZ3JvdXAgKnFldGhfbDJfYXR0cl9ncm91cHNbXSA9IHsKKwkmcWV0aF9k ZXZpY2VfYXR0cl9ncm91cCwKKwkmcWV0aF9kZXZpY2VfYmxrdF9ncm91cCwKKwkvKiBsMiBzcGVj aWZpYywgc2VlIGwyX3tjcmVhdGUscmVtb3ZlfV9kZXZpY2VfYXR0cmlidXRlcygpOiAqLworCSZx ZXRoX2wyX2JyaWRnZXBvcnRfYXR0cl9ncm91cCwKKwlOVUxMLAorfTsKZGlmZiAtLWdpdCBhL2Ry aXZlcnMvczM5MC9uZXQvcWV0aF9sM19tYWluLmMgYi9kcml2ZXJzL3MzOTAvbmV0L3FldGhfbDNf bWFpbi5jCmluZGV4IDVmZTM3ZmEuLmFlZWI2NzIgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvczM5MC9u ZXQvcWV0aF9sM19tYWluLmMKKysrIGIvZHJpdmVycy9zMzkwL25ldC9xZXRoX2wzX21haW4uYwpA QCAtMzQzNCw2ICszNDM0LDcgQEAgc3RhdGljIGludCBxZXRoX2wzX2NvbnRyb2xfZXZlbnQoc3Ry dWN0IHFldGhfY2FyZCAqY2FyZCwKIH0KIAogc3RydWN0IHFldGhfZGlzY2lwbGluZSBxZXRoX2wz X2Rpc2NpcGxpbmUgPSB7CisJLmRldnR5cGUgPSAmcWV0aF9nZW5lcmljX2RldnR5cGUsCiAJLnN0 YXJ0X3BvbGwgPSBxZXRoX3FkaW9fc3RhcnRfcG9sbCwKIAkuaW5wdXRfaGFuZGxlciA9IChxZGlv X2hhbmRsZXJfdCAqKSBxZXRoX3FkaW9faW5wdXRfaGFuZGxlciwKIAkub3V0cHV0X2hhbmRsZXIg PSAocWRpb19oYW5kbGVyX3QgKikgcWV0aF9xZGlvX291dHB1dF9oYW5kbGVyLAotLSAKMi40LjEx CgoKRnJvbSA1ODMyNzk5YmU0MDc4NTIxYTlmMTRhNjYxOTEyMzk2ZTlkMWJlZjQzIE1vbiBTZXAg MTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBKdWxpYW4gV2llZG1hbm4gPGp3aUBsaW51eC52bmV0Lmli bS5jb20+CkRhdGU6IFdlZCwgMTAgTWF5IDIwMTcgMTk6MDc6NTMgKzAyMDAKU3ViamVjdDogW1BB VENIIDA2LzQxXSBzMzkwL3FldGg6IGF2b2lkIG51bGwgcG9pbnRlciBkZXJlZmVyZW5jZSBvbiBP U04KClsgVXBzdHJlYW0gY29tbWl0IDI1ZTJjMzQxZTc4MThhMzk0ZGE5YWJjNDAzNzE2Mjc4ZWU2 NDYwMTQgXQoKQWNjZXNzIGNhcmQtPmRldiBvbmx5IGFmdGVyIGNoZWNraW5nIHdoZXRoZXIncyBp dHMgdmFsaWQuCgpTaWduZWQtb2ZmLWJ5OiBKdWxpYW4gV2llZG1hbm4gPGp3aUBsaW51eC52bmV0 LmlibS5jb20+ClJldmlld2VkLWJ5OiBVcnN1bGEgQnJhdW4gPHVicmF1bkBsaW51eC52bmV0Lmli bS5jb20+ClNpZ25lZC1vZmYtYnk6IERhdmlkIFMuIE1pbGxlciA8ZGF2ZW1AZGF2ZW1sb2Z0Lm5l dD4KLS0tCiBkcml2ZXJzL3MzOTAvbmV0L3FldGhfbDJfbWFpbi5jIHwgMTAgKysrKysrLS0tLQog MSBmaWxlIGNoYW5nZWQsIDYgaW5zZXJ0aW9ucygrKSwgNCBkZWxldGlvbnMoLSkKCmRpZmYgLS1n aXQgYS9kcml2ZXJzL3MzOTAvbmV0L3FldGhfbDJfbWFpbi5jIGIvZHJpdmVycy9zMzkwL25ldC9x ZXRoX2wyX21haW4uYwppbmRleCA5MThlNzRmLi5hMmJiNzdkIDEwMDY0NAotLS0gYS9kcml2ZXJz L3MzOTAvbmV0L3FldGhfbDJfbWFpbi5jCisrKyBiL2RyaXZlcnMvczM5MC9uZXQvcWV0aF9sMl9t YWluLmMKQEAgLTEwOTEsNyArMTA5MSw2IEBAIHN0YXRpYyBpbnQgcWV0aF9sMl9zZXR1cF9uZXRk ZXYoc3RydWN0IHFldGhfY2FyZCAqY2FyZCkKIAljYXNlIFFFVEhfQ0FSRF9UWVBFX09TTjoKIAkJ Y2FyZC0+ZGV2ID0gYWxsb2NfbmV0ZGV2KDAsICJvc24lZCIsIE5FVF9OQU1FX1VOS05PV04sCiAJ CQkJCSBldGhlcl9zZXR1cCk7Ci0JCWNhcmQtPmRldi0+ZmxhZ3MgfD0gSUZGX05PQVJQOwogCQli cmVhazsKIAlkZWZhdWx0OgogCQljYXJkLT5kZXYgPSBhbGxvY19ldGhlcmRldigwKTsKQEAgLTEx MDYsOSArMTEwNSwxMiBAQCBzdGF0aWMgaW50IHFldGhfbDJfc2V0dXBfbmV0ZGV2KHN0cnVjdCBx ZXRoX2NhcmQgKmNhcmQpCiAJY2FyZC0+ZGV2LT5taW5fbXR1ID0gNjQ7CiAJY2FyZC0+ZGV2LT5t YXhfbXR1ID0gRVRIX01BWF9NVFU7CiAJY2FyZC0+ZGV2LT5uZXRkZXZfb3BzID0gJnFldGhfbDJf bmV0ZGV2X29wczsKLQljYXJkLT5kZXYtPmV0aHRvb2xfb3BzID0KLQkJKGNhcmQtPmluZm8udHlw ZSAhPSBRRVRIX0NBUkRfVFlQRV9PU04pID8KLQkJJnFldGhfbDJfZXRodG9vbF9vcHMgOiAmcWV0 aF9sMl9vc25fb3BzOworCWlmIChjYXJkLT5pbmZvLnR5cGUgPT0gUUVUSF9DQVJEX1RZUEVfT1NO KSB7CisJCWNhcmQtPmRldi0+ZXRodG9vbF9vcHMgPSAmcWV0aF9sMl9vc25fb3BzOworCQljYXJk LT5kZXYtPmZsYWdzIHw9IElGRl9OT0FSUDsKKwl9IGVsc2UgeworCQljYXJkLT5kZXYtPmV0aHRv b2xfb3BzID0gJnFldGhfbDJfZXRodG9vbF9vcHM7CisJfQogCWNhcmQtPmRldi0+ZmVhdHVyZXMg fD0gTkVUSUZfRl9IV19WTEFOX0NUQUdfRklMVEVSOwogCWlmIChjYXJkLT5pbmZvLnR5cGUgPT0g UUVUSF9DQVJEX1RZUEVfT1NEICYmICFjYXJkLT5pbmZvLmd1ZXN0bGFuKSB7CiAJCWNhcmQtPmRl di0+aHdfZmVhdHVyZXMgPSBORVRJRl9GX1NHOwotLSAKMi40LjExCgoKRnJvbSBiNGNhZGZiZjY1 OGI2ZGIyNWFjMDZlNzA2OTI2YTlhMjU3NDAzYTY0IE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpG cm9tOiBVcnN1bGEgQnJhdW4gPHVicmF1bkBsaW51eC52bmV0LmlibS5jb20+CkRhdGU6IFdlZCwg MTAgTWF5IDIwMTcgMTk6MDc6NTQgKzAyMDAKU3ViamVjdDogW1BBVENIIDA3LzQxXSBzMzkwL3Fl dGg6IGFkZCBtaXNzaW5nIGhhc2ggdGFibGUgaW5pdGlhbGl6YXRpb25zCgpbIFVwc3RyZWFtIGNv bW1pdCBlYmNjYzczOTdlNGE0OWZmNjRjOGY0NGE1NDg5NWRlOWQzMmZlNzQyIF0KCmNvbW1pdCA1 Zjc4ZTI5Y2VlYmYgKCJxZXRoOiBvcHRpbWl6ZSBJUCBoYW5kbGluZyBpbiByeF9tb2RlIGNhbGxi YWNrIikKYWRkZWQgbmV3IGhhc2ggdGFibGVzLCBidXQgbWlzc2VkIHRvIGluaXRpYWxpemUgdGhl bS4KCkZpeGVzOiA1Zjc4ZTI5Y2VlYmYgKCJxZXRoOiBvcHRpbWl6ZSBJUCBoYW5kbGluZyBpbiBy eF9tb2RlIGNhbGxiYWNrIikKU2lnbmVkLW9mZi1ieTogVXJzdWxhIEJyYXVuIDx1YnJhdW5AbGlu dXgudm5ldC5pYm0uY29tPgpSZXZpZXdlZC1ieTogSnVsaWFuIFdpZWRtYW5uIDxqd2lAbGludXgu dm5ldC5pYm0uY29tPgpTaWduZWQtb2ZmLWJ5OiBKdWxpYW4gV2llZG1hbm4gPGp3aUBsaW51eC52 bmV0LmlibS5jb20+ClNpZ25lZC1vZmYtYnk6IERhdmlkIFMuIE1pbGxlciA8ZGF2ZW1AZGF2ZW1s b2Z0Lm5ldD4KLS0tCiBkcml2ZXJzL3MzOTAvbmV0L3FldGhfbDNfbWFpbi5jIHwgMiArKwogMSBm aWxlIGNoYW5nZWQsIDIgaW5zZXJ0aW9ucygrKQoKZGlmZiAtLWdpdCBhL2RyaXZlcnMvczM5MC9u ZXQvcWV0aF9sM19tYWluLmMgYi9kcml2ZXJzL3MzOTAvbmV0L3FldGhfbDNfbWFpbi5jCmluZGV4 IGFlZWI2NzIuLmQyZmI1MGYgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvczM5MC9uZXQvcWV0aF9sM19t YWluLmMKKysrIGIvZHJpdmVycy9zMzkwL25ldC9xZXRoX2wzX21haW4uYwpAQCAtMzE1OCw2ICsz MTU4LDggQEAgc3RhdGljIGludCBxZXRoX2wzX3Byb2JlX2RldmljZShzdHJ1Y3QgY2N3Z3JvdXBf ZGV2aWNlICpnZGV2KQogCXJjID0gcWV0aF9sM19jcmVhdGVfZGV2aWNlX2F0dHJpYnV0ZXMoJmdk ZXYtPmRldik7CiAJaWYgKHJjKQogCQlyZXR1cm4gcmM7CisJaGFzaF9pbml0KGNhcmQtPmlwX2h0 YWJsZSk7CisJaGFzaF9pbml0KGNhcmQtPmlwX21jX2h0YWJsZSk7CiAJY2FyZC0+b3B0aW9ucy5s YXllcjIgPSAwOwogCWNhcmQtPmluZm8uaHd0cmFwID0gMDsKIAlyZXR1cm4gMDsKLS0gCjIuNC4x MQoKCkZyb20gZjAzYjIyYTBiZTZjYTMwZTRjNDU2Y2YzNjQyZmQxZWUyODY5MGQ1YiBNb24gU2Vw IDE3IDAwOjAwOjAwIDIwMDEKRnJvbTogRGFuaWVsIEJvcmttYW5uIDxkYW5pZWxAaW9nZWFyYm94 Lm5ldD4KRGF0ZTogVGh1LCAxMSBNYXkgMjAxNyAwMTo1MzoxNSArMDIwMApTdWJqZWN0OiBbUEFU Q0ggMDgvNDFdIGJwZiwgYXJtNjQ6IGZpeCBmYXVsdHkgZW1pc3Npb24gb2YgbWFwIGFjY2VzcyBp biB0YWlsCiBjYWxscwoKWyBVcHN0cmVhbSBjb21taXQgZDhiNTQxMTBlZTk0NGRlNTIyY2NkMzUz MTE5MWYzOTk4NmVjMjBmOSBdCgpTaHViaGFtIHdhcyByZWNlbnRseSBhc2tpbmcgb24gbmV0ZGV2 IHdoeSBpbiBhcm02NCBKSVQgd2UgZG9uJ3QgbXVsdGlwbHkKdGhlIGluZGV4IGZvciBhY2Nlc3Np bmcgdGhlIHRhaWwgY2FsbCBtYXAgYnkgOC4gVGhhdCBsZWQgbWUgaW50byB0ZXN0aW5nCm91dCBh cm02NCBKSVQgd3J0IHRhaWwgY2FsbHMgYW5kIGl0IHR1cm5lZCBvdXQgSSBnb3QgYSBOVUxMIHBv aW50ZXIKZGVyZWZlcmVuY2Ugb24gdGhlIHRhaWwgY2FsbC4KClRoZSBidWdneSBhY2Nlc3MgaXMg YXQ6CgogIHByb2cgPSBhcnJheS0+cHRyc1tpbmRleF07CiAgaWYgKHByb2cgPT0gTlVMTCkKICAg ICAgZ290byBvdXQ7CgogIFsuLi5dCiAgMDAwMDAwNjA6ICBkMjgwMGUwYSAgbW92IHgxMCwgIzB4 NzAgLy8gIzExMgogIDAwMDAwMDY0OiAgZjg2YTY4MmEgIGxkciB4MTAsIFt4MSx4MTBdCiAgMDAw MDAwNjg6ICBmODYyNjk0YiAgbGRyIHgxMSwgW3gxMCx4Ml0KICAwMDAwMDA2YzogIGI0MDAwMGFi ICBjYnogeDExLCAweDAwMDAwMDgwCiAgWy4uLl0KClRoZSBjb2RlIHRyaWdnZXJpbmcgdGhlIGNy YXNoIGlzIGY4NjI2OTRiLiB4MSBhdCB0aGUgdGltZSBjb250YWlucyB0aGUKYWRkcmVzcyBvZiB0 aGUgYnBmIGFycmF5LCB4MTAgb2Zmc2V0b2Yoc3RydWN0IGJwZl9hcnJheSwgcHRycykuIE1lYW5p bmcsCmFib3ZlIHdlIGxvYWQgdGhlIHBvaW50ZXIgdG8gdGhlIHByb2dyYW0gYXQgbWFwIHNsb3Qg MCBpbnRvIHgxMC4geDEwCmNhbiB0aGVuIGJlIE5VTEwgaWYgdGhlIHNsb3QgaXMgbm90IG9jY3Vw aWVkLCB3aGljaCB3ZSBsYXRlciBvbiB0cnkgdG8KYWNjZXNzIHdpdGggYSB1c2VyIGdpdmVuIG9m ZnNldCBpbiB4MiB0aGF0IGlzIHRoZSBtYXAgaW5kZXguCgpGaXggdGhpcyBieSBlbWl0dGluZyB0 aGUgZm9sbG93aW5nIGluc3RlYWQ6CgogIFsuLi5dCiAgMDAwMDAwNjA6ICBkMjgwMGUwYSAgbW92 IHgxMCwgIzB4NzAgLy8gIzExMgogIDAwMDAwMDY0OiAgOGIwYTAwMmEgIGFkZCB4MTAsIHgxLCB4 MTAKICAwMDAwMDA2ODogIGQzN2RmMDRiICBsc2wgeDExLCB4MiwgIzMKICAwMDAwMDA2YzogIGY4 NmI2OTRiICBsZHIgeDExLCBbeDEwLHgxMV0KICAwMDAwMDA3MDogIGI0MDAwMGFiICBjYnogeDEx LCAweDAwMDAwMDg0CiAgWy4uLl0KClRoaXMgYmFzaWNhbGx5IGFkZHMgdGhlIG9mZnNldCB0byBw dHJzIHRvIHRoZSBiYXNlIGFkZHJlc3Mgb2YgdGhlIGJwZgphcnJheSB3ZSBnb3QgYW5kIHdlIGxh dGVyIG9uIGFjY2VzcyB0aGUgbWFwIHdpdGggYW4gaW5kZXggKiA4IG9mZnNldApyZWxhdGl2ZSB0 byB0aGF0LiBUaGUgdGFpbCBjYWxsIG1hcCBpdHNlbGYgaXMgYmFzaWNhbGx5IG9uZSBsYXJnZSBh cmVhCndpdGggbWV0YSBkYXRhIGF0IHRoZSBoZWFkIGZvbGxvd2VkIGJ5IHRoZSBhcnJheSBvZiBw cm9nIHBvaW50ZXJzLgpUaGlzIG1ha2VzIHRhaWwgY2FsbHMgd29ya2luZyBhZ2FpbiwgdGVzdGVk IG9uIENhdml1bSBUaHVuZGVyWCBBUk12OC4KCkZpeGVzOiBkZGI1NTk5MmIwNGQgKCJhcm02NDog YnBmOiBpbXBsZW1lbnQgYnBmX3RhaWxfY2FsbCgpIGhlbHBlciIpClJlcG9ydGVkLWJ5OiBTaHVi aGFtIEJhbnNhbCA8aWxsdXNpb25pc3QubmVvQGdtYWlsLmNvbT4KU2lnbmVkLW9mZi1ieTogRGFu aWVsIEJvcmttYW5uIDxkYW5pZWxAaW9nZWFyYm94Lm5ldD4KU2lnbmVkLW9mZi1ieTogRGF2aWQg Uy4gTWlsbGVyIDxkYXZlbUBkYXZlbWxvZnQubmV0PgotLS0KIGFyY2gvYXJtNjQvbmV0L2JwZl9q aXRfY29tcC5jIHwgNSArKystLQogMSBmaWxlIGNoYW5nZWQsIDMgaW5zZXJ0aW9ucygrKSwgMiBk ZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9hcmNoL2FybTY0L25ldC9icGZfaml0X2NvbXAuYyBi L2FyY2gvYXJtNjQvbmV0L2JwZl9qaXRfY29tcC5jCmluZGV4IGNlOGFiMDQuLjRiMGUwZWQgMTAw NjQ0Ci0tLSBhL2FyY2gvYXJtNjQvbmV0L2JwZl9qaXRfY29tcC5jCisrKyBiL2FyY2gvYXJtNjQv bmV0L2JwZl9qaXRfY29tcC5jCkBAIC0yNTIsOCArMjUyLDkgQEAgc3RhdGljIGludCBlbWl0X2Jw Zl90YWlsX2NhbGwoc3RydWN0IGppdF9jdHggKmN0eCkKIAkgKi8KIAlvZmYgPSBvZmZzZXRvZihz dHJ1Y3QgYnBmX2FycmF5LCBwdHJzKTsKIAllbWl0X2E2NF9tb3ZfaTY0KHRtcCwgb2ZmLCBjdHgp OwotCWVtaXQoQTY0X0xEUjY0KHRtcCwgcjIsIHRtcCksIGN0eCk7Ci0JZW1pdChBNjRfTERSNjQo cHJnLCB0bXAsIHIzKSwgY3R4KTsKKwllbWl0KEE2NF9BREQoMSwgdG1wLCByMiwgdG1wKSwgY3R4 KTsKKwllbWl0KEE2NF9MU0woMSwgcHJnLCByMywgMyksIGN0eCk7CisJZW1pdChBNjRfTERSNjQo cHJnLCB0bXAsIHByZyksIGN0eCk7CiAJZW1pdChBNjRfQ0JaKDEsIHByZywgam1wX29mZnNldCks IGN0eCk7CiAKIAkvKiBnb3RvICoocHJvZy0+YnBmX2Z1bmMgKyBwcm9sb2d1ZV9zaXplKTsgKi8K LS0gCjIuNC4xMQoKCkZyb20gNmFkMjMxMGZjOTBjOTUzYWVmZmMyYTc1NDMxZGY0YTI2MjQ5ZjU4 NyBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJvbTogRXJpYyBEdW1hemV0IDxlZHVtYXpldEBn b29nbGUuY29tPgpEYXRlOiBUaHUsIDExIE1heSAyMDE3IDE1OjI0OjQxIC0wNzAwClN1YmplY3Q6 IFtQQVRDSCAwOS80MV0gbmV0ZW06IGZpeCBza2Jfb3JwaGFuX3BhcnRpYWwoKQoKWyBVcHN0cmVh bSBjb21taXQgZjZiYThkMzNjZmJiNDZkZjU2OTk3MmU2NGRiYjViYjdlOTI5YmZkOSBdCgpJIHNo b3VsZCBoYXZlIGtub3duIHRoYXQgbG93ZXJpbmcgc2tiLT50cnVlc2l6ZSB3YXMgZGFuZ2Vyb3Vz IDovCgpJbiBjYXNlIHBhY2tldHMgYXJlIG5vdCBsZWF2aW5nIHRoZSBob3N0IHZpYSBhIHN0YW5k YXJkIEV0aGVybmV0IGRldmljZSwKYnV0IGxvb3BlZCBiYWNrIHRvIGxvY2FsIHNvY2tldHMsIGJh ZCB0aGluZ3MgY2FuIGhhcHBlbiwgYXMgcmVwb3J0ZWQKYnkgTWljaGFlbCBNYWRzZW4gKCBodHRw czovL2J1Z3ppbGxhLmtlcm5lbC5vcmcvc2hvd19idWcuY2dpP2lkPTE5NTcxMyApCgpTbyBpbnN0 ZWFkIG9mIHR3ZWFraW5nIHNrYi0+dHJ1ZXNpemUsIGxldHMgY2hhbmdlIHNrYi0+ZGVzdHJ1Y3Rv cgphbmQga2VlcCBhIHJlZmVyZW5jZSBvbiB0aGUgb3duZXIgc29ja2V0IHZpYSBpdHMgc2tfcmVm Y250LgoKRml4ZXM6IGYyZjg3MmY5MjcyYSAoIm5ldGVtOiBJbnRyb2R1Y2Ugc2tiX29ycGhhbl9w YXJ0aWFsKCkgaGVscGVyIikKU2lnbmVkLW9mZi1ieTogRXJpYyBEdW1hemV0IDxlZHVtYXpldEBn b29nbGUuY29tPgpSZXBvcnRlZC1ieTogTWljaGFlbCBNYWRzZW4gPG1rbUBuYWJ0by5jb20+ClNp Z25lZC1vZmYtYnk6IERhdmlkIFMuIE1pbGxlciA8ZGF2ZW1AZGF2ZW1sb2Z0Lm5ldD4KLS0tCiBu ZXQvY29yZS9zb2NrLmMgfCAyMCArKysrKysrKy0tLS0tLS0tLS0tLQogMSBmaWxlIGNoYW5nZWQs IDggaW5zZXJ0aW9ucygrKSwgMTIgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvbmV0L2NvcmUv c29jay5jIGIvbmV0L2NvcmUvc29jay5jCmluZGV4IDJjNGY1NzQuLjNhNzI2MGYgMTAwNjQ0Ci0t LSBhL25ldC9jb3JlL3NvY2suYworKysgYi9uZXQvY29yZS9zb2NrLmMKQEAgLTE2OTksMjggKzE2 OTksMjQgQEAgRVhQT1JUX1NZTUJPTChza2Jfc2V0X293bmVyX3cpOwogICogZGVsYXkgcXVldWUu IFdlIHdhbnQgdG8gYWxsb3cgdGhlIG93bmVyIHNvY2tldCB0byBzZW5kIG1vcmUKICAqIHBhY2tl dHMsIGFzIGlmIHRoZXkgd2VyZSBhbHJlYWR5IFRYIGNvbXBsZXRlZCBieSBhIHR5cGljYWwgZHJp dmVyLgogICogQnV0IHdlIGFsc28gd2FudCB0byBrZWVwIHNrYi0+c2sgc2V0IGJlY2F1c2Ugc29t ZSBwYWNrZXQgc2NoZWR1bGVycwotICogcmVseSBvbiBpdCAoc2NoX2ZxIGZvciBleGFtcGxlKS4g U28gd2Ugc2V0IHNrYi0+dHJ1ZXNpemUgdG8gYSBzbWFsbAotICogYW1vdW50ICgxKSBhbmQgZGVj cmVhc2Ugc2tfd21lbV9hbGxvYyBhY2NvcmRpbmdseS4KKyAqIHJlbHkgb24gaXQgKHNjaF9mcSBm b3IgZXhhbXBsZSkuCiAgKi8KIHZvaWQgc2tiX29ycGhhbl9wYXJ0aWFsKHN0cnVjdCBza19idWZm ICpza2IpCiB7Ci0JLyogSWYgdGhpcyBza2IgaXMgYSBUQ1AgcHVyZSBBQ0sgb3IgYWxyZWFkeSB3 ZW50IGhlcmUsCi0JICogd2UgaGF2ZSBub3RoaW5nIHRvIGRvLiAyIGlzIGFscmVhZHkgYSB2ZXJ5 IHNtYWxsIHRydWVzaXplLgotCSAqLwotCWlmIChza2ItPnRydWVzaXplIDw9IDIpCisJaWYgKHNr Yl9pc190Y3BfcHVyZV9hY2soc2tiKSkKIAkJcmV0dXJuOwogCi0JLyogVENQIHN0YWNrIHNldHMg c2tiLT5vb29fb2theSBiYXNlZCBvbiBza193bWVtX2FsbG9jLAotCSAqIHNvIHdlIGRvIG5vdCBj b21wbGV0ZWx5IG9ycGhhbiBza2IsIGJ1dCB0cmFuc2ZlcnQgYWxsCi0JICogYWNjb3VudGVkIGJ5 dGVzIGJ1dCBvbmUsIHRvIGF2b2lkIHVuZXhwZWN0ZWQgcmVvcmRlcnMuCi0JICovCiAJaWYgKHNr Yi0+ZGVzdHJ1Y3RvciA9PSBzb2NrX3dmcmVlCiAjaWZkZWYgQ09ORklHX0lORVQKIAkgICAgfHwg c2tiLT5kZXN0cnVjdG9yID09IHRjcF93ZnJlZQogI2VuZGlmCiAJCSkgewotCQlhdG9taWNfc3Vi KHNrYi0+dHJ1ZXNpemUgLSAxLCAmc2tiLT5zay0+c2tfd21lbV9hbGxvYyk7Ci0JCXNrYi0+dHJ1 ZXNpemUgPSAxOworCQlzdHJ1Y3Qgc29jayAqc2sgPSBza2ItPnNrOworCisJCWlmIChhdG9taWNf aW5jX25vdF96ZXJvKCZzay0+c2tfcmVmY250KSkgeworCQkJYXRvbWljX3N1Yihza2ItPnRydWVz aXplLCAmc2stPnNrX3dtZW1fYWxsb2MpOworCQkJc2tiLT5kZXN0cnVjdG9yID0gc29ja19lZnJl ZTsKKwkJfQogCX0gZWxzZSB7CiAJCXNrYl9vcnBoYW4oc2tiKTsKIAl9Ci0tIAoyLjQuMTEKCgpG cm9tIGQwZTc1ZjRhMWQzZjZiNTg0ODE3N2UyMTlkN2NlNGQ2YjAwMmRiMzAgTW9uIFNlcCAxNyAw MDowMDowMCAyMDAxCkZyb206IEVyaWMgRHVtYXpldCA8ZWR1bWF6ZXRAZ29vZ2xlLmNvbT4KRGF0 ZTogVHVlLCAxNiBNYXkgMjAxNyAxMzoyNzo1MyAtMDcwMApTdWJqZWN0OiBbUEFUQ0ggMTAvNDFd IG5ldDogZml4IGNvbXBpbGUgZXJyb3IgaW4gc2tiX29ycGhhbl9wYXJ0aWFsKCkKTUlNRS1WZXJz aW9uOiAxLjAKQ29udGVudC1UeXBlOiB0ZXh0L3BsYWluOyBjaGFyc2V0PVVURi04CkNvbnRlbnQt VHJhbnNmZXItRW5jb2Rpbmc6IDhiaXQKClsgVXBzdHJlYW0gY29tbWl0IDkxNDJlOTAwN2YyZDdh YjU4YTU4N2ExZTFkOTIxYjAwNjRhMzM5YWEgXQoKSWYgQ09ORklHX0lORVQgaXMgbm90IHNldCwg bmV0L2NvcmUvc29jay5jIGNhbiBub3QgY29tcGlsZSA6CgpuZXQvY29yZS9zb2NrLmM6IEluIGZ1 bmN0aW9uIOKAmHNrYl9vcnBoYW5fcGFydGlhbOKAmToKbmV0L2NvcmUvc29jay5jOjE4MTA6Mjog ZXJyb3I6IGltcGxpY2l0IGRlY2xhcmF0aW9uIG9mIGZ1bmN0aW9uCuKAmHNrYl9pc190Y3BfcHVy ZV9hY2vigJkgWy1XZXJyb3I9aW1wbGljaXQtZnVuY3Rpb24tZGVjbGFyYXRpb25dCiAgaWYgKHNr Yl9pc190Y3BfcHVyZV9hY2soc2tiKSkKICBeCgpGaXggdGhpcyBieSBhbHdheXMgaW5jbHVkaW5n IDxuZXQvdGNwLmg+CgpGaXhlczogZjZiYThkMzNjZmJiICgibmV0ZW06IGZpeCBza2Jfb3JwaGFu X3BhcnRpYWwoKSIpClNpZ25lZC1vZmYtYnk6IEVyaWMgRHVtYXpldCA8ZWR1bWF6ZXRAZ29vZ2xl LmNvbT4KUmVwb3J0ZWQtYnk6IFBhdWwgR29ydG1ha2VyIDxwYXVsLmdvcnRtYWtlckB3aW5kcml2 ZXIuY29tPgpSZXBvcnRlZC1ieTogUmFuZHkgRHVubGFwIDxyZHVubGFwQGluZnJhZGVhZC5vcmc+ ClJlcG9ydGVkLWJ5OiBTdGVwaGVuIFJvdGh3ZWxsIDxzZnJAY2FuYi5hdXVnLm9yZy5hdT4KU2ln bmVkLW9mZi1ieTogRGF2aWQgUy4gTWlsbGVyIDxkYXZlbUBkYXZlbWxvZnQubmV0PgotLS0KIG5l dC9jb3JlL3NvY2suYyB8IDMgLS0tCiAxIGZpbGUgY2hhbmdlZCwgMyBkZWxldGlvbnMoLSkKCmRp ZmYgLS1naXQgYS9uZXQvY29yZS9zb2NrLmMgYi9uZXQvY29yZS9zb2NrLmMKaW5kZXggM2E3MjYw Zi4uNTllZGMwZSAxMDA2NDQKLS0tIGEvbmV0L2NvcmUvc29jay5jCisrKyBiL25ldC9jb3JlL3Nv Y2suYwpAQCAtMTM4LDEwICsxMzgsNyBAQAogCiAjaW5jbHVkZSA8dHJhY2UvZXZlbnRzL3NvY2su aD4KIAotI2lmZGVmIENPTkZJR19JTkVUCiAjaW5jbHVkZSA8bmV0L3RjcC5oPgotI2VuZGlmCi0K ICNpbmNsdWRlIDxuZXQvYnVzeV9wb2xsLmg+CiAKIHN0YXRpYyBERUZJTkVfTVVURVgocHJvdG9f bGlzdF9tdXRleCk7Ci0tIAoyLjQuMTEKCgpGcm9tIDY5MTc1OWU0NDA1MDM2NGE3NzQyNWU3NGQ0 ZWI0YjIzNDkwODhlNmQgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCkZyb206IFl1Y2h1bmcgQ2hl bmcgPHljaGVuZ0Bnb29nbGUuY29tPgpEYXRlOiBXZWQsIDEwIE1heSAyMDE3IDE3OjAxOjI3IC0w NzAwClN1YmplY3Q6IFtQQVRDSCAxMS80MV0gdGNwOiBhdm9pZCBmcmFnbWVudGluZyBwZWN1bGlh ciBza2JzIGluIFNBQ0sKClsgVXBzdHJlYW0gY29tbWl0IGI0NTFlNWQyNGJhNjY4N2M2ZjBlNzMx OWM3MjdhNzA5YTE4NDZjMDYgXQoKVGhpcyBwYXRjaCBmaXhlcyBhIGJ1ZyBpbiBzcGxpdHRpbmcg YW4gU0tCIGR1cmluZyBTQUNLCnByb2Nlc3NpbmcuIFNwZWNpZmljYWxseSBpZiBhbiBza2IgY29u dGFpbnMgbXVsdGlwbGUKcGFja2V0cyBhbmQgaXMgb25seSBwYXJ0aWFsbHkgc2Fja2VkIGluIHRo ZSBoaWdoZXIgc2VxdWVuY2VzLAp0Y3BfbWF0Y2hfc2Fja190b19za2IoKSBzcGxpdHMgdGhlIHNr YiBhbmQgbWFya3MgdGhlIHNlY29uZCBmcmFnbWVudAphcyBTQUNLZWQuCgpUaGUgY3VycmVudCBj b2RlIGZ1cnRoZXIgYXR0ZW1wdHMgcm91bmRpbmcgdXAgdGhlIGZpcnN0IGZyYWdtZW50CnRvIE1T UyBib3VuZGFyaWVzLiBCdXQgaXQgbWlzc2VzIGEgYm91bmRhcnkgY29uZGl0aW9uIHdoZW4gdGhl CnJvdW5kZWQtdXAgZnJhZ21lbnQgc2l6ZSAocGt0X2xlbikgaXMgZXhhY3RseSBza2Igc2l6ZS4g IFNwbGl0aW5nCnN1Y2ggYW4gc2tiIGlzIHBvaW50bGVzcyBhbmQgY2F1c3NlcyBhIGtlcm5lbCB3 YXJuaW5nIGFuZCBhYm9ydHMKdGhlIFNBQ0sgcHJvY2Vzc2luZy4gVGhpcyBwYXRjaCB1bml2ZXJz YWxseSBjaGVja3Mgc3VjaCBvdmVyLXNwbGl0CmJlZm9yZSBjYWxsaW5nIHRjcF9mcmFnbWVudCB0 byBwcmV2ZW50IHRoZXNlIHVubmVjZXNzYXJ5IHdhcm5pbmdzLgoKRml4ZXM6IGFkYjkyZGI4NTdl ZSAoInRjcDogTWFrZSBTQUNLIGNvZGUgdG8gc3BsaXQgb25seSBhdCBtc3MgYm91bmRhcmllcyIp ClNpZ25lZC1vZmYtYnk6IFl1Y2h1bmcgQ2hlbmcgPHljaGVuZ0Bnb29nbGUuY29tPgpTaWduZWQt b2ZmLWJ5OiBFcmljIER1bWF6ZXQgPGVkdW1hemV0QGdvb2dsZS5jb20+ClNpZ25lZC1vZmYtYnk6 IFNvaGVpbCBIYXNzYXMgWWVnYW5laCA8c29oZWlsQGdvb2dsZS5jb20+CkFja2VkLWJ5OiBOZWFs IENhcmR3ZWxsIDxuY2FyZHdlbGxAZ29vZ2xlLmNvbT4KU2lnbmVkLW9mZi1ieTogRGF2aWQgUy4g TWlsbGVyIDxkYXZlbUBkYXZlbWxvZnQubmV0PgotLS0KIG5ldC9pcHY0L3RjcF9pbnB1dC5jIHwg OSArKysrKy0tLS0KIDEgZmlsZSBjaGFuZ2VkLCA1IGluc2VydGlvbnMoKyksIDQgZGVsZXRpb25z KC0pCgpkaWZmIC0tZ2l0IGEvbmV0L2lwdjQvdGNwX2lucHV0LmMgYi9uZXQvaXB2NC90Y3BfaW5w dXQuYwppbmRleCAzYzZjODc4Li5iNzJiMDYxIDEwMDY0NAotLS0gYS9uZXQvaXB2NC90Y3BfaW5w dXQuYworKysgYi9uZXQvaXB2NC90Y3BfaW5wdXQuYwpAQCAtMTE3NCwxMyArMTE3NCwxNCBAQCBz dGF0aWMgaW50IHRjcF9tYXRjaF9za2JfdG9fc2FjayhzdHJ1Y3Qgc29jayAqc2ssIHN0cnVjdCBz a19idWZmICpza2IsCiAJCSAqLwogCQlpZiAocGt0X2xlbiA+IG1zcykgewogCQkJdW5zaWduZWQg aW50IG5ld19sZW4gPSAocGt0X2xlbiAvIG1zcykgKiBtc3M7Ci0JCQlpZiAoIWluX3NhY2sgJiYg bmV3X2xlbiA8IHBrdF9sZW4pIHsKKwkJCWlmICghaW5fc2FjayAmJiBuZXdfbGVuIDwgcGt0X2xl bikKIAkJCQluZXdfbGVuICs9IG1zczsKLQkJCQlpZiAobmV3X2xlbiA+PSBza2ItPmxlbikKLQkJ CQkJcmV0dXJuIDA7Ci0JCQl9CiAJCQlwa3RfbGVuID0gbmV3X2xlbjsKIAkJfQorCisJCWlmIChw a3RfbGVuID49IHNrYi0+bGVuICYmICFpbl9zYWNrKQorCQkJcmV0dXJuIDA7CisKIAkJZXJyID0g dGNwX2ZyYWdtZW50KHNrLCBza2IsIHBrdF9sZW4sIG1zcywgR0ZQX0FUT01JQyk7CiAJCWlmIChl cnIgPCAwKQogCQkJcmV0dXJuIGVycjsKLS0gCjIuNC4xMQoKCkZyb20gYzZkMGUxYmM3ZTc2YmJl MzdlMTdhZDQ2OGQxNTQ2MThjODU3MmViYyBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJvbTog Sm9uIFBhdWwgTWFsb3kgPGpvbi5tYWxveUBlcmljc3Nvbi5jb20+CkRhdGU6IFRodSwgMTEgTWF5 IDIwMTcgMjA6Mjg6MTUgKzAyMDAKU3ViamVjdDogW1BBVENIIDEyLzQxXSB0aXBjOiBtYWtlIG1h Y3JvIHRpcGNfd2FpdF9mb3JfY29uZCgpIHNtcCBzYWZlCgpbIFVwc3RyZWFtIGNvbW1pdCA4NDRj Zjc2M2ZiYTY1NDQzNmQzYTQyNzliNmE2NzJjMTk2Y2YxOTAxIF0KClRoZSBtYWNybyB0aXBjX3dh aXRfZm9yX2NvbmQoKSBpcyBlbWJlZGRpbmcgdGhlIG1hY3JvIHNrX3dhaXRfZXZlbnQoKQp0byBm dWxmaWwgaXRzIHRhc2suIFRoZSBsYXR0ZXIsIGluIHR1cm4sIGlzIGV2YWx1YXRpbmcgdGhlIHN0 YXRlZApjb25kaXRpb24gb3V0c2lkZSB0aGUgc29ja2V0IGxvY2sgY29udGV4dC4gVGhpcyBpcyBw cm9ibGVtYXRpYyBpZgp0aGUgY29uZGl0aW9uIGlzIGFjY2Vzc2luZyBub24tdHJpdmlhbCBkYXRh IHN0cnVjdHVyZXMgd2hpY2ggbWF5IGJlCmFsdGVyZWQgYnkgaW5jb21pbmcgaW50ZXJydXB0cywg YXMgaXMgdGhlIGNhc2Ugd2l0aCB0aGUgY29uZ19saW5rcygpCmxpbmtlZCBsaXN0LCB1c2VkIGJ5 IHNvY2tldCB0byBrZWVwIHRyYWNrIG9mIHRoZSBjdXJyZW50IHNldCBvZgpjb25nZXN0ZWQgbGlu a3MuIFdlIHNvbWV0aW1lcyBzZWUgY3Jhc2hlcyB3aGVuIHRoaXMgbGlzdCBpcyBhY2Nlc3NlZApi eSBhIGNvbmRpdGlvbiBmdW5jdGlvbiBhdCB0aGUgc2FtZSB0aW1lIGFzIGEgU09DS19XQUtFVVAg aW50ZXJydXB0CmlzIHJlbW92aW5nIGFuIGVsZW1lbnQgZnJvbSB0aGUgbGlzdC4KCldlIGZpeCB0 aGlzIGJ5IGV4cGFuZGluZyBzZWxlY3RlZCBwYXJ0cyBvZiBza193YWl0X2V2ZW50KCkgaW50byB0 aGUKb3V0ZXIgbWFjcm8sIHdoaWxlIGVuc3VyaW5nIHRoYXQgYWxsIGV2YWx1YXRpb25zIG9mIGEg Z2l2ZW4gY29uZGl0aW9uCmFyZSBwZXJmb3JtZWQgdW5kZXIgc29ja2V0IGxvY2sgcHJvdGVjdGlv bi4KCkZpeGVzOiBjb21taXQgMzY1YWQzNTNjMjU2ICgidGlwYzogcmVkdWNlIHJpc2sgb2YgdXNl ciBzdGFydmF0aW9uIGR1cmluZyBsaW5rIGNvbmdlc3Rpb24iKQpSZXZpZXdlZC1ieTogUGFydGhh c2FyYXRoeSBCaHV2YXJhZ2FuIDxwYXJ0aGFzYXJhdGh5LmJodXZhcmFnYW5AZXJpY3Nzb24uY29t PgpTaWduZWQtb2ZmLWJ5OiBKb24gTWFsb3kgPGpvbi5tYWxveUBlcmljc3Nvbi5jb20+ClNpZ25l ZC1vZmYtYnk6IERhdmlkIFMuIE1pbGxlciA8ZGF2ZW1AZGF2ZW1sb2Z0Lm5ldD4KLS0tCiBuZXQv dGlwYy9zb2NrZXQuYyB8IDM4ICsrKysrKysrKysrKysrKysrKystLS0tLS0tLS0tLS0tLS0tLS0t CiAxIGZpbGUgY2hhbmdlZCwgMTkgaW5zZXJ0aW9ucygrKSwgMTkgZGVsZXRpb25zKC0pCgpkaWZm IC0tZ2l0IGEvbmV0L3RpcGMvc29ja2V0LmMgYi9uZXQvdGlwYy9zb2NrZXQuYwppbmRleCBiZGNl OTlmLi41OTljNjliIDEwMDY0NAotLS0gYS9uZXQvdGlwYy9zb2NrZXQuYworKysgYi9uZXQvdGlw Yy9zb2NrZXQuYwpAQCAtMzYxLDI1ICszNjEsMjUgQEAgc3RhdGljIGludCB0aXBjX3NrX3NvY2tf ZXJyKHN0cnVjdCBzb2NrZXQgKnNvY2ssIGxvbmcgKnRpbWVvdXQpCiAJcmV0dXJuIDA7CiB9CiAK LSNkZWZpbmUgdGlwY193YWl0X2Zvcl9jb25kKHNvY2tfLCB0aW1lb3V0XywgY29uZGl0aW9uXykJ CQlcCi0oewkJCQkJCQkJICAgICAgICBcCi0JaW50IHJjXyA9IDA7CQkJCQkJCVwKLQlpbnQgZG9u ZV8gPSAwOwkJCQkJCQlcCi0JCQkJCQkJCQlcCi0Jd2hpbGUgKCEoY29uZGl0aW9uXykgJiYgIWRv bmVfKSB7CQkJCVwKLQkJc3RydWN0IHNvY2sgKnNrXyA9IHNvY2stPnNrOwkJCQlcCi0JCURFRklO RV9XQUlUX0ZVTkMod2FpdF8sIHdva2VuX3dha2VfZnVuY3Rpb24pOwkJXAotCQkJCQkJCQkJXAot CQlyY18gPSB0aXBjX3NrX3NvY2tfZXJyKHNvY2tfLCB0aW1lb3V0Xyk7CQlcCi0JCWlmIChyY18p CQkJCQkJXAotCQkJYnJlYWs7CQkJCQkJXAotCQlwcmVwYXJlX3RvX3dhaXQoc2tfc2xlZXAoc2tf KSwgJndhaXRfLAkJCVwKLQkJCQlUQVNLX0lOVEVSUlVQVElCTEUpOwkJCVwKLQkJZG9uZV8gPSBz a193YWl0X2V2ZW50KHNrXywgdGltZW91dF8sCQkJXAotCQkJCSAgICAgIChjb25kaXRpb25fKSwg JndhaXRfKTsJCVwKLQkJcmVtb3ZlX3dhaXRfcXVldWUoc2tfc2xlZXAoc2tfKSwgJndhaXRfKTsJ CVwKLQl9CQkJCQkJCQlcCi0JcmNfOwkJCQkJCQkJXAorI2RlZmluZSB0aXBjX3dhaXRfZm9yX2Nv bmQoc29ja18sIHRpbWVvXywgY29uZGl0aW9uXykJCQkgICAgICAgXAorKHsgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIFwKKwlzdHJ1Y3Qgc29jayAqc2tfOwkJCQkJCSAgICAgICBcCisJaW50IHJjXzsJCQkJ CQkJICAgICAgIFwKKwkJCQkJCQkJCSAgICAgICBcCisJd2hpbGUgKChyY18gPSAhKGNvbmRpdGlv bl8pKSkgewkJCQkJICAgICAgIFwKKwkJREVGSU5FX1dBSVRfRlVOQyh3YWl0Xywgd29rZW5fd2Fr ZV9mdW5jdGlvbik7CSAgICAgICAgICAgICAgIFwKKwkJc2tfID0gKHNvY2tfKS0+c2s7CQkJCQkg ICAgICAgXAorCQlyY18gPSB0aXBjX3NrX3NvY2tfZXJyKChzb2NrXyksIHRpbWVvXyk7CQkgICAg ICAgXAorCQlpZiAocmNfKQkJCQkJCSAgICAgICBcCisJCQlicmVhazsJCQkJCQkgICAgICAgXAor CQlwcmVwYXJlX3RvX3dhaXQoc2tfc2xlZXAoc2tfKSwgJndhaXRfLCBUQVNLX0lOVEVSUlVQVElC TEUpOyAgICBcCisJCXJlbGVhc2Vfc29jayhza18pOwkJCQkJICAgICAgIFwKKwkJKih0aW1lb18p ID0gd2FpdF93b2tlbigmd2FpdF8sIFRBU0tfSU5URVJSVVBUSUJMRSwgKih0aW1lb18pKTsgXAor CQlzY2hlZF9hbm5vdGF0ZV9zbGVlcCgpOwkJCQkgICAgICAgICAgICAgICBcCisJCWxvY2tfc29j ayhza18pOwkJCQkJCSAgICAgICBcCisJCXJlbW92ZV93YWl0X3F1ZXVlKHNrX3NsZWVwKHNrXyks ICZ3YWl0Xyk7CQkgICAgICAgXAorCX0JCQkJCQkJCSAgICAgICBcCisJcmNfOwkJCQkJCQkJICAg ICAgIFwKIH0pCiAKIC8qKgotLSAKMi40LjExCgoKRnJvbSAyNGFmNTFiNjVkZjliYTcxOTQwMjMx NWUxMDM5NTU0ZWE1ZTEzNmQ2IE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBYaW4gTG9u ZyA8bHVjaWVuLnhpbkBnbWFpbC5jb20+CkRhdGU6IEZyaSwgMTIgTWF5IDIwMTcgMTQ6Mzk6NTIg KzA4MDAKU3ViamVjdDogW1BBVENIIDEzLzQxXSBzY3RwOiBmaXggc3JjIGFkZHJlc3Mgc2VsZWN0 aW9uIGlmIHVzaW5nIHNlY29uZGFyeQogYWRkcmVzc2VzIGZvciBpcHY2CgpbIFVwc3RyZWFtIGNv bW1pdCBkYmMyYjVlOWEwOWU5YTY2NjQ2NzlhNjY3ZmY4MWNmZjZlNWYyNjQxIF0KCkNvbW1pdCAw Y2E1MGQxMmZlNDYgKCJzY3RwOiBmaXggc3JjIGFkZHJlc3Mgc2VsZWN0aW9uIGlmIHVzaW5nIHNl Y29uZGFyeQphZGRyZXNzZXMiKSBoYXMgZml4ZWQgYSBzcmMgYWRkcmVzcyBzZWxlY3Rpb24gaXNz dWUgd2hlbiB1c2luZyBzZWNvbmRhcnkKYWRkcmVzc2VzIGZvciBpcHY0LgoKTm93IHNjdHAgaXB2 NiBhbHNvIGhhcyB0aGUgc2ltaWxhciBpc3N1ZS4gV2hlbiB1c2luZyBhIHNlY29uZGFyeSBhZGRy ZXNzLApzY3RwX3Y2X2dldF9kc3QgdHJpZXMgdG8gY2hvb3NlIHRoZSBzYWRkciB3aGljaCBoYXMg dGhlIG1vc3Qgc2FtZSBiaXRzCndpdGggdGhlIGRhZGRyIGJ5IHNjdHBfdjZfYWRkcl9tYXRjaF9s ZW4uIEl0IG1heSBtYWtlIHNvbWUgY2FzZXMgbm90IHdvcmsKYXMgZXhwZWN0ZWQuCgpob3N0QToK ICBbMV0gZmQyMTozNTZiOjQ1OWE6Y2YxMDo6MTEgKGV0aDEpCiAgWzJdIGZkMjE6MzU2Yjo0NTlh OmNmMjA6OjExIChldGgyKQoKaG9zdEI6CiAgW2FdIGZkMjE6MzU2Yjo0NTlhOmNmMzA6OjIgIChl dGgxKQogIFtiXSBmZDIxOjM1NmI6NDU5YTpjZjQwOjoyICAoZXRoMikKCnJvdXRlIGZyb20gaG9z dEEgdG8gaG9zdEI6CiAgZmQyMTozNTZiOjQ1OWE6Y2YzMDo6LzY0IGRldiBldGgxICBtZXRyaWMg MTAyNCAgbXR1IDE1MDAKClRoZSBleHBlY3RlZCBwYXRoIHNob3VsZCBiZToKICBmZDIxOjM1NmI6 NDU5YTpjZjEwOjoxMSA8LT4gZmQyMTozNTZiOjQ1OWE6Y2YzMDo6MgpCdXQgYWRkclsyXSBtYXRj aGVzIGFkZHJbYV0gbW9yZSBiaXRzIHRoYW4gYWRkclsxXSBkb2VzLCBhY2NvcmRpbmcgdG8Kc2N0 cF92Nl9hZGRyX21hdGNoX2xlbi4gSXQgY2F1c2VzIHRoZSBwYXRoIHRvIGJlOgogIGZkMjE6MzU2 Yjo0NTlhOmNmMjA6OjExIDwtPiBmZDIxOjM1NmI6NDU5YTpjZjMwOjoyCgpUaGlzIHBhdGNoIGlz IHRvIGZpeCBpdCB3aXRoIHRoZSBzYW1lIHdheSBhcyBNYXJjZWxvJ3MgZml4IGZvciBzY3RwIGlw djQuCkFzIG5vIGlwX2Rldl9maW5kIGZvciBpcHY2LCB0aGlzIHBhdGNoIGlzIHRvIHVzZSBpcHY2 X2Noa19hZGRyIHRvIGNoZWNrCmlmIHRoZSBzYWRkciBpcyBpbiBhIGRldiBpbnN0ZWFkLgoKTm90 ZSB0aGF0IGZvciBiYWNrd2FyZHMgY29tcGF0aWJpbGl0eSwgaXQgd2lsbCBzdGlsbCBkbyB0aGUg YWRkcl9tYXRjaF9sZW4KY2hlY2sgaGVyZSB3aGVuIG5vIG9wdGltYWwgaXMgZm91bmQuCgpSZXBv cnRlZC1ieTogUGF0cmljayBUYWxiZXJ0IDxwdGFsYmVydEByZWRoYXQuY29tPgpTaWduZWQtb2Zm LWJ5OiBYaW4gTG9uZyA8bHVjaWVuLnhpbkBnbWFpbC5jb20+ClNpZ25lZC1vZmYtYnk6IERhdmlk IFMuIE1pbGxlciA8ZGF2ZW1AZGF2ZW1sb2Z0Lm5ldD4KLS0tCiBuZXQvc2N0cC9pcHY2LmMgfCA0 NiArKysrKysrKysrKysrKysrKysrKysrKysrKysrKy0tLS0tLS0tLS0tLS0tLS0tCiAxIGZpbGUg Y2hhbmdlZCwgMjkgaW5zZXJ0aW9ucygrKSwgMTcgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEv bmV0L3NjdHAvaXB2Ni5jIGIvbmV0L3NjdHAvaXB2Ni5jCmluZGV4IDk2MWVlNTkuLjE0MmI3MGUg MTAwNjQ0Ci0tLSBhL25ldC9zY3RwL2lwdjYuYworKysgYi9uZXQvc2N0cC9pcHY2LmMKQEAgLTI0 MCwxMiArMjQwLDEwIEBAIHN0YXRpYyB2b2lkIHNjdHBfdjZfZ2V0X2RzdChzdHJ1Y3Qgc2N0cF90 cmFuc3BvcnQgKnQsIHVuaW9uIHNjdHBfYWRkciAqc2FkZHIsCiAJc3RydWN0IHNjdHBfYmluZF9h ZGRyICpicDsKIAlzdHJ1Y3QgaXB2Nl9waW5mbyAqbnAgPSBpbmV0Nl9zayhzayk7CiAJc3RydWN0 IHNjdHBfc29ja2FkZHJfZW50cnkgKmxhZGRyOwotCXVuaW9uIHNjdHBfYWRkciAqYmFkZHIgPSBO VUxMOwogCXVuaW9uIHNjdHBfYWRkciAqZGFkZHIgPSAmdC0+aXBhZGRyOwogCXVuaW9uIHNjdHBf YWRkciBkc3Rfc2FkZHI7CiAJc3RydWN0IGluNl9hZGRyICpmaW5hbF9wLCBmaW5hbDsKIAlfX3U4 IG1hdGNobGVuID0gMDsKLQlfX3U4IGJtYXRjaGxlbjsKIAlzY3RwX3Njb3BlX3Qgc2NvcGU7CiAK IAltZW1zZXQoZmw2LCAwLCBzaXplb2Yoc3RydWN0IGZsb3dpNikpOwpAQCAtMzEyLDIzICszMTAs MzcgQEAgc3RhdGljIHZvaWQgc2N0cF92Nl9nZXRfZHN0KHN0cnVjdCBzY3RwX3RyYW5zcG9ydCAq dCwgdW5pb24gc2N0cF9hZGRyICpzYWRkciwKIAkgKi8KIAlyY3VfcmVhZF9sb2NrKCk7CiAJbGlz dF9mb3JfZWFjaF9lbnRyeV9yY3UobGFkZHIsICZicC0+YWRkcmVzc19saXN0LCBsaXN0KSB7Ci0J CWlmICghbGFkZHItPnZhbGlkKQorCQlzdHJ1Y3QgZHN0X2VudHJ5ICpiZHN0OworCQlfX3U4IGJt YXRjaGxlbjsKKworCQlpZiAoIWxhZGRyLT52YWxpZCB8fAorCQkgICAgbGFkZHItPnN0YXRlICE9 IFNDVFBfQUREUl9TUkMgfHwKKwkJICAgIGxhZGRyLT5hLnNhLnNhX2ZhbWlseSAhPSBBRl9JTkVU NiB8fAorCQkgICAgc2NvcGUgPiBzY3RwX3Njb3BlKCZsYWRkci0+YSkpCiAJCQljb250aW51ZTsK LQkJaWYgKChsYWRkci0+c3RhdGUgPT0gU0NUUF9BRERSX1NSQykgJiYKLQkJICAgIChsYWRkci0+ YS5zYS5zYV9mYW1pbHkgPT0gQUZfSU5FVDYpICYmCi0JCSAgICAoc2NvcGUgPD0gc2N0cF9zY29w ZSgmbGFkZHItPmEpKSkgewotCQkJYm1hdGNobGVuID0gc2N0cF92Nl9hZGRyX21hdGNoX2xlbihk YWRkciwgJmxhZGRyLT5hKTsKLQkJCWlmICghYmFkZHIgfHwgKG1hdGNobGVuIDwgYm1hdGNobGVu KSkgewotCQkJCWJhZGRyID0gJmxhZGRyLT5hOwotCQkJCW1hdGNobGVuID0gYm1hdGNobGVuOwot CQkJfQotCQl9Ci0JfQotCWlmIChiYWRkcikgewotCQlmbDYtPnNhZGRyID0gYmFkZHItPnY2LnNp bjZfYWRkcjsKLQkJZmw2LT5mbDZfc3BvcnQgPSBiYWRkci0+djYuc2luNl9wb3J0OworCisJCWZs Ni0+c2FkZHIgPSBsYWRkci0+YS52Ni5zaW42X2FkZHI7CisJCWZsNi0+Zmw2X3Nwb3J0ID0gbGFk ZHItPmEudjYuc2luNl9wb3J0OwogCQlmaW5hbF9wID0gZmw2X3VwZGF0ZV9kc3QoZmw2LCByY3Vf ZGVyZWZlcmVuY2UobnAtPm9wdCksICZmaW5hbCk7Ci0JCWRzdCA9IGlwNl9kc3RfbG9va3VwX2Zs b3coc2ssIGZsNiwgZmluYWxfcCk7CisJCWJkc3QgPSBpcDZfZHN0X2xvb2t1cF9mbG93KHNrLCBm bDYsIGZpbmFsX3ApOworCisJCWlmICghSVNfRVJSKGJkc3QpICYmCisJCSAgICBpcHY2X2Noa19h ZGRyKGRldl9uZXQoYmRzdC0+ZGV2KSwKKwkJCQkgICZsYWRkci0+YS52Ni5zaW42X2FkZHIsIGJk c3QtPmRldiwgMSkpIHsKKwkJCWlmICghSVNfRVJSX09SX05VTEwoZHN0KSkKKwkJCQlkc3RfcmVs ZWFzZShkc3QpOworCQkJZHN0ID0gYmRzdDsKKwkJCWJyZWFrOworCQl9CisKKwkJYm1hdGNobGVu ID0gc2N0cF92Nl9hZGRyX21hdGNoX2xlbihkYWRkciwgJmxhZGRyLT5hKTsKKwkJaWYgKG1hdGNo bGVuID4gYm1hdGNobGVuKQorCQkJY29udGludWU7CisKKwkJaWYgKCFJU19FUlJfT1JfTlVMTChk c3QpKQorCQkJZHN0X3JlbGVhc2UoZHN0KTsKKwkJZHN0ID0gYmRzdDsKKwkJbWF0Y2hsZW4gPSBi bWF0Y2hsZW47CiAJfQogCXJjdV9yZWFkX3VubG9jaygpOwogCi0tIAoyLjQuMTEKCgpGcm9tIDUw OTc5NjljYTFlMjVhMDJhNzAyY2VlNzhlMTE0NDM3NzY4NjI1MzcgTW9uIFNlcCAxNyAwMDowMDow MCAyMDAxCkZyb206IEVyaWMgRHVtYXpldCA8ZWR1bWF6ZXRAZ29vZ2xlLmNvbT4KRGF0ZTogV2Vk LCAxNyBNYXkgMjAxNyAwNzoxNjo0MCAtMDcwMApTdWJqZWN0OiBbUEFUQ0ggMTQvNDFdIHNjdHA6 IGRvIG5vdCBpbmhlcml0IGlwdjZfe21jfGFjfGZsfV9saXN0IGZyb20gcGFyZW50CgpbIFVwc3Ry ZWFtIGNvbW1pdCBmZGNlZTJjYmI4NDM4NzAyZWExYjMyOGZiNmUwYWM1ZTlhNDBjN2Y4IF0KClND VFAgbmVlZHMgZml4ZXMgc2ltaWxhciB0byA4M2VhZGRhYjQzNzggKCJpcHY2L2RjY3A6IGRvIG5v dCBpbmhlcml0CmlwdjZfbWNfbGlzdCBmcm9tIHBhcmVudCIpLCBvdGhlcndpc2UgYmFkIHRoaW5n cyBjYW4gaGFwcGVuLgoKU2lnbmVkLW9mZi1ieTogRXJpYyBEdW1hemV0IDxlZHVtYXpldEBnb29n bGUuY29tPgpSZXBvcnRlZC1ieTogQW5kcmV5IEtvbm92YWxvdiA8YW5kcmV5a252bEBnb29nbGUu Y29tPgpUZXN0ZWQtYnk6IEFuZHJleSBLb25vdmFsb3YgPGFuZHJleWtudmxAZ29vZ2xlLmNvbT4K U2lnbmVkLW9mZi1ieTogRGF2aWQgUy4gTWlsbGVyIDxkYXZlbUBkYXZlbWxvZnQubmV0PgotLS0K IG5ldC9zY3RwL2lwdjYuYyB8IDMgKysrCiAxIGZpbGUgY2hhbmdlZCwgMyBpbnNlcnRpb25zKCsp CgpkaWZmIC0tZ2l0IGEvbmV0L3NjdHAvaXB2Ni5jIGIvbmV0L3NjdHAvaXB2Ni5jCmluZGV4IDE0 MmI3MGUuLmY1YjQ1YjggMTAwNjQ0Ci0tLSBhL25ldC9zY3RwL2lwdjYuYworKysgYi9uZXQvc2N0 cC9pcHY2LmMKQEAgLTY3Nyw2ICs2NzcsOSBAQCBzdGF0aWMgc3RydWN0IHNvY2sgKnNjdHBfdjZf Y3JlYXRlX2FjY2VwdF9zayhzdHJ1Y3Qgc29jayAqc2ssCiAJbmV3bnAgPSBpbmV0Nl9zayhuZXdz ayk7CiAKIAltZW1jcHkobmV3bnAsIG5wLCBzaXplb2Yoc3RydWN0IGlwdjZfcGluZm8pKTsKKwlu ZXducC0+aXB2Nl9tY19saXN0ID0gTlVMTDsKKwluZXducC0+aXB2Nl9hY19saXN0ID0gTlVMTDsK KwluZXducC0+aXB2Nl9mbF9saXN0ID0gTlVMTDsKIAogCXJjdV9yZWFkX2xvY2soKTsKIAlvcHQg PSByY3VfZGVyZWZlcmVuY2UobnAtPm9wdCk7Ci0tIAoyLjQuMTEKCgpGcm9tIDkyMjZkYmZmZmZj NzQ4NWM3YzY0YTQ3OTlkNzAyOGM3ZWViN2M4ODkgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCkZy b206IERvdWdsYXMgQ2FldGFubyBkb3MgU2FudG9zIDxkb3VnbGFzY3NAdGFnaG9zLmNvbS5icj4K RGF0ZTogRnJpLCAxMiBNYXkgMjAxNyAxNToxOToxNSAtMDMwMApTdWJqZWN0OiBbUEFUQ0ggMTUv NDFdIG5ldC9wYWNrZXQ6IGZpeCBtaXNzaW5nIG5ldF9kZXZpY2UgcmVmZXJlbmNlIHJlbGVhc2UK ClsgVXBzdHJlYW0gY29tbWl0IGQxOWIxODNjZGMxZmEzZDcwZDZhYmUyYTRjMzY5ZTc0OGNkN2Vi YjggXQoKV2hlbiB1c2luZyBhIFRYIHJpbmcgYnVmZmVyLCBpZiBhbiBlcnJvciBvY2N1cnMgcHJv Y2Vzc2luZyBhIGNvbnRyb2wKbWVzc2FnZSAoZS5nLiBpbnZhbGlkIG1lc3NhZ2UpLCB0aGUgbmV0 X2RldmljZSByZWZlcmVuY2UgaXMgbm90CnJlbGVhc2VkLgoKRml4ZXMgYzE0YWM5NDUxYzM0OCAo InNvY2s6IGVuYWJsZSB0aW1lc3RhbXBpbmcgdXNpbmcgY29udHJvbCBtZXNzYWdlcyIpClNpZ25l ZC1vZmYtYnk6IERvdWdsYXMgQ2FldGFubyBkb3MgU2FudG9zIDxkb3VnbGFzY3NAdGFnaG9zLmNv bS5icj4KQWNrZWQtYnk6IFNvaGVpbCBIYXNzYXMgWWVnYW5laCA8c29oZWlsQGdvb2dsZS5jb20+ ClNpZ25lZC1vZmYtYnk6IERhdmlkIFMuIE1pbGxlciA8ZGF2ZW1AZGF2ZW1sb2Z0Lm5ldD4KLS0t CiBuZXQvcGFja2V0L2FmX3BhY2tldC5jIHwgMTQgKysrKysrKy0tLS0tLS0KIDEgZmlsZSBjaGFu Z2VkLCA3IGluc2VydGlvbnMoKyksIDcgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvbmV0L3Bh Y2tldC9hZl9wYWNrZXQuYyBiL25ldC9wYWNrZXQvYWZfcGFja2V0LmMKaW5kZXggZWE4MWNjZi4u YjJkOGU4YyAxMDA2NDQKLS0tIGEvbmV0L3BhY2tldC9hZl9wYWNrZXQuYworKysgYi9uZXQvcGFj a2V0L2FmX3BhY2tldC5jCkBAIC0yNjE0LDEzICsyNjE0LDYgQEAgc3RhdGljIGludCB0cGFja2V0 X3NuZChzdHJ1Y3QgcGFja2V0X3NvY2sgKnBvLCBzdHJ1Y3QgbXNnaGRyICptc2cpCiAJCWRldiA9 IGRldl9nZXRfYnlfaW5kZXgoc29ja19uZXQoJnBvLT5zayksIHNhZGRyLT5zbGxfaWZpbmRleCk7 CiAJfQogCi0Jc29ja2MudHNmbGFncyA9IHBvLT5zay5za190c2ZsYWdzOwotCWlmIChtc2ctPm1z Z19jb250cm9sbGVuKSB7Ci0JCWVyciA9IHNvY2tfY21zZ19zZW5kKCZwby0+c2ssIG1zZywgJnNv Y2tjKTsKLQkJaWYgKHVubGlrZWx5KGVycikpCi0JCQlnb3RvIG91dDsKLQl9Ci0KIAllcnIgPSAt RU5YSU87CiAJaWYgKHVubGlrZWx5KGRldiA9PSBOVUxMKSkKIAkJZ290byBvdXQ7CkBAIC0yNjI4 LDYgKzI2MjEsMTMgQEAgc3RhdGljIGludCB0cGFja2V0X3NuZChzdHJ1Y3QgcGFja2V0X3NvY2sg KnBvLCBzdHJ1Y3QgbXNnaGRyICptc2cpCiAJaWYgKHVubGlrZWx5KCEoZGV2LT5mbGFncyAmIElG Rl9VUCkpKQogCQlnb3RvIG91dF9wdXQ7CiAKKwlzb2NrYy50c2ZsYWdzID0gcG8tPnNrLnNrX3Rz ZmxhZ3M7CisJaWYgKG1zZy0+bXNnX2NvbnRyb2xsZW4pIHsKKwkJZXJyID0gc29ja19jbXNnX3Nl bmQoJnBvLT5zaywgbXNnLCAmc29ja2MpOworCQlpZiAodW5saWtlbHkoZXJyKSkKKwkJCWdvdG8g b3V0X3B1dDsKKwl9CisKIAlpZiAocG8tPnNrLnNrX3NvY2tldC0+dHlwZSA9PSBTT0NLX1JBVykK IAkJcmVzZXJ2ZSA9IGRldi0+aGFyZF9oZWFkZXJfbGVuOwogCXNpemVfbWF4ID0gcG8tPnR4X3Jp bmcuZnJhbWVfc2l6ZQotLSAKMi40LjExCgoKRnJvbSA4MjZhYjUzMzJhM2Y4ZjY0ZWU2Y2U0YzYw ODU4MWFmYTY5Y2VhZDU0IE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBHYWwgUHJlc3Nt YW4gPGdhbHBAbWVsbGFub3guY29tPgpEYXRlOiBNb24sIDMgQXByIDIwMTcgMTU6MTE6MjIgKzAz MDAKU3ViamVjdDogW1BBVENIIDE2LzQxXSBuZXQvbWx4NWU6IFVzZSB0aGUgY29ycmVjdCBwYXVz ZSB2YWx1ZXMgZm9yIGV0aHRvb2wKIGFkdmVydGlzaW5nCgpbIFVwc3RyZWFtIGNvbW1pdCBiMzgz YjU0NGYyNjY2ZDY3NDQ2Yjk1MWE5YTk3YWYyMzlkYWZlZDVkIF0KClF1ZXJ5IHRoZSBvcGVyYXRp b25hbCBwYXVzZSBmcm9tIGZpcm13YXJlIChQRkNDIHJlZ2lzdGVyKSBpbnN0ZWFkIG9mCmFsd2F5 cyBwYXNzaW5nIHplcm9zLgoKRml4ZXM6IDY2NWJjNTM5NjlkNyAoIm5ldC9tbHg1ZTogVXNlIG5l dyBldGh0b29sIGdldC9zZXQgbGluayBrc2V0dGluZ3MgQVBJIikKU2lnbmVkLW9mZi1ieTogR2Fs IFByZXNzbWFuIDxnYWxwQG1lbGxhbm94LmNvbT4KQ2M6IGtlcm5lbC10ZWFtQGZiLmNvbQpTaWdu ZWQtb2ZmLWJ5OiBTYWVlZCBNYWhhbWVlZCA8c2FlZWRtQG1lbGxhbm94LmNvbT4KLS0tCiBkcml2 ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvZW5fZXRodG9vbC5jIHwgNiArKysr Ky0KIDEgZmlsZSBjaGFuZ2VkLCA1IGluc2VydGlvbnMoKyksIDEgZGVsZXRpb24oLSkKCmRpZmYg LS1naXQgYS9kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvZW5fZXRodG9v bC5jIGIvZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2VuX2V0aHRvb2wu YwppbmRleCBhMDA0YTVhLi42OWJmZDhmIDEwMDY0NAotLS0gYS9kcml2ZXJzL25ldC9ldGhlcm5l dC9tZWxsYW5veC9tbHg1L2NvcmUvZW5fZXRodG9vbC5jCisrKyBiL2RyaXZlcnMvbmV0L2V0aGVy bmV0L21lbGxhbm94L21seDUvY29yZS9lbl9ldGh0b29sLmMKQEAgLTgyOCw2ICs4MjgsOCBAQCBz dGF0aWMgaW50IG1seDVlX2dldF9saW5rX2tzZXR0aW5ncyhzdHJ1Y3QgbmV0X2RldmljZSAqbmV0 ZGV2LAogCXN0cnVjdCBtbHg1ZV9wcml2ICpwcml2ICAgID0gbmV0ZGV2X3ByaXYobmV0ZGV2KTsK IAlzdHJ1Y3QgbWx4NV9jb3JlX2RldiAqbWRldiA9IHByaXYtPm1kZXY7CiAJdTMyIG91dFtNTFg1 X1NUX1NaX0RXKHB0eXNfcmVnKV0gPSB7MH07CisJdTMyIHJ4X3BhdXNlID0gMDsKKwl1MzIgdHhf cGF1c2UgPSAwOwogCXUzMiBldGhfcHJvdG9fY2FwOwogCXUzMiBldGhfcHJvdG9fYWRtaW47CiAJ dTMyIGV0aF9wcm90b19scDsKQEAgLTg1MCwxMSArODUyLDEzIEBAIHN0YXRpYyBpbnQgbWx4NWVf Z2V0X2xpbmtfa3NldHRpbmdzKHN0cnVjdCBuZXRfZGV2aWNlICpuZXRkZXYsCiAJYW5fZGlzYWJs ZV9hZG1pbiA9IE1MWDVfR0VUKHB0eXNfcmVnLCBvdXQsIGFuX2Rpc2FibGVfYWRtaW4pOwogCWFu X3N0YXR1cyAgICAgICAgPSBNTFg1X0dFVChwdHlzX3JlZywgb3V0LCBhbl9zdGF0dXMpOwogCisJ bWx4NV9xdWVyeV9wb3J0X3BhdXNlKG1kZXYsICZyeF9wYXVzZSwgJnR4X3BhdXNlKTsKKwogCWV0 aHRvb2xfbGlua19rc2V0dGluZ3NfemVyb19saW5rX21vZGUobGlua19rc2V0dGluZ3MsIHN1cHBv cnRlZCk7CiAJZXRodG9vbF9saW5rX2tzZXR0aW5nc196ZXJvX2xpbmtfbW9kZShsaW5rX2tzZXR0 aW5ncywgYWR2ZXJ0aXNpbmcpOwogCiAJZ2V0X3N1cHBvcnRlZChldGhfcHJvdG9fY2FwLCBsaW5r X2tzZXR0aW5ncyk7Ci0JZ2V0X2FkdmVydGlzaW5nKGV0aF9wcm90b19hZG1pbiwgMCwgMCwgbGlu a19rc2V0dGluZ3MpOworCWdldF9hZHZlcnRpc2luZyhldGhfcHJvdG9fYWRtaW4sIHR4X3BhdXNl LCByeF9wYXVzZSwgbGlua19rc2V0dGluZ3MpOwogCWdldF9zcGVlZF9kdXBsZXgobmV0ZGV2LCBl dGhfcHJvdG9fb3BlciwgbGlua19rc2V0dGluZ3MpOwogCiAJZXRoX3Byb3RvX29wZXIgPSBldGhf cHJvdG9fb3BlciA/IGV0aF9wcm90b19vcGVyIDogZXRoX3Byb3RvX2NhcDsKLS0gCjIuNC4xMQoK CkZyb20gZThkYzlhNDAxMjc2ODZiZTI4MzNkMDMyODlhZmJhYWYwODI3YWU1ZiBNb24gU2VwIDE3 IDAwOjAwOjAwIDIwMDEKRnJvbTogR2FsIFByZXNzbWFuIDxnYWxwQG1lbGxhbm94LmNvbT4KRGF0 ZTogV2VkLCAxOSBBcHIgMjAxNyAxNDozNToxNSArMDMwMApTdWJqZWN0OiBbUEFUQ0ggMTcvNDFd IG5ldC9tbHg1ZTogRml4IGV0aHRvb2wgcGF1c2Ugc3VwcG9ydCBhbmQgYWR2ZXJ0aXNlCiByZXBv cnRpbmcKClsgVXBzdHJlYW0gY29tbWl0IGUzYzE5NTAzNzEyZDYzNjAyMzliMTljMTRjZGVkNTZk ZDYzYzQwZDcgXQoKUGF1c2UgYml0IHNob3VsZCBzZXQgd2hlbiBSWCBwYXVzZSBpcyBvbiwgbm90 IFRYIHBhdXNlLgpBbHNvLCBzZXR0aW5nIEFzeW1fUGF1c2UgaXMgaW5jb3JyZWN0LCBhbmQgc2hv dWxkIGJlIHR1cm5lZCBvZmYuCgpGaXhlczogNjY1YmM1Mzk2OWQ3ICgibmV0L21seDVlOiBVc2Ug bmV3IGV0aHRvb2wgZ2V0L3NldCBsaW5rIGtzZXR0aW5ncyBBUEkiKQpTaWduZWQtb2ZmLWJ5OiBH YWwgUHJlc3NtYW4gPGdhbHBAbWVsbGFub3guY29tPgpDYzoga2VybmVsLXRlYW1AZmIuY29tClNp Z25lZC1vZmYtYnk6IFNhZWVkIE1haGFtZWVkIDxzYWVlZG1AbWVsbGFub3guY29tPgotLS0KIGRy aXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9lbl9ldGh0b29sLmMgfCAzICst LQogMSBmaWxlIGNoYW5nZWQsIDEgaW5zZXJ0aW9uKCspLCAyIGRlbGV0aW9ucygtKQoKZGlmZiAt LWdpdCBhL2RyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9lbl9ldGh0b29s LmMgYi9kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvZW5fZXRodG9vbC5j CmluZGV4IDY5YmZkOGYuLjk0OWZiYWQgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvbmV0L2V0aGVybmV0 L21lbGxhbm94L21seDUvY29yZS9lbl9ldGh0b29sLmMKKysrIGIvZHJpdmVycy9uZXQvZXRoZXJu ZXQvbWVsbGFub3gvbWx4NS9jb3JlL2VuX2V0aHRvb2wuYwpAQCAtNzczLDcgKzc3Myw2IEBAIHN0 YXRpYyB2b2lkIGdldF9zdXBwb3J0ZWQodTMyIGV0aF9wcm90b19jYXAsCiAJcHR5czJldGh0b29s X3N1cHBvcnRlZF9wb3J0KGxpbmtfa3NldHRpbmdzLCBldGhfcHJvdG9fY2FwKTsKIAlwdHlzMmV0 aHRvb2xfc3VwcG9ydGVkX2xpbmsoc3VwcG9ydGVkLCBldGhfcHJvdG9fY2FwKTsKIAlldGh0b29s X2xpbmtfa3NldHRpbmdzX2FkZF9saW5rX21vZGUobGlua19rc2V0dGluZ3MsIHN1cHBvcnRlZCwg UGF1c2UpOwotCWV0aHRvb2xfbGlua19rc2V0dGluZ3NfYWRkX2xpbmtfbW9kZShsaW5rX2tzZXR0 aW5ncywgc3VwcG9ydGVkLCBBc3ltX1BhdXNlKTsKIH0KIAogc3RhdGljIHZvaWQgZ2V0X2FkdmVy dGlzaW5nKHUzMiBldGhfcHJvdG9fY2FwLCB1OCB0eF9wYXVzZSwKQEAgLTc4Myw3ICs3ODIsNyBA QCBzdGF0aWMgdm9pZCBnZXRfYWR2ZXJ0aXNpbmcodTMyIGV0aF9wcm90b19jYXAsIHU4IHR4X3Bh dXNlLAogCXVuc2lnbmVkIGxvbmcgKmFkdmVydGlzaW5nID0gbGlua19rc2V0dGluZ3MtPmxpbmtf bW9kZXMuYWR2ZXJ0aXNpbmc7CiAKIAlwdHlzMmV0aHRvb2xfYWR2ZXJfbGluayhhZHZlcnRpc2lu ZywgZXRoX3Byb3RvX2NhcCk7Ci0JaWYgKHR4X3BhdXNlKQorCWlmIChyeF9wYXVzZSkKIAkJZXRo dG9vbF9saW5rX2tzZXR0aW5nc19hZGRfbGlua19tb2RlKGxpbmtfa3NldHRpbmdzLCBhZHZlcnRp c2luZywgUGF1c2UpOwogCWlmICh0eF9wYXVzZSBeIHJ4X3BhdXNlKQogCQlldGh0b29sX2xpbmtf a3NldHRpbmdzX2FkZF9saW5rX21vZGUobGlua19rc2V0dGluZ3MsIGFkdmVydGlzaW5nLCBBc3lt X1BhdXNlKTsKLS0gCjIuNC4xMQoKCkZyb20gZjE1Y2IwZDRkNjczYjY3ZDFiM2RhZTBhZjFhMTE5 MmY5ODdhYzg2OSBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJvbTogU29oZWlsIEhhc3NhcyBZ ZWdhbmVoIDxzb2hlaWxAZ29vZ2xlLmNvbT4KRGF0ZTogTW9uLCAxNSBNYXkgMjAxNyAxNzowNTo0 NyAtMDQwMApTdWJqZWN0OiBbUEFUQ0ggMTgvNDFdIHRjcDogZWxpbWluYXRlIG5lZ2F0aXZlIHJl b3JkZXJpbmcgaW4KIHRjcF9jbGVhbl9ydHhfcXVldWUKClsgVXBzdHJlYW0gY29tbWl0IGJhZmJi OWM3MzI0MTc2MDAyM2Q4OTgxMTkxZGRkMzBiYjFjNmRiYWMgXQoKdGNwX2FjaygpIGNhbiBjYWxs IHRjcF9mcmFnbWVudCgpIHdoaWNoIG1heSBkZWRlZHVjdCB0aGUKdmFsdWUgdHAtPmZhY2tldHNf b3V0IHdoZW4gTVNTIGNoYW5nZXMuIFdoZW4gcHJpb3JfZmFja2V0cwppcyBsYXJnZXIgdGhhbiB0 cC0+ZmFja2V0c19vdXQsIHRjcF9jbGVhbl9ydHhfcXVldWUoKSBjYW4KaW52b2tlIHRjcF91cGRh dGVfcmVvcmRlcmluZygpIHdpdGggbmVnYXRpdmUgdmFsdWVzLiBUaGlzCnJlc3VsdHMgaW4gYWJz dXJkIHRwLT5yZW9kZXJpbmcgdmFsdWVzIGhpZ2hlciB0aGFuCnN5c2N0bF90Y3BfbWF4X3Jlb3Jk ZXJpbmcuCgpOb3RlIHRoYXQgdGNwX3VwZGF0ZV9yZW9yZGVyaW5nIGluZGVlZHMgc2V0cyB0cC0+ cmVvcmRlcmluZwp0byBtaW4oc3lzY3RsX3RjcF9tYXhfcmVvcmRlcmluZywgbWV0cmljKSwgYnV0 IGJlY2F1c2UKdGhlIGNvbXBhcmlzb24gaXMgc2lnbmVkLCBhIG5lZ2F0aXZlIG1ldHJpYyBhbHdh eXMgd2lucy4KCkZpeGVzOiBjN2NhZjhkM2VkN2EgKCJbVENQXTogRml4IHJlb3JkIGRldGVjdGlv biBkdWUgdG8gc25kX3VuYSBjb3ZlcmVkIGhvbGVzIikKUmVwb3J0ZWQtYnk6IFJlYmVjY2EgSXNh YWNzIDxyaXNhYWNzQGdvb2dsZS5jb20+ClNpZ25lZC1vZmYtYnk6IFNvaGVpbCBIYXNzYXMgWWVn YW5laCA8c29oZWlsQGdvb2dsZS5jb20+ClNpZ25lZC1vZmYtYnk6IE5lYWwgQ2FyZHdlbGwgPG5j YXJkd2VsbEBnb29nbGUuY29tPgpTaWduZWQtb2ZmLWJ5OiBZdWNodW5nIENoZW5nIDx5Y2hlbmdA Z29vZ2xlLmNvbT4KU2lnbmVkLW9mZi1ieTogRXJpYyBEdW1hemV0IDxlZHVtYXpldEBnb29nbGUu Y29tPgpTaWduZWQtb2ZmLWJ5OiBEYXZpZCBTLiBNaWxsZXIgPGRhdmVtQGRhdmVtbG9mdC5uZXQ+ Ci0tLQogbmV0L2lwdjQvdGNwX2lucHV0LmMgfCAyICstCiAxIGZpbGUgY2hhbmdlZCwgMSBpbnNl cnRpb24oKyksIDEgZGVsZXRpb24oLSkKCmRpZmYgLS1naXQgYS9uZXQvaXB2NC90Y3BfaW5wdXQu YyBiL25ldC9pcHY0L3RjcF9pbnB1dC5jCmluZGV4IGI3MmIwNjEuLjg5NmEwNDUgMTAwNjQ0Ci0t LSBhL25ldC9pcHY0L3RjcF9pbnB1dC5jCisrKyBiL25ldC9pcHY0L3RjcF9pbnB1dC5jCkBAIC0z MTg5LDcgKzMxODksNyBAQCBzdGF0aWMgaW50IHRjcF9jbGVhbl9ydHhfcXVldWUoc3RydWN0IHNv Y2sgKnNrLCBpbnQgcHJpb3JfZmFja2V0cywKIAkJCWludCBkZWx0YTsKIAogCQkJLyogTm9uLXJl dHJhbnNtaXR0ZWQgaG9sZSBnb3QgZmlsbGVkPyBUaGF0J3MgcmVvcmRlcmluZyAqLwotCQkJaWYg KHJlb3JkIDwgcHJpb3JfZmFja2V0cykKKwkJCWlmIChyZW9yZCA8IHByaW9yX2ZhY2tldHMgJiYg cmVvcmQgPD0gdHAtPmZhY2tldHNfb3V0KQogCQkJCXRjcF91cGRhdGVfcmVvcmRlcmluZyhzaywg dHAtPmZhY2tldHNfb3V0IC0gcmVvcmQsIDApOwogCiAJCQlkZWx0YSA9IHRjcF9pc19mYWNrKHRw KSA/IHBrdHNfYWNrZWQgOgotLSAKMi40LjExCgoKRnJvbSA2NWY3MDE3MzM0OGFlMTVlMTdmNTE5 MDA3ZDIzNTUyMGZkZGQzY2MzIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBVcnN1bGEg QnJhdW4gPHVicmF1bkBsaW51eC52bmV0LmlibS5jb20+CkRhdGU6IE1vbiwgMTUgTWF5IDIwMTcg MTc6MzM6MzcgKzAyMDAKU3ViamVjdDogW1BBVENIIDE5LzQxXSBzbWM6IHN3aXRjaCB0byB1c2Fn ZSBvZiBJQl9QRF9VTlNBRkVfR0xPQkFMX1JLRVkKClsgVXBzdHJlYW0gY29tbWl0IDI2M2VlYzli MmE4MmU4Njk3ZDA2NDcwOTQxNDkxNGI1YjEwYWM1MzggXQoKQ3VycmVudGx5LCBTTUMgZW5hYmxl cyByZW1vdGUgYWNjZXNzIHRvIHBoeXNpY2FsIG1lbW9yeSB3aGVuIGEgdXNlcgpoYXMgc3VjY2Vz c2Z1bGx5IGNvbmZpZ3VyZWQgYW5kIGVzdGFibGlzaGVkIGFuIFNNQy1jb25uZWN0aW9uIHVudGls IHRlbgptaW51dGVzIGFmdGVyIHRoZSBsYXN0IFNNQyBjb25uZWN0aW9uIGlzIGNsb3NlZC4gQmVj YXVzZSB0aGlzIGlzIGNvbnNpZGVyZWQKYSBzZWN1cml0eSByaXNrLCBkcml2ZXJzIGFyZSBzdXBw b3NlZCB0byB1c2UgSUJfUERfVU5TQUZFX0dMT0JBTF9SS0VZIGluCnN1Y2ggYSBjYXNlLgoKVGhp cyBwYXRjaCBjaGFuZ2VzIHRoZSBjdXJyZW50IFNNQyBjb2RlIHRvIHVzZSBJQl9QRF9VTlNBRkVf R0xPQkFMX1JLRVkuClRoaXMgaW1wcm92ZXMgdXNlciBhd2FyZW5lc3MsIGJ1dCBkb2VzIG5vdCBy ZW1vdmUgdGhlIHNlY3VyaXR5IHJpc2sgaXRzZWxmLgoKU2lnbmVkLW9mZi1ieTogVXJzdWxhIEJy YXVuIDx1YnJhdW5AbGludXgudm5ldC5pYm0uY29tPgpTaWduZWQtb2ZmLWJ5OiBEYXZpZCBTLiBN aWxsZXIgPGRhdmVtQGRhdmVtbG9mdC5uZXQ+Ci0tLQogbmV0L3NtYy9zbWNfY2xjLmMgIHwgIDQg KystLQogbmV0L3NtYy9zbWNfY29yZS5jIHwgMTYgKysrLS0tLS0tLS0tLS0tLQogbmV0L3NtYy9z bWNfY29yZS5oIHwgIDIgKy0KIG5ldC9zbWMvc21jX2liLmMgICB8IDIxICsrLS0tLS0tLS0tLS0t LS0tLS0tLQogbmV0L3NtYy9zbWNfaWIuaCAgIHwgIDIgLS0KIDUgZmlsZXMgY2hhbmdlZCwgOCBp bnNlcnRpb25zKCspLCAzNyBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9uZXQvc21jL3NtY19j bGMuYyBiL25ldC9zbWMvc21jX2NsYy5jCmluZGV4IGU0MWY1OTQuLjAzZWMwNTggMTAwNjQ0Ci0t LSBhL25ldC9zbWMvc21jX2NsYy5jCisrKyBiL25ldC9zbWMvc21jX2NsYy5jCkBAIC0yMDQsNyAr MjA0LDcgQEAgaW50IHNtY19jbGNfc2VuZF9jb25maXJtKHN0cnVjdCBzbWNfc29jayAqc21jKQog CW1lbWNweSgmY2NsYy5sY2wubWFjLCAmbGluay0+c21jaWJkZXYtPm1hY1tsaW5rLT5pYnBvcnQg LSAxXSwgRVRIX0FMRU4pOwogCWh0b24yNChjY2xjLnFwbiwgbGluay0+cm9jZV9xcC0+cXBfbnVt KTsKIAljY2xjLnJtYl9ya2V5ID0KLQkJaHRvbmwoY29ubi0+cm1iX2Rlc2MtPm1yX3J4W1NNQ19T SU5HTEVfTElOS10tPnJrZXkpOworCQlodG9ubChjb25uLT5ybWJfZGVzYy0+cmtleVtTTUNfU0lO R0xFX0xJTktdKTsKIAljY2xjLmNvbm5faWR4ID0gMTsgLyogZm9yIG5vdzogMSBSTUIgPSAxIFJN QkUgKi8KIAljY2xjLnJtYmVfYWxlcnRfdG9rZW4gPSBodG9ubChjb25uLT5hbGVydF90b2tlbl9s b2NhbCk7CiAJY2NsYy5xcF9tdHUgPSBtaW4obGluay0+cGF0aF9tdHUsIGxpbmstPnBlZXJfbXR1 KTsKQEAgLTI1Niw3ICsyNTYsNyBAQCBpbnQgc21jX2NsY19zZW5kX2FjY2VwdChzdHJ1Y3Qgc21j X3NvY2sgKm5ld19zbWMsIGludCBzcnZfZmlyc3RfY29udGFjdCkKIAltZW1jcHkoJmFjbGMubGNs Lm1hYywgbGluay0+c21jaWJkZXYtPm1hY1tsaW5rLT5pYnBvcnQgLSAxXSwgRVRIX0FMRU4pOwog CWh0b24yNChhY2xjLnFwbiwgbGluay0+cm9jZV9xcC0+cXBfbnVtKTsKIAlhY2xjLnJtYl9ya2V5 ID0KLQkJaHRvbmwoY29ubi0+cm1iX2Rlc2MtPm1yX3J4W1NNQ19TSU5HTEVfTElOS10tPnJrZXkp OworCQlodG9ubChjb25uLT5ybWJfZGVzYy0+cmtleVtTTUNfU0lOR0xFX0xJTktdKTsKIAlhY2xj LmNvbm5faWR4ID0gMTsJCQkvKiBhcyBsb25nIGFzIDEgUk1CID0gMSBSTUJFICovCiAJYWNsYy5y bWJlX2FsZXJ0X3Rva2VuID0gaHRvbmwoY29ubi0+YWxlcnRfdG9rZW5fbG9jYWwpOwogCWFjbGMu cXBfbXR1ID0gbGluay0+cGF0aF9tdHU7CmRpZmYgLS1naXQgYS9uZXQvc21jL3NtY19jb3JlLmMg Yi9uZXQvc21jL3NtY19jb3JlLmMKaW5kZXggMGVhYzYzMy4uODhjYmI4YSAxMDA2NDQKLS0tIGEv bmV0L3NtYy9zbWNfY29yZS5jCisrKyBiL25ldC9zbWMvc21jX2NvcmUuYwpAQCAtNjEzLDE5ICs2 MTMsOCBAQCBpbnQgc21jX3JtYl9jcmVhdGUoc3RydWN0IHNtY19zb2NrICpzbWMpCiAJCQlybWJf ZGVzYyA9IE5VTEw7CiAJCQljb250aW51ZTsgLyogaWYgbWFwcGluZyBmYWlsZWQsIHRyeSBzbWFs bGVyIG9uZSAqLwogCQl9Ci0JCXJjID0gc21jX2liX2dldF9tZW1vcnlfcmVnaW9uKGxnci0+bG5r W1NNQ19TSU5HTEVfTElOS10ucm9jZV9wZCwKLQkJCQkJICAgICAgSUJfQUNDRVNTX1JFTU9URV9X UklURSB8Ci0JCQkJCSAgICAgIElCX0FDQ0VTU19MT0NBTF9XUklURSwKLQkJCQkJICAgICAmcm1i X2Rlc2MtPm1yX3J4W1NNQ19TSU5HTEVfTElOS10pOwotCQlpZiAocmMpIHsKLQkJCXNtY19pYl9i dWZfdW5tYXAobGdyLT5sbmtbU01DX1NJTkdMRV9MSU5LXS5zbWNpYmRldiwKLQkJCQkJIHRtcF9i dWZzaXplLCBybWJfZGVzYywKLQkJCQkJIERNQV9GUk9NX0RFVklDRSk7Ci0JCQlrZnJlZShybWJf ZGVzYy0+Y3B1X2FkZHIpOwotCQkJa2ZyZWUocm1iX2Rlc2MpOwotCQkJcm1iX2Rlc2MgPSBOVUxM OwotCQkJY29udGludWU7Ci0JCX0KKwkJcm1iX2Rlc2MtPnJrZXlbU01DX1NJTkdMRV9MSU5LXSA9 CisJCQlsZ3ItPmxua1tTTUNfU0lOR0xFX0xJTktdLnJvY2VfcGQtPnVuc2FmZV9nbG9iYWxfcmtl eTsKIAkJcm1iX2Rlc2MtPnVzZWQgPSAxOwogCQl3cml0ZV9sb2NrX2JoKCZsZ3ItPnJtYnNfbG9j ayk7CiAJCWxpc3RfYWRkKCZybWJfZGVzYy0+bGlzdCwKQEAgLTY2OCw2ICs2NTcsNyBAQCBpbnQg c21jX3JtYl9ydG9rZW5faGFuZGxpbmcoc3RydWN0IHNtY19jb25uZWN0aW9uICpjb25uLAogCiAJ Zm9yIChpID0gMDsgaSA8IFNNQ19STUJTX1BFUl9MR1JfTUFYOyBpKyspIHsKIAkJaWYgKChsZ3It PnJ0b2tlbnNbaV1bU01DX1NJTkdMRV9MSU5LXS5ya2V5ID09IHJrZXkpICYmCisJCSAgICAobGdy LT5ydG9rZW5zW2ldW1NNQ19TSU5HTEVfTElOS10uZG1hX2FkZHIgPT0gZG1hX2FkZHIpICYmCiAJ CSAgICB0ZXN0X2JpdChpLCBsZ3ItPnJ0b2tlbnNfdXNlZF9tYXNrKSkgewogCQkJY29ubi0+cnRv a2VuX2lkeCA9IGk7CiAJCQlyZXR1cm4gMDsKZGlmZiAtLWdpdCBhL25ldC9zbWMvc21jX2NvcmUu aCBiL25ldC9zbWMvc21jX2NvcmUuaAppbmRleCAyN2ViMzgwNS4uYjAxM2NiNCAxMDA2NDQKLS0t IGEvbmV0L3NtYy9zbWNfY29yZS5oCisrKyBiL25ldC9zbWMvc21jX2NvcmUuaApAQCAtOTMsNyAr OTMsNyBAQCBzdHJ1Y3Qgc21jX2J1Zl9kZXNjIHsKIAl1NjQJCQlkbWFfYWRkcltTTUNfTElOS1Nf UEVSX0xHUl9NQVhdOwogCQkJCQkJLyogbWFwcGVkIGFkZHJlc3Mgb2YgYnVmZmVyICovCiAJdm9p ZAkJCSpjcHVfYWRkcjsJLyogdmlydHVhbCBhZGRyZXNzIG9mIGJ1ZmZlciAqLwotCXN0cnVjdCBp Yl9tcgkJKm1yX3J4W1NNQ19MSU5LU19QRVJfTEdSX01BWF07CisJdTMyCQkJcmtleVtTTUNfTElO S1NfUEVSX0xHUl9NQVhdOwogCQkJCQkJLyogZm9yIHJtYiBvbmx5OgogCQkJCQkJICogcmtleSBw cm92aWRlZCB0byBwZWVyCiAJCQkJCQkgKi8KZGlmZiAtLWdpdCBhL25ldC9zbWMvc21jX2liLmMg Yi9uZXQvc21jL3NtY19pYi5jCmluZGV4IGU2NzQzYzAuLjUxZTVmMDEgMTAwNjQ0Ci0tLSBhL25l dC9zbWMvc21jX2liLmMKKysrIGIvbmV0L3NtYy9zbWNfaWIuYwpAQCAtMzcsMjQgKzM3LDYgQEAg dTggbG9jYWxfc3lzdGVtaWRbU01DX1NZU1RFTUlEX0xFTl0gPSBTTUNfTE9DQUxfU1lTVEVNSURf UkVTRVQ7CS8qIHVuaXF1ZSBzeXN0ZW0KIAkJCQkJCQkJICogaWRlbnRpZmllcgogCQkJCQkJCQkg Ki8KIAotaW50IHNtY19pYl9nZXRfbWVtb3J5X3JlZ2lvbihzdHJ1Y3QgaWJfcGQgKnBkLCBpbnQg YWNjZXNzX2ZsYWdzLAotCQkJICAgICBzdHJ1Y3QgaWJfbXIgKiptcikKLXsKLQlpbnQgcmM7Ci0K LQlpZiAoKm1yKQotCQlyZXR1cm4gMDsgLyogYWxyZWFkeSBkb25lICovCi0KLQkvKiBvYnRhaW4g dW5pcXVlIGtleSAtCi0JICogbmV4dCBpbnZvY2F0aW9uIG9mIGdldF9kbWFfbXIgcmV0dXJucyBh IGRpZmZlcmVudCBrZXkhCi0JICovCi0JKm1yID0gcGQtPmRldmljZS0+Z2V0X2RtYV9tcihwZCwg YWNjZXNzX2ZsYWdzKTsKLQlyYyA9IFBUUl9FUlJfT1JfWkVSTygqbXIpOwotCWlmIChJU19FUlIo Km1yKSkKLQkJKm1yID0gTlVMTDsKLQlyZXR1cm4gcmM7Ci19Ci0KIHN0YXRpYyBpbnQgc21jX2li X21vZGlmeV9xcF9pbml0KHN0cnVjdCBzbWNfbGluayAqbG5rKQogewogCXN0cnVjdCBpYl9xcF9h dHRyIHFwX2F0dHI7CkBAIC0yMTMsNyArMTk1LDggQEAgaW50IHNtY19pYl9jcmVhdGVfcHJvdGVj dGlvbl9kb21haW4oc3RydWN0IHNtY19saW5rICpsbmspCiB7CiAJaW50IHJjOwogCi0JbG5rLT5y b2NlX3BkID0gaWJfYWxsb2NfcGQobG5rLT5zbWNpYmRldi0+aWJkZXYsIDApOworCWxuay0+cm9j ZV9wZCA9IGliX2FsbG9jX3BkKGxuay0+c21jaWJkZXYtPmliZGV2LAorCQkJCSAgIElCX1BEX1VO U0FGRV9HTE9CQUxfUktFWSk7CiAJcmMgPSBQVFJfRVJSX09SX1pFUk8obG5rLT5yb2NlX3BkKTsK IAlpZiAoSVNfRVJSKGxuay0+cm9jZV9wZCkpCiAJCWxuay0+cm9jZV9wZCA9IE5VTEw7CmRpZmYg LS1naXQgYS9uZXQvc21jL3NtY19pYi5oIGIvbmV0L3NtYy9zbWNfaWIuaAppbmRleCBhOTVmNzRi Li5jZGUyMTI2IDEwMDY0NAotLS0gYS9uZXQvc21jL3NtY19pYi5oCisrKyBiL25ldC9zbWMvc21j X2liLmgKQEAgLTYwLDggKzYwLDYgQEAgdm9pZCBzbWNfaWJfZGVhbGxvY19wcm90ZWN0aW9uX2Rv bWFpbihzdHJ1Y3Qgc21jX2xpbmsgKmxuayk7CiBpbnQgc21jX2liX2NyZWF0ZV9wcm90ZWN0aW9u X2RvbWFpbihzdHJ1Y3Qgc21jX2xpbmsgKmxuayk7CiB2b2lkIHNtY19pYl9kZXN0cm95X3F1ZXVl X3BhaXIoc3RydWN0IHNtY19saW5rICpsbmspOwogaW50IHNtY19pYl9jcmVhdGVfcXVldWVfcGFp cihzdHJ1Y3Qgc21jX2xpbmsgKmxuayk7Ci1pbnQgc21jX2liX2dldF9tZW1vcnlfcmVnaW9uKHN0 cnVjdCBpYl9wZCAqcGQsIGludCBhY2Nlc3NfZmxhZ3MsCi0JCQkgICAgIHN0cnVjdCBpYl9tciAq Km1yKTsKIGludCBzbWNfaWJfcmVhZHlfbGluayhzdHJ1Y3Qgc21jX2xpbmsgKmxuayk7CiBpbnQg c21jX2liX21vZGlmeV9xcF9ydHMoc3RydWN0IHNtY19saW5rICpsbmspOwogaW50IHNtY19pYl9t b2RpZnlfcXBfcmVzZXQoc3RydWN0IHNtY19saW5rICpsbmspOwotLSAKMi40LjExCgoKRnJvbSBm OTUyODIyODdmZTE2MzEwYzlhMjU2ZDhiOTRjNTNiN2RlODdlYjRiIE1vbiBTZXAgMTcgMDA6MDA6 MDAgMjAwMQpGcm9tOiBDaHJpc3RvcGggSGVsbHdpZyA8aGNoQGxzdC5kZT4KRGF0ZTogVHVlLCAx NiBNYXkgMjAxNyAwOTo1MTozOCArMDMwMApTdWJqZWN0OiBbUEFUQ0ggMjAvNDFdIG5ldC9zbWM6 IEFkZCB3YXJuaW5nIGFib3V0IHJlbW90ZSBtZW1vcnkgZXhwb3N1cmUKClsgVXBzdHJlYW0gY29t bWl0IDE5YTBmN2UzN2MwNzYxYTBhMWNiZjU1MDcwNWE2MDYzYzk2NzUyMjMgXQoKVGhlIGRyaXZl ciBleHBsaWNpdGx5IGJ5cGFzc2VzIEFQSXMgdG8gcmVnaXN0ZXIgYWxsIG1lbW9yeSBvbmNlIGEK Y29ubmVjdGlvbiBpcyBtYWRlLCBhbmQgdGh1cyBhbGxvd3MgcmVtb3RlIGFjY2VzcyB0byBtZW1v cnkuCgpTaWduZWQtb2ZmLWJ5OiBDaHJpc3RvcGggSGVsbHdpZyA8aGNoQGxzdC5kZT4KU2lnbmVk LW9mZi1ieTogTGVvbiBSb21hbm92c2t5IDxsZW9uQGtlcm5lbC5vcmc+CkFja2VkLWJ5OiBVcnN1 bGEgQnJhdW4gPHVicmF1bkBsaW51eC52bmV0LmlibS5jb20+ClNpZ25lZC1vZmYtYnk6IERhdmlk IFMuIE1pbGxlciA8ZGF2ZW1AZGF2ZW1sb2Z0Lm5ldD4KLS0tCiBuZXQvc21jL0tjb25maWcgfCA0 ICsrKysKIDEgZmlsZSBjaGFuZ2VkLCA0IGluc2VydGlvbnMoKykKCmRpZmYgLS1naXQgYS9uZXQv c21jL0tjb25maWcgYi9uZXQvc21jL0tjb25maWcKaW5kZXggYzcxN2VmMC4uMzM5NTQ4NSAxMDA2 NDQKLS0tIGEvbmV0L3NtYy9LY29uZmlnCisrKyBiL25ldC9zbWMvS2NvbmZpZwpAQCAtOCw2ICs4 LDEwIEBAIGNvbmZpZyBTTUMKIAkgIFRoZSBMaW51eCBpbXBsZW1lbnRhdGlvbiBvZiB0aGUgU01D LVIgc29sdXRpb24gaXMgZGVzaWduZWQgYXMKIAkgIGEgc2VwYXJhdGUgc29ja2V0IGZhbWlseSBT TUMuCiAKKwkgIFdhcm5pbmc6IFNNQyB3aWxsIGV4cG9zZSBhbGwgbWVtb3J5IGZvciByZW1vdGUg cmVhZHMgYW5kIHdyaXRlcworCSAgb25jZSBhIGNvbm5lY3Rpb24gaXMgZXN0YWJsaXNoZWQuICBE b24ndCBlbmFibGUgdGhpcyBvcHRpb24gZXhjZXB0CisJICBmb3IgdGlnaHRseSBjb250cm9sbGVk IGxhYiBlbnZpcm9ubWVudC4KKwogCSAgU2VsZWN0IHRoaXMgb3B0aW9uIGlmIHlvdSB3YW50IHRv IHJ1biBTTUMgc29ja2V0IGFwcGxpY2F0aW9ucwogCiBjb25maWcgU01DX0RJQUcKLS0gCjIuNC4x MQoKCkZyb20gNDJhMWU2YTc3ZjQ2YmM3OGU5Zjg1NzM2MTYzMGI2ZWQwMjkxYmFhMiBNb24gU2Vw IDE3IDAwOjAwOjAwIDIwMDEKRnJvbTogRGF2aWQgQWhlcm4gPGRzYWhlcm5AZ21haWwuY29tPgpE YXRlOiBNb24sIDE1IE1heSAyMDE3IDIzOjE5OjE3IC0wNzAwClN1YmplY3Q6IFtQQVRDSCAyMS80 MV0gbmV0OiBJbXByb3ZlIGhhbmRsaW5nIG9mIGZhaWx1cmVzIG9uIGxpbmsgYW5kIHJvdXRlCiBk dW1wcwoKWyBVcHN0cmVhbSBjb21taXQgZjZjNTc3NWZmMGJmYTYyYjA3MmZhY2U2YmYxZDQwZjY1 OWYxOTRiMiBdCgpJbiBnZW5lcmFsLCBydG5ldGxpbmsgZHVtcHMgZG8gbm90IGFudGljaXBhdGUg ZmFpbHVyZSB0byBkdW1wIGEgc2luZ2xlCm9iamVjdCAoZS5nLiwgbGluayBvciByb3V0ZSkgb24g YSBzaW5nbGUgcGFzcy4gQXMgYm90aCByb3V0ZSBhbmQgbGluawpvYmplY3RzIGhhdmUgZ3Jvd24g dmlhIG1vcmUgYXR0cmlidXRlcywgdGhhdCBpcyBubyBsb25nZXIgYSBnaXZlbi4KCm5ldGxpbmsg ZHVtcHMgY2FuIGhhbmRsZSBhIGZhaWx1cmUgaWYgdGhlIGR1bXAgZnVuY3Rpb24gcmV0dXJucyBh bgplcnJvcjsgc3BlY2lmaWNhbGx5LCBuZXRsaW5rX2R1bXAgYWRkcyB0aGUgcmV0dXJuIGNvZGUg dG8gdGhlIHJlc3BvbnNlCmlmIGl0IGlzIDw9IDAgc28gdXNlcnNwYWNlIGlzIG5vdGlmaWVkIG9m IHRoZSBmYWlsdXJlLiBUaGUgbWlzc2luZwpwaWVjZSBpcyB0aGUgcnRuZXRsaW5rIGR1bXAgZnVu Y3Rpb25zIHJldHVybmluZyB0aGUgZXJyb3IuCgpGaXggcm91dGUgYW5kIGxpbmsgZHVtcCBmdW5j dGlvbnMgdG8gcmV0dXJuIHRoZSBlcnJvcnMgaWYgbm8gb2JqZWN0IGlzCmFkZGVkIHRvIGFuIHNr YiAoZGV0ZWN0ZWQgYnkgc2tiLT5sZW4gIT0gMCkuIElQdjYgcm91dGUgZHVtcHMKKHJ0Nl9kdW1w X3JvdXRlKSBhbHJlYWR5IHJldHVybiB0aGUgZXJyb3I7IHRoaXMgcGF0Y2ggdXBkYXRlcyBJUHY0 IGFuZApsaW5rIGR1bXBzLiBPdGhlciBkdW1wIGZ1bmN0aW9ucyBtYXkgbmVlZCB0byBiZSBhanVz dGVkIGFzIHdlbGwuCgpSZXBvcnRlZC1ieTogSmFuIE1vc2t5dG8gTWF0ZWprYSA8bXFAdWN3LmN6 PgpTaWduZWQtb2ZmLWJ5OiBEYXZpZCBBaGVybiA8ZHNhaGVybkBnbWFpbC5jb20+ClNpZ25lZC1v ZmYtYnk6IERhdmlkIFMuIE1pbGxlciA8ZGF2ZW1AZGF2ZW1sb2Z0Lm5ldD4KLS0tCiBuZXQvY29y ZS9ydG5ldGxpbmsuYyAgICB8IDM2ICsrKysrKysrKysrKysrKysrKysrKysrKy0tLS0tLS0tLS0t LQogbmV0L2lwdjQvZmliX2Zyb250ZW5kLmMgfCAxNSArKysrKysrKysrKy0tLS0KIG5ldC9pcHY0 L2ZpYl90cmllLmMgICAgIHwgMjYgKysrKysrKysrKysrKystLS0tLS0tLS0tLS0KIDMgZmlsZXMg Y2hhbmdlZCwgNDkgaW5zZXJ0aW9ucygrKSwgMjggZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEv bmV0L2NvcmUvcnRuZXRsaW5rLmMgYi9uZXQvY29yZS9ydG5ldGxpbmsuYwppbmRleCA2OWRhZjM5 Li44ZDRhMTg1IDEwMDY0NAotLS0gYS9uZXQvY29yZS9ydG5ldGxpbmsuYworKysgYi9uZXQvY29y ZS9ydG5ldGxpbmsuYwpAQCAtMTYyMCwxMyArMTYyMCwxMyBAQCBzdGF0aWMgaW50IHJ0bmxfZHVt cF9pZmluZm8oc3RydWN0IHNrX2J1ZmYgKnNrYiwgc3RydWN0IG5ldGxpbmtfY2FsbGJhY2sgKmNi KQogCQkJCQkgICAgICAgY2ItPm5saC0+bmxtc2dfc2VxLCAwLAogCQkJCQkgICAgICAgZmxhZ3Ms CiAJCQkJCSAgICAgICBleHRfZmlsdGVyX21hc2spOwotCQkJLyogSWYgd2UgcmFuIG91dCBvZiBy b29tIG9uIHRoZSBmaXJzdCBtZXNzYWdlLAotCQkJICogd2UncmUgaW4gdHJvdWJsZQotCQkJICov Ci0JCQlXQVJOX09OKChlcnIgPT0gLUVNU0dTSVpFKSAmJiAoc2tiLT5sZW4gPT0gMCkpOwogCi0J CQlpZiAoZXJyIDwgMCkKLQkJCQlnb3RvIG91dDsKKwkJCWlmIChlcnIgPCAwKSB7CisJCQkJaWYg KGxpa2VseShza2ItPmxlbikpCisJCQkJCWdvdG8gb3V0OworCisJCQkJZ290byBvdXRfZXJyOwor CQkJfQogCiAJCQlubF9kdW1wX2NoZWNrX2NvbnNpc3RlbnQoY2IsIG5sbXNnX2hkcihza2IpKTsK IGNvbnQ6CkBAIC0xNjM0LDEwICsxNjM0LDEyIEBAIHN0YXRpYyBpbnQgcnRubF9kdW1wX2lmaW5m byhzdHJ1Y3Qgc2tfYnVmZiAqc2tiLCBzdHJ1Y3QgbmV0bGlua19jYWxsYmFjayAqY2IpCiAJCX0K IAl9CiBvdXQ6CisJZXJyID0gc2tiLT5sZW47CitvdXRfZXJyOgogCWNiLT5hcmdzWzFdID0gaWR4 OwogCWNiLT5hcmdzWzBdID0gaDsKIAotCXJldHVybiBza2ItPmxlbjsKKwlyZXR1cm4gZXJyOwog fQogCiBpbnQgcnRubF9ubGFfcGFyc2VfaWZsYShzdHJ1Y3QgbmxhdHRyICoqdGIsIGNvbnN0IHN0 cnVjdCBubGF0dHIgKmhlYWQsIGludCBsZW4pCkBAIC0zNDI3LDggKzM0MjksMTIgQEAgc3RhdGlj IGludCBydG5sX2JyaWRnZV9nZXRsaW5rKHN0cnVjdCBza19idWZmICpza2IsIHN0cnVjdCBuZXRs aW5rX2NhbGxiYWNrICpjYikKIAkJCQllcnIgPSBicl9kZXYtPm5ldGRldl9vcHMtPm5kb19icmlk Z2VfZ2V0bGluaygKIAkJCQkJCXNrYiwgcG9ydGlkLCBzZXEsIGRldiwKIAkJCQkJCWZpbHRlcl9t YXNrLCBOTE1fRl9NVUxUSSk7Ci0JCQkJaWYgKGVyciA8IDAgJiYgZXJyICE9IC1FT1BOT1RTVVBQ KQotCQkJCQlicmVhazsKKwkJCQlpZiAoZXJyIDwgMCAmJiBlcnIgIT0gLUVPUE5PVFNVUFApIHsK KwkJCQkJaWYgKGxpa2VseShza2ItPmxlbikpCisJCQkJCQlicmVhazsKKworCQkJCQlnb3RvIG91 dF9lcnI7CisJCQkJfQogCQkJfQogCQkJaWR4Kys7CiAJCX0KQEAgLTM0MzksMTYgKzM0NDUsMjIg QEAgc3RhdGljIGludCBydG5sX2JyaWRnZV9nZXRsaW5rKHN0cnVjdCBza19idWZmICpza2IsIHN0 cnVjdCBuZXRsaW5rX2NhbGxiYWNrICpjYikKIAkJCQkJCQkgICAgICBzZXEsIGRldiwKIAkJCQkJ CQkgICAgICBmaWx0ZXJfbWFzaywKIAkJCQkJCQkgICAgICBOTE1fRl9NVUxUSSk7Ci0JCQkJaWYg KGVyciA8IDAgJiYgZXJyICE9IC1FT1BOT1RTVVBQKQotCQkJCQlicmVhazsKKwkJCQlpZiAoZXJy IDwgMCAmJiBlcnIgIT0gLUVPUE5PVFNVUFApIHsKKwkJCQkJaWYgKGxpa2VseShza2ItPmxlbikp CisJCQkJCQlicmVhazsKKworCQkJCQlnb3RvIG91dF9lcnI7CisJCQkJfQogCQkJfQogCQkJaWR4 Kys7CiAJCX0KIAl9CisJZXJyID0gc2tiLT5sZW47CitvdXRfZXJyOgogCXJjdV9yZWFkX3VubG9j aygpOwogCWNiLT5hcmdzWzBdID0gaWR4OwogCi0JcmV0dXJuIHNrYi0+bGVuOworCXJldHVybiBl cnI7CiB9CiAKIHN0YXRpYyBpbmxpbmUgc2l6ZV90IGJyaWRnZV9ubG1zZ19zaXplKHZvaWQpCmRp ZmYgLS1naXQgYS9uZXQvaXB2NC9maWJfZnJvbnRlbmQuYyBiL25ldC9pcHY0L2ZpYl9mcm9udGVu ZC5jCmluZGV4IDhmMjEzM2YuLmEyZjdkZTIgMTAwNjQ0Ci0tLSBhL25ldC9pcHY0L2ZpYl9mcm9u dGVuZC5jCisrKyBiL25ldC9pcHY0L2ZpYl9mcm9udGVuZC5jCkBAIC03NjAsNyArNzYwLDcgQEAg c3RhdGljIGludCBpbmV0X2R1bXBfZmliKHN0cnVjdCBza19idWZmICpza2IsIHN0cnVjdCBuZXRs aW5rX2NhbGxiYWNrICpjYikKIAl1bnNpZ25lZCBpbnQgZSA9IDAsIHNfZTsKIAlzdHJ1Y3QgZmli X3RhYmxlICp0YjsKIAlzdHJ1Y3QgaGxpc3RfaGVhZCAqaGVhZDsKLQlpbnQgZHVtcGVkID0gMDsK KwlpbnQgZHVtcGVkID0gMCwgZXJyOwogCiAJaWYgKG5sbXNnX2xlbihjYi0+bmxoKSA+PSBzaXpl b2Yoc3RydWN0IHJ0bXNnKSAmJgogCSAgICAoKHN0cnVjdCBydG1zZyAqKSBubG1zZ19kYXRhKGNi LT5ubGgpKS0+cnRtX2ZsYWdzICYgUlRNX0ZfQ0xPTkVEKQpAQCAtNzgwLDIwICs3ODAsMjcgQEAg c3RhdGljIGludCBpbmV0X2R1bXBfZmliKHN0cnVjdCBza19idWZmICpza2IsIHN0cnVjdCBuZXRs aW5rX2NhbGxiYWNrICpjYikKIAkJCWlmIChkdW1wZWQpCiAJCQkJbWVtc2V0KCZjYi0+YXJnc1sy XSwgMCwgc2l6ZW9mKGNiLT5hcmdzKSAtCiAJCQkJCQkgMiAqIHNpemVvZihjYi0+YXJnc1swXSkp OwotCQkJaWYgKGZpYl90YWJsZV9kdW1wKHRiLCBza2IsIGNiKSA8IDApCi0JCQkJZ290byBvdXQ7 CisJCQllcnIgPSBmaWJfdGFibGVfZHVtcCh0Yiwgc2tiLCBjYik7CisJCQlpZiAoZXJyIDwgMCkg eworCQkJCWlmIChsaWtlbHkoc2tiLT5sZW4pKQorCQkJCQlnb3RvIG91dDsKKworCQkJCWdvdG8g b3V0X2VycjsKKwkJCX0KIAkJCWR1bXBlZCA9IDE7CiBuZXh0OgogCQkJZSsrOwogCQl9CiAJfQog b3V0OgorCWVyciA9IHNrYi0+bGVuOworb3V0X2VycjoKIAlyY3VfcmVhZF91bmxvY2soKTsKIAog CWNiLT5hcmdzWzFdID0gZTsKIAljYi0+YXJnc1swXSA9IGg7CiAKLQlyZXR1cm4gc2tiLT5sZW47 CisJcmV0dXJuIGVycjsKIH0KIAogLyogUHJlcGFyZSBhbmQgZmVlZCBpbnRyYS1rZXJuZWwgcm91 dGluZyByZXF1ZXN0LgpkaWZmIC0tZ2l0IGEvbmV0L2lwdjQvZmliX3RyaWUuYyBiL25ldC9pcHY0 L2ZpYl90cmllLmMKaW5kZXggMmYwZDgyMy4uMDg3MDlmYiAxMDA2NDQKLS0tIGEvbmV0L2lwdjQv ZmliX3RyaWUuYworKysgYi9uZXQvaXB2NC9maWJfdHJpZS5jCkBAIC0yMDc5LDYgKzIwNzksOCBA QCBzdGF0aWMgaW50IGZuX3RyaWVfZHVtcF9sZWFmKHN0cnVjdCBrZXlfdmVjdG9yICpsLCBzdHJ1 Y3QgZmliX3RhYmxlICp0YiwKIAogCS8qIHJjdV9yZWFkX2xvY2sgaXMgaG9sZCBieSBjYWxsZXIg Ki8KIAlobGlzdF9mb3JfZWFjaF9lbnRyeV9yY3UoZmEsICZsLT5sZWFmLCBmYV9saXN0KSB7CisJ CWludCBlcnI7CisKIAkJaWYgKGkgPCBzX2kpIHsKIAkJCWkrKzsKIAkJCWNvbnRpbnVlOwpAQCAt MjA4OSwxNyArMjA5MSwxNCBAQCBzdGF0aWMgaW50IGZuX3RyaWVfZHVtcF9sZWFmKHN0cnVjdCBr ZXlfdmVjdG9yICpsLCBzdHJ1Y3QgZmliX3RhYmxlICp0YiwKIAkJCWNvbnRpbnVlOwogCQl9CiAK LQkJaWYgKGZpYl9kdW1wX2luZm8oc2tiLCBORVRMSU5LX0NCKGNiLT5za2IpLnBvcnRpZCwKLQkJ CQkgIGNiLT5ubGgtPm5sbXNnX3NlcSwKLQkJCQkgIFJUTV9ORVdST1VURSwKLQkJCQkgIHRiLT50 Yl9pZCwKLQkJCQkgIGZhLT5mYV90eXBlLAotCQkJCSAgeGtleSwKLQkJCQkgIEtFWUxFTkdUSCAt IGZhLT5mYV9zbGVuLAotCQkJCSAgZmEtPmZhX3RvcywKLQkJCQkgIGZhLT5mYV9pbmZvLCBOTE1f Rl9NVUxUSSkgPCAwKSB7CisJCWVyciA9IGZpYl9kdW1wX2luZm8oc2tiLCBORVRMSU5LX0NCKGNi LT5za2IpLnBvcnRpZCwKKwkJCQkgICAgY2ItPm5saC0+bmxtc2dfc2VxLCBSVE1fTkVXUk9VVEUs CisJCQkJICAgIHRiLT50Yl9pZCwgZmEtPmZhX3R5cGUsCisJCQkJICAgIHhrZXksIEtFWUxFTkdU SCAtIGZhLT5mYV9zbGVuLAorCQkJCSAgICBmYS0+ZmFfdG9zLCBmYS0+ZmFfaW5mbywgTkxNX0Zf TVVMVEkpOworCQlpZiAoZXJyIDwgMCkgewogCQkJY2ItPmFyZ3NbNF0gPSBpOwotCQkJcmV0dXJu IC0xOworCQkJcmV0dXJuIGVycjsKIAkJfQogCQlpKys7CiAJfQpAQCAtMjEyMSwxMCArMjEyMCwx MyBAQCBpbnQgZmliX3RhYmxlX2R1bXAoc3RydWN0IGZpYl90YWJsZSAqdGIsIHN0cnVjdCBza19i dWZmICpza2IsCiAJdF9rZXkga2V5ID0gY2ItPmFyZ3NbM107CiAKIAl3aGlsZSAoKGwgPSBsZWFm X3dhbGtfcmN1KCZ0cCwga2V5KSkgIT0gTlVMTCkgewotCQlpZiAoZm5fdHJpZV9kdW1wX2xlYWYo bCwgdGIsIHNrYiwgY2IpIDwgMCkgeworCQlpbnQgZXJyOworCisJCWVyciA9IGZuX3RyaWVfZHVt cF9sZWFmKGwsIHRiLCBza2IsIGNiKTsKKwkJaWYgKGVyciA8IDApIHsKIAkJCWNiLT5hcmdzWzNd ID0ga2V5OwogCQkJY2ItPmFyZ3NbMl0gPSBjb3VudDsKLQkJCXJldHVybiAtMTsKKwkJCXJldHVy biBlcnI7CiAJCX0KIAogCQkrK2NvdW50OwotLSAKMi40LjExCgoKRnJvbSA4MmU3NGYzZWU2ZmFk MTZiYzAyYTliYTFhYjIxODI0ZTY4YjY3YmM0IE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9t OiBDcmFpZyBHYWxsZWsgPGtyYWlnQGdvb2dsZS5jb20+CkRhdGU6IFR1ZSwgMTYgTWF5IDIwMTcg MTQ6MzY6MjMgLTA0MDAKU3ViamVjdDogW1BBVENIIDIyLzQxXSBpcHY2OiBQcmV2ZW50IG92ZXJy dW4gd2hlbiBwYXJzaW5nIHY2IGhlYWRlciBvcHRpb25zCgpbIFVwc3RyZWFtIGNvbW1pdCAyNDIz NDk2YWYzNWQ5NGE4NzE1NmIwNjNlYTVjZWRmZmMxMGE3MGExIF0KClRoZSBLQVNBTiB3YXJuaW5n IHJlcG90ZWQgYmVsb3cgd2FzIGRpc2NvdmVyZWQgd2l0aCBhIHN5emthbGxlcgpwcm9ncmFtLiAg VGhlIHJlcHJvZHVjZXIgaXMgYmFzaWNhbGx5OgogIGludCBzID0gc29ja2V0KEFGX0lORVQ2LCBT T0NLX1JBVywgTkVYVEhEUl9IT1ApOwogIHNlbmQocywgJm9uZV9ieXRlX29mX2RhdGEsIDEsIE1T R19NT1JFKTsKICBzZW5kKHMsICZtb3JlX3RoYW5fbXR1X2J5dGVzX2RhdGEsIDIwMDAsIDApOwoK VGhlIHNvY2tldCgpIGNhbGwgc2V0cyB0aGUgbmV4dGhkciBmaWVsZCBvZiB0aGUgdjYgaGVhZGVy IHRvCk5FWFRIRFJfSE9QLCB0aGUgZmlyc3Qgc2VuZCBjYWxsIHByaW1lcyB0aGUgcGF5bG9hZCB3 aXRoIGEgbm9uIHplcm8KYnl0ZSBvZiBkYXRhLCBhbmQgdGhlIHNlY29uZCBzZW5kIGNhbGwgdHJp Z2dlcnMgdGhlIGZyYWdtZW50YXRpb24gcGF0aC4KClRoZSBmcmFnbWVudGF0aW9uIGNvZGUgdHJp ZXMgdG8gcGFyc2UgdGhlIGhlYWRlciBvcHRpb25zIGluIG9yZGVyCnRvIGZpZ3VyZSBvdXQgd2hl cmUgdG8gaW5zZXJ0IHRoZSBmcmFnbWVudCBvcHRpb24uICBTaW5jZSBuZXh0aGRyIHBvaW50cwp0 byBhbiBpbnZhbGlkIG9wdGlvbiwgdGhlIGNhbGN1bGF0aW9uIG9mIHRoZSBzaXplIG9mIHRoZSBu ZXR3b3JrIGhlYWRlcgpjYW4gbWFkZSB0byBiZSBtdWNoIGxhcmdlciB0aGFuIHRoZSBsaW5lYXIg c2VjdGlvbiBvZiB0aGUgc2tiIGFuZCBkYXRhCmlzIHJlYWQgb3V0c2lkZSBvZiBpdC4KClRoaXMg Zml4IG1ha2VzIGlwNl9maW5kXzFzdGZyYWcgcmV0dXJuIGFuIGVycm9yIGlmIGl0IGRldGVjdHMK cnVubmluZyBvdXQtb2YtYm91bmRzLgoKWyAgIDQyLjM2MTQ4N10gPT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ClsgICA0Mi4z NjQ0MTJdIEJVRzogS0FTQU46IHNsYWItb3V0LW9mLWJvdW5kcyBpbiBpcDZfZnJhZ21lbnQrMHgx MWM4LzB4MzczMApbICAgNDIuMzY1NDcxXSBSZWFkIG9mIHNpemUgODQwIGF0IGFkZHIgZmZmZjg4 MDAwOTY5ZTc5OCBieSB0YXNrIGlwNl9mcmFnbWVudC1vby8zNzg5ClsgICA0Mi4zNjY0NjldClsg ICA0Mi4zNjY2OTZdIENQVTogMSBQSUQ6IDM3ODkgQ29tbTogaXA2X2ZyYWdtZW50LW9vIE5vdCB0 YWludGVkIDQuMTEuMCsgIzQxClsgICA0Mi4zNjc2MjhdIEhhcmR3YXJlIG5hbWU6IFFFTVUgU3Rh bmRhcmQgUEMgKGk0NDBGWCArIFBJSVgsIDE5OTYpLCBCSU9TIDEuMTAuMS0xdWJ1bnR1MSAwNC8w MS8yMDE0ClsgICA0Mi4zNjg4MjRdIENhbGwgVHJhY2U6ClsgICA0Mi4zNjkxODNdICBkdW1wX3N0 YWNrKzB4YjMvMHgxMGIKWyAgIDQyLjM2OTY2NF0gIHByaW50X2FkZHJlc3NfZGVzY3JpcHRpb24r MHg3My8weDI5MApbICAgNDIuMzcwMzI1XSAga2FzYW5fcmVwb3J0KzB4MjUyLzB4MzcwClsgICA0 Mi4zNzA4MzldICA/IGlwNl9mcmFnbWVudCsweDExYzgvMHgzNzMwClsgICA0Mi4zNzEzOTZdICBj aGVja19tZW1vcnlfcmVnaW9uKzB4MTNjLzB4MWEwClsgICA0Mi4zNzE5NzhdICBtZW1jcHkrMHgy My8weDUwClsgICA0Mi4zNzIzOTVdICBpcDZfZnJhZ21lbnQrMHgxMWM4LzB4MzczMApbICAgNDIu MzcyOTIwXSAgPyBuZl9jdF9leHBlY3RfdW5yZWdpc3Rlcl9ub3RpZmllcisweDExMC8weDExMApb ICAgNDIuMzczNjgxXSAgPyBpcDZfY29weV9tZXRhZGF0YSsweDdmMC8weDdmMApbICAgNDIuMzc0 MjYzXSAgPyBpcDZfZm9yd2FyZCsweDJlMzAvMHgyZTMwClsgICA0Mi4zNzQ4MDNdICBpcDZfZmlu aXNoX291dHB1dCsweDU4NC8weDk5MApbICAgNDIuMzc1MzUwXSAgaXA2X291dHB1dCsweDFiNy8w eDY5MApbICAgNDIuMzc1ODM2XSAgPyBpcDZfZmluaXNoX291dHB1dCsweDk5MC8weDk5MApbICAg NDIuMzc2NDExXSAgPyBpcDZfZnJhZ21lbnQrMHgzNzMwLzB4MzczMApbICAgNDIuMzc2OTY4XSAg aXA2X2xvY2FsX291dCsweDk1LzB4MTYwClsgICA0Mi4zNzc0NzFdICBpcDZfc2VuZF9za2IrMHhh MS8weDMzMApbICAgNDIuMzc3OTY5XSAgaXA2X3B1c2hfcGVuZGluZ19mcmFtZXMrMHhiMy8weGUw ClsgICA0Mi4zNzg1ODldICByYXd2Nl9zZW5kbXNnKzB4MjA1MS8weDJkYjAKWyAgIDQyLjM3OTEy OV0gID8gcmF3djZfYmluZCsweDhiMC8weDhiMApbICAgNDIuMzc5NjMzXSAgPyBfY29weV9mcm9t X3VzZXIrMHg4NC8weGUwClsgICA0Mi4zODAxOTNdICA/IGRlYnVnX2NoZWNrX25vX2xvY2tzX2Zy ZWVkKzB4MjkwLzB4MjkwClsgICA0Mi4zODA4NzhdICA/IF9fX3N5c19zZW5kbXNnKzB4MTYyLzB4 OTMwClsgICA0Mi4zODE0MjddICA/IHJjdV9yZWFkX2xvY2tfc2NoZWRfaGVsZCsweGEzLzB4MTIw ClsgICA0Mi4zODIwNzRdICA/IHNvY2tfaGFzX3Blcm0rMHgxZjYvMHgyOTAKWyAgIDQyLjM4MjYx NF0gID8gX19fc3lzX3NlbmRtc2crMHgxNjcvMHg5MzAKWyAgIDQyLjM4MzE3M10gID8gbG9ja19k b3duZ3JhZGUrMHg2NjAvMHg2NjAKWyAgIDQyLjM4MzcyN10gIGluZXRfc2VuZG1zZysweDEyMy8w eDUwMApbICAgNDIuMzg0MjI2XSAgPyBpbmV0X3NlbmRtc2crMHgxMjMvMHg1MDAKWyAgIDQyLjM4 NDc0OF0gID8gaW5ldF9yZWN2bXNnKzB4NTQwLzB4NTQwClsgICA0Mi4zODUyNjNdICBzb2NrX3Nl bmRtc2crMHhjYS8weDExMApbICAgNDIuMzg1NzU4XSAgU1lTQ19zZW5kdG8rMHgyMTcvMHgzODAK WyAgIDQyLjM4NjI0OV0gID8gU1lTQ19jb25uZWN0KzB4MzEwLzB4MzEwClsgICA0Mi4zODY3ODNd ICA/IF9fbWlnaHRfZmF1bHQrMHgxMTAvMHgxZDAKWyAgIDQyLjM4NzMyNF0gID8gbG9ja19kb3du Z3JhZGUrMHg2NjAvMHg2NjAKWyAgIDQyLjM4Nzg4MF0gID8gX19mZ2V0X2xpZ2h0KzB4YTEvMHgx ZjAKWyAgIDQyLjM4ODQwM10gID8gX19mZGdldCsweDE4LzB4MjAKWyAgIDQyLjM4ODg1MV0gID8g c29ja19jb21tb25fc2V0c29ja29wdCsweDk1LzB4ZDAKWyAgIDQyLjM4OTQ3Ml0gID8gU3lTX3Nl dHNvY2tvcHQrMHgxN2YvMHgyNjAKWyAgIDQyLjM5MDAyMV0gID8gZW50cnlfU1lTQ0FMTF82NF9m YXN0cGF0aCsweDUvMHhiZQpbICAgNDIuMzkwNjUwXSAgU3lTX3NlbmR0bysweDQwLzB4NTAKWyAg IDQyLjM5MTEwM10gIGVudHJ5X1NZU0NBTExfNjRfZmFzdHBhdGgrMHgxZi8weGJlClsgICA0Mi4z OTE3MzFdIFJJUDogMDAzMzoweDdmYmJiNzExZTM4MwpbICAgNDIuMzkyMjE3XSBSU1A6IDAwMmI6 MDAwMDdmZmZmNGQzNGYyOCBFRkxBR1M6IDAwMDAwMjQ2IE9SSUdfUkFYOiAwMDAwMDAwMDAwMDAw MDJjClsgICA0Mi4zOTMyMzVdIFJBWDogZmZmZmZmZmZmZmZmZmZkYSBSQlg6IDAwMDAwMDAwMDAw MDAwMDAgUkNYOiAwMDAwN2ZiYmI3MTFlMzgzClsgICA0Mi4zOTQxOTVdIFJEWDogMDAwMDAwMDAw MDAwMTAwMCBSU0k6IDAwMDA3ZmZmZjRkMzRmNjAgUkRJOiAwMDAwMDAwMDAwMDAwMDAzClsgICA0 Mi4zOTUxNDVdIFJCUDogMDAwMDAwMDAwMDAwMDA0NiBSMDg6IDAwMDA3ZmZmZjRkMzRmNDAgUjA5 OiAwMDAwMDAwMDAwMDAwMDE4ClsgICA0Mi4zOTYwNTZdIFIxMDogMDAwMDAwMDAwMDAwMDAwMCBS MTE6IDAwMDAwMDAwMDAwMDAyNDYgUjEyOiAwMDAwMDAwMDAwNDAwYWFkClsgICA0Mi4zOTY1OThd IFIxMzogMDAwMDAwMDAwMDAwMDA2NiBSMTQ6IDAwMDA3ZmZmZjRkMzRlZTAgUjE1OiAwMDAwN2Zi YmI3MTdhZjAwClsgICA0Mi4zOTcyNTddClsgICA0Mi4zOTc0MTFdIEFsbG9jYXRlZCBieSB0YXNr IDM3ODk6ClsgICA0Mi4zOTc3MDJdICBzYXZlX3N0YWNrX3RyYWNlKzB4MTYvMHgyMApbICAgNDIu Mzk4MDA1XSAgc2F2ZV9zdGFjaysweDQ2LzB4ZDAKWyAgIDQyLjM5ODI2N10gIGthc2FuX2ttYWxs b2MrMHhhZC8weGUwClsgICA0Mi4zOTg1NDhdICBrYXNhbl9zbGFiX2FsbG9jKzB4MTIvMHgyMApb ICAgNDIuMzk4ODQ4XSAgX19rbWFsbG9jX25vZGVfdHJhY2tfY2FsbGVyKzB4Y2IvMHgzODAKWyAg IDQyLjM5OTIyNF0gIF9fa21hbGxvY19yZXNlcnZlLmlzcmEuMzIrMHg0MS8weGUwClsgICA0Mi4z OTk2NTRdICBfX2FsbG9jX3NrYisweGY4LzB4NTgwClsgICA0Mi40MDAwMDNdICBzb2NrX3dtYWxs b2MrMHhhYi8weGYwClsgICA0Mi40MDAzNDZdICBfX2lwNl9hcHBlbmRfZGF0YS5pc3JhLjQxKzB4 MjQ3Mi8weDMzZDAKWyAgIDQyLjQwMDgxM10gIGlwNl9hcHBlbmRfZGF0YSsweDFhOC8weDJmMApb ICAgNDIuNDAxMTIyXSAgcmF3djZfc2VuZG1zZysweDExZWUvMHgyZGIwClsgICA0Mi40MDE1MDVd ICBpbmV0X3NlbmRtc2crMHgxMjMvMHg1MDAKWyAgIDQyLjQwMTg2MF0gIHNvY2tfc2VuZG1zZysw eGNhLzB4MTEwClsgICA0Mi40MDIyMDldICBfX19zeXNfc2VuZG1zZysweDdjYi8weDkzMApbICAg NDIuNDAyNTgyXSAgX19zeXNfc2VuZG1zZysweGQ5LzB4MTkwClsgICA0Mi40MDI5NDFdICBTeVNf c2VuZG1zZysweDJkLzB4NTAKWyAgIDQyLjQwMzI3M10gIGVudHJ5X1NZU0NBTExfNjRfZmFzdHBh dGgrMHgxZi8weGJlClsgICA0Mi40MDM3MThdClsgICA0Mi40MDM4NzFdIEZyZWVkIGJ5IHRhc2sg MTc5NDoKWyAgIDQyLjQwNDE0Nl0gIHNhdmVfc3RhY2tfdHJhY2UrMHgxNi8weDIwClsgICA0Mi40 MDQ1MTVdICBzYXZlX3N0YWNrKzB4NDYvMHhkMApbICAgNDIuNDA0ODI3XSAga2FzYW5fc2xhYl9m cmVlKzB4NzIvMHhjMApbICAgNDIuNDA1MTY3XSAga2ZyZWUrMHhlOC8weDJiMApbICAgNDIuNDA1 NDYyXSAgc2tiX2ZyZWVfaGVhZCsweDc0LzB4YjAKWyAgIDQyLjQwNTgwNl0gIHNrYl9yZWxlYXNl X2RhdGErMHgzMGUvMHgzYTAKWyAgIDQyLjQwNjE5OF0gIHNrYl9yZWxlYXNlX2FsbCsweDRhLzB4 NjAKWyAgIDQyLjQwNjU2M10gIGNvbnN1bWVfc2tiKzB4MTEzLzB4MmUwClsgICA0Mi40MDY5MTBd ICBza2JfZnJlZV9kYXRhZ3JhbSsweDFhLzB4ZTAKWyAgIDQyLjQwNzI4OF0gIG5ldGxpbmtfcmVj dm1zZysweDYwZC8weGU0MApbICAgNDIuNDA3NjY3XSAgc29ja19yZWN2bXNnKzB4ZDcvMHgxMTAK WyAgIDQyLjQwODAyMl0gIF9fX3N5c19yZWN2bXNnKzB4MjVjLzB4NTgwClsgICA0Mi40MDgzOTVd ICBfX3N5c19yZWN2bXNnKzB4ZDYvMHgxOTAKWyAgIDQyLjQwODc1M10gIFN5U19yZWN2bXNnKzB4 MmQvMHg1MApbICAgNDIuNDA5MDg2XSAgZW50cnlfU1lTQ0FMTF82NF9mYXN0cGF0aCsweDFmLzB4 YmUKWyAgIDQyLjQwOTUxM10KWyAgIDQyLjQwOTY2NV0gVGhlIGJ1Z2d5IGFkZHJlc3MgYmVsb25n cyB0byB0aGUgb2JqZWN0IGF0IGZmZmY4ODAwMDk2OWU3ODAKWyAgIDQyLjQwOTY2NV0gIHdoaWNo IGJlbG9uZ3MgdG8gdGhlIGNhY2hlIGttYWxsb2MtNTEyIG9mIHNpemUgNTEyClsgICA0Mi40MTA4 NDZdIFRoZSBidWdneSBhZGRyZXNzIGlzIGxvY2F0ZWQgMjQgYnl0ZXMgaW5zaWRlIG9mClsgICA0 Mi40MTA4NDZdICA1MTItYnl0ZSByZWdpb24gW2ZmZmY4ODAwMDk2OWU3ODAsIGZmZmY4ODAwMDk2 OWU5ODApClsgICA0Mi40MTE5NDFdIFRoZSBidWdneSBhZGRyZXNzIGJlbG9uZ3MgdG8gdGhlIHBh Z2U6ClsgICA0Mi40MTI0MDVdIHBhZ2U6ZmZmZmVhMDAwMDI1YTc4MCBjb3VudDoxIG1hcGNvdW50 OjAgbWFwcGluZzogICAgICAgICAgKG51bGwpIGluZGV4OjB4MCBjb21wb3VuZF9tYXBjb3VudDog MApbICAgNDIuNDEzMjk4XSBmbGFnczogMHgxMDAwMDAwMDAwMDgxMDAoc2xhYnxoZWFkKQpbICAg NDIuNDEzNzI5XSByYXc6IDAxMDAwMDAwMDAwMDgxMDAgMDAwMDAwMDAwMDAwMDAwMCAwMDAwMDAw MDAwMDAwMDAwIDAwMDAwMDAxODAwYzAwMGMKWyAgIDQyLjQxNDM4N10gcmF3OiBmZmZmZWEwMDAw MmE5NTAwIDAwMDAwMDA5MDAwMDAwMDcgZmZmZjg4MDAwYzQwMTI4MCAwMDAwMDAwMDAwMDAwMDAw ClsgICA0Mi40MTUwNzRdIHBhZ2UgZHVtcGVkIGJlY2F1c2U6IGthc2FuOiBiYWQgYWNjZXNzIGRl dGVjdGVkClsgICA0Mi40MTU2MDRdClsgICA0Mi40MTU3NTddIE1lbW9yeSBzdGF0ZSBhcm91bmQg dGhlIGJ1Z2d5IGFkZHJlc3M6ClsgICA0Mi40MTYyMjJdICBmZmZmODgwMDA5NjllODgwOiAwMCAw MCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMApbICAgNDIuNDE2OTA0 XSAgZmZmZjg4MDAwOTY5ZTkwMDogMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAg MDAgMDAgMDAgMDAKWyAgIDQyLjQxNzU5MV0gPmZmZmY4ODAwMDk2OWU5ODA6IGZjIGZjIGZjIGZj IGZjIGZjIGZjIGZjIGZjIGZjIGZjIGZjIGZjIGZjIGZjIGZjClsgICA0Mi40MTgyNzNdICAgICAg ICAgICAgICAgICAgICBeClsgICA0Mi40MTg1ODhdICBmZmZmODgwMDA5NjllYTAwOiBmYiBmYiBm YiBmYiBmYiBmYiBmYiBmYiBmYiBmYiBmYiBmYiBmYiBmYiBmYiBmYgpbICAgNDIuNDE5MjczXSAg ZmZmZjg4MDAwOTY5ZWE4MDogZmIgZmIgZmIgZmIgZmIgZmIgZmIgZmIgZmIgZmIgZmIgZmIgZmIg ZmIgZmIgZmIKWyAgIDQyLjQxOTg4Ml0gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CgpSZXBvcnRlZC1ieTogQW5kcmV5IEtv bm92YWxvdiA8YW5kcmV5a252bEBnb29nbGUuY29tPgpTaWduZWQtb2ZmLWJ5OiBDcmFpZyBHYWxs ZWsgPGtyYWlnQGdvb2dsZS5jb20+ClNpZ25lZC1vZmYtYnk6IERhdmlkIFMuIE1pbGxlciA8ZGF2 ZW1AZGF2ZW1sb2Z0Lm5ldD4KLS0tCiBuZXQvaXB2Ni9pcDZfb2ZmbG9hZC5jIHwgIDIgKysKIG5l dC9pcHY2L2lwNl9vdXRwdXQuYyAgfCAgNCArKysrCiBuZXQvaXB2Ni9vdXRwdXRfY29yZS5jIHwg MTQgKysrKysrKystLS0tLS0KIG5ldC9pcHY2L3VkcF9vZmZsb2FkLmMgfCAgMiArKwogNCBmaWxl cyBjaGFuZ2VkLCAxNiBpbnNlcnRpb25zKCspLCA2IGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBh L25ldC9pcHY2L2lwNl9vZmZsb2FkLmMgYi9uZXQvaXB2Ni9pcDZfb2ZmbG9hZC5jCmluZGV4IDkz ZTU4YTUuLmVhYjM2YWIgMTAwNjQ0Ci0tLSBhL25ldC9pcHY2L2lwNl9vZmZsb2FkLmMKKysrIGIv bmV0L2lwdjYvaXA2X29mZmxvYWQuYwpAQCAtMTE3LDYgKzExNyw4IEBAIHN0YXRpYyBzdHJ1Y3Qg c2tfYnVmZiAqaXB2Nl9nc29fc2VnbWVudChzdHJ1Y3Qgc2tfYnVmZiAqc2tiLAogCiAJCWlmICh1 ZHBmcmFnKSB7CiAJCQl1bmZyYWdfaXA2aGxlbiA9IGlwNl9maW5kXzFzdGZyYWdvcHQoc2tiLCAm cHJldmhkcik7CisJCQlpZiAodW5mcmFnX2lwNmhsZW4gPCAwKQorCQkJCXJldHVybiBFUlJfUFRS KHVuZnJhZ19pcDZobGVuKTsKIAkJCWZwdHIgPSAoc3RydWN0IGZyYWdfaGRyICopKCh1OCAqKWlw djZoICsgdW5mcmFnX2lwNmhsZW4pOwogCQkJZnB0ci0+ZnJhZ19vZmYgPSBodG9ucyhvZmZzZXQp OwogCQkJaWYgKHNrYi0+bmV4dCkKZGlmZiAtLWdpdCBhL25ldC9pcHY2L2lwNl9vdXRwdXQuYyBi L25ldC9pcHY2L2lwNl9vdXRwdXQuYwppbmRleCA1OGY2Mjg4Li4wMWRlZWNkIDEwMDY0NAotLS0g YS9uZXQvaXB2Ni9pcDZfb3V0cHV0LmMKKysrIGIvbmV0L2lwdjYvaXA2X291dHB1dC5jCkBAIC01 OTgsNiArNTk4LDEwIEBAIGludCBpcDZfZnJhZ21lbnQoc3RydWN0IG5ldCAqbmV0LCBzdHJ1Y3Qg c29jayAqc2ssIHN0cnVjdCBza19idWZmICpza2IsCiAJdTggKnByZXZoZHIsIG5leHRoZHIgPSAw OwogCiAJaGxlbiA9IGlwNl9maW5kXzFzdGZyYWdvcHQoc2tiLCAmcHJldmhkcik7CisJaWYgKGhs ZW4gPCAwKSB7CisJCWVyciA9IGhsZW47CisJCWdvdG8gZmFpbDsKKwl9CiAJbmV4dGhkciA9ICpw cmV2aGRyOwogCiAJbXR1ID0gaXA2X3NrYl9kc3RfbXR1KHNrYik7CmRpZmYgLS1naXQgYS9uZXQv aXB2Ni9vdXRwdXRfY29yZS5jIGIvbmV0L2lwdjYvb3V0cHV0X2NvcmUuYwppbmRleCBjZDQyNTIz Li5lOTA2NWI4IDEwMDY0NAotLS0gYS9uZXQvaXB2Ni9vdXRwdXRfY29yZS5jCisrKyBiL25ldC9p cHY2L291dHB1dF9jb3JlLmMKQEAgLTc5LDE0ICs3OSwxMyBAQCBFWFBPUlRfU1lNQk9MKGlwdjZf c2VsZWN0X2lkZW50KTsKIGludCBpcDZfZmluZF8xc3RmcmFnb3B0KHN0cnVjdCBza19idWZmICpz a2IsIHU4ICoqbmV4dGhkcikKIHsKIAl1MTYgb2Zmc2V0ID0gc2l6ZW9mKHN0cnVjdCBpcHY2aGRy KTsKLQlzdHJ1Y3QgaXB2Nl9vcHRfaGRyICpleHRoZHIgPQotCQkJCShzdHJ1Y3QgaXB2Nl9vcHRf aGRyICopKGlwdjZfaGRyKHNrYikgKyAxKTsKIAl1bnNpZ25lZCBpbnQgcGFja2V0X2xlbiA9IHNr Yl90YWlsX3BvaW50ZXIoc2tiKSAtCiAJCXNrYl9uZXR3b3JrX2hlYWRlcihza2IpOwogCWludCBm b3VuZF9yaGRyID0gMDsKIAkqbmV4dGhkciA9ICZpcHY2X2hkcihza2IpLT5uZXh0aGRyOwogCi0J d2hpbGUgKG9mZnNldCArIDEgPD0gcGFja2V0X2xlbikgeworCXdoaWxlIChvZmZzZXQgPD0gcGFj a2V0X2xlbikgeworCQlzdHJ1Y3QgaXB2Nl9vcHRfaGRyICpleHRoZHI7CiAKIAkJc3dpdGNoICgq Km5leHRoZHIpIHsKIApAQCAtMTA3LDEzICsxMDYsMTYgQEAgaW50IGlwNl9maW5kXzFzdGZyYWdv cHQoc3RydWN0IHNrX2J1ZmYgKnNrYiwgdTggKipuZXh0aGRyKQogCQkJcmV0dXJuIG9mZnNldDsK IAkJfQogCi0JCW9mZnNldCArPSBpcHY2X29wdGxlbihleHRoZHIpOwotCQkqbmV4dGhkciA9ICZl eHRoZHItPm5leHRoZHI7CisJCWlmIChvZmZzZXQgKyBzaXplb2Yoc3RydWN0IGlwdjZfb3B0X2hk cikgPiBwYWNrZXRfbGVuKQorCQkJcmV0dXJuIC1FSU5WQUw7CisKIAkJZXh0aGRyID0gKHN0cnVj dCBpcHY2X29wdF9oZHIgKikoc2tiX25ldHdvcmtfaGVhZGVyKHNrYikgKwogCQkJCQkJIG9mZnNl dCk7CisJCW9mZnNldCArPSBpcHY2X29wdGxlbihleHRoZHIpOworCQkqbmV4dGhkciA9ICZleHRo ZHItPm5leHRoZHI7CiAJfQogCi0JcmV0dXJuIG9mZnNldDsKKwlyZXR1cm4gLUVJTlZBTDsKIH0K IEVYUE9SVF9TWU1CT0woaXA2X2ZpbmRfMXN0ZnJhZ29wdCk7CiAKZGlmZiAtLWdpdCBhL25ldC9p cHY2L3VkcF9vZmZsb2FkLmMgYi9uZXQvaXB2Ni91ZHBfb2ZmbG9hZC5jCmluZGV4IGFjODU4YzQu LmIzNDhjZmYgMTAwNjQ0Ci0tLSBhL25ldC9pcHY2L3VkcF9vZmZsb2FkLmMKKysrIGIvbmV0L2lw djYvdWRwX29mZmxvYWQuYwpAQCAtOTEsNiArOTEsOCBAQCBzdGF0aWMgc3RydWN0IHNrX2J1ZmYg KnVkcDZfdWZvX2ZyYWdtZW50KHN0cnVjdCBza19idWZmICpza2IsCiAJCSAqIGJ5dGVzIHRvIGlu c2VydCBmcmFnbWVudCBoZWFkZXIuCiAJCSAqLwogCQl1bmZyYWdfaXA2aGxlbiA9IGlwNl9maW5k XzFzdGZyYWdvcHQoc2tiLCAmcHJldmhkcik7CisJCWlmICh1bmZyYWdfaXA2aGxlbiA8IDApCisJ CQlyZXR1cm4gRVJSX1BUUih1bmZyYWdfaXA2aGxlbik7CiAJCW5leHRoZHIgPSAqcHJldmhkcjsK IAkJKnByZXZoZHIgPSBORVhUSERSX0ZSQUdNRU5UOwogCQl1bmZyYWdfbGVuID0gKHNrYl9uZXR3 b3JrX2hlYWRlcihza2IpIC0gc2tiX21hY19oZWFkZXIoc2tiKSkgKwotLSAKMi40LjExCgoKRnJv bSAyNTk3NjFkODBiYmExZDZlM2Y3OWYyMmYwY2U2ZDBiNGFhMjQ0ZmUxIE1vbiBTZXAgMTcgMDA6 MDA6MDAgMjAwMQpGcm9tOiAiRGF2aWQgUy4gTWlsbGVyIiA8ZGF2ZW1AZGF2ZW1sb2Z0Lm5ldD4K RGF0ZTogV2VkLCAxNyBNYXkgMjAxNyAyMjo1NDoxMSAtMDQwMApTdWJqZWN0OiBbUEFUQ0ggMjMv NDFdIGlwdjY6IENoZWNrIGlwNl9maW5kXzFzdGZyYWdvcHQoKSByZXR1cm4gdmFsdWUKIHByb3Bl cmx5LgoKWyBVcHN0cmVhbSBjb21taXQgN2RkN2ViOTUxM2JkMDIxODRkNDVmMDAwYWI2OWQ3OGNi MWZhMTUzMSBdCgpEbyBub3QgdXNlIHVuc2lnbmVkIHZhcmlhYmxlcyB0byBzZWUgaWYgaXQgcmV0 dXJucyBhIG5lZ2F0aXZlCmVycm9yIG9yIG5vdC4KCkZpeGVzOiAyNDIzNDk2YWYzNWQgKCJpcHY2 OiBQcmV2ZW50IG92ZXJydW4gd2hlbiBwYXJzaW5nIHY2IGhlYWRlciBvcHRpb25zIikKUmVwb3J0 ZWQtYnk6IEp1bGlhIExhd2FsbCA8anVsaWEubGF3YWxsQGxpcDYuZnI+ClNpZ25lZC1vZmYtYnk6 IERhdmlkIFMuIE1pbGxlciA8ZGF2ZW1AZGF2ZW1sb2Z0Lm5ldD4KLS0tCiBuZXQvaXB2Ni9pcDZf b2ZmbG9hZC5jIHwgOSArKysrLS0tLS0KIG5ldC9pcHY2L2lwNl9vdXRwdXQuYyAgfCA3ICsrKy0t LS0KIG5ldC9pcHY2L3VkcF9vZmZsb2FkLmMgfCA4ICsrKysrLS0tCiAzIGZpbGVzIGNoYW5nZWQs IDEyIGluc2VydGlvbnMoKyksIDEyIGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL25ldC9pcHY2 L2lwNl9vZmZsb2FkLmMgYi9uZXQvaXB2Ni9pcDZfb2ZmbG9hZC5jCmluZGV4IGVhYjM2YWIuLjI4 MDI2OGYgMTAwNjQ0Ci0tLSBhL25ldC9pcHY2L2lwNl9vZmZsb2FkLmMKKysrIGIvbmV0L2lwdjYv aXA2X29mZmxvYWQuYwpAQCAtNjMsNyArNjMsNiBAQCBzdGF0aWMgc3RydWN0IHNrX2J1ZmYgKmlw djZfZ3NvX3NlZ21lbnQoc3RydWN0IHNrX2J1ZmYgKnNrYiwKIAljb25zdCBzdHJ1Y3QgbmV0X29m ZmxvYWQgKm9wczsKIAlpbnQgcHJvdG87CiAJc3RydWN0IGZyYWdfaGRyICpmcHRyOwotCXVuc2ln bmVkIGludCB1bmZyYWdfaXA2aGxlbjsKIAl1bnNpZ25lZCBpbnQgcGF5bG9hZF9sZW47CiAJdTgg KnByZXZoZHI7CiAJaW50IG9mZnNldCA9IDA7CkBAIC0xMTYsMTAgKzExNSwxMCBAQCBzdGF0aWMg c3RydWN0IHNrX2J1ZmYgKmlwdjZfZ3NvX3NlZ21lbnQoc3RydWN0IHNrX2J1ZmYgKnNrYiwKIAkJ c2tiLT5uZXR3b3JrX2hlYWRlciA9ICh1OCAqKWlwdjZoIC0gc2tiLT5oZWFkOwogCiAJCWlmICh1 ZHBmcmFnKSB7Ci0JCQl1bmZyYWdfaXA2aGxlbiA9IGlwNl9maW5kXzFzdGZyYWdvcHQoc2tiLCAm cHJldmhkcik7Ci0JCQlpZiAodW5mcmFnX2lwNmhsZW4gPCAwKQotCQkJCXJldHVybiBFUlJfUFRS KHVuZnJhZ19pcDZobGVuKTsKLQkJCWZwdHIgPSAoc3RydWN0IGZyYWdfaGRyICopKCh1OCAqKWlw djZoICsgdW5mcmFnX2lwNmhsZW4pOworCQkJaW50IGVyciA9IGlwNl9maW5kXzFzdGZyYWdvcHQo c2tiLCAmcHJldmhkcik7CisJCQlpZiAoZXJyIDwgMCkKKwkJCQlyZXR1cm4gRVJSX1BUUihlcnIp OworCQkJZnB0ciA9IChzdHJ1Y3QgZnJhZ19oZHIgKikoKHU4ICopaXB2NmggKyBlcnIpOwogCQkJ ZnB0ci0+ZnJhZ19vZmYgPSBodG9ucyhvZmZzZXQpOwogCQkJaWYgKHNrYi0+bmV4dCkKIAkJCQlm cHRyLT5mcmFnX29mZiB8PSBodG9ucyhJUDZfTUYpOwpkaWZmIC0tZ2l0IGEvbmV0L2lwdjYvaXA2 X291dHB1dC5jIGIvbmV0L2lwdjYvaXA2X291dHB1dC5jCmluZGV4IDAxZGVlY2QuLmQ0YTMxYmUg MTAwNjQ0Ci0tLSBhL25ldC9pcHY2L2lwNl9vdXRwdXQuYworKysgYi9uZXQvaXB2Ni9pcDZfb3V0 cHV0LmMKQEAgLTU5NywxMSArNTk3LDEwIEBAIGludCBpcDZfZnJhZ21lbnQoc3RydWN0IG5ldCAq bmV0LCBzdHJ1Y3Qgc29jayAqc2ssIHN0cnVjdCBza19idWZmICpza2IsCiAJaW50IHB0ciwgb2Zm c2V0ID0gMCwgZXJyID0gMDsKIAl1OCAqcHJldmhkciwgbmV4dGhkciA9IDA7CiAKLQlobGVuID0g aXA2X2ZpbmRfMXN0ZnJhZ29wdChza2IsICZwcmV2aGRyKTsKLQlpZiAoaGxlbiA8IDApIHsKLQkJ ZXJyID0gaGxlbjsKKwllcnIgPSBpcDZfZmluZF8xc3RmcmFnb3B0KHNrYiwgJnByZXZoZHIpOwor CWlmIChlcnIgPCAwKQogCQlnb3RvIGZhaWw7Ci0JfQorCWhsZW4gPSBlcnI7CiAJbmV4dGhkciA9 ICpwcmV2aGRyOwogCiAJbXR1ID0gaXA2X3NrYl9kc3RfbXR1KHNrYik7CmRpZmYgLS1naXQgYS9u ZXQvaXB2Ni91ZHBfb2ZmbG9hZC5jIGIvbmV0L2lwdjYvdWRwX29mZmxvYWQuYwppbmRleCBiMzQ4 Y2ZmLi5hMjI2N2Y4IDEwMDY0NAotLS0gYS9uZXQvaXB2Ni91ZHBfb2ZmbG9hZC5jCisrKyBiL25l dC9pcHY2L3VkcF9vZmZsb2FkLmMKQEAgLTI5LDYgKzI5LDcgQEAgc3RhdGljIHN0cnVjdCBza19i dWZmICp1ZHA2X3Vmb19mcmFnbWVudChzdHJ1Y3Qgc2tfYnVmZiAqc2tiLAogCXU4IGZyYWdfaGRy X3N6ID0gc2l6ZW9mKHN0cnVjdCBmcmFnX2hkcik7CiAJX193c3VtIGNzdW07CiAJaW50IHRubF9o bGVuOworCWludCBlcnI7CiAKIAltc3MgPSBza2Jfc2hpbmZvKHNrYiktPmdzb19zaXplOwogCWlm ICh1bmxpa2VseShza2ItPmxlbiA8PSBtc3MpKQpAQCAtOTAsOSArOTEsMTAgQEAgc3RhdGljIHN0 cnVjdCBza19idWZmICp1ZHA2X3Vmb19mcmFnbWVudChzdHJ1Y3Qgc2tfYnVmZiAqc2tiLAogCQkv KiBGaW5kIHRoZSB1bmZyYWdtZW50YWJsZSBoZWFkZXIgYW5kIHNoaWZ0IGl0IGxlZnQgYnkgZnJh Z19oZHJfc3oKIAkJICogYnl0ZXMgdG8gaW5zZXJ0IGZyYWdtZW50IGhlYWRlci4KIAkJICovCi0J CXVuZnJhZ19pcDZobGVuID0gaXA2X2ZpbmRfMXN0ZnJhZ29wdChza2IsICZwcmV2aGRyKTsKLQkJ aWYgKHVuZnJhZ19pcDZobGVuIDwgMCkKLQkJCXJldHVybiBFUlJfUFRSKHVuZnJhZ19pcDZobGVu KTsKKwkJZXJyID0gaXA2X2ZpbmRfMXN0ZnJhZ29wdChza2IsICZwcmV2aGRyKTsKKwkJaWYgKGVy ciA8IDApCisJCQlyZXR1cm4gRVJSX1BUUihlcnIpOworCQl1bmZyYWdfaXA2aGxlbiA9IGVycjsK IAkJbmV4dGhkciA9ICpwcmV2aGRyOwogCQkqcHJldmhkciA9IE5FWFRIRFJfRlJBR01FTlQ7CiAJ CXVuZnJhZ19sZW4gPSAoc2tiX25ldHdvcmtfaGVhZGVyKHNrYikgLSBza2JfbWFjX2hlYWRlcihz a2IpKSArCi0tIAoyLjQuMTEKCgpGcm9tIDFkMzEyZmEwNzc1NTQ1MGUyMjkwY2YyZmQ4OTdlZmRi YWMyOWE0M2IgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCkZyb206IFRvYmlhcyBKdW5nZWwgPHRv Ymlhcy5qdW5nZWxAYmlzZG4uZGU+CkRhdGU6IFdlZCwgMTcgTWF5IDIwMTcgMDk6Mjk6MTIgKzAy MDAKU3ViamVjdDogW1BBVENIIDI0LzQxXSBicmlkZ2U6IG5ldGxpbms6IGNoZWNrIHZsYW5fZGVm YXVsdF9wdmlkIHJhbmdlCgpbIFVwc3RyZWFtIGNvbW1pdCBhMjg1ODYwMjExYmYyNTdiMGU2ZDUy MmRhYzYwMDY3OTRiZTM0OGFmIF0KCkN1cnJlbnRseSBpdCBpcyBhbGxvd2VkIHRvIHNldCB0aGUg ZGVmYXVsdCBwdmlkIG9mIGEgYnJpZGdlIHRvIGEgdmFsdWUKYWJvdmUgVkxBTl9WSURfTUFTSyAo MHhmZmYpLiBUaGlzIHBhdGNoIGFkZHMgYSBjaGVjayB0byBicl92YWxpZGF0ZSBhbmQKcmV0dXJu cyAtRUlOVkFMIGluIGNhc2UgdGhlIHB2aWQgaXMgb3V0IG9mIGJvdW5kcy4KClJlcHJvZHVjZSBi eSBjYWxsaW5nOgoKW3Jvb3RAdGVzdCB+XSMgaXAgbCBhIHR5cGUgYnJpZGdlCltyb290QHRlc3Qg fl0jIGlwIGwgYSB0eXBlIGR1bW15Cltyb290QHRlc3Qgfl0jIGlwIGwgcyBicmlkZ2UwIHR5cGUg YnJpZGdlIHZsYW5fZmlsdGVyaW5nIDEKW3Jvb3RAdGVzdCB+XSMgaXAgbCBzIGJyaWRnZTAgdHlw ZSBicmlkZ2Ugdmxhbl9kZWZhdWx0X3B2aWQgOTk5OQpbcm9vdEB0ZXN0IH5dIyBpcCBsIHMgZHVt bXkwIG1hc3RlciBicmlkZ2UwCltyb290QHRlc3Qgfl0jIGJyaWRnZSB2bGFuCnBvcnQJdmxhbiBp ZHMKYnJpZGdlMAkgOTk5OSBQVklEIEVncmVzcyBVbnRhZ2dlZAoKZHVtbXkwCSA5OTk5IFBWSUQg RWdyZXNzIFVudGFnZ2VkCgpGaXhlczogMGY5NjNiNzU5MmVmICgiYnJpZGdlOiBuZXRsaW5rOiBh ZGQgc3VwcG9ydCBmb3IgZGVmYXVsdF9wdmlkIikKQWNrZWQtYnk6IE5pa29sYXkgQWxla3NhbmRy b3YgPG5pa29sYXlAY3VtdWx1c25ldHdvcmtzLmNvbT4KU2lnbmVkLW9mZi1ieTogVG9iaWFzIEp1 bmdlbCA8dG9iaWFzLmp1bmdlbEBiaXNkbi5kZT4KQWNrZWQtYnk6IFNhYnJpbmEgRHVicm9jYSA8 c2RAcXVlYXN5c25haWwubmV0PgpTaWduZWQtb2ZmLWJ5OiBEYXZpZCBTLiBNaWxsZXIgPGRhdmVt QGRhdmVtbG9mdC5uZXQ+Ci0tLQogbmV0L2JyaWRnZS9icl9uZXRsaW5rLmMgfCA3ICsrKysrKysK IDEgZmlsZSBjaGFuZ2VkLCA3IGluc2VydGlvbnMoKykKCmRpZmYgLS1naXQgYS9uZXQvYnJpZGdl L2JyX25ldGxpbmsuYyBiL25ldC9icmlkZ2UvYnJfbmV0bGluay5jCmluZGV4IDIyNWVmN2QuLjA0 ODhjNjcgMTAwNjQ0Ci0tLSBhL25ldC9icmlkZ2UvYnJfbmV0bGluay5jCisrKyBiL25ldC9icmlk Z2UvYnJfbmV0bGluay5jCkBAIC04MjgsNiArODI4LDEzIEBAIHN0YXRpYyBpbnQgYnJfdmFsaWRh dGUoc3RydWN0IG5sYXR0ciAqdGJbXSwgc3RydWN0IG5sYXR0ciAqZGF0YVtdKQogCQkJcmV0dXJu IC1FUFJPVE9OT1NVUFBPUlQ7CiAJCX0KIAl9CisKKwlpZiAoZGF0YVtJRkxBX0JSX1ZMQU5fREVG QVVMVF9QVklEXSkgeworCQlfX3UxNiBkZWZwdmlkID0gbmxhX2dldF91MTYoZGF0YVtJRkxBX0JS X1ZMQU5fREVGQVVMVF9QVklEXSk7CisKKwkJaWYgKGRlZnB2aWQgPj0gVkxBTl9WSURfTUFTSykK KwkJCXJldHVybiAtRUlOVkFMOworCX0KICNlbmRpZgogCiAJcmV0dXJuIDA7Ci0tIAoyLjQuMTEK CgpGcm9tIDdkYTJlNmFlYTM2MzU5YmIxZDQ3NTE0NjVkNzZiNjYzNjQ3NTMwZjYgTW9uIFNlcCAx NyAwMDowMDowMCAyMDAxCkZyb206ID0/VVRGLTg/cT9Caj1DMz1COHJuPTIwTW9yaz89IDxiam9y bkBtb3JrLm5vPgpEYXRlOiBXZWQsIDE3IE1heSAyMDE3IDE2OjMxOjQxICswMjAwClN1YmplY3Q6 IFtQQVRDSCAyNS80MV0gcW1pX3d3YW46IGFkZCBhbm90aGVyIExlbm92byBFTTc0eHggZGV2aWNl IElECk1JTUUtVmVyc2lvbjogMS4wCkNvbnRlbnQtVHlwZTogdGV4dC9wbGFpbjsgY2hhcnNldD1V VEYtOApDb250ZW50LVRyYW5zZmVyLUVuY29kaW5nOiA4Yml0CgpbIFVwc3RyZWFtIGNvbW1pdCA0 ODYxODFiY2IzMjQ4ZTJmMTk3N2Y0ZTY5Mzg3YTg5ODIzNGE0ZTFlIF0KCkluIHRoZWlyIGluZmlu aXRlIHdpc2RvbSwgYW5kIG5ldmVyIGVuZGluZyBxdWVzdCBmb3IgZW5kIHVzZXIgZnJ1c3RyYXRp b24sCkxlbm92byBoYXMgZGVjaWRlZCB0byB1c2UgYSBuZXcgVVNCIGRldmljZSBJRCBmb3IgdGhl IHd3YW4gbW9kdWxlcyBpbgp0aGVpciAyMDE3IGxhcHRvcHMuICBUaGUgYWN0dWFsIGhhcmR3YXJl IGlzIHN0aWxsIHRoZSBTaWVycmEgV2lyZWxlc3MKRU03NDU1IG9yIEVNNzQzMCwgZGVwZW5kaW5n IG9uIHJlZ2lvbi4KClNpZ25lZC1vZmYtYnk6IEJqw7hybiBNb3JrIDxiam9ybkBtb3JrLm5vPgpT aWduZWQtb2ZmLWJ5OiBEYXZpZCBTLiBNaWxsZXIgPGRhdmVtQGRhdmVtbG9mdC5uZXQ+Ci0tLQog ZHJpdmVycy9uZXQvdXNiL3FtaV93d2FuLmMgfCAyICsrCiAxIGZpbGUgY2hhbmdlZCwgMiBpbnNl cnRpb25zKCspCgpkaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvdXNiL3FtaV93d2FuLmMgYi9kcml2 ZXJzL25ldC91c2IvcW1pX3d3YW4uYwppbmRleCA0ZTM0NTY4Li44Nzc0NmMyIDEwMDY0NAotLS0g YS9kcml2ZXJzL25ldC91c2IvcW1pX3d3YW4uYworKysgYi9kcml2ZXJzL25ldC91c2IvcW1pX3d3 YW4uYwpAQCAtOTAyLDYgKzkwMiw4IEBAIHN0YXRpYyBjb25zdCBzdHJ1Y3QgdXNiX2RldmljZV9p ZCBwcm9kdWN0c1tdID0gewogCXtRTUlfRklYRURfSU5URigweDExOTksIDB4OTA3MSwgMTApfSwJ LyogU2llcnJhIFdpcmVsZXNzIE1DNzR4eCAqLwogCXtRTUlfRklYRURfSU5URigweDExOTksIDB4 OTA3OSwgOCl9LAkvKiBTaWVycmEgV2lyZWxlc3MgRU03NHh4ICovCiAJe1FNSV9GSVhFRF9JTlRG KDB4MTE5OSwgMHg5MDc5LCAxMCl9LAkvKiBTaWVycmEgV2lyZWxlc3MgRU03NHh4ICovCisJe1FN SV9GSVhFRF9JTlRGKDB4MTE5OSwgMHg5MDdiLCA4KX0sCS8qIFNpZXJyYSBXaXJlbGVzcyBFTTc0 eHggKi8KKwl7UU1JX0ZJWEVEX0lOVEYoMHgxMTk5LCAweDkwN2IsIDEwKX0sCS8qIFNpZXJyYSBX aXJlbGVzcyBFTTc0eHggKi8KIAl7UU1JX0ZJWEVEX0lOVEYoMHgxYmJiLCAweDAxMWUsIDQpfSwJ LyogVGVsZWtvbSBTcGVlZHN0aWNrIExURSBJSSAoQWxjYXRlbCBPbmUgVG91Y2ggTDEwMFYgTFRF KSAqLwogCXtRTUlfRklYRURfSU5URigweDFiYmIsIDB4MDIwMywgMil9LAkvKiBBbGNhdGVsIEw4 MDBNQSAqLwogCXtRTUlfRklYRURfSU5URigweDIzNTcsIDB4MDIwMSwgNCl9LAkvKiBUUC1MSU5L IEhTVVBBIE1vZGVtIE1BMTgwICovCi0tIAoyLjQuMTEKCgpGcm9tIDhlYWJjZDIzMjk1YjYxYWRl NWNiN2JiOThhNjNkMWM2YTg1NTBlZTEgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCkZyb206IFhp biBMb25nIDxsdWNpZW4ueGluQGdtYWlsLmNvbT4KRGF0ZTogRnJpLCAxOSBNYXkgMjAxNyAyMjoy MDoyOSArMDgwMApTdWJqZWN0OiBbUEFUQ0ggMjYvNDFdIGJyaWRnZTogc3RhcnQgaGVsbG9fdGlt ZXIgd2hlbiBlbmFibGluZyBLRVJORUxfU1RQIGluCiBicl9zdHBfc3RhcnQKClsgVXBzdHJlYW0g Y29tbWl0IDZkMThjNzMyYjk1YzBhOWQzNWU5Zjk3OGI0NDM4YmJhMTU0MTIyODQgXQoKU2luY2Ug Y29tbWl0IDc2YjkxYzMyZGQ4NiAoImJyaWRnZTogc3RwOiB3aGVuIHVzaW5nIHVzZXJzcGFjZSBz dHAgc3RvcAprZXJuZWwgaGVsbG8gYW5kIGhvbGQgdGltZXJzIiksIGJyaWRnZSB3b3VsZCBub3Qg c3RhcnQgaGVsbG9fdGltZXIgaWYKc3RwX2VuYWJsZWQgaXMgbm90IEtFUk5FTF9TVFAgd2hlbiBi cl9kZXZfb3Blbi4KClRoZSBwcm9ibGVtIGlzIGV2ZW4gaWYgdXNlcnMgc2V0IHN0cF9lbmFibGVk IHdpdGggS0VSTkVMX1NUUCBsYXRlciwKdGhlIHRpbWVyIHdpbGwgc3RpbGwgbm90IGJlIHN0YXJ0 ZWQuIEl0IGNhdXNlcyB0aGF0IEtFUk5FTF9TVFAgY2FuCm5vdCByZWFsbHkgd29yay4gVXNlcnMg aGF2ZSB0byByZS1pZnVwIHRoZSBicmlkZ2UgdG8gYXZvaWQgdGhpcy4KClRoaXMgcGF0Y2ggaXMg dG8gZml4IGl0IGJ5IHN0YXJ0aW5nIGJyLT5oZWxsb190aW1lciB3aGVuIGVuYWJsaW5nCktFUk5F TF9TVFAgaW4gYnJfc3RwX3N0YXJ0LgoKQXMgYW4gaW1wcm92ZW1lbnQsIGl0J3MgYWxzbyB0byBz dGFydCBoZWxsb190aW1lciBhZ2FpbiBvbmx5IHdoZW4KYnItPnN0cF9lbmFibGVkIGlzIEtFUk5F TF9TVFAgaW4gYnJfaGVsbG9fdGltZXJfZXhwaXJlZCwgdGhlcmUgaXMKbm8gcmVhc29uIHRvIHN0 YXJ0IHRoZSB0aW1lciBhZ2FpbiB3aGVuIGl0J3MgTk9fU1RQLgoKRml4ZXM6IDc2YjkxYzMyZGQ4 NiAoImJyaWRnZTogc3RwOiB3aGVuIHVzaW5nIHVzZXJzcGFjZSBzdHAgc3RvcCBrZXJuZWwgaGVs bG8gYW5kIGhvbGQgdGltZXJzIikKUmVwb3J0ZWQtYnk6IEhhaWRvbmcgTGkgPGhhaWxpQHJlZGhh dC5jb20+ClNpZ25lZC1vZmYtYnk6IFhpbiBMb25nIDxsdWNpZW4ueGluQGdtYWlsLmNvbT4KQWNr ZWQtYnk6IE5pa29sYXkgQWxla3NhbmRyb3YgPG5pa29sYXlAY3VtdWx1c25ldHdvcmtzLmNvbT4K UmV2aWV3ZWQtYnk6IEl2YW4gVmVjZXJhIDxjZXJhQGNlcmEuY3o+ClNpZ25lZC1vZmYtYnk6IERh dmlkIFMuIE1pbGxlciA8ZGF2ZW1AZGF2ZW1sb2Z0Lm5ldD4KLS0tCiBuZXQvYnJpZGdlL2JyX3N0 cF9pZi5jICAgIHwgMSArCiBuZXQvYnJpZGdlL2JyX3N0cF90aW1lci5jIHwgMiArLQogMiBmaWxl cyBjaGFuZ2VkLCAyIGluc2VydGlvbnMoKyksIDEgZGVsZXRpb24oLSkKCmRpZmYgLS1naXQgYS9u ZXQvYnJpZGdlL2JyX3N0cF9pZi5jIGIvbmV0L2JyaWRnZS9icl9zdHBfaWYuYwppbmRleCAwODM0 MWQyLi4wZGI4MTAyIDEwMDY0NAotLS0gYS9uZXQvYnJpZGdlL2JyX3N0cF9pZi5jCisrKyBiL25l dC9icmlkZ2UvYnJfc3RwX2lmLmMKQEAgLTE3OSw2ICsxNzksNyBAQCBzdGF0aWMgdm9pZCBicl9z dHBfc3RhcnQoc3RydWN0IG5ldF9icmlkZ2UgKmJyKQogCQlicl9kZWJ1ZyhiciwgInVzaW5nIGtl cm5lbCBTVFBcbiIpOwogCiAJCS8qIFRvIHN0YXJ0IHRpbWVycyBvbiBhbnkgcG9ydHMgbGVmdCBp biBibG9ja2luZyAqLworCQltb2RfdGltZXIoJmJyLT5oZWxsb190aW1lciwgamlmZmllcyArIGJy LT5oZWxsb190aW1lKTsKIAkJYnJfcG9ydF9zdGF0ZV9zZWxlY3Rpb24oYnIpOwogCX0KIApkaWZm IC0tZ2l0IGEvbmV0L2JyaWRnZS9icl9zdHBfdGltZXIuYyBiL25ldC9icmlkZ2UvYnJfc3RwX3Rp bWVyLmMKaW5kZXggYzk4YjNlNS4uNjBiNmZlMiAxMDA2NDQKLS0tIGEvbmV0L2JyaWRnZS9icl9z dHBfdGltZXIuYworKysgYi9uZXQvYnJpZGdlL2JyX3N0cF90aW1lci5jCkBAIC00MCw3ICs0MCw3 IEBAIHN0YXRpYyB2b2lkIGJyX2hlbGxvX3RpbWVyX2V4cGlyZWQodW5zaWduZWQgbG9uZyBhcmcp CiAJaWYgKGJyLT5kZXYtPmZsYWdzICYgSUZGX1VQKSB7CiAJCWJyX2NvbmZpZ19icGR1X2dlbmVy YXRpb24oYnIpOwogCi0JCWlmIChici0+c3RwX2VuYWJsZWQgIT0gQlJfVVNFUl9TVFApCisJCWlm IChici0+c3RwX2VuYWJsZWQgPT0gQlJfS0VSTkVMX1NUUCkKIAkJCW1vZF90aW1lcigmYnItPmhl bGxvX3RpbWVyLAogCQkJCSAgcm91bmRfamlmZmllcyhqaWZmaWVzICsgYnItPmhlbGxvX3RpbWUp KTsKIAl9Ci0tIAoyLjQuMTEKCgpGcm9tIGUxMmJiNTE4MGYzYTgwYWRjZGRiZjlkYTczNjg4NGE2 OGU1ZTBjYTIgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCkZyb206IEVyaWMgRHVtYXpldCA8ZWR1 bWF6ZXRAZ29vZ2xlLmNvbT4KRGF0ZTogRnJpLCAxOSBNYXkgMjAxNyAxNDoxNzo0OCAtMDcwMApT dWJqZWN0OiBbUEFUQ0ggMjcvNDFdIGlwdjY6IGZpeCBvdXQgb2YgYm91bmQgd3JpdGVzIGluIF9f aXA2X2FwcGVuZF9kYXRhKCkKClsgVXBzdHJlYW0gY29tbWl0IDIzMmNkMzVkMDgwNGNjMjQxZWI4 ODdiYjhkNGQ5YjNiOTg4MWM2NGEgXQoKQW5kcmV5IEtvbm92YWxvdiBhbmQgaWRhaWZpc2hAZ21h aWwuY29tIHJlcG9ydGVkIGNyYXNoZXMgY2F1c2VkIGJ5Cm9uZSBza2Igc2hhcmVkX2luZm8gYmVp bmcgb3ZlcndyaXR0ZW4gZnJvbSBfX2lwNl9hcHBlbmRfZGF0YSgpCgpBbmRyZXkgcHJvZ3JhbSBs ZWFkIHRvIGZvbGxvd2luZyBzdGF0ZSA6Cgpjb3B5IC00MjAwIGRhdGFsZW4gMjAwMCBmcmFnbGVu IDIwNDAKbWF4ZnJhZ2xlbiAyMDQwIGFsbG9jbGVuIDIwNDggdHJhbnNoZHJsZW4gMCBvZmZzZXQg MCBmcmFnZ2FwIDYyMDAKClRoZSBza2JfY29weV9hbmRfY3N1bV9iaXRzKHNrYl9wcmV2LCBtYXhm cmFnbGVuLCBkYXRhICsgdHJhbnNoZHJsZW4sCmZyYWdnYXAsIDApOyBpcyBvdmVyd3JpdGluZyBz a2ItPmhlYWQgYW5kIHNrYl9zaGFyZWRfaW5mbwoKU2luY2Ugd2UgYXBwYXJlbnRseSBkZXRlY3Qg dGhpcyByYXJlIGNvbmRpdGlvbiB0b28gbGF0ZSwgbW92ZSB0aGUKY29kZSBlYXJsaWVyIHRvIGV2 ZW4gYXZvaWQgYWxsb2NhdGluZyBza2IgYW5kIHJpc2tpbmcgY3Jhc2hlcy4KCk9uY2UgYWdhaW4s IG1hbnkgdGhhbmtzIHRvIEFuZHJleSBhbmQgc3l6a2FsbGVyIHRlYW0uCgpTaWduZWQtb2ZmLWJ5 OiBFcmljIER1bWF6ZXQgPGVkdW1hemV0QGdvb2dsZS5jb20+ClJlcG9ydGVkLWJ5OiBBbmRyZXkg S29ub3ZhbG92IDxhbmRyZXlrbnZsQGdvb2dsZS5jb20+ClRlc3RlZC1ieTogQW5kcmV5IEtvbm92 YWxvdiA8YW5kcmV5a252bEBnb29nbGUuY29tPgpSZXBvcnRlZC1ieTogPGlkYWlmaXNoQGdtYWls LmNvbT4KU2lnbmVkLW9mZi1ieTogRGF2aWQgUy4gTWlsbGVyIDxkYXZlbUBkYXZlbWxvZnQubmV0 PgotLS0KIG5ldC9pcHY2L2lwNl9vdXRwdXQuYyB8IDE1ICsrKysrKysrLS0tLS0tLQogMSBmaWxl IGNoYW5nZWQsIDggaW5zZXJ0aW9ucygrKSwgNyBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9u ZXQvaXB2Ni9pcDZfb3V0cHV0LmMgYi9uZXQvaXB2Ni9pcDZfb3V0cHV0LmMKaW5kZXggZDRhMzFi ZS4uYmY4YTU4YSAxMDA2NDQKLS0tIGEvbmV0L2lwdjYvaXA2X291dHB1dC5jCisrKyBiL25ldC9p cHY2L2lwNl9vdXRwdXQuYwpAQCAtMTQ2Niw2ICsxNDY2LDExIEBAIHN0YXRpYyBpbnQgX19pcDZf YXBwZW5kX2RhdGEoc3RydWN0IHNvY2sgKnNrLAogCQkJICovCiAJCQlhbGxvY2xlbiArPSBzaXpl b2Yoc3RydWN0IGZyYWdfaGRyKTsKIAorCQkJY29weSA9IGRhdGFsZW4gLSB0cmFuc2hkcmxlbiAt IGZyYWdnYXA7CisJCQlpZiAoY29weSA8IDApIHsKKwkJCQllcnIgPSAtRUlOVkFMOworCQkJCWdv dG8gZXJyb3I7CisJCQl9CiAJCQlpZiAodHJhbnNoZHJsZW4pIHsKIAkJCQlza2IgPSBzb2NrX2Fs bG9jX3NlbmRfc2tiKHNrLAogCQkJCQkJYWxsb2NsZW4gKyBoaF9sZW4sCkBAIC0xNTE1LDEzICsx NTIwLDkgQEAgc3RhdGljIGludCBfX2lwNl9hcHBlbmRfZGF0YShzdHJ1Y3Qgc29jayAqc2ssCiAJ CQkJZGF0YSArPSBmcmFnZ2FwOwogCQkJCXBza2JfdHJpbV91bmlxdWUoc2tiX3ByZXYsIG1heGZy YWdsZW4pOwogCQkJfQotCQkJY29weSA9IGRhdGFsZW4gLSB0cmFuc2hkcmxlbiAtIGZyYWdnYXA7 Ci0KLQkJCWlmIChjb3B5IDwgMCkgewotCQkJCWVyciA9IC1FSU5WQUw7Ci0JCQkJa2ZyZWVfc2ti KHNrYik7Ci0JCQkJZ290byBlcnJvcjsKLQkJCX0gZWxzZSBpZiAoY29weSA+IDAgJiYgZ2V0ZnJh Zyhmcm9tLCBkYXRhICsgdHJhbnNoZHJsZW4sIG9mZnNldCwgY29weSwgZnJhZ2dhcCwgc2tiKSA8 IDApIHsKKwkJCWlmIChjb3B5ID4gMCAmJgorCQkJICAgIGdldGZyYWcoZnJvbSwgZGF0YSArIHRy YW5zaGRybGVuLCBvZmZzZXQsCisJCQkJICAgIGNvcHksIGZyYWdnYXAsIHNrYikgPCAwKSB7CiAJ CQkJZXJyID0gLUVGQVVMVDsKIAkJCQlrZnJlZV9za2Ioc2tiKTsKIAkJCQlnb3RvIGVycm9yOwot LSAKMi40LjExCgoKRnJvbSBiY2U2NzFlMmI1ZjU5N2ZjMDYyOWQ3YWU0YzBjMDAzNDkzMzBlYjQ2 IE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBKYXJvZCBXaWxzb24gPGphcm9kQHJlZGhh dC5jb20+CkRhdGU6IEZyaSwgMTkgTWF5IDIwMTcgMTk6NDM6NDUgLTA0MDAKU3ViamVjdDogW1BB VENIIDI4LzQxXSBib25kaW5nOiBmaXggYWNjb3VudGluZyBvZiBhY3RpdmUgcG9ydHMgaW4gM2Fk CgpbIFVwc3RyZWFtIGNvbW1pdCA3NTFkYTJhNjliN2NjODJkODNkYzMxMGVkNzYwNjIyNWYyZDZl MDE0IF0KCkFzIG9mIDdiYjExZGM5ZjU5ZCBhbmQgMDYyMmNhYjAzNDFjLCBib25kIHNsYXZlcyBp biBhIDNhZCBib25kIGFyZSBub3QKcmVtb3ZlZCBmcm9tIHRoZSBhZ2dyZWdhdG9yIHdoZW4gdGhl eSBhcmUgZG93biwgYW5kIHRoZSBhY3RpdmUgc2xhdmUgY291bnQKaXMgTk9UIGVxdWFsIHRvIG51 bWJlciBvZiBwb3J0cyBpbiB0aGUgYWdncmVnYXRvciwgYnV0IHJhdGhlciB0aGUgbnVtYmVyCm9m IHBvcnRzIGluIHRoZSBhZ2dyZWdhdG9yIHRoYXQgYXJlIHN0aWxsIGVuYWJsZWQuIFRoZSBzeXNm cyBzcGV3IGZvcgpib25kaW5nX3Nob3dfYWRfbnVtX3BvcnRzKCkgaGFzIGEgY29tbWVudCB0aGF0 IHNheXMgIlNob3cgbnVtYmVyIG9mIGFjdGl2ZQo4MDIuM2FkIHBvcnRzLiIsIGJ1dCBpdCdzIGN1 cnJlbnRseSBzaG93aW5nIHRvdGFsIG51bWJlciBvZiBwb3J0cywgYm90aAphY3RpdmUgYW5kIGlu YWN0aXZlLiBSZW1lZHkgaXQgYnkgdXNpbmcgdGhlIHNhbWUgbG9naWMgaW50cm9kdWNlZCBpbgow NjIyY2FiMDM0MWMgaW4gX19ib25kXzNhZF9nZXRfYWN0aXZlX2FnZ19pbmZvKCksIHNvIHN5c2Zz LCBwcm9jZnMgYW5kCm5ldGxpbmsgYWxsIHJlcG9ydCB0aGUgbnVtYmVyIG9mIGFjdGl2ZSBwb3J0 cy4gTm90ZSB0aGF0IHRoaXMgbWVhbnMgdGhhdApJRkxBX0JPTkRfQURfSU5GT19OVU1fUE9SVFMg cmVhbGx5IG1lYW5zIE5VTV9BQ1RJVkVfUE9SVFMgaW5zdGVhZCBvZgpOVU1fUE9SVFMsIGFuZCB0 aHVzIHBlcmhhcHMgc2hvdWxkIGJlIHJlbmFtZWQgZm9yIGNsYXJpdHkuCgpMaWdodGx5IHRlc3Rl ZCBvbiBhIGR1YWwgaTQwZSBsYWNwIGJvbmQsIHNpbXVsYXRpbmcgbGluayBkb3ducyB3aXRoIGFu IGlwCmxpbmsgc2V0IGRldiA8c2xhdmUyPiBkb3duLCB3YXMgYWJsZSB0byBwcm9kdWNlIHRoZSBz dGF0ZSB3aGVyZSBJIGNvdWxkCnNlZSBib3RoIGluIHRoZSBzYW1lIGFnZ3JlZ2F0b3IsIGJ1dCBh IG51bWJlciBvZiBwb3J0cyBjb3VudCBvZiAxLgoKTUlJIFN0YXR1czogdXAKQWN0aXZlIEFnZ3Jl Z2F0b3IgSW5mbzoKICAgICAgICBBZ2dyZWdhdG9yIElEOiAxCiAgICAgICAgTnVtYmVyIG9mIHBv cnRzOiAyIDwtLS0KU2xhdmUgSW50ZXJmYWNlOiBlbnMxMApNSUkgU3RhdHVzOiB1cCA8LS0tCkFn Z3JlZ2F0b3IgSUQ6IDEKU2xhdmUgSW50ZXJmYWNlOiBlbnMxMQpNSUkgU3RhdHVzOiB1cApBZ2dy ZWdhdG9yIElEOiAxCgpNSUkgU3RhdHVzOiB1cApBY3RpdmUgQWdncmVnYXRvciBJbmZvOgogICAg ICAgIEFnZ3JlZ2F0b3IgSUQ6IDEKICAgICAgICBOdW1iZXIgb2YgcG9ydHM6IDEgPC0tLQpTbGF2 ZSBJbnRlcmZhY2U6IGVuczEwCk1JSSBTdGF0dXM6IGRvd24gPC0tLQpBZ2dyZWdhdG9yIElEOiAx ClNsYXZlIEludGVyZmFjZTogZW5zMTEKTUlJIFN0YXR1czogdXAKQWdncmVnYXRvciBJRDogMQoK Q0M6IEpheSBWb3NidXJnaCA8ai52b3NidXJnaEBnbWFpbC5jb20+CkNDOiBWZWFjZXNsYXYgRmFs aWNvIDx2ZmFsaWNvQGdtYWlsLmNvbT4KQ0M6IEFuZHkgR29zcG9kYXJlayA8YW5keUBncmV5aG91 c2UubmV0PgpDQzogbmV0ZGV2QHZnZXIua2VybmVsLm9yZwpTaWduZWQtb2ZmLWJ5OiBKYXJvZCBX aWxzb24gPGphcm9kQHJlZGhhdC5jb20+ClNpZ25lZC1vZmYtYnk6IERhdmlkIFMuIE1pbGxlciA8 ZGF2ZW1AZGF2ZW1sb2Z0Lm5ldD4KLS0tCiBkcml2ZXJzL25ldC9ib25kaW5nL2JvbmRfM2FkLmMg fCAyICstCiAxIGZpbGUgY2hhbmdlZCwgMSBpbnNlcnRpb24oKyksIDEgZGVsZXRpb24oLSkKCmRp ZmYgLS1naXQgYS9kcml2ZXJzL25ldC9ib25kaW5nL2JvbmRfM2FkLmMgYi9kcml2ZXJzL25ldC9i b25kaW5nL2JvbmRfM2FkLmMKaW5kZXggZWRjNzBmZi4uNmRjYzQyZCAxMDA2NDQKLS0tIGEvZHJp dmVycy9uZXQvYm9uZGluZy9ib25kXzNhZC5jCisrKyBiL2RyaXZlcnMvbmV0L2JvbmRpbmcvYm9u ZF8zYWQuYwpAQCAtMjU3Myw3ICsyNTczLDcgQEAgaW50IF9fYm9uZF8zYWRfZ2V0X2FjdGl2ZV9h Z2dfaW5mbyhzdHJ1Y3QgYm9uZGluZyAqYm9uZCwKIAkJcmV0dXJuIC0xOwogCiAJYWRfaW5mby0+ YWdncmVnYXRvcl9pZCA9IGFnZ3JlZ2F0b3ItPmFnZ3JlZ2F0b3JfaWRlbnRpZmllcjsKLQlhZF9p bmZvLT5wb3J0cyA9IGFnZ3JlZ2F0b3ItPm51bV9vZl9wb3J0czsKKwlhZF9pbmZvLT5wb3J0cyA9 IF9fYWdnX2FjdGl2ZV9wb3J0cyhhZ2dyZWdhdG9yKTsKIAlhZF9pbmZvLT5hY3Rvcl9rZXkgPSBh Z2dyZWdhdG9yLT5hY3Rvcl9vcGVyX2FnZ3JlZ2F0b3Jfa2V5OwogCWFkX2luZm8tPnBhcnRuZXJf a2V5ID0gYWdncmVnYXRvci0+cGFydG5lcl9vcGVyX2FnZ3JlZ2F0b3Jfa2V5OwogCWV0aGVyX2Fk ZHJfY29weShhZF9pbmZvLT5wYXJ0bmVyX3N5c3RlbSwKLS0gCjIuNC4xMQoKCkZyb20gYWEyNDI3 ZWMwMWQ1YWIzYzM1YjgxNjUzMzQyNmFlNDllMWY0NDFhMiBNb24gU2VwIDE3IDAwOjAwOjAwIDIw MDEKRnJvbTogTW9oYW1hZCBIYWogWWFoaWEgPG1vaGFtYWRAbWVsbGFub3guY29tPgpEYXRlOiBU aHUsIDIzIEZlYiAyMDE3IDExOjE5OjM2ICswMjAwClN1YmplY3Q6IFtQQVRDSCAyOS80MV0gbmV0 L21seDU6IEF2b2lkIHVzaW5nIHBlbmRpbmcgY29tbWFuZCBpbnRlcmZhY2Ugc2xvdHMKClsgVXBz dHJlYW0gY29tbWl0IDczZGQzYTQ4MzljMWQyN2MzNmQ0ZGNjOTJlMWZmNDQyMjVlY2JlYjcgXQoK Q3VycmVudGx5IHdoZW4gZmlybXdhcmUgY29tbWFuZCBnZXRzIHN0dWNrIG9yIGl0IHRha2VzIGxv bmcgdGltZSB0bwpjb21wbGV0ZSwgdGhlIGRyaXZlciBjb21tYW5kIHdpbGwgZ2V0IHRpbWVvdXQg YW5kIHRoZSBjb21tYW5kIHNsb3QgaXMKZnJlZWQgYW5kIGNhbiBiZSB1c2VkIGZvciBuZXcgY29t bWFuZHMsIGFuZCBpZiB0aGUgZmlybXdhcmUgcmVjZWl2ZSBuZXcKY29tbWFuZCBvbiB0aGUgb2xk IGJ1c3kgc2xvdCBpdHMgYmVoYXZpb3IgaXMgdW5leHBlY3RlZCBhbmQgdGhpcyBjb3VsZApiZSBo YXJtZnVsLgpUbyBmaXggdGhpcyB3aGVuIHRoZSBkcml2ZXIgY29tbWFuZCBnZXRzIHRpbWVvdXQg d2UgcmV0dXJuIGZhaWx1cmUsCmJ1dCB3ZSBkb24ndCBmcmVlIHRoZSBjb21tYW5kIHNsb3QgYW5k IHdlIHdhaXQgZm9yIHRoZSBmaXJtd2FyZSB0bwpleHBsaWNpdGx5IHJlc3BvbmQgdG8gdGhhdCBj b21tYW5kLgpPbmNlIGFsbCB0aGUgZW50cmllcyBhcmUgYnVzeSB3ZSB3aWxsIHN0b3AgcHJvY2Vz c2luZyBuZXcgZmlybXdhcmUKY29tbWFuZHMuCgpGaXhlczogOWNiYTRlYmNmMzc0ICgnbmV0L21s eDU6IEZpeCBwb3RlbnRpYWwgZGVhZGxvY2sgaW4gY29tbWFuZCBtb2RlIGNoYW5nZScpClNpZ25l ZC1vZmYtYnk6IE1vaGFtYWQgSGFqIFlhaGlhIDxtb2hhbWFkQG1lbGxhbm94LmNvbT4KQ2M6IGtl cm5lbC10ZWFtQGZiLmNvbQpTaWduZWQtb2ZmLWJ5OiBTYWVlZCBNYWhhbWVlZCA8c2FlZWRtQG1l bGxhbm94LmNvbT4KLS0tCiBkcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUv Y21kLmMgICAgfCA0MSArKysrKysrKysrKysrKysrKysrKystLS0KIGRyaXZlcnMvbmV0L2V0aGVy bmV0L21lbGxhbm94L21seDUvY29yZS9lcS5jICAgICB8ICAyICstCiBkcml2ZXJzL25ldC9ldGhl cm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvaGVhbHRoLmMgfCAgMiArLQogaW5jbHVkZS9saW51eC9t bHg1L2RyaXZlci5oICAgICAgICAgICAgICAgICAgICAgIHwgIDcgKysrLQogNCBmaWxlcyBjaGFu Z2VkLCA0NCBpbnNlcnRpb25zKCspLCA4IGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL2RyaXZl cnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9jbWQuYyBiL2RyaXZlcnMvbmV0L2V0 aGVybmV0L21lbGxhbm94L21seDUvY29yZS9jbWQuYwppbmRleCBhMzgwMzUzLi5mOTVjODY5IDEw MDY0NAotLS0gYS9kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvY21kLmMK KysrIGIvZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2NtZC5jCkBAIC03 NzAsNyArNzcwLDcgQEAgc3RhdGljIHZvaWQgY2JfdGltZW91dF9oYW5kbGVyKHN0cnVjdCB3b3Jr X3N0cnVjdCAqd29yaykKIAltbHg1X2NvcmVfd2FybihkZXYsICIlcygweCV4KSB0aW1lb3V0LiBX aWxsIGNhdXNlIGEgbGVhayBvZiBhIGNvbW1hbmQgcmVzb3VyY2VcbiIsCiAJCSAgICAgICBtbHg1 X2NvbW1hbmRfc3RyKG1zZ190b19vcGNvZGUoZW50LT5pbikpLAogCQkgICAgICAgbXNnX3RvX29w Y29kZShlbnQtPmluKSk7Ci0JbWx4NV9jbWRfY29tcF9oYW5kbGVyKGRldiwgMVVMIDw8IGVudC0+ aWR4KTsKKwltbHg1X2NtZF9jb21wX2hhbmRsZXIoZGV2LCAxVUwgPDwgZW50LT5pZHgsIHRydWUp OwogfQogCiBzdGF0aWMgdm9pZCBjbWRfd29ya19oYW5kbGVyKHN0cnVjdCB3b3JrX3N0cnVjdCAq d29yaykKQEAgLTgwMCw2ICs4MDAsNyBAQCBzdGF0aWMgdm9pZCBjbWRfd29ya19oYW5kbGVyKHN0 cnVjdCB3b3JrX3N0cnVjdCAqd29yaykKIAl9CiAKIAljbWQtPmVudF9hcnJbZW50LT5pZHhdID0g ZW50OworCXNldF9iaXQoTUxYNV9DTURfRU5UX1NUQVRFX1BFTkRJTkdfQ09NUCwgJmVudC0+c3Rh dGUpOwogCWxheSA9IGdldF9pbnN0KGNtZCwgZW50LT5pZHgpOwogCWVudC0+bGF5ID0gbGF5Owog CW1lbXNldChsYXksIDAsIHNpemVvZigqbGF5KSk7CkBAIC04MjEsNiArODIyLDIwIEBAIHN0YXRp YyB2b2lkIGNtZF93b3JrX2hhbmRsZXIoc3RydWN0IHdvcmtfc3RydWN0ICp3b3JrKQogCWlmIChl bnQtPmNhbGxiYWNrKQogCQlzY2hlZHVsZV9kZWxheWVkX3dvcmsoJmVudC0+Y2JfdGltZW91dF93 b3JrLCBjYl90aW1lb3V0KTsKIAorCS8qIFNraXAgc2VuZGluZyBjb21tYW5kIHRvIGZ3IGlmIGlu dGVybmFsIGVycm9yICovCisJaWYgKHBjaV9jaGFubmVsX29mZmxpbmUoZGV2LT5wZGV2KSB8fAor CSAgICBkZXYtPnN0YXRlID09IE1MWDVfREVWSUNFX1NUQVRFX0lOVEVSTkFMX0VSUk9SKSB7CisJ CXU4IHN0YXR1cyA9IDA7CisJCXUzMiBkcnZfc3luZDsKKworCQllbnQtPnJldCA9IG1seDVfaW50 ZXJuYWxfZXJyX3JldF92YWx1ZShkZXYsIG1zZ190b19vcGNvZGUoZW50LT5pbiksICZkcnZfc3lu ZCwgJnN0YXR1cyk7CisJCU1MWDVfU0VUKG1ib3hfb3V0LCBlbnQtPm91dCwgc3RhdHVzLCBzdGF0 dXMpOworCQlNTFg1X1NFVChtYm94X291dCwgZW50LT5vdXQsIHN5bmRyb21lLCBkcnZfc3luZCk7 CisKKwkJbWx4NV9jbWRfY29tcF9oYW5kbGVyKGRldiwgMVVMIDw8IGVudC0+aWR4LCB0cnVlKTsK KwkJcmV0dXJuOworCX0KKwogCS8qIHJpbmcgZG9vcmJlbGwgYWZ0ZXIgdGhlIGRlc2NyaXB0b3Ig aXMgdmFsaWQgKi8KIAltbHg1X2NvcmVfZGJnKGRldiwgIndyaXRpbmcgMHgleCB0byBjb21tYW5k IGRvb3JiZWxsXG4iLCAxIDw8IGVudC0+aWR4KTsKIAl3bWIoKTsKQEAgLTgzMSw3ICs4NDYsNyBA QCBzdGF0aWMgdm9pZCBjbWRfd29ya19oYW5kbGVyKHN0cnVjdCB3b3JrX3N0cnVjdCAqd29yaykK IAkJcG9sbF90aW1lb3V0KGVudCk7CiAJCS8qIG1ha2Ugc3VyZSB3ZSByZWFkIHRoZSBkZXNjcmlw dG9yIGFmdGVyIG93bmVyc2hpcCBpcyBTVyAqLwogCQlybWIoKTsKLQkJbWx4NV9jbWRfY29tcF9o YW5kbGVyKGRldiwgMVVMIDw8IGVudC0+aWR4KTsKKwkJbWx4NV9jbWRfY29tcF9oYW5kbGVyKGRl diwgMVVMIDw8IGVudC0+aWR4LCAoZW50LT5yZXQgPT0gLUVUSU1FRE9VVCkpOwogCX0KIH0KIApA QCAtODc1LDcgKzg5MCw3IEBAIHN0YXRpYyBpbnQgd2FpdF9mdW5jKHN0cnVjdCBtbHg1X2NvcmVf ZGV2ICpkZXYsIHN0cnVjdCBtbHg1X2NtZF93b3JrX2VudCAqZW50KQogCQl3YWl0X2Zvcl9jb21w bGV0aW9uKCZlbnQtPmRvbmUpOwogCX0gZWxzZSBpZiAoIXdhaXRfZm9yX2NvbXBsZXRpb25fdGlt ZW91dCgmZW50LT5kb25lLCB0aW1lb3V0KSkgewogCQllbnQtPnJldCA9IC1FVElNRURPVVQ7Ci0J CW1seDVfY21kX2NvbXBfaGFuZGxlcihkZXYsIDFVTCA8PCBlbnQtPmlkeCk7CisJCW1seDVfY21k X2NvbXBfaGFuZGxlcihkZXYsIDFVTCA8PCBlbnQtPmlkeCwgdHJ1ZSk7CiAJfQogCiAJZXJyID0g ZW50LT5yZXQ7CkBAIC0xMzcxLDcgKzEzODYsNyBAQCBzdGF0aWMgdm9pZCBmcmVlX21zZyhzdHJ1 Y3QgbWx4NV9jb3JlX2RldiAqZGV2LCBzdHJ1Y3QgbWx4NV9jbWRfbXNnICptc2cpCiAJfQogfQog Ci12b2lkIG1seDVfY21kX2NvbXBfaGFuZGxlcihzdHJ1Y3QgbWx4NV9jb3JlX2RldiAqZGV2LCB1 NjQgdmVjKQordm9pZCBtbHg1X2NtZF9jb21wX2hhbmRsZXIoc3RydWN0IG1seDVfY29yZV9kZXYg KmRldiwgdTY0IHZlYywgYm9vbCBmb3JjZWQpCiB7CiAJc3RydWN0IG1seDVfY21kICpjbWQgPSAm ZGV2LT5jbWQ7CiAJc3RydWN0IG1seDVfY21kX3dvcmtfZW50ICplbnQ7CkBAIC0xMzkxLDYgKzE0 MDYsMTkgQEAgdm9pZCBtbHg1X2NtZF9jb21wX2hhbmRsZXIoc3RydWN0IG1seDVfY29yZV9kZXYg KmRldiwgdTY0IHZlYykKIAkJCXN0cnVjdCBzZW1hcGhvcmUgKnNlbTsKIAogCQkJZW50ID0gY21k LT5lbnRfYXJyW2ldOworCisJCQkvKiBpZiB3ZSBhbHJlYWR5IGNvbXBsZXRlZCB0aGUgY29tbWFu ZCwgaWdub3JlIGl0ICovCisJCQlpZiAoIXRlc3RfYW5kX2NsZWFyX2JpdChNTFg1X0NNRF9FTlRf U1RBVEVfUEVORElOR19DT01QLAorCQkJCQkJJmVudC0+c3RhdGUpKSB7CisJCQkJLyogb25seSBy ZWFsIGNvbXBsZXRpb24gY2FuIGZyZWUgdGhlIGNtZCBzbG90ICovCisJCQkJaWYgKCFmb3JjZWQp IHsKKwkJCQkJbWx4NV9jb3JlX2VycihkZXYsICJDb21tYW5kIGNvbXBsZXRpb24gYXJyaXZlZCBh ZnRlciB0aW1lb3V0IChlbnRyeSBpZHggPSAlZCkuXG4iLAorCQkJCQkJICAgICAgZW50LT5pZHgp OworCQkJCQlmcmVlX2VudChjbWQsIGVudC0+aWR4KTsKKwkJCQl9CisJCQkJY29udGludWU7CisJ CQl9CisKIAkJCWlmIChlbnQtPmNhbGxiYWNrKQogCQkJCWNhbmNlbF9kZWxheWVkX3dvcmsoJmVu dC0+Y2JfdGltZW91dF93b3JrKTsKIAkJCWlmIChlbnQtPnBhZ2VfcXVldWUpCkBAIC0xNDEzLDcg KzE0NDEsMTAgQEAgdm9pZCBtbHg1X2NtZF9jb21wX2hhbmRsZXIoc3RydWN0IG1seDVfY29yZV9k ZXYgKmRldiwgdTY0IHZlYykKIAkJCQltbHg1X2NvcmVfZGJnKGRldiwgImNvbW1hbmQgY29tcGxl dGVkLiByZXQgMHgleCwgZGVsaXZlcnkgc3RhdHVzICVzKDB4JXgpXG4iLAogCQkJCQkgICAgICBl bnQtPnJldCwgZGVsaXZfc3RhdHVzX3RvX3N0cihlbnQtPnN0YXR1cyksIGVudC0+c3RhdHVzKTsK IAkJCX0KLQkJCWZyZWVfZW50KGNtZCwgZW50LT5pZHgpOworCisJCQkvKiBvbmx5IHJlYWwgY29t cGxldGlvbiB3aWxsIGZyZWUgdGhlIGVudHJ5IHNsb3QgKi8KKwkJCWlmICghZm9yY2VkKQorCQkJ CWZyZWVfZW50KGNtZCwgZW50LT5pZHgpOwogCiAJCQlpZiAoZW50LT5jYWxsYmFjaykgewogCQkJ CWRzID0gZW50LT50czIgLSBlbnQtPnRzMTsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L2V0aGVy bmV0L21lbGxhbm94L21seDUvY29yZS9lcS5jIGIvZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFu b3gvbWx4NS9jb3JlL2VxLmMKaW5kZXggZWE1ZDhkMy4uMzNlYWU1YSAxMDA2NDQKLS0tIGEvZHJp dmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2VxLmMKKysrIGIvZHJpdmVycy9u ZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2VxLmMKQEAgLTQyMiw3ICs0MjIsNyBAQCBz dGF0aWMgaXJxcmV0dXJuX3QgbWx4NV9lcV9pbnQoaW50IGlycSwgdm9pZCAqZXFfcHRyKQogCQkJ YnJlYWs7CiAKIAkJY2FzZSBNTFg1X0VWRU5UX1RZUEVfQ01EOgotCQkJbWx4NV9jbWRfY29tcF9o YW5kbGVyKGRldiwgYmUzMl90b19jcHUoZXFlLT5kYXRhLmNtZC52ZWN0b3IpKTsKKwkJCW1seDVf Y21kX2NvbXBfaGFuZGxlcihkZXYsIGJlMzJfdG9fY3B1KGVxZS0+ZGF0YS5jbWQudmVjdG9yKSwg ZmFsc2UpOwogCQkJYnJlYWs7CiAKIAkJY2FzZSBNTFg1X0VWRU5UX1RZUEVfUE9SVF9DSEFOR0U6 CmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvaGVh bHRoLmMgYi9kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvaGVhbHRoLmMK aW5kZXggZDA1MTUzOS4uNDRmNTliMSAxMDA2NDQKLS0tIGEvZHJpdmVycy9uZXQvZXRoZXJuZXQv bWVsbGFub3gvbWx4NS9jb3JlL2hlYWx0aC5jCisrKyBiL2RyaXZlcnMvbmV0L2V0aGVybmV0L21l bGxhbm94L21seDUvY29yZS9oZWFsdGguYwpAQCAtOTAsNyArOTAsNyBAQCBzdGF0aWMgdm9pZCB0 cmlnZ2VyX2NtZF9jb21wbGV0aW9ucyhzdHJ1Y3QgbWx4NV9jb3JlX2RldiAqZGV2KQogCXNwaW5f dW5sb2NrX2lycXJlc3RvcmUoJmRldi0+Y21kLmFsbG9jX2xvY2ssIGZsYWdzKTsKIAogCW1seDVf Y29yZV9kYmcoZGV2LCAidmVjdG9yIDB4JWxseFxuIiwgdmVjdG9yKTsKLQltbHg1X2NtZF9jb21w X2hhbmRsZXIoZGV2LCB2ZWN0b3IpOworCW1seDVfY21kX2NvbXBfaGFuZGxlcihkZXYsIHZlY3Rv ciwgdHJ1ZSk7CiAJcmV0dXJuOwogCiBub190cmlnOgpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9saW51 eC9tbHg1L2RyaXZlci5oIGIvaW5jbHVkZS9saW51eC9tbHg1L2RyaXZlci5oCmluZGV4IDJmY2Zm NmIuLmM5NjVkMTEgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUvbGludXgvbWx4NS9kcml2ZXIuaAorKysg Yi9pbmNsdWRlL2xpbnV4L21seDUvZHJpdmVyLmgKQEAgLTc4NSw3ICs3ODUsMTIgQEAgZW51bSB7 CiAKIHR5cGVkZWYgdm9pZCAoKm1seDVfY21kX2Nia190KShpbnQgc3RhdHVzLCB2b2lkICpjb250 ZXh0KTsKIAorZW51bSB7CisJTUxYNV9DTURfRU5UX1NUQVRFX1BFTkRJTkdfQ09NUCwKK307CisK IHN0cnVjdCBtbHg1X2NtZF93b3JrX2VudCB7CisJdW5zaWduZWQgbG9uZwkJc3RhdGU7CiAJc3Ry dWN0IG1seDVfY21kX21zZyAgICAqaW47CiAJc3RydWN0IG1seDVfY21kX21zZyAgICAqb3V0Owog CXZvaWQJCSAgICAgICAqdW91dDsKQEAgLTk3OSw3ICs5ODQsNyBAQCB2b2lkIG1seDVfY3FfY29t cGxldGlvbihzdHJ1Y3QgbWx4NV9jb3JlX2RldiAqZGV2LCB1MzIgY3FuKTsKIHZvaWQgbWx4NV9y c2NfZXZlbnQoc3RydWN0IG1seDVfY29yZV9kZXYgKmRldiwgdTMyIHJzbiwgaW50IGV2ZW50X3R5 cGUpOwogdm9pZCBtbHg1X3NycV9ldmVudChzdHJ1Y3QgbWx4NV9jb3JlX2RldiAqZGV2LCB1MzIg c3JxbiwgaW50IGV2ZW50X3R5cGUpOwogc3RydWN0IG1seDVfY29yZV9zcnEgKm1seDVfY29yZV9n ZXRfc3JxKHN0cnVjdCBtbHg1X2NvcmVfZGV2ICpkZXYsIHUzMiBzcnFuKTsKLXZvaWQgbWx4NV9j bWRfY29tcF9oYW5kbGVyKHN0cnVjdCBtbHg1X2NvcmVfZGV2ICpkZXYsIHU2NCB2ZWMpOwordm9p ZCBtbHg1X2NtZF9jb21wX2hhbmRsZXIoc3RydWN0IG1seDVfY29yZV9kZXYgKmRldiwgdTY0IHZl YywgYm9vbCBmb3JjZWQpOwogdm9pZCBtbHg1X2NxX2V2ZW50KHN0cnVjdCBtbHg1X2NvcmVfZGV2 ICpkZXYsIHUzMiBjcW4sIGludCBldmVudF90eXBlKTsKIGludCBtbHg1X2NyZWF0ZV9tYXBfZXEo c3RydWN0IG1seDVfY29yZV9kZXYgKmRldiwgc3RydWN0IG1seDVfZXEgKmVxLCB1OCB2ZWNpZHgs CiAJCSAgICAgICBpbnQgbmVudCwgdTY0IG1hc2ssIGNvbnN0IGNoYXIgKm5hbWUsCi0tIAoyLjQu MTEKCgpGcm9tIDg5Y2NhYzhmMzgzYWQxOWY3ZjNjYjdiNjhjMzFiMjgwMjcyYWYxZWUgTW9uIFNl cCAxNyAwMDowMDowMCAyMDAxCkZyb206IEFuZHJldyBMdW5uIDxhbmRyZXdAbHVubi5jaD4KRGF0 ZTogVHVlLCAyMyBNYXkgMjAxNyAxNzo0OToxMyArMDIwMApTdWJqZWN0OiBbUEFUQ0ggMzAvNDFd IG5ldDogcGh5OiBtYXJ2ZWxsOiBMaW1pdCBlcnJhdGEgdG8gODhtMTEwMQoKWyBVcHN0cmVhbSBj b21taXQgZjI4OTk3ODgzNTNjMTM4OTE0MTJiMjczZmRmZjVmMDJkNDlhYTQwZiBdCgpUaGUgODht MTEwMSBoYXMgYW4gZXJyYXRhIHdoZW4gY29uZmlndXJpbmcgYXV0b25lZy4gSG93ZXZlciwgaXQg d2FzCmJlaW5nIGFwcGxpZWQgdG8gbWFueSBvdGhlciBNYXJ2ZWxsIFBIWXMgYXMgd2VsbC4gTGlt aXQgaXRzIHNjb3BlIHRvCmp1c3QgdGhlIDg4bTExMDEuCgpGaXhlczogNzY4ODQ2NzljNjQ0ICgi cGh5bGliOiBBZGQgc3VwcG9ydCBmb3IgTWFydmVsbCA4OGUxMTExUyBhbmQgODhlMTE0NSIpClJl cG9ydGVkLWJ5OiBEYW5pZWwgV2Fsa2VyIDxkYW5pZWx3YUBjaXNjby5jb20+ClNpZ25lZC1vZmYt Ynk6IEFuZHJldyBMdW5uIDxhbmRyZXdAbHVubi5jaD4KQWNrZWQtYnk6IEhhcmluaSBLYXRha2Ft IDxoYXJpbmlrQHhpbGlueC5jb20+ClJldmlld2VkLWJ5OiBGbG9yaWFuIEZhaW5lbGxpIDxmLmZh aW5lbGxpQGdtYWlsLmNvbT4KU2lnbmVkLW9mZi1ieTogRGF2aWQgUy4gTWlsbGVyIDxkYXZlbUBk YXZlbWxvZnQubmV0PgotLS0KIGRyaXZlcnMvbmV0L3BoeS9tYXJ2ZWxsLmMgfCA2NiArKysrKysr KysrKysrKysrKysrKysrKysrKy0tLS0tLS0tLS0tLS0tLS0tLS0tLQogMSBmaWxlIGNoYW5nZWQs IDM3IGluc2VydGlvbnMoKyksIDI5IGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL2RyaXZlcnMv bmV0L3BoeS9tYXJ2ZWxsLmMgYi9kcml2ZXJzL25ldC9waHkvbWFydmVsbC5jCmluZGV4IDI3MmIw NTEuLjkwOTdlNDIgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvbmV0L3BoeS9tYXJ2ZWxsLmMKKysrIGIv ZHJpdmVycy9uZXQvcGh5L21hcnZlbGwuYwpAQCAtMjU1LDM0ICsyNTUsNiBAQCBzdGF0aWMgaW50 IG1hcnZlbGxfY29uZmlnX2FuZWcoc3RydWN0IHBoeV9kZXZpY2UgKnBoeWRldikKIHsKIAlpbnQg ZXJyOwogCi0JLyogVGhlIE1hcnZlbGwgUEhZIGhhcyBhbiBlcnJhdGEgd2hpY2ggcmVxdWlyZXMK LQkgKiB0aGF0IGNlcnRhaW4gcmVnaXN0ZXJzIGdldCB3cml0dGVuIGluIG9yZGVyCi0JICogdG8g cmVzdGFydCBhdXRvbmVnb3RpYXRpb24gKi8KLQllcnIgPSBwaHlfd3JpdGUocGh5ZGV2LCBNSUlf Qk1DUiwgQk1DUl9SRVNFVCk7Ci0KLQlpZiAoZXJyIDwgMCkKLQkJcmV0dXJuIGVycjsKLQotCWVy ciA9IHBoeV93cml0ZShwaHlkZXYsIDB4MWQsIDB4MWYpOwotCWlmIChlcnIgPCAwKQotCQlyZXR1 cm4gZXJyOwotCi0JZXJyID0gcGh5X3dyaXRlKHBoeWRldiwgMHgxZSwgMHgyMDBjKTsKLQlpZiAo ZXJyIDwgMCkKLQkJcmV0dXJuIGVycjsKLQotCWVyciA9IHBoeV93cml0ZShwaHlkZXYsIDB4MWQs IDB4NSk7Ci0JaWYgKGVyciA8IDApCi0JCXJldHVybiBlcnI7Ci0KLQllcnIgPSBwaHlfd3JpdGUo cGh5ZGV2LCAweDFlLCAwKTsKLQlpZiAoZXJyIDwgMCkKLQkJcmV0dXJuIGVycjsKLQotCWVyciA9 IHBoeV93cml0ZShwaHlkZXYsIDB4MWUsIDB4MTAwKTsKLQlpZiAoZXJyIDwgMCkKLQkJcmV0dXJu IGVycjsKLQogCWVyciA9IG1hcnZlbGxfc2V0X3BvbGFyaXR5KHBoeWRldiwgcGh5ZGV2LT5tZGl4 X2N0cmwpOwogCWlmIChlcnIgPCAwKQogCQlyZXR1cm4gZXJyOwpAQCAtMzE2LDYgKzI4OCw0MiBA QCBzdGF0aWMgaW50IG1hcnZlbGxfY29uZmlnX2FuZWcoc3RydWN0IHBoeV9kZXZpY2UgKnBoeWRl dikKIAlyZXR1cm4gMDsKIH0KIAorc3RhdGljIGludCBtODhlMTEwMV9jb25maWdfYW5lZyhzdHJ1 Y3QgcGh5X2RldmljZSAqcGh5ZGV2KQoreworCWludCBlcnI7CisKKwkvKiBUaGlzIE1hcnZlbGwg UEhZIGhhcyBhbiBlcnJhdGEgd2hpY2ggcmVxdWlyZXMKKwkgKiB0aGF0IGNlcnRhaW4gcmVnaXN0 ZXJzIGdldCB3cml0dGVuIGluIG9yZGVyCisJICogdG8gcmVzdGFydCBhdXRvbmVnb3RpYXRpb24K KwkgKi8KKwllcnIgPSBwaHlfd3JpdGUocGh5ZGV2LCBNSUlfQk1DUiwgQk1DUl9SRVNFVCk7CisK KwlpZiAoZXJyIDwgMCkKKwkJcmV0dXJuIGVycjsKKworCWVyciA9IHBoeV93cml0ZShwaHlkZXYs IDB4MWQsIDB4MWYpOworCWlmIChlcnIgPCAwKQorCQlyZXR1cm4gZXJyOworCisJZXJyID0gcGh5 X3dyaXRlKHBoeWRldiwgMHgxZSwgMHgyMDBjKTsKKwlpZiAoZXJyIDwgMCkKKwkJcmV0dXJuIGVy cjsKKworCWVyciA9IHBoeV93cml0ZShwaHlkZXYsIDB4MWQsIDB4NSk7CisJaWYgKGVyciA8IDAp CisJCXJldHVybiBlcnI7CisKKwllcnIgPSBwaHlfd3JpdGUocGh5ZGV2LCAweDFlLCAwKTsKKwlp ZiAoZXJyIDwgMCkKKwkJcmV0dXJuIGVycjsKKworCWVyciA9IHBoeV93cml0ZShwaHlkZXYsIDB4 MWUsIDB4MTAwKTsKKwlpZiAoZXJyIDwgMCkKKwkJcmV0dXJuIGVycjsKKworCXJldHVybiBtYXJ2 ZWxsX2NvbmZpZ19hbmVnKHBoeWRldik7Cit9CisKIHN0YXRpYyBpbnQgbTg4ZTExMTFfY29uZmln X2FuZWcoc3RydWN0IHBoeV9kZXZpY2UgKnBoeWRldikKIHsKIAlpbnQgZXJyOwpAQCAtMTg5Miw3 ICsxOTAwLDcgQEAgc3RhdGljIHN0cnVjdCBwaHlfZHJpdmVyIG1hcnZlbGxfZHJpdmVyc1tdID0g ewogCQkuZmxhZ3MgPSBQSFlfSEFTX0lOVEVSUlVQVCwKIAkJLnByb2JlID0gbWFydmVsbF9wcm9i ZSwKIAkJLmNvbmZpZ19pbml0ID0gJm1hcnZlbGxfY29uZmlnX2luaXQsCi0JCS5jb25maWdfYW5l ZyA9ICZtYXJ2ZWxsX2NvbmZpZ19hbmVnLAorCQkuY29uZmlnX2FuZWcgPSAmbTg4ZTExMDFfY29u ZmlnX2FuZWcsCiAJCS5yZWFkX3N0YXR1cyA9ICZnZW5waHlfcmVhZF9zdGF0dXMsCiAJCS5hY2tf aW50ZXJydXB0ID0gJm1hcnZlbGxfYWNrX2ludGVycnVwdCwKIAkJLmNvbmZpZ19pbnRyID0gJm1h cnZlbGxfY29uZmlnX2ludHIsCi0tIAoyLjQuMTEKCgpGcm9tIGEyNzM0NDZjYTkzNTdlNzFmN2Y2 Mzk3ZDQ5NzdiYTg2NDAzNTQ1ZDEgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCkZyb206IFZsYWQg WWFzZXZpY2ggPHZ5YXNldmljaEBnbWFpbC5jb20+CkRhdGU6IFR1ZSwgMjMgTWF5IDIwMTcgMTM6 Mzg6NDEgLTA0MDAKU3ViamVjdDogW1BBVENIIDMxLzQxXSB2bGFuOiBGaXggdGNwIGNoZWNrc3Vt IG9mZmxvYWRzIGluIFEtaW4tUSB2bGFucwoKWyBVcHN0cmVhbSBjb21taXQgMzVkMmY4MGIwN2Ji ZTAzZmIzNThhZmIwYmRlZmY3NDM3YTdkNjdmZiBdCgpJdCBhcHBlYXJzIHRoYXQgVENQIGNoZWNr c3VtIG9mZmxvYWRpbmcgaGFzIGJlZW4gYnJva2VuIGZvcgpRLWluLVEgdmxhbnMuICBUaGUgYmVo YXZpb3Igd2FzIGV4ZWNlcmJhdGVkIGJ5IHRoZQpzZXJpZXMKICAgIGNvbW1pdCBhZmIwYmM5NzJi NTIgKCJNZXJnZSBicmFuY2ggJ3N0YWNrZWRfdmxhbl90c28nIikKdGhhdCB0aGF0IGVuYWJsZWQg YWNjbGVsZXJhdGlvbiBmZWF0dXJlcyBvbiBzdGFja2VkIHZsYW5zLgoKSG93ZXZlciwgZXZlbnQg d2l0aG91dCB0aGF0IHNlcmllcywgaXQgaXMgcG9zc2libGUgdG8gdHJpZ2dlcgp0aGlzIGlzc3Vl LiAgSXQganVzdCByZXF1aXJlcyBhIGxvdCBtb3JlIHNwZWNpYWxpemVkIGNvbmZpZ3VyYXRpb24u CgpUaGUgcm9vdCBjYXVzZSBpcyB0aGUgaW50ZXJhY3Rpb24gYmV0d2VlbiBob3cKbmV0ZGV2X2lu dGVyc2VjdF9mZWF0dXJlcygpIHdvcmtzLCB0aGUgZmVhdHVyZXMgYWN0dWFsbHkgc2V0IG9uCnRo ZSB2bGFuIGRldmljZXMgYW5kIEhXIGhhdmluZyB0aGUgYWJpbGl0eSB0byBydW4gY2hlY2tzdW0g d2l0aApsb25nZXIgaGVhZGVycy4KClRoZSBpc3N1ZSBzdGFydHMgd2hlbiBuZXRkZXZfaW50ZXJl c2VjdF9mZWF0dXJlcygpIHJlcGxhY2VzCk5FVElGX0ZfSFdfQ1NVTSB3aXRoIGEgY29tYmluYXRp b24gb2YgTkVUSUZfRl9JUF9DU1VNIHwgTkVUSUZfRl9JUFY2X0NTVU0sCmlmIHRoZSBIVyBhZHZl cnRpc2VzIElQfElQVjYgc3BlY2lmaWMgY2hlY2tzdW1zLiAgVGhpcyBoYXBwZW5zCmZvciB0YWdn ZWQgYW5kIG11bHRpLXRhZ2dlZCBwYWNrZXRzLiAgIEhvd2V2ZXIsIEhXIHRoYXQgZW5hYmxlcwpJ UHxJUFY2IGNoZWNrc3VtIG9mZmxvYWRpbmcgZG9lc24ndCBndXJhbnRlZSB0aGF0IHBhY2tldHMg d2l0aAphcmJpdHJhcmlseSBsb25nIGhlYWRlcnMgY2FuIGJlIGNoZWNrc3VtbWVkLgoKVGhpcyBw YXRjaCBkaXNhYmxlcyBJUHxJUFY2IGNoZWNrc3VtcyBvbiB0aGUgcGFja2V0IGZvciBtdWx0aS10 YWdnZWQKcGFja2V0cy4KCkNDOiBUb3NoaWFraSBNYWtpdGEgPG1ha2l0YS50b3NoaWFraUBsYWIu bnR0LmNvLmpwPgpDQzogTWljaGFsIEt1YmVjZWsgPG1rdWJlY2VrQHN1c2UuY3o+ClNpZ25lZC1v ZmYtYnk6IFZsYWRpc2xhdiBZYXNldmljaCA8dnlhc2V2aWNAcmVkaGF0LmNvbT4KQWNrZWQtYnk6 IFRvc2hpYWtpIE1ha2l0YSA8bWFraXRhLnRvc2hpYWtpQGxhYi5udHQuY28uanA+ClNpZ25lZC1v ZmYtYnk6IERhdmlkIFMuIE1pbGxlciA8ZGF2ZW1AZGF2ZW1sb2Z0Lm5ldD4KLS0tCiBpbmNsdWRl L2xpbnV4L2lmX3ZsYW4uaCB8IDE4ICsrKysrKysrKystLS0tLS0tLQogMSBmaWxlIGNoYW5nZWQs IDEwIGluc2VydGlvbnMoKyksIDggZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9s aW51eC9pZl92bGFuLmggYi9pbmNsdWRlL2xpbnV4L2lmX3ZsYW4uaAppbmRleCA4ZDVmY2Q2Li4y ODNkYzJmIDEwMDY0NAotLS0gYS9pbmNsdWRlL2xpbnV4L2lmX3ZsYW4uaAorKysgYi9pbmNsdWRl L2xpbnV4L2lmX3ZsYW4uaApAQCAtNjE0LDE0ICs2MTQsMTYgQEAgc3RhdGljIGlubGluZSBib29s IHNrYl92bGFuX3RhZ2dlZF9tdWx0aShjb25zdCBzdHJ1Y3Qgc2tfYnVmZiAqc2tiKQogc3RhdGlj IGlubGluZSBuZXRkZXZfZmVhdHVyZXNfdCB2bGFuX2ZlYXR1cmVzX2NoZWNrKGNvbnN0IHN0cnVj dCBza19idWZmICpza2IsCiAJCQkJCQkgICAgbmV0ZGV2X2ZlYXR1cmVzX3QgZmVhdHVyZXMpCiB7 Ci0JaWYgKHNrYl92bGFuX3RhZ2dlZF9tdWx0aShza2IpKQotCQlmZWF0dXJlcyA9IG5ldGRldl9p bnRlcnNlY3RfZmVhdHVyZXMoZmVhdHVyZXMsCi0JCQkJCQkgICAgIE5FVElGX0ZfU0cgfAotCQkJ CQkJICAgICBORVRJRl9GX0hJR0hETUEgfAotCQkJCQkJICAgICBORVRJRl9GX0ZSQUdMSVNUIHwK LQkJCQkJCSAgICAgTkVUSUZfRl9IV19DU1VNIHwKLQkJCQkJCSAgICAgTkVUSUZfRl9IV19WTEFO X0NUQUdfVFggfAotCQkJCQkJICAgICBORVRJRl9GX0hXX1ZMQU5fU1RBR19UWCk7CisJaWYgKHNr Yl92bGFuX3RhZ2dlZF9tdWx0aShza2IpKSB7CisJCS8qIEluIHRoZSBjYXNlIG9mIG11bHRpLXRh Z2dlZCBwYWNrZXRzLCB1c2UgYSBkaXJlY3QgbWFzaworCQkgKiBpbnN0ZWFkIG9mIHVzaW5nIG5l dGRldl9pbnRlcmVzZWN0X2ZlYXR1cmVzKCksIHRvIG1ha2UKKwkJICogc3VyZSB0aGF0IG9ubHkg ZGV2aWNlcyBzdXBwb3J0aW5nIE5FVElGX0ZfSFdfQ1NVTSB3aWxsCisJCSAqIGhhdmUgY2hlY2tz dW0gb2ZmbG9hZGluZyBzdXBwb3J0LgorCQkgKi8KKwkJZmVhdHVyZXMgJj0gTkVUSUZfRl9TRyB8 IE5FVElGX0ZfSElHSERNQSB8IE5FVElGX0ZfSFdfQ1NVTSB8CisJCQkgICAgTkVUSUZfRl9GUkFH TElTVCB8IE5FVElGX0ZfSFdfVkxBTl9DVEFHX1RYIHwKKwkJCSAgICBORVRJRl9GX0hXX1ZMQU5f U1RBR19UWDsKKwl9CiAKIAlyZXR1cm4gZmVhdHVyZXM7CiB9Ci0tIAoyLjQuMTEKCgpGcm9tIDVj ODBiMDg4YWY5NzA5OGJiMzBlZDExZWMzNzcyYWU5MzQ4MzQwMDcgTW9uIFNlcCAxNyAwMDowMDow MCAyMDAxCkZyb206IFZsYWQgWWFzZXZpY2ggPHZ5YXNldmljaEBnbWFpbC5jb20+CkRhdGU6IFR1 ZSwgMjMgTWF5IDIwMTcgMTM6Mzg6NDIgLTA0MDAKU3ViamVjdDogW1BBVENIIDMyLzQxXSBiZTJu ZXQ6IEZpeCBvZmZsb2FkIGZlYXR1cmVzIGZvciBRLWluLVEgcGFja2V0cwoKWyBVcHN0cmVhbSBj b21taXQgY2M2ZTlkZTYyYTdmODRjOTI5M2EyZWE0MWJjNDEyYjU1YmI0NmU4NSBdCgpBdCBsZWFz dCBzb21lIG9mIHRoZSBiZTJuZXQgY2FyZHMgZG8gbm90IHNlZW0gdG8gYmUgY2FwYWJsZWQKb2Yg cGVyZm9ybWluZyBjaGVja3N1bSBvZmZsb2FkIGNvbXB1dGlvbnMgb24gUS1pbi1RIHBhY2tldHMu CkluIHRoZXNlIGNhc2UsIHRoZSByZWNldmllZCBjaGVja3N1bSBvbiB0aGUgcmVtb3RlIGlzIGlu dmFsaWQKYW5kIFRDUCBzeW4gcGFja2V0cyBhcmUgZHJvcHBlZC4KClRoaXMgcGF0Y2ggYWRkcyBh IGNhbGwgdG8gY2hlY2sgZGlzYmxlZCBhY2NlbGVyYXRpb24gZmVhdHVyZXMKb24gUS1pbi1RIHRh Z2dlZCB0cmFmZmljLgoKQ0M6IFNhdGh5YSBQZXJsYSA8c2F0aHlhLnBlcmxhQGJyb2FkY29tLmNv bT4KQ0M6IEFqaXQgS2hhcGFyZGUgPGFqaXQua2hhcGFyZGVAYnJvYWRjb20uY29tPgpDQzogU3Jp aGFyc2hhIEJhc2F2YXBhdG5hIDxzcmloYXJzaGEuYmFzYXZhcGF0bmFAYnJvYWRjb20uY29tPgpD QzogU29tbmF0aCBLb3R1ciA8c29tbmF0aC5rb3R1ckBicm9hZGNvbS5jb20+ClNpZ25lZC1vZmYt Ynk6IFZsYWRpc2xhdiBZYXNldmljaCA8dnlhc2V2aWNAcmVkaGF0LmNvbT4KU2lnbmVkLW9mZi1i eTogRGF2aWQgUy4gTWlsbGVyIDxkYXZlbUBkYXZlbWxvZnQubmV0PgotLS0KIGRyaXZlcnMvbmV0 L2V0aGVybmV0L2VtdWxleC9iZW5ldC9iZV9tYWluLmMgfCA0ICsrKy0KIDEgZmlsZSBjaGFuZ2Vk LCAzIGluc2VydGlvbnMoKyksIDEgZGVsZXRpb24oLSkKCmRpZmYgLS1naXQgYS9kcml2ZXJzL25l dC9ldGhlcm5ldC9lbXVsZXgvYmVuZXQvYmVfbWFpbi5jIGIvZHJpdmVycy9uZXQvZXRoZXJuZXQv ZW11bGV4L2JlbmV0L2JlX21haW4uYwppbmRleCA2YmUzYjlhLi5mZjYxN2JlIDEwMDY0NAotLS0g YS9kcml2ZXJzL25ldC9ldGhlcm5ldC9lbXVsZXgvYmVuZXQvYmVfbWFpbi5jCisrKyBiL2RyaXZl cnMvbmV0L2V0aGVybmV0L2VtdWxleC9iZW5ldC9iZV9tYWluLmMKQEAgLTUwMjcsOSArNTAyNywx MSBAQCBzdGF0aWMgbmV0ZGV2X2ZlYXR1cmVzX3QgYmVfZmVhdHVyZXNfY2hlY2soc3RydWN0IHNr X2J1ZmYgKnNrYiwKIAlzdHJ1Y3QgYmVfYWRhcHRlciAqYWRhcHRlciA9IG5ldGRldl9wcml2KGRl dik7CiAJdTggbDRfaGRyID0gMDsKIAotCS8qIFRoZSBjb2RlIGJlbG93IHJlc3RyaWN0cyBvZmZs b2FkIGZlYXR1cmVzIGZvciBzb21lIHR1bm5lbGVkIHBhY2tldHMuCisJLyogVGhlIGNvZGUgYmVs b3cgcmVzdHJpY3RzIG9mZmxvYWQgZmVhdHVyZXMgZm9yIHNvbWUgdHVubmVsZWQgYW5kCisJICog US1pbi1RIHBhY2tldHMuCiAJICogT2ZmbG9hZCBmZWF0dXJlcyBmb3Igbm9ybWFsIChub24gdHVu bmVsKSBwYWNrZXRzIGFyZSB1bmNoYW5nZWQuCiAJICovCisJZmVhdHVyZXMgPSB2bGFuX2ZlYXR1 cmVzX2NoZWNrKHNrYiwgZmVhdHVyZXMpOwogCWlmICghc2tiLT5lbmNhcHN1bGF0aW9uIHx8CiAJ ICAgICEoYWRhcHRlci0+ZmxhZ3MgJiBCRV9GTEFHU19WWExBTl9PRkZMT0FEUykpCiAJCXJldHVy biBmZWF0dXJlczsKLS0gCjIuNC4xMQoKCkZyb20gYWU3ODg1OGRjNmZhMzMyMzQ1OTFkYzY3MzY5 NGNhZmI1NGJhZTlkZiBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJvbTogVmxhZCBZYXNldmlj aCA8dnlhc2V2aWNoQGdtYWlsLmNvbT4KRGF0ZTogVHVlLCAyMyBNYXkgMjAxNyAxMzozODo0MyAt MDQwMApTdWJqZWN0OiBbUEFUQ0ggMzMvNDFdIHZpcnRpby1uZXQ6IGVuYWJsZSBUU08vY2hlY2tz dW0gb2ZmbG9hZHMgZm9yIFEtaW4tUQogdmxhbnMKClsgVXBzdHJlYW0gY29tbWl0IDI4MzZiNGYy MjRkNGZkN2QxYTJiMjNjM2VlY2FmMGYwYWUxOTlhNzQgXQoKU2luY2UgdmlydGlvIGRvZXMgbm90 IHByb3ZpZGUgaXQncyBvd24gbmRvX2ZlYXR1cmVzX2NoZWNrIGhhbmRsZXIsClRTTywgYW5kIG5v dyBjaGVja3N1bSBvZmZsb2FkLCBhcmUgZGlzYWJsZWQgZm9yIHN0YWNrZWQgdmxhbnMuClJlLWVu YWJsZSB0aGUgc3VwcG9ydCBhbmQgbGV0IHRoZSBob3N0IHRha2UgY2FyZSBvZiBpdC4gIFRoaXMK cmVzdG9yZXMvaW1wcm92ZXMgR3Vlc3QtdG8tR3Vlc3QgcGVyZm9ybWFuY2Ugb3ZlciBRLWluLVEg dmxhbnMuCgpBY2tlZC1ieTogSmFzb24gV2FuZyA8amFzb3dhbmdAcmVkaGF0LmNvbT4KQWNrZWQt Ynk6IE1pY2hhZWwgUy4gVHNpcmtpbiA8bXN0QHJlZGhhdC5jb20+ClNpZ25lZC1vZmYtYnk6IFZs YWRpc2xhdiBZYXNldmljaCA8dnlhc2V2aWNAcmVkaGF0LmNvbT4KU2lnbmVkLW9mZi1ieTogRGF2 aWQgUy4gTWlsbGVyIDxkYXZlbUBkYXZlbWxvZnQubmV0PgotLS0KIGRyaXZlcnMvbmV0L3ZpcnRp b19uZXQuYyB8IDEgKwogMSBmaWxlIGNoYW5nZWQsIDEgaW5zZXJ0aW9uKCspCgpkaWZmIC0tZ2l0 IGEvZHJpdmVycy9uZXQvdmlydGlvX25ldC5jIGIvZHJpdmVycy9uZXQvdmlydGlvX25ldC5jCmlu ZGV4IGYzNjU4NDYuLmQ5ZDhmNGYgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvbmV0L3ZpcnRpb19uZXQu YworKysgYi9kcml2ZXJzL25ldC92aXJ0aW9fbmV0LmMKQEAgLTE4OTQsNiArMTg5NCw3IEBAIHN0 YXRpYyBjb25zdCBzdHJ1Y3QgbmV0X2RldmljZV9vcHMgdmlydG5ldF9uZXRkZXYgPSB7CiAJLm5k b19wb2xsX2NvbnRyb2xsZXIgPSB2aXJ0bmV0X25ldHBvbGwsCiAjZW5kaWYKIAkubmRvX3hkcAkJ PSB2aXJ0bmV0X3hkcCwKKwkubmRvX2ZlYXR1cmVzX2NoZWNrCT0gcGFzc3RocnVfZmVhdHVyZXNf Y2hlY2ssCiB9OwogCiBzdGF0aWMgdm9pZCB2aXJ0bmV0X2NvbmZpZ19jaGFuZ2VkX3dvcmsoc3Ry dWN0IHdvcmtfc3RydWN0ICp3b3JrKQotLSAKMi40LjExCgoKRnJvbSA2NTA3MTljZTg2MWIzZmEx OWRhMWRlYzhhYjNjM2YzNWEwZDM2OTZhIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBF cmljIEdhcnZlciA8ZUBlcmlnLm1lPgpEYXRlOiBUdWUsIDIzIE1heSAyMDE3IDE4OjM3OjI3IC0w NDAwClN1YmplY3Q6IFtQQVRDSCAzNC80MV0gZ2VuZXZlOiBmaXggZmlsbF9pbmZvIHdoZW4gdXNp bmcgY29sbGVjdF9tZXRhZGF0YQoKWyBVcHN0cmVhbSBjb21taXQgMTEzODdmZTRhOThmNzVkMWY0 Y2RiM2VmZTNiNDJiMTkyMDVjOWRmNSBdCgpTaW5jZSA5YjQ0MzdhNWI4NzAgKCJnZW5ldmU6IFVu aWZ5IExXVCBhbmQgbmV0ZGV2IGhhbmRsaW5nLiIpIGZpbGxfaW5mbwpkb2VzIG5vdCByZXR1cm4g VURQX1pFUk9fQ1NVTTZfUlggd2hlbiB1c2luZyBDT0xMRUNUX01FVEFEQVRBLiBUaGlzIGlzCmJl Y2F1c2UgaXQgdXNlcyBpcF90dW5uZWxfaW5mb19hZigpIHdpdGggdGhlIGRldmljZSBsZXZlbCBp bmZvLCB3aGljaCBpcwpub3QgdmFsaWQgZm9yIENPTExFQ1RfTUVUQURBVEEuCgpGaXggYnkgY2hl Y2tpbmcgZm9yIHRoZSBwcmVzZW5jZSBvZiB0aGUgYWN0dWFsIHNvY2tldHMuCgpGaXhlczogOWI0 NDM3YTViODcwICgiZ2VuZXZlOiBVbmlmeSBMV1QgYW5kIG5ldGRldiBoYW5kbGluZy4iKQpTaWdu ZWQtb2ZmLWJ5OiBFcmljIEdhcnZlciA8ZUBlcmlnLm1lPgpBY2tlZC1ieTogUHJhdmluIEIgU2hl bGFyIDxwc2hlbGFyQG92bi5vcmc+ClNpZ25lZC1vZmYtYnk6IERhdmlkIFMuIE1pbGxlciA8ZGF2 ZW1AZGF2ZW1sb2Z0Lm5ldD4KLS0tCiBkcml2ZXJzL25ldC9nZW5ldmUuYyB8IDggKysrKystLS0K IDEgZmlsZSBjaGFuZ2VkLCA1IGluc2VydGlvbnMoKyksIDMgZGVsZXRpb25zKC0pCgpkaWZmIC0t Z2l0IGEvZHJpdmVycy9uZXQvZ2VuZXZlLmMgYi9kcml2ZXJzL25ldC9nZW5ldmUuYwppbmRleCBk ZWM1ZDU2Li45NTlmZDEyIDEwMDY0NAotLS0gYS9kcml2ZXJzL25ldC9nZW5ldmUuYworKysgYi9k cml2ZXJzL25ldC9nZW5ldmUuYwpAQCAtMTI5Myw3ICsxMjkzLDcgQEAgc3RhdGljIGludCBnZW5l dmVfZmlsbF9pbmZvKHN0cnVjdCBza19idWZmICpza2IsIGNvbnN0IHN0cnVjdCBuZXRfZGV2aWNl ICpkZXYpCiAJaWYgKG5sYV9wdXRfdTMyKHNrYiwgSUZMQV9HRU5FVkVfSUQsIHZuaSkpCiAJCWdv dG8gbmxhX3B1dF9mYWlsdXJlOwogCi0JaWYgKGlwX3R1bm5lbF9pbmZvX2FmKGluZm8pID09IEFG X0lORVQpIHsKKwlpZiAocnRubF9kZXJlZmVyZW5jZShnZW5ldmUtPnNvY2s0KSkgewogCQlpZiAo bmxhX3B1dF9pbl9hZGRyKHNrYiwgSUZMQV9HRU5FVkVfUkVNT1RFLAogCQkJCSAgICBpbmZvLT5r ZXkudS5pcHY0LmRzdCkpCiAJCQlnb3RvIG5sYV9wdXRfZmFpbHVyZTsKQEAgLTEzMDIsOCArMTMw MiwxMCBAQCBzdGF0aWMgaW50IGdlbmV2ZV9maWxsX2luZm8oc3RydWN0IHNrX2J1ZmYgKnNrYiwg Y29uc3Qgc3RydWN0IG5ldF9kZXZpY2UgKmRldikKIAkJCSAgICAgICAhIShpbmZvLT5rZXkudHVu X2ZsYWdzICYgVFVOTkVMX0NTVU0pKSkKIAkJCWdvdG8gbmxhX3B1dF9mYWlsdXJlOwogCisJfQor CiAjaWYgSVNfRU5BQkxFRChDT05GSUdfSVBWNikKLQl9IGVsc2UgeworCWlmIChydG5sX2RlcmVm ZXJlbmNlKGdlbmV2ZS0+c29jazYpKSB7CiAJCWlmIChubGFfcHV0X2luNl9hZGRyKHNrYiwgSUZM QV9HRU5FVkVfUkVNT1RFNiwKIAkJCQkgICAgICZpbmZvLT5rZXkudS5pcHY2LmRzdCkpCiAJCQln b3RvIG5sYV9wdXRfZmFpbHVyZTsKQEAgLTEzMTUsOCArMTMxNyw4IEBAIHN0YXRpYyBpbnQgZ2Vu ZXZlX2ZpbGxfaW5mbyhzdHJ1Y3Qgc2tfYnVmZiAqc2tiLCBjb25zdCBzdHJ1Y3QgbmV0X2Rldmlj ZSAqZGV2KQogCQlpZiAobmxhX3B1dF91OChza2IsIElGTEFfR0VORVZFX1VEUF9aRVJPX0NTVU02 X1JYLAogCQkJICAgICAgICFnZW5ldmUtPnVzZV91ZHA2X3J4X2NoZWNrc3VtcykpCiAJCQlnb3Rv IG5sYV9wdXRfZmFpbHVyZTsKLSNlbmRpZgogCX0KKyNlbmRpZgogCiAJaWYgKG5sYV9wdXRfdTgo c2tiLCBJRkxBX0dFTkVWRV9UVEwsIGluZm8tPmtleS50dGwpIHx8CiAJICAgIG5sYV9wdXRfdTgo c2tiLCBJRkxBX0dFTkVWRV9UT1MsIGluZm8tPmtleS50b3MpIHx8Ci0tIAoyLjQuMTEKCgpGcm9t IGE1NGY1NjQ1MTk5MDExZjdlYWRiMjdhNjkxNTVmM2E1NTNlNTg2NjAgTW9uIFNlcCAxNyAwMDow MDowMCAyMDAxCkZyb206IFdlaSBXYW5nIDx3ZWl3YW5AZ29vZ2xlLmNvbT4KRGF0ZTogV2VkLCAy NCBNYXkgMjAxNyAwOTo1OTozMSAtMDcwMApTdWJqZWN0OiBbUEFUQ0ggMzUvNDFdIHRjcDogYXZv aWQgZmFzdG9wZW4gQVBJIHRvIGJlIHVzZWQgb24gQUZfVU5TUEVDCgpbIFVwc3RyZWFtIGNvbW1p dCBiYTYxNWY2NzUyODFkNzZmZDE5YWEwMzU1ODc3N2Y4MWZiNmI2MDg0IF0KCkZhc3RvcGVuIEFQ SSBzaG91bGQgYmUgdXNlZCB0byBwZXJmb3JtIGZhc3RvcGVuIG9wZXJhdGlvbnMgb24gdGhlIFRD UApzb2NrZXQuIEl0IGRvZXMgbm90IG1ha2Ugc2Vuc2UgdG8gdXNlIGZhc3RvcGVuIEFQSSB0byBw ZXJmb3JtIGRpc2Nvbm5lY3QKYnkgY2FsbGluZyBpdCB3aXRoIEFGX1VOU1BFQy4gVGhlIGZhc3Rv cGVuIGRhdGEgcGF0aCBpcyBhbHNvIHByb25lIHRvCnJhY2UgY29uZGl0aW9ucyBhbmQgYnVncyB3 aGVuIHVzaW5nIHdpdGggQUZfVU5TUEVDLgoKT25lIGlzc3VlIHJlcG9ydGVkIGFuZCBhbmFseXpl ZCBieSBWZWdhcmQgTm9zc3VtIGlzIGFzIGZvbGxvd3M6CisrKysrKysrKysrKysrKysrKysrKysr KysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKwpUaHJlYWQgQTogICAgICAgICAgICAg ICAgICAgICAgICAgICAgVGhyZWFkIEI6Ci0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpzZW5kdG8oKQogLSB0Y3Bf c2VuZG1zZygpCiAgICAgLSBza19zdHJlYW1fbWVtb3J5X2ZyZWUoKSA9IDAKICAgICAgICAgLSBn b3RvIHdhaXRfZm9yX3NuZGJ1ZgoJICAgICAtIHNrX3N0cmVhbV93YWl0X21lbW9yeSgpCgkgICAg ICAgIC0gc2tfd2FpdF9ldmVudCgpIC8vIHNsZWVwCiAgICAgICAgICB8ICAgICAgICAgICAgICAg ICAgICAgICAgICBzZW5kdG8oZmxhZ3M9TVNHX0ZBU1RPUEVOLCBkZXN0X2FkZHI9QUZfVU5TUEVD KQoJICB8ICAgICAgICAgICAgICAgICAgICAgICAgICAgLSB0Y3Bfc2VuZG1zZygpCgkgIHwgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAtIHRjcF9zZW5kbXNnX2Zhc3RvcGVuKCkKCSAgfCAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC0gX19pbmV0X3N0cmVhbV9jb25uZWN0KCkK CSAgfCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC0gdGNwX2Rpc2Nvbm5lY3Qo KSAvL2JlY2F1c2Ugb2YgQUZfVU5TUEVDCgkgIHwgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAtIHRjcF90cmFuc21pdF9za2IoKS8vIHNlbmQgUlNUCgkgIHwgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAtIHJldHVybiAwOyAvLyBubyByZWNvbm5lY3QhCgkg IHwgICAgICAgICAgICAgICAgICAgICAgICAgICAtIHNrX3N0cmVhbV93YWl0X2Nvbm5lY3QoKQoJ ICB8ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLSBzb2NrX2Vycm9yKCkKCSAgfCAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC0geGNoZygmc2stPnNrX2VyciwgMCkK CSAgfCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC0gcmV0dXJuIC1FQ09OTlJF U0VUCgktIC4uLiAvLyB3YWtlIHVwLCBzZWUgc2stPnNrX2VyciA9PSAwCiAgICAtIHNrYl9lbnRh aWwoKSBvbiBUQ1BfQ0xPU0Ugc29ja2V0CgpJZiB0aGUgY29ubmVjdGlvbiBpcyByZW9wZW5lZCB0 aGVuIHdlIHdpbGwgc2VuZCBhIGJyYW5kIG5ldyBTWU4gcGFja2V0CmFmdGVyIHRocmVhZCBBIGhh cyBhbHJlYWR5IHF1ZXVlZCBhIGJ1ZmZlci4gQXQgdGhpcyBwb2ludCBJIHRoaW5rIHRoZQpzb2Nr ZXQgaW50ZXJuYWwgc3RhdGUgKHNlcXVlbmNlIG51bWJlcnMgZXRjLikgYmVjb21lcyBtZXNzZWQg dXAuCgpXaGVuIHRoZSBuZXcgY29ubmVjdGlvbiBpcyBjbG9zZWQsIHRoZSBGSU4tQUNLIGlzIHJl amVjdGVkIGJlY2F1c2UgdGhlCnNlcXVlbmNlIG51bWJlciBpcyBvdXRzaWRlIHRoZSB3aW5kb3cu IFRoZSBvdGhlciBzaWRlIHRyaWVzIHRvCnJldHJhbnNtaXQsCmJ1dCBfX3RjcF9yZXRyYW5zbWl0 X3NrYigpIGNhbGxzIHRjcF90cmltX2hlYWQoKSBvbiBhbiBlbXB0eSBza2Igd2hpY2gKY29ycnVw dHMgdGhlIHNrYiBkYXRhIGxlbmd0aCBhbmQgaGl0cyBhIEJVRygpIGluIGNvcHlfYW5kX2NzdW1f Yml0cygpLgorKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysr KysrKysrKysKCkhlbmNlLCB0aGlzIHBhdGNoIGFkZHMgYSBjaGVjayBmb3IgQUZfVU5TUEVDIGlu IHRoZSBmYXN0b3BlbiBkYXRhIHBhdGgKYW5kIHJldHVybiBFT1BOT1RTVVBQIHRvIHVzZXIgaWYg c3VjaCBjYXNlIGhhcHBlbnMuCgpGaXhlczogY2Y2MGFmMDNjYTRlNyAoInRjcDogRmFzdCBPcGVu IGNsaWVudCAtIHNlbmRtc2coTVNHX0ZBU1RPUEVOKSIpClJlcG9ydGVkLWJ5OiBWZWdhcmQgTm9z c3VtIDx2ZWdhcmQubm9zc3VtQG9yYWNsZS5jb20+ClNpZ25lZC1vZmYtYnk6IFdlaSBXYW5nIDx3 ZWl3YW5AZ29vZ2xlLmNvbT4KU2lnbmVkLW9mZi1ieTogRXJpYyBEdW1hemV0IDxlZHVtYXpldEBn b29nbGUuY29tPgpTaWduZWQtb2ZmLWJ5OiBEYXZpZCBTLiBNaWxsZXIgPGRhdmVtQGRhdmVtbG9m dC5uZXQ+Ci0tLQogbmV0L2lwdjQvdGNwLmMgfCA3ICsrKysrLS0KIDEgZmlsZSBjaGFuZ2VkLCA1 IGluc2VydGlvbnMoKyksIDIgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvbmV0L2lwdjQvdGNw LmMgYi9uZXQvaXB2NC90Y3AuYwppbmRleCAyZGM3ZmNmLi42NTFmMWYwIDEwMDY0NAotLS0gYS9u ZXQvaXB2NC90Y3AuYworKysgYi9uZXQvaXB2NC90Y3AuYwpAQCAtMTA4NCw5ICsxMDg0LDEyIEBA IHN0YXRpYyBpbnQgdGNwX3NlbmRtc2dfZmFzdG9wZW4oc3RydWN0IHNvY2sgKnNrLCBzdHJ1Y3Qg bXNnaGRyICptc2csCiB7CiAJc3RydWN0IHRjcF9zb2NrICp0cCA9IHRjcF9zayhzayk7CiAJc3Ry dWN0IGluZXRfc29jayAqaW5ldCA9IGluZXRfc2soc2spOworCXN0cnVjdCBzb2NrYWRkciAqdWFk ZHIgPSBtc2ctPm1zZ19uYW1lOwogCWludCBlcnIsIGZsYWdzOwogCi0JaWYgKCEoc3lzY3RsX3Rj cF9mYXN0b3BlbiAmIFRGT19DTElFTlRfRU5BQkxFKSkKKwlpZiAoIShzeXNjdGxfdGNwX2Zhc3Rv cGVuICYgVEZPX0NMSUVOVF9FTkFCTEUpIHx8CisJICAgICh1YWRkciAmJiBtc2ctPm1zZ19uYW1l bGVuID49IHNpemVvZih1YWRkci0+c2FfZmFtaWx5KSAmJgorCSAgICAgdWFkZHItPnNhX2ZhbWls eSA9PSBBRl9VTlNQRUMpKQogCQlyZXR1cm4gLUVPUE5PVFNVUFA7CiAJaWYgKHRwLT5mYXN0b3Bl bl9yZXEpCiAJCXJldHVybiAtRUFMUkVBRFk7IC8qIEFub3RoZXIgRmFzdCBPcGVuIGlzIGluIHBy b2dyZXNzICovCkBAIC0xMTA4LDcgKzExMTEsNyBAQCBzdGF0aWMgaW50IHRjcF9zZW5kbXNnX2Zh c3RvcGVuKHN0cnVjdCBzb2NrICpzaywgc3RydWN0IG1zZ2hkciAqbXNnLAogCQl9CiAJfQogCWZs YWdzID0gKG1zZy0+bXNnX2ZsYWdzICYgTVNHX0RPTlRXQUlUKSA/IE9fTk9OQkxPQ0sgOiAwOwot CWVyciA9IF9faW5ldF9zdHJlYW1fY29ubmVjdChzay0+c2tfc29ja2V0LCBtc2ctPm1zZ19uYW1l LAorCWVyciA9IF9faW5ldF9zdHJlYW1fY29ubmVjdChzay0+c2tfc29ja2V0LCB1YWRkciwKIAkJ CQkgICAgbXNnLT5tc2dfbmFtZWxlbiwgZmxhZ3MsIDEpOwogCS8qIGZhc3RvcGVuX3JlcSBjb3Vs ZCBhbHJlYWR5IGJlIGZyZWVkIGluIF9faW5ldF9zdHJlYW1fY29ubmVjdAogCSAqIGlmIHRoZSBj b25uZWN0aW9uIHRpbWVzIG91dCBvciBnZXRzIHJzdAotLSAKMi40LjExCgoKRnJvbSBlZjllMmFh Njk4OWNiZjdmNGJjYzMyMTYyOGIwZjAyN2QzYjgwNDEzIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAw MQpGcm9tOiBEYXZpZGUgQ2FyYXR0aSA8ZGNhcmF0dGlAcmVkaGF0LmNvbT4KRGF0ZTogVGh1LCAy NSBNYXkgMjAxNyAxOToxNDo1NiArMDIwMApTdWJqZWN0OiBbUEFUQ0ggMzYvNDFdIHNjdHA6IGZp eCBJQ01QIHByb2Nlc3NpbmcgaWYgc2tiIGlzIG5vbi1saW5lYXIKClsgVXBzdHJlYW0gY29tbWl0 IDgwNGVjN2ViZThlYTAwMzk5OWNhOGQxYmZjNDk5ZWRjNmE5ZTA3ZGYgXQoKc29tZXRpbWVzIElD TVAgcmVwbGllcyB0byBJTklUIGNodW5rcyBhcmUgaWdub3JlZCBieSB0aGUgY2xpZW50LCBldmVu IGlmCnRoZSBlbmNhcHN1bGF0ZWQgU0NUUCBoZWFkZXJzIG1hdGNoIGFuIG9wZW4gc29ja2V0LiBU aGlzIGhhcHBlbnMgd2hlbiB0aGUKSUNNUCBwYWNrZXQgaXMgY2FycmllZCBieSBhIHBhZ2VkIHNr YjogdXNlIHNrYl9oZWFkZXJfcG9pbnRlcigpIHRvIHJlYWQKcGFja2V0IGNvbnRlbnRzIGJleW9u ZCB0aGUgU0NUUCBoZWFkZXIsIHNvIHRoYXQgY2h1bmsgaGVhZGVyIGFuZCBpbml0aWF0ZQp0YWcg YXJlIHZhbGlkYXRlZCBjb3JyZWN0bHkuCgp2MjoKLSBkb24ndCB1c2Ugc2tiX2hlYWRlcl9wb2lu dGVyKCkgdG8gcmVhZCB0aGUgdHJhbnNwb3J0IGhlYWRlciwgc2luY2UKICBpY21wX3NvY2tldF9k ZWxpdmVyKCkgYWxyZWFkeSBwdXRzIHRoZXNlIDggYnl0ZXMgaW4gdGhlIGxpbmVhciBhcmVhLgot IGNoYW5nZSBjb21taXQgbWVzc2FnZSB0byBtYWtlIHNwZWNpZmljIHJlZmVyZW5jZSB0byBJTklU IGNodW5rcy4KClNpZ25lZC1vZmYtYnk6IERhdmlkZSBDYXJhdHRpIDxkY2FyYXR0aUByZWRoYXQu Y29tPgpBY2tlZC1ieTogTWFyY2VsbyBSaWNhcmRvIExlaXRuZXIgPG1hcmNlbG8ubGVpdG5lckBn bWFpbC5jb20+CkFja2VkLWJ5OiBWbGFkIFlhc2V2aWNoIDx2eWFzZXZpY2hAZ21haWwuY29tPgpS ZXZpZXdlZC1ieTogWGluIExvbmcgPGx1Y2llbi54aW5AZ21haWwuY29tPgpTaWduZWQtb2ZmLWJ5 OiBEYXZpZCBTLiBNaWxsZXIgPGRhdmVtQGRhdmVtbG9mdC5uZXQ+Ci0tLQogbmV0L3NjdHAvaW5w dXQuYyB8IDE2ICsrKysrKysrKy0tLS0tLS0KIDEgZmlsZSBjaGFuZ2VkLCA5IGluc2VydGlvbnMo KyksIDcgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvbmV0L3NjdHAvaW5wdXQuYyBiL25ldC9z Y3RwL2lucHV0LmMKaW5kZXggMGUwNmEyNy4uYmE5YWQzMiAxMDA2NDQKLS0tIGEvbmV0L3NjdHAv aW5wdXQuYworKysgYi9uZXQvc2N0cC9pbnB1dC5jCkBAIC00NzMsMTUgKzQ3MywxNCBAQCBzdHJ1 Y3Qgc29jayAqc2N0cF9lcnJfbG9va3VwKHN0cnVjdCBuZXQgKm5ldCwgaW50IGZhbWlseSwgc3Ry dWN0IHNrX2J1ZmYgKnNrYiwKIAkJCSAgICAgc3RydWN0IHNjdHBfYXNzb2NpYXRpb24gKiphcHAs CiAJCQkgICAgIHN0cnVjdCBzY3RwX3RyYW5zcG9ydCAqKnRwcCkKIHsKKwlzdHJ1Y3Qgc2N0cF9p bml0X2NodW5rICpjaHVua2hkciwgX2NodW5raGRyOwogCXVuaW9uIHNjdHBfYWRkciBzYWRkcjsK IAl1bmlvbiBzY3RwX2FkZHIgZGFkZHI7CiAJc3RydWN0IHNjdHBfYWYgKmFmOwogCXN0cnVjdCBz b2NrICpzayA9IE5VTEw7CiAJc3RydWN0IHNjdHBfYXNzb2NpYXRpb24gKmFzb2M7CiAJc3RydWN0 IHNjdHBfdHJhbnNwb3J0ICp0cmFuc3BvcnQgPSBOVUxMOwotCXN0cnVjdCBzY3RwX2luaXRfY2h1 bmsgKmNodW5raGRyOwogCV9fdTMyIHZ0YWcgPSBudG9obChzY3RwaGRyLT52dGFnKTsKLQlpbnQg bGVuID0gc2tiLT5sZW4gLSAoKHZvaWQgKilzY3RwaGRyIC0gKHZvaWQgKilza2ItPmRhdGEpOwog CiAJKmFwcCA9IE5VTEw7ICp0cHAgPSBOVUxMOwogCkBAIC01MTYsMTMgKzUxNSwxNiBAQCBzdHJ1 Y3Qgc29jayAqc2N0cF9lcnJfbG9va3VwKHN0cnVjdCBuZXQgKm5ldCwgaW50IGZhbWlseSwgc3Ry dWN0IHNrX2J1ZmYgKnNrYiwKIAkgKiBkaXNjYXJkIHRoZSBwYWNrZXQuCiAJICovCiAJaWYgKHZ0 YWcgPT0gMCkgewotCQljaHVua2hkciA9ICh2b2lkICopc2N0cGhkciArIHNpemVvZihzdHJ1Y3Qg c2N0cGhkcik7Ci0JCWlmIChsZW4gPCBzaXplb2Yoc3RydWN0IHNjdHBoZHIpICsgc2l6ZW9mKHNj dHBfY2h1bmtoZHJfdCkKLQkJCSAgKyBzaXplb2YoX19iZTMyKSB8fAorCQkvKiBjaHVuayBoZWFk ZXIgKyBmaXJzdCA0IG9jdGVjdHMgb2YgaW5pdCBoZWFkZXIgKi8KKwkJY2h1bmtoZHIgPSBza2Jf aGVhZGVyX3BvaW50ZXIoc2tiLCBza2JfdHJhbnNwb3J0X29mZnNldChza2IpICsKKwkJCQkJICAg ICAgc2l6ZW9mKHN0cnVjdCBzY3RwaGRyKSwKKwkJCQkJICAgICAgc2l6ZW9mKHN0cnVjdCBzY3Rw X2NodW5raGRyKSArCisJCQkJCSAgICAgIHNpemVvZihfX2JlMzIpLCAmX2NodW5raGRyKTsKKwkJ aWYgKCFjaHVua2hkciB8fAogCQkgICAgY2h1bmtoZHItPmNodW5rX2hkci50eXBlICE9IFNDVFBf Q0lEX0lOSVQgfHwKLQkJICAgIG50b2hsKGNodW5raGRyLT5pbml0X2hkci5pbml0X3RhZykgIT0g YXNvYy0+Yy5teV92dGFnKSB7CisJCSAgICBudG9obChjaHVua2hkci0+aW5pdF9oZHIuaW5pdF90 YWcpICE9IGFzb2MtPmMubXlfdnRhZykKIAkJCWdvdG8gb3V0OwotCQl9CisKIAl9IGVsc2UgaWYg KHZ0YWcgIT0gYXNvYy0+Yy5wZWVyX3Z0YWcpIHsKIAkJZ290byBvdXQ7CiAJfQotLSAKMi40LjEx CgoKRnJvbSBiZWNhNTQ3MzMyOWI5ZDIwOTVhMWVjN2JjMTIzMzAxZDVhNzVkYWJkIE1vbiBTZXAg MTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBQZXRlciBEYXdzb24gPHBldGVkYXdzQGdtYWlsLmNvbT4K RGF0ZTogRnJpLCAyNiBNYXkgMjAxNyAwNjozNToxOCArMTAwMApTdWJqZWN0OiBbUEFUQ0ggMzcv NDFdIGlwNl90dW5uZWwsIGlwNl9ncmU6IGZpeCBzZXR0aW5nIG9mIERTQ1Agb24KIGVuY2Fwc3Vs YXRlZCBwYWNrZXRzCgpbIFVwc3RyZWFtIGNvbW1pdCAwZTlhNzA5NTYwZGJjZmJhY2U4YmY0MDE5 ZGM1Mjk4NjE5MjM1ODkxIF0KClRoaXMgZml4IGFkZHJlc3NlcyB0d28gcHJvYmxlbXMgaW4gdGhl IHdheSB0aGUgRFNDUCBmaWVsZCBpcyBmb3JtdWxhdGVkCiBvbiB0aGUgZW5jYXBzdWxhdGluZyBo ZWFkZXIgb2YgSVB2NiB0dW5uZWxzLgpCdWd6aWxsYTogaHR0cHM6Ly9idWd6aWxsYS5rZXJuZWwu b3JnL3Nob3dfYnVnLmNnaT9pZD0xOTU2NjEKCjEpIFRoZSBJUHY2IHR1bm5lbGluZyBjb2RlIHdh cyBtYW5pcHVsYXRpbmcgdGhlIERTQ1AgZmllbGQgb2YgdGhlCiBlbmNhcHN1bGF0aW5nIHBhY2tl dCB1c2luZyB0aGUgMzJiIGZsb3dsYWJlbC4gU2luY2UgdGhlIGZsb3dsYWJlbCBpcwogb25seSB0 aGUgbG93ZXIgMjBiIGl0IHdhcyBpbmNvcnJlY3QgdG8gYXNzdW1lIHRoYXQgdGhlIHVwcGVyIDEy YgogY29udGFpbmluZyB0aGUgRFNDUCBhbmQgRUNOIGZpZWxkcyB3b3VsZCByZW1haW4gaW50YWN0 IHdoZW4gZm9ybXVsYXRpbmcKIHRoZSBlbmNhcHN1bGF0aW5nIGhlYWRlci4gVGhpcyBmaXggaGFu ZGxlcyB0aGUgJ2luaGVyaXQnIGFuZAogJ2ZpeGVkLXZhbHVlJyBEU0NQIGNhc2VzIGV4cGxpY2l0 bHkgdXNpbmcgdGhlIGV4dGFudCBkc2ZpZWxkIHU4IHZhcmlhYmxlLgoKMikgVGhlIHVzZSBvZiBJ TkVUX0VDTl9lbmNhcHN1bGF0ZSgwLCBkc2ZpZWxkKSBpbiBpcDZfdG5sX3htaXQgd2FzCiBpbmNv cnJlY3QgYW5kIHJlc3VsdGVkIGluIHRoZSBEU0NQIHZhbHVlIGFsd2F5cyBiZWluZyBzZXQgdG8g MC4KCkNvbW1pdCA5MDQyN2VmNWQyYTQgKCJpcHY2OiBmaXggZmxvdyBsYWJlbHMgd2hlbiB0aGUg dHJhZmZpYyBjbGFzcwogaXMgbm9uLTAiKSBjYXVzZWQgdGhlIHJlZ3Jlc3Npb24gYnkgbWFza2lu ZyBvdXQgdGhlIGZsb3dsYWJlbAogd2hpY2ggZXhwb3NlZCB0aGUgaW5jb3JyZWN0IGhhbmRsaW5n IG9mIHRoZSBEU0NQIHBvcnRpb24gb2YgdGhlCiBmbG93bGFiZWwgaW4gaXA2X3R1bm5lbCBhbmQg aXA2X2dyZS4KCkZpeGVzOiA5MDQyN2VmNWQyYTQgKCJpcHY2OiBmaXggZmxvdyBsYWJlbHMgd2hl biB0aGUgdHJhZmZpYyBjbGFzcyBpcyBub24tMCIpClNpZ25lZC1vZmYtYnk6IFBldGVyIERhd3Nv biA8cGV0ZXIuYS5kYXdzb25AYm9laW5nLmNvbT4KU2lnbmVkLW9mZi1ieTogRGF2aWQgUy4gTWls bGVyIDxkYXZlbUBkYXZlbWxvZnQubmV0PgotLS0KIG5ldC9pcHY2L2lwNl9ncmUuYyAgICB8IDEz ICsrKysrKystLS0tLS0KIG5ldC9pcHY2L2lwNl90dW5uZWwuYyB8IDIxICsrKysrKysrKysrKyst LS0tLS0tLQogMiBmaWxlcyBjaGFuZ2VkLCAyMCBpbnNlcnRpb25zKCspLCAxNCBkZWxldGlvbnMo LSkKCmRpZmYgLS1naXQgYS9uZXQvaXB2Ni9pcDZfZ3JlLmMgYi9uZXQvaXB2Ni9pcDZfZ3JlLmMK aW5kZXggNmZjYjdjYi4uNGQ2MDE2NCAxMDA2NDQKLS0tIGEvbmV0L2lwdjYvaXA2X2dyZS5jCisr KyBiL25ldC9pcHY2L2lwNl9ncmUuYwpAQCAtNTM3LDExICs1MzcsMTAgQEAgc3RhdGljIGlubGlu ZSBpbnQgaXA2Z3JlX3htaXRfaXB2NChzdHJ1Y3Qgc2tfYnVmZiAqc2tiLCBzdHJ1Y3QgbmV0X2Rl dmljZSAqZGV2KQogCiAJbWVtY3B5KCZmbDYsICZ0LT5mbC51LmlwNiwgc2l6ZW9mKGZsNikpOwog Ci0JZHNmaWVsZCA9IGlwdjRfZ2V0X2RzZmllbGQoaXBoKTsKLQogCWlmICh0LT5wYXJtcy5mbGFn cyAmIElQNl9UTkxfRl9VU0VfT1JJR19UQ0xBU1MpCi0JCWZsNi5mbG93bGFiZWwgfD0gaHRvbmwo KF9fdTMyKWlwaC0+dG9zIDw8IElQVjZfVENMQVNTX1NISUZUKQotCQkJCQkgICYgSVBWNl9UQ0xB U1NfTUFTSzsKKwkJZHNmaWVsZCA9IGlwdjRfZ2V0X2RzZmllbGQoaXBoKTsKKwllbHNlCisJCWRz ZmllbGQgPSBpcDZfdGNsYXNzKHQtPnBhcm1zLmZsb3dpbmZvKTsKIAlpZiAodC0+cGFybXMuZmxh Z3MgJiBJUDZfVE5MX0ZfVVNFX09SSUdfRldNQVJLKQogCQlmbDYuZmxvd2k2X21hcmsgPSBza2It Pm1hcms7CiAKQEAgLTU5Niw5ICs1OTUsMTEgQEAgc3RhdGljIGlubGluZSBpbnQgaXA2Z3JlX3ht aXRfaXB2NihzdHJ1Y3Qgc2tfYnVmZiAqc2tiLCBzdHJ1Y3QgbmV0X2RldmljZSAqZGV2KQogCiAJ bWVtY3B5KCZmbDYsICZ0LT5mbC51LmlwNiwgc2l6ZW9mKGZsNikpOwogCi0JZHNmaWVsZCA9IGlw djZfZ2V0X2RzZmllbGQoaXB2NmgpOwogCWlmICh0LT5wYXJtcy5mbGFncyAmIElQNl9UTkxfRl9V U0VfT1JJR19UQ0xBU1MpCi0JCWZsNi5mbG93bGFiZWwgfD0gKCooX19iZTMyICopIGlwdjZoICYg SVBWNl9UQ0xBU1NfTUFTSyk7CisJCWRzZmllbGQgPSBpcHY2X2dldF9kc2ZpZWxkKGlwdjZoKTsK KwllbHNlCisJCWRzZmllbGQgPSBpcDZfdGNsYXNzKHQtPnBhcm1zLmZsb3dpbmZvKTsKKwogCWlm ICh0LT5wYXJtcy5mbGFncyAmIElQNl9UTkxfRl9VU0VfT1JJR19GTE9XTEFCRUwpCiAJCWZsNi5m bG93bGFiZWwgfD0gaXA2X2Zsb3dsYWJlbChpcHY2aCk7CiAJaWYgKHQtPnBhcm1zLmZsYWdzICYg SVA2X1ROTF9GX1VTRV9PUklHX0ZXTUFSSykKZGlmZiAtLWdpdCBhL25ldC9pcHY2L2lwNl90dW5u ZWwuYyBiL25ldC9pcHY2L2lwNl90dW5uZWwuYwppbmRleCBhOTY5MmVjLi4xNWZmMzM5IDEwMDY0 NAotLS0gYS9uZXQvaXB2Ni9pcDZfdHVubmVsLmMKKysrIGIvbmV0L2lwdjYvaXA2X3R1bm5lbC5j CkBAIC0xMTk2LDcgKzExOTYsNyBAQCBpbnQgaXA2X3RubF94bWl0KHN0cnVjdCBza19idWZmICpz a2IsIHN0cnVjdCBuZXRfZGV2aWNlICpkZXYsIF9fdTggZHNmaWVsZCwKIAlza2JfcHVzaChza2Is IHNpemVvZihzdHJ1Y3QgaXB2NmhkcikpOwogCXNrYl9yZXNldF9uZXR3b3JrX2hlYWRlcihza2Ip OwogCWlwdjZoID0gaXB2Nl9oZHIoc2tiKTsKLQlpcDZfZmxvd19oZHIoaXB2NmgsIElORVRfRUNO X2VuY2Fwc3VsYXRlKDAsIGRzZmllbGQpLAorCWlwNl9mbG93X2hkcihpcHY2aCwgZHNmaWVsZCwK IAkJICAgICBpcDZfbWFrZV9mbG93bGFiZWwobmV0LCBza2IsIGZsNi0+Zmxvd2xhYmVsLCB0cnVl LCBmbDYpKTsKIAlpcHY2aC0+aG9wX2xpbWl0ID0gaG9wX2xpbWl0OwogCWlwdjZoLT5uZXh0aGRy ID0gcHJvdG87CkBAIC0xMjMxLDggKzEyMzEsNiBAQCBpcDRpcDZfdG5sX3htaXQoc3RydWN0IHNr X2J1ZmYgKnNrYiwgc3RydWN0IG5ldF9kZXZpY2UgKmRldikKIAlpZiAodHByb3RvICE9IElQUFJP VE9fSVBJUCAmJiB0cHJvdG8gIT0gMCkKIAkJcmV0dXJuIC0xOwogCi0JZHNmaWVsZCA9IGlwdjRf Z2V0X2RzZmllbGQoaXBoKTsKLQogCWlmICh0LT5wYXJtcy5jb2xsZWN0X21kKSB7CiAJCXN0cnVj dCBpcF90dW5uZWxfaW5mbyAqdHVuX2luZm87CiAJCWNvbnN0IHN0cnVjdCBpcF90dW5uZWxfa2V5 ICprZXk7CkBAIC0xMjQ2LDYgKzEyNDQsNyBAQCBpcDRpcDZfdG5sX3htaXQoc3RydWN0IHNrX2J1 ZmYgKnNrYiwgc3RydWN0IG5ldF9kZXZpY2UgKmRldikKIAkJZmw2LmZsb3dpNl9wcm90byA9IElQ UFJPVE9fSVBJUDsKIAkJZmw2LmRhZGRyID0ga2V5LT51LmlwdjYuZHN0OwogCQlmbDYuZmxvd2xh YmVsID0ga2V5LT5sYWJlbDsKKwkJZHNmaWVsZCA9IGlwNl90Y2xhc3Moa2V5LT5sYWJlbCk7CiAJ fSBlbHNlIHsKIAkJaWYgKCEodC0+cGFybXMuZmxhZ3MgJiBJUDZfVE5MX0ZfSUdOX0VOQ0FQX0xJ TUlUKSkKIAkJCWVuY2FwX2xpbWl0ID0gdC0+cGFybXMuZW5jYXBfbGltaXQ7CkBAIC0xMjU0LDgg KzEyNTMsOSBAQCBpcDRpcDZfdG5sX3htaXQoc3RydWN0IHNrX2J1ZmYgKnNrYiwgc3RydWN0IG5l dF9kZXZpY2UgKmRldikKIAkJZmw2LmZsb3dpNl9wcm90byA9IElQUFJPVE9fSVBJUDsKIAogCQlp ZiAodC0+cGFybXMuZmxhZ3MgJiBJUDZfVE5MX0ZfVVNFX09SSUdfVENMQVNTKQotCQkJZmw2LmZs b3dsYWJlbCB8PSBodG9ubCgoX191MzIpaXBoLT50b3MgPDwgSVBWNl9UQ0xBU1NfU0hJRlQpCi0J CQkJCSAmIElQVjZfVENMQVNTX01BU0s7CisJCQlkc2ZpZWxkID0gaXB2NF9nZXRfZHNmaWVsZChp cGgpOworCQllbHNlCisJCQlkc2ZpZWxkID0gaXA2X3RjbGFzcyh0LT5wYXJtcy5mbG93aW5mbyk7 CiAJCWlmICh0LT5wYXJtcy5mbGFncyAmIElQNl9UTkxfRl9VU0VfT1JJR19GV01BUkspCiAJCQlm bDYuZmxvd2k2X21hcmsgPSBza2ItPm1hcms7CiAJfQpAQCAtMTI2NSw2ICsxMjY1LDggQEAgaXA0 aXA2X3RubF94bWl0KHN0cnVjdCBza19idWZmICpza2IsIHN0cnVjdCBuZXRfZGV2aWNlICpkZXYp CiAJaWYgKGlwdHVubmVsX2hhbmRsZV9vZmZsb2Fkcyhza2IsIFNLQl9HU09fSVBYSVA2KSkKIAkJ cmV0dXJuIC0xOwogCisJZHNmaWVsZCA9IElORVRfRUNOX2VuY2Fwc3VsYXRlKGRzZmllbGQsIGlw djRfZ2V0X2RzZmllbGQoaXBoKSk7CisKIAlza2Jfc2V0X2lubmVyX2lwcHJvdG8oc2tiLCBJUFBS T1RPX0lQSVApOwogCiAJZXJyID0gaXA2X3RubF94bWl0KHNrYiwgZGV2LCBkc2ZpZWxkLCAmZmw2 LCBlbmNhcF9saW1pdCwgJm10dSwKQEAgLTEyOTgsOCArMTMwMCw2IEBAIGlwNmlwNl90bmxfeG1p dChzdHJ1Y3Qgc2tfYnVmZiAqc2tiLCBzdHJ1Y3QgbmV0X2RldmljZSAqZGV2KQogCSAgICBpcDZf dG5sX2FkZHJfY29uZmxpY3QodCwgaXB2NmgpKQogCQlyZXR1cm4gLTE7CiAKLQlkc2ZpZWxkID0g aXB2Nl9nZXRfZHNmaWVsZChpcHY2aCk7Ci0KIAlpZiAodC0+cGFybXMuY29sbGVjdF9tZCkgewog CQlzdHJ1Y3QgaXBfdHVubmVsX2luZm8gKnR1bl9pbmZvOwogCQljb25zdCBzdHJ1Y3QgaXBfdHVu bmVsX2tleSAqa2V5OwpAQCAtMTMxMyw2ICsxMzEzLDcgQEAgaXA2aXA2X3RubF94bWl0KHN0cnVj dCBza19idWZmICpza2IsIHN0cnVjdCBuZXRfZGV2aWNlICpkZXYpCiAJCWZsNi5mbG93aTZfcHJv dG8gPSBJUFBST1RPX0lQVjY7CiAJCWZsNi5kYWRkciA9IGtleS0+dS5pcHY2LmRzdDsKIAkJZmw2 LmZsb3dsYWJlbCA9IGtleS0+bGFiZWw7CisJCWRzZmllbGQgPSBpcDZfdGNsYXNzKGtleS0+bGFi ZWwpOwogCX0gZWxzZSB7CiAJCW9mZnNldCA9IGlwNl90bmxfcGFyc2VfdGx2X2VuY19saW0oc2ti LCBza2JfbmV0d29ya19oZWFkZXIoc2tiKSk7CiAJCS8qIGlwNl90bmxfcGFyc2VfdGx2X2VuY19s aW0oKSBtaWdodCBoYXZlIHJlYWxsb2NhdGVkIHNrYi0+aGVhZCAqLwpAQCAtMTMzNSw3ICsxMzM2 LDkgQEAgaXA2aXA2X3RubF94bWl0KHN0cnVjdCBza19idWZmICpza2IsIHN0cnVjdCBuZXRfZGV2 aWNlICpkZXYpCiAJCWZsNi5mbG93aTZfcHJvdG8gPSBJUFBST1RPX0lQVjY7CiAKIAkJaWYgKHQt PnBhcm1zLmZsYWdzICYgSVA2X1ROTF9GX1VTRV9PUklHX1RDTEFTUykKLQkJCWZsNi5mbG93bGFi ZWwgfD0gKCooX19iZTMyICopaXB2NmggJiBJUFY2X1RDTEFTU19NQVNLKTsKKwkJCWRzZmllbGQg PSBpcHY2X2dldF9kc2ZpZWxkKGlwdjZoKTsKKwkJZWxzZQorCQkJZHNmaWVsZCA9IGlwNl90Y2xh c3ModC0+cGFybXMuZmxvd2luZm8pOwogCQlpZiAodC0+cGFybXMuZmxhZ3MgJiBJUDZfVE5MX0Zf VVNFX09SSUdfRkxPV0xBQkVMKQogCQkJZmw2LmZsb3dsYWJlbCB8PSBpcDZfZmxvd2xhYmVsKGlw djZoKTsKIAkJaWYgKHQtPnBhcm1zLmZsYWdzICYgSVA2X1ROTF9GX1VTRV9PUklHX0ZXTUFSSykK QEAgLTEzNDcsNiArMTM1MCw4IEBAIGlwNmlwNl90bmxfeG1pdChzdHJ1Y3Qgc2tfYnVmZiAqc2ti LCBzdHJ1Y3QgbmV0X2RldmljZSAqZGV2KQogCWlmIChpcHR1bm5lbF9oYW5kbGVfb2ZmbG9hZHMo c2tiLCBTS0JfR1NPX0lQWElQNikpCiAJCXJldHVybiAtMTsKIAorCWRzZmllbGQgPSBJTkVUX0VD Tl9lbmNhcHN1bGF0ZShkc2ZpZWxkLCBpcHY2X2dldF9kc2ZpZWxkKGlwdjZoKSk7CisKIAlza2Jf c2V0X2lubmVyX2lwcHJvdG8oc2tiLCBJUFBST1RPX0lQVjYpOwogCiAJZXJyID0gaXA2X3RubF94 bWl0KHNrYiwgZGV2LCBkc2ZpZWxkLCAmZmw2LCBlbmNhcF9saW1pdCwgJm10dSwKLS0gCjIuNC4x MQoKCkZyb20gZWY2YmRhMzAyOWE4MDQ5ZmIwYzNjNzdlYzJkOTkwOWJlNGM5MTExOSBNb24gU2Vw IDE3IDAwOjAwOjAwIDIwMDEKRnJvbTogRXJpYyBEdW1hemV0IDxlZHVtYXpldEBnb29nbGUuY29t PgpEYXRlOiBUaHUsIDI1IE1heSAyMDE3IDE0OjI3OjM1IC0wNzAwClN1YmplY3Q6IFtQQVRDSCAz OC80MV0gaXB2NDogYWRkIHJlZmVyZW5jZSBjb3VudGluZyB0byBtZXRyaWNzCgpbIFVwc3RyZWFt IGNvbW1pdCAzZmIwN2RhZmY4ZTk5MjQzMzY2YTA4MWU1MTI5NTYwNzM0ZGU0YWRhIF0KCkFuZHJl eSBLb25vdmFsb3YgcmVwb3J0ZWQgY3Jhc2hlcyBpbiBpcHY0X210dSgpCgpJIGNvdWxkIHJlcHJv ZHVjZSB0aGUgaXNzdWUgd2l0aCBLQVNBTiBrZXJuZWxzLCBiZXR3ZWVuCjEwLjI0Ni43LjE1MSBh bmQgMTAuMjQ2LjcuMTUyIDoKCjEpIDIwIGNvbmN1cnJlbnQgbmV0cGVyZiAtdCBUQ1BfUlIgLUgg MTAuMjQ2LjcuMTUyIC1sIDEwMDAgJgoKMikgQXQgdGhlIHNhbWUgdGltZSBydW4gZm9sbG93aW5n IGxvb3AgOgp3aGlsZSA6CmRvCiBpcCBybyBhZGQgMTAuMjQ2LjcuMTUyIGRldiBldGgwIHNyYyAx MC4yNDYuNy4xNTEgbXR1IDE1MDAKIGlwIHJvIGRlbCAxMC4yNDYuNy4xNTIgZGV2IGV0aDAgc3Jj IDEwLjI0Ni43LjE1MSBtdHUgMTUwMApkb25lCgpDb25nIFdhbmcgYXR0ZW1wdGVkIHRvIGFkZCBi YWNrIHJ0LT5maSBpbiBjb21taXQKODI0ODZhYTZmMWI5ICgiaXB2NDogcmVzdG9yZSBydC0+Zmkg Zm9yIHJlZmVyZW5jZSBjb3VudGluZyIpCmJ1dCB0aGlzIHByb3ZlZCB0byBhZGQgc29tZSBpc3N1 ZXMgdGhhdCB3ZXJlIGNvbXBsZXggdG8gc29sdmUuCgpJbnN0ZWFkLCBJIHN1Z2dlc3RlZCB0byBh ZGQgYSByZWZjb3VudCB0byB0aGUgbWV0cmljcyB0aGVtc2VsdmVzLApiZWluZyBhIHN0YW5kYWxv bmUgb2JqZWN0IChpbiBwYXJ0aWN1bGFyLCBubyByZWZlcmVuY2UgdG8gb3RoZXIgb2JqZWN0cykK CkkgdHJpZWQgdG8gbWFrZSB0aGlzIHBhdGNoIGFzIHNtYWxsIGFzIHBvc3NpYmxlIHRvIGVhc2Ug aXRzIGJhY2twb3J0LAppbnN0ZWFkIG9mIGJlaW5nIHN1cGVyIGNsZWFuLiBOb3RlIHRoYXQgd2Ug YmVsaWV2ZSB0aGF0IG9ubHkgaXB2NCBkc3QKbmVlZCB0byB0YWtlIGNhcmUgb2YgdGhlIG1ldHJp YyByZWZjb3VudC4gQnV0IGlmIHRoaXMgaXMgd3JvbmcsCnRoaXMgcGF0Y2ggYWRkcyB0aGUgYmFz aWMgaW5mcmFzdHJ1Y3R1cmUgdG8gZXh0ZW5kIHRoaXMgdG8gb3RoZXIKZmFtaWxpZXMuCgpNYW55 IHRoYW5rcyB0byBKdWxpYW4gQW5hc3Rhc292IGZvciByZXZpZXdpbmcgdGhpcyBwYXRjaCwgYW5k IENvbmcgV2FuZwpmb3IgaGlzIGVmZm9ydHMgb24gdGhpcyBwcm9ibGVtLgoKRml4ZXM6IDI4NjA1 ODNmZTg0MCAoImlwdjQ6IEtpbGwgcnQtPmZpIikKU2lnbmVkLW9mZi1ieTogRXJpYyBEdW1hemV0 IDxlZHVtYXpldEBnb29nbGUuY29tPgpSZXBvcnRlZC1ieTogQW5kcmV5IEtvbm92YWxvdiA8YW5k cmV5a252bEBnb29nbGUuY29tPgpSZXZpZXdlZC1ieTogSnVsaWFuIEFuYXN0YXNvdiA8amFAc3Np LmJnPgpBY2tlZC1ieTogQ29uZyBXYW5nIDx4aXlvdS53YW5nY29uZ0BnbWFpbC5jb20+ClNpZ25l ZC1vZmYtYnk6IERhdmlkIFMuIE1pbGxlciA8ZGF2ZW1AZGF2ZW1sb2Z0Lm5ldD4KLS0tCiBpbmNs dWRlL25ldC9kc3QuaCAgICAgICAgfCAgOCArKysrKysrLQogaW5jbHVkZS9uZXQvaXBfZmliLmgg ICAgIHwgMTAgKysrKystLS0tLQogbmV0L2NvcmUvZHN0LmMgICAgICAgICAgIHwgMjMgKysrKysr KysrKysrKystLS0tLS0tLS0KIG5ldC9pcHY0L2ZpYl9zZW1hbnRpY3MuYyB8IDE3ICsrKysrKysr KystLS0tLS0tCiBuZXQvaXB2NC9yb3V0ZS5jICAgICAgICAgfCAxMCArKysrKysrKystCiA1IGZp bGVzIGNoYW5nZWQsIDQ1IGluc2VydGlvbnMoKyksIDIzIGRlbGV0aW9ucygtKQoKZGlmZiAtLWdp dCBhL2luY2x1ZGUvbmV0L2RzdC5oIGIvaW5jbHVkZS9uZXQvZHN0LmgKaW5kZXggMDQ5YWYzMy4u Y2ZjMDQzNyAxMDA2NDQKLS0tIGEvaW5jbHVkZS9uZXQvZHN0LmgKKysrIGIvaW5jbHVkZS9uZXQv ZHN0LmgKQEAgLTEwNywxMCArMTA3LDE2IEBAIHN0cnVjdCBkc3RfZW50cnkgewogCX07CiB9Owog CitzdHJ1Y3QgZHN0X21ldHJpY3MgeworCXUzMgkJbWV0cmljc1tSVEFYX01BWF07CisJYXRvbWlj X3QJcmVmY250OworfTsKK2V4dGVybiBjb25zdCBzdHJ1Y3QgZHN0X21ldHJpY3MgZHN0X2RlZmF1 bHRfbWV0cmljczsKKwogdTMyICpkc3RfY293X21ldHJpY3NfZ2VuZXJpYyhzdHJ1Y3QgZHN0X2Vu dHJ5ICpkc3QsIHVuc2lnbmVkIGxvbmcgb2xkKTsKLWV4dGVybiBjb25zdCB1MzIgZHN0X2RlZmF1 bHRfbWV0cmljc1tdOwogCiAjZGVmaW5lIERTVF9NRVRSSUNTX1JFQURfT05MWQkJMHgxVUwKKyNk ZWZpbmUgRFNUX01FVFJJQ1NfUkVGQ09VTlRFRAkJMHgyVUwKICNkZWZpbmUgRFNUX01FVFJJQ1Nf RkxBR1MJCTB4M1VMCiAjZGVmaW5lIF9fRFNUX01FVFJJQ1NfUFRSKFkpCVwKIAkoKHUzMiAqKSgo WSkgJiB+RFNUX01FVFJJQ1NfRkxBR1MpKQpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9uZXQvaXBfZmli LmggYi9pbmNsdWRlL25ldC9pcF9maWIuaAppbmRleCAzNjhiYjQwLi44OTJmOGRjIDEwMDY0NAot LS0gYS9pbmNsdWRlL25ldC9pcF9maWIuaAorKysgYi9pbmNsdWRlL25ldC9pcF9maWIuaApAQCAt MTE0LDExICsxMTQsMTEgQEAgc3RydWN0IGZpYl9pbmZvIHsKIAlfX2JlMzIJCQlmaWJfcHJlZnNy YzsKIAl1MzIJCQlmaWJfdGJfaWQ7CiAJdTMyCQkJZmliX3ByaW9yaXR5OwotCXUzMgkJCSpmaWJf bWV0cmljczsKLSNkZWZpbmUgZmliX210dSBmaWJfbWV0cmljc1tSVEFYX01UVS0xXQotI2RlZmlu ZSBmaWJfd2luZG93IGZpYl9tZXRyaWNzW1JUQVhfV0lORE9XLTFdCi0jZGVmaW5lIGZpYl9ydHQg ZmliX21ldHJpY3NbUlRBWF9SVFQtMV0KLSNkZWZpbmUgZmliX2Fkdm1zcyBmaWJfbWV0cmljc1tS VEFYX0FEVk1TUy0xXQorCXN0cnVjdCBkc3RfbWV0cmljcwkqZmliX21ldHJpY3M7CisjZGVmaW5l IGZpYl9tdHUgZmliX21ldHJpY3MtPm1ldHJpY3NbUlRBWF9NVFUtMV0KKyNkZWZpbmUgZmliX3dp bmRvdyBmaWJfbWV0cmljcy0+bWV0cmljc1tSVEFYX1dJTkRPVy0xXQorI2RlZmluZSBmaWJfcnR0 IGZpYl9tZXRyaWNzLT5tZXRyaWNzW1JUQVhfUlRULTFdCisjZGVmaW5lIGZpYl9hZHZtc3MgZmli X21ldHJpY3MtPm1ldHJpY3NbUlRBWF9BRFZNU1MtMV0KIAlpbnQJCQlmaWJfbmhzOwogI2lmZGVm IENPTkZJR19JUF9ST1VURV9NVUxUSVBBVEgKIAlpbnQJCQlmaWJfd2VpZ2h0OwpkaWZmIC0tZ2l0 IGEvbmV0L2NvcmUvZHN0LmMgYi9uZXQvY29yZS9kc3QuYwppbmRleCA5NjBlNTAzLi42MTkyZjEx IDEwMDY0NAotLS0gYS9uZXQvY29yZS9kc3QuYworKysgYi9uZXQvY29yZS9kc3QuYwpAQCAtMTUx LDEzICsxNTEsMTMgQEAgaW50IGRzdF9kaXNjYXJkX291dChzdHJ1Y3QgbmV0ICpuZXQsIHN0cnVj dCBzb2NrICpzaywgc3RydWN0IHNrX2J1ZmYgKnNrYikKIH0KIEVYUE9SVF9TWU1CT0woZHN0X2Rp c2NhcmRfb3V0KTsKIAotY29uc3QgdTMyIGRzdF9kZWZhdWx0X21ldHJpY3NbUlRBWF9NQVggKyAx XSA9IHsKK2NvbnN0IHN0cnVjdCBkc3RfbWV0cmljcyBkc3RfZGVmYXVsdF9tZXRyaWNzID0gewog CS8qIFRoaXMgaW5pdGlhbGl6ZXIgaXMgbmVlZGVkIHRvIGZvcmNlIGxpbmtlciB0byBwbGFjZSB0 aGlzIHZhcmlhYmxlCiAJICogaW50byBjb25zdCBzZWN0aW9uLiBPdGhlcndpc2UgaXQgbWlnaHQg ZW5kIGludG8gYnNzIHNlY3Rpb24uCiAJICogV2UgcmVhbGx5IHdhbnQgdG8gYXZvaWQgZmFsc2Ug c2hhcmluZyBvbiB0aGlzIHZhcmlhYmxlLCBhbmQgY2F0Y2gKIAkgKiBhbnkgd3JpdGVzIG9uIGl0 LgogCSAqLwotCVtSVEFYX01BWF0gPSAweGRlYWRiZWVmLAorCS5yZWZjbnQgPSBBVE9NSUNfSU5J VCgxKSwKIH07CiAKIHZvaWQgZHN0X2luaXQoc3RydWN0IGRzdF9lbnRyeSAqZHN0LCBzdHJ1Y3Qg ZHN0X29wcyAqb3BzLApAQCAtMTY5LDcgKzE2OSw3IEBAIHZvaWQgZHN0X2luaXQoc3RydWN0IGRz dF9lbnRyeSAqZHN0LCBzdHJ1Y3QgZHN0X29wcyAqb3BzLAogCWlmIChkZXYpCiAJCWRldl9ob2xk KGRldik7CiAJZHN0LT5vcHMgPSBvcHM7Ci0JZHN0X2luaXRfbWV0cmljcyhkc3QsIGRzdF9kZWZh dWx0X21ldHJpY3MsIHRydWUpOworCWRzdF9pbml0X21ldHJpY3MoZHN0LCBkc3RfZGVmYXVsdF9t ZXRyaWNzLm1ldHJpY3MsIHRydWUpOwogCWRzdC0+ZXhwaXJlcyA9IDBVTDsKIAlkc3QtPnBhdGgg PSBkc3Q7CiAJZHN0LT5mcm9tID0gTlVMTDsKQEAgLTMxNCwyNSArMzE0LDMwIEBAIEVYUE9SVF9T WU1CT0woZHN0X3JlbGVhc2UpOwogCiB1MzIgKmRzdF9jb3dfbWV0cmljc19nZW5lcmljKHN0cnVj dCBkc3RfZW50cnkgKmRzdCwgdW5zaWduZWQgbG9uZyBvbGQpCiB7Ci0JdTMyICpwID0ga21hbGxv YyhzaXplb2YodTMyKSAqIFJUQVhfTUFYLCBHRlBfQVRPTUlDKTsKKwlzdHJ1Y3QgZHN0X21ldHJp Y3MgKnAgPSBrbWFsbG9jKHNpemVvZigqcCksIEdGUF9BVE9NSUMpOwogCiAJaWYgKHApIHsKLQkJ dTMyICpvbGRfcCA9IF9fRFNUX01FVFJJQ1NfUFRSKG9sZCk7CisJCXN0cnVjdCBkc3RfbWV0cmlj cyAqb2xkX3AgPSAoc3RydWN0IGRzdF9tZXRyaWNzICopX19EU1RfTUVUUklDU19QVFIob2xkKTsK IAkJdW5zaWduZWQgbG9uZyBwcmV2LCBuZXc7CiAKLQkJbWVtY3B5KHAsIG9sZF9wLCBzaXplb2Yo dTMyKSAqIFJUQVhfTUFYKTsKKwkJYXRvbWljX3NldCgmcC0+cmVmY250LCAxKTsKKwkJbWVtY3B5 KHAtPm1ldHJpY3MsIG9sZF9wLT5tZXRyaWNzLCBzaXplb2YocC0+bWV0cmljcykpOwogCiAJCW5l dyA9ICh1bnNpZ25lZCBsb25nKSBwOwogCQlwcmV2ID0gY21weGNoZygmZHN0LT5fbWV0cmljcywg b2xkLCBuZXcpOwogCiAJCWlmIChwcmV2ICE9IG9sZCkgewogCQkJa2ZyZWUocCk7Ci0JCQlwID0g X19EU1RfTUVUUklDU19QVFIocHJldik7CisJCQlwID0gKHN0cnVjdCBkc3RfbWV0cmljcyAqKV9f RFNUX01FVFJJQ1NfUFRSKHByZXYpOwogCQkJaWYgKHByZXYgJiBEU1RfTUVUUklDU19SRUFEX09O TFkpCiAJCQkJcCA9IE5VTEw7CisJCX0gZWxzZSBpZiAocHJldiAmIERTVF9NRVRSSUNTX1JFRkNP VU5URUQpIHsKKwkJCWlmIChhdG9taWNfZGVjX2FuZF90ZXN0KCZvbGRfcC0+cmVmY250KSkKKwkJ CQlrZnJlZShvbGRfcCk7CiAJCX0KIAl9Ci0JcmV0dXJuIHA7CisJQlVJTERfQlVHX09OKG9mZnNl dG9mKHN0cnVjdCBkc3RfbWV0cmljcywgbWV0cmljcykgIT0gMCk7CisJcmV0dXJuICh1MzIgKilw OwogfQogRVhQT1JUX1NZTUJPTChkc3RfY293X21ldHJpY3NfZ2VuZXJpYyk7CiAKQEAgLTM0MSw3 ICszNDYsNyBAQCB2b2lkIF9fZHN0X2Rlc3Ryb3lfbWV0cmljc19nZW5lcmljKHN0cnVjdCBkc3Rf ZW50cnkgKmRzdCwgdW5zaWduZWQgbG9uZyBvbGQpCiB7CiAJdW5zaWduZWQgbG9uZyBwcmV2LCBu ZXc7CiAKLQluZXcgPSAoKHVuc2lnbmVkIGxvbmcpIGRzdF9kZWZhdWx0X21ldHJpY3MpIHwgRFNU X01FVFJJQ1NfUkVBRF9PTkxZOworCW5ldyA9ICgodW5zaWduZWQgbG9uZykgJmRzdF9kZWZhdWx0 X21ldHJpY3MpIHwgRFNUX01FVFJJQ1NfUkVBRF9PTkxZOwogCXByZXYgPSBjbXB4Y2hnKCZkc3Qt Pl9tZXRyaWNzLCBvbGQsIG5ldyk7CiAJaWYgKHByZXYgPT0gb2xkKQogCQlrZnJlZShfX0RTVF9N RVRSSUNTX1BUUihvbGQpKTsKZGlmZiAtLWdpdCBhL25ldC9pcHY0L2ZpYl9zZW1hbnRpY3MuYyBi L25ldC9pcHY0L2ZpYl9zZW1hbnRpY3MuYwppbmRleCAzMTcwMjZhLi42Y2Y3NGRlIDEwMDY0NAot LS0gYS9uZXQvaXB2NC9maWJfc2VtYW50aWNzLmMKKysrIGIvbmV0L2lwdjQvZmliX3NlbWFudGlj cy5jCkBAIC0yMDQsNiArMjA0LDcgQEAgc3RhdGljIHZvaWQgcnRfZmliaW5mb19mcmVlX2NwdXMo c3RydWN0IHJ0YWJsZSBfX3JjdSAqIF9fcGVyY3B1ICpydHApCiBzdGF0aWMgdm9pZCBmcmVlX2Zp Yl9pbmZvX3JjdShzdHJ1Y3QgcmN1X2hlYWQgKmhlYWQpCiB7CiAJc3RydWN0IGZpYl9pbmZvICpm aSA9IGNvbnRhaW5lcl9vZihoZWFkLCBzdHJ1Y3QgZmliX2luZm8sIHJjdSk7CisJc3RydWN0IGRz dF9tZXRyaWNzICptOwogCiAJY2hhbmdlX25leHRob3BzKGZpKSB7CiAJCWlmIChuZXh0aG9wX25o LT5uaF9kZXYpCkBAIC0yMTQsOCArMjE1LDkgQEAgc3RhdGljIHZvaWQgZnJlZV9maWJfaW5mb19y Y3Uoc3RydWN0IHJjdV9oZWFkICpoZWFkKQogCQlydF9maWJpbmZvX2ZyZWUoJm5leHRob3Bfbmgt Pm5oX3J0aF9pbnB1dCk7CiAJfSBlbmRmb3JfbmV4dGhvcHMoZmkpOwogCi0JaWYgKGZpLT5maWJf bWV0cmljcyAhPSAodTMyICopIGRzdF9kZWZhdWx0X21ldHJpY3MpCi0JCWtmcmVlKGZpLT5maWJf bWV0cmljcyk7CisJbSA9IGZpLT5maWJfbWV0cmljczsKKwlpZiAobSAhPSAmZHN0X2RlZmF1bHRf bWV0cmljcyAmJiBhdG9taWNfZGVjX2FuZF90ZXN0KCZtLT5yZWZjbnQpKQorCQlrZnJlZShtKTsK IAlrZnJlZShmaSk7CiB9CiAKQEAgLTk3NSwxMSArOTc3LDExIEBAIGZpYl9jb252ZXJ0X21ldHJp Y3Moc3RydWN0IGZpYl9pbmZvICpmaSwgY29uc3Qgc3RydWN0IGZpYl9jb25maWcgKmNmZykKIAkJ CXZhbCA9IDI1NTsKIAkJaWYgKHR5cGUgPT0gUlRBWF9GRUFUVVJFUyAmJiAodmFsICYgflJUQVhf RkVBVFVSRV9NQVNLKSkKIAkJCXJldHVybiAtRUlOVkFMOwotCQlmaS0+ZmliX21ldHJpY3NbdHlw ZSAtIDFdID0gdmFsOworCQlmaS0+ZmliX21ldHJpY3MtPm1ldHJpY3NbdHlwZSAtIDFdID0gdmFs OwogCX0KIAogCWlmIChlY25fY2EpCi0JCWZpLT5maWJfbWV0cmljc1tSVEFYX0ZFQVRVUkVTIC0g MV0gfD0gRFNUX0ZFQVRVUkVfRUNOX0NBOworCQlmaS0+ZmliX21ldHJpY3MtPm1ldHJpY3NbUlRB WF9GRUFUVVJFUyAtIDFdIHw9IERTVF9GRUFUVVJFX0VDTl9DQTsKIAogCXJldHVybiAwOwogfQpA QCAtMTAzNywxMSArMTAzOSwxMiBAQCBzdHJ1Y3QgZmliX2luZm8gKmZpYl9jcmVhdGVfaW5mbyhz dHJ1Y3QgZmliX2NvbmZpZyAqY2ZnKQogCQlnb3RvIGZhaWx1cmU7CiAJZmliX2luZm9fY250Kys7 CiAJaWYgKGNmZy0+ZmNfbXgpIHsKLQkJZmktPmZpYl9tZXRyaWNzID0ga3phbGxvYyhzaXplb2Yo dTMyKSAqIFJUQVhfTUFYLCBHRlBfS0VSTkVMKTsKKwkJZmktPmZpYl9tZXRyaWNzID0ga3phbGxv YyhzaXplb2YoKmZpLT5maWJfbWV0cmljcyksIEdGUF9LRVJORUwpOwogCQlpZiAoIWZpLT5maWJf bWV0cmljcykKIAkJCWdvdG8gZmFpbHVyZTsKKwkJYXRvbWljX3NldCgmZmktPmZpYl9tZXRyaWNz LT5yZWZjbnQsIDEpOwogCX0gZWxzZQotCQlmaS0+ZmliX21ldHJpY3MgPSAodTMyICopIGRzdF9k ZWZhdWx0X21ldHJpY3M7CisJCWZpLT5maWJfbWV0cmljcyA9IChzdHJ1Y3QgZHN0X21ldHJpY3Mg KikmZHN0X2RlZmF1bHRfbWV0cmljczsKIAogCWZpLT5maWJfbmV0ID0gbmV0OwogCWZpLT5maWJf cHJvdG9jb2wgPSBjZmctPmZjX3Byb3RvY29sOwpAQCAtMTI0Miw3ICsxMjQ1LDcgQEAgaW50IGZp Yl9kdW1wX2luZm8oc3RydWN0IHNrX2J1ZmYgKnNrYiwgdTMyIHBvcnRpZCwgdTMyIHNlcSwgaW50 IGV2ZW50LAogCWlmIChmaS0+ZmliX3ByaW9yaXR5ICYmCiAJICAgIG5sYV9wdXRfdTMyKHNrYiwg UlRBX1BSSU9SSVRZLCBmaS0+ZmliX3ByaW9yaXR5KSkKIAkJZ290byBubGFfcHV0X2ZhaWx1cmU7 Ci0JaWYgKHJ0bmV0bGlua19wdXRfbWV0cmljcyhza2IsIGZpLT5maWJfbWV0cmljcykgPCAwKQor CWlmIChydG5ldGxpbmtfcHV0X21ldHJpY3Moc2tiLCBmaS0+ZmliX21ldHJpY3MtPm1ldHJpY3Mp IDwgMCkKIAkJZ290byBubGFfcHV0X2ZhaWx1cmU7CiAKIAlpZiAoZmktPmZpYl9wcmVmc3JjICYm CmRpZmYgLS1naXQgYS9uZXQvaXB2NC9yb3V0ZS5jIGIvbmV0L2lwdjQvcm91dGUuYwppbmRleCBk OTcyNDg4Li5lMGNjNmMxIDEwMDY0NAotLS0gYS9uZXQvaXB2NC9yb3V0ZS5jCisrKyBiL25ldC9p cHY0L3JvdXRlLmMKQEAgLTEzODksOCArMTM4OSwxMiBAQCBzdGF0aWMgdm9pZCBydF9hZGRfdW5j YWNoZWRfbGlzdChzdHJ1Y3QgcnRhYmxlICpydCkKIAogc3RhdGljIHZvaWQgaXB2NF9kc3RfZGVz dHJveShzdHJ1Y3QgZHN0X2VudHJ5ICpkc3QpCiB7CisJc3RydWN0IGRzdF9tZXRyaWNzICpwID0g KHN0cnVjdCBkc3RfbWV0cmljcyAqKURTVF9NRVRSSUNTX1BUUihkc3QpOwogCXN0cnVjdCBydGFi bGUgKnJ0ID0gKHN0cnVjdCBydGFibGUgKikgZHN0OwogCisJaWYgKHAgIT0gJmRzdF9kZWZhdWx0 X21ldHJpY3MgJiYgYXRvbWljX2RlY19hbmRfdGVzdCgmcC0+cmVmY250KSkKKwkJa2ZyZWUocCk7 CisKIAlpZiAoIWxpc3RfZW1wdHkoJnJ0LT5ydF91bmNhY2hlZCkpIHsKIAkJc3RydWN0IHVuY2Fj aGVkX2xpc3QgKnVsID0gcnQtPnJ0X3VuY2FjaGVkX2xpc3Q7CiAKQEAgLTE0NDIsNyArMTQ0Niwx MSBAQCBzdGF0aWMgdm9pZCBydF9zZXRfbmV4dGhvcChzdHJ1Y3QgcnRhYmxlICpydCwgX19iZTMy IGRhZGRyLAogCQkJcnQtPnJ0X2dhdGV3YXkgPSBuaC0+bmhfZ3c7CiAJCQlydC0+cnRfdXNlc19n YXRld2F5ID0gMTsKIAkJfQotCQlkc3RfaW5pdF9tZXRyaWNzKCZydC0+ZHN0LCBmaS0+ZmliX21l dHJpY3MsIHRydWUpOworCQlkc3RfaW5pdF9tZXRyaWNzKCZydC0+ZHN0LCBmaS0+ZmliX21ldHJp Y3MtPm1ldHJpY3MsIHRydWUpOworCQlpZiAoZmktPmZpYl9tZXRyaWNzICE9ICZkc3RfZGVmYXVs dF9tZXRyaWNzKSB7CisJCQlydC0+ZHN0Ll9tZXRyaWNzIHw9IERTVF9NRVRSSUNTX1JFRkNPVU5U RUQ7CisJCQlhdG9taWNfaW5jKCZmaS0+ZmliX21ldHJpY3MtPnJlZmNudCk7CisJCX0KICNpZmRl ZiBDT05GSUdfSVBfUk9VVEVfQ0xBU1NJRAogCQlydC0+ZHN0LnRjbGFzc2lkID0gbmgtPm5oX3Rj bGFzc2lkOwogI2VuZGlmCi0tIAoyLjQuMTEKCgpGcm9tIDIzMGQzMmQ3NDYyY2UwYjYwMTRhZGQ0 MzYxNGI4NDdhYmMzNWQ2NDUgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCkZyb206IERhbmllbCBC b3JrbWFubiA8ZGFuaWVsQGlvZ2VhcmJveC5uZXQ+CkRhdGU6IFRodSwgMjUgTWF5IDIwMTcgMDE6 MDU6MDcgKzAyMDAKU3ViamVjdDogW1BBVENIIDM5LzQxXSBicGY6IGFkZCBicGZfY2xvbmVfcmVk aXJlY3QgdG8KIGJwZl9oZWxwZXJfY2hhbmdlc19wa3RfZGF0YQoKWyBVcHN0cmVhbSBjb21taXQg NDE3MDNhNzMxMDY2ZmRlNzljM2U1Y2NmMzM5MWNmNzdhOThhZWRhNSBdCgpUaGUgYnBmX2Nsb25l X3JlZGlyZWN0KCkgc3RpbGwgbmVlZHMgdG8gYmUgbGlzdGVkIGluCmJwZl9oZWxwZXJfY2hhbmdl c19wa3RfZGF0YSgpIHNpbmNlIHdlIGNhbGwgaW50bwpicGZfdHJ5X21ha2VfaGVhZF93cml0YWJs ZSgpIGZyb20gdGhlcmUsIHRodXMgd2UgbmVlZAp0byBpbnZhbGlkYXRlIHByaW9yIHBrdCByZWdz IGFzIHdlbGwuCgpGaXhlczogMzZiYmVmNTJjN2ViICgiYnBmOiBkaXJlY3QgcGFja2V0IHdyaXRl IGFuZCBhY2Nlc3MgZm9yIGhlbHBlcnMgZm9yIGNsc2FjdCBwcm9ncyIpClNpZ25lZC1vZmYtYnk6 IERhbmllbCBCb3JrbWFubiA8ZGFuaWVsQGlvZ2VhcmJveC5uZXQ+CkFja2VkLWJ5OiBBbGV4ZWkg U3Rhcm92b2l0b3YgPGFzdEBrZXJuZWwub3JnPgpTaWduZWQtb2ZmLWJ5OiBEYXZpZCBTLiBNaWxs ZXIgPGRhdmVtQGRhdmVtbG9mdC5uZXQ+Ci0tLQogbmV0L2NvcmUvZmlsdGVyLmMgfCAxICsKIDEg ZmlsZSBjaGFuZ2VkLCAxIGluc2VydGlvbigrKQoKZGlmZiAtLWdpdCBhL25ldC9jb3JlL2ZpbHRl ci5jIGIvbmV0L2NvcmUvZmlsdGVyLmMKaW5kZXggZWJhZWFmMi4uNmNhM2IwNSAxMDA2NDQKLS0t IGEvbmV0L2NvcmUvZmlsdGVyLmMKKysrIGIvbmV0L2NvcmUvZmlsdGVyLmMKQEAgLTIyNjYsNiAr MjI2Niw3IEBAIGJvb2wgYnBmX2hlbHBlcl9jaGFuZ2VzX3BrdF9kYXRhKHZvaWQgKmZ1bmMpCiAJ ICAgIGZ1bmMgPT0gYnBmX3NrYl9jaGFuZ2VfaGVhZCB8fAogCSAgICBmdW5jID09IGJwZl9za2Jf Y2hhbmdlX3RhaWwgfHwKIAkgICAgZnVuYyA9PSBicGZfc2tiX3B1bGxfZGF0YSB8fAorCSAgICBm dW5jID09IGJwZl9jbG9uZV9yZWRpcmVjdCB8fAogCSAgICBmdW5jID09IGJwZl9sM19jc3VtX3Jl cGxhY2UgfHwKIAkgICAgZnVuYyA9PSBicGZfbDRfY3N1bV9yZXBsYWNlIHx8CiAJICAgIGZ1bmMg PT0gYnBmX3hkcF9hZGp1c3RfaGVhZCkKLS0gCjIuNC4xMQoKCkZyb20gNWI5OGI0N2Q5ZmIyMTY4 NWUyN2ZhMDVmMDQ1NjE4YTlkMGQzYTI3MCBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJvbTog RGFuaWVsIEJvcmttYW5uIDxkYW5pZWxAaW9nZWFyYm94Lm5ldD4KRGF0ZTogVGh1LCAyNSBNYXkg MjAxNyAwMTowNTowOCArMDIwMApTdWJqZWN0OiBbUEFUQ0ggNDAvNDFdIGJwZjogZml4IHdyb25n IGV4cG9zdXJlIG9mIG1hcF9mbGFncyBpbnRvIGZkaW5mbyBmb3IKIGxwbQoKWyBVcHN0cmVhbSBj b21taXQgYTMxNjMzOGNiNzFhMzI2MDIwMTQ5MGU2MTVmMmY2ZDVjMGQ4ZmIyYyBdCgp0cmllX2Fs bG9jKCkgYWx3YXlzIG5lZWRzIHRvIGhhdmUgQlBGX0ZfTk9fUFJFQUxMT0MgcGFzc2VkIGluIHZp YQphdHRyLT5tYXBfZmxhZ3MsIHNpbmNlIGl0IGRvZXMgbm90IHN1cHBvcnQgcHJlYWxsb2NhdGlv biB5ZXQuIFdlCmNoZWNrIHRoZSBmbGFnLCBidXQgd2UgbmV2ZXIgY29weSB0aGUgZmxhZyBpbnRv IHRyaWUtPm1hcC5tYXBfZmxhZ3MsCndoaWNoIGlzIGxhdGVyIG9uIGV4cG9zZWQgaW50byBmZGlu Zm8gYW5kIHVzZWQgYnkgbG9hZGVycyBzdWNoIGFzCmlwcm91dGUyLiBMYXR0ZXIgdXNlcyB0aGlz IGluIGJwZl9tYXBfc2VsZmNoZWNrX3Bpbm5lZCgpIHRvIHRlc3QKd2hldGhlciBhIHBpbm5lZCBt YXAgaGFzIHRoZSBzYW1lIHNwZWMgYXMgdGhlIG9uZSBmcm9tIHRoZSBCUEYgb2JqCmZpbGUgYW5k IGlmIG5vdCwgYmFpbHMgb3V0LCB3aGljaCBpcyBjdXJyZW50bHkgdGhlIGNhc2UgZm9yIGxwbQpz aW5jZSBpdCBleHBvc2VzIGFsd2F5cyAwIGFzIGZsYWdzLgoKQWxzbyBjb3B5IG92ZXIgZmxhZ3Mg aW4gYXJyYXlfbWFwX2FsbG9jKCkgYW5kIHN0YWNrX21hcF9hbGxvYygpLgpUaGV5IGFsd2F5cyBo YXZlIHRvIGJlIDAgcmlnaHQgbm93LCBidXQgd2Ugc2hvdWxkIG1ha2Ugc3VyZSB0byBub3QKbWlz cyB0byBjb3B5IHRoZW0gb3ZlciBhdCBhIGxhdGVyIHBvaW50IGluIHRpbWUgd2hlbiB3ZSBhZGQg YWN0dWFsCmZsYWdzIGZvciB0aGVtIHRvIHVzZS4KCkZpeGVzOiBiOTVhNWM0ZGIwOWIgKCJicGY6 IGFkZCBhIGxvbmdlc3QgcHJlZml4IG1hdGNoIHRyaWUgbWFwIGltcGxlbWVudGF0aW9uIikKUmVw b3J0ZWQtYnk6IEphcm5vIFJhamFoYWxtZSA8amFybm9AY292YWxlbnQuaW8+ClNpZ25lZC1vZmYt Ynk6IERhbmllbCBCb3JrbWFubiA8ZGFuaWVsQGlvZ2VhcmJveC5uZXQ+CkFja2VkLWJ5OiBBbGV4 ZWkgU3Rhcm92b2l0b3YgPGFzdEBrZXJuZWwub3JnPgpTaWduZWQtb2ZmLWJ5OiBEYXZpZCBTLiBN aWxsZXIgPGRhdmVtQGRhdmVtbG9mdC5uZXQ+Ci0tLQoga2VybmVsL2JwZi9hcnJheW1hcC5jIHwg MSArCiBrZXJuZWwvYnBmL2xwbV90cmllLmMgfCAxICsKIGtlcm5lbC9icGYvc3RhY2ttYXAuYyB8 IDEgKwogMyBmaWxlcyBjaGFuZ2VkLCAzIGluc2VydGlvbnMoKykKCmRpZmYgLS1naXQgYS9rZXJu ZWwvYnBmL2FycmF5bWFwLmMgYi9rZXJuZWwvYnBmL2FycmF5bWFwLmMKaW5kZXggNmI2ZjQxZi4u ODkyZjQ3YyAxMDA2NDQKLS0tIGEva2VybmVsL2JwZi9hcnJheW1hcC5jCisrKyBiL2tlcm5lbC9i cGYvYXJyYXltYXAuYwpAQCAtODMsNiArODMsNyBAQCBzdGF0aWMgc3RydWN0IGJwZl9tYXAgKmFy cmF5X21hcF9hbGxvYyh1bmlvbiBicGZfYXR0ciAqYXR0cikKIAlhcnJheS0+bWFwLmtleV9zaXpl ID0gYXR0ci0+a2V5X3NpemU7CiAJYXJyYXktPm1hcC52YWx1ZV9zaXplID0gYXR0ci0+dmFsdWVf c2l6ZTsKIAlhcnJheS0+bWFwLm1heF9lbnRyaWVzID0gYXR0ci0+bWF4X2VudHJpZXM7CisJYXJy YXktPm1hcC5tYXBfZmxhZ3MgPSBhdHRyLT5tYXBfZmxhZ3M7CiAJYXJyYXktPmVsZW1fc2l6ZSA9 IGVsZW1fc2l6ZTsKIAogCWlmICghcGVyY3B1KQpkaWZmIC0tZ2l0IGEva2VybmVsL2JwZi9scG1f dHJpZS5jIGIva2VybmVsL2JwZi9scG1fdHJpZS5jCmluZGV4IGIzN2JkOWEuLjdhYjllNDIgMTAw NjQ0Ci0tLSBhL2tlcm5lbC9icGYvbHBtX3RyaWUuYworKysgYi9rZXJuZWwvYnBmL2xwbV90cmll LmMKQEAgLTQzMiw2ICs0MzIsNyBAQCBzdGF0aWMgc3RydWN0IGJwZl9tYXAgKnRyaWVfYWxsb2Mo dW5pb24gYnBmX2F0dHIgKmF0dHIpCiAJdHJpZS0+bWFwLmtleV9zaXplID0gYXR0ci0+a2V5X3Np emU7CiAJdHJpZS0+bWFwLnZhbHVlX3NpemUgPSBhdHRyLT52YWx1ZV9zaXplOwogCXRyaWUtPm1h cC5tYXhfZW50cmllcyA9IGF0dHItPm1heF9lbnRyaWVzOworCXRyaWUtPm1hcC5tYXBfZmxhZ3Mg PSBhdHRyLT5tYXBfZmxhZ3M7CiAJdHJpZS0+ZGF0YV9zaXplID0gYXR0ci0+a2V5X3NpemUgLQog CQkJICBvZmZzZXRvZihzdHJ1Y3QgYnBmX2xwbV90cmllX2tleSwgZGF0YSk7CiAJdHJpZS0+bWF4 X3ByZWZpeGxlbiA9IHRyaWUtPmRhdGFfc2l6ZSAqIDg7CmRpZmYgLS1naXQgYS9rZXJuZWwvYnBm L3N0YWNrbWFwLmMgYi9rZXJuZWwvYnBmL3N0YWNrbWFwLmMKaW5kZXggMjJhYTQ1Yy4uOTZmNjA0 MyAxMDA2NDQKLS0tIGEva2VybmVsL2JwZi9zdGFja21hcC5jCisrKyBiL2tlcm5lbC9icGYvc3Rh Y2ttYXAuYwpAQCAtODgsNiArODgsNyBAQCBzdGF0aWMgc3RydWN0IGJwZl9tYXAgKnN0YWNrX21h cF9hbGxvYyh1bmlvbiBicGZfYXR0ciAqYXR0cikKIAlzbWFwLT5tYXAua2V5X3NpemUgPSBhdHRy LT5rZXlfc2l6ZTsKIAlzbWFwLT5tYXAudmFsdWVfc2l6ZSA9IHZhbHVlX3NpemU7CiAJc21hcC0+ bWFwLm1heF9lbnRyaWVzID0gYXR0ci0+bWF4X2VudHJpZXM7CisJc21hcC0+bWFwLm1hcF9mbGFn cyA9IGF0dHItPm1hcF9mbGFnczsKIAlzbWFwLT5uX2J1Y2tldHMgPSBuX2J1Y2tldHM7CiAJc21h cC0+bWFwLnBhZ2VzID0gcm91bmRfdXAoY29zdCwgUEFHRV9TSVpFKSA+PiBQQUdFX1NISUZUOwog Ci0tIAoyLjQuMTEKCgpGcm9tIDQ5OTg5MjQ4Y2U4NTUzN2RkYmNiMjQ2MGNjMDBkMGZhMzNjZGQx NTYgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCkZyb206IERhbmllbCBCb3JrbWFubiA8ZGFuaWVs QGlvZ2VhcmJveC5uZXQ+CkRhdGU6IFRodSwgMTggTWF5IDIwMTcgMDM6MDA6MDYgKzAyMDAKU3Vi amVjdDogW1BBVENIIDQxLzQxXSBicGY6IGFkanVzdCB2ZXJpZmllciBoZXVyaXN0aWNzCgpbIFVw c3RyZWFtIGNvbW1pdCAzYzJjZTYwYmRkM2Q1NzA1MWJmODU2MTVkZWVjMDRhNjk0NDczODQwIF0K CkN1cnJlbnQgbGltaXRzIHdpdGggcmVnYXJkcyB0byBwcm9jZXNzaW5nIHByb2dyYW0gcGF0aHMg ZG8gbm90CnJlYWxseSByZWZsZWN0IHRvZGF5J3MgbmVlZHMgYW55bW9yZSBkdWUgdG8gcHJvZ3Jh bXMgYmVjb21pbmcKbW9yZSBjb21wbGV4IGFuZCB2ZXJpZmllciBzbWFydGVyLCBrZWVwaW5nIHRy YWNrIG9mIG1vcmUgZGF0YQpzdWNoIGFzIGNvbnN0IEFMVSBvcGVyYXRpb25zLCBhbGlnbm1lbnQg dHJhY2tpbmcsIHNwaWxsaW5nIG9mClBUUl9UT19NQVBfVkFMVUVfQURKIHJlZ2lzdGVycywgYW5k IG90aGVyIGZlYXR1cmVzIGFsbG93aW5nIGZvcgpzbWFydGVyIG1hdGNoaW5nIG9mIHdoYXQgTExW TSBnZW5lcmF0ZXMuCgpUaGlzIGFsc28gY29tZXMgd2l0aCB0aGUgc2lkZS1lZmZlY3QgdGhhdCB3 ZSByZXN1bHQgaW4gZmV3ZXIKb3Bwb3J0dW5pdGllcyB0byBwcnVuZSBzZWFyY2ggc3RhdGVzIGFu ZCB0aHVzIG9mdGVuIG5lZWQgdG8gZG8KbW9yZSB3b3JrIHRvIHByb3ZlIHNhZmV0eSB0aGFuIGlu IHRoZSBwYXN0IGR1ZSB0byBkaWZmZXJlbnQKcmVnaXN0ZXIgc3RhdGVzIGFuZCBzdGFjayBsYXlv dXQgd2hlcmUgd2UgbWlzbWF0Y2guIEdlbmVyYWxseSwKaXQncyBxdWl0ZSBoYXJkIHRvIGRldGVy bWluZSB3aGF0IGNhdXNlZCBhIHN1ZGRlbiBpbmNyZWFzZSBpbgpjb21wbGV4aXR5LCBpdCBjb3Vs ZCBiZSBjYXVzZWQgYnkgc29tZXRoaW5nIGFzIHRyaXZpYWwgYXMgYQpzaW5nbGUgYnJhbmNoIHNv bWV3aGVyZSBhdCB0aGUgYmVnaW5uaW5nIG9mIHRoZSBwcm9ncmFtIHdoZXJlCkxMVk0gYXNzaWdu ZWQgYSBzdGFjayBzbG90IHRoYXQgaXMgbWFya2VkIGRpZmZlcmVudGx5IHRocm91Z2hvdXQKb3Ro ZXIgYnJhbmNoZXMgYW5kIHRodXMgY2F1c2luZyBhIG1pc21hdGNoLCB3aGVyZSB2ZXJpZmllcgp0 aGVuIG5lZWRzIHRvIHByb3ZlIHNhZmV0eSBmb3IgdGhlIHdob2xlIHJlc3Qgb2YgdGhlIHByb2dy YW0uClN1YnNlcXVlbnRseSwgcHJvZ3JhbXMgd2l0aCBldmVuIGxlc3MgdGhhbiBoYWxmIHRoZSBp bnNuIHNpemUKbGltaXQgY2FuIGdldCByZWplY3RlZC4gV2Ugbm90aWNlZCB0aGF0IHdoaWxlIHNv bWUgcHJvZ3JhbXMKbG9hZCBmaW5lIHVuZGVyIHByZSA0LjExLCB0aGV5IGdldCByZWplY3RlZCBk dWUgdG8gaGl0dGluZwpsaW1pdHMgb24gbW9yZSByZWNlbnQga2VybmVscy4gV2Ugc2F3IHRoYXQg aW4gdGhlIHZhc3QgbWFqb3JpdHkKb2YgY2FzZXMgKDkwKyUpIHBydW5pbmcgZmFpbGVkIGR1ZSB0 byByZWdpc3RlciBtaXNtYXRjaGVzLiBJbgpjYXNlIG9mIHN0YWNrIG1pc21hdGNoZXMsIG1ham9y aXR5IG9mIGNhc2VzIGZhaWxlZCBkdWUgdG8KZGlmZmVyZW50IHN0YWNrIHNsb3QgdHlwZXMgKGlu dmFsaWQsIHNwaWxsLCBtaXNjKSByYXRoZXIgdGhhbgpkaWZmZXJlbmNlcyBpbiBzcGlsbGVkIHJl Z2lzdGVycy4KClRoaXMgcGF0Y2ggbWFrZXMgcHJ1bmluZyBtb3JlIGFnZ3Jlc3NpdmUgYnkgYWxz byBhZGRpbmcgbWFya2Vycwp0aGF0IHNpdCBhdCBjb25kaXRpb25hbCBqdW1wcyBhcyB3ZWxsLiBD dXJyZW50bHksIHdlIG9ubHkgbWFyawpqdW1wIHRhcmdldHMgZm9yIHBydW5pbmcuIEZvciBleGFt cGxlIGluIGRpcmVjdCBwYWNrZXQgYWNjZXNzLAp0aGVzZSBhcmUgdXN1YWxseSBlcnJvciBwYXRo cyB3aGVyZSB3ZSBiYWlsIG91dC4gV2UgZm91bmQgdGhhdAphZGRpbmcgdGhlc2UgbWFya2Vycywg aXQgY2FuIHJlZHVjZSBudW1iZXIgb2YgcHJvY2Vzc2VkIGluc25zCmJ5IHVwIHRvIDMwJS4gQW5v dGhlciBvcHRpb24gaXMgdG8gaWdub3JlIHJlZy0+aWQgaW4gcHJvYmluZwpQVFJfVE9fTUFQX1ZB TFVFX09SX05VTEwgcmVnaXN0ZXJzLCB3aGljaCBjYW4gaGVscCBwcnVuaW5nCnNsaWdodGx5IGFz IHdlbGwgYnkgdXAgdG8gNyUgb2JzZXJ2ZWQgY29tcGxleGl0eSByZWR1Y3Rpb24gYXMKc3RhbmQt YWxvbmUuIE1lYW5pbmcsIGlmIGEgcHJldmlvdXMgcGF0aCB3aXRoIHJlZ2lzdGVyIHR5cGUKUFRS X1RPX01BUF9WQUxVRV9PUl9OVUxMIGZvciBtYXAgWCB3YXMgZm91bmQgdG8gYmUgc2FmZSwgdGhl bgppbiB0aGUgY3VycmVudCBzdGF0ZSBhIFBUUl9UT19NQVBfVkFMVUVfT1JfTlVMTCByZWdpc3Rl ciBmb3IKdGhlIHNhbWUgbWFwIFggbXVzdCBiZSBzYWZlIGFzIHdlbGwuIExhc3QgYnV0IG5vdCBs ZWFzdCB0aGUKcGF0Y2ggYWxzbyBhZGRzIGEgc2NoZWR1bGluZyBwb2ludCBhbmQgYnVtcHMgdGhl IGN1cnJlbnQgbGltaXQKZm9yIGluc3RydWN0aW9ucyB0byBiZSBwcm9jZXNzZWQgdG8gYSBtb3Jl IGFkZXF1YXRlIHZhbHVlLgoKU2lnbmVkLW9mZi1ieTogRGFuaWVsIEJvcmttYW5uIDxkYW5pZWxA aW9nZWFyYm94Lm5ldD4KQWNrZWQtYnk6IEFsZXhlaSBTdGFyb3ZvaXRvdiA8YXN0QGtlcm5lbC5v cmc+ClNpZ25lZC1vZmYtYnk6IERhdmlkIFMuIE1pbGxlciA8ZGF2ZW1AZGF2ZW1sb2Z0Lm5ldD4K LS0tCiBrZXJuZWwvYnBmL3ZlcmlmaWVyLmMgfCAxMiArKysrKysrKysrKy0KIDEgZmlsZSBjaGFu Z2VkLCAxMSBpbnNlcnRpb25zKCspLCAxIGRlbGV0aW9uKC0pCgpkaWZmIC0tZ2l0IGEva2VybmVs L2JwZi92ZXJpZmllci5jIGIva2VybmVsL2JwZi92ZXJpZmllci5jCmluZGV4IDZmZDc4ZDQuLjkw NGRlY2QgMTAwNjQ0Ci0tLSBhL2tlcm5lbC9icGYvdmVyaWZpZXIuYworKysgYi9rZXJuZWwvYnBm L3ZlcmlmaWVyLmMKQEAgLTE0MCw3ICsxNDAsNyBAQCBzdHJ1Y3QgYnBmX3ZlcmlmaWVyX3N0YWNr X2VsZW0gewogCXN0cnVjdCBicGZfdmVyaWZpZXJfc3RhY2tfZWxlbSAqbmV4dDsKIH07CiAKLSNk ZWZpbmUgQlBGX0NPTVBMRVhJVFlfTElNSVRfSU5TTlMJNjU1MzYKKyNkZWZpbmUgQlBGX0NPTVBM RVhJVFlfTElNSVRfSU5TTlMJOTgzMDQKICNkZWZpbmUgQlBGX0NPTVBMRVhJVFlfTElNSVRfU1RB Q0sJMTAyNAogCiBzdHJ1Y3QgYnBmX2NhbGxfYXJnX21ldGEgewpAQCAtMjU0Niw2ICsyNTQ2LDcg QEAgc3RhdGljIGludCBjaGVja19jZmcoc3RydWN0IGJwZl92ZXJpZmllcl9lbnYgKmVudikKIAkJ CQllbnYtPmV4cGxvcmVkX3N0YXRlc1t0ICsgMV0gPSBTVEFURV9MSVNUX01BUks7CiAJCX0gZWxz ZSB7CiAJCQkvKiBjb25kaXRpb25hbCBqdW1wIHdpdGggdHdvIGVkZ2VzICovCisJCQllbnYtPmV4 cGxvcmVkX3N0YXRlc1t0XSA9IFNUQVRFX0xJU1RfTUFSSzsKIAkJCXJldCA9IHB1c2hfaW5zbih0 LCB0ICsgMSwgRkFMTFRIUk9VR0gsIGVudik7CiAJCQlpZiAocmV0ID09IDEpCiAJCQkJZ290byBw ZWVrX3N0YWNrOwpAQCAtMjcwNCw2ICsyNzA1LDEyIEBAIHN0YXRpYyBib29sIHN0YXRlc19lcXVh bChzdHJ1Y3QgYnBmX3ZlcmlmaWVyX2VudiAqZW52LAogCQkgICAgIHJjdXItPnR5cGUgIT0gTk9U X0lOSVQpKQogCQkJY29udGludWU7CiAKKwkJLyogRG9uJ3QgY2FyZSBhYm91dCB0aGUgcmVnLT5p ZCBpbiB0aGlzIGNhc2UuICovCisJCWlmIChyb2xkLT50eXBlID09IFBUUl9UT19NQVBfVkFMVUVf T1JfTlVMTCAmJgorCQkgICAgcmN1ci0+dHlwZSA9PSBQVFJfVE9fTUFQX1ZBTFVFX09SX05VTEwg JiYKKwkJICAgIHJvbGQtPm1hcF9wdHIgPT0gcmN1ci0+bWFwX3B0cikKKwkJCWNvbnRpbnVlOwor CiAJCWlmIChyb2xkLT50eXBlID09IFBUUl9UT19QQUNLRVQgJiYgcmN1ci0+dHlwZSA9PSBQVFJf VE9fUEFDS0VUICYmCiAJCSAgICBjb21wYXJlX3B0cnNfdG9fcGFja2V0KHJvbGQsIHJjdXIpKQog CQkJY29udGludWU7CkBAIC0yODM4LDYgKzI4NDUsOSBAQCBzdGF0aWMgaW50IGRvX2NoZWNrKHN0 cnVjdCBicGZfdmVyaWZpZXJfZW52ICplbnYpCiAJCQlnb3RvIHByb2Nlc3NfYnBmX2V4aXQ7CiAJ CX0KIAorCQlpZiAobmVlZF9yZXNjaGVkKCkpCisJCQljb25kX3Jlc2NoZWQoKTsKKwogCQlpZiAo bG9nX2xldmVsICYmIGRvX3ByaW50X3N0YXRlKSB7CiAJCQl2ZXJib3NlKCJcbmZyb20gJWQgdG8g JWQ6IiwgcHJldl9pbnNuX2lkeCwgaW5zbl9pZHgpOwogCQkJcHJpbnRfdmVyaWZpZXJfc3RhdGUo JmVudi0+Y3VyX3N0YXRlKTsKLS0gCjIuNC4xMQoK ----Next_Part(Tue_May_30_19_14_13_2017_543)----