From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from shards.monkeyblade.net ([184.105.139.130]:57890 "EHLO shards.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1752134AbeEOUuk (ORCPT ); Tue, 15 May 2018 16:50:40 -0400 Received: from localhost (67.110.78.66.ptr.us.xo.net [67.110.78.66]) (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 964B613FA484E for ; Tue, 15 May 2018 13:50:37 -0700 (PDT) Date: Tue, 15 May 2018 16:50:36 -0400 (EDT) Message-Id: <20180515.165036.2011736837582003456.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_15_16_50_36_2018_681)--" Content-Transfer-Encoding: 7bit Sender: stable-owner@vger.kernel.org List-ID: ----Next_Part(Tue_May_15_16_50_36_2018_681)-- Content-Type: Text/Plain; charset=us-ascii Content-Transfer-Encoding: 7bit Please queue up the following networking bug fixes for v4.14 and v4.16 -stable, respectively. Thanks! ----Next_Part(Tue_May_15_16_50_36_2018_681)-- Content-Type: Application/Octet-Stream Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="net_414.mbox" RnJvbSBlYjUyYzkwZGNiODBlZmI2NzQ4OGY5MGUzMTU1ZmY4MDY3NzU0NDcwIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBJbmdvIE1vbG5hciA8bWluZ29AZWx0ZS5odT4KRGF0ZTogV2Vk LCAyIE1heSAyMDE4IDEzOjMwOjU3ICswMjAwClN1YmplY3Q6IFtQQVRDSCAwMS80MV0gODEzOXRv bzogVXNlIGRpc2FibGVfaXJxX25vc3luYygpIGluCiBydGw4MTM5X3BvbGxfY29udHJvbGxlcigp CgpbIFVwc3RyZWFtIGNvbW1pdCBhZjNlMGZjZjc4ODc5ZjcxOGM1ZjczZGYwODE0OTUxYmQ3MDU3 ZDM0IF0KClVzZSBkaXNhYmxlX2lycV9ub3N5bmMoKSBpbnN0ZWFkIG9mIGRpc2FibGVfaXJxKCkg YXMgdGhpcyBtaWdodCBiZQpjYWxsZWQgaW4gYXRvbWljIGNvbnRleHQgd2l0aCBuZXRwb2xsLgoK U2lnbmVkLW9mZi1ieTogSW5nbyBNb2xuYXIgPG1pbmdvQGVsdGUuaHU+ClNpZ25lZC1vZmYtYnk6 IFRob21hcyBHbGVpeG5lciA8dGdseEBsaW51dHJvbml4LmRlPgpTaWduZWQtb2ZmLWJ5OiBTZWJh c3RpYW4gQW5kcnplaiBTaWV3aW9yIDxiaWdlYXN5QGxpbnV0cm9uaXguZGU+ClNpZ25lZC1vZmYt Ynk6IERhdmlkIFMuIE1pbGxlciA8ZGF2ZW1AZGF2ZW1sb2Z0Lm5ldD4KLS0tCiBkcml2ZXJzL25l dC9ldGhlcm5ldC9yZWFsdGVrLzgxMzl0b28uYyB8IDIgKy0KIDEgZmlsZSBjaGFuZ2VkLCAxIGlu c2VydGlvbigrKSwgMSBkZWxldGlvbigtKQoKZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L2V0aGVy bmV0L3JlYWx0ZWsvODEzOXRvby5jIGIvZHJpdmVycy9uZXQvZXRoZXJuZXQvcmVhbHRlay84MTM5 dG9vLmMKaW5kZXggZDI0YjQ3YjhlMGIyLi5kMTE4ZGE1YTEwYTIgMTAwNjQ0Ci0tLSBhL2RyaXZl cnMvbmV0L2V0aGVybmV0L3JlYWx0ZWsvODEzOXRvby5jCisrKyBiL2RyaXZlcnMvbmV0L2V0aGVy bmV0L3JlYWx0ZWsvODEzOXRvby5jCkBAIC0yMjI0LDcgKzIyMjQsNyBAQCBzdGF0aWMgdm9pZCBy dGw4MTM5X3BvbGxfY29udHJvbGxlcihzdHJ1Y3QgbmV0X2RldmljZSAqZGV2KQogCXN0cnVjdCBy dGw4MTM5X3ByaXZhdGUgKnRwID0gbmV0ZGV2X3ByaXYoZGV2KTsKIAljb25zdCBpbnQgaXJxID0g dHAtPnBjaV9kZXYtPmlycTsKIAotCWRpc2FibGVfaXJxKGlycSk7CisJZGlzYWJsZV9pcnFfbm9z eW5jKGlycSk7CiAJcnRsODEzOV9pbnRlcnJ1cHQoaXJxLCBkZXYpOwogCWVuYWJsZV9pcnEoaXJx KTsKIH0KLS0gCjIuMTQuMwoKCkZyb20gZTNlNmYxYWM1OThhNGVkYzFiMjVhMTdlMmM4Zjg1OThj YTA4Zjc3NiBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJvbTogIkd1c3Rhdm8gQS4gUi4gU2ls dmEiIDxndXN0YXZvQGVtYmVkZGVkb3IuY29tPgpEYXRlOiBUaHUsIDMgTWF5IDIwMTggMTM6MTc6 MTIgLTA1MDAKU3ViamVjdDogW1BBVENIIDAyLzQxXSBhdG06IHphdG06IEZpeCBwb3RlbnRpYWwg U3BlY3RyZSB2MQoKWyBVcHN0cmVhbSBjb21taXQgMmJlMTQ3Zjc0NTlkYjViYmYyOTJlMGE2ZjEz NTAzN2I1NWUyMGIzOSBdCgpwb29sIGNhbiBiZSBpbmRpcmVjdGx5IGNvbnRyb2xsZWQgYnkgdXNl ci1zcGFjZSwgaGVuY2UgbGVhZGluZyB0bwphIHBvdGVudGlhbCBleHBsb2l0YXRpb24gb2YgdGhl IFNwZWN0cmUgdmFyaWFudCAxIHZ1bG5lcmFiaWxpdHkuCgpUaGlzIGlzc3VlIHdhcyBkZXRlY3Rl ZCB3aXRoIHRoZSBoZWxwIG9mIFNtYXRjaDoKCmRyaXZlcnMvYXRtL3phdG0uYzoxNDYyIHphdG1f aW9jdGwoKSB3YXJuOiBwb3RlbnRpYWwgc3BlY3RyZSBpc3N1ZQonemF0bV9kZXYtPnBvb2xfaW5m bycgKGxvY2FsIGNhcCkKCkZpeCB0aGlzIGJ5IHNhbml0aXppbmcgcG9vbCBiZWZvcmUgdXNpbmcg aXQgdG8gaW5kZXgKemF0bV9kZXYtPnBvb2xfaW5mbwoKTm90aWNlIHRoYXQgZ2l2ZW4gdGhhdCBz cGVjdWxhdGlvbiB3aW5kb3dzIGFyZSBsYXJnZSwgdGhlIHBvbGljeSBpcwp0byBraWxsIHRoZSBz cGVjdWxhdGlvbiBvbiB0aGUgZmlyc3QgbG9hZCBhbmQgbm90IHdvcnJ5IGlmIGl0IGNhbiBiZQpj b21wbGV0ZWQgd2l0aCBhIGRlcGVuZGVudCBsb2FkL3N0b3JlIFsxXS4KClsxXSBodHRwczovL21h cmMuaW5mby8/bD1saW51eC1rZXJuZWwmbT0xNTI0NDkxMzExMTQ3Nzgmdz0yCgpDYzogc3RhYmxl QHZnZXIua2VybmVsLm9yZwpTaWduZWQtb2ZmLWJ5OiBHdXN0YXZvIEEuIFIuIFNpbHZhIDxndXN0 YXZvQGVtYmVkZGVkb3IuY29tPgpTaWduZWQtb2ZmLWJ5OiBEYXZpZCBTLiBNaWxsZXIgPGRhdmVt QGRhdmVtbG9mdC5uZXQ+Ci0tLQogZHJpdmVycy9hdG0vemF0bS5jIHwgMyArKysKIDEgZmlsZSBj aGFuZ2VkLCAzIGluc2VydGlvbnMoKykKCmRpZmYgLS1naXQgYS9kcml2ZXJzL2F0bS96YXRtLmMg Yi9kcml2ZXJzL2F0bS96YXRtLmMKaW5kZXggMWVmNjdkYjAzYzhlLi45YzlhMjI5NTg3MTcgMTAw NjQ0Ci0tLSBhL2RyaXZlcnMvYXRtL3phdG0uYworKysgYi9kcml2ZXJzL2F0bS96YXRtLmMKQEAg LTI4LDYgKzI4LDcgQEAKICNpbmNsdWRlIDxhc20vaW8uaD4KICNpbmNsdWRlIDxsaW51eC9hdG9t aWMuaD4KICNpbmNsdWRlIDxsaW51eC91YWNjZXNzLmg+CisjaW5jbHVkZSA8bGludXgvbm9zcGVj Lmg+CiAKICNpbmNsdWRlICJ1UEQ5ODQwMS5oIgogI2luY2x1ZGUgInVQRDk4NDAyLmgiCkBAIC0x NDU4LDYgKzE0NTksOCBAQCBzdGF0aWMgaW50IHphdG1faW9jdGwoc3RydWN0IGF0bV9kZXYgKmRl dix1bnNpZ25lZCBpbnQgY21kLHZvaWQgX191c2VyICphcmcpCiAJCQkJCXJldHVybiAtRUZBVUxU OwogCQkJCWlmIChwb29sIDwgMCB8fCBwb29sID4gWkFUTV9MQVNUX1BPT0wpCiAJCQkJCXJldHVy biAtRUlOVkFMOworCQkJCXBvb2wgPSBhcnJheV9pbmRleF9ub3NwZWMocG9vbCwKKwkJCQkJCQkg IFpBVE1fTEFTVF9QT09MICsgMSk7CiAJCQkJc3Bpbl9sb2NrX2lycXNhdmUoJnphdG1fZGV2LT5s b2NrLCBmbGFncyk7CiAJCQkJaW5mbyA9IHphdG1fZGV2LT5wb29sX2luZm9bcG9vbF07CiAJCQkJ aWYgKGNtZCA9PSBaQVRNX0dFVFBPT0xaKSB7Ci0tIAoyLjE0LjMKCgpGcm9tIGJjOTQ5OGJiMWIy YmRiMGU5NTdjMGZmMjc0NTA1ZDhhZWNmN2E2ZTcgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCkZy b206IEhhbmdiaW4gTGl1IDxsaXVoYW5nYmluQGdtYWlsLmNvbT4KRGF0ZTogRnJpLCAyNyBBcHIg MjAxOCAyMDo1OToyNCArMDgwMApTdWJqZWN0OiBbUEFUQ0ggMDMvNDFdIGJyaWRnZTogY2hlY2sg aWZhY2UgdXBwZXIgZGV2IHdoZW4gc2V0dGluZyBtYXN0ZXIgdmlhCiBpb2N0bAoKWyBVcHN0cmVh bSBjb21taXQgZTgyMzhmYzJiZDdiNGMzYzc1NTRmYTJkZjA2N2U3OTY2MTAyMTJmYyBdCgpXaGVu IHdlIHNldCBhIGJvbmQgc2xhdmUncyBtYXN0ZXIgdG8gYnJpZGdlIHZpYSBpb2N0bCwgd2Ugb25s eSBjaGVjawp0aGUgSUZGX0JSSURHRV9QT1JUIGZsYWcuIEFsdGhvdWdoIHdlIHdpbGwgZmluZCB0 aGUgc2xhdmUncyByZWFsIG1hc3RlcgphdCBuZXRkZXZfbWFzdGVyX3VwcGVyX2Rldl9saW5rKCkg bGF0ZXIsIGl0IGFscmVhZHkgZG9lcyBzb21lIHNldHRpbmdzCmFuZCBhbGxvY2F0ZXMgc29tZSBy ZXNvdXJjZXMuIEl0IHdvdWxkIGJlIGJldHRlciB0byByZXR1cm4gYXMgZWFybHkKYXMgcG9zc2li bGUuCgp2MSAtPiB2MjoKdXNlIG5ldGRldl9tYXN0ZXJfdXBwZXJfZGV2X2dldCgpIGluc3RlYWQg b2YgbmV0ZGV2X2hhc19hbnlfdXBwZXJfZGV2KCkKdG8gY2hlY2sgaWYgd2UgaGF2ZSBhIG1hc3Rl ciwgYmVjYXVzZSBub3QgYWxsIHVwcGVyIGRldnMgYXJlIG1hc3RlcnMsCmUuZy4gdmxhbiBkZXZp Y2UuCgpSZXBvcnRlZC1ieTogc3l6Ym90K2RlNzMzNjFlZTQ5NzFiNmU2Zjc1QHN5emthbGxlci5h cHBzcG90bWFpbC5jb20KU2lnbmVkLW9mZi1ieTogSGFuZ2JpbiBMaXUgPGxpdWhhbmdiaW5AZ21h aWwuY29tPgpBY2tlZC1ieTogTmlrb2xheSBBbGVrc2FuZHJvdiA8bmlrb2xheUBjdW11bHVzbmV0 d29ya3MuY29tPgpTaWduZWQtb2ZmLWJ5OiBEYXZpZCBTLiBNaWxsZXIgPGRhdmVtQGRhdmVtbG9m dC5uZXQ+Ci0tLQogbmV0L2JyaWRnZS9icl9pZi5jIHwgNCArKy0tCiAxIGZpbGUgY2hhbmdlZCwg MiBpbnNlcnRpb25zKCspLCAyIGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL25ldC9icmlkZ2Uv YnJfaWYuYyBiL25ldC9icmlkZ2UvYnJfaWYuYwppbmRleCBmM2FlZjIyOTMxYWIuLjU1YTczZWYz ODhiZiAxMDA2NDQKLS0tIGEvbmV0L2JyaWRnZS9icl9pZi5jCisrKyBiL25ldC9icmlkZ2UvYnJf aWYuYwpAQCAtNTAzLDggKzUwMyw4IEBAIGludCBicl9hZGRfaWYoc3RydWN0IG5ldF9icmlkZ2Ug KmJyLCBzdHJ1Y3QgbmV0X2RldmljZSAqZGV2KQogCWlmIChkZXYtPm5ldGRldl9vcHMtPm5kb19z dGFydF94bWl0ID09IGJyX2Rldl94bWl0KQogCQlyZXR1cm4gLUVMT09QOwogCi0JLyogRGV2aWNl IGlzIGFscmVhZHkgYmVpbmcgYnJpZGdlZCAqLwotCWlmIChicl9wb3J0X2V4aXN0cyhkZXYpKQor CS8qIERldmljZSBoYXMgbWFzdGVyIHVwcGVyIGRldiAqLworCWlmIChuZXRkZXZfbWFzdGVyX3Vw cGVyX2Rldl9nZXQoZGV2KSkKIAkJcmV0dXJuIC1FQlVTWTsKIAogCS8qIE5vIGJyaWRnaW5nIGRl dmljZXMgdGhhdCBkaXNsaWtlIHRoYXQgKGUuZy4gd2lyZWxlc3MpICovCi0tIAoyLjE0LjMKCgpG cm9tIGMxZjI5NjA3YzE3NDkzMDUyNzBiMGZiMjg2YjI3YjAxZjc1NjU2MmEgTW9uIFNlcCAxNyAw MDowMDowMCAyMDAxCkZyb206IEVyaWMgRHVtYXpldCA8ZWR1bWF6ZXRAZ29vZ2xlLmNvbT4KRGF0 ZTogVGh1LCAzIE1heSAyMDE4IDA5OjM5OjIwIC0wNzAwClN1YmplY3Q6IFtQQVRDSCAwNC80MV0g ZGNjcDogZml4IHRhc2tsZXQgdXNhZ2UKClsgVXBzdHJlYW0gY29tbWl0IGE4ZDdhYTE3YmJjOTcw OTcxY2NkZjcxOTg4ZWExOTIzMGFiMzY4YjEgXQoKc3l6Ym90IHJlcG9ydGVkIGEgY3Jhc2ggaW4g dGFza2xldF9hY3Rpb25fY29tbW9uKCkgY2F1c2VkIGJ5IGRjY3AuCgpkY2NwIG5lZWRzIHRvIG1h a2Ugc3VyZSBzb2NrZXQgd29udCBkaXNhcHBlYXIgYmVmb3JlIHRhc2tsZXQgaGFuZGxlcgpoYXMg Y29tcGxldGVkLgoKVGhpcyBwYXRjaCB0YWtlcyBhIHJlZmVyZW5jZSBvbiB0aGUgc29ja2V0IHdo ZW4gYXJtaW5nIHRoZSB0YXNrbGV0LAphbmQgbW92ZXMgdGhlIHNvY2tfcHV0KCkgZnJvbSBkY2Nw X3dyaXRlX3htaXRfdGltZXIoKSB0byBkY2NwX3dyaXRlX3htaXRsZXQoKQoKa2VybmVsIEJVRyBh dCBrZXJuZWwvc29mdGlycS5jOjUxNCEKaW52YWxpZCBvcGNvZGU6IDAwMDAgWyMxXSBTTVAgS0FT QU4KRHVtcGluZyBmdHJhY2UgYnVmZmVyOgogICAoZnRyYWNlIGJ1ZmZlciBlbXB0eSkKTW9kdWxl cyBsaW5rZWQgaW46CkNQVTogMSBQSUQ6IDE3IENvbW06IGtzb2Z0aXJxZC8xIE5vdCB0YWludGVk IDQuMTcuMC1yYzMrICMzMApIYXJkd2FyZSBuYW1lOiBHb29nbGUgR29vZ2xlIENvbXB1dGUgRW5n aW5lL0dvb2dsZSBDb21wdXRlIEVuZ2luZSwgQklPUyBHb29nbGUgMDEvMDEvMjAxMQpSSVA6IDAw MTA6dGFza2xldF9hY3Rpb25fY29tbW9uLmlzcmEuMTkrMHg2ZGIvMHg3MDAga2VybmVsL3NvZnRp cnEuYzo1MTUKUlNQOiAwMDE4OmZmZmY4ODAxZDliM2ZhZjggRUZMQUdTOiAwMDAxMDI0NgpkY2Nw X2Nsb3NlOiBBQk9SVCB3aXRoIDY1NDIzIGJ5dGVzIHVucmVhZApSQVg6IDFmZmZmMTAwM2IzNjdm NmIgUkJYOiBmZmZmODgwMWRhZjFmM2YwIFJDWDogMDAwMDAwMDAwMDAwMDAwMApSRFg6IGZmZmY4 ODAxY2Y4OTU0OTggUlNJOiAwMDAwMDAwMDAwMDAwMDA0IFJESTogMDAwMDAwMDAwMDAwMDAwMApS QlA6IGZmZmY4ODAxZDliM2ZjNDAgUjA4OiBmZmZmZWQwMDM5ZjEyYTk1IFIwOTogZmZmZmVkMDAz OWYxMmE5NApkY2NwX2Nsb3NlOiBBQk9SVCB3aXRoIDY1NDIzIGJ5dGVzIHVucmVhZApSMTA6IGZm ZmZlZDAwMzlmMTJhOTQgUjExOiBmZmZmODgwMWNmODk1NGEzIFIxMjogMDAwMDAwMDAwMDAwMDAw MApSMTM6IGZmZmY4ODAxZDliM2ZjMTggUjE0OiBkZmZmZmMwMDAwMDAwMDAwIFIxNTogZmZmZjg4 MDFjZjg5NTQ5MApGUzogIDAwMDAwMDAwMDAwMDAwMDAoMDAwMCkgR1M6ZmZmZjg4MDFkYWYwMDAw MCgwMDAwKSBrbmxHUzowMDAwMDAwMDAwMDAwMDAwCkNTOiAgMDAxMCBEUzogMDAwMCBFUzogMDAw MCBDUjA6IDAwMDAwMDAwODAwNTAwMzMKQ1IyOiAwMDAwMDAxYjJiYzI4MDAwIENSMzogMDAwMDAw MDFhMDhhOTAwMCBDUjQ6IDAwMDAwMDAwMDAxNDA2ZTAKRFIwOiAwMDAwMDAwMDAwMDAwMDAwIERS MTogMDAwMDAwMDAwMDAwMDAwMCBEUjI6IDAwMDAwMDAwMDAwMDAwMDAKRFIzOiAwMDAwMDAwMDAw MDAwMDAwIERSNjogMDAwMDAwMDBmZmZlMGZmMCBEUjc6IDAwMDAwMDAwMDAwMDA0MDAKQ2FsbCBU cmFjZToKIHRhc2tsZXRfYWN0aW9uKzB4MWQvMHgyMCBrZXJuZWwvc29mdGlycS5jOjUzMwogX19k b19zb2Z0aXJxKzB4MmUwLzB4YWY1IGtlcm5lbC9zb2Z0aXJxLmM6Mjg1CmRjY3BfY2xvc2U6IEFC T1JUIHdpdGggNjU0MjMgYnl0ZXMgdW5yZWFkCiBydW5fa3NvZnRpcnFkKzB4ODYvMHgxMDAga2Vy bmVsL3NvZnRpcnEuYzo2NDYKIHNtcGJvb3RfdGhyZWFkX2ZuKzB4NDE3LzB4ODcwIGtlcm5lbC9z bXBib290LmM6MTY0CiBrdGhyZWFkKzB4MzQ1LzB4NDEwIGtlcm5lbC9rdGhyZWFkLmM6MjM4CiBy ZXRfZnJvbV9mb3JrKzB4M2EvMHg1MCBhcmNoL3g4Ni9lbnRyeS9lbnRyeV82NC5TOjQxMgpDb2Rl OiA0OCA4YiA4NSBlOCBmZSBmZiBmZiA0OCA4YiA5NSBmMCBmZSBmZiBmZiBlOSA5NCBmYiBmZiBm ZiA0OCA4OSA5NSBmMCBmZSBmZiBmZiBlOCA4MSA1MyA2ZSAwMCA0OCA4YiA5NSBmMCBmZSBmZiBm ZiBlOSA2MiBmYiBmZiBmZiA8MGY+IDBiIDQ4IDg5IGNmIDQ4IDg5IDhkIGU4IGZlIGZmIGZmIGU4 IDY0IDUzIDZlIDAwIDQ4IDhiIDhkIGU4ClJJUDogdGFza2xldF9hY3Rpb25fY29tbW9uLmlzcmEu MTkrMHg2ZGIvMHg3MDAga2VybmVsL3NvZnRpcnEuYzo1MTUgUlNQOiBmZmZmODgwMWQ5YjNmYWY4 CgpGaXhlczogZGM4NDFlMzBlYWVhICgiZGNjcDogRXh0ZW5kIENDSUQgcGFja2V0IGRlcXVldWVp bmcgaW50ZXJmYWNlIikKU2lnbmVkLW9mZi1ieTogRXJpYyBEdW1hemV0IDxlZHVtYXpldEBnb29n bGUuY29tPgpSZXBvcnRlZC1ieTogc3l6Ym90IDxzeXprYWxsZXJAZ29vZ2xlZ3JvdXBzLmNvbT4K Q2M6IEdlcnJpdCBSZW5rZXIgPGdlcnJpdEBlcmcuYWJkbi5hYy51az4KQ2M6IGRjY3BAdmdlci5r ZXJuZWwub3JnClNpZ25lZC1vZmYtYnk6IERhdmlkIFMuIE1pbGxlciA8ZGF2ZW1AZGF2ZW1sb2Z0 Lm5ldD4KLS0tCiBuZXQvZGNjcC9jY2lkcy9jY2lkMi5jIHwgMTQgKysrKysrKysrKysrLS0KIG5l dC9kY2NwL3RpbWVyLmMgICAgICAgfCAgMiArLQogMiBmaWxlcyBjaGFuZ2VkLCAxMyBpbnNlcnRp b25zKCspLCAzIGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL25ldC9kY2NwL2NjaWRzL2NjaWQy LmMgYi9uZXQvZGNjcC9jY2lkcy9jY2lkMi5jCmluZGV4IDk3NzkxYjBiMWI1MS4uMzg4N2JjMTE1 NzYyIDEwMDY0NAotLS0gYS9uZXQvZGNjcC9jY2lkcy9jY2lkMi5jCisrKyBiL25ldC9kY2NwL2Nj aWRzL2NjaWQyLmMKQEAgLTEyNiw2ICsxMjYsMTYgQEAgc3RhdGljIHZvaWQgY2NpZDJfY2hhbmdl X2xfc2VxX3dpbmRvdyhzdHJ1Y3Qgc29jayAqc2ssIHU2NCB2YWwpCiAJCQkJCQkgIERDQ1BGX1NF UV9XTUFYKSk7CiB9CiAKK3N0YXRpYyB2b2lkIGRjY3BfdGFza2xldF9zY2hlZHVsZShzdHJ1Y3Qg c29jayAqc2spCit7CisJc3RydWN0IHRhc2tsZXRfc3RydWN0ICp0ID0gJmRjY3Bfc2soc2spLT5k Y2Nwc194bWl0bGV0OworCisJaWYgKCF0ZXN0X2FuZF9zZXRfYml0KFRBU0tMRVRfU1RBVEVfU0NI RUQsICZ0LT5zdGF0ZSkpIHsKKwkJc29ja19ob2xkKHNrKTsKKwkJX190YXNrbGV0X3NjaGVkdWxl KHQpOworCX0KK30KKwogc3RhdGljIHZvaWQgY2NpZDJfaGNfdHhfcnRvX2V4cGlyZSh1bnNpZ25l ZCBsb25nIGRhdGEpCiB7CiAJc3RydWN0IHNvY2sgKnNrID0gKHN0cnVjdCBzb2NrICopZGF0YTsK QEAgLTE2Niw3ICsxNzYsNyBAQCBzdGF0aWMgdm9pZCBjY2lkMl9oY190eF9ydG9fZXhwaXJlKHVu c2lnbmVkIGxvbmcgZGF0YSkKIAogCS8qIGlmIHdlIHdlcmUgYmxvY2tlZCBiZWZvcmUsIHdlIG1h eSBub3cgc2VuZCBjd25kPTEgcGFja2V0ICovCiAJaWYgKHNlbmRlcl93YXNfYmxvY2tlZCkKLQkJ dGFza2xldF9zY2hlZHVsZSgmZGNjcF9zayhzayktPmRjY3BzX3htaXRsZXQpOworCQlkY2NwX3Rh c2tsZXRfc2NoZWR1bGUoc2spOwogCS8qIHJlc3RhcnQgYmFja2VkLW9mZiB0aW1lciAqLwogCXNr X3Jlc2V0X3RpbWVyKHNrLCAmaGMtPnR4X3J0b3RpbWVyLCBqaWZmaWVzICsgaGMtPnR4X3J0byk7 CiBvdXQ6CkBAIC03MDYsNyArNzE2LDcgQEAgc3RhdGljIHZvaWQgY2NpZDJfaGNfdHhfcGFja2V0 X3JlY3Yoc3RydWN0IHNvY2sgKnNrLCBzdHJ1Y3Qgc2tfYnVmZiAqc2tiKQogZG9uZToKIAkvKiBj aGVjayBpZiBpbmNvbWluZyBBY2tzIGFsbG93IHBlbmRpbmcgcGFja2V0cyB0byBiZSBzZW50ICov CiAJaWYgKHNlbmRlcl93YXNfYmxvY2tlZCAmJiAhY2NpZDJfY3duZF9uZXR3b3JrX2xpbWl0ZWQo aGMpKQotCQl0YXNrbGV0X3NjaGVkdWxlKCZkY2NwX3NrKHNrKS0+ZGNjcHNfeG1pdGxldCk7CisJ CWRjY3BfdGFza2xldF9zY2hlZHVsZShzayk7CiAJZGNjcF9hY2t2ZWNfcGFyc2VkX2NsZWFudXAo JmhjLT50eF9hdl9jaHVua3MpOwogfQogCmRpZmYgLS1naXQgYS9uZXQvZGNjcC90aW1lci5jIGIv bmV0L2RjY3AvdGltZXIuYwppbmRleCAzYTJjMzQwMjc3NTguLjJhOTUyY2JkNmVmYSAxMDA2NDQK LS0tIGEvbmV0L2RjY3AvdGltZXIuYworKysgYi9uZXQvZGNjcC90aW1lci5jCkBAIC0yMzAsMTIg KzIzMCwxMiBAQCBzdGF0aWMgdm9pZCBkY2NwX3dyaXRlX3htaXRsZXQodW5zaWduZWQgbG9uZyBk YXRhKQogCWVsc2UKIAkJZGNjcF93cml0ZV94bWl0KHNrKTsKIAliaF91bmxvY2tfc29jayhzayk7 CisJc29ja19wdXQoc2spOwogfQogCiBzdGF0aWMgdm9pZCBkY2NwX3dyaXRlX3htaXRfdGltZXIo dW5zaWduZWQgbG9uZyBkYXRhKQogewogCWRjY3Bfd3JpdGVfeG1pdGxldChkYXRhKTsKLQlzb2Nr X3B1dCgoc3RydWN0IHNvY2sgKilkYXRhKTsKIH0KIAogdm9pZCBkY2NwX2luaXRfeG1pdF90aW1l cnMoc3RydWN0IHNvY2sgKnNrKQotLSAKMi4xNC4zCgoKRnJvbSBhMjI4ZDM1ZDI2MTMwMmNhNjgy N2VlNjQ2NDcxOWNmOWNhN2I4NWMyIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBKdWxp YW4gQW5hc3Rhc292IDxqYUBzc2kuYmc+CkRhdGU6IFdlZCwgMiBNYXkgMjAxOCAwOTo0MToxOSAr MDMwMApTdWJqZWN0OiBbUEFUQ0ggMDUvNDFdIGlwdjQ6IGZpeCBmbmhlIHVzYWdlIGJ5IG5vbi1j YWNoZWQgcm91dGVzCgpbIFVwc3RyZWFtIGNvbW1pdCA5NDcyMGUzYWVlNjg4NGQ4YzhiZWI2Nzgw MDE2MjlkYTYwZWM2MzY2IF0KCkFsbG93IHNvbWUgbm9uLWNhY2hlZCByb3V0ZXMgdG8gdXNlIG5v bi1leHBpcmVkIGZuaGU6CgoxLiBpcF9kZWxfZm5oZTogbW92ZWQgYWJvdmUgYW5kIG5vdyBjYWxs ZWQgYnkgZmluZF9leGNlcHRpb24uClRoZSA0LjUrIGNvbW1pdCBkZWVkNDlkZjczOTAgZXhwaXJl cyBmbmhlIG9ubHkgd2hlbiBjYWNoaW5nCnJvdXRlcy4gQ2hhbmdlIHRoYXQgdG86CgoxLjEuIHVz ZSBmbmhlIGZvciBub24tY2FjaGVkIGxvY2FsIG91dHB1dCByb3V0ZXMsIHdpdGggdGhlIGhlbHAK ZnJvbSAoMikKCjEuMi4gYWxsb3cgX19ta3JvdXRlX2lucHV0IHRvIGRldGVjdCBleHBpcmVkIGZu aGUgKG91dGRhdGVkCmZuaGVfZ3csIGZvciBleGFtcGxlKSB3aGVuIGRvX2NhY2hlIGlzIGZhbHNl LCBlZy4gd2hlbiBpdGFnIT0wCmZvciB1bmljYXN0IGRlc3RpbmF0aW9ucy4KCjIuIF9fbWtyb3V0 ZV9vdXRwdXQ6IGtlZXAgZmkgdG8gYWxsb3cgbG9jYWwgcm91dGVzIHdpdGggb3JpZ19vaWYgIT0g MAp0byB1c2UgZm5oZSBpbmZvIGV2ZW4gd2hlbiB0aGUgbmV3IHJvdXRlIHdpbGwgbm90IGJlIGNh Y2hlZCBpbnRvIGZuaGUuCkFmdGVyIGNvbW1pdCA4MzlkYTRkOTg5NjAgKCJuZXQ6IGlwdjQ6IHNl dCBvcmlnX29pZiBiYXNlZCBvbiBmaWIKcmVzdWx0IGZvciBsb2NhbCB0cmFmZmljIikgaXQgbWVh bnMgYWxsIGxvY2FsIHJvdXRlcyB3aWxsIGJlIGFmZmVjdGVkCmJlY2F1c2UgdGhleSBhcmUgbm90 IGNhY2hlZC4gVGhpcyBjaGFuZ2UgaXMgdXNlZCB0byBzb2x2ZSBhIFBNVFUKcHJvYmxlbSB3aXRo IElQVlMgKGFuZCBwcm9iYWJseSBOZXRmaWx0ZXIgRE5BVCkgc2V0dXBzIHRoYXQgcmVkaXJlY3QK bG9jYWwgY2xpZW50cyBmcm9tIHRhcmdldCBsb2NhbCBJUCAobG9jYWwgcm91dGUgdG8gVmlydHVh bCBJUCkKdG8gbmV3IHJlbW90ZSBJUCB0YXJnZXQsIGVnLiBJUFZTIFRVTiByZWFsIHNlcnZlci4g TG9vcGJhY2sgaGFzCjY0SyBNVFUgYW5kIHdlIG5lZWQgdG8gY3JlYXRlIGZuaGUgb24gdGhlIGxv Y2FsIHJvdXRlIHRoYXQgd2lsbAprZWVwIHRoZSByZWR1Y2VkIFBNVFUgZm9yIHRoZSBWaXJ0dWFs IElQLiBXaXRob3V0IHRoaXMgY2hhbmdlCmZuaGVfcG10dSBpcyB1cGRhdGVkIGZyb20gSUNNUCBi dXQgbmV2ZXIgZXhwb3NlZCB0byBub24tY2FjaGVkCmxvY2FsIHJvdXRlcy4gVGhpcyBpbmNsdWRl cyByb3V0ZXMgd2l0aCBmbG93aTRfb2lmIT0wIGZvciA0LjYrIGFuZAp3aXRoIGZsb3dpNF9vaWY9 YW55IGZvciA0LjE0KykuCgozLiB1cGRhdGVfb3JfY3JlYXRlX2ZuaGU6IG1ha2Ugc3VyZSBmbmhl X2V4cGlyZXMgaXMgbm90IDAgZm9yCm5ldyBlbnRyaWVzCgpGaXhlczogODM5ZGE0ZDk4OTYwICgi bmV0OiBpcHY0OiBzZXQgb3JpZ19vaWYgYmFzZWQgb24gZmliIHJlc3VsdCBmb3IgbG9jYWwgdHJh ZmZpYyIpCkZpeGVzOiBkNmQ1ZTk5OWU1ZGYgKCJyb3V0ZTogZG8gbm90IGNhY2hlIGZpYiByb3V0 ZSBpbmZvIG9uIGxvY2FsIHJvdXRlcyB3aXRoIG9pZiIpCkZpeGVzOiBkZWVkNDlkZjczOTAgKCJy b3V0ZTogY2hlY2sgYW5kIHJlbW92ZSByb3V0ZSBjYWNoZSB3aGVuIHdlIGdldCByb3V0ZSIpCkNj OiBEYXZpZCBBaGVybiA8ZHNhaGVybkBnbWFpbC5jb20+CkNjOiBYaW4gTG9uZyA8bHVjaWVuLnhp bkBnbWFpbC5jb20+ClNpZ25lZC1vZmYtYnk6IEp1bGlhbiBBbmFzdGFzb3YgPGphQHNzaS5iZz4K QWNrZWQtYnk6IERhdmlkIEFoZXJuIDxkc2FoZXJuQGdtYWlsLmNvbT4KU2lnbmVkLW9mZi1ieTog RGF2aWQgUy4gTWlsbGVyIDxkYXZlbUBkYXZlbWxvZnQubmV0PgotLS0KIG5ldC9pcHY0L3JvdXRl LmMgfCAxMTggKysrKysrKysrKysrKysrKysrKysrKysrKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLQogMSBmaWxlIGNoYW5nZWQsIDUzIGluc2VydGlvbnMoKyksIDY1IGRlbGV0aW9ucygt KQoKZGlmZiAtLWdpdCBhL25ldC9pcHY0L3JvdXRlLmMgYi9uZXQvaXB2NC9yb3V0ZS5jCmluZGV4 IDlmZjA2YzUwNTFhZS4uYWExNjM2Zjc0NWY3IDEwMDY0NAotLS0gYS9uZXQvaXB2NC9yb3V0ZS5j CisrKyBiL25ldC9pcHY0L3JvdXRlLmMKQEAgLTcxMSw3ICs3MTEsNyBAQCBzdGF0aWMgdm9pZCB1 cGRhdGVfb3JfY3JlYXRlX2ZuaGUoc3RydWN0IGZpYl9uaCAqbmgsIF9fYmUzMiBkYWRkciwgX19i ZTMyIGd3LAogCQlmbmhlLT5mbmhlX2RhZGRyID0gZGFkZHI7CiAJCWZuaGUtPmZuaGVfZ3cgPSBn dzsKIAkJZm5oZS0+Zm5oZV9wbXR1ID0gcG10dTsKLQkJZm5oZS0+Zm5oZV9leHBpcmVzID0gZXhw aXJlczsKKwkJZm5oZS0+Zm5oZV9leHBpcmVzID0gbWF4KDFVTCwgZXhwaXJlcyk7CiAKIAkJLyog RXhjZXB0aW9uIGNyZWF0ZWQ7IG1hcmsgdGhlIGNhY2hlZCByb3V0ZXMgZm9yIHRoZSBuZXh0aG9w CiAJCSAqIHN0YWxlLCBzbyBhbnlvbmUgY2FjaGluZyBpdCByZWNoZWNrcyBpZiB0aGlzIGV4Y2Vw dGlvbgpAQCAtMTI4Niw2ICsxMjg2LDM2IEBAIHN0YXRpYyB1bnNpZ25lZCBpbnQgaXB2NF9tdHUo Y29uc3Qgc3RydWN0IGRzdF9lbnRyeSAqZHN0KQogCXJldHVybiBtdHUgLSBsd3R1bm5lbF9oZWFk cm9vbShkc3QtPmx3dHN0YXRlLCBtdHUpOwogfQogCitzdGF0aWMgdm9pZCBpcF9kZWxfZm5oZShz dHJ1Y3QgZmliX25oICpuaCwgX19iZTMyIGRhZGRyKQoreworCXN0cnVjdCBmbmhlX2hhc2hfYnVj a2V0ICpoYXNoOworCXN0cnVjdCBmaWJfbmhfZXhjZXB0aW9uICpmbmhlLCBfX3JjdSAqKmZuaGVf cDsKKwl1MzIgaHZhbCA9IGZuaGVfaGFzaGZ1bihkYWRkcik7CisKKwlzcGluX2xvY2tfYmgoJmZu aGVfbG9jayk7CisKKwloYXNoID0gcmN1X2RlcmVmZXJlbmNlX3Byb3RlY3RlZChuaC0+bmhfZXhj ZXB0aW9ucywKKwkJCQkJIGxvY2tkZXBfaXNfaGVsZCgmZm5oZV9sb2NrKSk7CisJaGFzaCArPSBo dmFsOworCisJZm5oZV9wID0gJmhhc2gtPmNoYWluOworCWZuaGUgPSByY3VfZGVyZWZlcmVuY2Vf cHJvdGVjdGVkKCpmbmhlX3AsIGxvY2tkZXBfaXNfaGVsZCgmZm5oZV9sb2NrKSk7CisJd2hpbGUg KGZuaGUpIHsKKwkJaWYgKGZuaGUtPmZuaGVfZGFkZHIgPT0gZGFkZHIpIHsKKwkJCXJjdV9hc3Np Z25fcG9pbnRlcigqZm5oZV9wLCByY3VfZGVyZWZlcmVuY2VfcHJvdGVjdGVkKAorCQkJCWZuaGUt PmZuaGVfbmV4dCwgbG9ja2RlcF9pc19oZWxkKCZmbmhlX2xvY2spKSk7CisJCQlmbmhlX2ZsdXNo X3JvdXRlcyhmbmhlKTsKKwkJCWtmcmVlX3JjdShmbmhlLCByY3UpOworCQkJYnJlYWs7CisJCX0K KwkJZm5oZV9wID0gJmZuaGUtPmZuaGVfbmV4dDsKKwkJZm5oZSA9IHJjdV9kZXJlZmVyZW5jZV9w cm90ZWN0ZWQoZm5oZS0+Zm5oZV9uZXh0LAorCQkJCQkJIGxvY2tkZXBfaXNfaGVsZCgmZm5oZV9s b2NrKSk7CisJfQorCisJc3Bpbl91bmxvY2tfYmgoJmZuaGVfbG9jayk7Cit9CisKIHN0YXRpYyBz dHJ1Y3QgZmliX25oX2V4Y2VwdGlvbiAqZmluZF9leGNlcHRpb24oc3RydWN0IGZpYl9uaCAqbmgs IF9fYmUzMiBkYWRkcikKIHsKIAlzdHJ1Y3QgZm5oZV9oYXNoX2J1Y2tldCAqaGFzaCA9IHJjdV9k ZXJlZmVyZW5jZShuaC0+bmhfZXhjZXB0aW9ucyk7CkBAIC0xMjk5LDggKzEzMjksMTQgQEAgc3Rh dGljIHN0cnVjdCBmaWJfbmhfZXhjZXB0aW9uICpmaW5kX2V4Y2VwdGlvbihzdHJ1Y3QgZmliX25o ICpuaCwgX19iZTMyIGRhZGRyKQogCiAJZm9yIChmbmhlID0gcmN1X2RlcmVmZXJlbmNlKGhhc2hb aHZhbF0uY2hhaW4pOyBmbmhlOwogCSAgICAgZm5oZSA9IHJjdV9kZXJlZmVyZW5jZShmbmhlLT5m bmhlX25leHQpKSB7Ci0JCWlmIChmbmhlLT5mbmhlX2RhZGRyID09IGRhZGRyKQorCQlpZiAoZm5o ZS0+Zm5oZV9kYWRkciA9PSBkYWRkcikgeworCQkJaWYgKGZuaGUtPmZuaGVfZXhwaXJlcyAmJgor CQkJICAgIHRpbWVfYWZ0ZXIoamlmZmllcywgZm5oZS0+Zm5oZV9leHBpcmVzKSkgeworCQkJCWlw X2RlbF9mbmhlKG5oLCBkYWRkcik7CisJCQkJYnJlYWs7CisJCQl9CiAJCQlyZXR1cm4gZm5oZTsK KwkJfQogCX0KIAlyZXR1cm4gTlVMTDsKIH0KQEAgLTE2MjAsMzYgKzE2NTYsNiBAQCBzdGF0aWMg dm9pZCBpcF9oYW5kbGVfbWFydGlhbl9zb3VyY2Uoc3RydWN0IG5ldF9kZXZpY2UgKmRldiwKICNl bmRpZgogfQogCi1zdGF0aWMgdm9pZCBpcF9kZWxfZm5oZShzdHJ1Y3QgZmliX25oICpuaCwgX19i ZTMyIGRhZGRyKQotewotCXN0cnVjdCBmbmhlX2hhc2hfYnVja2V0ICpoYXNoOwotCXN0cnVjdCBm aWJfbmhfZXhjZXB0aW9uICpmbmhlLCBfX3JjdSAqKmZuaGVfcDsKLQl1MzIgaHZhbCA9IGZuaGVf aGFzaGZ1bihkYWRkcik7Ci0KLQlzcGluX2xvY2tfYmgoJmZuaGVfbG9jayk7Ci0KLQloYXNoID0g cmN1X2RlcmVmZXJlbmNlX3Byb3RlY3RlZChuaC0+bmhfZXhjZXB0aW9ucywKLQkJCQkJIGxvY2tk ZXBfaXNfaGVsZCgmZm5oZV9sb2NrKSk7Ci0JaGFzaCArPSBodmFsOwotCi0JZm5oZV9wID0gJmhh c2gtPmNoYWluOwotCWZuaGUgPSByY3VfZGVyZWZlcmVuY2VfcHJvdGVjdGVkKCpmbmhlX3AsIGxv Y2tkZXBfaXNfaGVsZCgmZm5oZV9sb2NrKSk7Ci0Jd2hpbGUgKGZuaGUpIHsKLQkJaWYgKGZuaGUt PmZuaGVfZGFkZHIgPT0gZGFkZHIpIHsKLQkJCXJjdV9hc3NpZ25fcG9pbnRlcigqZm5oZV9wLCBy Y3VfZGVyZWZlcmVuY2VfcHJvdGVjdGVkKAotCQkJCWZuaGUtPmZuaGVfbmV4dCwgbG9ja2RlcF9p c19oZWxkKCZmbmhlX2xvY2spKSk7Ci0JCQlmbmhlX2ZsdXNoX3JvdXRlcyhmbmhlKTsKLQkJCWtm cmVlX3JjdShmbmhlLCByY3UpOwotCQkJYnJlYWs7Ci0JCX0KLQkJZm5oZV9wID0gJmZuaGUtPmZu aGVfbmV4dDsKLQkJZm5oZSA9IHJjdV9kZXJlZmVyZW5jZV9wcm90ZWN0ZWQoZm5oZS0+Zm5oZV9u ZXh0LAotCQkJCQkJIGxvY2tkZXBfaXNfaGVsZCgmZm5oZV9sb2NrKSk7Ci0JfQotCi0Jc3Bpbl91 bmxvY2tfYmgoJmZuaGVfbG9jayk7Ci19Ci0KIHN0YXRpYyB2b2lkIHNldF9sd3RfcmVkaXJlY3Qo c3RydWN0IHJ0YWJsZSAqcnRoKQogewogCWlmIChsd3R1bm5lbF9vdXRwdXRfcmVkaXJlY3QocnRo LT5kc3QubHd0c3RhdGUpKSB7CkBAIC0xNzE2LDIwICsxNzIyLDEwIEBAIHN0YXRpYyBpbnQgX19t a3JvdXRlX2lucHV0KHN0cnVjdCBza19idWZmICpza2IsCiAKIAlmbmhlID0gZmluZF9leGNlcHRp b24oJkZJQl9SRVNfTkgoKnJlcyksIGRhZGRyKTsKIAlpZiAoZG9fY2FjaGUpIHsKLQkJaWYgKGZu aGUpIHsKKwkJaWYgKGZuaGUpCiAJCQlydGggPSByY3VfZGVyZWZlcmVuY2UoZm5oZS0+Zm5oZV9y dGhfaW5wdXQpOwotCQkJaWYgKHJ0aCAmJiBydGgtPmRzdC5leHBpcmVzICYmCi0JCQkgICAgdGlt ZV9hZnRlcihqaWZmaWVzLCBydGgtPmRzdC5leHBpcmVzKSkgewotCQkJCWlwX2RlbF9mbmhlKCZG SUJfUkVTX05IKCpyZXMpLCBkYWRkcik7Ci0JCQkJZm5oZSA9IE5VTEw7Ci0JCQl9IGVsc2Ugewot CQkJCWdvdG8gcnRfY2FjaGU7Ci0JCQl9Ci0JCX0KLQotCQlydGggPSByY3VfZGVyZWZlcmVuY2Uo RklCX1JFU19OSCgqcmVzKS5uaF9ydGhfaW5wdXQpOwotCi1ydF9jYWNoZToKKwkJZWxzZQorCQkJ cnRoID0gcmN1X2RlcmVmZXJlbmNlKEZJQl9SRVNfTkgoKnJlcykubmhfcnRoX2lucHV0KTsKIAkJ aWYgKHJ0X2NhY2hlX3ZhbGlkKHJ0aCkpIHsKIAkJCXNrYl9kc3Rfc2V0X25vcmVmKHNrYiwgJnJ0 aC0+ZHN0KTsKIAkJCWdvdG8gb3V0OwpAQCAtMjIwNiwzOSArMjIwMiwzMSBAQCBzdGF0aWMgc3Ry dWN0IHJ0YWJsZSAqX19ta3JvdXRlX291dHB1dChjb25zdCBzdHJ1Y3QgZmliX3Jlc3VsdCAqcmVz LAogCQkgKiB0aGUgbG9vcGJhY2sgaW50ZXJmYWNlIGFuZCB0aGUgSVBfUEtUSU5GTyBpcGlfaWZp bmRleCB3aWxsCiAJCSAqIGJlIHNldCB0byB0aGUgbG9vcGJhY2sgaW50ZXJmYWNlIGFzIHdlbGwu CiAJCSAqLwotCQlmaSA9IE5VTEw7CisJCWRvX2NhY2hlID0gZmFsc2U7CiAJfQogCiAJZm5oZSA9 IE5VTEw7CiAJZG9fY2FjaGUgJj0gZmkgIT0gTlVMTDsKLQlpZiAoZG9fY2FjaGUpIHsKKwlpZiAo ZmkpIHsKIAkJc3RydWN0IHJ0YWJsZSBfX3JjdSAqKnBydGg7CiAJCXN0cnVjdCBmaWJfbmggKm5o ID0gJkZJQl9SRVNfTkgoKnJlcyk7CiAKIAkJZm5oZSA9IGZpbmRfZXhjZXB0aW9uKG5oLCBmbDQt PmRhZGRyKTsKKwkJaWYgKCFkb19jYWNoZSkKKwkJCWdvdG8gYWRkOwogCQlpZiAoZm5oZSkgewog CQkJcHJ0aCA9ICZmbmhlLT5mbmhlX3J0aF9vdXRwdXQ7Ci0JCQlydGggPSByY3VfZGVyZWZlcmVu Y2UoKnBydGgpOwotCQkJaWYgKHJ0aCAmJiBydGgtPmRzdC5leHBpcmVzICYmCi0JCQkgICAgdGlt ZV9hZnRlcihqaWZmaWVzLCBydGgtPmRzdC5leHBpcmVzKSkgewotCQkJCWlwX2RlbF9mbmhlKG5o LCBmbDQtPmRhZGRyKTsKLQkJCQlmbmhlID0gTlVMTDsKLQkJCX0gZWxzZSB7Ci0JCQkJZ290byBy dF9jYWNoZTsKKwkJfSBlbHNlIHsKKwkJCWlmICh1bmxpa2VseShmbDQtPmZsb3dpNF9mbGFncyAm CisJCQkJICAgICBGTE9XSV9GTEFHX0tOT1dOX05IICYmCisJCQkJICAgICAhKG5oLT5uaF9ndyAm JgorCQkJCSAgICAgICBuaC0+bmhfc2NvcGUgPT0gUlRfU0NPUEVfTElOSykpKSB7CisJCQkJZG9f Y2FjaGUgPSBmYWxzZTsKKwkJCQlnb3RvIGFkZDsKIAkJCX0KKwkJCXBydGggPSByYXdfY3B1X3B0 cihuaC0+bmhfcGNwdV9ydGhfb3V0cHV0KTsKIAkJfQotCi0JCWlmICh1bmxpa2VseShmbDQtPmZs b3dpNF9mbGFncyAmCi0JCQkgICAgIEZMT1dJX0ZMQUdfS05PV05fTkggJiYKLQkJCSAgICAgIShu aC0+bmhfZ3cgJiYKLQkJCSAgICAgICBuaC0+bmhfc2NvcGUgPT0gUlRfU0NPUEVfTElOSykpKSB7 Ci0JCQlkb19jYWNoZSA9IGZhbHNlOwotCQkJZ290byBhZGQ7Ci0JCX0KLQkJcHJ0aCA9IHJhd19j cHVfcHRyKG5oLT5uaF9wY3B1X3J0aF9vdXRwdXQpOwogCQlydGggPSByY3VfZGVyZWZlcmVuY2Uo KnBydGgpOwotCi1ydF9jYWNoZToKIAkJaWYgKHJ0X2NhY2hlX3ZhbGlkKHJ0aCkgJiYgZHN0X2hv bGRfc2FmZSgmcnRoLT5kc3QpKQogCQkJcmV0dXJuIHJ0aDsKIAl9Ci0tIAoyLjE0LjMKCgpGcm9t IDdjOGNkMjcyNzJmMmM5MDllNGQzMDc4ZmQ2YWJkNGYzZTVmZjk5YjYgTW9uIFNlcCAxNyAwMDow MDowMCAyMDAxCkZyb206IEFuZHJleSBJZ25hdG92IDxyZG5hQGZiLmNvbT4KRGF0ZTogVGh1LCAx MCBNYXkgMjAxOCAxMDo1OTozNCAtMDcwMApTdWJqZWN0OiBbUEFUQ0ggMDYvNDFdIGlwdjQ6IGZp eCBtZW1vcnkgbGVha3MgaW4gdWRwX3NlbmRtc2csIHBpbmdfdjRfc2VuZG1zZwoKWyBVcHN0cmVh bSBjb21taXQgMWI5NzAxM2JmYjExZDY2ZjA0MWRlNjkxZGU2ZjBmZWM3NDhjZTAxNiBdCgpGaXgg bW9yZSBtZW1vcnkgbGVha3MgaW4gaXBfY21zZ19zZW5kKCkgY2FsbGVycy4gUGFydCBvZiB0aGVt IHdlcmUgZml4ZWQKZWFybGllciBpbiA5MTk0ODMwOTZiZmUuCgoqIHVkcF9zZW5kbXNnIG9uZSB3 YXMgdGhlcmUgc2luY2UgdGhlIGJlZ2lubmluZyB3aGVuIGxpbnV4IHNvdXJjZXMgd2VyZQogIGZp cnN0IGFkZGVkIHRvIGdpdDsKKiBwaW5nX3Y0X3NlbmRtc2cgb25lIHdhcyBjb3B5L3Bhc3RlZCBp biBjMzE5YjRkNzZiOWUuCgpXaGVuZXZlciByZXR1cm4gaGFwcGVucyBpbiB1ZHBfc2VuZG1zZygp IG9yIHBpbmdfdjRfc2VuZG1zZygpIElQIG9wdGlvbnMKaGF2ZSB0byBiZSBmcmVlZCBpZiB0aGV5 IHdlcmUgYWxsb2NhdGVkIHByZXZpb3VzbHkuCgpBZGQgbGFiZWwgc28gdGhhdCBmdXR1cmUgY2Fs bGVycyAoaWYgYW55KSBjYW4gdXNlIGl0IGluc3RlYWQgb2Yga2ZyZWUoKQpiZWZvcmUgcmV0dXJu IHRoYXQgaXMgZWFzeSB0byBmb3JnZXQuCgpGaXhlczogYzMxOWI0ZDc2YjllIChuZXQ6IGlwdjQ6 IGFkZCBJUFBST1RPX0lDTVAgc29ja2V0IGtpbmQpClNpZ25lZC1vZmYtYnk6IEFuZHJleSBJZ25h dG92IDxyZG5hQGZiLmNvbT4KU2lnbmVkLW9mZi1ieTogRGF2aWQgUy4gTWlsbGVyIDxkYXZlbUBk YXZlbWxvZnQubmV0PgotLS0KIG5ldC9pcHY0L3BpbmcuYyB8IDcgKysrKystLQogbmV0L2lwdjQv dWRwLmMgIHwgNyArKysrKy0tCiAyIGZpbGVzIGNoYW5nZWQsIDEwIGluc2VydGlvbnMoKyksIDQg ZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvbmV0L2lwdjQvcGluZy5jIGIvbmV0L2lwdjQvcGlu Zy5jCmluZGV4IGI4ZjBkYjU0YjE5Ny4uMTYyMjZkNDkyNjNkIDEwMDY0NAotLS0gYS9uZXQvaXB2 NC9waW5nLmMKKysrIGIvbmV0L2lwdjQvcGluZy5jCkBAIC03NzUsOCArNzc1LDEwIEBAIHN0YXRp YyBpbnQgcGluZ192NF9zZW5kbXNnKHN0cnVjdCBzb2NrICpzaywgc3RydWN0IG1zZ2hkciAqbXNn LCBzaXplX3QgbGVuKQogCWlwYy5hZGRyID0gZmFkZHIgPSBkYWRkcjsKIAogCWlmIChpcGMub3B0 ICYmIGlwYy5vcHQtPm9wdC5zcnIpIHsKLQkJaWYgKCFkYWRkcikKLQkJCXJldHVybiAtRUlOVkFM OworCQlpZiAoIWRhZGRyKSB7CisJCQllcnIgPSAtRUlOVkFMOworCQkJZ290byBvdXRfZnJlZTsK KwkJfQogCQlmYWRkciA9IGlwYy5vcHQtPm9wdC5mYWRkcjsKIAl9CiAJdG9zID0gZ2V0X3J0dG9z KCZpcGMsIGluZXQpOwpAQCAtODQyLDYgKzg0NCw3IEBAIHN0YXRpYyBpbnQgcGluZ192NF9zZW5k bXNnKHN0cnVjdCBzb2NrICpzaywgc3RydWN0IG1zZ2hkciAqbXNnLCBzaXplX3QgbGVuKQogCiBv dXQ6CiAJaXBfcnRfcHV0KHJ0KTsKK291dF9mcmVlOgogCWlmIChmcmVlKQogCQlrZnJlZShpcGMu b3B0KTsKIAlpZiAoIWVycikgewpkaWZmIC0tZ2l0IGEvbmV0L2lwdjQvdWRwLmMgYi9uZXQvaXB2 NC91ZHAuYwppbmRleCBjNzlmYTZmNmI3NTguLjU1MTdmMjBhOWNkOSAxMDA2NDQKLS0tIGEvbmV0 L2lwdjQvdWRwLmMKKysrIGIvbmV0L2lwdjQvdWRwLmMKQEAgLTk3OCw4ICs5NzgsMTAgQEAgaW50 IHVkcF9zZW5kbXNnKHN0cnVjdCBzb2NrICpzaywgc3RydWN0IG1zZ2hkciAqbXNnLCBzaXplX3Qg bGVuKQogCXNvY2tfdHhfdGltZXN0YW1wKHNrLCBpcGMuc29ja2MudHNmbGFncywgJmlwYy50eF9m bGFncyk7CiAKIAlpZiAoaXBjLm9wdCAmJiBpcGMub3B0LT5vcHQuc3JyKSB7Ci0JCWlmICghZGFk ZHIpCi0JCQlyZXR1cm4gLUVJTlZBTDsKKwkJaWYgKCFkYWRkcikgeworCQkJZXJyID0gLUVJTlZB TDsKKwkJCWdvdG8gb3V0X2ZyZWU7CisJCX0KIAkJZmFkZHIgPSBpcGMub3B0LT5vcHQuZmFkZHI7 CiAJCWNvbm5lY3RlZCA9IDA7CiAJfQpAQCAtMTA4Nyw2ICsxMDg5LDcgQEAgaW50IHVkcF9zZW5k bXNnKHN0cnVjdCBzb2NrICpzaywgc3RydWN0IG1zZ2hkciAqbXNnLCBzaXplX3QgbGVuKQogCiBv dXQ6CiAJaXBfcnRfcHV0KHJ0KTsKK291dF9mcmVlOgogCWlmIChmcmVlKQogCQlrZnJlZShpcGMu b3B0KTsKIAlpZiAoIWVycikKLS0gCjIuMTQuMwoKCkZyb20gNDEyM2IzMDU4NTc3OWE4ZTVjZjZj ZTQ5YzRhN2M2NGNkYjQ0ODE0NyBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJvbTogRXJpYyBE dW1hemV0IDxlZHVtYXpldEBnb29nbGUuY29tPgpEYXRlOiBNb24sIDcgTWF5IDIwMTggMDk6MDI6 MjUgLTA3MDAKU3ViamVjdDogW1BBVENIIDA3LzQxXSBsbGM6IGJldHRlciBkZWFsIHdpdGggdG9v IHNtYWxsIG10dQoKWyBVcHN0cmVhbSBjb21taXQgMmM1ZDViMTNjNmViNzlmNTY3N2UyMDZiOGFh ZDU5YjNhMjA5N2Y2MCBdCgpzeXpib3QgbG92ZXMgdG8gc2V0IHZlcnkgc21hbGwgbXR1IG9uIGRl dmljZXMsIHNpbmNlIGl0IGJyaW5ncyBqb3kuCldlIG11c3QgbWFrZSBsbGNfdWlfc2VuZG1zZygp IGZvb2wgcHJvb2YuCgp1c2VyY29weTogS2VybmVsIG1lbW9yeSBvdmVyd3JpdGUgYXR0ZW1wdCBk ZXRlY3RlZCB0byB3cmFwcGVkIGFkZHJlc3MgKG9mZnNldCAwLCBzaXplIDE4NDQ2NjEyMTM5ODAy MzIwMDY4KSEKCmtlcm5lbCBCVUcgYXQgbW0vdXNlcmNvcHkuYzoxMDAhCmludmFsaWQgb3Bjb2Rl OiAwMDAwIFsjMV0gU01QIEtBU0FOCkR1bXBpbmcgZnRyYWNlIGJ1ZmZlcjoKICAgKGZ0cmFjZSBi dWZmZXIgZW1wdHkpCk1vZHVsZXMgbGlua2VkIGluOgpDUFU6IDAgUElEOiAxNzQ2NCBDb21tOiBz eXotZXhlY3V0b3IxIE5vdCB0YWludGVkIDQuMTcuMC1yYzMrICMzNgpIYXJkd2FyZSBuYW1lOiBH b29nbGUgR29vZ2xlIENvbXB1dGUgRW5naW5lL0dvb2dsZSBDb21wdXRlIEVuZ2luZSwgQklPUyBH b29nbGUgMDEvMDEvMjAxMQpSSVA6IDAwMTA6dXNlcmNvcHlfYWJvcnQrMHhiYi8weGJkIG1tL3Vz ZXJjb3B5LmM6ODgKUlNQOiAwMDE4OmZmZmY4ODAxODY4YmY4MDAgRUZMQUdTOiAwMDAxMDI4MgpS QVg6IDAwMDAwMDAwMDAwMDAwNmMgUkJYOiBmZmZmZmZmZjg3ZDJmYjAwIFJDWDogMDAwMDAwMDAw MDAwMDAwMApSRFg6IDAwMDAwMDAwMDAwMDAwNmMgUlNJOiBmZmZmZmZmZjgxNjEwNzMxIFJESTog ZmZmZmVkMDAzMGQxN2VmNgpSQlA6IGZmZmY4ODAxODY4YmY4NTggUjA4OiBmZmZmODgwMThkYWE0 MjAwIFIwOTogZmZmZmVkMDAzYjVjNGZiMApSMTA6IGZmZmZlZDAwM2I1YzRmYjAgUjExOiBmZmZm ODgwMWRhZTI3ZDg3IFIxMjogZmZmZmZmZmY4N2QyZjhlMApSMTM6IGZmZmZmZmZmODdkMmY3YTAg UjE0OiBmZmZmZmZmZjg3ZDJmN2EwIFIxNTogZmZmZmZmZmY4N2QyZjdhMApGUzogIDAwMDA3ZjU2 YTE0YWM3MDAoMDAwMCkgR1M6ZmZmZjg4MDFkYWUwMDAwMCgwMDAwKSBrbmxHUzowMDAwMDAwMDAw MDAwMDAwCkNTOiAgMDAxMCBEUzogMDAwMCBFUzogMDAwMCBDUjA6IDAwMDAwMDAwODAwNTAwMzMK Q1IyOiAwMDAwMDAxYjJiYzIxMDAwIENSMzogMDAwMDAwMDFhYmViMTAwMCBDUjQ6IDAwMDAwMDAw MDAxNDI2ZjAKRFIwOiAwMDAwMDAwMDIwMDAwMDAwIERSMTogMDAwMDAwMDAwMDAwMDAwMCBEUjI6 IDAwMDAwMDAwMDAwMDAwMDAKRFIzOiAwMDAwMDAwMDAwMDAwMDAwIERSNjogMDAwMDAwMDBmZmZl MGZmMCBEUjc6IDAwMDAwMDAwMDAwMzA2MDIKQ2FsbCBUcmFjZToKIGNoZWNrX2JvZ3VzX2FkZHJl c3MgbW0vdXNlcmNvcHkuYzoxNTMgW2lubGluZV0KIF9fY2hlY2tfb2JqZWN0X3NpemUrMHg1ZDkv MHg1ZDkgbW0vdXNlcmNvcHkuYzoyNTYKIGNoZWNrX29iamVjdF9zaXplIGluY2x1ZGUvbGludXgv dGhyZWFkX2luZm8uaDoxMDggW2lubGluZV0KIGNoZWNrX2NvcHlfc2l6ZSBpbmNsdWRlL2xpbnV4 L3RocmVhZF9pbmZvLmg6MTM5IFtpbmxpbmVdCiBjb3B5X2Zyb21faXRlcl9mdWxsIGluY2x1ZGUv bGludXgvdWlvLmg6MTIxIFtpbmxpbmVdCiBtZW1jcHlfZnJvbV9tc2cgaW5jbHVkZS9saW51eC9z a2J1ZmYuaDozMzA1IFtpbmxpbmVdCiBsbGNfdWlfc2VuZG1zZysweDRiMS8weDE1MzAgbmV0L2xs Yy9hZl9sbGMuYzo5NDEKIHNvY2tfc2VuZG1zZ19ub3NlYyBuZXQvc29ja2V0LmM6NjI5IFtpbmxp bmVdCiBzb2NrX3NlbmRtc2crMHhkNS8weDEyMCBuZXQvc29ja2V0LmM6NjM5CiBfX3N5c19zZW5k dG8rMHgzZDcvMHg2NzAgbmV0L3NvY2tldC5jOjE3ODkKIF9fZG9fc3lzX3NlbmR0byBuZXQvc29j a2V0LmM6MTgwMSBbaW5saW5lXQogX19zZV9zeXNfc2VuZHRvIG5ldC9zb2NrZXQuYzoxNzk3IFtp bmxpbmVdCiBfX3g2NF9zeXNfc2VuZHRvKzB4ZTEvMHgxYTAgbmV0L3NvY2tldC5jOjE3OTcKIGRv X3N5c2NhbGxfNjQrMHgxYjEvMHg4MDAgYXJjaC94ODYvZW50cnkvY29tbW9uLmM6Mjg3CiBlbnRy eV9TWVNDQUxMXzY0X2FmdGVyX2h3ZnJhbWUrMHg0OS8weGJlClJJUDogMDAzMzoweDQ1NTk3OQpS U1A6IDAwMmI6MDAwMDdmNTZhMTRhYmM2OCBFRkxBR1M6IDAwMDAwMjQ2IE9SSUdfUkFYOiAwMDAw MDAwMDAwMDAwMDJjClJBWDogZmZmZmZmZmZmZmZmZmZkYSBSQlg6IDAwMDA3ZjU2YTE0YWM2ZDQg UkNYOiAwMDAwMDAwMDAwNDU1OTc5ClJEWDogMDAwMDAwMDAwMDAwMDAwMCBSU0k6IDAwMDAwMDAw MjAwMDAwMDAgUkRJOiAwMDAwMDAwMDAwMDAwMDE4ClJCUDogMDAwMDAwMDAwMDcyYmVhMCBSMDg6 IDAwMDAwMDAwMjAwMDEyYzAgUjA5OiAwMDAwMDAwMDAwMDAwMDEwClIxMDogMDAwMDAwMDAwMDAw MDAwMCBSMTE6IDAwMDAwMDAwMDAwMDAyNDYgUjEyOiAwMDAwMDAwMGZmZmZmZmZmClIxMzogMDAw MDAwMDAwMDAwMDU0OCBSMTQ6IDAwMDAwMDAwMDA2ZmJmNjAgUjE1OiAwMDAwMDAwMDAwMDAwMDAw CkNvZGU6IDU1IGMwIGU4IGMwIDU1IGJiIGZmIGZmIDc1IGM4IDQ4IDhiIDU1IGMwIDRkIDg5IGY5 IGZmIDc1IGQwIDRkIDg5IGU4IDQ4IDg5IGQ5IDRjIDg5IGU2IDQxIDU2IDQ4IGM3IGM3IDgwIGZh IGQyIDg3IGU4IGEwIDBiIGEzIGZmIDwwZj4gMGIgZTggOTUgNTUgYmIgZmYgZTggYzAgYTggZjcg ZmYgOGIgOTUgMTQgZmYgZmYgZmYgNGQgODkgZTgKUklQOiB1c2VyY29weV9hYm9ydCsweGJiLzB4 YmQgbW0vdXNlcmNvcHkuYzo4OCBSU1A6IGZmZmY4ODAxODY4YmY4MDAKCkZpeGVzOiAxZGExNzdl NGMzZjQgKCJMaW51eC0yLjYuMTItcmMyIikKU2lnbmVkLW9mZi1ieTogRXJpYyBEdW1hemV0IDxl ZHVtYXpldEBnb29nbGUuY29tPgpSZXBvcnRlZC1ieTogc3l6Ym90IDxzeXprYWxsZXJAZ29vZ2xl Z3JvdXBzLmNvbT4KU2lnbmVkLW9mZi1ieTogRGF2aWQgUy4gTWlsbGVyIDxkYXZlbUBkYXZlbWxv ZnQubmV0PgotLS0KIG5ldC9sbGMvYWZfbGxjLmMgfCAzICsrKwogMSBmaWxlIGNoYW5nZWQsIDMg aW5zZXJ0aW9ucygrKQoKZGlmZiAtLWdpdCBhL25ldC9sbGMvYWZfbGxjLmMgYi9uZXQvbGxjL2Fm X2xsYy5jCmluZGV4IGNmNDFkOWI0YTBiOC4uYjQ5ZjVhZmFiNDA1IDEwMDY0NAotLS0gYS9uZXQv bGxjL2FmX2xsYy5jCisrKyBiL25ldC9sbGMvYWZfbGxjLmMKQEAgLTkzMCw2ICs5MzAsOSBAQCBz dGF0aWMgaW50IGxsY191aV9zZW5kbXNnKHN0cnVjdCBzb2NrZXQgKnNvY2ssIHN0cnVjdCBtc2do ZHIgKm1zZywgc2l6ZV90IGxlbikKIAlpZiAoc2l6ZSA+IGxsYy0+ZGV2LT5tdHUpCiAJCXNpemUg PSBsbGMtPmRldi0+bXR1OwogCWNvcGllZCA9IHNpemUgLSBoZHJsZW47CisJcmMgPSAtRUlOVkFM OworCWlmIChjb3BpZWQgPCAwKQorCQlnb3RvIHJlbGVhc2U7CiAJcmVsZWFzZV9zb2NrKHNrKTsK IAlza2IgPSBzb2NrX2FsbG9jX3NlbmRfc2tiKHNrLCBzaXplLCBub2Jsb2NrLCAmcmMpOwogCWxv Y2tfc29jayhzayk7Ci0tIAoyLjE0LjMKCgpGcm9tIDU1MWI3ODhlMDNkZDUzMDZjNzMxYjI1NDky MTU5Y2E2MTM2MjFkZDggTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCkZyb206ICJHdXN0YXZvIEEu IFIuIFNpbHZhIiA8Z3VzdGF2b0BlbWJlZGRlZG9yLmNvbT4KRGF0ZTogVGh1LCAzIE1heSAyMDE4 IDEzOjQ1OjU4IC0wNTAwClN1YmplY3Q6IFtQQVRDSCAwOC80MV0gbmV0OiBhdG06IEZpeCBwb3Rl bnRpYWwgU3BlY3RyZSB2MQoKWyBVcHN0cmVhbSBjb21taXQgYWNmNzg0YmQwY2UyNTdmZTQzZGE3 Y2EyNjZmN2ExMGI4Mzc0NzlkMiBdCgppb2NfZGF0YS5kZXZfbnVtIGNhbiBiZSBjb250cm9sbGVk IGJ5IHVzZXItc3BhY2UsIGhlbmNlIGxlYWRpbmcgdG8KYSBwb3RlbnRpYWwgZXhwbG9pdGF0aW9u IG9mIHRoZSBTcGVjdHJlIHZhcmlhbnQgMSB2dWxuZXJhYmlsaXR5LgoKVGhpcyBpc3N1ZSB3YXMg ZGV0ZWN0ZWQgd2l0aCB0aGUgaGVscCBvZiBTbWF0Y2g6Cm5ldC9hdG0vbGVjLmM6NzAyIGxlY192 Y2NfYXR0YWNoKCkgd2FybjogcG90ZW50aWFsIHNwZWN0cmUgaXNzdWUKJ2Rldl9sZWMnCgpGaXgg dGhpcyBieSBzYW5pdGl6aW5nIGlvY19kYXRhLmRldl9udW0gYmVmb3JlIHVzaW5nIGl0IHRvIGlu ZGV4CmRldl9sZWMuIEFsc28sIG5vdGljZSB0aGF0IHRoZXJlIGlzIGFub3RoZXIgaW5zdGFuY2Ug aW4gd2hpY2ggYXJyYXkKZGV2X2xlYyBpcyBiZWluZyBpbmRleGVkIHVzaW5nIGlvY19kYXRhLmRl dl9udW0gYXQgbGluZSA3MDU6CmxlY192Y2NfYWRkZWQobmV0ZGV2X3ByaXYoZGV2X2xlY1tpb2Nf ZGF0YS5kZXZfbnVtXSksCgpOb3RpY2UgdGhhdCBnaXZlbiB0aGF0IHNwZWN1bGF0aW9uIHdpbmRv d3MgYXJlIGxhcmdlLCB0aGUgcG9saWN5IGlzCnRvIGtpbGwgdGhlIHNwZWN1bGF0aW9uIG9uIHRo ZSBmaXJzdCBsb2FkIGFuZCBub3Qgd29ycnkgaWYgaXQgY2FuIGJlCmNvbXBsZXRlZCB3aXRoIGEg ZGVwZW5kZW50IGxvYWQvc3RvcmUgWzFdLgoKWzFdIGh0dHBzOi8vbWFyYy5pbmZvLz9sPWxpbnV4 LWtlcm5lbCZtPTE1MjQ0OTEzMTExNDc3OCZ3PTIKCkNjOiBzdGFibGVAdmdlci5rZXJuZWwub3Jn ClNpZ25lZC1vZmYtYnk6IEd1c3Rhdm8gQS4gUi4gU2lsdmEgPGd1c3Rhdm9AZW1iZWRkZWRvci5j b20+ClNpZ25lZC1vZmYtYnk6IERhdmlkIFMuIE1pbGxlciA8ZGF2ZW1AZGF2ZW1sb2Z0Lm5ldD4K LS0tCiBuZXQvYXRtL2xlYy5jIHwgOSArKysrKysrLS0KIDEgZmlsZSBjaGFuZ2VkLCA3IGluc2Vy dGlvbnMoKyksIDIgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvbmV0L2F0bS9sZWMuYyBiL25l dC9hdG0vbGVjLmMKaW5kZXggYTNkOTNhMWJiMTMzLi41NzQxYjY0NzRkZDkgMTAwNjQ0Ci0tLSBh L25ldC9hdG0vbGVjLmMKKysrIGIvbmV0L2F0bS9sZWMuYwpAQCAtNDEsNiArNDEsOSBAQCBzdGF0 aWMgdW5zaWduZWQgY2hhciBicmlkZ2VfdWxhX2xlY1tdID0geyAweDAxLCAweDgwLCAweGMyLCAw eDAwLCAweDAwIH07CiAjaW5jbHVkZSA8bGludXgvbW9kdWxlLmg+CiAjaW5jbHVkZSA8bGludXgv aW5pdC5oPgogCisvKiBIYXJkZW5pbmcgZm9yIFNwZWN0cmUtdjEgKi8KKyNpbmNsdWRlIDxsaW51 eC9ub3NwZWMuaD4KKwogI2luY2x1ZGUgImxlYy5oIgogI2luY2x1ZGUgImxlY19hcnBjLmgiCiAj aW5jbHVkZSAicmVzb3VyY2VzLmgiCkBAIC02ODcsOCArNjkwLDEwIEBAIHN0YXRpYyBpbnQgbGVj X3ZjY19hdHRhY2goc3RydWN0IGF0bV92Y2MgKnZjYywgdm9pZCBfX3VzZXIgKmFyZykKIAlieXRl c19sZWZ0ID0gY29weV9mcm9tX3VzZXIoJmlvY19kYXRhLCBhcmcsIHNpemVvZihzdHJ1Y3QgYXRt bGVjX2lvYykpOwogCWlmIChieXRlc19sZWZ0ICE9IDApCiAJCXByX2luZm8oImNvcHkgZnJvbSB1 c2VyIGZhaWxlZCBmb3IgJWQgYnl0ZXNcbiIsIGJ5dGVzX2xlZnQpOwotCWlmIChpb2NfZGF0YS5k ZXZfbnVtIDwgMCB8fCBpb2NfZGF0YS5kZXZfbnVtID49IE1BWF9MRUNfSVRGIHx8Ci0JICAgICFk ZXZfbGVjW2lvY19kYXRhLmRldl9udW1dKQorCWlmIChpb2NfZGF0YS5kZXZfbnVtIDwgMCB8fCBp b2NfZGF0YS5kZXZfbnVtID49IE1BWF9MRUNfSVRGKQorCQlyZXR1cm4gLUVJTlZBTDsKKwlpb2Nf ZGF0YS5kZXZfbnVtID0gYXJyYXlfaW5kZXhfbm9zcGVjKGlvY19kYXRhLmRldl9udW0sIE1BWF9M RUNfSVRGKTsKKwlpZiAoIWRldl9sZWNbaW9jX2RhdGEuZGV2X251bV0pCiAJCXJldHVybiAtRUlO VkFMOwogCXZwcml2ID0ga21hbGxvYyhzaXplb2Yoc3RydWN0IGxlY192Y2NfcHJpdiksIEdGUF9L RVJORUwpOwogCWlmICghdnByaXYpCi0tIAoyLjE0LjMKCgpGcm9tIGFkYzMxNWUyOTZkNGQ5YWJk NTVjOGUxYzEyMTNiOTNiNWJjNmY2NzYgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCkZyb206IFJv YiBUYWdsYW5nIDxyb2JAdGFnbGFuZy5pbz4KRGF0ZTogVGh1LCAzIE1heSAyMDE4IDE3OjEzOjA2 IC0wNDAwClN1YmplY3Q6IFtQQVRDSCAwOS80MV0gbmV0OiBldGhlcm5ldDogc3VuOiBuaXUgc2V0 IGNvcnJlY3QgcGFja2V0IHNpemUgaW4gc2tiCgpbIFVwc3RyZWFtIGNvbW1pdCAxNDIyNDkyM2Mz NjAwYmFlMmFjNGRjYWUzYmYwYzNkNGRjMjgxMmJlIF0KCkN1cnJlbnRseSwgc2tiLT5sZW4gYW5k IHNrYi0+ZGF0YV9sZW4gYXJlIHNldCB0byB0aGUgcGFnZSBzaXplLCBub3QKdGhlIHBhY2tldCBz aXplLiBUaGlzIGNhdXNlcyB0aGUgZnJhbWUgY2hlY2sgc2VxdWVuY2UgdG8gbm90IGJlCmxvY2F0 ZWQgYXQgdGhlICJlbmQiIG9mIHRoZSBwYWNrZXQgcmVzdWx0aW5nIGluIGV0aGVybmV0IGZyYW1l IGNoZWNrCmVycm9ycy4gVGhlIGRyaXZlciBkb2VzIHdvcmsgY3VycmVudGx5LCBidXQgc3RyaWN0 ZXIga2VybmVsIGZhY2luZwpuZXR3b3JraW5nIHNvbHV0aW9ucyBsaWtlIE9wZW5WU3dpdGNoIHdp bGwgZHJvcCB0aGVzZSBwYWNrZXRzIGFzCmludmFsaWQuCgpUaGVzZSBjaGFuZ2VzIHNldCB0aGUg cGFja2V0IHNpemUgY29ycmVjdGx5IHNvIHRoYXQgdGhlc2UgZXJyb3JzIG5vCmxvbmdlciBvY2N1 ci4gVGhlIGxlbmd0aCBkb2VzIG5vdCBpbmNsdWRlIHRoZSBmcmFtZSBjaGVjayBzZXF1ZW5jZSwg c28KdGhhdCBzdWJ0cmFjdGlvbiB3YXMgcmVtb3ZlZC4KClRlc3RlZCBvbiBPcmFjbGUvU1VOIE11 bHRpdGhyZWFkZWQgMTAtR2lnYWJpdCBFdGhlcm5ldCBOZXR3b3JrCkNvbnRyb2xsZXIgWzEwOGU6 YWJjZF0gYW5kIHZhbGlkYXRlZCBpbiB3aXJlc2hhcmsuCgpTaWduZWQtb2ZmLWJ5OiBSb2IgVGFn bGFuZyA8cm9iQHRhZ2xhbmcuaW8+ClNpZ25lZC1vZmYtYnk6IERhdmlkIFMuIE1pbGxlciA8ZGF2 ZW1AZGF2ZW1sb2Z0Lm5ldD4KLS0tCiBkcml2ZXJzL25ldC9ldGhlcm5ldC9zdW4vbml1LmMgfCA1 ICsrLS0tCiAxIGZpbGUgY2hhbmdlZCwgMiBpbnNlcnRpb25zKCspLCAzIGRlbGV0aW9ucygtKQoK ZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L2V0aGVybmV0L3N1bi9uaXUuYyBiL2RyaXZlcnMvbmV0 L2V0aGVybmV0L3N1bi9uaXUuYwppbmRleCA2YTRlOGUxYmJkOTAuLmU5MmY0MWQyMGEyYyAxMDA2 NDQKLS0tIGEvZHJpdmVycy9uZXQvZXRoZXJuZXQvc3VuL25pdS5jCisrKyBiL2RyaXZlcnMvbmV0 L2V0aGVybmV0L3N1bi9uaXUuYwpAQCAtMzQ0Miw3ICszNDQyLDcgQEAgc3RhdGljIGludCBuaXVf cHJvY2Vzc19yeF9wa3Qoc3RydWN0IG5hcGlfc3RydWN0ICpuYXBpLCBzdHJ1Y3Qgbml1ICpucCwK IAogCQlsZW4gPSAodmFsICYgUkNSX0VOVFJZX0wyX0xFTikgPj4KIAkJCVJDUl9FTlRSWV9MMl9M RU5fU0hJRlQ7Ci0JCWxlbiAtPSBFVEhfRkNTX0xFTjsKKwkJYXBwZW5kX3NpemUgPSBsZW4gKyBF VEhfSExFTiArIEVUSF9GQ1NfTEVOOwogCiAJCWFkZHIgPSAodmFsICYgUkNSX0VOVFJZX1BLVF9C VUZfQUREUikgPDwKIAkJCVJDUl9FTlRSWV9QS1RfQlVGX0FERFJfU0hJRlQ7CkBAIC0zNDUyLDcg KzM0NTIsNiBAQCBzdGF0aWMgaW50IG5pdV9wcm9jZXNzX3J4X3BrdChzdHJ1Y3QgbmFwaV9zdHJ1 Y3QgKm5hcGksIHN0cnVjdCBuaXUgKm5wLAogCQkJCQkgUkNSX0VOVFJZX1BLVEJVRlNaX1NISUZU XTsKIAogCQlvZmYgPSBhZGRyICYgflBBR0VfTUFTSzsKLQkJYXBwZW5kX3NpemUgPSByY3Jfc2l6 ZTsKIAkJaWYgKG51bV9yY3IgPT0gMSkgewogCQkJaW50IHB0eXBlOwogCkBAIC0zNDY1LDcgKzM0 NjQsNyBAQCBzdGF0aWMgaW50IG5pdV9wcm9jZXNzX3J4X3BrdChzdHJ1Y3QgbmFwaV9zdHJ1Y3Qg Km5hcGksIHN0cnVjdCBuaXUgKm5wLAogCQkJZWxzZQogCQkJCXNrYl9jaGVja3N1bV9ub25lX2Fz c2VydChza2IpOwogCQl9IGVsc2UgaWYgKCEodmFsICYgUkNSX0VOVFJZX01VTFRJKSkKLQkJCWFw cGVuZF9zaXplID0gbGVuIC0gc2tiLT5sZW47CisJCQlhcHBlbmRfc2l6ZSA9IGFwcGVuZF9zaXpl IC0gc2tiLT5sZW47CiAKIAkJbml1X3J4X3NrYl9hcHBlbmQoc2tiLCBwYWdlLCBvZmYsIGFwcGVu ZF9zaXplLCByY3Jfc2l6ZSk7CiAJCWlmICgocGFnZS0+aW5kZXggKyBycC0+cmJyX2Jsb2NrX3Np emUpIC0gcmNyX3NpemUgPT0gYWRkcikgewotLSAKMi4xNC4zCgoKRnJvbSBhYTExZmQ2MGQzZDEw NTA1MzQ4ODUyZmNjNWU3MTQzMTg1Yjk1MDYzIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9t OiBHcnlnb3JpaSBTdHJhc2hrbyA8Z3J5Z29yaWkuc3RyYXNoa29AdGkuY29tPgpEYXRlOiBUdWUs IDEgTWF5IDIwMTggMTI6NDE6MjIgLTA1MDAKU3ViamVjdDogW1BBVENIIDEwLzQxXSBuZXQ6IGV0 aGVybmV0OiB0aTogY3BzdzogZml4IHBhY2tldCBsZWFraW5nIGluIGR1YWxfbWFjCiBtb2RlCgpb IFVwc3RyZWFtIGNvbW1pdCA1ZTVhZGQxNzJlYTgxMTUyZDUxOGIxNjFlYzU3MDY1MDNhZDNkNzk5 IF0KCkluIGR1YWxfbWFjIG1vZGUgcGFja2V0cyBhcnJpdmVkIG9uIG9uZSBwb3J0IHNob3VsZCBu b3QgYmUgZm9yd2FyZGVkIGJ5CnN3aXRjaCBodyB0byBhbm90aGVyIHBvcnQuIE9ubHkgTGludXgg SG9zdCBjYW4gZm9yd2FyZCBwYWNrZXRzIGJldHdlZW4KcG9ydHMuIFRoZSBiZWxvdyB0ZXN0IGNh c2UgKHJlcG9ydGVkIGluIFsxXSkgc2hvd3MgdGhhdCBwYWNrZXQgYXJyaXZlZCBvbgpvbmUgcG9y dCBjYW4gYmUgbGVha2VkIHRvIGFub3RlciAocmVwcm9kdWNpYmxlIHdpdGggZHVhbCBwb3J0IGV2 bXMpOgogLSBjb25uZWN0IHBvcnQgMSAoZXRoMCkgdG8gbGludXggSG9zdCAwIGFuZCBydW4gdGNw ZHVtcCBvciBXaXJlc2hhcmsKIC0gY29ubmVjdCBwb3J0IDIgKGV0aDEpIHRvIGxpbnV4IEhvc3Qg MSB3aXRoIHZsYW4gMSBjb25maWd1cmVkCiAtIHBpbmcgPElQeD4gZnJvbSBIb3N0IDEgdGhyb3Vn aCB2bGFuIDEgaW50ZXJmYWNlLgpBUlAgcGFja2V0cyB3aWxsIGJlIHNlZW4gb24gSG9zdCAwLgoK SXNzdWUgaGFwcGVucyBiZWNhdXNlIGR1YWxfbWFjIG1vZGUgaXMgaW1wbGVtbnRlZCB1c2luZyB0 d28gdmxhbnM6IDEgKFBvcnQKMStQb3J0IDApIGFuZCAyIChQb3J0IDIrUG9ydCAwKSwgc28gdGhl cmUgYXJlIHZsYW4gcmVjb3JkcyBjcmVhdGVkIGZvciBmb3IKZWFjaCB2bGFuLiBCeSBkZWZhdWx0 LCB0aGUgQUxFIHdpbGwgZmluZCB2YWxpZCB2bGFuIHJlY29yZCBpbiBpdHMgdGFibGUKd2hlbiB2 bGFuIDEgdGFnZ2VkIHBhY2tldCBhcnJpdmVkIG9uIFBvcnQgMiBhbmQgc28gZm9yd2FyZHMgcGFj a2V0IHRvIGFsbApwb3J0cyB3aGljaCBhcmUgdmxhbiAxIG1lbWJlcnMgKGxpa2UgUG9ydC4KClRv IGF2b2lkIHN1Y2ggYmVoYXZpb3JyIHRoZSBBTEUgVkxBTiBJRCBJbmdyZXNzIENoZWNrIG5lZWQg dG8gYmUgZW5hYmxlZApmb3IgZWFjaCBleHRlcm5hbCBDUFNXIHBvcnQgKEFMRV9QT1JUQ1RMbi5W SURfSU5HUkVTU19DSEVDSykgc28gQUxFIHdpbGwKZHJvcCBpbmdyZXNzIHBhY2tldHMgaWYgUngg cG9ydCBpcyBub3QgVkxBTiBtZW1iZXIuCgpTaWduZWQtb2ZmLWJ5OiBHcnlnb3JpaSBTdHJhc2hr byA8Z3J5Z29yaWkuc3RyYXNoa29AdGkuY29tPgpTaWduZWQtb2ZmLWJ5OiBEYXZpZCBTLiBNaWxs ZXIgPGRhdmVtQGRhdmVtbG9mdC5uZXQ+Ci0tLQogZHJpdmVycy9uZXQvZXRoZXJuZXQvdGkvY3Bz dy5jIHwgMiArKwogMSBmaWxlIGNoYW5nZWQsIDIgaW5zZXJ0aW9ucygrKQoKZGlmZiAtLWdpdCBh L2RyaXZlcnMvbmV0L2V0aGVybmV0L3RpL2Nwc3cuYyBiL2RyaXZlcnMvbmV0L2V0aGVybmV0L3Rp L2Nwc3cuYwppbmRleCA5OTJjNDNiMTg2OGYuLjhjYjQ0ZWFiYzI4MyAxMDA2NDQKLS0tIGEvZHJp dmVycy9uZXQvZXRoZXJuZXQvdGkvY3Bzdy5jCisrKyBiL2RyaXZlcnMvbmV0L2V0aGVybmV0L3Rp L2Nwc3cuYwpAQCAtMTI2MCw2ICsxMjYwLDggQEAgc3RhdGljIGlubGluZSB2b2lkIGNwc3dfYWRk X2R1YWxfZW1hY19kZWZfYWxlX2VudHJpZXMoCiAJY3Bzd19hbGVfYWRkX3VjYXN0KGNwc3ctPmFs ZSwgcHJpdi0+bWFjX2FkZHIsCiAJCQkgICBIT1NUX1BPUlRfTlVNLCBBTEVfVkxBTiB8CiAJCQkg ICBBTEVfU0VDVVJFLCBzbGF2ZS0+cG9ydF92bGFuKTsKKwljcHN3X2FsZV9jb250cm9sX3NldChj cHN3LT5hbGUsIHNsYXZlX3BvcnQsCisJCQkgICAgIEFMRV9QT1JUX0RST1BfVU5LTk9XTl9WTEFO LCAxKTsKIH0KIAogc3RhdGljIHZvaWQgc29mdF9yZXNldF9zbGF2ZShzdHJ1Y3QgY3Bzd19zbGF2 ZSAqc2xhdmUpCi0tIAoyLjE0LjMKCgpGcm9tIGZhZjVhM2QwNjc3ZWRhMjQxNTVjZmQ3ZGI2NjNm NzkzNGE0YTczODMgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCkZyb206IENocmlzdG9waGUgSkFJ TExFVCA8Y2hyaXN0b3BoZS5qYWlsbGV0QHdhbmFkb28uZnI+CkRhdGU6IFRodSwgMTAgTWF5IDIw MTggMDk6MDY6MDQgKzAyMDAKU3ViamVjdDogW1BBVENIIDExLzQxXSBuZXQvbWx4NF9lbjogRml4 IGFuIGVycm9yIGhhbmRsaW5nIHBhdGggaW4KICdtbHg0X2VuX2luaXRfbmV0ZGV2KCknCgpbIFVw c3RyZWFtIGNvbW1pdCBhNTc3ZDg2OGI3NjhhM2JhZjE2Y2RkNDg0MWFiOGNmYjE2NTUyMWQ2IF0K CklmIGFuIGVycm9yIG9jY3VycywgJ21seDRfZW5fZGVzdHJveV9uZXRkZXYoKScgaXMgY2FsbGVk LgpJdCB0aGVuIGNhbGxzICdtbHg0X2VuX2ZyZWVfcmVzb3VyY2VzKCknIHdoaWNoIGRvZXMgdGhl IG5lZWRlZCByZXNvdXJjZXMKY2xlYW51cC4KClNvLCBkb2luZyBzb21lIGV4cGxpY2l0IGtmcmVl IGluIHRoZSBlcnJvciBoYW5kbGluZyBwYXRoIHdvdWxkIGxlYWQgdG8Kc29tZSBkb3VibGUga2Zy ZWUuCgpTaW1wbGlmeSBjb2RlIHRvIGF2b2lkIHN1Y2ggYSBjYXNlLgoKRml4ZXM6IDY3ZjhiMWRj YjllZSAoIm5ldC9tbHg0X2VuOiBSZWZhY3RvciB0aGUgWERQIGZvcndhcmRpbmcgcmluZ3Mgc2No ZW1lIikKU2lnbmVkLW9mZi1ieTogQ2hyaXN0b3BoZSBKQUlMTEVUIDxjaHJpc3RvcGhlLmphaWxs ZXRAd2FuYWRvby5mcj4KUmV2aWV3ZWQtYnk6IFRhcmlxIFRvdWthbiA8dGFyaXF0QG1lbGxhbm94 LmNvbT4KU2lnbmVkLW9mZi1ieTogRGF2aWQgUy4gTWlsbGVyIDxkYXZlbUBkYXZlbWxvZnQubmV0 PgotLS0KIGRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDQvZW5fbmV0ZGV2LmMgfCA4 ICstLS0tLS0tCiAxIGZpbGUgY2hhbmdlZCwgMSBpbnNlcnRpb24oKyksIDcgZGVsZXRpb25zKC0p CgpkaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NC9lbl9uZXRk ZXYuYyBiL2RyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDQvZW5fbmV0ZGV2LmMKaW5k ZXggYzA5N2VlZjQxYTljLi5mYWE0YmQyMWYxNDggMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvbmV0L2V0 aGVybmV0L21lbGxhbm94L21seDQvZW5fbmV0ZGV2LmMKKysrIGIvZHJpdmVycy9uZXQvZXRoZXJu ZXQvbWVsbGFub3gvbWx4NC9lbl9uZXRkZXYuYwpAQCAtMzMxOCwxMiArMzMxOCwxMSBAQCBpbnQg bWx4NF9lbl9pbml0X25ldGRldihzdHJ1Y3QgbWx4NF9lbl9kZXYgKm1kZXYsIGludCBwb3J0LAog CQkJCQkgICBNQVhfVFhfUklOR1MsIEdGUF9LRVJORUwpOwogCQlpZiAoIXByaXYtPnR4X3Jpbmdb dF0pIHsKIAkJCWVyciA9IC1FTk9NRU07Ci0JCQlnb3RvIGVycl9mcmVlX3R4OworCQkJZ290byBv dXQ7CiAJCX0KIAkJcHJpdi0+dHhfY3FbdF0gPSBremFsbG9jKHNpemVvZihzdHJ1Y3QgbWx4NF9l bl9jcSAqKSAqCiAJCQkJCSBNQVhfVFhfUklOR1MsIEdGUF9LRVJORUwpOwogCQlpZiAoIXByaXYt PnR4X2NxW3RdKSB7Ci0JCQlrZnJlZShwcml2LT50eF9yaW5nW3RdKTsKIAkJCWVyciA9IC1FTk9N RU07CiAJCQlnb3RvIG91dDsKIAkJfQpAQCAtMzU3NiwxMSArMzU3NSw2IEBAIGludCBtbHg0X2Vu X2luaXRfbmV0ZGV2KHN0cnVjdCBtbHg0X2VuX2RldiAqbWRldiwgaW50IHBvcnQsCiAKIAlyZXR1 cm4gMDsKIAotZXJyX2ZyZWVfdHg6Ci0Jd2hpbGUgKHQtLSkgewotCQlrZnJlZShwcml2LT50eF9y aW5nW3RdKTsKLQkJa2ZyZWUocHJpdi0+dHhfY3FbdF0pOwotCX0KIG91dDoKIAltbHg0X2VuX2Rl c3Ryb3lfbmV0ZGV2KGRldik7CiAJcmV0dXJuIGVycjsKLS0gCjIuMTQuMwoKCkZyb20gMzE3OWJj MmY1YTQ2MGQwZjVlODU2NGY4MGM0OTkyOGNiNWJhYmVjNSBNb24gU2VwIDE3IDAwOjAwOjAwIDIw MDEKRnJvbTogTW9zaGUgU2hlbWVzaCA8bW9zaGVAbWVsbGFub3guY29tPgpEYXRlOiBXZWQsIDkg TWF5IDIwMTggMTg6MzU6MTMgKzAzMDAKU3ViamVjdDogW1BBVENIIDEyLzQxXSBuZXQvbWx4NF9l bjogVmVyaWZ5IGNvYWxlc2NpbmcgcGFyYW1ldGVycyBhcmUgaW4gcmFuZ2UKClsgVXBzdHJlYW0g Y29tbWl0IDZhZDRlOTFjNmQ3OTZiMzhhN2YwZTcyNGRiMWRlMjhlZWIxMjJiYWQgXQoKQWRkIGNo ZWNrIG9mIGNvYWxlc2NpbmcgcGFyYW1ldGVycyByZWNlaXZlZCB0aHJvdWdoIGV0aHRvb2wgYXJl IHdpdGhpbgpyYW5nZSBvZiB2YWx1ZXMgc3VwcG9ydGVkIGJ5IHRoZSBIVy4KRHJpdmVyIGdldHMg dGhlIGNvYWxlc2NpbmcgcngvdHgtdXNlY3MgYW5kIHJ4L3R4LWZyYW1lcyBhcyBzZXQgYnkgdGhl CnVzZXJzIHRocm91Z2ggZXRodG9vbC4gVGhlIGV0aHRvb2wgc3VwcG9ydCB1cCB0byAzMiBiaXQg dmFsdWUgZm9yIGVhY2guCkhvd2V2ZXIsIG1seDQgbW9kaWZ5IGNxIGxpbWl0cyB0aGUgY29hbGVz Y2luZyB0aW1lIHBhcmFtZXRlciBhbmQKY29hbGVzY2luZyBmcmFtZXMgcGFyYW1ldGVycyB0byAx NiBiaXRzLgpSZXR1cm4gb3V0IG9mIHJhbmdlIGVycm9yIGlmIHVzZXIgdHJpZXMgdG8gc2V0IHRo ZXNlIHBhcmFtZXRlcnMgdG8KaGlnaGVyIHZhbHVlcy4KQ2hhbmdlIHR5cGUgb2Ygc2FtcGxlLWlu dGVydmFsIGFuZCBhZGFwdGl2ZV9yeF9jb2FsIHBhcmFtZXRlcnMgaW4gbWx4NApkcml2ZXIgdG8g dTMyIGFzIHRoZSBldGh0b29sIGhvbGRzIHRoZW0gYXMgdTMyIGFuZCB0aGVzZSBwYXJhbWV0ZXJz IGFyZQpub3QgbGltaXRlZCBkdWUgdG8gbWx4NCBIVy4KCkZpeGVzOiBjMjdhMDJjZDk0ZDYgKCdt bHg0X2VuOiBBZGQgZHJpdmVyIGZvciBNZWxsYW5veCBDb25uZWN0WCAxMEdiRSBOSUMnKQpTaWdu ZWQtb2ZmLWJ5OiBNb3NoZSBTaGVtZXNoIDxtb3NoZUBtZWxsYW5veC5jb20+ClNpZ25lZC1vZmYt Ynk6IFRhcmlxIFRvdWthbiA8dGFyaXF0QG1lbGxhbm94LmNvbT4KU2lnbmVkLW9mZi1ieTogRGF2 aWQgUy4gTWlsbGVyIDxkYXZlbUBkYXZlbWxvZnQubmV0PgotLS0KIGRyaXZlcnMvbmV0L2V0aGVy bmV0L21lbGxhbm94L21seDQvZW5fZXRodG9vbC5jIHwgMTYgKysrKysrKysrKysrKysrKwogZHJp dmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NC9tbHg0X2VuLmggICAgfCAgNyArKysrKy0t CiAyIGZpbGVzIGNoYW5nZWQsIDIxIGluc2VydGlvbnMoKyksIDIgZGVsZXRpb25zKC0pCgpkaWZm IC0tZ2l0IGEvZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NC9lbl9ldGh0b29sLmMg Yi9kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg0L2VuX2V0aHRvb2wuYwppbmRleCA2 N2Y3NGZjYjI2NWUuLjVmZTU2ZGM0Y2ZhZSAxMDA2NDQKLS0tIGEvZHJpdmVycy9uZXQvZXRoZXJu ZXQvbWVsbGFub3gvbWx4NC9lbl9ldGh0b29sLmMKKysrIGIvZHJpdmVycy9uZXQvZXRoZXJuZXQv bWVsbGFub3gvbWx4NC9lbl9ldGh0b29sLmMKQEAgLTEwMTMsNiArMTAxMywyMiBAQCBzdGF0aWMg aW50IG1seDRfZW5fc2V0X2NvYWxlc2NlKHN0cnVjdCBuZXRfZGV2aWNlICpkZXYsCiAJaWYgKCFj b2FsLT50eF9tYXhfY29hbGVzY2VkX2ZyYW1lc19pcnEpCiAJCXJldHVybiAtRUlOVkFMOwogCisJ aWYgKGNvYWwtPnR4X2NvYWxlc2NlX3VzZWNzID4gTUxYNF9FTl9NQVhfQ09BTF9USU1FIHx8CisJ ICAgIGNvYWwtPnJ4X2NvYWxlc2NlX3VzZWNzID4gTUxYNF9FTl9NQVhfQ09BTF9USU1FIHx8CisJ ICAgIGNvYWwtPnJ4X2NvYWxlc2NlX3VzZWNzX2xvdyA+IE1MWDRfRU5fTUFYX0NPQUxfVElNRSB8 fAorCSAgICBjb2FsLT5yeF9jb2FsZXNjZV91c2Vjc19oaWdoID4gTUxYNF9FTl9NQVhfQ09BTF9U SU1FKSB7CisJCW5ldGRldl9pbmZvKGRldiwgIiVzOiBtYXhpbXVtIGNvYWxlc2NlIHRpbWUgc3Vw cG9ydGVkIGlzICVkIHVzZWNzXG4iLAorCQkJICAgIF9fZnVuY19fLCBNTFg0X0VOX01BWF9DT0FM X1RJTUUpOworCQlyZXR1cm4gLUVSQU5HRTsKKwl9CisKKwlpZiAoY29hbC0+dHhfbWF4X2NvYWxl c2NlZF9mcmFtZXMgPiBNTFg0X0VOX01BWF9DT0FMX1BLVFMgfHwKKwkgICAgY29hbC0+cnhfbWF4 X2NvYWxlc2NlZF9mcmFtZXMgPiBNTFg0X0VOX01BWF9DT0FMX1BLVFMpIHsKKwkJbmV0ZGV2X2lu Zm8oZGV2LCAiJXM6IG1heGltdW0gY29hbGVzY2VkIGZyYW1lcyBzdXBwb3J0ZWQgaXMgJWRcbiIs CisJCQkgICAgX19mdW5jX18sIE1MWDRfRU5fTUFYX0NPQUxfUEtUUyk7CisJCXJldHVybiAtRVJB TkdFOworCX0KKwogCXByaXYtPnJ4X2ZyYW1lcyA9IChjb2FsLT5yeF9tYXhfY29hbGVzY2VkX2Zy YW1lcyA9PQogCQkJICAgTUxYNF9FTl9BVVRPX0NPTkYpID8KIAkJCQlNTFg0X0VOX1JYX0NPQUxf VEFSR0VUIDoKZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDQv bWx4NF9lbi5oIGIvZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NC9tbHg0X2VuLmgK aW5kZXggMmMxYTVmZjZhY2ZhLi4wOWY0NzY0YTNmMzkgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvbmV0 L2V0aGVybmV0L21lbGxhbm94L21seDQvbWx4NF9lbi5oCisrKyBiL2RyaXZlcnMvbmV0L2V0aGVy bmV0L21lbGxhbm94L21seDQvbWx4NF9lbi5oCkBAIC0xMzEsNiArMTMxLDkgQEAKICNkZWZpbmUg TUxYNF9FTl9UWF9DT0FMX1BLVFMJMTYKICNkZWZpbmUgTUxYNF9FTl9UWF9DT0FMX1RJTUUJMHgx MAogCisjZGVmaW5lIE1MWDRfRU5fTUFYX0NPQUxfUEtUUwlVMTZfTUFYCisjZGVmaW5lIE1MWDRf RU5fTUFYX0NPQUxfVElNRQlVMTZfTUFYCisKICNkZWZpbmUgTUxYNF9FTl9SWF9SQVRFX0xPVwkJ NDAwMDAwCiAjZGVmaW5lIE1MWDRfRU5fUlhfQ09BTF9USU1FX0xPVwkwCiAjZGVmaW5lIE1MWDRf RU5fUlhfUkFURV9ISUdICQk0NTAwMDAKQEAgLTU0Nyw4ICs1NTAsOCBAQCBzdHJ1Y3QgbWx4NF9l bl9wcml2IHsKIAl1MTYgcnhfdXNlY3NfbG93OwogCXUzMiBwa3RfcmF0ZV9oaWdoOwogCXUxNiBy eF91c2Vjc19oaWdoOwotCXUxNiBzYW1wbGVfaW50ZXJ2YWw7Ci0JdTE2IGFkYXB0aXZlX3J4X2Nv YWw7CisJdTMyIHNhbXBsZV9pbnRlcnZhbDsKKwl1MzIgYWRhcHRpdmVfcnhfY29hbDsKIAl1MzIg bXNnX2VuYWJsZTsKIAl1MzIgbG9vcGJhY2tfb2s7CiAJdTMyIHZhbGlkYXRlX2xvb3BiYWNrOwot LSAKMi4xNC4zCgoKRnJvbSA5YzFlOTVjMjAzZjg0ODg0NDE1MmMzMDQzNjYxZjU3M2YzODkzYjQ4 IE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBSb2kgRGF5YW4gPHJvaWRAbWVsbGFub3gu Y29tPgpEYXRlOiBUaHUsIDIyIE1hciAyMDE4IDE4OjUxOjM3ICswMjAwClN1YmplY3Q6IFtQQVRD SCAxMy80MV0gbmV0L21seDVlOiBFcnIgaWYgYXNrZWQgdG8gb2ZmbG9hZCBUQyBtYXRjaCBvbiBm cmFnCiBiZWluZyBmaXJzdAoKWyBVcHN0cmVhbSBjb21taXQgZjg1OTAwYzNlMTNmZGI2MWYwNDBj OWZlZWNiY2RhNjAxZTBjZGNmYiBdCgpUaGUgSFcgZG9lc24ndCBzdXBwb3J0IG1hdGNoaW5nIG9u IGZyYWcgZmlyc3QvbGF0ZXIsIHJldHVybiBlcnJvciBpZiB3ZSBhcmUKYXNrZWQgdG8gb2ZmbG9h ZCB0aGF0LgoKRml4ZXM6IDNmN2QwZWI0MmQ1OSAoIm5ldC9tbHg1ZTogT2ZmbG9hZCBUQyBtYXRj aGluZyBvbiBwYWNrZXRzIGJlaW5nIElQIGZyYWdtZW50cyIpClNpZ25lZC1vZmYtYnk6IFJvaSBE YXlhbiA8cm9pZEBtZWxsYW5veC5jb20+ClJldmlld2VkLWJ5OiBPciBHZXJsaXR6IDxvZ2VybGl0 ekBtZWxsYW5veC5jb20+ClNpZ25lZC1vZmYtYnk6IFNhZWVkIE1haGFtZWVkIDxzYWVlZG1AbWVs bGFub3guY29tPgotLS0KIGRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9l bl90Yy5jIHwgNCArKysrCiAxIGZpbGUgY2hhbmdlZCwgNCBpbnNlcnRpb25zKCspCgpkaWZmIC0t Z2l0IGEvZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2VuX3RjLmMgYi9k cml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvZW5fdGMuYwppbmRleCA0MmJh YjczYTlmNDAuLjU5ODc1NTUyOTgxNSAxMDA2NDQKLS0tIGEvZHJpdmVycy9uZXQvZXRoZXJuZXQv bWVsbGFub3gvbWx4NS9jb3JlL2VuX3RjLmMKKysrIGIvZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVs bGFub3gvbWx4NS9jb3JlL2VuX3RjLmMKQEAgLTc4MCw2ICs3ODAsMTAgQEAgc3RhdGljIGludCBf X3BhcnNlX2Nsc19mbG93ZXIoc3RydWN0IG1seDVlX3ByaXYgKnByaXYsCiAJCQkJCQkgIGYtPm1h c2spOwogCQlhZGRyX3R5cGUgPSBrZXktPmFkZHJfdHlwZTsKIAorCQkvKiB0aGUgSFcgZG9lc24n dCBzdXBwb3J0IGZyYWcgZmlyc3QvbGF0ZXIgKi8KKwkJaWYgKG1hc2stPmZsYWdzICYgRkxPV19E SVNfRklSU1RfRlJBRykKKwkJCXJldHVybiAtRU9QTk9UU1VQUDsKKwogCQlpZiAobWFzay0+Zmxh Z3MgJiBGTE9XX0RJU19JU19GUkFHTUVOVCkgewogCQkJTUxYNV9TRVQoZnRlX21hdGNoX3NldF9s eXJfMl80LCBoZWFkZXJzX2MsIGZyYWcsIDEpOwogCQkJTUxYNV9TRVQoZnRlX21hdGNoX3NldF9s eXJfMl80LCBoZWFkZXJzX3YsIGZyYWcsCi0tIAoyLjE0LjMKCgpGcm9tIGI1MmY3OGFmOTMzYzdi YTBiN2NmYzNmNGQyZTg0ZWI2MmVmNmYxZTMgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCkZyb206 IEFkaSBOaXNzaW0gPGFkaW5AbWVsbGFub3guY29tPgpEYXRlOiBXZWQsIDI1IEFwciAyMDE4IDEx OjIxOjMyICswMzAwClN1YmplY3Q6IFtQQVRDSCAxNC80MV0gbmV0L21seDU6IEUtU3dpdGNoLCBJ bmNsdWRlIFZGIFJETUEgc3RhdHMgaW4gdnBvcnQKIHN0YXRpc3RpY3MKClsgVXBzdHJlYW0gY29t bWl0IDg4ZDcyNWJiYjQzY2Q2M2E0MGM4ZWY3MGRkMzczZjFkMzhlYWQyZTMgXQoKVGhlIGhvc3Qg c2lkZSByZXBvcnRpbmcgb2YgVkYgdnBvcnQgc3RhdGlzdGljcyBkaWRuJ3QgaW5jbHVkZSB0aGUg VkYKUkRNQSB0cmFmZmljLgoKRml4ZXM6IDNiNzUxYTJhNDE4YSAoIm5ldC9tbHg1OiBFLVN3aXRj aCwgSW50cm9kdWNlIGdldCB2ZiBzdGF0aXN0aWNzIikKU2lnbmVkLW9mZi1ieTogQWRpIE5pc3Np bSA8YWRpbkBtZWxsYW5veC5jb20+ClJlcG9ydGVkLWJ5OiBBcmllbCBBbG1vZyA8YXJpZWxhQG1l bGxhbm94LmNvbT4KUmV2aWV3ZWQtYnk6IE9yIEdlcmxpdHogPG9nZXJsaXR6QG1lbGxhbm94LmNv bT4KU2lnbmVkLW9mZi1ieTogU2FlZWQgTWFoYW1lZWQgPHNhZWVkbUBtZWxsYW5veC5jb20+Ci0t LQogZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2Vzd2l0Y2guYyB8IDEx ICsrKysrKysrKystCiAxIGZpbGUgY2hhbmdlZCwgMTAgaW5zZXJ0aW9ucygrKSwgMSBkZWxldGlv bigtKQoKZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29y ZS9lc3dpdGNoLmMgYi9kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvZXN3 aXRjaC5jCmluZGV4IGM3N2Y0YzBjNzc2OS4uODJlMzcyNTBlZDAxIDEwMDY0NAotLS0gYS9kcml2 ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvZXN3aXRjaC5jCisrKyBiL2RyaXZl cnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9lc3dpdGNoLmMKQEAgLTIwNTQsMjYg KzIwNTQsMzUgQEAgaW50IG1seDVfZXN3aXRjaF9nZXRfdnBvcnRfc3RhdHMoc3RydWN0IG1seDVf ZXN3aXRjaCAqZXN3LAogCW1lbXNldCh2Zl9zdGF0cywgMCwgc2l6ZW9mKCp2Zl9zdGF0cykpOwog CXZmX3N0YXRzLT5yeF9wYWNrZXRzID0KIAkJTUxYNV9HRVRfQ1RSKG91dCwgcmVjZWl2ZWRfZXRo X3VuaWNhc3QucGFja2V0cykgKworCQlNTFg1X0dFVF9DVFIob3V0LCByZWNlaXZlZF9pYl91bmlj YXN0LnBhY2tldHMpICsKIAkJTUxYNV9HRVRfQ1RSKG91dCwgcmVjZWl2ZWRfZXRoX211bHRpY2Fz dC5wYWNrZXRzKSArCisJCU1MWDVfR0VUX0NUUihvdXQsIHJlY2VpdmVkX2liX211bHRpY2FzdC5w YWNrZXRzKSArCiAJCU1MWDVfR0VUX0NUUihvdXQsIHJlY2VpdmVkX2V0aF9icm9hZGNhc3QucGFj a2V0cyk7CiAKIAl2Zl9zdGF0cy0+cnhfYnl0ZXMgPQogCQlNTFg1X0dFVF9DVFIob3V0LCByZWNl aXZlZF9ldGhfdW5pY2FzdC5vY3RldHMpICsKKwkJTUxYNV9HRVRfQ1RSKG91dCwgcmVjZWl2ZWRf aWJfdW5pY2FzdC5vY3RldHMpICsKIAkJTUxYNV9HRVRfQ1RSKG91dCwgcmVjZWl2ZWRfZXRoX211 bHRpY2FzdC5vY3RldHMpICsKKwkJTUxYNV9HRVRfQ1RSKG91dCwgcmVjZWl2ZWRfaWJfbXVsdGlj YXN0Lm9jdGV0cykgKwogCQlNTFg1X0dFVF9DVFIob3V0LCByZWNlaXZlZF9ldGhfYnJvYWRjYXN0 Lm9jdGV0cyk7CiAKIAl2Zl9zdGF0cy0+dHhfcGFja2V0cyA9CiAJCU1MWDVfR0VUX0NUUihvdXQs IHRyYW5zbWl0dGVkX2V0aF91bmljYXN0LnBhY2tldHMpICsKKwkJTUxYNV9HRVRfQ1RSKG91dCwg dHJhbnNtaXR0ZWRfaWJfdW5pY2FzdC5wYWNrZXRzKSArCiAJCU1MWDVfR0VUX0NUUihvdXQsIHRy YW5zbWl0dGVkX2V0aF9tdWx0aWNhc3QucGFja2V0cykgKworCQlNTFg1X0dFVF9DVFIob3V0LCB0 cmFuc21pdHRlZF9pYl9tdWx0aWNhc3QucGFja2V0cykgKwogCQlNTFg1X0dFVF9DVFIob3V0LCB0 cmFuc21pdHRlZF9ldGhfYnJvYWRjYXN0LnBhY2tldHMpOwogCiAJdmZfc3RhdHMtPnR4X2J5dGVz ID0KIAkJTUxYNV9HRVRfQ1RSKG91dCwgdHJhbnNtaXR0ZWRfZXRoX3VuaWNhc3Qub2N0ZXRzKSAr CisJCU1MWDVfR0VUX0NUUihvdXQsIHRyYW5zbWl0dGVkX2liX3VuaWNhc3Qub2N0ZXRzKSArCiAJ CU1MWDVfR0VUX0NUUihvdXQsIHRyYW5zbWl0dGVkX2V0aF9tdWx0aWNhc3Qub2N0ZXRzKSArCisJ CU1MWDVfR0VUX0NUUihvdXQsIHRyYW5zbWl0dGVkX2liX211bHRpY2FzdC5vY3RldHMpICsKIAkJ TUxYNV9HRVRfQ1RSKG91dCwgdHJhbnNtaXR0ZWRfZXRoX2Jyb2FkY2FzdC5vY3RldHMpOwogCiAJ dmZfc3RhdHMtPm11bHRpY2FzdCA9Ci0JCU1MWDVfR0VUX0NUUihvdXQsIHJlY2VpdmVkX2V0aF9t dWx0aWNhc3QucGFja2V0cyk7CisJCU1MWDVfR0VUX0NUUihvdXQsIHJlY2VpdmVkX2V0aF9tdWx0 aWNhc3QucGFja2V0cykgKworCQlNTFg1X0dFVF9DVFIob3V0LCByZWNlaXZlZF9pYl9tdWx0aWNh c3QucGFja2V0cyk7CiAKIAl2Zl9zdGF0cy0+YnJvYWRjYXN0ID0KIAkJTUxYNV9HRVRfQ1RSKG91 dCwgcmVjZWl2ZWRfZXRoX2Jyb2FkY2FzdC5wYWNrZXRzKTsKLS0gCjIuMTQuMwoKCkZyb20gYjgw OTY3YTYxNjMzNWVmYjBjODFmY2QxOGQ3ZWRiYjA4YzU0ZDE3MSBNb24gU2VwIDE3IDAwOjAwOjAw IDIwMDEKRnJvbTogUm9tYW4gTWFzaGFrIDxtcnZAbW9qYXRhdHUuY29tPgpEYXRlOiBGcmksIDEx IE1heSAyMDE4IDE0OjM1OjMzIC0wNDAwClN1YmplY3Q6IFtQQVRDSCAxNS80MV0gbmV0IHNjaGVk IGFjdGlvbnM6IGZpeCByZWZjbnQgbGVhayBpbiBza2Jtb2QKClsgVXBzdHJlYW0gY29tbWl0IGE1 Mjk1NmRmYzUwM2Y4Y2M1Y2ZlNjQ1NDk1OWI3MDQ5ZmRkYjQ0MTMgXQoKV2hlbiBhcHBsaWNhdGlv biBmYWlscyB0byBwYXNzIGZsYWdzIGluIG5ldGxpbmsgVExWIHdoZW4gcmVwbGFjaW5nCmV4aXN0 aW5nIHNrYm1vZCBhY3Rpb24sIHRoZSBrZXJuZWwgd2lsbCBsZWFrIHJlZmNudDoKCiQgdGMgYWN0 aW9ucyBnZXQgYWN0aW9uIHNrYm1vZCBpbmRleCAxCnRvdGFsIGFjdHMgMAoKICAgICAgICBhY3Rp b24gb3JkZXIgMDogc2tibW9kIHBpcGUgc2V0IHNtYWMgMDA6MTE6MjI6MzM6NDQ6NTUKICAgICAg ICAgaW5kZXggMSByZWYgMSBiaW5kIDAKCkZvciBleGFtcGxlLCBhdCB0aGlzIHBvaW50IGEgYnVn Z3kgYXBwbGljYXRpb24gcmVwbGFjZXMgdGhlIGFjdGlvbiB3aXRoCmluZGV4IDEgd2l0aCBuZXcg c21hYyAwMDphYToyMjozMzo0NDo1NSwgaXQgZmFpbHMgYmVjYXVzZSBvZiB6ZXJvIGZsYWdzLApo b3dldmVyIHJlZmNudCBnZXRzIGJ1bXBlZDoKCiQgdGMgYWN0aW9ucyBnZXQgYWN0aW9ucyBza2Jt b2QgaW5kZXggMQp0b3RhbCBhY3RzIDAKCiAgICAgICAgYWN0aW9uIG9yZGVyIDA6IHNrYm1vZCBw aXBlIHNldCBzbWFjIDAwOjExOjIyOjMzOjQ0OjU1CiAgICAgICAgIGluZGV4IDEgcmVmIDIgYmlu ZCAwCiQKClRoYSBwYXRjaCBmaXhlcyB0aGlzIGJ5IGNhbGxpbmcgdGNmX2lkcl9yZWxlYXNlKCkg b24gZXhpc3RpbmcgYWN0aW9ucy4KCkZpeGVzOiA4NmRhNzFiNTczODNkICgibmV0X3NjaGVkOiBJ bnRyb2R1Y2Ugc2tibW9kIGFjdGlvbiIpClNpZ25lZC1vZmYtYnk6IFJvbWFuIE1hc2hhayA8bXJ2 QG1vamF0YXR1LmNvbT4KQWNrZWQtYnk6IENvbmcgV2FuZyA8eGl5b3Uud2FuZ2NvbmdAZ21haWwu Y29tPgpTaWduZWQtb2ZmLWJ5OiBEYXZpZCBTLiBNaWxsZXIgPGRhdmVtQGRhdmVtbG9mdC5uZXQ+ Ci0tLQogbmV0L3NjaGVkL2FjdF9za2Jtb2QuYyB8IDUgKysrKy0KIDEgZmlsZSBjaGFuZ2VkLCA0 IGluc2VydGlvbnMoKyksIDEgZGVsZXRpb24oLSkKCmRpZmYgLS1naXQgYS9uZXQvc2NoZWQvYWN0 X3NrYm1vZC5jIGIvbmV0L3NjaGVkL2FjdF9za2Jtb2QuYwppbmRleCA2ZDEwYjNhZjQ3OWIuLjgy MTgyM2IyNTE4YSAxMDA2NDQKLS0tIGEvbmV0L3NjaGVkL2FjdF9za2Jtb2QuYworKysgYi9uZXQv c2NoZWQvYWN0X3NrYm1vZC5jCkBAIC0xMzEsOCArMTMxLDExIEBAIHN0YXRpYyBpbnQgdGNmX3Nr Ym1vZF9pbml0KHN0cnVjdCBuZXQgKm5ldCwgc3RydWN0IG5sYXR0ciAqbmxhLAogCWlmIChleGlz dHMgJiYgYmluZCkKIAkJcmV0dXJuIDA7CiAKLQlpZiAoIWxmbGFncykKKwlpZiAoIWxmbGFncykg eworCQlpZiAoZXhpc3RzKQorCQkJdGNmX2lkcl9yZWxlYXNlKCphLCBiaW5kKTsKIAkJcmV0dXJu IC1FSU5WQUw7CisJfQogCiAJaWYgKCFleGlzdHMpIHsKIAkJcmV0ID0gdGNmX2lkcl9jcmVhdGUo dG4sIHBhcm0tPmluZGV4LCBlc3QsIGEsCi0tIAoyLjE0LjMKCgpGcm9tIDk4ZThjNGRjNDFlYzc2 YTM5NjQ3YjU3ZWVkOGNhYjYxOTQyNWQzNjYgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCkZyb206 IEVyaWMgRHVtYXpldCA8ZWR1bWF6ZXRAZ29vZ2xlLmNvbT4KRGF0ZTogV2VkLCAyIE1heSAyMDE4 IDEwOjAzOjMwIC0wNzAwClN1YmplY3Q6IFtQQVRDSCAxNi80MV0gbmV0X3NjaGVkOiBmcTogdGFr ZSBjYXJlIG9mIHRocm90dGxlZCBmbG93cyBiZWZvcmUKIHJldXNlCgpbIFVwc3RyZWFtIGNvbW1p dCA3ZGY0MGMyNjczYTEzMDdjMzI2MGFhYjZmOWQ0YjliZjk3Y2E4ZmQ3IF0KCk5vcm1hbGx5LCBh IHNvY2tldCBjYW4gbm90IGJlIGZyZWVkL3JldXNlZCB1bmxlc3MgYWxsIGl0cyBUWCBwYWNrZXRz CmxlZnQgcWRpc2MgYW5kIHdlcmUgVFgtY29tcGxldGVkLiBIb3dldmVyIGNvbm5lY3QoQUZfVU5T UEVDKSBhbGxvd3MKdGhpcyB0byBoYXBwZW4uCgpXaXRoIGNvbW1pdCBmYzU5ZDViZGYxZTMgKCJw a3Rfc2NoZWQ6IGZxOiBjbGVhciB0aW1lX25leHRfcGFja2V0IGZvcgpyZXVzZWQgZmxvd3MiKSB3 ZSBjbGVhcmVkIGYtPnRpbWVfbmV4dF9wYWNrZXQgYnV0IHRvb2sgbm8gc3BlY2lhbAphY3Rpb24g aWYgdGhlIGZsb3cgd2FzIHN0aWxsIGluIHRoZSB0aHJvdHRsZWQgcmItdHJlZS4KClNpbmNlIGYt PnRpbWVfbmV4dF9wYWNrZXQgaXMgdGhlIGtleSB1c2VkIGluIHRoZSByYi10cmVlIHNlYXJjaGVz LApibGluZGx5IGNsZWFyaW5nIGl0IG1pZ2h0IGJyZWFrIHJiLXRyZWUgaW50ZWdyaXR5LiBXZSBu ZWVkIHRvIG1ha2UKc3VyZSB0aGUgZmxvdyBpcyBubyBsb25nZXIgaW4gdGhlIHJiLXRyZWUgdG8g YXZvaWQgdGhpcyBwcm9ibGVtLgoKRml4ZXM6IGZjNTlkNWJkZjFlMyAoInBrdF9zY2hlZDogZnE6 IGNsZWFyIHRpbWVfbmV4dF9wYWNrZXQgZm9yIHJldXNlZCBmbG93cyIpClNpZ25lZC1vZmYtYnk6 IEVyaWMgRHVtYXpldCA8ZWR1bWF6ZXRAZ29vZ2xlLmNvbT4KU2lnbmVkLW9mZi1ieTogRGF2aWQg Uy4gTWlsbGVyIDxkYXZlbUBkYXZlbWxvZnQubmV0PgotLS0KIG5ldC9zY2hlZC9zY2hfZnEuYyB8 IDM3ICsrKysrKysrKysrKysrKysrKysrKysrKystLS0tLS0tLS0tLS0KIDEgZmlsZSBjaGFuZ2Vk LCAyNSBpbnNlcnRpb25zKCspLCAxMiBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9uZXQvc2No ZWQvc2NoX2ZxLmMgYi9uZXQvc2NoZWQvc2NoX2ZxLmMKaW5kZXggMjYzZDE2ZTMyMTllLi5mNTBl Yjg3Y2ZlNzkgMTAwNjQ0Ci0tLSBhL25ldC9zY2hlZC9zY2hfZnEuYworKysgYi9uZXQvc2NoZWQv c2NoX2ZxLmMKQEAgLTEyOCw2ICsxMjgsMjggQEAgc3RhdGljIGJvb2wgZnFfZmxvd19pc19kZXRh Y2hlZChjb25zdCBzdHJ1Y3QgZnFfZmxvdyAqZikKIAlyZXR1cm4gZi0+bmV4dCA9PSAmZGV0YWNo ZWQ7CiB9CiAKK3N0YXRpYyBib29sIGZxX2Zsb3dfaXNfdGhyb3R0bGVkKGNvbnN0IHN0cnVjdCBm cV9mbG93ICpmKQoreworCXJldHVybiBmLT5uZXh0ID09ICZ0aHJvdHRsZWQ7Cit9CisKK3N0YXRp YyB2b2lkIGZxX2Zsb3dfYWRkX3RhaWwoc3RydWN0IGZxX2Zsb3dfaGVhZCAqaGVhZCwgc3RydWN0 IGZxX2Zsb3cgKmZsb3cpCit7CisJaWYgKGhlYWQtPmZpcnN0KQorCQloZWFkLT5sYXN0LT5uZXh0 ID0gZmxvdzsKKwllbHNlCisJCWhlYWQtPmZpcnN0ID0gZmxvdzsKKwloZWFkLT5sYXN0ID0gZmxv dzsKKwlmbG93LT5uZXh0ID0gTlVMTDsKK30KKworc3RhdGljIHZvaWQgZnFfZmxvd191bnNldF90 aHJvdHRsZWQoc3RydWN0IGZxX3NjaGVkX2RhdGEgKnEsIHN0cnVjdCBmcV9mbG93ICpmKQorewor CXJiX2VyYXNlKCZmLT5yYXRlX25vZGUsICZxLT5kZWxheWVkKTsKKwlxLT50aHJvdHRsZWRfZmxv d3MtLTsKKwlmcV9mbG93X2FkZF90YWlsKCZxLT5vbGRfZmxvd3MsIGYpOworfQorCiBzdGF0aWMg dm9pZCBmcV9mbG93X3NldF90aHJvdHRsZWQoc3RydWN0IGZxX3NjaGVkX2RhdGEgKnEsIHN0cnVj dCBmcV9mbG93ICpmKQogewogCXN0cnVjdCByYl9ub2RlICoqcCA9ICZxLT5kZWxheWVkLnJiX25v ZGUsICpwYXJlbnQgPSBOVUxMOwpAQCAtMTU1LDE1ICsxNzcsNiBAQCBzdGF0aWMgdm9pZCBmcV9m bG93X3NldF90aHJvdHRsZWQoc3RydWN0IGZxX3NjaGVkX2RhdGEgKnEsIHN0cnVjdCBmcV9mbG93 ICpmKQogCiBzdGF0aWMgc3RydWN0IGttZW1fY2FjaGUgKmZxX2Zsb3dfY2FjaGVwIF9fcmVhZF9t b3N0bHk7CiAKLXN0YXRpYyB2b2lkIGZxX2Zsb3dfYWRkX3RhaWwoc3RydWN0IGZxX2Zsb3dfaGVh ZCAqaGVhZCwgc3RydWN0IGZxX2Zsb3cgKmZsb3cpCi17Ci0JaWYgKGhlYWQtPmZpcnN0KQotCQlo ZWFkLT5sYXN0LT5uZXh0ID0gZmxvdzsKLQllbHNlCi0JCWhlYWQtPmZpcnN0ID0gZmxvdzsKLQlo ZWFkLT5sYXN0ID0gZmxvdzsKLQlmbG93LT5uZXh0ID0gTlVMTDsKLX0KIAogLyogbGltaXQgbnVt YmVyIG9mIGNvbGxlY3RlZCBmbG93cyBwZXIgcm91bmQgKi8KICNkZWZpbmUgRlFfR0NfTUFYIDgK QEAgLTI2Nyw2ICsyODAsOCBAQCBzdGF0aWMgc3RydWN0IGZxX2Zsb3cgKmZxX2NsYXNzaWZ5KHN0 cnVjdCBza19idWZmICpza2IsIHN0cnVjdCBmcV9zY2hlZF9kYXRhICpxKQogCQkJCSAgICAgZi0+ c29ja2V0X2hhc2ggIT0gc2stPnNrX2hhc2gpKSB7CiAJCQkJZi0+Y3JlZGl0ID0gcS0+aW5pdGlh bF9xdWFudHVtOwogCQkJCWYtPnNvY2tldF9oYXNoID0gc2stPnNrX2hhc2g7CisJCQkJaWYgKGZx X2Zsb3dfaXNfdGhyb3R0bGVkKGYpKQorCQkJCQlmcV9mbG93X3Vuc2V0X3Rocm90dGxlZChxLCBm KTsKIAkJCQlmLT50aW1lX25leHRfcGFja2V0ID0gMFVMTDsKIAkJCX0KIAkJCXJldHVybiBmOwpA QCAtNDM4LDkgKzQ1Myw3IEBAIHN0YXRpYyB2b2lkIGZxX2NoZWNrX3Rocm90dGxlZChzdHJ1Y3Qg ZnFfc2NoZWRfZGF0YSAqcSwgdTY0IG5vdykKIAkJCXEtPnRpbWVfbmV4dF9kZWxheWVkX2Zsb3cg PSBmLT50aW1lX25leHRfcGFja2V0OwogCQkJYnJlYWs7CiAJCX0KLQkJcmJfZXJhc2UocCwgJnEt PmRlbGF5ZWQpOwotCQlxLT50aHJvdHRsZWRfZmxvd3MtLTsKLQkJZnFfZmxvd19hZGRfdGFpbCgm cS0+b2xkX2Zsb3dzLCBmKTsKKwkJZnFfZmxvd191bnNldF90aHJvdHRsZWQocSwgZik7CiAJfQog fQogCi0tIAoyLjE0LjMKCgpGcm9tIGZjMTZjYjMwYTNjM2YzMDg1MDk2YTg1NzNkNjg4MTRjNmY4 NzExOWMgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCkZyb206IExhbmNlIFJpY2hhcmRzb24gPGxh bmNlLnJpY2hhcmRzb24ubmV0QGdtYWlsLmNvbT4KRGF0ZTogV2VkLCAyNSBBcHIgMjAxOCAxMDoy MTo1NCAtMDQwMApTdWJqZWN0OiBbUEFUQ0ggMTcvNDFdIG5ldDogc3VwcG9ydCBjb21wYXQgNjQt Yml0IHRpbWUgaW4ge3MsZ31ldHNvY2tvcHQKClsgVXBzdHJlYW0gY29tbWl0IDk4OGJmNzI0M2Uw M2VmNjkyMzgzODE1OTRlMDMzNGE3OWNlZjc0YTYgXQoKRm9yIHRoZSB4MzIgQUJJLCBzdHJ1Y3Qg dGltZXZhbCBoYXMgdHdvIDY0LWJpdCBmaWVsZHMuIEhvd2V2ZXIKdGhlIGtlcm5lbCBjdXJyZW50 bHkgaW50ZXJwcmV0cyB0aGUgdXNlci1zcGFjZSB2YWx1ZXMgdXNlZCBmb3IKdGhlIFNPX1JDVlRJ TUVPIGFuZCBTT19TTkRUSU1FTyBzb2NrZXQgb3B0aW9ucyBhcyBoYXZpbmcgYSBwYWlyCm9mIDMy LWJpdCBmaWVsZHMuCgpXaGVuIHRoZSBzZWNvbmRzIHBvcnRpb24gb2YgdGhlIHJlcXVlc3RlZCB0 aW1lb3V0IGlzIGxlc3MgdGhhbiAyKiozMiwKdGhlIHNlY29uZHMgcG9ydGlvbiBvZiB0aGUgZWZm ZWN0aXZlIHRpbWVvdXQgaXMgY29ycmVjdCBidXQgdGhlCm1pY3Jvc2Vjb25kcyBwb3J0aW9uIGlz IHplcm8uICBXaGVuIHRoZSBzZWNvbmRzIHBvcnRpb24gb2YgdGhlCnJlcXVlc3RlZCB0aW1lb3V0 IGlzIHplcm8gYW5kIHRoZSBtaWNyb3NlY29uZHMgcG9ydGlvbiBpcyBub24temVybywKdGhlIGtl cm5lbCBpbnRlcnByZXRzIHRoZSB0aW1lb3V0IGFzIHplcm8gKG5ldmVyIHRpbWVvdXQpLgoKRml4 IGJ5IHVzaW5nIDY0LWJpdCB0aW1lIGZvciBTT19SQ1ZUSU1FTy9TT19TTkRUSU1FTyBhcyByZXF1 aXJlZApmb3IgdGhlIEFCSS4KClRoZSBjb2RlIGluY2x1ZGVkIGJlbG93IGRlbW9uc3RyYXRlcyB0 aGUgcHJvYmxlbS4KClJlc3VsdHMgYmVmb3JlIHBhdGNoOgogICAgJCBnY2MgLW02NCAtV2FsbCAt TzIgLW8gc29ja3RtbyBzb2NrdG1vLmMgJiYgLi9zb2NrdG1vCiAgICByZWN2IHRpbWU6IDIuMDA4 MTgxIHNlY29uZHMKICAgIHNlbmQgdGltZTogMi4wMTU5ODUgc2Vjb25kcwoKICAgICQgZ2NjIC1t MzIgLVdhbGwgLU8yIC1vIHNvY2t0bW8gc29ja3Rtby5jICYmIC4vc29ja3RtbwogICAgcmVjdiB0 aW1lOiAyLjAxNjc2MyBzZWNvbmRzCiAgICBzZW5kIHRpbWU6IDIuMDE2MDYyIHNlY29uZHMKCiAg ICAkIGdjYyAtbXgzMiAtV2FsbCAtTzIgLW8gc29ja3RtbyBzb2NrdG1vLmMgJiYgLi9zb2NrdG1v CiAgICByZWN2IHRpbWU6IDEuMDA3MjM5IHNlY29uZHMKICAgIHNlbmQgdGltZTogMS4wMjM4OTAg c2Vjb25kcwoKUmVzdWx0cyBhZnRlciBwYXRjaDoKICAgICQgZ2NjIC1tNjQgLU8yIC1XYWxsIC1v IHNvY2t0bW8gc29ja3Rtby5jICYmIC4vc29ja3RtbwogICAgcmVjdiB0aW1lOiAyLjAxMDA2MiBz ZWNvbmRzCiAgICBzZW5kIHRpbWU6IDIuMDE1ODM2IHNlY29uZHMKCiAgICAkIGdjYyAtbTMyIC1P MiAtV2FsbCAtbyBzb2NrdG1vIHNvY2t0bW8uYyAmJiAuL3NvY2t0bW8KICAgIHJlY3YgdGltZTog Mi4wMTM5NzQgc2Vjb25kcwogICAgc2VuZCB0aW1lOiAyLjAxNTk4MSBzZWNvbmRzCgogICAgJCBn Y2MgLW14MzIgLU8yIC1XYWxsIC1vIHNvY2t0bW8gc29ja3Rtby5jICYmIC4vc29ja3RtbwogICAg cmVjdiB0aW1lOiAyLjAzMDI1NyBzZWNvbmRzCiAgICBzZW5kIHRpbWU6IDIuMDEzMzgzIHNlY29u ZHMKCiAjaW5jbHVkZSA8c3RkaW8uaD4KICNpbmNsdWRlIDxzdGRsaWIuaD4KICNpbmNsdWRlIDxz eXMvc29ja2V0Lmg+CiAjaW5jbHVkZSA8c3lzL3R5cGVzLmg+CiAjaW5jbHVkZSA8c3lzL3RpbWUu aD4KCiB2b2lkIGNoZWNrcmMoY2hhciAqc3RyLCBpbnQgcmMpCiB7CiAgICAgICAgIGlmIChyYyA+ PSAwKQogICAgICAgICAgICAgICAgIHJldHVybjsKCiAgICAgICAgIHBlcnJvcihzdHIpOwogICAg ICAgICBleGl0KDEpOwogfQoKIHN0YXRpYyBjaGFyIGJ1ZlsxMDI0XTsKIGludCBtYWluKGludCBh cmdjLCBjaGFyICoqYXJndikKIHsKICAgICAgICAgaW50IHJjOwogICAgICAgICBpbnQgc29ja3Nb Ml07CiAgICAgICAgIHN0cnVjdCB0aW1ldmFsIHR2OwogICAgICAgICBzdHJ1Y3QgdGltZXZhbCBz dGFydCwgZW5kLCBkZWx0YTsKCiAgICAgICAgIHJjID0gc29ja2V0cGFpcihBRl9VTklYLCBTT0NL X1NUUkVBTSwgMCwgc29ja3MpOwogICAgICAgICBjaGVja3JjKCJzb2NrZXRwYWlyIiwgcmMpOwoK ICAgICAgICAgLyogc2V0IHRpbWVvdXQgdG8gMS45OTk5OTkgc2Vjb25kcyAqLwogICAgICAgICB0 di50dl9zZWMgPSAxOwogICAgICAgICB0di50dl91c2VjID0gOTk5OTk5OwogICAgICAgICByYyA9 IHNldHNvY2tvcHQoc29ja3NbMF0sIFNPTF9TT0NLRVQsIFNPX1JDVlRJTUVPLCAmdHYsIHNpemVv ZiB0dik7CiAgICAgICAgIHJjID0gc2V0c29ja29wdChzb2Nrc1swXSwgU09MX1NPQ0tFVCwgU09f U05EVElNRU8sICZ0diwgc2l6ZW9mIHR2KTsKICAgICAgICAgY2hlY2tyYygic2V0c29ja29wdCIs IHJjKTsKCiAgICAgICAgIC8qIG1lYXN1cmUgYWN0dWFsIHJlY2VpdmUgdGltZW91dCAqLwogICAg ICAgICBnZXR0aW1lb2ZkYXkoJnN0YXJ0LCBOVUxMKTsKICAgICAgICAgcmMgPSByZWN2KHNvY2tz WzBdLCBidWYsIHNpemVvZiBidWYsIDApOwogICAgICAgICBnZXR0aW1lb2ZkYXkoJmVuZCwgTlVM TCk7CiAgICAgICAgIHRpbWVyc3ViKCZlbmQsICZzdGFydCwgJmRlbHRhKTsKCiAgICAgICAgIHBy aW50ZigicmVjdiB0aW1lOiAlbGQuJTA2bGQgc2Vjb25kc1xuIiwKICAgICAgICAgICAgICAgIChs b25nKWRlbHRhLnR2X3NlYywgKGxvbmcpZGVsdGEudHZfdXNlYyk7CgogICAgICAgICAvKiBmaWxs IHNlbmQgYnVmZmVyICovCiAgICAgICAgIGRvIHsKICAgICAgICAgICAgICAgICByYyA9IHNlbmQo c29ja3NbMF0sIGJ1Ziwgc2l6ZW9mIGJ1ZiwgMCk7CiAgICAgICAgIH0gd2hpbGUgKHJjID4gMCk7 CgogICAgICAgICAvKiBtZWFzdXJlIGFjdHVhbCBzZW5kIHRpbWVvdXQgKi8KICAgICAgICAgZ2V0 dGltZW9mZGF5KCZzdGFydCwgTlVMTCk7CiAgICAgICAgIHJjID0gc2VuZChzb2Nrc1swXSwgYnVm LCBzaXplb2YgYnVmLCAwKTsKICAgICAgICAgZ2V0dGltZW9mZGF5KCZlbmQsIE5VTEwpOwogICAg ICAgICB0aW1lcnN1YigmZW5kLCAmc3RhcnQsICZkZWx0YSk7CgogICAgICAgICBwcmludGYoInNl bmQgdGltZTogJWxkLiUwNmxkIHNlY29uZHNcbiIsCiAgICAgICAgICAgICAgICAobG9uZylkZWx0 YS50dl9zZWMsIChsb25nKWRlbHRhLnR2X3VzZWMpOwogICAgICAgICBleGl0KDApOwogfQoKRml4 ZXM6IDUxNWM3YWY4NWVkOSAoIngzMjogVXNlIGNvbXBhdCBzaGltcyBmb3Ige2csc31ldHNvY2tv cHQiKQpSZXBvcnRlZC1ieTogR29wYWwgUmFqYWdvcGFsU2FpIDxnb3BhbHNyODNAZ21haWwuY29t PgpTaWduZWQtb2ZmLWJ5OiBMYW5jZSBSaWNoYXJkc29uIDxsYW5jZS5yaWNoYXJkc29uLm5ldEBn bWFpbC5jb20+ClNpZ25lZC1vZmYtYnk6IERhdmlkIFMuIE1pbGxlciA8ZGF2ZW1AZGF2ZW1sb2Z0 Lm5ldD4KLS0tCiBuZXQvY29tcGF0LmMgfCA2ICsrKystLQogMSBmaWxlIGNoYW5nZWQsIDQgaW5z ZXJ0aW9ucygrKSwgMiBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9uZXQvY29tcGF0LmMgYi9u ZXQvY29tcGF0LmMKaW5kZXggMjIzODE3MTk3MThjLi4zMmVkOTkzNTg4ZDYgMTAwNjQ0Ci0tLSBh L25ldC9jb21wYXQuYworKysgYi9uZXQvY29tcGF0LmMKQEAgLTM3Nyw3ICszNzcsOCBAQCBzdGF0 aWMgaW50IGNvbXBhdF9zb2NrX3NldHNvY2tvcHQoc3RydWN0IHNvY2tldCAqc29jaywgaW50IGxl dmVsLCBpbnQgb3B0bmFtZSwKIAkgICAgb3B0bmFtZSA9PSBTT19BVFRBQ0hfUkVVU0VQT1JUX0NC UEYpCiAJCXJldHVybiBkb19zZXRfYXR0YWNoX2ZpbHRlcihzb2NrLCBsZXZlbCwgb3B0bmFtZSwK IAkJCQkJICAgIG9wdHZhbCwgb3B0bGVuKTsKLQlpZiAob3B0bmFtZSA9PSBTT19SQ1ZUSU1FTyB8 fCBvcHRuYW1lID09IFNPX1NORFRJTUVPKQorCWlmICghQ09NUEFUX1VTRV82NEJJVF9USU1FICYm CisJICAgIChvcHRuYW1lID09IFNPX1JDVlRJTUVPIHx8IG9wdG5hbWUgPT0gU09fU05EVElNRU8p KQogCQlyZXR1cm4gZG9fc2V0X3NvY2tfdGltZW91dChzb2NrLCBsZXZlbCwgb3B0bmFtZSwgb3B0 dmFsLCBvcHRsZW4pOwogCiAJcmV0dXJuIHNvY2tfc2V0c29ja29wdChzb2NrLCBsZXZlbCwgb3B0 bmFtZSwgb3B0dmFsLCBvcHRsZW4pOwpAQCAtNDQyLDcgKzQ0Myw4IEBAIHN0YXRpYyBpbnQgZG9f Z2V0X3NvY2tfdGltZW91dChzdHJ1Y3Qgc29ja2V0ICpzb2NrLCBpbnQgbGV2ZWwsIGludCBvcHRu YW1lLAogc3RhdGljIGludCBjb21wYXRfc29ja19nZXRzb2Nrb3B0KHN0cnVjdCBzb2NrZXQgKnNv Y2ssIGludCBsZXZlbCwgaW50IG9wdG5hbWUsCiAJCQkJY2hhciBfX3VzZXIgKm9wdHZhbCwgaW50 IF9fdXNlciAqb3B0bGVuKQogewotCWlmIChvcHRuYW1lID09IFNPX1JDVlRJTUVPIHx8IG9wdG5h bWUgPT0gU09fU05EVElNRU8pCisJaWYgKCFDT01QQVRfVVNFXzY0QklUX1RJTUUgJiYKKwkgICAg KG9wdG5hbWUgPT0gU09fUkNWVElNRU8gfHwgb3B0bmFtZSA9PSBTT19TTkRUSU1FTykpCiAJCXJl dHVybiBkb19nZXRfc29ja190aW1lb3V0KHNvY2ssIGxldmVsLCBvcHRuYW1lLCBvcHR2YWwsIG9w dGxlbik7CiAJcmV0dXJuIHNvY2tfZ2V0c29ja29wdChzb2NrLCBsZXZlbCwgb3B0bmFtZSwgb3B0 dmFsLCBvcHRsZW4pOwogfQotLSAKMi4xNC4zCgoKRnJvbSA3YjczODI3NzgyNWQ1MGRkYTZiMGNl NmJlZmE0MjM1NTk0OWE2YTM5IE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBEYXZlIFdh dHNvbiA8ZGF2ZWp3YXRzb25AZmIuY29tPgpEYXRlOiBUdWUsIDEgTWF5IDIwMTggMTM6MDU6Mzkg LTA3MDAKU3ViamVjdDogW1BBVENIIDE4LzQxXSBuZXQvdGxzOiBEb24ndCByZWN1cnNpdmVseSBj YWxsIHB1c2hfcmVjb3JkIGR1cmluZwogdGxzX3dyaXRlX3NwYWNlIGNhbGxiYWNrcwoKWyBVcHN0 cmVhbSBjb21taXQgYzIxMmQyYzdmYzQ3MzZkNDliZTEwMmZiN2ExYTU0NWNkYzJmMWZlYSBdCgpJ dCBpcyByZXBvcnRlZCB0aGF0IGluIHNvbWUgY2FzZXMsIHdyaXRlX3NwYWNlIG1heSBiZSBjYWxs ZWQgaW4KZG9fdGNwX3NlbmRwYWdlcywgc3VjaCB0aGF0IHdlIHJlY3Vyc2l2ZWx5IGludm9rZSBk b190Y3Bfc2VuZHBhZ2VzIGFnYWluOgoKWyAgNjYwLjQ2ODgwMl0gID8gZG9fdGNwX3NlbmRwYWdl cysweDhkLzB4NTgwClsgIDY2MC40Njg4MjZdICA/IHRsc19wdXNoX3NnKzB4NzQvMHgxMzAgW3Rs c10KWyAgNjYwLjQ2ODg1Ml0gID8gdGxzX3B1c2hfcmVjb3JkKzB4MjRhLzB4MzkwIFt0bHNdClsg IDY2MC40Njg4ODBdICA/IHRsc193cml0ZV9zcGFjZSsweDZhLzB4ODAgW3Rsc10KLi4uCgp0bHNf cHVzaF9zZyBhbHJlYWR5IGRvZXMgYSBsb29wIG92ZXIgYWxsIHNlbmRpbmcgc2cncywgc28gaWdu b3JlCmFueSB0bHNfd3JpdGVfc3BhY2Ugbm90aWZpY2F0aW9ucyB1bnRpbCB3ZSBhcmUgZG9uZSBz ZW5kaW5nLgpXZSB0aGVuIGhhdmUgdG8gY2FsbCB0aGUgcHJldmlvdXMgd3JpdGVfc3BhY2UgdG8g d2FrZSB1cApwb2xsKCkgd2FpdGVycyBhZnRlciB3ZSBhcmUgZG9uZSB3aXRoIHRoZSBzZW5kIGxv b3AuCgpSZXBvcnRlZC1ieTogQW5kcmUgVG9tdCA8YW5kcmVAdG9tdC5uZXQ+ClNpZ25lZC1vZmYt Ynk6IERhdmUgV2F0c29uIDxkYXZlandhdHNvbkBmYi5jb20+ClNpZ25lZC1vZmYtYnk6IERhdmlk IFMuIE1pbGxlciA8ZGF2ZW1AZGF2ZW1sb2Z0Lm5ldD4KLS0tCiBpbmNsdWRlL25ldC90bHMuaCAg fCAxICsKIG5ldC90bHMvdGxzX21haW4uYyB8IDcgKysrKysrKwogMiBmaWxlcyBjaGFuZ2VkLCA4 IGluc2VydGlvbnMoKykKCmRpZmYgLS1naXQgYS9pbmNsdWRlL25ldC90bHMuaCBiL2luY2x1ZGUv bmV0L3Rscy5oCmluZGV4IGRmOTUwMzgzYjhjMS4uNDg5NDBhODgzZDlhIDEwMDY0NAotLS0gYS9p bmNsdWRlL25ldC90bHMuaAorKysgYi9pbmNsdWRlL25ldC90bHMuaApAQCAtOTgsNiArOTgsNyBA QCBzdHJ1Y3QgdGxzX2NvbnRleHQgewogCXN0cnVjdCBzY2F0dGVybGlzdCAqcGFydGlhbGx5X3Nl bnRfcmVjb3JkOwogCXUxNiBwYXJ0aWFsbHlfc2VudF9vZmZzZXQ7CiAJdW5zaWduZWQgbG9uZyBm bGFnczsKKwlib29sIGluX3RjcF9zZW5kcGFnZXM7CiAKIAl1MTYgcGVuZGluZ19vcGVuX3JlY29y ZF9mcmFnczsKIAlpbnQgKCpwdXNoX3BlbmRpbmdfcmVjb3JkKShzdHJ1Y3Qgc29jayAqc2ssIGlu dCBmbGFncyk7CmRpZmYgLS1naXQgYS9uZXQvdGxzL3Rsc19tYWluLmMgYi9uZXQvdGxzL3Rsc19t YWluLmMKaW5kZXggMjgyMzYxYWMwMjYzLi5jMzE0YTY2ODczZGEgMTAwNjQ0Ci0tLSBhL25ldC90 bHMvdGxzX21haW4uYworKysgYi9uZXQvdGxzL3Rsc19tYWluLmMKQEAgLTg3LDYgKzg3LDcgQEAg aW50IHRsc19wdXNoX3NnKHN0cnVjdCBzb2NrICpzaywKIAlzaXplID0gc2ctPmxlbmd0aCAtIG9m ZnNldDsKIAlvZmZzZXQgKz0gc2ctPm9mZnNldDsKIAorCWN0eC0+aW5fdGNwX3NlbmRwYWdlcyA9 IHRydWU7CiAJd2hpbGUgKDEpIHsKIAkJaWYgKHNnX2lzX2xhc3Qoc2cpKQogCQkJc2VuZHBhZ2Vf ZmxhZ3MgPSBmbGFnczsKQEAgLTEyMSw2ICsxMjIsOCBAQCBpbnQgdGxzX3B1c2hfc2coc3RydWN0 IHNvY2sgKnNrLAogCX0KIAogCWNsZWFyX2JpdChUTFNfUEVORElOR19DTE9TRURfUkVDT1JELCAm Y3R4LT5mbGFncyk7CisJY3R4LT5pbl90Y3Bfc2VuZHBhZ2VzID0gZmFsc2U7CisJY3R4LT5za193 cml0ZV9zcGFjZShzayk7CiAKIAlyZXR1cm4gMDsKIH0KQEAgLTE5MCw2ICsxOTMsMTAgQEAgc3Rh dGljIHZvaWQgdGxzX3dyaXRlX3NwYWNlKHN0cnVjdCBzb2NrICpzaykKIHsKIAlzdHJ1Y3QgdGxz X2NvbnRleHQgKmN0eCA9IHRsc19nZXRfY3R4KHNrKTsKIAorCS8qIFdlIGFyZSBhbHJlYWR5IHNl bmRpbmcgcGFnZXMsIGlnbm9yZSBub3RpZmljYXRpb24gKi8KKwlpZiAoY3R4LT5pbl90Y3Bfc2Vu ZHBhZ2VzKQorCQlyZXR1cm47CisKIAlpZiAoIXNrLT5za193cml0ZV9wZW5kaW5nICYmIHRsc19p c19wZW5kaW5nX2Nsb3NlZF9yZWNvcmQoY3R4KSkgewogCQlnZnBfdCBza19hbGxvY2F0aW9uID0g c2stPnNrX2FsbG9jYXRpb247CiAJCWludCByYzsKLS0gCjIuMTQuMwoKCkZyb20gMzIwMTE3Y2I5 NzViZmM1OWVjYmM3OGIwYjIyN2I2ZTkwNDY3YzgwMCBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEK RnJvbTogQW5kcmUgVG9tdCA8YW5kcmVAdG9tdC5uZXQ+CkRhdGU6IE1vbiwgNyBNYXkgMjAxOCAw NDoyNDozOSArMDIwMApTdWJqZWN0OiBbUEFUQ0ggMTkvNDFdIG5ldC90bHM6IEZpeCBjb25uZWN0 aW9uIHN0YWxsIG9uIHBhcnRpYWwgdGxzIHJlY29yZAoKWyBVcHN0cmVhbSBjb21taXQgMDgwMzI0 YzM2YWRlMzE5ZjU3ZTUwNTYzM2FiNTRmNmY1MzI4OWI0NSBdCgpJbiB0aGUgY2FzZSBvZiB3cml0 aW5nIGEgcGFydGlhbCB0bHMgcmVjb3JkIHdlIGZvcmdvdCB0byBjbGVhciB0aGUKY3R4LT5pbl90 Y3Bfc2VuZHBhZ2VzIGZsYWcsIGNhdXNpbmcgc29tZSBjb25uZWN0aW9ucyB0byBzdGFsbC4KCkZp eGVzOiBjMjEyZDJjN2ZjNDcgKCJuZXQvdGxzOiBEb24ndCByZWN1cnNpdmVseSBjYWxsIHB1c2hf cmVjb3JkIGR1cmluZyB0bHNfd3JpdGVfc3BhY2UgY2FsbGJhY2tzIikKU2lnbmVkLW9mZi1ieTog QW5kcmUgVG9tdCA8YW5kcmVAdG9tdC5uZXQ+ClNpZ25lZC1vZmYtYnk6IERhdmlkIFMuIE1pbGxl ciA8ZGF2ZW1AZGF2ZW1sb2Z0Lm5ldD4KLS0tCiBuZXQvdGxzL3Rsc19tYWluLmMgfCAxICsKIDEg ZmlsZSBjaGFuZ2VkLCAxIGluc2VydGlvbigrKQoKZGlmZiAtLWdpdCBhL25ldC90bHMvdGxzX21h aW4uYyBiL25ldC90bHMvdGxzX21haW4uYwppbmRleCBjMzE0YTY2ODczZGEuLmRmZWY5MzBkMWU1 MCAxMDA2NDQKLS0tIGEvbmV0L3Rscy90bHNfbWFpbi5jCisrKyBiL25ldC90bHMvdGxzX21haW4u YwpAQCAtMTA4LDYgKzEwOCw3IEBAIGludCB0bHNfcHVzaF9zZyhzdHJ1Y3Qgc29jayAqc2ssCiAJ CQlvZmZzZXQgLT0gc2ctPm9mZnNldDsKIAkJCWN0eC0+cGFydGlhbGx5X3NlbnRfb2Zmc2V0ID0g b2Zmc2V0OwogCQkJY3R4LT5wYXJ0aWFsbHlfc2VudF9yZWNvcmQgPSAodm9pZCAqKXNnOworCQkJ Y3R4LT5pbl90Y3Bfc2VuZHBhZ2VzID0gZmFsc2U7CiAJCQlyZXR1cm4gcmV0OwogCQl9CiAKLS0g CjIuMTQuMwoKCkZyb20gM2FmZGIxYjExNDA0MjQzNjg0NzEzMjgwMzZjYmQxYmMyMzI0ZWU0ZCBN b24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJvbTogU3RlZmFubyBCcml2aW8gPHNicml2aW9AcmVk aGF0LmNvbT4KRGF0ZTogVGh1LCAzIE1heSAyMDE4IDE4OjEzOjI1ICswMjAwClN1YmplY3Q6IFtQ QVRDSCAyMC80MV0gb3BlbnZzd2l0Y2g6IERvbid0IHN3YXAgdGFibGUgaW4gbmxhdHRyX3NldCgp IGFmdGVyCiBPVlNfQVRUUl9ORVNURUQgaXMgZm91bmQKClsgVXBzdHJlYW0gY29tbWl0IDcyZjE3 YmFmMjM1MmRlZDZhMWQzZjRiYjJkMTVkYThjNjc4Y2QyY2IgXQoKSWYgYW4gT1ZTX0FUVFJfTkVT VEVEIGF0dHJpYnV0ZSB0eXBlIGlzIGZvdW5kIHdoaWxlIHdhbGtpbmcKdGhyb3VnaCBuZXRsaW5r IGF0dHJpYnV0ZXMsIHdlIGNhbGwgbmxhdHRyX3NldCgpIHJlY3Vyc2l2ZWx5CnBhc3NpbmcgdGhl IGxlbmd0aCB0YWJsZSBmb3IgdGhlIGZvbGxvd2luZyBuZXN0ZWQgYXR0cmlidXRlcywgaWYKZGlm ZmVyZW50IGZyb20gdGhlIGN1cnJlbnQgb25lLgoKSG93ZXZlciwgb25jZSB3ZSdyZSBkb25lIHdp dGggdGhvc2Ugc3ViLW5lc3RlZCBhdHRyaWJ1dGVzLCB3ZQpzaG91bGQgY29udGludWUgd2Fsa2lu ZyB0aHJvdWdoIGF0dHJpYnV0ZXMgdXNpbmcgdGhlIGN1cnJlbnQKdGFibGUsIGluc3RlYWQgb2Yg dXNpbmcgdGhlIG9uZSByZWxhdGVkIHRvIHRoZSBzdWItbmVzdGVkCmF0dHJpYnV0ZXMuCgpGb3Ig ZXhhbXBsZSwgZ2l2ZW4gdGhpcyBzZXF1ZW5jZToKCjEgIE9WU19LRVlfQVRUUl9QUklPUklUWQoy ICBPVlNfS0VZX0FUVFJfVFVOTkVMCjMJT1ZTX1RVTk5FTF9LRVlfQVRUUl9JRAo0CU9WU19UVU5O RUxfS0VZX0FUVFJfSVBWNF9TUkMKNQlPVlNfVFVOTkVMX0tFWV9BVFRSX0lQVjRfRFNUCjYJT1ZT X1RVTk5FTF9LRVlfQVRUUl9UVEwKNwlPVlNfVFVOTkVMX0tFWV9BVFRSX1RQX1NSQwo4CU9WU19U VU5ORUxfS0VZX0FUVFJfVFBfRFNUCjkgIE9WU19LRVlfQVRUUl9JTl9QT1JUCjEwIE9WU19LRVlf QVRUUl9TS0JfTUFSSwoxMSBPVlNfS0VZX0FUVFJfTVBMUwoKd2Ugc3dpdGNoIHRvIHRoZSAnb3Zz X3R1bm5lbF9rZXlfbGVucycgdGFibGUgb24gYXR0cmlidXRlICMzLAphbmQgd2UgZG9uJ3Qgc3dp dGNoIGJhY2sgdG8gJ292c19rZXlfbGVucycgd2hpbGUgc2V0dGluZwphdHRyaWJ1dGVzICM5IHRv ICMxMSBpbiB0aGUgc2VxdWVuY2UuIEFzIE9WU19LRVlfQVRUUl9NUExTCmV2YWx1YXRlcyB0byAy MSwgYW5kIHRoZSBhcnJheSBzaXplIG9mICdvdnNfdHVubmVsX2tleV9sZW5zJyBpcwoxNSwgd2Ug YWxzbyBnZXQgdGhpcyBraW5kIG9mIEtBU2FuIHNwbGF0IHdoaWxlIGFjY2Vzc2luZyB0aGUKd3Jv bmcgdGFibGU6CgpbIDc2NTQuNTg2NDk2XSA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KWyA3NjU0LjU5NDU3M10gQlVHOiBL QVNBTjogZ2xvYmFsLW91dC1vZi1ib3VuZHMgaW4gbmxhdHRyX3NldCsweDE2NC8weGRlOSBbb3Bl bnZzd2l0Y2hdClsgNzY1NC42MDMyMTRdIFJlYWQgb2Ygc2l6ZSA0IGF0IGFkZHIgZmZmZmZmZmZj MTY5ZWNmMCBieSB0YXNrIGhhbmRsZXIyOS84NzQzMApbIDc2NTQuNjEwOTgzXQpbIDc2NTQuNjEy NjQ0XSBDUFU6IDIxIFBJRDogODc0MzAgQ29tbTogaGFuZGxlcjI5IEtkdW1wOiBsb2FkZWQgTm90 IHRhaW50ZWQgMy4xMC4wLTg2Ni5lbDcudGVzdC54ODZfNjQgIzEKWyA3NjU0LjYyMzAzMF0gSGFy ZHdhcmUgbmFtZTogRGVsbCBJbmMuIFBvd2VyRWRnZSBSNzMwLzA3MlQ2RCwgQklPUyAyLjEuNyAw Ni8xNi8yMDE2ClsgNzY1NC42MzEzNzldIENhbGwgVHJhY2U6ClsgNzY1NC42MzQxMDhdICBbPGZm ZmZmZmZmYjY1YTdjNTA+XSBkdW1wX3N0YWNrKzB4MTkvMHgxYgpbIDc2NTQuNjM5ODQzXSAgWzxm ZmZmZmZmZmI1M2ZmMzczPl0gcHJpbnRfYWRkcmVzc19kZXNjcmlwdGlvbisweDMzLzB4MjkwClsg NzY1NC42NDcxMjldICBbPGZmZmZmZmZmYzE2OWIzN2I+XSA/IG5sYXR0cl9zZXQrMHgxNjQvMHhk ZTkgW29wZW52c3dpdGNoXQpbIDc2NTQuNjU0NjA3XSAgWzxmZmZmZmZmZmI1M2ZmODEyPl0ga2Fz YW5fcmVwb3J0LnBhcnQuMysweDI0Mi8weDMzMApbIDc2NTQuNjYxNDA2XSAgWzxmZmZmZmZmZmI1 M2ZmOWI0Pl0gX19hc2FuX3JlcG9ydF9sb2FkNF9ub2Fib3J0KzB4MzQvMHg0MApbIDc2NTQuNjY4 Nzg5XSAgWzxmZmZmZmZmZmMxNjliMzdiPl0gbmxhdHRyX3NldCsweDE2NC8weGRlOSBbb3BlbnZz d2l0Y2hdClsgNzY1NC42NzYwNzZdICBbPGZmZmZmZmZmYzE2N2VmNjg+XSBvdnNfbmxhX2dldF9t YXRjaCsweDEwYzgvMHgxOTAwIFtvcGVudnN3aXRjaF0KWyA3NjU0LjY4NDIzNF0gIFs8ZmZmZmZm ZmZiNjFlOWNjOD5dID8gZ2VubF9yY3YrMHgyOC8weDQwClsgNzY1NC42ODk5NjhdICBbPGZmZmZm ZmZmYjYxZTc3MzM+XSA/IG5ldGxpbmtfdW5pY2FzdCsweDNmMy8weDU5MApbIDc2NTQuNjk2NTc0 XSAgWzxmZmZmZmZmZmMxNjdkZWEwPl0gPyBvdnNfbmxhX3B1dF90dW5uZWxfaW5mbysweGIwLzB4 YjAgW29wZW52c3dpdGNoXQpbIDc2NTQuNzA1MTIyXSAgWzxmZmZmZmZmZmI0ZjQxYjUwPl0gPyB1 bndpbmRfZ2V0X3JldHVybl9hZGRyZXNzKzB4YjAvMHhiMApbIDc2NTQuNzEyNTAzXSAgWzxmZmZm ZmZmZmI2NWQ5MzU1Pl0gPyBzeXN0ZW1fY2FsbF9mYXN0cGF0aCsweDFjLzB4MjEKWyA3NjU0Ljcx OTQwMV0gIFs8ZmZmZmZmZmZiNGY0MWQ3OT5dID8gdXBkYXRlX3N0YWNrX3N0YXRlKzB4MjI5LzB4 MzcwClsgNzY1NC43MjYyOThdICBbPGZmZmZmZmZmYjRmNDFkNzk+XSA/IHVwZGF0ZV9zdGFja19z dGF0ZSsweDIyOS8weDM3MApbIDc2NTQuNzMzMTk1XSAgWzxmZmZmZmZmZmI1M2ZlNGI1Pl0gPyBr YXNhbl91bnBvaXNvbl9zaGFkb3crMHgzNS8weDUwClsgNzY1NC43NDAxODddICBbPGZmZmZmZmZm YjUzZmU2MmE+XSA/IGthc2FuX2ttYWxsb2MrMHhhYS8weGUwClsgNzY1NC43NDY0MDZdICBbPGZm ZmZmZmZmYjUzZmVjMzI+XSA/IGthc2FuX3NsYWJfYWxsb2MrMHgxMi8weDIwClsgNzY1NC43NTI5 MTRdICBbPGZmZmZmZmZmYjUzZmU3MTE+XSA/IG1lbXNldCsweDMxLzB4NDAKWyA3NjU0Ljc1ODQ1 Nl0gIFs8ZmZmZmZmZmZjMTY1YmY5Mj5dIG92c19mbG93X2NtZF9uZXcrMHgyYjIvMHhmMDAgW29w ZW52c3dpdGNoXQoKW3NuaXBdCgpbIDc2NTUuMTMyNDg0XSBUaGUgYnVnZ3kgYWRkcmVzcyBiZWxv bmdzIHRvIHRoZSB2YXJpYWJsZToKWyA3NjU1LjEzODIyNl0gIG92c190dW5uZWxfa2V5X2xlbnMr MHhmMC8weGZmZmZmZmZmZmZmZmQ0MDAgW29wZW52c3dpdGNoXQpbIDc2NTUuMTQ1NTA3XQpbIDc2 NTUuMTQ3MTY2XSBNZW1vcnkgc3RhdGUgYXJvdW5kIHRoZSBidWdneSBhZGRyZXNzOgpbIDc2NTUu MTUyNTE0XSAgZmZmZmZmZmZjMTY5ZWI4MDogMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAg ZmEgZmEgZmEgZmEgZmEgZmEKWyA3NjU1LjE2MDU4NV0gIGZmZmZmZmZmYzE2OWVjMDA6IDAwIDAw IDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwClsgNzY1NS4xNjg2NDRd ID5mZmZmZmZmZmMxNjllYzgwOiAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAw MCAwMCBmYSBmYQpbIDc2NTUuMTc2NzAxXSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXgpbIDc2NTUuMTg0MzcyXSAgZmZmZmZmZmZj MTY5ZWQwMDogZmEgZmEgZmEgZmEgMDAgMDAgMDAgMDAgZmEgZmEgZmEgZmEgMDAgMDAgMDAgMDUK WyA3NjU1LjE5MjQzMV0gIGZmZmZmZmZmYzE2OWVkODA6IGZhIGZhIGZhIGZhIDAwIDAwIDAwIDAw IDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwClsgNzY1NS4yMDA0OTBdID09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQoKUmVwb3J0 ZWQtYnk6IEhhbmdiaW4gTGl1IDxsaXVoYW5nYmluQGdtYWlsLmNvbT4KRml4ZXM6IDk4MmI1Mjcw MDQ4MiAoIm9wZW52c3dpdGNoOiBGaXggbWFzayBnZW5lcmF0aW9uIGZvciBuZXN0ZWQgYXR0cmli dXRlcy4iKQpTaWduZWQtb2ZmLWJ5OiBTdGVmYW5vIEJyaXZpbyA8c2JyaXZpb0ByZWRoYXQuY29t PgpSZXZpZXdlZC1ieTogU2FicmluYSBEdWJyb2NhIDxzZEBxdWVhc3lzbmFpbC5uZXQ+ClNpZ25l ZC1vZmYtYnk6IERhdmlkIFMuIE1pbGxlciA8ZGF2ZW1AZGF2ZW1sb2Z0Lm5ldD4KLS0tCiBuZXQv b3BlbnZzd2l0Y2gvZmxvd19uZXRsaW5rLmMgfCA5ICsrKy0tLS0tLQogMSBmaWxlIGNoYW5nZWQs IDMgaW5zZXJ0aW9ucygrKSwgNiBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9uZXQvb3BlbnZz d2l0Y2gvZmxvd19uZXRsaW5rLmMgYi9uZXQvb3BlbnZzd2l0Y2gvZmxvd19uZXRsaW5rLmMKaW5k ZXggMGQ5ZjZhZmEyNjZjLi40YzljOTQ1ODM3NGEgMTAwNjQ0Ci0tLSBhL25ldC9vcGVudnN3aXRj aC9mbG93X25ldGxpbmsuYworKysgYi9uZXQvb3BlbnZzd2l0Y2gvZmxvd19uZXRsaW5rLmMKQEAg LTE0MDQsMTMgKzE0MDQsMTAgQEAgc3RhdGljIHZvaWQgbmxhdHRyX3NldChzdHJ1Y3QgbmxhdHRy ICphdHRyLCB1OCB2YWwsCiAKIAkvKiBUaGUgbmxhdHRyIHN0cmVhbSBzaG91bGQgYWxyZWFkeSBo YXZlIGJlZW4gdmFsaWRhdGVkICovCiAJbmxhX2Zvcl9lYWNoX25lc3RlZChubGEsIGF0dHIsIHJl bSkgewotCQlpZiAodGJsW25sYV90eXBlKG5sYSldLmxlbiA9PSBPVlNfQVRUUl9ORVNURUQpIHsK LQkJCWlmICh0YmxbbmxhX3R5cGUobmxhKV0ubmV4dCkKLQkJCQl0YmwgPSB0YmxbbmxhX3R5cGUo bmxhKV0ubmV4dDsKLQkJCW5sYXR0cl9zZXQobmxhLCB2YWwsIHRibCk7Ci0JCX0gZWxzZSB7CisJ CWlmICh0YmxbbmxhX3R5cGUobmxhKV0ubGVuID09IE9WU19BVFRSX05FU1RFRCkKKwkJCW5sYXR0 cl9zZXQobmxhLCB2YWwsIHRibFtubGFfdHlwZShubGEpXS5uZXh0ID8gOiB0YmwpOworCQllbHNl CiAJCQltZW1zZXQobmxhX2RhdGEobmxhKSwgdmFsLCBubGFfbGVuKG5sYSkpOwotCQl9CiAKIAkJ aWYgKG5sYV90eXBlKG5sYSkgPT0gT1ZTX0tFWV9BVFRSX0NUX1NUQVRFKQogCQkJKih1MzIgKilu bGFfZGF0YShubGEpICY9IENUX1NVUFBPUlRFRF9NQVNLOwotLSAKMi4xNC4zCgoKRnJvbSA4YWZi YTcyYTY4NjQ1MzE4M2E5YTE2MTJiOTFjM2NjMjZhNzVlYjg4IE1vbiBTZXAgMTcgMDA6MDA6MDAg MjAwMQpGcm9tOiA9P1VURi04P3E/Qmo9QzM9Qjhybj0yME1vcms/PSA8Ympvcm5AbW9yay5ubz4K RGF0ZTogV2VkLCAyIE1heSAyMDE4IDIyOjIyOjU0ICswMjAwClN1YmplY3Q6IFtQQVRDSCAyMS80 MV0gcW1pX3d3YW46IGRvIG5vdCBzdGVhbCBpbnRlcmZhY2VzIGZyb20gY2xhc3MgZHJpdmVycwpN SU1FLVZlcnNpb246IDEuMApDb250ZW50LVR5cGU6IHRleHQvcGxhaW47IGNoYXJzZXQ9VVRGLTgK Q29udGVudC1UcmFuc2Zlci1FbmNvZGluZzogOGJpdAoKWyBVcHN0cmVhbSBjb21taXQgNTY5N2Ri NGE2OTZjNDE2MDFhMWQxNWMxOTIyMTUwYjRkYmY1NzI2YyBdCgpUaGUgVVNCX0RFVklDRV9JTlRF UkZBQ0VfTlVNQkVSIG1hdGNoaW5nIG1hY3JvIGFzc3VtZXMgdGhhdAp0aGUgeyB2ZW5kb3JpZCwg cHJvZHVjdGlkLCBpbnRlcmZhY2VudW1iZXIgfSBzZXQgdW5pcXVlbHkKaWRlbnRpZmllcyBvbmUg c3BlY2lmaWMgZnVuY3Rpb24uICBUaGlzIGhhcyBwcm92ZW4gdG8gZmFpbApmb3Igc29tZSBjb25m aWd1cmFibGUgZGV2aWNlcy4gT25lIGV4YW1wbGUgaXMgdGhlIFF1ZWN0ZWwKRU0wNi9FUDA2IHdo ZXJlIHRoZSBzYW1lIGludGVyZmFjZSBudW1iZXIgY2FuIGJlIGVpdGhlcgpRTUkgb3IgTUJJTSwg d2l0aG91dCB0aGUgZGV2aWNlIElEIGNoYW5naW5nIGVpdGhlci4KCkZpeCBieSByZXF1aXJpbmcg dGhlIHZlbmRvci1zcGVjaWZpYyBjbGFzcyBmb3IgaW50ZXJmYWNlIG51bWJlcgpiYXNlZCBtYXRj aGluZy4gIEZ1bmN0aW9ucyBvZiBvdGhlciBjbGFzc2VzIGNhbiBhbmQgc2hvdWxkIHVzZQpjbGFz cyBiYXNlZCBtYXRjaGluZyBpbnN0ZWFkLgoKRml4ZXM6IDAzMzA0YmNiNWVjNCAoIm5ldDogcW1p X3d3YW46IHVzZSBmaXhlZCBpbnRlcmZhY2UgbnVtYmVyIG1hdGNoaW5nIikKU2lnbmVkLW9mZi1i eTogQmrDuHJuIE1vcmsgPGJqb3JuQG1vcmsubm8+ClNpZ25lZC1vZmYtYnk6IERhdmlkIFMuIE1p bGxlciA8ZGF2ZW1AZGF2ZW1sb2Z0Lm5ldD4KLS0tCiBkcml2ZXJzL25ldC91c2IvcW1pX3d3YW4u YyB8IDEyICsrKysrKysrKysrKwogMSBmaWxlIGNoYW5nZWQsIDEyIGluc2VydGlvbnMoKykKCmRp ZmYgLS1naXQgYS9kcml2ZXJzL25ldC91c2IvcW1pX3d3YW4uYyBiL2RyaXZlcnMvbmV0L3VzYi9x bWlfd3dhbi5jCmluZGV4IDFhYWQwNTY4ZGNjNi4uMmY4MjhlYjlhY2U2IDEwMDY0NAotLS0gYS9k cml2ZXJzL25ldC91c2IvcW1pX3d3YW4uYworKysgYi9kcml2ZXJzL25ldC91c2IvcW1pX3d3YW4u YwpAQCAtMTMzOCw2ICsxMzM4LDE4IEBAIHN0YXRpYyBpbnQgcW1pX3d3YW5fcHJvYmUoc3RydWN0 IHVzYl9pbnRlcmZhY2UgKmludGYsCiAJCWlkLT5kcml2ZXJfaW5mbyA9ICh1bnNpZ25lZCBsb25n KSZxbWlfd3dhbl9pbmZvOwogCX0KIAorCS8qIFRoZXJlIGFyZSBkZXZpY2VzIHdoZXJlIHRoZSBz YW1lIGludGVyZmFjZSBudW1iZXIgY2FuIGJlCisJICogY29uZmlndXJlZCBhcyBkaWZmZXJlbnQg ZnVuY3Rpb25zLiBXZSBzaG91bGQgb25seSBiaW5kIHRvCisJICogdmVuZG9yIHNwZWNpZmljIGZ1 bmN0aW9ucyB3aGVuIG1hdGNoaW5nIG9uIGludGVyZmFjZSBudW1iZXIKKwkgKi8KKwlpZiAoaWQt Pm1hdGNoX2ZsYWdzICYgVVNCX0RFVklDRV9JRF9NQVRDSF9JTlRfTlVNQkVSICYmCisJICAgIGRl c2MtPmJJbnRlcmZhY2VDbGFzcyAhPSBVU0JfQ0xBU1NfVkVORE9SX1NQRUMpIHsKKwkJZGV2X2Ri ZygmaW50Zi0+ZGV2LAorCQkJIlJlamVjdGluZyBpbnRlcmZhY2UgbnVtYmVyIG1hdGNoIGZvciBj bGFzcyAlMDJ4XG4iLAorCQkJZGVzYy0+YkludGVyZmFjZUNsYXNzKTsKKwkJcmV0dXJuIC1FTk9E RVY7CisJfQorCiAJLyogUXVlY3RlbCBFQzIwIHF1aXJrIHdoZXJlIHdlJ3ZlIFFNSSBvbiBpbnRl cmZhY2UgNCBpbnN0ZWFkIG9mIDAgKi8KIAlpZiAocXVlY3RlbF9lYzIwX2RldGVjdGVkKGludGYp ICYmIGRlc2MtPmJJbnRlcmZhY2VOdW1iZXIgPT0gMCkgewogCQlkZXZfZGJnKCZpbnRmLT5kZXYs ICJRdWVjdGVsIEVDMjAgcXVpcmssIHNraXBwaW5nIGludGVyZmFjZSAwXG4iKTsKLS0gCjIuMTQu MwoKCkZyb20gMDI4N2UzZWYxMmI4ZGM3NDhkYWY5N2Y2NmRmYjdmMTBlOGRmODYyOSBNb24gU2Vw IDE3IDAwOjAwOjAwIDIwMDEKRnJvbTogSGVpbmVyIEthbGx3ZWl0IDxoa2FsbHdlaXQxQGdtYWls LmNvbT4KRGF0ZTogTW9uLCA3IE1heSAyMDE4IDIxOjExOjIxICswMjAwClN1YmplY3Q6IFtQQVRD SCAyMi80MV0gcjgxNjk6IGZpeCBwb3dlcmluZyB1cCBSVEw4MTY4aAoKWyBVcHN0cmVhbSBjb21t aXQgMzE0OGRlZGZlNzllNDIyZjQ0OGExMDI1MGQzZTJjZGY4YjdlZTYxNyBdCgpTaW5jZSBjb21t aXQgYTkyYTA4NDk5YjFmICJyODE2OTogaW1wcm92ZSBydW50aW1lIHBtIGluIGdlbmVyYWwgYW5k CnN1c3BlbmQgdW51c2VkIHBvcnRzIiBpbnRlcmZhY2VzIHcvbyBsaW5rIGFyZSBydW50aW1lLXN1 c3BlbmRlZCBhZnRlcgoxMHMuIE9uIHN5c3RlbXMgd2hlcmUgZHJpdmVycyB0YWtlIGxvbmdlciB0 byBsb2FkIHRoaXMgY2FuIGxlYWQgdG8gdGhlCnNpdHVhdGlvbiB0aGF0IHRoZSBpbnRlcmZhY2Ug aXMgcnVudGltZS1zdXNwZW5kZWQgYWxyZWFkeSB3aGVuIGl0J3MKaW5pdGlhbGx5IGJyb3VnaHQg dXAuClRoaXMgc2hvdWxkbid0IGJlIGEgcHJvYmxlbSBiZWNhdXNlIHJ0bF9vcGVuKCkgcmVzdW1l cyBNQUMvUEhZLgpIb3dldmVyIHdpdGggYXQgbGVhc3Qgb25lIGNoaXAgdmVyc2lvbiB0aGUgaW50 ZXJmYWNlIGRvZXNuJ3QgcHJvcGVybHkKY29tZSB1cCwgYXMgcmVwb3J0ZWQgaGVyZToKaHR0cHM6 Ly9idWd6aWxsYS5rZXJuZWwub3JnL3Nob3dfYnVnLmNnaT9pZD0xOTk1NDkKClRoZSB2ZW5kb3Ig ZHJpdmVyIHVzZXMgYSBkZWxheSB0byBnaXZlIGNlcnRhaW4gY2hpcCB2ZXJzaW9ucyBzb21lCnRp bWUgdG8gcmVzdW1lIGJlZm9yZSBzdGFydGluZyB0aGUgUEhZIGNvbmZpZ3VyYXRpb24uIFNvIGxl dCdzIGRvCnRoZSBzYW1lLiBJIGRvbid0IGtub3cgd2hpY2ggY2hpcCB2ZXJzaW9ucyBtYXkgYmUg YWZmZWN0ZWQsCnRoZXJlZm9yZSBhcHBseSB0aGlzIGRlbGF5IGFsd2F5cy4KClRoaXMgcGF0Y2gg d2FzIHJlcG9ydGVkIHRvIGZpeCB0aGUgaXNzdWUgZm9yIFJUTDgxNjhoLgpJIHdhcyBhYmxlIHRv IHJlcHJvZHVjZSB0aGUgaXNzdWUgb24gYW4gQXN1cyBIMzEwSS1QbHVzIHdoaWNoIGFsc28KdXNl cyBhIFJUTDgxNjhoLiBBbHNvIGluIG15IGNhc2UgdGhlIHBhdGNoIGZpeGVkIHRoZSBpc3N1ZS4K ClJlcG9ydGVkLWJ5OiBTbGF2YSBLYXJkYWtvdiA8b2phYkBvamFiLnJ1PgpUZXN0ZWQtYnk6IFNs YXZhIEthcmRha292IDxvamFiQG9qYWIucnU+ClNpZ25lZC1vZmYtYnk6IEhlaW5lciBLYWxsd2Vp dCA8aGthbGx3ZWl0MUBnbWFpbC5jb20+ClNpZ25lZC1vZmYtYnk6IERhdmlkIFMuIE1pbGxlciA8 ZGF2ZW1AZGF2ZW1sb2Z0Lm5ldD4KLS0tCiBkcml2ZXJzL25ldC9ldGhlcm5ldC9yZWFsdGVrL3I4 MTY5LmMgfCAzICsrKwogMSBmaWxlIGNoYW5nZWQsIDMgaW5zZXJ0aW9ucygrKQoKZGlmZiAtLWdp dCBhL2RyaXZlcnMvbmV0L2V0aGVybmV0L3JlYWx0ZWsvcjgxNjkuYyBiL2RyaXZlcnMvbmV0L2V0 aGVybmV0L3JlYWx0ZWsvcjgxNjkuYwppbmRleCBkYjU1M2Q0ZThkMjIuLmI5OGZjYzllOTNlNSAx MDA2NDQKLS0tIGEvZHJpdmVycy9uZXQvZXRoZXJuZXQvcmVhbHRlay9yODE2OS5jCisrKyBiL2Ry aXZlcnMvbmV0L2V0aGVybmV0L3JlYWx0ZWsvcjgxNjkuYwpAQCAtNDg4Niw2ICs0ODg2LDkgQEAg c3RhdGljIHZvaWQgcnRsX3BsbF9wb3dlcl9kb3duKHN0cnVjdCBydGw4MTY5X3ByaXZhdGUgKnRw KQogc3RhdGljIHZvaWQgcnRsX3BsbF9wb3dlcl91cChzdHJ1Y3QgcnRsODE2OV9wcml2YXRlICp0 cCkKIHsKIAlydGxfZ2VuZXJpY19vcCh0cCwgdHAtPnBsbF9wb3dlcl9vcHMudXApOworCisJLyog Z2l2ZSBNQUMvUEhZIHNvbWUgdGltZSB0byByZXN1bWUgKi8KKwltc2xlZXAoMjApOwogfQogCiBz dGF0aWMgdm9pZCBydGxfaW5pdF9wbGxfcG93ZXJfb3BzKHN0cnVjdCBydGw4MTY5X3ByaXZhdGUg KnRwKQotLSAKMi4xNC4zCgoKRnJvbSBhMDRhMGMxOGVlZWI3MjRjNGRmNGVkNDk2MjQ4M2YwMGNi ZmQwZmNlIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBFcmljIER1bWF6ZXQgPGVkdW1h emV0QGdvb2dsZS5jb20+CkRhdGU6IFdlZCwgMiBNYXkgMjAxOCAxNDo1MzozOSAtMDcwMApTdWJq ZWN0OiBbUEFUQ0ggMjMvNDFdIHJkczogZG8gbm90IGxlYWsga2VybmVsIG1lbW9yeSB0byB1c2Vy IGxhbmQKClsgVXBzdHJlYW0gY29tbWl0IGViODBjYTQ3NmVjMTFmNjdhNjI2OTFhOTM2MDRiNDA1 ZmZjN2Q4MGMgXQoKc3l6Ym90L0tNU0FOIHJlcG9ydGVkIGFuIHVuaW5pdC12YWx1ZSBpbiBwdXRf Y21zZygpLCBvcmlnaW5hdGluZwpmcm9tIHJkc19jbXNnX3JlY3YoKS4KClNpbXBseSBjbGVhciB0 aGUgc3RydWN0dXJlLCBzaW5jZSB3ZSBoYXZlIGhvbGVzIHRoZXJlLCBvciBzaW5jZQpyeF90cmFj ZXMgbWlnaHQgYmUgc21hbGxlciB0aGFuIFJEU19NU0dfUlhfREdSQU1fVFJBQ0VfTUFYLgoKQlVH OiBLTVNBTjogdW5pbml0LXZhbHVlIGluIGNvcHlfdG9fdXNlciBpbmNsdWRlL2xpbnV4L3VhY2Nl c3MuaDoxODQgW2lubGluZV0KQlVHOiBLTVNBTjogdW5pbml0LXZhbHVlIGluIHB1dF9jbXNnKzB4 NjAwLzB4ODcwIG5ldC9jb3JlL3NjbS5jOjI0MgpDUFU6IDAgUElEOiA0NDU5IENvbW06IHN5ei1l eGVjdXRvcjU4MiBOb3QgdGFpbnRlZCA0LjE2LjArICM4NwpIYXJkd2FyZSBuYW1lOiBHb29nbGUg R29vZ2xlIENvbXB1dGUgRW5naW5lL0dvb2dsZSBDb21wdXRlIEVuZ2luZSwgQklPUyBHb29nbGUg MDEvMDEvMjAxMQpDYWxsIFRyYWNlOgogX19kdW1wX3N0YWNrIGxpYi9kdW1wX3N0YWNrLmM6MTcg W2lubGluZV0KIGR1bXBfc3RhY2srMHgxODUvMHgxZDAgbGliL2R1bXBfc3RhY2suYzo1Mwoga21z YW5fcmVwb3J0KzB4MTQyLzB4MjQwIG1tL2ttc2FuL2ttc2FuLmM6MTA2Nwoga21zYW5faW50ZXJu YWxfY2hlY2tfbWVtb3J5KzB4MTM1LzB4MWUwIG1tL2ttc2FuL2ttc2FuLmM6MTE1Nwoga21zYW5f Y29weV90b191c2VyKzB4NjkvMHgxNjAgbW0va21zYW4va21zYW4uYzoxMTk5CiBjb3B5X3RvX3Vz ZXIgaW5jbHVkZS9saW51eC91YWNjZXNzLmg6MTg0IFtpbmxpbmVdCiBwdXRfY21zZysweDYwMC8w eDg3MCBuZXQvY29yZS9zY20uYzoyNDIKIHJkc19jbXNnX3JlY3YgbmV0L3Jkcy9yZWN2LmM6NTcw IFtpbmxpbmVdCiByZHNfcmVjdm1zZysweDJkYjUvMHgzMTcwIG5ldC9yZHMvcmVjdi5jOjY1Nwog c29ja19yZWN2bXNnX25vc2VjIG5ldC9zb2NrZXQuYzo4MDMgW2lubGluZV0KIHNvY2tfcmVjdm1z ZysweDFkMC8weDIzMCBuZXQvc29ja2V0LmM6ODEwCiBfX19zeXNfcmVjdm1zZysweDNmYi8weDgx MCBuZXQvc29ja2V0LmM6MjIwNQogX19zeXNfcmVjdm1zZyBuZXQvc29ja2V0LmM6MjI1MCBbaW5s aW5lXQogU1lTQ19yZWN2bXNnKzB4Mjk4LzB4M2MwIG5ldC9zb2NrZXQuYzoyMjYyCiBTeVNfcmVj dm1zZysweDU0LzB4ODAgbmV0L3NvY2tldC5jOjIyNTcKIGRvX3N5c2NhbGxfNjQrMHgzMDkvMHg0 MzAgYXJjaC94ODYvZW50cnkvY29tbW9uLmM6Mjg3CiBlbnRyeV9TWVNDQUxMXzY0X2FmdGVyX2h3 ZnJhbWUrMHgzZC8weGEyCgpGaXhlczogMzI4OTAyNWFlZGMwICgiUkRTOiBhZGQgcmVjZWl2ZSBt ZXNzYWdlIHRyYWNlIHVzZWQgYnkgYXBwbGljYXRpb24iKQpTaWduZWQtb2ZmLWJ5OiBFcmljIER1 bWF6ZXQgPGVkdW1hemV0QGdvb2dsZS5jb20+ClJlcG9ydGVkLWJ5OiBzeXpib3QgPHN5emthbGxl ckBnb29nbGVncm91cHMuY29tPgpDYzogU2FudG9zaCBTaGlsaW1rYXIgPHNhbnRvc2guc2hpbGlt a2FyQG9yYWNsZS5jb20+CkNjOiBsaW51eC1yZG1hIDxsaW51eC1yZG1hQHZnZXIua2VybmVsLm9y Zz4KU2lnbmVkLW9mZi1ieTogRGF2aWQgUy4gTWlsbGVyIDxkYXZlbUBkYXZlbWxvZnQubmV0Pgot LS0KIG5ldC9yZHMvcmVjdi5jIHwgMSArCiAxIGZpbGUgY2hhbmdlZCwgMSBpbnNlcnRpb24oKykK CmRpZmYgLS1naXQgYS9uZXQvcmRzL3JlY3YuYyBiL25ldC9yZHMvcmVjdi5jCmluZGV4IGIyNWJj ZmU0MTFjYS4uNTU1ZjA3Y2NmMGRjIDEwMDY0NAotLS0gYS9uZXQvcmRzL3JlY3YuYworKysgYi9u ZXQvcmRzL3JlY3YuYwpAQCAtNTU4LDYgKzU1OCw3IEBAIHN0YXRpYyBpbnQgcmRzX2Ntc2dfcmVj dihzdHJ1Y3QgcmRzX2luY29taW5nICppbmMsIHN0cnVjdCBtc2doZHIgKm1zZywKIAkJc3RydWN0 IHJkc19jbXNnX3J4X3RyYWNlIHQ7CiAJCWludCBpLCBqOwogCisJCW1lbXNldCgmdCwgMCwgc2l6 ZW9mKHQpKTsKIAkJaW5jLT5pX3J4X2xhdF90cmFjZVtSRFNfTVNHX1JYX0NNU0ddID0gbG9jYWxf Y2xvY2soKTsKIAkJdC5yeF90cmFjZXMgPSAgcnMtPnJzX3J4X3RyYWNlczsKIAkJZm9yIChpID0g MDsgaSA8IHJzLT5yc19yeF90cmFjZXM7IGkrKykgewotLSAKMi4xNC4zCgoKRnJvbSBlZmFmZWJh N2Y1NTRkYzkzOTJlOTFkNzc1NGZkMjFmNzM2Y2YxOWQ5IE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAw MQpGcm9tOiBYaW4gTG9uZyA8bHVjaWVuLnhpbkBnbWFpbC5jb20+CkRhdGU6IFNhdCwgNSBNYXkg MjAxOCAxNDo1OTo0NyArMDgwMApTdWJqZWN0OiBbUEFUQ0ggMjQvNDFdIHNjdHA6IGRlbGF5IHRo ZSBhdXRoZW50aWNhdGlvbiBmb3IgdGhlIGR1cGxpY2F0ZWQKIGNvb2tpZS1lY2hvIGNodW5rCgpb IFVwc3RyZWFtIGNvbW1pdCA1OWQ4ZDQ0MzRmNDI5YjRmYThhMzQ2ZmQ4ODkwNThiZGE0MjdhODM3 IF0KCk5vdyBzY3RwIG9ubHkgZGVsYXlzIHRoZSBhdXRoZW50aWNhdGlvbiBmb3IgdGhlIG5vcm1h bCBjb29raWUtZWNobwpjaHVuayBieSBzZXR0aW5nIGNodW5rLT5hdXRoX2NodW5rIGluIHNjdHBf ZW5kcG9pbnRfYmhfcmN2KCkuIEJ1dApmb3IgdGhlIGR1cGxpY2F0ZWQgb25lIHdpdGggYXV0aCwg aW4gc2N0cF9hc3NvY19iaF9yY3YoKSwgaXQgZG9lcwphdXRoZW50aWNhdGlvbiBmaXJzdCBiYXNl ZCBvbiB0aGUgb2xkIGFzb2MsIHdoaWNoIHdpbGwgZGVmaW5pdGVseQpmYWlsIGR1ZSB0byB0aGUg ZGlmZmVyZW50IGF1dGggaW5mbyBpbiB0aGUgb2xkIGFzb2MuCgpUaGUgZHVwbGljYXRlZCBjb29r aWUtZWNobyBjaHVuayB3aWxsIGNyZWF0ZSBhIG5ldyBhc29jIHdpdGggdGhlCmF1dGggaW5mbyBm cm9tIHRoaXMgY2h1bmssIGFuZCB0aGUgYXV0aGVudGljYXRpb24gc2hvdWxkIGFsc28gYmUKZG9u ZSB3aXRoIHRoZSBuZXcgYXNvYydzIGF1dGggaW5mbyBmb3IgYWxsIG9mIHRoZSBjb2xsaXNpb24g J0EnLAonQicgYW5kICdEJy4gT3RoZXJ3aXNlLCB0aGUgZHVwbGljYXRlZCBjb29raWUtZWNobyBj aHVuayB3aXRoIGF1dGgKd2lsbCBuZXZlciBwYXNzIHRoZSBhdXRoZW50aWNhdGlvbiBhbmQgY3Jl YXRlIHRoZSBuZXcgY29ubmVjdGlvbi4KClRoaXMgaXNzdWUgZXhpc3RzIHNpbmNlIHZlcnkgYmVn aW5uaW5nLCBhbmQgdGhpcyBmaXggaXMgdG8gbWFrZQpzY3RwX2Fzc29jX2JoX3JjdigpIGZvbGxv dyB0aGUgd2F5IHNjdHBfZW5kcG9pbnRfYmhfcmN2KCkgZG9lcwpmb3IgdGhlIG5vcm1hbCBjb29r aWUtZWNobyBjaHVuayB0byBkZWxheSB0aGUgYXV0aGVudGljYXRpb24uCgpXaGlsZSBhdCBpdCwg cmVtb3ZlIHRoZSB1bnVzZWQgcGFyYW1zIGZyb20gc2N0cF9zZl9hdXRoZW50aWNhdGUoKQphbmQg ZGVmaW5lIHNjdHBfYXV0aF9jaHVua192ZXJpZnkoKSB1c2VkIGZvciBhbGwgdGhlIHBsYWNlcyB0 aGF0CmRvIHRoZSBkZWxheWVkIGF1dGhlbnRpY2F0aW9uLgoKdjEtPnYyOgogIGZpeCB0aGUgdHlw byBpbiBjaGFuZ2Vsb2cgYXMgTWFyY2VsbyBub3RpY2VkLgoKQWNrZWQtYnk6IE1hcmNlbG8gUmlj YXJkbyBMZWl0bmVyIDxtYXJjZWxvLmxlaXRuZXJAZ21haWwuY29tPgpTaWduZWQtb2ZmLWJ5OiBY aW4gTG9uZyA8bHVjaWVuLnhpbkBnbWFpbC5jb20+CkFja2VkLWJ5OiBOZWlsIEhvcm1hbiA8bmhv cm1hbkB0dXhkcml2ZXIuY29tPgpTaWduZWQtb2ZmLWJ5OiBEYXZpZCBTLiBNaWxsZXIgPGRhdmVt QGRhdmVtbG9mdC5uZXQ+Ci0tLQogbmV0L3NjdHAvYXNzb2Npb2xhLmMgICAgfCAzMCArKysrKysr KysrKysrKysrLQogbmV0L3NjdHAvc21fc3RhdGVmdW5zLmMgfCA4NiArKysrKysrKysrKysrKysr KysrKysrKysrKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAyIGZpbGVzIGNoYW5nZWQsIDc1IGlu c2VydGlvbnMoKyksIDQxIGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL25ldC9zY3RwL2Fzc29j aW9sYS5jIGIvbmV0L3NjdHAvYXNzb2Npb2xhLmMKaW5kZXggZGZiOTY1MWU4MThiLi41OGY3ZDhj ZmQ3NDggMTAwNjQ0Ci0tLSBhL25ldC9zY3RwL2Fzc29jaW9sYS5jCisrKyBiL25ldC9zY3RwL2Fz c29jaW9sYS5jCkBAIC0xMDI1LDggKzEwMjUsOSBAQCBzdGF0aWMgdm9pZCBzY3RwX2Fzc29jX2Jo X3JjdihzdHJ1Y3Qgd29ya19zdHJ1Y3QgKndvcmspCiAJc3RydWN0IHNjdHBfZW5kcG9pbnQgKmVw OwogCXN0cnVjdCBzY3RwX2NodW5rICpjaHVuazsKIAlzdHJ1Y3Qgc2N0cF9pbnEgKmlucXVldWU7 Ci0JaW50IHN0YXRlOworCWludCBmaXJzdF90aW1lID0gMTsJLyogaXMgdGhpcyB0aGUgZmlyc3Qg dGltZSB0aHJvdWdoIHRoZSBsb29wICovCiAJaW50IGVycm9yID0gMDsKKwlpbnQgc3RhdGU7CiAK IAkvKiBUaGUgYXNzb2NpYXRpb24gc2hvdWxkIGJlIGhlbGQgc28gd2Ugc2hvdWxkIGJlIHNhZmUu ICovCiAJZXAgPSBhc29jLT5lcDsKQEAgLTEwMzcsNiArMTAzOCwzMCBAQCBzdGF0aWMgdm9pZCBz Y3RwX2Fzc29jX2JoX3JjdihzdHJ1Y3Qgd29ya19zdHJ1Y3QgKndvcmspCiAJCXN0YXRlID0gYXNv Yy0+c3RhdGU7CiAJCXN1YnR5cGUgPSBTQ1RQX1NUX0NIVU5LKGNodW5rLT5jaHVua19oZHItPnR5 cGUpOwogCisJCS8qIElmIHRoZSBmaXJzdCBjaHVuayBpbiB0aGUgcGFja2V0IGlzIEFVVEgsIGRv IHNwZWNpYWwKKwkJICogcHJvY2Vzc2luZyBzcGVjaWZpZWQgaW4gU2VjdGlvbiA2LjMgb2YgU0NU UC1BVVRIIHNwZWMKKwkJICovCisJCWlmIChmaXJzdF90aW1lICYmIHN1YnR5cGUuY2h1bmsgPT0g U0NUUF9DSURfQVVUSCkgeworCQkJc3RydWN0IHNjdHBfY2h1bmtoZHIgKm5leHRfaGRyOworCisJ CQluZXh0X2hkciA9IHNjdHBfaW5xX3BlZWsoaW5xdWV1ZSk7CisJCQlpZiAoIW5leHRfaGRyKQor CQkJCWdvdG8gbm9ybWFsOworCisJCQkvKiBJZiB0aGUgbmV4dCBjaHVuayBpcyBDT09LSUUtRUNI Tywgc2tpcCB0aGUgQVVUSAorCQkJICogY2h1bmsgd2hpbGUgc2F2aW5nIGEgcG9pbnRlciB0byBp dCBzbyB3ZSBjYW4gZG8KKwkJCSAqIEF1dGhlbnRpY2F0aW9uIGxhdGVyIChkdXJpbmcgY29va2ll LWVjaG8KKwkJCSAqIHByb2Nlc3NpbmcpLgorCQkJICovCisJCQlpZiAobmV4dF9oZHItPnR5cGUg PT0gU0NUUF9DSURfQ09PS0lFX0VDSE8pIHsKKwkJCQljaHVuay0+YXV0aF9jaHVuayA9IHNrYl9j bG9uZShjaHVuay0+c2tiLAorCQkJCQkJCSAgICAgIEdGUF9BVE9NSUMpOworCQkJCWNodW5rLT5h dXRoID0gMTsKKwkJCQljb250aW51ZTsKKwkJCX0KKwkJfQorCitub3JtYWw6CiAJCS8qIFNDVFAt QVVUSCwgU2VjdGlvbiA2LjM6CiAJCSAqICAgIFRoZSByZWNlaXZlciBoYXMgYSBsaXN0IG9mIGNo dW5rIHR5cGVzIHdoaWNoIGl0IGV4cGVjdHMKIAkJICogICAgdG8gYmUgcmVjZWl2ZWQgb25seSBh ZnRlciBhbiBBVVRILWNodW5rLiAgVGhpcyBsaXN0IGhhcwpAQCAtMTA3NSw2ICsxMTAwLDkgQEAg c3RhdGljIHZvaWQgc2N0cF9hc3NvY19iaF9yY3Yoc3RydWN0IHdvcmtfc3RydWN0ICp3b3JrKQog CQkvKiBJZiB0aGVyZSBpcyBhbiBlcnJvciBvbiBjaHVuaywgZGlzY2FyZCB0aGlzIHBhY2tldC4g Ki8KIAkJaWYgKGVycm9yICYmIGNodW5rKQogCQkJY2h1bmstPnBkaXNjYXJkID0gMTsKKworCQlp ZiAoZmlyc3RfdGltZSkKKwkJCWZpcnN0X3RpbWUgPSAwOwogCX0KIAlzY3RwX2Fzc29jaWF0aW9u X3B1dChhc29jKTsKIH0KZGlmZiAtLWdpdCBhL25ldC9zY3RwL3NtX3N0YXRlZnVucy5jIGIvbmV0 L3NjdHAvc21fc3RhdGVmdW5zLmMKaW5kZXggOGY4Y2NkZWQxM2U0Li43OTlhYWU3NTc0NDQgMTAw NjQ0Ci0tLSBhL25ldC9zY3RwL3NtX3N0YXRlZnVucy5jCisrKyBiL25ldC9zY3RwL3NtX3N0YXRl ZnVucy5jCkBAIC0xNTAsMTAgKzE1MCw3IEBAIHN0YXRpYyBlbnVtIHNjdHBfZGlzcG9zaXRpb24g c2N0cF9zZl92aW9sYXRpb25fY2h1bmsoCiAJCQkJCXN0cnVjdCBzY3RwX2NtZF9zZXEgKmNvbW1h bmRzKTsKIAogc3RhdGljIGVudW0gc2N0cF9pZXJyb3Igc2N0cF9zZl9hdXRoZW50aWNhdGUoCi0J CQkJCXN0cnVjdCBuZXQgKm5ldCwKLQkJCQkJY29uc3Qgc3RydWN0IHNjdHBfZW5kcG9pbnQgKmVw LAogCQkJCQljb25zdCBzdHJ1Y3Qgc2N0cF9hc3NvY2lhdGlvbiAqYXNvYywKLQkJCQkJY29uc3Qg dW5pb24gc2N0cF9zdWJ0eXBlIHR5cGUsCiAJCQkJCXN0cnVjdCBzY3RwX2NodW5rICpjaHVuayk7 CiAKIHN0YXRpYyBlbnVtIHNjdHBfZGlzcG9zaXRpb24gX19zY3RwX3NmX2RvXzlfMV9hYm9ydCgK QEAgLTYxOCw2ICs2MTUsMzggQEAgZW51bSBzY3RwX2Rpc3Bvc2l0aW9uIHNjdHBfc2ZfZG9fNV8x Q19hY2soc3RydWN0IG5ldCAqbmV0LAogCXJldHVybiBTQ1RQX0RJU1BPU0lUSU9OX0NPTlNVTUU7 CiB9CiAKK3N0YXRpYyBib29sIHNjdHBfYXV0aF9jaHVua192ZXJpZnkoc3RydWN0IG5ldCAqbmV0 LCBzdHJ1Y3Qgc2N0cF9jaHVuayAqY2h1bmssCisJCQkJICAgY29uc3Qgc3RydWN0IHNjdHBfYXNz b2NpYXRpb24gKmFzb2MpCit7CisJc3RydWN0IHNjdHBfY2h1bmsgYXV0aDsKKworCWlmICghY2h1 bmstPmF1dGhfY2h1bmspCisJCXJldHVybiB0cnVlOworCisJLyogU0NUUC1BVVRIOiAgYXV0aF9j aHVuayBwb2ludGVyIGlzIG9ubHkgc2V0IHdoZW4gdGhlIGNvb2tpZS1lY2hvCisJICogaXMgc3Vw cG9zZWQgdG8gYmUgYXV0aGVudGljYXRlZCBhbmQgd2UgaGF2ZSB0byBkbyBkZWxheWVkCisJICog YXV0aGVudGljYXRpb24uICBXZSd2ZSBqdXN0IHJlY3JlYXRlZCB0aGUgYXNzb2NpYXRpb24gdXNp bmcKKwkgKiB0aGUgaW5mb3JtYXRpb24gaW4gdGhlIGNvb2tpZSBhbmQgbm93IGl0J3MgbXVjaCBl YXNpZXIgdG8KKwkgKiBkbyB0aGUgYXV0aGVudGljYXRpb24uCisJICovCisKKwkvKiBNYWtlIHN1 cmUgdGhhdCB3ZSBhbmQgdGhlIHBlZXIgYXJlIEFVVEggY2FwYWJsZSAqLworCWlmICghbmV0LT5z Y3RwLmF1dGhfZW5hYmxlIHx8ICFhc29jLT5wZWVyLmF1dGhfY2FwYWJsZSkKKwkJcmV0dXJuIGZh bHNlOworCisJLyogc2V0LXVwIG91ciBmYWtlIGNodW5rIHNvIHRoYXQgd2UgY2FuIHByb2Nlc3Mg aXQgKi8KKwlhdXRoLnNrYiA9IGNodW5rLT5hdXRoX2NodW5rOworCWF1dGguYXNvYyA9IGNodW5r LT5hc29jOworCWF1dGguc2N0cF9oZHIgPSBjaHVuay0+c2N0cF9oZHI7CisJYXV0aC5jaHVua19o ZHIgPSAoc3RydWN0IHNjdHBfY2h1bmtoZHIgKikKKwkJCQlza2JfcHVzaChjaHVuay0+YXV0aF9j aHVuaywKKwkJCQkJIHNpemVvZihzdHJ1Y3Qgc2N0cF9jaHVua2hkcikpOworCXNrYl9wdWxsKGNo dW5rLT5hdXRoX2NodW5rLCBzaXplb2Yoc3RydWN0IHNjdHBfY2h1bmtoZHIpKTsKKwlhdXRoLnRy YW5zcG9ydCA9IGNodW5rLT50cmFuc3BvcnQ7CisKKwlyZXR1cm4gc2N0cF9zZl9hdXRoZW50aWNh dGUoYXNvYywgJmF1dGgpID09IFNDVFBfSUVSUk9SX05PX0VSUk9SOworfQorCiAvKgogICogUmVz cG9uZCB0byBhIG5vcm1hbCBDT09LSUUgRUNITyBjaHVuay4KICAqIFdlIGFyZSB0aGUgc2lkZSB0 aGF0IGlzIGJlaW5nIGFza2VkIGZvciBhbiBhc3NvY2lhdGlvbi4KQEAgLTc1NSwzNyArNzg0LDkg QEAgZW51bSBzY3RwX2Rpc3Bvc2l0aW9uIHNjdHBfc2ZfZG9fNV8xRF9jZShzdHJ1Y3QgbmV0ICpu ZXQsCiAJaWYgKGVycm9yKQogCQlnb3RvIG5vbWVtX2luaXQ7CiAKLQkvKiBTQ1RQLUFVVEg6ICBh dXRoX2NodW5rIHBvaW50ZXIgaXMgb25seSBzZXQgd2hlbiB0aGUgY29va2llLWVjaG8KLQkgKiBp cyBzdXBwb3NlZCB0byBiZSBhdXRoZW50aWNhdGVkIGFuZCB3ZSBoYXZlIHRvIGRvIGRlbGF5ZWQK LQkgKiBhdXRoZW50aWNhdGlvbi4gIFdlJ3ZlIGp1c3QgcmVjcmVhdGVkIHRoZSBhc3NvY2lhdGlv biB1c2luZwotCSAqIHRoZSBpbmZvcm1hdGlvbiBpbiB0aGUgY29va2llIGFuZCBub3cgaXQncyBt dWNoIGVhc2llciB0bwotCSAqIGRvIHRoZSBhdXRoZW50aWNhdGlvbi4KLQkgKi8KLQlpZiAoY2h1 bmstPmF1dGhfY2h1bmspIHsKLQkJc3RydWN0IHNjdHBfY2h1bmsgYXV0aDsKLQkJZW51bSBzY3Rw X2llcnJvciByZXQ7Ci0KLQkJLyogTWFrZSBzdXJlIHRoYXQgd2UgYW5kIHRoZSBwZWVyIGFyZSBB VVRIIGNhcGFibGUgKi8KLQkJaWYgKCFuZXQtPnNjdHAuYXV0aF9lbmFibGUgfHwgIW5ld19hc29j LT5wZWVyLmF1dGhfY2FwYWJsZSkgewotCQkJc2N0cF9hc3NvY2lhdGlvbl9mcmVlKG5ld19hc29j KTsKLQkJCXJldHVybiBzY3RwX3NmX3BkaXNjYXJkKG5ldCwgZXAsIGFzb2MsIHR5cGUsIGFyZywg Y29tbWFuZHMpOwotCQl9Ci0KLQkJLyogc2V0LXVwIG91ciBmYWtlIGNodW5rIHNvIHRoYXQgd2Ug Y2FuIHByb2Nlc3MgaXQgKi8KLQkJYXV0aC5za2IgPSBjaHVuay0+YXV0aF9jaHVuazsKLQkJYXV0 aC5hc29jID0gY2h1bmstPmFzb2M7Ci0JCWF1dGguc2N0cF9oZHIgPSBjaHVuay0+c2N0cF9oZHI7 Ci0JCWF1dGguY2h1bmtfaGRyID0gKHN0cnVjdCBzY3RwX2NodW5raGRyICopCi0JCQkJCXNrYl9w dXNoKGNodW5rLT5hdXRoX2NodW5rLAotCQkJCQkJIHNpemVvZihzdHJ1Y3Qgc2N0cF9jaHVua2hk cikpOwotCQlza2JfcHVsbChjaHVuay0+YXV0aF9jaHVuaywgc2l6ZW9mKHN0cnVjdCBzY3RwX2No dW5raGRyKSk7Ci0JCWF1dGgudHJhbnNwb3J0ID0gY2h1bmstPnRyYW5zcG9ydDsKLQotCQlyZXQg PSBzY3RwX3NmX2F1dGhlbnRpY2F0ZShuZXQsIGVwLCBuZXdfYXNvYywgdHlwZSwgJmF1dGgpOwot CQlpZiAocmV0ICE9IFNDVFBfSUVSUk9SX05PX0VSUk9SKSB7Ci0JCQlzY3RwX2Fzc29jaWF0aW9u X2ZyZWUobmV3X2Fzb2MpOwotCQkJcmV0dXJuIHNjdHBfc2ZfcGRpc2NhcmQobmV0LCBlcCwgYXNv YywgdHlwZSwgYXJnLCBjb21tYW5kcyk7Ci0JCX0KKwlpZiAoIXNjdHBfYXV0aF9jaHVua192ZXJp ZnkobmV0LCBjaHVuaywgbmV3X2Fzb2MpKSB7CisJCXNjdHBfYXNzb2NpYXRpb25fZnJlZShuZXdf YXNvYyk7CisJCXJldHVybiBzY3RwX3NmX3BkaXNjYXJkKG5ldCwgZXAsIGFzb2MsIHR5cGUsIGFy ZywgY29tbWFuZHMpOwogCX0KIAogCXJlcGwgPSBzY3RwX21ha2VfY29va2llX2FjayhuZXdfYXNv YywgY2h1bmspOwpAQCAtMTc1NSwxMyArMTc1NiwxNSBAQCBzdGF0aWMgZW51bSBzY3RwX2Rpc3Bv c2l0aW9uIHNjdHBfc2ZfZG9fZHVwY29va19hKAogCQkJICAgICAgIEdGUF9BVE9NSUMpKQogCQln b3RvIG5vbWVtOwogCisJaWYgKCFzY3RwX2F1dGhfY2h1bmtfdmVyaWZ5KG5ldCwgY2h1bmssIG5l d19hc29jKSkKKwkJcmV0dXJuIFNDVFBfRElTUE9TSVRJT05fRElTQ0FSRDsKKwogCS8qIE1ha2Ug c3VyZSBubyBuZXcgYWRkcmVzc2VzIGFyZSBiZWluZyBhZGRlZCBkdXJpbmcgdGhlCiAJICogcmVz dGFydC4gIFRob3VnaCB0aGlzIGlzIGEgcHJldHR5IGNvbXBsaWNhdGVkIGF0dGFjawogCSAqIHNp bmNlIHlvdSdkIGhhdmUgdG8gZ2V0IGluc2lkZSB0aGUgY29va2llLgogCSAqLwotCWlmICghc2N0 cF9zZl9jaGVja19yZXN0YXJ0X2FkZHJzKG5ld19hc29jLCBhc29jLCBjaHVuaywgY29tbWFuZHMp KSB7CisJaWYgKCFzY3RwX3NmX2NoZWNrX3Jlc3RhcnRfYWRkcnMobmV3X2Fzb2MsIGFzb2MsIGNo dW5rLCBjb21tYW5kcykpCiAJCXJldHVybiBTQ1RQX0RJU1BPU0lUSU9OX0NPTlNVTUU7Ci0JfQog CiAJLyogSWYgdGhlIGVuZHBvaW50IGlzIGluIHRoZSBTSFVURE9XTi1BQ0stU0VOVCBzdGF0ZSBh bmQgcmVjb2duaXplcwogCSAqIHRoZSBwZWVyIGhhcyByZXN0YXJ0ZWQgKEFjdGlvbiBBKSwgaXQg TVVTVCBOT1Qgc2V0dXAgYSBuZXcKQEAgLTE4NjcsNiArMTg3MCw5IEBAIHN0YXRpYyBlbnVtIHNj dHBfZGlzcG9zaXRpb24gc2N0cF9zZl9kb19kdXBjb29rX2IoCiAJCQkgICAgICAgR0ZQX0FUT01J QykpCiAJCWdvdG8gbm9tZW07CiAKKwlpZiAoIXNjdHBfYXV0aF9jaHVua192ZXJpZnkobmV0LCBj aHVuaywgbmV3X2Fzb2MpKQorCQlyZXR1cm4gU0NUUF9ESVNQT1NJVElPTl9ESVNDQVJEOworCiAJ LyogVXBkYXRlIHRoZSBjb250ZW50IG9mIGN1cnJlbnQgYXNzb2NpYXRpb24uICAqLwogCXNjdHBf YWRkX2NtZF9zZihjb21tYW5kcywgU0NUUF9DTURfVVBEQVRFX0FTU09DLCBTQ1RQX0FTT0MobmV3 X2Fzb2MpKTsKIAlzY3RwX2FkZF9jbWRfc2YoY29tbWFuZHMsIFNDVFBfQ01EX05FV19TVEFURSwK QEAgLTE5NjEsNiArMTk2Nyw5IEBAIHN0YXRpYyBlbnVtIHNjdHBfZGlzcG9zaXRpb24gc2N0cF9z Zl9kb19kdXBjb29rX2QoCiAJICogYSBDT09LSUUgQUNLLgogCSAqLwogCisJaWYgKCFzY3RwX2F1 dGhfY2h1bmtfdmVyaWZ5KG5ldCwgY2h1bmssIGFzb2MpKQorCQlyZXR1cm4gU0NUUF9ESVNQT1NJ VElPTl9ESVNDQVJEOworCiAJLyogRG9uJ3QgYWNjaWRlbnRhbGx5IG1vdmUgYmFjayBpbnRvIGVz dGFibGlzaGVkIHN0YXRlLiAqLwogCWlmIChhc29jLT5zdGF0ZSA8IFNDVFBfU1RBVEVfRVNUQUJM SVNIRUQpIHsKIAkJc2N0cF9hZGRfY21kX3NmKGNvbW1hbmRzLCBTQ1RQX0NNRF9USU1FUl9TVE9Q LApAQCAtNDExMSwxMCArNDEyMCw3IEBAIGVudW0gc2N0cF9kaXNwb3NpdGlvbiBzY3RwX3NmX2Vh dF9md2RfdHNuX2Zhc3QoCiAgKiBUaGUgcmV0dXJuIHZhbHVlIGlzIHRoZSBkaXNwb3NpdGlvbiBv ZiB0aGUgY2h1bmsuCiAgKi8KIHN0YXRpYyBlbnVtIHNjdHBfaWVycm9yIHNjdHBfc2ZfYXV0aGVu dGljYXRlKAotCQkJCQlzdHJ1Y3QgbmV0ICpuZXQsCi0JCQkJCWNvbnN0IHN0cnVjdCBzY3RwX2Vu ZHBvaW50ICplcCwKIAkJCQkJY29uc3Qgc3RydWN0IHNjdHBfYXNzb2NpYXRpb24gKmFzb2MsCi0J CQkJCWNvbnN0IHVuaW9uIHNjdHBfc3VidHlwZSB0eXBlLAogCQkJCQlzdHJ1Y3Qgc2N0cF9jaHVu ayAqY2h1bmspCiB7CiAJc3RydWN0IHNjdHBfYXV0aGhkciAqYXV0aF9oZHI7CkBAIC00MjEyLDcg KzQyMTgsNyBAQCBlbnVtIHNjdHBfZGlzcG9zaXRpb24gc2N0cF9zZl9lYXRfYXV0aChzdHJ1Y3Qg bmV0ICpuZXQsCiAJCQkJCQkgIGNvbW1hbmRzKTsKIAogCWF1dGhfaGRyID0gKHN0cnVjdCBzY3Rw X2F1dGhoZHIgKiljaHVuay0+c2tiLT5kYXRhOwotCWVycm9yID0gc2N0cF9zZl9hdXRoZW50aWNh dGUobmV0LCBlcCwgYXNvYywgdHlwZSwgY2h1bmspOworCWVycm9yID0gc2N0cF9zZl9hdXRoZW50 aWNhdGUoYXNvYywgY2h1bmspOwogCXN3aXRjaCAoZXJyb3IpIHsKIAljYXNlIFNDVFBfSUVSUk9S X0FVVEhfQkFEX0hNQUM6CiAJCS8qIEdlbmVyYXRlIHRoZSBFUlJPUiBjaHVuayBhbmQgZGlzY2Fy ZCB0aGUgcmVzdAotLSAKMi4xNC4zCgoKRnJvbSA0NGQ0YjRjNGEwZjQ3ZGU1NzlmYTZjMDk0ZDRl NmJhYTZmOWMzMzY2IE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBYaW4gTG9uZyA8bHVj aWVuLnhpbkBnbWFpbC5jb20+CkRhdGU6IFdlZCwgMiBNYXkgMjAxOCAxMzo0NToxMiArMDgwMApT dWJqZWN0OiBbUEFUQ0ggMjUvNDFdIHNjdHA6IGZpeCB0aGUgaXNzdWUgdGhhdCB0aGUgY29va2ll LWFjayB3aXRoIGF1dGggY2FuJ3QKIGdldCBwcm9jZXNzZWQKClsgVXBzdHJlYW0gY29tbWl0IGNl NDAyZjA0NGU0ZTQzMmMyOTZmOTBlYWFiYjhkYmU4ZjM2MjQzOTEgXQoKV2hlbiBhdXRoIGlzIGVu YWJsZWQgZm9yIGNvb2tpZS1hY2sgY2h1bmssIGluIHNjdHBfaW5xX3BvcCwgc2N0cApwcm9jZXNz ZXMgYXV0aCBjaHVuayBmaXJzdCwgdGhlbiBjb250aW51ZXMgdG8gdGhlIG5leHQgY2h1bmsgaW4K dGhpcyBwYWNrZXQgaWYgY2h1bmtfZW5kICsgY2h1bmtfaGRyIHNpemUgPCBza2JfdGFpbF9wb2lu dGVyKCkuCk90aGVyd2lzZSwgaXQgd2lsbCBnbyB0byB0aGUgbmV4dCBwYWNrZXQgb3IgZGlzY2Fy ZCB0aGlzIGNodW5rLgoKSG93ZXZlciwgaXQgbWlzc2VkIHRoZSBmYWN0IHRoYXQgY29va2llLWFj ayBjaHVuaydzIHNpemUgaXMgZXF1YWwKdG8gY2h1bmtfaGRyIHNpemUsIHdoaWNoIGNvdWxkbid0 IG1hdGNoIHRoYXQgY2hlY2ssIGFuZCB0aHVzIHRoaXMKY2h1bmsgd291bGQgbm90IGdldCBwcm9j ZXNzZWQuCgpUaGlzIHBhdGNoIGZpeGVzIGl0IGJ5IGNoYW5naW5nIHRoZSBjaGVjayB0byBjaHVu a19lbmQgKyBjaHVua19oZHIKc2l6ZSA8PSBza2JfdGFpbF9wb2ludGVyKCkuCgpGaXhlczogMjZi ODdjNzg4MTAwICgibmV0OiBzY3RwOiBmaXggcmVtb3RlIG1lbW9yeSBwcmVzc3VyZSBmcm9tIGV4 Y2Vzc2l2ZSBxdWV1ZWluZyIpClNpZ25lZC1vZmYtYnk6IFhpbiBMb25nIDxsdWNpZW4ueGluQGdt YWlsLmNvbT4KQWNrZWQtYnk6IE5laWwgSG9ybWFuIDxuaG9ybWFuQHR1eGRyaXZlci5jb20+CkFj a2VkLWJ5OiBNYXJjZWxvIFJpY2FyZG8gTGVpdG5lciA8bWFyY2Vsby5sZWl0bmVyQGdtYWlsLmNv bT4KU2lnbmVkLW9mZi1ieTogRGF2aWQgUy4gTWlsbGVyIDxkYXZlbUBkYXZlbWxvZnQubmV0Pgot LS0KIG5ldC9zY3RwL2lucXVldWUuYyB8IDIgKy0KIDEgZmlsZSBjaGFuZ2VkLCAxIGluc2VydGlv bigrKSwgMSBkZWxldGlvbigtKQoKZGlmZiAtLWdpdCBhL25ldC9zY3RwL2lucXVldWUuYyBiL25l dC9zY3RwL2lucXVldWUuYwppbmRleCA0ODM5MjU1MmVlN2MuLjFhYTg5ZDQ2ODJmNCAxMDA2NDQK LS0tIGEvbmV0L3NjdHAvaW5xdWV1ZS5jCisrKyBiL25ldC9zY3RwL2lucXVldWUuYwpAQCAtMjE3 LDcgKzIxNyw3IEBAIHN0cnVjdCBzY3RwX2NodW5rICpzY3RwX2lucV9wb3Aoc3RydWN0IHNjdHBf aW5xICpxdWV1ZSkKIAlza2JfcHVsbChjaHVuay0+c2tiLCBzaXplb2YoKmNoKSk7CiAJY2h1bmst PnN1YmgudiA9IE5VTEw7IC8qIFN1YmhlYWRlciBpcyBubyBsb25nZXIgdmFsaWQuICAqLwogCi0J aWYgKGNodW5rLT5jaHVua19lbmQgKyBzaXplb2YoKmNoKSA8IHNrYl90YWlsX3BvaW50ZXIoY2h1 bmstPnNrYikpIHsKKwlpZiAoY2h1bmstPmNodW5rX2VuZCArIHNpemVvZigqY2gpIDw9IHNrYl90 YWlsX3BvaW50ZXIoY2h1bmstPnNrYikpIHsKIAkJLyogVGhpcyBpcyBub3QgYSBzaW5nbGV0b24g Ki8KIAkJY2h1bmstPnNpbmdsZXRvbiA9IDA7CiAJfSBlbHNlIGlmIChjaHVuay0+Y2h1bmtfZW5k ID4gc2tiX3RhaWxfcG9pbnRlcihjaHVuay0+c2tiKSkgewotLSAKMi4xNC4zCgoKRnJvbSAxN2I4 MGFjZDQ1ZTAxNDk5Yjk0ZTU0N2M4M2YxODkxZDhmYzU0OTZiIE1vbiBTZXAgMTcgMDA6MDA6MDAg MjAwMQpGcm9tOiBYaW4gTG9uZyA8bHVjaWVuLnhpbkBnbWFpbC5jb20+CkRhdGU6IFRodSwgMjYg QXByIDIwMTggMTQ6MTM6NTcgKzA4MDAKU3ViamVjdDogW1BBVENIIDI2LzQxXSBzY3RwOiBoYW5k bGUgdHdvIHY0IGFkZHJzIGNvbXBhcmlzb24gaW4KIHNjdHBfaW5ldDZfY21wX2FkZHIKClsgVXBz dHJlYW0gY29tbWl0IGQ2MjUzMjliMDZlNDZiZDIwYmFmOWVlNDA4NDdkMTE5ODI1NjkyMDQgXQoK U2luY2Ugc2N0cCBpcHY2IHNvY2tldCBhbHNvIHN1cHBvcnRzIHY0IGFkZHJzLCBpdCdzIHBvc3Np YmxlIHRvCmNvbXBhcmUgdHdvIHY0IGFkZHJzIGluIHBmIHY2IC5jbXBfYWRkciwgc2N0cF9pbmV0 Nl9jbXBfYWRkci4KCkhvd2V2ZXIgYWZ0ZXIgQ29tbWl0IDEwNzFlYzlkNDUzYSAoInNjdHA6IGRv IG5vdCBjaGVjayBwb3J0IGluCnNjdHBfaW5ldDZfY21wX2FkZHIiKSwgaXQgbm8gbG9uZ2VyIGNh bGxzIGFmMS0+Y21wX2FkZHIsIHdoaWNoCmluIHRoaXMgY2FzZSBpcyBzY3RwX3Y0X2NtcF9hZGRy LCBidXQgY2FsbHMgX19zY3RwX3Y2X2NtcF9hZGRyCndoZXJlIGl0IGhhbmRsZXMgdGhlbSBhcyB0 d28gdjYgYWRkcnMuIEl0IHdvdWxkIGNhdXNlIGEgb3V0IG9mCmJvdW5kcyBjcmFzaC4KCnN5emJv dCBmb3VuZCB0aGlzIGNyYXNoIHdoZW4gdHJ5aW5nIHRvIGJpbmQgdHdvIHY0IGFkZHJzIHRvIGEK djYgc29ja2V0LgoKVGhpcyBwYXRjaCBmaXhlcyBpdCBieSBhZGRpbmcgdGhlIHByb2Nlc3MgZm9y IHR3byB2NCBhZGRycyBpbgpzY3RwX2luZXQ2X2NtcF9hZGRyLgoKRml4ZXM6IDEwNzFlYzlkNDUz YSAoInNjdHA6IGRvIG5vdCBjaGVjayBwb3J0IGluIHNjdHBfaW5ldDZfY21wX2FkZHIiKQpSZXBv cnRlZC1ieTogc3l6Ym90K2NkNDk0YzFkZDY4MWQ0ZDkzZWJiQHN5emthbGxlci5hcHBzcG90bWFp bC5jb20KU2lnbmVkLW9mZi1ieTogWGluIExvbmcgPGx1Y2llbi54aW5AZ21haWwuY29tPgpBY2tl ZC1ieTogTmVpbCBIb3JtYW4gPG5ob3JtYW5AdHV4ZHJpdmVyLmNvbT4KQWNrZWQtYnk6IE1hcmNl bG8gUmljYXJkbyBMZWl0bmVyIDxtYXJjZWxvLmxlaXRuZXJAZ21haWwuY29tPgpTaWduZWQtb2Zm LWJ5OiBEYXZpZCBTLiBNaWxsZXIgPGRhdmVtQGRhdmVtbG9mdC5uZXQ+Ci0tLQogbmV0L3NjdHAv aXB2Ni5jIHwgMyArKysKIDEgZmlsZSBjaGFuZ2VkLCAzIGluc2VydGlvbnMoKykKCmRpZmYgLS1n aXQgYS9uZXQvc2N0cC9pcHY2LmMgYi9uZXQvc2N0cC9pcHY2LmMKaW5kZXggNzIxOWExYzA0MWY3 Li44NTNmZWNkZjYzNzQgMTAwNjQ0Ci0tLSBhL25ldC9zY3RwL2lwdjYuYworKysgYi9uZXQvc2N0 cC9pcHY2LmMKQEAgLTg2NSw2ICs4NjUsOSBAQCBzdGF0aWMgaW50IHNjdHBfaW5ldDZfY21wX2Fk ZHIoY29uc3QgdW5pb24gc2N0cF9hZGRyICphZGRyMSwKIAlpZiAoc2N0cF9pc19hbnkoc2ssIGFk ZHIxKSB8fCBzY3RwX2lzX2FueShzaywgYWRkcjIpKQogCQlyZXR1cm4gMTsKIAorCWlmIChhZGRy MS0+c2Euc2FfZmFtaWx5ID09IEFGX0lORVQgJiYgYWRkcjItPnNhLnNhX2ZhbWlseSA9PSBBRl9J TkVUKQorCQlyZXR1cm4gYWRkcjEtPnY0LnNpbl9hZGRyLnNfYWRkciA9PSBhZGRyMi0+djQuc2lu X2FkZHIuc19hZGRyOworCiAJcmV0dXJuIF9fc2N0cF92Nl9jbXBfYWRkcihhZGRyMSwgYWRkcjIp OwogfQogCi0tIAoyLjE0LjMKCgpGcm9tIGUxYTM1ZWE4ODFlNjA2NDJhYjQzMGMwM2IzZmViMWY4 NTlmMTYyOTIgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCkZyb206IFhpbiBMb25nIDxsdWNpZW4u eGluQGdtYWlsLmNvbT4KRGF0ZTogVGh1LCAxMCBNYXkgMjAxOCAxNzozNDoxMyArMDgwMApTdWJq ZWN0OiBbUEFUQ0ggMjcvNDFdIHNjdHA6IHJlbW92ZSBzY3RwX2NodW5rX3B1dCBmcm9tIGZhaWxf bWFyayBlcnIgcGF0aCBpbgogc2N0cF91bHBldmVudF9tYWtlX3Jjdm1zZwoKWyBVcHN0cmVhbSBj b21taXQgNjkxMGUyNWRlMjI1N2UyYzgyYzdhMmQxMjZlMzQ2M2NkOGU1MDgxMCBdCgpJbiBDb21t aXQgMWY0NWY3OGY4ZTUxICgic2N0cDogYWxsb3cgR1NPIGZyYWdzIHRvIGFjY2VzcyB0aGUgY2h1 bmsgdG9vIiksCml0IGhlbGQgdGhlIGNodW5rIGluIHNjdHBfdWxwZXZlbnRfbWFrZV9yY3Ztc2cg dG8gYWNjZXNzIGl0IHNhZmVseSBsYXRlcgppbiByZWN2bXNnLiBIb3dldmVyLCBpdCBhbHNvIGFk ZGVkIHNjdHBfY2h1bmtfcHV0IGluIGZhaWxfbWFyayBlcnIgcGF0aCwKd2hpY2ggaXMgb25seSB0 cmlnZ2VyZWQgYmVmb3JlIGhvbGRpbmcgdGhlIGNodW5rLgoKc3l6Ym90IHJlcG9ydGVkIGEgdXNl LWFmdGVyLWZyZWUgY3Jhc2ggaGFwcGVuZWQgb24gdGhpcyBlcnIgcGF0aCwgd2hlcmUKaXQgc2hv dWxkbid0IGNhbGwgc2N0cF9jaHVua19wdXQuCgpUaGlzIHBhdGNoIHNpbXBseSByZW1vdmVzIHRo aXMgY2FsbC4KCkZpeGVzOiAxZjQ1Zjc4ZjhlNTEgKCJzY3RwOiBhbGxvdyBHU08gZnJhZ3MgdG8g YWNjZXNzIHRoZSBjaHVuayB0b28iKQpSZXBvcnRlZC1ieTogc3l6Ym90KzE0MWQ4OThjNWYyNDQ4 OWRiNGFhQHN5emthbGxlci5hcHBzcG90bWFpbC5jb20KU2lnbmVkLW9mZi1ieTogWGluIExvbmcg PGx1Y2llbi54aW5AZ21haWwuY29tPgpBY2tlZC1ieTogTmVpbCBIb3JtYW4gPG5ob3JtYW5AdHV4 ZHJpdmVyLmNvbT4KQWNrZWQtYnk6IE1hcmNlbG8gUmljYXJkbyBMZWl0bmVyIDxtYXJjZWxvLmxl aXRuZXJAZ21haWwuY29tPgpTaWduZWQtb2ZmLWJ5OiBEYXZpZCBTLiBNaWxsZXIgPGRhdmVtQGRh dmVtbG9mdC5uZXQ+Ci0tLQogbmV0L3NjdHAvdWxwZXZlbnQuYyB8IDEgLQogMSBmaWxlIGNoYW5n ZWQsIDEgZGVsZXRpb24oLSkKCmRpZmYgLS1naXQgYS9uZXQvc2N0cC91bHBldmVudC5jIGIvbmV0 L3NjdHAvdWxwZXZlbnQuYwppbmRleCA1NDQ3MjI4YmYxYTAuLjg1MzhjOTZjOTZjMSAxMDA2NDQK LS0tIGEvbmV0L3NjdHAvdWxwZXZlbnQuYworKysgYi9uZXQvc2N0cC91bHBldmVudC5jCkBAIC03 MTcsNyArNzE3LDYgQEAgc3RydWN0IHNjdHBfdWxwZXZlbnQgKnNjdHBfdWxwZXZlbnRfbWFrZV9y Y3Ztc2coc3RydWN0IHNjdHBfYXNzb2NpYXRpb24gKmFzb2MsCiAJcmV0dXJuIGV2ZW50OwogCiBm YWlsX21hcms6Ci0Jc2N0cF9jaHVua19wdXQoY2h1bmspOwogCWtmcmVlX3NrYihza2IpOwogZmFp bDoKIAlyZXR1cm4gTlVMTDsKLS0gCjIuMTQuMwoKCkZyb20gZWZhMWE0ZGRjNjY3M2EzZmVlOGQ2 MDg3NWU1MTkzOGNmOTdiNDk4OCBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJvbTogWGluIExv bmcgPGx1Y2llbi54aW5AZ21haWwuY29tPgpEYXRlOiBXZWQsIDIgTWF5IDIwMTggMTM6Mzk6NDYg KzA4MDAKU3ViamVjdDogW1BBVENIIDI4LzQxXSBzY3RwOiB1c2UgdGhlIG9sZCBhc29jIHdoZW4g bWFraW5nIHRoZSBjb29raWUtYWNrIGNodW5rCiBpbiBkdXBjb29rX2QKClsgVXBzdHJlYW0gY29t bWl0IDQ2ZTE2ZDRiOTU2ODY3MDEzZTBiYmQ3ZjJiYWQyMDZmNGFhNTU3NTIgXQoKV2hlbiBwcm9j ZXNzaW5nIGEgZHVwbGljYXRlIGNvb2tpZS1lY2hvIGNodW5rLCBmb3IgY2FzZSAnRCcsIHNjdHAg d2lsbApub3QgcHJvY2VzcyB0aGUgcGFyYW0gZnJvbSB0aGlzIGNodW5rLiBJdCBtZWFucyBvbGQg YXNvYyBoYXMgbm90aGluZwp0byBiZSB1cGRhdGVkLCBhbmQgdGhlIG5ldyB0ZW1wIGFzb2MgZG9l c24ndCBoYXZlIHRoZSBjb21wbGV0ZSBpbmZvLgoKU28gdGhlcmUncyBubyByZWFzb24gdG8gdXNl IHRoZSBuZXcgYXNvYyB3aGVuIGNyZWF0aW5nIHRoZSBjb29raWUtYWNrCmNodW5rLiBPdGhlcndp c2UsIGxpa2Ugd2hlbiBhdXRoIGlzIGVuYWJsZWQgZm9yIGNvb2tpZS1hY2ssIHRoZSBjaHVuawpj YW4gbm90IGJlIHNldCB3aXRoIGF1dGgsIGFuZCBpdCB3aWxsIGRlZmluaXRlbHkgYmUgZHJvcHBl ZCBieSBwZWVyLgoKVGhpcyBpc3N1ZSBpcyB0aGVyZSBzaW5jZSB2ZXJ5IGJlZ2lubmluZywgYW5k IHdlIGZpeCBpdCBieSB1c2luZyB0aGUKb2xkIGFzb2MgaW5zdGVhZC4KClNpZ25lZC1vZmYtYnk6 IFhpbiBMb25nIDxsdWNpZW4ueGluQGdtYWlsLmNvbT4KQWNrZWQtYnk6IE5laWwgSG9ybWFuIDxu aG9ybWFuQHR1eGRyaXZlci5jb20+CkFja2VkLWJ5OiBNYXJjZWxvIFJpY2FyZG8gTGVpdG5lciA8 bWFyY2Vsby5sZWl0bmVyQGdtYWlsLmNvbT4KU2lnbmVkLW9mZi1ieTogRGF2aWQgUy4gTWlsbGVy IDxkYXZlbUBkYXZlbWxvZnQubmV0PgotLS0KIG5ldC9zY3RwL3NtX3N0YXRlZnVucy5jIHwgMiAr LQogMSBmaWxlIGNoYW5nZWQsIDEgaW5zZXJ0aW9uKCspLCAxIGRlbGV0aW9uKC0pCgpkaWZmIC0t Z2l0IGEvbmV0L3NjdHAvc21fc3RhdGVmdW5zLmMgYi9uZXQvc2N0cC9zbV9zdGF0ZWZ1bnMuYwpp bmRleCA3OTlhYWU3NTc0NDQuLjAxYjA3ODE3MjMwNiAxMDA2NDQKLS0tIGEvbmV0L3NjdHAvc21f c3RhdGVmdW5zLmMKKysrIGIvbmV0L3NjdHAvc21fc3RhdGVmdW5zLmMKQEAgLTIwMDksNyArMjAw OSw3IEBAIHN0YXRpYyBlbnVtIHNjdHBfZGlzcG9zaXRpb24gc2N0cF9zZl9kb19kdXBjb29rX2Qo CiAJCX0KIAl9CiAKLQlyZXBsID0gc2N0cF9tYWtlX2Nvb2tpZV9hY2sobmV3X2Fzb2MsIGNodW5r KTsKKwlyZXBsID0gc2N0cF9tYWtlX2Nvb2tpZV9hY2soYXNvYywgY2h1bmspOwogCWlmICghcmVw bCkKIAkJZ290byBub21lbTsKIAotLSAKMi4xNC4zCgoKRnJvbSAyNzdkMGI3YWZlZjQ1OTY1ZmE5 NjVlNjBiOTQyZGM4N2Q4MTZkYmY2IE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBOZWFs IENhcmR3ZWxsIDxuY2FyZHdlbGxAZ29vZ2xlLmNvbT4KRGF0ZTogVHVlLCAxIE1heSAyMDE4IDIx OjQ1OjQxIC0wNDAwClN1YmplY3Q6IFtQQVRDSCAyOS80MV0gdGNwX2JicjogZml4IHRvIHplcm8g aWRsZV9yZXN0YXJ0IG9ubHkgdXBvbiBTL0FDS2VkCiBkYXRhCgpbIFVwc3RyZWFtIGNvbW1pdCBl NmU2YTI3OGIxZWFmZmExOWQ0MjE4NmJmYWNkMWZmYzE1YTUwYjNmIF0KClByZXZpb3VzbHkgdGhl IGJici0+aWRsZV9yZXN0YXJ0IHRyYWNraW5nIHdhcyB6ZXJvaW5nIG91dCB0aGUKYmJyLT5pZGxl X3Jlc3RhcnQgYml0IHVwb24gQUNLcyB0aGF0IGRpZCBub3QgU0FDSyBvciBBQ0sgYW55dGhpbmcs CmUuZy4gcmVjZWl2aW5nIGluY29taW5nIGRhdGEgb3IgcmVjZWl2ZXIgd2luZG93IHVwZGF0ZXMu IEluIHN1Y2gKc2l0dWF0aW9ucyBCQlIgd291bGQgZm9yZ2V0IHRoYXQgdGhpcyB3YXMgYSByZXN0 YXJ0LWZyb20taWRsZQpzaXR1YXRpb24sIGFuZCBpZiB0aGUgbWluX3J0dCBoYWQgZXhwaXJlZCBp dCB3b3VsZCB1bm5lY2Vzc2FyaWx5IGVudGVyClBST0JFX1JUVCAoZXZlbiB0aG91Z2ggd2Ugd2Vy ZSBhY3R1YWxseSByZXN0YXJ0aW5nIGZyb20gaWRsZSBidXQgaGFkCm1lcmVseSBmb3Jnb3R0ZW4g dGhhdCBmYWN0KS4KClRoZSBmaXggaXMgc2ltcGxlOiB3ZSBuZWVkIHRvIHJlbWVtYmVyIHdlIGFy ZSByZXN0YXJ0aW5nIGZyb20gaWRsZQp1bnRpbCB3ZSByZWNlaXZlIGEgUy9BQ0sgZm9yIHNvbWUg ZGF0YSAoYSBTL0FDSyBmb3IgdGhlIGZpcnN0IGZsaWdodApvZiBkYXRhIHdlIHNlbmQgYXMgd2Ug YXJlIHJlc3RhcnRpbmcpLgoKVGhpcyBjb21taXQgaXMgYSBzdGFibGUgY2FuZGlkYXRlIGZvciBr ZXJuZWxzIGJhY2sgYXMgZmFyIGFzIDQuOS4KCkZpeGVzOiAwZjg3ODJlYTE0OTcgKCJ0Y3BfYmJy OiBhZGQgQkJSIGNvbmdlc3Rpb24gY29udHJvbCIpClNpZ25lZC1vZmYtYnk6IE5lYWwgQ2FyZHdl bGwgPG5jYXJkd2VsbEBnb29nbGUuY29tPgpTaWduZWQtb2ZmLWJ5OiBZdWNodW5nIENoZW5nIDx5 Y2hlbmdAZ29vZ2xlLmNvbT4KU2lnbmVkLW9mZi1ieTogU29oZWlsIEhhc3NhcyBZZWdhbmVoIDxz b2hlaWxAZ29vZ2xlLmNvbT4KU2lnbmVkLW9mZi1ieTogUHJpeWFyYW5qYW4gSmhhIDxwcml5YXJq aGFAZ29vZ2xlLmNvbT4KU2lnbmVkLW9mZi1ieTogWW91c3VrIFNldW5nIDx5c3NldW5nQGdvb2ds ZS5jb20+ClNpZ25lZC1vZmYtYnk6IERhdmlkIFMuIE1pbGxlciA8ZGF2ZW1AZGF2ZW1sb2Z0Lm5l dD4KLS0tCiBuZXQvaXB2NC90Y3BfYmJyLmMgfCA0ICsrKy0KIDEgZmlsZSBjaGFuZ2VkLCAzIGlu c2VydGlvbnMoKyksIDEgZGVsZXRpb24oLSkKCmRpZmYgLS1naXQgYS9uZXQvaXB2NC90Y3BfYmJy LmMgYi9uZXQvaXB2NC90Y3BfYmJyLmMKaW5kZXggMjVjNWEwYjYwY2ZjLi45YTBiOTUyZGQwOWIg MTAwNjQ0Ci0tLSBhL25ldC9pcHY0L3RjcF9iYnIuYworKysgYi9uZXQvaXB2NC90Y3BfYmJyLmMK QEAgLTgwMiw3ICs4MDIsOSBAQCBzdGF0aWMgdm9pZCBiYnJfdXBkYXRlX21pbl9ydHQoc3RydWN0 IHNvY2sgKnNrLCBjb25zdCBzdHJ1Y3QgcmF0ZV9zYW1wbGUgKnJzKQogCQkJfQogCQl9CiAJfQot CWJici0+aWRsZV9yZXN0YXJ0ID0gMDsKKwkvKiBSZXN0YXJ0IGFmdGVyIGlkbGUgZW5kcyBvbmx5 IG9uY2Ugd2UgcHJvY2VzcyBhIG5ldyBTL0FDSyBmb3IgZGF0YSAqLworCWlmIChycy0+ZGVsaXZl cmVkID4gMCkKKwkJYmJyLT5pZGxlX3Jlc3RhcnQgPSAwOwogfQogCiBzdGF0aWMgdm9pZCBiYnJf dXBkYXRlX21vZGVsKHN0cnVjdCBzb2NrICpzaywgY29uc3Qgc3RydWN0IHJhdGVfc2FtcGxlICpy cykKLS0gCjIuMTQuMwoKCkZyb20gZWMyZGY2YzgwOWQzN2RhYTk0ZjI3MDllNWViZjgzYWJiYjk0 NDI4NSBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJvbTogWXVjaHVuZyBDaGVuZyA8eWNoZW5n QGdvb2dsZS5jb20+CkRhdGU6IFdlZCwgMjUgQXByIDIwMTggMTE6MzM6MDggLTA3MDAKU3ViamVj dDogW1BBVENIIDMwLzQxXSB0Y3A6IGlnbm9yZSBGYXN0IE9wZW4gb24gcmVwYWlyIG1vZGUKClsg VXBzdHJlYW0gY29tbWl0IDE2YWU2YWExNzA1Mjk5Nzg5ZjcxZmRlYTU5YmZiMTE5YzFmYmQ5YzAg XQoKVGhlIFRDUCByZXBhaXIgc2VxdWVuY2Ugb2Ygb3BlcmF0aW9uIGlzIHRvIGZpcnN0IHNldCB0 aGUgc29ja2V0IGluCnJlcGFpciBtb2RlLCB0aGVuIGluamVjdCB0aGUgVENQIHN0YXRzIGludG8g dGhlIHNvY2tldCB3aXRoIHJlcGFpcgpzb2NrZXQgb3B0aW9ucywgdGhlbiBjYWxsIGNvbm5lY3Qo KSB0byByZS1hY3RpdmF0ZSB0aGUgc29ja2V0LiBUaGUKY29ubmVjdCBzeXNjYWxsIHNpbXBseSBy ZXR1cm5zIGFuZCBzZXQgc3RhdGUgdG8gRVNUQUJMSVNIRUQKbW9kZS4gQXMgYSByZXN1bHQgRmFz dCBPcGVuIGlzIG1lYW5pbmdsZXNzIGZvciBUQ1AgcmVwYWlyLgoKSG93ZXZlciBhbGxvd2luZyBz ZW5kdG8oKSBzeXN0ZW0gY2FsbCB3aXRoIE1TR19GQVNUT1BFTiBmbGFnIGhhbGYtd2F5CmR1cmlu ZyB0aGUgcmVwYWlyIG9wZXJhdGlvbiBjb3VsZCB1bmV4cGVjdGVkbHkgY2F1c2UgZGF0YSB0byBi ZQpzZW50LCBiZWZvcmUgdGhlIG9wZXJhdGlvbiBmaW5pc2hlcyBjaGFuZ2luZyB0aGUgaW50ZXJu YWwgVENQIHN0YXRzCihlLmcuIE1TUykuICBUaGlzIGluIHR1cm4gdHJpZ2dlcnMgVENQIHdhcm5p bmdzIG9uIGluY29uc2lzdGVudApwYWNrZXQgYWNjb3VudGluZy4KClRoZSBmaXggaXMgdG8gc2lt cGx5IGRpc2FsbG93IEZhc3QgT3BlbiBvcGVyYXRpb24gb25jZSB0aGUgc29ja2V0CmlzIGluIHRo ZSByZXBhaXIgbW9kZS4KClJlcG9ydGVkLWJ5OiBzeXpib3QgPHN5emthbGxlckBnb29nbGVncm91 cHMuY29tPgpTaWduZWQtb2ZmLWJ5OiBZdWNodW5nIENoZW5nIDx5Y2hlbmdAZ29vZ2xlLmNvbT4K UmV2aWV3ZWQtYnk6IE5lYWwgQ2FyZHdlbGwgPG5jYXJkd2VsbEBnb29nbGUuY29tPgpSZXZpZXdl ZC1ieTogRXJpYyBEdW1hemV0IDxlZHVtYXpldEBnb29nbGUuY29tPgpTaWduZWQtb2ZmLWJ5OiBE YXZpZCBTLiBNaWxsZXIgPGRhdmVtQGRhdmVtbG9mdC5uZXQ+Ci0tLQogbmV0L2lwdjQvdGNwLmMg fCAzICsrLQogMSBmaWxlIGNoYW5nZWQsIDIgaW5zZXJ0aW9ucygrKSwgMSBkZWxldGlvbigtKQoK ZGlmZiAtLWdpdCBhL25ldC9pcHY0L3RjcC5jIGIvbmV0L2lwdjQvdGNwLmMKaW5kZXggZDAyM2Y4 NzllN2JiLi5mNzYzZmE4MjRhOTMgMTAwNjQ0Ci0tLSBhL25ldC9pcHY0L3RjcC5jCisrKyBiL25l dC9pcHY0L3RjcC5jCkBAIC0xMTk0LDcgKzExOTQsOCBAQCBpbnQgdGNwX3NlbmRtc2dfbG9ja2Vk KHN0cnVjdCBzb2NrICpzaywgc3RydWN0IG1zZ2hkciAqbXNnLCBzaXplX3Qgc2l6ZSkKIAkJCXVh cmctPnplcm9jb3B5ID0gMDsKIAl9CiAKLQlpZiAodW5saWtlbHkoZmxhZ3MgJiBNU0dfRkFTVE9Q RU4gfHwgaW5ldF9zayhzayktPmRlZmVyX2Nvbm5lY3QpKSB7CisJaWYgKHVubGlrZWx5KGZsYWdz ICYgTVNHX0ZBU1RPUEVOIHx8IGluZXRfc2soc2spLT5kZWZlcl9jb25uZWN0KSAmJgorCSAgICAh dHAtPnJlcGFpcikgewogCQllcnIgPSB0Y3Bfc2VuZG1zZ19mYXN0b3BlbihzaywgbXNnLCAmY29w aWVkX3N5biwgc2l6ZSk7CiAJCWlmIChlcnIgPT0gLUVJTlBST0dSRVNTICYmIGNvcGllZF9zeW4g PiAwKQogCQkJZ290byBvdXQ7Ci0tIAoyLjE0LjMKCgpGcm9tIDllY2Y5YThhMzEyNjQ5ZmQ3ZGM1 NzQyOWQwZjQzNjIyZTdkYzU2ZWEgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCkZyb206IE1pY2hh ZWwgQ2hhbiA8bWljaGFlbC5jaGFuQGJyb2FkY29tLmNvbT4KRGF0ZTogVGh1LCAzIE1heSAyMDE4 IDIwOjA0OjI3IC0wNDAwClN1YmplY3Q6IFtQQVRDSCAzMS80MV0gdGczOiBGaXggdnVubWFwKCkg QlVHX09OKCkgdHJpZ2dlcmVkIGZyb20KIHRnM19mcmVlX2NvbnNpc3RlbnQoKS4KClsgVXBzdHJl YW0gY29tbWl0IGQ4OWEyYWRiOGJmZTZmODk0OWZmMzg5YWNkYjlmYTI5OGI2ZThlMTIgXQoKdGcz X2ZyZWVfY29uc2lzdGVudCgpIGNhbGxzIGRtYV9mcmVlX2NvaGVyZW50KCkgdG8gZnJlZSB0cC0+ aHdfc3RhdHMKdW5kZXIgc3BpbmxvY2sgYW5kIGNhbiB0cmlnZ2VyIEJVR19PTigpIGluIHZ1bm1h cCgpIGJlY2F1c2UgdnVubWFwKCkKbWF5IHNsZWVwLiAgRml4IGl0IGJ5IHJlbW92aW5nIHRoZSBz cGlubG9jayBhbmQgcmVseWluZyBvbiB0aGUKVEczX0ZMQUdfSU5JVF9DT01QTEVURSBmbGFnIHRv IHByZXZlbnQgcmFjZSBjb25kaXRpb25zIGJldHdlZW4KdGczX2dldF9zdGF0czY0KCkgYW5kIHRn M19mcmVlX2NvbnNpc3RlbnQoKS4gIFRHM19GTEFHX0lOSVRfQ09NUExFVEUKaXMgYWx3YXlzIGNs ZWFyZWQgdW5kZXIgdHAtPmxvY2sgYmVmb3JlIHRnM19mcmVlX2NvbnNpc3RlbnQoKQphbmQgdGhl cmVmb3JlIHRnM19nZXRfc3RhdHM2NCgpIGNhbiBzYWZlbHkgYWNjZXNzIHRwLT5od19zdGF0cwp1 bmRlciB0cC0+bG9jayBpZiBURzNfRkxBR19JTklUX0NPTVBMRVRFIGlzIHNldC4KCkZpeGVzOiBm NTk5MmI3MmViZTAgKCJ0ZzM6IEZpeCByYWNlIGNvbmRpdGlvbiBpbiB0ZzNfZ2V0X3N0YXRzNjQo KS4iKQpSZXBvcnRlZC1ieTogWnVtZW5nIENoZW4gPHp1bWVuZy5jaGVuQGdtYWlsLmNvbT4KU2ln bmVkLW9mZi1ieTogTWljaGFlbCBDaGFuIDxtaWNoYWVsLmNoYW5AYnJvYWRjb20uY29tPgpTaWdu ZWQtb2ZmLWJ5OiBEYXZpZCBTLiBNaWxsZXIgPGRhdmVtQGRhdmVtbG9mdC5uZXQ+Ci0tLQogZHJp dmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vdGczLmMgfCA5ICsrKysrLS0tLQogMSBmaWxlIGNo YW5nZWQsIDUgaW5zZXJ0aW9ucygrKSwgNCBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9kcml2 ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS90ZzMuYyBiL2RyaXZlcnMvbmV0L2V0aGVybmV0L2Jy b2FkY29tL3RnMy5jCmluZGV4IDQ4NzM4ZWIyNzgwNi4uOWE4ZWY2MzA0NjZmIDEwMDY0NAotLS0g YS9kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS90ZzMuYworKysgYi9kcml2ZXJzL25ldC9l dGhlcm5ldC9icm9hZGNvbS90ZzMuYwpAQCAtODcyMywxNCArODcyMywxNSBAQCBzdGF0aWMgdm9p ZCB0ZzNfZnJlZV9jb25zaXN0ZW50KHN0cnVjdCB0ZzMgKnRwKQogCXRnM19tZW1fcnhfcmVsZWFz ZSh0cCk7CiAJdGczX21lbV90eF9yZWxlYXNlKHRwKTsKIAotCS8qIFByb3RlY3QgdGczX2dldF9z dGF0czY0KCkgZnJvbSByZWFkaW5nIGZyZWVkIHRwLT5od19zdGF0cy4gKi8KLQl0ZzNfZnVsbF9s b2NrKHRwLCAwKTsKKwkvKiB0cC0+aHdfc3RhdHMgY2FuIGJlIHJlZmVyZW5jZWQgc2FmZWx5Ogor CSAqICAgICAxLiB1bmRlciBydG5sX2xvY2sKKwkgKiAgICAgMi4gb3IgdW5kZXIgdHAtPmxvY2sg aWYgVEczX0ZMQUdfSU5JVF9DT01QTEVURSBpcyBzZXQuCisJICovCiAJaWYgKHRwLT5od19zdGF0 cykgewogCQlkbWFfZnJlZV9jb2hlcmVudCgmdHAtPnBkZXYtPmRldiwgc2l6ZW9mKHN0cnVjdCB0 ZzNfaHdfc3RhdHMpLAogCQkJCSAgdHAtPmh3X3N0YXRzLCB0cC0+c3RhdHNfbWFwcGluZyk7CiAJ CXRwLT5od19zdGF0cyA9IE5VTEw7CiAJfQotCXRnM19mdWxsX3VubG9jayh0cCk7CiB9CiAKIC8q CkBAIC0xNDE2Nyw3ICsxNDE2OCw3IEBAIHN0YXRpYyB2b2lkIHRnM19nZXRfc3RhdHM2NChzdHJ1 Y3QgbmV0X2RldmljZSAqZGV2LAogCXN0cnVjdCB0ZzMgKnRwID0gbmV0ZGV2X3ByaXYoZGV2KTsK IAogCXNwaW5fbG9ja19iaCgmdHAtPmxvY2spOwotCWlmICghdHAtPmh3X3N0YXRzKSB7CisJaWYg KCF0cC0+aHdfc3RhdHMgfHwgIXRnM19mbGFnKHRwLCBJTklUX0NPTVBMRVRFKSkgewogCQkqc3Rh dHMgPSB0cC0+bmV0X3N0YXRzX3ByZXY7CiAJCXNwaW5fdW5sb2NrX2JoKCZ0cC0+bG9jayk7CiAJ CXJldHVybjsKLS0gCjIuMTQuMwoKCkZyb20gNDQ4NmI4ODU1NzQ0ZGY5ZGEyOTNmZjhiNTUwMzIw YTdjYWI5Yzk4OCBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJvbTogRGViYWJyYXRhIEJhbmVy amVlIDxkYmFuZXJqZUBha2FtYWkuY29tPgpEYXRlOiBXZWQsIDkgTWF5IDIwMTggMTk6MzI6MTAg LTA0MDAKU3ViamVjdDogW1BBVENIIDMyLzQxXSBib25kaW5nOiBkbyBub3QgYWxsb3cgcmxiIHVw ZGF0ZXMgdG8gaW52YWxpZCBtYWMKClsgVXBzdHJlYW0gY29tbWl0IDRmYTg2NjdjYTM5ODljZTE0 Y2Y2NjMwMWZhMjUxNTQ0ZmJkZGJkZDAgXQoKTWFrZSBzdXJlIG11bHRpY2FzdCwgYnJvYWRjYXN0 LCBhbmQgemVybyBtYWMncyBjYW5ub3QgYmUgdGhlIG91dHB1dCBvZiBybGIKdXBkYXRlcywgd2hp Y2ggc2hvdWxkIGFsbCBiZSBkaXJlY3RlZCBhcnBzLiBSZWNlaXZlIGxvYWQgYmFsYW5jaW5nIHdp bGwgYmUKY29sbGFwc2VkIGlmIGFueSBvZiB0aGVzZSBoYXBwZW4sIGFzIHRoZSBzd2l0Y2ggd2ls bCBicm9hZGNhc3QuCgpTaWduZWQtb2ZmLWJ5OiBEZWJhYnJhdGEgQmFuZXJqZWUgPGRiYW5lcmpl QGFrYW1haS5jb20+ClNpZ25lZC1vZmYtYnk6IERhdmlkIFMuIE1pbGxlciA8ZGF2ZW1AZGF2ZW1s b2Z0Lm5ldD4KLS0tCiBkcml2ZXJzL25ldC9ib25kaW5nL2JvbmRfYWxiLmMgfCAyICstCiAxIGZp bGUgY2hhbmdlZCwgMSBpbnNlcnRpb24oKyksIDEgZGVsZXRpb24oLSkKCmRpZmYgLS1naXQgYS9k cml2ZXJzL25ldC9ib25kaW5nL2JvbmRfYWxiLmMgYi9kcml2ZXJzL25ldC9ib25kaW5nL2JvbmRf YWxiLmMKaW5kZXggYzAyY2M4MTdhNDkwLi42ZGM4MDRlMTE4NTIgMTAwNjQ0Ci0tLSBhL2RyaXZl cnMvbmV0L2JvbmRpbmcvYm9uZF9hbGIuYworKysgYi9kcml2ZXJzL25ldC9ib25kaW5nL2JvbmRf YWxiLmMKQEAgLTQ1MCw3ICs0NTAsNyBAQCBzdGF0aWMgdm9pZCBybGJfdXBkYXRlX2NsaWVudChz dHJ1Y3QgcmxiX2NsaWVudF9pbmZvICpjbGllbnRfaW5mbykKIHsKIAlpbnQgaTsKIAotCWlmICgh Y2xpZW50X2luZm8tPnNsYXZlKQorCWlmICghY2xpZW50X2luZm8tPnNsYXZlIHx8ICFpc192YWxp ZF9ldGhlcl9hZGRyKGNsaWVudF9pbmZvLT5tYWNfZHN0KSkKIAkJcmV0dXJuOwogCiAJZm9yIChp ID0gMDsgaSA8IFJMQl9BUlBfQlVSU1RfU0laRTsgaSsrKSB7Ci0tIAoyLjE0LjMKCgpGcm9tIGE5 YTQwMzdlYTI3OGViZWI2NzczZWFmNWNmZjY3YzAzODIxMDU2NzIgTW9uIFNlcCAxNyAwMDowMDow MCAyMDAxCkZyb206IERlYmFicmF0YSBCYW5lcmplZSA8ZGJhbmVyamVAYWthbWFpLmNvbT4KRGF0 ZTogV2VkLCA5IE1heSAyMDE4IDE5OjMyOjExIC0wNDAwClN1YmplY3Q6IFtQQVRDSCAzMy80MV0g Ym9uZGluZzogc2VuZCBsZWFybmluZyBwYWNrZXRzIGZvciB2bGFucyBvbiBzbGF2ZQoKWyBVcHN0 cmVhbSBjb21taXQgMjE3MDZlZThhNDdkM2VkZTdmZGFlMGJlNmQ3YzBhMGUzMWE4MzIyOSBdCgpU aGVyZSB3YXMgYSByZWdyZXNzaW9uIGF0IHNvbWUgcG9pbnQgZnJvbSB0aGUgaW50ZW5kZWQgZnVu Y3Rpb25hbGl0eSBvZgpjb21taXQgZjYwYzM3MDRlODdkICgiYm9uZGluZzogRml4IGFsYiBtb2Rl IHRvIG9ubHkgdXNlIGZpcnN0IGxldmVsCnZsYW5zLiIpCgpHaXZlbiB0aGUgcmV0dXJuIHZhbHVl IHZsYW5fZ2V0X2VuY2FwX2xldmVsKCkgd2UgbmVlZCB0byBzdG9yZSB0aGUgbmVzdApsZXZlbCBv ZiB0aGUgYm9uZCBkZXZpY2UsIGFuZCB0aGVuIGNvbXBhcmUgdGhlIHZsYW4ncyBlbmNhcCBsZXZl bCB0bwp0aGlzLiBXaXRob3V0IHRoaXMsIHRoaXMgY2hlY2sgYWx3YXlzIGZhaWxzIGFuZCBsZWFy bmluZyBwYWNrZXRzIGFyZQpuZXZlciBzZW50LgoKSW4gYWRkaXRpb24sIHRoaXMgc2FtZSBjb21t aXQgY2F1c2VkIGEgcmVncmVzc2lvbiBpbiB0aGUgYmVoYXZpb3Igb2YKYmFsYW5jZV9hbGIsIHdo aWNoIHJlcXVpcmVzIGxlYXJuaW5nIHBhY2tldHMgYmUgc2VudCBmb3IgYWxsIGludGVyZmFjZXMK dXNpbmcgdGhlIHNsYXZlJ3MgbWFjIGluIG9yZGVyIHRvIGxvYWQgYmFsYW5jZSBwcm9wZXJseS4g Rm9yIHZsYW4ncwp0aGF0IGhhdmUgbm90IHNldCBhIHVzZXIgbWFjLCB3ZSBjYW4gc2VuZCBhZnRl ciBjaGVja2luZyBvbmUgYml0LgpPdGhlcndpc2Ugd2UgbmVlZCBzZW5kIHRoZSBzZXQgbWFjLCBh bGJlaXQgZGVmZWF0aW5nIHJ4IGxvYWQgYmFsYW5jaW5nCmZvciB0aGF0IHZsYW4uCgpTaWduZWQt b2ZmLWJ5OiBEZWJhYnJhdGEgQmFuZXJqZWUgPGRiYW5lcmplQGFrYW1haS5jb20+ClNpZ25lZC1v ZmYtYnk6IERhdmlkIFMuIE1pbGxlciA8ZGF2ZW1AZGF2ZW1sb2Z0Lm5ldD4KLS0tCiBkcml2ZXJz L25ldC9ib25kaW5nL2JvbmRfYWxiLmMgIHwgMTMgKysrKysrKystLS0tLQogZHJpdmVycy9uZXQv Ym9uZGluZy9ib25kX21haW4uYyB8ICAyICsrCiBpbmNsdWRlL25ldC9ib25kaW5nLmggICAgICAg ICAgIHwgIDEgKwogMyBmaWxlcyBjaGFuZ2VkLCAxMSBpbnNlcnRpb25zKCspLCA1IGRlbGV0aW9u cygtKQoKZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L2JvbmRpbmcvYm9uZF9hbGIuYyBiL2RyaXZl cnMvbmV0L2JvbmRpbmcvYm9uZF9hbGIuYwppbmRleCA2ZGM4MDRlMTE4NTIuLjYwNjY2ZGIzMTg4 NiAxMDA2NDQKLS0tIGEvZHJpdmVycy9uZXQvYm9uZGluZy9ib25kX2FsYi5jCisrKyBiL2RyaXZl cnMvbmV0L2JvbmRpbmcvYm9uZF9hbGIuYwpAQCAtOTQzLDYgKzk0MywxMCBAQCBzdGF0aWMgdm9p ZCBhbGJfc2VuZF9scF92aWQoc3RydWN0IHNsYXZlICpzbGF2ZSwgdTggbWFjX2FkZHJbXSwKIAlz a2ItPnByaW9yaXR5ID0gVENfUFJJT19DT05UUk9MOwogCXNrYi0+ZGV2ID0gc2xhdmUtPmRldjsK IAorCW5ldGRldl9kYmcoc2xhdmUtPmJvbmQtPmRldiwKKwkJICAgIlNlbmQgbGVhcm5pbmcgcGFj a2V0OiBkZXYgJXMgbWFjICVwTSB2bGFuICVkXG4iLAorCQkgICBzbGF2ZS0+ZGV2LT5uYW1lLCBt YWNfYWRkciwgdmlkKTsKKwogCWlmICh2aWQpCiAJCV9fdmxhbl9od2FjY2VsX3B1dF90YWcoc2ti LCB2bGFuX3Byb3RvLCB2aWQpOwogCkBAIC05NjUsMTQgKzk2OSwxMyBAQCBzdGF0aWMgaW50IGFs Yl91cHBlcl9kZXZfd2FsayhzdHJ1Y3QgbmV0X2RldmljZSAqdXBwZXIsIHZvaWQgKl9kYXRhKQog CXU4ICptYWNfYWRkciA9IGRhdGEtPm1hY19hZGRyOwogCXN0cnVjdCBib25kX3ZsYW5fdGFnICp0 YWdzOwogCi0JaWYgKGlzX3ZsYW5fZGV2KHVwcGVyKSAmJiB2bGFuX2dldF9lbmNhcF9sZXZlbCh1 cHBlcikgPT0gMCkgewotCQlpZiAoc3RyaWN0X21hdGNoICYmCi0JCSAgICBldGhlcl9hZGRyX2Vx dWFsXzY0Yml0cyhtYWNfYWRkciwKLQkJCQkJICAgIHVwcGVyLT5kZXZfYWRkcikpIHsKKwlpZiAo aXNfdmxhbl9kZXYodXBwZXIpICYmCisJICAgIGJvbmQtPm5lc3RfbGV2ZWwgPT0gdmxhbl9nZXRf ZW5jYXBfbGV2ZWwodXBwZXIpIC0gMSkgeworCQlpZiAodXBwZXItPmFkZHJfYXNzaWduX3R5cGUg PT0gTkVUX0FERFJfU1RPTEVOKSB7CiAJCQlhbGJfc2VuZF9scF92aWQoc2xhdmUsIG1hY19hZGRy LAogCQkJCQl2bGFuX2Rldl92bGFuX3Byb3RvKHVwcGVyKSwKIAkJCQkJdmxhbl9kZXZfdmxhbl9p ZCh1cHBlcikpOwotCQl9IGVsc2UgaWYgKCFzdHJpY3RfbWF0Y2gpIHsKKwkJfSBlbHNlIHsKIAkJ CWFsYl9zZW5kX2xwX3ZpZChzbGF2ZSwgdXBwZXItPmRldl9hZGRyLAogCQkJCQl2bGFuX2Rldl92 bGFuX3Byb3RvKHVwcGVyKSwKIAkJCQkJdmxhbl9kZXZfdmxhbl9pZCh1cHBlcikpOwpkaWZmIC0t Z2l0IGEvZHJpdmVycy9uZXQvYm9uZGluZy9ib25kX21haW4uYyBiL2RyaXZlcnMvbmV0L2JvbmRp bmcvYm9uZF9tYWluLmMKaW5kZXggYmYzYmUyZTZkNGE4Li5mMGFhNTcyMjJmMTcgMTAwNjQ0Ci0t LSBhL2RyaXZlcnMvbmV0L2JvbmRpbmcvYm9uZF9tYWluLmMKKysrIGIvZHJpdmVycy9uZXQvYm9u ZGluZy9ib25kX21haW4uYwpAQCAtMTczNCw2ICsxNzM0LDggQEAgaW50IGJvbmRfZW5zbGF2ZShz dHJ1Y3QgbmV0X2RldmljZSAqYm9uZF9kZXYsIHN0cnVjdCBuZXRfZGV2aWNlICpzbGF2ZV9kZXYp CiAJaWYgKGJvbmRfbW9kZV91c2VzX3htaXRfaGFzaChib25kKSkKIAkJYm9uZF91cGRhdGVfc2xh dmVfYXJyKGJvbmQsIE5VTEwpOwogCisJYm9uZC0+bmVzdF9sZXZlbCA9IGRldl9nZXRfbmVzdF9s ZXZlbChib25kX2Rldik7CisKIAluZXRkZXZfaW5mbyhib25kX2RldiwgIkVuc2xhdmluZyAlcyBh cyAlcyBpbnRlcmZhY2Ugd2l0aCAlcyBsaW5rXG4iLAogCQkgICAgc2xhdmVfZGV2LT5uYW1lLAog CQkgICAgYm9uZF9pc19hY3RpdmVfc2xhdmUobmV3X3NsYXZlKSA/ICJhbiBhY3RpdmUiIDogImEg YmFja3VwIiwKZGlmZiAtLWdpdCBhL2luY2x1ZGUvbmV0L2JvbmRpbmcuaCBiL2luY2x1ZGUvbmV0 L2JvbmRpbmcuaAppbmRleCBiMmU2ODY1N2EyMTYuLjczNzk5ZGE1NzQwMCAxMDA2NDQKLS0tIGEv aW5jbHVkZS9uZXQvYm9uZGluZy5oCisrKyBiL2luY2x1ZGUvbmV0L2JvbmRpbmcuaApAQCAtMTk4 LDYgKzE5OCw3IEBAIHN0cnVjdCBib25kaW5nIHsKIAlzdHJ1Y3QgICBzbGF2ZSBfX3JjdSAqcHJp bWFyeV9zbGF2ZTsKIAlzdHJ1Y3QgICBib25kX3VwX3NsYXZlIF9fcmN1ICpzbGF2ZV9hcnI7IC8q IEFycmF5IG9mIHVzYWJsZSBzbGF2ZXMgKi8KIAlib29sICAgICBmb3JjZV9wcmltYXJ5OworCXUz MiAgICAgIG5lc3RfbGV2ZWw7CiAJczMyICAgICAgc2xhdmVfY250OyAvKiBuZXZlciBjaGFuZ2Ug dGhpcyB2YWx1ZSBvdXRzaWRlIHRoZSBhdHRhY2gvZGV0YWNoIHdyYXBwZXJzICovCiAJaW50ICAg ICAoKnJlY3ZfcHJvYmUpKGNvbnN0IHN0cnVjdCBza19idWZmICosIHN0cnVjdCBib25kaW5nICos CiAJCQkgICAgICBzdHJ1Y3Qgc2xhdmUgKik7Ci0tIAoyLjE0LjMKCgpGcm9tIDE5MjFiNWJjOWJl NjlmNjJkOWJkNjUzNjA0NWZkOTU0Y2Q2OTY0MGUgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCkZy b206IEppcmkgUGlya28gPGppcmlAbWVsbGFub3guY29tPgpEYXRlOiBGcmksIDExIE1heSAyMDE4 IDE3OjQ1OjMyICswMjAwClN1YmplY3Q6IFtQQVRDSCAzNC80MV0gbmV0OiBzY2hlZDogZml4IGVy cm9yIHBhdGggaW4gdGNmX3Byb3RvX2NyZWF0ZSgpIHdoZW4KIG1vZHVsZXMgYXJlIG5vdCBjb25m aWd1cmVkCgpbIFVwc3RyZWFtIGNvbW1pdCBkNjhkNzVmZGMzNGIwMjUzYzJiZGVkN2VkMThjZDYw ZWI1YTk1OTliIF0KCkluIGNhc2UgbW9kdWxlcyBhcmUgbm90IGNvbmZpZ3VyZWQsIGVycm9yIG91 dCB3aGVuIHRwLT5vcHMgaXMgbnVsbAphbmQgcHJldmVudCBsYXRlciBudWxsIHBvaW50ZXIgZGVy ZWZlcmVuY2UuCgpGaXhlczogMzNhNDg5MjdjMTkzICgic2NoZWQ6IHB1c2ggVEMgZmlsdGVyIHBy b3RvY29sIGNyZWF0aW9uIGludG8gYSBzZXBhcmF0ZSBmdW5jdGlvbiIpClNpZ25lZC1vZmYtYnk6 IEppcmkgUGlya28gPGppcmlAbWVsbGFub3guY29tPgpBY2tlZC1ieTogQ29uZyBXYW5nIDx4aXlv dS53YW5nY29uZ0BnbWFpbC5jb20+ClNpZ25lZC1vZmYtYnk6IERhdmlkIFMuIE1pbGxlciA8ZGF2 ZW1AZGF2ZW1sb2Z0Lm5ldD4KLS0tCiBuZXQvc2NoZWQvY2xzX2FwaS5jIHwgMiArLQogMSBmaWxl IGNoYW5nZWQsIDEgaW5zZXJ0aW9uKCspLCAxIGRlbGV0aW9uKC0pCgpkaWZmIC0tZ2l0IGEvbmV0 L3NjaGVkL2Nsc19hcGkuYyBiL25ldC9zY2hlZC9jbHNfYXBpLmMKaW5kZXggYzJmYWI0YmNiOGJl Li4yZjRlMTQ4M2FjZWQgMTAwNjQ0Ci0tLSBhL25ldC9zY2hlZC9jbHNfYXBpLmMKKysrIGIvbmV0 L3NjaGVkL2Nsc19hcGkuYwpAQCAtMTUxLDggKzE1MSw4IEBAIHN0YXRpYyBzdHJ1Y3QgdGNmX3By b3RvICp0Y2ZfcHJvdG9fY3JlYXRlKGNvbnN0IGNoYXIgKmtpbmQsIHUzMiBwcm90b2NvbCwKIAkJ fSBlbHNlIHsKIAkJCWVyciA9IC1FTk9FTlQ7CiAJCX0KLQkJZ290byBlcnJvdXQ7CiAjZW5kaWYK KwkJZ290byBlcnJvdXQ7CiAJfQogCXRwLT5jbGFzc2lmeSA9IHRwLT5vcHMtPmNsYXNzaWZ5Owog CXRwLT5wcm90b2NvbCA9IHByb3RvY29sOwotLSAKMi4xNC4zCgoKRnJvbSA0NjgwNDE3YmYzMGM2 N2MyMjViMzVlNGMwZmQ4NWJhYTQyNDBhMTc3IE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9t OiBUYXJpcSBUb3VrYW4gPHRhcmlxdEBtZWxsYW5veC5jb20+CkRhdGU6IFR1ZSwgMjAgTWFyIDIw MTggMTg6MTc6MjUgKzAyMDAKU3ViamVjdDogW1BBVENIIDM1LzQxXSBuZXQvbWx4NWU6IFRYLCBV c2UgY29ycmVjdCBjb3VudGVyIGluIGRtYV9tYXAgZXJyb3IKIGZsb3cKClsgVXBzdHJlYW0gY29t bWl0IGQ5YTk2ZWMzNjJlM2RhODc4YzM3ODg1NGUyNTMyMWM4NWJhYzUyYzIgXQoKSW4gY2FzZSBv ZiBhIGRtYV9tYXBwaW5nX2Vycm9yLCBkbyBub3QgdXNlIHdpLT5udW1fZG1hCmFzIGEgcGFyYW1l dGVyIGZvciBkbWEgdW5tYXAgZnVuY3Rpb24gYmVjYXVzZSBpdCdzIHlldAp0byBiZSBzZXQsIGFu ZCBob2xkcyBhbiBvdXQtb2YtZGF0ZSB2YWx1ZS4KVXNlIGFjdHVhbCB2YWx1ZSAobG9jYWwgdmFy aWFibGUgbnVtX2RtYSkgaW5zdGVhZC4KCkZpeGVzOiAzNDgwMmE0MmIzNTIgKCJuZXQvbWx4NWU6 IERvIG5vdCBtb2RpZnkgdGhlIFRYIFNLQiIpCkZpeGVzOiBlNTg2YjNiMGJhZWUgKCJuZXQvbWx4 NTogRXRoZXJuZXQgRGF0YXBhdGggZmlsZXMiKQpTaWduZWQtb2ZmLWJ5OiBUYXJpcSBUb3VrYW4g PHRhcmlxdEBtZWxsYW5veC5jb20+ClNpZ25lZC1vZmYtYnk6IFNhZWVkIE1haGFtZWVkIDxzYWVl ZG1AbWVsbGFub3guY29tPgotLS0KIGRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUv Y29yZS9lbl90eC5jIHwgMjAgKysrKysrKysrKy0tLS0tLS0tLS0KIDEgZmlsZSBjaGFuZ2VkLCAx MCBpbnNlcnRpb25zKCspLCAxMCBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9kcml2ZXJzL25l dC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvZW5fdHguYyBiL2RyaXZlcnMvbmV0L2V0aGVy bmV0L21lbGxhbm94L21seDUvY29yZS9lbl90eC5jCmluZGV4IGVlYTdmOTMxY2FkMy4uZDU2MDA0 N2MwYmY5IDEwMDY0NAotLS0gYS9kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2Nv cmUvZW5fdHguYworKysgYi9kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUv ZW5fdHguYwpAQCAtMjM0LDcgKzIzNCw3IEBAIG1seDVlX3R4d3FlX2J1aWxkX2RzZWdzKHN0cnVj dCBtbHg1ZV90eHFzcSAqc3EsIHN0cnVjdCBza19idWZmICpza2IsCiAJCWRtYV9hZGRyID0gZG1h X21hcF9zaW5nbGUoc3EtPnBkZXYsIHNrYl9kYXRhLCBoZWFkbGVuLAogCQkJCQkgIERNQV9UT19E RVZJQ0UpOwogCQlpZiAodW5saWtlbHkoZG1hX21hcHBpbmdfZXJyb3Ioc3EtPnBkZXYsIGRtYV9h ZGRyKSkpCi0JCQlyZXR1cm4gLUVOT01FTTsKKwkJCWdvdG8gZG1hX3VubWFwX3dxZV9lcnI7CiAK IAkJZHNlZy0+YWRkciAgICAgICA9IGNwdV90b19iZTY0KGRtYV9hZGRyKTsKIAkJZHNlZy0+bGtl eSAgICAgICA9IHNxLT5ta2V5X2JlOwpAQCAtMjUyLDcgKzI1Miw3IEBAIG1seDVlX3R4d3FlX2J1 aWxkX2RzZWdzKHN0cnVjdCBtbHg1ZV90eHFzcSAqc3EsIHN0cnVjdCBza19idWZmICpza2IsCiAJ CWRtYV9hZGRyID0gc2tiX2ZyYWdfZG1hX21hcChzcS0+cGRldiwgZnJhZywgMCwgZnN6LAogCQkJ CQkgICAgRE1BX1RPX0RFVklDRSk7CiAJCWlmICh1bmxpa2VseShkbWFfbWFwcGluZ19lcnJvcihz cS0+cGRldiwgZG1hX2FkZHIpKSkKLQkJCXJldHVybiAtRU5PTUVNOworCQkJZ290byBkbWFfdW5t YXBfd3FlX2VycjsKIAogCQlkc2VnLT5hZGRyICAgICAgID0gY3B1X3RvX2JlNjQoZG1hX2FkZHIp OwogCQlkc2VnLT5sa2V5ICAgICAgID0gc3EtPm1rZXlfYmU7CkBAIC0yNjQsNiArMjY0LDEwIEBA IG1seDVlX3R4d3FlX2J1aWxkX2RzZWdzKHN0cnVjdCBtbHg1ZV90eHFzcSAqc3EsIHN0cnVjdCBz a19idWZmICpza2IsCiAJfQogCiAJcmV0dXJuIG51bV9kbWE7CisKK2RtYV91bm1hcF93cWVfZXJy OgorCW1seDVlX2RtYV91bm1hcF93cWVfZXJyKHNxLCBudW1fZG1hKTsKKwlyZXR1cm4gLUVOT01F TTsKIH0KIAogc3RhdGljIGlubGluZSB2b2lkCkBAIC0zNTUsMTcgKzM1OSwxNSBAQCBzdGF0aWMg bmV0ZGV2X3R4X3QgbWx4NWVfc3FfeG1pdChzdHJ1Y3QgbWx4NWVfdHhxc3EgKnNxLCBzdHJ1Y3Qg c2tfYnVmZiAqc2tiLAogCW51bV9kbWEgPSBtbHg1ZV90eHdxZV9idWlsZF9kc2VncyhzcSwgc2ti LCBza2JfZGF0YSwgaGVhZGxlbiwKIAkJCQkJICAoc3RydWN0IG1seDVfd3FlX2RhdGFfc2VnICop Y3NlZyArIGRzX2NudCk7CiAJaWYgKHVubGlrZWx5KG51bV9kbWEgPCAwKSkKLQkJZ290byBkbWFf dW5tYXBfd3FlX2VycjsKKwkJZ290byBlcnJfZHJvcDsKIAogCW1seDVlX3R4d3FlX2NvbXBsZXRl KHNxLCBza2IsIG9wY29kZSwgZHNfY250ICsgbnVtX2RtYSwKIAkJCSAgICAgbnVtX2J5dGVzLCBu dW1fZG1hLCB3aSwgY3NlZyk7CiAKIAlyZXR1cm4gTkVUREVWX1RYX09LOwogCi1kbWFfdW5tYXBf d3FlX2VycjoKK2Vycl9kcm9wOgogCXNxLT5zdGF0cy5kcm9wcGVkKys7Ci0JbWx4NWVfZG1hX3Vu bWFwX3dxZV9lcnIoc3EsIHdpLT5udW1fZG1hKTsKLQogCWRldl9rZnJlZV9za2JfYW55KHNrYik7 CiAKIAlyZXR1cm4gTkVUREVWX1RYX09LOwpAQCAtNTk0LDE3ICs1OTYsMTUgQEAgbmV0ZGV2X3R4 X3QgbWx4NWlfc3FfeG1pdChzdHJ1Y3QgbWx4NWVfdHhxc3EgKnNxLCBzdHJ1Y3Qgc2tfYnVmZiAq c2tiLAogCW51bV9kbWEgPSBtbHg1ZV90eHdxZV9idWlsZF9kc2VncyhzcSwgc2tiLCBza2JfZGF0 YSwgaGVhZGxlbiwKIAkJCQkJICAoc3RydWN0IG1seDVfd3FlX2RhdGFfc2VnICopY3NlZyArIGRz X2NudCk7CiAJaWYgKHVubGlrZWx5KG51bV9kbWEgPCAwKSkKLQkJZ290byBkbWFfdW5tYXBfd3Fl X2VycjsKKwkJZ290byBlcnJfZHJvcDsKIAogCW1seDVlX3R4d3FlX2NvbXBsZXRlKHNxLCBza2Is IG9wY29kZSwgZHNfY250ICsgbnVtX2RtYSwKIAkJCSAgICAgbnVtX2J5dGVzLCBudW1fZG1hLCB3 aSwgY3NlZyk7CiAKIAlyZXR1cm4gTkVUREVWX1RYX09LOwogCi1kbWFfdW5tYXBfd3FlX2VycjoK K2Vycl9kcm9wOgogCXNxLT5zdGF0cy5kcm9wcGVkKys7Ci0JbWx4NWVfZG1hX3VubWFwX3dxZV9l cnIoc3EsIHdpLT5udW1fZG1hKTsKLQogCWRldl9rZnJlZV9za2JfYW55KHNrYik7CiAKIAlyZXR1 cm4gTkVUREVWX1RYX09LOwotLSAKMi4xNC4zCgoKRnJvbSA4ZTYwY2I4YTk2ZjU1N2NjNGRlMzZh N2U5OGNjNDU4ZmJkYTVhYTI5IE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBUYWxhdCBC YXRoZWVzaCA8dGFsYXRiQG1lbGxhbm94LmNvbT4KRGF0ZTogU3VuLCAxNSBBcHIgMjAxOCAxMToy NjoxOSArMDMwMApTdWJqZWN0OiBbUEFUQ0ggMzYvNDFdIG5ldC9tbHg1OiBBdm9pZCBjbGVhbmlu ZyBmbG93IHN0ZWVyaW5nIHRhYmxlIHR3aWNlCiBkdXJpbmcgZXJyb3IgZmxvdwoKWyBVcHN0cmVh bSBjb21taXQgOWMyNmY1Zjg5ZDAxY2EyMTU2MGM2YjhhOGU0MDU0YzI3MWNjM2E5YyBdCgpXaGVu IHdlIGZhaWwgdG8gaW5pdGlhbGl6ZSB0aGUgUlggcm9vdCBuYW1lc3BhY2UsIHdlIG5lZWQKdG8g Y2xlYW4gb25seSB0aGF0IGFuZCBub3QgdGhlIGVudGlyZSBmbG93IHN0ZWVyaW5nLgoKQ3VycmVu dGx5IHRoZSBjb2RlIG1heSB0cnkgdG8gY2xlYW4gdGhlIGZsb3cgc3RlZXJpbmcgdHdpY2UKb24g ZXJyb3Igd2l0Y2ggbGVhZHMgdG8gbnVsbCBwb2ludGVyIGRlZmVyZW5jZS4KTWFrZSBzdXJlIHdl IGNsZWFuIGNvcnJlY3RseS4KCkZpeGVzOiBmYmE1M2Y3YjU3MTkgKCJuZXQvbWx4NTogSW50cm9k dWNlIG1seDVfZmxvd19zdGVlcmluZyBzdHJ1Y3R1cmUiKQpTaWduZWQtb2ZmLWJ5OiBUYWxhdCBC YXRoZWVzaCA8dGFsYXRiQG1lbGxhbm94LmNvbT4KUmV2aWV3ZWQtYnk6IE1hcmsgQmxvY2ggPG1h cmtiQG1lbGxhbm94LmNvbT4KU2lnbmVkLW9mZi1ieTogU2FlZWQgTWFoYW1lZWQgPHNhZWVkbUBt ZWxsYW5veC5jb20+Ci0tLQogZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3Jl L2ZzX2NvcmUuYyB8IDIzICsrKysrKysrKysrKysrLS0tLS0tLS0tCiAxIGZpbGUgY2hhbmdlZCwg MTQgaW5zZXJ0aW9ucygrKSwgOSBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9kcml2ZXJzL25l dC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvZnNfY29yZS5jIGIvZHJpdmVycy9uZXQvZXRo ZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2ZzX2NvcmUuYwppbmRleCA1YTdiZWE2ODhlYzguLjMz ZTVmZjA4MWUzNiAxMDA2NDQKLS0tIGEvZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4 NS9jb3JlL2ZzX2NvcmUuYworKysgYi9kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1 L2NvcmUvZnNfY29yZS5jCkBAIC0xNzQsNiArMTc0LDcgQEAgc3RhdGljIHZvaWQgZGVsX2Zsb3df Z3JvdXAoc3RydWN0IGZzX25vZGUgKm5vZGUpOwogc3RhdGljIHZvaWQgZGVsX2Z0ZShzdHJ1Y3Qg ZnNfbm9kZSAqbm9kZSk7CiBzdGF0aWMgYm9vbCBtbHg1X2Zsb3dfZGVzdHNfY21wKHN0cnVjdCBt bHg1X2Zsb3dfZGVzdGluYXRpb24gKmQxLAogCQkJCXN0cnVjdCBtbHg1X2Zsb3dfZGVzdGluYXRp b24gKmQyKTsKK3N0YXRpYyB2b2lkIGNsZWFudXBfcm9vdF9ucyhzdHJ1Y3QgbWx4NV9mbG93X3Jv b3RfbmFtZXNwYWNlICpyb290X25zKTsKIHN0YXRpYyBzdHJ1Y3QgbWx4NV9mbG93X3J1bGUgKgog ZmluZF9mbG93X3J1bGUoc3RydWN0IGZzX2Z0ZSAqZnRlLAogCSAgICAgICBzdHJ1Y3QgbWx4NV9m bG93X2Rlc3RpbmF0aW9uICpkZXN0KTsKQEAgLTIwNDEsMjMgKzIwNDIsMjcgQEAgc3RhdGljIGlu dCBjcmVhdGVfYW5jaG9yX2Zsb3dfdGFibGUoc3RydWN0IG1seDVfZmxvd19zdGVlcmluZyAqc3Rl ZXJpbmcpCiAKIHN0YXRpYyBpbnQgaW5pdF9yb290X25zKHN0cnVjdCBtbHg1X2Zsb3dfc3RlZXJp bmcgKnN0ZWVyaW5nKQogeworCWludCBlcnI7CisKIAlzdGVlcmluZy0+cm9vdF9ucyA9IGNyZWF0 ZV9yb290X25zKHN0ZWVyaW5nLCBGU19GVF9OSUNfUlgpOwogCWlmICghc3RlZXJpbmctPnJvb3Rf bnMpCi0JCWdvdG8gY2xlYW51cDsKKwkJcmV0dXJuIC1FTk9NRU07CiAKLQlpZiAoaW5pdF9yb290 X3RyZWUoc3RlZXJpbmcsICZyb290X2ZzLCAmc3RlZXJpbmctPnJvb3RfbnMtPm5zLm5vZGUpKQot CQlnb3RvIGNsZWFudXA7CisJZXJyID0gaW5pdF9yb290X3RyZWUoc3RlZXJpbmcsICZyb290X2Zz LCAmc3RlZXJpbmctPnJvb3RfbnMtPm5zLm5vZGUpOworCWlmIChlcnIpCisJCWdvdG8gb3V0X2Vy cjsKIAogCXNldF9wcmlvX2F0dHJzKHN0ZWVyaW5nLT5yb290X25zKTsKLQotCWlmIChjcmVhdGVf YW5jaG9yX2Zsb3dfdGFibGUoc3RlZXJpbmcpKQotCQlnb3RvIGNsZWFudXA7CisJZXJyID0gY3Jl YXRlX2FuY2hvcl9mbG93X3RhYmxlKHN0ZWVyaW5nKTsKKwlpZiAoZXJyKQorCQlnb3RvIG91dF9l cnI7CiAKIAlyZXR1cm4gMDsKIAotY2xlYW51cDoKLQltbHg1X2NsZWFudXBfZnMoc3RlZXJpbmct PmRldik7Ci0JcmV0dXJuIC1FTk9NRU07CitvdXRfZXJyOgorCWNsZWFudXBfcm9vdF9ucyhzdGVl cmluZy0+cm9vdF9ucyk7CisJc3RlZXJpbmctPnJvb3RfbnMgPSBOVUxMOworCXJldHVybiBlcnI7 CiB9CiAKIHN0YXRpYyB2b2lkIGNsZWFuX3RyZWUoc3RydWN0IGZzX25vZGUgKm5vZGUpCi0tIAoy LjE0LjMKCgpGcm9tIDA0ZTgyOTMxNDc2MGIyZTg4ZjU4ZTMwZGMxZTU1NzE1ZmIxNDQ2Y2QgTW9u IFNlcCAxNyAwMDowMDowMCAyMDAxCkZyb206IFN0ZXBoZW4gSGVtbWluZ2VyIDxzdGVwaGVuQG5l dHdvcmtwbHVtYmVyLm9yZz4KRGF0ZTogV2VkLCA5IE1heSAyMDE4IDE0OjA5OjA0IC0wNzAwClN1 YmplY3Q6IFtQQVRDSCAzNy80MV0gaHZfbmV0dnNjOiBzZXQgbWFzdGVyIGRldmljZQoKWyBVcHN0 cmVhbSBjb21taXQgOTdmM2VmYjY0MzIzYmViMDY5MDU3NmU5ZDc0ZTk0OTk4YWQ2ZTgyYSBdCgpU aGUgaHlwZXItdiB0cmFuc3BhcmVudCBib25kaW5nIHNob3VsZCBoYXZlIHVzZWQgbWFzdGVyX2Rl dl9saW5rLgpUaGUgbmV0dnNjIGRldmljZSBzaG91bGQgbG9vayBsaWtlIGEgbWFzdGVyIGJvbmQg ZGV2aWNlIG5vdApsaWtlIHRoZSB1cHBlciBzaWRlIG9mIGEgdHVubmVsLgoKVGhpcyBtYWtlcyB0 aGUgc2VtYW50aWNzIHRoZSBzYW1lIHNvIHRoYXQgdXNlcnNwYWNlIGFwcGxpY2F0aW9ucwpsb29r aW5nIGF0IG5ldHdvcmsgZGV2aWNlcyBzZWUgdGhlIGNvcnJlY3QgbWFzdGVyIHJlbGF0aW9uc2hp cHNoaXAuCgpGaXhlczogMGMxOTU1NjdhOGY2ICgibmV0dnNjOiB0cmFuc3BhcmVudCBWRiBtYW5h Z2VtZW50IikKU2lnbmVkLW9mZi1ieTogU3RlcGhlbiBIZW1taW5nZXIgPHN0ZXBoZW5AbmV0d29y a3BsdW1iZXIub3JnPgpTaWduZWQtb2ZmLWJ5OiBEYXZpZCBTLiBNaWxsZXIgPGRhdmVtQGRhdmVt bG9mdC5uZXQ+Ci0tLQogZHJpdmVycy9uZXQvaHlwZXJ2L25ldHZzY19kcnYuYyB8IDMgKystCiAx IGZpbGUgY2hhbmdlZCwgMiBpbnNlcnRpb25zKCspLCAxIGRlbGV0aW9uKC0pCgpkaWZmIC0tZ2l0 IGEvZHJpdmVycy9uZXQvaHlwZXJ2L25ldHZzY19kcnYuYyBiL2RyaXZlcnMvbmV0L2h5cGVydi9u ZXR2c2NfZHJ2LmMKaW5kZXggYzg0OWRlM2NiMDQ2Li40NDRlNTYwZDkyOGIgMTAwNjQ0Ci0tLSBh L2RyaXZlcnMvbmV0L2h5cGVydi9uZXR2c2NfZHJ2LmMKKysrIGIvZHJpdmVycy9uZXQvaHlwZXJ2 L25ldHZzY19kcnYuYwpAQCAtMTc0Miw3ICsxNzQyLDggQEAgc3RhdGljIGludCBuZXR2c2NfdmZf am9pbihzdHJ1Y3QgbmV0X2RldmljZSAqdmZfbmV0ZGV2LAogCQlnb3RvIHJ4X2hhbmRsZXJfZmFp bGVkOwogCX0KIAotCXJldCA9IG5ldGRldl91cHBlcl9kZXZfbGluayh2Zl9uZXRkZXYsIG5kZXYp OworCXJldCA9IG5ldGRldl9tYXN0ZXJfdXBwZXJfZGV2X2xpbmsodmZfbmV0ZGV2LCBuZGV2LAor CQkJCQkgICBOVUxMLCBOVUxMKTsKIAlpZiAocmV0ICE9IDApIHsKIAkJbmV0ZGV2X2Vycih2Zl9u ZXRkZXYsCiAJCQkgICAiY2FuIG5vdCBzZXQgbWFzdGVyIGRldmljZSAlcyAoZXJyID0gJWQpXG4i LAotLSAKMi4xNC4zCgoKRnJvbSBiMTk1NmE5NTAxMDI3MTdkY2MyYWFmYmMwMGMyNWMzZmQxN2Ez OWQxIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBFcmljIER1bWF6ZXQgPGVkdW1hemV0 QGdvb2dsZS5jb20+CkRhdGU6IFN1biwgMjkgQXByIDIwMTggMDk6NTQ6NTkgLTA3MDAKU3ViamVj dDogW1BBVENIIDM4LzQxXSBpcHY2OiBmaXggdW5pbml0LXZhbHVlIGluIGlwNl9tdWx0aXBhdGhf bDNfa2V5cygpCgpbIFVwc3RyZWFtIGNvbW1pdCBjZWE2N2EyZGQ2YjI0MTlkY2MxM2EzOTMwOWI5 YTc5YTFmNzczMTkzIF0KCnN5emJvdC9LTVNBTiByZXBvcnRlZCBhbiB1bmluaXQtdmFsdWUgaW4g aXA2X211bHRpcGF0aF9sM19rZXlzKCksCnJvb3QgY2F1c2VkIHRvIGEgYmFkIGFzc3VtcHRpb24g b2YgSUNNUCBoZWFkZXIgYmVpbmcgYWxyZWFkeQpwdWxsZWQgaW4gc2tiLT5oZWFkCgppcF9tdWx0 aXBhdGhfbDNfa2V5cygpIGRvZXMgdGhlIGNvcnJlY3QgdGhpbmcsIHNvIGl0IGlzIGFuIElQdjYg b25seSBidWcuCgpCVUc6IEtNU0FOOiB1bmluaXQtdmFsdWUgaW4gaXA2X211bHRpcGF0aF9sM19r ZXlzIG5ldC9pcHY2L3JvdXRlLmM6MTgzMCBbaW5saW5lXQpCVUc6IEtNU0FOOiB1bmluaXQtdmFs dWUgaW4gcnQ2X211bHRpcGF0aF9oYXNoKzB4NWM0LzB4NjQwIG5ldC9pcHY2L3JvdXRlLmM6MTg1 OApDUFU6IDAgUElEOiA0NTA3IENvbW06IHN5ei1leGVjdXRvcjY2MSBOb3QgdGFpbnRlZCA0LjE2 LjArICM4NwpIYXJkd2FyZSBuYW1lOiBHb29nbGUgR29vZ2xlIENvbXB1dGUgRW5naW5lL0dvb2ds ZSBDb21wdXRlIEVuZ2luZSwgQklPUyBHb29nbGUgMDEvMDEvMjAxMQpDYWxsIFRyYWNlOgogX19k dW1wX3N0YWNrIGxpYi9kdW1wX3N0YWNrLmM6MTcgW2lubGluZV0KIGR1bXBfc3RhY2srMHgxODUv MHgxZDAgbGliL2R1bXBfc3RhY2suYzo1Mwoga21zYW5fcmVwb3J0KzB4MTQyLzB4MjQwIG1tL2tt c2FuL2ttc2FuLmM6MTA2NwogX19tc2FuX3dhcm5pbmdfMzIrMHg2Yy8weGIwIG1tL2ttc2FuL2tt c2FuX2luc3RyLmM6NjgzCiBpcDZfbXVsdGlwYXRoX2wzX2tleXMgbmV0L2lwdjYvcm91dGUuYzox ODMwIFtpbmxpbmVdCiBydDZfbXVsdGlwYXRoX2hhc2grMHg1YzQvMHg2NDAgbmV0L2lwdjYvcm91 dGUuYzoxODU4CiBpcDZfcm91dGVfaW5wdXQrMHg2NWEvMHg5MjAgbmV0L2lwdjYvcm91dGUuYzox ODg0CiBpcDZfcmN2X2ZpbmlzaCsweDQxMy8weDZlMCBuZXQvaXB2Ni9pcDZfaW5wdXQuYzo2OQog TkZfSE9PSyBpbmNsdWRlL2xpbnV4L25ldGZpbHRlci5oOjI4OCBbaW5saW5lXQogaXB2Nl9yY3Yr MHgxZTE2LzB4MjM0MCBuZXQvaXB2Ni9pcDZfaW5wdXQuYzoyMDgKIF9fbmV0aWZfcmVjZWl2ZV9z a2JfY29yZSsweDQ3ZGYvMHg0YTkwIG5ldC9jb3JlL2Rldi5jOjQ1NjIKIF9fbmV0aWZfcmVjZWl2 ZV9za2IgbmV0L2NvcmUvZGV2LmM6NDYyNyBbaW5saW5lXQogbmV0aWZfcmVjZWl2ZV9za2JfaW50 ZXJuYWwrMHg0OWQvMHg2MzAgbmV0L2NvcmUvZGV2LmM6NDcwMQogbmV0aWZfcmVjZWl2ZV9za2Ir MHgyMzAvMHgyNDAgbmV0L2NvcmUvZGV2LmM6NDcyNQogdHVuX3J4X2JhdGNoZWQgZHJpdmVycy9u ZXQvdHVuLmM6MTU1NSBbaW5saW5lXQogdHVuX2dldF91c2VyKzB4NzQwZi8weDdjNjAgZHJpdmVy cy9uZXQvdHVuLmM6MTk2MgogdHVuX2Nocl93cml0ZV9pdGVyKzB4MWQ0LzB4MzMwIGRyaXZlcnMv bmV0L3R1bi5jOjE5OTAKIGNhbGxfd3JpdGVfaXRlciBpbmNsdWRlL2xpbnV4L2ZzLmg6MTc4MiBb aW5saW5lXQogbmV3X3N5bmNfd3JpdGUgZnMvcmVhZF93cml0ZS5jOjQ2OSBbaW5saW5lXQogX192 ZnNfd3JpdGUrMHg3ZmIvMHg5ZjAgZnMvcmVhZF93cml0ZS5jOjQ4MgogdmZzX3dyaXRlKzB4NDYz LzB4OGQwIGZzL3JlYWRfd3JpdGUuYzo1NDQKIFNZU0Nfd3JpdGUrMHgxNzIvMHgzNjAgZnMvcmVh ZF93cml0ZS5jOjU4OQogU3lTX3dyaXRlKzB4NTUvMHg4MCBmcy9yZWFkX3dyaXRlLmM6NTgxCiBk b19zeXNjYWxsXzY0KzB4MzA5LzB4NDMwIGFyY2gveDg2L2VudHJ5L2NvbW1vbi5jOjI4NwogZW50 cnlfU1lTQ0FMTF82NF9hZnRlcl9od2ZyYW1lKzB4M2QvMHhhMgoKRml4ZXM6IDIzYWViZGFjYjA1 ZCAoImlwdjY6IENvbXB1dGUgbXVsdGlwYXRoIGhhc2ggZm9yIElDTVAgZXJyb3JzIGZyb20gb2Zm ZW5kaW5nIHBhY2tldCIpClNpZ25lZC1vZmYtYnk6IEVyaWMgRHVtYXpldCA8ZWR1bWF6ZXRAZ29v Z2xlLmNvbT4KUmVwb3J0ZWQtYnk6IHN5emJvdCA8c3l6a2FsbGVyQGdvb2dsZWdyb3Vwcy5jb20+ CkNjOiBKYWt1YiBTaXRuaWNraSA8amtic0ByZWRoYXQuY29tPgpBY2tlZC1ieTogSmFrdWIgU2l0 bmlja2kgPGprYnNAcmVkaGF0LmNvbT4KU2lnbmVkLW9mZi1ieTogRGF2aWQgUy4gTWlsbGVyIDxk YXZlbUBkYXZlbWxvZnQubmV0PgotLS0KIG5ldC9pcHY2L3JvdXRlLmMgfCA3ICsrKysrKy0KIDEg ZmlsZSBjaGFuZ2VkLCA2IGluc2VydGlvbnMoKyksIDEgZGVsZXRpb24oLSkKCmRpZmYgLS1naXQg YS9uZXQvaXB2Ni9yb3V0ZS5jIGIvbmV0L2lwdjYvcm91dGUuYwppbmRleCBlMDRjNTM0YjU3M2Uu LjdkNTBkODg5YWI2ZSAxMDA2NDQKLS0tIGEvbmV0L2lwdjYvcm91dGUuYworKysgYi9uZXQvaXB2 Ni9yb3V0ZS5jCkBAIC0xMjIyLDExICsxMjIyLDE2IEBAIHN0YXRpYyB2b2lkIGlwNl9tdWx0aXBh dGhfbDNfa2V5cyhjb25zdCBzdHJ1Y3Qgc2tfYnVmZiAqc2tiLAogCWNvbnN0IHN0cnVjdCBpcHY2 aGRyICppbm5lcl9pcGg7CiAJY29uc3Qgc3RydWN0IGljbXA2aGRyICppY21waDsKIAlzdHJ1Y3Qg aXB2NmhkciBfaW5uZXJfaXBoOworCXN0cnVjdCBpY21wNmhkciBfaWNtcGg7CiAKIAlpZiAobGlr ZWx5KG91dGVyX2lwaC0+bmV4dGhkciAhPSBJUFBST1RPX0lDTVBWNikpCiAJCWdvdG8gb3V0Owog Ci0JaWNtcGggPSBpY21wNl9oZHIoc2tiKTsKKwlpY21waCA9IHNrYl9oZWFkZXJfcG9pbnRlcihz a2IsIHNrYl90cmFuc3BvcnRfb2Zmc2V0KHNrYiksCisJCQkJICAgc2l6ZW9mKF9pY21waCksICZf aWNtcGgpOworCWlmICghaWNtcGgpCisJCWdvdG8gb3V0OworCiAJaWYgKGljbXBoLT5pY21wNl90 eXBlICE9IElDTVBWNl9ERVNUX1VOUkVBQ0ggJiYKIAkgICAgaWNtcGgtPmljbXA2X3R5cGUgIT0g SUNNUFY2X1BLVF9UT09CSUcgJiYKIAkgICAgaWNtcGgtPmljbXA2X3R5cGUgIT0gSUNNUFY2X1RJ TUVfRVhDRUVEICYmCi0tIAoyLjE0LjMKCgpGcm9tIDBiYzM0ZmNmZGU2ZjI1Y2VjNWU1YTIwZDky MzFkZmRmM2E4MjViZjggTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCkZyb206IEppYW5ibyBMaXUg PGppYW5ib2xAbWVsbGFub3guY29tPgpEYXRlOiBUdWUsIDI3IE1hciAyMDE4IDA5OjIyOjE2ICsw MDAwClN1YmplY3Q6IFtQQVRDSCAzOS80MV0gbmV0L21seDVlOiBBbGxvdyBvZmZsb2FkaW5nIGlw djQgaGVhZGVyIHJlLXdyaXRlIGZvcgogaWNtcAoKWyBVcHN0cmVhbSBjb21taXQgMWNjZWYzNTBk YjJmMTM3MTUwNDBhMTBkZjc3YWU2NzIyMDYwMDRjZiBdCgpGb3IgSUNNUHY0LCB0aGUgY2hlY2tz dW0gaXMgY2FsY3VsYXRlZCBmcm9tIHRoZSBJQ01QIGhlYWRlcnMgYW5kIGRhdGEuClNpbmNlIHRo ZSBJQ01QdjQgY2hlY2tzdW0gZG9lc24ndCBjb3ZlciB0aGUgSVAgaGVhZGVyLCB3ZSBjYW4gYWxs b3cgdG8KZG8gTDMgaGVhZGVyIHJlLXdyaXRlIGZvciB0aGlzIHByb3RvY29sLgoKRml4ZXM6IGJk ZDY2YWMwYWVlZCAoJ25ldC9tbHg1ZTogRGlzYWxsb3cgVEMgb2ZmbG9hZGluZyBvZiB1bnN1cHBv cnRlZCBtYXRjaC9hY3Rpb24gY29tYmluYXRpb25zJykKU2lnbmVkLW9mZi1ieTogSmlhbmJvIExp dSA8amlhbmJvbEBtZWxsYW5veC5jb20+ClJldmlld2VkLWJ5OiBPciBHZXJsaXR6IDxvZ2VybGl0 ekBtZWxsYW5veC5jb20+ClNpZ25lZC1vZmYtYnk6IFNhZWVkIE1haGFtZWVkIDxzYWVlZG1AbWVs bGFub3guY29tPgotLS0KIGRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9l bl90Yy5jIHwgMyArKy0KIDEgZmlsZSBjaGFuZ2VkLCAyIGluc2VydGlvbnMoKyksIDEgZGVsZXRp b24oLSkKCmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2Nv cmUvZW5fdGMuYyBiL2RyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9lbl90 Yy5jCmluZGV4IDU5ODc1NTUyOTgxNS4uZWRlNjZlNmFmNzg2IDEwMDY0NAotLS0gYS9kcml2ZXJz L25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvZW5fdGMuYworKysgYi9kcml2ZXJzL25l dC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvZW5fdGMuYwpAQCAtMTM4Nyw3ICsxMzg3LDgg QEAgc3RhdGljIGJvb2wgbW9kaWZ5X2hlYWRlcl9tYXRjaF9zdXBwb3J0ZWQoc3RydWN0IG1seDVf Zmxvd19zcGVjICpzcGVjLAogCX0KIAogCWlwX3Byb3RvID0gTUxYNV9HRVQoZnRlX21hdGNoX3Nl dF9seXJfMl80LCBoZWFkZXJzX3YsIGlwX3Byb3RvY29sKTsKLQlpZiAobW9kaWZ5X2lwX2hlYWRl ciAmJiBpcF9wcm90byAhPSBJUFBST1RPX1RDUCAmJiBpcF9wcm90byAhPSBJUFBST1RPX1VEUCkg eworCWlmIChtb2RpZnlfaXBfaGVhZGVyICYmIGlwX3Byb3RvICE9IElQUFJPVE9fVENQICYmCisJ ICAgIGlwX3Byb3RvICE9IElQUFJPVE9fVURQICYmIGlwX3Byb3RvICE9IElQUFJPVE9fSUNNUCkg ewogCQlwcl9pbmZvKCJjYW4ndCBvZmZsb2FkIHJlLXdyaXRlIG9mIGlwIHByb3RvICVkXG4iLCBp cF9wcm90byk7CiAJCXJldHVybiBmYWxzZTsKIAl9Ci0tIAoyLjE0LjMKCgpGcm9tIGVlYTFlZWFk MTA3YTRkZjRjNDExZWZiYTc4ZmU0ZmU0NTBjYzgxNTIgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAx CkZyb206IEVyaWMgRHVtYXpldCA8ZWR1bWF6ZXRAZ29vZ2xlLmNvbT4KRGF0ZTogVGh1LCAzIE1h eSAyMDE4IDEzOjM3OjU0IC0wNzAwClN1YmplY3Q6IFtQQVRDSCA0MC80MV0gbnNoOiBmaXggaW5m aW5pdGUgbG9vcAoKWyBVcHN0cmVhbSBjb21taXQgYWY1MGU0YmEzNGY0YzQ1ZTkyNTM1MzY0MTMz ZDRkZWI1OTMxYzFjNSBdCgpzeXpib3QgY2F1Z2h0IGFuIGluZmluaXRlIHJlY3Vyc2lvbiBpbiBu c2hfZ3NvX3NlZ21lbnQoKS4KClByb2JsZW0gaGVyZSBpcyB0aGF0IHdlIG5lZWQgdG8gbWFrZSBz dXJlIHRoZSBOU0ggaGVhZGVyIGlzIG9mCnJlYXNvbmFibGUgbGVuZ3RoLgoKQlVHOiBNQVhfTE9D S19ERVBUSCB0b28gbG93IQp0dXJuaW5nIG9mZiB0aGUgbG9ja2luZyBjb3JyZWN0bmVzcyB2YWxp ZGF0b3IuCmRlcHRoOiA0OCAgbWF4OiA0OCEKNDggbG9ja3MgaGVsZCBieSBzeXotZXhlY3V0b3Iw LzEwMTg5OgogIzA6ICAgICAgICAgKHB0cnZhbCkgKHJjdV9yZWFkX2xvY2tfYmgpey4uLi59LCBh dDogX19kZXZfcXVldWVfeG1pdCsweDMwZi8weDM0YzAgbmV0L2NvcmUvZGV2LmM6MzUxNwogIzE6 ICAgICAgICAgKHB0cnZhbCkgKHJjdV9yZWFkX2xvY2spey4uLi59LCBhdDogX19za2JfcHVsbCBp bmNsdWRlL2xpbnV4L3NrYnVmZi5oOjIwODAgW2lubGluZV0KICMxOiAgICAgICAgIChwdHJ2YWwp IChyY3VfcmVhZF9sb2NrKXsuLi4ufSwgYXQ6IHNrYl9tYWNfZ3NvX3NlZ21lbnQrMHgyMjEvMHg3 MjAgbmV0L2NvcmUvZGV2LmM6Mjc4NwogIzI6ICAgICAgICAgKHB0cnZhbCkgKHJjdV9yZWFkX2xv Y2spey4uLi59LCBhdDogX19za2JfcHVsbCBpbmNsdWRlL2xpbnV4L3NrYnVmZi5oOjIwODAgW2lu bGluZV0KICMyOiAgICAgICAgIChwdHJ2YWwpIChyY3VfcmVhZF9sb2NrKXsuLi4ufSwgYXQ6IHNr Yl9tYWNfZ3NvX3NlZ21lbnQrMHgyMjEvMHg3MjAgbmV0L2NvcmUvZGV2LmM6Mjc4NwogIzM6ICAg ICAgICAgKHB0cnZhbCkgKHJjdV9yZWFkX2xvY2spey4uLi59LCBhdDogX19za2JfcHVsbCBpbmNs dWRlL2xpbnV4L3NrYnVmZi5oOjIwODAgW2lubGluZV0KICMzOiAgICAgICAgIChwdHJ2YWwpIChy Y3VfcmVhZF9sb2NrKXsuLi4ufSwgYXQ6IHNrYl9tYWNfZ3NvX3NlZ21lbnQrMHgyMjEvMHg3MjAg bmV0L2NvcmUvZGV2LmM6Mjc4NwogIzQ6ICAgICAgICAgKHB0cnZhbCkgKHJjdV9yZWFkX2xvY2sp ey4uLi59LCBhdDogX19za2JfcHVsbCBpbmNsdWRlL2xpbnV4L3NrYnVmZi5oOjIwODAgW2lubGlu ZV0KICM0OiAgICAgICAgIChwdHJ2YWwpIChyY3VfcmVhZF9sb2NrKXsuLi4ufSwgYXQ6IHNrYl9t YWNfZ3NvX3NlZ21lbnQrMHgyMjEvMHg3MjAgbmV0L2NvcmUvZGV2LmM6Mjc4NwogIzU6ICAgICAg ICAgKHB0cnZhbCkgKHJjdV9yZWFkX2xvY2spey4uLi59LCBhdDogX19za2JfcHVsbCBpbmNsdWRl L2xpbnV4L3NrYnVmZi5oOjIwODAgW2lubGluZV0KICM1OiAgICAgICAgIChwdHJ2YWwpIChyY3Vf cmVhZF9sb2NrKXsuLi4ufSwgYXQ6IHNrYl9tYWNfZ3NvX3NlZ21lbnQrMHgyMjEvMHg3MjAgbmV0 L2NvcmUvZGV2LmM6Mjc4NwogIzY6ICAgICAgICAgKHB0cnZhbCkgKHJjdV9yZWFkX2xvY2spey4u Li59LCBhdDogX19za2JfcHVsbCBpbmNsdWRlL2xpbnV4L3NrYnVmZi5oOjIwODAgW2lubGluZV0K ICM2OiAgICAgICAgIChwdHJ2YWwpIChyY3VfcmVhZF9sb2NrKXsuLi4ufSwgYXQ6IHNrYl9tYWNf Z3NvX3NlZ21lbnQrMHgyMjEvMHg3MjAgbmV0L2NvcmUvZGV2LmM6Mjc4NwogIzc6ICAgICAgICAg KHB0cnZhbCkgKHJjdV9yZWFkX2xvY2spey4uLi59LCBhdDogX19za2JfcHVsbCBpbmNsdWRlL2xp bnV4L3NrYnVmZi5oOjIwODAgW2lubGluZV0KICM3OiAgICAgICAgIChwdHJ2YWwpIChyY3VfcmVh ZF9sb2NrKXsuLi4ufSwgYXQ6IHNrYl9tYWNfZ3NvX3NlZ21lbnQrMHgyMjEvMHg3MjAgbmV0L2Nv cmUvZGV2LmM6Mjc4NwogIzg6ICAgICAgICAgKHB0cnZhbCkgKHJjdV9yZWFkX2xvY2spey4uLi59 LCBhdDogX19za2JfcHVsbCBpbmNsdWRlL2xpbnV4L3NrYnVmZi5oOjIwODAgW2lubGluZV0KICM4 OiAgICAgICAgIChwdHJ2YWwpIChyY3VfcmVhZF9sb2NrKXsuLi4ufSwgYXQ6IHNrYl9tYWNfZ3Nv X3NlZ21lbnQrMHgyMjEvMHg3MjAgbmV0L2NvcmUvZGV2LmM6Mjc4NwogIzk6ICAgICAgICAgKHB0 cnZhbCkgKHJjdV9yZWFkX2xvY2spey4uLi59LCBhdDogX19za2JfcHVsbCBpbmNsdWRlL2xpbnV4 L3NrYnVmZi5oOjIwODAgW2lubGluZV0KICM5OiAgICAgICAgIChwdHJ2YWwpIChyY3VfcmVhZF9s b2NrKXsuLi4ufSwgYXQ6IHNrYl9tYWNfZ3NvX3NlZ21lbnQrMHgyMjEvMHg3MjAgbmV0L2NvcmUv ZGV2LmM6Mjc4NwogIzEwOiAgICAgICAgIChwdHJ2YWwpIChyY3VfcmVhZF9sb2NrKXsuLi4ufSwg YXQ6IF9fc2tiX3B1bGwgaW5jbHVkZS9saW51eC9za2J1ZmYuaDoyMDgwIFtpbmxpbmVdCiAjMTA6 ICAgICAgICAgKHB0cnZhbCkgKHJjdV9yZWFkX2xvY2spey4uLi59LCBhdDogc2tiX21hY19nc29f c2VnbWVudCsweDIyMS8weDcyMCBuZXQvY29yZS9kZXYuYzoyNzg3CiAjMTE6ICAgICAgICAgKHB0 cnZhbCkgKHJjdV9yZWFkX2xvY2spey4uLi59LCBhdDogX19za2JfcHVsbCBpbmNsdWRlL2xpbnV4 L3NrYnVmZi5oOjIwODAgW2lubGluZV0KICMxMTogICAgICAgICAocHRydmFsKSAocmN1X3JlYWRf bG9jayl7Li4uLn0sIGF0OiBza2JfbWFjX2dzb19zZWdtZW50KzB4MjIxLzB4NzIwIG5ldC9jb3Jl L2Rldi5jOjI3ODcKICMxMjogICAgICAgICAocHRydmFsKSAocmN1X3JlYWRfbG9jayl7Li4uLn0s IGF0OiBfX3NrYl9wdWxsIGluY2x1ZGUvbGludXgvc2tidWZmLmg6MjA4MCBbaW5saW5lXQogIzEy OiAgICAgICAgIChwdHJ2YWwpIChyY3VfcmVhZF9sb2NrKXsuLi4ufSwgYXQ6IHNrYl9tYWNfZ3Nv X3NlZ21lbnQrMHgyMjEvMHg3MjAgbmV0L2NvcmUvZGV2LmM6Mjc4NwogIzEzOiAgICAgICAgIChw dHJ2YWwpIChyY3VfcmVhZF9sb2NrKXsuLi4ufSwgYXQ6IF9fc2tiX3B1bGwgaW5jbHVkZS9saW51 eC9za2J1ZmYuaDoyMDgwIFtpbmxpbmVdCiAjMTM6ICAgICAgICAgKHB0cnZhbCkgKHJjdV9yZWFk X2xvY2spey4uLi59LCBhdDogc2tiX21hY19nc29fc2VnbWVudCsweDIyMS8weDcyMCBuZXQvY29y ZS9kZXYuYzoyNzg3CiAjMTQ6ICAgICAgICAgKHB0cnZhbCkgKHJjdV9yZWFkX2xvY2spey4uLi59 LCBhdDogX19za2JfcHVsbCBpbmNsdWRlL2xpbnV4L3NrYnVmZi5oOjIwODAgW2lubGluZV0KICMx NDogICAgICAgICAocHRydmFsKSAocmN1X3JlYWRfbG9jayl7Li4uLn0sIGF0OiBza2JfbWFjX2dz b19zZWdtZW50KzB4MjIxLzB4NzIwIG5ldC9jb3JlL2Rldi5jOjI3ODcKICMxNTogICAgICAgICAo cHRydmFsKSAocmN1X3JlYWRfbG9jayl7Li4uLn0sIGF0OiBfX3NrYl9wdWxsIGluY2x1ZGUvbGlu dXgvc2tidWZmLmg6MjA4MCBbaW5saW5lXQogIzE1OiAgICAgICAgIChwdHJ2YWwpIChyY3VfcmVh ZF9sb2NrKXsuLi4ufSwgYXQ6IHNrYl9tYWNfZ3NvX3NlZ21lbnQrMHgyMjEvMHg3MjAgbmV0L2Nv cmUvZGV2LmM6Mjc4NwogIzE2OiAgICAgICAgIChwdHJ2YWwpIChyY3VfcmVhZF9sb2NrKXsuLi4u fSwgYXQ6IF9fc2tiX3B1bGwgaW5jbHVkZS9saW51eC9za2J1ZmYuaDoyMDgwIFtpbmxpbmVdCiAj MTY6ICAgICAgICAgKHB0cnZhbCkgKHJjdV9yZWFkX2xvY2spey4uLi59LCBhdDogc2tiX21hY19n c29fc2VnbWVudCsweDIyMS8weDcyMCBuZXQvY29yZS9kZXYuYzoyNzg3CiAjMTc6ICAgICAgICAg KHB0cnZhbCkgKHJjdV9yZWFkX2xvY2spey4uLi59LCBhdDogX19za2JfcHVsbCBpbmNsdWRlL2xp bnV4L3NrYnVmZi5oOjIwODAgW2lubGluZV0KICMxNzogICAgICAgICAocHRydmFsKSAocmN1X3Jl YWRfbG9jayl7Li4uLn0sIGF0OiBza2JfbWFjX2dzb19zZWdtZW50KzB4MjIxLzB4NzIwIG5ldC9j b3JlL2Rldi5jOjI3ODcKICMxODogICAgICAgICAocHRydmFsKSAocmN1X3JlYWRfbG9jayl7Li4u Ln0sIGF0OiBfX3NrYl9wdWxsIGluY2x1ZGUvbGludXgvc2tidWZmLmg6MjA4MCBbaW5saW5lXQog IzE4OiAgICAgICAgIChwdHJ2YWwpIChyY3VfcmVhZF9sb2NrKXsuLi4ufSwgYXQ6IHNrYl9tYWNf Z3NvX3NlZ21lbnQrMHgyMjEvMHg3MjAgbmV0L2NvcmUvZGV2LmM6Mjc4NwogIzE5OiAgICAgICAg IChwdHJ2YWwpIChyY3VfcmVhZF9sb2NrKXsuLi4ufSwgYXQ6IF9fc2tiX3B1bGwgaW5jbHVkZS9s aW51eC9za2J1ZmYuaDoyMDgwIFtpbmxpbmVdCiAjMTk6ICAgICAgICAgKHB0cnZhbCkgKHJjdV9y ZWFkX2xvY2spey4uLi59LCBhdDogc2tiX21hY19nc29fc2VnbWVudCsweDIyMS8weDcyMCBuZXQv Y29yZS9kZXYuYzoyNzg3CiAjMjA6ICAgICAgICAgKHB0cnZhbCkgKHJjdV9yZWFkX2xvY2spey4u Li59LCBhdDogX19za2JfcHVsbCBpbmNsdWRlL2xpbnV4L3NrYnVmZi5oOjIwODAgW2lubGluZV0K ICMyMDogICAgICAgICAocHRydmFsKSAocmN1X3JlYWRfbG9jayl7Li4uLn0sIGF0OiBza2JfbWFj X2dzb19zZWdtZW50KzB4MjIxLzB4NzIwIG5ldC9jb3JlL2Rldi5jOjI3ODcKICMyMTogICAgICAg ICAocHRydmFsKSAocmN1X3JlYWRfbG9jayl7Li4uLn0sIGF0OiBfX3NrYl9wdWxsIGluY2x1ZGUv bGludXgvc2tidWZmLmg6MjA4MCBbaW5saW5lXQogIzIxOiAgICAgICAgIChwdHJ2YWwpIChyY3Vf cmVhZF9sb2NrKXsuLi4ufSwgYXQ6IHNrYl9tYWNfZ3NvX3NlZ21lbnQrMHgyMjEvMHg3MjAgbmV0 L2NvcmUvZGV2LmM6Mjc4NwogIzIyOiAgICAgICAgIChwdHJ2YWwpIChyY3VfcmVhZF9sb2NrKXsu Li4ufSwgYXQ6IF9fc2tiX3B1bGwgaW5jbHVkZS9saW51eC9za2J1ZmYuaDoyMDgwIFtpbmxpbmVd CiAjMjI6ICAgICAgICAgKHB0cnZhbCkgKHJjdV9yZWFkX2xvY2spey4uLi59LCBhdDogc2tiX21h Y19nc29fc2VnbWVudCsweDIyMS8weDcyMCBuZXQvY29yZS9kZXYuYzoyNzg3CiAjMjM6ICAgICAg ICAgKHB0cnZhbCkgKHJjdV9yZWFkX2xvY2spey4uLi59LCBhdDogX19za2JfcHVsbCBpbmNsdWRl L2xpbnV4L3NrYnVmZi5oOjIwODAgW2lubGluZV0KICMyMzogICAgICAgICAocHRydmFsKSAocmN1 X3JlYWRfbG9jayl7Li4uLn0sIGF0OiBza2JfbWFjX2dzb19zZWdtZW50KzB4MjIxLzB4NzIwIG5l dC9jb3JlL2Rldi5jOjI3ODcKICMyNDogICAgICAgICAocHRydmFsKSAocmN1X3JlYWRfbG9jayl7 Li4uLn0sIGF0OiBfX3NrYl9wdWxsIGluY2x1ZGUvbGludXgvc2tidWZmLmg6MjA4MCBbaW5saW5l XQogIzI0OiAgICAgICAgIChwdHJ2YWwpIChyY3VfcmVhZF9sb2NrKXsuLi4ufSwgYXQ6IHNrYl9t YWNfZ3NvX3NlZ21lbnQrMHgyMjEvMHg3MjAgbmV0L2NvcmUvZGV2LmM6Mjc4NwogIzI1OiAgICAg ICAgIChwdHJ2YWwpIChyY3VfcmVhZF9sb2NrKXsuLi4ufSwgYXQ6IF9fc2tiX3B1bGwgaW5jbHVk ZS9saW51eC9za2J1ZmYuaDoyMDgwIFtpbmxpbmVdCiAjMjU6ICAgICAgICAgKHB0cnZhbCkgKHJj dV9yZWFkX2xvY2spey4uLi59LCBhdDogc2tiX21hY19nc29fc2VnbWVudCsweDIyMS8weDcyMCBu ZXQvY29yZS9kZXYuYzoyNzg3CiAjMjY6ICAgICAgICAgKHB0cnZhbCkgKHJjdV9yZWFkX2xvY2sp ey4uLi59LCBhdDogX19za2JfcHVsbCBpbmNsdWRlL2xpbnV4L3NrYnVmZi5oOjIwODAgW2lubGlu ZV0KICMyNjogICAgICAgICAocHRydmFsKSAocmN1X3JlYWRfbG9jayl7Li4uLn0sIGF0OiBza2Jf bWFjX2dzb19zZWdtZW50KzB4MjIxLzB4NzIwIG5ldC9jb3JlL2Rldi5jOjI3ODcKICMyNzogICAg ICAgICAocHRydmFsKSAocmN1X3JlYWRfbG9jayl7Li4uLn0sIGF0OiBfX3NrYl9wdWxsIGluY2x1 ZGUvbGludXgvc2tidWZmLmg6MjA4MCBbaW5saW5lXQogIzI3OiAgICAgICAgIChwdHJ2YWwpIChy Y3VfcmVhZF9sb2NrKXsuLi4ufSwgYXQ6IHNrYl9tYWNfZ3NvX3NlZ21lbnQrMHgyMjEvMHg3MjAg bmV0L2NvcmUvZGV2LmM6Mjc4NwogIzI4OiAgICAgICAgIChwdHJ2YWwpIChyY3VfcmVhZF9sb2Nr KXsuLi4ufSwgYXQ6IF9fc2tiX3B1bGwgaW5jbHVkZS9saW51eC9za2J1ZmYuaDoyMDgwIFtpbmxp bmVdCiAjMjg6ICAgICAgICAgKHB0cnZhbCkgKHJjdV9yZWFkX2xvY2spey4uLi59LCBhdDogc2ti X21hY19nc29fc2VnbWVudCsweDIyMS8weDcyMCBuZXQvY29yZS9kZXYuYzoyNzg3CiAjMjk6ICAg ICAgICAgKHB0cnZhbCkgKHJjdV9yZWFkX2xvY2spey4uLi59LCBhdDogX19za2JfcHVsbCBpbmNs dWRlL2xpbnV4L3NrYnVmZi5oOjIwODAgW2lubGluZV0KICMyOTogICAgICAgICAocHRydmFsKSAo cmN1X3JlYWRfbG9jayl7Li4uLn0sIGF0OiBza2JfbWFjX2dzb19zZWdtZW50KzB4MjIxLzB4NzIw IG5ldC9jb3JlL2Rldi5jOjI3ODcKICMzMDogICAgICAgICAocHRydmFsKSAocmN1X3JlYWRfbG9j ayl7Li4uLn0sIGF0OiBfX3NrYl9wdWxsIGluY2x1ZGUvbGludXgvc2tidWZmLmg6MjA4MCBbaW5s aW5lXQogIzMwOiAgICAgICAgIChwdHJ2YWwpIChyY3VfcmVhZF9sb2NrKXsuLi4ufSwgYXQ6IHNr Yl9tYWNfZ3NvX3NlZ21lbnQrMHgyMjEvMHg3MjAgbmV0L2NvcmUvZGV2LmM6Mjc4NwogIzMxOiAg ICAgICAgIChwdHJ2YWwpIChyY3VfcmVhZF9sb2NrKXsuLi4ufSwgYXQ6IF9fc2tiX3B1bGwgaW5j bHVkZS9saW51eC9za2J1ZmYuaDoyMDgwIFtpbmxpbmVdCiAjMzE6ICAgICAgICAgKHB0cnZhbCkg KHJjdV9yZWFkX2xvY2spey4uLi59LCBhdDogc2tiX21hY19nc29fc2VnbWVudCsweDIyMS8weDcy MCBuZXQvY29yZS9kZXYuYzoyNzg3CmRjY3BfY2xvc2U6IEFCT1JUIHdpdGggNjU0MjMgYnl0ZXMg dW5yZWFkCiAjMzI6ICAgICAgICAgKHB0cnZhbCkgKHJjdV9yZWFkX2xvY2spey4uLi59LCBhdDog X19za2JfcHVsbCBpbmNsdWRlL2xpbnV4L3NrYnVmZi5oOjIwODAgW2lubGluZV0KICMzMjogICAg ICAgICAocHRydmFsKSAocmN1X3JlYWRfbG9jayl7Li4uLn0sIGF0OiBza2JfbWFjX2dzb19zZWdt ZW50KzB4MjIxLzB4NzIwIG5ldC9jb3JlL2Rldi5jOjI3ODcKICMzMzogICAgICAgICAocHRydmFs KSAocmN1X3JlYWRfbG9jayl7Li4uLn0sIGF0OiBfX3NrYl9wdWxsIGluY2x1ZGUvbGludXgvc2ti dWZmLmg6MjA4MCBbaW5saW5lXQogIzMzOiAgICAgICAgIChwdHJ2YWwpIChyY3VfcmVhZF9sb2Nr KXsuLi4ufSwgYXQ6IHNrYl9tYWNfZ3NvX3NlZ21lbnQrMHgyMjEvMHg3MjAgbmV0L2NvcmUvZGV2 LmM6Mjc4NwogIzM0OiAgICAgICAgIChwdHJ2YWwpIChyY3VfcmVhZF9sb2NrKXsuLi4ufSwgYXQ6 IF9fc2tiX3B1bGwgaW5jbHVkZS9saW51eC9za2J1ZmYuaDoyMDgwIFtpbmxpbmVdCiAjMzQ6ICAg ICAgICAgKHB0cnZhbCkgKHJjdV9yZWFkX2xvY2spey4uLi59LCBhdDogc2tiX21hY19nc29fc2Vn bWVudCsweDIyMS8weDcyMCBuZXQvY29yZS9kZXYuYzoyNzg3CiAjMzU6ICAgICAgICAgKHB0cnZh bCkgKHJjdV9yZWFkX2xvY2spey4uLi59LCBhdDogX19za2JfcHVsbCBpbmNsdWRlL2xpbnV4L3Nr YnVmZi5oOjIwODAgW2lubGluZV0KICMzNTogICAgICAgICAocHRydmFsKSAocmN1X3JlYWRfbG9j ayl7Li4uLn0sIGF0OiBza2JfbWFjX2dzb19zZWdtZW50KzB4MjIxLzB4NzIwIG5ldC9jb3JlL2Rl di5jOjI3ODcKICMzNjogICAgICAgICAocHRydmFsKSAocmN1X3JlYWRfbG9jayl7Li4uLn0sIGF0 OiBfX3NrYl9wdWxsIGluY2x1ZGUvbGludXgvc2tidWZmLmg6MjA4MCBbaW5saW5lXQogIzM2OiAg ICAgICAgIChwdHJ2YWwpIChyY3VfcmVhZF9sb2NrKXsuLi4ufSwgYXQ6IHNrYl9tYWNfZ3NvX3Nl Z21lbnQrMHgyMjEvMHg3MjAgbmV0L2NvcmUvZGV2LmM6Mjc4NwogIzM3OiAgICAgICAgIChwdHJ2 YWwpIChyY3VfcmVhZF9sb2NrKXsuLi4ufSwgYXQ6IF9fc2tiX3B1bGwgaW5jbHVkZS9saW51eC9z a2J1ZmYuaDoyMDgwIFtpbmxpbmVdCiAjMzc6ICAgICAgICAgKHB0cnZhbCkgKHJjdV9yZWFkX2xv Y2spey4uLi59LCBhdDogc2tiX21hY19nc29fc2VnbWVudCsweDIyMS8weDcyMCBuZXQvY29yZS9k ZXYuYzoyNzg3CiAjMzg6ICAgICAgICAgKHB0cnZhbCkgKHJjdV9yZWFkX2xvY2spey4uLi59LCBh dDogX19za2JfcHVsbCBpbmNsdWRlL2xpbnV4L3NrYnVmZi5oOjIwODAgW2lubGluZV0KICMzODog ICAgICAgICAocHRydmFsKSAocmN1X3JlYWRfbG9jayl7Li4uLn0sIGF0OiBza2JfbWFjX2dzb19z ZWdtZW50KzB4MjIxLzB4NzIwIG5ldC9jb3JlL2Rldi5jOjI3ODcKICMzOTogICAgICAgICAocHRy dmFsKSAocmN1X3JlYWRfbG9jayl7Li4uLn0sIGF0OiBfX3NrYl9wdWxsIGluY2x1ZGUvbGludXgv c2tidWZmLmg6MjA4MCBbaW5saW5lXQogIzM5OiAgICAgICAgIChwdHJ2YWwpIChyY3VfcmVhZF9s b2NrKXsuLi4ufSwgYXQ6IHNrYl9tYWNfZ3NvX3NlZ21lbnQrMHgyMjEvMHg3MjAgbmV0L2NvcmUv ZGV2LmM6Mjc4NwogIzQwOiAgICAgICAgIChwdHJ2YWwpIChyY3VfcmVhZF9sb2NrKXsuLi4ufSwg YXQ6IF9fc2tiX3B1bGwgaW5jbHVkZS9saW51eC9za2J1ZmYuaDoyMDgwIFtpbmxpbmVdCiAjNDA6 ICAgICAgICAgKHB0cnZhbCkgKHJjdV9yZWFkX2xvY2spey4uLi59LCBhdDogc2tiX21hY19nc29f c2VnbWVudCsweDIyMS8weDcyMCBuZXQvY29yZS9kZXYuYzoyNzg3CiAjNDE6ICAgICAgICAgKHB0 cnZhbCkgKHJjdV9yZWFkX2xvY2spey4uLi59LCBhdDogX19za2JfcHVsbCBpbmNsdWRlL2xpbnV4 L3NrYnVmZi5oOjIwODAgW2lubGluZV0KICM0MTogICAgICAgICAocHRydmFsKSAocmN1X3JlYWRf bG9jayl7Li4uLn0sIGF0OiBza2JfbWFjX2dzb19zZWdtZW50KzB4MjIxLzB4NzIwIG5ldC9jb3Jl L2Rldi5jOjI3ODcKICM0MjogICAgICAgICAocHRydmFsKSAocmN1X3JlYWRfbG9jayl7Li4uLn0s IGF0OiBfX3NrYl9wdWxsIGluY2x1ZGUvbGludXgvc2tidWZmLmg6MjA4MCBbaW5saW5lXQogIzQy OiAgICAgICAgIChwdHJ2YWwpIChyY3VfcmVhZF9sb2NrKXsuLi4ufSwgYXQ6IHNrYl9tYWNfZ3Nv X3NlZ21lbnQrMHgyMjEvMHg3MjAgbmV0L2NvcmUvZGV2LmM6Mjc4NwogIzQzOiAgICAgICAgIChw dHJ2YWwpIChyY3VfcmVhZF9sb2NrKXsuLi4ufSwgYXQ6IF9fc2tiX3B1bGwgaW5jbHVkZS9saW51 eC9za2J1ZmYuaDoyMDgwIFtpbmxpbmVdCiAjNDM6ICAgICAgICAgKHB0cnZhbCkgKHJjdV9yZWFk X2xvY2spey4uLi59LCBhdDogc2tiX21hY19nc29fc2VnbWVudCsweDIyMS8weDcyMCBuZXQvY29y ZS9kZXYuYzoyNzg3CiAjNDQ6ICAgICAgICAgKHB0cnZhbCkgKHJjdV9yZWFkX2xvY2spey4uLi59 LCBhdDogX19za2JfcHVsbCBpbmNsdWRlL2xpbnV4L3NrYnVmZi5oOjIwODAgW2lubGluZV0KICM0 NDogICAgICAgICAocHRydmFsKSAocmN1X3JlYWRfbG9jayl7Li4uLn0sIGF0OiBza2JfbWFjX2dz b19zZWdtZW50KzB4MjIxLzB4NzIwIG5ldC9jb3JlL2Rldi5jOjI3ODcKICM0NTogICAgICAgICAo cHRydmFsKSAocmN1X3JlYWRfbG9jayl7Li4uLn0sIGF0OiBfX3NrYl9wdWxsIGluY2x1ZGUvbGlu dXgvc2tidWZmLmg6MjA4MCBbaW5saW5lXQogIzQ1OiAgICAgICAgIChwdHJ2YWwpIChyY3VfcmVh ZF9sb2NrKXsuLi4ufSwgYXQ6IHNrYl9tYWNfZ3NvX3NlZ21lbnQrMHgyMjEvMHg3MjAgbmV0L2Nv cmUvZGV2LmM6Mjc4NwogIzQ2OiAgICAgICAgIChwdHJ2YWwpIChyY3VfcmVhZF9sb2NrKXsuLi4u fSwgYXQ6IF9fc2tiX3B1bGwgaW5jbHVkZS9saW51eC9za2J1ZmYuaDoyMDgwIFtpbmxpbmVdCiAj NDY6ICAgICAgICAgKHB0cnZhbCkgKHJjdV9yZWFkX2xvY2spey4uLi59LCBhdDogc2tiX21hY19n c29fc2VnbWVudCsweDIyMS8weDcyMCBuZXQvY29yZS9kZXYuYzoyNzg3CiAjNDc6ICAgICAgICAg KHB0cnZhbCkgKHJjdV9yZWFkX2xvY2spey4uLi59LCBhdDogX19za2JfcHVsbCBpbmNsdWRlL2xp bnV4L3NrYnVmZi5oOjIwODAgW2lubGluZV0KICM0NzogICAgICAgICAocHRydmFsKSAocmN1X3Jl YWRfbG9jayl7Li4uLn0sIGF0OiBza2JfbWFjX2dzb19zZWdtZW50KzB4MjIxLzB4NzIwIG5ldC9j b3JlL2Rldi5jOjI3ODcKSU5GTzogbG9ja2RlcCBpcyB0dXJuZWQgb2ZmLgpDUFU6IDEgUElEOiAx MDE4OSBDb21tOiBzeXotZXhlY3V0b3IwIE5vdCB0YWludGVkIDQuMTcuMC1yYzIrICMyNgpIYXJk d2FyZSBuYW1lOiBHb29nbGUgR29vZ2xlIENvbXB1dGUgRW5naW5lL0dvb2dsZSBDb21wdXRlIEVu Z2luZSwgQklPUyBHb29nbGUgMDEvMDEvMjAxMQpDYWxsIFRyYWNlOgogX19kdW1wX3N0YWNrIGxp Yi9kdW1wX3N0YWNrLmM6NzcgW2lubGluZV0KIGR1bXBfc3RhY2srMHgxYjkvMHgyOTQgbGliL2R1 bXBfc3RhY2suYzoxMTMKIF9fbG9ja19hY3F1aXJlKzB4MTc4OC8weDUxNDAga2VybmVsL2xvY2tp bmcvbG9ja2RlcC5jOjM0NDkKIGxvY2tfYWNxdWlyZSsweDFkYy8weDUyMCBrZXJuZWwvbG9ja2lu Zy9sb2NrZGVwLmM6MzkyMAogcmN1X2xvY2tfYWNxdWlyZSBpbmNsdWRlL2xpbnV4L3JjdXBkYXRl Lmg6MjQ2IFtpbmxpbmVdCiByY3VfcmVhZF9sb2NrIGluY2x1ZGUvbGludXgvcmN1cGRhdGUuaDo2 MzIgW2lubGluZV0KIHNrYl9tYWNfZ3NvX3NlZ21lbnQrMHgyNWIvMHg3MjAgbmV0L2NvcmUvZGV2 LmM6Mjc4OQogbnNoX2dzb19zZWdtZW50KzB4NDA1LzB4YjYwIG5ldC9uc2gvbnNoLmM6MTA3CiBz a2JfbWFjX2dzb19zZWdtZW50KzB4M2FkLzB4NzIwIG5ldC9jb3JlL2Rldi5jOjI3OTIKIG5zaF9n c29fc2VnbWVudCsweDQwNS8weGI2MCBuZXQvbnNoL25zaC5jOjEwNwogc2tiX21hY19nc29fc2Vn bWVudCsweDNhZC8weDcyMCBuZXQvY29yZS9kZXYuYzoyNzkyCiBuc2hfZ3NvX3NlZ21lbnQrMHg0 MDUvMHhiNjAgbmV0L25zaC9uc2guYzoxMDcKIHNrYl9tYWNfZ3NvX3NlZ21lbnQrMHgzYWQvMHg3 MjAgbmV0L2NvcmUvZGV2LmM6Mjc5MgogbnNoX2dzb19zZWdtZW50KzB4NDA1LzB4YjYwIG5ldC9u c2gvbnNoLmM6MTA3CiBza2JfbWFjX2dzb19zZWdtZW50KzB4M2FkLzB4NzIwIG5ldC9jb3JlL2Rl di5jOjI3OTIKIG5zaF9nc29fc2VnbWVudCsweDQwNS8weGI2MCBuZXQvbnNoL25zaC5jOjEwNwog c2tiX21hY19nc29fc2VnbWVudCsweDNhZC8weDcyMCBuZXQvY29yZS9kZXYuYzoyNzkyCiBuc2hf Z3NvX3NlZ21lbnQrMHg0MDUvMHhiNjAgbmV0L25zaC9uc2guYzoxMDcKIHNrYl9tYWNfZ3NvX3Nl Z21lbnQrMHgzYWQvMHg3MjAgbmV0L2NvcmUvZGV2LmM6Mjc5MgogbnNoX2dzb19zZWdtZW50KzB4 NDA1LzB4YjYwIG5ldC9uc2gvbnNoLmM6MTA3CiBza2JfbWFjX2dzb19zZWdtZW50KzB4M2FkLzB4 NzIwIG5ldC9jb3JlL2Rldi5jOjI3OTIKIG5zaF9nc29fc2VnbWVudCsweDQwNS8weGI2MCBuZXQv bnNoL25zaC5jOjEwNwogc2tiX21hY19nc29fc2VnbWVudCsweDNhZC8weDcyMCBuZXQvY29yZS9k ZXYuYzoyNzkyCiBuc2hfZ3NvX3NlZ21lbnQrMHg0MDUvMHhiNjAgbmV0L25zaC9uc2guYzoxMDcK IHNrYl9tYWNfZ3NvX3NlZ21lbnQrMHgzYWQvMHg3MjAgbmV0L2NvcmUvZGV2LmM6Mjc5MgogbnNo X2dzb19zZWdtZW50KzB4NDA1LzB4YjYwIG5ldC9uc2gvbnNoLmM6MTA3CiBza2JfbWFjX2dzb19z ZWdtZW50KzB4M2FkLzB4NzIwIG5ldC9jb3JlL2Rldi5jOjI3OTIKIG5zaF9nc29fc2VnbWVudCsw eDQwNS8weGI2MCBuZXQvbnNoL25zaC5jOjEwNwogc2tiX21hY19nc29fc2VnbWVudCsweDNhZC8w eDcyMCBuZXQvY29yZS9kZXYuYzoyNzkyCiBuc2hfZ3NvX3NlZ21lbnQrMHg0MDUvMHhiNjAgbmV0 L25zaC9uc2guYzoxMDcKIHNrYl9tYWNfZ3NvX3NlZ21lbnQrMHgzYWQvMHg3MjAgbmV0L2NvcmUv ZGV2LmM6Mjc5MgogbnNoX2dzb19zZWdtZW50KzB4NDA1LzB4YjYwIG5ldC9uc2gvbnNoLmM6MTA3 CiBza2JfbWFjX2dzb19zZWdtZW50KzB4M2FkLzB4NzIwIG5ldC9jb3JlL2Rldi5jOjI3OTIKIG5z aF9nc29fc2VnbWVudCsweDQwNS8weGI2MCBuZXQvbnNoL25zaC5jOjEwNwogc2tiX21hY19nc29f c2VnbWVudCsweDNhZC8weDcyMCBuZXQvY29yZS9kZXYuYzoyNzkyCiBuc2hfZ3NvX3NlZ21lbnQr MHg0MDUvMHhiNjAgbmV0L25zaC9uc2guYzoxMDcKIHNrYl9tYWNfZ3NvX3NlZ21lbnQrMHgzYWQv MHg3MjAgbmV0L2NvcmUvZGV2LmM6Mjc5MgogbnNoX2dzb19zZWdtZW50KzB4NDA1LzB4YjYwIG5l dC9uc2gvbnNoLmM6MTA3CiBza2JfbWFjX2dzb19zZWdtZW50KzB4M2FkLzB4NzIwIG5ldC9jb3Jl L2Rldi5jOjI3OTIKIG5zaF9nc29fc2VnbWVudCsweDQwNS8weGI2MCBuZXQvbnNoL25zaC5jOjEw Nwogc2tiX21hY19nc29fc2VnbWVudCsweDNhZC8weDcyMCBuZXQvY29yZS9kZXYuYzoyNzkyCiBu c2hfZ3NvX3NlZ21lbnQrMHg0MDUvMHhiNjAgbmV0L25zaC9uc2guYzoxMDcKIHNrYl9tYWNfZ3Nv X3NlZ21lbnQrMHgzYWQvMHg3MjAgbmV0L2NvcmUvZGV2LmM6Mjc5MgogbnNoX2dzb19zZWdtZW50 KzB4NDA1LzB4YjYwIG5ldC9uc2gvbnNoLmM6MTA3CiBza2JfbWFjX2dzb19zZWdtZW50KzB4M2Fk LzB4NzIwIG5ldC9jb3JlL2Rldi5jOjI3OTIKIG5zaF9nc29fc2VnbWVudCsweDQwNS8weGI2MCBu ZXQvbnNoL25zaC5jOjEwNwogc2tiX21hY19nc29fc2VnbWVudCsweDNhZC8weDcyMCBuZXQvY29y ZS9kZXYuYzoyNzkyCiBuc2hfZ3NvX3NlZ21lbnQrMHg0MDUvMHhiNjAgbmV0L25zaC9uc2guYzox MDcKIHNrYl9tYWNfZ3NvX3NlZ21lbnQrMHgzYWQvMHg3MjAgbmV0L2NvcmUvZGV2LmM6Mjc5Mgog bnNoX2dzb19zZWdtZW50KzB4NDA1LzB4YjYwIG5ldC9uc2gvbnNoLmM6MTA3CiBza2JfbWFjX2dz b19zZWdtZW50KzB4M2FkLzB4NzIwIG5ldC9jb3JlL2Rldi5jOjI3OTIKIG5zaF9nc29fc2VnbWVu dCsweDQwNS8weGI2MCBuZXQvbnNoL25zaC5jOjEwNwogc2tiX21hY19nc29fc2VnbWVudCsweDNh ZC8weDcyMCBuZXQvY29yZS9kZXYuYzoyNzkyCiBuc2hfZ3NvX3NlZ21lbnQrMHg0MDUvMHhiNjAg bmV0L25zaC9uc2guYzoxMDcKIHNrYl9tYWNfZ3NvX3NlZ21lbnQrMHgzYWQvMHg3MjAgbmV0L2Nv cmUvZGV2LmM6Mjc5MgogbnNoX2dzb19zZWdtZW50KzB4NDA1LzB4YjYwIG5ldC9uc2gvbnNoLmM6 MTA3CiBza2JfbWFjX2dzb19zZWdtZW50KzB4M2FkLzB4NzIwIG5ldC9jb3JlL2Rldi5jOjI3OTIK IG5zaF9nc29fc2VnbWVudCsweDQwNS8weGI2MCBuZXQvbnNoL25zaC5jOjEwNwogc2tiX21hY19n c29fc2VnbWVudCsweDNhZC8weDcyMCBuZXQvY29yZS9kZXYuYzoyNzkyCiBuc2hfZ3NvX3NlZ21l bnQrMHg0MDUvMHhiNjAgbmV0L25zaC9uc2guYzoxMDcKIHNrYl9tYWNfZ3NvX3NlZ21lbnQrMHgz YWQvMHg3MjAgbmV0L2NvcmUvZGV2LmM6Mjc5MgogbnNoX2dzb19zZWdtZW50KzB4NDA1LzB4YjYw IG5ldC9uc2gvbnNoLmM6MTA3CiBza2JfbWFjX2dzb19zZWdtZW50KzB4M2FkLzB4NzIwIG5ldC9j b3JlL2Rldi5jOjI3OTIKIG5zaF9nc29fc2VnbWVudCsweDQwNS8weGI2MCBuZXQvbnNoL25zaC5j OjEwNwogc2tiX21hY19nc29fc2VnbWVudCsweDNhZC8weDcyMCBuZXQvY29yZS9kZXYuYzoyNzky CiBuc2hfZ3NvX3NlZ21lbnQrMHg0MDUvMHhiNjAgbmV0L25zaC9uc2guYzoxMDcKIHNrYl9tYWNf Z3NvX3NlZ21lbnQrMHgzYWQvMHg3MjAgbmV0L2NvcmUvZGV2LmM6Mjc5MgogbnNoX2dzb19zZWdt ZW50KzB4NDA1LzB4YjYwIG5ldC9uc2gvbnNoLmM6MTA3CiBza2JfbWFjX2dzb19zZWdtZW50KzB4 M2FkLzB4NzIwIG5ldC9jb3JlL2Rldi5jOjI3OTIKIG5zaF9nc29fc2VnbWVudCsweDQwNS8weGI2 MCBuZXQvbnNoL25zaC5jOjEwNwogc2tiX21hY19nc29fc2VnbWVudCsweDNhZC8weDcyMCBuZXQv Y29yZS9kZXYuYzoyNzkyCiBuc2hfZ3NvX3NlZ21lbnQrMHg0MDUvMHhiNjAgbmV0L25zaC9uc2gu YzoxMDcKIHNrYl9tYWNfZ3NvX3NlZ21lbnQrMHgzYWQvMHg3MjAgbmV0L2NvcmUvZGV2LmM6Mjc5 MgogbnNoX2dzb19zZWdtZW50KzB4NDA1LzB4YjYwIG5ldC9uc2gvbnNoLmM6MTA3CiBza2JfbWFj X2dzb19zZWdtZW50KzB4M2FkLzB4NzIwIG5ldC9jb3JlL2Rldi5jOjI3OTIKIG5zaF9nc29fc2Vn bWVudCsweDQwNS8weGI2MCBuZXQvbnNoL25zaC5jOjEwNwogc2tiX21hY19nc29fc2VnbWVudCsw eDNhZC8weDcyMCBuZXQvY29yZS9kZXYuYzoyNzkyCiBuc2hfZ3NvX3NlZ21lbnQrMHg0MDUvMHhi NjAgbmV0L25zaC9uc2guYzoxMDcKIHNrYl9tYWNfZ3NvX3NlZ21lbnQrMHgzYWQvMHg3MjAgbmV0 L2NvcmUvZGV2LmM6Mjc5MgogbnNoX2dzb19zZWdtZW50KzB4NDA1LzB4YjYwIG5ldC9uc2gvbnNo LmM6MTA3CiBza2JfbWFjX2dzb19zZWdtZW50KzB4M2FkLzB4NzIwIG5ldC9jb3JlL2Rldi5jOjI3 OTIKIG5zaF9nc29fc2VnbWVudCsweDQwNS8weGI2MCBuZXQvbnNoL25zaC5jOjEwNwogc2tiX21h Y19nc29fc2VnbWVudCsweDNhZC8weDcyMCBuZXQvY29yZS9kZXYuYzoyNzkyCiBuc2hfZ3NvX3Nl Z21lbnQrMHg0MDUvMHhiNjAgbmV0L25zaC9uc2guYzoxMDcKIHNrYl9tYWNfZ3NvX3NlZ21lbnQr MHgzYWQvMHg3MjAgbmV0L2NvcmUvZGV2LmM6Mjc5MgogbnNoX2dzb19zZWdtZW50KzB4NDA1LzB4 YjYwIG5ldC9uc2gvbnNoLmM6MTA3CiBza2JfbWFjX2dzb19zZWdtZW50KzB4M2FkLzB4NzIwIG5l dC9jb3JlL2Rldi5jOjI3OTIKIG5zaF9nc29fc2VnbWVudCsweDQwNS8weGI2MCBuZXQvbnNoL25z aC5jOjEwNwogc2tiX21hY19nc29fc2VnbWVudCsweDNhZC8weDcyMCBuZXQvY29yZS9kZXYuYzoy NzkyCiBuc2hfZ3NvX3NlZ21lbnQrMHg0MDUvMHhiNjAgbmV0L25zaC9uc2guYzoxMDcKIHNrYl9t YWNfZ3NvX3NlZ21lbnQrMHgzYWQvMHg3MjAgbmV0L2NvcmUvZGV2LmM6Mjc5MgogbnNoX2dzb19z ZWdtZW50KzB4NDA1LzB4YjYwIG5ldC9uc2gvbnNoLmM6MTA3CiBza2JfbWFjX2dzb19zZWdtZW50 KzB4M2FkLzB4NzIwIG5ldC9jb3JlL2Rldi5jOjI3OTIKIG5zaF9nc29fc2VnbWVudCsweDQwNS8w eGI2MCBuZXQvbnNoL25zaC5jOjEwNwogc2tiX21hY19nc29fc2VnbWVudCsweDNhZC8weDcyMCBu ZXQvY29yZS9kZXYuYzoyNzkyCiBuc2hfZ3NvX3NlZ21lbnQrMHg0MDUvMHhiNjAgbmV0L25zaC9u c2guYzoxMDcKIHNrYl9tYWNfZ3NvX3NlZ21lbnQrMHgzYWQvMHg3MjAgbmV0L2NvcmUvZGV2LmM6 Mjc5MgogbnNoX2dzb19zZWdtZW50KzB4NDA1LzB4YjYwIG5ldC9uc2gvbnNoLmM6MTA3CiBza2Jf bWFjX2dzb19zZWdtZW50KzB4M2FkLzB4NzIwIG5ldC9jb3JlL2Rldi5jOjI3OTIKIF9fc2tiX2dz b19zZWdtZW50KzB4M2JiLzB4ODcwIG5ldC9jb3JlL2Rldi5jOjI4NjUKIHNrYl9nc29fc2VnbWVu dCBpbmNsdWRlL2xpbnV4L25ldGRldmljZS5oOjQwMjUgW2lubGluZV0KIHZhbGlkYXRlX3htaXRf c2tiKzB4NTRkLzB4ZDkwIG5ldC9jb3JlL2Rldi5jOjMxMTgKIHZhbGlkYXRlX3htaXRfc2tiX2xp c3QrMHhiZi8weDEyMCBuZXQvY29yZS9kZXYuYzozMTY4CiBzY2hfZGlyZWN0X3htaXQrMHgzNTQv MHgxMWUwIG5ldC9zY2hlZC9zY2hfZ2VuZXJpYy5jOjMxMgogcWRpc2NfcmVzdGFydCBuZXQvc2No ZWQvc2NoX2dlbmVyaWMuYzozOTkgW2lubGluZV0KIF9fcWRpc2NfcnVuKzB4NzQxLzB4MWFmMCBu ZXQvc2NoZWQvc2NoX2dlbmVyaWMuYzo0MTAKIF9fZGV2X3htaXRfc2tiIG5ldC9jb3JlL2Rldi5j OjMyNDMgW2lubGluZV0KIF9fZGV2X3F1ZXVlX3htaXQrMHgyOGVhLzB4MzRjMCBuZXQvY29yZS9k ZXYuYzozNTUxCiBkZXZfcXVldWVfeG1pdCsweDE3LzB4MjAgbmV0L2NvcmUvZGV2LmM6MzYxNgog cGFja2V0X3NuZCBuZXQvcGFja2V0L2FmX3BhY2tldC5jOjI5NTEgW2lubGluZV0KIHBhY2tldF9z ZW5kbXNnKzB4NDBmOC8weDYwNzAgbmV0L3BhY2tldC9hZl9wYWNrZXQuYzoyOTc2CiBzb2NrX3Nl bmRtc2dfbm9zZWMgbmV0L3NvY2tldC5jOjYyOSBbaW5saW5lXQogc29ja19zZW5kbXNnKzB4ZDUv MHgxMjAgbmV0L3NvY2tldC5jOjYzOQogX19zeXNfc2VuZHRvKzB4M2Q3LzB4NjcwIG5ldC9zb2Nr ZXQuYzoxNzg5CiBfX2RvX3N5c19zZW5kdG8gbmV0L3NvY2tldC5jOjE4MDEgW2lubGluZV0KIF9f c2Vfc3lzX3NlbmR0byBuZXQvc29ja2V0LmM6MTc5NyBbaW5saW5lXQogX194NjRfc3lzX3NlbmR0 bysweGUxLzB4MWEwIG5ldC9zb2NrZXQuYzoxNzk3CiBkb19zeXNjYWxsXzY0KzB4MWIxLzB4ODAw IGFyY2gveDg2L2VudHJ5L2NvbW1vbi5jOjI4NwogZW50cnlfU1lTQ0FMTF82NF9hZnRlcl9od2Zy YW1lKzB4NDkvMHhiZQoKRml4ZXM6IGM0MTFlZDg1NDU4NCAoIm5zaDogYWRkIEdTTyBzdXBwb3J0 IikKU2lnbmVkLW9mZi1ieTogRXJpYyBEdW1hemV0IDxlZHVtYXpldEBnb29nbGUuY29tPgpDYzog SmlyaSBCZW5jIDxqYmVuY0ByZWRoYXQuY29tPgpSZXBvcnRlZC1ieTogc3l6Ym90IDxzeXprYWxs ZXJAZ29vZ2xlZ3JvdXBzLmNvbT4KQWNrZWQtYnk6IEppcmkgQmVuYyA8amJlbmNAcmVkaGF0LmNv bT4KU2lnbmVkLW9mZi1ieTogRGF2aWQgUy4gTWlsbGVyIDxkYXZlbUBkYXZlbWxvZnQubmV0Pgot LS0KIG5ldC9uc2gvbnNoLmMgfCAyICsrCiAxIGZpbGUgY2hhbmdlZCwgMiBpbnNlcnRpb25zKCsp CgpkaWZmIC0tZ2l0IGEvbmV0L25zaC9uc2guYyBiL25ldC9uc2gvbnNoLmMKaW5kZXggNThmYjgy NzQzOWE4Li42ZGY2ZjU4YTgxMDMgMTAwNjQ0Ci0tLSBhL25ldC9uc2gvbnNoLmMKKysrIGIvbmV0 L25zaC9uc2guYwpAQCAtMzAsNiArMzAsOCBAQCBzdGF0aWMgc3RydWN0IHNrX2J1ZmYgKm5zaF9n c29fc2VnbWVudChzdHJ1Y3Qgc2tfYnVmZiAqc2tiLAogCWlmICh1bmxpa2VseSghcHNrYl9tYXlf cHVsbChza2IsIE5TSF9CQVNFX0hEUl9MRU4pKSkKIAkJZ290byBvdXQ7CiAJbnNoX2xlbiA9IG5z aF9oZHJfbGVuKG5zaF9oZHIoc2tiKSk7CisJaWYgKG5zaF9sZW4gPCBOU0hfQkFTRV9IRFJfTEVO KQorCQlnb3RvIG91dDsKIAlpZiAodW5saWtlbHkoIXBza2JfbWF5X3B1bGwoc2tiLCBuc2hfbGVu KSkpCiAJCWdvdG8gb3V0OwogCi0tIAoyLjE0LjMKCgpGcm9tIDhiYWQ2MGFlZTkyNjEzNDNjMjEx MWE2OWFkZmUxODI3NTcyZDM3N2EgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCkZyb206IFBhb2xv IEFiZW5pIDxwYWJlbmlAcmVkaGF0LmNvbT4KRGF0ZTogV2VkLCA5IE1heSAyMDE4IDEyOjQyOjM0 ICswMjAwClN1YmplY3Q6IFtQQVRDSCA0MS80MV0gdWRwOiBmaXggU09fQklORFRPREVWSUNFCgpb IFVwc3RyZWFtIGNvbW1pdCA2OTY3OGJjZDRkMmRlZGJjM2U4ZmNkNmQ3ZDk5ZjI4M2Q4M2M1MzFh IF0KCkRhbWlyIHJlcG9ydGVkIGEgYnJlYWthZ2Ugb2YgU09fQklORFRPREVWSUNFIGZvciBVRFAg c29ja2V0cy4KSW4gYWJzZW5jZSBvZiBWUkYgZGV2aWNlcywgYWZ0ZXIgY29tbWl0IGZiNzRjMjc3 MzVmMCAoIm5ldDoKaXB2NDogYWRkIHNlY29uZCBkaWYgdG8gdWRwIHNvY2tldCBsb29rdXBzIikg dGhlIGRpZiBtaXNtYXRjaAppc24ndCBmYXRhbCBhbnltb3JlIGZvciBVRFAgc29ja2V0IGxvb2t1 cCB3aXRoIG5vbiBudWxsCnNrX2JvdW5kX2Rldl9pZiwgYnJlYWtpbmcgU09fQklORFRPREVWSUNF IHNlbWFudGljcy4KClRoaXMgY2hhbmdlc2V0IGFkZHJlc3NlcyB0aGUgaXNzdWUgbWFraW5nIHRo ZSBkaWYgbWF0Y2ggbWFuZGF0b3J5CmFnYWluIGluIHRoZSBhYm92ZSBzY2VuYXJpby4KClJlcG9y dGVkLWJ5OiBEYW1pciBNYW5zdXJvdiA8ZG5tYW5Ab2t0ZXRsYWJzLnJ1PgpGaXhlczogZmI3NGMy NzczNWYwICgibmV0OiBpcHY0OiBhZGQgc2Vjb25kIGRpZiB0byB1ZHAgc29ja2V0IGxvb2t1cHMi KQpGaXhlczogMTgwMWI1NzBkZDJhICgibmV0OiBpcHY2OiBhZGQgc2Vjb25kIGRpZiB0byB1ZHAg c29ja2V0IGxvb2t1cHMiKQpTaWduZWQtb2ZmLWJ5OiBQYW9sbyBBYmVuaSA8cGFiZW5pQHJlZGhh dC5jb20+CkFja2VkLWJ5OiBEYXZpZCBBaGVybiA8ZHNhaGVybkBnbWFpbC5jb20+ClNpZ25lZC1v ZmYtYnk6IERhdmlkIFMuIE1pbGxlciA8ZGF2ZW1AZGF2ZW1sb2Z0Lm5ldD4KLS0tCiBuZXQvaXB2 NC91ZHAuYyB8IDQgKystLQogbmV0L2lwdjYvdWRwLmMgfCA0ICsrLS0KIDIgZmlsZXMgY2hhbmdl ZCwgNCBpbnNlcnRpb25zKCspLCA0IGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL25ldC9pcHY0 L3VkcC5jIGIvbmV0L2lwdjQvdWRwLmMKaW5kZXggNTUxN2YyMGE5Y2Q5Li5iMGFkNjJiZDM4Zjcg MTAwNjQ0Ci0tLSBhL25ldC9pcHY0L3VkcC5jCisrKyBiL25ldC9pcHY0L3VkcC5jCkBAIC00MTMs OSArNDEzLDkgQEAgc3RhdGljIGludCBjb21wdXRlX3Njb3JlKHN0cnVjdCBzb2NrICpzaywgc3Ry dWN0IG5ldCAqbmV0LAogCQlib29sIGRldl9tYXRjaCA9IChzay0+c2tfYm91bmRfZGV2X2lmID09 IGRpZiB8fAogCQkJCSAgc2stPnNrX2JvdW5kX2Rldl9pZiA9PSBzZGlmKTsKIAotCQlpZiAoZXhh Y3RfZGlmICYmICFkZXZfbWF0Y2gpCisJCWlmICghZGV2X21hdGNoKQogCQkJcmV0dXJuIC0xOwot CQlpZiAoc2stPnNrX2JvdW5kX2Rldl9pZiAmJiBkZXZfbWF0Y2gpCisJCWlmIChzay0+c2tfYm91 bmRfZGV2X2lmKQogCQkJc2NvcmUgKz0gNDsKIAl9CiAKZGlmZiAtLWdpdCBhL25ldC9pcHY2L3Vk cC5jIGIvbmV0L2lwdjYvdWRwLmMKaW5kZXggNDBkNzIzNGMyN2I5Li4wMTQ2ZGNkYzVjNDAgMTAw NjQ0Ci0tLSBhL25ldC9pcHY2L3VkcC5jCisrKyBiL25ldC9pcHY2L3VkcC5jCkBAIC0xNjQsOSAr MTY0LDkgQEAgc3RhdGljIGludCBjb21wdXRlX3Njb3JlKHN0cnVjdCBzb2NrICpzaywgc3RydWN0 IG5ldCAqbmV0LAogCQlib29sIGRldl9tYXRjaCA9IChzay0+c2tfYm91bmRfZGV2X2lmID09IGRp ZiB8fAogCQkJCSAgc2stPnNrX2JvdW5kX2Rldl9pZiA9PSBzZGlmKTsKIAotCQlpZiAoZXhhY3Rf ZGlmICYmICFkZXZfbWF0Y2gpCisJCWlmICghZGV2X21hdGNoKQogCQkJcmV0dXJuIC0xOwotCQlp ZiAoc2stPnNrX2JvdW5kX2Rldl9pZiAmJiBkZXZfbWF0Y2gpCisJCWlmIChzay0+c2tfYm91bmRf ZGV2X2lmKQogCQkJc2NvcmUrKzsKIAl9CiAKLS0gCjIuMTQuMwoK ----Next_Part(Tue_May_15_16_50_36_2018_681)-- Content-Type: Application/Octet-Stream Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="net_416.mbox" RnJvbSA1M2U4MzhlMzZjNDA3ZTEwYTQ5MTExMDY1NzhhZjJkNjgzZTgzMWFmIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBJbmdvIE1vbG5hciA8bWluZ29AZWx0ZS5odT4KRGF0ZTogV2Vk LCAyIE1heSAyMDE4IDEzOjMwOjU3ICswMjAwClN1YmplY3Q6IFtQQVRDSCAwMS81NV0gODEzOXRv bzogVXNlIGRpc2FibGVfaXJxX25vc3luYygpIGluCiBydGw4MTM5X3BvbGxfY29udHJvbGxlcigp CgpbIFVwc3RyZWFtIGNvbW1pdCBhZjNlMGZjZjc4ODc5ZjcxOGM1ZjczZGYwODE0OTUxYmQ3MDU3 ZDM0IF0KClVzZSBkaXNhYmxlX2lycV9ub3N5bmMoKSBpbnN0ZWFkIG9mIGRpc2FibGVfaXJxKCkg YXMgdGhpcyBtaWdodCBiZQpjYWxsZWQgaW4gYXRvbWljIGNvbnRleHQgd2l0aCBuZXRwb2xsLgoK U2lnbmVkLW9mZi1ieTogSW5nbyBNb2xuYXIgPG1pbmdvQGVsdGUuaHU+ClNpZ25lZC1vZmYtYnk6 IFRob21hcyBHbGVpeG5lciA8dGdseEBsaW51dHJvbml4LmRlPgpTaWduZWQtb2ZmLWJ5OiBTZWJh c3RpYW4gQW5kcnplaiBTaWV3aW9yIDxiaWdlYXN5QGxpbnV0cm9uaXguZGU+ClNpZ25lZC1vZmYt Ynk6IERhdmlkIFMuIE1pbGxlciA8ZGF2ZW1AZGF2ZW1sb2Z0Lm5ldD4KLS0tCiBkcml2ZXJzL25l dC9ldGhlcm5ldC9yZWFsdGVrLzgxMzl0b28uYyB8IDIgKy0KIDEgZmlsZSBjaGFuZ2VkLCAxIGlu c2VydGlvbigrKSwgMSBkZWxldGlvbigtKQoKZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L2V0aGVy bmV0L3JlYWx0ZWsvODEzOXRvby5jIGIvZHJpdmVycy9uZXQvZXRoZXJuZXQvcmVhbHRlay84MTM5 dG9vLmMKaW5kZXggZDI0YjQ3YjhlMGIyLi5kMTE4ZGE1YTEwYTIgMTAwNjQ0Ci0tLSBhL2RyaXZl cnMvbmV0L2V0aGVybmV0L3JlYWx0ZWsvODEzOXRvby5jCisrKyBiL2RyaXZlcnMvbmV0L2V0aGVy bmV0L3JlYWx0ZWsvODEzOXRvby5jCkBAIC0yMjI0LDcgKzIyMjQsNyBAQCBzdGF0aWMgdm9pZCBy dGw4MTM5X3BvbGxfY29udHJvbGxlcihzdHJ1Y3QgbmV0X2RldmljZSAqZGV2KQogCXN0cnVjdCBy dGw4MTM5X3ByaXZhdGUgKnRwID0gbmV0ZGV2X3ByaXYoZGV2KTsKIAljb25zdCBpbnQgaXJxID0g dHAtPnBjaV9kZXYtPmlycTsKIAotCWRpc2FibGVfaXJxKGlycSk7CisJZGlzYWJsZV9pcnFfbm9z eW5jKGlycSk7CiAJcnRsODEzOV9pbnRlcnJ1cHQoaXJxLCBkZXYpOwogCWVuYWJsZV9pcnEoaXJx KTsKIH0KLS0gCjIuMTQuMwoKCkZyb20gMjE4YTk3MWRkNjZlYzgyYmRiNjUzY2Y4MmM5ZDliMjEx ZjM2NzgwOSBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJvbTogIkd1c3Rhdm8gQS4gUi4gU2ls dmEiIDxndXN0YXZvQGVtYmVkZGVkb3IuY29tPgpEYXRlOiBUaHUsIDMgTWF5IDIwMTggMTM6MTc6 MTIgLTA1MDAKU3ViamVjdDogW1BBVENIIDAyLzU1XSBhdG06IHphdG06IEZpeCBwb3RlbnRpYWwg U3BlY3RyZSB2MQoKWyBVcHN0cmVhbSBjb21taXQgMmJlMTQ3Zjc0NTlkYjViYmYyOTJlMGE2ZjEz NTAzN2I1NWUyMGIzOSBdCgpwb29sIGNhbiBiZSBpbmRpcmVjdGx5IGNvbnRyb2xsZWQgYnkgdXNl ci1zcGFjZSwgaGVuY2UgbGVhZGluZyB0bwphIHBvdGVudGlhbCBleHBsb2l0YXRpb24gb2YgdGhl IFNwZWN0cmUgdmFyaWFudCAxIHZ1bG5lcmFiaWxpdHkuCgpUaGlzIGlzc3VlIHdhcyBkZXRlY3Rl ZCB3aXRoIHRoZSBoZWxwIG9mIFNtYXRjaDoKCmRyaXZlcnMvYXRtL3phdG0uYzoxNDYyIHphdG1f aW9jdGwoKSB3YXJuOiBwb3RlbnRpYWwgc3BlY3RyZSBpc3N1ZQonemF0bV9kZXYtPnBvb2xfaW5m bycgKGxvY2FsIGNhcCkKCkZpeCB0aGlzIGJ5IHNhbml0aXppbmcgcG9vbCBiZWZvcmUgdXNpbmcg aXQgdG8gaW5kZXgKemF0bV9kZXYtPnBvb2xfaW5mbwoKTm90aWNlIHRoYXQgZ2l2ZW4gdGhhdCBz cGVjdWxhdGlvbiB3aW5kb3dzIGFyZSBsYXJnZSwgdGhlIHBvbGljeSBpcwp0byBraWxsIHRoZSBz cGVjdWxhdGlvbiBvbiB0aGUgZmlyc3QgbG9hZCBhbmQgbm90IHdvcnJ5IGlmIGl0IGNhbiBiZQpj b21wbGV0ZWQgd2l0aCBhIGRlcGVuZGVudCBsb2FkL3N0b3JlIFsxXS4KClsxXSBodHRwczovL21h cmMuaW5mby8/bD1saW51eC1rZXJuZWwmbT0xNTI0NDkxMzExMTQ3Nzgmdz0yCgpDYzogc3RhYmxl QHZnZXIua2VybmVsLm9yZwpTaWduZWQtb2ZmLWJ5OiBHdXN0YXZvIEEuIFIuIFNpbHZhIDxndXN0 YXZvQGVtYmVkZGVkb3IuY29tPgpTaWduZWQtb2ZmLWJ5OiBEYXZpZCBTLiBNaWxsZXIgPGRhdmVt QGRhdmVtbG9mdC5uZXQ+Ci0tLQogZHJpdmVycy9hdG0vemF0bS5jIHwgMyArKysKIDEgZmlsZSBj aGFuZ2VkLCAzIGluc2VydGlvbnMoKykKCmRpZmYgLS1naXQgYS9kcml2ZXJzL2F0bS96YXRtLmMg Yi9kcml2ZXJzL2F0bS96YXRtLmMKaW5kZXggMWVmNjdkYjAzYzhlLi45YzlhMjI5NTg3MTcgMTAw NjQ0Ci0tLSBhL2RyaXZlcnMvYXRtL3phdG0uYworKysgYi9kcml2ZXJzL2F0bS96YXRtLmMKQEAg LTI4LDYgKzI4LDcgQEAKICNpbmNsdWRlIDxhc20vaW8uaD4KICNpbmNsdWRlIDxsaW51eC9hdG9t aWMuaD4KICNpbmNsdWRlIDxsaW51eC91YWNjZXNzLmg+CisjaW5jbHVkZSA8bGludXgvbm9zcGVj Lmg+CiAKICNpbmNsdWRlICJ1UEQ5ODQwMS5oIgogI2luY2x1ZGUgInVQRDk4NDAyLmgiCkBAIC0x NDU4LDYgKzE0NTksOCBAQCBzdGF0aWMgaW50IHphdG1faW9jdGwoc3RydWN0IGF0bV9kZXYgKmRl dix1bnNpZ25lZCBpbnQgY21kLHZvaWQgX191c2VyICphcmcpCiAJCQkJCXJldHVybiAtRUZBVUxU OwogCQkJCWlmIChwb29sIDwgMCB8fCBwb29sID4gWkFUTV9MQVNUX1BPT0wpCiAJCQkJCXJldHVy biAtRUlOVkFMOworCQkJCXBvb2wgPSBhcnJheV9pbmRleF9ub3NwZWMocG9vbCwKKwkJCQkJCQkg IFpBVE1fTEFTVF9QT09MICsgMSk7CiAJCQkJc3Bpbl9sb2NrX2lycXNhdmUoJnphdG1fZGV2LT5s b2NrLCBmbGFncyk7CiAJCQkJaW5mbyA9IHphdG1fZGV2LT5wb29sX2luZm9bcG9vbF07CiAJCQkJ aWYgKGNtZCA9PSBaQVRNX0dFVFBPT0xaKSB7Ci0tIAoyLjE0LjMKCgpGcm9tIGQ2MTcxYTgxMDEx YWQ4YWZkZDQ0ZDQ0ZDZhOTk1OTQ5NmNhNWY5MGQgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCkZy b206IEhhbmdiaW4gTGl1IDxsaXVoYW5nYmluQGdtYWlsLmNvbT4KRGF0ZTogRnJpLCAyNyBBcHIg MjAxOCAyMDo1OToyNCArMDgwMApTdWJqZWN0OiBbUEFUQ0ggMDMvNTVdIGJyaWRnZTogY2hlY2sg aWZhY2UgdXBwZXIgZGV2IHdoZW4gc2V0dGluZyBtYXN0ZXIgdmlhCiBpb2N0bAoKWyBVcHN0cmVh bSBjb21taXQgZTgyMzhmYzJiZDdiNGMzYzc1NTRmYTJkZjA2N2U3OTY2MTAyMTJmYyBdCgpXaGVu IHdlIHNldCBhIGJvbmQgc2xhdmUncyBtYXN0ZXIgdG8gYnJpZGdlIHZpYSBpb2N0bCwgd2Ugb25s eSBjaGVjawp0aGUgSUZGX0JSSURHRV9QT1JUIGZsYWcuIEFsdGhvdWdoIHdlIHdpbGwgZmluZCB0 aGUgc2xhdmUncyByZWFsIG1hc3RlcgphdCBuZXRkZXZfbWFzdGVyX3VwcGVyX2Rldl9saW5rKCkg bGF0ZXIsIGl0IGFscmVhZHkgZG9lcyBzb21lIHNldHRpbmdzCmFuZCBhbGxvY2F0ZXMgc29tZSBy ZXNvdXJjZXMuIEl0IHdvdWxkIGJlIGJldHRlciB0byByZXR1cm4gYXMgZWFybHkKYXMgcG9zc2li bGUuCgp2MSAtPiB2MjoKdXNlIG5ldGRldl9tYXN0ZXJfdXBwZXJfZGV2X2dldCgpIGluc3RlYWQg b2YgbmV0ZGV2X2hhc19hbnlfdXBwZXJfZGV2KCkKdG8gY2hlY2sgaWYgd2UgaGF2ZSBhIG1hc3Rl ciwgYmVjYXVzZSBub3QgYWxsIHVwcGVyIGRldnMgYXJlIG1hc3RlcnMsCmUuZy4gdmxhbiBkZXZp Y2UuCgpSZXBvcnRlZC1ieTogc3l6Ym90K2RlNzMzNjFlZTQ5NzFiNmU2Zjc1QHN5emthbGxlci5h cHBzcG90bWFpbC5jb20KU2lnbmVkLW9mZi1ieTogSGFuZ2JpbiBMaXUgPGxpdWhhbmdiaW5AZ21h aWwuY29tPgpBY2tlZC1ieTogTmlrb2xheSBBbGVrc2FuZHJvdiA8bmlrb2xheUBjdW11bHVzbmV0 d29ya3MuY29tPgpTaWduZWQtb2ZmLWJ5OiBEYXZpZCBTLiBNaWxsZXIgPGRhdmVtQGRhdmVtbG9m dC5uZXQ+Ci0tLQogbmV0L2JyaWRnZS9icl9pZi5jIHwgNCArKy0tCiAxIGZpbGUgY2hhbmdlZCwg MiBpbnNlcnRpb25zKCspLCAyIGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL25ldC9icmlkZ2Uv YnJfaWYuYyBiL25ldC9icmlkZ2UvYnJfaWYuYwppbmRleCA5YmE0ZWQ2NWM1MmIuLjRiZTUzMzU0 MDdjNSAxMDA2NDQKLS0tIGEvbmV0L2JyaWRnZS9icl9pZi5jCisrKyBiL25ldC9icmlkZ2UvYnJf aWYuYwpAQCAtNTA5LDggKzUwOSw4IEBAIGludCBicl9hZGRfaWYoc3RydWN0IG5ldF9icmlkZ2Ug KmJyLCBzdHJ1Y3QgbmV0X2RldmljZSAqZGV2LAogCQlyZXR1cm4gLUVMT09QOwogCX0KIAotCS8q IERldmljZSBpcyBhbHJlYWR5IGJlaW5nIGJyaWRnZWQgKi8KLQlpZiAoYnJfcG9ydF9leGlzdHMo ZGV2KSkKKwkvKiBEZXZpY2UgaGFzIG1hc3RlciB1cHBlciBkZXYgKi8KKwlpZiAobmV0ZGV2X21h c3Rlcl91cHBlcl9kZXZfZ2V0KGRldikpCiAJCXJldHVybiAtRUJVU1k7CiAKIAkvKiBObyBicmlk Z2luZyBkZXZpY2VzIHRoYXQgZGlzbGlrZSB0aGF0IChlLmcuIHdpcmVsZXNzKSAqLwotLSAKMi4x NC4zCgoKRnJvbSBiNDEyNGU1MDIwODNmZGEyZTBkMGZhYmY0NzFmNWFlYTVlZWIzODM4IE1vbiBT ZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBFcmljIER1bWF6ZXQgPGVkdW1hemV0QGdvb2dsZS5j b20+CkRhdGU6IFRodSwgMyBNYXkgMjAxOCAwOTozOToyMCAtMDcwMApTdWJqZWN0OiBbUEFUQ0gg MDQvNTVdIGRjY3A6IGZpeCB0YXNrbGV0IHVzYWdlCgpbIFVwc3RyZWFtIGNvbW1pdCBhOGQ3YWEx N2JiYzk3MDk3MWNjZGY3MTk4OGVhMTkyMzBhYjM2OGIxIF0KCnN5emJvdCByZXBvcnRlZCBhIGNy YXNoIGluIHRhc2tsZXRfYWN0aW9uX2NvbW1vbigpIGNhdXNlZCBieSBkY2NwLgoKZGNjcCBuZWVk cyB0byBtYWtlIHN1cmUgc29ja2V0IHdvbnQgZGlzYXBwZWFyIGJlZm9yZSB0YXNrbGV0IGhhbmRs ZXIKaGFzIGNvbXBsZXRlZC4KClRoaXMgcGF0Y2ggdGFrZXMgYSByZWZlcmVuY2Ugb24gdGhlIHNv Y2tldCB3aGVuIGFybWluZyB0aGUgdGFza2xldCwKYW5kIG1vdmVzIHRoZSBzb2NrX3B1dCgpIGZy b20gZGNjcF93cml0ZV94bWl0X3RpbWVyKCkgdG8gZGNjcF93cml0ZV94bWl0bGV0KCkKCmtlcm5l bCBCVUcgYXQga2VybmVsL3NvZnRpcnEuYzo1MTQhCmludmFsaWQgb3Bjb2RlOiAwMDAwIFsjMV0g U01QIEtBU0FOCkR1bXBpbmcgZnRyYWNlIGJ1ZmZlcjoKICAgKGZ0cmFjZSBidWZmZXIgZW1wdHkp Ck1vZHVsZXMgbGlua2VkIGluOgpDUFU6IDEgUElEOiAxNyBDb21tOiBrc29mdGlycWQvMSBOb3Qg dGFpbnRlZCA0LjE3LjAtcmMzKyAjMzAKSGFyZHdhcmUgbmFtZTogR29vZ2xlIEdvb2dsZSBDb21w dXRlIEVuZ2luZS9Hb29nbGUgQ29tcHV0ZSBFbmdpbmUsIEJJT1MgR29vZ2xlIDAxLzAxLzIwMTEK UklQOiAwMDEwOnRhc2tsZXRfYWN0aW9uX2NvbW1vbi5pc3JhLjE5KzB4NmRiLzB4NzAwIGtlcm5l bC9zb2Z0aXJxLmM6NTE1ClJTUDogMDAxODpmZmZmODgwMWQ5YjNmYWY4IEVGTEFHUzogMDAwMTAy NDYKZGNjcF9jbG9zZTogQUJPUlQgd2l0aCA2NTQyMyBieXRlcyB1bnJlYWQKUkFYOiAxZmZmZjEw MDNiMzY3ZjZiIFJCWDogZmZmZjg4MDFkYWYxZjNmMCBSQ1g6IDAwMDAwMDAwMDAwMDAwMDAKUkRY OiBmZmZmODgwMWNmODk1NDk4IFJTSTogMDAwMDAwMDAwMDAwMDAwNCBSREk6IDAwMDAwMDAwMDAw MDAwMDAKUkJQOiBmZmZmODgwMWQ5YjNmYzQwIFIwODogZmZmZmVkMDAzOWYxMmE5NSBSMDk6IGZm ZmZlZDAwMzlmMTJhOTQKZGNjcF9jbG9zZTogQUJPUlQgd2l0aCA2NTQyMyBieXRlcyB1bnJlYWQK UjEwOiBmZmZmZWQwMDM5ZjEyYTk0IFIxMTogZmZmZjg4MDFjZjg5NTRhMyBSMTI6IDAwMDAwMDAw MDAwMDAwMDAKUjEzOiBmZmZmODgwMWQ5YjNmYzE4IFIxNDogZGZmZmZjMDAwMDAwMDAwMCBSMTU6 IGZmZmY4ODAxY2Y4OTU0OTAKRlM6ICAwMDAwMDAwMDAwMDAwMDAwKDAwMDApIEdTOmZmZmY4ODAx ZGFmMDAwMDAoMDAwMCkga25sR1M6MDAwMDAwMDAwMDAwMDAwMApDUzogIDAwMTAgRFM6IDAwMDAg RVM6IDAwMDAgQ1IwOiAwMDAwMDAwMDgwMDUwMDMzCkNSMjogMDAwMDAwMWIyYmMyODAwMCBDUjM6 IDAwMDAwMDAxYTA4YTkwMDAgQ1I0OiAwMDAwMDAwMDAwMTQwNmUwCkRSMDogMDAwMDAwMDAwMDAw MDAwMCBEUjE6IDAwMDAwMDAwMDAwMDAwMDAgRFIyOiAwMDAwMDAwMDAwMDAwMDAwCkRSMzogMDAw MDAwMDAwMDAwMDAwMCBEUjY6IDAwMDAwMDAwZmZmZTBmZjAgRFI3OiAwMDAwMDAwMDAwMDAwNDAw CkNhbGwgVHJhY2U6CiB0YXNrbGV0X2FjdGlvbisweDFkLzB4MjAga2VybmVsL3NvZnRpcnEuYzo1 MzMKIF9fZG9fc29mdGlycSsweDJlMC8weGFmNSBrZXJuZWwvc29mdGlycS5jOjI4NQpkY2NwX2Ns b3NlOiBBQk9SVCB3aXRoIDY1NDIzIGJ5dGVzIHVucmVhZAogcnVuX2tzb2Z0aXJxZCsweDg2LzB4 MTAwIGtlcm5lbC9zb2Z0aXJxLmM6NjQ2CiBzbXBib290X3RocmVhZF9mbisweDQxNy8weDg3MCBr ZXJuZWwvc21wYm9vdC5jOjE2NAoga3RocmVhZCsweDM0NS8weDQxMCBrZXJuZWwva3RocmVhZC5j OjIzOAogcmV0X2Zyb21fZm9yaysweDNhLzB4NTAgYXJjaC94ODYvZW50cnkvZW50cnlfNjQuUzo0 MTIKQ29kZTogNDggOGIgODUgZTggZmUgZmYgZmYgNDggOGIgOTUgZjAgZmUgZmYgZmYgZTkgOTQg ZmIgZmYgZmYgNDggODkgOTUgZjAgZmUgZmYgZmYgZTggODEgNTMgNmUgMDAgNDggOGIgOTUgZjAg ZmUgZmYgZmYgZTkgNjIgZmIgZmYgZmYgPDBmPiAwYiA0OCA4OSBjZiA0OCA4OSA4ZCBlOCBmZSBm ZiBmZiBlOCA2NCA1MyA2ZSAwMCA0OCA4YiA4ZCBlOApSSVA6IHRhc2tsZXRfYWN0aW9uX2NvbW1v bi5pc3JhLjE5KzB4NmRiLzB4NzAwIGtlcm5lbC9zb2Z0aXJxLmM6NTE1IFJTUDogZmZmZjg4MDFk OWIzZmFmOAoKRml4ZXM6IGRjODQxZTMwZWFlYSAoImRjY3A6IEV4dGVuZCBDQ0lEIHBhY2tldCBk ZXF1ZXVlaW5nIGludGVyZmFjZSIpClNpZ25lZC1vZmYtYnk6IEVyaWMgRHVtYXpldCA8ZWR1bWF6 ZXRAZ29vZ2xlLmNvbT4KUmVwb3J0ZWQtYnk6IHN5emJvdCA8c3l6a2FsbGVyQGdvb2dsZWdyb3Vw cy5jb20+CkNjOiBHZXJyaXQgUmVua2VyIDxnZXJyaXRAZXJnLmFiZG4uYWMudWs+CkNjOiBkY2Nw QHZnZXIua2VybmVsLm9yZwpTaWduZWQtb2ZmLWJ5OiBEYXZpZCBTLiBNaWxsZXIgPGRhdmVtQGRh dmVtbG9mdC5uZXQ+Ci0tLQogbmV0L2RjY3AvY2NpZHMvY2NpZDIuYyB8IDE0ICsrKysrKysrKysr Ky0tCiBuZXQvZGNjcC90aW1lci5jICAgICAgIHwgIDIgKy0KIDIgZmlsZXMgY2hhbmdlZCwgMTMg aW5zZXJ0aW9ucygrKSwgMyBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9uZXQvZGNjcC9jY2lk cy9jY2lkMi5jIGIvbmV0L2RjY3AvY2NpZHMvY2NpZDIuYwppbmRleCA5MmQwMTZlODc4MTYuLjM4 NWYxNTNmZTAzMSAxMDA2NDQKLS0tIGEvbmV0L2RjY3AvY2NpZHMvY2NpZDIuYworKysgYi9uZXQv ZGNjcC9jY2lkcy9jY2lkMi5jCkBAIC0xMjYsNiArMTI2LDE2IEBAIHN0YXRpYyB2b2lkIGNjaWQy X2NoYW5nZV9sX3NlcV93aW5kb3coc3RydWN0IHNvY2sgKnNrLCB1NjQgdmFsKQogCQkJCQkJICBE Q0NQRl9TRVFfV01BWCkpOwogfQogCitzdGF0aWMgdm9pZCBkY2NwX3Rhc2tsZXRfc2NoZWR1bGUo c3RydWN0IHNvY2sgKnNrKQoreworCXN0cnVjdCB0YXNrbGV0X3N0cnVjdCAqdCA9ICZkY2NwX3Nr KHNrKS0+ZGNjcHNfeG1pdGxldDsKKworCWlmICghdGVzdF9hbmRfc2V0X2JpdChUQVNLTEVUX1NU QVRFX1NDSEVELCAmdC0+c3RhdGUpKSB7CisJCXNvY2tfaG9sZChzayk7CisJCV9fdGFza2xldF9z Y2hlZHVsZSh0KTsKKwl9Cit9CisKIHN0YXRpYyB2b2lkIGNjaWQyX2hjX3R4X3J0b19leHBpcmUo c3RydWN0IHRpbWVyX2xpc3QgKnQpCiB7CiAJc3RydWN0IGNjaWQyX2hjX3R4X3NvY2sgKmhjID0g ZnJvbV90aW1lcihoYywgdCwgdHhfcnRvdGltZXIpOwpAQCAtMTY2LDcgKzE3Niw3IEBAIHN0YXRp YyB2b2lkIGNjaWQyX2hjX3R4X3J0b19leHBpcmUoc3RydWN0IHRpbWVyX2xpc3QgKnQpCiAKIAkv KiBpZiB3ZSB3ZXJlIGJsb2NrZWQgYmVmb3JlLCB3ZSBtYXkgbm93IHNlbmQgY3duZD0xIHBhY2tl dCAqLwogCWlmIChzZW5kZXJfd2FzX2Jsb2NrZWQpCi0JCXRhc2tsZXRfc2NoZWR1bGUoJmRjY3Bf c2soc2spLT5kY2Nwc194bWl0bGV0KTsKKwkJZGNjcF90YXNrbGV0X3NjaGVkdWxlKHNrKTsKIAkv KiByZXN0YXJ0IGJhY2tlZC1vZmYgdGltZXIgKi8KIAlza19yZXNldF90aW1lcihzaywgJmhjLT50 eF9ydG90aW1lciwgamlmZmllcyArIGhjLT50eF9ydG8pOwogb3V0OgpAQCAtNzA2LDcgKzcxNiw3 IEBAIHN0YXRpYyB2b2lkIGNjaWQyX2hjX3R4X3BhY2tldF9yZWN2KHN0cnVjdCBzb2NrICpzaywg c3RydWN0IHNrX2J1ZmYgKnNrYikKIGRvbmU6CiAJLyogY2hlY2sgaWYgaW5jb21pbmcgQWNrcyBh bGxvdyBwZW5kaW5nIHBhY2tldHMgdG8gYmUgc2VudCAqLwogCWlmIChzZW5kZXJfd2FzX2Jsb2Nr ZWQgJiYgIWNjaWQyX2N3bmRfbmV0d29ya19saW1pdGVkKGhjKSkKLQkJdGFza2xldF9zY2hlZHVs ZSgmZGNjcF9zayhzayktPmRjY3BzX3htaXRsZXQpOworCQlkY2NwX3Rhc2tsZXRfc2NoZWR1bGUo c2spOwogCWRjY3BfYWNrdmVjX3BhcnNlZF9jbGVhbnVwKCZoYy0+dHhfYXZfY2h1bmtzKTsKIH0K IApkaWZmIC0tZ2l0IGEvbmV0L2RjY3AvdGltZXIuYyBiL25ldC9kY2NwL3RpbWVyLmMKaW5kZXgg YjUwYTg3MzJmZjQzLi4xNTAxYTIwYTk0Y2EgMTAwNjQ0Ci0tLSBhL25ldC9kY2NwL3RpbWVyLmMK KysrIGIvbmV0L2RjY3AvdGltZXIuYwpAQCAtMjMyLDYgKzIzMiw3IEBAIHN0YXRpYyB2b2lkIGRj Y3Bfd3JpdGVfeG1pdGxldCh1bnNpZ25lZCBsb25nIGRhdGEpCiAJZWxzZQogCQlkY2NwX3dyaXRl X3htaXQoc2spOwogCWJoX3VubG9ja19zb2NrKHNrKTsKKwlzb2NrX3B1dChzayk7CiB9CiAKIHN0 YXRpYyB2b2lkIGRjY3Bfd3JpdGVfeG1pdF90aW1lcihzdHJ1Y3QgdGltZXJfbGlzdCAqdCkKQEAg LTI0MCw3ICsyNDEsNiBAQCBzdGF0aWMgdm9pZCBkY2NwX3dyaXRlX3htaXRfdGltZXIoc3RydWN0 IHRpbWVyX2xpc3QgKnQpCiAJc3RydWN0IHNvY2sgKnNrID0gJmRwLT5kY2Nwc19pbmV0X2Nvbm5l Y3Rpb24uaWNza19pbmV0LnNrOwogCiAJZGNjcF93cml0ZV94bWl0bGV0KCh1bnNpZ25lZCBsb25n KXNrKTsKLQlzb2NrX3B1dChzayk7CiB9CiAKIHZvaWQgZGNjcF9pbml0X3htaXRfdGltZXJzKHN0 cnVjdCBzb2NrICpzaykKLS0gCjIuMTQuMwoKCkZyb20gMWYxOWZlMWNjNzVjNDA0MTc5Njg0MWZh YmEwZWJkYWZlMGE2ZTNjMyBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJvbTogSnVsaWFuIEFu YXN0YXNvdiA8amFAc3NpLmJnPgpEYXRlOiBXZWQsIDIgTWF5IDIwMTggMDk6NDE6MTkgKzAzMDAK U3ViamVjdDogW1BBVENIIDA1LzU1XSBpcHY0OiBmaXggZm5oZSB1c2FnZSBieSBub24tY2FjaGVk IHJvdXRlcwoKWyBVcHN0cmVhbSBjb21taXQgOTQ3MjBlM2FlZTY4ODRkOGM4YmViNjc4MDAxNjI5 ZGE2MGVjNjM2NiBdCgpBbGxvdyBzb21lIG5vbi1jYWNoZWQgcm91dGVzIHRvIHVzZSBub24tZXhw aXJlZCBmbmhlOgoKMS4gaXBfZGVsX2ZuaGU6IG1vdmVkIGFib3ZlIGFuZCBub3cgY2FsbGVkIGJ5 IGZpbmRfZXhjZXB0aW9uLgpUaGUgNC41KyBjb21taXQgZGVlZDQ5ZGY3MzkwIGV4cGlyZXMgZm5o ZSBvbmx5IHdoZW4gY2FjaGluZwpyb3V0ZXMuIENoYW5nZSB0aGF0IHRvOgoKMS4xLiB1c2UgZm5o ZSBmb3Igbm9uLWNhY2hlZCBsb2NhbCBvdXRwdXQgcm91dGVzLCB3aXRoIHRoZSBoZWxwCmZyb20g KDIpCgoxLjIuIGFsbG93IF9fbWtyb3V0ZV9pbnB1dCB0byBkZXRlY3QgZXhwaXJlZCBmbmhlIChv dXRkYXRlZApmbmhlX2d3LCBmb3IgZXhhbXBsZSkgd2hlbiBkb19jYWNoZSBpcyBmYWxzZSwgZWcu IHdoZW4gaXRhZyE9MApmb3IgdW5pY2FzdCBkZXN0aW5hdGlvbnMuCgoyLiBfX21rcm91dGVfb3V0 cHV0OiBrZWVwIGZpIHRvIGFsbG93IGxvY2FsIHJvdXRlcyB3aXRoIG9yaWdfb2lmICE9IDAKdG8g dXNlIGZuaGUgaW5mbyBldmVuIHdoZW4gdGhlIG5ldyByb3V0ZSB3aWxsIG5vdCBiZSBjYWNoZWQg aW50byBmbmhlLgpBZnRlciBjb21taXQgODM5ZGE0ZDk4OTYwICgibmV0OiBpcHY0OiBzZXQgb3Jp Z19vaWYgYmFzZWQgb24gZmliCnJlc3VsdCBmb3IgbG9jYWwgdHJhZmZpYyIpIGl0IG1lYW5zIGFs bCBsb2NhbCByb3V0ZXMgd2lsbCBiZSBhZmZlY3RlZApiZWNhdXNlIHRoZXkgYXJlIG5vdCBjYWNo ZWQuIFRoaXMgY2hhbmdlIGlzIHVzZWQgdG8gc29sdmUgYSBQTVRVCnByb2JsZW0gd2l0aCBJUFZT IChhbmQgcHJvYmFibHkgTmV0ZmlsdGVyIEROQVQpIHNldHVwcyB0aGF0IHJlZGlyZWN0CmxvY2Fs IGNsaWVudHMgZnJvbSB0YXJnZXQgbG9jYWwgSVAgKGxvY2FsIHJvdXRlIHRvIFZpcnR1YWwgSVAp CnRvIG5ldyByZW1vdGUgSVAgdGFyZ2V0LCBlZy4gSVBWUyBUVU4gcmVhbCBzZXJ2ZXIuIExvb3Bi YWNrIGhhcwo2NEsgTVRVIGFuZCB3ZSBuZWVkIHRvIGNyZWF0ZSBmbmhlIG9uIHRoZSBsb2NhbCBy b3V0ZSB0aGF0IHdpbGwKa2VlcCB0aGUgcmVkdWNlZCBQTVRVIGZvciB0aGUgVmlydHVhbCBJUC4g V2l0aG91dCB0aGlzIGNoYW5nZQpmbmhlX3BtdHUgaXMgdXBkYXRlZCBmcm9tIElDTVAgYnV0IG5l dmVyIGV4cG9zZWQgdG8gbm9uLWNhY2hlZApsb2NhbCByb3V0ZXMuIFRoaXMgaW5jbHVkZXMgcm91 dGVzIHdpdGggZmxvd2k0X29pZiE9MCBmb3IgNC42KyBhbmQKd2l0aCBmbG93aTRfb2lmPWFueSBm b3IgNC4xNCspLgoKMy4gdXBkYXRlX29yX2NyZWF0ZV9mbmhlOiBtYWtlIHN1cmUgZm5oZV9leHBp cmVzIGlzIG5vdCAwIGZvcgpuZXcgZW50cmllcwoKRml4ZXM6IDgzOWRhNGQ5ODk2MCAoIm5ldDog aXB2NDogc2V0IG9yaWdfb2lmIGJhc2VkIG9uIGZpYiByZXN1bHQgZm9yIGxvY2FsIHRyYWZmaWMi KQpGaXhlczogZDZkNWU5OTllNWRmICgicm91dGU6IGRvIG5vdCBjYWNoZSBmaWIgcm91dGUgaW5m byBvbiBsb2NhbCByb3V0ZXMgd2l0aCBvaWYiKQpGaXhlczogZGVlZDQ5ZGY3MzkwICgicm91dGU6 IGNoZWNrIGFuZCByZW1vdmUgcm91dGUgY2FjaGUgd2hlbiB3ZSBnZXQgcm91dGUiKQpDYzogRGF2 aWQgQWhlcm4gPGRzYWhlcm5AZ21haWwuY29tPgpDYzogWGluIExvbmcgPGx1Y2llbi54aW5AZ21h aWwuY29tPgpTaWduZWQtb2ZmLWJ5OiBKdWxpYW4gQW5hc3Rhc292IDxqYUBzc2kuYmc+CkFja2Vk LWJ5OiBEYXZpZCBBaGVybiA8ZHNhaGVybkBnbWFpbC5jb20+ClNpZ25lZC1vZmYtYnk6IERhdmlk IFMuIE1pbGxlciA8ZGF2ZW1AZGF2ZW1sb2Z0Lm5ldD4KLS0tCiBuZXQvaXB2NC9yb3V0ZS5jIHwg MTE4ICsrKysrKysrKysrKysrKysrKysrKysrKystLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0KIDEgZmlsZSBjaGFuZ2VkLCA1MyBpbnNlcnRpb25zKCspLCA2NSBkZWxldGlvbnMoLSkKCmRp ZmYgLS1naXQgYS9uZXQvaXB2NC9yb3V0ZS5jIGIvbmV0L2lwdjQvcm91dGUuYwppbmRleCAyOTll MjQ3YjIwMzIuLmM1MzY2YjI5MDUwOCAxMDA2NDQKLS0tIGEvbmV0L2lwdjQvcm91dGUuYworKysg Yi9uZXQvaXB2NC9yb3V0ZS5jCkBAIC03MTAsNyArNzEwLDcgQEAgc3RhdGljIHZvaWQgdXBkYXRl X29yX2NyZWF0ZV9mbmhlKHN0cnVjdCBmaWJfbmggKm5oLCBfX2JlMzIgZGFkZHIsIF9fYmUzMiBn dywKIAkJZm5oZS0+Zm5oZV9ndyA9IGd3OwogCQlmbmhlLT5mbmhlX3BtdHUgPSBwbXR1OwogCQlm bmhlLT5mbmhlX210dV9sb2NrZWQgPSBsb2NrOwotCQlmbmhlLT5mbmhlX2V4cGlyZXMgPSBleHBp cmVzOworCQlmbmhlLT5mbmhlX2V4cGlyZXMgPSBtYXgoMVVMLCBleHBpcmVzKTsKIAogCQkvKiBF eGNlcHRpb24gY3JlYXRlZDsgbWFyayB0aGUgY2FjaGVkIHJvdXRlcyBmb3IgdGhlIG5leHRob3AK IAkJICogc3RhbGUsIHNvIGFueW9uZSBjYWNoaW5nIGl0IHJlY2hlY2tzIGlmIHRoaXMgZXhjZXB0 aW9uCkBAIC0xMjk4LDYgKzEyOTgsMzYgQEAgc3RhdGljIHVuc2lnbmVkIGludCBpcHY0X210dShj b25zdCBzdHJ1Y3QgZHN0X2VudHJ5ICpkc3QpCiAJcmV0dXJuIG10dSAtIGx3dHVubmVsX2hlYWRy b29tKGRzdC0+bHd0c3RhdGUsIG10dSk7CiB9CiAKK3N0YXRpYyB2b2lkIGlwX2RlbF9mbmhlKHN0 cnVjdCBmaWJfbmggKm5oLCBfX2JlMzIgZGFkZHIpCit7CisJc3RydWN0IGZuaGVfaGFzaF9idWNr ZXQgKmhhc2g7CisJc3RydWN0IGZpYl9uaF9leGNlcHRpb24gKmZuaGUsIF9fcmN1ICoqZm5oZV9w OworCXUzMiBodmFsID0gZm5oZV9oYXNoZnVuKGRhZGRyKTsKKworCXNwaW5fbG9ja19iaCgmZm5o ZV9sb2NrKTsKKworCWhhc2ggPSByY3VfZGVyZWZlcmVuY2VfcHJvdGVjdGVkKG5oLT5uaF9leGNl cHRpb25zLAorCQkJCQkgbG9ja2RlcF9pc19oZWxkKCZmbmhlX2xvY2spKTsKKwloYXNoICs9IGh2 YWw7CisKKwlmbmhlX3AgPSAmaGFzaC0+Y2hhaW47CisJZm5oZSA9IHJjdV9kZXJlZmVyZW5jZV9w cm90ZWN0ZWQoKmZuaGVfcCwgbG9ja2RlcF9pc19oZWxkKCZmbmhlX2xvY2spKTsKKwl3aGlsZSAo Zm5oZSkgeworCQlpZiAoZm5oZS0+Zm5oZV9kYWRkciA9PSBkYWRkcikgeworCQkJcmN1X2Fzc2ln bl9wb2ludGVyKCpmbmhlX3AsIHJjdV9kZXJlZmVyZW5jZV9wcm90ZWN0ZWQoCisJCQkJZm5oZS0+ Zm5oZV9uZXh0LCBsb2NrZGVwX2lzX2hlbGQoJmZuaGVfbG9jaykpKTsKKwkJCWZuaGVfZmx1c2hf cm91dGVzKGZuaGUpOworCQkJa2ZyZWVfcmN1KGZuaGUsIHJjdSk7CisJCQlicmVhazsKKwkJfQor CQlmbmhlX3AgPSAmZm5oZS0+Zm5oZV9uZXh0OworCQlmbmhlID0gcmN1X2RlcmVmZXJlbmNlX3By b3RlY3RlZChmbmhlLT5mbmhlX25leHQsCisJCQkJCQkgbG9ja2RlcF9pc19oZWxkKCZmbmhlX2xv Y2spKTsKKwl9CisKKwlzcGluX3VubG9ja19iaCgmZm5oZV9sb2NrKTsKK30KKwogc3RhdGljIHN0 cnVjdCBmaWJfbmhfZXhjZXB0aW9uICpmaW5kX2V4Y2VwdGlvbihzdHJ1Y3QgZmliX25oICpuaCwg X19iZTMyIGRhZGRyKQogewogCXN0cnVjdCBmbmhlX2hhc2hfYnVja2V0ICpoYXNoID0gcmN1X2Rl cmVmZXJlbmNlKG5oLT5uaF9leGNlcHRpb25zKTsKQEAgLTEzMTEsOCArMTM0MSwxNCBAQCBzdGF0 aWMgc3RydWN0IGZpYl9uaF9leGNlcHRpb24gKmZpbmRfZXhjZXB0aW9uKHN0cnVjdCBmaWJfbmgg Km5oLCBfX2JlMzIgZGFkZHIpCiAKIAlmb3IgKGZuaGUgPSByY3VfZGVyZWZlcmVuY2UoaGFzaFto dmFsXS5jaGFpbik7IGZuaGU7CiAJICAgICBmbmhlID0gcmN1X2RlcmVmZXJlbmNlKGZuaGUtPmZu aGVfbmV4dCkpIHsKLQkJaWYgKGZuaGUtPmZuaGVfZGFkZHIgPT0gZGFkZHIpCisJCWlmIChmbmhl LT5mbmhlX2RhZGRyID09IGRhZGRyKSB7CisJCQlpZiAoZm5oZS0+Zm5oZV9leHBpcmVzICYmCisJ CQkgICAgdGltZV9hZnRlcihqaWZmaWVzLCBmbmhlLT5mbmhlX2V4cGlyZXMpKSB7CisJCQkJaXBf ZGVsX2ZuaGUobmgsIGRhZGRyKTsKKwkJCQlicmVhazsKKwkJCX0KIAkJCXJldHVybiBmbmhlOwor CQl9CiAJfQogCXJldHVybiBOVUxMOwogfQpAQCAtMTYzOCwzNiArMTY3NCw2IEBAIHN0YXRpYyB2 b2lkIGlwX2hhbmRsZV9tYXJ0aWFuX3NvdXJjZShzdHJ1Y3QgbmV0X2RldmljZSAqZGV2LAogI2Vu ZGlmCiB9CiAKLXN0YXRpYyB2b2lkIGlwX2RlbF9mbmhlKHN0cnVjdCBmaWJfbmggKm5oLCBfX2Jl MzIgZGFkZHIpCi17Ci0Jc3RydWN0IGZuaGVfaGFzaF9idWNrZXQgKmhhc2g7Ci0Jc3RydWN0IGZp Yl9uaF9leGNlcHRpb24gKmZuaGUsIF9fcmN1ICoqZm5oZV9wOwotCXUzMiBodmFsID0gZm5oZV9o YXNoZnVuKGRhZGRyKTsKLQotCXNwaW5fbG9ja19iaCgmZm5oZV9sb2NrKTsKLQotCWhhc2ggPSBy Y3VfZGVyZWZlcmVuY2VfcHJvdGVjdGVkKG5oLT5uaF9leGNlcHRpb25zLAotCQkJCQkgbG9ja2Rl cF9pc19oZWxkKCZmbmhlX2xvY2spKTsKLQloYXNoICs9IGh2YWw7Ci0KLQlmbmhlX3AgPSAmaGFz aC0+Y2hhaW47Ci0JZm5oZSA9IHJjdV9kZXJlZmVyZW5jZV9wcm90ZWN0ZWQoKmZuaGVfcCwgbG9j a2RlcF9pc19oZWxkKCZmbmhlX2xvY2spKTsKLQl3aGlsZSAoZm5oZSkgewotCQlpZiAoZm5oZS0+ Zm5oZV9kYWRkciA9PSBkYWRkcikgewotCQkJcmN1X2Fzc2lnbl9wb2ludGVyKCpmbmhlX3AsIHJj dV9kZXJlZmVyZW5jZV9wcm90ZWN0ZWQoCi0JCQkJZm5oZS0+Zm5oZV9uZXh0LCBsb2NrZGVwX2lz X2hlbGQoJmZuaGVfbG9jaykpKTsKLQkJCWZuaGVfZmx1c2hfcm91dGVzKGZuaGUpOwotCQkJa2Zy ZWVfcmN1KGZuaGUsIHJjdSk7Ci0JCQlicmVhazsKLQkJfQotCQlmbmhlX3AgPSAmZm5oZS0+Zm5o ZV9uZXh0OwotCQlmbmhlID0gcmN1X2RlcmVmZXJlbmNlX3Byb3RlY3RlZChmbmhlLT5mbmhlX25l eHQsCi0JCQkJCQkgbG9ja2RlcF9pc19oZWxkKCZmbmhlX2xvY2spKTsKLQl9Ci0KLQlzcGluX3Vu bG9ja19iaCgmZm5oZV9sb2NrKTsKLX0KLQogc3RhdGljIHZvaWQgc2V0X2x3dF9yZWRpcmVjdChz dHJ1Y3QgcnRhYmxlICpydGgpCiB7CiAJaWYgKGx3dHVubmVsX291dHB1dF9yZWRpcmVjdChydGgt PmRzdC5sd3RzdGF0ZSkpIHsKQEAgLTE3MzQsMjAgKzE3NDAsMTAgQEAgc3RhdGljIGludCBfX21r cm91dGVfaW5wdXQoc3RydWN0IHNrX2J1ZmYgKnNrYiwKIAogCWZuaGUgPSBmaW5kX2V4Y2VwdGlv bigmRklCX1JFU19OSCgqcmVzKSwgZGFkZHIpOwogCWlmIChkb19jYWNoZSkgewotCQlpZiAoZm5o ZSkgeworCQlpZiAoZm5oZSkKIAkJCXJ0aCA9IHJjdV9kZXJlZmVyZW5jZShmbmhlLT5mbmhlX3J0 aF9pbnB1dCk7Ci0JCQlpZiAocnRoICYmIHJ0aC0+ZHN0LmV4cGlyZXMgJiYKLQkJCSAgICB0aW1l X2FmdGVyKGppZmZpZXMsIHJ0aC0+ZHN0LmV4cGlyZXMpKSB7Ci0JCQkJaXBfZGVsX2ZuaGUoJkZJ Ql9SRVNfTkgoKnJlcyksIGRhZGRyKTsKLQkJCQlmbmhlID0gTlVMTDsKLQkJCX0gZWxzZSB7Ci0J CQkJZ290byBydF9jYWNoZTsKLQkJCX0KLQkJfQotCi0JCXJ0aCA9IHJjdV9kZXJlZmVyZW5jZShG SUJfUkVTX05IKCpyZXMpLm5oX3J0aF9pbnB1dCk7Ci0KLXJ0X2NhY2hlOgorCQllbHNlCisJCQly dGggPSByY3VfZGVyZWZlcmVuY2UoRklCX1JFU19OSCgqcmVzKS5uaF9ydGhfaW5wdXQpOwogCQlp ZiAocnRfY2FjaGVfdmFsaWQocnRoKSkgewogCQkJc2tiX2RzdF9zZXRfbm9yZWYoc2tiLCAmcnRo LT5kc3QpOwogCQkJZ290byBvdXQ7CkBAIC0yMjI0LDM5ICsyMjIwLDMxIEBAIHN0YXRpYyBzdHJ1 Y3QgcnRhYmxlICpfX21rcm91dGVfb3V0cHV0KGNvbnN0IHN0cnVjdCBmaWJfcmVzdWx0ICpyZXMs CiAJCSAqIHRoZSBsb29wYmFjayBpbnRlcmZhY2UgYW5kIHRoZSBJUF9QS1RJTkZPIGlwaV9pZmlu ZGV4IHdpbGwKIAkJICogYmUgc2V0IHRvIHRoZSBsb29wYmFjayBpbnRlcmZhY2UgYXMgd2VsbC4K IAkJICovCi0JCWZpID0gTlVMTDsKKwkJZG9fY2FjaGUgPSBmYWxzZTsKIAl9CiAKIAlmbmhlID0g TlVMTDsKIAlkb19jYWNoZSAmPSBmaSAhPSBOVUxMOwotCWlmIChkb19jYWNoZSkgeworCWlmIChm aSkgewogCQlzdHJ1Y3QgcnRhYmxlIF9fcmN1ICoqcHJ0aDsKIAkJc3RydWN0IGZpYl9uaCAqbmgg PSAmRklCX1JFU19OSCgqcmVzKTsKIAogCQlmbmhlID0gZmluZF9leGNlcHRpb24obmgsIGZsNC0+ ZGFkZHIpOworCQlpZiAoIWRvX2NhY2hlKQorCQkJZ290byBhZGQ7CiAJCWlmIChmbmhlKSB7CiAJ CQlwcnRoID0gJmZuaGUtPmZuaGVfcnRoX291dHB1dDsKLQkJCXJ0aCA9IHJjdV9kZXJlZmVyZW5j ZSgqcHJ0aCk7Ci0JCQlpZiAocnRoICYmIHJ0aC0+ZHN0LmV4cGlyZXMgJiYKLQkJCSAgICB0aW1l X2FmdGVyKGppZmZpZXMsIHJ0aC0+ZHN0LmV4cGlyZXMpKSB7Ci0JCQkJaXBfZGVsX2ZuaGUobmgs IGZsNC0+ZGFkZHIpOwotCQkJCWZuaGUgPSBOVUxMOwotCQkJfSBlbHNlIHsKLQkJCQlnb3RvIHJ0 X2NhY2hlOworCQl9IGVsc2UgeworCQkJaWYgKHVubGlrZWx5KGZsNC0+Zmxvd2k0X2ZsYWdzICYK KwkJCQkgICAgIEZMT1dJX0ZMQUdfS05PV05fTkggJiYKKwkJCQkgICAgICEobmgtPm5oX2d3ICYm CisJCQkJICAgICAgIG5oLT5uaF9zY29wZSA9PSBSVF9TQ09QRV9MSU5LKSkpIHsKKwkJCQlkb19j YWNoZSA9IGZhbHNlOworCQkJCWdvdG8gYWRkOwogCQkJfQorCQkJcHJ0aCA9IHJhd19jcHVfcHRy KG5oLT5uaF9wY3B1X3J0aF9vdXRwdXQpOwogCQl9Ci0KLQkJaWYgKHVubGlrZWx5KGZsNC0+Zmxv d2k0X2ZsYWdzICYKLQkJCSAgICAgRkxPV0lfRkxBR19LTk9XTl9OSCAmJgotCQkJICAgICAhKG5o LT5uaF9ndyAmJgotCQkJICAgICAgIG5oLT5uaF9zY29wZSA9PSBSVF9TQ09QRV9MSU5LKSkpIHsK LQkJCWRvX2NhY2hlID0gZmFsc2U7Ci0JCQlnb3RvIGFkZDsKLQkJfQotCQlwcnRoID0gcmF3X2Nw dV9wdHIobmgtPm5oX3BjcHVfcnRoX291dHB1dCk7CiAJCXJ0aCA9IHJjdV9kZXJlZmVyZW5jZSgq cHJ0aCk7Ci0KLXJ0X2NhY2hlOgogCQlpZiAocnRfY2FjaGVfdmFsaWQocnRoKSAmJiBkc3RfaG9s ZF9zYWZlKCZydGgtPmRzdCkpCiAJCQlyZXR1cm4gcnRoOwogCX0KLS0gCjIuMTQuMwoKCkZyb20g ZDlkMWI1NjM0N2M4YjU0OWQ0OTE1YWFkOGFjOGFiMGM2MTllYzU4MCBNb24gU2VwIDE3IDAwOjAw OjAwIDIwMDEKRnJvbTogQW5kcmV5IElnbmF0b3YgPHJkbmFAZmIuY29tPgpEYXRlOiBUaHUsIDEw IE1heSAyMDE4IDEwOjU5OjM0IC0wNzAwClN1YmplY3Q6IFtQQVRDSCAwNi81NV0gaXB2NDogZml4 IG1lbW9yeSBsZWFrcyBpbiB1ZHBfc2VuZG1zZywgcGluZ192NF9zZW5kbXNnCgpbIFVwc3RyZWFt IGNvbW1pdCAxYjk3MDEzYmZiMTFkNjZmMDQxZGU2OTFkZTZmMGZlYzc0OGNlMDE2IF0KCkZpeCBt b3JlIG1lbW9yeSBsZWFrcyBpbiBpcF9jbXNnX3NlbmQoKSBjYWxsZXJzLiBQYXJ0IG9mIHRoZW0g d2VyZSBmaXhlZAplYXJsaWVyIGluIDkxOTQ4MzA5NmJmZS4KCiogdWRwX3NlbmRtc2cgb25lIHdh cyB0aGVyZSBzaW5jZSB0aGUgYmVnaW5uaW5nIHdoZW4gbGludXggc291cmNlcyB3ZXJlCiAgZmly c3QgYWRkZWQgdG8gZ2l0OwoqIHBpbmdfdjRfc2VuZG1zZyBvbmUgd2FzIGNvcHkvcGFzdGVkIGlu IGMzMTliNGQ3NmI5ZS4KCldoZW5ldmVyIHJldHVybiBoYXBwZW5zIGluIHVkcF9zZW5kbXNnKCkg b3IgcGluZ192NF9zZW5kbXNnKCkgSVAgb3B0aW9ucwpoYXZlIHRvIGJlIGZyZWVkIGlmIHRoZXkg d2VyZSBhbGxvY2F0ZWQgcHJldmlvdXNseS4KCkFkZCBsYWJlbCBzbyB0aGF0IGZ1dHVyZSBjYWxs ZXJzIChpZiBhbnkpIGNhbiB1c2UgaXQgaW5zdGVhZCBvZiBrZnJlZSgpCmJlZm9yZSByZXR1cm4g dGhhdCBpcyBlYXN5IHRvIGZvcmdldC4KCkZpeGVzOiBjMzE5YjRkNzZiOWUgKG5ldDogaXB2NDog YWRkIElQUFJPVE9fSUNNUCBzb2NrZXQga2luZCkKU2lnbmVkLW9mZi1ieTogQW5kcmV5IElnbmF0 b3YgPHJkbmFAZmIuY29tPgpTaWduZWQtb2ZmLWJ5OiBEYXZpZCBTLiBNaWxsZXIgPGRhdmVtQGRh dmVtbG9mdC5uZXQ+Ci0tLQogbmV0L2lwdjQvcGluZy5jIHwgNyArKysrKy0tCiBuZXQvaXB2NC91 ZHAuYyAgfCA3ICsrKysrLS0KIDIgZmlsZXMgY2hhbmdlZCwgMTAgaW5zZXJ0aW9ucygrKSwgNCBk ZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9uZXQvaXB2NC9waW5nLmMgYi9uZXQvaXB2NC9waW5n LmMKaW5kZXggYjhmMGRiNTRiMTk3Li4xNjIyNmQ0OTI2M2QgMTAwNjQ0Ci0tLSBhL25ldC9pcHY0 L3BpbmcuYworKysgYi9uZXQvaXB2NC9waW5nLmMKQEAgLTc3NSw4ICs3NzUsMTAgQEAgc3RhdGlj IGludCBwaW5nX3Y0X3NlbmRtc2coc3RydWN0IHNvY2sgKnNrLCBzdHJ1Y3QgbXNnaGRyICptc2cs IHNpemVfdCBsZW4pCiAJaXBjLmFkZHIgPSBmYWRkciA9IGRhZGRyOwogCiAJaWYgKGlwYy5vcHQg JiYgaXBjLm9wdC0+b3B0LnNycikgewotCQlpZiAoIWRhZGRyKQotCQkJcmV0dXJuIC1FSU5WQUw7 CisJCWlmICghZGFkZHIpIHsKKwkJCWVyciA9IC1FSU5WQUw7CisJCQlnb3RvIG91dF9mcmVlOwor CQl9CiAJCWZhZGRyID0gaXBjLm9wdC0+b3B0LmZhZGRyOwogCX0KIAl0b3MgPSBnZXRfcnR0b3Mo JmlwYywgaW5ldCk7CkBAIC04NDIsNiArODQ0LDcgQEAgc3RhdGljIGludCBwaW5nX3Y0X3NlbmRt c2coc3RydWN0IHNvY2sgKnNrLCBzdHJ1Y3QgbXNnaGRyICptc2csIHNpemVfdCBsZW4pCiAKIG91 dDoKIAlpcF9ydF9wdXQocnQpOworb3V0X2ZyZWU6CiAJaWYgKGZyZWUpCiAJCWtmcmVlKGlwYy5v cHQpOwogCWlmICghZXJyKSB7CmRpZmYgLS1naXQgYS9uZXQvaXB2NC91ZHAuYyBiL25ldC9pcHY0 L3VkcC5jCmluZGV4IGU1ZWY3YzM4YzkzNC4uZmI1OTkyOTg4NDUwIDEwMDY0NAotLS0gYS9uZXQv aXB2NC91ZHAuYworKysgYi9uZXQvaXB2NC91ZHAuYwpAQCAtOTU4LDggKzk1OCwxMCBAQCBpbnQg dWRwX3NlbmRtc2coc3RydWN0IHNvY2sgKnNrLCBzdHJ1Y3QgbXNnaGRyICptc2csIHNpemVfdCBs ZW4pCiAJc29ja190eF90aW1lc3RhbXAoc2ssIGlwYy5zb2NrYy50c2ZsYWdzLCAmaXBjLnR4X2Zs YWdzKTsKIAogCWlmIChpcGMub3B0ICYmIGlwYy5vcHQtPm9wdC5zcnIpIHsKLQkJaWYgKCFkYWRk cikKLQkJCXJldHVybiAtRUlOVkFMOworCQlpZiAoIWRhZGRyKSB7CisJCQllcnIgPSAtRUlOVkFM OworCQkJZ290byBvdXRfZnJlZTsKKwkJfQogCQlmYWRkciA9IGlwYy5vcHQtPm9wdC5mYWRkcjsK IAkJY29ubmVjdGVkID0gMDsKIAl9CkBAIC0xMDgwLDYgKzEwODIsNyBAQCBpbnQgdWRwX3NlbmRt c2coc3RydWN0IHNvY2sgKnNrLCBzdHJ1Y3QgbXNnaGRyICptc2csIHNpemVfdCBsZW4pCiAKIG91 dDoKIAlpcF9ydF9wdXQocnQpOworb3V0X2ZyZWU6CiAJaWYgKGZyZWUpCiAJCWtmcmVlKGlwYy5v cHQpOwogCWlmICghZXJyKQotLSAKMi4xNC4zCgoKRnJvbSA3MDQzNWU1MzFmMTU3NzU0Y2RmODYx YmQ4NjVlZGI0NmZkZGNjNjYxIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBFcmljIER1 bWF6ZXQgPGVkdW1hemV0QGdvb2dsZS5jb20+CkRhdGU6IE1vbiwgNyBNYXkgMjAxOCAwOTowMjoy NSAtMDcwMApTdWJqZWN0OiBbUEFUQ0ggMDcvNTVdIGxsYzogYmV0dGVyIGRlYWwgd2l0aCB0b28g c21hbGwgbXR1CgpbIFVwc3RyZWFtIGNvbW1pdCAyYzVkNWIxM2M2ZWI3OWY1Njc3ZTIwNmI4YWFk NTliM2EyMDk3ZjYwIF0KCnN5emJvdCBsb3ZlcyB0byBzZXQgdmVyeSBzbWFsbCBtdHUgb24gZGV2 aWNlcywgc2luY2UgaXQgYnJpbmdzIGpveS4KV2UgbXVzdCBtYWtlIGxsY191aV9zZW5kbXNnKCkg Zm9vbCBwcm9vZi4KCnVzZXJjb3B5OiBLZXJuZWwgbWVtb3J5IG92ZXJ3cml0ZSBhdHRlbXB0IGRl dGVjdGVkIHRvIHdyYXBwZWQgYWRkcmVzcyAob2Zmc2V0IDAsIHNpemUgMTg0NDY2MTIxMzk4MDIz MjAwNjgpIQoKa2VybmVsIEJVRyBhdCBtbS91c2VyY29weS5jOjEwMCEKaW52YWxpZCBvcGNvZGU6 IDAwMDAgWyMxXSBTTVAgS0FTQU4KRHVtcGluZyBmdHJhY2UgYnVmZmVyOgogICAoZnRyYWNlIGJ1 ZmZlciBlbXB0eSkKTW9kdWxlcyBsaW5rZWQgaW46CkNQVTogMCBQSUQ6IDE3NDY0IENvbW06IHN5 ei1leGVjdXRvcjEgTm90IHRhaW50ZWQgNC4xNy4wLXJjMysgIzM2CkhhcmR3YXJlIG5hbWU6IEdv b2dsZSBHb29nbGUgQ29tcHV0ZSBFbmdpbmUvR29vZ2xlIENvbXB1dGUgRW5naW5lLCBCSU9TIEdv b2dsZSAwMS8wMS8yMDExClJJUDogMDAxMDp1c2VyY29weV9hYm9ydCsweGJiLzB4YmQgbW0vdXNl cmNvcHkuYzo4OApSU1A6IDAwMTg6ZmZmZjg4MDE4NjhiZjgwMCBFRkxBR1M6IDAwMDEwMjgyClJB WDogMDAwMDAwMDAwMDAwMDA2YyBSQlg6IGZmZmZmZmZmODdkMmZiMDAgUkNYOiAwMDAwMDAwMDAw MDAwMDAwClJEWDogMDAwMDAwMDAwMDAwMDA2YyBSU0k6IGZmZmZmZmZmODE2MTA3MzEgUkRJOiBm ZmZmZWQwMDMwZDE3ZWY2ClJCUDogZmZmZjg4MDE4NjhiZjg1OCBSMDg6IGZmZmY4ODAxOGRhYTQy MDAgUjA5OiBmZmZmZWQwMDNiNWM0ZmIwClIxMDogZmZmZmVkMDAzYjVjNGZiMCBSMTE6IGZmZmY4 ODAxZGFlMjdkODcgUjEyOiBmZmZmZmZmZjg3ZDJmOGUwClIxMzogZmZmZmZmZmY4N2QyZjdhMCBS MTQ6IGZmZmZmZmZmODdkMmY3YTAgUjE1OiBmZmZmZmZmZjg3ZDJmN2EwCkZTOiAgMDAwMDdmNTZh MTRhYzcwMCgwMDAwKSBHUzpmZmZmODgwMWRhZTAwMDAwKDAwMDApIGtubEdTOjAwMDAwMDAwMDAw MDAwMDAKQ1M6ICAwMDEwIERTOiAwMDAwIEVTOiAwMDAwIENSMDogMDAwMDAwMDA4MDA1MDAzMwpD UjI6IDAwMDAwMDFiMmJjMjEwMDAgQ1IzOiAwMDAwMDAwMWFiZWIxMDAwIENSNDogMDAwMDAwMDAw MDE0MjZmMApEUjA6IDAwMDAwMDAwMjAwMDAwMDAgRFIxOiAwMDAwMDAwMDAwMDAwMDAwIERSMjog MDAwMDAwMDAwMDAwMDAwMApEUjM6IDAwMDAwMDAwMDAwMDAwMDAgRFI2OiAwMDAwMDAwMGZmZmUw ZmYwIERSNzogMDAwMDAwMDAwMDAzMDYwMgpDYWxsIFRyYWNlOgogY2hlY2tfYm9ndXNfYWRkcmVz cyBtbS91c2VyY29weS5jOjE1MyBbaW5saW5lXQogX19jaGVja19vYmplY3Rfc2l6ZSsweDVkOS8w eDVkOSBtbS91c2VyY29weS5jOjI1NgogY2hlY2tfb2JqZWN0X3NpemUgaW5jbHVkZS9saW51eC90 aHJlYWRfaW5mby5oOjEwOCBbaW5saW5lXQogY2hlY2tfY29weV9zaXplIGluY2x1ZGUvbGludXgv dGhyZWFkX2luZm8uaDoxMzkgW2lubGluZV0KIGNvcHlfZnJvbV9pdGVyX2Z1bGwgaW5jbHVkZS9s aW51eC91aW8uaDoxMjEgW2lubGluZV0KIG1lbWNweV9mcm9tX21zZyBpbmNsdWRlL2xpbnV4L3Nr YnVmZi5oOjMzMDUgW2lubGluZV0KIGxsY191aV9zZW5kbXNnKzB4NGIxLzB4MTUzMCBuZXQvbGxj L2FmX2xsYy5jOjk0MQogc29ja19zZW5kbXNnX25vc2VjIG5ldC9zb2NrZXQuYzo2MjkgW2lubGlu ZV0KIHNvY2tfc2VuZG1zZysweGQ1LzB4MTIwIG5ldC9zb2NrZXQuYzo2MzkKIF9fc3lzX3NlbmR0 bysweDNkNy8weDY3MCBuZXQvc29ja2V0LmM6MTc4OQogX19kb19zeXNfc2VuZHRvIG5ldC9zb2Nr ZXQuYzoxODAxIFtpbmxpbmVdCiBfX3NlX3N5c19zZW5kdG8gbmV0L3NvY2tldC5jOjE3OTcgW2lu bGluZV0KIF9feDY0X3N5c19zZW5kdG8rMHhlMS8weDFhMCBuZXQvc29ja2V0LmM6MTc5NwogZG9f c3lzY2FsbF82NCsweDFiMS8weDgwMCBhcmNoL3g4Ni9lbnRyeS9jb21tb24uYzoyODcKIGVudHJ5 X1NZU0NBTExfNjRfYWZ0ZXJfaHdmcmFtZSsweDQ5LzB4YmUKUklQOiAwMDMzOjB4NDU1OTc5ClJT UDogMDAyYjowMDAwN2Y1NmExNGFiYzY4IEVGTEFHUzogMDAwMDAyNDYgT1JJR19SQVg6IDAwMDAw MDAwMDAwMDAwMmMKUkFYOiBmZmZmZmZmZmZmZmZmZmRhIFJCWDogMDAwMDdmNTZhMTRhYzZkNCBS Q1g6IDAwMDAwMDAwMDA0NTU5NzkKUkRYOiAwMDAwMDAwMDAwMDAwMDAwIFJTSTogMDAwMDAwMDAy MDAwMDAwMCBSREk6IDAwMDAwMDAwMDAwMDAwMTgKUkJQOiAwMDAwMDAwMDAwNzJiZWEwIFIwODog MDAwMDAwMDAyMDAwMTJjMCBSMDk6IDAwMDAwMDAwMDAwMDAwMTAKUjEwOiAwMDAwMDAwMDAwMDAw MDAwIFIxMTogMDAwMDAwMDAwMDAwMDI0NiBSMTI6IDAwMDAwMDAwZmZmZmZmZmYKUjEzOiAwMDAw MDAwMDAwMDAwNTQ4IFIxNDogMDAwMDAwMDAwMDZmYmY2MCBSMTU6IDAwMDAwMDAwMDAwMDAwMDAK Q29kZTogNTUgYzAgZTggYzAgNTUgYmIgZmYgZmYgNzUgYzggNDggOGIgNTUgYzAgNGQgODkgZjkg ZmYgNzUgZDAgNGQgODkgZTggNDggODkgZDkgNGMgODkgZTYgNDEgNTYgNDggYzcgYzcgODAgZmEg ZDIgODcgZTggYTAgMGIgYTMgZmYgPDBmPiAwYiBlOCA5NSA1NSBiYiBmZiBlOCBjMCBhOCBmNyBm ZiA4YiA5NSAxNCBmZiBmZiBmZiA0ZCA4OSBlOApSSVA6IHVzZXJjb3B5X2Fib3J0KzB4YmIvMHhi ZCBtbS91c2VyY29weS5jOjg4IFJTUDogZmZmZjg4MDE4NjhiZjgwMAoKRml4ZXM6IDFkYTE3N2U0 YzNmNCAoIkxpbnV4LTIuNi4xMi1yYzIiKQpTaWduZWQtb2ZmLWJ5OiBFcmljIER1bWF6ZXQgPGVk dW1hemV0QGdvb2dsZS5jb20+ClJlcG9ydGVkLWJ5OiBzeXpib3QgPHN5emthbGxlckBnb29nbGVn cm91cHMuY29tPgpTaWduZWQtb2ZmLWJ5OiBEYXZpZCBTLiBNaWxsZXIgPGRhdmVtQGRhdmVtbG9m dC5uZXQ+Ci0tLQogbmV0L2xsYy9hZl9sbGMuYyB8IDMgKysrCiAxIGZpbGUgY2hhbmdlZCwgMyBp bnNlcnRpb25zKCspCgpkaWZmIC0tZ2l0IGEvbmV0L2xsYy9hZl9sbGMuYyBiL25ldC9sbGMvYWZf bGxjLmMKaW5kZXggY2Y0MWQ5YjRhMGI4Li5iNDlmNWFmYWI0MDUgMTAwNjQ0Ci0tLSBhL25ldC9s bGMvYWZfbGxjLmMKKysrIGIvbmV0L2xsYy9hZl9sbGMuYwpAQCAtOTMwLDYgKzkzMCw5IEBAIHN0 YXRpYyBpbnQgbGxjX3VpX3NlbmRtc2coc3RydWN0IHNvY2tldCAqc29jaywgc3RydWN0IG1zZ2hk ciAqbXNnLCBzaXplX3QgbGVuKQogCWlmIChzaXplID4gbGxjLT5kZXYtPm10dSkKIAkJc2l6ZSA9 IGxsYy0+ZGV2LT5tdHU7CiAJY29waWVkID0gc2l6ZSAtIGhkcmxlbjsKKwlyYyA9IC1FSU5WQUw7 CisJaWYgKGNvcGllZCA8IDApCisJCWdvdG8gcmVsZWFzZTsKIAlyZWxlYXNlX3NvY2soc2spOwog CXNrYiA9IHNvY2tfYWxsb2Nfc2VuZF9za2Ioc2ssIHNpemUsIG5vYmxvY2ssICZyYyk7CiAJbG9j a19zb2NrKHNrKTsKLS0gCjIuMTQuMwoKCkZyb20gZjQ3NjczOWQ4YWU1MWU4OGI5YmVmMTExYWM2 YjQ1OGQ0OTExMjlkMyBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJvbTogIkd1c3Rhdm8gQS4g Ui4gU2lsdmEiIDxndXN0YXZvQGVtYmVkZGVkb3IuY29tPgpEYXRlOiBUaHUsIDMgTWF5IDIwMTgg MTM6NDU6NTggLTA1MDAKU3ViamVjdDogW1BBVENIIDA4LzU1XSBuZXQ6IGF0bTogRml4IHBvdGVu dGlhbCBTcGVjdHJlIHYxCgpbIFVwc3RyZWFtIGNvbW1pdCBhY2Y3ODRiZDBjZTI1N2ZlNDNkYTdj YTI2NmY3YTEwYjgzNzQ3OWQyIF0KCmlvY19kYXRhLmRldl9udW0gY2FuIGJlIGNvbnRyb2xsZWQg YnkgdXNlci1zcGFjZSwgaGVuY2UgbGVhZGluZyB0bwphIHBvdGVudGlhbCBleHBsb2l0YXRpb24g b2YgdGhlIFNwZWN0cmUgdmFyaWFudCAxIHZ1bG5lcmFiaWxpdHkuCgpUaGlzIGlzc3VlIHdhcyBk ZXRlY3RlZCB3aXRoIHRoZSBoZWxwIG9mIFNtYXRjaDoKbmV0L2F0bS9sZWMuYzo3MDIgbGVjX3Zj Y19hdHRhY2goKSB3YXJuOiBwb3RlbnRpYWwgc3BlY3RyZSBpc3N1ZQonZGV2X2xlYycKCkZpeCB0 aGlzIGJ5IHNhbml0aXppbmcgaW9jX2RhdGEuZGV2X251bSBiZWZvcmUgdXNpbmcgaXQgdG8gaW5k ZXgKZGV2X2xlYy4gQWxzbywgbm90aWNlIHRoYXQgdGhlcmUgaXMgYW5vdGhlciBpbnN0YW5jZSBp biB3aGljaCBhcnJheQpkZXZfbGVjIGlzIGJlaW5nIGluZGV4ZWQgdXNpbmcgaW9jX2RhdGEuZGV2 X251bSBhdCBsaW5lIDcwNToKbGVjX3ZjY19hZGRlZChuZXRkZXZfcHJpdihkZXZfbGVjW2lvY19k YXRhLmRldl9udW1dKSwKCk5vdGljZSB0aGF0IGdpdmVuIHRoYXQgc3BlY3VsYXRpb24gd2luZG93 cyBhcmUgbGFyZ2UsIHRoZSBwb2xpY3kgaXMKdG8ga2lsbCB0aGUgc3BlY3VsYXRpb24gb24gdGhl IGZpcnN0IGxvYWQgYW5kIG5vdCB3b3JyeSBpZiBpdCBjYW4gYmUKY29tcGxldGVkIHdpdGggYSBk ZXBlbmRlbnQgbG9hZC9zdG9yZSBbMV0uCgpbMV0gaHR0cHM6Ly9tYXJjLmluZm8vP2w9bGludXgt a2VybmVsJm09MTUyNDQ5MTMxMTE0Nzc4Jnc9MgoKQ2M6IHN0YWJsZUB2Z2VyLmtlcm5lbC5vcmcK U2lnbmVkLW9mZi1ieTogR3VzdGF2byBBLiBSLiBTaWx2YSA8Z3VzdGF2b0BlbWJlZGRlZG9yLmNv bT4KU2lnbmVkLW9mZi1ieTogRGF2aWQgUy4gTWlsbGVyIDxkYXZlbUBkYXZlbWxvZnQubmV0Pgot LS0KIG5ldC9hdG0vbGVjLmMgfCA5ICsrKysrKystLQogMSBmaWxlIGNoYW5nZWQsIDcgaW5zZXJ0 aW9ucygrKSwgMiBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9uZXQvYXRtL2xlYy5jIGIvbmV0 L2F0bS9sZWMuYwppbmRleCAwOWExZjA1NjcxMmEuLjc1NzllODVhZjUzMSAxMDA2NDQKLS0tIGEv bmV0L2F0bS9sZWMuYworKysgYi9uZXQvYXRtL2xlYy5jCkBAIC00MSw2ICs0MSw5IEBAIHN0YXRp YyB1bnNpZ25lZCBjaGFyIGJyaWRnZV91bGFfbGVjW10gPSB7IDB4MDEsIDB4ODAsIDB4YzIsIDB4 MDAsIDB4MDAgfTsKICNpbmNsdWRlIDxsaW51eC9tb2R1bGUuaD4KICNpbmNsdWRlIDxsaW51eC9p bml0Lmg+CiAKKy8qIEhhcmRlbmluZyBmb3IgU3BlY3RyZS12MSAqLworI2luY2x1ZGUgPGxpbnV4 L25vc3BlYy5oPgorCiAjaW5jbHVkZSAibGVjLmgiCiAjaW5jbHVkZSAibGVjX2FycGMuaCIKICNp bmNsdWRlICJyZXNvdXJjZXMuaCIKQEAgLTY4Nyw4ICs2OTAsMTAgQEAgc3RhdGljIGludCBsZWNf dmNjX2F0dGFjaChzdHJ1Y3QgYXRtX3ZjYyAqdmNjLCB2b2lkIF9fdXNlciAqYXJnKQogCWJ5dGVz X2xlZnQgPSBjb3B5X2Zyb21fdXNlcigmaW9jX2RhdGEsIGFyZywgc2l6ZW9mKHN0cnVjdCBhdG1s ZWNfaW9jKSk7CiAJaWYgKGJ5dGVzX2xlZnQgIT0gMCkKIAkJcHJfaW5mbygiY29weSBmcm9tIHVz ZXIgZmFpbGVkIGZvciAlZCBieXRlc1xuIiwgYnl0ZXNfbGVmdCk7Ci0JaWYgKGlvY19kYXRhLmRl dl9udW0gPCAwIHx8IGlvY19kYXRhLmRldl9udW0gPj0gTUFYX0xFQ19JVEYgfHwKLQkgICAgIWRl dl9sZWNbaW9jX2RhdGEuZGV2X251bV0pCisJaWYgKGlvY19kYXRhLmRldl9udW0gPCAwIHx8IGlv Y19kYXRhLmRldl9udW0gPj0gTUFYX0xFQ19JVEYpCisJCXJldHVybiAtRUlOVkFMOworCWlvY19k YXRhLmRldl9udW0gPSBhcnJheV9pbmRleF9ub3NwZWMoaW9jX2RhdGEuZGV2X251bSwgTUFYX0xF Q19JVEYpOworCWlmICghZGV2X2xlY1tpb2NfZGF0YS5kZXZfbnVtXSkKIAkJcmV0dXJuIC1FSU5W QUw7CiAJdnByaXYgPSBrbWFsbG9jKHNpemVvZihzdHJ1Y3QgbGVjX3ZjY19wcml2KSwgR0ZQX0tF Uk5FTCk7CiAJaWYgKCF2cHJpdikKLS0gCjIuMTQuMwoKCkZyb20gMDViZmEwZjdjNWYzYjZlMTQy MWU2OTA2Mzk5ZjljZjYwNjEzODUwZSBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJvbTogUm9i IFRhZ2xhbmcgPHJvYkB0YWdsYW5nLmlvPgpEYXRlOiBUaHUsIDMgTWF5IDIwMTggMTc6MTM6MDYg LTA0MDAKU3ViamVjdDogW1BBVENIIDA5LzU1XSBuZXQ6IGV0aGVybmV0OiBzdW46IG5pdSBzZXQg Y29ycmVjdCBwYWNrZXQgc2l6ZSBpbiBza2IKClsgVXBzdHJlYW0gY29tbWl0IDE0MjI0OTIzYzM2 MDBiYWUyYWM0ZGNhZTNiZjBjM2Q0ZGMyODEyYmUgXQoKQ3VycmVudGx5LCBza2ItPmxlbiBhbmQg c2tiLT5kYXRhX2xlbiBhcmUgc2V0IHRvIHRoZSBwYWdlIHNpemUsIG5vdAp0aGUgcGFja2V0IHNp emUuIFRoaXMgY2F1c2VzIHRoZSBmcmFtZSBjaGVjayBzZXF1ZW5jZSB0byBub3QgYmUKbG9jYXRl ZCBhdCB0aGUgImVuZCIgb2YgdGhlIHBhY2tldCByZXN1bHRpbmcgaW4gZXRoZXJuZXQgZnJhbWUg Y2hlY2sKZXJyb3JzLiBUaGUgZHJpdmVyIGRvZXMgd29yayBjdXJyZW50bHksIGJ1dCBzdHJpY3Rl ciBrZXJuZWwgZmFjaW5nCm5ldHdvcmtpbmcgc29sdXRpb25zIGxpa2UgT3BlblZTd2l0Y2ggd2ls bCBkcm9wIHRoZXNlIHBhY2tldHMgYXMKaW52YWxpZC4KClRoZXNlIGNoYW5nZXMgc2V0IHRoZSBw YWNrZXQgc2l6ZSBjb3JyZWN0bHkgc28gdGhhdCB0aGVzZSBlcnJvcnMgbm8KbG9uZ2VyIG9jY3Vy LiBUaGUgbGVuZ3RoIGRvZXMgbm90IGluY2x1ZGUgdGhlIGZyYW1lIGNoZWNrIHNlcXVlbmNlLCBz bwp0aGF0IHN1YnRyYWN0aW9uIHdhcyByZW1vdmVkLgoKVGVzdGVkIG9uIE9yYWNsZS9TVU4gTXVs dGl0aHJlYWRlZCAxMC1HaWdhYml0IEV0aGVybmV0IE5ldHdvcmsKQ29udHJvbGxlciBbMTA4ZTph YmNkXSBhbmQgdmFsaWRhdGVkIGluIHdpcmVzaGFyay4KClNpZ25lZC1vZmYtYnk6IFJvYiBUYWds YW5nIDxyb2JAdGFnbGFuZy5pbz4KU2lnbmVkLW9mZi1ieTogRGF2aWQgUy4gTWlsbGVyIDxkYXZl bUBkYXZlbWxvZnQubmV0PgotLS0KIGRyaXZlcnMvbmV0L2V0aGVybmV0L3N1bi9uaXUuYyB8IDUg KystLS0KIDEgZmlsZSBjaGFuZ2VkLCAyIGluc2VydGlvbnMoKyksIDMgZGVsZXRpb25zKC0pCgpk aWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvZXRoZXJuZXQvc3VuL25pdS5jIGIvZHJpdmVycy9uZXQv ZXRoZXJuZXQvc3VuL25pdS5jCmluZGV4IDhkZDU0NWZlZDMwZC4uNmM5NGFmMjYzYmU4IDEwMDY0 NAotLS0gYS9kcml2ZXJzL25ldC9ldGhlcm5ldC9zdW4vbml1LmMKKysrIGIvZHJpdmVycy9uZXQv ZXRoZXJuZXQvc3VuL25pdS5jCkBAIC0zNDQzLDcgKzM0NDMsNyBAQCBzdGF0aWMgaW50IG5pdV9w cm9jZXNzX3J4X3BrdChzdHJ1Y3QgbmFwaV9zdHJ1Y3QgKm5hcGksIHN0cnVjdCBuaXUgKm5wLAog CiAJCWxlbiA9ICh2YWwgJiBSQ1JfRU5UUllfTDJfTEVOKSA+PgogCQkJUkNSX0VOVFJZX0wyX0xF Tl9TSElGVDsKLQkJbGVuIC09IEVUSF9GQ1NfTEVOOworCQlhcHBlbmRfc2l6ZSA9IGxlbiArIEVU SF9ITEVOICsgRVRIX0ZDU19MRU47CiAKIAkJYWRkciA9ICh2YWwgJiBSQ1JfRU5UUllfUEtUX0JV Rl9BRERSKSA8PAogCQkJUkNSX0VOVFJZX1BLVF9CVUZfQUREUl9TSElGVDsKQEAgLTM0NTMsNyAr MzQ1Myw2IEBAIHN0YXRpYyBpbnQgbml1X3Byb2Nlc3NfcnhfcGt0KHN0cnVjdCBuYXBpX3N0cnVj dCAqbmFwaSwgc3RydWN0IG5pdSAqbnAsCiAJCQkJCSBSQ1JfRU5UUllfUEtUQlVGU1pfU0hJRlRd OwogCiAJCW9mZiA9IGFkZHIgJiB+UEFHRV9NQVNLOwotCQlhcHBlbmRfc2l6ZSA9IHJjcl9zaXpl OwogCQlpZiAobnVtX3JjciA9PSAxKSB7CiAJCQlpbnQgcHR5cGU7CiAKQEAgLTM0NjYsNyArMzQ2 NSw3IEBAIHN0YXRpYyBpbnQgbml1X3Byb2Nlc3NfcnhfcGt0KHN0cnVjdCBuYXBpX3N0cnVjdCAq bmFwaSwgc3RydWN0IG5pdSAqbnAsCiAJCQllbHNlCiAJCQkJc2tiX2NoZWNrc3VtX25vbmVfYXNz ZXJ0KHNrYik7CiAJCX0gZWxzZSBpZiAoISh2YWwgJiBSQ1JfRU5UUllfTVVMVEkpKQotCQkJYXBw ZW5kX3NpemUgPSBsZW4gLSBza2ItPmxlbjsKKwkJCWFwcGVuZF9zaXplID0gYXBwZW5kX3NpemUg LSBza2ItPmxlbjsKIAogCQluaXVfcnhfc2tiX2FwcGVuZChza2IsIHBhZ2UsIG9mZiwgYXBwZW5k X3NpemUsIHJjcl9zaXplKTsKIAkJaWYgKChwYWdlLT5pbmRleCArIHJwLT5yYnJfYmxvY2tfc2l6 ZSkgLSByY3Jfc2l6ZSA9PSBhZGRyKSB7Ci0tIAoyLjE0LjMKCgpGcm9tIGJiYzg0YzljZjQ3ZmQ4 ZGZkNTg0YWEwMWIyZDhjMjYyY2RmMDc3YmEgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCkZyb206 IEdyeWdvcmlpIFN0cmFzaGtvIDxncnlnb3JpaS5zdHJhc2hrb0B0aS5jb20+CkRhdGU6IFR1ZSwg MSBNYXkgMjAxOCAxMjo0MToyMiAtMDUwMApTdWJqZWN0OiBbUEFUQ0ggMTAvNTVdIG5ldDogZXRo ZXJuZXQ6IHRpOiBjcHN3OiBmaXggcGFja2V0IGxlYWtpbmcgaW4gZHVhbF9tYWMKIG1vZGUKClsg VXBzdHJlYW0gY29tbWl0IDVlNWFkZDE3MmVhODExNTJkNTE4YjE2MWVjNTcwNjUwM2FkM2Q3OTkg XQoKSW4gZHVhbF9tYWMgbW9kZSBwYWNrZXRzIGFycml2ZWQgb24gb25lIHBvcnQgc2hvdWxkIG5v dCBiZSBmb3J3YXJkZWQgYnkKc3dpdGNoIGh3IHRvIGFub3RoZXIgcG9ydC4gT25seSBMaW51eCBI b3N0IGNhbiBmb3J3YXJkIHBhY2tldHMgYmV0d2Vlbgpwb3J0cy4gVGhlIGJlbG93IHRlc3QgY2Fz ZSAocmVwb3J0ZWQgaW4gWzFdKSBzaG93cyB0aGF0IHBhY2tldCBhcnJpdmVkIG9uCm9uZSBwb3J0 IGNhbiBiZSBsZWFrZWQgdG8gYW5vdGVyIChyZXByb2R1Y2libGUgd2l0aCBkdWFsIHBvcnQgZXZt cyk6CiAtIGNvbm5lY3QgcG9ydCAxIChldGgwKSB0byBsaW51eCBIb3N0IDAgYW5kIHJ1biB0Y3Bk dW1wIG9yIFdpcmVzaGFyawogLSBjb25uZWN0IHBvcnQgMiAoZXRoMSkgdG8gbGludXggSG9zdCAx IHdpdGggdmxhbiAxIGNvbmZpZ3VyZWQKIC0gcGluZyA8SVB4PiBmcm9tIEhvc3QgMSB0aHJvdWdo IHZsYW4gMSBpbnRlcmZhY2UuCkFSUCBwYWNrZXRzIHdpbGwgYmUgc2VlbiBvbiBIb3N0IDAuCgpJ c3N1ZSBoYXBwZW5zIGJlY2F1c2UgZHVhbF9tYWMgbW9kZSBpcyBpbXBsZW1udGVkIHVzaW5nIHR3 byB2bGFuczogMSAoUG9ydAoxK1BvcnQgMCkgYW5kIDIgKFBvcnQgMitQb3J0IDApLCBzbyB0aGVy ZSBhcmUgdmxhbiByZWNvcmRzIGNyZWF0ZWQgZm9yIGZvcgplYWNoIHZsYW4uIEJ5IGRlZmF1bHQs IHRoZSBBTEUgd2lsbCBmaW5kIHZhbGlkIHZsYW4gcmVjb3JkIGluIGl0cyB0YWJsZQp3aGVuIHZs YW4gMSB0YWdnZWQgcGFja2V0IGFycml2ZWQgb24gUG9ydCAyIGFuZCBzbyBmb3J3YXJkcyBwYWNr ZXQgdG8gYWxsCnBvcnRzIHdoaWNoIGFyZSB2bGFuIDEgbWVtYmVycyAobGlrZSBQb3J0LgoKVG8g YXZvaWQgc3VjaCBiZWhhdmlvcnIgdGhlIEFMRSBWTEFOIElEIEluZ3Jlc3MgQ2hlY2sgbmVlZCB0 byBiZSBlbmFibGVkCmZvciBlYWNoIGV4dGVybmFsIENQU1cgcG9ydCAoQUxFX1BPUlRDVExuLlZJ RF9JTkdSRVNTX0NIRUNLKSBzbyBBTEUgd2lsbApkcm9wIGluZ3Jlc3MgcGFja2V0cyBpZiBSeCBw b3J0IGlzIG5vdCBWTEFOIG1lbWJlci4KClNpZ25lZC1vZmYtYnk6IEdyeWdvcmlpIFN0cmFzaGtv IDxncnlnb3JpaS5zdHJhc2hrb0B0aS5jb20+ClNpZ25lZC1vZmYtYnk6IERhdmlkIFMuIE1pbGxl ciA8ZGF2ZW1AZGF2ZW1sb2Z0Lm5ldD4KLS0tCiBkcml2ZXJzL25ldC9ldGhlcm5ldC90aS9jcHN3 LmMgfCAyICsrCiAxIGZpbGUgY2hhbmdlZCwgMiBpbnNlcnRpb25zKCspCgpkaWZmIC0tZ2l0IGEv ZHJpdmVycy9uZXQvZXRoZXJuZXQvdGkvY3Bzdy5jIGIvZHJpdmVycy9uZXQvZXRoZXJuZXQvdGkv Y3Bzdy5jCmluZGV4IDMzYzM1YjJkZjdkNS4uNTQ5MGM3ZDA5YzE2IDEwMDY0NAotLS0gYS9kcml2 ZXJzL25ldC9ldGhlcm5ldC90aS9jcHN3LmMKKysrIGIvZHJpdmVycy9uZXQvZXRoZXJuZXQvdGkv Y3Bzdy5jCkBAIC0xMjc4LDYgKzEyNzgsOCBAQCBzdGF0aWMgaW5saW5lIHZvaWQgY3Bzd19hZGRf ZHVhbF9lbWFjX2RlZl9hbGVfZW50cmllcygKIAljcHN3X2FsZV9hZGRfdWNhc3QoY3Bzdy0+YWxl LCBwcml2LT5tYWNfYWRkciwKIAkJCSAgIEhPU1RfUE9SVF9OVU0sIEFMRV9WTEFOIHwKIAkJCSAg IEFMRV9TRUNVUkUsIHNsYXZlLT5wb3J0X3ZsYW4pOworCWNwc3dfYWxlX2NvbnRyb2xfc2V0KGNw c3ctPmFsZSwgc2xhdmVfcG9ydCwKKwkJCSAgICAgQUxFX1BPUlRfRFJPUF9VTktOT1dOX1ZMQU4s IDEpOwogfQogCiBzdGF0aWMgdm9pZCBzb2Z0X3Jlc2V0X3NsYXZlKHN0cnVjdCBjcHN3X3NsYXZl ICpzbGF2ZSkKLS0gCjIuMTQuMwoKCkZyb20gMTJiMzc1NzVlMmQ5MzIzMmY2NTg4ZTdiYjQ1NTI3 MDBjMDg4MjVmNSBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJvbTogQ2hyaXN0b3BoZSBKQUlM TEVUIDxjaHJpc3RvcGhlLmphaWxsZXRAd2FuYWRvby5mcj4KRGF0ZTogVGh1LCAxMCBNYXkgMjAx OCAwOTowNjowNCArMDIwMApTdWJqZWN0OiBbUEFUQ0ggMTEvNTVdIG5ldC9tbHg0X2VuOiBGaXgg YW4gZXJyb3IgaGFuZGxpbmcgcGF0aCBpbgogJ21seDRfZW5faW5pdF9uZXRkZXYoKScKClsgVXBz dHJlYW0gY29tbWl0IGE1NzdkODY4Yjc2OGEzYmFmMTZjZGQ0ODQxYWI4Y2ZiMTY1NTIxZDYgXQoK SWYgYW4gZXJyb3Igb2NjdXJzLCAnbWx4NF9lbl9kZXN0cm95X25ldGRldigpJyBpcyBjYWxsZWQu Ckl0IHRoZW4gY2FsbHMgJ21seDRfZW5fZnJlZV9yZXNvdXJjZXMoKScgd2hpY2ggZG9lcyB0aGUg bmVlZGVkIHJlc291cmNlcwpjbGVhbnVwLgoKU28sIGRvaW5nIHNvbWUgZXhwbGljaXQga2ZyZWUg aW4gdGhlIGVycm9yIGhhbmRsaW5nIHBhdGggd291bGQgbGVhZCB0bwpzb21lIGRvdWJsZSBrZnJl ZS4KClNpbXBsaWZ5IGNvZGUgdG8gYXZvaWQgc3VjaCBhIGNhc2UuCgpGaXhlczogNjdmOGIxZGNi OWVlICgibmV0L21seDRfZW46IFJlZmFjdG9yIHRoZSBYRFAgZm9yd2FyZGluZyByaW5ncyBzY2hl bWUiKQpTaWduZWQtb2ZmLWJ5OiBDaHJpc3RvcGhlIEpBSUxMRVQgPGNocmlzdG9waGUuamFpbGxl dEB3YW5hZG9vLmZyPgpSZXZpZXdlZC1ieTogVGFyaXEgVG91a2FuIDx0YXJpcXRAbWVsbGFub3gu Y29tPgpTaWduZWQtb2ZmLWJ5OiBEYXZpZCBTLiBNaWxsZXIgPGRhdmVtQGRhdmVtbG9mdC5uZXQ+ Ci0tLQogZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NC9lbl9uZXRkZXYuYyB8IDgg Ky0tLS0tLS0KIDEgZmlsZSBjaGFuZ2VkLCAxIGluc2VydGlvbigrKSwgNyBkZWxldGlvbnMoLSkK CmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg0L2VuX25ldGRl di5jIGIvZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NC9lbl9uZXRkZXYuYwppbmRl eCA4ZmM1MWJjMjkwMDMuLjQxZjhmYmNlZDExZCAxMDA2NDQKLS0tIGEvZHJpdmVycy9uZXQvZXRo ZXJuZXQvbWVsbGFub3gvbWx4NC9lbl9uZXRkZXYuYworKysgYi9kcml2ZXJzL25ldC9ldGhlcm5l dC9tZWxsYW5veC9tbHg0L2VuX25ldGRldi5jCkBAIC0zMzIwLDEyICszMzIwLDExIEBAIGludCBt bHg0X2VuX2luaXRfbmV0ZGV2KHN0cnVjdCBtbHg0X2VuX2RldiAqbWRldiwgaW50IHBvcnQsCiAJ CQkJCSAgIE1BWF9UWF9SSU5HUywgR0ZQX0tFUk5FTCk7CiAJCWlmICghcHJpdi0+dHhfcmluZ1t0 XSkgewogCQkJZXJyID0gLUVOT01FTTsKLQkJCWdvdG8gZXJyX2ZyZWVfdHg7CisJCQlnb3RvIG91 dDsKIAkJfQogCQlwcml2LT50eF9jcVt0XSA9IGt6YWxsb2Moc2l6ZW9mKHN0cnVjdCBtbHg0X2Vu X2NxICopICoKIAkJCQkJIE1BWF9UWF9SSU5HUywgR0ZQX0tFUk5FTCk7CiAJCWlmICghcHJpdi0+ dHhfY3FbdF0pIHsKLQkJCWtmcmVlKHByaXYtPnR4X3JpbmdbdF0pOwogCQkJZXJyID0gLUVOT01F TTsKIAkJCWdvdG8gb3V0OwogCQl9CkBAIC0zNTc4LDExICszNTc3LDYgQEAgaW50IG1seDRfZW5f aW5pdF9uZXRkZXYoc3RydWN0IG1seDRfZW5fZGV2ICptZGV2LCBpbnQgcG9ydCwKIAogCXJldHVy biAwOwogCi1lcnJfZnJlZV90eDoKLQl3aGlsZSAodC0tKSB7Ci0JCWtmcmVlKHByaXYtPnR4X3Jp bmdbdF0pOwotCQlrZnJlZShwcml2LT50eF9jcVt0XSk7Ci0JfQogb3V0OgogCW1seDRfZW5fZGVz dHJveV9uZXRkZXYoZGV2KTsKIAlyZXR1cm4gZXJyOwotLSAKMi4xNC4zCgoKRnJvbSAzMjdhOTIy NDZjMGJiNjc2ZDJjMGNlZjYyZTUwNzMyZjI1YzA0NGJjIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAw MQpGcm9tOiBNb3NoZSBTaGVtZXNoIDxtb3NoZUBtZWxsYW5veC5jb20+CkRhdGU6IFdlZCwgOSBN YXkgMjAxOCAxODozNToxMyArMDMwMApTdWJqZWN0OiBbUEFUQ0ggMTIvNTVdIG5ldC9tbHg0X2Vu OiBWZXJpZnkgY29hbGVzY2luZyBwYXJhbWV0ZXJzIGFyZSBpbiByYW5nZQoKWyBVcHN0cmVhbSBj b21taXQgNmFkNGU5MWM2ZDc5NmIzOGE3ZjBlNzI0ZGIxZGUyOGVlYjEyMmJhZCBdCgpBZGQgY2hl Y2sgb2YgY29hbGVzY2luZyBwYXJhbWV0ZXJzIHJlY2VpdmVkIHRocm91Z2ggZXRodG9vbCBhcmUg d2l0aGluCnJhbmdlIG9mIHZhbHVlcyBzdXBwb3J0ZWQgYnkgdGhlIEhXLgpEcml2ZXIgZ2V0cyB0 aGUgY29hbGVzY2luZyByeC90eC11c2VjcyBhbmQgcngvdHgtZnJhbWVzIGFzIHNldCBieSB0aGUK dXNlcnMgdGhyb3VnaCBldGh0b29sLiBUaGUgZXRodG9vbCBzdXBwb3J0IHVwIHRvIDMyIGJpdCB2 YWx1ZSBmb3IgZWFjaC4KSG93ZXZlciwgbWx4NCBtb2RpZnkgY3EgbGltaXRzIHRoZSBjb2FsZXNj aW5nIHRpbWUgcGFyYW1ldGVyIGFuZApjb2FsZXNjaW5nIGZyYW1lcyBwYXJhbWV0ZXJzIHRvIDE2 IGJpdHMuClJldHVybiBvdXQgb2YgcmFuZ2UgZXJyb3IgaWYgdXNlciB0cmllcyB0byBzZXQgdGhl c2UgcGFyYW1ldGVycyB0bwpoaWdoZXIgdmFsdWVzLgpDaGFuZ2UgdHlwZSBvZiBzYW1wbGUtaW50 ZXJ2YWwgYW5kIGFkYXB0aXZlX3J4X2NvYWwgcGFyYW1ldGVycyBpbiBtbHg0CmRyaXZlciB0byB1 MzIgYXMgdGhlIGV0aHRvb2wgaG9sZHMgdGhlbSBhcyB1MzIgYW5kIHRoZXNlIHBhcmFtZXRlcnMg YXJlCm5vdCBsaW1pdGVkIGR1ZSB0byBtbHg0IEhXLgoKRml4ZXM6IGMyN2EwMmNkOTRkNiAoJ21s eDRfZW46IEFkZCBkcml2ZXIgZm9yIE1lbGxhbm94IENvbm5lY3RYIDEwR2JFIE5JQycpClNpZ25l ZC1vZmYtYnk6IE1vc2hlIFNoZW1lc2ggPG1vc2hlQG1lbGxhbm94LmNvbT4KU2lnbmVkLW9mZi1i eTogVGFyaXEgVG91a2FuIDx0YXJpcXRAbWVsbGFub3guY29tPgpTaWduZWQtb2ZmLWJ5OiBEYXZp ZCBTLiBNaWxsZXIgPGRhdmVtQGRhdmVtbG9mdC5uZXQ+Ci0tLQogZHJpdmVycy9uZXQvZXRoZXJu ZXQvbWVsbGFub3gvbWx4NC9lbl9ldGh0b29sLmMgfCAxNiArKysrKysrKysrKysrKysrCiBkcml2 ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg0L21seDRfZW4uaCAgICB8ICA3ICsrKysrLS0K IDIgZmlsZXMgY2hhbmdlZCwgMjEgaW5zZXJ0aW9ucygrKSwgMiBkZWxldGlvbnMoLSkKCmRpZmYg LS1naXQgYS9kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg0L2VuX2V0aHRvb2wuYyBi L2RyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDQvZW5fZXRodG9vbC5jCmluZGV4IGYz MzAyZWRiYThiNC4uN2Y4N2RiOTczNGI4IDEwMDY0NAotLS0gYS9kcml2ZXJzL25ldC9ldGhlcm5l dC9tZWxsYW5veC9tbHg0L2VuX2V0aHRvb2wuYworKysgYi9kcml2ZXJzL25ldC9ldGhlcm5ldC9t ZWxsYW5veC9tbHg0L2VuX2V0aHRvb2wuYwpAQCAtMTAxMyw2ICsxMDEzLDIyIEBAIHN0YXRpYyBp bnQgbWx4NF9lbl9zZXRfY29hbGVzY2Uoc3RydWN0IG5ldF9kZXZpY2UgKmRldiwKIAlpZiAoIWNv YWwtPnR4X21heF9jb2FsZXNjZWRfZnJhbWVzX2lycSkKIAkJcmV0dXJuIC1FSU5WQUw7CiAKKwlp ZiAoY29hbC0+dHhfY29hbGVzY2VfdXNlY3MgPiBNTFg0X0VOX01BWF9DT0FMX1RJTUUgfHwKKwkg ICAgY29hbC0+cnhfY29hbGVzY2VfdXNlY3MgPiBNTFg0X0VOX01BWF9DT0FMX1RJTUUgfHwKKwkg ICAgY29hbC0+cnhfY29hbGVzY2VfdXNlY3NfbG93ID4gTUxYNF9FTl9NQVhfQ09BTF9USU1FIHx8 CisJICAgIGNvYWwtPnJ4X2NvYWxlc2NlX3VzZWNzX2hpZ2ggPiBNTFg0X0VOX01BWF9DT0FMX1RJ TUUpIHsKKwkJbmV0ZGV2X2luZm8oZGV2LCAiJXM6IG1heGltdW0gY29hbGVzY2UgdGltZSBzdXBw b3J0ZWQgaXMgJWQgdXNlY3NcbiIsCisJCQkgICAgX19mdW5jX18sIE1MWDRfRU5fTUFYX0NPQUxf VElNRSk7CisJCXJldHVybiAtRVJBTkdFOworCX0KKworCWlmIChjb2FsLT50eF9tYXhfY29hbGVz Y2VkX2ZyYW1lcyA+IE1MWDRfRU5fTUFYX0NPQUxfUEtUUyB8fAorCSAgICBjb2FsLT5yeF9tYXhf Y29hbGVzY2VkX2ZyYW1lcyA+IE1MWDRfRU5fTUFYX0NPQUxfUEtUUykgeworCQluZXRkZXZfaW5m byhkZXYsICIlczogbWF4aW11bSBjb2FsZXNjZWQgZnJhbWVzIHN1cHBvcnRlZCBpcyAlZFxuIiwK KwkJCSAgICBfX2Z1bmNfXywgTUxYNF9FTl9NQVhfQ09BTF9QS1RTKTsKKwkJcmV0dXJuIC1FUkFO R0U7CisJfQorCiAJcHJpdi0+cnhfZnJhbWVzID0gKGNvYWwtPnJ4X21heF9jb2FsZXNjZWRfZnJh bWVzID09CiAJCQkgICBNTFg0X0VOX0FVVE9fQ09ORikgPwogCQkJCU1MWDRfRU5fUlhfQ09BTF9U QVJHRVQgOgpkaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NC9t bHg0X2VuLmggYi9kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg0L21seDRfZW4uaApp bmRleCBmNDcwYWUzN2Q5MzcuLjRkYWJhZjAyNWIxMiAxMDA2NDQKLS0tIGEvZHJpdmVycy9uZXQv ZXRoZXJuZXQvbWVsbGFub3gvbWx4NC9tbHg0X2VuLmgKKysrIGIvZHJpdmVycy9uZXQvZXRoZXJu ZXQvbWVsbGFub3gvbWx4NC9tbHg0X2VuLmgKQEAgLTEzMiw2ICsxMzIsOSBAQAogI2RlZmluZSBN TFg0X0VOX1RYX0NPQUxfUEtUUwkxNgogI2RlZmluZSBNTFg0X0VOX1RYX0NPQUxfVElNRQkweDEw CiAKKyNkZWZpbmUgTUxYNF9FTl9NQVhfQ09BTF9QS1RTCVUxNl9NQVgKKyNkZWZpbmUgTUxYNF9F Tl9NQVhfQ09BTF9USU1FCVUxNl9NQVgKKwogI2RlZmluZSBNTFg0X0VOX1JYX1JBVEVfTE9XCQk0 MDAwMDAKICNkZWZpbmUgTUxYNF9FTl9SWF9DT0FMX1RJTUVfTE9XCTAKICNkZWZpbmUgTUxYNF9F Tl9SWF9SQVRFX0hJR0gJCTQ1MDAwMApAQCAtNTUyLDggKzU1NSw4IEBAIHN0cnVjdCBtbHg0X2Vu X3ByaXYgewogCXUxNiByeF91c2Vjc19sb3c7CiAJdTMyIHBrdF9yYXRlX2hpZ2g7CiAJdTE2IHJ4 X3VzZWNzX2hpZ2g7Ci0JdTE2IHNhbXBsZV9pbnRlcnZhbDsKLQl1MTYgYWRhcHRpdmVfcnhfY29h bDsKKwl1MzIgc2FtcGxlX2ludGVydmFsOworCXUzMiBhZGFwdGl2ZV9yeF9jb2FsOwogCXUzMiBt c2dfZW5hYmxlOwogCXUzMiBsb29wYmFja19vazsKIAl1MzIgdmFsaWRhdGVfbG9vcGJhY2s7Ci0t IAoyLjE0LjMKCgpGcm9tIDdkZTZlYTY5NmIxNGExZjExMzg4Yjc3MTg4NDJlMzQ4MjJiNzkyZmUg TW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCkZyb206IFJvaSBEYXlhbiA8cm9pZEBtZWxsYW5veC5j b20+CkRhdGU6IFRodSwgMjIgTWFyIDIwMTggMTg6NTE6MzcgKzAyMDAKU3ViamVjdDogW1BBVENI IDEzLzU1XSBuZXQvbWx4NWU6IEVyciBpZiBhc2tlZCB0byBvZmZsb2FkIFRDIG1hdGNoIG9uIGZy YWcKIGJlaW5nIGZpcnN0CgpbIFVwc3RyZWFtIGNvbW1pdCBmODU5MDBjM2UxM2ZkYjYxZjA0MGM5 ZmVlY2JjZGE2MDFlMGNkY2ZiIF0KClRoZSBIVyBkb2Vzbid0IHN1cHBvcnQgbWF0Y2hpbmcgb24g ZnJhZyBmaXJzdC9sYXRlciwgcmV0dXJuIGVycm9yIGlmIHdlIGFyZQphc2tlZCB0byBvZmZsb2Fk IHRoYXQuCgpGaXhlczogM2Y3ZDBlYjQyZDU5ICgibmV0L21seDVlOiBPZmZsb2FkIFRDIG1hdGNo aW5nIG9uIHBhY2tldHMgYmVpbmcgSVAgZnJhZ21lbnRzIikKU2lnbmVkLW9mZi1ieTogUm9pIERh eWFuIDxyb2lkQG1lbGxhbm94LmNvbT4KUmV2aWV3ZWQtYnk6IE9yIEdlcmxpdHogPG9nZXJsaXR6 QG1lbGxhbm94LmNvbT4KU2lnbmVkLW9mZi1ieTogU2FlZWQgTWFoYW1lZWQgPHNhZWVkbUBtZWxs YW5veC5jb20+Ci0tLQogZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2Vu X3RjLmMgfCA0ICsrKysKIDEgZmlsZSBjaGFuZ2VkLCA0IGluc2VydGlvbnMoKykKCmRpZmYgLS1n aXQgYS9kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvZW5fdGMuYyBiL2Ry aXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9lbl90Yy5jCmluZGV4IDQzMjM0 Y2FiZjQ0NC4uYzBiMjYyODFkMGUyIDEwMDY0NAotLS0gYS9kcml2ZXJzL25ldC9ldGhlcm5ldC9t ZWxsYW5veC9tbHg1L2NvcmUvZW5fdGMuYworKysgYi9kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxs YW5veC9tbHg1L2NvcmUvZW5fdGMuYwpAQCAtMTI2MCw2ICsxMjYwLDEwIEBAIHN0YXRpYyBpbnQg X19wYXJzZV9jbHNfZmxvd2VyKHN0cnVjdCBtbHg1ZV9wcml2ICpwcml2LAogCQkJCQkJICBmLT5t YXNrKTsKIAkJYWRkcl90eXBlID0ga2V5LT5hZGRyX3R5cGU7CiAKKwkJLyogdGhlIEhXIGRvZXNu J3Qgc3VwcG9ydCBmcmFnIGZpcnN0L2xhdGVyICovCisJCWlmIChtYXNrLT5mbGFncyAmIEZMT1df RElTX0ZJUlNUX0ZSQUcpCisJCQlyZXR1cm4gLUVPUE5PVFNVUFA7CisKIAkJaWYgKG1hc2stPmZs YWdzICYgRkxPV19ESVNfSVNfRlJBR01FTlQpIHsKIAkJCU1MWDVfU0VUKGZ0ZV9tYXRjaF9zZXRf bHlyXzJfNCwgaGVhZGVyc19jLCBmcmFnLCAxKTsKIAkJCU1MWDVfU0VUKGZ0ZV9tYXRjaF9zZXRf bHlyXzJfNCwgaGVhZGVyc192LCBmcmFnLAotLSAKMi4xNC4zCgoKRnJvbSA4MTc0NmE2NWExMjNk MzdmYWZjN2E4YTMzNGVlNzcwOWYwODgyNTg0IE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9t OiBBZGkgTmlzc2ltIDxhZGluQG1lbGxhbm94LmNvbT4KRGF0ZTogV2VkLCAyNSBBcHIgMjAxOCAx MToyMTozMiArMDMwMApTdWJqZWN0OiBbUEFUQ0ggMTQvNTVdIG5ldC9tbHg1OiBFLVN3aXRjaCwg SW5jbHVkZSBWRiBSRE1BIHN0YXRzIGluIHZwb3J0CiBzdGF0aXN0aWNzCgpbIFVwc3RyZWFtIGNv bW1pdCA4OGQ3MjViYmI0M2NkNjNhNDBjOGVmNzBkZDM3M2YxZDM4ZWFkMmUzIF0KClRoZSBob3N0 IHNpZGUgcmVwb3J0aW5nIG9mIFZGIHZwb3J0IHN0YXRpc3RpY3MgZGlkbid0IGluY2x1ZGUgdGhl IFZGClJETUEgdHJhZmZpYy4KCkZpeGVzOiAzYjc1MWEyYTQxOGEgKCJuZXQvbWx4NTogRS1Td2l0 Y2gsIEludHJvZHVjZSBnZXQgdmYgc3RhdGlzdGljcyIpClNpZ25lZC1vZmYtYnk6IEFkaSBOaXNz aW0gPGFkaW5AbWVsbGFub3guY29tPgpSZXBvcnRlZC1ieTogQXJpZWwgQWxtb2cgPGFyaWVsYUBt ZWxsYW5veC5jb20+ClJldmlld2VkLWJ5OiBPciBHZXJsaXR6IDxvZ2VybGl0ekBtZWxsYW5veC5j b20+ClNpZ25lZC1vZmYtYnk6IFNhZWVkIE1haGFtZWVkIDxzYWVlZG1AbWVsbGFub3guY29tPgot LS0KIGRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9lc3dpdGNoLmMgfCAx MSArKysrKysrKysrLQogMSBmaWxlIGNoYW5nZWQsIDEwIGluc2VydGlvbnMoKyksIDEgZGVsZXRp b24oLSkKCmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2Nv cmUvZXN3aXRjaC5jIGIvZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2Vz d2l0Y2guYwppbmRleCBjMmIxZDdkMzUxZmMuLjBmNzQ1ZGYxNTA2YyAxMDA2NDQKLS0tIGEvZHJp dmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2Vzd2l0Y2guYworKysgYi9kcml2 ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvZXN3aXRjaC5jCkBAIC0yMTQzLDI2 ICsyMTQzLDM1IEBAIGludCBtbHg1X2Vzd2l0Y2hfZ2V0X3Zwb3J0X3N0YXRzKHN0cnVjdCBtbHg1 X2Vzd2l0Y2ggKmVzdywKIAltZW1zZXQodmZfc3RhdHMsIDAsIHNpemVvZigqdmZfc3RhdHMpKTsK IAl2Zl9zdGF0cy0+cnhfcGFja2V0cyA9CiAJCU1MWDVfR0VUX0NUUihvdXQsIHJlY2VpdmVkX2V0 aF91bmljYXN0LnBhY2tldHMpICsKKwkJTUxYNV9HRVRfQ1RSKG91dCwgcmVjZWl2ZWRfaWJfdW5p Y2FzdC5wYWNrZXRzKSArCiAJCU1MWDVfR0VUX0NUUihvdXQsIHJlY2VpdmVkX2V0aF9tdWx0aWNh c3QucGFja2V0cykgKworCQlNTFg1X0dFVF9DVFIob3V0LCByZWNlaXZlZF9pYl9tdWx0aWNhc3Qu cGFja2V0cykgKwogCQlNTFg1X0dFVF9DVFIob3V0LCByZWNlaXZlZF9ldGhfYnJvYWRjYXN0LnBh Y2tldHMpOwogCiAJdmZfc3RhdHMtPnJ4X2J5dGVzID0KIAkJTUxYNV9HRVRfQ1RSKG91dCwgcmVj ZWl2ZWRfZXRoX3VuaWNhc3Qub2N0ZXRzKSArCisJCU1MWDVfR0VUX0NUUihvdXQsIHJlY2VpdmVk X2liX3VuaWNhc3Qub2N0ZXRzKSArCiAJCU1MWDVfR0VUX0NUUihvdXQsIHJlY2VpdmVkX2V0aF9t dWx0aWNhc3Qub2N0ZXRzKSArCisJCU1MWDVfR0VUX0NUUihvdXQsIHJlY2VpdmVkX2liX211bHRp Y2FzdC5vY3RldHMpICsKIAkJTUxYNV9HRVRfQ1RSKG91dCwgcmVjZWl2ZWRfZXRoX2Jyb2FkY2Fz dC5vY3RldHMpOwogCiAJdmZfc3RhdHMtPnR4X3BhY2tldHMgPQogCQlNTFg1X0dFVF9DVFIob3V0 LCB0cmFuc21pdHRlZF9ldGhfdW5pY2FzdC5wYWNrZXRzKSArCisJCU1MWDVfR0VUX0NUUihvdXQs IHRyYW5zbWl0dGVkX2liX3VuaWNhc3QucGFja2V0cykgKwogCQlNTFg1X0dFVF9DVFIob3V0LCB0 cmFuc21pdHRlZF9ldGhfbXVsdGljYXN0LnBhY2tldHMpICsKKwkJTUxYNV9HRVRfQ1RSKG91dCwg dHJhbnNtaXR0ZWRfaWJfbXVsdGljYXN0LnBhY2tldHMpICsKIAkJTUxYNV9HRVRfQ1RSKG91dCwg dHJhbnNtaXR0ZWRfZXRoX2Jyb2FkY2FzdC5wYWNrZXRzKTsKIAogCXZmX3N0YXRzLT50eF9ieXRl cyA9CiAJCU1MWDVfR0VUX0NUUihvdXQsIHRyYW5zbWl0dGVkX2V0aF91bmljYXN0Lm9jdGV0cykg KworCQlNTFg1X0dFVF9DVFIob3V0LCB0cmFuc21pdHRlZF9pYl91bmljYXN0Lm9jdGV0cykgKwog CQlNTFg1X0dFVF9DVFIob3V0LCB0cmFuc21pdHRlZF9ldGhfbXVsdGljYXN0Lm9jdGV0cykgKwor CQlNTFg1X0dFVF9DVFIob3V0LCB0cmFuc21pdHRlZF9pYl9tdWx0aWNhc3Qub2N0ZXRzKSArCiAJ CU1MWDVfR0VUX0NUUihvdXQsIHRyYW5zbWl0dGVkX2V0aF9icm9hZGNhc3Qub2N0ZXRzKTsKIAog CXZmX3N0YXRzLT5tdWx0aWNhc3QgPQotCQlNTFg1X0dFVF9DVFIob3V0LCByZWNlaXZlZF9ldGhf bXVsdGljYXN0LnBhY2tldHMpOworCQlNTFg1X0dFVF9DVFIob3V0LCByZWNlaXZlZF9ldGhfbXVs dGljYXN0LnBhY2tldHMpICsKKwkJTUxYNV9HRVRfQ1RSKG91dCwgcmVjZWl2ZWRfaWJfbXVsdGlj YXN0LnBhY2tldHMpOwogCiAJdmZfc3RhdHMtPmJyb2FkY2FzdCA9CiAJCU1MWDVfR0VUX0NUUihv dXQsIHJlY2VpdmVkX2V0aF9icm9hZGNhc3QucGFja2V0cyk7Ci0tIAoyLjE0LjMKCgpGcm9tIDU1 OWUyYWZjZmRiM2EzZDVjMGNlNTgxNDExYWUyOWJkZjI1NzY3MDMgTW9uIFNlcCAxNyAwMDowMDow MCAyMDAxCkZyb206IFJvbWFuIE1hc2hhayA8bXJ2QG1vamF0YXR1LmNvbT4KRGF0ZTogRnJpLCAx MSBNYXkgMjAxOCAxNDozNTozMyAtMDQwMApTdWJqZWN0OiBbUEFUQ0ggMTUvNTVdIG5ldCBzY2hl ZCBhY3Rpb25zOiBmaXggcmVmY250IGxlYWsgaW4gc2tibW9kCgpbIFVwc3RyZWFtIGNvbW1pdCBh NTI5NTZkZmM1MDNmOGNjNWNmZTY0NTQ5NTliNzA0OWZkZGI0NDEzIF0KCldoZW4gYXBwbGljYXRp b24gZmFpbHMgdG8gcGFzcyBmbGFncyBpbiBuZXRsaW5rIFRMViB3aGVuIHJlcGxhY2luZwpleGlz dGluZyBza2Jtb2QgYWN0aW9uLCB0aGUga2VybmVsIHdpbGwgbGVhayByZWZjbnQ6CgokIHRjIGFj dGlvbnMgZ2V0IGFjdGlvbiBza2Jtb2QgaW5kZXggMQp0b3RhbCBhY3RzIDAKCiAgICAgICAgYWN0 aW9uIG9yZGVyIDA6IHNrYm1vZCBwaXBlIHNldCBzbWFjIDAwOjExOjIyOjMzOjQ0OjU1CiAgICAg ICAgIGluZGV4IDEgcmVmIDEgYmluZCAwCgpGb3IgZXhhbXBsZSwgYXQgdGhpcyBwb2ludCBhIGJ1 Z2d5IGFwcGxpY2F0aW9uIHJlcGxhY2VzIHRoZSBhY3Rpb24gd2l0aAppbmRleCAxIHdpdGggbmV3 IHNtYWMgMDA6YWE6MjI6MzM6NDQ6NTUsIGl0IGZhaWxzIGJlY2F1c2Ugb2YgemVybyBmbGFncywK aG93ZXZlciByZWZjbnQgZ2V0cyBidW1wZWQ6CgokIHRjIGFjdGlvbnMgZ2V0IGFjdGlvbnMgc2ti bW9kIGluZGV4IDEKdG90YWwgYWN0cyAwCgogICAgICAgIGFjdGlvbiBvcmRlciAwOiBza2Jtb2Qg cGlwZSBzZXQgc21hYyAwMDoxMToyMjozMzo0NDo1NQogICAgICAgICBpbmRleCAxIHJlZiAyIGJp bmQgMAokCgpUaGEgcGF0Y2ggZml4ZXMgdGhpcyBieSBjYWxsaW5nIHRjZl9pZHJfcmVsZWFzZSgp IG9uIGV4aXN0aW5nIGFjdGlvbnMuCgpGaXhlczogODZkYTcxYjU3MzgzZCAoIm5ldF9zY2hlZDog SW50cm9kdWNlIHNrYm1vZCBhY3Rpb24iKQpTaWduZWQtb2ZmLWJ5OiBSb21hbiBNYXNoYWsgPG1y dkBtb2phdGF0dS5jb20+CkFja2VkLWJ5OiBDb25nIFdhbmcgPHhpeW91Lndhbmdjb25nQGdtYWls LmNvbT4KU2lnbmVkLW9mZi1ieTogRGF2aWQgUy4gTWlsbGVyIDxkYXZlbUBkYXZlbWxvZnQubmV0 PgotLS0KIG5ldC9zY2hlZC9hY3Rfc2tibW9kLmMgfCA1ICsrKystCiAxIGZpbGUgY2hhbmdlZCwg NCBpbnNlcnRpb25zKCspLCAxIGRlbGV0aW9uKC0pCgpkaWZmIC0tZ2l0IGEvbmV0L3NjaGVkL2Fj dF9za2Jtb2QuYyBiL25ldC9zY2hlZC9hY3Rfc2tibW9kLmMKaW5kZXggN2IwNzAwZjUyYjUwLi5k ODdiNjExMDQ2YmIgMTAwNjQ0Ci0tLSBhL25ldC9zY2hlZC9hY3Rfc2tibW9kLmMKKysrIGIvbmV0 L3NjaGVkL2FjdF9za2Jtb2QuYwpAQCAtMTMxLDggKzEzMSwxMSBAQCBzdGF0aWMgaW50IHRjZl9z a2Jtb2RfaW5pdChzdHJ1Y3QgbmV0ICpuZXQsIHN0cnVjdCBubGF0dHIgKm5sYSwKIAlpZiAoZXhp c3RzICYmIGJpbmQpCiAJCXJldHVybiAwOwogCi0JaWYgKCFsZmxhZ3MpCisJaWYgKCFsZmxhZ3Mp IHsKKwkJaWYgKGV4aXN0cykKKwkJCXRjZl9pZHJfcmVsZWFzZSgqYSwgYmluZCk7CiAJCXJldHVy biAtRUlOVkFMOworCX0KIAogCWlmICghZXhpc3RzKSB7CiAJCXJldCA9IHRjZl9pZHJfY3JlYXRl KHRuLCBwYXJtLT5pbmRleCwgZXN0LCBhLAotLSAKMi4xNC4zCgoKRnJvbSA1ZWJjZmUzOWZiOGYw YjM4Y2Y3MDk4NjYxMmEzZGNlZGQ1NjFjZjUyIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9t OiBFcmljIER1bWF6ZXQgPGVkdW1hemV0QGdvb2dsZS5jb20+CkRhdGU6IFdlZCwgMiBNYXkgMjAx OCAxMDowMzozMCAtMDcwMApTdWJqZWN0OiBbUEFUQ0ggMTYvNTVdIG5ldF9zY2hlZDogZnE6IHRh a2UgY2FyZSBvZiB0aHJvdHRsZWQgZmxvd3MgYmVmb3JlCiByZXVzZQoKWyBVcHN0cmVhbSBjb21t aXQgN2RmNDBjMjY3M2ExMzA3YzMyNjBhYWI2ZjlkNGI5YmY5N2NhOGZkNyBdCgpOb3JtYWxseSwg YSBzb2NrZXQgY2FuIG5vdCBiZSBmcmVlZC9yZXVzZWQgdW5sZXNzIGFsbCBpdHMgVFggcGFja2V0 cwpsZWZ0IHFkaXNjIGFuZCB3ZXJlIFRYLWNvbXBsZXRlZC4gSG93ZXZlciBjb25uZWN0KEFGX1VO U1BFQykgYWxsb3dzCnRoaXMgdG8gaGFwcGVuLgoKV2l0aCBjb21taXQgZmM1OWQ1YmRmMWUzICgi cGt0X3NjaGVkOiBmcTogY2xlYXIgdGltZV9uZXh0X3BhY2tldCBmb3IKcmV1c2VkIGZsb3dzIikg d2UgY2xlYXJlZCBmLT50aW1lX25leHRfcGFja2V0IGJ1dCB0b29rIG5vIHNwZWNpYWwKYWN0aW9u IGlmIHRoZSBmbG93IHdhcyBzdGlsbCBpbiB0aGUgdGhyb3R0bGVkIHJiLXRyZWUuCgpTaW5jZSBm LT50aW1lX25leHRfcGFja2V0IGlzIHRoZSBrZXkgdXNlZCBpbiB0aGUgcmItdHJlZSBzZWFyY2hl cywKYmxpbmRseSBjbGVhcmluZyBpdCBtaWdodCBicmVhayByYi10cmVlIGludGVncml0eS4gV2Ug bmVlZCB0byBtYWtlCnN1cmUgdGhlIGZsb3cgaXMgbm8gbG9uZ2VyIGluIHRoZSByYi10cmVlIHRv IGF2b2lkIHRoaXMgcHJvYmxlbS4KCkZpeGVzOiBmYzU5ZDViZGYxZTMgKCJwa3Rfc2NoZWQ6IGZx OiBjbGVhciB0aW1lX25leHRfcGFja2V0IGZvciByZXVzZWQgZmxvd3MiKQpTaWduZWQtb2ZmLWJ5 OiBFcmljIER1bWF6ZXQgPGVkdW1hemV0QGdvb2dsZS5jb20+ClNpZ25lZC1vZmYtYnk6IERhdmlk IFMuIE1pbGxlciA8ZGF2ZW1AZGF2ZW1sb2Z0Lm5ldD4KLS0tCiBuZXQvc2NoZWQvc2NoX2ZxLmMg fCAzNyArKysrKysrKysrKysrKysrKysrKysrKysrLS0tLS0tLS0tLS0tCiAxIGZpbGUgY2hhbmdl ZCwgMjUgaW5zZXJ0aW9ucygrKSwgMTIgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvbmV0L3Nj aGVkL3NjaF9mcS5jIGIvbmV0L3NjaGVkL3NjaF9mcS5jCmluZGV4IGEzNjZlNGM5NDEzYS4uNDgw ODcxM2M3M2I5IDEwMDY0NAotLS0gYS9uZXQvc2NoZWQvc2NoX2ZxLmMKKysrIGIvbmV0L3NjaGVk L3NjaF9mcS5jCkBAIC0xMjgsNiArMTI4LDI4IEBAIHN0YXRpYyBib29sIGZxX2Zsb3dfaXNfZGV0 YWNoZWQoY29uc3Qgc3RydWN0IGZxX2Zsb3cgKmYpCiAJcmV0dXJuIGYtPm5leHQgPT0gJmRldGFj aGVkOwogfQogCitzdGF0aWMgYm9vbCBmcV9mbG93X2lzX3Rocm90dGxlZChjb25zdCBzdHJ1Y3Qg ZnFfZmxvdyAqZikKK3sKKwlyZXR1cm4gZi0+bmV4dCA9PSAmdGhyb3R0bGVkOworfQorCitzdGF0 aWMgdm9pZCBmcV9mbG93X2FkZF90YWlsKHN0cnVjdCBmcV9mbG93X2hlYWQgKmhlYWQsIHN0cnVj dCBmcV9mbG93ICpmbG93KQoreworCWlmIChoZWFkLT5maXJzdCkKKwkJaGVhZC0+bGFzdC0+bmV4 dCA9IGZsb3c7CisJZWxzZQorCQloZWFkLT5maXJzdCA9IGZsb3c7CisJaGVhZC0+bGFzdCA9IGZs b3c7CisJZmxvdy0+bmV4dCA9IE5VTEw7Cit9CisKK3N0YXRpYyB2b2lkIGZxX2Zsb3dfdW5zZXRf dGhyb3R0bGVkKHN0cnVjdCBmcV9zY2hlZF9kYXRhICpxLCBzdHJ1Y3QgZnFfZmxvdyAqZikKK3sK KwlyYl9lcmFzZSgmZi0+cmF0ZV9ub2RlLCAmcS0+ZGVsYXllZCk7CisJcS0+dGhyb3R0bGVkX2Zs b3dzLS07CisJZnFfZmxvd19hZGRfdGFpbCgmcS0+b2xkX2Zsb3dzLCBmKTsKK30KKwogc3RhdGlj IHZvaWQgZnFfZmxvd19zZXRfdGhyb3R0bGVkKHN0cnVjdCBmcV9zY2hlZF9kYXRhICpxLCBzdHJ1 Y3QgZnFfZmxvdyAqZikKIHsKIAlzdHJ1Y3QgcmJfbm9kZSAqKnAgPSAmcS0+ZGVsYXllZC5yYl9u b2RlLCAqcGFyZW50ID0gTlVMTDsKQEAgLTE1NSwxNSArMTc3LDYgQEAgc3RhdGljIHZvaWQgZnFf Zmxvd19zZXRfdGhyb3R0bGVkKHN0cnVjdCBmcV9zY2hlZF9kYXRhICpxLCBzdHJ1Y3QgZnFfZmxv dyAqZikKIAogc3RhdGljIHN0cnVjdCBrbWVtX2NhY2hlICpmcV9mbG93X2NhY2hlcCBfX3JlYWRf bW9zdGx5OwogCi1zdGF0aWMgdm9pZCBmcV9mbG93X2FkZF90YWlsKHN0cnVjdCBmcV9mbG93X2hl YWQgKmhlYWQsIHN0cnVjdCBmcV9mbG93ICpmbG93KQotewotCWlmIChoZWFkLT5maXJzdCkKLQkJ aGVhZC0+bGFzdC0+bmV4dCA9IGZsb3c7Ci0JZWxzZQotCQloZWFkLT5maXJzdCA9IGZsb3c7Ci0J aGVhZC0+bGFzdCA9IGZsb3c7Ci0JZmxvdy0+bmV4dCA9IE5VTEw7Ci19CiAKIC8qIGxpbWl0IG51 bWJlciBvZiBjb2xsZWN0ZWQgZmxvd3MgcGVyIHJvdW5kICovCiAjZGVmaW5lIEZRX0dDX01BWCA4 CkBAIC0yNjcsNiArMjgwLDggQEAgc3RhdGljIHN0cnVjdCBmcV9mbG93ICpmcV9jbGFzc2lmeShz dHJ1Y3Qgc2tfYnVmZiAqc2tiLCBzdHJ1Y3QgZnFfc2NoZWRfZGF0YSAqcSkKIAkJCQkgICAgIGYt PnNvY2tldF9oYXNoICE9IHNrLT5za19oYXNoKSkgewogCQkJCWYtPmNyZWRpdCA9IHEtPmluaXRp YWxfcXVhbnR1bTsKIAkJCQlmLT5zb2NrZXRfaGFzaCA9IHNrLT5za19oYXNoOworCQkJCWlmIChm cV9mbG93X2lzX3Rocm90dGxlZChmKSkKKwkJCQkJZnFfZmxvd191bnNldF90aHJvdHRsZWQocSwg Zik7CiAJCQkJZi0+dGltZV9uZXh0X3BhY2tldCA9IDBVTEw7CiAJCQl9CiAJCQlyZXR1cm4gZjsK QEAgLTQzOCw5ICs0NTMsNyBAQCBzdGF0aWMgdm9pZCBmcV9jaGVja190aHJvdHRsZWQoc3RydWN0 IGZxX3NjaGVkX2RhdGEgKnEsIHU2NCBub3cpCiAJCQlxLT50aW1lX25leHRfZGVsYXllZF9mbG93 ID0gZi0+dGltZV9uZXh0X3BhY2tldDsKIAkJCWJyZWFrOwogCQl9Ci0JCXJiX2VyYXNlKHAsICZx LT5kZWxheWVkKTsKLQkJcS0+dGhyb3R0bGVkX2Zsb3dzLS07Ci0JCWZxX2Zsb3dfYWRkX3RhaWwo JnEtPm9sZF9mbG93cywgZik7CisJCWZxX2Zsb3dfdW5zZXRfdGhyb3R0bGVkKHEsIGYpOwogCX0K IH0KIAotLSAKMi4xNC4zCgoKRnJvbSBjYzgxZjU4OWZlZjFjZDVlNzYyNTRhMGEwMTM1Yzg3OTMx NTJlNTIzIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBVcnN1bGEgQnJhdW4gPHVicmF1 bkBsaW51eC5pYm0uY29tPgpEYXRlOiBXZWQsIDIgTWF5IDIwMTggMTY6NTM6NTYgKzAyMDAKU3Vi amVjdDogW1BBVENIIDE3LzU1XSBuZXQvc21jOiByZXN0cmljdCBub24tYmxvY2tpbmcgY29ubmVj dCBmaW5pc2gKClsgVXBzdHJlYW0gY29tbWl0IDc4NDgxM2FlZDZiYTI0YTFmMjRlN2UxMWQ5ZDBm MjA4Y2VlMzdhN2QgXQoKVGhlIHNtY19wb2xsIGNvZGUgdHJpZXMgdG8gZmluaXNoIGNvbm5lY3Qo KSBpZiB0aGUgc29ja2V0IGlzIGluCnN0YXRlIFNNQ19JTklUIGFuZCBwb2xsaW5nIG9mIHRoZSBp bnRlcm5hbCBDTEMtc29ja2V0IHJldHVybnMgd2l0aApFUE9MTE9VVC4gVGhpcyBtYWtlcyBzZW5z ZSBmb3IgYSBzZWxlY3QvcG9sbCBjYWxsIGZvbGxvd2luZyBhIGNvbm5lY3QKY2FsbCwgYnV0IG5v dCB3aXRob3V0IHByZWNlZGluZyBjb25uZWN0KCkuCldpdGggdGhpcyBwYXRjaCBzbWNfcG9sbCBz dGFydHMgY29ubmVjdCBsb2dpYyBvbmx5LCBpZiB0aGUgQ0xDLXNvY2tldAppcyBubyBsb25nZXIg aW4gaXRzIGluaXRpYWwgc3RhdGUgVENQX0NMT1NFLgoKSW4gYWRkaXRpb24sIGEgcG9sbCBlcnJv ciBvbiB0aGUgaW50ZXJuYWwgQ0xDLXNvY2tldCBpcyBhbHdheXMKcHJvcGFnYXRlZCB0byB0aGUg U01DIHNvY2tldC4KCldpdGggdGhpcyBwYXRjaCB0aGUgY29kZSBwYXRoIG1lbnRpb25lZCBieSBz eXpib3QKaHR0cHM6Ly9zeXprYWxsZXIuYXBwc3BvdC5jb20vYnVnP2V4dGlkPTAzZmFhMmRjMTZi OGI2NGJlMzk2CmlzIG5vIGxvbmdlciBwb3NzaWJsZS4KClNpZ25lZC1vZmYtYnk6IFVyc3VsYSBC cmF1biA8dWJyYXVuQGxpbnV4LmlibS5jb20+ClJlcG9ydGVkLWJ5OiBzeXpib3QrMDNmYWEyZGMx NmI4YjY0YmUzOTZAc3l6a2FsbGVyLmFwcHNwb3RtYWlsLmNvbQpTaWduZWQtb2ZmLWJ5OiBEYXZp ZCBTLiBNaWxsZXIgPGRhdmVtQGRhdmVtbG9mdC5uZXQ+Ci0tLQogbmV0L3NtYy9hZl9zbWMuYyB8 IDE0ICsrKysrKysrLS0tLS0tCiAxIGZpbGUgY2hhbmdlZCwgOCBpbnNlcnRpb25zKCspLCA2IGRl bGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL25ldC9zbWMvYWZfc21jLmMgYi9uZXQvc21jL2FmX3Nt Yy5jCmluZGV4IGFmZDVhOTM1YmJjYi4uNTk3NGVhN2EzZWY0IDEwMDY0NAotLS0gYS9uZXQvc21j L2FmX3NtYy5jCisrKyBiL25ldC9zbWMvYWZfc21jLmMKQEAgLTExNjUsMTMgKzExNjUsMTUgQEAg c3RhdGljIF9fcG9sbF90IHNtY19wb2xsKHN0cnVjdCBmaWxlICpmaWxlLCBzdHJ1Y3Qgc29ja2V0 ICpzb2NrLAogCQkvKiBkZWxlZ2F0ZSB0byBDTEMgY2hpbGQgc29jayAqLwogCQlyZWxlYXNlX3Nv Y2soc2spOwogCQltYXNrID0gc21jLT5jbGNzb2NrLT5vcHMtPnBvbGwoZmlsZSwgc21jLT5jbGNz b2NrLCB3YWl0KTsKLQkJLyogaWYgbm9uLWJsb2NraW5nIGNvbm5lY3QgZmluaXNoZWQgLi4uICov CiAJCWxvY2tfc29jayhzayk7Ci0JCWlmICgoc2stPnNrX3N0YXRlID09IFNNQ19JTklUKSAmJiAo bWFzayAmIEVQT0xMT1VUKSkgewotCQkJc2stPnNrX2VyciA9IHNtYy0+Y2xjc29jay0+c2stPnNr X2VycjsKLQkJCWlmIChzay0+c2tfZXJyKSB7Ci0JCQkJbWFzayB8PSBFUE9MTEVSUjsKLQkJCX0g ZWxzZSB7CisJCXNrLT5za19lcnIgPSBzbWMtPmNsY3NvY2stPnNrLT5za19lcnI7CisJCWlmIChz ay0+c2tfZXJyKSB7CisJCQltYXNrIHw9IEVQT0xMRVJSOworCQl9IGVsc2UgeworCQkJLyogaWYg bm9uLWJsb2NraW5nIGNvbm5lY3QgZmluaXNoZWQgLi4uICovCisJCQlpZiAoc2stPnNrX3N0YXRl ID09IFNNQ19JTklUICYmCisJCQkgICAgbWFzayAmIEVQT0xMT1VUICYmCisJCQkgICAgc21jLT5j bGNzb2NrLT5zay0+c2tfc3RhdGUgIT0gVENQX0NMT1NFKSB7CiAJCQkJcmMgPSBzbWNfY29ubmVj dF9yZG1hKHNtYyk7CiAJCQkJaWYgKHJjIDwgMCkKIAkJCQkJbWFzayB8PSBFUE9MTEVSUjsKLS0g CjIuMTQuMwoKCkZyb20gOThiZDIwNGIzOGRjMDZkODU4MDhiYWVjYzYwNmZkNDczNDQxM2NhNCBN b24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJvbTogTGFuY2UgUmljaGFyZHNvbiA8bGFuY2Uucmlj aGFyZHNvbi5uZXRAZ21haWwuY29tPgpEYXRlOiBXZWQsIDI1IEFwciAyMDE4IDEwOjIxOjU0IC0w NDAwClN1YmplY3Q6IFtQQVRDSCAxOC81NV0gbmV0OiBzdXBwb3J0IGNvbXBhdCA2NC1iaXQgdGlt ZSBpbiB7cyxnfWV0c29ja29wdAoKWyBVcHN0cmVhbSBjb21taXQgOTg4YmY3MjQzZTAzZWY2OTIz ODM4MTU5NGUwMzM0YTc5Y2VmNzRhNiBdCgpGb3IgdGhlIHgzMiBBQkksIHN0cnVjdCB0aW1ldmFs IGhhcyB0d28gNjQtYml0IGZpZWxkcy4gSG93ZXZlcgp0aGUga2VybmVsIGN1cnJlbnRseSBpbnRl cnByZXRzIHRoZSB1c2VyLXNwYWNlIHZhbHVlcyB1c2VkIGZvcgp0aGUgU09fUkNWVElNRU8gYW5k IFNPX1NORFRJTUVPIHNvY2tldCBvcHRpb25zIGFzIGhhdmluZyBhIHBhaXIKb2YgMzItYml0IGZp ZWxkcy4KCldoZW4gdGhlIHNlY29uZHMgcG9ydGlvbiBvZiB0aGUgcmVxdWVzdGVkIHRpbWVvdXQg aXMgbGVzcyB0aGFuIDIqKjMyLAp0aGUgc2Vjb25kcyBwb3J0aW9uIG9mIHRoZSBlZmZlY3RpdmUg dGltZW91dCBpcyBjb3JyZWN0IGJ1dCB0aGUKbWljcm9zZWNvbmRzIHBvcnRpb24gaXMgemVyby4g IFdoZW4gdGhlIHNlY29uZHMgcG9ydGlvbiBvZiB0aGUKcmVxdWVzdGVkIHRpbWVvdXQgaXMgemVy byBhbmQgdGhlIG1pY3Jvc2Vjb25kcyBwb3J0aW9uIGlzIG5vbi16ZXJvLAp0aGUga2VybmVsIGlu dGVycHJldHMgdGhlIHRpbWVvdXQgYXMgemVybyAobmV2ZXIgdGltZW91dCkuCgpGaXggYnkgdXNp bmcgNjQtYml0IHRpbWUgZm9yIFNPX1JDVlRJTUVPL1NPX1NORFRJTUVPIGFzIHJlcXVpcmVkCmZv ciB0aGUgQUJJLgoKVGhlIGNvZGUgaW5jbHVkZWQgYmVsb3cgZGVtb25zdHJhdGVzIHRoZSBwcm9i bGVtLgoKUmVzdWx0cyBiZWZvcmUgcGF0Y2g6CiAgICAkIGdjYyAtbTY0IC1XYWxsIC1PMiAtbyBz b2NrdG1vIHNvY2t0bW8uYyAmJiAuL3NvY2t0bW8KICAgIHJlY3YgdGltZTogMi4wMDgxODEgc2Vj b25kcwogICAgc2VuZCB0aW1lOiAyLjAxNTk4NSBzZWNvbmRzCgogICAgJCBnY2MgLW0zMiAtV2Fs bCAtTzIgLW8gc29ja3RtbyBzb2NrdG1vLmMgJiYgLi9zb2NrdG1vCiAgICByZWN2IHRpbWU6IDIu MDE2NzYzIHNlY29uZHMKICAgIHNlbmQgdGltZTogMi4wMTYwNjIgc2Vjb25kcwoKICAgICQgZ2Nj IC1teDMyIC1XYWxsIC1PMiAtbyBzb2NrdG1vIHNvY2t0bW8uYyAmJiAuL3NvY2t0bW8KICAgIHJl Y3YgdGltZTogMS4wMDcyMzkgc2Vjb25kcwogICAgc2VuZCB0aW1lOiAxLjAyMzg5MCBzZWNvbmRz CgpSZXN1bHRzIGFmdGVyIHBhdGNoOgogICAgJCBnY2MgLW02NCAtTzIgLVdhbGwgLW8gc29ja3Rt byBzb2NrdG1vLmMgJiYgLi9zb2NrdG1vCiAgICByZWN2IHRpbWU6IDIuMDEwMDYyIHNlY29uZHMK ICAgIHNlbmQgdGltZTogMi4wMTU4MzYgc2Vjb25kcwoKICAgICQgZ2NjIC1tMzIgLU8yIC1XYWxs IC1vIHNvY2t0bW8gc29ja3Rtby5jICYmIC4vc29ja3RtbwogICAgcmVjdiB0aW1lOiAyLjAxMzk3 NCBzZWNvbmRzCiAgICBzZW5kIHRpbWU6IDIuMDE1OTgxIHNlY29uZHMKCiAgICAkIGdjYyAtbXgz MiAtTzIgLVdhbGwgLW8gc29ja3RtbyBzb2NrdG1vLmMgJiYgLi9zb2NrdG1vCiAgICByZWN2IHRp bWU6IDIuMDMwMjU3IHNlY29uZHMKICAgIHNlbmQgdGltZTogMi4wMTMzODMgc2Vjb25kcwoKICNp bmNsdWRlIDxzdGRpby5oPgogI2luY2x1ZGUgPHN0ZGxpYi5oPgogI2luY2x1ZGUgPHN5cy9zb2Nr ZXQuaD4KICNpbmNsdWRlIDxzeXMvdHlwZXMuaD4KICNpbmNsdWRlIDxzeXMvdGltZS5oPgoKIHZv aWQgY2hlY2tyYyhjaGFyICpzdHIsIGludCByYykKIHsKICAgICAgICAgaWYgKHJjID49IDApCiAg ICAgICAgICAgICAgICAgcmV0dXJuOwoKICAgICAgICAgcGVycm9yKHN0cik7CiAgICAgICAgIGV4 aXQoMSk7CiB9Cgogc3RhdGljIGNoYXIgYnVmWzEwMjRdOwogaW50IG1haW4oaW50IGFyZ2MsIGNo YXIgKiphcmd2KQogewogICAgICAgICBpbnQgcmM7CiAgICAgICAgIGludCBzb2Nrc1syXTsKICAg ICAgICAgc3RydWN0IHRpbWV2YWwgdHY7CiAgICAgICAgIHN0cnVjdCB0aW1ldmFsIHN0YXJ0LCBl bmQsIGRlbHRhOwoKICAgICAgICAgcmMgPSBzb2NrZXRwYWlyKEFGX1VOSVgsIFNPQ0tfU1RSRUFN LCAwLCBzb2Nrcyk7CiAgICAgICAgIGNoZWNrcmMoInNvY2tldHBhaXIiLCByYyk7CgogICAgICAg ICAvKiBzZXQgdGltZW91dCB0byAxLjk5OTk5OSBzZWNvbmRzICovCiAgICAgICAgIHR2LnR2X3Nl YyA9IDE7CiAgICAgICAgIHR2LnR2X3VzZWMgPSA5OTk5OTk7CiAgICAgICAgIHJjID0gc2V0c29j a29wdChzb2Nrc1swXSwgU09MX1NPQ0tFVCwgU09fUkNWVElNRU8sICZ0diwgc2l6ZW9mIHR2KTsK ICAgICAgICAgcmMgPSBzZXRzb2Nrb3B0KHNvY2tzWzBdLCBTT0xfU09DS0VULCBTT19TTkRUSU1F TywgJnR2LCBzaXplb2YgdHYpOwogICAgICAgICBjaGVja3JjKCJzZXRzb2Nrb3B0IiwgcmMpOwoK ICAgICAgICAgLyogbWVhc3VyZSBhY3R1YWwgcmVjZWl2ZSB0aW1lb3V0ICovCiAgICAgICAgIGdl dHRpbWVvZmRheSgmc3RhcnQsIE5VTEwpOwogICAgICAgICByYyA9IHJlY3Yoc29ja3NbMF0sIGJ1 Ziwgc2l6ZW9mIGJ1ZiwgMCk7CiAgICAgICAgIGdldHRpbWVvZmRheSgmZW5kLCBOVUxMKTsKICAg ICAgICAgdGltZXJzdWIoJmVuZCwgJnN0YXJ0LCAmZGVsdGEpOwoKICAgICAgICAgcHJpbnRmKCJy ZWN2IHRpbWU6ICVsZC4lMDZsZCBzZWNvbmRzXG4iLAogICAgICAgICAgICAgICAgKGxvbmcpZGVs dGEudHZfc2VjLCAobG9uZylkZWx0YS50dl91c2VjKTsKCiAgICAgICAgIC8qIGZpbGwgc2VuZCBi dWZmZXIgKi8KICAgICAgICAgZG8gewogICAgICAgICAgICAgICAgIHJjID0gc2VuZChzb2Nrc1sw XSwgYnVmLCBzaXplb2YgYnVmLCAwKTsKICAgICAgICAgfSB3aGlsZSAocmMgPiAwKTsKCiAgICAg ICAgIC8qIG1lYXN1cmUgYWN0dWFsIHNlbmQgdGltZW91dCAqLwogICAgICAgICBnZXR0aW1lb2Zk YXkoJnN0YXJ0LCBOVUxMKTsKICAgICAgICAgcmMgPSBzZW5kKHNvY2tzWzBdLCBidWYsIHNpemVv ZiBidWYsIDApOwogICAgICAgICBnZXR0aW1lb2ZkYXkoJmVuZCwgTlVMTCk7CiAgICAgICAgIHRp bWVyc3ViKCZlbmQsICZzdGFydCwgJmRlbHRhKTsKCiAgICAgICAgIHByaW50Zigic2VuZCB0aW1l OiAlbGQuJTA2bGQgc2Vjb25kc1xuIiwKICAgICAgICAgICAgICAgIChsb25nKWRlbHRhLnR2X3Nl YywgKGxvbmcpZGVsdGEudHZfdXNlYyk7CiAgICAgICAgIGV4aXQoMCk7CiB9CgpGaXhlczogNTE1 YzdhZjg1ZWQ5ICgieDMyOiBVc2UgY29tcGF0IHNoaW1zIGZvciB7ZyxzfWV0c29ja29wdCIpClJl cG9ydGVkLWJ5OiBHb3BhbCBSYWphZ29wYWxTYWkgPGdvcGFsc3I4M0BnbWFpbC5jb20+ClNpZ25l ZC1vZmYtYnk6IExhbmNlIFJpY2hhcmRzb24gPGxhbmNlLnJpY2hhcmRzb24ubmV0QGdtYWlsLmNv bT4KU2lnbmVkLW9mZi1ieTogRGF2aWQgUy4gTWlsbGVyIDxkYXZlbUBkYXZlbWxvZnQubmV0Pgot LS0KIG5ldC9jb21wYXQuYyB8IDYgKysrKy0tCiAxIGZpbGUgY2hhbmdlZCwgNCBpbnNlcnRpb25z KCspLCAyIGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL25ldC9jb21wYXQuYyBiL25ldC9jb21w YXQuYwppbmRleCAyMjM4MTcxOTcxOGMuLjMyZWQ5OTM1ODhkNiAxMDA2NDQKLS0tIGEvbmV0L2Nv bXBhdC5jCisrKyBiL25ldC9jb21wYXQuYwpAQCAtMzc3LDcgKzM3Nyw4IEBAIHN0YXRpYyBpbnQg Y29tcGF0X3NvY2tfc2V0c29ja29wdChzdHJ1Y3Qgc29ja2V0ICpzb2NrLCBpbnQgbGV2ZWwsIGlu dCBvcHRuYW1lLAogCSAgICBvcHRuYW1lID09IFNPX0FUVEFDSF9SRVVTRVBPUlRfQ0JQRikKIAkJ cmV0dXJuIGRvX3NldF9hdHRhY2hfZmlsdGVyKHNvY2ssIGxldmVsLCBvcHRuYW1lLAogCQkJCQkg ICAgb3B0dmFsLCBvcHRsZW4pOwotCWlmIChvcHRuYW1lID09IFNPX1JDVlRJTUVPIHx8IG9wdG5h bWUgPT0gU09fU05EVElNRU8pCisJaWYgKCFDT01QQVRfVVNFXzY0QklUX1RJTUUgJiYKKwkgICAg KG9wdG5hbWUgPT0gU09fUkNWVElNRU8gfHwgb3B0bmFtZSA9PSBTT19TTkRUSU1FTykpCiAJCXJl dHVybiBkb19zZXRfc29ja190aW1lb3V0KHNvY2ssIGxldmVsLCBvcHRuYW1lLCBvcHR2YWwsIG9w dGxlbik7CiAKIAlyZXR1cm4gc29ja19zZXRzb2Nrb3B0KHNvY2ssIGxldmVsLCBvcHRuYW1lLCBv cHR2YWwsIG9wdGxlbik7CkBAIC00NDIsNyArNDQzLDggQEAgc3RhdGljIGludCBkb19nZXRfc29j a190aW1lb3V0KHN0cnVjdCBzb2NrZXQgKnNvY2ssIGludCBsZXZlbCwgaW50IG9wdG5hbWUsCiBz dGF0aWMgaW50IGNvbXBhdF9zb2NrX2dldHNvY2tvcHQoc3RydWN0IHNvY2tldCAqc29jaywgaW50 IGxldmVsLCBpbnQgb3B0bmFtZSwKIAkJCQljaGFyIF9fdXNlciAqb3B0dmFsLCBpbnQgX191c2Vy ICpvcHRsZW4pCiB7Ci0JaWYgKG9wdG5hbWUgPT0gU09fUkNWVElNRU8gfHwgb3B0bmFtZSA9PSBT T19TTkRUSU1FTykKKwlpZiAoIUNPTVBBVF9VU0VfNjRCSVRfVElNRSAmJgorCSAgICAob3B0bmFt ZSA9PSBTT19SQ1ZUSU1FTyB8fCBvcHRuYW1lID09IFNPX1NORFRJTUVPKSkKIAkJcmV0dXJuIGRv X2dldF9zb2NrX3RpbWVvdXQoc29jaywgbGV2ZWwsIG9wdG5hbWUsIG9wdHZhbCwgb3B0bGVuKTsK IAlyZXR1cm4gc29ja19nZXRzb2Nrb3B0KHNvY2ssIGxldmVsLCBvcHRuYW1lLCBvcHR2YWwsIG9w dGxlbik7CiB9Ci0tIAoyLjE0LjMKCgpGcm9tIGM4NjI1NGZlMWY3MmU2MTA1NDhiMTc4YzEzZmNl ODgwY2I0OTBlZjcgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCkZyb206IERhdmUgV2F0c29uIDxk YXZlandhdHNvbkBmYi5jb20+CkRhdGU6IFR1ZSwgMSBNYXkgMjAxOCAxMzowNTozOSAtMDcwMApT dWJqZWN0OiBbUEFUQ0ggMTkvNTVdIG5ldC90bHM6IERvbid0IHJlY3Vyc2l2ZWx5IGNhbGwgcHVz aF9yZWNvcmQgZHVyaW5nCiB0bHNfd3JpdGVfc3BhY2UgY2FsbGJhY2tzCgpbIFVwc3RyZWFtIGNv bW1pdCBjMjEyZDJjN2ZjNDczNmQ0OWJlMTAyZmI3YTFhNTQ1Y2RjMmYxZmVhIF0KCkl0IGlzIHJl cG9ydGVkIHRoYXQgaW4gc29tZSBjYXNlcywgd3JpdGVfc3BhY2UgbWF5IGJlIGNhbGxlZCBpbgpk b190Y3Bfc2VuZHBhZ2VzLCBzdWNoIHRoYXQgd2UgcmVjdXJzaXZlbHkgaW52b2tlIGRvX3RjcF9z ZW5kcGFnZXMgYWdhaW46CgpbICA2NjAuNDY4ODAyXSAgPyBkb190Y3Bfc2VuZHBhZ2VzKzB4OGQv MHg1ODAKWyAgNjYwLjQ2ODgyNl0gID8gdGxzX3B1c2hfc2crMHg3NC8weDEzMCBbdGxzXQpbICA2 NjAuNDY4ODUyXSAgPyB0bHNfcHVzaF9yZWNvcmQrMHgyNGEvMHgzOTAgW3Rsc10KWyAgNjYwLjQ2 ODg4MF0gID8gdGxzX3dyaXRlX3NwYWNlKzB4NmEvMHg4MCBbdGxzXQouLi4KCnRsc19wdXNoX3Nn IGFscmVhZHkgZG9lcyBhIGxvb3Agb3ZlciBhbGwgc2VuZGluZyBzZydzLCBzbyBpZ25vcmUKYW55 IHRsc193cml0ZV9zcGFjZSBub3RpZmljYXRpb25zIHVudGlsIHdlIGFyZSBkb25lIHNlbmRpbmcu CldlIHRoZW4gaGF2ZSB0byBjYWxsIHRoZSBwcmV2aW91cyB3cml0ZV9zcGFjZSB0byB3YWtlIHVw CnBvbGwoKSB3YWl0ZXJzIGFmdGVyIHdlIGFyZSBkb25lIHdpdGggdGhlIHNlbmQgbG9vcC4KClJl cG9ydGVkLWJ5OiBBbmRyZSBUb210IDxhbmRyZUB0b210Lm5ldD4KU2lnbmVkLW9mZi1ieTogRGF2 ZSBXYXRzb24gPGRhdmVqd2F0c29uQGZiLmNvbT4KU2lnbmVkLW9mZi1ieTogRGF2aWQgUy4gTWls bGVyIDxkYXZlbUBkYXZlbWxvZnQubmV0PgotLS0KIGluY2x1ZGUvbmV0L3Rscy5oICB8IDEgKwog bmV0L3Rscy90bHNfbWFpbi5jIHwgNyArKysrKysrCiAyIGZpbGVzIGNoYW5nZWQsIDggaW5zZXJ0 aW9ucygrKQoKZGlmZiAtLWdpdCBhL2luY2x1ZGUvbmV0L3Rscy5oIGIvaW5jbHVkZS9uZXQvdGxz LmgKaW5kZXggNDkxMzQzMGFiODA3Li5mNWM5MjhhNzY5OTQgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUv bmV0L3Rscy5oCisrKyBiL2luY2x1ZGUvbmV0L3Rscy5oCkBAIC0xMDIsNiArMTAyLDcgQEAgc3Ry dWN0IHRsc19jb250ZXh0IHsKIAlzdHJ1Y3Qgc2NhdHRlcmxpc3QgKnBhcnRpYWxseV9zZW50X3Jl Y29yZDsKIAl1MTYgcGFydGlhbGx5X3NlbnRfb2Zmc2V0OwogCXVuc2lnbmVkIGxvbmcgZmxhZ3M7 CisJYm9vbCBpbl90Y3Bfc2VuZHBhZ2VzOwogCiAJdTE2IHBlbmRpbmdfb3Blbl9yZWNvcmRfZnJh Z3M7CiAJaW50ICgqcHVzaF9wZW5kaW5nX3JlY29yZCkoc3RydWN0IHNvY2sgKnNrLCBpbnQgZmxh Z3MpOwpkaWZmIC0tZ2l0IGEvbmV0L3Rscy90bHNfbWFpbi5jIGIvbmV0L3Rscy90bHNfbWFpbi5j CmluZGV4IGQ4MjRkNTQ4NDQ3ZS4uNmY0M2JhNWM2NDdkIDEwMDY0NAotLS0gYS9uZXQvdGxzL3Rs c19tYWluLmMKKysrIGIvbmV0L3Rscy90bHNfbWFpbi5jCkBAIC0xMDcsNiArMTA3LDcgQEAgaW50 IHRsc19wdXNoX3NnKHN0cnVjdCBzb2NrICpzaywKIAlzaXplID0gc2ctPmxlbmd0aCAtIG9mZnNl dDsKIAlvZmZzZXQgKz0gc2ctPm9mZnNldDsKIAorCWN0eC0+aW5fdGNwX3NlbmRwYWdlcyA9IHRy dWU7CiAJd2hpbGUgKDEpIHsKIAkJaWYgKHNnX2lzX2xhc3Qoc2cpKQogCQkJc2VuZHBhZ2VfZmxh Z3MgPSBmbGFnczsKQEAgLTE0MSw2ICsxNDIsOCBAQCBpbnQgdGxzX3B1c2hfc2coc3RydWN0IHNv Y2sgKnNrLAogCX0KIAogCWNsZWFyX2JpdChUTFNfUEVORElOR19DTE9TRURfUkVDT1JELCAmY3R4 LT5mbGFncyk7CisJY3R4LT5pbl90Y3Bfc2VuZHBhZ2VzID0gZmFsc2U7CisJY3R4LT5za193cml0 ZV9zcGFjZShzayk7CiAKIAlyZXR1cm4gMDsKIH0KQEAgLTIxMCw2ICsyMTMsMTAgQEAgc3RhdGlj IHZvaWQgdGxzX3dyaXRlX3NwYWNlKHN0cnVjdCBzb2NrICpzaykKIHsKIAlzdHJ1Y3QgdGxzX2Nv bnRleHQgKmN0eCA9IHRsc19nZXRfY3R4KHNrKTsKIAorCS8qIFdlIGFyZSBhbHJlYWR5IHNlbmRp bmcgcGFnZXMsIGlnbm9yZSBub3RpZmljYXRpb24gKi8KKwlpZiAoY3R4LT5pbl90Y3Bfc2VuZHBh Z2VzKQorCQlyZXR1cm47CisKIAlpZiAoIXNrLT5za193cml0ZV9wZW5kaW5nICYmIHRsc19pc19w ZW5kaW5nX2Nsb3NlZF9yZWNvcmQoY3R4KSkgewogCQlnZnBfdCBza19hbGxvY2F0aW9uID0gc2st PnNrX2FsbG9jYXRpb247CiAJCWludCByYzsKLS0gCjIuMTQuMwoKCkZyb20gYmQ3MzAzMmYyNzEw ZDY2ZmYzZGRkODk5YjI2OTI1Y2RhNjAxMTNiNCBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJv bTogQW5kcmUgVG9tdCA8YW5kcmVAdG9tdC5uZXQ+CkRhdGU6IE1vbiwgNyBNYXkgMjAxOCAwNDoy NDozOSArMDIwMApTdWJqZWN0OiBbUEFUQ0ggMjAvNTVdIG5ldC90bHM6IEZpeCBjb25uZWN0aW9u IHN0YWxsIG9uIHBhcnRpYWwgdGxzIHJlY29yZAoKWyBVcHN0cmVhbSBjb21taXQgMDgwMzI0YzM2 YWRlMzE5ZjU3ZTUwNTYzM2FiNTRmNmY1MzI4OWI0NSBdCgpJbiB0aGUgY2FzZSBvZiB3cml0aW5n IGEgcGFydGlhbCB0bHMgcmVjb3JkIHdlIGZvcmdvdCB0byBjbGVhciB0aGUKY3R4LT5pbl90Y3Bf c2VuZHBhZ2VzIGZsYWcsIGNhdXNpbmcgc29tZSBjb25uZWN0aW9ucyB0byBzdGFsbC4KCkZpeGVz OiBjMjEyZDJjN2ZjNDcgKCJuZXQvdGxzOiBEb24ndCByZWN1cnNpdmVseSBjYWxsIHB1c2hfcmVj b3JkIGR1cmluZyB0bHNfd3JpdGVfc3BhY2UgY2FsbGJhY2tzIikKU2lnbmVkLW9mZi1ieTogQW5k cmUgVG9tdCA8YW5kcmVAdG9tdC5uZXQ+ClNpZ25lZC1vZmYtYnk6IERhdmlkIFMuIE1pbGxlciA8 ZGF2ZW1AZGF2ZW1sb2Z0Lm5ldD4KLS0tCiBuZXQvdGxzL3Rsc19tYWluLmMgfCAxICsKIDEgZmls ZSBjaGFuZ2VkLCAxIGluc2VydGlvbigrKQoKZGlmZiAtLWdpdCBhL25ldC90bHMvdGxzX21haW4u YyBiL25ldC90bHMvdGxzX21haW4uYwppbmRleCA2ZjQzYmE1YzY0N2QuLmI1MTE4MGMxNDc5YSAx MDA2NDQKLS0tIGEvbmV0L3Rscy90bHNfbWFpbi5jCisrKyBiL25ldC90bHMvdGxzX21haW4uYwpA QCAtMTI4LDYgKzEyOCw3IEBAIGludCB0bHNfcHVzaF9zZyhzdHJ1Y3Qgc29jayAqc2ssCiAJCQlv ZmZzZXQgLT0gc2ctPm9mZnNldDsKIAkJCWN0eC0+cGFydGlhbGx5X3NlbnRfb2Zmc2V0ID0gb2Zm c2V0OwogCQkJY3R4LT5wYXJ0aWFsbHlfc2VudF9yZWNvcmQgPSAodm9pZCAqKXNnOworCQkJY3R4 LT5pbl90Y3Bfc2VuZHBhZ2VzID0gZmFsc2U7CiAJCQlyZXR1cm4gcmV0OwogCQl9CiAKLS0gCjIu MTQuMwoKCkZyb20gNDMxYzgwYjE5OTE0NmFmMDIxNDlkNjRlYTkxNGUxYzc0YTliNDM1OCBNb24g U2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJvbTogU3RlZmFubyBCcml2aW8gPHNicml2aW9AcmVkaGF0 LmNvbT4KRGF0ZTogVGh1LCAzIE1heSAyMDE4IDE4OjEzOjI1ICswMjAwClN1YmplY3Q6IFtQQVRD SCAyMS81NV0gb3BlbnZzd2l0Y2g6IERvbid0IHN3YXAgdGFibGUgaW4gbmxhdHRyX3NldCgpIGFm dGVyCiBPVlNfQVRUUl9ORVNURUQgaXMgZm91bmQKClsgVXBzdHJlYW0gY29tbWl0IDcyZjE3YmFm MjM1MmRlZDZhMWQzZjRiYjJkMTVkYThjNjc4Y2QyY2IgXQoKSWYgYW4gT1ZTX0FUVFJfTkVTVEVE IGF0dHJpYnV0ZSB0eXBlIGlzIGZvdW5kIHdoaWxlIHdhbGtpbmcKdGhyb3VnaCBuZXRsaW5rIGF0 dHJpYnV0ZXMsIHdlIGNhbGwgbmxhdHRyX3NldCgpIHJlY3Vyc2l2ZWx5CnBhc3NpbmcgdGhlIGxl bmd0aCB0YWJsZSBmb3IgdGhlIGZvbGxvd2luZyBuZXN0ZWQgYXR0cmlidXRlcywgaWYKZGlmZmVy ZW50IGZyb20gdGhlIGN1cnJlbnQgb25lLgoKSG93ZXZlciwgb25jZSB3ZSdyZSBkb25lIHdpdGgg dGhvc2Ugc3ViLW5lc3RlZCBhdHRyaWJ1dGVzLCB3ZQpzaG91bGQgY29udGludWUgd2Fsa2luZyB0 aHJvdWdoIGF0dHJpYnV0ZXMgdXNpbmcgdGhlIGN1cnJlbnQKdGFibGUsIGluc3RlYWQgb2YgdXNp bmcgdGhlIG9uZSByZWxhdGVkIHRvIHRoZSBzdWItbmVzdGVkCmF0dHJpYnV0ZXMuCgpGb3IgZXhh bXBsZSwgZ2l2ZW4gdGhpcyBzZXF1ZW5jZToKCjEgIE9WU19LRVlfQVRUUl9QUklPUklUWQoyICBP VlNfS0VZX0FUVFJfVFVOTkVMCjMJT1ZTX1RVTk5FTF9LRVlfQVRUUl9JRAo0CU9WU19UVU5ORUxf S0VZX0FUVFJfSVBWNF9TUkMKNQlPVlNfVFVOTkVMX0tFWV9BVFRSX0lQVjRfRFNUCjYJT1ZTX1RV Tk5FTF9LRVlfQVRUUl9UVEwKNwlPVlNfVFVOTkVMX0tFWV9BVFRSX1RQX1NSQwo4CU9WU19UVU5O RUxfS0VZX0FUVFJfVFBfRFNUCjkgIE9WU19LRVlfQVRUUl9JTl9QT1JUCjEwIE9WU19LRVlfQVRU Ul9TS0JfTUFSSwoxMSBPVlNfS0VZX0FUVFJfTVBMUwoKd2Ugc3dpdGNoIHRvIHRoZSAnb3ZzX3R1 bm5lbF9rZXlfbGVucycgdGFibGUgb24gYXR0cmlidXRlICMzLAphbmQgd2UgZG9uJ3Qgc3dpdGNo IGJhY2sgdG8gJ292c19rZXlfbGVucycgd2hpbGUgc2V0dGluZwphdHRyaWJ1dGVzICM5IHRvICMx MSBpbiB0aGUgc2VxdWVuY2UuIEFzIE9WU19LRVlfQVRUUl9NUExTCmV2YWx1YXRlcyB0byAyMSwg YW5kIHRoZSBhcnJheSBzaXplIG9mICdvdnNfdHVubmVsX2tleV9sZW5zJyBpcwoxNSwgd2UgYWxz byBnZXQgdGhpcyBraW5kIG9mIEtBU2FuIHNwbGF0IHdoaWxlIGFjY2Vzc2luZyB0aGUKd3Jvbmcg dGFibGU6CgpbIDc2NTQuNTg2NDk2XSA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KWyA3NjU0LjU5NDU3M10gQlVHOiBLQVNB TjogZ2xvYmFsLW91dC1vZi1ib3VuZHMgaW4gbmxhdHRyX3NldCsweDE2NC8weGRlOSBbb3BlbnZz d2l0Y2hdClsgNzY1NC42MDMyMTRdIFJlYWQgb2Ygc2l6ZSA0IGF0IGFkZHIgZmZmZmZmZmZjMTY5 ZWNmMCBieSB0YXNrIGhhbmRsZXIyOS84NzQzMApbIDc2NTQuNjEwOTgzXQpbIDc2NTQuNjEyNjQ0 XSBDUFU6IDIxIFBJRDogODc0MzAgQ29tbTogaGFuZGxlcjI5IEtkdW1wOiBsb2FkZWQgTm90IHRh aW50ZWQgMy4xMC4wLTg2Ni5lbDcudGVzdC54ODZfNjQgIzEKWyA3NjU0LjYyMzAzMF0gSGFyZHdh cmUgbmFtZTogRGVsbCBJbmMuIFBvd2VyRWRnZSBSNzMwLzA3MlQ2RCwgQklPUyAyLjEuNyAwNi8x Ni8yMDE2ClsgNzY1NC42MzEzNzldIENhbGwgVHJhY2U6ClsgNzY1NC42MzQxMDhdICBbPGZmZmZm ZmZmYjY1YTdjNTA+XSBkdW1wX3N0YWNrKzB4MTkvMHgxYgpbIDc2NTQuNjM5ODQzXSAgWzxmZmZm ZmZmZmI1M2ZmMzczPl0gcHJpbnRfYWRkcmVzc19kZXNjcmlwdGlvbisweDMzLzB4MjkwClsgNzY1 NC42NDcxMjldICBbPGZmZmZmZmZmYzE2OWIzN2I+XSA/IG5sYXR0cl9zZXQrMHgxNjQvMHhkZTkg W29wZW52c3dpdGNoXQpbIDc2NTQuNjU0NjA3XSAgWzxmZmZmZmZmZmI1M2ZmODEyPl0ga2FzYW5f cmVwb3J0LnBhcnQuMysweDI0Mi8weDMzMApbIDc2NTQuNjYxNDA2XSAgWzxmZmZmZmZmZmI1M2Zm OWI0Pl0gX19hc2FuX3JlcG9ydF9sb2FkNF9ub2Fib3J0KzB4MzQvMHg0MApbIDc2NTQuNjY4Nzg5 XSAgWzxmZmZmZmZmZmMxNjliMzdiPl0gbmxhdHRyX3NldCsweDE2NC8weGRlOSBbb3BlbnZzd2l0 Y2hdClsgNzY1NC42NzYwNzZdICBbPGZmZmZmZmZmYzE2N2VmNjg+XSBvdnNfbmxhX2dldF9tYXRj aCsweDEwYzgvMHgxOTAwIFtvcGVudnN3aXRjaF0KWyA3NjU0LjY4NDIzNF0gIFs8ZmZmZmZmZmZi NjFlOWNjOD5dID8gZ2VubF9yY3YrMHgyOC8weDQwClsgNzY1NC42ODk5NjhdICBbPGZmZmZmZmZm YjYxZTc3MzM+XSA/IG5ldGxpbmtfdW5pY2FzdCsweDNmMy8weDU5MApbIDc2NTQuNjk2NTc0XSAg WzxmZmZmZmZmZmMxNjdkZWEwPl0gPyBvdnNfbmxhX3B1dF90dW5uZWxfaW5mbysweGIwLzB4YjAg W29wZW52c3dpdGNoXQpbIDc2NTQuNzA1MTIyXSAgWzxmZmZmZmZmZmI0ZjQxYjUwPl0gPyB1bndp bmRfZ2V0X3JldHVybl9hZGRyZXNzKzB4YjAvMHhiMApbIDc2NTQuNzEyNTAzXSAgWzxmZmZmZmZm ZmI2NWQ5MzU1Pl0gPyBzeXN0ZW1fY2FsbF9mYXN0cGF0aCsweDFjLzB4MjEKWyA3NjU0LjcxOTQw MV0gIFs8ZmZmZmZmZmZiNGY0MWQ3OT5dID8gdXBkYXRlX3N0YWNrX3N0YXRlKzB4MjI5LzB4Mzcw ClsgNzY1NC43MjYyOThdICBbPGZmZmZmZmZmYjRmNDFkNzk+XSA/IHVwZGF0ZV9zdGFja19zdGF0 ZSsweDIyOS8weDM3MApbIDc2NTQuNzMzMTk1XSAgWzxmZmZmZmZmZmI1M2ZlNGI1Pl0gPyBrYXNh bl91bnBvaXNvbl9zaGFkb3crMHgzNS8weDUwClsgNzY1NC43NDAxODddICBbPGZmZmZmZmZmYjUz ZmU2MmE+XSA/IGthc2FuX2ttYWxsb2MrMHhhYS8weGUwClsgNzY1NC43NDY0MDZdICBbPGZmZmZm ZmZmYjUzZmVjMzI+XSA/IGthc2FuX3NsYWJfYWxsb2MrMHgxMi8weDIwClsgNzY1NC43NTI5MTRd ICBbPGZmZmZmZmZmYjUzZmU3MTE+XSA/IG1lbXNldCsweDMxLzB4NDAKWyA3NjU0Ljc1ODQ1Nl0g IFs8ZmZmZmZmZmZjMTY1YmY5Mj5dIG92c19mbG93X2NtZF9uZXcrMHgyYjIvMHhmMDAgW29wZW52 c3dpdGNoXQoKW3NuaXBdCgpbIDc2NTUuMTMyNDg0XSBUaGUgYnVnZ3kgYWRkcmVzcyBiZWxvbmdz IHRvIHRoZSB2YXJpYWJsZToKWyA3NjU1LjEzODIyNl0gIG92c190dW5uZWxfa2V5X2xlbnMrMHhm MC8weGZmZmZmZmZmZmZmZmQ0MDAgW29wZW52c3dpdGNoXQpbIDc2NTUuMTQ1NTA3XQpbIDc2NTUu MTQ3MTY2XSBNZW1vcnkgc3RhdGUgYXJvdW5kIHRoZSBidWdneSBhZGRyZXNzOgpbIDc2NTUuMTUy NTE0XSAgZmZmZmZmZmZjMTY5ZWI4MDogMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgZmEg ZmEgZmEgZmEgZmEgZmEKWyA3NjU1LjE2MDU4NV0gIGZmZmZmZmZmYzE2OWVjMDA6IDAwIDAwIDAw IDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwClsgNzY1NS4xNjg2NDRdID5m ZmZmZmZmZmMxNjllYzgwOiAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAw MCBmYSBmYQpbIDc2NTUuMTc2NzAxXSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgXgpbIDc2NTUuMTg0MzcyXSAgZmZmZmZmZmZjMTY5 ZWQwMDogZmEgZmEgZmEgZmEgMDAgMDAgMDAgMDAgZmEgZmEgZmEgZmEgMDAgMDAgMDAgMDUKWyA3 NjU1LjE5MjQzMV0gIGZmZmZmZmZmYzE2OWVkODA6IGZhIGZhIGZhIGZhIDAwIDAwIDAwIDAwIDAw IDAwIDAwIDAwIDAwIDAwIDAwIDAwClsgNzY1NS4yMDA0OTBdID09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQoKUmVwb3J0ZWQt Ynk6IEhhbmdiaW4gTGl1IDxsaXVoYW5nYmluQGdtYWlsLmNvbT4KRml4ZXM6IDk4MmI1MjcwMDQ4 MiAoIm9wZW52c3dpdGNoOiBGaXggbWFzayBnZW5lcmF0aW9uIGZvciBuZXN0ZWQgYXR0cmlidXRl cy4iKQpTaWduZWQtb2ZmLWJ5OiBTdGVmYW5vIEJyaXZpbyA8c2JyaXZpb0ByZWRoYXQuY29tPgpS ZXZpZXdlZC1ieTogU2FicmluYSBEdWJyb2NhIDxzZEBxdWVhc3lzbmFpbC5uZXQ+ClNpZ25lZC1v ZmYtYnk6IERhdmlkIFMuIE1pbGxlciA8ZGF2ZW1AZGF2ZW1sb2Z0Lm5ldD4KLS0tCiBuZXQvb3Bl bnZzd2l0Y2gvZmxvd19uZXRsaW5rLmMgfCA5ICsrKy0tLS0tLQogMSBmaWxlIGNoYW5nZWQsIDMg aW5zZXJ0aW9ucygrKSwgNiBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9uZXQvb3BlbnZzd2l0 Y2gvZmxvd19uZXRsaW5rLmMgYi9uZXQvb3BlbnZzd2l0Y2gvZmxvd19uZXRsaW5rLmMKaW5kZXgg NzMyMmFhMWUzODJlLi40OTJhYjBjMzZmN2MgMTAwNjQ0Ci0tLSBhL25ldC9vcGVudnN3aXRjaC9m bG93X25ldGxpbmsuYworKysgYi9uZXQvb3BlbnZzd2l0Y2gvZmxvd19uZXRsaW5rLmMKQEAgLTE3 MTIsMTMgKzE3MTIsMTAgQEAgc3RhdGljIHZvaWQgbmxhdHRyX3NldChzdHJ1Y3QgbmxhdHRyICph dHRyLCB1OCB2YWwsCiAKIAkvKiBUaGUgbmxhdHRyIHN0cmVhbSBzaG91bGQgYWxyZWFkeSBoYXZl IGJlZW4gdmFsaWRhdGVkICovCiAJbmxhX2Zvcl9lYWNoX25lc3RlZChubGEsIGF0dHIsIHJlbSkg ewotCQlpZiAodGJsW25sYV90eXBlKG5sYSldLmxlbiA9PSBPVlNfQVRUUl9ORVNURUQpIHsKLQkJ CWlmICh0YmxbbmxhX3R5cGUobmxhKV0ubmV4dCkKLQkJCQl0YmwgPSB0YmxbbmxhX3R5cGUobmxh KV0ubmV4dDsKLQkJCW5sYXR0cl9zZXQobmxhLCB2YWwsIHRibCk7Ci0JCX0gZWxzZSB7CisJCWlm ICh0YmxbbmxhX3R5cGUobmxhKV0ubGVuID09IE9WU19BVFRSX05FU1RFRCkKKwkJCW5sYXR0cl9z ZXQobmxhLCB2YWwsIHRibFtubGFfdHlwZShubGEpXS5uZXh0ID8gOiB0YmwpOworCQllbHNlCiAJ CQltZW1zZXQobmxhX2RhdGEobmxhKSwgdmFsLCBubGFfbGVuKG5sYSkpOwotCQl9CiAKIAkJaWYg KG5sYV90eXBlKG5sYSkgPT0gT1ZTX0tFWV9BVFRSX0NUX1NUQVRFKQogCQkJKih1MzIgKilubGFf ZGF0YShubGEpICY9IENUX1NVUFBPUlRFRF9NQVNLOwotLSAKMi4xNC4zCgoKRnJvbSAzZjY5OGJi Mzg1MmMzNjFlMzNjMGQ1MmZlMjU4NjZiNzI1MTY3ZWE2IE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAw MQpGcm9tOiA9P1VURi04P3E/Qmo9QzM9Qjhybj0yME1vcms/PSA8Ympvcm5AbW9yay5ubz4KRGF0 ZTogV2VkLCAyIE1heSAyMDE4IDIyOjIyOjU0ICswMjAwClN1YmplY3Q6IFtQQVRDSCAyMi81NV0g cW1pX3d3YW46IGRvIG5vdCBzdGVhbCBpbnRlcmZhY2VzIGZyb20gY2xhc3MgZHJpdmVycwpNSU1F LVZlcnNpb246IDEuMApDb250ZW50LVR5cGU6IHRleHQvcGxhaW47IGNoYXJzZXQ9VVRGLTgKQ29u dGVudC1UcmFuc2Zlci1FbmNvZGluZzogOGJpdAoKWyBVcHN0cmVhbSBjb21taXQgNTY5N2RiNGE2 OTZjNDE2MDFhMWQxNWMxOTIyMTUwYjRkYmY1NzI2YyBdCgpUaGUgVVNCX0RFVklDRV9JTlRFUkZB Q0VfTlVNQkVSIG1hdGNoaW5nIG1hY3JvIGFzc3VtZXMgdGhhdAp0aGUgeyB2ZW5kb3JpZCwgcHJv ZHVjdGlkLCBpbnRlcmZhY2VudW1iZXIgfSBzZXQgdW5pcXVlbHkKaWRlbnRpZmllcyBvbmUgc3Bl Y2lmaWMgZnVuY3Rpb24uICBUaGlzIGhhcyBwcm92ZW4gdG8gZmFpbApmb3Igc29tZSBjb25maWd1 cmFibGUgZGV2aWNlcy4gT25lIGV4YW1wbGUgaXMgdGhlIFF1ZWN0ZWwKRU0wNi9FUDA2IHdoZXJl IHRoZSBzYW1lIGludGVyZmFjZSBudW1iZXIgY2FuIGJlIGVpdGhlcgpRTUkgb3IgTUJJTSwgd2l0 aG91dCB0aGUgZGV2aWNlIElEIGNoYW5naW5nIGVpdGhlci4KCkZpeCBieSByZXF1aXJpbmcgdGhl IHZlbmRvci1zcGVjaWZpYyBjbGFzcyBmb3IgaW50ZXJmYWNlIG51bWJlcgpiYXNlZCBtYXRjaGlu Zy4gIEZ1bmN0aW9ucyBvZiBvdGhlciBjbGFzc2VzIGNhbiBhbmQgc2hvdWxkIHVzZQpjbGFzcyBi YXNlZCBtYXRjaGluZyBpbnN0ZWFkLgoKRml4ZXM6IDAzMzA0YmNiNWVjNCAoIm5ldDogcW1pX3d3 YW46IHVzZSBmaXhlZCBpbnRlcmZhY2UgbnVtYmVyIG1hdGNoaW5nIikKU2lnbmVkLW9mZi1ieTog QmrDuHJuIE1vcmsgPGJqb3JuQG1vcmsubm8+ClNpZ25lZC1vZmYtYnk6IERhdmlkIFMuIE1pbGxl ciA8ZGF2ZW1AZGF2ZW1sb2Z0Lm5ldD4KLS0tCiBkcml2ZXJzL25ldC91c2IvcW1pX3d3YW4uYyB8 IDEyICsrKysrKysrKysrKwogMSBmaWxlIGNoYW5nZWQsIDEyIGluc2VydGlvbnMoKykKCmRpZmYg LS1naXQgYS9kcml2ZXJzL25ldC91c2IvcW1pX3d3YW4uYyBiL2RyaXZlcnMvbmV0L3VzYi9xbWlf d3dhbi5jCmluZGV4IDUxYzY4ZmM0MTZmYS4uNDI1NjVkZDMzYWE2IDEwMDY0NAotLS0gYS9kcml2 ZXJzL25ldC91c2IvcW1pX3d3YW4uYworKysgYi9kcml2ZXJzL25ldC91c2IvcW1pX3d3YW4uYwpA QCAtMTM0NCw2ICsxMzQ0LDE4IEBAIHN0YXRpYyBpbnQgcW1pX3d3YW5fcHJvYmUoc3RydWN0IHVz Yl9pbnRlcmZhY2UgKmludGYsCiAJCWlkLT5kcml2ZXJfaW5mbyA9ICh1bnNpZ25lZCBsb25nKSZx bWlfd3dhbl9pbmZvOwogCX0KIAorCS8qIFRoZXJlIGFyZSBkZXZpY2VzIHdoZXJlIHRoZSBzYW1l IGludGVyZmFjZSBudW1iZXIgY2FuIGJlCisJICogY29uZmlndXJlZCBhcyBkaWZmZXJlbnQgZnVu Y3Rpb25zLiBXZSBzaG91bGQgb25seSBiaW5kIHRvCisJICogdmVuZG9yIHNwZWNpZmljIGZ1bmN0 aW9ucyB3aGVuIG1hdGNoaW5nIG9uIGludGVyZmFjZSBudW1iZXIKKwkgKi8KKwlpZiAoaWQtPm1h dGNoX2ZsYWdzICYgVVNCX0RFVklDRV9JRF9NQVRDSF9JTlRfTlVNQkVSICYmCisJICAgIGRlc2Mt PmJJbnRlcmZhY2VDbGFzcyAhPSBVU0JfQ0xBU1NfVkVORE9SX1NQRUMpIHsKKwkJZGV2X2RiZygm aW50Zi0+ZGV2LAorCQkJIlJlamVjdGluZyBpbnRlcmZhY2UgbnVtYmVyIG1hdGNoIGZvciBjbGFz cyAlMDJ4XG4iLAorCQkJZGVzYy0+YkludGVyZmFjZUNsYXNzKTsKKwkJcmV0dXJuIC1FTk9ERVY7 CisJfQorCiAJLyogUXVlY3RlbCBFQzIwIHF1aXJrIHdoZXJlIHdlJ3ZlIFFNSSBvbiBpbnRlcmZh Y2UgNCBpbnN0ZWFkIG9mIDAgKi8KIAlpZiAocXVlY3RlbF9lYzIwX2RldGVjdGVkKGludGYpICYm IGRlc2MtPmJJbnRlcmZhY2VOdW1iZXIgPT0gMCkgewogCQlkZXZfZGJnKCZpbnRmLT5kZXYsICJR dWVjdGVsIEVDMjAgcXVpcmssIHNraXBwaW5nIGludGVyZmFjZSAwXG4iKTsKLS0gCjIuMTQuMwoK CkZyb20gNWU0MGYzMTAxOTY1Y2JiNzY3NDQxM2FiYWY5NTk3Nzg4ZGZiZDIxMCBNb24gU2VwIDE3 IDAwOjAwOjAwIDIwMDEKRnJvbTogSGVpbmVyIEthbGx3ZWl0IDxoa2FsbHdlaXQxQGdtYWlsLmNv bT4KRGF0ZTogTW9uLCA3IE1heSAyMDE4IDIxOjExOjIxICswMjAwClN1YmplY3Q6IFtQQVRDSCAy My81NV0gcjgxNjk6IGZpeCBwb3dlcmluZyB1cCBSVEw4MTY4aAoKWyBVcHN0cmVhbSBjb21taXQg MzE0OGRlZGZlNzllNDIyZjQ0OGExMDI1MGQzZTJjZGY4YjdlZTYxNyBdCgpTaW5jZSBjb21taXQg YTkyYTA4NDk5YjFmICJyODE2OTogaW1wcm92ZSBydW50aW1lIHBtIGluIGdlbmVyYWwgYW5kCnN1 c3BlbmQgdW51c2VkIHBvcnRzIiBpbnRlcmZhY2VzIHcvbyBsaW5rIGFyZSBydW50aW1lLXN1c3Bl bmRlZCBhZnRlcgoxMHMuIE9uIHN5c3RlbXMgd2hlcmUgZHJpdmVycyB0YWtlIGxvbmdlciB0byBs b2FkIHRoaXMgY2FuIGxlYWQgdG8gdGhlCnNpdHVhdGlvbiB0aGF0IHRoZSBpbnRlcmZhY2UgaXMg cnVudGltZS1zdXNwZW5kZWQgYWxyZWFkeSB3aGVuIGl0J3MKaW5pdGlhbGx5IGJyb3VnaHQgdXAu ClRoaXMgc2hvdWxkbid0IGJlIGEgcHJvYmxlbSBiZWNhdXNlIHJ0bF9vcGVuKCkgcmVzdW1lcyBN QUMvUEhZLgpIb3dldmVyIHdpdGggYXQgbGVhc3Qgb25lIGNoaXAgdmVyc2lvbiB0aGUgaW50ZXJm YWNlIGRvZXNuJ3QgcHJvcGVybHkKY29tZSB1cCwgYXMgcmVwb3J0ZWQgaGVyZToKaHR0cHM6Ly9i dWd6aWxsYS5rZXJuZWwub3JnL3Nob3dfYnVnLmNnaT9pZD0xOTk1NDkKClRoZSB2ZW5kb3IgZHJp dmVyIHVzZXMgYSBkZWxheSB0byBnaXZlIGNlcnRhaW4gY2hpcCB2ZXJzaW9ucyBzb21lCnRpbWUg dG8gcmVzdW1lIGJlZm9yZSBzdGFydGluZyB0aGUgUEhZIGNvbmZpZ3VyYXRpb24uIFNvIGxldCdz IGRvCnRoZSBzYW1lLiBJIGRvbid0IGtub3cgd2hpY2ggY2hpcCB2ZXJzaW9ucyBtYXkgYmUgYWZm ZWN0ZWQsCnRoZXJlZm9yZSBhcHBseSB0aGlzIGRlbGF5IGFsd2F5cy4KClRoaXMgcGF0Y2ggd2Fz IHJlcG9ydGVkIHRvIGZpeCB0aGUgaXNzdWUgZm9yIFJUTDgxNjhoLgpJIHdhcyBhYmxlIHRvIHJl cHJvZHVjZSB0aGUgaXNzdWUgb24gYW4gQXN1cyBIMzEwSS1QbHVzIHdoaWNoIGFsc28KdXNlcyBh IFJUTDgxNjhoLiBBbHNvIGluIG15IGNhc2UgdGhlIHBhdGNoIGZpeGVkIHRoZSBpc3N1ZS4KClJl cG9ydGVkLWJ5OiBTbGF2YSBLYXJkYWtvdiA8b2phYkBvamFiLnJ1PgpUZXN0ZWQtYnk6IFNsYXZh IEthcmRha292IDxvamFiQG9qYWIucnU+ClNpZ25lZC1vZmYtYnk6IEhlaW5lciBLYWxsd2VpdCA8 aGthbGx3ZWl0MUBnbWFpbC5jb20+ClNpZ25lZC1vZmYtYnk6IERhdmlkIFMuIE1pbGxlciA8ZGF2 ZW1AZGF2ZW1sb2Z0Lm5ldD4KLS0tCiBkcml2ZXJzL25ldC9ldGhlcm5ldC9yZWFsdGVrL3I4MTY5 LmMgfCAzICsrKwogMSBmaWxlIGNoYW5nZWQsIDMgaW5zZXJ0aW9ucygrKQoKZGlmZiAtLWdpdCBh L2RyaXZlcnMvbmV0L2V0aGVybmV0L3JlYWx0ZWsvcjgxNjkuYyBiL2RyaXZlcnMvbmV0L2V0aGVy bmV0L3JlYWx0ZWsvcjgxNjkuYwppbmRleCBiNDc3OWFjYjZiNWMuLjE4YmIxZTIyNmU2ZCAxMDA2 NDQKLS0tIGEvZHJpdmVycy9uZXQvZXRoZXJuZXQvcmVhbHRlay9yODE2OS5jCisrKyBiL2RyaXZl cnMvbmV0L2V0aGVybmV0L3JlYWx0ZWsvcjgxNjkuYwpAQCAtNTA4Nyw2ICs1MDg3LDkgQEAgc3Rh dGljIHZvaWQgcnRsX3BsbF9wb3dlcl9kb3duKHN0cnVjdCBydGw4MTY5X3ByaXZhdGUgKnRwKQog c3RhdGljIHZvaWQgcnRsX3BsbF9wb3dlcl91cChzdHJ1Y3QgcnRsODE2OV9wcml2YXRlICp0cCkK IHsKIAlydGxfZ2VuZXJpY19vcCh0cCwgdHAtPnBsbF9wb3dlcl9vcHMudXApOworCisJLyogZ2l2 ZSBNQUMvUEhZIHNvbWUgdGltZSB0byByZXN1bWUgKi8KKwltc2xlZXAoMjApOwogfQogCiBzdGF0 aWMgdm9pZCBydGxfaW5pdF9wbGxfcG93ZXJfb3BzKHN0cnVjdCBydGw4MTY5X3ByaXZhdGUgKnRw KQotLSAKMi4xNC4zCgoKRnJvbSBhMTBkNGMxZWMxOTBkNDIyNDZhZDc5MzY1MDA4YzY3Y2YzNjc4 ODRlIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBFcmljIER1bWF6ZXQgPGVkdW1hemV0 QGdvb2dsZS5jb20+CkRhdGU6IFdlZCwgMiBNYXkgMjAxOCAxNDo1MzozOSAtMDcwMApTdWJqZWN0 OiBbUEFUQ0ggMjQvNTVdIHJkczogZG8gbm90IGxlYWsga2VybmVsIG1lbW9yeSB0byB1c2VyIGxh bmQKClsgVXBzdHJlYW0gY29tbWl0IGViODBjYTQ3NmVjMTFmNjdhNjI2OTFhOTM2MDRiNDA1ZmZj N2Q4MGMgXQoKc3l6Ym90L0tNU0FOIHJlcG9ydGVkIGFuIHVuaW5pdC12YWx1ZSBpbiBwdXRfY21z ZygpLCBvcmlnaW5hdGluZwpmcm9tIHJkc19jbXNnX3JlY3YoKS4KClNpbXBseSBjbGVhciB0aGUg c3RydWN0dXJlLCBzaW5jZSB3ZSBoYXZlIGhvbGVzIHRoZXJlLCBvciBzaW5jZQpyeF90cmFjZXMg bWlnaHQgYmUgc21hbGxlciB0aGFuIFJEU19NU0dfUlhfREdSQU1fVFJBQ0VfTUFYLgoKQlVHOiBL TVNBTjogdW5pbml0LXZhbHVlIGluIGNvcHlfdG9fdXNlciBpbmNsdWRlL2xpbnV4L3VhY2Nlc3Mu aDoxODQgW2lubGluZV0KQlVHOiBLTVNBTjogdW5pbml0LXZhbHVlIGluIHB1dF9jbXNnKzB4NjAw LzB4ODcwIG5ldC9jb3JlL3NjbS5jOjI0MgpDUFU6IDAgUElEOiA0NDU5IENvbW06IHN5ei1leGVj dXRvcjU4MiBOb3QgdGFpbnRlZCA0LjE2LjArICM4NwpIYXJkd2FyZSBuYW1lOiBHb29nbGUgR29v Z2xlIENvbXB1dGUgRW5naW5lL0dvb2dsZSBDb21wdXRlIEVuZ2luZSwgQklPUyBHb29nbGUgMDEv MDEvMjAxMQpDYWxsIFRyYWNlOgogX19kdW1wX3N0YWNrIGxpYi9kdW1wX3N0YWNrLmM6MTcgW2lu bGluZV0KIGR1bXBfc3RhY2srMHgxODUvMHgxZDAgbGliL2R1bXBfc3RhY2suYzo1Mwoga21zYW5f cmVwb3J0KzB4MTQyLzB4MjQwIG1tL2ttc2FuL2ttc2FuLmM6MTA2Nwoga21zYW5faW50ZXJuYWxf Y2hlY2tfbWVtb3J5KzB4MTM1LzB4MWUwIG1tL2ttc2FuL2ttc2FuLmM6MTE1Nwoga21zYW5fY29w eV90b191c2VyKzB4NjkvMHgxNjAgbW0va21zYW4va21zYW4uYzoxMTk5CiBjb3B5X3RvX3VzZXIg aW5jbHVkZS9saW51eC91YWNjZXNzLmg6MTg0IFtpbmxpbmVdCiBwdXRfY21zZysweDYwMC8weDg3 MCBuZXQvY29yZS9zY20uYzoyNDIKIHJkc19jbXNnX3JlY3YgbmV0L3Jkcy9yZWN2LmM6NTcwIFtp bmxpbmVdCiByZHNfcmVjdm1zZysweDJkYjUvMHgzMTcwIG5ldC9yZHMvcmVjdi5jOjY1Nwogc29j a19yZWN2bXNnX25vc2VjIG5ldC9zb2NrZXQuYzo4MDMgW2lubGluZV0KIHNvY2tfcmVjdm1zZysw eDFkMC8weDIzMCBuZXQvc29ja2V0LmM6ODEwCiBfX19zeXNfcmVjdm1zZysweDNmYi8weDgxMCBu ZXQvc29ja2V0LmM6MjIwNQogX19zeXNfcmVjdm1zZyBuZXQvc29ja2V0LmM6MjI1MCBbaW5saW5l XQogU1lTQ19yZWN2bXNnKzB4Mjk4LzB4M2MwIG5ldC9zb2NrZXQuYzoyMjYyCiBTeVNfcmVjdm1z ZysweDU0LzB4ODAgbmV0L3NvY2tldC5jOjIyNTcKIGRvX3N5c2NhbGxfNjQrMHgzMDkvMHg0MzAg YXJjaC94ODYvZW50cnkvY29tbW9uLmM6Mjg3CiBlbnRyeV9TWVNDQUxMXzY0X2FmdGVyX2h3ZnJh bWUrMHgzZC8weGEyCgpGaXhlczogMzI4OTAyNWFlZGMwICgiUkRTOiBhZGQgcmVjZWl2ZSBtZXNz YWdlIHRyYWNlIHVzZWQgYnkgYXBwbGljYXRpb24iKQpTaWduZWQtb2ZmLWJ5OiBFcmljIER1bWF6 ZXQgPGVkdW1hemV0QGdvb2dsZS5jb20+ClJlcG9ydGVkLWJ5OiBzeXpib3QgPHN5emthbGxlckBn b29nbGVncm91cHMuY29tPgpDYzogU2FudG9zaCBTaGlsaW1rYXIgPHNhbnRvc2guc2hpbGlta2Fy QG9yYWNsZS5jb20+CkNjOiBsaW51eC1yZG1hIDxsaW51eC1yZG1hQHZnZXIua2VybmVsLm9yZz4K U2lnbmVkLW9mZi1ieTogRGF2aWQgUy4gTWlsbGVyIDxkYXZlbUBkYXZlbWxvZnQubmV0PgotLS0K IG5ldC9yZHMvcmVjdi5jIHwgMSArCiAxIGZpbGUgY2hhbmdlZCwgMSBpbnNlcnRpb24oKykKCmRp ZmYgLS1naXQgYS9uZXQvcmRzL3JlY3YuYyBiL25ldC9yZHMvcmVjdi5jCmluZGV4IGIyNWJjZmU0 MTFjYS4uNTU1ZjA3Y2NmMGRjIDEwMDY0NAotLS0gYS9uZXQvcmRzL3JlY3YuYworKysgYi9uZXQv cmRzL3JlY3YuYwpAQCAtNTU4LDYgKzU1OCw3IEBAIHN0YXRpYyBpbnQgcmRzX2Ntc2dfcmVjdihz dHJ1Y3QgcmRzX2luY29taW5nICppbmMsIHN0cnVjdCBtc2doZHIgKm1zZywKIAkJc3RydWN0IHJk c19jbXNnX3J4X3RyYWNlIHQ7CiAJCWludCBpLCBqOwogCisJCW1lbXNldCgmdCwgMCwgc2l6ZW9m KHQpKTsKIAkJaW5jLT5pX3J4X2xhdF90cmFjZVtSRFNfTVNHX1JYX0NNU0ddID0gbG9jYWxfY2xv Y2soKTsKIAkJdC5yeF90cmFjZXMgPSAgcnMtPnJzX3J4X3RyYWNlczsKIAkJZm9yIChpID0gMDsg aSA8IHJzLT5yc19yeF90cmFjZXM7IGkrKykgewotLSAKMi4xNC4zCgoKRnJvbSA0NjAyODg3NGM3 YWRjM2Y3MDkwNTViZjAxYjZlOTZjNDY0Y2E5ODdmIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpG cm9tOiBYaW4gTG9uZyA8bHVjaWVuLnhpbkBnbWFpbC5jb20+CkRhdGU6IFNhdCwgNSBNYXkgMjAx OCAxNDo1OTo0NyArMDgwMApTdWJqZWN0OiBbUEFUQ0ggMjUvNTVdIHNjdHA6IGRlbGF5IHRoZSBh dXRoZW50aWNhdGlvbiBmb3IgdGhlIGR1cGxpY2F0ZWQKIGNvb2tpZS1lY2hvIGNodW5rCgpbIFVw c3RyZWFtIGNvbW1pdCA1OWQ4ZDQ0MzRmNDI5YjRmYThhMzQ2ZmQ4ODkwNThiZGE0MjdhODM3IF0K Ck5vdyBzY3RwIG9ubHkgZGVsYXlzIHRoZSBhdXRoZW50aWNhdGlvbiBmb3IgdGhlIG5vcm1hbCBj b29raWUtZWNobwpjaHVuayBieSBzZXR0aW5nIGNodW5rLT5hdXRoX2NodW5rIGluIHNjdHBfZW5k cG9pbnRfYmhfcmN2KCkuIEJ1dApmb3IgdGhlIGR1cGxpY2F0ZWQgb25lIHdpdGggYXV0aCwgaW4g c2N0cF9hc3NvY19iaF9yY3YoKSwgaXQgZG9lcwphdXRoZW50aWNhdGlvbiBmaXJzdCBiYXNlZCBv biB0aGUgb2xkIGFzb2MsIHdoaWNoIHdpbGwgZGVmaW5pdGVseQpmYWlsIGR1ZSB0byB0aGUgZGlm ZmVyZW50IGF1dGggaW5mbyBpbiB0aGUgb2xkIGFzb2MuCgpUaGUgZHVwbGljYXRlZCBjb29raWUt ZWNobyBjaHVuayB3aWxsIGNyZWF0ZSBhIG5ldyBhc29jIHdpdGggdGhlCmF1dGggaW5mbyBmcm9t IHRoaXMgY2h1bmssIGFuZCB0aGUgYXV0aGVudGljYXRpb24gc2hvdWxkIGFsc28gYmUKZG9uZSB3 aXRoIHRoZSBuZXcgYXNvYydzIGF1dGggaW5mbyBmb3IgYWxsIG9mIHRoZSBjb2xsaXNpb24gJ0En LAonQicgYW5kICdEJy4gT3RoZXJ3aXNlLCB0aGUgZHVwbGljYXRlZCBjb29raWUtZWNobyBjaHVu ayB3aXRoIGF1dGgKd2lsbCBuZXZlciBwYXNzIHRoZSBhdXRoZW50aWNhdGlvbiBhbmQgY3JlYXRl IHRoZSBuZXcgY29ubmVjdGlvbi4KClRoaXMgaXNzdWUgZXhpc3RzIHNpbmNlIHZlcnkgYmVnaW5u aW5nLCBhbmQgdGhpcyBmaXggaXMgdG8gbWFrZQpzY3RwX2Fzc29jX2JoX3JjdigpIGZvbGxvdyB0 aGUgd2F5IHNjdHBfZW5kcG9pbnRfYmhfcmN2KCkgZG9lcwpmb3IgdGhlIG5vcm1hbCBjb29raWUt ZWNobyBjaHVuayB0byBkZWxheSB0aGUgYXV0aGVudGljYXRpb24uCgpXaGlsZSBhdCBpdCwgcmVt b3ZlIHRoZSB1bnVzZWQgcGFyYW1zIGZyb20gc2N0cF9zZl9hdXRoZW50aWNhdGUoKQphbmQgZGVm aW5lIHNjdHBfYXV0aF9jaHVua192ZXJpZnkoKSB1c2VkIGZvciBhbGwgdGhlIHBsYWNlcyB0aGF0 CmRvIHRoZSBkZWxheWVkIGF1dGhlbnRpY2F0aW9uLgoKdjEtPnYyOgogIGZpeCB0aGUgdHlwbyBp biBjaGFuZ2Vsb2cgYXMgTWFyY2VsbyBub3RpY2VkLgoKQWNrZWQtYnk6IE1hcmNlbG8gUmljYXJk byBMZWl0bmVyIDxtYXJjZWxvLmxlaXRuZXJAZ21haWwuY29tPgpTaWduZWQtb2ZmLWJ5OiBYaW4g TG9uZyA8bHVjaWVuLnhpbkBnbWFpbC5jb20+CkFja2VkLWJ5OiBOZWlsIEhvcm1hbiA8bmhvcm1h bkB0dXhkcml2ZXIuY29tPgpTaWduZWQtb2ZmLWJ5OiBEYXZpZCBTLiBNaWxsZXIgPGRhdmVtQGRh dmVtbG9mdC5uZXQ+Ci0tLQogbmV0L3NjdHAvYXNzb2Npb2xhLmMgICAgfCAzMCArKysrKysrKysr KysrKysrLQogbmV0L3NjdHAvc21fc3RhdGVmdW5zLmMgfCA4NiArKysrKysrKysrKysrKysrKysr KysrKysrKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAyIGZpbGVzIGNoYW5nZWQsIDc1IGluc2Vy dGlvbnMoKyksIDQxIGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL25ldC9zY3RwL2Fzc29jaW9s YS5jIGIvbmV0L3NjdHAvYXNzb2Npb2xhLmMKaW5kZXggODM3ODA2ZGQ1Nzk5Li5hNDcxNzlkYTI0 ZTYgMTAwNjQ0Ci0tLSBhL25ldC9zY3RwL2Fzc29jaW9sYS5jCisrKyBiL25ldC9zY3RwL2Fzc29j aW9sYS5jCkBAIC0xMDI0LDggKzEwMjQsOSBAQCBzdGF0aWMgdm9pZCBzY3RwX2Fzc29jX2JoX3Jj dihzdHJ1Y3Qgd29ya19zdHJ1Y3QgKndvcmspCiAJc3RydWN0IHNjdHBfZW5kcG9pbnQgKmVwOwog CXN0cnVjdCBzY3RwX2NodW5rICpjaHVuazsKIAlzdHJ1Y3Qgc2N0cF9pbnEgKmlucXVldWU7Ci0J aW50IHN0YXRlOworCWludCBmaXJzdF90aW1lID0gMTsJLyogaXMgdGhpcyB0aGUgZmlyc3QgdGlt ZSB0aHJvdWdoIHRoZSBsb29wICovCiAJaW50IGVycm9yID0gMDsKKwlpbnQgc3RhdGU7CiAKIAkv KiBUaGUgYXNzb2NpYXRpb24gc2hvdWxkIGJlIGhlbGQgc28gd2Ugc2hvdWxkIGJlIHNhZmUuICov CiAJZXAgPSBhc29jLT5lcDsKQEAgLTEwMzYsNiArMTAzNywzMCBAQCBzdGF0aWMgdm9pZCBzY3Rw X2Fzc29jX2JoX3JjdihzdHJ1Y3Qgd29ya19zdHJ1Y3QgKndvcmspCiAJCXN0YXRlID0gYXNvYy0+ c3RhdGU7CiAJCXN1YnR5cGUgPSBTQ1RQX1NUX0NIVU5LKGNodW5rLT5jaHVua19oZHItPnR5cGUp OwogCisJCS8qIElmIHRoZSBmaXJzdCBjaHVuayBpbiB0aGUgcGFja2V0IGlzIEFVVEgsIGRvIHNw ZWNpYWwKKwkJICogcHJvY2Vzc2luZyBzcGVjaWZpZWQgaW4gU2VjdGlvbiA2LjMgb2YgU0NUUC1B VVRIIHNwZWMKKwkJICovCisJCWlmIChmaXJzdF90aW1lICYmIHN1YnR5cGUuY2h1bmsgPT0gU0NU UF9DSURfQVVUSCkgeworCQkJc3RydWN0IHNjdHBfY2h1bmtoZHIgKm5leHRfaGRyOworCisJCQlu ZXh0X2hkciA9IHNjdHBfaW5xX3BlZWsoaW5xdWV1ZSk7CisJCQlpZiAoIW5leHRfaGRyKQorCQkJ CWdvdG8gbm9ybWFsOworCisJCQkvKiBJZiB0aGUgbmV4dCBjaHVuayBpcyBDT09LSUUtRUNITywg c2tpcCB0aGUgQVVUSAorCQkJICogY2h1bmsgd2hpbGUgc2F2aW5nIGEgcG9pbnRlciB0byBpdCBz byB3ZSBjYW4gZG8KKwkJCSAqIEF1dGhlbnRpY2F0aW9uIGxhdGVyIChkdXJpbmcgY29va2llLWVj aG8KKwkJCSAqIHByb2Nlc3NpbmcpLgorCQkJICovCisJCQlpZiAobmV4dF9oZHItPnR5cGUgPT0g U0NUUF9DSURfQ09PS0lFX0VDSE8pIHsKKwkJCQljaHVuay0+YXV0aF9jaHVuayA9IHNrYl9jbG9u ZShjaHVuay0+c2tiLAorCQkJCQkJCSAgICAgIEdGUF9BVE9NSUMpOworCQkJCWNodW5rLT5hdXRo ID0gMTsKKwkJCQljb250aW51ZTsKKwkJCX0KKwkJfQorCitub3JtYWw6CiAJCS8qIFNDVFAtQVVU SCwgU2VjdGlvbiA2LjM6CiAJCSAqICAgIFRoZSByZWNlaXZlciBoYXMgYSBsaXN0IG9mIGNodW5r IHR5cGVzIHdoaWNoIGl0IGV4cGVjdHMKIAkJICogICAgdG8gYmUgcmVjZWl2ZWQgb25seSBhZnRl ciBhbiBBVVRILWNodW5rLiAgVGhpcyBsaXN0IGhhcwpAQCAtMTA3NCw2ICsxMDk5LDkgQEAgc3Rh dGljIHZvaWQgc2N0cF9hc3NvY19iaF9yY3Yoc3RydWN0IHdvcmtfc3RydWN0ICp3b3JrKQogCQkv KiBJZiB0aGVyZSBpcyBhbiBlcnJvciBvbiBjaHVuaywgZGlzY2FyZCB0aGlzIHBhY2tldC4gKi8K IAkJaWYgKGVycm9yICYmIGNodW5rKQogCQkJY2h1bmstPnBkaXNjYXJkID0gMTsKKworCQlpZiAo Zmlyc3RfdGltZSkKKwkJCWZpcnN0X3RpbWUgPSAwOwogCX0KIAlzY3RwX2Fzc29jaWF0aW9uX3B1 dChhc29jKTsKIH0KZGlmZiAtLWdpdCBhL25ldC9zY3RwL3NtX3N0YXRlZnVucy5jIGIvbmV0L3Nj dHAvc21fc3RhdGVmdW5zLmMKaW5kZXggZWI3OTA1ZmZlNWYyLi5lOGM5Yzk0ZjVhMDUgMTAwNjQ0 Ci0tLSBhL25ldC9zY3RwL3NtX3N0YXRlZnVucy5jCisrKyBiL25ldC9zY3RwL3NtX3N0YXRlZnVu cy5jCkBAIC0xNTMsMTAgKzE1Myw3IEBAIHN0YXRpYyBlbnVtIHNjdHBfZGlzcG9zaXRpb24gc2N0 cF9zZl92aW9sYXRpb25fY2h1bmsoCiAJCQkJCXN0cnVjdCBzY3RwX2NtZF9zZXEgKmNvbW1hbmRz KTsKIAogc3RhdGljIGVudW0gc2N0cF9pZXJyb3Igc2N0cF9zZl9hdXRoZW50aWNhdGUoCi0JCQkJ CXN0cnVjdCBuZXQgKm5ldCwKLQkJCQkJY29uc3Qgc3RydWN0IHNjdHBfZW5kcG9pbnQgKmVwLAog CQkJCQljb25zdCBzdHJ1Y3Qgc2N0cF9hc3NvY2lhdGlvbiAqYXNvYywKLQkJCQkJY29uc3QgdW5p b24gc2N0cF9zdWJ0eXBlIHR5cGUsCiAJCQkJCXN0cnVjdCBzY3RwX2NodW5rICpjaHVuayk7CiAK IHN0YXRpYyBlbnVtIHNjdHBfZGlzcG9zaXRpb24gX19zY3RwX3NmX2RvXzlfMV9hYm9ydCgKQEAg LTYyMSw2ICs2MTgsMzggQEAgZW51bSBzY3RwX2Rpc3Bvc2l0aW9uIHNjdHBfc2ZfZG9fNV8xQ19h Y2soc3RydWN0IG5ldCAqbmV0LAogCXJldHVybiBTQ1RQX0RJU1BPU0lUSU9OX0NPTlNVTUU7CiB9 CiAKK3N0YXRpYyBib29sIHNjdHBfYXV0aF9jaHVua192ZXJpZnkoc3RydWN0IG5ldCAqbmV0LCBz dHJ1Y3Qgc2N0cF9jaHVuayAqY2h1bmssCisJCQkJICAgY29uc3Qgc3RydWN0IHNjdHBfYXNzb2Np YXRpb24gKmFzb2MpCit7CisJc3RydWN0IHNjdHBfY2h1bmsgYXV0aDsKKworCWlmICghY2h1bmst PmF1dGhfY2h1bmspCisJCXJldHVybiB0cnVlOworCisJLyogU0NUUC1BVVRIOiAgYXV0aF9jaHVu ayBwb2ludGVyIGlzIG9ubHkgc2V0IHdoZW4gdGhlIGNvb2tpZS1lY2hvCisJICogaXMgc3VwcG9z ZWQgdG8gYmUgYXV0aGVudGljYXRlZCBhbmQgd2UgaGF2ZSB0byBkbyBkZWxheWVkCisJICogYXV0 aGVudGljYXRpb24uICBXZSd2ZSBqdXN0IHJlY3JlYXRlZCB0aGUgYXNzb2NpYXRpb24gdXNpbmcK KwkgKiB0aGUgaW5mb3JtYXRpb24gaW4gdGhlIGNvb2tpZSBhbmQgbm93IGl0J3MgbXVjaCBlYXNp ZXIgdG8KKwkgKiBkbyB0aGUgYXV0aGVudGljYXRpb24uCisJICovCisKKwkvKiBNYWtlIHN1cmUg dGhhdCB3ZSBhbmQgdGhlIHBlZXIgYXJlIEFVVEggY2FwYWJsZSAqLworCWlmICghbmV0LT5zY3Rw LmF1dGhfZW5hYmxlIHx8ICFhc29jLT5wZWVyLmF1dGhfY2FwYWJsZSkKKwkJcmV0dXJuIGZhbHNl OworCisJLyogc2V0LXVwIG91ciBmYWtlIGNodW5rIHNvIHRoYXQgd2UgY2FuIHByb2Nlc3MgaXQg Ki8KKwlhdXRoLnNrYiA9IGNodW5rLT5hdXRoX2NodW5rOworCWF1dGguYXNvYyA9IGNodW5rLT5h c29jOworCWF1dGguc2N0cF9oZHIgPSBjaHVuay0+c2N0cF9oZHI7CisJYXV0aC5jaHVua19oZHIg PSAoc3RydWN0IHNjdHBfY2h1bmtoZHIgKikKKwkJCQlza2JfcHVzaChjaHVuay0+YXV0aF9jaHVu aywKKwkJCQkJIHNpemVvZihzdHJ1Y3Qgc2N0cF9jaHVua2hkcikpOworCXNrYl9wdWxsKGNodW5r LT5hdXRoX2NodW5rLCBzaXplb2Yoc3RydWN0IHNjdHBfY2h1bmtoZHIpKTsKKwlhdXRoLnRyYW5z cG9ydCA9IGNodW5rLT50cmFuc3BvcnQ7CisKKwlyZXR1cm4gc2N0cF9zZl9hdXRoZW50aWNhdGUo YXNvYywgJmF1dGgpID09IFNDVFBfSUVSUk9SX05PX0VSUk9SOworfQorCiAvKgogICogUmVzcG9u ZCB0byBhIG5vcm1hbCBDT09LSUUgRUNITyBjaHVuay4KICAqIFdlIGFyZSB0aGUgc2lkZSB0aGF0 IGlzIGJlaW5nIGFza2VkIGZvciBhbiBhc3NvY2lhdGlvbi4KQEAgLTc1OCwzNyArNzg3LDkgQEAg ZW51bSBzY3RwX2Rpc3Bvc2l0aW9uIHNjdHBfc2ZfZG9fNV8xRF9jZShzdHJ1Y3QgbmV0ICpuZXQs CiAJaWYgKGVycm9yKQogCQlnb3RvIG5vbWVtX2luaXQ7CiAKLQkvKiBTQ1RQLUFVVEg6ICBhdXRo X2NodW5rIHBvaW50ZXIgaXMgb25seSBzZXQgd2hlbiB0aGUgY29va2llLWVjaG8KLQkgKiBpcyBz dXBwb3NlZCB0byBiZSBhdXRoZW50aWNhdGVkIGFuZCB3ZSBoYXZlIHRvIGRvIGRlbGF5ZWQKLQkg KiBhdXRoZW50aWNhdGlvbi4gIFdlJ3ZlIGp1c3QgcmVjcmVhdGVkIHRoZSBhc3NvY2lhdGlvbiB1 c2luZwotCSAqIHRoZSBpbmZvcm1hdGlvbiBpbiB0aGUgY29va2llIGFuZCBub3cgaXQncyBtdWNo IGVhc2llciB0bwotCSAqIGRvIHRoZSBhdXRoZW50aWNhdGlvbi4KLQkgKi8KLQlpZiAoY2h1bmst PmF1dGhfY2h1bmspIHsKLQkJc3RydWN0IHNjdHBfY2h1bmsgYXV0aDsKLQkJZW51bSBzY3RwX2ll cnJvciByZXQ7Ci0KLQkJLyogTWFrZSBzdXJlIHRoYXQgd2UgYW5kIHRoZSBwZWVyIGFyZSBBVVRI IGNhcGFibGUgKi8KLQkJaWYgKCFuZXQtPnNjdHAuYXV0aF9lbmFibGUgfHwgIW5ld19hc29jLT5w ZWVyLmF1dGhfY2FwYWJsZSkgewotCQkJc2N0cF9hc3NvY2lhdGlvbl9mcmVlKG5ld19hc29jKTsK LQkJCXJldHVybiBzY3RwX3NmX3BkaXNjYXJkKG5ldCwgZXAsIGFzb2MsIHR5cGUsIGFyZywgY29t bWFuZHMpOwotCQl9Ci0KLQkJLyogc2V0LXVwIG91ciBmYWtlIGNodW5rIHNvIHRoYXQgd2UgY2Fu IHByb2Nlc3MgaXQgKi8KLQkJYXV0aC5za2IgPSBjaHVuay0+YXV0aF9jaHVuazsKLQkJYXV0aC5h c29jID0gY2h1bmstPmFzb2M7Ci0JCWF1dGguc2N0cF9oZHIgPSBjaHVuay0+c2N0cF9oZHI7Ci0J CWF1dGguY2h1bmtfaGRyID0gKHN0cnVjdCBzY3RwX2NodW5raGRyICopCi0JCQkJCXNrYl9wdXNo KGNodW5rLT5hdXRoX2NodW5rLAotCQkJCQkJIHNpemVvZihzdHJ1Y3Qgc2N0cF9jaHVua2hkcikp OwotCQlza2JfcHVsbChjaHVuay0+YXV0aF9jaHVuaywgc2l6ZW9mKHN0cnVjdCBzY3RwX2NodW5r aGRyKSk7Ci0JCWF1dGgudHJhbnNwb3J0ID0gY2h1bmstPnRyYW5zcG9ydDsKLQotCQlyZXQgPSBz Y3RwX3NmX2F1dGhlbnRpY2F0ZShuZXQsIGVwLCBuZXdfYXNvYywgdHlwZSwgJmF1dGgpOwotCQlp ZiAocmV0ICE9IFNDVFBfSUVSUk9SX05PX0VSUk9SKSB7Ci0JCQlzY3RwX2Fzc29jaWF0aW9uX2Zy ZWUobmV3X2Fzb2MpOwotCQkJcmV0dXJuIHNjdHBfc2ZfcGRpc2NhcmQobmV0LCBlcCwgYXNvYywg dHlwZSwgYXJnLCBjb21tYW5kcyk7Ci0JCX0KKwlpZiAoIXNjdHBfYXV0aF9jaHVua192ZXJpZnko bmV0LCBjaHVuaywgbmV3X2Fzb2MpKSB7CisJCXNjdHBfYXNzb2NpYXRpb25fZnJlZShuZXdfYXNv Yyk7CisJCXJldHVybiBzY3RwX3NmX3BkaXNjYXJkKG5ldCwgZXAsIGFzb2MsIHR5cGUsIGFyZywg Y29tbWFuZHMpOwogCX0KIAogCXJlcGwgPSBzY3RwX21ha2VfY29va2llX2FjayhuZXdfYXNvYywg Y2h1bmspOwpAQCAtMTc1OCwxMyArMTc1OSwxNSBAQCBzdGF0aWMgZW51bSBzY3RwX2Rpc3Bvc2l0 aW9uIHNjdHBfc2ZfZG9fZHVwY29va19hKAogCQkJICAgICAgIEdGUF9BVE9NSUMpKQogCQlnb3Rv IG5vbWVtOwogCisJaWYgKCFzY3RwX2F1dGhfY2h1bmtfdmVyaWZ5KG5ldCwgY2h1bmssIG5ld19h c29jKSkKKwkJcmV0dXJuIFNDVFBfRElTUE9TSVRJT05fRElTQ0FSRDsKKwogCS8qIE1ha2Ugc3Vy ZSBubyBuZXcgYWRkcmVzc2VzIGFyZSBiZWluZyBhZGRlZCBkdXJpbmcgdGhlCiAJICogcmVzdGFy dC4gIFRob3VnaCB0aGlzIGlzIGEgcHJldHR5IGNvbXBsaWNhdGVkIGF0dGFjawogCSAqIHNpbmNl IHlvdSdkIGhhdmUgdG8gZ2V0IGluc2lkZSB0aGUgY29va2llLgogCSAqLwotCWlmICghc2N0cF9z Zl9jaGVja19yZXN0YXJ0X2FkZHJzKG5ld19hc29jLCBhc29jLCBjaHVuaywgY29tbWFuZHMpKSB7 CisJaWYgKCFzY3RwX3NmX2NoZWNrX3Jlc3RhcnRfYWRkcnMobmV3X2Fzb2MsIGFzb2MsIGNodW5r LCBjb21tYW5kcykpCiAJCXJldHVybiBTQ1RQX0RJU1BPU0lUSU9OX0NPTlNVTUU7Ci0JfQogCiAJ LyogSWYgdGhlIGVuZHBvaW50IGlzIGluIHRoZSBTSFVURE9XTi1BQ0stU0VOVCBzdGF0ZSBhbmQg cmVjb2duaXplcwogCSAqIHRoZSBwZWVyIGhhcyByZXN0YXJ0ZWQgKEFjdGlvbiBBKSwgaXQgTVVT VCBOT1Qgc2V0dXAgYSBuZXcKQEAgLTE4NzAsNiArMTg3Myw5IEBAIHN0YXRpYyBlbnVtIHNjdHBf ZGlzcG9zaXRpb24gc2N0cF9zZl9kb19kdXBjb29rX2IoCiAJCQkgICAgICAgR0ZQX0FUT01JQykp CiAJCWdvdG8gbm9tZW07CiAKKwlpZiAoIXNjdHBfYXV0aF9jaHVua192ZXJpZnkobmV0LCBjaHVu aywgbmV3X2Fzb2MpKQorCQlyZXR1cm4gU0NUUF9ESVNQT1NJVElPTl9ESVNDQVJEOworCiAJLyog VXBkYXRlIHRoZSBjb250ZW50IG9mIGN1cnJlbnQgYXNzb2NpYXRpb24uICAqLwogCXNjdHBfYWRk X2NtZF9zZihjb21tYW5kcywgU0NUUF9DTURfVVBEQVRFX0FTU09DLCBTQ1RQX0FTT0MobmV3X2Fz b2MpKTsKIAlzY3RwX2FkZF9jbWRfc2YoY29tbWFuZHMsIFNDVFBfQ01EX05FV19TVEFURSwKQEAg LTE5NjQsNiArMTk3MCw5IEBAIHN0YXRpYyBlbnVtIHNjdHBfZGlzcG9zaXRpb24gc2N0cF9zZl9k b19kdXBjb29rX2QoCiAJICogYSBDT09LSUUgQUNLLgogCSAqLwogCisJaWYgKCFzY3RwX2F1dGhf Y2h1bmtfdmVyaWZ5KG5ldCwgY2h1bmssIGFzb2MpKQorCQlyZXR1cm4gU0NUUF9ESVNQT1NJVElP Tl9ESVNDQVJEOworCiAJLyogRG9uJ3QgYWNjaWRlbnRhbGx5IG1vdmUgYmFjayBpbnRvIGVzdGFi bGlzaGVkIHN0YXRlLiAqLwogCWlmIChhc29jLT5zdGF0ZSA8IFNDVFBfU1RBVEVfRVNUQUJMSVNI RUQpIHsKIAkJc2N0cF9hZGRfY21kX3NmKGNvbW1hbmRzLCBTQ1RQX0NNRF9USU1FUl9TVE9QLApA QCAtNDEwOCwxMCArNDExNyw3IEBAIGVudW0gc2N0cF9kaXNwb3NpdGlvbiBzY3RwX3NmX2VhdF9m d2RfdHNuX2Zhc3QoCiAgKiBUaGUgcmV0dXJuIHZhbHVlIGlzIHRoZSBkaXNwb3NpdGlvbiBvZiB0 aGUgY2h1bmsuCiAgKi8KIHN0YXRpYyBlbnVtIHNjdHBfaWVycm9yIHNjdHBfc2ZfYXV0aGVudGlj YXRlKAotCQkJCQlzdHJ1Y3QgbmV0ICpuZXQsCi0JCQkJCWNvbnN0IHN0cnVjdCBzY3RwX2VuZHBv aW50ICplcCwKIAkJCQkJY29uc3Qgc3RydWN0IHNjdHBfYXNzb2NpYXRpb24gKmFzb2MsCi0JCQkJ CWNvbnN0IHVuaW9uIHNjdHBfc3VidHlwZSB0eXBlLAogCQkJCQlzdHJ1Y3Qgc2N0cF9jaHVuayAq Y2h1bmspCiB7CiAJc3RydWN0IHNjdHBfYXV0aGhkciAqYXV0aF9oZHI7CkBAIC00MjA5LDcgKzQy MTUsNyBAQCBlbnVtIHNjdHBfZGlzcG9zaXRpb24gc2N0cF9zZl9lYXRfYXV0aChzdHJ1Y3QgbmV0 ICpuZXQsCiAJCQkJCQkgIGNvbW1hbmRzKTsKIAogCWF1dGhfaGRyID0gKHN0cnVjdCBzY3RwX2F1 dGhoZHIgKiljaHVuay0+c2tiLT5kYXRhOwotCWVycm9yID0gc2N0cF9zZl9hdXRoZW50aWNhdGUo bmV0LCBlcCwgYXNvYywgdHlwZSwgY2h1bmspOworCWVycm9yID0gc2N0cF9zZl9hdXRoZW50aWNh dGUoYXNvYywgY2h1bmspOwogCXN3aXRjaCAoZXJyb3IpIHsKIAljYXNlIFNDVFBfSUVSUk9SX0FV VEhfQkFEX0hNQUM6CiAJCS8qIEdlbmVyYXRlIHRoZSBFUlJPUiBjaHVuayBhbmQgZGlzY2FyZCB0 aGUgcmVzdAotLSAKMi4xNC4zCgoKRnJvbSA2NzA2NDJkMWZhOGI3NTc0MGEzZjdhYmYyOTcxYmU1 MGYxMDQyNjI1IE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBYaW4gTG9uZyA8bHVjaWVu LnhpbkBnbWFpbC5jb20+CkRhdGU6IFdlZCwgMiBNYXkgMjAxOCAxMzo0NToxMiArMDgwMApTdWJq ZWN0OiBbUEFUQ0ggMjYvNTVdIHNjdHA6IGZpeCB0aGUgaXNzdWUgdGhhdCB0aGUgY29va2llLWFj ayB3aXRoIGF1dGggY2FuJ3QKIGdldCBwcm9jZXNzZWQKClsgVXBzdHJlYW0gY29tbWl0IGNlNDAy ZjA0NGU0ZTQzMmMyOTZmOTBlYWFiYjhkYmU4ZjM2MjQzOTEgXQoKV2hlbiBhdXRoIGlzIGVuYWJs ZWQgZm9yIGNvb2tpZS1hY2sgY2h1bmssIGluIHNjdHBfaW5xX3BvcCwgc2N0cApwcm9jZXNzZXMg YXV0aCBjaHVuayBmaXJzdCwgdGhlbiBjb250aW51ZXMgdG8gdGhlIG5leHQgY2h1bmsgaW4KdGhp cyBwYWNrZXQgaWYgY2h1bmtfZW5kICsgY2h1bmtfaGRyIHNpemUgPCBza2JfdGFpbF9wb2ludGVy KCkuCk90aGVyd2lzZSwgaXQgd2lsbCBnbyB0byB0aGUgbmV4dCBwYWNrZXQgb3IgZGlzY2FyZCB0 aGlzIGNodW5rLgoKSG93ZXZlciwgaXQgbWlzc2VkIHRoZSBmYWN0IHRoYXQgY29va2llLWFjayBj aHVuaydzIHNpemUgaXMgZXF1YWwKdG8gY2h1bmtfaGRyIHNpemUsIHdoaWNoIGNvdWxkbid0IG1h dGNoIHRoYXQgY2hlY2ssIGFuZCB0aHVzIHRoaXMKY2h1bmsgd291bGQgbm90IGdldCBwcm9jZXNz ZWQuCgpUaGlzIHBhdGNoIGZpeGVzIGl0IGJ5IGNoYW5naW5nIHRoZSBjaGVjayB0byBjaHVua19l bmQgKyBjaHVua19oZHIKc2l6ZSA8PSBza2JfdGFpbF9wb2ludGVyKCkuCgpGaXhlczogMjZiODdj Nzg4MTAwICgibmV0OiBzY3RwOiBmaXggcmVtb3RlIG1lbW9yeSBwcmVzc3VyZSBmcm9tIGV4Y2Vz c2l2ZSBxdWV1ZWluZyIpClNpZ25lZC1vZmYtYnk6IFhpbiBMb25nIDxsdWNpZW4ueGluQGdtYWls LmNvbT4KQWNrZWQtYnk6IE5laWwgSG9ybWFuIDxuaG9ybWFuQHR1eGRyaXZlci5jb20+CkFja2Vk LWJ5OiBNYXJjZWxvIFJpY2FyZG8gTGVpdG5lciA8bWFyY2Vsby5sZWl0bmVyQGdtYWlsLmNvbT4K U2lnbmVkLW9mZi1ieTogRGF2aWQgUy4gTWlsbGVyIDxkYXZlbUBkYXZlbWxvZnQubmV0PgotLS0K IG5ldC9zY3RwL2lucXVldWUuYyB8IDIgKy0KIDEgZmlsZSBjaGFuZ2VkLCAxIGluc2VydGlvbigr KSwgMSBkZWxldGlvbigtKQoKZGlmZiAtLWdpdCBhL25ldC9zY3RwL2lucXVldWUuYyBiL25ldC9z Y3RwL2lucXVldWUuYwppbmRleCAyM2ViYzUzMThlZGMuLmViOTNmZmUyNDA4YiAxMDA2NDQKLS0t IGEvbmV0L3NjdHAvaW5xdWV1ZS5jCisrKyBiL25ldC9zY3RwL2lucXVldWUuYwpAQCAtMjE3LDcg KzIxNyw3IEBAIHN0cnVjdCBzY3RwX2NodW5rICpzY3RwX2lucV9wb3Aoc3RydWN0IHNjdHBfaW5x ICpxdWV1ZSkKIAlza2JfcHVsbChjaHVuay0+c2tiLCBzaXplb2YoKmNoKSk7CiAJY2h1bmstPnN1 YmgudiA9IE5VTEw7IC8qIFN1YmhlYWRlciBpcyBubyBsb25nZXIgdmFsaWQuICAqLwogCi0JaWYg KGNodW5rLT5jaHVua19lbmQgKyBzaXplb2YoKmNoKSA8IHNrYl90YWlsX3BvaW50ZXIoY2h1bmst PnNrYikpIHsKKwlpZiAoY2h1bmstPmNodW5rX2VuZCArIHNpemVvZigqY2gpIDw9IHNrYl90YWls X3BvaW50ZXIoY2h1bmstPnNrYikpIHsKIAkJLyogVGhpcyBpcyBub3QgYSBzaW5nbGV0b24gKi8K IAkJY2h1bmstPnNpbmdsZXRvbiA9IDA7CiAJfSBlbHNlIGlmIChjaHVuay0+Y2h1bmtfZW5kID4g c2tiX3RhaWxfcG9pbnRlcihjaHVuay0+c2tiKSkgewotLSAKMi4xNC4zCgoKRnJvbSBmOGFlZTcz NWU4NGIxMGM1YmFiYzBlZjk0ZWRkZDAwYzIyMmUxM2FhIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAw MQpGcm9tOiBYaW4gTG9uZyA8bHVjaWVuLnhpbkBnbWFpbC5jb20+CkRhdGU6IFRodSwgMjYgQXBy IDIwMTggMTQ6MTM6NTcgKzA4MDAKU3ViamVjdDogW1BBVENIIDI3LzU1XSBzY3RwOiBoYW5kbGUg dHdvIHY0IGFkZHJzIGNvbXBhcmlzb24gaW4KIHNjdHBfaW5ldDZfY21wX2FkZHIKClsgVXBzdHJl YW0gY29tbWl0IGQ2MjUzMjliMDZlNDZiZDIwYmFmOWVlNDA4NDdkMTE5ODI1NjkyMDQgXQoKU2lu Y2Ugc2N0cCBpcHY2IHNvY2tldCBhbHNvIHN1cHBvcnRzIHY0IGFkZHJzLCBpdCdzIHBvc3NpYmxl IHRvCmNvbXBhcmUgdHdvIHY0IGFkZHJzIGluIHBmIHY2IC5jbXBfYWRkciwgc2N0cF9pbmV0Nl9j bXBfYWRkci4KCkhvd2V2ZXIgYWZ0ZXIgQ29tbWl0IDEwNzFlYzlkNDUzYSAoInNjdHA6IGRvIG5v dCBjaGVjayBwb3J0IGluCnNjdHBfaW5ldDZfY21wX2FkZHIiKSwgaXQgbm8gbG9uZ2VyIGNhbGxz IGFmMS0+Y21wX2FkZHIsIHdoaWNoCmluIHRoaXMgY2FzZSBpcyBzY3RwX3Y0X2NtcF9hZGRyLCBi dXQgY2FsbHMgX19zY3RwX3Y2X2NtcF9hZGRyCndoZXJlIGl0IGhhbmRsZXMgdGhlbSBhcyB0d28g djYgYWRkcnMuIEl0IHdvdWxkIGNhdXNlIGEgb3V0IG9mCmJvdW5kcyBjcmFzaC4KCnN5emJvdCBm b3VuZCB0aGlzIGNyYXNoIHdoZW4gdHJ5aW5nIHRvIGJpbmQgdHdvIHY0IGFkZHJzIHRvIGEKdjYg c29ja2V0LgoKVGhpcyBwYXRjaCBmaXhlcyBpdCBieSBhZGRpbmcgdGhlIHByb2Nlc3MgZm9yIHR3 byB2NCBhZGRycyBpbgpzY3RwX2luZXQ2X2NtcF9hZGRyLgoKRml4ZXM6IDEwNzFlYzlkNDUzYSAo InNjdHA6IGRvIG5vdCBjaGVjayBwb3J0IGluIHNjdHBfaW5ldDZfY21wX2FkZHIiKQpSZXBvcnRl ZC1ieTogc3l6Ym90K2NkNDk0YzFkZDY4MWQ0ZDkzZWJiQHN5emthbGxlci5hcHBzcG90bWFpbC5j b20KU2lnbmVkLW9mZi1ieTogWGluIExvbmcgPGx1Y2llbi54aW5AZ21haWwuY29tPgpBY2tlZC1i eTogTmVpbCBIb3JtYW4gPG5ob3JtYW5AdHV4ZHJpdmVyLmNvbT4KQWNrZWQtYnk6IE1hcmNlbG8g UmljYXJkbyBMZWl0bmVyIDxtYXJjZWxvLmxlaXRuZXJAZ21haWwuY29tPgpTaWduZWQtb2ZmLWJ5 OiBEYXZpZCBTLiBNaWxsZXIgPGRhdmVtQGRhdmVtbG9mdC5uZXQ+Ci0tLQogbmV0L3NjdHAvaXB2 Ni5jIHwgMyArKysKIDEgZmlsZSBjaGFuZ2VkLCAzIGluc2VydGlvbnMoKykKCmRpZmYgLS1naXQg YS9uZXQvc2N0cC9pcHY2LmMgYi9uZXQvc2N0cC9pcHY2LmMKaW5kZXggMDdiNjQ3MTlkMWJjLi4z NTFlODBjNTkyMTEgMTAwNjQ0Ci0tLSBhL25ldC9zY3RwL2lwdjYuYworKysgYi9uZXQvc2N0cC9p cHY2LmMKQEAgLTg2Niw2ICs4NjYsOSBAQCBzdGF0aWMgaW50IHNjdHBfaW5ldDZfY21wX2FkZHIo Y29uc3QgdW5pb24gc2N0cF9hZGRyICphZGRyMSwKIAlpZiAoc2N0cF9pc19hbnkoc2ssIGFkZHIx KSB8fCBzY3RwX2lzX2FueShzaywgYWRkcjIpKQogCQlyZXR1cm4gMTsKIAorCWlmIChhZGRyMS0+ c2Euc2FfZmFtaWx5ID09IEFGX0lORVQgJiYgYWRkcjItPnNhLnNhX2ZhbWlseSA9PSBBRl9JTkVU KQorCQlyZXR1cm4gYWRkcjEtPnY0LnNpbl9hZGRyLnNfYWRkciA9PSBhZGRyMi0+djQuc2luX2Fk ZHIuc19hZGRyOworCiAJcmV0dXJuIF9fc2N0cF92Nl9jbXBfYWRkcihhZGRyMSwgYWRkcjIpOwog fQogCi0tIAoyLjE0LjMKCgpGcm9tIDgyODRlY2UxYTM3NjU5NjJjN2IyMjE4OWFhZjEyNGJmOGFh ZTE0ODQgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCkZyb206IFhpbiBMb25nIDxsdWNpZW4ueGlu QGdtYWlsLmNvbT4KRGF0ZTogVGh1LCAxMCBNYXkgMjAxOCAxNzozNDoxMyArMDgwMApTdWJqZWN0 OiBbUEFUQ0ggMjgvNTVdIHNjdHA6IHJlbW92ZSBzY3RwX2NodW5rX3B1dCBmcm9tIGZhaWxfbWFy ayBlcnIgcGF0aCBpbgogc2N0cF91bHBldmVudF9tYWtlX3Jjdm1zZwoKWyBVcHN0cmVhbSBjb21t aXQgNjkxMGUyNWRlMjI1N2UyYzgyYzdhMmQxMjZlMzQ2M2NkOGU1MDgxMCBdCgpJbiBDb21taXQg MWY0NWY3OGY4ZTUxICgic2N0cDogYWxsb3cgR1NPIGZyYWdzIHRvIGFjY2VzcyB0aGUgY2h1bmsg dG9vIiksCml0IGhlbGQgdGhlIGNodW5rIGluIHNjdHBfdWxwZXZlbnRfbWFrZV9yY3Ztc2cgdG8g YWNjZXNzIGl0IHNhZmVseSBsYXRlcgppbiByZWN2bXNnLiBIb3dldmVyLCBpdCBhbHNvIGFkZGVk IHNjdHBfY2h1bmtfcHV0IGluIGZhaWxfbWFyayBlcnIgcGF0aCwKd2hpY2ggaXMgb25seSB0cmln Z2VyZWQgYmVmb3JlIGhvbGRpbmcgdGhlIGNodW5rLgoKc3l6Ym90IHJlcG9ydGVkIGEgdXNlLWFm dGVyLWZyZWUgY3Jhc2ggaGFwcGVuZWQgb24gdGhpcyBlcnIgcGF0aCwgd2hlcmUKaXQgc2hvdWxk bid0IGNhbGwgc2N0cF9jaHVua19wdXQuCgpUaGlzIHBhdGNoIHNpbXBseSByZW1vdmVzIHRoaXMg Y2FsbC4KCkZpeGVzOiAxZjQ1Zjc4ZjhlNTEgKCJzY3RwOiBhbGxvdyBHU08gZnJhZ3MgdG8gYWNj ZXNzIHRoZSBjaHVuayB0b28iKQpSZXBvcnRlZC1ieTogc3l6Ym90KzE0MWQ4OThjNWYyNDQ4OWRi NGFhQHN5emthbGxlci5hcHBzcG90bWFpbC5jb20KU2lnbmVkLW9mZi1ieTogWGluIExvbmcgPGx1 Y2llbi54aW5AZ21haWwuY29tPgpBY2tlZC1ieTogTmVpbCBIb3JtYW4gPG5ob3JtYW5AdHV4ZHJp dmVyLmNvbT4KQWNrZWQtYnk6IE1hcmNlbG8gUmljYXJkbyBMZWl0bmVyIDxtYXJjZWxvLmxlaXRu ZXJAZ21haWwuY29tPgpTaWduZWQtb2ZmLWJ5OiBEYXZpZCBTLiBNaWxsZXIgPGRhdmVtQGRhdmVt bG9mdC5uZXQ+Ci0tLQogbmV0L3NjdHAvdWxwZXZlbnQuYyB8IDEgLQogMSBmaWxlIGNoYW5nZWQs IDEgZGVsZXRpb24oLSkKCmRpZmYgLS1naXQgYS9uZXQvc2N0cC91bHBldmVudC5jIGIvbmV0L3Nj dHAvdWxwZXZlbnQuYwppbmRleCA4NDIwN2FkMzNlOGUuLjhjYjdkOTg1ODI3MCAxMDA2NDQKLS0t IGEvbmV0L3NjdHAvdWxwZXZlbnQuYworKysgYi9uZXQvc2N0cC91bHBldmVudC5jCkBAIC03MTUs NyArNzE1LDYgQEAgc3RydWN0IHNjdHBfdWxwZXZlbnQgKnNjdHBfdWxwZXZlbnRfbWFrZV9yY3Zt c2coc3RydWN0IHNjdHBfYXNzb2NpYXRpb24gKmFzb2MsCiAJcmV0dXJuIGV2ZW50OwogCiBmYWls X21hcms6Ci0Jc2N0cF9jaHVua19wdXQoY2h1bmspOwogCWtmcmVlX3NrYihza2IpOwogZmFpbDoK IAlyZXR1cm4gTlVMTDsKLS0gCjIuMTQuMwoKCkZyb20gZDVhMGVjOWY4MDg3MDFhZjdmZTc1Mzlj YTRiYmFjNmM3OGMyOGU1ZSBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJvbTogWGluIExvbmcg PGx1Y2llbi54aW5AZ21haWwuY29tPgpEYXRlOiBXZWQsIDIgTWF5IDIwMTggMTM6Mzk6NDYgKzA4 MDAKU3ViamVjdDogW1BBVENIIDI5LzU1XSBzY3RwOiB1c2UgdGhlIG9sZCBhc29jIHdoZW4gbWFr aW5nIHRoZSBjb29raWUtYWNrIGNodW5rCiBpbiBkdXBjb29rX2QKClsgVXBzdHJlYW0gY29tbWl0 IDQ2ZTE2ZDRiOTU2ODY3MDEzZTBiYmQ3ZjJiYWQyMDZmNGFhNTU3NTIgXQoKV2hlbiBwcm9jZXNz aW5nIGEgZHVwbGljYXRlIGNvb2tpZS1lY2hvIGNodW5rLCBmb3IgY2FzZSAnRCcsIHNjdHAgd2ls bApub3QgcHJvY2VzcyB0aGUgcGFyYW0gZnJvbSB0aGlzIGNodW5rLiBJdCBtZWFucyBvbGQgYXNv YyBoYXMgbm90aGluZwp0byBiZSB1cGRhdGVkLCBhbmQgdGhlIG5ldyB0ZW1wIGFzb2MgZG9lc24n dCBoYXZlIHRoZSBjb21wbGV0ZSBpbmZvLgoKU28gdGhlcmUncyBubyByZWFzb24gdG8gdXNlIHRo ZSBuZXcgYXNvYyB3aGVuIGNyZWF0aW5nIHRoZSBjb29raWUtYWNrCmNodW5rLiBPdGhlcndpc2Us IGxpa2Ugd2hlbiBhdXRoIGlzIGVuYWJsZWQgZm9yIGNvb2tpZS1hY2ssIHRoZSBjaHVuawpjYW4g bm90IGJlIHNldCB3aXRoIGF1dGgsIGFuZCBpdCB3aWxsIGRlZmluaXRlbHkgYmUgZHJvcHBlZCBi eSBwZWVyLgoKVGhpcyBpc3N1ZSBpcyB0aGVyZSBzaW5jZSB2ZXJ5IGJlZ2lubmluZywgYW5kIHdl IGZpeCBpdCBieSB1c2luZyB0aGUKb2xkIGFzb2MgaW5zdGVhZC4KClNpZ25lZC1vZmYtYnk6IFhp biBMb25nIDxsdWNpZW4ueGluQGdtYWlsLmNvbT4KQWNrZWQtYnk6IE5laWwgSG9ybWFuIDxuaG9y bWFuQHR1eGRyaXZlci5jb20+CkFja2VkLWJ5OiBNYXJjZWxvIFJpY2FyZG8gTGVpdG5lciA8bWFy Y2Vsby5sZWl0bmVyQGdtYWlsLmNvbT4KU2lnbmVkLW9mZi1ieTogRGF2aWQgUy4gTWlsbGVyIDxk YXZlbUBkYXZlbWxvZnQubmV0PgotLS0KIG5ldC9zY3RwL3NtX3N0YXRlZnVucy5jIHwgMiArLQog MSBmaWxlIGNoYW5nZWQsIDEgaW5zZXJ0aW9uKCspLCAxIGRlbGV0aW9uKC0pCgpkaWZmIC0tZ2l0 IGEvbmV0L3NjdHAvc21fc3RhdGVmdW5zLmMgYi9uZXQvc2N0cC9zbV9zdGF0ZWZ1bnMuYwppbmRl eCBlOGM5Yzk0ZjVhMDUuLjg4NTczYzU3ZTEwNiAxMDA2NDQKLS0tIGEvbmV0L3NjdHAvc21fc3Rh dGVmdW5zLmMKKysrIGIvbmV0L3NjdHAvc21fc3RhdGVmdW5zLmMKQEAgLTIwMTIsNyArMjAxMiw3 IEBAIHN0YXRpYyBlbnVtIHNjdHBfZGlzcG9zaXRpb24gc2N0cF9zZl9kb19kdXBjb29rX2QoCiAJ CX0KIAl9CiAKLQlyZXBsID0gc2N0cF9tYWtlX2Nvb2tpZV9hY2sobmV3X2Fzb2MsIGNodW5rKTsK KwlyZXBsID0gc2N0cF9tYWtlX2Nvb2tpZV9hY2soYXNvYywgY2h1bmspOwogCWlmICghcmVwbCkK IAkJZ290byBub21lbTsKIAotLSAKMi4xNC4zCgoKRnJvbSBiNWJmYzdmOTNmYjdlN2YzMWI2OGRi YTIwMzM3ZTJiZTIxNzhkYTdiIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBOZWFsIENh cmR3ZWxsIDxuY2FyZHdlbGxAZ29vZ2xlLmNvbT4KRGF0ZTogVHVlLCAxIE1heSAyMDE4IDIxOjQ1 OjQxIC0wNDAwClN1YmplY3Q6IFtQQVRDSCAzMC81NV0gdGNwX2JicjogZml4IHRvIHplcm8gaWRs ZV9yZXN0YXJ0IG9ubHkgdXBvbiBTL0FDS2VkCiBkYXRhCgpbIFVwc3RyZWFtIGNvbW1pdCBlNmU2 YTI3OGIxZWFmZmExOWQ0MjE4NmJmYWNkMWZmYzE1YTUwYjNmIF0KClByZXZpb3VzbHkgdGhlIGJi ci0+aWRsZV9yZXN0YXJ0IHRyYWNraW5nIHdhcyB6ZXJvaW5nIG91dCB0aGUKYmJyLT5pZGxlX3Jl c3RhcnQgYml0IHVwb24gQUNLcyB0aGF0IGRpZCBub3QgU0FDSyBvciBBQ0sgYW55dGhpbmcsCmUu Zy4gcmVjZWl2aW5nIGluY29taW5nIGRhdGEgb3IgcmVjZWl2ZXIgd2luZG93IHVwZGF0ZXMuIElu IHN1Y2gKc2l0dWF0aW9ucyBCQlIgd291bGQgZm9yZ2V0IHRoYXQgdGhpcyB3YXMgYSByZXN0YXJ0 LWZyb20taWRsZQpzaXR1YXRpb24sIGFuZCBpZiB0aGUgbWluX3J0dCBoYWQgZXhwaXJlZCBpdCB3 b3VsZCB1bm5lY2Vzc2FyaWx5IGVudGVyClBST0JFX1JUVCAoZXZlbiB0aG91Z2ggd2Ugd2VyZSBh Y3R1YWxseSByZXN0YXJ0aW5nIGZyb20gaWRsZSBidXQgaGFkCm1lcmVseSBmb3Jnb3R0ZW4gdGhh dCBmYWN0KS4KClRoZSBmaXggaXMgc2ltcGxlOiB3ZSBuZWVkIHRvIHJlbWVtYmVyIHdlIGFyZSBy ZXN0YXJ0aW5nIGZyb20gaWRsZQp1bnRpbCB3ZSByZWNlaXZlIGEgUy9BQ0sgZm9yIHNvbWUgZGF0 YSAoYSBTL0FDSyBmb3IgdGhlIGZpcnN0IGZsaWdodApvZiBkYXRhIHdlIHNlbmQgYXMgd2UgYXJl IHJlc3RhcnRpbmcpLgoKVGhpcyBjb21taXQgaXMgYSBzdGFibGUgY2FuZGlkYXRlIGZvciBrZXJu ZWxzIGJhY2sgYXMgZmFyIGFzIDQuOS4KCkZpeGVzOiAwZjg3ODJlYTE0OTcgKCJ0Y3BfYmJyOiBh ZGQgQkJSIGNvbmdlc3Rpb24gY29udHJvbCIpClNpZ25lZC1vZmYtYnk6IE5lYWwgQ2FyZHdlbGwg PG5jYXJkd2VsbEBnb29nbGUuY29tPgpTaWduZWQtb2ZmLWJ5OiBZdWNodW5nIENoZW5nIDx5Y2hl bmdAZ29vZ2xlLmNvbT4KU2lnbmVkLW9mZi1ieTogU29oZWlsIEhhc3NhcyBZZWdhbmVoIDxzb2hl aWxAZ29vZ2xlLmNvbT4KU2lnbmVkLW9mZi1ieTogUHJpeWFyYW5qYW4gSmhhIDxwcml5YXJqaGFA Z29vZ2xlLmNvbT4KU2lnbmVkLW9mZi1ieTogWW91c3VrIFNldW5nIDx5c3NldW5nQGdvb2dsZS5j b20+ClNpZ25lZC1vZmYtYnk6IERhdmlkIFMuIE1pbGxlciA8ZGF2ZW1AZGF2ZW1sb2Z0Lm5ldD4K LS0tCiBuZXQvaXB2NC90Y3BfYmJyLmMgfCA0ICsrKy0KIDEgZmlsZSBjaGFuZ2VkLCAzIGluc2Vy dGlvbnMoKyksIDEgZGVsZXRpb24oLSkKCmRpZmYgLS1naXQgYS9uZXQvaXB2NC90Y3BfYmJyLmMg Yi9uZXQvaXB2NC90Y3BfYmJyLmMKaW5kZXggYTQ3MWY2OTZlMTNjLi4yOTQ3ODQ1NGI1MjcgMTAw NjQ0Ci0tLSBhL25ldC9pcHY0L3RjcF9iYnIuYworKysgYi9uZXQvaXB2NC90Y3BfYmJyLmMKQEAg LTgwMyw3ICs4MDMsOSBAQCBzdGF0aWMgdm9pZCBiYnJfdXBkYXRlX21pbl9ydHQoc3RydWN0IHNv Y2sgKnNrLCBjb25zdCBzdHJ1Y3QgcmF0ZV9zYW1wbGUgKnJzKQogCQkJfQogCQl9CiAJfQotCWJi ci0+aWRsZV9yZXN0YXJ0ID0gMDsKKwkvKiBSZXN0YXJ0IGFmdGVyIGlkbGUgZW5kcyBvbmx5IG9u Y2Ugd2UgcHJvY2VzcyBhIG5ldyBTL0FDSyBmb3IgZGF0YSAqLworCWlmIChycy0+ZGVsaXZlcmVk ID4gMCkKKwkJYmJyLT5pZGxlX3Jlc3RhcnQgPSAwOwogfQogCiBzdGF0aWMgdm9pZCBiYnJfdXBk YXRlX21vZGVsKHN0cnVjdCBzb2NrICpzaywgY29uc3Qgc3RydWN0IHJhdGVfc2FtcGxlICpycykK LS0gCjIuMTQuMwoKCkZyb20gZWEyMzdkNGY2YzgyOGI1ZjZhYzhmM2U5ZTliN2E5YzMxMzNjYzlm MCBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJvbTogWXVjaHVuZyBDaGVuZyA8eWNoZW5nQGdv b2dsZS5jb20+CkRhdGU6IFdlZCwgMjUgQXByIDIwMTggMTE6MzM6MDggLTA3MDAKU3ViamVjdDog W1BBVENIIDMxLzU1XSB0Y3A6IGlnbm9yZSBGYXN0IE9wZW4gb24gcmVwYWlyIG1vZGUKClsgVXBz dHJlYW0gY29tbWl0IDE2YWU2YWExNzA1Mjk5Nzg5ZjcxZmRlYTU5YmZiMTE5YzFmYmQ5YzAgXQoK VGhlIFRDUCByZXBhaXIgc2VxdWVuY2Ugb2Ygb3BlcmF0aW9uIGlzIHRvIGZpcnN0IHNldCB0aGUg c29ja2V0IGluCnJlcGFpciBtb2RlLCB0aGVuIGluamVjdCB0aGUgVENQIHN0YXRzIGludG8gdGhl IHNvY2tldCB3aXRoIHJlcGFpcgpzb2NrZXQgb3B0aW9ucywgdGhlbiBjYWxsIGNvbm5lY3QoKSB0 byByZS1hY3RpdmF0ZSB0aGUgc29ja2V0LiBUaGUKY29ubmVjdCBzeXNjYWxsIHNpbXBseSByZXR1 cm5zIGFuZCBzZXQgc3RhdGUgdG8gRVNUQUJMSVNIRUQKbW9kZS4gQXMgYSByZXN1bHQgRmFzdCBP cGVuIGlzIG1lYW5pbmdsZXNzIGZvciBUQ1AgcmVwYWlyLgoKSG93ZXZlciBhbGxvd2luZyBzZW5k dG8oKSBzeXN0ZW0gY2FsbCB3aXRoIE1TR19GQVNUT1BFTiBmbGFnIGhhbGYtd2F5CmR1cmluZyB0 aGUgcmVwYWlyIG9wZXJhdGlvbiBjb3VsZCB1bmV4cGVjdGVkbHkgY2F1c2UgZGF0YSB0byBiZQpz ZW50LCBiZWZvcmUgdGhlIG9wZXJhdGlvbiBmaW5pc2hlcyBjaGFuZ2luZyB0aGUgaW50ZXJuYWwg VENQIHN0YXRzCihlLmcuIE1TUykuICBUaGlzIGluIHR1cm4gdHJpZ2dlcnMgVENQIHdhcm5pbmdz IG9uIGluY29uc2lzdGVudApwYWNrZXQgYWNjb3VudGluZy4KClRoZSBmaXggaXMgdG8gc2ltcGx5 IGRpc2FsbG93IEZhc3QgT3BlbiBvcGVyYXRpb24gb25jZSB0aGUgc29ja2V0CmlzIGluIHRoZSBy ZXBhaXIgbW9kZS4KClJlcG9ydGVkLWJ5OiBzeXpib3QgPHN5emthbGxlckBnb29nbGVncm91cHMu Y29tPgpTaWduZWQtb2ZmLWJ5OiBZdWNodW5nIENoZW5nIDx5Y2hlbmdAZ29vZ2xlLmNvbT4KUmV2 aWV3ZWQtYnk6IE5lYWwgQ2FyZHdlbGwgPG5jYXJkd2VsbEBnb29nbGUuY29tPgpSZXZpZXdlZC1i eTogRXJpYyBEdW1hemV0IDxlZHVtYXpldEBnb29nbGUuY29tPgpTaWduZWQtb2ZmLWJ5OiBEYXZp ZCBTLiBNaWxsZXIgPGRhdmVtQGRhdmVtbG9mdC5uZXQ+Ci0tLQogbmV0L2lwdjQvdGNwLmMgfCAz ICsrLQogMSBmaWxlIGNoYW5nZWQsIDIgaW5zZXJ0aW9ucygrKSwgMSBkZWxldGlvbigtKQoKZGlm ZiAtLWdpdCBhL25ldC9pcHY0L3RjcC5jIGIvbmV0L2lwdjQvdGNwLmMKaW5kZXggMWFiODczM2Rh YzVmLi5mNDdlOWNkMmM0ZWEgMTAwNjQ0Ci0tLSBhL25ldC9pcHY0L3RjcC5jCisrKyBiL25ldC9p cHY0L3RjcC5jCkBAIC0xMjEwLDcgKzEyMTAsOCBAQCBpbnQgdGNwX3NlbmRtc2dfbG9ja2VkKHN0 cnVjdCBzb2NrICpzaywgc3RydWN0IG1zZ2hkciAqbXNnLCBzaXplX3Qgc2l6ZSkKIAkJCXVhcmct Pnplcm9jb3B5ID0gMDsKIAl9CiAKLQlpZiAodW5saWtlbHkoZmxhZ3MgJiBNU0dfRkFTVE9QRU4g fHwgaW5ldF9zayhzayktPmRlZmVyX2Nvbm5lY3QpKSB7CisJaWYgKHVubGlrZWx5KGZsYWdzICYg TVNHX0ZBU1RPUEVOIHx8IGluZXRfc2soc2spLT5kZWZlcl9jb25uZWN0KSAmJgorCSAgICAhdHAt PnJlcGFpcikgewogCQllcnIgPSB0Y3Bfc2VuZG1zZ19mYXN0b3BlbihzaywgbXNnLCAmY29waWVk X3N5biwgc2l6ZSk7CiAJCWlmIChlcnIgPT0gLUVJTlBST0dSRVNTICYmIGNvcGllZF9zeW4gPiAw KQogCQkJZ290byBvdXQ7Ci0tIAoyLjE0LjMKCgpGcm9tIDgwYTA2MmYyNWM0NDQ0MTM3ZWFkNDQx NTljZWQ0NDJjMjViYmUzZTcgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCkZyb206IE1pY2hhZWwg Q2hhbiA8bWljaGFlbC5jaGFuQGJyb2FkY29tLmNvbT4KRGF0ZTogVGh1LCAzIE1heSAyMDE4IDIw OjA0OjI3IC0wNDAwClN1YmplY3Q6IFtQQVRDSCAzMi81NV0gdGczOiBGaXggdnVubWFwKCkgQlVH X09OKCkgdHJpZ2dlcmVkIGZyb20KIHRnM19mcmVlX2NvbnNpc3RlbnQoKS4KClsgVXBzdHJlYW0g Y29tbWl0IGQ4OWEyYWRiOGJmZTZmODk0OWZmMzg5YWNkYjlmYTI5OGI2ZThlMTIgXQoKdGczX2Zy ZWVfY29uc2lzdGVudCgpIGNhbGxzIGRtYV9mcmVlX2NvaGVyZW50KCkgdG8gZnJlZSB0cC0+aHdf c3RhdHMKdW5kZXIgc3BpbmxvY2sgYW5kIGNhbiB0cmlnZ2VyIEJVR19PTigpIGluIHZ1bm1hcCgp IGJlY2F1c2UgdnVubWFwKCkKbWF5IHNsZWVwLiAgRml4IGl0IGJ5IHJlbW92aW5nIHRoZSBzcGlu bG9jayBhbmQgcmVseWluZyBvbiB0aGUKVEczX0ZMQUdfSU5JVF9DT01QTEVURSBmbGFnIHRvIHBy ZXZlbnQgcmFjZSBjb25kaXRpb25zIGJldHdlZW4KdGczX2dldF9zdGF0czY0KCkgYW5kIHRnM19m cmVlX2NvbnNpc3RlbnQoKS4gIFRHM19GTEFHX0lOSVRfQ09NUExFVEUKaXMgYWx3YXlzIGNsZWFy ZWQgdW5kZXIgdHAtPmxvY2sgYmVmb3JlIHRnM19mcmVlX2NvbnNpc3RlbnQoKQphbmQgdGhlcmVm b3JlIHRnM19nZXRfc3RhdHM2NCgpIGNhbiBzYWZlbHkgYWNjZXNzIHRwLT5od19zdGF0cwp1bmRl ciB0cC0+bG9jayBpZiBURzNfRkxBR19JTklUX0NPTVBMRVRFIGlzIHNldC4KCkZpeGVzOiBmNTk5 MmI3MmViZTAgKCJ0ZzM6IEZpeCByYWNlIGNvbmRpdGlvbiBpbiB0ZzNfZ2V0X3N0YXRzNjQoKS4i KQpSZXBvcnRlZC1ieTogWnVtZW5nIENoZW4gPHp1bWVuZy5jaGVuQGdtYWlsLmNvbT4KU2lnbmVk LW9mZi1ieTogTWljaGFlbCBDaGFuIDxtaWNoYWVsLmNoYW5AYnJvYWRjb20uY29tPgpTaWduZWQt b2ZmLWJ5OiBEYXZpZCBTLiBNaWxsZXIgPGRhdmVtQGRhdmVtbG9mdC5uZXQ+Ci0tLQogZHJpdmVy cy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vdGczLmMgfCA5ICsrKysrLS0tLQogMSBmaWxlIGNoYW5n ZWQsIDUgaW5zZXJ0aW9ucygrKSwgNCBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9kcml2ZXJz L25ldC9ldGhlcm5ldC9icm9hZGNvbS90ZzMuYyBiL2RyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2Fk Y29tL3RnMy5jCmluZGV4IGYyNTkzOTc4YWU3NS4uYmRlOThhOTk0ZTk2IDEwMDY0NAotLS0gYS9k cml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS90ZzMuYworKysgYi9kcml2ZXJzL25ldC9ldGhl cm5ldC9icm9hZGNvbS90ZzMuYwpAQCAtODczMywxNCArODczMywxNSBAQCBzdGF0aWMgdm9pZCB0 ZzNfZnJlZV9jb25zaXN0ZW50KHN0cnVjdCB0ZzMgKnRwKQogCXRnM19tZW1fcnhfcmVsZWFzZSh0 cCk7CiAJdGczX21lbV90eF9yZWxlYXNlKHRwKTsKIAotCS8qIFByb3RlY3QgdGczX2dldF9zdGF0 czY0KCkgZnJvbSByZWFkaW5nIGZyZWVkIHRwLT5od19zdGF0cy4gKi8KLQl0ZzNfZnVsbF9sb2Nr KHRwLCAwKTsKKwkvKiB0cC0+aHdfc3RhdHMgY2FuIGJlIHJlZmVyZW5jZWQgc2FmZWx5OgorCSAq ICAgICAxLiB1bmRlciBydG5sX2xvY2sKKwkgKiAgICAgMi4gb3IgdW5kZXIgdHAtPmxvY2sgaWYg VEczX0ZMQUdfSU5JVF9DT01QTEVURSBpcyBzZXQuCisJICovCiAJaWYgKHRwLT5od19zdGF0cykg ewogCQlkbWFfZnJlZV9jb2hlcmVudCgmdHAtPnBkZXYtPmRldiwgc2l6ZW9mKHN0cnVjdCB0ZzNf aHdfc3RhdHMpLAogCQkJCSAgdHAtPmh3X3N0YXRzLCB0cC0+c3RhdHNfbWFwcGluZyk7CiAJCXRw LT5od19zdGF0cyA9IE5VTEw7CiAJfQotCXRnM19mdWxsX3VubG9jayh0cCk7CiB9CiAKIC8qCkBA IC0xNDE3OCw3ICsxNDE3OSw3IEBAIHN0YXRpYyB2b2lkIHRnM19nZXRfc3RhdHM2NChzdHJ1Y3Qg bmV0X2RldmljZSAqZGV2LAogCXN0cnVjdCB0ZzMgKnRwID0gbmV0ZGV2X3ByaXYoZGV2KTsKIAog CXNwaW5fbG9ja19iaCgmdHAtPmxvY2spOwotCWlmICghdHAtPmh3X3N0YXRzKSB7CisJaWYgKCF0 cC0+aHdfc3RhdHMgfHwgIXRnM19mbGFnKHRwLCBJTklUX0NPTVBMRVRFKSkgewogCQkqc3RhdHMg PSB0cC0+bmV0X3N0YXRzX3ByZXY7CiAJCXNwaW5fdW5sb2NrX2JoKCZ0cC0+bG9jayk7CiAJCXJl dHVybjsKLS0gCjIuMTQuMwoKCkZyb20gNGQzMjIyNTk5MTE5NjEzMzQxYzczOTJjNTQzMDBhNDYw YWU3NDMwOCBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJvbTogRGViYWJyYXRhIEJhbmVyamVl IDxkYmFuZXJqZUBha2FtYWkuY29tPgpEYXRlOiBXZWQsIDkgTWF5IDIwMTggMTk6MzI6MTAgLTA0 MDAKU3ViamVjdDogW1BBVENIIDMzLzU1XSBib25kaW5nOiBkbyBub3QgYWxsb3cgcmxiIHVwZGF0 ZXMgdG8gaW52YWxpZCBtYWMKClsgVXBzdHJlYW0gY29tbWl0IDRmYTg2NjdjYTM5ODljZTE0Y2Y2 NjMwMWZhMjUxNTQ0ZmJkZGJkZDAgXQoKTWFrZSBzdXJlIG11bHRpY2FzdCwgYnJvYWRjYXN0LCBh bmQgemVybyBtYWMncyBjYW5ub3QgYmUgdGhlIG91dHB1dCBvZiBybGIKdXBkYXRlcywgd2hpY2gg c2hvdWxkIGFsbCBiZSBkaXJlY3RlZCBhcnBzLiBSZWNlaXZlIGxvYWQgYmFsYW5jaW5nIHdpbGwg YmUKY29sbGFwc2VkIGlmIGFueSBvZiB0aGVzZSBoYXBwZW4sIGFzIHRoZSBzd2l0Y2ggd2lsbCBi cm9hZGNhc3QuCgpTaWduZWQtb2ZmLWJ5OiBEZWJhYnJhdGEgQmFuZXJqZWUgPGRiYW5lcmplQGFr YW1haS5jb20+ClNpZ25lZC1vZmYtYnk6IERhdmlkIFMuIE1pbGxlciA8ZGF2ZW1AZGF2ZW1sb2Z0 Lm5ldD4KLS0tCiBkcml2ZXJzL25ldC9ib25kaW5nL2JvbmRfYWxiLmMgfCAyICstCiAxIGZpbGUg Y2hhbmdlZCwgMSBpbnNlcnRpb24oKyksIDEgZGVsZXRpb24oLSkKCmRpZmYgLS1naXQgYS9kcml2 ZXJzL25ldC9ib25kaW5nL2JvbmRfYWxiLmMgYi9kcml2ZXJzL25ldC9ib25kaW5nL2JvbmRfYWxi LmMKaW5kZXggMWVkOTUyOWU3YmQxLi4zZjZmYWE2NTczNjAgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMv bmV0L2JvbmRpbmcvYm9uZF9hbGIuYworKysgYi9kcml2ZXJzL25ldC9ib25kaW5nL2JvbmRfYWxi LmMKQEAgLTQ1MCw3ICs0NTAsNyBAQCBzdGF0aWMgdm9pZCBybGJfdXBkYXRlX2NsaWVudChzdHJ1 Y3QgcmxiX2NsaWVudF9pbmZvICpjbGllbnRfaW5mbykKIHsKIAlpbnQgaTsKIAotCWlmICghY2xp ZW50X2luZm8tPnNsYXZlKQorCWlmICghY2xpZW50X2luZm8tPnNsYXZlIHx8ICFpc192YWxpZF9l dGhlcl9hZGRyKGNsaWVudF9pbmZvLT5tYWNfZHN0KSkKIAkJcmV0dXJuOwogCiAJZm9yIChpID0g MDsgaSA8IFJMQl9BUlBfQlVSU1RfU0laRTsgaSsrKSB7Ci0tIAoyLjE0LjMKCgpGcm9tIGNhYTIz NTg1MzQ5YjQ0NGEzOGI5YmEwMzQzMjE0ZmViNDMxNjY3MjkgTW9uIFNlcCAxNyAwMDowMDowMCAy MDAxCkZyb206IERlYmFicmF0YSBCYW5lcmplZSA8ZGJhbmVyamVAYWthbWFpLmNvbT4KRGF0ZTog V2VkLCA5IE1heSAyMDE4IDE5OjMyOjExIC0wNDAwClN1YmplY3Q6IFtQQVRDSCAzNC81NV0gYm9u ZGluZzogc2VuZCBsZWFybmluZyBwYWNrZXRzIGZvciB2bGFucyBvbiBzbGF2ZQoKWyBVcHN0cmVh bSBjb21taXQgMjE3MDZlZThhNDdkM2VkZTdmZGFlMGJlNmQ3YzBhMGUzMWE4MzIyOSBdCgpUaGVy ZSB3YXMgYSByZWdyZXNzaW9uIGF0IHNvbWUgcG9pbnQgZnJvbSB0aGUgaW50ZW5kZWQgZnVuY3Rp b25hbGl0eSBvZgpjb21taXQgZjYwYzM3MDRlODdkICgiYm9uZGluZzogRml4IGFsYiBtb2RlIHRv IG9ubHkgdXNlIGZpcnN0IGxldmVsCnZsYW5zLiIpCgpHaXZlbiB0aGUgcmV0dXJuIHZhbHVlIHZs YW5fZ2V0X2VuY2FwX2xldmVsKCkgd2UgbmVlZCB0byBzdG9yZSB0aGUgbmVzdApsZXZlbCBvZiB0 aGUgYm9uZCBkZXZpY2UsIGFuZCB0aGVuIGNvbXBhcmUgdGhlIHZsYW4ncyBlbmNhcCBsZXZlbCB0 bwp0aGlzLiBXaXRob3V0IHRoaXMsIHRoaXMgY2hlY2sgYWx3YXlzIGZhaWxzIGFuZCBsZWFybmlu ZyBwYWNrZXRzIGFyZQpuZXZlciBzZW50LgoKSW4gYWRkaXRpb24sIHRoaXMgc2FtZSBjb21taXQg Y2F1c2VkIGEgcmVncmVzc2lvbiBpbiB0aGUgYmVoYXZpb3Igb2YKYmFsYW5jZV9hbGIsIHdoaWNo IHJlcXVpcmVzIGxlYXJuaW5nIHBhY2tldHMgYmUgc2VudCBmb3IgYWxsIGludGVyZmFjZXMKdXNp bmcgdGhlIHNsYXZlJ3MgbWFjIGluIG9yZGVyIHRvIGxvYWQgYmFsYW5jZSBwcm9wZXJseS4gRm9y IHZsYW4ncwp0aGF0IGhhdmUgbm90IHNldCBhIHVzZXIgbWFjLCB3ZSBjYW4gc2VuZCBhZnRlciBj aGVja2luZyBvbmUgYml0LgpPdGhlcndpc2Ugd2UgbmVlZCBzZW5kIHRoZSBzZXQgbWFjLCBhbGJl aXQgZGVmZWF0aW5nIHJ4IGxvYWQgYmFsYW5jaW5nCmZvciB0aGF0IHZsYW4uCgpTaWduZWQtb2Zm LWJ5OiBEZWJhYnJhdGEgQmFuZXJqZWUgPGRiYW5lcmplQGFrYW1haS5jb20+ClNpZ25lZC1vZmYt Ynk6IERhdmlkIFMuIE1pbGxlciA8ZGF2ZW1AZGF2ZW1sb2Z0Lm5ldD4KLS0tCiBkcml2ZXJzL25l dC9ib25kaW5nL2JvbmRfYWxiLmMgIHwgMTMgKysrKysrKystLS0tLQogZHJpdmVycy9uZXQvYm9u ZGluZy9ib25kX21haW4uYyB8ICAyICsrCiBpbmNsdWRlL25ldC9ib25kaW5nLmggICAgICAgICAg IHwgIDEgKwogMyBmaWxlcyBjaGFuZ2VkLCAxMSBpbnNlcnRpb25zKCspLCA1IGRlbGV0aW9ucygt KQoKZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L2JvbmRpbmcvYm9uZF9hbGIuYyBiL2RyaXZlcnMv bmV0L2JvbmRpbmcvYm9uZF9hbGIuYwppbmRleCAzZjZmYWE2NTczNjAuLjVlYjBkZjJlNTQ2NCAx MDA2NDQKLS0tIGEvZHJpdmVycy9uZXQvYm9uZGluZy9ib25kX2FsYi5jCisrKyBiL2RyaXZlcnMv bmV0L2JvbmRpbmcvYm9uZF9hbGIuYwpAQCAtOTQzLDYgKzk0MywxMCBAQCBzdGF0aWMgdm9pZCBh bGJfc2VuZF9scF92aWQoc3RydWN0IHNsYXZlICpzbGF2ZSwgdTggbWFjX2FkZHJbXSwKIAlza2It PnByaW9yaXR5ID0gVENfUFJJT19DT05UUk9MOwogCXNrYi0+ZGV2ID0gc2xhdmUtPmRldjsKIAor CW5ldGRldl9kYmcoc2xhdmUtPmJvbmQtPmRldiwKKwkJICAgIlNlbmQgbGVhcm5pbmcgcGFja2V0 OiBkZXYgJXMgbWFjICVwTSB2bGFuICVkXG4iLAorCQkgICBzbGF2ZS0+ZGV2LT5uYW1lLCBtYWNf YWRkciwgdmlkKTsKKwogCWlmICh2aWQpCiAJCV9fdmxhbl9od2FjY2VsX3B1dF90YWcoc2tiLCB2 bGFuX3Byb3RvLCB2aWQpOwogCkBAIC05NjUsMTQgKzk2OSwxMyBAQCBzdGF0aWMgaW50IGFsYl91 cHBlcl9kZXZfd2FsayhzdHJ1Y3QgbmV0X2RldmljZSAqdXBwZXIsIHZvaWQgKl9kYXRhKQogCXU4 ICptYWNfYWRkciA9IGRhdGEtPm1hY19hZGRyOwogCXN0cnVjdCBib25kX3ZsYW5fdGFnICp0YWdz OwogCi0JaWYgKGlzX3ZsYW5fZGV2KHVwcGVyKSAmJiB2bGFuX2dldF9lbmNhcF9sZXZlbCh1cHBl cikgPT0gMCkgewotCQlpZiAoc3RyaWN0X21hdGNoICYmCi0JCSAgICBldGhlcl9hZGRyX2VxdWFs XzY0Yml0cyhtYWNfYWRkciwKLQkJCQkJICAgIHVwcGVyLT5kZXZfYWRkcikpIHsKKwlpZiAoaXNf dmxhbl9kZXYodXBwZXIpICYmCisJICAgIGJvbmQtPm5lc3RfbGV2ZWwgPT0gdmxhbl9nZXRfZW5j YXBfbGV2ZWwodXBwZXIpIC0gMSkgeworCQlpZiAodXBwZXItPmFkZHJfYXNzaWduX3R5cGUgPT0g TkVUX0FERFJfU1RPTEVOKSB7CiAJCQlhbGJfc2VuZF9scF92aWQoc2xhdmUsIG1hY19hZGRyLAog CQkJCQl2bGFuX2Rldl92bGFuX3Byb3RvKHVwcGVyKSwKIAkJCQkJdmxhbl9kZXZfdmxhbl9pZCh1 cHBlcikpOwotCQl9IGVsc2UgaWYgKCFzdHJpY3RfbWF0Y2gpIHsKKwkJfSBlbHNlIHsKIAkJCWFs Yl9zZW5kX2xwX3ZpZChzbGF2ZSwgdXBwZXItPmRldl9hZGRyLAogCQkJCQl2bGFuX2Rldl92bGFu X3Byb3RvKHVwcGVyKSwKIAkJCQkJdmxhbl9kZXZfdmxhbl9pZCh1cHBlcikpOwpkaWZmIC0tZ2l0 IGEvZHJpdmVycy9uZXQvYm9uZGluZy9ib25kX21haW4uYyBiL2RyaXZlcnMvbmV0L2JvbmRpbmcv Ym9uZF9tYWluLmMKaW5kZXggNzE4ZTQ5MTRlM2EwLi4xZjFlOTdiMjZmOTUgMTAwNjQ0Ci0tLSBh L2RyaXZlcnMvbmV0L2JvbmRpbmcvYm9uZF9tYWluLmMKKysrIGIvZHJpdmVycy9uZXQvYm9uZGlu Zy9ib25kX21haW4uYwpAQCAtMTczOCw2ICsxNzM4LDggQEAgaW50IGJvbmRfZW5zbGF2ZShzdHJ1 Y3QgbmV0X2RldmljZSAqYm9uZF9kZXYsIHN0cnVjdCBuZXRfZGV2aWNlICpzbGF2ZV9kZXYsCiAJ aWYgKGJvbmRfbW9kZV91c2VzX3htaXRfaGFzaChib25kKSkKIAkJYm9uZF91cGRhdGVfc2xhdmVf YXJyKGJvbmQsIE5VTEwpOwogCisJYm9uZC0+bmVzdF9sZXZlbCA9IGRldl9nZXRfbmVzdF9sZXZl bChib25kX2Rldik7CisKIAluZXRkZXZfaW5mbyhib25kX2RldiwgIkVuc2xhdmluZyAlcyBhcyAl cyBpbnRlcmZhY2Ugd2l0aCAlcyBsaW5rXG4iLAogCQkgICAgc2xhdmVfZGV2LT5uYW1lLAogCQkg ICAgYm9uZF9pc19hY3RpdmVfc2xhdmUobmV3X3NsYXZlKSA/ICJhbiBhY3RpdmUiIDogImEgYmFj a3VwIiwKZGlmZiAtLWdpdCBhL2luY2x1ZGUvbmV0L2JvbmRpbmcuaCBiL2luY2x1ZGUvbmV0L2Jv bmRpbmcuaAppbmRleCBmODAxZmM5NDBiMjkuLmI1MjIzNTE1ODgzNiAxMDA2NDQKLS0tIGEvaW5j bHVkZS9uZXQvYm9uZGluZy5oCisrKyBiL2luY2x1ZGUvbmV0L2JvbmRpbmcuaApAQCAtMTk4LDYg KzE5OCw3IEBAIHN0cnVjdCBib25kaW5nIHsKIAlzdHJ1Y3QgICBzbGF2ZSBfX3JjdSAqcHJpbWFy eV9zbGF2ZTsKIAlzdHJ1Y3QgICBib25kX3VwX3NsYXZlIF9fcmN1ICpzbGF2ZV9hcnI7IC8qIEFy cmF5IG9mIHVzYWJsZSBzbGF2ZXMgKi8KIAlib29sICAgICBmb3JjZV9wcmltYXJ5OworCXUzMiAg ICAgIG5lc3RfbGV2ZWw7CiAJczMyICAgICAgc2xhdmVfY250OyAvKiBuZXZlciBjaGFuZ2UgdGhp cyB2YWx1ZSBvdXRzaWRlIHRoZSBhdHRhY2gvZGV0YWNoIHdyYXBwZXJzICovCiAJaW50ICAgICAo KnJlY3ZfcHJvYmUpKGNvbnN0IHN0cnVjdCBza19idWZmICosIHN0cnVjdCBib25kaW5nICosCiAJ CQkgICAgICBzdHJ1Y3Qgc2xhdmUgKik7Ci0tIAoyLjE0LjMKCgpGcm9tIDJhZjVlY2EyOWI2MzMx ODI5NjMyYjBiNzE3ZjU0Mzk3ODFiMTcwYjQgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCkZyb206 IEppcmkgUGlya28gPGppcmlAbWVsbGFub3guY29tPgpEYXRlOiBGcmksIDExIE1heSAyMDE4IDE3 OjQ1OjMyICswMjAwClN1YmplY3Q6IFtQQVRDSCAzNS81NV0gbmV0OiBzY2hlZDogZml4IGVycm9y IHBhdGggaW4gdGNmX3Byb3RvX2NyZWF0ZSgpIHdoZW4KIG1vZHVsZXMgYXJlIG5vdCBjb25maWd1 cmVkCgpbIFVwc3RyZWFtIGNvbW1pdCBkNjhkNzVmZGMzNGIwMjUzYzJiZGVkN2VkMThjZDYwZWI1 YTk1OTliIF0KCkluIGNhc2UgbW9kdWxlcyBhcmUgbm90IGNvbmZpZ3VyZWQsIGVycm9yIG91dCB3 aGVuIHRwLT5vcHMgaXMgbnVsbAphbmQgcHJldmVudCBsYXRlciBudWxsIHBvaW50ZXIgZGVyZWZl cmVuY2UuCgpGaXhlczogMzNhNDg5MjdjMTkzICgic2NoZWQ6IHB1c2ggVEMgZmlsdGVyIHByb3Rv Y29sIGNyZWF0aW9uIGludG8gYSBzZXBhcmF0ZSBmdW5jdGlvbiIpClNpZ25lZC1vZmYtYnk6IEpp cmkgUGlya28gPGppcmlAbWVsbGFub3guY29tPgpBY2tlZC1ieTogQ29uZyBXYW5nIDx4aXlvdS53 YW5nY29uZ0BnbWFpbC5jb20+ClNpZ25lZC1vZmYtYnk6IERhdmlkIFMuIE1pbGxlciA8ZGF2ZW1A ZGF2ZW1sb2Z0Lm5ldD4KLS0tCiBuZXQvc2NoZWQvY2xzX2FwaS5jIHwgMiArLQogMSBmaWxlIGNo YW5nZWQsIDEgaW5zZXJ0aW9uKCspLCAxIGRlbGV0aW9uKC0pCgpkaWZmIC0tZ2l0IGEvbmV0L3Nj aGVkL2Nsc19hcGkuYyBiL25ldC9zY2hlZC9jbHNfYXBpLmMKaW5kZXggMjQ3YjdjYzIwYzEzLi5j MmM3MzJhYWQ4N2MgMTAwNjQ0Ci0tLSBhL25ldC9zY2hlZC9jbHNfYXBpLmMKKysrIGIvbmV0L3Nj aGVkL2Nsc19hcGkuYwpAQCAtMTUyLDggKzE1Miw4IEBAIHN0YXRpYyBzdHJ1Y3QgdGNmX3Byb3Rv ICp0Y2ZfcHJvdG9fY3JlYXRlKGNvbnN0IGNoYXIgKmtpbmQsIHUzMiBwcm90b2NvbCwKIAkJCU5M X1NFVF9FUlJfTVNHKGV4dGFjaywgIlRDIGNsYXNzaWZpZXIgbm90IGZvdW5kIik7CiAJCQllcnIg PSAtRU5PRU5UOwogCQl9Ci0JCWdvdG8gZXJyb3V0OwogI2VuZGlmCisJCWdvdG8gZXJyb3V0Owog CX0KIAl0cC0+Y2xhc3NpZnkgPSB0cC0+b3BzLT5jbGFzc2lmeTsKIAl0cC0+cHJvdG9jb2wgPSBw cm90b2NvbDsKLS0gCjIuMTQuMwoKCkZyb20gMWM2MmZlMmIyNmIzOTkxYTI2NWRmODBmNDQ3ZmVk ZGRjYjllMjAxMSBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJvbTogVGFyaXEgVG91a2FuIDx0 YXJpcXRAbWVsbGFub3guY29tPgpEYXRlOiBUdWUsIDIwIE1hciAyMDE4IDE4OjE3OjI1ICswMjAw ClN1YmplY3Q6IFtQQVRDSCAzNi81NV0gbmV0L21seDVlOiBUWCwgVXNlIGNvcnJlY3QgY291bnRl ciBpbiBkbWFfbWFwIGVycm9yCiBmbG93CgpbIFVwc3RyZWFtIGNvbW1pdCBkOWE5NmVjMzYyZTNk YTg3OGMzNzg4NTRlMjUzMjFjODViYWM1MmMyIF0KCkluIGNhc2Ugb2YgYSBkbWFfbWFwcGluZ19l cnJvciwgZG8gbm90IHVzZSB3aS0+bnVtX2RtYQphcyBhIHBhcmFtZXRlciBmb3IgZG1hIHVubWFw IGZ1bmN0aW9uIGJlY2F1c2UgaXQncyB5ZXQKdG8gYmUgc2V0LCBhbmQgaG9sZHMgYW4gb3V0LW9m LWRhdGUgdmFsdWUuClVzZSBhY3R1YWwgdmFsdWUgKGxvY2FsIHZhcmlhYmxlIG51bV9kbWEpIGlu c3RlYWQuCgpGaXhlczogMzQ4MDJhNDJiMzUyICgibmV0L21seDVlOiBEbyBub3QgbW9kaWZ5IHRo ZSBUWCBTS0IiKQpGaXhlczogZTU4NmIzYjBiYWVlICgibmV0L21seDU6IEV0aGVybmV0IERhdGFw YXRoIGZpbGVzIikKU2lnbmVkLW9mZi1ieTogVGFyaXEgVG91a2FuIDx0YXJpcXRAbWVsbGFub3gu Y29tPgpTaWduZWQtb2ZmLWJ5OiBTYWVlZCBNYWhhbWVlZCA8c2FlZWRtQG1lbGxhbm94LmNvbT4K LS0tCiBkcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvZW5fdHguYyB8IDIw ICsrKysrKysrKystLS0tLS0tLS0tCiAxIGZpbGUgY2hhbmdlZCwgMTAgaW5zZXJ0aW9ucygrKSwg MTAgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFu b3gvbWx4NS9jb3JlL2VuX3R4LmMgYi9kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1 L2NvcmUvZW5fdHguYwppbmRleCAxMWI0ZjEwODlkMWMuLmVhNzI1NjY0ZjRmMiAxMDA2NDQKLS0t IGEvZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2VuX3R4LmMKKysrIGIv ZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2VuX3R4LmMKQEAgLTI1NSw3 ICsyNTUsNyBAQCBtbHg1ZV90eHdxZV9idWlsZF9kc2VncyhzdHJ1Y3QgbWx4NWVfdHhxc3EgKnNx LCBzdHJ1Y3Qgc2tfYnVmZiAqc2tiLAogCQlkbWFfYWRkciA9IGRtYV9tYXBfc2luZ2xlKHNxLT5w ZGV2LCBza2JfZGF0YSwgaGVhZGxlbiwKIAkJCQkJICBETUFfVE9fREVWSUNFKTsKIAkJaWYgKHVu bGlrZWx5KGRtYV9tYXBwaW5nX2Vycm9yKHNxLT5wZGV2LCBkbWFfYWRkcikpKQotCQkJcmV0dXJu IC1FTk9NRU07CisJCQlnb3RvIGRtYV91bm1hcF93cWVfZXJyOwogCiAJCWRzZWctPmFkZHIgICAg ICAgPSBjcHVfdG9fYmU2NChkbWFfYWRkcik7CiAJCWRzZWctPmxrZXkgICAgICAgPSBzcS0+bWtl eV9iZTsKQEAgLTI3Myw3ICsyNzMsNyBAQCBtbHg1ZV90eHdxZV9idWlsZF9kc2VncyhzdHJ1Y3Qg bWx4NWVfdHhxc3EgKnNxLCBzdHJ1Y3Qgc2tfYnVmZiAqc2tiLAogCQlkbWFfYWRkciA9IHNrYl9m cmFnX2RtYV9tYXAoc3EtPnBkZXYsIGZyYWcsIDAsIGZzeiwKIAkJCQkJICAgIERNQV9UT19ERVZJ Q0UpOwogCQlpZiAodW5saWtlbHkoZG1hX21hcHBpbmdfZXJyb3Ioc3EtPnBkZXYsIGRtYV9hZGRy KSkpCi0JCQlyZXR1cm4gLUVOT01FTTsKKwkJCWdvdG8gZG1hX3VubWFwX3dxZV9lcnI7CiAKIAkJ ZHNlZy0+YWRkciAgICAgICA9IGNwdV90b19iZTY0KGRtYV9hZGRyKTsKIAkJZHNlZy0+bGtleSAg ICAgICA9IHNxLT5ta2V5X2JlOwpAQCAtMjg1LDYgKzI4NSwxMCBAQCBtbHg1ZV90eHdxZV9idWls ZF9kc2VncyhzdHJ1Y3QgbWx4NWVfdHhxc3EgKnNxLCBzdHJ1Y3Qgc2tfYnVmZiAqc2tiLAogCX0K IAogCXJldHVybiBudW1fZG1hOworCitkbWFfdW5tYXBfd3FlX2VycjoKKwltbHg1ZV9kbWFfdW5t YXBfd3FlX2VycihzcSwgbnVtX2RtYSk7CisJcmV0dXJuIC1FTk9NRU07CiB9CiAKIHN0YXRpYyBp bmxpbmUgdm9pZApAQCAtMzgwLDE3ICszODQsMTUgQEAgc3RhdGljIG5ldGRldl90eF90IG1seDVl X3NxX3htaXQoc3RydWN0IG1seDVlX3R4cXNxICpzcSwgc3RydWN0IHNrX2J1ZmYgKnNrYiwKIAlu dW1fZG1hID0gbWx4NWVfdHh3cWVfYnVpbGRfZHNlZ3Moc3EsIHNrYiwgc2tiX2RhdGEsIGhlYWRs ZW4sCiAJCQkJCSAgKHN0cnVjdCBtbHg1X3dxZV9kYXRhX3NlZyAqKWNzZWcgKyBkc19jbnQpOwog CWlmICh1bmxpa2VseShudW1fZG1hIDwgMCkpCi0JCWdvdG8gZG1hX3VubWFwX3dxZV9lcnI7CisJ CWdvdG8gZXJyX2Ryb3A7CiAKIAltbHg1ZV90eHdxZV9jb21wbGV0ZShzcSwgc2tiLCBvcGNvZGUs IGRzX2NudCArIG51bV9kbWEsCiAJCQkgICAgIG51bV9ieXRlcywgbnVtX2RtYSwgd2ksIGNzZWcp OwogCiAJcmV0dXJuIE5FVERFVl9UWF9PSzsKIAotZG1hX3VubWFwX3dxZV9lcnI6CitlcnJfZHJv cDoKIAlzcS0+c3RhdHMuZHJvcHBlZCsrOwotCW1seDVlX2RtYV91bm1hcF93cWVfZXJyKHNxLCB3 aS0+bnVtX2RtYSk7Ci0KIAlkZXZfa2ZyZWVfc2tiX2FueShza2IpOwogCiAJcmV0dXJuIE5FVERF Vl9UWF9PSzsKQEAgLTYyMCwxNyArNjIyLDE1IEBAIG5ldGRldl90eF90IG1seDVpX3NxX3htaXQo c3RydWN0IG1seDVlX3R4cXNxICpzcSwgc3RydWN0IHNrX2J1ZmYgKnNrYiwKIAludW1fZG1hID0g bWx4NWVfdHh3cWVfYnVpbGRfZHNlZ3Moc3EsIHNrYiwgc2tiX2RhdGEsIGhlYWRsZW4sCiAJCQkJ CSAgKHN0cnVjdCBtbHg1X3dxZV9kYXRhX3NlZyAqKWNzZWcgKyBkc19jbnQpOwogCWlmICh1bmxp a2VseShudW1fZG1hIDwgMCkpCi0JCWdvdG8gZG1hX3VubWFwX3dxZV9lcnI7CisJCWdvdG8gZXJy X2Ryb3A7CiAKIAltbHg1ZV90eHdxZV9jb21wbGV0ZShzcSwgc2tiLCBvcGNvZGUsIGRzX2NudCAr IG51bV9kbWEsCiAJCQkgICAgIG51bV9ieXRlcywgbnVtX2RtYSwgd2ksIGNzZWcpOwogCiAJcmV0 dXJuIE5FVERFVl9UWF9PSzsKIAotZG1hX3VubWFwX3dxZV9lcnI6CitlcnJfZHJvcDoKIAlzcS0+ c3RhdHMuZHJvcHBlZCsrOwotCW1seDVlX2RtYV91bm1hcF93cWVfZXJyKHNxLCB3aS0+bnVtX2Rt YSk7Ci0KIAlkZXZfa2ZyZWVfc2tiX2FueShza2IpOwogCiAJcmV0dXJuIE5FVERFVl9UWF9PSzsK LS0gCjIuMTQuMwoKCkZyb20gYTU1ODMxNmM2NjkyODQyODViMDFlNDc5ZmQyMDhmYjlhMDAxMjg4 NiBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJvbTogVGFsYXQgQmF0aGVlc2ggPHRhbGF0YkBt ZWxsYW5veC5jb20+CkRhdGU6IFN1biwgMTUgQXByIDIwMTggMTE6MjY6MTkgKzAzMDAKU3ViamVj dDogW1BBVENIIDM3LzU1XSBuZXQvbWx4NTogQXZvaWQgY2xlYW5pbmcgZmxvdyBzdGVlcmluZyB0 YWJsZSB0d2ljZQogZHVyaW5nIGVycm9yIGZsb3cKClsgVXBzdHJlYW0gY29tbWl0IDljMjZmNWY4 OWQwMWNhMjE1NjBjNmI4YThlNDA1NGMyNzFjYzNhOWMgXQoKV2hlbiB3ZSBmYWlsIHRvIGluaXRp YWxpemUgdGhlIFJYIHJvb3QgbmFtZXNwYWNlLCB3ZSBuZWVkCnRvIGNsZWFuIG9ubHkgdGhhdCBh bmQgbm90IHRoZSBlbnRpcmUgZmxvdyBzdGVlcmluZy4KCkN1cnJlbnRseSB0aGUgY29kZSBtYXkg dHJ5IHRvIGNsZWFuIHRoZSBmbG93IHN0ZWVyaW5nIHR3aWNlCm9uIGVycm9yIHdpdGNoIGxlYWRz IHRvIG51bGwgcG9pbnRlciBkZWZlcmVuY2UuCk1ha2Ugc3VyZSB3ZSBjbGVhbiBjb3JyZWN0bHku CgpGaXhlczogZmJhNTNmN2I1NzE5ICgibmV0L21seDU6IEludHJvZHVjZSBtbHg1X2Zsb3dfc3Rl ZXJpbmcgc3RydWN0dXJlIikKU2lnbmVkLW9mZi1ieTogVGFsYXQgQmF0aGVlc2ggPHRhbGF0YkBt ZWxsYW5veC5jb20+ClJldmlld2VkLWJ5OiBNYXJrIEJsb2NoIDxtYXJrYkBtZWxsYW5veC5jb20+ ClNpZ25lZC1vZmYtYnk6IFNhZWVkIE1haGFtZWVkIDxzYWVlZG1AbWVsbGFub3guY29tPgotLS0K IGRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9mc19jb3JlLmMgfCAyMyAr KysrKysrKysrKysrKy0tLS0tLS0tLQogMSBmaWxlIGNoYW5nZWQsIDE0IGluc2VydGlvbnMoKyks IDkgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFu b3gvbWx4NS9jb3JlL2ZzX2NvcmUuYyBiL2RyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21s eDUvY29yZS9mc19jb3JlLmMKaW5kZXggMzFmYzJjZmFjM2IzLi40ZDViODdlMGQ0NzIgMTAwNjQ0 Ci0tLSBhL2RyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9mc19jb3JlLmMK KysrIGIvZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2ZzX2NvcmUuYwpA QCAtMTg1LDYgKzE4NSw3IEBAIHN0YXRpYyB2b2lkIGRlbF9zd19ucyhzdHJ1Y3QgZnNfbm9kZSAq bm9kZSk7CiBzdGF0aWMgdm9pZCBkZWxfc3dfaHdfcnVsZShzdHJ1Y3QgZnNfbm9kZSAqbm9kZSk7 CiBzdGF0aWMgYm9vbCBtbHg1X2Zsb3dfZGVzdHNfY21wKHN0cnVjdCBtbHg1X2Zsb3dfZGVzdGlu YXRpb24gKmQxLAogCQkJCXN0cnVjdCBtbHg1X2Zsb3dfZGVzdGluYXRpb24gKmQyKTsKK3N0YXRp YyB2b2lkIGNsZWFudXBfcm9vdF9ucyhzdHJ1Y3QgbWx4NV9mbG93X3Jvb3RfbmFtZXNwYWNlICpy b290X25zKTsKIHN0YXRpYyBzdHJ1Y3QgbWx4NV9mbG93X3J1bGUgKgogZmluZF9mbG93X3J1bGUo c3RydWN0IGZzX2Z0ZSAqZnRlLAogCSAgICAgICBzdHJ1Y3QgbWx4NV9mbG93X2Rlc3RpbmF0aW9u ICpkZXN0KTsKQEAgLTIzMjksMjMgKzIzMzAsMjcgQEAgc3RhdGljIGludCBjcmVhdGVfYW5jaG9y X2Zsb3dfdGFibGUoc3RydWN0IG1seDVfZmxvd19zdGVlcmluZyAqc3RlZXJpbmcpCiAKIHN0YXRp YyBpbnQgaW5pdF9yb290X25zKHN0cnVjdCBtbHg1X2Zsb3dfc3RlZXJpbmcgKnN0ZWVyaW5nKQog eworCWludCBlcnI7CisKIAlzdGVlcmluZy0+cm9vdF9ucyA9IGNyZWF0ZV9yb290X25zKHN0ZWVy aW5nLCBGU19GVF9OSUNfUlgpOwogCWlmICghc3RlZXJpbmctPnJvb3RfbnMpCi0JCWdvdG8gY2xl YW51cDsKKwkJcmV0dXJuIC1FTk9NRU07CiAKLQlpZiAoaW5pdF9yb290X3RyZWUoc3RlZXJpbmcs ICZyb290X2ZzLCAmc3RlZXJpbmctPnJvb3RfbnMtPm5zLm5vZGUpKQotCQlnb3RvIGNsZWFudXA7 CisJZXJyID0gaW5pdF9yb290X3RyZWUoc3RlZXJpbmcsICZyb290X2ZzLCAmc3RlZXJpbmctPnJv b3RfbnMtPm5zLm5vZGUpOworCWlmIChlcnIpCisJCWdvdG8gb3V0X2VycjsKIAogCXNldF9wcmlv X2F0dHJzKHN0ZWVyaW5nLT5yb290X25zKTsKLQotCWlmIChjcmVhdGVfYW5jaG9yX2Zsb3dfdGFi bGUoc3RlZXJpbmcpKQotCQlnb3RvIGNsZWFudXA7CisJZXJyID0gY3JlYXRlX2FuY2hvcl9mbG93 X3RhYmxlKHN0ZWVyaW5nKTsKKwlpZiAoZXJyKQorCQlnb3RvIG91dF9lcnI7CiAKIAlyZXR1cm4g MDsKIAotY2xlYW51cDoKLQltbHg1X2NsZWFudXBfZnMoc3RlZXJpbmctPmRldik7Ci0JcmV0dXJu IC1FTk9NRU07CitvdXRfZXJyOgorCWNsZWFudXBfcm9vdF9ucyhzdGVlcmluZy0+cm9vdF9ucyk7 CisJc3RlZXJpbmctPnJvb3RfbnMgPSBOVUxMOworCXJldHVybiBlcnI7CiB9CiAKIHN0YXRpYyB2 b2lkIGNsZWFuX3RyZWUoc3RydWN0IGZzX25vZGUgKm5vZGUpCi0tIAoyLjE0LjMKCgpGcm9tIDRh MzM2OWVkYjRjYjMyMDQyNjI0OTA2MTAzYzA1ZWNiN2VhZDNjYjQgTW9uIFNlcCAxNyAwMDowMDow MCAyMDAxCkZyb206IFN0ZXBoZW4gSGVtbWluZ2VyIDxzdGVwaGVuQG5ldHdvcmtwbHVtYmVyLm9y Zz4KRGF0ZTogV2VkLCA5IE1heSAyMDE4IDE0OjA5OjA0IC0wNzAwClN1YmplY3Q6IFtQQVRDSCAz OC81NV0gaHZfbmV0dnNjOiBzZXQgbWFzdGVyIGRldmljZQoKWyBVcHN0cmVhbSBjb21taXQgOTdm M2VmYjY0MzIzYmViMDY5MDU3NmU5ZDc0ZTk0OTk4YWQ2ZTgyYSBdCgpUaGUgaHlwZXItdiB0cmFu c3BhcmVudCBib25kaW5nIHNob3VsZCBoYXZlIHVzZWQgbWFzdGVyX2Rldl9saW5rLgpUaGUgbmV0 dnNjIGRldmljZSBzaG91bGQgbG9vayBsaWtlIGEgbWFzdGVyIGJvbmQgZGV2aWNlIG5vdApsaWtl IHRoZSB1cHBlciBzaWRlIG9mIGEgdHVubmVsLgoKVGhpcyBtYWtlcyB0aGUgc2VtYW50aWNzIHRo ZSBzYW1lIHNvIHRoYXQgdXNlcnNwYWNlIGFwcGxpY2F0aW9ucwpsb29raW5nIGF0IG5ldHdvcmsg ZGV2aWNlcyBzZWUgdGhlIGNvcnJlY3QgbWFzdGVyIHJlbGF0aW9uc2hpcHNoaXAuCgpGaXhlczog MGMxOTU1NjdhOGY2ICgibmV0dnNjOiB0cmFuc3BhcmVudCBWRiBtYW5hZ2VtZW50IikKU2lnbmVk LW9mZi1ieTogU3RlcGhlbiBIZW1taW5nZXIgPHN0ZXBoZW5AbmV0d29ya3BsdW1iZXIub3JnPgpT aWduZWQtb2ZmLWJ5OiBEYXZpZCBTLiBNaWxsZXIgPGRhdmVtQGRhdmVtbG9mdC5uZXQ+Ci0tLQog ZHJpdmVycy9uZXQvaHlwZXJ2L25ldHZzY19kcnYuYyB8IDMgKystCiAxIGZpbGUgY2hhbmdlZCwg MiBpbnNlcnRpb25zKCspLCAxIGRlbGV0aW9uKC0pCgpkaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQv aHlwZXJ2L25ldHZzY19kcnYuYyBiL2RyaXZlcnMvbmV0L2h5cGVydi9uZXR2c2NfZHJ2LmMKaW5k ZXggZjI4Yzg1ZDIxMmNlLi40Nzc0NzY2ZmUyMGQgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvbmV0L2h5 cGVydi9uZXR2c2NfZHJ2LmMKKysrIGIvZHJpdmVycy9uZXQvaHlwZXJ2L25ldHZzY19kcnYuYwpA QCAtMTg0MCw3ICsxODQwLDggQEAgc3RhdGljIGludCBuZXR2c2NfdmZfam9pbihzdHJ1Y3QgbmV0 X2RldmljZSAqdmZfbmV0ZGV2LAogCQlnb3RvIHJ4X2hhbmRsZXJfZmFpbGVkOwogCX0KIAotCXJl dCA9IG5ldGRldl91cHBlcl9kZXZfbGluayh2Zl9uZXRkZXYsIG5kZXYsIE5VTEwpOworCXJldCA9 IG5ldGRldl9tYXN0ZXJfdXBwZXJfZGV2X2xpbmsodmZfbmV0ZGV2LCBuZGV2LAorCQkJCQkgICBO VUxMLCBOVUxMLCBOVUxMKTsKIAlpZiAocmV0ICE9IDApIHsKIAkJbmV0ZGV2X2Vycih2Zl9uZXRk ZXYsCiAJCQkgICAiY2FuIG5vdCBzZXQgbWFzdGVyIGRldmljZSAlcyAoZXJyID0gJWQpXG4iLAot LSAKMi4xNC4zCgoKRnJvbSAzNTAzMGIyOTUwZmE4MzdmMjY0NTI2MjhkNzQxZDgzNWM0MDVlMWMy IE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBFcmljIER1bWF6ZXQgPGVkdW1hemV0QGdv b2dsZS5jb20+CkRhdGU6IFN1biwgMjkgQXByIDIwMTggMDk6NTQ6NTkgLTA3MDAKU3ViamVjdDog W1BBVENIIDM5LzU1XSBpcHY2OiBmaXggdW5pbml0LXZhbHVlIGluIGlwNl9tdWx0aXBhdGhfbDNf a2V5cygpCgpbIFVwc3RyZWFtIGNvbW1pdCBjZWE2N2EyZGQ2YjI0MTlkY2MxM2EzOTMwOWI5YTc5 YTFmNzczMTkzIF0KCnN5emJvdC9LTVNBTiByZXBvcnRlZCBhbiB1bmluaXQtdmFsdWUgaW4gaXA2 X211bHRpcGF0aF9sM19rZXlzKCksCnJvb3QgY2F1c2VkIHRvIGEgYmFkIGFzc3VtcHRpb24gb2Yg SUNNUCBoZWFkZXIgYmVpbmcgYWxyZWFkeQpwdWxsZWQgaW4gc2tiLT5oZWFkCgppcF9tdWx0aXBh dGhfbDNfa2V5cygpIGRvZXMgdGhlIGNvcnJlY3QgdGhpbmcsIHNvIGl0IGlzIGFuIElQdjYgb25s eSBidWcuCgpCVUc6IEtNU0FOOiB1bmluaXQtdmFsdWUgaW4gaXA2X211bHRpcGF0aF9sM19rZXlz IG5ldC9pcHY2L3JvdXRlLmM6MTgzMCBbaW5saW5lXQpCVUc6IEtNU0FOOiB1bmluaXQtdmFsdWUg aW4gcnQ2X211bHRpcGF0aF9oYXNoKzB4NWM0LzB4NjQwIG5ldC9pcHY2L3JvdXRlLmM6MTg1OApD UFU6IDAgUElEOiA0NTA3IENvbW06IHN5ei1leGVjdXRvcjY2MSBOb3QgdGFpbnRlZCA0LjE2LjAr ICM4NwpIYXJkd2FyZSBuYW1lOiBHb29nbGUgR29vZ2xlIENvbXB1dGUgRW5naW5lL0dvb2dsZSBD b21wdXRlIEVuZ2luZSwgQklPUyBHb29nbGUgMDEvMDEvMjAxMQpDYWxsIFRyYWNlOgogX19kdW1w X3N0YWNrIGxpYi9kdW1wX3N0YWNrLmM6MTcgW2lubGluZV0KIGR1bXBfc3RhY2srMHgxODUvMHgx ZDAgbGliL2R1bXBfc3RhY2suYzo1Mwoga21zYW5fcmVwb3J0KzB4MTQyLzB4MjQwIG1tL2ttc2Fu L2ttc2FuLmM6MTA2NwogX19tc2FuX3dhcm5pbmdfMzIrMHg2Yy8weGIwIG1tL2ttc2FuL2ttc2Fu X2luc3RyLmM6NjgzCiBpcDZfbXVsdGlwYXRoX2wzX2tleXMgbmV0L2lwdjYvcm91dGUuYzoxODMw IFtpbmxpbmVdCiBydDZfbXVsdGlwYXRoX2hhc2grMHg1YzQvMHg2NDAgbmV0L2lwdjYvcm91dGUu YzoxODU4CiBpcDZfcm91dGVfaW5wdXQrMHg2NWEvMHg5MjAgbmV0L2lwdjYvcm91dGUuYzoxODg0 CiBpcDZfcmN2X2ZpbmlzaCsweDQxMy8weDZlMCBuZXQvaXB2Ni9pcDZfaW5wdXQuYzo2OQogTkZf SE9PSyBpbmNsdWRlL2xpbnV4L25ldGZpbHRlci5oOjI4OCBbaW5saW5lXQogaXB2Nl9yY3YrMHgx ZTE2LzB4MjM0MCBuZXQvaXB2Ni9pcDZfaW5wdXQuYzoyMDgKIF9fbmV0aWZfcmVjZWl2ZV9za2Jf Y29yZSsweDQ3ZGYvMHg0YTkwIG5ldC9jb3JlL2Rldi5jOjQ1NjIKIF9fbmV0aWZfcmVjZWl2ZV9z a2IgbmV0L2NvcmUvZGV2LmM6NDYyNyBbaW5saW5lXQogbmV0aWZfcmVjZWl2ZV9za2JfaW50ZXJu YWwrMHg0OWQvMHg2MzAgbmV0L2NvcmUvZGV2LmM6NDcwMQogbmV0aWZfcmVjZWl2ZV9za2IrMHgy MzAvMHgyNDAgbmV0L2NvcmUvZGV2LmM6NDcyNQogdHVuX3J4X2JhdGNoZWQgZHJpdmVycy9uZXQv dHVuLmM6MTU1NSBbaW5saW5lXQogdHVuX2dldF91c2VyKzB4NzQwZi8weDdjNjAgZHJpdmVycy9u ZXQvdHVuLmM6MTk2MgogdHVuX2Nocl93cml0ZV9pdGVyKzB4MWQ0LzB4MzMwIGRyaXZlcnMvbmV0 L3R1bi5jOjE5OTAKIGNhbGxfd3JpdGVfaXRlciBpbmNsdWRlL2xpbnV4L2ZzLmg6MTc4MiBbaW5s aW5lXQogbmV3X3N5bmNfd3JpdGUgZnMvcmVhZF93cml0ZS5jOjQ2OSBbaW5saW5lXQogX192ZnNf d3JpdGUrMHg3ZmIvMHg5ZjAgZnMvcmVhZF93cml0ZS5jOjQ4MgogdmZzX3dyaXRlKzB4NDYzLzB4 OGQwIGZzL3JlYWRfd3JpdGUuYzo1NDQKIFNZU0Nfd3JpdGUrMHgxNzIvMHgzNjAgZnMvcmVhZF93 cml0ZS5jOjU4OQogU3lTX3dyaXRlKzB4NTUvMHg4MCBmcy9yZWFkX3dyaXRlLmM6NTgxCiBkb19z eXNjYWxsXzY0KzB4MzA5LzB4NDMwIGFyY2gveDg2L2VudHJ5L2NvbW1vbi5jOjI4NwogZW50cnlf U1lTQ0FMTF82NF9hZnRlcl9od2ZyYW1lKzB4M2QvMHhhMgoKRml4ZXM6IDIzYWViZGFjYjA1ZCAo ImlwdjY6IENvbXB1dGUgbXVsdGlwYXRoIGhhc2ggZm9yIElDTVAgZXJyb3JzIGZyb20gb2ZmZW5k aW5nIHBhY2tldCIpClNpZ25lZC1vZmYtYnk6IEVyaWMgRHVtYXpldCA8ZWR1bWF6ZXRAZ29vZ2xl LmNvbT4KUmVwb3J0ZWQtYnk6IHN5emJvdCA8c3l6a2FsbGVyQGdvb2dsZWdyb3Vwcy5jb20+CkNj OiBKYWt1YiBTaXRuaWNraSA8amtic0ByZWRoYXQuY29tPgpBY2tlZC1ieTogSmFrdWIgU2l0bmlj a2kgPGprYnNAcmVkaGF0LmNvbT4KU2lnbmVkLW9mZi1ieTogRGF2aWQgUy4gTWlsbGVyIDxkYXZl bUBkYXZlbWxvZnQubmV0PgotLS0KIG5ldC9pcHY2L3JvdXRlLmMgfCA3ICsrKysrKy0KIDEgZmls ZSBjaGFuZ2VkLCA2IGluc2VydGlvbnMoKyksIDEgZGVsZXRpb24oLSkKCmRpZmYgLS1naXQgYS9u ZXQvaXB2Ni9yb3V0ZS5jIGIvbmV0L2lwdjYvcm91dGUuYwppbmRleCA3NGEyZTM3NDEyYjIuLjFh ZWUxYTUzN2NiMSAxMDA2NDQKLS0tIGEvbmV0L2lwdjYvcm91dGUuYworKysgYi9uZXQvaXB2Ni9y b3V0ZS5jCkBAIC0xODIyLDExICsxODIyLDE2IEBAIHN0YXRpYyB2b2lkIGlwNl9tdWx0aXBhdGhf bDNfa2V5cyhjb25zdCBzdHJ1Y3Qgc2tfYnVmZiAqc2tiLAogCWNvbnN0IHN0cnVjdCBpcHY2aGRy ICppbm5lcl9pcGg7CiAJY29uc3Qgc3RydWN0IGljbXA2aGRyICppY21waDsKIAlzdHJ1Y3QgaXB2 NmhkciBfaW5uZXJfaXBoOworCXN0cnVjdCBpY21wNmhkciBfaWNtcGg7CiAKIAlpZiAobGlrZWx5 KG91dGVyX2lwaC0+bmV4dGhkciAhPSBJUFBST1RPX0lDTVBWNikpCiAJCWdvdG8gb3V0OwogCi0J aWNtcGggPSBpY21wNl9oZHIoc2tiKTsKKwlpY21waCA9IHNrYl9oZWFkZXJfcG9pbnRlcihza2Is IHNrYl90cmFuc3BvcnRfb2Zmc2V0KHNrYiksCisJCQkJICAgc2l6ZW9mKF9pY21waCksICZfaWNt cGgpOworCWlmICghaWNtcGgpCisJCWdvdG8gb3V0OworCiAJaWYgKGljbXBoLT5pY21wNl90eXBl ICE9IElDTVBWNl9ERVNUX1VOUkVBQ0ggJiYKIAkgICAgaWNtcGgtPmljbXA2X3R5cGUgIT0gSUNN UFY2X1BLVF9UT09CSUcgJiYKIAkgICAgaWNtcGgtPmljbXA2X3R5cGUgIT0gSUNNUFY2X1RJTUVf RVhDRUVEICYmCi0tIAoyLjE0LjMKCgpGcm9tIGMwMjU2ZjIwMDc4NTg1YWJiMTEyZDBlZjViZGIw MmM0MWM5MmVjYzYgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCkZyb206IEppYW5ibyBMaXUgPGpp YW5ib2xAbWVsbGFub3guY29tPgpEYXRlOiBUdWUsIDI3IE1hciAyMDE4IDA5OjIyOjE2ICswMDAw ClN1YmplY3Q6IFtQQVRDSCA0MC81NV0gbmV0L21seDVlOiBBbGxvdyBvZmZsb2FkaW5nIGlwdjQg aGVhZGVyIHJlLXdyaXRlIGZvcgogaWNtcAoKWyBVcHN0cmVhbSBjb21taXQgMWNjZWYzNTBkYjJm MTM3MTUwNDBhMTBkZjc3YWU2NzIyMDYwMDRjZiBdCgpGb3IgSUNNUHY0LCB0aGUgY2hlY2tzdW0g aXMgY2FsY3VsYXRlZCBmcm9tIHRoZSBJQ01QIGhlYWRlcnMgYW5kIGRhdGEuClNpbmNlIHRoZSBJ Q01QdjQgY2hlY2tzdW0gZG9lc24ndCBjb3ZlciB0aGUgSVAgaGVhZGVyLCB3ZSBjYW4gYWxsb3cg dG8KZG8gTDMgaGVhZGVyIHJlLXdyaXRlIGZvciB0aGlzIHByb3RvY29sLgoKRml4ZXM6IGJkZDY2 YWMwYWVlZCAoJ25ldC9tbHg1ZTogRGlzYWxsb3cgVEMgb2ZmbG9hZGluZyBvZiB1bnN1cHBvcnRl ZCBtYXRjaC9hY3Rpb24gY29tYmluYXRpb25zJykKU2lnbmVkLW9mZi1ieTogSmlhbmJvIExpdSA8 amlhbmJvbEBtZWxsYW5veC5jb20+ClJldmlld2VkLWJ5OiBPciBHZXJsaXR6IDxvZ2VybGl0ekBt ZWxsYW5veC5jb20+ClNpZ25lZC1vZmYtYnk6IFNhZWVkIE1haGFtZWVkIDxzYWVlZG1AbWVsbGFu b3guY29tPgotLS0KIGRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9lbl90 Yy5jIHwgMyArKy0KIDEgZmlsZSBjaGFuZ2VkLCAyIGluc2VydGlvbnMoKyksIDEgZGVsZXRpb24o LSkKCmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUv ZW5fdGMuYyBiL2RyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9lbl90Yy5j CmluZGV4IGMwYjI2MjgxZDBlMi4uODY2NTY3MGZkZGJjIDEwMDY0NAotLS0gYS9kcml2ZXJzL25l dC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvZW5fdGMuYworKysgYi9kcml2ZXJzL25ldC9l dGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvZW5fdGMuYwpAQCAtMTg2Nyw3ICsxODY3LDggQEAg c3RhdGljIGJvb2wgbW9kaWZ5X2hlYWRlcl9tYXRjaF9zdXBwb3J0ZWQoc3RydWN0IG1seDVfZmxv d19zcGVjICpzcGVjLAogCX0KIAogCWlwX3Byb3RvID0gTUxYNV9HRVQoZnRlX21hdGNoX3NldF9s eXJfMl80LCBoZWFkZXJzX3YsIGlwX3Byb3RvY29sKTsKLQlpZiAobW9kaWZ5X2lwX2hlYWRlciAm JiBpcF9wcm90byAhPSBJUFBST1RPX1RDUCAmJiBpcF9wcm90byAhPSBJUFBST1RPX1VEUCkgewor CWlmIChtb2RpZnlfaXBfaGVhZGVyICYmIGlwX3Byb3RvICE9IElQUFJPVE9fVENQICYmCisJICAg IGlwX3Byb3RvICE9IElQUFJPVE9fVURQICYmIGlwX3Byb3RvICE9IElQUFJPVE9fSUNNUCkgewog CQlwcl9pbmZvKCJjYW4ndCBvZmZsb2FkIHJlLXdyaXRlIG9mIGlwIHByb3RvICVkXG4iLCBpcF9w cm90byk7CiAJCXJldHVybiBmYWxzZTsKIAl9Ci0tIAoyLjE0LjMKCgpGcm9tIGEzZDVmMWIxYjE4 YWM0M2UyODc4YTZhNDcwMzgyZjIxYjBkMGMwYTAgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCkZy b206IEVyaWMgRHVtYXpldCA8ZWR1bWF6ZXRAZ29vZ2xlLmNvbT4KRGF0ZTogVGh1LCAzIE1heSAy MDE4IDEzOjM3OjU0IC0wNzAwClN1YmplY3Q6IFtQQVRDSCA0MS81NV0gbnNoOiBmaXggaW5maW5p dGUgbG9vcAoKWyBVcHN0cmVhbSBjb21taXQgYWY1MGU0YmEzNGY0YzQ1ZTkyNTM1MzY0MTMzZDRk ZWI1OTMxYzFjNSBdCgpzeXpib3QgY2F1Z2h0IGFuIGluZmluaXRlIHJlY3Vyc2lvbiBpbiBuc2hf Z3NvX3NlZ21lbnQoKS4KClByb2JsZW0gaGVyZSBpcyB0aGF0IHdlIG5lZWQgdG8gbWFrZSBzdXJl IHRoZSBOU0ggaGVhZGVyIGlzIG9mCnJlYXNvbmFibGUgbGVuZ3RoLgoKQlVHOiBNQVhfTE9DS19E RVBUSCB0b28gbG93IQp0dXJuaW5nIG9mZiB0aGUgbG9ja2luZyBjb3JyZWN0bmVzcyB2YWxpZGF0 b3IuCmRlcHRoOiA0OCAgbWF4OiA0OCEKNDggbG9ja3MgaGVsZCBieSBzeXotZXhlY3V0b3IwLzEw MTg5OgogIzA6ICAgICAgICAgKHB0cnZhbCkgKHJjdV9yZWFkX2xvY2tfYmgpey4uLi59LCBhdDog X19kZXZfcXVldWVfeG1pdCsweDMwZi8weDM0YzAgbmV0L2NvcmUvZGV2LmM6MzUxNwogIzE6ICAg ICAgICAgKHB0cnZhbCkgKHJjdV9yZWFkX2xvY2spey4uLi59LCBhdDogX19za2JfcHVsbCBpbmNs dWRlL2xpbnV4L3NrYnVmZi5oOjIwODAgW2lubGluZV0KICMxOiAgICAgICAgIChwdHJ2YWwpIChy Y3VfcmVhZF9sb2NrKXsuLi4ufSwgYXQ6IHNrYl9tYWNfZ3NvX3NlZ21lbnQrMHgyMjEvMHg3MjAg bmV0L2NvcmUvZGV2LmM6Mjc4NwogIzI6ICAgICAgICAgKHB0cnZhbCkgKHJjdV9yZWFkX2xvY2sp ey4uLi59LCBhdDogX19za2JfcHVsbCBpbmNsdWRlL2xpbnV4L3NrYnVmZi5oOjIwODAgW2lubGlu ZV0KICMyOiAgICAgICAgIChwdHJ2YWwpIChyY3VfcmVhZF9sb2NrKXsuLi4ufSwgYXQ6IHNrYl9t YWNfZ3NvX3NlZ21lbnQrMHgyMjEvMHg3MjAgbmV0L2NvcmUvZGV2LmM6Mjc4NwogIzM6ICAgICAg ICAgKHB0cnZhbCkgKHJjdV9yZWFkX2xvY2spey4uLi59LCBhdDogX19za2JfcHVsbCBpbmNsdWRl L2xpbnV4L3NrYnVmZi5oOjIwODAgW2lubGluZV0KICMzOiAgICAgICAgIChwdHJ2YWwpIChyY3Vf cmVhZF9sb2NrKXsuLi4ufSwgYXQ6IHNrYl9tYWNfZ3NvX3NlZ21lbnQrMHgyMjEvMHg3MjAgbmV0 L2NvcmUvZGV2LmM6Mjc4NwogIzQ6ICAgICAgICAgKHB0cnZhbCkgKHJjdV9yZWFkX2xvY2spey4u Li59LCBhdDogX19za2JfcHVsbCBpbmNsdWRlL2xpbnV4L3NrYnVmZi5oOjIwODAgW2lubGluZV0K ICM0OiAgICAgICAgIChwdHJ2YWwpIChyY3VfcmVhZF9sb2NrKXsuLi4ufSwgYXQ6IHNrYl9tYWNf Z3NvX3NlZ21lbnQrMHgyMjEvMHg3MjAgbmV0L2NvcmUvZGV2LmM6Mjc4NwogIzU6ICAgICAgICAg KHB0cnZhbCkgKHJjdV9yZWFkX2xvY2spey4uLi59LCBhdDogX19za2JfcHVsbCBpbmNsdWRlL2xp bnV4L3NrYnVmZi5oOjIwODAgW2lubGluZV0KICM1OiAgICAgICAgIChwdHJ2YWwpIChyY3VfcmVh ZF9sb2NrKXsuLi4ufSwgYXQ6IHNrYl9tYWNfZ3NvX3NlZ21lbnQrMHgyMjEvMHg3MjAgbmV0L2Nv cmUvZGV2LmM6Mjc4NwogIzY6ICAgICAgICAgKHB0cnZhbCkgKHJjdV9yZWFkX2xvY2spey4uLi59 LCBhdDogX19za2JfcHVsbCBpbmNsdWRlL2xpbnV4L3NrYnVmZi5oOjIwODAgW2lubGluZV0KICM2 OiAgICAgICAgIChwdHJ2YWwpIChyY3VfcmVhZF9sb2NrKXsuLi4ufSwgYXQ6IHNrYl9tYWNfZ3Nv X3NlZ21lbnQrMHgyMjEvMHg3MjAgbmV0L2NvcmUvZGV2LmM6Mjc4NwogIzc6ICAgICAgICAgKHB0 cnZhbCkgKHJjdV9yZWFkX2xvY2spey4uLi59LCBhdDogX19za2JfcHVsbCBpbmNsdWRlL2xpbnV4 L3NrYnVmZi5oOjIwODAgW2lubGluZV0KICM3OiAgICAgICAgIChwdHJ2YWwpIChyY3VfcmVhZF9s b2NrKXsuLi4ufSwgYXQ6IHNrYl9tYWNfZ3NvX3NlZ21lbnQrMHgyMjEvMHg3MjAgbmV0L2NvcmUv ZGV2LmM6Mjc4NwogIzg6ICAgICAgICAgKHB0cnZhbCkgKHJjdV9yZWFkX2xvY2spey4uLi59LCBh dDogX19za2JfcHVsbCBpbmNsdWRlL2xpbnV4L3NrYnVmZi5oOjIwODAgW2lubGluZV0KICM4OiAg ICAgICAgIChwdHJ2YWwpIChyY3VfcmVhZF9sb2NrKXsuLi4ufSwgYXQ6IHNrYl9tYWNfZ3NvX3Nl Z21lbnQrMHgyMjEvMHg3MjAgbmV0L2NvcmUvZGV2LmM6Mjc4NwogIzk6ICAgICAgICAgKHB0cnZh bCkgKHJjdV9yZWFkX2xvY2spey4uLi59LCBhdDogX19za2JfcHVsbCBpbmNsdWRlL2xpbnV4L3Nr YnVmZi5oOjIwODAgW2lubGluZV0KICM5OiAgICAgICAgIChwdHJ2YWwpIChyY3VfcmVhZF9sb2Nr KXsuLi4ufSwgYXQ6IHNrYl9tYWNfZ3NvX3NlZ21lbnQrMHgyMjEvMHg3MjAgbmV0L2NvcmUvZGV2 LmM6Mjc4NwogIzEwOiAgICAgICAgIChwdHJ2YWwpIChyY3VfcmVhZF9sb2NrKXsuLi4ufSwgYXQ6 IF9fc2tiX3B1bGwgaW5jbHVkZS9saW51eC9za2J1ZmYuaDoyMDgwIFtpbmxpbmVdCiAjMTA6ICAg ICAgICAgKHB0cnZhbCkgKHJjdV9yZWFkX2xvY2spey4uLi59LCBhdDogc2tiX21hY19nc29fc2Vn bWVudCsweDIyMS8weDcyMCBuZXQvY29yZS9kZXYuYzoyNzg3CiAjMTE6ICAgICAgICAgKHB0cnZh bCkgKHJjdV9yZWFkX2xvY2spey4uLi59LCBhdDogX19za2JfcHVsbCBpbmNsdWRlL2xpbnV4L3Nr YnVmZi5oOjIwODAgW2lubGluZV0KICMxMTogICAgICAgICAocHRydmFsKSAocmN1X3JlYWRfbG9j ayl7Li4uLn0sIGF0OiBza2JfbWFjX2dzb19zZWdtZW50KzB4MjIxLzB4NzIwIG5ldC9jb3JlL2Rl di5jOjI3ODcKICMxMjogICAgICAgICAocHRydmFsKSAocmN1X3JlYWRfbG9jayl7Li4uLn0sIGF0 OiBfX3NrYl9wdWxsIGluY2x1ZGUvbGludXgvc2tidWZmLmg6MjA4MCBbaW5saW5lXQogIzEyOiAg ICAgICAgIChwdHJ2YWwpIChyY3VfcmVhZF9sb2NrKXsuLi4ufSwgYXQ6IHNrYl9tYWNfZ3NvX3Nl Z21lbnQrMHgyMjEvMHg3MjAgbmV0L2NvcmUvZGV2LmM6Mjc4NwogIzEzOiAgICAgICAgIChwdHJ2 YWwpIChyY3VfcmVhZF9sb2NrKXsuLi4ufSwgYXQ6IF9fc2tiX3B1bGwgaW5jbHVkZS9saW51eC9z a2J1ZmYuaDoyMDgwIFtpbmxpbmVdCiAjMTM6ICAgICAgICAgKHB0cnZhbCkgKHJjdV9yZWFkX2xv Y2spey4uLi59LCBhdDogc2tiX21hY19nc29fc2VnbWVudCsweDIyMS8weDcyMCBuZXQvY29yZS9k ZXYuYzoyNzg3CiAjMTQ6ICAgICAgICAgKHB0cnZhbCkgKHJjdV9yZWFkX2xvY2spey4uLi59LCBh dDogX19za2JfcHVsbCBpbmNsdWRlL2xpbnV4L3NrYnVmZi5oOjIwODAgW2lubGluZV0KICMxNDog ICAgICAgICAocHRydmFsKSAocmN1X3JlYWRfbG9jayl7Li4uLn0sIGF0OiBza2JfbWFjX2dzb19z ZWdtZW50KzB4MjIxLzB4NzIwIG5ldC9jb3JlL2Rldi5jOjI3ODcKICMxNTogICAgICAgICAocHRy dmFsKSAocmN1X3JlYWRfbG9jayl7Li4uLn0sIGF0OiBfX3NrYl9wdWxsIGluY2x1ZGUvbGludXgv c2tidWZmLmg6MjA4MCBbaW5saW5lXQogIzE1OiAgICAgICAgIChwdHJ2YWwpIChyY3VfcmVhZF9s b2NrKXsuLi4ufSwgYXQ6IHNrYl9tYWNfZ3NvX3NlZ21lbnQrMHgyMjEvMHg3MjAgbmV0L2NvcmUv ZGV2LmM6Mjc4NwogIzE2OiAgICAgICAgIChwdHJ2YWwpIChyY3VfcmVhZF9sb2NrKXsuLi4ufSwg YXQ6IF9fc2tiX3B1bGwgaW5jbHVkZS9saW51eC9za2J1ZmYuaDoyMDgwIFtpbmxpbmVdCiAjMTY6 ICAgICAgICAgKHB0cnZhbCkgKHJjdV9yZWFkX2xvY2spey4uLi59LCBhdDogc2tiX21hY19nc29f c2VnbWVudCsweDIyMS8weDcyMCBuZXQvY29yZS9kZXYuYzoyNzg3CiAjMTc6ICAgICAgICAgKHB0 cnZhbCkgKHJjdV9yZWFkX2xvY2spey4uLi59LCBhdDogX19za2JfcHVsbCBpbmNsdWRlL2xpbnV4 L3NrYnVmZi5oOjIwODAgW2lubGluZV0KICMxNzogICAgICAgICAocHRydmFsKSAocmN1X3JlYWRf bG9jayl7Li4uLn0sIGF0OiBza2JfbWFjX2dzb19zZWdtZW50KzB4MjIxLzB4NzIwIG5ldC9jb3Jl L2Rldi5jOjI3ODcKICMxODogICAgICAgICAocHRydmFsKSAocmN1X3JlYWRfbG9jayl7Li4uLn0s IGF0OiBfX3NrYl9wdWxsIGluY2x1ZGUvbGludXgvc2tidWZmLmg6MjA4MCBbaW5saW5lXQogIzE4 OiAgICAgICAgIChwdHJ2YWwpIChyY3VfcmVhZF9sb2NrKXsuLi4ufSwgYXQ6IHNrYl9tYWNfZ3Nv X3NlZ21lbnQrMHgyMjEvMHg3MjAgbmV0L2NvcmUvZGV2LmM6Mjc4NwogIzE5OiAgICAgICAgIChw dHJ2YWwpIChyY3VfcmVhZF9sb2NrKXsuLi4ufSwgYXQ6IF9fc2tiX3B1bGwgaW5jbHVkZS9saW51 eC9za2J1ZmYuaDoyMDgwIFtpbmxpbmVdCiAjMTk6ICAgICAgICAgKHB0cnZhbCkgKHJjdV9yZWFk X2xvY2spey4uLi59LCBhdDogc2tiX21hY19nc29fc2VnbWVudCsweDIyMS8weDcyMCBuZXQvY29y ZS9kZXYuYzoyNzg3CiAjMjA6ICAgICAgICAgKHB0cnZhbCkgKHJjdV9yZWFkX2xvY2spey4uLi59 LCBhdDogX19za2JfcHVsbCBpbmNsdWRlL2xpbnV4L3NrYnVmZi5oOjIwODAgW2lubGluZV0KICMy MDogICAgICAgICAocHRydmFsKSAocmN1X3JlYWRfbG9jayl7Li4uLn0sIGF0OiBza2JfbWFjX2dz b19zZWdtZW50KzB4MjIxLzB4NzIwIG5ldC9jb3JlL2Rldi5jOjI3ODcKICMyMTogICAgICAgICAo cHRydmFsKSAocmN1X3JlYWRfbG9jayl7Li4uLn0sIGF0OiBfX3NrYl9wdWxsIGluY2x1ZGUvbGlu dXgvc2tidWZmLmg6MjA4MCBbaW5saW5lXQogIzIxOiAgICAgICAgIChwdHJ2YWwpIChyY3VfcmVh ZF9sb2NrKXsuLi4ufSwgYXQ6IHNrYl9tYWNfZ3NvX3NlZ21lbnQrMHgyMjEvMHg3MjAgbmV0L2Nv cmUvZGV2LmM6Mjc4NwogIzIyOiAgICAgICAgIChwdHJ2YWwpIChyY3VfcmVhZF9sb2NrKXsuLi4u fSwgYXQ6IF9fc2tiX3B1bGwgaW5jbHVkZS9saW51eC9za2J1ZmYuaDoyMDgwIFtpbmxpbmVdCiAj MjI6ICAgICAgICAgKHB0cnZhbCkgKHJjdV9yZWFkX2xvY2spey4uLi59LCBhdDogc2tiX21hY19n c29fc2VnbWVudCsweDIyMS8weDcyMCBuZXQvY29yZS9kZXYuYzoyNzg3CiAjMjM6ICAgICAgICAg KHB0cnZhbCkgKHJjdV9yZWFkX2xvY2spey4uLi59LCBhdDogX19za2JfcHVsbCBpbmNsdWRlL2xp bnV4L3NrYnVmZi5oOjIwODAgW2lubGluZV0KICMyMzogICAgICAgICAocHRydmFsKSAocmN1X3Jl YWRfbG9jayl7Li4uLn0sIGF0OiBza2JfbWFjX2dzb19zZWdtZW50KzB4MjIxLzB4NzIwIG5ldC9j b3JlL2Rldi5jOjI3ODcKICMyNDogICAgICAgICAocHRydmFsKSAocmN1X3JlYWRfbG9jayl7Li4u Ln0sIGF0OiBfX3NrYl9wdWxsIGluY2x1ZGUvbGludXgvc2tidWZmLmg6MjA4MCBbaW5saW5lXQog IzI0OiAgICAgICAgIChwdHJ2YWwpIChyY3VfcmVhZF9sb2NrKXsuLi4ufSwgYXQ6IHNrYl9tYWNf Z3NvX3NlZ21lbnQrMHgyMjEvMHg3MjAgbmV0L2NvcmUvZGV2LmM6Mjc4NwogIzI1OiAgICAgICAg IChwdHJ2YWwpIChyY3VfcmVhZF9sb2NrKXsuLi4ufSwgYXQ6IF9fc2tiX3B1bGwgaW5jbHVkZS9s aW51eC9za2J1ZmYuaDoyMDgwIFtpbmxpbmVdCiAjMjU6ICAgICAgICAgKHB0cnZhbCkgKHJjdV9y ZWFkX2xvY2spey4uLi59LCBhdDogc2tiX21hY19nc29fc2VnbWVudCsweDIyMS8weDcyMCBuZXQv Y29yZS9kZXYuYzoyNzg3CiAjMjY6ICAgICAgICAgKHB0cnZhbCkgKHJjdV9yZWFkX2xvY2spey4u Li59LCBhdDogX19za2JfcHVsbCBpbmNsdWRlL2xpbnV4L3NrYnVmZi5oOjIwODAgW2lubGluZV0K ICMyNjogICAgICAgICAocHRydmFsKSAocmN1X3JlYWRfbG9jayl7Li4uLn0sIGF0OiBza2JfbWFj X2dzb19zZWdtZW50KzB4MjIxLzB4NzIwIG5ldC9jb3JlL2Rldi5jOjI3ODcKICMyNzogICAgICAg ICAocHRydmFsKSAocmN1X3JlYWRfbG9jayl7Li4uLn0sIGF0OiBfX3NrYl9wdWxsIGluY2x1ZGUv bGludXgvc2tidWZmLmg6MjA4MCBbaW5saW5lXQogIzI3OiAgICAgICAgIChwdHJ2YWwpIChyY3Vf cmVhZF9sb2NrKXsuLi4ufSwgYXQ6IHNrYl9tYWNfZ3NvX3NlZ21lbnQrMHgyMjEvMHg3MjAgbmV0 L2NvcmUvZGV2LmM6Mjc4NwogIzI4OiAgICAgICAgIChwdHJ2YWwpIChyY3VfcmVhZF9sb2NrKXsu Li4ufSwgYXQ6IF9fc2tiX3B1bGwgaW5jbHVkZS9saW51eC9za2J1ZmYuaDoyMDgwIFtpbmxpbmVd CiAjMjg6ICAgICAgICAgKHB0cnZhbCkgKHJjdV9yZWFkX2xvY2spey4uLi59LCBhdDogc2tiX21h Y19nc29fc2VnbWVudCsweDIyMS8weDcyMCBuZXQvY29yZS9kZXYuYzoyNzg3CiAjMjk6ICAgICAg ICAgKHB0cnZhbCkgKHJjdV9yZWFkX2xvY2spey4uLi59LCBhdDogX19za2JfcHVsbCBpbmNsdWRl L2xpbnV4L3NrYnVmZi5oOjIwODAgW2lubGluZV0KICMyOTogICAgICAgICAocHRydmFsKSAocmN1 X3JlYWRfbG9jayl7Li4uLn0sIGF0OiBza2JfbWFjX2dzb19zZWdtZW50KzB4MjIxLzB4NzIwIG5l dC9jb3JlL2Rldi5jOjI3ODcKICMzMDogICAgICAgICAocHRydmFsKSAocmN1X3JlYWRfbG9jayl7 Li4uLn0sIGF0OiBfX3NrYl9wdWxsIGluY2x1ZGUvbGludXgvc2tidWZmLmg6MjA4MCBbaW5saW5l XQogIzMwOiAgICAgICAgIChwdHJ2YWwpIChyY3VfcmVhZF9sb2NrKXsuLi4ufSwgYXQ6IHNrYl9t YWNfZ3NvX3NlZ21lbnQrMHgyMjEvMHg3MjAgbmV0L2NvcmUvZGV2LmM6Mjc4NwogIzMxOiAgICAg ICAgIChwdHJ2YWwpIChyY3VfcmVhZF9sb2NrKXsuLi4ufSwgYXQ6IF9fc2tiX3B1bGwgaW5jbHVk ZS9saW51eC9za2J1ZmYuaDoyMDgwIFtpbmxpbmVdCiAjMzE6ICAgICAgICAgKHB0cnZhbCkgKHJj dV9yZWFkX2xvY2spey4uLi59LCBhdDogc2tiX21hY19nc29fc2VnbWVudCsweDIyMS8weDcyMCBu ZXQvY29yZS9kZXYuYzoyNzg3CmRjY3BfY2xvc2U6IEFCT1JUIHdpdGggNjU0MjMgYnl0ZXMgdW5y ZWFkCiAjMzI6ICAgICAgICAgKHB0cnZhbCkgKHJjdV9yZWFkX2xvY2spey4uLi59LCBhdDogX19z a2JfcHVsbCBpbmNsdWRlL2xpbnV4L3NrYnVmZi5oOjIwODAgW2lubGluZV0KICMzMjogICAgICAg ICAocHRydmFsKSAocmN1X3JlYWRfbG9jayl7Li4uLn0sIGF0OiBza2JfbWFjX2dzb19zZWdtZW50 KzB4MjIxLzB4NzIwIG5ldC9jb3JlL2Rldi5jOjI3ODcKICMzMzogICAgICAgICAocHRydmFsKSAo cmN1X3JlYWRfbG9jayl7Li4uLn0sIGF0OiBfX3NrYl9wdWxsIGluY2x1ZGUvbGludXgvc2tidWZm Lmg6MjA4MCBbaW5saW5lXQogIzMzOiAgICAgICAgIChwdHJ2YWwpIChyY3VfcmVhZF9sb2NrKXsu Li4ufSwgYXQ6IHNrYl9tYWNfZ3NvX3NlZ21lbnQrMHgyMjEvMHg3MjAgbmV0L2NvcmUvZGV2LmM6 Mjc4NwogIzM0OiAgICAgICAgIChwdHJ2YWwpIChyY3VfcmVhZF9sb2NrKXsuLi4ufSwgYXQ6IF9f c2tiX3B1bGwgaW5jbHVkZS9saW51eC9za2J1ZmYuaDoyMDgwIFtpbmxpbmVdCiAjMzQ6ICAgICAg ICAgKHB0cnZhbCkgKHJjdV9yZWFkX2xvY2spey4uLi59LCBhdDogc2tiX21hY19nc29fc2VnbWVu dCsweDIyMS8weDcyMCBuZXQvY29yZS9kZXYuYzoyNzg3CiAjMzU6ICAgICAgICAgKHB0cnZhbCkg KHJjdV9yZWFkX2xvY2spey4uLi59LCBhdDogX19za2JfcHVsbCBpbmNsdWRlL2xpbnV4L3NrYnVm Zi5oOjIwODAgW2lubGluZV0KICMzNTogICAgICAgICAocHRydmFsKSAocmN1X3JlYWRfbG9jayl7 Li4uLn0sIGF0OiBza2JfbWFjX2dzb19zZWdtZW50KzB4MjIxLzB4NzIwIG5ldC9jb3JlL2Rldi5j OjI3ODcKICMzNjogICAgICAgICAocHRydmFsKSAocmN1X3JlYWRfbG9jayl7Li4uLn0sIGF0OiBf X3NrYl9wdWxsIGluY2x1ZGUvbGludXgvc2tidWZmLmg6MjA4MCBbaW5saW5lXQogIzM2OiAgICAg ICAgIChwdHJ2YWwpIChyY3VfcmVhZF9sb2NrKXsuLi4ufSwgYXQ6IHNrYl9tYWNfZ3NvX3NlZ21l bnQrMHgyMjEvMHg3MjAgbmV0L2NvcmUvZGV2LmM6Mjc4NwogIzM3OiAgICAgICAgIChwdHJ2YWwp IChyY3VfcmVhZF9sb2NrKXsuLi4ufSwgYXQ6IF9fc2tiX3B1bGwgaW5jbHVkZS9saW51eC9za2J1 ZmYuaDoyMDgwIFtpbmxpbmVdCiAjMzc6ICAgICAgICAgKHB0cnZhbCkgKHJjdV9yZWFkX2xvY2sp ey4uLi59LCBhdDogc2tiX21hY19nc29fc2VnbWVudCsweDIyMS8weDcyMCBuZXQvY29yZS9kZXYu YzoyNzg3CiAjMzg6ICAgICAgICAgKHB0cnZhbCkgKHJjdV9yZWFkX2xvY2spey4uLi59LCBhdDog X19za2JfcHVsbCBpbmNsdWRlL2xpbnV4L3NrYnVmZi5oOjIwODAgW2lubGluZV0KICMzODogICAg ICAgICAocHRydmFsKSAocmN1X3JlYWRfbG9jayl7Li4uLn0sIGF0OiBza2JfbWFjX2dzb19zZWdt ZW50KzB4MjIxLzB4NzIwIG5ldC9jb3JlL2Rldi5jOjI3ODcKICMzOTogICAgICAgICAocHRydmFs KSAocmN1X3JlYWRfbG9jayl7Li4uLn0sIGF0OiBfX3NrYl9wdWxsIGluY2x1ZGUvbGludXgvc2ti dWZmLmg6MjA4MCBbaW5saW5lXQogIzM5OiAgICAgICAgIChwdHJ2YWwpIChyY3VfcmVhZF9sb2Nr KXsuLi4ufSwgYXQ6IHNrYl9tYWNfZ3NvX3NlZ21lbnQrMHgyMjEvMHg3MjAgbmV0L2NvcmUvZGV2 LmM6Mjc4NwogIzQwOiAgICAgICAgIChwdHJ2YWwpIChyY3VfcmVhZF9sb2NrKXsuLi4ufSwgYXQ6 IF9fc2tiX3B1bGwgaW5jbHVkZS9saW51eC9za2J1ZmYuaDoyMDgwIFtpbmxpbmVdCiAjNDA6ICAg ICAgICAgKHB0cnZhbCkgKHJjdV9yZWFkX2xvY2spey4uLi59LCBhdDogc2tiX21hY19nc29fc2Vn bWVudCsweDIyMS8weDcyMCBuZXQvY29yZS9kZXYuYzoyNzg3CiAjNDE6ICAgICAgICAgKHB0cnZh bCkgKHJjdV9yZWFkX2xvY2spey4uLi59LCBhdDogX19za2JfcHVsbCBpbmNsdWRlL2xpbnV4L3Nr YnVmZi5oOjIwODAgW2lubGluZV0KICM0MTogICAgICAgICAocHRydmFsKSAocmN1X3JlYWRfbG9j ayl7Li4uLn0sIGF0OiBza2JfbWFjX2dzb19zZWdtZW50KzB4MjIxLzB4NzIwIG5ldC9jb3JlL2Rl di5jOjI3ODcKICM0MjogICAgICAgICAocHRydmFsKSAocmN1X3JlYWRfbG9jayl7Li4uLn0sIGF0 OiBfX3NrYl9wdWxsIGluY2x1ZGUvbGludXgvc2tidWZmLmg6MjA4MCBbaW5saW5lXQogIzQyOiAg ICAgICAgIChwdHJ2YWwpIChyY3VfcmVhZF9sb2NrKXsuLi4ufSwgYXQ6IHNrYl9tYWNfZ3NvX3Nl Z21lbnQrMHgyMjEvMHg3MjAgbmV0L2NvcmUvZGV2LmM6Mjc4NwogIzQzOiAgICAgICAgIChwdHJ2 YWwpIChyY3VfcmVhZF9sb2NrKXsuLi4ufSwgYXQ6IF9fc2tiX3B1bGwgaW5jbHVkZS9saW51eC9z a2J1ZmYuaDoyMDgwIFtpbmxpbmVdCiAjNDM6ICAgICAgICAgKHB0cnZhbCkgKHJjdV9yZWFkX2xv Y2spey4uLi59LCBhdDogc2tiX21hY19nc29fc2VnbWVudCsweDIyMS8weDcyMCBuZXQvY29yZS9k ZXYuYzoyNzg3CiAjNDQ6ICAgICAgICAgKHB0cnZhbCkgKHJjdV9yZWFkX2xvY2spey4uLi59LCBh dDogX19za2JfcHVsbCBpbmNsdWRlL2xpbnV4L3NrYnVmZi5oOjIwODAgW2lubGluZV0KICM0NDog ICAgICAgICAocHRydmFsKSAocmN1X3JlYWRfbG9jayl7Li4uLn0sIGF0OiBza2JfbWFjX2dzb19z ZWdtZW50KzB4MjIxLzB4NzIwIG5ldC9jb3JlL2Rldi5jOjI3ODcKICM0NTogICAgICAgICAocHRy dmFsKSAocmN1X3JlYWRfbG9jayl7Li4uLn0sIGF0OiBfX3NrYl9wdWxsIGluY2x1ZGUvbGludXgv c2tidWZmLmg6MjA4MCBbaW5saW5lXQogIzQ1OiAgICAgICAgIChwdHJ2YWwpIChyY3VfcmVhZF9s b2NrKXsuLi4ufSwgYXQ6IHNrYl9tYWNfZ3NvX3NlZ21lbnQrMHgyMjEvMHg3MjAgbmV0L2NvcmUv ZGV2LmM6Mjc4NwogIzQ2OiAgICAgICAgIChwdHJ2YWwpIChyY3VfcmVhZF9sb2NrKXsuLi4ufSwg YXQ6IF9fc2tiX3B1bGwgaW5jbHVkZS9saW51eC9za2J1ZmYuaDoyMDgwIFtpbmxpbmVdCiAjNDY6 ICAgICAgICAgKHB0cnZhbCkgKHJjdV9yZWFkX2xvY2spey4uLi59LCBhdDogc2tiX21hY19nc29f c2VnbWVudCsweDIyMS8weDcyMCBuZXQvY29yZS9kZXYuYzoyNzg3CiAjNDc6ICAgICAgICAgKHB0 cnZhbCkgKHJjdV9yZWFkX2xvY2spey4uLi59LCBhdDogX19za2JfcHVsbCBpbmNsdWRlL2xpbnV4 L3NrYnVmZi5oOjIwODAgW2lubGluZV0KICM0NzogICAgICAgICAocHRydmFsKSAocmN1X3JlYWRf bG9jayl7Li4uLn0sIGF0OiBza2JfbWFjX2dzb19zZWdtZW50KzB4MjIxLzB4NzIwIG5ldC9jb3Jl L2Rldi5jOjI3ODcKSU5GTzogbG9ja2RlcCBpcyB0dXJuZWQgb2ZmLgpDUFU6IDEgUElEOiAxMDE4 OSBDb21tOiBzeXotZXhlY3V0b3IwIE5vdCB0YWludGVkIDQuMTcuMC1yYzIrICMyNgpIYXJkd2Fy ZSBuYW1lOiBHb29nbGUgR29vZ2xlIENvbXB1dGUgRW5naW5lL0dvb2dsZSBDb21wdXRlIEVuZ2lu ZSwgQklPUyBHb29nbGUgMDEvMDEvMjAxMQpDYWxsIFRyYWNlOgogX19kdW1wX3N0YWNrIGxpYi9k dW1wX3N0YWNrLmM6NzcgW2lubGluZV0KIGR1bXBfc3RhY2srMHgxYjkvMHgyOTQgbGliL2R1bXBf c3RhY2suYzoxMTMKIF9fbG9ja19hY3F1aXJlKzB4MTc4OC8weDUxNDAga2VybmVsL2xvY2tpbmcv bG9ja2RlcC5jOjM0NDkKIGxvY2tfYWNxdWlyZSsweDFkYy8weDUyMCBrZXJuZWwvbG9ja2luZy9s b2NrZGVwLmM6MzkyMAogcmN1X2xvY2tfYWNxdWlyZSBpbmNsdWRlL2xpbnV4L3JjdXBkYXRlLmg6 MjQ2IFtpbmxpbmVdCiByY3VfcmVhZF9sb2NrIGluY2x1ZGUvbGludXgvcmN1cGRhdGUuaDo2MzIg W2lubGluZV0KIHNrYl9tYWNfZ3NvX3NlZ21lbnQrMHgyNWIvMHg3MjAgbmV0L2NvcmUvZGV2LmM6 Mjc4OQogbnNoX2dzb19zZWdtZW50KzB4NDA1LzB4YjYwIG5ldC9uc2gvbnNoLmM6MTA3CiBza2Jf bWFjX2dzb19zZWdtZW50KzB4M2FkLzB4NzIwIG5ldC9jb3JlL2Rldi5jOjI3OTIKIG5zaF9nc29f c2VnbWVudCsweDQwNS8weGI2MCBuZXQvbnNoL25zaC5jOjEwNwogc2tiX21hY19nc29fc2VnbWVu dCsweDNhZC8weDcyMCBuZXQvY29yZS9kZXYuYzoyNzkyCiBuc2hfZ3NvX3NlZ21lbnQrMHg0MDUv MHhiNjAgbmV0L25zaC9uc2guYzoxMDcKIHNrYl9tYWNfZ3NvX3NlZ21lbnQrMHgzYWQvMHg3MjAg bmV0L2NvcmUvZGV2LmM6Mjc5MgogbnNoX2dzb19zZWdtZW50KzB4NDA1LzB4YjYwIG5ldC9uc2gv bnNoLmM6MTA3CiBza2JfbWFjX2dzb19zZWdtZW50KzB4M2FkLzB4NzIwIG5ldC9jb3JlL2Rldi5j OjI3OTIKIG5zaF9nc29fc2VnbWVudCsweDQwNS8weGI2MCBuZXQvbnNoL25zaC5jOjEwNwogc2ti X21hY19nc29fc2VnbWVudCsweDNhZC8weDcyMCBuZXQvY29yZS9kZXYuYzoyNzkyCiBuc2hfZ3Nv X3NlZ21lbnQrMHg0MDUvMHhiNjAgbmV0L25zaC9uc2guYzoxMDcKIHNrYl9tYWNfZ3NvX3NlZ21l bnQrMHgzYWQvMHg3MjAgbmV0L2NvcmUvZGV2LmM6Mjc5MgogbnNoX2dzb19zZWdtZW50KzB4NDA1 LzB4YjYwIG5ldC9uc2gvbnNoLmM6MTA3CiBza2JfbWFjX2dzb19zZWdtZW50KzB4M2FkLzB4NzIw IG5ldC9jb3JlL2Rldi5jOjI3OTIKIG5zaF9nc29fc2VnbWVudCsweDQwNS8weGI2MCBuZXQvbnNo L25zaC5jOjEwNwogc2tiX21hY19nc29fc2VnbWVudCsweDNhZC8weDcyMCBuZXQvY29yZS9kZXYu YzoyNzkyCiBuc2hfZ3NvX3NlZ21lbnQrMHg0MDUvMHhiNjAgbmV0L25zaC9uc2guYzoxMDcKIHNr Yl9tYWNfZ3NvX3NlZ21lbnQrMHgzYWQvMHg3MjAgbmV0L2NvcmUvZGV2LmM6Mjc5MgogbnNoX2dz b19zZWdtZW50KzB4NDA1LzB4YjYwIG5ldC9uc2gvbnNoLmM6MTA3CiBza2JfbWFjX2dzb19zZWdt ZW50KzB4M2FkLzB4NzIwIG5ldC9jb3JlL2Rldi5jOjI3OTIKIG5zaF9nc29fc2VnbWVudCsweDQw NS8weGI2MCBuZXQvbnNoL25zaC5jOjEwNwogc2tiX21hY19nc29fc2VnbWVudCsweDNhZC8weDcy MCBuZXQvY29yZS9kZXYuYzoyNzkyCiBuc2hfZ3NvX3NlZ21lbnQrMHg0MDUvMHhiNjAgbmV0L25z aC9uc2guYzoxMDcKIHNrYl9tYWNfZ3NvX3NlZ21lbnQrMHgzYWQvMHg3MjAgbmV0L2NvcmUvZGV2 LmM6Mjc5MgogbnNoX2dzb19zZWdtZW50KzB4NDA1LzB4YjYwIG5ldC9uc2gvbnNoLmM6MTA3CiBz a2JfbWFjX2dzb19zZWdtZW50KzB4M2FkLzB4NzIwIG5ldC9jb3JlL2Rldi5jOjI3OTIKIG5zaF9n c29fc2VnbWVudCsweDQwNS8weGI2MCBuZXQvbnNoL25zaC5jOjEwNwogc2tiX21hY19nc29fc2Vn bWVudCsweDNhZC8weDcyMCBuZXQvY29yZS9kZXYuYzoyNzkyCiBuc2hfZ3NvX3NlZ21lbnQrMHg0 MDUvMHhiNjAgbmV0L25zaC9uc2guYzoxMDcKIHNrYl9tYWNfZ3NvX3NlZ21lbnQrMHgzYWQvMHg3 MjAgbmV0L2NvcmUvZGV2LmM6Mjc5MgogbnNoX2dzb19zZWdtZW50KzB4NDA1LzB4YjYwIG5ldC9u c2gvbnNoLmM6MTA3CiBza2JfbWFjX2dzb19zZWdtZW50KzB4M2FkLzB4NzIwIG5ldC9jb3JlL2Rl di5jOjI3OTIKIG5zaF9nc29fc2VnbWVudCsweDQwNS8weGI2MCBuZXQvbnNoL25zaC5jOjEwNwog c2tiX21hY19nc29fc2VnbWVudCsweDNhZC8weDcyMCBuZXQvY29yZS9kZXYuYzoyNzkyCiBuc2hf Z3NvX3NlZ21lbnQrMHg0MDUvMHhiNjAgbmV0L25zaC9uc2guYzoxMDcKIHNrYl9tYWNfZ3NvX3Nl Z21lbnQrMHgzYWQvMHg3MjAgbmV0L2NvcmUvZGV2LmM6Mjc5MgogbnNoX2dzb19zZWdtZW50KzB4 NDA1LzB4YjYwIG5ldC9uc2gvbnNoLmM6MTA3CiBza2JfbWFjX2dzb19zZWdtZW50KzB4M2FkLzB4 NzIwIG5ldC9jb3JlL2Rldi5jOjI3OTIKIG5zaF9nc29fc2VnbWVudCsweDQwNS8weGI2MCBuZXQv bnNoL25zaC5jOjEwNwogc2tiX21hY19nc29fc2VnbWVudCsweDNhZC8weDcyMCBuZXQvY29yZS9k ZXYuYzoyNzkyCiBuc2hfZ3NvX3NlZ21lbnQrMHg0MDUvMHhiNjAgbmV0L25zaC9uc2guYzoxMDcK IHNrYl9tYWNfZ3NvX3NlZ21lbnQrMHgzYWQvMHg3MjAgbmV0L2NvcmUvZGV2LmM6Mjc5MgogbnNo X2dzb19zZWdtZW50KzB4NDA1LzB4YjYwIG5ldC9uc2gvbnNoLmM6MTA3CiBza2JfbWFjX2dzb19z ZWdtZW50KzB4M2FkLzB4NzIwIG5ldC9jb3JlL2Rldi5jOjI3OTIKIG5zaF9nc29fc2VnbWVudCsw eDQwNS8weGI2MCBuZXQvbnNoL25zaC5jOjEwNwogc2tiX21hY19nc29fc2VnbWVudCsweDNhZC8w eDcyMCBuZXQvY29yZS9kZXYuYzoyNzkyCiBuc2hfZ3NvX3NlZ21lbnQrMHg0MDUvMHhiNjAgbmV0 L25zaC9uc2guYzoxMDcKIHNrYl9tYWNfZ3NvX3NlZ21lbnQrMHgzYWQvMHg3MjAgbmV0L2NvcmUv ZGV2LmM6Mjc5MgogbnNoX2dzb19zZWdtZW50KzB4NDA1LzB4YjYwIG5ldC9uc2gvbnNoLmM6MTA3 CiBza2JfbWFjX2dzb19zZWdtZW50KzB4M2FkLzB4NzIwIG5ldC9jb3JlL2Rldi5jOjI3OTIKIG5z aF9nc29fc2VnbWVudCsweDQwNS8weGI2MCBuZXQvbnNoL25zaC5jOjEwNwogc2tiX21hY19nc29f c2VnbWVudCsweDNhZC8weDcyMCBuZXQvY29yZS9kZXYuYzoyNzkyCiBuc2hfZ3NvX3NlZ21lbnQr MHg0MDUvMHhiNjAgbmV0L25zaC9uc2guYzoxMDcKIHNrYl9tYWNfZ3NvX3NlZ21lbnQrMHgzYWQv MHg3MjAgbmV0L2NvcmUvZGV2LmM6Mjc5MgogbnNoX2dzb19zZWdtZW50KzB4NDA1LzB4YjYwIG5l dC9uc2gvbnNoLmM6MTA3CiBza2JfbWFjX2dzb19zZWdtZW50KzB4M2FkLzB4NzIwIG5ldC9jb3Jl L2Rldi5jOjI3OTIKIG5zaF9nc29fc2VnbWVudCsweDQwNS8weGI2MCBuZXQvbnNoL25zaC5jOjEw Nwogc2tiX21hY19nc29fc2VnbWVudCsweDNhZC8weDcyMCBuZXQvY29yZS9kZXYuYzoyNzkyCiBu c2hfZ3NvX3NlZ21lbnQrMHg0MDUvMHhiNjAgbmV0L25zaC9uc2guYzoxMDcKIHNrYl9tYWNfZ3Nv X3NlZ21lbnQrMHgzYWQvMHg3MjAgbmV0L2NvcmUvZGV2LmM6Mjc5MgogbnNoX2dzb19zZWdtZW50 KzB4NDA1LzB4YjYwIG5ldC9uc2gvbnNoLmM6MTA3CiBza2JfbWFjX2dzb19zZWdtZW50KzB4M2Fk LzB4NzIwIG5ldC9jb3JlL2Rldi5jOjI3OTIKIG5zaF9nc29fc2VnbWVudCsweDQwNS8weGI2MCBu ZXQvbnNoL25zaC5jOjEwNwogc2tiX21hY19nc29fc2VnbWVudCsweDNhZC8weDcyMCBuZXQvY29y ZS9kZXYuYzoyNzkyCiBuc2hfZ3NvX3NlZ21lbnQrMHg0MDUvMHhiNjAgbmV0L25zaC9uc2guYzox MDcKIHNrYl9tYWNfZ3NvX3NlZ21lbnQrMHgzYWQvMHg3MjAgbmV0L2NvcmUvZGV2LmM6Mjc5Mgog bnNoX2dzb19zZWdtZW50KzB4NDA1LzB4YjYwIG5ldC9uc2gvbnNoLmM6MTA3CiBza2JfbWFjX2dz b19zZWdtZW50KzB4M2FkLzB4NzIwIG5ldC9jb3JlL2Rldi5jOjI3OTIKIG5zaF9nc29fc2VnbWVu dCsweDQwNS8weGI2MCBuZXQvbnNoL25zaC5jOjEwNwogc2tiX21hY19nc29fc2VnbWVudCsweDNh ZC8weDcyMCBuZXQvY29yZS9kZXYuYzoyNzkyCiBuc2hfZ3NvX3NlZ21lbnQrMHg0MDUvMHhiNjAg bmV0L25zaC9uc2guYzoxMDcKIHNrYl9tYWNfZ3NvX3NlZ21lbnQrMHgzYWQvMHg3MjAgbmV0L2Nv cmUvZGV2LmM6Mjc5MgogbnNoX2dzb19zZWdtZW50KzB4NDA1LzB4YjYwIG5ldC9uc2gvbnNoLmM6 MTA3CiBza2JfbWFjX2dzb19zZWdtZW50KzB4M2FkLzB4NzIwIG5ldC9jb3JlL2Rldi5jOjI3OTIK IG5zaF9nc29fc2VnbWVudCsweDQwNS8weGI2MCBuZXQvbnNoL25zaC5jOjEwNwogc2tiX21hY19n c29fc2VnbWVudCsweDNhZC8weDcyMCBuZXQvY29yZS9kZXYuYzoyNzkyCiBuc2hfZ3NvX3NlZ21l bnQrMHg0MDUvMHhiNjAgbmV0L25zaC9uc2guYzoxMDcKIHNrYl9tYWNfZ3NvX3NlZ21lbnQrMHgz YWQvMHg3MjAgbmV0L2NvcmUvZGV2LmM6Mjc5MgogbnNoX2dzb19zZWdtZW50KzB4NDA1LzB4YjYw IG5ldC9uc2gvbnNoLmM6MTA3CiBza2JfbWFjX2dzb19zZWdtZW50KzB4M2FkLzB4NzIwIG5ldC9j b3JlL2Rldi5jOjI3OTIKIG5zaF9nc29fc2VnbWVudCsweDQwNS8weGI2MCBuZXQvbnNoL25zaC5j OjEwNwogc2tiX21hY19nc29fc2VnbWVudCsweDNhZC8weDcyMCBuZXQvY29yZS9kZXYuYzoyNzky CiBuc2hfZ3NvX3NlZ21lbnQrMHg0MDUvMHhiNjAgbmV0L25zaC9uc2guYzoxMDcKIHNrYl9tYWNf Z3NvX3NlZ21lbnQrMHgzYWQvMHg3MjAgbmV0L2NvcmUvZGV2LmM6Mjc5MgogbnNoX2dzb19zZWdt ZW50KzB4NDA1LzB4YjYwIG5ldC9uc2gvbnNoLmM6MTA3CiBza2JfbWFjX2dzb19zZWdtZW50KzB4 M2FkLzB4NzIwIG5ldC9jb3JlL2Rldi5jOjI3OTIKIG5zaF9nc29fc2VnbWVudCsweDQwNS8weGI2 MCBuZXQvbnNoL25zaC5jOjEwNwogc2tiX21hY19nc29fc2VnbWVudCsweDNhZC8weDcyMCBuZXQv Y29yZS9kZXYuYzoyNzkyCiBuc2hfZ3NvX3NlZ21lbnQrMHg0MDUvMHhiNjAgbmV0L25zaC9uc2gu YzoxMDcKIHNrYl9tYWNfZ3NvX3NlZ21lbnQrMHgzYWQvMHg3MjAgbmV0L2NvcmUvZGV2LmM6Mjc5 MgogbnNoX2dzb19zZWdtZW50KzB4NDA1LzB4YjYwIG5ldC9uc2gvbnNoLmM6MTA3CiBza2JfbWFj X2dzb19zZWdtZW50KzB4M2FkLzB4NzIwIG5ldC9jb3JlL2Rldi5jOjI3OTIKIF9fc2tiX2dzb19z ZWdtZW50KzB4M2JiLzB4ODcwIG5ldC9jb3JlL2Rldi5jOjI4NjUKIHNrYl9nc29fc2VnbWVudCBp bmNsdWRlL2xpbnV4L25ldGRldmljZS5oOjQwMjUgW2lubGluZV0KIHZhbGlkYXRlX3htaXRfc2ti KzB4NTRkLzB4ZDkwIG5ldC9jb3JlL2Rldi5jOjMxMTgKIHZhbGlkYXRlX3htaXRfc2tiX2xpc3Qr MHhiZi8weDEyMCBuZXQvY29yZS9kZXYuYzozMTY4CiBzY2hfZGlyZWN0X3htaXQrMHgzNTQvMHgx MWUwIG5ldC9zY2hlZC9zY2hfZ2VuZXJpYy5jOjMxMgogcWRpc2NfcmVzdGFydCBuZXQvc2NoZWQv c2NoX2dlbmVyaWMuYzozOTkgW2lubGluZV0KIF9fcWRpc2NfcnVuKzB4NzQxLzB4MWFmMCBuZXQv c2NoZWQvc2NoX2dlbmVyaWMuYzo0MTAKIF9fZGV2X3htaXRfc2tiIG5ldC9jb3JlL2Rldi5jOjMy NDMgW2lubGluZV0KIF9fZGV2X3F1ZXVlX3htaXQrMHgyOGVhLzB4MzRjMCBuZXQvY29yZS9kZXYu YzozNTUxCiBkZXZfcXVldWVfeG1pdCsweDE3LzB4MjAgbmV0L2NvcmUvZGV2LmM6MzYxNgogcGFj a2V0X3NuZCBuZXQvcGFja2V0L2FmX3BhY2tldC5jOjI5NTEgW2lubGluZV0KIHBhY2tldF9zZW5k bXNnKzB4NDBmOC8weDYwNzAgbmV0L3BhY2tldC9hZl9wYWNrZXQuYzoyOTc2CiBzb2NrX3NlbmRt c2dfbm9zZWMgbmV0L3NvY2tldC5jOjYyOSBbaW5saW5lXQogc29ja19zZW5kbXNnKzB4ZDUvMHgx MjAgbmV0L3NvY2tldC5jOjYzOQogX19zeXNfc2VuZHRvKzB4M2Q3LzB4NjcwIG5ldC9zb2NrZXQu YzoxNzg5CiBfX2RvX3N5c19zZW5kdG8gbmV0L3NvY2tldC5jOjE4MDEgW2lubGluZV0KIF9fc2Vf c3lzX3NlbmR0byBuZXQvc29ja2V0LmM6MTc5NyBbaW5saW5lXQogX194NjRfc3lzX3NlbmR0bysw eGUxLzB4MWEwIG5ldC9zb2NrZXQuYzoxNzk3CiBkb19zeXNjYWxsXzY0KzB4MWIxLzB4ODAwIGFy Y2gveDg2L2VudHJ5L2NvbW1vbi5jOjI4NwogZW50cnlfU1lTQ0FMTF82NF9hZnRlcl9od2ZyYW1l KzB4NDkvMHhiZQoKRml4ZXM6IGM0MTFlZDg1NDU4NCAoIm5zaDogYWRkIEdTTyBzdXBwb3J0IikK U2lnbmVkLW9mZi1ieTogRXJpYyBEdW1hemV0IDxlZHVtYXpldEBnb29nbGUuY29tPgpDYzogSmly aSBCZW5jIDxqYmVuY0ByZWRoYXQuY29tPgpSZXBvcnRlZC1ieTogc3l6Ym90IDxzeXprYWxsZXJA Z29vZ2xlZ3JvdXBzLmNvbT4KQWNrZWQtYnk6IEppcmkgQmVuYyA8amJlbmNAcmVkaGF0LmNvbT4K U2lnbmVkLW9mZi1ieTogRGF2aWQgUy4gTWlsbGVyIDxkYXZlbUBkYXZlbWxvZnQubmV0PgotLS0K IG5ldC9uc2gvbnNoLmMgfCA0ICsrKysKIDEgZmlsZSBjaGFuZ2VkLCA0IGluc2VydGlvbnMoKykK CmRpZmYgLS1naXQgYS9uZXQvbnNoL25zaC5jIGIvbmV0L25zaC9uc2guYwppbmRleCBkN2RhOTlh MGIwYjguLjk2OTZlZjk2YjcxOSAxMDA2NDQKLS0tIGEvbmV0L25zaC9uc2guYworKysgYi9uZXQv bnNoL25zaC5jCkBAIC01Nyw2ICs1Nyw4IEBAIGludCBuc2hfcG9wKHN0cnVjdCBza19idWZmICpz a2IpCiAJCXJldHVybiAtRU5PTUVNOwogCW5oID0gKHN0cnVjdCBuc2hoZHIgKikoc2tiLT5kYXRh KTsKIAlsZW5ndGggPSBuc2hfaGRyX2xlbihuaCk7CisJaWYgKGxlbmd0aCA8IE5TSF9CQVNFX0hE Ul9MRU4pCisJCXJldHVybiAtRUlOVkFMOwogCWlubmVyX3Byb3RvID0gdHVuX3BfdG9fZXRoX3Ao bmgtPm5wKTsKIAlpZiAoIXBza2JfbWF5X3B1bGwoc2tiLCBsZW5ndGgpKQogCQlyZXR1cm4gLUVO T01FTTsKQEAgLTkwLDYgKzkyLDggQEAgc3RhdGljIHN0cnVjdCBza19idWZmICpuc2hfZ3NvX3Nl Z21lbnQoc3RydWN0IHNrX2J1ZmYgKnNrYiwKIAlpZiAodW5saWtlbHkoIXBza2JfbWF5X3B1bGwo c2tiLCBOU0hfQkFTRV9IRFJfTEVOKSkpCiAJCWdvdG8gb3V0OwogCW5zaF9sZW4gPSBuc2hfaGRy X2xlbihuc2hfaGRyKHNrYikpOworCWlmIChuc2hfbGVuIDwgTlNIX0JBU0VfSERSX0xFTikKKwkJ Z290byBvdXQ7CiAJaWYgKHVubGlrZWx5KCFwc2tiX21heV9wdWxsKHNrYiwgbnNoX2xlbikpKQog CQlnb3RvIG91dDsKIAotLSAKMi4xNC4zCgoKRnJvbSAxOTM4YjVlNWQ3NWE4ODA5Y2YxYWJlYTBj ZjFmNjFkMjg5ZTY3NTVmIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBQYW9sbyBBYmVu aSA8cGFiZW5pQHJlZGhhdC5jb20+CkRhdGU6IFdlZCwgOSBNYXkgMjAxOCAxMjo0MjozNCArMDIw MApTdWJqZWN0OiBbUEFUQ0ggNDIvNTVdIHVkcDogZml4IFNPX0JJTkRUT0RFVklDRQoKWyBVcHN0 cmVhbSBjb21taXQgNjk2NzhiY2Q0ZDJkZWRiYzNlOGZjZDZkN2Q5OWYyODNkODNjNTMxYSBdCgpE YW1pciByZXBvcnRlZCBhIGJyZWFrYWdlIG9mIFNPX0JJTkRUT0RFVklDRSBmb3IgVURQIHNvY2tl dHMuCkluIGFic2VuY2Ugb2YgVlJGIGRldmljZXMsIGFmdGVyIGNvbW1pdCBmYjc0YzI3NzM1ZjAg KCJuZXQ6CmlwdjQ6IGFkZCBzZWNvbmQgZGlmIHRvIHVkcCBzb2NrZXQgbG9va3VwcyIpIHRoZSBk aWYgbWlzbWF0Y2gKaXNuJ3QgZmF0YWwgYW55bW9yZSBmb3IgVURQIHNvY2tldCBsb29rdXAgd2l0 aCBub24gbnVsbApza19ib3VuZF9kZXZfaWYsIGJyZWFraW5nIFNPX0JJTkRUT0RFVklDRSBzZW1h bnRpY3MuCgpUaGlzIGNoYW5nZXNldCBhZGRyZXNzZXMgdGhlIGlzc3VlIG1ha2luZyB0aGUgZGlm IG1hdGNoIG1hbmRhdG9yeQphZ2FpbiBpbiB0aGUgYWJvdmUgc2NlbmFyaW8uCgpSZXBvcnRlZC1i eTogRGFtaXIgTWFuc3Vyb3YgPGRubWFuQG9rdGV0bGFicy5ydT4KRml4ZXM6IGZiNzRjMjc3MzVm MCAoIm5ldDogaXB2NDogYWRkIHNlY29uZCBkaWYgdG8gdWRwIHNvY2tldCBsb29rdXBzIikKRml4 ZXM6IDE4MDFiNTcwZGQyYSAoIm5ldDogaXB2NjogYWRkIHNlY29uZCBkaWYgdG8gdWRwIHNvY2tl dCBsb29rdXBzIikKU2lnbmVkLW9mZi1ieTogUGFvbG8gQWJlbmkgPHBhYmVuaUByZWRoYXQuY29t PgpBY2tlZC1ieTogRGF2aWQgQWhlcm4gPGRzYWhlcm5AZ21haWwuY29tPgpTaWduZWQtb2ZmLWJ5 OiBEYXZpZCBTLiBNaWxsZXIgPGRhdmVtQGRhdmVtbG9mdC5uZXQ+Ci0tLQogbmV0L2lwdjQvdWRw LmMgfCA0ICsrLS0KIG5ldC9pcHY2L3VkcC5jIHwgNCArKy0tCiAyIGZpbGVzIGNoYW5nZWQsIDQg aW5zZXJ0aW9ucygrKSwgNCBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9uZXQvaXB2NC91ZHAu YyBiL25ldC9pcHY0L3VkcC5jCmluZGV4IGZiNTk5Mjk4ODQ1MC4uYjZiYTUxNTM2YjM3IDEwMDY0 NAotLS0gYS9uZXQvaXB2NC91ZHAuYworKysgYi9uZXQvaXB2NC91ZHAuYwpAQCAtNDA3LDkgKzQw Nyw5IEBAIHN0YXRpYyBpbnQgY29tcHV0ZV9zY29yZShzdHJ1Y3Qgc29jayAqc2ssIHN0cnVjdCBu ZXQgKm5ldCwKIAkJYm9vbCBkZXZfbWF0Y2ggPSAoc2stPnNrX2JvdW5kX2Rldl9pZiA9PSBkaWYg fHwKIAkJCQkgIHNrLT5za19ib3VuZF9kZXZfaWYgPT0gc2RpZik7CiAKLQkJaWYgKGV4YWN0X2Rp ZiAmJiAhZGV2X21hdGNoKQorCQlpZiAoIWRldl9tYXRjaCkKIAkJCXJldHVybiAtMTsKLQkJaWYg KHNrLT5za19ib3VuZF9kZXZfaWYgJiYgZGV2X21hdGNoKQorCQlpZiAoc2stPnNrX2JvdW5kX2Rl dl9pZikKIAkJCXNjb3JlICs9IDQ7CiAJfQogCmRpZmYgLS1naXQgYS9uZXQvaXB2Ni91ZHAuYyBi L25ldC9pcHY2L3VkcC5jCmluZGV4IDUyZTNlYTBlNmY1MC4uNjhkNTg5ZjhkMmIyIDEwMDY0NAot LS0gYS9uZXQvaXB2Ni91ZHAuYworKysgYi9uZXQvaXB2Ni91ZHAuYwpAQCAtMTQ4LDkgKzE0OCw5 IEBAIHN0YXRpYyBpbnQgY29tcHV0ZV9zY29yZShzdHJ1Y3Qgc29jayAqc2ssIHN0cnVjdCBuZXQg Km5ldCwKIAkJYm9vbCBkZXZfbWF0Y2ggPSAoc2stPnNrX2JvdW5kX2Rldl9pZiA9PSBkaWYgfHwK IAkJCQkgIHNrLT5za19ib3VuZF9kZXZfaWYgPT0gc2RpZik7CiAKLQkJaWYgKGV4YWN0X2RpZiAm JiAhZGV2X21hdGNoKQorCQlpZiAoIWRldl9tYXRjaCkKIAkJCXJldHVybiAtMTsKLQkJaWYgKHNr LT5za19ib3VuZF9kZXZfaWYgJiYgZGV2X21hdGNoKQorCQlpZiAoc2stPnNrX2JvdW5kX2Rldl9p ZikKIAkJCXNjb3JlKys7CiAJfQogCi0tIAoyLjE0LjMKCgpGcm9tIDE2OTQxMDY1YzJjNjFiMGU3 MGQ1ZDlmOWFhYzExZTM5NzAzMzgwNTAgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCkZyb206IElk byBTY2hpbW1lbCA8aWRvc2NoQG1lbGxhbm94LmNvbT4KRGF0ZTogVGh1LCAyNiBBcHIgMjAxOCAx MTo0NjoyOSArMDMwMApTdWJqZWN0OiBbUEFUQ0ggNDMvNTVdIG1seHN3OiBzcGVjdHJ1bV9zd2l0 Y2hkZXY6IERvIG5vdCByZW1vdmUgbXJvdXRlciBwb3J0CiBmcm9tIE1EQidzIHBvcnRzIGxpc3QK ClsgVXBzdHJlYW0gY29tbWl0IGM3ZjQ2Y2NhOGM3M2E0NDMxMWU0MTY0YjkxOTZiNGQ3OTFmNTlh YzcgXQoKV2hlbiBJR01QIHNub29waW5nIGlzIGVuYWJsZWQgb24gYSBicmlkZ2UsIHRyYWZmaWMg Zm9yd2FyZGVkIGJ5IGFuIE1EQgplbnRyeSBzaG91bGQgYmUgc2VudCB0byBib3RoIHBvcnRzIG1l bWJlciBpbiB0aGUgTURCJ3MgcG9ydHMgbGlzdCBhbmQKbXJvdXRlciBwb3J0cy4KCkluIGNhc2Ug YSBwb3J0IG5lZWRzIHRvIGJlIHJlbW92ZWQgZnJvbSBhbiBNREIncyBwb3J0cyBsaXN0LCBidXQg dGhpcwpwb3J0IGlzIGFsc28gY29uZmlndXJlZCBhcyBhbiBtcm91dGVyIHBvcnQsIHRoZW4gZG8g bm90IHVwZGF0ZSB0aGUKZGV2aWNlIHNvIHRoYXQgaXQgd2lsbCBjb250aW51ZSB0byBmb3J3YXJk IHRyYWZmaWMgdGhyb3VnaCB0aGF0IHBvcnQuCgpGaXggYSBjb3B5LXBhc3RlIGVycm9yIHRoYXQg Y2hlY2tlZCB0aGF0IElHTVAgc25vb3BpbmcgaXMgZW5hYmxlZCB0d2ljZQppbnN0ZWFkIG9mIGNo ZWNraW5nIHRoZSBwb3J0J3MgbXJvdXRlciBzdGF0ZS4KCkZpeGVzOiBkZWQ3MTFjODdhMDQgKCJt bHhzdzogc3BlY3RydW1fc3dpdGNoZGV2OiBDb25zaWRlciBtcm91dGVyIHN0YXR1cyBmb3IgbWRi IGNoYW5nZXMiKQpTaWduZWQtb2ZmLWJ5OiBJZG8gU2NoaW1tZWwgPGlkb3NjaEBtZWxsYW5veC5j b20+ClJlcG9ydGVkLWJ5OiBDb2xpbiBLaW5nIDxjb2xpbi5raW5nQGNhbm9uaWNhbC5jb20+ClJl dmlld2VkLWJ5OiBOb2dhaCBGcmFua2VsIDxub2dhaGZAbWVsbGFub3guY29tPgpTaWduZWQtb2Zm LWJ5OiBEYXZpZCBTLiBNaWxsZXIgPGRhdmVtQGRhdmVtbG9mdC5uZXQ+Ci0tLQogZHJpdmVycy9u ZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4c3cvc3BlY3RydW1fc3dpdGNoZGV2LmMgfCAxMiArKysr Ky0tLS0tLS0KIDEgZmlsZSBjaGFuZ2VkLCA1IGluc2VydGlvbnMoKyksIDcgZGVsZXRpb25zKC0p CgpkaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4c3cvc3BlY3Ry dW1fc3dpdGNoZGV2LmMgYi9kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHhzdy9zcGVj dHJ1bV9zd2l0Y2hkZXYuYwppbmRleCAxNjFiY2RjMDEyZjAuLmZkNmI4Njg5MjU5NSAxMDA2NDQK LS0tIGEvZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4c3cvc3BlY3RydW1fc3dpdGNo ZGV2LmMKKysrIGIvZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4c3cvc3BlY3RydW1f c3dpdGNoZGV2LmMKQEAgLTE3MTgsMTMgKzE3MTgsMTEgQEAgX19tbHhzd19zcF9wb3J0X21kYl9k ZWwoc3RydWN0IG1seHN3X3NwX3BvcnQgKm1seHN3X3NwX3BvcnQsCiAJc3RydWN0IG5ldF9kZXZp Y2UgKmRldiA9IG1seHN3X3NwX3BvcnQtPmRldjsKIAlpbnQgZXJyOwogCi0JaWYgKGJyaWRnZV9w b3J0LT5icmlkZ2VfZGV2aWNlLT5tdWx0aWNhc3RfZW5hYmxlZCkgewotCQlpZiAoYnJpZGdlX3Bv cnQtPmJyaWRnZV9kZXZpY2UtPm11bHRpY2FzdF9lbmFibGVkKSB7Ci0JCQllcnIgPSBtbHhzd19z cF9wb3J0X3NtaWRfc2V0KG1seHN3X3NwX3BvcnQsIG1pZC0+bWlkLAotCQkJCQkJICAgICBmYWxz ZSk7Ci0JCQlpZiAoZXJyKQotCQkJCW5ldGRldl9lcnIoZGV2LCAiVW5hYmxlIHRvIHJlbW92ZSBw b3J0IGZyb20gU01JRFxuIik7Ci0JCX0KKwlpZiAoYnJpZGdlX3BvcnQtPmJyaWRnZV9kZXZpY2Ut Pm11bHRpY2FzdF9lbmFibGVkICYmCisJICAgICFicmlkZ2VfcG9ydC0+bXJvdXRlcikgeworCQll cnIgPSBtbHhzd19zcF9wb3J0X3NtaWRfc2V0KG1seHN3X3NwX3BvcnQsIG1pZC0+bWlkLCBmYWxz ZSk7CisJCWlmIChlcnIpCisJCQluZXRkZXZfZXJyKGRldiwgIlVuYWJsZSB0byByZW1vdmUgcG9y dCBmcm9tIFNNSURcbiIpOwogCX0KIAogCWVyciA9IG1seHN3X3NwX3BvcnRfcmVtb3ZlX2Zyb21f bWlkKG1seHN3X3NwX3BvcnQsIG1pZCk7Ci0tIAoyLjE0LjMKCgpGcm9tIDdmNjg1NjQ2Mjc3OTUz ZWEwYjU0YWJkOGI2MzIxZDA1NzUwMGI4YmIgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCkZyb206 IEh1eSBOZ3V5ZW4gPGh1eW5AbWVsbGFub3guY29tPgpEYXRlOiBUaHUsIDIxIERlYyAyMDE3IDE1 OjE1OjI0IC0wNjAwClN1YmplY3Q6IFtQQVRDSCA0NC81NV0gbmV0L21seDVlOiBEQ0JOTCBmaXgg bWluIGlubGluZSBoZWFkZXIgc2l6ZSBmb3IgZHNjcAoKWyBVcHN0cmVhbSBjb21taXQgMzVmODBh Y2IyNGNkNTNkYWJkNjVlMDY2MGU0NmFmZGY1YzQ1OTkxZCBdCgpXaGVuIHRoZSB0cnVzdCBzdGF0 ZSBpcyBzZXQgdG8gZHNjcCBhbmQgdGhlIG5ldGRldiBpcyBkb3duLCB0aGUgaW5saW5lCmhlYWRl ciBzaXplIGlzIG5vdCB1cGRhdGVkLiBXaGVuIG5ldGRldiBpcyB1cCwgdGhlIGlubGluZSBoZWFk ZXIgc2l6ZQpzdGF5cyBhdCBMMiBpbnN0ZWFkIG9mIElQLgoKRml4IHRoaXMgaXNzdWUgYnkgdXBk YXRpbmcgdGhlIHByaXZhdGUgcGFyYW1ldGVyIHdoZW4gdGhlIG5ldGRldiBpcyBpbgpkb3duIHNv IHRoYXQgd2hlbiBuZXRkZXYgaXMgdXAsIGl0IHBpY2tzIHVwIHRoZSByaWdodCBoZWFkZXIgc2l6 ZS4KCkZpeGVzOiBmYmNiMTI3ZTg5YmEgKCJuZXQvbWx4NWU6IFN1cHBvcnQgRFNDUCB0cnVzdCBz dGF0ZSAuLi4iKQpTaWduZWQtb2ZmLWJ5OiBIdXkgTmd1eWVuIDxodXluQG1lbGxhbm94LmNvbT4K U2lnbmVkLW9mZi1ieTogU2FlZWQgTWFoYW1lZWQgPHNhZWVkbUBtZWxsYW5veC5jb20+Ci0tLQog ZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2VuX2RjYm5sLmMgfCA4ICsr KysrLS0tCiAxIGZpbGUgY2hhbmdlZCwgNSBpbnNlcnRpb25zKCspLCAzIGRlbGV0aW9ucygtKQoK ZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9lbl9k Y2JubC5jIGIvZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2VuX2RjYm5s LmMKaW5kZXggM2Q0NmVmNDhkNWI4Li5jNjQxZDU2NTZiMmQgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMv bmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9lbl9kY2JubC5jCisrKyBiL2RyaXZlcnMv bmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9lbl9kY2JubC5jCkBAIC0xMDA3LDEyICsx MDA3LDE0IEBAIHN0YXRpYyB2b2lkIG1seDVlX3RydXN0X3VwZGF0ZV9zcV9pbmxpbmVfbW9kZShz dHJ1Y3QgbWx4NWVfcHJpdiAqcHJpdikKIAogCW11dGV4X2xvY2soJnByaXYtPnN0YXRlX2xvY2sp OwogCi0JaWYgKCF0ZXN0X2JpdChNTFg1RV9TVEFURV9PUEVORUQsICZwcml2LT5zdGF0ZSkpCi0J CWdvdG8gb3V0OwotCiAJbmV3X2NoYW5uZWxzLnBhcmFtcyA9IHByaXYtPmNoYW5uZWxzLnBhcmFt czsKIAltbHg1ZV90cnVzdF91cGRhdGVfdHhfbWluX2lubGluZV9tb2RlKHByaXYsICZuZXdfY2hh bm5lbHMucGFyYW1zKTsKIAorCWlmICghdGVzdF9iaXQoTUxYNUVfU1RBVEVfT1BFTkVELCAmcHJp di0+c3RhdGUpKSB7CisJCXByaXYtPmNoYW5uZWxzLnBhcmFtcyA9IG5ld19jaGFubmVscy5wYXJh bXM7CisJCWdvdG8gb3V0OworCX0KKwogCS8qIFNraXAgaWYgdHhfbWluX2lubGluZSBpcyB0aGUg c2FtZSAqLwogCWlmIChuZXdfY2hhbm5lbHMucGFyYW1zLnR4X21pbl9pbmxpbmVfbW9kZSA9PQog CSAgICBwcml2LT5jaGFubmVscy5wYXJhbXMudHhfbWluX2lubGluZV9tb2RlKQotLSAKMi4xNC4z CgoKRnJvbSBiMTZkMzk1ZmU5NmY1ODAwNjE0M2E3Y2YwZWVkZGRkNzBiNzVlOGY1IE1vbiBTZXAg MTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBGbG9yaWFuIEZhaW5lbGxpIDxmLmZhaW5lbGxpQGdtYWls LmNvbT4KRGF0ZTogV2VkLCAyNSBBcHIgMjAxOCAxNjoyMTo1MSAtMDcwMApTdWJqZWN0OiBbUEFU Q0ggNDUvNTVdIG5ldDogc3lzdGVtcG9ydDogQ29ycmVjbHR5IGRpc2FtYmlndWF0ZSBkcml2ZXIK IGluc3RhbmNlcwoKWyBVcHN0cmVhbSBjb21taXQgMWYzY2NjM2MzZmMyNjQ2OGJlMDAzOTJlZjBi MmMyMTVmOWM5ZDA1NCBdCgpXaGlsZSBhZGRpbmcgdGhlIERTQSBub3RpZmllciwgd2Ugd2lsbCBi ZSBzZW5kaW5nIERTQSBub3RpZmljYXRpb25zIHdpdGgKaW5mby0+bWFzdGVyIHRoYXQgaXMgZ29p bmcgdG8gcG9pbnQgdG8gYSBwYXJ0aWN1bGFyIG5ldF9kZXZpY2UgaW5zdGFuY2UuCgpPdXIgbG9n aWMgaW4gYmNtX3N5c3BvcnRfbWFwX3F1ZXVlcygpIGNvcnJlY3RseSBkaXNhbWJpZ3VhdGVzIG5l dF9kZXZpY2UKaW5zdGFuY2VzIHRoYXQgYXJlIG5vdCBjb3ZlcmVkIGJ5IG91ciBvd24gZHJpdmVy LCBidXQgaXQgd2lsbCBub3QgbWFrZQpzdXJlIHRoYXQgaW5mby0+bWFzdGVyIHBvaW50cyB0byBh IHBhcnRpY3VsYXIgZHJpdmVyIGluc3RhbmNlIHRoYXQgd2UKYXJlIGludGVyZXN0ZWQgaW4uIElu IGEgc3lzdGVtIHdoZXJlIGUuZzogdHdvIG9yIG1vcmUgU1lTVEVNUE9SVAppbnN0YW5jZXMgYXJl IHJlZ2lzdGVyZWQsIHRoaXMgd291bGQgbGVhZCBpbiBwcm9ncmFtbWluZyB0d28gb3IgbW9yZQp0 aW1lcyB0aGUgcXVldWUgbWFwcGluZywgY29tcGxldGVseSBtZXNzaW5nIHdpdGggdGhlIGxvZ2lj IHdoaWNoIGRvZXMKdGhlIHF1ZXVlL3BvcnQgYWxsb2NhdGlvbiBhbmQgdHJhY2tpbmcuCgpGaXgg dGhpcyBieSBsb29raW5nIGF0IHRoZSBub3RpZmllcl9ibG9jayBwb2ludGVyIHdoaWNoIGlzIHVu aXF1ZSBwZXIKaW5zdGFuY2UgYW5kIGFsbG93cyB1cyB0byBnbyBiYWNrIHRvIG91ciBkcml2ZXIg cHJpdmF0ZSBzdHJ1Y3R1cmUsIGFuZAppbiB0dXJuIHRvIHRoZSBiYWNraW5nIG5ldF9kZXZpY2Ug aW5zdGFuY2UuCgpGaXhlczogZDE1NjU3NjM2MmMwICgibmV0OiBzeXN0ZW1wb3J0OiBFc3RhYmxp c2ggbG93ZXIvdXBwZXIgcXVldWUgbWFwcGluZyIpClNpZ25lZC1vZmYtYnk6IEZsb3JpYW4gRmFp bmVsbGkgPGYuZmFpbmVsbGlAZ21haWwuY29tPgpSZXZpZXdlZC1ieTogVml2aWVuIERpZGVsb3Qg PHZpdmllbi5kaWRlbG90QHNhdm9pcmZhaXJlbGludXguY29tPgpTaWduZWQtb2ZmLWJ5OiBEYXZp ZCBTLiBNaWxsZXIgPGRhdmVtQGRhdmVtbG9mdC5uZXQ+Ci0tLQogZHJpdmVycy9uZXQvZXRoZXJu ZXQvYnJvYWRjb20vYmNtc3lzcG9ydC5jIHwgMTYgKysrKysrKysrKysrLS0tLQogMSBmaWxlIGNo YW5nZWQsIDEyIGluc2VydGlvbnMoKyksIDQgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvZHJp dmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vYmNtc3lzcG9ydC5jIGIvZHJpdmVycy9uZXQvZXRo ZXJuZXQvYnJvYWRjb20vYmNtc3lzcG9ydC5jCmluZGV4IDNmYzU0OWI4OGM0My4uZDYxZTUxZWJj YTUxIDEwMDY0NAotLS0gYS9kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9iY21zeXNwb3J0 LmMKKysrIGIvZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vYmNtc3lzcG9ydC5jCkBAIC0y MDUyLDE0ICsyMDUyLDIxIEBAIHN0YXRpYyBjb25zdCBzdHJ1Y3QgbmV0X2RldmljZV9vcHMgYmNt X3N5c3BvcnRfbmV0ZGV2X29wcyA9IHsKIAkubmRvX3NlbGVjdF9xdWV1ZQk9IGJjbV9zeXNwb3J0 X3NlbGVjdF9xdWV1ZSwKIH07CiAKLXN0YXRpYyBpbnQgYmNtX3N5c3BvcnRfbWFwX3F1ZXVlcyhz dHJ1Y3QgbmV0X2RldmljZSAqZGV2LAorc3RhdGljIGludCBiY21fc3lzcG9ydF9tYXBfcXVldWVz KHN0cnVjdCBub3RpZmllcl9ibG9jayAqbmIsCiAJCQkJICBzdHJ1Y3QgZHNhX25vdGlmaWVyX3Jl Z2lzdGVyX2luZm8gKmluZm8pCiB7Ci0Jc3RydWN0IGJjbV9zeXNwb3J0X3ByaXYgKnByaXYgPSBu ZXRkZXZfcHJpdihkZXYpOwogCXN0cnVjdCBiY21fc3lzcG9ydF90eF9yaW5nICpyaW5nOworCXN0 cnVjdCBiY21fc3lzcG9ydF9wcml2ICpwcml2OwogCXN0cnVjdCBuZXRfZGV2aWNlICpzbGF2ZV9k ZXY7CiAJdW5zaWduZWQgaW50IG51bV90eF9xdWV1ZXM7CiAJdW5zaWduZWQgaW50IHEsIHN0YXJ0 LCBwb3J0OworCXN0cnVjdCBuZXRfZGV2aWNlICpkZXY7CisKKwlwcml2ID0gY29udGFpbmVyX29m KG5iLCBzdHJ1Y3QgYmNtX3N5c3BvcnRfcHJpdiwgZHNhX25vdGlmaWVyKTsKKwlpZiAocHJpdi0+ bmV0ZGV2ICE9IGluZm8tPm1hc3RlcikKKwkJcmV0dXJuIDA7CisKKwlkZXYgPSBpbmZvLT5tYXN0 ZXI7CiAKIAkvKiBXZSBjYW4ndCBiZSBzZXR0aW5nIHVwIHF1ZXVlIGluc3BlY3Rpb24gZm9yIG5v biBkaXJlY3RseSBhdHRhY2hlZAogCSAqIHN3aXRjaGVzCkBAIC0yMDgyLDYgKzIwODksNyBAQCBz dGF0aWMgaW50IGJjbV9zeXNwb3J0X21hcF9xdWV1ZXMoc3RydWN0IG5ldF9kZXZpY2UgKmRldiwK IAlpZiAocHJpdi0+aXNfbGl0ZSkKIAkJbmV0aWZfc2V0X3JlYWxfbnVtX3R4X3F1ZXVlcyhzbGF2 ZV9kZXYsCiAJCQkJCSAgICAgc2xhdmVfZGV2LT5udW1fdHhfcXVldWVzIC8gMik7CisKIAludW1f dHhfcXVldWVzID0gc2xhdmVfZGV2LT5yZWFsX251bV90eF9xdWV1ZXM7CiAKIAlpZiAocHJpdi0+ cGVyX3BvcnRfbnVtX3R4X3F1ZXVlcyAmJgpAQCAtMjEwOSw3ICsyMTE3LDcgQEAgc3RhdGljIGlu dCBiY21fc3lzcG9ydF9tYXBfcXVldWVzKHN0cnVjdCBuZXRfZGV2aWNlICpkZXYsCiAJcmV0dXJu IDA7CiB9CiAKLXN0YXRpYyBpbnQgYmNtX3N5c3BvcnRfZHNhX25vdGlmaWVyKHN0cnVjdCBub3Rp Zmllcl9ibG9jayAqdW51c2VkLAorc3RhdGljIGludCBiY21fc3lzcG9ydF9kc2Ffbm90aWZpZXIo c3RydWN0IG5vdGlmaWVyX2Jsb2NrICpuYiwKIAkJCQkgICAgdW5zaWduZWQgbG9uZyBldmVudCwg dm9pZCAqcHRyKQogewogCXN0cnVjdCBkc2Ffbm90aWZpZXJfcmVnaXN0ZXJfaW5mbyAqaW5mbzsK QEAgLTIxMTksNyArMjEyNyw3IEBAIHN0YXRpYyBpbnQgYmNtX3N5c3BvcnRfZHNhX25vdGlmaWVy KHN0cnVjdCBub3RpZmllcl9ibG9jayAqdW51c2VkLAogCiAJaW5mbyA9IHB0cjsKIAotCXJldHVy biBub3RpZmllcl9mcm9tX2Vycm5vKGJjbV9zeXNwb3J0X21hcF9xdWV1ZXMoaW5mby0+bWFzdGVy LCBpbmZvKSk7CisJcmV0dXJuIG5vdGlmaWVyX2Zyb21fZXJybm8oYmNtX3N5c3BvcnRfbWFwX3F1 ZXVlcyhuYiwgaW5mbykpOwogfQogCiAjZGVmaW5lIFJFVl9GTVQJInYlMnguJTAyeCIKLS0gCjIu MTQuMwoKCkZyb20gODk5NWMyMmNlNGYxZWJiYTgxM2VlYTEzODM4NDJjYTA1OTE5YjU0YiBNb24g U2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJvbTogSm9obiBIdXJsZXkgPGpvaG4uaHVybGV5QG5ldHJv bm9tZS5jb20+CkRhdGU6IFR1ZSwgMSBNYXkgMjAxOCAxNTo0OTo0OSAtMDcwMApTdWJqZWN0OiBb UEFUQ0ggNDYvNTVdIG5mcDogZmxvd2VyOiBzZXQgdHVubmVsIHR0bCB2YWx1ZSB0byBuZXQgZGVm YXVsdAoKWyBVcHN0cmVhbSBjb21taXQgNTBhNTg1MmE2NTdmNzkzYTg0ODJmZTNhZjRhMTQxYjQ2 MGQzNDk5ZSBdCgpGaXJtd2FyZSByZXF1aXJlcyB0aGF0IHRoZSB0dGwgdmFsdWUgZm9yIGFuIGVu Y2Fwc3VsYXRpbmcgaXB2NCB0dW5uZWwKaGVhZGVyIGJlIGluY2x1ZGVkIGFzIGFuIGFjdGlvbiBm aWVsZC4gUHJpb3IgdG8gdGhlIHN1cHBvcnQgb2YgR2VuZXZlCnR1bm5lbCBlbmNhcCAod2hlbiB0 dGwgc2V0IHdhcyByZW1vdmVkIGNvbXBsZXRlbHkpLCB0dGwgdmFsdWUgd2FzCmV4dHJhY3RlZCBm cm9tIHRoZSB0dW5uZWwga2V5LiBIb3dldmVyLCB0ZXN0cyBoYXZlIHNob3duIHRoYXQgdGhpcyBj YW4Kc3RpbGwgcHJvZHVjZSBhIHR0bCBvZiAwLgoKRml4IHRoZSBpc3N1ZSBieSBzZXR0aW5nIHRo ZSBuYW1lc3BhY2UgZGVmYXVsdCB2YWx1ZSBmb3IgZWFjaCBuZXcgdHVubmVsLgpGb2xsb3cgdXAg cGF0Y2ggZm9yIG5ldC1uZXh0IHdpbGwgZG8gYSBmdWxsIHJvdXRlIGxvb2t1cC4KCkZpeGVzOiAz Y2EzMDU5ZGMzYTkgKCJuZnA6IGZsb3dlcjogY29tcGlsZSBHZW5ldmUgZW5jYXAgYWN0aW9ucyIp CkZpeGVzOiBiMjdkNmE5NWE3MGQgKCJuZnA6IGNvbXBpbGUgZmxvd2VyIHZ4bGFuIHR1bm5lbCBz ZXQgYWN0aW9ucyIpClNpZ25lZC1vZmYtYnk6IEpvaG4gSHVybGV5IDxqb2huLmh1cmxleUBuZXRy b25vbWUuY29tPgpSZXZpZXdlZC1ieTogSmFrdWIgS2ljaW5za2kgPGpha3ViLmtpY2luc2tpQG5l dHJvbm9tZS5jb20+ClNpZ25lZC1vZmYtYnk6IERhdmlkIFMuIE1pbGxlciA8ZGF2ZW1AZGF2ZW1s b2Z0Lm5ldD4KLS0tCiBkcml2ZXJzL25ldC9ldGhlcm5ldC9uZXRyb25vbWUvbmZwL2Zsb3dlci9h Y3Rpb24uYyB8IDEwICsrKysrKysrLS0KIGRyaXZlcnMvbmV0L2V0aGVybmV0L25ldHJvbm9tZS9u ZnAvZmxvd2VyL2Ntc2cuaCAgIHwgIDUgKysrKy0KIDIgZmlsZXMgY2hhbmdlZCwgMTIgaW5zZXJ0 aW9ucygrKSwgMyBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC9ldGhlcm5l dC9uZXRyb25vbWUvbmZwL2Zsb3dlci9hY3Rpb24uYyBiL2RyaXZlcnMvbmV0L2V0aGVybmV0L25l dHJvbm9tZS9uZnAvZmxvd2VyL2FjdGlvbi5jCmluZGV4IGIzNTY3YTU5NmZjMS4uODBkZjlhNWQ0 MjE3IDEwMDY0NAotLS0gYS9kcml2ZXJzL25ldC9ldGhlcm5ldC9uZXRyb25vbWUvbmZwL2Zsb3dl ci9hY3Rpb24uYworKysgYi9kcml2ZXJzL25ldC9ldGhlcm5ldC9uZXRyb25vbWUvbmZwL2Zsb3dl ci9hY3Rpb24uYwpAQCAtMTgzLDE3ICsxODMsMjEgQEAgc3RhdGljIGludAogbmZwX2ZsX3NldF9p cHY0X3VkcF90dW4oc3RydWN0IG5mcF9mbF9zZXRfaXB2NF91ZHBfdHVuICpzZXRfdHVuLAogCQkJ Y29uc3Qgc3RydWN0IHRjX2FjdGlvbiAqYWN0aW9uLAogCQkJc3RydWN0IG5mcF9mbF9wcmVfdHVu bmVsICpwcmVfdHVuLAotCQkJZW51bSBuZnBfZmxvd2VyX3R1bl90eXBlIHR1bl90eXBlKQorCQkJ ZW51bSBuZnBfZmxvd2VyX3R1bl90eXBlIHR1bl90eXBlLAorCQkJc3RydWN0IG5ldF9kZXZpY2Ug Km5ldGRldikKIHsKIAlzaXplX3QgYWN0X3NpemUgPSBzaXplb2Yoc3RydWN0IG5mcF9mbF9zZXRf aXB2NF91ZHBfdHVuKTsKIAlzdHJ1Y3QgaXBfdHVubmVsX2luZm8gKmlwX3R1biA9IHRjZl90dW5u ZWxfaW5mbyhhY3Rpb24pOwogCXUzMiB0bXBfc2V0X2lwX3R1bl90eXBlX2luZGV4ID0gMDsKIAkv KiBDdXJyZW50bHkgc3VwcG9ydCBvbmUgcHJlLXR1bm5lbCBzbyBpbmRleCBpcyBhbHdheXMgMC4g Ki8KIAlpbnQgcHJldHVuX2lkeCA9IDA7CisJc3RydWN0IG5ldCAqbmV0OwogCiAJaWYgKGlwX3R1 bi0+b3B0aW9uc19sZW4pCiAJCXJldHVybiAtRU9QTk9UU1VQUDsKIAorCW5ldCA9IGRldl9uZXQo bmV0ZGV2KTsKKwogCXNldF90dW4tPmhlYWQuanVtcF9pZCA9IE5GUF9GTF9BQ1RJT05fT1BDT0RF X1NFVF9JUFY0X1RVTk5FTDsKIAlzZXRfdHVuLT5oZWFkLmxlbl9sdyA9IGFjdF9zaXplID4+IE5G UF9GTF9MV19TSVo7CiAKQEAgLTIwNCw2ICsyMDgsNyBAQCBuZnBfZmxfc2V0X2lwdjRfdWRwX3R1 bihzdHJ1Y3QgbmZwX2ZsX3NldF9pcHY0X3VkcF90dW4gKnNldF90dW4sCiAKIAlzZXRfdHVuLT50 dW5fdHlwZV9pbmRleCA9IGNwdV90b19iZTMyKHRtcF9zZXRfaXBfdHVuX3R5cGVfaW5kZXgpOwog CXNldF90dW4tPnR1bl9pZCA9IGlwX3R1bi0+a2V5LnR1bl9pZDsKKwlzZXRfdHVuLT50dGwgPSBu ZXQtPmlwdjQuc3lzY3RsX2lwX2RlZmF1bHRfdHRsOwogCiAJLyogQ29tcGxldGUgcHJlX3R1bm5l bCBhY3Rpb24uICovCiAJcHJlX3R1bi0+aXB2NF9kc3QgPSBpcF90dW4tPmtleS51LmlwdjQuZHN0 OwpAQCAtNTExLDcgKzUxNiw4IEBAIG5mcF9mbG93ZXJfbG9vcF9hY3Rpb24oY29uc3Qgc3RydWN0 IHRjX2FjdGlvbiAqYSwKIAkJKmFfbGVuICs9IHNpemVvZihzdHJ1Y3QgbmZwX2ZsX3ByZV90dW5u ZWwpOwogCiAJCXNldF90dW4gPSAodm9pZCAqKSZuZnBfZmwtPmFjdGlvbl9kYXRhWyphX2xlbl07 Ci0JCWVyciA9IG5mcF9mbF9zZXRfaXB2NF91ZHBfdHVuKHNldF90dW4sIGEsIHByZV90dW4sICp0 dW5fdHlwZSk7CisJCWVyciA9IG5mcF9mbF9zZXRfaXB2NF91ZHBfdHVuKHNldF90dW4sIGEsIHBy ZV90dW4sICp0dW5fdHlwZSwKKwkJCQkJICAgICAgbmV0ZGV2KTsKIAkJaWYgKGVycikKIAkJCXJl dHVybiBlcnI7CiAJCSphX2xlbiArPSBzaXplb2Yoc3RydWN0IG5mcF9mbF9zZXRfaXB2NF91ZHBf dHVuKTsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L2V0aGVybmV0L25ldHJvbm9tZS9uZnAvZmxv d2VyL2Ntc2cuaCBiL2RyaXZlcnMvbmV0L2V0aGVybmV0L25ldHJvbm9tZS9uZnAvZmxvd2VyL2Nt c2cuaAppbmRleCBhZGZlNDc0YzJjZjAuLjMyOWE5YjZkNDUzYSAxMDA2NDQKLS0tIGEvZHJpdmVy cy9uZXQvZXRoZXJuZXQvbmV0cm9ub21lL25mcC9mbG93ZXIvY21zZy5oCisrKyBiL2RyaXZlcnMv bmV0L2V0aGVybmV0L25ldHJvbm9tZS9uZnAvZmxvd2VyL2Ntc2cuaApAQCAtMTc4LDcgKzE3OCwx MCBAQCBzdHJ1Y3QgbmZwX2ZsX3NldF9pcHY0X3VkcF90dW4gewogCV9fYmUxNiByZXNlcnZlZDsK IAlfX2JlNjQgdHVuX2lkIF9fcGFja2VkOwogCV9fYmUzMiB0dW5fdHlwZV9pbmRleDsKLQlfX2Jl MzIgZXh0cmFbM107CisJX19iZTE2IHJlc2VydmVkMjsKKwl1OCB0dGw7CisJdTggcmVzZXJ2ZWQz OworCV9fYmUzMiBleHRyYVsyXTsKIH07CiAKIC8qIE1ldGFkYXRhIHdpdGggTDIgKDFXLzRCKQot LSAKMi4xNC4zCgoKRnJvbSAzNTIzODM1YWI4MWY1YzdiN2NjZDNiMmFmNTkxMTY1Njk0M2ZjZjI5 IE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBYaW4gTG9uZyA8bHVjaWVuLnhpbkBnbWFp bC5jb20+CkRhdGU6IFRodSwgMjYgQXByIDIwMTggMTU6MjE6NDQgKzA4MDAKU3ViamVjdDogW1BB VENIIDQ3LzU1XSBzY3RwOiBjbGVhciB0aGUgbmV3IGFzb2MncyBzdHJlYW0gb3V0Y250IGluCiBz Y3RwX3N0cmVhbV91cGRhdGUKClsgVXBzdHJlYW0gY29tbWl0IDZhOWEyN2Q1Mzk3ZmM2YzUyZjkw YzA5ZGRhYjkxZTY1MDUzNTg0YWEgXQoKV2hlbiBwcm9jZXNzaW5nIGEgZHVwbGljYXRlIGNvb2tp ZS1lY2hvIGNodW5rLCBzY3RwIG1vdmVzIHRoZSBuZXcKdGVtcCBhc29jJ3Mgc3RyZWFtIG91dC9p biBpbnRvIHRoZSBvbGQgYXNvYywgYW5kIGxhdGVyIGZyZWVzIHRoaXMKbmV3IHRlbXAgYXNvYy4K CkJ1dCBub3cgYWZ0ZXIgdGhpcyBtb3ZlLCB0aGUgbmV3IHRlbXAgYXNvYydzIHN0cmVhbS0+b3V0 Y250IGlzIG5vdApjbGVhcmVkIHdoaWxlIHN0cmVhbS0+b3V0IGlzIHNldCB0byBOVUxMLCB3aGlj aCB3b3VsZCBjYXVzZSBhIHNhbWUKY3Jhc2ggYXMgdGhlIG9uZSBmaXhlZCBpbiBDb21taXQgNzlk MDg5NTE0MGU5ICgic2N0cDogZml4IGVycm9yCnBhdGggaW4gc2N0cF9zdHJlYW1faW5pdCIpIHdo ZW4gZnJlZWluZyB0aGlzIGFzb2MgbGF0ZXIuCgpUaGlzIGZpeCBpcyB0byBjbGVhciB0aGlzIG91 dGNudCBpbiBzY3RwX3N0cmVhbV91cGRhdGUuCgpGaXhlczogZjk1MmJlNzljZWJkICgic2N0cDog aW50cm9kdWNlIHN0cnVjdCBzY3RwX3N0cmVhbV9vdXRfZXh0IikKUmVwb3J0ZWQtYnk6IEppYW53 ZW4gSmkgPGppamlAcmVkaGF0LmNvbT4KU2lnbmVkLW9mZi1ieTogWGluIExvbmcgPGx1Y2llbi54 aW5AZ21haWwuY29tPgpBY2tlZC1ieTogTmVpbCBIb3JtYW4gPG5ob3JtYW5AdHV4ZHJpdmVyLmNv bT4KQWNrZWQtYnk6IE1hcmNlbG8gUmljYXJkbyBMZWl0bmVyIDxtYXJjZWxvLmxlaXRuZXJAZ21h aWwuY29tPgpTaWduZWQtb2ZmLWJ5OiBEYXZpZCBTLiBNaWxsZXIgPGRhdmVtQGRhdmVtbG9mdC5u ZXQ+Ci0tLQogbmV0L3NjdHAvc3RyZWFtLmMgfCAyICsrCiAxIGZpbGUgY2hhbmdlZCwgMiBpbnNl cnRpb25zKCspCgpkaWZmIC0tZ2l0IGEvbmV0L3NjdHAvc3RyZWFtLmMgYi9uZXQvc2N0cC9zdHJl YW0uYwppbmRleCBmNzk5MDQzYWJlYzkuLmYxZjFkMWIyMzJiYSAxMDA2NDQKLS0tIGEvbmV0L3Nj dHAvc3RyZWFtLmMKKysrIGIvbmV0L3NjdHAvc3RyZWFtLmMKQEAgLTI0MCw2ICsyNDAsOCBAQCB2 b2lkIHNjdHBfc3RyZWFtX3VwZGF0ZShzdHJ1Y3Qgc2N0cF9zdHJlYW0gKnN0cmVhbSwgc3RydWN0 IHNjdHBfc3RyZWFtICpuZXcpCiAKIAluZXctPm91dCA9IE5VTEw7CiAJbmV3LT5pbiAgPSBOVUxM OworCW5ldy0+b3V0Y250ID0gMDsKKwluZXctPmluY250ICA9IDA7CiB9CiAKIHN0YXRpYyBpbnQg c2N0cF9zZW5kX3JlY29uZihzdHJ1Y3Qgc2N0cF9hc3NvY2lhdGlvbiAqYXNvYywKLS0gCjIuMTQu MwoKCkZyb20gZTk5YzU0YTNkNTNmZTliZjI3MmIzYjFlMGNiZjgwMzY5NzUwNTQ2MCBNb24gU2Vw IDE3IDAwOjAwOjAwIDIwMDEKRnJvbTogRXJpYyBEdW1hemV0IDxlZHVtYXpldEBnb29nbGUuY29t PgpEYXRlOiBXZWQsIDIgTWF5IDIwMTggMjA6MjU6MTMgLTA3MDAKU3ViamVjdDogW1BBVENIIDQ4 LzU1XSB0Y3A6IHJlc3RvcmUgYXV0b2NvcmtpbmcKClsgVXBzdHJlYW0gY29tbWl0IDExNGYzOWZl YWIzNjBlNmM3YjBjNDIzODY5N2YyMjM0NDRkNjYyYTEgXQoKV2hlbiBhZGRpbmcgcmItdHJlZSBm b3IgVENQIHJldHJhbnNtaXQgcXVldWUsIHdlIGluYWR2ZXJ0ZW50bHkgYnJva2UKVENQIGF1dG9j b3JraW5nLgoKdGNwX3Nob3VsZF9hdXRvY29yaygpIHNob3VsZCByZWFsbHkgY2hlY2sgaWYgdGhl IHJ0eCBxdWV1ZSBpcyBub3QgZW1wdHkuCgpUZXN0ZWQ6CgpCZWZvcmUgdGhlIGZpeCA6CiQgbnN0 YXQgLW47Li9uZXRwZXJmIC1IIDEwLjI0Ni43LjE1MiAtQ2MgLS0gLW0gNTAwO25zdGF0IHwgZ3Jl cCBBdXRvQ29yawpNSUdSQVRFRCBUQ1AgU1RSRUFNIFRFU1QgZnJvbSAwLjAuMC4wICgwLjAuMC4w KSBwb3J0IDAgQUZfSU5FVCB0byAxMC4yNDYuNy4xNTIgKCkgcG9ydCAwIEFGX0lORVQKUmVjdiAg IFNlbmQgICAgU2VuZCAgICAgICAgICAgICAgICAgICAgICAgICAgVXRpbGl6YXRpb24gICAgICAg U2VydmljZSBEZW1hbmQKU29ja2V0IFNvY2tldCAgTWVzc2FnZSAgRWxhcHNlZCAgICAgICAgICAg ICAgU2VuZCAgICAgUmVjdiAgICAgU2VuZCAgICBSZWN2ClNpemUgICBTaXplICAgIFNpemUgICAg IFRpbWUgICAgIFRocm91Z2hwdXQgIGxvY2FsICAgIHJlbW90ZSAgIGxvY2FsICAgcmVtb3RlCmJ5 dGVzICBieXRlcyAgIGJ5dGVzICAgIHNlY3MuICAgIDEwXjZiaXRzL3MgICUgUyAgICAgICUgUyAg ICAgIHVzL0tCICAgdXMvS0IKCjU0MDAwMCAyNjIxNDQgICAgNTAwICAgIDEwLjAwICAgICAgMjY4 Mi44NSAgIDIuNDcgICAgIDEuNTkgICAgIDMuNjE4ICAgMi4zMjkKVGNwRXh0VENQQXV0b0Nvcmtp bmcgICAgICAgICAgICAzMyAgICAgICAgICAgICAgICAgMC4wCgovLyBTYW1lIHRlc3QsIGJ1dCBm b3JjaW5nIFRDUF9OT0RFTEFZCiQgbnN0YXQgLW47Li9uZXRwZXJmIC1IIDEwLjI0Ni43LjE1MiAt Q2MgLS0gLUQgLW0gNTAwO25zdGF0IHwgZ3JlcCBBdXRvQ29yawpNSUdSQVRFRCBUQ1AgU1RSRUFN IFRFU1QgZnJvbSAwLjAuMC4wICgwLjAuMC4wKSBwb3J0IDAgQUZfSU5FVCB0byAxMC4yNDYuNy4x NTIgKCkgcG9ydCAwIEFGX0lORVQgOiBub2RlbGF5ClJlY3YgICBTZW5kICAgIFNlbmQgICAgICAg ICAgICAgICAgICAgICAgICAgIFV0aWxpemF0aW9uICAgICAgIFNlcnZpY2UgRGVtYW5kClNvY2tl dCBTb2NrZXQgIE1lc3NhZ2UgIEVsYXBzZWQgICAgICAgICAgICAgIFNlbmQgICAgIFJlY3YgICAg IFNlbmQgICAgUmVjdgpTaXplICAgU2l6ZSAgICBTaXplICAgICBUaW1lICAgICBUaHJvdWdocHV0 ICBsb2NhbCAgICByZW1vdGUgICBsb2NhbCAgIHJlbW90ZQpieXRlcyAgYnl0ZXMgICBieXRlcyAg ICBzZWNzLiAgICAxMF42Yml0cy9zICAlIFMgICAgICAlIFMgICAgICB1cy9LQiAgIHVzL0tCCgo1 NDAwMDAgMjYyMTQ0ICAgIDUwMCAgICAxMC4wMCAgICAgIDE0MDguNzUgICAyLjQ0ICAgICAyLjk2 ICAgICA2LjgwMiAgIDguMjU5ClRjcEV4dFRDUEF1dG9Db3JraW5nICAgICAgICAgICAgMSAgICAg ICAgICAgICAgICAgIDAuMAoKQWZ0ZXIgdGhlIGZpeCA6CiQgbnN0YXQgLW47Li9uZXRwZXJmIC1I IDEwLjI0Ni43LjE1MiAtQ2MgLS0gLW0gNTAwO25zdGF0IHwgZ3JlcCBBdXRvQ29yawpNSUdSQVRF RCBUQ1AgU1RSRUFNIFRFU1QgZnJvbSAwLjAuMC4wICgwLjAuMC4wKSBwb3J0IDAgQUZfSU5FVCB0 byAxMC4yNDYuNy4xNTIgKCkgcG9ydCAwIEFGX0lORVQKUmVjdiAgIFNlbmQgICAgU2VuZCAgICAg ICAgICAgICAgICAgICAgICAgICAgVXRpbGl6YXRpb24gICAgICAgU2VydmljZSBEZW1hbmQKU29j a2V0IFNvY2tldCAgTWVzc2FnZSAgRWxhcHNlZCAgICAgICAgICAgICAgU2VuZCAgICAgUmVjdiAg ICAgU2VuZCAgICBSZWN2ClNpemUgICBTaXplICAgIFNpemUgICAgIFRpbWUgICAgIFRocm91Z2hw dXQgIGxvY2FsICAgIHJlbW90ZSAgIGxvY2FsICAgcmVtb3RlCmJ5dGVzICBieXRlcyAgIGJ5dGVz ICAgIHNlY3MuICAgIDEwXjZiaXRzL3MgICUgUyAgICAgICUgUyAgICAgIHVzL0tCICAgdXMvS0IK CjU0MDAwMCAyNjIxNDQgICAgNTAwICAgIDEwLjAwICAgICAgNTQ3Mi40NiAgIDIuNDUgICAgIDEu NDMgICAgIDEuNzYxICAgMS4wMjcKVGNwRXh0VENQQXV0b0NvcmtpbmcgICAgICAgICAgICAzNjEy OTMgICAgICAgICAgICAgMC4wCgovLyBXaXRoIFRDUF9OT0RFTEFZIG9wdGlvbgokIG5zdGF0IC1u Oy4vbmV0cGVyZiAtSCAxMC4yNDYuNy4xNTIgLUNjIC0tIC1EIC1tIDUwMDtuc3RhdCB8IGdyZXAg QXV0b0NvcmsKTUlHUkFURUQgVENQIFNUUkVBTSBURVNUIGZyb20gMC4wLjAuMCAoMC4wLjAuMCkg cG9ydCAwIEFGX0lORVQgdG8gMTAuMjQ2LjcuMTUyICgpIHBvcnQgMCBBRl9JTkVUIDogbm9kZWxh eQpSZWN2ICAgU2VuZCAgICBTZW5kICAgICAgICAgICAgICAgICAgICAgICAgICBVdGlsaXphdGlv biAgICAgICBTZXJ2aWNlIERlbWFuZApTb2NrZXQgU29ja2V0ICBNZXNzYWdlICBFbGFwc2VkICAg ICAgICAgICAgICBTZW5kICAgICBSZWN2ICAgICBTZW5kICAgIFJlY3YKU2l6ZSAgIFNpemUgICAg U2l6ZSAgICAgVGltZSAgICAgVGhyb3VnaHB1dCAgbG9jYWwgICAgcmVtb3RlICAgbG9jYWwgICBy ZW1vdGUKYnl0ZXMgIGJ5dGVzICAgYnl0ZXMgICAgc2Vjcy4gICAgMTBeNmJpdHMvcyAgJSBTICAg ICAgJSBTICAgICAgdXMvS0IgICB1cy9LQgoKNTQwMDAwIDI2MjE0NCAgICA1MDAgICAgMTAuMDAg ICAgICA1NDU0Ljk2ICAgMi40NiAgICAgMS42MyAgICAgMS43NzUgICAxLjE3NApUY3BFeHRUQ1BB dXRvQ29ya2luZyAgICAgICAgICAgIDMxNTQ0OCAgICAgICAgICAgICAwLjAKCkZpeGVzOiA3NWMx MTlhZmUxNGYgKCJ0Y3A6IGltcGxlbWVudCByYi10cmVlIGJhc2VkIHJldHJhbnNtaXQgcXVldWUi KQpTaWduZWQtb2ZmLWJ5OiBFcmljIER1bWF6ZXQgPGVkdW1hemV0QGdvb2dsZS5jb20+ClJlcG9y dGVkLWJ5OiBNaWNoYWVsIFdlbmlnIDxtd2VuaWdAdm13YXJlLmNvbT4KVGVzdGVkLWJ5OiBNaWNo YWVsIFdlbmlnIDxtd2VuaWdAdm13YXJlLmNvbT4KU2lnbmVkLW9mZi1ieTogRXJpYyBEdW1hemV0 IDxlZHVtYXpldEBnb29nbGUuY29tPgpSZXBvcnRlZC1ieTogTWljaGFlbCBXZW5pZyA8bXdlbmln QHZtd2FyZS5jb20+ClRlc3RlZC1ieTogTWljaGFlbCBXZW5pZyA8bXdlbmlnQHZtd2FyZS5jb20+ CkFja2VkLWJ5OiBOZWFsIENhcmR3ZWxsIDxuY2FyZHdlbGxAZ29vZ2xlLmNvbT4KQWNrZWQtYnk6 IFNvaGVpbCBIYXNzYXMgWWVnYW5laCA8c29oZWlsQGdvb2dsZS5jb20+ClNpZ25lZC1vZmYtYnk6 IERhdmlkIFMuIE1pbGxlciA8ZGF2ZW1AZGF2ZW1sb2Z0Lm5ldD4KLS0tCiBuZXQvaXB2NC90Y3Au YyB8IDIgKy0KIDEgZmlsZSBjaGFuZ2VkLCAxIGluc2VydGlvbigrKSwgMSBkZWxldGlvbigtKQoK ZGlmZiAtLWdpdCBhL25ldC9pcHY0L3RjcC5jIGIvbmV0L2lwdjQvdGNwLmMKaW5kZXggZjQ3ZTlj ZDJjNGVhLi41NGVjMGY4ZWFkZDYgMTAwNjQ0Ci0tLSBhL25ldC9pcHY0L3RjcC5jCisrKyBiL25l dC9pcHY0L3RjcC5jCkBAIC02ODgsNyArNjg4LDcgQEAgc3RhdGljIGJvb2wgdGNwX3Nob3VsZF9h dXRvY29yayhzdHJ1Y3Qgc29jayAqc2ssIHN0cnVjdCBza19idWZmICpza2IsCiB7CiAJcmV0dXJu IHNrYi0+bGVuIDwgc2l6ZV9nb2FsICYmCiAJICAgICAgIHNvY2tfbmV0KHNrKS0+aXB2NC5zeXNj dGxfdGNwX2F1dG9jb3JraW5nICYmCi0JICAgICAgIHNrYiAhPSB0Y3Bfd3JpdGVfcXVldWVfaGVh ZChzaykgJiYKKwkgICAgICAgIXRjcF9ydHhfcXVldWVfZW1wdHkoc2spICYmCiAJICAgICAgIHJl ZmNvdW50X3JlYWQoJnNrLT5za193bWVtX2FsbG9jKSA+IHNrYi0+dHJ1ZXNpemU7CiB9CiAKLS0g CjIuMTQuMwoKCkZyb20gYTQ3ZDU3YWFiNjE2ZDkwMWE4NDcyN2Y2ZTgxMmNiMTczN2NiODBlYyBN b24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJvbTogRXJpYyBEdW1hemV0IDxlZHVtYXpldEBnb29n bGUuY29tPgpEYXRlOiBXZWQsIDkgTWF5IDIwMTggMDk6NTA6MjIgLTA3MDAKU3ViamVjdDogW1BB VENIIDQ5LzU1XSB0aXBjOiBmaXggb25lIGJ5dGUgbGVhayBpbiB0aXBjX3NrX3NldF9vcmlnX2Fk ZHIoKQoKWyBVcHN0cmVhbSBjb21taXQgMDljOGI5NzE4YTdhZjY3NDAzNjY0M2ZhMmUwZGJiMmYw OWFiYTc1ZSBdCgpzeXNib3QvS01TQU4gcmVwb3J0ZWQgYW4gdW5pbml0LXZhbHVlIGluIHJlY3Zt c2coKSB0aGF0CkkgdHJhY2tlZCBkb3duIHRvIHRpcGNfc2tfc2V0X29yaWdfYWRkcigpLCBtaXNz aW5nCnNyY2FkZHItPm1lbWJlci5zY29wZSBpbml0aWFsaXphdGlvbi4KClRoaXMgcGF0Y2hlcyBt b3ZlcyBzcmNhZGRyLT5zb2NrLnNjb3BlIGluaXQgdG8gZm9sbG93CmZpZWxkcyBvcmRlciBhbmQg ZWFzZSBmdXR1cmUgdmVyaWZpY2F0aW9ucy4KCkJVRzogS01TQU46IHVuaW5pdC12YWx1ZSBpbiBj b3B5X3RvX3VzZXIgaW5jbHVkZS9saW51eC91YWNjZXNzLmg6MTg0IFtpbmxpbmVdCkJVRzogS01T QU46IHVuaW5pdC12YWx1ZSBpbiBtb3ZlX2FkZHJfdG9fdXNlcisweDMyZS8weDUzMCBuZXQvc29j a2V0LmM6MjI2CkNQVTogMCBQSUQ6IDQ1NDkgQ29tbTogc3l6LWV4ZWN1dG9yMjg3IE5vdCB0YWlu dGVkIDQuMTcuMC1yYzMrICM4OApIYXJkd2FyZSBuYW1lOiBHb29nbGUgR29vZ2xlIENvbXB1dGUg RW5naW5lL0dvb2dsZSBDb21wdXRlIEVuZ2luZSwgQklPUyBHb29nbGUgMDEvMDEvMjAxMQpDYWxs IFRyYWNlOgogX19kdW1wX3N0YWNrIGxpYi9kdW1wX3N0YWNrLmM6NzcgW2lubGluZV0KIGR1bXBf c3RhY2srMHgxODUvMHgxZDAgbGliL2R1bXBfc3RhY2suYzoxMTMKIGttc2FuX3JlcG9ydCsweDE0 Mi8weDI0MCBtbS9rbXNhbi9rbXNhbi5jOjEwNjcKIGttc2FuX2ludGVybmFsX2NoZWNrX21lbW9y eSsweDEzNS8weDFlMCBtbS9rbXNhbi9rbXNhbi5jOjExNTcKIGttc2FuX2NvcHlfdG9fdXNlcisw eDY5LzB4MTYwIG1tL2ttc2FuL2ttc2FuLmM6MTE5OQogY29weV90b191c2VyIGluY2x1ZGUvbGlu dXgvdWFjY2Vzcy5oOjE4NCBbaW5saW5lXQogbW92ZV9hZGRyX3RvX3VzZXIrMHgzMmUvMHg1MzAg bmV0L3NvY2tldC5jOjIyNgogX19fc3lzX3JlY3Ztc2crMHg0ZTIvMHg4MTAgbmV0L3NvY2tldC5j OjIyODUKIF9fc3lzX3JlY3Ztc2cgbmV0L3NvY2tldC5jOjIzMjggW2lubGluZV0KIF9fZG9fc3lz X3JlY3Ztc2cgbmV0L3NvY2tldC5jOjIzMzggW2lubGluZV0KIF9fc2Vfc3lzX3JlY3Ztc2cgbmV0 L3NvY2tldC5jOjIzMzUgW2lubGluZV0KIF9feDY0X3N5c19yZWN2bXNnKzB4MzI1LzB4NDYwIG5l dC9zb2NrZXQuYzoyMzM1CiBkb19zeXNjYWxsXzY0KzB4MTU0LzB4MjIwIGFyY2gveDg2L2VudHJ5 L2NvbW1vbi5jOjI4NwogZW50cnlfU1lTQ0FMTF82NF9hZnRlcl9od2ZyYW1lKzB4NDQvMHhhOQpS SVA6IDAwMzM6MHg0NDU1ZTkKUlNQOiAwMDJiOjAwMDA3ZmUzYmQzNmRkYjggRUZMQUdTOiAwMDAw MDI0NiBPUklHX1JBWDogMDAwMDAwMDAwMDAwMDAyZgpSQVg6IGZmZmZmZmZmZmZmZmZmZGEgUkJY OiAwMDAwMDAwMDAwNmRhYzI0IFJDWDogMDAwMDAwMDAwMDQ0NTVlOQpSRFg6IDAwMDAwMDAwMDAw MDIwMDIgUlNJOiAwMDAwMDAwMDIwMDAwNDAwIFJESTogMDAwMDAwMDAwMDAwMDAwMwpSQlA6IDAw MDAwMDAwMDA2ZGFjMjAgUjA4OiAwMDAwMDAwMDAwMDAwMDAwIFIwOTogMDAwMDAwMDAwMDAwMDAw MApSMTA6IDAwMDAwMDAwMDAwMDAwMDAgUjExOiAwMDAwMDAwMDAwMDAwMjQ2IFIxMjogMDAwMDAw MDAwMDAwMDAwMApSMTM6IDAwMDA3ZmZmOThjZTRiNmYgUjE0OiAwMDAwN2ZlM2JkMzZlOWMwIFIx NTogMDAwMDAwMDAwMDAwMDAwMwoKTG9jYWwgdmFyaWFibGUgZGVzY3JpcHRpb246IC0tLS1hZGRy QF9fX3N5c19yZWN2bXNnClZhcmlhYmxlIHdhcyBjcmVhdGVkIGF0OgogX19fc3lzX3JlY3Ztc2cr MHhkNS8weDgxMCBuZXQvc29ja2V0LmM6MjI0NgogX19zeXNfcmVjdm1zZyBuZXQvc29ja2V0LmM6 MjMyOCBbaW5saW5lXQogX19kb19zeXNfcmVjdm1zZyBuZXQvc29ja2V0LmM6MjMzOCBbaW5saW5l XQogX19zZV9zeXNfcmVjdm1zZyBuZXQvc29ja2V0LmM6MjMzNSBbaW5saW5lXQogX194NjRfc3lz X3JlY3Ztc2crMHgzMjUvMHg0NjAgbmV0L3NvY2tldC5jOjIzMzUKCkJ5dGUgMTkgb2YgMzIgaXMg dW5pbml0aWFsaXplZAoKRml4ZXM6IDMxYzgyYTJkOWQ1MSAoInRpcGM6IGFkZCBzZWNvbmQgc291 cmNlIGFkZHJlc3MgdG8gcmVjdm1zZygpL3JlY3Zmcm9tKCkiKQpTaWduZWQtb2ZmLWJ5OiBFcmlj IER1bWF6ZXQgPGVkdW1hemV0QGdvb2dsZS5jb20+ClJlcG9ydGVkLWJ5OiBzeXpib3QgPHN5emth bGxlckBnb29nbGVncm91cHMuY29tPgpDYzogSm9uIE1hbG95IDxqb24ubWFsb3lAZXJpY3Nzb24u Y29tPgpDYzogWWluZyBYdWUgPHlpbmcueHVlQHdpbmRyaXZlci5jb20+CkFja2VkLWJ5OiBKb24g TWFsb3kgPGpvbi5tYWxveUBlcmljc3Nvbi5jb20+ClNpZ25lZC1vZmYtYnk6IERhdmlkIFMuIE1p bGxlciA8ZGF2ZW1AZGF2ZW1sb2Z0Lm5ldD4KLS0tCiBuZXQvdGlwYy9zb2NrZXQuYyB8IDMgKyst CiAxIGZpbGUgY2hhbmdlZCwgMiBpbnNlcnRpb25zKCspLCAxIGRlbGV0aW9uKC0pCgpkaWZmIC0t Z2l0IGEvbmV0L3RpcGMvc29ja2V0LmMgYi9uZXQvdGlwYy9zb2NrZXQuYwppbmRleCA3ZGZhOWZj OTllYzMuLmRmNGY1MDRiMWZlZiAxMDA2NDQKLS0tIGEvbmV0L3RpcGMvc29ja2V0LmMKKysrIGIv bmV0L3RpcGMvc29ja2V0LmMKQEAgLTE1MTgsMTAgKzE1MTgsMTAgQEAgc3RhdGljIHZvaWQgdGlw Y19za19zZXRfb3JpZ19hZGRyKHN0cnVjdCBtc2doZHIgKm0sIHN0cnVjdCBza19idWZmICpza2Ip CiAKIAlzcmNhZGRyLT5zb2NrLmZhbWlseSA9IEFGX1RJUEM7CiAJc3JjYWRkci0+c29jay5hZGRy dHlwZSA9IFRJUENfQUREUl9JRDsKKwlzcmNhZGRyLT5zb2NrLnNjb3BlID0gMDsKIAlzcmNhZGRy LT5zb2NrLmFkZHIuaWQucmVmID0gbXNnX29yaWdwb3J0KGhkcik7CiAJc3JjYWRkci0+c29jay5h ZGRyLmlkLm5vZGUgPSBtc2dfb3JpZ25vZGUoaGRyKTsKIAlzcmNhZGRyLT5zb2NrLmFkZHIubmFt ZS5kb21haW4gPSAwOwotCXNyY2FkZHItPnNvY2suc2NvcGUgPSAwOwogCW0tPm1zZ19uYW1lbGVu ID0gc2l6ZW9mKHN0cnVjdCBzb2NrYWRkcl90aXBjKTsKIAogCWlmICghbXNnX2luX2dyb3VwKGhk cikpCkBAIC0xNTMwLDYgKzE1MzAsNyBAQCBzdGF0aWMgdm9pZCB0aXBjX3NrX3NldF9vcmlnX2Fk ZHIoc3RydWN0IG1zZ2hkciAqbSwgc3RydWN0IHNrX2J1ZmYgKnNrYikKIAkvKiBHcm91cCBtZXNz YWdlIHVzZXJzIG1heSBhbHNvIHdhbnQgdG8ga25vdyBzZW5kaW5nIG1lbWJlcidzIGlkICovCiAJ c3JjYWRkci0+bWVtYmVyLmZhbWlseSA9IEFGX1RJUEM7CiAJc3JjYWRkci0+bWVtYmVyLmFkZHJ0 eXBlID0gVElQQ19BRERSX05BTUU7CisJc3JjYWRkci0+bWVtYmVyLnNjb3BlID0gMDsKIAlzcmNh ZGRyLT5tZW1iZXIuYWRkci5uYW1lLm5hbWUudHlwZSA9IG1zZ19uYW1ldHlwZShoZHIpOwogCXNy Y2FkZHItPm1lbWJlci5hZGRyLm5hbWUubmFtZS5pbnN0YW5jZSA9IFRJUENfU0tCX0NCKHNrYikt Pm9yaWdfbWVtYmVyOwogCXNyY2FkZHItPm1lbWJlci5hZGRyLm5hbWUuZG9tYWluID0gMDsKLS0g CjIuMTQuMwoKCkZyb20gMWVmZGMzZTZkMzZlMDhhNTRiMmY0OGFmYzI4NTZiMzhmYjI3YjU1YSBN b24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJvbTogTW9oYW1tZWQgR2FtYWwgPG1nYW1hbEByZWRo YXQuY29tPgpEYXRlOiBXZWQsIDkgTWF5IDIwMTggMTA6MTc6MzQgKzAyMDAKU3ViamVjdDogW1BB VENIIDUwLzU1XSBodl9uZXR2c2M6IEZpeCBuZXQgZGV2aWNlIGF0dGFjaCBvbiBvbGRlciBXaW5k b3dzIGhvc3RzCgpbIFVwc3RyZWFtIGNvbW1pdCA1NWJlOWYyNWJlMWNhNWJkYTc1YzM5ODA4ZmM3 N2U0MjY5MWJjMDdmIF0KCk9uIG9sZGVyIHdpbmRvd3MgaG9zdHMgdGhlIG5ldF9kZXZpY2UgaW5z dGFuY2UgaXMgcmV0dXJuZWQgdG8KdGhlIGNhbGxlciBvZiBybmRpc19maWx0ZXJfZGV2aWNlX2Fk ZCgpIHdpdGhvdXQgaGF2aW5nIHRoZSBwcmVzZW5jZQpiaXQgc2V0IGZpcnN0LiBUaGlzIHdvdWxk IGNhdXNlIGFueSBzdWJzZXF1ZW50IGNhbGxzIHRvIG5ldHdvcmsgZGV2aWNlCm9wZXJhdGlvbnMg KGUuZy4gTVRVIGNoYW5nZSwgY2hhbm5lbCBjaGFuZ2UpIHRvIGZhaWwgYWZ0ZXIgdGhlIGRldmlj ZQppcyBkZXRhY2hlZCBvbmNlLCByZXR1cm5pbmcgLUVOT0RFVi4KCkluc3RlYWQgb2YgcmV0dXJu aW5nIHRoZSBkZXZpY2UgaW5zdGFiY2UsIHdlIHRha2UgdGhlIGV4aXQgcGF0aCB3aGVyZQp3ZSBj YWxsIG5ldGlmX2RldmljZV9hdHRhY2goKQoKRml4ZXM6IDdiMmVlNTBjMGNkNSAoImh2X25ldHZz YzogY29tbW9uIGRldGFjaCBsb2dpYyIpClNpZ25lZC1vZmYtYnk6IE1vaGFtbWVkIEdhbWFsIDxt Z2FtYWxAcmVkaGF0LmNvbT4KUmV2aWV3ZWQtYnk6IFN0ZXBoZW4gSGVtbWluZ2VyIDxzdGhlbW1p bkBtaWNyb3NvZnQuY29tPgpTaWduZWQtb2ZmLWJ5OiBEYXZpZCBTLiBNaWxsZXIgPGRhdmVtQGRh dmVtbG9mdC5uZXQ+Ci0tLQogZHJpdmVycy9uZXQvaHlwZXJ2L3JuZGlzX2ZpbHRlci5jIHwgMiAr LQogMSBmaWxlIGNoYW5nZWQsIDEgaW5zZXJ0aW9uKCspLCAxIGRlbGV0aW9uKC0pCgpkaWZmIC0t Z2l0IGEvZHJpdmVycy9uZXQvaHlwZXJ2L3JuZGlzX2ZpbHRlci5jIGIvZHJpdmVycy9uZXQvaHlw ZXJ2L3JuZGlzX2ZpbHRlci5jCmluZGV4IDQ2NWM0MmUzMDUwOC4uOTU4NDZmMDMyMWYzIDEwMDY0 NAotLS0gYS9kcml2ZXJzL25ldC9oeXBlcnYvcm5kaXNfZmlsdGVyLmMKKysrIGIvZHJpdmVycy9u ZXQvaHlwZXJ2L3JuZGlzX2ZpbHRlci5jCkBAIC0xMjgyLDcgKzEyODIsNyBAQCBzdHJ1Y3QgbmV0 dnNjX2RldmljZSAqcm5kaXNfZmlsdGVyX2RldmljZV9hZGQoc3RydWN0IGh2X2RldmljZSAqZGV2 LAogCQkgICBybmRpc19kZXZpY2UtPmxpbmtfc3RhdGUgPyAiZG93biIgOiAidXAiKTsKIAogCWlm IChuZXRfZGV2aWNlLT5udnNwX3ZlcnNpb24gPCBOVlNQX1BST1RPQ09MX1ZFUlNJT05fNSkKLQkJ cmV0dXJuIG5ldF9kZXZpY2U7CisJCWdvdG8gb3V0OwogCiAJcm5kaXNfZmlsdGVyX3F1ZXJ5X2xp bmtfc3BlZWQocm5kaXNfZGV2aWNlLCBuZXRfZGV2aWNlKTsKIAotLSAKMi4xNC4zCgoKRnJvbSBm MTA2NWFkMmQ4MjNjMDkxMGZhYzkxNzI3NGU3OWUxYTVmNzdhNWJhIE1vbiBTZXAgMTcgMDA6MDA6 MDAgMjAwMQpGcm9tOiBIYW5nYmluIExpdSA8bGl1aGFuZ2JpbkBnbWFpbC5jb20+CkRhdGU6IFdl ZCwgOSBNYXkgMjAxOCAxODowNjo0NCArMDgwMApTdWJqZWN0OiBbUEFUQ0ggNTEvNTVdIGlwdjQ6 IHJlc2V0IGZuaGVfbXR1X2xvY2tlZCBhZnRlciBjYWNoZSByb3V0ZSBmbHVzaGVkCgpbIFVwc3Ry ZWFtIGNvbW1pdCAwZTg0MTFlNDI2ZTI3N2Y1NWJkMjFlMjg3ZWM4OWZhYjZmOGVhY2FlIF0KCkFm dGVyIHJvdXRlIGNhY2hlIGlzIGZsdXNoZWQgdmlhIGlwdjRfc3lzY3RsX3J0Y2FjaGVfZmx1c2go KSwgd2UgZm9yZ2V0CnRvIHJlc2V0IGZuaGVfbXR1X2xvY2tlZCBpbiBydF9iaW5kX2V4Y2VwdGlv bigpLiBXaGVuIHBtdHUgaXMgdXBkYXRlZAppbiBfX2lwX3J0X3VwZGF0ZV9wbXR1KCksIGl0IHdp bGwgcmV0dXJuIGRpcmVjdGx5IHNpbmNlIHRoZSBwbXR1IGlzCnN0aWxsIGxvY2tlZC4gZS5nLgoK KyBpcCBuZXRucyBleGVjIGNsaWVudCBwaW5nIDEwLjEwLjEuMSAtYyAxIC1zIDE0MDAgLU0gZG8K UElORyAxMC4xMC4xLjEgKDEwLjEwLjEuMSkgMTQwMCgxNDI4KSBieXRlcyBvZiBkYXRhLgo+RnJv bSAxMC4xMC4wLjI1NCBpY21wX3NlcT0xIEZyYWcgbmVlZGVkIGFuZCBERiBzZXQgKG10dSA9IDAp CgpTaWduZWQtb2ZmLWJ5OiBEYXZpZCBTLiBNaWxsZXIgPGRhdmVtQGRhdmVtbG9mdC5uZXQ+Ci0t LQogbmV0L2lwdjQvcm91dGUuYyB8IDEgKwogMSBmaWxlIGNoYW5nZWQsIDEgaW5zZXJ0aW9uKCsp CgpkaWZmIC0tZ2l0IGEvbmV0L2lwdjQvcm91dGUuYyBiL25ldC9pcHY0L3JvdXRlLmMKaW5kZXgg YzUzNjZiMjkwNTA4Li4wOWJiYzZhZmNiYzMgMTAwNjQ0Ci0tLSBhL25ldC9pcHY0L3JvdXRlLmMK KysrIGIvbmV0L2lwdjQvcm91dGUuYwpAQCAtMTM3Niw2ICsxMzc2LDcgQEAgc3RhdGljIGJvb2wg cnRfYmluZF9leGNlcHRpb24oc3RydWN0IHJ0YWJsZSAqcnQsIHN0cnVjdCBmaWJfbmhfZXhjZXB0 aW9uICpmbmhlLAogCQkJZm5oZS0+Zm5oZV9ndyA9IDA7CiAJCQlmbmhlLT5mbmhlX3BtdHUgPSAw OwogCQkJZm5oZS0+Zm5oZV9leHBpcmVzID0gMDsKKwkJCWZuaGUtPmZuaGVfbXR1X2xvY2tlZCA9 IGZhbHNlOwogCQkJZm5oZV9mbHVzaF9yb3V0ZXMoZm5oZSk7CiAJCQlvcmlnID0gTlVMTDsKIAkJ fQotLSAKMi4xNC4zCgoKRnJvbSBhNWEzMDU2NTUzYmIxYzE5YzAyYmRkMzc0ZDU5MjdmNTM3YjY3 MGJmIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBDaHJpc3RvcGhlIEpBSUxMRVQgPGNo cmlzdG9waGUuamFpbGxldEB3YW5hZG9vLmZyPgpEYXRlOiBUaHUsIDEwIE1heSAyMDE4IDEzOjI2 OjE2ICswMjAwClN1YmplY3Q6IFtQQVRDSCA1Mi81NV0gbWx4c3c6IGNvcmU6IEZpeCBhbiBlcnJv ciBoYW5kbGluZyBwYXRoIGluCiAnbWx4c3dfY29yZV9idXNfZGV2aWNlX3JlZ2lzdGVyKCknCgpb IFVwc3RyZWFtIGNvbW1pdCA4Y2NjMTEzMTcyZTRjMWViZWY0NWMyNDMzZjNjMzJlZDZhZTFiOWM5 IF0KClJlc291cmNlcyBhcmUgbm90IGZyZWVkIGluIHRoZSByZXZlcnNlIG9yZGVyIG9mIHRoZSBh bGxvY2F0aW9uLgpMYWJlbHMgYXJlIGFsc28gbWl4ZWQtdXAuCgpGaXggaXQgYW5kIHJlb3JkZXIg Y29kZSBhbmQgbGFiZWxzIGluIHRoZSBlcnJvciBoYW5kbGluZyBwYXRoIG9mCidtbHhzd19jb3Jl X2J1c19kZXZpY2VfcmVnaXN0ZXIoKScKCkZpeGVzOiBlZjMxMTZlNTQwM2UgKCJtbHhzdzogc3Bl Y3RydW06IFJlZ2lzdGVyIEtWRCByZXNvdXJjZXMgd2l0aCBkZXZsaW5rIikKU2lnbmVkLW9mZi1i eTogQ2hyaXN0b3BoZSBKQUlMTEVUIDxjaHJpc3RvcGhlLmphaWxsZXRAd2FuYWRvby5mcj4KUmV2 aWV3ZWQtYnk6IElkbyBTY2hpbW1lbCA8aWRvc2NoQG1lbGxhbm94LmNvbT4KU2lnbmVkLW9mZi1i eTogRGF2aWQgUy4gTWlsbGVyIDxkYXZlbUBkYXZlbWxvZnQubmV0PgotLS0KIGRyaXZlcnMvbmV0 L2V0aGVybmV0L21lbGxhbm94L21seHN3L2NvcmUuYyB8IDQgKystLQogMSBmaWxlIGNoYW5nZWQs IDIgaW5zZXJ0aW9ucygrKSwgMiBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9kcml2ZXJzL25l dC9ldGhlcm5ldC9tZWxsYW5veC9tbHhzdy9jb3JlLmMgYi9kcml2ZXJzL25ldC9ldGhlcm5ldC9t ZWxsYW5veC9tbHhzdy9jb3JlLmMKaW5kZXggMzUyOWI1NDU2NzVkLi4xYzA5YTI3NGM2MzcgMTAw NjQ0Ci0tLSBhL2RyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seHN3L2NvcmUuYworKysg Yi9kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHhzdy9jb3JlLmMKQEAgLTEwOTksMTEg KzEwOTksMTEgQEAgaW50IG1seHN3X2NvcmVfYnVzX2RldmljZV9yZWdpc3Rlcihjb25zdCBzdHJ1 Y3QgbWx4c3dfYnVzX2luZm8gKm1seHN3X2J1c19pbmZvLAogZXJyX2FsbG9jX2xhZ19tYXBwaW5n OgogCW1seHN3X3BvcnRzX2ZpbmkobWx4c3dfY29yZSk7CiBlcnJfcG9ydHNfaW5pdDoKLQltbHhz d19idXMtPmZpbmkoYnVzX3ByaXYpOwotZXJyX2J1c19pbml0OgogCWlmICghcmVsb2FkKQogCQlk ZXZsaW5rX3Jlc291cmNlc191bnJlZ2lzdGVyKGRldmxpbmssIE5VTEwpOwogZXJyX3JlZ2lzdGVy X3Jlc291cmNlczoKKwltbHhzd19idXMtPmZpbmkoYnVzX3ByaXYpOworZXJyX2J1c19pbml0Ogog CWlmICghcmVsb2FkKQogCQlkZXZsaW5rX2ZyZWUoZGV2bGluayk7CiBlcnJfZGV2bGlua19hbGxv YzoKLS0gCjIuMTQuMwoKCkZyb20gYzU5ZmM1MzE1OThjZjc1ZDIxZmVmODVkYzA0ZDc3MGMwMTJm NWI3MCBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJvbTogSXNyYWVsIFJ1a3NoaW4gPGlzcmFl bHJAbWVsbGFub3guY29tPgpEYXRlOiBUaHUsIDEyIEFwciAyMDE4IDA5OjQ5OjExICswMDAwClN1 YmplY3Q6IFtQQVRDSCA1My81NV0gbmV0L21seDU6IEZpeCBtbHg1X2dldF92ZWN0b3JfYWZmaW5p dHkgZnVuY3Rpb24KClsgVXBzdHJlYW0gY29tbWl0IDYwODJkOWM5Yzk0YTQwOGQ3NDA5YjVmMmU0 ZTQyYWM5ZThiMTZkMGQgXQoKQWRkaW5nIHRoZSB2ZWN0b3Igb2Zmc2V0IHdoZW4gY2FsbGluZyB0 byBtbHg1X3ZlY3RvcjJlcW4oKSBpcyB3cm9uZy4KVGhpcyBpcyBiZWNhdXNlIG1seDVfdmVjdG9y MmVxbigpIGNoZWNrcyBpZiBFUSBpbmRleCBpcyBlcXVhbCB0byB2ZWN0b3IgbnVtYmVyCmFuZCB0 aGUgZmFjdCB0aGF0IHRoZSBpbnRlcm5hbCBjb21wbGV0aW9uIHZlY3RvcnMgdGhhdCBtbHg1IGFs bG9jYXRlcwpkb24ndCBnZXQgYW4gRVEgaW5kZXguCgpUaGUgc2Vjb25kIHByb2JsZW0gaGVyZSBp cyB0aGF0IHVzaW5nIGVmZmVjdGl2ZV9hZmZpbml0eV9tYXNrIGdpdmVzIHRoZSBzYW1lCkNQVSBm b3IgZGlmZmVyZW50IHZlY3RvcnMuClRoaXMgbGVhZHMgdG8gdW5tYXBwZWQgcXVldWVzIHdoZW4g Y2FsbGluZyBpdCBmcm9tIGJsa19tcV9yZG1hX21hcF9xdWV1ZXMoKS4KVGhpcyBkb2Vzbid0IGhh cHBlbiB3aGVuIHVzaW5nIGFmZmluaXR5X2hpbnQgbWFzay4KCkZpeGVzOiAyNTcyY2Y1N2Q3NWEg KCJtbHg1OiBmaXggbWx4NV9nZXRfdmVjdG9yX2FmZmluaXR5IHRvIHN0YXJ0IGZyb20gY29tcGxl dGlvbiB2ZWN0b3IgMCIpCkZpeGVzOiAwNWUwY2M4NGUwMGMgKCJuZXQvbWx4NTogRml4IGdldCB2 ZWN0b3IgYWZmaW5pdHkgaGVscGVyIGZ1bmN0aW9uIikKU2lnbmVkLW9mZi1ieTogSXNyYWVsIFJ1 a3NoaW4gPGlzcmFlbHJAbWVsbGFub3guY29tPgpSZXZpZXdlZC1ieTogTWF4IEd1cnRvdm95IDxt YXhnQG1lbGxhbm94LmNvbT4KUmV2aWV3ZWQtYnk6IFNhZ2kgR3JpbWJlcmcgPHNhZ2lAZ3JpbWJl cmcubWU+Ci0tLQogZHJpdmVycy9pbmZpbmliYW5kL2h3L21seDUvbWFpbi5jIHwgIDIgKy0KIGlu Y2x1ZGUvbGludXgvbWx4NS9kcml2ZXIuaCAgICAgICB8IDEyICsrKy0tLS0tLS0tLQogMiBmaWxl cyBjaGFuZ2VkLCA0IGluc2VydGlvbnMoKyksIDEwIGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBh L2RyaXZlcnMvaW5maW5pYmFuZC9ody9tbHg1L21haW4uYyBiL2RyaXZlcnMvaW5maW5pYmFuZC9o dy9tbHg1L21haW4uYwppbmRleCA3ZjhiZGEzYTIwMDUuLjA4ODFmNzkwNzg0OCAxMDA2NDQKLS0t IGEvZHJpdmVycy9pbmZpbmliYW5kL2h3L21seDUvbWFpbi5jCisrKyBiL2RyaXZlcnMvaW5maW5p YmFuZC9ody9tbHg1L21haW4uYwpAQCAtNDMwMyw3ICs0MzAzLDcgQEAgbWx4NV9pYl9nZXRfdmVj dG9yX2FmZmluaXR5KHN0cnVjdCBpYl9kZXZpY2UgKmliZGV2LCBpbnQgY29tcF92ZWN0b3IpCiB7 CiAJc3RydWN0IG1seDVfaWJfZGV2ICpkZXYgPSB0b19tZGV2KGliZGV2KTsKIAotCXJldHVybiBt bHg1X2dldF92ZWN0b3JfYWZmaW5pdHkoZGV2LT5tZGV2LCBjb21wX3ZlY3Rvcik7CisJcmV0dXJu IG1seDVfZ2V0X3ZlY3Rvcl9hZmZpbml0eV9oaW50KGRldi0+bWRldiwgY29tcF92ZWN0b3IpOwog fQogCiAvKiBUaGUgbWx4NV9pYl9tdWx0aXBvcnRfbXV0ZXggc2hvdWxkIGJlIGhlbGQgd2hlbiBj YWxsaW5nIHRoaXMgZnVuY3Rpb24gKi8KZGlmZiAtLWdpdCBhL2luY2x1ZGUvbGludXgvbWx4NS9k cml2ZXIuaCBiL2luY2x1ZGUvbGludXgvbWx4NS9kcml2ZXIuaAppbmRleCA5ZDNhMDMzNjRlNmUu LjEzNTJiMWI5OTBhNyAxMDA2NDQKLS0tIGEvaW5jbHVkZS9saW51eC9tbHg1L2RyaXZlci5oCisr KyBiL2luY2x1ZGUvbGludXgvbWx4NS9kcml2ZXIuaApAQCAtMTI2OSwyNSArMTI2OSwxOSBAQCBl bnVtIHsKIH07CiAKIHN0YXRpYyBpbmxpbmUgY29uc3Qgc3RydWN0IGNwdW1hc2sgKgotbWx4NV9n ZXRfdmVjdG9yX2FmZmluaXR5KHN0cnVjdCBtbHg1X2NvcmVfZGV2ICpkZXYsIGludCB2ZWN0b3Ip CittbHg1X2dldF92ZWN0b3JfYWZmaW5pdHlfaGludChzdHJ1Y3QgbWx4NV9jb3JlX2RldiAqZGV2 LCBpbnQgdmVjdG9yKQogewotCWNvbnN0IHN0cnVjdCBjcHVtYXNrICptYXNrOwogCXN0cnVjdCBp cnFfZGVzYyAqZGVzYzsKIAl1bnNpZ25lZCBpbnQgaXJxOwogCWludCBlcW47CiAJaW50IGVycjsK IAotCWVyciA9IG1seDVfdmVjdG9yMmVxbihkZXYsIE1MWDVfRVFfVkVDX0NPTVBfQkFTRSArIHZl Y3RvciwgJmVxbiwgJmlycSk7CisJZXJyID0gbWx4NV92ZWN0b3IyZXFuKGRldiwgdmVjdG9yLCAm ZXFuLCAmaXJxKTsKIAlpZiAoZXJyKQogCQlyZXR1cm4gTlVMTDsKIAogCWRlc2MgPSBpcnFfdG9f ZGVzYyhpcnEpOwotI2lmZGVmIENPTkZJR19HRU5FUklDX0lSUV9FRkZFQ1RJVkVfQUZGX01BU0sK LQltYXNrID0gaXJxX2RhdGFfZ2V0X2VmZmVjdGl2ZV9hZmZpbml0eV9tYXNrKCZkZXNjLT5pcnFf ZGF0YSk7Ci0jZWxzZQotCW1hc2sgPSBkZXNjLT5pcnFfY29tbW9uX2RhdGEuYWZmaW5pdHk7Ci0j ZW5kaWYKLQlyZXR1cm4gbWFzazsKKwlyZXR1cm4gZGVzYy0+YWZmaW5pdHlfaGludDsKIH0KIAog I2VuZGlmIC8qIE1MWDVfRFJJVkVSX0ggKi8KLS0gCjIuMTQuMwoKCkZyb20gZTlkYmRiYjAyZTIz NGFmMGJhZDRhM2U5OWUwYTg0Yjc5YmJlOWNmNyBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJv bTogQW50b2luZSBUZW5hcnQgPGFudG9pbmUudGVuYXJ0QGJvb3RsaW4uY29tPgpEYXRlOiBGcmks IDQgTWF5IDIwMTggMTc6MTA6NTQgKzAyMDAKU3ViamVjdDogW1BBVENIIDU0LzU1XSBuZXQ6IHBo eTogc2ZwOiBmaXggdGhlIEJSLG1pbiBjb21wdXRhdGlvbgoKWyBVcHN0cmVhbSBjb21taXQgNTJj NWNkMWJmMGNlY2Y0YjE0NmNhMDdkYzUxM2NiZTJmNDU4M2JiNSBdCgpJbiBhbiBTRlAgRUVQUk9N IHZhbHVlcyBjYW4gYmUgcmVhZCB0byBnZXQgaW5mb3JtYXRpb24gYWJvdXQgYSBnaXZlbiBTRlAK bW9kdWxlLiBPbmUgb2YgdGhvc2UgaXMgdGhlIGJpdHJhdGUsIHdoaWNoIGNhbiBiZSBkZXRlcm1p bmVkIHVzaW5nIGEKbm9taW5hbCBiaXRyYXRlIGluIGFkZGl0aW9uIHdpdGggbWluIGFuZCBtYXgg dmFsdWVzIChpbiAlKS4gVGhlIFNGUCBjb2RlCmN1cnJlbnRseSBjb21wdXRlIGJvdGggQlIsbWlu IGFuZCBCUixtYXggdmFsdWVzIHRoYW5rcyB0byB0aGlzIG5vbWluYWwKYW5kIG1pbixtYXggdmFs dWVzLgoKVGhpcyBwYXRjaCBmaXhlcyB0aGUgQlIsbWluIGNvbXB1dGF0aW9uIGFzIHRoZSBtaW4g dmFsdWUgc2hvdWxkIGJlCnN1YnRyYWN0ZWQgdG8gdGhlIG5vbWluYWwgb25lLCBub3QgYWRkZWQu CgpGaXhlczogOTk2MmFjZjdmYjhjICgic2ZwOiBhZGQgc3VwcG9ydCBmb3IgMTAwMEJhc2UtUFgg YW5kIDEwMDBCYXNlLUJYMTAiKQpTaWduZWQtb2ZmLWJ5OiBBbnRvaW5lIFRlbmFydCA8YW50b2lu ZS50ZW5hcnRAYm9vdGxpbi5jb20+ClNpZ25lZC1vZmYtYnk6IERhdmlkIFMuIE1pbGxlciA8ZGF2 ZW1AZGF2ZW1sb2Z0Lm5ldD4KLS0tCiBkcml2ZXJzL25ldC9waHkvc2ZwLWJ1cy5jIHwgMiArLQog MSBmaWxlIGNoYW5nZWQsIDEgaW5zZXJ0aW9uKCspLCAxIGRlbGV0aW9uKC0pCgpkaWZmIC0tZ2l0 IGEvZHJpdmVycy9uZXQvcGh5L3NmcC1idXMuYyBiL2RyaXZlcnMvbmV0L3BoeS9zZnAtYnVzLmMK aW5kZXggODk2MTIwOWVlOTQ5Li5hMzg2MTM4YzcyNTUgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvbmV0 L3BoeS9zZnAtYnVzLmMKKysrIGIvZHJpdmVycy9uZXQvcGh5L3NmcC1idXMuYwpAQCAtMTkwLDcg KzE5MCw3IEBAIHZvaWQgc2ZwX3BhcnNlX3N1cHBvcnQoc3RydWN0IHNmcF9idXMgKmJ1cywgY29u c3Qgc3RydWN0IHNmcF9lZXByb21faWQgKmlkLAogCWlmIChpZC0+YmFzZS5icl9ub21pbmFsKSB7 CiAJCWlmIChpZC0+YmFzZS5icl9ub21pbmFsICE9IDI1NSkgewogCQkJYnJfbm9tID0gaWQtPmJh c2UuYnJfbm9taW5hbCAqIDEwMDsKLQkJCWJyX21pbiA9IGJyX25vbSArIGlkLT5iYXNlLmJyX25v bWluYWwgKiBpZC0+ZXh0LmJyX21pbjsKKwkJCWJyX21pbiA9IGJyX25vbSAtIGlkLT5iYXNlLmJy X25vbWluYWwgKiBpZC0+ZXh0LmJyX21pbjsKIAkJCWJyX21heCA9IGJyX25vbSArIGlkLT5iYXNl LmJyX25vbWluYWwgKiBpZC0+ZXh0LmJyX21heDsKIAkJfSBlbHNlIGlmIChpZC0+ZXh0LmJyX21h eCkgewogCQkJYnJfbm9tID0gMjUwICogaWQtPmV4dC5icl9tYXg7Ci0tIAoyLjE0LjMKCgpGcm9t IDk3ZDNlYTMwMmNlNjcxOTBlZWU2YmQyNTE2M2NiOTIxZWFhZDBhOTQgTW9uIFNlcCAxNyAwMDow MDowMCAyMDAxCkZyb206IFVyc3VsYSBCcmF1biA8dWJyYXVuQGxpbnV4LmlibS5jb20+CkRhdGU6 IFdlZCwgMjUgQXByIDIwMTggMTI6NDg6NTggKzAyMDAKU3ViamVjdDogW1BBVENIIDU1LzU1XSBu ZXQvc21jOiBrZWVwIGNsY3NvY2sgcmVmZXJlbmNlIGluCiBzbWNfdGNwX2xpc3Rlbl93b3JrKCkK ClsgVXBzdHJlYW0gY29tbWl0IDA3MDIwNGEzNDg4NDExMGFjNWUxOWMxZTJlMDM2ZmNmZDAzM2Y4 ZTMgXQoKVGhlIGludGVybmFsIENMQyBzb2NrZXQgc2hvdWxkIGV4aXN0IHRpbGwgdGhlIFNNQy1z b2NrZXQgaXMgcmVsZWFzZWQuCkZ1bmN0aW9uIHRjcF9saXN0ZW5fd29ya2VyKCkgcmVsZWFzZXMg dGhlIGludGVybmFsIENMQyBzb2NrZXQgb2YgYQpsaXN0ZW4gc29ja2V0LCBpZiBhbiBzbWNfY2xv c2VfYWN0aXZlKCkgaXMgY2FsbGVkLiBUaGlzIGZ1bmN0aW9uCmlzIGNhbGxlZCBmb3IgdGhlIGZp bmFsIHJlbGVhc2UoKSwgYnV0IGl0IGlzIGNhbGxlZCBmb3Igc2h1dGRvd24KU0hVVF9SRFdSIGFz IHdlbGwuIFRoaXMgb3BlbnMgYSBkb29yIGZvciBwcm90ZWN0aW9uIGZhdWx0cywgaWYKc29ja2V0 IGNhbGxzIHVzaW5nIHRoZSBpbnRlcm5hbCBDTEMgc29ja2V0IGFyZSBjYWxsZWQgZm9yIGEKc2h1 dGRvd24gbGlzdGVuIHNvY2tldC4KCldpdGggdGhlIGNoYW5nZXMgb2YKY29tbWl0IDNkNTAyMDY3 NTk5ZiAoIm5ldC9zbWM6IHNpbXBsaWZ5IHdhaXQgd2hlbiBjbG9zaW5nIGxpc3RlbiBzb2NrZXQi KQp0aGVyZSBpcyBubyBuZWVkIGFueW1vcmUgdG8gcmVsZWFzZSB0aGUgaW50ZXJuYWwgQ0xDIHNv Y2tldCBpbgpmdW5jdGlvbiB0Y3BfbGlzdGVuX3dvcmtlcigoKS4gSXQgaXMgc3VmZmljaWVudCB0 byByZWxlYXNlIGl0IGluCnNtY19yZWxlYXNlKCkuCgpGaXhlczogMTI3ZjQ5NzA1ODIzICgibmV0 L3NtYzogcmVsZWFzZSBjbGNzb2NrIGZyb20gdGNwX2xpc3Rlbl93b3JrZXIiKQpTaWduZWQtb2Zm LWJ5OiBVcnN1bGEgQnJhdW4gPHVicmF1bkBsaW51eC5pYm0uY29tPgpSZXBvcnRlZC1ieTogc3l6 Ym90KzkwNDVmYzU4OWZjZDE5NmVmNTIyQHN5emthbGxlci5hcHBzcG90bWFpbC5jb20KUmVwb3J0 ZWQtYnk6IHN5emJvdCsyOGEyYzg2Y2YxOWM4MWQ4NzFmYUBzeXprYWxsZXIuYXBwc3BvdG1haWwu Y29tClJlcG9ydGVkLWJ5OiBzeXpib3QrOTYwNWU2Y2FjZTFiNWVmZDRhMGFAc3l6a2FsbGVyLmFw cHNwb3RtYWlsLmNvbQpSZXBvcnRlZC1ieTogc3l6Ym90K2NmOTAxMmM1OTdjODM3OWQ1MzVjQHN5 emthbGxlci5hcHBzcG90bWFpbC5jb20KU2lnbmVkLW9mZi1ieTogRGF2aWQgUy4gTWlsbGVyIDxk YXZlbUBkYXZlbWxvZnQubmV0PgotLS0KIG5ldC9zbWMvYWZfc21jLmMgfCA0IC0tLS0KIDEgZmls ZSBjaGFuZ2VkLCA0IGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL25ldC9zbWMvYWZfc21jLmMg Yi9uZXQvc21jL2FmX3NtYy5jCmluZGV4IDU5NzRlYTdhM2VmNC4uNWE5ODNjOWJlYTUzIDEwMDY0 NAotLS0gYS9uZXQvc21jL2FmX3NtYy5jCisrKyBiL25ldC9zbWMvYWZfc21jLmMKQEAgLTk3Mywx MCArOTczLDYgQEAgc3RhdGljIHZvaWQgc21jX3RjcF9saXN0ZW5fd29yayhzdHJ1Y3Qgd29ya19z dHJ1Y3QgKndvcmspCiAJfQogCiBvdXQ6Ci0JaWYgKGxzbWMtPmNsY3NvY2spIHsKLQkJc29ja19y ZWxlYXNlKGxzbWMtPmNsY3NvY2spOwotCQlsc21jLT5jbGNzb2NrID0gTlVMTDsKLQl9CiAJcmVs ZWFzZV9zb2NrKGxzayk7CiAJc29ja19wdXQoJmxzbWMtPnNrKTsgLyogc29ja19ob2xkIGluIHNt Y19saXN0ZW4gKi8KIH0KLS0gCjIuMTQuMwoK ----Next_Part(Tue_May_15_16_50_36_2018_681)----