From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from shards.monkeyblade.net ([184.105.139.130]:53738 "EHLO shards.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1751291AbdGQQob (ORCPT ); Mon, 17 Jul 2017 12:44:31 -0400 Received: from localhost (74-93-104-98-Washington.hfc.comcastbusiness.net [74.93.104.98]) (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 30B05129008AC for ; Mon, 17 Jul 2017 09:44:29 -0700 (PDT) Date: Mon, 17 Jul 2017 09:44:28 -0700 (PDT) Message-Id: <20170717.094428.376972593114266574.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(Mon_Jul_17_09_44_28_2017_687)--" Content-Transfer-Encoding: 7bit Sender: stable-owner@vger.kernel.org List-ID: ----Next_Part(Mon_Jul_17_09_44_28_2017_687)-- Content-Type: Text/Plain; charset=us-ascii Content-Transfer-Encoding: 7bit Please queue up the following networking bug fixes for v4.11 and v4.12 -stable, respectively. Thank you. ----Next_Part(Mon_Jul_17_09_44_28_2017_687)-- Content-Type: Application/Octet-Stream Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="net_411.mbox" RnJvbSBhYTk5Zjk0ODZmZDQzNGZmMDEwYTRkZjUyNGRjMmZiNmRkZTMxMTY4IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBaYWNoIEJyb3duIDx6YWNoLmJyb3duQG5pLmNvbT4KRGF0ZTog VHVlLCAyMCBKdW4gMjAxNyAxMjo0ODoxMSAtMDUwMApTdWJqZWN0OiBbUEFUQ0ggMDEvMzBdIG5l dC9waHk6IG1pY3JlbDogY29uZmlndXJlIGludHRlcnVwdHMgYWZ0ZXIgYXV0b25lZwogd29ya2Fy b3VuZAoKWyBVcHN0cmVhbSBjb21taXQgYjg2NjIwM2Q4NzJkNWRlZWFmY2VjZDI1ZWE0MjlkNjc0 OGI1YmQ1NiBdCgpUaGUgY29tbWl0ICgibmV0L3BoeTogbWljcmVsOiBBZGQgd29ya2Fyb3VuZCBm b3IgYmFkIGF1dG9uZWciKSBmaXhlcyBhbgphdXRvbmVnIGZhaWx1cmUgY2FzZSBieSByZXNldHRp bmcgdGhlIGhhcmR3YXJlLiBUaGlzIHR1cm5zIG9mZgppbnR0ZXJ1cHRzLiBUaGluZ3Mgd2lsbCB3 b3JrIHRoZW1zZWx2ZXMgb3V0IGlmIHRoZSBwaHkgcG9sbHMsIGFzIGl0IHdpbGwKZmlndXJlIG91 dCBpdCdzIHN0YXRlIGR1cmluZyBhIHBvbGwuIEhvd2V2ZXIgaWYgdGhlIHBoeSB1c2VzIG9ubHkK aW50dGVydXB0cywgdGhlIHBoeSB3aWxsIHN0YWxsLCBzaW5jZSBpbnRlcnJ1cHRzIGFyZSBvZmYu IFRoaXMgcGF0Y2gKZml4ZXMgdGhlIGlzc3VlIGJ5IGNhbGxpbmcgY29uZmlnX2ludHIgYWZ0ZXIg cmVzZXR0aW5nIHRoZSBwaHkuCgpGaXhlczogZDJmZDcxOWJjYjBlICgibmV0L3BoeTogbWljcmVs OiBBZGQgd29ya2Fyb3VuZCBmb3IgYmFkIGF1dG9uZWcgIikKU2lnbmVkLW9mZi1ieTogWmFjaCBC cm93biA8emFjaC5icm93bkBuaS5jb20+ClJldmlld2VkLWJ5OiBBbmRyZXcgTHVubiA8YW5kcmV3 QGx1bm4uY2g+ClJldmlld2VkLWJ5OiBGbG9yaWFuIEZhaW5lbGxpIDxmLmZhaW5lbGxpQGdtYWls LmNvbT4KU2lnbmVkLW9mZi1ieTogRGF2aWQgUy4gTWlsbGVyIDxkYXZlbUBkYXZlbWxvZnQubmV0 PgotLS0KIGRyaXZlcnMvbmV0L3BoeS9taWNyZWwuYyB8IDIgKysKIDEgZmlsZSBjaGFuZ2VkLCAy IGluc2VydGlvbnMoKykKCmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC9waHkvbWljcmVsLmMgYi9k cml2ZXJzL25ldC9waHkvbWljcmVsLmMKaW5kZXggZGE1YjM5MjY4MzcwLi40YjdhNmUwZDRjMzkg MTAwNjQ0Ci0tLSBhL2RyaXZlcnMvbmV0L3BoeS9taWNyZWwuYworKysgYi9kcml2ZXJzL25ldC9w aHkvbWljcmVsLmMKQEAgLTYxMSw2ICs2MTEsOCBAQCBzdGF0aWMgaW50IGtzejkwMzFfcmVhZF9z dGF0dXMoc3RydWN0IHBoeV9kZXZpY2UgKnBoeWRldikKIAlpZiAoKHJlZ3ZhbCAmIDB4RkYpID09 IDB4RkYpIHsKIAkJcGh5X2luaXRfaHcocGh5ZGV2KTsKIAkJcGh5ZGV2LT5saW5rID0gMDsKKwkJ aWYgKHBoeWRldi0+ZHJ2LT5jb25maWdfaW50ciAmJiBwaHlfaW50ZXJydXB0X2lzX3ZhbGlkKHBo eWRldikpCisJCQlwaHlkZXYtPmRydi0+Y29uZmlnX2ludHIocGh5ZGV2KTsKIAl9CiAKIAlyZXR1 cm4gMDsKLS0gCjIuMTMuMAoKCkZyb20gMWU0MTU1ZjlmNjZjZmY1M2RhODUyYTBiODVlYzQwYTk0 NTZmZTdhYyBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJvbTogV0FORyBDb25nIDx4aXlvdS53 YW5nY29uZ0BnbWFpbC5jb20+CkRhdGU6IFdlZCwgMjEgSnVuIDIwMTcgMTQ6MzQ6NTggLTA3MDAK U3ViamVjdDogW1BBVENIIDAyLzMwXSBpcHY2OiBhdm9pZCB1bnJlZ2lzdGVyaW5nIGluZXQ2X2Rl diBmb3IgbG9vcGJhY2sKClsgVXBzdHJlYW0gY29tbWl0IDYwYWJjMGJlOTZlMDBjYTcxYmFjMDgz MjE1YWM5MWFkMmU1NzUwOTYgXQoKVGhlIHBlciBuZXRucyBsb29wYmFja19kZXYtPmlwNl9wdHIg aXMgdW5yZWdpc3RlcmVkIGFuZCBzZXQgdG8KTlVMTCB3aGVuIGl0cyBtdHUgaXMgc2V0IHRvIHNt YWxsZXIgdGhhbiBJUFY2X01JTl9NVFUsIHRoaXMKbGVhZHMgdG8gdGhhdCB3ZSBjb3VsZCBzZXQg cnQtPnJ0NmlfaWRldiBOVUxMIGFmdGVyIGEKcnQ2X3VuY2FjaGVkX2xpc3RfZmx1c2hfZGV2KCkg YW5kIHRoZW4gY3Jhc2ggYWZ0ZXIgYW5vdGhlcgpjYWxsLgoKSW4gdGhpcyBjYXNlIHdlIHNob3Vs ZCBqdXN0IGJyaW5nIGl0cyBpbmV0Nl9kZXYgZG93biwgcmF0aGVyCnRoYW4gdW5yZWdpc3Rlcmlu ZyBpdCwgYXQgbGVhc3QgcHJpb3IgdG8gY29tbWl0IDE3NmMzOWFmMjliYwooIm5ldG5zOiBmaXgg YWRkcmNvbmZfaWZkb3duIGtlcm5lbCBwYW5pYyIpIHdlIGFsd2F5cwpvdmVycmlkZSB0aGUgY2Fz ZSBmb3IgbG9vcGJhY2suCgpUaGFua3MgYSBsb3QgdG8gQW5kcmV5IGZvciBmaW5kaW5nIGEgcmVs aWFibGUgcmVwcm9kdWNlci4KCkZpeGVzOiAxNzZjMzlhZjI5YmMgKCJuZXRuczogZml4IGFkZHJj b25mX2lmZG93biBrZXJuZWwgcGFuaWMiKQpSZXBvcnRlZC1ieTogQW5kcmV5IEtvbm92YWxvdiA8 YW5kcmV5a252bEBnb29nbGUuY29tPgpDYzogQW5kcmV5IEtvbm92YWxvdiA8YW5kcmV5a252bEBn b29nbGUuY29tPgpDYzogRGFuaWVsIExlemNhbm8gPGRsZXpjYW5vQGZyLmlibS5jb20+CkNjOiBE YXZpZCBBaGVybiA8ZHNhaGVybkBnbWFpbC5jb20+ClNpZ25lZC1vZmYtYnk6IENvbmcgV2FuZyA8 eGl5b3Uud2FuZ2NvbmdAZ21haWwuY29tPgpBY2tlZC1ieTogRGF2aWQgQWhlcm4gPGRzYWhlcm5A Z21haWwuY29tPgpUZXN0ZWQtYnk6IEFuZHJleSBLb25vdmFsb3YgPGFuZHJleWtudmxAZ29vZ2xl LmNvbT4KU2lnbmVkLW9mZi1ieTogRGF2aWQgUy4gTWlsbGVyIDxkYXZlbUBkYXZlbWxvZnQubmV0 PgotLS0KIG5ldC9pcHY2L2FkZHJjb25mLmMgfCA1ICsrKy0tCiAxIGZpbGUgY2hhbmdlZCwgMyBp bnNlcnRpb25zKCspLCAyIGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL25ldC9pcHY2L2FkZHJj b25mLmMgYi9uZXQvaXB2Ni9hZGRyY29uZi5jCmluZGV4IDk3MjVlOGZhZjU2ZC4uMTc3ZWVlMDYw MDI3IDEwMDY0NAotLS0gYS9uZXQvaXB2Ni9hZGRyY29uZi5jCisrKyBiL25ldC9pcHY2L2FkZHJj b25mLmMKQEAgLTMzMzQsNiArMzMzNCw3IEBAIHN0YXRpYyBpbnQgYWRkcmNvbmZfbm90aWZ5KHN0 cnVjdCBub3RpZmllcl9ibG9jayAqdGhpcywgdW5zaWduZWQgbG9uZyBldmVudCwKIAlzdHJ1Y3Qg bmV0X2RldmljZSAqZGV2ID0gbmV0ZGV2X25vdGlmaWVyX2luZm9fdG9fZGV2KHB0cik7CiAJc3Ry dWN0IG5ldGRldl9ub3RpZmllcl9jaGFuZ2V1cHBlcl9pbmZvICppbmZvOwogCXN0cnVjdCBpbmV0 Nl9kZXYgKmlkZXYgPSBfX2luNl9kZXZfZ2V0KGRldik7CisJc3RydWN0IG5ldCAqbmV0ID0gZGV2 X25ldChkZXYpOwogCWludCBydW5fcGVuZGluZyA9IDA7CiAJaW50IGVycjsKIApAQCAtMzM0OSw3 ICszMzUwLDcgQEAgc3RhdGljIGludCBhZGRyY29uZl9ub3RpZnkoc3RydWN0IG5vdGlmaWVyX2Js b2NrICp0aGlzLCB1bnNpZ25lZCBsb25nIGV2ZW50LAogCWNhc2UgTkVUREVWX0NIQU5HRU1UVToK IAkJLyogaWYgTVRVIHVuZGVyIElQVjZfTUlOX01UVSBzdG9wIElQdjYgb24gdGhpcyBpbnRlcmZh Y2UuICovCiAJCWlmIChkZXYtPm10dSA8IElQVjZfTUlOX01UVSkgewotCQkJYWRkcmNvbmZfaWZk b3duKGRldiwgMSk7CisJCQlhZGRyY29uZl9pZmRvd24oZGV2LCBkZXYgIT0gbmV0LT5sb29wYmFj a19kZXYpOwogCQkJYnJlYWs7CiAJCX0KIApAQCAtMzQ2NSw3ICszNDY2LDcgQEAgc3RhdGljIGlu dCBhZGRyY29uZl9ub3RpZnkoc3RydWN0IG5vdGlmaWVyX2Jsb2NrICp0aGlzLCB1bnNpZ25lZCBs b25nIGV2ZW50LAogCQkJICogSVBWNl9NSU5fTVRVIHN0b3AgSVB2NiBvbiB0aGlzIGludGVyZmFj ZS4KIAkJCSAqLwogCQkJaWYgKGRldi0+bXR1IDwgSVBWNl9NSU5fTVRVKQotCQkJCWFkZHJjb25m X2lmZG93bihkZXYsIDEpOworCQkJCWFkZHJjb25mX2lmZG93bihkZXYsIGRldiAhPSBuZXQtPmxv b3BiYWNrX2Rldik7CiAJCX0KIAkJYnJlYWs7CiAKLS0gCjIuMTMuMAoKCkZyb20gNDBjZjE5Njhi ZmU3OGEzZWFjNTI5ZTY5YmMwZDNlOTU4Y2EzZDA2MiBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEK RnJvbTogQXJuZCBCZXJnbWFubiA8YXJuZEBhcm5kYi5kZT4KRGF0ZTogVGh1LCAyMiBKdW4gMjAx NyAwMDoxNjozNyArMDIwMApTdWJqZWN0OiBbUEFUQ0ggMDMvMzBdIG5ldHZzYzogZG9uJ3QgYWNj ZXNzIG5ldGRldi0+bnVtX3J4X3F1ZXVlcyBkaXJlY3RseQoKWyBVcHN0cmVhbSBjb21taXQgYjky YjdkMzMxMjAzM2EwOGNhZTJjODc5YjkyNDNjNDJhZDdkZTk0YiBdCgpUaGlzIHN0cnVjdHVyZSBt ZW1iZXIgaXMgaGlkZGVuIGJlaGluZCBDT05GSUdfU1lTRlMsIGFuZCB3ZQpnZXQgYSBidWlsZCBl cnJvciB3aGVuIHRoYXQgaXMgZGlzYWJsZWQ6Cgpkcml2ZXJzL25ldC9oeXBlcnYvbmV0dnNjX2Ry di5jOiBJbiBmdW5jdGlvbiAnbmV0dnNjX3NldF9jaGFubmVscyc6CmRyaXZlcnMvbmV0L2h5cGVy di9uZXR2c2NfZHJ2LmM6NzU0OjQ5OiBlcnJvcjogJ3N0cnVjdCBuZXRfZGV2aWNlJyBoYXMgbm8g bWVtYmVyIG5hbWVkICdudW1fcnhfcXVldWVzJzsgZGlkIHlvdSBtZWFuICdudW1fdHhfcXVldWVz Jz8KZHJpdmVycy9uZXQvaHlwZXJ2L25ldHZzY19kcnYuYzogSW4gZnVuY3Rpb24gJ25ldHZzY19z ZXRfcnhmaCc6CmRyaXZlcnMvbmV0L2h5cGVydi9uZXR2c2NfZHJ2LmM6MTE4MToyNTogZXJyb3I6 ICdzdHJ1Y3QgbmV0X2RldmljZScgaGFzIG5vIG1lbWJlciBuYW1lZCAnbnVtX3J4X3F1ZXVlcyc7 IGRpZCB5b3UgbWVhbiAnbnVtX3R4X3F1ZXVlcyc/CgpBcyB0aGUgdmFsdWUgaXMgb25seSBzZXQg b25jZSB0byB0aGUgYXJndW1lbnQgb2YgYWxsb2NfbmV0ZGV2X21xKCksCndlIGNhbiBjb21wYXJl IGFnYWluc3QgdGhhdCBjb25zdGFudCBkaXJlY3RseS4KCkZpeGVzOiBmZjRhNDQxOTkwMTIgKCJu ZXR2c2M6IGFsbG93IGdldC9zZXQgb2YgUlNTIGluZGlyZWN0aW9uIHRhYmxlIikKRml4ZXM6IDJi MDE4ODhkMWI0NSAoIm5ldHZzYzogYWxsb3cgbW9yZSBmbGV4aWJsZSBzZXR0aW5nIG9mIG51bWJl ciBvZiBjaGFubmVscyIpClNpZ25lZC1vZmYtYnk6IEFybmQgQmVyZ21hbm4gPGFybmRAYXJuZGIu ZGU+ClJldmlld2VkLWJ5OiBIYWl5YW5nIFpoYW5nIDxoYWl5YW5nekBtaWNyb3NvZnQuY29tPgpT aWduZWQtb2ZmLWJ5OiBTdGVwaGVuIEhlbW1pbmdlciA8c3RoZW1taW5AbWljcm9zb2Z0LmNvbT4K U2lnbmVkLW9mZi1ieTogRGF2aWQgUy4gTWlsbGVyIDxkYXZlbUBkYXZlbWxvZnQubmV0PgotLS0K IGRyaXZlcnMvbmV0L2h5cGVydi9uZXR2c2NfZHJ2LmMgfCA0ICsrLS0KIDEgZmlsZSBjaGFuZ2Vk LCAyIGluc2VydGlvbnMoKyksIDIgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvZHJpdmVycy9u ZXQvaHlwZXJ2L25ldHZzY19kcnYuYyBiL2RyaXZlcnMvbmV0L2h5cGVydi9uZXR2c2NfZHJ2LmMK aW5kZXggNWVkZTg3ZjMwNDYzLi4wOWIwYmVjYjM4NDMgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvbmV0 L2h5cGVydi9uZXR2c2NfZHJ2LmMKKysrIGIvZHJpdmVycy9uZXQvaHlwZXJ2L25ldHZzY19kcnYu YwpAQCAtNzUzLDcgKzc1Myw3IEBAIHN0YXRpYyBpbnQgbmV0dnNjX3NldF9jaGFubmVscyhzdHJ1 Y3QgbmV0X2RldmljZSAqbmV0LAogCSAgICBjaGFubmVscy0+cnhfY291bnQgfHwgY2hhbm5lbHMt PnR4X2NvdW50IHx8IGNoYW5uZWxzLT5vdGhlcl9jb3VudCkKIAkJcmV0dXJuIC1FSU5WQUw7CiAK LQlpZiAoY291bnQgPiBuZXQtPm51bV90eF9xdWV1ZXMgfHwgY291bnQgPiBuZXQtPm51bV9yeF9x dWV1ZXMpCisJaWYgKGNvdW50ID4gbmV0LT5udW1fdHhfcXVldWVzIHx8IGNvdW50ID4gVlJTU19D SEFOTkVMX01BWCkKIAkJcmV0dXJuIC1FSU5WQUw7CiAKIAlpZiAobmV0X2RldmljZV9jdHgtPnN0 YXJ0X3JlbW92ZSB8fCAhbnZkZXYgfHwgbnZkZXYtPmRlc3Ryb3kpCkBAIC0xMTQyLDcgKzExNDIs NyBAQCBzdGF0aWMgaW50IG5ldHZzY19zZXRfcnhmaChzdHJ1Y3QgbmV0X2RldmljZSAqZGV2LCBj b25zdCB1MzIgKmluZGlyLAogCiAJaWYgKGluZGlyKSB7CiAJCWZvciAoaSA9IDA7IGkgPCBJVEFC X05VTTsgaSsrKQotCQkJaWYgKGluZGlyW2ldID49IGRldi0+bnVtX3J4X3F1ZXVlcykKKwkJCWlm IChpbmRpcltpXSA+PSBWUlNTX0NIQU5ORUxfTUFYKQogCQkJCXJldHVybiAtRUlOVkFMOwogCiAJ CWZvciAoaSA9IDA7IGkgPCBJVEFCX05VTTsgaSsrKQotLSAKMi4xMy4wCgoKRnJvbSBhMjAzZDIw NjA2YmY5YTE1OWFjYjM2ZWU3ZGU1ZmE2YjA4ODg5ODQ4IE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAw MQpGcm9tOiBNYXJ0aW4gSGFiZXRzIDxtaGFiZXRzQHNvbGFyZmxhcmUuY29tPgpEYXRlOiBUaHUs IDIyIEp1biAyMDE3IDEwOjUwOjQxICswMTAwClN1YmplY3Q6IFtQQVRDSCAwNC8zMF0gc2ZjOiBG aXggTUNESSBjb21tYW5kIHNpemUgZm9yIGZpbHRlciBvcGVyYXRpb25zCgpbIFVwc3RyZWFtIGNv bW1pdCBiYjUzZjRkNGY1MTE2ZDNkYWU3NmJiMTJmYjE2YmM3Mzc3MWY5NThhIF0KClRoZSA4MDAw IHNlcmllcyBhZGFwdGVycyB1c2VzIGNhdGNoLWFsbCBmaWx0ZXJzIGZvciBlbmNhcHN1bGF0ZWQg dHJhZmZpYwp0byBzdXBwb3J0IGZpbHRlcmluZyBWWExBTiwgTlZHUkUgYW5kIEdFTkVWRSB0cmFm ZmljLgpUaGlzIG5ldyBmaWx0ZXIgZnVuY3Rpb25hbGl0eSByZXF1aXJlcyBhIGxvbmdlciBNQ0RJ IGNvbW1hbmQuClRoaXMgcGF0Y2ggaW5jcmVhc2VzIHRoZSBzaXplIG9mIGJ1ZmZlcnMgb24gc3Rh Y2sgdGhhdCB3ZXJlIG1pc3NlZCwgd2hpY2gKZml4ZXMgYSBrZXJuZWwgcGFuaWMgZnJvbSB0aGUg c3RhY2sgcHJvdGVjdG9yLgoKRml4ZXM6IDliNDEwODAxMjUxNzYgKCJzZmM6IGluc2VydCBjYXRj aC1hbGwgZmlsdGVycyBmb3IgZW5jYXBzdWxhdGVkIHRyYWZmaWMiKQpTaWduZWQtb2ZmLWJ5OiBN YXJ0aW4gSGFiZXRzIDxtaGFiZXRzQHNvbGFyZmxhcmUuY29tPgpBY2tlZC1ieTogRWR3YXJkIENy ZWUgPGVjcmVlQHNvbGFyZmxhcmUuY29tPgpBY2tlZC1ieTogQmVydCBLZW53YXJkIGJrZW53YXJk QHNvbGFyZmxhcmUuY29tClNpZ25lZC1vZmYtYnk6IERhdmlkIFMuIE1pbGxlciA8ZGF2ZW1AZGF2 ZW1sb2Z0Lm5ldD4KLS0tCiBkcml2ZXJzL25ldC9ldGhlcm5ldC9zZmMvZWYxMC5jIHwgOCArKysr LS0tLQogMSBmaWxlIGNoYW5nZWQsIDQgaW5zZXJ0aW9ucygrKSwgNCBkZWxldGlvbnMoLSkKCmRp ZmYgLS1naXQgYS9kcml2ZXJzL25ldC9ldGhlcm5ldC9zZmMvZWYxMC5jIGIvZHJpdmVycy9uZXQv ZXRoZXJuZXQvc2ZjL2VmMTAuYwppbmRleCBjNjBjMmQ0YzY0NmEuLmY0YWVkODg5YjZjZSAxMDA2 NDQKLS0tIGEvZHJpdmVycy9uZXQvZXRoZXJuZXQvc2ZjL2VmMTAuYworKysgYi9kcml2ZXJzL25l dC9ldGhlcm5ldC9zZmMvZWYxMC5jCkBAIC00MTcxLDcgKzQxNzEsNyBAQCBzdGF0aWMgczMyIGVm eF9lZjEwX2ZpbHRlcl9pbnNlcnQoc3RydWN0IGVmeF9uaWMgKmVmeCwKIAkgKiByZWNpcGllbnRz CiAJICovCiAJaWYgKGlzX21jX3JlY2lwKSB7Ci0JCU1DRElfREVDTEFSRV9CVUYoaW5idWYsIE1D X0NNRF9GSUxURVJfT1BfSU5fTEVOKTsKKwkJTUNESV9ERUNMQVJFX0JVRihpbmJ1ZiwgTUNfQ01E X0ZJTFRFUl9PUF9FWFRfSU5fTEVOKTsKIAkJdW5zaWduZWQgaW50IGRlcHRoLCBpOwogCiAJCW1l bXNldChpbmJ1ZiwgMCwgc2l6ZW9mKGluYnVmKSk7CkBAIC00MzE5LDcgKzQzMTksNyBAQCBzdGF0 aWMgaW50IGVmeF9lZjEwX2ZpbHRlcl9yZW1vdmVfaW50ZXJuYWwoc3RydWN0IGVmeF9uaWMgKmVm eCwKIAkJCWVmeF9lZjEwX2ZpbHRlcl9zZXRfZW50cnkodGFibGUsIGZpbHRlcl9pZHgsIE5VTEws IDApOwogCQl9IGVsc2UgewogCQkJZWZ4X21jZGlfZGlzcGxheV9lcnJvcihlZngsIE1DX0NNRF9G SUxURVJfT1AsCi0JCQkJCSAgICAgICBNQ19DTURfRklMVEVSX09QX0lOX0xFTiwKKwkJCQkJICAg ICAgIE1DX0NNRF9GSUxURVJfT1BfRVhUX0lOX0xFTiwKIAkJCQkJICAgICAgIE5VTEwsIDAsIHJj KTsKIAkJfQogCX0KQEAgLTQ0NTIsNyArNDQ1Miw3IEBAIHN0YXRpYyBzMzIgZWZ4X2VmMTBfZmls dGVyX3Jmc19pbnNlcnQoc3RydWN0IGVmeF9uaWMgKmVmeCwKIAkJCQkgICAgICBzdHJ1Y3QgZWZ4 X2ZpbHRlcl9zcGVjICpzcGVjKQogewogCXN0cnVjdCBlZnhfZWYxMF9maWx0ZXJfdGFibGUgKnRh YmxlID0gZWZ4LT5maWx0ZXJfc3RhdGU7Ci0JTUNESV9ERUNMQVJFX0JVRihpbmJ1ZiwgTUNfQ01E X0ZJTFRFUl9PUF9JTl9MRU4pOworCU1DRElfREVDTEFSRV9CVUYoaW5idWYsIE1DX0NNRF9GSUxU RVJfT1BfRVhUX0lOX0xFTik7CiAJc3RydWN0IGVmeF9maWx0ZXJfc3BlYyAqc2F2ZWRfc3BlYzsK IAl1bnNpZ25lZCBpbnQgaGFzaCwgaSwgZGVwdGggPSAxOwogCWJvb2wgcmVwbGFjaW5nID0gZmFs c2U7CkBAIC00OTM5LDcgKzQ5MzksNyBAQCBzdGF0aWMgdm9pZCBlZnhfZWYxMF9maWx0ZXJfdGFi bGVfcmVzdG9yZShzdHJ1Y3QgZWZ4X25pYyAqZWZ4KQogc3RhdGljIHZvaWQgZWZ4X2VmMTBfZmls dGVyX3RhYmxlX3JlbW92ZShzdHJ1Y3QgZWZ4X25pYyAqZWZ4KQogewogCXN0cnVjdCBlZnhfZWYx MF9maWx0ZXJfdGFibGUgKnRhYmxlID0gZWZ4LT5maWx0ZXJfc3RhdGU7Ci0JTUNESV9ERUNMQVJF X0JVRihpbmJ1ZiwgTUNfQ01EX0ZJTFRFUl9PUF9JTl9MRU4pOworCU1DRElfREVDTEFSRV9CVUYo aW5idWYsIE1DX0NNRF9GSUxURVJfT1BfRVhUX0lOX0xFTik7CiAJc3RydWN0IGVmeF9maWx0ZXJf c3BlYyAqc3BlYzsKIAl1bnNpZ25lZCBpbnQgZmlsdGVyX2lkeDsKIAlpbnQgcmM7Ci0tIAoyLjEz LjAKCgpGcm9tIDcyZDJkYWQ1M2U0OTg1NjQ5NTQ5MjY0ODlmZWNiZGM2OGJkZWIxNjQgTW9uIFNl cCAxNyAwMDowMDowMCAyMDAxCkZyb206ID0/VVRGLTg/cT9NaWNoYWw9MjBLdWJlPUM0PThEZWs/ PSA8bWt1YmVjZWtAc3VzZS5jej4KRGF0ZTogTW9uLCAxOSBKdW4gMjAxNyAxMzowMzo0MyArMDIw MApTdWJqZWN0OiBbUEFUQ0ggMDUvMzBdIG5ldDogYWNjb3VudCBmb3IgY3VycmVudCBza2IgbGVu Z3RoIHdoZW4gZGVjaWRpbmcgYWJvdXQKIFVGTwoKWyBVcHN0cmVhbSBjb21taXQgYTVjYjY1OWJi YzFjODY0NGVmYTBjMzEzOGE3NTdhMWU0MzJhNDg4MCBdCgpPdXIgY3VzdG9tZXIgZW5jb3VudGVy ZWQgc3R1Y2sgTkZTIHdyaXRlcyBmb3IgYmxvY2tzIHN0YXJ0aW5nIGF0IHNwZWNpZmljCm9mZnNl dHMgdy5yLnQuIHBhZ2UgYm91bmRhcnkgY2F1c2VkIGJ5IG5ldHdvcmtpbmcgc3RhY2sgc2VuZGlu ZyBwYWNrZXRzIHZpYQpVRk8gZW5hYmxlZCBkZXZpY2Ugd2l0aCB3cm9uZyBjaGVja3N1bS4gVGhl IHByb2JsZW0gY2FuIGJlIHJlcHJvZHVjZWQgYnkKY29tcG9zaW5nIGEgbG9uZyBVRFAgZGF0YWdy YW0gZnJvbSBtdWx0aXBsZSBwYXJ0cyB1c2luZyBNU0dfTU9SRSBmbGFnOgoKICBzZW5kdG8oc2Qs IGJ1ZmYsIDEwMDAsIE1TR19NT1JFLCAuLi4pOwogIHNlbmR0byhzZCwgYnVmZiwgMTAwMCwgTVNH X01PUkUsIC4uLik7CiAgc2VuZHRvKHNkLCBidWZmLCAzMDAwLCAwLCAuLi4pOwoKQXNzdW1lIHRo aXMgcGFja2V0IGlzIHRvIGJlIHJvdXRlZCB2aWEgYSBkZXZpY2Ugd2l0aCBNVFUgMTUwMCBhbmQK TkVUSUZfRl9VRk8gZW5hYmxlZC4gV2hlbiBzZWNvbmQgc2VuZHRvKCkgZ2V0cyBpbnRvIF9faXBf YXBwZW5kX2RhdGEoKSwKdGhpcyBjb25kaXRpb24gaXMgdGVzdGVkIChhbW9uZyBvdGhlcnMpIHRv IGRlY2lkZSB3aGV0aGVyIHRvIGNhbGwKaXBfdWZvX2FwcGVuZF9kYXRhKCk6CgogICgobGVuZ3Ro ICsgZnJhZ2hlYWRlcmxlbikgPiBtdHUpIHx8IChza2IgJiYgc2tiX2lzX2dzbyhza2IpKQoKQXQg dGhlIG1vbWVudCwgd2UgYWxyZWFkeSBoYXZlIHNrYiB3aXRoIDEwMjggYnl0ZXMgb2YgZGF0YSB3 aGljaCBpcyBub3QKbWFya2VkIGZvciBHU08gc28gdGhhdCB0aGUgdGVzdCBpcyBmYWxzZSAoZnJh Z2hlYWRlcmxlbiBpcyB1c3VhbGx5IDIwKS4KVGh1cyB3ZSBhcHBlbmQgc2Vjb25kIDEwMDAgYnl0 ZXMgdG8gdGhpcyBza2Igd2l0aG91dCBpbnZva2luZyBVRk8uIFRoaXJkCnNlbmR0bygpLCBob3dl dmVyLCBoYXMgc3VmZmljaWVudCBsZW5ndGggdG8gdHJpZ2dlciB0aGUgVUZPIHBhdGggc28gdGhh dCB3ZQplbmQgdXAgd2l0aCBub24tVUZPIHNrYiBmb2xsb3dlZCBieSBhIFVGTyBvbmUuIExhdGVy IG9uLCB1ZHBfc2VuZF9za2IoKQp1c2VzIHVkcF9jc3VtKCkgdG8gY2FsY3VsYXRlIHRoZSBjaGVj a3N1bSBidXQgdGhhdCBhc3N1bWVzIGFsbCBmcmFnbWVudHMKaGF2ZSBjb3JyZWN0IGNoZWNrc3Vt IGluIHNrYi0+Y3N1bSB3aGljaCBpcyBub3QgdHJ1ZSBmb3IgVUZPIGZyYWdtZW50cy4KCldoZW4g Y2hlY2tpbmcgYWdhaW5zdCBNVFUsIHdlIG5lZWQgdG8gYWRkIHNrYi0+bGVuIHRvIGxlbmd0aCBv ZiBuZXcgc2VnbWVudAppZiB3ZSBhbHJlYWR5IGhhdmUgYSBwYXJ0aWFsbHkgZmlsbGVkIHNrYiBh bmQgZnJhZ2hlYWRlcmxlbiBvbmx5IGlmIHRoZXJlCmlzbid0IG9uZS4KCkluIHRoZSBJUHY2IGNh c2UsIHNrYiBjYW4gb25seSBiZSBudWxsIGlmIHRoaXMgaXMgdGhlIGZpcnN0IHNlZ21lbnQgc28g dGhhdAp3ZSBoYXZlIHRvIHVzZSBoZWFkZXJzaXplIChsZW5ndGggb2YgdGhlIGZpcnN0IElQdjYg aGVhZGVyKSByYXRoZXIgdGhhbgpmcmFnaGVhZGVybGVuIChsZW5ndGggb2YgSVB2NiBoZWFkZXIg b2YgZnVydGhlciBmcmFnbWVudHMpIGZvciBza2IgPT0gTlVMTC4KCkZpeGVzOiBlODllOWNmNTM5 YTIgKCJbSVB2NC9JUHY2XTogVUZPIFNjYXR0ZXItZ2F0aGVyIGFwcHJvYWNoIikKRml4ZXM6IGU0 YzVlMTNhYTQ1YyAoImlwdjY6IFNob3VsZCB1c2UgY29uc2lzdGVudCBjb25kaXRpb25hbCBqdWRn ZW1lbnQgZm9yCglpcDYgZnJhZ21lbnQgYmV0d2VlbiBfX2lwNl9hcHBlbmRfZGF0YSBhbmQgaXA2 X2ZpbmlzaF9vdXRwdXQiKQpTaWduZWQtb2ZmLWJ5OiBNaWNoYWwgS3ViZWNlayA8bWt1YmVjZWtA c3VzZS5jej4KQWNrZWQtYnk6IFZsYWQgWWFzZXZpY2ggPHZ5YXNldmljQHJlZGhhdC5jb20+ClNp Z25lZC1vZmYtYnk6IERhdmlkIFMuIE1pbGxlciA8ZGF2ZW1AZGF2ZW1sb2Z0Lm5ldD4KLS0tCiBu ZXQvaXB2NC9pcF9vdXRwdXQuYyAgfCAzICsrLQogbmV0L2lwdjYvaXA2X291dHB1dC5jIHwgMiAr LQogMiBmaWxlcyBjaGFuZ2VkLCAzIGluc2VydGlvbnMoKyksIDIgZGVsZXRpb25zKC0pCgpkaWZm IC0tZ2l0IGEvbmV0L2lwdjQvaXBfb3V0cHV0LmMgYi9uZXQvaXB2NC9pcF9vdXRwdXQuYwppbmRl eCA3YTNmZDI1ZTg5MTMuLjUzMmIzNmU5Y2UyYSAxMDA2NDQKLS0tIGEvbmV0L2lwdjQvaXBfb3V0 cHV0LmMKKysrIGIvbmV0L2lwdjQvaXBfb3V0cHV0LmMKQEAgLTk2NCw3ICs5NjQsOCBAQCBzdGF0 aWMgaW50IF9faXBfYXBwZW5kX2RhdGEoc3RydWN0IHNvY2sgKnNrLAogCQljc3VtbW9kZSA9IENI RUNLU1VNX1BBUlRJQUw7CiAKIAljb3JrLT5sZW5ndGggKz0gbGVuZ3RoOwotCWlmICgoKChsZW5n dGggKyBmcmFnaGVhZGVybGVuKSA+IG10dSkgfHwgKHNrYiAmJiBza2JfaXNfZ3NvKHNrYikpKSAm JgorCWlmICgoKChsZW5ndGggKyAoc2tiID8gc2tiLT5sZW4gOiBmcmFnaGVhZGVybGVuKSkgPiBt dHUpIHx8CisJICAgICAoc2tiICYmIHNrYl9pc19nc28oc2tiKSkpICYmCiAJICAgIChzay0+c2tf cHJvdG9jb2wgPT0gSVBQUk9UT19VRFApICYmCiAJICAgIChydC0+ZHN0LmRldi0+ZmVhdHVyZXMg JiBORVRJRl9GX1VGTykgJiYgIWRzdF94ZnJtKCZydC0+ZHN0KSAmJgogCSAgICAoc2stPnNrX3R5 cGUgPT0gU09DS19ER1JBTSkgJiYgIXNrLT5za19ub19jaGVja190eCkgewpkaWZmIC0tZ2l0IGEv bmV0L2lwdjYvaXA2X291dHB1dC5jIGIvbmV0L2lwdjYvaXA2X291dHB1dC5jCmluZGV4IGJmOGE1 OGExYzMyZC4uMTY5OWFjYjJmYTJjIDEwMDY0NAotLS0gYS9uZXQvaXB2Ni9pcDZfb3V0cHV0LmMK KysrIGIvbmV0L2lwdjYvaXA2X291dHB1dC5jCkBAIC0xMzkwLDcgKzEzOTAsNyBAQCBzdGF0aWMg aW50IF9faXA2X2FwcGVuZF9kYXRhKHN0cnVjdCBzb2NrICpzaywKIAkgKi8KIAogCWNvcmstPmxl bmd0aCArPSBsZW5ndGg7Ci0JaWYgKCgoKGxlbmd0aCArIGZyYWdoZWFkZXJsZW4pID4gbXR1KSB8 fAorCWlmICgoKChsZW5ndGggKyAoc2tiID8gc2tiLT5sZW4gOiBoZWFkZXJzaXplKSkgPiBtdHUp IHx8CiAJICAgICAoc2tiICYmIHNrYl9pc19nc28oc2tiKSkpICYmCiAJICAgIChzay0+c2tfcHJv dG9jb2wgPT0gSVBQUk9UT19VRFApICYmCiAJICAgIChydC0+ZHN0LmRldi0+ZmVhdHVyZXMgJiBO RVRJRl9GX1VGTykgJiYgIWRzdF94ZnJtKCZydC0+ZHN0KSAmJgotLSAKMi4xMy4wCgoKRnJvbSAy NmRjZmE1MmI0ZGRkYWM5ZGI4NzRmNjBmNDVmMGYzYTNiYmNkZWRhIE1vbiBTZXAgMTcgMDA6MDA6 MDAgMjAwMQpGcm9tOiBSaWNoYXJkIENvY2hyYW4gPHJpY2hhcmRjb2NocmFuQGdtYWlsLmNvbT4K RGF0ZTogRnJpLCAyMyBKdW4gMjAxNyAxNzo1MTozMSArMDIwMApTdWJqZWN0OiBbUEFUQ0ggMDYv MzBdIG5ldDogZHA4MzY0MDogQXZvaWQgTlVMTCBwb2ludGVyIGRlcmVmZXJlbmNlLgoKWyBVcHN0 cmVhbSBjb21taXQgZGI5ZDhiMjlkMTlkMjgwMTc5M2U0NDE5ZjRjNjI3MmJmODk1MWM2MiBdCgpU aGUgZnVuY3Rpb24sIHNrYl9jb21wbGV0ZV90eF90aW1lc3RhbXAoKSwgdXNlZCB0byBhbGxvdyBw YXNzaW5nIGluIGEKTlVMTCBwb2ludGVyIGZvciB0aGUgdGltZSBzdGFtcHMsIGJ1dCB0aGF0IHdh cyBjaGFuZ2VkIGluIGNvbW1pdAo2MmJjY2I4Y2RiNjkwNTFiOTVhNTVhYjBjNDg5ZTNjYWIyNjFj OGVmICgibmV0LXRpbWVzdGFtcDogTWFrZSB0aGUKY2xvbmUgb3BlcmF0aW9uIHN0YW5kLWFsb25l IGZyb20gcGh5IHRpbWVzdGFtcGluZyIpLCBhbmQgdGhlIGV4aXN0aW5nCmNhbGwgc2l0ZXMsIGFs bCBvZiB3aGljaCBhcmUgaW4gdGhlIGRwODM2NDAgZHJpdmVyLCB3ZXJlIGZpeGVkIHVwLgoKRXZl biB0aG91Z2ggdGhlIGtlcm5lbC1kb2Mgd2FzIHN1YnNlcXVlbnRseSB1cGRhdGVkIGluIGNvbW1p dAo3YTc2YTAyMWNkNWEyOTJiZTg3NWZiYzYxNmRhZjAzZWFiMWU2OTk2ICgibmV0LXRpbWVzdGFt cDogVXBkYXRlCnNrYl9jb21wbGV0ZV90eF90aW1lc3RhbXAgY29tbWVudCIpLCBzdGlsbCBhIGJ1 ZyBmaXggZnJvbSBNYW5mcmVkClJ1ZGlnaWVyIGNhbWUgaW50byB0aGUgZHJpdmVyIHVzaW5nIHRo ZSBvbGQgc2VtYW50aWNzLiAgUHJvYmFibHkKTWFuZnJlZCBkZXJpdmVkIHRoYXQgcGF0Y2ggZnJv bSBhbiBvbGRlciBrZXJuZWwgdmVyc2lvbi4KClRoaXMgZml4IHNob3VsZCBiZSBhcHBsaWVkIHRv IHRoZSBzdGFibGUgdHJlZXMgYXMgd2VsbC4KCkZpeGVzOiA4MWU4ZjJlOTMwZmUgKCJuZXQ6IGRw ODM2NDA6IEZpeCB0eCB0aW1lc3RhbXAgb3ZlcmZsb3cgaGFuZGxpbmcuIikKU2lnbmVkLW9mZi1i eTogUmljaGFyZCBDb2NocmFuIDxyaWNoYXJkY29jaHJhbkBnbWFpbC5jb20+ClNpZ25lZC1vZmYt Ynk6IERhdmlkIFMuIE1pbGxlciA8ZGF2ZW1AZGF2ZW1sb2Z0Lm5ldD4KLS0tCiBkcml2ZXJzL25l dC9waHkvZHA4MzY0MC5jIHwgMiArLQogMSBmaWxlIGNoYW5nZWQsIDEgaW5zZXJ0aW9uKCspLCAx IGRlbGV0aW9uKC0pCgpkaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvcGh5L2RwODM2NDAuYyBiL2Ry aXZlcnMvbmV0L3BoeS9kcDgzNjQwLmMKaW5kZXggZWQwZDEwZjU0ZjI2Li5jMzA2NTIzNmZmY2Mg MTAwNjQ0Ci0tLSBhL2RyaXZlcnMvbmV0L3BoeS9kcDgzNjQwLmMKKysrIGIvZHJpdmVycy9uZXQv cGh5L2RwODM2NDAuYwpAQCAtOTA4LDcgKzkwOCw3IEBAIHN0YXRpYyB2b2lkIGRlY29kZV90eHRz KHN0cnVjdCBkcDgzNjQwX3ByaXZhdGUgKmRwODM2NDAsCiAJaWYgKG92ZXJmbG93KSB7CiAJCXBy X2RlYnVnKCJ0eCB0aW1lc3RhbXAgcXVldWUgb3ZlcmZsb3csIGNvdW50ICVkXG4iLCBvdmVyZmxv dyk7CiAJCXdoaWxlIChza2IpIHsKLQkJCXNrYl9jb21wbGV0ZV90eF90aW1lc3RhbXAoc2tiLCBO VUxMKTsKKwkJCWtmcmVlX3NrYihza2IpOwogCQkJc2tiID0gc2tiX2RlcXVldWUoJmRwODM2NDAt PnR4X3F1ZXVlKTsKIAkJfQogCQlyZXR1cm47Ci0tIAoyLjEzLjAKCgpGcm9tIDYwYjYxZjExY2Fm YjkxMTQwNWFhMjBlYWNmMzZiZWQ3OWFlM2ZjMjIgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCkZy b206IFdBTkcgQ29uZyA8eGl5b3Uud2FuZ2NvbmdAZ21haWwuY29tPgpEYXRlOiBTYXQsIDI0IEp1 biAyMDE3IDIzOjUwOjMwIC0wNzAwClN1YmplY3Q6IFtQQVRDSCAwNy8zMF0gdGNwOiByZXNldCBz a19yeF9kc3QgaW4gdGNwX2Rpc2Nvbm5lY3QoKQoKWyBVcHN0cmVhbSBjb21taXQgZDc0N2E3YTUx YjAwOTg0MTI3YTg4MTEzY2RiYmMyNmY5MWU5ZDgxNSBdCgpXZSBoYXZlIHRvIHJlc2V0IHRoZSBz ay0+c2tfcnhfZHN0IHdoZW4gd2UgZGlzY29ubmVjdCBhIFRDUApjb25uZWN0aW9uLCBiZWNhdXNl IG90aGVyd2lzZSB3aGVuIHdlIHJlLWNvbm5lY3QgaXQgdGhpcwpkc3QgcmVmZXJlbmNlIGlzIHNp bXBseSBvdmVycmlkZGVuIGluIHRjcF9maW5pc2hfY29ubmVjdCgpLgoKVGhpcyBmaXhlcyBhIGRz dCBsZWFrIHdoaWNoIGxlYWRzIHRvIGEgbG9vcGJhY2sgZGV2IHJlZmNudApsZWFrLiBJdCBpcyBh IGxvbmctc3RhbmRpbmcgYnVnLCBLZXZpbiByZXBvcnRlZCBhIHZlcnkgc2ltaWxhcgooaWYgbm90 IHNhbWUpIGJ1ZyBiZWZvcmUuIFRoYW5rcyB0byBBbmRyZWkgZm9yIHByb3ZpZGluZyBzdWNoCmEg cmVsaWFibGUgcmVwcm9kdWNlciB3aGljaCBncmVhdGx5IG5hcnJvd3MgZG93biB0aGUgcHJvYmxl bS4KCkZpeGVzOiA0MTA2M2U5ZGQxMTkgKCJpcHY0OiBFYXJseSBUQ1Agc29ja2V0IGRlbXV4LiIp ClJlcG9ydGVkLWJ5OiBBbmRyZWkgVmFnaW4gPGF2YWdpbkBnbWFpbC5jb20+ClJlcG9ydGVkLWJ5 OiBLZXZpbiBYdSA8a2Fpd2VuLnh1QGh1bHUuY29tPgpTaWduZWQtb2ZmLWJ5OiBDb25nIFdhbmcg PHhpeW91Lndhbmdjb25nQGdtYWlsLmNvbT4KU2lnbmVkLW9mZi1ieTogRGF2aWQgUy4gTWlsbGVy IDxkYXZlbUBkYXZlbWxvZnQubmV0PgotLS0KIG5ldC9pcHY0L3RjcC5jIHwgMiArKwogMSBmaWxl IGNoYW5nZWQsIDIgaW5zZXJ0aW9ucygrKQoKZGlmZiAtLWdpdCBhL25ldC9pcHY0L3RjcC5jIGIv bmV0L2lwdjQvdGNwLmMKaW5kZXggNjUxZjFmMDU4YTY0Li4yMzkxYTA3ZTQ1NjYgMTAwNjQ0Ci0t LSBhL25ldC9pcHY0L3RjcC5jCisrKyBiL25ldC9pcHY0L3RjcC5jCkBAIC0yMzI1LDYgKzIzMjUs OCBAQCBpbnQgdGNwX2Rpc2Nvbm5lY3Qoc3RydWN0IHNvY2sgKnNrLCBpbnQgZmxhZ3MpCiAJdGNw X2luaXRfc2VuZF9oZWFkKHNrKTsKIAltZW1zZXQoJnRwLT5yeF9vcHQsIDAsIHNpemVvZih0cC0+ cnhfb3B0KSk7CiAJX19za19kc3RfcmVzZXQoc2spOworCWRzdF9yZWxlYXNlKHNrLT5za19yeF9k c3QpOworCXNrLT5za19yeF9kc3QgPSBOVUxMOwogCXRjcF9zYXZlZF9zeW5fZnJlZSh0cCk7CiAK IAkvKiBDbGVhbiB1cCBmYXN0b3BlbiByZWxhdGVkIGZpZWxkcyAqLwotLSAKMi4xMy4wCgoKRnJv bSAyNDZjYzU0NGE3Njk3YWE4NzYwMmYyY2ZhNjMwNWRkNmViNGFlZDUzIE1vbiBTZXAgMTcgMDA6 MDA6MDAgMjAwMQpGcm9tOiBFcmljIER1bWF6ZXQgPGVkdW1hemV0QGdvb2dsZS5jb20+CkRhdGU6 IFR1ZSwgMjcgSnVuIDIwMTcgMDc6MDI6MjAgLTA3MDAKU3ViamVjdDogW1BBVENIIDA4LzMwXSBu ZXQ6IHByZXZlbnQgc2lnbiBleHRlbnNpb24gaW4gZGV2X2dldF9zdGF0cygpCgpbIFVwc3RyZWFt IGNvbW1pdCA2ZjY0ZWM3NDUxNTkyNWNjZWQ2ZGY0NTcxNjM4YjVhMDk5YTQ5YWFlIF0KClNpbWls YXIgdG8gdGhlIGZpeCBwcm92aWRlZCBieSBEb21pbmlrIEhlaWRsZXIgaW4gY29tbWl0CjliM2Rj MGExN2Q3MyAoImwydHA6IGNhc3QgbDJ0cCB0cmFmZmljIGNvdW50ZXIgdG8gdW5zaWduZWQiKQp3 ZSBuZWVkIHRvIHRha2UgY2FyZSBvZiAzMmJpdCBrZXJuZWxzIGluIGRldl9nZXRfc3RhdHMoKS4K CldoZW4gdXNpbmcgYXRvbWljX2xvbmdfcmVhZCgpLCB3ZSBhZGQgYSAnbG9uZycgdG8gdTY0IGFu ZAptaWdodCBtaXNpbnRlcnByZXQgaGlnaCBvcmRlciBiaXQsIHVubGVzcyB3ZSBjYXN0IHRvIHVu c2lnbmVkLgoKRml4ZXM6IGNhZjU4NmU1ZjIzY2UgKCJuZXQ6IGFkZCBhIGNvcmUgbmV0ZGV2LT5y eF9kcm9wcGVkIGNvdW50ZXIiKQpGaXhlczogMDE1ZjA2ODhmNTdjYSAoIm5ldDogbmV0OiBhZGQg YSBjb3JlIG5ldGRldi0+dHhfZHJvcHBlZCBjb3VudGVyIikKRml4ZXM6IDZlNzMzM2QzMTVhNzYg KCJuZXQ6IGFkZCByeF9ub2hhbmRsZXIgc3RhdCBjb3VudGVyIikKU2lnbmVkLW9mZi1ieTogRXJp YyBEdW1hemV0IDxlZHVtYXpldEBnb29nbGUuY29tPgpDYzogSmFyb2QgV2lsc29uIDxqYXJvZEBy ZWRoYXQuY29tPgpTaWduZWQtb2ZmLWJ5OiBEYXZpZCBTLiBNaWxsZXIgPGRhdmVtQGRhdmVtbG9m dC5uZXQ+Ci0tLQogbmV0L2NvcmUvZGV2LmMgfCA2ICsrKy0tLQogMSBmaWxlIGNoYW5nZWQsIDMg aW5zZXJ0aW9ucygrKSwgMyBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9uZXQvY29yZS9kZXYu YyBiL25ldC9jb3JlL2Rldi5jCmluZGV4IDlkZWJjMWIyNmNlOS4uZTM4NGQ5OGU2NmMyIDEwMDY0 NAotLS0gYS9uZXQvY29yZS9kZXYuYworKysgYi9uZXQvY29yZS9kZXYuYwpAQCAtNzYyMyw5ICs3 NjIzLDkgQEAgc3RydWN0IHJ0bmxfbGlua19zdGF0czY0ICpkZXZfZ2V0X3N0YXRzKHN0cnVjdCBu ZXRfZGV2aWNlICpkZXYsCiAJfSBlbHNlIHsKIAkJbmV0ZGV2X3N0YXRzX3RvX3N0YXRzNjQoc3Rv cmFnZSwgJmRldi0+c3RhdHMpOwogCX0KLQlzdG9yYWdlLT5yeF9kcm9wcGVkICs9IGF0b21pY19s b25nX3JlYWQoJmRldi0+cnhfZHJvcHBlZCk7Ci0Jc3RvcmFnZS0+dHhfZHJvcHBlZCArPSBhdG9t aWNfbG9uZ19yZWFkKCZkZXYtPnR4X2Ryb3BwZWQpOwotCXN0b3JhZ2UtPnJ4X25vaGFuZGxlciAr PSBhdG9taWNfbG9uZ19yZWFkKCZkZXYtPnJ4X25vaGFuZGxlcik7CisJc3RvcmFnZS0+cnhfZHJv cHBlZCArPSAodW5zaWduZWQgbG9uZylhdG9taWNfbG9uZ19yZWFkKCZkZXYtPnJ4X2Ryb3BwZWQp OworCXN0b3JhZ2UtPnR4X2Ryb3BwZWQgKz0gKHVuc2lnbmVkIGxvbmcpYXRvbWljX2xvbmdfcmVh ZCgmZGV2LT50eF9kcm9wcGVkKTsKKwlzdG9yYWdlLT5yeF9ub2hhbmRsZXIgKz0gKHVuc2lnbmVk IGxvbmcpYXRvbWljX2xvbmdfcmVhZCgmZGV2LT5yeF9ub2hhbmRsZXIpOwogCXJldHVybiBzdG9y YWdlOwogfQogRVhQT1JUX1NZTUJPTChkZXZfZ2V0X3N0YXRzKTsKLS0gCjIuMTMuMAoKCkZyb20g ZjdjY2MzNWM5YzMwNDBmMDkyNjk3MTMzMzBjMTVhY2Y2YTE4YjVhZSBNb24gU2VwIDE3IDAwOjAw OjAwIDIwMDEKRnJvbTogSmFzb24gV2FuZyA8amFzb3dhbmdAcmVkaGF0LmNvbT4KRGF0ZTogV2Vk LCAyOCBKdW4gMjAxNyAwOTo1MTowMyArMDgwMApTdWJqZWN0OiBbUEFUQ0ggMDkvMzBdIHZpcnRp by1uZXQ6IHNlcmlhbGl6ZSB0eCByb3V0aW5lIGR1cmluZyByZXNldAoKWyBVcHN0cmVhbSBjb21t aXQgNzEzYTk4ZDkwYzVlYTA3MmMxYmIwMGVmNDA2MTdhZWUyY2VmMjIzMiBdCgpXZSBkb24ndCBo b2xkIGFueSB0eCBsb2NrIHdoZW4gdHJ5aW5nIHRvIGRpc2FibGUgVFggZHVyaW5nIHJlc2V0LCB0 aGlzCndvdWxkIGxlYWQgYSB1c2UgYWZ0ZXIgZnJlZSBzaW5jZSBuZG9fc3RhcnRfeG1pdCgpIHRy aWVzIHRvIGFjY2Vzcwp0aGUgdmlydHF1ZXVlIHdoaWNoIGhhcyBhbHJlYWR5IGJlZW4gZnJlZWQu IEZpeCB0aGlzIGJ5IHVzaW5nCm5ldGlmX3R4X2Rpc2FibGUoKSBiZWZvcmUgZnJlZWluZyB0aGUg dnFzLCB0aGlzIGNvdWxkIG1ha2Ugc3VyZSBubyB0eAphZnRlciB2cSBmcmVlaW5nLgoKUmVwb3J0 ZWQtYnk6IEplYW4tUGhpbGlwcGUgTWVuaWwgPGpwbWVuaWxAZ21haWwuY29tPgpUZXN0ZWQtYnk6 IEplYW4tUGhpbGlwcGUgTWVuaWwgPGpwbWVuaWxAZ21haWwuY29tPgpGaXhlcyBjb21taXQgZjYw MGI2OTA1MDE1ICgidmlydGlvX25ldDogQWRkIFhEUCBzdXBwb3J0IikKQ2M6IEpvaG4gRmFzdGFi ZW5kIDxqb2huLmZhc3RhYmVuZEBnbWFpbC5jb20+ClNpZ25lZC1vZmYtYnk6IEphc29uIFdhbmcg PGphc293YW5nQHJlZGhhdC5jb20+CkFja2VkLWJ5OiBNaWNoYWVsIFMuIFRzaXJraW4gPG1zdEBy ZWRoYXQuY29tPgpBY2tlZC1ieTogUm9iZXJ0IE1jQ2FiZSA8cm9iZXJ0Lm1jY2FiZUByb2Nrd2Vs bGNvbGxpbnMuY29tPgpTaWduZWQtb2ZmLWJ5OiBEYXZpZCBTLiBNaWxsZXIgPGRhdmVtQGRhdmVt bG9mdC5uZXQ+Ci0tLQogZHJpdmVycy9uZXQvdmlydGlvX25ldC5jIHwgMSArCiAxIGZpbGUgY2hh bmdlZCwgMSBpbnNlcnRpb24oKykKCmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC92aXJ0aW9fbmV0 LmMgYi9kcml2ZXJzL25ldC92aXJ0aW9fbmV0LmMKaW5kZXggZDlkOGY0ZjQzZjkwLi43ZTE3MWQ3 YWVkNjYgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvbmV0L3ZpcnRpb19uZXQuYworKysgYi9kcml2ZXJz L25ldC92aXJ0aW9fbmV0LmMKQEAgLTE3MDksNiArMTcwOSw3IEBAIHN0YXRpYyB2b2lkIHZpcnRu ZXRfZnJlZXplX2Rvd24oc3RydWN0IHZpcnRpb19kZXZpY2UgKnZkZXYpCiAJZmx1c2hfd29yaygm dmktPmNvbmZpZ193b3JrKTsKIAogCW5ldGlmX2RldmljZV9kZXRhY2godmktPmRldik7CisJbmV0 aWZfdHhfZGlzYWJsZSh2aS0+ZGV2KTsKIAljYW5jZWxfZGVsYXllZF93b3JrX3N5bmMoJnZpLT5y ZWZpbGwpOwogCiAJaWYgKG5ldGlmX3J1bm5pbmcodmktPmRldikpIHsKLS0gCjIuMTMuMAoKCkZy b20gYWRjNGUzNGY0N2ExMDA5YjY0YmUzMzY0YjVmMDE0ODZlOTE5NmI1YSBNb24gU2VwIDE3IDAw OjAwOjAwIDIwMDEKRnJvbTogR2FvIEZlbmcgPGdmcmVlLndpbmRAdmlwLjE2My5jb20+CkRhdGU6 IFdlZCwgMjggSnVuIDIwMTcgMTI6NTM6NTQgKzA4MDAKU3ViamVjdDogW1BBVENIIDEwLzMwXSBu ZXQ6IHNjaGVkOiBGaXggb25lIHBvc3NpYmxlIHBhbmljIHdoZW4gbm8gZGVzdHJveQogY2FsbGJh Y2sKClsgVXBzdHJlYW0gY29tbWl0IGMxYTQ4NzJlYmZiODNiMWFmNzE0NGY3YjI5YWM4YzRiMzQ0 YTEyYTggXQoKV2hlbiBxZGlzYyBmYWlsIHRvIGluaXQsIHFkaXNjX2NyZWF0ZSB3b3VsZCBpbnZv a2UgdGhlIGRlc3Ryb3kgY2FsbGJhY2sKdG8gY2xlYW51cC4gQnV0IHRoZXJlIGlzIG5vIGNoZWNr IGlmIHRoZSBjYWxsYmFjayBleGlzdHMgcmVhbGx5LiBTbyBpdAp3b3VsZCBjYXVzZSB0aGUgcGFu aWMgaWYgdGhlcmUgaXMgbm8gcmVhbCBkZXN0cm95IGNhbGxiYWNrIGxpa2UgdGhlIHFkaXNjCmNv ZGVsLCBmcSwgYW5kIHNvIG9uLgoKVGFrZSBjb2RlbCBhcyBhbiBleGFtcGxlIGZvbGxvd2luZzoK V2hlbiBhIG1hbGljaW91cyB1c2VyIGNvbnN0cnVjdHMgb25lIGludmFsaWQgbmV0bGluayBtc2cs IGl0IHdvdWxkIGNhdXNlCmNvZGVsX2luaXQtPmNvZGVsX2NoYW5nZS0+bmxhX3BhcnNlX25lc3Rl ZCBmYWlsZWQuClRoZW4ga2VybmVsIHdvdWxkIGludm9rZSB0aGUgZGVzdHJveSBjYWxsYmFjayBk aXJlY3RseSBidXQgcWRpc2MgY29kZWwKZG9lc24ndCBkZWZpbmUgb25lLiBJdCBjYXVzZXMgb25l IHBhbmljIGFzIGEgcmVzdWx0LgoKTm93IGFkZCBvbmUgdGhlIGNoZWNrIGZvciBkZXN0cm95IHRv IGF2b2lkIHRoZSBwb3NzaWJsZSBwYW5pYy4KCkZpeGVzOiA4N2I2MGNmYWNmOWYgKCJuZXRfc2No ZWQ6IGZpeCBlcnJvciByZWNvdmVyeSBhdCBxZGlzYyBjcmVhdGlvbiIpClNpZ25lZC1vZmYtYnk6 IEdhbyBGZW5nIDxnZnJlZS53aW5kQHZpcC4xNjMuY29tPgpBY2tlZC1ieTogRXJpYyBEdW1hemV0 IDxlZHVtYXpldEBnb29nbGUuY29tPgpTaWduZWQtb2ZmLWJ5OiBEYXZpZCBTLiBNaWxsZXIgPGRh dmVtQGRhdmVtbG9mdC5uZXQ+Ci0tLQogbmV0L3NjaGVkL3NjaF9hcGkuYyB8IDMgKystCiAxIGZp bGUgY2hhbmdlZCwgMiBpbnNlcnRpb25zKCspLCAxIGRlbGV0aW9uKC0pCgpkaWZmIC0tZ2l0IGEv bmV0L3NjaGVkL3NjaF9hcGkuYyBiL25ldC9zY2hlZC9zY2hfYXBpLmMKaW5kZXggYmNmNDljZDIy Nzg2Li42Y2ExZGI3M2QxZDEgMTAwNjQ0Ci0tLSBhL25ldC9zY2hlZC9zY2hfYXBpLmMKKysrIGIv bmV0L3NjaGVkL3NjaF9hcGkuYwpAQCAtMTAwOCw3ICsxMDA4LDggQEAgc3RhdGljIHN0cnVjdCBR ZGlzYyAqcWRpc2NfY3JlYXRlKHN0cnVjdCBuZXRfZGV2aWNlICpkZXYsCiAJCXJldHVybiBzY2g7 CiAJfQogCS8qIG9wcy0+aW5pdCgpIGZhaWxlZCwgd2UgY2FsbCAtPmRlc3Ryb3koKSBsaWtlIHFk aXNjX2NyZWF0ZV9kZmx0KCkgKi8KLQlvcHMtPmRlc3Ryb3koc2NoKTsKKwlpZiAob3BzLT5kZXN0 cm95KQorCQlvcHMtPmRlc3Ryb3koc2NoKTsKIGVycl9vdXQzOgogCWRldl9wdXQoZGV2KTsKIAlr ZnJlZSgoY2hhciAqKSBzY2ggLSBzY2gtPnBhZGRlZCk7Ci0tIAoyLjEzLjAKCgpGcm9tIDNmMzE2 ODlhNjcxNmI2MTI2ZDEwYmZjZTk2MGRjNjUyZTg2ZTVkMDkgTW9uIFNlcCAxNyAwMDowMDowMCAy MDAxCkZyb206IElkbyBTY2hpbW1lbCA8aWRvc2NoQG1lbGxhbm94LmNvbT4KRGF0ZTogV2VkLCAy OCBKdW4gMjAxNyAwOTowMzoxMiArMDMwMApTdWJqZWN0OiBbUEFUQ0ggMTEvMzBdIG1seHN3OiBz cGVjdHJ1bV9yb3V0ZXI6IEZpeCBOVUxMIHBvaW50ZXIgZGVyZWZlcmVuY2UKClsgVXBzdHJlYW0g Y29tbWl0IDZiMjdjOGFkZjI3ZWRmMWRhYmUyY2RjZmFhMTAxZWY3ZTI3MTI0MTUgXQoKSW4gY2Fz ZSBhIFZMQU4gZGV2aWNlIGlzIGVuc2xhdmVkIHRvIGEgYnJpZGdlIHdlIHNob3VsZG4ndCBjcmVh dGUgYQpyb3V0ZXIgaW50ZXJmYWNlIChSSUYpIGZvciBpdCB3aGVuIGl0J3MgY29uZmlndXJlZCB3 aXRoIGFuIElQIGFkZHJlc3MuClRoaXMgaXMgYWxyZWFkeSBoYW5kbGVkIGJ5IHRoZSBkcml2ZXIg Zm9yIG90aGVyIHR5cGVzIG9mIG5ldGRldnMsIHN1Y2gKYXMgcGh5c2ljYWwgcG9ydHMgYW5kIExB RyBkZXZpY2VzLgoKSWYgdGhpcyBJUCBhZGRyZXNzIGlzIHRoZW4gcmVtb3ZlZCBhbmQgdGhlIGlu dGVyZmFjZSBpcyBzdWJzZXF1ZW50bHkKdW5saW5rZWQgZnJvbSB0aGUgYnJpZGdlLCBhIE5VTEwg cG9pbnRlciBkZXJlZmVyZW5jZSBjYW4gaGFwcGVuLCBhcyB0aGUKb3JpZ2luYWwgODAyLjFkIEZJ RCB3YXMgcmVwbGFjZWQgd2l0aCBhbiByRklEIHdoaWNoIHdhcyB0aGVuIGRlbGV0ZWQuCgpUbyBy ZXByb2R1Y2U6CiQgaXAgbGluayBzZXQgZGV2IGVucDNzMG5wOSB1cAokIGlwIGxpbmsgYWRkIG5h bWUgZW5wM3MwbnA5LjExMSBsaW5rIGVucDNzMG5wOSB0eXBlIHZsYW4gaWQgMTExCiQgaXAgbGlu ayBzZXQgZGV2IGVucDNzMG5wOS4xMTEgdXAKJCBpcCBsaW5rIGFkZCBuYW1lIGJyMCB0eXBlIGJy aWRnZQokIGlwIGxpbmsgc2V0IGRldiBicjAgdXAKJCBpcCBsaW5rIHNldCBlbnAzczBucDkuMTEx IG1hc3RlciBicjAKJCBpcCBhZGRyZXNzIGFkZCBkZXYgZW5wM3MwbnA5LjExMSAxOTIuMTY4LjAu MS8yNAokIGlwIGFkZHJlc3MgZGVsIGRldiBlbnAzczBucDkuMTExIDE5Mi4xNjguMC4xLzI0CiQg aXAgbGluayBzZXQgZGV2IGVucDNzMG5wOS4xMTEgbm9tYXN0ZXIKCkZpeGVzOiA5OTcyNGMxOGZj NjYgKCJtbHhzdzogc3BlY3RydW06IEludHJvZHVjZSBzdXBwb3J0IGZvciByb3V0ZXIgaW50ZXJm YWNlcyIpClNpZ25lZC1vZmYtYnk6IElkbyBTY2hpbW1lbCA8aWRvc2NoQG1lbGxhbm94LmNvbT4K UmVwb3J0ZWQtYnk6IFBldHIgTWFjaGF0YSA8cGV0cm1AbWVsbGFub3guY29tPgpUZXN0ZWQtYnk6 IFBldHIgTWFjaGF0YSA8cGV0cm1AbWVsbGFub3guY29tPgpSZXZpZXdlZC1ieTogUGV0ciBNYWNo YXRhIDxwZXRybUBtZWxsYW5veC5jb20+ClNpZ25lZC1vZmYtYnk6IERhdmlkIFMuIE1pbGxlciA8 ZGF2ZW1AZGF2ZW1sb2Z0Lm5ldD4KLS0tCiBkcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9t bHhzdy9zcGVjdHJ1bS5jIHwgMyArKysKIDEgZmlsZSBjaGFuZ2VkLCAzIGluc2VydGlvbnMoKykK CmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHhzdy9zcGVjdHJ1 bS5jIGIvZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4c3cvc3BlY3RydW0uYwppbmRl eCAxNjQ4NGYyNGI3ZGIuLjU5OTVjYTFhNDNmOSAxMDA2NDQKLS0tIGEvZHJpdmVycy9uZXQvZXRo ZXJuZXQvbWVsbGFub3gvbWx4c3cvc3BlY3RydW0uYworKysgYi9kcml2ZXJzL25ldC9ldGhlcm5l dC9tZWxsYW5veC9tbHhzdy9zcGVjdHJ1bS5jCkBAIC0zODI5LDYgKzM4MjksOSBAQCBzdGF0aWMg aW50IG1seHN3X3NwX2luZXRhZGRyX3ZsYW5fZXZlbnQoc3RydWN0IG5ldF9kZXZpY2UgKnZsYW5f ZGV2LAogCXN0cnVjdCBtbHhzd19zcCAqbWx4c3dfc3AgPSBtbHhzd19zcF9sb3dlcl9nZXQodmxh bl9kZXYpOwogCXUxNiB2aWQgPSB2bGFuX2Rldl92bGFuX2lkKHZsYW5fZGV2KTsKIAorCWlmIChu ZXRpZl9pc19icmlkZ2VfcG9ydCh2bGFuX2RldikpCisJCXJldHVybiAwOworCiAJaWYgKG1seHN3 X3NwX3BvcnRfZGV2X2NoZWNrKHJlYWxfZGV2KSkKIAkJcmV0dXJuIG1seHN3X3NwX2luZXRhZGRy X3Zwb3J0X2V2ZW50KHZsYW5fZGV2LCByZWFsX2RldiwgZXZlbnQsCiAJCQkJCQkgICAgIHZpZCk7 Ci0tIAoyLjEzLjAKCgpGcm9tIGFlNzQ0ZDgwOGY0ZDQ3ZTVhYTlhNzdmMjg0NWU4NGVlZGQxN2Uz NTcgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCkZyb206IERhbiBDYXJwZW50ZXIgPGRhbi5jYXJw ZW50ZXJAb3JhY2xlLmNvbT4KRGF0ZTogV2VkLCAyOCBKdW4gMjAxNyAxNDo0NDoyMSArMDMwMApT dWJqZWN0OiBbUEFUQ0ggMTIvMzBdIHJvY2tlcjogbW92ZSBkZXJlZmVyZW5jZSBiZWZvcmUgZnJl ZQoKWyBVcHN0cmVhbSBjb21taXQgYWNiNGI3ZGY0OGI1MzljYjM5MTI4NzkyMWRlNTdlNGU1ZmFl MzQ2MCBdCgpNeSBzdGF0aWMgY2hlY2tlciBjb21wbGFpbnMgdGhhdCBvZmRwYV9uZWlnaF9kZWwo KSBjYW4gc29tZXRpbWVzIGZyZWUKImZvdW5kIi4gICBJdCBqdXN0IG1ha2VzIHNlbnNlIHRvIHVz ZSBpdCBmaXJzdCBiZWZvcmUgZGVsZXRpbmcgaXQuCgpGaXhlczogZWNmMjQ0Zjc1M2UwICgicm9j a2VyOiBmaXggbWF5YmUtdW5pbml0aWFsaXplZCB3YXJuaW5nIikKU2lnbmVkLW9mZi1ieTogRGFu IENhcnBlbnRlciA8ZGFuLmNhcnBlbnRlckBvcmFjbGUuY29tPgpTaWduZWQtb2ZmLWJ5OiBEYXZp ZCBTLiBNaWxsZXIgPGRhdmVtQGRhdmVtbG9mdC5uZXQ+Ci0tLQogZHJpdmVycy9uZXQvZXRoZXJu ZXQvcm9ja2VyL3JvY2tlcl9vZmRwYS5jIHwgMiArLQogMSBmaWxlIGNoYW5nZWQsIDEgaW5zZXJ0 aW9uKCspLCAxIGRlbGV0aW9uKC0pCgpkaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvZXRoZXJuZXQv cm9ja2VyL3JvY2tlcl9vZmRwYS5jIGIvZHJpdmVycy9uZXQvZXRoZXJuZXQvcm9ja2VyL3JvY2tl cl9vZmRwYS5jCmluZGV4IDJhZTg1MjQ1NDc4MC4uYTljZTgyZDNlOWNmIDEwMDY0NAotLS0gYS9k cml2ZXJzL25ldC9ldGhlcm5ldC9yb2NrZXIvcm9ja2VyX29mZHBhLmMKKysrIGIvZHJpdmVycy9u ZXQvZXRoZXJuZXQvcm9ja2VyL3JvY2tlcl9vZmRwYS5jCkBAIC0xNTA1LDggKzE1MDUsOCBAQCBz dGF0aWMgaW50IG9mZHBhX3BvcnRfaXB2NF9uaChzdHJ1Y3Qgb2ZkcGFfcG9ydCAqb2ZkcGFfcG9y dCwKIAkJKmluZGV4ID0gZW50cnktPmluZGV4OwogCQlyZXNvbHZlZCA9IGZhbHNlOwogCX0gZWxz ZSBpZiAocmVtb3ZpbmcpIHsKLQkJb2ZkcGFfbmVpZ2hfZGVsKHRyYW5zLCBmb3VuZCk7CiAJCSpp bmRleCA9IGZvdW5kLT5pbmRleDsKKwkJb2ZkcGFfbmVpZ2hfZGVsKHRyYW5zLCBmb3VuZCk7CiAJ fSBlbHNlIGlmICh1cGRhdGluZykgewogCQlvZmRwYV9uZWlnaF91cGRhdGUoZm91bmQsIHRyYW5z LCBOVUxMLCBmYWxzZSk7CiAJCXJlc29sdmVkID0gIWlzX3plcm9fZXRoZXJfYWRkcihmb3VuZC0+ ZXRoX2RzdCk7Ci0tIAoyLjEzLjAKCgpGcm9tIGQzYzg3NDNhMjFiYThmNDY0YmQxZWIzZmY0NzZm MmI5OGRkYzdkYmYgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCkZyb206IERhbmllbCBCb3JrbWFu biA8ZGFuaWVsQGlvZ2VhcmJveC5uZXQ+CkRhdGU6IFRodSwgMjkgSnVuIDIwMTcgMDM6MDQ6NTkg KzAyMDAKU3ViamVjdDogW1BBVENIIDEzLzMwXSBicGY6IHByZXZlbnQgbGVha2luZyBwb2ludGVy IHZpYSB4YWRkIG9uIHVucHJpdmlsZWRnZWQKClsgVXBzdHJlYW0gY29tbWl0IDZiZGY2YWJjNTZi NTMxMDMzMjRkZmQyNzBhODY1ODAzMDZlMWEyMzIgXQoKTGVha2luZyBrZXJuZWwgYWRkcmVzc2Vz IG9uIHVucHJpdmlsZWRnZWQgaXMgZ2VuZXJhbGx5IGRpc2FsbG93ZWQsCmZvciBleGFtcGxlLCB2 ZXJpZmllciByZWplY3RzIHRoZSBmb2xsb3dpbmc6CgogIDA6IChiNykgcjAgPSAwCiAgMTogKDE4 KSByMiA9IDB4ZmZmZjg5N2U4MjMwNDQwMAogIDM6ICg3YikgKih1NjQgKikocjEgKzQ4KSA9IHIy CiAgUjIgbGVha3MgYWRkciBpbnRvIGN0eAoKRG9pbmcgcG9pbnRlciBhcml0aG1ldGljIG9uIHRo ZW0gaXMgYWxzbyBmb3JiaWRkZW4sIHNvIHRoYXQgdGhleQpkb24ndCB0dXJuIGludG8gdW5rbm93 biB2YWx1ZSBhbmQgdGhlbiBnZXQgbGVha2VkIG91dC4gSG93ZXZlciwKdGhlcmUncyB4YWRkIGFz IGEgc3BlY2lhbCBjYXNlLCB3aGVyZSB3ZSBkb24ndCBjaGVjayB0aGUgc3JjIHJlZwpmb3IgYmVp bmcgYSBwb2ludGVyIHJlZ2lzdGVyLCBlLmcuIHRoZSBmb2xsb3dpbmcgd2lsbCBwYXNzOgoKICAw OiAoYjcpIHIwID0gMAogIDE6ICg3YikgKih1NjQgKikocjEgKzQ4KSA9IHIwCiAgMjogKDE4KSBy MiA9IDB4ZmZmZjg5N2U4MjMwNDQwMCA7IG1hcAogIDQ6IChkYikgbG9jayAqKHU2NCAqKShyMSAr NDgpICs9IHIyCiAgNTogKDk1KSBleGl0CgpXZSBjb3VsZCBzdG9yZSB0aGUgcG9pbnRlciBpbnRv IHNrYi0+Y2IsIGxvb3NlIHRoZSB0eXBlIGNvbnRleHQsCmFuZCB0aGVuIHJlYWQgaXQgb3V0IGZy b20gdGhlcmUgYWdhaW4gdG8gbGVhayBpdCBldmVudHVhbGx5IG91dApvZiBhIG1hcCB2YWx1ZS4g T3IgbW9yZSBlYXNpbHkgaW4gYSBkaWZmZXJlbnQgdmFyaWFudCwgdG9vOgoKICAgMDogKGJmKSBy NiA9IHIxCiAgIDE6ICg3YSkgKih1NjQgKikocjEwIC04KSA9IDAKICAgMjogKGJmKSByMiA9IHIx MAogICAzOiAoMDcpIHIyICs9IC04CiAgIDQ6ICgxOCkgcjEgPSAweDAKICAgNjogKDg1KSBjYWxs IGJwZl9tYXBfbG9va3VwX2VsZW0jMQogICA3OiAoMTUpIGlmIHIwID09IDB4MCBnb3RvIHBjKzMK ICAgUjA9bWFwX3ZhbHVlKGtzPTgsdnM9OCxpZD0wKSxtaW5fdmFsdWU9MCxtYXhfdmFsdWU9MCBS Nj1jdHggUjEwPWZwCiAgIDg6IChiNykgcjMgPSAwCiAgIDk6ICg3YikgKih1NjQgKikocjAgKzAp ID0gcjMKICAxMDogKGRiKSBsb2NrICoodTY0ICopKHIwICswKSArPSByNgogIDExOiAoYjcpIHIw ID0gMAogIDEyOiAoOTUpIGV4aXQKCiAgZnJvbSA3IHRvIDExOiBSMD1pbnYsbWluX3ZhbHVlPTAs bWF4X3ZhbHVlPTAgUjY9Y3R4IFIxMD1mcAogIDExOiAoYjcpIHIwID0gMAogIDEyOiAoOTUpIGV4 aXQKClByZXZlbnQgdGhpcyBieSBjaGVja2luZyB4YWRkIHNyYyByZWcgZm9yIHBvaW50ZXIgdHlw ZXMuIEFsc28KYWRkIGEgY291cGxlIG9mIHRlc3QgY2FzZXMgcmVsYXRlZCB0byB0aGlzLgoKRml4 ZXM6IDFiZTdmNzVkMTY2OCAoImJwZjogZW5hYmxlIG5vbi1yb290IGVCUEYgcHJvZ3JhbXMiKQpG aXhlczogMTdhNTI2NzA2N2YzICgiYnBmOiB2ZXJpZmllciAoYWRkIHZlcmlmaWVyIGNvcmUpIikK U2lnbmVkLW9mZi1ieTogRGFuaWVsIEJvcmttYW5uIDxkYW5pZWxAaW9nZWFyYm94Lm5ldD4KQWNr ZWQtYnk6IEFsZXhlaSBTdGFyb3ZvaXRvdiA8YXN0QGtlcm5lbC5vcmc+CkFja2VkLWJ5OiBNYXJ0 aW4gS2FGYWkgTGF1IDxrYWZhaUBmYi5jb20+CkFja2VkLWJ5OiBFZHdhcmQgQ3JlZSA8ZWNyZWVA c29sYXJmbGFyZS5jb20+ClNpZ25lZC1vZmYtYnk6IERhdmlkIFMuIE1pbGxlciA8ZGF2ZW1AZGF2 ZW1sb2Z0Lm5ldD4KLS0tCiBrZXJuZWwvYnBmL3ZlcmlmaWVyLmMgICAgICAgICAgICAgICAgICAg ICAgIHwgIDUgKysrCiB0b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9icGYvdGVzdF92ZXJpZmllci5j IHwgNjYgKysrKysrKysrKysrKysrKysrKysrKysrKysrKysKIDIgZmlsZXMgY2hhbmdlZCwgNzEg aW5zZXJ0aW9ucygrKQoKZGlmZiAtLWdpdCBhL2tlcm5lbC9icGYvdmVyaWZpZXIuYyBiL2tlcm5l bC9icGYvdmVyaWZpZXIuYwppbmRleCA5MDRkZWNkMzI3ODMuLjdhNjQ2MmI3ZjcyYSAxMDA2NDQK LS0tIGEva2VybmVsL2JwZi92ZXJpZmllci5jCisrKyBiL2tlcm5lbC9icGYvdmVyaWZpZXIuYwpA QCAtOTUxLDYgKzk1MSwxMSBAQCBzdGF0aWMgaW50IGNoZWNrX3hhZGQoc3RydWN0IGJwZl92ZXJp Zmllcl9lbnYgKmVudiwgc3RydWN0IGJwZl9pbnNuICppbnNuKQogCWlmIChlcnIpCiAJCXJldHVy biBlcnI7CiAKKwlpZiAoaXNfcG9pbnRlcl92YWx1ZShlbnYsIGluc24tPnNyY19yZWcpKSB7CisJ CXZlcmJvc2UoIlIlZCBsZWFrcyBhZGRyIGludG8gbWVtXG4iLCBpbnNuLT5zcmNfcmVnKTsKKwkJ cmV0dXJuIC1FQUNDRVM7CisJfQorCiAJLyogY2hlY2sgd2hldGhlciBhdG9taWNfYWRkIGNhbiBy ZWFkIHRoZSBtZW1vcnkgKi8KIAllcnIgPSBjaGVja19tZW1fYWNjZXNzKGVudiwgaW5zbi0+ZHN0 X3JlZywgaW5zbi0+b2ZmLAogCQkJICAgICAgIEJQRl9TSVpFKGluc24tPmNvZGUpLCBCUEZfUkVB RCwgLTEpOwpkaWZmIC0tZ2l0IGEvdG9vbHMvdGVzdGluZy9zZWxmdGVzdHMvYnBmL3Rlc3RfdmVy aWZpZXIuYyBiL3Rvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL2JwZi90ZXN0X3ZlcmlmaWVyLmMKaW5k ZXggOGI0MzNiZjNmZGQ3Li41MjM4ZDBhMTM5OGMgMTAwNjQ0Ci0tLSBhL3Rvb2xzL3Rlc3Rpbmcv c2VsZnRlc3RzL2JwZi90ZXN0X3ZlcmlmaWVyLmMKKysrIGIvdG9vbHMvdGVzdGluZy9zZWxmdGVz dHMvYnBmL3Rlc3RfdmVyaWZpZXIuYwpAQCAtMzUxOCw2ICszNTE4LDcyIEBAIHN0YXRpYyBzdHJ1 Y3QgYnBmX3Rlc3QgdGVzdHNbXSA9IHsKIAkJLmVycnN0ciA9ICJpbnZhbGlkIGJwZl9jb250ZXh0 IGFjY2VzcyIsCiAJfSwKIAl7CisJCSJsZWFrIHBvaW50ZXIgaW50byBjdHggMSIsCisJCS5pbnNu cyA9IHsKKwkJCUJQRl9NT1Y2NF9JTU0oQlBGX1JFR18wLCAwKSwKKwkJCUJQRl9TVFhfTUVNKEJQ Rl9EVywgQlBGX1JFR18xLCBCUEZfUkVHXzAsCisJCQkJICAgIG9mZnNldG9mKHN0cnVjdCBfX3Nr X2J1ZmYsIGNiWzBdKSksCisJCQlCUEZfTERfTUFQX0ZEKEJQRl9SRUdfMiwgMCksCisJCQlCUEZf U1RYX1hBREQoQlBGX0RXLCBCUEZfUkVHXzEsIEJQRl9SRUdfMiwKKwkJCQkgICAgICBvZmZzZXRv ZihzdHJ1Y3QgX19za19idWZmLCBjYlswXSkpLAorCQkJQlBGX0VYSVRfSU5TTigpLAorCQl9LAor CQkuZml4dXBfbWFwMSA9IHsgMiB9LAorCQkuZXJyc3RyX3VucHJpdiA9ICJSMiBsZWFrcyBhZGRy IGludG8gbWVtIiwKKwkJLnJlc3VsdF91bnByaXYgPSBSRUpFQ1QsCisJCS5yZXN1bHQgPSBBQ0NF UFQsCisJfSwKKwl7CisJCSJsZWFrIHBvaW50ZXIgaW50byBjdHggMiIsCisJCS5pbnNucyA9IHsK KwkJCUJQRl9NT1Y2NF9JTU0oQlBGX1JFR18wLCAwKSwKKwkJCUJQRl9TVFhfTUVNKEJQRl9EVywg QlBGX1JFR18xLCBCUEZfUkVHXzAsCisJCQkJICAgIG9mZnNldG9mKHN0cnVjdCBfX3NrX2J1ZmYs IGNiWzBdKSksCisJCQlCUEZfU1RYX1hBREQoQlBGX0RXLCBCUEZfUkVHXzEsIEJQRl9SRUdfMTAs CisJCQkJICAgICAgb2Zmc2V0b2Yoc3RydWN0IF9fc2tfYnVmZiwgY2JbMF0pKSwKKwkJCUJQRl9F WElUX0lOU04oKSwKKwkJfSwKKwkJLmVycnN0cl91bnByaXYgPSAiUjEwIGxlYWtzIGFkZHIgaW50 byBtZW0iLAorCQkucmVzdWx0X3VucHJpdiA9IFJFSkVDVCwKKwkJLnJlc3VsdCA9IEFDQ0VQVCwK Kwl9LAorCXsKKwkJImxlYWsgcG9pbnRlciBpbnRvIGN0eCAzIiwKKwkJLmluc25zID0geworCQkJ QlBGX01PVjY0X0lNTShCUEZfUkVHXzAsIDApLAorCQkJQlBGX0xEX01BUF9GRChCUEZfUkVHXzIs IDApLAorCQkJQlBGX1NUWF9NRU0oQlBGX0RXLCBCUEZfUkVHXzEsIEJQRl9SRUdfMiwKKwkJCQkg ICAgICBvZmZzZXRvZihzdHJ1Y3QgX19za19idWZmLCBjYlswXSkpLAorCQkJQlBGX0VYSVRfSU5T TigpLAorCQl9LAorCQkuZml4dXBfbWFwMSA9IHsgMSB9LAorCQkuZXJyc3RyX3VucHJpdiA9ICJS MiBsZWFrcyBhZGRyIGludG8gY3R4IiwKKwkJLnJlc3VsdF91bnByaXYgPSBSRUpFQ1QsCisJCS5y ZXN1bHQgPSBBQ0NFUFQsCisJfSwKKwl7CisJCSJsZWFrIHBvaW50ZXIgaW50byBtYXAgdmFsIiwK KwkJLmluc25zID0geworCQkJQlBGX01PVjY0X1JFRyhCUEZfUkVHXzYsIEJQRl9SRUdfMSksCisJ CQlCUEZfU1RfTUVNKEJQRl9EVywgQlBGX1JFR18xMCwgLTgsIDApLAorCQkJQlBGX01PVjY0X1JF RyhCUEZfUkVHXzIsIEJQRl9SRUdfMTApLAorCQkJQlBGX0FMVTY0X0lNTShCUEZfQURELCBCUEZf UkVHXzIsIC04KSwKKwkJCUJQRl9MRF9NQVBfRkQoQlBGX1JFR18xLCAwKSwKKwkJCUJQRl9SQVdf SU5TTihCUEZfSk1QIHwgQlBGX0NBTEwsIDAsIDAsIDAsCisJCQkJICAgICBCUEZfRlVOQ19tYXBf bG9va3VwX2VsZW0pLAorCQkJQlBGX0pNUF9JTU0oQlBGX0pFUSwgQlBGX1JFR18wLCAwLCAzKSwK KwkJCUJQRl9NT1Y2NF9JTU0oQlBGX1JFR18zLCAwKSwKKwkJCUJQRl9TVFhfTUVNKEJQRl9EVywg QlBGX1JFR18wLCBCUEZfUkVHXzMsIDApLAorCQkJQlBGX1NUWF9YQUREKEJQRl9EVywgQlBGX1JF R18wLCBCUEZfUkVHXzYsIDApLAorCQkJQlBGX01PVjY0X0lNTShCUEZfUkVHXzAsIDApLAorCQkJ QlBGX0VYSVRfSU5TTigpLAorCQl9LAorCQkuZml4dXBfbWFwMSA9IHsgNCB9LAorCQkuZXJyc3Ry X3VucHJpdiA9ICJSNiBsZWFrcyBhZGRyIGludG8gbWVtIiwKKwkJLnJlc3VsdF91bnByaXYgPSBS RUpFQ1QsCisJCS5yZXN1bHQgPSBBQ0NFUFQsCisJfSwKKwl7CiAJCSJoZWxwZXIgYWNjZXNzIHRv IG1hcDogZnVsbCByYW5nZSIsCiAJCS5pbnNucyA9IHsKIAkJCUJQRl9NT1Y2NF9SRUcoQlBGX1JF R18yLCBCUEZfUkVHXzEwKSwKLS0gCjIuMTMuMAoKCkZyb20gMmNjMDg0NTk3YjFlZGIzZjRiMWY1 OTU3YTE4YTlkMDdkZTI0MmEzMiBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJvbTogPT9VVEYt OD9xP01pY2hhbD0yMEt1YmU9QzQ9OERlaz89IDxta3ViZWNla0BzdXNlLmN6PgpEYXRlOiBUaHUs IDI5IEp1biAyMDE3IDExOjEzOjM2ICswMjAwClN1YmplY3Q6IFtQQVRDSCAxNC8zMF0gbmV0OiBo YW5kbGUgTkFQSV9HUk9fRlJFRV9TVE9MRU5fSEVBRCBjYXNlIGFsc28gaW4KIG5hcGlfZnJhZ3Nf ZmluaXNoKCkKClsgVXBzdHJlYW0gY29tbWl0IGU0NDY5OWQyYzI4MDY3ZjY5Njk4Y2NiNjhkZDNk ZGVhY2ZlYmM0MzQgXQoKUmVjZW50bHkgSSBzdGFydGVkIHNlZWluZyB3YXJuaW5ncyBhYm91dCBw YWdlcyB3aXRoIHJlZmNvdW50IC0xLiBUaGUKcHJvYmxlbSB3YXMgdHJhY2VkIHRvIHBhY2tldHMg YmVpbmcgcmV1c2VkIGFmdGVyIHRoZWlyIGhlYWQgd2FzIG1lcmdlZCBpbnRvCmEgR1JPIHBhY2tl dCBieSBza2JfZ3JvX3JlY2VpdmUoKS4gV2hpbGUgYmlzZWN0aW5nIHRoZSBpc3N1ZSBwb2ludGVk IHRvCmNvbW1pdCBjMjFiNDhjYzFiYmYgKCJuZXQ6IGFkanVzdCBza2ItPnRydWVzaXplIGluIF9f X3Bza2JfdHJpbSgpIikgYW5kCkkgaGF2ZSBuZXZlciBzZWVuIGl0IG9uIGEga2VybmVsIHdpdGgg aXQgcmV2ZXJ0ZWQsIEkgYmVsaWV2ZSB0aGUgcmVhbApwcm9ibGVtIGFwcGVhcmVkIGVhcmxpZXIg d2hlbiB0aGUgb3B0aW9uIHRvIG1lcmdlIGhlYWQgZnJhZyBpbiBHUk8gd2FzCmltcGxlbWVudGVk LgoKSGFuZGxpbmcgTkFQSV9HUk9fRlJFRV9TVE9MRU5fSEVBRCBzdGF0ZSB3YXMgb25seSBhZGRl ZCB0byBHUk9fTUVSR0VEX0ZSRUUKYnJhbmNoIG9mIG5hcGlfc2tiX2ZpbmlzaCgpIHNvIHRoYXQg aWYgdGhlIGRyaXZlciB1c2VzIG5hcGlfZ3JvX2ZyYWdzKCkKYW5kIGhlYWQgaXMgbWVyZ2VkICh3 aGljaCBpbiBteSBjYXNlIGhhcHBlbnMgYWZ0ZXIgdGhlIHNrYl9jb25kZW5zZSgpCmNhbGwgYWRk ZWQgYnkgdGhlIGNvbW1pdCBtZW50aW9uZWQgYWJvdmUpLCB0aGUgc2tiIGlzIHJldXNlZCBpbmNs dWRpbmcgdGhlCmhlYWQgdGhhdCBoYXMgYmVlbiBtZXJnZWQuIEFzIGEgcmVzdWx0LCB3ZSByZWxl YXNlIHRoZSBwYWdlIHJlZmVyZW5jZQp0d2ljZSBhbmQgZXZlbnR1YWxseSBlbmQgdXAgd2l0aCBu ZWdhdGl2ZSBwYWdlIHJlZmNvdW50LgoKVG8gZml4IHRoZSBwcm9ibGVtLCBoYW5kbGUgTkFQSV9H Uk9fRlJFRV9TVE9MRU5fSEVBRCBpbiBuYXBpX2ZyYWdzX2ZpbmlzaCgpCnRoZSBzYW1lIHdheSBp dCdzIGRvbmUgaW4gbmFwaV9za2JfZmluaXNoKCkuCgpGaXhlczogZDdlODg4M2NmY2Y0ICgibmV0 OiBtYWtlIEdSTyBhd2FyZSBvZiBza2ItPmhlYWRfZnJhZyIpClNpZ25lZC1vZmYtYnk6IE1pY2hh bCBLdWJlY2VrIDxta3ViZWNla0BzdXNlLmN6PgpTaWduZWQtb2ZmLWJ5OiBEYXZpZCBTLiBNaWxs ZXIgPGRhdmVtQGRhdmVtbG9mdC5uZXQ+Ci0tLQogbmV0L2NvcmUvZGV2LmMgfCAyNCArKysrKysr KysrKysrKysrKy0tLS0tLS0KIDEgZmlsZSBjaGFuZ2VkLCAxNyBpbnNlcnRpb25zKCspLCA3IGRl bGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL25ldC9jb3JlL2Rldi5jIGIvbmV0L2NvcmUvZGV2LmMK aW5kZXggZTM4NGQ5OGU2NmMyLi4xZjY2NGU1NDA5NmMgMTAwNjQ0Ci0tLSBhL25ldC9jb3JlL2Rl di5jCisrKyBiL25ldC9jb3JlL2Rldi5jCkBAIC00NjI3LDYgKzQ2MjcsMTMgQEAgc3RydWN0IHBh Y2tldF9vZmZsb2FkICpncm9fZmluZF9jb21wbGV0ZV9ieV90eXBlKF9fYmUxNiB0eXBlKQogfQog RVhQT1JUX1NZTUJPTChncm9fZmluZF9jb21wbGV0ZV9ieV90eXBlKTsKIAorc3RhdGljIHZvaWQg bmFwaV9za2JfZnJlZV9zdG9sZW5faGVhZChzdHJ1Y3Qgc2tfYnVmZiAqc2tiKQoreworCXNrYl9k c3RfZHJvcChza2IpOworCXNlY3BhdGhfcmVzZXQoc2tiKTsKKwlrbWVtX2NhY2hlX2ZyZWUoc2ti dWZmX2hlYWRfY2FjaGUsIHNrYik7Cit9CisKIHN0YXRpYyBncm9fcmVzdWx0X3QgbmFwaV9za2Jf ZmluaXNoKGdyb19yZXN1bHRfdCByZXQsIHN0cnVjdCBza19idWZmICpza2IpCiB7CiAJc3dpdGNo IChyZXQpIHsKQEAgLTQ2NDAsMTMgKzQ2NDcsMTAgQEAgc3RhdGljIGdyb19yZXN1bHRfdCBuYXBp X3NrYl9maW5pc2goZ3JvX3Jlc3VsdF90IHJldCwgc3RydWN0IHNrX2J1ZmYgKnNrYikKIAkJYnJl YWs7CiAKIAljYXNlIEdST19NRVJHRURfRlJFRToKLQkJaWYgKE5BUElfR1JPX0NCKHNrYiktPmZy ZWUgPT0gTkFQSV9HUk9fRlJFRV9TVE9MRU5fSEVBRCkgewotCQkJc2tiX2RzdF9kcm9wKHNrYik7 Ci0JCQlzZWNwYXRoX3Jlc2V0KHNrYik7Ci0JCQlrbWVtX2NhY2hlX2ZyZWUoc2tidWZmX2hlYWRf Y2FjaGUsIHNrYik7Ci0JCX0gZWxzZSB7CisJCWlmIChOQVBJX0dST19DQihza2IpLT5mcmVlID09 IE5BUElfR1JPX0ZSRUVfU1RPTEVOX0hFQUQpCisJCQluYXBpX3NrYl9mcmVlX3N0b2xlbl9oZWFk KHNrYik7CisJCWVsc2UKIAkJCV9fa2ZyZWVfc2tiKHNrYik7Ci0JCX0KIAkJYnJlYWs7CiAKIAlj YXNlIEdST19IRUxEOgpAQCAtNDcxOCwxMCArNDcyMiwxNiBAQCBzdGF0aWMgZ3JvX3Jlc3VsdF90 IG5hcGlfZnJhZ3NfZmluaXNoKHN0cnVjdCBuYXBpX3N0cnVjdCAqbmFwaSwKIAkJYnJlYWs7CiAK IAljYXNlIEdST19EUk9QOgotCWNhc2UgR1JPX01FUkdFRF9GUkVFOgogCQluYXBpX3JldXNlX3Nr YihuYXBpLCBza2IpOwogCQlicmVhazsKIAorCWNhc2UgR1JPX01FUkdFRF9GUkVFOgorCQlpZiAo TkFQSV9HUk9fQ0Ioc2tiKS0+ZnJlZSA9PSBOQVBJX0dST19GUkVFX1NUT0xFTl9IRUFEKQorCQkJ bmFwaV9za2JfZnJlZV9zdG9sZW5faGVhZChza2IpOworCQllbHNlCisJCQluYXBpX3JldXNlX3Nr YihuYXBpLCBza2IpOworCQlicmVhazsKKwogCWNhc2UgR1JPX01FUkdFRDoKIAljYXNlIEdST19D T05TVU1FRDoKIAkJYnJlYWs7Ci0tIAoyLjEzLjAKCgpGcm9tIGMxZGFmNTNiNGQ3NTJiNWIwNGNh ZDIyMzU4NWRjZTMxODNiNDY4NDMgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCkZyb206IE1vaGFt YWQgSGFqIFlhaGlhIDxtb2hhbWFkQG1lbGxhbm94LmNvbT4KRGF0ZTogVGh1LCAzMCBNYXIgMjAx NyAxNzowOTowMCArMDMwMApTdWJqZWN0OiBbUEFUQ0ggMTUvMzBdIG5ldC9tbHg1OiBDYW5jZWwg ZGVsYXllZCByZWNvdmVyeSB3b3JrIHdoZW4gdW5sb2FkaW5nCiB0aGUgZHJpdmVyCgpbIFVwc3Ry ZWFtIGNvbW1pdCAyYTAxNjVhMDM0YWMwMjRiNjBjY2E0OWM2MWU0NmY0YWZhMmU0ZDk4IF0KCkRy YWluaW5nIHRoZSBoZWFsdGggd29ya3F1ZXVlIHdpbGwgaWdub3JlIGZ1dHVyZSBoZWFsdGggd29y a3MgaW5jbHVkaW5nCnRoZSBvbmUgdGhhdCByZXBvcnQgaGFyZHdhcmUgZmFpbHVyZSBhbmQgdGh1 cyB3ZSBjYW4ndCBlbnRlciBlcnJvciBzdGF0ZQpJbnN0ZWFkIGNhbmNlbCB0aGUgcmVjb3Zlcnkg ZmxvdyBhbmQgbWFrZSBzdXJlIG9ubHkgcmVjb3ZlcnkgZmxvdyB3b24ndApiZSBzY2hlZHVsZWQu CgpGaXhlczogNWU0NGZjYTUwNDcwICgnbmV0L21seDU6IE9ubHkgY2FuY2VsIHJlY292ZXJ5IHdv cmsgd2hlbiBjbGVhbmluZyB1cCBkZXZpY2UnKQpTaWduZWQtb2ZmLWJ5OiBNb2hhbWFkIEhhaiBZ YWhpYSA8bW9oYW1hZEBtZWxsYW5veC5jb20+ClNpZ25lZC1vZmYtYnk6IE1vc2hlIFNoZW1lc2gg PG1vc2hlQG1lbGxhbm94LmNvbT4KU2lnbmVkLW9mZi1ieTogU2FlZWQgTWFoYW1lZWQgPHNhZWVk bUBtZWxsYW5veC5jb20+Ci0tLQogZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9j b3JlL2hlYWx0aC5jIHwgMTUgKysrKysrKysrKysrKystCiBkcml2ZXJzL25ldC9ldGhlcm5ldC9t ZWxsYW5veC9tbHg1L2NvcmUvbWFpbi5jICAgfCAgMiArLQogaW5jbHVkZS9saW51eC9tbHg1L2Ry aXZlci5oICAgICAgICAgICAgICAgICAgICAgIHwgIDEgKwogMyBmaWxlcyBjaGFuZ2VkLCAxNiBp bnNlcnRpb25zKCspLCAyIGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L2V0 aGVybmV0L21lbGxhbm94L21seDUvY29yZS9oZWFsdGguYyBiL2RyaXZlcnMvbmV0L2V0aGVybmV0 L21lbGxhbm94L21seDUvY29yZS9oZWFsdGguYwppbmRleCA0NGY1OWIxZDZmMGYuLjljNGI3NGQ0 NDIzNCAxMDA2NDQKLS0tIGEvZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3Jl L2hlYWx0aC5jCisrKyBiL2RyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9o ZWFsdGguYwpAQCAtNjcsNiArNjcsNyBAQCBlbnVtIHsKIAogZW51bSB7CiAJTUxYNV9EUk9QX05F V19IRUFMVEhfV09SSywKKwlNTFg1X0RST1BfTkVXX1JFQ09WRVJZX1dPUkssCiB9OwogCiBzdGF0 aWMgdTggZ2V0X25pY19zdGF0ZShzdHJ1Y3QgbWx4NV9jb3JlX2RldiAqZGV2KQpAQCAtMTkzLDcg KzE5NCw3IEBAIHN0YXRpYyB2b2lkIGhlYWx0aF9jYXJlKHN0cnVjdCB3b3JrX3N0cnVjdCAqd29y aykKIAltbHg1X2hhbmRsZV9iYWRfc3RhdGUoZGV2KTsKIAogCXNwaW5fbG9jaygmaGVhbHRoLT53 cV9sb2NrKTsKLQlpZiAoIXRlc3RfYml0KE1MWDVfRFJPUF9ORVdfSEVBTFRIX1dPUkssICZoZWFs dGgtPmZsYWdzKSkKKwlpZiAoIXRlc3RfYml0KE1MWDVfRFJPUF9ORVdfUkVDT1ZFUllfV09SSywg JmhlYWx0aC0+ZmxhZ3MpKQogCQlzY2hlZHVsZV9kZWxheWVkX3dvcmsoJmhlYWx0aC0+cmVjb3Zl cl93b3JrLCByZWNvdmVyX2RlbGF5KTsKIAllbHNlCiAJCWRldl9lcnIoJmRldi0+cGRldi0+ZGV2 LApAQCAtMzE0LDYgKzMxNSw3IEBAIHZvaWQgbWx4NV9zdGFydF9oZWFsdGhfcG9sbChzdHJ1Y3Qg bWx4NV9jb3JlX2RldiAqZGV2KQogCWluaXRfdGltZXIoJmhlYWx0aC0+dGltZXIpOwogCWhlYWx0 aC0+c2ljayA9IDA7CiAJY2xlYXJfYml0KE1MWDVfRFJPUF9ORVdfSEVBTFRIX1dPUkssICZoZWFs dGgtPmZsYWdzKTsKKwljbGVhcl9iaXQoTUxYNV9EUk9QX05FV19SRUNPVkVSWV9XT1JLLCAmaGVh bHRoLT5mbGFncyk7CiAJaGVhbHRoLT5oZWFsdGggPSAmZGV2LT5pc2VnLT5oZWFsdGg7CiAJaGVh bHRoLT5oZWFsdGhfY291bnRlciA9ICZkZXYtPmlzZWctPmhlYWx0aF9jb3VudGVyOwogCkBAIC0z MzYsMTEgKzMzOCwyMiBAQCB2b2lkIG1seDVfZHJhaW5faGVhbHRoX3dxKHN0cnVjdCBtbHg1X2Nv cmVfZGV2ICpkZXYpCiAKIAlzcGluX2xvY2soJmhlYWx0aC0+d3FfbG9jayk7CiAJc2V0X2JpdChN TFg1X0RST1BfTkVXX0hFQUxUSF9XT1JLLCAmaGVhbHRoLT5mbGFncyk7CisJc2V0X2JpdChNTFg1 X0RST1BfTkVXX1JFQ09WRVJZX1dPUkssICZoZWFsdGgtPmZsYWdzKTsKIAlzcGluX3VubG9jaygm aGVhbHRoLT53cV9sb2NrKTsKIAljYW5jZWxfZGVsYXllZF93b3JrX3N5bmMoJmhlYWx0aC0+cmVj b3Zlcl93b3JrKTsKIAljYW5jZWxfd29ya19zeW5jKCZoZWFsdGgtPndvcmspOwogfQogCit2b2lk IG1seDVfZHJhaW5faGVhbHRoX3JlY292ZXJ5KHN0cnVjdCBtbHg1X2NvcmVfZGV2ICpkZXYpCit7 CisJc3RydWN0IG1seDVfY29yZV9oZWFsdGggKmhlYWx0aCA9ICZkZXYtPnByaXYuaGVhbHRoOwor CisJc3Bpbl9sb2NrKCZoZWFsdGgtPndxX2xvY2spOworCXNldF9iaXQoTUxYNV9EUk9QX05FV19S RUNPVkVSWV9XT1JLLCAmaGVhbHRoLT5mbGFncyk7CisJc3Bpbl91bmxvY2soJmhlYWx0aC0+d3Ff bG9jayk7CisJY2FuY2VsX2RlbGF5ZWRfd29ya19zeW5jKCZkZXYtPnByaXYuaGVhbHRoLnJlY292 ZXJfd29yayk7Cit9CisKIHZvaWQgbWx4NV9oZWFsdGhfY2xlYW51cChzdHJ1Y3QgbWx4NV9jb3Jl X2RldiAqZGV2KQogewogCXN0cnVjdCBtbHg1X2NvcmVfaGVhbHRoICpoZWFsdGggPSAmZGV2LT5w cml2LmhlYWx0aDsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21s eDUvY29yZS9tYWluLmMgYi9kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUv bWFpbi5jCmluZGV4IDk4NjJhNzQxYjMyYS4uMjMxNzNiZTFjYmMwIDEwMDY0NAotLS0gYS9kcml2 ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvbWFpbi5jCisrKyBiL2RyaXZlcnMv bmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9tYWluLmMKQEAgLTEyMzYsNyArMTIzNiw3 IEBAIHN0YXRpYyBpbnQgbWx4NV91bmxvYWRfb25lKHN0cnVjdCBtbHg1X2NvcmVfZGV2ICpkZXYs IHN0cnVjdCBtbHg1X3ByaXYgKnByaXYsCiAJaW50IGVyciA9IDA7CiAKIAlpZiAoY2xlYW51cCkK LQkJbWx4NV9kcmFpbl9oZWFsdGhfd3EoZGV2KTsKKwkJbWx4NV9kcmFpbl9oZWFsdGhfcmVjb3Zl cnkoZGV2KTsKIAogCW11dGV4X2xvY2soJmRldi0+aW50Zl9zdGF0ZV9tdXRleCk7CiAJaWYgKHRl c3RfYml0KE1MWDVfSU5URVJGQUNFX1NUQVRFX0RPV04sICZkZXYtPmludGZfc3RhdGUpKSB7CmRp ZmYgLS1naXQgYS9pbmNsdWRlL2xpbnV4L21seDUvZHJpdmVyLmggYi9pbmNsdWRlL2xpbnV4L21s eDUvZHJpdmVyLmgKaW5kZXggYzk2NWQxMTY1ZGY2Li43N2JkZmNkZDVhMDQgMTAwNjQ0Ci0tLSBh L2luY2x1ZGUvbGludXgvbWx4NS9kcml2ZXIuaAorKysgYi9pbmNsdWRlL2xpbnV4L21seDUvZHJp dmVyLmgKQEAgLTkyOCw2ICs5MjgsNyBAQCBpbnQgbWx4NV9oZWFsdGhfaW5pdChzdHJ1Y3QgbWx4 NV9jb3JlX2RldiAqZGV2KTsKIHZvaWQgbWx4NV9zdGFydF9oZWFsdGhfcG9sbChzdHJ1Y3QgbWx4 NV9jb3JlX2RldiAqZGV2KTsKIHZvaWQgbWx4NV9zdG9wX2hlYWx0aF9wb2xsKHN0cnVjdCBtbHg1 X2NvcmVfZGV2ICpkZXYpOwogdm9pZCBtbHg1X2RyYWluX2hlYWx0aF93cShzdHJ1Y3QgbWx4NV9j b3JlX2RldiAqZGV2KTsKK3ZvaWQgbWx4NV9kcmFpbl9oZWFsdGhfcmVjb3Zlcnkoc3RydWN0IG1s eDVfY29yZV9kZXYgKmRldik7CiBpbnQgbWx4NV9idWZfYWxsb2Nfbm9kZShzdHJ1Y3QgbWx4NV9j b3JlX2RldiAqZGV2LCBpbnQgc2l6ZSwKIAkJCXN0cnVjdCBtbHg1X2J1ZiAqYnVmLCBpbnQgbm9k ZSk7CiBpbnQgbWx4NV9idWZfYWxsb2Moc3RydWN0IG1seDVfY29yZV9kZXYgKmRldiwgaW50IHNp emUsIHN0cnVjdCBtbHg1X2J1ZiAqYnVmKTsKLS0gCjIuMTMuMAoKCkZyb20gMDQzYmJjYTAzMGNi MjM3MTE5NzUxNWZhZjhlODAxZjE0MjEzZTdkOCBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJv bTogR2FsIFByZXNzbWFuIDxnYWxwQG1lbGxhbm94LmNvbT4KRGF0ZTogU3VuLCAyNSBKdW4gMjAx NyAxNjo0NjoyNSArMDMwMApTdWJqZWN0OiBbUEFUQ0ggMTYvMzBdIG5ldC9tbHg1ZTogRml4IFRY IGNhcnJpZXIgZXJyb3JzIHJlcG9ydCBpbiBnZXQgc3RhdHMKIG5kbwoKWyBVcHN0cmVhbSBjb21t aXQgOGZmOTNkZTc2NjhiZDgxYmM4ZWZhODE5ZDExODRlYmQ0OGZhZTcyZCBdCgpTeW1ib2wgZXJy b3IgZHVyaW5nIGNhcnJpZXIgY291bnRlciBmcm9tIFBQQ05UIHdhcyBtaXN0YWtlbmx5IHJlcG9y dGVkIGFzClRYIGNhcnJpZXIgZXJyb3JzIGluIGdldF9zdGF0cyBuZG8sIGFsdGhvdWdoIGl0J3Mg YW4gUlggY291bnRlci4KCkZpeGVzOiAyNjllNmIzYWYzYmYgKCJuZXQvbWx4NWU6IFJlcG9ydCBh ZGRpdGlvbmFsIGVycm9yIHN0YXRpc3RpY3MgaW4gZ2V0IHN0YXRzIG5kbyIpClNpZ25lZC1vZmYt Ynk6IEdhbCBQcmVzc21hbiA8Z2FscEBtZWxsYW5veC5jb20+ClNpZ25lZC1vZmYtYnk6IFNhZWVk IE1haGFtZWVkIDxzYWVlZG1AbWVsbGFub3guY29tPgotLS0KIGRyaXZlcnMvbmV0L2V0aGVybmV0 L21lbGxhbm94L21seDUvY29yZS9lbl9tYWluLmMgfCAyIC0tCiAxIGZpbGUgY2hhbmdlZCwgMiBk ZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9t bHg1L2NvcmUvZW5fbWFpbi5jIGIvZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9j b3JlL2VuX21haW4uYwppbmRleCBmNzc4NDM2YTJkMjguLjAwMTA0ZGU3OWQwZSAxMDA2NDQKLS0t IGEvZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2VuX21haW4uYworKysg Yi9kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvZW5fbWFpbi5jCkBAIC0y NzcxLDggKzI3NzEsNiBAQCBtbHg1ZV9nZXRfc3RhdHMoc3RydWN0IG5ldF9kZXZpY2UgKmRldiwg c3RydWN0IHJ0bmxfbGlua19zdGF0czY0ICpzdGF0cykKIAkJUFBPUlRfODAyXzNfR0VUKHBzdGF0 cywgYV9mcmFtZV9jaGVja19zZXF1ZW5jZV9lcnJvcnMpOwogCXN0YXRzLT5yeF9mcmFtZV9lcnJv cnMgPSBQUE9SVF84MDJfM19HRVQocHN0YXRzLCBhX2FsaWdubWVudF9lcnJvcnMpOwogCXN0YXRz LT50eF9hYm9ydGVkX2Vycm9ycyA9IFBQT1JUXzI4NjNfR0VUKHBzdGF0cywgaWZfb3V0X2Rpc2Nh cmRzKTsKLQlzdGF0cy0+dHhfY2Fycmllcl9lcnJvcnMgPQotCQlQUE9SVF84MDJfM19HRVQocHN0 YXRzLCBhX3N5bWJvbF9lcnJvcl9kdXJpbmdfY2Fycmllcik7CiAJc3RhdHMtPnJ4X2Vycm9ycyA9 IHN0YXRzLT5yeF9sZW5ndGhfZXJyb3JzICsgc3RhdHMtPnJ4X2NyY19lcnJvcnMgKwogCQkJICAg c3RhdHMtPnJ4X2ZyYW1lX2Vycm9yczsKIAlzdGF0cy0+dHhfZXJyb3JzID0gc3RhdHMtPnR4X2Fi b3J0ZWRfZXJyb3JzICsgc3RhdHMtPnR4X2NhcnJpZXJfZXJyb3JzOwotLSAKMi4xMy4wCgoKRnJv bSBjMjY3ZTRhMWY0ZTg4Mjg3ZmNjOGQzODZhYTg0ZmViOGFiYzJjYzFhIE1vbiBTZXAgMTcgMDA6 MDA6MDAgMjAwMQpGcm9tOiBTYWJyaW5hIER1YnJvY2EgPHNkQHF1ZWFzeXNuYWlsLm5ldD4KRGF0 ZTogVGh1LCAyOSBKdW4gMjAxNyAxNjo1Njo1NCArMDIwMApTdWJqZWN0OiBbUEFUQ0ggMTcvMzBd IGlwdjY6IGRhZDogZG9uJ3QgcmVtb3ZlIGR5bmFtaWMgYWRkcmVzc2VzIGlmIGxpbmsgaXMKIGRv d24KClsgVXBzdHJlYW0gY29tbWl0IGVjOGFkZDJhNGM5ZGY3MjNjOTRhODYzYjhmY2Q2ZDkzYzQ3 MmRlZWQgXQoKQ3VycmVudGx5LCB3aGVuIHRoZSBsaW5rIGZvciAkREVWIGlzIGRvd24sIHRoaXMg Y29tbWFuZCBzdWNjZWVkcyBidXQgdGhlCmFkZHJlc3MgaXMgcmVtb3ZlZCBpbW1lZGlhdGVseSBi eSBEQUQgKDEpOgoKICAgIGlwIGFkZHIgYWRkIDExMTE6OjEyLzY0IGRldiAkREVWIHZhbGlkX2xm dCAzNjAwIHByZWZlcnJlZF9sZnQgMTgwMAoKSW4gdGhlIHNhbWUgc2l0dWF0aW9uLCB0aGlzIHdp bGwgc3VjY2VlZCBhbmQgbm90IHJlbW92ZSB0aGUgYWRkcmVzcyAoMik6CgogICAgaXAgYWRkciBh ZGQgMTExMTo6MTIvNjQgZGV2ICRERVYKICAgIGlwIGFkZHIgY2hhbmdlIDExMTE6OjEyLzY0IGRl diAkREVWIHZhbGlkX2xmdCAzNjAwIHByZWZlcnJlZF9sZnQgMTgwMAoKVGhlIGNvbW1lbnQgaW4g YWRkcmNvbmZfZGFkX2JlZ2luKCkgd2hlbiAhSUZfUkVBRFkgbWFrZXMgaXQgbG9vayBsaWtlCnRo aXMgaXMgdGhlIGludGVuZGVkIGJlaGF2aW9yLCBidXQgZG9lc24ndCBleHBsYWluIHdoeToKCiAg ICAgKiBJZiB0aGUgZGV2aWNlIGlzIG5vdCByZWFkeToKICAgICAqIC0ga2VlcCBpdCB0ZW50YXRp dmUgaWYgaXQgaXMgYSBwZXJtYW5lbnQgYWRkcmVzcy4KICAgICAqIC0gb3RoZXJ3aXNlLCBraWxs IGl0LgoKV2UgY2xlYXJseSBjYW5ub3QgcHJldmVudCB1c2Vyc3BhY2UgZnJvbSBkb2luZyAoMiks IGJ1dCB3ZSBjYW4gbWFrZSAoMSkKd29yayBjb25zaXN0ZW50bHkgd2l0aCAoMikuCgphZGRyY29u Zl9kYWRfc3RvcCgpIGlzIG9ubHkgY2FsbGVkIGluIHR3byBjYXNlczogaWYgREFEIGZhaWxlZCwg b3IgdG8Kc2tpcCBEQUQgd2hlbiB0aGUgbGluayBpcyBkb3duLiBJbiB0aGF0IHNlY29uZCBjYXNl LCB0aGUgZml4IGlzIHRvIGF2b2lkCmRlbGV0aW5nIHRoZSBhZGRyZXNzLCBsaWtlIHdlIGFscmVh ZHkgZG8gZm9yIHBlcm1hbmVudCBhZGRyZXNzZXMuCgpGaXhlczogM2MyMWVkYmQxMTM3ICgiW0lQ VjZdOiBEZWZlciBJUHY2IGRldmljZSBpbml0aWFsaXphdGlvbiB1bnRpbCB0aGUgbGluayBiZWNv bWVzIHJlYWR5LiIpClNpZ25lZC1vZmYtYnk6IFNhYnJpbmEgRHVicm9jYSA8c2RAcXVlYXN5c25h aWwubmV0PgpTaWduZWQtb2ZmLWJ5OiBEYXZpZCBTLiBNaWxsZXIgPGRhdmVtQGRhdmVtbG9mdC5u ZXQ+Ci0tLQogbmV0L2lwdjYvYWRkcmNvbmYuYyB8IDE4ICsrKysrKysrKy0tLS0tLS0tLQogMSBm aWxlIGNoYW5nZWQsIDkgaW5zZXJ0aW9ucygrKSwgOSBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQg YS9uZXQvaXB2Ni9hZGRyY29uZi5jIGIvbmV0L2lwdjYvYWRkcmNvbmYuYwppbmRleCAxNzdlZWUw NjAwMjcuLjY4MmVhNjQxN2RiMyAxMDA2NDQKLS0tIGEvbmV0L2lwdjYvYWRkcmNvbmYuYworKysg Yi9uZXQvaXB2Ni9hZGRyY29uZi5jCkBAIC0xODg4LDE1ICsxODg4LDcgQEAgc3RhdGljIHZvaWQg YWRkcmNvbmZfZGFkX3N0b3Aoc3RydWN0IGluZXQ2X2lmYWRkciAqaWZwLCBpbnQgZGFkX2ZhaWxl ZCkKIAlpZiAoZGFkX2ZhaWxlZCkKIAkJaWZwLT5mbGFncyB8PSBJRkFfRl9EQURGQUlMRUQ7CiAK LQlpZiAoaWZwLT5mbGFncyZJRkFfRl9QRVJNQU5FTlQpIHsKLQkJc3Bpbl9sb2NrX2JoKCZpZnAt PmxvY2spOwotCQlhZGRyY29uZl9kZWxfZGFkX3dvcmsoaWZwKTsKLQkJaWZwLT5mbGFncyB8PSBJ RkFfRl9URU5UQVRJVkU7Ci0JCXNwaW5fdW5sb2NrX2JoKCZpZnAtPmxvY2spOwotCQlpZiAoZGFk X2ZhaWxlZCkKLQkJCWlwdjZfaWZhX25vdGlmeSgwLCBpZnApOwotCQlpbjZfaWZhX3B1dChpZnAp OwotCX0gZWxzZSBpZiAoaWZwLT5mbGFncyZJRkFfRl9URU1QT1JBUlkpIHsKKwlpZiAoaWZwLT5m bGFncyZJRkFfRl9URU1QT1JBUlkpIHsKIAkJc3RydWN0IGluZXQ2X2lmYWRkciAqaWZwdWI7CiAJ CXNwaW5fbG9ja19iaCgmaWZwLT5sb2NrKTsKIAkJaWZwdWIgPSBpZnAtPmlmcHViOwpAQCAtMTkw OSw2ICsxOTAxLDE0IEBAIHN0YXRpYyB2b2lkIGFkZHJjb25mX2RhZF9zdG9wKHN0cnVjdCBpbmV0 Nl9pZmFkZHIgKmlmcCwgaW50IGRhZF9mYWlsZWQpCiAJCQlzcGluX3VubG9ja19iaCgmaWZwLT5s b2NrKTsKIAkJfQogCQlpcHY2X2RlbF9hZGRyKGlmcCk7CisJfSBlbHNlIGlmIChpZnAtPmZsYWdz JklGQV9GX1BFUk1BTkVOVCB8fCAhZGFkX2ZhaWxlZCkgeworCQlzcGluX2xvY2tfYmgoJmlmcC0+ bG9jayk7CisJCWFkZHJjb25mX2RlbF9kYWRfd29yayhpZnApOworCQlpZnAtPmZsYWdzIHw9IElG QV9GX1RFTlRBVElWRTsKKwkJc3Bpbl91bmxvY2tfYmgoJmlmcC0+bG9jayk7CisJCWlmIChkYWRf ZmFpbGVkKQorCQkJaXB2Nl9pZmFfbm90aWZ5KDAsIGlmcCk7CisJCWluNl9pZmFfcHV0KGlmcCk7 CiAJfSBlbHNlIHsKIAkJaXB2Nl9kZWxfYWRkcihpZnApOwogCX0KLS0gCjIuMTMuMAoKCkZyb20g M2IxY2NmYWRjOWM1MzFlMzQ2Nzc5NDg3ZmZlNDZjYTI1Y2FhZTVhMCBNb24gU2VwIDE3IDAwOjAw OjAwIDIwMDEKRnJvbTogSmlyaSBCZW5jIDxqYmVuY0ByZWRoYXQuY29tPgpEYXRlOiBTdW4sIDIg SnVsIDIwMTcgMTk6MDA6NTcgKzAyMDAKU3ViamVjdDogW1BBVENIIDE4LzMwXSB2eGxhbjogZml4 IGhsaXN0IGNvcnJ1cHRpb24KClsgVXBzdHJlYW0gY29tbWl0IDY5ZTc2NjYxMmM0YmNiNzllMTlj ZWJlZDllZWQ2MWQ0MjIyYzFkNDcgXQoKSXQncyBub3QgYSBnb29kIGlkZWEgdG8gYWRkIHRoZSBz YW1lIGhsaXN0X25vZGUgdG8gdHdvIGRpZmZlcmVudCBoYXNoIGxpc3RzLgpUaGlzIGxlYWRzIHRv IHZhcmlvdXMgaGFyZCB0byBkZWJ1ZyBtZW1vcnkgY29ycnVwdGlvbnMuCgpGaXhlczogYjFiZTAw YTZjMzlmICgidnhsYW46IHN1cHBvcnQgYm90aCBJUHY0IGFuZCBJUHY2IHNvY2tldHMgaW4gYSBz aW5nbGUgdnhsYW4gZGV2aWNlIikKU2lnbmVkLW9mZi1ieTogSmlyaSBCZW5jIDxqYmVuY0ByZWRo YXQuY29tPgpTaWduZWQtb2ZmLWJ5OiBEYXZpZCBTLiBNaWxsZXIgPGRhdmVtQGRhdmVtbG9mdC5u ZXQ+Ci0tLQogZHJpdmVycy9uZXQvdnhsYW4uYyB8IDMwICsrKysrKysrKysrKysrKysrKysrLS0t LS0tLS0tLQogaW5jbHVkZS9uZXQvdnhsYW4uaCB8IDEwICsrKysrKysrKy0KIDIgZmlsZXMgY2hh bmdlZCwgMjkgaW5zZXJ0aW9ucygrKSwgMTEgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvZHJp dmVycy9uZXQvdnhsYW4uYyBiL2RyaXZlcnMvbmV0L3Z4bGFuLmMKaW5kZXggNDU3NGI5NWM3OTM4 Li4zOTExZmQxOTYzNWQgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvbmV0L3Z4bGFuLmMKKysrIGIvZHJp dmVycy9uZXQvdnhsYW4uYwpAQCAtMjI4LDE1ICsyMjgsMTUgQEAgc3RhdGljIHN0cnVjdCB2eGxh bl9zb2NrICp2eGxhbl9maW5kX3NvY2soc3RydWN0IG5ldCAqbmV0LCBzYV9mYW1pbHlfdCBmYW1p bHksCiAKIHN0YXRpYyBzdHJ1Y3QgdnhsYW5fZGV2ICp2eGxhbl92c19maW5kX3ZuaShzdHJ1Y3Qg dnhsYW5fc29jayAqdnMsIF9fYmUzMiB2bmkpCiB7Ci0Jc3RydWN0IHZ4bGFuX2RldiAqdnhsYW47 CisJc3RydWN0IHZ4bGFuX2Rldl9ub2RlICpub2RlOwogCiAJLyogRm9yIGZsb3cgYmFzZWQgZGV2 aWNlcywgbWFwIGFsbCBwYWNrZXRzIHRvIFZOSSAwICovCiAJaWYgKHZzLT5mbGFncyAmIFZYTEFO X0ZfQ09MTEVDVF9NRVRBREFUQSkKIAkJdm5pID0gMDsKIAotCWhsaXN0X2Zvcl9lYWNoX2VudHJ5 X3JjdSh2eGxhbiwgdm5pX2hlYWQodnMsIHZuaSksIGhsaXN0KSB7Ci0JCWlmICh2eGxhbi0+ZGVm YXVsdF9kc3QucmVtb3RlX3ZuaSA9PSB2bmkpCi0JCQlyZXR1cm4gdnhsYW47CisJaGxpc3RfZm9y X2VhY2hfZW50cnlfcmN1KG5vZGUsIHZuaV9oZWFkKHZzLCB2bmkpLCBobGlzdCkgeworCQlpZiAo bm9kZS0+dnhsYW4tPmRlZmF1bHRfZHN0LnJlbW90ZV92bmkgPT0gdm5pKQorCQkJcmV0dXJuIG5v ZGUtPnZ4bGFuOwogCX0KIAogCXJldHVybiBOVUxMOwpAQCAtMjM2MSwxNyArMjM2MSwyMiBAQCBz dGF0aWMgdm9pZCB2eGxhbl92c19kZWxfZGV2KHN0cnVjdCB2eGxhbl9kZXYgKnZ4bGFuKQogCXN0 cnVjdCB2eGxhbl9uZXQgKnZuID0gbmV0X2dlbmVyaWModnhsYW4tPm5ldCwgdnhsYW5fbmV0X2lk KTsKIAogCXNwaW5fbG9jaygmdm4tPnNvY2tfbG9jayk7Ci0JaGxpc3RfZGVsX2luaXRfcmN1KCZ2 eGxhbi0+aGxpc3QpOworCWhsaXN0X2RlbF9pbml0X3JjdSgmdnhsYW4tPmhsaXN0NC5obGlzdCk7 CisjaWYgSVNfRU5BQkxFRChDT05GSUdfSVBWNikKKwlobGlzdF9kZWxfaW5pdF9yY3UoJnZ4bGFu LT5obGlzdDYuaGxpc3QpOworI2VuZGlmCiAJc3Bpbl91bmxvY2soJnZuLT5zb2NrX2xvY2spOwog fQogCi1zdGF0aWMgdm9pZCB2eGxhbl92c19hZGRfZGV2KHN0cnVjdCB2eGxhbl9zb2NrICp2cywg c3RydWN0IHZ4bGFuX2RldiAqdnhsYW4pCitzdGF0aWMgdm9pZCB2eGxhbl92c19hZGRfZGV2KHN0 cnVjdCB2eGxhbl9zb2NrICp2cywgc3RydWN0IHZ4bGFuX2RldiAqdnhsYW4sCisJCQkgICAgIHN0 cnVjdCB2eGxhbl9kZXZfbm9kZSAqbm9kZSkKIHsKIAlzdHJ1Y3QgdnhsYW5fbmV0ICp2biA9IG5l dF9nZW5lcmljKHZ4bGFuLT5uZXQsIHZ4bGFuX25ldF9pZCk7CiAJX19iZTMyIHZuaSA9IHZ4bGFu LT5kZWZhdWx0X2RzdC5yZW1vdGVfdm5pOwogCisJbm9kZS0+dnhsYW4gPSB2eGxhbjsKIAlzcGlu X2xvY2soJnZuLT5zb2NrX2xvY2spOwotCWhsaXN0X2FkZF9oZWFkX3JjdSgmdnhsYW4tPmhsaXN0 LCB2bmlfaGVhZCh2cywgdm5pKSk7CisJaGxpc3RfYWRkX2hlYWRfcmN1KCZub2RlLT5obGlzdCwg dm5pX2hlYWQodnMsIHZuaSkpOwogCXNwaW5fdW5sb2NrKCZ2bi0+c29ja19sb2NrKTsKIH0KIApA QCAtMjgxNyw2ICsyODIyLDcgQEAgc3RhdGljIGludCBfX3Z4bGFuX3NvY2tfYWRkKHN0cnVjdCB2 eGxhbl9kZXYgKnZ4bGFuLCBib29sIGlwdjYpCiB7CiAJc3RydWN0IHZ4bGFuX25ldCAqdm4gPSBu ZXRfZ2VuZXJpYyh2eGxhbi0+bmV0LCB2eGxhbl9uZXRfaWQpOwogCXN0cnVjdCB2eGxhbl9zb2Nr ICp2cyA9IE5VTEw7CisJc3RydWN0IHZ4bGFuX2Rldl9ub2RlICpub2RlOwogCiAJaWYgKCF2eGxh bi0+Y2ZnLm5vX3NoYXJlKSB7CiAJCXNwaW5fbG9jaygmdm4tPnNvY2tfbG9jayk7CkBAIC0yODM0 LDEyICsyODQwLDE2IEBAIHN0YXRpYyBpbnQgX192eGxhbl9zb2NrX2FkZChzdHJ1Y3QgdnhsYW5f ZGV2ICp2eGxhbiwgYm9vbCBpcHY2KQogCWlmIChJU19FUlIodnMpKQogCQlyZXR1cm4gUFRSX0VS Uih2cyk7CiAjaWYgSVNfRU5BQkxFRChDT05GSUdfSVBWNikKLQlpZiAoaXB2NikKKwlpZiAoaXB2 NikgewogCQlyY3VfYXNzaWduX3BvaW50ZXIodnhsYW4tPnZuNl9zb2NrLCB2cyk7Ci0JZWxzZQor CQlub2RlID0gJnZ4bGFuLT5obGlzdDY7CisJfSBlbHNlCiAjZW5kaWYKKwl7CiAJCXJjdV9hc3Np Z25fcG9pbnRlcih2eGxhbi0+dm40X3NvY2ssIHZzKTsKLQl2eGxhbl92c19hZGRfZGV2KHZzLCB2 eGxhbik7CisJCW5vZGUgPSAmdnhsYW4tPmhsaXN0NDsKKwl9CisJdnhsYW5fdnNfYWRkX2Rldih2 cywgdnhsYW4sIG5vZGUpOwogCXJldHVybiAwOwogfQogCmRpZmYgLS1naXQgYS9pbmNsdWRlL25l dC92eGxhbi5oIGIvaW5jbHVkZS9uZXQvdnhsYW4uaAppbmRleCA0OWE1OTIwMmY4NWUuLmRhN2Q2 Yjg5ZGY3NyAxMDA2NDQKLS0tIGEvaW5jbHVkZS9uZXQvdnhsYW4uaAorKysgYi9pbmNsdWRlL25l dC92eGxhbi5oCkBAIC0yMjEsOSArMjIxLDE3IEBAIHN0cnVjdCB2eGxhbl9jb25maWcgewogCWJv b2wJCQlub19zaGFyZTsKIH07CiAKK3N0cnVjdCB2eGxhbl9kZXZfbm9kZSB7CisJc3RydWN0IGhs aXN0X25vZGUgaGxpc3Q7CisJc3RydWN0IHZ4bGFuX2RldiAqdnhsYW47Cit9OworCiAvKiBQc2V1 ZG8gbmV0d29yayBkZXZpY2UgKi8KIHN0cnVjdCB2eGxhbl9kZXYgewotCXN0cnVjdCBobGlzdF9u b2RlIGhsaXN0OwkvKiB2bmkgaGFzaCB0YWJsZSAqLworCXN0cnVjdCB2eGxhbl9kZXZfbm9kZSBo bGlzdDQ7CS8qIHZuaSBoYXNoIHRhYmxlIGZvciBJUHY0IHNvY2tldCAqLworI2lmIElTX0VOQUJM RUQoQ09ORklHX0lQVjYpCisJc3RydWN0IHZ4bGFuX2Rldl9ub2RlIGhsaXN0NjsJLyogdm5pIGhh c2ggdGFibGUgZm9yIElQdjYgc29ja2V0ICovCisjZW5kaWYKIAlzdHJ1Y3QgbGlzdF9oZWFkICBu ZXh0OwkJLyogdnhsYW4ncyBwZXIgbmFtZXNwYWNlIGxpc3QgKi8KIAlzdHJ1Y3QgdnhsYW5fc29j ayBfX3JjdSAqdm40X3NvY2s7CS8qIGxpc3RlbmluZyBzb2NrZXQgZm9yIElQdjQgKi8KICNpZiBJ U19FTkFCTEVEKENPTkZJR19JUFY2KQotLSAKMi4xMy4wCgoKRnJvbSBlNWUwNjYwZmQxNGM0Mjhl NWMzYzYwNzgyZTM3MWYyYjE0MTNmNDllIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBK aXJpIEJlbmMgPGpiZW5jQHJlZGhhdC5jb20+CkRhdGU6IFN1biwgMiBKdWwgMjAxNyAxOTowMDo1 OCArMDIwMApTdWJqZWN0OiBbUEFUQ0ggMTkvMzBdIGdlbmV2ZTogZml4IGhsaXN0IGNvcnJ1cHRp b24KClsgVXBzdHJlYW0gY29tbWl0IDRiNGMyMWZhZDZhZTZiZDU4ZmYxNTY2ZjIzYjBmNGY3MGZk YzlhMzAgXQoKSXQncyBub3QgYSBnb29kIGlkZWEgdG8gYWRkIHRoZSBzYW1lIGhsaXN0X25vZGUg dG8gdHdvIGRpZmZlcmVudCBoYXNoIGxpc3RzLgpUaGlzIGxlYWRzIHRvIHZhcmlvdXMgaGFyZCB0 byBkZWJ1ZyBtZW1vcnkgY29ycnVwdGlvbnMuCgpGaXhlczogOGVkNjZmMGU4MjM1ICgiZ2VuZXZl OiBpbXBsZW1lbnQgc3VwcG9ydCBmb3IgSVB2Ni1iYXNlZCB0dW5uZWxzIikKQ2M6IEpvaG4gVy4g TGludmlsbGUgPGxpbnZpbGxlQHR1eGRyaXZlci5jb20+ClNpZ25lZC1vZmYtYnk6IEppcmkgQmVu YyA8amJlbmNAcmVkaGF0LmNvbT4KU2lnbmVkLW9mZi1ieTogRGF2aWQgUy4gTWlsbGVyIDxkYXZl bUBkYXZlbWxvZnQubmV0PgotLS0KIGRyaXZlcnMvbmV0L2dlbmV2ZS5jIHwgNDggKysrKysrKysr KysrKysrKysrKysrKysrKysrKysrKystLS0tLS0tLS0tLS0tLS0tCiAxIGZpbGUgY2hhbmdlZCwg MzIgaW5zZXJ0aW9ucygrKSwgMTYgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvZHJpdmVycy9u ZXQvZ2VuZXZlLmMgYi9kcml2ZXJzL25ldC9nZW5ldmUuYwppbmRleCAxOTk0NTliZDY5NjEuLjZl YzhmYzlhYWQ4ZiAxMDA2NDQKLS0tIGEvZHJpdmVycy9uZXQvZ2VuZXZlLmMKKysrIGIvZHJpdmVy cy9uZXQvZ2VuZXZlLmMKQEAgLTQ1LDkgKzQ1LDE3IEBAIHN0cnVjdCBnZW5ldmVfbmV0IHsKIAog c3RhdGljIHVuc2lnbmVkIGludCBnZW5ldmVfbmV0X2lkOwogCitzdHJ1Y3QgZ2VuZXZlX2Rldl9u b2RlIHsKKwlzdHJ1Y3QgaGxpc3Rfbm9kZSBobGlzdDsKKwlzdHJ1Y3QgZ2VuZXZlX2RldiAqZ2Vu ZXZlOworfTsKKwogLyogUHNldWRvIG5ldHdvcmsgZGV2aWNlICovCiBzdHJ1Y3QgZ2VuZXZlX2Rl diB7Ci0Jc3RydWN0IGhsaXN0X25vZGUgIGhsaXN0OwkvKiB2bmkgaGFzaCB0YWJsZSAqLworCXN0 cnVjdCBnZW5ldmVfZGV2X25vZGUgaGxpc3Q0OwkvKiB2bmkgaGFzaCB0YWJsZSBmb3IgSVB2NCBz b2NrZXQgKi8KKyNpZiBJU19FTkFCTEVEKENPTkZJR19JUFY2KQorCXN0cnVjdCBnZW5ldmVfZGV2 X25vZGUgaGxpc3Q2OwkvKiB2bmkgaGFzaCB0YWJsZSBmb3IgSVB2NiBzb2NrZXQgKi8KKyNlbmRp ZgogCXN0cnVjdCBuZXQJICAgKm5ldDsJLyogbmV0bnMgZm9yIHBhY2tldCBpL28gKi8KIAlzdHJ1 Y3QgbmV0X2RldmljZSAgKmRldjsJLyogbmV0ZGV2IGZvciBnZW5ldmUgdHVubmVsICovCiAJc3Ry dWN0IGlwX3R1bm5lbF9pbmZvIGluZm87CkBAIC0xMjMsMTYgKzEzMSwxNiBAQCBzdGF0aWMgc3Ry dWN0IGdlbmV2ZV9kZXYgKmdlbmV2ZV9sb29rdXAoc3RydWN0IGdlbmV2ZV9zb2NrICpncywKIAkJ CQkJX19iZTMyIGFkZHIsIHU4IHZuaVtdKQogewogCXN0cnVjdCBobGlzdF9oZWFkICp2bmlfbGlz dF9oZWFkOwotCXN0cnVjdCBnZW5ldmVfZGV2ICpnZW5ldmU7CisJc3RydWN0IGdlbmV2ZV9kZXZf bm9kZSAqbm9kZTsKIAlfX3UzMiBoYXNoOwogCiAJLyogRmluZCB0aGUgZGV2aWNlIGZvciB0aGlz IFZOSSAqLwogCWhhc2ggPSBnZW5ldmVfbmV0X3ZuaV9oYXNoKHZuaSk7CiAJdm5pX2xpc3RfaGVh ZCA9ICZncy0+dm5pX2xpc3RbaGFzaF07Ci0JaGxpc3RfZm9yX2VhY2hfZW50cnlfcmN1KGdlbmV2 ZSwgdm5pX2xpc3RfaGVhZCwgaGxpc3QpIHsKLQkJaWYgKGVxX3R1bl9pZF9hbmRfdm5pKCh1OCAq KSZnZW5ldmUtPmluZm8ua2V5LnR1bl9pZCwgdm5pKSAmJgotCQkgICAgYWRkciA9PSBnZW5ldmUt PmluZm8ua2V5LnUuaXB2NC5kc3QpCi0JCQlyZXR1cm4gZ2VuZXZlOworCWhsaXN0X2Zvcl9lYWNo X2VudHJ5X3JjdShub2RlLCB2bmlfbGlzdF9oZWFkLCBobGlzdCkgeworCQlpZiAoZXFfdHVuX2lk X2FuZF92bmkoKHU4ICopJm5vZGUtPmdlbmV2ZS0+aW5mby5rZXkudHVuX2lkLCB2bmkpICYmCisJ CSAgICBhZGRyID09IG5vZGUtPmdlbmV2ZS0+aW5mby5rZXkudS5pcHY0LmRzdCkKKwkJCXJldHVy biBub2RlLT5nZW5ldmU7CiAJfQogCXJldHVybiBOVUxMOwogfQpAQCAtMTQyLDE2ICsxNTAsMTYg QEAgc3RhdGljIHN0cnVjdCBnZW5ldmVfZGV2ICpnZW5ldmU2X2xvb2t1cChzdHJ1Y3QgZ2VuZXZl X3NvY2sgKmdzLAogCQkJCQkgc3RydWN0IGluNl9hZGRyIGFkZHI2LCB1OCB2bmlbXSkKIHsKIAlz dHJ1Y3QgaGxpc3RfaGVhZCAqdm5pX2xpc3RfaGVhZDsKLQlzdHJ1Y3QgZ2VuZXZlX2RldiAqZ2Vu ZXZlOworCXN0cnVjdCBnZW5ldmVfZGV2X25vZGUgKm5vZGU7CiAJX191MzIgaGFzaDsKIAogCS8q IEZpbmQgdGhlIGRldmljZSBmb3IgdGhpcyBWTkkgKi8KIAloYXNoID0gZ2VuZXZlX25ldF92bmlf aGFzaCh2bmkpOwogCXZuaV9saXN0X2hlYWQgPSAmZ3MtPnZuaV9saXN0W2hhc2hdOwotCWhsaXN0 X2Zvcl9lYWNoX2VudHJ5X3JjdShnZW5ldmUsIHZuaV9saXN0X2hlYWQsIGhsaXN0KSB7Ci0JCWlm IChlcV90dW5faWRfYW5kX3ZuaSgodTggKikmZ2VuZXZlLT5pbmZvLmtleS50dW5faWQsIHZuaSkg JiYKLQkJICAgIGlwdjZfYWRkcl9lcXVhbCgmYWRkcjYsICZnZW5ldmUtPmluZm8ua2V5LnUuaXB2 Ni5kc3QpKQotCQkJcmV0dXJuIGdlbmV2ZTsKKwlobGlzdF9mb3JfZWFjaF9lbnRyeV9yY3Uobm9k ZSwgdm5pX2xpc3RfaGVhZCwgaGxpc3QpIHsKKwkJaWYgKGVxX3R1bl9pZF9hbmRfdm5pKCh1OCAq KSZub2RlLT5nZW5ldmUtPmluZm8ua2V5LnR1bl9pZCwgdm5pKSAmJgorCQkgICAgaXB2Nl9hZGRy X2VxdWFsKCZhZGRyNiwgJm5vZGUtPmdlbmV2ZS0+aW5mby5rZXkudS5pcHY2LmRzdCkpCisJCQly ZXR1cm4gbm9kZS0+Z2VuZXZlOwogCX0KIAlyZXR1cm4gTlVMTDsKIH0KQEAgLTU3OSw2ICs1ODcs NyBAQCBzdGF0aWMgaW50IGdlbmV2ZV9zb2NrX2FkZChzdHJ1Y3QgZ2VuZXZlX2RldiAqZ2VuZXZl LCBib29sIGlwdjYpCiB7CiAJc3RydWN0IG5ldCAqbmV0ID0gZ2VuZXZlLT5uZXQ7CiAJc3RydWN0 IGdlbmV2ZV9uZXQgKmduID0gbmV0X2dlbmVyaWMobmV0LCBnZW5ldmVfbmV0X2lkKTsKKwlzdHJ1 Y3QgZ2VuZXZlX2Rldl9ub2RlICpub2RlOwogCXN0cnVjdCBnZW5ldmVfc29jayAqZ3M7CiAJX191 OCB2bmlbM107CiAJX191MzIgaGFzaDsKQEAgLTU5NywxNSArNjA2LDIwIEBAIHN0YXRpYyBpbnQg Z2VuZXZlX3NvY2tfYWRkKHN0cnVjdCBnZW5ldmVfZGV2ICpnZW5ldmUsIGJvb2wgaXB2NikKIG91 dDoKIAlncy0+Y29sbGVjdF9tZCA9IGdlbmV2ZS0+Y29sbGVjdF9tZDsKICNpZiBJU19FTkFCTEVE KENPTkZJR19JUFY2KQotCWlmIChpcHY2KQorCWlmIChpcHY2KSB7CiAJCXJjdV9hc3NpZ25fcG9p bnRlcihnZW5ldmUtPnNvY2s2LCBncyk7Ci0JZWxzZQorCQlub2RlID0gJmdlbmV2ZS0+aGxpc3Q2 OworCX0gZWxzZQogI2VuZGlmCisJewogCQlyY3VfYXNzaWduX3BvaW50ZXIoZ2VuZXZlLT5zb2Nr NCwgZ3MpOworCQlub2RlID0gJmdlbmV2ZS0+aGxpc3Q0OworCX0KKwlub2RlLT5nZW5ldmUgPSBn ZW5ldmU7CiAKIAl0dW5uZWxfaWRfdG9fdm5pKGdlbmV2ZS0+aW5mby5rZXkudHVuX2lkLCB2bmkp OwogCWhhc2ggPSBnZW5ldmVfbmV0X3ZuaV9oYXNoKHZuaSk7Ci0JaGxpc3RfYWRkX2hlYWRfcmN1 KCZnZW5ldmUtPmhsaXN0LCAmZ3MtPnZuaV9saXN0W2hhc2hdKTsKKwlobGlzdF9hZGRfaGVhZF9y Y3UoJm5vZGUtPmhsaXN0LCAmZ3MtPnZuaV9saXN0W2hhc2hdKTsKIAlyZXR1cm4gMDsKIH0KIApA QCAtNjMyLDggKzY0NiwxMCBAQCBzdGF0aWMgaW50IGdlbmV2ZV9zdG9wKHN0cnVjdCBuZXRfZGV2 aWNlICpkZXYpCiB7CiAJc3RydWN0IGdlbmV2ZV9kZXYgKmdlbmV2ZSA9IG5ldGRldl9wcml2KGRl dik7CiAKLQlpZiAoIWhsaXN0X3VuaGFzaGVkKCZnZW5ldmUtPmhsaXN0KSkKLQkJaGxpc3RfZGVs X3JjdSgmZ2VuZXZlLT5obGlzdCk7CisJaGxpc3RfZGVsX2luaXRfcmN1KCZnZW5ldmUtPmhsaXN0 NC5obGlzdCk7CisjaWYgSVNfRU5BQkxFRChDT05GSUdfSVBWNikKKwlobGlzdF9kZWxfaW5pdF9y Y3UoJmdlbmV2ZS0+aGxpc3Q2LmhsaXN0KTsKKyNlbmRpZgogCWdlbmV2ZV9zb2NrX3JlbGVhc2Uo Z2VuZXZlKTsKIAlyZXR1cm4gMDsKIH0KLS0gCjIuMTMuMAoKCkZyb20gYTIzY2Y1ZjliMThlNzFm MWVjYTRmYTA0MGE4YWU0NTk2NTgwZGI0OCBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJvbTog QWxiYW4gQnJvd2FleXMgPGFsYmFuLmJyb3dhZXlzQGdtYWlsLmNvbT4KRGF0ZTogTW9uLCAzIEp1 bCAyMDE3IDAzOjIwOjEzICswMjAwClN1YmplY3Q6IFtQQVRDSCAyMC8zMF0gbmV0OiBjb3JlOiBG aXggc2xhYi1vdXQtb2YtYm91bmRzIGluCiBuZXRkZXZfc3RhdHNfdG9fc3RhdHM2NAoKWyBVcHN0 cmVhbSBjb21taXQgOWFmOTk1OWUxNDJjMjc0ZjRhMzBmZWZiNzFkOTdkMmIwMjhiMzM3ZiBdCgpj b21taXQgOTI1NjY0NWFmMDk4ICgibmV0L2NvcmU6IHJlbGF4IEJVSUxEX0JVR19PTiBpbgpuZXRk ZXZfc3RhdHNfdG9fc3RhdHM2NCIpIG1hZGUgYW4gYXR0ZW1wdCB0byByZWFkIGJleW9uZAp0aGUg c2l6ZSBvZiB0aGUgc291cmNlIGEgcG9zc2liaWxpdHkuCgpGaXggdG8gb25seSBjb3B5IHNyYyBz aXplIHRvIGRlc3QuIEFzIGRlc3QgbWlnaHQgYmUgYmlnZ2VyIHRoYW4gc3JjLgoKID09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PQogQlVHOiBLQVNBTjogc2xhYi1vdXQtb2YtYm91bmRzIGluIG5ldGRldl9zdGF0c190b19zdGF0 czY0KzB4ZS8weDMwIGF0IGFkZHIgZmZmZjg4MDFiZTI0OGIyMAogUmVhZCBvZiBzaXplIDE5MiBi eSB0YXNrIFZCb3hOZXRBZHBDdGwvNjczNAogQ1BVOiAxIFBJRDogNjczNCBDb21tOiBWQm94TmV0 QWRwQ3RsIFRhaW50ZWQ6IEcgICAgICAgICAgIE8gICAgNC4xMS40cHJhaGFsK2ludGVsKyAjMTE4 CiBIYXJkd2FyZSBuYW1lOiBMRU5PVk8gMjBDRENUTzFXVy8yMENEQ1RPMVdXLCBCSU9TIEdRRVQ1 MldXICgxLjMyICkgMDUvMDQvMjAxNwogQ2FsbCBUcmFjZToKICBkdW1wX3N0YWNrKzB4NjMvMHg4 NgogIGthc2FuX29iamVjdF9lcnIrMHgxYy8weDcwCiAga2FzYW5fcmVwb3J0KzB4MjcwLzB4NTIw CiAgPyBuZXRkZXZfc3RhdHNfdG9fc3RhdHM2NCsweGUvMHgzMAogID8gc2NoZWRfY2xvY2tfY3B1 KzB4MWIvMHgxOTAKICA/IF9fbW9kdWxlX2FkZHJlc3MrMHgzZS8weDNiMAogID8gdW53aW5kX25l eHRfZnJhbWUrMHgxZWEvMHhiMDAKICBjaGVja19tZW1vcnlfcmVnaW9uKzB4MTNjLzB4MWEwCiAg bWVtY3B5KzB4MjMvMHg1MAogIG5ldGRldl9zdGF0c190b19zdGF0czY0KzB4ZS8weDMwCiAgZGV2 X2dldF9zdGF0cysweDFiOS8weDIzMAogIHJ0bmxfZmlsbF9zdGF0cysweDQ0LzB4YzAwCiAgPyBu bGFfcHV0KzB4YzYvMHgxMzAKICBydG5sX2ZpbGxfaWZpbmZvKzB4ZTllLzB4MzcwMAogID8gcnRu bF9maWxsX3ZmaW5mbysweGRlMC8weGRlMAogID8gc2NoZWRfY2xvY2srMHg5LzB4MTAKICA/IHNj aGVkX2Nsb2NrKzB4OS8weDEwCiAgPyBzY2hlZF9jbG9ja19sb2NhbCsweDEyMC8weDEzMAogID8g X19tb2R1bGVfYWRkcmVzcysweDNlLzB4M2IwCiAgPyB1bndpbmRfbmV4dF9mcmFtZSsweDFlYS8w eGIwMAogID8gc2NoZWRfY2xvY2srMHg5LzB4MTAKICA/IHNjaGVkX2Nsb2NrKzB4OS8weDEwCiAg PyBzY2hlZF9jbG9ja19jcHUrMHgxYi8weDE5MAogID8gVkJveE5ldEFkcExpbnV4SU9DdGxVbmxv Y2tlZCsweDE0Yi8weDI4MCBbdmJveG5ldGFkcF0KICA/IGRlcG90X3NhdmVfc3RhY2srMHgxZDgv MHg0YTAKICA/IGRlcG90X3NhdmVfc3RhY2srMHgzNGYvMHg0YTAKICA/IGRlcG90X3NhdmVfc3Rh Y2srMHgzNGYvMHg0YTAKICA/IHNhdmVfc3RhY2srMHhiMS8weGQwCiAgPyBzYXZlX3N0YWNrX3Ry YWNlKzB4MTYvMHgyMAogID8gc2F2ZV9zdGFjaysweDQ2LzB4ZDAKICA/IGthc2FuX3NsYWJfYWxs b2MrMHgxMi8weDIwCiAgPyBfX2ttYWxsb2Nfbm9kZV90cmFja19jYWxsZXIrMHgxMGQvMHgzNTAK ICA/IF9fa21hbGxvY19yZXNlcnZlLmlzcmEuMzYrMHgyYy8weGMwCiAgPyBfX2FsbG9jX3NrYisw eGQwLzB4NTYwCiAgPyBydG1zZ19pZmluZm9fYnVpbGRfc2tiKzB4NjEvMHgxMjAKICA/IHJ0bXNn X2lmaW5mby5wYXJ0LjI1KzB4MTYvMHhiMAogID8gcnRtc2dfaWZpbmZvKzB4NDcvMHg3MAogID8g cmVnaXN0ZXJfbmV0ZGV2KzB4MTUvMHgzMAogID8gdmJveE5ldEFkcE9zQ3JlYXRlKzB4YzAvMHgx YzAgW3Zib3huZXRhZHBdCiAgPyB2Ym94TmV0QWRwQ3JlYXRlKzB4MjEwLzB4NDAwIFt2Ym94bmV0 YWRwXQogID8gVkJveE5ldEFkcExpbnV4SU9DdGxVbmxvY2tlZCsweDE0Yi8weDI4MCBbdmJveG5l dGFkcF0KICA/IGRvX3Zmc19pb2N0bCsweDE3Zi8weGZmMAogID8gU3lTX2lvY3RsKzB4NzQvMHg4 MAogID8gZG9fc3lzY2FsbF82NCsweDE4Mi8weDM5MAogID8gX19hbGxvY19za2IrMHhkMC8weDU2 MAogID8gX19hbGxvY19za2IrMHhkMC8weDU2MAogID8gc2F2ZV9zdGFja190cmFjZSsweDE2LzB4 MjAKICA/IGluaXRfb2JqZWN0KzB4NjQvMHhhMAogID8gX19fc2xhYl9hbGxvYysweDFhZS8weDVj MAogID8gX19fc2xhYl9hbGxvYysweDFhZS8weDVjMAogID8gX19hbGxvY19za2IrMHhkMC8weDU2 MAogID8gc2NoZWRfY2xvY2srMHg5LzB4MTAKICA/IGthc2FuX3VucG9pc29uX3NoYWRvdysweDM1 LzB4NTAKICA/IGthc2FuX2ttYWxsb2MrMHhhZC8weGUwCiAgPyBfX2ttYWxsb2Nfbm9kZV90cmFj a19jYWxsZXIrMHgyNDYvMHgzNTAKICA/IF9fYWxsb2Nfc2tiKzB4ZDAvMHg1NjAKICA/IGthc2Fu X3VucG9pc29uX3NoYWRvdysweDM1LzB4NTAKICA/IG1lbXNldCsweDMxLzB4NDAKICA/IF9fYWxs b2Nfc2tiKzB4MzFmLzB4NTYwCiAgPyBuYXBpX2NvbnN1bWVfc2tiKzB4MzIwLzB4MzIwCiAgPyBi cl9nZXRfbGlua19hZl9zaXplX2ZpbHRlcmVkKzB4YjcvMHgxMjAgW2JyaWRnZV0KICA/IGlmX25s bXNnX3NpemUrMHg0NDAvMHg2MzAKICBydG1zZ19pZmluZm9fYnVpbGRfc2tiKzB4ODMvMHgxMjAK ICBydG1zZ19pZmluZm8ucGFydC4yNSsweDE2LzB4YjAKICBydG1zZ19pZmluZm8rMHg0Ny8weDcw CiAgcmVnaXN0ZXJfbmV0ZGV2aWNlKzB4YTJiLzB4ZTUwCiAgPyBfX2ttYWxsb2MrMHgxNzEvMHgy ZDAKICA/IG5ldGRldl9jaGFuZ2VfZmVhdHVyZXMrMHg4MC8weDgwCiAgcmVnaXN0ZXJfbmV0ZGV2 KzB4MTUvMHgzMAogIHZib3hOZXRBZHBPc0NyZWF0ZSsweGMwLzB4MWMwIFt2Ym94bmV0YWRwXQog IHZib3hOZXRBZHBDcmVhdGUrMHgyMTAvMHg0MDAgW3Zib3huZXRhZHBdCiAgPyB2Ym94TmV0QWRw Q29tcG9zZU1BQ0FkZHJlc3MrMHgxZDAvMHgxZDAgW3Zib3huZXRhZHBdCiAgPyBrYXNhbl9jaGVj a193cml0ZSsweDE0LzB4MjAKICBWQm94TmV0QWRwTGludXhJT0N0bFVubG9ja2VkKzB4MTRiLzB4 MjgwIFt2Ym94bmV0YWRwXQogID8gVkJveE5ldEFkcExpbnV4T3BlbisweDIwLzB4MjAgW3Zib3hu ZXRhZHBdCiAgPyBsb2NrX2FjcXVpcmUrMHgxMWMvMHgyNzAKICA/IF9fYXVkaXRfc3lzY2FsbF9l bnRyeSsweDJmYi8weDY2MAogIGRvX3Zmc19pb2N0bCsweDE3Zi8weGZmMAogID8gX19hdWRpdF9z eXNjYWxsX2VudHJ5KzB4MmZiLzB4NjYwCiAgPyBpb2N0bF9wcmVhbGxvY2F0ZSsweDFkMC8weDFk MAogID8gX19hdWRpdF9zeXNjYWxsX2VudHJ5KzB4MmZiLzB4NjYwCiAgPyBrbWVtX2NhY2hlX2Zy ZWUrMHhiMi8weDI1MAogID8gc3lzY2FsbF90cmFjZV9lbnRlcisweDUzNy8weGQwMAogID8gZXhp dF90b191c2VybW9kZV9sb29wKzB4MTAwLzB4MTAwCiAgU3lTX2lvY3RsKzB4NzQvMHg4MAogID8g ZG9fc3lzX29wZW4rMHgzNTAvMHgzNTAKICA/IGRvX3Zmc19pb2N0bCsweGZmMC8weGZmMAogIGRv X3N5c2NhbGxfNjQrMHgxODIvMHgzOTAKICBlbnRyeV9TWVNDQUxMNjRfc2xvd19wYXRoKzB4MjUv MHgyNQogUklQOiAwMDMzOjB4N2Y3ZTM5YTFhZTA3CiBSU1A6IDAwMmI6MDAwMDdmZmM2ZjA0YzZk OCBFRkxBR1M6IDAwMDAwMjA2IE9SSUdfUkFYOiAwMDAwMDAwMDAwMDAwMDEwCiBSQVg6IGZmZmZm ZmZmZmZmZmZmZGEgUkJYOiAwMDAwN2ZmYzZmMDRjNzMwIFJDWDogMDAwMDdmN2UzOWExYWUwNwog UkRYOiAwMDAwN2ZmYzZmMDRjNzMwIFJTSTogMDAwMDAwMDBjMDIwNzYwMSBSREk6IDAwMDAwMDAw MDAwMDAwMDcKIFJCUDogMDAwMDdmZmM2ZjA0YzcwMCBSMDg6IDAwMDA3ZmZjNmYwNGM3ODAgUjA5 OiAwMDAwMDAwMDAwMDAwMDA4CiBSMTA6IDAwMDAwMDAwMDAwMDA1NDEgUjExOiAwMDAwMDAwMDAw MDAwMjA2IFIxMjogMDAwMDAwMDAwMDAwMDAwNwogUjEzOiAwMDAwMDAwMGMwMjA3NjAxIFIxNDog MDAwMDdmZmM2ZjA0YzczMCBSMTU6IDAwMDAwMDAwMDAwMDAwMTIKIE9iamVjdCBhdCBmZmZmODgw MWJlMjQ4MDA4LCBpbiBjYWNoZSBrbWFsbG9jLTQwOTYgc2l6ZTogNDA5NgogQWxsb2NhdGVkOgog UElEID0gNjczNAogIHNhdmVfc3RhY2tfdHJhY2UrMHgxNi8weDIwCiAgc2F2ZV9zdGFjaysweDQ2 LzB4ZDAKICBrYXNhbl9rbWFsbG9jKzB4YWQvMHhlMAogIF9fa21hbGxvYysweDE3MS8weDJkMAog IGFsbG9jX25ldGRldl9tcXMrMHg4YTcvMHhiZTAKICB2Ym94TmV0QWRwT3NDcmVhdGUrMHg2NS8w eDFjMCBbdmJveG5ldGFkcF0KICB2Ym94TmV0QWRwQ3JlYXRlKzB4MjEwLzB4NDAwIFt2Ym94bmV0 YWRwXQogIFZCb3hOZXRBZHBMaW51eElPQ3RsVW5sb2NrZWQrMHgxNGIvMHgyODAgW3Zib3huZXRh ZHBdCiAgZG9fdmZzX2lvY3RsKzB4MTdmLzB4ZmYwCiAgU3lTX2lvY3RsKzB4NzQvMHg4MAogIGRv X3N5c2NhbGxfNjQrMHgxODIvMHgzOTAKICByZXR1cm5fZnJvbV9TWVNDQUxMXzY0KzB4MC8weDZh CiBGcmVlZDoKIFBJRCA9IDU2MDAKICBzYXZlX3N0YWNrX3RyYWNlKzB4MTYvMHgyMAogIHNhdmVf c3RhY2srMHg0Ni8weGQwCiAga2FzYW5fc2xhYl9mcmVlKzB4NzMvMHhjMAogIGtmcmVlKzB4ZTQv MHgyMjAKICBrdmZyZWUrMHgyNS8weDMwCiAgc2luZ2xlX3JlbGVhc2UrMHg3NC8weGIwCiAgX19m cHV0KzB4MjY1LzB4NmIwCiAgX19fX2ZwdXQrMHg5LzB4MTAKICB0YXNrX3dvcmtfcnVuKzB4ZDUv MHgxNTAKICBleGl0X3RvX3VzZXJtb2RlX2xvb3ArMHhlMi8weDEwMAogIGRvX3N5c2NhbGxfNjQr MHgyNmMvMHgzOTAKICByZXR1cm5fZnJvbV9TWVNDQUxMXzY0KzB4MC8weDZhCiBNZW1vcnkgc3Rh dGUgYXJvdW5kIHRoZSBidWdneSBhZGRyZXNzOgogIGZmZmY4ODAxYmUyNDhhODA6IDAwIDAwIDAw IDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwCiAgZmZmZjg4MDFiZTI0OGIw MDogMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAKID5mZmZm ODgwMWJlMjQ4YjgwOiAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwNyBmYyBmYyBm YyBmYwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IF4KICBmZmZmODgwMWJlMjQ4YzAwOiBmYyBmYyBmYyBmYyBmYyBmYyBmYyBmYyBmYyBmYyBmYyBm YyBmYyBmYyBmYyBmYwogIGZmZmY4ODAxYmUyNDhjODA6IGZjIGZjIGZjIGZjIGZjIGZjIGZjIGZj IGZjIGZjIGZjIGZjIGZjIGZjIGZjIGZjCiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KClNpZ25lZC1vZmYtYnk6IEFsYmFu IEJyb3dhZXlzIDxhbGJhbi5icm93YWV5c0BnbWFpbC5jb20+ClNpZ25lZC1vZmYtYnk6IERhdmlk IFMuIE1pbGxlciA8ZGF2ZW1AZGF2ZW1sb2Z0Lm5ldD4KLS0tCiBuZXQvY29yZS9kZXYuYyB8IDIg Ky0KIDEgZmlsZSBjaGFuZ2VkLCAxIGluc2VydGlvbigrKSwgMSBkZWxldGlvbigtKQoKZGlmZiAt LWdpdCBhL25ldC9jb3JlL2Rldi5jIGIvbmV0L2NvcmUvZGV2LmMKaW5kZXggMWY2NjRlNTQwOTZj Li44NGQyN2QzMTQ1ZjkgMTAwNjQ0Ci0tLSBhL25ldC9jb3JlL2Rldi5jCisrKyBiL25ldC9jb3Jl L2Rldi5jCkBAIC03NTkxLDcgKzc1OTEsNyBAQCB2b2lkIG5ldGRldl9zdGF0c190b19zdGF0czY0 KHN0cnVjdCBydG5sX2xpbmtfc3RhdHM2NCAqc3RhdHM2NCwKIHsKICNpZiBCSVRTX1BFUl9MT05H ID09IDY0CiAJQlVJTERfQlVHX09OKHNpemVvZigqc3RhdHM2NCkgPCBzaXplb2YoKm5ldGRldl9z dGF0cykpOwotCW1lbWNweShzdGF0czY0LCBuZXRkZXZfc3RhdHMsIHNpemVvZigqc3RhdHM2NCkp OworCW1lbWNweShzdGF0czY0LCBuZXRkZXZfc3RhdHMsIHNpemVvZigqbmV0ZGV2X3N0YXRzKSk7 CiAJLyogemVybyBvdXQgY291bnRlcnMgdGhhdCBvbmx5IGV4aXN0IGluIHJ0bmxfbGlua19zdGF0 czY0ICovCiAJbWVtc2V0KChjaGFyICopc3RhdHM2NCArIHNpemVvZigqbmV0ZGV2X3N0YXRzKSwg MCwKIAkgICAgICAgc2l6ZW9mKCpzdGF0czY0KSAtIHNpemVvZigqbmV0ZGV2X3N0YXRzKSk7Ci0t IAoyLjEzLjAKCgpGcm9tIGM1YzczYjc4MjhkMDEwMTE4MzVlNWJjOTMzMTcxZjZkODJlMjhlYjcg TW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCkZyb206IERlcmVrIENoaWNrbGVzIDxkZXJlay5jaGlj a2xlc0BjYXZpdW0uY29tPgpEYXRlOiBXZWQsIDUgSnVsIDIwMTcgMTE6NTk6MjcgLTA3MDAKU3Vi amVjdDogW1BBVENIIDIxLzMwXSBsaXF1aWRpbzogZml4IGJ1ZyBpbiBzb2Z0IHJlc2V0IGZhaWx1 cmUgZGV0ZWN0aW9uCgpbIFVwc3RyZWFtIGNvbW1pdCAwNWE2YjRjYWU4YzBjYzE2ODBjOWRkMzNh OTdhNDlhMTNjMGYwMWJjIF0KClRoZSBjb2RlIHRoYXQgZGV0ZWN0cyBhIGZhaWxlZCBzb2Z0IHJl c2V0IG9mIE9jdGVvbiBpcyBjb21wYXJpbmcgdGhlIHdyb25nCnZhbHVlIGFnYWluc3QgdGhlIHJl c2V0IHZhbHVlIG9mIHRoZSBPY3Rlb24gU0xJX1NDUkFUQ0hfMSByZWdpc3RlciwKcmVzdWx0aW5n IGluIGFuIGluYWJpbGl0eSB0byBkZXRlY3QgYSBzb2Z0IHJlc2V0IGZhaWx1cmUuICBGaXggaXQg YnkgdXNpbmcKdGhlIGNvcnJlY3QgdmFsdWUgaW4gdGhlIGNvbXBhcmlzb24sIHdoaWNoIGlzIGFu eSBub24temVybyB2YWx1ZS4KCkZpeGVzOiBmMjFmYjNlZDM2NGIgKCJBZGQgc3VwcG9ydCBvZiBD YXZpdW0gTGlxdWlkaW8gZXRoZXJuZXQgYWRhcHRlcnMiKQpGaXhlczogYzBlYWI1YjM1ODBhICgi bGlxdWlkaW86IENOMjNYWCBmaXJtd2FyZSBkb3dubG9hZCIpClNpZ25lZC1vZmYtYnk6IERlcmVr IENoaWNrbGVzIDxkZXJlay5jaGlja2xlc0BjYXZpdW0uY29tPgpTaWduZWQtb2ZmLWJ5OiBTYXRh bmFuZCBCdXJsYSA8c2F0YW5hbmRhLmJ1cmxhQGNhdml1bS5jb20+ClNpZ25lZC1vZmYtYnk6IFJh Z2h1IFZhdHNhdmF5aSA8cmFnaHUudmF0c2F2YXlpQGNhdml1bS5jb20+ClNpZ25lZC1vZmYtYnk6 IEZlbGl4IE1hbmx1bmFzIDxmZWxpeC5tYW5sdW5hc0BjYXZpdW0uY29tPgpSZXZpZXdlZC1ieTog TGVvbiBSb21hbm92c2t5IDxsZW9ucm9AbWVsbGFub3guY29tPgpTaWduZWQtb2ZmLWJ5OiBEYXZp ZCBTLiBNaWxsZXIgPGRhdmVtQGRhdmVtbG9mdC5uZXQ+Ci0tLQogZHJpdmVycy9uZXQvZXRoZXJu ZXQvY2F2aXVtL2xpcXVpZGlvL2NuMjN4eF9wZl9kZXZpY2UuYyB8IDIgKy0KIGRyaXZlcnMvbmV0 L2V0aGVybmV0L2Nhdml1bS9saXF1aWRpby9jbjY2eHhfZGV2aWNlLmMgICAgfCAyICstCiAyIGZp bGVzIGNoYW5nZWQsIDIgaW5zZXJ0aW9ucygrKSwgMiBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQg YS9kcml2ZXJzL25ldC9ldGhlcm5ldC9jYXZpdW0vbGlxdWlkaW8vY24yM3h4X3BmX2RldmljZS5j IGIvZHJpdmVycy9uZXQvZXRoZXJuZXQvY2F2aXVtL2xpcXVpZGlvL2NuMjN4eF9wZl9kZXZpY2Uu YwppbmRleCA5NjJkY2JjZWY4YjUuLjBkY2RhMGI5YjBjYyAxMDA2NDQKLS0tIGEvZHJpdmVycy9u ZXQvZXRoZXJuZXQvY2F2aXVtL2xpcXVpZGlvL2NuMjN4eF9wZl9kZXZpY2UuYworKysgYi9kcml2 ZXJzL25ldC9ldGhlcm5ldC9jYXZpdW0vbGlxdWlkaW8vY24yM3h4X3BmX2RldmljZS5jCkBAIC0y MjEsNyArMjIxLDcgQEAgc3RhdGljIGludCBjbjIzeHhfcGZfc29mdF9yZXNldChzdHJ1Y3Qgb2N0 ZW9uX2RldmljZSAqb2N0KQogCS8qIFdhaXQgZm9yIDEwMG1zIGFzIE9jdGVvbiByZXNldHMuICov CiAJbWRlbGF5KDEwMCk7CiAKLQlpZiAob2N0ZW9uX3JlYWRfY3NyNjQob2N0LCBDTjIzWFhfU0xJ X1NDUkFUQ0gxKSA9PSAweDEyMzRVTEwpIHsKKwlpZiAob2N0ZW9uX3JlYWRfY3NyNjQob2N0LCBD TjIzWFhfU0xJX1NDUkFUQ0gxKSkgewogCQlkZXZfZXJyKCZvY3QtPnBjaV9kZXYtPmRldiwgIk9D VEVPTlslZF06IFNvZnQgcmVzZXQgZmFpbGVkXG4iLAogCQkJb2N0LT5vY3Rlb25faWQpOwogCQly ZXR1cm4gMTsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L2V0aGVybmV0L2Nhdml1bS9saXF1aWRp by9jbjY2eHhfZGV2aWNlLmMgYi9kcml2ZXJzL25ldC9ldGhlcm5ldC9jYXZpdW0vbGlxdWlkaW8v Y242Nnh4X2RldmljZS5jCmluZGV4IGJkZWMwNTExMDdhNi4uZDYyYTUwOTY3NjhlIDEwMDY0NAot LS0gYS9kcml2ZXJzL25ldC9ldGhlcm5ldC9jYXZpdW0vbGlxdWlkaW8vY242Nnh4X2RldmljZS5j CisrKyBiL2RyaXZlcnMvbmV0L2V0aGVybmV0L2Nhdml1bS9saXF1aWRpby9jbjY2eHhfZGV2aWNl LmMKQEAgLTQ0LDcgKzQ0LDcgQEAgaW50IGxpb19jbjZ4eHhfc29mdF9yZXNldChzdHJ1Y3Qgb2N0 ZW9uX2RldmljZSAqb2N0KQogCS8qIFdhaXQgZm9yIDEwbXMgYXMgT2N0ZW9uIHJlc2V0cy4gKi8K IAltZGVsYXkoMTAwKTsKIAotCWlmIChvY3Rlb25fcmVhZF9jc3I2NChvY3QsIENONlhYWF9TTElf U0NSQVRDSDEpID09IDB4MTIzNFVMTCkgeworCWlmIChvY3Rlb25fcmVhZF9jc3I2NChvY3QsIENO NlhYWF9TTElfU0NSQVRDSDEpKSB7CiAJCWRldl9lcnIoJm9jdC0+cGNpX2Rldi0+ZGV2LCAiU29m dCByZXNldCBmYWlsZWRcbiIpOwogCQlyZXR1cm4gMTsKIAl9Ci0tIAoyLjEzLjAKCgpGcm9tIGFk YjNjOTkwMDMyOTA1OTRlOTZkMGFkZDdmNjBlY2VhMzQwMTk1MjMgTW9uIFNlcCAxNyAwMDowMDow MCAyMDAxCkZyb206IERhdmlkIEFoZXJuIDxkc2FoZXJuQGdtYWlsLmNvbT4KRGF0ZTogV2VkLCA1 IEp1bCAyMDE3IDE0OjQxOjQ2IC0wNjAwClN1YmplY3Q6IFtQQVRDSCAyMi8zMF0gbmV0OiBpcHY2 OiBDb21wYXJlIGx3c3RhdGUgaW4gZGV0ZWN0aW5nIGR1cGxpY2F0ZQogbmV4dGhvcHMKTUlNRS1W ZXJzaW9uOiAxLjAKQ29udGVudC1UeXBlOiB0ZXh0L3BsYWluOyBjaGFyc2V0PVVURi04CkNvbnRl bnQtVHJhbnNmZXItRW5jb2Rpbmc6IDhiaXQKClsgVXBzdHJlYW0gY29tbWl0IGYwNmI3NTQ5Yjc5 ZTI5YTY3MjMzNmQ0ZTEzNDUyNDM3M2ZiN2EyMzIgXQoKTGVubmVydCByZXBvcnRlZCBhIGZhaWx1 cmUgdG8gYWRkIGRpZmZlcmVudCBtcGxzIGVuY2FwcyBpbiBhIG11bHRpcGF0aApyb3V0ZToKCiAg JCBpcCAtNiByb3V0ZSBhZGQgMTIzNDo6LzE2IFwKICAgICAgICBuZXh0aG9wIGVuY2FwIG1wbHMg MTAgdmlhIGZlODA6OjEgZGV2IGVuczMgXAogICAgICAgIG5leHRob3AgZW5jYXAgbXBscyAyMCB2 aWEgZmU4MDo6MSBkZXYgZW5zMwogIFJUTkVUTElOSyBhbnN3ZXJzOiBGaWxlIGV4aXN0cwoKVGhl IHByb2JsZW0gaXMgdGhhdCB0aGUgZHVwbGljYXRlIG5leHRob3AgZGV0ZWN0aW9uIGRvZXMgbm90 IGNvbXBhcmUKbHd0dW5uZWwgY29uZmlndXJhdGlvbi4gQWRkIGl0LgoKRml4ZXM6IDE5ZTQyZTQ1 MTUwNiAoImlwdjY6IHN1cHBvcnQgZm9yIGZpYiByb3V0ZSBsd3R1bm5lbCBlbmNhcCBhdHRyaWJ1 dGVzIikKU2lnbmVkLW9mZi1ieTogRGF2aWQgQWhlcm4gPGRzYWhlcm5AZ21haWwuY29tPgpSZXBv cnRlZC1ieTogSm/Do28gVGF2ZWlyYSBBcmHDumpvIDxqb2FvLnRhdmVpcmFAZ21haWwuY29tPgpS ZXBvcnRlZC1ieTogTGVubmVydCBCdXl0ZW5oZWsgPGJ1eXRlbmhAd2FudHN0b2ZseS5vcmc+CkFj a2VkLWJ5OiBSb29wYSBQcmFiaHUgPHJvb3BhQGN1bXVsdXNuZXR3b3Jrcy5jb20+ClRlc3RlZC1i eTogTGVubmVydCBCdXl0ZW5oZWsgPGJ1eXRlbmhAd2FudHN0b2ZseS5vcmc+ClNpZ25lZC1vZmYt Ynk6IERhdmlkIFMuIE1pbGxlciA8ZGF2ZW1AZGF2ZW1sb2Z0Lm5ldD4KLS0tCiBpbmNsdWRlL25l dC9pcDZfcm91dGUuaCB8IDggKysrKysrKysKIG5ldC9pcHY2L2lwNl9maWIuYyAgICAgIHwgNSAr LS0tLQogbmV0L2lwdjYvcm91dGUuYyAgICAgICAgfCA4ICstLS0tLS0tCiAzIGZpbGVzIGNoYW5n ZWQsIDEwIGluc2VydGlvbnMoKyksIDExIGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL2luY2x1 ZGUvbmV0L2lwNl9yb3V0ZS5oIGIvaW5jbHVkZS9uZXQvaXA2X3JvdXRlLmgKaW5kZXggZjVlNjI1 ZjUzMzY3Li40MzQxNzMxZjM5YTUgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUvbmV0L2lwNl9yb3V0ZS5o CisrKyBiL2luY2x1ZGUvbmV0L2lwNl9yb3V0ZS5oCkBAIC0yMiw2ICsyMiw3IEBAIHN0cnVjdCBy b3V0ZV9pbmZvIHsKICNpbmNsdWRlIDxuZXQvZmxvdy5oPgogI2luY2x1ZGUgPG5ldC9pcDZfZmli Lmg+CiAjaW5jbHVkZSA8bmV0L3NvY2suaD4KKyNpbmNsdWRlIDxuZXQvbHd0dW5uZWwuaD4KICNp bmNsdWRlIDxsaW51eC9pcC5oPgogI2luY2x1ZGUgPGxpbnV4L2lwdjYuaD4KICNpbmNsdWRlIDxs aW51eC9yb3V0ZS5oPgpAQCAtMjMzLDQgKzIzNCwxMSBAQCBzdGF0aWMgaW5saW5lIHN0cnVjdCBp bjZfYWRkciAqcnQ2X25leHRob3Aoc3RydWN0IHJ0Nl9pbmZvICpydCwKIAkJcmV0dXJuIGRhZGRy OwogfQogCitzdGF0aWMgaW5saW5lIGJvb2wgcnQ2X2R1cGxpY2F0ZV9uZXh0aG9wKHN0cnVjdCBy dDZfaW5mbyAqYSwgc3RydWN0IHJ0Nl9pbmZvICpiKQoreworCXJldHVybiBhLT5kc3QuZGV2ID09 IGItPmRzdC5kZXYgJiYKKwkgICAgICAgYS0+cnQ2aV9pZGV2ID09IGItPnJ0NmlfaWRldiAmJgor CSAgICAgICBpcHY2X2FkZHJfZXF1YWwoJmEtPnJ0NmlfZ2F0ZXdheSwgJmItPnJ0NmlfZ2F0ZXdh eSkgJiYKKwkgICAgICAgIWx3dHVubmVsX2NtcF9lbmNhcChhLT5kc3QubHd0c3RhdGUsIGItPmRz dC5sd3RzdGF0ZSk7Cit9CiAjZW5kaWYKZGlmZiAtLWdpdCBhL25ldC9pcHY2L2lwNl9maWIuYyBi L25ldC9pcHY2L2lwNl9maWIuYwppbmRleCBlNmI3OGJhMGU2MzYuLmU0ZTlmNzUyZWJiZiAxMDA2 NDQKLS0tIGEvbmV0L2lwdjYvaXA2X2ZpYi5jCisrKyBiL25ldC9pcHY2L2lwNl9maWIuYwpAQCAt Nzg0LDEwICs3ODQsNyBAQCBzdGF0aWMgaW50IGZpYjZfYWRkX3J0Mm5vZGUoc3RydWN0IGZpYjZf bm9kZSAqZm4sIHN0cnVjdCBydDZfaW5mbyAqcnQsCiAJCQkJZ290byBuZXh0X2l0ZXI7CiAJCQl9 CiAKLQkJCWlmIChpdGVyLT5kc3QuZGV2ID09IHJ0LT5kc3QuZGV2ICYmCi0JCQkgICAgaXRlci0+ cnQ2aV9pZGV2ID09IHJ0LT5ydDZpX2lkZXYgJiYKLQkJCSAgICBpcHY2X2FkZHJfZXF1YWwoJml0 ZXItPnJ0NmlfZ2F0ZXdheSwKLQkJCQkJICAgICZydC0+cnQ2aV9nYXRld2F5KSkgeworCQkJaWYg KHJ0Nl9kdXBsaWNhdGVfbmV4dGhvcChpdGVyLCBydCkpIHsKIAkJCQlpZiAocnQtPnJ0NmlfbnNp YmxpbmdzKQogCQkJCQlydC0+cnQ2aV9uc2libGluZ3MgPSAwOwogCQkJCWlmICghKGl0ZXItPnJ0 NmlfZmxhZ3MgJiBSVEZfRVhQSVJFUykpCmRpZmYgLS1naXQgYS9uZXQvaXB2Ni9yb3V0ZS5jIGIv bmV0L2lwdjYvcm91dGUuYwppbmRleCAxMDcyZmMxODk3MDguLjc4YTU0ZWVkZjczOSAxMDA2NDQK LS0tIGEvbmV0L2lwdjYvcm91dGUuYworKysgYi9uZXQvaXB2Ni9yb3V0ZS5jCkBAIC0zMDQ3LDE3 ICszMDQ3LDExIEBAIHN0YXRpYyBpbnQgaXA2X3JvdXRlX2luZm9fYXBwZW5kKHN0cnVjdCBsaXN0 X2hlYWQgKnJ0Nl9uaF9saXN0LAogCQkJCSBzdHJ1Y3QgcnQ2X2luZm8gKnJ0LCBzdHJ1Y3QgZmli Nl9jb25maWcgKnJfY2ZnKQogewogCXN0cnVjdCBydDZfbmggKm5oOwotCXN0cnVjdCBydDZfaW5m byAqcnRuaDsKIAlpbnQgZXJyID0gLUVFWElTVDsKIAogCWxpc3RfZm9yX2VhY2hfZW50cnkobmgs IHJ0Nl9uaF9saXN0LCBuZXh0KSB7CiAJCS8qIGNoZWNrIGlmIHJ0Nl9pbmZvIGFscmVhZHkgZXhp c3RzICovCi0JCXJ0bmggPSBuaC0+cnQ2X2luZm87Ci0KLQkJaWYgKHJ0bmgtPmRzdC5kZXYgPT0g cnQtPmRzdC5kZXYgJiYKLQkJICAgIHJ0bmgtPnJ0NmlfaWRldiA9PSBydC0+cnQ2aV9pZGV2ICYm Ci0JCSAgICBpcHY2X2FkZHJfZXF1YWwoJnJ0bmgtPnJ0NmlfZ2F0ZXdheSwKLQkJCQkgICAgJnJ0 LT5ydDZpX2dhdGV3YXkpKQorCQlpZiAocnQ2X2R1cGxpY2F0ZV9uZXh0aG9wKG5oLT5ydDZfaW5m bywgcnQpKQogCQkJcmV0dXJuIGVycjsKIAl9CiAKLS0gCjIuMTMuMAoKCkZyb20gY2NhZDFlMzRj NzU4Y2NjZWNiYzUwMGYxYWU4MGFjZGVjMDdiNDA4ZCBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEK RnJvbTogTmlrb2xheSBBbGVrc2FuZHJvdiA8bmlrb2xheUBjdW11bHVzbmV0d29ya3MuY29tPgpE YXRlOiBUaHUsIDYgSnVsIDIwMTcgMTU6MjQ6NDAgKzAzMDAKU3ViamVjdDogW1BBVENIIDIzLzMw XSB2cmY6IGZpeCBidWdfb24gdHJpZ2dlcmVkIGJ5IHJ4IHdoZW4gZGVzdHJveWluZyBhIHZyZgoK WyBVcHN0cmVhbSBjb21taXQgZjYzMGMzOGVmMGQ3ODUxMDEzNjNhODk5MmJiZDRmMzAyMTgwZjg2 ZiBdCgpXaGVuIGRlc3Ryb3lpbmcgYSBWUkYgZGV2aWNlIHdlIGNsZWFudXAgdGhlIHNsYXZlcyBp biBpdHMgbmRvX3VuaW5pdCgpCmZ1bmN0aW9uLCBidXQgdGhhdCBjYXVzZXMgcGFja2V0cyB0byBi ZSBzd2l0Y2hlZCAoc2tiLT5kZXYgPT0gdnJmIGJlaW5nCmRlc3Ryb3llZCkgZXZlbiB0aG91Z2gg d2UncmUgcGFzcyB0aGUgcG9pbnQgd2hlcmUgdGhlIFZSRiBzaG91bGQgYmUKcmVjZWl2aW5nIGFu eSBwYWNrZXRzIHdoaWxlIGl0IGlzIGJlaW5nIGRpc21hbnRsZWQuIFRoaXMgY2F1c2VzIGEgQlVH X09OCnRvIHRyaWdnZXIgaWYgd2UgaGF2ZSByYXcgc29ja2V0cyAodHJhY2UgYmVsb3cpLgpUaGUg cmVhc29uIGlzIHRoYXQgdGhlIGluZXRkZXYgb2YgdGhlIFZSRiBoYXMgYmVlbiBkZXN0cm95ZWQg YnV0IHdlJ3JlCnN0aWxsIHNlbmRpbmcgcGFja2V0cyB1cCB0aGUgc3RhY2sgd2l0aCBpdCwgc28g bGV0J3MgZnJlZSB0aGUgc2xhdmVzIGluCnRoZSBkZWxsaW5rIGNhbGxiYWNrIGFzIERhdmlkIEFo ZXJuIHN1Z2dlc3RlZC4KCk5vdGUgdGhhdCB0aGlzIGZpeCBkb2Vzbid0IHByZXZlbnQgcGFja2V0 cyBmcm9tIGdvaW5nIHVwIHdoZW4gdGhlIFZSRgpkZXZpY2UgaXMgYWRtaW4gZG93bi4KClsgICAz NS42MzEzNzFdIC0tLS0tLS0tLS0tLVsgY3V0IGhlcmUgXS0tLS0tLS0tLS0tLQpbICAgMzUuNjMx NjAzXSBrZXJuZWwgQlVHIGF0IG5ldC9pcHY0L2ZpYl9mcm9udGVuZC5jOjI4NSEKWyAgIDM1LjYz MTg1NF0gaW52YWxpZCBvcGNvZGU6IDAwMDAgWyMxXSBTTVAKWyAgIDM1LjYzMTk3N10gTW9kdWxl cyBsaW5rZWQgaW46ClsgICAzNS42MzIwODFdIENQVTogMiBQSUQ6IDIyIENvbW06IGtzb2Z0aXJx ZC8yIE5vdCB0YWludGVkIDQuMTIuMC1yYzcrICM0NQpbICAgMzUuNjMyMjQ3XSBIYXJkd2FyZSBu YW1lOiBRRU1VIFN0YW5kYXJkIFBDIChpNDQwRlggKyBQSUlYLCAxOTk2KSwgQklPUyAxLjcuNS0y MDE0MDUzMV8wODMwMzAtZ2FuZGFsZiAwNC8wMS8yMDE0ClsgICAzNS42MzI0NzddIHRhc2s6IGZm ZmY4ODAwNWFkNjgwMDAgdGFzay5zdGFjazogZmZmZjg4MDA1YWQ2NDAwMApbICAgMzUuNjMyNjMy XSBSSVA6IDAwMTA6ZmliX2NvbXB1dGVfc3BlY19kc3QrMHhmYy8weDFlZQpbICAgMzUuNjMyNzY5 XSBSU1A6IDAwMTg6ZmZmZjg4MDA1YWQ2Nzk3OCBFRkxBR1M6IDAwMDEwMjAyClsgICAzNS42MzI5 MTBdIFJBWDogMDAwMDAwMDAwMDAwMDAwMSBSQlg6IGZmZmY4ODAwNTlhN2YyMDAgUkNYOiAwMDAw MDAwMDAwMDAwMDAwClsgICAzNS42MzMwODRdIFJEWDogMDAwMDAwMDAwMDAwMDAwMCBSU0k6IDAw MDAwMDAwMDAwMDAwMDEgUkRJOiBmZmZmZmZmZjgyMjc0YWYwClsgICAzNS42MzMyNTZdIFJCUDog ZmZmZjg4MDA1YWQ2NzlmOCBSMDg6IDAwMDAwMDAwMDAwMWVmNzAgUjA5OiAwMDAwMDAwMDAwMDAw MDQ2ClsgICAzNS42MzM0MzBdIFIxMDogZmZmZjg4MDA1YWQ2NzlmOCBSMTE6IGZmZmY4ODAwMzc3 MzFjYjAgUjEyOiAwMDAwMDAwMDAwMDAwMDAxClsgICAzNS42MzM2MDNdIFIxMzogZmZmZjg4MDA1 OTllMzAwMCBSMTQ6IDAwMDAwMDAwMDAwMDAwMDAgUjE1OiBmZmZmODgwMDU5OWNiODUyClsgICAz NS42MzQxMTRdIEZTOiAgMDAwMDAwMDAwMDAwMDAwMCgwMDAwKSBHUzpmZmZmODgwMDVkOTAwMDAw KDAwMDApIGtubEdTOjAwMDAwMDAwMDAwMDAwMDAKWyAgIDM1LjYzNDMwNl0gQ1M6ICAwMDEwIERT OiAwMDAwIEVTOiAwMDAwIENSMDogMDAwMDAwMDA4MDA1MDAzMwpbICAgMzUuNjM0NDU2XSBDUjI6 IDAwMDA3ZjM1NjMyMjcwOTUgQ1IzOiAwMDAwMDAwMDAyMDFkMDAwIENSNDogMDAwMDAwMDAwMDA0 MDZlMApbICAgMzUuNjM0NjMyXSBEUjA6IDAwMDAwMDAwMDAwMDAwMDAgRFIxOiAwMDAwMDAwMDAw MDAwMDAwIERSMjogMDAwMDAwMDAwMDAwMDAwMApbICAgMzUuNjM0ODY1XSBEUjM6IDAwMDAwMDAw MDAwMDAwMDAgRFI2OiAwMDAwMDAwMGZmZmUwZmYwIERSNzogMDAwMDAwMDAwMDAwMDQwMApbICAg MzUuNjM1MDU1XSBDYWxsIFRyYWNlOgpbICAgMzUuNjM1MjcxXSAgPyBfX2xvY2tfYWNxdWlyZSsw eGYwZC8weDExMTcKWyAgIDM1LjYzNTUyMl0gIGlwdjRfcGt0aW5mb19wcmVwYXJlKzB4ODIvMHgx NTEKWyAgIDM1LjYzNTgzMV0gIHJhd19yY3Zfc2tiKzB4MTcvMHgzYwpbICAgMzUuNjM2MDYyXSAg cmF3X3JjdisweGU1LzB4ZjcKWyAgIDM1LjYzNjI4N10gIHJhd19sb2NhbF9kZWxpdmVyKzB4MTY5 LzB4MWQ5ClsgICAzNS42MzY1MzRdICBpcF9sb2NhbF9kZWxpdmVyX2ZpbmlzaCsweDg3LzB4MWM0 ClsgICAzNS42MzY4MjBdICBpcF9sb2NhbF9kZWxpdmVyKzB4NjMvMHg3ZgpbICAgMzUuNjM3MDU4 XSAgaXBfcmN2X2ZpbmlzaCsweDM0MC8weDNhMQpbICAgMzUuNjM3Mjk1XSAgaXBfcmN2KzB4MzE0 LzB4MzRhClsgICAzNS42Mzc1MjVdICBfX25ldGlmX3JlY2VpdmVfc2tiX2NvcmUrMHg0OWYvMHg3 YzUKWyAgIDM1LjYzNzc4MF0gID8gbG9ja19hY3F1aXJlKzB4MTNmLzB4MWQ3ClsgICAzNS42Mzgw MThdICA/IGxvY2tfYWNxdWlyZSsweDE1ZS8weDFkNwpbICAgMzUuNjM4MjU5XSAgX19uZXRpZl9y ZWNlaXZlX3NrYisweDFlLzB4OTQKWyAgIDM1LjYzODUwMl0gID8gX19uZXRpZl9yZWNlaXZlX3Nr YisweDFlLzB4OTQKWyAgIDM1LjYzODc0OF0gIG5ldGlmX3JlY2VpdmVfc2tiX2ludGVybmFsKzB4 NzQvMHgzMDAKWyAgIDM1LjYzOTAwMl0gID8gZGV2X2dyb19yZWNlaXZlKzB4MmVkLzB4NDExClsg ICAzNS42MzkyNDZdICA/IGxvY2tfaXNfaGVsZF90eXBlKzB4YzQvMHhkMgpbICAgMzUuNjM5NDkx XSAgbmFwaV9ncm9fcmVjZWl2ZSsweDEwNS8weDFhMApbICAgMzUuNjM5NzM2XSAgcmVjZWl2ZV9i dWYrMHhjMzIvMHhjNzQKWyAgIDM1LjYzOTk2NV0gID8gZGV0YWNoX2J1ZisweDY3LzB4MTUzClsg ICAzNS42NDAyMDFdICA/IHZpcnRxdWV1ZV9nZXRfYnVmX2N0eCsweDEyMC8weDE3NgpbICAgMzUu NjQwNDUzXSAgdmlydG5ldF9wb2xsKzB4MTI4LzB4MWM1ClsgICAzNS42NDA2OTBdICBuZXRfcnhf YWN0aW9uKzB4MTAzLzB4MzQzClsgICAzNS42NDA5MzJdICBfX2RvX3NvZnRpcnErMHgxYzcvMHg0 YjcKWyAgIDM1LjY0MTE3MV0gIHJ1bl9rc29mdGlycWQrMHgyMy8weDVjClsgICAzNS42NDE0MDNd ICBzbXBib290X3RocmVhZF9mbisweDI0Zi8weDI2ZApbICAgMzUuNjQxNjQ2XSAgPyBzb3J0X3Jh bmdlKzB4MjIvMHgyMgpbICAgMzUuNjQxODc4XSAga3RocmVhZCsweDEyOS8weDEzMQpbICAgMzUu NjQyMTA0XSAgPyBfX2xpc3RfYWRkKzB4MzEvMHgzMQpbICAgMzUuNjQyMzM1XSAgPyBfX2xpc3Rf YWRkKzB4MzEvMHgzMQpbICAgMzUuNjQyNTY4XSAgcmV0X2Zyb21fZm9yaysweDJhLzB4NDAKWyAg IDM1LjY0MjgwNF0gQ29kZTogMDUgYmQgODcgYTMgMDAgMDEgZTggMWYgZWYgOTggZmYgNGQgODUg ZjYgNDggYzcgYzcgZjAgNGEgMjcgODIgNDEgMGYgOTQgYzQgMzEgYzkgMzEgZDIgNDEgMGYgYjYg ZjQgZTggMDQgNzEgYTEgZmYgNDUgODQgZTQgNzQgMDIgPDBmPiAwYiAwZiBiNyA5MyBjNCAwMCAw MCAwMCA0ZCA4YiBhNSA4MCAwNSAwMCAwMCA0OCAwMyA5MyBkMCAwMApbICAgMzUuNjQ0MzQyXSBS SVA6IGZpYl9jb21wdXRlX3NwZWNfZHN0KzB4ZmMvMHgxZWUgUlNQOiBmZmZmODgwMDVhZDY3OTc4 CgpGaXhlczogMTkzMTI1ZGJkOGViICgibmV0OiBJbnRyb2R1Y2UgVlJGIGRldmljZSBkcml2ZXIi KQpSZXBvcnRlZC1ieTogQ2hyaXMgQ29ybWllciA8Y2hyaXNjb3JtaWVyQGN1bXVsdXNuZXR3b3Jr cy5jb20+ClNpZ25lZC1vZmYtYnk6IE5pa29sYXkgQWxla3NhbmRyb3YgPG5pa29sYXlAY3VtdWx1 c25ldHdvcmtzLmNvbT4KQWNrZWQtYnk6IERhdmlkIEFoZXJuIDxkc2FoZXJuQGdtYWlsLmNvbT4K U2lnbmVkLW9mZi1ieTogRGF2aWQgUy4gTWlsbGVyIDxkYXZlbUBkYXZlbWxvZnQubmV0PgotLS0K IGRyaXZlcnMvbmV0L3ZyZi5jIHwgMTEgKysrKysrLS0tLS0KIDEgZmlsZSBjaGFuZ2VkLCA2IGlu c2VydGlvbnMoKyksIDUgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvdnJm LmMgYi9kcml2ZXJzL25ldC92cmYuYwppbmRleCAyZTYyYzRkMWIyMjAuLjYwOGVjYWYxNmZlNCAx MDA2NDQKLS0tIGEvZHJpdmVycy9uZXQvdnJmLmMKKysrIGIvZHJpdmVycy9uZXQvdnJmLmMKQEAg LTc4OCwxNSArNzg4LDEwIEBAIHN0YXRpYyBpbnQgdnJmX2RlbF9zbGF2ZShzdHJ1Y3QgbmV0X2Rl dmljZSAqZGV2LCBzdHJ1Y3QgbmV0X2RldmljZSAqcG9ydF9kZXYpCiBzdGF0aWMgdm9pZCB2cmZf ZGV2X3VuaW5pdChzdHJ1Y3QgbmV0X2RldmljZSAqZGV2KQogewogCXN0cnVjdCBuZXRfdnJmICp2 cmYgPSBuZXRkZXZfcHJpdihkZXYpOwotCXN0cnVjdCBuZXRfZGV2aWNlICpwb3J0X2RldjsKLQlz dHJ1Y3QgbGlzdF9oZWFkICppdGVyOwogCiAJdnJmX3J0YWJsZV9yZWxlYXNlKGRldiwgdnJmKTsK IAl2cmZfcnQ2X3JlbGVhc2UoZGV2LCB2cmYpOwogCi0JbmV0ZGV2X2Zvcl9lYWNoX2xvd2VyX2Rl dihkZXYsIHBvcnRfZGV2LCBpdGVyKQotCQl2cmZfZGVsX3NsYXZlKGRldiwgcG9ydF9kZXYpOwot CiAJZnJlZV9wZXJjcHUoZGV2LT5kc3RhdHMpOwogCWRldi0+ZHN0YXRzID0gTlVMTDsKIH0KQEAg LTEyNDcsNiArMTI0MiwxMiBAQCBzdGF0aWMgaW50IHZyZl92YWxpZGF0ZShzdHJ1Y3QgbmxhdHRy ICp0YltdLCBzdHJ1Y3QgbmxhdHRyICpkYXRhW10pCiAKIHN0YXRpYyB2b2lkIHZyZl9kZWxsaW5r KHN0cnVjdCBuZXRfZGV2aWNlICpkZXYsIHN0cnVjdCBsaXN0X2hlYWQgKmhlYWQpCiB7CisJc3Ry dWN0IG5ldF9kZXZpY2UgKnBvcnRfZGV2OworCXN0cnVjdCBsaXN0X2hlYWQgKml0ZXI7CisKKwlu ZXRkZXZfZm9yX2VhY2hfbG93ZXJfZGV2KGRldiwgcG9ydF9kZXYsIGl0ZXIpCisJCXZyZl9kZWxf c2xhdmUoZGV2LCBwb3J0X2Rldik7CisKIAl1bnJlZ2lzdGVyX25ldGRldmljZV9xdWV1ZShkZXYs IGhlYWQpOwogfQogCi0tIAoyLjEzLjAKCgpGcm9tIDkwNWNmYWFiYjAyZTkyZTYzNzJlZDgwNzJm ZjVlOGJhZjU5ZjE1MGEgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCkZyb206IFNvd21pbmkgVmFy YWRoYW4gPHNvd21pbmkudmFyYWRoYW5Ab3JhY2xlLmNvbT4KRGF0ZTogVGh1LCA2IEp1bCAyMDE3 IDA4OjE1OjA2IC0wNzAwClN1YmplY3Q6IFtQQVRDSCAyNC8zMF0gcmRzOiB0Y3A6IHVzZSBzb2Nr X2NyZWF0ZV9saXRlKCkgdG8gY3JlYXRlIHRoZSBhY2NlcHQKIHNvY2tldAoKWyBVcHN0cmVhbSBj b21taXQgMDkzM2E1NzhjZDU1YjAyZGM4MGYyMTlkYzhmMmVmYjE3ZWM2MWM5YSBdCgpUaGVyZSBh cmUgdHdvIHByb2JsZW1zIHdpdGggY2FsbGluZyBzb2NrX2NyZWF0ZV9rZXJuKCkgZnJvbQpyZHNf dGNwX2FjY2VwdF9vbmUoKQoxLiBpdCBzZXRzIHVwIGEgbmV3X3NvY2stPnNrIHRoYXQgaXMgd2Fz dGVmdWwsIGJlY2F1c2UgdGhpcyAtPnNrCiAgIGlzIGdvaW5nIHRvIGdldCByZXBsYWNlZCBieSBp bmV0X2FjY2VwdCgpIGluIHRoZSBzdWJzZXF1ZW50IC0+YWNjZXB0KCkKMi4gVGhlIG5ld19zb2Nr LT5zayBpcyBhIGxlYWtlZCByZWZlcmVuY2UgaW4gc29ja19ncmFmdCgpIHdoaWNoCiAgIGV4cGVj dHMgdG8gZmluZCBhIG51bGwgcGFyZW50LT5zawoKQXZvaWQgdGhlc2UgcHJvYmxlbXMgYnkgY2Fs bGluZyBzb2NrX2NyZWF0ZV9saXRlKCkuCgpTaWduZWQtb2ZmLWJ5OiBTb3dtaW5pIFZhcmFkaGFu IDxzb3dtaW5pLnZhcmFkaGFuQG9yYWNsZS5jb20+CkFja2VkLWJ5OiBTYW50b3NoIFNoaWxpbWth ciA8c2FudG9zaC5zaGlsaW1rYXJAb3JhY2xlLmNvbT4KU2lnbmVkLW9mZi1ieTogRGF2aWQgUy4g TWlsbGVyIDxkYXZlbUBkYXZlbWxvZnQubmV0PgotLS0KIG5ldC9yZHMvdGNwX2xpc3Rlbi5jIHwg MiArLQogMSBmaWxlIGNoYW5nZWQsIDEgaW5zZXJ0aW9uKCspLCAxIGRlbGV0aW9uKC0pCgpkaWZm IC0tZ2l0IGEvbmV0L3Jkcy90Y3BfbGlzdGVuLmMgYi9uZXQvcmRzL3RjcF9saXN0ZW4uYwppbmRl eCA1MDc2Nzg4NTNlNmMuLjlhMTc5OGQ2YWU5NCAxMDA2NDQKLS0tIGEvbmV0L3Jkcy90Y3BfbGlz dGVuLmMKKysrIGIvbmV0L3Jkcy90Y3BfbGlzdGVuLmMKQEAgLTEyNSw3ICsxMjUsNyBAQCBpbnQg cmRzX3RjcF9hY2NlcHRfb25lKHN0cnVjdCBzb2NrZXQgKnNvY2spCiAJaWYgKCFzb2NrKSAvKiBt b2R1bGUgdW5sb2FkIG9yIG5ldG5zIGRlbGV0ZSBpbiBwcm9ncmVzcyAqLwogCQlyZXR1cm4gLUVO RVRVTlJFQUNIOwogCi0JcmV0ID0gc29ja19jcmVhdGVfa2Vybihzb2NrX25ldChzb2NrLT5zayks IHNvY2stPnNrLT5za19mYW1pbHksCisJcmV0ID0gc29ja19jcmVhdGVfbGl0ZShzb2NrLT5zay0+ c2tfZmFtaWx5LAogCQkJICAgICAgIHNvY2stPnNrLT5za190eXBlLCBzb2NrLT5zay0+c2tfcHJv dG9jb2wsCiAJCQkgICAgICAgJm5ld19zb2NrKTsKIAlpZiAocmV0KQotLSAKMi4xMy4wCgoKRnJv bSAyYTc5MmY4MmExNGM2NTg3MmU5NzQyNDcxZDFmNDFlNTgyNzJlZjJhIE1vbiBTZXAgMTcgMDA6 MDA6MDAgMjAwMQpGcm9tOiBIdXkgTmd1eWVuIDxodXluQG1lbGxhbm94LmNvbT4KRGF0ZTogVGh1 LCAyOSBKdW4gMjAxNyAxNjo1MDowMSAtMDUwMApTdWJqZWN0OiBbUEFUQ0ggMjUvMzBdIG5ldC9t bHg1ZTogSW5pdGlhbGl6ZSBDRUUncyBnZXRwZXJtaHdhZGRyIGFkZHJlc3MKIGJ1ZmZlciB0byAw eGZmCgpbIFVwc3RyZWFtIGNvbW1pdCBkOTY4ZjBmMmU0NDA0MTUyZjM3ZWQyMzg0YjRhMjI2OWRk MmRhZTVhIF0KCkxhdGVzdCBjaGFuZ2UgaW4gb3Blbi1sbGRwIGNvZGUgdXNlcyBieXRlcyA2LTEx IG9mIHBlcm1fYWRkciBidWZmZXIKYXMgdGhlIEV0aGVybmV0IHNvdXJjZSBhZGRyZXNzIGZvciB0 aGUgaG9zdCBUTFYgcGFja2V0LgpTaW5jZSBvdXIgZHJpdmVyIGRvZXMgbm90IGZpbGwgdGhlc2Ug Ynl0ZXMsIHRoZXkgc3RheSBhdCB6ZXJvIGFuZAp0aGUgb3Blbi1sbGRwIGNvZGUgZW5kcyB1cCBz ZW5kaW5nIHRoZSBUTFYgcGFja2V0IHdpdGggemVybyBzb3VyY2UKYWRkcmVzcyBhbmQgdGhlIHN3 aXRjaCBkcm9wcyB0aGlzIHBhY2tldC4KClRoZSBmaXggaXMgdG8gaW5pdGlhbGl6ZSB0aGVzZSBi eXRlcyB0byAweGZmLiBUaGUgb3Blbi1sbGRwIGNvZGUKY29uc2lkZXJzIDB4ZmY6ZmY6ZmY6ZmY6 ZmY6ZmYgYXMgdGhlIGludmFsaWQgYWRkcmVzcyBhbmQgZmFsbHMgYmFjayB0bwp1c2UgdGhlIGhv c3QncyBtYWMgYWRkcmVzcyBhcyB0aGUgRXRoZXJuZXQgc291cmNlIGFkZHJlc3MuCgpGaXhlczog M2E2YTkzMWRmYjhlICgibmV0L21seDVlOiBTdXBwb3J0IERDQlggQ0VFIEFQSSIpClNpZ25lZC1v ZmYtYnk6IEh1eSBOZ3V5ZW4gPGh1eW5AbWVsbGFub3guY29tPgpSZXZpZXdlZC1ieTogRGFuaWVs IEp1cmdlbnMgPGRhbmllbGpAbWVsbGFub3guY29tPgpTaWduZWQtb2ZmLWJ5OiBTYWVlZCBNYWhh bWVlZCA8c2FlZWRtQG1lbGxhbm94LmNvbT4KLS0tCiBkcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxs YW5veC9tbHg1L2NvcmUvZW5fZGNibmwuYyB8IDIgKysKIDEgZmlsZSBjaGFuZ2VkLCAyIGluc2Vy dGlvbnMoKykKCmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1 L2NvcmUvZW5fZGNibmwuYyBiL2RyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29y ZS9lbl9kY2JubC5jCmluZGV4IDhmYTIzZjZhMWY2Ny4uMmViNTRkMzZlMTZlIDEwMDY0NAotLS0g YS9kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvZW5fZGNibmwuYworKysg Yi9kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvZW5fZGNibmwuYwpAQCAt NDY0LDYgKzQ2NCw4IEBAIHN0YXRpYyB2b2lkIG1seDVlX2RjYm5sX2dldHBlcm1od2FkZHIoc3Ry dWN0IG5ldF9kZXZpY2UgKm5ldGRldiwKIAlpZiAoIXBlcm1fYWRkcikKIAkJcmV0dXJuOwogCisJ bWVtc2V0KHBlcm1fYWRkciwgMHhmZiwgTUFYX0FERFJfTEVOKTsKKwogCW1seDVfcXVlcnlfbmlj X3Zwb3J0X21hY19hZGRyZXNzKHByaXYtPm1kZXYsIDAsIHBlcm1fYWRkcik7CiB9CiAKLS0gCjIu MTMuMAoKCkZyb20gMjJhYmUyNzAzMTdkZWUyY2Q3MzZkNWQ5MWQ1M2QyNzM2MTAzZWZhOSBNb24g U2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJvbTogIkd1aWxoZXJtZSBHLiBQaWNjb2xpIiA8Z3BpY2Nv bGlAbGludXgudm5ldC5pYm0uY29tPgpEYXRlOiBNb24sIDEwIEp1bCAyMDE3IDEwOjU1OjQ2IC0w MzAwClN1YmplY3Q6IFtQQVRDSCAyNi8zMF0gY3hnYjQ6IGZpeCBCVUcoKSBvbiBpbnRlcnJ1cHQg ZGVhbGxvY2F0aW5nIHBhdGggb2YgVUxECgpbIFVwc3RyZWFtIGNvbW1pdCA2YTE0NmYzYTU4OTRi NzUxY2VmMTZmZWIzZDc5MDNlNDVlM2M0NDVjIF0KClNpbmNlIHRoZSBpbnRyb2R1Y3Rpb24gb2Yg VUxEIChVcHBlci1MYXllciBEcml2ZXJzKSwgdGhlIE1TSS1YCmRlYWxsb2NhdGluZyBwYXRoIGNo YW5nZWQgaW4gY3hnYjQ6IHRoZSBkcml2ZXIgZnJlZXMgdGhlIGludGVycnVwdHMKb2YgVUxEIHdo ZW4gdW5yZWdpc3RlcmluZyBpdCBvciBvbiBzaHV0ZG93biBQQ0kgaGFuZGxlci4KClByb2JsZW0g aXMgdGhhdCBpZiBhIE1TSS1YIGlzIG5vdCBmcmVlZCBiZWZvcmUgZGVhbGxvY2F0ZWQgaW4gdGhl IFBDSQpsYXllciwgaXQgd2lsbCB0cmlnZ2VyIGEgQlVHKCkgZHVlIHRvIHN0aWxsICJhbGl2ZSIg aW50ZXJydXB0IGJlaW5nCnRlbnRhdGl2ZWx5IHF1aWVzY2VkLgoKVGhlIGJlbG93IHRyYWNlIHdh cyBvYnNlcnZlZCB3aGVuIGRvaW5nIGEgc2ltcGxlIHVuYmluZCBvZiBDaGVsc2lvJ3MKYWRhcHRl ciBQQ0kgZnVuY3Rpb24sIGxpa2U6CiAgImVjaG8gMDAxZTo4MDowMC40ID4gL3N5cy9idXMvcGNp L2RyaXZlcnMvY3hnYjQvdW5iaW5kIgoKVHJhY2U6CgogIGtlcm5lbCBCVUcgYXQgZHJpdmVycy9w Y2kvbXNpLmM6MzUyIQogIE9vcHM6IEV4Y2VwdGlvbiBpbiBrZXJuZWwgbW9kZSwgc2lnOiA1IFsj MV0KICAuLi4KICBOSVAgW2MwMDAwMDAwMDA1YTVlNjBdIGZyZWVfbXNpX2lycXMrMHhhMC8weDI1 MAogIExSIFtjMDAwMDAwMDAwNWE1ZTUwXSBmcmVlX21zaV9pcnFzKzB4OTAvMHgyNTAKICBDYWxs IFRyYWNlOgogIFtjMDAwMDAwMDAwNWE1ZTUwXSBmcmVlX21zaV9pcnFzKzB4OTAvMHgyNTAgKHVu cmVsaWFibGUpCiAgW2MwMDAwMDAwMDA1YTcyYzRdIHBjaV9kaXNhYmxlX21zaXgrMHgxMjQvMHgx ODAKICBbZDAwMDAwMDAxMWUwNjcwOF0gZGlzYWJsZV9tc2krMHg4OC8weGIwIFtjeGdiNF0KICBb ZDAwMDAwMDAxMWUwNjk0OF0gZnJlZV9zb21lX3Jlc291cmNlcysweGE4LzB4MTYwIFtjeGdiNF0K ICBbZDAwMDAwMDAxMWUwNmQ2MF0gcmVtb3ZlX29uZSsweDE3MC8weDNjMCBbY3hnYjRdCiAgW2Mw MDAwMDAwMDA1OGE5MTBdIHBjaV9kZXZpY2VfcmVtb3ZlKzB4NzAvMHgxMTAKICBbYzAwMDAwMDAw MDY0ZWYwNF0gZGV2aWNlX3JlbGVhc2VfZHJpdmVyX2ludGVybmFsKzB4MWY0LzB4MmMwCiAgLi4u CgpUaGlzIHBhdGNoIGZpeGVzIHRoZSBpc3N1ZSBieSByZWZhY3RvcmluZyB0aGUgc2h1dGRvd24g cGF0aCBvZiBVTEQgb24KY3hnYjQgZHJpdmVyLCBieSBwcm9wZXJseSBmcmVlaW5nIGFuZCBkaXNh YmxpbmcgaW50ZXJydXB0cyBvbiBQQ0kKcmVtb3ZlIGhhbmRsZXIgdG9vLgoKRml4ZXM6IDBmYmM4 MWIzYWQ1MSAoIkFsbG9jYXRlIHJlc291cmNlcyBkeW5hbWljYWxseSBmb3IgYWxsIGN4Z2I0IFVM RCdzIikKUmVwb3J0ZWQtYnk6IEhhcnNoYSBUaHlhZ2FyYWphIDxoYXRoeWFnYUBpbi5pYm0uY29t PgpTaWduZWQtb2ZmLWJ5OiBHdWlsaGVybWUgRy4gUGljY29saSA8Z3BpY2NvbGlAbGludXgudm5l dC5pYm0uY29tPgpTaWduZWQtb2ZmLWJ5OiBEYXZpZCBTLiBNaWxsZXIgPGRhdmVtQGRhdmVtbG9m dC5uZXQ+Ci0tLQogZHJpdmVycy9uZXQvZXRoZXJuZXQvY2hlbHNpby9jeGdiNC9jeGdiNF9tYWlu LmMgfCAxNiArKysrKysrLS0tCiBkcml2ZXJzL25ldC9ldGhlcm5ldC9jaGVsc2lvL2N4Z2I0L2N4 Z2I0X3VsZC5jICB8IDQyICsrKysrKysrKysrKysrKy0tLS0tLS0tLS0KIDIgZmlsZXMgY2hhbmdl ZCwgMzYgaW5zZXJ0aW9ucygrKSwgMjIgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvZHJpdmVy cy9uZXQvZXRoZXJuZXQvY2hlbHNpby9jeGdiNC9jeGdiNF9tYWluLmMgYi9kcml2ZXJzL25ldC9l dGhlcm5ldC9jaGVsc2lvL2N4Z2I0L2N4Z2I0X21haW4uYwppbmRleCBmYjA5NTE5MjliZTkuLjEw Yzg1ZDM1MjVhNCAxMDA2NDQKLS0tIGEvZHJpdmVycy9uZXQvZXRoZXJuZXQvY2hlbHNpby9jeGdi NC9jeGdiNF9tYWluLmMKKysrIGIvZHJpdmVycy9uZXQvZXRoZXJuZXQvY2hlbHNpby9jeGdiNC9j eGdiNF9tYWluLmMKQEAgLTIwNzYsMTIgKzIwNzYsMTIgQEAgc3RhdGljIHZvaWQgZGV0YWNoX3Vs ZHMoc3RydWN0IGFkYXB0ZXIgKmFkYXApCiAKIAltdXRleF9sb2NrKCZ1bGRfbXV0ZXgpOwogCWxp c3RfZGVsKCZhZGFwLT5saXN0X25vZGUpOworCiAJZm9yIChpID0gMDsgaSA8IENYR0I0X1VMRF9N QVg7IGkrKykKLQkJaWYgKGFkYXAtPnVsZCAmJiBhZGFwLT51bGRbaV0uaGFuZGxlKSB7CisJCWlm IChhZGFwLT51bGQgJiYgYWRhcC0+dWxkW2ldLmhhbmRsZSkKIAkJCWFkYXAtPnVsZFtpXS5zdGF0 ZV9jaGFuZ2UoYWRhcC0+dWxkW2ldLmhhbmRsZSwKIAkJCQkJICAgICBDWEdCNF9TVEFURV9ERVRB Q0gpOwotCQkJYWRhcC0+dWxkW2ldLmhhbmRsZSA9IE5VTEw7Ci0JCX0KKwogCWlmIChuZXRldmVu dF9yZWdpc3RlcmVkICYmIGxpc3RfZW1wdHkoJmFkYXB0ZXJfbGlzdCkpIHsKIAkJdW5yZWdpc3Rl cl9uZXRldmVudF9ub3RpZmllcigmY3hnYjRfbmV0ZXZlbnRfbmIpOwogCQluZXRldmVudF9yZWdp c3RlcmVkID0gZmFsc2U7CkBAIC01MDg5LDggKzUwODksMTAgQEAgc3RhdGljIHZvaWQgcmVtb3Zl X29uZShzdHJ1Y3QgcGNpX2RldiAqcGRldikKIAkJICovCiAJCWRlc3Ryb3lfd29ya3F1ZXVlKGFk YXB0ZXItPndvcmtxKTsKIAotCQlpZiAoaXNfdWxkKGFkYXB0ZXIpKQorCQlpZiAoaXNfdWxkKGFk YXB0ZXIpKSB7CiAJCQlkZXRhY2hfdWxkcyhhZGFwdGVyKTsKKwkJCXQ0X3VsZF9jbGVhbl91cChh ZGFwdGVyKTsKKwkJfQogCiAJCWRpc2FibGVfaW50ZXJydXB0cyhhZGFwdGVyKTsKIApAQCAtNTE2 Nyw3ICs1MTY5LDExIEBAIHN0YXRpYyB2b2lkIHNodXRkb3duX29uZShzdHJ1Y3QgcGNpX2RldiAq cGRldikKIAkJCWlmIChhZGFwdGVyLT5wb3J0W2ldLT5yZWdfc3RhdGUgPT0gTkVUUkVHX1JFR0lT VEVSRUQpCiAJCQkJY3hnYl9jbG9zZShhZGFwdGVyLT5wb3J0W2ldKTsKIAotCQl0NF91bGRfY2xl YW5fdXAoYWRhcHRlcik7CisJCWlmIChpc191bGQoYWRhcHRlcikpIHsKKwkJCWRldGFjaF91bGRz KGFkYXB0ZXIpOworCQkJdDRfdWxkX2NsZWFuX3VwKGFkYXB0ZXIpOworCQl9CisKIAkJZGlzYWJs ZV9pbnRlcnJ1cHRzKGFkYXB0ZXIpOwogCQlkaXNhYmxlX21zaShhZGFwdGVyKTsKIApkaWZmIC0t Z2l0IGEvZHJpdmVycy9uZXQvZXRoZXJuZXQvY2hlbHNpby9jeGdiNC9jeGdiNF91bGQuYyBiL2Ry aXZlcnMvbmV0L2V0aGVybmV0L2NoZWxzaW8vY3hnYjQvY3hnYjRfdWxkLmMKaW5kZXggZDA4Njhj MjMyMGRhLi5kYmJjMmI3ZjBkNDYgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvbmV0L2V0aGVybmV0L2No ZWxzaW8vY3hnYjQvY3hnYjRfdWxkLmMKKysrIGIvZHJpdmVycy9uZXQvZXRoZXJuZXQvY2hlbHNp by9jeGdiNC9jeGdiNF91bGQuYwpAQCAtNTg5LDIyICs1ODksMzcgQEAgdm9pZCB0NF91bGRfbWVt X2ZyZWUoc3RydWN0IGFkYXB0ZXIgKmFkYXApCiAJa2ZyZWUoYWRhcC0+dWxkKTsKIH0KIAorLyog VGhpcyBmdW5jdGlvbiBzaG91bGQgYmUgY2FsbGVkIHdpdGggdWxkX211dGV4IHRha2VuLiAqLwor c3RhdGljIHZvaWQgY3hnYjRfc2h1dGRvd25fdWxkX2FkYXB0ZXIoc3RydWN0IGFkYXB0ZXIgKmFk YXAsIGVudW0gY3hnYjRfdWxkIHR5cGUpCit7CisJaWYgKGFkYXAtPnVsZFt0eXBlXS5oYW5kbGUp IHsKKwkJYWRhcC0+dWxkW3R5cGVdLmhhbmRsZSA9IE5VTEw7CisJCWFkYXAtPnVsZFt0eXBlXS5h ZGQgPSBOVUxMOworCQlyZWxlYXNlX3NnZV90eHFfdWxkKGFkYXAsIHR5cGUpOworCisJCWlmIChh ZGFwLT5mbGFncyAmIEZVTExfSU5JVF9ET05FKQorCQkJcXVpZXNjZV9yeF91bGQoYWRhcCwgdHlw ZSk7CisKKwkJaWYgKGFkYXAtPmZsYWdzICYgVVNJTkdfTVNJWCkKKwkJCWZyZWVfbXNpeF9xdWV1 ZV9pcnFzX3VsZChhZGFwLCB0eXBlKTsKKworCQlmcmVlX3NnZV9xdWV1ZXNfdWxkKGFkYXAsIHR5 cGUpOworCQlmcmVlX3F1ZXVlc191bGQoYWRhcCwgdHlwZSk7CisJfQorfQorCiB2b2lkIHQ0X3Vs ZF9jbGVhbl91cChzdHJ1Y3QgYWRhcHRlciAqYWRhcCkKIHsKIAl1bnNpZ25lZCBpbnQgaTsKIAot CWlmICghYWRhcC0+dWxkKQotCQlyZXR1cm47CisJbXV0ZXhfbG9jaygmdWxkX211dGV4KTsKIAlm b3IgKGkgPSAwOyBpIDwgQ1hHQjRfVUxEX01BWDsgaSsrKSB7CiAJCWlmICghYWRhcC0+dWxkW2ld LmhhbmRsZSkKIAkJCWNvbnRpbnVlOwotCQlpZiAoYWRhcC0+ZmxhZ3MgJiBGVUxMX0lOSVRfRE9O RSkKLQkJCXF1aWVzY2VfcnhfdWxkKGFkYXAsIGkpOwotCQlpZiAoYWRhcC0+ZmxhZ3MgJiBVU0lO R19NU0lYKQotCQkJZnJlZV9tc2l4X3F1ZXVlX2lycXNfdWxkKGFkYXAsIGkpOwotCQlmcmVlX3Nn ZV9xdWV1ZXNfdWxkKGFkYXAsIGkpOwotCQlmcmVlX3F1ZXVlc191bGQoYWRhcCwgaSk7CisKKwkJ Y3hnYjRfc2h1dGRvd25fdWxkX2FkYXB0ZXIoYWRhcCwgaSk7CiAJfQorCW11dGV4X3VubG9jaygm dWxkX211dGV4KTsKIH0KIAogc3RhdGljIHZvaWQgdWxkX2luaXQoc3RydWN0IGFkYXB0ZXIgKmFk YXAsIHN0cnVjdCBjeGdiNF9sbGRfaW5mbyAqbGxkKQpAQCAtNzgyLDE1ICs3OTcsOCBAQCBpbnQg Y3hnYjRfdW5yZWdpc3Rlcl91bGQoZW51bSBjeGdiNF91bGQgdHlwZSkKIAkJCWNvbnRpbnVlOwog CQlpZiAodHlwZSA9PSBDWEdCNF9VTERfSVNDU0lUICYmIGlzX3Q0KGFkYXAtPnBhcmFtcy5jaGlw KSkKIAkJCWNvbnRpbnVlOwotCQlhZGFwLT51bGRbdHlwZV0uaGFuZGxlID0gTlVMTDsKLQkJYWRh cC0+dWxkW3R5cGVdLmFkZCA9IE5VTEw7Ci0JCXJlbGVhc2Vfc2dlX3R4cV91bGQoYWRhcCwgdHlw ZSk7Ci0JCWlmIChhZGFwLT5mbGFncyAmIEZVTExfSU5JVF9ET05FKQotCQkJcXVpZXNjZV9yeF91 bGQoYWRhcCwgdHlwZSk7Ci0JCWlmIChhZGFwLT5mbGFncyAmIFVTSU5HX01TSVgpCi0JCQlmcmVl X21zaXhfcXVldWVfaXJxc191bGQoYWRhcCwgdHlwZSk7Ci0JCWZyZWVfc2dlX3F1ZXVlc191bGQo YWRhcCwgdHlwZSk7Ci0JCWZyZWVfcXVldWVzX3VsZChhZGFwLCB0eXBlKTsKKworCQljeGdiNF9z aHV0ZG93bl91bGRfYWRhcHRlcihhZGFwLCB0eXBlKTsKIAl9CiAJbXV0ZXhfdW5sb2NrKCZ1bGRf bXV0ZXgpOwogCi0tIAoyLjEzLjAKCgpGcm9tIDcxNmFlMzEyYWVmMTgyODZhNGIxZGEyZDI1NjY1 MDIyYmUzNTQ5NjcgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCkZyb206IFdBTkcgQ29uZyA8eGl5 b3Uud2FuZ2NvbmdAZ21haWwuY29tPgpEYXRlOiBNb24sIDEwIEp1bCAyMDE3IDEwOjA1OjUwIC0w NzAwClN1YmplY3Q6IFtQQVRDSCAyNy8zMF0gdGFwOiBjb252ZXJ0IGEgbXV0ZXggdG8gYSBzcGlu bG9jawoKWyBVcHN0cmVhbSBjb21taXQgZmZhNDIzZmIzMjUxZjg3MzczMDNmZmMzYjA2NTllODZl NTAxODA4ZSBdCgpXZSBhcmUgbm90IGFsbG93ZWQgdG8gYmxvY2sgb24gdGhlIFJDVSByZWFkZXIg c2lkZSwgc28gY2FuJ3QKanVzdCBob2xkIHRoZSBtdXRleCBhcyBiZWZvcmUuIEFzIGEgcXVpY2sg Zml4LCBjb252ZXJ0IGl0IHRvCmEgc3BpbmxvY2suCgpGaXhlczogZDlmMWY2MWMwODAxICgidGFw OiBFeHRlbmRpbmcgdGFwIGRldmljZSBjcmVhdGUvZGVzdHJveSBBUElzIikKUmVwb3J0ZWQtYnk6 IENocmlzdGlhbiBCb3JudHJhZWdlciA8Ym9ybnRyYWVnZXJAZGUuaWJtLmNvbT4KVGVzdGVkLWJ5 OiBDaHJpc3RpYW4gQm9ybnRyYWVnZXIgPGJvcm50cmFlZ2VyQGRlLmlibS5jb20+CkNjOiBTYWlu YXRoIEdyYW5kaGkgPHNhaW5hdGguZ3JhbmRoaUBpbnRlbC5jb20+ClNpZ25lZC1vZmYtYnk6IENv bmcgV2FuZyA8eGl5b3Uud2FuZ2NvbmdAZ21haWwuY29tPgpTaWduZWQtb2ZmLWJ5OiBEYXZpZCBT LiBNaWxsZXIgPGRhdmVtQGRhdmVtbG9mdC5uZXQ+Ci0tLQogZHJpdmVycy9uZXQvdGFwLmMgfCAx OCArKysrKysrKystLS0tLS0tLS0KIDEgZmlsZSBjaGFuZ2VkLCA5IGluc2VydGlvbnMoKyksIDkg ZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvdGFwLmMgYi9kcml2ZXJzL25l dC90YXAuYwppbmRleCA0ZDQxNzNkMjVkZDAuLmQ4OGFlM2MyZWRiZiAxMDA2NDQKLS0tIGEvZHJp dmVycy9uZXQvdGFwLmMKKysrIGIvZHJpdmVycy9uZXQvdGFwLmMKQEAgLTEwNiw3ICsxMDYsNyBA QCBzdHJ1Y3QgbWFqb3JfaW5mbyB7CiAJc3RydWN0IHJjdV9oZWFkIHJjdTsKIAlkZXZfdCBtYWpv cjsKIAlzdHJ1Y3QgaWRyIG1pbm9yX2lkcjsKLQlzdHJ1Y3QgbXV0ZXggbWlub3JfbG9jazsKKwlz cGlubG9ja190IG1pbm9yX2xvY2s7CiAJY29uc3QgY2hhciAqZGV2aWNlX25hbWU7CiAJc3RydWN0 IGxpc3RfaGVhZCBuZXh0OwogfTsKQEAgLTQxNiwxNSArNDE2LDE1IEBAIGludCB0YXBfZ2V0X21p bm9yKGRldl90IG1ham9yLCBzdHJ1Y3QgdGFwX2RldiAqdGFwKQogCQlnb3RvIHVubG9jazsKIAl9 CiAKLQltdXRleF9sb2NrKCZ0YXBfbWFqb3ItPm1pbm9yX2xvY2spOwotCXJldHZhbCA9IGlkcl9h bGxvYygmdGFwX21ham9yLT5taW5vcl9pZHIsIHRhcCwgMSwgVEFQX05VTV9ERVZTLCBHRlBfS0VS TkVMKTsKKwlzcGluX2xvY2soJnRhcF9tYWpvci0+bWlub3JfbG9jayk7CisJcmV0dmFsID0gaWRy X2FsbG9jKCZ0YXBfbWFqb3ItPm1pbm9yX2lkciwgdGFwLCAxLCBUQVBfTlVNX0RFVlMsIEdGUF9B VE9NSUMpOwogCWlmIChyZXR2YWwgPj0gMCkgewogCQl0YXAtPm1pbm9yID0gcmV0dmFsOwogCX0g ZWxzZSBpZiAocmV0dmFsID09IC1FTk9TUEMpIHsKIAkJbmV0ZGV2X2Vycih0YXAtPmRldiwgIlRv byBtYW55IHRhcCBkZXZpY2VzXG4iKTsKIAkJcmV0dmFsID0gLUVJTlZBTDsKIAl9Ci0JbXV0ZXhf dW5sb2NrKCZ0YXBfbWFqb3ItPm1pbm9yX2xvY2spOworCXNwaW5fdW5sb2NrKCZ0YXBfbWFqb3It Pm1pbm9yX2xvY2spOwogCiB1bmxvY2s6CiAJcmN1X3JlYWRfdW5sb2NrKCk7CkBAIC00NDIsMTIg KzQ0MiwxMiBAQCB2b2lkIHRhcF9mcmVlX21pbm9yKGRldl90IG1ham9yLCBzdHJ1Y3QgdGFwX2Rl diAqdGFwKQogCQlnb3RvIHVubG9jazsKIAl9CiAKLQltdXRleF9sb2NrKCZ0YXBfbWFqb3ItPm1p bm9yX2xvY2spOworCXNwaW5fbG9jaygmdGFwX21ham9yLT5taW5vcl9sb2NrKTsKIAlpZiAodGFw LT5taW5vcikgewogCQlpZHJfcmVtb3ZlKCZ0YXBfbWFqb3ItPm1pbm9yX2lkciwgdGFwLT5taW5v cik7CiAJCXRhcC0+bWlub3IgPSAwOwogCX0KLQltdXRleF91bmxvY2soJnRhcF9tYWpvci0+bWlu b3JfbG9jayk7CisJc3Bpbl91bmxvY2soJnRhcF9tYWpvci0+bWlub3JfbG9jayk7CiAKIHVubG9j azoKIAlyY3VfcmVhZF91bmxvY2soKTsKQEAgLTQ2NywxMyArNDY3LDEzIEBAIHN0YXRpYyBzdHJ1 Y3QgdGFwX2RldiAqZGV2X2dldF9ieV90YXBfZmlsZShpbnQgbWFqb3IsIGludCBtaW5vcikKIAkJ Z290byB1bmxvY2s7CiAJfQogCi0JbXV0ZXhfbG9jaygmdGFwX21ham9yLT5taW5vcl9sb2NrKTsK KwlzcGluX2xvY2soJnRhcF9tYWpvci0+bWlub3JfbG9jayk7CiAJdGFwID0gaWRyX2ZpbmQoJnRh cF9tYWpvci0+bWlub3JfaWRyLCBtaW5vcik7CiAJaWYgKHRhcCkgewogCQlkZXYgPSB0YXAtPmRl djsKIAkJZGV2X2hvbGQoZGV2KTsKIAl9Ci0JbXV0ZXhfdW5sb2NrKCZ0YXBfbWFqb3ItPm1pbm9y X2xvY2spOworCXNwaW5fdW5sb2NrKCZ0YXBfbWFqb3ItPm1pbm9yX2xvY2spOwogCiB1bmxvY2s6 CiAJcmN1X3JlYWRfdW5sb2NrKCk7CkBAIC0xMjI3LDcgKzEyMjcsNyBAQCBzdGF0aWMgaW50IHRh cF9saXN0X2FkZChkZXZfdCBtYWpvciwgY29uc3QgY2hhciAqZGV2aWNlX25hbWUpCiAJdGFwX21h am9yLT5tYWpvciA9IE1BSk9SKG1ham9yKTsKIAogCWlkcl9pbml0KCZ0YXBfbWFqb3ItPm1pbm9y X2lkcik7Ci0JbXV0ZXhfaW5pdCgmdGFwX21ham9yLT5taW5vcl9sb2NrKTsKKwlzcGluX2xvY2tf aW5pdCgmdGFwX21ham9yLT5taW5vcl9sb2NrKTsKIAogCXRhcF9tYWpvci0+ZGV2aWNlX25hbWUg PSBkZXZpY2VfbmFtZTsKIAotLSAKMi4xMy4wCgoKRnJvbSBhNWVhMTAxZTk1MzllZmExZjY4YWVj YTk4ZmQ1NjIzNmYyYjIzYjQwIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBFZHVhcmRv IFZhbGVudGluIDxlZHV2YWxAYW1hem9uLmNvbT4KRGF0ZTogVHVlLCAxMSBKdWwgMjAxNyAxNDo1 NToxMiAtMDcwMApTdWJqZWN0OiBbUEFUQ0ggMjgvMzBdIGJyaWRnZTogbWRiOiBmaXggbGVhayBv biBjb21wbGV0ZV9pbmZvIHB0ciBvbiBmYWlsIHBhdGgKClsgVXBzdHJlYW0gY29tbWl0IDFiZmIx NTk2NzM5NTc2NDQ5NTFhYjBhOGQyYWVjNDRiOTNkZGIxYWUgXQoKV2UgY3VycmVudGx5IGdldCB0 aGUgZm9sbG93aW5nIGttZW1sZWFrIHJlcG9ydDoKdW5yZWZlcmVuY2VkIG9iamVjdCAweGZmZmY4 ODAwMDM5ZDk4MjAgKHNpemUgMzIpOgogIGNvbW0gInNvZnRpcnEiLCBwaWQgMCwgamlmZmllcyA0 Mjk1MjEyMzgzIChhZ2UgNzkyLjQxNnMpCiAgaGV4IGR1bXAgKGZpcnN0IDMyIGJ5dGVzKToKICAg IDAwIDBjIGUwIDAzIDAwIDg4IGZmIGZmIGZmIDAyIDAwIDAwIDAwIDAwIDAwIDAwICAuLi4uLi4u Li4uLi4uLi4uCiAgICAwMCAwMCAwMCAwMSBmZiAxMSAwMCAwMiA4NiBkZCAwMCAwMCBmZiBmZiBm ZiBmZiAgLi4uLi4uLi4uLi4uLi4uLgogIGJhY2t0cmFjZToKICAgIFs8ZmZmZmZmZmY4MTUyYjRh YT5dIGttZW1sZWFrX2FsbG9jKzB4NGEvMHhhMAogICAgWzxmZmZmZmZmZjgxMWQ4ZWM4Pl0ga21l bV9jYWNoZV9hbGxvY190cmFjZSsweGI4LzB4MWMwCiAgICBbPGZmZmZmZmZmYTAzODk2ODM+XSBf X2JyX21kYl9ub3RpZnkrMHgyYTMvMHgzMDAgW2JyaWRnZV0KICAgIFs8ZmZmZmZmZmZhMDM4YTBj ZT5dIGJyX21kYl9ub3RpZnkrMHg2ZS8weDcwIFticmlkZ2VdCiAgICBbPGZmZmZmZmZmYTAzODY0 Nzk+XSBicl9tdWx0aWNhc3RfYWRkX2dyb3VwKzB4MTA5LzB4MTUwIFticmlkZ2VdCiAgICBbPGZm ZmZmZmZmYTAzODY1MTg+XSBicl9pcDZfbXVsdGljYXN0X2FkZF9ncm91cCsweDU4LzB4NjAgW2Jy aWRnZV0KICAgIFs8ZmZmZmZmZmZhMDM4N2ZiNT5dIGJyX211bHRpY2FzdF9yY3YrMHgxZDUvMHhk YjAgW2JyaWRnZV0KICAgIFs8ZmZmZmZmZmZhMDM3ZDdjZj5dIGJyX2hhbmRsZV9mcmFtZV9maW5p c2grMHhjZi8weDUxMCBbYnJpZGdlXQogICAgWzxmZmZmZmZmZmEwM2EyMzZiPl0gYnJfbmZfaG9v a190aHJlc2gucGFydC4yNysweGIvMHgxMCBbYnJfbmV0ZmlsdGVyXQogICAgWzxmZmZmZmZmZmEw M2EzNzM4Pl0gYnJfbmZfaG9va190aHJlc2grMHg0OC8weGIwIFticl9uZXRmaWx0ZXJdCiAgICBb PGZmZmZmZmZmYTAzYTNmYjk+XSBicl9uZl9wcmVfcm91dGluZ19maW5pc2hfaXB2NisweDEwOS8w eDFkMCBbYnJfbmV0ZmlsdGVyXQogICAgWzxmZmZmZmZmZmEwM2E0NDAwPl0gYnJfbmZfcHJlX3Jv dXRpbmdfaXB2NisweGQwLzB4MTRjIFticl9uZXRmaWx0ZXJdCiAgICBbPGZmZmZmZmZmYTAzYTNj Mjc+XSBicl9uZl9wcmVfcm91dGluZysweDE5Ny8weDNkMCBbYnJfbmV0ZmlsdGVyXQogICAgWzxm ZmZmZmZmZjgxNGEyOTUyPl0gbmZfaXRlcmF0ZSsweDUyLzB4NjAKICAgIFs8ZmZmZmZmZmY4MTRh MjliYz5dIG5mX2hvb2tfc2xvdysweDVjLzB4YjAKICAgIFs8ZmZmZmZmZmZhMDM3ZGRmND5dIGJy X2hhbmRsZV9mcmFtZSsweDFhNC8weDJjMCBbYnJpZGdlXQoKVGhpcyBoYXBwZW5zIHdoZW4gc3dp dGNoZGV2X3BvcnRfb2JqX2FkZCgpIGZhaWxzLiBUaGlzIHBhdGNoCmZyZWVzIGNvbXBsZXRlX2lu Zm8gb2JqZWN0IGluIHRoZSBmYWlsIHBhdGguCgpSZXZpZXdlZC1ieTogVmFsbGlzaCBWYWlkeWVz aHdhcmEgPHZhbGxpc2hAYW1hem9uLmNvbT4KU2lnbmVkLW9mZi1ieTogRWR1YXJkbyBWYWxlbnRp biA8ZWR1dmFsQGFtYXpvbi5jb20+ClNpZ25lZC1vZmYtYnk6IERhdmlkIFMuIE1pbGxlciA8ZGF2 ZW1AZGF2ZW1sb2Z0Lm5ldD4KLS0tCiBuZXQvYnJpZGdlL2JyX21kYi5jIHwgMyArKy0KIDEgZmls ZSBjaGFuZ2VkLCAyIGluc2VydGlvbnMoKyksIDEgZGVsZXRpb24oLSkKCmRpZmYgLS1naXQgYS9u ZXQvYnJpZGdlL2JyX21kYi5jIGIvbmV0L2JyaWRnZS9icl9tZGIuYwppbmRleCAwNTZlNmFjNDlk OGYuLjU3ZTk0YTFiNTdlMSAxMDA2NDQKLS0tIGEvbmV0L2JyaWRnZS9icl9tZGIuYworKysgYi9u ZXQvYnJpZGdlL2JyX21kYi5jCkBAIC0zMjMsNyArMzIzLDggQEAgc3RhdGljIHZvaWQgX19icl9t ZGJfbm90aWZ5KHN0cnVjdCBuZXRfZGV2aWNlICpkZXYsIHN0cnVjdCBuZXRfYnJpZGdlX3BvcnQg KnAsCiAJCQlfX21kYl9lbnRyeV90b19icl9pcChlbnRyeSwgJmNvbXBsZXRlX2luZm8tPmlwKTsK IAkJCW1kYi5vYmouY29tcGxldGVfcHJpdiA9IGNvbXBsZXRlX2luZm87CiAJCQltZGIub2JqLmNv bXBsZXRlID0gYnJfbWRiX2NvbXBsZXRlOwotCQkJc3dpdGNoZGV2X3BvcnRfb2JqX2FkZChwb3J0 X2RldiwgJm1kYi5vYmopOworCQkJaWYgKHN3aXRjaGRldl9wb3J0X29ial9hZGQocG9ydF9kZXYs ICZtZGIub2JqKSkKKwkJCQlrZnJlZShjb21wbGV0ZV9pbmZvKTsKIAkJfQogCX0gZWxzZSBpZiAo cG9ydF9kZXYgJiYgdHlwZSA9PSBSVE1fREVMTURCKSB7CiAJCXN3aXRjaGRldl9wb3J0X29ial9k ZWwocG9ydF9kZXYsICZtZGIub2JqKTsKLS0gCjIuMTMuMAoKCkZyb20gNzlkYTRhNzViODQ2NDk0 MjhjMzVmYjM3YTY5ZGMzNzFhYzUyMTA0ZSBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJvbTog QXJlbmQgdmFuIFNwcmllbCA8YXJlbmQudmFuc3ByaWVsQGJyb2FkY29tLmNvbT4KRGF0ZTogRnJp LCA3IEp1bCAyMDE3IDIxOjA5OjA2ICswMTAwClN1YmplY3Q6IFtQQVRDSCAyOS8zMF0gYnJjbWZt YWM6IGZpeCBwb3NzaWJsZSBidWZmZXIgb3ZlcmZsb3cgaW4KIGJyY21mX2NmZzgwMjExX21nbXRf dHgoKQpNSU1FLVZlcnNpb246IDEuMApDb250ZW50LVR5cGU6IHRleHQvcGxhaW47IGNoYXJzZXQ9 VVRGLTgKQ29udGVudC1UcmFuc2Zlci1FbmNvZGluZzogOGJpdAoKWyBVcHN0cmVhbSBjb21taXQg OGY0NGM5YTQxMzg2NzI5ZmVhNDEwZTY4ODk1OWRkYWE5ZDUxYmU3YyBdCgpUaGUgbG93ZXIgbGV2 ZWwgbmw4MDIxMSBjb2RlIGluIGNmZzgwMjExIGVuc3VyZXMgdGhhdCAibGVuIiBpcyBiZXR3ZWVu CjI1IGFuZCBOTDgwMjExX0FUVFJfRlJBTUUgKDIzMDQpLiAgV2Ugc3VidHJhY3QgRE9UMTFfTUdN VF9IRFJfTEVOICgyNCkgZnJvbQoibGVuIiBzbyB0aGF0cydzIG1heCBvZiAyMjgwLiAgSG93ZXZl ciwgdGhlIGFjdGlvbl9mcmFtZS0+ZGF0YVtdIGJ1ZmZlciBpcwpvbmx5IEJSQ01GX0ZJTF9BQ1RJ T05fRlJBTUVfU0laRSAoMTgwMCkgYnl0ZXMgbG9uZyBzbyB0aGlzIG1lbWNweSgpIGNhbgpvdmVy Zmxvdy4KCgltZW1jcHkoYWN0aW9uX2ZyYW1lLT5kYXRhLCAmYnVmW0RPVDExX01HTVRfSERSX0xF Tl0sCgkgICAgICAgbGUxNl90b19jcHUoYWN0aW9uX2ZyYW1lLT5sZW4pKTsKCkNjOiBzdGFibGVA dmdlci5rZXJuZWwub3JnICMgMy45LngKRml4ZXM6IDE4ZTJmNjFkYjNiNzAgKCJicmNtZm1hYzog UDJQIGFjdGlvbiBmcmFtZSB0eC4iKQpSZXBvcnRlZC1ieTogImZyZWVuZXJndW8o6YOt5aSn5YW0 KSIgPGZyZWVuZXJndW9AdGVuY2VudC5jb20+ClNpZ25lZC1vZmYtYnk6IEFyZW5kIHZhbiBTcHJp ZWwgPGFyZW5kLnZhbnNwcmllbEBicm9hZGNvbS5jb20+ClNpZ25lZC1vZmYtYnk6IERhdmlkIFMu IE1pbGxlciA8ZGF2ZW1AZGF2ZW1sb2Z0Lm5ldD4KLS0tCiBkcml2ZXJzL25ldC93aXJlbGVzcy9i cm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvY2ZnODAyMTEuYyB8IDUgKysrKysKIDEgZmlsZSBj aGFuZ2VkLCA1IGluc2VydGlvbnMoKykKCmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC93aXJlbGVz cy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvY2ZnODAyMTEuYyBiL2RyaXZlcnMvbmV0L3dp cmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9jZmc4MDIxMS5jCmluZGV4IDAxN2Uy MGIzNDMwNC4uMjA5N2RkYzZjMmY5IDEwMDY0NAotLS0gYS9kcml2ZXJzL25ldC93aXJlbGVzcy9i cm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvY2ZnODAyMTEuYworKysgYi9kcml2ZXJzL25ldC93 aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvY2ZnODAyMTEuYwpAQCAtNDgzNSw2 ICs0ODM1LDExIEBAIGJyY21mX2NmZzgwMjExX21nbXRfdHgoc3RydWN0IHdpcGh5ICp3aXBoeSwg c3RydWN0IHdpcmVsZXNzX2RldiAqd2RldiwKIAkJY2ZnODAyMTFfbWdtdF90eF9zdGF0dXMod2Rl diwgKmNvb2tpZSwgYnVmLCBsZW4sIHRydWUsCiAJCQkJCUdGUF9LRVJORUwpOwogCX0gZWxzZSBp ZiAoaWVlZTgwMjExX2lzX2FjdGlvbihtZ210LT5mcmFtZV9jb250cm9sKSkgeworCQlpZiAobGVu ID4gQlJDTUZfRklMX0FDVElPTl9GUkFNRV9TSVpFICsgRE9UMTFfTUdNVF9IRFJfTEVOKSB7CisJ CQlicmNtZl9lcnIoImludmFsaWQgYWN0aW9uIGZyYW1lIGxlbmd0aFxuIik7CisJCQllcnIgPSAt RUlOVkFMOworCQkJZ290byBleGl0OworCQl9CiAJCWFmX3BhcmFtcyA9IGt6YWxsb2Moc2l6ZW9m KCphZl9wYXJhbXMpLCBHRlBfS0VSTkVMKTsKIAkJaWYgKGFmX3BhcmFtcyA9PSBOVUxMKSB7CiAJ CQlicmNtZl9lcnIoInVuYWJsZSB0byBhbGxvY2F0ZSBmcmFtZVxuIik7Ci0tIAoyLjEzLjAKCgpG cm9tIDdmYjRiZjI3YmY5MDRiMzJlNjA4Zjk2Yzg2ZDNkMzBjMDFlMDM1NWIgTW9uIFNlcCAxNyAw MDowMDowMCAyMDAxCkZyb206IEJlcnQgS2Vud2FyZCA8YmtlbndhcmRAc29sYXJmbGFyZS5jb20+ CkRhdGU6IFdlZCwgMTIgSnVsIDIwMTcgMTc6MTk6NDEgKzAxMDAKU3ViamVjdDogW1BBVENIIDMw LzMwXSBzZmM6IGRvbid0IHJlYWQgYmV5b25kIHVuaWNhc3QgYWRkcmVzcyBsaXN0CgpbIFVwc3Ry ZWFtIGNvbW1pdCBjNzBkNjgxNTBmNzFiODRjZWE2OTk3YTUzNDkzZTE3YmYxOGE1NGRiIF0KCklm IHdlIGhhdmUgbW9yZSB0aGFuIDMyIHVuaWNhc3QgTUFDIGFkZHJlc3NlcyBhc3NpZ25lZCB0byBh biBpbnRlcmZhY2UKd2Ugd2lsbCByZWFkIGJleW9uZCB0aGUgZW5kIG9mIHRoZSBhZGRyZXNzIHRh YmxlIGluIHRoZSBkcml2ZXIgd2hlbgphZGRpbmcgZmlsdGVycy4gVGhlIG5leHQgMjU2IGVudHJp ZXMgc3RvcmUgbXVsdGljYXN0IGFkZHJlc3Nlcywgc28gd2UKd2lsbCBlbmQgdXAgYXR0ZW1wdGlu ZyB0byBpbnNlcnQgZHVwbGljYXRlIGZpbHRlcnMsIHdoaWNoIGlzIG1vc3RseQpoYXJtbGVzcy4g SWYgd2UgYWRkIG1vcmUgdGhhbiAyODggdW5pY2FzdCBhZGRyZXNzZXMgd2Ugd2lsbCB0aGVuIHJl YWQKcGFzdCB0aGUgbXVsdGljYXN0IGFkZHJlc3MgdGFibGUsIHdoaWNoIGlzIGxpa2VseSB0byBi ZSBtb3JlIGV4Y2l0aW5nLgoKRml4ZXM6IDEyZmIwZGE0NWM5YSAoInNmYzogY2xlYW4gZmFsbGJh Y2tzIGJldHdlZW4gcHJvbWlzYy9ub3JtYWwgaW4gZWZ4X2VmMTBfZmlsdGVyX3N5bmNfcnhfbW9k ZSIpClNpZ25lZC1vZmYtYnk6IEJlcnQgS2Vud2FyZCA8YmtlbndhcmRAc29sYXJmbGFyZS5jb20+ ClNpZ25lZC1vZmYtYnk6IERhdmlkIFMuIE1pbGxlciA8ZGF2ZW1AZGF2ZW1sb2Z0Lm5ldD4KLS0t CiBkcml2ZXJzL25ldC9ldGhlcm5ldC9zZmMvZWYxMC5jIHwgOCArKystLS0tLQogMSBmaWxlIGNo YW5nZWQsIDMgaW5zZXJ0aW9ucygrKSwgNSBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9kcml2 ZXJzL25ldC9ldGhlcm5ldC9zZmMvZWYxMC5jIGIvZHJpdmVycy9uZXQvZXRoZXJuZXQvc2ZjL2Vm MTAuYwppbmRleCBmNGFlZDg4OWI2Y2UuLjVhMWI5YjIxOWE0MiAxMDA2NDQKLS0tIGEvZHJpdmVy cy9uZXQvZXRoZXJuZXQvc2ZjL2VmMTAuYworKysgYi9kcml2ZXJzL25ldC9ldGhlcm5ldC9zZmMv ZWYxMC5jCkBAIC01MDMzLDEyICs1MDMzLDkgQEAgc3RhdGljIHZvaWQgZWZ4X2VmMTBfZmlsdGVy X3VjX2FkZHJfbGlzdChzdHJ1Y3QgZWZ4X25pYyAqZWZ4KQogCXN0cnVjdCBlZnhfZWYxMF9maWx0 ZXJfdGFibGUgKnRhYmxlID0gZWZ4LT5maWx0ZXJfc3RhdGU7CiAJc3RydWN0IG5ldF9kZXZpY2Ug Km5ldF9kZXYgPSBlZngtPm5ldF9kZXY7CiAJc3RydWN0IG5ldGRldl9od19hZGRyICp1YzsKLQlp bnQgYWRkcl9jb3VudDsKIAl1bnNpZ25lZCBpbnQgaTsKIAotCWFkZHJfY291bnQgPSBuZXRkZXZf dWNfY291bnQobmV0X2Rldik7CiAJdGFibGUtPnVjX3Byb21pc2MgPSAhIShuZXRfZGV2LT5mbGFn cyAmIElGRl9QUk9NSVNDKTsKLQl0YWJsZS0+ZGV2X3VjX2NvdW50ID0gMSArIGFkZHJfY291bnQ7 CiAJZXRoZXJfYWRkcl9jb3B5KHRhYmxlLT5kZXZfdWNfbGlzdFswXS5hZGRyLCBuZXRfZGV2LT5k ZXZfYWRkcik7CiAJaSA9IDE7CiAJbmV0ZGV2X2Zvcl9lYWNoX3VjX2FkZHIodWMsIG5ldF9kZXYp IHsKQEAgLTUwNDksNiArNTA0Niw4IEBAIHN0YXRpYyB2b2lkIGVmeF9lZjEwX2ZpbHRlcl91Y19h ZGRyX2xpc3Qoc3RydWN0IGVmeF9uaWMgKmVmeCkKIAkJZXRoZXJfYWRkcl9jb3B5KHRhYmxlLT5k ZXZfdWNfbGlzdFtpXS5hZGRyLCB1Yy0+YWRkcik7CiAJCWkrKzsKIAl9CisKKwl0YWJsZS0+ZGV2 X3VjX2NvdW50ID0gaTsKIH0KIAogc3RhdGljIHZvaWQgZWZ4X2VmMTBfZmlsdGVyX21jX2FkZHJf bGlzdChzdHJ1Y3QgZWZ4X25pYyAqZWZ4KQpAQCAtNTA1NiwxMSArNTA1NSwxMCBAQCBzdGF0aWMg dm9pZCBlZnhfZWYxMF9maWx0ZXJfbWNfYWRkcl9saXN0KHN0cnVjdCBlZnhfbmljICplZngpCiAJ c3RydWN0IGVmeF9lZjEwX2ZpbHRlcl90YWJsZSAqdGFibGUgPSBlZngtPmZpbHRlcl9zdGF0ZTsK IAlzdHJ1Y3QgbmV0X2RldmljZSAqbmV0X2RldiA9IGVmeC0+bmV0X2RldjsKIAlzdHJ1Y3QgbmV0 ZGV2X2h3X2FkZHIgKm1jOwotCXVuc2lnbmVkIGludCBpLCBhZGRyX2NvdW50OworCXVuc2lnbmVk IGludCBpOwogCiAJdGFibGUtPm1jX3Byb21pc2MgPSAhIShuZXRfZGV2LT5mbGFncyAmIChJRkZf UFJPTUlTQyB8IElGRl9BTExNVUxUSSkpOwogCi0JYWRkcl9jb3VudCA9IG5ldGRldl9tY19jb3Vu dChuZXRfZGV2KTsKIAlpID0gMDsKIAluZXRkZXZfZm9yX2VhY2hfbWNfYWRkcihtYywgbmV0X2Rl dikgewogCQlpZiAoaSA+PSBFRlhfRUYxMF9GSUxURVJfREVWX01DX01BWCkgewotLSAKMi4xMy4w Cgo= ----Next_Part(Mon_Jul_17_09_44_28_2017_687)-- Content-Type: Application/Octet-Stream Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="net_412.mbox" RnJvbSA5NTMyNmY1NDUzOGU0ODBmYjU1ZTJhZTYwMzQyYTNlZjhlODU1YTIzIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBHYWwgUHJlc3NtYW4gPGdhbHBAbWVsbGFub3guY29tPgpEYXRl OiBNb24sIDE5IEp1biAyMDE3IDE4OjI1OjU5ICswMzAwClN1YmplY3Q6IFtQQVRDSCAwMS8xOF0g bmV0L21seDU6IEZpeCBkcml2ZXIgbG9hZCBlcnJvciBmbG93IHdoZW4gZmlybXdhcmUgaXMKIHN0 dWNrCgpbIFVwc3RyZWFtIGNvbW1pdCA4Y2U1OWIxNmI0YjZlYWNlZGFlYzFmN2I2NTJiNDc4MWNk YmZlMTVmIF0KCldoZW4gd2FpdCBmb3IgZmlybXdhcmUgaW5pdCBmYWlscywgcHJldmlvdXMgY29k ZSB3b3VsZCBtaXN0YWtlbmx5CnJldHVybiBzdWNjZXNzIGFuZCBjYXVzZSBpbmNvbnNpc3RlbmN5 IGluIHRoZSBkcml2ZXIgc3RhdGUuCgpGaXhlczogNmM3ODBhMDI2N2I4ICgibmV0L21seDU6IFdh aXQgZm9yIEZXIHJlYWRpbmVzcyBiZWZvcmUgaW5pdGlhbGl6aW5nIGNvbW1hbmQgaW50ZXJmYWNl IikKU2lnbmVkLW9mZi1ieTogR2FsIFByZXNzbWFuIDxnYWxwQG1lbGxhbm94LmNvbT4KU2lnbmVk LW9mZi1ieTogU2FlZWQgTWFoYW1lZWQgPHNhZWVkbUBtZWxsYW5veC5jb20+Ci0tLQogZHJpdmVy cy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL21haW4uYyB8IDIgKy0KIDEgZmlsZSBj aGFuZ2VkLCAxIGluc2VydGlvbigrKSwgMSBkZWxldGlvbigtKQoKZGlmZiAtLWdpdCBhL2RyaXZl cnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9tYWluLmMgYi9kcml2ZXJzL25ldC9l dGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvbWFpbi5jCmluZGV4IDEzYmUyNjQ1ODdmMS4uZmQ0 N2I1MTM0ODQxIDEwMDY0NAotLS0gYS9kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1 L2NvcmUvbWFpbi5jCisrKyBiL2RyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29y ZS9tYWluLmMKQEAgLTEwMjAsNyArMTAyMCw3IEBAIHN0YXRpYyBpbnQgbWx4NV9sb2FkX29uZShz dHJ1Y3QgbWx4NV9jb3JlX2RldiAqZGV2LCBzdHJ1Y3QgbWx4NV9wcml2ICpwcml2LAogCWlmIChl cnIpIHsKIAkJZGV2X2VycigmZGV2LT5wZGV2LT5kZXYsICJGaXJtd2FyZSBvdmVyICVkIE1TIGlu IHByZS1pbml0aWFsaXppbmcgc3RhdGUsIGFib3J0aW5nXG4iLAogCQkJRldfUFJFX0lOSVRfVElN RU9VVF9NSUxJKTsKLQkJZ290byBvdXQ7CisJCWdvdG8gb3V0X2VycjsKIAl9CiAKIAllcnIgPSBt bHg1X2NtZF9pbml0KGRldik7Ci0tIAoyLjEzLjAKCgpGcm9tIDQyZDAzODhiMWNlNjYzZjExY2M2 OTIzMDNiNDhiMjFmNDJhODQ5MjQgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCkZyb206IE1vaGFt YWQgSGFqIFlhaGlhIDxtb2hhbWFkQG1lbGxhbm94LmNvbT4KRGF0ZTogVGh1LCAzMCBNYXIgMjAx NyAxNzowOTowMCArMDMwMApTdWJqZWN0OiBbUEFUQ0ggMDIvMThdIG5ldC9tbHg1OiBDYW5jZWwg ZGVsYXllZCByZWNvdmVyeSB3b3JrIHdoZW4gdW5sb2FkaW5nCiB0aGUgZHJpdmVyCgpbIFVwc3Ry ZWFtIGNvbW1pdCAyYTAxNjVhMDM0YWMwMjRiNjBjY2E0OWM2MWU0NmY0YWZhMmU0ZDk4IF0KCkRy YWluaW5nIHRoZSBoZWFsdGggd29ya3F1ZXVlIHdpbGwgaWdub3JlIGZ1dHVyZSBoZWFsdGggd29y a3MgaW5jbHVkaW5nCnRoZSBvbmUgdGhhdCByZXBvcnQgaGFyZHdhcmUgZmFpbHVyZSBhbmQgdGh1 cyB3ZSBjYW4ndCBlbnRlciBlcnJvciBzdGF0ZQpJbnN0ZWFkIGNhbmNlbCB0aGUgcmVjb3Zlcnkg ZmxvdyBhbmQgbWFrZSBzdXJlIG9ubHkgcmVjb3ZlcnkgZmxvdyB3b24ndApiZSBzY2hlZHVsZWQu CgpGaXhlczogNWU0NGZjYTUwNDcwICgnbmV0L21seDU6IE9ubHkgY2FuY2VsIHJlY292ZXJ5IHdv cmsgd2hlbiBjbGVhbmluZyB1cCBkZXZpY2UnKQpTaWduZWQtb2ZmLWJ5OiBNb2hhbWFkIEhhaiBZ YWhpYSA8bW9oYW1hZEBtZWxsYW5veC5jb20+ClNpZ25lZC1vZmYtYnk6IE1vc2hlIFNoZW1lc2gg PG1vc2hlQG1lbGxhbm94LmNvbT4KU2lnbmVkLW9mZi1ieTogU2FlZWQgTWFoYW1lZWQgPHNhZWVk bUBtZWxsYW5veC5jb20+Ci0tLQogZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9j b3JlL2hlYWx0aC5jIHwgMTUgKysrKysrKysrKysrKystCiBkcml2ZXJzL25ldC9ldGhlcm5ldC9t ZWxsYW5veC9tbHg1L2NvcmUvbWFpbi5jICAgfCAgMiArLQogaW5jbHVkZS9saW51eC9tbHg1L2Ry aXZlci5oICAgICAgICAgICAgICAgICAgICAgIHwgIDEgKwogMyBmaWxlcyBjaGFuZ2VkLCAxNiBp bnNlcnRpb25zKCspLCAyIGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L2V0 aGVybmV0L21lbGxhbm94L21seDUvY29yZS9oZWFsdGguYyBiL2RyaXZlcnMvbmV0L2V0aGVybmV0 L21lbGxhbm94L21seDUvY29yZS9oZWFsdGguYwppbmRleCBmMjdmODRmZmJjODUuLjhhOGI1ZjBl NDk3YyAxMDA2NDQKLS0tIGEvZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3Jl L2hlYWx0aC5jCisrKyBiL2RyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9o ZWFsdGguYwpAQCAtNjcsNiArNjcsNyBAQCBlbnVtIHsKIAogZW51bSB7CiAJTUxYNV9EUk9QX05F V19IRUFMVEhfV09SSywKKwlNTFg1X0RST1BfTkVXX1JFQ09WRVJZX1dPUkssCiB9OwogCiBzdGF0 aWMgdTggZ2V0X25pY19zdGF0ZShzdHJ1Y3QgbWx4NV9jb3JlX2RldiAqZGV2KQpAQCAtMTkzLDcg KzE5NCw3IEBAIHN0YXRpYyB2b2lkIGhlYWx0aF9jYXJlKHN0cnVjdCB3b3JrX3N0cnVjdCAqd29y aykKIAltbHg1X2hhbmRsZV9iYWRfc3RhdGUoZGV2KTsKIAogCXNwaW5fbG9jaygmaGVhbHRoLT53 cV9sb2NrKTsKLQlpZiAoIXRlc3RfYml0KE1MWDVfRFJPUF9ORVdfSEVBTFRIX1dPUkssICZoZWFs dGgtPmZsYWdzKSkKKwlpZiAoIXRlc3RfYml0KE1MWDVfRFJPUF9ORVdfUkVDT1ZFUllfV09SSywg JmhlYWx0aC0+ZmxhZ3MpKQogCQlzY2hlZHVsZV9kZWxheWVkX3dvcmsoJmhlYWx0aC0+cmVjb3Zl cl93b3JrLCByZWNvdmVyX2RlbGF5KTsKIAllbHNlCiAJCWRldl9lcnIoJmRldi0+cGRldi0+ZGV2 LApAQCAtMzEzLDYgKzMxNCw3IEBAIHZvaWQgbWx4NV9zdGFydF9oZWFsdGhfcG9sbChzdHJ1Y3Qg bWx4NV9jb3JlX2RldiAqZGV2KQogCWluaXRfdGltZXIoJmhlYWx0aC0+dGltZXIpOwogCWhlYWx0 aC0+c2ljayA9IDA7CiAJY2xlYXJfYml0KE1MWDVfRFJPUF9ORVdfSEVBTFRIX1dPUkssICZoZWFs dGgtPmZsYWdzKTsKKwljbGVhcl9iaXQoTUxYNV9EUk9QX05FV19SRUNPVkVSWV9XT1JLLCAmaGVh bHRoLT5mbGFncyk7CiAJaGVhbHRoLT5oZWFsdGggPSAmZGV2LT5pc2VnLT5oZWFsdGg7CiAJaGVh bHRoLT5oZWFsdGhfY291bnRlciA9ICZkZXYtPmlzZWctPmhlYWx0aF9jb3VudGVyOwogCkBAIC0z MzUsMTEgKzMzNywyMiBAQCB2b2lkIG1seDVfZHJhaW5faGVhbHRoX3dxKHN0cnVjdCBtbHg1X2Nv cmVfZGV2ICpkZXYpCiAKIAlzcGluX2xvY2soJmhlYWx0aC0+d3FfbG9jayk7CiAJc2V0X2JpdChN TFg1X0RST1BfTkVXX0hFQUxUSF9XT1JLLCAmaGVhbHRoLT5mbGFncyk7CisJc2V0X2JpdChNTFg1 X0RST1BfTkVXX1JFQ09WRVJZX1dPUkssICZoZWFsdGgtPmZsYWdzKTsKIAlzcGluX3VubG9jaygm aGVhbHRoLT53cV9sb2NrKTsKIAljYW5jZWxfZGVsYXllZF93b3JrX3N5bmMoJmhlYWx0aC0+cmVj b3Zlcl93b3JrKTsKIAljYW5jZWxfd29ya19zeW5jKCZoZWFsdGgtPndvcmspOwogfQogCit2b2lk IG1seDVfZHJhaW5faGVhbHRoX3JlY292ZXJ5KHN0cnVjdCBtbHg1X2NvcmVfZGV2ICpkZXYpCit7 CisJc3RydWN0IG1seDVfY29yZV9oZWFsdGggKmhlYWx0aCA9ICZkZXYtPnByaXYuaGVhbHRoOwor CisJc3Bpbl9sb2NrKCZoZWFsdGgtPndxX2xvY2spOworCXNldF9iaXQoTUxYNV9EUk9QX05FV19S RUNPVkVSWV9XT1JLLCAmaGVhbHRoLT5mbGFncyk7CisJc3Bpbl91bmxvY2soJmhlYWx0aC0+d3Ff bG9jayk7CisJY2FuY2VsX2RlbGF5ZWRfd29ya19zeW5jKCZkZXYtPnByaXYuaGVhbHRoLnJlY292 ZXJfd29yayk7Cit9CisKIHZvaWQgbWx4NV9oZWFsdGhfY2xlYW51cChzdHJ1Y3QgbWx4NV9jb3Jl X2RldiAqZGV2KQogewogCXN0cnVjdCBtbHg1X2NvcmVfaGVhbHRoICpoZWFsdGggPSAmZGV2LT5w cml2LmhlYWx0aDsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21s eDUvY29yZS9tYWluLmMgYi9kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUv bWFpbi5jCmluZGV4IGZkNDdiNTEzNDg0MS4uNTI0YzE2ZjcyZTgzIDEwMDY0NAotLS0gYS9kcml2 ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvbWFpbi5jCisrKyBiL2RyaXZlcnMv bmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9tYWluLmMKQEAgLTEyMjgsNyArMTIyOCw3 IEBAIHN0YXRpYyBpbnQgbWx4NV91bmxvYWRfb25lKHN0cnVjdCBtbHg1X2NvcmVfZGV2ICpkZXYs IHN0cnVjdCBtbHg1X3ByaXYgKnByaXYsCiAJaW50IGVyciA9IDA7CiAKIAlpZiAoY2xlYW51cCkK LQkJbWx4NV9kcmFpbl9oZWFsdGhfd3EoZGV2KTsKKwkJbWx4NV9kcmFpbl9oZWFsdGhfcmVjb3Zl cnkoZGV2KTsKIAogCW11dGV4X2xvY2soJmRldi0+aW50Zl9zdGF0ZV9tdXRleCk7CiAJaWYgKHRl c3RfYml0KE1MWDVfSU5URVJGQUNFX1NUQVRFX0RPV04sICZkZXYtPmludGZfc3RhdGUpKSB7CmRp ZmYgLS1naXQgYS9pbmNsdWRlL2xpbnV4L21seDUvZHJpdmVyLmggYi9pbmNsdWRlL2xpbnV4L21s eDUvZHJpdmVyLmgKaW5kZXggOTMyNzNkOWVhNGQxLi5iYTI2MDMzMGNlNWUgMTAwNjQ0Ci0tLSBh L2luY2x1ZGUvbGludXgvbWx4NS9kcml2ZXIuaAorKysgYi9pbmNsdWRlL2xpbnV4L21seDUvZHJp dmVyLmgKQEAgLTkyNSw2ICs5MjUsNyBAQCBpbnQgbWx4NV9oZWFsdGhfaW5pdChzdHJ1Y3QgbWx4 NV9jb3JlX2RldiAqZGV2KTsKIHZvaWQgbWx4NV9zdGFydF9oZWFsdGhfcG9sbChzdHJ1Y3QgbWx4 NV9jb3JlX2RldiAqZGV2KTsKIHZvaWQgbWx4NV9zdG9wX2hlYWx0aF9wb2xsKHN0cnVjdCBtbHg1 X2NvcmVfZGV2ICpkZXYpOwogdm9pZCBtbHg1X2RyYWluX2hlYWx0aF93cShzdHJ1Y3QgbWx4NV9j b3JlX2RldiAqZGV2KTsKK3ZvaWQgbWx4NV9kcmFpbl9oZWFsdGhfcmVjb3Zlcnkoc3RydWN0IG1s eDVfY29yZV9kZXYgKmRldik7CiBpbnQgbWx4NV9idWZfYWxsb2Nfbm9kZShzdHJ1Y3QgbWx4NV9j b3JlX2RldiAqZGV2LCBpbnQgc2l6ZSwKIAkJCXN0cnVjdCBtbHg1X2J1ZiAqYnVmLCBpbnQgbm9k ZSk7CiBpbnQgbWx4NV9idWZfYWxsb2Moc3RydWN0IG1seDVfY29yZV9kZXYgKmRldiwgaW50IHNp emUsIHN0cnVjdCBtbHg1X2J1ZiAqYnVmKTsKLS0gCjIuMTMuMAoKCkZyb20gYTc1YjBmOWU2ZGE4 YzcxN2Q4ZThmOTdhOWI0NDRiNWExYzQ0ODBiZCBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJv bTogR2FsIFByZXNzbWFuIDxnYWxwQG1lbGxhbm94LmNvbT4KRGF0ZTogU3VuLCAyNSBKdW4gMjAx NyAxNjo0NjoyNSArMDMwMApTdWJqZWN0OiBbUEFUQ0ggMDMvMThdIG5ldC9tbHg1ZTogRml4IFRY IGNhcnJpZXIgZXJyb3JzIHJlcG9ydCBpbiBnZXQgc3RhdHMKIG5kbwoKWyBVcHN0cmVhbSBjb21t aXQgOGZmOTNkZTc2NjhiZDgxYmM4ZWZhODE5ZDExODRlYmQ0OGZhZTcyZCBdCgpTeW1ib2wgZXJy b3IgZHVyaW5nIGNhcnJpZXIgY291bnRlciBmcm9tIFBQQ05UIHdhcyBtaXN0YWtlbmx5IHJlcG9y dGVkIGFzClRYIGNhcnJpZXIgZXJyb3JzIGluIGdldF9zdGF0cyBuZG8sIGFsdGhvdWdoIGl0J3Mg YW4gUlggY291bnRlci4KCkZpeGVzOiAyNjllNmIzYWYzYmYgKCJuZXQvbWx4NWU6IFJlcG9ydCBh ZGRpdGlvbmFsIGVycm9yIHN0YXRpc3RpY3MgaW4gZ2V0IHN0YXRzIG5kbyIpClNpZ25lZC1vZmYt Ynk6IEdhbCBQcmVzc21hbiA8Z2FscEBtZWxsYW5veC5jb20+ClNpZ25lZC1vZmYtYnk6IFNhZWVk IE1haGFtZWVkIDxzYWVlZG1AbWVsbGFub3guY29tPgotLS0KIGRyaXZlcnMvbmV0L2V0aGVybmV0 L21lbGxhbm94L21seDUvY29yZS9lbl9tYWluLmMgfCAyIC0tCiAxIGZpbGUgY2hhbmdlZCwgMiBk ZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9t bHg1L2NvcmUvZW5fbWFpbi5jIGIvZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9j b3JlL2VuX21haW4uYwppbmRleCAyNzdmNGRlMzAzNzUuLjc4MTlmZTllZGUyMiAxMDA2NDQKLS0t IGEvZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2VuX21haW4uYworKysg Yi9kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvZW5fbWFpbi5jCkBAIC0z MDUzLDggKzMwNTMsNiBAQCBtbHg1ZV9nZXRfc3RhdHMoc3RydWN0IG5ldF9kZXZpY2UgKmRldiwg c3RydWN0IHJ0bmxfbGlua19zdGF0czY0ICpzdGF0cykKIAkJUFBPUlRfODAyXzNfR0VUKHBzdGF0 cywgYV9mcmFtZV9jaGVja19zZXF1ZW5jZV9lcnJvcnMpOwogCXN0YXRzLT5yeF9mcmFtZV9lcnJv cnMgPSBQUE9SVF84MDJfM19HRVQocHN0YXRzLCBhX2FsaWdubWVudF9lcnJvcnMpOwogCXN0YXRz LT50eF9hYm9ydGVkX2Vycm9ycyA9IFBQT1JUXzI4NjNfR0VUKHBzdGF0cywgaWZfb3V0X2Rpc2Nh cmRzKTsKLQlzdGF0cy0+dHhfY2Fycmllcl9lcnJvcnMgPQotCQlQUE9SVF84MDJfM19HRVQocHN0 YXRzLCBhX3N5bWJvbF9lcnJvcl9kdXJpbmdfY2Fycmllcik7CiAJc3RhdHMtPnJ4X2Vycm9ycyA9 IHN0YXRzLT5yeF9sZW5ndGhfZXJyb3JzICsgc3RhdHMtPnJ4X2NyY19lcnJvcnMgKwogCQkJICAg c3RhdHMtPnJ4X2ZyYW1lX2Vycm9yczsKIAlzdGF0cy0+dHhfZXJyb3JzID0gc3RhdHMtPnR4X2Fi b3J0ZWRfZXJyb3JzICsgc3RhdHMtPnR4X2NhcnJpZXJfZXJyb3JzOwotLSAKMi4xMy4wCgoKRnJv bSBjNzU2NjNjMTM1NDhiMmVhYTU0ODczYzdjZDgxZjI5ZWU0MzgzM2Y1IE1vbiBTZXAgMTcgMDA6 MDA6MDAgMjAwMQpGcm9tOiBTYWJyaW5hIER1YnJvY2EgPHNkQHF1ZWFzeXNuYWlsLm5ldD4KRGF0 ZTogVGh1LCAyOSBKdW4gMjAxNyAxNjo1Njo1NCArMDIwMApTdWJqZWN0OiBbUEFUQ0ggMDQvMThd IGlwdjY6IGRhZDogZG9uJ3QgcmVtb3ZlIGR5bmFtaWMgYWRkcmVzc2VzIGlmIGxpbmsgaXMKIGRv d24KClsgVXBzdHJlYW0gY29tbWl0IGVjOGFkZDJhNGM5ZGY3MjNjOTRhODYzYjhmY2Q2ZDkzYzQ3 MmRlZWQgXQoKQ3VycmVudGx5LCB3aGVuIHRoZSBsaW5rIGZvciAkREVWIGlzIGRvd24sIHRoaXMg Y29tbWFuZCBzdWNjZWVkcyBidXQgdGhlCmFkZHJlc3MgaXMgcmVtb3ZlZCBpbW1lZGlhdGVseSBi eSBEQUQgKDEpOgoKICAgIGlwIGFkZHIgYWRkIDExMTE6OjEyLzY0IGRldiAkREVWIHZhbGlkX2xm dCAzNjAwIHByZWZlcnJlZF9sZnQgMTgwMAoKSW4gdGhlIHNhbWUgc2l0dWF0aW9uLCB0aGlzIHdp bGwgc3VjY2VlZCBhbmQgbm90IHJlbW92ZSB0aGUgYWRkcmVzcyAoMik6CgogICAgaXAgYWRkciBh ZGQgMTExMTo6MTIvNjQgZGV2ICRERVYKICAgIGlwIGFkZHIgY2hhbmdlIDExMTE6OjEyLzY0IGRl diAkREVWIHZhbGlkX2xmdCAzNjAwIHByZWZlcnJlZF9sZnQgMTgwMAoKVGhlIGNvbW1lbnQgaW4g YWRkcmNvbmZfZGFkX2JlZ2luKCkgd2hlbiAhSUZfUkVBRFkgbWFrZXMgaXQgbG9vayBsaWtlCnRo aXMgaXMgdGhlIGludGVuZGVkIGJlaGF2aW9yLCBidXQgZG9lc24ndCBleHBsYWluIHdoeToKCiAg ICAgKiBJZiB0aGUgZGV2aWNlIGlzIG5vdCByZWFkeToKICAgICAqIC0ga2VlcCBpdCB0ZW50YXRp dmUgaWYgaXQgaXMgYSBwZXJtYW5lbnQgYWRkcmVzcy4KICAgICAqIC0gb3RoZXJ3aXNlLCBraWxs IGl0LgoKV2UgY2xlYXJseSBjYW5ub3QgcHJldmVudCB1c2Vyc3BhY2UgZnJvbSBkb2luZyAoMiks IGJ1dCB3ZSBjYW4gbWFrZSAoMSkKd29yayBjb25zaXN0ZW50bHkgd2l0aCAoMikuCgphZGRyY29u Zl9kYWRfc3RvcCgpIGlzIG9ubHkgY2FsbGVkIGluIHR3byBjYXNlczogaWYgREFEIGZhaWxlZCwg b3IgdG8Kc2tpcCBEQUQgd2hlbiB0aGUgbGluayBpcyBkb3duLiBJbiB0aGF0IHNlY29uZCBjYXNl LCB0aGUgZml4IGlzIHRvIGF2b2lkCmRlbGV0aW5nIHRoZSBhZGRyZXNzLCBsaWtlIHdlIGFscmVh ZHkgZG8gZm9yIHBlcm1hbmVudCBhZGRyZXNzZXMuCgpGaXhlczogM2MyMWVkYmQxMTM3ICgiW0lQ VjZdOiBEZWZlciBJUHY2IGRldmljZSBpbml0aWFsaXphdGlvbiB1bnRpbCB0aGUgbGluayBiZWNv bWVzIHJlYWR5LiIpClNpZ25lZC1vZmYtYnk6IFNhYnJpbmEgRHVicm9jYSA8c2RAcXVlYXN5c25h aWwubmV0PgpTaWduZWQtb2ZmLWJ5OiBEYXZpZCBTLiBNaWxsZXIgPGRhdmVtQGRhdmVtbG9mdC5u ZXQ+Ci0tLQogbmV0L2lwdjYvYWRkcmNvbmYuYyB8IDE4ICsrKysrKysrKy0tLS0tLS0tLQogMSBm aWxlIGNoYW5nZWQsIDkgaW5zZXJ0aW9ucygrKSwgOSBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQg YS9uZXQvaXB2Ni9hZGRyY29uZi5jIGIvbmV0L2lwdjYvYWRkcmNvbmYuYwppbmRleCAxZDJkYmFj ZTQyZmYuLjM5YTQ0YzA1OThmNyAxMDA2NDQKLS0tIGEvbmV0L2lwdjYvYWRkcmNvbmYuYworKysg Yi9uZXQvaXB2Ni9hZGRyY29uZi5jCkBAIC0xOTEyLDE1ICsxOTEyLDcgQEAgc3RhdGljIHZvaWQg YWRkcmNvbmZfZGFkX3N0b3Aoc3RydWN0IGluZXQ2X2lmYWRkciAqaWZwLCBpbnQgZGFkX2ZhaWxl ZCkKIAlpZiAoZGFkX2ZhaWxlZCkKIAkJaWZwLT5mbGFncyB8PSBJRkFfRl9EQURGQUlMRUQ7CiAK LQlpZiAoaWZwLT5mbGFncyZJRkFfRl9QRVJNQU5FTlQpIHsKLQkJc3Bpbl9sb2NrX2JoKCZpZnAt PmxvY2spOwotCQlhZGRyY29uZl9kZWxfZGFkX3dvcmsoaWZwKTsKLQkJaWZwLT5mbGFncyB8PSBJ RkFfRl9URU5UQVRJVkU7Ci0JCXNwaW5fdW5sb2NrX2JoKCZpZnAtPmxvY2spOwotCQlpZiAoZGFk X2ZhaWxlZCkKLQkJCWlwdjZfaWZhX25vdGlmeSgwLCBpZnApOwotCQlpbjZfaWZhX3B1dChpZnAp OwotCX0gZWxzZSBpZiAoaWZwLT5mbGFncyZJRkFfRl9URU1QT1JBUlkpIHsKKwlpZiAoaWZwLT5m bGFncyZJRkFfRl9URU1QT1JBUlkpIHsKIAkJc3RydWN0IGluZXQ2X2lmYWRkciAqaWZwdWI7CiAJ CXNwaW5fbG9ja19iaCgmaWZwLT5sb2NrKTsKIAkJaWZwdWIgPSBpZnAtPmlmcHViOwpAQCAtMTkz Myw2ICsxOTI1LDE0IEBAIHN0YXRpYyB2b2lkIGFkZHJjb25mX2RhZF9zdG9wKHN0cnVjdCBpbmV0 Nl9pZmFkZHIgKmlmcCwgaW50IGRhZF9mYWlsZWQpCiAJCQlzcGluX3VubG9ja19iaCgmaWZwLT5s b2NrKTsKIAkJfQogCQlpcHY2X2RlbF9hZGRyKGlmcCk7CisJfSBlbHNlIGlmIChpZnAtPmZsYWdz JklGQV9GX1BFUk1BTkVOVCB8fCAhZGFkX2ZhaWxlZCkgeworCQlzcGluX2xvY2tfYmgoJmlmcC0+ bG9jayk7CisJCWFkZHJjb25mX2RlbF9kYWRfd29yayhpZnApOworCQlpZnAtPmZsYWdzIHw9IElG QV9GX1RFTlRBVElWRTsKKwkJc3Bpbl91bmxvY2tfYmgoJmlmcC0+bG9jayk7CisJCWlmIChkYWRf ZmFpbGVkKQorCQkJaXB2Nl9pZmFfbm90aWZ5KDAsIGlmcCk7CisJCWluNl9pZmFfcHV0KGlmcCk7 CiAJfSBlbHNlIHsKIAkJaXB2Nl9kZWxfYWRkcihpZnApOwogCX0KLS0gCjIuMTMuMAoKCkZyb20g MTIwN2YxZThmMGRmNTZkMWE0MWUwYTNmZmExYjY2ZGIzNWU3ZDlkNyBNb24gU2VwIDE3IDAwOjAw OjAwIDIwMDEKRnJvbTogSmlyaSBCZW5jIDxqYmVuY0ByZWRoYXQuY29tPgpEYXRlOiBTdW4sIDIg SnVsIDIwMTcgMTk6MDA6NTcgKzAyMDAKU3ViamVjdDogW1BBVENIIDA1LzE4XSB2eGxhbjogZml4 IGhsaXN0IGNvcnJ1cHRpb24KClsgVXBzdHJlYW0gY29tbWl0IDY5ZTc2NjYxMmM0YmNiNzllMTlj ZWJlZDllZWQ2MWQ0MjIyYzFkNDcgXQoKSXQncyBub3QgYSBnb29kIGlkZWEgdG8gYWRkIHRoZSBz YW1lIGhsaXN0X25vZGUgdG8gdHdvIGRpZmZlcmVudCBoYXNoIGxpc3RzLgpUaGlzIGxlYWRzIHRv IHZhcmlvdXMgaGFyZCB0byBkZWJ1ZyBtZW1vcnkgY29ycnVwdGlvbnMuCgpGaXhlczogYjFiZTAw YTZjMzlmICgidnhsYW46IHN1cHBvcnQgYm90aCBJUHY0IGFuZCBJUHY2IHNvY2tldHMgaW4gYSBz aW5nbGUgdnhsYW4gZGV2aWNlIikKU2lnbmVkLW9mZi1ieTogSmlyaSBCZW5jIDxqYmVuY0ByZWRo YXQuY29tPgpTaWduZWQtb2ZmLWJ5OiBEYXZpZCBTLiBNaWxsZXIgPGRhdmVtQGRhdmVtbG9mdC5u ZXQ+Ci0tLQogZHJpdmVycy9uZXQvdnhsYW4uYyB8IDMwICsrKysrKysrKysrKysrKysrKysrLS0t LS0tLS0tLQogaW5jbHVkZS9uZXQvdnhsYW4uaCB8IDEwICsrKysrKysrKy0KIDIgZmlsZXMgY2hh bmdlZCwgMjkgaW5zZXJ0aW9ucygrKSwgMTEgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvZHJp dmVycy9uZXQvdnhsYW4uYyBiL2RyaXZlcnMvbmV0L3Z4bGFuLmMKaW5kZXggNWZhNzk4YTVjOWE2 Li5jNGU1NDAxMjYyNTggMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvbmV0L3Z4bGFuLmMKKysrIGIvZHJp dmVycy9uZXQvdnhsYW4uYwpAQCAtMjI4LDE1ICsyMjgsMTUgQEAgc3RhdGljIHN0cnVjdCB2eGxh bl9zb2NrICp2eGxhbl9maW5kX3NvY2soc3RydWN0IG5ldCAqbmV0LCBzYV9mYW1pbHlfdCBmYW1p bHksCiAKIHN0YXRpYyBzdHJ1Y3QgdnhsYW5fZGV2ICp2eGxhbl92c19maW5kX3ZuaShzdHJ1Y3Qg dnhsYW5fc29jayAqdnMsIF9fYmUzMiB2bmkpCiB7Ci0Jc3RydWN0IHZ4bGFuX2RldiAqdnhsYW47 CisJc3RydWN0IHZ4bGFuX2Rldl9ub2RlICpub2RlOwogCiAJLyogRm9yIGZsb3cgYmFzZWQgZGV2 aWNlcywgbWFwIGFsbCBwYWNrZXRzIHRvIFZOSSAwICovCiAJaWYgKHZzLT5mbGFncyAmIFZYTEFO X0ZfQ09MTEVDVF9NRVRBREFUQSkKIAkJdm5pID0gMDsKIAotCWhsaXN0X2Zvcl9lYWNoX2VudHJ5 X3JjdSh2eGxhbiwgdm5pX2hlYWQodnMsIHZuaSksIGhsaXN0KSB7Ci0JCWlmICh2eGxhbi0+ZGVm YXVsdF9kc3QucmVtb3RlX3ZuaSA9PSB2bmkpCi0JCQlyZXR1cm4gdnhsYW47CisJaGxpc3RfZm9y X2VhY2hfZW50cnlfcmN1KG5vZGUsIHZuaV9oZWFkKHZzLCB2bmkpLCBobGlzdCkgeworCQlpZiAo bm9kZS0+dnhsYW4tPmRlZmF1bHRfZHN0LnJlbW90ZV92bmkgPT0gdm5pKQorCQkJcmV0dXJuIG5v ZGUtPnZ4bGFuOwogCX0KIAogCXJldHVybiBOVUxMOwpAQCAtMjM2NSwxNyArMjM2NSwyMiBAQCBz dGF0aWMgdm9pZCB2eGxhbl92c19kZWxfZGV2KHN0cnVjdCB2eGxhbl9kZXYgKnZ4bGFuKQogCXN0 cnVjdCB2eGxhbl9uZXQgKnZuID0gbmV0X2dlbmVyaWModnhsYW4tPm5ldCwgdnhsYW5fbmV0X2lk KTsKIAogCXNwaW5fbG9jaygmdm4tPnNvY2tfbG9jayk7Ci0JaGxpc3RfZGVsX2luaXRfcmN1KCZ2 eGxhbi0+aGxpc3QpOworCWhsaXN0X2RlbF9pbml0X3JjdSgmdnhsYW4tPmhsaXN0NC5obGlzdCk7 CisjaWYgSVNfRU5BQkxFRChDT05GSUdfSVBWNikKKwlobGlzdF9kZWxfaW5pdF9yY3UoJnZ4bGFu LT5obGlzdDYuaGxpc3QpOworI2VuZGlmCiAJc3Bpbl91bmxvY2soJnZuLT5zb2NrX2xvY2spOwog fQogCi1zdGF0aWMgdm9pZCB2eGxhbl92c19hZGRfZGV2KHN0cnVjdCB2eGxhbl9zb2NrICp2cywg c3RydWN0IHZ4bGFuX2RldiAqdnhsYW4pCitzdGF0aWMgdm9pZCB2eGxhbl92c19hZGRfZGV2KHN0 cnVjdCB2eGxhbl9zb2NrICp2cywgc3RydWN0IHZ4bGFuX2RldiAqdnhsYW4sCisJCQkgICAgIHN0 cnVjdCB2eGxhbl9kZXZfbm9kZSAqbm9kZSkKIHsKIAlzdHJ1Y3QgdnhsYW5fbmV0ICp2biA9IG5l dF9nZW5lcmljKHZ4bGFuLT5uZXQsIHZ4bGFuX25ldF9pZCk7CiAJX19iZTMyIHZuaSA9IHZ4bGFu LT5kZWZhdWx0X2RzdC5yZW1vdGVfdm5pOwogCisJbm9kZS0+dnhsYW4gPSB2eGxhbjsKIAlzcGlu X2xvY2soJnZuLT5zb2NrX2xvY2spOwotCWhsaXN0X2FkZF9oZWFkX3JjdSgmdnhsYW4tPmhsaXN0 LCB2bmlfaGVhZCh2cywgdm5pKSk7CisJaGxpc3RfYWRkX2hlYWRfcmN1KCZub2RlLT5obGlzdCwg dm5pX2hlYWQodnMsIHZuaSkpOwogCXNwaW5fdW5sb2NrKCZ2bi0+c29ja19sb2NrKTsKIH0KIApA QCAtMjgxOSw2ICsyODI0LDcgQEAgc3RhdGljIGludCBfX3Z4bGFuX3NvY2tfYWRkKHN0cnVjdCB2 eGxhbl9kZXYgKnZ4bGFuLCBib29sIGlwdjYpCiB7CiAJc3RydWN0IHZ4bGFuX25ldCAqdm4gPSBu ZXRfZ2VuZXJpYyh2eGxhbi0+bmV0LCB2eGxhbl9uZXRfaWQpOwogCXN0cnVjdCB2eGxhbl9zb2Nr ICp2cyA9IE5VTEw7CisJc3RydWN0IHZ4bGFuX2Rldl9ub2RlICpub2RlOwogCiAJaWYgKCF2eGxh bi0+Y2ZnLm5vX3NoYXJlKSB7CiAJCXNwaW5fbG9jaygmdm4tPnNvY2tfbG9jayk7CkBAIC0yODM2 LDEyICsyODQyLDE2IEBAIHN0YXRpYyBpbnQgX192eGxhbl9zb2NrX2FkZChzdHJ1Y3QgdnhsYW5f ZGV2ICp2eGxhbiwgYm9vbCBpcHY2KQogCWlmIChJU19FUlIodnMpKQogCQlyZXR1cm4gUFRSX0VS Uih2cyk7CiAjaWYgSVNfRU5BQkxFRChDT05GSUdfSVBWNikKLQlpZiAoaXB2NikKKwlpZiAoaXB2 NikgewogCQlyY3VfYXNzaWduX3BvaW50ZXIodnhsYW4tPnZuNl9zb2NrLCB2cyk7Ci0JZWxzZQor CQlub2RlID0gJnZ4bGFuLT5obGlzdDY7CisJfSBlbHNlCiAjZW5kaWYKKwl7CiAJCXJjdV9hc3Np Z25fcG9pbnRlcih2eGxhbi0+dm40X3NvY2ssIHZzKTsKLQl2eGxhbl92c19hZGRfZGV2KHZzLCB2 eGxhbik7CisJCW5vZGUgPSAmdnhsYW4tPmhsaXN0NDsKKwl9CisJdnhsYW5fdnNfYWRkX2Rldih2 cywgdnhsYW4sIG5vZGUpOwogCXJldHVybiAwOwogfQogCmRpZmYgLS1naXQgYS9pbmNsdWRlL25l dC92eGxhbi5oIGIvaW5jbHVkZS9uZXQvdnhsYW4uaAppbmRleCA0OWE1OTIwMmY4NWUuLmRhN2Q2 Yjg5ZGY3NyAxMDA2NDQKLS0tIGEvaW5jbHVkZS9uZXQvdnhsYW4uaAorKysgYi9pbmNsdWRlL25l dC92eGxhbi5oCkBAIC0yMjEsOSArMjIxLDE3IEBAIHN0cnVjdCB2eGxhbl9jb25maWcgewogCWJv b2wJCQlub19zaGFyZTsKIH07CiAKK3N0cnVjdCB2eGxhbl9kZXZfbm9kZSB7CisJc3RydWN0IGhs aXN0X25vZGUgaGxpc3Q7CisJc3RydWN0IHZ4bGFuX2RldiAqdnhsYW47Cit9OworCiAvKiBQc2V1 ZG8gbmV0d29yayBkZXZpY2UgKi8KIHN0cnVjdCB2eGxhbl9kZXYgewotCXN0cnVjdCBobGlzdF9u b2RlIGhsaXN0OwkvKiB2bmkgaGFzaCB0YWJsZSAqLworCXN0cnVjdCB2eGxhbl9kZXZfbm9kZSBo bGlzdDQ7CS8qIHZuaSBoYXNoIHRhYmxlIGZvciBJUHY0IHNvY2tldCAqLworI2lmIElTX0VOQUJM RUQoQ09ORklHX0lQVjYpCisJc3RydWN0IHZ4bGFuX2Rldl9ub2RlIGhsaXN0NjsJLyogdm5pIGhh c2ggdGFibGUgZm9yIElQdjYgc29ja2V0ICovCisjZW5kaWYKIAlzdHJ1Y3QgbGlzdF9oZWFkICBu ZXh0OwkJLyogdnhsYW4ncyBwZXIgbmFtZXNwYWNlIGxpc3QgKi8KIAlzdHJ1Y3QgdnhsYW5fc29j ayBfX3JjdSAqdm40X3NvY2s7CS8qIGxpc3RlbmluZyBzb2NrZXQgZm9yIElQdjQgKi8KICNpZiBJ U19FTkFCTEVEKENPTkZJR19JUFY2KQotLSAKMi4xMy4wCgoKRnJvbSA4YjkxYzMxOGJmN2RmZGY2 YjA5MzJmMTdhOTMyYmU2MDY3Y2ZiN2Q2IE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBK aXJpIEJlbmMgPGpiZW5jQHJlZGhhdC5jb20+CkRhdGU6IFN1biwgMiBKdWwgMjAxNyAxOTowMDo1 OCArMDIwMApTdWJqZWN0OiBbUEFUQ0ggMDYvMThdIGdlbmV2ZTogZml4IGhsaXN0IGNvcnJ1cHRp b24KClsgVXBzdHJlYW0gY29tbWl0IDRiNGMyMWZhZDZhZTZiZDU4ZmYxNTY2ZjIzYjBmNGY3MGZk YzlhMzAgXQoKSXQncyBub3QgYSBnb29kIGlkZWEgdG8gYWRkIHRoZSBzYW1lIGhsaXN0X25vZGUg dG8gdHdvIGRpZmZlcmVudCBoYXNoIGxpc3RzLgpUaGlzIGxlYWRzIHRvIHZhcmlvdXMgaGFyZCB0 byBkZWJ1ZyBtZW1vcnkgY29ycnVwdGlvbnMuCgpGaXhlczogOGVkNjZmMGU4MjM1ICgiZ2VuZXZl OiBpbXBsZW1lbnQgc3VwcG9ydCBmb3IgSVB2Ni1iYXNlZCB0dW5uZWxzIikKQ2M6IEpvaG4gVy4g TGludmlsbGUgPGxpbnZpbGxlQHR1eGRyaXZlci5jb20+ClNpZ25lZC1vZmYtYnk6IEppcmkgQmVu YyA8amJlbmNAcmVkaGF0LmNvbT4KU2lnbmVkLW9mZi1ieTogRGF2aWQgUy4gTWlsbGVyIDxkYXZl bUBkYXZlbWxvZnQubmV0PgotLS0KIGRyaXZlcnMvbmV0L2dlbmV2ZS5jIHwgNDggKysrKysrKysr KysrKysrKysrKysrKysrKysrKysrKystLS0tLS0tLS0tLS0tLS0tCiAxIGZpbGUgY2hhbmdlZCwg MzIgaW5zZXJ0aW9ucygrKSwgMTYgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvZHJpdmVycy9u ZXQvZ2VuZXZlLmMgYi9kcml2ZXJzL25ldC9nZW5ldmUuYwppbmRleCAxOTk0NTliZDY5NjEuLjZl YzhmYzlhYWQ4ZiAxMDA2NDQKLS0tIGEvZHJpdmVycy9uZXQvZ2VuZXZlLmMKKysrIGIvZHJpdmVy cy9uZXQvZ2VuZXZlLmMKQEAgLTQ1LDkgKzQ1LDE3IEBAIHN0cnVjdCBnZW5ldmVfbmV0IHsKIAog c3RhdGljIHVuc2lnbmVkIGludCBnZW5ldmVfbmV0X2lkOwogCitzdHJ1Y3QgZ2VuZXZlX2Rldl9u b2RlIHsKKwlzdHJ1Y3QgaGxpc3Rfbm9kZSBobGlzdDsKKwlzdHJ1Y3QgZ2VuZXZlX2RldiAqZ2Vu ZXZlOworfTsKKwogLyogUHNldWRvIG5ldHdvcmsgZGV2aWNlICovCiBzdHJ1Y3QgZ2VuZXZlX2Rl diB7Ci0Jc3RydWN0IGhsaXN0X25vZGUgIGhsaXN0OwkvKiB2bmkgaGFzaCB0YWJsZSAqLworCXN0 cnVjdCBnZW5ldmVfZGV2X25vZGUgaGxpc3Q0OwkvKiB2bmkgaGFzaCB0YWJsZSBmb3IgSVB2NCBz b2NrZXQgKi8KKyNpZiBJU19FTkFCTEVEKENPTkZJR19JUFY2KQorCXN0cnVjdCBnZW5ldmVfZGV2 X25vZGUgaGxpc3Q2OwkvKiB2bmkgaGFzaCB0YWJsZSBmb3IgSVB2NiBzb2NrZXQgKi8KKyNlbmRp ZgogCXN0cnVjdCBuZXQJICAgKm5ldDsJLyogbmV0bnMgZm9yIHBhY2tldCBpL28gKi8KIAlzdHJ1 Y3QgbmV0X2RldmljZSAgKmRldjsJLyogbmV0ZGV2IGZvciBnZW5ldmUgdHVubmVsICovCiAJc3Ry dWN0IGlwX3R1bm5lbF9pbmZvIGluZm87CkBAIC0xMjMsMTYgKzEzMSwxNiBAQCBzdGF0aWMgc3Ry dWN0IGdlbmV2ZV9kZXYgKmdlbmV2ZV9sb29rdXAoc3RydWN0IGdlbmV2ZV9zb2NrICpncywKIAkJ CQkJX19iZTMyIGFkZHIsIHU4IHZuaVtdKQogewogCXN0cnVjdCBobGlzdF9oZWFkICp2bmlfbGlz dF9oZWFkOwotCXN0cnVjdCBnZW5ldmVfZGV2ICpnZW5ldmU7CisJc3RydWN0IGdlbmV2ZV9kZXZf bm9kZSAqbm9kZTsKIAlfX3UzMiBoYXNoOwogCiAJLyogRmluZCB0aGUgZGV2aWNlIGZvciB0aGlz IFZOSSAqLwogCWhhc2ggPSBnZW5ldmVfbmV0X3ZuaV9oYXNoKHZuaSk7CiAJdm5pX2xpc3RfaGVh ZCA9ICZncy0+dm5pX2xpc3RbaGFzaF07Ci0JaGxpc3RfZm9yX2VhY2hfZW50cnlfcmN1KGdlbmV2 ZSwgdm5pX2xpc3RfaGVhZCwgaGxpc3QpIHsKLQkJaWYgKGVxX3R1bl9pZF9hbmRfdm5pKCh1OCAq KSZnZW5ldmUtPmluZm8ua2V5LnR1bl9pZCwgdm5pKSAmJgotCQkgICAgYWRkciA9PSBnZW5ldmUt PmluZm8ua2V5LnUuaXB2NC5kc3QpCi0JCQlyZXR1cm4gZ2VuZXZlOworCWhsaXN0X2Zvcl9lYWNo X2VudHJ5X3JjdShub2RlLCB2bmlfbGlzdF9oZWFkLCBobGlzdCkgeworCQlpZiAoZXFfdHVuX2lk X2FuZF92bmkoKHU4ICopJm5vZGUtPmdlbmV2ZS0+aW5mby5rZXkudHVuX2lkLCB2bmkpICYmCisJ CSAgICBhZGRyID09IG5vZGUtPmdlbmV2ZS0+aW5mby5rZXkudS5pcHY0LmRzdCkKKwkJCXJldHVy biBub2RlLT5nZW5ldmU7CiAJfQogCXJldHVybiBOVUxMOwogfQpAQCAtMTQyLDE2ICsxNTAsMTYg QEAgc3RhdGljIHN0cnVjdCBnZW5ldmVfZGV2ICpnZW5ldmU2X2xvb2t1cChzdHJ1Y3QgZ2VuZXZl X3NvY2sgKmdzLAogCQkJCQkgc3RydWN0IGluNl9hZGRyIGFkZHI2LCB1OCB2bmlbXSkKIHsKIAlz dHJ1Y3QgaGxpc3RfaGVhZCAqdm5pX2xpc3RfaGVhZDsKLQlzdHJ1Y3QgZ2VuZXZlX2RldiAqZ2Vu ZXZlOworCXN0cnVjdCBnZW5ldmVfZGV2X25vZGUgKm5vZGU7CiAJX191MzIgaGFzaDsKIAogCS8q IEZpbmQgdGhlIGRldmljZSBmb3IgdGhpcyBWTkkgKi8KIAloYXNoID0gZ2VuZXZlX25ldF92bmlf aGFzaCh2bmkpOwogCXZuaV9saXN0X2hlYWQgPSAmZ3MtPnZuaV9saXN0W2hhc2hdOwotCWhsaXN0 X2Zvcl9lYWNoX2VudHJ5X3JjdShnZW5ldmUsIHZuaV9saXN0X2hlYWQsIGhsaXN0KSB7Ci0JCWlm IChlcV90dW5faWRfYW5kX3ZuaSgodTggKikmZ2VuZXZlLT5pbmZvLmtleS50dW5faWQsIHZuaSkg JiYKLQkJICAgIGlwdjZfYWRkcl9lcXVhbCgmYWRkcjYsICZnZW5ldmUtPmluZm8ua2V5LnUuaXB2 Ni5kc3QpKQotCQkJcmV0dXJuIGdlbmV2ZTsKKwlobGlzdF9mb3JfZWFjaF9lbnRyeV9yY3Uobm9k ZSwgdm5pX2xpc3RfaGVhZCwgaGxpc3QpIHsKKwkJaWYgKGVxX3R1bl9pZF9hbmRfdm5pKCh1OCAq KSZub2RlLT5nZW5ldmUtPmluZm8ua2V5LnR1bl9pZCwgdm5pKSAmJgorCQkgICAgaXB2Nl9hZGRy X2VxdWFsKCZhZGRyNiwgJm5vZGUtPmdlbmV2ZS0+aW5mby5rZXkudS5pcHY2LmRzdCkpCisJCQly ZXR1cm4gbm9kZS0+Z2VuZXZlOwogCX0KIAlyZXR1cm4gTlVMTDsKIH0KQEAgLTU3OSw2ICs1ODcs NyBAQCBzdGF0aWMgaW50IGdlbmV2ZV9zb2NrX2FkZChzdHJ1Y3QgZ2VuZXZlX2RldiAqZ2VuZXZl LCBib29sIGlwdjYpCiB7CiAJc3RydWN0IG5ldCAqbmV0ID0gZ2VuZXZlLT5uZXQ7CiAJc3RydWN0 IGdlbmV2ZV9uZXQgKmduID0gbmV0X2dlbmVyaWMobmV0LCBnZW5ldmVfbmV0X2lkKTsKKwlzdHJ1 Y3QgZ2VuZXZlX2Rldl9ub2RlICpub2RlOwogCXN0cnVjdCBnZW5ldmVfc29jayAqZ3M7CiAJX191 OCB2bmlbM107CiAJX191MzIgaGFzaDsKQEAgLTU5NywxNSArNjA2LDIwIEBAIHN0YXRpYyBpbnQg Z2VuZXZlX3NvY2tfYWRkKHN0cnVjdCBnZW5ldmVfZGV2ICpnZW5ldmUsIGJvb2wgaXB2NikKIG91 dDoKIAlncy0+Y29sbGVjdF9tZCA9IGdlbmV2ZS0+Y29sbGVjdF9tZDsKICNpZiBJU19FTkFCTEVE KENPTkZJR19JUFY2KQotCWlmIChpcHY2KQorCWlmIChpcHY2KSB7CiAJCXJjdV9hc3NpZ25fcG9p bnRlcihnZW5ldmUtPnNvY2s2LCBncyk7Ci0JZWxzZQorCQlub2RlID0gJmdlbmV2ZS0+aGxpc3Q2 OworCX0gZWxzZQogI2VuZGlmCisJewogCQlyY3VfYXNzaWduX3BvaW50ZXIoZ2VuZXZlLT5zb2Nr NCwgZ3MpOworCQlub2RlID0gJmdlbmV2ZS0+aGxpc3Q0OworCX0KKwlub2RlLT5nZW5ldmUgPSBn ZW5ldmU7CiAKIAl0dW5uZWxfaWRfdG9fdm5pKGdlbmV2ZS0+aW5mby5rZXkudHVuX2lkLCB2bmkp OwogCWhhc2ggPSBnZW5ldmVfbmV0X3ZuaV9oYXNoKHZuaSk7Ci0JaGxpc3RfYWRkX2hlYWRfcmN1 KCZnZW5ldmUtPmhsaXN0LCAmZ3MtPnZuaV9saXN0W2hhc2hdKTsKKwlobGlzdF9hZGRfaGVhZF9y Y3UoJm5vZGUtPmhsaXN0LCAmZ3MtPnZuaV9saXN0W2hhc2hdKTsKIAlyZXR1cm4gMDsKIH0KIApA QCAtNjMyLDggKzY0NiwxMCBAQCBzdGF0aWMgaW50IGdlbmV2ZV9zdG9wKHN0cnVjdCBuZXRfZGV2 aWNlICpkZXYpCiB7CiAJc3RydWN0IGdlbmV2ZV9kZXYgKmdlbmV2ZSA9IG5ldGRldl9wcml2KGRl dik7CiAKLQlpZiAoIWhsaXN0X3VuaGFzaGVkKCZnZW5ldmUtPmhsaXN0KSkKLQkJaGxpc3RfZGVs X3JjdSgmZ2VuZXZlLT5obGlzdCk7CisJaGxpc3RfZGVsX2luaXRfcmN1KCZnZW5ldmUtPmhsaXN0 NC5obGlzdCk7CisjaWYgSVNfRU5BQkxFRChDT05GSUdfSVBWNikKKwlobGlzdF9kZWxfaW5pdF9y Y3UoJmdlbmV2ZS0+aGxpc3Q2LmhsaXN0KTsKKyNlbmRpZgogCWdlbmV2ZV9zb2NrX3JlbGVhc2Uo Z2VuZXZlKTsKIAlyZXR1cm4gMDsKIH0KLS0gCjIuMTMuMAoKCkZyb20gMzMxZWM5MWUwZGIwYTcy YTViYzJiNzhhYmNhYjhiZjJlN2ZjZmRmYSBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJvbTog QWxiYW4gQnJvd2FleXMgPGFsYmFuLmJyb3dhZXlzQGdtYWlsLmNvbT4KRGF0ZTogTW9uLCAzIEp1 bCAyMDE3IDAzOjIwOjEzICswMjAwClN1YmplY3Q6IFtQQVRDSCAwNy8xOF0gbmV0OiBjb3JlOiBG aXggc2xhYi1vdXQtb2YtYm91bmRzIGluCiBuZXRkZXZfc3RhdHNfdG9fc3RhdHM2NAoKWyBVcHN0 cmVhbSBjb21taXQgOWFmOTk1OWUxNDJjMjc0ZjRhMzBmZWZiNzFkOTdkMmIwMjhiMzM3ZiBdCgpj b21taXQgOTI1NjY0NWFmMDk4ICgibmV0L2NvcmU6IHJlbGF4IEJVSUxEX0JVR19PTiBpbgpuZXRk ZXZfc3RhdHNfdG9fc3RhdHM2NCIpIG1hZGUgYW4gYXR0ZW1wdCB0byByZWFkIGJleW9uZAp0aGUg c2l6ZSBvZiB0aGUgc291cmNlIGEgcG9zc2liaWxpdHkuCgpGaXggdG8gb25seSBjb3B5IHNyYyBz aXplIHRvIGRlc3QuIEFzIGRlc3QgbWlnaHQgYmUgYmlnZ2VyIHRoYW4gc3JjLgoKID09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PQogQlVHOiBLQVNBTjogc2xhYi1vdXQtb2YtYm91bmRzIGluIG5ldGRldl9zdGF0c190b19zdGF0 czY0KzB4ZS8weDMwIGF0IGFkZHIgZmZmZjg4MDFiZTI0OGIyMAogUmVhZCBvZiBzaXplIDE5MiBi eSB0YXNrIFZCb3hOZXRBZHBDdGwvNjczNAogQ1BVOiAxIFBJRDogNjczNCBDb21tOiBWQm94TmV0 QWRwQ3RsIFRhaW50ZWQ6IEcgICAgICAgICAgIE8gICAgNC4xMS40cHJhaGFsK2ludGVsKyAjMTE4 CiBIYXJkd2FyZSBuYW1lOiBMRU5PVk8gMjBDRENUTzFXVy8yMENEQ1RPMVdXLCBCSU9TIEdRRVQ1 MldXICgxLjMyICkgMDUvMDQvMjAxNwogQ2FsbCBUcmFjZToKICBkdW1wX3N0YWNrKzB4NjMvMHg4 NgogIGthc2FuX29iamVjdF9lcnIrMHgxYy8weDcwCiAga2FzYW5fcmVwb3J0KzB4MjcwLzB4NTIw CiAgPyBuZXRkZXZfc3RhdHNfdG9fc3RhdHM2NCsweGUvMHgzMAogID8gc2NoZWRfY2xvY2tfY3B1 KzB4MWIvMHgxOTAKICA/IF9fbW9kdWxlX2FkZHJlc3MrMHgzZS8weDNiMAogID8gdW53aW5kX25l eHRfZnJhbWUrMHgxZWEvMHhiMDAKICBjaGVja19tZW1vcnlfcmVnaW9uKzB4MTNjLzB4MWEwCiAg bWVtY3B5KzB4MjMvMHg1MAogIG5ldGRldl9zdGF0c190b19zdGF0czY0KzB4ZS8weDMwCiAgZGV2 X2dldF9zdGF0cysweDFiOS8weDIzMAogIHJ0bmxfZmlsbF9zdGF0cysweDQ0LzB4YzAwCiAgPyBu bGFfcHV0KzB4YzYvMHgxMzAKICBydG5sX2ZpbGxfaWZpbmZvKzB4ZTllLzB4MzcwMAogID8gcnRu bF9maWxsX3ZmaW5mbysweGRlMC8weGRlMAogID8gc2NoZWRfY2xvY2srMHg5LzB4MTAKICA/IHNj aGVkX2Nsb2NrKzB4OS8weDEwCiAgPyBzY2hlZF9jbG9ja19sb2NhbCsweDEyMC8weDEzMAogID8g X19tb2R1bGVfYWRkcmVzcysweDNlLzB4M2IwCiAgPyB1bndpbmRfbmV4dF9mcmFtZSsweDFlYS8w eGIwMAogID8gc2NoZWRfY2xvY2srMHg5LzB4MTAKICA/IHNjaGVkX2Nsb2NrKzB4OS8weDEwCiAg PyBzY2hlZF9jbG9ja19jcHUrMHgxYi8weDE5MAogID8gVkJveE5ldEFkcExpbnV4SU9DdGxVbmxv Y2tlZCsweDE0Yi8weDI4MCBbdmJveG5ldGFkcF0KICA/IGRlcG90X3NhdmVfc3RhY2srMHgxZDgv MHg0YTAKICA/IGRlcG90X3NhdmVfc3RhY2srMHgzNGYvMHg0YTAKICA/IGRlcG90X3NhdmVfc3Rh Y2srMHgzNGYvMHg0YTAKICA/IHNhdmVfc3RhY2srMHhiMS8weGQwCiAgPyBzYXZlX3N0YWNrX3Ry YWNlKzB4MTYvMHgyMAogID8gc2F2ZV9zdGFjaysweDQ2LzB4ZDAKICA/IGthc2FuX3NsYWJfYWxs b2MrMHgxMi8weDIwCiAgPyBfX2ttYWxsb2Nfbm9kZV90cmFja19jYWxsZXIrMHgxMGQvMHgzNTAK ICA/IF9fa21hbGxvY19yZXNlcnZlLmlzcmEuMzYrMHgyYy8weGMwCiAgPyBfX2FsbG9jX3NrYisw eGQwLzB4NTYwCiAgPyBydG1zZ19pZmluZm9fYnVpbGRfc2tiKzB4NjEvMHgxMjAKICA/IHJ0bXNn X2lmaW5mby5wYXJ0LjI1KzB4MTYvMHhiMAogID8gcnRtc2dfaWZpbmZvKzB4NDcvMHg3MAogID8g cmVnaXN0ZXJfbmV0ZGV2KzB4MTUvMHgzMAogID8gdmJveE5ldEFkcE9zQ3JlYXRlKzB4YzAvMHgx YzAgW3Zib3huZXRhZHBdCiAgPyB2Ym94TmV0QWRwQ3JlYXRlKzB4MjEwLzB4NDAwIFt2Ym94bmV0 YWRwXQogID8gVkJveE5ldEFkcExpbnV4SU9DdGxVbmxvY2tlZCsweDE0Yi8weDI4MCBbdmJveG5l dGFkcF0KICA/IGRvX3Zmc19pb2N0bCsweDE3Zi8weGZmMAogID8gU3lTX2lvY3RsKzB4NzQvMHg4 MAogID8gZG9fc3lzY2FsbF82NCsweDE4Mi8weDM5MAogID8gX19hbGxvY19za2IrMHhkMC8weDU2 MAogID8gX19hbGxvY19za2IrMHhkMC8weDU2MAogID8gc2F2ZV9zdGFja190cmFjZSsweDE2LzB4 MjAKICA/IGluaXRfb2JqZWN0KzB4NjQvMHhhMAogID8gX19fc2xhYl9hbGxvYysweDFhZS8weDVj MAogID8gX19fc2xhYl9hbGxvYysweDFhZS8weDVjMAogID8gX19hbGxvY19za2IrMHhkMC8weDU2 MAogID8gc2NoZWRfY2xvY2srMHg5LzB4MTAKICA/IGthc2FuX3VucG9pc29uX3NoYWRvdysweDM1 LzB4NTAKICA/IGthc2FuX2ttYWxsb2MrMHhhZC8weGUwCiAgPyBfX2ttYWxsb2Nfbm9kZV90cmFj a19jYWxsZXIrMHgyNDYvMHgzNTAKICA/IF9fYWxsb2Nfc2tiKzB4ZDAvMHg1NjAKICA/IGthc2Fu X3VucG9pc29uX3NoYWRvdysweDM1LzB4NTAKICA/IG1lbXNldCsweDMxLzB4NDAKICA/IF9fYWxs b2Nfc2tiKzB4MzFmLzB4NTYwCiAgPyBuYXBpX2NvbnN1bWVfc2tiKzB4MzIwLzB4MzIwCiAgPyBi cl9nZXRfbGlua19hZl9zaXplX2ZpbHRlcmVkKzB4YjcvMHgxMjAgW2JyaWRnZV0KICA/IGlmX25s bXNnX3NpemUrMHg0NDAvMHg2MzAKICBydG1zZ19pZmluZm9fYnVpbGRfc2tiKzB4ODMvMHgxMjAK ICBydG1zZ19pZmluZm8ucGFydC4yNSsweDE2LzB4YjAKICBydG1zZ19pZmluZm8rMHg0Ny8weDcw CiAgcmVnaXN0ZXJfbmV0ZGV2aWNlKzB4YTJiLzB4ZTUwCiAgPyBfX2ttYWxsb2MrMHgxNzEvMHgy ZDAKICA/IG5ldGRldl9jaGFuZ2VfZmVhdHVyZXMrMHg4MC8weDgwCiAgcmVnaXN0ZXJfbmV0ZGV2 KzB4MTUvMHgzMAogIHZib3hOZXRBZHBPc0NyZWF0ZSsweGMwLzB4MWMwIFt2Ym94bmV0YWRwXQog IHZib3hOZXRBZHBDcmVhdGUrMHgyMTAvMHg0MDAgW3Zib3huZXRhZHBdCiAgPyB2Ym94TmV0QWRw Q29tcG9zZU1BQ0FkZHJlc3MrMHgxZDAvMHgxZDAgW3Zib3huZXRhZHBdCiAgPyBrYXNhbl9jaGVj a193cml0ZSsweDE0LzB4MjAKICBWQm94TmV0QWRwTGludXhJT0N0bFVubG9ja2VkKzB4MTRiLzB4 MjgwIFt2Ym94bmV0YWRwXQogID8gVkJveE5ldEFkcExpbnV4T3BlbisweDIwLzB4MjAgW3Zib3hu ZXRhZHBdCiAgPyBsb2NrX2FjcXVpcmUrMHgxMWMvMHgyNzAKICA/IF9fYXVkaXRfc3lzY2FsbF9l bnRyeSsweDJmYi8weDY2MAogIGRvX3Zmc19pb2N0bCsweDE3Zi8weGZmMAogID8gX19hdWRpdF9z eXNjYWxsX2VudHJ5KzB4MmZiLzB4NjYwCiAgPyBpb2N0bF9wcmVhbGxvY2F0ZSsweDFkMC8weDFk MAogID8gX19hdWRpdF9zeXNjYWxsX2VudHJ5KzB4MmZiLzB4NjYwCiAgPyBrbWVtX2NhY2hlX2Zy ZWUrMHhiMi8weDI1MAogID8gc3lzY2FsbF90cmFjZV9lbnRlcisweDUzNy8weGQwMAogID8gZXhp dF90b191c2VybW9kZV9sb29wKzB4MTAwLzB4MTAwCiAgU3lTX2lvY3RsKzB4NzQvMHg4MAogID8g ZG9fc3lzX29wZW4rMHgzNTAvMHgzNTAKICA/IGRvX3Zmc19pb2N0bCsweGZmMC8weGZmMAogIGRv X3N5c2NhbGxfNjQrMHgxODIvMHgzOTAKICBlbnRyeV9TWVNDQUxMNjRfc2xvd19wYXRoKzB4MjUv MHgyNQogUklQOiAwMDMzOjB4N2Y3ZTM5YTFhZTA3CiBSU1A6IDAwMmI6MDAwMDdmZmM2ZjA0YzZk OCBFRkxBR1M6IDAwMDAwMjA2IE9SSUdfUkFYOiAwMDAwMDAwMDAwMDAwMDEwCiBSQVg6IGZmZmZm ZmZmZmZmZmZmZGEgUkJYOiAwMDAwN2ZmYzZmMDRjNzMwIFJDWDogMDAwMDdmN2UzOWExYWUwNwog UkRYOiAwMDAwN2ZmYzZmMDRjNzMwIFJTSTogMDAwMDAwMDBjMDIwNzYwMSBSREk6IDAwMDAwMDAw MDAwMDAwMDcKIFJCUDogMDAwMDdmZmM2ZjA0YzcwMCBSMDg6IDAwMDA3ZmZjNmYwNGM3ODAgUjA5 OiAwMDAwMDAwMDAwMDAwMDA4CiBSMTA6IDAwMDAwMDAwMDAwMDA1NDEgUjExOiAwMDAwMDAwMDAw MDAwMjA2IFIxMjogMDAwMDAwMDAwMDAwMDAwNwogUjEzOiAwMDAwMDAwMGMwMjA3NjAxIFIxNDog MDAwMDdmZmM2ZjA0YzczMCBSMTU6IDAwMDAwMDAwMDAwMDAwMTIKIE9iamVjdCBhdCBmZmZmODgw MWJlMjQ4MDA4LCBpbiBjYWNoZSBrbWFsbG9jLTQwOTYgc2l6ZTogNDA5NgogQWxsb2NhdGVkOgog UElEID0gNjczNAogIHNhdmVfc3RhY2tfdHJhY2UrMHgxNi8weDIwCiAgc2F2ZV9zdGFjaysweDQ2 LzB4ZDAKICBrYXNhbl9rbWFsbG9jKzB4YWQvMHhlMAogIF9fa21hbGxvYysweDE3MS8weDJkMAog IGFsbG9jX25ldGRldl9tcXMrMHg4YTcvMHhiZTAKICB2Ym94TmV0QWRwT3NDcmVhdGUrMHg2NS8w eDFjMCBbdmJveG5ldGFkcF0KICB2Ym94TmV0QWRwQ3JlYXRlKzB4MjEwLzB4NDAwIFt2Ym94bmV0 YWRwXQogIFZCb3hOZXRBZHBMaW51eElPQ3RsVW5sb2NrZWQrMHgxNGIvMHgyODAgW3Zib3huZXRh ZHBdCiAgZG9fdmZzX2lvY3RsKzB4MTdmLzB4ZmYwCiAgU3lTX2lvY3RsKzB4NzQvMHg4MAogIGRv X3N5c2NhbGxfNjQrMHgxODIvMHgzOTAKICByZXR1cm5fZnJvbV9TWVNDQUxMXzY0KzB4MC8weDZh CiBGcmVlZDoKIFBJRCA9IDU2MDAKICBzYXZlX3N0YWNrX3RyYWNlKzB4MTYvMHgyMAogIHNhdmVf c3RhY2srMHg0Ni8weGQwCiAga2FzYW5fc2xhYl9mcmVlKzB4NzMvMHhjMAogIGtmcmVlKzB4ZTQv MHgyMjAKICBrdmZyZWUrMHgyNS8weDMwCiAgc2luZ2xlX3JlbGVhc2UrMHg3NC8weGIwCiAgX19m cHV0KzB4MjY1LzB4NmIwCiAgX19fX2ZwdXQrMHg5LzB4MTAKICB0YXNrX3dvcmtfcnVuKzB4ZDUv MHgxNTAKICBleGl0X3RvX3VzZXJtb2RlX2xvb3ArMHhlMi8weDEwMAogIGRvX3N5c2NhbGxfNjQr MHgyNmMvMHgzOTAKICByZXR1cm5fZnJvbV9TWVNDQUxMXzY0KzB4MC8weDZhCiBNZW1vcnkgc3Rh dGUgYXJvdW5kIHRoZSBidWdneSBhZGRyZXNzOgogIGZmZmY4ODAxYmUyNDhhODA6IDAwIDAwIDAw IDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwCiAgZmZmZjg4MDFiZTI0OGIw MDogMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAKID5mZmZm ODgwMWJlMjQ4YjgwOiAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwNyBmYyBmYyBm YyBmYwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IF4KICBmZmZmODgwMWJlMjQ4YzAwOiBmYyBmYyBmYyBmYyBmYyBmYyBmYyBmYyBmYyBmYyBmYyBm YyBmYyBmYyBmYyBmYwogIGZmZmY4ODAxYmUyNDhjODA6IGZjIGZjIGZjIGZjIGZjIGZjIGZjIGZj IGZjIGZjIGZjIGZjIGZjIGZjIGZjIGZjCiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KClNpZ25lZC1vZmYtYnk6IEFsYmFu IEJyb3dhZXlzIDxhbGJhbi5icm93YWV5c0BnbWFpbC5jb20+ClNpZ25lZC1vZmYtYnk6IERhdmlk IFMuIE1pbGxlciA8ZGF2ZW1AZGF2ZW1sb2Z0Lm5ldD4KLS0tCiBuZXQvY29yZS9kZXYuYyB8IDIg Ky0KIDEgZmlsZSBjaGFuZ2VkLCAxIGluc2VydGlvbigrKSwgMSBkZWxldGlvbigtKQoKZGlmZiAt LWdpdCBhL25ldC9jb3JlL2Rldi5jIGIvbmV0L2NvcmUvZGV2LmMKaW5kZXggNDE2MTM3YzY0YmY4 Li4yNWY5NDYxZWZmM2YgMTAwNjQ0Ci0tLSBhL25ldC9jb3JlL2Rldi5jCisrKyBiL25ldC9jb3Jl L2Rldi5jCkBAIC03NzUxLDcgKzc3NTEsNyBAQCB2b2lkIG5ldGRldl9zdGF0c190b19zdGF0czY0 KHN0cnVjdCBydG5sX2xpbmtfc3RhdHM2NCAqc3RhdHM2NCwKIHsKICNpZiBCSVRTX1BFUl9MT05H ID09IDY0CiAJQlVJTERfQlVHX09OKHNpemVvZigqc3RhdHM2NCkgPCBzaXplb2YoKm5ldGRldl9z dGF0cykpOwotCW1lbWNweShzdGF0czY0LCBuZXRkZXZfc3RhdHMsIHNpemVvZigqc3RhdHM2NCkp OworCW1lbWNweShzdGF0czY0LCBuZXRkZXZfc3RhdHMsIHNpemVvZigqbmV0ZGV2X3N0YXRzKSk7 CiAJLyogemVybyBvdXQgY291bnRlcnMgdGhhdCBvbmx5IGV4aXN0IGluIHJ0bmxfbGlua19zdGF0 czY0ICovCiAJbWVtc2V0KChjaGFyICopc3RhdHM2NCArIHNpemVvZigqbmV0ZGV2X3N0YXRzKSwg MCwKIAkgICAgICAgc2l6ZW9mKCpzdGF0czY0KSAtIHNpemVvZigqbmV0ZGV2X3N0YXRzKSk7Ci0t IAoyLjEzLjAKCgpGcm9tIDM4ODQ3MjBlMWIxYzYyMmExNDU4MmQyNzBkZGY0OGU5ODg0MDM2MTUg TW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCkZyb206IERlcmVrIENoaWNrbGVzIDxkZXJlay5jaGlj a2xlc0BjYXZpdW0uY29tPgpEYXRlOiBXZWQsIDUgSnVsIDIwMTcgMTE6NTk6MjcgLTA3MDAKU3Vi amVjdDogW1BBVENIIDA4LzE4XSBsaXF1aWRpbzogZml4IGJ1ZyBpbiBzb2Z0IHJlc2V0IGZhaWx1 cmUgZGV0ZWN0aW9uCgpbIFVwc3RyZWFtIGNvbW1pdCAwNWE2YjRjYWU4YzBjYzE2ODBjOWRkMzNh OTdhNDlhMTNjMGYwMWJjIF0KClRoZSBjb2RlIHRoYXQgZGV0ZWN0cyBhIGZhaWxlZCBzb2Z0IHJl c2V0IG9mIE9jdGVvbiBpcyBjb21wYXJpbmcgdGhlIHdyb25nCnZhbHVlIGFnYWluc3QgdGhlIHJl c2V0IHZhbHVlIG9mIHRoZSBPY3Rlb24gU0xJX1NDUkFUQ0hfMSByZWdpc3RlciwKcmVzdWx0aW5n IGluIGFuIGluYWJpbGl0eSB0byBkZXRlY3QgYSBzb2Z0IHJlc2V0IGZhaWx1cmUuICBGaXggaXQg YnkgdXNpbmcKdGhlIGNvcnJlY3QgdmFsdWUgaW4gdGhlIGNvbXBhcmlzb24sIHdoaWNoIGlzIGFu eSBub24temVybyB2YWx1ZS4KCkZpeGVzOiBmMjFmYjNlZDM2NGIgKCJBZGQgc3VwcG9ydCBvZiBD YXZpdW0gTGlxdWlkaW8gZXRoZXJuZXQgYWRhcHRlcnMiKQpGaXhlczogYzBlYWI1YjM1ODBhICgi bGlxdWlkaW86IENOMjNYWCBmaXJtd2FyZSBkb3dubG9hZCIpClNpZ25lZC1vZmYtYnk6IERlcmVr IENoaWNrbGVzIDxkZXJlay5jaGlja2xlc0BjYXZpdW0uY29tPgpTaWduZWQtb2ZmLWJ5OiBTYXRh bmFuZCBCdXJsYSA8c2F0YW5hbmRhLmJ1cmxhQGNhdml1bS5jb20+ClNpZ25lZC1vZmYtYnk6IFJh Z2h1IFZhdHNhdmF5aSA8cmFnaHUudmF0c2F2YXlpQGNhdml1bS5jb20+ClNpZ25lZC1vZmYtYnk6 IEZlbGl4IE1hbmx1bmFzIDxmZWxpeC5tYW5sdW5hc0BjYXZpdW0uY29tPgpSZXZpZXdlZC1ieTog TGVvbiBSb21hbm92c2t5IDxsZW9ucm9AbWVsbGFub3guY29tPgpTaWduZWQtb2ZmLWJ5OiBEYXZp ZCBTLiBNaWxsZXIgPGRhdmVtQGRhdmVtbG9mdC5uZXQ+Ci0tLQogZHJpdmVycy9uZXQvZXRoZXJu ZXQvY2F2aXVtL2xpcXVpZGlvL2NuMjN4eF9wZl9kZXZpY2UuYyB8IDIgKy0KIGRyaXZlcnMvbmV0 L2V0aGVybmV0L2Nhdml1bS9saXF1aWRpby9jbjY2eHhfZGV2aWNlLmMgICAgfCAyICstCiAyIGZp bGVzIGNoYW5nZWQsIDIgaW5zZXJ0aW9ucygrKSwgMiBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQg YS9kcml2ZXJzL25ldC9ldGhlcm5ldC9jYXZpdW0vbGlxdWlkaW8vY24yM3h4X3BmX2RldmljZS5j IGIvZHJpdmVycy9uZXQvZXRoZXJuZXQvY2F2aXVtL2xpcXVpZGlvL2NuMjN4eF9wZl9kZXZpY2Uu YwppbmRleCA5NjJkY2JjZWY4YjUuLjBkY2RhMGI5YjBjYyAxMDA2NDQKLS0tIGEvZHJpdmVycy9u ZXQvZXRoZXJuZXQvY2F2aXVtL2xpcXVpZGlvL2NuMjN4eF9wZl9kZXZpY2UuYworKysgYi9kcml2 ZXJzL25ldC9ldGhlcm5ldC9jYXZpdW0vbGlxdWlkaW8vY24yM3h4X3BmX2RldmljZS5jCkBAIC0y MjEsNyArMjIxLDcgQEAgc3RhdGljIGludCBjbjIzeHhfcGZfc29mdF9yZXNldChzdHJ1Y3Qgb2N0 ZW9uX2RldmljZSAqb2N0KQogCS8qIFdhaXQgZm9yIDEwMG1zIGFzIE9jdGVvbiByZXNldHMuICov CiAJbWRlbGF5KDEwMCk7CiAKLQlpZiAob2N0ZW9uX3JlYWRfY3NyNjQob2N0LCBDTjIzWFhfU0xJ X1NDUkFUQ0gxKSA9PSAweDEyMzRVTEwpIHsKKwlpZiAob2N0ZW9uX3JlYWRfY3NyNjQob2N0LCBD TjIzWFhfU0xJX1NDUkFUQ0gxKSkgewogCQlkZXZfZXJyKCZvY3QtPnBjaV9kZXYtPmRldiwgIk9D VEVPTlslZF06IFNvZnQgcmVzZXQgZmFpbGVkXG4iLAogCQkJb2N0LT5vY3Rlb25faWQpOwogCQly ZXR1cm4gMTsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L2V0aGVybmV0L2Nhdml1bS9saXF1aWRp by9jbjY2eHhfZGV2aWNlLmMgYi9kcml2ZXJzL25ldC9ldGhlcm5ldC9jYXZpdW0vbGlxdWlkaW8v Y242Nnh4X2RldmljZS5jCmluZGV4IGJkZWMwNTExMDdhNi4uZDYyYTUwOTY3NjhlIDEwMDY0NAot LS0gYS9kcml2ZXJzL25ldC9ldGhlcm5ldC9jYXZpdW0vbGlxdWlkaW8vY242Nnh4X2RldmljZS5j CisrKyBiL2RyaXZlcnMvbmV0L2V0aGVybmV0L2Nhdml1bS9saXF1aWRpby9jbjY2eHhfZGV2aWNl LmMKQEAgLTQ0LDcgKzQ0LDcgQEAgaW50IGxpb19jbjZ4eHhfc29mdF9yZXNldChzdHJ1Y3Qgb2N0 ZW9uX2RldmljZSAqb2N0KQogCS8qIFdhaXQgZm9yIDEwbXMgYXMgT2N0ZW9uIHJlc2V0cy4gKi8K IAltZGVsYXkoMTAwKTsKIAotCWlmIChvY3Rlb25fcmVhZF9jc3I2NChvY3QsIENONlhYWF9TTElf U0NSQVRDSDEpID09IDB4MTIzNFVMTCkgeworCWlmIChvY3Rlb25fcmVhZF9jc3I2NChvY3QsIENO NlhYWF9TTElfU0NSQVRDSDEpKSB7CiAJCWRldl9lcnIoJm9jdC0+cGNpX2Rldi0+ZGV2LCAiU29m dCByZXNldCBmYWlsZWRcbiIpOwogCQlyZXR1cm4gMTsKIAl9Ci0tIAoyLjEzLjAKCgpGcm9tIDIy ZmNhYTAzMzY4NzNkYTYyZDBmOWZmZWE0YTk0N2QzN2MwMDUwYTUgTW9uIFNlcCAxNyAwMDowMDow MCAyMDAxCkZyb206IERhdmlkIEFoZXJuIDxkc2FoZXJuQGdtYWlsLmNvbT4KRGF0ZTogV2VkLCA1 IEp1bCAyMDE3IDE0OjQxOjQ2IC0wNjAwClN1YmplY3Q6IFtQQVRDSCAwOS8xOF0gbmV0OiBpcHY2 OiBDb21wYXJlIGx3c3RhdGUgaW4gZGV0ZWN0aW5nIGR1cGxpY2F0ZQogbmV4dGhvcHMKTUlNRS1W ZXJzaW9uOiAxLjAKQ29udGVudC1UeXBlOiB0ZXh0L3BsYWluOyBjaGFyc2V0PVVURi04CkNvbnRl bnQtVHJhbnNmZXItRW5jb2Rpbmc6IDhiaXQKClsgVXBzdHJlYW0gY29tbWl0IGYwNmI3NTQ5Yjc5 ZTI5YTY3MjMzNmQ0ZTEzNDUyNDM3M2ZiN2EyMzIgXQoKTGVubmVydCByZXBvcnRlZCBhIGZhaWx1 cmUgdG8gYWRkIGRpZmZlcmVudCBtcGxzIGVuY2FwcyBpbiBhIG11bHRpcGF0aApyb3V0ZToKCiAg JCBpcCAtNiByb3V0ZSBhZGQgMTIzNDo6LzE2IFwKICAgICAgICBuZXh0aG9wIGVuY2FwIG1wbHMg MTAgdmlhIGZlODA6OjEgZGV2IGVuczMgXAogICAgICAgIG5leHRob3AgZW5jYXAgbXBscyAyMCB2 aWEgZmU4MDo6MSBkZXYgZW5zMwogIFJUTkVUTElOSyBhbnN3ZXJzOiBGaWxlIGV4aXN0cwoKVGhl IHByb2JsZW0gaXMgdGhhdCB0aGUgZHVwbGljYXRlIG5leHRob3AgZGV0ZWN0aW9uIGRvZXMgbm90 IGNvbXBhcmUKbHd0dW5uZWwgY29uZmlndXJhdGlvbi4gQWRkIGl0LgoKRml4ZXM6IDE5ZTQyZTQ1 MTUwNiAoImlwdjY6IHN1cHBvcnQgZm9yIGZpYiByb3V0ZSBsd3R1bm5lbCBlbmNhcCBhdHRyaWJ1 dGVzIikKU2lnbmVkLW9mZi1ieTogRGF2aWQgQWhlcm4gPGRzYWhlcm5AZ21haWwuY29tPgpSZXBv cnRlZC1ieTogSm/Do28gVGF2ZWlyYSBBcmHDumpvIDxqb2FvLnRhdmVpcmFAZ21haWwuY29tPgpS ZXBvcnRlZC1ieTogTGVubmVydCBCdXl0ZW5oZWsgPGJ1eXRlbmhAd2FudHN0b2ZseS5vcmc+CkFj a2VkLWJ5OiBSb29wYSBQcmFiaHUgPHJvb3BhQGN1bXVsdXNuZXR3b3Jrcy5jb20+ClRlc3RlZC1i eTogTGVubmVydCBCdXl0ZW5oZWsgPGJ1eXRlbmhAd2FudHN0b2ZseS5vcmc+ClNpZ25lZC1vZmYt Ynk6IERhdmlkIFMuIE1pbGxlciA8ZGF2ZW1AZGF2ZW1sb2Z0Lm5ldD4KLS0tCiBpbmNsdWRlL25l dC9pcDZfcm91dGUuaCB8IDggKysrKysrKysKIG5ldC9pcHY2L2lwNl9maWIuYyAgICAgIHwgNSAr LS0tLQogbmV0L2lwdjYvcm91dGUuYyAgICAgICAgfCA4ICstLS0tLS0tCiAzIGZpbGVzIGNoYW5n ZWQsIDEwIGluc2VydGlvbnMoKyksIDExIGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL2luY2x1 ZGUvbmV0L2lwNl9yb3V0ZS5oIGIvaW5jbHVkZS9uZXQvaXA2X3JvdXRlLmgKaW5kZXggZjVlNjI1 ZjUzMzY3Li40MzQxNzMxZjM5YTUgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUvbmV0L2lwNl9yb3V0ZS5o CisrKyBiL2luY2x1ZGUvbmV0L2lwNl9yb3V0ZS5oCkBAIC0yMiw2ICsyMiw3IEBAIHN0cnVjdCBy b3V0ZV9pbmZvIHsKICNpbmNsdWRlIDxuZXQvZmxvdy5oPgogI2luY2x1ZGUgPG5ldC9pcDZfZmli Lmg+CiAjaW5jbHVkZSA8bmV0L3NvY2suaD4KKyNpbmNsdWRlIDxuZXQvbHd0dW5uZWwuaD4KICNp bmNsdWRlIDxsaW51eC9pcC5oPgogI2luY2x1ZGUgPGxpbnV4L2lwdjYuaD4KICNpbmNsdWRlIDxs aW51eC9yb3V0ZS5oPgpAQCAtMjMzLDQgKzIzNCwxMSBAQCBzdGF0aWMgaW5saW5lIHN0cnVjdCBp bjZfYWRkciAqcnQ2X25leHRob3Aoc3RydWN0IHJ0Nl9pbmZvICpydCwKIAkJcmV0dXJuIGRhZGRy OwogfQogCitzdGF0aWMgaW5saW5lIGJvb2wgcnQ2X2R1cGxpY2F0ZV9uZXh0aG9wKHN0cnVjdCBy dDZfaW5mbyAqYSwgc3RydWN0IHJ0Nl9pbmZvICpiKQoreworCXJldHVybiBhLT5kc3QuZGV2ID09 IGItPmRzdC5kZXYgJiYKKwkgICAgICAgYS0+cnQ2aV9pZGV2ID09IGItPnJ0NmlfaWRldiAmJgor CSAgICAgICBpcHY2X2FkZHJfZXF1YWwoJmEtPnJ0NmlfZ2F0ZXdheSwgJmItPnJ0NmlfZ2F0ZXdh eSkgJiYKKwkgICAgICAgIWx3dHVubmVsX2NtcF9lbmNhcChhLT5kc3QubHd0c3RhdGUsIGItPmRz dC5sd3RzdGF0ZSk7Cit9CiAjZW5kaWYKZGlmZiAtLWdpdCBhL25ldC9pcHY2L2lwNl9maWIuYyBi L25ldC9pcHY2L2lwNl9maWIuYwppbmRleCBlNmI3OGJhMGU2MzYuLmU0ZTlmNzUyZWJiZiAxMDA2 NDQKLS0tIGEvbmV0L2lwdjYvaXA2X2ZpYi5jCisrKyBiL25ldC9pcHY2L2lwNl9maWIuYwpAQCAt Nzg0LDEwICs3ODQsNyBAQCBzdGF0aWMgaW50IGZpYjZfYWRkX3J0Mm5vZGUoc3RydWN0IGZpYjZf bm9kZSAqZm4sIHN0cnVjdCBydDZfaW5mbyAqcnQsCiAJCQkJZ290byBuZXh0X2l0ZXI7CiAJCQl9 CiAKLQkJCWlmIChpdGVyLT5kc3QuZGV2ID09IHJ0LT5kc3QuZGV2ICYmCi0JCQkgICAgaXRlci0+ cnQ2aV9pZGV2ID09IHJ0LT5ydDZpX2lkZXYgJiYKLQkJCSAgICBpcHY2X2FkZHJfZXF1YWwoJml0 ZXItPnJ0NmlfZ2F0ZXdheSwKLQkJCQkJICAgICZydC0+cnQ2aV9nYXRld2F5KSkgeworCQkJaWYg KHJ0Nl9kdXBsaWNhdGVfbmV4dGhvcChpdGVyLCBydCkpIHsKIAkJCQlpZiAocnQtPnJ0NmlfbnNp YmxpbmdzKQogCQkJCQlydC0+cnQ2aV9uc2libGluZ3MgPSAwOwogCQkJCWlmICghKGl0ZXItPnJ0 NmlfZmxhZ3MgJiBSVEZfRVhQSVJFUykpCmRpZmYgLS1naXQgYS9uZXQvaXB2Ni9yb3V0ZS5jIGIv bmV0L2lwdjYvcm91dGUuYwppbmRleCAzMjJiZDYyZTY4OGIuLmJjNDlmOWE4Mjk5NCAxMDA2NDQK LS0tIGEvbmV0L2lwdjYvcm91dGUuYworKysgYi9uZXQvaXB2Ni9yb3V0ZS5jCkBAIC0zMDQ4LDE3 ICszMDQ4LDExIEBAIHN0YXRpYyBpbnQgaXA2X3JvdXRlX2luZm9fYXBwZW5kKHN0cnVjdCBsaXN0 X2hlYWQgKnJ0Nl9uaF9saXN0LAogCQkJCSBzdHJ1Y3QgcnQ2X2luZm8gKnJ0LCBzdHJ1Y3QgZmli Nl9jb25maWcgKnJfY2ZnKQogewogCXN0cnVjdCBydDZfbmggKm5oOwotCXN0cnVjdCBydDZfaW5m byAqcnRuaDsKIAlpbnQgZXJyID0gLUVFWElTVDsKIAogCWxpc3RfZm9yX2VhY2hfZW50cnkobmgs IHJ0Nl9uaF9saXN0LCBuZXh0KSB7CiAJCS8qIGNoZWNrIGlmIHJ0Nl9pbmZvIGFscmVhZHkgZXhp c3RzICovCi0JCXJ0bmggPSBuaC0+cnQ2X2luZm87Ci0KLQkJaWYgKHJ0bmgtPmRzdC5kZXYgPT0g cnQtPmRzdC5kZXYgJiYKLQkJICAgIHJ0bmgtPnJ0NmlfaWRldiA9PSBydC0+cnQ2aV9pZGV2ICYm Ci0JCSAgICBpcHY2X2FkZHJfZXF1YWwoJnJ0bmgtPnJ0NmlfZ2F0ZXdheSwKLQkJCQkgICAgJnJ0 LT5ydDZpX2dhdGV3YXkpKQorCQlpZiAocnQ2X2R1cGxpY2F0ZV9uZXh0aG9wKG5oLT5ydDZfaW5m bywgcnQpKQogCQkJcmV0dXJuIGVycjsKIAl9CiAKLS0gCjIuMTMuMAoKCkZyb20gNTJmYjNmOWY3 NTg4NzZkMDZiOGY0ODdiODg0YzBiZDc3YmU4ZDEyNSBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEK RnJvbTogTmlrb2xheSBBbGVrc2FuZHJvdiA8bmlrb2xheUBjdW11bHVzbmV0d29ya3MuY29tPgpE YXRlOiBUaHUsIDYgSnVsIDIwMTcgMTU6MjQ6NDAgKzAzMDAKU3ViamVjdDogW1BBVENIIDEwLzE4 XSB2cmY6IGZpeCBidWdfb24gdHJpZ2dlcmVkIGJ5IHJ4IHdoZW4gZGVzdHJveWluZyBhIHZyZgoK WyBVcHN0cmVhbSBjb21taXQgZjYzMGMzOGVmMGQ3ODUxMDEzNjNhODk5MmJiZDRmMzAyMTgwZjg2 ZiBdCgpXaGVuIGRlc3Ryb3lpbmcgYSBWUkYgZGV2aWNlIHdlIGNsZWFudXAgdGhlIHNsYXZlcyBp biBpdHMgbmRvX3VuaW5pdCgpCmZ1bmN0aW9uLCBidXQgdGhhdCBjYXVzZXMgcGFja2V0cyB0byBi ZSBzd2l0Y2hlZCAoc2tiLT5kZXYgPT0gdnJmIGJlaW5nCmRlc3Ryb3llZCkgZXZlbiB0aG91Z2gg d2UncmUgcGFzcyB0aGUgcG9pbnQgd2hlcmUgdGhlIFZSRiBzaG91bGQgYmUKcmVjZWl2aW5nIGFu eSBwYWNrZXRzIHdoaWxlIGl0IGlzIGJlaW5nIGRpc21hbnRsZWQuIFRoaXMgY2F1c2VzIGEgQlVH X09OCnRvIHRyaWdnZXIgaWYgd2UgaGF2ZSByYXcgc29ja2V0cyAodHJhY2UgYmVsb3cpLgpUaGUg cmVhc29uIGlzIHRoYXQgdGhlIGluZXRkZXYgb2YgdGhlIFZSRiBoYXMgYmVlbiBkZXN0cm95ZWQg YnV0IHdlJ3JlCnN0aWxsIHNlbmRpbmcgcGFja2V0cyB1cCB0aGUgc3RhY2sgd2l0aCBpdCwgc28g bGV0J3MgZnJlZSB0aGUgc2xhdmVzIGluCnRoZSBkZWxsaW5rIGNhbGxiYWNrIGFzIERhdmlkIEFo ZXJuIHN1Z2dlc3RlZC4KCk5vdGUgdGhhdCB0aGlzIGZpeCBkb2Vzbid0IHByZXZlbnQgcGFja2V0 cyBmcm9tIGdvaW5nIHVwIHdoZW4gdGhlIFZSRgpkZXZpY2UgaXMgYWRtaW4gZG93bi4KClsgICAz NS42MzEzNzFdIC0tLS0tLS0tLS0tLVsgY3V0IGhlcmUgXS0tLS0tLS0tLS0tLQpbICAgMzUuNjMx NjAzXSBrZXJuZWwgQlVHIGF0IG5ldC9pcHY0L2ZpYl9mcm9udGVuZC5jOjI4NSEKWyAgIDM1LjYz MTg1NF0gaW52YWxpZCBvcGNvZGU6IDAwMDAgWyMxXSBTTVAKWyAgIDM1LjYzMTk3N10gTW9kdWxl cyBsaW5rZWQgaW46ClsgICAzNS42MzIwODFdIENQVTogMiBQSUQ6IDIyIENvbW06IGtzb2Z0aXJx ZC8yIE5vdCB0YWludGVkIDQuMTIuMC1yYzcrICM0NQpbICAgMzUuNjMyMjQ3XSBIYXJkd2FyZSBu YW1lOiBRRU1VIFN0YW5kYXJkIFBDIChpNDQwRlggKyBQSUlYLCAxOTk2KSwgQklPUyAxLjcuNS0y MDE0MDUzMV8wODMwMzAtZ2FuZGFsZiAwNC8wMS8yMDE0ClsgICAzNS42MzI0NzddIHRhc2s6IGZm ZmY4ODAwNWFkNjgwMDAgdGFzay5zdGFjazogZmZmZjg4MDA1YWQ2NDAwMApbICAgMzUuNjMyNjMy XSBSSVA6IDAwMTA6ZmliX2NvbXB1dGVfc3BlY19kc3QrMHhmYy8weDFlZQpbICAgMzUuNjMyNzY5 XSBSU1A6IDAwMTg6ZmZmZjg4MDA1YWQ2Nzk3OCBFRkxBR1M6IDAwMDEwMjAyClsgICAzNS42MzI5 MTBdIFJBWDogMDAwMDAwMDAwMDAwMDAwMSBSQlg6IGZmZmY4ODAwNTlhN2YyMDAgUkNYOiAwMDAw MDAwMDAwMDAwMDAwClsgICAzNS42MzMwODRdIFJEWDogMDAwMDAwMDAwMDAwMDAwMCBSU0k6IDAw MDAwMDAwMDAwMDAwMDEgUkRJOiBmZmZmZmZmZjgyMjc0YWYwClsgICAzNS42MzMyNTZdIFJCUDog ZmZmZjg4MDA1YWQ2NzlmOCBSMDg6IDAwMDAwMDAwMDAwMWVmNzAgUjA5OiAwMDAwMDAwMDAwMDAw MDQ2ClsgICAzNS42MzM0MzBdIFIxMDogZmZmZjg4MDA1YWQ2NzlmOCBSMTE6IGZmZmY4ODAwMzc3 MzFjYjAgUjEyOiAwMDAwMDAwMDAwMDAwMDAxClsgICAzNS42MzM2MDNdIFIxMzogZmZmZjg4MDA1 OTllMzAwMCBSMTQ6IDAwMDAwMDAwMDAwMDAwMDAgUjE1OiBmZmZmODgwMDU5OWNiODUyClsgICAz NS42MzQxMTRdIEZTOiAgMDAwMDAwMDAwMDAwMDAwMCgwMDAwKSBHUzpmZmZmODgwMDVkOTAwMDAw KDAwMDApIGtubEdTOjAwMDAwMDAwMDAwMDAwMDAKWyAgIDM1LjYzNDMwNl0gQ1M6ICAwMDEwIERT OiAwMDAwIEVTOiAwMDAwIENSMDogMDAwMDAwMDA4MDA1MDAzMwpbICAgMzUuNjM0NDU2XSBDUjI6 IDAwMDA3ZjM1NjMyMjcwOTUgQ1IzOiAwMDAwMDAwMDAyMDFkMDAwIENSNDogMDAwMDAwMDAwMDA0 MDZlMApbICAgMzUuNjM0NjMyXSBEUjA6IDAwMDAwMDAwMDAwMDAwMDAgRFIxOiAwMDAwMDAwMDAw MDAwMDAwIERSMjogMDAwMDAwMDAwMDAwMDAwMApbICAgMzUuNjM0ODY1XSBEUjM6IDAwMDAwMDAw MDAwMDAwMDAgRFI2OiAwMDAwMDAwMGZmZmUwZmYwIERSNzogMDAwMDAwMDAwMDAwMDQwMApbICAg MzUuNjM1MDU1XSBDYWxsIFRyYWNlOgpbICAgMzUuNjM1MjcxXSAgPyBfX2xvY2tfYWNxdWlyZSsw eGYwZC8weDExMTcKWyAgIDM1LjYzNTUyMl0gIGlwdjRfcGt0aW5mb19wcmVwYXJlKzB4ODIvMHgx NTEKWyAgIDM1LjYzNTgzMV0gIHJhd19yY3Zfc2tiKzB4MTcvMHgzYwpbICAgMzUuNjM2MDYyXSAg cmF3X3JjdisweGU1LzB4ZjcKWyAgIDM1LjYzNjI4N10gIHJhd19sb2NhbF9kZWxpdmVyKzB4MTY5 LzB4MWQ5ClsgICAzNS42MzY1MzRdICBpcF9sb2NhbF9kZWxpdmVyX2ZpbmlzaCsweDg3LzB4MWM0 ClsgICAzNS42MzY4MjBdICBpcF9sb2NhbF9kZWxpdmVyKzB4NjMvMHg3ZgpbICAgMzUuNjM3MDU4 XSAgaXBfcmN2X2ZpbmlzaCsweDM0MC8weDNhMQpbICAgMzUuNjM3Mjk1XSAgaXBfcmN2KzB4MzE0 LzB4MzRhClsgICAzNS42Mzc1MjVdICBfX25ldGlmX3JlY2VpdmVfc2tiX2NvcmUrMHg0OWYvMHg3 YzUKWyAgIDM1LjYzNzc4MF0gID8gbG9ja19hY3F1aXJlKzB4MTNmLzB4MWQ3ClsgICAzNS42Mzgw MThdICA/IGxvY2tfYWNxdWlyZSsweDE1ZS8weDFkNwpbICAgMzUuNjM4MjU5XSAgX19uZXRpZl9y ZWNlaXZlX3NrYisweDFlLzB4OTQKWyAgIDM1LjYzODUwMl0gID8gX19uZXRpZl9yZWNlaXZlX3Nr YisweDFlLzB4OTQKWyAgIDM1LjYzODc0OF0gIG5ldGlmX3JlY2VpdmVfc2tiX2ludGVybmFsKzB4 NzQvMHgzMDAKWyAgIDM1LjYzOTAwMl0gID8gZGV2X2dyb19yZWNlaXZlKzB4MmVkLzB4NDExClsg ICAzNS42MzkyNDZdICA/IGxvY2tfaXNfaGVsZF90eXBlKzB4YzQvMHhkMgpbICAgMzUuNjM5NDkx XSAgbmFwaV9ncm9fcmVjZWl2ZSsweDEwNS8weDFhMApbICAgMzUuNjM5NzM2XSAgcmVjZWl2ZV9i dWYrMHhjMzIvMHhjNzQKWyAgIDM1LjYzOTk2NV0gID8gZGV0YWNoX2J1ZisweDY3LzB4MTUzClsg ICAzNS42NDAyMDFdICA/IHZpcnRxdWV1ZV9nZXRfYnVmX2N0eCsweDEyMC8weDE3NgpbICAgMzUu NjQwNDUzXSAgdmlydG5ldF9wb2xsKzB4MTI4LzB4MWM1ClsgICAzNS42NDA2OTBdICBuZXRfcnhf YWN0aW9uKzB4MTAzLzB4MzQzClsgICAzNS42NDA5MzJdICBfX2RvX3NvZnRpcnErMHgxYzcvMHg0 YjcKWyAgIDM1LjY0MTE3MV0gIHJ1bl9rc29mdGlycWQrMHgyMy8weDVjClsgICAzNS42NDE0MDNd ICBzbXBib290X3RocmVhZF9mbisweDI0Zi8weDI2ZApbICAgMzUuNjQxNjQ2XSAgPyBzb3J0X3Jh bmdlKzB4MjIvMHgyMgpbICAgMzUuNjQxODc4XSAga3RocmVhZCsweDEyOS8weDEzMQpbICAgMzUu NjQyMTA0XSAgPyBfX2xpc3RfYWRkKzB4MzEvMHgzMQpbICAgMzUuNjQyMzM1XSAgPyBfX2xpc3Rf YWRkKzB4MzEvMHgzMQpbICAgMzUuNjQyNTY4XSAgcmV0X2Zyb21fZm9yaysweDJhLzB4NDAKWyAg IDM1LjY0MjgwNF0gQ29kZTogMDUgYmQgODcgYTMgMDAgMDEgZTggMWYgZWYgOTggZmYgNGQgODUg ZjYgNDggYzcgYzcgZjAgNGEgMjcgODIgNDEgMGYgOTQgYzQgMzEgYzkgMzEgZDIgNDEgMGYgYjYg ZjQgZTggMDQgNzEgYTEgZmYgNDUgODQgZTQgNzQgMDIgPDBmPiAwYiAwZiBiNyA5MyBjNCAwMCAw MCAwMCA0ZCA4YiBhNSA4MCAwNSAwMCAwMCA0OCAwMyA5MyBkMCAwMApbICAgMzUuNjQ0MzQyXSBS SVA6IGZpYl9jb21wdXRlX3NwZWNfZHN0KzB4ZmMvMHgxZWUgUlNQOiBmZmZmODgwMDVhZDY3OTc4 CgpGaXhlczogMTkzMTI1ZGJkOGViICgibmV0OiBJbnRyb2R1Y2UgVlJGIGRldmljZSBkcml2ZXIi KQpSZXBvcnRlZC1ieTogQ2hyaXMgQ29ybWllciA8Y2hyaXNjb3JtaWVyQGN1bXVsdXNuZXR3b3Jr cy5jb20+ClNpZ25lZC1vZmYtYnk6IE5pa29sYXkgQWxla3NhbmRyb3YgPG5pa29sYXlAY3VtdWx1 c25ldHdvcmtzLmNvbT4KQWNrZWQtYnk6IERhdmlkIEFoZXJuIDxkc2FoZXJuQGdtYWlsLmNvbT4K U2lnbmVkLW9mZi1ieTogRGF2aWQgUy4gTWlsbGVyIDxkYXZlbUBkYXZlbWxvZnQubmV0PgotLS0K IGRyaXZlcnMvbmV0L3ZyZi5jIHwgMTEgKysrKysrLS0tLS0KIDEgZmlsZSBjaGFuZ2VkLCA2IGlu c2VydGlvbnMoKyksIDUgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvdnJm LmMgYi9kcml2ZXJzL25ldC92cmYuYwppbmRleCAwMjJjMGI1Zjk4NDQuLmM3ZWU4ZTNjZDM4ZCAx MDA2NDQKLS0tIGEvZHJpdmVycy9uZXQvdnJmLmMKKysrIGIvZHJpdmVycy9uZXQvdnJmLmMKQEAg LTkyNiwxNSArOTI2LDEwIEBAIHN0YXRpYyBpbnQgdnJmX2RlbF9zbGF2ZShzdHJ1Y3QgbmV0X2Rl dmljZSAqZGV2LCBzdHJ1Y3QgbmV0X2RldmljZSAqcG9ydF9kZXYpCiBzdGF0aWMgdm9pZCB2cmZf ZGV2X3VuaW5pdChzdHJ1Y3QgbmV0X2RldmljZSAqZGV2KQogewogCXN0cnVjdCBuZXRfdnJmICp2 cmYgPSBuZXRkZXZfcHJpdihkZXYpOwotCXN0cnVjdCBuZXRfZGV2aWNlICpwb3J0X2RldjsKLQlz dHJ1Y3QgbGlzdF9oZWFkICppdGVyOwogCiAJdnJmX3J0YWJsZV9yZWxlYXNlKGRldiwgdnJmKTsK IAl2cmZfcnQ2X3JlbGVhc2UoZGV2LCB2cmYpOwogCi0JbmV0ZGV2X2Zvcl9lYWNoX2xvd2VyX2Rl dihkZXYsIHBvcnRfZGV2LCBpdGVyKQotCQl2cmZfZGVsX3NsYXZlKGRldiwgcG9ydF9kZXYpOwot CiAJZnJlZV9wZXJjcHUoZGV2LT5kc3RhdHMpOwogCWRldi0+ZHN0YXRzID0gTlVMTDsKIH0KQEAg LTEzODksNiArMTM4NCwxMiBAQCBzdGF0aWMgaW50IHZyZl92YWxpZGF0ZShzdHJ1Y3QgbmxhdHRy ICp0YltdLCBzdHJ1Y3QgbmxhdHRyICpkYXRhW10pCiAKIHN0YXRpYyB2b2lkIHZyZl9kZWxsaW5r KHN0cnVjdCBuZXRfZGV2aWNlICpkZXYsIHN0cnVjdCBsaXN0X2hlYWQgKmhlYWQpCiB7CisJc3Ry dWN0IG5ldF9kZXZpY2UgKnBvcnRfZGV2OworCXN0cnVjdCBsaXN0X2hlYWQgKml0ZXI7CisKKwlu ZXRkZXZfZm9yX2VhY2hfbG93ZXJfZGV2KGRldiwgcG9ydF9kZXYsIGl0ZXIpCisJCXZyZl9kZWxf c2xhdmUoZGV2LCBwb3J0X2Rldik7CisKIAl1bnJlZ2lzdGVyX25ldGRldmljZV9xdWV1ZShkZXYs IGhlYWQpOwogfQogCi0tIAoyLjEzLjAKCgpGcm9tIDRkMWQxYWY4NjVlZDg2MDU0YjBhMWIzNjM3 YzJmNzU3NTg5OWMwMjkgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCkZyb206IEphc29uIFdhbmcg PGphc293YW5nQHJlZGhhdC5jb20+CkRhdGU6IEZyaSwgNyBKdWwgMjAxNyAxOTo1NjowOSArMDgw MApTdWJqZWN0OiBbUEFUQ0ggMTEvMThdIHZpcnRpby1uZXQ6IGZpeCBsZWFraW5nIG9mIGN0eCBh cnJheQoKWyBVcHN0cmVhbSBjb21taXQgNTUyODE2MjFiNjA0N2QyZmZiOTM0YTBiOTg0YWIwY2Ri MWFkMWQ3NiBdCgpGaXhlczogY29tbWl0IGQ0NWI4OTdiMTFlYSAoInZpcnRpb19uZXQ6IGFsbG93 IHNwZWNpZnlpbmcgY29udGV4dCBmb3IgcngiKQpTaWduZWQtb2ZmLWJ5OiBKYXNvbiBXYW5nIDxq YXNvd2FuZ0ByZWRoYXQuY29tPgpBY2tlZC1ieTogTWljaGFlbCBTLiBUc2lya2luIDxtc3RAcmVk aGF0LmNvbT4KU2lnbmVkLW9mZi1ieTogRGF2aWQgUy4gTWlsbGVyIDxkYXZlbUBkYXZlbWxvZnQu bmV0PgotLS0KIGRyaXZlcnMvbmV0L3ZpcnRpb19uZXQuYyB8IDEgKwogMSBmaWxlIGNoYW5nZWQs IDEgaW5zZXJ0aW9uKCspCgpkaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvdmlydGlvX25ldC5jIGIv ZHJpdmVycy9uZXQvdmlydGlvX25ldC5jCmluZGV4IDE0M2Q4YTk1YTYwZC4uNjYzM2RkNGJiNjQ5 IDEwMDY0NAotLS0gYS9kcml2ZXJzL25ldC92aXJ0aW9fbmV0LmMKKysrIGIvZHJpdmVycy9uZXQv dmlydGlvX25ldC5jCkBAIC0yMjIxLDYgKzIyMjEsNyBAQCBzdGF0aWMgaW50IHZpcnRuZXRfZmlu ZF92cXMoc3RydWN0IHZpcnRuZXRfaW5mbyAqdmkpCiAJa2ZyZWUobmFtZXMpOwogCWtmcmVlKGNh bGxiYWNrcyk7CiAJa2ZyZWUodnFzKTsKKwlrZnJlZShjdHgpOwogCiAJcmV0dXJuIDA7CiAKLS0g CjIuMTMuMAoKCkZyb20gMjNkNGViYTE2YTBkOTQ1NzVjZGFmNWM2NGE2MGVjYzI5NWEzYTRkZSBN b24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJvbTogU293bWluaSBWYXJhZGhhbiA8c293bWluaS52 YXJhZGhhbkBvcmFjbGUuY29tPgpEYXRlOiBUaHUsIDYgSnVsIDIwMTcgMDg6MTU6MDYgLTA3MDAK U3ViamVjdDogW1BBVENIIDEyLzE4XSByZHM6IHRjcDogdXNlIHNvY2tfY3JlYXRlX2xpdGUoKSB0 byBjcmVhdGUgdGhlIGFjY2VwdAogc29ja2V0CgpbIFVwc3RyZWFtIGNvbW1pdCAwOTMzYTU3OGNk NTViMDJkYzgwZjIxOWRjOGYyZWZiMTdlYzYxYzlhIF0KClRoZXJlIGFyZSB0d28gcHJvYmxlbXMg d2l0aCBjYWxsaW5nIHNvY2tfY3JlYXRlX2tlcm4oKSBmcm9tCnJkc190Y3BfYWNjZXB0X29uZSgp CjEuIGl0IHNldHMgdXAgYSBuZXdfc29jay0+c2sgdGhhdCBpcyB3YXN0ZWZ1bCwgYmVjYXVzZSB0 aGlzIC0+c2sKICAgaXMgZ29pbmcgdG8gZ2V0IHJlcGxhY2VkIGJ5IGluZXRfYWNjZXB0KCkgaW4g dGhlIHN1YnNlcXVlbnQgLT5hY2NlcHQoKQoyLiBUaGUgbmV3X3NvY2stPnNrIGlzIGEgbGVha2Vk IHJlZmVyZW5jZSBpbiBzb2NrX2dyYWZ0KCkgd2hpY2gKICAgZXhwZWN0cyB0byBmaW5kIGEgbnVs bCBwYXJlbnQtPnNrCgpBdm9pZCB0aGVzZSBwcm9ibGVtcyBieSBjYWxsaW5nIHNvY2tfY3JlYXRl X2xpdGUoKS4KClNpZ25lZC1vZmYtYnk6IFNvd21pbmkgVmFyYWRoYW4gPHNvd21pbmkudmFyYWRo YW5Ab3JhY2xlLmNvbT4KQWNrZWQtYnk6IFNhbnRvc2ggU2hpbGlta2FyIDxzYW50b3NoLnNoaWxp bWthckBvcmFjbGUuY29tPgpTaWduZWQtb2ZmLWJ5OiBEYXZpZCBTLiBNaWxsZXIgPGRhdmVtQGRh dmVtbG9mdC5uZXQ+Ci0tLQogbmV0L3Jkcy90Y3BfbGlzdGVuLmMgfCAyICstCiAxIGZpbGUgY2hh bmdlZCwgMSBpbnNlcnRpb24oKyksIDEgZGVsZXRpb24oLSkKCmRpZmYgLS1naXQgYS9uZXQvcmRz L3RjcF9saXN0ZW4uYyBiL25ldC9yZHMvdGNwX2xpc3Rlbi5jCmluZGV4IDUwNzY3ODg1M2U2Yy4u OWExNzk4ZDZhZTk0IDEwMDY0NAotLS0gYS9uZXQvcmRzL3RjcF9saXN0ZW4uYworKysgYi9uZXQv cmRzL3RjcF9saXN0ZW4uYwpAQCAtMTI1LDcgKzEyNSw3IEBAIGludCByZHNfdGNwX2FjY2VwdF9v bmUoc3RydWN0IHNvY2tldCAqc29jaykKIAlpZiAoIXNvY2spIC8qIG1vZHVsZSB1bmxvYWQgb3Ig bmV0bnMgZGVsZXRlIGluIHByb2dyZXNzICovCiAJCXJldHVybiAtRU5FVFVOUkVBQ0g7CiAKLQly ZXQgPSBzb2NrX2NyZWF0ZV9rZXJuKHNvY2tfbmV0KHNvY2stPnNrKSwgc29jay0+c2stPnNrX2Zh bWlseSwKKwlyZXQgPSBzb2NrX2NyZWF0ZV9saXRlKHNvY2stPnNrLT5za19mYW1pbHksCiAJCQkg ICAgICAgc29jay0+c2stPnNrX3R5cGUsIHNvY2stPnNrLT5za19wcm90b2NvbCwKIAkJCSAgICAg ICAmbmV3X3NvY2spOwogCWlmIChyZXQpCi0tIAoyLjEzLjAKCgpGcm9tIGVlN2NmZjQ0ZDY4YzE0 NWU3Y2Y2ZGUyMjM3ZGE4MjYxMzI3YzA3OWYgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCkZyb206 IEh1eSBOZ3V5ZW4gPGh1eW5AbWVsbGFub3guY29tPgpEYXRlOiBUaHUsIDI5IEp1biAyMDE3IDE2 OjUwOjAxIC0wNTAwClN1YmplY3Q6IFtQQVRDSCAxMy8xOF0gbmV0L21seDVlOiBJbml0aWFsaXpl IENFRSdzIGdldHBlcm1od2FkZHIgYWRkcmVzcwogYnVmZmVyIHRvIDB4ZmYKClsgVXBzdHJlYW0g Y29tbWl0IGQ5NjhmMGYyZTQ0MDQxNTJmMzdlZDIzODRiNGEyMjY5ZGQyZGFlNWEgXQoKTGF0ZXN0 IGNoYW5nZSBpbiBvcGVuLWxsZHAgY29kZSB1c2VzIGJ5dGVzIDYtMTEgb2YgcGVybV9hZGRyIGJ1 ZmZlcgphcyB0aGUgRXRoZXJuZXQgc291cmNlIGFkZHJlc3MgZm9yIHRoZSBob3N0IFRMViBwYWNr ZXQuClNpbmNlIG91ciBkcml2ZXIgZG9lcyBub3QgZmlsbCB0aGVzZSBieXRlcywgdGhleSBzdGF5 IGF0IHplcm8gYW5kCnRoZSBvcGVuLWxsZHAgY29kZSBlbmRzIHVwIHNlbmRpbmcgdGhlIFRMViBw YWNrZXQgd2l0aCB6ZXJvIHNvdXJjZQphZGRyZXNzIGFuZCB0aGUgc3dpdGNoIGRyb3BzIHRoaXMg cGFja2V0LgoKVGhlIGZpeCBpcyB0byBpbml0aWFsaXplIHRoZXNlIGJ5dGVzIHRvIDB4ZmYuIFRo ZSBvcGVuLWxsZHAgY29kZQpjb25zaWRlcnMgMHhmZjpmZjpmZjpmZjpmZjpmZiBhcyB0aGUgaW52 YWxpZCBhZGRyZXNzIGFuZCBmYWxscyBiYWNrIHRvCnVzZSB0aGUgaG9zdCdzIG1hYyBhZGRyZXNz IGFzIHRoZSBFdGhlcm5ldCBzb3VyY2UgYWRkcmVzcy4KCkZpeGVzOiAzYTZhOTMxZGZiOGUgKCJu ZXQvbWx4NWU6IFN1cHBvcnQgRENCWCBDRUUgQVBJIikKU2lnbmVkLW9mZi1ieTogSHV5IE5ndXll biA8aHV5bkBtZWxsYW5veC5jb20+ClJldmlld2VkLWJ5OiBEYW5pZWwgSnVyZ2VucyA8ZGFuaWVs akBtZWxsYW5veC5jb20+ClNpZ25lZC1vZmYtYnk6IFNhZWVkIE1haGFtZWVkIDxzYWVlZG1AbWVs bGFub3guY29tPgotLS0KIGRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9l bl9kY2JubC5jIHwgMiArKwogMSBmaWxlIGNoYW5nZWQsIDIgaW5zZXJ0aW9ucygrKQoKZGlmZiAt LWdpdCBhL2RyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9lbl9kY2JubC5j IGIvZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2VuX2RjYm5sLmMKaW5k ZXggOGZhMjNmNmExZjY3Li4yZWI1NGQzNmUxNmUgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvbmV0L2V0 aGVybmV0L21lbGxhbm94L21seDUvY29yZS9lbl9kY2JubC5jCisrKyBiL2RyaXZlcnMvbmV0L2V0 aGVybmV0L21lbGxhbm94L21seDUvY29yZS9lbl9kY2JubC5jCkBAIC00NjQsNiArNDY0LDggQEAg c3RhdGljIHZvaWQgbWx4NWVfZGNibmxfZ2V0cGVybWh3YWRkcihzdHJ1Y3QgbmV0X2RldmljZSAq bmV0ZGV2LAogCWlmICghcGVybV9hZGRyKQogCQlyZXR1cm47CiAKKwltZW1zZXQocGVybV9hZGRy LCAweGZmLCBNQVhfQUREUl9MRU4pOworCiAJbWx4NV9xdWVyeV9uaWNfdnBvcnRfbWFjX2FkZHJl c3MocHJpdi0+bWRldiwgMCwgcGVybV9hZGRyKTsKIH0KIAotLSAKMi4xMy4wCgoKRnJvbSBhMDky NGRjZmQ1MDMzYWIwZDAzMzM0ODZlNTAwNzdjOTQ5OWZlMWM4IE1vbiBTZXAgMTcgMDA6MDA6MDAg MjAwMQpGcm9tOiAiR3VpbGhlcm1lIEcuIFBpY2NvbGkiIDxncGljY29saUBsaW51eC52bmV0Lmli bS5jb20+CkRhdGU6IE1vbiwgMTAgSnVsIDIwMTcgMTA6NTU6NDYgLTAzMDAKU3ViamVjdDogW1BB VENIIDE0LzE4XSBjeGdiNDogZml4IEJVRygpIG9uIGludGVycnVwdCBkZWFsbG9jYXRpbmcgcGF0 aCBvZiBVTEQKClsgVXBzdHJlYW0gY29tbWl0IDZhMTQ2ZjNhNTg5NGI3NTFjZWYxNmZlYjNkNzkw M2U0NWUzYzQ0NWMgXQoKU2luY2UgdGhlIGludHJvZHVjdGlvbiBvZiBVTEQgKFVwcGVyLUxheWVy IERyaXZlcnMpLCB0aGUgTVNJLVgKZGVhbGxvY2F0aW5nIHBhdGggY2hhbmdlZCBpbiBjeGdiNDog dGhlIGRyaXZlciBmcmVlcyB0aGUgaW50ZXJydXB0cwpvZiBVTEQgd2hlbiB1bnJlZ2lzdGVyaW5n IGl0IG9yIG9uIHNodXRkb3duIFBDSSBoYW5kbGVyLgoKUHJvYmxlbSBpcyB0aGF0IGlmIGEgTVNJ LVggaXMgbm90IGZyZWVkIGJlZm9yZSBkZWFsbG9jYXRlZCBpbiB0aGUgUENJCmxheWVyLCBpdCB3 aWxsIHRyaWdnZXIgYSBCVUcoKSBkdWUgdG8gc3RpbGwgImFsaXZlIiBpbnRlcnJ1cHQgYmVpbmcK dGVudGF0aXZlbHkgcXVpZXNjZWQuCgpUaGUgYmVsb3cgdHJhY2Ugd2FzIG9ic2VydmVkIHdoZW4g ZG9pbmcgYSBzaW1wbGUgdW5iaW5kIG9mIENoZWxzaW8ncwphZGFwdGVyIFBDSSBmdW5jdGlvbiwg bGlrZToKICAiZWNobyAwMDFlOjgwOjAwLjQgPiAvc3lzL2J1cy9wY2kvZHJpdmVycy9jeGdiNC91 bmJpbmQiCgpUcmFjZToKCiAga2VybmVsIEJVRyBhdCBkcml2ZXJzL3BjaS9tc2kuYzozNTIhCiAg T29wczogRXhjZXB0aW9uIGluIGtlcm5lbCBtb2RlLCBzaWc6IDUgWyMxXQogIC4uLgogIE5JUCBb YzAwMDAwMDAwMDVhNWU2MF0gZnJlZV9tc2lfaXJxcysweGEwLzB4MjUwCiAgTFIgW2MwMDAwMDAw MDA1YTVlNTBdIGZyZWVfbXNpX2lycXMrMHg5MC8weDI1MAogIENhbGwgVHJhY2U6CiAgW2MwMDAw MDAwMDA1YTVlNTBdIGZyZWVfbXNpX2lycXMrMHg5MC8weDI1MCAodW5yZWxpYWJsZSkKICBbYzAw MDAwMDAwMDVhNzJjNF0gcGNpX2Rpc2FibGVfbXNpeCsweDEyNC8weDE4MAogIFtkMDAwMDAwMDEx ZTA2NzA4XSBkaXNhYmxlX21zaSsweDg4LzB4YjAgW2N4Z2I0XQogIFtkMDAwMDAwMDExZTA2OTQ4 XSBmcmVlX3NvbWVfcmVzb3VyY2VzKzB4YTgvMHgxNjAgW2N4Z2I0XQogIFtkMDAwMDAwMDExZTA2 ZDYwXSByZW1vdmVfb25lKzB4MTcwLzB4M2MwIFtjeGdiNF0KICBbYzAwMDAwMDAwMDU4YTkxMF0g cGNpX2RldmljZV9yZW1vdmUrMHg3MC8weDExMAogIFtjMDAwMDAwMDAwNjRlZjA0XSBkZXZpY2Vf cmVsZWFzZV9kcml2ZXJfaW50ZXJuYWwrMHgxZjQvMHgyYzAKICAuLi4KClRoaXMgcGF0Y2ggZml4 ZXMgdGhlIGlzc3VlIGJ5IHJlZmFjdG9yaW5nIHRoZSBzaHV0ZG93biBwYXRoIG9mIFVMRCBvbgpj eGdiNCBkcml2ZXIsIGJ5IHByb3Blcmx5IGZyZWVpbmcgYW5kIGRpc2FibGluZyBpbnRlcnJ1cHRz IG9uIFBDSQpyZW1vdmUgaGFuZGxlciB0b28uCgpGaXhlczogMGZiYzgxYjNhZDUxICgiQWxsb2Nh dGUgcmVzb3VyY2VzIGR5bmFtaWNhbGx5IGZvciBhbGwgY3hnYjQgVUxEJ3MiKQpSZXBvcnRlZC1i eTogSGFyc2hhIFRoeWFnYXJhamEgPGhhdGh5YWdhQGluLmlibS5jb20+ClNpZ25lZC1vZmYtYnk6 IEd1aWxoZXJtZSBHLiBQaWNjb2xpIDxncGljY29saUBsaW51eC52bmV0LmlibS5jb20+ClNpZ25l ZC1vZmYtYnk6IERhdmlkIFMuIE1pbGxlciA8ZGF2ZW1AZGF2ZW1sb2Z0Lm5ldD4KLS0tCiBkcml2 ZXJzL25ldC9ldGhlcm5ldC9jaGVsc2lvL2N4Z2I0L2N4Z2I0X21haW4uYyB8IDE2ICsrKysrKyst LS0KIGRyaXZlcnMvbmV0L2V0aGVybmV0L2NoZWxzaW8vY3hnYjQvY3hnYjRfdWxkLmMgIHwgNDIg KysrKysrKysrKysrKysrLS0tLS0tLS0tLQogMiBmaWxlcyBjaGFuZ2VkLCAzNiBpbnNlcnRpb25z KCspLCAyMiBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC9ldGhlcm5ldC9j aGVsc2lvL2N4Z2I0L2N4Z2I0X21haW4uYyBiL2RyaXZlcnMvbmV0L2V0aGVybmV0L2NoZWxzaW8v Y3hnYjQvY3hnYjRfbWFpbi5jCmluZGV4IDUzMzA5ZjY1OTk1MS4uMGFjMWE1NTAwZmMzIDEwMDY0 NAotLS0gYS9kcml2ZXJzL25ldC9ldGhlcm5ldC9jaGVsc2lvL2N4Z2I0L2N4Z2I0X21haW4uYwor KysgYi9kcml2ZXJzL25ldC9ldGhlcm5ldC9jaGVsc2lvL2N4Z2I0L2N4Z2I0X21haW4uYwpAQCAt MjA1NSwxMiArMjA1NSwxMiBAQCBzdGF0aWMgdm9pZCBkZXRhY2hfdWxkcyhzdHJ1Y3QgYWRhcHRl ciAqYWRhcCkKIAogCW11dGV4X2xvY2soJnVsZF9tdXRleCk7CiAJbGlzdF9kZWwoJmFkYXAtPmxp c3Rfbm9kZSk7CisKIAlmb3IgKGkgPSAwOyBpIDwgQ1hHQjRfVUxEX01BWDsgaSsrKQotCQlpZiAo YWRhcC0+dWxkICYmIGFkYXAtPnVsZFtpXS5oYW5kbGUpIHsKKwkJaWYgKGFkYXAtPnVsZCAmJiBh ZGFwLT51bGRbaV0uaGFuZGxlKQogCQkJYWRhcC0+dWxkW2ldLnN0YXRlX2NoYW5nZShhZGFwLT51 bGRbaV0uaGFuZGxlLAogCQkJCQkgICAgIENYR0I0X1NUQVRFX0RFVEFDSCk7Ci0JCQlhZGFwLT51 bGRbaV0uaGFuZGxlID0gTlVMTDsKLQkJfQorCiAJaWYgKG5ldGV2ZW50X3JlZ2lzdGVyZWQgJiYg bGlzdF9lbXB0eSgmYWRhcHRlcl9saXN0KSkgewogCQl1bnJlZ2lzdGVyX25ldGV2ZW50X25vdGlm aWVyKCZjeGdiNF9uZXRldmVudF9uYik7CiAJCW5ldGV2ZW50X3JlZ2lzdGVyZWQgPSBmYWxzZTsK QEAgLTUwODYsOCArNTA4NiwxMCBAQCBzdGF0aWMgdm9pZCByZW1vdmVfb25lKHN0cnVjdCBwY2lf ZGV2ICpwZGV2KQogCQkgKi8KIAkJZGVzdHJveV93b3JrcXVldWUoYWRhcHRlci0+d29ya3EpOwog Ci0JCWlmIChpc191bGQoYWRhcHRlcikpCisJCWlmIChpc191bGQoYWRhcHRlcikpIHsKIAkJCWRl dGFjaF91bGRzKGFkYXB0ZXIpOworCQkJdDRfdWxkX2NsZWFuX3VwKGFkYXB0ZXIpOworCQl9CiAK IAkJZGlzYWJsZV9pbnRlcnJ1cHRzKGFkYXB0ZXIpOwogCkBAIC01MTY0LDcgKzUxNjYsMTEgQEAg c3RhdGljIHZvaWQgc2h1dGRvd25fb25lKHN0cnVjdCBwY2lfZGV2ICpwZGV2KQogCQkJaWYgKGFk YXB0ZXItPnBvcnRbaV0tPnJlZ19zdGF0ZSA9PSBORVRSRUdfUkVHSVNURVJFRCkKIAkJCQljeGdi X2Nsb3NlKGFkYXB0ZXItPnBvcnRbaV0pOwogCi0JCXQ0X3VsZF9jbGVhbl91cChhZGFwdGVyKTsK KwkJaWYgKGlzX3VsZChhZGFwdGVyKSkgeworCQkJZGV0YWNoX3VsZHMoYWRhcHRlcik7CisJCQl0 NF91bGRfY2xlYW5fdXAoYWRhcHRlcik7CisJCX0KKwogCQlkaXNhYmxlX2ludGVycnVwdHMoYWRh cHRlcik7CiAJCWRpc2FibGVfbXNpKGFkYXB0ZXIpOwogCmRpZmYgLS1naXQgYS9kcml2ZXJzL25l dC9ldGhlcm5ldC9jaGVsc2lvL2N4Z2I0L2N4Z2I0X3VsZC5jIGIvZHJpdmVycy9uZXQvZXRoZXJu ZXQvY2hlbHNpby9jeGdiNC9jeGdiNF91bGQuYwppbmRleCBkMDg2OGMyMzIwZGEuLmRiYmMyYjdm MGQ0NiAxMDA2NDQKLS0tIGEvZHJpdmVycy9uZXQvZXRoZXJuZXQvY2hlbHNpby9jeGdiNC9jeGdi NF91bGQuYworKysgYi9kcml2ZXJzL25ldC9ldGhlcm5ldC9jaGVsc2lvL2N4Z2I0L2N4Z2I0X3Vs ZC5jCkBAIC01ODksMjIgKzU4OSwzNyBAQCB2b2lkIHQ0X3VsZF9tZW1fZnJlZShzdHJ1Y3QgYWRh cHRlciAqYWRhcCkKIAlrZnJlZShhZGFwLT51bGQpOwogfQogCisvKiBUaGlzIGZ1bmN0aW9uIHNo b3VsZCBiZSBjYWxsZWQgd2l0aCB1bGRfbXV0ZXggdGFrZW4uICovCitzdGF0aWMgdm9pZCBjeGdi NF9zaHV0ZG93bl91bGRfYWRhcHRlcihzdHJ1Y3QgYWRhcHRlciAqYWRhcCwgZW51bSBjeGdiNF91 bGQgdHlwZSkKK3sKKwlpZiAoYWRhcC0+dWxkW3R5cGVdLmhhbmRsZSkgeworCQlhZGFwLT51bGRb dHlwZV0uaGFuZGxlID0gTlVMTDsKKwkJYWRhcC0+dWxkW3R5cGVdLmFkZCA9IE5VTEw7CisJCXJl bGVhc2Vfc2dlX3R4cV91bGQoYWRhcCwgdHlwZSk7CisKKwkJaWYgKGFkYXAtPmZsYWdzICYgRlVM TF9JTklUX0RPTkUpCisJCQlxdWllc2NlX3J4X3VsZChhZGFwLCB0eXBlKTsKKworCQlpZiAoYWRh cC0+ZmxhZ3MgJiBVU0lOR19NU0lYKQorCQkJZnJlZV9tc2l4X3F1ZXVlX2lycXNfdWxkKGFkYXAs IHR5cGUpOworCisJCWZyZWVfc2dlX3F1ZXVlc191bGQoYWRhcCwgdHlwZSk7CisJCWZyZWVfcXVl dWVzX3VsZChhZGFwLCB0eXBlKTsKKwl9Cit9CisKIHZvaWQgdDRfdWxkX2NsZWFuX3VwKHN0cnVj dCBhZGFwdGVyICphZGFwKQogewogCXVuc2lnbmVkIGludCBpOwogCi0JaWYgKCFhZGFwLT51bGQp Ci0JCXJldHVybjsKKwltdXRleF9sb2NrKCZ1bGRfbXV0ZXgpOwogCWZvciAoaSA9IDA7IGkgPCBD WEdCNF9VTERfTUFYOyBpKyspIHsKIAkJaWYgKCFhZGFwLT51bGRbaV0uaGFuZGxlKQogCQkJY29u dGludWU7Ci0JCWlmIChhZGFwLT5mbGFncyAmIEZVTExfSU5JVF9ET05FKQotCQkJcXVpZXNjZV9y eF91bGQoYWRhcCwgaSk7Ci0JCWlmIChhZGFwLT5mbGFncyAmIFVTSU5HX01TSVgpCi0JCQlmcmVl X21zaXhfcXVldWVfaXJxc191bGQoYWRhcCwgaSk7Ci0JCWZyZWVfc2dlX3F1ZXVlc191bGQoYWRh cCwgaSk7Ci0JCWZyZWVfcXVldWVzX3VsZChhZGFwLCBpKTsKKworCQljeGdiNF9zaHV0ZG93bl91 bGRfYWRhcHRlcihhZGFwLCBpKTsKIAl9CisJbXV0ZXhfdW5sb2NrKCZ1bGRfbXV0ZXgpOwogfQog CiBzdGF0aWMgdm9pZCB1bGRfaW5pdChzdHJ1Y3QgYWRhcHRlciAqYWRhcCwgc3RydWN0IGN4Z2I0 X2xsZF9pbmZvICpsbGQpCkBAIC03ODIsMTUgKzc5Nyw4IEBAIGludCBjeGdiNF91bnJlZ2lzdGVy X3VsZChlbnVtIGN4Z2I0X3VsZCB0eXBlKQogCQkJY29udGludWU7CiAJCWlmICh0eXBlID09IENY R0I0X1VMRF9JU0NTSVQgJiYgaXNfdDQoYWRhcC0+cGFyYW1zLmNoaXApKQogCQkJY29udGludWU7 Ci0JCWFkYXAtPnVsZFt0eXBlXS5oYW5kbGUgPSBOVUxMOwotCQlhZGFwLT51bGRbdHlwZV0uYWRk ID0gTlVMTDsKLQkJcmVsZWFzZV9zZ2VfdHhxX3VsZChhZGFwLCB0eXBlKTsKLQkJaWYgKGFkYXAt PmZsYWdzICYgRlVMTF9JTklUX0RPTkUpCi0JCQlxdWllc2NlX3J4X3VsZChhZGFwLCB0eXBlKTsK LQkJaWYgKGFkYXAtPmZsYWdzICYgVVNJTkdfTVNJWCkKLQkJCWZyZWVfbXNpeF9xdWV1ZV9pcnFz X3VsZChhZGFwLCB0eXBlKTsKLQkJZnJlZV9zZ2VfcXVldWVzX3VsZChhZGFwLCB0eXBlKTsKLQkJ ZnJlZV9xdWV1ZXNfdWxkKGFkYXAsIHR5cGUpOworCisJCWN4Z2I0X3NodXRkb3duX3VsZF9hZGFw dGVyKGFkYXAsIHR5cGUpOwogCX0KIAltdXRleF91bmxvY2soJnVsZF9tdXRleCk7CiAKLS0gCjIu MTMuMAoKCkZyb20gZGRjNmUwOWNmMzk2MzYxMTUyOTcwYmI1NGRlOTRjZTAxMjNjNzExMyBNb24g U2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJvbTogV0FORyBDb25nIDx4aXlvdS53YW5nY29uZ0BnbWFp bC5jb20+CkRhdGU6IE1vbiwgMTAgSnVsIDIwMTcgMTA6MDU6NTAgLTA3MDAKU3ViamVjdDogW1BB VENIIDE1LzE4XSB0YXA6IGNvbnZlcnQgYSBtdXRleCB0byBhIHNwaW5sb2NrCgpbIFVwc3RyZWFt IGNvbW1pdCBmZmE0MjNmYjMyNTFmODczNzMwM2ZmYzNiMDY1OWU4NmU1MDE4MDhlIF0KCldlIGFy ZSBub3QgYWxsb3dlZCB0byBibG9jayBvbiB0aGUgUkNVIHJlYWRlciBzaWRlLCBzbyBjYW4ndApq dXN0IGhvbGQgdGhlIG11dGV4IGFzIGJlZm9yZS4gQXMgYSBxdWljayBmaXgsIGNvbnZlcnQgaXQg dG8KYSBzcGlubG9jay4KCkZpeGVzOiBkOWYxZjYxYzA4MDEgKCJ0YXA6IEV4dGVuZGluZyB0YXAg ZGV2aWNlIGNyZWF0ZS9kZXN0cm95IEFQSXMiKQpSZXBvcnRlZC1ieTogQ2hyaXN0aWFuIEJvcm50 cmFlZ2VyIDxib3JudHJhZWdlckBkZS5pYm0uY29tPgpUZXN0ZWQtYnk6IENocmlzdGlhbiBCb3Ju dHJhZWdlciA8Ym9ybnRyYWVnZXJAZGUuaWJtLmNvbT4KQ2M6IFNhaW5hdGggR3JhbmRoaSA8c2Fp bmF0aC5ncmFuZGhpQGludGVsLmNvbT4KU2lnbmVkLW9mZi1ieTogQ29uZyBXYW5nIDx4aXlvdS53 YW5nY29uZ0BnbWFpbC5jb20+ClNpZ25lZC1vZmYtYnk6IERhdmlkIFMuIE1pbGxlciA8ZGF2ZW1A ZGF2ZW1sb2Z0Lm5ldD4KLS0tCiBkcml2ZXJzL25ldC90YXAuYyB8IDE4ICsrKysrKysrKy0tLS0t LS0tLQogMSBmaWxlIGNoYW5nZWQsIDkgaW5zZXJ0aW9ucygrKSwgOSBkZWxldGlvbnMoLSkKCmRp ZmYgLS1naXQgYS9kcml2ZXJzL25ldC90YXAuYyBiL2RyaXZlcnMvbmV0L3RhcC5jCmluZGV4IDRk NDE3M2QyNWRkMC4uZDg4YWUzYzJlZGJmIDEwMDY0NAotLS0gYS9kcml2ZXJzL25ldC90YXAuYwor KysgYi9kcml2ZXJzL25ldC90YXAuYwpAQCAtMTA2LDcgKzEwNiw3IEBAIHN0cnVjdCBtYWpvcl9p bmZvIHsKIAlzdHJ1Y3QgcmN1X2hlYWQgcmN1OwogCWRldl90IG1ham9yOwogCXN0cnVjdCBpZHIg bWlub3JfaWRyOwotCXN0cnVjdCBtdXRleCBtaW5vcl9sb2NrOworCXNwaW5sb2NrX3QgbWlub3Jf bG9jazsKIAljb25zdCBjaGFyICpkZXZpY2VfbmFtZTsKIAlzdHJ1Y3QgbGlzdF9oZWFkIG5leHQ7 CiB9OwpAQCAtNDE2LDE1ICs0MTYsMTUgQEAgaW50IHRhcF9nZXRfbWlub3IoZGV2X3QgbWFqb3Is IHN0cnVjdCB0YXBfZGV2ICp0YXApCiAJCWdvdG8gdW5sb2NrOwogCX0KIAotCW11dGV4X2xvY2so JnRhcF9tYWpvci0+bWlub3JfbG9jayk7Ci0JcmV0dmFsID0gaWRyX2FsbG9jKCZ0YXBfbWFqb3It Pm1pbm9yX2lkciwgdGFwLCAxLCBUQVBfTlVNX0RFVlMsIEdGUF9LRVJORUwpOworCXNwaW5fbG9j aygmdGFwX21ham9yLT5taW5vcl9sb2NrKTsKKwlyZXR2YWwgPSBpZHJfYWxsb2MoJnRhcF9tYWpv ci0+bWlub3JfaWRyLCB0YXAsIDEsIFRBUF9OVU1fREVWUywgR0ZQX0FUT01JQyk7CiAJaWYgKHJl dHZhbCA+PSAwKSB7CiAJCXRhcC0+bWlub3IgPSByZXR2YWw7CiAJfSBlbHNlIGlmIChyZXR2YWwg PT0gLUVOT1NQQykgewogCQluZXRkZXZfZXJyKHRhcC0+ZGV2LCAiVG9vIG1hbnkgdGFwIGRldmlj ZXNcbiIpOwogCQlyZXR2YWwgPSAtRUlOVkFMOwogCX0KLQltdXRleF91bmxvY2soJnRhcF9tYWpv ci0+bWlub3JfbG9jayk7CisJc3Bpbl91bmxvY2soJnRhcF9tYWpvci0+bWlub3JfbG9jayk7CiAK IHVubG9jazoKIAlyY3VfcmVhZF91bmxvY2soKTsKQEAgLTQ0MiwxMiArNDQyLDEyIEBAIHZvaWQg dGFwX2ZyZWVfbWlub3IoZGV2X3QgbWFqb3IsIHN0cnVjdCB0YXBfZGV2ICp0YXApCiAJCWdvdG8g dW5sb2NrOwogCX0KIAotCW11dGV4X2xvY2soJnRhcF9tYWpvci0+bWlub3JfbG9jayk7CisJc3Bp bl9sb2NrKCZ0YXBfbWFqb3ItPm1pbm9yX2xvY2spOwogCWlmICh0YXAtPm1pbm9yKSB7CiAJCWlk cl9yZW1vdmUoJnRhcF9tYWpvci0+bWlub3JfaWRyLCB0YXAtPm1pbm9yKTsKIAkJdGFwLT5taW5v ciA9IDA7CiAJfQotCW11dGV4X3VubG9jaygmdGFwX21ham9yLT5taW5vcl9sb2NrKTsKKwlzcGlu X3VubG9jaygmdGFwX21ham9yLT5taW5vcl9sb2NrKTsKIAogdW5sb2NrOgogCXJjdV9yZWFkX3Vu bG9jaygpOwpAQCAtNDY3LDEzICs0NjcsMTMgQEAgc3RhdGljIHN0cnVjdCB0YXBfZGV2ICpkZXZf Z2V0X2J5X3RhcF9maWxlKGludCBtYWpvciwgaW50IG1pbm9yKQogCQlnb3RvIHVubG9jazsKIAl9 CiAKLQltdXRleF9sb2NrKCZ0YXBfbWFqb3ItPm1pbm9yX2xvY2spOworCXNwaW5fbG9jaygmdGFw X21ham9yLT5taW5vcl9sb2NrKTsKIAl0YXAgPSBpZHJfZmluZCgmdGFwX21ham9yLT5taW5vcl9p ZHIsIG1pbm9yKTsKIAlpZiAodGFwKSB7CiAJCWRldiA9IHRhcC0+ZGV2OwogCQlkZXZfaG9sZChk ZXYpOwogCX0KLQltdXRleF91bmxvY2soJnRhcF9tYWpvci0+bWlub3JfbG9jayk7CisJc3Bpbl91 bmxvY2soJnRhcF9tYWpvci0+bWlub3JfbG9jayk7CiAKIHVubG9jazoKIAlyY3VfcmVhZF91bmxv Y2soKTsKQEAgLTEyMjcsNyArMTIyNyw3IEBAIHN0YXRpYyBpbnQgdGFwX2xpc3RfYWRkKGRldl90 IG1ham9yLCBjb25zdCBjaGFyICpkZXZpY2VfbmFtZSkKIAl0YXBfbWFqb3ItPm1ham9yID0gTUFK T1IobWFqb3IpOwogCiAJaWRyX2luaXQoJnRhcF9tYWpvci0+bWlub3JfaWRyKTsKLQltdXRleF9p bml0KCZ0YXBfbWFqb3ItPm1pbm9yX2xvY2spOworCXNwaW5fbG9ja19pbml0KCZ0YXBfbWFqb3It Pm1pbm9yX2xvY2spOwogCiAJdGFwX21ham9yLT5kZXZpY2VfbmFtZSA9IGRldmljZV9uYW1lOwog Ci0tIAoyLjEzLjAKCgpGcm9tIDQ4MDY2NThhZDVhMzQ3MjYxMjQ3NTg1MzM2YjBlODBhMDNmNmI2 YjkgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCkZyb206IEVkdWFyZG8gVmFsZW50aW4gPGVkdXZh bEBhbWF6b24uY29tPgpEYXRlOiBUdWUsIDExIEp1bCAyMDE3IDE0OjU1OjEyIC0wNzAwClN1Ympl Y3Q6IFtQQVRDSCAxNi8xOF0gYnJpZGdlOiBtZGI6IGZpeCBsZWFrIG9uIGNvbXBsZXRlX2luZm8g cHRyIG9uIGZhaWwgcGF0aAoKWyBVcHN0cmVhbSBjb21taXQgMWJmYjE1OTY3Mzk1NzY0NDk1MWFi MGE4ZDJhZWM0NGI5M2RkYjFhZSBdCgpXZSBjdXJyZW50bHkgZ2V0IHRoZSBmb2xsb3dpbmcga21l bWxlYWsgcmVwb3J0Ogp1bnJlZmVyZW5jZWQgb2JqZWN0IDB4ZmZmZjg4MDAwMzlkOTgyMCAoc2l6 ZSAzMik6CiAgY29tbSAic29mdGlycSIsIHBpZCAwLCBqaWZmaWVzIDQyOTUyMTIzODMgKGFnZSA3 OTIuNDE2cykKICBoZXggZHVtcCAoZmlyc3QgMzIgYnl0ZXMpOgogICAgMDAgMGMgZTAgMDMgMDAg ODggZmYgZmYgZmYgMDIgMDAgMDAgMDAgMDAgMDAgMDAgIC4uLi4uLi4uLi4uLi4uLi4KICAgIDAw IDAwIDAwIDAxIGZmIDExIDAwIDAyIDg2IGRkIDAwIDAwIGZmIGZmIGZmIGZmICAuLi4uLi4uLi4u Li4uLi4uCiAgYmFja3RyYWNlOgogICAgWzxmZmZmZmZmZjgxNTJiNGFhPl0ga21lbWxlYWtfYWxs b2MrMHg0YS8weGEwCiAgICBbPGZmZmZmZmZmODExZDhlYzg+XSBrbWVtX2NhY2hlX2FsbG9jX3Ry YWNlKzB4YjgvMHgxYzAKICAgIFs8ZmZmZmZmZmZhMDM4OTY4Mz5dIF9fYnJfbWRiX25vdGlmeSsw eDJhMy8weDMwMCBbYnJpZGdlXQogICAgWzxmZmZmZmZmZmEwMzhhMGNlPl0gYnJfbWRiX25vdGlm eSsweDZlLzB4NzAgW2JyaWRnZV0KICAgIFs8ZmZmZmZmZmZhMDM4NjQ3OT5dIGJyX211bHRpY2Fz dF9hZGRfZ3JvdXArMHgxMDkvMHgxNTAgW2JyaWRnZV0KICAgIFs8ZmZmZmZmZmZhMDM4NjUxOD5d IGJyX2lwNl9tdWx0aWNhc3RfYWRkX2dyb3VwKzB4NTgvMHg2MCBbYnJpZGdlXQogICAgWzxmZmZm ZmZmZmEwMzg3ZmI1Pl0gYnJfbXVsdGljYXN0X3JjdisweDFkNS8weGRiMCBbYnJpZGdlXQogICAg WzxmZmZmZmZmZmEwMzdkN2NmPl0gYnJfaGFuZGxlX2ZyYW1lX2ZpbmlzaCsweGNmLzB4NTEwIFti cmlkZ2VdCiAgICBbPGZmZmZmZmZmYTAzYTIzNmI+XSBicl9uZl9ob29rX3RocmVzaC5wYXJ0LjI3 KzB4Yi8weDEwIFticl9uZXRmaWx0ZXJdCiAgICBbPGZmZmZmZmZmYTAzYTM3Mzg+XSBicl9uZl9o b29rX3RocmVzaCsweDQ4LzB4YjAgW2JyX25ldGZpbHRlcl0KICAgIFs8ZmZmZmZmZmZhMDNhM2Zi OT5dIGJyX25mX3ByZV9yb3V0aW5nX2ZpbmlzaF9pcHY2KzB4MTA5LzB4MWQwIFticl9uZXRmaWx0 ZXJdCiAgICBbPGZmZmZmZmZmYTAzYTQ0MDA+XSBicl9uZl9wcmVfcm91dGluZ19pcHY2KzB4ZDAv MHgxNGMgW2JyX25ldGZpbHRlcl0KICAgIFs8ZmZmZmZmZmZhMDNhM2MyNz5dIGJyX25mX3ByZV9y b3V0aW5nKzB4MTk3LzB4M2QwIFticl9uZXRmaWx0ZXJdCiAgICBbPGZmZmZmZmZmODE0YTI5NTI+ XSBuZl9pdGVyYXRlKzB4NTIvMHg2MAogICAgWzxmZmZmZmZmZjgxNGEyOWJjPl0gbmZfaG9va19z bG93KzB4NWMvMHhiMAogICAgWzxmZmZmZmZmZmEwMzdkZGY0Pl0gYnJfaGFuZGxlX2ZyYW1lKzB4 MWE0LzB4MmMwIFticmlkZ2VdCgpUaGlzIGhhcHBlbnMgd2hlbiBzd2l0Y2hkZXZfcG9ydF9vYmpf YWRkKCkgZmFpbHMuIFRoaXMgcGF0Y2gKZnJlZXMgY29tcGxldGVfaW5mbyBvYmplY3QgaW4gdGhl IGZhaWwgcGF0aC4KClJldmlld2VkLWJ5OiBWYWxsaXNoIFZhaWR5ZXNod2FyYSA8dmFsbGlzaEBh bWF6b24uY29tPgpTaWduZWQtb2ZmLWJ5OiBFZHVhcmRvIFZhbGVudGluIDxlZHV2YWxAYW1hem9u LmNvbT4KU2lnbmVkLW9mZi1ieTogRGF2aWQgUy4gTWlsbGVyIDxkYXZlbUBkYXZlbWxvZnQubmV0 PgotLS0KIG5ldC9icmlkZ2UvYnJfbWRiLmMgfCAzICsrLQogMSBmaWxlIGNoYW5nZWQsIDIgaW5z ZXJ0aW9ucygrKSwgMSBkZWxldGlvbigtKQoKZGlmZiAtLWdpdCBhL25ldC9icmlkZ2UvYnJfbWRi LmMgYi9uZXQvYnJpZGdlL2JyX21kYi5jCmluZGV4IGIwODQ1NDgwYTNhZS4uYzEwMzBmODUyYjNj IDEwMDY0NAotLS0gYS9uZXQvYnJpZGdlL2JyX21kYi5jCisrKyBiL25ldC9icmlkZ2UvYnJfbWRi LmMKQEAgLTMyMyw3ICszMjMsOCBAQCBzdGF0aWMgdm9pZCBfX2JyX21kYl9ub3RpZnkoc3RydWN0 IG5ldF9kZXZpY2UgKmRldiwgc3RydWN0IG5ldF9icmlkZ2VfcG9ydCAqcCwKIAkJCV9fbWRiX2Vu dHJ5X3RvX2JyX2lwKGVudHJ5LCAmY29tcGxldGVfaW5mby0+aXApOwogCQkJbWRiLm9iai5jb21w bGV0ZV9wcml2ID0gY29tcGxldGVfaW5mbzsKIAkJCW1kYi5vYmouY29tcGxldGUgPSBicl9tZGJf Y29tcGxldGU7Ci0JCQlzd2l0Y2hkZXZfcG9ydF9vYmpfYWRkKHBvcnRfZGV2LCAmbWRiLm9iaik7 CisJCQlpZiAoc3dpdGNoZGV2X3BvcnRfb2JqX2FkZChwb3J0X2RldiwgJm1kYi5vYmopKQorCQkJ CWtmcmVlKGNvbXBsZXRlX2luZm8pOwogCQl9CiAJfSBlbHNlIGlmIChwb3J0X2RldiAmJiB0eXBl ID09IFJUTV9ERUxNREIpIHsKIAkJc3dpdGNoZGV2X3BvcnRfb2JqX2RlbChwb3J0X2RldiwgJm1k Yi5vYmopOwotLSAKMi4xMy4wCgoKRnJvbSBlOTFkMzc0ODc5MGNiNzdhNjVhNTExZjcxY2IxZDky YzYwYmIzZDk4IE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBBcmVuZCB2YW4gU3ByaWVs IDxhcmVuZC52YW5zcHJpZWxAYnJvYWRjb20uY29tPgpEYXRlOiBGcmksIDcgSnVsIDIwMTcgMjE6 MDk6MDYgKzAxMDAKU3ViamVjdDogW1BBVENIIDE3LzE4XSBicmNtZm1hYzogZml4IHBvc3NpYmxl IGJ1ZmZlciBvdmVyZmxvdyBpbgogYnJjbWZfY2ZnODAyMTFfbWdtdF90eCgpCk1JTUUtVmVyc2lv bjogMS4wCkNvbnRlbnQtVHlwZTogdGV4dC9wbGFpbjsgY2hhcnNldD1VVEYtOApDb250ZW50LVRy YW5zZmVyLUVuY29kaW5nOiA4Yml0CgpbIFVwc3RyZWFtIGNvbW1pdCA4ZjQ0YzlhNDEzODY3Mjlm ZWE0MTBlNjg4OTU5ZGRhYTlkNTFiZTdjIF0KClRoZSBsb3dlciBsZXZlbCBubDgwMjExIGNvZGUg aW4gY2ZnODAyMTEgZW5zdXJlcyB0aGF0ICJsZW4iIGlzIGJldHdlZW4KMjUgYW5kIE5MODAyMTFf QVRUUl9GUkFNRSAoMjMwNCkuICBXZSBzdWJ0cmFjdCBET1QxMV9NR01UX0hEUl9MRU4gKDI0KSBm cm9tCiJsZW4iIHNvIHRoYXRzJ3MgbWF4IG9mIDIyODAuICBIb3dldmVyLCB0aGUgYWN0aW9uX2Zy YW1lLT5kYXRhW10gYnVmZmVyIGlzCm9ubHkgQlJDTUZfRklMX0FDVElPTl9GUkFNRV9TSVpFICgx ODAwKSBieXRlcyBsb25nIHNvIHRoaXMgbWVtY3B5KCkgY2FuCm92ZXJmbG93LgoKCW1lbWNweShh Y3Rpb25fZnJhbWUtPmRhdGEsICZidWZbRE9UMTFfTUdNVF9IRFJfTEVOXSwKCSAgICAgICBsZTE2 X3RvX2NwdShhY3Rpb25fZnJhbWUtPmxlbikpOwoKQ2M6IHN0YWJsZUB2Z2VyLmtlcm5lbC5vcmcg IyAzLjkueApGaXhlczogMThlMmY2MWRiM2I3MCAoImJyY21mbWFjOiBQMlAgYWN0aW9uIGZyYW1l IHR4LiIpClJlcG9ydGVkLWJ5OiAiZnJlZW5lcmd1byjpg63lpKflhbQpIiA8ZnJlZW5lcmd1b0B0 ZW5jZW50LmNvbT4KU2lnbmVkLW9mZi1ieTogQXJlbmQgdmFuIFNwcmllbCA8YXJlbmQudmFuc3By aWVsQGJyb2FkY29tLmNvbT4KU2lnbmVkLW9mZi1ieTogRGF2aWQgUy4gTWlsbGVyIDxkYXZlbUBk YXZlbWxvZnQubmV0PgotLS0KIGRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIx MS9icmNtZm1hYy9jZmc4MDIxMS5jIHwgNSArKysrKwogMSBmaWxlIGNoYW5nZWQsIDUgaW5zZXJ0 aW9ucygrKQoKZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204 MDIxMS9icmNtZm1hYy9jZmc4MDIxMS5jIGIvZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20v YnJjbTgwMjExL2JyY21mbWFjL2NmZzgwMjExLmMKaW5kZXggNjE3MTk5YzBlNWEwLi4xMTBjOWNk MjgyMmUgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIx MS9icmNtZm1hYy9jZmc4MDIxMS5jCisrKyBiL2RyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29t L2JyY204MDIxMS9icmNtZm1hYy9jZmc4MDIxMS5jCkBAIC00ODUxLDYgKzQ4NTEsMTEgQEAgYnJj bWZfY2ZnODAyMTFfbWdtdF90eChzdHJ1Y3Qgd2lwaHkgKndpcGh5LCBzdHJ1Y3Qgd2lyZWxlc3Nf ZGV2ICp3ZGV2LAogCQljZmc4MDIxMV9tZ210X3R4X3N0YXR1cyh3ZGV2LCAqY29va2llLCBidWYs IGxlbiwgdHJ1ZSwKIAkJCQkJR0ZQX0tFUk5FTCk7CiAJfSBlbHNlIGlmIChpZWVlODAyMTFfaXNf YWN0aW9uKG1nbXQtPmZyYW1lX2NvbnRyb2wpKSB7CisJCWlmIChsZW4gPiBCUkNNRl9GSUxfQUNU SU9OX0ZSQU1FX1NJWkUgKyBET1QxMV9NR01UX0hEUl9MRU4pIHsKKwkJCWJyY21mX2VycigiaW52 YWxpZCBhY3Rpb24gZnJhbWUgbGVuZ3RoXG4iKTsKKwkJCWVyciA9IC1FSU5WQUw7CisJCQlnb3Rv IGV4aXQ7CisJCX0KIAkJYWZfcGFyYW1zID0ga3phbGxvYyhzaXplb2YoKmFmX3BhcmFtcyksIEdG UF9LRVJORUwpOwogCQlpZiAoYWZfcGFyYW1zID09IE5VTEwpIHsKIAkJCWJyY21mX2VycigidW5h YmxlIHRvIGFsbG9jYXRlIGZyYW1lXG4iKTsKLS0gCjIuMTMuMAoKCkZyb20gZmIzNGRjNmIxMjdj YzQzYjBkOTRkNDhjNTc0NjA0YTZhNmYyZTllNyBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJv bTogQmVydCBLZW53YXJkIDxia2Vud2FyZEBzb2xhcmZsYXJlLmNvbT4KRGF0ZTogV2VkLCAxMiBK dWwgMjAxNyAxNzoxOTo0MSArMDEwMApTdWJqZWN0OiBbUEFUQ0ggMTgvMThdIHNmYzogZG9uJ3Qg cmVhZCBiZXlvbmQgdW5pY2FzdCBhZGRyZXNzIGxpc3QKClsgVXBzdHJlYW0gY29tbWl0IGM3MGQ2 ODE1MGY3MWI4NGNlYTY5OTdhNTM0OTNlMTdiZjE4YTU0ZGIgXQoKSWYgd2UgaGF2ZSBtb3JlIHRo YW4gMzIgdW5pY2FzdCBNQUMgYWRkcmVzc2VzIGFzc2lnbmVkIHRvIGFuIGludGVyZmFjZQp3ZSB3 aWxsIHJlYWQgYmV5b25kIHRoZSBlbmQgb2YgdGhlIGFkZHJlc3MgdGFibGUgaW4gdGhlIGRyaXZl ciB3aGVuCmFkZGluZyBmaWx0ZXJzLiBUaGUgbmV4dCAyNTYgZW50cmllcyBzdG9yZSBtdWx0aWNh c3QgYWRkcmVzc2VzLCBzbyB3ZQp3aWxsIGVuZCB1cCBhdHRlbXB0aW5nIHRvIGluc2VydCBkdXBs aWNhdGUgZmlsdGVycywgd2hpY2ggaXMgbW9zdGx5Cmhhcm1sZXNzLiBJZiB3ZSBhZGQgbW9yZSB0 aGFuIDI4OCB1bmljYXN0IGFkZHJlc3NlcyB3ZSB3aWxsIHRoZW4gcmVhZApwYXN0IHRoZSBtdWx0 aWNhc3QgYWRkcmVzcyB0YWJsZSwgd2hpY2ggaXMgbGlrZWx5IHRvIGJlIG1vcmUgZXhjaXRpbmcu CgpGaXhlczogMTJmYjBkYTQ1YzlhICgic2ZjOiBjbGVhbiBmYWxsYmFja3MgYmV0d2VlbiBwcm9t aXNjL25vcm1hbCBpbiBlZnhfZWYxMF9maWx0ZXJfc3luY19yeF9tb2RlIikKU2lnbmVkLW9mZi1i eTogQmVydCBLZW53YXJkIDxia2Vud2FyZEBzb2xhcmZsYXJlLmNvbT4KU2lnbmVkLW9mZi1ieTog RGF2aWQgUy4gTWlsbGVyIDxkYXZlbUBkYXZlbWxvZnQubmV0PgotLS0KIGRyaXZlcnMvbmV0L2V0 aGVybmV0L3NmYy9lZjEwLmMgfCA4ICsrKy0tLS0tCiAxIGZpbGUgY2hhbmdlZCwgMyBpbnNlcnRp b25zKCspLCA1IGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L2V0aGVybmV0 L3NmYy9lZjEwLmMgYi9kcml2ZXJzL25ldC9ldGhlcm5ldC9zZmMvZWYxMC5jCmluZGV4IDc4Zjll NDM0MjBlMC4uZjJkYTA3M2Y0YjJiIDEwMDY0NAotLS0gYS9kcml2ZXJzL25ldC9ldGhlcm5ldC9z ZmMvZWYxMC5jCisrKyBiL2RyaXZlcnMvbmV0L2V0aGVybmV0L3NmYy9lZjEwLmMKQEAgLTUwMzQs MTIgKzUwMzQsOSBAQCBzdGF0aWMgdm9pZCBlZnhfZWYxMF9maWx0ZXJfdWNfYWRkcl9saXN0KHN0 cnVjdCBlZnhfbmljICplZngpCiAJc3RydWN0IGVmeF9lZjEwX2ZpbHRlcl90YWJsZSAqdGFibGUg PSBlZngtPmZpbHRlcl9zdGF0ZTsKIAlzdHJ1Y3QgbmV0X2RldmljZSAqbmV0X2RldiA9IGVmeC0+ bmV0X2RldjsKIAlzdHJ1Y3QgbmV0ZGV2X2h3X2FkZHIgKnVjOwotCWludCBhZGRyX2NvdW50Owog CXVuc2lnbmVkIGludCBpOwogCi0JYWRkcl9jb3VudCA9IG5ldGRldl91Y19jb3VudChuZXRfZGV2 KTsKIAl0YWJsZS0+dWNfcHJvbWlzYyA9ICEhKG5ldF9kZXYtPmZsYWdzICYgSUZGX1BST01JU0Mp OwotCXRhYmxlLT5kZXZfdWNfY291bnQgPSAxICsgYWRkcl9jb3VudDsKIAlldGhlcl9hZGRyX2Nv cHkodGFibGUtPmRldl91Y19saXN0WzBdLmFkZHIsIG5ldF9kZXYtPmRldl9hZGRyKTsKIAlpID0g MTsKIAluZXRkZXZfZm9yX2VhY2hfdWNfYWRkcih1YywgbmV0X2RldikgewpAQCAtNTA1MCw2ICs1 MDQ3LDggQEAgc3RhdGljIHZvaWQgZWZ4X2VmMTBfZmlsdGVyX3VjX2FkZHJfbGlzdChzdHJ1Y3Qg ZWZ4X25pYyAqZWZ4KQogCQlldGhlcl9hZGRyX2NvcHkodGFibGUtPmRldl91Y19saXN0W2ldLmFk ZHIsIHVjLT5hZGRyKTsKIAkJaSsrOwogCX0KKworCXRhYmxlLT5kZXZfdWNfY291bnQgPSBpOwog fQogCiBzdGF0aWMgdm9pZCBlZnhfZWYxMF9maWx0ZXJfbWNfYWRkcl9saXN0KHN0cnVjdCBlZnhf bmljICplZngpCkBAIC01MDU3LDEyICs1MDU2LDExIEBAIHN0YXRpYyB2b2lkIGVmeF9lZjEwX2Zp bHRlcl9tY19hZGRyX2xpc3Qoc3RydWN0IGVmeF9uaWMgKmVmeCkKIAlzdHJ1Y3QgZWZ4X2VmMTBf ZmlsdGVyX3RhYmxlICp0YWJsZSA9IGVmeC0+ZmlsdGVyX3N0YXRlOwogCXN0cnVjdCBuZXRfZGV2 aWNlICpuZXRfZGV2ID0gZWZ4LT5uZXRfZGV2OwogCXN0cnVjdCBuZXRkZXZfaHdfYWRkciAqbWM7 Ci0JdW5zaWduZWQgaW50IGksIGFkZHJfY291bnQ7CisJdW5zaWduZWQgaW50IGk7CiAKIAl0YWJs ZS0+bWNfb3ZlcmZsb3cgPSBmYWxzZTsKIAl0YWJsZS0+bWNfcHJvbWlzYyA9ICEhKG5ldF9kZXYt PmZsYWdzICYgKElGRl9QUk9NSVNDIHwgSUZGX0FMTE1VTFRJKSk7CiAKLQlhZGRyX2NvdW50ID0g bmV0ZGV2X21jX2NvdW50KG5ldF9kZXYpOwogCWkgPSAwOwogCW5ldGRldl9mb3JfZWFjaF9tY19h ZGRyKG1jLCBuZXRfZGV2KSB7CiAJCWlmIChpID49IEVGWF9FRjEwX0ZJTFRFUl9ERVZfTUNfTUFY KSB7Ci0tIAoyLjEzLjAKCg== ----Next_Part(Mon_Jul_17_09_44_28_2017_687)----