From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from shards.monkeyblade.net ([23.128.96.9]:33122 "EHLO shards.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1751166AbeFTMhV (ORCPT ); Wed, 20 Jun 2018 08:37:21 -0400 Received: from localhost (unknown [61.102.160.122]) (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 428EA1468F382 for ; Wed, 20 Jun 2018 05:37:17 -0700 (PDT) Date: Wed, 20 Jun 2018 21:37:12 +0900 (KST) Message-Id: <20180620.213712.1776775568563929394.davem@davemloft.net> To: stable@vger.kernel.org Subject: [PATCHES] Networking From: David Miller Mime-Version: 1.0 Content-Type: Multipart/Mixed; boundary="--Next_Part(Wed_Jun_20_21_37_12_2018_097)--" Content-Transfer-Encoding: 7bit Sender: stable-owner@vger.kernel.org List-ID: ----Next_Part(Wed_Jun_20_21_37_12_2018_097)-- Content-Type: Text/Plain; charset=us-ascii Content-Transfer-Encoding: 7bit Please queue up the following networking bug fixes for 4.16 and 4.17 -stable, respectively. ----Next_Part(Wed_Jun_20_21_37_12_2018_097)-- Content-Type: Application/Octet-Stream Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="net_416.mbox" RnJvbSAwYTdhMTBmZDJlNjA4MDBkOGVkNzljNmRmYWJmNmZiYTg0YTRjYjgwIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBYaWFuZ25pbmcgWXUgPHl1eGlhbmduaW5nQGdtYWlsLmNvbT4K RGF0ZTogVGh1LCA3IEp1biAyMDE4IDEzOjM5OjU5ICswODAwClN1YmplY3Q6IFtQQVRDSCAwMS8x Ml0gYm9uZGluZzogcmUtZXZhbHVhdGUgZm9yY2VfcHJpbWFyeSB3aGVuIHRoZSBwcmltYXJ5CiBz bGF2ZSBuYW1lIGNoYW5nZXMKClsgVXBzdHJlYW0gY29tbWl0IGViNTViYmY4NjVkOTk3OTA5OGM2 YTdhMTdjYmRiNDEyMzdlY2U5NTEgXQoKVGhlcmUgaXMgYSB0aW1pbmcgaXNzdWUgdW5kZXIgYWN0 aXZlLXN0YW5keSBtb2RlLCB3aGVuIGJvbmRfZW5zbGF2ZSgpIGlzCmNhbGxlZCwgYm9uZC0+cGFy YW1zLnByaW1hcnkgbWlnaHQgbm90IGJlIGluaXRpYWxpemVkIHlldC4KCkFueSB0aW1lIHRoZSBw cmltYXJ5IHNsYXZlIHN0cmluZyBjaGFuZ2VzLCBib25kLT5mb3JjZV9wcmltYXJ5IHNob3VsZCBi ZQpzZXQgdG8gdHJ1ZSB0byBtYWtlIHN1cmUgdGhlIHByaW1hcnkgYmVjb21lcyB0aGUgYWN0aXZl IHNsYXZlLgoKU2lnbmVkLW9mZi1ieTogWGlhbmduaW5nIFl1IDx5dXhpYW5nbmluZ0BnbWFpbC5j b20+ClNpZ25lZC1vZmYtYnk6IERhdmlkIFMuIE1pbGxlciA8ZGF2ZW1AZGF2ZW1sb2Z0Lm5ldD4K LS0tCiBkcml2ZXJzL25ldC9ib25kaW5nL2JvbmRfb3B0aW9ucy5jIHwgMSArCiAxIGZpbGUgY2hh bmdlZCwgMSBpbnNlcnRpb24oKykKCmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC9ib25kaW5nL2Jv bmRfb3B0aW9ucy5jIGIvZHJpdmVycy9uZXQvYm9uZGluZy9ib25kX29wdGlvbnMuYwppbmRleCA1 OGM3MDVmMjRmOTYuLmI1OTRiYWUxYWRiZCAxMDA2NDQKLS0tIGEvZHJpdmVycy9uZXQvYm9uZGlu Zy9ib25kX29wdGlvbnMuYworKysgYi9kcml2ZXJzL25ldC9ib25kaW5nL2JvbmRfb3B0aW9ucy5j CkBAIC0xMTQyLDYgKzExNDIsNyBAQCBzdGF0aWMgaW50IGJvbmRfb3B0aW9uX3ByaW1hcnlfc2V0 KHN0cnVjdCBib25kaW5nICpib25kLAogCQkJCSAgIHNsYXZlLT5kZXYtPm5hbWUpOwogCQkJcmN1 X2Fzc2lnbl9wb2ludGVyKGJvbmQtPnByaW1hcnlfc2xhdmUsIHNsYXZlKTsKIAkJCXN0cmNweShi b25kLT5wYXJhbXMucHJpbWFyeSwgc2xhdmUtPmRldi0+bmFtZSk7CisJCQlib25kLT5mb3JjZV9w cmltYXJ5ID0gdHJ1ZTsKIAkJCWJvbmRfc2VsZWN0X2FjdGl2ZV9zbGF2ZShib25kKTsKIAkJCWdv dG8gb3V0OwogCQl9Ci0tIAoyLjE3LjEKCgpGcm9tIGUxOGI5MzgzYjkyOWU4ZTY5MDBhNjY5NzA0 YzlkYzBhNWI1N2FiZjYgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCkZyb206ID0/VVRGLTg/cT9C aj1DMz1COHJuPTIwTW9yaz89IDxiam9ybkBtb3JrLm5vPgpEYXRlOiBGcmksIDggSnVuIDIwMTgg MDk6MTU6MjQgKzAyMDAKU3ViamVjdDogW1BBVENIIDAyLzEyXSBjZGNfbmNtOiBhdm9pZCBwYWRk aW5nIGJleW9uZCBlbmQgb2Ygc2tiCk1JTUUtVmVyc2lvbjogMS4wCkNvbnRlbnQtVHlwZTogdGV4 dC9wbGFpbjsgY2hhcnNldD1VVEYtOApDb250ZW50LVRyYW5zZmVyLUVuY29kaW5nOiA4Yml0Cgpb IFVwc3RyZWFtIGNvbW1pdCA0OWMyYzNmMjQ2ZTJmYzMwMDkwMzllMzFhODI2MzMzZGNkMDI4M2Nk IF0KCkNvbW1pdCA0YTBlM2U5ODlkNjYgKCJjZGNfbmNtOiBBZGQgc3VwcG9ydCBmb3IgbW92aW5n IE5EUCB0byBlbmQKb2YgTkNNIGZyYW1lIikgYWRkZWQgbG9naWMgdG8gcmVzZXJ2ZSBzcGFjZSBm b3IgdGhlIE5EUCBhdCB0aGUKZW5kIG9mIHRoZSBOVEIvc2tiLiAgVGhpcyByZXNlcnZhdGlvbiBk aWQgbm90IHRha2UgdGhlIGZpbmFsCmFsaWdubWVudCBvZiB0aGUgTkRQIGludG8gYWNjb3VudCwg Y2F1c2luZyB1cyB0byByZXNlcnZlIHRvbwpsaXR0bGUgc3BhY2UuIEFkZGl0aW9uYWxseSB0aGUg cGFkZGluZyBwcmlvciB0byBORFAgYWRkaXRpb24gZGlkCm5vdCBlbnN1cmUgdGhlcmUgd2FzIGVu b3VnaCBzcGFjZSBmb3IgdGhlIE5EUC4KClRoZSBOVEIvc2tiIHdpdGggdGhlIE5EUCBhcHBlbmRl ZCB3b3VsZCB0aGVuIGV4Y2VlZCB0aGUgY29uZmlndXJlZAptYXggc2l6ZS4gVGhpcyBjYXVzZWQg dGhlIGZpbmFsIHBhZGRpbmcgb2YgdGhlIE5UQiB0byB1c2UgYQpuZWdhdGl2ZSBjb3VudCwgcGFk ZGluZyB0byBhbG1vc3QgSU5UX01BWCwgYW5kIHJlc3VsdGluZyBpbjoKCls2MDEwMy44MjU5NzBd IEJVRzogdW5hYmxlIHRvIGhhbmRsZSBrZXJuZWwgcGFnaW5nIHJlcXVlc3QgYXQgZmZmZjk2NDFm MjAwNDAwMApbNjAxMDMuODI1OTk4XSBJUDogX19tZW1zZXQrMHgyNC8weDMwCls2MDEwMy44MjYw MDFdIFBHRCBhNmEwNjA2NyBQNEQgYTZhMDYwNjcgUFVEIDRmNjVhMDYzIFBNRCA3MjAwMzA2MyBQ VEUgMApbNjAxMDMuODI2MDEzXSBPb3BzOiAwMDAyIFsjMV0gU01QIE5PUFRJCls2MDEwMy44MjYw MThdIE1vZHVsZXMgbGlua2VkIGluOiAocmVtb3ZlZCgKWzYwMTAzLjgyNjE1OF0gQ1BVOiAwIFBJ RDogNTk5MCBDb21tOiBDaHJvbWVfRGV2VG9vbHMgVGFpbnRlZDogRyAgICAgICAgICAgTyA0LjE0 LjAtMy1hbWQ2NCAjMSBEZWJpYW4gNC4xNC4xNy0xCls2MDEwMy44MjYxNjJdIEhhcmR3YXJlIG5h bWU6IExFTk9WTyAyMDA4MSBCSU9TIDQxQ04yOFdXKFYyLjA0KSAwNS8wMy8yMDEyCls2MDEwMy44 MjYxNjZdIHRhc2s6IGZmZmY5NjQxOTM0ODRmYzAgdGFzay5zdGFjazogZmZmZmIyODkwMTM3YzAw MApbNjAxMDMuODI2MTcxXSBSSVA6IDAwMTA6X19tZW1zZXQrMHgyNC8weDMwCls2MDEwMy44MjYx NzRdIFJTUDogMDAwMDpmZmZmOTY0MzE2YzAzYjY4IEVGTEFHUzogMDAwMTAyMTYKWzYwMTAzLjgy NjE3OF0gUkFYOiAwMDAwMDAwMDAwMDAwMDAwIFJCWDogMDAwMDAwMDBmZmZmZmZmZCBSQ1g6IDAw MDAwMDAwMWZmYTUwMDAKWzYwMTAzLjgyNjE4MV0gUkRYOiAwMDAwMDAwMDAwMDAwMDA1IFJTSTog MDAwMDAwMDAwMDAwMDAwMCBSREk6IGZmZmY5NjQxZjIwMDNmZmMKWzYwMTAzLjgyNjE4NF0gUkJQ OiBmZmZmOTY0MTkyZjZjODAwIFIwODogMDAwMDAwMDAzMDRkNDM0ZSBSMDk6IGZmZmY5NjQxZjFk MmMwMDQKWzYwMTAzLjgyNjE4N10gUjEwOiAwMDAwMDAwMDAwMDAwMDAyIFIxMTogMDAwMDAwMDAw MDAwMDVhZSBSMTI6IGZmZmY5NjQyZTY5NTdhODAKWzYwMTAzLjgyNjE5MF0gUjEzOiBmZmZmOTY0 MjgyZmYyZWU4IFIxNDogMDAwMDAwMDAwMDAwMDAwZCBSMTU6IGZmZmY5NjQyZTQ4NDM5MDAKWzYw MTAzLjgyNjE5NF0gRlM6ICAwMDAwN2YzOTVhYWY2NzAwKDAwMDApIEdTOmZmZmY5NjQzMTZjMDAw MDAoMDAwMCkga25sR1M6MDAwMDAwMDAwMDAwMDAwMApbNjAxMDMuODI2MTk3XSBDUzogIDAwMTAg RFM6IDAwMDAgRVM6IDAwMDAgQ1IwOiAwMDAwMDAwMDgwMDUwMDMzCls2MDEwMy44MjYyMDBdIENS MjogZmZmZjk2NDFmMjAwNDAwMCBDUjM6IDAwMDAwMDAwMTNiMGMwMDAgQ1I0OiAwMDAwMDAwMDAw MDAwNmYwCls2MDEwMy44MjYyMDRdIENhbGwgVHJhY2U6Cls2MDEwMy44MjYyMTJdICA8SVJRPgpb NjAxMDMuODI2MjI1XSAgY2RjX25jbV9maWxsX3R4X2ZyYW1lKzB4NWUzLzB4NzQwIFtjZGNfbmNt XQpbNjAxMDMuODI2MjM2XSAgY2RjX25jbV90eF9maXh1cCsweDU3LzB4NzAgW2NkY19uY21dCls2 MDEwMy44MjYyNDZdICB1c2JuZXRfc3RhcnRfeG1pdCsweDVkLzB4NzEwIFt1c2JuZXRdCls2MDEw My44MjYyNTRdICA/IG5ldGlmX3NrYl9mZWF0dXJlcysweDExOS8weDI1MApbNjAxMDMuODI2MjU5 XSAgZGV2X2hhcmRfc3RhcnRfeG1pdCsweGExLzB4MjAwCls2MDEwMy44MjYyNjddICBzY2hfZGly ZWN0X3htaXQrMHhmMi8weDFiMApbNjAxMDMuODI2MjczXSAgX19kZXZfcXVldWVfeG1pdCsweDVl My8weDdjMApbNjAxMDMuODI2MjgwXSAgPyBpcF9maW5pc2hfb3V0cHV0MisweDI2My8weDNjMApb NjAxMDMuODI2Mjg0XSAgaXBfZmluaXNoX291dHB1dDIrMHgyNjMvMHgzYzAKWzYwMTAzLjgyNjI4 OV0gID8gaXBfb3V0cHV0KzB4NmMvMHhlMApbNjAxMDMuODI2MjkzXSAgaXBfb3V0cHV0KzB4NmMv MHhlMApbNjAxMDMuODI2Mjk4XSAgPyBpcF9mb3J3YXJkX29wdGlvbnMrMHgxYTAvMHgxYTAKWzYw MTAzLjgyNjMwM10gIHRjcF90cmFuc21pdF9za2IrMHg1MTYvMHg5YjAKWzYwMTAzLjgyNjMwOV0g IHRjcF93cml0ZV94bWl0KzB4MWFhLzB4ZWUwCls2MDEwMy44MjYzMTNdICA/IHNjaF9kaXJlY3Rf eG1pdCsweDcxLzB4MWIwCls2MDEwMy44MjYzMThdICB0Y3BfdGFza2xldF9mdW5jKzB4MTc3LzB4 MTgwCls2MDEwMy44MjYzMjVdICB0YXNrbGV0X2FjdGlvbisweDVmLzB4MTEwCls2MDEwMy44MjYz MzJdICBfX2RvX3NvZnRpcnErMHhkZS8weDJiMwpbNjAxMDMuODI2MzM3XSAgaXJxX2V4aXQrMHhh ZS8weGIwCls2MDEwMy44MjYzNDJdICBkb19JUlErMHg4MS8weGQwCls2MDEwMy44MjYzNDddICBj b21tb25faW50ZXJydXB0KzB4OTgvMHg5OApbNjAxMDMuODI2MzUxXSAgPC9JUlE+Cls2MDEwMy44 MjYzNTVdIFJJUDogMDAzMzoweDdmMzk3YmRmMjI4MgpbNjAxMDMuODI2MzU4XSBSU1A6IDAwMmI6 MDAwMDdmMzk1YWFmNTdkOCBFRkxBR1M6IDAwMDAwMjA2IE9SSUdfUkFYOiBmZmZmZmZmZmZmZmZm ZjZlCls2MDEwMy44MjYzNjJdIFJBWDogMDAwMDAwMDAwMDAwMDAwMCBSQlg6IDAwMDAyZjA3YmM2 ZDA5MDAgUkNYOiAwMDAwN2YzOTc1MmQ3ZmU3Cls2MDEwMy44MjYzNjVdIFJEWDogMDAwMDAwMDAw MDAwMDAyMiBSU0k6IDAwMDAwMDAwMDAwMDAxNDcgUkRJOiAwMDAwMmYwN2JhZWEwMmMwCls2MDEw My44MjYzNjhdIFJCUDogMDAwMDAwMDAwMDAwMDAwMSBSMDg6IDAwMDAwMDAwMDAwMDAwMDAgUjA5 OiAwMDAwMDAwMDAwMDAwMDAwCls2MDEwMy44MjYzNzFdIFIxMDogMDAwMDAwMDBmZmZmZmZmZiBS MTE6IDAwMDAwMDAwMDAwMDAwMDAgUjEyOiAwMDAwMmYwN2JhZWEwMmMwCls2MDEwMy44MjYzNzNd IFIxMzogMDAwMDJmMDdiYmEyMjdhMCBSMTQ6IDAwMDAyZjA3YmM2ZDA5MGMgUjE1OiAwMDAwMDAw MDAwMDAwMDAwCls2MDEwMy44MjYzNzddIENvZGU6IDkwIDkwIDkwIDkwIDkwIDkwIDkwIDBmIDFm IDQ0IDAwIDAwIDQ5IDg5IGY5IDQ4IDg5IGQxIDgzCmUyIDA3IDQ4IGMxIGU5IDAzIDQwIDBmIGI2 IGY2IDQ4IGI4IDAxIDAxIDAxIDAxIDAxIDAxIDAxIDAxIDQ4IDBmIGFmIGM2IDxmMz4gNDgKYWIg ODkgZDEgZjMgYWEgNGMgODkgYzggYzMgOTAgNDkgODkgZjkgNDAgODggZjAgNDggODkgZDEKWzYw MTAzLjgyNjQ0Ml0gUklQOiBfX21lbXNldCsweDI0LzB4MzAgUlNQOiBmZmZmOTY0MzE2YzAzYjY4 Cls2MDEwMy44MjY0NDRdIENSMjogZmZmZjk2NDFmMjAwNDAwMAoKQ29tbWl0IGUxMDY5YmJmY2Yz YiAoIm5ldDogY2RjX25jbTogUmVkdWNlIG1lbW9yeSB1c2Ugd2hlbiBrZXJuZWwKbWVtb3J5IGxv dyIpIG1hZGUgdGhpcyBidWcgbXVjaCBtb3JlIGxpa2VseSB0byB0cmlnZ2VyIGJ5IHJlZHVjaW5n CnRoZSBOVEIgc2l6ZSB1bmRlciBtZW1vcnkgcHJlc3N1cmUuCgpMaW5rOiBodHRwczovL2J1Z3Mu ZGViaWFuLm9yZy84OTMzOTMKUmVwb3J0ZWQtYnk6INCT0L7RgNCx0LXRiNC60L4g0JHQvtCz0LTQ sNC9IDxib2RxaHJvaHJvQGdtYWlsLmNvbT4KUmVwb3J0ZWQtYW5kLXRlc3RlZC1ieTogRGVubmlz IFdhc3NlbmJlcmcgPGRlbm5pcy53YXNzZW5iZXJnQHNlY3VuZXQuY29tPgpDYzogRW5yaWNvIE1p b3NvIDxtcmtpa28ucnNAZ21haWwuY29tPgpGaXhlczogNGEwZTNlOTg5ZDY2ICgiY2RjX25jbTog QWRkIHN1cHBvcnQgZm9yIG1vdmluZyBORFAgdG8gZW5kIG9mIE5DTSBmcmFtZSIpClNpZ25lZC1v ZmYtYnk6IEJqw7hybiBNb3JrIDxiam9ybkBtb3JrLm5vPgpTaWduZWQtb2ZmLWJ5OiBEYXZpZCBT LiBNaWxsZXIgPGRhdmVtQGRhdmVtbG9mdC5uZXQ+Ci0tLQogZHJpdmVycy9uZXQvdXNiL2NkY19u Y20uYyB8IDQgKystLQogMSBmaWxlIGNoYW5nZWQsIDIgaW5zZXJ0aW9ucygrKSwgMiBkZWxldGlv bnMoLSkKCmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC91c2IvY2RjX25jbS5jIGIvZHJpdmVycy9u ZXQvdXNiL2NkY19uY20uYwppbmRleCA5ZTFiNzQ1OTA2ODIuLmY1MzE2YWI2OGEwYSAxMDA2NDQK LS0tIGEvZHJpdmVycy9uZXQvdXNiL2NkY19uY20uYworKysgYi9kcml2ZXJzL25ldC91c2IvY2Rj X25jbS5jCkBAIC0xMTI0LDcgKzExMjQsNyBAQCBjZGNfbmNtX2ZpbGxfdHhfZnJhbWUoc3RydWN0 IHVzYm5ldCAqZGV2LCBzdHJ1Y3Qgc2tfYnVmZiAqc2tiLCBfX2xlMzIgc2lnbikKIAkgKiBhY2Nv cmRpbmdseS4gT3RoZXJ3aXNlLCB3ZSBzaG91bGQgY2hlY2sgaGVyZS4KIAkgKi8KIAlpZiAoY3R4 LT5kcnZmbGFncyAmIENEQ19OQ01fRkxBR19ORFBfVE9fRU5EKQotCQlkZWxheWVkX25kcF9zaXpl ID0gY3R4LT5tYXhfbmRwX3NpemU7CisJCWRlbGF5ZWRfbmRwX3NpemUgPSBBTElHTihjdHgtPm1h eF9uZHBfc2l6ZSwgY3R4LT50eF9uZHBfbW9kdWx1cyk7CiAJZWxzZQogCQlkZWxheWVkX25kcF9z aXplID0gMDsKIApAQCAtMTI4NSw3ICsxMjg1LDcgQEAgY2RjX25jbV9maWxsX3R4X2ZyYW1lKHN0 cnVjdCB1c2JuZXQgKmRldiwgc3RydWN0IHNrX2J1ZmYgKnNrYiwgX19sZTMyIHNpZ24pCiAJLyog SWYgcmVxdWVzdGVkLCBwdXQgTkRQIGF0IGVuZCBvZiBmcmFtZS4gKi8KIAlpZiAoY3R4LT5kcnZm bGFncyAmIENEQ19OQ01fRkxBR19ORFBfVE9fRU5EKSB7CiAJCW50aDE2ID0gKHN0cnVjdCB1c2Jf Y2RjX25jbV9udGgxNiAqKXNrYl9vdXQtPmRhdGE7Ci0JCWNkY19uY21fYWxpZ25fdGFpbChza2Jf b3V0LCBjdHgtPnR4X25kcF9tb2R1bHVzLCAwLCBjdHgtPnR4X2N1cnJfc2l6ZSk7CisJCWNkY19u Y21fYWxpZ25fdGFpbChza2Jfb3V0LCBjdHgtPnR4X25kcF9tb2R1bHVzLCAwLCBjdHgtPnR4X2N1 cnJfc2l6ZSAtIGN0eC0+bWF4X25kcF9zaXplKTsKIAkJbnRoMTYtPndOZHBJbmRleCA9IGNwdV90 b19sZTE2KHNrYl9vdXQtPmxlbik7CiAJCXNrYl9wdXRfZGF0YShza2Jfb3V0LCBjdHgtPmRlbGF5 ZWRfbmRwMTYsIGN0eC0+bWF4X25kcF9zaXplKTsKIAotLSAKMi4xNy4xCgoKRnJvbSA4NWIzMzdk ZjM3NTY3MzMwNGZkMzAyZTk2M2NhZGUyNWQ1NDdiNDJkIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAw MQpGcm9tOiBKdWxpYW4gQW5hc3Rhc292IDxqYUBzc2kuYmc+CkRhdGU6IE1vbiwgMTEgSnVuIDIw MTggMDI6MDI6NTQgKzAzMDAKU3ViamVjdDogW1BBVENIIDAzLzEyXSBpcHY2OiBhbGxvdyBQTVRV IGV4Y2VwdGlvbnMgdG8gbG9jYWwgcm91dGVzCgpbIFVwc3RyZWFtIGNvbW1pdCAwOTc1NzY0Njg0 NDg3YmYzZjdhNDdlZWYwMDllNzUwZWE0MWJkNTE0IF0KCklQVlMgc2V0dXBzIHdpdGggbG9jYWwg Y2xpZW50IGFuZCByZW1vdGUgdHVubmVsIHNlcnZlciBuZWVkCnRvIGNyZWF0ZSBleGNlcHRpb24g Zm9yIHRoZSBsb2NhbCB2aXJ0dWFsIElQLiBXaGF0IHdlIGRvIGlzIHRvCmNoYW5nZSBQTVRVIGZy b20gNjRLQiAob24gImxvIikgdG8gMTQ2MCBpbiB0aGUgY29tbW9uIGNhc2UuCgpTdWdnZXN0ZWQt Ynk6IE1hcnRpbiBLYUZhaSBMYXUgPGthZmFpQGZiLmNvbT4KRml4ZXM6IDQ1ZTRmZDI2NjgzYyAo ImlwdjY6IE9ubHkgY3JlYXRlIFJURl9DQUNIRSByb3V0ZXMgYWZ0ZXIgZW5jb3VudGVyaW5nIHBt dHUgZXhjZXB0aW9uIikKRml4ZXM6IDczNDNmZjMxZWJmMCAoImlwdjY6IERvbid0IGNyZWF0ZSBj bG9uZXMgb2YgaG9zdCByb3V0ZXMuIikKU2lnbmVkLW9mZi1ieTogSnVsaWFuIEFuYXN0YXNvdiA8 amFAc3NpLmJnPgpBY2tlZC1ieTogRGF2aWQgQWhlcm4gPGRzYWhlcm5AZ21haWwuY29tPgpBY2tl ZC1ieTogTWFydGluIEthRmFpIExhdSA8a2FmYWlAZmIuY29tPgpTaWduZWQtb2ZmLWJ5OiBEYXZp ZCBTLiBNaWxsZXIgPGRhdmVtQGRhdmVtbG9mdC5uZXQ+Ci0tLQogbmV0L2lwdjYvcm91dGUuYyB8 IDMgLS0tCiAxIGZpbGUgY2hhbmdlZCwgMyBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9uZXQv aXB2Ni9yb3V0ZS5jIGIvbmV0L2lwdjYvcm91dGUuYwppbmRleCA4Zjc0OTc0MmYxMWYuLjBjYjU4 MGNkNWYwMCAxMDA2NDQKLS0tIGEvbmV0L2lwdjYvcm91dGUuYworKysgYi9uZXQvaXB2Ni9yb3V0 ZS5jCkBAIC0yMDc3LDkgKzIwNzcsNiBAQCBzdGF0aWMgdm9pZCBfX2lwNl9ydF91cGRhdGVfcG10 dShzdHJ1Y3QgZHN0X2VudHJ5ICpkc3QsIGNvbnN0IHN0cnVjdCBzb2NrICpzaywKIAljb25zdCBz dHJ1Y3QgaW42X2FkZHIgKmRhZGRyLCAqc2FkZHI7CiAJc3RydWN0IHJ0Nl9pbmZvICpydDYgPSAo c3RydWN0IHJ0Nl9pbmZvICopZHN0OwogCi0JaWYgKHJ0Ni0+cnQ2aV9mbGFncyAmIFJURl9MT0NB TCkKLQkJcmV0dXJuOwotCiAJaWYgKGRzdF9tZXRyaWNfbG9ja2VkKGRzdCwgUlRBWF9NVFUpKQog CQlyZXR1cm47CiAKLS0gCjIuMTcuMQoKCkZyb20gZTY5MTU1Yzg4NTg1NWI1NmY3YzFhNWJjZDYz NTAwNWNmODIwMzhmZiBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJvbTogWmhvdXlhbmcgSmlh IDxqaWF6aG91eWFuZzA5QGdtYWlsLmNvbT4KRGF0ZTogTW9uLCAxMSBKdW4gMjAxOCAxMzoyNjoz NSArMDgwMApTdWJqZWN0OiBbUEFUQ0ggMDQvMTJdIG5ldDogZHNhOiBhZGQgZXJyb3IgaGFuZGxp bmcgZm9yIHBza2JfdHJpbV9yY3N1bQoKWyBVcHN0cmVhbSBjb21taXQgMzQ5YjcxZDZmNDI3ZmY4 MjExYWRmNTA4MzlkYmJmZjNmMjdjMTgwNSBdCgpXaGVuIHBza2JfdHJpbV9yY3N1bSBmYWlscywg dGhlIGxhY2sgb2YgZXJyb3ItaGFuZGxpbmcgY29kZSBtYXkKY2F1c2UgdW5leHBlY3RlZCByZXN1 bHRzLgoKVGhpcyBwYXRjaCBhZGRzIGVycm9yLWhhbmRsaW5nIGNvZGUgYWZ0ZXIgY2FsbGluZyBw c2tiX3RyaW1fcmNzdW0uCgpTaWduZWQtb2ZmLWJ5OiBaaG91eWFuZyBKaWEgPGppYXpob3V5YW5n MDlAZ21haWwuY29tPgpTaWduZWQtb2ZmLWJ5OiBEYXZpZCBTLiBNaWxsZXIgPGRhdmVtQGRhdmVt bG9mdC5uZXQ+Ci0tLQogbmV0L2RzYS90YWdfdHJhaWxlci5jIHwgMyArKy0KIDEgZmlsZSBjaGFu Z2VkLCAyIGluc2VydGlvbnMoKyksIDEgZGVsZXRpb24oLSkKCmRpZmYgLS1naXQgYS9uZXQvZHNh L3RhZ190cmFpbGVyLmMgYi9uZXQvZHNhL3RhZ190cmFpbGVyLmMKaW5kZXggN2QyMGUxZjNkZTI4 Li41NjE5N2YwZDk2MDggMTAwNjQ0Ci0tLSBhL25ldC9kc2EvdGFnX3RyYWlsZXIuYworKysgYi9u ZXQvZHNhL3RhZ190cmFpbGVyLmMKQEAgLTc1LDcgKzc1LDggQEAgc3RhdGljIHN0cnVjdCBza19i dWZmICp0cmFpbGVyX3JjdihzdHJ1Y3Qgc2tfYnVmZiAqc2tiLCBzdHJ1Y3QgbmV0X2RldmljZSAq ZGV2LAogCWlmICghc2tiLT5kZXYpCiAJCXJldHVybiBOVUxMOwogCi0JcHNrYl90cmltX3Jjc3Vt KHNrYiwgc2tiLT5sZW4gLSA0KTsKKwlpZiAocHNrYl90cmltX3Jjc3VtKHNrYiwgc2tiLT5sZW4g LSA0KSkKKwkJcmV0dXJuIE5VTEw7CiAKIAlyZXR1cm4gc2tiOwogfQotLSAKMi4xNy4xCgoKRnJv bSA5NjhkM2E2MjM4NGZhOTJlMWNlNTNlZWI5MWZiM2MzYjZiNDY0MmMzIE1vbiBTZXAgMTcgMDA6 MDA6MDAgMjAwMQpGcm9tOiBBbHZhcm8gR2FtZXogTWFjaGFkbyA8YWx2YXJvLmdhbWV6QGhhemVu dC5jb20+CkRhdGU6IEZyaSwgOCBKdW4gMjAxOCAxMjoyMzozOSArMDIwMApTdWJqZWN0OiBbUEFU Q0ggMDUvMTJdIG5ldDogcGh5OiBkcDgzODIyOiB1c2UgQk1DUl9BTkVOQUJMRSBpbnN0ZWFkIG9m CiBCTVNSX0FORUdDQVBBQkxFIGZvciBEUDgzNjIwCgpbIFVwc3RyZWFtIGNvbW1pdCBiNzE4ZThj OGY0ZjU5MjBhYWRkYzJlNTJkNWUzMmY0OTRjOTExMjljIF0KCkRQODM2MjAgcmVnaXN0ZXIgc2V0 IGlzIGNvbXBhdGlibGUgd2l0aCB0aGUgRFA4Mzg0OCwgYnV0IGl0IGFsc28gc3VwcG9ydHMKMTAw YmFzZS1GWC4gV2hlbiB0aGUgaGFyZHdhcmUgaXMgY29uZmlndXJlZCBzdWNoIGFzIHRoYXQgZmli ZXIgbW9kZSBpcwplbmFibGVkLCBhdXRvbmVnb3RpYXRpb24gaXMgbm90IHBvc3NpYmxlLgoKVGhl IGNoaXAsIGhvd2V2ZXIsIGRvZXNuJ3QgZXhwb3NlIHRoaXMgaW5mb3JtYXRpb24gdmlhIEJNU1Jf QU5FR0NBUEFCTEUuCkluc3RlYWQsIHRoaXMgYml0IGlzIGFsd2F5cyBzZXQgaGlnaCwgZXZlbiBp ZiB0aGUgcGFydGljdWxhciBoYXJkd2FyZQpjb25maWd1cmF0aW9uIG1ha2VzIGl0IHNvIHRoYXQg YXV0byBuZWdvdGlhdGlvbiBpcyBub3QgcG9zc2libGUgWzFdLiBVbmRlcgp0aGVzZSBjaXJjdW1z dGFuY2VzLCB0aGUgcGh5IHN1YnN5c3RlbSBrZWVwcyB0cnlpbmcgZm9yIGF1dG9uZWdvdGlhdGlv biB0bwpoYXBwZW4sIHdpdGhvdXQgc3VjY2Vzcy4KCkhlcmVieSwgd2UgaW5zcGVjdCBCTUNSX0FO RU5BQkxFIGJpdCBhZnRlciBnZW5waHlfY29uZmlnX2luaXQsIHdoaWNoIG9uCnJlc2V0IGlzIHNl dCB0byAwIHdoZW4gYXV0byBuZWdvdGlhdGlvbiBpcyBkaXNhYmxlZCwgYW5kIHNvIHdlIHVzZSB0 aGlzCnZhbHVlIGluc3RlYWQgb2YgQk1TUl9BTkVHQ0FQQUJMRS4KClsxXSBodHRwczovL2UyZS50 aS5jb20vc3VwcG9ydC9pbnRlcmZhY2UvZXRoZXJuZXQvZi85MDMvcC82OTcxNjUvMjU3MTE3MAoK U2lnbmVkLW9mZi1ieTogQWx2YXJvIEdhbWV6IE1hY2hhZG8gPGFsdmFyby5nYW1lekBoYXplbnQu Y29tPgpTaWduZWQtb2ZmLWJ5OiBEYXZpZCBTLiBNaWxsZXIgPGRhdmVtQGRhdmVtbG9mdC5uZXQ+ Ci0tLQogZHJpdmVycy9uZXQvcGh5L2RwODM4NDguYyB8IDM1ICsrKysrKysrKysrKysrKysrKysr KysrKysrKysrLS0tLS0tCiAxIGZpbGUgY2hhbmdlZCwgMjkgaW5zZXJ0aW9ucygrKSwgNiBkZWxl dGlvbnMoLSkKCmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC9waHkvZHA4Mzg0OC5jIGIvZHJpdmVy cy9uZXQvcGh5L2RwODM4NDguYwppbmRleCBjZDA5YzNhZjIxMTcuLjZlOGU0MjM2MWZkNSAxMDA2 NDQKLS0tIGEvZHJpdmVycy9uZXQvcGh5L2RwODM4NDguYworKysgYi9kcml2ZXJzL25ldC9waHkv ZHA4Mzg0OC5jCkBAIC03NCw2ICs3NCwyNSBAQCBzdGF0aWMgaW50IGRwODM4NDhfY29uZmlnX2lu dHIoc3RydWN0IHBoeV9kZXZpY2UgKnBoeWRldikKIAlyZXR1cm4gcGh5X3dyaXRlKHBoeWRldiwg RFA4Mzg0OF9NSUNSLCBjb250cm9sKTsKIH0KIAorc3RhdGljIGludCBkcDgzODQ4X2NvbmZpZ19p bml0KHN0cnVjdCBwaHlfZGV2aWNlICpwaHlkZXYpCit7CisJaW50IGVycjsKKwlpbnQgdmFsOwor CisJZXJyID0gZ2VucGh5X2NvbmZpZ19pbml0KHBoeWRldik7CisJaWYgKGVyciA8IDApCisJCXJl dHVybiBlcnI7CisKKwkvKiBEUDgzNjIwIGFsd2F5cyByZXBvcnRzIEF1dG8gTmVnb3RpYXRpb24g QWJpbGl0eSBvbiBCTVNSLiBJbnN0ZWFkLAorCSAqIHdlIGNoZWNrIGluaXRpYWwgdmFsdWUgb2Yg Qk1DUiBBdXRvIG5lZ290aWF0aW9uIGVuYWJsZSBiaXQKKwkgKi8KKwl2YWwgPSBwaHlfcmVhZChw aHlkZXYsIE1JSV9CTUNSKTsKKwlpZiAoISh2YWwgJiBCTUNSX0FORU5BQkxFKSkKKwkJcGh5ZGV2 LT5hdXRvbmVnID0gQVVUT05FR19ESVNBQkxFOworCisJcmV0dXJuIDA7Cit9CisKIHN0YXRpYyBz dHJ1Y3QgbWRpb19kZXZpY2VfaWQgX19tYXliZV91bnVzZWQgZHA4Mzg0OF90YmxbXSA9IHsKIAl7 IFRJX0RQODM4NDhDX1BIWV9JRCwgMHhmZmZmZmZmMCB9LAogCXsgTlNfRFA4Mzg0OENfUEhZX0lE LCAweGZmZmZmZmYwIH0sCkBAIC04Myw3ICsxMDIsNyBAQCBzdGF0aWMgc3RydWN0IG1kaW9fZGV2 aWNlX2lkIF9fbWF5YmVfdW51c2VkIGRwODM4NDhfdGJsW10gPSB7CiB9OwogTU9EVUxFX0RFVklD RV9UQUJMRShtZGlvLCBkcDgzODQ4X3RibCk7CiAKLSNkZWZpbmUgRFA4Mzg0OF9QSFlfRFJJVkVS KF9pZCwgX25hbWUpCQkJCVwKKyNkZWZpbmUgRFA4Mzg0OF9QSFlfRFJJVkVSKF9pZCwgX25hbWUs IF9jb25maWdfaW5pdCkJCVwKIAl7CQkJCQkJCVwKIAkJLnBoeV9pZAkJPSBfaWQsCQkJCVwKIAkJ LnBoeV9pZF9tYXNrCT0gMHhmZmZmZmZmMCwJCQlcCkBAIC05Miw3ICsxMTEsNyBAQCBNT0RVTEVf REVWSUNFX1RBQkxFKG1kaW8sIGRwODM4NDhfdGJsKTsKIAkJLmZsYWdzCQk9IFBIWV9IQVNfSU5U RVJSVVBULAkJXAogCQkJCQkJCQlcCiAJCS5zb2Z0X3Jlc2V0CT0gZ2VucGh5X3NvZnRfcmVzZXQs CQlcCi0JCS5jb25maWdfaW5pdAk9IGdlbnBoeV9jb25maWdfaW5pdCwJCVwKKwkJLmNvbmZpZ19p bml0CT0gX2NvbmZpZ19pbml0LAkJCVwKIAkJLnN1c3BlbmQJPSBnZW5waHlfc3VzcGVuZCwJCVwK IAkJLnJlc3VtZQkJPSBnZW5waHlfcmVzdW1lLAkJXAogCQkJCQkJCQlcCkBAIC0xMDIsMTAgKzEy MSwxNCBAQCBNT0RVTEVfREVWSUNFX1RBQkxFKG1kaW8sIGRwODM4NDhfdGJsKTsKIAl9CiAKIHN0 YXRpYyBzdHJ1Y3QgcGh5X2RyaXZlciBkcDgzODQ4X2RyaXZlcltdID0gewotCURQODM4NDhfUEhZ X0RSSVZFUihUSV9EUDgzODQ4Q19QSFlfSUQsICJUSSBEUDgzODQ4QyAxMC8xMDAgTWJwcyBQSFki KSwKLQlEUDgzODQ4X1BIWV9EUklWRVIoTlNfRFA4Mzg0OENfUEhZX0lELCAiTlMgRFA4Mzg0OEMg MTAvMTAwIE1icHMgUEhZIiksCi0JRFA4Mzg0OF9QSFlfRFJJVkVSKFRJX0RQODM2MjBfUEhZX0lE LCAiVEkgRFA4MzYyMCAxMC8xMDAgTWJwcyBQSFkiKSwKLQlEUDgzODQ4X1BIWV9EUklWRVIoVExL MTBYX1BIWV9JRCwgIlRJIFRMSzEwWCAxMC8xMDAgTWJwcyBQSFkiKSwKKwlEUDgzODQ4X1BIWV9E UklWRVIoVElfRFA4Mzg0OENfUEhZX0lELCAiVEkgRFA4Mzg0OEMgMTAvMTAwIE1icHMgUEhZIiwK KwkJCSAgIGdlbnBoeV9jb25maWdfaW5pdCksCisJRFA4Mzg0OF9QSFlfRFJJVkVSKE5TX0RQODM4 NDhDX1BIWV9JRCwgIk5TIERQODM4NDhDIDEwLzEwMCBNYnBzIFBIWSIsCisJCQkgICBnZW5waHlf Y29uZmlnX2luaXQpLAorCURQODM4NDhfUEhZX0RSSVZFUihUSV9EUDgzNjIwX1BIWV9JRCwgIlRJ IERQODM2MjAgMTAvMTAwIE1icHMgUEhZIiwKKwkJCSAgIGRwODM4NDhfY29uZmlnX2luaXQpLAor CURQODM4NDhfUEhZX0RSSVZFUihUTEsxMFhfUEhZX0lELCAiVEkgVExLMTBYIDEwLzEwMCBNYnBz IFBIWSIsCisJCQkgICBnZW5waHlfY29uZmlnX2luaXQpLAogfTsKIG1vZHVsZV9waHlfZHJpdmVy KGRwODM4NDhfZHJpdmVyKTsKIAotLSAKMi4xNy4xCgoKRnJvbSA0NDI2NDEyNzYwMzJlNDhjYzRk NDA4MGM4NTZmNTYzMGQ4M2M4MmJlIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBEYXZp ZGUgQ2FyYXR0aSA8ZGNhcmF0dGlAcmVkaGF0LmNvbT4KRGF0ZTogRnJpLCA4IEp1biAyMDE4IDA1 OjAyOjMxICswMjAwClN1YmplY3Q6IFtQQVRDSCAwNi8xMl0gbmV0L3NjaGVkOiBhY3Rfc2ltcGxl OiBmaXggcGFyc2luZyBvZiBUQ0FfREVGX0RBVEEKClsgVXBzdHJlYW0gY29tbWl0IDhkNDk5NTMz ZTBiYzAyZDQ0MjgzZGJkYWIwMzE0MmI1OTliOGJhMTYgXQoKdXNlIG5sYV9zdHJsY3B5KCkgdG8g YXZvaWQgY29weWluZyBkYXRhIGJleW9uZCB0aGUgbGVuZ3RoIG9mIFRDQV9ERUZfREFUQQpuZXRs aW5rIGF0dHJpYnV0ZSwgaW4gY2FzZSBpdCBpcyBsZXNzIHRoYW4gU0lNUF9NQVhfREFUQSBhbmQg aXQgZG9lcyBub3QKZW5kIHdpdGggJ1wwJyBjaGFyYWN0ZXIuCgp2MjogZml4IGVycm9ycyBpbiB0 aGUgY29tbWl0IG1lc3NhZ2UsIHRoYW5rcyBIYW5nYmluIExpdQoKRml4ZXM6IGZhMWIxY2ZmM2Qw NiAoIm5ldF9jbHNfYWN0OiBNYWtlIGFjdF9zaW1wbGUgdXNlIG9mIG5ldGxpbmsgcG9saWN5LiIp ClNpZ25lZC1vZmYtYnk6IERhdmlkZSBDYXJhdHRpIDxkY2FyYXR0aUByZWRoYXQuY29tPgpSZXZp ZXdlZC1ieTogU2ltb24gSG9ybWFuIDxzaW1vbi5ob3JtYW5AbmV0cm9ub21lLmNvbT4KU2lnbmVk LW9mZi1ieTogRGF2aWQgUy4gTWlsbGVyIDxkYXZlbUBkYXZlbWxvZnQubmV0PgotLS0KIG5ldC9z Y2hlZC9hY3Rfc2ltcGxlLmMgfCAxNSArKysrKystLS0tLS0tLS0KIDEgZmlsZSBjaGFuZ2VkLCA2 IGluc2VydGlvbnMoKyksIDkgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvbmV0L3NjaGVkL2Fj dF9zaW1wbGUuYyBiL25ldC9zY2hlZC9hY3Rfc2ltcGxlLmMKaW5kZXggYjFmMzgwNjNhZGEwLi5l NTY4NWIzZGViZGEgMTAwNjQ0Ci0tLSBhL25ldC9zY2hlZC9hY3Rfc2ltcGxlLmMKKysrIGIvbmV0 L3NjaGVkL2FjdF9zaW1wbGUuYwpAQCAtNTMsMjIgKzUzLDIyIEBAIHN0YXRpYyB2b2lkIHRjZl9z aW1wX3JlbGVhc2Uoc3RydWN0IHRjX2FjdGlvbiAqYSkKIAlrZnJlZShkLT50Y2ZkX2RlZmRhdGEp OwogfQogCi1zdGF0aWMgaW50IGFsbG9jX2RlZmRhdGEoc3RydWN0IHRjZl9kZWZhY3QgKmQsIGNo YXIgKmRlZmRhdGEpCitzdGF0aWMgaW50IGFsbG9jX2RlZmRhdGEoc3RydWN0IHRjZl9kZWZhY3Qg KmQsIGNvbnN0IHN0cnVjdCBubGF0dHIgKmRlZmRhdGEpCiB7CiAJZC0+dGNmZF9kZWZkYXRhID0g a3phbGxvYyhTSU1QX01BWF9EQVRBLCBHRlBfS0VSTkVMKTsKIAlpZiAodW5saWtlbHkoIWQtPnRj ZmRfZGVmZGF0YSkpCiAJCXJldHVybiAtRU5PTUVNOwotCXN0cmxjcHkoZC0+dGNmZF9kZWZkYXRh LCBkZWZkYXRhLCBTSU1QX01BWF9EQVRBKTsKKwlubGFfc3RybGNweShkLT50Y2ZkX2RlZmRhdGEs IGRlZmRhdGEsIFNJTVBfTUFYX0RBVEEpOwogCXJldHVybiAwOwogfQogCi1zdGF0aWMgdm9pZCBy ZXNldF9wb2xpY3koc3RydWN0IHRjZl9kZWZhY3QgKmQsIGNoYXIgKmRlZmRhdGEsCitzdGF0aWMg dm9pZCByZXNldF9wb2xpY3koc3RydWN0IHRjZl9kZWZhY3QgKmQsIGNvbnN0IHN0cnVjdCBubGF0 dHIgKmRlZmRhdGEsCiAJCQkgc3RydWN0IHRjX2RlZmFjdCAqcCkKIHsKIAlzcGluX2xvY2tfYmgo JmQtPnRjZl9sb2NrKTsKIAlkLT50Y2ZfYWN0aW9uID0gcC0+YWN0aW9uOwogCW1lbXNldChkLT50 Y2ZkX2RlZmRhdGEsIDAsIFNJTVBfTUFYX0RBVEEpOwotCXN0cmxjcHkoZC0+dGNmZF9kZWZkYXRh LCBkZWZkYXRhLCBTSU1QX01BWF9EQVRBKTsKKwlubGFfc3RybGNweShkLT50Y2ZkX2RlZmRhdGEs IGRlZmRhdGEsIFNJTVBfTUFYX0RBVEEpOwogCXNwaW5fdW5sb2NrX2JoKCZkLT50Y2ZfbG9jayk7 CiB9CiAKQEAgLTg3LDcgKzg3LDYgQEAgc3RhdGljIGludCB0Y2Zfc2ltcF9pbml0KHN0cnVjdCBu ZXQgKm5ldCwgc3RydWN0IG5sYXR0ciAqbmxhLAogCXN0cnVjdCB0Y2ZfZGVmYWN0ICpkOwogCWJv b2wgZXhpc3RzID0gZmFsc2U7CiAJaW50IHJldCA9IDAsIGVycjsKLQljaGFyICpkZWZkYXRhOwog CiAJaWYgKG5sYSA9PSBOVUxMKQogCQlyZXR1cm4gLUVJTlZBTDsKQEAgLTExMCw4ICsxMDksNiBA QCBzdGF0aWMgaW50IHRjZl9zaW1wX2luaXQoc3RydWN0IG5ldCAqbmV0LCBzdHJ1Y3QgbmxhdHRy ICpubGEsCiAJCXJldHVybiAtRUlOVkFMOwogCX0KIAotCWRlZmRhdGEgPSBubGFfZGF0YSh0YltU Q0FfREVGX0RBVEFdKTsKLQogCWlmICghZXhpc3RzKSB7CiAJCXJldCA9IHRjZl9pZHJfY3JlYXRl KHRuLCBwYXJtLT5pbmRleCwgZXN0LCBhLAogCQkJCSAgICAgJmFjdF9zaW1wX29wcywgYmluZCwg ZmFsc2UpOwpAQCAtMTE5LDcgKzExNiw3IEBAIHN0YXRpYyBpbnQgdGNmX3NpbXBfaW5pdChzdHJ1 Y3QgbmV0ICpuZXQsIHN0cnVjdCBubGF0dHIgKm5sYSwKIAkJCXJldHVybiByZXQ7CiAKIAkJZCA9 IHRvX2RlZmFjdCgqYSk7Ci0JCXJldCA9IGFsbG9jX2RlZmRhdGEoZCwgZGVmZGF0YSk7CisJCXJl dCA9IGFsbG9jX2RlZmRhdGEoZCwgdGJbVENBX0RFRl9EQVRBXSk7CiAJCWlmIChyZXQgPCAwKSB7 CiAJCQl0Y2ZfaWRyX3JlbGVhc2UoKmEsIGJpbmQpOwogCQkJcmV0dXJuIHJldDsKQEAgLTEzMyw3 ICsxMzAsNyBAQCBzdGF0aWMgaW50IHRjZl9zaW1wX2luaXQoc3RydWN0IG5ldCAqbmV0LCBzdHJ1 Y3QgbmxhdHRyICpubGEsCiAJCWlmICghb3ZyKQogCQkJcmV0dXJuIC1FRVhJU1Q7CiAKLQkJcmVz ZXRfcG9saWN5KGQsIGRlZmRhdGEsIHBhcm0pOworCQlyZXNldF9wb2xpY3koZCwgdGJbVENBX0RF Rl9EQVRBXSwgcGFybSk7CiAJfQogCiAJaWYgKHJldCA9PSBBQ1RfUF9DUkVBVEVEKQotLSAKMi4x Ny4xCgoKRnJvbSAwZTRmNmZkZGIwM2U1MDFjOGQ3MzhiMTA5MWFmMDI0MDdmNDY3NzMzIE1vbiBT ZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBGcmFuayB2YW4gZGVyIExpbmRlbiA8ZmxsaW5kZW5A YW1hem9uLmNvbT4KRGF0ZTogVHVlLCAxMiBKdW4gMjAxOCAyMzowOTozNyArMDAwMApTdWJqZWN0 OiBbUEFUQ0ggMDcvMTJdIHRjcDogdmVyaWZ5IHRoZSBjaGVja3N1bSBvZiB0aGUgZmlyc3QgZGF0 YSBzZWdtZW50IGluIGEKIG5ldyBjb25uZWN0aW9uCgpbIFVwc3RyZWFtIGNvbW1pdCA0ZmQ0NGE5 OGZmZTBkMDQ4MjQ2ZWZlZjY3ZWQ2NDBmZGYyMDk4YTYyIF0KCmNvbW1pdCAwNzkwOTZmMTAzZmEg KCJ0Y3AvZGNjcDogaW5zdGFsbCBzeW5fcmVjdiByZXF1ZXN0cyBpbnRvIGVoYXNoCnRhYmxlIikg aW50cm9kdWNlZCBhbiBvcHRpbWl6YXRpb24gZm9yIHRoZSBoYW5kbGluZyBvZiBjaGlsZCBzb2Nr ZXRzCmNyZWF0ZWQgZm9yIGEgbmV3IFRDUCBjb25uZWN0aW9uLgoKQnV0IHRoaXMgb3B0aW1pemF0 aW9uIHBhc3NlcyBhbnkgZGF0YSBhc3NvY2lhdGVkIHdpdGggdGhlIGxhc3QgQUNLIG9mIHRoZQpj b25uZWN0aW9uIGhhbmRzaGFrZSB1cCB0aGUgc3RhY2sgd2l0aG91dCB2ZXJpZnlpbmcgaXRzIGNo ZWNrc3VtLCBiZWNhdXNlIGl0CmNhbGxzIHRjcF9jaGlsZF9wcm9jZXNzKCksIHdoaWNoIGluIHR1 cm4gY2FsbHMgdGNwX3Jjdl9zdGF0ZV9wcm9jZXNzKCkKZGlyZWN0bHkuICBUaGVzZSBsb3dlci1s ZXZlbCBwcm9jZXNzaW5nIGZ1bmN0aW9ucyBkbyBub3QgZG8gYW55IGNoZWNrc3VtCnZlcmlmaWNh dGlvbi4KCkluc2VydCBhIHRjcF9jaGVja3N1bV9jb21wbGV0ZSBjYWxsIGluIHRoZSBUQ1BfTkVX X1NZTl9SRUNFSVZFIHBhdGggdG8KZml4IHRoaXMuCgpGaXhlczogMDc5MDk2ZjEwM2ZhICgidGNw L2RjY3A6IGluc3RhbGwgc3luX3JlY3YgcmVxdWVzdHMgaW50byBlaGFzaCB0YWJsZSIpClNpZ25l ZC1vZmYtYnk6IEZyYW5rIHZhbiBkZXIgTGluZGVuIDxmbGxpbmRlbkBhbWF6b24uY29tPgpTaWdu ZWQtb2ZmLWJ5OiBFcmljIER1bWF6ZXQgPGVkdW1hemV0QGdvb2dsZS5jb20+ClRlc3RlZC1ieTog QmFsYmlyIFNpbmdoIDxic2luZ2hhcm9yYUBnbWFpbC5jb20+ClJldmlld2VkLWJ5OiBCYWxiaXIg U2luZ2ggPGJzaW5naGFyb3JhQGdtYWlsLmNvbT4KU2lnbmVkLW9mZi1ieTogRGF2aWQgUy4gTWls bGVyIDxkYXZlbUBkYXZlbWxvZnQubmV0PgotLS0KIG5ldC9pcHY0L3RjcF9pcHY0LmMgfCA0ICsr KysKIG5ldC9pcHY2L3RjcF9pcHY2LmMgfCA0ICsrKysKIDIgZmlsZXMgY2hhbmdlZCwgOCBpbnNl cnRpb25zKCspCgpkaWZmIC0tZ2l0IGEvbmV0L2lwdjQvdGNwX2lwdjQuYyBiL25ldC9pcHY0L3Rj cF9pcHY0LmMKaW5kZXggZjhhZDM5N2UyODVlLi4yN2U4N2U5NmRlZmMgMTAwNjQ0Ci0tLSBhL25l dC9pcHY0L3RjcF9pcHY0LmMKKysrIGIvbmV0L2lwdjQvdGNwX2lwdjQuYwpAQCAtMTY4MCw2ICsx NjgwLDEwIEBAIGludCB0Y3BfdjRfcmN2KHN0cnVjdCBza19idWZmICpza2IpCiAJCQlyZXFza19w dXQocmVxKTsKIAkJCWdvdG8gZGlzY2FyZF9pdDsKIAkJfQorCQlpZiAodGNwX2NoZWNrc3VtX2Nv bXBsZXRlKHNrYikpIHsKKwkJCXJlcXNrX3B1dChyZXEpOworCQkJZ290byBjc3VtX2Vycm9yOwor CQl9CiAJCWlmICh1bmxpa2VseShzay0+c2tfc3RhdGUgIT0gVENQX0xJU1RFTikpIHsKIAkJCWlu ZXRfY3NrX3JlcXNrX3F1ZXVlX2Ryb3BfYW5kX3B1dChzaywgcmVxKTsKIAkJCWdvdG8gbG9va3Vw OwpkaWZmIC0tZ2l0IGEvbmV0L2lwdjYvdGNwX2lwdjYuYyBiL25ldC9pcHY2L3RjcF9pcHY2LmMK aW5kZXggNDEyMTM5ZjRlY2NkLi5mN2E5YmQ1MGIwYWMgMTAwNjQ0Ci0tLSBhL25ldC9pcHY2L3Rj cF9pcHY2LmMKKysrIGIvbmV0L2lwdjYvdGNwX2lwdjYuYwpAQCAtMTQ1OSw2ICsxNDU5LDEwIEBA IHN0YXRpYyBpbnQgdGNwX3Y2X3JjdihzdHJ1Y3Qgc2tfYnVmZiAqc2tiKQogCQkJcmVxc2tfcHV0 KHJlcSk7CiAJCQlnb3RvIGRpc2NhcmRfaXQ7CiAJCX0KKwkJaWYgKHRjcF9jaGVja3N1bV9jb21w bGV0ZShza2IpKSB7CisJCQlyZXFza19wdXQocmVxKTsKKwkJCWdvdG8gY3N1bV9lcnJvcjsKKwkJ fQogCQlpZiAodW5saWtlbHkoc2stPnNrX3N0YXRlICE9IFRDUF9MSVNURU4pKSB7CiAJCQlpbmV0 X2Nza19yZXFza19xdWV1ZV9kcm9wX2FuZF9wdXQoc2ssIHJlcSk7CiAJCQlnb3RvIGxvb2t1cDsK LS0gCjIuMTcuMQoKCkZyb20gZWJlYzhmY2JlNDgxYmNhMzhjYTA1ZTdkODJiYzFiZjYxMmMwZmZi NCBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJvbTogQ29uZyBXYW5nIDx4aXlvdS53YW5nY29u Z0BnbWFpbC5jb20+CkRhdGU6IFRodSwgNyBKdW4gMjAxOCAxMzozOTo0OSAtMDcwMApTdWJqZWN0 OiBbUEFUQ0ggMDgvMTJdIHNvY2tldDogY2xvc2UgcmFjZSBjb25kaXRpb24gYmV0d2VlbiBzb2Nr X2Nsb3NlKCkgYW5kCiBzb2NrZnNfc2V0YXR0cigpCgpbIFVwc3RyZWFtIGNvbW1pdCA2ZDhjNTBk Y2IwMjk4NzJiMjk4ZWVhNjhjYzYyMDljODY2ZmQzZTE0IF0KCmZjaG93bmF0KCkgZG9lc24ndCBl dmVuIGhvbGQgcmVmY250IG9mIGZkIHVudGlsIGl0IGZpZ3VyZXMgb3V0CmZkIGlzIHJlYWxseSBu ZWVkZWQgKG90aGVyd2lzZSBpcyBpZ25vcmVkKSBhbmQgcmVsZWFzZXMgaXQgYWZ0ZXIKaXQgcmVz b2x2ZXMgdGhlIHBhdGguIFRoaXMgbWVhbnMgc29ja19jbG9zZSgpIGNvdWxkIHJhY2Ugd2l0aApz b2NrZnNfc2V0YXR0cigpLCB3aGljaCBsZWFkcyB0byBhIE5VTEwgcG9pbnRlciBkZXJlZmVyZW5j ZQpzaW5jZSB0eXBpY2FsbHkgd2Ugc2V0IHNvY2stPnNrIHRvIE5VTEwgaW4gLT5yZWxlYXNlKCku CgpBcyBwb2ludGVkIG91dCBieSBBbCwgdGhpcyBpcyB1bmlxdWUgdG8gc29ja2ZzLiBTbyB3ZSBj YW4gZml4IHRoaXMKaW4gc29ja2V0IGxheWVyIGJ5IGFjcXVpcmluZyBpbm9kZV9sb2NrIGluIHNv Y2tfY2xvc2UoKSBhbmQKY2hlY2tpbmcgYWdhaW5zdCBOVUxMIGluIHNvY2tmc19zZXRhdHRyKCku Cgpzb2NrX3JlbGVhc2UoKSBpcyBjYWxsZWQgaW4gbWFueSBwbGFjZXMsIG9ubHkgdGhlIHNvY2tf Y2xvc2UoKQpwYXRoIG1hdHRlcnMgaGVyZS4gQW5kIGZvcnR1bmF0ZWx5LCB0aGlzIHNob3VsZCBu b3QgYWZmZWN0IG5vcm1hbApzb2NrX2Nsb3NlKCkgYXMgaXQgaXMgb25seSBjYWxsZWQgd2hlbiB0 aGUgbGFzdCBmZCByZWZjbnQgaXMgZ29uZS4KSXQgb25seSBhZmZlY3RzIHNvY2tfY2xvc2UoKSB3 aXRoIGEgcGFyYWxsZWwgc29ja2ZzX3NldGF0dHIoKSBpbgpwcm9ncmVzcywgd2hpY2ggaXMgbm90 IGNvbW1vbi4KCkZpeGVzOiA4Njc0MWVjMjU0NjIgKCJuZXQ6IGNvcmU6IEFkZCBhIFVJRCBmaWVs ZCB0byBzdHJ1Y3Qgc29jay4iKQpSZXBvcnRlZC1ieTogc2hhbmthcmFwYWlsb29yIDxzaGFua2Fy YXBhaWxvb3JAZ21haWwuY29tPgpDYzogVGV0c3VvIEhhbmRhIDxwZW5ndWluLWtlcm5lbEBpLWxv dmUuc2FrdXJhLm5lLmpwPgpDYzogTG9yZW56byBDb2xpdHRpIDxsb3JlbnpvQGdvb2dsZS5jb20+ CkNjOiBBbCBWaXJvIDx2aXJvQHplbml2LmxpbnV4Lm9yZy51az4KU2lnbmVkLW9mZi1ieTogQ29u ZyBXYW5nIDx4aXlvdS53YW5nY29uZ0BnbWFpbC5jb20+ClNpZ25lZC1vZmYtYnk6IERhdmlkIFMu IE1pbGxlciA8ZGF2ZW1AZGF2ZW1sb2Z0Lm5ldD4KLS0tCiBuZXQvc29ja2V0LmMgfCAxOCArKysr KysrKysrKysrKystLS0KIDEgZmlsZSBjaGFuZ2VkLCAxNSBpbnNlcnRpb25zKCspLCAzIGRlbGV0 aW9ucygtKQoKZGlmZiAtLWdpdCBhL25ldC9zb2NrZXQuYyBiL25ldC9zb2NrZXQuYwppbmRleCAw ODg0N2MzYjhjMzkuLjI2YjFmYWIwMWRhZiAxMDA2NDQKLS0tIGEvbmV0L3NvY2tldC5jCisrKyBi L25ldC9zb2NrZXQuYwpAQCAtNTM4LDcgKzUzOCwxMCBAQCBzdGF0aWMgaW50IHNvY2tmc19zZXRh dHRyKHN0cnVjdCBkZW50cnkgKmRlbnRyeSwgc3RydWN0IGlhdHRyICppYXR0cikKIAlpZiAoIWVy ciAmJiAoaWF0dHItPmlhX3ZhbGlkICYgQVRUUl9VSUQpKSB7CiAJCXN0cnVjdCBzb2NrZXQgKnNv Y2sgPSBTT0NLRVRfSShkX2lub2RlKGRlbnRyeSkpOwogCi0JCXNvY2stPnNrLT5za191aWQgPSBp YXR0ci0+aWFfdWlkOworCQlpZiAoc29jay0+c2spCisJCQlzb2NrLT5zay0+c2tfdWlkID0gaWF0 dHItPmlhX3VpZDsKKwkJZWxzZQorCQkJZXJyID0gLUVOT0VOVDsKIAl9CiAKIAlyZXR1cm4gZXJy OwpAQCAtNTg3LDEyICs1OTAsMTYgQEAgRVhQT1JUX1NZTUJPTChzb2NrX2FsbG9jKTsKICAqCWFu IGlub2RlIG5vdCBhIGZpbGUuCiAgKi8KIAotdm9pZCBzb2NrX3JlbGVhc2Uoc3RydWN0IHNvY2tl dCAqc29jaykKK3N0YXRpYyB2b2lkIF9fc29ja19yZWxlYXNlKHN0cnVjdCBzb2NrZXQgKnNvY2ss IHN0cnVjdCBpbm9kZSAqaW5vZGUpCiB7CiAJaWYgKHNvY2stPm9wcykgewogCQlzdHJ1Y3QgbW9k dWxlICpvd25lciA9IHNvY2stPm9wcy0+b3duZXI7CiAKKwkJaWYgKGlub2RlKQorCQkJaW5vZGVf bG9jayhpbm9kZSk7CiAJCXNvY2stPm9wcy0+cmVsZWFzZShzb2NrKTsKKwkJaWYgKGlub2RlKQor CQkJaW5vZGVfdW5sb2NrKGlub2RlKTsKIAkJc29jay0+b3BzID0gTlVMTDsKIAkJbW9kdWxlX3B1 dChvd25lcik7CiAJfQpAQCAtNjA2LDYgKzYxMywxMSBAQCB2b2lkIHNvY2tfcmVsZWFzZShzdHJ1 Y3Qgc29ja2V0ICpzb2NrKQogCX0KIAlzb2NrLT5maWxlID0gTlVMTDsKIH0KKwordm9pZCBzb2Nr X3JlbGVhc2Uoc3RydWN0IHNvY2tldCAqc29jaykKK3sKKwlfX3NvY2tfcmVsZWFzZShzb2NrLCBO VUxMKTsKK30KIEVYUE9SVF9TWU1CT0woc29ja19yZWxlYXNlKTsKIAogdm9pZCBfX3NvY2tfdHhf dGltZXN0YW1wKF9fdTE2IHRzZmxhZ3MsIF9fdTggKnR4X2ZsYWdzKQpAQCAtMTE0Niw3ICsxMTU4 LDcgQEAgc3RhdGljIGludCBzb2NrX21tYXAoc3RydWN0IGZpbGUgKmZpbGUsIHN0cnVjdCB2bV9h cmVhX3N0cnVjdCAqdm1hKQogCiBzdGF0aWMgaW50IHNvY2tfY2xvc2Uoc3RydWN0IGlub2RlICpp bm9kZSwgc3RydWN0IGZpbGUgKmZpbHApCiB7Ci0Jc29ja19yZWxlYXNlKFNPQ0tFVF9JKGlub2Rl KSk7CisJX19zb2NrX3JlbGVhc2UoU09DS0VUX0koaW5vZGUpLCBpbm9kZSk7CiAJcmV0dXJuIDA7 CiB9CiAKLS0gCjIuMTcuMQoKCkZyb20gYzdiZmI0YmRkNzVlOWViYjBkYTFlNzI3Njc5NTYzZDll NTNkZGY5YiBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJvbTogUGFvbG8gQWJlbmkgPHBhYmVu aUByZWRoYXQuY29tPgpEYXRlOiBGcmksIDggSnVuIDIwMTggMTE6MzU6NDAgKzAyMDAKU3ViamVj dDogW1BBVENIIDA5LzEyXSB1ZHA6IGZpeCByeCBxdWV1ZSBsZW4gcmVwb3J0ZWQgYnkgZGlhZyBh bmQgcHJvYwogaW50ZXJmYWNlCgpbIFVwc3RyZWFtIGNvbW1pdCA2YzIwNmIyMDA5MmEzNjIzMTg0 Y2ZmOTQ3MGRiYTc1ZDIxNTA3ODc0IF0KCkFmdGVyIGNvbW1pdCA2YjIyOWNmNzdkNjggKCJ1ZHA6 IGFkZCBiYXRjaGluZyB0byB1ZHBfcm1lbV9yZWxlYXNlKCkiKQp0aGUgc2tfcm1lbV9hbGxvYyBm aWVsZCBkb2VzIG5vdCBtZWFzdXJlIGV4YWN0bHkgYW55bW9yZSB0aGUKcmVjZWl2ZSBxdWV1ZSBs ZW5ndGgsIGJlY2F1c2Ugd2UgYmF0Y2ggdGhlIHJtZW0gcmVsZWFzZS4gVGhlIGlzc3VlCmlzIHJl YWxseSBhcHBhcmVudCBvbmx5IGFmdGVyIGNvbW1pdCAwZDRhNjYwOGY2OGMgKCJ1ZHA6IGRvIHJt ZW0gYnVsawpmcmVlIGV2ZW4gaWYgdGhlIHJ4IHNrIHF1ZXVlIGlzIGVtcHR5Iik6IHRoZSB1c2Vy IHNwYWNlIGNhbiBlYXNpbHkKY2hlY2sgZm9yIGFuIGVtcHR5IHNvY2tldCB3aXRoIG5vdC0wIHF1 ZXVlIGxlbmd0aCByZXBvcnRlZCBieSB0aGUgJ3NzJwp0b29sIG9yIHRoZSBwcm9jZnMgaW50ZXJm YWNlLgoKV2UgbmVlZCB0byB1c2UgYSBjdXN0b20gVURQIGhlbHBlciB0byByZXBvcnQgdGhlIGNv cnJlY3QgcXVldWUgbGVuZ3RoLAp0YWtpbmcgaW50byBhY2NvdW50IHRoZSBmb3J3YXJkIGFsbG9j YXRpb24gZGVmaWNpdC4KClJlcG9ydGVkLWJ5OiB0cmV2b3IuZnJhbmNpc0A0NmxhYnMuY29tCkZp eGVzOiA2YjIyOWNmNzdkNjggKCJVRFA6IGFkZCBiYXRjaGluZyB0byB1ZHBfcm1lbV9yZWxlYXNl KCkiKQpTaWduZWQtb2ZmLWJ5OiBQYW9sbyBBYmVuaSA8cGFiZW5pQHJlZGhhdC5jb20+ClNpZ25l ZC1vZmYtYnk6IERhdmlkIFMuIE1pbGxlciA8ZGF2ZW1AZGF2ZW1sb2Z0Lm5ldD4KLS0tCiBpbmNs dWRlL25ldC90cmFuc3BfdjYuaCB8IDExICsrKysrKysrKy0tCiBpbmNsdWRlL25ldC91ZHAuaCAg ICAgICB8ICA1ICsrKysrCiBuZXQvaXB2NC91ZHAuYyAgICAgICAgICB8ICAyICstCiBuZXQvaXB2 NC91ZHBfZGlhZy5jICAgICB8ICAyICstCiBuZXQvaXB2Ni9kYXRhZ3JhbS5jICAgICB8ICA2ICsr Ky0tLQogbmV0L2lwdjYvdWRwLmMgICAgICAgICAgfCAgMyArKy0KIDYgZmlsZXMgY2hhbmdlZCwg MjEgaW5zZXJ0aW9ucygrKSwgOCBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9pbmNsdWRlL25l dC90cmFuc3BfdjYuaCBiL2luY2x1ZGUvbmV0L3RyYW5zcF92Ni5oCmluZGV4IGM0ZjVjYWFmMzc3 OC4uZjZhMzU0M2U1MjQ3IDEwMDY0NAotLS0gYS9pbmNsdWRlL25ldC90cmFuc3BfdjYuaAorKysg Yi9pbmNsdWRlL25ldC90cmFuc3BfdjYuaApAQCAtNDUsOCArNDUsMTUgQEAgaW50IGlwNl9kYXRh Z3JhbV9zZW5kX2N0bChzdHJ1Y3QgbmV0ICpuZXQsIHN0cnVjdCBzb2NrICpzaywgc3RydWN0IG1z Z2hkciAqbXNnLAogCQkJICBzdHJ1Y3QgZmxvd2k2ICpmbDYsIHN0cnVjdCBpcGNtNl9jb29raWUg KmlwYzYsCiAJCQkgIHN0cnVjdCBzb2NrY21fY29va2llICpzb2NrYyk7CiAKLXZvaWQgaXA2X2Rn cmFtX3NvY2tfc2VxX3Nob3coc3RydWN0IHNlcV9maWxlICpzZXEsIHN0cnVjdCBzb2NrICpzcCwK LQkJCSAgICAgX191MTYgc3JjcCwgX191MTYgZGVzdHAsIGludCBidWNrZXQpOwordm9pZCBfX2lw Nl9kZ3JhbV9zb2NrX3NlcV9zaG93KHN0cnVjdCBzZXFfZmlsZSAqc2VxLCBzdHJ1Y3Qgc29jayAq c3AsCisJCQkgICAgICAgX191MTYgc3JjcCwgX191MTYgZGVzdHAsIGludCBycXVldWUsIGludCBi dWNrZXQpOworc3RhdGljIGlubGluZSB2b2lkCitpcDZfZGdyYW1fc29ja19zZXFfc2hvdyhzdHJ1 Y3Qgc2VxX2ZpbGUgKnNlcSwgc3RydWN0IHNvY2sgKnNwLCBfX3UxNiBzcmNwLAorCQkJX191MTYg ZGVzdHAsIGludCBidWNrZXQpCit7CisJX19pcDZfZGdyYW1fc29ja19zZXFfc2hvdyhzZXEsIHNw LCBzcmNwLCBkZXN0cCwgc2tfcm1lbV9hbGxvY19nZXQoc3ApLAorCQkJCSAgYnVja2V0KTsKK30K IAogI2RlZmluZSBMT09QQkFDSzRfSVBWNiBjcHVfdG9fYmUzMigweDdmMDAwMDA2KQogCmRpZmYg LS1naXQgYS9pbmNsdWRlL25ldC91ZHAuaCBiL2luY2x1ZGUvbmV0L3VkcC5oCmluZGV4IDg1MGE4 ZTU4MWNjZS4uYTQyNTIzZThlOWM5IDEwMDY0NAotLS0gYS9pbmNsdWRlL25ldC91ZHAuaAorKysg Yi9pbmNsdWRlL25ldC91ZHAuaApAQCAtMjQ0LDYgKzI0NCwxMSBAQCBzdGF0aWMgaW5saW5lIF9f YmUxNiB1ZHBfZmxvd19zcmNfcG9ydChzdHJ1Y3QgbmV0ICpuZXQsIHN0cnVjdCBza19idWZmICpz a2IsCiAJcmV0dXJuIGh0b25zKCgoKHU2NCkgaGFzaCAqIChtYXggLSBtaW4pKSA+PiAzMikgKyBt aW4pOwogfQogCitzdGF0aWMgaW5saW5lIGludCB1ZHBfcnF1ZXVlX2dldChzdHJ1Y3Qgc29jayAq c2spCit7CisJcmV0dXJuIHNrX3JtZW1fYWxsb2NfZ2V0KHNrKSAtIFJFQURfT05DRSh1ZHBfc2so c2spLT5mb3J3YXJkX2RlZmljaXQpOworfQorCiAvKiBuZXQvaXB2NC91ZHAuYyAqLwogdm9pZCB1 ZHBfZGVzdHJ1Y3Rfc29jayhzdHJ1Y3Qgc29jayAqc2spOwogdm9pZCBza2JfY29uc3VtZV91ZHAo c3RydWN0IHNvY2sgKnNrLCBzdHJ1Y3Qgc2tfYnVmZiAqc2tiLCBpbnQgbGVuKTsKZGlmZiAtLWdp dCBhL25ldC9pcHY0L3VkcC5jIGIvbmV0L2lwdjQvdWRwLmMKaW5kZXggYjZiYTUxNTM2YjM3Li5i MjBiMjE1NzdiMjcgMTAwNjQ0Ci0tLSBhL25ldC9pcHY0L3VkcC5jCisrKyBiL25ldC9pcHY0L3Vk cC5jCkBAIC0yNzEwLDcgKzI3MTAsNyBAQCBzdGF0aWMgdm9pZCB1ZHA0X2Zvcm1hdF9zb2NrKHN0 cnVjdCBzb2NrICpzcCwgc3RydWN0IHNlcV9maWxlICpmLAogCQkiICUwMlggJTA4WDolMDhYICUw Mlg6JTA4bFggJTA4WCAlNXUgJThkICVsdSAlZCAlcEsgJWQiLAogCQlidWNrZXQsIHNyYywgc3Jj cCwgZGVzdCwgZGVzdHAsIHNwLT5za19zdGF0ZSwKIAkJc2tfd21lbV9hbGxvY19nZXQoc3ApLAot CQlza19ybWVtX2FsbG9jX2dldChzcCksCisJCXVkcF9ycXVldWVfZ2V0KHNwKSwKIAkJMCwgMEws IDAsCiAJCWZyb21fa3VpZF9tdW5nZWQoc2VxX3VzZXJfbnMoZiksIHNvY2tfaV91aWQoc3ApKSwK IAkJMCwgc29ja19pX2lubyhzcCksCmRpZmYgLS1naXQgYS9uZXQvaXB2NC91ZHBfZGlhZy5jIGIv bmV0L2lwdjQvdWRwX2RpYWcuYwppbmRleCBkMDM5MGQ4NDRhYzguLmQ5YWQ5ODZjN2IyYyAxMDA2 NDQKLS0tIGEvbmV0L2lwdjQvdWRwX2RpYWcuYworKysgYi9uZXQvaXB2NC91ZHBfZGlhZy5jCkBA IC0xNjMsNyArMTYzLDcgQEAgc3RhdGljIGludCB1ZHBfZGlhZ19kdW1wX29uZShzdHJ1Y3Qgc2tf YnVmZiAqaW5fc2tiLCBjb25zdCBzdHJ1Y3Qgbmxtc2doZHIgKm5saCwKIHN0YXRpYyB2b2lkIHVk cF9kaWFnX2dldF9pbmZvKHN0cnVjdCBzb2NrICpzaywgc3RydWN0IGluZXRfZGlhZ19tc2cgKnIs CiAJCXZvaWQgKmluZm8pCiB7Ci0Jci0+aWRpYWdfcnF1ZXVlID0gc2tfcm1lbV9hbGxvY19nZXQo c2spOworCXItPmlkaWFnX3JxdWV1ZSA9IHVkcF9ycXVldWVfZ2V0KHNrKTsKIAlyLT5pZGlhZ193 cXVldWUgPSBza193bWVtX2FsbG9jX2dldChzayk7CiB9CiAKZGlmZiAtLWdpdCBhL25ldC9pcHY2 L2RhdGFncmFtLmMgYi9uZXQvaXB2Ni9kYXRhZ3JhbS5jCmluZGV4IGE5ZjdlY2EwYjZhMy4uNjg0 MGFiYjc5YTY5IDEwMDY0NAotLS0gYS9uZXQvaXB2Ni9kYXRhZ3JhbS5jCisrKyBiL25ldC9pcHY2 L2RhdGFncmFtLmMKQEAgLTEwMjUsOCArMTAyNSw4IEBAIGludCBpcDZfZGF0YWdyYW1fc2VuZF9j dGwoc3RydWN0IG5ldCAqbmV0LCBzdHJ1Y3Qgc29jayAqc2ssCiB9CiBFWFBPUlRfU1lNQk9MX0dQ TChpcDZfZGF0YWdyYW1fc2VuZF9jdGwpOwogCi12b2lkIGlwNl9kZ3JhbV9zb2NrX3NlcV9zaG93 KHN0cnVjdCBzZXFfZmlsZSAqc2VxLCBzdHJ1Y3Qgc29jayAqc3AsCi0JCQkgICAgIF9fdTE2IHNy Y3AsIF9fdTE2IGRlc3RwLCBpbnQgYnVja2V0KQordm9pZCBfX2lwNl9kZ3JhbV9zb2NrX3NlcV9z aG93KHN0cnVjdCBzZXFfZmlsZSAqc2VxLCBzdHJ1Y3Qgc29jayAqc3AsCisJCQkgICAgICAgX191 MTYgc3JjcCwgX191MTYgZGVzdHAsIGludCBycXVldWUsIGludCBidWNrZXQpCiB7CiAJY29uc3Qg c3RydWN0IGluNl9hZGRyICpkZXN0LCAqc3JjOwogCkBAIC0xMDQyLDcgKzEwNDIsNyBAQCB2b2lk IGlwNl9kZ3JhbV9zb2NrX3NlcV9zaG93KHN0cnVjdCBzZXFfZmlsZSAqc2VxLCBzdHJ1Y3Qgc29j ayAqc3AsCiAJCSAgIGRlc3QtPnM2X2FkZHIzMlsyXSwgZGVzdC0+czZfYWRkcjMyWzNdLCBkZXN0 cCwKIAkJICAgc3AtPnNrX3N0YXRlLAogCQkgICBza193bWVtX2FsbG9jX2dldChzcCksCi0JCSAg IHNrX3JtZW1fYWxsb2NfZ2V0KHNwKSwKKwkJICAgcnF1ZXVlLAogCQkgICAwLCAwTCwgMCwKIAkJ ICAgZnJvbV9rdWlkX211bmdlZChzZXFfdXNlcl9ucyhzZXEpLCBzb2NrX2lfdWlkKHNwKSksCiAJ CSAgIDAsCmRpZmYgLS1naXQgYS9uZXQvaXB2Ni91ZHAuYyBiL25ldC9pcHY2L3VkcC5jCmluZGV4 IDY4ZDU4OWY4ZDJiMi4uOTA4NDc2NTgzYjMwIDEwMDY0NAotLS0gYS9uZXQvaXB2Ni91ZHAuYwor KysgYi9uZXQvaXB2Ni91ZHAuYwpAQCAtMTQ3Myw3ICsxNDczLDggQEAgaW50IHVkcDZfc2VxX3No b3coc3RydWN0IHNlcV9maWxlICpzZXEsIHZvaWQgKnYpCiAJCXN0cnVjdCBpbmV0X3NvY2sgKmlu ZXQgPSBpbmV0X3NrKHYpOwogCQlfX3UxNiBzcmNwID0gbnRvaHMoaW5ldC0+aW5ldF9zcG9ydCk7 CiAJCV9fdTE2IGRlc3RwID0gbnRvaHMoaW5ldC0+aW5ldF9kcG9ydCk7Ci0JCWlwNl9kZ3JhbV9z b2NrX3NlcV9zaG93KHNlcSwgdiwgc3JjcCwgZGVzdHAsIGJ1Y2tldCk7CisJCV9faXA2X2RncmFt X3NvY2tfc2VxX3Nob3coc2VxLCB2LCBzcmNwLCBkZXN0cCwKKwkJCQkJICB1ZHBfcnF1ZXVlX2dl dCh2KSwgYnVja2V0KTsKIAl9CiAJcmV0dXJuIDA7CiB9Ci0tIAoyLjE3LjEKCgpGcm9tIDFlNzI4 Y2M1NTgxOTFjMmVmOTFhNjE5MjZiYTU1MmM4ZTM0NDUzOGUgTW9uIFNlcCAxNyAwMDowMDowMCAy MDAxCkZyb206IFdpbGxlbSBkZSBCcnVpam4gPHdpbGxlbWJAZ29vZ2xlLmNvbT4KRGF0ZTogV2Vk LCA2IEp1biAyMDE4IDExOjIzOjAxIC0wNDAwClN1YmplY3Q6IFtQQVRDSCAxMC8xMl0gbmV0OiBp biB2aXJ0aW9fbmV0X2hkciBvbmx5IGFkZCBWTEFOX0hMRU4gdG8gY3N1bV9zdGFydAogaWYgcGF5 bG9hZCBob2xkcyB2bGFuCgpbIFVwc3RyZWFtIGNvbW1pdCBmZDNhODg2MjU4NDQ5MDcxNTE3Mzdm YzNiNDIwMTY3NmVmZmE2ZDI3IF0KClR1biwgdGFwLCB2aXJ0aW8sIHBhY2tldCBhbmQgdW1sIHZl Y3RvciBhbGwgdXNlIHN0cnVjdCB2aXJ0aW9fbmV0X2hkcgp0byBjb21tdW5pY2F0ZSBwYWNrZXQg bWV0YWRhdGEgdG8gdXNlcnNwYWNlLgoKRm9yIHNrYnVmZnMgd2l0aCB2bGFuLCB0aGUgZmlyc3Qg dHdvIHJldHVybiB0aGUgcGFja2V0IGFzIGl0IG1heSBoYXZlCmV4aXN0ZWQgb24gdGhlIHdpcmUs IGluc2VydGluZyB0aGUgVkxBTiB0YWcgaW4gdGhlIHVzZXIgYnVmZmVyLiAgVGhlbgp2aXJ0aW9f bmV0X2hkci5jc3VtX3N0YXJ0IG5lZWRzIHRvIGJlIGFkanVzdGVkIGJ5IFZMQU5fSExFTiBieXRl cy4KCkNvbW1pdCBmMDllMjI0OWM0ZjUgKCJtYWN2dGFwOiByZXN0b3JlIHZsYW4gaGVhZGVyIG9u IHVzZXIgcmVhZCIpCmFkZGVkIHRoaXMgZmVhdHVyZSB0byBtYWN2dGFwLiBDb21taXQgM2NlOWIy MGYxOTcxICgibWFjdnRhcDogRml4CmNzdW1fc3RhcnQgd2hlbiBWTEFOIHRhZ3MgYXJlIHByZXNl bnQiKSB0aGVuIGZpeGVkIHVwIGNzdW1fc3RhcnQuCgpWaXJ0aW8sIHBhY2tldCBhbmQgdW1sIGRv IG5vdCBpbnNlcnQgdGhlIHZsYW4gaGVhZGVyIGluIHRoZSB1c2VyCmJ1ZmZlci4KCldoZW4gaW50 cm9kdWNpbmcgdmlydGlvX25ldF9oZHJfZnJvbV9za2IgdG8gZGVkdXBsaWNhdGUgZmlsbGluZyBp bgp0aGUgdmlydGlvX25ldF9oZHIsIHRoZSB2YXJpYW50IGZyb20gbWFjdnRhcCB3aGljaCBhZGRz IFZMQU5fSExFTiB3YXMKYXBwbGllZCB1bmlmb3JtbHksIGJyZWFraW5nIGNzdW0gb2Zmc2V0IGZv ciBwYWNrZXRzIHdpdGggdmxhbiBvbgp2aXJ0aW8gYW5kIHBhY2tldC4KCk1ha2UgaW5zZXJ0aW9u IG9mIFZMQU5fSExFTiBvcHRpb25hbC4gQ29udmVydCB0aGUgY2FsbGVycyB0byBwYXNzIGl0Cndo ZW4gbmVlZGVkLgoKRml4ZXM6IGU4NThmYWUyYjBiOGY0ICgidmlydGlvX25ldDogdXNlIGNvbW1v biBjb2RlIGZvciB2aXJ0aW9fbmV0X2hkciBhbmQgc2tiIEdTTyBjb252ZXJzaW9uIikKRml4ZXM6 IDEyNzZmMjRlZWVmMiAoInBhY2tldDogdXNlIGNvbW1vbiBjb2RlIGZvciB2aXJ0aW9fbmV0X2hk ciBhbmQgc2tiIEdTTyBjb252ZXJzaW9uIikKU2lnbmVkLW9mZi1ieTogV2lsbGVtIGRlIEJydWlq biA8d2lsbGVtYkBnb29nbGUuY29tPgpTaWduZWQtb2ZmLWJ5OiBEYXZpZCBTLiBNaWxsZXIgPGRh dmVtQGRhdmVtbG9mdC5uZXQ+Ci0tLQogZHJpdmVycy9uZXQvdGFwLmMgICAgICAgICAgfCAgNSAr KysrLQogZHJpdmVycy9uZXQvdHVuLmMgICAgICAgICAgfCAgMyArKy0KIGRyaXZlcnMvbmV0L3Zp cnRpb19uZXQuYyAgIHwgIDMgKystCiBpbmNsdWRlL2xpbnV4L3ZpcnRpb19uZXQuaCB8IDExICsr KystLS0tLS0tCiBuZXQvcGFja2V0L2FmX3BhY2tldC5jICAgICB8ICA0ICsrLS0KIDUgZmlsZXMg Y2hhbmdlZCwgMTQgaW5zZXJ0aW9ucygrKSwgMTIgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEv ZHJpdmVycy9uZXQvdGFwLmMgYi9kcml2ZXJzL25ldC90YXAuYwppbmRleCA5YjZjYjc4MGFmZmUu LmYwZjdjZDk3NzY2NyAxMDA2NDQKLS0tIGEvZHJpdmVycy9uZXQvdGFwLmMKKysrIGIvZHJpdmVy cy9uZXQvdGFwLmMKQEAgLTc3NCwxMyArNzc0LDE2IEBAIHN0YXRpYyBzc2l6ZV90IHRhcF9wdXRf dXNlcihzdHJ1Y3QgdGFwX3F1ZXVlICpxLAogCWludCB0b3RhbDsKIAogCWlmIChxLT5mbGFncyAm IElGRl9WTkVUX0hEUikgeworCQlpbnQgdmxhbl9obGVuID0gc2tiX3ZsYW5fdGFnX3ByZXNlbnQo c2tiKSA/IFZMQU5fSExFTiA6IDA7CiAJCXN0cnVjdCB2aXJ0aW9fbmV0X2hkciB2bmV0X2hkcjsK KwogCQl2bmV0X2hkcl9sZW4gPSBSRUFEX09OQ0UocS0+dm5ldF9oZHJfc3opOwogCQlpZiAoaW92 X2l0ZXJfY291bnQoaXRlcikgPCB2bmV0X2hkcl9sZW4pCiAJCQlyZXR1cm4gLUVJTlZBTDsKIAog CQlpZiAodmlydGlvX25ldF9oZHJfZnJvbV9za2Ioc2tiLCAmdm5ldF9oZHIsCi0JCQkJCSAgICB0 YXBfaXNfbGl0dGxlX2VuZGlhbihxKSwgdHJ1ZSkpCisJCQkJCSAgICB0YXBfaXNfbGl0dGxlX2Vu ZGlhbihxKSwgdHJ1ZSwKKwkJCQkJICAgIHZsYW5faGxlbikpCiAJCQlCVUcoKTsKIAogCQlpZiAo Y29weV90b19pdGVyKCZ2bmV0X2hkciwgc2l6ZW9mKHZuZXRfaGRyKSwgaXRlcikgIT0KZGlmZiAt LWdpdCBhL2RyaXZlcnMvbmV0L3R1bi5jIGIvZHJpdmVycy9uZXQvdHVuLmMKaW5kZXggMjRlNjQ1 Yzg2YWU3Li5iM2M1ODg5MGVmMzMgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvbmV0L3R1bi5jCisrKyBi L2RyaXZlcnMvbmV0L3R1bi5jCkBAIC0yMDYyLDcgKzIwNjIsOCBAQCBzdGF0aWMgc3NpemVfdCB0 dW5fcHV0X3VzZXIoc3RydWN0IHR1bl9zdHJ1Y3QgKnR1biwKIAkJCXJldHVybiAtRUlOVkFMOwog CiAJCWlmICh2aXJ0aW9fbmV0X2hkcl9mcm9tX3NrYihza2IsICZnc28sCi0JCQkJCSAgICB0dW5f aXNfbGl0dGxlX2VuZGlhbih0dW4pLCB0cnVlKSkgeworCQkJCQkgICAgdHVuX2lzX2xpdHRsZV9l bmRpYW4odHVuKSwgdHJ1ZSwKKwkJCQkJICAgIHZsYW5faGxlbikpIHsKIAkJCXN0cnVjdCBza2Jf c2hhcmVkX2luZm8gKnNpbmZvID0gc2tiX3NoaW5mbyhza2IpOwogCQkJcHJfZXJyKCJ1bmV4cGVj dGVkIEdTTyB0eXBlOiAiCiAJCQkgICAgICAgIjB4JXgsIGdzb19zaXplICVkLCBoZHJfbGVuICVk XG4iLApkaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvdmlydGlvX25ldC5jIGIvZHJpdmVycy9uZXQv dmlydGlvX25ldC5jCmluZGV4IDg5MTFlMzQ2NmU2MS4uODliYzVjZDRkMDJmIDEwMDY0NAotLS0g YS9kcml2ZXJzL25ldC92aXJ0aW9fbmV0LmMKKysrIGIvZHJpdmVycy9uZXQvdmlydGlvX25ldC5j CkBAIC0xMzU4LDcgKzEzNTgsOCBAQCBzdGF0aWMgaW50IHhtaXRfc2tiKHN0cnVjdCBzZW5kX3F1 ZXVlICpzcSwgc3RydWN0IHNrX2J1ZmYgKnNrYikKIAkJaGRyID0gc2tiX3ZuZXRfaGRyKHNrYik7 CiAKIAlpZiAodmlydGlvX25ldF9oZHJfZnJvbV9za2Ioc2tiLCAmaGRyLT5oZHIsCi0JCQkJICAg IHZpcnRpb19pc19saXR0bGVfZW5kaWFuKHZpLT52ZGV2KSwgZmFsc2UpKQorCQkJCSAgICB2aXJ0 aW9faXNfbGl0dGxlX2VuZGlhbih2aS0+dmRldiksIGZhbHNlLAorCQkJCSAgICAwKSkKIAkJQlVH KCk7CiAKIAlpZiAodmktPm1lcmdlYWJsZV9yeF9idWZzKQpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9s aW51eC92aXJ0aW9fbmV0LmggYi9pbmNsdWRlL2xpbnV4L3ZpcnRpb19uZXQuaAppbmRleCBmMTQ0 MjE2ZmViYzYuLjkzOTc2MjhhMTk2NyAxMDA2NDQKLS0tIGEvaW5jbHVkZS9saW51eC92aXJ0aW9f bmV0LmgKKysrIGIvaW5jbHVkZS9saW51eC92aXJ0aW9fbmV0LmgKQEAgLTU4LDcgKzU4LDggQEAg c3RhdGljIGlubGluZSBpbnQgdmlydGlvX25ldF9oZHJfdG9fc2tiKHN0cnVjdCBza19idWZmICpz a2IsCiBzdGF0aWMgaW5saW5lIGludCB2aXJ0aW9fbmV0X2hkcl9mcm9tX3NrYihjb25zdCBzdHJ1 Y3Qgc2tfYnVmZiAqc2tiLAogCQkJCQkgIHN0cnVjdCB2aXJ0aW9fbmV0X2hkciAqaGRyLAogCQkJ CQkgIGJvb2wgbGl0dGxlX2VuZGlhbiwKLQkJCQkJICBib29sIGhhc19kYXRhX3ZhbGlkKQorCQkJ CQkgIGJvb2wgaGFzX2RhdGFfdmFsaWQsCisJCQkJCSAgaW50IHZsYW5faGxlbikKIHsKIAltZW1z ZXQoaGRyLCAwLCBzaXplb2YoKmhkcikpOyAgIC8qIG5vIGluZm8gbGVhayAqLwogCkBAIC04Mywx MiArODQsOCBAQCBzdGF0aWMgaW5saW5lIGludCB2aXJ0aW9fbmV0X2hkcl9mcm9tX3NrYihjb25z dCBzdHJ1Y3Qgc2tfYnVmZiAqc2tiLAogCiAJaWYgKHNrYi0+aXBfc3VtbWVkID09IENIRUNLU1VN X1BBUlRJQUwpIHsKIAkJaGRyLT5mbGFncyA9IFZJUlRJT19ORVRfSERSX0ZfTkVFRFNfQ1NVTTsK LQkJaWYgKHNrYl92bGFuX3RhZ19wcmVzZW50KHNrYikpCi0JCQloZHItPmNzdW1fc3RhcnQgPSBf X2NwdV90b192aXJ0aW8xNihsaXR0bGVfZW5kaWFuLAotCQkJCXNrYl9jaGVja3N1bV9zdGFydF9v ZmZzZXQoc2tiKSArIFZMQU5fSExFTik7Ci0JCWVsc2UKLQkJCWhkci0+Y3N1bV9zdGFydCA9IF9f Y3B1X3RvX3ZpcnRpbzE2KGxpdHRsZV9lbmRpYW4sCi0JCQkJc2tiX2NoZWNrc3VtX3N0YXJ0X29m ZnNldChza2IpKTsKKwkJaGRyLT5jc3VtX3N0YXJ0ID0gX19jcHVfdG9fdmlydGlvMTYobGl0dGxl X2VuZGlhbiwKKwkJCXNrYl9jaGVja3N1bV9zdGFydF9vZmZzZXQoc2tiKSArIHZsYW5faGxlbik7 CiAJCWhkci0+Y3N1bV9vZmZzZXQgPSBfX2NwdV90b192aXJ0aW8xNihsaXR0bGVfZW5kaWFuLAog CQkJCXNrYi0+Y3N1bV9vZmZzZXQpOwogCX0gZWxzZSBpZiAoaGFzX2RhdGFfdmFsaWQgJiYKZGlm ZiAtLWdpdCBhL25ldC9wYWNrZXQvYWZfcGFja2V0LmMgYi9uZXQvcGFja2V0L2FmX3BhY2tldC5j CmluZGV4IGM5NDMyYTBjY2Q1Ni4uMjkxMDJmMzYzOWZlIDEwMDY0NAotLS0gYS9uZXQvcGFja2V0 L2FmX3BhY2tldC5jCisrKyBiL25ldC9wYWNrZXQvYWZfcGFja2V0LmMKQEAgLTIwMzcsNyArMjAz Nyw3IEBAIHN0YXRpYyBpbnQgcGFja2V0X3Jjdl92bmV0KHN0cnVjdCBtc2doZHIgKm1zZywgY29u c3Qgc3RydWN0IHNrX2J1ZmYgKnNrYiwKIAkJcmV0dXJuIC1FSU5WQUw7CiAJKmxlbiAtPSBzaXpl b2Yodm5ldF9oZHIpOwogCi0JaWYgKHZpcnRpb19uZXRfaGRyX2Zyb21fc2tiKHNrYiwgJnZuZXRf aGRyLCB2aW9fbGUoKSwgdHJ1ZSkpCisJaWYgKHZpcnRpb19uZXRfaGRyX2Zyb21fc2tiKHNrYiwg JnZuZXRfaGRyLCB2aW9fbGUoKSwgdHJ1ZSwgMCkpCiAJCXJldHVybiAtRUlOVkFMOwogCiAJcmV0 dXJuIG1lbWNweV90b19tc2cobXNnLCAodm9pZCAqKSZ2bmV0X2hkciwgc2l6ZW9mKHZuZXRfaGRy KSk7CkBAIC0yMzA0LDcgKzIzMDQsNyBAQCBzdGF0aWMgaW50IHRwYWNrZXRfcmN2KHN0cnVjdCBz a19idWZmICpza2IsIHN0cnVjdCBuZXRfZGV2aWNlICpkZXYsCiAJaWYgKGRvX3ZuZXQpIHsKIAkJ aWYgKHZpcnRpb19uZXRfaGRyX2Zyb21fc2tiKHNrYiwgaC5yYXcgKyBtYWNvZmYgLQogCQkJCQkg ICAgc2l6ZW9mKHN0cnVjdCB2aXJ0aW9fbmV0X2hkciksCi0JCQkJCSAgICB2aW9fbGUoKSwgdHJ1 ZSkpIHsKKwkJCQkJICAgIHZpb19sZSgpLCB0cnVlLCAwKSkgewogCQkJc3Bpbl9sb2NrKCZzay0+ c2tfcmVjZWl2ZV9xdWV1ZS5sb2NrKTsKIAkJCWdvdG8gZHJvcF9uX2FjY291bnQ7CiAJCX0KLS0g CjIuMTcuMQoKCkZyb20gMzgyZTM2ODBkZTJhMGFlM2UxYzIxMjRhZjczMGIzNjhmZjBjMWU0MiBN b24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJvbTogRGV4dWFuIEN1aSA8ZGVjdWlAbWljcm9zb2Z0 LmNvbT4KRGF0ZTogV2VkLCA2IEp1biAyMDE4IDIxOjMyOjUxICswMDAwClN1YmplY3Q6IFtQQVRD SCAxMS8xMl0gaHZfbmV0dnNjOiBGaXggYSBuZXR3b3JrIHJlZ3Jlc3Npb24gYWZ0ZXIgaWZkb3du L2lmdXAKClsgVXBzdHJlYW0gY29tbWl0IDUyYWNmNzNiNmU5YTY5NjIwNDVmZWIyYmE1YTg5MjFk YTIyMDE5MTUgXQoKUmVjZW50bHkgcGVvcGxlIHJlcG9ydGVkIHRoZSBOSUMgc3RvcHMgd29ya2lu ZyBhZnRlcgoiaWZkb3duIGV0aDA7IGlmdXAgZXRoMCIuIEl0IHR1cm5zIG91dCBpbiB0aGlzIGNh c2UgdGhlIFRYIHF1ZXVlcyBhcmUgbm90CmVuYWJsZWQsIGFmdGVyIHRoZSByZWZhY3RvcmluZyBv ZiB0aGUgY29tbW9uIGRldGFjaCBsb2dpYzogd2hlbiB0aGUgTklDCmhhcyBzdWItY2hhbm5lbHMs IHVzdWFsbHkgd2UgZW5hYmxlIGFsbCB0aGUgVFggcXVldWVzIGFmdGVyIGFsbApzdWItY2hhbm5l bHMgYXJlIHNldCB1cDogc2VlIHJuZGlzX3NldF9zdWJjaGFubmVsKCkgLT4KbmV0aWZfZGV2aWNl X2F0dGFjaCgpLCBidXQgaW4gdGhlIGNhc2Ugb2YgImlmZG93biBldGgwOyBpZnVwIGV0aDAiIHdo ZXJlCnRoZSBudW1iZXIgb2YgY2hhbm5lbHMgZG9lc24ndCBjaGFuZ2UsIHdlIGFsc28gbXVzdCBt YWtlIHN1cmUgdGhlIFRYIHF1ZXVlcwphcmUgZW5hYmxlZC4gVGhlIHBhdGNoIGZpeGVzIHRoZSBy ZWdyZXNzaW9uLgoKRml4ZXM6IDdiMmVlNTBjMGNkNSAoImh2X25ldHZzYzogY29tbW9uIGRldGFj aCBsb2dpYyIpClNpZ25lZC1vZmYtYnk6IERleHVhbiBDdWkgPGRlY3VpQG1pY3Jvc29mdC5jb20+ CkNjOiBTdGVwaGVuIEhlbW1pbmdlciA8c3RoZW1taW5AbWljcm9zb2Z0LmNvbT4KQ2M6IEsuIFku IFNyaW5pdmFzYW4gPGt5c0BtaWNyb3NvZnQuY29tPgpDYzogSGFpeWFuZyBaaGFuZyA8aGFpeWFu Z3pAbWljcm9zb2Z0LmNvbT4KU2lnbmVkLW9mZi1ieTogRGF2aWQgUy4gTWlsbGVyIDxkYXZlbUBk YXZlbWxvZnQubmV0PgotLS0KIGRyaXZlcnMvbmV0L2h5cGVydi9uZXR2c2NfZHJ2LmMgfCA0ICsr Ky0KIDEgZmlsZSBjaGFuZ2VkLCAzIGluc2VydGlvbnMoKyksIDEgZGVsZXRpb24oLSkKCmRpZmYg LS1naXQgYS9kcml2ZXJzL25ldC9oeXBlcnYvbmV0dnNjX2Rydi5jIGIvZHJpdmVycy9uZXQvaHlw ZXJ2L25ldHZzY19kcnYuYwppbmRleCAyYTc3NTJjMTEzZGYuLmFkYmZhODJiNzZlOSAxMDA2NDQK LS0tIGEvZHJpdmVycy9uZXQvaHlwZXJ2L25ldHZzY19kcnYuYworKysgYi9kcml2ZXJzL25ldC9o eXBlcnYvbmV0dnNjX2Rydi5jCkBAIC0xMjYsOCArMTI2LDEwIEBAIHN0YXRpYyBpbnQgbmV0dnNj X29wZW4oc3RydWN0IG5ldF9kZXZpY2UgKm5ldCkKIAl9CiAKIAlyZGV2ID0gbnZkZXYtPmV4dGVu c2lvbjsKLQlpZiAoIXJkZXYtPmxpbmtfc3RhdGUpCisJaWYgKCFyZGV2LT5saW5rX3N0YXRlKSB7 CiAJCW5ldGlmX2NhcnJpZXJfb24obmV0KTsKKwkJbmV0aWZfdHhfd2FrZV9hbGxfcXVldWVzKG5l dCk7CisJfQogCiAJaWYgKHZmX25ldGRldikgewogCQkvKiBTZXR0aW5nIHN5bnRoZXRpYyBkZXZp Y2UgdXAgdHJhbnNwYXJlbnRseSBzZXRzCi0tIAoyLjE3LjEKCgpGcm9tIDJmNzcxN2U5MmY0MTNl YmM2YmM3OWYzOTUyYjMyMzc3MjNjNmFkMWQgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCkZyb206 IERhbmllbCBCb3JrbWFubiA8ZGFuaWVsQGlvZ2VhcmJveC5uZXQ+CkRhdGU6IEZyaSwgMTUgSnVu IDIwMTggMDM6MDc6NDUgKzAyMDAKU3ViamVjdDogW1BBVENIIDEyLzEyXSB0bHM6IGZpeCB1c2Ut YWZ0ZXItZnJlZSBpbiB0bHNfcHVzaF9yZWNvcmQKClsgVXBzdHJlYW0gY29tbWl0IGE0NDdkYTdk MDA0MTAyNzhjOTBkMzU3Njc4MmE0M2Y4YjY3NWQ3YmUgXQoKc3l6a2FsbGVyIG1hbmFnZWQgdG8g dHJpZ2dlciBhIHVzZS1hZnRlci1mcmVlIGluIHRscyBsaWtlIHRoZQpmb2xsb3dpbmc6CgogIEJV RzogS0FTQU46IHVzZS1hZnRlci1mcmVlIGluIHRsc19wdXNoX3JlY29yZC5jb25zdHByb3AuMTUr MHg2YTIvMHg4MTAgW3Rsc10KICBXcml0ZSBvZiBzaXplIDEgYXQgYWRkciBmZmZmODgwMzdhYTA4 MDAwIGJ5IHRhc2sgYS5vdXQvMjMxNwoKICBDUFU6IDMgUElEOiAyMzE3IENvbW06IGEub3V0IE5v dCB0YWludGVkIDQuMTcuMCsgIzE0NAogIEhhcmR3YXJlIG5hbWU6IExFTk9WTyAyMEZCQ1RPMVdX LzIwRkJDVE8xV1csIEJJT1MgTjFGRVQ0N1cgKDEuMjEgKSAxMS8yOC8yMDE2CiAgQ2FsbCBUcmFj ZToKICAgZHVtcF9zdGFjaysweDcxLzB4YWIKICAgcHJpbnRfYWRkcmVzc19kZXNjcmlwdGlvbisw eDZhLzB4MjgwCiAgIGthc2FuX3JlcG9ydCsweDI1OC8weDM4MAogICA/IHRsc19wdXNoX3JlY29y ZC5jb25zdHByb3AuMTUrMHg2YTIvMHg4MTAgW3Rsc10KICAgdGxzX3B1c2hfcmVjb3JkLmNvbnN0 cHJvcC4xNSsweDZhMi8weDgxMCBbdGxzXQogICB0bHNfc3dfcHVzaF9wZW5kaW5nX3JlY29yZCsw eDJlLzB4NDAgW3Rsc10KICAgdGxzX3NrX3Byb3RvX2Nsb3NlKzB4M2ZlLzB4NzEwIFt0bHNdCiAg ID8gdGNwX2NoZWNrX29vbSsweDRjMC8weDRjMAogICA/IHRsc193cml0ZV9zcGFjZSsweDI2MC8w eDI2MCBbdGxzXQogICA/IGttZW1fY2FjaGVfZnJlZSsweDg4LzB4MWYwCiAgIGluZXRfcmVsZWFz ZSsweGQ2LzB4MWIwCiAgIF9fc29ja19yZWxlYXNlKzB4YzAvMHgyNDAKICAgc29ja19jbG9zZSsw eDExLzB4MjAKICAgX19mcHV0KzB4MjJkLzB4NjYwCiAgIHRhc2tfd29ya19ydW4rMHgxMTQvMHgx YTAKICAgZG9fZXhpdCsweDcxYS8weDI3ODAKICAgPyBtbV91cGRhdGVfbmV4dF9vd25lcisweDY1 MC8weDY1MAogICA/IGhhbmRsZV9tbV9mYXVsdCsweDJmNS8weDVmMAogICA/IF9fZG9fcGFnZV9m YXVsdCsweDQ0Zi8weGE1MAogICA/IG1tX2ZhdWx0X2Vycm9yKzB4MmQwLzB4MmQwCiAgIGRvX2dy b3VwX2V4aXQrMHhkZS8weDMwMAogICBfX3g2NF9zeXNfZXhpdF9ncm91cCsweDNhLzB4NTAKICAg ZG9fc3lzY2FsbF82NCsweDlhLzB4MzAwCiAgID8gcGFnZV9mYXVsdCsweDgvMHgzMAogICBlbnRy eV9TWVNDQUxMXzY0X2FmdGVyX2h3ZnJhbWUrMHg0NC8weGE5CgpUaGlzIGhhcHBlbmVkIHRocm91 Z2ggZmF1bHQgaW5qZWN0aW9uIHdoZXJlIGFlYWRfcmVxIGFsbG9jYXRpb24gaW4KdGxzX2RvX2Vu Y3J5cHRpb24oKSBldmVudHVhbGx5IGZhaWxlZCBhbmQgd2UgcmV0dXJuZWQgLUVOT01FTSBmcm9t CnRoZSBmdW5jdGlvbi4gVHVybnMgb3V0IHRoYXQgdGhlIHVzZS1hZnRlci1mcmVlIGlzIHRyaWdn ZXJlZCBmcm9tCnRsc19zd19zZW5kbXNnKCkgaW4gdGhlIHNlY29uZCB0bHNfcHVzaF9yZWNvcmQo KS4gVGhlIGVycm9yIHRoZW4KdHJpZ2dlcnMgYSBqdW1wIHRvIHdhaXRpbmcgZm9yIG1lbW9yeSBp biBza19zdHJlYW1fd2FpdF9tZW1vcnkoKQpyZXNwLiByZXR1cm5pbmcgaW1tZWRpYXRlbHkgaW4g Y2FzZSBvZiBNU0dfRE9OVFdBSVQuIFdoYXQgZm9sbG93cyBpcwp0aGUgdHJpbV9ib3RoX3NnbChz aywgb3JpZ19zaXplKSwgd2hpY2ggZHJvcHMgZWxlbWVudHMgZnJvbSB0aGUgc2cKbGlzdCBhZGRl ZCB2aWEgdGxzX3N3X3NlbmRtc2coKS4gTm93IHRoZSB1c2UtYWZ0ZXItZnJlZSBnZXRzIHRyaWdn ZXJlZAp3aGVuIHRoZSBzb2NrZXQgaXMgYmVpbmcgY2xvc2VkLCB3aGVyZSB0bHNfc2tfcHJvdG9f Y2xvc2UoKSBjYWxsYmFjawppcyBpbnZva2VkLiBUaGUgdGxzX2NvbXBsZXRlX3BlbmRpbmdfd29y aygpIHdpbGwgZmlndXJlIHRoYXQgdGhlcmUncwphIHBlbmRpbmcgY2xvc2VkIHRscyByZWNvcmQg dG8gYmUgZmx1c2hlZCBhbmQgdGh1cyBjYWxscyBpbnRvIHRoZQp0bHNfcHVzaF9wZW5kaW5nX2Ns b3NlZF9yZWNvcmQoKSBmcm9tIHRoZXJlLiBjdHgtPnB1c2hfcGVuZGluZ19yZWNvcmQoKQppcyBj YWxsZWQgZnJvbSB0aGUgbGF0dGVyLCB3aGljaCBpcyB0aGUgdGxzX3N3X3B1c2hfcGVuZGluZ19y ZWNvcmQoKQpmcm9tIHN3IHBhdGguIFRoaXMgYWdhaW4gY2FsbHMgaW50byB0bHNfcHVzaF9yZWNv cmQoKS4gQW5kIGhlcmUgdGhlCnRsc19maWxsX3ByZXBlbmQoKSB3aWxsIHBhbmljIHNpbmNlIHRo ZSBidWZmZXIgYWRkcmVzcyBoYXMgYmVlbiBmcmVlZAplYXJsaWVyIHZpYSB0cmltX2JvdGhfc2ds KCkuIE9uZSB3YXkgdG8gZml4IGl0IGlzIHRvIG1vdmUgdGhlIGFlYWQKcmVxdWVzdCBhbGxvY2F0 aW9uIG91dCBvZiB0bHNfZG9fZW5jcnlwdGlvbigpIGVhcmx5IGludG8gdGxzX3B1c2hfcmVjb3Jk KCkuClRoaXMgbWVhbnMgd2UgZG9uJ3QgcHJlcCB0aGUgdGxzIGhlYWRlciBhbmQgYWR2YW5jZSBz dGF0ZSB0byB0aGUKVExTX1BFTkRJTkdfQ0xPU0VEX1JFQ09SRCBiZWZvcmUgYWxsb2NhdGlvbiB3 aGljaCBjb3VsZCBwb3RlbnRpYWxseQpmYWlsIGhhcHBlbmVkLiBUaGF0IGZpeGVzIHRoZSBpc3N1 ZSBvbiBteSBzaWRlLgoKRml4ZXM6IDNjNGQ3NTU5MTU5YiAoInRsczoga2VybmVsIFRMUyBzdXBw b3J0IikKUmVwb3J0ZWQtYnk6IHN5emJvdCs1Yzc0YWY4MWM1NDc3MzhlMTY4NEBzeXprYWxsZXIu YXBwc3BvdG1haWwuY29tClJlcG9ydGVkLWJ5OiBzeXpib3QrNzA5ZjI4MTBhNmEwNWYxMWQ0ZDNA c3l6a2FsbGVyLmFwcHNwb3RtYWlsLmNvbQpTaWduZWQtb2ZmLWJ5OiBEYW5pZWwgQm9ya21hbm4g PGRhbmllbEBpb2dlYXJib3gubmV0PgpBY2tlZC1ieTogRGF2ZSBXYXRzb24gPGRhdmVqd2F0c29u QGZiLmNvbT4KU2lnbmVkLW9mZi1ieTogRGF2aWQgUy4gTWlsbGVyIDxkYXZlbUBkYXZlbWxvZnQu bmV0PgotLS0KIG5ldC90bHMvdGxzX3N3LmMgfCAyNiArKysrKysrKysrKysrLS0tLS0tLS0tLS0t LQogMSBmaWxlIGNoYW5nZWQsIDEzIGluc2VydGlvbnMoKyksIDEzIGRlbGV0aW9ucygtKQoKZGlm ZiAtLWdpdCBhL25ldC90bHMvdGxzX3N3LmMgYi9uZXQvdGxzL3Rsc19zdy5jCmluZGV4IGYyNjM3 NmU5NTRhZS4uY2IwZTdkOTdjZGRhIDEwMDY0NAotLS0gYS9uZXQvdGxzL3Rsc19zdy5jCisrKyBi L25ldC90bHMvdGxzX3N3LmMKQEAgLTE5NSwxOCArMTk1LDEyIEBAIHN0YXRpYyB2b2lkIHRsc19m cmVlX2JvdGhfc2coc3RydWN0IHNvY2sgKnNrKQogfQogCiBzdGF0aWMgaW50IHRsc19kb19lbmNy eXB0aW9uKHN0cnVjdCB0bHNfY29udGV4dCAqdGxzX2N0eCwKLQkJCSAgICAgc3RydWN0IHRsc19z d19jb250ZXh0ICpjdHgsIHNpemVfdCBkYXRhX2xlbiwKLQkJCSAgICAgZ2ZwX3QgZmxhZ3MpCisJ CQkgICAgIHN0cnVjdCB0bHNfc3dfY29udGV4dCAqY3R4LAorCQkJICAgICBzdHJ1Y3QgYWVhZF9y ZXF1ZXN0ICphZWFkX3JlcSwKKwkJCSAgICAgc2l6ZV90IGRhdGFfbGVuKQogewotCXVuc2lnbmVk IGludCByZXFfc2l6ZSA9IHNpemVvZihzdHJ1Y3QgYWVhZF9yZXF1ZXN0KSArCi0JCWNyeXB0b19h ZWFkX3JlcXNpemUoY3R4LT5hZWFkX3NlbmQpOwotCXN0cnVjdCBhZWFkX3JlcXVlc3QgKmFlYWRf cmVxOwogCWludCByYzsKIAotCWFlYWRfcmVxID0ga3phbGxvYyhyZXFfc2l6ZSwgZmxhZ3MpOwot CWlmICghYWVhZF9yZXEpCi0JCXJldHVybiAtRU5PTUVNOwotCiAJY3R4LT5zZ19lbmNyeXB0ZWRf ZGF0YVswXS5vZmZzZXQgKz0gdGxzX2N0eC0+cHJlcGVuZF9zaXplOwogCWN0eC0+c2dfZW5jcnlw dGVkX2RhdGFbMF0ubGVuZ3RoIC09IHRsc19jdHgtPnByZXBlbmRfc2l6ZTsKIApAQCAtMjIzLDcg KzIxNyw2IEBAIHN0YXRpYyBpbnQgdGxzX2RvX2VuY3J5cHRpb24oc3RydWN0IHRsc19jb250ZXh0 ICp0bHNfY3R4LAogCWN0eC0+c2dfZW5jcnlwdGVkX2RhdGFbMF0ub2Zmc2V0IC09IHRsc19jdHgt PnByZXBlbmRfc2l6ZTsKIAljdHgtPnNnX2VuY3J5cHRlZF9kYXRhWzBdLmxlbmd0aCArPSB0bHNf Y3R4LT5wcmVwZW5kX3NpemU7CiAKLQlrZnJlZShhZWFkX3JlcSk7CiAJcmV0dXJuIHJjOwogfQog CkBAIC0yMzIsOCArMjI1LDE0IEBAIHN0YXRpYyBpbnQgdGxzX3B1c2hfcmVjb3JkKHN0cnVjdCBz b2NrICpzaywgaW50IGZsYWdzLAogewogCXN0cnVjdCB0bHNfY29udGV4dCAqdGxzX2N0eCA9IHRs c19nZXRfY3R4KHNrKTsKIAlzdHJ1Y3QgdGxzX3N3X2NvbnRleHQgKmN0eCA9IHRsc19zd19jdHgo dGxzX2N0eCk7CisJc3RydWN0IGFlYWRfcmVxdWVzdCAqcmVxOwogCWludCByYzsKIAorCXJlcSA9 IGt6YWxsb2Moc2l6ZW9mKHN0cnVjdCBhZWFkX3JlcXVlc3QpICsKKwkJICAgICAgY3J5cHRvX2Fl YWRfcmVxc2l6ZShjdHgtPmFlYWRfc2VuZCksIHNrLT5za19hbGxvY2F0aW9uKTsKKwlpZiAoIXJl cSkKKwkJcmV0dXJuIC1FTk9NRU07CisKIAlzZ19tYXJrX2VuZChjdHgtPnNnX3BsYWludGV4dF9k YXRhICsgY3R4LT5zZ19wbGFpbnRleHRfbnVtX2VsZW0gLSAxKTsKIAlzZ19tYXJrX2VuZChjdHgt PnNnX2VuY3J5cHRlZF9kYXRhICsgY3R4LT5zZ19lbmNyeXB0ZWRfbnVtX2VsZW0gLSAxKTsKIApA QCAtMjQ5LDE1ICsyNDgsMTQgQEAgc3RhdGljIGludCB0bHNfcHVzaF9yZWNvcmQoc3RydWN0IHNv Y2sgKnNrLCBpbnQgZmxhZ3MsCiAJdGxzX2N0eC0+cGVuZGluZ19vcGVuX3JlY29yZF9mcmFncyA9 IDA7CiAJc2V0X2JpdChUTFNfUEVORElOR19DTE9TRURfUkVDT1JELCAmdGxzX2N0eC0+ZmxhZ3Mp OwogCi0JcmMgPSB0bHNfZG9fZW5jcnlwdGlvbih0bHNfY3R4LCBjdHgsIGN0eC0+c2dfcGxhaW50 ZXh0X3NpemUsCi0JCQkgICAgICAgc2stPnNrX2FsbG9jYXRpb24pOworCXJjID0gdGxzX2RvX2Vu Y3J5cHRpb24odGxzX2N0eCwgY3R4LCByZXEsIGN0eC0+c2dfcGxhaW50ZXh0X3NpemUpOwogCWlm IChyYyA8IDApIHsKIAkJLyogSWYgd2UgYXJlIGNhbGxlZCBmcm9tIHdyaXRlX3NwYWNlIGFuZAog CQkgKiB3ZSBmYWlsLCB3ZSBuZWVkIHRvIHNldCB0aGlzIFNPQ0tfTk9TUEFDRQogCQkgKiB0byB0 cmlnZ2VyIGFub3RoZXIgd3JpdGVfc3BhY2UgaW4gdGhlIGZ1dHVyZS4KIAkJICovCiAJCXNldF9i aXQoU09DS19OT1NQQUNFLCAmc2stPnNrX3NvY2tldC0+ZmxhZ3MpOwotCQlyZXR1cm4gcmM7CisJ CWdvdG8gb3V0X3JlcTsKIAl9CiAKIAlmcmVlX3NnKHNrLCBjdHgtPnNnX3BsYWludGV4dF9kYXRh LCAmY3R4LT5zZ19wbGFpbnRleHRfbnVtX2VsZW0sCkBAIC0yNzIsNiArMjcwLDggQEAgc3RhdGlj IGludCB0bHNfcHVzaF9yZWNvcmQoc3RydWN0IHNvY2sgKnNrLCBpbnQgZmxhZ3MsCiAJCXRsc19l cnJfYWJvcnQoc2spOwogCiAJdGxzX2FkdmFuY2VfcmVjb3JkX3NuKHNrLCB0bHNfY3R4KTsKK291 dF9yZXE6CisJa2ZyZWUocmVxKTsKIAlyZXR1cm4gcmM7CiB9CiAKLS0gCjIuMTcuMQoK ----Next_Part(Wed_Jun_20_21_37_12_2018_097)-- Content-Type: Application/Octet-Stream Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="net_417.mbox" RnJvbSAzMGQ5YjQzNzdlNmNjODA2MDEzM2Q2OGM3YmNlY2E4MmQxNTkxNTBkIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBYaWFuZ25pbmcgWXUgPHl1eGlhbmduaW5nQGdtYWlsLmNvbT4K RGF0ZTogVGh1LCA3IEp1biAyMDE4IDEzOjM5OjU5ICswODAwClN1YmplY3Q6IFtQQVRDSCAwMS8x NF0gYm9uZGluZzogcmUtZXZhbHVhdGUgZm9yY2VfcHJpbWFyeSB3aGVuIHRoZSBwcmltYXJ5CiBz bGF2ZSBuYW1lIGNoYW5nZXMKClsgVXBzdHJlYW0gY29tbWl0IGViNTViYmY4NjVkOTk3OTA5OGM2 YTdhMTdjYmRiNDEyMzdlY2U5NTEgXQoKVGhlcmUgaXMgYSB0aW1pbmcgaXNzdWUgdW5kZXIgYWN0 aXZlLXN0YW5keSBtb2RlLCB3aGVuIGJvbmRfZW5zbGF2ZSgpIGlzCmNhbGxlZCwgYm9uZC0+cGFy YW1zLnByaW1hcnkgbWlnaHQgbm90IGJlIGluaXRpYWxpemVkIHlldC4KCkFueSB0aW1lIHRoZSBw cmltYXJ5IHNsYXZlIHN0cmluZyBjaGFuZ2VzLCBib25kLT5mb3JjZV9wcmltYXJ5IHNob3VsZCBi ZQpzZXQgdG8gdHJ1ZSB0byBtYWtlIHN1cmUgdGhlIHByaW1hcnkgYmVjb21lcyB0aGUgYWN0aXZl IHNsYXZlLgoKU2lnbmVkLW9mZi1ieTogWGlhbmduaW5nIFl1IDx5dXhpYW5nbmluZ0BnbWFpbC5j b20+ClNpZ25lZC1vZmYtYnk6IERhdmlkIFMuIE1pbGxlciA8ZGF2ZW1AZGF2ZW1sb2Z0Lm5ldD4K LS0tCiBkcml2ZXJzL25ldC9ib25kaW5nL2JvbmRfb3B0aW9ucy5jIHwgMSArCiAxIGZpbGUgY2hh bmdlZCwgMSBpbnNlcnRpb24oKykKCmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC9ib25kaW5nL2Jv bmRfb3B0aW9ucy5jIGIvZHJpdmVycy9uZXQvYm9uZGluZy9ib25kX29wdGlvbnMuYwppbmRleCA1 OGM3MDVmMjRmOTYuLmI1OTRiYWUxYWRiZCAxMDA2NDQKLS0tIGEvZHJpdmVycy9uZXQvYm9uZGlu Zy9ib25kX29wdGlvbnMuYworKysgYi9kcml2ZXJzL25ldC9ib25kaW5nL2JvbmRfb3B0aW9ucy5j CkBAIC0xMTQyLDYgKzExNDIsNyBAQCBzdGF0aWMgaW50IGJvbmRfb3B0aW9uX3ByaW1hcnlfc2V0 KHN0cnVjdCBib25kaW5nICpib25kLAogCQkJCSAgIHNsYXZlLT5kZXYtPm5hbWUpOwogCQkJcmN1 X2Fzc2lnbl9wb2ludGVyKGJvbmQtPnByaW1hcnlfc2xhdmUsIHNsYXZlKTsKIAkJCXN0cmNweShi b25kLT5wYXJhbXMucHJpbWFyeSwgc2xhdmUtPmRldi0+bmFtZSk7CisJCQlib25kLT5mb3JjZV9w cmltYXJ5ID0gdHJ1ZTsKIAkJCWJvbmRfc2VsZWN0X2FjdGl2ZV9zbGF2ZShib25kKTsKIAkJCWdv dG8gb3V0OwogCQl9Ci0tIAoyLjE3LjEKCgpGcm9tIGYyMGI0YmZlMWRhODRlMmMyYTljNDUxNGZk NTM3MmZhYjcxMzdmMzEgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCkZyb206ID0/VVRGLTg/cT9C aj1DMz1COHJuPTIwTW9yaz89IDxiam9ybkBtb3JrLm5vPgpEYXRlOiBGcmksIDggSnVuIDIwMTgg MDk6MTU6MjQgKzAyMDAKU3ViamVjdDogW1BBVENIIDAyLzE0XSBjZGNfbmNtOiBhdm9pZCBwYWRk aW5nIGJleW9uZCBlbmQgb2Ygc2tiCk1JTUUtVmVyc2lvbjogMS4wCkNvbnRlbnQtVHlwZTogdGV4 dC9wbGFpbjsgY2hhcnNldD1VVEYtOApDb250ZW50LVRyYW5zZmVyLUVuY29kaW5nOiA4Yml0Cgpb IFVwc3RyZWFtIGNvbW1pdCA0OWMyYzNmMjQ2ZTJmYzMwMDkwMzllMzFhODI2MzMzZGNkMDI4M2Nk IF0KCkNvbW1pdCA0YTBlM2U5ODlkNjYgKCJjZGNfbmNtOiBBZGQgc3VwcG9ydCBmb3IgbW92aW5n IE5EUCB0byBlbmQKb2YgTkNNIGZyYW1lIikgYWRkZWQgbG9naWMgdG8gcmVzZXJ2ZSBzcGFjZSBm b3IgdGhlIE5EUCBhdCB0aGUKZW5kIG9mIHRoZSBOVEIvc2tiLiAgVGhpcyByZXNlcnZhdGlvbiBk aWQgbm90IHRha2UgdGhlIGZpbmFsCmFsaWdubWVudCBvZiB0aGUgTkRQIGludG8gYWNjb3VudCwg Y2F1c2luZyB1cyB0byByZXNlcnZlIHRvbwpsaXR0bGUgc3BhY2UuIEFkZGl0aW9uYWxseSB0aGUg cGFkZGluZyBwcmlvciB0byBORFAgYWRkaXRpb24gZGlkCm5vdCBlbnN1cmUgdGhlcmUgd2FzIGVu b3VnaCBzcGFjZSBmb3IgdGhlIE5EUC4KClRoZSBOVEIvc2tiIHdpdGggdGhlIE5EUCBhcHBlbmRl ZCB3b3VsZCB0aGVuIGV4Y2VlZCB0aGUgY29uZmlndXJlZAptYXggc2l6ZS4gVGhpcyBjYXVzZWQg dGhlIGZpbmFsIHBhZGRpbmcgb2YgdGhlIE5UQiB0byB1c2UgYQpuZWdhdGl2ZSBjb3VudCwgcGFk ZGluZyB0byBhbG1vc3QgSU5UX01BWCwgYW5kIHJlc3VsdGluZyBpbjoKCls2MDEwMy44MjU5NzBd IEJVRzogdW5hYmxlIHRvIGhhbmRsZSBrZXJuZWwgcGFnaW5nIHJlcXVlc3QgYXQgZmZmZjk2NDFm MjAwNDAwMApbNjAxMDMuODI1OTk4XSBJUDogX19tZW1zZXQrMHgyNC8weDMwCls2MDEwMy44MjYw MDFdIFBHRCBhNmEwNjA2NyBQNEQgYTZhMDYwNjcgUFVEIDRmNjVhMDYzIFBNRCA3MjAwMzA2MyBQ VEUgMApbNjAxMDMuODI2MDEzXSBPb3BzOiAwMDAyIFsjMV0gU01QIE5PUFRJCls2MDEwMy44MjYw MThdIE1vZHVsZXMgbGlua2VkIGluOiAocmVtb3ZlZCgKWzYwMTAzLjgyNjE1OF0gQ1BVOiAwIFBJ RDogNTk5MCBDb21tOiBDaHJvbWVfRGV2VG9vbHMgVGFpbnRlZDogRyAgICAgICAgICAgTyA0LjE0 LjAtMy1hbWQ2NCAjMSBEZWJpYW4gNC4xNC4xNy0xCls2MDEwMy44MjYxNjJdIEhhcmR3YXJlIG5h bWU6IExFTk9WTyAyMDA4MSBCSU9TIDQxQ04yOFdXKFYyLjA0KSAwNS8wMy8yMDEyCls2MDEwMy44 MjYxNjZdIHRhc2s6IGZmZmY5NjQxOTM0ODRmYzAgdGFzay5zdGFjazogZmZmZmIyODkwMTM3YzAw MApbNjAxMDMuODI2MTcxXSBSSVA6IDAwMTA6X19tZW1zZXQrMHgyNC8weDMwCls2MDEwMy44MjYx NzRdIFJTUDogMDAwMDpmZmZmOTY0MzE2YzAzYjY4IEVGTEFHUzogMDAwMTAyMTYKWzYwMTAzLjgy NjE3OF0gUkFYOiAwMDAwMDAwMDAwMDAwMDAwIFJCWDogMDAwMDAwMDBmZmZmZmZmZCBSQ1g6IDAw MDAwMDAwMWZmYTUwMDAKWzYwMTAzLjgyNjE4MV0gUkRYOiAwMDAwMDAwMDAwMDAwMDA1IFJTSTog MDAwMDAwMDAwMDAwMDAwMCBSREk6IGZmZmY5NjQxZjIwMDNmZmMKWzYwMTAzLjgyNjE4NF0gUkJQ OiBmZmZmOTY0MTkyZjZjODAwIFIwODogMDAwMDAwMDAzMDRkNDM0ZSBSMDk6IGZmZmY5NjQxZjFk MmMwMDQKWzYwMTAzLjgyNjE4N10gUjEwOiAwMDAwMDAwMDAwMDAwMDAyIFIxMTogMDAwMDAwMDAw MDAwMDVhZSBSMTI6IGZmZmY5NjQyZTY5NTdhODAKWzYwMTAzLjgyNjE5MF0gUjEzOiBmZmZmOTY0 MjgyZmYyZWU4IFIxNDogMDAwMDAwMDAwMDAwMDAwZCBSMTU6IGZmZmY5NjQyZTQ4NDM5MDAKWzYw MTAzLjgyNjE5NF0gRlM6ICAwMDAwN2YzOTVhYWY2NzAwKDAwMDApIEdTOmZmZmY5NjQzMTZjMDAw MDAoMDAwMCkga25sR1M6MDAwMDAwMDAwMDAwMDAwMApbNjAxMDMuODI2MTk3XSBDUzogIDAwMTAg RFM6IDAwMDAgRVM6IDAwMDAgQ1IwOiAwMDAwMDAwMDgwMDUwMDMzCls2MDEwMy44MjYyMDBdIENS MjogZmZmZjk2NDFmMjAwNDAwMCBDUjM6IDAwMDAwMDAwMTNiMGMwMDAgQ1I0OiAwMDAwMDAwMDAw MDAwNmYwCls2MDEwMy44MjYyMDRdIENhbGwgVHJhY2U6Cls2MDEwMy44MjYyMTJdICA8SVJRPgpb NjAxMDMuODI2MjI1XSAgY2RjX25jbV9maWxsX3R4X2ZyYW1lKzB4NWUzLzB4NzQwIFtjZGNfbmNt XQpbNjAxMDMuODI2MjM2XSAgY2RjX25jbV90eF9maXh1cCsweDU3LzB4NzAgW2NkY19uY21dCls2 MDEwMy44MjYyNDZdICB1c2JuZXRfc3RhcnRfeG1pdCsweDVkLzB4NzEwIFt1c2JuZXRdCls2MDEw My44MjYyNTRdICA/IG5ldGlmX3NrYl9mZWF0dXJlcysweDExOS8weDI1MApbNjAxMDMuODI2MjU5 XSAgZGV2X2hhcmRfc3RhcnRfeG1pdCsweGExLzB4MjAwCls2MDEwMy44MjYyNjddICBzY2hfZGly ZWN0X3htaXQrMHhmMi8weDFiMApbNjAxMDMuODI2MjczXSAgX19kZXZfcXVldWVfeG1pdCsweDVl My8weDdjMApbNjAxMDMuODI2MjgwXSAgPyBpcF9maW5pc2hfb3V0cHV0MisweDI2My8weDNjMApb NjAxMDMuODI2Mjg0XSAgaXBfZmluaXNoX291dHB1dDIrMHgyNjMvMHgzYzAKWzYwMTAzLjgyNjI4 OV0gID8gaXBfb3V0cHV0KzB4NmMvMHhlMApbNjAxMDMuODI2MjkzXSAgaXBfb3V0cHV0KzB4NmMv MHhlMApbNjAxMDMuODI2Mjk4XSAgPyBpcF9mb3J3YXJkX29wdGlvbnMrMHgxYTAvMHgxYTAKWzYw MTAzLjgyNjMwM10gIHRjcF90cmFuc21pdF9za2IrMHg1MTYvMHg5YjAKWzYwMTAzLjgyNjMwOV0g IHRjcF93cml0ZV94bWl0KzB4MWFhLzB4ZWUwCls2MDEwMy44MjYzMTNdICA/IHNjaF9kaXJlY3Rf eG1pdCsweDcxLzB4MWIwCls2MDEwMy44MjYzMThdICB0Y3BfdGFza2xldF9mdW5jKzB4MTc3LzB4 MTgwCls2MDEwMy44MjYzMjVdICB0YXNrbGV0X2FjdGlvbisweDVmLzB4MTEwCls2MDEwMy44MjYz MzJdICBfX2RvX3NvZnRpcnErMHhkZS8weDJiMwpbNjAxMDMuODI2MzM3XSAgaXJxX2V4aXQrMHhh ZS8weGIwCls2MDEwMy44MjYzNDJdICBkb19JUlErMHg4MS8weGQwCls2MDEwMy44MjYzNDddICBj b21tb25faW50ZXJydXB0KzB4OTgvMHg5OApbNjAxMDMuODI2MzUxXSAgPC9JUlE+Cls2MDEwMy44 MjYzNTVdIFJJUDogMDAzMzoweDdmMzk3YmRmMjI4MgpbNjAxMDMuODI2MzU4XSBSU1A6IDAwMmI6 MDAwMDdmMzk1YWFmNTdkOCBFRkxBR1M6IDAwMDAwMjA2IE9SSUdfUkFYOiBmZmZmZmZmZmZmZmZm ZjZlCls2MDEwMy44MjYzNjJdIFJBWDogMDAwMDAwMDAwMDAwMDAwMCBSQlg6IDAwMDAyZjA3YmM2 ZDA5MDAgUkNYOiAwMDAwN2YzOTc1MmQ3ZmU3Cls2MDEwMy44MjYzNjVdIFJEWDogMDAwMDAwMDAw MDAwMDAyMiBSU0k6IDAwMDAwMDAwMDAwMDAxNDcgUkRJOiAwMDAwMmYwN2JhZWEwMmMwCls2MDEw My44MjYzNjhdIFJCUDogMDAwMDAwMDAwMDAwMDAwMSBSMDg6IDAwMDAwMDAwMDAwMDAwMDAgUjA5 OiAwMDAwMDAwMDAwMDAwMDAwCls2MDEwMy44MjYzNzFdIFIxMDogMDAwMDAwMDBmZmZmZmZmZiBS MTE6IDAwMDAwMDAwMDAwMDAwMDAgUjEyOiAwMDAwMmYwN2JhZWEwMmMwCls2MDEwMy44MjYzNzNd IFIxMzogMDAwMDJmMDdiYmEyMjdhMCBSMTQ6IDAwMDAyZjA3YmM2ZDA5MGMgUjE1OiAwMDAwMDAw MDAwMDAwMDAwCls2MDEwMy44MjYzNzddIENvZGU6IDkwIDkwIDkwIDkwIDkwIDkwIDkwIDBmIDFm IDQ0IDAwIDAwIDQ5IDg5IGY5IDQ4IDg5IGQxIDgzCmUyIDA3IDQ4IGMxIGU5IDAzIDQwIDBmIGI2 IGY2IDQ4IGI4IDAxIDAxIDAxIDAxIDAxIDAxIDAxIDAxIDQ4IDBmIGFmIGM2IDxmMz4gNDgKYWIg ODkgZDEgZjMgYWEgNGMgODkgYzggYzMgOTAgNDkgODkgZjkgNDAgODggZjAgNDggODkgZDEKWzYw MTAzLjgyNjQ0Ml0gUklQOiBfX21lbXNldCsweDI0LzB4MzAgUlNQOiBmZmZmOTY0MzE2YzAzYjY4 Cls2MDEwMy44MjY0NDRdIENSMjogZmZmZjk2NDFmMjAwNDAwMAoKQ29tbWl0IGUxMDY5YmJmY2Yz YiAoIm5ldDogY2RjX25jbTogUmVkdWNlIG1lbW9yeSB1c2Ugd2hlbiBrZXJuZWwKbWVtb3J5IGxv dyIpIG1hZGUgdGhpcyBidWcgbXVjaCBtb3JlIGxpa2VseSB0byB0cmlnZ2VyIGJ5IHJlZHVjaW5n CnRoZSBOVEIgc2l6ZSB1bmRlciBtZW1vcnkgcHJlc3N1cmUuCgpMaW5rOiBodHRwczovL2J1Z3Mu ZGViaWFuLm9yZy84OTMzOTMKUmVwb3J0ZWQtYnk6INCT0L7RgNCx0LXRiNC60L4g0JHQvtCz0LTQ sNC9IDxib2RxaHJvaHJvQGdtYWlsLmNvbT4KUmVwb3J0ZWQtYW5kLXRlc3RlZC1ieTogRGVubmlz IFdhc3NlbmJlcmcgPGRlbm5pcy53YXNzZW5iZXJnQHNlY3VuZXQuY29tPgpDYzogRW5yaWNvIE1p b3NvIDxtcmtpa28ucnNAZ21haWwuY29tPgpGaXhlczogNGEwZTNlOTg5ZDY2ICgiY2RjX25jbTog QWRkIHN1cHBvcnQgZm9yIG1vdmluZyBORFAgdG8gZW5kIG9mIE5DTSBmcmFtZSIpClNpZ25lZC1v ZmYtYnk6IEJqw7hybiBNb3JrIDxiam9ybkBtb3JrLm5vPgpTaWduZWQtb2ZmLWJ5OiBEYXZpZCBT LiBNaWxsZXIgPGRhdmVtQGRhdmVtbG9mdC5uZXQ+Ci0tLQogZHJpdmVycy9uZXQvdXNiL2NkY19u Y20uYyB8IDQgKystLQogMSBmaWxlIGNoYW5nZWQsIDIgaW5zZXJ0aW9ucygrKSwgMiBkZWxldGlv bnMoLSkKCmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC91c2IvY2RjX25jbS5jIGIvZHJpdmVycy9u ZXQvdXNiL2NkY19uY20uYwppbmRleCA5MGQwN2VkMjI0ZDUuLmIwZThiOTYxMzA1NCAxMDA2NDQK LS0tIGEvZHJpdmVycy9uZXQvdXNiL2NkY19uY20uYworKysgYi9kcml2ZXJzL25ldC91c2IvY2Rj X25jbS5jCkBAIC0xMTI0LDcgKzExMjQsNyBAQCBjZGNfbmNtX2ZpbGxfdHhfZnJhbWUoc3RydWN0 IHVzYm5ldCAqZGV2LCBzdHJ1Y3Qgc2tfYnVmZiAqc2tiLCBfX2xlMzIgc2lnbikKIAkgKiBhY2Nv cmRpbmdseS4gT3RoZXJ3aXNlLCB3ZSBzaG91bGQgY2hlY2sgaGVyZS4KIAkgKi8KIAlpZiAoY3R4 LT5kcnZmbGFncyAmIENEQ19OQ01fRkxBR19ORFBfVE9fRU5EKQotCQlkZWxheWVkX25kcF9zaXpl ID0gY3R4LT5tYXhfbmRwX3NpemU7CisJCWRlbGF5ZWRfbmRwX3NpemUgPSBBTElHTihjdHgtPm1h eF9uZHBfc2l6ZSwgY3R4LT50eF9uZHBfbW9kdWx1cyk7CiAJZWxzZQogCQlkZWxheWVkX25kcF9z aXplID0gMDsKIApAQCAtMTI4NSw3ICsxMjg1LDcgQEAgY2RjX25jbV9maWxsX3R4X2ZyYW1lKHN0 cnVjdCB1c2JuZXQgKmRldiwgc3RydWN0IHNrX2J1ZmYgKnNrYiwgX19sZTMyIHNpZ24pCiAJLyog SWYgcmVxdWVzdGVkLCBwdXQgTkRQIGF0IGVuZCBvZiBmcmFtZS4gKi8KIAlpZiAoY3R4LT5kcnZm bGFncyAmIENEQ19OQ01fRkxBR19ORFBfVE9fRU5EKSB7CiAJCW50aDE2ID0gKHN0cnVjdCB1c2Jf Y2RjX25jbV9udGgxNiAqKXNrYl9vdXQtPmRhdGE7Ci0JCWNkY19uY21fYWxpZ25fdGFpbChza2Jf b3V0LCBjdHgtPnR4X25kcF9tb2R1bHVzLCAwLCBjdHgtPnR4X2N1cnJfc2l6ZSk7CisJCWNkY19u Y21fYWxpZ25fdGFpbChza2Jfb3V0LCBjdHgtPnR4X25kcF9tb2R1bHVzLCAwLCBjdHgtPnR4X2N1 cnJfc2l6ZSAtIGN0eC0+bWF4X25kcF9zaXplKTsKIAkJbnRoMTYtPndOZHBJbmRleCA9IGNwdV90 b19sZTE2KHNrYl9vdXQtPmxlbik7CiAJCXNrYl9wdXRfZGF0YShza2Jfb3V0LCBjdHgtPmRlbGF5 ZWRfbmRwMTYsIGN0eC0+bWF4X25kcF9zaXplKTsKIAotLSAKMi4xNy4xCgoKRnJvbSBiZjY4NmFh ZGU0OGFlOTQ1OWRiNzMzYmNmYTkxM2M4OTRhZjU1MGZmIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAw MQpGcm9tOiBKdWxpYW4gQW5hc3Rhc292IDxqYUBzc2kuYmc+CkRhdGU6IE1vbiwgMTEgSnVuIDIw MTggMDI6MDI6NTQgKzAzMDAKU3ViamVjdDogW1BBVENIIDAzLzE0XSBpcHY2OiBhbGxvdyBQTVRV IGV4Y2VwdGlvbnMgdG8gbG9jYWwgcm91dGVzCgpbIFVwc3RyZWFtIGNvbW1pdCAwOTc1NzY0Njg0 NDg3YmYzZjdhNDdlZWYwMDllNzUwZWE0MWJkNTE0IF0KCklQVlMgc2V0dXBzIHdpdGggbG9jYWwg Y2xpZW50IGFuZCByZW1vdGUgdHVubmVsIHNlcnZlciBuZWVkCnRvIGNyZWF0ZSBleGNlcHRpb24g Zm9yIHRoZSBsb2NhbCB2aXJ0dWFsIElQLiBXaGF0IHdlIGRvIGlzIHRvCmNoYW5nZSBQTVRVIGZy b20gNjRLQiAob24gImxvIikgdG8gMTQ2MCBpbiB0aGUgY29tbW9uIGNhc2UuCgpTdWdnZXN0ZWQt Ynk6IE1hcnRpbiBLYUZhaSBMYXUgPGthZmFpQGZiLmNvbT4KRml4ZXM6IDQ1ZTRmZDI2NjgzYyAo ImlwdjY6IE9ubHkgY3JlYXRlIFJURl9DQUNIRSByb3V0ZXMgYWZ0ZXIgZW5jb3VudGVyaW5nIHBt dHUgZXhjZXB0aW9uIikKRml4ZXM6IDczNDNmZjMxZWJmMCAoImlwdjY6IERvbid0IGNyZWF0ZSBj bG9uZXMgb2YgaG9zdCByb3V0ZXMuIikKU2lnbmVkLW9mZi1ieTogSnVsaWFuIEFuYXN0YXNvdiA8 amFAc3NpLmJnPgpBY2tlZC1ieTogRGF2aWQgQWhlcm4gPGRzYWhlcm5AZ21haWwuY29tPgpBY2tl ZC1ieTogTWFydGluIEthRmFpIExhdSA8a2FmYWlAZmIuY29tPgpTaWduZWQtb2ZmLWJ5OiBEYXZp ZCBTLiBNaWxsZXIgPGRhdmVtQGRhdmVtbG9mdC5uZXQ+Ci0tLQogbmV0L2lwdjYvcm91dGUuYyB8 IDMgLS0tCiAxIGZpbGUgY2hhbmdlZCwgMyBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9uZXQv aXB2Ni9yb3V0ZS5jIGIvbmV0L2lwdjYvcm91dGUuYwppbmRleCA0NTMwYTgyYWFhMmUuLmI5NDM0 NWU2NTdmNyAxMDA2NDQKLS0tIGEvbmV0L2lwdjYvcm91dGUuYworKysgYi9uZXQvaXB2Ni9yb3V0 ZS5jCkBAIC0yMTQ5LDkgKzIxNDksNiBAQCBzdGF0aWMgdm9pZCBfX2lwNl9ydF91cGRhdGVfcG10 dShzdHJ1Y3QgZHN0X2VudHJ5ICpkc3QsIGNvbnN0IHN0cnVjdCBzb2NrICpzaywKIAljb25zdCBz dHJ1Y3QgaW42X2FkZHIgKmRhZGRyLCAqc2FkZHI7CiAJc3RydWN0IHJ0Nl9pbmZvICpydDYgPSAo c3RydWN0IHJ0Nl9pbmZvICopZHN0OwogCi0JaWYgKHJ0Ni0+cnQ2aV9mbGFncyAmIFJURl9MT0NB TCkKLQkJcmV0dXJuOwotCiAJaWYgKGRzdF9tZXRyaWNfbG9ja2VkKGRzdCwgUlRBWF9NVFUpKQog CQlyZXR1cm47CiAKLS0gCjIuMTcuMQoKCkZyb20gNDRjYTM2MjdhN2Q4YjIyYjk5NmE4YzVkNzc2 NjAzZjJlNmVmY2FmOCBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJvbTogWmhvdXlhbmcgSmlh IDxqaWF6aG91eWFuZzA5QGdtYWlsLmNvbT4KRGF0ZTogTW9uLCAxMSBKdW4gMjAxOCAxMzoyNjoz NSArMDgwMApTdWJqZWN0OiBbUEFUQ0ggMDQvMTRdIG5ldDogZHNhOiBhZGQgZXJyb3IgaGFuZGxp bmcgZm9yIHBza2JfdHJpbV9yY3N1bQoKWyBVcHN0cmVhbSBjb21taXQgMzQ5YjcxZDZmNDI3ZmY4 MjExYWRmNTA4MzlkYmJmZjNmMjdjMTgwNSBdCgpXaGVuIHBza2JfdHJpbV9yY3N1bSBmYWlscywg dGhlIGxhY2sgb2YgZXJyb3ItaGFuZGxpbmcgY29kZSBtYXkKY2F1c2UgdW5leHBlY3RlZCByZXN1 bHRzLgoKVGhpcyBwYXRjaCBhZGRzIGVycm9yLWhhbmRsaW5nIGNvZGUgYWZ0ZXIgY2FsbGluZyBw c2tiX3RyaW1fcmNzdW0uCgpTaWduZWQtb2ZmLWJ5OiBaaG91eWFuZyBKaWEgPGppYXpob3V5YW5n MDlAZ21haWwuY29tPgpTaWduZWQtb2ZmLWJ5OiBEYXZpZCBTLiBNaWxsZXIgPGRhdmVtQGRhdmVt bG9mdC5uZXQ+Ci0tLQogbmV0L2RzYS90YWdfdHJhaWxlci5jIHwgMyArKy0KIDEgZmlsZSBjaGFu Z2VkLCAyIGluc2VydGlvbnMoKyksIDEgZGVsZXRpb24oLSkKCmRpZmYgLS1naXQgYS9uZXQvZHNh L3RhZ190cmFpbGVyLmMgYi9uZXQvZHNhL3RhZ190cmFpbGVyLmMKaW5kZXggN2QyMGUxZjNkZTI4 Li41NjE5N2YwZDk2MDggMTAwNjQ0Ci0tLSBhL25ldC9kc2EvdGFnX3RyYWlsZXIuYworKysgYi9u ZXQvZHNhL3RhZ190cmFpbGVyLmMKQEAgLTc1LDcgKzc1LDggQEAgc3RhdGljIHN0cnVjdCBza19i dWZmICp0cmFpbGVyX3JjdihzdHJ1Y3Qgc2tfYnVmZiAqc2tiLCBzdHJ1Y3QgbmV0X2RldmljZSAq ZGV2LAogCWlmICghc2tiLT5kZXYpCiAJCXJldHVybiBOVUxMOwogCi0JcHNrYl90cmltX3Jjc3Vt KHNrYiwgc2tiLT5sZW4gLSA0KTsKKwlpZiAocHNrYl90cmltX3Jjc3VtKHNrYiwgc2tiLT5sZW4g LSA0KSkKKwkJcmV0dXJuIE5VTEw7CiAKIAlyZXR1cm4gc2tiOwogfQotLSAKMi4xNy4xCgoKRnJv bSAwM2ZlNGQ0N2Q3MTQxY2M3ODIyNWY4NzU0OGI2YzBiMDI4OGVhMTU4IE1vbiBTZXAgMTcgMDA6 MDA6MDAgMjAwMQpGcm9tOiBBbHZhcm8gR2FtZXogTWFjaGFkbyA8YWx2YXJvLmdhbWV6QGhhemVu dC5jb20+CkRhdGU6IEZyaSwgOCBKdW4gMjAxOCAxMjoyMzozOSArMDIwMApTdWJqZWN0OiBbUEFU Q0ggMDUvMTRdIG5ldDogcGh5OiBkcDgzODIyOiB1c2UgQk1DUl9BTkVOQUJMRSBpbnN0ZWFkIG9m CiBCTVNSX0FORUdDQVBBQkxFIGZvciBEUDgzNjIwCgpbIFVwc3RyZWFtIGNvbW1pdCBiNzE4ZThj OGY0ZjU5MjBhYWRkYzJlNTJkNWUzMmY0OTRjOTExMjljIF0KCkRQODM2MjAgcmVnaXN0ZXIgc2V0 IGlzIGNvbXBhdGlibGUgd2l0aCB0aGUgRFA4Mzg0OCwgYnV0IGl0IGFsc28gc3VwcG9ydHMKMTAw YmFzZS1GWC4gV2hlbiB0aGUgaGFyZHdhcmUgaXMgY29uZmlndXJlZCBzdWNoIGFzIHRoYXQgZmli ZXIgbW9kZSBpcwplbmFibGVkLCBhdXRvbmVnb3RpYXRpb24gaXMgbm90IHBvc3NpYmxlLgoKVGhl IGNoaXAsIGhvd2V2ZXIsIGRvZXNuJ3QgZXhwb3NlIHRoaXMgaW5mb3JtYXRpb24gdmlhIEJNU1Jf QU5FR0NBUEFCTEUuCkluc3RlYWQsIHRoaXMgYml0IGlzIGFsd2F5cyBzZXQgaGlnaCwgZXZlbiBp ZiB0aGUgcGFydGljdWxhciBoYXJkd2FyZQpjb25maWd1cmF0aW9uIG1ha2VzIGl0IHNvIHRoYXQg YXV0byBuZWdvdGlhdGlvbiBpcyBub3QgcG9zc2libGUgWzFdLiBVbmRlcgp0aGVzZSBjaXJjdW1z dGFuY2VzLCB0aGUgcGh5IHN1YnN5c3RlbSBrZWVwcyB0cnlpbmcgZm9yIGF1dG9uZWdvdGlhdGlv biB0bwpoYXBwZW4sIHdpdGhvdXQgc3VjY2Vzcy4KCkhlcmVieSwgd2UgaW5zcGVjdCBCTUNSX0FO RU5BQkxFIGJpdCBhZnRlciBnZW5waHlfY29uZmlnX2luaXQsIHdoaWNoIG9uCnJlc2V0IGlzIHNl dCB0byAwIHdoZW4gYXV0byBuZWdvdGlhdGlvbiBpcyBkaXNhYmxlZCwgYW5kIHNvIHdlIHVzZSB0 aGlzCnZhbHVlIGluc3RlYWQgb2YgQk1TUl9BTkVHQ0FQQUJMRS4KClsxXSBodHRwczovL2UyZS50 aS5jb20vc3VwcG9ydC9pbnRlcmZhY2UvZXRoZXJuZXQvZi85MDMvcC82OTcxNjUvMjU3MTE3MAoK U2lnbmVkLW9mZi1ieTogQWx2YXJvIEdhbWV6IE1hY2hhZG8gPGFsdmFyby5nYW1lekBoYXplbnQu Y29tPgpTaWduZWQtb2ZmLWJ5OiBEYXZpZCBTLiBNaWxsZXIgPGRhdmVtQGRhdmVtbG9mdC5uZXQ+ Ci0tLQogZHJpdmVycy9uZXQvcGh5L2RwODM4NDguYyB8IDM1ICsrKysrKysrKysrKysrKysrKysr KysrKysrKysrLS0tLS0tCiAxIGZpbGUgY2hhbmdlZCwgMjkgaW5zZXJ0aW9ucygrKSwgNiBkZWxl dGlvbnMoLSkKCmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC9waHkvZHA4Mzg0OC5jIGIvZHJpdmVy cy9uZXQvcGh5L2RwODM4NDguYwppbmRleCBjZDA5YzNhZjIxMTcuLjZlOGU0MjM2MWZkNSAxMDA2 NDQKLS0tIGEvZHJpdmVycy9uZXQvcGh5L2RwODM4NDguYworKysgYi9kcml2ZXJzL25ldC9waHkv ZHA4Mzg0OC5jCkBAIC03NCw2ICs3NCwyNSBAQCBzdGF0aWMgaW50IGRwODM4NDhfY29uZmlnX2lu dHIoc3RydWN0IHBoeV9kZXZpY2UgKnBoeWRldikKIAlyZXR1cm4gcGh5X3dyaXRlKHBoeWRldiwg RFA4Mzg0OF9NSUNSLCBjb250cm9sKTsKIH0KIAorc3RhdGljIGludCBkcDgzODQ4X2NvbmZpZ19p bml0KHN0cnVjdCBwaHlfZGV2aWNlICpwaHlkZXYpCit7CisJaW50IGVycjsKKwlpbnQgdmFsOwor CisJZXJyID0gZ2VucGh5X2NvbmZpZ19pbml0KHBoeWRldik7CisJaWYgKGVyciA8IDApCisJCXJl dHVybiBlcnI7CisKKwkvKiBEUDgzNjIwIGFsd2F5cyByZXBvcnRzIEF1dG8gTmVnb3RpYXRpb24g QWJpbGl0eSBvbiBCTVNSLiBJbnN0ZWFkLAorCSAqIHdlIGNoZWNrIGluaXRpYWwgdmFsdWUgb2Yg Qk1DUiBBdXRvIG5lZ290aWF0aW9uIGVuYWJsZSBiaXQKKwkgKi8KKwl2YWwgPSBwaHlfcmVhZChw aHlkZXYsIE1JSV9CTUNSKTsKKwlpZiAoISh2YWwgJiBCTUNSX0FORU5BQkxFKSkKKwkJcGh5ZGV2 LT5hdXRvbmVnID0gQVVUT05FR19ESVNBQkxFOworCisJcmV0dXJuIDA7Cit9CisKIHN0YXRpYyBz dHJ1Y3QgbWRpb19kZXZpY2VfaWQgX19tYXliZV91bnVzZWQgZHA4Mzg0OF90YmxbXSA9IHsKIAl7 IFRJX0RQODM4NDhDX1BIWV9JRCwgMHhmZmZmZmZmMCB9LAogCXsgTlNfRFA4Mzg0OENfUEhZX0lE LCAweGZmZmZmZmYwIH0sCkBAIC04Myw3ICsxMDIsNyBAQCBzdGF0aWMgc3RydWN0IG1kaW9fZGV2 aWNlX2lkIF9fbWF5YmVfdW51c2VkIGRwODM4NDhfdGJsW10gPSB7CiB9OwogTU9EVUxFX0RFVklD RV9UQUJMRShtZGlvLCBkcDgzODQ4X3RibCk7CiAKLSNkZWZpbmUgRFA4Mzg0OF9QSFlfRFJJVkVS KF9pZCwgX25hbWUpCQkJCVwKKyNkZWZpbmUgRFA4Mzg0OF9QSFlfRFJJVkVSKF9pZCwgX25hbWUs IF9jb25maWdfaW5pdCkJCVwKIAl7CQkJCQkJCVwKIAkJLnBoeV9pZAkJPSBfaWQsCQkJCVwKIAkJ LnBoeV9pZF9tYXNrCT0gMHhmZmZmZmZmMCwJCQlcCkBAIC05Miw3ICsxMTEsNyBAQCBNT0RVTEVf REVWSUNFX1RBQkxFKG1kaW8sIGRwODM4NDhfdGJsKTsKIAkJLmZsYWdzCQk9IFBIWV9IQVNfSU5U RVJSVVBULAkJXAogCQkJCQkJCQlcCiAJCS5zb2Z0X3Jlc2V0CT0gZ2VucGh5X3NvZnRfcmVzZXQs CQlcCi0JCS5jb25maWdfaW5pdAk9IGdlbnBoeV9jb25maWdfaW5pdCwJCVwKKwkJLmNvbmZpZ19p bml0CT0gX2NvbmZpZ19pbml0LAkJCVwKIAkJLnN1c3BlbmQJPSBnZW5waHlfc3VzcGVuZCwJCVwK IAkJLnJlc3VtZQkJPSBnZW5waHlfcmVzdW1lLAkJXAogCQkJCQkJCQlcCkBAIC0xMDIsMTAgKzEy MSwxNCBAQCBNT0RVTEVfREVWSUNFX1RBQkxFKG1kaW8sIGRwODM4NDhfdGJsKTsKIAl9CiAKIHN0 YXRpYyBzdHJ1Y3QgcGh5X2RyaXZlciBkcDgzODQ4X2RyaXZlcltdID0gewotCURQODM4NDhfUEhZ X0RSSVZFUihUSV9EUDgzODQ4Q19QSFlfSUQsICJUSSBEUDgzODQ4QyAxMC8xMDAgTWJwcyBQSFki KSwKLQlEUDgzODQ4X1BIWV9EUklWRVIoTlNfRFA4Mzg0OENfUEhZX0lELCAiTlMgRFA4Mzg0OEMg MTAvMTAwIE1icHMgUEhZIiksCi0JRFA4Mzg0OF9QSFlfRFJJVkVSKFRJX0RQODM2MjBfUEhZX0lE LCAiVEkgRFA4MzYyMCAxMC8xMDAgTWJwcyBQSFkiKSwKLQlEUDgzODQ4X1BIWV9EUklWRVIoVExL MTBYX1BIWV9JRCwgIlRJIFRMSzEwWCAxMC8xMDAgTWJwcyBQSFkiKSwKKwlEUDgzODQ4X1BIWV9E UklWRVIoVElfRFA4Mzg0OENfUEhZX0lELCAiVEkgRFA4Mzg0OEMgMTAvMTAwIE1icHMgUEhZIiwK KwkJCSAgIGdlbnBoeV9jb25maWdfaW5pdCksCisJRFA4Mzg0OF9QSFlfRFJJVkVSKE5TX0RQODM4 NDhDX1BIWV9JRCwgIk5TIERQODM4NDhDIDEwLzEwMCBNYnBzIFBIWSIsCisJCQkgICBnZW5waHlf Y29uZmlnX2luaXQpLAorCURQODM4NDhfUEhZX0RSSVZFUihUSV9EUDgzNjIwX1BIWV9JRCwgIlRJ IERQODM2MjAgMTAvMTAwIE1icHMgUEhZIiwKKwkJCSAgIGRwODM4NDhfY29uZmlnX2luaXQpLAor CURQODM4NDhfUEhZX0RSSVZFUihUTEsxMFhfUEhZX0lELCAiVEkgVExLMTBYIDEwLzEwMCBNYnBz IFBIWSIsCisJCQkgICBnZW5waHlfY29uZmlnX2luaXQpLAogfTsKIG1vZHVsZV9waHlfZHJpdmVy KGRwODM4NDhfZHJpdmVyKTsKIAotLSAKMi4xNy4xCgoKRnJvbSA3NTRjNTdhN2RjNjcwMGJlNjRh MDViNjJhYTVkZjZmYmNlMGFmZjE1IE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBEYXZp ZGUgQ2FyYXR0aSA8ZGNhcmF0dGlAcmVkaGF0LmNvbT4KRGF0ZTogRnJpLCA4IEp1biAyMDE4IDA1 OjAyOjMxICswMjAwClN1YmplY3Q6IFtQQVRDSCAwNi8xNF0gbmV0L3NjaGVkOiBhY3Rfc2ltcGxl OiBmaXggcGFyc2luZyBvZiBUQ0FfREVGX0RBVEEKClsgVXBzdHJlYW0gY29tbWl0IDhkNDk5NTMz ZTBiYzAyZDQ0MjgzZGJkYWIwMzE0MmI1OTliOGJhMTYgXQoKdXNlIG5sYV9zdHJsY3B5KCkgdG8g YXZvaWQgY29weWluZyBkYXRhIGJleW9uZCB0aGUgbGVuZ3RoIG9mIFRDQV9ERUZfREFUQQpuZXRs aW5rIGF0dHJpYnV0ZSwgaW4gY2FzZSBpdCBpcyBsZXNzIHRoYW4gU0lNUF9NQVhfREFUQSBhbmQg aXQgZG9lcyBub3QKZW5kIHdpdGggJ1wwJyBjaGFyYWN0ZXIuCgp2MjogZml4IGVycm9ycyBpbiB0 aGUgY29tbWl0IG1lc3NhZ2UsIHRoYW5rcyBIYW5nYmluIExpdQoKRml4ZXM6IGZhMWIxY2ZmM2Qw NiAoIm5ldF9jbHNfYWN0OiBNYWtlIGFjdF9zaW1wbGUgdXNlIG9mIG5ldGxpbmsgcG9saWN5LiIp ClNpZ25lZC1vZmYtYnk6IERhdmlkZSBDYXJhdHRpIDxkY2FyYXR0aUByZWRoYXQuY29tPgpSZXZp ZXdlZC1ieTogU2ltb24gSG9ybWFuIDxzaW1vbi5ob3JtYW5AbmV0cm9ub21lLmNvbT4KU2lnbmVk LW9mZi1ieTogRGF2aWQgUy4gTWlsbGVyIDxkYXZlbUBkYXZlbWxvZnQubmV0PgotLS0KIG5ldC9z Y2hlZC9hY3Rfc2ltcGxlLmMgfCAxNSArKysrKystLS0tLS0tLS0KIDEgZmlsZSBjaGFuZ2VkLCA2 IGluc2VydGlvbnMoKyksIDkgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvbmV0L3NjaGVkL2Fj dF9zaW1wbGUuYyBiL25ldC9zY2hlZC9hY3Rfc2ltcGxlLmMKaW5kZXggOTYxOGI0YTgzY2VlLi45 OGM0YWZlN2MxNWIgMTAwNjQ0Ci0tLSBhL25ldC9zY2hlZC9hY3Rfc2ltcGxlLmMKKysrIGIvbmV0 L3NjaGVkL2FjdF9zaW1wbGUuYwpAQCAtNTMsMjIgKzUzLDIyIEBAIHN0YXRpYyB2b2lkIHRjZl9z aW1wX3JlbGVhc2Uoc3RydWN0IHRjX2FjdGlvbiAqYSkKIAlrZnJlZShkLT50Y2ZkX2RlZmRhdGEp OwogfQogCi1zdGF0aWMgaW50IGFsbG9jX2RlZmRhdGEoc3RydWN0IHRjZl9kZWZhY3QgKmQsIGNo YXIgKmRlZmRhdGEpCitzdGF0aWMgaW50IGFsbG9jX2RlZmRhdGEoc3RydWN0IHRjZl9kZWZhY3Qg KmQsIGNvbnN0IHN0cnVjdCBubGF0dHIgKmRlZmRhdGEpCiB7CiAJZC0+dGNmZF9kZWZkYXRhID0g a3phbGxvYyhTSU1QX01BWF9EQVRBLCBHRlBfS0VSTkVMKTsKIAlpZiAodW5saWtlbHkoIWQtPnRj ZmRfZGVmZGF0YSkpCiAJCXJldHVybiAtRU5PTUVNOwotCXN0cmxjcHkoZC0+dGNmZF9kZWZkYXRh LCBkZWZkYXRhLCBTSU1QX01BWF9EQVRBKTsKKwlubGFfc3RybGNweShkLT50Y2ZkX2RlZmRhdGEs IGRlZmRhdGEsIFNJTVBfTUFYX0RBVEEpOwogCXJldHVybiAwOwogfQogCi1zdGF0aWMgdm9pZCBy ZXNldF9wb2xpY3koc3RydWN0IHRjZl9kZWZhY3QgKmQsIGNoYXIgKmRlZmRhdGEsCitzdGF0aWMg dm9pZCByZXNldF9wb2xpY3koc3RydWN0IHRjZl9kZWZhY3QgKmQsIGNvbnN0IHN0cnVjdCBubGF0 dHIgKmRlZmRhdGEsCiAJCQkgc3RydWN0IHRjX2RlZmFjdCAqcCkKIHsKIAlzcGluX2xvY2tfYmgo JmQtPnRjZl9sb2NrKTsKIAlkLT50Y2ZfYWN0aW9uID0gcC0+YWN0aW9uOwogCW1lbXNldChkLT50 Y2ZkX2RlZmRhdGEsIDAsIFNJTVBfTUFYX0RBVEEpOwotCXN0cmxjcHkoZC0+dGNmZF9kZWZkYXRh LCBkZWZkYXRhLCBTSU1QX01BWF9EQVRBKTsKKwlubGFfc3RybGNweShkLT50Y2ZkX2RlZmRhdGEs IGRlZmRhdGEsIFNJTVBfTUFYX0RBVEEpOwogCXNwaW5fdW5sb2NrX2JoKCZkLT50Y2ZfbG9jayk7 CiB9CiAKQEAgLTg3LDcgKzg3LDYgQEAgc3RhdGljIGludCB0Y2Zfc2ltcF9pbml0KHN0cnVjdCBu ZXQgKm5ldCwgc3RydWN0IG5sYXR0ciAqbmxhLAogCXN0cnVjdCB0Y2ZfZGVmYWN0ICpkOwogCWJv b2wgZXhpc3RzID0gZmFsc2U7CiAJaW50IHJldCA9IDAsIGVycjsKLQljaGFyICpkZWZkYXRhOwog CiAJaWYgKG5sYSA9PSBOVUxMKQogCQlyZXR1cm4gLUVJTlZBTDsKQEAgLTExMCw4ICsxMDksNiBA QCBzdGF0aWMgaW50IHRjZl9zaW1wX2luaXQoc3RydWN0IG5ldCAqbmV0LCBzdHJ1Y3QgbmxhdHRy ICpubGEsCiAJCXJldHVybiAtRUlOVkFMOwogCX0KIAotCWRlZmRhdGEgPSBubGFfZGF0YSh0YltU Q0FfREVGX0RBVEFdKTsKLQogCWlmICghZXhpc3RzKSB7CiAJCXJldCA9IHRjZl9pZHJfY3JlYXRl KHRuLCBwYXJtLT5pbmRleCwgZXN0LCBhLAogCQkJCSAgICAgJmFjdF9zaW1wX29wcywgYmluZCwg ZmFsc2UpOwpAQCAtMTE5LDcgKzExNiw3IEBAIHN0YXRpYyBpbnQgdGNmX3NpbXBfaW5pdChzdHJ1 Y3QgbmV0ICpuZXQsIHN0cnVjdCBubGF0dHIgKm5sYSwKIAkJCXJldHVybiByZXQ7CiAKIAkJZCA9 IHRvX2RlZmFjdCgqYSk7Ci0JCXJldCA9IGFsbG9jX2RlZmRhdGEoZCwgZGVmZGF0YSk7CisJCXJl dCA9IGFsbG9jX2RlZmRhdGEoZCwgdGJbVENBX0RFRl9EQVRBXSk7CiAJCWlmIChyZXQgPCAwKSB7 CiAJCQl0Y2ZfaWRyX3JlbGVhc2UoKmEsIGJpbmQpOwogCQkJcmV0dXJuIHJldDsKQEAgLTEzMyw3 ICsxMzAsNyBAQCBzdGF0aWMgaW50IHRjZl9zaW1wX2luaXQoc3RydWN0IG5ldCAqbmV0LCBzdHJ1 Y3QgbmxhdHRyICpubGEsCiAJCWlmICghb3ZyKQogCQkJcmV0dXJuIC1FRVhJU1Q7CiAKLQkJcmVz ZXRfcG9saWN5KGQsIGRlZmRhdGEsIHBhcm0pOworCQlyZXNldF9wb2xpY3koZCwgdGJbVENBX0RF Rl9EQVRBXSwgcGFybSk7CiAJfQogCiAJaWYgKHJldCA9PSBBQ1RfUF9DUkVBVEVEKQotLSAKMi4x Ny4xCgoKRnJvbSBhYjJmNzJjMThmOGQ1MDZkOTI2NmJjNjVjZmM1Zjg4NDA3YTAwNWI2IE1vbiBT ZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBGcmFuayB2YW4gZGVyIExpbmRlbiA8ZmxsaW5kZW5A YW1hem9uLmNvbT4KRGF0ZTogVHVlLCAxMiBKdW4gMjAxOCAyMzowOTozNyArMDAwMApTdWJqZWN0 OiBbUEFUQ0ggMDcvMTRdIHRjcDogdmVyaWZ5IHRoZSBjaGVja3N1bSBvZiB0aGUgZmlyc3QgZGF0 YSBzZWdtZW50IGluIGEKIG5ldyBjb25uZWN0aW9uCgpbIFVwc3RyZWFtIGNvbW1pdCA0ZmQ0NGE5 OGZmZTBkMDQ4MjQ2ZWZlZjY3ZWQ2NDBmZGYyMDk4YTYyIF0KCmNvbW1pdCAwNzkwOTZmMTAzZmEg KCJ0Y3AvZGNjcDogaW5zdGFsbCBzeW5fcmVjdiByZXF1ZXN0cyBpbnRvIGVoYXNoCnRhYmxlIikg aW50cm9kdWNlZCBhbiBvcHRpbWl6YXRpb24gZm9yIHRoZSBoYW5kbGluZyBvZiBjaGlsZCBzb2Nr ZXRzCmNyZWF0ZWQgZm9yIGEgbmV3IFRDUCBjb25uZWN0aW9uLgoKQnV0IHRoaXMgb3B0aW1pemF0 aW9uIHBhc3NlcyBhbnkgZGF0YSBhc3NvY2lhdGVkIHdpdGggdGhlIGxhc3QgQUNLIG9mIHRoZQpj b25uZWN0aW9uIGhhbmRzaGFrZSB1cCB0aGUgc3RhY2sgd2l0aG91dCB2ZXJpZnlpbmcgaXRzIGNo ZWNrc3VtLCBiZWNhdXNlIGl0CmNhbGxzIHRjcF9jaGlsZF9wcm9jZXNzKCksIHdoaWNoIGluIHR1 cm4gY2FsbHMgdGNwX3Jjdl9zdGF0ZV9wcm9jZXNzKCkKZGlyZWN0bHkuICBUaGVzZSBsb3dlci1s ZXZlbCBwcm9jZXNzaW5nIGZ1bmN0aW9ucyBkbyBub3QgZG8gYW55IGNoZWNrc3VtCnZlcmlmaWNh dGlvbi4KCkluc2VydCBhIHRjcF9jaGVja3N1bV9jb21wbGV0ZSBjYWxsIGluIHRoZSBUQ1BfTkVX X1NZTl9SRUNFSVZFIHBhdGggdG8KZml4IHRoaXMuCgpGaXhlczogMDc5MDk2ZjEwM2ZhICgidGNw L2RjY3A6IGluc3RhbGwgc3luX3JlY3YgcmVxdWVzdHMgaW50byBlaGFzaCB0YWJsZSIpClNpZ25l ZC1vZmYtYnk6IEZyYW5rIHZhbiBkZXIgTGluZGVuIDxmbGxpbmRlbkBhbWF6b24uY29tPgpTaWdu ZWQtb2ZmLWJ5OiBFcmljIER1bWF6ZXQgPGVkdW1hemV0QGdvb2dsZS5jb20+ClRlc3RlZC1ieTog QmFsYmlyIFNpbmdoIDxic2luZ2hhcm9yYUBnbWFpbC5jb20+ClJldmlld2VkLWJ5OiBCYWxiaXIg U2luZ2ggPGJzaW5naGFyb3JhQGdtYWlsLmNvbT4KU2lnbmVkLW9mZi1ieTogRGF2aWQgUy4gTWls bGVyIDxkYXZlbUBkYXZlbWxvZnQubmV0PgotLS0KIG5ldC9pcHY0L3RjcF9pcHY0LmMgfCA0ICsr KysKIG5ldC9pcHY2L3RjcF9pcHY2LmMgfCA0ICsrKysKIDIgZmlsZXMgY2hhbmdlZCwgOCBpbnNl cnRpb25zKCspCgpkaWZmIC0tZ2l0IGEvbmV0L2lwdjQvdGNwX2lwdjQuYyBiL25ldC9pcHY0L3Rj cF9pcHY0LmMKaW5kZXggZjcwNTg2YjUwODM4Li5lZjhjZDBmN2RiODkgMTAwNjQ0Ci0tLSBhL25l dC9pcHY0L3RjcF9pcHY0LmMKKysrIGIvbmV0L2lwdjQvdGNwX2lwdjQuYwpAQCAtMTY4OSw2ICsx Njg5LDEwIEBAIGludCB0Y3BfdjRfcmN2KHN0cnVjdCBza19idWZmICpza2IpCiAJCQlyZXFza19w dXQocmVxKTsKIAkJCWdvdG8gZGlzY2FyZF9pdDsKIAkJfQorCQlpZiAodGNwX2NoZWNrc3VtX2Nv bXBsZXRlKHNrYikpIHsKKwkJCXJlcXNrX3B1dChyZXEpOworCQkJZ290byBjc3VtX2Vycm9yOwor CQl9CiAJCWlmICh1bmxpa2VseShzay0+c2tfc3RhdGUgIT0gVENQX0xJU1RFTikpIHsKIAkJCWlu ZXRfY3NrX3JlcXNrX3F1ZXVlX2Ryb3BfYW5kX3B1dChzaywgcmVxKTsKIAkJCWdvdG8gbG9va3Vw OwpkaWZmIC0tZ2l0IGEvbmV0L2lwdjYvdGNwX2lwdjYuYyBiL25ldC9pcHY2L3RjcF9pcHY2LmMK aW5kZXggNmQ2NjRkODNjZDE2Li41ZDRlYjlkMmMzYTcgMTAwNjQ0Ci0tLSBhL25ldC9pcHY2L3Rj cF9pcHY2LmMKKysrIGIvbmV0L2lwdjYvdGNwX2lwdjYuYwpAQCAtMTQ3NSw2ICsxNDc1LDEwIEBA IHN0YXRpYyBpbnQgdGNwX3Y2X3JjdihzdHJ1Y3Qgc2tfYnVmZiAqc2tiKQogCQkJcmVxc2tfcHV0 KHJlcSk7CiAJCQlnb3RvIGRpc2NhcmRfaXQ7CiAJCX0KKwkJaWYgKHRjcF9jaGVja3N1bV9jb21w bGV0ZShza2IpKSB7CisJCQlyZXFza19wdXQocmVxKTsKKwkJCWdvdG8gY3N1bV9lcnJvcjsKKwkJ fQogCQlpZiAodW5saWtlbHkoc2stPnNrX3N0YXRlICE9IFRDUF9MSVNURU4pKSB7CiAJCQlpbmV0 X2Nza19yZXFza19xdWV1ZV9kcm9wX2FuZF9wdXQoc2ssIHJlcSk7CiAJCQlnb3RvIGxvb2t1cDsK LS0gCjIuMTcuMQoKCkZyb20gNDgzNzg1MmI4NWQ3ZDk3NTJlN2ZmMDNhZjgxZWIzYjM0NDE5YWVh ZiBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJvbTogRGFuaWVsIEJvcmttYW5uIDxkYW5pZWxA aW9nZWFyYm94Lm5ldD4KRGF0ZTogRnJpLCAxNSBKdW4gMjAxOCAwMzowNzo0NSArMDIwMApTdWJq ZWN0OiBbUEFUQ0ggMDgvMTRdIHRsczogZml4IHVzZS1hZnRlci1mcmVlIGluIHRsc19wdXNoX3Jl Y29yZAoKWyBVcHN0cmVhbSBjb21taXQgYTQ0N2RhN2QwMDQxMDI3OGM5MGQzNTc2NzgyYTQzZjhi Njc1ZDdiZSBdCgpzeXprYWxsZXIgbWFuYWdlZCB0byB0cmlnZ2VyIGEgdXNlLWFmdGVyLWZyZWUg aW4gdGxzIGxpa2UgdGhlCmZvbGxvd2luZzoKCiAgQlVHOiBLQVNBTjogdXNlLWFmdGVyLWZyZWUg aW4gdGxzX3B1c2hfcmVjb3JkLmNvbnN0cHJvcC4xNSsweDZhMi8weDgxMCBbdGxzXQogIFdyaXRl IG9mIHNpemUgMSBhdCBhZGRyIGZmZmY4ODAzN2FhMDgwMDAgYnkgdGFzayBhLm91dC8yMzE3Cgog IENQVTogMyBQSUQ6IDIzMTcgQ29tbTogYS5vdXQgTm90IHRhaW50ZWQgNC4xNy4wKyAjMTQ0CiAg SGFyZHdhcmUgbmFtZTogTEVOT1ZPIDIwRkJDVE8xV1cvMjBGQkNUTzFXVywgQklPUyBOMUZFVDQ3 VyAoMS4yMSApIDExLzI4LzIwMTYKICBDYWxsIFRyYWNlOgogICBkdW1wX3N0YWNrKzB4NzEvMHhh YgogICBwcmludF9hZGRyZXNzX2Rlc2NyaXB0aW9uKzB4NmEvMHgyODAKICAga2FzYW5fcmVwb3J0 KzB4MjU4LzB4MzgwCiAgID8gdGxzX3B1c2hfcmVjb3JkLmNvbnN0cHJvcC4xNSsweDZhMi8weDgx MCBbdGxzXQogICB0bHNfcHVzaF9yZWNvcmQuY29uc3Rwcm9wLjE1KzB4NmEyLzB4ODEwIFt0bHNd CiAgIHRsc19zd19wdXNoX3BlbmRpbmdfcmVjb3JkKzB4MmUvMHg0MCBbdGxzXQogICB0bHNfc2tf cHJvdG9fY2xvc2UrMHgzZmUvMHg3MTAgW3Rsc10KICAgPyB0Y3BfY2hlY2tfb29tKzB4NGMwLzB4 NGMwCiAgID8gdGxzX3dyaXRlX3NwYWNlKzB4MjYwLzB4MjYwIFt0bHNdCiAgID8ga21lbV9jYWNo ZV9mcmVlKzB4ODgvMHgxZjAKICAgaW5ldF9yZWxlYXNlKzB4ZDYvMHgxYjAKICAgX19zb2NrX3Jl bGVhc2UrMHhjMC8weDI0MAogICBzb2NrX2Nsb3NlKzB4MTEvMHgyMAogICBfX2ZwdXQrMHgyMmQv MHg2NjAKICAgdGFza193b3JrX3J1bisweDExNC8weDFhMAogICBkb19leGl0KzB4NzFhLzB4Mjc4 MAogICA/IG1tX3VwZGF0ZV9uZXh0X293bmVyKzB4NjUwLzB4NjUwCiAgID8gaGFuZGxlX21tX2Zh dWx0KzB4MmY1LzB4NWYwCiAgID8gX19kb19wYWdlX2ZhdWx0KzB4NDRmLzB4YTUwCiAgID8gbW1f ZmF1bHRfZXJyb3IrMHgyZDAvMHgyZDAKICAgZG9fZ3JvdXBfZXhpdCsweGRlLzB4MzAwCiAgIF9f eDY0X3N5c19leGl0X2dyb3VwKzB4M2EvMHg1MAogICBkb19zeXNjYWxsXzY0KzB4OWEvMHgzMDAK ICAgPyBwYWdlX2ZhdWx0KzB4OC8weDMwCiAgIGVudHJ5X1NZU0NBTExfNjRfYWZ0ZXJfaHdmcmFt ZSsweDQ0LzB4YTkKClRoaXMgaGFwcGVuZWQgdGhyb3VnaCBmYXVsdCBpbmplY3Rpb24gd2hlcmUg YWVhZF9yZXEgYWxsb2NhdGlvbiBpbgp0bHNfZG9fZW5jcnlwdGlvbigpIGV2ZW50dWFsbHkgZmFp bGVkIGFuZCB3ZSByZXR1cm5lZCAtRU5PTUVNIGZyb20KdGhlIGZ1bmN0aW9uLiBUdXJucyBvdXQg dGhhdCB0aGUgdXNlLWFmdGVyLWZyZWUgaXMgdHJpZ2dlcmVkIGZyb20KdGxzX3N3X3NlbmRtc2co KSBpbiB0aGUgc2Vjb25kIHRsc19wdXNoX3JlY29yZCgpLiBUaGUgZXJyb3IgdGhlbgp0cmlnZ2Vy cyBhIGp1bXAgdG8gd2FpdGluZyBmb3IgbWVtb3J5IGluIHNrX3N0cmVhbV93YWl0X21lbW9yeSgp CnJlc3AuIHJldHVybmluZyBpbW1lZGlhdGVseSBpbiBjYXNlIG9mIE1TR19ET05UV0FJVC4gV2hh dCBmb2xsb3dzIGlzCnRoZSB0cmltX2JvdGhfc2dsKHNrLCBvcmlnX3NpemUpLCB3aGljaCBkcm9w cyBlbGVtZW50cyBmcm9tIHRoZSBzZwpsaXN0IGFkZGVkIHZpYSB0bHNfc3dfc2VuZG1zZygpLiBO b3cgdGhlIHVzZS1hZnRlci1mcmVlIGdldHMgdHJpZ2dlcmVkCndoZW4gdGhlIHNvY2tldCBpcyBi ZWluZyBjbG9zZWQsIHdoZXJlIHRsc19za19wcm90b19jbG9zZSgpIGNhbGxiYWNrCmlzIGludm9r ZWQuIFRoZSB0bHNfY29tcGxldGVfcGVuZGluZ193b3JrKCkgd2lsbCBmaWd1cmUgdGhhdCB0aGVy ZSdzCmEgcGVuZGluZyBjbG9zZWQgdGxzIHJlY29yZCB0byBiZSBmbHVzaGVkIGFuZCB0aHVzIGNh bGxzIGludG8gdGhlCnRsc19wdXNoX3BlbmRpbmdfY2xvc2VkX3JlY29yZCgpIGZyb20gdGhlcmUu IGN0eC0+cHVzaF9wZW5kaW5nX3JlY29yZCgpCmlzIGNhbGxlZCBmcm9tIHRoZSBsYXR0ZXIsIHdo aWNoIGlzIHRoZSB0bHNfc3dfcHVzaF9wZW5kaW5nX3JlY29yZCgpCmZyb20gc3cgcGF0aC4gVGhp cyBhZ2FpbiBjYWxscyBpbnRvIHRsc19wdXNoX3JlY29yZCgpLiBBbmQgaGVyZSB0aGUKdGxzX2Zp bGxfcHJlcGVuZCgpIHdpbGwgcGFuaWMgc2luY2UgdGhlIGJ1ZmZlciBhZGRyZXNzIGhhcyBiZWVu IGZyZWVkCmVhcmxpZXIgdmlhIHRyaW1fYm90aF9zZ2woKS4gT25lIHdheSB0byBmaXggaXQgaXMg dG8gbW92ZSB0aGUgYWVhZApyZXF1ZXN0IGFsbG9jYXRpb24gb3V0IG9mIHRsc19kb19lbmNyeXB0 aW9uKCkgZWFybHkgaW50byB0bHNfcHVzaF9yZWNvcmQoKS4KVGhpcyBtZWFucyB3ZSBkb24ndCBw cmVwIHRoZSB0bHMgaGVhZGVyIGFuZCBhZHZhbmNlIHN0YXRlIHRvIHRoZQpUTFNfUEVORElOR19D TE9TRURfUkVDT1JEIGJlZm9yZSBhbGxvY2F0aW9uIHdoaWNoIGNvdWxkIHBvdGVudGlhbGx5CmZh aWwgaGFwcGVuZWQuIFRoYXQgZml4ZXMgdGhlIGlzc3VlIG9uIG15IHNpZGUuCgpGaXhlczogM2M0 ZDc1NTkxNTliICgidGxzOiBrZXJuZWwgVExTIHN1cHBvcnQiKQpSZXBvcnRlZC1ieTogc3l6Ym90 KzVjNzRhZjgxYzU0NzczOGUxNjg0QHN5emthbGxlci5hcHBzcG90bWFpbC5jb20KUmVwb3J0ZWQt Ynk6IHN5emJvdCs3MDlmMjgxMGE2YTA1ZjExZDRkM0BzeXprYWxsZXIuYXBwc3BvdG1haWwuY29t ClNpZ25lZC1vZmYtYnk6IERhbmllbCBCb3JrbWFubiA8ZGFuaWVsQGlvZ2VhcmJveC5uZXQ+CkFj a2VkLWJ5OiBEYXZlIFdhdHNvbiA8ZGF2ZWp3YXRzb25AZmIuY29tPgpTaWduZWQtb2ZmLWJ5OiBE YXZpZCBTLiBNaWxsZXIgPGRhdmVtQGRhdmVtbG9mdC5uZXQ+Ci0tLQogbmV0L3Rscy90bHNfc3cu YyB8IDI2ICsrKysrKysrKysrKystLS0tLS0tLS0tLS0tCiAxIGZpbGUgY2hhbmdlZCwgMTMgaW5z ZXJ0aW9ucygrKSwgMTMgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvbmV0L3Rscy90bHNfc3cu YyBiL25ldC90bHMvdGxzX3N3LmMKaW5kZXggZTFjOTNjZTc0ZTBmLi5hODAwMTg1NGViMjMgMTAw NjQ0Ci0tLSBhL25ldC90bHMvdGxzX3N3LmMKKysrIGIvbmV0L3Rscy90bHNfc3cuYwpAQCAtMTkx LDE4ICsxOTEsMTIgQEAgc3RhdGljIHZvaWQgdGxzX2ZyZWVfYm90aF9zZyhzdHJ1Y3Qgc29jayAq c2spCiB9CiAKIHN0YXRpYyBpbnQgdGxzX2RvX2VuY3J5cHRpb24oc3RydWN0IHRsc19jb250ZXh0 ICp0bHNfY3R4LAotCQkJICAgICBzdHJ1Y3QgdGxzX3N3X2NvbnRleHQgKmN0eCwgc2l6ZV90IGRh dGFfbGVuLAotCQkJICAgICBnZnBfdCBmbGFncykKKwkJCSAgICAgc3RydWN0IHRsc19zd19jb250 ZXh0ICpjdHgsCisJCQkgICAgIHN0cnVjdCBhZWFkX3JlcXVlc3QgKmFlYWRfcmVxLAorCQkJICAg ICBzaXplX3QgZGF0YV9sZW4pCiB7Ci0JdW5zaWduZWQgaW50IHJlcV9zaXplID0gc2l6ZW9mKHN0 cnVjdCBhZWFkX3JlcXVlc3QpICsKLQkJY3J5cHRvX2FlYWRfcmVxc2l6ZShjdHgtPmFlYWRfc2Vu ZCk7Ci0Jc3RydWN0IGFlYWRfcmVxdWVzdCAqYWVhZF9yZXE7CiAJaW50IHJjOwogCi0JYWVhZF9y ZXEgPSBremFsbG9jKHJlcV9zaXplLCBmbGFncyk7Ci0JaWYgKCFhZWFkX3JlcSkKLQkJcmV0dXJu IC1FTk9NRU07Ci0KIAljdHgtPnNnX2VuY3J5cHRlZF9kYXRhWzBdLm9mZnNldCArPSB0bHNfY3R4 LT50eC5wcmVwZW5kX3NpemU7CiAJY3R4LT5zZ19lbmNyeXB0ZWRfZGF0YVswXS5sZW5ndGggLT0g dGxzX2N0eC0+dHgucHJlcGVuZF9zaXplOwogCkBAIC0yMTksNyArMjEzLDYgQEAgc3RhdGljIGlu dCB0bHNfZG9fZW5jcnlwdGlvbihzdHJ1Y3QgdGxzX2NvbnRleHQgKnRsc19jdHgsCiAJY3R4LT5z Z19lbmNyeXB0ZWRfZGF0YVswXS5vZmZzZXQgLT0gdGxzX2N0eC0+dHgucHJlcGVuZF9zaXplOwog CWN0eC0+c2dfZW5jcnlwdGVkX2RhdGFbMF0ubGVuZ3RoICs9IHRsc19jdHgtPnR4LnByZXBlbmRf c2l6ZTsKIAotCWtmcmVlKGFlYWRfcmVxKTsKIAlyZXR1cm4gcmM7CiB9CiAKQEAgLTIyOCw4ICsy MjEsMTQgQEAgc3RhdGljIGludCB0bHNfcHVzaF9yZWNvcmQoc3RydWN0IHNvY2sgKnNrLCBpbnQg ZmxhZ3MsCiB7CiAJc3RydWN0IHRsc19jb250ZXh0ICp0bHNfY3R4ID0gdGxzX2dldF9jdHgoc2sp OwogCXN0cnVjdCB0bHNfc3dfY29udGV4dCAqY3R4ID0gdGxzX3N3X2N0eCh0bHNfY3R4KTsKKwlz dHJ1Y3QgYWVhZF9yZXF1ZXN0ICpyZXE7CiAJaW50IHJjOwogCisJcmVxID0ga3phbGxvYyhzaXpl b2Yoc3RydWN0IGFlYWRfcmVxdWVzdCkgKworCQkgICAgICBjcnlwdG9fYWVhZF9yZXFzaXplKGN0 eC0+YWVhZF9zZW5kKSwgc2stPnNrX2FsbG9jYXRpb24pOworCWlmICghcmVxKQorCQlyZXR1cm4g LUVOT01FTTsKKwogCXNnX21hcmtfZW5kKGN0eC0+c2dfcGxhaW50ZXh0X2RhdGEgKyBjdHgtPnNn X3BsYWludGV4dF9udW1fZWxlbSAtIDEpOwogCXNnX21hcmtfZW5kKGN0eC0+c2dfZW5jcnlwdGVk X2RhdGEgKyBjdHgtPnNnX2VuY3J5cHRlZF9udW1fZWxlbSAtIDEpOwogCkBAIC0yNDUsMTUgKzI0 NCwxNCBAQCBzdGF0aWMgaW50IHRsc19wdXNoX3JlY29yZChzdHJ1Y3Qgc29jayAqc2ssIGludCBm bGFncywKIAl0bHNfY3R4LT5wZW5kaW5nX29wZW5fcmVjb3JkX2ZyYWdzID0gMDsKIAlzZXRfYml0 KFRMU19QRU5ESU5HX0NMT1NFRF9SRUNPUkQsICZ0bHNfY3R4LT5mbGFncyk7CiAKLQlyYyA9IHRs c19kb19lbmNyeXB0aW9uKHRsc19jdHgsIGN0eCwgY3R4LT5zZ19wbGFpbnRleHRfc2l6ZSwKLQkJ CSAgICAgICBzay0+c2tfYWxsb2NhdGlvbik7CisJcmMgPSB0bHNfZG9fZW5jcnlwdGlvbih0bHNf Y3R4LCBjdHgsIHJlcSwgY3R4LT5zZ19wbGFpbnRleHRfc2l6ZSk7CiAJaWYgKHJjIDwgMCkgewog CQkvKiBJZiB3ZSBhcmUgY2FsbGVkIGZyb20gd3JpdGVfc3BhY2UgYW5kCiAJCSAqIHdlIGZhaWws IHdlIG5lZWQgdG8gc2V0IHRoaXMgU09DS19OT1NQQUNFCiAJCSAqIHRvIHRyaWdnZXIgYW5vdGhl ciB3cml0ZV9zcGFjZSBpbiB0aGUgZnV0dXJlLgogCQkgKi8KIAkJc2V0X2JpdChTT0NLX05PU1BB Q0UsICZzay0+c2tfc29ja2V0LT5mbGFncyk7Ci0JCXJldHVybiByYzsKKwkJZ290byBvdXRfcmVx OwogCX0KIAogCWZyZWVfc2coc2ssIGN0eC0+c2dfcGxhaW50ZXh0X2RhdGEsICZjdHgtPnNnX3Bs YWludGV4dF9udW1fZWxlbSwKQEAgLTI2OCw2ICsyNjYsOCBAQCBzdGF0aWMgaW50IHRsc19wdXNo X3JlY29yZChzdHJ1Y3Qgc29jayAqc2ssIGludCBmbGFncywKIAkJdGxzX2Vycl9hYm9ydChzaywg RUJBRE1TRyk7CiAKIAl0bHNfYWR2YW5jZV9yZWNvcmRfc24oc2ssICZ0bHNfY3R4LT50eCk7Citv dXRfcmVxOgorCWtmcmVlKHJlcSk7CiAJcmV0dXJuIHJjOwogfQogCi0tIAoyLjE3LjEKCgpGcm9t IGE0ODAzODMzODdlMTI0MTg5ZjQ5YTE1NjFkY2I0ZTBkN2UxOTdkN2YgTW9uIFNlcCAxNyAwMDow MDowMCAyMDAxCkZyb206IERhbmllbCBCb3JrbWFubiA8ZGFuaWVsQGlvZ2VhcmJveC5uZXQ+CkRh dGU6IEZyaSwgMTUgSnVuIDIwMTggMDM6MDc6NDYgKzAyMDAKU3ViamVjdDogW1BBVENIIDA5LzE0 XSB0bHM6IGZpeCB3YWl0YWxsIGJlaGF2aW9yIGluIHRsc19zd19yZWN2bXNnCgpbIFVwc3RyZWFt IGNvbW1pdCAwNjAzMGRiYWYzYjZjNTgwMWRjZGI3ZmU0ZmJhYjNiOTFjOGRhODRhIF0KCkN1cnJl bnQgYmVoYXZpb3IgaW4gdGxzX3N3X3JlY3Ztc2coKSBpcyB0byB3YWl0IGZvciBpbmNvbWluZyB0 bHMKbWVzc2FnZXMgYW5kIGNvcHkgdXAgdG8gZXhhY3RseSBsZW4gYnl0ZXMgb2YgZGF0YSB0aGF0 IHRoZSB1c2VyCnByb3ZpZGVkLiBUaGlzIGlzIHByb2JsZW1hdGljIGluIHRoZSBzZW5zZSB0aGF0 IGkpIGlmIG5vIHBhY2tldAppcyBjdXJyZW50bHkgcXVldWVkIGluIHN0cnBhcnNlciB3ZSBrZWVw IHdhaXRpbmcgdW50aWwgb25lIGhhcyBiZWVuCnByb2Nlc3NlZCBhbmQgcHVzaGVkIGludG8gdGxz IHJlY2VpdmUgbGF5ZXIgZm9yIHRsc193YWl0X2RhdGEoKSB0bwp3YWtlIHVwIGFuZCBwdXNoIHRo ZSBkZWNyeXB0ZWQgYml0cyB0byB1c2VyIHNwYWNlLiBHaXZlbiBhZnRlcgp0bHMgZGVjcnlwdGlv biwgd2UncmUgYmFjayBhdCBzdHJlYW1pbmcgZGF0YSwgdXNlIHNvY2tfcmN2bG93YXQoKQpoaW50 IGZyb20gdGNwIHNvY2tldCBpbnN0ZWFkLiBSZXRhaW4gY3VycmVudCBiZWhhdmlvciB3aXRoIE1T R19XQUlUQUxMCmZsYWcgYW5kIG90aGVyd2lzZSB1c2UgdGhlIGhpbnQgdGFyZ2V0IGZvciBicmVh a2luZyB0aGUgbG9vcCBhbmQKcmV0dXJuaW5nIHRvIGFwcGxpY2F0aW9uLiBUaGlzIGlzIGRvbmUg aWYgY3VycmVudGx5IG5vIGN0eC0+cmVjdl9wa3QKaXMgcmVhZHksIG90aGVyd2lzZSBjb250aW51 ZSB0byBwcm9jZXNzIGl0IGZyb20gb3VyIHN0cnBhcnNlcgpiYWNrbG9nLgoKRml4ZXM6IGM0NjIz NGViYjRkMSAoInRsczogUlggcGF0aCBmb3Iga3RscyIpClNpZ25lZC1vZmYtYnk6IERhbmllbCBC b3JrbWFubiA8ZGFuaWVsQGlvZ2VhcmJveC5uZXQ+CkFja2VkLWJ5OiBEYXZlIFdhdHNvbiA8ZGF2 ZWp3YXRzb25AZmIuY29tPgpTaWduZWQtb2ZmLWJ5OiBEYXZpZCBTLiBNaWxsZXIgPGRhdmVtQGRh dmVtbG9mdC5uZXQ+Ci0tLQogbmV0L3Rscy90bHNfc3cuYyB8IDYgKysrKystCiAxIGZpbGUgY2hh bmdlZCwgNSBpbnNlcnRpb25zKCspLCAxIGRlbGV0aW9uKC0pCgpkaWZmIC0tZ2l0IGEvbmV0L3Rs cy90bHNfc3cuYyBiL25ldC90bHMvdGxzX3N3LmMKaW5kZXggYTgwMDE4NTRlYjIzLi41ZmUyOTEy MWI5YTggMTAwNjQ0Ci0tLSBhL25ldC90bHMvdGxzX3N3LmMKKysrIGIvbmV0L3Rscy90bHNfc3cu YwpAQCAtNzU1LDcgKzc1NSw3IEBAIGludCB0bHNfc3dfcmVjdm1zZyhzdHJ1Y3Qgc29jayAqc2ss CiAJc3RydWN0IHNrX2J1ZmYgKnNrYjsKIAlzc2l6ZV90IGNvcGllZCA9IDA7CiAJYm9vbCBjbXNn ID0gZmFsc2U7Ci0JaW50IGVyciA9IDA7CisJaW50IHRhcmdldCwgZXJyID0gMDsKIAlsb25nIHRp bWVvOwogCiAJZmxhZ3MgfD0gbm9uYmxvY2s7CkBAIC03NjUsNiArNzY1LDcgQEAgaW50IHRsc19z d19yZWN2bXNnKHN0cnVjdCBzb2NrICpzaywKIAogCWxvY2tfc29jayhzayk7CiAKKwl0YXJnZXQg PSBzb2NrX3Jjdmxvd2F0KHNrLCBmbGFncyAmIE1TR19XQUlUQUxMLCBsZW4pOwogCXRpbWVvID0g c29ja19yY3Z0aW1lbyhzaywgZmxhZ3MgJiBNU0dfRE9OVFdBSVQpOwogCWRvIHsKIAkJYm9vbCB6 YyA9IGZhbHNlOwpAQCAtODU3LDYgKzg1OCw5IEBAIGludCB0bHNfc3dfcmVjdm1zZyhzdHJ1Y3Qg c29jayAqc2ssCiAJCQkJCWdvdG8gcmVjdl9lbmQ7CiAJCQl9CiAJCX0KKwkJLyogSWYgd2UgaGF2 ZSBhIG5ldyBtZXNzYWdlIGZyb20gc3RycGFyc2VyLCBjb250aW51ZSBub3cuICovCisJCWlmIChj b3BpZWQgPj0gdGFyZ2V0ICYmICFjdHgtPnJlY3ZfcGt0KQorCQkJYnJlYWs7CiAJfSB3aGlsZSAo bGVuKTsKIAogcmVjdl9lbmQ6Ci0tIAoyLjE3LjEKCgpGcm9tIGRiZjFlNDUwZTQ3YTBjN2VlZThl NmM5ZTljNmYyNTljODBkY2Y3ODUgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCkZyb206IENvbmcg V2FuZyA8eGl5b3Uud2FuZ2NvbmdAZ21haWwuY29tPgpEYXRlOiBUaHUsIDcgSnVuIDIwMTggMTM6 Mzk6NDkgLTA3MDAKU3ViamVjdDogW1BBVENIIDEwLzE0XSBzb2NrZXQ6IGNsb3NlIHJhY2UgY29u ZGl0aW9uIGJldHdlZW4gc29ja19jbG9zZSgpIGFuZAogc29ja2ZzX3NldGF0dHIoKQoKWyBVcHN0 cmVhbSBjb21taXQgNmQ4YzUwZGNiMDI5ODcyYjI5OGVlYTY4Y2M2MjA5Yzg2NmZkM2UxNCBdCgpm Y2hvd25hdCgpIGRvZXNuJ3QgZXZlbiBob2xkIHJlZmNudCBvZiBmZCB1bnRpbCBpdCBmaWd1cmVz IG91dApmZCBpcyByZWFsbHkgbmVlZGVkIChvdGhlcndpc2UgaXMgaWdub3JlZCkgYW5kIHJlbGVh c2VzIGl0IGFmdGVyCml0IHJlc29sdmVzIHRoZSBwYXRoLiBUaGlzIG1lYW5zIHNvY2tfY2xvc2Uo KSBjb3VsZCByYWNlIHdpdGgKc29ja2ZzX3NldGF0dHIoKSwgd2hpY2ggbGVhZHMgdG8gYSBOVUxM IHBvaW50ZXIgZGVyZWZlcmVuY2UKc2luY2UgdHlwaWNhbGx5IHdlIHNldCBzb2NrLT5zayB0byBO VUxMIGluIC0+cmVsZWFzZSgpLgoKQXMgcG9pbnRlZCBvdXQgYnkgQWwsIHRoaXMgaXMgdW5pcXVl IHRvIHNvY2tmcy4gU28gd2UgY2FuIGZpeCB0aGlzCmluIHNvY2tldCBsYXllciBieSBhY3F1aXJp bmcgaW5vZGVfbG9jayBpbiBzb2NrX2Nsb3NlKCkgYW5kCmNoZWNraW5nIGFnYWluc3QgTlVMTCBp biBzb2NrZnNfc2V0YXR0cigpLgoKc29ja19yZWxlYXNlKCkgaXMgY2FsbGVkIGluIG1hbnkgcGxh Y2VzLCBvbmx5IHRoZSBzb2NrX2Nsb3NlKCkKcGF0aCBtYXR0ZXJzIGhlcmUuIEFuZCBmb3J0dW5h dGVseSwgdGhpcyBzaG91bGQgbm90IGFmZmVjdCBub3JtYWwKc29ja19jbG9zZSgpIGFzIGl0IGlz IG9ubHkgY2FsbGVkIHdoZW4gdGhlIGxhc3QgZmQgcmVmY250IGlzIGdvbmUuCkl0IG9ubHkgYWZm ZWN0cyBzb2NrX2Nsb3NlKCkgd2l0aCBhIHBhcmFsbGVsIHNvY2tmc19zZXRhdHRyKCkgaW4KcHJv Z3Jlc3MsIHdoaWNoIGlzIG5vdCBjb21tb24uCgpGaXhlczogODY3NDFlYzI1NDYyICgibmV0OiBj b3JlOiBBZGQgYSBVSUQgZmllbGQgdG8gc3RydWN0IHNvY2suIikKUmVwb3J0ZWQtYnk6IHNoYW5r YXJhcGFpbG9vciA8c2hhbmthcmFwYWlsb29yQGdtYWlsLmNvbT4KQ2M6IFRldHN1byBIYW5kYSA8 cGVuZ3Vpbi1rZXJuZWxAaS1sb3ZlLnNha3VyYS5uZS5qcD4KQ2M6IExvcmVuem8gQ29saXR0aSA8 bG9yZW56b0Bnb29nbGUuY29tPgpDYzogQWwgVmlybyA8dmlyb0B6ZW5pdi5saW51eC5vcmcudWs+ ClNpZ25lZC1vZmYtYnk6IENvbmcgV2FuZyA8eGl5b3Uud2FuZ2NvbmdAZ21haWwuY29tPgpTaWdu ZWQtb2ZmLWJ5OiBEYXZpZCBTLiBNaWxsZXIgPGRhdmVtQGRhdmVtbG9mdC5uZXQ+Ci0tLQogbmV0 L3NvY2tldC5jIHwgMTggKysrKysrKysrKysrKysrLS0tCiAxIGZpbGUgY2hhbmdlZCwgMTUgaW5z ZXJ0aW9ucygrKSwgMyBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9uZXQvc29ja2V0LmMgYi9u ZXQvc29ja2V0LmMKaW5kZXggZjEwZjFkOTQ3Yzc4Li5kMWIwMmYxNjE0MjkgMTAwNjQ0Ci0tLSBh L25ldC9zb2NrZXQuYworKysgYi9uZXQvc29ja2V0LmMKQEAgLTUzNyw3ICs1MzcsMTAgQEAgc3Rh dGljIGludCBzb2NrZnNfc2V0YXR0cihzdHJ1Y3QgZGVudHJ5ICpkZW50cnksIHN0cnVjdCBpYXR0 ciAqaWF0dHIpCiAJaWYgKCFlcnIgJiYgKGlhdHRyLT5pYV92YWxpZCAmIEFUVFJfVUlEKSkgewog CQlzdHJ1Y3Qgc29ja2V0ICpzb2NrID0gU09DS0VUX0koZF9pbm9kZShkZW50cnkpKTsKIAotCQlz b2NrLT5zay0+c2tfdWlkID0gaWF0dHItPmlhX3VpZDsKKwkJaWYgKHNvY2stPnNrKQorCQkJc29j ay0+c2stPnNrX3VpZCA9IGlhdHRyLT5pYV91aWQ7CisJCWVsc2UKKwkJCWVyciA9IC1FTk9FTlQ7 CiAJfQogCiAJcmV0dXJuIGVycjsKQEAgLTU4NiwxMiArNTg5LDE2IEBAIEVYUE9SVF9TWU1CT0wo c29ja19hbGxvYyk7CiAgKglhbiBpbm9kZSBub3QgYSBmaWxlLgogICovCiAKLXZvaWQgc29ja19y ZWxlYXNlKHN0cnVjdCBzb2NrZXQgKnNvY2spCitzdGF0aWMgdm9pZCBfX3NvY2tfcmVsZWFzZShz dHJ1Y3Qgc29ja2V0ICpzb2NrLCBzdHJ1Y3QgaW5vZGUgKmlub2RlKQogewogCWlmIChzb2NrLT5v cHMpIHsKIAkJc3RydWN0IG1vZHVsZSAqb3duZXIgPSBzb2NrLT5vcHMtPm93bmVyOwogCisJCWlm IChpbm9kZSkKKwkJCWlub2RlX2xvY2soaW5vZGUpOwogCQlzb2NrLT5vcHMtPnJlbGVhc2Uoc29j ayk7CisJCWlmIChpbm9kZSkKKwkJCWlub2RlX3VubG9jayhpbm9kZSk7CiAJCXNvY2stPm9wcyA9 IE5VTEw7CiAJCW1vZHVsZV9wdXQob3duZXIpOwogCX0KQEAgLTYwNSw2ICs2MTIsMTEgQEAgdm9p ZCBzb2NrX3JlbGVhc2Uoc3RydWN0IHNvY2tldCAqc29jaykKIAl9CiAJc29jay0+ZmlsZSA9IE5V TEw7CiB9CisKK3ZvaWQgc29ja19yZWxlYXNlKHN0cnVjdCBzb2NrZXQgKnNvY2spCit7CisJX19z b2NrX3JlbGVhc2Uoc29jaywgTlVMTCk7Cit9CiBFWFBPUlRfU1lNQk9MKHNvY2tfcmVsZWFzZSk7 CiAKIHZvaWQgX19zb2NrX3R4X3RpbWVzdGFtcChfX3UxNiB0c2ZsYWdzLCBfX3U4ICp0eF9mbGFn cykKQEAgLTExNDYsNyArMTE1OCw3IEBAIHN0YXRpYyBpbnQgc29ja19tbWFwKHN0cnVjdCBmaWxl ICpmaWxlLCBzdHJ1Y3Qgdm1fYXJlYV9zdHJ1Y3QgKnZtYSkKIAogc3RhdGljIGludCBzb2NrX2Ns b3NlKHN0cnVjdCBpbm9kZSAqaW5vZGUsIHN0cnVjdCBmaWxlICpmaWxwKQogewotCXNvY2tfcmVs ZWFzZShTT0NLRVRfSShpbm9kZSkpOworCV9fc29ja19yZWxlYXNlKFNPQ0tFVF9JKGlub2RlKSwg aW5vZGUpOwogCXJldHVybiAwOwogfQogCi0tIAoyLjE3LjEKCgpGcm9tIGY3ZDJmYjg1ODlhYWFl YjlkZWFlZDYxNDM5OWVmZWEzY2U5MzZkYmIgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCkZyb206 IFBhb2xvIEFiZW5pIDxwYWJlbmlAcmVkaGF0LmNvbT4KRGF0ZTogRnJpLCA4IEp1biAyMDE4IDEx OjM1OjQwICswMjAwClN1YmplY3Q6IFtQQVRDSCAxMS8xNF0gdWRwOiBmaXggcnggcXVldWUgbGVu IHJlcG9ydGVkIGJ5IGRpYWcgYW5kIHByb2MKIGludGVyZmFjZQoKWyBVcHN0cmVhbSBjb21taXQg NmMyMDZiMjAwOTJhMzYyMzE4NGNmZjk0NzBkYmE3NWQyMTUwNzg3NCBdCgpBZnRlciBjb21taXQg NmIyMjljZjc3ZDY4ICgidWRwOiBhZGQgYmF0Y2hpbmcgdG8gdWRwX3JtZW1fcmVsZWFzZSgpIikK dGhlIHNrX3JtZW1fYWxsb2MgZmllbGQgZG9lcyBub3QgbWVhc3VyZSBleGFjdGx5IGFueW1vcmUg dGhlCnJlY2VpdmUgcXVldWUgbGVuZ3RoLCBiZWNhdXNlIHdlIGJhdGNoIHRoZSBybWVtIHJlbGVh c2UuIFRoZSBpc3N1ZQppcyByZWFsbHkgYXBwYXJlbnQgb25seSBhZnRlciBjb21taXQgMGQ0YTY2 MDhmNjhjICgidWRwOiBkbyBybWVtIGJ1bGsKZnJlZSBldmVuIGlmIHRoZSByeCBzayBxdWV1ZSBp cyBlbXB0eSIpOiB0aGUgdXNlciBzcGFjZSBjYW4gZWFzaWx5CmNoZWNrIGZvciBhbiBlbXB0eSBz b2NrZXQgd2l0aCBub3QtMCBxdWV1ZSBsZW5ndGggcmVwb3J0ZWQgYnkgdGhlICdzcycKdG9vbCBv ciB0aGUgcHJvY2ZzIGludGVyZmFjZS4KCldlIG5lZWQgdG8gdXNlIGEgY3VzdG9tIFVEUCBoZWxw ZXIgdG8gcmVwb3J0IHRoZSBjb3JyZWN0IHF1ZXVlIGxlbmd0aCwKdGFraW5nIGludG8gYWNjb3Vu dCB0aGUgZm9yd2FyZCBhbGxvY2F0aW9uIGRlZmljaXQuCgpSZXBvcnRlZC1ieTogdHJldm9yLmZy YW5jaXNANDZsYWJzLmNvbQpGaXhlczogNmIyMjljZjc3ZDY4ICgiVURQOiBhZGQgYmF0Y2hpbmcg dG8gdWRwX3JtZW1fcmVsZWFzZSgpIikKU2lnbmVkLW9mZi1ieTogUGFvbG8gQWJlbmkgPHBhYmVu aUByZWRoYXQuY29tPgpTaWduZWQtb2ZmLWJ5OiBEYXZpZCBTLiBNaWxsZXIgPGRhdmVtQGRhdmVt bG9mdC5uZXQ+Ci0tLQogaW5jbHVkZS9uZXQvdHJhbnNwX3Y2LmggfCAxMSArKysrKysrKystLQog aW5jbHVkZS9uZXQvdWRwLmggICAgICAgfCAgNSArKysrKwogbmV0L2lwdjQvdWRwLmMgICAgICAg ICAgfCAgMiArLQogbmV0L2lwdjQvdWRwX2RpYWcuYyAgICAgfCAgMiArLQogbmV0L2lwdjYvZGF0 YWdyYW0uYyAgICAgfCAgNiArKystLS0KIG5ldC9pcHY2L3VkcC5jICAgICAgICAgIHwgIDMgKyst CiA2IGZpbGVzIGNoYW5nZWQsIDIxIGluc2VydGlvbnMoKyksIDggZGVsZXRpb25zKC0pCgpkaWZm IC0tZ2l0IGEvaW5jbHVkZS9uZXQvdHJhbnNwX3Y2LmggYi9pbmNsdWRlL25ldC90cmFuc3BfdjYu aAppbmRleCBjNGY1Y2FhZjM3NzguLmY2YTM1NDNlNTI0NyAxMDA2NDQKLS0tIGEvaW5jbHVkZS9u ZXQvdHJhbnNwX3Y2LmgKKysrIGIvaW5jbHVkZS9uZXQvdHJhbnNwX3Y2LmgKQEAgLTQ1LDggKzQ1 LDE1IEBAIGludCBpcDZfZGF0YWdyYW1fc2VuZF9jdGwoc3RydWN0IG5ldCAqbmV0LCBzdHJ1Y3Qg c29jayAqc2ssIHN0cnVjdCBtc2doZHIgKm1zZywKIAkJCSAgc3RydWN0IGZsb3dpNiAqZmw2LCBz dHJ1Y3QgaXBjbTZfY29va2llICppcGM2LAogCQkJICBzdHJ1Y3Qgc29ja2NtX2Nvb2tpZSAqc29j a2MpOwogCi12b2lkIGlwNl9kZ3JhbV9zb2NrX3NlcV9zaG93KHN0cnVjdCBzZXFfZmlsZSAqc2Vx LCBzdHJ1Y3Qgc29jayAqc3AsCi0JCQkgICAgIF9fdTE2IHNyY3AsIF9fdTE2IGRlc3RwLCBpbnQg YnVja2V0KTsKK3ZvaWQgX19pcDZfZGdyYW1fc29ja19zZXFfc2hvdyhzdHJ1Y3Qgc2VxX2ZpbGUg KnNlcSwgc3RydWN0IHNvY2sgKnNwLAorCQkJICAgICAgIF9fdTE2IHNyY3AsIF9fdTE2IGRlc3Rw LCBpbnQgcnF1ZXVlLCBpbnQgYnVja2V0KTsKK3N0YXRpYyBpbmxpbmUgdm9pZAoraXA2X2RncmFt X3NvY2tfc2VxX3Nob3coc3RydWN0IHNlcV9maWxlICpzZXEsIHN0cnVjdCBzb2NrICpzcCwgX191 MTYgc3JjcCwKKwkJCV9fdTE2IGRlc3RwLCBpbnQgYnVja2V0KQoreworCV9faXA2X2RncmFtX3Nv Y2tfc2VxX3Nob3coc2VxLCBzcCwgc3JjcCwgZGVzdHAsIHNrX3JtZW1fYWxsb2NfZ2V0KHNwKSwK KwkJCQkgIGJ1Y2tldCk7Cit9CiAKICNkZWZpbmUgTE9PUEJBQ0s0X0lQVjYgY3B1X3RvX2JlMzIo MHg3ZjAwMDAwNikKIApkaWZmIC0tZ2l0IGEvaW5jbHVkZS9uZXQvdWRwLmggYi9pbmNsdWRlL25l dC91ZHAuaAppbmRleCAwNjc2YjI3MmY2YWMuLjFkYjg1ZGNiMDZmNiAxMDA2NDQKLS0tIGEvaW5j bHVkZS9uZXQvdWRwLmgKKysrIGIvaW5jbHVkZS9uZXQvdWRwLmgKQEAgLTI0NCw2ICsyNDQsMTEg QEAgc3RhdGljIGlubGluZSBfX2JlMTYgdWRwX2Zsb3dfc3JjX3BvcnQoc3RydWN0IG5ldCAqbmV0 LCBzdHJ1Y3Qgc2tfYnVmZiAqc2tiLAogCXJldHVybiBodG9ucygoKCh1NjQpIGhhc2ggKiAobWF4 IC0gbWluKSkgPj4gMzIpICsgbWluKTsKIH0KIAorc3RhdGljIGlubGluZSBpbnQgdWRwX3JxdWV1 ZV9nZXQoc3RydWN0IHNvY2sgKnNrKQoreworCXJldHVybiBza19ybWVtX2FsbG9jX2dldChzaykg LSBSRUFEX09OQ0UodWRwX3NrKHNrKS0+Zm9yd2FyZF9kZWZpY2l0KTsKK30KKwogLyogbmV0L2lw djQvdWRwLmMgKi8KIHZvaWQgdWRwX2Rlc3RydWN0X3NvY2soc3RydWN0IHNvY2sgKnNrKTsKIHZv aWQgc2tiX2NvbnN1bWVfdWRwKHN0cnVjdCBzb2NrICpzaywgc3RydWN0IHNrX2J1ZmYgKnNrYiwg aW50IGxlbik7CmRpZmYgLS1naXQgYS9uZXQvaXB2NC91ZHAuYyBiL25ldC9pcHY0L3VkcC5jCmlu ZGV4IGI2MWE3NzA4ODRmYS4uNWY3YmM1YzYzNjZhIDEwMDY0NAotLS0gYS9uZXQvaXB2NC91ZHAu YworKysgYi9uZXQvaXB2NC91ZHAuYwpAQCAtMjcxOCw3ICsyNzE4LDcgQEAgc3RhdGljIHZvaWQg dWRwNF9mb3JtYXRfc29jayhzdHJ1Y3Qgc29jayAqc3AsIHN0cnVjdCBzZXFfZmlsZSAqZiwKIAkJ IiAlMDJYICUwOFg6JTA4WCAlMDJYOiUwOGxYICUwOFggJTV1ICU4ZCAlbHUgJWQgJXBLICVkIiwK IAkJYnVja2V0LCBzcmMsIHNyY3AsIGRlc3QsIGRlc3RwLCBzcC0+c2tfc3RhdGUsCiAJCXNrX3dt ZW1fYWxsb2NfZ2V0KHNwKSwKLQkJc2tfcm1lbV9hbGxvY19nZXQoc3ApLAorCQl1ZHBfcnF1ZXVl X2dldChzcCksCiAJCTAsIDBMLCAwLAogCQlmcm9tX2t1aWRfbXVuZ2VkKHNlcV91c2VyX25zKGYp LCBzb2NrX2lfdWlkKHNwKSksCiAJCTAsIHNvY2tfaV9pbm8oc3ApLApkaWZmIC0tZ2l0IGEvbmV0 L2lwdjQvdWRwX2RpYWcuYyBiL25ldC9pcHY0L3VkcF9kaWFnLmMKaW5kZXggZDAzOTBkODQ0YWM4 Li5kOWFkOTg2YzdiMmMgMTAwNjQ0Ci0tLSBhL25ldC9pcHY0L3VkcF9kaWFnLmMKKysrIGIvbmV0 L2lwdjQvdWRwX2RpYWcuYwpAQCAtMTYzLDcgKzE2Myw3IEBAIHN0YXRpYyBpbnQgdWRwX2RpYWdf ZHVtcF9vbmUoc3RydWN0IHNrX2J1ZmYgKmluX3NrYiwgY29uc3Qgc3RydWN0IG5sbXNnaGRyICpu bGgsCiBzdGF0aWMgdm9pZCB1ZHBfZGlhZ19nZXRfaW5mbyhzdHJ1Y3Qgc29jayAqc2ssIHN0cnVj dCBpbmV0X2RpYWdfbXNnICpyLAogCQl2b2lkICppbmZvKQogewotCXItPmlkaWFnX3JxdWV1ZSA9 IHNrX3JtZW1fYWxsb2NfZ2V0KHNrKTsKKwlyLT5pZGlhZ19ycXVldWUgPSB1ZHBfcnF1ZXVlX2dl dChzayk7CiAJci0+aWRpYWdfd3F1ZXVlID0gc2tfd21lbV9hbGxvY19nZXQoc2spOwogfQogCmRp ZmYgLS1naXQgYS9uZXQvaXB2Ni9kYXRhZ3JhbS5jIGIvbmV0L2lwdjYvZGF0YWdyYW0uYwppbmRl eCBhMDJhZDEwMGYwZDcuLjJlZTA4YjZhODZhNCAxMDA2NDQKLS0tIGEvbmV0L2lwdjYvZGF0YWdy YW0uYworKysgYi9uZXQvaXB2Ni9kYXRhZ3JhbS5jCkBAIC0xMDE5LDggKzEwMTksOCBAQCBpbnQg aXA2X2RhdGFncmFtX3NlbmRfY3RsKHN0cnVjdCBuZXQgKm5ldCwgc3RydWN0IHNvY2sgKnNrLAog fQogRVhQT1JUX1NZTUJPTF9HUEwoaXA2X2RhdGFncmFtX3NlbmRfY3RsKTsKIAotdm9pZCBpcDZf ZGdyYW1fc29ja19zZXFfc2hvdyhzdHJ1Y3Qgc2VxX2ZpbGUgKnNlcSwgc3RydWN0IHNvY2sgKnNw LAotCQkJICAgICBfX3UxNiBzcmNwLCBfX3UxNiBkZXN0cCwgaW50IGJ1Y2tldCkKK3ZvaWQgX19p cDZfZGdyYW1fc29ja19zZXFfc2hvdyhzdHJ1Y3Qgc2VxX2ZpbGUgKnNlcSwgc3RydWN0IHNvY2sg KnNwLAorCQkJICAgICAgIF9fdTE2IHNyY3AsIF9fdTE2IGRlc3RwLCBpbnQgcnF1ZXVlLCBpbnQg YnVja2V0KQogewogCWNvbnN0IHN0cnVjdCBpbjZfYWRkciAqZGVzdCwgKnNyYzsKIApAQCAtMTAz Niw3ICsxMDM2LDcgQEAgdm9pZCBpcDZfZGdyYW1fc29ja19zZXFfc2hvdyhzdHJ1Y3Qgc2VxX2Zp bGUgKnNlcSwgc3RydWN0IHNvY2sgKnNwLAogCQkgICBkZXN0LT5zNl9hZGRyMzJbMl0sIGRlc3Qt PnM2X2FkZHIzMlszXSwgZGVzdHAsCiAJCSAgIHNwLT5za19zdGF0ZSwKIAkJICAgc2tfd21lbV9h bGxvY19nZXQoc3ApLAotCQkgICBza19ybWVtX2FsbG9jX2dldChzcCksCisJCSAgIHJxdWV1ZSwK IAkJICAgMCwgMEwsIDAsCiAJCSAgIGZyb21fa3VpZF9tdW5nZWQoc2VxX3VzZXJfbnMoc2VxKSwg c29ja19pX3VpZChzcCkpLAogCQkgICAwLApkaWZmIC0tZ2l0IGEvbmV0L2lwdjYvdWRwLmMgYi9u ZXQvaXB2Ni91ZHAuYwppbmRleCBlYTA3MzAwMjhlNWQuLjk3N2JkNWEwN2NhYiAxMDA2NDQKLS0t IGEvbmV0L2lwdjYvdWRwLmMKKysrIGIvbmV0L2lwdjYvdWRwLmMKQEAgLTE0NzUsNyArMTQ3NSw4 IEBAIGludCB1ZHA2X3NlcV9zaG93KHN0cnVjdCBzZXFfZmlsZSAqc2VxLCB2b2lkICp2KQogCQlz dHJ1Y3QgaW5ldF9zb2NrICppbmV0ID0gaW5ldF9zayh2KTsKIAkJX191MTYgc3JjcCA9IG50b2hz KGluZXQtPmluZXRfc3BvcnQpOwogCQlfX3UxNiBkZXN0cCA9IG50b2hzKGluZXQtPmluZXRfZHBv cnQpOwotCQlpcDZfZGdyYW1fc29ja19zZXFfc2hvdyhzZXEsIHYsIHNyY3AsIGRlc3RwLCBidWNr ZXQpOworCQlfX2lwNl9kZ3JhbV9zb2NrX3NlcV9zaG93KHNlcSwgdiwgc3JjcCwgZGVzdHAsCisJ CQkJCSAgdWRwX3JxdWV1ZV9nZXQodiksIGJ1Y2tldCk7CiAJfQogCXJldHVybiAwOwogfQotLSAK Mi4xNy4xCgoKRnJvbSBjNjNmMDZhZmFkMDA2MzFmYjdmOTA2OWE0ZDhlYzM5YjY3MDNkZDJmIE1v biBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBXaWxsZW0gZGUgQnJ1aWpuIDx3aWxsZW1iQGdv b2dsZS5jb20+CkRhdGU6IFdlZCwgNiBKdW4gMjAxOCAxMToyMzowMSAtMDQwMApTdWJqZWN0OiBb UEFUQ0ggMTIvMTRdIG5ldDogaW4gdmlydGlvX25ldF9oZHIgb25seSBhZGQgVkxBTl9ITEVOIHRv IGNzdW1fc3RhcnQKIGlmIHBheWxvYWQgaG9sZHMgdmxhbgoKWyBVcHN0cmVhbSBjb21taXQgZmQz YTg4NjI1ODQ0OTA3MTUxNzM3ZmMzYjQyMDE2NzZlZmZhNmQyNyBdCgpUdW4sIHRhcCwgdmlydGlv LCBwYWNrZXQgYW5kIHVtbCB2ZWN0b3IgYWxsIHVzZSBzdHJ1Y3QgdmlydGlvX25ldF9oZHIKdG8g Y29tbXVuaWNhdGUgcGFja2V0IG1ldGFkYXRhIHRvIHVzZXJzcGFjZS4KCkZvciBza2J1ZmZzIHdp dGggdmxhbiwgdGhlIGZpcnN0IHR3byByZXR1cm4gdGhlIHBhY2tldCBhcyBpdCBtYXkgaGF2ZQpl eGlzdGVkIG9uIHRoZSB3aXJlLCBpbnNlcnRpbmcgdGhlIFZMQU4gdGFnIGluIHRoZSB1c2VyIGJ1 ZmZlci4gIFRoZW4KdmlydGlvX25ldF9oZHIuY3N1bV9zdGFydCBuZWVkcyB0byBiZSBhZGp1c3Rl ZCBieSBWTEFOX0hMRU4gYnl0ZXMuCgpDb21taXQgZjA5ZTIyNDljNGY1ICgibWFjdnRhcDogcmVz dG9yZSB2bGFuIGhlYWRlciBvbiB1c2VyIHJlYWQiKQphZGRlZCB0aGlzIGZlYXR1cmUgdG8gbWFj dnRhcC4gQ29tbWl0IDNjZTliMjBmMTk3MSAoIm1hY3Z0YXA6IEZpeApjc3VtX3N0YXJ0IHdoZW4g VkxBTiB0YWdzIGFyZSBwcmVzZW50IikgdGhlbiBmaXhlZCB1cCBjc3VtX3N0YXJ0LgoKVmlydGlv LCBwYWNrZXQgYW5kIHVtbCBkbyBub3QgaW5zZXJ0IHRoZSB2bGFuIGhlYWRlciBpbiB0aGUgdXNl cgpidWZmZXIuCgpXaGVuIGludHJvZHVjaW5nIHZpcnRpb19uZXRfaGRyX2Zyb21fc2tiIHRvIGRl ZHVwbGljYXRlIGZpbGxpbmcgaW4KdGhlIHZpcnRpb19uZXRfaGRyLCB0aGUgdmFyaWFudCBmcm9t IG1hY3Z0YXAgd2hpY2ggYWRkcyBWTEFOX0hMRU4gd2FzCmFwcGxpZWQgdW5pZm9ybWx5LCBicmVh a2luZyBjc3VtIG9mZnNldCBmb3IgcGFja2V0cyB3aXRoIHZsYW4gb24KdmlydGlvIGFuZCBwYWNr ZXQuCgpNYWtlIGluc2VydGlvbiBvZiBWTEFOX0hMRU4gb3B0aW9uYWwuIENvbnZlcnQgdGhlIGNh bGxlcnMgdG8gcGFzcyBpdAp3aGVuIG5lZWRlZC4KCkZpeGVzOiBlODU4ZmFlMmIwYjhmNCAoInZp cnRpb19uZXQ6IHVzZSBjb21tb24gY29kZSBmb3IgdmlydGlvX25ldF9oZHIgYW5kIHNrYiBHU08g Y29udmVyc2lvbiIpCkZpeGVzOiAxMjc2ZjI0ZWVlZjIgKCJwYWNrZXQ6IHVzZSBjb21tb24gY29k ZSBmb3IgdmlydGlvX25ldF9oZHIgYW5kIHNrYiBHU08gY29udmVyc2lvbiIpClNpZ25lZC1vZmYt Ynk6IFdpbGxlbSBkZSBCcnVpam4gPHdpbGxlbWJAZ29vZ2xlLmNvbT4KU2lnbmVkLW9mZi1ieTog RGF2aWQgUy4gTWlsbGVyIDxkYXZlbUBkYXZlbWxvZnQubmV0PgotLS0KIGFyY2gvdW0vZHJpdmVy cy92ZWN0b3JfdHJhbnNwb3J0cy5jIHwgIDMgKystCiBkcml2ZXJzL25ldC90YXAuYyAgICAgICAg ICAgICAgICAgICB8ICA1ICsrKystCiBkcml2ZXJzL25ldC90dW4uYyAgICAgICAgICAgICAgICAg ICB8ICAzICsrLQogZHJpdmVycy9uZXQvdmlydGlvX25ldC5jICAgICAgICAgICAgfCAgMyArKy0K IGluY2x1ZGUvbGludXgvdmlydGlvX25ldC5oICAgICAgICAgIHwgMTEgKysrKy0tLS0tLS0KIG5l dC9wYWNrZXQvYWZfcGFja2V0LmMgICAgICAgICAgICAgIHwgIDQgKystLQogNiBmaWxlcyBjaGFu Z2VkLCAxNiBpbnNlcnRpb25zKCspLCAxMyBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9hcmNo L3VtL2RyaXZlcnMvdmVjdG9yX3RyYW5zcG9ydHMuYyBiL2FyY2gvdW0vZHJpdmVycy92ZWN0b3Jf dHJhbnNwb3J0cy5jCmluZGV4IDkwNjUwNDdmODQ0Yi4uNzdlNGViYzIwNmFlIDEwMDY0NAotLS0g YS9hcmNoL3VtL2RyaXZlcnMvdmVjdG9yX3RyYW5zcG9ydHMuYworKysgYi9hcmNoL3VtL2RyaXZl cnMvdmVjdG9yX3RyYW5zcG9ydHMuYwpAQCAtMTIwLDcgKzEyMCw4IEBAIHN0YXRpYyBpbnQgcmF3 X2Zvcm1faGVhZGVyKHVpbnQ4X3QgKmhlYWRlciwKIAkJc2tiLAogCQl2aGVhZGVyLAogCQl2aXJ0 aW9fbGVnYWN5X2lzX2xpdHRsZV9lbmRpYW4oKSwKLQkJZmFsc2UKKwkJZmFsc2UsCisJCTAKIAkp OwogCiAJcmV0dXJuIDA7CmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC90YXAuYyBiL2RyaXZlcnMv bmV0L3RhcC5jCmluZGV4IDliNmNiNzgwYWZmZS4uZjBmN2NkOTc3NjY3IDEwMDY0NAotLS0gYS9k cml2ZXJzL25ldC90YXAuYworKysgYi9kcml2ZXJzL25ldC90YXAuYwpAQCAtNzc0LDEzICs3NzQs MTYgQEAgc3RhdGljIHNzaXplX3QgdGFwX3B1dF91c2VyKHN0cnVjdCB0YXBfcXVldWUgKnEsCiAJ aW50IHRvdGFsOwogCiAJaWYgKHEtPmZsYWdzICYgSUZGX1ZORVRfSERSKSB7CisJCWludCB2bGFu X2hsZW4gPSBza2Jfdmxhbl90YWdfcHJlc2VudChza2IpID8gVkxBTl9ITEVOIDogMDsKIAkJc3Ry dWN0IHZpcnRpb19uZXRfaGRyIHZuZXRfaGRyOworCiAJCXZuZXRfaGRyX2xlbiA9IFJFQURfT05D RShxLT52bmV0X2hkcl9zeik7CiAJCWlmIChpb3ZfaXRlcl9jb3VudChpdGVyKSA8IHZuZXRfaGRy X2xlbikKIAkJCXJldHVybiAtRUlOVkFMOwogCiAJCWlmICh2aXJ0aW9fbmV0X2hkcl9mcm9tX3Nr Yihza2IsICZ2bmV0X2hkciwKLQkJCQkJICAgIHRhcF9pc19saXR0bGVfZW5kaWFuKHEpLCB0cnVl KSkKKwkJCQkJICAgIHRhcF9pc19saXR0bGVfZW5kaWFuKHEpLCB0cnVlLAorCQkJCQkgICAgdmxh bl9obGVuKSkKIAkJCUJVRygpOwogCiAJCWlmIChjb3B5X3RvX2l0ZXIoJnZuZXRfaGRyLCBzaXpl b2Yodm5ldF9oZHIpLCBpdGVyKSAhPQpkaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvdHVuLmMgYi9k cml2ZXJzL25ldC90dW4uYwppbmRleCAyM2U5ZWI2NjE5N2YuLjQwOWViOGI3NDc0MCAxMDA2NDQK LS0tIGEvZHJpdmVycy9uZXQvdHVuLmMKKysrIGIvZHJpdmVycy9uZXQvdHVuLmMKQEAgLTIwNzgs NyArMjA3OCw4IEBAIHN0YXRpYyBzc2l6ZV90IHR1bl9wdXRfdXNlcihzdHJ1Y3QgdHVuX3N0cnVj dCAqdHVuLAogCQkJcmV0dXJuIC1FSU5WQUw7CiAKIAkJaWYgKHZpcnRpb19uZXRfaGRyX2Zyb21f c2tiKHNrYiwgJmdzbywKLQkJCQkJICAgIHR1bl9pc19saXR0bGVfZW5kaWFuKHR1biksIHRydWUp KSB7CisJCQkJCSAgICB0dW5faXNfbGl0dGxlX2VuZGlhbih0dW4pLCB0cnVlLAorCQkJCQkgICAg dmxhbl9obGVuKSkgewogCQkJc3RydWN0IHNrYl9zaGFyZWRfaW5mbyAqc2luZm8gPSBza2Jfc2hp bmZvKHNrYik7CiAJCQlwcl9lcnIoInVuZXhwZWN0ZWQgR1NPIHR5cGU6ICIKIAkJCSAgICAgICAi MHgleCwgZ3NvX3NpemUgJWQsIGhkcl9sZW4gJWRcbiIsCmRpZmYgLS1naXQgYS9kcml2ZXJzL25l dC92aXJ0aW9fbmV0LmMgYi9kcml2ZXJzL25ldC92aXJ0aW9fbmV0LmMKaW5kZXggMDMyZTFhYzEw YTMwLi44YzcyMDc1MzUxNzkgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvbmV0L3ZpcnRpb19uZXQuYwor KysgYi9kcml2ZXJzL25ldC92aXJ0aW9fbmV0LmMKQEAgLTEzNTgsNyArMTM1OCw4IEBAIHN0YXRp YyBpbnQgeG1pdF9za2Ioc3RydWN0IHNlbmRfcXVldWUgKnNxLCBzdHJ1Y3Qgc2tfYnVmZiAqc2ti KQogCQloZHIgPSBza2Jfdm5ldF9oZHIoc2tiKTsKIAogCWlmICh2aXJ0aW9fbmV0X2hkcl9mcm9t X3NrYihza2IsICZoZHItPmhkciwKLQkJCQkgICAgdmlydGlvX2lzX2xpdHRsZV9lbmRpYW4odmkt PnZkZXYpLCBmYWxzZSkpCisJCQkJICAgIHZpcnRpb19pc19saXR0bGVfZW5kaWFuKHZpLT52ZGV2 KSwgZmFsc2UsCisJCQkJICAgIDApKQogCQlCVUcoKTsKIAogCWlmICh2aS0+bWVyZ2VhYmxlX3J4 X2J1ZnMpCmRpZmYgLS1naXQgYS9pbmNsdWRlL2xpbnV4L3ZpcnRpb19uZXQuaCBiL2luY2x1ZGUv bGludXgvdmlydGlvX25ldC5oCmluZGV4IGYxNDQyMTZmZWJjNi4uOTM5NzYyOGExOTY3IDEwMDY0 NAotLS0gYS9pbmNsdWRlL2xpbnV4L3ZpcnRpb19uZXQuaAorKysgYi9pbmNsdWRlL2xpbnV4L3Zp cnRpb19uZXQuaApAQCAtNTgsNyArNTgsOCBAQCBzdGF0aWMgaW5saW5lIGludCB2aXJ0aW9fbmV0 X2hkcl90b19za2Ioc3RydWN0IHNrX2J1ZmYgKnNrYiwKIHN0YXRpYyBpbmxpbmUgaW50IHZpcnRp b19uZXRfaGRyX2Zyb21fc2tiKGNvbnN0IHN0cnVjdCBza19idWZmICpza2IsCiAJCQkJCSAgc3Ry dWN0IHZpcnRpb19uZXRfaGRyICpoZHIsCiAJCQkJCSAgYm9vbCBsaXR0bGVfZW5kaWFuLAotCQkJ CQkgIGJvb2wgaGFzX2RhdGFfdmFsaWQpCisJCQkJCSAgYm9vbCBoYXNfZGF0YV92YWxpZCwKKwkJ CQkJICBpbnQgdmxhbl9obGVuKQogewogCW1lbXNldChoZHIsIDAsIHNpemVvZigqaGRyKSk7ICAg Lyogbm8gaW5mbyBsZWFrICovCiAKQEAgLTgzLDEyICs4NCw4IEBAIHN0YXRpYyBpbmxpbmUgaW50 IHZpcnRpb19uZXRfaGRyX2Zyb21fc2tiKGNvbnN0IHN0cnVjdCBza19idWZmICpza2IsCiAKIAlp ZiAoc2tiLT5pcF9zdW1tZWQgPT0gQ0hFQ0tTVU1fUEFSVElBTCkgewogCQloZHItPmZsYWdzID0g VklSVElPX05FVF9IRFJfRl9ORUVEU19DU1VNOwotCQlpZiAoc2tiX3ZsYW5fdGFnX3ByZXNlbnQo c2tiKSkKLQkJCWhkci0+Y3N1bV9zdGFydCA9IF9fY3B1X3RvX3ZpcnRpbzE2KGxpdHRsZV9lbmRp YW4sCi0JCQkJc2tiX2NoZWNrc3VtX3N0YXJ0X29mZnNldChza2IpICsgVkxBTl9ITEVOKTsKLQkJ ZWxzZQotCQkJaGRyLT5jc3VtX3N0YXJ0ID0gX19jcHVfdG9fdmlydGlvMTYobGl0dGxlX2VuZGlh biwKLQkJCQlza2JfY2hlY2tzdW1fc3RhcnRfb2Zmc2V0KHNrYikpOworCQloZHItPmNzdW1fc3Rh cnQgPSBfX2NwdV90b192aXJ0aW8xNihsaXR0bGVfZW5kaWFuLAorCQkJc2tiX2NoZWNrc3VtX3N0 YXJ0X29mZnNldChza2IpICsgdmxhbl9obGVuKTsKIAkJaGRyLT5jc3VtX29mZnNldCA9IF9fY3B1 X3RvX3ZpcnRpbzE2KGxpdHRsZV9lbmRpYW4sCiAJCQkJc2tiLT5jc3VtX29mZnNldCk7CiAJfSBl bHNlIGlmIChoYXNfZGF0YV92YWxpZCAmJgpkaWZmIC0tZ2l0IGEvbmV0L3BhY2tldC9hZl9wYWNr ZXQuYyBiL25ldC9wYWNrZXQvYWZfcGFja2V0LmMKaW5kZXggNjBjMmEyNTJiZGY1Li4zOGQxMzJk MDA3YmEgMTAwNjQ0Ci0tLSBhL25ldC9wYWNrZXQvYWZfcGFja2V0LmMKKysrIGIvbmV0L3BhY2tl dC9hZl9wYWNrZXQuYwpAQCAtMjAzNyw3ICsyMDM3LDcgQEAgc3RhdGljIGludCBwYWNrZXRfcmN2 X3ZuZXQoc3RydWN0IG1zZ2hkciAqbXNnLCBjb25zdCBzdHJ1Y3Qgc2tfYnVmZiAqc2tiLAogCQly ZXR1cm4gLUVJTlZBTDsKIAkqbGVuIC09IHNpemVvZih2bmV0X2hkcik7CiAKLQlpZiAodmlydGlv X25ldF9oZHJfZnJvbV9za2Ioc2tiLCAmdm5ldF9oZHIsIHZpb19sZSgpLCB0cnVlKSkKKwlpZiAo dmlydGlvX25ldF9oZHJfZnJvbV9za2Ioc2tiLCAmdm5ldF9oZHIsIHZpb19sZSgpLCB0cnVlLCAw KSkKIAkJcmV0dXJuIC1FSU5WQUw7CiAKIAlyZXR1cm4gbWVtY3B5X3RvX21zZyhtc2csICh2b2lk ICopJnZuZXRfaGRyLCBzaXplb2Yodm5ldF9oZHIpKTsKQEAgLTIzMDQsNyArMjMwNCw3IEBAIHN0 YXRpYyBpbnQgdHBhY2tldF9yY3Yoc3RydWN0IHNrX2J1ZmYgKnNrYiwgc3RydWN0IG5ldF9kZXZp Y2UgKmRldiwKIAlpZiAoZG9fdm5ldCkgewogCQlpZiAodmlydGlvX25ldF9oZHJfZnJvbV9za2Io c2tiLCBoLnJhdyArIG1hY29mZiAtCiAJCQkJCSAgICBzaXplb2Yoc3RydWN0IHZpcnRpb19uZXRf aGRyKSwKLQkJCQkJICAgIHZpb19sZSgpLCB0cnVlKSkgeworCQkJCQkgICAgdmlvX2xlKCksIHRy dWUsIDApKSB7CiAJCQlzcGluX2xvY2soJnNrLT5za19yZWNlaXZlX3F1ZXVlLmxvY2spOwogCQkJ Z290byBkcm9wX25fYWNjb3VudDsKIAkJfQotLSAKMi4xNy4xCgoKRnJvbSAzMmU3YmViM2VkOTA0 OGFiY2UzMzE3YjY4NTA0MmExM2Q1OGI1NDdkIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9t OiBEZXh1YW4gQ3VpIDxkZWN1aUBtaWNyb3NvZnQuY29tPgpEYXRlOiBXZWQsIDYgSnVuIDIwMTgg MjE6MzI6NTEgKzAwMDAKU3ViamVjdDogW1BBVENIIDEzLzE0XSBodl9uZXR2c2M6IEZpeCBhIG5l dHdvcmsgcmVncmVzc2lvbiBhZnRlciBpZmRvd24vaWZ1cAoKWyBVcHN0cmVhbSBjb21taXQgNTJh Y2Y3M2I2ZTlhNjk2MjA0NWZlYjJiYTVhODkyMWRhMjIwMTkxNSBdCgpSZWNlbnRseSBwZW9wbGUg cmVwb3J0ZWQgdGhlIE5JQyBzdG9wcyB3b3JraW5nIGFmdGVyCiJpZmRvd24gZXRoMDsgaWZ1cCBl dGgwIi4gSXQgdHVybnMgb3V0IGluIHRoaXMgY2FzZSB0aGUgVFggcXVldWVzIGFyZSBub3QKZW5h YmxlZCwgYWZ0ZXIgdGhlIHJlZmFjdG9yaW5nIG9mIHRoZSBjb21tb24gZGV0YWNoIGxvZ2ljOiB3 aGVuIHRoZSBOSUMKaGFzIHN1Yi1jaGFubmVscywgdXN1YWxseSB3ZSBlbmFibGUgYWxsIHRoZSBU WCBxdWV1ZXMgYWZ0ZXIgYWxsCnN1Yi1jaGFubmVscyBhcmUgc2V0IHVwOiBzZWUgcm5kaXNfc2V0 X3N1YmNoYW5uZWwoKSAtPgpuZXRpZl9kZXZpY2VfYXR0YWNoKCksIGJ1dCBpbiB0aGUgY2FzZSBv ZiAiaWZkb3duIGV0aDA7IGlmdXAgZXRoMCIgd2hlcmUKdGhlIG51bWJlciBvZiBjaGFubmVscyBk b2Vzbid0IGNoYW5nZSwgd2UgYWxzbyBtdXN0IG1ha2Ugc3VyZSB0aGUgVFggcXVldWVzCmFyZSBl bmFibGVkLiBUaGUgcGF0Y2ggZml4ZXMgdGhlIHJlZ3Jlc3Npb24uCgpGaXhlczogN2IyZWU1MGMw Y2Q1ICgiaHZfbmV0dnNjOiBjb21tb24gZGV0YWNoIGxvZ2ljIikKU2lnbmVkLW9mZi1ieTogRGV4 dWFuIEN1aSA8ZGVjdWlAbWljcm9zb2Z0LmNvbT4KQ2M6IFN0ZXBoZW4gSGVtbWluZ2VyIDxzdGhl bW1pbkBtaWNyb3NvZnQuY29tPgpDYzogSy4gWS4gU3Jpbml2YXNhbiA8a3lzQG1pY3Jvc29mdC5j b20+CkNjOiBIYWl5YW5nIFpoYW5nIDxoYWl5YW5nekBtaWNyb3NvZnQuY29tPgpTaWduZWQtb2Zm LWJ5OiBEYXZpZCBTLiBNaWxsZXIgPGRhdmVtQGRhdmVtbG9mdC5uZXQ+Ci0tLQogZHJpdmVycy9u ZXQvaHlwZXJ2L25ldHZzY19kcnYuYyB8IDQgKysrLQogMSBmaWxlIGNoYW5nZWQsIDMgaW5zZXJ0 aW9ucygrKSwgMSBkZWxldGlvbigtKQoKZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L2h5cGVydi9u ZXR2c2NfZHJ2LmMgYi9kcml2ZXJzL25ldC9oeXBlcnYvbmV0dnNjX2Rydi5jCmluZGV4IGRhMDdj Y2RmODRiZi4uZWI4ZGNjZDI0YWJmIDEwMDY0NAotLS0gYS9kcml2ZXJzL25ldC9oeXBlcnYvbmV0 dnNjX2Rydi5jCisrKyBiL2RyaXZlcnMvbmV0L2h5cGVydi9uZXR2c2NfZHJ2LmMKQEAgLTEyNiw4 ICsxMjYsMTAgQEAgc3RhdGljIGludCBuZXR2c2Nfb3BlbihzdHJ1Y3QgbmV0X2RldmljZSAqbmV0 KQogCX0KIAogCXJkZXYgPSBudmRldi0+ZXh0ZW5zaW9uOwotCWlmICghcmRldi0+bGlua19zdGF0 ZSkKKwlpZiAoIXJkZXYtPmxpbmtfc3RhdGUpIHsKIAkJbmV0aWZfY2Fycmllcl9vbihuZXQpOwor CQluZXRpZl90eF93YWtlX2FsbF9xdWV1ZXMobmV0KTsKKwl9CiAKIAlpZiAodmZfbmV0ZGV2KSB7 CiAJCS8qIFNldHRpbmcgc3ludGhldGljIGRldmljZSB1cCB0cmFuc3BhcmVudGx5IHNldHMKLS0g CjIuMTcuMQoKCkZyb20gMWIyOWE1Yjg0ZjU3MmEwZjRmMjYzNTg3NzA5N2Y2OTE5Zjk1YzU4ZCBN b24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJvbTogQ29saW4gSWFuIEtpbmcgPGNvbGluLmtpbmdA Y2Fub25pY2FsLmNvbT4KRGF0ZTogVGh1LCA3IEp1biAyMDE4IDE3OjU0OjM3IC0wNDAwClN1Ympl Y3Q6IFtQQVRDSCAxNC8xNF0gbmV0OiBhcXVhbnRpYTogZml4IHVuc2lnbmVkIG51bXZlY3MgY29t cGFyaXNvbiB3aXRoCiBsZXNzIHRoYW4gemVybwoKWyBVcHN0cmVhbSBjb21taXQgNThkODEzYWZi ZTg5NjU4YTU5NzI3NDc0NjBhNWZlMTlkZWM0ZGJjYiBdCgpGcm9tOiBDb2xpbiBJYW4gS2luZyA8 Y29saW4ua2luZ0BjYW5vbmljYWwuY29tPgoKVGhpcyB3YXMgb3JpZ2luYWxseSBtaXN0YWtlbmx5 IHN1Ym1pdHRlZCB0byBuZXQtbmV4dC4gUmVzdWJtaXR0aW5nIHRvIG5ldC4KClRoZSBjb21wYXJp c29uIG9mIG51bXZlY3MgPCAwIGlzIGFsd2F5cyBmYWxzZSBiZWNhdXNlIG51bXZlY3MgaXMgYSB1 MzIKYW5kIGhlbmNlIHRoZSBlcnJvciByZXR1cm4gZnJvbSBhIGZhaWxlZCBjYWxsIHRvIHBjaV9h bGxvY19pcnFfdmVjdG9yZXMKaXMgbmV2ZXIgZGV0ZWN0ZWQuICBGaXggdGhpcyBieSB1c2luZyB0 aGUgc2lnbmVkIGludCByZXQgdG8gaGFuZGxlIHRoZQplcnJvciByZXR1cm4gYW5kIGFzc2lnbiBu dW12ZWNzIHRvIGVyci4KCkRldGVjdGVkIGJ5IENvdmVyaXR5U2NhbiwgQ0lEIzE0Njg2NTAgKCJV bnNpZ25lZCBjb21wYXJlZCBhZ2FpbnN0IDAiKQoKRml4ZXM6IGEwOWJkODFiNTQxMyAoIm5ldDog YXF1YW50aWE6IExpbWl0IG51bWJlciBvZiB2ZWN0b3JzIHRvIGFjdHVhbGx5IGFsbG9jYXRlZCBp cnFzIikKU2lnbmVkLW9mZi1ieTogQ29saW4gSWFuIEtpbmcgPGNvbGluLmtpbmdAY2Fub25pY2Fs LmNvbT4KU2lnbmVkLW9mZi1ieTogSWdvciBSdXNza2lraCA8aWdvci5ydXNza2lraEBhcXVhbnRp YS5jb20+ClNpZ25lZC1vZmYtYnk6IERhdmlkIFMuIE1pbGxlciA8ZGF2ZW1AZGF2ZW1sb2Z0Lm5l dD4KLS0tCiBkcml2ZXJzL25ldC9ldGhlcm5ldC9hcXVhbnRpYS9hdGxhbnRpYy9hcV9wY2lfZnVu Yy5jIHwgMTEgKysrKystLS0tLS0KIDEgZmlsZSBjaGFuZ2VkLCA1IGluc2VydGlvbnMoKyksIDYg ZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvZXRoZXJuZXQvYXF1YW50aWEv YXRsYW50aWMvYXFfcGNpX2Z1bmMuYyBiL2RyaXZlcnMvbmV0L2V0aGVybmV0L2FxdWFudGlhL2F0 bGFudGljL2FxX3BjaV9mdW5jLmMKaW5kZXggYTUwZTA4YmI0NzQ4Li43NTAwMDc1MTNmOWQgMTAw NjQ0Ci0tLSBhL2RyaXZlcnMvbmV0L2V0aGVybmV0L2FxdWFudGlhL2F0bGFudGljL2FxX3BjaV9m dW5jLmMKKysrIGIvZHJpdmVycy9uZXQvZXRoZXJuZXQvYXF1YW50aWEvYXRsYW50aWMvYXFfcGNp X2Z1bmMuYwpAQCAtMjY3LDE0ICsyNjcsMTMgQEAgc3RhdGljIGludCBhcV9wY2lfcHJvYmUoc3Ry dWN0IHBjaV9kZXYgKnBkZXYsCiAJbnVtdmVjcyA9IG1pbihudW12ZWNzLCBudW1fb25saW5lX2Nw dXMoKSk7CiAJLyplbmFibGUgaW50ZXJydXB0cyAqLwogI2lmICFBUV9DRkdfRk9SQ0VfTEVHQUNZ X0lOVAotCW51bXZlY3MgPSBwY2lfYWxsb2NfaXJxX3ZlY3RvcnMoc2VsZi0+cGRldiwgMSwgbnVt dmVjcywKLQkJCQkJUENJX0lSUV9NU0lYIHwgUENJX0lSUV9NU0kgfAotCQkJCQlQQ0lfSVJRX0xF R0FDWSk7CisJZXJyID0gcGNpX2FsbG9jX2lycV92ZWN0b3JzKHNlbGYtPnBkZXYsIDEsIG51bXZl Y3MsCisJCQkJICAgIFBDSV9JUlFfTVNJWCB8IFBDSV9JUlFfTVNJIHwKKwkJCQkgICAgUENJX0lS UV9MRUdBQ1kpOwogCi0JaWYgKG51bXZlY3MgPCAwKSB7Ci0JCWVyciA9IG51bXZlY3M7CisJaWYg KGVyciA8IDApCiAJCWdvdG8gZXJyX2h3aW5pdDsKLQl9CisJbnVtdmVjcyA9IGVycjsKICNlbmRp ZgogCXNlbGYtPmlycXZlY3MgPSBudW12ZWNzOwogCi0tIAoyLjE3LjEKCg== ----Next_Part(Wed_Jun_20_21_37_12_2018_097)----