From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-1.0 required=3.0 tests=HEADER_FROM_DIFFERENT_DOMAINS, MAILING_LIST_MULTI,SPF_PASS autolearn=ham autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id 51342C37121 for ; Mon, 21 Jan 2019 23:28:06 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by mail.kernel.org (Postfix) with ESMTP id F413521019 for ; Mon, 21 Jan 2019 23:28:05 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1727196AbfAUX2F (ORCPT ); Mon, 21 Jan 2019 18:28:05 -0500 Received: from shards.monkeyblade.net ([23.128.96.9]:52704 "EHLO shards.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1726027AbfAUX2F (ORCPT ); Mon, 21 Jan 2019 18:28:05 -0500 Received: from localhost (unknown [IPv6:2601:601:9f80:35cd::bf5]) (using TLSv1 with cipher AES256-SHA (256/256 bits)) (Client did not present a certificate) (Authenticated sender: davem-davemloft) by shards.monkeyblade.net (Postfix) with ESMTPSA id 10ED014C892CF for ; Mon, 21 Jan 2019 15:28:04 -0800 (PST) Date: Mon, 21 Jan 2019 15:28:01 -0800 (PST) Message-Id: <20190121.152801.1313934957244657581.davem@davemloft.net> To: stable@vger.kernel.org Subject: [PATCHES] Networking From: David Miller X-Mailer: Mew version 6.8 on Emacs 26.1 Mime-Version: 1.0 Content-Type: Multipart/Mixed; boundary="--Next_Part(Mon_Jan_21_15_28_01_2019_958)--" Content-Transfer-Encoding: 7bit X-Greylist: Sender succeeded SMTP AUTH, not delayed by milter-greylist-4.5.12 (shards.monkeyblade.net [149.20.54.216]); Mon, 21 Jan 2019 15:28:04 -0800 (PST) Sender: stable-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: stable@vger.kernel.org ----Next_Part(Mon_Jan_21_15_28_01_2019_958)-- Content-Type: Text/Plain; charset=us-ascii Content-Transfer-Encoding: 7bit Another day, another batch of networking fixes. Please queue up for v4.19 and v4.20 -stable, respectively. Thanks! ----Next_Part(Mon_Jan_21_15_28_01_2019_958)-- Content-Type: Application/Octet-Stream Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="net_419.mbox" RnJvbSBiNGZhY2ZhYTA4ZWE4MzI1MTVhMTVkMTc0ODkzZmQ2ZjgyMWU3ZTM2IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBEYXZpZCBBaGVybiA8ZHNhaGVybkBnbWFpbC5jb20+CkRhdGU6 IEZyaSwgNCBKYW4gMjAxOSAxNjo1ODoxNSAtMDgwMApTdWJqZWN0OiBbUEFUQ0ggMDEvMTBdIGlw djY6IENvbnNpZGVyIHNrX2JvdW5kX2Rldl9pZiB3aGVuIGJpbmRpbmcgYSBzb2NrZXQgdG8KIGEg djQgbWFwcGVkIGFkZHJlc3MKClsgVXBzdHJlYW0gY29tbWl0IGVjOTBhZDMzNDk4NmZhNTg1NmQx MWRkMjcyZjdmMjJmYTg2YzU1YzQgXQoKU2ltaWxhciB0byBjNWVlMDY2MzMzZWIgKCJpcHY2OiBD b25zaWRlciBza19ib3VuZF9kZXZfaWYgd2hlbiBiaW5kaW5nIGEKc29ja2V0IHRvIGFuIGFkZHJl c3MiKSwgYmluZGluZyBhIHNvY2tldCB0byB2NCBtYXBwZWQgYWRkcmVzc2VzIG5lZWRzIHRvCmNv bnNpZGVyIGlmIHRoZSBzb2NrZXQgaXMgYm91bmQgdG8gYSBkZXZpY2UuCgpUaGlzIHByb2JsZW0g YWxzbyBleGlzdHMgZnJvbSB0aGUgYmVnaW5uaW5nIG9mIGdpdCBoaXN0b3J5LgoKU2lnbmVkLW9m Zi1ieTogRGF2aWQgQWhlcm4gPGRzYWhlcm5AZ21haWwuY29tPgpTaWduZWQtb2ZmLWJ5OiBEYXZp ZCBTLiBNaWxsZXIgPGRhdmVtQGRhdmVtbG9mdC5uZXQ+Ci0tLQogbmV0L2lwdjYvYWZfaW5ldDYu YyB8IDExICsrKysrKysrKystCiAxIGZpbGUgY2hhbmdlZCwgMTAgaW5zZXJ0aW9ucygrKSwgMSBk ZWxldGlvbigtKQoKZGlmZiAtLWdpdCBhL25ldC9pcHY2L2FmX2luZXQ2LmMgYi9uZXQvaXB2Ni9h Zl9pbmV0Ni5jCmluZGV4IDlhNDI2MWU1MDI3Mi4uODk1ODQ3ZTU3YThlIDEwMDY0NAotLS0gYS9u ZXQvaXB2Ni9hZl9pbmV0Ni5jCisrKyBiL25ldC9pcHY2L2FmX2luZXQ2LmMKQEAgLTMwOSw2ICsz MDksNyBAQCBzdGF0aWMgaW50IF9faW5ldDZfYmluZChzdHJ1Y3Qgc29jayAqc2ssIHN0cnVjdCBz b2NrYWRkciAqdWFkZHIsIGludCBhZGRyX2xlbiwKIAogCS8qIENoZWNrIGlmIHRoZSBhZGRyZXNz IGJlbG9uZ3MgdG8gdGhlIGhvc3QuICovCiAJaWYgKGFkZHJfdHlwZSA9PSBJUFY2X0FERFJfTUFQ UEVEKSB7CisJCXN0cnVjdCBuZXRfZGV2aWNlICpkZXYgPSBOVUxMOwogCQlpbnQgY2hrX2FkZHJf cmV0OwogCiAJCS8qIEJpbmRpbmcgdG8gdjQtbWFwcGVkIGFkZHJlc3Mgb24gYSB2Ni1vbmx5IHNv Y2tldApAQCAtMzE5LDkgKzMyMCwxNyBAQCBzdGF0aWMgaW50IF9faW5ldDZfYmluZChzdHJ1Y3Qg c29jayAqc2ssIHN0cnVjdCBzb2NrYWRkciAqdWFkZHIsIGludCBhZGRyX2xlbiwKIAkJCWdvdG8g b3V0OwogCQl9CiAKKwkJaWYgKHNrLT5za19ib3VuZF9kZXZfaWYpIHsKKwkJCWRldiA9IGRldl9n ZXRfYnlfaW5kZXhfcmN1KG5ldCwgc2stPnNrX2JvdW5kX2Rldl9pZik7CisJCQlpZiAoIWRldikg eworCQkJCWVyciA9IC1FTk9ERVY7CisJCQkJZ290byBvdXQ7CisJCQl9CisJCX0KKwogCQkvKiBS ZXByb2R1Y2UgQUZfSU5FVCBjaGVja3MgdG8gbWFrZSB0aGUgYmluZGluZ3MgY29uc2lzdGVudCAq LwogCQl2NGFkZHIgPSBhZGRyLT5zaW42X2FkZHIuczZfYWRkcjMyWzNdOwotCQljaGtfYWRkcl9y ZXQgPSBpbmV0X2FkZHJfdHlwZShuZXQsIHY0YWRkcik7CisJCWNoa19hZGRyX3JldCA9IGluZXRf YWRkcl90eXBlX2Rldl90YWJsZShuZXQsIGRldiwgdjRhZGRyKTsKIAkJaWYgKCFpbmV0X2Nhbl9u b25sb2NhbF9iaW5kKG5ldCwgaW5ldCkgJiYKIAkJICAgIHY0YWRkciAhPSBodG9ubChJTkFERFJf QU5ZKSAmJgogCQkgICAgY2hrX2FkZHJfcmV0ICE9IFJUTl9MT0NBTCAmJgotLSAKMi4yMC4xCgoK RnJvbSA5OWMzZjdjODJhOGMzN2M5NzM5ODk4MjQ0MGY4OTgwM2QyMTA4MmM3IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBKaXJpIFBpcmtvIDxqaXJpQG1lbGxhbm94LmNvbT4KRGF0ZTog VHVlLCA4IEphbiAyMDE5IDE2OjQ4OjA1ICswMDAwClN1YmplY3Q6IFtQQVRDSCAwMi8xMF0gbWx4 c3c6IHNwZWN0cnVtOiBEaXNhYmxlIGxhZyBwb3J0IFRYIGJlZm9yZSByZW1vdmluZyBpdAoKWyBV cHN0cmVhbSBjb21taXQgOGFkYmUyMTJhMTU5ZDljNzhhOTBmY2ExZDg1NGY2ZTYzNDUyNDI2YiBd CgpNYWtlIHN1cmUgdGhhdCBsYWcgcG9ydCBUWCBpcyBkaXNhYmxlZCBiZWZvcmUgbWx4c3dfc3Bf cG9ydF9sYWdfbGVhdmUoKQppcyBjYWxsZWQgYW5kIHByZXZlbnQgZnJvbSBwb3NzaWJsZSBFTUFE IGVycm9yLgoKRml4ZXM6IDBkNjVmYzEzMDQyZiAoIm1seHN3OiBzcGVjdHJ1bTogSW1wbGVtZW50 IExBRyBwb3J0IGpvaW4vbGVhdmUiKQpTaWduZWQtb2ZmLWJ5OiBKaXJpIFBpcmtvIDxqaXJpQG1l bGxhbm94LmNvbT4KU2lnbmVkLW9mZi1ieTogSWRvIFNjaGltbWVsIDxpZG9zY2hAbWVsbGFub3gu Y29tPgpTaWduZWQtb2ZmLWJ5OiBEYXZpZCBTLiBNaWxsZXIgPGRhdmVtQGRhdmVtbG9mdC5uZXQ+ Ci0tLQogZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4c3cvc3BlY3RydW0uYyB8IDcg KysrKystLQogMSBmaWxlIGNoYW5nZWQsIDUgaW5zZXJ0aW9ucygrKSwgMiBkZWxldGlvbnMoLSkK CmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHhzdy9zcGVjdHJ1 bS5jIGIvZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4c3cvc3BlY3RydW0uYwppbmRl eCAzZDExNTlmOGE1M2YuLmRlODIxYTlmZGZhZiAxMDA2NDQKLS0tIGEvZHJpdmVycy9uZXQvZXRo ZXJuZXQvbWVsbGFub3gvbWx4c3cvc3BlY3RydW0uYworKysgYi9kcml2ZXJzL25ldC9ldGhlcm5l dC9tZWxsYW5veC9tbHhzdy9zcGVjdHJ1bS5jCkBAIC00NjM1LDEyICs0NjM1LDE1IEBAIHN0YXRp YyBpbnQgbWx4c3dfc3BfbmV0ZGV2aWNlX3BvcnRfdXBwZXJfZXZlbnQoc3RydWN0IG5ldF9kZXZp Y2UgKmxvd2VyX2RldiwKIAkJCQkJCQkgICBsb3dlcl9kZXYsCiAJCQkJCQkJICAgdXBwZXJfZGV2 KTsKIAkJfSBlbHNlIGlmIChuZXRpZl9pc19sYWdfbWFzdGVyKHVwcGVyX2RldikpIHsKLQkJCWlm IChpbmZvLT5saW5raW5nKQorCQkJaWYgKGluZm8tPmxpbmtpbmcpIHsKIAkJCQllcnIgPSBtbHhz d19zcF9wb3J0X2xhZ19qb2luKG1seHN3X3NwX3BvcnQsCiAJCQkJCQkJICAgICB1cHBlcl9kZXYp OwotCQkJZWxzZQorCQkJfSBlbHNlIHsKKwkJCQltbHhzd19zcF9wb3J0X2xhZ190eF9lbl9zZXQo bWx4c3dfc3BfcG9ydCwKKwkJCQkJCQkgICAgZmFsc2UpOwogCQkJCW1seHN3X3NwX3BvcnRfbGFn X2xlYXZlKG1seHN3X3NwX3BvcnQsCiAJCQkJCQkJdXBwZXJfZGV2KTsKKwkJCX0KIAkJfSBlbHNl IGlmIChuZXRpZl9pc19vdnNfbWFzdGVyKHVwcGVyX2RldikpIHsKIAkJCWlmIChpbmZvLT5saW5r aW5nKQogCQkJCWVyciA9IG1seHN3X3NwX3BvcnRfb3ZzX2pvaW4obWx4c3dfc3BfcG9ydCk7Ci0t IAoyLjIwLjEKCgpGcm9tIGRiOTZmNmRkZjU3MzgwMmY3ZjQyZDgzOTYyMDFmYjlhMTI4ZDhjYTgg TW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCkZyb206IElkbyBTY2hpbW1lbCA8aWRvc2NoQG1lbGxh bm94LmNvbT4KRGF0ZTogVHVlLCA4IEphbiAyMDE5IDE2OjQ4OjEzICswMDAwClN1YmplY3Q6IFtQ QVRDSCAwMy8xMF0gbWx4c3c6IHNwZWN0cnVtX3N3aXRjaGRldjogU2V0IFBWSUQgY29ycmVjdGx5 IGR1cmluZwogVkxBTiBkZWxldGlvbgoKWyBVcHN0cmVhbSBjb21taXQgNjc0YmVkNWRmNGNhYjhm OTZkMDRmN2I5OTYwODg4M2E0OGY5MjI2YiBdCgpXaGVuIGEgVkxBTiBpcyBkZWxldGVkIGZyb20g YSBicmlkZ2UgcG9ydCB3ZSBzaG91bGQgbm90IGNoYW5nZSB0aGUgUFZJRAp1bmxlc3MgdGhlIGRl bGV0ZWQgVkxBTiBpcyB0aGUgUFZJRC4KCkZpeGVzOiBmZTljY2M3ODVkZTUgKCJtbHhzdzogc3Bl Y3RydW1fc3dpdGNoZGV2OiBEb24ndCBiYXRjaCBWTEFOIG9wZXJhdGlvbnMiKQpTaWduZWQtb2Zm LWJ5OiBJZG8gU2NoaW1tZWwgPGlkb3NjaEBtZWxsYW5veC5jb20+CkFja2VkLWJ5OiBKaXJpIFBp cmtvIDxqaXJpQG1lbGxhbm94LmNvbT4KU2lnbmVkLW9mZi1ieTogRGF2aWQgUy4gTWlsbGVyIDxk YXZlbUBkYXZlbWxvZnQubmV0PgotLS0KIGRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21s eHN3L3NwZWN0cnVtX3N3aXRjaGRldi5jIHwgMiArLQogMSBmaWxlIGNoYW5nZWQsIDEgaW5zZXJ0 aW9uKCspLCAxIGRlbGV0aW9uKC0pCgpkaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvZXRoZXJuZXQv bWVsbGFub3gvbWx4c3cvc3BlY3RydW1fc3dpdGNoZGV2LmMgYi9kcml2ZXJzL25ldC9ldGhlcm5l dC9tZWxsYW5veC9tbHhzdy9zcGVjdHJ1bV9zd2l0Y2hkZXYuYwppbmRleCA0ZWI2NGNiMGQ5YTEu LjBkOWVhMzdjNWQyMSAxMDA2NDQKLS0tIGEvZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gv bWx4c3cvc3BlY3RydW1fc3dpdGNoZGV2LmMKKysrIGIvZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVs bGFub3gvbWx4c3cvc3BlY3RydW1fc3dpdGNoZGV2LmMKQEAgLTE3NjEsNyArMTc2MSw3IEBAIHN0 YXRpYyB2b2lkCiBtbHhzd19zcF9icmlkZ2VfcG9ydF92bGFuX2RlbChzdHJ1Y3QgbWx4c3dfc3Bf cG9ydCAqbWx4c3dfc3BfcG9ydCwKIAkJCSAgICAgIHN0cnVjdCBtbHhzd19zcF9icmlkZ2VfcG9y dCAqYnJpZGdlX3BvcnQsIHUxNiB2aWQpCiB7Ci0JdTE2IHB2aWQgPSBtbHhzd19zcF9wb3J0LT5w dmlkID09IHZpZCA/IDAgOiB2aWQ7CisJdTE2IHB2aWQgPSBtbHhzd19zcF9wb3J0LT5wdmlkID09 IHZpZCA/IDAgOiBtbHhzd19zcF9wb3J0LT5wdmlkOwogCXN0cnVjdCBtbHhzd19zcF9wb3J0X3Zs YW4gKm1seHN3X3NwX3BvcnRfdmxhbjsKIAogCW1seHN3X3NwX3BvcnRfdmxhbiA9IG1seHN3X3Nw X3BvcnRfdmxhbl9maW5kX2J5X3ZpZChtbHhzd19zcF9wb3J0LCB2aWQpOwotLSAKMi4yMC4xCgoK RnJvbSA5NWMwZTUzMmE1NzEyY2Y5N2IwZTRmMjg3M2Q1ZDhlNGM3YWE5Nzg5IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBBbmRyZXcgTHVubiA8YW5kcmV3QGx1bm4uY2g+CkRhdGU6IFdl ZCwgOSBKYW4gMjAxOSAwMDoyNDowMyArMDEwMApTdWJqZWN0OiBbUEFUQ0ggMDQvMTBdIG5ldDog ZHNhOiBtdjg4eDZ4eHg6IG12ODhlNjM5MCBlcnJhdGEKClsgVXBzdHJlYW0gY29tbWl0IGVhODkw OThlZjlhNTc0YmNlY2EwMGQzYjVkZjE0YWFmMGIzZjljY2YgXQoKVGhlIDYzOTAgY29wcGVyIHBv cnRzIGhhdmUgYW4gZXJyYXRhIHdoaWNoIHJlcXVpcmUgcG9raW5nIG1hZ2ljIHZhbHVlcwppbnRv IHVuZG9jdW1lbnRlZCBtYWdpYyByZWdpc3RlcnMgYW5kIHRoZW4gcGVyZm9ybWluZyBhIHNvZnR3 YXJlCnJlc2V0LgoKU2lnbmVkLW9mZi1ieTogQW5kcmV3IEx1bm4gPGFuZHJld0BsdW5uLmNoPgpT aWduZWQtb2ZmLWJ5OiBEYXZpZCBTLiBNaWxsZXIgPGRhdmVtQGRhdmVtbG9mdC5uZXQ+Ci0tLQog ZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmMgfCAxMTMgKysrKysrKysrKysrKysrKysr KysrKysrKysrKysrKwogZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmggfCAgIDUgKysK IGRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvcG9ydC5oIHwgIDEwICsrKwogMyBmaWxlcyBjaGFu Z2VkLCAxMjggaW5zZXJ0aW9ucygrKQoKZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L2RzYS9tdjg4 ZTZ4eHgvY2hpcC5jIGIvZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmMKaW5kZXggOGRh M2QzOWUzMjE4Li4yNTg5MThkOGE0MTYgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvbmV0L2RzYS9tdjg4 ZTZ4eHgvY2hpcC5jCisrKyBiL2RyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jCkBAIC0y MzkxLDYgKzIzOTEsMTA3IEBAIHN0YXRpYyBpbnQgbXY4OGU2eHh4X3N0YXRzX3NldHVwKHN0cnVj dCBtdjg4ZTZ4eHhfY2hpcCAqY2hpcCkKIAlyZXR1cm4gbXY4OGU2eHh4X2cxX3N0YXRzX2NsZWFy KGNoaXApOwogfQogCisvKiBUaGUgbXY4OGU2MzkwIGhhcyBzb21lIGhpZGRlbiByZWdpc3RlcnMg dXNlZCBmb3IgZGVidWcgYW5kCisgKiBkZXZlbG9wbWVudC4gVGhlIGVycmF0YSBhbHNvIG1ha2Vz IHVzZSBvZiB0aGVtLgorICovCitzdGF0aWMgaW50IG12ODhlNjM5MF9oaWRkZW5fd3JpdGUoc3Ry dWN0IG12ODhlNnh4eF9jaGlwICpjaGlwLCBpbnQgcG9ydCwKKwkJCQkgIGludCByZWcsIHUxNiB2 YWwpCit7CisJdTE2IGN0cmw7CisJaW50IGVycjsKKworCWVyciA9IG12ODhlNnh4eF9wb3J0X3dy aXRlKGNoaXAsIFBPUlRfUkVTRVJWRURfMUFfREFUQV9QT1JULAorCQkJCSAgIFBPUlRfUkVTRVJW RURfMUEsIHZhbCk7CisJaWYgKGVycikKKwkJcmV0dXJuIGVycjsKKworCWN0cmwgPSBQT1JUX1JF U0VSVkVEXzFBX0JVU1kgfCBQT1JUX1JFU0VSVkVEXzFBX1dSSVRFIHwKKwkgICAgICAgUE9SVF9S RVNFUlZFRF8xQV9CTE9DSyB8IHBvcnQgPDwgUE9SVF9SRVNFUlZFRF8xQV9QT1JUX1NISUZUIHwK KwkgICAgICAgcmVnOworCisJcmV0dXJuIG12ODhlNnh4eF9wb3J0X3dyaXRlKGNoaXAsIFBPUlRf UkVTRVJWRURfMUFfQ1RSTF9QT1JULAorCQkJCSAgICBQT1JUX1JFU0VSVkVEXzFBLCBjdHJsKTsK K30KKworc3RhdGljIGludCBtdjg4ZTYzOTBfaGlkZGVuX3dhaXQoc3RydWN0IG12ODhlNnh4eF9j aGlwICpjaGlwKQoreworCXJldHVybiBtdjg4ZTZ4eHhfd2FpdChjaGlwLCBQT1JUX1JFU0VSVkVE XzFBX0NUUkxfUE9SVCwKKwkJCSAgICAgIFBPUlRfUkVTRVJWRURfMUEsIFBPUlRfUkVTRVJWRURf MUFfQlVTWSk7Cit9CisKKworc3RhdGljIGludCBtdjg4ZTYzOTBfaGlkZGVuX3JlYWQoc3RydWN0 IG12ODhlNnh4eF9jaGlwICpjaGlwLCBpbnQgcG9ydCwKKwkJCQkgIGludCByZWcsIHUxNiAqdmFs KQoreworCXUxNiBjdHJsOworCWludCBlcnI7CisKKwljdHJsID0gUE9SVF9SRVNFUlZFRF8xQV9C VVNZIHwgUE9SVF9SRVNFUlZFRF8xQV9SRUFEIHwKKwkgICAgICAgUE9SVF9SRVNFUlZFRF8xQV9C TE9DSyB8IHBvcnQgPDwgUE9SVF9SRVNFUlZFRF8xQV9QT1JUX1NISUZUIHwKKwkgICAgICAgcmVn OworCisJZXJyID0gbXY4OGU2eHh4X3BvcnRfd3JpdGUoY2hpcCwgUE9SVF9SRVNFUlZFRF8xQV9D VFJMX1BPUlQsCisJCQkJICAgUE9SVF9SRVNFUlZFRF8xQSwgY3RybCk7CisJaWYgKGVycikKKwkJ cmV0dXJuIGVycjsKKworCWVyciA9IG12ODhlNjM5MF9oaWRkZW5fd2FpdChjaGlwKTsKKwlpZiAo ZXJyKQorCQlyZXR1cm4gZXJyOworCisJcmV0dXJuIAltdjg4ZTZ4eHhfcG9ydF9yZWFkKGNoaXAs IFBPUlRfUkVTRVJWRURfMUFfREFUQV9QT1JULAorCQkJCSAgICBQT1JUX1JFU0VSVkVEXzFBLCB2 YWwpOworfQorCisvKiBDaGVjayBpZiB0aGUgZXJyYXRhIGhhcyBhbHJlYWR5IGJlZW4gYXBwbGll ZC4gKi8KK3N0YXRpYyBib29sIG12ODhlNjM5MF9zZXR1cF9lcnJhdGFfYXBwbGllZChzdHJ1Y3Qg bXY4OGU2eHh4X2NoaXAgKmNoaXApCit7CisJaW50IHBvcnQ7CisJaW50IGVycjsKKwl1MTYgdmFs OworCisJZm9yIChwb3J0ID0gMDsgcG9ydCA8IG12ODhlNnh4eF9udW1fcG9ydHMoY2hpcCk7IHBv cnQrKykgeworCQllcnIgPSBtdjg4ZTYzOTBfaGlkZGVuX3JlYWQoY2hpcCwgcG9ydCwgMCwgJnZh bCk7CisJCWlmIChlcnIpIHsKKwkJCWRldl9lcnIoY2hpcC0+ZGV2LAorCQkJCSJFcnJvciByZWFk aW5nIGhpZGRlbiByZWdpc3RlcjogJWRcbiIsIGVycik7CisJCQlyZXR1cm4gZmFsc2U7CisJCX0K KwkJaWYgKHZhbCAhPSAweDAxYzApCisJCQlyZXR1cm4gZmFsc2U7CisJfQorCisJcmV0dXJuIHRy dWU7Cit9CisKKy8qIFRoZSA2MzkwIGNvcHBlciBwb3J0cyBoYXZlIGFuIGVycmF0YSB3aGljaCBy ZXF1aXJlIHBva2luZyBtYWdpYworICogdmFsdWVzIGludG8gdW5kb2N1bWVudGVkIGhpZGRlbiBy ZWdpc3RlcnMgYW5kIHRoZW4gcGVyZm9ybWluZyBhCisgKiBzb2Z0d2FyZSByZXNldC4KKyAqLwor c3RhdGljIGludCBtdjg4ZTYzOTBfc2V0dXBfZXJyYXRhKHN0cnVjdCBtdjg4ZTZ4eHhfY2hpcCAq Y2hpcCkKK3sKKwlpbnQgcG9ydDsKKwlpbnQgZXJyOworCisJaWYgKG12ODhlNjM5MF9zZXR1cF9l cnJhdGFfYXBwbGllZChjaGlwKSkKKwkJcmV0dXJuIDA7CisKKwkvKiBTZXQgdGhlIHBvcnRzIGlu dG8gYmxvY2tpbmcgbW9kZSAqLworCWZvciAocG9ydCA9IDA7IHBvcnQgPCBtdjg4ZTZ4eHhfbnVt X3BvcnRzKGNoaXApOyBwb3J0KyspIHsKKwkJZXJyID0gbXY4OGU2eHh4X3BvcnRfc2V0X3N0YXRl KGNoaXAsIHBvcnQsIEJSX1NUQVRFX0RJU0FCTEVEKTsKKwkJaWYgKGVycikKKwkJCXJldHVybiBl cnI7CisJfQorCisJZm9yIChwb3J0ID0gMDsgcG9ydCA8IG12ODhlNnh4eF9udW1fcG9ydHMoY2hp cCk7IHBvcnQrKykgeworCQllcnIgPSBtdjg4ZTYzOTBfaGlkZGVuX3dyaXRlKGNoaXAsIHBvcnQs IDAsIDB4MDFjMCk7CisJCWlmIChlcnIpCisJCQlyZXR1cm4gZXJyOworCX0KKworCXJldHVybiBt djg4ZTZ4eHhfc29mdHdhcmVfcmVzZXQoY2hpcCk7Cit9CisKIHN0YXRpYyBpbnQgbXY4OGU2eHh4 X3NldHVwKHN0cnVjdCBkc2Ffc3dpdGNoICpkcykKIHsKIAlzdHJ1Y3QgbXY4OGU2eHh4X2NoaXAg KmNoaXAgPSBkcy0+cHJpdjsKQEAgLTI0MDMsNiArMjUwNCwxMiBAQCBzdGF0aWMgaW50IG12ODhl Nnh4eF9zZXR1cChzdHJ1Y3QgZHNhX3N3aXRjaCAqZHMpCiAKIAltdXRleF9sb2NrKCZjaGlwLT5y ZWdfbG9jayk7CiAKKwlpZiAoY2hpcC0+aW5mby0+b3BzLT5zZXR1cF9lcnJhdGEpIHsKKwkJZXJy ID0gY2hpcC0+aW5mby0+b3BzLT5zZXR1cF9lcnJhdGEoY2hpcCk7CisJCWlmIChlcnIpCisJCQln b3RvIHVubG9jazsKKwl9CisKIAkvKiBDYWNoZSB0aGUgY21vZGUgb2YgZWFjaCBwb3J0LiAqLwog CWZvciAoaSA9IDA7IGkgPCBtdjg4ZTZ4eHhfbnVtX3BvcnRzKGNoaXApOyBpKyspIHsKIAkJaWYg KGNoaXAtPmluZm8tPm9wcy0+cG9ydF9nZXRfY21vZGUpIHsKQEAgLTMyMDEsNiArMzMwOCw3IEBA IHN0YXRpYyBjb25zdCBzdHJ1Y3QgbXY4OGU2eHh4X29wcyBtdjg4ZTYxODVfb3BzID0gewogCiBz dGF0aWMgY29uc3Qgc3RydWN0IG12ODhlNnh4eF9vcHMgbXY4OGU2MTkwX29wcyA9IHsKIAkvKiBN Vjg4RTZYWFhfRkFNSUxZXzYzOTAgKi8KKwkuc2V0dXBfZXJyYXRhID0gbXY4OGU2MzkwX3NldHVw X2VycmF0YSwKIAkuaXJsX2luaXRfYWxsID0gbXY4OGU2MzkwX2cyX2lybF9pbml0X2FsbCwKIAku Z2V0X2VlcHJvbSA9IG12ODhlNnh4eF9nMl9nZXRfZWVwcm9tOCwKIAkuc2V0X2VlcHJvbSA9IG12 ODhlNnh4eF9nMl9zZXRfZWVwcm9tOCwKQEAgLTMyNDMsNiArMzM1MSw3IEBAIHN0YXRpYyBjb25z dCBzdHJ1Y3QgbXY4OGU2eHh4X29wcyBtdjg4ZTYxOTBfb3BzID0gewogCiBzdGF0aWMgY29uc3Qg c3RydWN0IG12ODhlNnh4eF9vcHMgbXY4OGU2MTkweF9vcHMgPSB7CiAJLyogTVY4OEU2WFhYX0ZB TUlMWV82MzkwICovCisJLnNldHVwX2VycmF0YSA9IG12ODhlNjM5MF9zZXR1cF9lcnJhdGEsCiAJ LmlybF9pbml0X2FsbCA9IG12ODhlNjM5MF9nMl9pcmxfaW5pdF9hbGwsCiAJLmdldF9lZXByb20g PSBtdjg4ZTZ4eHhfZzJfZ2V0X2VlcHJvbTgsCiAJLnNldF9lZXByb20gPSBtdjg4ZTZ4eHhfZzJf c2V0X2VlcHJvbTgsCkBAIC0zMjg1LDYgKzMzOTQsNyBAQCBzdGF0aWMgY29uc3Qgc3RydWN0IG12 ODhlNnh4eF9vcHMgbXY4OGU2MTkweF9vcHMgPSB7CiAKIHN0YXRpYyBjb25zdCBzdHJ1Y3QgbXY4 OGU2eHh4X29wcyBtdjg4ZTYxOTFfb3BzID0gewogCS8qIE1WODhFNlhYWF9GQU1JTFlfNjM5MCAq LworCS5zZXR1cF9lcnJhdGEgPSBtdjg4ZTYzOTBfc2V0dXBfZXJyYXRhLAogCS5pcmxfaW5pdF9h bGwgPSBtdjg4ZTYzOTBfZzJfaXJsX2luaXRfYWxsLAogCS5nZXRfZWVwcm9tID0gbXY4OGU2eHh4 X2cyX2dldF9lZXByb204LAogCS5zZXRfZWVwcm9tID0gbXY4OGU2eHh4X2cyX3NldF9lZXByb204 LApAQCAtMzM3NCw2ICszNDg0LDcgQEAgc3RhdGljIGNvbnN0IHN0cnVjdCBtdjg4ZTZ4eHhfb3Bz IG12ODhlNjI0MF9vcHMgPSB7CiAKIHN0YXRpYyBjb25zdCBzdHJ1Y3QgbXY4OGU2eHh4X29wcyBt djg4ZTYyOTBfb3BzID0gewogCS8qIE1WODhFNlhYWF9GQU1JTFlfNjM5MCAqLworCS5zZXR1cF9l cnJhdGEgPSBtdjg4ZTYzOTBfc2V0dXBfZXJyYXRhLAogCS5pcmxfaW5pdF9hbGwgPSBtdjg4ZTYz OTBfZzJfaXJsX2luaXRfYWxsLAogCS5nZXRfZWVwcm9tID0gbXY4OGU2eHh4X2cyX2dldF9lZXBy b204LAogCS5zZXRfZWVwcm9tID0gbXY4OGU2eHh4X2cyX3NldF9lZXByb204LApAQCAtMzY3NSw2 ICszNzg2LDcgQEAgc3RhdGljIGNvbnN0IHN0cnVjdCBtdjg4ZTZ4eHhfb3BzIG12ODhlNjM1Ml9v cHMgPSB7CiAKIHN0YXRpYyBjb25zdCBzdHJ1Y3QgbXY4OGU2eHh4X29wcyBtdjg4ZTYzOTBfb3Bz ID0gewogCS8qIE1WODhFNlhYWF9GQU1JTFlfNjM5MCAqLworCS5zZXR1cF9lcnJhdGEgPSBtdjg4 ZTYzOTBfc2V0dXBfZXJyYXRhLAogCS5pcmxfaW5pdF9hbGwgPSBtdjg4ZTYzOTBfZzJfaXJsX2lu aXRfYWxsLAogCS5nZXRfZWVwcm9tID0gbXY4OGU2eHh4X2cyX2dldF9lZXByb204LAogCS5zZXRf ZWVwcm9tID0gbXY4OGU2eHh4X2cyX3NldF9lZXByb204LApAQCAtMzcyMiw2ICszODM0LDcgQEAg c3RhdGljIGNvbnN0IHN0cnVjdCBtdjg4ZTZ4eHhfb3BzIG12ODhlNjM5MF9vcHMgPSB7CiAKIHN0 YXRpYyBjb25zdCBzdHJ1Y3QgbXY4OGU2eHh4X29wcyBtdjg4ZTYzOTB4X29wcyA9IHsKIAkvKiBN Vjg4RTZYWFhfRkFNSUxZXzYzOTAgKi8KKwkuc2V0dXBfZXJyYXRhID0gbXY4OGU2MzkwX3NldHVw X2VycmF0YSwKIAkuaXJsX2luaXRfYWxsID0gbXY4OGU2MzkwX2cyX2lybF9pbml0X2FsbCwKIAku Z2V0X2VlcHJvbSA9IG12ODhlNnh4eF9nMl9nZXRfZWVwcm9tOCwKIAkuc2V0X2VlcHJvbSA9IG12 ODhlNnh4eF9nMl9zZXRfZWVwcm9tOCwKZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L2RzYS9tdjg4 ZTZ4eHgvY2hpcC5oIGIvZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmgKaW5kZXggZjll Y2I3ODcyZDMyLi41NDY2NTFkOGMzZTEgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvbmV0L2RzYS9tdjg4 ZTZ4eHgvY2hpcC5oCisrKyBiL2RyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5oCkBAIC0z MDAsNiArMzAwLDExIEBAIHN0cnVjdCBtdjg4ZTZ4eHhfbWRpb19idXMgewogfTsKIAogc3RydWN0 IG12ODhlNnh4eF9vcHMgeworCS8qIFN3aXRjaCBTZXR1cCBFcnJhdGEsIGNhbGxlZCBlYXJseSBp biB0aGUgc3dpdGNoIHNldHVwIHRvCisJICogYWxsb3cgYW55IGVycmF0YSBhY3Rpb25zIHRvIGJl IHBlcmZvcm1lZAorCSAqLworCWludCAoKnNldHVwX2VycmF0YSkoc3RydWN0IG12ODhlNnh4eF9j aGlwICpjaGlwKTsKKwogCWludCAoKmllZWVfcHJpX21hcCkoc3RydWN0IG12ODhlNnh4eF9jaGlw ICpjaGlwKTsKIAlpbnQgKCppcF9wcmlfbWFwKShzdHJ1Y3QgbXY4OGU2eHh4X2NoaXAgKmNoaXAp OwogCmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L3BvcnQuaCBiL2RyaXZl cnMvbmV0L2RzYS9tdjg4ZTZ4eHgvcG9ydC5oCmluZGV4IGYzMmY1NmFmOGUzNS4uYjMxOTEwMDIz YmI2IDEwMDY0NAotLS0gYS9kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L3BvcnQuaAorKysgYi9k cml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L3BvcnQuaApAQCAtMjUxLDYgKzI1MSwxNiBAQAogLyog T2Zmc2V0IDB4MTk6IFBvcnQgSUVFRSBQcmlvcml0eSBSZW1hcHBpbmcgUmVnaXN0ZXJzICg0LTcp ICovCiAjZGVmaW5lIE1WODhFNjA5NV9QT1JUX0lFRUVfUFJJT19SRU1BUF80NTY3CTB4MTkKIAor LyogT2Zmc2V0IDB4MWE6IE1hZ2ljIHVuZG9jdW1lbnRlZCBlcnJhdGEgcmVnaXN0ZXIgKi8KKyNk ZWZpbmUgUE9SVF9SRVNFUlZFRF8xQQkJCTB4MWEKKyNkZWZpbmUgUE9SVF9SRVNFUlZFRF8xQV9C VVNZCQkJQklUKDE1KQorI2RlZmluZSBQT1JUX1JFU0VSVkVEXzFBX1dSSVRFCQkJQklUKDE0KQor I2RlZmluZSBQT1JUX1JFU0VSVkVEXzFBX1JFQUQJCQkwCisjZGVmaW5lIFBPUlRfUkVTRVJWRURf MUFfUE9SVF9TSElGVAkJNQorI2RlZmluZSBQT1JUX1JFU0VSVkVEXzFBX0JMT0NLCQkJKDB4ZiA8 PCAxMCkKKyNkZWZpbmUgUE9SVF9SRVNFUlZFRF8xQV9DVFJMX1BPUlQJCTQKKyNkZWZpbmUgUE9S VF9SRVNFUlZFRF8xQV9EQVRBX1BPUlQJCTUKKwogaW50IG12ODhlNnh4eF9wb3J0X3JlYWQoc3Ry dWN0IG12ODhlNnh4eF9jaGlwICpjaGlwLCBpbnQgcG9ydCwgaW50IHJlZywKIAkJCXUxNiAqdmFs KTsKIGludCBtdjg4ZTZ4eHhfcG9ydF93cml0ZShzdHJ1Y3QgbXY4OGU2eHh4X2NoaXAgKmNoaXAs IGludCBwb3J0LCBpbnQgcmVnLAotLSAKMi4yMC4xCgoKRnJvbSBlOWQyMDIxMzk3NzVjN2FhZGRk YjhmZGU2ZjZkMDNkYWM5YjNlMDgwIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBEYXZp ZCBSaWVudGplcyA8cmllbnRqZXNAZ29vZ2xlLmNvbT4KRGF0ZTogV2VkLCAyIEphbiAyMDE5IDEz OjAxOjQzIC0wODAwClN1YmplY3Q6IFtQQVRDSCAwNS8xMF0gbmV0LCBza2J1ZmY6IGRvIG5vdCBw cmVmZXIgc2tiIGFsbG9jYXRpb24gZmFpbHMgZWFybHkKClsgVXBzdHJlYW0gY29tbWl0IGY4YzQ2 OGU4NTM3OTI1ZTBjNDYwNzI2M2Y0OThhMWI3YzBjODk4MmUgXQoKQ29tbWl0IGRjZGE5YjA0NzEz YyAoIm1tLCB0cmVlIHdpZGU6IHJlcGxhY2UgX19HRlBfUkVQRUFUIGJ5Cl9fR0ZQX1JFVFJZX01B WUZBSUwgd2l0aCBtb3JlIHVzZWZ1bCBzZW1hbnRpYyIpIHJlcGxhY2VkIF9fR0ZQX1JFUEVBVCBp bgphbGxvY19za2Jfd2l0aF9mcmFncygpIHdpdGggX19HRlBfUkVUUllfTUFZRkFJTCB3aGVuIHRo ZSBhbGxvY2F0aW9uIG1heQpkaXJlY3RseSByZWNsYWltLgoKVGhlIHByZXZpb3VzIGJlaGF2aW9y IHdvdWxkIHJlcXVpcmUgcmVjbGFpbSB1cCB0byAxIDw8IG9yZGVyIHBhZ2VzIGZvcgpza2IgYWxp Z25lZCBoZWFkZXJfbGVuIG9mIG9yZGVyID4gUEFHRV9BTExPQ19DT1NUTFlfT1JERVIgYmVmb3Jl IGZhaWxpbmcsCm90aGVyd2lzZSB0aGUgYWxsb2NhdGlvbnMgaW4gYWxsb2Nfc2tiKCkgd291bGQg bG9vcCBpbiB0aGUgcGFnZSBhbGxvY2F0b3IKbG9va2luZyBmb3IgbWVtb3J5LiAgX19HRlBfUkVU UllfTUFZRkFJTCBtYWtlcyBib3RoIGFsbG9jYXRpb25zIGZhaWxhYmxlCnVuZGVyIG1lbW9yeSBw cmVzc3VyZSwgaW5jbHVkaW5nIGZvciB0aGUgSEVBRCBhbGxvY2F0aW9uLgoKVGhpcyBjYW4gY2F1 c2UsIGFtb25nIG1hbnkgb3RoZXIgdGhpbmdzLCB3cml0ZSgpIHRvIGZhaWwgd2l0aCBFTk9UQ09O TgpkdXJpbmcgUlBDIHdoZW4gdW5kZXIgbWVtb3J5IHByZXNzdXJlLgoKVGhlc2UgYWxsb2NhdGlv bnMgc2hvdWxkIHN1Y2NlZWQgYXMgdGhleSBkaWQgcHJldmlvdXMgdG8gZGNkYTliMDQ3MTNjCmV2 ZW4gaWYgaXQgcmVxdWlyZXMgY2FsbGluZyB0aGUgb29tIGtpbGxlciBhbmQgYWRkaXRpb25hbCBs b29waW5nIGluIHRoZQpwYWdlIGFsbG9jYXRvciB0byBmaW5kIG1lbW9yeS4gIFRoZXJlIGlzIG5v IHdheSB0byBzcGVjaWZ5IHRoZSBwcmV2aW91cwpiZWhhdmlvciBvZiBfX0dGUF9SRVBFQVQsIGJ1 dCBpdCdzIHVubGlrZWx5IHRvIGJlIG5lY2Vzc2FyeSBzaW5jZSB0aGUKcHJldmlvdXMgYmVoYXZp b3Igb25seSBndWFyYW50ZWVkIHRoYXQgMSA8PCBvcmRlciBwYWdlcyB3b3VsZCBiZSByZWNsYWlt ZWQKYmVmb3JlIGZhaWxpbmcgZm9yIG9yZGVyID4gUEFHRV9BTExPQ19DT1NUTFlfT1JERVIuICBU aGF0IHJlY2xhaW0gaXMgbm90Cmd1YXJhbnRlZWQgdG8gYmUgY29udGlndW91cyBtZW1vcnksIHNv IHJlcGVhdGluZyBmb3Igc3VjaCBsYXJnZSBvcmRlcnMgaXMKdXN1YWxseSBub3QgYmVuZWZpY2lh bC4KClJlbW92aW5nIHRoZSBzZXR0aW5nIG9mIF9fR0ZQX1JFVFJZX01BWUZBSUwgdG8gcmVzdG9y ZSB0aGUgcHJldmlvdXMKYmVoYXZpb3IsIHNwZWNpZmljYWxseSBub3QgYWxsb3dpbmcgYWxsb2Nf c2tiKCkgdG8gZmFpbCBmb3Igc21hbGwgb3JkZXJzCmFuZCBvb20ga2lsbCBpZiBuZWNlc3Nhcnkg cmF0aGVyIHRoYW4gYWxsb3dpbmcgUlBDcyB0byBmYWlsLgoKRml4ZXM6IGRjZGE5YjA0NzEzYyAo Im1tLCB0cmVlIHdpZGU6IHJlcGxhY2UgX19HRlBfUkVQRUFUIGJ5IF9fR0ZQX1JFVFJZX01BWUZB SUwgd2l0aCBtb3JlIHVzZWZ1bCBzZW1hbnRpYyIpClNpZ25lZC1vZmYtYnk6IERhdmlkIFJpZW50 amVzIDxyaWVudGplc0Bnb29nbGUuY29tPgpSZXZpZXdlZC1ieTogRXJpYyBEdW1hemV0IDxlZHVt YXpldEBnb29nbGUuY29tPgpTaWduZWQtb2ZmLWJ5OiBEYXZpZCBTLiBNaWxsZXIgPGRhdmVtQGRh dmVtbG9mdC5uZXQ+Ci0tLQogbmV0L2NvcmUvc2tidWZmLmMgfCA3ICstLS0tLS0KIDEgZmlsZSBj aGFuZ2VkLCAxIGluc2VydGlvbigrKSwgNiBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9uZXQv Y29yZS9za2J1ZmYuYyBiL25ldC9jb3JlL3NrYnVmZi5jCmluZGV4IGFiYmJkN2ZkMTdmZS4uNTg5 ZWM1YjllYzVmIDEwMDY0NAotLS0gYS9uZXQvY29yZS9za2J1ZmYuYworKysgYi9uZXQvY29yZS9z a2J1ZmYuYwpAQCAtNTI1OCw3ICs1MjU4LDYgQEAgc3RydWN0IHNrX2J1ZmYgKmFsbG9jX3NrYl93 aXRoX2ZyYWdzKHVuc2lnbmVkIGxvbmcgaGVhZGVyX2xlbiwKIAl1bnNpZ25lZCBsb25nIGNodW5r OwogCXN0cnVjdCBza19idWZmICpza2I7CiAJc3RydWN0IHBhZ2UgKnBhZ2U7Ci0JZ2ZwX3QgZ2Zw X2hlYWQ7CiAJaW50IGk7CiAKIAkqZXJyY29kZSA9IC1FTVNHU0laRTsKQEAgLTUyNjgsMTIgKzUy NjcsOCBAQCBzdHJ1Y3Qgc2tfYnVmZiAqYWxsb2Nfc2tiX3dpdGhfZnJhZ3ModW5zaWduZWQgbG9u ZyBoZWFkZXJfbGVuLAogCWlmIChucGFnZXMgPiBNQVhfU0tCX0ZSQUdTKQogCQlyZXR1cm4gTlVM TDsKIAotCWdmcF9oZWFkID0gZ2ZwX21hc2s7Ci0JaWYgKGdmcF9oZWFkICYgX19HRlBfRElSRUNU X1JFQ0xBSU0pCi0JCWdmcF9oZWFkIHw9IF9fR0ZQX1JFVFJZX01BWUZBSUw7Ci0KIAkqZXJyY29k ZSA9IC1FTk9CVUZTOwotCXNrYiA9IGFsbG9jX3NrYihoZWFkZXJfbGVuLCBnZnBfaGVhZCk7CisJ c2tiID0gYWxsb2Nfc2tiKGhlYWRlcl9sZW4sIGdmcF9tYXNrKTsKIAlpZiAoIXNrYikKIAkJcmV0 dXJuIE5VTEw7CiAKLS0gCjIuMjAuMQoKCkZyb20gMWI1NWVmNjNiYzNhZjE2YjBmOWU2MjQ0ZjU0 ZGVkZDYzYzMxOGMyNyBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJvbTogRGFuaWVsZSBQYWxt YXMgPGRubHBsbUBnbWFpbC5jb20+CkRhdGU6IEZyaSwgNCBKYW4gMjAxOSAxMzoyNjoxMCArMDEw MApTdWJqZWN0OiBbUEFUQ0ggMDYvMTBdIHFtaV93d2FuOiBhZGQgTVRVIGRlZmF1bHQgdG8gcW1h cCBuZXR3b3JrIGludGVyZmFjZQpNSU1FLVZlcnNpb246IDEuMApDb250ZW50LVR5cGU6IHRleHQv cGxhaW47IGNoYXJzZXQ9VVRGLTgKQ29udGVudC1UcmFuc2Zlci1FbmNvZGluZzogOGJpdAoKWyBV cHN0cmVhbSBjb21taXQgZjg3MTE4ZDU3NjBmMDBhZjcyMjgwMzNmYmU3ODNjN2YzODBkMjg2NiBd CgpUaGlzIHBhdGNoIGFkZHMgTVRVIGRlZmF1bHQgdmFsdWUgdG8gcW1hcCBuZXR3b3JrIGludGVy ZmFjZSBpbgpvcmRlciB0byBhdm9pZCAiUlRORVRMSU5LIGFuc3dlcnM6IE5vIGJ1ZmZlciBzcGFj ZSBhdmFpbGFibGUiCmVycm9yIHdoZW4gc2V0dGluZyBhbiBpcHY2IGFkZHJlc3MuCgpTaWduZWQt b2ZmLWJ5OiBEYW5pZWxlIFBhbG1hcyA8ZG5scGxtQGdtYWlsLmNvbT4KQWNrZWQtYnk6IEJqw7hy biBNb3JrIDxiam9ybkBtb3JrLm5vPgpTaWduZWQtb2ZmLWJ5OiBEYXZpZCBTLiBNaWxsZXIgPGRh dmVtQGRhdmVtbG9mdC5uZXQ+Ci0tLQogZHJpdmVycy9uZXQvdXNiL3FtaV93d2FuLmMgfCAxICsK IDEgZmlsZSBjaGFuZ2VkLCAxIGluc2VydGlvbigrKQoKZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0 L3VzYi9xbWlfd3dhbi5jIGIvZHJpdmVycy9uZXQvdXNiL3FtaV93d2FuLmMKaW5kZXggNzc0ZTFm ZjAxYzlhLi43MzVhZDgzOGUyYmEgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvbmV0L3VzYi9xbWlfd3dh bi5jCisrKyBiL2RyaXZlcnMvbmV0L3VzYi9xbWlfd3dhbi5jCkBAIC0xMjMsNiArMTIzLDcgQEAg c3RhdGljIHZvaWQgcW1pbXV4X3NldHVwKHN0cnVjdCBuZXRfZGV2aWNlICpkZXYpCiAJZGV2LT5h ZGRyX2xlbiAgICAgICAgPSAwOwogCWRldi0+ZmxhZ3MgICAgICAgICAgID0gSUZGX1BPSU5UT1BP SU5UIHwgSUZGX05PQVJQIHwgSUZGX01VTFRJQ0FTVDsKIAlkZXYtPm5ldGRldl9vcHMgICAgICA9 ICZxbWltdXhfbmV0ZGV2X29wczsKKwlkZXYtPm10dSAgICAgICAgICAgICA9IDE1MDA7CiAJZGV2 LT5uZWVkc19mcmVlX25ldGRldiA9IHRydWU7CiB9CiAKLS0gCjIuMjAuMQoKCkZyb20gYThlYjRl YjM3NjNiOWJkN2JmODAwY2Q5MzVhY2Q2N2Y0NzZkYWVmYiBNb24gU2VwIDE3IDAwOjAwOjAwIDIw MDEKRnJvbTogS2FpLUhlbmcgRmVuZyA8a2FpLmhlbmcuZmVuZ0BjYW5vbmljYWwuY29tPgpEYXRl OiBXZWQsIDIgSmFuIDIwMTkgMTQ6NDU6MDcgKzA4MDAKU3ViamVjdDogW1BBVENIIDA3LzEwXSBy ODE2OTogQWRkIHN1cHBvcnQgZm9yIG5ldyBSZWFsdGVrIEV0aGVybmV0CgpbIFVwc3RyZWFtIGNv bW1pdCAzNjM1Mjk5MTgzNWNlOTllNDZiNDQ0MWRkMGViNjk4MGY5YTgzZThmIF0KClRoZXJlIGFy ZSB0d28gbmV3IFJlYWx0ZWsgRXRoZXJuZXQgZGV2aWNlcyB3aGljaCBhcmUgcmUtYnJhbmRlZCBy ODE2OGguCkFkZCB0aGUgSURzIHRvIHRvIHN1cHBvcnQgdGhlbS4KClNpZ25lZC1vZmYtYnk6IEth aS1IZW5nIEZlbmcgPGthaS5oZW5nLmZlbmdAY2Fub25pY2FsLmNvbT4KUmV2aWV3ZWQtYnk6IEhl aW5lciBLYWxsd2VpdCA8aGthbGx3ZWl0MUBnbWFpbC5jb20+ClNpZ25lZC1vZmYtYnk6IERhdmlk IFMuIE1pbGxlciA8ZGF2ZW1AZGF2ZW1sb2Z0Lm5ldD4KLS0tCiBkcml2ZXJzL25ldC9ldGhlcm5l dC9yZWFsdGVrL3I4MTY5LmMgfCAyICsrCiAxIGZpbGUgY2hhbmdlZCwgMiBpbnNlcnRpb25zKCsp CgpkaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvZXRoZXJuZXQvcmVhbHRlay9yODE2OS5jIGIvZHJp dmVycy9uZXQvZXRoZXJuZXQvcmVhbHRlay9yODE2OS5jCmluZGV4IDlmYzhhMmJjMGZmMS4uOTFk NmRhZTczNjc1IDEwMDY0NAotLS0gYS9kcml2ZXJzL25ldC9ldGhlcm5ldC9yZWFsdGVrL3I4MTY5 LmMKKysrIGIvZHJpdmVycy9uZXQvZXRoZXJuZXQvcmVhbHRlay9yODE2OS5jCkBAIC0yMTQsNiAr MjE0LDggQEAgZW51bSBjZmdfdmVyc2lvbiB7CiB9OwogCiBzdGF0aWMgY29uc3Qgc3RydWN0IHBj aV9kZXZpY2VfaWQgcnRsODE2OV9wY2lfdGJsW10gPSB7CisJeyBQQ0lfVkRFVklDRShSRUFMVEVL LAkweDI1MDIpLCBSVExfQ0ZHXzEgfSwKKwl7IFBDSV9WREVWSUNFKFJFQUxURUssCTB4MjYwMCks IFJUTF9DRkdfMSB9LAogCXsgUENJX0RFVklDRShQQ0lfVkVORE9SX0lEX1JFQUxURUssCTB4ODEy OSksIDAsIDAsIFJUTF9DRkdfMCB9LAogCXsgUENJX0RFVklDRShQQ0lfVkVORE9SX0lEX1JFQUxU RUssCTB4ODEzNiksIDAsIDAsIFJUTF9DRkdfMiB9LAogCXsgUENJX0RFVklDRShQQ0lfVkVORE9S X0lEX1JFQUxURUssCTB4ODE2MSksIDAsIDAsIFJUTF9DRkdfMSB9LAotLSAKMi4yMC4xCgoKRnJv bSAwNDNmN2YzMjFkNzg5NGMxNzczMzJjNmU1OTFiOTBkYzJiM2NlOGEyIE1vbiBTZXAgMTcgMDA6 MDA6MDAgMjAwMQpGcm9tOiBEYXZpZCBBaGVybiA8ZHNhaGVybkBnbWFpbC5jb20+CkRhdGU6IFNh dCwgNSBKYW4gMjAxOSAwNzozNTowNCAtMDgwMApTdWJqZWN0OiBbUEFUQ0ggMDgvMTBdIGlwdjY6 IFRha2UgcmN1X3JlYWRfbG9jayBpbiBfX2luZXQ2X2JpbmQgZm9yIG1hcHBlZAogYWRkcmVzc2Vz CgpbIFVwc3RyZWFtIGNvbW1pdCBkNGE3ZTliYjc0YjVhYWYwN2I4OWY2NTMxYzA4MGIxMTMwYmRm MDE5IF0KCkkgcmVhbGl6ZWQgdGhlIGxhc3QgcGF0Y2ggY2FsbHMgZGV2X2dldF9ieV9pbmRleF9y Y3UgaW4gYSBicmFuY2ggbm90CmhvbGRpbmcgdGhlIHJjdSBsb2NrLiBBZGQgdGhlIGNhbGxzIHRv IHJjdV9yZWFkX2xvY2sgYW5kIHJjdV9yZWFkX3VubG9jay4KCkZpeGVzOiBlYzkwYWQzMzQ5ODYg KCJpcHY2OiBDb25zaWRlciBza19ib3VuZF9kZXZfaWYgd2hlbiBiaW5kaW5nIGEgc29ja2V0IHRv IGEgdjQgbWFwcGVkIGFkZHJlc3MiKQpTaWduZWQtb2ZmLWJ5OiBEYXZpZCBBaGVybiA8ZHNhaGVy bkBnbWFpbC5jb20+ClNpZ25lZC1vZmYtYnk6IERhdmlkIFMuIE1pbGxlciA8ZGF2ZW1AZGF2ZW1s b2Z0Lm5ldD4KLS0tCiBuZXQvaXB2Ni9hZl9pbmV0Ni5jIHwgNSArKysrLQogMSBmaWxlIGNoYW5n ZWQsIDQgaW5zZXJ0aW9ucygrKSwgMSBkZWxldGlvbigtKQoKZGlmZiAtLWdpdCBhL25ldC9pcHY2 L2FmX2luZXQ2LmMgYi9uZXQvaXB2Ni9hZl9pbmV0Ni5jCmluZGV4IDg5NTg0N2U1N2E4ZS4uNTA2 YjJhZTA3YmIzIDEwMDY0NAotLS0gYS9uZXQvaXB2Ni9hZl9pbmV0Ni5jCisrKyBiL25ldC9pcHY2 L2FmX2luZXQ2LmMKQEAgLTMyMCwxNyArMzIwLDIwIEBAIHN0YXRpYyBpbnQgX19pbmV0Nl9iaW5k KHN0cnVjdCBzb2NrICpzaywgc3RydWN0IHNvY2thZGRyICp1YWRkciwgaW50IGFkZHJfbGVuLAog CQkJZ290byBvdXQ7CiAJCX0KIAorCQlyY3VfcmVhZF9sb2NrKCk7CiAJCWlmIChzay0+c2tfYm91 bmRfZGV2X2lmKSB7CiAJCQlkZXYgPSBkZXZfZ2V0X2J5X2luZGV4X3JjdShuZXQsIHNrLT5za19i b3VuZF9kZXZfaWYpOwogCQkJaWYgKCFkZXYpIHsKIAkJCQllcnIgPSAtRU5PREVWOwotCQkJCWdv dG8gb3V0OworCQkJCWdvdG8gb3V0X3VubG9jazsKIAkJCX0KIAkJfQogCiAJCS8qIFJlcHJvZHVj ZSBBRl9JTkVUIGNoZWNrcyB0byBtYWtlIHRoZSBiaW5kaW5ncyBjb25zaXN0ZW50ICovCiAJCXY0 YWRkciA9IGFkZHItPnNpbjZfYWRkci5zNl9hZGRyMzJbM107CiAJCWNoa19hZGRyX3JldCA9IGlu ZXRfYWRkcl90eXBlX2Rldl90YWJsZShuZXQsIGRldiwgdjRhZGRyKTsKKwkJcmN1X3JlYWRfdW5s b2NrKCk7CisKIAkJaWYgKCFpbmV0X2Nhbl9ub25sb2NhbF9iaW5kKG5ldCwgaW5ldCkgJiYKIAkJ ICAgIHY0YWRkciAhPSBodG9ubChJTkFERFJfQU5ZKSAmJgogCQkgICAgY2hrX2FkZHJfcmV0ICE9 IFJUTl9MT0NBTCAmJgotLSAKMi4yMC4xCgoKRnJvbSAyNmU1NTBlNGNkZDgzZmMzNjkxOTNmNGNk ZjI1NWI3OThkMmViYjg4IE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBFcmljIER1bWF6 ZXQgPGVkdW1hemV0QGdvb2dsZS5jb20+CkRhdGU6IEZyaSwgNCBKYW4gMjAxOSAxMTowMDowMCAt MDgwMApTdWJqZWN0OiBbUEFUQ0ggMDkvMTBdIGlwdjY6IG1ha2UgaWNtcDZfc2VuZCgpIHJvYnVz dCBhZ2FpbnN0IG51bGwgc2tiLT5kZXYKClsgVXBzdHJlYW0gY29tbWl0IDhkOTMzNjcwNDUyMTA3 ZTQxMTY1YmVhNzBhMzBkZmZiZDI4MWJlZjEgXQoKc3l6Ym90IHdhcyBhYmxlIHRvIGNyYXNoIG9u ZSBob3N0IHdpdGggdGhlIGZvbGxvd2luZyBzdGFjayB0cmFjZSA6CgprYXNhbjogR1BGIGNvdWxk IGJlIGNhdXNlZCBieSBOVUxMLXB0ciBkZXJlZiBvciB1c2VyIG1lbW9yeSBhY2Nlc3MKZ2VuZXJh bCBwcm90ZWN0aW9uIGZhdWx0OiAwMDAwIFsjMV0gUFJFRU1QVCBTTVAgS0FTQU4KQ1BVOiAwIFBJ RDogODYyNSBDb21tOiBzeXotZXhlY3V0b3I0IE5vdCB0YWludGVkIDQuMjAuMCsgIzgKUklQOiAw MDEwOmRldl9uZXQgaW5jbHVkZS9saW51eC9uZXRkZXZpY2UuaDoyMTY5IFtpbmxpbmVdClJJUDog MDAxMDppY21wNl9zZW5kKzB4MTE2LzB4MmQzMCBuZXQvaXB2Ni9pY21wLmM6NDI2CiBpY21wdjZf c2VuZAogc21hY2tfc29ja2V0X3NvY2tfcmN2X3NrYgogc2VjdXJpdHlfc29ja19yY3Zfc2tiCiBz a19maWx0ZXJfdHJpbV9jYXAKIF9fc2tfcmVjZWl2ZV9za2IKIGRjY3BfdjZfZG9fcmN2CiByZWxl YXNlX3NvY2sKClRoaXMgaXMgYmVjYXVzZSBhIFJYIHBhY2tldCBmb3VuZCBzb2NrZXQgb3duZWQg YnkgdXNlciBhbmQKd2FzIHN0b3JlZCBpbnRvIHNvY2tldCBiYWNrbG9nLiBCZWZvcmUgbGVhdmlu ZyBSQ1UgcHJvdGVjdGVkIHNlY3Rpb24sCnNrYi0+ZGV2IHdhcyBjbGVhcmVkIGluIF9fc2tfcmVj ZWl2ZV9za2IoKS4gV2hlbiBzb2NrZXQgYmFja2xvZwp3YXMgZmluYWxseSBoYW5kbGVkIGF0IHJl bGVhc2Vfc29jaygpIHRpbWUsIHNrYiB3YXMgZmVkIHRvCnNtYWNrX3NvY2tldF9zb2NrX3Jjdl9z a2IoKSB0aGVuIGljbXA2X3NlbmQoKQoKV2UgY291bGQgZml4IHRoZSBidWcgaW4gc21hY2tfc29j a2V0X3NvY2tfcmN2X3NrYigpLCBvciBzaW1wbHkKbWFrZSBpY21wNl9zZW5kKCkgbW9yZSByb2J1 c3QgYWdhaW5zdCBzdWNoIHBvc3NpYmlsaXR5LgoKSW4gdGhlIGZ1dHVyZSB3ZSBtaWdodCBwcm92 aWRlIHRvIGljbXA2X3NlbmQoKSB0aGUgbmV0IHBvaW50ZXIKaW5zdGVhZCBvZiBpbmZlcmluZyBp dC4KCkZpeGVzOiBkNjZhOGFjYmRhOTIgKCJTbWFjazogSW5mb3JtIHBlZXIgdGhhdCBJUHY2IHRy YWZmaWMgaGFzIGJlZW4gYmxvY2tlZCIpClNpZ25lZC1vZmYtYnk6IEVyaWMgRHVtYXpldCA8ZWR1 bWF6ZXRAZ29vZ2xlLmNvbT4KQ2M6IFBpb3RyIFNhd2lja2kgPHAuc2F3aWNraTJAcGFydG5lci5z YW1zdW5nLmNvbT4KQ2M6IENhc2V5IFNjaGF1ZmxlciA8Y2FzZXlAc2NoYXVmbGVyLWNhLmNvbT4K UmVwb3J0ZWQtYnk6IHN5emJvdCA8c3l6a2FsbGVyQGdvb2dsZWdyb3Vwcy5jb20+CkFja2VkLWJ5 OiBDYXNleSBTY2hhdWZsZXIgPGNhc2V5QHNjaGF1Zmxlci1jYS5jb20+ClNpZ25lZC1vZmYtYnk6 IERhdmlkIFMuIE1pbGxlciA8ZGF2ZW1AZGF2ZW1sb2Z0Lm5ldD4KLS0tCiBuZXQvaXB2Ni9pY21w LmMgfCA4ICsrKysrKy0tCiAxIGZpbGUgY2hhbmdlZCwgNiBpbnNlcnRpb25zKCspLCAyIGRlbGV0 aW9ucygtKQoKZGlmZiAtLWdpdCBhL25ldC9pcHY2L2ljbXAuYyBiL25ldC9pcHY2L2ljbXAuYwpp bmRleCBjOWM1M2FkZTU1YzMuLjZkMTRjYmU0NDNmOCAxMDA2NDQKLS0tIGEvbmV0L2lwdjYvaWNt cC5jCisrKyBiL25ldC9pcHY2L2ljbXAuYwpAQCAtNDIxLDEwICs0MjEsMTAgQEAgc3RhdGljIGlu dCBpY21wNl9paWYoY29uc3Qgc3RydWN0IHNrX2J1ZmYgKnNrYikKIHN0YXRpYyB2b2lkIGljbXA2 X3NlbmQoc3RydWN0IHNrX2J1ZmYgKnNrYiwgdTggdHlwZSwgdTggY29kZSwgX191MzIgaW5mbywK IAkJICAgICAgIGNvbnN0IHN0cnVjdCBpbjZfYWRkciAqZm9yY2Vfc2FkZHIpCiB7Ci0Jc3RydWN0 IG5ldCAqbmV0ID0gZGV2X25ldChza2ItPmRldik7CiAJc3RydWN0IGluZXQ2X2RldiAqaWRldiA9 IE5VTEw7CiAJc3RydWN0IGlwdjZoZHIgKmhkciA9IGlwdjZfaGRyKHNrYik7CiAJc3RydWN0IHNv Y2sgKnNrOworCXN0cnVjdCBuZXQgKm5ldDsKIAlzdHJ1Y3QgaXB2Nl9waW5mbyAqbnA7CiAJY29u c3Qgc3RydWN0IGluNl9hZGRyICpzYWRkciA9IE5VTEw7CiAJc3RydWN0IGRzdF9lbnRyeSAqZHN0 OwpAQCAtNDM1LDEyICs0MzUsMTYgQEAgc3RhdGljIHZvaWQgaWNtcDZfc2VuZChzdHJ1Y3Qgc2tf YnVmZiAqc2tiLCB1OCB0eXBlLCB1OCBjb2RlLCBfX3UzMiBpbmZvLAogCWludCBpaWYgPSAwOwog CWludCBhZGRyX3R5cGUgPSAwOwogCWludCBsZW47Ci0JdTMyIG1hcmsgPSBJUDZfUkVQTFlfTUFS SyhuZXQsIHNrYi0+bWFyayk7CisJdTMyIG1hcms7CiAKIAlpZiAoKHU4ICopaGRyIDwgc2tiLT5o ZWFkIHx8CiAJICAgIChza2JfbmV0d29ya19oZWFkZXIoc2tiKSArIHNpemVvZigqaGRyKSkgPiBz a2JfdGFpbF9wb2ludGVyKHNrYikpCiAJCXJldHVybjsKIAorCWlmICghc2tiLT5kZXYpCisJCXJl dHVybjsKKwluZXQgPSBkZXZfbmV0KHNrYi0+ZGV2KTsKKwltYXJrID0gSVA2X1JFUExZX01BUkso bmV0LCBza2ItPm1hcmspOwogCS8qCiAJICoJTWFrZSBzdXJlIHdlIHJlc3BlY3QgdGhlIHJ1bGVz CiAJICoJaS5lLiBSRkMgMTg4NSAyLjQoZSkKLS0gCjIuMjAuMQoKCkZyb20gOTU0MDkzMzhkNjNm MmU1MjZkYWY3MTE1YmJiMGI1YTY0MGY5ZDc0MiBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJv bTogUGFvbG8gQWJlbmkgPHBhYmVuaUByZWRoYXQuY29tPgpEYXRlOiBUdWUsIDggSmFuIDIwMTkg MTg6NDU6MDUgKzAxMDAKU3ViamVjdDogW1BBVENIIDEwLzEwXSBuZXQ6IGNsZWFyIHNrYi0+dHN0 YW1wIGluIGJyaWRnZSBmb3J3YXJkaW5nIHBhdGgKClsgVXBzdHJlYW0gY29tbWl0IDQxZDFjODgz OWU1ZjhjYjc4MWNjNjM1ZjEyNzkxZGVjZWU4MjcxYjcgXQoKTWF0dGVvIHJlcG9ydGVkIGZvcndh cmRpbmcgaXNzdWVzIGluc2lkZSB0aGUgbGludXggYnJpZGdlLAppZiB0aGUgZW5zbGF2ZWQgaW50 ZXJmYWNlcyB1c2UgdGhlIGZxIHFkaXNjLgoKU2ltaWxhciB0byBjb21taXQgODIwM2UyZDg0NGQz ICgibmV0OiBjbGVhciBza2ItPnRzdGFtcCBpbgpmb3J3YXJkaW5nIHBhdGhzIiksIHdlIG5lZWQg dG8gY2xlYXIgdGhlIHRzdGFtcCBmaWVsZCBpbgp0aGUgYnJpZGdlIGZvcndhcmRpbmcgcGF0aC4K CkZpeGVzOiA4MGIxNGRlZTJiZWEgKCJuZXQ6IEFkZCBhIG5ldyBzb2NrZXQgb3B0aW9uIGZvciBh IGZ1dHVyZSB0cmFuc21pdCB0aW1lLiIpCkZpeGVzOiBmYjQyMGQ1ZDkxYzEgKCJ0Y3AvZnE6IG1v dmUgYmFjayB0byBDTE9DS19NT05PVE9OSUMiKQpSZXBvcnRlZC1hbmQtdGVzdGVkLWJ5OiBNYXR0 ZW8gQ3JvY2UgPG1jcm9jZUByZWRoYXQuY29tPgpTaWduZWQtb2ZmLWJ5OiBQYW9sbyBBYmVuaSA8 cGFiZW5pQHJlZGhhdC5jb20+CkFja2VkLWJ5OiBOaWtvbGF5IEFsZWtzYW5kcm92IDxuaWtvbGF5 QGN1bXVsdXNuZXR3b3Jrcy5jb20+CkFja2VkLWJ5OiBSb29wYSBQcmFiaHUgPHJvb3BhQGN1bXVs dXNuZXR3b3Jrcy5jb20+ClJldmlld2VkLWJ5OiBFcmljIER1bWF6ZXQgPGVkdW1hemV0QGdvb2ds ZS5jb20+ClNpZ25lZC1vZmYtYnk6IERhdmlkIFMuIE1pbGxlciA8ZGF2ZW1AZGF2ZW1sb2Z0Lm5l dD4KLS0tCiBuZXQvYnJpZGdlL2JyX2ZvcndhcmQuYyB8IDEgKwogMSBmaWxlIGNoYW5nZWQsIDEg aW5zZXJ0aW9uKCspCgpkaWZmIC0tZ2l0IGEvbmV0L2JyaWRnZS9icl9mb3J3YXJkLmMgYi9uZXQv YnJpZGdlL2JyX2ZvcndhcmQuYwppbmRleCA1MzcyZTIwNDJhZGYuLjJjYjhkYTQ2NWI5OCAxMDA2 NDQKLS0tIGEvbmV0L2JyaWRnZS9icl9mb3J3YXJkLmMKKysrIGIvbmV0L2JyaWRnZS9icl9mb3J3 YXJkLmMKQEAgLTY1LDYgKzY1LDcgQEAgRVhQT1JUX1NZTUJPTF9HUEwoYnJfZGV2X3F1ZXVlX3B1 c2hfeG1pdCk7CiAKIGludCBicl9mb3J3YXJkX2ZpbmlzaChzdHJ1Y3QgbmV0ICpuZXQsIHN0cnVj dCBzb2NrICpzaywgc3RydWN0IHNrX2J1ZmYgKnNrYikKIHsKKwlza2ItPnRzdGFtcCA9IDA7CiAJ cmV0dXJuIE5GX0hPT0soTkZQUk9UT19CUklER0UsIE5GX0JSX1BPU1RfUk9VVElORywKIAkJICAg ICAgIG5ldCwgc2ssIHNrYiwgTlVMTCwgc2tiLT5kZXYsCiAJCSAgICAgICBicl9kZXZfcXVldWVf cHVzaF94bWl0KTsKLS0gCjIuMjAuMQoK ----Next_Part(Mon_Jan_21_15_28_01_2019_958)-- Content-Type: Application/Octet-Stream Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="net_420.mbox" RnJvbSA5MDkxOWNiNWFlNDAzMDZjNzFlY2RiOTAwNWI2MmZkYzMzZjBkMzZmIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBEYXZpZCBBaGVybiA8ZHNhaGVybkBnbWFpbC5jb20+CkRhdGU6 IEZyaSwgNCBKYW4gMjAxOSAxNjo1ODoxNSAtMDgwMApTdWJqZWN0OiBbUEFUQ0ggMDEvMTRdIGlw djY6IENvbnNpZGVyIHNrX2JvdW5kX2Rldl9pZiB3aGVuIGJpbmRpbmcgYSBzb2NrZXQgdG8KIGEg djQgbWFwcGVkIGFkZHJlc3MKClsgVXBzdHJlYW0gY29tbWl0IGVjOTBhZDMzNDk4NmZhNTg1NmQx MWRkMjcyZjdmMjJmYTg2YzU1YzQgXQoKU2ltaWxhciB0byBjNWVlMDY2MzMzZWIgKCJpcHY2OiBD b25zaWRlciBza19ib3VuZF9kZXZfaWYgd2hlbiBiaW5kaW5nIGEKc29ja2V0IHRvIGFuIGFkZHJl c3MiKSwgYmluZGluZyBhIHNvY2tldCB0byB2NCBtYXBwZWQgYWRkcmVzc2VzIG5lZWRzIHRvCmNv bnNpZGVyIGlmIHRoZSBzb2NrZXQgaXMgYm91bmQgdG8gYSBkZXZpY2UuCgpUaGlzIHByb2JsZW0g YWxzbyBleGlzdHMgZnJvbSB0aGUgYmVnaW5uaW5nIG9mIGdpdCBoaXN0b3J5LgoKU2lnbmVkLW9m Zi1ieTogRGF2aWQgQWhlcm4gPGRzYWhlcm5AZ21haWwuY29tPgpTaWduZWQtb2ZmLWJ5OiBEYXZp ZCBTLiBNaWxsZXIgPGRhdmVtQGRhdmVtbG9mdC5uZXQ+Ci0tLQogbmV0L2lwdjYvYWZfaW5ldDYu YyB8IDExICsrKysrKysrKystCiAxIGZpbGUgY2hhbmdlZCwgMTAgaW5zZXJ0aW9ucygrKSwgMSBk ZWxldGlvbigtKQoKZGlmZiAtLWdpdCBhL25ldC9pcHY2L2FmX2luZXQ2LmMgYi9uZXQvaXB2Ni9h Zl9pbmV0Ni5jCmluZGV4IGYwY2QyOTEwMzRmMC4uNjNkMTU0NTc4OTU1IDEwMDY0NAotLS0gYS9u ZXQvaXB2Ni9hZl9pbmV0Ni5jCisrKyBiL25ldC9pcHY2L2FmX2luZXQ2LmMKQEAgLTMxMCw2ICsz MTAsNyBAQCBzdGF0aWMgaW50IF9faW5ldDZfYmluZChzdHJ1Y3Qgc29jayAqc2ssIHN0cnVjdCBz b2NrYWRkciAqdWFkZHIsIGludCBhZGRyX2xlbiwKIAogCS8qIENoZWNrIGlmIHRoZSBhZGRyZXNz IGJlbG9uZ3MgdG8gdGhlIGhvc3QuICovCiAJaWYgKGFkZHJfdHlwZSA9PSBJUFY2X0FERFJfTUFQ UEVEKSB7CisJCXN0cnVjdCBuZXRfZGV2aWNlICpkZXYgPSBOVUxMOwogCQlpbnQgY2hrX2FkZHJf cmV0OwogCiAJCS8qIEJpbmRpbmcgdG8gdjQtbWFwcGVkIGFkZHJlc3Mgb24gYSB2Ni1vbmx5IHNv Y2tldApAQCAtMzIwLDkgKzMyMSwxNyBAQCBzdGF0aWMgaW50IF9faW5ldDZfYmluZChzdHJ1Y3Qg c29jayAqc2ssIHN0cnVjdCBzb2NrYWRkciAqdWFkZHIsIGludCBhZGRyX2xlbiwKIAkJCWdvdG8g b3V0OwogCQl9CiAKKwkJaWYgKHNrLT5za19ib3VuZF9kZXZfaWYpIHsKKwkJCWRldiA9IGRldl9n ZXRfYnlfaW5kZXhfcmN1KG5ldCwgc2stPnNrX2JvdW5kX2Rldl9pZik7CisJCQlpZiAoIWRldikg eworCQkJCWVyciA9IC1FTk9ERVY7CisJCQkJZ290byBvdXQ7CisJCQl9CisJCX0KKwogCQkvKiBS ZXByb2R1Y2UgQUZfSU5FVCBjaGVja3MgdG8gbWFrZSB0aGUgYmluZGluZ3MgY29uc2lzdGVudCAq LwogCQl2NGFkZHIgPSBhZGRyLT5zaW42X2FkZHIuczZfYWRkcjMyWzNdOwotCQljaGtfYWRkcl9y ZXQgPSBpbmV0X2FkZHJfdHlwZShuZXQsIHY0YWRkcik7CisJCWNoa19hZGRyX3JldCA9IGluZXRf YWRkcl90eXBlX2Rldl90YWJsZShuZXQsIGRldiwgdjRhZGRyKTsKIAkJaWYgKCFpbmV0X2Nhbl9u b25sb2NhbF9iaW5kKG5ldCwgaW5ldCkgJiYKIAkJICAgIHY0YWRkciAhPSBodG9ubChJTkFERFJf QU5ZKSAmJgogCQkgICAgY2hrX2FkZHJfcmV0ICE9IFJUTl9MT0NBTCAmJgotLSAKMi4yMC4xCgoK RnJvbSAwZjZiYWJlYTcwODViMTAzODQ3ZjFiNDc2ZjdmNzQ1ZGExMWI2ZTUwIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBKaXJpIFBpcmtvIDxqaXJpQG1lbGxhbm94LmNvbT4KRGF0ZTog VHVlLCA4IEphbiAyMDE5IDE2OjQ4OjA1ICswMDAwClN1YmplY3Q6IFtQQVRDSCAwMi8xNF0gbWx4 c3c6IHNwZWN0cnVtOiBEaXNhYmxlIGxhZyBwb3J0IFRYIGJlZm9yZSByZW1vdmluZyBpdAoKWyBV cHN0cmVhbSBjb21taXQgOGFkYmUyMTJhMTU5ZDljNzhhOTBmY2ExZDg1NGY2ZTYzNDUyNDI2YiBd CgpNYWtlIHN1cmUgdGhhdCBsYWcgcG9ydCBUWCBpcyBkaXNhYmxlZCBiZWZvcmUgbWx4c3dfc3Bf cG9ydF9sYWdfbGVhdmUoKQppcyBjYWxsZWQgYW5kIHByZXZlbnQgZnJvbSBwb3NzaWJsZSBFTUFE IGVycm9yLgoKRml4ZXM6IDBkNjVmYzEzMDQyZiAoIm1seHN3OiBzcGVjdHJ1bTogSW1wbGVtZW50 IExBRyBwb3J0IGpvaW4vbGVhdmUiKQpTaWduZWQtb2ZmLWJ5OiBKaXJpIFBpcmtvIDxqaXJpQG1l bGxhbm94LmNvbT4KU2lnbmVkLW9mZi1ieTogSWRvIFNjaGltbWVsIDxpZG9zY2hAbWVsbGFub3gu Y29tPgpTaWduZWQtb2ZmLWJ5OiBEYXZpZCBTLiBNaWxsZXIgPGRhdmVtQGRhdmVtbG9mdC5uZXQ+ Ci0tLQogZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4c3cvc3BlY3RydW0uYyB8IDcg KysrKystLQogMSBmaWxlIGNoYW5nZWQsIDUgaW5zZXJ0aW9ucygrKSwgMiBkZWxldGlvbnMoLSkK CmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHhzdy9zcGVjdHJ1 bS5jIGIvZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4c3cvc3BlY3RydW0uYwppbmRl eCBmODRiOWMwMmZjYzUuLjEyNGFlZTA5ZTk1MyAxMDA2NDQKLS0tIGEvZHJpdmVycy9uZXQvZXRo ZXJuZXQvbWVsbGFub3gvbWx4c3cvc3BlY3RydW0uYworKysgYi9kcml2ZXJzL25ldC9ldGhlcm5l dC9tZWxsYW5veC9tbHhzdy9zcGVjdHJ1bS5jCkBAIC00NzM4LDEyICs0NzM4LDE1IEBAIHN0YXRp YyBpbnQgbWx4c3dfc3BfbmV0ZGV2aWNlX3BvcnRfdXBwZXJfZXZlbnQoc3RydWN0IG5ldF9kZXZp Y2UgKmxvd2VyX2RldiwKIAkJCQkJCQkgICBsb3dlcl9kZXYsCiAJCQkJCQkJICAgdXBwZXJfZGV2 KTsKIAkJfSBlbHNlIGlmIChuZXRpZl9pc19sYWdfbWFzdGVyKHVwcGVyX2RldikpIHsKLQkJCWlm IChpbmZvLT5saW5raW5nKQorCQkJaWYgKGluZm8tPmxpbmtpbmcpIHsKIAkJCQllcnIgPSBtbHhz d19zcF9wb3J0X2xhZ19qb2luKG1seHN3X3NwX3BvcnQsCiAJCQkJCQkJICAgICB1cHBlcl9kZXYp OwotCQkJZWxzZQorCQkJfSBlbHNlIHsKKwkJCQltbHhzd19zcF9wb3J0X2xhZ190eF9lbl9zZXQo bWx4c3dfc3BfcG9ydCwKKwkJCQkJCQkgICAgZmFsc2UpOwogCQkJCW1seHN3X3NwX3BvcnRfbGFn X2xlYXZlKG1seHN3X3NwX3BvcnQsCiAJCQkJCQkJdXBwZXJfZGV2KTsKKwkJCX0KIAkJfSBlbHNl IGlmIChuZXRpZl9pc19vdnNfbWFzdGVyKHVwcGVyX2RldikpIHsKIAkJCWlmIChpbmZvLT5saW5r aW5nKQogCQkJCWVyciA9IG1seHN3X3NwX3BvcnRfb3ZzX2pvaW4obWx4c3dfc3BfcG9ydCk7Ci0t IAoyLjIwLjEKCgpGcm9tIGQ5N2IzMGI0ZjBjMzVhZWE2ZjM0YmMyYmQ5NGE1MDJhOGUxZGRmOTcg TW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCkZyb206IElkbyBTY2hpbW1lbCA8aWRvc2NoQG1lbGxh bm94LmNvbT4KRGF0ZTogVHVlLCA4IEphbiAyMDE5IDE2OjQ4OjEzICswMDAwClN1YmplY3Q6IFtQ QVRDSCAwMy8xNF0gbWx4c3c6IHNwZWN0cnVtX3N3aXRjaGRldjogU2V0IFBWSUQgY29ycmVjdGx5 IGR1cmluZwogVkxBTiBkZWxldGlvbgoKWyBVcHN0cmVhbSBjb21taXQgNjc0YmVkNWRmNGNhYjhm OTZkMDRmN2I5OTYwODg4M2E0OGY5MjI2YiBdCgpXaGVuIGEgVkxBTiBpcyBkZWxldGVkIGZyb20g YSBicmlkZ2UgcG9ydCB3ZSBzaG91bGQgbm90IGNoYW5nZSB0aGUgUFZJRAp1bmxlc3MgdGhlIGRl bGV0ZWQgVkxBTiBpcyB0aGUgUFZJRC4KCkZpeGVzOiBmZTljY2M3ODVkZTUgKCJtbHhzdzogc3Bl Y3RydW1fc3dpdGNoZGV2OiBEb24ndCBiYXRjaCBWTEFOIG9wZXJhdGlvbnMiKQpTaWduZWQtb2Zm LWJ5OiBJZG8gU2NoaW1tZWwgPGlkb3NjaEBtZWxsYW5veC5jb20+CkFja2VkLWJ5OiBKaXJpIFBp cmtvIDxqaXJpQG1lbGxhbm94LmNvbT4KU2lnbmVkLW9mZi1ieTogRGF2aWQgUy4gTWlsbGVyIDxk YXZlbUBkYXZlbWxvZnQubmV0PgotLS0KIGRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21s eHN3L3NwZWN0cnVtX3N3aXRjaGRldi5jIHwgMiArLQogMSBmaWxlIGNoYW5nZWQsIDEgaW5zZXJ0 aW9uKCspLCAxIGRlbGV0aW9uKC0pCgpkaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvZXRoZXJuZXQv bWVsbGFub3gvbWx4c3cvc3BlY3RydW1fc3dpdGNoZGV2LmMgYi9kcml2ZXJzL25ldC9ldGhlcm5l dC9tZWxsYW5veC9tbHhzdy9zcGVjdHJ1bV9zd2l0Y2hkZXYuYwppbmRleCA1MDA4MGM2MGEyNzku LjY5ZjU1NmRkYjkzNCAxMDA2NDQKLS0tIGEvZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gv bWx4c3cvc3BlY3RydW1fc3dpdGNoZGV2LmMKKysrIGIvZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVs bGFub3gvbWx4c3cvc3BlY3RydW1fc3dpdGNoZGV2LmMKQEAgLTE4MTYsNyArMTgxNiw3IEBAIHN0 YXRpYyB2b2lkCiBtbHhzd19zcF9icmlkZ2VfcG9ydF92bGFuX2RlbChzdHJ1Y3QgbWx4c3dfc3Bf cG9ydCAqbWx4c3dfc3BfcG9ydCwKIAkJCSAgICAgIHN0cnVjdCBtbHhzd19zcF9icmlkZ2VfcG9y dCAqYnJpZGdlX3BvcnQsIHUxNiB2aWQpCiB7Ci0JdTE2IHB2aWQgPSBtbHhzd19zcF9wb3J0LT5w dmlkID09IHZpZCA/IDAgOiB2aWQ7CisJdTE2IHB2aWQgPSBtbHhzd19zcF9wb3J0LT5wdmlkID09 IHZpZCA/IDAgOiBtbHhzd19zcF9wb3J0LT5wdmlkOwogCXN0cnVjdCBtbHhzd19zcF9wb3J0X3Zs YW4gKm1seHN3X3NwX3BvcnRfdmxhbjsKIAogCW1seHN3X3NwX3BvcnRfdmxhbiA9IG1seHN3X3Nw X3BvcnRfdmxhbl9maW5kX2J5X3ZpZChtbHhzd19zcF9wb3J0LCB2aWQpOwotLSAKMi4yMC4xCgoK RnJvbSA3ZjZhMTVjOWNjNjY5YmRkNjg5MWJhOGZlNGUxNTNlMGYyZDFmNTM4IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBBbmRyZXcgTHVubiA8YW5kcmV3QGx1bm4uY2g+CkRhdGU6IFdl ZCwgOSBKYW4gMjAxOSAwMDoyNDowMyArMDEwMApTdWJqZWN0OiBbUEFUQ0ggMDQvMTRdIG5ldDog ZHNhOiBtdjg4eDZ4eHg6IG12ODhlNjM5MCBlcnJhdGEKClsgVXBzdHJlYW0gY29tbWl0IGVhODkw OThlZjlhNTc0YmNlY2EwMGQzYjVkZjE0YWFmMGIzZjljY2YgXQoKVGhlIDYzOTAgY29wcGVyIHBv cnRzIGhhdmUgYW4gZXJyYXRhIHdoaWNoIHJlcXVpcmUgcG9raW5nIG1hZ2ljIHZhbHVlcwppbnRv IHVuZG9jdW1lbnRlZCBtYWdpYyByZWdpc3RlcnMgYW5kIHRoZW4gcGVyZm9ybWluZyBhIHNvZnR3 YXJlCnJlc2V0LgoKU2lnbmVkLW9mZi1ieTogQW5kcmV3IEx1bm4gPGFuZHJld0BsdW5uLmNoPgpT aWduZWQtb2ZmLWJ5OiBEYXZpZCBTLiBNaWxsZXIgPGRhdmVtQGRhdmVtbG9mdC5uZXQ+Ci0tLQog ZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmMgfCAxMTMgKysrKysrKysrKysrKysrKysr KysrKysrKysrKysrKwogZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmggfCAgIDUgKysK IGRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvcG9ydC5oIHwgIDEwICsrKwogMyBmaWxlcyBjaGFu Z2VkLCAxMjggaW5zZXJ0aW9ucygrKQoKZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L2RzYS9tdjg4 ZTZ4eHgvY2hpcC5jIGIvZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmMKaW5kZXggMjRm YjZhNjg1MDM5Li5iMmEwZTU5YjYyNTIgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvbmV0L2RzYS9tdjg4 ZTZ4eHgvY2hpcC5jCisrKyBiL2RyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jCkBAIC0y NDAzLDYgKzI0MDMsMTA3IEBAIHN0YXRpYyBpbnQgbXY4OGU2eHh4X3N0YXRzX3NldHVwKHN0cnVj dCBtdjg4ZTZ4eHhfY2hpcCAqY2hpcCkKIAlyZXR1cm4gbXY4OGU2eHh4X2cxX3N0YXRzX2NsZWFy KGNoaXApOwogfQogCisvKiBUaGUgbXY4OGU2MzkwIGhhcyBzb21lIGhpZGRlbiByZWdpc3RlcnMg dXNlZCBmb3IgZGVidWcgYW5kCisgKiBkZXZlbG9wbWVudC4gVGhlIGVycmF0YSBhbHNvIG1ha2Vz IHVzZSBvZiB0aGVtLgorICovCitzdGF0aWMgaW50IG12ODhlNjM5MF9oaWRkZW5fd3JpdGUoc3Ry dWN0IG12ODhlNnh4eF9jaGlwICpjaGlwLCBpbnQgcG9ydCwKKwkJCQkgIGludCByZWcsIHUxNiB2 YWwpCit7CisJdTE2IGN0cmw7CisJaW50IGVycjsKKworCWVyciA9IG12ODhlNnh4eF9wb3J0X3dy aXRlKGNoaXAsIFBPUlRfUkVTRVJWRURfMUFfREFUQV9QT1JULAorCQkJCSAgIFBPUlRfUkVTRVJW RURfMUEsIHZhbCk7CisJaWYgKGVycikKKwkJcmV0dXJuIGVycjsKKworCWN0cmwgPSBQT1JUX1JF U0VSVkVEXzFBX0JVU1kgfCBQT1JUX1JFU0VSVkVEXzFBX1dSSVRFIHwKKwkgICAgICAgUE9SVF9S RVNFUlZFRF8xQV9CTE9DSyB8IHBvcnQgPDwgUE9SVF9SRVNFUlZFRF8xQV9QT1JUX1NISUZUIHwK KwkgICAgICAgcmVnOworCisJcmV0dXJuIG12ODhlNnh4eF9wb3J0X3dyaXRlKGNoaXAsIFBPUlRf UkVTRVJWRURfMUFfQ1RSTF9QT1JULAorCQkJCSAgICBQT1JUX1JFU0VSVkVEXzFBLCBjdHJsKTsK K30KKworc3RhdGljIGludCBtdjg4ZTYzOTBfaGlkZGVuX3dhaXQoc3RydWN0IG12ODhlNnh4eF9j aGlwICpjaGlwKQoreworCXJldHVybiBtdjg4ZTZ4eHhfd2FpdChjaGlwLCBQT1JUX1JFU0VSVkVE XzFBX0NUUkxfUE9SVCwKKwkJCSAgICAgIFBPUlRfUkVTRVJWRURfMUEsIFBPUlRfUkVTRVJWRURf MUFfQlVTWSk7Cit9CisKKworc3RhdGljIGludCBtdjg4ZTYzOTBfaGlkZGVuX3JlYWQoc3RydWN0 IG12ODhlNnh4eF9jaGlwICpjaGlwLCBpbnQgcG9ydCwKKwkJCQkgIGludCByZWcsIHUxNiAqdmFs KQoreworCXUxNiBjdHJsOworCWludCBlcnI7CisKKwljdHJsID0gUE9SVF9SRVNFUlZFRF8xQV9C VVNZIHwgUE9SVF9SRVNFUlZFRF8xQV9SRUFEIHwKKwkgICAgICAgUE9SVF9SRVNFUlZFRF8xQV9C TE9DSyB8IHBvcnQgPDwgUE9SVF9SRVNFUlZFRF8xQV9QT1JUX1NISUZUIHwKKwkgICAgICAgcmVn OworCisJZXJyID0gbXY4OGU2eHh4X3BvcnRfd3JpdGUoY2hpcCwgUE9SVF9SRVNFUlZFRF8xQV9D VFJMX1BPUlQsCisJCQkJICAgUE9SVF9SRVNFUlZFRF8xQSwgY3RybCk7CisJaWYgKGVycikKKwkJ cmV0dXJuIGVycjsKKworCWVyciA9IG12ODhlNjM5MF9oaWRkZW5fd2FpdChjaGlwKTsKKwlpZiAo ZXJyKQorCQlyZXR1cm4gZXJyOworCisJcmV0dXJuIAltdjg4ZTZ4eHhfcG9ydF9yZWFkKGNoaXAs IFBPUlRfUkVTRVJWRURfMUFfREFUQV9QT1JULAorCQkJCSAgICBQT1JUX1JFU0VSVkVEXzFBLCB2 YWwpOworfQorCisvKiBDaGVjayBpZiB0aGUgZXJyYXRhIGhhcyBhbHJlYWR5IGJlZW4gYXBwbGll ZC4gKi8KK3N0YXRpYyBib29sIG12ODhlNjM5MF9zZXR1cF9lcnJhdGFfYXBwbGllZChzdHJ1Y3Qg bXY4OGU2eHh4X2NoaXAgKmNoaXApCit7CisJaW50IHBvcnQ7CisJaW50IGVycjsKKwl1MTYgdmFs OworCisJZm9yIChwb3J0ID0gMDsgcG9ydCA8IG12ODhlNnh4eF9udW1fcG9ydHMoY2hpcCk7IHBv cnQrKykgeworCQllcnIgPSBtdjg4ZTYzOTBfaGlkZGVuX3JlYWQoY2hpcCwgcG9ydCwgMCwgJnZh bCk7CisJCWlmIChlcnIpIHsKKwkJCWRldl9lcnIoY2hpcC0+ZGV2LAorCQkJCSJFcnJvciByZWFk aW5nIGhpZGRlbiByZWdpc3RlcjogJWRcbiIsIGVycik7CisJCQlyZXR1cm4gZmFsc2U7CisJCX0K KwkJaWYgKHZhbCAhPSAweDAxYzApCisJCQlyZXR1cm4gZmFsc2U7CisJfQorCisJcmV0dXJuIHRy dWU7Cit9CisKKy8qIFRoZSA2MzkwIGNvcHBlciBwb3J0cyBoYXZlIGFuIGVycmF0YSB3aGljaCBy ZXF1aXJlIHBva2luZyBtYWdpYworICogdmFsdWVzIGludG8gdW5kb2N1bWVudGVkIGhpZGRlbiBy ZWdpc3RlcnMgYW5kIHRoZW4gcGVyZm9ybWluZyBhCisgKiBzb2Z0d2FyZSByZXNldC4KKyAqLwor c3RhdGljIGludCBtdjg4ZTYzOTBfc2V0dXBfZXJyYXRhKHN0cnVjdCBtdjg4ZTZ4eHhfY2hpcCAq Y2hpcCkKK3sKKwlpbnQgcG9ydDsKKwlpbnQgZXJyOworCisJaWYgKG12ODhlNjM5MF9zZXR1cF9l cnJhdGFfYXBwbGllZChjaGlwKSkKKwkJcmV0dXJuIDA7CisKKwkvKiBTZXQgdGhlIHBvcnRzIGlu dG8gYmxvY2tpbmcgbW9kZSAqLworCWZvciAocG9ydCA9IDA7IHBvcnQgPCBtdjg4ZTZ4eHhfbnVt X3BvcnRzKGNoaXApOyBwb3J0KyspIHsKKwkJZXJyID0gbXY4OGU2eHh4X3BvcnRfc2V0X3N0YXRl KGNoaXAsIHBvcnQsIEJSX1NUQVRFX0RJU0FCTEVEKTsKKwkJaWYgKGVycikKKwkJCXJldHVybiBl cnI7CisJfQorCisJZm9yIChwb3J0ID0gMDsgcG9ydCA8IG12ODhlNnh4eF9udW1fcG9ydHMoY2hp cCk7IHBvcnQrKykgeworCQllcnIgPSBtdjg4ZTYzOTBfaGlkZGVuX3dyaXRlKGNoaXAsIHBvcnQs IDAsIDB4MDFjMCk7CisJCWlmIChlcnIpCisJCQlyZXR1cm4gZXJyOworCX0KKworCXJldHVybiBt djg4ZTZ4eHhfc29mdHdhcmVfcmVzZXQoY2hpcCk7Cit9CisKIHN0YXRpYyBpbnQgbXY4OGU2eHh4 X3NldHVwKHN0cnVjdCBkc2Ffc3dpdGNoICpkcykKIHsKIAlzdHJ1Y3QgbXY4OGU2eHh4X2NoaXAg KmNoaXAgPSBkcy0+cHJpdjsKQEAgLTI0MTUsNiArMjUxNiwxMiBAQCBzdGF0aWMgaW50IG12ODhl Nnh4eF9zZXR1cChzdHJ1Y3QgZHNhX3N3aXRjaCAqZHMpCiAKIAltdXRleF9sb2NrKCZjaGlwLT5y ZWdfbG9jayk7CiAKKwlpZiAoY2hpcC0+aW5mby0+b3BzLT5zZXR1cF9lcnJhdGEpIHsKKwkJZXJy ID0gY2hpcC0+aW5mby0+b3BzLT5zZXR1cF9lcnJhdGEoY2hpcCk7CisJCWlmIChlcnIpCisJCQln b3RvIHVubG9jazsKKwl9CisKIAkvKiBDYWNoZSB0aGUgY21vZGUgb2YgZWFjaCBwb3J0LiAqLwog CWZvciAoaSA9IDA7IGkgPCBtdjg4ZTZ4eHhfbnVtX3BvcnRzKGNoaXApOyBpKyspIHsKIAkJaWYg KGNoaXAtPmluZm8tPm9wcy0+cG9ydF9nZXRfY21vZGUpIHsKQEAgLTMyMTUsNiArMzMyMiw3IEBA IHN0YXRpYyBjb25zdCBzdHJ1Y3QgbXY4OGU2eHh4X29wcyBtdjg4ZTYxODVfb3BzID0gewogCiBz dGF0aWMgY29uc3Qgc3RydWN0IG12ODhlNnh4eF9vcHMgbXY4OGU2MTkwX29wcyA9IHsKIAkvKiBN Vjg4RTZYWFhfRkFNSUxZXzYzOTAgKi8KKwkuc2V0dXBfZXJyYXRhID0gbXY4OGU2MzkwX3NldHVw X2VycmF0YSwKIAkuaXJsX2luaXRfYWxsID0gbXY4OGU2MzkwX2cyX2lybF9pbml0X2FsbCwKIAku Z2V0X2VlcHJvbSA9IG12ODhlNnh4eF9nMl9nZXRfZWVwcm9tOCwKIAkuc2V0X2VlcHJvbSA9IG12 ODhlNnh4eF9nMl9zZXRfZWVwcm9tOCwKQEAgLTMyNTcsNiArMzM2NSw3IEBAIHN0YXRpYyBjb25z dCBzdHJ1Y3QgbXY4OGU2eHh4X29wcyBtdjg4ZTYxOTBfb3BzID0gewogCiBzdGF0aWMgY29uc3Qg c3RydWN0IG12ODhlNnh4eF9vcHMgbXY4OGU2MTkweF9vcHMgPSB7CiAJLyogTVY4OEU2WFhYX0ZB TUlMWV82MzkwICovCisJLnNldHVwX2VycmF0YSA9IG12ODhlNjM5MF9zZXR1cF9lcnJhdGEsCiAJ LmlybF9pbml0X2FsbCA9IG12ODhlNjM5MF9nMl9pcmxfaW5pdF9hbGwsCiAJLmdldF9lZXByb20g PSBtdjg4ZTZ4eHhfZzJfZ2V0X2VlcHJvbTgsCiAJLnNldF9lZXByb20gPSBtdjg4ZTZ4eHhfZzJf c2V0X2VlcHJvbTgsCkBAIC0zMjk5LDYgKzM0MDgsNyBAQCBzdGF0aWMgY29uc3Qgc3RydWN0IG12 ODhlNnh4eF9vcHMgbXY4OGU2MTkweF9vcHMgPSB7CiAKIHN0YXRpYyBjb25zdCBzdHJ1Y3QgbXY4 OGU2eHh4X29wcyBtdjg4ZTYxOTFfb3BzID0gewogCS8qIE1WODhFNlhYWF9GQU1JTFlfNjM5MCAq LworCS5zZXR1cF9lcnJhdGEgPSBtdjg4ZTYzOTBfc2V0dXBfZXJyYXRhLAogCS5pcmxfaW5pdF9h bGwgPSBtdjg4ZTYzOTBfZzJfaXJsX2luaXRfYWxsLAogCS5nZXRfZWVwcm9tID0gbXY4OGU2eHh4 X2cyX2dldF9lZXByb204LAogCS5zZXRfZWVwcm9tID0gbXY4OGU2eHh4X2cyX3NldF9lZXByb204 LApAQCAtMzM5MCw2ICszNTAwLDcgQEAgc3RhdGljIGNvbnN0IHN0cnVjdCBtdjg4ZTZ4eHhfb3Bz IG12ODhlNjI0MF9vcHMgPSB7CiAKIHN0YXRpYyBjb25zdCBzdHJ1Y3QgbXY4OGU2eHh4X29wcyBt djg4ZTYyOTBfb3BzID0gewogCS8qIE1WODhFNlhYWF9GQU1JTFlfNjM5MCAqLworCS5zZXR1cF9l cnJhdGEgPSBtdjg4ZTYzOTBfc2V0dXBfZXJyYXRhLAogCS5pcmxfaW5pdF9hbGwgPSBtdjg4ZTYz OTBfZzJfaXJsX2luaXRfYWxsLAogCS5nZXRfZWVwcm9tID0gbXY4OGU2eHh4X2cyX2dldF9lZXBy b204LAogCS5zZXRfZWVwcm9tID0gbXY4OGU2eHh4X2cyX3NldF9lZXByb204LApAQCAtMzY5Myw2 ICszODA0LDcgQEAgc3RhdGljIGNvbnN0IHN0cnVjdCBtdjg4ZTZ4eHhfb3BzIG12ODhlNjM1Ml9v cHMgPSB7CiAKIHN0YXRpYyBjb25zdCBzdHJ1Y3QgbXY4OGU2eHh4X29wcyBtdjg4ZTYzOTBfb3Bz ID0gewogCS8qIE1WODhFNlhYWF9GQU1JTFlfNjM5MCAqLworCS5zZXR1cF9lcnJhdGEgPSBtdjg4 ZTYzOTBfc2V0dXBfZXJyYXRhLAogCS5pcmxfaW5pdF9hbGwgPSBtdjg4ZTYzOTBfZzJfaXJsX2lu aXRfYWxsLAogCS5nZXRfZWVwcm9tID0gbXY4OGU2eHh4X2cyX2dldF9lZXByb204LAogCS5zZXRf ZWVwcm9tID0gbXY4OGU2eHh4X2cyX3NldF9lZXByb204LApAQCAtMzc0MCw2ICszODUyLDcgQEAg c3RhdGljIGNvbnN0IHN0cnVjdCBtdjg4ZTZ4eHhfb3BzIG12ODhlNjM5MF9vcHMgPSB7CiAKIHN0 YXRpYyBjb25zdCBzdHJ1Y3QgbXY4OGU2eHh4X29wcyBtdjg4ZTYzOTB4X29wcyA9IHsKIAkvKiBN Vjg4RTZYWFhfRkFNSUxZXzYzOTAgKi8KKwkuc2V0dXBfZXJyYXRhID0gbXY4OGU2MzkwX3NldHVw X2VycmF0YSwKIAkuaXJsX2luaXRfYWxsID0gbXY4OGU2MzkwX2cyX2lybF9pbml0X2FsbCwKIAku Z2V0X2VlcHJvbSA9IG12ODhlNnh4eF9nMl9nZXRfZWVwcm9tOCwKIAkuc2V0X2VlcHJvbSA9IG12 ODhlNnh4eF9nMl9zZXRfZWVwcm9tOCwKZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L2RzYS9tdjg4 ZTZ4eHgvY2hpcC5oIGIvZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmgKaW5kZXggZjll Y2I3ODcyZDMyLi41NDY2NTFkOGMzZTEgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvbmV0L2RzYS9tdjg4 ZTZ4eHgvY2hpcC5oCisrKyBiL2RyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5oCkBAIC0z MDAsNiArMzAwLDExIEBAIHN0cnVjdCBtdjg4ZTZ4eHhfbWRpb19idXMgewogfTsKIAogc3RydWN0 IG12ODhlNnh4eF9vcHMgeworCS8qIFN3aXRjaCBTZXR1cCBFcnJhdGEsIGNhbGxlZCBlYXJseSBp biB0aGUgc3dpdGNoIHNldHVwIHRvCisJICogYWxsb3cgYW55IGVycmF0YSBhY3Rpb25zIHRvIGJl IHBlcmZvcm1lZAorCSAqLworCWludCAoKnNldHVwX2VycmF0YSkoc3RydWN0IG12ODhlNnh4eF9j aGlwICpjaGlwKTsKKwogCWludCAoKmllZWVfcHJpX21hcCkoc3RydWN0IG12ODhlNnh4eF9jaGlw ICpjaGlwKTsKIAlpbnQgKCppcF9wcmlfbWFwKShzdHJ1Y3QgbXY4OGU2eHh4X2NoaXAgKmNoaXAp OwogCmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L3BvcnQuaCBiL2RyaXZl cnMvbmV0L2RzYS9tdjg4ZTZ4eHgvcG9ydC5oCmluZGV4IDM2OTA0YzliZjk1NS4uMDkxYWEwMDU3 ZjFmIDEwMDY0NAotLS0gYS9kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L3BvcnQuaAorKysgYi9k cml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L3BvcnQuaApAQCAtMjUxLDYgKzI1MSwxNiBAQAogLyog T2Zmc2V0IDB4MTk6IFBvcnQgSUVFRSBQcmlvcml0eSBSZW1hcHBpbmcgUmVnaXN0ZXJzICg0LTcp ICovCiAjZGVmaW5lIE1WODhFNjA5NV9QT1JUX0lFRUVfUFJJT19SRU1BUF80NTY3CTB4MTkKIAor LyogT2Zmc2V0IDB4MWE6IE1hZ2ljIHVuZG9jdW1lbnRlZCBlcnJhdGEgcmVnaXN0ZXIgKi8KKyNk ZWZpbmUgUE9SVF9SRVNFUlZFRF8xQQkJCTB4MWEKKyNkZWZpbmUgUE9SVF9SRVNFUlZFRF8xQV9C VVNZCQkJQklUKDE1KQorI2RlZmluZSBQT1JUX1JFU0VSVkVEXzFBX1dSSVRFCQkJQklUKDE0KQor I2RlZmluZSBQT1JUX1JFU0VSVkVEXzFBX1JFQUQJCQkwCisjZGVmaW5lIFBPUlRfUkVTRVJWRURf MUFfUE9SVF9TSElGVAkJNQorI2RlZmluZSBQT1JUX1JFU0VSVkVEXzFBX0JMT0NLCQkJKDB4ZiA8 PCAxMCkKKyNkZWZpbmUgUE9SVF9SRVNFUlZFRF8xQV9DVFJMX1BPUlQJCTQKKyNkZWZpbmUgUE9S VF9SRVNFUlZFRF8xQV9EQVRBX1BPUlQJCTUKKwogaW50IG12ODhlNnh4eF9wb3J0X3JlYWQoc3Ry dWN0IG12ODhlNnh4eF9jaGlwICpjaGlwLCBpbnQgcG9ydCwgaW50IHJlZywKIAkJCXUxNiAqdmFs KTsKIGludCBtdjg4ZTZ4eHhfcG9ydF93cml0ZShzdHJ1Y3QgbXY4OGU2eHh4X2NoaXAgKmNoaXAs IGludCBwb3J0LCBpbnQgcmVnLAotLSAKMi4yMC4xCgoKRnJvbSBmYTZkMDg3NTQ5MWRiZjY1ZWQz MDM0NmY1MjEzOGY0YWQyYjEyNWYyIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBEYXZp ZCBSaWVudGplcyA8cmllbnRqZXNAZ29vZ2xlLmNvbT4KRGF0ZTogV2VkLCAyIEphbiAyMDE5IDEz OjAxOjQzIC0wODAwClN1YmplY3Q6IFtQQVRDSCAwNS8xNF0gbmV0LCBza2J1ZmY6IGRvIG5vdCBw cmVmZXIgc2tiIGFsbG9jYXRpb24gZmFpbHMgZWFybHkKClsgVXBzdHJlYW0gY29tbWl0IGY4YzQ2 OGU4NTM3OTI1ZTBjNDYwNzI2M2Y0OThhMWI3YzBjODk4MmUgXQoKQ29tbWl0IGRjZGE5YjA0NzEz YyAoIm1tLCB0cmVlIHdpZGU6IHJlcGxhY2UgX19HRlBfUkVQRUFUIGJ5Cl9fR0ZQX1JFVFJZX01B WUZBSUwgd2l0aCBtb3JlIHVzZWZ1bCBzZW1hbnRpYyIpIHJlcGxhY2VkIF9fR0ZQX1JFUEVBVCBp bgphbGxvY19za2Jfd2l0aF9mcmFncygpIHdpdGggX19HRlBfUkVUUllfTUFZRkFJTCB3aGVuIHRo ZSBhbGxvY2F0aW9uIG1heQpkaXJlY3RseSByZWNsYWltLgoKVGhlIHByZXZpb3VzIGJlaGF2aW9y IHdvdWxkIHJlcXVpcmUgcmVjbGFpbSB1cCB0byAxIDw8IG9yZGVyIHBhZ2VzIGZvcgpza2IgYWxp Z25lZCBoZWFkZXJfbGVuIG9mIG9yZGVyID4gUEFHRV9BTExPQ19DT1NUTFlfT1JERVIgYmVmb3Jl IGZhaWxpbmcsCm90aGVyd2lzZSB0aGUgYWxsb2NhdGlvbnMgaW4gYWxsb2Nfc2tiKCkgd291bGQg bG9vcCBpbiB0aGUgcGFnZSBhbGxvY2F0b3IKbG9va2luZyBmb3IgbWVtb3J5LiAgX19HRlBfUkVU UllfTUFZRkFJTCBtYWtlcyBib3RoIGFsbG9jYXRpb25zIGZhaWxhYmxlCnVuZGVyIG1lbW9yeSBw cmVzc3VyZSwgaW5jbHVkaW5nIGZvciB0aGUgSEVBRCBhbGxvY2F0aW9uLgoKVGhpcyBjYW4gY2F1 c2UsIGFtb25nIG1hbnkgb3RoZXIgdGhpbmdzLCB3cml0ZSgpIHRvIGZhaWwgd2l0aCBFTk9UQ09O TgpkdXJpbmcgUlBDIHdoZW4gdW5kZXIgbWVtb3J5IHByZXNzdXJlLgoKVGhlc2UgYWxsb2NhdGlv bnMgc2hvdWxkIHN1Y2NlZWQgYXMgdGhleSBkaWQgcHJldmlvdXMgdG8gZGNkYTliMDQ3MTNjCmV2 ZW4gaWYgaXQgcmVxdWlyZXMgY2FsbGluZyB0aGUgb29tIGtpbGxlciBhbmQgYWRkaXRpb25hbCBs b29waW5nIGluIHRoZQpwYWdlIGFsbG9jYXRvciB0byBmaW5kIG1lbW9yeS4gIFRoZXJlIGlzIG5v IHdheSB0byBzcGVjaWZ5IHRoZSBwcmV2aW91cwpiZWhhdmlvciBvZiBfX0dGUF9SRVBFQVQsIGJ1 dCBpdCdzIHVubGlrZWx5IHRvIGJlIG5lY2Vzc2FyeSBzaW5jZSB0aGUKcHJldmlvdXMgYmVoYXZp b3Igb25seSBndWFyYW50ZWVkIHRoYXQgMSA8PCBvcmRlciBwYWdlcyB3b3VsZCBiZSByZWNsYWlt ZWQKYmVmb3JlIGZhaWxpbmcgZm9yIG9yZGVyID4gUEFHRV9BTExPQ19DT1NUTFlfT1JERVIuICBU aGF0IHJlY2xhaW0gaXMgbm90Cmd1YXJhbnRlZWQgdG8gYmUgY29udGlndW91cyBtZW1vcnksIHNv IHJlcGVhdGluZyBmb3Igc3VjaCBsYXJnZSBvcmRlcnMgaXMKdXN1YWxseSBub3QgYmVuZWZpY2lh bC4KClJlbW92aW5nIHRoZSBzZXR0aW5nIG9mIF9fR0ZQX1JFVFJZX01BWUZBSUwgdG8gcmVzdG9y ZSB0aGUgcHJldmlvdXMKYmVoYXZpb3IsIHNwZWNpZmljYWxseSBub3QgYWxsb3dpbmcgYWxsb2Nf c2tiKCkgdG8gZmFpbCBmb3Igc21hbGwgb3JkZXJzCmFuZCBvb20ga2lsbCBpZiBuZWNlc3Nhcnkg cmF0aGVyIHRoYW4gYWxsb3dpbmcgUlBDcyB0byBmYWlsLgoKRml4ZXM6IGRjZGE5YjA0NzEzYyAo Im1tLCB0cmVlIHdpZGU6IHJlcGxhY2UgX19HRlBfUkVQRUFUIGJ5IF9fR0ZQX1JFVFJZX01BWUZB SUwgd2l0aCBtb3JlIHVzZWZ1bCBzZW1hbnRpYyIpClNpZ25lZC1vZmYtYnk6IERhdmlkIFJpZW50 amVzIDxyaWVudGplc0Bnb29nbGUuY29tPgpSZXZpZXdlZC1ieTogRXJpYyBEdW1hemV0IDxlZHVt YXpldEBnb29nbGUuY29tPgpTaWduZWQtb2ZmLWJ5OiBEYXZpZCBTLiBNaWxsZXIgPGRhdmVtQGRh dmVtbG9mdC5uZXQ+Ci0tLQogbmV0L2NvcmUvc2tidWZmLmMgfCA3ICstLS0tLS0KIDEgZmlsZSBj aGFuZ2VkLCAxIGluc2VydGlvbigrKSwgNiBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9uZXQv Y29yZS9za2J1ZmYuYyBiL25ldC9jb3JlL3NrYnVmZi5jCmluZGV4IGE4MjE3ZTIyMWUxOS4uZWVi YzMxMDZkMzBlIDEwMDY0NAotLS0gYS9uZXQvY29yZS9za2J1ZmYuYworKysgYi9uZXQvY29yZS9z a2J1ZmYuYwpAQCAtNTIwMiw3ICs1MjAyLDYgQEAgc3RydWN0IHNrX2J1ZmYgKmFsbG9jX3NrYl93 aXRoX2ZyYWdzKHVuc2lnbmVkIGxvbmcgaGVhZGVyX2xlbiwKIAl1bnNpZ25lZCBsb25nIGNodW5r OwogCXN0cnVjdCBza19idWZmICpza2I7CiAJc3RydWN0IHBhZ2UgKnBhZ2U7Ci0JZ2ZwX3QgZ2Zw X2hlYWQ7CiAJaW50IGk7CiAKIAkqZXJyY29kZSA9IC1FTVNHU0laRTsKQEAgLTUyMTIsMTIgKzUy MTEsOCBAQCBzdHJ1Y3Qgc2tfYnVmZiAqYWxsb2Nfc2tiX3dpdGhfZnJhZ3ModW5zaWduZWQgbG9u ZyBoZWFkZXJfbGVuLAogCWlmIChucGFnZXMgPiBNQVhfU0tCX0ZSQUdTKQogCQlyZXR1cm4gTlVM TDsKIAotCWdmcF9oZWFkID0gZ2ZwX21hc2s7Ci0JaWYgKGdmcF9oZWFkICYgX19HRlBfRElSRUNU X1JFQ0xBSU0pCi0JCWdmcF9oZWFkIHw9IF9fR0ZQX1JFVFJZX01BWUZBSUw7Ci0KIAkqZXJyY29k ZSA9IC1FTk9CVUZTOwotCXNrYiA9IGFsbG9jX3NrYihoZWFkZXJfbGVuLCBnZnBfaGVhZCk7CisJ c2tiID0gYWxsb2Nfc2tiKGhlYWRlcl9sZW4sIGdmcF9tYXNrKTsKIAlpZiAoIXNrYikKIAkJcmV0 dXJuIE5VTEw7CiAKLS0gCjIuMjAuMQoKCkZyb20gZDc1NWFmNDk0M2QwZjIwZmM5NWEyMjg3MjIy YWY2NjBhZmRkZjE0MiBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJvbTogRGFuaWVsZSBQYWxt YXMgPGRubHBsbUBnbWFpbC5jb20+CkRhdGU6IEZyaSwgNCBKYW4gMjAxOSAxMzoyNjoxMCArMDEw MApTdWJqZWN0OiBbUEFUQ0ggMDYvMTRdIHFtaV93d2FuOiBhZGQgTVRVIGRlZmF1bHQgdG8gcW1h cCBuZXR3b3JrIGludGVyZmFjZQpNSU1FLVZlcnNpb246IDEuMApDb250ZW50LVR5cGU6IHRleHQv cGxhaW47IGNoYXJzZXQ9VVRGLTgKQ29udGVudC1UcmFuc2Zlci1FbmNvZGluZzogOGJpdAoKWyBV cHN0cmVhbSBjb21taXQgZjg3MTE4ZDU3NjBmMDBhZjcyMjgwMzNmYmU3ODNjN2YzODBkMjg2NiBd CgpUaGlzIHBhdGNoIGFkZHMgTVRVIGRlZmF1bHQgdmFsdWUgdG8gcW1hcCBuZXR3b3JrIGludGVy ZmFjZSBpbgpvcmRlciB0byBhdm9pZCAiUlRORVRMSU5LIGFuc3dlcnM6IE5vIGJ1ZmZlciBzcGFj ZSBhdmFpbGFibGUiCmVycm9yIHdoZW4gc2V0dGluZyBhbiBpcHY2IGFkZHJlc3MuCgpTaWduZWQt b2ZmLWJ5OiBEYW5pZWxlIFBhbG1hcyA8ZG5scGxtQGdtYWlsLmNvbT4KQWNrZWQtYnk6IEJqw7hy biBNb3JrIDxiam9ybkBtb3JrLm5vPgpTaWduZWQtb2ZmLWJ5OiBEYXZpZCBTLiBNaWxsZXIgPGRh dmVtQGRhdmVtbG9mdC5uZXQ+Ci0tLQogZHJpdmVycy9uZXQvdXNiL3FtaV93d2FuLmMgfCAxICsK IDEgZmlsZSBjaGFuZ2VkLCAxIGluc2VydGlvbigrKQoKZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0 L3VzYi9xbWlfd3dhbi5jIGIvZHJpdmVycy9uZXQvdXNiL3FtaV93d2FuLmMKaW5kZXggNzc0ZTFm ZjAxYzlhLi43MzVhZDgzOGUyYmEgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvbmV0L3VzYi9xbWlfd3dh bi5jCisrKyBiL2RyaXZlcnMvbmV0L3VzYi9xbWlfd3dhbi5jCkBAIC0xMjMsNiArMTIzLDcgQEAg c3RhdGljIHZvaWQgcW1pbXV4X3NldHVwKHN0cnVjdCBuZXRfZGV2aWNlICpkZXYpCiAJZGV2LT5h ZGRyX2xlbiAgICAgICAgPSAwOwogCWRldi0+ZmxhZ3MgICAgICAgICAgID0gSUZGX1BPSU5UT1BP SU5UIHwgSUZGX05PQVJQIHwgSUZGX01VTFRJQ0FTVDsKIAlkZXYtPm5ldGRldl9vcHMgICAgICA9 ICZxbWltdXhfbmV0ZGV2X29wczsKKwlkZXYtPm10dSAgICAgICAgICAgICA9IDE1MDA7CiAJZGV2 LT5uZWVkc19mcmVlX25ldGRldiA9IHRydWU7CiB9CiAKLS0gCjIuMjAuMQoKCkZyb20gZDk0ZjY1 MDg3ODA0MGI4MmViYmVlOGI3YmM4NTE2NDA1NWI3MjIwOSBNb24gU2VwIDE3IDAwOjAwOjAwIDIw MDEKRnJvbTogS2FpLUhlbmcgRmVuZyA8a2FpLmhlbmcuZmVuZ0BjYW5vbmljYWwuY29tPgpEYXRl OiBXZWQsIDIgSmFuIDIwMTkgMTQ6NDU6MDcgKzA4MDAKU3ViamVjdDogW1BBVENIIDA3LzE0XSBy ODE2OTogQWRkIHN1cHBvcnQgZm9yIG5ldyBSZWFsdGVrIEV0aGVybmV0CgpbIFVwc3RyZWFtIGNv bW1pdCAzNjM1Mjk5MTgzNWNlOTllNDZiNDQ0MWRkMGViNjk4MGY5YTgzZThmIF0KClRoZXJlIGFy ZSB0d28gbmV3IFJlYWx0ZWsgRXRoZXJuZXQgZGV2aWNlcyB3aGljaCBhcmUgcmUtYnJhbmRlZCBy ODE2OGguCkFkZCB0aGUgSURzIHRvIHRvIHN1cHBvcnQgdGhlbS4KClNpZ25lZC1vZmYtYnk6IEth aS1IZW5nIEZlbmcgPGthaS5oZW5nLmZlbmdAY2Fub25pY2FsLmNvbT4KUmV2aWV3ZWQtYnk6IEhl aW5lciBLYWxsd2VpdCA8aGthbGx3ZWl0MUBnbWFpbC5jb20+ClNpZ25lZC1vZmYtYnk6IERhdmlk IFMuIE1pbGxlciA8ZGF2ZW1AZGF2ZW1sb2Z0Lm5ldD4KLS0tCiBkcml2ZXJzL25ldC9ldGhlcm5l dC9yZWFsdGVrL3I4MTY5LmMgfCAyICsrCiAxIGZpbGUgY2hhbmdlZCwgMiBpbnNlcnRpb25zKCsp CgpkaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvZXRoZXJuZXQvcmVhbHRlay9yODE2OS5jIGIvZHJp dmVycy9uZXQvZXRoZXJuZXQvcmVhbHRlay9yODE2OS5jCmluZGV4IDIwOTU2NmY4MDk3Yi4uZTMw YjhjZGZlOTg2IDEwMDY0NAotLS0gYS9kcml2ZXJzL25ldC9ldGhlcm5ldC9yZWFsdGVrL3I4MTY5 LmMKKysrIGIvZHJpdmVycy9uZXQvZXRoZXJuZXQvcmVhbHRlay9yODE2OS5jCkBAIC0yMTIsNiAr MjEyLDggQEAgZW51bSBjZmdfdmVyc2lvbiB7CiB9OwogCiBzdGF0aWMgY29uc3Qgc3RydWN0IHBj aV9kZXZpY2VfaWQgcnRsODE2OV9wY2lfdGJsW10gPSB7CisJeyBQQ0lfVkRFVklDRShSRUFMVEVL LAkweDI1MDIpLCBSVExfQ0ZHXzEgfSwKKwl7IFBDSV9WREVWSUNFKFJFQUxURUssCTB4MjYwMCks IFJUTF9DRkdfMSB9LAogCXsgUENJX0RFVklDRShQQ0lfVkVORE9SX0lEX1JFQUxURUssCTB4ODEy OSksIDAsIDAsIFJUTF9DRkdfMCB9LAogCXsgUENJX0RFVklDRShQQ0lfVkVORE9SX0lEX1JFQUxU RUssCTB4ODEzNiksIDAsIDAsIFJUTF9DRkdfMiB9LAogCXsgUENJX0RFVklDRShQQ0lfVkVORE9S X0lEX1JFQUxURUssCTB4ODE2MSksIDAsIDAsIFJUTF9DRkdfMSB9LAotLSAKMi4yMC4xCgoKRnJv bSBkOWE4YWQyYmZmNGJjYmZiZWE0N2ZiOWIzOWNlYjg2MjM5NGZjNTM2IE1vbiBTZXAgMTcgMDA6 MDA6MDAgMjAwMQpGcm9tOiBEYXZpZCBBaGVybiA8ZHNhaGVybkBnbWFpbC5jb20+CkRhdGU6IFNh dCwgNSBKYW4gMjAxOSAwNzozNTowNCAtMDgwMApTdWJqZWN0OiBbUEFUQ0ggMDgvMTRdIGlwdjY6 IFRha2UgcmN1X3JlYWRfbG9jayBpbiBfX2luZXQ2X2JpbmQgZm9yIG1hcHBlZAogYWRkcmVzc2Vz CgpbIFVwc3RyZWFtIGNvbW1pdCBkNGE3ZTliYjc0YjVhYWYwN2I4OWY2NTMxYzA4MGIxMTMwYmRm MDE5IF0KCkkgcmVhbGl6ZWQgdGhlIGxhc3QgcGF0Y2ggY2FsbHMgZGV2X2dldF9ieV9pbmRleF9y Y3UgaW4gYSBicmFuY2ggbm90CmhvbGRpbmcgdGhlIHJjdSBsb2NrLiBBZGQgdGhlIGNhbGxzIHRv IHJjdV9yZWFkX2xvY2sgYW5kIHJjdV9yZWFkX3VubG9jay4KCkZpeGVzOiBlYzkwYWQzMzQ5ODYg KCJpcHY2OiBDb25zaWRlciBza19ib3VuZF9kZXZfaWYgd2hlbiBiaW5kaW5nIGEgc29ja2V0IHRv IGEgdjQgbWFwcGVkIGFkZHJlc3MiKQpTaWduZWQtb2ZmLWJ5OiBEYXZpZCBBaGVybiA8ZHNhaGVy bkBnbWFpbC5jb20+ClNpZ25lZC1vZmYtYnk6IERhdmlkIFMuIE1pbGxlciA8ZGF2ZW1AZGF2ZW1s b2Z0Lm5ldD4KLS0tCiBuZXQvaXB2Ni9hZl9pbmV0Ni5jIHwgNSArKysrLQogMSBmaWxlIGNoYW5n ZWQsIDQgaW5zZXJ0aW9ucygrKSwgMSBkZWxldGlvbigtKQoKZGlmZiAtLWdpdCBhL25ldC9pcHY2 L2FmX2luZXQ2LmMgYi9uZXQvaXB2Ni9hZl9pbmV0Ni5jCmluZGV4IDYzZDE1NDU3ODk1NS4uNGRj OTM1ODM4MTg0IDEwMDY0NAotLS0gYS9uZXQvaXB2Ni9hZl9pbmV0Ni5jCisrKyBiL25ldC9pcHY2 L2FmX2luZXQ2LmMKQEAgLTMyMSwxNyArMzIxLDIwIEBAIHN0YXRpYyBpbnQgX19pbmV0Nl9iaW5k KHN0cnVjdCBzb2NrICpzaywgc3RydWN0IHNvY2thZGRyICp1YWRkciwgaW50IGFkZHJfbGVuLAog CQkJZ290byBvdXQ7CiAJCX0KIAorCQlyY3VfcmVhZF9sb2NrKCk7CiAJCWlmIChzay0+c2tfYm91 bmRfZGV2X2lmKSB7CiAJCQlkZXYgPSBkZXZfZ2V0X2J5X2luZGV4X3JjdShuZXQsIHNrLT5za19i b3VuZF9kZXZfaWYpOwogCQkJaWYgKCFkZXYpIHsKIAkJCQllcnIgPSAtRU5PREVWOwotCQkJCWdv dG8gb3V0OworCQkJCWdvdG8gb3V0X3VubG9jazsKIAkJCX0KIAkJfQogCiAJCS8qIFJlcHJvZHVj ZSBBRl9JTkVUIGNoZWNrcyB0byBtYWtlIHRoZSBiaW5kaW5ncyBjb25zaXN0ZW50ICovCiAJCXY0 YWRkciA9IGFkZHItPnNpbjZfYWRkci5zNl9hZGRyMzJbM107CiAJCWNoa19hZGRyX3JldCA9IGlu ZXRfYWRkcl90eXBlX2Rldl90YWJsZShuZXQsIGRldiwgdjRhZGRyKTsKKwkJcmN1X3JlYWRfdW5s b2NrKCk7CisKIAkJaWYgKCFpbmV0X2Nhbl9ub25sb2NhbF9iaW5kKG5ldCwgaW5ldCkgJiYKIAkJ ICAgIHY0YWRkciAhPSBodG9ubChJTkFERFJfQU5ZKSAmJgogCQkgICAgY2hrX2FkZHJfcmV0ICE9 IFJUTl9MT0NBTCAmJgotLSAKMi4yMC4xCgoKRnJvbSBjYTUyZDE3ZGE5Yjc5NzE2NDcxOWE2OGRm NjhmNjdlOGQ1ZWYyZjM5IE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBEYXZpZCBBaGVy biA8ZHNhaGVybkBnbWFpbC5jb20+CkRhdGU6IFdlZCwgMiBKYW4gMjAxOSAxODoyNjoxMyAtMDgw MApTdWJqZWN0OiBbUEFUQ0ggMDkvMTRdIGlwdjY6IEZpeCBkdW1wIG9mIHNwZWNpZmljIHRhYmxl IHdpdGggc3RyaWN0IGNoZWNraW5nCgpbIFVwc3RyZWFtIGNvbW1pdCA3MzE1NTg3OWIzYzFhYzNh Y2UzNTIwOGE1NGEzYTE2MGVjNTIwYmVmIF0KCkR1bXAgb2YgYSBzcGVjaWZpYyB0YWJsZSB3aXRo IHN0cmljdCBjaGVja2luZyBlbmFibGVkIGlzIGxvb3BpbmcuIFRoZQpwcm9ibGVtIGlzIHRoYXQg dGhlIGVuZCBvZiB0aGUgdGFibGUgZHVtcCBpcyBub3QgbWFya2VkIGluIHRoZSBjYi4gV2hlbgpk dW1waW5nIGEgc3BlY2lmaWMgdGFibGUsIGNiIGFyZ3MgMCBhbmQgMSBhcmUgbm90IHVzZWQgKHRo ZXkgYXJlIHRoZSBoYXNoCmluZGV4IGFuZCBlbnRyeSB3aXRoIGFuIGhhc2ggdGFibGUgaW5kZXgg d2hlbiBkdW1waW5nIGFsbCB0YWJsZXMpLiBSZS11c2UKYXJnc1swXSB0byBob2xkIGEgJ2RvbmUn IGZsYWcgZm9yIHRoZSBzcGVjaWZpYyB0YWJsZSBkdW1wLgoKRml4ZXM6IDEzZTM4OTAxZDQ2Y2Eg KCJuZXQvaXB2NjogUGx1bWIgc3VwcG9ydCBmb3IgZmlsdGVyaW5nIHJvdXRlIGR1bXBzIikKUmVw b3J0ZWQtYnk6IEpha3ViIEtpY2luc2tpIDxqYWt1Yi5raWNpbnNraUBuZXRyb25vbWUuY29tPgpT aWduZWQtb2ZmLWJ5OiBEYXZpZCBBaGVybiA8ZHNhaGVybkBnbWFpbC5jb20+ClNpZ25lZC1vZmYt Ynk6IERhdmlkIFMuIE1pbGxlciA8ZGF2ZW1AZGF2ZW1sb2Z0Lm5ldD4KLS0tCiBuZXQvaXB2Ni9p cDZfZmliLmMgfCA2ICsrKysrLQogMSBmaWxlIGNoYW5nZWQsIDUgaW5zZXJ0aW9ucygrKSwgMSBk ZWxldGlvbigtKQoKZGlmZiAtLWdpdCBhL25ldC9pcHY2L2lwNl9maWIuYyBiL25ldC9pcHY2L2lw Nl9maWIuYwppbmRleCBhZTM3ODYxMzJjMjMuLjY2MTNkOGRiYjBlNSAxMDA2NDQKLS0tIGEvbmV0 L2lwdjYvaXA2X2ZpYi5jCisrKyBiL25ldC9pcHY2L2lwNl9maWIuYwpAQCAtNjI3LDcgKzYyNywx MSBAQCBzdGF0aWMgaW50IGluZXQ2X2R1bXBfZmliKHN0cnVjdCBza19idWZmICpza2IsIHN0cnVj dCBuZXRsaW5rX2NhbGxiYWNrICpjYikKIAkJCXJldHVybiAtRU5PRU5UOwogCQl9CiAKLQkJcmVz ID0gZmliNl9kdW1wX3RhYmxlKHRiLCBza2IsIGNiKTsKKwkJaWYgKCFjYi0+YXJnc1swXSkgewor CQkJcmVzID0gZmliNl9kdW1wX3RhYmxlKHRiLCBza2IsIGNiKTsKKwkJCWlmICghcmVzKQorCQkJ CWNiLT5hcmdzWzBdID0gMTsKKwkJfQogCQlnb3RvIG91dDsKIAl9CiAKLS0gCjIuMjAuMQoKCkZy b20gNzVhZmVhM2FlM2Q4ZWM1YjdjNjAyNmY0NGNkNzY4OTdkMWU1OTY5ZiBNb24gU2VwIDE3IDAw OjAwOjAwIDIwMDEKRnJvbTogQXJ0aHVyIEdhdXRpZXIgPGJhbG9vQGdhbmRpLm5ldD4KRGF0ZTog TW9uLCAzMSBEZWMgMjAxOCAwMjoxMDo1OCArMDAwMApTdWJqZWN0OiBbUEFUQ0ggMTAvMTRdIG5l dGxpbms6IGZpeHVwIHJlZ3Jlc3Npb24gaW4gUlRNX0dFVEFERFIKClsgVXBzdHJlYW0gY29tbWl0 IDdjMWU4YTM4MTdjNTVkNzNiMjdjYzI5Yjg0MDc1OTk5Yzg4OTQxNzkgXQoKVGhpcyBjb21taXQg Zml4ZXMgYSByZWdyZXNzaW9uIGluIEFGX0lORVQvUlRNX0dFVEFERFIgYW5kCkFGX0lORVQ2L1JU TV9HRVRBRERSLgoKQmVmb3JlIHRoaXMgY29tbWl0LCB0aGUga2VybmVsIHdvdWxkIHN0b3AgZHVt cGluZyBhZGRyZXNzZXMgb25jZSB0aGUgZmlyc3QKc2tiIHdhcyBmdWxsIGFuZCBlbmQgdGhlIHN0 cmVhbSB3aXRoIE5MTVNHX0RPTkUoLUVNU0dTSVpFKS4gVGhlIGVycm9yCnNob3VsZG4ndCBiZSBz ZW50IGJhY2sgdG8gbmV0bGlua19kdW1wIHNvIHRoZSBjYWxsYmFjayBpcyBrZXB0IGFsaXZlLiBU aGUKdXNlcnNwYWNlIGlzIGV4cGVjdGVkIHRvIGNhbGwgYmFjayB3aXRoIGEgbmV3IGVtcHR5IHNr Yi4KCkNoYW5nZXMgZnJvbSBWMToKIC0gVGhlIGVycm9yIGlzIG5vdCBoYW5kbGVkIGluIG5ldGxp bmtfZHVtcCBhbnltb3JlIGJ1dCByYXRoZXIgaW4KICAgaW5ldF9kdW1wX2lmYWRkciBhbmQgaW5l dDZfZHVtcF9hZGRyIGRpcmVjdGx5IGFzIHN1Z2dlc3RlZCBieQogICBEYXZpZCBBaGVybi4KCkZp eGVzOiBkN2UzODYxMWI4MWUgKCJuZXQvaXB2NDogUHV0IHRhcmdldCBuZXQgd2hlbiBhZGRyZXNz IGR1bXAgZmFpbHMgZHVlIHRvIGJhZCBhdHRyaWJ1dGVzIikKRml4ZXM6IDI0MmFmYWE2OTY4YyAo Im5ldC9pcHY2OiBQdXQgdGFyZ2V0IG5ldCB3aGVuIGFkZHJlc3MgZHVtcCBmYWlscyBkdWUgdG8g YmFkIGF0dHJpYnV0ZXMiKQoKQ2M6IERhdmlkIEFoZXJuIDxkc2FoZXJuQGdtYWlsLmNvbT4KQ2M6 ICJEYXZpZCBTIC4gTWlsbGVyIiA8ZGF2ZW1AZGF2ZW1sb2Z0Lm5ldD4KQ2M6IG5ldGRldkB2Z2Vy Lmtlcm5lbC5vcmcKU2lnbmVkLW9mZi1ieTogQXJ0aHVyIEdhdXRpZXIgPGJhbG9vQGdhbmRpLm5l dD4KUmV2aWV3ZWQtYnk6IERhdmlkIEFoZXJuIDxkc2FoZXJuQGdtYWlsLmNvbT4KU2lnbmVkLW9m Zi1ieTogRGF2aWQgUy4gTWlsbGVyIDxkYXZlbUBkYXZlbWxvZnQubmV0PgotLS0KIG5ldC9pcHY0 L2RldmluZXQuYyAgfCAyICstCiBuZXQvaXB2Ni9hZGRyY29uZi5jIHwgMiArLQogMiBmaWxlcyBj aGFuZ2VkLCAyIGluc2VydGlvbnMoKyksIDIgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvbmV0 L2lwdjQvZGV2aW5ldC5jIGIvbmV0L2lwdjQvZGV2aW5ldC5jCmluZGV4IDYwOGE2ZjQyMjNmYi4u ZmVjZDBlNzY3MmI1IDEwMDY0NAotLS0gYS9uZXQvaXB2NC9kZXZpbmV0LmMKKysrIGIvbmV0L2lw djQvZGV2aW5ldC5jCkBAIC0xODI2LDcgKzE4MjYsNyBAQCBzdGF0aWMgaW50IGluZXRfZHVtcF9p ZmFkZHIoc3RydWN0IHNrX2J1ZmYgKnNrYiwgc3RydWN0IG5ldGxpbmtfY2FsbGJhY2sgKmNiKQog CWlmIChmaWxsYXJncy5uZXRuc2lkID49IDApCiAJCXB1dF9uZXQodGd0X25ldCk7CiAKLQlyZXR1 cm4gZXJyIDwgMCA/IGVyciA6IHNrYi0+bGVuOworCXJldHVybiBza2ItPmxlbiA/IDogZXJyOwog fQogCiBzdGF0aWMgdm9pZCBydG1zZ19pZmEoaW50IGV2ZW50LCBzdHJ1Y3QgaW5faWZhZGRyICpp ZmEsIHN0cnVjdCBubG1zZ2hkciAqbmxoLApkaWZmIC0tZ2l0IGEvbmV0L2lwdjYvYWRkcmNvbmYu YyBiL25ldC9pcHY2L2FkZHJjb25mLmMKaW5kZXggMDQ1NTk3YjlhN2MwLi5lM2NiNTNiMGVmNjcg MTAwNjQ0Ci0tLSBhL25ldC9pcHY2L2FkZHJjb25mLmMKKysrIGIvbmV0L2lwdjYvYWRkcmNvbmYu YwpAQCAtNTE1NCw3ICs1MTU0LDcgQEAgc3RhdGljIGludCBpbmV0Nl9kdW1wX2FkZHIoc3RydWN0 IHNrX2J1ZmYgKnNrYiwgc3RydWN0IG5ldGxpbmtfY2FsbGJhY2sgKmNiLAogCWlmIChmaWxsYXJn cy5uZXRuc2lkID49IDApCiAJCXB1dF9uZXQodGd0X25ldCk7CiAKLQlyZXR1cm4gZXJyIDwgMCA/ IGVyciA6IHNrYi0+bGVuOworCXJldHVybiBza2ItPmxlbiA/IDogZXJyOwogfQogCiBzdGF0aWMg aW50IGluZXQ2X2R1bXBfaWZhZGRyKHN0cnVjdCBza19idWZmICpza2IsIHN0cnVjdCBuZXRsaW5r X2NhbGxiYWNrICpjYikKLS0gCjIuMjAuMQoKCkZyb20gMmI5Nzk1NGRiZTYwZDAzOGJmMTBiM2Y3 OTk2Y2Y3MWYwNzJmMjg5MCBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJvbTogQ2hyaXN0b3Bo ZSBKQUlMTEVUIDxjaHJpc3RvcGhlLmphaWxsZXRAd2FuYWRvby5mcj4KRGF0ZTogU2F0LCAyOSBE ZWMgMjAxOCAxNzo0MjoyMiArMDEwMApTdWJqZWN0OiBbUEFUQ0ggMTEvMTRdIG9jdGVvbnR4Mi1h ZjogRml4IGEgcmVzb3VyY2UgbGVhayBpbiBhbiBlcnJvciBoYW5kbGluZwogcGF0aCBpbiAnY2d4 X3Byb2JlKCknCgpbIFVwc3RyZWFtIGNvbW1pdCAxNDkyNjIzZTgzN2ZlN2NhNjI5NmY3ZjU0MTEz MjgzMDdlMjQyNzcxIF0KCklmIGFuIGVycm9yIG9jY3VycyBhZnRlciB0aGUgY2FsbCB0byAncGNp X2FsbG9jX2lycV92ZWN0b3JzKCknLCB3ZSBtdXN0CmNhbGwgJ3BjaV9mcmVlX2lycV92ZWN0b3Jz KCknIGluIG9yZGVyIHRvIGF2b2lkIGEJcmVzb3VyY2UgbGVhay4KClRoZSBzYW1lIHNlcXVlbmNl IGlzIGFscmVhZHkgaW4gcGxhY2UgaW4gdGhlIGNvcnJlc3BvbmRpbmcgJ2NneF9yZW1vdmUoKScK ZnVuY3Rpb24uCgpGaXhlczogMTQ2M2YzODJmNThkICgib2N0ZW9udHgyLWFmOiBBZGQgc3VwcG9y dCBmb3IgQ0dYIGxpbmsgbWFuYWdlbWVudCIpClNpZ25lZC1vZmYtYnk6IENocmlzdG9waGUgSkFJ TExFVCA8Y2hyaXN0b3BoZS5qYWlsbGV0QHdhbmFkb28uZnI+ClNpZ25lZC1vZmYtYnk6IERhdmlk IFMuIE1pbGxlciA8ZGF2ZW1AZGF2ZW1sb2Z0Lm5ldD4KLS0tCiBkcml2ZXJzL25ldC9ldGhlcm5l dC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9jZ3guYyB8IDQgKysrLQogMSBmaWxlIGNoYW5nZWQsIDMg aW5zZXJ0aW9ucygrKSwgMSBkZWxldGlvbigtKQoKZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L2V0 aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmL2NneC5jIGIvZHJpdmVycy9uZXQvZXRoZXJuZXQv bWFydmVsbC9vY3Rlb250eDIvYWYvY2d4LmMKaW5kZXggMTJkYjI1NmM4YzlmLi5lZTY3ZDFjNDI4 MWQgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2Fm L2NneC5jCisrKyBiL2RyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmL2Nn eC5jCkBAIC02NjgsNyArNjY4LDcgQEAgc3RhdGljIGludCBjZ3hfcHJvYmUoc3RydWN0IHBjaV9k ZXYgKnBkZXYsIGNvbnN0IHN0cnVjdCBwY2lfZGV2aWNlX2lkICppZCkKIAlpZiAoIWNneC0+cmVn X2Jhc2UpIHsKIAkJZGV2X2VycihkZXYsICJDR1g6IENhbm5vdCBtYXAgQ1NSIG1lbW9yeSBzcGFj ZSwgYWJvcnRpbmdcbiIpOwogCQllcnIgPSAtRU5PTUVNOwotCQlnb3RvIGVycl9yZWxlYXNlX3Jl Z2lvbnM7CisJCWdvdG8gZXJyX2ZyZWVfaXJxX3ZlY3RvcnM7CiAJfQogCiAJbnZlYyA9IENHWF9O VkVDOwpAQCAtNjkzLDYgKzY5Myw4IEBAIHN0YXRpYyBpbnQgY2d4X3Byb2JlKHN0cnVjdCBwY2lf ZGV2ICpwZGV2LCBjb25zdCBzdHJ1Y3QgcGNpX2RldmljZV9pZCAqaWQpCiBlcnJfcmVsZWFzZV9s bWFjOgogCWNneF9sbWFjX2V4aXQoY2d4KTsKIAlsaXN0X2RlbCgmY2d4LT5jZ3hfbGlzdCk7Citl cnJfZnJlZV9pcnFfdmVjdG9yczoKKwlwY2lfZnJlZV9pcnFfdmVjdG9ycyhwZGV2KTsKIGVycl9y ZWxlYXNlX3JlZ2lvbnM6CiAJcGNpX3JlbGVhc2VfcmVnaW9ucyhwZGV2KTsKIGVycl9kaXNhYmxl X2RldmljZToKLS0gCjIuMjAuMQoKCkZyb20gZDE1ODc5MjE1MzFmZGZjODJmMjIzY2E5ZmY2M2Ey N2M4N2U3MzRkZSBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJvbTogWWktSHVuZyBXZWkgPHlp aHVuZy53ZWlAZ21haWwuY29tPgpEYXRlOiBUaHUsIDMgSmFuIDIwMTkgMDk6NTE6NTcgLTA4MDAK U3ViamVjdDogW1BBVENIIDEyLzE0XSBvcGVudnN3aXRjaDogRml4IElQdjYgbGF0ZXIgZnJhZ3Mg cGFyc2luZwoKWyBVcHN0cmVhbSBjb21taXQgNDFlNGUyY2Q3NTM0NjY2N2IwYzUzMWMwN2RhYjA1 Y2NlNWIwNmQxNSBdCgpUaGUgcHJldmlvdXMgY29tbWl0IGZhNjQyZjA4ODM5YgooIm9wZW52c3dp dGNoOiBEZXJpdmUgSVAgcHJvdG9jb2wgbnVtYmVyIGZvciBJUHY2IGxhdGVyIGZyYWdzIikKaW50 cm9kdWNlcyBJUCBwcm90b2NvbCBudW1iZXIgcGFyc2luZyBmb3IgSVB2NiBsYXRlciBmcmFncyB0 aGF0IGNhbiBtZXNzCnVwIHRoZSBuZXR3b3JrIGhlYWRlciBsZW5ndGggY2FsY3VsYXRpb24gbG9n aWMsIGkuZS4gbmhfbGVuIDwgMC4KSG93ZXZlciwgdGhlIG5ldHdvcmsgaGVhZGVyIGxlbmd0aCBj YWxjdWxhdGlvbiBpcyBtYWlubHkgZm9yIGRlcml2aW5nCnRoZSB0cmFuc3BvcnQgbGF5ZXIgaGVh ZGVyIGluIHRoZSBrZXkgZXh0cmFjdGlvbiBwcm9jZXNzIHdoaWNoIHRoZSBsYXRlcgpmcmFnbWVu dCBkb2VzIG5vdCBhcHBseS4KClRoZXJlZm9yZSwgdGhpcyBjb21taXQgc2tpcHMgdGhlIG5ldHdv cmsgaGVhZGVyIGxlbmd0aCBjYWxjdWxhdGlvbiB0bwpmaXggdGhlIGlzc3VlLgoKUmVwb3J0ZWQt Ynk6IENocmlzIE1pIDxjaHJpc21AbWVsbGFub3guY29tPgpSZXBvcnRlZC1ieTogR3JlZyBSb3Nl IDxndnJvc2U4MTkyQGdtYWlsLmNvbT4KRml4ZXM6IGZhNjQyZjA4ODM5YiAoIm9wZW52c3dpdGNo OiBEZXJpdmUgSVAgcHJvdG9jb2wgbnVtYmVyIGZvciBJUHY2IGxhdGVyIGZyYWdzIikKU2lnbmVk LW9mZi1ieTogWWktSHVuZyBXZWkgPHlpaHVuZy53ZWlAZ21haWwuY29tPgpTaWduZWQtb2ZmLWJ5 OiBEYXZpZCBTLiBNaWxsZXIgPGRhdmVtQGRhdmVtbG9mdC5uZXQ+Ci0tLQogbmV0L29wZW52c3dp dGNoL2Zsb3cuYyB8IDggKysrKystLS0KIDEgZmlsZSBjaGFuZ2VkLCA1IGluc2VydGlvbnMoKyks IDMgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvbmV0L29wZW52c3dpdGNoL2Zsb3cuYyBiL25l dC9vcGVudnN3aXRjaC9mbG93LmMKaW5kZXggMzU5NjZkYTg0NzY5Li5mOTIwYTM0N2VlMWMgMTAw NjQ0Ci0tLSBhL25ldC9vcGVudnN3aXRjaC9mbG93LmMKKysrIGIvbmV0L29wZW52c3dpdGNoL2Zs b3cuYwpAQCAtMjc2LDEwICsyNzYsMTIgQEAgc3RhdGljIGludCBwYXJzZV9pcHY2aGRyKHN0cnVj dCBza19idWZmICpza2IsIHN0cnVjdCBzd19mbG93X2tleSAqa2V5KQogCiAJbmV4dGhkciA9IGlw djZfZmluZF9oZHIoc2tiLCAmcGF5bG9hZF9vZnMsIC0xLCAmZnJhZ19vZmYsICZmbGFncyk7CiAJ aWYgKGZsYWdzICYgSVA2X0ZIX0ZfRlJBRykgewotCQlpZiAoZnJhZ19vZmYpCisJCWlmIChmcmFn X29mZikgewogCQkJa2V5LT5pcC5mcmFnID0gT1ZTX0ZSQUdfVFlQRV9MQVRFUjsKLQkJZWxzZQot CQkJa2V5LT5pcC5mcmFnID0gT1ZTX0ZSQUdfVFlQRV9GSVJTVDsKKwkJCWtleS0+aXAucHJvdG8g PSBuZXh0aGRyOworCQkJcmV0dXJuIDA7CisJCX0KKwkJa2V5LT5pcC5mcmFnID0gT1ZTX0ZSQUdf VFlQRV9GSVJTVDsKIAl9IGVsc2UgewogCQlrZXktPmlwLmZyYWcgPSBPVlNfRlJBR19UWVBFX05P TkU7CiAJfQotLSAKMi4yMC4xCgoKRnJvbSBhN2YxNTg3ZDk2NjJiYzRhMjI5MDU2MTM1NmVlZWU4 OTFiOTlmMzBjIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBFcmljIER1bWF6ZXQgPGVk dW1hemV0QGdvb2dsZS5jb20+CkRhdGU6IEZyaSwgNCBKYW4gMjAxOSAxMTowMDowMCAtMDgwMApT dWJqZWN0OiBbUEFUQ0ggMTMvMTRdIGlwdjY6IG1ha2UgaWNtcDZfc2VuZCgpIHJvYnVzdCBhZ2Fp bnN0IG51bGwgc2tiLT5kZXYKClsgVXBzdHJlYW0gY29tbWl0IDhkOTMzNjcwNDUyMTA3ZTQxMTY1 YmVhNzBhMzBkZmZiZDI4MWJlZjEgXQoKc3l6Ym90IHdhcyBhYmxlIHRvIGNyYXNoIG9uZSBob3N0 IHdpdGggdGhlIGZvbGxvd2luZyBzdGFjayB0cmFjZSA6CgprYXNhbjogR1BGIGNvdWxkIGJlIGNh dXNlZCBieSBOVUxMLXB0ciBkZXJlZiBvciB1c2VyIG1lbW9yeSBhY2Nlc3MKZ2VuZXJhbCBwcm90 ZWN0aW9uIGZhdWx0OiAwMDAwIFsjMV0gUFJFRU1QVCBTTVAgS0FTQU4KQ1BVOiAwIFBJRDogODYy NSBDb21tOiBzeXotZXhlY3V0b3I0IE5vdCB0YWludGVkIDQuMjAuMCsgIzgKUklQOiAwMDEwOmRl dl9uZXQgaW5jbHVkZS9saW51eC9uZXRkZXZpY2UuaDoyMTY5IFtpbmxpbmVdClJJUDogMDAxMDpp Y21wNl9zZW5kKzB4MTE2LzB4MmQzMCBuZXQvaXB2Ni9pY21wLmM6NDI2CiBpY21wdjZfc2VuZAog c21hY2tfc29ja2V0X3NvY2tfcmN2X3NrYgogc2VjdXJpdHlfc29ja19yY3Zfc2tiCiBza19maWx0 ZXJfdHJpbV9jYXAKIF9fc2tfcmVjZWl2ZV9za2IKIGRjY3BfdjZfZG9fcmN2CiByZWxlYXNlX3Nv Y2sKClRoaXMgaXMgYmVjYXVzZSBhIFJYIHBhY2tldCBmb3VuZCBzb2NrZXQgb3duZWQgYnkgdXNl ciBhbmQKd2FzIHN0b3JlZCBpbnRvIHNvY2tldCBiYWNrbG9nLiBCZWZvcmUgbGVhdmluZyBSQ1Ug cHJvdGVjdGVkIHNlY3Rpb24sCnNrYi0+ZGV2IHdhcyBjbGVhcmVkIGluIF9fc2tfcmVjZWl2ZV9z a2IoKS4gV2hlbiBzb2NrZXQgYmFja2xvZwp3YXMgZmluYWxseSBoYW5kbGVkIGF0IHJlbGVhc2Vf c29jaygpIHRpbWUsIHNrYiB3YXMgZmVkIHRvCnNtYWNrX3NvY2tldF9zb2NrX3Jjdl9za2IoKSB0 aGVuIGljbXA2X3NlbmQoKQoKV2UgY291bGQgZml4IHRoZSBidWcgaW4gc21hY2tfc29ja2V0X3Nv Y2tfcmN2X3NrYigpLCBvciBzaW1wbHkKbWFrZSBpY21wNl9zZW5kKCkgbW9yZSByb2J1c3QgYWdh aW5zdCBzdWNoIHBvc3NpYmlsaXR5LgoKSW4gdGhlIGZ1dHVyZSB3ZSBtaWdodCBwcm92aWRlIHRv IGljbXA2X3NlbmQoKSB0aGUgbmV0IHBvaW50ZXIKaW5zdGVhZCBvZiBpbmZlcmluZyBpdC4KCkZp eGVzOiBkNjZhOGFjYmRhOTIgKCJTbWFjazogSW5mb3JtIHBlZXIgdGhhdCBJUHY2IHRyYWZmaWMg aGFzIGJlZW4gYmxvY2tlZCIpClNpZ25lZC1vZmYtYnk6IEVyaWMgRHVtYXpldCA8ZWR1bWF6ZXRA Z29vZ2xlLmNvbT4KQ2M6IFBpb3RyIFNhd2lja2kgPHAuc2F3aWNraTJAcGFydG5lci5zYW1zdW5n LmNvbT4KQ2M6IENhc2V5IFNjaGF1ZmxlciA8Y2FzZXlAc2NoYXVmbGVyLWNhLmNvbT4KUmVwb3J0 ZWQtYnk6IHN5emJvdCA8c3l6a2FsbGVyQGdvb2dsZWdyb3Vwcy5jb20+CkFja2VkLWJ5OiBDYXNl eSBTY2hhdWZsZXIgPGNhc2V5QHNjaGF1Zmxlci1jYS5jb20+ClNpZ25lZC1vZmYtYnk6IERhdmlk IFMuIE1pbGxlciA8ZGF2ZW1AZGF2ZW1sb2Z0Lm5ldD4KLS0tCiBuZXQvaXB2Ni9pY21wLmMgfCA4 ICsrKysrKy0tCiAxIGZpbGUgY2hhbmdlZCwgNiBpbnNlcnRpb25zKCspLCAyIGRlbGV0aW9ucygt KQoKZGlmZiAtLWdpdCBhL25ldC9pcHY2L2ljbXAuYyBiL25ldC9pcHY2L2ljbXAuYwppbmRleCBj OWM1M2FkZTU1YzMuLjZkMTRjYmU0NDNmOCAxMDA2NDQKLS0tIGEvbmV0L2lwdjYvaWNtcC5jCisr KyBiL25ldC9pcHY2L2ljbXAuYwpAQCAtNDIxLDEwICs0MjEsMTAgQEAgc3RhdGljIGludCBpY21w Nl9paWYoY29uc3Qgc3RydWN0IHNrX2J1ZmYgKnNrYikKIHN0YXRpYyB2b2lkIGljbXA2X3NlbmQo c3RydWN0IHNrX2J1ZmYgKnNrYiwgdTggdHlwZSwgdTggY29kZSwgX191MzIgaW5mbywKIAkJICAg ICAgIGNvbnN0IHN0cnVjdCBpbjZfYWRkciAqZm9yY2Vfc2FkZHIpCiB7Ci0Jc3RydWN0IG5ldCAq bmV0ID0gZGV2X25ldChza2ItPmRldik7CiAJc3RydWN0IGluZXQ2X2RldiAqaWRldiA9IE5VTEw7 CiAJc3RydWN0IGlwdjZoZHIgKmhkciA9IGlwdjZfaGRyKHNrYik7CiAJc3RydWN0IHNvY2sgKnNr OworCXN0cnVjdCBuZXQgKm5ldDsKIAlzdHJ1Y3QgaXB2Nl9waW5mbyAqbnA7CiAJY29uc3Qgc3Ry dWN0IGluNl9hZGRyICpzYWRkciA9IE5VTEw7CiAJc3RydWN0IGRzdF9lbnRyeSAqZHN0OwpAQCAt NDM1LDEyICs0MzUsMTYgQEAgc3RhdGljIHZvaWQgaWNtcDZfc2VuZChzdHJ1Y3Qgc2tfYnVmZiAq c2tiLCB1OCB0eXBlLCB1OCBjb2RlLCBfX3UzMiBpbmZvLAogCWludCBpaWYgPSAwOwogCWludCBh ZGRyX3R5cGUgPSAwOwogCWludCBsZW47Ci0JdTMyIG1hcmsgPSBJUDZfUkVQTFlfTUFSSyhuZXQs IHNrYi0+bWFyayk7CisJdTMyIG1hcms7CiAKIAlpZiAoKHU4ICopaGRyIDwgc2tiLT5oZWFkIHx8 CiAJICAgIChza2JfbmV0d29ya19oZWFkZXIoc2tiKSArIHNpemVvZigqaGRyKSkgPiBza2JfdGFp bF9wb2ludGVyKHNrYikpCiAJCXJldHVybjsKIAorCWlmICghc2tiLT5kZXYpCisJCXJldHVybjsK KwluZXQgPSBkZXZfbmV0KHNrYi0+ZGV2KTsKKwltYXJrID0gSVA2X1JFUExZX01BUksobmV0LCBz a2ItPm1hcmspOwogCS8qCiAJICoJTWFrZSBzdXJlIHdlIHJlc3BlY3QgdGhlIHJ1bGVzCiAJICoJ aS5lLiBSRkMgMTg4NSAyLjQoZSkKLS0gCjIuMjAuMQoKCkZyb20gMTY0YzlkN2I1MzRjNWEwYzQx ZjBkMjZmMTFhNzBhN2ZkYWY0MWFjYyBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJvbTogUGFv bG8gQWJlbmkgPHBhYmVuaUByZWRoYXQuY29tPgpEYXRlOiBUdWUsIDggSmFuIDIwMTkgMTg6NDU6 MDUgKzAxMDAKU3ViamVjdDogW1BBVENIIDE0LzE0XSBuZXQ6IGNsZWFyIHNrYi0+dHN0YW1wIGlu IGJyaWRnZSBmb3J3YXJkaW5nIHBhdGgKClsgVXBzdHJlYW0gY29tbWl0IDQxZDFjODgzOWU1Zjhj Yjc4MWNjNjM1ZjEyNzkxZGVjZWU4MjcxYjcgXQoKTWF0dGVvIHJlcG9ydGVkIGZvcndhcmRpbmcg aXNzdWVzIGluc2lkZSB0aGUgbGludXggYnJpZGdlLAppZiB0aGUgZW5zbGF2ZWQgaW50ZXJmYWNl cyB1c2UgdGhlIGZxIHFkaXNjLgoKU2ltaWxhciB0byBjb21taXQgODIwM2UyZDg0NGQzICgibmV0 OiBjbGVhciBza2ItPnRzdGFtcCBpbgpmb3J3YXJkaW5nIHBhdGhzIiksIHdlIG5lZWQgdG8gY2xl YXIgdGhlIHRzdGFtcCBmaWVsZCBpbgp0aGUgYnJpZGdlIGZvcndhcmRpbmcgcGF0aC4KCkZpeGVz OiA4MGIxNGRlZTJiZWEgKCJuZXQ6IEFkZCBhIG5ldyBzb2NrZXQgb3B0aW9uIGZvciBhIGZ1dHVy ZSB0cmFuc21pdCB0aW1lLiIpCkZpeGVzOiBmYjQyMGQ1ZDkxYzEgKCJ0Y3AvZnE6IG1vdmUgYmFj ayB0byBDTE9DS19NT05PVE9OSUMiKQpSZXBvcnRlZC1hbmQtdGVzdGVkLWJ5OiBNYXR0ZW8gQ3Jv Y2UgPG1jcm9jZUByZWRoYXQuY29tPgpTaWduZWQtb2ZmLWJ5OiBQYW9sbyBBYmVuaSA8cGFiZW5p QHJlZGhhdC5jb20+CkFja2VkLWJ5OiBOaWtvbGF5IEFsZWtzYW5kcm92IDxuaWtvbGF5QGN1bXVs dXNuZXR3b3Jrcy5jb20+CkFja2VkLWJ5OiBSb29wYSBQcmFiaHUgPHJvb3BhQGN1bXVsdXNuZXR3 b3Jrcy5jb20+ClJldmlld2VkLWJ5OiBFcmljIER1bWF6ZXQgPGVkdW1hemV0QGdvb2dsZS5jb20+ ClNpZ25lZC1vZmYtYnk6IERhdmlkIFMuIE1pbGxlciA8ZGF2ZW1AZGF2ZW1sb2Z0Lm5ldD4KLS0t CiBuZXQvYnJpZGdlL2JyX2ZvcndhcmQuYyB8IDEgKwogMSBmaWxlIGNoYW5nZWQsIDEgaW5zZXJ0 aW9uKCspCgpkaWZmIC0tZ2l0IGEvbmV0L2JyaWRnZS9icl9mb3J3YXJkLmMgYi9uZXQvYnJpZGdl L2JyX2ZvcndhcmQuYwppbmRleCA1MzcyZTIwNDJhZGYuLjJjYjhkYTQ2NWI5OCAxMDA2NDQKLS0t IGEvbmV0L2JyaWRnZS9icl9mb3J3YXJkLmMKKysrIGIvbmV0L2JyaWRnZS9icl9mb3J3YXJkLmMK QEAgLTY1LDYgKzY1LDcgQEAgRVhQT1JUX1NZTUJPTF9HUEwoYnJfZGV2X3F1ZXVlX3B1c2hfeG1p dCk7CiAKIGludCBicl9mb3J3YXJkX2ZpbmlzaChzdHJ1Y3QgbmV0ICpuZXQsIHN0cnVjdCBzb2Nr ICpzaywgc3RydWN0IHNrX2J1ZmYgKnNrYikKIHsKKwlza2ItPnRzdGFtcCA9IDA7CiAJcmV0dXJu IE5GX0hPT0soTkZQUk9UT19CUklER0UsIE5GX0JSX1BPU1RfUk9VVElORywKIAkJICAgICAgIG5l dCwgc2ssIHNrYiwgTlVMTCwgc2tiLT5kZXYsCiAJCSAgICAgICBicl9kZXZfcXVldWVfcHVzaF94 bWl0KTsKLS0gCjIuMjAuMQoK ----Next_Part(Mon_Jan_21_15_28_01_2019_958)----